watr 4.6.9 → 4.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/watr.min.js CHANGED
@@ -1,6 +1,6 @@
1
- var De=Object.defineProperty;var Re=(t,e)=>{for(var r in e)De(t,r,{get:e[r],enumerable:!0})};var bt={};Re(bt,{f32:()=>ct,f64:()=>ft,i16:()=>He,i32:()=>P,i64:()=>nt,i8:()=>Ge,uleb:()=>h,uleb5:()=>je,v128:()=>Dt});var B=(t,e=B.loc)=>{if(e!=null&&B.src){let r=1,i=1;for(let s=0;s<e&&s<B.src.length;s++)B.src[s]===`
2
- `?(r++,i=1):i++;t+=` at ${r}:${i}`}throw Error(t)},se=/^_|_$|[^\da-f]_|_[^\da-f]/i,ne=/^[+-]?(?:0x[\da-f]+|\d+)$/i,We=new TextEncoder,Pe=new TextDecoder("utf-8",{fatal:!0,ignoreBOM:!0}),ie={n:10,r:13,t:9,'"':34,"'":39,"\\":92},At=t=>{let e=[],r=1,i,s,n="",l=()=>(n&&e.push(...We.encode(n)),n="");for(;r<t.length-1;)s=t[r++],i=null,s==="\\"&&(t[r]==="u"?(r++,r++,s=String.fromCodePoint(parseInt(t.slice(r,r=t.indexOf("}",r)),16)),r++):ie[t[r]]?i=ie[t[r++]]:isNaN(i=parseInt(t[r]+t[r+1],16))?s+=t[r]:(r++,r++)),i!=null?(l(),e.push(i)):n+=s;return l(),e.valueOf=()=>t,e},le=t=>Pe.decode(new Uint8Array(At(t))),G=t=>Array.isArray(t)?t.map(G):t,S=(t,e,r,i)=>{if(e(t,r,i),Array.isArray(t))for(let s=0;s<t.length;s++)S(t[s],e,t,s)},U=(t,e,r,i)=>{if(Array.isArray(t))for(let n=0;n<t.length;n++)U(t[n],e,t,n);let s=e(t,r,i);return s!==void 0&&r&&(r[i]=s),s!==void 0?s:t};var h=(t,e=[])=>{if(t==null)return e;if(typeof t=="string"&&(t=/[_x]/i.test(t)?BigInt(t.replaceAll("_","")):P.parse(t)),typeof t=="bigint"){for(;;){let i=Number(t&0x7Fn);if(t>>=7n,t===0n){e.push(i);break}e.push(i|128)}return e}let r=t&127;return t>>>=7,t===0?(e.push(r),e):(e.push(r|128),h(t,e))};function je(t){let e=[];for(let r=0;r<5;r++){let i=t&127;t>>>=7,r<4&&(i|=128),e.push(i)}return e}function P(t,e=[]){for(typeof t=="string"&&(t=P.parse(t));;){let r=Number(t&127);if(t>>=7,t===0&&!(r&64)||t===-1&&r&64){e.push(r);break}e.push(r|128)}return e}var oe=t=>!se.test(t)&&ne.test(t=t.replaceAll("_",""))?t:B(`Bad int ${t}`),Ge=P,He=P;P.parse=t=>(t=parseInt(oe(t)),(t<-2147483648||t>4294967295)&&B("i32 constant out of range"),t);function nt(t,e=[]){for(typeof t=="string"?t=nt.parse(t):typeof t=="number"&&(t=BigInt(t)),typeof t=="bigint"&&t>0x7fffffffffffffffn&&(t=t-0x10000000000000000n);;){let r=Number(t&0x7Fn);if(t>>=7n,t===0n&&!(r&64)||t===-1n&&r&64){e.push(r);break}e.push(r|128)}return e}var _t=new ArrayBuffer(8),X=new Uint8Array(_t),Ve=new Int32Array(_t),Ye=new Float32Array(_t),Xe=new Float64Array(_t),Lt=new BigInt64Array(_t);nt.parse=t=>{t=oe(t);let e=t[0]==="-",r=e||t[0]==="+"?t.slice(1):t,i;if(r[0]==="0"&&(r[1]==="x"||r[1]==="X")){let n=r.slice(2).replace(/^0+/,"")||"0";i=e?"8000000000000000":"ffffffffffffffff",(n.length>16||n.length===16&&n.toLowerCase()>i)&&B("i64 constant out of range")}else{let n=r.replace(/^0+/,"")||"0";i=e?"9223372036854775808":"18446744073709551615",(n.length>i.length||n.length===i.length&&n>i)&&B("i64 constant out of range")}let s=BigInt(r);return e&&(s=0n-s),Lt[0]=s,Lt[0]};var Ze=2147483648,Ke=2139095040,ae=4194304;function ct(t,e,r){if(typeof t=="string"&&(r=t.indexOf("nan"))>=0){if(t[r+3]===":"){let i=t.slice(r+4);e=i==="canonical"||i==="arithmetic"?ae:P.parse(i)}else e=ae;e=(e|Ke)>>>0,t[0]==="-"&&(e=(e|Ze)>>>0),Ve[0]=e|0}else e=typeof t=="string"?ct.parse(t):t,Ye[0]=e;return[X[0],X[1],X[2],X[3]]}var Qe=0x8000000000000000n,Je=0x7ff0000000000000n,fe=0x8000000000000n;function ft(t,e,r){if(typeof t=="string"&&(r=t.indexOf("nan"))>=0){if(t[r+3]===":"){let i=t.slice(r+4);e=i==="canonical"||i==="arithmetic"?fe:nt.parse(i)}else e=fe;e|=Je,t[0]==="-"&&(e|=Qe),Lt[0]=e}else e=typeof t=="string"?ft.parse(t):t,Xe[0]=e;return[X[0],X[1],X[2],X[3],X[4],X[5],X[6],X[7]]}ft.parse=(t,e=Number.MAX_VALUE)=>{t=t.replaceAll("_","");let r=1;if(t[0]==="-"?(r=-1,t=t.slice(1)):t[0]==="+"&&(t=t.slice(1)),t[1]==="x"){let[i,s="0"]=t.split(/p/i),[n,l=""]=i.split("."),a=l.length??0,o=0;for(let u=n.length-1;u>=2;u--){let p=parseInt(n[u],16);o+=p*16**(n.length-1-u)}let f=l?parseInt("0x"+l)/16**a:0;s=parseInt(s,10);let c=r*(o+f)*2**s;return c=Math.max(-e,Math.min(e,c)),c}return t.includes("nan")?r<0?NaN:NaN:t.includes("inf")?r*(1/0):r*parseFloat(t)};ct.parse=t=>ft.parse(t,34028234663852886e22);var Dt=t=>{let e=BigInt(typeof t=="string"?t.replaceAll("_",""):t),r=new Uint8Array(16);for(let i=0;i<16;i++)r[i]=Number(e&0xffn),e>>=8n;return[...r]};var ht=["unreachable","nop","block block","loop block","if block","else null","then null",,"throw tagidx",,"throw_ref","end end","br labelidx","br_if labelidx","br_table br_table","return","call funcidx","call_indirect call_indirect","return_call funcidx","return_call_indirect call_indirect","call_ref typeidx","return_call_ref typeidx",,,,,"drop","select select","",,,"try_table try_table","local.get localidx","local.set localidx","local.tee localidx","global.get globalidx","global.set globalidx","table.get tableidx","table.set tableidx",,"i32.load memarg","i64.load memarg","f32.load memarg","f64.load memarg","i32.load8_s memarg","i32.load8_u memarg","i32.load16_s memarg","i32.load16_u memarg","i64.load8_s memarg","i64.load8_u memarg","i64.load16_s memarg","i64.load16_u memarg","i64.load32_s memarg","i64.load32_u memarg","i32.store memarg","i64.store memarg","f32.store memarg","f64.store memarg","i32.store8 memarg","i32.store16 memarg","i64.store8 memarg","i64.store16 memarg","i64.store32 memarg","memory.size opt_memory","memory.grow opt_memory","i32.const i32","i64.const i64","f32.const f32","f64.const f64","i32.eqz","i32.eq","i32.ne","i32.lt_s","i32.lt_u","i32.gt_s","i32.gt_u","i32.le_s","i32.le_u","i32.ge_s","i32.ge_u","i64.eqz","i64.eq","i64.ne","i64.lt_s","i64.lt_u","i64.gt_s","i64.gt_u","i64.le_s","i64.le_u","i64.ge_s","i64.ge_u","f32.eq","f32.ne","f32.lt","f32.gt","f32.le","f32.ge","f64.eq","f64.ne","f64.lt","f64.gt","f64.le","f64.ge","i32.clz","i32.ctz","i32.popcnt","i32.add","i32.sub","i32.mul","i32.div_s","i32.div_u","i32.rem_s","i32.rem_u","i32.and","i32.or","i32.xor","i32.shl","i32.shr_s","i32.shr_u","i32.rotl","i32.rotr","i64.clz","i64.ctz","i64.popcnt","i64.add","i64.sub","i64.mul","i64.div_s","i64.div_u","i64.rem_s","i64.rem_u","i64.and","i64.or","i64.xor","i64.shl","i64.shr_s","i64.shr_u","i64.rotl","i64.rotr","f32.abs","f32.neg","f32.ceil","f32.floor","f32.trunc","f32.nearest","f32.sqrt","f32.add","f32.sub","f32.mul","f32.div","f32.min","f32.max","f32.copysign","f64.abs","f64.neg","f64.ceil","f64.floor","f64.trunc","f64.nearest","f64.sqrt","f64.add","f64.sub","f64.mul","f64.div","f64.min","f64.max","f64.copysign","i32.wrap_i64","i32.trunc_f32_s","i32.trunc_f32_u","i32.trunc_f64_s","i32.trunc_f64_u","i64.extend_i32_s","i64.extend_i32_u","i64.trunc_f32_s","i64.trunc_f32_u","i64.trunc_f64_s","i64.trunc_f64_u","f32.convert_i32_s","f32.convert_i32_u","f32.convert_i64_s","f32.convert_i64_u","f32.demote_f64","f64.convert_i32_s","f64.convert_i32_u","f64.convert_i64_s","f64.convert_i64_u","f64.promote_f32","i32.reinterpret_f32","i64.reinterpret_f64","f32.reinterpret_i32","f64.reinterpret_i64","i32.extend8_s","i32.extend16_s","i64.extend8_s","i64.extend16_s","i64.extend32_s",,,,,,,,,,,,"ref.null ref_null","ref.is_null","ref.func funcidx","ref.eq","ref.as_non_null","br_on_null labelidx","br_on_non_null labelidx",,,,,,,,,,"cont.new typeidx","cont.bind cont_bind","suspend tagidx","resume resume","resume_throw resume_throw","resume_throw_ref resume_throw_ref","switch switch_cont",,,,,,,,,,,,,,,,,,,,,["struct.new typeidx","struct.new_default typeidx","struct.get typeidx_field","struct.get_s typeidx_field","struct.get_u typeidx_field","struct.set typeidx_field","array.new typeidx","array.new_default typeidx","array.new_fixed typeidx_multi","array.new_data typeidx_dataidx","array.new_elem typeidx_elemidx","array.get typeidx","array.get_s typeidx","array.get_u typeidx","array.set typeidx","array.len","array.fill typeidx","array.copy typeidx_typeidx","array.init_data typeidx_dataidx","array.init_elem typeidx_elemidx","ref.test reftype","ref.test_null reftype","ref.cast reftype","ref.cast_null reftype","br_on_cast reftype2","br_on_cast_fail reftype2","any.convert_extern","extern.convert_any","ref.i31","i31.get_s","i31.get_u",,"struct.new_desc typeidx","struct.new_default_desc typeidx","ref.get_desc typeidx","ref.cast_desc_eq reftype",,"br_on_cast_desc_eq reftype2","br_on_cast_desc_eq_fail reftype2",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,"string.new_utf8 memoryidx?","string.new_wtf16 memoryidx?","string.const stringidx","string.measure_utf8","string.measure_wtf8","string.measure_wtf16","string.encode_utf8 memoryidx?","string.encode_wtf16 memoryidx?","string.concat","string.eq","string.is_usv_sequence","string.new_lossy_utf8 memoryidx?","string.new_wtf8 memoryidx?","string.encode_lossy_utf8 memoryidx?","string.encode_wtf8 memoryidx?",,"string.as_wtf8","stringview_wtf8.advance","stringview_wtf8.encode_utf8 memoryidx?","stringview_wtf8.slice","stringview_wtf8.encode_lossy_utf8 memoryidx?","stringview_wtf8.encode_wtf8 memoryidx?",,,"string.as_wtf16","stringview_wtf16.length","stringview_wtf16.get_codeunit","stringview_wtf16.encode memoryidx?","stringview_wtf16.slice",,,,"string.as_iter","stringview_iter.next","stringview_iter.advance","stringview_iter.rewind","stringview_iter.slice",,,,,,,,,,,,"string.new_utf8_array","string.new_wtf16_array","string.encode_utf8_array","string.encode_wtf16_array","string.new_lossy_utf8_array","string.new_wtf8_array","string.encode_lossy_utf8_array","string.encode_wtf8_array"],["i32.trunc_sat_f32_s","i32.trunc_sat_f32_u","i32.trunc_sat_f64_s","i32.trunc_sat_f64_u","i64.trunc_sat_f32_s","i64.trunc_sat_f32_u","i64.trunc_sat_f64_s","i64.trunc_sat_f64_u","memory.init dataidx_memoryidx","data.drop dataidx","memory.copy memoryidx_memoryidx","memory.fill memoryidx?","table.init reversed","elem.drop elemidx","table.copy tableidx_tableidx","table.grow tableidx","table.size tableidx","table.fill tableidx",,"i64.add128","i64.sub128","i64.mul_wide_s","i64.mul_wide_u",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,"f32.sqrt_ceil","f32.add_ceil","f32.sub_ceil","f32.mul_ceil","f32.div_ceil","f64.sqrt_ceil","f64.add_ceil","f64.sub_ceil","f64.mul_ceil","f64.div_ceil","f32.convert_ceil_i32_s","f32.convert_ceil_i32_u","f32.convert_ceil_i64_s","f32.convert_ceil_i64_u","f32.demote_ceil_f64","f64.convert_ceil_i32_s","f64.convert_ceil_i32_u","f64.convert_ceil_i64_s","f64.convert_ceil_i64_u","f64.promote_ceil_f32","f32.sqrt_floor","f32.add_floor","f32.sub_floor","f32.mul_floor","f32.div_floor","f64.sqrt_floor","f64.add_floor","f64.sub_floor","f64.mul_floor","f64.div_floor","f32.convert_floor_i32_s","f32.convert_floor_i32_u","f32.convert_floor_i64_s","f32.convert_floor_i64_u","f32.demote_floor_f64","f64.convert_floor_i32_s","f64.convert_floor_i32_u","f64.convert_floor_i64_s","f64.convert_floor_i64_u","f64.promote_floor_f32","f32.sqrt_trunc","f32.add_trunc","f32.sub_trunc","f32.mul_trunc","f32.div_trunc","f64.sqrt_trunc","f64.add_trunc","f64.sub_trunc","f64.mul_trunc","f64.div_trunc","f32.convert_trunc_i32_s","f32.convert_trunc_i32_u","f32.convert_trunc_i64_s","f32.convert_trunc_i64_u","f32.demote_trunc_f64","f64.convert_trunc_i32_s","f64.convert_trunc_i32_u","f64.convert_trunc_i64_s","f64.convert_trunc_i64_u","f64.promote_trunc_f32"],["v128.load memarg","v128.load8x8_s memarg","v128.load8x8_u memarg","v128.load16x4_s memarg","v128.load16x4_u memarg","v128.load32x2_s memarg","v128.load32x2_u memarg","v128.load8_splat memarg","v128.load16_splat memarg","v128.load32_splat memarg","v128.load64_splat memarg","v128.store memarg","v128.const v128const","i8x16.shuffle shuffle","i8x16.swizzle","i8x16.splat","i16x8.splat","i32x4.splat","i64x2.splat","f32x4.splat","f64x2.splat","i8x16.extract_lane_s laneidx","i8x16.extract_lane_u laneidx","i8x16.replace_lane laneidx","i16x8.extract_lane_s laneidx","i16x8.extract_lane_u laneidx","i16x8.replace_lane laneidx","i32x4.extract_lane laneidx","i32x4.replace_lane laneidx","i64x2.extract_lane laneidx","i64x2.replace_lane laneidx","f32x4.extract_lane laneidx","f32x4.replace_lane laneidx","f64x2.extract_lane laneidx","f64x2.replace_lane laneidx","i8x16.eq","i8x16.ne","i8x16.lt_s","i8x16.lt_u","i8x16.gt_s","i8x16.gt_u","i8x16.le_s","i8x16.le_u","i8x16.ge_s","i8x16.ge_u","i16x8.eq","i16x8.ne","i16x8.lt_s","i16x8.lt_u","i16x8.gt_s","i16x8.gt_u","i16x8.le_s","i16x8.le_u","i16x8.ge_s","i16x8.ge_u","i32x4.eq","i32x4.ne","i32x4.lt_s","i32x4.lt_u","i32x4.gt_s","i32x4.gt_u","i32x4.le_s","i32x4.le_u","i32x4.ge_s","i32x4.ge_u","f32x4.eq","f32x4.ne","f32x4.lt","f32x4.gt","f32x4.le","f32x4.ge","f64x2.eq","f64x2.ne","f64x2.lt","f64x2.gt","f64x2.le","f64x2.ge","v128.not","v128.and","v128.andnot","v128.or","v128.xor","v128.bitselect","v128.any_true","v128.load8_lane memlane","v128.load16_lane memlane","v128.load32_lane memlane","v128.load64_lane memlane","v128.store8_lane memlane","v128.store16_lane memlane","v128.store32_lane memlane","v128.store64_lane memlane","v128.load32_zero memarg","v128.load64_zero memarg","f32x4.demote_f64x2_zero","f64x2.promote_low_f32x4","i8x16.abs","i8x16.neg","i8x16.popcnt","i8x16.all_true","i8x16.bitmask","i8x16.narrow_i16x8_s","i8x16.narrow_i16x8_u","f32x4.ceil","f32x4.floor","f32x4.trunc","f32x4.nearest","i8x16.shl","i8x16.shr_s","i8x16.shr_u","i8x16.add","i8x16.add_sat_s","i8x16.add_sat_u","i8x16.sub","i8x16.sub_sat_s","i8x16.sub_sat_u","f64x2.ceil","f64x2.floor","i8x16.min_s","i8x16.min_u","i8x16.max_s","i8x16.max_u","f64x2.trunc","i8x16.avgr_u","i16x8.extadd_pairwise_i8x16_s","i16x8.extadd_pairwise_i8x16_u","i32x4.extadd_pairwise_i16x8_s","i32x4.extadd_pairwise_i16x8_u","i16x8.abs","i16x8.neg","i16x8.q15mulr_sat_s","i16x8.all_true","i16x8.bitmask","i16x8.narrow_i32x4_s","i16x8.narrow_i32x4_u","i16x8.extend_low_i8x16_s","i16x8.extend_high_i8x16_s","i16x8.extend_low_i8x16_u","i16x8.extend_high_i8x16_u","i16x8.shl","i16x8.shr_s","i16x8.shr_u","i16x8.add","i16x8.add_sat_s","i16x8.add_sat_u","i16x8.sub","i16x8.sub_sat_s","i16x8.sub_sat_u","f64x2.nearest","i16x8.mul","i16x8.min_s","i16x8.min_u","i16x8.max_s","i16x8.max_u",,"i16x8.avgr_u","i16x8.extmul_low_i8x16_s","i16x8.extmul_high_i8x16_s","i16x8.extmul_low_i8x16_u","i16x8.extmul_high_i8x16_u","i32x4.abs","i32x4.neg",,"i32x4.all_true","i32x4.bitmask",,,"i32x4.extend_low_i16x8_s","i32x4.extend_high_i16x8_s","i32x4.extend_low_i16x8_u","i32x4.extend_high_i16x8_u","i32x4.shl","i32x4.shr_s","i32x4.shr_u","i32x4.add",,,"i32x4.sub",,,,"i32x4.mul","i32x4.min_s","i32x4.min_u","i32x4.max_s","i32x4.max_u","i32x4.dot_i16x8_s",,"i32x4.extmul_low_i16x8_s","i32x4.extmul_high_i16x8_s","i32x4.extmul_low_i16x8_u","i32x4.extmul_high_i16x8_u","i64x2.abs","i64x2.neg",,"i64x2.all_true","i64x2.bitmask",,,"i64x2.extend_low_i32x4_s","i64x2.extend_high_i32x4_s","i64x2.extend_low_i32x4_u","i64x2.extend_high_i32x4_u","i64x2.shl","i64x2.shr_s","i64x2.shr_u","i64x2.add",,,"i64x2.sub",,,,"i64x2.mul","i64x2.eq","i64x2.ne","i64x2.lt_s","i64x2.gt_s","i64x2.le_s","i64x2.ge_s","i64x2.extmul_low_i32x4_s","i64x2.extmul_high_i32x4_s","i64x2.extmul_low_i32x4_u","i64x2.extmul_high_i32x4_u","f32x4.abs","f32x4.neg",,"f32x4.sqrt","f32x4.add","f32x4.sub","f32x4.mul","f32x4.div","f32x4.min","f32x4.max","f32x4.pmin","f32x4.pmax","f64x2.abs","f64x2.neg",,"f64x2.sqrt","f64x2.add","f64x2.sub","f64x2.mul","f64x2.div","f64x2.min","f64x2.max","f64x2.pmin","f64x2.pmax","i32x4.trunc_sat_f32x4_s","i32x4.trunc_sat_f32x4_u","f32x4.convert_i32x4_s","f32x4.convert_i32x4_u","i32x4.trunc_sat_f64x2_s_zero","i32x4.trunc_sat_f64x2_u_zero","f64x2.convert_low_i32x4_s","f64x2.convert_low_i32x4_u","i8x16.relaxed_swizzle","i32x4.relaxed_trunc_f32x4_s","i32x4.relaxed_trunc_f32x4_u","i32x4.relaxed_trunc_f64x2_s_zero","i32x4.relaxed_trunc_f64x2_u_zero","f32x4.relaxed_madd","f32x4.relaxed_nmadd","f64x2.relaxed_madd","f64x2.relaxed_nmadd","i8x16.relaxed_laneselect","i16x8.relaxed_laneselect","i32x4.relaxed_laneselect","i64x2.relaxed_laneselect","f32x4.relaxed_min","f32x4.relaxed_max","f64x2.relaxed_min","f64x2.relaxed_max","i16x8.relaxed_q15mulr_s","i16x8.relaxed_dot_i8x16_i7x16_s","i32x4.relaxed_dot_i8x16_i7x16_add_s"],["memory.atomic.notify memarg","memory.atomic.wait32 memarg","memory.atomic.wait64 memarg","atomic.fence opt_memory",,,,,,,,,,,,,"i32.atomic.load memarg","i64.atomic.load memarg","i32.atomic.load8_u memarg","i32.atomic.load16_u memarg","i64.atomic.load8_u memarg","i64.atomic.load16_u memarg","i64.atomic.load32_u memarg","i32.atomic.store memarg","i64.atomic.store memarg","i32.atomic.store8 memarg","i32.atomic.store16 memarg","i64.atomic.store8 memarg","i64.atomic.store16 memarg","i64.atomic.store32 memarg","i32.atomic.rmw.add memarg","i64.atomic.rmw.add memarg","i32.atomic.rmw8.add_u memarg","i32.atomic.rmw16.add_u memarg","i64.atomic.rmw8.add_u memarg","i64.atomic.rmw16.add_u memarg","i64.atomic.rmw32.add_u memarg","i32.atomic.rmw.sub memarg","i64.atomic.rmw.sub memarg","i32.atomic.rmw8.sub_u memarg","i32.atomic.rmw16.sub_u memarg","i64.atomic.rmw8.sub_u memarg","i64.atomic.rmw16.sub_u memarg","i64.atomic.rmw32.sub_u memarg","i32.atomic.rmw.and memarg","i64.atomic.rmw.and memarg","i32.atomic.rmw8.and_u memarg","i32.atomic.rmw16.and_u memarg","i64.atomic.rmw8.and_u memarg","i64.atomic.rmw16.and_u memarg","i64.atomic.rmw32.and_u memarg","i32.atomic.rmw.or memarg","i64.atomic.rmw.or memarg","i32.atomic.rmw8.or_u memarg","i32.atomic.rmw16.or_u memarg","i64.atomic.rmw8.or_u memarg","i64.atomic.rmw16.or_u memarg","i64.atomic.rmw32.or_u memarg","i32.atomic.rmw.xor memarg","i64.atomic.rmw.xor memarg","i32.atomic.rmw8.xor_u memarg","i32.atomic.rmw16.xor_u memarg","i64.atomic.rmw8.xor_u memarg","i64.atomic.rmw16.xor_u memarg","i64.atomic.rmw32.xor_u memarg","i32.atomic.rmw.xchg memarg","i64.atomic.rmw.xchg memarg","i32.atomic.rmw8.xchg_u memarg","i32.atomic.rmw16.xchg_u memarg","i64.atomic.rmw8.xchg_u memarg","i64.atomic.rmw16.xchg_u memarg","i64.atomic.rmw32.xchg_u memarg","i32.atomic.rmw.cmpxchg memarg","i64.atomic.rmw.cmpxchg memarg","i32.atomic.rmw8.cmpxchg_u memarg","i32.atomic.rmw16.cmpxchg_u memarg","i64.atomic.rmw8.cmpxchg_u memarg","i64.atomic.rmw16.cmpxchg_u memarg","i64.atomic.rmw32.cmpxchg_u memarg"]],xt=t=>{if(typeof t!="string")return null;let e=t.indexOf(".");if(e<0)return null;let r=t.slice(0,e),i=r==="i32"||r==="i64"||r==="f32"||r==="f64";return i&&/^(eqz?|ne|[lg][te])(_[su])?$/.test(t.slice(e+1))?"i32":i||r==="v128"?r:t==="memory.size"||t==="memory.grow"?"i32":null},R={custom:0,type:1,import:2,func:3,table:4,memory:5,tag:13,strings:14,global:6,export:7,start:8,elem:9,datacount:12,code:10,data:11},W={i8:120,i16:119,i32:127,i64:126,f32:125,f64:124,void:64,v128:123,exn:105,noexn:116,nofunc:115,noextern:114,none:113,func:112,extern:111,any:110,eq:109,i31:108,struct:107,array:106,data:107,cont:104,nocont:117,string:103,stringview_wtf8:102,stringview_wtf16:96,stringview_iter:97,nullfuncref:115,nullexternref:114,nullexnref:116,nullref:113,funcref:112,externref:111,exnref:105,anyref:110,eqref:109,i31ref:108,structref:107,arrayref:106,contref:104,nocontref:117,stringref:103,ref:100,refnull:99,sub:80,subfinal:79,rec:78},lt={func:96,struct:95,array:94,cont:93,sub:80,subfinal:79,rec:78},Rt={func:0,table:1,memory:2,global:3,tag:4};var et=t=>{let e=0,r=[],i="",s=0,n=0,l=()=>i&&(r.push(i),i=""),a=o=>{r.loc=o;for(let f,c,u;e<t.length;)if(f=t.charCodeAt(e),s===34)i+=t[e++],f===92?i+=t[e++]:f===34&&(l(),s=0);else if(s>59)f===40&&t.charCodeAt(e+1)===59?(s++,i+=t[e++]+t[e++]):f===59&&t.charCodeAt(e+1)===41?(i+=t[e++]+t[e++],--s===59&&(l(),s=0)):i+=t[e++];else if(s<0)f===10||f===13?(i+=t[e++],l(),s=0):s===-2&&f===41?(l(),s=0):i+=t[e++];else if(f===34)i!=="$"&&l(),s=34,i+=t[e++];else if(f===40&&t.charCodeAt(e+1)===59)l(),s=60,i=t[e++]+t[e++];else if(f===59&&t.charCodeAt(e+1)===59)l(),s=t.indexOf(`
3
- `,e)<0?-2:-1,i=t[e++]+t[e++];else if(f===40&&t.charCodeAt(e+1)===64)l(),u=e,e+=2,i="@",n++,(c=r).push(r=[]),a(u),r=c;else if(f===40)l(),u=e++,n++,(c=r).push(r=[]),a(u),r=c;else{if(f===41)return l(),e++,n--;f<=32?(l(),e++):i+=t[e++]}s<0&&l(),l()};return a(0),s===34&&B("Unclosed quote",e),s>59&&B("Unclosed block comment",e),n>0&&B("Unclosed parenthesis",e),e<t.length&&B("Unexpected closing parenthesis",e),r.length>1?r:r[0]||[]};var ye=t=>typeof t=="string"&&(t[0]===";"||t[1]===";")||Array.isArray(t)&&t[0]?.[0]==="@"&&t[0]!=="@custom"&&!t[0]?.startsWith?.("@metadata.code."),pe=(t,e)=>typeof t=="string"?t[0]==="$"&&t[1]==='"'?t.includes("\\")?"$"+le(t.slice(1)):"$"+t.slice(2,-1):t[0]==='"'?At(t):t:Array.isArray(t)?(e=t.filter(r=>!ye(r)).map(pe),e.loc=t.loc,e.length===1&&e[0]?.[0]==="module"?e[0]:e):t;function yt(t){typeof t=="string"?(B.src=t,t=et(t)||[]):B.src="",B.loc=0,t=ye(t)?[]:pe(t)??[];let e=0;if(t[0]==="module"?(e++,H(t[e])&&e++):typeof t[0]=="string"&&(t=[t]),t[e]==="binary")return Uint8Array.from(t.slice(++e).flat());if(t[e]==="quote")return yt(t.slice(++e).map(u=>u.valueOf().slice(1,-1)).flat().join(""));t=t.flatMap((u,p)=>{if(p<e||!Array.isArray(u)||u[0]!=="import")return[u];let[,y,...g]=u;if(!g.some(_=>Array.isArray(_)&&_[0]==="item"))return[u];if(Array.isArray(g.at(-1))&&g.at(-1)[0]!=="item"){let _=g.at(-1);return g.slice(0,-1).filter(b=>b[0]==="item").map(([,b])=>["import",y,b,_])}return g.filter(_=>_[0]==="item").map(([,_,b])=>["import",y,_,b])});let r=[];for(let u in R)(r[R[u]]=r[u]=[]).name=u;r.metadata={},t.slice(e).filter(u=>{if(!Array.isArray(u)){let g=B.loc,m=B.src,_;for(;(g=m.indexOf(u,g))>=0;){if(_=m.charCodeAt(g-1),g>0&&(_>47&&_<58||_>64&&_<91||_>96&&_<123||_===95||_===36)){g++;continue}if(_=m.charCodeAt(g+u.length),_>47&&_<58||_>64&&_<91||_>96&&_<123||_===95){g++;continue}break}g>=0&&(B.loc=g),B(`Unexpected token ${u}`)}let[p,...y]=u;if(B.loc=u.loc,p==="@custom")r.custom.push(y);else if(p==="rec")for(let g=0;g<y.length;g++){let[,...m]=y[g];Wt(m,r.type);let _=[];for(;m[0]?.[0]==="descriptor"||m[0]?.[0]==="describes";)_.push(m.shift());(m=ce(m,r)).push(g?!0:[r.type.length,y.length]),_.length&&(m.desc=m.desc?[..._,...m.desc]:_),r.type.push(m)}else if(p==="type"){Wt(y,r.type);let g=[];for(;y[0]?.[0]==="descriptor"||y[0]?.[0]==="describes";)g.push(y.shift());let m=ce(y,r);g.length&&(m.desc=m.desc?[...g,...m.desc]:g),r.type.push(m)}else if(p==="start"||p==="export")r[p].push(y);else return!0}).forEach(u=>{let[p,...y]=u;B.loc=u.loc;let g;p==="import"&&([p,...y]=(g=y).pop());let m=r[p];for(m||B(`Unknown section ${p}`),Wt(y,m);y[0]?.[0]==="export";)r.export.push([y.shift()[1],[p,m?.length]]);if(y[0]?.[0]==="import"&&([,...g]=y.shift()),p==="table"){let _=y[0]==="i64",b=_?1:0;if(y[b+1]?.[0]==="elem"){let[v,[,...A]]=[y[b],y[b+1]];y=_?["i64",A.length,A.length,v]:[A.length,A.length,v],r.elem.push([["table",m.length],["offset",[_?"i64.const":"i32.const",_?0n:0]],v,...A])}}else if(p==="memory"){let _=y[0]==="i64",b=_?1:0;if(y[b]?.[0]==="data"){let v=y.find(I=>Array.isArray(I)&&I[0]==="pagesize")?.[1]??65536,[,...A]=y.splice(b,1)[0],z=""+Math.ceil(A.reduce((I,M)=>I+M.length,0)/v);r.data.push([["memory",m.length],[_?"i64.const":"i32.const",_?0n:0],...A]),y=_?["i64",z,z]:[z,z]}}else if(p==="func"){let[_,b,v]=Nt(y,r);_??=Mt(b,v,r),!g&&r.code.push([[_,b,v],...st(y,r)]),y=[["type",_]]}else if(p==="tag"){let[_,b]=Nt(y,r);_??=Mt(b,[],r),y=[["type",_]]}g&&(r.import.push([...g,[p,...y]]),y=null),m.push(y)});let i=(u,p=!0)=>{let y=r[u].filter(Boolean).map(g=>me[u](g,r)).filter(Boolean);return u===R.custom?y.flatMap(g=>[u,...L(g)]):y.length?[u,...L(p?L(y):y.flat())]:[]},s=()=>{let u=[];for(let p in r.metadata){let y=L(At(`"metadata.code.${p}"`)),g=L(r.metadata[p].map(([m,_])=>[...h(m),...L(_.map(([b,v])=>[...h(b),...L(v)]))]));u.push(0,...L([...y,...g]))}return u},n=i(R.global),l=i(R.elem),a=i(R.code),o=s(),f=i(R.data),c=r.strings.length?[R.strings,...L([0,...L(r.strings.map(u=>L(u)))])]:[];return Uint8Array.from([0,97,115,109,1,0,0,0,...i(R.custom),...i(R.type),...i(R.import),...i(R.func),...i(R.table),...i(R.memory),...i(R.tag),...c,...n,...i(R.export),...i(R.start,!1),...l,...i(R.datacount,!1),...a,...o,...f])}var Z=t=>t?.[0]==="$"||!isNaN(t),H=t=>t?.[0]==="$",Pt=t=>t?.[0]==="a"||t?.[0]==="o";function st(t,e){let r=[];for(t=[...t];t.length;){let i=t.shift();if(typeof i=="string")if(r.push(i),i==="block"||i==="if"||i==="loop")H(t[0])&&r.push(t.shift()),r.push(wt(t,e));else if(i==="else"||i==="end")H(t[0])&&t.shift();else if(i==="select")r.push(Bt(t)[1]);else if(i.endsWith("call_indirect")){let s=Z(t[0])?t.shift():0,[n,l,a]=Nt(t,e);r.push(s,["type",n??Mt(l,a,e)])}else i==="table.init"?r.push(Z(t[1])?t.shift():0,t.shift()):i==="table.copy"||i==="memory.copy"?r.push(Z(t[0])?t.shift():0,Z(t[0])?t.shift():0):i.startsWith("table.")?r.push(Z(t[0])?t.shift():0):i==="memory.init"?(r.push(...Z(t[1])?[t.shift(),t.shift()].reverse():[t.shift(),0]),e.datacount&&(e.datacount[0]=!0)):i==="data.drop"||i==="array.new_data"||i==="array.init_data"?(i==="data.drop"&&r.push(t.shift()),e.datacount&&(e.datacount[0]=!0)):(i.startsWith("memory.")||i.endsWith("load")||i.endsWith("store"))&&Z(t[0])&&r.push(t.shift());else if(Array.isArray(i)){let s=i[0];if(i.loc!=null&&(B.loc=i.loc),s?.startsWith?.("@metadata.code.")){let l=s.slice(15);r.push(["@metadata",l,i[1]]);continue}if(typeof s!="string"||!Array.isArray(ht[s])){r.push(i);continue}let n=i.slice(1);if(s==="block"||s==="loop")r.push(s),H(n[0])&&r.push(n.shift()),r.push(wt(n,e),...st(n,e),"end");else if(s==="if"){let l=[],a=[];n.at(-1)?.[0]==="else"&&(a=st(n.pop().slice(1),e)),n.at(-1)?.[0]==="then"&&(l=st(n.pop().slice(1),e));let o=[s];H(n[0])&&o.push(n.shift()),o.push(wt(n,e)),r.push(...st(n,e),...o,...l),a.length&&r.push("else",...a),r.push("end")}else if(s==="try_table"){for(r.push(s),H(n[0])&&r.push(n.shift()),r.push(wt(n,e));n[0]?.[0]==="catch"||n[0]?.[0]==="catch_ref"||n[0]?.[0]==="catch_all"||n[0]?.[0]==="catch_all_ref";)r.push(n.shift());r.push(...st(n,e),"end")}else if(s==="ref.test"||s==="ref.cast"){let l=n[0];(!Array.isArray(l)||l[1]==="null"||l[0]!=="ref")&&(s+="_null"),r.push(...st(n.slice(1),e),s,l),t.unshift(...r.splice(r.length-2))}else{let l=[];for(;n.length&&(!Array.isArray(n[0])||n[0].valueOf!==Array.prototype.valueOf||"type,param,result,ref,exact,on".includes(n[0][0]));)l.push(n.shift());r.push(...st(n,e),s,...l),t.unshift(...r.splice(r.length-1-l.length))}}else r.push(i)}return r}var Mt=(t,e,r,i="$"+t+">"+e)=>(r.type[i]??=r.type.push(["func",[t,e]])-1,i),jt=(t,e)=>{let r=[];for(;t[0]?.[0]===e;){let[,...i]=t.shift(),s=H(i[0])&&i.shift();s&&(s in r?(()=>{throw Error(`Duplicate ${e} ${s}`)})():r[s]=r.length),r.push(...i)}return r},Bt=t=>{let e=jt(t,"param"),r=jt(t,"result");if(t[0]?.[0]==="param")throw Error("Unexpected param");return[e,r]},Nt=(t,e)=>{if(t[0]?.[0]!=="type")return[,...Bt(t)];let[,r]=t.shift(),[i,s]=Bt(t),n=e.type[typeof r=="string"&&isNaN(r)?e.type[r]:+r];if(!n)throw Error(`Unknown type ${r}`);if((i.length||s.length)&&n[1].join(">")!==i+">"+s)throw Error(`Type ${r} mismatch`);return[r,...n[1]]},wt=(t,e)=>{let[r,i,s]=Nt(t,e);if(!(!i.length&&!s.length))return!i.length&&s.length===1?["result",...s]:["type",r??Mt(i,s,e)]},Wt=(t,e)=>{let r=H(t[0])&&t.shift();return r&&(r in e?B(`Duplicate ${e.name} ${r}`):e[r]=e.length),r},ce=([t],e)=>{let r="subfinal",i=[],s,n=[];t[0]==="sub"&&(r=t.shift(),t[0]==="final"&&(r+=t.shift()),t=(i=t).pop(),i=i.filter(a=>Array.isArray(a)&&(a[0]==="descriptor"||a[0]==="describes")?(n.push(a),!1):!0)),[s,...t]=t,s==="func"?(t=Bt(t),e.type["$"+t.join(">")]??=e.type.length):s==="struct"?t=jt(t,"field"):s==="array"&&([t]=t);let l=[s,t,r,i];return n.length&&(l.desc=n),l},me=[([t,...e],r)=>{let i=e;return(e[0]?.[0]==="before"||e[0]?.[0]==="after")&&(i=e.slice(1)),[...L(t),...i.flat()]},(t,e)=>{let[r,i,s,n,l]=t;if(l===!0)return;let a=(t.desc??[]).flatMap(([f,c])=>[f==="descriptor"?77:76,...h($(c,e.type))]),o=(f,c)=>f==="func"?[lt.func,...L(c[0].map(u=>Y(u,e))),...L(c[1].map(u=>Y(u,e)))]:f==="array"?[lt.array,...vt(c,e)]:f==="struct"?[lt.struct,...L(c.map(u=>vt(u,e)))]:f==="cont"?[lt.cont,...h($(c[0]??c,e.type))]:[lt[f]];if(l){let[f,c]=l,u=Array.from({length:c},(p,y)=>{let g=e.type[f+y],m=g.slice(0,4);return g.desc&&(m.desc=g.desc),me[R.type](m,e)});return[lt.rec,...L(u)]}else if(s==="sub"||n?.length)return[lt[s],...L(n.map(f=>$(f,e.type))),...a,...o(r,i)];return[...a,...o(r,i)]},([t,e,[r,...i]],s)=>{let n,l=Rt[r];if(r==="func"){i[0]==="exact"&&i.shift()&&(l=32);let[[,o]]=i;n=h($(o,s.type))}else if(r==="tag"){let[[,a]]=i;n=[0,...h($(a,s.type))]}else r==="memory"?n=$t(i):r==="global"?n=vt(i[0],s):r==="table"?n=[...Y(i.pop(),s),...$t(i)]:B(`Unknown kind ${r}`);return[...L(t),...L(e),l,...n]},([[,t]],e)=>h($(t,e.type)),(t,e)=>{let r=$t(t),i=Y(t.shift(),e),[s]=t;return s?[64,0,...i,...r,...ut(s,e)]:[...i,...r]},(t,e)=>$t(t),([t,e],r)=>[...vt(t,r),...ut(e,r)],([t,[e,r]],i)=>[...L(t),Rt[e],...h($(r,i[e]))],([t],e)=>h($(t,e.func)),(t,e)=>{let r=0,i=0,s=0,n=0,l,a,o;t[0]==="declare"&&(t.shift(),i=1),t[0]?.[0]==="table"?([,l]=t.shift(),l=$(l,e.table)):(typeof t[0]=="string"||typeof t[0]=="number")&&(t[1]?.[0]==="offset"||Array.isArray(t[1])&&t[1][0]!=="item"&&!t[1][0]?.startsWith("ref"))&&(l=$(t.shift(),e.table)),t[0]?.[0]==="offset"||Array.isArray(t[0])&&t[0][0]!=="item"&&!t[0][0].startsWith("ref")?(a=t.shift(),a[0]==="offset"&&([,a]=a),a=ut(a,e)):i||(r=1),W[t[0]]||t[0]?.[0]==="ref"?o=Y(t.shift(),e):t[0]==="func"?o=[W[t.shift()]]:o=[W.func],t=t.map(c=>(c[0]==="item"&&(c=c.length===3&&c[1]==="ref.func"?c[2]:c[1]),c[0]==="ref.func"&&([,c]=c),typeof c!="string"&&(s=1),c)),o[0]!==W.funcref&&(n=1,s=1);let f=s<<2|(r||i?i:!!l||n)<<1|(r||i);return[f,...f===0?a:f===1?[0]:f===2?[...h(l||0),...a,0]:f===3?[0]:f===4?a:f===5?o:f===6?[...h(l||0),...a,...o]:o,...L(t.map(s?c=>ut(typeof c=="string"?["ref.func",c]:c,e):c=>h($(c,e.func))))]},(t,e)=>{let[r,i]=t.shift();i||([,[i]]=e.type[$(r,e.type)]),e.local=Object.create(i),e.block=[],e.local.name="local",e.block.name="block",e._codeIdx===void 0&&(e._codeIdx=0);let s=e._codeIdx++;for(;t[0]?.[0]==="local";){let[,...o]=t.shift();if(H(o[0])){let f=o.shift();f in e.local?B(`Duplicate local ${f}`):e.local[f]=e.local.length}e.local.push(...o)}e.meta={};let n=_e(t,e),l=e.import.filter(o=>o[2][0]==="func").length+s;for(let o in e.meta)((e.metadata??={})[o]??=[]).push([l,e.meta[o]]);let a=e.local.slice(i.length).reduce((o,f)=>(f==o[o.length-1]?.[1]?o[o.length-1][0]++:o.push([1,f]),o),[]);return e.local=e.block=e.meta=null,L([...L(a.map(([o,f])=>[...h(o),...Y(f,e)])),...n])},(t,e)=>{let r,i=0;return t[0]?.[0]==="memory"?([,i]=t.shift(),i=$(i,e.memory)):(typeof t[0]=="string"||typeof t[0]=="number")&&(t[1]?.[0]==="offset"||Array.isArray(t[1])&&typeof t[1][0]=="string")&&(i=$(t.shift(),e.memory)),Array.isArray(t[0])&&typeof t[0]?.[0]=="string"&&(r=t.shift(),r[0]==="offset"&&([,r]=r),r??B("Bad offset",r)),[...i?[2,...h(i),...ut(r,e)]:r?[0,...ut(r,e)]:[1],...L(t.flatMap(s=>rr(s)??[...s]))]},(t,e)=>h(e.data.length),([[,t]],e)=>[0,...h($(t,e.type))]],Y=(t,e)=>t[0]==="ref"?t[1]=="null"?Array.isArray(t[2])&&t[2][0]==="exact"?[W.refnull,98,...h($(t[2][1],e.type))]:W[t[2]]?[W[t[2]]]:[W.refnull,...h($(t[t.length-1],e.type))]:Array.isArray(t[1])&&t[1][0]==="exact"?[W.ref,98,...h($(t[1][1],e.type))]:[W.ref,...h(W[t[t.length-1]]||$(t[t.length-1],e.type))]:[W[t]??B(`Unknown type ${t}`)],vt=(t,e,r=t[0]==="mut"?1:0)=>[...Y(r?t[1]:t,e),r],ge={null:()=>[],reversed:(t,e)=>{let r=t.shift(),i=t.shift();return[...h($(i,e.elem)),...h($(r,e.table))]},block:(t,e)=>{e.block.push(1),H(t[0])&&(e.block[t.shift()]=e.block.length);let r=t.shift();return r?r[0]==="result"?Y(r[1],e):h($(r[1],e.type)):[W.void]},try_table:(t,e)=>{H(t[0])&&(e.block[t.shift()]=e.block.length+1);let r=t.shift(),i=r?r[0]==="result"?Y(r[1],e):h($(r[1],e.type)):[W.void],s=[],n=0;for(;t[0]?.[0]==="catch"||t[0]?.[0]==="catch_ref"||t[0]?.[0]==="catch_all"||t[0]?.[0]==="catch_all_ref";){let l=t.shift(),a=l[0]==="catch"?0:l[0]==="catch_ref"?1:l[0]==="catch_all"?2:3;a<=1?s.push(a,...h($(l[1],e.tag)),...h(at(l[2],e.block))):s.push(a,...h(at(l[1],e.block))),n++}return e.block.push(1),[...i,...h(n),...s]},end:(t,e)=>(e.block.pop(),[]),call_indirect:(t,e)=>{let r=t.shift(),[,i]=t.shift();return[...h($(i,e.type)),...h($(r,e.table))]},br_table:(t,e)=>{let r=[],i=0;for(;t[0]&&(!isNaN(t[0])||H(t[0]));)r.push(...h(at(t.shift(),e.block))),i++;return[...h(i-1),...r]},select:(t,e)=>{let r=t.shift()||[];return r.length?L(r.map(i=>Y(i,e))):[]},ref_null:(t,e)=>{let r=t.shift();return Array.isArray(r)&&r[0]==="exact"?[98,...h($(r[1],e.type))]:W[r]?[W[r]]:h($(r,e.type))},memarg:(t,e,r)=>ue(t,r,Z(t[0])&&!Pt(t[0])?$(t.shift(),e.memory):0),opt_memory:(t,e)=>h($(Z(t[0])?t.shift():0,e.memory)),reftype:(t,e)=>{let r=Y(t.shift(),e);return r.length>1?r.slice(1):r},reftype2:(t,e)=>{let r=at(t.shift(),e.block),i=Y(t.shift(),e),s=Y(t.shift(),e),n=l=>l.length>1?l.slice(1):l;return[(s[0]!==W.ref)<<1|i[0]!==W.ref,...h(r),...n(i),...n(s)]},v128const:t=>{let[e,r]=t.shift().split("x"),i=+e.slice(1),s=i>>>3;if(r=+r,e[0]==="i"){let l=r===16?new Uint8Array(16):r===8?new Uint16Array(8):r===4?new Uint32Array(4):new BigUint64Array(2);for(let a=0;a<r;a++)l[a]=bt[e].parse(t.shift());return[...new Uint8Array(l.buffer)]}let n=new Uint8Array(16);for(let l=0;l<r;l++)n.set(bt[e](t.shift()),l*s);return[...n]},shuffle:t=>{let e=[];for(let r=0;r<16;r++)e.push(kt(t.shift(),32));return typeof t[0]=="string"&&!isNaN(t[0])&&B("invalid lane length"),e},memlane:(t,e,r)=>{let i=H(t[0])||Z(t[0])&&(Pt(t[1])||Z(t[1]))?$(t.shift(),e.memory):0;return[...ue(t,r,i),...h(kt(t.shift()))]},"*":t=>h(t.shift()),labelidx:(t,e)=>h(at(t.shift(),e.block)),laneidx:t=>[kt(t.shift(),255)],funcidx:(t,e)=>h($(t.shift(),e.func)),typeidx:(t,e)=>h($(t.shift(),e.type)),tableidx:(t,e)=>h($(t.shift(),e.table)),memoryidx:(t,e)=>h($(t.shift(),e.memory)),globalidx:(t,e)=>h($(t.shift(),e.global)),localidx:(t,e)=>h($(t.shift(),e.local)),dataidx:(t,e)=>h($(t.shift(),e.data)),elemidx:(t,e)=>h($(t.shift(),e.elem)),tagidx:(t,e)=>h($(t.shift(),e.tag)),"memoryidx?":(t,e)=>h($(Z(t[0])?t.shift():0,e.memory)),stringidx:(t,e)=>{let r=t.shift(),i=r.valueOf(),s=e.strings.findIndex(n=>n.valueOf()===i);return s<0&&(s=e.strings.push(r)-1),h(s)},i32:t=>P(t.shift()),i64:t=>nt(t.shift()),f32:t=>ct(t.shift()),f64:t=>ft(t.shift()),v128:t=>Dt(t.shift()),typeidx_field:(t,e)=>{let r=$(t.shift(),e.type);return[...h(r),...h($(t.shift(),e.type[r][1]))]},typeidx_multi:(t,e)=>[...h($(t.shift(),e.type)),...h(t.shift())],typeidx_dataidx:(t,e)=>[...h($(t.shift(),e.type)),...h($(t.shift(),e.data))],typeidx_elemidx:(t,e)=>[...h($(t.shift(),e.type)),...h($(t.shift(),e.elem))],typeidx_typeidx:(t,e)=>[...h($(t.shift(),e.type)),...h($(t.shift(),e.type))],dataidx_memoryidx:(t,e)=>[...h($(t.shift(),e.data)),...h($(t.shift(),e.memory))],memoryidx_memoryidx:(t,e)=>[...h($(t.shift(),e.memory)),...h($(t.shift(),e.memory))],tableidx_tableidx:(t,e)=>[...h($(t.shift(),e.table)),...h($(t.shift(),e.table))],cont_bind:(t,e)=>[...h($(t.shift(),e.type)),...h($(t.shift(),e.type))],switch_cont:(t,e)=>[...h($(t.shift(),e.type)),...h($(t.shift(),e.tag))],resume:(t,e)=>{let r=h($(t.shift(),e.type)),i=[],s=0;for(;t[0]?.[0]==="on";){let[,n,l]=t.shift();l==="switch"?i.push(1,...h($(n,e.tag))):i.push(0,...h($(n,e.tag)),...h(at(l,e.block))),s++}return[...r,...h(s),...i]},resume_throw:(t,e)=>{let r=h($(t.shift(),e.type)),i=h($(t.shift(),e.tag)),s=[],n=0;for(;t[0]?.[0]==="on";){let[,l,a]=t.shift();a==="switch"?s.push(1,...h($(l,e.tag))):s.push(0,...h($(l,e.tag)),...h(at(a,e.block))),n++}return[...r,...i,...h(n),...s]},resume_throw_ref:(t,e)=>{let r=h($(t.shift(),e.type)),i=[],s=0;for(;t[0]?.[0]==="on";){let[,n,l]=t.shift();l==="switch"?i.push(1,...h($(n,e.tag))):i.push(0,...h($(n,e.tag)),...h(at(l,e.block))),s++}return[...r,...h(s),...i]}},It={};(function t(e,r){for(let i=0,s,n,l;i<e.length;i++)(s=e[i])&&(Array.isArray(s)?t(s,i):([n,l]=s.split(" "),ht[n]=r?[r,...h(i)]:[i],l&&(It[n]=ge[l])))})(ht);var _e=(t,e)=>{let r=[],i=[];for(;t?.length;){let s=t.shift();if(s?.[0]==="@metadata"){i.push(s.slice(1));continue}Array.isArray(s)&&(s.loc!=null&&(B.loc=s.loc),B(`Unknown instruction ${s[0]}`));let[...n]=ht[s]||B(`Unknown instruction ${s}`);It[s]&&(s==="select"&&t[0]?.length?n[0]++:It[s]===ge.reftype&&!s.endsWith("_null")&&(t[0][1]==="null"||t[0][0]!=="ref")&&n[n.length-1]++,n.push(...It[s](t,e,s)));for(let[l,a]of i)(e.meta[l]??=[]).push([r.length,a]);r.push(...n)}return r.push(11),r},ut=(t,e)=>_e(st([t],e),e),$=(t,e,r)=>(r=H(t)?e[t]:+t,r in e?r:B(`Unknown ${e.name} ${t}`)),at=(t,e,r)=>(r=H(t)?e.length-e[t]:+t,isNaN(r)||r>e.length?B(`Bad label ${t}`):r),tr=t=>{let e,r,i,s;for(;Pt(t[0]);)[i,s]=t.shift().split("="),i==="offset"?r=+s:i==="align"?e=+s:B(`Unknown param ${i}=${s}`);return(r<0||r>4294967295)&&B(`Bad offset ${r}`),(e<=0||e>4294967295)&&B(`Bad align ${e}`),e&&(e=Math.log2(e))%1&&B(`Bad align ${e}`),[e,r]},ue=(t,e,r=0)=>{let[i,s]=tr(t),n=(i??er(e))|(r&&64);return r?[...h(n),...h(r),...h(s??0)]:[...h(n),...h(s??0)]},er=t=>{let e=t.indexOf(".",3)+1,r=t.slice(1,t[0]==="v"?4:3);if(t[e]==="a"&&(e=t.indexOf(".",e)+1),t[0]==="m")return t.includes("64")?3:2;if(t[e]==="r"){let n=t.slice(e,e+6).match(/\d+/);return Math.log2(n?n[0]/8:+r/8)}let i=t[e]==="l"?e+4:e+5,s=t.slice(i).match(/(\d+)(x|_|$)/);return Math.log2(s?s[2]==="x"?8:s[1]/8:+r/8)},rr=t=>{if(!Array.isArray(t))return null;let[e,...r]=t;if(e!=="i8"&&e!=="i16"&&e!=="i32"&&e!=="i64"&&e!=="f32"&&e!=="f64")return null;let i=[],s=new DataView(new ArrayBuffer(8));for(let n of r)e==="i8"?i.push(P.parse(n)&511&255):e==="i16"?(s.setInt16(0,P.parse(n),!0),i.push(...new Uint8Array(s.buffer,0,2))):e==="i32"?(s.setInt32(0,P.parse(n),!0),i.push(...new Uint8Array(s.buffer,0,4))):e==="i64"?(s.setBigInt64(0,BigInt(n),!0),i.push(...new Uint8Array(s.buffer,0,8))):e==="f32"?i.push(...ct(n)):e==="f64"&&i.push(...ft(n));return i},$t=t=>{let e=t[0]==="i64"&&t.shift(),r=t[t.length-1]==="shared"&&t.pop(),i=t.findIndex(f=>Array.isArray(f)&&f[0]==="pagesize"),s=-1;i>=0&&(s=Math.log2(+t.splice(i,1)[0][1]));let n=!isNaN(parseInt(t[1])),l=(s>=0?8:0)|(e?4:0)|(r?2:0)|(n?1:0),a=e?f=>{if(typeof f=="bigint")return f;let c=typeof f=="string"?f.replaceAll("_",""):String(f);return BigInt(c)}:kt,o=s>=0?h(s):[];return n?[l,...h(a(t.shift())),...h(a(t.shift())),...o]:[l,...h(a(t.shift())),...o]},kt=(t,e=4294967295)=>{let r=typeof t=="string"&&t[0]!=="+"?P.parse(t):typeof t=="number"?t:B(`Bad int ${t}`);return r>e?B(`Value out of range ${t}`):r},L=t=>[...h(t.length),...t.flat()];function he(t,e={}){typeof t=="string"&&(t=et(t));let{indent:r=" ",newline:i=`
4
- `,comments:s=!0}=e;if(r||="",i||="",typeof t[0]=="string"&&t[0][0]!==";")return l(t);return t.filter(a=>s||!n(a)).map(a=>l(a)).join(i);function n(a){return typeof a=="string"&&a[1]===";"}function l(a,o=0){if(!Array.isArray(a))return a;let f=a[0];if(!f)return"";let c=!1;if(f==="try_table"){let y=1;for(typeof a[y]=="string"&&a[y][0]==="$"&&(f+=" "+a[y++]),Array.isArray(a[y])&&(a[y][0]==="result"||a[y][0]==="type")&&(f+=" "+l(a[y++],o));Array.isArray(a[y])&&/^catch/.test(a[y][0]);)f+=" "+l(a[y++],o).trim();for(;y<a.length;y++)f+=Array.isArray(a[y])?i+r.repeat(o+1)+l(a[y],o+1):" "+a[y];return`(${f+i+r.repeat(o)})`}let u=!!i&&a.length<4&&!a.some(y=>typeof y=="string"&&y[0]===";"&&y[1]===";"),p=r.repeat(o+1);for(let y=1;y<a.length;y++){let g=a[y]?.valueOf?.()??a[y];if(typeof g=="string"&&g[1]===";"){if(!s)continue;if(g[0]===";")if(i)f+=i+p+g.trimEnd(),c=!0;else{let m=f[f.length-1];m&&m!==" "&&m!=="("&&(f+=" "),f+=g.trimEnd()+`
5
- `}else{let m=f[f.length-1];m&&m!==" "&&m!=="("&&(f+=" "),f+=g.trimEnd()}}else if(Array.isArray(g))u&&(u=g.every(m=>!Array.isArray(m))),f+=i+p+l(g,o+1),c=!1;else if(a[0]==="data")u=!1,(i||f[f.length-1]!==")")&&(f+=i||" "),f+=p+g,c=!1;else{let m=f[f.length-1];c&&i?f+=i+p:m===`
6
- `?f+="":(m&&m!==")"&&m!==" "||i||m===")")&&(f+=" "),f+=g,c=!1}}return u?`(${f.replaceAll(i+p+"("," (")})`:`(${f+i+r.repeat(o)})`}}var de=(t,e)=>{let r=[],i=t[0]==="module"?1:0;for(let s=i;s<t.length;s++)Array.isArray(t[s])&&t[s][0]===e&&r.push({node:t[s],idx:s});return r},St=(t,e,r)=>t.splice(e,0,r),ir=0,rt=t=>`$__${t}${ir++}`,sr=(t,e)=>{let r=new Set;if(S(t,f=>{Array.isArray(f)&&f[0]==="ref.func"&&r.add(f[1])}),!r.size)return t;let i=rt("fntbl"),s=[...r],n=Object.fromEntries(s.map((f,c)=>[f,c])),l=de(t,"func"),a=l.length?l[0].idx:t[0]==="module"?1:0;St(t,a,["table",i,"funcref",["elem",...s]]);let o={};return S(t,f=>{if(!Array.isArray(f)||f[0]!=="func")return;let c=typeof f[1]=="string"&&f[1][0]==="$"?f[1]:null;if(!c)return;let u=[],p=[];for(let y of f){if(Array.isArray(y)&&y[0]==="param")for(let g=1;g<y.length;g++)y[g][0]!=="$"&&u.push(y[g]);if(Array.isArray(y)&&y[0]==="result")for(let g=1;g<y.length;g++)p.push(y[g])}o[c]={params:u,results:p}}),U(t,(f,c,u)=>{if(!(!Array.isArray(f)||!c)){if(f[0]==="ref.func"&&n[f[1]]!==void 0&&(c[u]=["i32.const",n[f[1]]]),f[0]==="call_ref"){let p=f[1],y=f.slice(2);c[u]=["call_indirect",i,["type",p],...y]}if(f[0]==="return_call_ref"){let p=f[1],y=f.slice(2);c[u]=["return_call_indirect",i,["type",p],...y]}}}),t},nr={"i32.extend8_s":["i32",24],"i32.extend16_s":["i32",16],"i64.extend8_s":["i64",56n],"i64.extend16_s":["i64",48n],"i64.extend32_s":["i64",32n]},lr=(t,e)=>(U(t,(r,i,s)=>{if(!Array.isArray(r)||!i)return;let n=nr[r[0]];if(!n)return;let[l,a]=n,o=r.slice(1);i[s]=[`${l}.shr_s`,[`${l}.shl`,...o,[`${l}.const`,a]],[`${l}.const`,a]]}),t),xe={"i32.trunc_sat_f32_s":{itype:"i32",ftype:"f32",signed:!0,min:-2147483648,max:2147483647},"i32.trunc_sat_f32_u":{itype:"i32",ftype:"f32",signed:!1,min:0,max:4294967295},"i32.trunc_sat_f64_s":{itype:"i32",ftype:"f64",signed:!0,min:-2147483648,max:2147483647},"i32.trunc_sat_f64_u":{itype:"i32",ftype:"f64",signed:!1,min:0,max:4294967295},"i64.trunc_sat_f32_s":{itype:"i64",ftype:"f32",signed:!0,min:-9223372036854775808n,max:9223372036854775807n},"i64.trunc_sat_f32_u":{itype:"i64",ftype:"f32",signed:!1,min:0n,max:18446744073709551615n},"i64.trunc_sat_f64_s":{itype:"i64",ftype:"f64",signed:!0,min:-9223372036854775808n,max:9223372036854775807n},"i64.trunc_sat_f64_u":{itype:"i64",ftype:"f64",signed:!1,min:0n,max:18446744073709551615n}},ar=(t,e)=>{let r=new Set;if(S(t,s=>{Array.isArray(s)&&xe[s[0]]&&r.add(s[0])}),!r.size)return t;let i={};for(let s of r){let{itype:n,ftype:l,signed:a,min:o,max:f}=xe[s],c=rt(`trunc_${n}_${l}_${a?"s":"u"}`);i[s]=c;let u=`${n}.trunc_${l}_${a?"s":"u"}`,p=n==="i64"?0n:0,y=["func",c,["param","$v",l],["result",n],["if",["result",n],[`${l}.ne`,["local.get","$v"],["local.get","$v"]],["then",[`${n}.const`,p]],["else",["if",["result",n],[`${l}.lt`,["local.get","$v"],[`${l}.const`,typeof o=="bigint"?Number(o):o]],["then",[`${n}.const`,o]],["else",["if",["result",n],[`${l}.gt`,["local.get","$v"],[`${l}.const`,typeof f=="bigint"?Number(f):f]],["then",[`${n}.const`,f]],["else",[u,["local.get","$v"]]]]]]]]];t.push(y)}return U(t,(s,n,l)=>{!Array.isArray(s)||!n||i[s[0]]&&(n[l]=["call",i[s[0]],...s.slice(1)])}),t},fr=(t,e)=>{let r=new Set,i=new Set;S(t,l=>{if(Array.isArray(l)){if(l[0]==="memory.copy"){let a=typeof l[1]=="number"?l[1]:0,o=typeof l[2]=="number"?l[2]:0;r.add(`${a}_${o}`)}if(l[0]==="memory.fill"){let a=typeof l[1]=="number"?l[1]:0;i.add(a)}}});let s={},n={};for(let l of r){let[a,o]=l.split("_").map(Number),f=rt(`memcpy${l==="0_0"?"":"_"+l}`);s[l]=f;let c=a?["i32.store8",a]:["i32.store8"],u=o?["i32.load8_u",o]:["i32.load8_u"];t.push(["func",f,["param","$dst","i32"],["param","$src","i32"],["param","$len","i32"],["local","$i","i32"],["block","$done",["loop","$loop",["br_if","$done",["i32.ge_u",["local.get","$i"],["local.get","$len"]]],[...c,["i32.add",["local.get","$dst"],["local.get","$i"]],[...u,["i32.add",["local.get","$src"],["local.get","$i"]]]],["local.set","$i",["i32.add",["local.get","$i"],["i32.const",1]]],["br","$loop"]]]])}for(let l of i){let a=rt(`memset${l===0?"":"_"+l}`);n[l]=a;let o=l?["i32.store8",l]:["i32.store8"];t.push(["func",a,["param","$dst","i32"],["param","$val","i32"],["param","$len","i32"],["local","$i","i32"],["block","$done",["loop","$loop",["br_if","$done",["i32.ge_u",["local.get","$i"],["local.get","$len"]]],[...o,["i32.add",["local.get","$dst"],["local.get","$i"]],["local.get","$val"]],["local.set","$i",["i32.add",["local.get","$i"],["i32.const",1]]],["br","$loop"]]]])}return U(t,(l,a,o)=>{if(!(!Array.isArray(l)||!a)){if(l[0]==="memory.copy"){let f=typeof l[1]=="number"?l[1]:0,c=typeof l[2]=="number"?l[2]:0,u=l.filter(p=>Array.isArray(p)||typeof p=="string"&&p[0]==="$");a[o]=["call",s[`${f}_${c}`],...u]}if(l[0]==="memory.fill"){let f=typeof l[1]=="number"?l[1]:0,c=l.filter(u=>Array.isArray(u)||typeof u=="string"&&u[0]==="$");a[o]=["call",n[f],...c]}}}),t},or=(t,e)=>{let r=!1;return S(t,i=>{Array.isArray(i)&&(i[0]==="return_call"||i[0]==="return_call_indirect")&&(r=!0)}),r&&U(t,(i,s,n)=>{!Array.isArray(i)||!s||(i[0]==="return_call"&&(s[n]=["return",["call",...i.slice(1)]]),i[0]==="return_call_indirect"&&(s[n]=["return",["call_indirect",...i.slice(1)]]))}),t},cr=(t,e)=>(U(t,(r,i,s)=>{if(!(!Array.isArray(r)||!i)&&(r[0]==="ref.i31"&&(i[s]=["i32.and",...r.slice(1),["i32.const",2147483647]]),r[0]==="i31.get_u"&&(i[s]=r.length>1?r[1]:["drop"]),r[0]==="i31.get_s")){let n=r.slice(1);i[s]=["i32.shr_s",["i32.shl",...n,["i32.const",1]],["i32.const",1]]}}),t),ur=(t,e)=>{let r={};S(t,s=>{if(!Array.isArray(s)||s[0]!=="global")return;let n=typeof s[1]=="string"&&s[1][0]==="$"?s[1]:null;if(n)for(let l=s.length-1;l>=0;l--){let a=s[l];if(Array.isArray(a)&&(a[0]==="i32.const"||a[0]==="i64.const"||a[0]==="f32.const"||a[0]==="f64.const")){r[n]={type:a[0].split(".")[0],value:a[1]};break}}});let i=s=>{if(!Array.isArray(s))return s;let n=s[0];if(n==="global.get"&&r[s[1]]){let l=r[s[1]];return[`${l.type}.const`,l.value]}if(n==="i32.add"||n==="i64.add"){let l=i(s[1]),a=i(s[2]);if(l&&a&&l[0]?.endsWith(".const")&&a[0]?.endsWith(".const")){let o=n.split(".")[0],f=o==="i64"?BigInt(l[1]):Number(l[1]),c=o==="i64"?BigInt(a[1]):Number(a[1]);return[`${o}.const`,f+c]}}if(n==="i32.sub"||n==="i64.sub"){let l=i(s[1]),a=i(s[2]);if(l&&a&&l[0]?.endsWith(".const")&&a[0]?.endsWith(".const")){let o=n.split(".")[0],f=o==="i64"?BigInt(l[1]):Number(l[1]),c=o==="i64"?BigInt(a[1]):Number(a[1]);return[`${o}.const`,f-c]}}if(n==="i32.mul"||n==="i64.mul"){let l=i(s[1]),a=i(s[2]);if(l&&a&&l[0]?.endsWith(".const")&&a[0]?.endsWith(".const")){let o=n.split(".")[0],f=o==="i64"?BigInt(l[1]):Number(l[1]),c=o==="i64"?BigInt(a[1]):Number(a[1]);return[`${o}.const`,f*c]}}return s};return U(t,(s,n,l)=>{if(!(!Array.isArray(s)||s[0]!=="global"||!n)){for(let a=2;a<s.length;a++)if(Array.isArray(s[a])){let o=i(s[a]);o!==s[a]&&(s[a]=o)}}}),t},yr=(t,e)=>{let r=new Map,i=[];if(S(t,a=>{if(!Array.isArray(a)||a[0]!=="func")return;let o=typeof a[1]=="string"&&a[1][0]==="$"?a[1]:null,f=[];for(let c of a)if(Array.isArray(c)&&c[0]==="result")for(let u=1;u<c.length;u++)f.push(c[u]);f.length>1&&o&&r.set(o,f)}),!r.size)return t;let s=Math.max(...[...r.values()].map(a=>a.length)),n={};for(let[a,o]of r)for(let f=1;f<o.length;f++){let c=o[f];if(n[c]||(n[c]=[]),n[c].length<f){let u=rt(`ret_${c}_${n[c].length}`);n[c].push(u),i.push(["global",u,["mut",c],[`${c}.const`,c==="i64"?0n:0]])}}let l=t[0]==="module"?1:0;for(let a of i.reverse())St(t,l,a);return U(t,(a,o,f)=>{if(!Array.isArray(a)||a[0]!=="func")return;let c=typeof a[1]=="string"&&a[1][0]==="$"?a[1]:null;if(!c||!r.has(c))return;let u=r.get(c);for(let p=0;p<a.length;p++)if(Array.isArray(a[p])&&a[p][0]==="result"){a[p]=["result",u[0]];break}}),t},dt={i32:4,i64:8,f32:4,f64:8},pr=(t,e)=>{let r=new Map,i=new Map,s=1;if(S(t,m=>{if(!Array.isArray(m)||m[0]!=="type")return;let _=typeof m[1]=="string"&&m[1][0]==="$"?m[1]:null;if(_){for(let b of m)if(Array.isArray(b)){if(b[0]==="struct"){let v=[];for(let A of b)if(Array.isArray(A)&&A[0]==="field"){let z=typeof A[1]=="string"&&A[1][0]==="$"?A[1]:null,I=z?A[2]:A[1],M=Array.isArray(I)&&I[0]==="mut"?I[1]:I;v.push({name:z,type:M})}r.set(_,{kind:"struct",fields:v}),i.set(_,s++)}if(b[0]==="array"){let v=b[1],A=Array.isArray(v)&&v[0]==="mut"?v[1]:v;r.set(_,{kind:"array",elemType:A}),i.set(_,s++)}}}}),!r.size)return t;let n=de(t,"memory").length>0,l=rt("alloc"),a=rt("heap_ptr"),o=t[0]==="module"?1:0;n||St(t,o,["memory",1]),St(t,o+1,["global",a,["mut","i32"],["i32.const",1024]]);let f=["func",l,["param","$size","i32"],["result","i32"],["local","$ptr","i32"],["local.set","$ptr",["global.get",a]],["global.set",a,["i32.add",["global.get",a],["local.get","$size"]]],["local.get","$ptr"]];t.push(f);let c=m=>{let _=4;for(let b of m.fields)_+=dt[b.type]||4;return _},u=(m,_)=>{let b=4;for(let v=0;v<_;v++)b+=dt[m.fields[v].type]||4;return b},p=(m,_)=>{for(let b=0;b<m.fields.length;b++)if(m.fields[b].name===_)return b;return-1},y=0,g=()=>`$__gc_tmp${y++}`;return S(t,m=>{if(!Array.isArray(m)||m[0]!=="func")return;let _=!1,b=!1,v=!1,A=!1;if(S(m,I=>{Array.isArray(I)&&((I[0]==="struct.new"||I[0]==="struct.new_default")&&(_=!0),(I[0]==="array.new"||I[0]==="array.new_default")&&(b=!0,v=!0,A=!0))}),!_&&!b)return;let z=1;for(let I=1;I<m.length;I++){let M=m[I];if(Array.isArray(M)&&(M[0]==="param"||M[0]==="result"||M[0]==="local"||M[0]==="export"||M[0]==="type"))z=I+1;else if(typeof M=="string"&&M[0]==="$")z=I+1;else if(!Array.isArray(M))z=I+1;else break}_&&m.splice(z++,0,["local","$__gc_ptr","i32"]),b&&m.splice(z++,0,["local","$__gc_aptr","i32"]),v&&m.splice(z++,0,["local","$__gc_alen","i32"]),A&&m.splice(z++,0,["local","$__gc_aidx","i32"])}),U(t,(m,_,b)=>{if(!(!Array.isArray(m)||!_)){if(m[0]==="struct.new"||m[0]==="struct.new_default"){let v=m[1],A=r.get(v);if(!A||A.kind!=="struct")return;let z=c(A),I=i.get(v),M=m.slice(2),C="$__gc_ptr",O=[["local.set",C,["call",l,["i32.const",z]]],["i32.store",["local.get",C],["i32.const",I]]];if(m[0]==="struct.new")for(let q=0;q<A.fields.length;q++){let x=A.fields[q],d=u(A,q),k=x.type==="i64"?"i64.store":x.type==="f32"?"f32.store":x.type==="f64"?"f64.store":"i32.store";O.push([k,["i32.add",["local.get",C],["i32.const",d]],M[q]||[`${x.type}.const`,0]])}else for(let q=0;q<A.fields.length;q++){let x=A.fields[q],d=u(A,q),k=x.type==="i64"?"i64.store":x.type==="f32"?"f32.store":x.type==="f64"?"f64.store":"i32.store",D=x.type==="i64"?["i64.const",0n]:x.type==="f32"?["f32.const",0]:x.type==="f64"?["f64.const",0]:["i32.const",0];O.push([k,["i32.add",["local.get",C],["i32.const",d]],D])}O.push(["local.get",C]),_[b]=["block",["result","i32"],...O]}if(m[0]==="struct.get"){let v=m[1],A=m[2],z=m[3],I=r.get(v);if(!I||I.kind!=="struct")return;let M=typeof A=="string"&&A[0]==="$"?p(I,A):parseInt(A);if(M<0)return;let C=I.fields[M],O=u(I,M),q=C.type==="i64"?"i64.load":C.type==="f32"?"f32.load":C.type==="f64"?"f64.load":"i32.load";_[b]=[q,["i32.add",z,["i32.const",O]]]}if(m[0]==="struct.set"){let v=m[1],A=m[2],z=m[3],I=m[4],M=r.get(v);if(!M||M.kind!=="struct")return;let C=typeof A=="string"&&A[0]==="$"?p(M,A):parseInt(A);if(C<0)return;let O=M.fields[C],q=u(M,C),x=O.type==="i64"?"i64.store":O.type==="f32"?"f32.store":O.type==="f64"?"f64.store":"i32.store";_[b]=[x,["i32.add",z,["i32.const",q]],I]}if(m[0]==="array.new"||m[0]==="array.new_default"){let v=m[1],A=r.get(v);if(!A||A.kind!=="array")return;let z=i.get(v),I=dt[A.elemType]||4,M=m[0]==="array.new"?m[2]:null,C=m[0]==="array.new"?m[3]:m[2],O="$__gc_aptr",q="$__gc_alen",x="$__gc_aidx",d=A.elemType==="i64"?"i64.store":A.elemType==="f32"?"f32.store":A.elemType==="f64"?"f64.store":"i32.store",k=[["local.set",q,C],["local.set",O,["call",l,["i32.add",["i32.const",8],["i32.mul",["local.get",q],["i32.const",I]]]]],["i32.store",["local.get",O],["i32.const",z]],["i32.store",["i32.add",["local.get",O],["i32.const",4]],["local.get",q]]];M&&k.push(["local.set",x,["i32.const",0]],["block","$done",["loop","$loop",["br_if","$done",["i32.ge_u",["local.get",x],["local.get",q]]],[d,["i32.add",["i32.add",["local.get",O],["i32.const",8]],["i32.mul",["local.get",x],["i32.const",I]]],M],["local.set",x,["i32.add",["local.get",x],["i32.const",1]]],["br","$loop"]]]),k.push(["local.get",O]),_[b]=["block",["result","i32"],...k]}if(m[0]==="array.get"){let v=m[1],A=m[2],z=m[3],I=r.get(v);if(!I||I.kind!=="array")return;let M=dt[I.elemType]||4,C=I.elemType==="i64"?"i64.load":I.elemType==="f32"?"f32.load":I.elemType==="f64"?"f64.load":"i32.load";_[b]=[C,["i32.add",["i32.add",A,["i32.const",8]],["i32.mul",z,["i32.const",M]]]]}if(m[0]==="array.set"){let v=m[1],A=m[2],z=m[3],I=m[4],M=r.get(v);if(!M||M.kind!=="array")return;let C=dt[M.elemType]||4,O=M.elemType==="i64"?"i64.store":M.elemType==="f32"?"f32.store":M.elemType==="f64"?"f64.store":"i32.store";_[b]=[O,["i32.add",["i32.add",A,["i32.const",8]],["i32.mul",z,["i32.const",C]]],I]}if(m[0]==="array.len"){let v=m[1];_[b]=["i32.load",["i32.add",v,["i32.const",4]]]}}}),t},mr=(t,e)=>{let r=new Map,i=1;return S(t,s=>{if(!Array.isArray(s)||s[0]!=="type")return;let n=typeof s[1]=="string"&&s[1][0]==="$"?s[1]:null;if(n)for(let l of s)Array.isArray(l)&&(l[0]==="struct"||l[0]==="array")&&r.set(n,i++)}),r.size&&U(t,(s,n,l)=>{if(!(!Array.isArray(s)||!n)){if(s[0]==="ref.test"){let a=s[1],o=null;Array.isArray(a)&&a[0]==="ref"&&(o=a[1]==="null"?a[2]:a[1]);let f=s[2],c=r.get(o);c!==void 0&&(n[l]=["if",["result","i32"],["i32.eqz",f],["then",["i32.const",0]],["else",["i32.eq",["i32.load",f],["i32.const",c]]]])}if(s[0]==="ref.cast"){let a=s[1],o=null,f=!1;Array.isArray(a)&&a[0]==="ref"&&(a[1]==="null"?(f=!0,o=a[2]):o=a[1]);let c=s[2],u=r.get(o);if(u!==void 0){let p=rt("cast");f?n[l]=["block",["result","i32"],["local",p,"i32"],["local.set",p,c],["if",["i32.and",["i32.ne",["local.get",p],["i32.const",0]],["i32.ne",["i32.load",["local.get",p]],["i32.const",u]]],["then",["unreachable"]]],["local.get",p]]:n[l]=["block",["result","i32"],["local",p,"i32"],["local.set",p,c],["if",["i32.or",["i32.eqz",["local.get",p]],["i32.ne",["i32.load",["local.get",p]],["i32.const",u]]],["then",["unreachable"]]],["local.get",p]]}}if(s[0]==="br_on_cast"){let a=s[1],o=s[2],f=s[3],c=s[4],u=null;Array.isArray(f)&&f[0]==="ref"&&(u=f[1]==="null"?f[2]:f[1]);let p=r.get(u);if(p!==void 0){let y=rt("brcast");n[l]=["block",["result","i32"],["local",y,"i32"],["local.set",y,c],["br_if",a,["i32.and",["i32.ne",["local.get",y],["i32.const",0]],["i32.eq",["i32.load",["local.get",y]],["i32.const",p]]]],["local.get",y]]}}if(s[0]==="br_on_cast_fail"){let a=s[1],o=s[2],f=s[3],c=s[4],u=null;Array.isArray(f)&&f[0]==="ref"&&(u=f[1]==="null"?f[2]:f[1]);let p=r.get(u);if(p!==void 0){let y=rt("brfail");n[l]=["block",["result","i32"],["local",y,"i32"],["local.set",y,c],["br_if",a,["i32.or",["i32.eqz",["local.get",y]],["i32.ne",["i32.load",["local.get",y]],["i32.const",p]]]],["local.get",y]]}}}}),t},zt=[["funcref",["ref.func","call_ref","return_call_ref"],sr],["sign_ext",["i32.extend8_s","i32.extend16_s","i64.extend8_s","i64.extend16_s","i64.extend32_s"],lr],["nontrapping",["i32.trunc_sat_f32_s","i32.trunc_sat_f32_u","i32.trunc_sat_f64_s","i32.trunc_sat_f64_u","i64.trunc_sat_f32_s","i64.trunc_sat_f32_u","i64.trunc_sat_f64_s","i64.trunc_sat_f64_u"],ar],["bulk_memory",["memory.copy","memory.fill"],fr],["return_call",["return_call","return_call_indirect"],or],["i31ref",["ref.i31","i31.get_s","i31.get_u"],cr],["extended_const",["global.get"],ur],["multi_value",[],yr],["gc",["struct.new","struct.get","struct.set","array.new","array.get","array.set","array.len","struct.new_default","array.new_default","array.new_fixed","array.copy"],pr],["ref_cast",["ref.test","ref.cast","br_on_cast","br_on_cast_fail"],mr]],Ui=Object.fromEntries(zt.map(t=>[t[0],t[1]])),gr=t=>{if(t===!1)return{};if(t!==!0&&typeof t!="string")return{...t};let e=typeof t=="string"?new Set(t.split(/\s+/).filter(Boolean)):null,r={};for(let i of zt)r[i[0]]=e?e.has("all")||e.has(i[0]):!0;return r},_r=t=>{let e=new Set;return S(t,r=>{if(typeof r=="string")for(let i of zt)i[1].some(n=>r===n||r.startsWith(n+" "))&&e.add(i[0])}),S(t,r=>{if(!(!Array.isArray(r)||r[0]!=="global"))for(let i of r)Array.isArray(i)&&(i[0]==="i32.add"||i[0]==="i32.sub"||i[0]==="i32.mul"||i[0]==="i64.add"||i[0]==="i64.sub"||i[0]==="i64.mul")&&S(i,s=>{Array.isArray(s)&&s[0]==="global.get"&&e.add("extended_const")})}),S(t,r=>{if(!Array.isArray(r)||r[0]!=="func")return;let i=0;for(let s of r)Array.isArray(s)&&s[0]==="result"&&(i+=s.length-1);i>1&&e.add("multi_value")}),e};function Gt(t,e=!0){typeof t=="string"&&(t=et(t)),t=G(t),e=gr(e);let r=_r(t),i={uid:0};for(let s of zt){let n=s[2];r.has(s[0])&&e[s[0]]!==!1&&(t=n(t,i))}return t}var Ae=t=>{try{return yt(t).length}catch{return 1/0}},T=(t,e)=>{if(t===e)return!0;if(typeof t!=typeof e)return!1;if(typeof t=="bigint")return t===e;if(!Array.isArray(t)||!Array.isArray(e)||t.length!==e.length)return!1;for(let r=0;r<t.length;r++)if(!T(t[r],e[r]))return!1;return!0},Ct=t=>{let e=1;for(;e<t.length;){let s=t[e];if(Array.isArray(s)&&(s[0]==="then"||s[0]==="else"||s[0]==="result"||s[0]==="param")){e++;continue}break}let r=null,i=null;for(let s=e+1;s<t.length;s++){let n=t[s];Array.isArray(n)&&(n[0]==="then"?r=n:n[0]==="else"&&(i=n))}return{condIdx:e,cond:t[e],thenBranch:r,elseBranch:i}},hr=t=>{if(!Array.isArray(t)||t[0]!=="module")return t;let e=new Map,r=new Map,i=new Map,s=new Map,n=new Map,l=new Map,a=(x,d,k,D=!1)=>{let Q=typeof d[1]=="string"&&d[1][0]==="$",w=Q?d[1]:k,N=!D&&d.some(J=>Array.isArray(J)&&J[0]==="export"),F={node:d,idx:k,used:N,isImport:D};return x.set(w,F),Q&&x.set(k,F),l.set(d,F),F},o=0,f=0,c=0,u=0,p=0,y=[],g=[],m=[],_=[];for(let x of t.slice(1)){if(!Array.isArray(x))continue;let d=x[0];if(d==="type")a(i,x,c++);else if(d==="func")a(e,x,o++);else if(d==="global")a(r,x,f++);else if(d==="table")a(s,x,u++);else if(d==="memory")a(n,x,p++);else if(d==="import")for(let k of x)Array.isArray(k)&&(k[0]==="func"?a(e,k,o++,!0):k[0]==="global"?a(r,k,f++,!0):k[0]==="table"?a(s,k,u++,!0):k[0]==="memory"&&a(n,k,p++,!0));else d==="export"?m.push(x):d==="start"?_.push(x):d==="elem"?y.push(x):d==="data"&&g.push(x)}let b=[],v=x=>{x&&!x.scanned&&b.push(x)},A=x=>{let d=e.get(x);d&&(d.used||(d.used=!0),v(d))},z=x=>{let d=r.get(x);d&&(d.used=!0)},I=x=>{let d=s.get(x);d&&(d.used=!0)},M=x=>{typeof x=="string"&&x[0]!=="$"&&(x=+x);let d=n.get(x);d&&(d.used=!0)},C=x=>{let d=i.get(x);d&&(d.used=!0)};for(let x of m)for(let d of x){if(!Array.isArray(d))continue;let[k,D]=d;k==="func"?A(D):k==="global"?z(D):k==="table"?I(D):k==="memory"&&M(D)}for(let x of _){let d=x[1];typeof d=="string"&&d[0]!=="$"&&(d=+d),A(d)}for(let x of y)S(x,d=>{Array.isArray(d)&&d[0]==="ref.func"?A(d[1]):typeof d=="string"&&d[0]==="$"&&A(d)});for(let x of g){let d=x[1];Array.isArray(d)&&d[0]==="memory"?M(d[1]):typeof d=="string"&&d[0]==="$"?M(d):Array.isArray(d)&&M(0)}for(let x of[e,r,s,n])for(let d of x.values())d.used&&v(d);if(!(m.length>0||_.length>0||y.length>0||b.length>0)){for(let x of[e,r,s,n])for(let d of x.values())d.used=!0;return t}for(;b.length;){let x=b.pop();x.scanned||(x.scanned=!0,!x.isImport&&S(x.node,d=>{if(!Array.isArray(d)){typeof d=="string"&&d[0]==="$"&&A(d);return}let[k,D]=d;if(k==="call"||k==="return_call"||k==="ref.func")A(D);else if(k==="global.get"||k==="global.set")z(D);else if(k==="type")C(D);else if(k==="call_indirect"||k==="return_call_indirect")for(let Q of d)typeof Q=="string"&&Q[0]==="$"&&I(Q);typeof k=="string"&&(k.startsWith("memory.")||k.includes(".load")||k.includes(".store"))&&M(0)}))}let q=["module"];for(let x of t.slice(1)){if(!Array.isArray(x)){q.push(x);continue}let d=x[0];if(d==="func"||d==="global"||d==="type")l.get(x)?.used&&q.push(x);else if(d==="import"){let k=!1;for(let D of x){if(!Array.isArray(D))continue;if(l.get(D)?.used){k=!0;break}}k&&q.push(x)}else q.push(x)}return q},be=t=>t-Math.floor(t)!==.5?Math.round(t):2*Math.round(t/2),Me=new ArrayBuffer(8),Yt=new Float64Array(Me),Xt=new BigInt64Array(Me),Be=new ArrayBuffer(4),Zt=new Float32Array(Be),Kt=new Int32Array(Be),xr=t=>(Yt[0]=t,Xt[0]),dr=t=>(Xt[0]=BigInt.asIntN(64,t),Yt[0]),Ar=t=>(Zt[0]=t,Kt[0]),br=t=>(Kt[0]=t|0,Zt[0]),pt=t=>(e,r)=>t(e,r)?1:0,Tt=t=>(e,r)=>t(e>>>0,r>>>0)?1:0,mt=t=>(e,r)=>t(e,r)?1:0,Et=t=>(e,r)=>t(BigInt.asUintN(64,e),BigInt.asUintN(64,r))?1:0,wr={"i32.add":(t,e)=>t+e|0,"i32.sub":(t,e)=>t-e|0,"i32.mul":(t,e)=>Math.imul(t,e),"i32.div_s":(t,e)=>e!==0?t/e|0:null,"i32.div_u":(t,e)=>e!==0?(t>>>0)/(e>>>0)|0:null,"i32.rem_s":(t,e)=>e!==0?t%e|0:null,"i32.rem_u":(t,e)=>e!==0?(t>>>0)%(e>>>0)|0:null,"i32.and":(t,e)=>t&e,"i32.or":(t,e)=>t|e,"i32.xor":(t,e)=>t^e,"i32.shl":(t,e)=>t<<(e&31),"i32.shr_s":(t,e)=>t>>(e&31),"i32.shr_u":(t,e)=>t>>>(e&31),"i32.rotl":(t,e)=>(e&=31,t<<e|t>>>32-e|0),"i32.rotr":(t,e)=>(e&=31,t>>>e|t<<32-e|0),"i32.eq":pt((t,e)=>t===e),"i32.ne":pt((t,e)=>t!==e),"i32.lt_s":pt((t,e)=>t<e),"i32.lt_u":Tt((t,e)=>t<e),"i32.gt_s":pt((t,e)=>t>e),"i32.gt_u":Tt((t,e)=>t>e),"i32.le_s":pt((t,e)=>t<=e),"i32.le_u":Tt((t,e)=>t<=e),"i32.ge_s":pt((t,e)=>t>=e),"i32.ge_u":Tt((t,e)=>t>=e),"i32.eqz":t=>t===0?1:0,"i32.clz":t=>Math.clz32(t),"i32.ctz":t=>t===0?32:31-Math.clz32(t&-t),"i32.popcnt":t=>{let e=0;for(;t;)e+=t&1,t>>>=1;return e},"i32.wrap_i64":t=>Number(BigInt.asIntN(32,t)),"i32.extend8_s":t=>t<<24>>24,"i32.extend16_s":t=>t<<16>>16,"i64.add":(t,e)=>BigInt.asIntN(64,t+e),"i64.sub":(t,e)=>BigInt.asIntN(64,t-e),"i64.mul":(t,e)=>BigInt.asIntN(64,t*e),"i64.div_s":(t,e)=>e!==0n?BigInt.asIntN(64,t/e):null,"i64.div_u":(t,e)=>e!==0n?BigInt.asUintN(64,BigInt.asUintN(64,t)/BigInt.asUintN(64,e)):null,"i64.rem_s":(t,e)=>e!==0n?BigInt.asIntN(64,t%e):null,"i64.rem_u":(t,e)=>e!==0n?BigInt.asUintN(64,BigInt.asUintN(64,t)%BigInt.asUintN(64,e)):null,"i64.and":(t,e)=>BigInt.asIntN(64,t&e),"i64.or":(t,e)=>BigInt.asIntN(64,t|e),"i64.xor":(t,e)=>BigInt.asIntN(64,t^e),"i64.shl":(t,e)=>BigInt.asIntN(64,t<<(e&63n)),"i64.shr_s":(t,e)=>BigInt.asIntN(64,t>>(e&63n)),"i64.shr_u":(t,e)=>BigInt.asUintN(64,BigInt.asUintN(64,t)>>(e&63n)),"i64.eq":mt((t,e)=>t===e),"i64.ne":mt((t,e)=>t!==e),"i64.lt_s":mt((t,e)=>t<e),"i64.lt_u":Et((t,e)=>t<e),"i64.gt_s":mt((t,e)=>t>e),"i64.gt_u":Et((t,e)=>t>e),"i64.le_s":mt((t,e)=>t<=e),"i64.le_u":Et((t,e)=>t<=e),"i64.ge_s":mt((t,e)=>t>=e),"i64.ge_u":Et((t,e)=>t>=e),"i64.eqz":t=>t===0n?1:0,"i64.extend_i32_s":t=>BigInt(t),"i64.extend_i32_u":t=>BigInt(t>>>0),"i64.extend8_s":t=>BigInt.asIntN(64,BigInt.asIntN(8,t)),"i64.extend16_s":t=>BigInt.asIntN(64,BigInt.asIntN(16,t)),"i64.extend32_s":t=>BigInt.asIntN(64,BigInt.asIntN(32,t)),"f32.add":(t,e)=>Math.fround(t+e),"f32.sub":(t,e)=>Math.fround(t-e),"f32.mul":(t,e)=>Math.fround(t*e),"f32.div":(t,e)=>Math.fround(t/e),"f32.neg":t=>Math.fround(-t),"f32.abs":t=>Math.fround(Math.abs(t)),"f32.sqrt":t=>Math.fround(Math.sqrt(t)),"f32.ceil":t=>Math.fround(Math.ceil(t)),"f32.floor":t=>Math.fround(Math.floor(t)),"f32.trunc":t=>Math.fround(Math.trunc(t)),"f32.nearest":t=>Math.fround(be(t)),"f64.add":(t,e)=>t+e,"f64.sub":(t,e)=>t-e,"f64.mul":(t,e)=>t*e,"f64.div":(t,e)=>t/e,"f64.neg":t=>-t,"f64.abs":Math.abs,"f64.sqrt":Math.sqrt,"f64.ceil":Math.ceil,"f64.floor":Math.floor,"f64.trunc":Math.trunc,"f64.nearest":be,"i32.reinterpret_f32":Ar,"f32.reinterpret_i32":br,"i64.reinterpret_f64":xr,"f64.reinterpret_i64":dr,"f32.convert_i32_s":t=>Math.fround(t|0),"f32.convert_i32_u":t=>Math.fround(t>>>0),"f32.convert_i64_s":t=>Math.fround(Number(BigInt.asIntN(64,t))),"f32.convert_i64_u":t=>Math.fround(Number(BigInt.asUintN(64,t))),"f64.convert_i32_s":t=>t|0,"f64.convert_i32_u":t=>t>>>0,"f64.convert_i64_s":t=>Number(BigInt.asIntN(64,t)),"f64.convert_i64_u":t=>Number(BigInt.asUintN(64,t)),"f32.demote_f64":t=>Math.fround(t),"f64.promote_f32":t=>Math.fround(t)},vr=(t,e=t?.indexOf?.("nan"))=>{if(e<0||e==null)return null;let r=t.slice(e+4).replaceAll("_",""),i=t[e+3]===":"&&r!=="canonical"&&r!=="arithmetic"?BigInt(r):0x8000000000000n;return Xt[0]=BigInt.asIntN(64,i|0x7ff0000000000000n|(t[0]==="-"?1n<<63n:0n)),Yt[0]},$r=(t,e=t?.indexOf?.("nan"))=>{if(e<0||e==null)return null;let r=t.slice(e+4).replaceAll("_",""),i=t[e+3]===":"&&r!=="canonical"&&r!=="arithmetic"?parseInt(r):4194304;return Kt[0]=i|2139095040|(t[0]==="-"?2147483648:0)|0,Zt[0]},E=t=>{if(!Array.isArray(t)||t.length!==2)return null;let[e,r]=t;if(e==="i32.const")return{type:"i32",value:(typeof r=="string"?P.parse(r):r)|0};if(e==="i64.const")return{type:"i64",value:typeof r=="string"?nt.parse(r):BigInt(r)};if(e==="f32.const"){let i=$r(r);return{type:"f32",value:i!==null?i:Math.fround(Number(r))}}if(e==="f64.const"){let i=vr(r);return{type:"f64",value:i!==null?i:Number(r)}}return null},we=(t,e)=>t==="i32"?["i32.const",e|0]:t==="i64"?["i64.const",e]:t==="f32"?["f32.const",Math.fround(e)]:t==="f64"?["f64.const",e]:null,Ir=t=>U(t,e=>{if(!Array.isArray(e))return;let r=wr[e[0]];if(r){if(r.length===1&&e.length===2){let i=E(e[1]);if(!i)return;let s=r(i.value);return s===null?void 0:we(xt(e[0]),s)}if(r.length===2&&e.length===3){let i=E(e[1]),s=E(e[2]);if(!i||!s)return;let n=r(i.value,s.value);return n===null?void 0:we(xt(e[0]),n)}}}),it=t=>(e,r)=>{let i=E(e),s=E(r);return i?.value===t?r:s?.value===t?e:null},K=t=>(e,r)=>E(r)?.value===t?e:null,kr={"i32.add":it(0),"i64.add":it(0n),"i32.sub":K(0),"i64.sub":K(0n),"i32.mul":it(1),"i64.mul":it(1n),"i32.div_s":K(1),"i32.div_u":K(1),"i64.div_s":K(1n),"i64.div_u":K(1n),"i32.and":it(-1),"i64.and":it(-1n),"i32.or":it(0),"i64.or":it(0n),"i32.xor":it(0),"i64.xor":it(0n),"i32.shl":K(0),"i32.shr_s":K(0),"i32.shr_u":K(0),"i64.shl":K(0n),"i64.shr_s":K(0n),"i64.shr_u":K(0n)},Mr=t=>U(t,e=>{if(!Array.isArray(e)||e.length!==3)return;let r=kr[e[0]];if(!r)return;let i=r(e[1],e[2]);if(i!==null)return i}),Br=t=>U(t,e=>{if(!Array.isArray(e)||e.length!==3)return;let[r,i,s]=e;if(r==="i32.mul"){let n=E(s);if(n&&n.value>0&&!(n.value&n.value-1)){let a=Math.log2(n.value);if(Number.isInteger(a))return["i32.shl",i,["i32.const",a]]}let l=E(i);if(l&&l.value>0&&!(l.value&l.value-1)){let a=Math.log2(l.value);if(Number.isInteger(a))return["i32.shl",s,["i32.const",a]]}}if(r==="i64.mul"){let n=E(s);if(n&&n.value>0n&&(n.value&n.value-1n)===0n){let a=BigInt(n.value.toString(2).length-1);return["i64.shl",i,["i64.const",a]]}let l=E(i);if(l&&l.value>0n&&(l.value&l.value-1n)===0n){let a=BigInt(l.value.toString(2).length-1);return["i64.shl",s,["i64.const",a]]}}if(r==="i32.div_u"){let n=E(s);if(n&&n.value>0&&!(n.value&n.value-1)){let l=Math.log2(n.value);if(Number.isInteger(l))return["i32.shr_u",i,["i32.const",l]]}}if(r==="i64.div_u"){let n=E(s);if(n&&n.value>0n&&(n.value&n.value-1n)===0n){let l=BigInt(n.value.toString(2).length-1);return["i64.shr_u",i,["i64.const",l]]}}if(r==="i32.rem_u"){let n=E(s);if(n&&n.value>0&&!(n.value&n.value-1))return["i32.and",i,["i32.const",n.value-1]]}if(r==="i64.rem_u"){let n=E(s);if(n&&n.value>0n&&(n.value&n.value-1n)===0n)return["i64.and",i,["i64.const",n.value-1n]]}}),Nr=t=>U(t,e=>{if(!Array.isArray(e))return;let r=e[0];if(r==="if"){let{cond:i,thenBranch:s,elseBranch:n}=Ct(e),l=E(i);if(!l)return;let a=l.value!==0&&l.value!==0n?s:n;if(a&&a.length>1){let o=a.slice(1);return o.length===1?o[0]:["block",...o]}return["nop"]}if(r==="br_if"&&e.length>=3){let i=e[e.length-1],s=E(i);return s?s.value===0||s.value===0n?["nop"]:["br",e[1]]:void 0}if(r==="select"&&e.length>=4){let i=e[e.length-1],s=E(i);return s?s.value===0||s.value===0n?e[2]:e[1]:void 0}}),ve=new Set(["unreachable","return","br","br_table"]),Sr=t=>(S(t,e=>{if(!Array.isArray(e))return;let r=e[0];if((r==="func"||r==="block"||r==="loop")&&$e(e),r==="if")for(let i=1;i<e.length;i++)Array.isArray(e[i])&&(e[i][0]==="then"||e[i][0]==="else")&&$e(e[i])}),t),$e=t=>{let e=!1,r=-1;for(let i=1;i<t.length;i++){let s=t[i];if(Array.isArray(s)){let n=s[0];if(n==="param"||n==="result"||n==="local"||n==="type"||n==="export")continue;e&&r===-1&&(r=i),ve.has(n)&&(e=!0,r=i+1)}else typeof s=="string"&&(e&&r===-1&&(r=i),ve.has(s)&&(e=!0,r=i+1))}r>0&&r<t.length&&t.splice(r)},zr=t=>(S(t,e=>{if(!Array.isArray(e)||e[0]!=="func")return;let r=[],i=new Map,s=new Set;for(let n=1;n<e.length;n++){let l=e[n];Array.isArray(l)&&(l[0]==="local"&&(r.push({node:l,idx:n}),typeof l[1]=="string"&&l[1][0]==="$"&&i.set(l[1],l[2])),l[0]==="param"&&typeof l[1]=="string"&&l[1][0]==="$"&&(i.set(l[1],l[2]),s.add(l[1])))}S(e,n=>{if(!Array.isArray(n))return;let l=n[0];if(l==="local.get"||l==="local.set"||l==="local.tee"){let a=n[1];typeof a=="string"&&s.add(a)}});for(let n=r.length-1;n>=0;n--){let{idx:l,node:a}=r[n],o=typeof a[1]=="string"&&a[1][0]==="$"?a[1]:null;o&&!s.has(o)&&e.splice(l,1)}}),t),Tr=new Set(["call","call_indirect","return_call","return_call_indirect","table.set","table.grow","table.fill","table.copy","table.init","struct.set","struct.new","array.set","array.new","array.new_fixed","array.new_data","array.new_elem","array.init_data","array.init_elem","ref.i31","global.set","local.set","local.tee","unreachable","return","br","br_if","br_table","br_on_null","br_on_non_null","br_on_cast","br_on_cast_fail","throw","rethrow","throw_ref","try_table","data.drop","elem.drop"]),Er=[".store","memory.",".atomic."],gt=t=>{if(!Array.isArray(t))return!0;let e=t[0];if(typeof e!="string"||Tr.has(e))return!1;for(let r of Er)if(e.includes(r))return!1;for(let r=1;r<t.length;r++)if(Array.isArray(t[r])&&!gt(t[r]))return!1;return!0},Ur=t=>{let e=new Map,r=i=>(e.has(i)||e.set(i,{gets:0,sets:0,tees:0}),e.get(i));return S(t,i=>{!Array.isArray(i)||i.length<2||typeof i[1]!="string"||(i[0]==="local.get"?r(i[1]).gets++:i[0]==="local.set"?r(i[1]).sets++:i[0]==="local.tee"&&r(i[1]).tees++)}),e},qr=t=>{let e=E(t);if(!e)return!1;if(e.type==="i32"){let r=e.value|0;return r>=-64&&r<=63}if(e.type==="i64"){let r=typeof e.value=="bigint"?e.value:BigInt(e.value);return r>=-64n&&r<=63n}return!1},Ne=t=>t.pure&&t.singleUse||qr(t.val),Ut=(t,e)=>{for(let[r,i]of t){let s=!1;S(i.val,n=>{Array.isArray(n)&&(n[0]==="local.get"||n[0]==="local.tee")&&n[1]===e&&(s=!0)}),s&&t.delete(r)}},Se=t=>{if(!Array.isArray(t))return!1;let e=t[0];if(typeof e=="string"&&(e.includes(".load")||e==="memory.copy"||e==="memory.size"))return!0;for(let r=1;r<t.length;r++)if(Se(t[r]))return!0;return!1},ze=t=>{if(!Array.isArray(t))return!1;let e=t[0];if(typeof e=="string"&&(e==="global.get"||e==="table.get"||e==="table.size"||e==="call"||e==="call_indirect"||e==="return_call"||e==="return_call_indirect"||e.includes(".load")||e==="memory.copy"||e==="memory.size"))return!0;for(let r=1;r<t.length;r++)if(ze(t[r]))return!0;return!1},Ht=t=>{if(!Array.isArray(t))return!1;let e=t[0];if(typeof e=="string"&&(e.endsWith(".store")||e==="memory.copy"||e==="memory.fill"||e==="memory.init"||e.includes(".atomic.")&&!e.endsWith(".load")))return!0;for(let r=1;r<t.length;r++)if(Ht(t[r]))return!0;return!1},Vt=(t,e)=>{if(!Array.isArray(t))return t;let r=t[0];if(r==="local.get"&&t.length===2){let s=typeof t[1]=="string"&&e.get(t[1]);return s&&Ne(s)?G(s.val):t}let i=e;if(r==="block"||r==="loop"||r==="if"){let s=null;S(t,n=>{Array.isArray(n)&&(n[0]==="local.set"||n[0]==="local.tee")&&typeof n[1]=="string"&&e.has(n[1])&&(s||(s=new Map(e)),s.delete(n[1]))}),s&&(i=s)}for(let s=1;s<t.length;s++){let n=Vt(t[s],i);n!==t[s]&&(t[s]=n),s+1<t.length&&Array.isArray(t[s])&&S(t[s],l=>{Array.isArray(l)&&(l[0]==="local.set"||l[0]==="local.tee")&&typeof l[1]=="string"&&(i===e&&(i=new Map(e)),i.delete(l[1]),Ut(i,l[1]))})}return t},Fr=(t,e,r)=>{let i=!1,s=l=>r.get(l)||{gets:0,sets:0,tees:0},n=new Map;for(let l=1;l<t.length;l++){let a=t[l];if(!Array.isArray(a))continue;let o=a[0];if(!(o==="param"||o==="result"||o==="local"||o==="type"||o==="export")){if((o==="local.set"||o==="local.tee")&&a.length===3&&typeof a[1]=="string"){let f=Vt(a[2],n);f!==a[2]&&(a[2]=f,i=!0),S(a[2],u=>{Array.isArray(u)&&(u[0]==="local.set"||u[0]==="local.tee")&&typeof u[1]=="string"&&(n.delete(u[1]),Ut(n,u[1]))});let c=s(a[1]);if(Ut(n,a[1]),Ht(a[2]))for(let[u,p]of n)p.readsMem&&n.delete(u);n.set(a[1],{val:a[2],pure:gt(a[2]),readsMem:Se(a[2]),singleUse:c.gets<=1&&c.sets<=1&&c.tees===0});continue}if((o==="block"||o==="loop"||o==="if")&&n.clear(),o==="call"||o==="call_indirect"||o==="return_call"||o==="return_call_indirect")for(let[f,c]of n)ze(c.val)&&n.delete(f);if(o==="local.get"&&a.length===2&&typeof a[1]=="string"){let f=n.get(a[1]);if(f&&Ne(f)){let c=G(f.val);a.length=0,a.push(...Array.isArray(c)?c:[c]),i=!0;continue}}if(o!=="block"&&o!=="loop"&&o!=="if"){let f=G(a);if(Vt(a,n),T(f,a)||(i=!0),S(a,c=>{Array.isArray(c)&&(c[0]==="local.set"||c[0]==="local.tee")&&typeof c[1]=="string"&&(n.delete(c[1]),Ut(n,c[1]))}),Ht(a))for(let[c,u]of n)u.readsMem&&n.delete(c)}}}return i},Or=(t,e,r)=>{let i=!1;for(let s=1;s<t.length-1;s++){let n=t[s],l=t[s+1];if(!Array.isArray(n)||n[0]!=="local.set"||n.length!==3||!Array.isArray(l)||l[0]!=="local.get"||l.length!==2)continue;let a=n[1];if(l[1]!==a||e.has(a))continue;let o=r.get(a)||{gets:0,sets:0,tees:0};if(o.sets!==1||o.gets!==1||o.tees!==0)continue;let f=G(n[2]);t.splice(s,2,...Array.isArray(f)?[f]:[f]),i=!0,s--}return i},Cr=(t,e,r)=>{let i=!1;for(let s=1;s<t.length-1;s++){let n=t[s],l=t[s+1];if(!Array.isArray(n)||n[0]!=="local.set"||n.length!==3||!Array.isArray(l)||l[0]!=="local.get"||l.length!==2)continue;let a=n[1];if(l[1]!==a||e.has(a))continue;let o=r.get(a)||{gets:0,sets:0,tees:0};o.sets+o.gets+o.tees<=2||(t.splice(s,2,["local.tee",a,G(n[2])]),i=!0)}return i},Lr=(t,e,r)=>{let i=!1,s=n=>r.get(n)||{gets:0,sets:0,tees:0};for(let n=t.length-1;n>=1;n--){let l=t[n];if(!Array.isArray(l))continue;let a=typeof l[1]=="string"?l[1]:null;if(!a||e.has(a))continue;let o=s(a);l[0]==="local.set"&&o.gets===0&&o.tees===0?l.length===3?gt(l[2])&&(t.splice(n,1),i=!0):l.length===2&&(t[n]=["drop"],i=!0):l[0]==="local"&&a[0]==="$"&&o.gets===0&&o.sets===0&&o.tees===0&&(t.splice(n,1),i=!0)}return i},Te=t=>Array.isArray(t)&&(t[0]==="func"||t[0]==="block"||t[0]==="loop"||t[0]==="then"||t[0]==="else"),Ee=t=>(S(t,e=>{if(!Array.isArray(e)||e[0]!=="func")return;let r=new Set;for(let s of e)Array.isArray(s)&&s[0]==="param"&&typeof s[1]=="string"&&r.add(s[1]);let i=[];U(e,s=>{Te(s)&&i.push(s)});for(let s=0;s<6;s++){let n=Ur(e),l=!1;for(let a of i)Fr(a,r,n)&&(l=!0),Or(a,r,n)&&(l=!0),Cr(a,r,n)&&(l=!0),Lr(a,r,n)&&(l=!0);if(!l)break}}),t),Dr=t=>{if(!Array.isArray(t)||t[0]!=="module")return t;let e=new Map;for(let r of t.slice(1)){if(!Array.isArray(r)||r[0]!=="func")continue;let i=typeof r[1]=="string"&&r[1][0]==="$"?r[1]:null;if(!i)continue;let s=[],n=[],l=!1,a=!1;for(let o=1;o<r.length;o++){let f=r[o];if(Array.isArray(f))if(f[0]==="param")if(typeof f[1]=="string"&&f[1][0]==="$")s.push({name:f[1],type:f[2]});else{s=null;break}else f[0]==="local"?l=!0:f[0]==="export"?a=!0:f[0]!=="result"&&f[0]!=="type"&&n.push(f)}if(s&&!l&&!a&&s.length<=4&&n.length===1){let o=new Set(s.map(u=>u.name)),f=!1,c=!1;S(n[0],u=>{Array.isArray(u)&&((u[0]==="local.set"||u[0]==="local.tee")&&o.has(u[1])&&(f=!0),(u[0]==="return"||u[0]==="return_call"||u[0]==="return_call_indirect")&&(c=!0))}),!f&&!c&&e.set(i,{body:n[0],params:s})}}return e.size===0||U(t,r=>{if(!Array.isArray(r)||r[0]!=="call")return;let i=r[1];if(!e.has(i))return;let{body:s,params:n}=e.get(i),l=r.slice(2);return n.length===0?G(s):U(G(s),o=>{if(!Array.isArray(o)||o[0]!=="local.get")return;let f=o[1],c=n.findIndex(u=>u.name===f);if(c!==-1&&l[c])return G(l[c])})}),t},Rr=0,Wr=t=>{if(!Array.isArray(t)||t[0]!=="module")return t;let e=new Set(["export","type","param","result","local"]),r=f=>{let c=2;for(;c<f.length&&(typeof f[c]=="string"||Array.isArray(f[c])&&e.has(f[c][0]));)c++;return c},i=f=>f==="br"||f==="br_if"||f==="br_table",s=f=>{if(!Array.isArray(f))return!1;let c=f[0];if(c==="return_call"||c==="return_call_indirect"||c==="return_call_ref"||c==="try"||c==="try_table"||c==="delegate"||c==="rethrow")return!0;if(i(c)){for(let u=1;u<f.length;u++)if(typeof f[u]=="number"||typeof f[u]=="string"&&/^\d+$/.test(f[u]))return!0}for(let u=1;u<f.length;u++)if(s(f[u]))return!0;return!1},n=(f,c)=>{if(!Array.isArray(f))return!1;if((f[0]==="call"||f[0]==="return_call")&&f[1]===c)return!0;for(let u=1;u<f.length;u++)if(n(f[u],c))return!0;return!1},l=f=>f==="i32"?["i32.const",0]:f==="i64"?["i64.const",0n]:f==="f32"?["f32.const",0]:f==="f64"?["f64.const",0]:f==="v128"?["v128.const","i64x2",0n,0n]:null,a=(f,c)=>{let u=!1,p=!1,y=0,g=m=>{if(u||!Array.isArray(m))return;let _=m[0],b=_==="local.set"||_==="local.tee";if((b||_==="local.get")&&m[1]===c){if(b)for(let A=2;A<m.length&&!u;A++)g(m[A]);if(u)return;u=!0,(_==="local.get"||y>0)&&(p=!0);return}let v=_==="if";for(let A=1;A<m.length&&!u;A++){let z=m[A],I=v&&Array.isArray(z)&&(z[0]==="then"||z[0]==="else");I&&y++,g(z),I&&y--}};for(let m of f){if(u)break;g(m)}return u?p:!1},o=(f,c)=>{if(!Array.isArray(f))return;let u=f[0];if(u==="export"&&Array.isArray(f[2])&&f[2][0]==="func"&&typeof f[2][1]=="string")c.add(f[2][1]);else if(u==="start"&&typeof f[1]=="string")c.add(f[1]);else if(u==="ref.func"&&typeof f[1]=="string")c.add(f[1]);else if(u==="elem")for(let p of f)typeof p=="string"&&p[0]==="$"&&c.add(p);for(let p of f)o(p,c)};for(let f=0;f<16;f++){let c=t.filter(w=>Array.isArray(w)&&w[0]==="func"),u=new Map;for(let w of c)typeof w[1]=="string"&&u.set(w[1],w);let p=new Map,y=new Set,g=w=>{if(!Array.isArray(w))return;let N=w[0];N==="call"&&typeof w[1]=="string"?p.set(w[1],(p.get(w[1])||0)+1):N==="return_call"&&typeof w[1]=="string"&&y.add(w[1]);for(let F=1;F<w.length;F++)g(w[F])};g(t);let m=new Set;for(let w of t)(!Array.isArray(w)||w[0]!=="func")&&o(w,m);let _=null;for(let[w,N]of u){if(m.has(w)||y.has(w)||p.get(w)!==1||n(N,w))continue;let F=!0,J=0;for(let V=2;V<N.length;V++){let j=N[V];if(typeof j!="string"){if(!Array.isArray(j)){F=!1;break}if(j[0]==="param"||j[0]==="local"){if(typeof j[1]!="string"||j[1][0]!=="$"){F=!1;break}if(j[0]==="local"&&!l(j[2])){F=!1;break}}else if(j[0]==="result")J+=j.length-1;else if(j[0]==="export"){F=!1;break}else{if(j[0]==="type")continue;break}}}if(!F||J>1)continue;let tt=!1;for(let V=r(N);V<N.length;V++)if(s(N[V])){tt=!0;break}if(!tt){_=w;break}}if(!_)break;let b=u.get(_),v=[],A=[],z=null;for(let w=2;w<b.length;w++){let N=b[w];if(!(typeof N=="string"||!Array.isArray(N)))if(N[0]==="param")v.push({name:N[1],type:N[2]});else if(N[0]==="result")N.length>1&&(z=N[1]);else if(N[0]==="local")A.push({name:N[1],type:N[2]});else{if(N[0]==="export"||N[0]==="type")continue;break}}let I=b.slice(r(b)),M=++Rr,C=`$__inl${M}`,O=new Map;for(let w of v)O.set(w.name,`$__inl${M}_${w.name.slice(1)}`);for(let w of A)O.set(w.name,`$__inl${M}_${w.name.slice(1)}`);let q=w=>w==="block"||w==="loop"||w==="if",x=new Map,d=w=>{if(Array.isArray(w)){q(w[0])&&typeof w[1]=="string"&&w[1][0]==="$"&&!x.has(w[1])&&x.set(w[1],`$__inl${M}L_${w[1].slice(1)}`);for(let N=1;N<w.length;N++)d(w[N])}};for(let w of I)d(w);let k=w=>{if(!Array.isArray(w))return w;let N=w[0];return(N==="local.get"||N==="local.set"||N==="local.tee")&&typeof w[1]=="string"&&O.has(w[1])?[N,O.get(w[1]),...w.slice(2).map(k)]:N==="return"?["br",C,...w.slice(1).map(k)]:q(N)&&typeof w[1]=="string"&&x.has(w[1])?[N,x.get(w[1]),...w.slice(2).map(k)]:i(N)?[N,...w.slice(1).map(F=>typeof F=="string"&&x.has(F)?x.get(F):k(F))]:w.map((F,J)=>J===0?F:k(F))},D=!1;for(let w of c){if(w===b||D)continue;let N=r(w);for(let F=N;F<w.length;F++){let J=U(w[F],tt=>{if(D||!Array.isArray(tt)||tt[0]!=="call"||tt[1]!==_)return;let V=tt.slice(2);if(V.length!==v.length)return;let j=v.map((ot,Le)=>["local.set",O.get(ot.name),V[Le]]),ee=A.filter(ot=>a(I,ot.name)).map(ot=>["local.set",O.get(ot.name),l(ot.type)]),re=I.map(k);return D=!0,z?["block",C,["result",z],...j,...ee,...re]:["block",C,...j,...ee,...re]});if(J!==w[F]&&(w[F]=J),D){let tt=[...v,...A].map(V=>["local",O.get(V.name),V.type]);tt.length&&w.splice(r(w),0,...tt);break}}if(D)break}if(!D)break;let Q=t.indexOf(b);Q>=0&&t.splice(Q,1)}return t},qt=(t,e)=>{let r=!1,i=(s,n)=>{if(r||!Array.isArray(s))return;let l=s[0],a=n;if((l==="block"||l==="loop")&&typeof s[1]=="string"&&s[1]===e&&(a=!0),!n){if(l==="br"||l==="br_if"||l==="br_on_null"||l==="br_on_non_null"||l==="br_on_cast"||l==="br_on_cast_fail"){if(s[1]===e){r=!0;return}}else if(l==="br_table"){for(let o=1;o<s.length&&typeof s[o]=="string";o++)if(s[o]===e){r=!0;return}}else if(l==="catch"||l==="catch_ref"){if(s[2]===e){r=!0;return}}else if((l==="catch_all"||l==="catch_all_ref")&&s[1]===e){r=!0;return}}for(let o=1;o<s.length;o++)i(s[o],a)};for(let s of t)i(s,!1);return r},Pr=t=>(U(t,e=>{if(!Array.isArray(e)||e[0]!=="block")return;let r=1,i=null;typeof e[1]=="string"&&e[1][0]==="$"&&(i=e[1],r=2);let s=!1;for(;r<e.length;){let a=e[r];if(Array.isArray(a)&&(a[0]==="param"||a[0]==="type")){r++;continue}if(Array.isArray(a)&&a[0]==="result"){s=!0,r++;continue}break}let n=e.slice(r);if(!s||n.length!==1)return;let l=n[0];if(Array.isArray(l)&&!(i&&qt(n,i))){e.length=0;for(let a of l)e.push(a)}}),S(t,e=>{if(!Te(e))return;let r=1;for(;r<e.length;){let i=e[r];if(!Array.isArray(i)){r++;continue}{let a=i[0],o=a==="local.set"||a==="global.set"?2:a==="drop"?1:-1;if(o>=0&&i.length===o+1){let f=i[o];if(Array.isArray(f)&&f[0]==="block"){let c=1,u=null;typeof f[1]=="string"&&f[1][0]==="$"&&(u=f[1],c=2);let p=!1;for(;c<f.length;){let g=f[c];if(Array.isArray(g)&&(g[0]==="param"||g[0]==="type")){c++;continue}if(Array.isArray(g)&&g[0]==="result"){p=!0,c++;continue}break}let y=p?f.slice(c):null;if(y&&y.length>=2&&!(u&&qt(y,u))){let g=y[y.length-1],m=y.slice(0,-1);i[o]=g,e.splice(r,1,...m,i);continue}}}}if(i[0]!=="block"){r++;continue}let s=1,n=null;for(typeof i[1]=="string"&&i[1][0]==="$"&&(n=i[1],s=2);s<i.length;){let a=i[s];if(Array.isArray(a)&&(a[0]==="param"||a[0]==="result"||a[0]==="type")){s++;continue}break}let l=i.slice(s);if(n&&qt(l,n)){r++;continue}e.splice(r,1,...l),r+=l.length}}),t),jr=t=>(S(t,e=>{if(!Array.isArray(e)||e[0]!=="func")return;let r=new Map;for(let p of e)Array.isArray(p)&&p[0]==="local"&&typeof p[1]=="string"&&p[1][0]==="$"&&typeof p[2]=="string"&&r.set(p[1],p[2]);if(r.size<2)return;let i=new Map,s=[],n=0,l=!1,a=0,o=p=>{if(l||!Array.isArray(p))return;let y=p[0],g=y==="loop";g&&s.push({start:n,end:n});let m=y==="local.set"||y==="local.tee";if(m||y==="local.get"){let _=p[1];if(typeof _!="string"||_[0]!=="$"){l=!0;return}if(m)for(let v=2;v<p.length;v++)o(p[v]);let b=n++;if(r.has(_)){let v=i.get(_);v||(v={start:b,end:b,firstOp:y,firstCond:a>0,loops:new Set},i.set(_,v)),b>v.end&&(v.end=b);for(let A of s)v.loops.add(A)}}else{n++;let _=y==="if";for(let b=1;b<p.length;b++){let v=p[b],A=_&&Array.isArray(v)&&(v[0]==="then"||v[0]==="else");A&&a++,o(v),A&&a--}}if(g){let _=s.pop();_.end=n}};if(o(e),l)return;for(let p of i.values())for(let y of p.loops)y.start<p.start&&(p.start=y.start),y.end>p.end&&(p.end=y.end);let f=[...i.entries()].sort((p,y)=>p[1].start-y[1].start),c=new Map,u=[];for(let[p,y]of f){let g=y.firstOp==="local.get"||y.firstCond,m=r.get(p),_=g?null:u.find(b=>b.type===m&&b.end<y.start);_?(c.set(p,_.primary),y.end>_.end&&(_.end=y.end)):u.push({primary:p,type:m,end:y.end})}c.size!==0&&S(e,p=>{Array.isArray(p)&&(p[0]==="local.get"||p[0]==="local.set"||p[0]==="local.tee")&&c.has(p[1])&&(p[1]=c.get(p[1]))})}),t),Gr=t=>U(t,e=>{if(!Array.isArray(e))return;let r=e[0];if(r==="nop")return["nop"];if(r==="drop"&&e.length===2&&gt(e[1]))return["nop"];if(r==="select"&&e.length>=4&&T(e[1],e[2]))return e[1];if(r==="if"){let{cond:i,thenBranch:s,elseBranch:n}=Ct(e),l=!s||s.length<=1,a=!n||n.length<=1;if(l&&a)return gt(i)?["nop"]:["drop",i];if(n&&a&&!l)return e.filter(o=>o!==n)}if(r==="func"||r==="block"||r==="loop"||r==="then"||r==="else"){let i=[r];for(let s=1;s<e.length;s++){let n=e[s];if(n==="nop"||Array.isArray(n)&&n[0]==="nop")continue;let l=e[s+1],a=l==="drop"||Array.isArray(l)&&l[0]==="drop"&&l.length===1;if(Array.isArray(n)&&gt(n)&&a){s++;continue}i.push(n)}if(i.length!==e.length)return i}}),Hr={"i32.sub":(t,e)=>T(t,e)?["i32.const",0]:null,"i64.sub":(t,e)=>T(t,e)?["i64.const",0n]:null,"i32.xor":(t,e)=>T(t,e)?["i32.const",0]:null,"i64.xor":(t,e)=>T(t,e)?["i64.const",0n]:null,"i32.eq":(t,e)=>T(t,e)?["i32.const",1]:null,"i64.eq":(t,e)=>T(t,e)?["i32.const",1]:null,"i32.ne":(t,e)=>T(t,e)?["i32.const",0]:null,"i64.ne":(t,e)=>T(t,e)?["i32.const",0]:null,"i32.lt_s":(t,e)=>T(t,e)?["i32.const",0]:null,"i32.lt_u":(t,e)=>T(t,e)?["i32.const",0]:null,"i32.gt_s":(t,e)=>T(t,e)?["i32.const",0]:null,"i32.gt_u":(t,e)=>T(t,e)?["i32.const",0]:null,"i32.le_s":(t,e)=>T(t,e)?["i32.const",1]:null,"i32.le_u":(t,e)=>T(t,e)?["i32.const",1]:null,"i32.ge_s":(t,e)=>T(t,e)?["i32.const",1]:null,"i32.ge_u":(t,e)=>T(t,e)?["i32.const",1]:null,"i64.lt_s":(t,e)=>T(t,e)?["i32.const",0]:null,"i64.lt_u":(t,e)=>T(t,e)?["i32.const",0]:null,"i64.gt_s":(t,e)=>T(t,e)?["i32.const",0]:null,"i64.gt_u":(t,e)=>T(t,e)?["i32.const",0]:null,"i64.le_s":(t,e)=>T(t,e)?["i32.const",1]:null,"i64.le_u":(t,e)=>T(t,e)?["i32.const",1]:null,"i64.ge_s":(t,e)=>T(t,e)?["i32.const",1]:null,"i64.ge_u":(t,e)=>T(t,e)?["i32.const",1]:null,"i32.mul":(t,e)=>{let r=E(t),i=E(e);return r?.value===0||i?.value===0?["i32.const",0]:null},"i64.mul":(t,e)=>{let r=E(t),i=E(e);return r?.value===0n||i?.value===0n?["i64.const",0n]:null},"i32.and":(t,e)=>{if(T(t,e))return t;let r=E(t),i=E(e);return r?.value===0||i?.value===0?["i32.const",0]:null},"i64.and":(t,e)=>{if(T(t,e))return t;let r=E(t),i=E(e);return r?.value===0n||i?.value===0n?["i64.const",0n]:null},"i32.or":(t,e)=>{if(T(t,e))return t;let r=E(t),i=E(e);return r?.value===-1||i?.value===-1?["i32.const",-1]:null},"i64.or":(t,e)=>{if(T(t,e))return t;let r=E(t),i=E(e);return r?.value===-1n||i?.value===-1n?["i64.const",-1n]:null},"local.set":(t,e)=>Array.isArray(e)&&e[0]==="local.get"&&e[1]===t?["nop"]:null},Vr=t=>U(t,e=>{if(!Array.isArray(e)||e.length!==3)return;let r=Hr[e[0]];if(!r)return;let i=r(e[1],e[2]);if(i!==null)return i}),Yr=t=>{let e=typeof t=="bigint"?t:BigInt(Math.trunc(Number(t)||0)),r=1;for(;;){let i=e&0x7fn;if(e>>=7n,e===0n&&(i&0x40n)===0n||e===-1n&&(i&0x40n)!==0n)return r;r++}},Xr=t=>{if(!Array.isArray(t))return 4;switch(t[0]){case"i32.const":case"i64.const":return 1+Yr(t[1]);case"f32.const":return 5;case"f64.const":return 9;case"v128.const":return 18;default:return 4}},Zr=2,Kr=t=>{if(!Array.isArray(t)||t[0]!=="module")return t;let e=new Map,r=new Set;for(let n of t.slice(1)){if(!Array.isArray(n))continue;if(n[0]==="export"&&Array.isArray(n[2])&&n[2][0]==="global"&&typeof n[2][1]=="string"){r.add(n[2][1]);continue}if(n[0]!=="global")continue;let l=typeof n[1]=="string"&&n[1][0]==="$"?n[1]:null;if(!l)continue;n.some(f=>Array.isArray(f)&&f[0]==="export")&&r.add(l);let a=n[2];if(Array.isArray(a)&&a[0]==="mut"||Array.isArray(a)&&a[0]==="import")continue;let o=n[3];E(o)&&e.set(l,o)}if(e.size===0)return t;let i=new Map;S(t,n=>{if(!Array.isArray(n))return;let l=n[1];typeof l!="string"||l[0]!=="$"||(n[0]==="global.set"?e.delete(l):n[0]==="global.get"&&i.set(l,(i.get(l)||0)+1))});let s=new Set;for(let[n,l]of e){let a=i.get(n)||0;if(a===0)continue;let o=Xr(l),f=o+2,c=a*Zr+f;a*o+(r.has(n)?f:0)<=c&&s.add(n)}if(s.size===0)return t;U(t,n=>{if(!(!Array.isArray(n)||n[0]!=="global.get"||n.length!==2)&&s.has(n[1]))return G(e.get(n[1]))});for(let n=t.length-1;n>=1;n--){let l=t[n];Array.isArray(l)&&l[0]==="global"&&typeof l[1]=="string"&&s.has(l[1])&&!r.has(l[1])&&t.splice(n,1)}return t},Qr=t=>U(t,e=>{if(!Array.isArray(e))return;let r=e[0];if(typeof r!="string"||!r.endsWith("load")&&!r.endsWith("store"))return;let i=r.endsWith("store"),s=0,n=null,l=1;for(typeof e[1]=="string"&&(e[1][0]==="$"||!isNaN(e[1]))&&(n=e[1],l=2);l<e.length&&typeof e[l]=="string"&&(e[l].startsWith("offset=")||e[l].startsWith("align="));)e[l].startsWith("offset=")&&(s=+e[l].slice(7)),l++;let a=i?e.length-2:e.length-1,o=i?e.length-1:-1;if(a<l)return;let f=e[a];if(!Array.isArray(f)||f[0]!=="i32.add"||f.length!==3)return;let c=f[1],u=f[2],p=E(c),y=E(u),g=null,m=null;if(p&&p.type==="i32"?(m=p.value,g=u):y&&y.type==="i32"&&(m=y.value,g=c),g===null||m===null)return;let _=s+m,b=[r];n!==null&&b.push(n),b.push(`offset=${_}`);let v=null;for(let A=l;A<a;A++)typeof e[A]=="string"&&e[A].startsWith("align=")&&(v=e[A]);return v&&b.push(v),b.push(g),i&&b.push(e[o]),b}),Jr=t=>(S(t,e=>{if(!Array.isArray(e)||e[0]!=="block")return;let i=1,s=null;if(typeof e[1]=="string"&&e[1][0]==="$"&&(s=e[1],i=2),!s)return;let n=-1;for(let a=e.length-1;a>=i;a--){let o=e[a];if(!Array.isArray(o)){o!=="nop"&&o!=="end"&&(n=a);continue}let f=o[0];if(!(f==="param"||f==="result"||f==="local"||f==="type"||f==="export")){n=a;break}}if(n<0)return;let l=e[n];Array.isArray(l)&&l[0]==="br"&&l[1]===s&&e.splice(n,1,...l.slice(2))}),t),ti=t=>(S(t,e=>{if(!Array.isArray(e)||e[0]!=="block")return;let r=1,i=null;if(typeof e[1]=="string"&&e[1][0]==="$"&&(i=e[1],r=2),!i)return;for(;r<e.length;){let g=e[r];if(Array.isArray(g)&&g[0]==="type"){r++;continue}if(Array.isArray(g)&&(g[0]==="param"||g[0]==="result"))return;break}if(e.length-r!==1)return;let s=e[r];if(!Array.isArray(s)||s[0]!=="loop")return;let n=1,l=null;typeof s[1]=="string"&&s[1][0]==="$"&&(l=s[1],n=2);let a=[];for(;n<s.length;){let g=s[n];if(Array.isArray(g)&&g[0]==="type"){a.push(g),n++;continue}if(Array.isArray(g)&&(g[0]==="param"||g[0]==="result"))return;break}let o=s.slice(n);if(o.length<2)return;let f=o[0],c=o[o.length-1];if(!Array.isArray(f)||f[0]!=="br_if"||f[1]!==i||f.length!==3||!Array.isArray(c)||c[0]!=="br"||c[1]!==l||c.length!==2)return;let u=o.slice(1,-1);if(qt(u,i))return;let p=f[2];Array.isArray(p)&&p[0]==="i32.eqz"&&p.length===2?p=p[1]:p=["i32.eqz",p];let y=["loop"];l&&y.push(l);for(let g of a)y.push(g);y.push(["if",p,["then",...u,c]]),e.length=0;for(let g of y)e.push(g)}),t),ei=t=>{if(!Array.isArray(t)||t[0]!=="module")return t;let e=new Set;return S(t,r=>{Array.isArray(r)&&r[0]==="global.set"&&typeof r[1]=="string"&&e.add(r[1])}),U(t,r=>{if(!Array.isArray(r)||r[0]!=="global")return;let i=typeof r[1]=="string"&&r[1][0]==="$"?r[1]:null;if(!i||e.has(i))return;let s=typeof r[1]=="string"&&r[1][0]==="$",n=s?r[2]:r[1];if(Array.isArray(n)&&n[0]==="mut"){let l=[...r];return l[s?2:1]=n[1],l}})},ri=t=>U(t,e=>{if(!Array.isArray(e)||e[0]!=="if")return;let{cond:r,thenBranch:i,elseBranch:s}=Ct(e),n=!i||i.length<=1,l=!s||s.length<=1;if(!n&&l&&i.length===2){let a=i[1];if(Array.isArray(a)&&a[0]==="br"&&a.length===2)return["br_if",a[1],r]}if(n&&!l&&s.length===2){let a=s[1];if(Array.isArray(a)&&a[0]==="br"&&a.length===2)return["br_if",a[1],["i32.eqz",r]]}}),ii=t=>U(t,e=>{if(!Array.isArray(e)||e[0]!=="if")return;let{thenBranch:r,elseBranch:i}=Ct(e);if(!r||!i||r.length<=1||i.length<=1||!e.some(p=>Array.isArray(p)&&p[0]==="result"))return;let n=0,l=Math.min(r.length,i.length);for(let p=1;p<l&&T(r[r.length-p],i[i.length-p]);p++)n++;if(n===0)return;let a=r.slice(r.length-n),o=r.slice(0,r.length-n),f=i.slice(0,i.length-n),c=["block"];for(let p=1;p<e.length;p++){let y=e[p];if(Array.isArray(y)&&(y[0]==="then"||y[0]==="else"))break;Array.isArray(y)&&(y[0]==="result"||y[0]==="type")&&c.push(y)}let u=["if"];for(let p=1;p<e.length;p++){let y=e[p];if(Array.isArray(y)&&(y[0]==="then"||y[0]==="else"))break;Array.isArray(y)&&(y[0]==="result"||y[0]==="type")||u.push(y)}return u.push(o.length>1?o:["then"]),u.push(f.length>1?f:["else"]),c.push(u,...a),c}),Ue=(t,e)=>{let r=[],i=[t];for(;i.length;){let s=i.pop();if(Array.isArray(s)){i.push("|");for(let n=s.length-1;n>=0;n--)i.push(s[n]);i.push("[")}else typeof s=="string"?r.push(e.has(s)?"$__L":s):typeof s=="bigint"?r.push(s.toString()+"n"):typeof s=="number"?r.push(s.toString()):s===null?r.push("null"):s===!0?r.push("t"):s===!1?r.push("f"):r.push(String(s))}return r.join(",")},si=t=>{if(!Array.isArray(t)||t[0]!=="module")return t;let e=new Map,r=new Map;for(let i of t.slice(1)){if(!Array.isArray(i)||i[0]!=="func")continue;let s=typeof i[1]=="string"&&i[1][0]==="$"?i[1]:null;if(!s)continue;let n=new Set;typeof i[1]=="string"&&i[1][0]==="$"&&n.add(i[1]),S(i,a=>{if(!Array.isArray(a)||typeof a[1]!="string"||a[1][0]!=="$")return;let o=a[0];(o==="param"||o==="local"||o==="block"||o==="loop"||o==="if")&&n.add(a[1])});let l=Ue(i,n);e.has(l)?r.set(s,e.get(l)):e.set(l,s)}return r.size===0||U(t,i=>{if(!Array.isArray(i))return;let s=i[0];if((s==="call"||s==="return_call")&&r.has(i[1]))return[s,r.get(i[1]),...i.slice(2)];if(s==="ref.func"&&r.has(i[1]))return["ref.func",r.get(i[1])];if(s==="elem"){let n=i[i.length-1];if(Array.isArray(n))return[...i.slice(0,-1),n.map(l=>r.get(l)||l)]}if(s==="call_indirect"&&i.length>=3){let n=i[1];if(typeof n=="string"&&r.has(n))return["call_indirect",r.get(n),...i.slice(2)]}}),t},ni=t=>{if(!Array.isArray(t)||t[0]!=="module")return t;let e=new Map,r=new Map;for(let i of t.slice(1)){if(!Array.isArray(i)||i[0]!=="type")continue;let s=typeof i[1]=="string"&&i[1][0]==="$"?i[1]:null;if(!s)continue;let n=Ue(i,new Set([s]));e.has(n)?r.set(s,e.get(n)):e.set(n,s)}if(r.size===0)return t;for(let i=t.length-1;i>=0;i--){let s=t[i];if(Array.isArray(s)&&s[0]==="type"){let n=typeof s[1]=="string"&&s[1][0]==="$"?s[1]:null;n&&r.has(n)&&t.splice(i,1)}}return U(t,i=>{if(!Array.isArray(i))return;let s=i[0];if(s==="func")for(let n=1;n<i.length;n++){let l=i[n];Array.isArray(l)&&l[0]==="type"&&typeof l[1]=="string"&&r.has(l[1])&&(i[n]=["type",r.get(l[1])])}if(s==="import")for(let n=1;n<i.length;n++){let l=i[n];if(Array.isArray(l))for(let a=1;a<l.length;a++){let o=l[a];Array.isArray(o)&&o[0]==="type"&&typeof o[1]=="string"&&r.has(o[1])&&(l[a]=["type",r.get(o[1])])}}if(s==="call_indirect"||s==="return_call_indirect"){if(typeof i[1]=="string"&&r.has(i[1]))return[s,r.get(i[1]),...i.slice(2)];if(Array.isArray(i[1])&&i[1][0]==="type"&&typeof i[1][1]=="string"&&r.has(i[1][1]))return[s,["type",r.get(i[1][1])],...i.slice(2)]}}),t},Ft=t=>{if(typeof t!="string"||t.length<2||t[0]!=='"')return new Uint8Array;let e=t.slice(1,-1),r=[];for(let i=0;i<e.length;i++)if(e[i]==="\\"){let s=e[++i];s==="x"||s==="X"?(r.push(parseInt(e.slice(i+1,i+3),16)),i+=2):/[0-9a-fA-F]/.test(s)&&/[0-9a-fA-F]/.test(e[i+1])?(r.push(parseInt(e.slice(i,i+2),16)),i++):s==="n"?r.push(10):s==="t"?r.push(9):s==="r"?r.push(13):s==="\\"?r.push(92):s==='"'?r.push(34):r.push(s.charCodeAt(0))}else r.push(e.charCodeAt(i));return new Uint8Array(r)},qe=t=>{let e='"';for(let r=0;r<t.length;r++){let i=t[r];i>=32&&i<127&&i!==34&&i!==92?e+=String.fromCharCode(i):e+="\\"+i.toString(16).padStart(2,"0")}return e+'"'},li=t=>{let e=[];for(let i of t)if(typeof i=="string")e.push(...Ft(i));else if(Array.isArray(i)&&i[0]==="i8")for(let s=1;s<i.length;s++)e.push(Number(i[s])&255);else return t;let r=e.length;for(;r>0&&e[r-1]===0;)r--;return r===e.length?t:r===0?[]:[qe(new Uint8Array(e.slice(0,r)))]},ai=t=>{let e=1;if(typeof t[e]=="string"&&t[e][0]==="$"&&e++,Array.isArray(t[e])&&t[e][0]==="memory"){let i=t[e][1];e++;let s=t[e];return Array.isArray(s)&&(s[0]==="i32.const"||s[0]==="i64.const")?{memidx:i,offset:Number(s[1])}:null}let r=t[e];return Array.isArray(r)&&(r[0]==="i32.const"||r[0]==="i64.const")?{memidx:0,offset:Number(r[1])}:null},Ie=t=>{let e=1;typeof t[e]=="string"&&t[e][0]==="$"&&e++,Array.isArray(t[e])&&t[e][0]==="memory"&&e++,Array.isArray(t[e])&&typeof t[e][0]=="string"&&!t[e][0].startsWith('"')&&e++;let r=0;for(let i=e;i<t.length;i++){let s=t[i];if(typeof s=="string")r+=Ft(s).length;else if(Array.isArray(s)&&s[0]==="i8")r+=s.length-1;else return null}return r},fi=(t,e)=>{let r=1;typeof t[r]=="string"&&t[r][0]==="$"&&r++,Array.isArray(t[r])&&t[r][0]==="memory"&&r++,Array.isArray(t[r])&&typeof t[r][0]=="string"&&!t[r][0].startsWith('"')&&r++;let i=1;typeof e[i]=="string"&&e[i][0]==="$"&&i++,Array.isArray(e[i])&&e[i][0]==="memory"&&i++,Array.isArray(e[i])&&typeof e[i][0]=="string"&&!e[i][0].startsWith('"')&&i++;let s=t.slice(r),n=e.slice(i);if(s.length===1&&n.length===1&&typeof s[0]=="string"&&typeof n[0]=="string"){let l=Ft(s[0]),a=Ft(n[0]),o=new Uint8Array(l.length+a.length);return o.set(l),o.set(a,l.length),t.length=r,t.push(qe(o)),!0}return t.length=r,t.push(...s,...n),!0},oi=t=>{if(!Array.isArray(t)||t[0]!=="module")return t;for(let i of t){if(!Array.isArray(i)||i[0]!=="data")continue;let s=1;typeof i[1]=="string"&&i[1][0]==="$"&&(s=2),s<i.length&&Array.isArray(i[s])&&typeof i[s][0]=="string"&&!i[s][0].startsWith('"')&&s++;let n=i.slice(s);if(n.length===0)continue;let l=li(n);(l.length!==n.length||l.length>0&&l[0]!==n[0])&&(i.length=s,i.push(...l))}let e=[];for(let i=0;i<t.length;i++){let s=t[i];if(Array.isArray(s)&&s[0]==="data"){let n=ai(s);if(n){let l=Ie(s);l!==null&&e.push({...n,node:s,index:i,len:l})}}}e.sort((i,s)=>{let n=String(i.memidx),l=String(s.memidx);return n!==l?n.localeCompare(l):i.offset-s.offset});let r=new Set;for(let i=0;i<e.length-1;i++){let s=e[i],n=e[i+1];r.has(s.index)||String(s.memidx)!==String(n.memidx)||s.offset+s.len===n.offset&&fi(s.node,n.node)&&(r.add(n.index),s.len=Ie(s.node))}return r.size>0&&(t=t.filter((i,s)=>!r.has(s))),t},ke=()=>{let t=new Map,e=0;return r=>{if(!t.has(r)){let i="",s=e++;do i=String.fromCharCode(97+s%26)+i,s=Math.floor(s/26)-1;while(s>=0);t.set(r,i||"a")}return t.get(r)}},ci=t=>{if(!Array.isArray(t)||t[0]!=="module")return t;let e=ke(),r=ke();for(let i of t)!Array.isArray(i)||i[0]!=="import"||(typeof i[1]=="string"&&i[1][0]==='"'&&(i[1]='"'+e(i[1].slice(1,-1))+'"'),typeof i[2]=="string"&&i[2][0]==='"'&&(i[2]='"'+r(i[2].slice(1,-1))+'"'));return t},ui=t=>{let e=!0;return S(t,r=>{if(!e||!Array.isArray(r))return;let i=r[0];if(i==="func"&&(typeof r[1]!="string"||r[1][0]!=="$"))e=!1;else if((i==="call"||i==="return_call"||i==="ref.func")&&(typeof r[1]!="string"||r[1][0]!=="$"))e=!1;else if(i==="start"&&(typeof r[1]!="string"||r[1][0]!=="$"))e=!1;else if(i==="elem")for(let s of r){if(typeof s=="string"&&s[0]!=="$"&&/^\d/.test(s)){e=!1;break}if(Array.isArray(s)&&s[0]==="ref.func"&&(typeof s[1]!="string"||s[1][0]!=="$")){e=!1;break}}}),e},yi=t=>{if(!Array.isArray(t)||t[0]!=="module"||!ui(t))return t;let e=new Map;S(t,n=>{Array.isArray(n)&&(n[0]==="call"||n[0]==="return_call")&&e.set(n[1],(e.get(n[1])||0)+1)});let r=[],i=[],s=[];for(let n of t.slice(1)){if(!Array.isArray(n)){s.push(n);continue}n[0]==="import"?r.push(n):n[0]==="func"?i.push(n):s.push(n)}return i.sort((n,l)=>(e.get(l[1])||0)-(e.get(n[1])||0)),["module",...r,...i,...s]},Ot=[["stripmut",ei,!0,"strip mut from never-written globals"],["globals",Kr,!0,"propagate immutable global constants"],["fold",Ir,!0,"constant folding"],["identity",Mr,!0,"remove identity ops (x + 0 \u2192 x)"],["peephole",Vr,!0,"x-x\u21920, x&0\u21920, etc."],["strength",Br,!0,"strength reduction (x * 2 \u2192 x << 1)"],["branch",Nr,!0,"simplify constant branches"],["propagate",Ee,!0,"forward-propagate single-use locals & tiny consts (never inflates)"],["inlineOnce",Wr,!0,"inline single-call functions into their lone caller (never duplicates)"],["inline",Dr,!1,"inline tiny functions \u2014 can duplicate bodies"],["offset",Qr,!0,"fold add+const into load/store offset"],["unbranch",Jr,!0,"remove redundant br at end of own block"],["loopify",ti,!0,"collapse block+loop+brif while-idiom into loop+if"],["brif",ri,!0,"if-then-br \u2192 br_if"],["foldarms",ii,!1,"merge identical trailing if arms \u2014 can add block wrapper"],["deadcode",Sr,!0,"eliminate dead code after unreachable/br/return"],["vacuum",Gr,!0,"remove nops, drop-of-pure, empty branches"],["mergeBlocks",Pr,!0,"unwrap `(block $L \u2026)` whose label is never targeted"],["coalesce",jr,!0,"share local slots between same-type non-overlapping locals"],["locals",zr,!0,"remove unused locals"],["dedupe",si,!0,"eliminate duplicate functions"],["dedupTypes",ni,!0,"merge identical type definitions"],["packData",oi,!0,"trim trailing zeros, merge adjacent data segments"],["reorder",yi,!1,"put hot functions first \u2014 no AST reduction"],["treeshake",hr,!0,"remove unused funcs/globals/types/tables"],["minifyImports",ci,!1,"shorten import names \u2014 enable only when you control the host"]],Ri=Object.fromEntries(Ot.map(t=>[t[0],t[2]])),pi=t=>{if(t===!1)return{};if(t!==!0&&typeof t!="string"){let i={...t};for(let s of Ot)i[s[0]]===void 0&&(i[s[0]]=s[2]);return i}let e=typeof t=="string"?new Set(t.split(/\s+/).filter(Boolean)):null,r={};for(let i of Ot)r[i[0]]=e?e.has("all")||e.has(i[0]):i[2];return r};function Qt(t,e=!0){typeof t=="string"&&(t=et(t));let r=e===!0;e=pi(e);let i=e.log?(l,a)=>e.log(l,a):()=>{},s=e.verbose||e.log;t=G(t);let n=null;for(let l=0;l<3;l++){n=G(t);let a=Ae(t);for(let[u,p]of Ot)e[u]&&(t=p(t));e.propagate&&(e.inlineOnce||e.inline)&&(t=Ee(t));let f=Ae(t)-a;if((s||f!==0)&&i(` round ${l+1}: ${f>0?"+":""}${f} bytes`,f),f>(r?0:16)){s&&i(` \u26A0 round ${l+1} inflated by ${f} bytes, reverting`,f),t=n;break}if(T(n,t))break}return t}var Fe="\uE000",mi=(t,e={})=>{if(!Array.isArray(t))return typeof t=="string"&&t[0]==="$"&&e.locals?.[t]?e.locals[t]:null;let[r,...i]=t,s=xt(r);return s||(r==="local.get"&&e.locals?.[i[0]]?e.locals[i[0]]:r==="call"&&e.funcs?.[i[0]]?e.funcs[i[0]].result?.[0]:null)};function Jt(t,e){if(t=e(t),Array.isArray(t))for(let r=0;r<t.length;r++){let i=Jt(t[r],e);i?._splice?(t.splice(r,1,...i),r+=i.length-1):t[r]=i}return t}function gi(t,e){let r=[],i=new Map;return Jt(t,s=>{if(!Array.isArray(s))return s;if(s[0]==="call"&&typeof s[1]=="function"){let n=s[1];if(!i.has(n)){let a=[];for(let c=2;c<s.length;c++){let u=mi(s[c]);u&&a.push(u)}let o=r.length,f=n.name||`$fn${o}`;i.set(n,{idx:o,name:f.startsWith("$")?f:"$"+f,params:a,fn:n}),r.push(i.get(n))}let l=i.get(n);s[1]=l.name}return s}),r}function _i(t){return t.map(({name:e,params:r})=>["import",'"env"',`"${e.slice(1)}"`,["func",e,...r.map(i=>["param",i])]])}function te(t,e,r){let{parse:i,compile:s,optimize:n,polyfill:l}=t,a={};if(!Array.isArray(e)&&r.length&&typeof r[r.length-1]=="object"&&r[r.length-1]!==null&&!r[r.length-1].byteLength&&(a=r.pop()),Array.isArray(e)&&e.raw){let o=e[0];for(let g=0;g<r.length;g++)o+=Fe+e[g+1];let f=i(o),c=[],u=0;f=Jt(f,g=>{if(g===Fe){let m=r[u++];if(typeof m=="function")return c.push(m),m;if(typeof m=="string"&&(m[0]==="("||/^\s*\(/.test(m))){let _=i(m);return Array.isArray(_)&&Array.isArray(_[0])&&(_._splice=!0),_}return m?.byteLength!==void 0?[...m]:typeof m=="bigint"?m.toString():m}return g});let p=null;if(c.length){let g=gi(f,c);if(g.length){let m=_i(g);f[0]==="module"?f.splice(1,0,...m):typeof f[0]=="string"?f=[...m,f]:f.unshift(...m),p={env:{}};for(let _ of g)p.env[_.name.slice(1)]=_.fn}}a.polyfill&&(f=l(f,a.polyfill)),a.optimize&&(f=n(f,a.optimize));let y=s(f);return p&&(y._imports=p),y}if(a.polyfill||a.optimize){let o=typeof e=="string"?i(e):e;return a.polyfill&&(o=l(o,a.polyfill)),a.optimize&&(o=n(o,a.optimize)),s(o)}return s(e)}function Oe(t,e,r){let i=te(t,e,r),s=new WebAssembly.Module(i);return new WebAssembly.Instance(s,i._imports).exports}var Ce={parse:et,compile:yt,optimize:Qt,polyfill:Gt};function Ki(t,...e){return te(Ce,t,e)}function hi(t,...e){return Oe(Ce,t,e)}var Qi=hi;export{Ki as compile,Qi as default,Qt as optimize,et as parse,Gt as polyfill,he as print,hi as watr};
1
+ var dr=Object.defineProperty;var Ar=(t,e)=>{for(var r in e)dr(t,r,{get:e[r],enumerable:!0})};var Et={};Ar(Et,{f32:()=>dt,f64:()=>_t,i16:()=>Ir,i32:()=>Y,i64:()=>xt,i8:()=>vr,uleb:()=>I,uleb5:()=>$r,v128:()=>te});var T=(t,e=T.loc)=>{if(e!=null&&T.src){let r=1,i=1;for(let s=0;s<e&&s<T.src.length;s++)T.src[s]===`
2
+ `?(r++,i=1):i++;t+=` at ${r}:${i}`}throw Error(t)},Ie=/^_|_$|[^\da-f]_|_[^\da-f]/i,ke=/^[+-]?(?:0x[\da-f]+|\d+)$/i,br=new TextEncoder,wr=new TextDecoder("utf-8",{fatal:!0,ignoreBOM:!0}),ve={n:10,r:13,t:9,'"':34,"'":39,"\\":92},Tt=t=>{let e=[],r=1,i,s,n="",l=()=>(n&&e.push(...br.encode(n)),n="");for(;r<t.length-1;)s=t[r++],i=null,s==="\\"&&(t[r]==="u"?(r++,r++,s=String.fromCodePoint(parseInt(t.slice(r,r=t.indexOf("}",r)),16)),r++):ve[t[r]]?i=ve[t[r++]]:isNaN(i=parseInt(t[r]+t[r+1],16))?s+=t[r]:(r++,r++)),i!=null?(l(),e.push(i)):n+=s;return l(),e.valueOf=()=>t,e},Se=t=>wr.decode(new Uint8Array(Tt(t))),Qt=t=>Array.isArray(t)?t.map(Qt):t,G=(t,e,r,i)=>{if(e(t,r,i),Array.isArray(t))for(let s=0;s<t.length;s++)G(t[s],e,t,s)},tt=(t,e,r,i)=>{if(Array.isArray(t))for(let n=0;n<t.length;n++)tt(t[n],e,t,n);let s=e(t,r,i);return s!==void 0&&r&&(r[i]=s),s!==void 0?s:t};var I=(t,e=[])=>{if(t==null)return e;if(typeof t=="string"&&(t=/[_x]/i.test(t)?BigInt(t.replaceAll("_","")):Y.parse(t)),typeof t=="bigint"){for(;;){let i=Number(t&0x7Fn);if(t>>=7n,t===0n){e.push(i);break}e.push(i|128)}return e}let r=t&127;return t>>>=7,t===0?(e.push(r),e):(e.push(r|128),I(t,e))};function $r(t){let e=[];for(let r=0;r<5;r++){let i=t&127;t>>>=7,r<4&&(i|=128),e.push(i)}return e}function Y(t,e=[]){for(typeof t=="string"&&(t=Y.parse(t));;){let r=Number(t&127);if(t>>=7,t===0&&!(r&64)||t===-1&&r&64){e.push(r);break}e.push(r|128)}return e}var Ne=t=>!Ie.test(t)&&ke.test(t=t.replaceAll("_",""))?t:T(`Bad int ${t}`),vr=Y,Ir=Y;Y.parse=t=>(t=parseInt(Ne(t)),(t<-2147483648||t>4294967295)&&T("i32 constant out of range"),t);function xt(t,e=[]){for(typeof t=="string"?t=xt.parse(t):typeof t=="number"&&(t=BigInt(t)),typeof t=="bigint"&&t>0x7fffffffffffffffn&&(t=t-0x10000000000000000n);;){let r=Number(t&0x7Fn);if(t>>=7n,t===0n&&!(r&64)||t===-1n&&r&64){e.push(r);break}e.push(r|128)}return e}var kt=new ArrayBuffer(8),et=new Uint8Array(kt),kr=new Int32Array(kt),Sr=new Float32Array(kt),Mr=new Float64Array(kt),Jt=new BigInt64Array(kt);xt.parse=t=>{t=Ne(t);let e=t[0]==="-",r=e||t[0]==="+"?t.slice(1):t,i;if(r[0]==="0"&&(r[1]==="x"||r[1]==="X")){let n=r.slice(2).replace(/^0+/,"")||"0";i=e?"8000000000000000":"ffffffffffffffff",(n.length>16||n.length===16&&n.toLowerCase()>i)&&T("i64 constant out of range")}else{let n=r.replace(/^0+/,"")||"0";i=e?"9223372036854775808":"18446744073709551615",(n.length>i.length||n.length===i.length&&n>i)&&T("i64 constant out of range")}let s=BigInt(r);return e&&(s=0n-s),Jt[0]=s,Jt[0]};var Br=2147483648,Nr=2139095040,Me=4194304;function dt(t,e,r){if(typeof t=="string"&&(r=t.indexOf("nan"))>=0){if(t[r+3]===":"){let i=t.slice(r+4);e=i==="canonical"||i==="arithmetic"?Me:Y.parse(i)}else e=Me;e=(e|Nr)>>>0,t[0]==="-"&&(e=(e|Br)>>>0),kr[0]=e|0}else e=typeof t=="string"?dt.parse(t):t,Sr[0]=e;return[et[0],et[1],et[2],et[3]]}var zr=0x8000000000000000n,Tr=0x7ff0000000000000n,Be=0x8000000000000n;function _t(t,e,r){if(typeof t=="string"&&(r=t.indexOf("nan"))>=0){if(t[r+3]===":"){let i=t.slice(r+4);e=i==="canonical"||i==="arithmetic"?Be:xt.parse(i)}else e=Be;e|=Tr,t[0]==="-"&&(e|=zr),Jt[0]=e}else e=typeof t=="string"?_t.parse(t):t,Mr[0]=e;return[et[0],et[1],et[2],et[3],et[4],et[5],et[6],et[7]]}_t.parse=(t,e=Number.MAX_VALUE)=>{t=t.replaceAll("_","");let r=1;if(t[0]==="-"?(r=-1,t=t.slice(1)):t[0]==="+"&&(t=t.slice(1)),t[1]==="x"){let[i,s="0"]=t.split(/p/i),[n,l=""]=i.split("."),f=l.length??0,c=0;for(let m=n.length-1;m>=2;m--){let _=parseInt(n[m],16);c+=_*16**(n.length-1-m)}let a=l?parseInt("0x"+l)/16**f:0;s=parseInt(s,10);let y=r*(c+a)*2**s;return y=Math.max(-e,Math.min(e,y)),y}return t.includes("nan")?r<0?NaN:NaN:t.includes("inf")?r*(1/0):r*parseFloat(t)};dt.parse=t=>_t.parse(t,34028234663852886e22);var te=t=>{let e=BigInt(typeof t=="string"?t.replaceAll("_",""):t),r=new Uint8Array(16);for(let i=0;i<16;i++)r[i]=Number(e&0xffn),e>>=8n;return[...r]};var St=["unreachable","nop","block block","loop block","if block","else null","then null",,"throw tagidx",,"throw_ref","end end","br labelidx","br_if labelidx","br_table br_table","return","call funcidx","call_indirect call_indirect","return_call funcidx","return_call_indirect call_indirect","call_ref typeidx","return_call_ref typeidx",,,,,"drop","select select","",,,"try_table try_table","local.get localidx","local.set localidx","local.tee localidx","global.get globalidx","global.set globalidx","table.get tableidx","table.set tableidx",,"i32.load memarg","i64.load memarg","f32.load memarg","f64.load memarg","i32.load8_s memarg","i32.load8_u memarg","i32.load16_s memarg","i32.load16_u memarg","i64.load8_s memarg","i64.load8_u memarg","i64.load16_s memarg","i64.load16_u memarg","i64.load32_s memarg","i64.load32_u memarg","i32.store memarg","i64.store memarg","f32.store memarg","f64.store memarg","i32.store8 memarg","i32.store16 memarg","i64.store8 memarg","i64.store16 memarg","i64.store32 memarg","memory.size opt_memory","memory.grow opt_memory","i32.const i32","i64.const i64","f32.const f32","f64.const f64","i32.eqz","i32.eq","i32.ne","i32.lt_s","i32.lt_u","i32.gt_s","i32.gt_u","i32.le_s","i32.le_u","i32.ge_s","i32.ge_u","i64.eqz","i64.eq","i64.ne","i64.lt_s","i64.lt_u","i64.gt_s","i64.gt_u","i64.le_s","i64.le_u","i64.ge_s","i64.ge_u","f32.eq","f32.ne","f32.lt","f32.gt","f32.le","f32.ge","f64.eq","f64.ne","f64.lt","f64.gt","f64.le","f64.ge","i32.clz","i32.ctz","i32.popcnt","i32.add","i32.sub","i32.mul","i32.div_s","i32.div_u","i32.rem_s","i32.rem_u","i32.and","i32.or","i32.xor","i32.shl","i32.shr_s","i32.shr_u","i32.rotl","i32.rotr","i64.clz","i64.ctz","i64.popcnt","i64.add","i64.sub","i64.mul","i64.div_s","i64.div_u","i64.rem_s","i64.rem_u","i64.and","i64.or","i64.xor","i64.shl","i64.shr_s","i64.shr_u","i64.rotl","i64.rotr","f32.abs","f32.neg","f32.ceil","f32.floor","f32.trunc","f32.nearest","f32.sqrt","f32.add","f32.sub","f32.mul","f32.div","f32.min","f32.max","f32.copysign","f64.abs","f64.neg","f64.ceil","f64.floor","f64.trunc","f64.nearest","f64.sqrt","f64.add","f64.sub","f64.mul","f64.div","f64.min","f64.max","f64.copysign","i32.wrap_i64","i32.trunc_f32_s","i32.trunc_f32_u","i32.trunc_f64_s","i32.trunc_f64_u","i64.extend_i32_s","i64.extend_i32_u","i64.trunc_f32_s","i64.trunc_f32_u","i64.trunc_f64_s","i64.trunc_f64_u","f32.convert_i32_s","f32.convert_i32_u","f32.convert_i64_s","f32.convert_i64_u","f32.demote_f64","f64.convert_i32_s","f64.convert_i32_u","f64.convert_i64_s","f64.convert_i64_u","f64.promote_f32","i32.reinterpret_f32","i64.reinterpret_f64","f32.reinterpret_i32","f64.reinterpret_i64","i32.extend8_s","i32.extend16_s","i64.extend8_s","i64.extend16_s","i64.extend32_s",,,,,,,,,,,,"ref.null ref_null","ref.is_null","ref.func funcidx","ref.eq","ref.as_non_null","br_on_null labelidx","br_on_non_null labelidx",,,,,,,,,,"cont.new typeidx","cont.bind cont_bind","suspend tagidx","resume resume","resume_throw resume_throw","resume_throw_ref resume_throw_ref","switch switch_cont",,,,,,,,,,,,,,,,,,,,,["struct.new typeidx","struct.new_default typeidx","struct.get typeidx_field","struct.get_s typeidx_field","struct.get_u typeidx_field","struct.set typeidx_field","array.new typeidx","array.new_default typeidx","array.new_fixed typeidx_multi","array.new_data typeidx_dataidx","array.new_elem typeidx_elemidx","array.get typeidx","array.get_s typeidx","array.get_u typeidx","array.set typeidx","array.len","array.fill typeidx","array.copy typeidx_typeidx","array.init_data typeidx_dataidx","array.init_elem typeidx_elemidx","ref.test reftype","ref.test_null reftype","ref.cast reftype","ref.cast_null reftype","br_on_cast reftype2","br_on_cast_fail reftype2","any.convert_extern","extern.convert_any","ref.i31","i31.get_s","i31.get_u",,"struct.new_desc typeidx","struct.new_default_desc typeidx","ref.get_desc typeidx","ref.cast_desc_eq reftype",,"br_on_cast_desc_eq reftype2","br_on_cast_desc_eq_fail reftype2",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,"string.new_utf8 memoryidx?","string.new_wtf16 memoryidx?","string.const stringidx","string.measure_utf8","string.measure_wtf8","string.measure_wtf16","string.encode_utf8 memoryidx?","string.encode_wtf16 memoryidx?","string.concat","string.eq","string.is_usv_sequence","string.new_lossy_utf8 memoryidx?","string.new_wtf8 memoryidx?","string.encode_lossy_utf8 memoryidx?","string.encode_wtf8 memoryidx?",,"string.as_wtf8","stringview_wtf8.advance","stringview_wtf8.encode_utf8 memoryidx?","stringview_wtf8.slice","stringview_wtf8.encode_lossy_utf8 memoryidx?","stringview_wtf8.encode_wtf8 memoryidx?",,,"string.as_wtf16","stringview_wtf16.length","stringview_wtf16.get_codeunit","stringview_wtf16.encode memoryidx?","stringview_wtf16.slice",,,,"string.as_iter","stringview_iter.next","stringview_iter.advance","stringview_iter.rewind","stringview_iter.slice",,,,,,,,,,,,"string.new_utf8_array","string.new_wtf16_array","string.encode_utf8_array","string.encode_wtf16_array","string.new_lossy_utf8_array","string.new_wtf8_array","string.encode_lossy_utf8_array","string.encode_wtf8_array"],["i32.trunc_sat_f32_s","i32.trunc_sat_f32_u","i32.trunc_sat_f64_s","i32.trunc_sat_f64_u","i64.trunc_sat_f32_s","i64.trunc_sat_f32_u","i64.trunc_sat_f64_s","i64.trunc_sat_f64_u","memory.init dataidx_memoryidx","data.drop dataidx","memory.copy memoryidx_memoryidx","memory.fill memoryidx?","table.init reversed","elem.drop elemidx","table.copy tableidx_tableidx","table.grow tableidx","table.size tableidx","table.fill tableidx",,"i64.add128","i64.sub128","i64.mul_wide_s","i64.mul_wide_u",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,"f32.sqrt_ceil","f32.add_ceil","f32.sub_ceil","f32.mul_ceil","f32.div_ceil","f64.sqrt_ceil","f64.add_ceil","f64.sub_ceil","f64.mul_ceil","f64.div_ceil","f32.convert_ceil_i32_s","f32.convert_ceil_i32_u","f32.convert_ceil_i64_s","f32.convert_ceil_i64_u","f32.demote_ceil_f64","f64.convert_ceil_i32_s","f64.convert_ceil_i32_u","f64.convert_ceil_i64_s","f64.convert_ceil_i64_u","f64.promote_ceil_f32","f32.sqrt_floor","f32.add_floor","f32.sub_floor","f32.mul_floor","f32.div_floor","f64.sqrt_floor","f64.add_floor","f64.sub_floor","f64.mul_floor","f64.div_floor","f32.convert_floor_i32_s","f32.convert_floor_i32_u","f32.convert_floor_i64_s","f32.convert_floor_i64_u","f32.demote_floor_f64","f64.convert_floor_i32_s","f64.convert_floor_i32_u","f64.convert_floor_i64_s","f64.convert_floor_i64_u","f64.promote_floor_f32","f32.sqrt_trunc","f32.add_trunc","f32.sub_trunc","f32.mul_trunc","f32.div_trunc","f64.sqrt_trunc","f64.add_trunc","f64.sub_trunc","f64.mul_trunc","f64.div_trunc","f32.convert_trunc_i32_s","f32.convert_trunc_i32_u","f32.convert_trunc_i64_s","f32.convert_trunc_i64_u","f32.demote_trunc_f64","f64.convert_trunc_i32_s","f64.convert_trunc_i32_u","f64.convert_trunc_i64_s","f64.convert_trunc_i64_u","f64.promote_trunc_f32"],["v128.load memarg","v128.load8x8_s memarg","v128.load8x8_u memarg","v128.load16x4_s memarg","v128.load16x4_u memarg","v128.load32x2_s memarg","v128.load32x2_u memarg","v128.load8_splat memarg","v128.load16_splat memarg","v128.load32_splat memarg","v128.load64_splat memarg","v128.store memarg","v128.const v128const","i8x16.shuffle shuffle","i8x16.swizzle","i8x16.splat","i16x8.splat","i32x4.splat","i64x2.splat","f32x4.splat","f64x2.splat","i8x16.extract_lane_s laneidx","i8x16.extract_lane_u laneidx","i8x16.replace_lane laneidx","i16x8.extract_lane_s laneidx","i16x8.extract_lane_u laneidx","i16x8.replace_lane laneidx","i32x4.extract_lane laneidx","i32x4.replace_lane laneidx","i64x2.extract_lane laneidx","i64x2.replace_lane laneidx","f32x4.extract_lane laneidx","f32x4.replace_lane laneidx","f64x2.extract_lane laneidx","f64x2.replace_lane laneidx","i8x16.eq","i8x16.ne","i8x16.lt_s","i8x16.lt_u","i8x16.gt_s","i8x16.gt_u","i8x16.le_s","i8x16.le_u","i8x16.ge_s","i8x16.ge_u","i16x8.eq","i16x8.ne","i16x8.lt_s","i16x8.lt_u","i16x8.gt_s","i16x8.gt_u","i16x8.le_s","i16x8.le_u","i16x8.ge_s","i16x8.ge_u","i32x4.eq","i32x4.ne","i32x4.lt_s","i32x4.lt_u","i32x4.gt_s","i32x4.gt_u","i32x4.le_s","i32x4.le_u","i32x4.ge_s","i32x4.ge_u","f32x4.eq","f32x4.ne","f32x4.lt","f32x4.gt","f32x4.le","f32x4.ge","f64x2.eq","f64x2.ne","f64x2.lt","f64x2.gt","f64x2.le","f64x2.ge","v128.not","v128.and","v128.andnot","v128.or","v128.xor","v128.bitselect","v128.any_true","v128.load8_lane memlane","v128.load16_lane memlane","v128.load32_lane memlane","v128.load64_lane memlane","v128.store8_lane memlane","v128.store16_lane memlane","v128.store32_lane memlane","v128.store64_lane memlane","v128.load32_zero memarg","v128.load64_zero memarg","f32x4.demote_f64x2_zero","f64x2.promote_low_f32x4","i8x16.abs","i8x16.neg","i8x16.popcnt","i8x16.all_true","i8x16.bitmask","i8x16.narrow_i16x8_s","i8x16.narrow_i16x8_u","f32x4.ceil","f32x4.floor","f32x4.trunc","f32x4.nearest","i8x16.shl","i8x16.shr_s","i8x16.shr_u","i8x16.add","i8x16.add_sat_s","i8x16.add_sat_u","i8x16.sub","i8x16.sub_sat_s","i8x16.sub_sat_u","f64x2.ceil","f64x2.floor","i8x16.min_s","i8x16.min_u","i8x16.max_s","i8x16.max_u","f64x2.trunc","i8x16.avgr_u","i16x8.extadd_pairwise_i8x16_s","i16x8.extadd_pairwise_i8x16_u","i32x4.extadd_pairwise_i16x8_s","i32x4.extadd_pairwise_i16x8_u","i16x8.abs","i16x8.neg","i16x8.q15mulr_sat_s","i16x8.all_true","i16x8.bitmask","i16x8.narrow_i32x4_s","i16x8.narrow_i32x4_u","i16x8.extend_low_i8x16_s","i16x8.extend_high_i8x16_s","i16x8.extend_low_i8x16_u","i16x8.extend_high_i8x16_u","i16x8.shl","i16x8.shr_s","i16x8.shr_u","i16x8.add","i16x8.add_sat_s","i16x8.add_sat_u","i16x8.sub","i16x8.sub_sat_s","i16x8.sub_sat_u","f64x2.nearest","i16x8.mul","i16x8.min_s","i16x8.min_u","i16x8.max_s","i16x8.max_u",,"i16x8.avgr_u","i16x8.extmul_low_i8x16_s","i16x8.extmul_high_i8x16_s","i16x8.extmul_low_i8x16_u","i16x8.extmul_high_i8x16_u","i32x4.abs","i32x4.neg",,"i32x4.all_true","i32x4.bitmask",,,"i32x4.extend_low_i16x8_s","i32x4.extend_high_i16x8_s","i32x4.extend_low_i16x8_u","i32x4.extend_high_i16x8_u","i32x4.shl","i32x4.shr_s","i32x4.shr_u","i32x4.add",,,"i32x4.sub",,,,"i32x4.mul","i32x4.min_s","i32x4.min_u","i32x4.max_s","i32x4.max_u","i32x4.dot_i16x8_s",,"i32x4.extmul_low_i16x8_s","i32x4.extmul_high_i16x8_s","i32x4.extmul_low_i16x8_u","i32x4.extmul_high_i16x8_u","i64x2.abs","i64x2.neg",,"i64x2.all_true","i64x2.bitmask",,,"i64x2.extend_low_i32x4_s","i64x2.extend_high_i32x4_s","i64x2.extend_low_i32x4_u","i64x2.extend_high_i32x4_u","i64x2.shl","i64x2.shr_s","i64x2.shr_u","i64x2.add",,,"i64x2.sub",,,,"i64x2.mul","i64x2.eq","i64x2.ne","i64x2.lt_s","i64x2.gt_s","i64x2.le_s","i64x2.ge_s","i64x2.extmul_low_i32x4_s","i64x2.extmul_high_i32x4_s","i64x2.extmul_low_i32x4_u","i64x2.extmul_high_i32x4_u","f32x4.abs","f32x4.neg",,"f32x4.sqrt","f32x4.add","f32x4.sub","f32x4.mul","f32x4.div","f32x4.min","f32x4.max","f32x4.pmin","f32x4.pmax","f64x2.abs","f64x2.neg",,"f64x2.sqrt","f64x2.add","f64x2.sub","f64x2.mul","f64x2.div","f64x2.min","f64x2.max","f64x2.pmin","f64x2.pmax","i32x4.trunc_sat_f32x4_s","i32x4.trunc_sat_f32x4_u","f32x4.convert_i32x4_s","f32x4.convert_i32x4_u","i32x4.trunc_sat_f64x2_s_zero","i32x4.trunc_sat_f64x2_u_zero","f64x2.convert_low_i32x4_s","f64x2.convert_low_i32x4_u","i8x16.relaxed_swizzle","i32x4.relaxed_trunc_f32x4_s","i32x4.relaxed_trunc_f32x4_u","i32x4.relaxed_trunc_f64x2_s_zero","i32x4.relaxed_trunc_f64x2_u_zero","f32x4.relaxed_madd","f32x4.relaxed_nmadd","f64x2.relaxed_madd","f64x2.relaxed_nmadd","i8x16.relaxed_laneselect","i16x8.relaxed_laneselect","i32x4.relaxed_laneselect","i64x2.relaxed_laneselect","f32x4.relaxed_min","f32x4.relaxed_max","f64x2.relaxed_min","f64x2.relaxed_max","i16x8.relaxed_q15mulr_s","i16x8.relaxed_dot_i8x16_i7x16_s","i32x4.relaxed_dot_i8x16_i7x16_add_s"],["memory.atomic.notify memarg","memory.atomic.wait32 memarg","memory.atomic.wait64 memarg","atomic.fence opt_memory",,,,,,,,,,,,,"i32.atomic.load memarg","i64.atomic.load memarg","i32.atomic.load8_u memarg","i32.atomic.load16_u memarg","i64.atomic.load8_u memarg","i64.atomic.load16_u memarg","i64.atomic.load32_u memarg","i32.atomic.store memarg","i64.atomic.store memarg","i32.atomic.store8 memarg","i32.atomic.store16 memarg","i64.atomic.store8 memarg","i64.atomic.store16 memarg","i64.atomic.store32 memarg","i32.atomic.rmw.add memarg","i64.atomic.rmw.add memarg","i32.atomic.rmw8.add_u memarg","i32.atomic.rmw16.add_u memarg","i64.atomic.rmw8.add_u memarg","i64.atomic.rmw16.add_u memarg","i64.atomic.rmw32.add_u memarg","i32.atomic.rmw.sub memarg","i64.atomic.rmw.sub memarg","i32.atomic.rmw8.sub_u memarg","i32.atomic.rmw16.sub_u memarg","i64.atomic.rmw8.sub_u memarg","i64.atomic.rmw16.sub_u memarg","i64.atomic.rmw32.sub_u memarg","i32.atomic.rmw.and memarg","i64.atomic.rmw.and memarg","i32.atomic.rmw8.and_u memarg","i32.atomic.rmw16.and_u memarg","i64.atomic.rmw8.and_u memarg","i64.atomic.rmw16.and_u memarg","i64.atomic.rmw32.and_u memarg","i32.atomic.rmw.or memarg","i64.atomic.rmw.or memarg","i32.atomic.rmw8.or_u memarg","i32.atomic.rmw16.or_u memarg","i64.atomic.rmw8.or_u memarg","i64.atomic.rmw16.or_u memarg","i64.atomic.rmw32.or_u memarg","i32.atomic.rmw.xor memarg","i64.atomic.rmw.xor memarg","i32.atomic.rmw8.xor_u memarg","i32.atomic.rmw16.xor_u memarg","i64.atomic.rmw8.xor_u memarg","i64.atomic.rmw16.xor_u memarg","i64.atomic.rmw32.xor_u memarg","i32.atomic.rmw.xchg memarg","i64.atomic.rmw.xchg memarg","i32.atomic.rmw8.xchg_u memarg","i32.atomic.rmw16.xchg_u memarg","i64.atomic.rmw8.xchg_u memarg","i64.atomic.rmw16.xchg_u memarg","i64.atomic.rmw32.xchg_u memarg","i32.atomic.rmw.cmpxchg memarg","i64.atomic.rmw.cmpxchg memarg","i32.atomic.rmw8.cmpxchg_u memarg","i32.atomic.rmw16.cmpxchg_u memarg","i64.atomic.rmw8.cmpxchg_u memarg","i64.atomic.rmw16.cmpxchg_u memarg","i64.atomic.rmw32.cmpxchg_u memarg"]],ze=t=>{if(typeof t!="string")return null;let e=t.indexOf(".");if(e<0)return null;let r=t.slice(0,e),i=r==="i32"||r==="i64"||r==="f32"||r==="f64";return i&&/^(eqz?|ne|[lg][te])(_[su])?$/.test(t.slice(e+1))?"i32":i||r==="v128"?r:t==="memory.size"||t==="memory.grow"?"i32":null},D={custom:0,type:1,import:2,func:3,table:4,memory:5,tag:13,strings:14,global:6,export:7,start:8,elem:9,datacount:12,code:10,data:11},P={i8:120,i16:119,i32:127,i64:126,f32:125,f64:124,void:64,v128:123,exn:105,noexn:116,nofunc:115,noextern:114,none:113,func:112,extern:111,any:110,eq:109,i31:108,struct:107,array:106,data:107,cont:104,nocont:117,string:103,stringview_wtf8:102,stringview_wtf16:96,stringview_iter:97,nullfuncref:115,nullexternref:114,nullexnref:116,nullref:113,funcref:112,externref:111,exnref:105,anyref:110,eqref:109,i31ref:108,structref:107,arrayref:106,contref:104,nocontref:117,stringref:103,ref:100,refnull:99,sub:80,subfinal:79,rec:78},pt={func:96,struct:95,array:94,cont:93,sub:80,subfinal:79,rec:78},ee={func:0,table:1,memory:2,global:3,tag:4};var lt=t=>{let e=0,r=[],i="",s=0,n=0,l=()=>i&&(r.push(i),i=""),f=c=>{r.loc=c;for(let a,y,m;e<t.length;)if(a=t.charCodeAt(e),s===34)i+=t[e++],a===92?i+=t[e++]:a===34&&(l(),s=0);else if(s>59)a===40&&t.charCodeAt(e+1)===59?(s++,i+=t[e++]+t[e++]):a===59&&t.charCodeAt(e+1)===41?(i+=t[e++]+t[e++],--s===59&&(l(),s=0)):i+=t[e++];else if(s<0)a===10||a===13?(i+=t[e++],l(),s=0):s===-2&&a===41?(l(),s=0):i+=t[e++];else if(a===34)i!=="$"&&l(),s=34,i+=t[e++];else if(a===40&&t.charCodeAt(e+1)===59)l(),s=60,i=t[e++]+t[e++];else if(a===59&&t.charCodeAt(e+1)===59)l(),s=t.indexOf(`
3
+ `,e)<0?-2:-1,i=t[e++]+t[e++];else if(a===40&&t.charCodeAt(e+1)===64)l(),m=e,e+=2,i="@",n++,(y=r).push(r=[]),f(m),r=y;else if(a===40)l(),m=e++,n++,(y=r).push(r=[]),f(m),r=y;else{if(a===41)return l(),e++,n--;a<=32?(l(),e++):i+=t[e++]}s<0&&l(),l()};return f(0),s===34&&T("Unclosed quote",e),s>59&&T("Unclosed block comment",e),n>0&&T("Unclosed parenthesis",e),e<t.length&&T("Unexpected closing parenthesis",e),r.length>1?r:r[0]||[]};var Oe=t=>typeof t=="string"&&(t[0]===";"||t[1]===";")||Array.isArray(t)&&t[0]?.[0]==="@"&&t[0]!=="@custom"&&!t[0]?.startsWith?.("@metadata.code."),qe=(t,e)=>typeof t=="string"?t[0]==="$"&&t[1]==='"'?t.includes("\\")?"$"+Se(t.slice(1)):"$"+t.slice(2,-1):t[0]==='"'?Tt(t):t:Array.isArray(t)?(e=t.filter(r=>!Oe(r)).map(qe),e.loc=t.loc,e.length===1&&e[0]?.[0]==="module"?e[0]:e):t;function bt(t){typeof t=="string"?(T.src=t,t=lt(t)||[]):T.src="",T.loc=0,t=Oe(t)?[]:qe(t)??[];let e=0;if(t[0]==="module"?(e++,H(t[e])&&e++):typeof t[0]=="string"&&(t=[t]),t[e]==="binary")return Uint8Array.from(t.slice(++e).flat());if(t[e]==="quote")return bt(t.slice(++e).map(h=>h.valueOf().slice(1,-1)).flat().join(""));t=t.flatMap((h,$)=>{if($<e||!Array.isArray(h)||h[0]!=="import")return[h];let[,o,...u]=h;if(!u.some(p=>Array.isArray(p)&&p[0]==="item"))return[h];if(Array.isArray(u.at(-1))&&u.at(-1)[0]!=="item"){let p=u.at(-1);return u.slice(0,-1).filter(A=>A[0]==="item").map(([,A])=>["import",o,A,p])}return u.filter(p=>p[0]==="item").map(([,p,A])=>["import",o,p,A])});let r=[];for(let h in D)(r[D[h]]=r[h]=[]).name=h;r.metadata={},t.slice(e).filter(h=>{if(!Array.isArray(h)){let u=T.loc,g=T.src,p;for(;(u=g.indexOf(h,u))>=0;){if(p=g.charCodeAt(u-1),u>0&&(p>47&&p<58||p>64&&p<91||p>96&&p<123||p===95||p===36)){u++;continue}if(p=g.charCodeAt(u+h.length),p>47&&p<58||p>64&&p<91||p>96&&p<123||p===95){u++;continue}break}u>=0&&(T.loc=u),T(`Unexpected token ${h}`)}let[$,...o]=h;if(T.loc=h.loc,$==="@custom")r.custom.push(o);else if($==="rec")for(let u=0;u<o.length;u++){let[,...g]=o[u];re(g,r.type);let p=[];for(;g[0]?.[0]==="descriptor"||g[0]?.[0]==="describes";)p.push(g.shift());(g=Te(g,r)).push(u?!0:[r.type.length,o.length]),p.length&&(g.desc=g.desc?[...p,...g.desc]:p),r.type.push(g)}else if($==="type"){re(o,r.type);let u=[];for(;o[0]?.[0]==="descriptor"||o[0]?.[0]==="describes";)u.push(o.shift());let g=Te(o,r);u.length&&(g.desc=g.desc?[...u,...g.desc]:u),r.type.push(g)}else if($==="start"||$==="export")r[$].push(o);else return!0}).forEach(h=>{let[$,...o]=h;T.loc=h.loc;let u;$==="import"&&([$,...o]=(u=o).pop());let g=r[$];for(g||T(`Unknown section ${$}`),re(o,g);o[0]?.[0]==="export";)r.export.push([o.shift()[1],[$,g?.length]]);if(o[0]?.[0]==="import"&&([,...u]=o.shift()),$==="table"){let p=o[0]==="i64",A=p?1:0;if(o[A+1]?.[0]==="elem"){let[b,[,...M]]=[o[A],o[A+1]];o=p?["i64",M.length,M.length,b]:[M.length,M.length,b],r.elem.push([["table",g.length],["offset",[p?"i64.const":"i32.const",p?0n:0]],b,...M])}}else if($==="memory"){let p=o[0]==="i64",A=p?1:0;if(o[A]?.[0]==="data"){let b=o.find(v=>Array.isArray(v)&&v[0]==="pagesize")?.[1]??65536,[,...M]=o.splice(A,1)[0],z=""+Math.ceil(M.reduce((v,S)=>v+S.length,0)/b);r.data.push([["memory",g.length],[p?"i64.const":"i32.const",p?0n:0],...M]),o=p?["i64",z,z]:[z,z]}}else if($==="func"){let[p,A,b]=Dt(o,r);p??=Lt(A,b,r),!u&&r.code.push([[p,A,b],...yt(o,r)]),o=[["type",p]]}else if($==="tag"){let[p,A]=Dt(o,r);p??=Lt(A,[],r),o=[["type",p]]}u&&(r.import.push([...u,[$,...o]]),o=null),g.push(o)});let i=(h,$=!0)=>{let o=r[h].filter(Boolean).map(u=>ne[h](u,r)).filter(Boolean);return h===D.custom?o.flatMap(u=>[h,...C(u)]):o.length?[h,...C($?C(o):o.flat())]:[]},s=()=>{let h=[];for(let $ in r.metadata){let o=C(Tt(`"metadata.code.${$}"`)),u=C(r.metadata[$].map(([g,p])=>[...I(g),...C(p.map(([A,b])=>[...I(A),...C(b)]))]));h.push(0,...C([...o,...u]))}return h},n=i(D.global),l=i(D.elem),f=r.code.filter(Boolean).map(h=>ne[D.code](h,r)).filter(Boolean),c=f.length?[D.code,...C(C(f))]:[],a=s(),y=i(D.data),m=r.strings.length?[D.strings,...C([0,...C(r.strings.map(h=>C(h)))])]:[],_=[i(D.custom),i(D.type),i(D.import),i(D.func),i(D.table),i(D.memory),i(D.tag),m,n,i(D.export),i(D.start,!1),l,i(D.datacount,!1),c,a,y],d=Uint8Array.from([0,97,115,109,1,0,0,0,..._.flat()]),k=x();return k&&(d.metadata=k),d;function x(){let h=!1;for(let A in r.metadata)h=!0;if(!h)return;let $={},u=8+_.slice(0,_.indexOf(c)).reduce((A,b)=>A+b.length,0)+c.length-f.reduce((A,b)=>A+b.length,0),g=[];for(let A=0,b=u;A<f.length;A++)g[A]=b+(r.codeSizePrefix?.[A]??0),b+=f[A].length;let p=r.import.filter(A=>A[2][0]==="func").length;for(let A in r.metadata){let b=[];for(let[M,z]of r.metadata[A]){let v=g[M-p];for(let[S,w]of z)b.push([v+S,w])}$[A]=b.sort((M,z)=>M[0]-z[0])}return $}}var rt=t=>t?.[0]==="$"||!isNaN(t),H=t=>t?.[0]==="$",ie=t=>t?.[0]==="a"||t?.[0]==="o";function yt(t,e){let r=[];for(t=[...t];t.length;){let i=t.shift();if(typeof i=="string")if(r.push(i),i==="block"||i==="if"||i==="loop")H(t[0])&&r.push(t.shift()),r.push(Ot(t,e));else if(i==="else"||i==="end")H(t[0])&&t.shift();else if(i==="select")r.push(Ut(t)[1]);else if(i.endsWith("call_indirect")){let s=rt(t[0])?t.shift():0,[n,l,f]=Dt(t,e);r.push(s,["type",n??Lt(l,f,e)])}else i==="table.init"?r.push(rt(t[1])?t.shift():0,t.shift()):i==="table.copy"||i==="memory.copy"?r.push(rt(t[0])?t.shift():0,rt(t[0])?t.shift():0):i.startsWith("table.")?r.push(rt(t[0])?t.shift():0):i==="memory.init"?(r.push(...rt(t[1])?[t.shift(),t.shift()].reverse():[t.shift(),0]),e.datacount&&(e.datacount[0]=!0)):i==="data.drop"||i==="array.new_data"||i==="array.init_data"?(i==="data.drop"&&r.push(t.shift()),e.datacount&&(e.datacount[0]=!0)):(i.startsWith("memory.")||i.endsWith("load")||i.endsWith("store"))&&rt(t[0])&&r.push(t.shift());else if(Array.isArray(i)){let s=i[0];if(i.loc!=null&&(T.loc=i.loc),s?.startsWith?.("@metadata.code.")){let l=s.slice(15);r.push(["@metadata",l,i[1]]);continue}if(typeof s!="string"||!Array.isArray(St[s])){r.push(i);continue}let n=i.slice(1);if(s==="block"||s==="loop")r.push(s),H(n[0])&&r.push(n.shift()),r.push(Ot(n,e),...yt(n,e),"end");else if(s==="if"){let l=[],f=[];n.at(-1)?.[0]==="else"&&(f=yt(n.pop().slice(1),e)),n.at(-1)?.[0]==="then"&&(l=yt(n.pop().slice(1),e));let c=[s];H(n[0])&&c.push(n.shift()),c.push(Ot(n,e)),r.push(...yt(n,e),...c,...l),f.length&&r.push("else",...f),r.push("end")}else if(s==="try_table"){for(r.push(s),H(n[0])&&r.push(n.shift()),r.push(Ot(n,e));n[0]?.[0]==="catch"||n[0]?.[0]==="catch_ref"||n[0]?.[0]==="catch_all"||n[0]?.[0]==="catch_all_ref";)r.push(n.shift());r.push(...yt(n,e),"end")}else if(s==="ref.test"||s==="ref.cast"){let l=n[0];(!Array.isArray(l)||l[1]==="null"||l[0]!=="ref")&&(s+="_null"),r.push(...yt(n.slice(1),e),s,l),t.unshift(...r.splice(r.length-2))}else{let l=[];for(;n.length&&(!Array.isArray(n[0])||n[0].valueOf!==Array.prototype.valueOf||"type,param,result,ref,exact,on".includes(n[0][0]));)l.push(n.shift());r.push(...yt(n,e),s,...l),t.unshift(...r.splice(r.length-1-l.length))}}else r.push(i)}return r}var Lt=(t,e,r,i="$"+t+">"+e)=>(r.type[i]??=r.type.push(["func",[t,e]])-1,i),se=(t,e)=>{let r=[];for(;t[0]?.[0]===e;){let[,...i]=t.shift(),s=H(i[0])&&i.shift();s&&(s in r?(()=>{throw Error(`Duplicate ${e} ${s}`)})():r[s]=r.length),r.push(...i)}return r},Ut=t=>{let e=se(t,"param"),r=se(t,"result");if(t[0]?.[0]==="param")throw Error("Unexpected param");return[e,r]},Dt=(t,e)=>{if(t[0]?.[0]!=="type")return[,...Ut(t)];let[,r]=t.shift(),[i,s]=Ut(t),n=e.type[typeof r=="string"&&isNaN(r)?e.type[r]:+r];if(!n)throw Error(`Unknown type ${r}`);if((i.length||s.length)&&n[1].join(">")!==i+">"+s)throw Error(`Type ${r} mismatch`);return[r,...n[1]]},Ot=(t,e)=>{let[r,i,s]=Dt(t,e);if(!(!i.length&&!s.length))return!i.length&&s.length===1?["result",...s]:["type",r??Lt(i,s,e)]},re=(t,e)=>{let r=H(t[0])&&t.shift();return r&&(r in e?T(`Duplicate ${e.name} ${r}`):e[r]=e.length),r},Te=([t],e)=>{let r="subfinal",i=[],s,n=[];t[0]==="sub"&&(r=t.shift(),t[0]==="final"&&(r+=t.shift()),t=(i=t).pop(),i=i.filter(f=>Array.isArray(f)&&(f[0]==="descriptor"||f[0]==="describes")?(n.push(f),!1):!0)),[s,...t]=t,s==="func"?(t=Ut(t),e.type["$"+t.join(">")]??=e.type.length):s==="struct"?t=se(t,"field"):s==="array"&&([t]=t);let l=[s,t,r,i];return n.length&&(l.desc=n),l},ne=[([t,...e],r)=>{let i=e;return(e[0]?.[0]==="before"||e[0]?.[0]==="after")&&(i=e.slice(1)),[...C(t),...i.flat()]},(t,e)=>{let[r,i,s,n,l]=t;if(l===!0)return;let f=(t.desc??[]).flatMap(([a,y])=>[a==="descriptor"?77:76,...I(N(y,e.type))]),c=(a,y)=>a==="func"?[pt.func,...C(y[0].map(m=>K(m,e))),...C(y[1].map(m=>K(m,e)))]:a==="array"?[pt.array,...qt(y,e)]:a==="struct"?[pt.struct,...C(y.map(m=>qt(m,e)))]:a==="cont"?[pt.cont,...I(N(y[0]??y,e.type))]:[pt[a]];if(l){let[a,y]=l,m=Array.from({length:y},(_,d)=>{let k=e.type[a+d],x=k.slice(0,4);return k.desc&&(x.desc=k.desc),ne[D.type](x,e)});return[pt.rec,...C(m)]}else if(s==="sub"||n?.length)return[pt[s],...C(n.map(a=>N(a,e.type))),...f,...c(r,i)];return[...f,...c(r,i)]},([t,e,[r,...i]],s)=>{let n,l=ee[r];if(r==="func"){i[0]==="exact"&&i.shift()&&(l=32);let[[,c]]=i;n=I(N(c,s.type))}else if(r==="tag"){let[[,f]]=i;n=[0,...I(N(f,s.type))]}else r==="memory"?n=Ft(i):r==="global"?n=qt(i[0],s):r==="table"?n=[...K(i.pop(),s),...Ft(i)]:T(`Unknown kind ${r}`);return[...C(t),...C(e),l,...n]},([[,t]],e)=>I(N(t,e.type)),(t,e)=>{let r=Ft(t),i=K(t.shift(),e),[s]=t;return s?[64,0,...i,...r,...At(s,e)]:[...i,...r]},(t,e)=>Ft(t),([t,e],r)=>[...qt(t,r),...At(e,r)],([t,[e,r]],i)=>[...C(t),ee[e],...I(N(r,i[e]))],([t],e)=>I(N(t,e.func)),(t,e)=>{let r=0,i=0,s=0,n=0,l,f,c;t[0]==="declare"&&(t.shift(),i=1),t[0]?.[0]==="table"?([,l]=t.shift(),l=N(l,e.table)):(typeof t[0]=="string"||typeof t[0]=="number")&&(t[1]?.[0]==="offset"||Array.isArray(t[1])&&t[1][0]!=="item"&&!t[1][0]?.startsWith("ref"))&&(l=N(t.shift(),e.table)),t[0]?.[0]==="offset"||Array.isArray(t[0])&&t[0][0]!=="item"&&!t[0][0].startsWith("ref")?(f=t.shift(),f[0]==="offset"&&([,f]=f),f=At(f,e)):i||(r=1),P[t[0]]||t[0]?.[0]==="ref"?c=K(t.shift(),e):t[0]==="func"?c=[P[t.shift()]]:c=[P.func],t=t.map(y=>(y[0]==="item"&&(y=y.length===3&&y[1]==="ref.func"?y[2]:y[1]),y[0]==="ref.func"&&([,y]=y),typeof y!="string"&&(s=1),y)),c[0]!==P.funcref&&(n=1,s=1);let a=s<<2|(r||i?i:!!l||n)<<1|(r||i);return[a,...a===0?f:a===1?[0]:a===2?[...I(l||0),...f,0]:a===3?[0]:a===4?f:a===5?c:a===6?[...I(l||0),...f,...c]:c,...C(t.map(s?y=>At(typeof y=="string"?["ref.func",y]:y,e):y=>I(N(y,e.func))))]},(t,e)=>{let[r,i]=t.shift();i||([,[i]]=e.type[N(r,e.type)]),e.local=Object.create(i),e.block=[],e.local.name="local",e.block.name="block",e._codeIdx===void 0&&(e._codeIdx=0);let s=e._codeIdx++;for(;t[0]?.[0]==="local";){let[,...y]=t.shift();if(H(y[0])){let m=y.shift();m in e.local?T(`Duplicate local ${m}`):e.local[m]=e.local.length}e.local.push(...y)}e.meta={};let n=Ce(t,e),l=e.local.slice(i.length).reduce((y,m)=>(m==y[y.length-1]?.[1]?y[y.length-1][0]++:y.push([1,m]),y),[]),f=C(l.map(([y,m])=>[...I(y),...K(m,e)])),c=e.import.filter(y=>y[2][0]==="func").length+s;for(let y in e.meta){for(let m of e.meta[y])m[0]+=f.length;((e.metadata??={})[y]??=[]).push([c,e.meta[y]])}e.local=e.block=e.meta=null;let a=C([...f,...n]);return(e.codeSizePrefix??=[])[s]=a.length-f.length-n.length,a},(t,e)=>{let r,i=0;return t[0]?.[0]==="memory"?([,i]=t.shift(),i=N(i,e.memory)):(typeof t[0]=="string"||typeof t[0]=="number")&&(t[1]?.[0]==="offset"||Array.isArray(t[1])&&typeof t[1][0]=="string")&&(i=N(t.shift(),e.memory)),Array.isArray(t[0])&&typeof t[0]?.[0]=="string"&&(r=t.shift(),r[0]==="offset"&&([,r]=r),r??T("Bad offset",r)),[...i?[2,...I(i),...At(r,e)]:r?[0,...At(r,e)]:[1],...C(t.flatMap(s=>qr(s)??[...s]))]},(t,e)=>I(e.data.length),([[,t]],e)=>[0,...I(N(t,e.type))]],K=(t,e)=>t[0]==="ref"?t[1]=="null"?Array.isArray(t[2])&&t[2][0]==="exact"?[P.refnull,98,...I(N(t[2][1],e.type))]:P[t[2]]?[P[t[2]]]:[P.refnull,...I(N(t[t.length-1],e.type))]:Array.isArray(t[1])&&t[1][0]==="exact"?[P.ref,98,...I(N(t[1][1],e.type))]:[P.ref,...I(P[t[t.length-1]]||N(t[t.length-1],e.type))]:[P[t]??T(`Unknown type ${t}`)],qt=(t,e,r=t[0]==="mut"?1:0)=>[...K(r?t[1]:t,e),r],Fe={null:()=>[],reversed:(t,e)=>{let r=t.shift(),i=t.shift();return[...I(N(i,e.elem)),...I(N(r,e.table))]},block:(t,e)=>{e.block.push(1),H(t[0])&&(e.block[t.shift()]=e.block.length);let r=t.shift();return r?r[0]==="result"?K(r[1],e):I(N(r[1],e.type)):[P.void]},try_table:(t,e)=>{H(t[0])&&(e.block[t.shift()]=e.block.length+1);let r=t.shift(),i=r?r[0]==="result"?K(r[1],e):I(N(r[1],e.type)):[P.void],s=[],n=0;for(;t[0]?.[0]==="catch"||t[0]?.[0]==="catch_ref"||t[0]?.[0]==="catch_all"||t[0]?.[0]==="catch_all_ref";){let l=t.shift(),f=l[0]==="catch"?0:l[0]==="catch_ref"?1:l[0]==="catch_all"?2:3;f<=1?s.push(f,...I(N(l[1],e.tag)),...I(gt(l[2],e.block))):s.push(f,...I(gt(l[1],e.block))),n++}return e.block.push(1),[...i,...I(n),...s]},end:(t,e)=>(e.block.pop(),[]),call_indirect:(t,e)=>{let r=t.shift(),[,i]=t.shift();return[...I(N(i,e.type)),...I(N(r,e.table))]},br_table:(t,e)=>{let r=[],i=0;for(;t[0]&&(!isNaN(t[0])||H(t[0]));)r.push(...I(gt(t.shift(),e.block))),i++;return[...I(i-1),...r]},select:(t,e)=>{let r=t.shift()||[];return r.length?C(r.map(i=>K(i,e))):[]},ref_null:(t,e)=>{let r=t.shift();return Array.isArray(r)&&r[0]==="exact"?[98,...I(N(r[1],e.type))]:P[r]?[P[r]]:I(N(r,e.type))},memarg:(t,e,r)=>Ee(t,r,rt(t[0])&&!ie(t[0])?N(t.shift(),e.memory):0),opt_memory:(t,e)=>I(N(rt(t[0])?t.shift():0,e.memory)),reftype:(t,e)=>{let r=K(t.shift(),e);return r.length>1?r.slice(1):r},reftype2:(t,e)=>{let r=gt(t.shift(),e.block),i=K(t.shift(),e),s=K(t.shift(),e),n=l=>l.length>1?l.slice(1):l;return[(s[0]!==P.ref)<<1|i[0]!==P.ref,...I(r),...n(i),...n(s)]},v128const:t=>{let[e,r]=t.shift().split("x"),i=+e.slice(1),s=i>>>3;if(r=+r,e[0]==="i"){let l=r===16?new Uint8Array(16):r===8?new Uint16Array(8):r===4?new Uint32Array(4):new BigUint64Array(2);for(let f=0;f<r;f++)l[f]=Et[e].parse(t.shift());return[...new Uint8Array(l.buffer)]}let n=new Uint8Array(16);for(let l=0;l<r;l++)n.set(Et[e](t.shift()),l*s);return[...n]},shuffle:t=>{let e=[];for(let r=0;r<16;r++)e.push(Rt(t.shift(),32));return typeof t[0]=="string"&&!isNaN(t[0])&&T("invalid lane length"),e},memlane:(t,e,r)=>{let i=H(t[0])||rt(t[0])&&(ie(t[1])||rt(t[1]))?N(t.shift(),e.memory):0;return[...Ee(t,r,i),...I(Rt(t.shift()))]},"*":t=>I(t.shift()),labelidx:(t,e)=>I(gt(t.shift(),e.block)),laneidx:t=>[Rt(t.shift(),255)],funcidx:(t,e)=>I(N(t.shift(),e.func)),typeidx:(t,e)=>I(N(t.shift(),e.type)),tableidx:(t,e)=>I(N(t.shift(),e.table)),memoryidx:(t,e)=>I(N(t.shift(),e.memory)),globalidx:(t,e)=>I(N(t.shift(),e.global)),localidx:(t,e)=>I(N(t.shift(),e.local)),dataidx:(t,e)=>I(N(t.shift(),e.data)),elemidx:(t,e)=>I(N(t.shift(),e.elem)),tagidx:(t,e)=>I(N(t.shift(),e.tag)),"memoryidx?":(t,e)=>I(N(rt(t[0])?t.shift():0,e.memory)),stringidx:(t,e)=>{let r=t.shift(),i=r.valueOf(),s=e.strings.findIndex(n=>n.valueOf()===i);return s<0&&(s=e.strings.push(r)-1),I(s)},i32:t=>Y(t.shift()),i64:t=>xt(t.shift()),f32:t=>dt(t.shift()),f64:t=>_t(t.shift()),v128:t=>te(t.shift()),typeidx_field:(t,e)=>{let r=N(t.shift(),e.type);return[...I(r),...I(N(t.shift(),e.type[r][1]))]},typeidx_multi:(t,e)=>[...I(N(t.shift(),e.type)),...I(t.shift())],typeidx_dataidx:(t,e)=>[...I(N(t.shift(),e.type)),...I(N(t.shift(),e.data))],typeidx_elemidx:(t,e)=>[...I(N(t.shift(),e.type)),...I(N(t.shift(),e.elem))],typeidx_typeidx:(t,e)=>[...I(N(t.shift(),e.type)),...I(N(t.shift(),e.type))],dataidx_memoryidx:(t,e)=>[...I(N(t.shift(),e.data)),...I(N(t.shift(),e.memory))],memoryidx_memoryidx:(t,e)=>[...I(N(t.shift(),e.memory)),...I(N(t.shift(),e.memory))],tableidx_tableidx:(t,e)=>[...I(N(t.shift(),e.table)),...I(N(t.shift(),e.table))],cont_bind:(t,e)=>[...I(N(t.shift(),e.type)),...I(N(t.shift(),e.type))],switch_cont:(t,e)=>[...I(N(t.shift(),e.type)),...I(N(t.shift(),e.tag))],resume:(t,e)=>{let r=I(N(t.shift(),e.type)),i=[],s=0;for(;t[0]?.[0]==="on";){let[,n,l]=t.shift();l==="switch"?i.push(1,...I(N(n,e.tag))):i.push(0,...I(N(n,e.tag)),...I(gt(l,e.block))),s++}return[...r,...I(s),...i]},resume_throw:(t,e)=>{let r=I(N(t.shift(),e.type)),i=I(N(t.shift(),e.tag)),s=[],n=0;for(;t[0]?.[0]==="on";){let[,l,f]=t.shift();f==="switch"?s.push(1,...I(N(l,e.tag))):s.push(0,...I(N(l,e.tag)),...I(gt(f,e.block))),n++}return[...r,...i,...I(n),...s]},resume_throw_ref:(t,e)=>{let r=I(N(t.shift(),e.type)),i=[],s=0;for(;t[0]?.[0]==="on";){let[,n,l]=t.shift();l==="switch"?i.push(1,...I(N(n,e.tag))):i.push(0,...I(N(n,e.tag)),...I(gt(l,e.block))),s++}return[...r,...I(s),...i]}},Ct={};(function t(e,r){for(let i=0,s,n,l;i<e.length;i++)(s=e[i])&&(Array.isArray(s)?t(s,i):([n,l]=s.split(" "),St[n]=r?[r,...I(i)]:[i],l&&(Ct[n]=Fe[l])))})(St);var Ce=(t,e)=>{let r=[],i=[];for(;t?.length;){let s=t.shift();if(s?.[0]==="@metadata"){i.push(s.slice(1));continue}Array.isArray(s)&&(s.loc!=null&&(T.loc=s.loc),T(`Unknown instruction ${s[0]}`));let[...n]=St[s]||T(`Unknown instruction ${s}`);if(Ct[s]&&(s==="select"&&t[0]?.length?n[0]++:Ct[s]===Fe.reftype&&!s.endsWith("_null")&&(t[0][1]==="null"||t[0][0]!=="ref")&&n[n.length-1]++,n.push(...Ct[s](t,e,s))),i.length){for(let[l,f]of i)(e.meta[l]??=[]).push([r.length,f]);i=[]}r.push(...n)}return r.push(11),r},At=(t,e)=>Ce(yt([t],e),e),N=(t,e,r)=>(r=H(t)?e[t]:+t,r in e?r:T(`Unknown ${e.name} ${t}`)),gt=(t,e,r)=>(r=H(t)?e.length-e[t]:+t,isNaN(r)||r>e.length?T(`Bad label ${t}`):r),Er=t=>{let e,r,i,s;for(;ie(t[0]);)[i,s]=t.shift().split("="),i==="offset"?r=+s:i==="align"?e=+s:T(`Unknown param ${i}=${s}`);return(r<0||r>4294967295)&&T(`Bad offset ${r}`),(e<=0||e>4294967295)&&T(`Bad align ${e}`),e&&(e=Math.log2(e))%1&&T(`Bad align ${e}`),[e,r]},Ee=(t,e,r=0)=>{let[i,s]=Er(t),n=(i??Or(e))|(r&&64);return r?[...I(n),...I(r),...I(s??0)]:[...I(n),...I(s??0)]},Or=t=>{let e=t.indexOf(".",3)+1,r=t.slice(1,t[0]==="v"?4:3);if(t[e]==="a"&&(e=t.indexOf(".",e)+1),t[0]==="m")return t.includes("64")?3:2;if(t[e]==="r"){let n=t.slice(e,e+6).match(/\d+/);return Math.log2(n?n[0]/8:+r/8)}let i=t[e]==="l"?e+4:e+5,s=t.slice(i).match(/(\d+)(x|_|$)/);return Math.log2(s?s[2]==="x"?8:s[1]/8:+r/8)},qr=t=>{if(!Array.isArray(t))return null;let[e,...r]=t;if(e!=="i8"&&e!=="i16"&&e!=="i32"&&e!=="i64"&&e!=="f32"&&e!=="f64")return null;let i=[],s=new DataView(new ArrayBuffer(8));for(let n of r)e==="i8"?i.push(Y.parse(n)&511&255):e==="i16"?(s.setInt16(0,Y.parse(n),!0),i.push(...new Uint8Array(s.buffer,0,2))):e==="i32"?(s.setInt32(0,Y.parse(n),!0),i.push(...new Uint8Array(s.buffer,0,4))):e==="i64"?(s.setBigInt64(0,BigInt(n),!0),i.push(...new Uint8Array(s.buffer,0,8))):e==="f32"?i.push(...dt(n)):e==="f64"&&i.push(..._t(n));return i},Ft=t=>{let e=t[0]==="i64"&&t.shift(),r=t[t.length-1]==="shared"&&t.pop(),i=t.findIndex(a=>Array.isArray(a)&&a[0]==="pagesize"),s=-1;i>=0&&(s=Math.log2(+t.splice(i,1)[0][1]));let n=!isNaN(parseInt(t[1])),l=(s>=0?8:0)|(e?4:0)|(r?2:0)|(n?1:0),f=e?a=>{if(typeof a=="bigint")return a;let y=typeof a=="string"?a.replaceAll("_",""):String(a);return BigInt(y)}:Rt,c=s>=0?I(s):[];return n?[l,...I(f(t.shift())),...I(f(t.shift())),...c]:[l,...I(f(t.shift())),...c]},Rt=(t,e=4294967295)=>{let r=typeof t=="string"&&t[0]!=="+"?Y.parse(t):typeof t=="number"?t:T(`Bad int ${t}`);return r>e?T(`Value out of range ${t}`):r},C=t=>[...I(t.length),...t.flat()];function Re(t,e={}){typeof t=="string"&&(t=lt(t));let{indent:r=" ",newline:i=`
4
+ `,comments:s=!0}=e;if(r||="",i||="",typeof t[0]=="string"&&t[0][0]!==";")return l(t);return t.filter(f=>s||!n(f)).map(f=>l(f)).join(i);function n(f){return typeof f=="string"&&f[1]===";"}function l(f,c=0){if(!Array.isArray(f))return f;let a=f[0];if(!a)return"";let y=!1;if(a==="try_table"){let d=1;for(typeof f[d]=="string"&&f[d][0]==="$"&&(a+=" "+f[d++]),Array.isArray(f[d])&&(f[d][0]==="result"||f[d][0]==="type")&&(a+=" "+l(f[d++],c));Array.isArray(f[d])&&/^catch/.test(f[d][0]);)a+=" "+l(f[d++],c).trim();for(;d<f.length;d++)a+=Array.isArray(f[d])?i+r.repeat(c+1)+l(f[d],c+1):" "+f[d];return`(${a+i+r.repeat(c)})`}let m=!!i&&f.length<4&&!f.some(d=>typeof d=="string"&&d[0]===";"&&d[1]===";"),_=r.repeat(c+1);for(let d=1;d<f.length;d++){let k=f[d]?.valueOf?.()??f[d];if(typeof k=="string"&&k[1]===";"){if(!s)continue;if(k[0]===";")if(i)a+=i+_+k.trimEnd(),y=!0;else{let x=a[a.length-1];x&&x!==" "&&x!=="("&&(a+=" "),a+=k.trimEnd()+`
5
+ `}else{let x=a[a.length-1];x&&x!==" "&&x!=="("&&(a+=" "),a+=k.trimEnd()}}else if(Array.isArray(k))m&&(m=k.every(x=>!Array.isArray(x))),a+=i+_+l(k,c+1),y=!1;else if(f[0]==="data")m=!1,(i||a[a.length-1]!==")")&&(a+=i||" "),a+=_+k,y=!1;else{let x=a[a.length-1];y&&i?a+=i+_:x===`
6
+ `?a+="":(x&&x!==")"&&x!==" "||i||x===")")&&(a+=" "),a+=k,y=!1}}return m?`(${a.replaceAll(i+_+"("," (")})`:`(${a+i+r.repeat(c)})`}}var Ue=(t,e)=>{let r=[],i=t[0]==="module"?1:0;for(let s=i;s<t.length;s++)Array.isArray(t[s])&&t[s][0]===e&&r.push({node:t[s],idx:s});return r},Pt=(t,e,r)=>t.splice(e,0,r),Fr=0,ft=t=>`$__${t}${Fr++}`,Cr=(t,e)=>{let r=new Set;if(G(t,a=>{Array.isArray(a)&&a[0]==="ref.func"&&r.add(a[1])}),!r.size)return t;let i=ft("fntbl"),s=[...r],n=Object.fromEntries(s.map((a,y)=>[a,y])),l=Ue(t,"func"),f=l.length?l[0].idx:t[0]==="module"?1:0;Pt(t,f,["table",i,"funcref",["elem",...s]]);let c={};return G(t,a=>{if(!Array.isArray(a)||a[0]!=="func")return;let y=typeof a[1]=="string"&&a[1][0]==="$"?a[1]:null;if(!y)return;let m=[],_=[];for(let d of a){if(Array.isArray(d)&&d[0]==="param")for(let k=1;k<d.length;k++)d[k][0]!=="$"&&m.push(d[k]);if(Array.isArray(d)&&d[0]==="result")for(let k=1;k<d.length;k++)_.push(d[k])}c[y]={params:m,results:_}}),tt(t,(a,y,m)=>{if(!(!Array.isArray(a)||!y)){if(a[0]==="ref.func"&&n[a[1]]!==void 0&&(y[m]=["i32.const",n[a[1]]]),a[0]==="call_ref"){let _=a[1],d=a.slice(2);y[m]=["call_indirect",i,["type",_],...d]}if(a[0]==="return_call_ref"){let _=a[1],d=a.slice(2);y[m]=["return_call_indirect",i,["type",_],...d]}}}),t},Rr={"i32.extend8_s":["i32",24],"i32.extend16_s":["i32",16],"i64.extend8_s":["i64",56n],"i64.extend16_s":["i64",48n],"i64.extend32_s":["i64",32n]},Lr=(t,e)=>(tt(t,(r,i,s)=>{if(!Array.isArray(r)||!i)return;let n=Rr[r[0]];if(!n)return;let[l,f]=n,c=r.slice(1);i[s]=[`${l}.shr_s`,[`${l}.shl`,...c,[`${l}.const`,f]],[`${l}.const`,f]]}),t),Le={"i32.trunc_sat_f32_s":{itype:"i32",ftype:"f32",signed:!0,min:-2147483648,max:2147483647},"i32.trunc_sat_f32_u":{itype:"i32",ftype:"f32",signed:!1,min:0,max:4294967295},"i32.trunc_sat_f64_s":{itype:"i32",ftype:"f64",signed:!0,min:-2147483648,max:2147483647},"i32.trunc_sat_f64_u":{itype:"i32",ftype:"f64",signed:!1,min:0,max:4294967295},"i64.trunc_sat_f32_s":{itype:"i64",ftype:"f32",signed:!0,min:-9223372036854775808n,max:9223372036854775807n},"i64.trunc_sat_f32_u":{itype:"i64",ftype:"f32",signed:!1,min:0n,max:18446744073709551615n},"i64.trunc_sat_f64_s":{itype:"i64",ftype:"f64",signed:!0,min:-9223372036854775808n,max:9223372036854775807n},"i64.trunc_sat_f64_u":{itype:"i64",ftype:"f64",signed:!1,min:0n,max:18446744073709551615n}},Ur=(t,e)=>{let r=new Set;if(G(t,s=>{Array.isArray(s)&&Le[s[0]]&&r.add(s[0])}),!r.size)return t;let i={};for(let s of r){let{itype:n,ftype:l,signed:f,min:c,max:a}=Le[s],y=ft(`trunc_${n}_${l}_${f?"s":"u"}`);i[s]=y;let m=`${n}.trunc_${l}_${f?"s":"u"}`,_=n==="i64"?0n:0,d=["func",y,["param","$v",l],["result",n],["if",["result",n],[`${l}.ne`,["local.get","$v"],["local.get","$v"]],["then",[`${n}.const`,_]],["else",["if",["result",n],[`${l}.lt`,["local.get","$v"],[`${l}.const`,typeof c=="bigint"?Number(c):c]],["then",[`${n}.const`,c]],["else",["if",["result",n],[`${l}.gt`,["local.get","$v"],[`${l}.const`,typeof a=="bigint"?Number(a):a]],["then",[`${n}.const`,a]],["else",[m,["local.get","$v"]]]]]]]]];t.push(d)}return tt(t,(s,n,l)=>{!Array.isArray(s)||!n||i[s[0]]&&(n[l]=["call",i[s[0]],...s.slice(1)])}),t},Dr=(t,e)=>{let r=new Set,i=new Set;G(t,l=>{if(Array.isArray(l)){if(l[0]==="memory.copy"){let f=typeof l[1]=="number"?l[1]:0,c=typeof l[2]=="number"?l[2]:0;r.add(`${f}_${c}`)}if(l[0]==="memory.fill"){let f=typeof l[1]=="number"?l[1]:0;i.add(f)}}});let s={},n={};for(let l of r){let[f,c]=l.split("_").map(Number),a=ft(`memcpy${l==="0_0"?"":"_"+l}`);s[l]=a;let y=f?["i32.store8",f]:["i32.store8"],m=c?["i32.load8_u",c]:["i32.load8_u"];t.push(["func",a,["param","$dst","i32"],["param","$src","i32"],["param","$len","i32"],["local","$i","i32"],["block","$done",["loop","$loop",["br_if","$done",["i32.ge_u",["local.get","$i"],["local.get","$len"]]],[...y,["i32.add",["local.get","$dst"],["local.get","$i"]],[...m,["i32.add",["local.get","$src"],["local.get","$i"]]]],["local.set","$i",["i32.add",["local.get","$i"],["i32.const",1]]],["br","$loop"]]]])}for(let l of i){let f=ft(`memset${l===0?"":"_"+l}`);n[l]=f;let c=l?["i32.store8",l]:["i32.store8"];t.push(["func",f,["param","$dst","i32"],["param","$val","i32"],["param","$len","i32"],["local","$i","i32"],["block","$done",["loop","$loop",["br_if","$done",["i32.ge_u",["local.get","$i"],["local.get","$len"]]],[...c,["i32.add",["local.get","$dst"],["local.get","$i"]],["local.get","$val"]],["local.set","$i",["i32.add",["local.get","$i"],["i32.const",1]]],["br","$loop"]]]])}return tt(t,(l,f,c)=>{if(!(!Array.isArray(l)||!f)){if(l[0]==="memory.copy"){let a=typeof l[1]=="number"?l[1]:0,y=typeof l[2]=="number"?l[2]:0,m=l.filter(_=>Array.isArray(_)||typeof _=="string"&&_[0]==="$");f[c]=["call",s[`${a}_${y}`],...m]}if(l[0]==="memory.fill"){let a=typeof l[1]=="number"?l[1]:0,y=l.filter(m=>Array.isArray(m)||typeof m=="string"&&m[0]==="$");f[c]=["call",n[a],...y]}}}),t},Pr=(t,e)=>{let r=!1;return G(t,i=>{Array.isArray(i)&&(i[0]==="return_call"||i[0]==="return_call_indirect")&&(r=!0)}),r&&tt(t,(i,s,n)=>{!Array.isArray(i)||!s||(i[0]==="return_call"&&(s[n]=["return",["call",...i.slice(1)]]),i[0]==="return_call_indirect"&&(s[n]=["return",["call_indirect",...i.slice(1)]]))}),t},Wr=(t,e)=>(tt(t,(r,i,s)=>{if(!(!Array.isArray(r)||!i)&&(r[0]==="ref.i31"&&(i[s]=["i32.and",...r.slice(1),["i32.const",2147483647]]),r[0]==="i31.get_u"&&(i[s]=r.length>1?r[1]:["drop"]),r[0]==="i31.get_s")){let n=r.slice(1);i[s]=["i32.shr_s",["i32.shl",...n,["i32.const",1]],["i32.const",1]]}}),t),jr=(t,e)=>{let r={};G(t,s=>{if(!Array.isArray(s)||s[0]!=="global")return;let n=typeof s[1]=="string"&&s[1][0]==="$"?s[1]:null;if(n)for(let l=s.length-1;l>=0;l--){let f=s[l];if(Array.isArray(f)&&(f[0]==="i32.const"||f[0]==="i64.const"||f[0]==="f32.const"||f[0]==="f64.const")){r[n]={type:f[0].split(".")[0],value:f[1]};break}}});let i=s=>{if(!Array.isArray(s))return s;let n=s[0];if(n==="global.get"&&r[s[1]]){let l=r[s[1]];return[`${l.type}.const`,l.value]}if(n==="i32.add"||n==="i64.add"){let l=i(s[1]),f=i(s[2]);if(l&&f&&l[0]?.endsWith(".const")&&f[0]?.endsWith(".const")){let c=n.split(".")[0],a=c==="i64"?BigInt(l[1]):Number(l[1]),y=c==="i64"?BigInt(f[1]):Number(f[1]);return[`${c}.const`,a+y]}}if(n==="i32.sub"||n==="i64.sub"){let l=i(s[1]),f=i(s[2]);if(l&&f&&l[0]?.endsWith(".const")&&f[0]?.endsWith(".const")){let c=n.split(".")[0],a=c==="i64"?BigInt(l[1]):Number(l[1]),y=c==="i64"?BigInt(f[1]):Number(f[1]);return[`${c}.const`,a-y]}}if(n==="i32.mul"||n==="i64.mul"){let l=i(s[1]),f=i(s[2]);if(l&&f&&l[0]?.endsWith(".const")&&f[0]?.endsWith(".const")){let c=n.split(".")[0],a=c==="i64"?BigInt(l[1]):Number(l[1]),y=c==="i64"?BigInt(f[1]):Number(f[1]);return[`${c}.const`,a*y]}}return s};return tt(t,(s,n,l)=>{if(!(!Array.isArray(s)||s[0]!=="global"||!n)){for(let f=2;f<s.length;f++)if(Array.isArray(s[f])){let c=i(s[f]);c!==s[f]&&(s[f]=c)}}}),t},Gr=(t,e)=>{let r=new Map,i=[];if(G(t,f=>{if(!Array.isArray(f)||f[0]!=="func")return;let c=typeof f[1]=="string"&&f[1][0]==="$"?f[1]:null,a=[];for(let y of f)if(Array.isArray(y)&&y[0]==="result")for(let m=1;m<y.length;m++)a.push(y[m]);a.length>1&&c&&r.set(c,a)}),!r.size)return t;let s=Math.max(...[...r.values()].map(f=>f.length)),n={};for(let[f,c]of r)for(let a=1;a<c.length;a++){let y=c[a];if(n[y]||(n[y]=[]),n[y].length<a){let m=ft(`ret_${y}_${n[y].length}`);n[y].push(m),i.push(["global",m,["mut",y],[`${y}.const`,y==="i64"?0n:0]])}}let l=t[0]==="module"?1:0;for(let f of i.reverse())Pt(t,l,f);return tt(t,(f,c,a)=>{if(!Array.isArray(f)||f[0]!=="func")return;let y=typeof f[1]=="string"&&f[1][0]==="$"?f[1]:null;if(!y||!r.has(y))return;let m=r.get(y);for(let _=0;_<f.length;_++)if(Array.isArray(f[_])&&f[_][0]==="result"){f[_]=["result",m[0]];break}}),t},Mt={i32:4,i64:8,f32:4,f64:8},Hr=(t,e)=>{let r=new Map,i=new Map,s=1;if(G(t,x=>{if(!Array.isArray(x)||x[0]!=="type")return;let h=typeof x[1]=="string"&&x[1][0]==="$"?x[1]:null;if(h){for(let $ of x)if(Array.isArray($)){if($[0]==="struct"){let o=[];for(let u of $)if(Array.isArray(u)&&u[0]==="field"){let g=typeof u[1]=="string"&&u[1][0]==="$"?u[1]:null,p=g?u[2]:u[1],A=Array.isArray(p)&&p[0]==="mut"?p[1]:p;o.push({name:g,type:A})}r.set(h,{kind:"struct",fields:o}),i.set(h,s++)}if($[0]==="array"){let o=$[1],u=Array.isArray(o)&&o[0]==="mut"?o[1]:o;r.set(h,{kind:"array",elemType:u}),i.set(h,s++)}}}}),!r.size)return t;let n=Ue(t,"memory").length>0,l=ft("alloc"),f=ft("heap_ptr"),c=t[0]==="module"?1:0;n||Pt(t,c,["memory",1]),Pt(t,c+1,["global",f,["mut","i32"],["i32.const",1024]]);let a=["func",l,["param","$size","i32"],["result","i32"],["local","$ptr","i32"],["local.set","$ptr",["global.get",f]],["global.set",f,["i32.add",["global.get",f],["local.get","$size"]]],["local.get","$ptr"]];t.push(a);let y=x=>{let h=4;for(let $ of x.fields)h+=Mt[$.type]||4;return h},m=(x,h)=>{let $=4;for(let o=0;o<h;o++)$+=Mt[x.fields[o].type]||4;return $},_=(x,h)=>{for(let $=0;$<x.fields.length;$++)if(x.fields[$].name===h)return $;return-1},d=0,k=()=>`$__gc_tmp${d++}`;return G(t,x=>{if(!Array.isArray(x)||x[0]!=="func")return;let h=!1,$=!1,o=!1,u=!1;if(G(x,p=>{Array.isArray(p)&&((p[0]==="struct.new"||p[0]==="struct.new_default")&&(h=!0),(p[0]==="array.new"||p[0]==="array.new_default")&&($=!0,o=!0,u=!0))}),!h&&!$)return;let g=1;for(let p=1;p<x.length;p++){let A=x[p];if(Array.isArray(A)&&(A[0]==="param"||A[0]==="result"||A[0]==="local"||A[0]==="export"||A[0]==="type"))g=p+1;else if(typeof A=="string"&&A[0]==="$")g=p+1;else if(!Array.isArray(A))g=p+1;else break}h&&x.splice(g++,0,["local","$__gc_ptr","i32"]),$&&x.splice(g++,0,["local","$__gc_aptr","i32"]),o&&x.splice(g++,0,["local","$__gc_alen","i32"]),u&&x.splice(g++,0,["local","$__gc_aidx","i32"])}),tt(t,(x,h,$)=>{if(!(!Array.isArray(x)||!h)){if(x[0]==="struct.new"||x[0]==="struct.new_default"){let o=x[1],u=r.get(o);if(!u||u.kind!=="struct")return;let g=y(u),p=i.get(o),A=x.slice(2),b="$__gc_ptr",M=[["local.set",b,["call",l,["i32.const",g]]],["i32.store",["local.get",b],["i32.const",p]]];if(x[0]==="struct.new")for(let z=0;z<u.fields.length;z++){let v=u.fields[z],S=m(u,z),w=v.type==="i64"?"i64.store":v.type==="f32"?"f32.store":v.type==="f64"?"f64.store":"i32.store";M.push([w,["i32.add",["local.get",b],["i32.const",S]],A[z]||[`${v.type}.const`,0]])}else for(let z=0;z<u.fields.length;z++){let v=u.fields[z],S=m(u,z),w=v.type==="i64"?"i64.store":v.type==="f32"?"f32.store":v.type==="f64"?"f64.store":"i32.store",B=v.type==="i64"?["i64.const",0n]:v.type==="f32"?["f32.const",0]:v.type==="f64"?["f64.const",0]:["i32.const",0];M.push([w,["i32.add",["local.get",b],["i32.const",S]],B])}M.push(["local.get",b]),h[$]=["block",["result","i32"],...M]}if(x[0]==="struct.get"){let o=x[1],u=x[2],g=x[3],p=r.get(o);if(!p||p.kind!=="struct")return;let A=typeof u=="string"&&u[0]==="$"?_(p,u):parseInt(u);if(A<0)return;let b=p.fields[A],M=m(p,A),z=b.type==="i64"?"i64.load":b.type==="f32"?"f32.load":b.type==="f64"?"f64.load":"i32.load";h[$]=[z,["i32.add",g,["i32.const",M]]]}if(x[0]==="struct.set"){let o=x[1],u=x[2],g=x[3],p=x[4],A=r.get(o);if(!A||A.kind!=="struct")return;let b=typeof u=="string"&&u[0]==="$"?_(A,u):parseInt(u);if(b<0)return;let M=A.fields[b],z=m(A,b),v=M.type==="i64"?"i64.store":M.type==="f32"?"f32.store":M.type==="f64"?"f64.store":"i32.store";h[$]=[v,["i32.add",g,["i32.const",z]],p]}if(x[0]==="array.new"||x[0]==="array.new_default"){let o=x[1],u=r.get(o);if(!u||u.kind!=="array")return;let g=i.get(o),p=Mt[u.elemType]||4,A=x[0]==="array.new"?x[2]:null,b=x[0]==="array.new"?x[3]:x[2],M="$__gc_aptr",z="$__gc_alen",v="$__gc_aidx",S=u.elemType==="i64"?"i64.store":u.elemType==="f32"?"f32.store":u.elemType==="f64"?"f64.store":"i32.store",w=[["local.set",z,b],["local.set",M,["call",l,["i32.add",["i32.const",8],["i32.mul",["local.get",z],["i32.const",p]]]]],["i32.store",["local.get",M],["i32.const",g]],["i32.store",["i32.add",["local.get",M],["i32.const",4]],["local.get",z]]];A&&w.push(["local.set",v,["i32.const",0]],["block","$done",["loop","$loop",["br_if","$done",["i32.ge_u",["local.get",v],["local.get",z]]],[S,["i32.add",["i32.add",["local.get",M],["i32.const",8]],["i32.mul",["local.get",v],["i32.const",p]]],A],["local.set",v,["i32.add",["local.get",v],["i32.const",1]]],["br","$loop"]]]),w.push(["local.get",M]),h[$]=["block",["result","i32"],...w]}if(x[0]==="array.get"){let o=x[1],u=x[2],g=x[3],p=r.get(o);if(!p||p.kind!=="array")return;let A=Mt[p.elemType]||4,b=p.elemType==="i64"?"i64.load":p.elemType==="f32"?"f32.load":p.elemType==="f64"?"f64.load":"i32.load";h[$]=[b,["i32.add",["i32.add",u,["i32.const",8]],["i32.mul",g,["i32.const",A]]]]}if(x[0]==="array.set"){let o=x[1],u=x[2],g=x[3],p=x[4],A=r.get(o);if(!A||A.kind!=="array")return;let b=Mt[A.elemType]||4,M=A.elemType==="i64"?"i64.store":A.elemType==="f32"?"f32.store":A.elemType==="f64"?"f64.store":"i32.store";h[$]=[M,["i32.add",["i32.add",u,["i32.const",8]],["i32.mul",g,["i32.const",b]]],p]}if(x[0]==="array.len"){let o=x[1];h[$]=["i32.load",["i32.add",o,["i32.const",4]]]}}}),t},Vr=(t,e)=>{let r=new Map,i=1;return G(t,s=>{if(!Array.isArray(s)||s[0]!=="type")return;let n=typeof s[1]=="string"&&s[1][0]==="$"?s[1]:null;if(n)for(let l of s)Array.isArray(l)&&(l[0]==="struct"||l[0]==="array")&&r.set(n,i++)}),r.size&&tt(t,(s,n,l)=>{if(!(!Array.isArray(s)||!n)){if(s[0]==="ref.test"){let f=s[1],c=null;Array.isArray(f)&&f[0]==="ref"&&(c=f[1]==="null"?f[2]:f[1]);let a=s[2],y=r.get(c);y!==void 0&&(n[l]=["if",["result","i32"],["i32.eqz",a],["then",["i32.const",0]],["else",["i32.eq",["i32.load",a],["i32.const",y]]]])}if(s[0]==="ref.cast"){let f=s[1],c=null,a=!1;Array.isArray(f)&&f[0]==="ref"&&(f[1]==="null"?(a=!0,c=f[2]):c=f[1]);let y=s[2],m=r.get(c);if(m!==void 0){let _=ft("cast");a?n[l]=["block",["result","i32"],["local",_,"i32"],["local.set",_,y],["if",["i32.and",["i32.ne",["local.get",_],["i32.const",0]],["i32.ne",["i32.load",["local.get",_]],["i32.const",m]]],["then",["unreachable"]]],["local.get",_]]:n[l]=["block",["result","i32"],["local",_,"i32"],["local.set",_,y],["if",["i32.or",["i32.eqz",["local.get",_]],["i32.ne",["i32.load",["local.get",_]],["i32.const",m]]],["then",["unreachable"]]],["local.get",_]]}}if(s[0]==="br_on_cast"){let f=s[1],c=s[2],a=s[3],y=s[4],m=null;Array.isArray(a)&&a[0]==="ref"&&(m=a[1]==="null"?a[2]:a[1]);let _=r.get(m);if(_!==void 0){let d=ft("brcast");n[l]=["block",["result","i32"],["local",d,"i32"],["local.set",d,y],["br_if",f,["i32.and",["i32.ne",["local.get",d],["i32.const",0]],["i32.eq",["i32.load",["local.get",d]],["i32.const",_]]]],["local.get",d]]}}if(s[0]==="br_on_cast_fail"){let f=s[1],c=s[2],a=s[3],y=s[4],m=null;Array.isArray(a)&&a[0]==="ref"&&(m=a[1]==="null"?a[2]:a[1]);let _=r.get(m);if(_!==void 0){let d=ft("brfail");n[l]=["block",["result","i32"],["local",d,"i32"],["local.set",d,y],["br_if",f,["i32.or",["i32.eqz",["local.get",d]],["i32.ne",["i32.load",["local.get",d]],["i32.const",_]]]],["local.get",d]]}}}}),t},Wt=[["funcref",["ref.func","call_ref","return_call_ref"],Cr],["sign_ext",["i32.extend8_s","i32.extend16_s","i64.extend8_s","i64.extend16_s","i64.extend32_s"],Lr],["nontrapping",["i32.trunc_sat_f32_s","i32.trunc_sat_f32_u","i32.trunc_sat_f64_s","i32.trunc_sat_f64_u","i64.trunc_sat_f32_s","i64.trunc_sat_f32_u","i64.trunc_sat_f64_s","i64.trunc_sat_f64_u"],Ur],["bulk_memory",["memory.copy","memory.fill"],Dr],["return_call",["return_call","return_call_indirect"],Pr],["i31ref",["ref.i31","i31.get_s","i31.get_u"],Wr],["extended_const",["global.get"],jr],["multi_value",[],Gr],["gc",["struct.new","struct.get","struct.set","array.new","array.get","array.set","array.len","struct.new_default","array.new_default","array.new_fixed","array.copy"],Hr],["ref_cast",["ref.test","ref.cast","br_on_cast","br_on_cast_fail"],Vr]],ks=Object.fromEntries(Wt.map(t=>[t[0],t[1]])),Yr=t=>{if(t===!1)return{};if(t!==!0&&typeof t!="string")return{...t};let e=typeof t=="string"?new Set(t.split(/\s+/).filter(Boolean)):null,r={};for(let i of Wt)r[i[0]]=e?e.has("all")||e.has(i[0]):!0;return r},Xr=t=>{let e=new Set;return G(t,r=>{if(typeof r=="string")for(let i of Wt)i[1].some(n=>r===n||r.startsWith(n+" "))&&e.add(i[0])}),G(t,r=>{if(!(!Array.isArray(r)||r[0]!=="global"))for(let i of r)Array.isArray(i)&&(i[0]==="i32.add"||i[0]==="i32.sub"||i[0]==="i32.mul"||i[0]==="i64.add"||i[0]==="i64.sub"||i[0]==="i64.mul")&&G(i,s=>{Array.isArray(s)&&s[0]==="global.get"&&e.add("extended_const")})}),G(t,r=>{if(!Array.isArray(r)||r[0]!=="func")return;let i=0;for(let s of r)Array.isArray(s)&&s[0]==="result"&&(i+=s.length-1);i>1&&e.add("multi_value")}),e};function le(t,e=!0){typeof t=="string"&&(t=lt(t)),t=Qt(t),e=Yr(e);let r=Xr(t),i={uid:0};for(let s of Wt){let n=s[2];r.has(s[0])&&e[s[0]]!==!1&&(t=n(t,i))}return t}var Zr=6,Ze=16,Q=t=>Array.isArray(t)?t.map(Q):t,F=(t,e,r,i)=>{if(e(t,r,i),Array.isArray(t))for(let s=0;s<t.length;s++)F(t[s],e,t,s)},j=(t,e,r,i)=>{if(Array.isArray(t))for(let n=0;n<t.length;n++)j(t[n],e,t,n);let s=e(t,r,i);return s!==void 0&&r&&(r[i]=s),s!==void 0?s:t},De=t=>{if(typeof t!="string")return null;let e=t.indexOf(".");if(e<0)return null;let r=t.slice(0,e),i=r==="i32"||r==="i64"||r==="f32"||r==="f64";return i&&/^(eqz?|ne|[lg][te])(_[su])?$/.test(t.slice(e+1))?"i32":i||r==="v128"?r:t==="memory.size"||t==="memory.grow"?"i32":null};var Pe=t=>{try{return bt(t).length}catch{return 1/0}},nt=(t,e)=>{if(t===e)return!0;if(typeof t!=typeof e)return!1;if(typeof t=="bigint")return t===e;if(!Array.isArray(t)||!Array.isArray(e)||t.length!==e.length)return!1;for(let r=0;r<t.length;r++)if(!nt(t[r],e[r]))return!1;return!0},vt=t=>{let e=1;for(;e<t.length;){let s=t[e];if(Array.isArray(s)&&(s[0]==="then"||s[0]==="else"||s[0]==="result"||s[0]==="param")){e++;continue}break}let r=null,i=null;for(let s=e+1;s<t.length;s++){let n=t[s];Array.isArray(n)&&(n[0]==="then"?r=n:n[0]==="else"&&(i=n))}return{condIdx:e,cond:t[e],thenBranch:r,elseBranch:i}},Kr=t=>{if(!Array.isArray(t)||t[0]!=="module")return t;let e=new Map,r=new Map,i=new Map,s=new Map,n=new Map,l=new Map,f=(v,S,w,B=!1)=>{let E=typeof S[1]=="string"&&S[1][0]==="$",Z=E?S[1]:w,V=!B&&S.some(O=>Array.isArray(O)&&O[0]==="export"),U={node:S,idx:w,used:V,isImport:B};return v.set(Z,U),E&&v.set(w,U),l.set(S,U),U},c=0,a=0,y=0,m=0,_=0,d=[],k=[],x=[],h=[];for(let v of t.slice(1)){if(!Array.isArray(v))continue;let S=v[0];if(S==="type")f(i,v,y++);else if(S==="func")f(e,v,c++);else if(S==="global")f(r,v,a++);else if(S==="table")f(s,v,m++);else if(S==="memory")f(n,v,_++);else if(S==="import")for(let w of v)Array.isArray(w)&&(w[0]==="func"?f(e,w,c++,!0):w[0]==="global"?f(r,w,a++,!0):w[0]==="table"?f(s,w,m++,!0):w[0]==="memory"&&f(n,w,_++,!0));else S==="export"?x.push(v):S==="start"?h.push(v):S==="elem"?d.push(v):S==="data"&&k.push(v)}let $=[],o=v=>{v&&!v.scanned&&$.push(v)},u=v=>{let S=e.get(v);S&&(S.used||(S.used=!0),o(S))},g=v=>{let S=r.get(v);S&&(S.used=!0)},p=v=>{let S=s.get(v);S&&(S.used=!0)},A=v=>{typeof v=="string"&&v[0]!=="$"&&(v=+v);let S=n.get(v);S&&(S.used=!0)},b=v=>{let S=i.get(v);S&&(S.used=!0)};for(let v of x)for(let S of v){if(!Array.isArray(S))continue;let[w,B]=S;w==="func"?u(B):w==="global"?g(B):w==="table"?p(B):w==="memory"&&A(B)}for(let v of h){let S=v[1];typeof S=="string"&&S[0]!=="$"&&(S=+S),u(S)}for(let v of d)F(v,S=>{Array.isArray(S)&&S[0]==="ref.func"?u(S[1]):typeof S=="string"&&S[0]==="$"&&u(S)});for(let v of k){let S=v[1];Array.isArray(S)&&S[0]==="memory"?A(S[1]):typeof S=="string"&&S[0]==="$"?A(S):Array.isArray(S)&&A(0)}for(let v of[e,r,s,n])for(let S of v.values())S.used&&o(S);if(!(x.length>0||h.length>0||d.length>0||$.length>0)){for(let v of[e,r,s,n])for(let S of v.values())S.used=!0;return t}for(;$.length;){let v=$.pop();v.scanned||(v.scanned=!0,!v.isImport&&F(v.node,S=>{if(!Array.isArray(S)){typeof S=="string"&&S[0]==="$"&&u(S);return}let[w,B]=S;if(w==="call"||w==="return_call"||w==="ref.func")u(B);else if(w==="global.get"||w==="global.set")g(B);else if(w==="type")b(B);else if(w==="call_indirect"||w==="return_call_indirect")for(let E of S)typeof E=="string"&&E[0]==="$"&&p(E);typeof w=="string"&&(w.startsWith("memory.")||w.includes(".load")||w.includes(".store"))&&A(0)}))}let z=["module"];for(let v of t.slice(1)){if(!Array.isArray(v)){z.push(v);continue}let S=v[0];if(S==="func"||S==="global"||S==="type")l.get(v)?.used&&z.push(v);else if(S==="import"){let w=!1;for(let B of v){if(!Array.isArray(B))continue;if(l.get(B)?.used){w=!0;break}}w&&z.push(v)}else z.push(v)}return z},We=t=>t-Math.floor(t)!==.5?Math.round(t):2*Math.round(t/2),Ke=new ArrayBuffer(8),ye=new Float64Array(Ke),It=new Uint32Array(Ke),Qe=new ArrayBuffer(4),pe=new Float32Array(Qe),ge=new Int32Array(Qe),X=t=>(t>>>0).toString(16).padStart(8,"0"),Qr=t=>{let e="",r=1;for(let i=15;i>=0;i--){let s=15-parseInt(t[i],16)+r;e=(s&15).toString(16)+e,r=s>>4}return e},Nt=t=>{let e=t.toString(16);return e[0]==="-"?Qr(e.slice(1).padStart(16,"0")):e.padStart(16,"0")},W="0x0000000000000000",fe="0x0000000000000001",Zt="0xffffffffffffffff",mt=t=>{if(typeof t=="string"){let e=t.replaceAll("_","");if(e.length===18&&e[1]==="x")return"0x"+e.slice(2).toLowerCase();let r=e[0]==="-",i=e[0]==="-"||e[0]==="+"?e.slice(1):e;return"0x"+Nt(r?-BigInt(i):BigInt(i))}return typeof t=="bigint"?"0x"+Nt(BigInt(String(t))):"0x"+Nt(BigInt(Math.trunc(t)||0))},je=t=>(parseInt(t[2],16)^8).toString(16)+t.slice(3),jt=t=>parseInt(t.slice(10),16)|0,at=t=>parseInt(t.slice(2,10),16)>>>0,it=t=>t==null?null:"0x"+Nt(t),Bt=t=>{let e=BigInt(t);return e>0x7fffffffffffffffn&&(e=e-0x8000000000000000n-0x8000000000000000n),e},Jr=t=>(ye[0]=t,"0x"+X(It[1])+X(It[0])),ti=t=>(It[1]=parseInt(t.slice(2,10),16),It[0]=parseInt(t.slice(10),16),ye[0]),ei=t=>(pe[0]=t,ge[0]),ri=t=>(ge[0]=t|0,pe[0]),wt=t=>(e,r)=>t(e,r)?1:0,Gt=t=>(e,r)=>t(e>>>0,r>>>0)?1:0,Ht=t=>(e,r)=>t(je(e),je(r))?1:0,Vt=t=>(e,r)=>t(e,r)?1:0,ii={"i32.add":(t,e)=>t+e|0,"i32.sub":(t,e)=>t-e|0,"i32.mul":(t,e)=>Math.imul(t,e),"i32.div_s":(t,e)=>e!==0?t/e|0:null,"i32.div_u":(t,e)=>e!==0?(t>>>0)/(e>>>0)|0:null,"i32.rem_s":(t,e)=>e!==0?t%e|0:null,"i32.rem_u":(t,e)=>e!==0?(t>>>0)%(e>>>0)|0:null,"i32.and":(t,e)=>t&e,"i32.or":(t,e)=>t|e,"i32.xor":(t,e)=>t^e,"i32.shl":(t,e)=>t<<(e&31),"i32.shr_s":(t,e)=>t>>(e&31),"i32.shr_u":(t,e)=>t>>>(e&31),"i32.rotl":(t,e)=>(e&=31,t<<e|t>>>32-e|0),"i32.rotr":(t,e)=>(e&=31,t>>>e|t<<32-e|0),"i32.eq":wt((t,e)=>t===e),"i32.ne":wt((t,e)=>t!==e),"i32.lt_s":wt((t,e)=>t<e),"i32.lt_u":Gt((t,e)=>t<e),"i32.gt_s":wt((t,e)=>t>e),"i32.gt_u":Gt((t,e)=>t>e),"i32.le_s":wt((t,e)=>t<=e),"i32.le_u":Gt((t,e)=>t<=e),"i32.ge_s":wt((t,e)=>t>=e),"i32.ge_u":Gt((t,e)=>t>=e),"i32.eqz":t=>t===0?1:0,"i32.clz":t=>Math.clz32(t),"i32.ctz":t=>t===0?32:31-Math.clz32(t&-t),"i32.popcnt":t=>{let e=0;for(;t;)e+=t&1,t>>>=1;return e},"i32.wrap_i64":t=>jt(t),"i32.extend8_s":t=>t<<24>>24,"i32.extend16_s":t=>t<<16>>16,"i64.add":(t,e)=>it(BigInt(t)+BigInt(e)&0xffffffffffffffffn),"i64.sub":(t,e)=>it(BigInt(t)-BigInt(e)&0xffffffffffffffffn),"i64.mul":(t,e)=>it(BigInt(t)*BigInt(e)&0xffffffffffffffffn),"i64.div_s":(t,e)=>e!==W&&!(t==="0x8000000000000000"&&e===Zt)?it(Bt(t)/Bt(e)&0xffffffffffffffffn):null,"i64.div_u":(t,e)=>e!==W&&!(at(t)>>>31)&&!(at(e)>>>31)?it(BigInt(t)/BigInt(e)):null,"i64.rem_s":(t,e)=>e!==W?it(Bt(t)%Bt(e)&0xffffffffffffffffn):null,"i64.rem_u":(t,e)=>e!==W&&!(at(t)>>>31)&&!(at(e)>>>31)?it(BigInt(t)%BigInt(e)):null,"i64.and":(t,e)=>it(BigInt(t)&BigInt(e)&0xffffffffffffffffn),"i64.or":(t,e)=>it((BigInt(t)|BigInt(e))&0xffffffffffffffffn),"i64.xor":(t,e)=>it((BigInt(t)^BigInt(e))&0xffffffffffffffffn),"i64.shl":(t,e)=>it(BigInt(t)<<(BigInt(e)&63n)&0xffffffffffffffffn),"i64.shr_s":(t,e)=>it(Bt(t)>>(BigInt(e)&63n)&0xffffffffffffffffn),"i64.shr_u":(t,e)=>{let r=parseInt(e.slice(10),16)&63,i=at(t),s=parseInt(t.slice(10),16)>>>0,n=r>=32?0:i>>>r,l=r===0?s:r>=32?i>>>r-32:(s>>>r|i<<32-r)>>>0;return"0x"+X(n)+X(l)},"i64.eq":(t,e)=>t===e?1:0,"i64.ne":(t,e)=>t!==e?1:0,"i64.lt_s":Ht((t,e)=>t<e),"i64.lt_u":Vt((t,e)=>t<e),"i64.gt_s":Ht((t,e)=>t>e),"i64.gt_u":Vt((t,e)=>t>e),"i64.le_s":Ht((t,e)=>t<=e),"i64.le_u":Vt((t,e)=>t<=e),"i64.ge_s":Ht((t,e)=>t>=e),"i64.ge_u":Vt((t,e)=>t>=e),"i64.eqz":t=>t===W?1:0,"i64.extend_i32_s":t=>"0x"+X(t>>31)+X(t),"i64.extend_i32_u":t=>"0x00000000"+X(t),"i64.extend8_s":t=>{let e=jt(t)<<24>>24;return"0x"+X(e>>31)+X(e)},"i64.extend16_s":t=>{let e=jt(t)<<16>>16;return"0x"+X(e>>31)+X(e)},"i64.extend32_s":t=>{let e=jt(t);return"0x"+X(e>>31)+X(e)},"f32.add":(t,e)=>Math.fround(t+e),"f32.sub":(t,e)=>Math.fround(t-e),"f32.mul":(t,e)=>Math.fround(t*e),"f32.div":(t,e)=>Math.fround(t/e),"f32.neg":t=>Math.fround(-t),"f32.abs":t=>Math.fround(Math.abs(t)),"f32.sqrt":t=>Math.fround(Math.sqrt(t)),"f32.ceil":t=>Math.fround(Math.ceil(t)),"f32.floor":t=>Math.fround(Math.floor(t)),"f32.trunc":t=>Math.fround(Math.trunc(t)),"f32.nearest":t=>Math.fround(We(t)),"f64.add":(t,e)=>t+e,"f64.sub":(t,e)=>t-e,"f64.mul":(t,e)=>t*e,"f64.div":(t,e)=>t/e,"f64.neg":t=>-t,"f64.abs":Math.abs,"f64.sqrt":Math.sqrt,"f64.ceil":Math.ceil,"f64.floor":Math.floor,"f64.trunc":Math.trunc,"f64.nearest":We,"i32.reinterpret_f32":ei,"f32.reinterpret_i32":ri,"i64.reinterpret_f64":Jr,"f64.reinterpret_i64":ti,"f32.convert_i32_s":t=>Math.fround(t|0),"f32.convert_i32_u":t=>Math.fround(t>>>0),"f32.convert_i64_s":t=>Math.fround((at(t)|0)*4294967296+parseInt(t.slice(10),16)),"f32.convert_i64_u":t=>Math.fround(at(t)*4294967296+parseInt(t.slice(10),16)),"f64.convert_i32_s":t=>t|0,"f64.convert_i32_u":t=>t>>>0,"f64.convert_i64_s":t=>(at(t)|0)*4294967296+parseInt(t.slice(10),16),"f64.convert_i64_u":t=>at(t)*4294967296+parseInt(t.slice(10),16),"f32.demote_f64":t=>Math.fround(t),"f64.promote_f32":t=>Math.fround(t)},si=t=>{let e=t?.indexOf?.("nan");if(e<0||e==null)return null;let r=t.slice(e+4).replaceAll("_",""),s=(t[e+3]===":"&&r!=="canonical"&&r!=="arithmetic"?BigInt(r):0x8000000000000n).toString(16).padStart(16,"0"),n=(parseInt(s.slice(0,8),16)|2146435072|(t[0]==="-"?2147483648:0))>>>0;return"0x"+X(n)+s.slice(8)},ni=(t,e=t?.indexOf?.("nan"))=>{if(e<0||e==null)return null;let r=t.slice(e+4).replaceAll("_",""),s=(t[e+3]===":"&&r!=="canonical"&&r!=="arithmetic"?BigInt(r):0x8000000000000n).toString(16).padStart(16,"0");return It[1]=(parseInt(s.slice(0,8),16)|2146435072|(t[0]==="-"?2147483648:0))>>>0,It[0]=parseInt(s.slice(8),16),ye[0]},li=(t,e=t?.indexOf?.("nan"))=>{if(e<0||e==null)return null;let r=t.slice(e+4).replaceAll("_",""),i=t[e+3]===":"&&r!=="canonical"&&r!=="arithmetic"?parseInt(r):4194304;return ge[0]=i|2139095040|(t[0]==="-"?2147483648:0)|0,pe[0]},q=t=>{if(!Array.isArray(t)||t.length!==2)return null;let[e,r]=t;if(e==="i32.const")return{type:"i32",value:(typeof r=="string"?parseInt(r.replaceAll("_","")):r)|0};if(e==="i64.const")return{type:"i64",value:mt(r)};if(e==="f32.const"){let i=li(r);return{type:"f32",value:i!==null?i:Math.fround(Number(r))}}if(e==="f64.const"){let i=ni(r),s=i!==null?i:Number(r);return{type:"f64",value:Number.isNaN(s)?NaN:s}}return null},Ge=(t,e)=>{if(t==="i32")return["i32.const",e|0];if(t==="i64")return["i64.const",typeof e=="number"?e:mt(e)];if(t==="f32"){let r=Math.fround(e);return["f32.const",Number.isNaN(r)?"nan":r]}return t==="f64"?["f64.const",Number.isNaN(e)?"nan":e]:null},fi=t=>j(t,e=>{if(!Array.isArray(e))return;let r=ii[e[0]];if(r){if(e.length===2){if(e[0]==="i64.reinterpret_f64"){let n=e[1];if(Array.isArray(n)&&n.length===2&&n[0]==="f64.const"&&typeof n[1]=="string"){let l=si(n[1]);if(l)return["i64.const",l]}}if(e[0]==="f64.reinterpret_i64"){let n=q(e[1]);if(n&&n.type==="i64"){let l=n.value.slice(2),f=parseInt(l.slice(0,8),16)>>>0,c=parseInt(l.slice(8),16)>>>0;if((f&2146435072)===2146435072&&((f&1048575)!==0||c!==0))return["f64.const",(f&2147483648?"-":"")+"nan:0x"+(f&1048575).toString(16).padStart(5,"0")+l.slice(8)]}}let i=q(e[1]);if(!i)return;let s=r(i.value);return s==null?void 0:Ge(De(e[0]),s)}if(e.length===3){let i=q(e[1]),s=q(e[2]);if(!i||!s)return;let n=r(i.value,s.value);return n==null?void 0:Ge(De(e[0]),n)}}}),ot=t=>(e,r)=>{let i=q(e),s=q(r);return i?.value===t?r:s?.value===t?e:null},st=t=>(e,r)=>q(r)?.value===t?e:null,oi={"i32.add":ot(0),"i64.add":ot(W),"i32.sub":st(0),"i64.sub":st(W),"i32.mul":ot(1),"i64.mul":ot(fe),"i32.div_s":st(1),"i32.div_u":st(1),"i64.div_s":st(fe),"i64.div_u":st(fe),"i32.and":ot(-1),"i64.and":ot(Zt),"i32.or":ot(0),"i64.or":ot(W),"i32.xor":ot(0),"i64.xor":ot(W),"i32.shl":st(0),"i32.shr_s":st(0),"i32.shr_u":st(0),"i64.shl":st(W),"i64.shr_s":st(W),"i64.shr_u":st(W)},ai=t=>j(t,e=>{if(!Array.isArray(e)||e.length!==3)return;let r=oi[e[0]];if(!r)return;let i=r(e[1],e[2]);if(i!==null)return i}),ci=t=>j(t,e=>{if(!Array.isArray(e)||e.length!==3)return;let[r,i,s]=e;if(r==="i32.mul"){let n=q(s);if(n&&n.value>0&&!(n.value&n.value-1)){let f=Math.log2(n.value);if(Number.isInteger(f))return["i32.shl",i,["i32.const",f]]}let l=q(i);if(l&&l.value>0&&!(l.value&l.value-1)){let f=Math.log2(l.value);if(Number.isInteger(f))return["i32.shl",s,["i32.const",f]]}}if(r==="i64.mul"){let n=q(s),l=n?BigInt(n.value):null;if(l!=null&&l>0n&&(l&l-1n)===0n)return["i64.shl",i,["i64.const",l.toString(2).length-1]];let f=q(i),c=f?BigInt(f.value):null;if(c!=null&&c>0n&&(c&c-1n)===0n)return["i64.shl",s,["i64.const",c.toString(2).length-1]]}if(r==="i32.div_u"){let n=q(s);if(n&&n.value>0&&!(n.value&n.value-1)){let l=Math.log2(n.value);if(Number.isInteger(l))return["i32.shr_u",i,["i32.const",l]]}}if(r==="i64.div_u"){let n=q(s),l=n?BigInt(n.value):null;if(l!=null&&l>0n&&(l&l-1n)===0n)return["i64.shr_u",i,["i64.const",l.toString(2).length-1]]}if(r==="i32.rem_u"){let n=q(s);if(n&&n.value>0&&!(n.value&n.value-1))return["i32.and",i,["i32.const",n.value-1]]}if(r==="i64.rem_u"){let n=q(s),l=n?BigInt(n.value):null;if(l!=null&&l>0n&&(l&l-1n)===0n)return["i64.and",i,["i64.const","0x"+Nt(l-1n)]]}}),ui=t=>j(t,e=>{if(!Array.isArray(e))return;let r=e[0];if(r==="if"){let{condIdx:i,cond:s,thenBranch:n,elseBranch:l}=vt(e),f=q(s);if(!f)return;let c=f.value!==0&&f.value!==W?n:l;if(c&&c.length>1){let a=c.slice(1),y=e.slice(1,i).filter(m=>Array.isArray(m)&&(m[0]==="result"||m[0]==="param"));return y.length?["block",...y,...a]:a.length===1?a[0]:["block",...a]}return["nop"]}if(r==="br_if"&&e.length>=3){let i=e[e.length-1],s=q(i);return s?s.value===0||s.value===W?["nop"]:["br",e[1]]:void 0}if(r==="select"&&e.length>=4){let i=e[e.length-1],s=q(i);return s?s.value===0||s.value===W?e[2]:e[1]:void 0}}),yi=t=>{if(Array.isArray(t))for(let e of t)Array.isArray(e)&&e[0]==="func"&&gi(e);return t},pi=new Set,gi=t=>{let e=new Map,r=new Map,i=new Map,s=new Map,n=o=>{if(!Array.isArray(o)||o.length!==2||o[0]!=="i32.const"&&o[0]!=="i64.const")return null;let u=typeof o[1]=="string"?Number(o[1].replaceAll("_","")):Number(o[1]);return Number.isFinite(u)?u:null},l=o=>Array.isArray(o)&&o[0]==="i32.const"?n(o):null,f=o=>Array.isArray(o)?o[0]==="i64.reinterpret_f64"&&Array.isArray(o[1])&&o[1][0]==="local.get"&&typeof o[1][1]=="string"?o[1][1]:o[0]==="local.get"&&typeof o[1]=="string"?e.get(o[1])??null:null:null,c=o=>{if(!Array.isArray(o))return null;let u=o[0];if(u==="local.get"&&typeof o[1]=="string")return r.get(o[1])??null;if(u==="call"&&o[1]==="$__ptr_type"&&o.length===3)return f(o[2]);let g=p=>Array.isArray(p)&&p[0]==="i64.shr_u"&&n(p[2])===47?f(p[1]):null;if(u==="i32.and"&&o.length===3){let[p,A]=l(o[2])===15?[o[1],null]:l(o[1])===15?[o[2],null]:[null,null];if(p&&Array.isArray(p)&&p[0]==="i32.wrap_i64")return g(p[1])}if(u==="i32.wrap_i64"&&Array.isArray(o[1])&&o[1][0]==="i64.and"){let p=o[1];if(n(p[2])===15)return g(p[1]);if(n(p[1])===15)return g(p[2])}return null},a=o=>{e.delete(o),r.delete(o),i.delete(o),s.delete(o);for(let[u,g]of e)g===o&&e.delete(u);for(let[u,g]of r)g===o&&r.delete(u)},y=new Map,m=o=>{if(!Array.isArray(o))return pi;let u=y.get(o);if(u)return u;u=new Set,(o[0]==="local.set"||o[0]==="local.tee")&&typeof o[1]=="string"&&u.add(o[1]);for(let g=1;g<o.length;g++)for(let p of m(o[g]))u.add(p);return y.set(o,u),u},_=()=>[new Map(i),new Map([...s].map(([o,u])=>[o,new Set(u)])),new Map(e),new Map(r)],d=(o,u)=>{o.clear();for(let[g,p]of u)o.set(g,p)},k=([o,u,g,p])=>{d(i,o),d(s,u),d(e,g),d(r,p)},x=(o,u,g)=>{if(!Array.isArray(o))return g;let p=o[0];if(p==="i32.eqz")return x(o[1],!u,g);if(p==="i32.and"&&u&&o.length===3)return x(o[1],!0,g),x(o[2],!0,g),g;if(p==="i32.or"&&!u&&o.length===3)return x(o[1],!1,g),x(o[2],!1,g),g;if((p==="i32.eq"||p==="i32.ne")&&o.length===3){let b=c(o[1]),M=l(o[2]);return(b==null||M==null)&&(b=c(o[2]),M=l(o[1])),b!=null&&M!=null&&g.push({x:b,k:M,eq:p==="i32.eq"===u}),g}let A=c(o);return A!=null&&g.push({x:A,k:0,eq:!u}),g},h=o=>{for(let{x:u,k:g,eq:p}of o)if(p)i.set(u,g);else{let A=s.get(u);A||s.set(u,A=new Set),A.add(g)}},$=(o,u,g)=>{if(!Array.isArray(o))return;let p=o[0];if(p==="local.set"||p==="local.tee"){Array.isArray(o[2])&&$(o[2],o,2);let b=o[1];if(typeof b!="string")return;a(b);let M=o[2];if(Array.isArray(M))if(M[0]==="i64.reinterpret_f64"&&Array.isArray(M[1])&&M[1][0]==="local.get"&&typeof M[1][1]=="string")e.set(b,M[1][1]);else if(M[0]==="local.get"&&typeof M[1]=="string"&&e.has(M[1]))e.set(b,e.get(M[1]));else{let z=c(M);z!=null&&r.set(b,z)}return}if(p==="if"){let{condIdx:b}=vt(o);Array.isArray(o[b])&&$(o[b],o,b);let M=o[b],{thenBranch:z,elseBranch:v}=vt(o),S=m(o),w=_();if(h(x(M,!0,[])),z)for(let B=1;B<z.length;B++)$(z[B],z,B);if(k(w),h(x(M,!1,[])),v)for(let B=1;B<v.length;B++)$(v[B],v,B);k(w);for(let B of S)a(B);return}if(p==="loop"){let b=m(o);for(let M of b)a(M);for(let M=1;M<o.length;M++)$(o[M],o,M);for(let M of b)a(M);return}if(p==="block"){for(let b=1;b<o.length;b++)$(o[b],o,b);for(let b of m(o))a(b);return}let A=c(o);if(A!=null&&i.has(A)&&u){u[g]=["i32.const",i.get(A)];return}if((p==="i32.eq"||p==="i32.ne")&&o.length===3){let b=c(o[1]),M=l(o[2]);if((b==null||M==null)&&(b=c(o[2]),M=l(o[1])),b!=null&&M!=null&&s.get(b)?.has(M)&&u){u[g]=["i32.const",p==="i32.eq"?0:1];return}}for(let b=1;b<o.length;b++)$(o[b],o,b)};for(let o=1;o<t.length;o++)$(t[o],t,o)},He=new Set(["unreachable","return","br","br_table"]),mi=t=>(F(t,e=>{if(!Array.isArray(e))return;let r=e[0];if((r==="func"||r==="block"||r==="loop")&&Ve(e),r==="if")for(let i=1;i<e.length;i++)Array.isArray(e[i])&&(e[i][0]==="then"||e[i][0]==="else")&&Ve(e[i])}),t),Ve=t=>{let e=!1,r=-1;for(let i=1;i<t.length;i++){let s=t[i];if(Array.isArray(s)){let n=s[0];if(n==="param"||n==="result"||n==="local"||n==="type"||n==="export")continue;e&&r===-1&&(r=i),He.has(n)&&(e=!0,r=i+1)}else typeof s=="string"&&(e&&r===-1&&(r=i),He.has(s)&&(e=!0,r=i+1))}r>0&&r<t.length&&t.splice(r)},_i=t=>(F(t,e=>{if(!Array.isArray(e)||e[0]!=="func")return;let r=[],i=new Map,s=new Set;for(let n=1;n<e.length;n++){let l=e[n];Array.isArray(l)&&(l[0]==="local"&&(r.push({node:l,idx:n}),typeof l[1]=="string"&&l[1][0]==="$"&&i.set(l[1],l[2])),l[0]==="param"&&typeof l[1]=="string"&&l[1][0]==="$"&&(i.set(l[1],l[2]),s.add(l[1])))}F(e,n=>{if(!Array.isArray(n))return;let l=n[0];if(l==="local.get"||l==="local.set"||l==="local.tee"){let f=n[1];typeof f=="string"&&s.add(f)}});for(let n=r.length-1;n>=0;n--){let{idx:l,node:f}=r[n],c=typeof f[1]=="string"&&f[1][0]==="$"?f[1]:null;c&&!s.has(c)&&e.splice(l,1)}}),t),Je=new Set(["call","call_indirect","return_call","return_call_indirect","table.set","table.grow","table.fill","table.copy","table.init","struct.set","struct.new","array.set","array.new","array.new_fixed","array.new_data","array.new_elem","array.init_data","array.init_elem","ref.i31","global.set","local.set","local.tee","unreachable","return","br","br_if","br_table","br_on_null","br_on_non_null","br_on_cast","br_on_cast_fail","throw","rethrow","throw_ref","try_table","data.drop","elem.drop"]),tr=[".store","memory.",".atomic."],R=t=>{if(!Array.isArray(t))return!0;let e=t[0];if(typeof e!="string"||Je.has(e))return!1;for(let r of tr)if(e.includes(r))return!1;for(let r=1;r<t.length;r++)if(Array.isArray(t[r])&&!R(t[r]))return!1;return!0},hi=new Set(["if","then","else","block","loop","try"]),xi=t=>typeof t=="string"&&!Je.has(t)&&!hi.has(t)&&!tr.some(e=>t.includes(e)),er=t=>{if(!Array.isArray(t)||R(t))return[];let e=t[0];if(e==="local.tee"&&t.length===3)return[["local.set",t[1],t[2]]];if(xi(e)){let r=[];for(let i=1;i<t.length;i++)r.push(...er(t[i]));return r}return[["drop",t]]},di=t=>{let e=new Map,r=i=>(e.has(i)||e.set(i,{gets:0,sets:0,tees:0}),e.get(i));return F(t,i=>{!Array.isArray(i)||i.length<2||typeof i[1]!="string"||(i[0]==="local.get"?r(i[1]).gets++:i[0]==="local.set"?r(i[1]).sets++:i[0]==="local.tee"&&r(i[1]).tees++)}),e},Ai=t=>{let e=q(t);if(!e)return!1;if(e.type==="i32"){let r=e.value|0;return r>=-64&&r<=63}if(e.type==="i64"){let r=BigInt(e.value);return r<=63n||r>=0xffffffffffffffc0n}return!1},bi=(t,e)=>Array.isArray(t)&&t[0]==="local.get"&&t.length===2&&typeof t[1]=="string"&&t[1]!==e,rr=t=>t.pure&&t.singleUse||Ai(t.val)||t.copy,Yt=(t,e)=>{for(let[r,i]of t){let s=!1;F(i.val,n=>{Array.isArray(n)&&(n[0]==="local.get"||n[0]==="local.tee")&&n[1]===e&&(s=!0)}),s&&t.delete(r)}},oe=(t,e)=>{for(let[r,i]of t){let s=!1;F(i.val,n=>{Array.isArray(n)&&n[0]==="global.get"&&n[1]===e&&(s=!0)}),s&&t.delete(r)}},ir=t=>{if(!Array.isArray(t))return!1;let e=t[0];if(typeof e=="string"&&(e.includes(".load")||e==="memory.copy"||e==="memory.size"))return!0;for(let r=1;r<t.length;r++)if(ir(t[r]))return!0;return!1},sr=t=>{if(!Array.isArray(t))return!1;let e=t[0];if(typeof e=="string"&&(e==="global.get"||e==="table.get"||e==="table.size"||e==="call"||e==="call_indirect"||e==="return_call"||e==="return_call_indirect"||e.includes(".load")||e==="memory.copy"||e==="memory.size"))return!0;for(let r=1;r<t.length;r++)if(sr(t[r]))return!0;return!1},ae=t=>{if(!Array.isArray(t))return!1;let e=t[0];if(typeof e=="string"&&(e.endsWith(".store")||e==="memory.copy"||e==="memory.fill"||e==="memory.init"||e.includes(".atomic.")&&!e.endsWith(".load")))return!0;for(let r=1;r<t.length;r++)if(ae(t[r]))return!0;return!1},ce=(t,e)=>{if(!Array.isArray(t))return t;let r=t[0];if(r==="local.get"&&t.length===2){let s=typeof t[1]=="string"&&e.get(t[1]);return s&&rr(s)?Q(s.val):t}let i=e;if(ht(r)){let s=null;F(t,n=>{Array.isArray(n)&&(n[0]==="local.set"||n[0]==="local.tee")&&typeof n[1]=="string"&&e.has(n[1])&&(s||(s=new Map(e)),s.delete(n[1]))}),s&&(i=s)}for(let s=1;s<t.length;s++){let n=ce(t[s],i);n!==t[s]&&(t[s]=n),s+1<t.length&&Array.isArray(t[s])&&F(t[s],l=>{Array.isArray(l)&&((l[0]==="local.set"||l[0]==="local.tee")&&typeof l[1]=="string"?(i===e&&(i=new Map(e)),i.delete(l[1]),Yt(i,l[1])):l[0]==="global.set"&&typeof l[1]=="string"&&(i===e&&(i=new Map(e)),oe(i,l[1])))})}return t},wi=(t,e,r)=>{let i=!1,s=l=>r.get(l)||{gets:0,sets:0,tees:0},n=new Map;for(let l=1;l<t.length;l++){let f=t[l];if(!Array.isArray(f))continue;let c=f[0];if(!(c==="param"||c==="result"||c==="local"||c==="type"||c==="export")){if((c==="local.set"||c==="local.tee")&&f.length===3&&typeof f[1]=="string"){let a=ce(f[2],n);a!==f[2]&&(f[2]=a,i=!0),F(f[2],m=>{Array.isArray(m)&&((m[0]==="local.set"||m[0]==="local.tee")&&typeof m[1]=="string"?(n.delete(m[1]),Yt(n,m[1])):m[0]==="global.set"&&typeof m[1]=="string"&&oe(n,m[1]))});let y=s(f[1]);if(Yt(n,f[1]),ae(f[2]))for(let[m,_]of n)_.readsMem&&n.delete(m);n.set(f[1],{val:f[2],pure:R(f[2]),readsMem:ir(f[2]),singleUse:y.gets<=1&&y.sets<=1&&y.tees===0,copy:bi(f[2],f[1])});continue}if(ht(c)&&n.clear(),c==="call"||c==="call_indirect"||c==="return_call"||c==="return_call_indirect")for(let[a,y]of n)sr(y.val)&&n.delete(a);if(c==="local.get"&&f.length===2&&typeof f[1]=="string"){let a=n.get(f[1]);if(a&&rr(a)){let y=Q(a.val);f.length=0,f.push(...Array.isArray(y)?y:[y]),i=!0;continue}}if(c!=="block"&&c!=="loop"&&c!=="if"){let a=Q(f);if(ce(f,n),nt(a,f)||(i=!0),F(f,y=>{Array.isArray(y)&&((y[0]==="local.set"||y[0]==="local.tee")&&typeof y[1]=="string"?(n.delete(y[1]),Yt(n,y[1])):y[0]==="global.set"&&typeof y[1]=="string"&&oe(n,y[1]))}),ae(f))for(let[y,m]of n)m.readsMem&&n.delete(y)}}}return i},$i=(t,e,r)=>{let i=!1;for(let s=1;s<t.length-1;s++){let n=t[s],l=t[s+1];if(!Array.isArray(n)||n[0]!=="local.set"||n.length!==3||!Array.isArray(l)||l[0]!=="local.get"||l.length!==2)continue;let f=n[1];if(l[1]!==f||e.has(f))continue;let c=r.get(f)||{gets:0,sets:0,tees:0};if(c.sets!==1||c.gets!==1||c.tees!==0)continue;let a=Q(n[2]);t.splice(s,2,...Array.isArray(a)?[a]:[a]),i=!0,s--}return i},vi=(t,e,r)=>{let i=!1;for(let s=1;s<t.length-1;s++){let n=t[s],l=t[s+1];if(!Array.isArray(n)||n[0]!=="local.set"||n.length!==3||!Array.isArray(l)||l[0]!=="local.get"||l.length!==2)continue;let f=n[1];if(l[1]!==f||e.has(f))continue;let c=r.get(f)||{gets:0,sets:0,tees:0};c.sets+c.gets+c.tees<=2||(t.splice(s,2,["local.tee",f,Q(n[2])]),i=!0)}return i},Ii=(t,e,r)=>{let i=!1,s=n=>r.get(n)||{gets:0,sets:0,tees:0};for(let n=t.length-1;n>=1;n--){let l=t[n];if(!Array.isArray(l))continue;let f=typeof l[1]=="string"?l[1]:null;if(!f||e.has(f))continue;let c=s(f);l[0]==="local.set"&&c.gets===0&&c.tees===0?l.length===3?R(l[2])&&(t.splice(n,1),i=!0):l.length===2&&(t[n]=["drop"],i=!0):l[0]==="local"&&f[0]==="$"&&c.gets===0&&c.sets===0&&c.tees===0&&(t.splice(n,1),i=!0)}return i},ki=(t,e)=>{let r=!1;for(let i=1;i<t.length-1;i++){let s=t[i],n=t[i+1];if(!Array.isArray(s)||s[0]!=="local.set"||s.length!==3||!Array.isArray(n)||n[0]!=="local.set"&&n[0]!=="local.tee"||n.length!==3||n[1]!==s[1]||e.has(s[1])||!R(s[2]))continue;let l=!1;F(n[2],f=>{Array.isArray(f)&&(f[0]==="local.get"||f[0]==="local.tee")&&f[1]===s[1]&&(l=!0)}),!l&&(t.splice(i,1),r=!0,i--)}return r},me=t=>Array.isArray(t)&&(t[0]==="func"||t[0]==="block"||t[0]==="loop"||t[0]==="then"||t[0]==="else"),ht=t=>t==="block"||t==="loop"||t==="if",ue=t=>(F(t,e=>{if(!Array.isArray(e)||e[0]!=="func")return;let r=new Set;for(let s of e)Array.isArray(s)&&s[0]==="param"&&typeof s[1]=="string"&&r.add(s[1]);let i=[];j(e,s=>{me(s)&&i.push(s)});for(let s=0;s<Zr;s++){let n=di(e),l=!1;for(let f of i)wi(f,r,n)&&(l=!0),$i(f,r,n)&&(l=!0),vi(f,r,n)&&(l=!0),Ii(f,r,n)&&(l=!0),ki(f,r)&&(l=!0);if(!l)break}}),t),nr=0,Si=new Set(["export","type","param","result","local"]),$t=t=>{let e=2;for(;e<t.length&&(typeof t[e]=="string"||Array.isArray(t[e])&&Si.has(t[e][0]));)e++;return e},_e=t=>t==="br"||t==="br_if"||t==="br_table",he=t=>{if(!Array.isArray(t))return!1;let e=t[0];if(e==="return_call"||e==="return_call_indirect"||e==="return_call_ref"||e==="try"||e==="try_table"||e==="delegate"||e==="rethrow")return!0;if(_e(e)){for(let r=1;r<t.length;r++)if(typeof t[r]=="number"||typeof t[r]=="string"&&/^\d+$/.test(t[r]))return!0}for(let r=1;r<t.length;r++)if(he(t[r]))return!0;return!1},xe=(t,e)=>{if(!Array.isArray(t))return!1;if((t[0]==="call"||t[0]==="return_call")&&t[1]===e)return!0;for(let r=1;r<t.length;r++)if(xe(t[r],e))return!0;return!1},de=t=>t==="i32"?["i32.const",0]:t==="i64"?["i64.const",0]:t==="f32"?["f32.const",0]:t==="f64"?["f64.const",0]:t==="v128"?["v128.const","i64x2","0","0"]:null,lr=(t,e)=>{let r=!1,i=!1,s=0,n=l=>{if(r||!Array.isArray(l))return;let f=l[0],c=f==="local.set"||f==="local.tee";if((c||f==="local.get")&&l[1]===e){if(c)for(let y=2;y<l.length&&!r;y++)n(l[y]);if(r)return;r=!0,(f==="local.get"||s>0)&&(i=!0);return}let a=f==="if";for(let y=1;y<l.length&&!r;y++){let m=l[y],_=a&&Array.isArray(m)&&(m[0]==="then"||m[0]==="else");_&&s++,n(m),_&&s--}};for(let l of t){if(r)break;n(l)}return r?i:!1},Ae=(t,e)=>{if(!Array.isArray(t))return;let r=t[0];if(r==="export"&&Array.isArray(t[2])&&t[2][0]==="func"&&typeof t[2][1]=="string")e.add(t[2][1]);else if(r==="start"&&typeof t[1]=="string")e.add(t[1]);else if(r==="ref.func"&&typeof t[1]=="string")e.add(t[1]);else if(r==="elem")for(let i of t)typeof i=="string"&&i[0]==="$"&&e.add(i);for(let i of t)Ae(i,e)},Mi=t=>{let e=new Set;for(let r of t)(!Array.isArray(r)||r[0]!=="func")&&Ae(r,e);return e},Bi=t=>{let e=[],r=[],i=null,s=!0,n=0;for(let l=2;l<t.length;l++){let f=t[l];if(typeof f!="string"){if(!Array.isArray(f)){s=!1;break}if(f[0]==="param"){if(typeof f[1]!="string"||f[1][0]!=="$"){s=!1;break}e.push({name:f[1],type:f[2]})}else if(f[0]==="local"){if(typeof f[1]!="string"||f[1][0]!=="$"||!de(f[2])){s=!1;break}r.push({name:f[1],type:f[2]})}else if(f[0]==="result")n+=f.length-1,f.length>1&&(i=f[1]);else if(f[0]==="export"){s=!1;break}else{if(f[0]==="type")continue;break}}}return n>1&&(s=!1),s?{params:e,locals:r,inlResult:i}:null},Ni=t=>{let e=0,r=i=>{if(Array.isArray(i)){e++;for(let s=1;s<i.length;s++)r(i[s])}};for(let i=$t(t);i<t.length;i++)r(t[i]);return e},zi=(t,e,r,i,s)=>{let n=++nr,l=`$__inl${n}`,f=new Map;for(let h of t)f.set(h.name,`$__inl${n}_${h.name.slice(1)}`);for(let h of e)f.set(h.name,`$__inl${n}_${h.name.slice(1)}`);let c=new Map,a=h=>{if(Array.isArray(h)){ht(h[0])&&typeof h[1]=="string"&&h[1][0]==="$"&&!c.has(h[1])&&c.set(h[1],`$__inl${n}L_${h[1].slice(1)}`);for(let $=1;$<h.length;$++)a(h[$])}};for(let h of i)a(h);let y=h=>{if(!Array.isArray(h))return h;let $=h[0];return($==="local.get"||$==="local.set"||$==="local.tee")&&typeof h[1]=="string"&&f.has(h[1])?[$,f.get(h[1]),...h.slice(2).map(y)]:$==="return"?["br",l,...h.slice(1).map(y)]:ht($)&&typeof h[1]=="string"&&c.has(h[1])?[$,c.get(h[1]),...h.slice(2).map(y)]:_e($)?[$,...h.slice(1).map(o=>typeof o=="string"&&c.has(o)?c.get(o):y(o))]:h.map((o,u)=>u===0?o:y(o))},m=t.map((h,$)=>["local.set",f.get(h.name),s[$]]),_=e.filter(h=>lr(i,h.name)).map(h=>["local.set",f.get(h.name),de(h.type)]),d=i.map(y),k=r?["block",l,["result",r],...m,..._,...d]:["block",l,...m,..._,...d],x=[...t,...e].map(h=>["local",f.get(h.name),h.type]);return{block:k,decls:x}},Ti=90,Ei=(t,e)=>e==="v128"&&t.length>0&&t.every(r=>r.type==="v128"),fr=(t,{simdOnly:e=!1}={})=>{if(!Array.isArray(t)||t[0]!=="module")return t;let r=new Set;for(let i=0;i<Ze;i++){let s=t.filter(u=>Array.isArray(u)&&u[0]==="func"),n=new Map;for(let u of s)typeof u[1]=="string"&&n.set(u[1],u);let l=new Map,f=new Set,c=u=>{if(!Array.isArray(u))return;let g=u[0];g==="call"&&typeof u[1]=="string"?l.set(u[1],(l.get(u[1])||0)+1):g==="return_call"&&typeof u[1]=="string"&&f.add(u[1]);for(let p=1;p<u.length;p++)c(u[p])};c(t);let a=new Set;for(let u of t)(!Array.isArray(u)||u[0]!=="func")&&Ae(u,a);let y=null,m=null;for(let[u,g]of n){if(r.has(u)||a.has(u)||f.has(u)||ar.has(u)||!(l.get(u)>=1)||Ni(g)>Ti||xe(g,u))continue;let p=Bi(g);if(!p||e&&!Ei(p.params,p.inlResult))continue;let A=!1;for(let b=$t(g);b<g.length;b++)if(he(g[b])){A=!0;break}if(!A){y=u,m=p;break}}if(!y)break;let _=n.get(y),{params:d,locals:k,inlResult:x}=m,h=_.slice($t(_)),$=l.get(y)||0,o=0;for(let u of s){if(u===_)continue;let g=[];for(let p=$t(u);p<u.length;p++)u[p]=j(u[p],A=>{if(!Array.isArray(A)||A[0]!=="call"||A[1]!==y)return;let b=A.slice(2);if(b.length!==d.length)return;let{block:M,decls:z}=zi(d,k,x,h,b);return g.push(...z),o++,M});g.length&&u.splice($t(u),0,...g)}if(o===$){let u=t.indexOf(_);u>=0&&t.splice(u,1)}else r.add(y)}return t},or=t=>{if(!Array.isArray(t)||t[0]!=="module")return t;let e=new Map,r=new Map,i=new Map,s=[],n=!1;if(F(t,o=>{Array.isArray(o)&&typeof o[0]=="string"&&(o[0]==="table.set"||o[0]==="table.grow"||o[0]==="table.init"||o[0]==="table.copy"||o[0]==="table.fill")&&(n=!0)}),n)return t;for(let o of t.slice(1))if(Array.isArray(o))if(o[0]==="elem"){let u=o[1];if(!Array.isArray(u)||u[0]!=="i32.const")return t;let g=Number(u[1]);for(let p=2;p<o.length;p++)typeof o[p]=="string"&&o[p][0]==="$"&&e.set(g++,o[p])}else o[0]==="type"&&typeof o[1]=="string"?r.set(o[1],o[2]):o[0]==="func"&&(s.push(o),typeof o[1]=="string"&&i.set(o[1],o));if(!e.size)return t;let l=new Map,f=(o,u)=>Array.isArray(o)&&o[0]==="i64.const"&&mt(o[1])===u,c="0x0000000000007fff",a="0x0000000000000020",y=(o,u)=>Array.isArray(o)?o[0]==="i64.const"?(u.push(o),!0):o[0]==="f64.const"&&typeof o[1]=="string"&&o[1].startsWith("nan:")?(u.push(["i64.const",mt(o[1].slice(4))]),!0):o[0]==="f64.reinterpret_i64"&&o.length===2?y(o[1],u):o[0]==="select"&&o.length===4?y(o[1],u)&&y(o[2],u):!1:!1,m=new Map;F(t,o=>{!Array.isArray(o)||o[0]!=="global.set"||typeof o[1]!="string"||(m.has(o[1])||m.set(o[1],[]),m.get(o[1]).push(o[2]))});let _=(o,u,g)=>{if(!Array.isArray(o))return!1;if(o[0]==="i64.const")return u.push(o),!0;if(o[0]==="f64.const"&&typeof o[1]=="string"&&o[1].startsWith("nan:"))return u.push(["i64.const",mt(o[1].slice(4))]),!0;if((o[0]==="f64.reinterpret_i64"||o[0]==="i64.reinterpret_f64")&&o.length===2)return _(o[1],u,g);if(o[0]==="global.get"&&typeof o[1]=="string")return g.push(o[1]),!0;if(o[0]==="local.get"||o[0]==="local.tee")return o[0]==="local.tee"&&o.length===3?_(o[2],u,g):!1;if(o[0]==="select"&&o.length===4)return _(o[1],u,g)&&_(o[2],u,g);if(o[0]==="if"){let p=!0,A=!1;for(let b=1;b<o.length;b++){let M=o[b];Array.isArray(M)&&(M[0]==="then"||M[0]==="else")&&(A=!0,(M.length!==2||!_(M[1],u,g))&&(p=!1))}return p&&A}return!1},d=new Map;for(let[o,u]of m){let g=[],p=[],A=!0;for(let b of u)if(!_(b,g,p)){A=!1;break}d.set(o,A?{consts:g,reads:p}:null)}let k=!0,x=new Map;for(;k;){k=!1;for(let[o,u]of d){if(x.get(o)===null)continue;if(u===null){x.get(o)!==null&&(x.set(o,null),k=!0);continue}let g=x.get(o)||new Map,p=g.size,A=!1;for(let b of u.consts)g.set(mt(b[1]),b);for(let b of u.reads){if(d.get(b)===null||x.get(b)===null){A=!0;break}let M=x.get(b);if(M)for(let[z,v]of M)g.set(z,v)}if(A){x.set(o,null),k=!0;continue}(!x.has(o)||g.size!==p)&&(x.set(o,g),k=!0)}}for(let[o,u]of x)l.set(o,u);let h=o=>{if(!Array.isArray(o)||o[0]!=="i32.wrap_i64")return null;let u=o[1];if(!Array.isArray(u)||u[0]!=="i64.and")return null;let g=u[1],p=u[2];if(f(p,c)||(g=u[2],p=u[1]),!f(p,c)||!Array.isArray(g)||g[0]!=="i64.shr_u"||!f(g[2],a))return null;let A=g[1];if(!Array.isArray(A)||A[0]!=="i64.reinterpret_f64")return null;let b=A[1];return Array.isArray(b)&&b[0]==="local.get"&&typeof b[1]=="string"?{local:b[1]}:Array.isArray(b)&&b[0]==="global.get"&&typeof b[1]=="string"?{global:b[1]}:null},$=o=>{let u=[],g=[];for(let p of o)if(Array.isArray(p))if(p[0]==="param")for(let A of p.slice(1))typeof A=="string"&&A[0]!=="$"&&u.push(A);else p[0]==="result"&&g.push(...p.slice(1));return u.join(",")+"->"+g.join(",")};for(let o of s){let u=new Map;for(let g of o)Array.isArray(g)&&g[0]==="param"&&typeof g[1]=="string"&&u.set(g[1],null);F(o,g=>{if(!Array.isArray(g)||g[0]!=="local.set"&&g[0]!=="local.tee"||typeof g[1]!="string"||u.get(g[1])===null)return;let p=[];if(y(g[2],p)){let A=u.get(g[1])||new Map;for(let b of p)A.set(mt(b[1]),b);u.set(g[1],A)}else if(Array.isArray(g[2])&&g[2][0]==="global.get"&&typeof g[2][1]=="string"&&l.get(g[2][1])){let A=l.get(g[2][1]),b=u.get(g[1])||new Map;for(let[M,z]of A)b.set(M,z);u.set(g[1],b)}else u.set(g[1],null)}),j(o,(g,p)=>{if(!Array.isArray(g)||g[0]!=="call_indirect"||p&&p[0]==="else")return;let A=Array.isArray(g[1])&&g[1][0]==="type"?g[1]:null;if(!A)return;let b=r.get(A[1]),M=Array.isArray(b)?$(b.slice(1)):null;if(M==null)return;let z=[];for(let O of b.slice(1))Array.isArray(O)&&O[0]==="result"&&z.push(...O.slice(1));let v=g.slice(2,-1),S=g[g.length-1],w=O=>{let J=i.get(O);if(!J)return!1;let ct=J.find(ut=>Array.isArray(ut)&&ut[0]==="type");return ct?ct[1]===A[1]||r.get(ct[1])&&$(r.get(ct[1]).slice(1))===M:$(J.slice(2))===M};if(Array.isArray(S)&&S[0]==="i32.const"){let O=e.get(Number(S[1]));return O&&w(O)?["call",O,...v]:void 0}let B=h(S);if(!B)return;let E=B.local!=null?u.get(B.local):l.get(B.global);if(!E||E.size===0||E.size>4)return;let Z=[];for(let O of E.values()){let J=e.get(at(mt(O[1]))&32767);if(!J||!w(J))return;Z.push([O,J])}let V=B.local!=null?["local.get",B.local]:["global.get",B.global],U=g;for(let O=Z.length-1;O>=0;O--){let[J,ct]=Z[O];U=["if",...z.length?[["result",...z]]:[],["i64.eq",["i64.reinterpret_f64",Q(V)],Q(J)],["then",["call",ct,...v.map(Q)]],["else",U]]}return U})}return t},ar=new Set(["$math.sin_core","$math.cos_core","$math.sin","$math.cos","$math.pow","$math.atan2","$math.hypot","$math.log"]),Oi=t=>{if(!Array.isArray(t)||t[0]!=="module")return t;let e=$t,r=xe,i=he,s=_e,n=de,l=lr;for(let f=0;f<Ze;f++){let c=t.filter(w=>Array.isArray(w)&&w[0]==="func"),a=new Map;for(let w of c)typeof w[1]=="string"&&a.set(w[1],w);let y=new Map,m=new Set,_=w=>{if(!Array.isArray(w))return;let B=w[0];B==="call"&&typeof w[1]=="string"?y.set(w[1],(y.get(w[1])||0)+1):B==="return_call"&&typeof w[1]=="string"&&m.add(w[1]);for(let E=1;E<w.length;E++)_(w[E])};_(t);let d=Mi(t),k=null;for(let[w,B]of a){if(d.has(w)||m.has(w)||y.get(w)!==1||ar.has(w)||r(B,w))continue;let E=!0,Z=0;for(let U=2;U<B.length;U++){let O=B[U];if(typeof O!="string"){if(!Array.isArray(O)){E=!1;break}if(O[0]==="param"||O[0]==="local"){if(typeof O[1]!="string"||O[1][0]!=="$"){E=!1;break}if(O[0]==="local"&&!n(O[2])){E=!1;break}}else if(O[0]==="result")Z+=O.length-1;else if(O[0]==="export"){E=!1;break}else{if(O[0]==="type")continue;break}}}if(!E||Z>1)continue;let V=!1;for(let U=e(B);U<B.length;U++)if(i(B[U])){V=!0;break}if(!V){k=w;break}}if(!k)break;let x=a.get(k),h=[],$=[],o=null;for(let w=2;w<x.length;w++){let B=x[w];if(!(typeof B=="string"||!Array.isArray(B)))if(B[0]==="param")h.push({name:B[1],type:B[2]});else if(B[0]==="result")B.length>1&&(o=B[1]);else if(B[0]==="local")$.push({name:B[1],type:B[2]});else{if(B[0]==="export"||B[0]==="type")continue;break}}let u=x.slice(e(x)),g=++nr,p=`$__inl${g}`,A=new Map;for(let w of h)A.set(w.name,`$__inl${g}_${w.name.slice(1)}`);for(let w of $)A.set(w.name,`$__inl${g}_${w.name.slice(1)}`);let b=new Map,M=w=>{if(Array.isArray(w)){ht(w[0])&&typeof w[1]=="string"&&w[1][0]==="$"&&!b.has(w[1])&&b.set(w[1],`$__inl${g}L_${w[1].slice(1)}`);for(let B=1;B<w.length;B++)M(w[B])}};for(let w of u)M(w);let z=w=>{if(!Array.isArray(w))return w;let B=w[0];return(B==="local.get"||B==="local.set"||B==="local.tee")&&typeof w[1]=="string"&&A.has(w[1])?[B,A.get(w[1]),...w.slice(2).map(z)]:B==="return"?["br",p,...w.slice(1).map(z)]:ht(B)&&typeof w[1]=="string"&&b.has(w[1])?[B,b.get(w[1]),...w.slice(2).map(z)]:s(B)?[B,...w.slice(1).map(E=>typeof E=="string"&&b.has(E)?b.get(E):z(E))]:w.map((E,Z)=>Z===0?E:z(E))},v=!1;for(let w of c){if(w===x||v)continue;let B=e(w);for(let E=B;E<w.length;E++){let Z=j(w[E],V=>{if(v||!Array.isArray(V)||V[0]!=="call"||V[1]!==k)return;let U=V.slice(2);if(U.length!==h.length)return;let O=h.map((ut,xr)=>["local.set",A.get(ut.name),U[xr]]),J=$.filter(ut=>l(u,ut.name)).map(ut=>["local.set",A.get(ut.name),n(ut.type)]),ct=u.map(z);return v=!0,o?["block",p,["result",o],...O,...J,...ct]:["block",p,...O,...J,...ct]});if(Z!==w[E]&&(w[E]=Z),v){let V=[...h,...$].map(U=>["local",A.get(U.name),U.type]);V.length&&w.splice(e(w),0,...V);break}}if(v)break}if(!v)break;let S=t.indexOf(x);S>=0&&t.splice(S,1)}return t},Xt=(t,e)=>{let r=!1,i=(s,n)=>{if(r||!Array.isArray(s))return;let l=s[0],f=n;if((l==="block"||l==="loop")&&typeof s[1]=="string"&&s[1]===e&&(f=!0),!n){if(l==="br"||l==="br_if"||l==="br_on_null"||l==="br_on_non_null"||l==="br_on_cast"||l==="br_on_cast_fail"){if(s[1]===e){r=!0;return}}else if(l==="br_table"){for(let c=1;c<s.length&&typeof s[c]=="string";c++)if(s[c]===e){r=!0;return}}else if(l==="catch"||l==="catch_ref"){if(s[2]===e){r=!0;return}}else if((l==="catch_all"||l==="catch_all_ref")&&s[1]===e){r=!0;return}}for(let c=1;c<s.length;c++)i(s[c],f)};for(let s of t)i(s,!1);return r},cr=t=>(j(t,e=>{if(!Array.isArray(e)||e[0]!=="block")return;let r=1,i=null;typeof e[1]=="string"&&e[1][0]==="$"&&(i=e[1],r=2);let s=!1;for(;r<e.length;){let f=e[r];if(Array.isArray(f)&&(f[0]==="param"||f[0]==="type")){r++;continue}if(Array.isArray(f)&&f[0]==="result"){s=!0,r++;continue}break}let n=e.slice(r);if(!s||n.length!==1)return;let l=n[0];if(Array.isArray(l)&&!(i&&Xt(n,i))){e.length=0;for(let f of l)e.push(f)}}),F(t,e=>{if(!me(e))return;let r=1;for(;r<e.length;){let i=e[r];if(!Array.isArray(i)){r++;continue}{let f=i[0],c=f==="local.set"||f==="global.set"?2:f==="drop"?1:-1;if(c>=0&&i.length===c+1){let a=i[c];if(Array.isArray(a)&&a[0]==="block"){let y=1,m=null;typeof a[1]=="string"&&a[1][0]==="$"&&(m=a[1],y=2);let _=!1;for(;y<a.length;){let k=a[y];if(Array.isArray(k)&&(k[0]==="param"||k[0]==="type")){y++;continue}if(Array.isArray(k)&&k[0]==="result"){_=!0,y++;continue}break}let d=_?a.slice(y):null;if(d&&d.length>=2&&!(m&&Xt(d,m))){let k=d[d.length-1],x=d.slice(0,-1);i[c]=k,e.splice(r,1,...x,i);continue}}}}if(i[0]!=="block"){r++;continue}let s=1,n=null;for(typeof i[1]=="string"&&i[1][0]==="$"&&(n=i[1],s=2);s<i.length;){let f=i[s];if(Array.isArray(f)&&(f[0]==="param"||f[0]==="result"||f[0]==="type")){s++;continue}break}let l=i.slice(s);if(n&&Xt(l,n)){r++;continue}e.splice(r,1,...l),r+=l.length}}),t),ur=t=>(F(t,e=>{if(!Array.isArray(e)||e[0]!=="func")return;let r=new Map;for(let _ of e)Array.isArray(_)&&_[0]==="local"&&typeof _[1]=="string"&&_[1][0]==="$"&&typeof _[2]=="string"&&r.set(_[1],_[2]);if(r.size<2)return;let i=new Map,s=[],n=0,l=!1,f=0,c=_=>{if(l||!Array.isArray(_))return;let d=_[0],k=d==="loop";k&&s.push({start:n,end:n});let x=d==="local.set"||d==="local.tee";if(x||d==="local.get"){let h=_[1];if(typeof h!="string"||h[0]!=="$"){l=!0;return}if(x)for(let o=2;o<_.length;o++)c(_[o]);let $=n++;if(r.has(h)){let o=i.get(h);o||(o={start:$,end:$,firstOp:d,firstCond:f>0,loops:new Set},i.set(h,o)),$>o.end&&(o.end=$);for(let u of s)o.loops.add(u)}}else{n++;let h=d==="if";for(let $=1;$<_.length;$++){let o=_[$],u=h&&Array.isArray(o)&&(o[0]==="then"||o[0]==="else");u&&f++,c(o),u&&f--}}if(k){let h=s.pop();h.end=n}};if(c(e),l)return;for(let _ of i.values())for(let d of _.loops)d.start<_.start&&(_.start=d.start),d.end>_.end&&(_.end=d.end);let a=[...i.entries()].sort((_,d)=>_[1].start-d[1].start),y=new Map,m=[];for(let[_,d]of a){let k=d.firstOp==="local.get"||d.firstCond,x=r.get(_),h=k?null:m.find($=>$.type===x&&$.end<d.start);h?(y.set(_,h.primary),d.end>h.end&&(h.end=d.end)):m.push({primary:_,type:x,end:d.end})}y.size!==0&&F(e,_=>{Array.isArray(_)&&(_[0]==="local.get"||_[0]==="local.set"||_[0]==="local.tee")&&y.has(_[1])&&(_[1]=y.get(_[1]))})}),t),yr=t=>j(t,e=>{if(!Array.isArray(e))return;let r=e[0];if(r==="nop")return["nop"];if(r==="drop"&&e.length===2){let i=er(e[1]);return i.length===0?["nop"]:i.length===1?i[0]:["block",...i]}if(r==="select"&&e.length>=4&&nt(e[1],e[2])&&R(e[3]))return e[1];if(r==="if"){let{cond:i,thenBranch:s,elseBranch:n}=vt(e),l=!s||s.length<=1,f=!n||n.length<=1;if(l&&f)return R(i)?["nop"]:["drop",i];if(n&&f&&!l)return e.filter(c=>c!==n)}if(me(e)){let i=[r];for(let s=1;s<e.length;s++){let n=e[s];if(n==="nop"||Array.isArray(n)&&n[0]==="nop")continue;let l=e[s+1],f=l==="drop"||Array.isArray(l)&&l[0]==="drop"&&l.length===1;if(Array.isArray(n)&&f&&R(n)){s++;continue}if(Array.isArray(n)&&f&&n[0]==="local.tee"&&n.length===3){i.push(["local.set",n[1],n[2]]),s++;continue}i.push(n)}if(i.length!==e.length)return i}}),L=t=>(e,r)=>nt(e,r)&&R(e)?t:null,qi={"i32.sub":L(["i32.const",0]),"i64.sub":L(["i64.const",0]),"i32.xor":L(["i32.const",0]),"i64.xor":L(["i64.const",0]),"i32.eq":L(["i32.const",1]),"i64.eq":L(["i32.const",1]),"i32.ne":L(["i32.const",0]),"i64.ne":L(["i32.const",0]),"i32.lt_s":L(["i32.const",0]),"i32.lt_u":L(["i32.const",0]),"i32.gt_s":L(["i32.const",0]),"i32.gt_u":L(["i32.const",0]),"i32.le_s":L(["i32.const",1]),"i32.le_u":L(["i32.const",1]),"i32.ge_s":L(["i32.const",1]),"i32.ge_u":L(["i32.const",1]),"i64.lt_s":L(["i32.const",0]),"i64.lt_u":L(["i32.const",0]),"i64.gt_s":L(["i32.const",0]),"i64.gt_u":L(["i32.const",0]),"i64.le_s":L(["i32.const",1]),"i64.le_u":L(["i32.const",1]),"i64.ge_s":L(["i32.const",1]),"i64.ge_u":L(["i32.const",1]),"i32.mul":(t,e)=>q(e)?.value===0&&R(t)?["i32.const",0]:q(t)?.value===0&&R(e)?["i32.const",0]:null,"i64.mul":(t,e)=>q(e)?.value===W&&R(t)?["i64.const",0]:q(t)?.value===W&&R(e)?["i64.const",0]:null,"i32.and":(t,e)=>nt(t,e)&&R(e)?t:q(e)?.value===0&&R(t)?["i32.const",0]:q(t)?.value===0&&R(e)?["i32.const",0]:null,"i64.and":(t,e)=>nt(t,e)&&R(e)?t:q(e)?.value===W&&R(t)?["i64.const",0]:q(t)?.value===W&&R(e)?["i64.const",0]:null,"i32.or":(t,e)=>nt(t,e)&&R(e)?t:q(e)?.value===-1&&R(t)?["i32.const",-1]:q(t)?.value===-1&&R(e)?["i32.const",-1]:null,"i64.or":(t,e)=>nt(t,e)&&R(e)?t:q(e)?.value===Zt&&R(t)?["i64.const",-1]:q(t)?.value===Zt&&R(e)?["i64.const",-1]:null,"local.set":(t,e)=>Array.isArray(e)&&e[0]==="local.get"&&e[1]===t?["nop"]:null},Fi=t=>j(t,e=>{if(!Array.isArray(e)||e.length!==3)return;let r=qi[e[0]];if(!r)return;let i=r(e[1],e[2]);if(i!==null)return i}),Ci=t=>{let e=typeof t=="bigint"?t:BigInt(typeof t=="string"?t.replaceAll("_",""):Math.trunc(Number(t)||0));e>0x7fffffffffffffffn&&(e=e-0x8000000000000000n-0x8000000000000000n);let r=1;for(;;){let i=e&0x7fn;if(e>>=7n,e===0n&&(i&0x40n)===0n||e===-1n&&(i&0x40n)!==0n)return r;r++}},Ri=t=>{if(!Array.isArray(t))return 4;switch(t[0]){case"i32.const":case"i64.const":return 1+Ci(t[1]);case"f32.const":return 5;case"f64.const":return 9;case"v128.const":return 18;default:return 4}},Li=2,Ui=t=>{if(!Array.isArray(t)||t[0]!=="module")return t;let e=new Map,r=new Set;for(let n of t.slice(1)){if(!Array.isArray(n))continue;if(n[0]==="export"&&Array.isArray(n[2])&&n[2][0]==="global"&&typeof n[2][1]=="string"){r.add(n[2][1]);continue}if(n[0]!=="global")continue;let l=typeof n[1]=="string"&&n[1][0]==="$"?n[1]:null;if(!l)continue;n.some(a=>Array.isArray(a)&&a[0]==="export")&&r.add(l);let f=n[2];if(Array.isArray(f)&&f[0]==="mut"||Array.isArray(f)&&f[0]==="import")continue;let c=n[3];q(c)&&e.set(l,c)}if(e.size===0)return t;let i=new Map;F(t,n=>{if(!Array.isArray(n))return;let l=n[1];typeof l!="string"||l[0]!=="$"||(n[0]==="global.set"?e.delete(l):n[0]==="global.get"&&i.set(l,(i.get(l)||0)+1))});let s=new Set;for(let[n,l]of e){let f=i.get(n)||0;if(f===0)continue;let c=Ri(l),a=c+2,y=f*Li+a;f*c+(r.has(n)?a:0)<=y&&s.add(n)}if(s.size===0)return t;j(t,n=>{if(!(!Array.isArray(n)||n[0]!=="global.get"||n.length!==2)&&s.has(n[1]))return Q(e.get(n[1]))});for(let n=t.length-1;n>=1;n--){let l=t[n];Array.isArray(l)&&l[0]==="global"&&typeof l[1]=="string"&&s.has(l[1])&&!r.has(l[1])&&t.splice(n,1)}return t},Di=t=>j(t,e=>{if(!Array.isArray(e))return;let r=e[0];if(typeof r!="string"||!r.endsWith("load")&&!r.endsWith("store"))return;let i=r.endsWith("store"),s=0,n=null,l=1;for(typeof e[1]=="string"&&(e[1][0]==="$"||!isNaN(e[1]))&&(n=e[1],l=2);l<e.length&&typeof e[l]=="string"&&(e[l].startsWith("offset=")||e[l].startsWith("align="));)e[l].startsWith("offset=")&&(s=+e[l].slice(7)),l++;let f=i?e.length-2:e.length-1,c=i?e.length-1:-1;if(f<l)return;let a=e[f];if(!Array.isArray(a)||a[0]!=="i32.add"||a.length!==3)return;let y=a[1],m=a[2],_=q(y),d=q(m),k=null,x=null;if(_&&_.type==="i32"?(x=_.value,k=m):d&&d.type==="i32"&&(x=d.value,k=y),k===null||x===null)return;let h=s+x,$=[r];n!==null&&$.push(n),$.push(`offset=${h}`);let o=null;for(let u=l;u<f;u++)typeof e[u]=="string"&&e[u].startsWith("align=")&&(o=e[u]);return o&&$.push(o),$.push(k),i&&$.push(e[c]),$}),Pi=t=>(F(t,e=>{if(!Array.isArray(e)||e[0]!=="block")return;let i=1,s=null;if(typeof e[1]=="string"&&e[1][0]==="$"&&(s=e[1],i=2),!s)return;let n=-1;for(let f=e.length-1;f>=i;f--){let c=e[f];if(!Array.isArray(c)){c!=="nop"&&c!=="end"&&(n=f);continue}let a=c[0];if(!(a==="param"||a==="result"||a==="local"||a==="type"||a==="export")){n=f;break}}if(n<0)return;let l=e[n];Array.isArray(l)&&l[0]==="br"&&l[1]===s&&e.splice(n,1,...l.slice(2))}),t),Wi=t=>(F(t,e=>{if(!Array.isArray(e)||e[0]!=="block")return;let r=1,i=null;if(typeof e[1]=="string"&&e[1][0]==="$"&&(i=e[1],r=2),!i)return;for(;r<e.length;){let k=e[r];if(Array.isArray(k)&&k[0]==="type"){r++;continue}if(Array.isArray(k)&&(k[0]==="param"||k[0]==="result"))return;break}if(e.length-r!==1)return;let s=e[r];if(!Array.isArray(s)||s[0]!=="loop")return;let n=1,l=null;typeof s[1]=="string"&&s[1][0]==="$"&&(l=s[1],n=2);let f=[];for(;n<s.length;){let k=s[n];if(Array.isArray(k)&&k[0]==="type"){f.push(k),n++;continue}if(Array.isArray(k)&&(k[0]==="param"||k[0]==="result"))return;break}let c=s.slice(n);if(c.length<2)return;let a=c[0],y=c[c.length-1];if(!Array.isArray(a)||a[0]!=="br_if"||a[1]!==i||a.length!==3||!Array.isArray(y)||y[0]!=="br"||y[1]!==l||y.length!==2)return;let m=c.slice(1,-1);if(Xt(m,i))return;let _=a[2];Array.isArray(_)&&_[0]==="i32.eqz"&&_.length===2?_=_[1]:_=["i32.eqz",_];let d=["loop"];l&&d.push(l);for(let k of f)d.push(k);d.push(["if",_,["then",...m,y]]),e.length=0;for(let k of d)e.push(k)}),t),ji=t=>{if(!Array.isArray(t)||t[0]!=="module")return t;let e=new Set;return F(t,r=>{Array.isArray(r)&&r[0]==="global.set"&&typeof r[1]=="string"&&e.add(r[1])}),j(t,r=>{if(!Array.isArray(r)||r[0]!=="global")return;let i=typeof r[1]=="string"&&r[1][0]==="$"?r[1]:null;if(!i||e.has(i))return;let s=typeof r[1]=="string"&&r[1][0]==="$",n=s?r[2]:r[1];if(Array.isArray(n)&&n[0]==="mut"){let l=[...r];return l[s?2:1]=n[1],l}})},Gi=t=>j(t,e=>{if(!Array.isArray(e)||e[0]!=="if")return;let{cond:r,thenBranch:i,elseBranch:s}=vt(e),n=!i||i.length<=1,l=!s||s.length<=1;if(!n&&l&&i.length===2){let f=i[1];if(Array.isArray(f)&&f[0]==="br"&&f.length===2)return["br_if",f[1],r]}if(n&&!l&&s.length===2){let f=s[1];if(Array.isArray(f)&&f[0]==="br"&&f.length===2)return["br_if",f[1],["i32.eqz",r]]}}),Hi=t=>j(t,e=>{if(!Array.isArray(e)||e[0]!=="if")return;let{thenBranch:r,elseBranch:i}=vt(e);if(!r||!i||r.length<=1||i.length<=1||!e.some(_=>Array.isArray(_)&&_[0]==="result"))return;let n=0,l=Math.min(r.length,i.length);for(let _=1;_<l&&nt(r[r.length-_],i[i.length-_]);_++)n++;if(n===0)return;let f=r.slice(r.length-n),c=r.slice(0,r.length-n),a=i.slice(0,i.length-n),y=["block"];for(let _=1;_<e.length;_++){let d=e[_];if(Array.isArray(d)&&(d[0]==="then"||d[0]==="else"))break;Array.isArray(d)&&(d[0]==="result"||d[0]==="type")&&y.push(d)}let m=["if"];for(let _=1;_<e.length;_++){let d=e[_];if(Array.isArray(d)&&(d[0]==="then"||d[0]==="else"))break;Array.isArray(d)&&(d[0]==="result"||d[0]==="type")||m.push(d)}return m.push(c.length>1?c:["then"]),m.push(a.length>1?a:["else"]),y.push(m,...f),y}),pr=(t,e)=>{let r=[],i=[t];for(;i.length;){let s=i.pop();if(Array.isArray(s)){i.push("|");for(let n=s.length-1;n>=0;n--)i.push(s[n]);i.push("[")}else typeof s=="string"?r.push(e.has(s)?"$__L":s):typeof s=="bigint"?r.push(s.toString()+"n"):typeof s=="number"?r.push(s.toString()):s===null?r.push("null"):s===!0?r.push("t"):s===!1?r.push("f"):r.push(String(s))}return r.join(",")},Vi=t=>{if(!Array.isArray(t)||t[0]!=="module")return t;let e=new Map,r=new Map;for(let i of t.slice(1)){if(!Array.isArray(i)||i[0]!=="func")continue;let s=typeof i[1]=="string"&&i[1][0]==="$"?i[1]:null;if(!s)continue;let n=new Set;typeof i[1]=="string"&&i[1][0]==="$"&&n.add(i[1]),F(i,f=>{if(!Array.isArray(f)||typeof f[1]!="string"||f[1][0]!=="$")return;let c=f[0];(c==="param"||c==="local"||ht(c))&&n.add(f[1])});let l=pr(i,n);e.has(l)?r.set(s,e.get(l)):e.set(l,s)}return r.size===0||j(t,i=>{if(!Array.isArray(i))return;let s=i[0];if((s==="call"||s==="return_call")&&r.has(i[1]))return[s,r.get(i[1]),...i.slice(2)];if(s==="ref.func"&&r.has(i[1]))return["ref.func",r.get(i[1])];if(s==="elem"){let n=i[i.length-1];if(Array.isArray(n))return[...i.slice(0,-1),n.map(l=>r.get(l)||l)]}if(s==="call_indirect"&&i.length>=3){let n=i[1];if(typeof n=="string"&&r.has(n))return["call_indirect",r.get(n),...i.slice(2)]}}),t},Yi=t=>{if(!Array.isArray(t)||t[0]!=="module")return t;let e=new Map,r=new Map;for(let i of t.slice(1)){if(!Array.isArray(i)||i[0]!=="type")continue;let s=typeof i[1]=="string"&&i[1][0]==="$"?i[1]:null;if(!s)continue;let n=pr(i,new Set([s]));e.has(n)?r.set(s,e.get(n)):e.set(n,s)}if(r.size===0)return t;for(let i=t.length-1;i>=0;i--){let s=t[i];if(Array.isArray(s)&&s[0]==="type"){let n=typeof s[1]=="string"&&s[1][0]==="$"?s[1]:null;n&&r.has(n)&&t.splice(i,1)}}return j(t,i=>{if(!Array.isArray(i))return;let s=i[0];if(s==="func")for(let n=1;n<i.length;n++){let l=i[n];Array.isArray(l)&&l[0]==="type"&&typeof l[1]=="string"&&r.has(l[1])&&(i[n]=["type",r.get(l[1])])}if(s==="import")for(let n=1;n<i.length;n++){let l=i[n];if(Array.isArray(l))for(let f=1;f<l.length;f++){let c=l[f];Array.isArray(c)&&c[0]==="type"&&typeof c[1]=="string"&&r.has(c[1])&&(l[f]=["type",r.get(c[1])])}}if(s==="call_indirect"||s==="return_call_indirect"){if(typeof i[1]=="string"&&r.has(i[1]))return[s,r.get(i[1]),...i.slice(2)];if(Array.isArray(i[1])&&i[1][0]==="type"&&typeof i[1][1]=="string"&&r.has(i[1][1]))return[s,["type",r.get(i[1][1])],...i.slice(2)]}}),t},Kt=t=>{if(typeof t!="string"||t.length<2||t[0]!=='"')return[];let e=[],r=s=>s>=48&&s<=57?s-48:s>=97&&s<=102?s-87:s>=65&&s<=70?s-55:-1,i=t.length-1;for(let s=1;s<i;s++){let n=t.charCodeAt(s);if(n!==92){e.push(n);continue}let l=t.charCodeAt(++s);if(l===120||l===88)e.push(r(t.charCodeAt(s+1))<<4|r(t.charCodeAt(s+2))),s+=2;else{let f=r(l),c=s+1<i?r(t.charCodeAt(s+1)):-1;f>=0&&c>=0?(e.push(f<<4|c),s++):l===110?e.push(10):l===116?e.push(9):l===114?e.push(13):e.push(l)}}return e},gr=(t,e)=>{let r='"';for(let i=0;i<e;i++){let s=t[i];s>=32&&s<127&&s!==34&&s!==92?r+=String.fromCharCode(s):r+="\\"+s.toString(16).padStart(2,"0")}return r+'"'},Xi=t=>{let e=[];for(let i of t)if(typeof i=="string"){let s=Kt(i);for(let n=0;n<s.length;n++)e.push(s[n])}else if(Array.isArray(i)&&i[0]==="i8")for(let s=1;s<i.length;s++)e.push(Number(i[s])&255);else return t;let r=e.length;for(;r>0&&e[r-1]===0;)r--;return r===e.length?t:r===0?[]:[gr(e,r)]},Zi=t=>{let e=1;if(typeof t[e]=="string"&&t[e][0]==="$"&&e++,Array.isArray(t[e])&&t[e][0]==="memory"){let i=t[e][1];e++;let s=t[e];return Array.isArray(s)&&(s[0]==="i32.const"||s[0]==="i64.const")?{memidx:i,offset:Number(s[1])}:null}let r=t[e];return Array.isArray(r)&&(r[0]==="i32.const"||r[0]==="i64.const")?{memidx:0,offset:Number(r[1])}:null},Ye=t=>{let e=1;typeof t[e]=="string"&&t[e][0]==="$"&&e++,Array.isArray(t[e])&&t[e][0]==="memory"&&e++,Array.isArray(t[e])&&typeof t[e][0]=="string"&&!t[e][0].startsWith('"')&&e++;let r=0;for(let i=e;i<t.length;i++){let s=t[i];if(typeof s=="string")r+=Kt(s).length;else if(Array.isArray(s)&&s[0]==="i8")r+=s.length-1;else return null}return r},Ki=(t,e)=>{let r=1;typeof t[r]=="string"&&t[r][0]==="$"&&r++,Array.isArray(t[r])&&t[r][0]==="memory"&&r++,Array.isArray(t[r])&&typeof t[r][0]=="string"&&!t[r][0].startsWith('"')&&r++;let i=1;typeof e[i]=="string"&&e[i][0]==="$"&&i++,Array.isArray(e[i])&&e[i][0]==="memory"&&i++,Array.isArray(e[i])&&typeof e[i][0]=="string"&&!e[i][0].startsWith('"')&&i++;let s=t.slice(r),n=e.slice(i);if(s.length===1&&n.length===1&&typeof s[0]=="string"&&typeof n[0]=="string"){let l=Kt(s[0]),f=Kt(n[0]);for(let c=0;c<f.length;c++)l.push(f[c]);return t.length=r,t.push(gr(l,l.length)),!0}return t.length=r,t.push(...s,...n),!0},Qi=t=>{if(!Array.isArray(t)||t[0]!=="module")return t;for(let i of t){if(!Array.isArray(i)||i[0]!=="data")continue;let s=1;typeof i[1]=="string"&&i[1][0]==="$"&&(s=2),s<i.length&&Array.isArray(i[s])&&typeof i[s][0]=="string"&&!i[s][0].startsWith('"')&&s++;let n=i.slice(s);if(n.length===0)continue;let l=Xi(n);(l.length!==n.length||l.length>0&&l[0]!==n[0])&&(i.length=s,i.push(...l))}let e=[];for(let i=0;i<t.length;i++){let s=t[i];if(Array.isArray(s)&&s[0]==="data"){let n=Zi(s);if(n){let l=Ye(s);l!==null&&e.push({...n,node:s,index:i,len:l})}}}e.sort((i,s)=>{let n=String(i.memidx),l=String(s.memidx);return n!==l?n.localeCompare(l):i.offset-s.offset});let r=new Set;for(let i=0;i<e.length-1;i++){let s=e[i],n=e[i+1];r.has(s.index)||String(s.memidx)!==String(n.memidx)||s.offset+s.len===n.offset&&Ki(s.node,n.node)&&(r.add(n.index),s.len=Ye(s.node))}return r.size>0&&(t=t.filter((i,s)=>!r.has(s))),t},Xe=()=>{let t=new Map,e=0;return r=>{if(!t.has(r)){let i="",s=e++;do i=String.fromCharCode(97+s%26)+i,s=Math.floor(s/26)-1;while(s>=0);t.set(r,i||"a")}return t.get(r)}},Ji=t=>{if(!Array.isArray(t)||t[0]!=="module")return t;let e=Xe(),r=Xe();for(let i of t)!Array.isArray(i)||i[0]!=="import"||(typeof i[1]=="string"&&i[1][0]==='"'&&(i[1]='"'+e(i[1].slice(1,-1))+'"'),typeof i[2]=="string"&&i[2][0]==='"'&&(i[2]='"'+r(i[2].slice(1,-1))+'"'));return t},ts=t=>{let e=!0;return F(t,r=>{if(!e||!Array.isArray(r))return;let i=r[0];if(i==="func"&&(typeof r[1]!="string"||r[1][0]!=="$"))e=!1;else if((i==="call"||i==="return_call"||i==="ref.func")&&(typeof r[1]!="string"||r[1][0]!=="$"))e=!1;else if(i==="start"&&(typeof r[1]!="string"||r[1][0]!=="$"))e=!1;else if(i==="elem")for(let s of r){if(typeof s=="string"&&s[0]!=="$"&&/^\d/.test(s)){e=!1;break}if(Array.isArray(s)&&s[0]==="ref.func"&&(typeof s[1]!="string"||s[1][0]!=="$")){e=!1;break}}}),e},es=t=>{if(!Array.isArray(t)||t[0]!=="module"||!ts(t))return t;let e=new Map;F(t,n=>{Array.isArray(n)&&(n[0]==="call"||n[0]==="return_call")&&e.set(n[1],(e.get(n[1])||0)+1)});let r=[],i=[],s=[];for(let n of t.slice(1)){if(!Array.isArray(n)){s.push(n);continue}n[0]==="import"?r.push(n):n[0]==="func"?i.push(n):s.push(n)}return i.sort((n,l)=>(e.get(l[1])||0)-(e.get(n[1])||0)),["module",...r,...i,...s]},zt=[["stripmut",ji,!0,"strip mut from never-written globals"],["globals",Ui,!0,"propagate immutable global constants"],["guardRefine",yi,!1,"fold NaN-box tag reads under dominating tag guards (jz NaN-box-specific; opt-in)"],["fold",fi,!0,"constant folding"],["identity",ai,!0,"remove identity ops (x + 0 \u2192 x)"],["peephole",Fi,!0,"x-x\u21920, x&0\u21920, etc."],["strength",ci,!0,"strength reduction (x * 2 \u2192 x << 1)"],["branch",ui,!0,"simplify constant branches"],["propagate",ue,!0,"forward-propagate single-use locals & tiny consts (never inflates)"],["devirt",or,!1,"call_indirect with a constant or known closure-const index \u2192 direct/guarded calls \u2014 grows bytes for speed"],["inlineOnce",Oi,!0,"inline single-call functions into their lone caller (never duplicates)"],["inline",fr,!1,"inline tiny functions \u2014 can duplicate bodies"],["offset",Di,!0,"fold add+const into load/store offset"],["unbranch",Pi,!0,"remove redundant br at end of own block"],["loopify",Wi,!0,"collapse block+loop+brif while-idiom into loop+if"],["brif",Gi,!0,"if-then-br \u2192 br_if"],["foldarms",Hi,!1,"merge identical trailing if arms \u2014 can add block wrapper"],["deadcode",mi,!0,"eliminate dead code after unreachable/br/return"],["vacuum",yr,!0,"remove nops, drop-of-pure, empty branches"],["mergeBlocks",cr,!0,"unwrap `(block $L \u2026)` whose label is never targeted"],["coalesce",ur,!0,"share local slots between same-type non-overlapping locals"],["locals",_i,!0,"remove unused locals"],["dedupe",Vi,!0,"eliminate duplicate functions"],["dedupTypes",Yi,!0,"merge identical type definitions"],["packData",Qi,!0,"trim trailing zeros, merge adjacent data segments"],["reorder",es,!1,"put hot functions first \u2014 no AST reduction"],["treeshake",Kr,!0,"remove unused funcs/globals/types/tables"],["minifyImports",Ji,!1,"shorten import names \u2014 enable only when you control the host"]],Ns=Object.fromEntries(zt.map(t=>[t[0],t[2]])),rs=t=>{if(t===!1)return{};if(t!==!0&&typeof t!="string"){let i={...t};for(let s of zt)i[s[0]]===void 0&&(i[s[0]]=s[2]);return i}let e=typeof t=="string"?new Set(t.split(/\s+/).filter(Boolean)):null,r={};for(let i of zt)r[i[0]]=e?e.has("all")||e.has(i[0]):i[2];return r},is=t=>{if(!Array.isArray(t))return!1;let e=new Map,r=new Set,i=new Set,s=n=>{if(!Array.isArray(n))return;let l=n[0];if(l==="call"&&typeof n[1]=="string")e.set(n[1],(e.get(n[1])||0)+1);else if(l==="return_call"&&typeof n[1]=="string")i.add(n[1]);else if(l==="ref.func"&&typeof n[1]=="string")r.add(n[1]);else if(l==="export"&&Array.isArray(n[2])&&n[2][0]==="func"&&typeof n[2][1]=="string")r.add(n[2][1]);else if(l==="start"&&typeof n[1]=="string")r.add(n[1]);else if(l==="elem")for(let f of n)typeof f=="string"&&f[0]==="$"&&r.add(f);for(let f=1;f<n.length;f++)s(n[f])};s(t);for(let n of t){if(!Array.isArray(n)||n[0]!=="func"||typeof n[1]!="string")continue;let l=n[1];if(!(e.get(l)!==1||r.has(l)||i.has(l))&&!n.some(f=>Array.isArray(f)&&f[0]==="export"))return!0}return!1},ss=new Set(["export","type","param","result","local"]);function ns(t){if(!Array.isArray(t)||t[0]!=="module")return t;let e=t.find(i=>Array.isArray(i)&&i[0]==="func"&&i[1]==="$__start");if(!e)return t;let r=2;for(;r<e.length&&Array.isArray(e[r])&&ss.has(e[r][0]);)r++;return r<e.length?t:t.filter(i=>!(Array.isArray(i)&&(i[0]==="func"&&i[1]==="$__start"||i[0]==="start"&&i[1]==="$__start")))}function be(t,e=!0){typeof t=="string"&&(t=lt(t));let r=e===!0;e=rs(e);let i=e.log?(a,y)=>e.log(a,y):()=>{},s=e.verbose||e.log;t=Q(t);let n=a=>(e.inline&&(a=fr(a,{simdOnly:e.inline==="simd"}),e.propagate&&(a=ue(a)),e.mergeBlocks&&(a=cr(a)),e.vacuum&&(a=yr(a)),e.coalesceLocals&&(a=ur(a))),a),l=a=>(a=n(a),ns(e.devirt?or(a):a));if(!((e.inlineOnce||e.inline)&&is(t))){for(let a=0;a<3;a++){let y=Q(t);for(let[m,_]of zt)e[m]&&m!=="inlineOnce"&&m!=="inline"&&m!=="devirt"&&(t=_(t));if(nt(y,t))break;s&&i(` round ${a+1} applied`)}return l(t)}let f=null,c=Pe(t);for(let a=0;a<3;a++){f=Q(t);for(let[d,k]of zt)e[d]&&d!=="devirt"&&d!=="inline"&&(t=k(t));if(e.propagate&&(e.inlineOnce||e.inline)&&(t=ue(t)),nt(f,t))break;let y=Pe(t),m=y-c;if((s||m!==0)&&i(` round ${a+1}: ${m>0?"+":""}${m} bytes`,m),m>(r?0:16)){s&&i(` \u26A0 round ${a+1} inflated by ${m} bytes, reverting`,m),t=f;break}c=y}return l(t)}var mr="\uE000",ls=(t,e={})=>{if(!Array.isArray(t))return typeof t=="string"&&t[0]==="$"&&e.locals?.[t]?e.locals[t]:null;let[r,...i]=t,s=ze(r);return s||(r==="local.get"&&e.locals?.[i[0]]?e.locals[i[0]]:r==="call"&&e.funcs?.[i[0]]?e.funcs[i[0]].result?.[0]:null)};function we(t,e){if(t=e(t),Array.isArray(t))for(let r=0;r<t.length;r++){let i=we(t[r],e);i?._splice?(t.splice(r,1,...i),r+=i.length-1):t[r]=i}return t}function fs(t,e){let r=[],i=new Map;return we(t,s=>{if(!Array.isArray(s))return s;if(s[0]==="call"&&typeof s[1]=="function"){let n=s[1];if(!i.has(n)){let f=[];for(let y=2;y<s.length;y++){let m=ls(s[y]);m&&f.push(m)}let c=r.length,a=n.name||`$fn${c}`;i.set(n,{idx:c,name:a.startsWith("$")?a:"$"+a,params:f,fn:n}),r.push(i.get(n))}let l=i.get(n);s[1]=l.name}return s}),r}function os(t){return t.map(({name:e,params:r})=>["import",'"env"',`"${e.slice(1)}"`,["func",e,...r.map(i=>["param",i])]])}function $e(t,e,r){let{parse:i,compile:s,optimize:n,polyfill:l}=t,f={};if(!Array.isArray(e)&&r.length&&typeof r[r.length-1]=="object"&&r[r.length-1]!==null&&!r[r.length-1].byteLength&&(f=r.pop()),Array.isArray(e)&&e.raw){let c=e[0];for(let k=0;k<r.length;k++)c+=mr+e[k+1];let a=i(c),y=[],m=0;a=we(a,k=>{if(k===mr){let x=r[m++];if(typeof x=="function")return y.push(x),x;if(typeof x=="string"&&(x[0]==="("||/^\s*\(/.test(x))){let h=i(x);return Array.isArray(h)&&Array.isArray(h[0])&&(h._splice=!0),h}return x?.byteLength!==void 0?[...x]:typeof x=="bigint"?x.toString():x}return k});let _=null;if(y.length){let k=fs(a,y);if(k.length){let x=os(k);a[0]==="module"?a.splice(1,0,...x):typeof a[0]=="string"?a=[...x,a]:a.unshift(...x),_={env:{}};for(let h of k)_.env[h.name.slice(1)]=h.fn}}f.polyfill&&(a=l(a,f.polyfill)),f.optimize&&(a=n(a,f.optimize));let d=s(a);return _&&(d._imports=_),d}if(f.polyfill||f.optimize){let c=typeof e=="string"?i(e):e;return f.polyfill&&(c=l(c,f.polyfill)),f.optimize&&(c=n(c,f.optimize)),s(c)}return s(e)}function _r(t,e,r){let i=$e(t,e,r),s=new WebAssembly.Module(i);return new WebAssembly.Instance(s,i._imports).exports}var hr={parse:lt,compile:bt,optimize:be,polyfill:le};function Us(t,...e){return $e(hr,t,e)}function as(t,...e){return _r(hr,t,e)}var Ds=as;export{Us as compile,Ds as default,be as optimize,lt as parse,le as polyfill,Re as print,as as watr};