knitting 0.1.62 → 0.1.63

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.
@@ -1 +1 @@
1
- var $s=Object.defineProperty;var zs=(e)=>e;function Ys(e,r){this[e]=zs.bind(null,r)}var Vs=(e,r)=>{for(var t in r)$s(e,t,{get:r[t],enumerable:!0,configurable:!0,set:Ys.bind(r,t)})};var qs=(e,r)=>()=>(e&&(r=e(e=0)),r);var uo=()=>({keys:new Set(Reflect.ownKeys(globalThis))}),za=(e,r)=>{let t=[],n=[];for(let a of r.keys)if(!e.keys.has(a))t.push(a);for(let a of e.keys)if(!r.keys.has(a))n.push(a);return{added:t,removed:n}},Ya=(e)=>{let r=typeof e==="symbol"?e.toString():e,t;try{t=Object.getOwnPropertyDescriptor(globalThis,e)}catch{return r}if(t===void 0)return r;let n=t.get!==void 0||t.set!==void 0?"accessor":typeof t.value,a=`${t.writable===!1?"":"w"}${t.configurable?"c":""}${t.enumerable?"e":""}`;return a.length>0?`${r} (${n} ${a})`:`${r} (${n})`};var Va={};Vs(Va,{initDebug:()=>Gu});var Gu=({name:e,runtime:r,namespaces:t})=>{let n=t.has("*"),a=(P)=>n||t.has(P),u=performance.now(),c=`${e}·${r}`,f=(P,H)=>{if(!a(P))return;let k=(performance.now()-u).toFixed(1);console.error(`[${c}·+${k}ms] ${P}: ${H}`)},S=a("globals")?uo():void 0;return{enabled:a,log:f,envPhase:(P)=>{if(S===void 0)return;let H=uo(),{added:k,removed:m}=za(S,H);if(S=H,k.length===0&&m.length===0){f("globals",`${P}: no new globals`);return}if(k.length>0)f("globals",`${P} +${k.length}: ${k.map(Ya).join(" ")}`);if(m.length>0)f("globals",`${P} -${m.length}: ${m.map(String).join(" ")}`)}}};var qa=()=>{};var St=(()=>{let e=globalThis.process;return typeof e?.versions?.node==="string"?e:void 0})(),$e=()=>St,At=(e)=>{let r=St?.getBuiltinModule;if(typeof r!=="function")return;try{return r.call(St,e)}catch{}if(!e.startsWith("node:"))return;try{return r.call(St,e.slice(5))}catch{return}};var kr=globalThis,Qs=$e(),So=typeof kr.Deno?.version?.deno==="string",Zr=typeof kr.Bun?.version==="string",Ao=typeof Qs?.versions?.node==="string",Er=typeof kr.__andromeda__<"u",fn=!So&&!Zr&&!Ao&&!Er&&(typeof kr.document<"u"||typeof kr.WorkerGlobalScope==="function"),Oe=So?"deno":Zr?"bun":Ao?"node":Er?"andromeda":fn?"browser":"unknown",cn=kr.WebAssembly,et=typeof kr.setImmediate==="function"?kr.setImmediate:void 0,Js=65536,Bt=new WeakMap,wt=new WeakMap,ln=(()=>{if(typeof cn?.Memory!=="function")return!1;try{return new cn.Memory({initial:0,maximum:1,shared:!0}),!0}catch{return!1}})();var Xr=(e)=>Math.ceil(Math.max(0,e)/Js),Bo=(e,r)=>{let t=new cn.Memory({initial:Xr(e),maximum:Math.max(Xr(e),Xr(r)),shared:!0}),n=t.buffer;return Bt.set(n,t),wt.set(n,r),n},Fr=(e,r=e)=>{if(ln)return Bo(e,r);return new SharedArrayBuffer(e)},dn=typeof SharedArrayBuffer==="function"&&typeof SharedArrayBuffer.prototype.grow==="function",Tt=dn||ln,ze=(e,r)=>{if(dn&&typeof r==="number")return new SharedArrayBuffer(e,{maxByteLength:r});if(ln&&typeof r==="number")return Bo(e,r);return new SharedArrayBuffer(e)};var wo=(e)=>{let r=e;return dn&&typeof r.grow==="function"&&r.growable===!0||Bt.has(e)},To=(e)=>{let r=e;if(typeof r.maxByteLength==="number")return r.maxByteLength;return wt.get(e)??e.byteLength},ko=(e,r)=>{let t=e;if(typeof t.grow==="function")return t.grow(r),e;let n=Bt.get(e);if(n==null)throw TypeError("SharedArrayBuffer is not growable");let a=n.buffer;if(a.byteLength>=r)return a;let u=Xr(r),c=Xr(a.byteLength);n.grow(u-c);let f=n.buffer,S=wt.get(e)??a.byteLength;return Bt.set(f,n),wt.set(f,S),f};var Xs="KNITTING_PROCESS_WORKER";var Zs="KNITTING_POOL_DEPTH",kt=$e(),Rr=kt?.env?.[Xs]==="1",ei=()=>{let e=kt?.env?.[Zs];if(typeof e!=="string")return 0;let r=Number.parseInt(e,10);return Number.isFinite(r)&&r>0?r:0},yn=ei(),Or=At("node:worker_threads"),ri=()=>{let e=globalThis.WorkerGlobalScope;if(typeof e==="function")try{if(globalThis instanceof e)return!0}catch{}if(Er&&typeof globalThis.self<"u")return!0;return!1},Ro=Or?.Worker??globalThis.Worker,Eo=Or?.MessageChannel??globalThis.MessageChannel,pn=Or!=null,xr=Rr?!1:Or?.isMainThread??!ri(),rt=Or?.workerData,tt=Or?.parentPort??(Rr&&typeof kt?.send==="function"?{postMessage:(e)=>kt.send(e)}:void 0),Nr=()=>{if(typeof Eo!=="function")throw Error("MessageChannel is not available in this runtime");return new Eo},xo=(e,r)=>{if(typeof e.on==="function"){e.on("message",r);return}if(typeof e.addEventListener==="function"){e.addEventListener("message",(t)=>r(t?.data));return}e.onmessage=(t)=>r(t?.data)};var nt=(e)=>e instanceof SharedArrayBuffer||e instanceof ArrayBuffer,ti=(e)=>{if(!e||typeof e!=="object")return!1;let r=e;return nt(r.sab)&&typeof r.byteOffset==="number"&&Number.isInteger(r.byteOffset)&&r.byteOffset>=0&&typeof r.byteLength==="number"&&Number.isInteger(r.byteLength)&&r.byteLength>=0},rr=(e)=>nt(e)||ti(e),Ye=(e)=>nt(e)?{sab:e,byteOffset:0,byteLength:e.byteLength}:e;var Lo=new TextEncoder,ni=new TextDecoder,Po=(e)=>e instanceof TypeError,oi=(e)=>{let r=Ye(e),t=Math.min(1,r.byteLength);return new Uint8Array(r.sab,r.byteOffset,t)},vo=(e)=>{if(!e||typeof e!=="object")return!1;let r=e;return typeof r.encodeInto==="boolean"&&typeof r.decode==="boolean"},Et=(e)=>{if(!e||typeof e!=="object")return!1;let r=e;return vo(r.headers)&&vo(r.payload)},_o=(e)=>{let r=oi(e),t=(()=>{if(typeof Lo.encodeInto!=="function")return!1;let a=r.byteLength>0?r:r.subarray(0,0),u=a.byteLength>0?a[0]:void 0;try{return Lo.encodeInto(a.byteLength>0?"a":"",a),!0}catch(c){if(!Po(c))throw c;return!1}finally{if(u!==void 0)a[0]=u}})(),n=(()=>{try{return ni.decode(r),!0}catch(a){if(!Po(a))throw a;return!1}})();return{encodeInto:t,decode:n}},Dr=({headers:e,payload:r})=>({headers:_o(e),payload:_o(r)});class cr{#e;#r;#n=0;#o=0;#t=0;constructor(e=512){let r=2;while(r<e)r<<=1;this.#e=Array(r).fill(null),this.#r=r-1}get size(){return this.#t}get isEmpty(){return this.#t===0}get capacity(){return this.#r+1}clear(){this.#n=0,this.#o=0,this.#t=0}peek(){return this.#t===0?void 0:this.#e[this.#n]}reserve(e){if(e<=this.capacity)return;let r=this.capacity;while(r<e)r<<=1;this.#s(r)}#a(){if(this.#t!==this.#r+1)return;this.#s(this.#r+1<<1)}#s(e){let r=this.#e,t=this.#r+1,n=this.#t,a=Array(e).fill(null),u=this.#n,c=Math.min(n,t-u);for(let f=0;f<c;f++)a[f]=r[u+f];for(let f=c;f<n;f++)a[f]=r[f-c];this.#e=a,this.#r=e-1,this.#n=0,this.#o=n}push(e){this.#a();let r=this.#e,t=this.#r,n=this.#o;return r[n]=e,this.#o=n+1&t,this.#t++,!0}unshift(e){this.#a();let r=this.#e,t=this.#r,n=this.#n-1&t;return this.#n=n,r[n]=e,this.#t++,!0}shift(){let e=this.#t;if(e===0)return;let r=this.#n,t=this.#e,n=t[r];return t[r]=null,this.#n=r+1&this.#r,this.#t=e-1,n}shiftNoClear(){let e=this.#t;if(e===0)return;let r=this.#n,t=this.#e[r];return this.#n=r+1&this.#r,this.#t=e-1,t}*[Symbol.iterator](){let e=this.#e,r=this.#r,t=this.#n,n=0,a=this.#t;while(n<a){let u=e[t];if(u!==null)yield u;t=t+1&r,n++}}toArray(){let e=Array(this.#t),r=this.#e,t=this.#r,n=this.#n;for(let a=0;a<e.length;a++)e[a]=r[n],n=n+1&t;return e}get[Symbol.toStringTag](){return`RingQueue(size=${this.#t}, cap=${this.capacity})`}}var ai=67108864,si=4194304,Wr=(e)=>{if(!Number.isFinite(e))return;let r=Math.floor(e);return r>0?r:void 0},ii=(e)=>{if(e==null)return!1;return e instanceof SharedArrayBuffer&&Tt&&wo(e)},ui=(e)=>{if(e==null)return;if(e instanceof SharedArrayBuffer)return Wr(To(e));return Wr(e.byteLength)},dr=({options:e,sab:r})=>{let t=r===void 0?void 0:Ye(r),n=t?.sab,c=e?.mode??(Tt?"growable":"fixed");if(c==="growable"&&n!=null&&!ii(n))c="fixed";if(c==="growable"&&!Tt)c="fixed";let f=Wr(e?.payloadMaxByteLength)??Wr(t?.byteLength)??ui(n)??ai,S=Wr(e?.payloadInitialBytes),N=c==="fixed"?f:Math.min(S??si,f),P=f>>3;if(P<=0)throw RangeError("payloadMaxByteLength is too small; must be at least 8 bytes.");let H=e?.maxPayloadBytes;if(H!==void 0){let m=Math.floor(H);if(!Number.isFinite(m)||m<=0)throw RangeError(`maxPayloadBytes must be > 0 and <= ${P}.`)}let k=Wr(H)??P;if(k<=0||k>P)throw RangeError(`maxPayloadBytes must be > 0 and <= ${P}.`);return{mode:c,payloadInitialBytes:N,payloadMaxByteLength:f,maxPayloadBytes:k}};var gn,hn,Co=(e,r)=>{gn=e,hn=r},Ve={UNREACHABLE:0,BigInt:2,True:3,False:4,Undefined:5,NaN:6,Float64:9,Null:10},v={BORDER_SIGNAL_BUFFER:11,String:11,Json:12,StaticString:15,StaticJson:16,Binary:17,StaticBinary:18,Int32Array:19,Float64Array:20,BigInt64Array:21,BigUint64Array:22,DataView:23,Error:24,Date:25,Symbol:26,StaticSymbol:27,BigInt:28,StaticBigInt:29,StaticInt32Array:31,StaticFloat64Array:32,StaticBigInt64Array:33,StaticBigUint64Array:34,StaticDataView:35,ArrayBuffer:36,StaticArrayBuffer:37,Buffer:38,StaticBuffer:39,EnvelopeStaticHeader:40,EnvelopeDynamicHeader:41,EnvelopeStaticHeaderString:42,EnvelopeDynamicHeaderString:43,ExternalPayload:44,StaticExternalPayload:45,ProcessSharedBuffer:46,BufferReference:47,SharedArrayBuffer:48,EnvelopeStaticHeaderExternal:49,EnvelopeDynamicHeaderExternal:50,EnvelopeStaticHeaderStringExternal:51,EnvelopeDynamicHeaderStringExternal:52,NumericArray:53,StaticNumericArray:54},Io={};for(let e of Object.keys(v))Io[v[e]]=e;var Mo=(e)=>Io[e]??String(e),Te={paddingLock:0,padding:0,slots:32,header:0},Pt=64,ci=256,fi=Symbol.for("knitting.payloadCodec.transportFinalizer");var Ze=7,Lt=1,Rt=2,vt=(e)=>{let r=e[Ze];if((r&Lt)!==0)return!1;return e[Ze]=(r|Lt)>>>0,!0},at=(e)=>{e[Ze]=(e[Ze]&~Lt)>>>0},mn=(e)=>(e[Ze]&Lt)!==0,Sn=(e)=>{e[Ze]=0},li=(e,r)=>{let t=e.finalize;e.finalize=t===void 0?r:()=>{try{t()}finally{r()}}},Lr=(e,r)=>{if(e.finalize!==void 0||r===null||typeof r!=="object")return;let t=r[fi]?.();if(typeof t==="function")li(e,t)},Ur=(e)=>{let r=e.finalize;if(e.finalize=void 0,r!==void 0)try{r()}catch{}},i={FlagsToHost:0,FunctionID:0,ID:1,Type:2,Start:3,End:4,PayloadLen:5,slotBuffer:6,Size:8,TotalBuff:144},_t=5,Hr=(1<<_t)-1,nf=32-_t,Ct=4294967295>>>_t,of=~Hr>>>0,It=16,di=(1<<It)-1,af=32-It,yi=4294967295>>>It,sf=~di>>>0;var Fo=(e)=>e[i.FunctionID]>>>It&yi;var Oo=(e)=>e[i.slotBuffer]&Hr;var No=(e)=>e[i.slotBuffer]>>>_t&Ct;var Mt={Reject:1},uf=Int32Array.BYTES_PER_ELEMENT,pi=Te.paddingLock,mi=Pt,jr=ci,Do=Pt*2,Wo=Pt*3;var yr=Te.header+i.TotalBuff,cf=yr*Uint32Array.BYTES_PER_ELEMENT,gi=Pt/Uint32Array.BYTES_PER_ELEMENT,st=i.TotalBuff-gi,Uo=st,An=Uo+i.Size,hi=An+1,bi=An+2,Ho=bi+1,Si=Ho+1,Ai=Te.header+yr*Te.slots,Bn=Ai*Uint32Array.BYTES_PER_ELEMENT,Bi=0,ff=Ve.UNREACHABLE,ot=(e)=>{},jo=()=>{let e=new Uint32Array(i.Size);return e.value=null,e.finalize=void 0,e.resolve=ot,e.reject=ot,e[Ze]=0,e},Ko=()=>{let e=jo();return e[i.ID]=Bi++,e},bn=(e,r,t)=>{e[0]=r[t],e[1]=r[t+1],e[2]=r[t+2],e[3]=r[t+3],e[4]=r[t+4],e[5]=r[t+5],e[6]=r[t+6],e[Ze]=0},wi=(e,r)=>{let t=jo();return bn(t,e,r),t},xt=(e)=>{if(e[i.FlagsToHost]===0)e.resolve(e.value);else e.reject(e.value),e[i.FlagsToHost]=0},Pr=({headers:e,headerSlotStrideU32:r,LockBoundSector:t,payload:n,payloadConfig:a,payloadSector:u,textCompat:c,resultList:f,toSentList:S,recycleList:N,processBoundary:P,consumers:H,consumerId:k,regionLanes:m,notifyOnHostPublish:O})=>{let x=Ye(t??Fr(jr)),w=x.sab,M=new Int32Array(w,x.byteOffset+pi,1),J=new Int32Array(w,x.byteOffset+mi,1),_=Ye(e??Fr(Bn)),q=new Uint32Array(_.sab,_.byteOffset,_.byteLength>>>2),j=r??yr,te=new Int32Array(_.sab,_.byteOffset+Si*Uint32Array.BYTES_PER_ELEMENT,1),oe=dr({sab:n,options:a}),K=n??(oe.mode==="growable"?ze(oe.payloadInitialBytes,oe.payloadMaxByteLength):ze(oe.payloadInitialBytes)),ee=Ye(u??x),G=c??Dr({headers:_,payload:K}),C=Math.max(1,(H??1)|0),Q=C>1,ue=k===void 0,X=(k??0)|0,ce=(m??8)|0,s=Te.slots/ce|0;if(Q){if(ce<1||(ce&ce-1)!==0)throw RangeError("regionLanes must be a power of two");if(s<C)throw RangeError(`regionLanes=${ce} yields ${s} regions, too few for ${C} consumers`);if(X<0||X>=C)throw RangeError(`consumerId ${X} out of range`)}let L=new Int32Array(_.sab,_.byteOffset,_.byteLength>>>2),g=new Int32Array(C),B=new Int32Array(C);for(let A=0;A<C;A++){let F=A*j+Te.header;g[A]=F+An,B[A]=F+hi}let l=Te.header+Ho,p=C===32?-1:(1<<C)-1|0;if(Q&&ue)Atomics.store(L,l,p);let h=(A,F)=>(A&1<<F)!==0,z=()=>{let A=0;for(let F=0;F<C;F++)A=A^be(L,g[F])|0;return A},b;if(gn===void 0||hn===void 0)throw Error('Payload codec not registered before lock2(). Ensure the module that builds locks imports "./payloadCodec.ts" (it self-registers on load).');let y=gn({payload:{sab:K,config:oe},headersBuffer:q,headerSlotStrideU32:j,lockSector:ee,textCompat:G,processBoundary:P,onPromise:(A,F,ae)=>{if((A[Ze]&Rt)!==0&&he>0)A[Ze]=(A[Ze]&~Rt)>>>0,he=he-1|0;b(A,F,ae)}}),D=hn({payload:{sab:K,config:oe},headersBuffer:q,headerSlotStrideU32:j,lockSector:ee,textCompat:G,processBoundary:P}),ne=0,re=0,me=32,ge=S??new cr,ve=N??new cr,Ne=f??new cr,fe=0,he=0,be=Atomics.load,de=Atomics.store,De=Atomics.notify,xe=O===!0,He=typeof Atomics.waitAsync==="function"?Atomics.waitAsync.bind(Atomics):void 0,We=0,Le=Q?()=>We=z():()=>We=be(J,0)|0;Le();let je=(A)=>~A!==0?A:ne^Le()|0,qe=(A)=>ge.push(A),er=()=>ge.shiftNoClear(),sr=(A)=>ge.unshift(A),mr=()=>ve.shiftNoClear(),o=(A)=>Ne.push(A),E=Math.clz32,T=Te.header+Uo,d=({queue:A})=>(F)=>{let ae=F*j+T,ie=A[q[ae+i.ID]];return bn(ie,q,ae),ie},W=(A)=>qe(A),V=(A)=>{let F=A[Ze];if((F&Rt)!==0)return;A[Ze]=(F|Rt)>>>0,he=he+1|0},Y=(A,F)=>y(A,F),I=0,se=0,Z=(A,F)=>{let ae=~F;if(ae===0)return 0;if(!Y(A,I=31-E(ae)))return 0;return Ae(A,I,se=1<<I),se},we=(A)=>{let F=je(ne^We|0),ae=0;if(A===ge)while(!0){let ie=er();if(!ie)break;F=je(F);let Ue=Z(ie,F)|0;if(Ue===0){sr(ie);break}F=F^Ue|0,ae=ae+1|0}else while(!0){let ie=A.shiftNoClear();if(!ie)break;F=je(F);let Ue=Z(ie,F)|0;if(Ue===0){A.unshift(ie);break}F=F^Ue|0,ae=ae+1|0}return ae},ke=(A)=>{let F=je(ne^We|0),ae=0;if(fe=0,A===ge)while(!0){let ie=er();if(!ie)break;F=je(F);let Ue=Z(ie,F)|0;if(Ue===0){if(mn(ie)){fe=fe+1|0,V(ie);continue}sr(ie);break}F=F^Ue|0,ae=ae+1|0}else while(!0){let ie=A.shiftNoClear();if(!ie)break;F=je(F);let Ue=Z(ie,F)|0;if(Ue===0){if(mn(ie)){fe=fe+1|0,V(ie);continue}A.unshift(ie);break}F=F^Ue|0,ae=ae+1|0}return ae},R=()=>{if(ge.isEmpty)return!0;return ke(ge),fe=0,ge.isEmpty},U=(A)=>{if(de(M,0,ne=ne^A|0),xe&&be(te,0)!==0)De(M,0,1)},le=(A)=>de(J,0,re=re^A|0),Se=(A,F=ne^We|0)=>{F=je(F);let ae=~F;if(ae===0)return!1;if(!Y(A,I=31-E(ae)))return!1;return Ae(A,I,se=1<<I)},Pe=(A,F=ne^We|0)=>{fe=0,F=je(F);let ae=~F;if(ae===0)return!1;if(!Y(A,I=31-E(ae))){if(mn(A))fe=1,V(A);return!1}return Ae(A,I,se=1<<I)},Ae=(A,F,ae)=>{let ie=F*j+T;return q[ie]=A[0],q[ie+1]=A[1],q[ie+2]=A[2],q[ie+3]=A[3],q[ie+4]=A[4],q[ie+5]=A[5],q[ie+6]=A[6],q[ie+Ze]=0,U(ae),!0},_e=()=>(M[0]^re)!==0,Qe=()=>{let A=be(M,0)^re|0;if(A===0)return!1;let F=me,ae=0;try{if(F===32)gt(I=31-E(A)),se=1<<(F=I),A^=se,ae=ae^se|0;while(A!==0){let ie=A&(1<<F)-1;if(ie===0)ie=A;gt(I=31-E(ie)),se=1<<(F=I),A^=se,ae=ae^se|0}}finally{if(ae!==0)le(ae)}return me=F,!0},tr=(A)=>ce===32?-1:(1<<ce)-1<<A*ce|0,wr=()=>{let A=0;for(let F=0;F<C;F++)if(F!==X)A=A^be(L,g[F])|0;return A},Tr=(A)=>{let F=be(L,l)|0;for(let ae=X+1;ae<C;ae++){if(!h(F,ae))continue;if((be(L,B[ae])&A)!==0)return!0}return!1},Ce=s*X/C|0,ir=()=>{let A=be(M,0)^re^wr()|0;if(A===0)return!1;let F=0;if(s===1)F=1;else for(let pe=0;pe<s;pe++)if((A&tr(pe))!==0)F|=1<<pe;let ae=be(L,l)|0,ie=0,Ue=0;for(let pe=0;pe<C;pe++){if(pe===X||!h(ae,pe))continue;let Fe=be(L,B[pe])|0;if(ie|=Fe,pe<X)Ue|=Fe}let Mr=F&~Ue;if(Mr===0)return!1;let Jr=F&~ie,ht=Jr!==0?Jr:Mr,lr=-1;for(let pe=0;pe<s;pe++){let Fe=(Ce+pe)%s;if((ht&1<<Fe)!==0){lr=Fe;break}}if(lr<0)return!1;let Je=1<<lr|0;de(L,B[X],Je);let ur=!1,Ie=!1;for(let pe=0;pe<C;pe++){if(pe===X||!h(ae,pe))continue;if((be(L,B[pe])&Je)===0)continue;if(pe<X)ur=!0;else Ie=!0}if(ur)return de(L,B[X],0),!1;if(Ie)while(Tr(Je));let Ge=(be(M,0)^re^wr())&tr(lr)|0;if(Ge===0)return de(L,B[X],0),!1;let Re=Ge;while(Re!==0)gt(31-E((Re&-Re)>>>0)),Re=Re&Re-1|0;return re=re^Ge|0,de(L,g[X],re),de(L,B[X],0),Ce=(lr+1)%s,!0},nr=({queue:A,onResolved:F,shouldSettle:ae,activeRejectPlaceholder:ie})=>{let Ue=d({queue:A}),Mr=32;if(ie!==void 0&&F){let Je=F,ur=ie;return()=>{let Ie=be(M,0)^re|0;if(Ie===0)return 0;let Ge=0,Re=0,pe=Mr;if(pe===32){let Fe=31-E(Ie),gr=1<<Fe,Xe=Ue(Fe);if(D(Xe,Fe),Re=Re^gr|0,Xe.reject!==ur)xt(Xe),Je(Xe);if(Ie^=gr,Ge++,(Ge&7)===0&&Re!==0)re=re^Re|0,de(J,0,re),Re=0;pe=Fe}while(Ie!==0){let Fe=pe===31?2147483647:(1<<pe)-1,gr=Ie&Fe;if(gr===0)gr=Ie;let Xe=31-E(gr),bo=1<<Xe,bt=Ue(Xe);if(D(bt,Xe),Re=Re^bo|0,bt.reject!==ur)xt(bt),Je(bt);if(Ie^=bo,Ge++,(Ge&7)===0&&Re!==0)re=re^Re|0,de(J,0,re),Re=0;pe=Xe}if(Re!==0)re=re^Re|0,de(J,0,re);return Mr=pe,Ge}}let Jr=F!==void 0,ht=F??ot,lr=ae;return()=>{let Je=be(M,0)^re|0;if(Je===0)return 0;let ur=0,Ie=0,Ge=Mr;if(Ge===32){let Re=31-E(Je),pe=1<<Re,Fe=Ue(Re);if(D(Fe,Re),Ie=Ie^pe|0,lr===void 0||lr(Fe)){if(xt(Fe),Jr)ht(Fe)}if(Je^=pe,ur++,(ur&7)===0&&Ie!==0)re=re^Ie|0,de(J,0,re),Ie=0;Ge=Re}while(Je!==0){let Re=Ge===31?2147483647:(1<<Ge)-1,pe=Je&Re;if(pe===0)pe=Je;let Fe=31-E(pe),gr=1<<Fe,Xe=Ue(Fe);if(D(Xe,Fe),Ie=Ie^gr|0,lr===void 0||lr(Xe)){if(xt(Xe),Jr)ht(Xe)}if(Je^=gr,ur++,(ur&7)===0&&Ie!==0)re=re^Ie|0,de(J,0,re),Ie=0;Ge=Fe}if(Ie!==0)re=re^Ie|0,de(J,0,re);return Mr=Ge,ur}},mt=(A)=>{if(He===void 0){de(te,0,0);return}de(te,0,1);try{let F=He(M,0,re|0,A);if(!F.async)de(te,0,0);return F}catch{de(te,0,0);return}},gt=(A)=>{let F=A*j+T,ae=mr(),ie;if(ae)bn(ae,q,F),ae.value=null,ae.finalize=void 0,ae.resolve=ot,ae.reject=ot,ie=ae;else ie=wi(q,F);return D(ie,A),o(ie),!0};return{enlist:W,encode:Se,encodeManyFrom:we,encodeAll:R,publish:(A)=>{if(Pe(A))return!0;if((fe|0)!==0)return fe=0,!1;return qe(A),!1},flushPending:()=>{if(ge.isEmpty)return!1;let A=ke(ge)|0;return fe=0,A!==0},decode:Q?ir:Qe,hasSpace:_e,resolved:Ne,hostBits:M,workerBits:J,recyclecList:ve,resolveHost:nr,waitForHostChange:mt,setHostWaiterArmed:(A)=>{de(te,0,A?1:0)},hasPendingFrames:()=>ge.size!==0,getPendingFrameCount:()=>ge.size|0,getPendingPromiseCount:()=>he|0,resetPendingState:()=>{ge.clear(),fe=0,he=0},deactivateStealConsumer:(A)=>{if(!Q||!ue)return!1;if(!Number.isInteger(A)||A<0||A>=C)throw RangeError(`consumerId ${A} out of range`);let F=1<<A;return(Atomics.and(L,l,~F)&F)!==0},takeDeferredCount:()=>{let A=fe|0;return fe=0,A},setPromiseHandler:(A)=>{b=A}}};var Ti=1,Go=1,ki=performance.now.bind(performance),Ei=(e,r,t,n)=>new Promise((a,u)=>{let c=!1,f=setTimeout(()=>{if(c)return;if(c=!0,t)a(n);else u(n)},r);e.then((S)=>{if(c)return;c=!0,clearTimeout(f),a(S)},(S)=>{if(c)return;c=!0,clearTimeout(f),u(S)})}),Ri=(e)=>(Math.floor(e())&Ct)>>>0,$o=(e,r,t,n)=>{let a=Ri(n)-No(r)&Ct,u=t.ms-a;if(!(u>0))return e.then(()=>{},()=>{}),t.kind===Go?Promise.resolve(t.value):Promise.reject(t.value);let c=Math.max(1,Math.floor(u));return Ei(e,c,t.kind===Go,t.value)},Ft=-1,zo=(e)=>{let r=Fo(e);if(r===0)return Ft;let t=r-Ti|0;return t>=0?t:Ft},xi=(e,r)=>{let t=[];return(n)=>{let a=t[n];if(a)return a;return a={hasAborted:()=>e(n),now:r},t[n]=a,a}},Yo=({job:e,timeout:r,hasAborted:t,now:n})=>{let a=n??ki;if(!t){if(!r)return(c)=>e(c.value);return(c)=>{let f=e(c.value);if(!(f instanceof Promise))return f;return $o(f,c,r,a)}}let u=xi(t,a);if(!r)return(c)=>{let f=zo(c);if(f===Ft)return e(c.value);return e(c.value,u(f))};return(c)=>{let f=zo(c),S=f===Ft?e(c.value):e(c.value,u(f));if(!(S instanceof Promise))return S;return $o(S,c,r,a)}};var wn=Symbol.for("knitting.bufferReference.numericTransfer"),Vo=Symbol.for("knitting.bufferReference.returnReleaseToken"),Ot=()=>{throw Error('BufferReference cannot run in runtime "browser"')};class Nt{constructor(){Ot()}static fromMetadata=Ot}var it=(e)=>!1,Tn=(e,r)=>r(),qo=(e)=>{return},Qo=Ot,Jo=Ot;var Xo=({listOfFunctions:e,workerOptions:r,lock:t,returnLock:n,borrowReturnedBufferReferences:a,hasAborted:u,now:c,stealing:f})=>{let S=(b)=>{throw"UNREACHABLE FROM PLACE HOLDER (thread)"},N=0,P=0,H=e.reduce((b,y)=>(b.push(y.run),b),[]),k=new cr,m=new cr,O=(b)=>k.push(b),x=()=>k.shiftNoClear(),w=()=>m.shiftNoClear(),M=(b)=>m.unshift(b),J=(b)=>m.push(b),_=(b)=>t.recyclecList.push(b),q=65535,j=i.FlagsToHost,te=Mt.Reject,oe=Atomics.load,K=n.hostBits,ee=n.workerBits,G=[],C=new Map,Q=()=>{if(G.length===0)return;if((oe(K,0)^oe(ee,0))!==0)return;for(let b=0;b<G.length;b++)try{G[b]()}catch{}G.length=0},ue=(b)=>{let y=b.toString(),D=C.get(y);if(D===void 0)return;C.delete(y);try{D()}catch{}},X=e.reduce((b,y,D)=>{let ne=H[D];return b.push(Yo({job:ne,timeout:y.timeout,hasAborted:u,now:c})),b},[]),ce=r?.resolveAfterFinishingAll===!0?()=>N!==0&&k.size===0:()=>N!==0,{decode:s,resolved:L}=t,g=()=>L.shiftNoClear(),B=()=>{if(f&&k.size!==0)return!1;if(!s())return!1;let b=g();while(b)b.resolve=S,b.reject=S,Lr(b,b.value),O(b),b=g();return!0},l=(b)=>{if(!n.encode(b))return!1;return!0},p=(b,y)=>{if(b[j]=y?te:0,!l(b))return!1;if(b.finalize!==void 0){let D=b.finalize[Vo];if(D===void 0||a!==!0)G.push(b.finalize);else C.set(D.toString(),b.finalize);b.finalize=void 0}return N--,_(b),!0},h=(b,y,D,ne)=>{if(Ur(b),b.value=D,N++,ne&&P>0)P--;let re=y||b[j]===te;if(!p(b,re))J(b)},z=()=>{let b=w();if(!b)return!1;if(!p(b,b[j]===te))return M(b),!1;return!0};return{hasCompleted:ce,hasPending:()=>k.size!==0,writeBatch:(b)=>{let y=0;while(y<b){if(!z())break;y++}return y},serviceBatchImmediate:()=>{let b=0;while(b<5&&k.size!==0){let y=x();try{let D=y[i.FunctionID]&q,ne=X[D](y);if(y[j]=0,y.value=null,ne instanceof Promise)P++,ne.then((re)=>h(y,!1,re,!0),(re)=>h(y,!0,re,!0));else h(y,!1,ne,!1)}catch(D){h(y,!0,D,!1)}++b}return b},enqueueLock:B,drainReturnReleases:Q,releaseReturnedBufferReference:ue,hasAwaiting:()=>P>0,getAwaiting:()=>P}};var Kr=4096,En=64,kn={op:0,rxStatus:En,txStatus:En*2},ut=En*3,Zo=Atomics.store,Dt=({sabObject:e,isMain:r,startTime:t})=>{let n=e?.size??Kr,a=n+(Kr-n%Kr)%Kr,u=Ye(e?.sharedSab?e.sharedSab:ze(a,Kr*Kr)),c=u.sab,f=u.byteOffset,S=t??performance.now(),N=new Int32Array(c,f+kn.op,1);if(r)Zo(N,0,0);let P=new Int32Array(c,f+kn.rxStatus,1);return Zo(P,0,1),{sab:u,op:N,startAt:S,opView:N,rxStatus:P,txStatus:new Int32Array(c,f+kn.txStatus,1)}};var vr=4294967264,Rn=({lockSector:e})=>{let r=Ye(e??Fr(jr)),t=r.sab,n=new Int32Array(t,r.byteOffset+Do,1),a=new Int32Array(t,r.byteOffset+Wo,1),u=new Uint32Array(Te.slots),c=new Uint32Array(Te.slots),f=Math.clz32,S=Atomics.load,N=Atomics.store,P=Atomics.xor,H=4294967295,k=Hr,m=~k>>>0;u.fill(4294967295);let O=0,x=0,w=0,M=(K)=>u.slice(0,K),J=(K,ee)=>{let G=u,C=0;K=K|0,ee=ee>>>0;for(let ue=0;ue<K;ue++){let X=G[ue];if(X===4294967295)continue;if((ee&1<<(X&k))!==0)continue;if(C!==ue)G[C]=X;C++}let Q=C;for(;C<K;C++)G[C]=4294967295;return Q},_=()=>{let K=S(a,0)|0,G=~((w^K)>>>0)>>>0;if(O===0||G===0)return;if(G===4294967295){O=0,x=0;return}if(G&=x,G===0)return;x&=~G,O=J(O,G)},q=(K,ee)=>{let G=u,C=c,Q=O,ue=-1,X=0,ce=0,s=!1;if(Q===0&&x===0)return G[0]=0,C[0]=ee,K[i.Start]=0,K[i.slotBuffer]=(K[i.slotBuffer]&vr|0)>>>0,O=1,x=1,w^=1,0;if(Q!==0){let l=S(a,0)|0,p=~(w^l)>>>0;if(p!==0)p&=x;if(p===x>>>0)O=0,x=0,Q=0,p=0;else if(p!==0)for(let h=0;h<Q;h++){let z=G[h],b=z&k,y=1<<b;if((p&y)===0)continue;if(C[b]>>>0!==ee>>>0)continue;let D=~x>>>0,ne=(D&-D)>>>0;if(ne===0)return-1;let re=31-f(ne),me=z&m;return G[h]=(me|re)>>>0,C[re]=ee,K[i.Start]=me,K[i.slotBuffer]=(K[i.slotBuffer]&vr|re)>>>0,x=x&~y|ne,w^=ne,re}if(Q!==0&&p!==0&&p!==4294967295){s=!0;let h=0;for(let z=0;z<Q;z++){let b=G[z],y=b&k;if((p&1<<y)!==0)continue;let D=b&m;if(ue===-1&&D-ce>>>0>=ee>>>0)ue=h,X=ce;if(h!==z)G[h]=b;h++,ce=D+(C[y]>>>0)>>>0}for(let z=h;z<Q;z++)G[z]=4294967295;if(p!==0)x&=~p;O=Q=h}}if(Q>=Te.slots)return-1;let L=~x>>>0,g=(L&-L)>>>0;if(g===0)return-1;let B=31-f(g);if(!s&&Q!==0){if((G[0]&m)>=ee>>>0){for(let b=Q;b>0;b--)G[b]=G[b-1];return G[0]=B,C[B]=ee,K[i.Start]=0,K[i.slotBuffer]=(K[i.slotBuffer]&vr|B)>>>0,O=Q+1,x|=g,w^=g,B}for(let b=0;b+1<Q;b++){let y=G[b],ne=(y&m)+(C[y&k]>>>0)>>>0;if((G[b+1]&m)-ne>>>0<ee>>>0)continue;for(let me=Q;me>b+1;me--)G[me]=G[me-1];return G[b+1]=(ne|B)>>>0,C[B]=ee,K[i.Start]=ne,K[i.slotBuffer]=(K[i.slotBuffer]&vr|B)>>>0,O=Q+1,x|=g,w^=g,B}let p=G[Q-1],z=(p&m)+(C[p&k]>>>0)>>>0;return G[Q]=(z|B)>>>0,C[B]=ee,K[i.Start]=z,K[i.slotBuffer]=(K[i.slotBuffer]&vr|B)>>>0,O=Q+1,x|=g,w^=g,B}if(Q===0)return G[0]=B,C[B]=ee,K[i.Start]=0,K[i.slotBuffer]=(K[i.slotBuffer]&vr|B)>>>0,O=1,x|=g,w^=g,B;if(ue!==-1){for(let l=Q;l>ue;l--)G[l]=G[l-1];return G[ue]=(X|B)>>>0,C[B]=ee,K[i.Start]=X,K[i.slotBuffer]=(K[i.slotBuffer]&vr|B)>>>0,O=Q+1,x|=g,w^=g,B}return G[Q]=(ce|B)>>>0,C[B]=ee,K[i.Start]=ce,K[i.slotBuffer]=(K[i.slotBuffer]&vr|B)>>>0,O=Q+1,x|=g,w^=g,B};return{allocTask:(K)=>{let G=(K[i.PayloadLen]|0)+63&-64,C=q(K,G);if(C===-1)return-1;return N(n,0,w),C},setSlotLength:(K,ee)=>{K=K&Hr;let G=(ee|0)+63&-64;return c[K]=G>>>0,!0},lockSAB:t,free:(K)=>{P(a,0,1<<(K&Hr))},hostBits:n,workerBits:a,updateTable:_,startAndIndexToArray:M}};var Wt=Uint32Array.BYTES_PER_ELEMENT,pr=(e,r)=>{if(!Number.isInteger(e)||e<0)throw RangeError(`${r} must be a non-negative integer`);return e},Ln=(e,r=64)=>{let t=pr(e,"value"),n=pr(r,"alignment");if(n===0)throw RangeError("alignment must be greater than zero");return Math.ceil(t/n)*n},Pn=(e,r,t)=>({sab:e,byteOffset:pr(r,"byteOffset"),byteLength:pr(t,"byteLength")}),Li=({alignTo:e=64,startByteOffset:r=0}={})=>{let t=pr(e,"alignTo");if(t===0)throw RangeError("alignTo must be greater than zero");let n=pr(r,"startByteOffset"),a=[];return{slices:a,take:(c,f,{alignTo:S=t,reserveByteLength:N}={})=>{let P=pr(f,`${c} byteLength`),H=pr(S,`${c} alignTo`);if(H===0)throw RangeError(`${c} alignTo must be greater than zero`);let k=N==null?Ln(P,H):pr(N,`${c} reserveByteLength`);if(k<P)throw RangeError(`${c} reserveByteLength must cover byteLength`);let m=Ln(n,H),O={name:c,byteOffset:m,byteLength:P,reservedByteLength:k};return a.push(O),n=m+k,O},byteLength:()=>n,bind:(c,f)=>Pn(c,f.byteOffset,f.byteLength)}},ea=({slotIndex:e,slotStrideU32:r,baseU32:t=0,extraU32:n=0})=>e*r+t+n,ra=({slotIndex:e,slotStrideU32:r,baseByteOffset:t=0,baseU32:n=0,extraU32:a=0})=>t+ea({slotIndex:e,slotStrideU32:r,baseU32:n,extraU32:a})*Wt,vn=({slotCount:e,slotStrideU32:r,slotLengthU32:t,baseU32:n=0})=>{let a=pr(e,"slotCount");if(a===0)return 0;return(ea({slotIndex:a-1,slotStrideU32:r,baseU32:n})+t)*Wt},Pi=(e)=>e*2,xn=({slotCount:e,slotStrideU32:r,queues:t=1,alignTo:n=64})=>Ln(e*r*Wt*t,n),vi=({sab:e,byteOffset:r,slotCount:t,slotStrideU32:n})=>{let a=Pi(n),u=n*Wt,c=vn({slotCount:t,slotStrideU32:a,slotLengthU32:n});return{headerSlotStrideU32:a,requestHeaders:Pn(e,r,c),returnHeaders:Pn(e,r+u,c)}},_n=({signalBytes:e,abortBytes:r,lockSectorBytes:t,headerSlotStrideU32:n,slotCount:a,headerLayout:u="interleaved",alignTo:c=64,createBuffer:f=(S)=>new SharedArrayBuffer(S)})=>{let S=Li({alignTo:c}),N=S.take("signals",e),P=S.take("requestLockSector",t),H=S.take("returnLockSector",t),k,m,O;if(u==="interleaved")O=S.take("interleavedHeaders",xn({slotCount:a,slotStrideU32:n,queues:2,alignTo:c}));else k=S.take("requestHeaders",xn({slotCount:a,slotStrideU32:n,alignTo:c})),m=S.take("returnHeaders",xn({slotCount:a,slotStrideU32:n,alignTo:c}));let x=S.take("abortSignals",r),w=f(S.byteLength()),M=S.bind(w,N),J=S.bind(w,x),_=S.bind(w,P),q=S.bind(w,H),j=u==="interleaved"?vi({sab:w,byteOffset:O.byteOffset,slotCount:a,slotStrideU32:n}):{headerSlotStrideU32:n,requestHeaders:S.bind(w,k),returnHeaders:S.bind(w,m)};return{controlSAB:w,signals:M,abortSignals:J,lock:{headers:j.requestHeaders,headerSlotStrideU32:j.headerSlotStrideU32,lockSector:_,payloadSector:_},returnLock:{headers:j.returnHeaders,headerSlotStrideU32:j.headerSlotStrideU32,lockSector:q,payloadSector:q},slices:S.slices}};var _i=4096,_r=new TextEncoder,In=new TextDecoder,fr=64,Ci=_i,Ii=(e)=>e+63&-64,na=(e)=>e.constructor===Uint8Array,Mi=(e)=>na(e)?e:new Uint8Array(e.buffer,e.byteOffset,e.byteLength),Fi=(e)=>e instanceof TypeError,Oi=(e)=>e instanceof TypeError,oa=()=>{let e=globalThis.Buffer;if(typeof e?.from!=="function"||typeof e?.allocUnsafe!=="function"||typeof e?.allocUnsafeSlow!=="function")return;return e},Ni=(e,r)=>{let t=0,n=0;for(let a of e){let u=_r.encode(a);if(n+u.byteLength>r.byteLength)break;r.set(u,n),n+=u.byteLength,t+=a.length}return{read:t,written:n}},Cn=(e,r)=>{let t=new Uint8Array(r.byteLength),n=typeof _r.encodeInto==="function"?_r.encodeInto(e,t):Ni(e,t);if(n.written>0)r.set(t.subarray(0,n.written),0);return n},ta=(e)=>In.decode(e.slice()),aa=(e,r,t)=>{if(typeof _r.encodeInto!=="function")return Cn(e,r);if(t?.encodeInto===!0)return _r.encodeInto(e,r);if(t?.encodeInto===!1)return Cn(e,r);try{return _r.encodeInto(e,r)}catch(n){if(!Fi(n))throw n;return Cn(e,r)}},sa=(e,r)=>{if(r?.decode===!0)return In.decode(e);if(r?.decode===!1)return ta(e);try{return In.decode(e)}catch(t){if(!Oi(t))throw t;return ta(e)}},Mn=({sab:e,payloadConfig:r,textCompat:t})=>{let n=e===void 0?void 0:Ye(e),a=e!==void 0&&!nt(e),u=n?.sab instanceof ArrayBuffer&&!(n.sab instanceof SharedArrayBuffer),c=a||u,f=n?.byteLength,S=Zr&&n?.sab instanceof ArrayBuffer&&!(n.sab instanceof SharedArrayBuffer)?void 0:oa(),N=dr({sab:n?.sab,options:!c||f===void 0?r:{...r,mode:"fixed",payloadInitialBytes:r?.payloadInitialBytes??f,payloadMaxByteLength:r?.payloadMaxByteLength??f}}),P=N.mode==="growable",H=n?.sab??(P?ze(N.payloadInitialBytes,N.payloadMaxByteLength):ze(N.payloadInitialBytes)),k=n?.byteOffset??0,m=n?.byteLength??H.byteLength,O=new Uint8Array(H,k+fr,Math.max(0,m-fr)),x=S?(s,L)=>{let g=S.from(s,L+fr);if(g.buffer!==s)throw Error("Buffer view does not alias shared buffer");return g}:void 0,w=x?.(H,k),M=new Float64Array(H,k+fr,Math.max(0,m-fr)>>>3),J=()=>m-fr,_=(s)=>{if(J()>=s)return!0;if(!P)return!1;try{if(!(H instanceof SharedArrayBuffer))return!1;H=ko(H,Ii(fr+s+Ci))}catch{return!1}return k=0,m=H.byteLength,O=new Uint8Array(H,k+fr,m-fr),w=x?.(H,k),M=new Float64Array(H,k+fr,m-fr>>>3),!0},q=(s,L)=>{if(!w)return sa(O.subarray(s,L),t);return w.toString("utf8",s,L)},j=(s,L=0)=>{let g=Mi(s);if(!_(L+g.byteLength))return-1;return O.set(g,L),g.byteLength},te=(s,L=0)=>{let g=s.byteLength;if(!_(L+g))return-1;return O.set(s,L),g},oe=(s,L=0)=>{let g=s.byteLength;if(!_(L+g))return-1;return O.set(new Uint8Array(s),L),g},K=(s,L=0)=>{let g=s.byteLength;if(!_(L+g))return-1;return M.set(s,L>>>3),g},ee=(s,L)=>O.slice(s,L),G=(s,L)=>O.subarray(s,L),C=(s,L)=>{if(!S||!w)return ee(s,L);let g=Math.max(0,L-s|0),B=S.allocUnsafe(g);if(g===0)return B;return w.copy(B,0,s,L),B},Q=(s,L)=>{if(!S||!w)return ee(s,L).buffer;let g=Math.max(0,L-s|0);if(g===0)return new ArrayBuffer(0);let B=S.allocUnsafeSlow(g);return w.copy(B,0,s,L),B.buffer};return{readUtf8:q,writeBinary:j,writeBuffer:te,writeArrayBuffer:oe,write8Binary:K,readBytesCopy:ee,readBytesView:G,readBytesBufferCopy:C,readBufferCopy:C,readBytesArrayBufferCopy:Q,readArrayBufferCopy:Q,read8BytesFloatCopy:(s,L)=>M.slice(s>>>3,L>>>3),read8BytesFloatView:(s,L)=>M.subarray(s>>>3,L>>>3),writeUtf8:(s,L,g=s.length*3)=>{if(!_(L+g))return-1;let B=O.subarray(L,L+g);if(!w){let{read:h,written:z}=aa(s,B,t);if(h!==s.length)return-1;return z}let{read:l,written:p}=_r.encodeInto(s,B);if(l!==s.length)return-1;return p}}},ia=({headersBuffer:e,slotStrideU32:r,textCompat:t})=>{let n=oa(),a=e instanceof Uint32Array?e.buffer:e,u=e instanceof Uint32Array?e.byteOffset:0,c=Uint32Array.BYTES_PER_ELEMENT,f=r??yr,S=st*c,N=new Uint8Array(a,u),P=n?.from(a,u),H=new Float64Array(a,u,a.byteLength-u>>>3),k=(l)=>ra({slotIndex:l,slotStrideU32:f,baseByteOffset:u,baseU32:Te.header}),m=new Uint32Array(Te.slots);for(let l=0;l<Te.slots;l++)m[l]=k(l)-u;let O=new Uint32Array(a,u,a.byteLength-u>>>2),x=new Uint32Array(Te.slots);for(let l=0;l<Te.slots;l++)x[l]=m[l]>>>2;let w=(l,p,h)=>{let z=x[h];for(let b=0;b<p;b++)O[z+b]=l[b];return p*c},M=(l,p,h)=>{let z=x[h];for(let b=0;b<p;b++)l[b]=O[z+b];return l},J=(l,p)=>(l|0)>=0&&l+p<=S,_=(l,p)=>{let h=m[p],z=N.subarray(h,h+S);if(!P){let{read:D,written:ne}=aa(l,z,t);if(D!==l.length)return-1;return ne}let{read:b,written:y}=_r.encodeInto(l,z);if(b!==l.length)return-1;return y},q=(l,p,h)=>{let z=m[h];if(!P)return sa(N.subarray(z+l,z+p),t);return P.toString("utf8",z+l,z+p)},j=(l,p,h=0)=>(N.set(l,m[p]+h),l.byteLength),te=(l,p,h=0)=>(N.set(l,m[p]+h),l.byteLength),oe=(l,p,h=0)=>{let z=l.byteLength;return N.set(new Uint8Array(l),m[p]+h),z},K=(l,p,h=0)=>(N.set(l,m[p]+h),l.byteLength),ee=(l,p,h=0)=>{if(!na(l))return-1;return K(l,p,h)},G=(l,p,h=0)=>{let z=l.byteLength;if(!J(h,z))return-1;return H.set(l,m[p]+h>>>3),z},C=(l,p,h)=>N.slice(m[h]+l,m[h]+p),Q=(l,p,h)=>N.subarray(m[h]+l,m[h]+p),ue=(l,p,h)=>{if(!n||!P)return C(l,p,h);let z=p-l,b=n.allocUnsafe(z),y=m[h];return P.copy(b,0,y+l,y+p),b},X=(l,p,h)=>{if(!n)return C(l,p,h);let z=ue(l,p,h);return new Uint8Array(z.buffer,z.byteOffset,z.byteLength)},s=Zr?(l,p,h)=>C(l,p,h):X,L=(l,p,h)=>{if(!n||!P)return C(l,p,h).buffer;let z=Math.max(0,p-l|0);if(z===0)return new ArrayBuffer(0);let b=n.allocUnsafeSlow(z),y=m[h];return P.copy(b,0,y+l,y+p),b.buffer};return{writeUtf8:_,readUtf8:q,writeBinary:j,writeBuffer:te,writeArrayBuffer:oe,writeExactUint8Array:K,writeUint8Array:ee,writeU32Words:w,readU32Words:M,write8Binary:G,readBytesCopy:C,readBytesView:Q,readBytesBufferCopy:ue,readBufferCopy:ue,readUint8ArrayCopy:s,readUint8ArrayBufferCopy:X,readBytesArrayBufferCopy:L,readArrayBufferCopy:L,read8BytesFloatCopy:(l,p,h)=>H.slice(m[h]+l>>>3,m[h]+p>>>3),read8BytesFloatView:(l,p,h)=>H.subarray(m[h]+l>>>3,m[h]+p>>>3),maxBytes:S}};var Ee={Function:0,Symbol:1,Json:2,Serializable:3},Di=(e,r,t)=>{switch(r){case Ee.Function:return`KNT_ERROR_0: Function is not a valid type; name: ${typeof e.value==="function"?e.value.name||"<anonymous>":"<unknown>"}`;case Ee.Symbol:return"KNT_ERROR_1: Symbol must use Symbol.for(...) keys";case Ee.Json:return t==null||t.length===0?"KNT_ERROR_2: JSON stringify failed; payload must be JSON-safe":`KNT_ERROR_2: JSON stringify failed; ${t}`;case Ee.Serializable:return t==null||t.length===0?"KNT_ERROR_3: Unsupported payload type; serialize it yourself":`KNT_ERROR_3: Unsupported payload type; ${t}`}},Me=({task:e,type:r,onPromise:t,detail:n})=>{let a=Di(e,r,n);if(!xr)return e.value=a,e[i.FlagsToHost]=Mt.Reject,!1;if(t==null)throw TypeError(a);if(!vt(e))return!1;return queueMicrotask(()=>{at(e),e.value=a,t(e,!0,a)}),!1};var ua=Symbol.for("knitting.payloadCodec.transportFinalizer");class hr{header;payload;constructor(e,r){this.header=e,this.payload=r}[Symbol.dispose](){let e=this.payload;if(e!==null&&typeof e==="object")e[Symbol.dispose]?.()}[ua](){let e=this.payload;if(e===null||typeof e!=="object")return;let r=e[ua];return typeof r==="function"?r.call(e):void 0}}var Ut=()=>{throw Error('BufferReference cannot run in runtime "browser"')};var br="knitting.sharedArrayBuffer",Wn=Symbol.for("knitting.sharedArrayBuffer.numericTransfer"),jt=8,Wi=2,Ui=Symbol.for("knitting.payloadCodec"),la=()=>{let e=$e();if(e!==void 0&&typeof e.pid==="number")return e.pid;let r=globalThis.Deno;if(typeof r?.pid==="number")return r.pid;return 0},On=`${Oe}:${la()}`,Hi=typeof SharedArrayBuffer==="function",ji=(e)=>Hi&&e instanceof SharedArrayBuffer,ca=new WeakMap,Ht=new WeakMap,fa=new WeakMap,Nn=new Map,Ki=typeof FinalizationRegistry==="function"?new FinalizationRegistry((e)=>{try{Ut().releaseShared(e)}catch{}}):void 0,Dn=(e)=>[Number(e&0xffffffffn)>>>0,Number(e>>32n&0xffffffffn)>>>0],Fn=(e,r)=>BigInt(r>>>0)<<32n|BigInt(e>>>0),Gi=(e)=>{switch(e){case"node":return 1;case"deno":return 2;case"bun":return 3;default:return 0}},$i=(e)=>{switch(e){case 1:return"node";case 2:return"deno";case 3:return"bun";default:return}},zi=(e)=>{if(e===void 0)return;let r=fa.get(e);if(r===void 0)r=new Set,fa.set(e,r);return r},Yi=(e)=>{let r=ca.get(e);if(r===void 0){let t=Ut().produceShared(e);r={token:t.token,pointer:t.pointer,byteLength:t.byteLength},ca.set(e,r),Ki?.register(e,r.token)}return r},Vi=(e)=>({kind:br,origin:On,runtime:Oe,pointer:e.pointer.toString(),token:e.token.toString(),byteLength:e.byteLength}),qi=(e)=>{if(e.byteLength>4294967295)return;let[r,t]=Dn(e.token),[n,a]=Dn(e.pointer);return[r,t,n,a,e.byteLength>>>0,Gi(Oe),la()>>>0,0]},Qi=(e)=>{let[r,t]=Dn(e.token);return[r,t]},Ji=(e)=>{let r=Ht.get(e);if(r!==void 0)return r;let t=Yi(e);return r=da(e,t,Vi(t)),r},da=(e,r,t)=>{let n=Ht.get(e);if(n!==void 0)return n;let a=qi(r),u=Qi(r);return n={[Ui]:br,toMetadata:()=>t,[Wn]:(c)=>{if(a===void 0)return;let f=zi(c);if(f===void 0)return a;if(f.has(r.token))return u;return f.add(r.token),a}},Ht.set(e,n),n},Un=(e)=>{if(ji(e))return Ji(e);return Ht.get(e)},Xi=(e)=>{if(e===null||typeof e!=="object")return!1;let r=e;return r.kind===br&&typeof r.origin==="string"&&typeof r.runtime==="string"&&typeof r.pointer==="string"&&typeof r.token==="string"&&typeof r.byteLength==="number"&&Number.isInteger(r.byteLength)&&r.byteLength>=0},ya=(e,r)=>{if(e.origin!==On)throw Error(`SharedArrayBuffer cannot cross a process boundary (origin ${e.origin} != ${On}); it is shared by reference to thread workers only.`);let t=BigInt(e.token),n=Nn.get(t);if(n!==void 0)return n;if(r)throw TypeError("SharedArrayBuffer cache miss for warm token payload");let a=Ut().adoptShared({token:t,pointer:BigInt(e.pointer),byteOffset:0,byteLength:e.byteLength});return Nn.set(t,a.buffer),da(a.buffer,{token:t,pointer:BigInt(e.pointer),byteLength:e.byteLength},e),a.buffer},Zi=(e)=>{if(!Xi(e))throw TypeError("Invalid SharedArrayBuffer payload metadata");return ya(e,!1)},eu=(e)=>{if(e.length===Wi){let a=Fn(e[0]??0,e[1]??0),u=Nn.get(a);if(u!==void 0)return u;throw TypeError("SharedArrayBuffer cache miss for warm token payload")}let r=$i(e[5]??0);if(r===void 0)throw TypeError("Invalid SharedArrayBuffer numeric runtime");let t=e[6];if(t===void 0||!Number.isInteger(t)||t<0)throw TypeError("Invalid SharedArrayBuffer numeric origin");if(e.length!==jt)throw TypeError("Invalid SharedArrayBuffer numeric word count");let n={kind:br,origin:`${r}:${t>>>0}`,runtime:r,pointer:Fn(e[2]??0,e[3]??0).toString(),token:Fn(e[0]??0,e[1]??0).toString(),byteLength:e[4]??0};return ya(n,!1)},ru=globalThis,tu=ru.__KNITTING_PAYLOAD_CODECS__??=Object.create(null);tu[br]={decode:Zi,decodeNumeric:eu};var Gt=(e)=>!1,Kt=()=>{throw Error("ProcessSharedBuffer is unavailable in the browser build")};class Cr{constructor(){Kt()}static create=Kt;static fromMetadata=Kt;toMetadata=Kt}var pa=Symbol.for("knitting.numericArray");class $t extends Array{}Object.defineProperty($t.prototype,pa,{value:!0,enumerable:!1,writable:!1,configurable:!1});var Hn=(e)=>e[pa]===!0,jn=(e)=>{let r=e.length,t=new $t(r);for(let n=0;n<r;n++)t[n]=e[n];return t};var zn=new ArrayBuffer(8),Yt=new Float64Array(zn),ka=new BigInt64Array(zn),ar=new Uint32Array(zn),Ea=new TextEncoder,Vt=globalThis.Buffer,ma=typeof Vt?.byteLength==="function"?(e,r)=>Vt.byteLength(e,r):void 0,nu=(e)=>typeof Vt?.isBuffer==="function"&&Vt.isBuffer(e),ou=(e)=>e!=null&&typeof e==="object"&&Object.getPrototypeOf(e)===Uint8Array.prototype,au=!ma?(e)=>Ea.encode(e).byteLength:(e)=>ma(e,"utf8"),su=-(1n<<63n),iu=(1n<<63n)-1n,{parse:Sr,stringify:$r}=JSON,{for:Kn,keyFor:uu}=Symbol,Ra=Kn("knitting.payloadCodec"),Yn="knitting.bufferReference",Vn="knitting.processSharedBuffer",xa=globalThis,La=Object.getPrototypeOf,Jt=Object.prototype.hasOwnProperty,qt=Array.isArray,Pa=Object.prototype,ga="Unsupported object type. Allowed: plain object, array, Error, Date, Envelope, Buffer, ArrayBuffer, DataView, typed arrays, and registered external payloads. Serialize it yourself.",ha="Envelope payload must be an ArrayBuffer, SharedArrayBuffer, ProcessSharedBuffer, or BufferReference.",cu="Envelope header must be a JSON-like value or string.",fu="Envelope header cannot contain Promise values.",lu="Dynamic payload exceeds maxPayloadBytes.",du="Dynamic payload buffer capacity exceeded.",zr="SharedArrayBuffer and BufferReference are process-local pointer payloads and cannot cross a process-worker boundary; use ProcessSharedBuffer instead.",ba="Reserved Knitting external payload codec cannot be forged.",Yr=(e)=>e===br||e===Yn,Sa=(e)=>Yr(e)||e===Vn,yu=(e)=>{let r=La(e);return r===Pa||r===null},Aa=(e)=>{let r=e[Ra];return typeof r==="string"?r:void 0},pu=(e)=>{switch(e){case"node":return 1;case"deno":return 2;case"bun":return 3;default:return 0}},mu=(e)=>{switch(e){case"shared-array-buffer":return 1;case"external-array-buffer":return 2;default:return 0}},Gr=(e)=>typeof e==="number"&&Number.isInteger(e)&&e>=0&&e<=4294967295,Ba=(e)=>typeof e.toMetadata==="function"&&typeof e[Ra]==="string",wa=(e)=>{if(it(e))return Nt.prototype.toMetadata.call(e);if(Gt(e))return Cr.prototype.toMetadata.call(e);return e.toMetadata()},zt=(e,r)=>{let t=Sr(e);if(!qt(t)||t.length!==2)return t;let n=t[0],a=t[1];if(typeof n!=="string")return{codec:n,metadata:a};if(r&&Yr(n))throw TypeError(zr);let u=xa.__KNITTING_PAYLOAD_CODECS__?.[n];return typeof u?.decode==="function"?u.decode(a):{codec:n,metadata:a}},Qt=8,Gn=8,gu=4294967295,qn=(e,r)=>{let t=xa.__KNITTING_PAYLOAD_CODECS__?.[e];if(typeof t?.decodeNumeric==="function")return t.decodeNumeric(r);return{codec:e,metadata:Array.from(r)}},hu=(e)=>qn(Vn,e),bu=(e)=>qn(Yn,e),Su=(e)=>qn(br,e),Au=(e)=>{let r=e.value;switch(typeof r){case"number":if(r!==r)return e[i.Type]=Ve.NaN,!0;return Yt[0]=r,e[i.Type]=Ve.Float64,e[i.Start]=ar[0],e[i.End]=ar[1],!0;case"boolean":return e[i.Type]=r?Ve.True:Ve.False,!0;case"undefined":return e[i.Type]=Ve.Undefined,!0;case"bigint":if(r<su||r>iu)return!1;return ka[0]=r,e[i.Type]=Ve.BigInt,e[i.Start]=ar[0],e[i.End]=ar[1],!0;case"object":if(r===null)return e[i.Type]=Ve.Null,!0;return!1;default:return!1}},$n=(e,r)=>{if(e instanceof Promise)return!0;if(e===null||typeof e!=="object")return!1;let t=e,n=r??new Set;if(n.has(t))return!1;if(n.add(t),qt(t)){let u=t;for(let c=0;c<u.length;c++)if($n(u[c],n))return!0;return!1}if(!yu(t))return!1;let a=t;for(let u in a){if(!Jt.call(a,u))continue;if($n(a[u],n))return!0}return!1},va=(e)=>{if(e===null||e===void 0)return e;switch(typeof e){case"string":case"number":case"boolean":return e;case"bigint":return e.toString();case"symbol":case"function":return String(e)}if(e instanceof Error){let r={name:e.name,message:e.message};if(typeof e.stack==="string")r.stack=e.stack;if(Jt.call(e,"cause"))r.cause=va(e.cause);return r}try{return Sr($r(e))}catch{return String(e)}},Bu=(e)=>{let r={name:e.name,message:e.message};if(typeof e.stack==="string")r.stack=e.stack;if(Jt.call(e,"cause"))r.cause=va(e.cause);return r},wu=(e)=>{let r;try{r=Sr(e)}catch{return Error(e)}if(r==null||typeof r!=="object")return Error(String(r));let t=r,n=Error(typeof t.message==="string"?t.message:"");if(typeof t.name==="string"&&t.name.length>0)n.name=t.name;if(typeof t.stack==="string")try{n.stack=t.stack}catch{}if(Jt.call(t,"cause"))n.cause=t.cause;return n},Ta=(e)=>{let r=e[0],t=0n;for(let n=e.length-1;n>=1;n--)t=t<<8n|BigInt(e[n]);return r===1?-t:t},Tu=(e,r,t)=>{let n=r??yr,a=vn({slotCount:Te.slots,slotStrideU32:n,slotLengthU32:st,baseU32:Te.header});if(e.byteLength<Math.max(a,Bn))return null;return ia({headersBuffer:e,slotStrideU32:n,textCompat:t})},_a=(e,r,t)=>{let n=Tu(e,r,t);if(n===null)throw RangeError("headersBuffer is too small for static payload IO");return n},ku=({lockSector:e,payload:r,sab:t,payloadConfig:n,headersBuffer:a,headerSlotStrideU32:u,textCompat:c,onPromise:f,processBoundary:S=!1})=>{let N=r?.sab??t,P=dr({sab:N,options:r?.config??n}),H=P.maxPayloadBytes,{allocTask:k,setSlotLength:m,free:O}=Rn({lockSector:e}),{writeBinary:x,writeBuffer:w,writeArrayBuffer:M,write8Binary:J,writeUtf8:_}=Mn({sab:N,payloadConfig:P,textCompat:c?.payload}),{maxBytes:q,writeBinary:j,writeBuffer:te,writeArrayBuffer:oe,writeExactUint8Array:K,writeU32Words:ee,write8Binary:G,writeUtf8:C}=_a(a,u,c?.headers),Q=(o,E,T)=>Me({task:o,type:Ee.Serializable,onPromise:f,detail:`${lu} limit=${H}; actual=${E}; type=${T}.`}),ue=(o)=>Me({task:o,type:Ee.Serializable,onPromise:f,detail:du}),X=(o,E,T)=>{if(E<=H)return!0;return Q(o,E,T)},ce=(o,E,T,d)=>{let W=E.length*3;if(W+T<=H)return W;let Y=au(E),I=Y+T;if(I>H)return Q(o,I,d),-1;return Y},s=(o,E,T)=>ce(o,E,0,T),L=(o,E)=>(o[i.PayloadLen]=E,k(o)),g=-1,B=(o,E)=>{o[i.PayloadLen]=E;let T=k(o);return g=T,T},l=()=>{if(g!==-1)O(g),g=-1},p=(o,E)=>{if(O(E),g===E)g=-1;return ue(o)},h=new Uint8Array(16),z=(o)=>{let E=0,T=o;if(o<0n)E=1,T=-o;let d=1;while(T>0n){if(d>=h.byteLength){let W=new Uint8Array(h.byteLength<<1);W.set(h,0),h=W}h[d++]=Number(T&0xffn),T>>=8n}return h[0]=E,d},b=(o)=>{h.fill(0,0,o)},y=(o,E)=>{let T;try{T=$r(Bu(E))}catch(Y){let I=Y instanceof Error?Y.message:String(Y);return Me({task:o,type:Ee.Serializable,onPromise:f,detail:I})}let d=s(o,T,"Error");if(d<0)return!1;o[i.Type]=v.Error;let W=B(o,d),V=_(T,o[i.Start],d);if(V<0)return p(o,W);return o[i.PayloadLen]=V,m(W,V),o.value=null,!0},D=(o,E,T,d,W)=>{let V=T.byteLength;if(V<=q){let se=j(T,E);if(se!==-1)return o[i.Type]=W,o[i.PayloadLen]=se,o.value=null,!0}if(o[i.Type]=d,!X(o,V,Mo(d)))return!1;let Y=B(o,V),I=x(T,o[i.Start]);if(I<0)return p(o,Y);return o[i.PayloadLen]=I,m(Y,I),o.value=null,!0},ne=(o,E,T)=>{let d=T.byteLength;if(d<=q)return K(T,E),o[i.Type]=v.StaticBinary,o[i.PayloadLen]=d,o.value=null,!0;if(o[i.Type]=v.Binary,!X(o,d,"Binary"))return!1;let W=B(o,d),V=x(T,o[i.Start]);if(V<0)return p(o,W);return o[i.PayloadLen]=V,m(W,V),o.value=null,!0},re=(o,E,T)=>{let d=T.byteLength;if(d<=q){let Y=te(T,E);if(Y!==-1)return o[i.Type]=v.StaticBuffer,o[i.PayloadLen]=Y,o.value=null,!0}if(o[i.Type]=v.Buffer,!X(o,d,"Buffer"))return!1;let W=B(o,d),V=w(T,o[i.Start]);if(V<0)return p(o,W);return o[i.PayloadLen]=V,m(W,V),o.value=null,!0},me=(o,E,T)=>{let d=T.byteLength;if(d<=q){let Y=G(T,E);if(Y!==-1)return o[i.Type]=v.StaticFloat64Array,o[i.PayloadLen]=Y,o.value=null,!0}if(o[i.Type]=v.Float64Array,!X(o,d,"Float64Array"))return!1;let W=B(o,d),V=J(T,o[i.Start]);if(V<0)return p(o,W);return o[i.PayloadLen]=V,m(W,V),o.value=null,!0},ge=new Float64Array(0),ve=(o,E,T)=>{let d=T.length;if(ge.length<d)ge=new Float64Array(d);for(let se=0;se<d;se++)ge[se]=T[se];let W=ge.subarray(0,d),V=W.byteLength;if(V<=q){let se=G(W,E);if(se!==-1)return o[i.Type]=v.StaticNumericArray,o[i.PayloadLen]=se,o.value=null,!0}if(o[i.Type]=v.NumericArray,!X(o,V,"NumericArray"))return!1;let Y=B(o,V),I=J(W,o[i.Start]);if(I<0)return p(o,Y);return o[i.PayloadLen]=I,m(Y,I),o.value=null,!0},Ne=(o,E,T)=>{let d=T.byteLength;if(d<=q){let Y=oe(T,E);if(Y!==-1)return o[i.Type]=v.StaticArrayBuffer,o[i.PayloadLen]=Y,o.value=null,!0}if(o[i.Type]=v.ArrayBuffer,!X(o,d,"ArrayBuffer"))return!1;let W=B(o,d),V=M(T,o[i.Start]);if(V<0)return p(o,W);return o[i.PayloadLen]=V,m(W,V),o.value=null,!0},fe=new Uint32Array(Qt),he=new Uint32Array(jt),be=(o,E,T)=>{let d=T.descriptor;if(d===void 0||d.name!==void 0||!Gr(d.fd)||!Gr(d.size)||!Gr(d.byteLength)||!Gr(T.byteOffset)||!Gr(T.byteLength))return!1;let W=d.baseAddressMod64;if(W!==void 0&&!Gr(W))return!1;return fe[0]=d.fd,fe[1]=d.size,fe[2]=d.byteLength,fe[3]=T.byteOffset,fe[4]=T.byteLength,fe[5]=pu(d.runtime),fe[6]=mu(d.kind),fe[7]=W===void 0?gu:W,o[i.Type]=v.ProcessSharedBuffer,o[i.PayloadLen]=ee(fe,Qt,E),o.value=null,!0},de=(o,E,T)=>{let d=it(T)?Nt.prototype[wn].call(T):T[wn]?.();if(d===void 0)return!1;return o[i.Type]=v.BufferReference,o[i.PayloadLen]=ee(d,Gn,E),Lr(o,T),o.value=null,!0},De=(o,E,T)=>{let d=T[Wn]?.(e);if(d===void 0)return!1;return he[0]=d[0]??0,he[1]=d[1]??0,he[2]=d[2]??0,he[3]=d[3]??0,he[4]=d[4]??0,he[5]=d[5]??0,he[6]=d[6]??0,he[7]=d[7]??0,o[i.Type]=v.SharedArrayBuffer,o[i.PayloadLen]=ee(he,d.length,E),o.value=null,!0},xe=(o,E,T,d=!1)=>{let W=Aa(T);if(W===void 0)return Me({task:o,type:Ee.Serializable,onPromise:f,detail:ga});if(d){if(S&&Yr(W))return Me({task:o,type:Ee.Serializable,onPromise:f,detail:zr});if(W===br&&De(o,E,T))return!0;if(W===Yn&&de(o,E,T))return!0;if(W===Vn&&be(o,E,T))return!0}else if(Sa(W))return Me({task:o,type:Ee.Serializable,onPromise:f,detail:S&&Yr(W)?zr:ba});let V;try{V=$r([W,d?wa(T):T.toMetadata()])}catch(Z){let we=Z instanceof Error?Z.message:String(Z);return Me({task:o,type:Ee.Serializable,onPromise:f,detail:we})}if(typeof V!=="string")return Me({task:o,type:Ee.Serializable,onPromise:f,detail:"External payload metadata must be JSON serializable."});if(V.length<=q){let Z=C(V,E);if(Z!==-1)return o[i.Type]=v.StaticExternalPayload,o[i.PayloadLen]=Z,Lr(o,T),o.value=null,!0}o[i.Type]=v.ExternalPayload;let Y=s(o,V,"ExternalPayload");if(Y<0)return!1;let I=B(o,Y),se=_(V,o[i.Start],Y);if(se<0)return p(o,I);return o[i.PayloadLen]=se,m(I,se),Lr(o,T),o.value=null,!0},He=(o,E)=>(Yt[0]=E.getTime(),o[i.Type]=v.Date,o[i.Start]=ar[0],o[i.End]=ar[1],o.value=null,!0),We=(o,E,T)=>{if($n(E)){Me({task:o,type:Ee.Serializable,onPromise:f,detail:fu});return}if(T)return E;let d;try{d=$r(E)}catch(W){let V=W instanceof Error?W.message:String(W);Me({task:o,type:Ee.Json,onPromise:f,detail:V});return}if(typeof d!=="string"){Me({task:o,type:Ee.Serializable,onPromise:f,detail:cu});return}return d},Le=(o)=>{if(o===null||typeof o!=="object")return;let E=Un(o);if(E!==void 0)return{payload:E,trustedReservedCodec:!0};if(it(o)||Gt(o))return{payload:o,trustedReservedCodec:!0};if(Ba(o))return{payload:o,trustedReservedCodec:!1};return},je=(o,E,T,d,W)=>{let V=new Uint8Array(W),Y=V.byteLength,I=Y>0?Y:1,se=C(T,E);if(se!==-1){if(!X(o,I,"EnvelopeStaticHeaderPayload"))return!1;let U=B(o,I);if(o[i.Type]=d?v.EnvelopeStaticHeaderString:v.EnvelopeStaticHeader,o[i.PayloadLen]=se,o[i.End]=Y,Y>0){let le=x(V,o[i.Start]);if(le<0)return p(o,U);m(U,le)}return o.value=null,!0}let Z=ce(o,T,Y,d?"EnvelopeDynamicHeaderString":"EnvelopeDynamicHeader");if(Z<0)return!1;o[i.Type]=d?v.EnvelopeDynamicHeaderString:v.EnvelopeDynamicHeader;let we=B(o,Z+Y),ke=o[i.Start],R=_(T,ke,Z);if(R<0)return p(o,we);if(Y>0){if(x(V,ke+R)<0)return p(o,we)}return o[i.PayloadLen]=R,o[i.End]=Y,m(we,R+Y),o.value=null,!0},qe=(o,E,T,d,W,V)=>{let Y=Aa(W);if(Y===void 0)return Me({task:o,type:Ee.Serializable,onPromise:f,detail:ha});if(V){if(S&&Yr(Y))return Me({task:o,type:Ee.Serializable,onPromise:f,detail:zr})}else if(Sa(Y))return Me({task:o,type:Ee.Serializable,onPromise:f,detail:S&&Yr(Y)?zr:ba});let I;try{I=$r([Y,V?wa(W):W.toMetadata()])}catch(Pe){let Ae=Pe instanceof Error?Pe.message:String(Pe);return Me({task:o,type:Ee.Serializable,onPromise:f,detail:Ae})}if(typeof I!=="string")return Me({task:o,type:Ee.Serializable,onPromise:f,detail:"Envelope body metadata must be JSON serializable."});let se=Ea.encode(I),Z=se.byteLength,we=C(T,E);if(we!==-1){if(!X(o,Z,"EnvelopeStaticHeaderExternal"))return!1;let Pe=B(o,Z);o[i.Type]=d?v.EnvelopeStaticHeaderStringExternal:v.EnvelopeStaticHeaderExternal,o[i.PayloadLen]=we,o[i.End]=Z;let Ae=x(se,o[i.Start]);if(Ae<0)return p(o,Pe);return m(Pe,Ae),Lr(o,W),o.value=null,!0}let ke=ce(o,T,Z,d?"EnvelopeDynamicHeaderStringExternal":"EnvelopeDynamicHeaderExternal");if(ke<0)return!1;o[i.Type]=d?v.EnvelopeDynamicHeaderStringExternal:v.EnvelopeDynamicHeaderExternal;let R=B(o,ke+Z),U=o[i.Start],le=_(T,U,ke);if(le<0)return p(o,R);if(x(se,U+le)<0)return p(o,R);return o[i.PayloadLen]=le,o[i.End]=Z,m(R,le+Z),Lr(o,W),o.value=null,!0},er=(o,E,T)=>{let{header:d,payload:W}=T,V=typeof d==="string";if(W instanceof ArrayBuffer){let I=We(o,d,V);if(I===void 0)return!1;return je(o,E,I,V,W)}let Y=Le(W);if(Y!==void 0){let I=We(o,d,V);if(I===void 0)return!1;return qe(o,E,I,V,Y.payload,Y.trustedReservedCodec)}return Me({task:o,type:Ee.Serializable,onPromise:f,detail:ha})},sr=(o,E)=>{if(vt(o))E.then((T)=>{at(o),o.value=T,f(o,!1,T)},(T)=>{at(o),o.value=T,f(o,!0,T)});return!1};return(o,E)=>{let T=o.value;if(Au(o))return!0;switch(typeof T){case"bigint":{let d=z(T),W=h.subarray(0,d);if(d<=q){let I=j(W,E);if(I!==-1)return o[i.Type]=v.StaticBigInt,o[i.PayloadLen]=I,b(d),o.value=null,!0}if(o[i.Type]=v.BigInt,!X(o,d,"BigInt"))return b(d),!1;let V=L(o,d),Y=x(W,o[i.Start]);if(Y<0)return b(d),p(o,V);return o[i.PayloadLen]=Y,m(V,Y),b(d),o.value=null,!0}case"function":return Me({task:o,type:Ee.Function,onPromise:f});case"object":g=-1;try{let d=T,W=Un(d);if(W!==void 0)return xe(o,E,W,!0);let V=La(d);if(ou(d))return ne(o,E,d);if(qt(d)&&Hn(d))return ve(o,E,d);if(qt(d)||V===Pa||V===null){let I;try{I=$r(d)}catch(ke){let R=ke instanceof Error?ke.message:String(ke);return Me({task:o,type:Ee.Json,onPromise:f,detail:R})}if(I.length<=q){let ke=C(I,E);if(ke!==-1)return o[i.Type]=v.StaticJson,o[i.PayloadLen]=ke,o.value=null,!0}o[i.Type]=v.Json;let se=s(o,I,"Json");if(se<0)return!1;let Z=B(o,se),we=_(I,o[i.Start],se);if(we<0)return p(o,Z);return o[i.PayloadLen]=we,m(Z,we),o.value=null,!0}if(it(d)||Gt(d))return xe(o,E,d,!0);let Y=d.constructor;if(nu(d))return re(o,E,d);switch(Y){case ArrayBuffer:return Ne(o,E,d);case Int32Array:{let I=d;return D(o,E,new Uint8Array(I.buffer,I.byteOffset,I.byteLength),v.Int32Array,v.StaticInt32Array)}case Float64Array:return me(o,E,d);case BigInt64Array:{let I=d;return D(o,E,new Uint8Array(I.buffer,I.byteOffset,I.byteLength),v.BigInt64Array,v.StaticBigInt64Array)}case BigUint64Array:{let I=d;return D(o,E,new Uint8Array(I.buffer,I.byteOffset,I.byteLength),v.BigUint64Array,v.StaticBigUint64Array)}case DataView:{let I=d;return D(o,E,new Uint8Array(I.buffer,I.byteOffset,I.byteLength),v.DataView,v.StaticDataView)}case Date:return He(o,d);case hr:return er(o,E,d);case Promise:return sr(o,d);case Error:return y(o,d)}if(d instanceof Date)return He(o,d);if(d instanceof hr)return er(o,E,d);if(d instanceof Promise)return sr(o,d);if(d instanceof Error)return y(o,d);if(Ba(d))return xe(o,E,d);return Me({task:o,type:Ee.Serializable,onPromise:f,detail:ga})}catch(d){l();let W=d instanceof Error?d.message:String(d);return Me({task:o,type:Ee.Serializable,onPromise:f,detail:W})}case"string":{let d=T;if(d.length<=q){let I=C(d,E);if(I!==-1)return o[i.Type]=v.StaticString,o[i.PayloadLen]=I,o.value=null,!0}o[i.Type]=v.String;let W=s(o,d,"String");if(W<0)return!1;let V=L(o,W),Y=_(d,o[i.Start],W);if(Y<0)return p(o,V);return o[i.PayloadLen]=Y,m(V,Y),o.value=null,!0}case"symbol":{let d=uu(T);if(d===void 0)return Me({task:o,type:Ee.Symbol,onPromise:f});if(d.length*3<=q){let I=C(d,E);if(I!==-1)return o[i.Type]=v.StaticSymbol,o[i.PayloadLen]=I,o.value=null,!0}o[i.Type]=v.Symbol;let W=s(o,d,"Symbol");if(W<0)return!1;let V=L(o,W),Y=_(d,o[i.Start],W);if(Y<0)return p(o,V);return o[i.PayloadLen]=Y,m(V,Y),o.value=null,!0}}return!1}},Eu=({lockSector:e,payload:r,sab:t,payloadConfig:n,headersBuffer:a,headerSlotStrideU32:u,textCompat:c,host:f,processBoundary:S=!1})=>{let N=r?.sab??t,P=dr({sab:N,options:r?.config??n}),{free:H}=Rn({lockSector:e}),k=(s)=>H(Oo(s)),{readUtf8:m,readBytesCopy:O,readBytesBufferCopy:x,readBufferCopy:w,readBytesArrayBufferCopy:M,readArrayBufferCopy:J,read8BytesFloatCopy:_,read8BytesFloatView:q}=Mn({sab:N,payloadConfig:P,textCompat:c?.payload}),{readUtf8:j,readBytesBufferCopy:te,readBufferCopy:oe,readUint8ArrayCopy:K,readBytesArrayBufferCopy:ee,readArrayBufferCopy:G,read8BytesFloatCopy:C,readU32Words:Q}=_a(a,u,c?.headers),ue=new Uint32Array(Qt),X=new Uint32Array(jt),ce=new Uint32Array(Gn);return(s,L,g)=>{let B=s[i.Type];if(S&&(B===v.SharedArrayBuffer||B===v.BufferReference))throw TypeError(zr);switch(B){case Ve.BigInt:ar[0]=s[i.Start],ar[1]=s[i.End],s.value=ka[0];return;case Ve.True:s.value=!0;return;case Ve.False:s.value=!1;return;case Ve.Float64:ar[0]=s[i.Start],ar[1]=s[i.End],s.value=Yt[0];return;case Ve.NaN:s.value=NaN;return;case Ve.Null:s.value=null;return;case Ve.Undefined:s.value=void 0;return;case v.String:s.value=m(s[i.Start],s[i.Start]+s[i.PayloadLen]),k(s);return;case v.StaticString:s.value=j(0,s[i.PayloadLen],L);return;case v.Json:s.value=Sr(m(s[i.Start],s[i.Start]+s[i.PayloadLen])),k(s);return;case v.StaticJson:s.value=Sr(j(0,s[i.PayloadLen],L));return;case v.EnvelopeStaticHeader:case v.EnvelopeStaticHeaderString:{let l=j(0,s[i.PayloadLen],L),p=s[i.Type]===v.EnvelopeStaticHeaderString?l:Sr(l),h=s[i.End],z=h>0?M(s[i.Start],s[i.Start]+h):new ArrayBuffer(0);s.value=new hr(p,z),k(s);return}case v.EnvelopeDynamicHeader:case v.EnvelopeDynamicHeaderString:{let l=s[i.Start],p=l+s[i.PayloadLen],h=s[i.End],z=m(l,p),b=s[i.Type]===v.EnvelopeDynamicHeaderString?z:Sr(z),y=h>0?M(p,p+h):new ArrayBuffer(0);s.value=new hr(b,y),k(s);return}case v.EnvelopeStaticHeaderExternal:case v.EnvelopeStaticHeaderStringExternal:{let l=j(0,s[i.PayloadLen],L),p=s[i.Type]===v.EnvelopeStaticHeaderStringExternal?l:Sr(l),h=s[i.Start],z=zt(m(h,h+s[i.End]),S);s.value=new hr(p,z),k(s);return}case v.EnvelopeDynamicHeaderExternal:case v.EnvelopeDynamicHeaderStringExternal:{let l=s[i.Start],p=l+s[i.PayloadLen],h=m(l,p),z=s[i.Type]===v.EnvelopeDynamicHeaderStringExternal?h:Sr(h),b=zt(m(p,p+s[i.End]),S);s.value=new hr(z,b),k(s);return}case v.BigInt:s.value=Ta(x(s[i.Start],s[i.Start]+s[i.PayloadLen])),k(s);return;case v.StaticBigInt:s.value=Ta(te(0,s[i.PayloadLen],L));return;case v.Symbol:s.value=Kn(m(s[i.Start],s[i.Start]+s[i.PayloadLen])),k(s);return;case v.StaticSymbol:s.value=Kn(j(0,s[i.PayloadLen],L));return;case v.Int32Array:{let l=x(s[i.Start],s[i.Start]+s[i.PayloadLen]);s.value=new Int32Array(l.buffer,l.byteOffset,l.byteLength>>>2),k(s);return}case v.StaticInt32Array:{let l=te(0,s[i.PayloadLen],L);s.value=new Int32Array(l.buffer,l.byteOffset,l.byteLength>>>2);return}case v.Float64Array:{s.value=_(s[i.Start],s[i.Start]+s[i.PayloadLen]),k(s);return}case v.StaticFloat64Array:s.value=C(0,s[i.PayloadLen],L);return;case v.NumericArray:{s.value=jn(q(s[i.Start],s[i.Start]+s[i.PayloadLen])),k(s);return}case v.StaticNumericArray:s.value=jn(C(0,s[i.PayloadLen],L));return;case v.BigInt64Array:{let l=x(s[i.Start],s[i.Start]+s[i.PayloadLen]);s.value=new BigInt64Array(l.buffer,l.byteOffset,l.byteLength>>>3),k(s);return}case v.StaticBigInt64Array:{let l=te(0,s[i.PayloadLen],L);s.value=new BigInt64Array(l.buffer,l.byteOffset,l.byteLength>>>3);return}case v.BigUint64Array:{let l=x(s[i.Start],s[i.Start]+s[i.PayloadLen]);s.value=new BigUint64Array(l.buffer,l.byteOffset,l.byteLength>>>3),k(s);return}case v.StaticBigUint64Array:{let l=te(0,s[i.PayloadLen],L);s.value=new BigUint64Array(l.buffer,l.byteOffset,l.byteLength>>>3);return}case v.DataView:{let l=x(s[i.Start],s[i.Start]+s[i.PayloadLen]);s.value=new DataView(l.buffer,l.byteOffset,l.byteLength),k(s);return}case v.StaticDataView:{let l=te(0,s[i.PayloadLen],L);s.value=new DataView(l.buffer,l.byteOffset,l.byteLength);return}case v.ExternalPayload:s.value=zt(m(s[i.Start],s[i.Start]+s[i.PayloadLen]),S),k(s);return;case v.StaticExternalPayload:s.value=zt(j(0,s[i.PayloadLen],L),S);return;case v.ProcessSharedBuffer:s.value=hu(Q(ue,Qt,L));return;case v.SharedArrayBuffer:s.value=Su(Q(X,s[i.PayloadLen]>>>2,L));return;case v.BufferReference:s.value=bu(Q(ce,Gn,L));return;case v.Date:ar[0]=s[i.Start],ar[1]=s[i.End],s.value=new Date(Yt[0]);return;case v.Error:s.value=wu(m(s[i.Start],s[i.Start]+s[i.PayloadLen])),k(s);return;case v.Binary:{let l=x(s[i.Start],s[i.Start]+s[i.PayloadLen]);s.value=new Uint8Array(l.buffer,l.byteOffset,l.byteLength)}k(s);return;case v.StaticBinary:s.value=K(0,s[i.PayloadLen],L);return;case v.ArrayBuffer:s.value=J(s[i.Start],s[i.Start]+s[i.PayloadLen]),k(s);return;case v.StaticArrayBuffer:s.value=G(0,s[i.PayloadLen],L);return;case v.Buffer:s.value=w(s[i.Start],s[i.Start]+s[i.PayloadLen]),k(s);return;case v.StaticBuffer:s.value=oe(0,s[i.PayloadLen],L);return}}};Co(ku,Eu);var Vr=Symbol.for("task");var Ru=/^[A-Za-z]:[\\/]/,xu=/^\\\\[^\\/?]+\\[^\\/?]+/,Qn=(e)=>encodeURI(e).replace(/\?/g,"%3F").replace(/#/g,"%23"),Lu=()=>At("node:url")?.pathToFileURL,Pu=(e)=>{let r=e.startsWith("/")?e:`/${e}`;return`file://${Qn(r)}`},Ar=(e)=>{if(Ru.test(e)){let r=e.replace(/\\/g,"/");return`file:///${Qn(r)}`}if(xu.test(e)){let r=e.replace(/^\\\\+/,"").replace(/\\/g,"/");return`file://${Qn(r)}`}try{return new URL(e).href}catch{let r=Lu();return r?r(e).href:Pu(e)}},Ca=(e)=>{if(!Er||!e.startsWith("file://"))return e;let r=e.slice(7),t=r.startsWith("/")?r:`/${r}`;try{return decodeURIComponent(t)}catch{return t}};var ct={Reject:0,Resolve:1},vu=(e)=>{if(e==null)return;if(typeof e==="number"){let t=Math.floor(e);return t>=0?{ms:t,kind:ct.Reject,value:Error("Task timeout")}:void 0}let r=Math.floor(e.time);if(!(r>=0))return;if("default"in e)return{ms:r,kind:ct.Resolve,value:e.default};if(e.maybe===!0)return{ms:r,kind:ct.Resolve,value:void 0};if("error"in e)return{ms:r,kind:ct.Reject,value:e.error};return{ms:r,kind:ct.Reject,value:Error("Task timeout")}},_u=(e,r)=>e.f,Ia=async({list:e,ids:r,names:t,at:n,permission:a})=>{let u=e.map((m)=>Ar(m)),c=new Set(t),S=(await Promise.all(u.map(async(m)=>{let O=await import(Ca(m)),x=Object.entries(O).filter(([M,J])=>J!=null&&typeof J==="object"&&J?.[Vr]===!0).map(([M,J])=>({...J,name:M})),w=Object.entries(O).filter(([M,J])=>c.has(M)&&typeof J==="function").map(([M,J])=>({f:J,id:-1,importedFrom:m,at:-1,name:M,[Vr]:!0}));return[...x,...w]}))).flat(),N=u.length===1&&n.length>0,P=N?new Set(n):null,H=N?u[0]:null;return S.filter((m)=>N?m.importedFrom===H&&P.has(m.at):r.includes(m.id)).sort((m,O)=>m.name.localeCompare(O.name)).map((m)=>({...m,run:_u(m,a),timeout:vu(m.timeout)}))};var Cu={thisIsAHint:0},Iu=(()=>{let e=globalThis,r=typeof e.gc==="function"?()=>e.gc():void 0;if(r){try{delete e.gc}catch{e.gc=void 0}if(e.global)try{delete e.global.gc}catch{e.global.gc=void 0}}return r??(()=>{})})();var{load:Mu,store:Ma}=Atomics,ft=typeof Atomics.wait==="function"?Atomics.wait:void 0,Fa=performance.now.bind(performance),Oa=ft===void 0||typeof SharedArrayBuffer!=="function"?void 0:new Int32Array(new SharedArrayBuffer(Int32Array.BYTES_PER_ELEMENT)),Na="pause"in Atomics?Atomics.pause:void 0,Xt=globalThis,Fu=Xt.process?.platform==="win32"&&typeof Xt.process?.versions?.node==="string"&&Xt.process?.versions?.bun===void 0&&Xt.Deno===void 0,Ou=(e)=>Fu?1:Number.isFinite(e)?e:1/0,Nu=(e)=>Number.isFinite(e)?Math.min(Math.max(e,0),1):1,Zt=({pauseInNanoseconds:e})=>{let r=e??250;if(!Na||r<=0)return()=>{};return()=>Na(r)},Jn=Zt({}),Da=({at:e,opView:r,pauseInNanoseconds:t,rxStatus:n,txStatus:a,enqueueLock:u,write:c,nativeWaitU32:f,useSharedMemoryWait:S=!0,flushBeforeClaim:N=!1})=>{let P=t===void 0?Jn:Zt({pauseInNanoseconds:t}),H=()=>{if(!c)return!1;let m=c();if(typeof m==="number")return m>0;return m===!0},k=N?()=>{let m=H();return u()||m}:()=>{let m=u();return H()||m};return(m,O,x)=>{let w=Fa()+O/1000;Iu();let M=0;while(!0){if(Mu(r,e)!==m||a[Cu.thisIsAHint]===1)return;if(k())return;if(P(),(M++&63)===0&&Fa()>=w)break}if(k())return;if(Ma(n,0,0),f!==void 0)f(r.buffer,r.byteOffset+e*Int32Array.BYTES_PER_ELEMENT,m>>>0,Ou(x));else if(S&&ft&&r.buffer instanceof SharedArrayBuffer)ft(r,e,m,x??1/0);else if(ft&&Oa)ft(Oa,0,0,Nu(x));Ma(n,0,1)}};var lt=(e)=>e instanceof Error?e.message:String(e),en=(e,r,t)=>{let n=t===void 0?"":`: ${lt(t)}`;throw Error(`KNT_ERROR_PROCESS_GUARD_INSTALL: ${e} ${r}${n}`)},Xn=()=>{let e=$e();if(!e)return;if(e.__knittingTerminationGuard===!0)return;let r=(a)=>{throw Error(`KNT_ERROR_PROCESS_GUARD: ${a} is disabled in worker tasks`)},t=(a)=>{try{Object.defineProperty(e,a,{configurable:!1,writable:!1,value:(...u)=>r(`process.${a}`)})}catch(u){try{e[a]=(...c)=>r(`process.${a}`)}catch(c){en(`process.${a}`,"install failed",[lt(u),lt(c)].join("; "))}}if(typeof e[a]!=="function")en(`process.${a}`,"install verification failed")};t("exit"),t("kill"),t("abort"),t("reallyExit");let n=globalThis;if(n.Deno&&typeof n.Deno.exit==="function"){try{Object.defineProperty(n.Deno,"exit",{configurable:!1,writable:!1,value:(a)=>r("Deno.exit")})}catch(a){try{n.Deno.exit=(u)=>r("Deno.exit")}catch(u){en("Deno.exit","install failed",[lt(a),lt(u)].join("; "))}}if(typeof n.Deno.exit!=="function")en("Deno.exit","install verification failed")}e.__knittingTerminationGuard=!0},Zn=()=>{let e=$e();if(!e||typeof e.on!=="function")return;if(e.__knittingUnhandledRejectionSilencer===!0)return;e.__knittingUnhandledRejectionSilencer=!0,e.on("unhandledRejection",()=>{})};var eo=()=>{let e=globalThis;if(e.__knittingPerformanceNowGuardInstalled===!0)return;e.__knittingPerformanceNowGuardInstalled=!0;let r=globalThis.performance;if(!r||typeof r.now!=="function")return;try{r.now()}catch{}};var ro=(e)=>{let r=e;try{r.sab=void 0,r.lock=void 0,r.returnLock=void 0,r.permission=void 0}catch{}try{delete r.sab}catch{}try{delete r.lock}catch{}try{delete r.returnLock}catch{}try{delete r.permission}catch{}try{Object.freeze(r)}catch{}};var Wa=(e)=>rr(e?.headers)&&rr(e?.lockSector)&&rr(e?.payload)&&rr(e?.payloadSector)&&(e?.textCompat===void 0||Et(e.textCompat)),to=({sab:e,lock:r,returnLock:t})=>{if(!rr(e))throw Error("worker missing transport SAB");if(!Wa(r))throw Error("worker missing lock SABs");if(!Wa(t))throw Error("worker missing return lock SABs")},no=({list:e,ids:r,names:t,listOfFunctions:n})=>{if(n.length>0&&(t===void 0||n.length===t.length))return;if(console.log(e),console.log(r),t!==void 0)console.log(t);throw console.log(n),Error("No imports were found.")};var ao=32,oo=ao-1,Ua=Symbol.for("knitting.abortSignal.poolExhausted");var dt=({sab:e,maxSignals:r})=>{let t=Ye(e),n=new Uint32Array(t.sab,t.byteOffset,t.byteLength/Uint32Array.BYTES_PER_ELEMENT),a=n.length,u=new Uint32Array(a),c=a*ao,f=(()=>{if(!Number.isFinite(r))return c;let w=Math.floor(r);if(w<=0)return c;return Math.min(w,c)})(),S=f+1,N=0,P=0;return{max:f,closeNow:S,getSignal:()=>{if(N>=f)return S;for(let w=0;w<a;w++){let M=(P+w)%a,J=M<<5,_=f-J;if(_<=0)continue;let q=_>=ao?4294967295:(1<<_)-1>>>0,j=(~u[M]&q)>>>0;if(j===0)continue;let te=(j&-j)>>>0;u[M]=(u[M]|te)>>>0,N=N+1|0,P=(M+1)%a,Atomics.and(n,M,~te);let oe=31-Math.clz32(te);return(M<<5)+oe}return S},setSignal:(w)=>{if(w===S)return 0;if(!Number.isInteger(w))return-1;if(w<0||w>=f)return-1;let M=w>>>5,J=1<<(w&oo);return Atomics.or(n,M,J),1},abortAll:()=>{for(let w=0;w<a;w++)Atomics.store(n,w,u[w]);return N},hasAborted:(w)=>{if(w===S)return!0;if(!Number.isInteger(w))return!1;if(w<0||w>=f)return!1;let M=w>>>5,J=1<<(w&oo);return(Atomics.load(n,M)&J)!==0},resetSignal:(w)=>{if(w===S)return!1;if(!Number.isInteger(w))return!1;if(w<0||w>=f)return!1;let M=w>>>5,J=1<<(w&oo);if((u[M]&J)===0)return!1;if(u[M]=(u[M]&~J)>>>0,N>0)N=N-1|0;return P=M,Atomics.and(n,M,~J),!0},inUseCount:()=>N}};class so{#e=!1;constructor(e,r,t){let n=(a)=>(...u)=>{if(this.#e)return;this.#e=!0,r(),a(...u)};e.resolve=n(e.resolve),e.reject=n(e.reject),e.promise.reject=(a)=>{if(this.#e)return;if(a===void 0&&t!==void 0){t();return}e.reject(a)}}}var Du="default",Wu=(e)=>{if(!e||typeof e!=="object")return!1;let r=e;return typeof r.href==="string"&&r.href.length>0&&(r.name===void 0||typeof r.name==="string"&&r.name.length>0)},Uu=(e)=>{try{return Cr.fromMetadata(e),!0}catch{return!1}},io=(e,r=new WeakMap)=>{if(Uu(e))return Cr.fromMetadata(e);if(e===null||typeof e!=="object")return e;let t=r.get(e);if(t!==void 0)return t;if(Array.isArray(e)){let u=[];r.set(e,u);for(let c of e)u.push(io(c,r));return u}let n=Object.getPrototypeOf(e);if(n!==Object.prototype&&n!==null)return e;let a={};r.set(e,a);for(let[u,c]of Object.entries(e))a[u]=io(c,r);return a},Ha=async({bootstrap:e,thread:r,totalNumberOfThread:t})=>{if(e===void 0)return;if(!Wu(e))throw TypeError("worker.bootstrap must include a non-empty href");let n=await import(Ar(e.href)),a=e.name??Du,u=n[a];if(typeof u!=="function"){let f=Object.keys(n).join(", ");throw TypeError(`worker.bootstrap expected export "${a}" from "${e.href}" to be a function. Available exports: ${f||"(none)"}`)}let c=Object.freeze({thread:r,totalNumberOfThread:t,runtime:Oe});await u(io(e.data),c)};var ja=()=>{return},Ka=()=>{};var Hu=(e)=>{let r=globalThis.Deno?.env;if(typeof r?.get==="function")try{return r.get(e)}catch{}try{return $e()?.env?.[e]}catch{return}},ju=Hu("KNITTING_DEBUG"),Ga=new Set((ju??"").split(",").map((e)=>e.trim()).filter((e)=>e.length>0)),$a=Ga.size>0,rn=(e)=>{let r=new Set(Ga);if(e===!0)r.add("*");else if(e!==void 0&&e!==!1){for(let[t,n]of Object.entries(e))if(n===!0)r.add(t)}return r};var $u="__knittingWorkerFatal",tn=(e)=>{let r=String(e?.message??e),t={[$u]:r},n=!1;try{tt?.postMessage?.(t),n=tt!==void 0}catch{}if(!n)try{globalThis.postMessage(t),n=!0}catch{}if(!n){try{console.error(`Worker startup failed: ${r}`)}catch{}if(Rr)try{$e()?.exit?.(1)}catch{}}},zu=(e)=>{let r=(n)=>{let a=qo(n);if(a!==void 0)e(a)};if(tt!==void 0){xo(tt,r);return}globalThis.addEventListener?.("message",(n)=>{r(n?.data)})},nn=async(e)=>{Xn(),Zn(),eo();let{debug:r,sab:t,thread:n,startAt:a,workerOptions:u,lock:c,returnLock:f,abortSignalSAB:S,abortSignalMax:N,payloadConfig:P,bufferReferenceReturn:H,permission:k,notifyOnHostPublish:m,totalNumberOfThread:O,list:x,ids:w,names:M,at:J,steal:_}=e;ro(e),to({sab:t,lock:c,returnLock:f});let q=rn(r),j=q.size>0?await Promise.resolve().then(() => (qa(),Va)).then((Z)=>Z.initDebug({name:`w${n}`,runtime:Oe,namespaces:q})):void 0,te={thisIsAHint:0},oe=Dt({sabObject:{sharedSab:t},isMain:!1,thread:n,startTime:a}),K=Pr({headers:c.headers,headerSlotStrideU32:c.headerSlotStrideU32,LockBoundSector:c.lockSector,payload:c.payload,payloadSector:c.payloadSector,payloadConfig:P,textCompat:c.textCompat,processBoundary:Rr,consumers:_?.consumers,consumerId:_?.consumerId,regionLanes:_?.regionLanes}),ee=Pr({headers:f.headers,headerSlotStrideU32:f.headerSlotStrideU32,LockBoundSector:f.lockSector,payload:f.payload,payloadSector:f.payloadSector,payloadConfig:P,textCompat:f.textCompat,processBoundary:Rr,notifyOnHostPublish:m}),G=u?.timers,C=G?.spinMicroseconds??Math.max(1,O)*50,Q=j!==void 0?Number.POSITIVE_INFINITY:G?.parkMs??Math.max(1,O)*50,ue=(()=>{let Z=typeof G?.pauseNanoseconds==="number"?Zt({pauseInNanoseconds:G.pauseNanoseconds}):Jn;return()=>Z()})(),{opView:X,rxStatus:ce,txStatus:s}=oe,L=Atomics.store,g=Atomics.load,B=ja();await Ha({bootstrap:u?.bootstrap,thread:n,totalNumberOfThread:O}),j?.envPhase("bootstrap");let l=await Ia({list:x,isWorker:!0,ids:w,names:M,at:J,permission:k});j?.envPhase("tasks"),j?.log("imports",`${l.length} task(s) from ${x.map((Z)=>Z.split(/[\\/]/).pop()||Z).join(", ")}`),no({list:x,ids:w,names:M,listOfFunctions:l});let p=S?dt({sab:S,maxSignals:N}):void 0,{enqueueLock:h,serviceBatchImmediate:z,hasCompleted:b,writeBatch:y,hasPending:D,getAwaiting:ne,drainReturnReleases:re,releaseReturnedBufferReference:me}=Xo({listOfFunctions:l,workerOptions:u,lock:K,returnLock:ee,borrowReturnedBufferReferences:H==="borrow",hasAborted:p?.hasAborted,stealing:_!==void 0});zu(me),L(ce,0,1);let ge=64,ve=Da({opView:X,at:0,rxStatus:ce,txStatus:s,pauseInNanoseconds:G?.pauseNanoseconds,enqueueLock:h,write:()=>b()?y(ge):0,flushBeforeClaim:_!==void 0,nativeWaitU32:B,useSharedMemoryWait:!(Rr&&Oe==="node"&&B===void 0)}),Ne=Nr(),fe=Ne.port1,he=Ne.port2,be=(Z)=>he.postMessage(Z),de=!1,De=0,xe=0,He=10,We=g(X,0),Le=()=>{if(de)return;de=!0,be(null)},je=(Z)=>{if(de)return;if(de=!0,Z<=0&&typeof et==="function"){et(I);return}if(Z<=0){be(null);return}if(typeof setTimeout==="function"){setTimeout(I,Z);return}be(null)},qe=j?.enabled("signals")===!0,er=b,sr=D,mr=ne,o=re,E=ue,T=qe?()=>{let Z=h();if(Z)j.log("signals","work from=host");return Z}:h,d=qe?(Z)=>{let we=y(Z);if(we>0)j.log("signals",`result count=${we}`);return we}:y,W=qe?()=>{let Z=z();if(Z>0)j.log("signals",`run count=${Z}`);return Z}:z,V=qe?(Z,we,ke)=>{j.log("signals",`idle token=${Z}`),ve(Z,we,ke)}:ve,Y=_!==void 0,I=()=>{de=!1;let Z=!0,we=0;while(!0){if(Y){if(Z=!1,er()){if(d(ge)>0)Z=!0}Z=T()||Z}else if(Z=T(),er()){if(d(ge)>0)Z=!0}if(o(),sr()){if(W()>0)Z=!0}if((we=mr())>0){if(we!==xe)De=0;xe=we,De++;let ke=Math.min(He,Math.max(0,De-1));je(ke);return}if(De=xe=0,!Z){if(s[te.thisIsAHint]===1){E();continue}V(We,C,Q),We=g(X,0)}}},se=fe;if(typeof se.on==="function")se.on("message",I);else se.onmessage=I;se.start?.(),he.start?.(),j?.log("lifecycle",`ready: ${l.length} task(s) on thread ${n}/${O}, entering dispatch loop`),Le()},Yu=()=>{let e=globalThis.WorkerGlobalScope;if(typeof e==="function")try{if(globalThis instanceof e)return!0}catch{}if(Er&&typeof globalThis.self<"u")return!0;return!1},Qa=(e)=>{if(!e||typeof e!=="object")return!1;let r=e;return rr(r.headers)&&rr(r.lockSector)&&rr(r.payload)&&rr(r.payloadSector)&&(r.textCompat===void 0||Et(r.textCompat))},yt=(e)=>{if(!e||typeof e!=="object")return!1;let r=e;return rr(r.sab)&&Array.isArray(r.list)&&Array.isArray(r.ids)&&Array.isArray(r.names)&&Array.isArray(r.at)&&typeof r.thread==="number"&&typeof r.totalNumberOfThread==="number"&&typeof r.startAt==="number"&&(r.abortSignalSAB===void 0||rr(r.abortSignalSAB))&&Qa(r.lock)&&Qa(r.returnLock)},Vu=()=>{let e=globalThis,r=(t)=>{if(!yt(t))return;nn(t).catch(tn)};if(typeof e.addEventListener==="function"&&typeof e.removeEventListener==="function"){let t=(n)=>{let a=n?.data;if(!yt(a))return;try{e.removeEventListener?.("message",t)}catch{}r(a)};e.addEventListener("message",t);return}e.onmessage=(t)=>{let n=t?.data;if(!yt(n))return;e.onmessage=null,r(n)}};if(xr===!1&&yt(rt))nn(rt).catch(tn);else if(Rr)Ka({isWorkerBootPayload:yt,reportWorkerStartupFatal:tn,startWorker:(e)=>{nn(e).catch(tn)}});else if(Yu())Vu();var es=((e)=>()=>e++)(0),rs=(e,r)=>{let t=2166136261;for(let n=0;n<e.length;n++)t=Math.imul(t^e.charCodeAt(n),16777619);return Math.imul(t^r,16777619)>>>0},qu=["/src/common/task-source.ts","/src/common/task-source.js","\\src\\common\\task-source.ts","\\src\\common\\task-source.js","/src/api.ts","/src/api.js","\\src\\api.ts","\\src\\api.js"],Ja=new Set(["collectStackFrames","resolveCallerHref","getCallerFilePath","buildTaskDefinition","buildTaskDefinitionFromCaller","task","importTask"]),Qu=(e)=>e!==void 0,Ju=(e)=>qu.some((r)=>e.includes(r)),ts=(e)=>e.startsWith("node:")||e.startsWith("native:")||e.startsWith("bun:")||e.startsWith("internal/"),Xu=(e,r)=>e!==void 0&&Ja.has(e)||r!==void 0&&Ja.has(r),Zu=()=>{let e=Error,r=e.prepareStackTrace;try{e.prepareStackTrace=(a,u)=>u;let t=Error().stack;if(!Array.isArray(t))return[];return t.map((a)=>{try{let u=a?.getFileName?.();if(typeof u!=="string"||u.length===0)return;return{file:u,functionName:a?.getFunctionName?.()??void 0,methodName:a?.getMethodName?.()??void 0}}catch{return}}).filter(Qu)}finally{e.prepareStackTrace=r}},Xa=(e)=>ts(e.file)||Ju(e.file)||Xu(e.functionName,e.methodName),co,ns=(e)=>{co=typeof e==="string"&&e.length>0?Ar(e):void 0};var os=(e)=>{if(co!==void 0)return co;let r=Zu(),t=r[e],n=(t&&!Xa(t)?t.file:void 0)??r.find((a)=>!Xa(a))?.file??r.find((a)=>!ts(a.file))?.file;if(!n)throw Error("Unable to determine caller file. This runtime exposes no stack traces (e.g. Andromeda); call setModuleUrl(import.meta.url) at the top of the module that defines your tasks before creating a pool.");return Ar(n)},Za=new Map,as=(e=3)=>os(e),fo=(e=3)=>{let r=os(e),t=Za.get(r)??0;return Za.set(r,t+1),[r,t]};var ss=(e,r)=>{let t=e;return t.reject=r,t},on=()=>{let e=Promise.withResolvers;if(typeof e==="function"){let a=e.call(Promise);return{promise:ss(a.promise,a.reject),resolve:a.resolve,reject:a.reject}}let r,t;return{promise:ss(new Promise((a,u)=>{r=a,t=u}),t),resolve:r,reject:t}};var ec=31,rc=134217727,tc=5,nc=65535,oc=65535,ac=16,sc=1;var ic=performance.now.bind(performance);function lo({max:e,lock:r,returnLock:t,extraReturnLocks:n,releaseBufferReferenceReturn:a,abortSignals:u,now:c}){let f=(y)=>{throw"UNREACHABLE FROM PLACE HOLDER (main)"},S=(y)=>{let D=Ko();return D[i.ID]=y,D[i.FunctionID]=0,D.value=null,D.resolve=f,D.reject=f,D},N=e??10,P=Array.from({length:N},(y,D)=>S(D)),H=Array.from({length:N},(y,D)=>D),k=(y)=>H.push(y),m=()=>H.pop(),O=(y)=>P.push(y),{publish:x,flushPending:w,hasPendingFrames:M,getPendingFrameCount:J,getPendingPromiseCount:_,resetPendingState:q}=r,j=0,te=u?.resetSignal,oe=c??ic,K=(y)=>{j=j-1|0,Sn(y),Ur(y),y.value=null,y.resolve=f,y.reject=f,k(y[i.ID])},ee=[t,...n??[]].map((y)=>y.resolveHost({queue:P,activeRejectPlaceholder:f,onResolved:K})),G=[t,...n??[]].map((y)=>typeof y.waitForHostChange==="function"?y.waitForHostChange:()=>{return}),C=[t,...n??[]].map((y)=>typeof y.setHostWaiterArmed==="function"?y.setHostWaiterArmed:(D)=>{}),Q=Array(ee.length);if(a!==void 0)Q[0]=a;let ue=(y)=>{let D=ee[y],ne=Q[y];return ne===void 0?D():Tn(ne,D)},X=ee.length===1?a===void 0?ee[0]:()=>Tn(a,ee[0]):()=>{let y=0;for(let D=0;D<ee.length;D++)y=y+ue(D)|0;return y},ce=new Uint8Array(G.length),s,L=0,g=(y)=>{for(let D of C)D(y)},B=(y,D)=>{s=y,g(!0);let ne=!0;for(let re=0;re<G.length;re++){if(ce[re]!==0)continue;let me;try{me=G[re](D)}catch{me=void 0}if(me===void 0){ne=!1;break}ce[re]=1;let ge=L,ve=()=>{if(ce[re]===0)return;if(ce[re]=0,C[re](!1),ge!==L)return;s?.()};if(!me.async)ve();else Promise.resolve(me.value).then(ve,ve)}if(!ne)s=void 0,g(!1),L=L+1|0;return ne},l=()=>(j-_()|0)>0,p=()=>J()===0&&!l(),h=(y)=>{for(let D=0;D<P.length;D++){let ne=P[D];if(ne.reject!==f){try{ne.reject(y)}catch{}Ur(ne),ne.resolve=f,ne.reject=f,P[D]=S(D)}}q(),j=0},z=()=>w(),b=(y)=>x(y);return{rejectAll:h,hasPendingFrames:M,txIdle:p,completeFrame:X,waitForCompletion:B,setCompletionWaiterArmed:g,setReturnHooks:(y,D)=>{if(!Number.isInteger(y)||y<0||y>=Q.length)throw RangeError(`return lane ${y} out of range`);Q[y]=D},enqueue:(y,D,ne)=>{let re=D!==void 0,me=y&nc,ge=ne!==void 0&&u!==void 0;return(ve)=>{if(j===P.length){let be=j+32,de=P.length;while(be>de)O(S(de)),k(de),de++}let Ne=m(),fe=P[Ne],he=on();if(fe[i.FunctionID]=me,ge){let be=u.getSignal();if(be===u.closeNow)return Promise.reject(Ua);new so(he,()=>te(be),()=>{u.setSignal(be)});let de=(be+sc&oc)>>>0;fe[i.FunctionID]=(de<<ac|me)>>>0}if(fe.value=ve,fe[i.ID]=Ne,fe.resolve=he.resolve,fe.reject=he.reject,re)fe[i.slotBuffer]=(fe[i.slotBuffer]&ec|(oe()>>>0&rc)<<tc>>>0)>>>0;return x(fe),j=j+1|0,he.promise}},flushToWorker:z,enqueueKnown:b,settlePromisePayload:(y,D,ne)=>{if(y.reject===f)return!1;if(D){try{y.reject(ne)}catch{}return Sn(y),Ur(y),y.value=null,y.resolve=f,y.reject=f,j=j-1|0,k(y[i.ID]),!1}return y.value=ne,b(y)}}}var is=()=>{return},us=()=>{return},cs=()=>{},Ir=()=>{throw Error("process workers are unavailable in the browser build")},fs=Ir,ls=Ir,an=Ir,ds=Ir,ys=Ir,sn=Ir,ps=Ir,ms=Ir;var gs=(e)=>e.split("=",1)[0],hs=new Set(["--permission","--experimental-permission","--allow-fs-read","--allow-fs-write","--allow-worker","--allow-child-process","--allow-net","--allow-addons","--allow-ffi","--allow-wasi"]),uc=new Set(["--experimental-ffi","--experimental-transform-types","--expose-gc","--no-warnings",...hs]),cc=(e)=>uc.has(gs(e)),fc=(e)=>hs.has(gs(e)),po=(e)=>{if(!e||e.length===0)return;let r=e.filter(cc);if(r.length===0)return;let t=new Set,n=[];for(let a of r){if(t.has(a))continue;t.add(a),n.push(a)}return n},bs=(e)=>{let r=po(e);if(!r||r.length===0)return;let t=r.filter((n)=>!fc(n));return t.length>0?t:void 0},lc=(e)=>{if(e===null||typeof e!=="object")return!1;let r=Object.getPrototypeOf(e);return r===Object.prototype||r===null},yo=(e,r=new WeakMap)=>{if(e instanceof Cr)return e.toMetadata();if(e===null||typeof e!=="object")return e;let t=r.get(e);if(t!==void 0)return t;if(Array.isArray(e)){let a=[];r.set(e,a);for(let u of e)a.push(yo(u,r));return a}if(!lc(e))return e;let n={};r.set(e,n);for(let[a,u]of Object.entries(e))n[a]=yo(u,r);return n},Ss=(e)=>{let r=e.bootstrap;if(r===void 0||r.data===void 0)return e;return{...e,bootstrap:{...r,data:yo(r.data)}}},As=(e)=>{try{return e.unref?.(),Promise.resolve(e.terminate()).then(()=>{},()=>{})}catch{return Promise.resolve()}};var Bs=Oe==="deno"||Oe==="node"?et:void 0,ws=128,dc=1,un=({signalBox:{opView:e,txStatus:r,rxStatus:t},queue:{completeFrame:n,hasPendingFrames:a,flushToWorker:u,txIdle:c,waitForCompletion:f,setCompletionWaiterArmed:S},channelHandler:N,dispatcherOptions:P,notifySignal:H,crossProcess:k})=>{let{load:m,store:O,notify:x}=Atomics,w=e.buffer instanceof SharedArrayBuffer,M=H??(()=>{if(w)x(e,0,1)}),J=()=>N.notify(),_=k!==!0&&(P?.doorbell??!0)&&(Oe==="bun"||Oe==="node")&&typeof Atomics.waitAsync==="function",q=_,j=!1,te=0,oe=1000,K=0,ee=P?.stallFreeLoops,G=ee!==void 0?Math.max(0,ee|0):_?dc:ws,C=Math.max(0,(P?.maxBackoffMs??10)|0),Q,ue=!1,X=()=>{if(!j)return;te=te+1|0,j=!1,S(!1)},ce=()=>{if(!q||j===!0){if(!q)J();return}let g=te+1|0;te=g,j=!0;let B=!1,l=()=>{if(!j||te!==g||B)return;B=!0,j=!1,te=te+1|0,S(!1),J()},p=!1;try{p=f(l,oe)}catch{p=!1}if(!p){if(q=!1,ee===void 0)G=ws;j=!1,te=te+1|0,S(!1),J()}},s=()=>{if(ue){s.rerun=!0;return}if(X(),c()){s.isRunning=!1;return}if(ue=!0,Q!==void 0)clearTimeout(Q),Q=void 0;do{if(s.rerun=!1,r[0]=1,m(t,0)===0)O(e,0,1),M();let g=!1,B=!0;while(B){if(B=!1,n()>0)B=!0,g=!0;while(a()){if(!u())break;B=!0}}if(r[0]=0,!c()){if(g||a())K=0;else K=K+1|0;ue=!1,L();return}K=0}while(s.rerun);s.isRunning=!1,ue=!1};s.isRunning=!1,s.rerun=!1;let L=()=>{if(K<=G){J();return}if(q){s.isRunning=!1,ce();return}if(Q!==void 0)return;let g=K-G-1|0;if(g<0)g=0;else if(g>C)g=C;s.isRunning=!1,Q=setTimeout(()=>{if(Q=void 0,!s.isRunning)s.isRunning=!0,s()},g)};return{check:s}};class qr{channel;port1;port2;#e;#r;constructor(e="auto"){if(e==="auto"&&Bs!==void 0){let n=Bs,a=()=>{this.#e?.()};this.#r=()=>{n(a)};return}let r=Nr(),t=r.port2;this.channel=r,this.port1=r.port1,this.port2=t,this.#r=()=>{t.postMessage(null)}}notify(){this.#r()}open(e){this.#e=e;let r=this.port1;if(r===void 0)return;if(typeof r.on==="function")r.on("message",e);else r.onmessage=e;this.port1?.start?.(),this.port2?.start?.()}close(){if(this.#e=void 0,this.port1===void 0||this.port2===void 0)return;this.port1.onmessage=null,this.port2.onmessage=null,this.port1.close?.(),this.port2.close?.()}}var Ts=()=>{throw Error("compiled workers are unavailable in the browser build")};var ks="__knittingWorkerFatal",yc=(e)=>!!e&&typeof e==="object"&&typeof e[ks]==="string",pc=1,mc=258,Es=(e)=>{if(!Number.isFinite(e))return;let r=Math.floor(e);return r>0?r:void 0},Rs=(e)=>Es(e)??mc,mo=(e)=>Math.max(1,Math.ceil(e/32))*Uint32Array.BYTES_PER_ELEMENT,gc=(e)=>{let r=e?.timers?.parkMs??pc;if(e===void 0)return{timers:{parkMs:r}};return{...e,timers:{...e.timers,parkMs:r}}},xs=(e)=>({...e,mode:"fixed",payloadInitialBytes:e.payloadMaxByteLength}),hc=(e)=>{for(let r=Te.slots;r>=1;r>>=1)if(Te.slots/r>=e+1)return r;throw RangeError(`${e} stealing workers need more than ${Te.slots} lanes`)},Ls=Te.slots-1,Ps=({threads:e,payload:r,regionLanes:t,abortSignalCapacity:n,usesAbortSignal:a,processWorker:u})=>{let c=dr({options:r}),f=u===void 0?c:xs(c),S=()=>f.mode==="growable"?ze(f.payloadInitialBytes,f.payloadMaxByteLength):ze(f.payloadInitialBytes),N=()=>_n({signalBytes:0,abortBytes:0,lockSectorBytes:jr,headerSlotStrideU32:yr,slotCount:Te.slots,headerLayout:"split"}),P=(te,oe)=>({...te,payload:oe,textCompat:Dr({headers:te.headers,payload:oe})}),H=hc(e),k=t===void 0?H:Math.min(Math.max(1,t|0),H),m=Rs(n),O=u===void 0?void 0:ls({threads:e,signalBytes:u.signalBytes,abortBytes:a===!0?mo(m):0,abortSignalMax:a===!0?m:void 0,payloadBytes:f.payloadMaxByteLength,sharedMemory:u.sharedMemory}),x=O===void 0?(()=>{let te=N();return P(te.lock,S())})():P(O.workers[0].controlLayout.lock,O.workers[0].lockPayload),w=Pr({headers:x.headers,headerSlotStrideU32:x.headerSlotStrideU32,LockBoundSector:x.lockSector,payload:x.payload,payloadSector:x.payloadSector,payloadConfig:f,textCompat:x.textCompat,consumers:e,regionLanes:k,processBoundary:O!==void 0}),M=[],J=[];for(let te=0;te<e;te++){let oe=O===void 0?P(N().returnLock,S()):P(O.workers[te].controlLayout.returnLock,O.workers[te].returnPayload);M.push(oe),J.push(Pr({headers:oe.headers,headerSlotStrideU32:oe.headerSlotStrideU32,LockBoundSector:oe.lockSector,payload:oe.payload,payloadSector:oe.payloadSector,payloadConfig:f,textCompat:oe.textCompat,processBoundary:O!==void 0}))}let _=a===!0?O?.workers[0]?.controlLayout.abortSignals??ze(mo(m)):void 0,q=_===void 0?void 0:dt({sab:_,maxSignals:m}),j=lo({lock:w,returnLock:J[0],extraReturnLocks:J.slice(1),abortSignals:q});return{submitBuffers:x,returnBuffers:M,hostSubmitLock:w,hostReturnLocks:J,sharedQueue:j,regionLanes:k,processMemory:O,abortSignalSAB:_,abortSignalMax:O?.abortSignalMax??(_===void 0?void 0:m)}},vs=({list:e,ids:r,names:t,sab:n,thread:a,debug:u,hostDebug:c,totalNumberOfThread:f,source:S,at:N,workerOptions:P,workerExecArgv:H,permission:k,host:m,payload:O,bufferReferenceReturn:x,abortSignalCapacity:w,usesAbortSignal:M,sharedChannelHandler:J,stealPool:_})=>{if(P?.runtime==="compiled")return Ts({list:e,names:t,workerOptions:P,hostDebug:c,abortSignalCapacity:w,usesAbortSignal:M});let q=new URL(import.meta.url),j=Ro,te=Ss(gc(P)),oe=te.runtime==="process",K=oe?sn(te):void 0,ee=oe?ds(te):void 0,G=oe?an(te):void 0;if(!oe&&typeof j!=="function")throw Error("Worker is not available in this runtime");if(fn&&typeof SharedArrayBuffer!=="function")throw Error("SharedArrayBuffer is unavailable: serve the page cross-origin isolated (Cross-Origin-Opener-Policy: same-origin, Cross-Origin-Embedder-Policy: require-corp).");let C=j,Q=Es,ue=dr({options:O}),X=oe?xs(ue):ue,ce=Rs(w),s=Q(n?.size),L=n?.sharedSab;if(oe&&L!=null)throw Error("process worker runtime cannot use an external signal buffer");let g=Math.max(ut,s??ut),B=_===void 0&&M===!0?mo(ce):0,l=_?.processMemory,p=!oe?void 0:l===void 0?fs({signalBytes:g,abortBytes:B,payloadBytes:X.payloadMaxByteLength,thread:a,sharedMemory:G}):l.workers[a]??(()=>{throw RangeError(`stealing process pool has no shared-memory slice for worker ${a}`)})(),h=p===void 0?is(u):void 0,z=h?.createBuffer??Fr,b=h?.createBuffer,y=()=>b?b(X.payloadMaxByteLength):X.mode==="growable"?ze(X.payloadInitialBytes,X.payloadMaxByteLength):ze(X.payloadInitialBytes),D=()=>_n({signalBytes:g,abortBytes:B,lockSectorBytes:jr,headerSlotStrideU32:yr,slotCount:Te.slots,headerLayout:"split",createBuffer:z}),ne=p?.controlLayout??D(),re=p?.lockPayload??y(),me=_?.submitBuffers??{...ne.lock,payload:re,textCompat:Dr({headers:ne.lock.headers,payload:re})},ge=p?.returnPayload??y(),ve=_?.returnBuffers??{...ne.returnLock,payload:ge,textCompat:Dr({headers:ne.returnLock.headers,payload:ge})},Ne=_?.hostSubmitLock??Pr({headers:me.headers,headerSlotStrideU32:me.headerSlotStrideU32,LockBoundSector:me.lockSector,payload:me.payload,payloadSector:me.payloadSector,payloadConfig:X,textCompat:me.textCompat,processBoundary:oe}),fe=_?.hostReturnLock??Pr({headers:ve.headers,headerSlotStrideU32:ve.headerSlotStrideU32,LockBoundSector:ve.lockSector,payload:ve.payload,payloadSector:ve.payloadSector,payloadConfig:X,textCompat:ve.textCompat,processBoundary:oe}),he=_?.abortSignalSAB??(M===!0?ne.abortSignals:void 0),be=he&&_===void 0?dt({sab:he,maxSignals:ce}):void 0,de=Dt({sabObject:L==null?{size:s,sharedSab:ne.signals}:n,isMain:!0,thread:a}),De=de,xe=us({processRuntime:K,signal:De.opView}),He=x==="borrow"&&typeof WeakRef==="function"?new Map:void 0,We=(ye)=>{He?.delete(ye),U?.postMessage?.(Qo(ye))},Le=(ye)=>{if(He===void 0)return;for(let[Be,Ke]of He)try{let or=Ke.ref.deref();if(or!==void 0){or.revokeBorrow(ye);continue}let A=Ke.aliasBuffer?.deref();if(A!==void 0&&Jo(Ke.runtime,A)&&ye)We(Be)}catch{}He.clear()},je=x==="borrow"?{release:We,track:(ye,Be,Ke)=>{if(He===void 0)return;let or=He.get(Be);if(or!==void 0){if(Ke!==void 0)or.aliasBuffer=new WeakRef(Ke);return}He.set(Be,{ref:new WeakRef(ye),aliasBuffer:Ke===void 0?void 0:new WeakRef(Ke),runtime:ye.runtime})}}:void 0,qe=_?.sharedQueue??lo({lock:Ne,returnLock:fe,abortSignals:be,releaseBufferReferenceReturn:je});if(_!==void 0)_.sharedQueue.setReturnHooks(_.consumerId,je);let{enqueue:er,rejectAll:sr,txIdle:mr}=qe,o=De.opView,E=Atomics.add,T=Atomics.load,d=Atomics.notify,W=o.buffer instanceof SharedArrayBuffer,V=xe??(W?()=>d(o,0,1):void 0),Y=()=>{if(T(De.rxStatus,0)===0)E(o,0,1),V?.()},I=()=>{},se=()=>I(),Z,we=J===void 0&&_===void 0,ke=J??new qr,{check:R}=_!==void 0?{check:void 0}:un({signalBox:De,queue:qe,channelHandler:ke,dispatcherOptions:m,notifySignal:xe,crossProcess:oe});if(we&&R!==void 0)ke.open(R),Z=ke,I=()=>{if(R.isRunning===!0)return;R.isRunning=!0,Promise.resolve().then(R),Y()};let U,le=S??q;c?.(`worker thread=${a} mode=${oe?"process":pn?"worker_threads":"worker"}${K?` runtime=${K}`:""} url=${String(le)}`);let Pe={sab:de.sab,abortSignalSAB:he,abortSignalMax:_?.abortSignalMax??(M===!0?ce:void 0),list:e,ids:r,names:t,at:N,thread:a,debug:u,workerOptions:te,totalNumberOfThread:f,startAt:De.startAt,lock:me,returnLock:ve,payloadConfig:X,bufferReferenceReturn:x,permission:k,notifyOnHostPublish:!oe&&m?.doorbell!==!1&&(Oe==="bun"||Oe==="node")&&typeof Atomics.waitAsync==="function",steal:_===void 0?void 0:{consumers:_.consumers,consumerId:_.consumerId,regionLanes:_.regionLanes}},Ae={type:"module",workerData:Pe},_e=H&&H.length>0?{...Ae,execArgv:H}:Ae;if(p!==void 0)U=ps({workerUrl:le,bootPayload:ms(Pe,p),memory:p,processRuntime:K,commandPrefix:ee,permission:k});else if(pn)try{U=new C(le,_e)}catch(ye){if(ye?.code==="ERR_WORKER_INVALID_EXEC_ARGV"){let Be=po(_e.execArgv);if(Be&&Be.length>0)try{U=new C(le,{...Ae,execArgv:Be})}catch(Ke){if(Ke?.code==="ERR_WORKER_INVALID_EXEC_ARGV"){let or=bs(Be);if(or&&or.length>0)try{U=new C(le,{...Ae,execArgv:or})}catch{U=new C(le,Ae)}else U=new C(le,Ae)}else throw Ke}else U=new C(le,Ae)}else throw ye}else U=new C(le,{type:"module"}),U.postMessage?.(Pe);let Qe,tr=()=>{_?.hostSubmitLock.deactivateStealConsumer(_.consumerId)},wr=()=>{try{U.unref?.(),Promise.resolve(U.terminate()).catch(()=>{}).finally(tr)}catch{tr()}},Tr=(ye,Be=!1)=>{if(Qe)return;Qe=ye,Le(Be),sr(ye),Z?.close()},Ce=(ye)=>{if(!yc(ye))return;Tr(`Worker startup failed: ${ye[ks]}`,!0),wr()},ir=(ye)=>{let Be=String(ye?.message??ye);Tr(`Worker crashed: ${Be}`),wr()},nr=U;if(typeof nr.on==="function")nr.on("message",Ce),nr.on("error",ir),nr.on("exit",(ye)=>{if(tr(),Qe!==void 0)return;Tr(`Worker exited with code ${typeof ye==="number"?ye:-1}`)});else{let ye=U;if(typeof ye.addEventListener==="function")ye.addEventListener("message",(Be)=>{Ce(Be?.data)}),ye.addEventListener("error",(Be)=>{ir(Be?.error??Be?.message??Be)});else ye.onmessage=(Be)=>{Ce(Be?.data)},ye.onerror=(Be)=>{ir(Be)}}return Ne.setPromiseHandler((ye,Be,Ke)=>{qe.settlePromisePayload(ye,Be,Ke),se()}),{txIdle:mr,call:({fnNumber:ye,timeout:Be,abortSignal:Ke})=>{let or=er(ye,Be,Ke);return(A)=>{let F=or(A);return se(),F}},kills:async()=>{Tr("Thread closed",!0);let ye=As(U);if(p!==void 0)await ye;cs(p)},lock:Ne,processSharedMemoryBackings:h?.backings,dispatcherCheck:R,laneWake:J!==void 0||_!==void 0?Y:void 0,bindSend:J!==void 0||_!==void 0?(ye)=>void(I=ye):void 0}};var _s=()=>{return},Cs=()=>[],Is=()=>{throw Error("process workers are unavailable in the browser build")},Ms=Is,Fs=Is;var Os=(e,r,t)=>{switch(t??"roundRobin"){case"roundRobin":case"robinRound":return bc(e)(r)(r.length);case"firstIdle":return Sc(e)(r)(r.length);case"randomLane":return Ac(e)(r)(r.length);case"firstIdleOrRandom":return Bc(e)(r)(r.length)}throw Error(`Unknown balancer: ${t}`)},go=({contexts:e,balancer:r,handlers:t,inlinerGate:n})=>{let a=typeof r==="object"&&r!=null?r.strategy:r;if(e.length<2)throw Error(e.length===0?"No threads available.":"Cannot rotate with a single thread.");if(t.length===0)throw Error("No handlers provided.");let u=Os(e,t,a);if(!n)return u;let c=n.index|0,f=Number.isFinite(n.threshold)?Math.max(1,Math.floor(n.threshold)):1;if(f<=1||c<0||c>=t.length)return u;let S=t.length-1;if(S<=0)return u;let N=Array(S),P=Array(S);for(let x=0,w=0;x<t.length;x+=1){if(x===c)continue;N[w]=t[x],P[w]=e[x],w+=1}let H=Os(P,N,a),k=0,m=(x)=>(k-=1,x),O=(x)=>{throw k-=1,x};return(x)=>{k+=1;let w=k>=f?u:H;try{return w(x).then(m,O)}catch(M){throw k-=1,M}}};function bc(e){return(r)=>(t)=>{let n=Math.min(t,r.length);if(n<=1)return(u)=>r[0](u);let a=0;return(u)=>{let c=a;if(a+=1,a===n)a=0;return r[c](u)}}}function Sc(e){let r=e.map((t)=>t.txIdle);return(t)=>(n)=>{let a=Math.min(n,t.length);if(a<=1)return(c)=>t[0](c);let u=0;return(c)=>{for(let S=0;S<a;S+=1)if(r[S]())return t[S](c);let f=u;if(u+=1,u===a)u=0;return t[f](c)}}}var Ac=(e)=>(r)=>(t)=>{let n=Math.min(t,r.length);if(n<=1)return(a)=>r[0](a);return(a)=>{let u=Math.random()*n|0;return r[u](a)}};function Bc(e){let r=e.map((t)=>t.txIdle);return(t)=>(n)=>{let a=Math.min(n,t.length);if(a<=1)return(u)=>t[0](u);return(u)=>{for(let f=0;f<a;f+=1)if(r[f]())return t[f](u);let c=Math.random()*a|0;return t[c](u)}}}var Br={Free:-1,Pending:0},Qr={Reject:0,Resolve:1},wc=(e)=>{if(e==null)return;if(typeof e==="number")return e>=0?{ms:e,kind:Qr.Reject,value:Error("Task timeout")}:void 0;let r=e.time;if(!(r>=0))return;if("default"in e)return{ms:r,kind:Qr.Resolve,value:e.default};if(e.maybe===!0)return{ms:r,kind:Qr.Resolve,value:void 0};if("error"in e)return{ms:r,kind:Qr.Reject,value:e.error};return{ms:r,kind:Qr.Reject,value:Error("Task timeout")}},Tc=(e,r)=>new Promise((t,n)=>{let a=!1,u=setTimeout(()=>{if(a)return;if(a=!0,r.kind===Qr.Resolve)t(r.value);else n(r.value)},r.ms);e.then((c)=>{if(a)return;a=!0,clearTimeout(u),t(c)},(c)=>{if(a)return;a=!0,clearTimeout(u),n(c)})}),kc=(()=>({hasAborted:()=>!1,now:()=>performance.now()}))(),Ec=(e,r,t=!1)=>{let n=wc(r),a=t?(u)=>e(u,kc):e;if(!n)return a;return(u)=>{let c=a(u);return c instanceof Promise?Tc(c,n):c}},Ns=({tasks:e,genTaskID:r,batchSize:t})=>{let a=(Array.isArray(e)?e:Object.values(e).sort((g,B)=>g.name.localeCompare(B.name))).map((g)=>{if(g.imported===!0)return()=>{throw Error("Imported task cannot run on the host inline lane")};return Ec(g.f,g.timeout,g.abortSignal!==void 0)}),u=16,c=new Int32Array(16),f=new Int8Array(16).fill(Br.Free),S=Array(16),N=Array(16).fill(-1),P=Array(16),H=Array(16),k=16;for(let g=0;g<16;g++)H[g]=15-g;let m=new cr(16),O=0,x=!1,w=!1,M=Number.isFinite(t)?Math.max(1,Math.floor(t??1)):Number.POSITIVE_INFINITY,J=Nr(),_=J.port1,q=J.port2,j=(g)=>q.postMessage(g),te=()=>m.isEmpty===!1,oe=typeof queueMicrotask==="function"?queueMicrotask:(g)=>Promise.resolve().then(g),K=()=>{if(O===0||x)return;x=!0,j(null)},ee=()=>{if(O===0||x||w)return;w=!0,oe(ce)},G=(g)=>{m.push(g),ee()},C=(g,B)=>{if(f[g]!==Br.Pending||N[g]!==B)return;G(g)},Q=(g,B,l,p)=>{if(f[g]!==Br.Pending||N[g]!==B)return;let h=P[g];if(h)if(l)h.reject(p);else h.resolve(p);s(g)};function ue(){if(k>0)return H[--k];let g=c.length,B=g<<1,l=new Int32Array(B);l.set(c),c=l;let p=new Int8Array(B);p.fill(Br.Free),p.set(f),f=p,S.length=B,N.length=B,N.fill(-1,g),P.length=B;for(let h=B-1;h>=g;--h)H[k++]=h;return H[--k]}function X(g=!1){let B=0;while(B<M){let l=m.shiftNoClear();if(l===void 0)break;let p=l|0;if(f[p]!==Br.Pending)continue;let h=N[p];try{let z=S[p],b=c[p],y=a[b](z);if(!(y instanceof Promise)){Q(p,h,!1,y),B++;continue}y.then((D)=>Q(p,h,!1,D),(D)=>Q(p,h,!0,D)),B++}catch(z){Q(p,h,!0,z),B++}}if(te()){if(g)K();else j(null);return}if(!g)x=!1}function ce(){if(!w)return;X(!0),w=!1}function s(g){if(O--,f[g]=Br.Free,c[g]=0,N[g]=-1,S[g]=void 0,P[g]=void 0,H[k++]=g,O===0)x=!1}let L=({fnNumber:g})=>(B)=>{let l=r(),p=on(),h=ue();if(N[h]=l,S[h]=B,c[h]=g|0,P[h]=p,f[h]=Br.Pending,O++,B instanceof Promise)B.then((z)=>{if(N[h]!==l)return;S[h]=z,C(h,l)},(z)=>Q(h,l,!0,z));else G(h);return p.promise};return _.onmessage=()=>X(!1),{kills:async()=>{for(let g=0;g<f.length;g++){if(f[g]!==Br.Pending)continue;try{P[g]?.reject("Thread closed")}catch{}}_.onmessage=null,_.close?.(),q.onmessage=null,q.close?.(),m.clear(),k=0,H.length=0,S.fill(void 0),N.fill(-1),P.fill(void 0),c.fill(0),f.fill(Br.Free),O=0,x=!1,w=!1},call:L,txIdle:()=>O===0}};var Hs=(e,r)=>e.has("*")||e.has(r),Rc=(e)=>{if(!((u)=>Hs(e,u))("host"))return;let t=performance.now(),n=`host·${Oe}`;return{log:(u)=>{let c=(performance.now()-t).toFixed(1);console.error(`[${n}·+${c}ms] host: ${u}`)}}},xc=()=>{let e=globalThis.Deno?.cwd;if(typeof e==="function")try{return e()}catch{}let r=$e();if(typeof r?.cwd==="function")try{return r.cwd()}catch{return}return},Ds=(e,r="(none)")=>e&&e.length>0?e.join(","):r,js=65535,Ws=js+1,ho="default",Lc=xr;var Pc=(e)=>{let r=e.reduce((t,n)=>(t[0].add(n.importedFrom),t[1].add(n.id),t[2].add(n.at),t[3].push(n.name),t),[new Set,new Set,new Set,[]]);return{list:[...r[0]],ids:[...r[1]],at:[...r[2]],names:r[3]}},pt=(e,r)=>{try{return new URL(e,r).href}catch{return Ar(e)}},vc=(e,r)=>{if(e===void 0)return;let t=e.processRuntime==="porffor";if(t&&e.runtime!==void 0&&e.runtime!=="compiled")throw Error('worker.processRuntime "porffor" requires worker.runtime to be compiled or omitted');let n=t&&e.runtime===void 0,a=t?{...e,runtime:"compiled",processRuntime:void 0,compiled:n?{...e.compiled,build:"always"}:e.compiled}:e,u=a.bootstrap;if(u!==void 0){let f=u.name??ho;if(typeof u.href!=="string"||u.href.length===0)throw TypeError("worker.bootstrap.href must be a non-empty string");if(typeof f!=="string"||f.length===0)throw TypeError("worker.bootstrap.name must be a non-empty string");a={...a,bootstrap:{...u,href:pt(u.href,r),name:f}}}let c=a.compiled;if(c!==void 0){if(c.build!==void 0&&typeof c.build!=="boolean"&&c.build!=="always")throw TypeError('worker.compiled.build must be a boolean or "always"');for(let[f,S]of Object.entries({artifact:c.artifact,manifest:c.manifest,compiler:c.compiler}))if(S!==void 0&&(typeof S!=="string"||S.length===0))throw TypeError("worker.compiled."+f+" must be a non-empty string");a={...a,compiled:{build:c.build,compiler:c.compiler===void 0?void 0:c.compiler.startsWith(".")||c.compiler.startsWith("/")||c.compiler.startsWith("file:")||/^[A-Za-z]:[\\/]/.test(c.compiler)?pt(c.compiler,r):c.compiler,artifact:c.artifact===void 0?void 0:pt(c.artifact,r),manifest:c.manifest===void 0?void 0:pt(c.manifest,r)}}}return a};var _c=(e)=>e!=null&&typeof e==="object"&&typeof e.f==="function",Cc=(e,r)=>Object.entries(e).map(([t,n])=>{if(_c(n))return{...n,name:t};if(typeof n==="function")return{f:n,id:-1,importedFrom:new URL(r).href,at:-1,name:t,[Vr]:!0};throw TypeError(`createPool task "${t}" must be a task definition or exported function`)}),Ks=({threads:e,debug:r,inliner:t,balancer:n,payload:a,unsafe:u,abortSignalCapacity:c,source:f,worker:S,workerExecArgv:N,permission:P,host:H})=>(k)=>{let m=u?.BufferReferenceReturn,O=$a||r!==void 0&&r!==!1,x,w=()=>x??=rn(r),M=O?Rc(w()):void 0,J=(R)=>O&&Hs(w(),R);if(xr===!1){if(J("lifecycle"))console.warn("createPool has been called with : "+JSON.stringify(rt));let R=()=>{throw Error("createPool can only be called in the main thread.")},Se=new Proxy(function(){return R()},{get:function(){return R}});return{shutdown:Se,[Symbol.dispose]:()=>{},call:Se}}let _=as(3),q=Cc(k,_).sort((R,U)=>R.name.localeCompare(U.name)),{list:j,ids:te,names:oe,at:K}=Pc(q);if(M?.log(`cwd=${xc()??"(unknown)"} caller=${_}`),q.forEach((R)=>{M?.log(`task name=${R.name} id=${R.id} from=${R.importedFrom}`)}),q.length>Ws)throw RangeError(`Too many tasks: received ${q.length}. Maximum is ${Ws} (Uint16 function IDs: 0..${js}).`);let ee=typeof t==="object"&&t!=null,G=(e??1)+(ee?1:0),C=_s({permission:P??{mode:"strict",allowImport:!0},modules:j}),Q=Cs(C),ue=$e(),X=ue?.allowedNodeEnvironmentFlags??null,ce=(R)=>{let U=R.split("=",1)[0];return U==="--permission"||U==="--experimental-permission"||U==="--allow-fs-read"||U==="--allow-fs-write"||U==="--allow-worker"||U==="--allow-child-process"||U==="--allow-net"||U==="--allow-addons"||U==="--allow-ffi"||U==="--allow-wasi"},s=(R)=>R?.filter((U)=>!ce(U)),L=(R)=>{let U=[],le=new Set;for(let Se of R){if(le.has(Se))continue;le.add(Se),U.push(Se)}return U},g=(R)=>{if(!R||R.length===0)return;if(!X)return R;let U=R.filter((le)=>{let Se=le.split("=",1)[0];return X.has(Se)});return U.length>0?U:void 0},B=Array.isArray(ue?.execArgv)?ue.execArgv:void 0,l=N??(B?X?.has("--expose-gc")===!0?B.includes("--expose-gc")?B:[...B,"--expose-gc"]:B:void 0),p=C?.unsafe===!0?s(l):l,h=L([...Q,...p??[]]),z=g(h.length>0?h:void 0);M?.log(`pool runtime=${Oe} workers=${e??1} lanes=${G} inliner=${ee?"on":"off"}`),M?.log(`modules=${Ds(j)}`),M?.log(`permission=${C?.mode??"off"} execArgv=${Ds(z)}`);let b=q.some((R)=>R.abortSignal!==void 0),y=vc(S,_),D=ue?.env?.KNITTING_DISPATCHER,ne=ue?.env?.KNITTING_STEAL?.trim().toLowerCase(),re=ne==="1"||ne==="true"?!0:ne==="0"||ne==="false"?!1:void 0,me=H?.dispatcher!==void 0||D==="serial-channel"||D==="per-thread",ge=n===void 0&&!me&&(e??1)<=Ls,ve=H?.steal??re??ge,Ne=y?.runtime==="compiled";if(y?.compiled!==void 0&&!Ne)throw Error("worker.compiled requires worker.runtime to be compiled");if(Ne){let R=[];if(ee)R.push("inliner");if(a!==void 0)R.push("payload");if(u!==void 0)R.push("unsafe");if(f!==void 0)R.push("source");if(N!==void 0)R.push("workerExecArgv");if(P!==void 0)R.push("permission");if(H!==void 0)R.push("host");if(y.bootstrap!==void 0)R.push("worker.bootstrap");if(y.timers!==void 0)R.push("worker.timers");if(y.processRuntime!==void 0)R.push("worker.processRuntime");if(y.processCommandPrefix!==void 0)R.push("worker.processCommandPrefix");if(y.processSharedMemory!==void 0)R.push("worker.processSharedMemory");if(y.resolveAfterFinishingAll!==void 0)R.push("worker.resolveAfterFinishingAll");if(q.some((U)=>U.timeout!==void 0))R.push("task timeout");if(q.some((U)=>U.imported===!0))R.push("importTask");if(R.length>0)throw Error("Compiled workers do not support: "+R.join(", "))}if(y?.bootstrap!==void 0)M?.log(`bootstrap href=${y.bootstrap.href} name=${y.bootstrap.name}`);if(ee&&y?.bootstrap!==void 0)throw Error("worker.bootstrap cannot be used with the inliner");if(y?.runtime==="process"){let R=sn(y);Fs(Ms({permission:P,resolved:C,target:{runtime:R,nodeMajor:R==="node"?ys(y):void 0}}))}let fe=Number.isFinite(y?.hardTimeoutMs)?Math.max(1,Math.floor(y?.hardTimeoutMs)):void 0;if(yn>=1)throw Error(`createPool() tried to spawn workers from inside a worker process (pool depth ${yn}). This usually means a pool is created at module scope in a module your workers import, so every worker spawns its own pool recursively. Is your createPool protected by isMain? Guard pool creation behind \`if (isMain) { ... }\` (import { isMain } from "knitting") so only the main program starts the pool.`);let he=H?.dispatcher??(D==="serial-channel"||D==="per-thread"?D:void 0),be=(()=>{if(Oe==="bun")return"per-thread";if((e??1)<=1)return"per-thread";return"serial-channel"})(),de=he??be,De=ve&&!Ne&&(e??1)>1&&!ee,xe=De?Ps({threads:e??1,payload:a,regionLanes:H?.stealRegionLanes,abortSignalCapacity:c,usesAbortSignal:b,processWorker:y?.runtime==="process"?{signalBytes:ut,sharedMemory:an(y)}:void 0}):void 0,He=!Ne&&!De&&de==="serial-channel",We=He?new qr("channel"):void 0,Le=Array.from({length:e??1}).map((R,U)=>vs({list:j,ids:te,names:oe,at:K,thread:U,debug:r,hostDebug:M?.log,totalNumberOfThread:G,source:f,workerOptions:y,workerExecArgv:z,host:H,payload:a,bufferReferenceReturn:m,abortSignalCapacity:c,usesAbortSignal:b,permission:C,sharedChannelHandler:We,stealPool:xe===void 0?void 0:{submitBuffers:xe.submitBuffers,returnBuffers:xe.returnBuffers[U],hostSubmitLock:xe.hostSubmitLock,hostReturnLock:xe.hostReturnLocks[U],sharedQueue:xe.sharedQueue,consumers:e??1,consumerId:U,regionLanes:xe.regionLanes,abortSignalSAB:xe.abortSignalSAB,abortSignalMax:xe.abortSignalMax,processMemory:xe.processMemory}})),je=De?new qr:void 0;if(De){let R=je,U=xe.sharedQueue,le=0,Se=()=>{let _e=Le.length;if(_e===0)return;let Qe=le;le=le+1<_e?le+1:0,Le[Qe].laneWake?.()},Pe=new Int32Array(ze(3*Int32Array.BYTES_PER_ELEMENT)),{check:Ae}=un({signalBox:{opView:Pe.subarray(0,1),txStatus:Pe.subarray(1,2),rxStatus:Pe.subarray(2,3)},queue:U,channelHandler:R,dispatcherOptions:H,notifySignal:Se,crossProcess:y?.runtime==="process"});R.open(Ae),Le.forEach((_e)=>{_e.bindSend(()=>{if(Ae.isRunning!==!0)Ae.isRunning=!0,Promise.resolve().then(Ae);Se()})}),M?.log(`dispatcher=steal lanes=${Le.length} g=${xe.regionLanes}`)}let qe=We;if(He){let R=We,U=Le.map((Ce)=>Ce.dispatcherCheck),le=Le.map((Ce)=>Ce.txIdle),Se=!1,Pe=!1,Ae=!1,_e=[],Qe=new Uint8Array(U.length),tr=(Ce)=>{if(Qe[Ce]===1)return;Qe[Ce]=1,_e.push(Ce)},wr=()=>{if(Pe){Ae=!0;return}Pe=!0;do{Ae=!1,Se=!1;for(let Ce=_e.length-1;Ce>=0;Ce--){let ir=_e[Ce],nr=U[ir];if(nr.isRunning!==!0)nr.isRunning=!0;if(nr(),le[ir]()){Qe[ir]=0;let mt=_e.pop();if(Ce<_e.length)_e[Ce]=mt}}}while(Ae);Pe=!1},Tr=()=>{if(Pe){Ae=!0;return}if(Se)return;Se=!0,Promise.resolve().then(wr)};R.open(wr),Le.forEach((Ce,ir)=>{let nr=Ce.laneWake;Ce.bindSend(()=>{tr(ir),Tr(),nr()})}),M?.log(`dispatcher=serial-channel lanes=${U.length}`)}else M?.log(`dispatcher=per-thread lanes=${Le.length}`);if(ee){let R=Ns({tasks:q,genTaskID:es,batchSize:t?.batchSize??1});if(t?.position==="first")Le=[R,...Le];else Le.push(R)}let er=ee?t?.position==="first"?0:Le.length-1:-1,sr=Number.isFinite(t?.dispatchThreshold)?Math.max(1,Math.floor(t?.dispatchThreshold??1)):1,mr=!1,o,E,T=()=>{if(o)return o;return mr=!0,o=Promise.allSettled(Le.map((R)=>R.kills())).then(()=>{qe?.close(),je?.close()}),o},d=({invoke:R,taskName:U})=>(le)=>{if(mr)return Promise.reject(Error("Pool is shut down"));let Se=R(le);if(!fe)return Se;return new Promise((Pe,Ae)=>{let _e=!1,Qe=setTimeout(()=>{if(_e)return;_e=!0,Ae(Error(`Task hard timeout after ${fe}ms (${U}); pool force-shutdown`)),T()},fe);Se.then((tr)=>{if(_e)return;_e=!0,clearTimeout(Qe),Pe(tr)},(tr)=>{if(_e)return;_e=!0,clearTimeout(Qe),Ae(tr)})})},W=(R)=>{if(o)return o;if(E)return E;let U=Number.isFinite(R)?Math.max(0,Math.floor(R)):0;return E=(async()=>{if(o)return await o;if(U>0)await new Promise((le)=>setTimeout(le,U));if(o)return await o;await T()})(),E},V=()=>{W()},Y=q.map((R,U)=>({name:R.name,index:U,timeout:R.timeout,abortSignal:R.abortSignal,imported:R.imported===!0})),I=new Map;for(let{name:R}of Y)I.set(R,[]);for(let R of Le)for(let{name:U,index:le,timeout:Se,abortSignal:Pe}of Y)I.get(U).push(d({taskName:U,invoke:R.call({fnNumber:le,timeout:Se,abortSignal:Pe})}));let se=(e??1)===1&&!ee,Z=(R)=>{let U=[],le=[];for(let Se=0;Se<R.length;Se+=1){if(Se===er)continue;U.push(R[Se]),le.push(Le[Se])}if(U.length===0)throw Error("Imported task has no worker lane to run on: the pool only has the host inliner. Imported tasks are never inlined on the host; add at least one worker thread.");if(U.length===1)return U[0];return go({contexts:le,balancer:n,handlers:U})},we=(R,U)=>{if(U&&ee)return Z(R);return se?R[0]:go({contexts:Le,balancer:n,handlers:R,inlinerGate:ee?{index:er,threshold:sr}:void 0})},ke;try{ke=Y.map(({name:R,imported:U})=>[R,we(I.get(R),U)])}catch(R){throw T(),R}return{shutdown:W,[Symbol.dispose]:V,call:Object.fromEntries(ke)}},Us="__task__",Ic=(e,r)=>{let t=Ks(r??{})({[Us]:e});return{call:t.call[Us],shutdown:t.shutdown,[Symbol.dispose]:t[Symbol.dispose]}},Gs=(e,r,t,n=!1)=>{let a=new URL(r).href,u={...e,id:rs(a,t),importedFrom:a,at:t,imported:n,[Vr]:!0};return u.createPool=(c)=>{if(xr===!1)return u;return Ic(u,c)},u},Mc=(e,r)=>{let[t,n]=fo(r);return Gs(e,t,n)},Fc=(e,r)=>{let t,n,a=async()=>{if(t)return t;if(!n)n=import(e).then((u)=>{let c=u,f=r===ho?c.default:c[r];if(typeof f!=="function"){let S=Object.keys(c).join(", ");throw TypeError(`importTask expected export "${r}" from "${e}" to be a function. Available exports: ${S||"(none)"}`)}return t=f,t});return n};return async(...u)=>(await a())(...u)};function Oc(e){return Mc(e,4)}function Nc(e){let[r,t]=fo(3),{href:n,name:a=ho,...u}=e,c=pt(n,r);return Gs({...u,f:Fc(c,a)},r,t,!0)}export{hr as Envelope,$t as NumericArray,Ks as createPool,Nc as importTask,Lc as isMain,Hn as isNumericArray,ns as setModuleUrl,Oc as task,nn as workerMainLoop};
1
+ var Gs=Object.defineProperty;var $s=(e)=>e;function zs(e,r){this[e]=$s.bind(null,r)}var Ys=(e,r)=>{for(var t in r)Gs(e,t,{get:r[t],enumerable:!0,configurable:!0,set:zs.bind(r,t)})};var Vs=(e,r)=>()=>(e&&(r=e(e=0)),r);var oo=()=>({keys:new Set(Reflect.ownKeys(globalThis))}),ja=(e,r)=>{let t=[],n=[];for(let a of r.keys)if(!e.keys.has(a))t.push(a);for(let a of e.keys)if(!r.keys.has(a))n.push(a);return{added:t,removed:n}},Ka=(e)=>{let r=typeof e==="symbol"?e.toString():e,t;try{t=Object.getOwnPropertyDescriptor(globalThis,e)}catch{return r}if(t===void 0)return r;let n=t.get!==void 0||t.set!==void 0?"accessor":typeof t.value,a=`${t.writable===!1?"":"w"}${t.configurable?"c":""}${t.enumerable?"e":""}`;return a.length>0?`${r} (${n} ${a})`:`${r} (${n})`};var Ga={};Ys(Ga,{initDebug:()=>Ku});var Ku=({name:e,runtime:r,namespaces:t})=>{let n=t.has("*"),a=(v)=>n||t.has(v),u=performance.now(),c=`${e}·${r}`,f=(v,W)=>{if(!a(v))return;let R=(performance.now()-u).toFixed(1);console.error(`[${c}·+${R}ms] ${v}: ${W}`)},A=a("globals")?oo():void 0;return{enabled:a,log:f,envPhase:(v)=>{if(A===void 0)return;let W=oo(),{added:R,removed:h}=ja(A,W);if(A=W,R.length===0&&h.length===0){f("globals",`${v}: no new globals`);return}if(R.length>0)f("globals",`${v} +${R.length}: ${R.map(Ka).join(" ")}`);if(h.length>0)f("globals",`${v} -${h.length}: ${h.map(String).join(" ")}`)}}};var $a=()=>{};var mt=(()=>{let e=globalThis.process;return typeof e?.versions?.node==="string"?e:void 0})(),He=()=>mt,gt=(e)=>{let r=mt?.getBuiltinModule;if(typeof r!=="function")return;try{return r.call(mt,e)}catch{}if(!e.startsWith("node:"))return;try{return r.call(mt,e.slice(5))}catch{return}};var Ar=globalThis,qs=He(),mo=typeof Ar.Deno?.version?.deno==="string",Jr=typeof Ar.Bun?.version==="string",go=typeof qs?.versions?.node==="string",Br=typeof Ar.__andromeda__<"u",un=!mo&&!Jr&&!go&&!Br&&(typeof Ar.document<"u"||typeof Ar.WorkerGlobalScope==="function"),Me=mo?"deno":Jr?"bun":go?"node":Br?"andromeda":un?"browser":"unknown",sn=Ar.WebAssembly,Xr=typeof Ar.setImmediate==="function"?Ar.setImmediate:void 0,Qs=65536,ht=new WeakMap,bt=new WeakMap,cn=(()=>{if(typeof sn?.Memory!=="function")return!1;try{return new sn.Memory({initial:0,maximum:1,shared:!0}),!0}catch{return!1}})();var Qr=(e)=>Math.ceil(Math.max(0,e)/Qs),ho=(e,r)=>{let t=new sn.Memory({initial:Qr(e),maximum:Math.max(Qr(e),Qr(r)),shared:!0}),n=t.buffer;return ht.set(n,t),bt.set(n,r),n},_r=(e,r=e)=>{if(cn)return ho(e,r);return new SharedArrayBuffer(e)},fn=typeof SharedArrayBuffer==="function"&&typeof SharedArrayBuffer.prototype.grow==="function",St=fn||cn,je=(e,r)=>{if(fn&&typeof r==="number")return new SharedArrayBuffer(e,{maxByteLength:r});if(cn&&typeof r==="number")return ho(e,r);return new SharedArrayBuffer(e)};var bo=(e)=>{let r=e;return fn&&typeof r.grow==="function"&&r.growable===!0||ht.has(e)},So=(e)=>{let r=e;if(typeof r.maxByteLength==="number")return r.maxByteLength;return bt.get(e)??e.byteLength},Ao=(e,r)=>{let t=e;if(typeof t.grow==="function")return t.grow(r),e;let n=ht.get(e);if(n==null)throw TypeError("SharedArrayBuffer is not growable");let a=n.buffer;if(a.byteLength>=r)return a;let u=Qr(r),c=Qr(a.byteLength);n.grow(u-c);let f=n.buffer,A=bt.get(e)??a.byteLength;return ht.set(f,n),bt.set(f,A),f};var Js="KNITTING_PROCESS_WORKER";var Xs="KNITTING_POOL_DEPTH",At=He(),wr=At?.env?.[Js]==="1",Zs=()=>{let e=At?.env?.[Xs];if(typeof e!=="string")return 0;let r=Number.parseInt(e,10);return Number.isFinite(r)&&r>0?r:0},ln=Zs(),Mr=gt("node:worker_threads"),ei=()=>{let e=globalThis.WorkerGlobalScope;if(typeof e==="function")try{if(globalThis instanceof e)return!0}catch{}if(Br&&typeof globalThis.self<"u")return!0;return!1},wo=Mr?.Worker??globalThis.Worker,Bo=Mr?.MessageChannel??globalThis.MessageChannel,dn=Mr!=null,Tr=wr?!1:Mr?.isMainThread??!ei(),Zr=Mr?.workerData,et=Mr?.parentPort??(wr&&typeof At?.send==="function"?{postMessage:(e)=>At.send(e)}:void 0),Or=()=>{if(typeof Bo!=="function")throw Error("MessageChannel is not available in this runtime");return new Bo},To=(e,r)=>{if(typeof e.on==="function"){e.on("message",r);return}if(typeof e.addEventListener==="function"){e.addEventListener("message",(t)=>r(t?.data));return}e.onmessage=(t)=>r(t?.data)};var rt=(e)=>e instanceof SharedArrayBuffer||e instanceof ArrayBuffer,ri=(e)=>{if(!e||typeof e!=="object")return!1;let r=e;return rt(r.sab)&&typeof r.byteOffset==="number"&&Number.isInteger(r.byteOffset)&&r.byteOffset>=0&&typeof r.byteLength==="number"&&Number.isInteger(r.byteLength)&&r.byteLength>=0},Ze=(e)=>rt(e)||ri(e),Ke=(e)=>rt(e)?{sab:e,byteOffset:0,byteLength:e.byteLength}:e;var ko=new TextEncoder,ti=new TextDecoder,Eo=(e)=>e instanceof TypeError,ni=(e)=>{let r=Ke(e),t=Math.min(1,r.byteLength);return new Uint8Array(r.sab,r.byteOffset,t)},Ro=(e)=>{if(!e||typeof e!=="object")return!1;let r=e;return typeof r.encodeInto==="boolean"&&typeof r.decode==="boolean"},Bt=(e)=>{if(!e||typeof e!=="object")return!1;let r=e;return Ro(r.headers)&&Ro(r.payload)},xo=(e)=>{let r=ni(e),t=(()=>{if(typeof ko.encodeInto!=="function")return!1;let a=r.byteLength>0?r:r.subarray(0,0),u=a.byteLength>0?a[0]:void 0;try{return ko.encodeInto(a.byteLength>0?"a":"",a),!0}catch(c){if(!Eo(c))throw c;return!1}finally{if(u!==void 0)a[0]=u}})(),n=(()=>{try{return ti.decode(r),!0}catch(a){if(!Eo(a))throw a;return!1}})();return{encodeInto:t,decode:n}},Fr=({headers:e,payload:r})=>({headers:xo(e),payload:xo(r)});class ir{#e;#r;#n=0;#o=0;#t=0;constructor(e=512){let r=2;while(r<e)r<<=1;this.#e=Array(r).fill(null),this.#r=r-1}get size(){return this.#t}get isEmpty(){return this.#t===0}get capacity(){return this.#r+1}clear(){this.#n=0,this.#o=0,this.#t=0}peek(){return this.#t===0?void 0:this.#e[this.#n]}reserve(e){if(e<=this.capacity)return;let r=this.capacity;while(r<e)r<<=1;this.#s(r)}#a(){if(this.#t!==this.#r+1)return;this.#s(this.#r+1<<1)}#s(e){let r=this.#e,t=this.#r+1,n=this.#t,a=Array(e).fill(null),u=this.#n,c=Math.min(n,t-u);for(let f=0;f<c;f++)a[f]=r[u+f];for(let f=c;f<n;f++)a[f]=r[f-c];this.#e=a,this.#r=e-1,this.#n=0,this.#o=n}push(e){this.#a();let r=this.#e,t=this.#r,n=this.#o;return r[n]=e,this.#o=n+1&t,this.#t++,!0}unshift(e){this.#a();let r=this.#e,t=this.#r,n=this.#n-1&t;return this.#n=n,r[n]=e,this.#t++,!0}shift(){let e=this.#t;if(e===0)return;let r=this.#n,t=this.#e,n=t[r];return t[r]=null,this.#n=r+1&this.#r,this.#t=e-1,n}shiftNoClear(){let e=this.#t;if(e===0)return;let r=this.#n,t=this.#e[r];return this.#n=r+1&this.#r,this.#t=e-1,t}*[Symbol.iterator](){let e=this.#e,r=this.#r,t=this.#n,n=0,a=this.#t;while(n<a){let u=e[t];if(u!==null)yield u;t=t+1&r,n++}}toArray(){let e=Array(this.#t),r=this.#e,t=this.#r,n=this.#n;for(let a=0;a<e.length;a++)e[a]=r[n],n=n+1&t;return e}get[Symbol.toStringTag](){return`RingQueue(size=${this.#t}, cap=${this.capacity})`}}var oi=67108864,ai=4194304,Nr=(e)=>{if(!Number.isFinite(e))return;let r=Math.floor(e);return r>0?r:void 0},si=(e)=>{if(e==null)return!1;return e instanceof SharedArrayBuffer&&St&&bo(e)},ii=(e)=>{if(e==null)return;if(e instanceof SharedArrayBuffer)return Nr(So(e));return Nr(e.byteLength)},cr=({options:e,sab:r})=>{let t=r===void 0?void 0:Ke(r),n=t?.sab,c=e?.mode??(St?"growable":"fixed");if(c==="growable"&&n!=null&&!si(n))c="fixed";if(c==="growable"&&!St)c="fixed";let f=Nr(e?.payloadMaxByteLength)??Nr(t?.byteLength)??ii(n)??oi,A=Nr(e?.payloadInitialBytes),N=c==="fixed"?f:Math.min(A??ai,f),v=f>>3;if(v<=0)throw RangeError("payloadMaxByteLength is too small; must be at least 8 bytes.");let W=e?.maxPayloadBytes;if(W!==void 0){let h=Math.floor(W);if(!Number.isFinite(h)||h<=0)throw RangeError(`maxPayloadBytes must be > 0 and <= ${v}.`)}let R=Nr(W)??v;if(R<=0||R>v)throw RangeError(`maxPayloadBytes must be > 0 and <= ${v}.`);return{mode:c,payloadInitialBytes:N,payloadMaxByteLength:f,maxPayloadBytes:R}};var pn,mn,Lo=(e,r)=>{pn=e,mn=r},Ge={UNREACHABLE:0,BigInt:2,True:3,False:4,Undefined:5,NaN:6,Float64:9,Null:10},I={BORDER_SIGNAL_BUFFER:11,String:11,Json:12,StaticString:15,StaticJson:16,Binary:17,StaticBinary:18,Int32Array:19,Float64Array:20,BigInt64Array:21,BigUint64Array:22,DataView:23,Error:24,Date:25,Symbol:26,StaticSymbol:27,BigInt:28,StaticBigInt:29,StaticInt32Array:31,StaticFloat64Array:32,StaticBigInt64Array:33,StaticBigUint64Array:34,StaticDataView:35,ArrayBuffer:36,StaticArrayBuffer:37,Buffer:38,StaticBuffer:39,EnvelopeStaticHeader:40,EnvelopeDynamicHeader:41,EnvelopeStaticHeaderString:42,EnvelopeDynamicHeaderString:43,ExternalPayload:44,StaticExternalPayload:45,ProcessSharedBuffer:46,BufferReference:47,SharedArrayBuffer:48,EnvelopeStaticHeaderExternal:49,EnvelopeDynamicHeaderExternal:50,EnvelopeStaticHeaderStringExternal:51,EnvelopeDynamicHeaderStringExternal:52,NumericArray:53,StaticNumericArray:54},Po={};for(let e of Object.keys(I))Po[I[e]]=e;var vo=(e)=>Po[e]??String(e),we={paddingLock:0,padding:0,slots:32,header:0},Et=64,ui=256,ci=Symbol.for("knitting.payloadCodec.transportFinalizer");var Qe=7,kt=1,wt=2,Rt=(e)=>{let r=e[Qe];if((r&kt)!==0)return!1;return e[Qe]=(r|kt)>>>0,!0},nt=(e)=>{e[Qe]=(e[Qe]&~kt)>>>0},yn=(e)=>(e[Qe]&kt)!==0,hn=(e)=>{e[Qe]=0},fi=(e,r)=>{let t=e.finalize;e.finalize=t===void 0?r:()=>{try{t()}finally{r()}}},kr=(e,r)=>{if(e.finalize!==void 0||r===null||typeof r!=="object")return;let t=r[ci]?.();if(typeof t==="function")fi(e,t)},Dr=(e)=>{let r=e.finalize;if(e.finalize=void 0,r!==void 0)try{r()}catch{}},i={FlagsToHost:0,FunctionID:0,ID:1,Type:2,Start:3,End:4,PayloadLen:5,slotBuffer:6,Size:8,TotalBuff:144},xt=5,Wr=(1<<xt)-1,sf=32-xt,Lt=4294967295>>>xt,uf=~Wr>>>0,Pt=16,li=(1<<Pt)-1,cf=32-Pt,di=4294967295>>>Pt,ff=~li>>>0;var _o=(e)=>e[i.FunctionID]>>>Pt&di;var Co=(e)=>e[i.slotBuffer]&Wr;var Io=(e)=>e[i.slotBuffer]>>>xt&Lt;var vt={Reject:1},lf=Int32Array.BYTES_PER_ELEMENT,yi=we.paddingLock,pi=Et,Ur=ui,Mo=Et*2,Oo=Et*3;var fr=we.header+i.TotalBuff,df=fr*Uint32Array.BYTES_PER_ELEMENT,mi=Et/Uint32Array.BYTES_PER_ELEMENT,ot=i.TotalBuff-mi,Fo=ot,No=Fo+i.Size,gi=No+1,hi=No+2,Do=hi+1,bi=Do+1,Si=we.header+fr*we.slots,bn=Si*Uint32Array.BYTES_PER_ELEMENT,Ai=0,yf=Ge.UNREACHABLE,tt=(e)=>{},Wo=()=>{let e=new Uint32Array(i.Size);return e.value=null,e.finalize=void 0,e.resolve=tt,e.reject=tt,e[Qe]=0,e},Uo=()=>{let e=Wo();return e[i.ID]=Ai++,e},gn=(e,r,t)=>{e[0]=r[t],e[1]=r[t+1],e[2]=r[t+2],e[3]=r[t+3],e[4]=r[t+4],e[5]=r[t+5],e[6]=r[t+6],e[Qe]=0},Bi=(e,r)=>{let t=Wo();return gn(t,e,r),t},Tt=(e)=>{if(e[i.FlagsToHost]===0)e.resolve(e.value);else e.reject(e.value),e[i.FlagsToHost]=0},Er=({headers:e,headerSlotStrideU32:r,LockBoundSector:t,payload:n,payloadConfig:a,payloadSector:u,textCompat:c,resultList:f,toSentList:A,recycleList:N,processBoundary:v,consumers:W,consumerId:R,regionLanes:h,notifyOnHostPublish:O})=>{let L=Ke(t??_r(Ur)),T=L.sab,D=new Int32Array(T,L.byteOffset+yi,1),Q=new Int32Array(T,L.byteOffset+pi,1),X=Ke(e??_r(bn)),C=new Uint32Array(X.sab,X.byteOffset,X.byteLength>>>2),z=r??fr,ee=new Int32Array(X.sab,X.byteOffset+bi*Uint32Array.BYTES_PER_ELEMENT,1),ie=cr({sab:n,options:a}),M=n??(ie.mode==="growable"?je(ie.payloadInitialBytes,ie.payloadMaxByteLength):je(ie.payloadInitialBytes)),Z=Ke(u??L),G=c??Fr({headers:X,payload:M}),j=Math.max(1,(W??1)|0),V=j>1,fe=R===void 0,te=(R??0)|0,ae=(h??8)|0,s=we.slots/ae|0;if(V){if(ae<1||(ae&ae-1)!==0)throw RangeError("regionLanes must be a power of two");if(s<j)throw RangeError(`regionLanes=${ae} yields ${s} regions, too few for ${j} consumers`);if(te<0||te>=j)throw RangeError(`consumerId ${te} out of range`)}let P=new Int32Array(X.sab,X.byteOffset,X.byteLength>>>2),m=new Int32Array(j);for(let p=0;p<j;p++)m[p]=p*z+we.header+gi;let k=we.header+Do,l=j===32?-1:(1<<j)-1|0;if(V&&fe)Atomics.store(P,k,l);let g=(p,E)=>(p&1<<E)!==0,b;if(pn===void 0||mn===void 0)throw Error('Payload codec not registered before lock2(). Ensure the module that builds locks imports "./payloadCodec.ts" (it self-registers on load).');let K=pn({payload:{sab:M,config:ie},headersBuffer:C,headerSlotStrideU32:z,lockSector:Z,textCompat:G,processBoundary:v,onPromise:(p,E,J)=>{if((p[Qe]&wt)!==0&&Ae>0)p[Qe]=(p[Qe]&~wt)>>>0,Ae=Ae-1|0;b(p,E,J)}}),S=mn({payload:{sab:M,config:ie},headersBuffer:C,headerSlotStrideU32:z,lockSector:Z,textCompat:G,processBoundary:v}),y=0,w=0,oe=32,se=A??new ir,Se=N??new ir,Le=f??new ir,he=0,Ae=0,ce=Atomics.load,ye=Atomics.store,Oe=Atomics.notify,Ne=O===!0,De=typeof Atomics.waitAsync==="function"?Atomics.waitAsync.bind(Atomics):void 0,me=0,$e=()=>me=ce(Q,0)|0;$e();let Ee=(p)=>~p!==0?p:y^$e()|0,Be=(p)=>se.push(p),tr=()=>se.shiftNoClear(),nr=(p)=>se.unshift(p),Ue=()=>Se.shiftNoClear(),or=(p)=>Le.push(p),We=Math.clz32,o=we.header+Fo,_=({queue:p})=>(E)=>{let J=E*z+o,re=p[C[J+i.ID]];return gn(re,C,J),re},x=(p)=>Be(p),d=(p)=>{let E=p[Qe];if((E&wt)!==0)return;p[Qe]=(E|wt)>>>0,Ae=Ae+1|0},F=(p,E)=>K(p,E),U=0,H=0,q=(p,E)=>{let J=~E;if(J===0)return 0;if(!F(p,U=31-We(J)))return 0;return de(p,U,H=1<<U),H},pe=(p)=>{let E=Ee(y^me|0),J=0;if(p===se)while(!0){let re=tr();if(!re)break;E=Ee(E);let xe=q(re,E)|0;if(xe===0){nr(re);break}E=E^xe|0,J=J+1|0}else while(!0){let re=p.shiftNoClear();if(!re)break;E=Ee(E);let xe=q(re,E)|0;if(xe===0){p.unshift(re);break}E=E^xe|0,J=J+1|0}return J},ge=(p)=>{let E=Ee(y^me|0),J=0;if(he=0,p===se)while(!0){let re=tr();if(!re)break;E=Ee(E);let xe=q(re,E)|0;if(xe===0){if(yn(re)){he=he+1|0,d(re);continue}nr(re);break}E=E^xe|0,J=J+1|0}else while(!0){let re=p.shiftNoClear();if(!re)break;E=Ee(E);let xe=q(re,E)|0;if(xe===0){if(yn(re)){he=he+1|0,d(re);continue}p.unshift(re);break}E=E^xe|0,J=J+1|0}return J},Re=()=>{if(se.isEmpty)return!0;return ge(se),he=0,se.isEmpty},ne=(p)=>{if(ye(D,0,y=y^p|0),Ne&&ce(ee,0)!==0)Oe(D,0,1)},B=(p)=>ye(Q,0,w=w^p|0),Y=(p,E=y^me|0)=>{E=Ee(E);let J=~E;if(J===0)return!1;if(!F(p,U=31-We(J)))return!1;return de(p,U,H=1<<U)},ue=(p,E=y^me|0)=>{he=0,E=Ee(E);let J=~E;if(J===0)return!1;if(!F(p,U=31-We(J))){if(yn(p))he=1,d(p);return!1}return de(p,U,H=1<<U)},de=(p,E,J)=>{let re=E*z+o;return C[re]=p[0],C[re+1]=p[1],C[re+2]=p[2],C[re+3]=p[3],C[re+4]=p[4],C[re+5]=p[5],C[re+6]=p[6],C[re+Qe]=0,ne(J),!0},Ie=()=>(D[0]^w)!==0,Pe=()=>{let p=ce(D,0)^w|0;if(p===0)return!1;let E=oe,J=0;try{if(E===32)Xe(U=31-We(p)),H=1<<(E=U),p^=H,J=J^H|0;while(p!==0){let re=p&(1<<E)-1;if(re===0)re=p;Xe(U=31-We(re)),H=1<<(E=U),p^=H,J=J^H|0}}finally{if(J!==0)B(J)}return oe=E,!0},be=(p)=>ae===32?-1:(1<<ae)-1<<p*ae|0,Je=(p)=>{let E=ce(P,k)|0;for(let J=te+1;J<j;J++){if(!g(E,J))continue;if((ce(P,m[J])&p)!==0)return!0}return!1},er=s*te/j|0,dr=er,Ir=()=>{let p=ce(D,0)^ce(Q,0)|0;if(p===0)return!1;let E=0;if(s===1)E=1;else for(let le=0;le<s;le++)if((p&be(le))!==0)E|=1<<le;let J=ce(P,k)|0,re=0,xe=0;for(let le=0;le<j;le++){if(le===te||!g(J,le))continue;let Ye=ce(P,m[le])|0;if(re|=Ye,le<te)xe|=Ye}let yr=E&~xe;if(yr===0)return!1;let qr=E&~re,yt=qr!==0?qr:yr,pr=-1;for(let le=0;le<s;le++){let Ye=(dr+le)%s;if((yt&1<<Ye)!==0){pr=Ye;break}}if(pr<0)return!1;let Ve=1<<pr|0;ye(P,m[te],Ve);let sr=!1,_e=!1;for(let le=0;le<j;le++){if(le===te||!g(J,le))continue;if((ce(P,m[le])&Ve)===0)continue;if(le<te)sr=!0;else _e=!0}if(sr)return ye(P,m[te],0),!1;if(_e)while(Je(Ve));let ze=(ce(D,0)^ce(Q,0))&be(pr)|0;if(ze===0)return ye(P,m[te],0),!1;let ke=ze,Fe=0;try{while(ke!==0){let le=ke&-ke|0;Xe(31-We(le>>>0)),ke=ke&ke-1|0,Fe=Fe^le|0}}finally{if(w=w^Fe|0,Fe!==0)Atomics.xor(Q,0,Fe);ye(P,m[te],0),dr=er}return!0},ve=({queue:p,onResolved:E,shouldSettle:J,activeRejectPlaceholder:re})=>{let xe=_({queue:p}),yr=32;if(re!==void 0&&E){let Ve=E,sr=re;return()=>{let _e=ce(D,0)^w|0;if(_e===0)return 0;let ze=0,ke=0,Fe=yr;if(Fe===32){let le=31-We(_e),Ye=1<<le,qe=xe(le);if(S(qe,le),ke=ke^Ye|0,qe.reject!==sr)Tt(qe),Ve(qe);if(_e^=Ye,ze++,(ze&7)===0&&ke!==0)w=w^ke|0,ye(Q,0,w),ke=0;Fe=le}while(_e!==0){let le=Fe===31?2147483647:(1<<Fe)-1,Ye=_e&le;if(Ye===0)Ye=_e;let qe=31-We(Ye),po=1<<qe,pt=xe(qe);if(S(pt,qe),ke=ke^po|0,pt.reject!==sr)Tt(pt),Ve(pt);if(_e^=po,ze++,(ze&7)===0&&ke!==0)w=w^ke|0,ye(Q,0,w),ke=0;Fe=qe}if(ke!==0)w=w^ke|0,ye(Q,0,w);return yr=Fe,ze}}let qr=E!==void 0,yt=E??tt,pr=J;return()=>{let Ve=ce(D,0)^w|0;if(Ve===0)return 0;let sr=0,_e=0,ze=yr;if(ze===32){let ke=31-We(Ve),Fe=1<<ke,le=xe(ke);if(S(le,ke),_e=_e^Fe|0,pr===void 0||pr(le)){if(Tt(le),qr)yt(le)}if(Ve^=Fe,sr++,(sr&7)===0&&_e!==0)w=w^_e|0,ye(Q,0,w),_e=0;ze=ke}while(Ve!==0){let ke=ze===31?2147483647:(1<<ze)-1,Fe=Ve&ke;if(Fe===0)Fe=Ve;let le=31-We(Fe),Ye=1<<le,qe=xe(le);if(S(qe,le),_e=_e^Ye|0,pr===void 0||pr(qe)){if(Tt(qe),qr)yt(qe)}if(Ve^=Ye,sr++,(sr&7)===0&&_e!==0)w=w^_e|0,ye(Q,0,w),_e=0;ze=le}if(_e!==0)w=w^_e|0,ye(Q,0,w);return yr=ze,sr}},ar=(p)=>{if(De===void 0){ye(ee,0,0);return}ye(ee,0,1);try{let E=De(D,0,w|0,p);if(!E.async)ye(ee,0,0);return E}catch{ye(ee,0,0);return}},Xe=(p)=>{let E=p*z+o,J=Ue(),re;if(J)gn(J,C,E),J.value=null,J.finalize=void 0,J.resolve=tt,J.reject=tt,re=J;else re=Bi(C,E);return S(re,p),or(re),!0};return{enlist:x,encode:Y,encodeManyFrom:pe,encodeAll:Re,publish:(p)=>{if(ue(p))return!0;if((he|0)!==0)return he=0,!1;return Be(p),!1},flushPending:()=>{if(se.isEmpty)return!1;let p=ge(se)|0;return he=0,p!==0},decode:V?Ir:Pe,hasSpace:Ie,resolved:Le,hostBits:D,workerBits:Q,recyclecList:Se,resolveHost:ve,waitForHostChange:ar,setHostWaiterArmed:(p)=>{ye(ee,0,p?1:0)},hasPendingFrames:()=>se.size!==0,getPendingFrameCount:()=>se.size|0,getPendingPromiseCount:()=>Ae|0,resetPendingState:()=>{se.clear(),he=0,Ae=0},deactivateStealConsumer:(p)=>{if(!V||!fe)return!1;if(!Number.isInteger(p)||p<0||p>=j)throw RangeError(`consumerId ${p} out of range`);let E=1<<p;return(Atomics.and(P,k,~E)&E)!==0},takeDeferredCount:()=>{let p=he|0;return he=0,p},setPromiseHandler:(p)=>{b=p}}};var wi=1,Ho=1,Ti=performance.now.bind(performance),ki=(e,r,t,n)=>new Promise((a,u)=>{let c=!1,f=setTimeout(()=>{if(c)return;if(c=!0,t)a(n);else u(n)},r);e.then((A)=>{if(c)return;c=!0,clearTimeout(f),a(A)},(A)=>{if(c)return;c=!0,clearTimeout(f),u(A)})}),Ei=(e)=>(Math.floor(e())&Lt)>>>0,jo=(e,r,t,n)=>{let a=Ei(n)-Io(r)&Lt,u=t.ms-a;if(!(u>0))return e.then(()=>{},()=>{}),t.kind===Ho?Promise.resolve(t.value):Promise.reject(t.value);let c=Math.max(1,Math.floor(u));return ki(e,c,t.kind===Ho,t.value)},_t=-1,Ko=(e)=>{let r=_o(e);if(r===0)return _t;let t=r-wi|0;return t>=0?t:_t},Ri=(e,r)=>{let t=[];return(n)=>{let a=t[n];if(a)return a;return a={hasAborted:()=>e(n),now:r},t[n]=a,a}},Go=({job:e,timeout:r,hasAborted:t,now:n})=>{let a=n??Ti;if(!t){if(!r)return(c)=>e(c.value);return(c)=>{let f=e(c.value);if(!(f instanceof Promise))return f;return jo(f,c,r,a)}}let u=Ri(t,a);if(!r)return(c)=>{let f=Ko(c);if(f===_t)return e(c.value);return e(c.value,u(f))};return(c)=>{let f=Ko(c),A=f===_t?e(c.value):e(c.value,u(f));if(!(A instanceof Promise))return A;return jo(A,c,r,a)}};var Sn=Symbol.for("knitting.bufferReference.numericTransfer"),$o=Symbol.for("knitting.bufferReference.returnReleaseToken"),Ct=()=>{throw Error('BufferReference cannot run in runtime "browser"')};class It{constructor(){Ct()}static fromMetadata=Ct}var at=(e)=>!1,An=(e,r)=>r(),zo=(e)=>{return},Yo=Ct,Vo=Ct;var qo=({listOfFunctions:e,workerOptions:r,lock:t,returnLock:n,borrowReturnedBufferReferences:a,hasAborted:u,now:c,stealing:f})=>{let A=(S)=>{throw"UNREACHABLE FROM PLACE HOLDER (thread)"},N=0,v=0,W=e.reduce((S,y)=>(S.push(y.run),S),[]),R=new ir,h=new ir,O=(S)=>R.push(S),L=()=>R.shiftNoClear(),T=()=>h.shiftNoClear(),D=(S)=>h.unshift(S),Q=(S)=>h.push(S),X=(S)=>t.recyclecList.push(S),C=65535,z=i.FlagsToHost,ee=vt.Reject,ie=Atomics.load,M=n.hostBits,Z=n.workerBits,G=[],j=new Map,V=()=>{if(G.length===0)return;if((ie(M,0)^ie(Z,0))!==0)return;for(let S=0;S<G.length;S++)try{G[S]()}catch{}G.length=0},fe=(S)=>{let y=S.toString(),w=j.get(y);if(w===void 0)return;j.delete(y);try{w()}catch{}},te=e.reduce((S,y,w)=>{let oe=W[w];return S.push(Go({job:oe,timeout:y.timeout,hasAborted:u,now:c})),S},[]),ae=r?.resolveAfterFinishingAll===!0?()=>N!==0&&R.size===0:()=>N!==0,{decode:s,resolved:P}=t,m=()=>P.shiftNoClear(),k=()=>{if(f&&R.size!==0)return!1;if(!s())return!1;let S=m();while(S)S.resolve=A,S.reject=A,kr(S,S.value),O(S),S=m();return!0},l=(S)=>{if(!n.encode(S))return!1;return!0},g=(S,y)=>{if(S[z]=y?ee:0,!l(S))return!1;if(S.finalize!==void 0){let w=S.finalize[$o];if(w===void 0||a!==!0)G.push(S.finalize);else j.set(w.toString(),S.finalize);S.finalize=void 0}return N--,X(S),!0},b=(S,y,w,oe)=>{if(Dr(S),S.value=w,N++,oe&&v>0)v--;let se=y||S[z]===ee;if(!g(S,se))Q(S)},K=()=>{let S=T();if(!S)return!1;if(!g(S,S[z]===ee))return D(S),!1;return!0};return{hasCompleted:ae,hasPending:()=>R.size!==0,writeBatch:(S)=>{let y=0;while(y<S){if(!K())break;y++}return y},serviceBatchImmediate:()=>{let S=0;while(S<5&&R.size!==0){let y=L();try{let w=y[i.FunctionID]&C,oe=te[w](y);if(y[z]=0,y.value=null,oe instanceof Promise)v++,oe.then((se)=>b(y,!1,se,!0),(se)=>b(y,!0,se,!0));else b(y,!1,oe,!1)}catch(w){b(y,!0,w,!1)}++S}return S},enqueueLock:k,drainReturnReleases:V,releaseReturnedBufferReference:fe,hasAwaiting:()=>v>0,getAwaiting:()=>v}};var Hr=4096,Ot=64,Mt={op:0,rxStatus:Ot,txStatus:Ot*2,stop:Ot*3},st=Ot*4,Cr={running:0,requested:1,acknowledged:2},Bn=Atomics.store,Ft=({sabObject:e,isMain:r,startTime:t})=>{let n=e?.size??Hr,a=n+(Hr-n%Hr)%Hr,u=Ke(e?.sharedSab?e.sharedSab:je(a,Hr*Hr)),c=u.sab,f=u.byteOffset,A=t??performance.now(),N=new Int32Array(c,f+Mt.op,1);if(r)Bn(N,0,0);let v=new Int32Array(c,f+Mt.rxStatus,1);Bn(v,0,1);let W=new Int32Array(c,f+Mt.stop,1);if(r)Bn(W,0,Cr.running);return{sab:u,op:N,startAt:A,opView:N,rxStatus:v,txStatus:new Int32Array(c,f+Mt.txStatus,1),stopView:W}};var Rr=4294967264,wn=({lockSector:e})=>{let r=Ke(e??_r(Ur)),t=r.sab,n=new Int32Array(t,r.byteOffset+Mo,1),a=new Int32Array(t,r.byteOffset+Oo,1),u=new Uint32Array(we.slots),c=new Uint32Array(we.slots),f=Math.clz32,A=Atomics.load,N=Atomics.store,v=Atomics.xor,W=4294967295,R=Wr,h=~R>>>0;u.fill(4294967295);let O=0,L=0,T=0,D=(M)=>u.slice(0,M),Q=(M,Z)=>{let G=u,j=0;M=M|0,Z=Z>>>0;for(let fe=0;fe<M;fe++){let te=G[fe];if(te===4294967295)continue;if((Z&1<<(te&R))!==0)continue;if(j!==fe)G[j]=te;j++}let V=j;for(;j<M;j++)G[j]=4294967295;return V},X=()=>{let M=A(a,0)|0,G=~((T^M)>>>0)>>>0;if(O===0||G===0)return;if(G===4294967295){O=0,L=0;return}if(G&=L,G===0)return;L&=~G,O=Q(O,G)},C=(M,Z)=>{let G=u,j=c,V=O,fe=-1,te=0,ae=0,s=!1;if(V===0&&L===0)return G[0]=0,j[0]=Z,M[i.Start]=0,M[i.slotBuffer]=(M[i.slotBuffer]&Rr|0)>>>0,O=1,L=1,T^=1,0;if(V!==0){let l=A(a,0)|0,g=~(T^l)>>>0;if(g!==0)g&=L;if(g===L>>>0)O=0,L=0,V=0,g=0;else if(g!==0)for(let b=0;b<V;b++){let K=G[b],S=K&R,y=1<<S;if((g&y)===0)continue;if(j[S]>>>0!==Z>>>0)continue;let w=~L>>>0,oe=(w&-w)>>>0;if(oe===0)return-1;let se=31-f(oe),Se=K&h;return G[b]=(Se|se)>>>0,j[se]=Z,M[i.Start]=Se,M[i.slotBuffer]=(M[i.slotBuffer]&Rr|se)>>>0,L=L&~y|oe,T^=oe,se}if(V!==0&&g!==0&&g!==4294967295){s=!0;let b=0;for(let K=0;K<V;K++){let S=G[K],y=S&R;if((g&1<<y)!==0)continue;let w=S&h;if(fe===-1&&w-ae>>>0>=Z>>>0)fe=b,te=ae;if(b!==K)G[b]=S;b++,ae=w+(j[y]>>>0)>>>0}for(let K=b;K<V;K++)G[K]=4294967295;if(g!==0)L&=~g;O=V=b}}if(V>=we.slots)return-1;let P=~L>>>0,m=(P&-P)>>>0;if(m===0)return-1;let k=31-f(m);if(!s&&V!==0){if((G[0]&h)>=Z>>>0){for(let S=V;S>0;S--)G[S]=G[S-1];return G[0]=k,j[k]=Z,M[i.Start]=0,M[i.slotBuffer]=(M[i.slotBuffer]&Rr|k)>>>0,O=V+1,L|=m,T^=m,k}for(let S=0;S+1<V;S++){let y=G[S],oe=(y&h)+(j[y&R]>>>0)>>>0;if((G[S+1]&h)-oe>>>0<Z>>>0)continue;for(let Se=V;Se>S+1;Se--)G[Se]=G[Se-1];return G[S+1]=(oe|k)>>>0,j[k]=Z,M[i.Start]=oe,M[i.slotBuffer]=(M[i.slotBuffer]&Rr|k)>>>0,O=V+1,L|=m,T^=m,k}let g=G[V-1],K=(g&h)+(j[g&R]>>>0)>>>0;return G[V]=(K|k)>>>0,j[k]=Z,M[i.Start]=K,M[i.slotBuffer]=(M[i.slotBuffer]&Rr|k)>>>0,O=V+1,L|=m,T^=m,k}if(V===0)return G[0]=k,j[k]=Z,M[i.Start]=0,M[i.slotBuffer]=(M[i.slotBuffer]&Rr|k)>>>0,O=1,L|=m,T^=m,k;if(fe!==-1){for(let l=V;l>fe;l--)G[l]=G[l-1];return G[fe]=(te|k)>>>0,j[k]=Z,M[i.Start]=te,M[i.slotBuffer]=(M[i.slotBuffer]&Rr|k)>>>0,O=V+1,L|=m,T^=m,k}return G[V]=(ae|k)>>>0,j[k]=Z,M[i.Start]=ae,M[i.slotBuffer]=(M[i.slotBuffer]&Rr|k)>>>0,O=V+1,L|=m,T^=m,k};return{allocTask:(M)=>{let G=(M[i.PayloadLen]|0)+63&-64,j=C(M,G);if(j===-1)return-1;return N(n,0,T),j},setSlotLength:(M,Z)=>{M=M&Wr;let G=(Z|0)+63&-64;return c[M]=G>>>0,!0},lockSAB:t,free:(M)=>{v(a,0,1<<(M&Wr))},hostBits:n,workerBits:a,updateTable:X,startAndIndexToArray:D}};var Nt=Uint32Array.BYTES_PER_ELEMENT,lr=(e,r)=>{if(!Number.isInteger(e)||e<0)throw RangeError(`${r} must be a non-negative integer`);return e},kn=(e,r=64)=>{let t=lr(e,"value"),n=lr(r,"alignment");if(n===0)throw RangeError("alignment must be greater than zero");return Math.ceil(t/n)*n},En=(e,r,t)=>({sab:e,byteOffset:lr(r,"byteOffset"),byteLength:lr(t,"byteLength")}),xi=({alignTo:e=64,startByteOffset:r=0}={})=>{let t=lr(e,"alignTo");if(t===0)throw RangeError("alignTo must be greater than zero");let n=lr(r,"startByteOffset"),a=[];return{slices:a,take:(c,f,{alignTo:A=t,reserveByteLength:N}={})=>{let v=lr(f,`${c} byteLength`),W=lr(A,`${c} alignTo`);if(W===0)throw RangeError(`${c} alignTo must be greater than zero`);let R=N==null?kn(v,W):lr(N,`${c} reserveByteLength`);if(R<v)throw RangeError(`${c} reserveByteLength must cover byteLength`);let h=kn(n,W),O={name:c,byteOffset:h,byteLength:v,reservedByteLength:R};return a.push(O),n=h+R,O},byteLength:()=>n,bind:(c,f)=>En(c,f.byteOffset,f.byteLength)}},Qo=({slotIndex:e,slotStrideU32:r,baseU32:t=0,extraU32:n=0})=>e*r+t+n,Jo=({slotIndex:e,slotStrideU32:r,baseByteOffset:t=0,baseU32:n=0,extraU32:a=0})=>t+Qo({slotIndex:e,slotStrideU32:r,baseU32:n,extraU32:a})*Nt,Rn=({slotCount:e,slotStrideU32:r,slotLengthU32:t,baseU32:n=0})=>{let a=lr(e,"slotCount");if(a===0)return 0;return(Qo({slotIndex:a-1,slotStrideU32:r,baseU32:n})+t)*Nt},Li=(e)=>e*2,Tn=({slotCount:e,slotStrideU32:r,queues:t=1,alignTo:n=64})=>kn(e*r*Nt*t,n),Pi=({sab:e,byteOffset:r,slotCount:t,slotStrideU32:n})=>{let a=Li(n),u=n*Nt,c=Rn({slotCount:t,slotStrideU32:a,slotLengthU32:n});return{headerSlotStrideU32:a,requestHeaders:En(e,r,c),returnHeaders:En(e,r+u,c)}},xn=({signalBytes:e,abortBytes:r,lockSectorBytes:t,headerSlotStrideU32:n,slotCount:a,headerLayout:u="interleaved",alignTo:c=64,createBuffer:f=(A)=>new SharedArrayBuffer(A)})=>{let A=xi({alignTo:c}),N=A.take("signals",e),v=A.take("requestLockSector",t),W=A.take("returnLockSector",t),R,h,O;if(u==="interleaved")O=A.take("interleavedHeaders",Tn({slotCount:a,slotStrideU32:n,queues:2,alignTo:c}));else R=A.take("requestHeaders",Tn({slotCount:a,slotStrideU32:n,alignTo:c})),h=A.take("returnHeaders",Tn({slotCount:a,slotStrideU32:n,alignTo:c}));let L=A.take("abortSignals",r),T=f(A.byteLength()),D=A.bind(T,N),Q=A.bind(T,L),X=A.bind(T,v),C=A.bind(T,W),z=u==="interleaved"?Pi({sab:T,byteOffset:O.byteOffset,slotCount:a,slotStrideU32:n}):{headerSlotStrideU32:n,requestHeaders:A.bind(T,R),returnHeaders:A.bind(T,h)};return{controlSAB:T,signals:D,abortSignals:Q,lock:{headers:z.requestHeaders,headerSlotStrideU32:z.headerSlotStrideU32,lockSector:X,payloadSector:X},returnLock:{headers:z.returnHeaders,headerSlotStrideU32:z.headerSlotStrideU32,lockSector:C,payloadSector:C},slices:A.slices}};var vi=4096,xr=new TextEncoder,Pn=new TextDecoder,ur=64,_i=vi,Ci=(e)=>e+63&-64,Zo=(e)=>e.constructor===Uint8Array,Ii=(e)=>Zo(e)?e:new Uint8Array(e.buffer,e.byteOffset,e.byteLength),Mi=(e)=>e instanceof TypeError,Oi=(e)=>e instanceof TypeError,ea=()=>{let e=globalThis.Buffer;if(typeof e?.from!=="function"||typeof e?.allocUnsafe!=="function"||typeof e?.allocUnsafeSlow!=="function")return;return e},Fi=(e,r)=>{let t=0,n=0;for(let a of e){let u=xr.encode(a);if(n+u.byteLength>r.byteLength)break;r.set(u,n),n+=u.byteLength,t+=a.length}return{read:t,written:n}},Ln=(e,r)=>{let t=new Uint8Array(r.byteLength),n=typeof xr.encodeInto==="function"?xr.encodeInto(e,t):Fi(e,t);if(n.written>0)r.set(t.subarray(0,n.written),0);return n},Xo=(e)=>Pn.decode(e.slice()),ra=(e,r,t)=>{if(typeof xr.encodeInto!=="function")return Ln(e,r);if(t?.encodeInto===!0)return xr.encodeInto(e,r);if(t?.encodeInto===!1)return Ln(e,r);try{return xr.encodeInto(e,r)}catch(n){if(!Mi(n))throw n;return Ln(e,r)}},ta=(e,r)=>{if(r?.decode===!0)return Pn.decode(e);if(r?.decode===!1)return Xo(e);try{return Pn.decode(e)}catch(t){if(!Oi(t))throw t;return Xo(e)}},vn=({sab:e,payloadConfig:r,textCompat:t})=>{let n=e===void 0?void 0:Ke(e),a=e!==void 0&&!rt(e),u=n?.sab instanceof ArrayBuffer&&!(n.sab instanceof SharedArrayBuffer),c=a||u,f=n?.byteLength,A=Jr&&n?.sab instanceof ArrayBuffer&&!(n.sab instanceof SharedArrayBuffer)?void 0:ea(),N=cr({sab:n?.sab,options:!c||f===void 0?r:{...r,mode:"fixed",payloadInitialBytes:r?.payloadInitialBytes??f,payloadMaxByteLength:r?.payloadMaxByteLength??f}}),v=N.mode==="growable",W=n?.sab??(v?je(N.payloadInitialBytes,N.payloadMaxByteLength):je(N.payloadInitialBytes)),R=n?.byteOffset??0,h=n?.byteLength??W.byteLength,O=new Uint8Array(W,R+ur,Math.max(0,h-ur)),L=A?(s,P)=>{let m=A.from(s,P+ur);if(m.buffer!==s)throw Error("Buffer view does not alias shared buffer");return m}:void 0,T=L?.(W,R),D=new Float64Array(W,R+ur,Math.max(0,h-ur)>>>3),Q=()=>h-ur,X=(s)=>{if(Q()>=s)return!0;if(!v)return!1;try{if(!(W instanceof SharedArrayBuffer))return!1;W=Ao(W,Ci(ur+s+_i))}catch{return!1}return R=0,h=W.byteLength,O=new Uint8Array(W,R+ur,h-ur),T=L?.(W,R),D=new Float64Array(W,R+ur,h-ur>>>3),!0},C=(s,P)=>{if(!T)return ta(O.subarray(s,P),t);return T.toString("utf8",s,P)},z=(s,P=0)=>{let m=Ii(s);if(!X(P+m.byteLength))return-1;return O.set(m,P),m.byteLength},ee=(s,P=0)=>{let m=s.byteLength;if(!X(P+m))return-1;return O.set(s,P),m},ie=(s,P=0)=>{let m=s.byteLength;if(!X(P+m))return-1;return O.set(new Uint8Array(s),P),m},M=(s,P=0)=>{let m=s.byteLength;if(!X(P+m))return-1;return D.set(s,P>>>3),m},Z=(s,P)=>O.slice(s,P),G=(s,P)=>O.subarray(s,P),j=(s,P)=>{if(!A||!T)return Z(s,P);let m=Math.max(0,P-s|0),k=A.allocUnsafe(m);if(m===0)return k;return T.copy(k,0,s,P),k},V=(s,P)=>{if(!A||!T)return Z(s,P).buffer;let m=Math.max(0,P-s|0);if(m===0)return new ArrayBuffer(0);let k=A.allocUnsafeSlow(m);return T.copy(k,0,s,P),k.buffer};return{readUtf8:C,writeBinary:z,writeBuffer:ee,writeArrayBuffer:ie,write8Binary:M,readBytesCopy:Z,readBytesView:G,readBytesBufferCopy:j,readBufferCopy:j,readBytesArrayBufferCopy:V,readArrayBufferCopy:V,read8BytesFloatCopy:(s,P)=>D.slice(s>>>3,P>>>3),read8BytesFloatView:(s,P)=>D.subarray(s>>>3,P>>>3),writeUtf8:(s,P,m=s.length*3)=>{if(!X(P+m))return-1;let k=O.subarray(P,P+m);if(!T){let{read:b,written:K}=ra(s,k,t);if(b!==s.length)return-1;return K}let{read:l,written:g}=xr.encodeInto(s,k);if(l!==s.length)return-1;return g}}},na=({headersBuffer:e,slotStrideU32:r,textCompat:t})=>{let n=ea(),a=e instanceof Uint32Array?e.buffer:e,u=e instanceof Uint32Array?e.byteOffset:0,c=Uint32Array.BYTES_PER_ELEMENT,f=r??fr,A=ot*c,N=new Uint8Array(a,u),v=n?.from(a,u),W=new Float64Array(a,u,a.byteLength-u>>>3),R=(l)=>Jo({slotIndex:l,slotStrideU32:f,baseByteOffset:u,baseU32:we.header}),h=new Uint32Array(we.slots);for(let l=0;l<we.slots;l++)h[l]=R(l)-u;let O=new Uint32Array(a,u,a.byteLength-u>>>2),L=new Uint32Array(we.slots);for(let l=0;l<we.slots;l++)L[l]=h[l]>>>2;let T=(l,g,b)=>{let K=L[b];for(let S=0;S<g;S++)O[K+S]=l[S];return g*c},D=(l,g,b)=>{let K=L[b];for(let S=0;S<g;S++)l[S]=O[K+S];return l},Q=(l,g)=>(l|0)>=0&&l+g<=A,X=(l,g)=>{let b=h[g],K=N.subarray(b,b+A);if(!v){let{read:w,written:oe}=ra(l,K,t);if(w!==l.length)return-1;return oe}let{read:S,written:y}=xr.encodeInto(l,K);if(S!==l.length)return-1;return y},C=(l,g,b)=>{let K=h[b];if(!v)return ta(N.subarray(K+l,K+g),t);return v.toString("utf8",K+l,K+g)},z=(l,g,b=0)=>(N.set(l,h[g]+b),l.byteLength),ee=(l,g,b=0)=>(N.set(l,h[g]+b),l.byteLength),ie=(l,g,b=0)=>{let K=l.byteLength;return N.set(new Uint8Array(l),h[g]+b),K},M=(l,g,b=0)=>(N.set(l,h[g]+b),l.byteLength),Z=(l,g,b=0)=>{if(!Zo(l))return-1;return M(l,g,b)},G=(l,g,b=0)=>{let K=l.byteLength;if(!Q(b,K))return-1;return W.set(l,h[g]+b>>>3),K},j=(l,g,b)=>N.slice(h[b]+l,h[b]+g),V=(l,g,b)=>N.subarray(h[b]+l,h[b]+g),fe=(l,g,b)=>{if(!n||!v)return j(l,g,b);let K=g-l,S=n.allocUnsafe(K),y=h[b];return v.copy(S,0,y+l,y+g),S},te=(l,g,b)=>{if(!n)return j(l,g,b);let K=fe(l,g,b);return new Uint8Array(K.buffer,K.byteOffset,K.byteLength)},s=Jr?(l,g,b)=>j(l,g,b):te,P=(l,g,b)=>{if(!n||!v)return j(l,g,b).buffer;let K=Math.max(0,g-l|0);if(K===0)return new ArrayBuffer(0);let S=n.allocUnsafeSlow(K),y=h[b];return v.copy(S,0,y+l,y+g),S.buffer};return{writeUtf8:X,readUtf8:C,writeBinary:z,writeBuffer:ee,writeArrayBuffer:ie,writeExactUint8Array:M,writeUint8Array:Z,writeU32Words:T,readU32Words:D,write8Binary:G,readBytesCopy:j,readBytesView:V,readBytesBufferCopy:fe,readBufferCopy:fe,readUint8ArrayCopy:s,readUint8ArrayBufferCopy:te,readBytesArrayBufferCopy:P,readArrayBufferCopy:P,read8BytesFloatCopy:(l,g,b)=>W.slice(h[b]+l>>>3,h[b]+g>>>3),read8BytesFloatView:(l,g,b)=>W.subarray(h[b]+l>>>3,h[b]+g>>>3),maxBytes:A}};var Te={Function:0,Symbol:1,Json:2,Serializable:3},Ni=(e,r,t)=>{switch(r){case Te.Function:return`KNT_ERROR_0: Function is not a valid type; name: ${typeof e.value==="function"?e.value.name||"<anonymous>":"<unknown>"}`;case Te.Symbol:return"KNT_ERROR_1: Symbol must use Symbol.for(...) keys";case Te.Json:return t==null||t.length===0?"KNT_ERROR_2: JSON stringify failed; payload must be JSON-safe":`KNT_ERROR_2: JSON stringify failed; ${t}`;case Te.Serializable:return t==null||t.length===0?"KNT_ERROR_3: Unsupported payload type; serialize it yourself":`KNT_ERROR_3: Unsupported payload type; ${t}`}},Ce=({task:e,type:r,onPromise:t,detail:n})=>{let a=Ni(e,r,n);if(!Tr)return e.value=a,e[i.FlagsToHost]=vt.Reject,!1;if(t==null)throw TypeError(a);if(!Rt(e))return!1;return queueMicrotask(()=>{nt(e),e.value=a,t(e,!0,a)}),!1};var oa=Symbol.for("knitting.payloadCodec.transportFinalizer");class mr{header;payload;constructor(e,r){this.header=e,this.payload=r}[Symbol.dispose](){let e=this.payload;if(e!==null&&typeof e==="object")e[Symbol.dispose]?.()}[oa](){let e=this.payload;if(e===null||typeof e!=="object")return;let r=e[oa];return typeof r==="function"?r.call(e):void 0}}var Dt=()=>{throw Error('BufferReference cannot run in runtime "browser"')};var gr="knitting.sharedArrayBuffer",On=Symbol.for("knitting.sharedArrayBuffer.numericTransfer"),Ut=8,Di=2,Wi=Symbol.for("knitting.payloadCodec"),ia=()=>{let e=He();if(e!==void 0&&typeof e.pid==="number")return e.pid;let r=globalThis.Deno;if(typeof r?.pid==="number")return r.pid;return 0},Cn=`${Me}:${ia()}`,Ui=typeof SharedArrayBuffer==="function",Hi=(e)=>Ui&&e instanceof SharedArrayBuffer,aa=new WeakMap,Wt=new WeakMap,sa=new WeakMap,In=new Map,ji=typeof FinalizationRegistry==="function"?new FinalizationRegistry((e)=>{try{Dt().releaseShared(e)}catch{}}):void 0,Mn=(e)=>[Number(e&0xffffffffn)>>>0,Number(e>>32n&0xffffffffn)>>>0],_n=(e,r)=>BigInt(r>>>0)<<32n|BigInt(e>>>0),Ki=(e)=>{switch(e){case"node":return 1;case"deno":return 2;case"bun":return 3;default:return 0}},Gi=(e)=>{switch(e){case 1:return"node";case 2:return"deno";case 3:return"bun";default:return}},$i=(e)=>{if(e===void 0)return;let r=sa.get(e);if(r===void 0)r=new Set,sa.set(e,r);return r},zi=(e)=>{let r=aa.get(e);if(r===void 0){let t=Dt().produceShared(e);r={token:t.token,pointer:t.pointer,byteLength:t.byteLength},aa.set(e,r),ji?.register(e,r.token)}return r},Yi=(e)=>({kind:gr,origin:Cn,runtime:Me,pointer:e.pointer.toString(),token:e.token.toString(),byteLength:e.byteLength}),Vi=(e)=>{if(e.byteLength>4294967295)return;let[r,t]=Mn(e.token),[n,a]=Mn(e.pointer);return[r,t,n,a,e.byteLength>>>0,Ki(Me),ia()>>>0,0]},qi=(e)=>{let[r,t]=Mn(e.token);return[r,t]},Qi=(e)=>{let r=Wt.get(e);if(r!==void 0)return r;let t=zi(e);return r=ua(e,t,Yi(t)),r},ua=(e,r,t)=>{let n=Wt.get(e);if(n!==void 0)return n;let a=Vi(r),u=qi(r);return n={[Wi]:gr,toMetadata:()=>t,[On]:(c)=>{if(a===void 0)return;let f=$i(c);if(f===void 0)return a;if(f.has(r.token))return u;return f.add(r.token),a}},Wt.set(e,n),n},Fn=(e)=>{if(Hi(e))return Qi(e);return Wt.get(e)},Ji=(e)=>{if(e===null||typeof e!=="object")return!1;let r=e;return r.kind===gr&&typeof r.origin==="string"&&typeof r.runtime==="string"&&typeof r.pointer==="string"&&typeof r.token==="string"&&typeof r.byteLength==="number"&&Number.isInteger(r.byteLength)&&r.byteLength>=0},ca=(e,r)=>{if(e.origin!==Cn)throw Error(`SharedArrayBuffer cannot cross a process boundary (origin ${e.origin} != ${Cn}); it is shared by reference to thread workers only.`);let t=BigInt(e.token),n=In.get(t);if(n!==void 0)return n;if(r)throw TypeError("SharedArrayBuffer cache miss for warm token payload");let a=Dt().adoptShared({token:t,pointer:BigInt(e.pointer),byteOffset:0,byteLength:e.byteLength});return In.set(t,a.buffer),ua(a.buffer,{token:t,pointer:BigInt(e.pointer),byteLength:e.byteLength},e),a.buffer},Xi=(e)=>{if(!Ji(e))throw TypeError("Invalid SharedArrayBuffer payload metadata");return ca(e,!1)},Zi=(e)=>{if(e.length===Di){let a=_n(e[0]??0,e[1]??0),u=In.get(a);if(u!==void 0)return u;throw TypeError("SharedArrayBuffer cache miss for warm token payload")}let r=Gi(e[5]??0);if(r===void 0)throw TypeError("Invalid SharedArrayBuffer numeric runtime");let t=e[6];if(t===void 0||!Number.isInteger(t)||t<0)throw TypeError("Invalid SharedArrayBuffer numeric origin");if(e.length!==Ut)throw TypeError("Invalid SharedArrayBuffer numeric word count");let n={kind:gr,origin:`${r}:${t>>>0}`,runtime:r,pointer:_n(e[2]??0,e[3]??0).toString(),token:_n(e[0]??0,e[1]??0).toString(),byteLength:e[4]??0};return ca(n,!1)},eu=globalThis,ru=eu.__KNITTING_PAYLOAD_CODECS__??=Object.create(null);ru[gr]={decode:Xi,decodeNumeric:Zi};var jt=(e)=>!1,Ht=()=>{throw Error("ProcessSharedBuffer is unavailable in the browser build")};class Lr{constructor(){Ht()}static create=Ht;static fromMetadata=Ht;toMetadata=Ht}var fa=Symbol.for("knitting.numericArray");class Kt extends Array{}Object.defineProperty(Kt.prototype,fa,{value:!0,enumerable:!1,writable:!1,configurable:!1});var Nn=(e)=>e[fa]===!0,Dn=(e)=>{let r=e.length,t=new Kt(r);for(let n=0;n<r;n++)t[n]=e[n];return t};var jn=new ArrayBuffer(8),$t=new Float64Array(jn),Aa=new BigInt64Array(jn),rr=new Uint32Array(jn),Ba=new TextEncoder,zt=globalThis.Buffer,la=typeof zt?.byteLength==="function"?(e,r)=>zt.byteLength(e,r):void 0,tu=(e)=>typeof zt?.isBuffer==="function"&&zt.isBuffer(e),nu=(e)=>e!=null&&typeof e==="object"&&Object.getPrototypeOf(e)===Uint8Array.prototype,ou=!la?(e)=>Ba.encode(e).byteLength:(e)=>la(e,"utf8"),au=-(1n<<63n),su=(1n<<63n)-1n,{parse:hr,stringify:Kr}=JSON,{for:Wn,keyFor:iu}=Symbol,wa=Wn("knitting.payloadCodec"),Kn="knitting.bufferReference",Gn="knitting.processSharedBuffer",Ta=globalThis,ka=Object.getPrototypeOf,qt=Object.prototype.hasOwnProperty,Yt=Array.isArray,Ea=Object.prototype,da="Unsupported object type. Allowed: plain object, array, Error, Date, Envelope, Buffer, ArrayBuffer, DataView, typed arrays, and registered external payloads. Serialize it yourself.",ya="Envelope payload must be an ArrayBuffer, SharedArrayBuffer, ProcessSharedBuffer, or BufferReference.",uu="Envelope header must be a JSON-like value or string.",cu="Envelope header cannot contain Promise values.",fu="Dynamic payload exceeds maxPayloadBytes.",lu="Dynamic payload buffer capacity exceeded.",Gr="SharedArrayBuffer and BufferReference are process-local pointer payloads and cannot cross a process-worker boundary; use ProcessSharedBuffer instead.",pa="Reserved Knitting external payload codec cannot be forged.",$r=(e)=>e===gr||e===Kn,ma=(e)=>$r(e)||e===Gn,du=(e)=>{let r=ka(e);return r===Ea||r===null},ga=(e)=>{let r=e[wa];return typeof r==="string"?r:void 0},yu=(e)=>{switch(e){case"node":return 1;case"deno":return 2;case"bun":return 3;default:return 0}},pu=(e)=>{switch(e){case"shared-array-buffer":return 1;case"external-array-buffer":return 2;default:return 0}},jr=(e)=>typeof e==="number"&&Number.isInteger(e)&&e>=0&&e<=4294967295,ha=(e)=>typeof e.toMetadata==="function"&&typeof e[wa]==="string",ba=(e)=>{if(at(e))return It.prototype.toMetadata.call(e);if(jt(e))return Lr.prototype.toMetadata.call(e);return e.toMetadata()},Gt=(e,r)=>{let t=hr(e);if(!Yt(t)||t.length!==2)return t;let n=t[0],a=t[1];if(typeof n!=="string")return{codec:n,metadata:a};if(r&&$r(n))throw TypeError(Gr);let u=Ta.__KNITTING_PAYLOAD_CODECS__?.[n];return typeof u?.decode==="function"?u.decode(a):{codec:n,metadata:a}},Vt=8,Un=8,mu=4294967295,$n=(e,r)=>{let t=Ta.__KNITTING_PAYLOAD_CODECS__?.[e];if(typeof t?.decodeNumeric==="function")return t.decodeNumeric(r);return{codec:e,metadata:Array.from(r)}},gu=(e)=>$n(Gn,e),hu=(e)=>$n(Kn,e),bu=(e)=>$n(gr,e),Su=(e)=>{let r=e.value;switch(typeof r){case"number":if(r!==r)return e[i.Type]=Ge.NaN,!0;return $t[0]=r,e[i.Type]=Ge.Float64,e[i.Start]=rr[0],e[i.End]=rr[1],!0;case"boolean":return e[i.Type]=r?Ge.True:Ge.False,!0;case"undefined":return e[i.Type]=Ge.Undefined,!0;case"bigint":if(r<au||r>su)return!1;return Aa[0]=r,e[i.Type]=Ge.BigInt,e[i.Start]=rr[0],e[i.End]=rr[1],!0;case"object":if(r===null)return e[i.Type]=Ge.Null,!0;return!1;default:return!1}},Hn=(e,r)=>{if(e instanceof Promise)return!0;if(e===null||typeof e!=="object")return!1;let t=e,n=r??new Set;if(n.has(t))return!1;if(n.add(t),Yt(t)){let u=t;for(let c=0;c<u.length;c++)if(Hn(u[c],n))return!0;return!1}if(!du(t))return!1;let a=t;for(let u in a){if(!qt.call(a,u))continue;if(Hn(a[u],n))return!0}return!1},Ra=(e)=>{if(e===null||e===void 0)return e;switch(typeof e){case"string":case"number":case"boolean":return e;case"bigint":return e.toString();case"symbol":case"function":return String(e)}if(e instanceof Error){let r={name:e.name,message:e.message};if(typeof e.stack==="string")r.stack=e.stack;if(qt.call(e,"cause"))r.cause=Ra(e.cause);return r}try{return hr(Kr(e))}catch{return String(e)}},Au=(e)=>{let r={name:e.name,message:e.message};if(typeof e.stack==="string")r.stack=e.stack;if(qt.call(e,"cause"))r.cause=Ra(e.cause);return r},Bu=(e)=>{let r;try{r=hr(e)}catch{return Error(e)}if(r==null||typeof r!=="object")return Error(String(r));let t=r,n=Error(typeof t.message==="string"?t.message:"");if(typeof t.name==="string"&&t.name.length>0)n.name=t.name;if(typeof t.stack==="string")try{n.stack=t.stack}catch{}if(qt.call(t,"cause"))n.cause=t.cause;return n},Sa=(e)=>{let r=e[0],t=0n;for(let n=e.length-1;n>=1;n--)t=t<<8n|BigInt(e[n]);return r===1?-t:t},wu=(e,r,t)=>{let n=r??fr,a=Rn({slotCount:we.slots,slotStrideU32:n,slotLengthU32:ot,baseU32:we.header});if(e.byteLength<Math.max(a,bn))return null;return na({headersBuffer:e,slotStrideU32:n,textCompat:t})},xa=(e,r,t)=>{let n=wu(e,r,t);if(n===null)throw RangeError("headersBuffer is too small for static payload IO");return n},Tu=({lockSector:e,payload:r,sab:t,payloadConfig:n,headersBuffer:a,headerSlotStrideU32:u,textCompat:c,onPromise:f,processBoundary:A=!1})=>{let N=r?.sab??t,v=cr({sab:N,options:r?.config??n}),W=v.maxPayloadBytes,{allocTask:R,setSlotLength:h,free:O}=wn({lockSector:e}),{writeBinary:L,writeBuffer:T,writeArrayBuffer:D,write8Binary:Q,writeUtf8:X}=vn({sab:N,payloadConfig:v,textCompat:c?.payload}),{maxBytes:C,writeBinary:z,writeBuffer:ee,writeArrayBuffer:ie,writeExactUint8Array:M,writeU32Words:Z,write8Binary:G,writeUtf8:j}=xa(a,u,c?.headers),V=(o,_,x)=>Ce({task:o,type:Te.Serializable,onPromise:f,detail:`${fu} limit=${W}; actual=${_}; type=${x}.`}),fe=(o)=>Ce({task:o,type:Te.Serializable,onPromise:f,detail:lu}),te=(o,_,x)=>{if(_<=W)return!0;return V(o,_,x)},ae=(o,_,x,d)=>{let F=_.length*3;if(F+x<=W)return F;let H=ou(_),q=H+x;if(q>W)return V(o,q,d),-1;return H},s=(o,_,x)=>ae(o,_,0,x),P=(o,_)=>(o[i.PayloadLen]=_,R(o)),m=-1,k=(o,_)=>{o[i.PayloadLen]=_;let x=R(o);return m=x,x},l=()=>{if(m!==-1)O(m),m=-1},g=(o,_)=>{if(O(_),m===_)m=-1;return fe(o)},b=new Uint8Array(16),K=(o)=>{let _=0,x=o;if(o<0n)_=1,x=-o;let d=1;while(x>0n){if(d>=b.byteLength){let F=new Uint8Array(b.byteLength<<1);F.set(b,0),b=F}b[d++]=Number(x&0xffn),x>>=8n}return b[0]=_,d},S=(o)=>{b.fill(0,0,o)},y=(o,_)=>{let x;try{x=Kr(Au(_))}catch(H){let q=H instanceof Error?H.message:String(H);return Ce({task:o,type:Te.Serializable,onPromise:f,detail:q})}let d=s(o,x,"Error");if(d<0)return!1;o[i.Type]=I.Error;let F=k(o,d),U=X(x,o[i.Start],d);if(U<0)return g(o,F);return o[i.PayloadLen]=U,h(F,U),o.value=null,!0},w=(o,_,x,d,F)=>{let U=x.byteLength;if(U<=C){let pe=z(x,_);if(pe!==-1)return o[i.Type]=F,o[i.PayloadLen]=pe,o.value=null,!0}if(o[i.Type]=d,!te(o,U,vo(d)))return!1;let H=k(o,U),q=L(x,o[i.Start]);if(q<0)return g(o,H);return o[i.PayloadLen]=q,h(H,q),o.value=null,!0},oe=(o,_,x)=>{let d=x.byteLength;if(d<=C)return M(x,_),o[i.Type]=I.StaticBinary,o[i.PayloadLen]=d,o.value=null,!0;if(o[i.Type]=I.Binary,!te(o,d,"Binary"))return!1;let F=k(o,d),U=L(x,o[i.Start]);if(U<0)return g(o,F);return o[i.PayloadLen]=U,h(F,U),o.value=null,!0},se=(o,_,x)=>{let d=x.byteLength;if(d<=C){let H=ee(x,_);if(H!==-1)return o[i.Type]=I.StaticBuffer,o[i.PayloadLen]=H,o.value=null,!0}if(o[i.Type]=I.Buffer,!te(o,d,"Buffer"))return!1;let F=k(o,d),U=T(x,o[i.Start]);if(U<0)return g(o,F);return o[i.PayloadLen]=U,h(F,U),o.value=null,!0},Se=(o,_,x)=>{let d=x.byteLength;if(d<=C){let H=G(x,_);if(H!==-1)return o[i.Type]=I.StaticFloat64Array,o[i.PayloadLen]=H,o.value=null,!0}if(o[i.Type]=I.Float64Array,!te(o,d,"Float64Array"))return!1;let F=k(o,d),U=Q(x,o[i.Start]);if(U<0)return g(o,F);return o[i.PayloadLen]=U,h(F,U),o.value=null,!0},Le=new Float64Array(0),he=(o,_,x)=>{let d=x.length;if(Le.length<d)Le=new Float64Array(d);for(let pe=0;pe<d;pe++)Le[pe]=x[pe];let F=Le.subarray(0,d),U=F.byteLength;if(U<=C){let pe=G(F,_);if(pe!==-1)return o[i.Type]=I.StaticNumericArray,o[i.PayloadLen]=pe,o.value=null,!0}if(o[i.Type]=I.NumericArray,!te(o,U,"NumericArray"))return!1;let H=k(o,U),q=Q(F,o[i.Start]);if(q<0)return g(o,H);return o[i.PayloadLen]=q,h(H,q),o.value=null,!0},Ae=(o,_,x)=>{let d=x.byteLength;if(d<=C){let H=ie(x,_);if(H!==-1)return o[i.Type]=I.StaticArrayBuffer,o[i.PayloadLen]=H,o.value=null,!0}if(o[i.Type]=I.ArrayBuffer,!te(o,d,"ArrayBuffer"))return!1;let F=k(o,d),U=D(x,o[i.Start]);if(U<0)return g(o,F);return o[i.PayloadLen]=U,h(F,U),o.value=null,!0},ce=new Uint32Array(Vt),ye=new Uint32Array(Ut),Oe=(o,_,x)=>{let d=x.descriptor;if(d===void 0||d.name!==void 0||!jr(d.fd)||!jr(d.size)||!jr(d.byteLength)||!jr(x.byteOffset)||!jr(x.byteLength))return!1;let F=d.baseAddressMod64;if(F!==void 0&&!jr(F))return!1;return ce[0]=d.fd,ce[1]=d.size,ce[2]=d.byteLength,ce[3]=x.byteOffset,ce[4]=x.byteLength,ce[5]=yu(d.runtime),ce[6]=pu(d.kind),ce[7]=F===void 0?mu:F,o[i.Type]=I.ProcessSharedBuffer,o[i.PayloadLen]=Z(ce,Vt,_),o.value=null,!0},Ne=(o,_,x)=>{let d=at(x)?It.prototype[Sn].call(x):x[Sn]?.();if(d===void 0)return!1;return o[i.Type]=I.BufferReference,o[i.PayloadLen]=Z(d,Un,_),kr(o,x),o.value=null,!0},De=(o,_,x)=>{let d=x[On]?.(e);if(d===void 0)return!1;return ye[0]=d[0]??0,ye[1]=d[1]??0,ye[2]=d[2]??0,ye[3]=d[3]??0,ye[4]=d[4]??0,ye[5]=d[5]??0,ye[6]=d[6]??0,ye[7]=d[7]??0,o[i.Type]=I.SharedArrayBuffer,o[i.PayloadLen]=Z(ye,d.length,_),o.value=null,!0},me=(o,_,x,d=!1)=>{let F=ga(x);if(F===void 0)return Ce({task:o,type:Te.Serializable,onPromise:f,detail:da});if(d){if(A&&$r(F))return Ce({task:o,type:Te.Serializable,onPromise:f,detail:Gr});if(F===gr&&De(o,_,x))return!0;if(F===Kn&&Ne(o,_,x))return!0;if(F===Gn&&Oe(o,_,x))return!0}else if(ma(F))return Ce({task:o,type:Te.Serializable,onPromise:f,detail:A&&$r(F)?Gr:pa});let U;try{U=Kr([F,d?ba(x):x.toMetadata()])}catch(ge){let Re=ge instanceof Error?ge.message:String(ge);return Ce({task:o,type:Te.Serializable,onPromise:f,detail:Re})}if(typeof U!=="string")return Ce({task:o,type:Te.Serializable,onPromise:f,detail:"External payload metadata must be JSON serializable."});if(U.length<=C){let ge=j(U,_);if(ge!==-1)return o[i.Type]=I.StaticExternalPayload,o[i.PayloadLen]=ge,kr(o,x),o.value=null,!0}o[i.Type]=I.ExternalPayload;let H=s(o,U,"ExternalPayload");if(H<0)return!1;let q=k(o,H),pe=X(U,o[i.Start],H);if(pe<0)return g(o,q);return o[i.PayloadLen]=pe,h(q,pe),kr(o,x),o.value=null,!0},$e=(o,_)=>($t[0]=_.getTime(),o[i.Type]=I.Date,o[i.Start]=rr[0],o[i.End]=rr[1],o.value=null,!0),Ee=(o,_,x)=>{if(Hn(_)){Ce({task:o,type:Te.Serializable,onPromise:f,detail:cu});return}if(x)return _;let d;try{d=Kr(_)}catch(F){let U=F instanceof Error?F.message:String(F);Ce({task:o,type:Te.Json,onPromise:f,detail:U});return}if(typeof d!=="string"){Ce({task:o,type:Te.Serializable,onPromise:f,detail:uu});return}return d},Be=(o)=>{if(o===null||typeof o!=="object")return;let _=Fn(o);if(_!==void 0)return{payload:_,trustedReservedCodec:!0};if(at(o)||jt(o))return{payload:o,trustedReservedCodec:!0};if(ha(o))return{payload:o,trustedReservedCodec:!1};return},tr=(o,_,x,d,F)=>{let U=new Uint8Array(F),H=U.byteLength,q=H>0?H:1,pe=j(x,_);if(pe!==-1){if(!te(o,q,"EnvelopeStaticHeaderPayload"))return!1;let Y=k(o,q);if(o[i.Type]=d?I.EnvelopeStaticHeaderString:I.EnvelopeStaticHeader,o[i.PayloadLen]=pe,o[i.End]=H,H>0){let ue=L(U,o[i.Start]);if(ue<0)return g(o,Y);h(Y,ue)}return o.value=null,!0}let ge=ae(o,x,H,d?"EnvelopeDynamicHeaderString":"EnvelopeDynamicHeader");if(ge<0)return!1;o[i.Type]=d?I.EnvelopeDynamicHeaderString:I.EnvelopeDynamicHeader;let Re=k(o,ge+H),ne=o[i.Start],B=X(x,ne,ge);if(B<0)return g(o,Re);if(H>0){if(L(U,ne+B)<0)return g(o,Re)}return o[i.PayloadLen]=B,o[i.End]=H,h(Re,B+H),o.value=null,!0},nr=(o,_,x,d,F,U)=>{let H=ga(F);if(H===void 0)return Ce({task:o,type:Te.Serializable,onPromise:f,detail:ya});if(U){if(A&&$r(H))return Ce({task:o,type:Te.Serializable,onPromise:f,detail:Gr})}else if(ma(H))return Ce({task:o,type:Te.Serializable,onPromise:f,detail:A&&$r(H)?Gr:pa});let q;try{q=Kr([H,U?ba(F):F.toMetadata()])}catch(Ie){let Pe=Ie instanceof Error?Ie.message:String(Ie);return Ce({task:o,type:Te.Serializable,onPromise:f,detail:Pe})}if(typeof q!=="string")return Ce({task:o,type:Te.Serializable,onPromise:f,detail:"Envelope body metadata must be JSON serializable."});let pe=Ba.encode(q),ge=pe.byteLength,Re=j(x,_);if(Re!==-1){if(!te(o,ge,"EnvelopeStaticHeaderExternal"))return!1;let Ie=k(o,ge);o[i.Type]=d?I.EnvelopeStaticHeaderStringExternal:I.EnvelopeStaticHeaderExternal,o[i.PayloadLen]=Re,o[i.End]=ge;let Pe=L(pe,o[i.Start]);if(Pe<0)return g(o,Ie);return h(Ie,Pe),kr(o,F),o.value=null,!0}let ne=ae(o,x,ge,d?"EnvelopeDynamicHeaderStringExternal":"EnvelopeDynamicHeaderExternal");if(ne<0)return!1;o[i.Type]=d?I.EnvelopeDynamicHeaderStringExternal:I.EnvelopeDynamicHeaderExternal;let B=k(o,ne+ge),Y=o[i.Start],ue=X(x,Y,ne);if(ue<0)return g(o,B);if(L(pe,Y+ue)<0)return g(o,B);return o[i.PayloadLen]=ue,o[i.End]=ge,h(B,ue+ge),kr(o,F),o.value=null,!0},Ue=(o,_,x)=>{let{header:d,payload:F}=x,U=typeof d==="string";if(F instanceof ArrayBuffer){let q=Ee(o,d,U);if(q===void 0)return!1;return tr(o,_,q,U,F)}let H=Be(F);if(H!==void 0){let q=Ee(o,d,U);if(q===void 0)return!1;return nr(o,_,q,U,H.payload,H.trustedReservedCodec)}return Ce({task:o,type:Te.Serializable,onPromise:f,detail:ya})},or=(o,_)=>{if(Rt(o))_.then((x)=>{nt(o),o.value=x,f(o,!1,x)},(x)=>{nt(o),o.value=x,f(o,!0,x)});return!1};return(o,_)=>{let x=o.value;if(Su(o))return!0;switch(typeof x){case"bigint":{let d=K(x),F=b.subarray(0,d);if(d<=C){let q=z(F,_);if(q!==-1)return o[i.Type]=I.StaticBigInt,o[i.PayloadLen]=q,S(d),o.value=null,!0}if(o[i.Type]=I.BigInt,!te(o,d,"BigInt"))return S(d),!1;let U=P(o,d),H=L(F,o[i.Start]);if(H<0)return S(d),g(o,U);return o[i.PayloadLen]=H,h(U,H),S(d),o.value=null,!0}case"function":return Ce({task:o,type:Te.Function,onPromise:f});case"object":m=-1;try{let d=x,F=Fn(d);if(F!==void 0)return me(o,_,F,!0);let U=ka(d);if(nu(d))return oe(o,_,d);if(Yt(d)&&Nn(d))return he(o,_,d);if(Yt(d)||U===Ea||U===null){let q;try{q=Kr(d)}catch(ne){let B=ne instanceof Error?ne.message:String(ne);return Ce({task:o,type:Te.Json,onPromise:f,detail:B})}if(q.length<=C){let ne=j(q,_);if(ne!==-1)return o[i.Type]=I.StaticJson,o[i.PayloadLen]=ne,o.value=null,!0}o[i.Type]=I.Json;let pe=s(o,q,"Json");if(pe<0)return!1;let ge=k(o,pe),Re=X(q,o[i.Start],pe);if(Re<0)return g(o,ge);return o[i.PayloadLen]=Re,h(ge,Re),o.value=null,!0}if(at(d)||jt(d))return me(o,_,d,!0);let H=d.constructor;if(tu(d))return se(o,_,d);switch(H){case ArrayBuffer:return Ae(o,_,d);case Int32Array:{let q=d;return w(o,_,new Uint8Array(q.buffer,q.byteOffset,q.byteLength),I.Int32Array,I.StaticInt32Array)}case Float64Array:return Se(o,_,d);case BigInt64Array:{let q=d;return w(o,_,new Uint8Array(q.buffer,q.byteOffset,q.byteLength),I.BigInt64Array,I.StaticBigInt64Array)}case BigUint64Array:{let q=d;return w(o,_,new Uint8Array(q.buffer,q.byteOffset,q.byteLength),I.BigUint64Array,I.StaticBigUint64Array)}case DataView:{let q=d;return w(o,_,new Uint8Array(q.buffer,q.byteOffset,q.byteLength),I.DataView,I.StaticDataView)}case Date:return $e(o,d);case mr:return Ue(o,_,d);case Promise:return or(o,d);case Error:return y(o,d)}if(d instanceof Date)return $e(o,d);if(d instanceof mr)return Ue(o,_,d);if(d instanceof Promise)return or(o,d);if(d instanceof Error)return y(o,d);if(ha(d))return me(o,_,d);return Ce({task:o,type:Te.Serializable,onPromise:f,detail:da})}catch(d){l();let F=d instanceof Error?d.message:String(d);return Ce({task:o,type:Te.Serializable,onPromise:f,detail:F})}case"string":{let d=x;if(d.length<=C){let q=j(d,_);if(q!==-1)return o[i.Type]=I.StaticString,o[i.PayloadLen]=q,o.value=null,!0}o[i.Type]=I.String;let F=s(o,d,"String");if(F<0)return!1;let U=P(o,F),H=X(d,o[i.Start],F);if(H<0)return g(o,U);return o[i.PayloadLen]=H,h(U,H),o.value=null,!0}case"symbol":{let d=iu(x);if(d===void 0)return Ce({task:o,type:Te.Symbol,onPromise:f});if(d.length*3<=C){let q=j(d,_);if(q!==-1)return o[i.Type]=I.StaticSymbol,o[i.PayloadLen]=q,o.value=null,!0}o[i.Type]=I.Symbol;let F=s(o,d,"Symbol");if(F<0)return!1;let U=P(o,F),H=X(d,o[i.Start],F);if(H<0)return g(o,U);return o[i.PayloadLen]=H,h(U,H),o.value=null,!0}}return!1}},ku=({lockSector:e,payload:r,sab:t,payloadConfig:n,headersBuffer:a,headerSlotStrideU32:u,textCompat:c,host:f,processBoundary:A=!1})=>{let N=r?.sab??t,v=cr({sab:N,options:r?.config??n}),{free:W}=wn({lockSector:e}),R=(s)=>W(Co(s)),{readUtf8:h,readBytesCopy:O,readBytesBufferCopy:L,readBufferCopy:T,readBytesArrayBufferCopy:D,readArrayBufferCopy:Q,read8BytesFloatCopy:X,read8BytesFloatView:C}=vn({sab:N,payloadConfig:v,textCompat:c?.payload}),{readUtf8:z,readBytesBufferCopy:ee,readBufferCopy:ie,readUint8ArrayCopy:M,readBytesArrayBufferCopy:Z,readArrayBufferCopy:G,read8BytesFloatCopy:j,readU32Words:V}=xa(a,u,c?.headers),fe=new Uint32Array(Vt),te=new Uint32Array(Ut),ae=new Uint32Array(Un);return(s,P,m)=>{let k=s[i.Type];if(A&&(k===I.SharedArrayBuffer||k===I.BufferReference))throw TypeError(Gr);switch(k){case Ge.BigInt:rr[0]=s[i.Start],rr[1]=s[i.End],s.value=Aa[0];return;case Ge.True:s.value=!0;return;case Ge.False:s.value=!1;return;case Ge.Float64:rr[0]=s[i.Start],rr[1]=s[i.End],s.value=$t[0];return;case Ge.NaN:s.value=NaN;return;case Ge.Null:s.value=null;return;case Ge.Undefined:s.value=void 0;return;case I.String:s.value=h(s[i.Start],s[i.Start]+s[i.PayloadLen]),R(s);return;case I.StaticString:s.value=z(0,s[i.PayloadLen],P);return;case I.Json:s.value=hr(h(s[i.Start],s[i.Start]+s[i.PayloadLen])),R(s);return;case I.StaticJson:s.value=hr(z(0,s[i.PayloadLen],P));return;case I.EnvelopeStaticHeader:case I.EnvelopeStaticHeaderString:{let l=z(0,s[i.PayloadLen],P),g=s[i.Type]===I.EnvelopeStaticHeaderString?l:hr(l),b=s[i.End],K=b>0?D(s[i.Start],s[i.Start]+b):new ArrayBuffer(0);s.value=new mr(g,K),R(s);return}case I.EnvelopeDynamicHeader:case I.EnvelopeDynamicHeaderString:{let l=s[i.Start],g=l+s[i.PayloadLen],b=s[i.End],K=h(l,g),S=s[i.Type]===I.EnvelopeDynamicHeaderString?K:hr(K),y=b>0?D(g,g+b):new ArrayBuffer(0);s.value=new mr(S,y),R(s);return}case I.EnvelopeStaticHeaderExternal:case I.EnvelopeStaticHeaderStringExternal:{let l=z(0,s[i.PayloadLen],P),g=s[i.Type]===I.EnvelopeStaticHeaderStringExternal?l:hr(l),b=s[i.Start],K=Gt(h(b,b+s[i.End]),A);s.value=new mr(g,K),R(s);return}case I.EnvelopeDynamicHeaderExternal:case I.EnvelopeDynamicHeaderStringExternal:{let l=s[i.Start],g=l+s[i.PayloadLen],b=h(l,g),K=s[i.Type]===I.EnvelopeDynamicHeaderStringExternal?b:hr(b),S=Gt(h(g,g+s[i.End]),A);s.value=new mr(K,S),R(s);return}case I.BigInt:s.value=Sa(L(s[i.Start],s[i.Start]+s[i.PayloadLen])),R(s);return;case I.StaticBigInt:s.value=Sa(ee(0,s[i.PayloadLen],P));return;case I.Symbol:s.value=Wn(h(s[i.Start],s[i.Start]+s[i.PayloadLen])),R(s);return;case I.StaticSymbol:s.value=Wn(z(0,s[i.PayloadLen],P));return;case I.Int32Array:{let l=L(s[i.Start],s[i.Start]+s[i.PayloadLen]);s.value=new Int32Array(l.buffer,l.byteOffset,l.byteLength>>>2),R(s);return}case I.StaticInt32Array:{let l=ee(0,s[i.PayloadLen],P);s.value=new Int32Array(l.buffer,l.byteOffset,l.byteLength>>>2);return}case I.Float64Array:{s.value=X(s[i.Start],s[i.Start]+s[i.PayloadLen]),R(s);return}case I.StaticFloat64Array:s.value=j(0,s[i.PayloadLen],P);return;case I.NumericArray:{s.value=Dn(C(s[i.Start],s[i.Start]+s[i.PayloadLen])),R(s);return}case I.StaticNumericArray:s.value=Dn(j(0,s[i.PayloadLen],P));return;case I.BigInt64Array:{let l=L(s[i.Start],s[i.Start]+s[i.PayloadLen]);s.value=new BigInt64Array(l.buffer,l.byteOffset,l.byteLength>>>3),R(s);return}case I.StaticBigInt64Array:{let l=ee(0,s[i.PayloadLen],P);s.value=new BigInt64Array(l.buffer,l.byteOffset,l.byteLength>>>3);return}case I.BigUint64Array:{let l=L(s[i.Start],s[i.Start]+s[i.PayloadLen]);s.value=new BigUint64Array(l.buffer,l.byteOffset,l.byteLength>>>3),R(s);return}case I.StaticBigUint64Array:{let l=ee(0,s[i.PayloadLen],P);s.value=new BigUint64Array(l.buffer,l.byteOffset,l.byteLength>>>3);return}case I.DataView:{let l=L(s[i.Start],s[i.Start]+s[i.PayloadLen]);s.value=new DataView(l.buffer,l.byteOffset,l.byteLength),R(s);return}case I.StaticDataView:{let l=ee(0,s[i.PayloadLen],P);s.value=new DataView(l.buffer,l.byteOffset,l.byteLength);return}case I.ExternalPayload:s.value=Gt(h(s[i.Start],s[i.Start]+s[i.PayloadLen]),A),R(s);return;case I.StaticExternalPayload:s.value=Gt(z(0,s[i.PayloadLen],P),A);return;case I.ProcessSharedBuffer:s.value=gu(V(fe,Vt,P));return;case I.SharedArrayBuffer:s.value=bu(V(te,s[i.PayloadLen]>>>2,P));return;case I.BufferReference:s.value=hu(V(ae,Un,P));return;case I.Date:rr[0]=s[i.Start],rr[1]=s[i.End],s.value=new Date($t[0]);return;case I.Error:s.value=Bu(h(s[i.Start],s[i.Start]+s[i.PayloadLen])),R(s);return;case I.Binary:{let l=L(s[i.Start],s[i.Start]+s[i.PayloadLen]);s.value=new Uint8Array(l.buffer,l.byteOffset,l.byteLength)}R(s);return;case I.StaticBinary:s.value=M(0,s[i.PayloadLen],P);return;case I.ArrayBuffer:s.value=Q(s[i.Start],s[i.Start]+s[i.PayloadLen]),R(s);return;case I.StaticArrayBuffer:s.value=G(0,s[i.PayloadLen],P);return;case I.Buffer:s.value=T(s[i.Start],s[i.Start]+s[i.PayloadLen]),R(s);return;case I.StaticBuffer:s.value=ie(0,s[i.PayloadLen],P);return}}};Lo(Tu,ku);var zr=Symbol.for("task");var Eu=/^[A-Za-z]:[\\/]/,Ru=/^\\\\[^\\/?]+\\[^\\/?]+/,zn=(e)=>encodeURI(e).replace(/\?/g,"%3F").replace(/#/g,"%23"),xu=()=>gt("node:url")?.pathToFileURL,Lu=(e)=>{let r=e.startsWith("/")?e:`/${e}`;return`file://${zn(r)}`},br=(e)=>{if(Eu.test(e)){let r=e.replace(/\\/g,"/");return`file:///${zn(r)}`}if(Ru.test(e)){let r=e.replace(/^\\\\+/,"").replace(/\\/g,"/");return`file://${zn(r)}`}try{return new URL(e).href}catch{let r=xu();return r?r(e).href:Lu(e)}},La=(e)=>{if(!Br||!e.startsWith("file://"))return e;let r=e.slice(7),t=r.startsWith("/")?r:`/${r}`;try{return decodeURIComponent(t)}catch{return t}};var it={Reject:0,Resolve:1},Pu=(e)=>{if(e==null)return;if(typeof e==="number"){let t=Math.floor(e);return t>=0?{ms:t,kind:it.Reject,value:Error("Task timeout")}:void 0}let r=Math.floor(e.time);if(!(r>=0))return;if("default"in e)return{ms:r,kind:it.Resolve,value:e.default};if(e.maybe===!0)return{ms:r,kind:it.Resolve,value:void 0};if("error"in e)return{ms:r,kind:it.Reject,value:e.error};return{ms:r,kind:it.Reject,value:Error("Task timeout")}},vu=(e,r)=>e.f,Pa=async({list:e,ids:r,names:t,at:n,permission:a})=>{let u=e.map((h)=>br(h)),c=new Set(t),A=(await Promise.all(u.map(async(h)=>{let O=await import(La(h)),L=Object.entries(O).filter(([D,Q])=>Q!=null&&typeof Q==="object"&&Q?.[zr]===!0).map(([D,Q])=>({...Q,name:D})),T=Object.entries(O).filter(([D,Q])=>c.has(D)&&typeof Q==="function").map(([D,Q])=>({f:Q,id:-1,importedFrom:h,at:-1,name:D,[zr]:!0}));return[...L,...T]}))).flat(),N=u.length===1&&n.length>0,v=N?new Set(n):null,W=N?u[0]:null;return A.filter((h)=>N?h.importedFrom===W&&v.has(h.at):r.includes(h.id)).sort((h,O)=>h.name.localeCompare(O.name)).map((h)=>({...h,run:vu(h,a),timeout:Pu(h.timeout)}))};var _u={thisIsAHint:0},Cu=(()=>{let e=globalThis,r=typeof e.gc==="function"?()=>e.gc():void 0;if(r){try{delete e.gc}catch{e.gc=void 0}if(e.global)try{delete e.global.gc}catch{e.global.gc=void 0}}return r??(()=>{})})();var{load:Iu,store:va}=Atomics,ut=typeof Atomics.wait==="function"?Atomics.wait:void 0,_a=performance.now.bind(performance),Ca=ut===void 0||typeof SharedArrayBuffer!=="function"?void 0:new Int32Array(new SharedArrayBuffer(Int32Array.BYTES_PER_ELEMENT)),Ia="pause"in Atomics?Atomics.pause:void 0,Qt=globalThis,Mu=Qt.process?.platform==="win32"&&typeof Qt.process?.versions?.node==="string"&&Qt.process?.versions?.bun===void 0&&Qt.Deno===void 0,Ou=(e)=>Mu?1:Number.isFinite(e)?e:1/0,Fu=(e)=>Number.isFinite(e)?Math.min(Math.max(e,0),1):1,Jt=({pauseInNanoseconds:e})=>{let r=e??250;if(!Ia||r<=0)return()=>{};return()=>Ia(r)},Yn=Jt({}),Ma=({at:e,opView:r,pauseInNanoseconds:t,rxStatus:n,txStatus:a,enqueueLock:u,write:c,nativeWaitU32:f,useSharedMemoryWait:A=!0,flushBeforeClaim:N=!1})=>{let v=t===void 0?Yn:Jt({pauseInNanoseconds:t}),W=()=>{if(!c)return!1;let h=c();if(typeof h==="number")return h>0;return h===!0},R=N?()=>{let h=W();return u()||h}:()=>{let h=u();return W()||h};return(h,O,L)=>{let T=_a()+O/1000;Cu();let D=0;while(!0){if(Iu(r,e)!==h||a[_u.thisIsAHint]===1)return;if(R())return;if(v(),(D++&63)===0&&_a()>=T)break}if(R())return;if(va(n,0,0),f!==void 0)f(r.buffer,r.byteOffset+e*Int32Array.BYTES_PER_ELEMENT,h>>>0,Ou(L));else if(A&&ut&&r.buffer instanceof SharedArrayBuffer)ut(r,e,h,L??1/0);else if(ut&&Ca)ut(Ca,0,0,Fu(L));va(n,0,1)}};var ct=(e)=>e instanceof Error?e.message:String(e),Xt=(e,r,t)=>{let n=t===void 0?"":`: ${ct(t)}`;throw Error(`KNT_ERROR_PROCESS_GUARD_INSTALL: ${e} ${r}${n}`)},Vn=()=>{let e=He();if(!e)return;if(e.__knittingTerminationGuard===!0)return;let r=(a)=>{throw Error(`KNT_ERROR_PROCESS_GUARD: ${a} is disabled in worker tasks`)},t=(a)=>{try{Object.defineProperty(e,a,{configurable:!1,writable:!1,value:(...u)=>r(`process.${a}`)})}catch(u){try{e[a]=(...c)=>r(`process.${a}`)}catch(c){Xt(`process.${a}`,"install failed",[ct(u),ct(c)].join("; "))}}if(typeof e[a]!=="function")Xt(`process.${a}`,"install verification failed")};t("exit"),t("kill"),t("abort"),t("reallyExit");let n=globalThis;if(n.Deno&&typeof n.Deno.exit==="function"){try{Object.defineProperty(n.Deno,"exit",{configurable:!1,writable:!1,value:(a)=>r("Deno.exit")})}catch(a){try{n.Deno.exit=(u)=>r("Deno.exit")}catch(u){Xt("Deno.exit","install failed",[ct(a),ct(u)].join("; "))}}if(typeof n.Deno.exit!=="function")Xt("Deno.exit","install verification failed")}e.__knittingTerminationGuard=!0},qn=()=>{let e=He();if(!e||typeof e.on!=="function")return;if(e.__knittingUnhandledRejectionSilencer===!0)return;e.__knittingUnhandledRejectionSilencer=!0,e.on("unhandledRejection",()=>{})};var Qn=()=>{let e=globalThis;if(e.__knittingPerformanceNowGuardInstalled===!0)return;e.__knittingPerformanceNowGuardInstalled=!0;let r=globalThis.performance;if(!r||typeof r.now!=="function")return;try{r.now()}catch{}};var Jn=(e)=>{let r=e;try{r.sab=void 0,r.lock=void 0,r.returnLock=void 0,r.permission=void 0}catch{}try{delete r.sab}catch{}try{delete r.lock}catch{}try{delete r.returnLock}catch{}try{delete r.permission}catch{}try{Object.freeze(r)}catch{}};var Oa=(e)=>Ze(e?.headers)&&Ze(e?.lockSector)&&Ze(e?.payload)&&Ze(e?.payloadSector)&&(e?.textCompat===void 0||Bt(e.textCompat)),Xn=({sab:e,lock:r,returnLock:t})=>{if(!Ze(e))throw Error("worker missing transport SAB");if(!Oa(r))throw Error("worker missing lock SABs");if(!Oa(t))throw Error("worker missing return lock SABs")},Zn=({list:e,ids:r,names:t,listOfFunctions:n})=>{if(n.length>0&&(t===void 0||n.length===t.length))return;if(console.log(e),console.log(r),t!==void 0)console.log(t);throw console.log(n),Error("No imports were found.")};var ro=32,eo=ro-1,Fa=Symbol.for("knitting.abortSignal.poolExhausted");var ft=({sab:e,maxSignals:r})=>{let t=Ke(e),n=new Uint32Array(t.sab,t.byteOffset,t.byteLength/Uint32Array.BYTES_PER_ELEMENT),a=n.length,u=new Uint32Array(a),c=a*ro,f=(()=>{if(!Number.isFinite(r))return c;let T=Math.floor(r);if(T<=0)return c;return Math.min(T,c)})(),A=f+1,N=0,v=0;return{max:f,closeNow:A,getSignal:()=>{if(N>=f)return A;for(let T=0;T<a;T++){let D=(v+T)%a,Q=D<<5,X=f-Q;if(X<=0)continue;let C=X>=ro?4294967295:(1<<X)-1>>>0,z=(~u[D]&C)>>>0;if(z===0)continue;let ee=(z&-z)>>>0;u[D]=(u[D]|ee)>>>0,N=N+1|0,v=(D+1)%a,Atomics.and(n,D,~ee);let ie=31-Math.clz32(ee);return(D<<5)+ie}return A},setSignal:(T)=>{if(T===A)return 0;if(!Number.isInteger(T))return-1;if(T<0||T>=f)return-1;let D=T>>>5,Q=1<<(T&eo);return Atomics.or(n,D,Q),1},abortAll:()=>{for(let T=0;T<a;T++)Atomics.store(n,T,u[T]);return N},hasAborted:(T)=>{if(T===A)return!0;if(!Number.isInteger(T))return!1;if(T<0||T>=f)return!1;let D=T>>>5,Q=1<<(T&eo);return(Atomics.load(n,D)&Q)!==0},resetSignal:(T)=>{if(T===A)return!1;if(!Number.isInteger(T))return!1;if(T<0||T>=f)return!1;let D=T>>>5,Q=1<<(T&eo);if((u[D]&Q)===0)return!1;if(u[D]=(u[D]&~Q)>>>0,N>0)N=N-1|0;return v=D,Atomics.and(n,D,~Q),!0},inUseCount:()=>N}};class to{#e=!1;constructor(e,r,t){let n=(a)=>(...u)=>{if(this.#e)return;this.#e=!0,r(),a(...u)};e.resolve=n(e.resolve),e.reject=n(e.reject),e.promise.reject=(a)=>{if(this.#e)return;if(a===void 0&&t!==void 0){t();return}e.reject(a)}}}var Nu="default",Du=(e)=>{if(!e||typeof e!=="object")return!1;let r=e;return typeof r.href==="string"&&r.href.length>0&&(r.name===void 0||typeof r.name==="string"&&r.name.length>0)},Wu=(e)=>{try{return Lr.fromMetadata(e),!0}catch{return!1}},no=(e,r=new WeakMap)=>{if(Wu(e))return Lr.fromMetadata(e);if(e===null||typeof e!=="object")return e;let t=r.get(e);if(t!==void 0)return t;if(Array.isArray(e)){let u=[];r.set(e,u);for(let c of e)u.push(no(c,r));return u}let n=Object.getPrototypeOf(e);if(n!==Object.prototype&&n!==null)return e;let a={};r.set(e,a);for(let[u,c]of Object.entries(e))a[u]=no(c,r);return a},Na=async({bootstrap:e,thread:r,totalNumberOfThread:t})=>{if(e===void 0)return;if(!Du(e))throw TypeError("worker.bootstrap must include a non-empty href");let n=await import(br(e.href)),a=e.name??Nu,u=n[a];if(typeof u!=="function"){let f=Object.keys(n).join(", ");throw TypeError(`worker.bootstrap expected export "${a}" from "${e.href}" to be a function. Available exports: ${f||"(none)"}`)}let c=Object.freeze({thread:r,totalNumberOfThread:t,runtime:Me});await u(no(e.data),c)};var Da=()=>{return},Wa=()=>{};var Uu=(e)=>{let r=globalThis.Deno?.env;if(typeof r?.get==="function")try{return r.get(e)}catch{}try{return He()?.env?.[e]}catch{return}},Hu=Uu("KNITTING_DEBUG"),Ua=new Set((Hu??"").split(",").map((e)=>e.trim()).filter((e)=>e.length>0)),Ha=Ua.size>0,Zt=(e)=>{let r=new Set(Ua);if(e===!0)r.add("*");else if(e!==void 0&&e!==!1){for(let[t,n]of Object.entries(e))if(n===!0)r.add(t)}return r};var Gu="__knittingWorkerFatal",en=(e)=>{let r=String(e?.message??e),t={[Gu]:r},n=!1;try{et?.postMessage?.(t),n=et!==void 0}catch{}if(!n)try{globalThis.postMessage(t),n=!0}catch{}if(!n){try{console.error(`Worker startup failed: ${r}`)}catch{}if(wr)try{He()?.exit?.(1)}catch{}}},$u=(e)=>{let r=(n)=>{let a=zo(n);if(a!==void 0)e(a)};if(et!==void 0){To(et,r);return}globalThis.addEventListener?.("message",(n)=>{r(n?.data)})},rn=async(e)=>{Vn(),qn(),Qn();let{debug:r,sab:t,thread:n,startAt:a,workerOptions:u,lock:c,returnLock:f,abortSignalSAB:A,abortSignalMax:N,payloadConfig:v,bufferReferenceReturn:W,permission:R,notifyOnHostPublish:h,totalNumberOfThread:O,list:L,ids:T,names:D,at:Q,steal:X}=e;Jn(e),Xn({sab:t,lock:c,returnLock:f});let C=Zt(r),z=C.size>0?await Promise.resolve().then(() => ($a(),Ga)).then((ne)=>ne.initDebug({name:`w${n}`,runtime:Me,namespaces:C})):void 0,ee={thisIsAHint:0},ie=Ft({sabObject:{sharedSab:t},isMain:!1,thread:n,startTime:a}),M=Er({headers:c.headers,headerSlotStrideU32:c.headerSlotStrideU32,LockBoundSector:c.lockSector,payload:c.payload,payloadSector:c.payloadSector,payloadConfig:v,textCompat:c.textCompat,processBoundary:wr,consumers:X?.consumers,consumerId:X?.consumerId,regionLanes:X?.regionLanes}),Z=Er({headers:f.headers,headerSlotStrideU32:f.headerSlotStrideU32,LockBoundSector:f.lockSector,payload:f.payload,payloadSector:f.payloadSector,payloadConfig:v,textCompat:f.textCompat,processBoundary:wr,notifyOnHostPublish:h}),G=u?.timers,j=G?.spinMicroseconds??(O<=1?50:0),V=z!==void 0?Number.POSITIVE_INFINITY:G?.parkMs??1,fe=(()=>{let ne=typeof G?.pauseNanoseconds==="number"?Jt({pauseInNanoseconds:G.pauseNanoseconds}):Yn;return()=>ne()})(),{opView:te,rxStatus:ae,txStatus:s,stopView:P}=ie,m=Atomics.store,k=Atomics.load,l=Da();await Na({bootstrap:u?.bootstrap,thread:n,totalNumberOfThread:O}),z?.envPhase("bootstrap");let g=await Pa({list:L,isWorker:!0,ids:T,names:D,at:Q,permission:R});z?.envPhase("tasks"),z?.log("imports",`${g.length} task(s) from ${L.map((ne)=>ne.split(/[\\/]/).pop()||ne).join(", ")}`),Zn({list:L,ids:T,names:D,listOfFunctions:g});let b=A?ft({sab:A,maxSignals:N}):void 0,{enqueueLock:K,serviceBatchImmediate:S,hasCompleted:y,writeBatch:w,hasPending:oe,getAwaiting:se,drainReturnReleases:Se,releaseReturnedBufferReference:Le}=qo({listOfFunctions:g,workerOptions:u,lock:M,returnLock:Z,borrowReturnedBufferReferences:W==="borrow",hasAborted:b?.hasAborted,stealing:X!==void 0});$u(Le),m(ae,0,1);let he=64,Ae=Ma({opView:te,at:0,rxStatus:ae,txStatus:s,pauseInNanoseconds:G?.pauseNanoseconds,enqueueLock:K,write:()=>y()?w(he):0,flushBeforeClaim:X!==void 0,nativeWaitU32:l,useSharedMemoryWait:!(wr&&Me==="node"&&l===void 0)}),ce=Or(),ye=ce.port1,Oe=ce.port2,Ne=(ne)=>Oe.postMessage(ne),De=!1,me=0,$e=0,Ee=10,Be=k(te,0),tr=()=>{if(De)return;De=!0,Ne(null)},nr=(ne)=>{if(De)return;if(De=!0,ne<=0&&typeof Xr==="function"){Xr(ge);return}if(ne<=0){Ne(null);return}if(typeof setTimeout==="function"){setTimeout(ge,ne);return}Ne(null)},Ue=z?.enabled("signals")===!0,or=y,We=oe,o=se,_=Se,x=fe,d=Ue?()=>{let ne=K();if(ne)z.log("signals","work from=host");return ne}:K,F=Ue?(ne)=>{let B=w(ne);if(B>0)z.log("signals",`result count=${B}`);return B}:w,U=Ue?()=>{let ne=S();if(ne>0)z.log("signals",`run count=${ne}`);return ne}:S,H=Ue?(ne,B,Y)=>{z.log("signals",`idle token=${ne}`),Ae(ne,B,Y)}:Ae,q=X!==void 0,pe=()=>{m(P,0,Cr.acknowledged),m(ae,0,0);try{ye.close?.(),Oe.close?.()}catch{}},ge=()=>{De=!1;let ne=!0,B=0;while(!0){if(P[0]!==Cr.running)return pe();if(q){if(ne=!1,or()){if(F(he)>0)ne=!0}ne=d()||ne}else if(ne=d(),or()){if(F(he)>0)ne=!0}if(_(),We()){if(U()>0)ne=!0}if((B=o())>0){if(B!==$e)me=0;$e=B,me++;let Y=Math.min(Ee,Math.max(0,me-1));nr(Y);return}if(me=$e=0,!ne){if(s[ee.thisIsAHint]===1){x();continue}H(Be,j,V),Be=k(te,0)}}},Re=ye;if(typeof Re.on==="function")Re.on("message",ge);else Re.onmessage=ge;Re.start?.(),Oe.start?.(),z?.log("lifecycle",`ready: ${g.length} task(s) on thread ${n}/${O}, entering dispatch loop`),tr()},zu=()=>{let e=globalThis.WorkerGlobalScope;if(typeof e==="function")try{if(globalThis instanceof e)return!0}catch{}if(Br&&typeof globalThis.self<"u")return!0;return!1},za=(e)=>{if(!e||typeof e!=="object")return!1;let r=e;return Ze(r.headers)&&Ze(r.lockSector)&&Ze(r.payload)&&Ze(r.payloadSector)&&(r.textCompat===void 0||Bt(r.textCompat))},lt=(e)=>{if(!e||typeof e!=="object")return!1;let r=e;return Ze(r.sab)&&Array.isArray(r.list)&&Array.isArray(r.ids)&&Array.isArray(r.names)&&Array.isArray(r.at)&&typeof r.thread==="number"&&typeof r.totalNumberOfThread==="number"&&typeof r.startAt==="number"&&(r.abortSignalSAB===void 0||Ze(r.abortSignalSAB))&&za(r.lock)&&za(r.returnLock)},Yu=()=>{let e=globalThis,r=(t)=>{if(!lt(t))return;rn(t).catch(en)};if(typeof e.addEventListener==="function"&&typeof e.removeEventListener==="function"){let t=(n)=>{let a=n?.data;if(!lt(a))return;try{e.removeEventListener?.("message",t)}catch{}r(a)};e.addEventListener("message",t);return}e.onmessage=(t)=>{let n=t?.data;if(!lt(n))return;e.onmessage=null,r(n)}};if(Tr===!1&&lt(Zr))rn(Zr).catch(en);else if(wr)Wa({isWorkerBootPayload:lt,reportWorkerStartupFatal:en,startWorker:(e)=>{rn(e).catch(en)}});else if(zu())Yu();var Qa=((e)=>()=>e++)(0),Ja=(e,r)=>{let t=2166136261;for(let n=0;n<e.length;n++)t=Math.imul(t^e.charCodeAt(n),16777619);return Math.imul(t^r,16777619)>>>0},Vu=["/src/common/task-source.ts","/src/common/task-source.js","\\src\\common\\task-source.ts","\\src\\common\\task-source.js","/src/api.ts","/src/api.js","\\src\\api.ts","\\src\\api.js"],Ya=new Set(["collectStackFrames","resolveCallerHref","getCallerFilePath","buildTaskDefinition","buildTaskDefinitionFromCaller","task","importTask"]),qu=(e)=>e!==void 0,Qu=(e)=>Vu.some((r)=>e.includes(r)),Xa=(e)=>e.startsWith("node:")||e.startsWith("native:")||e.startsWith("bun:")||e.startsWith("internal/"),Ju=(e,r)=>e!==void 0&&Ya.has(e)||r!==void 0&&Ya.has(r),Xu=()=>{let e=Error,r=e.prepareStackTrace;try{e.prepareStackTrace=(a,u)=>u;let t=Error().stack;if(!Array.isArray(t))return[];return t.map((a)=>{try{let u=a?.getFileName?.();if(typeof u!=="string"||u.length===0)return;return{file:u,functionName:a?.getFunctionName?.()??void 0,methodName:a?.getMethodName?.()??void 0}}catch{return}}).filter(qu)}finally{e.prepareStackTrace=r}},Va=(e)=>Xa(e.file)||Qu(e.file)||Ju(e.functionName,e.methodName),ao,Za=(e)=>{ao=typeof e==="string"&&e.length>0?br(e):void 0};var es=(e)=>{if(ao!==void 0)return ao;let r=Xu(),t=r[e],n=(t&&!Va(t)?t.file:void 0)??r.find((a)=>!Va(a))?.file??r.find((a)=>!Xa(a.file))?.file;if(!n)throw Error("Unable to determine caller file. This runtime exposes no stack traces (e.g. Andromeda); call setModuleUrl(import.meta.url) at the top of the module that defines your tasks before creating a pool.");return br(n)},qa=new Map,rs=(e=3)=>es(e),so=(e=3)=>{let r=es(e),t=qa.get(r)??0;return qa.set(r,t+1),[r,t]};var ts=(e,r)=>{let t=e;return t.reject=r,t},tn=()=>{let e=Promise.withResolvers;if(typeof e==="function"){let a=e.call(Promise);return{promise:ts(a.promise,a.reject),resolve:a.resolve,reject:a.reject}}let r,t;return{promise:ts(new Promise((a,u)=>{r=a,t=u}),t),resolve:r,reject:t}};var Zu=31,ec=134217727,rc=5,tc=65535,nc=65535,oc=16,ac=1;var sc=performance.now.bind(performance);function io({max:e,lock:r,returnLock:t,extraReturnLocks:n,releaseBufferReferenceReturn:a,abortSignals:u,now:c}){let f=(y)=>{throw"UNREACHABLE FROM PLACE HOLDER (main)"},A=(y)=>{let w=Uo();return w[i.ID]=y,w[i.FunctionID]=0,w.value=null,w.resolve=f,w.reject=f,w},N=e??10,v=Array.from({length:N},(y,w)=>A(w)),W=Array.from({length:N},(y,w)=>w),R=(y)=>W.push(y),h=()=>W.pop(),O=(y)=>v.push(y),{publish:L,flushPending:T,hasPendingFrames:D,getPendingFrameCount:Q,getPendingPromiseCount:X,resetPendingState:C}=r,z=0,ee=u?.resetSignal,ie=c??sc,M=(y)=>{z=z-1|0,hn(y),Dr(y),y.value=null,y.resolve=f,y.reject=f,R(y[i.ID])},Z=[t,...n??[]].map((y)=>y.resolveHost({queue:v,activeRejectPlaceholder:f,onResolved:M})),G=[t,...n??[]].map((y)=>typeof y.waitForHostChange==="function"?y.waitForHostChange:()=>{return}),j=[t,...n??[]].map((y)=>typeof y.setHostWaiterArmed==="function"?y.setHostWaiterArmed:(w)=>{}),V=Array(Z.length);if(a!==void 0)V[0]=a;let fe=(y)=>{let w=Z[y],oe=V[y];return oe===void 0?w():An(oe,w)},te=Z.length===1?a===void 0?Z[0]:()=>An(a,Z[0]):()=>{let y=0;for(let w=0;w<Z.length;w++)y=y+fe(w)|0;return y},ae=new Uint8Array(G.length),s,P=0,m=(y)=>{for(let w of j)w(y)},k=(y,w)=>{s=y,m(!0);let oe=!0;for(let se=0;se<G.length;se++){if(ae[se]!==0)continue;let Se;try{Se=G[se](w)}catch{Se=void 0}if(Se===void 0){oe=!1;break}ae[se]=1;let Le=P,he=()=>{if(ae[se]===0)return;if(ae[se]=0,j[se](!1),Le!==P)return;s?.()};if(!Se.async)he();else Promise.resolve(Se.value).then(he,he)}if(!oe)s=void 0,m(!1),P=P+1|0;return oe},l=()=>(z-X()|0)>0,g=()=>Q()===0&&!l(),b=(y)=>{for(let w=0;w<v.length;w++){let oe=v[w];if(oe.reject!==f){try{oe.reject(y)}catch{}Dr(oe),oe.resolve=f,oe.reject=f,v[w]=A(w)}}C(),z=0},K=()=>T(),S=(y)=>L(y);return{rejectAll:b,hasPendingFrames:D,txIdle:g,completeFrame:te,waitForCompletion:k,setCompletionWaiterArmed:m,setReturnHooks:(y,w)=>{if(!Number.isInteger(y)||y<0||y>=V.length)throw RangeError(`return lane ${y} out of range`);V[y]=w},enqueue:(y,w,oe)=>{let se=w!==void 0,Se=y&tc,Le=oe!==void 0&&u!==void 0;return(he)=>{if(z===v.length){let Oe=z+32,Ne=v.length;while(Oe>Ne)O(A(Ne)),R(Ne),Ne++}let Ae=h(),ce=v[Ae],ye=tn();if(ce[i.FunctionID]=Se,Le){let Oe=u.getSignal();if(Oe===u.closeNow)return Promise.reject(Fa);new to(ye,()=>ee(Oe),()=>{u.setSignal(Oe)});let Ne=(Oe+ac&nc)>>>0;ce[i.FunctionID]=(Ne<<oc|Se)>>>0}if(ce.value=he,ce[i.ID]=Ae,ce.resolve=ye.resolve,ce.reject=ye.reject,se)ce[i.slotBuffer]=(ce[i.slotBuffer]&Zu|(ie()>>>0&ec)<<rc>>>0)>>>0;return L(ce),z=z+1|0,ye.promise}},flushToWorker:K,enqueueKnown:S,settlePromisePayload:(y,w,oe)=>{if(y.reject===f)return!1;if(w){try{y.reject(oe)}catch{}return hn(y),Dr(y),y.value=null,y.resolve=f,y.reject=f,z=z-1|0,R(y[i.ID]),!1}return y.value=oe,S(y)}}}var ns=()=>{return},os=()=>{return},as=()=>{},Pr=()=>{throw Error("process workers are unavailable in the browser build")},ss=Pr,is=Pr,nn=Pr,us=Pr,cs=Pr,on=Pr,fs=Pr,ls=Pr;var ds=(e)=>e.split("=",1)[0],ys=new Set(["--permission","--experimental-permission","--allow-fs-read","--allow-fs-write","--allow-worker","--allow-child-process","--allow-net","--allow-addons","--allow-ffi","--allow-wasi"]),ic=new Set(["--experimental-ffi","--experimental-transform-types","--expose-gc","--no-warnings",...ys]),uc=(e)=>ic.has(ds(e)),cc=(e)=>ys.has(ds(e)),co=(e)=>{if(!e||e.length===0)return;let r=e.filter(uc);if(r.length===0)return;let t=new Set,n=[];for(let a of r){if(t.has(a))continue;t.add(a),n.push(a)}return n},ps=(e)=>{let r=co(e);if(!r||r.length===0)return;let t=r.filter((n)=>!cc(n));return t.length>0?t:void 0},fc=(e)=>{if(e===null||typeof e!=="object")return!1;let r=Object.getPrototypeOf(e);return r===Object.prototype||r===null},uo=(e,r=new WeakMap)=>{if(e instanceof Lr)return e.toMetadata();if(e===null||typeof e!=="object")return e;let t=r.get(e);if(t!==void 0)return t;if(Array.isArray(e)){let a=[];r.set(e,a);for(let u of e)a.push(uo(u,r));return a}if(!fc(e))return e;let n={};r.set(e,n);for(let[a,u]of Object.entries(e))n[a]=uo(u,r);return n},ms=(e)=>{let r=e.bootstrap;if(r===void 0||r.data===void 0)return e;return{...e,bootstrap:{...r,data:uo(r.data)}}},lc=2000,gs=(e,r=!1)=>{try{if(!r)e.unref?.();let t=Promise.resolve(e.terminate()).then(()=>{},()=>{});if(!r)return t;return new Promise((n)=>{let a=setTimeout(()=>{e.unref?.(),n()},lc);t.then(()=>{clearTimeout(a),n()})})}catch{return Promise.resolve()}};var hs=Me==="deno"||Me==="node"?Xr:void 0,bs=128,dc=1,an=({signalBox:{opView:e,txStatus:r,rxStatus:t},queue:{completeFrame:n,hasPendingFrames:a,flushToWorker:u,txIdle:c,waitForCompletion:f,setCompletionWaiterArmed:A},channelHandler:N,dispatcherOptions:v,notifySignal:W,crossProcess:R})=>{let{load:h,store:O,notify:L}=Atomics,T=e.buffer instanceof SharedArrayBuffer,D=W??(()=>{if(T)L(e,0,1)}),Q=()=>N.notify(),X=R!==!0&&(v?.doorbell??!0)&&(Me==="bun"||Me==="node")&&typeof Atomics.waitAsync==="function",C=X,z=!1,ee=0,ie=1000,M=0,Z=v?.stallFreeLoops,G=Z!==void 0?Math.max(0,Z|0):X?dc:bs,j=Math.max(0,(v?.maxBackoffMs??10)|0),V,fe=!1,te=()=>{if(!z)return;ee=ee+1|0,z=!1,A(!1)},ae=()=>{if(!C||z===!0){if(!C)Q();return}let m=ee+1|0;ee=m,z=!0;let k=!1,l=()=>{if(!z||ee!==m||k)return;k=!0,z=!1,ee=ee+1|0,A(!1),Q()},g=!1;try{g=f(l,ie)}catch{g=!1}if(!g){if(C=!1,Z===void 0)G=bs;z=!1,ee=ee+1|0,A(!1),Q()}},s=()=>{if(fe){s.rerun=!0;return}if(te(),c()){s.isRunning=!1;return}if(fe=!0,V!==void 0)clearTimeout(V),V=void 0;do{if(s.rerun=!1,r[0]=1,h(t,0)===0)O(e,0,1),D();let m=!1,k=!0;while(k){if(k=!1,n()>0)k=!0,m=!0;while(a()){if(!u())break;k=!0}}if(r[0]=0,!c()){if(m||a())M=0;else M=M+1|0;fe=!1,P();return}M=0}while(s.rerun);s.isRunning=!1,fe=!1};s.isRunning=!1,s.rerun=!1;let P=()=>{if(M<=G){Q();return}if(C){s.isRunning=!1,ae();return}if(V!==void 0)return;let m=M-G-1|0;if(m<0)m=0;else if(m>j)m=j;s.isRunning=!1,V=setTimeout(()=>{if(V=void 0,!s.isRunning)s.isRunning=!0,s()},m)};return{check:s}};class Yr{channel;port1;port2;#e;#r;constructor(e="auto"){if(e==="auto"&&hs!==void 0){let n=hs,a=()=>{this.#e?.()};this.#r=()=>{n(a)};return}let r=Or(),t=r.port2;this.channel=r,this.port1=r.port1,this.port2=t,this.#r=()=>{t.postMessage(null)}}notify(){this.#r()}open(e){this.#e=e;let r=this.port1;if(r===void 0)return;if(typeof r.on==="function")r.on("message",e);else r.onmessage=e;this.port1?.start?.(),this.port2?.start?.()}close(){if(this.#e=void 0,this.port1===void 0||this.port2===void 0)return;this.port1.onmessage=null,this.port2.onmessage=null,this.port1.close?.(),this.port2.close?.()}}var Ss=()=>{throw Error("compiled workers are unavailable in the browser build")};var As="__knittingWorkerFatal",yc=(e)=>!!e&&typeof e==="object"&&typeof e[As]==="string",pc=50,mc=Me==="deno",gc=1,hc=50,bc=258,Bs=(e)=>{if(!Number.isFinite(e))return;let r=Math.floor(e);return r>0?r:void 0},ws=(e)=>Bs(e)??bc,fo=(e)=>Math.max(1,Math.ceil(e/32))*Uint32Array.BYTES_PER_ELEMENT,Sc=(e,r)=>{let t=e?.timers?.parkMs??gc,n=e?.timers?.spinMicroseconds??(r<=1?hc:0);if(e===void 0)return{timers:{parkMs:t,spinMicroseconds:n}};return{...e,timers:{...e.timers,parkMs:t,spinMicroseconds:n}}},Ts=(e)=>({...e,mode:"fixed",payloadInitialBytes:e.payloadMaxByteLength}),Ac=(e)=>{for(let r=we.slots;r>=1;r>>=1)if(we.slots/r>=e+1)return r;throw RangeError(`${e} stealing workers need more than ${we.slots} lanes`)},ks=we.slots-1,Es=({threads:e,payload:r,regionLanes:t,abortSignalCapacity:n,usesAbortSignal:a,processWorker:u})=>{let c=cr({options:r}),f=u===void 0?c:Ts(c),A=()=>f.mode==="growable"?je(f.payloadInitialBytes,f.payloadMaxByteLength):je(f.payloadInitialBytes),N=()=>xn({signalBytes:0,abortBytes:0,lockSectorBytes:Ur,headerSlotStrideU32:fr,slotCount:we.slots,headerLayout:"split"}),v=(ee,ie)=>({...ee,payload:ie,textCompat:Fr({headers:ee.headers,payload:ie})}),W=Ac(e),R=t===void 0?W:Math.min(Math.max(1,t|0),W),h=ws(n),O=u===void 0?void 0:is({threads:e,signalBytes:u.signalBytes,abortBytes:a===!0?fo(h):0,abortSignalMax:a===!0?h:void 0,payloadBytes:f.payloadMaxByteLength,sharedMemory:u.sharedMemory}),L=O===void 0?(()=>{let ee=N();return v(ee.lock,A())})():v(O.workers[0].controlLayout.lock,O.workers[0].lockPayload),T=Er({headers:L.headers,headerSlotStrideU32:L.headerSlotStrideU32,LockBoundSector:L.lockSector,payload:L.payload,payloadSector:L.payloadSector,payloadConfig:f,textCompat:L.textCompat,consumers:e,regionLanes:R,processBoundary:O!==void 0}),D=[],Q=[];for(let ee=0;ee<e;ee++){let ie=O===void 0?v(N().returnLock,A()):v(O.workers[ee].controlLayout.returnLock,O.workers[ee].returnPayload);D.push(ie),Q.push(Er({headers:ie.headers,headerSlotStrideU32:ie.headerSlotStrideU32,LockBoundSector:ie.lockSector,payload:ie.payload,payloadSector:ie.payloadSector,payloadConfig:f,textCompat:ie.textCompat,processBoundary:O!==void 0}))}let X=a===!0?O?.workers[0]?.controlLayout.abortSignals??je(fo(h)):void 0,C=X===void 0?void 0:ft({sab:X,maxSignals:h}),z=io({lock:T,returnLock:Q[0],extraReturnLocks:Q.slice(1),abortSignals:C});return{submitBuffers:L,returnBuffers:D,hostSubmitLock:T,hostReturnLocks:Q,sharedQueue:z,regionLanes:R,processMemory:O,abortSignalSAB:X,abortSignalMax:O?.abortSignalMax??(X===void 0?void 0:h)}},Rs=({list:e,ids:r,names:t,sab:n,thread:a,debug:u,hostDebug:c,totalNumberOfThread:f,workerCount:A,source:N,at:v,workerOptions:W,workerExecArgv:R,permission:h,host:O,payload:L,bufferReferenceReturn:T,abortSignalCapacity:D,usesAbortSignal:Q,sharedChannelHandler:X,stealPool:C})=>{if(W?.runtime==="compiled")return Ss({list:e,names:t,workerOptions:W,hostDebug:c,abortSignalCapacity:D,usesAbortSignal:Q});let z=new URL(import.meta.url),ee=wo,ie=ms(Sc(W,A??f)),M=ie.runtime==="process",Z=M?on(ie):void 0,G=M?us(ie):void 0,j=M?nn(ie):void 0;if(!M&&typeof ee!=="function")throw Error("Worker is not available in this runtime");if(un&&typeof SharedArrayBuffer!=="function")throw Error("SharedArrayBuffer is unavailable: serve the page cross-origin isolated (Cross-Origin-Opener-Policy: same-origin, Cross-Origin-Embedder-Policy: require-corp).");let V=ee,fe=Bs,te=cr({options:L}),ae=M?Ts(te):te,s=ws(D),P=fe(n?.size),m=n?.sharedSab;if(M&&m!=null)throw Error("process worker runtime cannot use an external signal buffer");let k=Math.max(st,P??st),l=C===void 0&&Q===!0?fo(s):0,g=C?.processMemory,b=!M?void 0:g===void 0?ss({signalBytes:k,abortBytes:l,payloadBytes:ae.payloadMaxByteLength,thread:a,sharedMemory:j}):g.workers[a]??(()=>{throw RangeError(`stealing process pool has no shared-memory slice for worker ${a}`)})(),K=b===void 0?ns(u):void 0,S=K?.createBuffer??_r,y=K?.createBuffer,w=()=>y?y(ae.payloadMaxByteLength):ae.mode==="growable"?je(ae.payloadInitialBytes,ae.payloadMaxByteLength):je(ae.payloadInitialBytes),oe=()=>xn({signalBytes:k,abortBytes:l,lockSectorBytes:Ur,headerSlotStrideU32:fr,slotCount:we.slots,headerLayout:"split",createBuffer:S}),se=b?.controlLayout??oe(),Se=b?.lockPayload??w(),Le=C?.submitBuffers??{...se.lock,payload:Se,textCompat:Fr({headers:se.lock.headers,payload:Se})},he=b?.returnPayload??w(),Ae=C?.returnBuffers??{...se.returnLock,payload:he,textCompat:Fr({headers:se.returnLock.headers,payload:he})},ce=C?.hostSubmitLock??Er({headers:Le.headers,headerSlotStrideU32:Le.headerSlotStrideU32,LockBoundSector:Le.lockSector,payload:Le.payload,payloadSector:Le.payloadSector,payloadConfig:ae,textCompat:Le.textCompat,processBoundary:M}),ye=C?.hostReturnLock??Er({headers:Ae.headers,headerSlotStrideU32:Ae.headerSlotStrideU32,LockBoundSector:Ae.lockSector,payload:Ae.payload,payloadSector:Ae.payloadSector,payloadConfig:ae,textCompat:Ae.textCompat,processBoundary:M}),Oe=C?.abortSignalSAB??(Q===!0?se.abortSignals:void 0),Ne=Oe&&C===void 0?ft({sab:Oe,maxSignals:s}):void 0,De=Ft({sabObject:m==null?{size:P,sharedSab:se.signals}:n,isMain:!0,thread:a}),me=De,$e=os({processRuntime:Z,signal:me.opView}),Ee=T==="borrow"&&typeof WeakRef==="function"?new Map:void 0,Be=(p)=>{Ee?.delete(p),ue?.postMessage?.(Yo(p))},tr=(p)=>{if(Ee===void 0)return;for(let[E,J]of Ee)try{let re=J.ref.deref();if(re!==void 0){re.revokeBorrow(p);continue}let xe=J.aliasBuffer?.deref();if(xe!==void 0&&Vo(J.runtime,xe)&&p)Be(E)}catch{}Ee.clear()},nr=T==="borrow"?{release:Be,track:(p,E,J)=>{if(Ee===void 0)return;let re=Ee.get(E);if(re!==void 0){if(J!==void 0)re.aliasBuffer=new WeakRef(J);return}Ee.set(E,{ref:new WeakRef(p),aliasBuffer:J===void 0?void 0:new WeakRef(J),runtime:p.runtime})}}:void 0,Ue=C?.sharedQueue??io({lock:ce,returnLock:ye,abortSignals:Ne,releaseBufferReferenceReturn:nr});if(C!==void 0)C.sharedQueue.setReturnHooks(C.consumerId,nr);let{enqueue:or,rejectAll:We,txIdle:o}=Ue,_=me.opView,x=Atomics.add,d=Atomics.load,F=Atomics.notify,U=_.buffer instanceof SharedArrayBuffer,H=$e??(U?()=>F(_,0,1):void 0),q=()=>{if(d(me.rxStatus,0)===0)x(_,0,1),H?.()},pe=()=>{},ge=()=>pe(),Re,ne=X===void 0&&C===void 0,B=X??new Yr,{check:Y}=C!==void 0?{check:void 0}:an({signalBox:me,queue:Ue,channelHandler:B,dispatcherOptions:O,notifySignal:$e,crossProcess:M});if(ne&&Y!==void 0)B.open(Y),Re=B,pe=()=>{if(Y.isRunning===!0)return;Y.isRunning=!0,Promise.resolve().then(Y),q()};let ue,de=N??z;c?.(`worker thread=${a} mode=${M?"process":dn?"worker_threads":"worker"}${Z?` runtime=${Z}`:""} url=${String(de)}`);let Pe={sab:De.sab,abortSignalSAB:Oe,abortSignalMax:C?.abortSignalMax??(Q===!0?s:void 0),list:e,ids:r,names:t,at:v,thread:a,debug:u,workerOptions:ie,totalNumberOfThread:f,startAt:me.startAt,lock:Le,returnLock:Ae,payloadConfig:ae,bufferReferenceReturn:T,permission:h,notifyOnHostPublish:!M&&O?.doorbell!==!1&&(Me==="bun"||Me==="node")&&typeof Atomics.waitAsync==="function",steal:C===void 0?void 0:{consumers:C.consumers,consumerId:C.consumerId,regionLanes:C.regionLanes}},be={type:"module",workerData:Pe},Je=R&&R.length>0?{...be,execArgv:R}:be;if(b!==void 0)ue=fs({workerUrl:de,bootPayload:ls(Pe,b),memory:b,processRuntime:Z,commandPrefix:G,permission:h});else if(dn)try{ue=new V(de,Je)}catch(p){if(p?.code==="ERR_WORKER_INVALID_EXEC_ARGV"){let E=co(Je.execArgv);if(E&&E.length>0)try{ue=new V(de,{...be,execArgv:E})}catch(J){if(J?.code==="ERR_WORKER_INVALID_EXEC_ARGV"){let re=ps(E);if(re&&re.length>0)try{ue=new V(de,{...be,execArgv:re})}catch{ue=new V(de,be)}else ue=new V(de,be)}else throw J}else ue=new V(de,be)}else throw p}else ue=new V(de,{type:"module"}),ue.postMessage?.(Pe);let er,dr=()=>{C?.hostSubmitLock.deactivateStealConsumer(C.consumerId)},Ir=()=>{try{ue.unref?.(),Promise.resolve(ue.terminate()).catch(()=>{}).finally(dr)}catch{dr()}},ve=(p,E=!1)=>{if(er)return;er=p,tr(E),We(p),Re?.close()},ar=(p)=>{if(!yc(p))return;ve(`Worker startup failed: ${p[As]}`,!0),Ir()},Xe=(p)=>{let E=String(p?.message??p);ve(`Worker crashed: ${E}`),Ir()},vr=ue;if(typeof vr.on==="function")vr.on("message",ar),vr.on("error",Xe),vr.on("exit",(p)=>{if(dr(),er!==void 0)return;ve(`Worker exited with code ${typeof p==="number"?p:-1}`)});else{let p=ue;if(typeof p.addEventListener==="function")p.addEventListener("message",(E)=>{ar(E?.data)}),p.addEventListener("error",(E)=>{Xe(E?.error??E?.message??E)});else p.onmessage=(E)=>{ar(E?.data)},p.onerror=(E)=>{Xe(E)}}return ce.setPromiseHandler((p,E,J)=>{Ue.settlePromisePayload(p,E,J),ge()}),{txIdle:o,call:({fnNumber:p,timeout:E,abortSignal:J})=>{let re=or(p,E,J);return(xe)=>{let yr=re(xe);return ge(),yr}},requestStop:async()=>{let p=me.stopView;if(p===void 0)return;try{Atomics.store(p,0,Cr.requested),q(),H?.()}catch{return}if(!mc)return;let E=Date.now()+pc;while(Atomics.load(p,0)!==Cr.acknowledged){if(Date.now()>=E)return;await new Promise((J)=>setTimeout(J,1))}},kills:async()=>{ve("Thread closed",!0);let p=b!==void 0,E=gs(ue,p);if(p)await E;as(b)},lock:ce,processSharedMemoryBackings:K?.backings,dispatcherCheck:Y,laneWake:X!==void 0||C!==void 0?q:void 0,bindSend:X!==void 0||C!==void 0?(p)=>void(pe=p):void 0}};var xs=()=>{return},Ls=()=>[],Ps=()=>{throw Error("process workers are unavailable in the browser build")},vs=Ps,_s=Ps;var Cs=(e,r,t)=>{switch(t??"roundRobin"){case"roundRobin":case"robinRound":return Bc(e)(r)(r.length);case"firstIdle":return wc(e)(r)(r.length);case"randomLane":return Tc(e)(r)(r.length);case"firstIdleOrRandom":return kc(e)(r)(r.length)}throw Error(`Unknown balancer: ${t}`)},lo=({contexts:e,balancer:r,handlers:t,inlinerGate:n})=>{let a=typeof r==="object"&&r!=null?r.strategy:r;if(e.length<2)throw Error(e.length===0?"No threads available.":"Cannot rotate with a single thread.");if(t.length===0)throw Error("No handlers provided.");let u=Cs(e,t,a);if(!n)return u;let c=n.index|0,f=Number.isFinite(n.threshold)?Math.max(1,Math.floor(n.threshold)):1;if(f<=1||c<0||c>=t.length)return u;let A=t.length-1;if(A<=0)return u;let N=Array(A),v=Array(A);for(let L=0,T=0;L<t.length;L+=1){if(L===c)continue;N[T]=t[L],v[T]=e[L],T+=1}let W=Cs(v,N,a),R=0,h=(L)=>(R-=1,L),O=(L)=>{throw R-=1,L};return(L)=>{R+=1;let T=R>=f?u:W;try{return T(L).then(h,O)}catch(D){throw R-=1,D}}};function Bc(e){return(r)=>(t)=>{let n=Math.min(t,r.length);if(n<=1)return(u)=>r[0](u);let a=0;return(u)=>{let c=a;if(a+=1,a===n)a=0;return r[c](u)}}}function wc(e){let r=e.map((t)=>t.txIdle);return(t)=>(n)=>{let a=Math.min(n,t.length);if(a<=1)return(c)=>t[0](c);let u=0;return(c)=>{for(let A=0;A<a;A+=1)if(r[A]())return t[A](c);let f=u;if(u+=1,u===a)u=0;return t[f](c)}}}var Tc=(e)=>(r)=>(t)=>{let n=Math.min(t,r.length);if(n<=1)return(a)=>r[0](a);return(a)=>{let u=Math.random()*n|0;return r[u](a)}};function kc(e){let r=e.map((t)=>t.txIdle);return(t)=>(n)=>{let a=Math.min(n,t.length);if(a<=1)return(u)=>t[0](u);return(u)=>{for(let f=0;f<a;f+=1)if(r[f]())return t[f](u);let c=Math.random()*a|0;return t[c](u)}}}var Sr={Free:-1,Pending:0},Vr={Reject:0,Resolve:1},Ec=(e)=>{if(e==null)return;if(typeof e==="number")return e>=0?{ms:e,kind:Vr.Reject,value:Error("Task timeout")}:void 0;let r=e.time;if(!(r>=0))return;if("default"in e)return{ms:r,kind:Vr.Resolve,value:e.default};if(e.maybe===!0)return{ms:r,kind:Vr.Resolve,value:void 0};if("error"in e)return{ms:r,kind:Vr.Reject,value:e.error};return{ms:r,kind:Vr.Reject,value:Error("Task timeout")}},Rc=(e,r)=>new Promise((t,n)=>{let a=!1,u=setTimeout(()=>{if(a)return;if(a=!0,r.kind===Vr.Resolve)t(r.value);else n(r.value)},r.ms);e.then((c)=>{if(a)return;a=!0,clearTimeout(u),t(c)},(c)=>{if(a)return;a=!0,clearTimeout(u),n(c)})}),xc=(()=>({hasAborted:()=>!1,now:()=>performance.now()}))(),Lc=(e,r,t=!1)=>{let n=Ec(r),a=t?(u)=>e(u,xc):e;if(!n)return a;return(u)=>{let c=a(u);return c instanceof Promise?Rc(c,n):c}},Is=({tasks:e,genTaskID:r,batchSize:t})=>{let a=(Array.isArray(e)?e:Object.values(e).sort((m,k)=>m.name.localeCompare(k.name))).map((m)=>{if(m.imported===!0)return()=>{throw Error("Imported task cannot run on the host inline lane")};return Lc(m.f,m.timeout,m.abortSignal!==void 0)}),u=16,c=new Int32Array(16),f=new Int8Array(16).fill(Sr.Free),A=Array(16),N=Array(16).fill(-1),v=Array(16),W=Array(16),R=16;for(let m=0;m<16;m++)W[m]=15-m;let h=new ir(16),O=0,L=!1,T=!1,D=Number.isFinite(t)?Math.max(1,Math.floor(t??1)):Number.POSITIVE_INFINITY,Q=Or(),X=Q.port1,C=Q.port2,z=(m)=>C.postMessage(m),ee=()=>h.isEmpty===!1,ie=typeof queueMicrotask==="function"?queueMicrotask:(m)=>Promise.resolve().then(m),M=()=>{if(O===0||L)return;L=!0,z(null)},Z=()=>{if(O===0||L||T)return;T=!0,ie(ae)},G=(m)=>{h.push(m),Z()},j=(m,k)=>{if(f[m]!==Sr.Pending||N[m]!==k)return;G(m)},V=(m,k,l,g)=>{if(f[m]!==Sr.Pending||N[m]!==k)return;let b=v[m];if(b)if(l)b.reject(g);else b.resolve(g);s(m)};function fe(){if(R>0)return W[--R];let m=c.length,k=m<<1,l=new Int32Array(k);l.set(c),c=l;let g=new Int8Array(k);g.fill(Sr.Free),g.set(f),f=g,A.length=k,N.length=k,N.fill(-1,m),v.length=k;for(let b=k-1;b>=m;--b)W[R++]=b;return W[--R]}function te(m=!1){let k=0;while(k<D){let l=h.shiftNoClear();if(l===void 0)break;let g=l|0;if(f[g]!==Sr.Pending)continue;let b=N[g];try{let K=A[g],S=c[g],y=a[S](K);if(!(y instanceof Promise)){V(g,b,!1,y),k++;continue}y.then((w)=>V(g,b,!1,w),(w)=>V(g,b,!0,w)),k++}catch(K){V(g,b,!0,K),k++}}if(ee()){if(m)M();else z(null);return}if(!m)L=!1}function ae(){if(!T)return;te(!0),T=!1}function s(m){if(O--,f[m]=Sr.Free,c[m]=0,N[m]=-1,A[m]=void 0,v[m]=void 0,W[R++]=m,O===0)L=!1}let P=({fnNumber:m})=>(k)=>{let l=r(),g=tn(),b=fe();if(N[b]=l,A[b]=k,c[b]=m|0,v[b]=g,f[b]=Sr.Pending,O++,k instanceof Promise)k.then((K)=>{if(N[b]!==l)return;A[b]=K,j(b,l)},(K)=>V(b,l,!0,K));else G(b);return g.promise};return X.onmessage=()=>te(!1),{kills:async()=>{for(let m=0;m<f.length;m++){if(f[m]!==Sr.Pending)continue;try{v[m]?.reject("Thread closed")}catch{}}X.onmessage=null,X.close?.(),C.onmessage=null,C.close?.(),h.clear(),R=0,W.length=0,A.fill(void 0),N.fill(-1),v.fill(void 0),c.fill(0),f.fill(Sr.Free),O=0,L=!1,T=!1},call:P,txIdle:()=>O===0}};var Ns=(e,r)=>e.has("*")||e.has(r),Pc=(e)=>{if(!((u)=>Ns(e,u))("host"))return;let t=performance.now(),n=`host·${Me}`;return{log:(u)=>{let c=(performance.now()-t).toFixed(1);console.error(`[${n}·+${c}ms] host: ${u}`)}}},vc=()=>{let e=globalThis.Deno?.cwd;if(typeof e==="function")try{return e()}catch{}let r=He();if(typeof r?.cwd==="function")try{return r.cwd()}catch{return}return},Ms=(e,r="(none)")=>e&&e.length>0?e.join(","):r,Ds=65535,Os=Ds+1,yo="default",_c=Tr;var Cc=(e)=>{let r=e.reduce((t,n)=>(t[0].add(n.importedFrom),t[1].add(n.id),t[2].add(n.at),t[3].push(n.name),t),[new Set,new Set,new Set,[]]);return{list:[...r[0]],ids:[...r[1]],at:[...r[2]],names:r[3]}},dt=(e,r)=>{try{return new URL(e,r).href}catch{return br(e)}},Ic=(e,r)=>{if(e===void 0)return;let t=e.processRuntime==="porffor";if(t&&e.runtime!==void 0&&e.runtime!=="compiled")throw Error('worker.processRuntime "porffor" requires worker.runtime to be compiled or omitted');let n=t&&e.runtime===void 0,a=t?{...e,runtime:"compiled",processRuntime:void 0,compiled:n?{...e.compiled,build:"always"}:e.compiled}:e,u=a.bootstrap;if(u!==void 0){let f=u.name??yo;if(typeof u.href!=="string"||u.href.length===0)throw TypeError("worker.bootstrap.href must be a non-empty string");if(typeof f!=="string"||f.length===0)throw TypeError("worker.bootstrap.name must be a non-empty string");a={...a,bootstrap:{...u,href:dt(u.href,r),name:f}}}let c=a.compiled;if(c!==void 0){if(c.build!==void 0&&typeof c.build!=="boolean"&&c.build!=="always")throw TypeError('worker.compiled.build must be a boolean or "always"');for(let[f,A]of Object.entries({artifact:c.artifact,manifest:c.manifest,compiler:c.compiler}))if(A!==void 0&&(typeof A!=="string"||A.length===0))throw TypeError("worker.compiled."+f+" must be a non-empty string");a={...a,compiled:{build:c.build,compiler:c.compiler===void 0?void 0:c.compiler.startsWith(".")||c.compiler.startsWith("/")||c.compiler.startsWith("file:")||/^[A-Za-z]:[\\/]/.test(c.compiler)?dt(c.compiler,r):c.compiler,artifact:c.artifact===void 0?void 0:dt(c.artifact,r),manifest:c.manifest===void 0?void 0:dt(c.manifest,r)}}}return a};var Mc=(e)=>e!=null&&typeof e==="object"&&typeof e.f==="function",Oc=(e,r)=>Object.entries(e).map(([t,n])=>{if(Mc(n))return{...n,name:t};if(typeof n==="function")return{f:n,id:-1,importedFrom:new URL(r).href,at:-1,name:t,[zr]:!0};throw TypeError(`createPool task "${t}" must be a task definition or exported function`)}),Ws=({threads:e,debug:r,inliner:t,balancer:n,payload:a,unsafe:u,abortSignalCapacity:c,source:f,worker:A,workerExecArgv:N,permission:v,host:W})=>(R)=>{let h=u?.BufferReferenceReturn,O=Ha||r!==void 0&&r!==!1,L,T=()=>L??=Zt(r),D=O?Pc(T()):void 0,Q=(B)=>O&&Ns(T(),B);if(Tr===!1){if(Q("lifecycle"))console.warn("createPool has been called with : "+JSON.stringify(Zr));let B=()=>{throw Error("createPool can only be called in the main thread.")},de=new Proxy(function(){return B()},{get:function(){return B}});return{shutdown:de,[Symbol.dispose]:()=>{},call:de}}let X=rs(3),C=Oc(R,X).sort((B,Y)=>B.name.localeCompare(Y.name)),{list:z,ids:ee,names:ie,at:M}=Cc(C);if(D?.log(`cwd=${vc()??"(unknown)"} caller=${X}`),C.forEach((B)=>{D?.log(`task name=${B.name} id=${B.id} from=${B.importedFrom}`)}),C.length>Os)throw RangeError(`Too many tasks: received ${C.length}. Maximum is ${Os} (Uint16 function IDs: 0..${Ds}).`);let Z=typeof t==="object"&&t!=null,G=(e??1)+(Z?1:0),j=xs({permission:v??{mode:"strict",allowImport:!0},modules:z}),V=Ls(j),fe=He(),te=fe?.allowedNodeEnvironmentFlags??null,ae=(B)=>{let Y=B.split("=",1)[0];return Y==="--permission"||Y==="--experimental-permission"||Y==="--allow-fs-read"||Y==="--allow-fs-write"||Y==="--allow-worker"||Y==="--allow-child-process"||Y==="--allow-net"||Y==="--allow-addons"||Y==="--allow-ffi"||Y==="--allow-wasi"},s=(B)=>B?.filter((Y)=>!ae(Y)),P=(B)=>{let Y=[],ue=new Set;for(let de of B){if(ue.has(de))continue;ue.add(de),Y.push(de)}return Y},m=(B)=>{if(!B||B.length===0)return;if(!te)return B;let Y=B.filter((ue)=>{let de=ue.split("=",1)[0];return te.has(de)});return Y.length>0?Y:void 0},k=Array.isArray(fe?.execArgv)?fe.execArgv:void 0,l=N??(k?te?.has("--expose-gc")===!0?k.includes("--expose-gc")?k:[...k,"--expose-gc"]:k:void 0),g=j?.unsafe===!0?s(l):l,b=P([...V,...g??[]]),K=m(b.length>0?b:void 0);D?.log(`pool runtime=${Me} workers=${e??1} lanes=${G} inliner=${Z?"on":"off"}`),D?.log(`modules=${Ms(z)}`),D?.log(`permission=${j?.mode??"off"} execArgv=${Ms(K)}`);let S=C.some((B)=>B.abortSignal!==void 0),y=Ic(A,X),w=fe?.env?.KNITTING_DISPATCHER,oe=fe?.env?.KNITTING_STEAL?.trim().toLowerCase(),se=oe==="1"||oe==="true"?!0:oe==="0"||oe==="false"?!1:void 0,Se=W?.dispatcher!==void 0||w==="serial-channel"||w==="per-thread",Le=n===void 0&&!Se&&(e??1)<=ks,he=W?.steal??se??Le,Ae=y?.runtime==="compiled";if(y?.compiled!==void 0&&!Ae)throw Error("worker.compiled requires worker.runtime to be compiled");if(Ae){let B=[];if(Z)B.push("inliner");if(a!==void 0)B.push("payload");if(u!==void 0)B.push("unsafe");if(f!==void 0)B.push("source");if(N!==void 0)B.push("workerExecArgv");if(v!==void 0)B.push("permission");if(W!==void 0)B.push("host");if(y.bootstrap!==void 0)B.push("worker.bootstrap");if(y.timers!==void 0)B.push("worker.timers");if(y.processRuntime!==void 0)B.push("worker.processRuntime");if(y.processCommandPrefix!==void 0)B.push("worker.processCommandPrefix");if(y.processSharedMemory!==void 0)B.push("worker.processSharedMemory");if(y.resolveAfterFinishingAll!==void 0)B.push("worker.resolveAfterFinishingAll");if(C.some((Y)=>Y.timeout!==void 0))B.push("task timeout");if(C.some((Y)=>Y.imported===!0))B.push("importTask");if(B.length>0)throw Error("Compiled workers do not support: "+B.join(", "))}if(y?.bootstrap!==void 0)D?.log(`bootstrap href=${y.bootstrap.href} name=${y.bootstrap.name}`);if(Z&&y?.bootstrap!==void 0)throw Error("worker.bootstrap cannot be used with the inliner");if(y?.runtime==="process"){let B=on(y);_s(vs({permission:v,resolved:j,target:{runtime:B,nodeMajor:B==="node"?cs(y):void 0}}))}let ce=Number.isFinite(y?.hardTimeoutMs)?Math.max(1,Math.floor(y?.hardTimeoutMs)):void 0;if(ln>=1)throw Error(`createPool() tried to spawn workers from inside a worker process (pool depth ${ln}). This usually means a pool is created at module scope in a module your workers import, so every worker spawns its own pool recursively. Is your createPool protected by isMain? Guard pool creation behind \`if (isMain) { ... }\` (import { isMain } from "knitting") so only the main program starts the pool.`);let ye=W?.dispatcher??(w==="serial-channel"||w==="per-thread"?w:void 0),Oe=(()=>{if(Me==="bun")return"per-thread";if((e??1)<=1)return"per-thread";return"serial-channel"})(),Ne=ye??Oe,De=he&&!Ae&&(e??1)>1&&!Z,me=De?Es({threads:e??1,payload:a,regionLanes:W?.stealRegionLanes,abortSignalCapacity:c,usesAbortSignal:S,processWorker:y?.runtime==="process"?{signalBytes:st,sharedMemory:nn(y)}:void 0}):void 0,$e=!Ae&&!De&&Ne==="serial-channel",Ee=$e?new Yr("channel"):void 0,Be=Array.from({length:e??1}).map((B,Y)=>Rs({list:z,ids:ee,names:ie,at:M,thread:Y,debug:r,hostDebug:D?.log,totalNumberOfThread:G,workerCount:e??1,source:f,workerOptions:y,workerExecArgv:K,host:W,payload:a,bufferReferenceReturn:h,abortSignalCapacity:c,usesAbortSignal:S,permission:j,sharedChannelHandler:Ee,stealPool:me===void 0?void 0:{submitBuffers:me.submitBuffers,returnBuffers:me.returnBuffers[Y],hostSubmitLock:me.hostSubmitLock,hostReturnLock:me.hostReturnLocks[Y],sharedQueue:me.sharedQueue,consumers:e??1,consumerId:Y,regionLanes:me.regionLanes,abortSignalSAB:me.abortSignalSAB,abortSignalMax:me.abortSignalMax,processMemory:me.processMemory}})),tr=De?new Yr:void 0;if(De){let B=tr,Y=me.sharedQueue,ue=0,de=()=>{let be=Be.length;if(be===0)return;let Je=ue;ue=ue+1<be?ue+1:0,Be[Je].laneWake?.()},Ie=new Int32Array(je(3*Int32Array.BYTES_PER_ELEMENT)),{check:Pe}=an({signalBox:{opView:Ie.subarray(0,1),txStatus:Ie.subarray(1,2),rxStatus:Ie.subarray(2,3)},queue:Y,channelHandler:B,dispatcherOptions:W,notifySignal:de,crossProcess:y?.runtime==="process"});B.open(Pe),Be.forEach((be)=>{be.bindSend(()=>{if(Pe.isRunning!==!0)Pe.isRunning=!0,Promise.resolve().then(Pe);de()})}),D?.log(`dispatcher=steal lanes=${Be.length} g=${me.regionLanes}`)}let nr=Ee;if($e){let B=Ee,Y=Be.map((ve)=>ve.dispatcherCheck),ue=Be.map((ve)=>ve.txIdle),de=!1,Ie=!1,Pe=!1,be=[],Je=new Uint8Array(Y.length),er=(ve)=>{if(Je[ve]===1)return;Je[ve]=1,be.push(ve)},dr=()=>{if(Ie){Pe=!0;return}Ie=!0;do{Pe=!1,de=!1;for(let ve=be.length-1;ve>=0;ve--){let ar=be[ve],Xe=Y[ar];if(Xe.isRunning!==!0)Xe.isRunning=!0;if(Xe(),ue[ar]()){Je[ar]=0;let vr=be.pop();if(ve<be.length)be[ve]=vr}}}while(Pe);Ie=!1},Ir=()=>{if(Ie){Pe=!0;return}if(de)return;de=!0,Promise.resolve().then(dr)};B.open(dr),Be.forEach((ve,ar)=>{let Xe=ve.laneWake;ve.bindSend(()=>{er(ar),Ir(),Xe()})}),D?.log(`dispatcher=serial-channel lanes=${Y.length}`)}else D?.log(`dispatcher=per-thread lanes=${Be.length}`);if(Z){let B=Is({tasks:C,genTaskID:Qa,batchSize:t?.batchSize??1});if(t?.position==="first")Be=[B,...Be];else Be.push(B)}let Ue=Z?t?.position==="first"?0:Be.length-1:-1,or=Number.isFinite(t?.dispatchThreshold)?Math.max(1,Math.floor(t?.dispatchThreshold??1)):1,We=!1,o,_,x=()=>{if(o)return o;return We=!0,o=Promise.allSettled(Be.map((B)=>B.requestStop?.())).then(()=>Promise.allSettled(Be.map((B)=>B.kills()))).then(()=>{nr?.close(),tr?.close()}),o},d=({invoke:B,taskName:Y})=>(ue)=>{if(We)return Promise.reject(Error("Pool is shut down"));let de=B(ue);if(!ce)return de;return new Promise((Ie,Pe)=>{let be=!1,Je=setTimeout(()=>{if(be)return;be=!0,Pe(Error(`Task hard timeout after ${ce}ms (${Y}); pool force-shutdown`)),x()},ce);de.then((er)=>{if(be)return;be=!0,clearTimeout(Je),Ie(er)},(er)=>{if(be)return;be=!0,clearTimeout(Je),Pe(er)})})},F=(B)=>{if(o)return o;if(_)return _;let Y=Number.isFinite(B)?Math.max(0,Math.floor(B)):0;return _=(async()=>{if(o)return await o;if(Y>0)await new Promise((ue)=>setTimeout(ue,Y));if(o)return await o;await x()})(),_},U=()=>{F()},H=C.map((B,Y)=>({name:B.name,index:Y,timeout:B.timeout,abortSignal:B.abortSignal,imported:B.imported===!0})),q=new Map;for(let{name:B}of H)q.set(B,[]);for(let B of Be)for(let{name:Y,index:ue,timeout:de,abortSignal:Ie}of H)q.get(Y).push(d({taskName:Y,invoke:B.call({fnNumber:ue,timeout:de,abortSignal:Ie})}));let pe=(e??1)===1&&!Z,ge=(B)=>{let Y=[],ue=[];for(let de=0;de<B.length;de+=1){if(de===Ue)continue;Y.push(B[de]),ue.push(Be[de])}if(Y.length===0)throw Error("Imported task has no worker lane to run on: the pool only has the host inliner. Imported tasks are never inlined on the host; add at least one worker thread.");if(Y.length===1)return Y[0];return lo({contexts:ue,balancer:n,handlers:Y})},Re=(B,Y)=>{if(Y&&Z)return ge(B);return pe?B[0]:lo({contexts:Be,balancer:n,handlers:B,inlinerGate:Z?{index:Ue,threshold:or}:void 0})},ne;try{ne=H.map(({name:B,imported:Y})=>[B,Re(q.get(B),Y)])}catch(B){throw x(),B}return{shutdown:F,[Symbol.dispose]:U,call:Object.fromEntries(ne)}},Fs="__task__",Fc=(e,r)=>{let t=Ws(r??{})({[Fs]:e});return{call:t.call[Fs],shutdown:t.shutdown,[Symbol.dispose]:t[Symbol.dispose]}},Us=(e,r,t,n=!1)=>{let a=new URL(r).href,u={...e,id:Ja(a,t),importedFrom:a,at:t,imported:n,[zr]:!0};return u.createPool=(c)=>{if(Tr===!1)return u;return Fc(u,c)},u},Nc=(e,r)=>{let[t,n]=so(r);return Us(e,t,n)},Dc=(e,r)=>{let t,n,a=async()=>{if(t)return t;if(!n)n=import(e).then((u)=>{let c=u,f=r===yo?c.default:c[r];if(typeof f!=="function"){let A=Object.keys(c).join(", ");throw TypeError(`importTask expected export "${r}" from "${e}" to be a function. Available exports: ${A||"(none)"}`)}return t=f,t});return n};return async(...u)=>(await a())(...u)};function Wc(e){return Nc(e,4)}function Uc(e){let[r,t]=so(3),{href:n,name:a=yo,...u}=e,c=dt(n,r);return Us({...u,f:Dc(c,a)},r,t,!0)}export{mr as Envelope,Kt as NumericArray,Ws as createPool,Uc as importTask,_c as isMain,Nn as isNumericArray,Za as setModuleUrl,Wc as task,rn as workerMainLoop};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "knitting",
3
- "version": "0.1.62",
3
+ "version": "0.1.63",
4
4
  "description": "Shared-memory IPC runtime for Node.js, Deno, and Bun.",
5
5
  "license": "Apache-2.0",
6
6
  "repository": {
package/src/api.js CHANGED
@@ -516,6 +516,9 @@ export const createPool = ({ threads, debug, inliner, balancer, payload, unsafe,
516
516
  debug,
517
517
  hostDebug: hostDebug?.log,
518
518
  totalNumberOfThread,
519
+ // Worker count without the inline lane. The inliner runs on the host
520
+ // thread and never spins, so it must not count towards the spin policy.
521
+ workerCount: threads ?? 1,
519
522
  source,
520
523
  workerOptions: resolvedWorker,
521
524
  workerExecArgv: execArgv,
@@ -687,7 +690,8 @@ export const createPool = ({ threads, debug, inliner, balancer, payload, unsafe,
687
690
  if (closePromise)
688
691
  return closePromise;
689
692
  closing = true;
690
- closePromise = Promise.allSettled(workers.map((context) => context.kills()))
693
+ closePromise = Promise.allSettled(workers.map((context) => context.requestStop?.()))
694
+ .then(() => Promise.allSettled(workers.map((context) => context.kills())))
691
695
  .then(() => {
692
696
  sharedDispatcherChannel?.close();
693
697
  stealChannel?.close();
@@ -1,6 +1,13 @@
1
1
  export type SignalArguments = ReturnType<typeof createSharedMemoryTransport>;
2
2
  import { type SharedBufferSource } from "../../common/shared-buffer-region.js";
3
3
  export declare const TRANSPORT_SIGNAL_BYTES: number;
4
+ /** States of the worker-stop word. */
5
+ export declare const WORKER_STOP: {
6
+ readonly running: 0;
7
+ readonly requested: 1;
8
+ /** The worker has left its dispatch loop. */
9
+ readonly acknowledged: 2;
10
+ };
4
11
  export type Sab = {
5
12
  size?: number;
6
13
  sharedSab?: SharedBufferSource;
@@ -18,6 +25,7 @@ export declare const createSharedMemoryTransport: ({ sabObject, isMain, startTim
18
25
  opView: Int32Array<import("../../common/shared-buffer-region.js").SharedBuffer>;
19
26
  rxStatus: Int32Array<import("../../common/shared-buffer-region.js").SharedBuffer>;
20
27
  txStatus: Int32Array<import("../../common/shared-buffer-region.js").SharedBuffer>;
28
+ stopView: Int32Array<import("../../common/shared-buffer-region.js").SharedBuffer>;
21
29
  };
22
- export type MainSignal = Pick<SignalArguments, "opView" | "startAt" | "rxStatus" | "txStatus">;
30
+ export type MainSignal = Pick<SignalArguments, "opView" | "startAt" | "rxStatus" | "txStatus" | "stopView">;
23
31
  export {};
@@ -7,8 +7,16 @@ const SIGNAL_OFFSETS = {
7
7
  op: 0,
8
8
  rxStatus: CACHE_LINE_BYTES,
9
9
  txStatus: CACHE_LINE_BYTES * 2,
10
+ stop: CACHE_LINE_BYTES * 3,
11
+ };
12
+ export const TRANSPORT_SIGNAL_BYTES = CACHE_LINE_BYTES * 4;
13
+ /** States of the worker-stop word. */
14
+ export const WORKER_STOP = {
15
+ running: 0,
16
+ requested: 1,
17
+ /** The worker has left its dispatch loop. */
18
+ acknowledged: 2,
10
19
  };
11
- export const TRANSPORT_SIGNAL_BYTES = CACHE_LINE_BYTES * 3;
12
20
  const a_store = Atomics.store;
13
21
  export const createSharedMemoryTransport = ({ sabObject, isMain, startTime }) => {
14
22
  const toGrow = sabObject?.size ?? page;
@@ -24,6 +32,9 @@ export const createSharedMemoryTransport = ({ sabObject, isMain, startTime }) =>
24
32
  a_store(opView, 0, 0);
25
33
  const rxStatus = new Int32Array(sab, baseByteOffset + SIGNAL_OFFSETS.rxStatus, 1);
26
34
  a_store(rxStatus, 0, 1);
35
+ const stopView = new Int32Array(sab, baseByteOffset + SIGNAL_OFFSETS.stop, 1);
36
+ if (isMain)
37
+ a_store(stopView, 0, WORKER_STOP.running);
27
38
  return {
28
39
  sab: signalRegion,
29
40
  op: opView,
@@ -31,5 +42,6 @@ export const createSharedMemoryTransport = ({ sabObject, isMain, startTime }) =>
31
42
  opView,
32
43
  rxStatus,
33
44
  txStatus: new Int32Array(sab, baseByteOffset + SIGNAL_OFFSETS.txStatus, 1),
45
+ stopView,
34
46
  };
35
47
  };
@@ -228,10 +228,9 @@ export const HEADER_STATIC_PAYLOAD_U32 = TaskIndex.TotalBuff -
228
228
  export const HEADER_TASK_OFFSET_IN_SLOT_U32 = HEADER_STATIC_PAYLOAD_U32;
229
229
  // Work-stealing control words live in the unused tail of each slot's header
230
230
  // cache line. Task words occupy 0..7 (`TASK_LOCAL_FLAGS_INDEX = 7`) of the
231
- // 16-word line, leaving words 8..15 free. Consumer `c` owns slot `c`'s pair, and
232
- // because the slot stride is exactly 9 cache lines those pairs land on distinct
233
- // lines. `ACK[c]` and `WANT[c]` share one line on purpose: same single writer,
234
- // and a peer reading one pulls the other for free.
231
+ // 16-word line, leaving words 8..15 free. Consumer `c` owns slot `c`'s words,
232
+ // and the slot stride keeps those words on separate cache lines.
233
+ // The ACK word was removed; retirement is folded into `workerBits`.
235
234
  export const STEAL_ACK_SLOT_OFFSET_U32 = HEADER_TASK_OFFSET_IN_SLOT_U32 +
236
235
  TaskIndex.Size;
237
236
  export const STEAL_WANT_SLOT_OFFSET_U32 = STEAL_ACK_SLOT_OFFSET_U32 + 1;
@@ -363,12 +362,10 @@ export const lock2 = ({ headers, headerSlotStrideU32, LockBoundSector, payload,
363
362
  // Int32 alias over the headers SAB so the control words get signed bit math
364
363
  // consistent with the rest of the protocol.
365
364
  const stealView = new Int32Array(headersRegion.sab, headersRegion.byteOffset, headersRegion.byteLength >>> 2);
366
- const stealAckIndex = new Int32Array(stealConsumers);
367
365
  const stealWantIndex = new Int32Array(stealConsumers);
368
366
  for (let c = 0; c < stealConsumers; c++) {
369
- const slotBase = (c * headersSlotStride) + LockBound.header;
370
- stealAckIndex[c] = slotBase + STEAL_ACK_SLOT_OFFSET_U32;
371
- stealWantIndex[c] = slotBase + STEAL_WANT_SLOT_OFFSET_U32;
367
+ stealWantIndex[c] = (c * headersSlotStride) + LockBound.header +
368
+ STEAL_WANT_SLOT_OFFSET_U32;
372
369
  }
373
370
  const stealLiveIndex = LockBound.header + STEAL_LIVE_SLOT_OFFSET_U32;
374
371
  const stealAllLiveMask = stealConsumers === 32
@@ -378,13 +375,6 @@ export const lock2 = ({ headers, headerSlotStrideU32, LockBoundSector, payload,
378
375
  Atomics.store(stealView, stealLiveIndex, stealAllLiveMask);
379
376
  }
380
377
  const stealIsLive = (mask, consumer) => (mask & (1 << consumer)) !== 0;
381
- const stealAckXorAll = () => {
382
- let x = 0 | 0;
383
- for (let c = 0; c < stealConsumers; c++) {
384
- x = (x ^ a_load(stealView, stealAckIndex[c])) | 0;
385
- }
386
- return x;
387
- };
388
378
  let promiseHandler;
389
379
  if (registeredEncodePayload === undefined ||
390
380
  registeredDecodePayload === undefined) {
@@ -445,9 +435,8 @@ export const lock2 = ({ headers, headerSlotStrideU32, LockBoundSector, payload,
445
435
  // lanes but cannot make a genuinely pending lane appear free. Refresh only
446
436
  // when the cached free set is exhausted.
447
437
  let workerShadow = 0 | 0;
448
- const refreshWorkerShadow = stealEnabled
449
- ? () => workerShadow = stealAckXorAll()
450
- : () => workerShadow = a_load(workerBits, 0) | 0;
438
+ // Under stealing, workerBits also records retired lanes.
439
+ const refreshWorkerShadow = () => workerShadow = a_load(workerBits, 0) | 0;
451
440
  refreshWorkerShadow();
452
441
  const ensureSenderStateHasFree = (state) => (~state) !== 0 ? state : (LastLocal ^ refreshWorkerShadow()) | 0;
453
442
  // RingQueue method aliases (hot path)
@@ -666,14 +655,6 @@ export const lock2 = ({ headers, headerSlotStrideU32, LockBoundSector, payload,
666
655
  const stealLaneMask = (region) => stealRegionLanes === 32
667
656
  ? -1
668
657
  : ((((1 << stealRegionLanes) - 1) << (region * stealRegionLanes)) | 0);
669
- const stealPeerAcks = () => {
670
- let x = 0 | 0;
671
- for (let c = 0; c < stealConsumers; c++) {
672
- if (c !== stealId)
673
- x = (x ^ a_load(stealView, stealAckIndex[c])) | 0;
674
- }
675
- return x;
676
- };
677
658
  const stealJuniorWants = (intent) => {
678
659
  const live = a_load(stealView, stealLiveIndex) | 0;
679
660
  for (let c = stealId + 1; c < stealConsumers; c++) {
@@ -684,9 +665,11 @@ export const lock2 = ({ headers, headerSlotStrideU32, LockBoundSector, payload,
684
665
  }
685
666
  return false;
686
667
  };
687
- let stealCursor = ((stealRegions * stealId) / stealConsumers) | 0;
668
+ const stealHome = ((stealRegions * stealId) / stealConsumers) | 0;
669
+ let stealCursor = stealHome;
688
670
  const decodeSteal = () => {
689
- const pending = (a_load(hostBits, 0) ^ LastWorker ^ stealPeerAcks()) | 0;
671
+ // workerBits includes retired lanes under stealing.
672
+ const pending = (a_load(hostBits, 0) ^ a_load(workerBits, 0)) | 0;
690
673
  if (pending === 0)
691
674
  return false;
692
675
  let pendingRegions = 0 | 0;
@@ -748,23 +731,32 @@ export const lock2 = ({ headers, headerSlotStrideU32, LockBoundSector, payload,
748
731
  }
749
732
  // Last control loads before ownership. After this no control word is read
750
733
  // until every slot in `take` has been decoded.
751
- const take = ((a_load(hostBits, 0) ^ LastWorker ^ stealPeerAcks()) &
734
+ const take = ((a_load(hostBits, 0) ^ a_load(workerBits, 0)) &
752
735
  stealLaneMask(region)) | 0;
753
736
  if (take === 0) {
754
737
  a_store(stealView, stealWantIndex[stealId], 0);
755
738
  return false;
756
739
  }
740
+ // Retire decoded lanes and release the region even if decoding throws.
757
741
  let lanes = take;
758
- while (lanes !== 0) {
759
- decodeAt(31 - clz32((lanes & -lanes) >>> 0));
760
- lanes = (lanes & (lanes - 1)) | 0;
761
- }
762
- // Retire the whole claimed mask with one ACK store, then release the region.
763
- // ACK before intent-clear (paper Assumption 2(ii)).
764
- LastWorker = (LastWorker ^ take) | 0;
765
- a_store(stealView, stealAckIndex[stealId], LastWorker);
766
- a_store(stealView, stealWantIndex[stealId], 0);
767
- stealCursor = (region + 1) % stealRegions;
742
+ let done = 0 | 0;
743
+ try {
744
+ while (lanes !== 0) {
745
+ const bit = (lanes & -lanes) | 0;
746
+ decodeAt(31 - clz32(bit >>> 0));
747
+ lanes = (lanes & (lanes - 1)) | 0;
748
+ done = (done ^ bit) | 0;
749
+ }
750
+ }
751
+ finally {
752
+ // ACK before clearing intent.
753
+ LastWorker = (LastWorker ^ done) | 0;
754
+ if (done !== 0)
755
+ Atomics.xor(workerBits, 0, done);
756
+ a_store(stealView, stealWantIndex[stealId], 0);
757
+ // Restart from this consumer's home region.
758
+ stealCursor = stealHome;
759
+ }
768
760
  return true;
769
761
  };
770
762
  /**
@@ -109,7 +109,7 @@ export declare const createStealPoolBuffers: ({ threads, payload, regionLanes, a
109
109
  abortSignalSAB: SharedArrayBuffer | import("../types.js").SharedBufferRegion;
110
110
  abortSignalMax: number;
111
111
  };
112
- export declare const spawnWorkerContext: ({ list, ids, names, sab, thread, debug, hostDebug, totalNumberOfThread, source, at, workerOptions, workerExecArgv, permission, host, payload, bufferReferenceReturn, abortSignalCapacity, usesAbortSignal, sharedChannelHandler, stealPool, }: {
112
+ export declare const spawnWorkerContext: ({ list, ids, names, sab, thread, debug, hostDebug, totalNumberOfThread, workerCount, source, at, workerOptions, workerExecArgv, permission, host, payload, bufferReferenceReturn, abortSignalCapacity, usesAbortSignal, sharedChannelHandler, stealPool, }: {
113
113
  list: string[];
114
114
  ids: number[];
115
115
  names: string[];
@@ -119,6 +119,12 @@ export declare const spawnWorkerContext: ({ list, ids, names, sab, thread, debug
119
119
  debug?: DebugOptions;
120
120
  hostDebug?: (message: string) => void;
121
121
  totalNumberOfThread: number;
122
+ /**
123
+ * Workers only, excluding any host inline lane. Drives the spin policy:
124
+ * the inliner runs on the host thread and never spins, so counting it
125
+ * would strip a one-worker pool of the budget it should keep.
126
+ */
127
+ workerCount?: number;
122
128
  source?: string;
123
129
  workerOptions?: WorkerSettings;
124
130
  workerExecArgv?: string[];
@@ -1,7 +1,7 @@
1
1
  import { createHostTxQueue } from "./tx-queue.js";
2
2
  import { cleanupProcessWorkerMemoryQuietly, createProcessSharedMemoryAllocator, createProcessStealMemoryLayout, createProcessWorkerMemoryLayout, createProcessWorkerNativeSignalNotifier, readProcessSharedMemorySettings, readProcessWorkerCommandPrefix, readProcessWorkerRuntime, spawnProcessWorker, toProcessWorkerBootPayload, } from "./process-worker.js";
3
3
  import { serializeWorkerBootstrapData, terminateWorkerQuietly, toWorkerCompatExecArgv, toWorkerSafeExecArgv, } from "./worker-common.js";
4
- import { createSharedMemoryTransport, TRANSPORT_SIGNAL_BYTES, } from "../ipc/transport/shared-memory.js";
4
+ import { createSharedMemoryTransport, TRANSPORT_SIGNAL_BYTES, WORKER_STOP, } from "../ipc/transport/shared-memory.js";
5
5
  import { ChannelHandler, hostDispatcherLoop, } from "./dispatcher.js";
6
6
  import { HEADER_SLOT_STRIDE_U32, lock2, LOCK_SECTOR_BYTE_LENGTH, LockBound, } from "../memory/lock.js";
7
7
  // Side-effect import: registers the payload codec (cycle break for Andromeda;
@@ -20,8 +20,12 @@ const WORKER_FATAL_MESSAGE_KEY = "__knittingWorkerFatal";
20
20
  const isWorkerFatalMessage = (value) => !!value &&
21
21
  typeof value === "object" &&
22
22
  typeof value[WORKER_FATAL_MESSAGE_KEY] === "string";
23
+ // Bound the wait for a worker to acknowledge loop exit.
24
+ const WORKER_STOP_ACK_TIMEOUT_MS = 50;
25
+ const WORKER_STOP_NEEDS_ACK = RUNTIME === "deno";
23
26
  // Keep idle workers self-healing if an Atomics.notify wake is missed.
24
27
  const DEFAULT_WORKER_PARK_MS = 1;
28
+ const SINGLE_WORKER_SPIN_US = 50;
25
29
  const DEFAULT_ABORT_SIGNAL_CAPACITY = 258;
26
30
  const sanitizePositiveInteger = (value) => {
27
31
  if (!Number.isFinite(value))
@@ -31,15 +35,20 @@ const sanitizePositiveInteger = (value) => {
31
35
  };
32
36
  const resolveAbortSignalCapacity = (value) => sanitizePositiveInteger(value) ?? DEFAULT_ABORT_SIGNAL_CAPACITY;
33
37
  const abortSignalByteLength = (capacity) => Math.max(1, Math.ceil(capacity / 32)) * Uint32Array.BYTES_PER_ELEMENT;
34
- const withDefaultWorkerTimers = (options) => {
38
+ const withDefaultWorkerTimers = (options, workerCount) => {
35
39
  const parkMs = options?.timers?.parkMs ?? DEFAULT_WORKER_PARK_MS;
40
+ // `??` and not `||`: an explicit `spinMicroseconds: 0` is the whole point of
41
+ // the multi-worker default and must not fall through to it.
42
+ const spinMicroseconds = options?.timers?.spinMicroseconds ??
43
+ (workerCount <= 1 ? SINGLE_WORKER_SPIN_US : 0);
36
44
  if (options === undefined)
37
- return { timers: { parkMs } };
45
+ return { timers: { parkMs, spinMicroseconds } };
38
46
  return {
39
47
  ...options,
40
48
  timers: {
41
49
  ...options.timers,
42
50
  parkMs,
51
+ spinMicroseconds,
43
52
  },
44
53
  };
45
54
  };
@@ -176,7 +185,7 @@ export const createStealPoolBuffers = ({ threads, payload, regionLanes, abortSig
176
185
  (abortSignalSAB === undefined ? undefined : resolvedAbortSignalCapacity),
177
186
  };
178
187
  };
179
- export const spawnWorkerContext = ({ list, ids, names, sab, thread, debug, hostDebug, totalNumberOfThread, source, at, workerOptions, workerExecArgv, permission, host, payload, bufferReferenceReturn, abortSignalCapacity, usesAbortSignal, sharedChannelHandler, stealPool, }) => {
188
+ export const spawnWorkerContext = ({ list, ids, names, sab, thread, debug, hostDebug, totalNumberOfThread, workerCount, source, at, workerOptions, workerExecArgv, permission, host, payload, bufferReferenceReturn, abortSignalCapacity, usesAbortSignal, sharedChannelHandler, stealPool, }) => {
180
189
  if (workerOptions?.runtime === "compiled") {
181
190
  return spawnCompiledWorkerContext({
182
191
  list,
@@ -189,7 +198,7 @@ export const spawnWorkerContext = ({ list, ids, names, sab, thread, debug, hostD
189
198
  }
190
199
  const tsFileUrl = new URL(import.meta.url);
191
200
  const poliWorker = RUNTIME_WORKER;
192
- const resolvedWorkerOptions = serializeWorkerBootstrapData(withDefaultWorkerTimers(workerOptions));
201
+ const resolvedWorkerOptions = serializeWorkerBootstrapData(withDefaultWorkerTimers(workerOptions, workerCount ?? totalNumberOfThread));
193
202
  const useProcessWorkerRuntime = resolvedWorkerOptions.runtime === "process";
194
203
  const processWorkerRuntime = useProcessWorkerRuntime
195
204
  ? readProcessWorkerRuntime(resolvedWorkerOptions)
@@ -637,13 +646,38 @@ export const spawnWorkerContext = ({ list, ids, names, sab, thread, debug, hostD
637
646
  return pending;
638
647
  };
639
648
  };
649
+ // Ask the worker to leave its loop before termination.
650
+ const requestWorkerStop = async () => {
651
+ const stopView = signalBox.stopView;
652
+ if (stopView === undefined)
653
+ return;
654
+ try {
655
+ Atomics.store(stopView, 0, WORKER_STOP.requested);
656
+ laneWake();
657
+ notifySignal?.();
658
+ }
659
+ catch {
660
+ return;
661
+ }
662
+ if (!WORKER_STOP_NEEDS_ACK)
663
+ return;
664
+ const deadline = Date.now() + WORKER_STOP_ACK_TIMEOUT_MS;
665
+ while (Atomics.load(stopView, 0) !== WORKER_STOP.acknowledged) {
666
+ if (Date.now() >= deadline)
667
+ return;
668
+ await new Promise((resolve) => setTimeout(resolve, 1));
669
+ }
670
+ };
640
671
  const context = {
641
672
  txIdle,
642
673
  call,
674
+ requestStop: requestWorkerStop,
643
675
  kills: async () => {
644
676
  markWorkerClosed("Thread closed", true);
645
- const termination = terminateWorkerQuietly(worker);
646
- if (processWorkerMemory !== undefined)
677
+ // Process workers must exit before their shared memory is unmapped.
678
+ const awaitExit = processWorkerMemory !== undefined;
679
+ const termination = terminateWorkerQuietly(worker, awaitExit);
680
+ if (awaitExit)
647
681
  await termination;
648
682
  cleanupProcessWorkerMemoryQuietly(processWorkerMemory);
649
683
  },
@@ -10,4 +10,5 @@ export type NodeWorkerLike = {
10
10
  export declare const toWorkerSafeExecArgv: (flags: string[] | undefined) => string[] | undefined;
11
11
  export declare const toWorkerCompatExecArgv: (flags: string[] | undefined) => string[] | undefined;
12
12
  export declare const serializeWorkerBootstrapData: (options: WorkerSettings) => WorkerSettings;
13
- export declare const terminateWorkerQuietly: (worker: SpawnedWorker) => Promise<void>;
13
+ /** Terminate a worker, optionally waiting for it to exit. */
14
+ export declare const terminateWorkerQuietly: (worker: SpawnedWorker, awaitExit?: boolean) => Promise<void>;
@@ -90,12 +90,26 @@ export const serializeWorkerBootstrapData = (options) => {
90
90
  },
91
91
  };
92
92
  };
93
- export const terminateWorkerQuietly = (worker) => {
93
+ // Bound the wait for process-worker exit.
94
+ const WORKER_EXIT_WAIT_MS = 2_000;
95
+ /** Terminate a worker, optionally waiting for it to exit. */
96
+ export const terminateWorkerQuietly = (worker, awaitExit = false) => {
94
97
  try {
95
- // Runaway worker termination can be slow or stuck on some runtimes; once the
96
- // pool is closing it must not keep the host process alive.
97
- worker.unref?.();
98
- return Promise.resolve(worker.terminate()).then(() => { }, () => { });
98
+ if (!awaitExit)
99
+ worker.unref?.();
100
+ const exited = Promise.resolve(worker.terminate()).then(() => { }, () => { });
101
+ if (!awaitExit)
102
+ return exited;
103
+ return new Promise((resolve) => {
104
+ const timer = setTimeout(() => {
105
+ worker.unref?.();
106
+ resolve();
107
+ }, WORKER_EXIT_WAIT_MS);
108
+ void exited.then(() => {
109
+ clearTimeout(timer);
110
+ resolve();
111
+ });
112
+ });
99
113
  }
100
114
  catch {
101
115
  return Promise.resolve();
package/src/types.d.ts CHANGED
@@ -13,6 +13,8 @@ type WorkerInvoke = (args: Uint8Array) => Promise<unknown>;
13
13
  interface WorkerContext {
14
14
  txIdle(): boolean;
15
15
  call(descriptor: WorkerCall): WorkerInvoke;
16
+ /** Ask the worker to leave its dispatch loop before termination. */
17
+ requestStop?(): Promise<void>;
16
18
  kills(): Promise<void>;
17
19
  }
18
20
  type CreateContext = WorkerContext;
@@ -2,7 +2,7 @@ import { addRuntimeDataListener, createRuntimeMessageChannel, RUNTIME_IS_MAIN_TH
2
2
  import { isSharedBufferSource } from "../common/shared-buffer-region.js";
3
3
  import { isLockBufferTextCompat } from "../common/shared-buffer-text.js";
4
4
  import { createWorkerRxQueue } from "./rx-queue.js";
5
- import { createSharedMemoryTransport } from "../ipc/transport/shared-memory.js";
5
+ import { createSharedMemoryTransport, WORKER_STOP, } from "../ipc/transport/shared-memory.js";
6
6
  import { lock2 } from "../memory/lock.js";
7
7
  // Side-effect import: registers the payload codec (cycle break for Andromeda;
8
8
  // see lock.ts). Must run before any lock2() call.
@@ -126,18 +126,17 @@ export const workerMainLoop = async (startupData) => {
126
126
  });
127
127
  const timers = workerOptions?.timers;
128
128
  const spinMicroseconds = timers?.spinMicroseconds ??
129
- Math.max(1, totalNumberOfThread) * 50;
129
+ (totalNumberOfThread <= 1 ? 50 : 0);
130
130
  const parkMs = dbg !== undefined
131
131
  ? Number.POSITIVE_INFINITY
132
- : (timers?.parkMs ??
133
- Math.max(1, totalNumberOfThread) * 50);
132
+ : (timers?.parkMs ?? 1);
134
133
  const pauseSpin = (() => {
135
134
  const fn = typeof timers?.pauseNanoseconds === "number"
136
135
  ? whilePausing({ pauseInNanoseconds: timers.pauseNanoseconds })
137
136
  : pauseGeneric;
138
137
  return () => fn(); // always a closure wrapper
139
138
  })();
140
- const { opView, rxStatus, txStatus } = signals;
139
+ const { opView, rxStatus, txStatus, stopView } = signals;
141
140
  const a_store = Atomics.store;
142
141
  const a_load = Atomics.load;
143
142
  const nativeWaitU32 = getProcessWorkerNativeWaitU32();
@@ -261,11 +260,23 @@ export const workerMainLoop = async (startupData) => {
261
260
  }
262
261
  : pauseUntil;
263
262
  const flushBeforeClaim = steal !== undefined;
263
+ /** Leave the dispatch loop and acknowledge shutdown. */
264
+ const stopLoop = () => {
265
+ a_store(stopView, 0, WORKER_STOP.acknowledged);
266
+ a_store(rxStatus, 0, 0);
267
+ try {
268
+ port1.close?.();
269
+ port2.close?.();
270
+ }
271
+ catch { }
272
+ };
264
273
  const loop = () => {
265
274
  isInMacro = false;
266
275
  let progressed = true;
267
276
  let awaiting = 0;
268
277
  while (true) {
278
+ if (stopView[0] !== WORKER_STOP.running)
279
+ return stopLoop();
269
280
  if (flushBeforeClaim) {
270
281
  // Stealing only. Flush finished work before taking more on: a computed
271
282
  // response should not wait behind a claim, and that claim can block on