@yabgu_gm/tensionscript 0.0.0-stage → 0.11.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (117) hide show
  1. package/LICENSE +201 -0
  2. package/NOTICE +97 -0
  3. package/README.md +156 -2
  4. package/bin/tensionscript.js +35 -0
  5. package/dist/asc.d.ts +4 -0
  6. package/dist/asc.generated.d.ts +12007 -0
  7. package/dist/asc.js +23474 -0
  8. package/dist/asc.js.map +7 -0
  9. package/dist/assemblyscript.d.ts +4 -0
  10. package/dist/assemblyscript.generated.d.ts +13221 -0
  11. package/dist/assemblyscript.js +337 -0
  12. package/dist/assemblyscript.js.map +7 -0
  13. package/dist/importmap.json +9 -0
  14. package/dist/transform.cjs +1 -0
  15. package/dist/transform.d.ts +1 -0
  16. package/dist/transform.js +1 -0
  17. package/dist/web.js +22 -0
  18. package/lib/binaryen.d.ts +2 -0
  19. package/lib/binaryen.js +2 -0
  20. package/package.json +116 -4
  21. package/std/README.md +6 -0
  22. package/std/assembly/array.ts +526 -0
  23. package/std/assembly/arraybuffer.ts +77 -0
  24. package/std/assembly/atomics.ts +127 -0
  25. package/std/assembly/bindings/asyncify.ts +16 -0
  26. package/std/assembly/bindings/dom.ts +291 -0
  27. package/std/assembly/bindings/node.ts +6 -0
  28. package/std/assembly/builtins.ts +2642 -0
  29. package/std/assembly/closures.ts +22 -0
  30. package/std/assembly/compat.ts +2 -0
  31. package/std/assembly/console.ts +42 -0
  32. package/std/assembly/crypto.ts +9 -0
  33. package/std/assembly/dataview.ts +181 -0
  34. package/std/assembly/date.ts +373 -0
  35. package/std/assembly/diagnostics.ts +11 -0
  36. package/std/assembly/error.ts +44 -0
  37. package/std/assembly/function.ts +38 -0
  38. package/std/assembly/index.d.ts +2721 -0
  39. package/std/assembly/iterator.ts +35 -0
  40. package/std/assembly/map.ts +260 -0
  41. package/std/assembly/math.ts +3289 -0
  42. package/std/assembly/memory.ts +123 -0
  43. package/std/assembly/number.ts +388 -0
  44. package/std/assembly/object.ts +36 -0
  45. package/std/assembly/performance.ts +9 -0
  46. package/std/assembly/polyfills.ts +27 -0
  47. package/std/assembly/process.ts +50 -0
  48. package/std/assembly/reference.ts +48 -0
  49. package/std/assembly/regexp.ts +12 -0
  50. package/std/assembly/rt/README.md +81 -0
  51. package/std/assembly/rt/common.ts +81 -0
  52. package/std/assembly/rt/index-incremental.ts +2 -0
  53. package/std/assembly/rt/index-minimal.ts +2 -0
  54. package/std/assembly/rt/index-stub.ts +1 -0
  55. package/std/assembly/rt/index.d.ts +37 -0
  56. package/std/assembly/rt/itcms.ts +419 -0
  57. package/std/assembly/rt/rtrace.ts +15 -0
  58. package/std/assembly/rt/stub.ts +133 -0
  59. package/std/assembly/rt/tcms.ts +254 -0
  60. package/std/assembly/rt/tlsf.ts +592 -0
  61. package/std/assembly/rt.ts +87 -0
  62. package/std/assembly/set.ts +220 -0
  63. package/std/assembly/shared/feature.ts +65 -0
  64. package/std/assembly/shared/runtime.ts +11 -0
  65. package/std/assembly/shared/target.ts +11 -0
  66. package/std/assembly/shared/tsconfig.json +11 -0
  67. package/std/assembly/shared/typeinfo.ts +72 -0
  68. package/std/assembly/staticarray.ts +401 -0
  69. package/std/assembly/string.ts +847 -0
  70. package/std/assembly/symbol.ts +114 -0
  71. package/std/assembly/table.ts +16 -0
  72. package/std/assembly/task-rt.ts +609 -0
  73. package/std/assembly/task.ts +90 -0
  74. package/std/assembly/tsconfig.json +6 -0
  75. package/std/assembly/typedarray.ts +1945 -0
  76. package/std/assembly/uri.ts +17 -0
  77. package/std/assembly/util/bytes.ts +135 -0
  78. package/std/assembly/util/casemap.ts +497 -0
  79. package/std/assembly/util/error.ts +54 -0
  80. package/std/assembly/util/hash.ts +117 -0
  81. package/std/assembly/util/math.ts +1922 -0
  82. package/std/assembly/util/memory.ts +290 -0
  83. package/std/assembly/util/number.ts +873 -0
  84. package/std/assembly/util/sort.ts +313 -0
  85. package/std/assembly/util/string.ts +1202 -0
  86. package/std/assembly/util/uri.ts +275 -0
  87. package/std/assembly/vector.ts +4 -0
  88. package/std/assembly.json +16 -0
  89. package/std/portable/index.d.ts +462 -0
  90. package/std/portable/index.js +416 -0
  91. package/std/portable.json +11 -0
  92. package/std/types/assembly/index.d.ts +1 -0
  93. package/std/types/assembly/package.json +3 -0
  94. package/std/types/portable/index.d.ts +1 -0
  95. package/std/types/portable/package.json +3 -0
  96. package/tsconfig-base.json +13 -0
  97. package/util/README.md +23 -0
  98. package/util/browser/fs.js +1 -0
  99. package/util/browser/module.js +5 -0
  100. package/util/browser/path.js +520 -0
  101. package/util/browser/process.js +59 -0
  102. package/util/browser/url.js +23 -0
  103. package/util/cpu.d.ts +9 -0
  104. package/util/cpu.js +42 -0
  105. package/util/find.d.ts +6 -0
  106. package/util/find.js +20 -0
  107. package/util/node.d.ts +21 -0
  108. package/util/node.js +34 -0
  109. package/util/options.d.ts +70 -0
  110. package/util/options.js +262 -0
  111. package/util/terminal.d.ts +52 -0
  112. package/util/terminal.js +35 -0
  113. package/util/text.d.ts +26 -0
  114. package/util/text.js +114 -0
  115. package/util/tsconfig.json +9 -0
  116. package/util/web.d.ts +11 -0
  117. package/util/web.js +33 -0
@@ -0,0 +1,337 @@
1
+ /**
2
+ * @license
3
+ * The TensionScript compiler
4
+ * Copyright 2026 Daniel Wirtz / The AssemblyScript Authors
5
+ * SPDX-License-Identifier: Apache-2.0
6
+ */
7
+ var Pu=Object.defineProperty;var q_=Object.getOwnPropertyDescriptor;var S1=Object.getOwnPropertyNames;var v1=Object.prototype.hasOwnProperty;var Bu=(i,r)=>{for(var e in r)Pu(i,e,{get:r[e],enumerable:!0})},O_=(i,r,e,t)=>{if(r&&typeof r=="object"||typeof r=="function")for(let n of S1(r))!v1.call(i,n)&&n!==e&&Pu(i,n,{get:()=>r[n],enumerable:!(t=q_(r,n))||t.enumerable});return i},Nu=(i,r,e)=>(O_(i,r,"default"),e&&O_(e,r,"default"));var W_=(i,r,e,t)=>{for(var n=t>1?void 0:t?q_(r,e):r,s=i.length-1,a;s>=0;s--)(a=i[s])&&(n=(t?a(r,e,n):a(n))||n);return t&&n&&Pu(r,e,n),n};var U_={};Bu(U_,{ASTBuilder:()=>G_,ArrayLiteralExpression:()=>Yr,ArrowKind:()=>Xt,AssertionExpression:()=>El,AssertionKind:()=>Qt,AsyncLowerTransform:()=>Ia,AtomicRMWOp:()=>tf,AwaitExpression:()=>Ql,BinaryExpression:()=>Al,BinaryModule:()=>Po,BinaryOp:()=>en,BlockStatement:()=>Yl,BrOnOp:()=>qb,BreakStatement:()=>Jl,CallExpression:()=>Tl,Class:()=>Er,ClassDeclaration:()=>us,ClassExpression:()=>Sl,ClassPrototype:()=>Us,ClosureLowerTransform:()=>ha,CommaExpression:()=>vl,CommentKind:()=>$p,CommentNode:()=>xl,CommonFlags:()=>ze,CommonNames:()=>N,CompiledExpression:()=>$l,Compiler:()=>ua,ConditionKind:()=>xf,ConstantValueKind:()=>If,Constraints:()=>p_,ConstructorExpression:()=>Il,ContinueStatement:()=>eo,DEFAULT_STACK_SIZE:()=>fF,DeclarationStatement:()=>it,DeclaredElement:()=>Ar,DecoratorFlags:()=>Nt,DecoratorKind:()=>Rt,DecoratorNode:()=>bl,DiagnosticCategory:()=>dl,DiagnosticCode:()=>Xe,DiagnosticEmitter:()=>tt,DiagnosticMessage:()=>_l,DoStatement:()=>to,Element:()=>Ms,ElementAccessExpression:()=>kl,ElementKind:()=>Et,EmptyStatement:()=>ro,Enum:()=>Zo,EnumDeclaration:()=>io,EnumValue:()=>Yo,EnumValueDeclaration:()=>no,EnvAnalysisRecord:()=>du,ExportDefaultStatement:()=>oo,ExportImportStatement:()=>so,ExportMember:()=>ao,ExportNames:()=>la,ExportStatement:()=>lo,Expression:()=>ge,ExpressionId:()=>ei,ExpressionRunnerFlags:()=>Bo,ExpressionStatement:()=>uo,ExternalKind:()=>ef,FEATURES_ALL:()=>CF,FEATURES_DEFAULT:()=>PF,FEATURE_BULK_MEMORY:()=>gF,FEATURE_EXCEPTION_HANDLING:()=>EF,FEATURE_EXTENDED_CONST:()=>FF,FEATURE_GC:()=>vF,FEATURE_MEMORY64:()=>IF,FEATURE_MULTI_VALUE:()=>SF,FEATURE_MUTABLE_GLOBALS:()=>mF,FEATURE_NONTRAPPING_F2I:()=>yF,FEATURE_REFERENCE_TYPES:()=>TF,FEATURE_RELAXED_SIMD:()=>kF,FEATURE_SHARED_EVERYTHING:()=>RF,FEATURE_SIGN_EXTENSION:()=>hF,FEATURE_SIMD:()=>bF,FEATURE_STRINGREF:()=>wF,FEATURE_TAIL_CALLS:()=>AF,FEATURE_THREADS:()=>xF,FalseExpression:()=>Kl,Feature:()=>Kt,FeatureFlags:()=>Jp,FieldDeclaration:()=>co,FieldFlags:()=>bf,File:()=>Ds,FixedArrayTypeNode:()=>yl,FloatLiteralExpression:()=>Fl,Flow:()=>Jt,FlowFlags:()=>Oo,ForOfStatement:()=>fo,ForStatement:()=>po,Function:()=>Lt,FunctionDeclaration:()=>cs,FunctionExpression:()=>wl,FunctionPrototype:()=>lt,FunctionTypeNode:()=>Zr,GETTER_PREFIX:()=>el,Global:()=>ti,HeapTypeRef:()=>Ie,INDEX_SUFFIX:()=>Qe,INNER_DELIMITER:()=>Bp,INSTANCE_DELIMITER:()=>Pp,IdentifierExpression:()=>rt,IdentifierHandling:()=>Qp,IfStatement:()=>_o,ImportDeclaration:()=>ho,ImportNames:()=>gn,ImportStatement:()=>ps,IndexSignature:()=>Rs,IndexSignatureNode:()=>Zl,InstanceOfExpression:()=>Rl,IntegerLiteralExpression:()=>Cl,Interface:()=>Cs,InterfaceDeclaration:()=>mo,InterfacePrototype:()=>Jo,JSBuilder:()=>_n,LIBRARY_PREFIX:()=>Ft,LIBRARY_SUBST:()=>kb,LazyExpression:()=>Xl,LiteralExpression:()=>wt,LiteralKind:()=>pt,Local:()=>Ae,LocalFlags:()=>ks,MemoryModel:()=>wo,MemoryModelCode:()=>sx,MemoryOrder:()=>Gb,MemorySegment:()=>Ji,MethodDeclaration:()=>Jr,Module:()=>Yt,ModuleDeclaration:()=>To,NamedTypeNode:()=>$r,Namespace:()=>Gs,NamespaceDeclaration:()=>yo,NewExpression:()=>Pl,Node:()=>h,NodeKind:()=>Ze,NullExpression:()=>Bl,ObjectLiteralExpression:()=>Nl,OmittedExpression:()=>Ll,OperatorKind:()=>Me,Options:()=>oa,PARENT_SUBST:()=>M1,PATH_DELIMITER:()=>mt,PackedType:()=>ds,Parameter:()=>Tf,ParameterKind:()=>jt,ParameterNode:()=>$i,ParenthesizedExpression:()=>Ml,Parser:()=>Ns,Precedence:()=>ex,Program:()=>Ls,Property:()=>ws,PropertyAccessExpression:()=>zl,PropertyPrototype:()=>sn,Range:()=>ue,RefAsOp:()=>Ub,RegexpLiteralExpression:()=>Dl,Relooper:()=>Co,ReportMode:()=>jo,Resolver:()=>Fs,ReturnStatement:()=>go,Runtime:()=>Ya,RuntimeFeatures:()=>f_,SETTER_PREFIX:()=>tl,SIMDExtractOp:()=>rf,SIMDLoadOp:()=>af,SIMDLoadStoreLaneOp:()=>lf,SIMDReplaceOp:()=>nf,SIMDShiftOp:()=>sf,SIMDTernaryOp:()=>of,STATIC_DELIMITER:()=>es,STUB_DELIMITER:()=>Np,SideEffects:()=>gf,Signature:()=>Te,Source:()=>Ee,SourceKind:()=>Yi,State:()=>hl,Statement:()=>he,StringEncodeOp:()=>Hb,StringEqOp:()=>jb,StringLiteralExpression:()=>Ul,StringMeasureOp:()=>Kb,StringNewOp:()=>Wb,SuperExpression:()=>Vl,SwitchBuilder:()=>hs,SwitchCase:()=>bo,SwitchStatement:()=>xo,TSDBuilder:()=>bn,Target:()=>Gi,TemplateLiteralExpression:()=>Ol,TernaryExpression:()=>Gl,ThisExpression:()=>ql,ThrowStatement:()=>Eo,Token:()=>bt,Tokenizer:()=>ls,TrueExpression:()=>Wl,TryStatement:()=>Ao,TupleTypeNode:()=>ml,Type:()=>p,TypeBuilderErrorReason:()=>Yp,TypeDeclaration:()=>So,TypeDefinition:()=>at,TypeFlags:()=>Bt,TypeKind:()=>xr,TypeName:()=>Xi,TypeNode:()=>Xr,TypeParameterNode:()=>gl,TypeRef:()=>B,TypedElement:()=>rr,Typeinfo:()=>Ui,TypeinfoFlags:()=>Ja,UnaryExpression:()=>os,UnaryOp:()=>ms,UnaryPostfixExpression:()=>Hl,UnaryPrefixExpression:()=>jl,UncheckedBehavior:()=>qo,VariableDeclaration:()=>vo,VariableLikeDeclarationStatement:()=>Zi,VariableLikeElement:()=>ri,VariableStatement:()=>Io,VoidStatement:()=>ko,WhileStatement:()=>Fo,WideIntAddSubOp:()=>Vb,WideIntMulOp:()=>Ob,addGlobalAlias:()=>aF,allocPtrArray:()=>be,applyInTreeTransforms:()=>Qx,buildJS:()=>aw,buildTSD:()=>sw,compile:()=>nw,createType:()=>ft,defaultFeatures:()=>lu,diagnosticCategoryToColor:()=>Lb,diagnosticCategoryToString:()=>Hp,diagnosticCodeToString:()=>il,ensureType:()=>Is,expandType:()=>uf,featureToString:()=>Di,findDecorator:()=>$t,formatDiagnostic:()=>Mb,formatDiagnosticMessage:()=>Mb,getBinaryLeft:()=>st,getBinaryOp:()=>tn,getBinaryRight:()=>We,getBinaryenModuleRef:()=>lw,getBlockChildAt:()=>As,getBlockChildCount:()=>Es,getBlockName:()=>xs,getBreakCondition:()=>yE,getBreakName:()=>mE,getCallOperandAt:()=>Je,getCallOperandCount:()=>Pt,getCallTarget:()=>Ss,getConstValueF32:()=>Ce,getConstValueF64:()=>Pe,getConstValueI32:()=>se,getConstValueI64High:()=>Ge,getConstValueI64Low:()=>Be,getConstValueInteger:()=>cf,getConstValueV128:()=>pf,getDefaultParameterName:()=>nx,getDependee:()=>rw,getDiagnosticCategory:()=>qF,getDiagnosticCode:()=>OF,getDiagnosticMessage:()=>WF,getDiagnosticRange:()=>KF,getDiagnosticRelatedRange:()=>HF,getDropValue:()=>bE,getExpressionId:()=>re,getExpressionType:()=>ce,getFunctionBody:()=>AE,getFunctionName:()=>mf,getFunctionParams:()=>TE,getFunctionResults:()=>SE,getFunctionVars:()=>vE,getGlobalGetName:()=>gs,getGlobalInit:()=>FE,getGlobalName:()=>IE,getGlobalType:()=>kE,getIfCondition:()=>Go,getIfFalse:()=>rn,getIfTrue:()=>Ts,getLoadBytes:()=>ff,getLoadOffset:()=>oE,getLoadPtr:()=>uE,getLocalGetIndex:()=>Ct,getLocalSetIndex:()=>Mo,getLocalSetValue:()=>zo,getLoopBody:()=>hE,getLoopName:()=>dE,getMemoryGrowDelta:()=>EE,getRangeEnd:()=>QF,getRangeSource:()=>XF,getRangeStart:()=>jF,getReturnValue:()=>xE,getSelectCondition:()=>gE,getSelectElse:()=>hf,getSelectThen:()=>df,getSideEffects:()=>vs,getSource:()=>VF,getSourceNormalizedPath:()=>$F,getStoreBytes:()=>cE,getStoreOffset:()=>pE,getStorePtr:()=>fE,getStoreValue:()=>_E,getTagName:()=>wE,getTagParams:()=>RE,getTagResults:()=>CE,getUnaryOp:()=>bs,getUnaryValue:()=>Do,initializeProgram:()=>iw,isConstExpressionNaN:()=>Lo,isConstNaN:()=>lE,isConstNegZero:()=>No,isConstNonZero:()=>xt,isConstZero:()=>nt,isDeclaredElement:()=>zs,isError:()=>JF,isGlobalMutable:()=>yf,isIllegalVariableIdentifier:()=>Xp,isInfo:()=>ZF,isLoadSigned:()=>_f,isLocalTee:()=>ys,isNullableType:()=>Qb,isTypeOmitted:()=>De,isTypedElement:()=>Ko,isWarning:()=>YF,mangleInternalName:()=>Ke,mangleInternalPath:()=>fs,mustPreserveSideEffects:()=>Uo,newOptions:()=>Kk,newProgram:()=>GF,nextDiagnostic:()=>UF,nextFile:()=>tw,operatorTokenToString:()=>Le,optimize:()=>uw,parse:()=>ew,readString:()=>Ye,removeGlobalAlias:()=>lF,runtimeFunctions:()=>dn,runtimeGlobals:()=>hn,setBasenameHint:()=>LF,setBindingsHint:()=>MF,setBundleVersion:()=>dF,setDebugInfo:()=>DF,setExportMemory:()=>Xk,setExportRuntime:()=>pF,setExportStart:()=>oF,setExportTable:()=>tF,setFeature:()=>BF,setImportMemory:()=>$k,setImportTable:()=>eF,setInitialMemory:()=>Zk,setLowMemoryLimit:()=>cF,setMaximumMemory:()=>Yk,setMemoryBase:()=>nF,setNoAssert:()=>Qk,setNoUnsafe:()=>uF,setOptimizeLevelHints:()=>NF,setPedantic:()=>zF,setRuntime:()=>jk,setSharedMemory:()=>Jk,setSourceMap:()=>rF,setStackSize:()=>_F,setTableBase:()=>sF,setTarget:()=>Hk,setUncheckedBehavior:()=>iF,tokenFromKeyword:()=>zb,tokenIsAlsoIdentifier:()=>Db,typesToRefs:()=>an,typesToString:()=>Ho,util:()=>Kp,validate:()=>ow});var J=typeof window<"u"&&window||typeof global<"u"&&global||self;if(typeof J.ASC_TARGET>"u"){let e=function(){Error.captureStackTrace?Error.captureStackTrace(this,e):this.stack=this.name+": "+this.message+`
8
+ `+new Error().stack},t=function(a){this.message=a||"assertion failed",Error.captureStackTrace?Error.captureStackTrace(this,t):this.stack=this.name+": "+this.message+`
9
+ `+new Error().stack},n=function(a,l){if(a==l){if(a!=0)return 0;a=1/a,l=1/l}else{let o=a!=a,u=l!=l;if(o|u)return o-u;a==null&&(a=String(a)),l==null&&(l=String(l))}return a>l?1:-1};I1=e,k1=t,F1=n,J.ASC_TARGET=0,J.ASC_RUNTIME=0,J.ASC_NO_ASSERT=!1,J.ASC_MEMORY_BASE=0,J.ASC_OPTIMIZE_LEVEL=3,J.ASC_SHRINK_LEVEL=0,J.ASC_FEATURE_MUTABLE_GLOBAL=!1,J.ASC_FEATURE_SIGN_EXTENSION=!1,J.ASC_FEATURE_BULK_MEMORY=!1,J.ASC_FEATURE_SIMD=!1,J.ASC_FEATURE_THREADS=!1;let i=new Float64Array(1),r=new Uint32Array(i.buffer);Object.defineProperties(J.i8=function(l){return l<<24>>24},{MIN_VALUE:{value:-128},MAX_VALUE:{value:127},parse(a,l){return parseInt(a,l)<<24>>24}}),Object.defineProperties(J.i16=function(l){return l<<16>>16},{MIN_VALUE:{value:-32768},MAX_VALUE:{value:32767},parse(a,l){return parseInt(a,l)<<16>>16}}),Object.defineProperties(J.i32=J.isize=function(l){return l|0},{MIN_VALUE:{value:-2147483648},MAX_VALUE:{value:2147483647},parse(a,l){return parseInt(a,l)|0}}),Object.defineProperties(J.u8=function(l){return l&255},{MIN_VALUE:{value:0},MAX_VALUE:{value:255},parse(a,l){return parseInt(a,l)&255}}),Object.defineProperties(J.u16=function(l){return l&65535},{MIN_VALUE:{value:0},MAX_VALUE:{value:65535},parse(a,l){return parseInt(a,l)&65535}}),Object.defineProperties(J.u32=J.usize=function(l){return l>>>0},{MIN_VALUE:{value:0},MAX_VALUE:{value:4294967295},parse(a,l){return parseInt(a,l)>>>0}}),Object.defineProperties(J.bool=function(l){return!!l},{MIN_VALUE:{value:!1},MAX_VALUE:{value:!0},parse(a){return a.trim()==="true"}}),Object.defineProperties(J.f32=function(l){return Math.fround(l)},{EPSILON:{value:11920928955078125e-23},MIN_VALUE:{value:1401298464324817e-60},MAX_VALUE:{value:34028234663852886e22},MIN_NORMAL_VALUE:{value:11754943508222875e-54},MIN_SAFE_INTEGER:{value:-16777215},MAX_SAFE_INTEGER:{value:16777215},POSITIVE_INFINITY:{value:1/0},NEGATIVE_INFINITY:{value:-1/0},NaN:{value:NaN},parse(a){return Math.fround(parseFloat(a))}}),Object.defineProperties(J.f64=function(l){return+l},{EPSILON:{value:2220446049250313e-31},MIN_VALUE:{value:5e-324},MAX_VALUE:{value:17976931348623157e292},MIN_NORMAL_VALUE:{value:22250738585072014e-324},MIN_SAFE_INTEGER:{value:-9007199254740991},MAX_SAFE_INTEGER:{value:9007199254740991},POSITIVE_INFINITY:{value:1/0},NEGATIVE_INFINITY:{value:-1/0},NaN:{value:NaN},parse(a){return parseFloat(a)}}),J.clz=Math.clz32,J.ctz=function(l){return 32-Math.clz32(~l&l-1)},J.popcnt=function(l){return l-=l>>>1&1431655765,l=(l&858993459)+(l>>>2&858993459),(l+(l>>>4)&252645135)*16843009>>>24},J.rotl=function(l,o){return o&=31,l<<o|l>>>32-o},J.rotr=function(l,o){return o&=31,l>>>o|l<<32-o},J.abs=Math.abs,J.max=Math.max,J.min=Math.min,J.ceil=Math.ceil,J.floor=Math.floor,J.nearest=function(l){let u=Math.abs(l);return u<4503599627370496?(u+4503599627370496-4503599627370496)*Math.sign(l):l},J.select=function(l,o,u){return u?l:o},J.sqrt=Math.sqrt,J.trunc=Math.trunc,J.copysign=function(l,o){return o?Math.abs(l)*Math.sign(o):(i[0]=o,r[1]>>>31?-1:1)},J.bswap=function(l){let o=l>>8&16711935,u=(l&16711935)<<8;return l=o|u,o=l>>16&65535,u=(l&65535)<<16,o|u},e.prototype=Object.create(Error.prototype),e.prototype.name="UnreachableError",e.prototype.message="unreachable",J.unreachable=function(){throw new e},t.prototype=Object.create(Error.prototype),t.prototype.name="AssertionError",J.assert=function(l,o){if(l)return l;throw new t(o)},J.changetype=function(l){return l},String.fromCharCodes=function(l){let u=l.length;if(u<=8192)return String.fromCharCode.apply(String,l);let c=0,f="";for(;c<u;)f+=String.fromCharCode.apply(String,l.slice(c,Math.min(c+8192,u))),c+=8192;return f},String.fromCodePoints=function(l){let u=l.length;if(u<=8192)return String.fromCodePoint.apply(String,l);let c=0,f="";for(;c<u;)f+=String.fromCodePoint.apply(String,l.slice(c,Math.min(c+8192,u))),c+=8192;return f},String.prototype.at||Object.defineProperty(String.prototype,"at",{value:function(l){return this.charAt(l>=0?l:l+this.length)},configurable:!0}),String.prototype.replaceAll||Object.defineProperty(String.prototype,"replaceAll",{value:function(l,o){let u=this.split(l).join(o);return l.length||(u=o+u+o),u},configurable:!0});let s=Array.prototype.sort;Array.prototype.sort=function(l){return s.call(this,l||n)},[Array,Uint8ClampedArray,Uint8Array,Int8Array,Uint16Array,Int16Array,Uint32Array,Int32Array,Float32Array,Float64Array].forEach(a=>{a.prototype.at||Object.defineProperty(a.prototype,"at",{value:function(o){return this[o>=0?o:o+this.length]},configurable:!0}),a.prototype.findLastIndex||Object.defineProperty(a.prototype,"findLastIndex",{value:function(o){for(let u=this.length-1;u>=0;--u)if(o(this[u],u,this))return u;return-1},configurable:!0}),a!=Array&&Object.defineProperty(a,"wrap",{value:function(o,u,c){return new a(o,u,c)},configurable:!0})}),J.isInteger=Number.isInteger,J.isFloat=function(l){return typeof l=="number"},J.isNullable=function(l){return!0},J.isReference=function(l){return typeof l=="object"||typeof l=="string"},J.isFunction=function(l){return typeof l=="function"},J.isString=function(l){return typeof l=="string"||l instanceof String},J.isArray=Array.isArray,J.isArrayLike=function(l){return l&&typeof l=="object"&&typeof l.length=="number"&&l.length>=0&&Math.trunc(l.length)===l.length},J.isDefined=function(l){return typeof l<"u"},J.isConstant=function(l){return!1},J.unchecked=function(l){return l},J.fmod=function(l,o){return l%o},J.fmodf=function(l,o){return Math.fround(l%o)},J.JSMath=Math,Object.defineProperties(J.JSMath,{sincos_sin:{value:0,writable:!0},sincos_cos:{value:0,writable:!0},signbit:{value:function(l){return i[0]=l,!!(r[1]>>>31)}},sincos:{value:function(l){this.sincos_sin=Math.sin(l),this.sincos_cos=Math.cos(l)}},exp2:{value:function(l){return Math.pow(2,l)}}}),J.unmanaged=function(){},J.trace=function(a,l){l&&(a+=Array.prototype.slice.call(arguments,2,2+l)),console.error("trace: "+a)}}var I1,k1,F1;var Rn={};Bu(Rn,{default:()=>Cn});Nu(Rn,MM);import*as MM from"binaryen";import{default as Cn}from"binaryen";import w1 from"long";var{_BinaryenTypeCreate:K_,_BinaryenTypeArity:H_,_BinaryenTypeExpand:j_,_BinaryenTypeGetHeapType:fr,_BinaryenTypeFromHeapType:xe,_BinaryenTypeIsNullable:Q_,_BinaryenTypeFuncref:X_,_BinaryenTypeExternref:$_,_BinaryenTypeAnyref:Z_,_BinaryenTypeEqref:Y_,_BinaryenTypeI31ref:J_,_BinaryenTypeStructref:ed,_BinaryenTypeArrayref:td,_BinaryenTypeStringref:rd,_BinaryenTypeNullref:id,_BinaryenTypeNullExternref:nd,_BinaryenTypeNullFuncref:sd,_BinaryenHeapTypeFunc:UM,_BinaryenHeapTypeExt:VM,_BinaryenHeapTypeAny:OM,_BinaryenHeapTypeEq:qM,_BinaryenHeapTypeI31:WM,_BinaryenHeapTypeStruct:KM,_BinaryenHeapTypeArray:HM,_BinaryenHeapTypeString:jM,_BinaryenHeapTypeNone:QM,_BinaryenHeapTypeNoext:XM,_BinaryenHeapTypeNofunc:$M,_BinaryenHeapTypeIsBasic:ZM,_BinaryenHeapTypeIsSignature:YM,_BinaryenHeapTypeIsStruct:JM,_BinaryenHeapTypeIsArray:e7,_BinaryenHeapTypeIsBottom:ad,_BinaryenHeapTypeGetBottom:ld,_BinaryenHeapTypeIsSubType:od,_BinaryenStructTypeGetNumFields:ud,_BinaryenStructTypeGetFieldType:t7,_BinaryenStructTypeGetFieldPackedType:r7,_BinaryenStructTypeIsFieldMutable:i7,_BinaryenArrayTypeGetElementType:n7,_BinaryenArrayTypeGetElementPackedType:s7,_BinaryenArrayTypeIsElementMutable:a7,_BinaryenSignatureTypeGetParams:l7,_BinaryenSignatureTypeGetResults:o7,_BinaryenModuleCreate:cd,_BinaryenModuleDispose:pd,_BinaryenSizeofLiteral:Lu,_BinaryenLiteralInt32:fd,_BinaryenLiteralFloat32:_d,_BinaryenLiteralFloat64:dd,_BinaryenLiteralVec128:hd,_BinaryenLiteralFloat32Bits:u7,_BinaryenExpressionGetId:Wt,_BinaryenExpressionGetType:_r,_BinaryenExpressionSetType:c7,_BinaryenExpressionPrint:p7,_BinaryenExpressionCopy:md,_BinaryenExpressionFinalize:yd,_BinaryenBlock:gd,_BinaryenBlockGetName:wa,_BinaryenBlockSetName:f7,_BinaryenBlockGetNumChildren:Pn,_BinaryenBlockGetChildAt:Bn,_BinaryenBlockSetChildAt:bd,_BinaryenBlockAppendChild:_7,_BinaryenBlockInsertChildAt:d7,_BinaryenBlockRemoveChildAt:h7,_BinaryenIf:xd,_BinaryenIfGetCondition:Nn,_BinaryenIfSetCondition:Ed,_BinaryenIfGetIfTrue:Ln,_BinaryenIfSetIfTrue:Ad,_BinaryenIfGetIfFalse:Mn,_BinaryenIfSetIfFalse:Td,_BinaryenLoop:Sd,_BinaryenLoopGetName:Ra,_BinaryenLoopSetName:m7,_BinaryenLoopGetBody:zn,_BinaryenLoopSetBody:vd,_BinaryenBreak:Id,_BinaryenBreakGetName:Ca,_BinaryenBreakSetName:y7,_BinaryenBreakGetCondition:Dn,_BinaryenBreakSetCondition:kd,_BinaryenBreakGetValue:Mu,_BinaryenBreakSetValue:Fd,_BinaryenSwitch:wd,_BinaryenSwitchGetNumNames:Rd,_BinaryenSwitchGetNameAt:Cd,_BinaryenSwitchSetNameAt:g7,_BinaryenSwitchAppendName:b7,_BinaryenSwitchInsertNameAt:x7,_BinaryenSwitchRemoveNameAt:E7,_BinaryenSwitchGetDefaultName:Pd,_BinaryenSwitchSetDefaultName:A7,_BinaryenSwitchGetCondition:zu,_BinaryenSwitchSetCondition:Bd,_BinaryenSwitchGetValue:Du,_BinaryenSwitchSetValue:Nd,_BinaryenCall:Ld,_BinaryenCallGetTarget:Ri,_BinaryenCallSetTarget:T7,_BinaryenCallGetNumOperands:dr,_BinaryenCallGetOperandAt:hr,_BinaryenCallSetOperandAt:Pa,_BinaryenCallAppendOperand:S7,_BinaryenCallInsertOperandAt:v7,_BinaryenCallRemoveOperandAt:I7,_BinaryenCallIsReturn:k7,_BinaryenCallSetReturn:F7,_BinaryenReturnCall:Md,_BinaryenCallIndirect:zd,_BinaryenCallIndirectGetTable:w7,_BinaryenCallIndirectSetTable:R7,_BinaryenCallIndirectGetTarget:Gu,_BinaryenCallIndirectSetTarget:Dd,_BinaryenCallIndirectGetNumOperands:Gn,_BinaryenCallIndirectGetOperandAt:Un,_BinaryenCallIndirectSetOperandAt:Ba,_BinaryenCallIndirectAppendOperand:C7,_BinaryenCallIndirectInsertOperandAt:P7,_BinaryenCallIndirectRemoveOperandAt:B7,_BinaryenCallIndirectIsReturn:N7,_BinaryenCallIndirectSetReturn:L7,_BinaryenReturnCallIndirect:Gd,_BinaryenLocalGet:Ud,_BinaryenLocalGetGetIndex:Na,_BinaryenLocalGetSetIndex:M7,_BinaryenLocalSet:Vd,_BinaryenLocalSetIsTee:La,_BinaryenLocalSetGetIndex:Ci,_BinaryenLocalSetSetIndex:z7,_BinaryenLocalSetGetValue:Dr,_BinaryenLocalSetSetValue:Ma,_BinaryenLocalTee:Od,_BinaryenGlobalGet:qd,_BinaryenGlobalGetGetName:za,_BinaryenGlobalGetSetName:D7,_BinaryenGlobalSet:Wd,_BinaryenGlobalSetGetName:Kd,_BinaryenGlobalSetSetName:G7,_BinaryenGlobalSetGetValue:Uu,_BinaryenGlobalSetSetValue:Hd,_BinaryenMemorySize:jd,_BinaryenMemoryGrow:Qd,_BinaryenMemoryGrowGetDelta:Vn,_BinaryenMemoryGrowSetDelta:Xd,_BinaryenLoad:$d,_BinaryenLoadIsAtomic:U7,_BinaryenLoadSetAtomic:V7,_BinaryenLoadIsSigned:Zd,_BinaryenLoadSetSigned:O7,_BinaryenLoadGetOffset:Yd,_BinaryenLoadSetOffset:q7,_BinaryenLoadGetBytes:Jd,_BinaryenLoadSetBytes:W7,_BinaryenLoadGetAlign:K7,_BinaryenLoadSetAlign:H7,_BinaryenLoadGetPtr:On,_BinaryenLoadSetPtr:eh,_BinaryenAtomicLoad:th,_BinaryenStore:rh,_BinaryenStoreIsAtomic:j7,_BinaryenStoreSetAtomic:Q7,_BinaryenStoreGetBytes:Da,_BinaryenStoreSetBytes:X7,_BinaryenStoreGetOffset:Ga,_BinaryenStoreSetOffset:$7,_BinaryenStoreGetAlign:Z7,_BinaryenStoreSetAlign:Y7,_BinaryenStoreGetPtr:Gr,_BinaryenStoreSetPtr:Ua,_BinaryenStoreGetValue:qn,_BinaryenStoreSetValue:ih,_BinaryenStoreGetValueType:J7,_BinaryenStoreSetValueType:ez,_BinaryenAtomicStore:nh,_BinaryenConst:Pi,_BinaryenConstGetValueI32:sh,_BinaryenConstSetValueI32:tz,_BinaryenConstGetValueF32:ah,_BinaryenConstSetValueF32:rz,_BinaryenConstGetValueF64:lh,_BinaryenConstSetValueF64:iz,_BinaryenConstGetValueV128:oh,_BinaryenConstSetValueV128:nz,_BinaryenUnary:uh,_BinaryenUnaryGetOp:ch,_BinaryenUnarySetOp:sz,_BinaryenUnaryGetValue:Wn,_BinaryenUnarySetValue:ph,_BinaryenWideIntAddSub:fh,_BinaryenWideIntMul:_h,_BinaryenBinary:dh,_BinaryenBinaryGetOp:hh,_BinaryenBinarySetOp:az,_BinaryenBinaryGetLeft:Kn,_BinaryenBinarySetLeft:mh,_BinaryenBinaryGetRight:Hn,_BinaryenBinarySetRight:yh,_BinaryenSelect:gh,_BinaryenSelectGetIfTrue:jn,_BinaryenSelectSetIfTrue:bh,_BinaryenSelectGetIfFalse:Qn,_BinaryenSelectSetIfFalse:xh,_BinaryenSelectGetCondition:Xn,_BinaryenSelectSetCondition:Eh,_BinaryenDrop:Vu,_BinaryenDropGetValue:$n,_BinaryenDropSetValue:Ah,_BinaryenReturn:Th,_BinaryenReturnGetValue:Ur,_BinaryenReturnSetValue:Va,_BinaryenNop:Sh,_BinaryenUnreachable:vh,_BinaryenAtomicRMW:Ih,_BinaryenAtomicRMWGetOp:lz,_BinaryenAtomicRMWSetOp:oz,_BinaryenAtomicRMWGetBytes:uz,_BinaryenAtomicRMWSetBytes:cz,_BinaryenAtomicRMWGetOffset:pz,_BinaryenAtomicRMWSetOffset:fz,_BinaryenAtomicRMWGetPtr:Ou,_BinaryenAtomicRMWSetPtr:kh,_BinaryenAtomicRMWGetValue:qu,_BinaryenAtomicRMWSetValue:Fh,_BinaryenAtomicCmpxchg:wh,_BinaryenAtomicCmpxchgGetBytes:_z,_BinaryenAtomicCmpxchgSetBytes:dz,_BinaryenAtomicCmpxchgGetOffset:hz,_BinaryenAtomicCmpxchgSetOffset:mz,_BinaryenAtomicCmpxchgGetPtr:Wu,_BinaryenAtomicCmpxchgSetPtr:Rh,_BinaryenAtomicCmpxchgGetExpected:Ku,_BinaryenAtomicCmpxchgSetExpected:Ch,_BinaryenAtomicCmpxchgGetReplacement:Hu,_BinaryenAtomicCmpxchgSetReplacement:Ph,_BinaryenAtomicWait:Bh,_BinaryenAtomicWaitGetPtr:ju,_BinaryenAtomicWaitSetPtr:Nh,_BinaryenAtomicWaitGetExpected:Qu,_BinaryenAtomicWaitSetExpected:Lh,_BinaryenAtomicWaitGetTimeout:Xu,_BinaryenAtomicWaitSetTimeout:Mh,_BinaryenAtomicWaitGetExpectedType:yz,_BinaryenAtomicWaitSetExpectedType:gz,_BinaryenAtomicNotify:zh,_BinaryenAtomicNotifyGetPtr:$u,_BinaryenAtomicNotifySetPtr:Dh,_BinaryenAtomicNotifyGetNotifyCount:Zu,_BinaryenAtomicNotifySetNotifyCount:Gh,_BinaryenAtomicFence:Uh,_BinaryenAtomicFenceGetOrder:bz,_BinaryenAtomicFenceSetOrder:xz,_BinaryenSIMDExtract:Vh,_BinaryenSIMDExtractGetOp:Ez,_BinaryenSIMDExtractSetOp:Az,_BinaryenSIMDExtractGetVec:Yu,_BinaryenSIMDExtractSetVec:Oh,_BinaryenSIMDExtractGetIndex:Tz,_BinaryenSIMDExtractSetIndex:Sz,_BinaryenSIMDReplace:qh,_BinaryenSIMDReplaceGetOp:vz,_BinaryenSIMDReplaceSetOp:Iz,_BinaryenSIMDReplaceGetVec:Ju,_BinaryenSIMDReplaceSetVec:Wh,_BinaryenSIMDReplaceGetIndex:kz,_BinaryenSIMDReplaceSetIndex:Fz,_BinaryenSIMDReplaceGetValue:ec,_BinaryenSIMDReplaceSetValue:Kh,_BinaryenSIMDShuffle:Hh,_BinaryenSIMDShuffleGetLeft:tc,_BinaryenSIMDShuffleSetLeft:jh,_BinaryenSIMDShuffleGetRight:rc,_BinaryenSIMDShuffleSetRight:Qh,_BinaryenSIMDShuffleGetMask:wz,_BinaryenSIMDShuffleSetMask:Rz,_BinaryenSIMDTernary:Xh,_BinaryenSIMDTernaryGetOp:Cz,_BinaryenSIMDTernarySetOp:Pz,_BinaryenSIMDTernaryGetA:ic,_BinaryenSIMDTernarySetA:$h,_BinaryenSIMDTernaryGetB:nc,_BinaryenSIMDTernarySetB:Zh,_BinaryenSIMDTernaryGetC:sc,_BinaryenSIMDTernarySetC:Yh,_BinaryenSIMDShift:Jh,_BinaryenSIMDShiftGetOp:Bz,_BinaryenSIMDShiftSetOp:Nz,_BinaryenSIMDShiftGetVec:ac,_BinaryenSIMDShiftSetVec:em,_BinaryenSIMDShiftGetShift:lc,_BinaryenSIMDShiftSetShift:tm,_BinaryenSIMDLoad:rm,_BinaryenSIMDLoadGetOp:Lz,_BinaryenSIMDLoadSetOp:Mz,_BinaryenSIMDLoadGetOffset:zz,_BinaryenSIMDLoadSetOffset:Dz,_BinaryenSIMDLoadGetAlign:Gz,_BinaryenSIMDLoadSetAlign:Uz,_BinaryenSIMDLoadGetPtr:oc,_BinaryenSIMDLoadSetPtr:im,_BinaryenSIMDLoadStoreLane:nm,_BinaryenSIMDLoadStoreLaneGetOp:Vz,_BinaryenSIMDLoadStoreLaneSetOp:Oz,_BinaryenSIMDLoadStoreLaneGetOffset:qz,_BinaryenSIMDLoadStoreLaneSetOffset:Wz,_BinaryenSIMDLoadStoreLaneGetAlign:Kz,_BinaryenSIMDLoadStoreLaneSetAlign:Hz,_BinaryenSIMDLoadStoreLaneGetIndex:jz,_BinaryenSIMDLoadStoreLaneSetIndex:Qz,_BinaryenSIMDLoadStoreLaneGetPtr:uc,_BinaryenSIMDLoadStoreLaneSetPtr:sm,_BinaryenSIMDLoadStoreLaneGetVec:cc,_BinaryenSIMDLoadStoreLaneSetVec:am,_BinaryenSIMDLoadStoreLaneIsStore:Xz,_BinaryenMemoryInit:$z,_BinaryenMemoryInitGetSegment:Zz,_BinaryenMemoryInitSetSegment:Yz,_BinaryenMemoryInitGetDest:pc,_BinaryenMemoryInitSetDest:lm,_BinaryenMemoryInitGetOffset:fc,_BinaryenMemoryInitSetOffset:om,_BinaryenMemoryInitGetSize:_c,_BinaryenMemoryInitSetSize:um,_BinaryenDataDrop:Jz,_BinaryenDataDropGetSegment:eD,_BinaryenDataDropSetSegment:tD,_BinaryenMemoryCopy:cm,_BinaryenMemoryCopyGetDest:dc,_BinaryenMemoryCopySetDest:pm,_BinaryenMemoryCopyGetSource:hc,_BinaryenMemoryCopySetSource:fm,_BinaryenMemoryCopyGetSize:mc,_BinaryenMemoryCopySetSize:_m,_BinaryenMemoryFill:dm,_BinaryenMemoryFillGetDest:yc,_BinaryenMemoryFillSetDest:hm,_BinaryenMemoryFillGetValue:gc,_BinaryenMemoryFillSetValue:mm,_BinaryenMemoryFillGetSize:bc,_BinaryenMemoryFillSetSize:ym,_BinaryenRefNull:gm,_BinaryenRefIsNull:bm,_BinaryenRefIsNullGetValue:xc,_BinaryenRefIsNullSetValue:xm,_BinaryenRefAs:Ec,_BinaryenRefAsGetOp:rD,_BinaryenRefAsSetOp:iD,_BinaryenRefAsGetValue:Ac,_BinaryenRefAsSetValue:Em,_BinaryenRefFunc:Am,_BinaryenRefFuncGetFunc:Tm,_BinaryenRefFuncSetFunc:nD,_BinaryenRefEq:Sm,_BinaryenRefEqGetLeft:Tc,_BinaryenRefEqSetLeft:vm,_BinaryenRefEqGetRight:Sc,_BinaryenRefEqSetRight:Im,_BinaryenTableGet:km,_BinaryenTableGetGetTable:sD,_BinaryenTableGetSetTable:aD,_BinaryenTableGetGetIndex:lD,_BinaryenTableGetSetIndex:oD,_BinaryenTableSet:Fm,_BinaryenTableSetGetTable:uD,_BinaryenTableSetSetTable:cD,_BinaryenTableSetGetIndex:pD,_BinaryenTableSetSetIndex:fD,_BinaryenTableSetGetValue:_D,_BinaryenTableSetSetValue:dD,_BinaryenTableSize:wm,_BinaryenTableSizeGetTable:hD,_BinaryenTableSizeSetTable:mD,_BinaryenTableGrow:Rm,_BinaryenTableGrowGetTable:yD,_BinaryenTableGrowSetTable:gD,_BinaryenTableGrowGetValue:bD,_BinaryenTableGrowSetValue:xD,_BinaryenTableGrowGetDelta:ED,_BinaryenTableGrowSetDelta:AD,_BinaryenTry:Cm,_BinaryenTryGetName:TD,_BinaryenTrySetName:SD,_BinaryenTryGetBody:vc,_BinaryenTrySetBody:Pm,_BinaryenTryGetNumCatchTags:vD,_BinaryenTryGetNumCatchBodies:Ic,_BinaryenTryGetCatchTagAt:ID,_BinaryenTrySetCatchTagAt:kD,_BinaryenTryAppendCatchTag:FD,_BinaryenTryInsertCatchTagAt:wD,_BinaryenTryRemoveCatchTagAt:RD,_BinaryenTryGetCatchBodyAt:kc,_BinaryenTrySetCatchBodyAt:Bm,_BinaryenTryAppendCatchBody:CD,_BinaryenTryInsertCatchBodyAt:PD,_BinaryenTryRemoveCatchBodyAt:BD,_BinaryenTryHasCatchAll:ND,_BinaryenTryGetDelegateTarget:LD,_BinaryenTrySetDelegateTarget:MD,_BinaryenTryIsDelegate:zD,_BinaryenThrow:Nm,_BinaryenThrowGetTag:Lm,_BinaryenThrowSetTag:DD,_BinaryenThrowGetNumOperands:Fc,_BinaryenThrowGetOperandAt:wc,_BinaryenThrowSetOperandAt:Mm,_BinaryenThrowAppendOperand:GD,_BinaryenThrowInsertOperandAt:UD,_BinaryenThrowRemoveOperandAt:VD,_BinaryenRethrow:zm,_BinaryenRethrowGetTarget:OD,_BinaryenRethrowSetDepth:qD,_BinaryenTupleMake:Dm,_BinaryenTupleMakeGetNumOperands:Rc,_BinaryenTupleMakeGetOperandAt:Cc,_BinaryenTupleMakeSetOperandAt:Gm,_BinaryenTupleMakeAppendOperand:WD,_BinaryenTupleMakeInsertOperandAt:KD,_BinaryenTupleMakeRemoveOperandAt:HD,_BinaryenTupleExtract:Um,_BinaryenTupleExtractGetTuple:Pc,_BinaryenTupleExtractSetTuple:Vm,_BinaryenTupleExtractGetIndex:jD,_BinaryenTupleExtractSetIndex:QD,_BinaryenPop:Om,_BinaryenRefI31:qm,_BinaryenRefI31GetValue:Bc,_BinaryenRefI31SetValue:Wm,_BinaryenI31Get:Km,_BinaryenI31GetGetI31:Nc,_BinaryenI31GetSetI31:Hm,_BinaryenI31GetIsSigned:XD,_BinaryenI31GetSetSigned:$D,_BinaryenCallRef:ZD,_BinaryenCallRefGetNumOperands:Lc,_BinaryenCallRefGetOperandAt:Mc,_BinaryenCallRefSetOperandAt:jm,_BinaryenCallRefAppendOperand:YD,_BinaryenCallRefInsertOperandAt:JD,_BinaryenCallRefRemoveOperandAt:eG,_BinaryenCallRefGetTarget:zc,_BinaryenCallRefSetTarget:Qm,_BinaryenCallRefIsReturn:tG,_BinaryenCallRefSetReturn:rG,_BinaryenRefTest:iG,_BinaryenRefTestGetRef:Dc,_BinaryenRefTestSetRef:Xm,_BinaryenRefTestGetCastType:nG,_BinaryenRefTestSetCastType:sG,_BinaryenRefCast:aG,_BinaryenRefCastGetRef:Gc,_BinaryenRefCastSetRef:$m,_BinaryenBrOn:lG,_BinaryenBrOnGetOp:oG,_BinaryenBrOnSetOp:uG,_BinaryenBrOnGetName:Zm,_BinaryenBrOnSetName:cG,_BinaryenBrOnGetRef:Uc,_BinaryenBrOnSetRef:Ym,_BinaryenBrOnGetCastType:pG,_BinaryenBrOnSetCastType:fG,_BinaryenStructNew:_G,_BinaryenStructNewGetNumOperands:Vc,_BinaryenStructNewGetOperandAt:Oc,_BinaryenStructNewSetOperandAt:Jm,_BinaryenStructNewAppendOperand:dG,_BinaryenStructNewInsertOperandAt:hG,_BinaryenStructNewRemoveOperandAt:mG,_BinaryenStructGet:yG,_BinaryenStructGetGetIndex:ey,_BinaryenStructGetSetIndex:gG,_BinaryenStructGetGetRef:qc,_BinaryenStructGetSetRef:ty,_BinaryenStructGetIsSigned:bG,_BinaryenStructGetSetSigned:xG,_BinaryenStructSet:EG,_BinaryenStructSetGetIndex:ry,_BinaryenStructSetSetIndex:AG,_BinaryenStructSetGetRef:Wc,_BinaryenStructSetSetRef:iy,_BinaryenStructSetGetValue:Kc,_BinaryenStructSetSetValue:ny,_BinaryenArrayNew:TG,_BinaryenArrayNewGetInit:Hc,_BinaryenArrayNewSetInit:sy,_BinaryenArrayNewGetSize:jc,_BinaryenArrayNewSetSize:ay,_BinaryenArrayNewFixed:SG,_BinaryenArrayNewFixedGetNumValues:Qc,_BinaryenArrayNewFixedGetValueAt:Xc,_BinaryenArrayNewFixedSetValueAt:ly,_BinaryenArrayNewFixedAppendValue:vG,_BinaryenArrayNewFixedInsertValueAt:IG,_BinaryenArrayNewFixedRemoveValueAt:kG,_BinaryenArrayNewData:FG,_BinaryenArrayNewDataGetSegment:wG,_BinaryenArrayNewDataSetSegment:RG,_BinaryenArrayNewDataGetOffset:CG,_BinaryenArrayNewDataSetOffset:PG,_BinaryenArrayNewDataGetSize:BG,_BinaryenArrayNewDataSetSize:NG,_BinaryenArrayNewElem:LG,_BinaryenArrayNewElemGetSegment:MG,_BinaryenArrayNewElemSetSegment:zG,_BinaryenArrayNewElemGetOffset:DG,_BinaryenArrayNewElemSetOffset:GG,_BinaryenArrayNewElemGetSize:UG,_BinaryenArrayNewElemSetSize:VG,_BinaryenArrayGet:OG,_BinaryenArrayGetGetRef:$c,_BinaryenArrayGetSetRef:oy,_BinaryenArrayGetGetIndex:Zc,_BinaryenArrayGetSetIndex:uy,_BinaryenArrayGetIsSigned:qG,_BinaryenArrayGetSetSigned:WG,_BinaryenArraySet:KG,_BinaryenArraySetGetRef:Yc,_BinaryenArraySetSetRef:cy,_BinaryenArraySetGetIndex:Jc,_BinaryenArraySetSetIndex:py,_BinaryenArraySetGetValue:ep,_BinaryenArraySetSetValue:fy,_BinaryenArrayLen:HG,_BinaryenArrayLenGetRef:tp,_BinaryenArrayLenSetRef:_y,_BinaryenArrayFill:jG,_BinaryenArrayFillGetRef:QG,_BinaryenArrayFillSetRef:XG,_BinaryenArrayFillGetIndex:$G,_BinaryenArrayFillSetIndex:ZG,_BinaryenArrayFillGetValue:YG,_BinaryenArrayFillSetValue:JG,_BinaryenArrayFillGetSize:e9,_BinaryenArrayFillSetSize:t9,_BinaryenArrayCopy:r9,_BinaryenArrayCopyGetDestRef:rp,_BinaryenArrayCopySetDestRef:dy,_BinaryenArrayCopyGetDestIndex:ip,_BinaryenArrayCopySetDestIndex:hy,_BinaryenArrayCopyGetSrcRef:np,_BinaryenArrayCopySetSrcRef:my,_BinaryenArrayCopyGetSrcIndex:sp,_BinaryenArrayCopySetSrcIndex:yy,_BinaryenArrayCopyGetLength:ap,_BinaryenArrayCopySetLength:gy,_BinaryenArrayInitData:i9,_BinaryenArrayInitDataGetSegment:n9,_BinaryenArrayInitDataSetSegment:s9,_BinaryenArrayInitDataGetRef:a9,_BinaryenArrayInitDataSetRef:l9,_BinaryenArrayInitDataGetIndex:o9,_BinaryenArrayInitDataSetIndex:u9,_BinaryenArrayInitDataGetOffset:c9,_BinaryenArrayInitDataSetOffset:p9,_BinaryenArrayInitDataGetSize:f9,_BinaryenArrayInitDataSetSize:_9,_BinaryenArrayInitElem:d9,_BinaryenArrayInitElemGetSegment:h9,_BinaryenArrayInitElemSetSegment:m9,_BinaryenArrayInitElemGetRef:y9,_BinaryenArrayInitElemSetRef:g9,_BinaryenArrayInitElemGetIndex:b9,_BinaryenArrayInitElemSetIndex:x9,_BinaryenArrayInitElemGetOffset:E9,_BinaryenArrayInitElemSetOffset:A9,_BinaryenArrayInitElemGetSize:T9,_BinaryenArrayInitElemSetSize:S9,_BinaryenStringNew:v9,_BinaryenStringNewGetOp:I9,_BinaryenStringNewSetOp:k9,_BinaryenStringNewGetRef:lp,_BinaryenStringNewSetRef:by,_BinaryenStringNewGetStart:op,_BinaryenStringNewSetStart:xy,_BinaryenStringNewGetEnd:up,_BinaryenStringNewSetEnd:Ey,_BinaryenStringConst:F9,_BinaryenStringConstGetString:w9,_BinaryenStringConstSetString:R9,_BinaryenStringMeasure:C9,_BinaryenStringMeasureGetOp:P9,_BinaryenStringMeasureSetOp:B9,_BinaryenStringMeasureGetRef:cp,_BinaryenStringMeasureSetRef:Ay,_BinaryenStringEncode:N9,_BinaryenStringEncodeGetOp:L9,_BinaryenStringEncodeSetOp:M9,_BinaryenStringEncodeGetStr:pp,_BinaryenStringEncodeSetStr:Ty,_BinaryenStringEncodeGetArray:fp,_BinaryenStringEncodeSetArray:Sy,_BinaryenStringEncodeGetStart:_p,_BinaryenStringEncodeSetStart:vy,_BinaryenStringConcat:z9,_BinaryenStringConcatGetLeft:dp,_BinaryenStringConcatSetLeft:Iy,_BinaryenStringConcatGetRight:hp,_BinaryenStringConcatSetRight:ky,_BinaryenStringEq:mp,_BinaryenStringEqGetOp:D9,_BinaryenStringEqSetOp:G9,_BinaryenStringEqGetLeft:yp,_BinaryenStringEqSetLeft:Fy,_BinaryenStringEqGetRight:gp,_BinaryenStringEqSetRight:wy,_BinaryenStringWTF16Get:U9,_BinaryenStringWTF16GetGetRef:bp,_BinaryenStringWTF16GetSetRef:Ry,_BinaryenStringWTF16GetGetPos:xp,_BinaryenStringWTF16GetSetPos:Cy,_BinaryenStringSliceWTF:V9,_BinaryenStringSliceWTFGetRef:Ep,_BinaryenStringSliceWTFSetRef:Py,_BinaryenStringSliceWTFGetStart:Ap,_BinaryenStringSliceWTFSetStart:By,_BinaryenStringSliceWTFGetEnd:Tp,_BinaryenStringSliceWTFSetEnd:Ny,_BinaryenAddFunction:Bi,_BinaryenGetFunction:Ni,_BinaryenRemoveFunction:Zn,_BinaryenGetNumFunctions:Ly,_BinaryenGetFunctionByIndex:My,_BinaryenFunctionGetName:Li,_BinaryenFunctionGetParams:Yn,_BinaryenFunctionGetResults:Jn,_BinaryenFunctionGetNumVars:Oa,_BinaryenFunctionGetVar:qa,_BinaryenFunctionAddVar:O9,_BinaryenFunctionGetNumLocals:Sp,_BinaryenFunctionHasLocalName:q9,_BinaryenFunctionGetLocalName:W9,_BinaryenFunctionSetLocalName:zy,_BinaryenFunctionGetBody:mr,_BinaryenFunctionSetBody:Wa,_BinaryenFunctionGetType:K9,_BinaryenFunctionSetType:H9,_BinaryenFunctionOptimize:j9,_BinaryenFunctionRunPasses:Dy,_BinaryenFunctionSetDebugLocation:Gy,_BinaryenAddFunctionImport:Uy,_BinaryenAddTableImport:Vy,_BinaryenAddMemoryImport:Oy,_BinaryenAddGlobalImport:qy,_BinaryenAddTagImport:Wy,_BinaryenAddFunctionExport:Ka,_BinaryenAddTableExport:Ky,_BinaryenAddMemoryExport:Hy,_BinaryenAddGlobalExport:jy,_BinaryenAddTagExport:Qy,_BinaryenGetExport:Ha,_BinaryenRemoveExport:ja,_BinaryenGetNumExports:Q9,_BinaryenGetExportByIndex:X9,_BinaryenExportGetKind:Xy,_BinaryenExportGetName:$y,_BinaryenExportGetValue:Zy,_BinaryenAddGlobal:Yy,_BinaryenGetGlobal:vp,_BinaryenRemoveGlobal:Jy,_BinaryenGetNumGlobals:eg,_BinaryenGetGlobalByIndex:tg,_BinaryenGlobalGetName:rg,_BinaryenGlobalGetType:ig,_BinaryenGlobalIsMutable:ng,_BinaryenGlobalGetInitExpr:Qa,_BinaryenAddTag:sg,_BinaryenGetTag:ag,_BinaryenRemoveTag:lg,_BinaryenTagGetName:og,_BinaryenTagGetParams:ug,_BinaryenTagGetResults:cg,_BinaryenAddTable:Ip,_BinaryenRemoveTable:$9,_BinaryenGetNumTables:Z9,_BinaryenGetTable:kp,_BinaryenGetTableByIndex:Y9,_BinaryenTableGetName:J9,_BinaryenTableSetName:e5,_BinaryenTableGetInitial:t5,_BinaryenTableSetInitial:pg,_BinaryenTableHasMax:r5,_BinaryenTableGetMax:i5,_BinaryenTableSetMax:fg,_BinaryenTableGetType:n5,_BinaryenTableSetType:s5,_BinaryenAddActiveElementSegment:_g,_BinaryenAddPassiveElementSegment:a5,_BinaryenRemoveElementSegment:l5,_BinaryenGetNumElementSegments:o5,_BinaryenGetElementSegment:u5,_BinaryenGetElementSegmentByIndex:c5,_BinaryenSetMemory:dg,_BinaryenGetNumMemorySegments:p5,_BinaryenGetMemorySegmentByteOffset:f5,_BinaryenGetMemorySegmentByteLength:_5,_BinaryenCopyMemorySegmentData:d5,_BinaryenAddDataSegment:h5,_BinaryenSetStart:hg,_BinaryenGetStart:m5,_BinaryenModuleParse:y5,_BinaryenModulePrint:g5,_BinaryenModulePrintAsmjs:b5,_BinaryenModuleValidate:mg,_BinaryenModuleOptimize:x5,_BinaryenModuleRunPasses:yg,_BinaryenSizeofAllocateAndWriteResult:gg,_BinaryenModuleAllocateAndWrite:bg,_BinaryenModuleAllocateAndWriteText:xg,_BinaryenModuleAllocateAndWriteStackIR:Eg,_BinaryenModuleRead:Ag,_BinaryenModuleReadWithFeatures:E5,_BinaryenModuleInterpret:Tg,_BinaryenModuleAddDebugInfoFileName:Sg,_BinaryenModuleGetDebugInfoFileName:vg,_BinaryenModuleGetFeatures:Ig,_BinaryenModuleSetFeatures:kg,_BinaryenAddCustomSection:Fg,_BinaryenExpressionGetSideEffects:wg,_RelooperCreate:Rg,_RelooperAddBlock:Cg,_RelooperAddBranch:Pg,_RelooperAddBlockWithSwitch:Bg,_RelooperAddBranchForSwitch:Ng,_RelooperRenderAndDispose:Lg,_ExpressionRunnerCreate:Mg,_ExpressionRunnerSetLocalValue:A5,_ExpressionRunnerSetGlobalValue:T5,_ExpressionRunnerRunAndDispose:zg,_TypeBuilderCreate:Dg,_TypeBuilderGrow:Fp,_TypeBuilderGetSize:Xa,_TypeBuilderSetSignatureType:Gg,_TypeBuilderSetStructType:Ug,_TypeBuilderSetArrayType:S5,_TypeBuilderGetTempHeapType:wp,_TypeBuilderGetTempTupleType:Rp,_TypeBuilderGetTempRefType:Mi,_TypeBuilderSetSubType:Vg,_TypeBuilderSetOpen:v5,_TypeBuilderCreateRecGroup:I5,_TypeBuilderBuildAndDispose:Og,_BinaryenModuleSetTypeName:qg,_BinaryenModuleSetFieldName:Wg,_BinaryenGetOptimizeLevel:Kg,_BinaryenSetOptimizeLevel:Hg,_BinaryenGetShrinkLevel:jg,_BinaryenSetShrinkLevel:Qg,_BinaryenGetDebugInfo:Xg,_BinaryenSetDebugInfo:$g,_BinaryenGetTrapsNeverHappen:Zg,_BinaryenSetTrapsNeverHappen:Yg,_BinaryenGetClosedWorld:Jg,_BinaryenSetClosedWorld:eb,_BinaryenGetLowMemoryUnused:tb,_BinaryenSetLowMemoryUnused:rb,_BinaryenGetZeroFilledMemory:ib,_BinaryenSetZeroFilledMemory:nb,_BinaryenGetFastMath:sb,_BinaryenSetFastMath:ab,_BinaryenGetGenerateStackIR:lb,_BinaryenSetGenerateStackIR:ob,_BinaryenGetOptimizeStackIR:ub,_BinaryenSetOptimizeStackIR:cb,_BinaryenGetPassArgument:pb,_BinaryenSetPassArgument:fb,_BinaryenClearPassArguments:_b,_BinaryenHasPassToSkip:k5,_BinaryenAddPassToSkip:F5,_BinaryenClearPassesToSkip:w5,_BinaryenGetAlwaysInlineMaxSize:db,_BinaryenSetAlwaysInlineMaxSize:hb,_BinaryenGetFlexibleInlineMaxSize:mb,_BinaryenSetFlexibleInlineMaxSize:yb,_BinaryenGetOneCallerInlineMaxSize:gb,_BinaryenSetOneCallerInlineMaxSize:bb,_BinaryenGetAllowInliningFunctionsWithLoops:xb,_BinaryenSetAllowInliningFunctionsWithLoops:Eb,_malloc:kt,_free:ie,__i32_store8:qe,__i32_store16:R5,__i32_store:$a,__f32_store:C5,__f64_store:P5,__i32_load8_s:B5,__i32_load8_u:Vr,__i32_load16_s:N5,__i32_load16_u:L5,__i32_load:yr,__f32_load:M5,__f64_load:z5}=Cn;function R1(i){return BigInt(i.high|0)<<32n|BigInt(i.low>>>0)}function C1(i){return w1.fromBits(Number(i&0xFFFFFFFFn)|0,Number(i>>32n)|0)}function Ab(i,r){return Cn._BinaryenLiteralInt64(i,R1(r))}function Cp(i){return C1(Cn._BinaryenConstGetValueI64(i))}var Sb="data:application/wasm;base64,AGFzbQEAAAABBwFgAnx8AXwDAgEABQMBAAEGDQF8AUQAAAAAAAAAAAsHCwEHZjY0X3BvdwAADAKCAQr2DAHzDAMFfgN/CXwCfCABmUQAAAAAAAAAQGUEQCAAIACiIAFEAAAAAAAAAEBhDQEaIACfmUQAAAAAAADwfyAARAAAAAAAAPD/YhsgAUQAAAAAAADgP2ENARpEAAAAAAAA8D8gAKMgAUQAAAAAAADwv2ENARogACABRAAAAAAAAPA/YQ0BGkQAAAAAAADwPyABRAAAAAAAAAAAYQ0BGgsCfCABvSIFQjSIIQQgAL0iAkI0iCIDQgF9Qv4PWgR/QQEFIARC/w+DQr4HfUKAAVoLBEAgBUIBhiIGQgF9Qv////////9vWgRARAAAAAAAAPA/IAZQDQIaRAAAAAAAAPh/IAJCgICAgICAgPg/UQ0CGiAAIAGgIAZCgICAgICAgHBWIAJCAYYiAkKAgICAgICAcFZyDQIaRAAAAAAAAPh/IAJCgICAgICAgPD/AFENAhpEAAAAAAAAAAAgBUI/iFAgAkKAgICAgICA8P8AVEYNAhogASABogwCCyACQgGGQgF9Qv////////9vWgRARAAAAAAAAPA/IAAgAKIiAJogACACQj+IpwR/An9BACAFQjSIQv8PgyICQv8HVA0AGkECIAJCswhWDQAaQQAgBUIBQrMIIAJ9hiICQgF9g0IAUg0AGkEBIAIgBYNCAFINABpBAgtBAUYFQQALGyIAoyAAIAVCAFMbDAILIAJCAFMEQAJ/QQAgBUI0iEL/D4MiBkL/B1QNABpBAiAGQrMIVg0AGkEAIAVCAUKzCCAGfYYiBkIBfYNCAFINABpBASAFIAaDQgBSDQAaQQILIgdFBEAgACAAoSIAIACjDAMLIANC/w+DIQNBgIAQQQAgB0EBRhshCCACQv///////////wCDIQILIARC/w+DIgZCvgd9QoABWgRARAAAAAAAAPA/IAJCgICAgICAgPg/UQ0CGkQAAAAAAADwPyAGQr4HVA0CGkQAAAAAAADwf0QAAAAAAAAAACAEQoAQVCACQoCAgICAgID4P1ZGGwwCCyADUARAIABEAAAAAAAAMEOivUL///////////8Ag0KAgICAgICAoAN9IQILCyACIAJCgICAgNCqpfM/fSICQoCAgICAgIB4g30iA0KAgICACHxCgICAgHCDvyIKIAJCLYhC/wCDp0EFdEGACGoiBysDACILokQAAAAAAADwv6AhDSACQjSHuSIARAA4+v5CLuY/oiAHKwMQoCIOIA0gA78gCqEgC6IiD6AiCqAhCyAKIApEAAAAAAAA4L+iIhCiIQwgCyANIA1EAAAAAAAA4L+iIhGiIhKgIg0gDSAARDBnx5NX8y49oiAHKwMYoCAOIAuhIAqgoCAPIBAgEaCioCALIA2hIBKgoCAKIAyiIApEBgAAAAAA4D+iRGBVVVVVVeW/oCAMIApEeqQpVVVV5b+iRE5VWZmZmek/oCAMIApEwz8miysA8D+iROlFSJtbSfK/oKKgoqCioCIAoCIKoSAAoCQAAnwgBUKAgIBAg78iACAKvUKAgIBAg78iC6IiDL0iAkI0iKdB/w9xIgdByQdrIglBP08EQEQAAAAAAADwv0QAAAAAAADwPyAIGyAJQYCAgIB4Tw0BGkQAAAAAAAAAgEQAAAAAAAAAACAIG0QAAAAAAADw/0QAAAAAAADwfyAIGyACQgBTGyAHQYkITw0BGkEAIQcLIAxE/oIrZUcVZ0CiRAAAAAAAADhDoCINvSICQv8Ag0IBhqdBA3RBgChqIgkpAwggAiAIrXxCLYZ8IQMgDCANRAAAAAAAADjDoCIMRAAA+v5CLna/oqAgDEQ6O568mvcMvaKgIAEgAKEgC6IgASAKIAuhIwCgoqCgIgAgAKIhASAJKwMAIACgIAEgAEQ8VFVVVVXFP6JEvf3/////3z+goqAgASABoiAARBfQpGcREYE/okSRKxfPVVWlP6CioCEAIAdFBEACfCACQoCAgIAIg1AEQCADQoCAgICAgICIP32/IgEgASAAoqBEAAAAAAAAAH+iDAELIANCgICAgICAgPA/fCICvyIBIACiIQAgASAAoCIKmUQAAAAAAADwP2MEfCACQoCAgICAgICAgH+Dv0QAAAAAAADwPyAKpiILIAqgIgwgCyAMoSAKoCABIAqhIACgoKAgC6EiACAARAAAAAAAAAAAYRsFIAoLRAAAAAAAABAAogsMAQsgA78iASABIACioAsLCwsLxSyCAQBBhQgLA6D2PwBBkQgLF8i58oIs1r+AVjcoJLT6PAAAAAAAgPY/AEGxCAsXCFi/vdHVvyD34NgIpRy9AAAAAABg9j8AQdEICxdYRRd3dtW/bVC21aRiI70AAAAAAED2PwBB8QgLF/gth60a1b/VZ7Ce5ITmvAAAAAAAIPY/AEGRCQsXeHeVX77Uv+A+KZNpGwS9AAAAAAAA9j8AQbEJCxdgHMKLYdS/zIRMSC/YEz0AAAAAAOD1PwBB0QkLF6iGhjAE1L86C4Lt80LcPAAAAAAAwPU/AEHxCQsXSGlVTKbTv2CUUYbGsSA9AAAAAACg9T8AQZEKCxeAmJrdR9O/koDF1E1ZJT0AAAAAAID1PwBBsQoLFyDhuuLo0r/YK7eZHnsmPQAAAAAAYPU/AEHRCgsXiN4TWonSvz+wz7YUyhU9AAAAAABg9T8AQfEKCxeI3hNaidK/P7DPthTKFT0AAAAAAED1PwBBkQsLF3jP+0Ep0r922lMoJFoWvQAAAAAAIPU/AEGxCwsXmGnBmMjRvwRU52i8rx+9AAAAAAAA9T8AQdELCxeoq6tcZ9G/8KiCM8YfHz0AAAAAAOD0PwBB8QsLF0iu+YsF0b9mWgX9xKgmvQAAAAAAwPQ/AEGRDAsXkHPiJKPQvw4D9H7uawy9AAAAAACg9D8AQbEMCxfQtJQlQNC/fy30nrg28LwAAAAAAKD0PwBB0QwLF9C0lCVA0L9/LfSeuDbwvAAAAAAAgPQ/AEHxDAsXQF5tGLnPv4c8masqVw09AAAAAABg9D8AQZENCxdg3Mut8M6/JK+GnLcmKz0AAAAAAED0PwBBsQ0LF/Aqbgcnzr8Q/z9UTy8XvQAAAAAAIPQ/AEHRDQsXwE9rIVzNvxtoyruRuiE9AAAAAAAA9D8AQfENCxegmsf3j8y/NISfaE95Jz0AAAAAAAD0PwBBkQ4LF6Cax/ePzL80hJ9oT3knPQAAAAAA4PM/AEGxDgsXkC10hsLLv4+3izGwThk9AAAAAADA8z8AQdEOCxfAgE7J88q/ZpDNP2NOujwAAAAAAKDzPwBB8Q4LF7DiH7wjyr/qwUbcZIwlvQAAAAAAoPM/AEGRDwsXsOIfvCPKv+rBRtxkjCW9AAAAAACA8z8AQbEPCxdQ9JxaUsm/49TBBNnRKr0AAAAAAGDzPwBB0Q8LF9AgZaB/yL8J+tt/v70rPQAAAAAAQPM/AEHxDwsX4BACiavHv1hKU3KQ2ys9AAAAAABA8z8AQZEQCxfgEAKJq8e/WEpTcpDbKz0AAAAAACDzPwBBsRALF9AZ5w/Wxr9m4rKjauQQvQAAAAAAAPM/AEHREAsXkKdwMP/FvzlQEJ9Dnh69AAAAAAAA8z8AQfEQCxeQp3Aw/8W/OVAQn0OeHr0AAAAAAODyPwBBkRELF7Ch4+Umxb+PWweQi94gvQAAAAAAwPI/AEGxEQsXgMtsK03Evzx4NWHBDBc9AAAAAADA8j8AQdERCxeAy2wrTcS/PHg1YcEMFz0AAAAAAKDyPwBB8RELF5AeIPxxw786VCdNhnjxPAAAAAAAgPI/AEGREgsX8B/4UpXCvwjEcRcwjSS9AAAAAABg8j8AQbESCxdgL9Uqt8G/lqMRGKSALr0AAAAAAGDyPwBB0RILF2Av1Sq3wb+WoxEYpIAuvQAAAAAAQPI/AEHxEgsXkNB8ftfAv/Rb6IiWaQo9AAAAAABA8j8AQZETCxeQ0Hx+18C/9FvoiJZpCj0AAAAAACDyPwBBsRMLF+DbMZHsv7/yM6NcVHUlvQAAAAAAAPI/AEHSEwsWK24HJ76/PADwKiw0Kj0AAAAAAADyPwBB8hMLFituBye+vzwA8CosNCo9AAAAAADg8T8AQZEUCxfAW49UXry/Br5fWFcMHb0AAAAAAMDxPwBBsRQLF+BKOm2Sur/IqlvoNTklPQAAAAAAwPE/AEHRFAsX4Eo6bZK6v8iqW+g1OSU9AAAAAACg8T8AQfEUCxegMdZFw7i/aFYvTSl8Ez0AAAAAAKDxPwBBkRULF6Ax1kXDuL9oVi9NKXwTPQAAAAAAgPE/AEGxFQsXYOWK0vC2v9pzM8k3lya9AAAAAABg8T8AQdEVCxcgBj8HG7W/V17GYVsCHz0AAAAAAGDxPwBB8RULFyAGPwcbtb9XXsZhWwIfPQAAAAAAQPE/AEGRFgsX4BuW10Gzv98T+czaXiw9AAAAAABA8T8AQbEWCxfgG5bXQbO/3xP5zNpeLD0AAAAAACDxPwBB0RYLF4Cj7jZlsb8Jo492XnwUPQAAAAAAAPE/AEHxFgsXgBHAMAqvv5GONoOeWS09AAAAAAAA8T8AQZEXCxeAEcAwCq+/kY42g55ZLT0AAAAAAODwPwBBsRcLF4AZcd1Cq79McNbleoIcPQAAAAAA4PA/AEHRFwsXgBlx3UKrv0xw1uV6ghw9AAAAAADA8D8AQfEXCxfAMvZYdKe/7qHyNEb8LL0AAAAAAMDwPwBBkRgLF8Ay9lh0p7/uofI0RvwsvQAAAAAAoPA/AEGxGAsXwP65h56jv6r+JvW3AvU8AAAAAACg8D8AQdEYCxfA/rmHnqO/qv4m9bcC9TwAAAAAAIDwPwBB8hgLFngOm4Kfv+QJfnwmgCm9AAAAAACA8D8AQZIZCxZ4DpuCn7/kCX58JoApvQAAAAAAYPA/AEGxGQsXgNUHG7mXvzmm+pNUjSi9AAAAAABA8D8AQdIZCxb8sKjAj7+cptP2fB7fvAAAAAAAQPA/AEHyGQsW/LCowI+/nKbT9nwe37wAAAAAACDwPwBBkhoLFhBrKuB/v+RA2g0/4hm9AAAAAAAg8D8AQbIaCxYQayrgf7/kQNoNP+IZvQAAAAAAAPA/AEHmGgsC8D8AQYUbCwPA7z8AQZIbCxaJdRUQgD/oK52Za8cQvQAAAAAAgO8/AEGxGwsXgJNYViCQP9L34gZb3CO9AAAAAABA7z8AQdIbCxbJKCVJmD80DFoyuqAqvQAAAAAAAO8/AEHxGwsXQOeJXUGgP1PX8VzAEQE9AAAAAADA7j8AQZIcCxYu1K5mpD8o/b11cxYsvQAAAAAAgO4/AEGxHAsXwJ8UqpSoP30mWtCVeRm9AAAAAABA7j8AQdEcCxfA3c1zy6w/ByjYR/JoGr0AAAAAACDuPwBB8RwLF8AGwDHqrj97O8lPPhEOvQAAAAAA4O0/AEGRHQsXYEbRO5exP5ueDVZdMiW9AAAAAACg7T8AQbEdCxfg0af1vbM/107bpV7ILD0AAAAAAGDtPwBB0R0LF6CXTVrptT8eHV08BmksvQAAAAAAQO0/AEHxHQsXwOoK0wC3PzLtnamNHuw8AAAAAAAA7T8AQZEeCxdAWV1eM7k/2ke9OlwRIz0AAAAAAMDsPwBBsR4LF2Ctjchquz/laPcrgJATvQAAAAAAoOw/AEHRHgsXQLwBWIi8P9OsWsbRRiY9AAAAAABg7D8AQfEeCxcgCoM5x74/4EXmr2jALb0AAAAAAEDsPwBBkR8LF+DbOZHovz/9CqFP1jQlvQAAAAAAAOw/AEGxHwsX4CeCjhfBP/IHLc547yE9AAAAAADg6z8AQdEfCxfwI34rqsE/NJk4RI6nLD0AAAAAAKDrPwBB8R8LF4CGDGHRwj+htIHLbJ0DPQAAAAAAgOs/AEGRIAsXkBWw/GXDP4lySyOoL8Y8AAAAAABA6z8AQbEgCxewM4M9kcQ/eLb9VHmDJT0AAAAAACDrPwBB0SALF7Ch5OUnxT/HfWnl6DMmPQAAAAAA4Oo/AEHxIAsXEIy+TlfGP3guPCyLzxk9AAAAAADA6j8AQZEhCxdwdYsS8MY/4SGc5Y0RJb0AAAAAAKDqPwBBsSELF1BEhY2Jxz8FQ5FwEGYcvQAAAAAAYOo/AEHSIQsWOeuvvsg/0SzpqlQ9B70AAAAAAEDqPwBB8iELFvfcWlrJP2//oFgo8gc9AAAAAAAA6j8AQZEiCxfgijztk8o/aSFWUENyKL0AAAAAAODpPwBBsSILF9BbV9gxyz+q4axOjTUMvQAAAAAAwOk/AEHRIgsX4Ds4h9DLP7YSVFnESy29AAAAAACg6T8AQfEiCxcQ8Mb7b8w/0iuWxXLs8bwAAAAAAGDpPwBBkSMLF5DUsD2xzT81sBX3Kv8qvQAAAAAAQOk/AEGxIwsXEOf/DlPOPzD0QWAnEsI8AAAAAAAg6T8AQdIjCxbd5K31zj8RjrtlFSHKvAAAAAAAAOk/AEHxIwsXsLNsHJnPPzDfDMrsyxs9AAAAAADA6D8AQZEkCxdYTWA4cdA/kU7tFtuc+DwAAAAAAKDoPwBBsSQLF2BhZy3E0D/p6jwWixgnPQAAAAAAgOg/AEHRJAsX6CeCjhfRPxzwpWMOISy9AAAAAABg6D8AQfEkCxf4rMtca9E/gRal982aKz0AAAAAAEDoPwBBkSULF2haY5m/0T+3vUdR7aYsPQAAAAAAIOg/AEGxJQsXuA5tRRTSP+q6Rrrehwo9AAAAAADg5z8AQdElCxeQ3HzwvtI/9ARQSvqcKj0AAAAAAMDnPwBB8SULF2DT4fEU0z+4PCHTeuIovQAAAAAAoOc/AEGRJgsXEL52Z2vTP8h38bDNbhE9AAAAAACA5z8AQbEmCxcwM3dSwtM/XL0GtlQ7GD0AAAAAAGDnPwBB0SYLF+jVI7QZ1D+d4JDsNuQIPQAAAAAAQOc/AEHxJgsXyHHCjXHUP3XWZwnOJy+9AAAAAAAg5z8AQZEnCxcwF57gydQ/pNgKG4kgLr0AAAAAAADnPwBBsScLF6A4B64i1T9Zx2SBcL4uPQAAAAAA4OY/AEHRJwsX0MhT93vVP+9AXe7trR89AAAAAADA5j8AQfEnCw9gWd+91dU/3GWkCCoLCr0AQY4oC/IP8D9uv4gaTzubPDUz+6k99u8/XdzYnBNgcbxhgHc+muzvP9FmhxB6XpC8hX9u6BXj7z8T9mc1UtKMPHSFFdOw2e8/+o75I4DOi7ze9t0pa9DvP2HI5mFO92A8yJt1GEXH7z+Z0zNb5KOQPIPzxso+vu8/bXuDXaaalzwPiflsWLXvP/zv/ZIatY4890dyK5Ks7z/RnC9wPb4+PKLR0zLso+8/C26QiTQDarwb0/6vZpvvPw69LypSVpW8UVsS0AGT7z9V6k6M74BQvMwxbMC9iu8/FvTVuSPJkbzgLamumoLvP69VXOnj04A8UY6lyJh67z9Ik6XqFRuAvHtRfTy4cu8/PTLeVfAfj7zqjYw4+WrvP79TEz+MiYs8dctv61tj7z8m6xF2nNmWvNRcBITgW+8/YC86PvfsmjyquWgxh1TvP504hsuC54+8Hdn8IlBN7z+Nw6ZEQW+KPNaMYog7Ru8/fQTksAV6gDyW3H2RST/vP5SoqOP9jpY8OGJ1bno47z99SHTyGF6HPD+msk/OMe8/8ucfmCtHgDzdfOJlRSvvP14IcT97uJa8gWP14d8k7z8xqwlt4feCPOHeH/WdHu8/+r9vGpshPbyQ2drQfxjvP7QKDHKCN4s8CwPkpoUS7z+Py86JkhRuPFYvPqmvDO8/tquwTXVNgzwVtzEK/gbvP0x0rOIBQoY8MdhM/HAB7z9K+NNdOd2PPP8WZLII/O4/BFuOO4Cjhrzxn5JfxfbuP2hQS8ztSpK8y6k6N6fx7j+OLVEb+AeZvGbYBW2u7O4/0jaUPujRcbz3n+U02+fuPxUbzrMZGZm85agTwy3j7j9tTCqnSJ+FPCI0Ekym3u4/imkoemASk7wcgKwERdruP1uJF0iPp1i8Ki73IQrW7j8bmklnmyx8vJeoUNn10e4/EazCYO1jQzwtiWFgCM7uP+9kBjsJZpY8VwAd7UHK7j95A6Ha4cxuPNA8wbWixu4/MBIPP47/kzze09fwKsPuP7CvervOkHY8Jyo21dq/7j934FTrvR2TPA3d/ZmyvO4/jqNxADSUj7ynLJ12srnuP0mjk9zM3oe8QmbPotq27j9fOA+9xt54vIJPnVYrtO4/9lx77EYShrwPkl3KpLHuP47X/RgFNZM82ie1Nkev7j8Fm4ovt5h7PP3Hl9QSre4/CVQc4uFjkDwpVEjdB6vuP+rGGVCFxzQ8t0ZZiiap7j81wGQr5jKUPEghrRVvp+4/n3aZYUrkjLwJ3Ha54aXuP6hN7zvFM4y8hVU6sH6k7j+u6SuJeFOEvCDDzDRGo+4/WFhWeN3Ok7wlIlWCOKLuP2QZfoCqEFc8c6lM1FWh7j8oIl6/77OTvM07f2aeoO4/grk0h60Sary/2gt1EqDuP+6pbbjvZ2O8LxplPLKf7j9RiOBUPdyAvISUUfl9n+4/zz5afmQfeLx0X+zodZ/uP7B9i8BK7oa8dIGlSJqf7j+K5lUeMhmGvMlnQlbrn+4/09QJXsuckDw/Xd5PaaDuPx2lTbncMnu8hwHrcxSh7j9rwGdU/eyUPDLBMAHtoe4/VWzWq+HrZTxiTs8286LuP0LPsy/FoYi8Eho+VCek7j80NzvxtmmTvBPOTJmJpe4/Hv8ZOoRegLytxyNGGqfuP25XcthQ1JS87ZJEm9mo7j8Aig5bZ62QPJlmitnHqu4/tOrwwS+3jTzboCpC5azuP//nxZxgtmW8jES1FjKv7j9EX/NZg/Z7PDZ3FZmuse4/gz0epx8Jk7zG/5ELW7TuPykebIu4qV285cXNsDe37j9ZuZB8+SNsvA9SyMtEuu4/qvn0IkNDkrxQTt6fgr3uP0uOZtdsyoW8ugfKcPHA7j8nzpEr/K9xPJDwo4KRxO4/u3MK4TXSbTwjI+MZY8juP2MiYiIExYe8ZeVde2bM7j/VMeLjhhyLPDMtSuyb0O4/Fbu809G7kbxdJT6yA9XuP9Ix7pwxzJA8WLMwE57Z7j+zWnNuhGmEPL/9eVVr3u4/tJ2Ol83fgrx689O/a+PuP4czy5J3Gow8rdNamZ/o7j/62dFKj3uQvGa2jSkH7u4/uq7cVtnDVbz7FU+4ovPuP0D2pj0OpJC8OlnljXL57j80k6049NZovEde+/J2/+4/NYpYa+LukbxKBqEwsAXvP83dXwrX/3Q80sFLkB4M7z+smJL6+72RvAke11vCEu8/swyvMK5uczycUoXdmxnvP5T9n1wy4448etD/X6sg7z+sWQnRj+CEPEvRVy7xJ+8/ZxpOOK/NYzy15waUbS/vP2gZkmwsa2c8aZDv3CA37z/StcyDGIqAvPrDXVULP+8/b/r/P12tj7x8iQdKLUfvP0mpdTiuDZC88okNCIdP7z+nBz2mhaN0PIek+9wYWO8/DyJAIJ6RgryYg8kW42DvP6ySwdVQWo48hTLbA+Zp7z9LawGsWTqEPGC0AfMhc+8/Hz60ByHVgrxfm3szl3zvP8kNRzu5Kom8KaH1FEaG7z/TiDpgBLZ0PPY/i+cukO8/cXKdUezFgzyDTMf7UZrvP/CR048S94+82pCkoq+k7z99dCPimK6NvPFnji1Ir+8/CCCqQbzDjjwnWmHuG7rvPzLrqcOUK4Q8l7prNyvF7z/uhdExqWSKPEBFblt20O8/7eM75Lo3jrwUvpyt/dvvP53NkU07iXc82JCegcHn7z+JzGBBwQVTPPFxjyvC8+8/";var{f64_pow:vb}=(await WebAssembly.instantiateStreaming(fetch(Sb))).instance.exports;var Za=new Float64Array(1),Ib=new Float32Array(Za.buffer),zi=new Int32Array(Za.buffer);globalThis.f32_as_i32=function(r){return Ib[0]=r,zi[0]};globalThis.i32_as_f32=function(r){return zi[0]=r,Ib[0]};globalThis.f64_as_i64=function(r){return Za[0]=r,i64_new(zi[0],zi[1])};globalThis.i64_as_f64=function(r){return zi[0]=i64_low(r),zi[1]=i64_high(r),Za[0]};globalThis.f64_pow=vb;import we from"long";globalThis.i64_zero=we.ZERO;globalThis.i64_one=we.ONE;globalThis.i64_neg_one=we.fromInt(-1);globalThis.i64_minimum=we.MIN_VALUE;globalThis.i64_maximum=we.MAX_VALUE;globalThis.i64_is=function(r){return we.isLong(r)};globalThis.i64_new=function(r,e){return we.fromBits(r,e)};globalThis.i64_low=function(r){return r.low};globalThis.i64_high=function(r){return r.high};globalThis.i64_not=function(r){return r.not()};globalThis.i64_neg=function(r){return r.neg()};globalThis.i64_clz=function(r){return r.clz()};globalThis.i64_ctz=function(r){return r.ctz()};globalThis.i64_add=function(r,e){return r.add(e)};globalThis.i64_sub=function(r,e){return r.sub(e)};globalThis.i64_mul=function(r,e){return r.mul(e)};globalThis.i64_pow=function(r,e){let t=e.low,n=e.high;if(n<=0){if(n<0)return r.eq(globalThis.i64_neg_one)?t&1?r:we.ONE:r.eq(we.ONE)?r:we.ZERO;if(t==0)return we.ONE;if(t==1)return r;if(t==2)return r.mul(r)}let s=we.ONE;for(;t|n;)t&1&&(s=s.mul(r)),e=e.shru(1),r=r.mul(r),t=e.low,n=e.high;return s};globalThis.i64_div=function(r,e){return r.div(e)};globalThis.i64_div_u=function(r,e){return r.toUnsigned().div(e.toUnsigned()).toSigned()};globalThis.i64_rem=function(r,e){return r.mod(e)};globalThis.i64_rem_u=function(r,e){return r.toUnsigned().mod(e.toUnsigned()).toSigned()};globalThis.i64_and=function(r,e){return r.and(e)};globalThis.i64_or=function(r,e){return r.or(e)};globalThis.i64_xor=function(r,e){return r.xor(e)};globalThis.i64_shl=function(r,e){return r.shl(e)};globalThis.i64_shr=function(r,e){return r.shr(e)};globalThis.i64_shr_u=function(r,e){return r.shru(e)};globalThis.i64_eq=function(r,e){return r.eq(e)};globalThis.i64_ne=function(r,e){return r.ne(e)};globalThis.i64_ge=function(r,e){return r.ge(e)};globalThis.i64_ge_u=function(r,e){return r.toUnsigned().ge(e.toUnsigned())};globalThis.i64_gt=function(r,e){return r.gt(e)};globalThis.i64_gt_u=function(r,e){return r.toUnsigned().gt(e.toUnsigned())};globalThis.i64_le=function(r,e){return r.le(e)};globalThis.i64_le_u=function(r,e){return r.toUnsigned().le(e.toUnsigned())};globalThis.i64_lt=function(r,e){return r.lt(e)};globalThis.i64_lt_u=function(r,e){return r.toUnsigned().lt(e.toUnsigned())};globalThis.i64_align=function(r,e){assert(e&&(e&e-1)==0);let t=we.fromInt(e-1);return r.add(t).and(t.not())};globalThis.i64_signbit=function(r){return!!(r.high>>>31)};globalThis.i64_is_i8=function(r){return r.high===0&&r.low>=0&&r.low<=i8.MAX_VALUE||r.high===-1&&r.low>=i8.MIN_VALUE&&r.low<0};globalThis.i64_is_i16=function(r){return r.high===0&&r.low>=0&&r.low<=i16.MAX_VALUE||r.high===-1&&r.low>=i16.MIN_VALUE&&r.low<0};globalThis.i64_is_i32=function(r){return r.high===0&&r.low>=0||r.high===-1&&r.low<0};globalThis.i64_is_u8=function(r){return r.high===0&&r.low>>>0<=u8.MAX_VALUE};globalThis.i64_is_u16=function(r){return r.high===0&&r.low>>>0<=u16.MAX_VALUE};globalThis.i64_is_u32=function(r){return r.high===0};globalThis.i64_is_bool=function(r){return(r.high|r.low&-2)===0};var P1=we.fromNumber(f32.MIN_SAFE_INTEGER),B1=we.fromNumber(f32.MAX_SAFE_INTEGER);globalThis.i64_is_f32=function(r){return r.gte(P1)&&r.lte(B1)};var N1=we.fromNumber(f64.MIN_SAFE_INTEGER),L1=we.fromNumber(f64.MAX_SAFE_INTEGER);globalThis.i64_is_f64=function(r){return r.gte(N1)&&r.lte(L1)};globalThis.i64_to_f32=function(r){return globalThis.Math.fround(r.toNumber())};globalThis.i64_to_f64=function(r){return r.toNumber()};globalThis.i64_to_string=function(r,e){return e?r.toUnsigned().toString():r.toString()};globalThis.i64_clone=function(r){return we.fromBits(r.low,r.high,r.unsigned)};globalThis.Map_keys=function(r){return Array.from(r.keys())};globalThis.Map_values=function(r){return Array.from(r.values())};globalThis.Set_values=function(r){return Array.from(r.values())};var Kt=(k=>(k[k.None=0]="None",k[k.SignExtension=1]="SignExtension",k[k.MutableGlobals=2]="MutableGlobals",k[k.NontrappingF2I=4]="NontrappingF2I",k[k.BulkMemory=8]="BulkMemory",k[k.Simd=16]="Simd",k[k.Threads=32]="Threads",k[k.ExceptionHandling=64]="ExceptionHandling",k[k.TailCalls=128]="TailCalls",k[k.ReferenceTypes=256]="ReferenceTypes",k[k.MultiValue=512]="MultiValue",k[k.GC=1024]="GC",k[k.Memory64=2048]="Memory64",k[k.RelaxedSimd=4096]="RelaxedSimd",k[k.ExtendedConst=8192]="ExtendedConst",k[k.Strings=16384]="Strings",k[k.SharedEverything=32768]="SharedEverything",k[k.All=65535]="All",k))(Kt||{});function Di(i){switch(i){case 1:return"sign-extension";case 2:return"mutable-globals";case 4:return"nontrapping-f2i";case 8:return"bulk-memory";case 16:return"simd";case 32:return"threads";case 64:return"exception-handling";case 128:return"tail-calls";case 256:return"reference-types";case 512:return"multi-value";case 1024:return"gc";case 2048:return"memory64";case 4096:return"relaxed-simd";case 8192:return"extended-const";case 16384:return"stringref";case 32768:return"shared-everything"}return assert(!1),""}var Gi=(t=>(t[t.Js=0]="Js",t[t.Wasm32=1]="Wasm32",t[t.Wasm64=2]="Wasm64",t))(Gi||{});var Ya=(t=>(t[t.Stub=0]="Stub",t[t.Minimal=1]="Minimal",t[t.Incremental=2]="Incremental",t))(Ya||{});var Ui=class{constructor(){this.flags=0}};Ui=W_([unmanaged],Ui);var Ja=(z=>(z[z.NONE=0]="NONE",z[z.ARRAYBUFFERVIEW=1]="ARRAYBUFFERVIEW",z[z.ARRAY=2]="ARRAY",z[z.STATICARRAY=4]="STATICARRAY",z[z.SET=8]="SET",z[z.MAP=16]="MAP",z[z.POINTERFREE=32]="POINTERFREE",z[z.VALUE_ALIGN_0=64]="VALUE_ALIGN_0",z[z.VALUE_ALIGN_1=128]="VALUE_ALIGN_1",z[z.VALUE_ALIGN_2=256]="VALUE_ALIGN_2",z[z.VALUE_ALIGN_3=512]="VALUE_ALIGN_3",z[z.VALUE_ALIGN_4=1024]="VALUE_ALIGN_4",z[z.VALUE_SIGNED=2048]="VALUE_SIGNED",z[z.VALUE_FLOAT=4096]="VALUE_FLOAT",z[z.VALUE_NULLABLE=8192]="VALUE_NULLABLE",z[z.VALUE_MANAGED=16384]="VALUE_MANAGED",z[z.KEY_ALIGN_0=32768]="KEY_ALIGN_0",z[z.KEY_ALIGN_1=65536]="KEY_ALIGN_1",z[z.KEY_ALIGN_2=131072]="KEY_ALIGN_2",z[z.KEY_ALIGN_3=262144]="KEY_ALIGN_3",z[z.KEY_ALIGN_4=524288]="KEY_ALIGN_4",z[z.KEY_SIGNED=1048576]="KEY_SIGNED",z[z.KEY_FLOAT=2097152]="KEY_FLOAT",z[z.KEY_NULLABLE=4194304]="KEY_NULLABLE",z[z.KEY_MANAGED=8388608]="KEY_MANAGED",z))(Ja||{});var ze=(H=>(H[H.None=0]="None",H[H.Import=1]="Import",H[H.Export=2]="Export",H[H.Declare=4]="Declare",H[H.Const=8]="Const",H[H.Let=16]="Let",H[H.Static=32]="Static",H[H.Readonly=64]="Readonly",H[H.Abstract=128]="Abstract",H[H.Public=256]="Public",H[H.Private=512]="Private",H[H.Protected=1024]="Protected",H[H.Get=2048]="Get",H[H.Set=4096]="Set",H[H.Override=8192]="Override",H[H.DefinitelyAssigned=16384]="DefinitelyAssigned",H[H.Ambient=32768]="Ambient",H[H.Generic=65536]="Generic",H[H.GenericContext=131072]="GenericContext",H[H.Instance=262144]="Instance",H[H.Constructor=524288]="Constructor",H[H.ModuleExport=1048576]="ModuleExport",H[H.ModuleImport=2097152]="ModuleImport",H[H.Resolved=4194304]="Resolved",H[H.Compiled=8388608]="Compiled",H[H.Errored=16777216]="Errored",H[H.Inlined=33554432]="Inlined",H[H.Scoped=67108864]="Scoped",H[H.Stub=134217728]="Stub",H[H.Overridden=268435456]="Overridden",H[H.Closure=536870912]="Closure",H[H.Quoted=1073741824]="Quoted",H[H.InternallyNullable=-2147483648]="InternallyNullable",H))(ze||{}),mt="/",M1="..",el="get:",tl="set:",Pp="#",es=".",Bp="~",kb="~lib",Ft=kb+mt,Qe=mt+"index",Np="@",N;(G=>(G.Empty="",G.i8="i8",G.i16="i16",G.i32="i32",G.i64="i64",G.isize="isize",G.u8="u8",G.u16="u16",G.u32="u32",G.u64="u64",G.usize="usize",G.bool="bool",G.f32="f32",G.f64="f64",G.v128="v128",G.ref_func="ref_func",G.ref_extern="ref_extern",G.ref_any="ref_any",G.ref_eq="ref_eq",G.ref_struct="ref_struct",G.ref_array="ref_array",G.ref_i31="ref_i31",G.ref_string="ref_string",G.ref_stringview_wtf8="ref_stringview_wtf8",G.ref_stringview_wtf16="ref_stringview_wtf16",G.ref_stringview_iter="ref_stringview_iter",G.i8x16="i8x16",G.u8x16="u8x16",G.i16x8="i16x8",G.u16x8="u16x8",G.i32x4="i32x4",G.u32x4="u32x4",G.i64x2="i64x2",G.u64x2="u64x2",G.f32x4="f32x4",G.f64x2="f64x2",G.void_="void",G.number="number",G.boolean="boolean",G.string="string",G.native="native",G.indexof="indexof",G.valueof="valueof",G.returnof="returnof",G.thisof="thisof",G.nonnull="nonnull",G.null_="null",G.true_="true",G.false_="false",G.this_="this",G.super_="super",G.constructor="constructor",G.COPY_STRUCT="~lib/util/bytes/COPY_STRUCT",G.ASC_TARGET="ASC_TARGET",G.ASC_RUNTIME="ASC_RUNTIME",G.ASC_NO_ASSERT="ASC_NO_ASSERT",G.ASC_MEMORY_BASE="ASC_MEMORY_BASE",G.ASC_TABLE_BASE="ASC_TABLE_BASE",G.ASC_OPTIMIZE_LEVEL="ASC_OPTIMIZE_LEVEL",G.ASC_SHRINK_LEVEL="ASC_SHRINK_LEVEL",G.ASC_LOW_MEMORY_LIMIT="ASC_LOW_MEMORY_LIMIT",G.ASC_EXPORT_RUNTIME="ASC_EXPORT_RUNTIME",G.ASC_FEATURE_SIGN_EXTENSION="ASC_FEATURE_SIGN_EXTENSION",G.ASC_FEATURE_MUTABLE_GLOBALS="ASC_FEATURE_MUTABLE_GLOBALS",G.ASC_FEATURE_NONTRAPPING_F2I="ASC_FEATURE_NONTRAPPING_F2I",G.ASC_FEATURE_BULK_MEMORY="ASC_FEATURE_BULK_MEMORY",G.ASC_FEATURE_SIMD="ASC_FEATURE_SIMD",G.ASC_FEATURE_THREADS="ASC_FEATURE_THREADS",G.ASC_FEATURE_EXCEPTION_HANDLING="ASC_FEATURE_EXCEPTION_HANDLING",G.ASC_FEATURE_TAIL_CALLS="ASC_FEATURE_TAIL_CALLS",G.ASC_FEATURE_REFERENCE_TYPES="ASC_FEATURE_REFERENCE_TYPES",G.ASC_FEATURE_MULTI_VALUE="ASC_FEATURE_MULTI_VALUE",G.ASC_FEATURE_GC="ASC_FEATURE_GC",G.ASC_FEATURE_MEMORY64="ASC_FEATURE_MEMORY64",G.ASC_FEATURE_RELAXED_SIMD="ASC_FEATURE_RELAXED_SIMD",G.ASC_FEATURE_EXTENDED_CONST="ASC_FEATURE_EXTENDED_CONST",G.ASC_FEATURE_STRINGREF="ASC_FEATURE_STRINGREF",G.ASC_FEATURE_SHARED_EVERYTHING="ASC_FEATURE_SHARED_EVERYTHING",G.ASC_VERSION_MAJOR="ASC_VERSION_MAJOR",G.ASC_VERSION_MINOR="ASC_VERSION_MINOR",G.ASC_VERSION_PATCH="ASC_VERSION_PATCH",G.EnumToString="__enum_to_string",G.I8="I8",G.I16="I16",G.I32="I32",G.I64="I64",G.Isize="Isize",G.U8="U8",G.U16="U16",G.U32="U32",G.U64="U64",G.Usize="Usize",G.Bool="Bool",G.F32="F32",G.F64="F64",G.V128="V128",G.RefFunc="RefFunc",G.RefExtern="RefExtern",G.RefAny="RefAny",G.RefEq="RefEq",G.RefStruct="RefStruct",G.RefArray="RefArray",G.RefI31="RefI31",G.RefString="RefString",G.String="String",G.RegExp="RegExp",G.Object="Object",G.Array="Array",G.StaticArray="StaticArray",G.Set="Set",G.Map="Map",G.Function="Function",G.Task="Task",G.ArrayBufferView="ArrayBufferView",G.ArrayBuffer="ArrayBuffer",G.Math="Math",G.Mathf="Mathf",G.NativeMath="NativeMath",G.NativeMathf="NativeMathf",G.Int8Array="Int8Array",G.Int16Array="Int16Array",G.Int32Array="Int32Array",G.Int64Array="Int64Array",G.Uint8Array="Uint8Array",G.Uint8ClampedArray="Uint8ClampedArray",G.Uint16Array="Uint16Array",G.Uint32Array="Uint32Array",G.Uint64Array="Uint64Array",G.Float32Array="Float32Array",G.Float64Array="Float64Array",G.TemplateStringsArray="TemplateStringsArray",G.Error="Error",G.abort="abort",G.trace="trace",G.seed="seed",G.pow="pow",G.ipow32="ipow32",G.ipow64="ipow64",G.mod="mod",G.alloc="__alloc",G.realloc="__realloc",G.free="__free",G.new_="__new",G.renew="__renew",G.link="__link",G.collect="__collect",G.visit="__visit",G.newBuffer="__newBuffer",G.newArray="__newArray",G.BLOCK="~lib/rt/common/BLOCK",G.OBJECT="~lib/rt/common/OBJECT",G.DefaultMemory="0",G.DefaultTable="0"))(N||={});var ts=class{constructor(r=0,e=null,t=!1,n=!1,s=null,a=!1){this.kind=r;this.envClass=e;this.ownEnv=t;this.receivesEnv=n;this.parentClass=s;this.hasThis=a}},rl=new Map,Fb=null;function Vi(){let i=Fb;return i==null&&(Fb=i=new Map),i}var wb=null;function Or(){let i=wb;return i==null&&(wb=i=new Map),i}var Xe=(S=>(S[S.Not_implemented_0=100]="Not_implemented_0",S[S.Operation_is_unsafe=101]="Operation_is_unsafe",S[S.User_defined_0=102]="User_defined_0",S[S.Feature_0_is_not_enabled=103]="Feature_0_is_not_enabled",S[S.Low_memory_limit_exceeded_by_static_data_0_1=104]="Low_memory_limit_exceeded_by_static_data_0_1",S[S.Module_requires_at_least_0_pages_of_initial_memory=105]="Module_requires_at_least_0_pages_of_initial_memory",S[S.Module_requires_at_least_0_pages_of_maximum_memory=106]="Module_requires_at_least_0_pages_of_maximum_memory",S[S.Shared_memory_requires_maximum_memory_to_be_defined=107]="Shared_memory_requires_maximum_memory_to_be_defined",S[S.Shared_memory_requires_feature_threads_to_be_enabled=108]="Shared_memory_requires_feature_threads_to_be_enabled",S[S.Transform_0_1=109]="Transform_0_1",S[S.Start_function_name_0_is_invalid_or_conflicts_with_another_export=110]="Start_function_name_0_is_invalid_or_conflicts_with_another_export",S[S.Element_0_not_found=111]="Element_0_not_found",S[S.Exchange_of_0_values_is_not_supported_by_all_embeddings=112]="Exchange_of_0_values_is_not_supported_by_all_embeddings",S[S.Conversion_from_type_0_to_1_requires_an_explicit_cast=200]="Conversion_from_type_0_to_1_requires_an_explicit_cast",S[S.Conversion_from_type_0_to_1_will_require_an_explicit_cast_when_switching_between_32_64_bit=201]="Conversion_from_type_0_to_1_will_require_an_explicit_cast_when_switching_between_32_64_bit",S[S.Type_0_cannot_be_changed_to_type_1=202]="Type_0_cannot_be_changed_to_type_1",S[S.Operation_0_cannot_be_applied_to_type_1=203]="Operation_0_cannot_be_applied_to_type_1",S[S.Type_0_cannot_be_nullable=204]="Type_0_cannot_be_nullable",S[S.Mutable_value_cannot_be_inlined=206]="Mutable_value_cannot_be_inlined",S[S.Unmanaged_classes_cannot_extend_managed_classes_and_vice_versa=207]="Unmanaged_classes_cannot_extend_managed_classes_and_vice_versa",S[S.Unmanaged_classes_cannot_implement_interfaces=208]="Unmanaged_classes_cannot_implement_interfaces",S[S.Invalid_regular_expression_flags=209]="Invalid_regular_expression_flags",S[S.Expression_is_never_null=210]="Expression_is_never_null",S[S.Class_0_is_final_and_cannot_be_extended=211]="Class_0_is_final_and_cannot_be_extended",S[S.Decorator_0_is_not_valid_here=212]="Decorator_0_is_not_valid_here",S[S.Duplicate_decorator=213]="Duplicate_decorator",S[S.Type_0_is_illegal_in_this_context=214]="Type_0_is_illegal_in_this_context",S[S.Optional_parameter_must_have_an_initializer=215]="Optional_parameter_must_have_an_initializer",S[S.Class_0_cannot_declare_a_constructor_when_instantiated_from_an_object_literal=216]="Class_0_cannot_declare_a_constructor_when_instantiated_from_an_object_literal",S[S.Function_0_cannot_be_inlined_into_itself=217]="Function_0_cannot_be_inlined_into_itself",S[S.Cannot_access_method_0_without_calling_it_as_it_requires_this_to_be_set=218]="Cannot_access_method_0_without_calling_it_as_it_requires_this_to_be_set",S[S.Optional_properties_are_not_supported=219]="Optional_properties_are_not_supported",S[S.Expression_must_be_a_compile_time_constant=220]="Expression_must_be_a_compile_time_constant",S[S.Type_0_is_not_a_function_index_or_function_reference=221]="Type_0_is_not_a_function_index_or_function_reference",S[S._0_must_be_a_value_between_1_and_2_inclusive=222]="_0_must_be_a_value_between_1_and_2_inclusive",S[S._0_must_be_a_power_of_two=223]="_0_must_be_a_power_of_two",S[S._0_is_not_a_valid_operator=224]="_0_is_not_a_valid_operator",S[S.Expression_cannot_be_represented_by_a_type=225]="Expression_cannot_be_represented_by_a_type",S[S.Expression_resolves_to_unusual_type_0=226]="Expression_resolves_to_unusual_type_0",S[S.Array_literal_expected=227]="Array_literal_expected",S[S.Function_0_is_virtual_and_will_not_be_inlined=228]="Function_0_is_virtual_and_will_not_be_inlined",S[S.Property_0_only_has_a_setter_and_is_missing_a_getter=229]="Property_0_only_has_a_setter_and_is_missing_a_getter",S[S._0_keyword_cannot_be_used_here=230]="_0_keyword_cannot_be_used_here",S[S.A_class_with_a_constructor_explicitly_returning_something_else_than_this_must_be_final=231]="A_class_with_a_constructor_explicitly_returning_something_else_than_this_must_be_final",S[S.Property_0_is_always_assigned_before_being_used=233]="Property_0_is_always_assigned_before_being_used",S[S.Expression_does_not_compile_to_a_value_at_runtime=234]="Expression_does_not_compile_to_a_value_at_runtime",S[S.Only_variables_functions_and_enums_become_WebAssembly_module_exports=235]="Only_variables_functions_and_enums_become_WebAssembly_module_exports",S[S.Literal_0_does_not_fit_into_i64_or_u64_types=236]="Literal_0_does_not_fit_into_i64_or_u64_types",S[S.Index_signature_accessors_in_type_0_differ_in_types=237]="Index_signature_accessors_in_type_0_differ_in_types",S[S.Initializer_definitive_assignment_or_nullable_type_expected=238]="Initializer_definitive_assignment_or_nullable_type_expected",S[S.Definitive_assignment_has_no_effect_on_local_variables=239]="Definitive_assignment_has_no_effect_on_local_variables",S[S.Ambiguous_operator_overload_0_conflicting_overloads_1_and_2=240]="Ambiguous_operator_overload_0_conflicting_overloads_1_and_2",S[S.An_interface_or_abstract_method_0_cannot_have_type_parameters=241]="An_interface_or_abstract_method_0_cannot_have_type_parameters",S[S.Cannot_override_generic_method_0_with_a_non_generic_method_or_vice_versa=242]="Cannot_override_generic_method_0_with_a_non_generic_method_or_vice_versa",S[S.Importing_the_table_disables_some_indirect_call_optimizations=901]="Importing_the_table_disables_some_indirect_call_optimizations",S[S.Exporting_the_table_disables_some_indirect_call_optimizations=902]="Exporting_the_table_disables_some_indirect_call_optimizations",S[S.Expression_compiles_to_a_dynamic_check_at_runtime=903]="Expression_compiles_to_a_dynamic_check_at_runtime",S[S.Indexed_access_may_involve_bounds_checking=904]="Indexed_access_may_involve_bounds_checking",S[S.Explicitly_returning_constructor_drops_this_allocation=905]="Explicitly_returning_constructor_drops_this_allocation",S[S.Unnecessary_definite_assignment=906]="Unnecessary_definite_assignment",S[S._NaN_does_not_compare_equal_to_any_other_value_including_itself_Use_isNaN_x_instead=907]="_NaN_does_not_compare_equal_to_any_other_value_including_itself_Use_isNaN_x_instead",S[S.Comparison_with_0_0_is_sign_insensitive_Use_Object_is_x_0_0_if_the_sign_matters=908]="Comparison_with_0_0_is_sign_insensitive_Use_Object_is_x_0_0_if_the_sign_matters",S[S.Unterminated_string_literal=1002]="Unterminated_string_literal",S[S.Identifier_expected=1003]="Identifier_expected",S[S._0_expected=1005]="_0_expected",S[S.A_file_cannot_have_a_reference_to_itself=1006]="A_file_cannot_have_a_reference_to_itself",S[S.Trailing_comma_not_allowed=1009]="Trailing_comma_not_allowed",S[S.Unexpected_token=1012]="Unexpected_token",S[S.A_rest_parameter_must_be_last_in_a_parameter_list=1014]="A_rest_parameter_must_be_last_in_a_parameter_list",S[S.Parameter_cannot_have_question_mark_and_initializer=1015]="Parameter_cannot_have_question_mark_and_initializer",S[S.A_required_parameter_cannot_follow_an_optional_parameter=1016]="A_required_parameter_cannot_follow_an_optional_parameter",S[S._0_modifier_cannot_appear_on_class_elements_of_this_kind=1031]="_0_modifier_cannot_appear_on_class_elements_of_this_kind",S[S.Statements_are_not_allowed_in_ambient_contexts=1036]="Statements_are_not_allowed_in_ambient_contexts",S[S.Initializers_are_not_allowed_in_ambient_contexts=1039]="Initializers_are_not_allowed_in_ambient_contexts",S[S._0_modifier_cannot_be_used_here=1042]="_0_modifier_cannot_be_used_here",S[S.A_rest_parameter_cannot_be_optional=1047]="A_rest_parameter_cannot_be_optional",S[S.A_rest_parameter_cannot_have_an_initializer=1048]="A_rest_parameter_cannot_have_an_initializer",S[S.A_set_accessor_must_have_exactly_one_parameter=1049]="A_set_accessor_must_have_exactly_one_parameter",S[S.A_set_accessor_parameter_cannot_have_an_initializer=1052]="A_set_accessor_parameter_cannot_have_an_initializer",S[S.A_get_accessor_cannot_have_parameters=1054]="A_get_accessor_cannot_have_parameters",S[S.Enum_member_must_have_initializer=1061]="Enum_member_must_have_initializer",S[S.Type_parameters_cannot_appear_on_a_constructor_declaration=1092]="Type_parameters_cannot_appear_on_a_constructor_declaration",S[S.Type_annotation_cannot_appear_on_a_constructor_declaration=1093]="Type_annotation_cannot_appear_on_a_constructor_declaration",S[S.An_accessor_cannot_have_type_parameters=1094]="An_accessor_cannot_have_type_parameters",S[S.A_set_accessor_cannot_have_a_return_type_annotation=1095]="A_set_accessor_cannot_have_a_return_type_annotation",S[S.Type_parameter_list_cannot_be_empty=1098]="Type_parameter_list_cannot_be_empty",S[S.Type_argument_list_cannot_be_empty=1099]="Type_argument_list_cannot_be_empty",S[S.A_continue_statement_can_only_be_used_within_an_enclosing_iteration_statement=1104]="A_continue_statement_can_only_be_used_within_an_enclosing_iteration_statement",S[S.A_break_statement_can_only_be_used_within_an_enclosing_iteration_or_switch_statement=1105]="A_break_statement_can_only_be_used_within_an_enclosing_iteration_or_switch_statement",S[S.A_return_statement_can_only_be_used_within_a_function_body=1108]="A_return_statement_can_only_be_used_within_a_function_body",S[S.Expression_expected=1109]="Expression_expected",S[S.Type_expected=1110]="Type_expected",S[S.A_default_clause_cannot_appear_more_than_once_in_a_switch_statement=1113]="A_default_clause_cannot_appear_more_than_once_in_a_switch_statement",S[S.Duplicate_label_0=1114]="Duplicate_label_0",S[S.An_export_assignment_cannot_have_modifiers=1120]="An_export_assignment_cannot_have_modifiers",S[S.Octal_literals_are_not_allowed_in_strict_mode=1121]="Octal_literals_are_not_allowed_in_strict_mode",S[S.Digit_expected=1124]="Digit_expected",S[S.Hexadecimal_digit_expected=1125]="Hexadecimal_digit_expected",S[S.Unexpected_end_of_text=1126]="Unexpected_end_of_text",S[S.Invalid_character=1127]="Invalid_character",S[S._case_or_default_expected=1130]="_case_or_default_expected",S[S._super_must_be_followed_by_an_argument_list_or_member_access=1034]="_super_must_be_followed_by_an_argument_list_or_member_access",S[S.A_declare_modifier_cannot_be_used_in_an_already_ambient_context=1038]="A_declare_modifier_cannot_be_used_in_an_already_ambient_context",S[S.Type_argument_expected=1140]="Type_argument_expected",S[S.String_literal_expected=1141]="String_literal_expected",S[S.Line_break_not_permitted_here=1142]="Line_break_not_permitted_here",S[S.Declaration_expected=1146]="Declaration_expected",S[S._const_declarations_must_be_initialized=1155]="_const_declarations_must_be_initialized",S[S.Unterminated_regular_expression_literal=1161]="Unterminated_regular_expression_literal",S[S.Declarations_with_initializers_cannot_also_have_definite_assignment_assertions=1263]="Declarations_with_initializers_cannot_also_have_definite_assignment_assertions",S[S.Interface_declaration_cannot_have_implements_clause=1176]="Interface_declaration_cannot_have_implements_clause",S[S.Binary_digit_expected=1177]="Binary_digit_expected",S[S.Octal_digit_expected=1178]="Octal_digit_expected",S[S.An_implementation_cannot_be_declared_in_ambient_contexts=1183]="An_implementation_cannot_be_declared_in_ambient_contexts",S[S.The_variable_declaration_of_a_for_of_statement_cannot_have_an_initializer=1190]="The_variable_declaration_of_a_for_of_statement_cannot_have_an_initializer",S[S.An_extended_Unicode_escape_value_must_be_between_0x0_and_0x10FFFF_inclusive=1198]="An_extended_Unicode_escape_value_must_be_between_0x0_and_0x10FFFF_inclusive",S[S.Unterminated_Unicode_escape_sequence=1199]="Unterminated_Unicode_escape_sequence",S[S.Decorators_are_not_valid_here=1206]="Decorators_are_not_valid_here",S[S._abstract_modifier_can_only_appear_on_a_class_method_or_property_declaration=1242]="_abstract_modifier_can_only_appear_on_a_class_method_or_property_declaration",S[S.Method_0_cannot_have_an_implementation_because_it_is_marked_abstract=1245]="Method_0_cannot_have_an_implementation_because_it_is_marked_abstract",S[S.An_interface_property_cannot_have_an_initializer=1246]="An_interface_property_cannot_have_an_initializer",S[S.A_definite_assignment_assertion_is_not_permitted_in_this_context=1255]="A_definite_assignment_assertion_is_not_permitted_in_this_context",S[S._await_expressions_are_only_allowed_within_async_functions_and_at_the_top_levels_of_modules=1308]="_await_expressions_are_only_allowed_within_async_functions_and_at_the_top_levels_of_modules",S[S.A_class_may_only_extend_another_class=1311]="A_class_may_only_extend_another_class",S[S.A_parameter_property_cannot_be_declared_using_a_rest_parameter=1317]="A_parameter_property_cannot_be_declared_using_a_rest_parameter",S[S.A_default_export_can_only_be_used_in_a_module=1319]="A_default_export_can_only_be_used_in_a_module",S[S.An_expression_of_type_0_cannot_be_tested_for_truthiness=1345]="An_expression_of_type_0_cannot_be_tested_for_truthiness",S[S.An_identifier_or_keyword_cannot_immediately_follow_a_numeric_literal=1351]="An_identifier_or_keyword_cannot_immediately_follow_a_numeric_literal",S[S.Duplicate_identifier_0=2300]="Duplicate_identifier_0",S[S.Cannot_find_name_0=2304]="Cannot_find_name_0",S[S.Module_0_has_no_exported_member_1=2305]="Module_0_has_no_exported_member_1",S[S.An_interface_can_only_extend_an_interface=2312]="An_interface_can_only_extend_an_interface",S[S.Generic_type_0_requires_1_type_argument_s=2314]="Generic_type_0_requires_1_type_argument_s",S[S.Type_0_is_not_generic=2315]="Type_0_is_not_generic",S[S.Type_0_is_not_assignable_to_type_1=2322]="Type_0_is_not_assignable_to_type_1",S[S.Property_0_is_private_in_type_1_but_not_in_type_2=2325]="Property_0_is_private_in_type_1_but_not_in_type_2",S[S.Index_signature_is_missing_in_type_0=2329]="Index_signature_is_missing_in_type_0",S[S._this_cannot_be_referenced_in_current_location=2332]="_this_cannot_be_referenced_in_current_location",S[S._this_cannot_be_referenced_in_constructor_arguments=2333]="_this_cannot_be_referenced_in_constructor_arguments",S[S._super_can_only_be_referenced_in_a_derived_class=2335]="_super_can_only_be_referenced_in_a_derived_class",S[S._super_cannot_be_referenced_in_constructor_arguments=2336]="_super_cannot_be_referenced_in_constructor_arguments",S[S.Super_calls_are_not_permitted_outside_constructors_or_in_nested_functions_inside_constructors=2337]="Super_calls_are_not_permitted_outside_constructors_or_in_nested_functions_inside_constructors",S[S.Property_0_does_not_exist_on_type_1=2339]="Property_0_does_not_exist_on_type_1",S[S.Property_0_is_private_and_only_accessible_within_class_1=2341]="Property_0_is_private_and_only_accessible_within_class_1",S[S.Cannot_invoke_an_expression_whose_type_lacks_a_call_signature_Type_0_has_no_compatible_call_signatures=2349]="Cannot_invoke_an_expression_whose_type_lacks_a_call_signature_Type_0_has_no_compatible_call_signatures",S[S.This_expression_is_not_constructable=2351]="This_expression_is_not_constructable",S[S.A_function_whose_declared_type_is_not_void_must_return_a_value=2355]="A_function_whose_declared_type_is_not_void_must_return_a_value",S[S.The_operand_of_an_increment_or_decrement_operator_must_be_a_variable_or_a_property_access=2357]="The_operand_of_an_increment_or_decrement_operator_must_be_a_variable_or_a_property_access",S[S.The_left_hand_side_of_an_assignment_expression_must_be_a_variable_or_a_property_access=2364]="The_left_hand_side_of_an_assignment_expression_must_be_a_variable_or_a_property_access",S[S.Operator_0_cannot_be_applied_to_types_1_and_2=2365]="Operator_0_cannot_be_applied_to_types_1_and_2",S[S.A_super_call_must_be_the_first_statement_in_the_constructor=2376]="A_super_call_must_be_the_first_statement_in_the_constructor",S[S.Constructors_for_derived_classes_must_contain_a_super_call=2377]="Constructors_for_derived_classes_must_contain_a_super_call",S[S._get_and_set_accessor_must_have_the_same_type=2380]="_get_and_set_accessor_must_have_the_same_type",S[S.Overload_signatures_must_all_be_public_private_or_protected=2385]="Overload_signatures_must_all_be_public_private_or_protected",S[S.Constructor_implementation_is_missing=2390]="Constructor_implementation_is_missing",S[S.Function_implementation_is_missing_or_not_immediately_following_the_declaration=2391]="Function_implementation_is_missing_or_not_immediately_following_the_declaration",S[S.Multiple_constructor_implementations_are_not_allowed=2392]="Multiple_constructor_implementations_are_not_allowed",S[S.Duplicate_function_implementation=2393]="Duplicate_function_implementation",S[S.This_overload_signature_is_not_compatible_with_its_implementation_signature=2394]="This_overload_signature_is_not_compatible_with_its_implementation_signature",S[S.Individual_declarations_in_merged_declaration_0_must_be_all_exported_or_all_local=2395]="Individual_declarations_in_merged_declaration_0_must_be_all_exported_or_all_local",S[S.Property_0_in_type_1_is_not_assignable_to_the_same_property_in_base_type_2=2416]="Property_0_in_type_1_is_not_assignable_to_the_same_property_in_base_type_2",S[S.A_class_can_only_implement_an_interface=2422]="A_class_can_only_implement_an_interface",S[S.A_namespace_declaration_cannot_be_located_prior_to_a_class_or_function_with_which_it_is_merged=2434]="A_namespace_declaration_cannot_be_located_prior_to_a_class_or_function_with_which_it_is_merged",S[S.Types_have_separate_declarations_of_a_private_property_0=2442]="Types_have_separate_declarations_of_a_private_property_0",S[S.Property_0_is_protected_in_type_1_but_public_in_type_2=2444]="Property_0_is_protected_in_type_1_but_public_in_type_2",S[S.Property_0_is_protected_and_only_accessible_within_class_1_and_its_subclasses=2445]="Property_0_is_protected_and_only_accessible_within_class_1_and_its_subclasses",S[S.Variable_0_used_before_its_declaration=2448]="Variable_0_used_before_its_declaration",S[S.Cannot_redeclare_block_scoped_variable_0=2451]="Cannot_redeclare_block_scoped_variable_0",S[S.The_type_argument_for_type_parameter_0_cannot_be_inferred_from_the_usage_Consider_specifying_the_type_arguments_explicitly=2453]="The_type_argument_for_type_parameter_0_cannot_be_inferred_from_the_usage_Consider_specifying_the_type_arguments_explicitly",S[S.Variable_0_is_used_before_being_assigned=2454]="Variable_0_is_used_before_being_assigned",S[S.Type_alias_0_circularly_references_itself=2456]="Type_alias_0_circularly_references_itself",S[S.Type_0_has_no_property_1=2460]="Type_0_has_no_property_1",S[S.The_0_operator_cannot_be_applied_to_type_1=2469]="The_0_operator_cannot_be_applied_to_type_1",S[S.In_const_enum_declarations_member_initializer_must_be_constant_expression=2474]="In_const_enum_declarations_member_initializer_must_be_constant_expression",S[S.A_const_enum_member_can_only_be_accessed_using_a_string_literal=2476]="A_const_enum_member_can_only_be_accessed_using_a_string_literal",S[S.Export_declaration_conflicts_with_exported_declaration_of_0=2484]="Export_declaration_conflicts_with_exported_declaration_of_0",S[S._0_is_referenced_directly_or_indirectly_in_its_own_base_expression=2506]="_0_is_referenced_directly_or_indirectly_in_its_own_base_expression",S[S.Cannot_create_an_instance_of_an_abstract_class=2511]="Cannot_create_an_instance_of_an_abstract_class",S[S.Non_abstract_class_0_does_not_implement_inherited_abstract_member_1_from_2=2515]="Non_abstract_class_0_does_not_implement_inherited_abstract_member_1_from_2",S[S.Object_is_possibly_null=2531]="Object_is_possibly_null",S[S.Cannot_assign_to_0_because_it_is_a_constant_or_a_read_only_property=2540]="Cannot_assign_to_0_because_it_is_a_constant_or_a_read_only_property",S[S.The_target_of_an_assignment_must_be_a_variable_or_a_property_access=2541]="The_target_of_an_assignment_must_be_a_variable_or_a_property_access",S[S.Index_signature_in_type_0_only_permits_reading=2542]="Index_signature_in_type_0_only_permits_reading",S[S.Expected_0_arguments_but_got_1=2554]="Expected_0_arguments_but_got_1",S[S.Expected_at_least_0_arguments_but_got_1=2555]="Expected_at_least_0_arguments_but_got_1",S[S.Expected_0_type_arguments_but_got_1=2558]="Expected_0_type_arguments_but_got_1",S[S.Property_0_has_no_initializer_and_is_not_assigned_in_the_constructor_before_this_is_used_or_returned=2564]="Property_0_has_no_initializer_and_is_not_assigned_in_the_constructor_before_this_is_used_or_returned",S[S.Property_0_is_used_before_being_assigned=2565]="Property_0_is_used_before_being_assigned",S[S._0_is_defined_as_an_accessor_in_class_1_but_is_overridden_here_in_2_as_an_instance_property=2610]="_0_is_defined_as_an_accessor_in_class_1_but_is_overridden_here_in_2_as_an_instance_property",S[S._0_is_defined_as_a_property_in_class_1_but_is_overridden_here_in_2_as_an_accessor=2611]="_0_is_defined_as_a_property_in_class_1_but_is_overridden_here_in_2_as_an_accessor",S[S.A_member_initializer_in_a_enum_declaration_cannot_reference_members_declared_after_it_including_members_defined_in_other_enums=2651]="A_member_initializer_in_a_enum_declaration_cannot_reference_members_declared_after_it_including_members_defined_in_other_enums",S[S.Constructor_of_class_0_is_private_and_only_accessible_within_the_class_declaration=2673]="Constructor_of_class_0_is_private_and_only_accessible_within_the_class_declaration",S[S.Constructor_of_class_0_is_protected_and_only_accessible_within_the_class_declaration=2674]="Constructor_of_class_0_is_protected_and_only_accessible_within_the_class_declaration",S[S.Cannot_extend_a_class_0_Class_constructor_is_marked_as_private=2675]="Cannot_extend_a_class_0_Class_constructor_is_marked_as_private",S[S.The_this_types_of_each_signature_are_incompatible=2685]="The_this_types_of_each_signature_are_incompatible",S[S.Namespace_0_has_no_exported_member_1=2694]="Namespace_0_has_no_exported_member_1",S[S.Namespace_can_only_have_declarations=2695]="Namespace_can_only_have_declarations",S[S.Required_type_parameters_may_not_follow_optional_type_parameters=2706]="Required_type_parameters_may_not_follow_optional_type_parameters",S[S.Duplicate_property_0=2718]="Duplicate_property_0",S[S.Property_0_is_missing_in_type_1_but_required_in_type_2=2741]="Property_0_is_missing_in_type_1_but_required_in_type_2",S[S.Type_0_has_no_call_signatures=2757]="Type_0_has_no_call_signatures",S[S.Get_accessor_0_must_be_at_least_as_accessible_as_the_setter=2808]="Get_accessor_0_must_be_at_least_as_accessible_as_the_setter",S[S.This_member_cannot_have_an_override_modifier_because_it_is_not_declared_in_the_base_class_0=4117]="This_member_cannot_have_an_override_modifier_because_it_is_not_declared_in_the_base_class_0",S[S.File_0_not_found=6054]="File_0_not_found",S[S.Numeric_separators_are_not_allowed_here=6188]="Numeric_separators_are_not_allowed_here",S[S.Multiple_consecutive_numeric_separators_are_not_permitted=6189]="Multiple_consecutive_numeric_separators_are_not_permitted",S[S.This_expression_is_not_callable_because_it_is_a_get_accessor_Did_you_mean_to_use_it_without=6234]="This_expression_is_not_callable_because_it_is_a_get_accessor_Did_you_mean_to_use_it_without",S[S._super_must_be_called_before_accessing_this_in_the_constructor_of_a_derived_class=17009]="_super_must_be_called_before_accessing_this_in_the_constructor_of_a_derived_class",S[S._super_must_be_called_before_accessing_a_property_of_super_in_the_constructor_of_a_derived_class=17011]="_super_must_be_called_before_accessing_a_property_of_super_in_the_constructor_of_a_derived_class",S[S.A_struct_cannot_be_both_managed_and_unmanaged=6390]="A_struct_cannot_be_both_managed_and_unmanaged",S[S.A_struct_cannot_be_both_inline_and_managed=6391]="A_struct_cannot_be_both_inline_and_managed",S[S.A_memory_model_decorator_must_precede_the_type_it_applies_to_0=6392]="A_memory_model_decorator_must_precede_the_type_it_applies_to_0",S[S.Only_one_memory_model_decorator_may_apply_to_a_use=6393]="Only_one_memory_model_decorator_may_apply_to_a_use",S[S.Type_0_has_no_GC_header_so_a_use_cannot_make_it_managed_declare_the_record_managed_instead=6394]="Type_0_has_no_GC_header_so_a_use_cannot_make_it_managed_declare_the_record_managed_instead",S[S.Type_0_is_a_value_with_no_address_so_a_use_cannot_view_it_as_1_use_the_value_or_keep_it_inline=6395]="Type_0_is_a_value_with_no_address_so_a_use_cannot_view_it_as_1_use_the_value_or_keep_it_inline",S[S.A_lazy_decorator_must_precede_the_expression_it_defers_not_follow_a_type=6396]="A_lazy_decorator_must_precede_the_expression_it_defers_not_follow_a_type",S[S._lazy_expressions_must_be_the_initializer_of_a_variable_declaration=6397]="_lazy_expressions_must_be_the_initializer_of_a_variable_declaration",S[S.A_lazy_expression_in_this_position_is_not_lowered_it_is_evaluated_eagerly=6398]="A_lazy_expression_in_this_position_is_not_lowered_it_is_evaluated_eagerly",S[S.A_lazy_await_binding_needs_a_declared_type_the_memo_cells_are_lifted_into_the_task_s_state_struct_and_a_state_field_needs_a_syntactic_type_0=6399]="A_lazy_await_binding_needs_a_declared_type_the_memo_cells_are_lifted_into_the_task_s_state_struct_and_a_state_field_needs_a_syntactic_type_0",S[S.A_lazy_await_binding_cannot_be_read_from_a_nested_function_a_capture_moves_the_storage_and_the_memo_cell_is_a_state_field_0=6400]="A_lazy_await_binding_cannot_be_read_from_a_nested_function_a_capture_moves_the_storage_and_the_memo_cell_is_a_state_field_0",S[S.A_spawn_produces_a_Task_this_one_is_never_awaited_so_the_task_s_result_is_discarded=6401]="A_spawn_produces_a_Task_this_one_is_never_awaited_so_the_task_s_result_is_discarded",S[S.An_await_forces_an_immediate_read_of_lazy_so_the_deferral_is_nullified_drop_the_lazy_or_remove_the_await=6402]="An_await_forces_an_immediate_read_of_lazy_so_the_deferral_is_nullified_drop_the_lazy_or_remove_the_await",S[S.An_enum_underlying_type_must_be_one_of_i8_u8_i16_u16_i32_or_u32_not_0=6403]="An_enum_underlying_type_must_be_one_of_i8_u8_i16_u16_i32_or_u32_not_0",S[S.Enum_member_0_does_not_fit_the_underlying_type_1=6404]="Enum_member_0_does_not_fit_the_underlying_type_1",S[S._abi_align_requires_a_single_integer_literal_argument_the_alignment_is_a_compile_time_constant_so_a_computed_value_cannot_be_read_where_the_layout_is_decided=6405]="_abi_align_requires_a_single_integer_literal_argument_the_alignment_is_a_compile_time_constant_so_a_computed_value_cannot_be_read_where_the_layout_is_decided",S[S._abi_align_0_the_alignment_must_be_at_least_1=6406]="_abi_align_0_the_alignment_must_be_at_least_1",S[S._abi_align_0_the_alignment_must_be_a_power_of_two=6407]="_abi_align_0_the_alignment_must_be_a_power_of_two",S[S._abi_align_0_is_less_than_the_field_type_s_natural_alignment_1_asking_for_less_is_a_lie_so_it_is_refused_rather_than_silently_ignored=6408]="_abi_align_0_is_less_than_the_field_type_s_natural_alignment_1_asking_for_less_is_a_lie_so_it_is_refused_rather_than_silently_ignored",S[S._abi_align_0_is_too_large_the_maximum_is_1=6409]="_abi_align_0_is_too_large_the_maximum_is_1",S[S.Alignment_is_a_property_of_the_field_not_its_type_Place_abi_align_N_on_the_field_declaration=6410]="Alignment_is_a_property_of_the_field_not_its_type_Place_abi_align_N_on_the_field_declaration",S))(Xe||{});function il(i){switch(i){case 100:return"Not implemented: {0}";case 101:return"Operation is unsafe.";case 102:return"User-defined: {0}";case 103:return"Feature '{0}' is not enabled.";case 104:return"Low memory limit exceeded by static data: {0} > {1}";case 105:return"Module requires at least '{0}' pages of initial memory.";case 106:return"Module requires at least '{0}' pages of maximum memory.";case 107:return"Shared memory requires maximum memory to be defined.";case 108:return"Shared memory requires feature 'threads' to be enabled.";case 109:return"Transform '{0}': {1}";case 110:return"Start function name '{0}' is invalid or conflicts with another export.";case 111:return"Element '{0}' not found.";case 112:return"Exchange of '{0}' values is not supported by all embeddings";case 200:return"Conversion from type '{0}' to '{1}' requires an explicit cast.";case 201:return"Conversion from type '{0}' to '{1}' will require an explicit cast when switching between 32/64-bit.";case 202:return"Type '{0}' cannot be changed to type '{1}'.";case 203:return"Operation '{0}' cannot be applied to type '{1}'.";case 204:return"Type '{0}' cannot be nullable.";case 206:return"Mutable value cannot be inlined.";case 207:return"Unmanaged classes cannot extend managed classes and vice-versa.";case 208:return"Unmanaged classes cannot implement interfaces.";case 209:return"Invalid regular expression flags.";case 210:return"Expression is never 'null'.";case 211:return"Class '{0}' is final and cannot be extended.";case 212:return"Decorator '{0}' is not valid here.";case 213:return"Duplicate decorator.";case 214:return"Type '{0}' is illegal in this context.";case 215:return"Optional parameter must have an initializer.";case 216:return"Class '{0}' cannot declare a constructor when instantiated from an object literal.";case 217:return"Function '{0}' cannot be inlined into itself.";case 218:return"Cannot access method '{0}' without calling it as it requires 'this' to be set.";case 219:return"Optional properties are not supported.";case 220:return"Expression must be a compile-time constant.";case 221:return"Type '{0}' is not a function index or function reference.";case 222:return"'{0}' must be a value between '{1}' and '{2}' inclusive.";case 223:return"'{0}' must be a power of two.";case 224:return"'{0}' is not a valid operator.";case 225:return"Expression cannot be represented by a type.";case 226:return"Expression resolves to unusual type '{0}'.";case 227:return"Array literal expected.";case 228:return"Function '{0}' is virtual and will not be inlined.";case 229:return"Property '{0}' only has a setter and is missing a getter.";case 230:return"'{0}' keyword cannot be used here.";case 231:return"A class with a constructor explicitly returning something else than 'this' must be '@final'.";case 233:return"Property '{0}' is always assigned before being used.";case 234:return"Expression does not compile to a value at runtime.";case 235:return"Only variables, functions and enums become WebAssembly module exports.";case 236:return"Literal '{0}' does not fit into 'i64' or 'u64' types.";case 237:return"Index signature accessors in type '{0}' differ in types.";case 238:return"Initializer, definitive assignment or nullable type expected.";case 239:return"Definitive assignment has no effect on local variables.";case 240:return"Ambiguous operator overload '{0}' (conflicting overloads '{1}' and '{2}').";case 241:return"An interface or abstract method '{0}' cannot have type parameters.";case 242:return"Cannot override generic method '{0}' with a non-generic method or vice versa.";case 901:return"Importing the table disables some indirect call optimizations.";case 902:return"Exporting the table disables some indirect call optimizations.";case 903:return"Expression compiles to a dynamic check at runtime.";case 904:return"Indexed access may involve bounds checking.";case 905:return"Explicitly returning constructor drops 'this' allocation.";case 906:return"Unnecessary definite assignment.";case 907:return"'NaN' does not compare equal to any other value including itself. Use isNaN(x) instead.";case 908:return"Comparison with -0.0 is sign insensitive. Use Object.is(x, -0.0) if the sign matters.";case 1002:return"Unterminated string literal.";case 1003:return"Identifier expected.";case 1005:return"'{0}' expected.";case 1006:return"A file cannot have a reference to itself.";case 1009:return"Trailing comma not allowed.";case 1012:return"Unexpected token.";case 1014:return"A rest parameter must be last in a parameter list.";case 1015:return"Parameter cannot have question mark and initializer.";case 1016:return"A required parameter cannot follow an optional parameter.";case 1031:return"'{0}' modifier cannot appear on class elements of this kind.";case 1036:return"Statements are not allowed in ambient contexts.";case 1039:return"Initializers are not allowed in ambient contexts.";case 1042:return"'{0}' modifier cannot be used here.";case 1047:return"A rest parameter cannot be optional.";case 1048:return"A rest parameter cannot have an initializer.";case 1049:return"A 'set' accessor must have exactly one parameter.";case 1052:return"A 'set' accessor parameter cannot have an initializer.";case 1054:return"A 'get' accessor cannot have parameters.";case 1061:return"Enum member must have initializer.";case 1092:return"Type parameters cannot appear on a constructor declaration.";case 1093:return"Type annotation cannot appear on a constructor declaration.";case 1094:return"An accessor cannot have type parameters.";case 1095:return"A 'set' accessor cannot have a return type annotation.";case 1098:return"Type parameter list cannot be empty.";case 1099:return"Type argument list cannot be empty.";case 1104:return"A 'continue' statement can only be used within an enclosing iteration statement.";case 1105:return"A 'break' statement can only be used within an enclosing iteration or switch statement.";case 1108:return"A 'return' statement can only be used within a function body.";case 1109:return"Expression expected.";case 1110:return"Type expected.";case 1113:return"A 'default' clause cannot appear more than once in a 'switch' statement.";case 1114:return"Duplicate label '{0}'.";case 1120:return"An export assignment cannot have modifiers.";case 1121:return"Octal literals are not allowed in strict mode.";case 1124:return"Digit expected.";case 1125:return"Hexadecimal digit expected.";case 1126:return"Unexpected end of text.";case 1127:return"Invalid character.";case 1130:return"'case' or 'default' expected.";case 1034:return"'super' must be followed by an argument list or member access.";case 1038:return"A 'declare' modifier cannot be used in an already ambient context.";case 1140:return"Type argument expected.";case 1141:return"String literal expected.";case 1142:return"Line break not permitted here.";case 1146:return"Declaration expected.";case 1155:return"'const' declarations must be initialized.";case 1161:return"Unterminated regular expression literal.";case 1263:return"Declarations with initializers cannot also have definite assignment assertions.";case 1176:return"Interface declaration cannot have 'implements' clause.";case 1177:return"Binary digit expected.";case 1178:return"Octal digit expected.";case 1183:return"An implementation cannot be declared in ambient contexts.";case 1190:return"The variable declaration of a 'for...of' statement cannot have an initializer.";case 1198:return"An extended Unicode escape value must be between 0x0 and 0x10FFFF inclusive.";case 1199:return"Unterminated Unicode escape sequence.";case 1206:return"Decorators are not valid here.";case 1242:return"'abstract' modifier can only appear on a class, method, or property declaration.";case 1245:return"Method '{0}' cannot have an implementation because it is marked abstract.";case 1246:return"An interface property cannot have an initializer.";case 1255:return"A definite assignment assertion '!' is not permitted in this context.";case 1308:return"'await' expressions are only allowed within async functions and at the top levels of modules.";case 1311:return"A class may only extend another class.";case 1317:return"A parameter property cannot be declared using a rest parameter.";case 1319:return"A default export can only be used in a module.";case 1345:return"An expression of type '{0}' cannot be tested for truthiness.";case 1351:return"An identifier or keyword cannot immediately follow a numeric literal.";case 2300:return"Duplicate identifier '{0}'.";case 2304:return"Cannot find name '{0}'.";case 2305:return"Module '{0}' has no exported member '{1}'.";case 2312:return"An interface can only extend an interface.";case 2314:return"Generic type '{0}' requires {1} type argument(s).";case 2315:return"Type '{0}' is not generic.";case 2322:return"Type '{0}' is not assignable to type '{1}'.";case 2325:return"Property '{0}' is private in type '{1}' but not in type '{2}'.";case 2329:return"Index signature is missing in type '{0}'.";case 2332:return"'this' cannot be referenced in current location.";case 2333:return"'this' cannot be referenced in constructor arguments.";case 2335:return"'super' can only be referenced in a derived class.";case 2336:return"'super' cannot be referenced in constructor arguments.";case 2337:return"Super calls are not permitted outside constructors or in nested functions inside constructors.";case 2339:return"Property '{0}' does not exist on type '{1}'.";case 2341:return"Property '{0}' is private and only accessible within class '{1}'.";case 2349:return"Cannot invoke an expression whose type lacks a call signature. Type '{0}' has no compatible call signatures.";case 2351:return"This expression is not constructable.";case 2355:return"A function whose declared type is not 'void' must return a value.";case 2357:return"The operand of an increment or decrement operator must be a variable or a property access.";case 2364:return"The left-hand side of an assignment expression must be a variable or a property access.";case 2365:return"Operator '{0}' cannot be applied to types '{1}' and '{2}'.";case 2376:return"A 'super' call must be the first statement in the constructor.";case 2377:return"Constructors for derived classes must contain a 'super' call.";case 2380:return"'get' and 'set' accessor must have the same type.";case 2385:return"Overload signatures must all be public, private or protected.";case 2390:return"Constructor implementation is missing.";case 2391:return"Function implementation is missing or not immediately following the declaration.";case 2392:return"Multiple constructor implementations are not allowed.";case 2393:return"Duplicate function implementation.";case 2394:return"This overload signature is not compatible with its implementation signature.";case 2395:return"Individual declarations in merged declaration '{0}' must be all exported or all local.";case 2416:return"Property '{0}' in type '{1}' is not assignable to the same property in base type '{2}'.";case 2422:return"A class can only implement an interface.";case 2434:return"A namespace declaration cannot be located prior to a class or function with which it is merged.";case 2442:return"Types have separate declarations of a private property '{0}'.";case 2444:return"Property '{0}' is protected in type '{1}' but public in type '{2}'.";case 2445:return"Property '{0}' is protected and only accessible within class '{1}' and its subclasses.";case 2448:return"Variable '{0}' used before its declaration.";case 2451:return"Cannot redeclare block-scoped variable '{0}'";case 2453:return"The type argument for type parameter '{0}' cannot be inferred from the usage. Consider specifying the type arguments explicitly.";case 2454:return"Variable '{0}' is used before being assigned.";case 2456:return"Type alias '{0}' circularly references itself.";case 2460:return"Type '{0}' has no property '{1}'.";case 2469:return"The '{0}' operator cannot be applied to type '{1}'.";case 2474:return"In 'const' enum declarations member initializer must be constant expression.";case 2476:return"A const enum member can only be accessed using a string literal.";case 2484:return"Export declaration conflicts with exported declaration of '{0}'.";case 2506:return"'{0}' is referenced directly or indirectly in its own base expression.";case 2511:return"Cannot create an instance of an abstract class.";case 2515:return"Non-abstract class '{0}' does not implement inherited abstract member '{1}' from '{2}'.";case 2531:return"Object is possibly 'null'.";case 2540:return"Cannot assign to '{0}' because it is a constant or a read-only property.";case 2541:return"The target of an assignment must be a variable or a property access.";case 2542:return"Index signature in type '{0}' only permits reading.";case 2554:return"Expected {0} arguments, but got {1}.";case 2555:return"Expected at least {0} arguments, but got {1}.";case 2558:return"Expected {0} type arguments, but got {1}.";case 2564:return"Property '{0}' has no initializer and is not assigned in the constructor before 'this' is used or returned.";case 2565:return"Property '{0}' is used before being assigned.";case 2610:return"'{0}' is defined as an accessor in class '{1}', but is overridden here in '{2}' as an instance property.";case 2611:return"'{0}' is defined as a property in class '{1}', but is overridden here in '{2}' as an accessor.";case 2651:return"A member initializer in a enum declaration cannot reference members declared after it, including members defined in other enums.";case 2673:return"Constructor of class '{0}' is private and only accessible within the class declaration.";case 2674:return"Constructor of class '{0}' is protected and only accessible within the class declaration.";case 2675:return"Cannot extend a class '{0}'. Class constructor is marked as private.";case 2685:return"The 'this' types of each signature are incompatible.";case 2694:return"Namespace '{0}' has no exported member '{1}'.";case 2695:return"Namespace can only have declarations.";case 2706:return"Required type parameters may not follow optional type parameters.";case 2718:return"Duplicate property '{0}'.";case 2741:return"Property '{0}' is missing in type '{1}' but required in type '{2}'.";case 2757:return"Type '{0}' has no call signatures.";case 2808:return"Get accessor '{0}' must be at least as accessible as the setter.";case 4117:return"This member cannot have an 'override' modifier because it is not declared in the base class '{0}'.";case 6054:return"File '{0}' not found.";case 6188:return"Numeric separators are not allowed here.";case 6189:return"Multiple consecutive numeric separators are not permitted.";case 6234:return"This expression is not callable because it is a 'get' accessor. Did you mean to use it without '()'?";case 17009:return"'super' must be called before accessing 'this' in the constructor of a derived class.";case 17011:return"'super' must be called before accessing a property of 'super' in the constructor of a derived class.";case 6390:return"A struct cannot be both '@managed' and '@unmanaged'.";case 6391:return"A struct cannot be both '@inline' and '@managed'.";case 6392:return"A memory-model decorator must precede the type it applies to: '{0}'.";case 6393:return"Only one memory-model decorator may apply to a use.";case 6394:return"Type '{0}' has no GC header, so a use cannot make it '@managed'; declare the record '@managed' instead.";case 6395:return"Type '{0}' is a value with no address, so a use cannot view it as '{1}'; use the value, or keep it '@inline'.";case 6396:return"A '@lazy' decorator must precede the expression it defers, not follow a type.";case 6397:return"'@lazy' expressions must be the initializer of a variable declaration.";case 6398:return"A '@lazy' expression in this position is not lowered; it is evaluated eagerly.";case 6399:return"A '@lazy await' binding needs a declared type: the memo cells are lifted into the task's state struct, and a state field needs a syntactic type ('{0}').";case 6400:return"A '@lazy await' binding cannot be read from a nested function: a capture moves the storage, and the memo cell is a state field ('{0}').";case 6401:return"A 'spawn' produces a Task; this one is never awaited, so the task's result is discarded.";case 6402:return"An 'await' forces an immediate read of '@lazy', so the deferral is nullified; drop the '@lazy', or remove the 'await'.";case 6403:return"An enum underlying type must be one of i8, u8, i16, u16, i32 or u32, not '{0}'.";case 6404:return"Enum member '{0}' does not fit the underlying type '{1}'.";case 6405:return"'@abi.align' requires a single integer literal argument; the alignment is a compile-time constant, so a computed value cannot be read where the layout is decided.";case 6406:return"'@abi.align({0})': the alignment must be at least 1.";case 6407:return"'@abi.align({0})': the alignment must be a power of two.";case 6408:return"'@abi.align({0})' is less than the field type's natural alignment ({1}); asking for less is a lie, so it is refused rather than silently ignored.";case 6409:return"'@abi.align({0})' is too large; the maximum is {1}.";case 6410:return"Alignment is a property of the field, not its type. Place '@abi.align(N)' on the field declaration.";default:return""}}var Kp={};Bu(Kp,{BitSet:()=>zp,COLOR_BLUE:()=>nE,COLOR_CYAN:()=>Op,COLOR_GRAY:()=>rE,COLOR_GREEN:()=>iE,COLOR_MAGENTA:()=>Vp,COLOR_RED:()=>pl,COLOR_RESET:()=>as,COLOR_WHITE:()=>sE,COLOR_YELLOW:()=>Up,CharCode:()=>yt,SURROGATE_HIGH:()=>is,SURROGATE_LOW:()=>Wi,accuratePow64:()=>sl,cloneMap:()=>de,colorize:()=>aE,combineSurrogates:()=>ns,dirname:()=>Bb,escapeString:()=>Re,getMapEntry:()=>te,indent:()=>W,isAlpha:()=>Gp,isAlphaOrDecimal:()=>Cb,isColorsEnabled:()=>Qi,isDecimal:()=>gt,isHexBase:()=>ss,isHexOrDecimal:()=>H1,isHighSurrogate:()=>Ki,isIdentifier:()=>$e,isIdentifierPart:()=>ji,isIdentifierStart:()=>Hi,isLineBreak:()=>Ht,isLowSurrogate:()=>ll,isOctal:()=>ol,isPowerOf2:()=>Kr,isSurrogate:()=>q1,isSurrogateHigh:()=>W1,isSurrogateLow:()=>K1,isWhiteSpace:()=>rs,mergeMaps:()=>O1,normalizePath:()=>Qr,numCodeUnits:()=>Hr,readF32:()=>G1,readF64:()=>U1,readI16:()=>D1,readI32:()=>Oi,readI64:()=>Rb,readI8:()=>z1,readV128:()=>V1,resolvePath:()=>ul,setColorsEnabled:()=>fl,v128_ones:()=>Wp,v128_zero:()=>qp,writeF32:()=>qr,writeF64:()=>Wr,writeI16:()=>gr,writeI32:()=>Se,writeI32AsI64:()=>nl,writeI64:()=>qi,writeI64AsI32:()=>Lp,writeI8:()=>ye,writeV128:()=>Mp});function z1(i,r){return i[r]}function ye(i,r,e){r[e]=i}function D1(i,r){return i32(i[r])|i32(i[r+1])<<8}function gr(i,r,e){r[e]=i,r[e+1]=i>>>8}function Oi(i,r){return i32(i[r])|i32(i[r+1])<<8|i32(i[r+2])<<16|i32(i[r+3])<<24}function Se(i,r,e){r[e]=i,r[e+1]=i>>>8,r[e+2]=i>>>16,r[e+3]=i>>>24}function nl(i,r,e,t=!1){Se(i,r,e),Se(t||i>=0?0:-1,r,e+4)}function Rb(i,r){let e=Oi(i,r),t=Oi(i,r+4);return i64_new(e,t)}function qi(i,r,e){Se(i64_low(i),r,e),Se(i64_high(i),r,e+4)}function Lp(i,r,e,t=!1){assert(t?i64_is_u32(i):i64_is_i32(i)),Se(i64_low(i),r,e)}function G1(i,r){return i32_as_f32(Oi(i,r))}function qr(i,r,e){Se(f32_as_i32(i),r,e)}function U1(i,r){return i64_as_f64(Rb(i,r))}function Wr(i,r,e){let t=f64_as_i64(i);Se(i64_low(t),r,e),Se(i64_high(t),r,e+4)}function V1(i,r){return i.slice(r,r+16)}function Mp(i,r,e){assert(i.length==16),r.set(i,e)}function te(i,r){return i.has(r)?i.get(r):null}function de(i){if(ASC_TARGET){let r=new Map;if(i)for(let e=Map_keys(i),t=0,n=e.length;t<n;++t){let s=unchecked(e[t]),a=assert(i.get(s));r.set(s,a)}return r}else return new Map(i)}function O1(i,r){if(ASC_TARGET){let e=new Map;for(let t=Map_keys(i),n=0,s=t.length;n<s;++n){let a=unchecked(t[n]),l=assert(i.get(a));e.set(a,l)}for(let t=Map_keys(r),n=0,s=t.length;n<s;++n){let a=unchecked(t[n]),l=assert(r.get(a));e.set(a,l)}return e}else{let e=new Map(i);return r.forEach((t,n)=>e.set(n,t)),e}}var zp=class{constructor(){this.clear()}get size(){let r=0,e=this.words;for(let t=0,n=e.length;t<n;t++){let s=unchecked(e[t]);s&&(r+=popcnt(s))}return r}add(r){let e=r>>>5,t=this.words;return e>=t.length&&(this.words=new Uint32Array(e+16),this.words.set(t),t=this.words),unchecked(t[e]|=1<<r),this}delete(r){let e=r>>>5,t=this.words;e>=t.length||unchecked(t[e]&=~(1<<r))}has(r){let e=r>>>5,t=this.words;return e>=t.length?!1:(unchecked(t[r>>>5])&1<<r)!==0}clear(){this.words=new Uint32Array(16)}toArray(){let r=new Array(this.size);for(let e=0,t=0,n=this.words.length;e<n;++e){let s=unchecked(this.words[e]);for(;s;){let a=s&-s;unchecked(r[t++]=(e<<5)+popcnt(a-1)),s^=a}}return r}toString(){return`BitSet { ${this.toArray()} }`}};function Kr(i){return i!=0&&(i&i-1)==0}function sl(i,r){return ASC_TARGET?Math.pow(i,r):f64_pow(i,r)}var yt=(T=>(T[T.Null=0]="Null",T[T.LineFeed=10]="LineFeed",T[T.CarriageReturn=13]="CarriageReturn",T[T.LineSeparator=8232]="LineSeparator",T[T.ParagraphSeparator=8233]="ParagraphSeparator",T[T.NextLine=133]="NextLine",T[T.Space=32]="Space",T[T.NonBreakingSpace=160]="NonBreakingSpace",T[T.EnQuad=8192]="EnQuad",T[T.EmQuad=8193]="EmQuad",T[T.EnSpace=8194]="EnSpace",T[T.EmSpace=8195]="EmSpace",T[T.ThreePerEmSpace=8196]="ThreePerEmSpace",T[T.FourPerEmSpace=8197]="FourPerEmSpace",T[T.SixPerEmSpace=8198]="SixPerEmSpace",T[T.FigureSpace=8199]="FigureSpace",T[T.PunctuationSpace=8200]="PunctuationSpace",T[T.ThinSpace=8201]="ThinSpace",T[T.HairSpace=8202]="HairSpace",T[T.ZeroWidthSpace=8203]="ZeroWidthSpace",T[T.NarrowNoBreakSpace=8239]="NarrowNoBreakSpace",T[T.IdeographicSpace=12288]="IdeographicSpace",T[T.MathematicalSpace=8287]="MathematicalSpace",T[T.Ogham=5760]="Ogham",T[T._=95]="_",T[T._0=48]="_0",T[T._1=49]="_1",T[T._2=50]="_2",T[T._3=51]="_3",T[T._4=52]="_4",T[T._5=53]="_5",T[T._6=54]="_6",T[T._7=55]="_7",T[T._8=56]="_8",T[T._9=57]="_9",T[T.a=97]="a",T[T.b=98]="b",T[T.c=99]="c",T[T.d=100]="d",T[T.e=101]="e",T[T.f=102]="f",T[T.g=103]="g",T[T.h=104]="h",T[T.i=105]="i",T[T.j=106]="j",T[T.k=107]="k",T[T.l=108]="l",T[T.m=109]="m",T[T.n=110]="n",T[T.o=111]="o",T[T.p=112]="p",T[T.q=113]="q",T[T.r=114]="r",T[T.s=115]="s",T[T.t=116]="t",T[T.u=117]="u",T[T.v=118]="v",T[T.w=119]="w",T[T.x=120]="x",T[T.y=121]="y",T[T.z=122]="z",T[T.A=65]="A",T[T.B=66]="B",T[T.C=67]="C",T[T.D=68]="D",T[T.E=69]="E",T[T.F=70]="F",T[T.G=71]="G",T[T.H=72]="H",T[T.I=73]="I",T[T.J=74]="J",T[T.K=75]="K",T[T.L=76]="L",T[T.M=77]="M",T[T.N=78]="N",T[T.O=79]="O",T[T.P=80]="P",T[T.Q=81]="Q",T[T.R=82]="R",T[T.S=83]="S",T[T.T=84]="T",T[T.U=85]="U",T[T.V=86]="V",T[T.W=87]="W",T[T.X=88]="X",T[T.Y=89]="Y",T[T.Z=90]="Z",T[T.Ampersand=38]="Ampersand",T[T.Asterisk=42]="Asterisk",T[T.At=64]="At",T[T.Backslash=92]="Backslash",T[T.Backtick=96]="Backtick",T[T.Bar=124]="Bar",T[T.Caret=94]="Caret",T[T.CloseBrace=125]="CloseBrace",T[T.CloseBracket=93]="CloseBracket",T[T.CloseParen=41]="CloseParen",T[T.Colon=58]="Colon",T[T.Comma=44]="Comma",T[T.Dollar=36]="Dollar",T[T.Dot=46]="Dot",T[T.DoubleQuote=34]="DoubleQuote",T[T.Equals=61]="Equals",T[T.Exclamation=33]="Exclamation",T[T.GreaterThan=62]="GreaterThan",T[T.Hash=35]="Hash",T[T.LessThan=60]="LessThan",T[T.Minus=45]="Minus",T[T.OpenBrace=123]="OpenBrace",T[T.OpenBracket=91]="OpenBracket",T[T.OpenParen=40]="OpenParen",T[T.Percent=37]="Percent",T[T.Plus=43]="Plus",T[T.Question=63]="Question",T[T.Semicolon=59]="Semicolon",T[T.SingleQuote=39]="SingleQuote",T[T.Slash=47]="Slash",T[T.Tilde=126]="Tilde",T[T.Backspace=8]="Backspace",T[T.FormFeed=12]="FormFeed",T[T.ByteOrderMark=65279]="ByteOrderMark",T[T.Tab=9]="Tab",T[T.VerticalTab=11]="VerticalTab",T))(yt||{});function Ht(i){switch(i){case 10:case 13:case 8232:case 8233:return!0;default:return!1}}function rs(i){switch(i){case 32:case 9:case 11:case 12:case 160:case 133:case 5760:case 8239:case 8287:case 12288:case 65279:return!0;default:return i>=8192&&i<=8203}}var is=55296,Wi=56320;function q1(i){return(i&63488)==is}function W1(i){return i<Wi}function K1(i){return i>=Wi}function Ki(i){return(i&64512)==is}function ll(i){return(i&64512)==Wi}function ns(i,r){return 65536+((i&1023)<<10)|r&1023}function Hr(i){return 1+i32(i>65535)}function Gp(i){let r=i|32;return r>=97&&r<=122}function gt(i){return i>=48&&i<=57}function ol(i){return i>=48&&i<=55}function ss(i){let r=i|32;return r>=97&&r<=102}function H1(i){return gt(i)||ss(i)}function Cb(i){return Gp(i)||gt(i)}function Hi(i){return Gp(i)||i==95||i==36||i>=Q1&&i<=X1&&Pb(i,j1)}function ji(i){return Cb(i)||i==95||i==36||i>=Z1&&i<=Y1&&Pb(i,$1)}function $e(i){let r=i.length;if(!r)return!1;let e=i.codePointAt(0);if(!Hi(e))return!1;let t=Hr(e);for(;t<r;){if(e=i.codePointAt(t),!ji(e))return!1;t+=Hr(e)}return!0}var j1=[170,170,181,181,186,186,192,214,216,246,248,705,710,721,736,740,748,748,750,750,880,884,886,887,890,893,895,895,902,902,904,906,908,908,910,929,931,1013,1015,1153,1162,1327,1329,1366,1369,1369,1376,1416,1488,1514,1519,1522,1568,1610,1646,1647,1649,1747,1749,1749,1765,1766,1774,1775,1786,1788,1791,1791,1808,1808,1810,1839,1869,1957,1969,1969,1994,2026,2036,2037,2042,2042,2048,2069,2074,2074,2084,2084,2088,2088,2112,2136,2144,2154,2160,2183,2185,2191,2208,2249,2308,2361,2365,2365,2384,2384,2392,2401,2417,2432,2437,2444,2447,2448,2451,2472,2474,2480,2482,2482,2486,2489,2493,2493,2510,2510,2524,2525,2527,2529,2544,2545,2556,2556,2565,2570,2575,2576,2579,2600,2602,2608,2610,2611,2613,2614,2616,2617,2649,2652,2654,2654,2674,2676,2693,2701,2703,2705,2707,2728,2730,2736,2738,2739,2741,2745,2749,2749,2768,2768,2784,2785,2809,2809,2821,2828,2831,2832,2835,2856,2858,2864,2866,2867,2869,2873,2877,2877,2908,2909,2911,2913,2929,2929,2947,2947,2949,2954,2958,2960,2962,2965,2969,2970,2972,2972,2974,2975,2979,2980,2984,2986,2990,3001,3024,3024,3077,3084,3086,3088,3090,3112,3114,3129,3133,3133,3160,3162,3164,3165,3168,3169,3200,3200,3205,3212,3214,3216,3218,3240,3242,3251,3253,3257,3261,3261,3292,3294,3296,3297,3313,3314,3332,3340,3342,3344,3346,3386,3389,3389,3406,3406,3412,3414,3423,3425,3450,3455,3461,3478,3482,3505,3507,3515,3517,3517,3520,3526,3585,3632,3634,3635,3648,3654,3713,3714,3716,3716,3718,3722,3724,3747,3749,3749,3751,3760,3762,3763,3773,3773,3776,3780,3782,3782,3804,3807,3840,3840,3904,3911,3913,3948,3976,3980,4096,4138,4159,4159,4176,4181,4186,4189,4193,4193,4197,4198,4206,4208,4213,4225,4238,4238,4256,4293,4295,4295,4301,4301,4304,4346,4348,4680,4682,4685,4688,4694,4696,4696,4698,4701,4704,4744,4746,4749,4752,4784,4786,4789,4792,4798,4800,4800,4802,4805,4808,4822,4824,4880,4882,4885,4888,4954,4992,5007,5024,5109,5112,5117,5121,5740,5743,5759,5761,5786,5792,5866,5870,5880,5888,5905,5919,5937,5952,5969,5984,5996,5998,6e3,6016,6067,6103,6103,6108,6108,6176,6264,6272,6312,6314,6314,6320,6389,6400,6430,6480,6509,6512,6516,6528,6571,6576,6601,6656,6678,6688,6740,6823,6823,6917,6963,6981,6988,7043,7072,7086,7087,7098,7141,7168,7203,7245,7247,7258,7293,7296,7306,7312,7354,7357,7359,7401,7404,7406,7411,7413,7414,7418,7418,7424,7615,7680,7957,7960,7965,7968,8005,8008,8013,8016,8023,8025,8025,8027,8027,8029,8029,8031,8061,8064,8116,8118,8124,8126,8126,8130,8132,8134,8140,8144,8147,8150,8155,8160,8172,8178,8180,8182,8188,8305,8305,8319,8319,8336,8348,8450,8450,8455,8455,8458,8467,8469,8469,8472,8477,8484,8484,8486,8486,8488,8488,8490,8505,8508,8511,8517,8521,8526,8526,8544,8584,11264,11492,11499,11502,11506,11507,11520,11557,11559,11559,11565,11565,11568,11623,11631,11631,11648,11670,11680,11686,11688,11694,11696,11702,11704,11710,11712,11718,11720,11726,11728,11734,11736,11742,12293,12295,12321,12329,12337,12341,12344,12348,12353,12438,12443,12447,12449,12538,12540,12543,12549,12591,12593,12686,12704,12735,12784,12799,13312,19903,19968,42124,42192,42237,42240,42508,42512,42527,42538,42539,42560,42606,42623,42653,42656,42735,42775,42783,42786,42888,42891,42972,42993,43009,43011,43013,43015,43018,43020,43042,43072,43123,43138,43187,43250,43255,43259,43259,43261,43262,43274,43301,43312,43334,43360,43388,43396,43442,43471,43471,43488,43492,43494,43503,43514,43518,43520,43560,43584,43586,43588,43595,43616,43638,43642,43642,43646,43695,43697,43697,43701,43702,43705,43709,43712,43712,43714,43714,43739,43741,43744,43754,43762,43764,43777,43782,43785,43790,43793,43798,43808,43814,43816,43822,43824,43866,43868,43881,43888,44002,44032,55203,55216,55238,55243,55291,63744,64109,64112,64217,64256,64262,64275,64279,64285,64285,64287,64296,64298,64310,64312,64316,64318,64318,64320,64321,64323,64324,64326,64433,64467,64829,64848,64911,64914,64967,65008,65019,65136,65140,65142,65276,65313,65338,65345,65370,65382,65470,65474,65479,65482,65487,65490,65495,65498,65500,65536,65547,65549,65574,65576,65594,65596,65597,65599,65613,65616,65629,65664,65786,65856,65908,66176,66204,66208,66256,66304,66335,66349,66378,66384,66421,66432,66461,66464,66499,66504,66511,66513,66517,66560,66717,66736,66771,66776,66811,66816,66855,66864,66915,66928,66938,66940,66954,66956,66962,66964,66965,66967,66977,66979,66993,66995,67001,67003,67004,67008,67059,67072,67382,67392,67413,67424,67431,67456,67461,67463,67504,67506,67514,67584,67589,67592,67592,67594,67637,67639,67640,67644,67644,67647,67669,67680,67702,67712,67742,67808,67826,67828,67829,67840,67861,67872,67897,67904,67929,67968,68023,68030,68031,68096,68096,68112,68115,68117,68119,68121,68149,68192,68220,68224,68252,68288,68295,68297,68324,68352,68405,68416,68437,68448,68466,68480,68497,68608,68680,68736,68786,68800,68850,68864,68899,68938,68965,68975,68997,69248,69289,69296,69297,69314,69319,69376,69404,69415,69415,69424,69445,69488,69505,69552,69572,69600,69622,69635,69687,69745,69746,69749,69749,69763,69807,69840,69864,69891,69926,69956,69956,69959,69959,69968,70002,70006,70006,70019,70066,70081,70084,70106,70106,70108,70108,70144,70161,70163,70187,70207,70208,70272,70278,70280,70280,70282,70285,70287,70301,70303,70312,70320,70366,70405,70412,70415,70416,70419,70440,70442,70448,70450,70451,70453,70457,70461,70461,70480,70480,70493,70497,70528,70537,70539,70539,70542,70542,70544,70581,70583,70583,70609,70609,70611,70611,70656,70708,70727,70730,70751,70753,70784,70831,70852,70853,70855,70855,71040,71086,71128,71131,71168,71215,71236,71236,71296,71338,71352,71352,71424,71450,71488,71494,71680,71723,71840,71903,71935,71942,71945,71945,71948,71955,71957,71958,71960,71983,71999,71999,72001,72001,72096,72103,72106,72144,72161,72161,72163,72163,72192,72192,72203,72242,72250,72250,72272,72272,72284,72329,72349,72349,72368,72440,72640,72672,72704,72712,72714,72750,72768,72768,72818,72847,72960,72966,72968,72969,72971,73008,73030,73030,73056,73061,73063,73064,73066,73097,73112,73112,73136,73179,73440,73458,73474,73474,73476,73488,73490,73523,73648,73648,73728,74649,74752,74862,74880,75075,77712,77808,77824,78895,78913,78918,78944,82938,82944,83526,90368,90397,92160,92728,92736,92766,92784,92862,92880,92909,92928,92975,92992,92995,93027,93047,93053,93071,93504,93548,93760,93823,93856,93880,93883,93907,93952,94026,94032,94032,94099,94111,94176,94177,94179,94179,94194,94198,94208,101589,101631,101662,101760,101874,110576,110579,110581,110587,110589,110590,110592,110882,110898,110898,110928,110930,110933,110933,110948,110951,110960,111355,113664,113770,113776,113788,113792,113800,113808,113817,119808,119892,119894,119964,119966,119967,119970,119970,119973,119974,119977,119980,119982,119993,119995,119995,119997,120003,120005,120069,120071,120074,120077,120084,120086,120092,120094,120121,120123,120126,120128,120132,120134,120134,120138,120144,120146,120485,120488,120512,120514,120538,120540,120570,120572,120596,120598,120628,120630,120654,120656,120686,120688,120712,120714,120744,120746,120770,120772,120779,122624,122654,122661,122666,122928,122989,123136,123180,123191,123197,123214,123214,123536,123565,123584,123627,124112,124139,124368,124397,124400,124400,124608,124638,124640,124642,124644,124645,124647,124653,124656,124660,124670,124671,124896,124902,124904,124907,124909,124910,124912,124926,124928,125124,125184,125251,125259,125259,126464,126467,126469,126495,126497,126498,126500,126500,126503,126503,126505,126514,126516,126519,126521,126521,126523,126523,126530,126530,126535,126535,126537,126537,126539,126539,126541,126543,126545,126546,126548,126548,126551,126551,126553,126553,126555,126555,126557,126557,126559,126559,126561,126562,126564,126564,126567,126570,126572,126578,126580,126583,126585,126588,126590,126590,126592,126601,126603,126619,126625,126627,126629,126633,126635,126651,131072,173791,173824,178205,178208,183981,183984,191456,191472,192093,194560,195101,196608,201546,201552,210041],Q1=170,X1=210041,$1=[170,170,181,181,183,183,186,186,192,214,216,246,248,705,710,721,736,740,748,748,750,750,768,884,886,887,890,893,895,895,902,906,908,908,910,929,931,1013,1015,1153,1155,1159,1162,1327,1329,1366,1369,1369,1376,1416,1425,1469,1471,1471,1473,1474,1476,1477,1479,1479,1488,1514,1519,1522,1552,1562,1568,1641,1646,1747,1749,1756,1759,1768,1770,1788,1791,1791,1808,1866,1869,1969,1984,2037,2042,2042,2045,2045,2048,2093,2112,2139,2144,2154,2160,2183,2185,2191,2199,2273,2275,2403,2406,2415,2417,2435,2437,2444,2447,2448,2451,2472,2474,2480,2482,2482,2486,2489,2492,2500,2503,2504,2507,2510,2519,2519,2524,2525,2527,2531,2534,2545,2556,2556,2558,2558,2561,2563,2565,2570,2575,2576,2579,2600,2602,2608,2610,2611,2613,2614,2616,2617,2620,2620,2622,2626,2631,2632,2635,2637,2641,2641,2649,2652,2654,2654,2662,2677,2689,2691,2693,2701,2703,2705,2707,2728,2730,2736,2738,2739,2741,2745,2748,2757,2759,2761,2763,2765,2768,2768,2784,2787,2790,2799,2809,2815,2817,2819,2821,2828,2831,2832,2835,2856,2858,2864,2866,2867,2869,2873,2876,2884,2887,2888,2891,2893,2901,2903,2908,2909,2911,2915,2918,2927,2929,2929,2946,2947,2949,2954,2958,2960,2962,2965,2969,2970,2972,2972,2974,2975,2979,2980,2984,2986,2990,3001,3006,3010,3014,3016,3018,3021,3024,3024,3031,3031,3046,3055,3072,3084,3086,3088,3090,3112,3114,3129,3132,3140,3142,3144,3146,3149,3157,3158,3160,3162,3164,3165,3168,3171,3174,3183,3200,3203,3205,3212,3214,3216,3218,3240,3242,3251,3253,3257,3260,3268,3270,3272,3274,3277,3285,3286,3292,3294,3296,3299,3302,3311,3313,3315,3328,3340,3342,3344,3346,3396,3398,3400,3402,3406,3412,3415,3423,3427,3430,3439,3450,3455,3457,3459,3461,3478,3482,3505,3507,3515,3517,3517,3520,3526,3530,3530,3535,3540,3542,3542,3544,3551,3558,3567,3570,3571,3585,3642,3648,3662,3664,3673,3713,3714,3716,3716,3718,3722,3724,3747,3749,3749,3751,3773,3776,3780,3782,3782,3784,3790,3792,3801,3804,3807,3840,3840,3864,3865,3872,3881,3893,3893,3895,3895,3897,3897,3902,3911,3913,3948,3953,3972,3974,3991,3993,4028,4038,4038,4096,4169,4176,4253,4256,4293,4295,4295,4301,4301,4304,4346,4348,4680,4682,4685,4688,4694,4696,4696,4698,4701,4704,4744,4746,4749,4752,4784,4786,4789,4792,4798,4800,4800,4802,4805,4808,4822,4824,4880,4882,4885,4888,4954,4957,4959,4969,4977,4992,5007,5024,5109,5112,5117,5121,5740,5743,5759,5761,5786,5792,5866,5870,5880,5888,5909,5919,5940,5952,5971,5984,5996,5998,6e3,6002,6003,6016,6099,6103,6103,6108,6109,6112,6121,6155,6157,6159,6169,6176,6264,6272,6314,6320,6389,6400,6430,6432,6443,6448,6459,6470,6509,6512,6516,6528,6571,6576,6601,6608,6618,6656,6683,6688,6750,6752,6780,6783,6793,6800,6809,6823,6823,6832,6845,6847,6877,6880,6891,6912,6988,6992,7001,7019,7027,7040,7155,7168,7223,7232,7241,7245,7293,7296,7306,7312,7354,7357,7359,7376,7378,7380,7418,7424,7957,7960,7965,7968,8005,8008,8013,8016,8023,8025,8025,8027,8027,8029,8029,8031,8061,8064,8116,8118,8124,8126,8126,8130,8132,8134,8140,8144,8147,8150,8155,8160,8172,8178,8180,8182,8188,8204,8205,8255,8256,8276,8276,8305,8305,8319,8319,8336,8348,8400,8412,8417,8417,8421,8432,8450,8450,8455,8455,8458,8467,8469,8469,8472,8477,8484,8484,8486,8486,8488,8488,8490,8505,8508,8511,8517,8521,8526,8526,8544,8584,11264,11492,11499,11507,11520,11557,11559,11559,11565,11565,11568,11623,11631,11631,11647,11670,11680,11686,11688,11694,11696,11702,11704,11710,11712,11718,11720,11726,11728,11734,11736,11742,11744,11775,12293,12295,12321,12335,12337,12341,12344,12348,12353,12438,12441,12447,12449,12543,12549,12591,12593,12686,12704,12735,12784,12799,13312,19903,19968,42124,42192,42237,42240,42508,42512,42539,42560,42607,42612,42621,42623,42737,42775,42783,42786,42888,42891,42972,42993,43047,43052,43052,43072,43123,43136,43205,43216,43225,43232,43255,43259,43259,43261,43309,43312,43347,43360,43388,43392,43456,43471,43481,43488,43518,43520,43574,43584,43597,43600,43609,43616,43638,43642,43714,43739,43741,43744,43759,43762,43766,43777,43782,43785,43790,43793,43798,43808,43814,43816,43822,43824,43866,43868,43881,43888,44010,44012,44013,44016,44025,44032,55203,55216,55238,55243,55291,63744,64109,64112,64217,64256,64262,64275,64279,64285,64296,64298,64310,64312,64316,64318,64318,64320,64321,64323,64324,64326,64433,64467,64829,64848,64911,64914,64967,65008,65019,65024,65039,65056,65071,65075,65076,65101,65103,65136,65140,65142,65276,65296,65305,65313,65338,65343,65343,65345,65370,65381,65470,65474,65479,65482,65487,65490,65495,65498,65500,65536,65547,65549,65574,65576,65594,65596,65597,65599,65613,65616,65629,65664,65786,65856,65908,66045,66045,66176,66204,66208,66256,66272,66272,66304,66335,66349,66378,66384,66426,66432,66461,66464,66499,66504,66511,66513,66517,66560,66717,66720,66729,66736,66771,66776,66811,66816,66855,66864,66915,66928,66938,66940,66954,66956,66962,66964,66965,66967,66977,66979,66993,66995,67001,67003,67004,67008,67059,67072,67382,67392,67413,67424,67431,67456,67461,67463,67504,67506,67514,67584,67589,67592,67592,67594,67637,67639,67640,67644,67644,67647,67669,67680,67702,67712,67742,67808,67826,67828,67829,67840,67861,67872,67897,67904,67929,67968,68023,68030,68031,68096,68099,68101,68102,68108,68115,68117,68119,68121,68149,68152,68154,68159,68159,68192,68220,68224,68252,68288,68295,68297,68326,68352,68405,68416,68437,68448,68466,68480,68497,68608,68680,68736,68786,68800,68850,68864,68903,68912,68921,68928,68965,68969,68973,68975,68997,69248,69289,69291,69292,69296,69297,69314,69319,69370,69404,69415,69415,69424,69456,69488,69509,69552,69572,69600,69622,69632,69702,69734,69749,69759,69818,69826,69826,69840,69864,69872,69881,69888,69940,69942,69951,69956,69959,69968,70003,70006,70006,70016,70084,70089,70092,70094,70106,70108,70108,70144,70161,70163,70199,70206,70209,70272,70278,70280,70280,70282,70285,70287,70301,70303,70312,70320,70378,70384,70393,70400,70403,70405,70412,70415,70416,70419,70440,70442,70448,70450,70451,70453,70457,70459,70468,70471,70472,70475,70477,70480,70480,70487,70487,70493,70499,70502,70508,70512,70516,70528,70537,70539,70539,70542,70542,70544,70581,70583,70592,70594,70594,70597,70597,70599,70602,70604,70611,70625,70626,70656,70730,70736,70745,70750,70753,70784,70853,70855,70855,70864,70873,71040,71093,71096,71104,71128,71133,71168,71232,71236,71236,71248,71257,71296,71352,71360,71369,71376,71395,71424,71450,71453,71467,71472,71481,71488,71494,71680,71738,71840,71913,71935,71942,71945,71945,71948,71955,71957,71958,71960,71989,71991,71992,71995,72003,72016,72025,72096,72103,72106,72151,72154,72161,72163,72164,72192,72254,72263,72263,72272,72345,72349,72349,72368,72440,72544,72551,72640,72672,72688,72697,72704,72712,72714,72758,72760,72768,72784,72793,72818,72847,72850,72871,72873,72886,72960,72966,72968,72969,72971,73014,73018,73018,73020,73021,73023,73031,73040,73049,73056,73061,73063,73064,73066,73102,73104,73105,73107,73112,73120,73129,73136,73179,73184,73193,73440,73462,73472,73488,73490,73530,73534,73538,73552,73562,73648,73648,73728,74649,74752,74862,74880,75075,77712,77808,77824,78895,78912,78933,78944,82938,82944,83526,90368,90425,92160,92728,92736,92766,92768,92777,92784,92862,92864,92873,92880,92909,92912,92916,92928,92982,92992,92995,93008,93017,93027,93047,93053,93071,93504,93548,93552,93561,93760,93823,93856,93880,93883,93907,93952,94026,94031,94087,94095,94111,94176,94177,94179,94180,94192,94198,94208,101589,101631,101662,101760,101874,110576,110579,110581,110587,110589,110590,110592,110882,110898,110898,110928,110930,110933,110933,110948,110951,110960,111355,113664,113770,113776,113788,113792,113800,113808,113817,113821,113822,118e3,118009,118528,118573,118576,118598,119141,119145,119149,119154,119163,119170,119173,119179,119210,119213,119362,119364,119808,119892,119894,119964,119966,119967,119970,119970,119973,119974,119977,119980,119982,119993,119995,119995,119997,120003,120005,120069,120071,120074,120077,120084,120086,120092,120094,120121,120123,120126,120128,120132,120134,120134,120138,120144,120146,120485,120488,120512,120514,120538,120540,120570,120572,120596,120598,120628,120630,120654,120656,120686,120688,120712,120714,120744,120746,120770,120772,120779,120782,120831,121344,121398,121403,121452,121461,121461,121476,121476,121499,121503,121505,121519,122624,122654,122661,122666,122880,122886,122888,122904,122907,122913,122915,122916,122918,122922,122928,122989,123023,123023,123136,123180,123184,123197,123200,123209,123214,123214,123536,123566,123584,123641,124112,124153,124368,124410,124608,124638,124640,124661,124670,124671,124896,124902,124904,124907,124909,124910,124912,124926,124928,125124,125136,125142,125184,125259,125264,125273,126464,126467,126469,126495,126497,126498,126500,126500,126503,126503,126505,126514,126516,126519,126521,126521,126523,126523,126530,126530,126535,126535,126537,126537,126539,126539,126541,126543,126545,126546,126548,126548,126551,126551,126553,126553,126555,126555,126557,126557,126559,126559,126561,126562,126564,126564,126567,126570,126572,126578,126580,126583,126585,126588,126590,126590,126592,126601,126603,126619,126625,126627,126629,126633,126635,126651,130032,130041,131072,173791,173824,178205,178208,183981,183984,191456,191472,192093,194560,195101,196608,201546,201552,210041,917760,917999],Z1=170,Y1=917999;function Pb(i,r){let e=0,t=r.length;for(;e+1<t;){let n=e+(t-e>>>1);n-=n&1;let s=r[n];if(s<=i&&i<=r[n+1])return!0;i<s?t=n:e=n+2}return!1}var Dp=" ",J1=" ",eE=" ",tE=" ",al=new Map;function W(i,r){if(r<=4)switch(r){case 1:i.push(Dp);break;case 2:i.push(J1);break;case 3:i.push(eE);break;case 4:i.push(tE);break}else{let e;al.size<=1024?al.has(r)?e=assert(al.get(r)):al.set(r,e=Dp.repeat(r)):e=Dp.repeat(r),i.push(e)}}function Re(i,r){let e=new Array,t=0,n=0;for(let s=i.length;n<s;)switch(i.charCodeAt(n)){case 0:{n>t&&e.push(i.substring(t,t=n+1)),e.push("\\0"),t=++n;break}case 8:{n>t&&e.push(i.substring(t,n)),t=++n,e.push("\\b");break}case 9:{n>t&&e.push(i.substring(t,n)),t=++n,e.push("\\t");break}case 10:{n>t&&e.push(i.substring(t,n)),t=++n,e.push("\\n");break}case 11:{n>t&&e.push(i.substring(t,n)),t=++n,e.push("\\v");break}case 12:{n>t&&e.push(i.substring(t,n)),t=++n,e.push("\\f");break}case 13:{n>t&&e.push(i.substring(t,n)),e.push("\\r"),t=++n;break}case 34:{r==34?(n>t&&e.push(i.substring(t,n)),e.push('\\"'),t=++n):++n;break}case 39:{r==39?(n>t&&e.push(i.substring(t,n)),e.push("\\'"),t=++n):++n;break}case 92:{n>t&&e.push(i.substring(t,n)),e.push("\\\\"),t=++n;break}case 96:{r==96?(n>t&&e.push(i.substring(t,n)),e.push("\\`"),t=++n):++n;break}default:{++n;break}}return n>t&&e.push(i.substring(t,n)),e.join("")}var jr=47;function Qr(i){let r=0,e=i.length;for(;r+1<e&&i.charCodeAt(r)==46&&i.charCodeAt(r+1)==jr;)r+=2;(r>0||e<i.length)&&(i=i.substring(r,e),e-=r,r=0);let t;for(;r+1<e;){if(t=!1,i.charCodeAt(r)==jr&&i.charCodeAt(r+1)==46){if(t=r+2==e,t||r+2<e&&i.charCodeAt(r+2)==jr){i=t?i.substring(0,r):i.substring(0,r)+i.substring(r+2),e-=2;continue}if(t=r+3==e,t&&i.charCodeAt(r+2)==46||r+3<e&&i.charCodeAt(r+2)==46&&i.charCodeAt(r+3)==jr){let n=r;for(;--n>=0;)if(i.charCodeAt(n)==jr){(r-n!=3||i.charCodeAt(n+1)!=46||i.charCodeAt(n+2)!=46)&&(i=t?i.substring(0,n):i.substring(0,n)+i.substring(r+3),e-=r+3-n,r=n-1);break}if(n<0&&r>0&&(r!=2||i.charCodeAt(0)!=46||i.charCodeAt(1)!=46)){i=i.substring(r+4),e=i.length;continue}}}r++}return e>0?i:"."}function ul(i,r){return i.startsWith("std/")?i:Qr(Bb(r)+mt+i)}function Bb(i){let r=i.length;if(r<=1){if(r==0)return".";if(i.charCodeAt(0)==jr)return i}for(;--r>0;)if(i.charCodeAt(r)==jr)return i.substring(0,r);return"."}var rE="\x1B[90m",pl="\x1B[91m",iE="\x1B[92m",Up="\x1B[93m",nE="\x1B[94m",Vp="\x1B[95m",Op="\x1B[96m",sE="\x1B[97m",as="\x1B[0m",cl=!0;function Qi(){return cl}function fl(i){let r=cl;return cl=i,r}function aE(i,r){return cl?r+i+as:i}var qp=new Uint8Array(16),Wp=new Uint8Array(16).fill(255);var dl=(n=>(n[n.Pedantic=0]="Pedantic",n[n.Info=1]="Info",n[n.Warning=2]="Warning",n[n.Error=3]="Error",n))(dl||{}),ue=class i{constructor(r,e){this.start=r;this.end=e}static join(r,e){if(r.source!=e.source)throw new Error("source mismatch");let t=new i(r.start<e.start?r.start:e.start,r.end>e.end?r.end:e.end);return t.source=r.source,t}equals(r){return this.source==r.source&&this.start==r.start&&this.end==r.end}get atStart(){let r=new i(this.start,this.start);return r.source=this.source,r}get atEnd(){let r=new i(this.end,this.end);return r.source=this.source,r}toString(){return this.source.text.substring(this.start,this.end)}};function Hp(i){switch(i){case 0:return"PEDANTIC";case 1:return"INFO";case 2:return"WARNING";case 3:return"ERROR";default:return assert(!1),""}}function Lb(i){switch(i){case 0:return Vp;case 1:return Op;case 2:return Up;case 3:return pl;default:return assert(!1),""}}var _l=class i{constructor(r,e,t){this.range=null;this.relatedRange=null;this.code=r,this.category=e,this.message=t}static create(r,e,t=null,n=null,s=null){let a=il(r);return t!=null&&(a=a.replace("{0}",t)),n!=null&&(a=a.replace("{1}",n)),s!=null&&(a=a.replace("{2}",s)),new i(r,e,a)}equals(r){if(this.code!=r.code)return!1;let e=this.range,t=r.range;if(e){if(!t||!e.equals(t))return!1}else if(t)return!1;let n=this.relatedRange,s=r.relatedRange;if(n){if(!s||!n.equals(s))return!1}else if(s)return!1;return this.message==r.message}withRange(r){return this.range=r,this}withRelatedRange(r){return this.relatedRange=r,this}toString(){let r=Hp(this.category),e=this.range,t=this.code,n=this.message;if(e){let s=e.source,a=s.normalizedPath,l=s.lineAt(e.start),o=s.columnAt(),u=e.end-e.start;return`${r} ${t}: "${n}" in ${a}(${l},${o}+${u})`}return`${r} ${t}: ${n}`}};function Mb(i,r=!1,e=!1){let t=fl(r),n=[];Qi()&&n.push(Lb(i.category)),n.push(Hp(i.category)),Qi()&&n.push(as),n.push(i.code<1e3?" AS":" TS"),n.push(i.code.toString()),n.push(": "),n.push(i.message);let s=i.range;if(s){let a=s.source,l=i.relatedRange,o=0;if(l&&(o=max(a.lineAt(s.start),l.source.lineAt(l.start))),e?(n.push(`
10
+ `),n.push(Nb(s,o))):(n.push(`
11
+ in `),n.push(a.normalizedPath)),n.push("("),n.push(a.lineAt(s.start).toString()),n.push(","),n.push(a.columnAt().toString()),n.push(")"),l){let u=l.source;e?(n.push(`
12
+ `),n.push(Nb(l,o))):(n.push(`
13
+ in `),n.push(u.normalizedPath)),n.push("("),n.push(u.lineAt(l.start).toString()),n.push(","),n.push(u.columnAt().toString()),n.push(")")}}return fl(t),n.join("")}function Nb(i,r=0){let e=i.source,t=e.text,n=t.length,s=i.start,a=s,l=e.lineAt(s).toString(),o=r?max(r.toString().length,l.length):l.length,u=" ".repeat(o);for(;s>0&&!Ht(t.charCodeAt(s-1));)s--;for(;s<n&&rs(t.charCodeAt(s));)s++;for(;a<n&&!Ht(t.charCodeAt(a));)a++;let c=[u,` :
14
+ `," ".repeat(o-l.length),l," \u2502 ",t.substring(s,a).replaceAll(" "," "),`
15
+ `,u," \u2502 "];for(;s<i.start;)t.charCodeAt(s)==9?(c.push(" "),s+=2):(c.push(" "),s++);if(Qi()&&c.push(pl),i.start==i.end)c.push("^");else for(;s++<i.end;){let f=t.charCodeAt(s);if(f==9)c.push("~~");else if(Ht(f)){c.push(s==i.start+1?"^":"~");break}else c.push("~")}return Qi()&&c.push(as),c.push(`
16
+ `),c.push(u),c.push(" \u2514\u2500 in "),c.push(e.normalizedPath),c.join("")}var tt=class{constructor(r=null){this.seen=new Map;r||(r=[]),this.diagnostics=r}emitDiagnostic(r,e,t,n,s=null,a=null,l=null){let o=_l.create(r,e,s,a,l);if(t&&(o=o.withRange(t)),n&&(o.relatedRange=n),t){let u=this.seen;if(u.has(t.source)){let c=assert(u.get(t.source));if(c.has(t.start)){let f=assert(c.get(t.start));for(let _=0,d=f.length;_<d;++_)if(f[_].equals(o))return;f.push(o)}else c.set(t.start,[o])}else{let c=new Map;c.set(t.start,[o]),u.set(t.source,c)}}this.diagnostics.push(o)}pedantic(r,e,t=null,n=null,s=null){this.emitDiagnostic(r,0,e,null,t,n,s)}pedanticRelated(r,e,t,n=null,s=null,a=null){this.emitDiagnostic(r,0,e,t,n,s,a)}info(r,e,t=null,n=null,s=null){this.emitDiagnostic(r,1,e,null,t,n,s)}infoRelated(r,e,t,n=null,s=null,a=null){this.emitDiagnostic(r,1,e,t,n,s,a)}warning(r,e,t=null,n=null,s=null){this.emitDiagnostic(r,2,e,null,t,n,s)}warningRelated(r,e,t,n=null,s=null,a=null){this.emitDiagnostic(r,2,e,t,n,s,a)}error(r,e,t=null,n=null,s=null){this.emitDiagnostic(r,3,e,null,t,n,s)}errorRelated(r,e,t,n=null,s=null,a=null){this.emitDiagnostic(r,3,e,t,n,s,a)}};var bt=(T=>(T[T.Abstract=0]="Abstract",T[T.As=1]="As",T[T.Async=2]="Async",T[T.Await=3]="Await",T[T.Break=4]="Break",T[T.Case=5]="Case",T[T.Catch=6]="Catch",T[T.Class=7]="Class",T[T.Const=8]="Const",T[T.Continue=9]="Continue",T[T.Constructor=10]="Constructor",T[T.Debugger=11]="Debugger",T[T.Declare=12]="Declare",T[T.Default=13]="Default",T[T.Delete=14]="Delete",T[T.Do=15]="Do",T[T.Else=16]="Else",T[T.Enum=17]="Enum",T[T.Export=18]="Export",T[T.Extends=19]="Extends",T[T.False=20]="False",T[T.Finally=21]="Finally",T[T.For=22]="For",T[T.From=23]="From",T[T.Function=24]="Function",T[T.Get=25]="Get",T[T.If=26]="If",T[T.Implements=27]="Implements",T[T.Import=28]="Import",T[T.In=29]="In",T[T.InstanceOf=30]="InstanceOf",T[T.Interface=31]="Interface",T[T.Is=32]="Is",T[T.KeyOf=33]="KeyOf",T[T.Let=34]="Let",T[T.Module=35]="Module",T[T.Namespace=36]="Namespace",T[T.New=37]="New",T[T.Null=38]="Null",T[T.Of=39]="Of",T[T.Override=40]="Override",T[T.Package=41]="Package",T[T.Private=42]="Private",T[T.Protected=43]="Protected",T[T.Public=44]="Public",T[T.Readonly=45]="Readonly",T[T.Return=46]="Return",T[T.Set=47]="Set",T[T.Static=48]="Static",T[T.Struct=49]="Struct",T[T.Super=50]="Super",T[T.Switch=51]="Switch",T[T.This=52]="This",T[T.Throw=53]="Throw",T[T.True=54]="True",T[T.Try=55]="Try",T[T.Type=56]="Type",T[T.TypeOf=57]="TypeOf",T[T.Var=58]="Var",T[T.Void=59]="Void",T[T.While=60]="While",T[T.With=61]="With",T[T.Yield=62]="Yield",T[T.OpenBrace=63]="OpenBrace",T[T.CloseBrace=64]="CloseBrace",T[T.OpenParen=65]="OpenParen",T[T.CloseParen=66]="CloseParen",T[T.OpenBracket=67]="OpenBracket",T[T.CloseBracket=68]="CloseBracket",T[T.Dot=69]="Dot",T[T.Dot_Dot_Dot=70]="Dot_Dot_Dot",T[T.Semicolon=71]="Semicolon",T[T.Comma=72]="Comma",T[T.LessThan=73]="LessThan",T[T.GreaterThan=74]="GreaterThan",T[T.LessThan_Equals=75]="LessThan_Equals",T[T.GreaterThan_Equals=76]="GreaterThan_Equals",T[T.Equals_Equals=77]="Equals_Equals",T[T.Exclamation_Equals=78]="Exclamation_Equals",T[T.Equals_Equals_Equals=79]="Equals_Equals_Equals",T[T.Exclamation_Equals_Equals=80]="Exclamation_Equals_Equals",T[T.Equals_GreaterThan=81]="Equals_GreaterThan",T[T.Plus=82]="Plus",T[T.Minus=83]="Minus",T[T.Asterisk_Asterisk=84]="Asterisk_Asterisk",T[T.Asterisk=85]="Asterisk",T[T.Slash=86]="Slash",T[T.Percent=87]="Percent",T[T.Plus_Plus=88]="Plus_Plus",T[T.Minus_Minus=89]="Minus_Minus",T[T.LessThan_LessThan=90]="LessThan_LessThan",T[T.GreaterThan_GreaterThan=91]="GreaterThan_GreaterThan",T[T.GreaterThan_GreaterThan_GreaterThan=92]="GreaterThan_GreaterThan_GreaterThan",T[T.Ampersand=93]="Ampersand",T[T.Bar=94]="Bar",T[T.Caret=95]="Caret",T[T.Exclamation=96]="Exclamation",T[T.Tilde=97]="Tilde",T[T.Ampersand_Ampersand=98]="Ampersand_Ampersand",T[T.Bar_Bar=99]="Bar_Bar",T[T.Question=100]="Question",T[T.Colon=101]="Colon",T[T.Equals=102]="Equals",T[T.Plus_Equals=103]="Plus_Equals",T[T.Minus_Equals=104]="Minus_Equals",T[T.Asterisk_Equals=105]="Asterisk_Equals",T[T.Asterisk_Asterisk_Equals=106]="Asterisk_Asterisk_Equals",T[T.Slash_Equals=107]="Slash_Equals",T[T.Percent_Equals=108]="Percent_Equals",T[T.LessThan_LessThan_Equals=109]="LessThan_LessThan_Equals",T[T.GreaterThan_GreaterThan_Equals=110]="GreaterThan_GreaterThan_Equals",T[T.GreaterThan_GreaterThan_GreaterThan_Equals=111]="GreaterThan_GreaterThan_GreaterThan_Equals",T[T.Ampersand_Equals=112]="Ampersand_Equals",T[T.Bar_Equals=113]="Bar_Equals",T[T.Caret_Equals=114]="Caret_Equals",T[T.At=115]="At",T[T.Identifier=116]="Identifier",T[T.StringLiteral=117]="StringLiteral",T[T.IntegerLiteral=118]="IntegerLiteral",T[T.FloatLiteral=119]="FloatLiteral",T[T.TemplateLiteral=120]="TemplateLiteral",T[T.Invalid=121]="Invalid",T[T.EndOfFile=122]="EndOfFile",T))(bt||{}),Qp=(t=>(t[t.Default=0]="Default",t[t.Prefer=1]="Prefer",t[t.Always=2]="Always",t))(Qp||{});function zb(i){let r=i.length;switch(assert(r),i.charCodeAt(0)){case 97:{if(r==5){if(i=="async")return 2;if(i=="await")return 3;break}if(i=="as")return 1;if(i=="abstract")return 0;break}case 98:{if(i=="break")return 4;break}case 99:{if(r==5){if(i=="const")return 8;if(i=="class")return 7;if(i=="catch")return 6;break}if(i=="case")return 5;if(i=="continue")return 9;if(i=="constructor")return 10;break}case 100:{if(r==7){if(i=="default")return 13;if(i=="declare")return 12;break}if(i=="do")return 15;if(i=="delete")return 14;if(i=="debugger")return 11;break}case 101:{if(r==4){if(i=="else")return 16;if(i=="enum")return 17;break}if(i=="export")return 18;if(i=="extends")return 19;break}case 102:{if(r<=5){if(i=="false")return 20;if(i=="for")return 22;if(i=="from")return 23;break}if(i=="function")return 24;if(i=="finally")return 21;break}case 103:{if(i=="get")return 25;break}case 105:{if(r==2){if(i=="if")return 26;if(i=="in")return 29;if(i=="is")return 32;break}switch(i.charCodeAt(3)){case 108:{if(i=="implements")return 27;break}case 111:{if(i=="import")return 28;break}case 116:{if(i=="instanceof")return 30;break}case 101:{if(i=="interface")return 31;break}}break}case 107:{if(i=="keyof")return 33;break}case 108:{if(i=="let")return 34;break}case 109:{if(i=="module")return 35;break}case 110:{if(i=="new")return 37;if(i=="null")return 38;if(i=="namespace")return 36;break}case 111:{if(i=="of")return 39;if(i=="override")return 40;break}case 112:{if(r==7){if(i=="private")return 42;if(i=="package")return 41;break}if(i=="public")return 44;if(i=="protected")return 43;break}case 114:{if(i=="return")return 46;if(i=="readonly")return 45;break}case 115:{if(r==6){if(i=="switch")return 51;if(i=="static")return 48;if(i=="struct")return 49;break}if(i=="set")return 47;if(i=="super")return 50;break}case 116:{if(r==4){if(i=="true")return 54;if(i=="this")return 52;if(i=="type")return 56;break}if(i=="try")return 55;if(i=="throw")return 53;if(i=="typeof")return 57;break}case 118:{if(i=="var")return 58;if(i=="void")return 59;break}case 119:{if(i=="while")return 60;if(i=="with")return 61;break}case 121:{if(i=="yield")return 62;break}}return 121}function Db(i){switch(i){case 0:case 1:case 10:case 12:case 14:case 23:case 22:case 25:case 30:case 32:case 33:case 35:case 36:case 38:case 45:case 47:case 56:case 59:return!0;default:return!1}}function Xp(i){switch(assert(i.length),i.charCodeAt(0)){case 100:return i=="delete";case 102:return i=="for";case 105:return i=="instanceof";case 110:return i=="null";case 118:return i=="void"}return!1}function Le(i){switch(i){case 14:return"delete";case 29:return"in";case 30:return"instanceof";case 37:return"new";case 57:return"typeof";case 59:return"void";case 62:return"yield";case 70:return"...";case 72:return",";case 73:return"<";case 74:return">";case 75:return"<=";case 76:return">=";case 77:return"==";case 78:return"!=";case 79:return"===";case 80:return"!==";case 82:return"+";case 83:return"-";case 84:return"**";case 85:return"*";case 86:return"/";case 87:return"%";case 88:return"++";case 89:return"--";case 90:return"<<";case 91:return">>";case 92:return">>>";case 93:return"&";case 94:return"|";case 95:return"^";case 96:return"!";case 97:return"~";case 98:return"&&";case 99:return"||";case 102:return"=";case 103:return"+=";case 104:return"-=";case 105:return"*=";case 106:return"**=";case 107:return"/=";case 108:return"%=";case 109:return"<<=";case 110:return">>=";case 111:return">>>=";case 112:return"&=";case 113:return"|=";case 114:return"^=";default:return assert(!1),""}}var ls=class extends tt{constructor(e,t=null){super(t);this.end=0;this.pos=0;this.token=-1;this.tokenPos=0;this.nextToken=-1;this.nextTokenPos=0;this.nextTokenOnNewLine=2;this.onComment=null;this.readingTemplateString=!1;this.readStringStart=0;this.readStringEnd=0;t||(t=[]),this.diagnostics=t,this.source=e;let n=e.text,s=n.length,a=0;if(a<s&&n.charCodeAt(a)==65279&&++a,a+1<s&&n.charCodeAt(a)==35&&n.charCodeAt(a+1)==33)for(a+=2;a<s&&n.charCodeAt(a)!=10;)++a;this.pos=a,this.end=s}next(e=0){this.clearNextToken();let t;do t=this.unsafeNext(e);while(t==121);return this.token=t,t}unsafeNext(e=0,t=i32.MAX_VALUE){let n=this.source.text,s=this.end,a=this.pos;for(;a<s;){this.tokenPos=a;let l=n.charCodeAt(a);switch(l){case 13:if(!(++a<s&&n.charCodeAt(a)==10))break;case 10:case 9:case 11:case 12:case 32:{++a;break}case 33:return++a,t>1&&a<s&&n.charCodeAt(a)==61?(++a,t>2&&a<s&&n.charCodeAt(a)==61?(this.pos=a+1,80):(this.pos=a,78)):(this.pos=a,96);case 34:case 39:return this.pos=a,117;case 96:return this.pos=a,120;case 37:return++a,t>1&&a<s&&n.charCodeAt(a)==61?(this.pos=a+1,108):(this.pos=a,87);case 38:{if(++a,t>1&&a<s){let o=n.charCodeAt(a);if(o==38)return this.pos=a+1,98;if(o==61)return this.pos=a+1,112}return this.pos=a,93}case 40:return this.pos=a+1,65;case 41:return this.pos=a+1,66;case 42:{if(++a,t>1&&a<s){let o=n.charCodeAt(a);if(o==61)return this.pos=a+1,105;if(o==42)return++a,t>2&&a<s&&n.charCodeAt(a)==61?(this.pos=a+1,106):(this.pos=a,84)}return this.pos=a,85}case 43:{if(++a,t>1&&a<s){let o=n.charCodeAt(a);if(o==43)return this.pos=a+1,88;if(o==61)return this.pos=a+1,103}return this.pos=a,82}case 44:return this.pos=a+1,72;case 45:{if(++a,t>1&&a<s){let o=n.charCodeAt(a);if(o==45)return this.pos=a+1,89;if(o==61)return this.pos=a+1,104}return this.pos=a,83}case 46:{if(++a,t>1&&a<s){let o=n.charCodeAt(a);if(gt(o))return this.pos=a-1,119;if(t>2&&a+1<s&&o==46&&n.charCodeAt(a+1)==46)return this.pos=a+2,70}return this.pos=a,69}case 47:{let o=a;if(++a,t>1&&a<s){let u=n.charCodeAt(a);if(u==47){let c=0;for(a+1<s&&n.charCodeAt(a+1)==47&&(++a,c=1);++a<s;)if(n.charCodeAt(a)==10){++a;break}this.onComment&&this.onComment(c,n.substring(o,a),this.range(o,a));break}if(u==42){let c=!1;for(;++a<s;)if(l=n.charCodeAt(a),l==42&&a+1<s&&n.charCodeAt(a+1)==47){a+=2,c=!0;break}c?this.onComment&&this.onComment(2,n.substring(o,a),this.range(o,a)):this.error(1005,this.range(a),"*/");break}if(u==61)return this.pos=a+1,107}return this.pos=a,86}case 48:case 49:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 57:return this.pos=a,this.testInteger()?118:119;case 58:return this.pos=a+1,101;case 59:return this.pos=a+1,71;case 60:{if(++a,t>1&&a<s){let o=n.charCodeAt(a);if(o==60)return++a,t>2&&a<s&&n.charCodeAt(a)==61?(this.pos=a+1,109):(this.pos=a,90);if(o==61)return this.pos=a+1,75}return this.pos=a,73}case 61:{if(++a,t>1&&a<s){let o=n.charCodeAt(a);if(o==61)return++a,t>2&&a<s&&n.charCodeAt(a)==61?(this.pos=a+1,79):(this.pos=a,77);if(o==62)return this.pos=a+1,81}return this.pos=a,102}case 62:{if(++a,t>1&&a<s){let o=n.charCodeAt(a);if(o==62){if(++a,t>2&&a<s){if(o=n.charCodeAt(a),o==62)return++a,t>3&&a<s&&n.charCodeAt(a)==61?(this.pos=a+1,111):(this.pos=a,92);if(o==61)return this.pos=a+1,110}return this.pos=a,91}if(o==61)return this.pos=a+1,76}return this.pos=a,74}case 63:return this.pos=a+1,100;case 91:return this.pos=a+1,67;case 93:return this.pos=a+1,68;case 94:return++a,t>1&&a<s&&n.charCodeAt(a)==61?(this.pos=a+1,114):(this.pos=a,95);case 123:return this.pos=a+1,63;case 124:{if(++a,t>1&&a<s){let o=n.charCodeAt(a);if(o==124)return this.pos=a+1,99;if(o==61)return this.pos=a+1,113}return this.pos=a,94}case 125:return this.pos=a+1,64;case 126:return this.pos=a+1,97;case 64:return this.pos=a+1,115;default:{if(Ki(l)&&a+1<s&&(l=ns(l,n.charCodeAt(a+1))),Hi(l)){let u=a;for(;(a+=Hr(l))<s&&ji(l=n.codePointAt(a)););if(e!=2){let c=zb(n.substring(u,a));if(c!=121&&!(e==1&&Db(c)))return this.pos=a,c}return this.pos=u,116}else if(rs(l)){++a;break}let o=a;return a+=Hr(l),this.error(1127,this.range(o,a)),this.pos=a,121}}}return this.pos=a,122}peek(e=0,t=i32.MAX_VALUE){let n=this.nextToken;if(n<0){let s=this.pos,a=this.token,l=this.tokenPos;do n=this.unsafeNext(e,t);while(n==121);this.nextToken=n,this.nextTokenPos=this.tokenPos,this.nextTokenOnNewLine=2,this.pos=s,this.token=a,this.tokenPos=l}return n}peekOnNewLine(){switch(this.nextTokenOnNewLine){case 0:return!1;case 1:return!0}this.peek();let e=this.source.text;for(let t=this.pos,n=this.nextTokenPos;t<n;++t)if(Ht(e.charCodeAt(t)))return this.nextTokenOnNewLine=1,!0;return this.nextTokenOnNewLine=0,!1}skipIdentifier(e=1){return this.skip(116,e)}skip(e,t=0){let n=this.pos,s=this.token,a=this.tokenPos,l=i32.MAX_VALUE;e==74&&(l=1);let o;do o=this.unsafeNext(t,l);while(o==121);return o==e?(this.token=e,this.clearNextToken(),!0):(this.pos=n,this.token=s,this.tokenPos=a,!1)}mark(){let e=jp;return e?(jp=null,e.pos=this.pos,e.token=this.token,e.tokenPos=this.tokenPos):e=new hl(this.pos,this.token,this.tokenPos),e}discard(e){jp=e}reset(e){this.pos=e.pos,this.token=e.token,this.tokenPos=e.tokenPos,this.clearNextToken()}clearNextToken(){this.nextToken=-1,this.nextTokenPos=0,this.nextTokenOnNewLine=2}range(e=-1,t=-1){e<0?(e=this.tokenPos,t=this.pos):t<0&&(t=e);let n=new ue(e,t);return n.source=this.source,n}readIdentifier(){let e=this.source.text,t=this.end,n=this.pos,s=n,a=e.codePointAt(n);for(assert(Hi(a));(n+=Hr(a))<t&&ji(a=e.codePointAt(n)););return this.pos=n,e.substring(s,n)}readString(e=0,t=!1){let n=this.source.text,s=this.end,a=this.pos;e||(e=n.charCodeAt(a++));let l=a;this.readStringStart=l;let o="";for(;;){if(a>=s){o+=n.substring(l,a),this.error(1002,this.range(l-1,s)),this.readStringEnd=s;break}let u=n.charCodeAt(a);if(u==e){this.readStringEnd=a,o+=n.substring(l,a++);break}if(u==92){o+=n.substring(l,a),this.pos=a,o+=this.readEscapeSequence(t),a=this.pos,l=a;continue}if(e==96){if(u==36&&a+1<s&&n.charCodeAt(a+1)==123)return o+=n.substring(l,a),this.readStringEnd=a,this.pos=a+2,this.readingTemplateString=!0,o}else if(Ht(u)){o+=n.substring(l,a),this.error(1002,this.range(l-1,a)),this.readStringEnd=a;break}++a}return this.pos=a,this.readingTemplateString=!1,o}readEscapeSequence(e=!1){let t=this.pos,n=this.end;if(++this.pos>=n)return this.error(1126,this.range(n)),"";let s=this.source.text,a=s.charCodeAt(this.pos++);switch(a){case 48:return e&&this.pos<n&&gt(s.charCodeAt(this.pos))?(++this.pos,s.substring(t,this.pos)):"\0";case 98:return"\b";case 116:return" ";case 110:return`
17
+ `;case 118:return"\v";case 102:return"\f";case 114:return"\r";case 39:return"'";case 34:return'"';case 117:return this.pos<n&&s.charCodeAt(this.pos)==123?(++this.pos,this.readExtendedUnicodeEscape(e?t:-1)):this.readUnicodeEscape(e?t:-1);case 120:return this.readHexadecimalEscape(2,e?t:-1);case 13:this.pos<n&&s.charCodeAt(this.pos)==10&&++this.pos;case 10:case 8232:case 8233:return"";default:return String.fromCodePoint(a)}}readRegexpPattern(){let e=this.source.text,t=this.pos,n=this.end,s=!1;for(;;){if(this.pos>=n){this.error(1161,this.range(t,n));break}if(e.charCodeAt(this.pos)==92){++this.pos,s=!0;continue}let a=e.charCodeAt(this.pos);if(!s&&a==47)break;if(Ht(a)){this.error(1161,this.range(t,this.pos));break}++this.pos,s=!1}return e.substring(t,this.pos)}readRegexpFlags(){let e=this.source.text,t=this.pos,n=this.end,s=0;for(;this.pos<n;){let a=e.charCodeAt(this.pos);if(!ji(a))break;switch(++this.pos,a){case 103:{s|=s&1?-1:1;break}case 105:{s|=s&2?-1:2;break}case 109:{s|=s&4?-1:4;break}default:{s=-1;break}}}return s==-1&&this.error(209,this.range(t,this.pos)),e.substring(t,this.pos)}testInteger(){let e=this.source.text,t=this.pos,n=this.end;if(t+1<n&&e.charCodeAt(t)==48)switch(e.charCodeAt(t+2)|32){case 120:case 98:case 111:return!0}for(;t<n;){let s=e.charCodeAt(t);if(s==46||(s|32)==101)return!1;if(s!=95&&(s<48||s>57))break;t++}return!0}readInteger(){let e=this.source.text,t=this.pos;if(t+2<this.end&&e.charCodeAt(t)==48){switch(e.charCodeAt(t+1)|32){case 120:return this.pos=t+2,this.readHexInteger();case 98:return this.pos=t+2,this.readBinaryInteger();case 111:return this.pos=t+2,this.readOctalInteger()}if(ol(e.charCodeAt(t+1))){let n=t;this.pos=t+1;let s=this.readOctalInteger();return this.error(1121,this.range(n,this.pos)),s}}return this.readDecimalInteger()}readHexInteger(){let e=this.source.text,t=this.pos,n=this.end,s=t,a=s,l=i64_zero,o=i64_new(4),u=l,c=!1;for(;t<n;){let f=e.charCodeAt(t);if(gt(f))u=i64_add(i64_shl(l,o),i64_new(f-48));else if(ss(f))u=i64_add(i64_shl(l,o),i64_new((f|32)+-87));else if(f==95)a==t&&this.error(a==s?6188:6189,this.range(t)),a=t+1;else break;i64_gt_u(l,u)&&(c=!0),l=u,++t}return t==s?this.error(1125,this.range(s)):a==t&&this.error(6188,this.range(a-1)),c&&this.error(236,this.range(s-2,t),this.source.text.substring(s-2,t)),this.pos=t,l}readDecimalInteger(){let e=this.source.text,t=this.pos,n=this.end,s=t,a=s,l=i64_zero,o=i64_new(10),u=l,c=!1;for(;t<n;){let f=e.charCodeAt(t);if(gt(f))u=i64_add(i64_mul(l,o),i64_new(f-48));else if(f==95)a==t?this.error(a==s?6188:6189,this.range(t)):t-1==s&&e.charCodeAt(t-1)==48&&this.error(6188,this.range(t)),a=t+1;else break;i64_gt_u(l,u)&&(c=!0),l=u,++t}return t==s?this.error(1124,this.range(s)):a==t?this.error(6188,this.range(a-1)):c&&this.error(236,this.range(s,t),this.source.text.substring(s,t)),this.pos=t,l}readOctalInteger(){let e=this.source.text,t=this.pos,n=this.end,s=t,a=s,l=i64_zero,o=i64_new(3),u=l,c=!1;for(;t<n;){let f=e.charCodeAt(t);if(ol(f))u=i64_add(i64_shl(l,o),i64_new(f-48));else if(f==95)a==t&&this.error(a==s?6188:6189,this.range(t)),a=t+1;else break;i64_gt_u(l,u)&&(c=!0),l=u,++t}return t==s?this.error(1178,this.range(s)):a==t?this.error(6188,this.range(a-1)):c&&this.error(236,this.range(s-2,t),this.source.text.substring(s-2,t)),this.pos=t,l}readBinaryInteger(){let e=this.source.text,t=this.pos,n=this.end,s=t,a=s,l=i64_zero,o=l,u=!1;for(;t<n;){let c=e.charCodeAt(t);if(c==48)o=i64_shl(l,i64_one);else if(c==49)o=i64_or(i64_shl(l,i64_one),i64_one);else if(c==95)a==t&&this.error(a==s?6188:6189,this.range(t)),a=t+1;else break;i64_gt(l,o)&&(u=!0),l=o,++t}return t==s?this.error(1177,this.range(s)):a==t?this.error(6188,this.range(a-1)):u&&this.error(236,this.range(s-2,t),this.source.text.substring(s-2,t)),this.pos=t,l}readFloat(){return this.readDecimalFloat()}readDecimalFloat(){let e=this.source.text,t=this.end,n=this.pos,s=this.readDecimalFloatPartial(!1);if(this.pos<t&&e.charCodeAt(this.pos)==46&&(++this.pos,s+=this.readDecimalFloatPartial()),this.pos<t){let l=e.charCodeAt(this.pos);(l|32)==101&&((++this.pos<t&&(l=e.charCodeAt(this.pos))==45||l==43&&gt(e.charCodeAt(this.pos+1)))&&++this.pos,s+=this.readDecimalFloatPartial())}let a=e.substring(n,this.pos);return s&&(a=a.replaceAll("_","")),parseFloat(a)}readDecimalFloatPartial(e=!0){let t=this.source.text,n=this.pos,s=n,a=this.end,l=s,o=0;for(;n<a;){let u=t.charCodeAt(n);if(u==95)l==n?this.error(l==s?6188:6189,this.range(n)):!e&&n-1==s&&t.charCodeAt(n-1)==48&&this.error(6188,this.range(n)),l=n+1,++o;else if(!gt(u))break;++n}return n!=s&&l==n&&this.error(6188,this.range(l-1)),this.pos=n,o}readHexFloat(){throw new Error("not implemented")}readHexadecimalEscape(e=2,t=-1){let n=0,s=this.source.text,a=this.pos,l=this.end;for(;a<l;){let o=s.charCodeAt(a++);if(gt(o))n=(n<<4)+o-48;else if(ss(o))n=(n<<4)+(o|32)+-87;else return~t?(this.pos=--a,s.substring(t,a)):(this.pos=a,this.error(1125,this.range(a-1,a)),"");if(--e==0)break}return e?(this.pos=a,~t?s.substring(t,a):(this.error(1126,this.range(a)),"")):(this.pos=a,String.fromCodePoint(n))}checkForIdentifierStartAfterNumericLiteral(){let e=this.pos;e<this.end&&Hi(this.source.text.charCodeAt(e))&&this.error(1351,this.range(e))}readUnicodeEscape(e=-1){return this.readHexadecimalEscape(4,e)}readExtendedUnicodeEscape(e=-1){let t=this.pos,n=this.readHexInteger(),s=i64_low(n),a=!1;assert(!i64_high(n)),s>1114111&&(e==-1&&this.error(1198,this.range(t,this.pos)),a=!0);let l=this.end,o=this.source.text;return this.pos>=l?(e==-1&&this.error(1126,this.range(t,l)),a=!0):o.charCodeAt(this.pos)==125?++this.pos:(e==-1&&this.error(1199,this.range(t,this.pos)),a=!0),a?~e?o.substring(e,this.pos):"":String.fromCodePoint(s)}},hl=class{constructor(r,e,t){this.pos=r;this.token=e;this.tokenPos=t}},jp=null;var Ze=(V=>(V[V.Source=0]="Source",V[V.NamedType=1]="NamedType",V[V.FunctionType=2]="FunctionType",V[V.TupleType=3]="TupleType",V[V.FixedArrayType=4]="FixedArrayType",V[V.TypeName=5]="TypeName",V[V.TypeParameter=6]="TypeParameter",V[V.Parameter=7]="Parameter",V[V.Identifier=8]="Identifier",V[V.Assertion=9]="Assertion",V[V.Binary=10]="Binary",V[V.Call=11]="Call",V[V.Class=12]="Class",V[V.Comma=13]="Comma",V[V.ElementAccess=14]="ElementAccess",V[V.False=15]="False",V[V.Function=16]="Function",V[V.InstanceOf=17]="InstanceOf",V[V.Literal=18]="Literal",V[V.New=19]="New",V[V.Null=20]="Null",V[V.Omitted=21]="Omitted",V[V.Parenthesized=22]="Parenthesized",V[V.PropertyAccess=23]="PropertyAccess",V[V.Ternary=24]="Ternary",V[V.Super=25]="Super",V[V.This=26]="This",V[V.True=27]="True",V[V.Constructor=28]="Constructor",V[V.UnaryPostfix=29]="UnaryPostfix",V[V.UnaryPrefix=30]="UnaryPrefix",V[V.Await=31]="Await",V[V.Lazy=32]="Lazy",V[V.Compiled=33]="Compiled",V[V.Block=34]="Block",V[V.Break=35]="Break",V[V.Continue=36]="Continue",V[V.Do=37]="Do",V[V.Empty=38]="Empty",V[V.Export=39]="Export",V[V.ExportDefault=40]="ExportDefault",V[V.ExportImport=41]="ExportImport",V[V.Expression=42]="Expression",V[V.For=43]="For",V[V.ForOf=44]="ForOf",V[V.If=45]="If",V[V.Import=46]="Import",V[V.Return=47]="Return",V[V.Switch=48]="Switch",V[V.Throw=49]="Throw",V[V.Try=50]="Try",V[V.Variable=51]="Variable",V[V.Void=52]="Void",V[V.While=53]="While",V[V.Module=54]="Module",V[V.ClassDeclaration=55]="ClassDeclaration",V[V.EnumDeclaration=56]="EnumDeclaration",V[V.EnumValueDeclaration=57]="EnumValueDeclaration",V[V.FieldDeclaration=58]="FieldDeclaration",V[V.FunctionDeclaration=59]="FunctionDeclaration",V[V.ImportDeclaration=60]="ImportDeclaration",V[V.InterfaceDeclaration=61]="InterfaceDeclaration",V[V.MethodDeclaration=62]="MethodDeclaration",V[V.NamespaceDeclaration=63]="NamespaceDeclaration",V[V.TypeDeclaration=64]="TypeDeclaration",V[V.VariableDeclaration=65]="VariableDeclaration",V[V.Decorator=66]="Decorator",V[V.ExportMember=67]="ExportMember",V[V.SwitchCase=68]="SwitchCase",V[V.IndexSignature=69]="IndexSignature",V[V.Comment=70]="Comment",V))(Ze||{}),h=class i{constructor(r,e){this.kind=r;this.range=e}static createSimpleTypeName(r,e){return new Xi(i.createIdentifierExpression(r,e),null,e)}static createNamedType(r,e,t,n){return new $r(r,e,t,n)}static createFunctionType(r,e,t,n,s){return new Zr(r,e,t,n,s)}static createTupleType(r,e,t,n){return new ml(r,e,t,n)}static createFixedArrayType(r,e,t){return new yl(r,e,t)}static createOmittedType(r){return new $r(i.createSimpleTypeName("",r),null,!1,r)}static createTypeParameter(r,e,t,n){return new gl(r,e,t,n)}static createParameter(r,e,t,n,s){return new $i(r,e,t,n,s)}static createDecorator(r,e,t){return new bl(Rt.fromNode(r),r,e,t)}static createComment(r,e,t){return new xl(r,e,t)}static createIdentifierExpression(r,e,t=!1){return new rt(r,t,e)}static createEmptyIdentifierExpression(r){return new rt("",!1,r)}static createArrayLiteralExpression(r,e){return new Yr(r,e)}static createAssertionExpression(r,e,t,n){return new El(r,e,t,n)}static createBinaryExpression(r,e,t,n){return new Al(r,e,t,n)}static createCallExpression(r,e,t,n){return new Tl(r,e,t,n)}static createClassExpression(r){return new Sl(r)}static createCommaExpression(r,e){return new vl(r,e)}static createConstructorExpression(r){return new Il(r)}static createElementAccessExpression(r,e,t){return new kl(r,e,t)}static createFalseExpression(r){return new Kl(r)}static createFloatLiteralExpression(r,e){return new Fl(r,e)}static createFunctionExpression(r){return new wl(r)}static createInstanceOfExpression(r,e,t){return new Rl(r,e,t)}static createIntegerLiteralExpression(r,e){return new Cl(r,e)}static createNewExpression(r,e,t,n){return new Pl(r,e,t,n)}static createNullExpression(r){return new Bl(r)}static createObjectLiteralExpression(r,e,t){return new Nl(r,e,t)}static createOmittedExpression(r){return new Ll(r)}static createParenthesizedExpression(r,e){return new Ml(r,e)}static createPropertyAccessExpression(r,e,t){return new zl(r,e,t)}static createRegexpLiteralExpression(r,e,t){return new Dl(r,e,t)}static createTernaryExpression(r,e,t,n){return new Gl(r,e,t,n)}static createStringLiteralExpression(r,e){return new Ul(r,e)}static createSuperExpression(r){return new Vl(r)}static createTemplateLiteralExpression(r,e,t,n,s){return new Ol(r,e,t,n,s)}static createThisExpression(r){return new ql(r)}static createTrueExpression(r){return new Wl(r)}static createUnaryPostfixExpression(r,e,t){return new Hl(r,e,t)}static createUnaryPrefixExpression(r,e,t){return new jl(r,e,t)}static createAwaitExpression(r,e){return new Ql(r,e)}static createLazyExpression(r,e){return new Xl(r,e)}static createCompiledExpression(r,e,t){return new $l(r,e,t)}static createBlockStatement(r,e){return new Yl(r,e)}static createBreakStatement(r,e){return new Jl(r,e)}static createClassDeclaration(r,e,t,n,s,a,l,o){return new us(r,e,t,n,s,a,l,o)}static createContinueStatement(r,e){return new eo(r,e)}static createDoStatement(r,e,t){return new to(r,e,t)}static createEmptyStatement(r){return new ro(r)}static createEnumDeclaration(r,e,t,n,s,a){return new io(r,e,t,n,s,a)}static createEnumValueDeclaration(r,e,t,n){return new no(r,e,t,n)}static createExportStatement(r,e,t,n){return new lo(r,e,t,n)}static createExportDefaultStatement(r,e){return new oo(r,e)}static createExportImportStatement(r,e,t){return new so(r,e,t)}static createExportMember(r,e,t){return e||(e=r),new ao(r,e,t)}static createExpressionStatement(r){return new uo(r)}static createIfStatement(r,e,t,n){return new _o(r,e,t,n)}static createImportStatement(r,e,t){return new ps(r,null,e,t)}static createWildcardImportStatement(r,e,t){return new ps(null,r,e,t)}static createImportDeclaration(r,e,t){return e||(e=r),new ho(e,r,t)}static createInterfaceDeclaration(r,e,t,n,s,a,l,o){return new mo(r,e,t,n,s,a,l,o)}static createFieldDeclaration(r,e,t,n,s,a){return new co(r,e,t,n,s,-1,a)}static createForStatement(r,e,t,n,s){return new po(r,e,t,n,s)}static createForOfStatement(r,e,t,n){return new fo(r,e,t,n)}static createFunctionDeclaration(r,e,t,n,s,a,l,o,u=!1){return new cs(r,e,t,n,s,a,l,o,u)}static createIndexSignature(r,e,t,n){return new Zl(r,e,t,n)}static createMethodDeclaration(r,e,t,n,s,a,l,o=!1){return new Jr(r,e,t,n,s,a,l,o)}static createNamespaceDeclaration(r,e,t,n,s){return new yo(r,e,t,n,s)}static createReturnStatement(r,e){return new go(r,e)}static createSwitchStatement(r,e,t){return new xo(r,e,t)}static createSwitchCase(r,e,t){return new bo(r,e,t)}static createThrowStatement(r,e){return new Eo(r,e)}static createTryStatement(r,e,t,n,s){return new Ao(r,e,t,n,s)}static createTypeDeclaration(r,e,t,n,s,a){return new So(r,e,t,n,s,a)}static createModuleDeclaration(r,e,t){return new To(r,e,t)}static createVariableStatement(r,e,t){return new Io(r,e,t)}static createVariableDeclaration(r,e,t,n,s,a){return new vo(r,e,t,n,s,a)}static createVoidStatement(r,e){return new ko(r,e)}static createWhileStatement(r,e,t){return new Fo(r,e,t)}isLiteralKind(r){return this.kind==18&&changetype(this).literalKind==r}get isNumericLiteral(){if(this.kind==18)switch(changetype(this).literalKind){case 0:case 1:return!0}return!1}get compilesToConst(){switch(this.kind){case 18:{switch(changetype(this).literalKind){case 0:case 1:case 2:return!0}break}case 20:case 27:case 15:return!0}return!1}get evaluatesToConst(){switch(this.kind){case 9:return changetype(this).expression.evaluatesToConst;case 30:{let r=changetype(this),e=r.operator;if(e==82||e==83)return r.operand.evaluatesToConst;break}}return this.compilesToConst}isAccessOn(r){let e=changetype(this);return e.kind==11&&(e=e.expression),e.kind==23&&e.expression.kind==r}get isAccessOnThis(){return this.isAccessOn(26)}get isAccessOnSuper(){return this.isAccessOn(25)}get isEmpty(){return this.kind==38}},Xr=class extends h{constructor(e,t,n){super(e,n);this.isNullable=t;this.currentlyResolving=!1;this.memoryModel=0;this.attributes=null}hasGenericComponent(e){if(this.kind==1){let t=changetype(this);if(!t.name.next){let n=t.typeArguments;if(n&&n.length>0){for(let s=0,a=n.length;s<a;++s)if(n[s].hasGenericComponent(e))return!0}else{let s=t.name.identifier.text;for(let a=0,l=e.length;a<l;++a)if(e[a].name.text==s)return!0}}}else if(this.kind==2){let t=changetype(this),n=t.parameters;for(let a=0,l=n.length;a<l;++a)if(n[a].type.hasGenericComponent(e))return!0;if(t.returnType.hasGenericComponent(e))return!0;let s=t.explicitThisType;if(s&&s.hasGenericComponent(e))return!0}else if(this.kind==3){let n=changetype(this).elements;for(let s=0,a=n.length;s<a;++s)if(n[s].hasGenericComponent(e))return!0}else assert(!1);return!1}},Xi=class extends h{constructor(e,t,n){super(5,n);this.identifier=e;this.next=t}},$r=class extends Xr{constructor(e,t,n,s){super(1,n,s);this.name=e;this.typeArguments=t}get hasTypeArguments(){let e=this.typeArguments;return e!=null&&e.length>0}get isNull(){return this.name.identifier.text=="null"}},Zr=class extends Xr{constructor(e,t,n,s,a){super(2,s,a);this.parameters=e;this.returnType=t;this.explicitThisType=n}},ml=class extends Xr{constructor(e,t,n,s){super(3,n,s);this.elements=e;this.elementNames=t}},yl=class extends Xr{constructor(e,t,n){super(4,!1,n);this.elementType=e;this.length=t}},gl=class extends h{constructor(e,t,n,s){super(6,s);this.name=e;this.extendsType=t;this.defaultType=n}},jt=(t=>(t[t.Default=0]="Default",t[t.Optional=1]="Optional",t[t.Rest=2]="Rest",t))(jt||{}),$i=class extends h{constructor(e,t,n,s,a){super(7,a);this.parameterKind=e;this.name=t;this.type=n;this.initializer=s;this.implicitFieldDeclaration=null;this.flags=0}is(e){return(this.flags&e)==e}isAny(e){return(this.flags&e)!=0}set(e){this.flags|=e}},wo=(n=>(n[n.Any=0]="Any",n[n.Inline=1]="Inline",n[n.Managed=2]="Managed",n[n.Unmanaged=3]="Unmanaged",n))(wo||{}),Rt=(y=>(y[y.Custom=0]="Custom",y[y.Global=1]="Global",y[y.Operator=2]="Operator",y[y.OperatorBinary=3]="OperatorBinary",y[y.OperatorPrefix=4]="OperatorPrefix",y[y.OperatorPostfix=5]="OperatorPostfix",y[y.Unmanaged=6]="Unmanaged",y[y.Managed=7]="Managed",y[y.Final=8]="Final",y[y.Inline=9]="Inline",y[y.External=10]="External",y[y.ExternalJs=11]="ExternalJs",y[y.Builtin=12]="Builtin",y[y.Lazy=13]="Lazy",y[y.Unsafe=14]="Unsafe",y))(Rt||{});(r=>{function i(e){if(e.kind==8){let t=e.text;switch(assert(t.length),t.charCodeAt(0)){case 98:{if(t=="builtin")return 12;break}case 101:{if(t=="external")return 10;break}case 102:{if(t=="final")return 8;break}case 103:{if(t=="global")return 1;break}case 105:{if(t=="inline")return 9;break}case 108:{if(t=="lazy")return 13;break}case 109:{if(t=="managed")return 7;break}case 111:{if(t=="operator")return 2;break}case 117:{if(t=="unmanaged")return 6;if(t=="unsafe")return 14;break}}}else if(e.kind==23){let t=e,n=t.expression;if(n.kind==8){let s=n.text;assert(s.length);let a=t.property.text;if(assert(a.length),s=="operator")switch(a.charCodeAt(0)){case 98:{if(a=="binary")return 3;break}case 112:{if(a=="prefix")return 4;if(a=="postfix")return 5;break}}else if(s=="external")switch(a.charCodeAt(0)){case 106:{if(a=="js")return 11;break}}}}return 0}r.fromNode=i})(Rt||={});var bl=class extends h{constructor(e,t,n,s){super(66,s);this.decoratorKind=e;this.name=t;this.args=n}},$p=(t=>(t[t.Line=0]="Line",t[t.Triple=1]="Triple",t[t.Block=2]="Block",t))($p||{}),xl=class extends h{constructor(e,t,n){super(70,n);this.commentKind=e;this.text=t}},ge=class extends h{},rt=class extends ge{constructor(e,t,n){super(8,n);this.text=e;this.isQuoted=t}},pt=(l=>(l[l.Float=0]="Float",l[l.Integer=1]="Integer",l[l.String=2]="String",l[l.Template=3]="Template",l[l.RegExp=4]="RegExp",l[l.Array=5]="Array",l[l.Object=6]="Object",l))(pt||{}),wt=class extends ge{constructor(e,t){super(18,t);this.literalKind=e}},Yr=class extends wt{constructor(e,t){super(5,t);this.elementExpressions=e}},Qt=(n=>(n[n.Prefix=0]="Prefix",n[n.As=1]="As",n[n.NonNull=2]="NonNull",n[n.Const=3]="Const",n))(Qt||{}),El=class extends ge{constructor(e,t,n,s){super(9,s);this.assertionKind=e;this.expression=t;this.toType=n}},Al=class extends ge{constructor(e,t,n,s){super(10,s);this.operator=e;this.left=t;this.right=n}},Tl=class extends ge{constructor(e,t,n,s){super(11,s);this.expression=e;this.typeArguments=t;this.args=n}get typeArgumentsRange(){let e=this.typeArguments,t;return e&&(t=e.length)?ue.join(e[0].range,e[t-1].range):this.expression.range}get argumentsRange(){let e=this.args,t=e.length;return t?ue.join(e[0].range,e[t-1].range):this.expression.range}},Sl=class extends ge{constructor(e){super(12,e.range);this.declaration=e}},vl=class extends ge{constructor(e,t){super(13,t);this.expressions=e}},Il=class extends rt{constructor(r){super("constructor",!1,r),this.kind=28}},kl=class extends ge{constructor(e,t,n){super(14,n);this.expression=e;this.elementExpression=t}},Fl=class extends wt{constructor(e,t){super(0,t);this.value=e}},wl=class extends ge{constructor(e){super(16,e.range);this.declaration=e}},Rl=class extends ge{constructor(e,t,n){super(17,n);this.expression=e;this.isType=t}},Cl=class extends wt{constructor(e,t){super(1,t);this.value=e}},Pl=class extends ge{constructor(e,t,n,s){super(19,s);this.typeName=e;this.typeArguments=t;this.args=n}get typeArgumentsRange(){let e=this.typeArguments,t;return e&&(t=e.length)>0?ue.join(e[0].range,e[t-1].range):this.typeName.range}get argumentsRange(){let e=this.args,t=e.length;return t?ue.join(e[0].range,e[t-1].range):this.typeName.range}},Bl=class extends rt{constructor(r){super("null",!1,r),this.kind=20}},Nl=class extends wt{constructor(e,t,n){super(6,n);this.names=e;this.values=t}},Ll=class extends ge{constructor(r){super(21,r)}},Ml=class extends ge{constructor(e,t){super(22,t);this.expression=e}},zl=class extends ge{constructor(e,t,n){super(23,n);this.expression=e;this.property=t}},Dl=class extends wt{constructor(e,t,n){super(4,n);this.pattern=e;this.patternFlags=t}},Gl=class extends ge{constructor(e,t,n,s){super(24,s);this.condition=e;this.ifThen=t;this.ifElse=n}},Ul=class extends wt{constructor(e,t){super(2,t);this.value=e}},Vl=class extends rt{constructor(r){super("super",!1,r),this.kind=25}},Ol=class extends wt{constructor(e,t,n,s,a){super(3,a);this.tag=e;this.parts=t;this.rawParts=n;this.expressions=s}},ql=class extends rt{constructor(r){super("this",!1,r),this.kind=26}},Wl=class extends rt{constructor(r){super("true",!1,r),this.kind=27}},Kl=class extends rt{constructor(r){super("false",!1,r),this.kind=15}},os=class extends ge{constructor(e,t,n,s){super(e,s);this.operator=t;this.operand=n}},Hl=class extends os{constructor(r,e,t){super(29,r,e,t)}},jl=class extends os{constructor(r,e,t){super(30,r,e,t)}},Ql=class extends ge{constructor(e,t){super(31,t);this.operand=e}},Xl=class extends ge{constructor(e,t){super(32,t);this.expression=e}},$l=class extends ge{constructor(e,t,n){super(33,n);this.expr=e;this.type=t}},he=class extends h{},Yi=(n=>(n[n.User=0]="User",n[n.UserEntry=1]="UserEntry",n[n.Library=2]="Library",n[n.LibraryEntry=3]="LibraryEntry",n))(Yi||{}),Ee=class i extends h{constructor(e,t,n){super(0,new ue(0,n.length));this.sourceKind=e;this.normalizedPath=t;this.text=n;this.statements=new Array;this.debugInfoIndex=-1;this.exportPaths=null;this.lineCache=null;this.lineColumn=1;let s=fs(t);this.internalPath=s;let a=s.lastIndexOf(mt);this.simplePath=a>=0?s.substring(a+1):s,this.range.source=this}static get native(){let e=i._native;return e||(i._native=e=new i(3,Ft+"native.ts","[native code]")),e}static{this._native=null}get isNative(){return this==i._native}get isLibrary(){let e=this.sourceKind;return e==2||e==3}lineAt(e){assert(e>=0&&e<2147483647);let t=this.lineCache;if(!t){this.lineCache=t=[0];let a=this.text,l=0,o=a.length;for(;l<o;)a.charCodeAt(l++)==10&&t.push(l);t.push(2147483647)}let n=0,s=t.length-1;for(;n<s;){let a=n+(s-n>>1),l=unchecked(t[a]);if(e<l)s=a;else{if(e<unchecked(t[a+1]))return this.lineColumn=e-l+1,a+1;n=a+1}}return assert(0)}columnAt(){return this.lineColumn}},it=class extends he{constructor(e,t,n,s,a){super(e,a);this.name=t;this.decorators=n;this.flags=s;this.overriddenModuleName=null}is(e){return(this.flags&e)==e}isAny(e){return(this.flags&e)!=0}set(e){this.flags|=e}},Zl=class extends h{constructor(e,t,n,s){super(69,s);this.keyType=e;this.valueType=t;this.flags=n}},Zi=class extends it{constructor(e,t,n,s,a,l,o){super(e,t,n,s,o);this.type=a;this.initializer=l}},Yl=class extends he{constructor(e,t){super(34,t);this.statements=e}},Jl=class extends he{constructor(e,t){super(35,t);this.label=e}},us=class extends it{constructor(e,t,n,s,a,l,o,u){super(55,e,t,n,u);this.typeParameters=s;this.extendsType=a;this.implementsTypes=l;this.members=o;this.indexSignature=null;this.declaredAsStruct=!1;this.declaredAsManagedStruct=!1}get isGeneric(){let e=this.typeParameters;return e!=null&&e.length>0}},eo=class extends he{constructor(e,t){super(36,t);this.label=e}},to=class extends he{constructor(e,t,n){super(37,n);this.body=e;this.condition=t}},ro=class extends he{constructor(r){super(38,r)}},io=class extends it{constructor(e,t,n,s,a,l){super(56,e,t,n,l);this.values=s;this.underlyingTypeNode=a}},no=class extends Zi{constructor(r,e,t,n){super(57,r,null,e,null,t,n)}},so=class extends he{constructor(e,t,n){super(41,n);this.name=e;this.externalName=t}},ao=class extends h{constructor(e,t,n){super(67,n);this.localName=e;this.exportedName=t}},lo=class extends he{constructor(e,t,n,s){super(39,s);this.members=e;this.path=t;this.isDeclare=n;if(t){let a=Qr(t.value);t.value.startsWith(".")?a=ul(a,s.source.internalPath):a.startsWith(Ft)||(a=Ft+a),this.internalPath=a}else this.internalPath=null}},oo=class extends he{constructor(e,t){super(40,t);this.declaration=e}},uo=class extends he{constructor(e){super(42,e.range);this.expression=e}},co=class extends Zi{constructor(e,t,n,s,a,l,o){super(58,e,t,n,s,a,o);this.parameterIndex=l}},po=class extends he{constructor(e,t,n,s,a){super(43,a);this.initializer=e;this.condition=t;this.incrementor=n;this.body=s}},fo=class extends he{constructor(e,t,n,s){super(44,s);this.variable=e;this.iterable=t;this.body=n}},Xt=(t=>(t[t.None=0]="None",t[t.Parenthesized=1]="Parenthesized",t[t.Single=2]="Single",t))(Xt||{}),cs=class i extends it{constructor(e,t,n,s,a,l,o,u,c=!1){super(59,e,t,n,u);this.typeParameters=s;this.signature=a;this.body=l;this.arrowKind=o;this.isAsync=c}get isGeneric(){let e=this.typeParameters;return e!=null&&e.length>0}clone(){return new i(this.name,this.decorators,this.flags,this.typeParameters,this.signature,this.body,this.arrowKind,this.range,this.isAsync)}},_o=class extends he{constructor(e,t,n,s){super(45,s);this.condition=e;this.ifTrue=t;this.ifFalse=n}},ho=class extends it{constructor(e,t,n){super(60,e,null,0,n);this.foreignName=t}},ps=class extends he{constructor(e,t,n,s){super(46,s);this.declarations=e;this.namespaceName=t;this.path=n;let a=Qr(n.value);n.value.startsWith(".")?a=ul(a,s.source.internalPath):a.startsWith(Ft)||(a=Ft+a),this.internalPath=fs(a)}},mo=class extends us{constructor(r,e,t,n,s,a,l,o){super(r,e,t,n,s,a,l,o),this.kind=61}},Jr=class extends cs{constructor(r,e,t,n,s,a,l,o=!1){super(r,e,t,n,s,a,0,l,o),this.kind=62}},yo=class extends it{constructor(e,t,n,s,a){super(63,e,t,n,a);this.members=s}},go=class extends he{constructor(e,t){super(47,t);this.value=e}},bo=class extends h{constructor(e,t,n){super(68,n);this.label=e;this.statements=t}get isDefault(){return this.label==null}},xo=class extends he{constructor(e,t,n){super(48,n);this.condition=e;this.cases=t}},Eo=class extends he{constructor(e,t){super(49,t);this.value=e}},Ao=class extends he{constructor(e,t,n,s,a){super(50,a);this.bodyStatements=e;this.catchVariable=t;this.catchStatements=n;this.finallyStatements=s}},To=class extends he{constructor(e,t,n){super(54,n);this.moduleName=e;this.flags=t}},So=class extends it{constructor(e,t,n,s,a,l){super(64,e,t,n,l);this.typeParameters=s;this.type=a}},vo=class extends Zi{constructor(r,e,t,n,s,a){super(65,r,e,t,n,s,a)}},Io=class extends he{constructor(e,t,n){super(51,n);this.decorators=e;this.declarations=t}},ko=class extends he{constructor(e,t){super(52,t);this.expression=e}},Fo=class extends he{constructor(e,t,n){super(53,n);this.condition=e;this.body=t}};function $t(i,r){if(r)for(let e=0,t=r.length;e<t;++e){let n=r[e];if(n.decoratorKind==i)return n}return null}function fs(i){return i.endsWith("/")?i+="index":i.endsWith(".ts")&&(i=i.substring(0,i.length-3)),i}function De(i){if(i.kind==1){let r=i.name;return!(r.next||r.identifier.text.length>0)}return!1}var B;(k=>{k.None=0,k.Unreachable=1,k.I32=2,k.I64=3,k.F32=4,k.F64=5,k.V128=6;function l(){return X_()}k.funcref=l,k.Externref=$_(),k.Anyref=Z_(),k.Eqref=Y_(),k.Structref=ed(),k.Arrayref=td(),k.I31ref=J_(),k.Stringref=rd(),k.Noneref=id(),k.Nofuncref=sd(),k.Noexternref=nd()})(B||={});var Ie;(E=>{E.Extern=8,E.Func=16,E.Any=32,E.Eq=40,E.I31=48,E.Struct=56,E.Array=64,E.Exn=7,E.String=80,E.None=88,E.Noextern=96,E.Nofunc=104;function _(A){return ad(A)}E.isBottom=_;function d(A){return ld(A)}E.getBottom=d;function g(A,k){return od(A,k)}E.isSubtype=g;function y(A,k){if(A==k)return A;if(d(A)!=d(k))return-1;if(_(A))return k;if(_(k))return A;if(A>k){let F=A;A=k,k=F}switch(A){case E.Extern:return k==E.String?A:-1;case E.Func:return-1;case E.Any:return A;case E.Eq:return k==E.I31||k==E.Struct||k==E.Array?E.Eq:E.Any;case E.I31:return k==E.Struct||k==E.Array?E.Eq:E.Any;case E.Struct:return k==E.Array?E.Eq:E.Any;case E.Array:return E.Any}return assert(!1),-1}E.leastUpperBound=y})(Ie||={});var ds;(t=>(t.NotPacked=0,t.I8=1,t.I16=2))(ds||={});var Yp;(s=>{s.SelfSupertype=0,s.InvalidSupertype=1,s.ForwardSupertypeReference=2,s.ForwardChildReference=3;function n(a){switch(a){case 0:return"SelfSupertype";case 1:return"InvalidSupertype";case 2:return"ForwardSupertypeReference";case 3:return"ForwardChildReference"}return assert(!1),""}s.toString=n})(Yp||={});var Jp=(D=>(D[D.MVP=0]="MVP",D[D.Atomics=1]="Atomics",D[D.MutableGlobals=2]="MutableGlobals",D[D.TruncSat=4]="TruncSat",D[D.SIMD=8]="SIMD",D[D.BulkMemory=16]="BulkMemory",D[D.SignExt=32]="SignExt",D[D.ExceptionHandling=64]="ExceptionHandling",D[D.TailCall=128]="TailCall",D[D.ReferenceTypes=256]="ReferenceTypes",D[D.MultiValue=512]="MultiValue",D[D.GC=1024]="GC",D[D.Memory64=2048]="Memory64",D[D.RelaxedSIMD=4096]="RelaxedSIMD",D[D.ExtendedConst=8192]="ExtendedConst",D[D.Strings=16384]="Strings",D[D.MultiMemory=32768]="MultiMemory",D[D.StackSwitching=65536]="StackSwitching",D[D.SharedEverything=131072]="SharedEverything",D[D.FP16=262144]="FP16",D[D.BulkMemoryOpt=524288]="BulkMemoryOpt",D[D.CallIndirectOverlong=1048576]="CallIndirectOverlong",D[D.RelaxedAtomics=4194304]="RelaxedAtomics",D[D.CustomPageSizes=8388608]="CustomPageSizes",D[D.Multibyte=16777216]="Multibyte",D[D.WideArithmetic=33554432]="WideArithmetic",D[D.CompactImports=67108864]="CompactImports",D[D.All=134217727]="All",D))(Jp||{}),ei=(L=>(L[L.Invalid=0]="Invalid",L[L.Block=1]="Block",L[L.If=2]="If",L[L.Loop=3]="Loop",L[L.Break=4]="Break",L[L.Switch=5]="Switch",L[L.Call=6]="Call",L[L.CallIndirect=7]="CallIndirect",L[L.LocalGet=8]="LocalGet",L[L.LocalSet=9]="LocalSet",L[L.GlobalGet=10]="GlobalGet",L[L.GlobalSet=11]="GlobalSet",L[L.Load=12]="Load",L[L.Store=13]="Store",L[L.Const=14]="Const",L[L.Unary=15]="Unary",L[L.Binary=16]="Binary",L[L.Select=17]="Select",L[L.Drop=18]="Drop",L[L.Return=19]="Return",L[L.MemorySize=20]="MemorySize",L[L.MemoryGrow=21]="MemoryGrow",L[L.Nop=22]="Nop",L[L.Unreachable=23]="Unreachable",L[L.AtomicRMW=24]="AtomicRMW",L[L.AtomicCmpxchg=25]="AtomicCmpxchg",L[L.AtomicWait=26]="AtomicWait",L[L.AtomicNotify=27]="AtomicNotify",L[L.AtomicFence=28]="AtomicFence",L[L.Pause=29]="Pause",L[L.SIMDExtract=30]="SIMDExtract",L[L.SIMDReplace=31]="SIMDReplace",L[L.SIMDShuffle=32]="SIMDShuffle",L[L.SIMDTernary=33]="SIMDTernary",L[L.SIMDShift=34]="SIMDShift",L[L.SIMDLoad=35]="SIMDLoad",L[L.SIMDLoadStoreLane=36]="SIMDLoadStoreLane",L[L.MemoryInit=37]="MemoryInit",L[L.DataDrop=38]="DataDrop",L[L.MemoryCopy=39]="MemoryCopy",L[L.MemoryFill=40]="MemoryFill",L[L.Pop=41]="Pop",L[L.RefNull=42]="RefNull",L[L.RefIsNull=43]="RefIsNull",L[L.RefFunc=44]="RefFunc",L[L.RefEq=45]="RefEq",L[L.TableGet=46]="TableGet",L[L.TableSet=47]="TableSet",L[L.TableSize=48]="TableSize",L[L.TableGrow=49]="TableGrow",L[L.TableFill=50]="TableFill",L[L.TableCopy=51]="TableCopy",L[L.TableInit=52]="TableInit",L[L.ElemDrop=53]="ElemDrop",L[L.Try=54]="Try",L[L.TryTable=55]="TryTable",L[L.Throw=56]="Throw",L[L.Rethrow=57]="Rethrow",L[L.ThrowRef=58]="ThrowRef",L[L.TupleMake=59]="TupleMake",L[L.TupleExtract=60]="TupleExtract",L[L.RefI31=61]="RefI31",L[L.I31Get=62]="I31Get",L[L.CallRef=63]="CallRef",L[L.RefTest=64]="RefTest",L[L.RefCast=65]="RefCast",L[L.RefGetDesc=66]="RefGetDesc",L[L.BrOn=67]="BrOn",L[L.StructNew=68]="StructNew",L[L.StructGet=69]="StructGet",L[L.StructSet=70]="StructSet",L[L.StructRMW=71]="StructRMW",L[L.StructCmpxchg=72]="StructCmpxchg",L[L.ArrayNew=73]="ArrayNew",L[L.ArrayNewData=74]="ArrayNewData",L[L.ArrayNewElem=75]="ArrayNewElem",L[L.ArrayNewFixed=76]="ArrayNewFixed",L[L.ArrayGet=77]="ArrayGet",L[L.ArraySet=78]="ArraySet",L[L.ArrayLoad=79]="ArrayLoad",L[L.ArrayStore=80]="ArrayStore",L[L.ArrayLen=81]="ArrayLen",L[L.ArrayCopy=82]="ArrayCopy",L[L.ArrayFill=83]="ArrayFill",L[L.ArrayInitData=84]="ArrayInitData",L[L.ArrayInitElem=85]="ArrayInitElem",L[L.ArrayRMW=86]="ArrayRMW",L[L.ArrayCmpxchg=87]="ArrayCmpxchg",L[L.RefAs=88]="RefAs",L[L.StringNew=89]="StringNew",L[L.StringConst=90]="StringConst",L[L.StringMeasure=91]="StringMeasure",L[L.StringEncode=92]="StringEncode",L[L.StringConcat=93]="StringConcat",L[L.StringEq=94]="StringEq",L[L.StringTest=95]="StringTest",L[L.StringWTF16Get=96]="StringWTF16Get",L[L.StringSliceWTF=97]="StringSliceWTF",L[L.ContNew=98]="ContNew",L[L.ContBind=99]="ContBind",L[L.Suspend=100]="Suspend",L[L.Resume=101]="Resume",L[L.ResumeThrow=102]="ResumeThrow",L[L.StackSwitch=103]="StackSwitch",L[L.StructWait=104]="StructWait",L[L.StructNotify=105]="StructNotify",L[L.WideIntAddSub=106]="WideIntAddSub",L[L.WideIntMul=107]="WideIntMul",L))(ei||{}),ef=(s=>(s[s.Function=0]="Function",s[s.Table=1]="Table",s[s.Memory=2]="Memory",s[s.Global=3]="Global",s[s.Tag=4]="Tag",s))(ef||{}),Gb=(t=>(t[t.Unordered=0]="Unordered",t[t.SeqCst=1]="SeqCst",t[t.AcqRel=2]="AcqRel",t))(Gb||{}),ms=(C=>(C[C.ClzI32=0]="ClzI32",C[C.ClzI64=1]="ClzI64",C[C.CtzI32=2]="CtzI32",C[C.CtzI64=3]="CtzI64",C[C.PopcntI32=4]="PopcntI32",C[C.PopcntI64=5]="PopcntI64",C[C.NegF32=6]="NegF32",C[C.NegF64=7]="NegF64",C[C.AbsF32=8]="AbsF32",C[C.AbsF64=9]="AbsF64",C[C.CeilF32=10]="CeilF32",C[C.CeilF64=11]="CeilF64",C[C.FloorF32=12]="FloorF32",C[C.FloorF64=13]="FloorF64",C[C.TruncF32=14]="TruncF32",C[C.TruncF64=15]="TruncF64",C[C.NearestF32=16]="NearestF32",C[C.NearestF64=17]="NearestF64",C[C.SqrtF32=18]="SqrtF32",C[C.SqrtF64=19]="SqrtF64",C[C.EqzI32=20]="EqzI32",C[C.EqzI64=21]="EqzI64",C[C.ExtendI32ToI64=22]="ExtendI32ToI64",C[C.ExtendU32ToU64=23]="ExtendU32ToU64",C[C.WrapI64ToI32=24]="WrapI64ToI32",C[C.TruncF32ToI32=25]="TruncF32ToI32",C[C.TruncF32ToI64=26]="TruncF32ToI64",C[C.TruncF32ToU32=27]="TruncF32ToU32",C[C.TruncF32ToU64=28]="TruncF32ToU64",C[C.TruncF64ToI32=29]="TruncF64ToI32",C[C.TruncF64ToI64=30]="TruncF64ToI64",C[C.TruncF64ToU32=31]="TruncF64ToU32",C[C.TruncF64ToU64=32]="TruncF64ToU64",C[C.ReinterpretF32ToI32=33]="ReinterpretF32ToI32",C[C.ReinterpretF64ToI64=34]="ReinterpretF64ToI64",C[C.ConvertI32ToF32=35]="ConvertI32ToF32",C[C.ConvertI32ToF64=36]="ConvertI32ToF64",C[C.ConvertU32ToF32=37]="ConvertU32ToF32",C[C.ConvertU32ToF64=38]="ConvertU32ToF64",C[C.ConvertI64ToF32=39]="ConvertI64ToF32",C[C.ConvertI64ToF64=40]="ConvertI64ToF64",C[C.ConvertU64ToF32=41]="ConvertU64ToF32",C[C.ConvertU64ToF64=42]="ConvertU64ToF64",C[C.PromoteF32ToF64=43]="PromoteF32ToF64",C[C.DemoteF64ToF32=44]="DemoteF64ToF32",C[C.ReinterpretI32ToF32=45]="ReinterpretI32ToF32",C[C.ReinterpretI64ToF64=46]="ReinterpretI64ToF64",C[C.Extend8I32=47]="Extend8I32",C[C.Extend16I32=48]="Extend16I32",C[C.Extend8I64=49]="Extend8I64",C[C.Extend16I64=50]="Extend16I64",C[C.Extend32I64=51]="Extend32I64",C[C.TruncSatF32ToI32=52]="TruncSatF32ToI32",C[C.TruncSatF32ToU32=53]="TruncSatF32ToU32",C[C.TruncSatF64ToI32=54]="TruncSatF64ToI32",C[C.TruncSatF64ToU32=55]="TruncSatF64ToU32",C[C.TruncSatF32ToI64=56]="TruncSatF32ToI64",C[C.TruncSatF32ToU64=57]="TruncSatF32ToU64",C[C.TruncSatF64ToI64=58]="TruncSatF64ToI64",C[C.TruncSatF64ToU64=59]="TruncSatF64ToU64",C[C.SplatI8x16=60]="SplatI8x16",C[C.SplatI16x8=61]="SplatI16x8",C[C.SplatI32x4=62]="SplatI32x4",C[C.SplatI64x2=63]="SplatI64x2",C[C.SplatF32x4=64]="SplatF32x4",C[C.SplatF64x2=65]="SplatF64x2",C[C.NotV128=66]="NotV128",C[C.AnyTrueV128=67]="AnyTrueV128",C[C.AbsI8x16=68]="AbsI8x16",C[C.NegI8x16=69]="NegI8x16",C[C.AllTrueI8x16=70]="AllTrueI8x16",C[C.BitmaskI8x16=71]="BitmaskI8x16",C[C.PopcntI8x16=72]="PopcntI8x16",C[C.AbsI16x8=73]="AbsI16x8",C[C.NegI16x8=74]="NegI16x8",C[C.AllTrueI16x8=75]="AllTrueI16x8",C[C.BitmaskI16x8=76]="BitmaskI16x8",C[C.AbsI32x4=77]="AbsI32x4",C[C.NegI32x4=78]="NegI32x4",C[C.AllTrueI32x4=79]="AllTrueI32x4",C[C.BitmaskI32x4=80]="BitmaskI32x4",C[C.AbsI64x2=81]="AbsI64x2",C[C.NegI64x2=82]="NegI64x2",C[C.AllTrueI64x2=83]="AllTrueI64x2",C[C.BitmaskI64x2=84]="BitmaskI64x2",C[C.AbsF32x4=92]="AbsF32x4",C[C.NegF32x4=93]="NegF32x4",C[C.SqrtF32x4=94]="SqrtF32x4",C[C.CeilF32x4=95]="CeilF32x4",C[C.FloorF32x4=96]="FloorF32x4",C[C.TruncF32x4=97]="TruncF32x4",C[C.NearestF32x4=98]="NearestF32x4",C[C.AbsF64x2=99]="AbsF64x2",C[C.NegF64x2=100]="NegF64x2",C[C.SqrtF64x2=101]="SqrtF64x2",C[C.CeilF64x2=102]="CeilF64x2",C[C.FloorF64x2=103]="FloorF64x2",C[C.TruncF64x2=104]="TruncF64x2",C[C.NearestF64x2=105]="NearestF64x2",C[C.ExtaddPairwiseI8x16ToI16x8=106]="ExtaddPairwiseI8x16ToI16x8",C[C.ExtaddPairwiseU8x16ToU16x8=107]="ExtaddPairwiseU8x16ToU16x8",C[C.ExtaddPairwiseI16x8ToI32x4=108]="ExtaddPairwiseI16x8ToI32x4",C[C.ExtaddPairwiseU16x8ToU32x4=109]="ExtaddPairwiseU16x8ToU32x4",C[C.TruncSatF32x4ToI32x4=110]="TruncSatF32x4ToI32x4",C[C.TruncSatF32x4ToU32x4=111]="TruncSatF32x4ToU32x4",C[C.ConvertI32x4ToF32x4=112]="ConvertI32x4ToF32x4",C[C.ConvertU32x4ToF32x4=113]="ConvertU32x4ToF32x4",C[C.ExtendLowI8x16ToI16x8=114]="ExtendLowI8x16ToI16x8",C[C.ExtendHighI8x16ToI16x8=115]="ExtendHighI8x16ToI16x8",C[C.ExtendLowU8x16ToU16x8=116]="ExtendLowU8x16ToU16x8",C[C.ExtendHighU8x16ToU16x8=117]="ExtendHighU8x16ToU16x8",C[C.ExtendLowI16x8ToI32x4=118]="ExtendLowI16x8ToI32x4",C[C.ExtendHighI16x8ToI32x4=119]="ExtendHighI16x8ToI32x4",C[C.ExtendLowU16x8ToU32x4=120]="ExtendLowU16x8ToU32x4",C[C.ExtendHighU16x8ToU32x4=121]="ExtendHighU16x8ToU32x4",C[C.ExtendLowI32x4ToI64x2=122]="ExtendLowI32x4ToI64x2",C[C.ExtendHighI32x4ToI64x2=123]="ExtendHighI32x4ToI64x2",C[C.ExtendLowU32x4ToU64x2=124]="ExtendLowU32x4ToU64x2",C[C.ExtendHighU32x4ToU64x2=125]="ExtendHighU32x4ToU64x2",C[C.ConvertLowI32x4ToF64x2=126]="ConvertLowI32x4ToF64x2",C[C.ConvertLowU32x4ToF64x2=127]="ConvertLowU32x4ToF64x2",C[C.TruncSatF64x2ToI32x4Zero=128]="TruncSatF64x2ToI32x4Zero",C[C.TruncSatF64x2ToU32x4Zero=129]="TruncSatF64x2ToU32x4Zero",C[C.DemoteZeroF64x2ToF32x4=130]="DemoteZeroF64x2ToF32x4",C[C.PromoteLowF32x4ToF64x2=131]="PromoteLowF32x4ToF64x2",C[C.RelaxedTruncF32x4ToI32x4=132]="RelaxedTruncF32x4ToI32x4",C[C.RelaxedTruncF32x4ToU32x4=133]="RelaxedTruncF32x4ToU32x4",C[C.RelaxedTruncF64x2ToI32x4Zero=134]="RelaxedTruncF64x2ToI32x4Zero",C[C.RelaxedTruncF64x2ToU32x4Zero=135]="RelaxedTruncF64x2ToU32x4Zero",C[C.PromoteLowF16x8ToF32x4=141]="PromoteLowF16x8ToF32x4",C[C._last=141]="_last",C[C.ClzSize=142]="ClzSize",C[C.CtzSize=143]="CtzSize",C[C.PopcntSize=144]="PopcntSize",C[C.EqzSize=145]="EqzSize",C))(ms||{}),en=(v=>(v[v.AddI32=0]="AddI32",v[v.SubI32=1]="SubI32",v[v.MulI32=2]="MulI32",v[v.DivI32=3]="DivI32",v[v.DivU32=4]="DivU32",v[v.RemI32=5]="RemI32",v[v.RemU32=6]="RemU32",v[v.AndI32=7]="AndI32",v[v.OrI32=8]="OrI32",v[v.XorI32=9]="XorI32",v[v.ShlI32=10]="ShlI32",v[v.ShrI32=11]="ShrI32",v[v.ShrU32=12]="ShrU32",v[v.RotlI32=13]="RotlI32",v[v.RotrI32=14]="RotrI32",v[v.EqI32=15]="EqI32",v[v.NeI32=16]="NeI32",v[v.LtI32=17]="LtI32",v[v.LtU32=18]="LtU32",v[v.LeI32=19]="LeI32",v[v.LeU32=20]="LeU32",v[v.GtI32=21]="GtI32",v[v.GtU32=22]="GtU32",v[v.GeI32=23]="GeI32",v[v.GeU32=24]="GeU32",v[v.AddI64=25]="AddI64",v[v.SubI64=26]="SubI64",v[v.MulI64=27]="MulI64",v[v.DivI64=28]="DivI64",v[v.DivU64=29]="DivU64",v[v.RemI64=30]="RemI64",v[v.RemU64=31]="RemU64",v[v.AndI64=32]="AndI64",v[v.OrI64=33]="OrI64",v[v.XorI64=34]="XorI64",v[v.ShlI64=35]="ShlI64",v[v.ShrI64=36]="ShrI64",v[v.ShrU64=37]="ShrU64",v[v.RotlI64=38]="RotlI64",v[v.RotrI64=39]="RotrI64",v[v.EqI64=40]="EqI64",v[v.NeI64=41]="NeI64",v[v.LtI64=42]="LtI64",v[v.LtU64=43]="LtU64",v[v.LeI64=44]="LeI64",v[v.LeU64=45]="LeU64",v[v.GtI64=46]="GtI64",v[v.GtU64=47]="GtU64",v[v.GeI64=48]="GeI64",v[v.GeU64=49]="GeU64",v[v.AddF32=50]="AddF32",v[v.SubF32=51]="SubF32",v[v.MulF32=52]="MulF32",v[v.DivF32=53]="DivF32",v[v.CopysignF32=54]="CopysignF32",v[v.MinF32=55]="MinF32",v[v.MaxF32=56]="MaxF32",v[v.EqF32=57]="EqF32",v[v.NeF32=58]="NeF32",v[v.LtF32=59]="LtF32",v[v.LeF32=60]="LeF32",v[v.GtF32=61]="GtF32",v[v.GeF32=62]="GeF32",v[v.AddF64=63]="AddF64",v[v.SubF64=64]="SubF64",v[v.MulF64=65]="MulF64",v[v.DivF64=66]="DivF64",v[v.CopysignF64=67]="CopysignF64",v[v.MinF64=68]="MinF64",v[v.MaxF64=69]="MaxF64",v[v.EqF64=70]="EqF64",v[v.NeF64=71]="NeF64",v[v.LtF64=72]="LtF64",v[v.LeF64=73]="LeF64",v[v.GtF64=74]="GtF64",v[v.GeF64=75]="GeF64",v[v.EqI8x16=76]="EqI8x16",v[v.NeI8x16=77]="NeI8x16",v[v.LtI8x16=78]="LtI8x16",v[v.LtU8x16=79]="LtU8x16",v[v.GtI8x16=80]="GtI8x16",v[v.GtU8x16=81]="GtU8x16",v[v.LeI8x16=82]="LeI8x16",v[v.LeU8x16=83]="LeU8x16",v[v.GeI8x16=84]="GeI8x16",v[v.GeU8x16=85]="GeU8x16",v[v.EqI16x8=86]="EqI16x8",v[v.NeI16x8=87]="NeI16x8",v[v.LtI16x8=88]="LtI16x8",v[v.LtU16x8=89]="LtU16x8",v[v.GtI16x8=90]="GtI16x8",v[v.GtU16x8=91]="GtU16x8",v[v.LeI16x8=92]="LeI16x8",v[v.LeU16x8=93]="LeU16x8",v[v.GeI16x8=94]="GeI16x8",v[v.GeU16x8=95]="GeU16x8",v[v.EqI32x4=96]="EqI32x4",v[v.NeI32x4=97]="NeI32x4",v[v.LtI32x4=98]="LtI32x4",v[v.LtU32x4=99]="LtU32x4",v[v.GtI32x4=100]="GtI32x4",v[v.GtU32x4=101]="GtU32x4",v[v.LeI32x4=102]="LeI32x4",v[v.LeU32x4=103]="LeU32x4",v[v.GeI32x4=104]="GeI32x4",v[v.GeU32x4=105]="GeU32x4",v[v.EqI64x2=106]="EqI64x2",v[v.NeI64x2=107]="NeI64x2",v[v.LtI64x2=108]="LtI64x2",v[v.GtI64x2=109]="GtI64x2",v[v.LeI64x2=110]="LeI64x2",v[v.GeI64x2=111]="GeI64x2",v[v.EqF32x4=118]="EqF32x4",v[v.NeF32x4=119]="NeF32x4",v[v.LtF32x4=120]="LtF32x4",v[v.GtF32x4=121]="GtF32x4",v[v.LeF32x4=122]="LeF32x4",v[v.GeF32x4=123]="GeF32x4",v[v.EqF64x2=124]="EqF64x2",v[v.NeF64x2=125]="NeF64x2",v[v.LtF64x2=126]="LtF64x2",v[v.GtF64x2=127]="GtF64x2",v[v.LeF64x2=128]="LeF64x2",v[v.GeF64x2=129]="GeF64x2",v[v.AndV128=130]="AndV128",v[v.OrV128=131]="OrV128",v[v.XorV128=132]="XorV128",v[v.AndnotV128=133]="AndnotV128",v[v.AddI8x16=134]="AddI8x16",v[v.AddSatI8x16=135]="AddSatI8x16",v[v.AddSatU8x16=136]="AddSatU8x16",v[v.SubI8x16=137]="SubI8x16",v[v.SubSatI8x16=138]="SubSatI8x16",v[v.SubSatU8x16=139]="SubSatU8x16",v[v.MinI8x16=140]="MinI8x16",v[v.MinU8x16=141]="MinU8x16",v[v.MaxI8x16=142]="MaxI8x16",v[v.MaxU8x16=143]="MaxU8x16",v[v.AvgrU8x16=144]="AvgrU8x16",v[v.AddI16x8=145]="AddI16x8",v[v.AddSatI16x8=146]="AddSatI16x8",v[v.AddSatU16x8=147]="AddSatU16x8",v[v.SubI16x8=148]="SubI16x8",v[v.SubSatI16x8=149]="SubSatI16x8",v[v.SubSatU16x8=150]="SubSatU16x8",v[v.MulI16x8=151]="MulI16x8",v[v.MinI16x8=152]="MinI16x8",v[v.MinU16x8=153]="MinU16x8",v[v.MaxI16x8=154]="MaxI16x8",v[v.MaxU16x8=155]="MaxU16x8",v[v.AvgrU16x8=156]="AvgrU16x8",v[v.Q15mulrSatI16x8=157]="Q15mulrSatI16x8",v[v.ExtmulLowI16x8=158]="ExtmulLowI16x8",v[v.ExtmulHighI16x8=159]="ExtmulHighI16x8",v[v.ExtmulLowU16x8=160]="ExtmulLowU16x8",v[v.ExtmulHighU16x8=161]="ExtmulHighU16x8",v[v.AddI32x4=162]="AddI32x4",v[v.SubI32x4=163]="SubI32x4",v[v.MulI32x4=164]="MulI32x4",v[v.MinI32x4=165]="MinI32x4",v[v.MinU32x4=166]="MinU32x4",v[v.MaxI32x4=167]="MaxI32x4",v[v.MaxU32x4=168]="MaxU32x4",v[v.DotI16x8=169]="DotI16x8",v[v.ExtmulLowI32x4=170]="ExtmulLowI32x4",v[v.ExtmulHighI32x4=171]="ExtmulHighI32x4",v[v.ExtmulLowU32x4=172]="ExtmulLowU32x4",v[v.ExtmulHighU32x4=173]="ExtmulHighU32x4",v[v.AddI64x2=174]="AddI64x2",v[v.SubI64x2=175]="SubI64x2",v[v.MulI64x2=176]="MulI64x2",v[v.ExtmulLowI64x2=177]="ExtmulLowI64x2",v[v.ExtmulHighI64x2=178]="ExtmulHighI64x2",v[v.ExtmulLowU64x2=179]="ExtmulLowU64x2",v[v.ExtmulHighU64x2=180]="ExtmulHighU64x2",v[v.AddF32x4=189]="AddF32x4",v[v.SubF32x4=190]="SubF32x4",v[v.MulF32x4=191]="MulF32x4",v[v.DivF32x4=192]="DivF32x4",v[v.MinF32x4=193]="MinF32x4",v[v.MaxF32x4=194]="MaxF32x4",v[v.PminF32x4=195]="PminF32x4",v[v.PmaxF32x4=196]="PmaxF32x4",v[v.AddF64x2=197]="AddF64x2",v[v.SubF64x2=198]="SubF64x2",v[v.MulF64x2=199]="MulF64x2",v[v.DivF64x2=200]="DivF64x2",v[v.MinF64x2=201]="MinF64x2",v[v.MaxF64x2=202]="MaxF64x2",v[v.PminF64x2=203]="PminF64x2",v[v.PmaxF64x2=204]="PmaxF64x2",v[v.NarrowI16x8ToI8x16=205]="NarrowI16x8ToI8x16",v[v.NarrowU16x8ToU8x16=206]="NarrowU16x8ToU8x16",v[v.NarrowI32x4ToI16x8=207]="NarrowI32x4ToI16x8",v[v.NarrowU32x4ToU16x8=208]="NarrowU32x4ToU16x8",v[v.SwizzleI8x16=209]="SwizzleI8x16",v[v.RelaxedSwizzleI8x16=210]="RelaxedSwizzleI8x16",v[v.RelaxedMinF32x4=211]="RelaxedMinF32x4",v[v.RelaxedMaxF32x4=212]="RelaxedMaxF32x4",v[v.RelaxedMinF64x2=213]="RelaxedMinF64x2",v[v.RelaxedMaxF64x2=214]="RelaxedMaxF64x2",v[v.RelaxedQ15MulrI16x8=215]="RelaxedQ15MulrI16x8",v[v.RelaxedDotI8x16I7x16ToI16x8=216]="RelaxedDotI8x16I7x16ToI16x8",v[v._last=216]="_last",v[v.AddSize=217]="AddSize",v[v.SubSize=218]="SubSize",v[v.MulSize=219]="MulSize",v[v.DivISize=220]="DivISize",v[v.DivUSize=221]="DivUSize",v[v.RemISize=222]="RemISize",v[v.RemUSize=223]="RemUSize",v[v.AndSize=224]="AndSize",v[v.OrSize=225]="OrSize",v[v.XorSize=226]="XorSize",v[v.ShlSize=227]="ShlSize",v[v.ShrISize=228]="ShrISize",v[v.ShrUSize=229]="ShrUSize",v[v.RotlSize=230]="RotlSize",v[v.RotrSize=231]="RotrSize",v[v.EqSize=232]="EqSize",v[v.NeSize=233]="NeSize",v[v.LtISize=234]="LtISize",v[v.LtUSize=235]="LtUSize",v[v.LeISize=236]="LeISize",v[v.LeUSize=237]="LeUSize",v[v.GtISize=238]="GtISize",v[v.GtUSize=239]="GtUSize",v[v.GeISize=240]="GeISize",v[v.GeUSize=241]="GeUSize",v))(en||{}),tf=(a=>(a[a.Add=0]="Add",a[a.Sub=1]="Sub",a[a.And=2]="And",a[a.Or=3]="Or",a[a.Xor=4]="Xor",a[a.Xchg=5]="Xchg",a))(tf||{}),rf=(o=>(o[o.ExtractLaneI8x16=0]="ExtractLaneI8x16",o[o.ExtractLaneU8x16=1]="ExtractLaneU8x16",o[o.ExtractLaneI16x8=2]="ExtractLaneI16x8",o[o.ExtractLaneU16x8=3]="ExtractLaneU16x8",o[o.ExtractLaneI32x4=4]="ExtractLaneI32x4",o[o.ExtractLaneI64x2=5]="ExtractLaneI64x2",o[o.ExtractLaneF32x4=7]="ExtractLaneF32x4",o[o.ExtractLaneF64x2=8]="ExtractLaneF64x2",o))(rf||{}),nf=(a=>(a[a.ReplaceLaneI8x16=0]="ReplaceLaneI8x16",a[a.ReplaceLaneI16x8=1]="ReplaceLaneI16x8",a[a.ReplaceLaneI32x4=2]="ReplaceLaneI32x4",a[a.ReplaceLaneI64x2=3]="ReplaceLaneI64x2",a[a.ReplaceLaneF32x4=5]="ReplaceLaneF32x4",a[a.ReplaceLaneF64x2=6]="ReplaceLaneF64x2",a))(nf||{}),sf=(_=>(_[_.ShlI8x16=0]="ShlI8x16",_[_.ShrI8x16=1]="ShrI8x16",_[_.ShrU8x16=2]="ShrU8x16",_[_.ShlI16x8=3]="ShlI16x8",_[_.ShrI16x8=4]="ShrI16x8",_[_.ShrU16x8=5]="ShrU16x8",_[_.ShlI32x4=6]="ShlI32x4",_[_.ShrI32x4=7]="ShrI32x4",_[_.ShrU32x4=8]="ShrU32x4",_[_.ShlI64x2=9]="ShlI64x2",_[_.ShrI64x2=10]="ShrI64x2",_[_.ShrU64x2=11]="ShrU64x2",_))(sf||{}),af=(_=>(_[_.Load8Splat=0]="Load8Splat",_[_.Load16Splat=1]="Load16Splat",_[_.Load32Splat=2]="Load32Splat",_[_.Load64Splat=3]="Load64Splat",_[_.Load8x8S=4]="Load8x8S",_[_.Load8x8U=5]="Load8x8U",_[_.Load16x4S=6]="Load16x4S",_[_.Load16x4U=7]="Load16x4U",_[_.Load32x2S=8]="Load32x2S",_[_.Load32x2U=9]="Load32x2U",_[_.Load32Zero=10]="Load32Zero",_[_.Load64Zero=11]="Load64Zero",_))(af||{}),lf=(o=>(o[o.Load8Lane=0]="Load8Lane",o[o.Load16Lane=1]="Load16Lane",o[o.Load32Lane=2]="Load32Lane",o[o.Load64Lane=3]="Load64Lane",o[o.Store8Lane=4]="Store8Lane",o[o.Store16Lane=5]="Store16Lane",o[o.Store32Lane=6]="Store32Lane",o[o.Store64Lane=7]="Store64Lane",o))(lf||{}),of=(c=>(c[c.Bitselect=0]="Bitselect",c[c.RelaxedMaddF32x4=1]="RelaxedMaddF32x4",c[c.RelaxedNmaddF32x4=2]="RelaxedNmaddF32x4",c[c.RelaxedMaddF64x2=3]="RelaxedMaddF64x2",c[c.RelaxedNmaddF64x2=4]="RelaxedNmaddF64x2",c[c.RelaxedLaneselectI8x16=5]="RelaxedLaneselectI8x16",c[c.RelaxedLaneselectI16x8=6]="RelaxedLaneselectI16x8",c[c.RelaxedLaneselectI32x4=7]="RelaxedLaneselectI32x4",c[c.RelaxedLaneselectI64x2=8]="RelaxedLaneselectI64x2",c[c.RelaxedDotI8x16I7x16AddToI32x4=9]="RelaxedDotI8x16I7x16AddToI32x4",c))(of||{}),Ub=(t=>(t[t.NonNull=0]="NonNull",t[t.AnyConvertExtern=1]="AnyConvertExtern",t[t.ExternConvertAny=2]="ExternConvertAny",t))(Ub||{}),Vb=(e=>(e[e.Add=0]="Add",e[e.Sub=1]="Sub",e))(Vb||{}),Ob=(e=>(e[e.SignedI64=0]="SignedI64",e[e.UnsignedI64=1]="UnsignedI64",e))(Ob||{}),qb=(n=>(n[n.Null=0]="Null",n[n.NonNull=1]="NonNull",n[n.Cast=2]="Cast",n[n.CastFail=3]="CastFail",n))(qb||{}),Wb=(t=>(t[t.LossyUTF8Array=0]="LossyUTF8Array",t[t.WTF16Array=1]="WTF16Array",t[t.FromCodePoint=2]="FromCodePoint",t))(Wb||{}),Kb=(e=>(e[e.UTF8=0]="UTF8",e[e.WTF16=1]="WTF16",e))(Kb||{}),Hb=(e=>(e[e.LossyUTF8Array=0]="LossyUTF8Array",e[e.WTF16Array=1]="WTF16Array",e))(Hb||{}),jb=(e=>(e[e.Equal=0]="Equal",e[e.Compare=1]="Compare",e))(jb||{}),Bo=(e=>(e[e.Default=0]="Default",e[e.PreserveSideeffects=1]="PreserveSideeffects",e))(Bo||{}),Ji=class{constructor(r,e){this.buffer=r;this.offset=e}},Yt=class i{constructor(r,e,t){this.ref=r;this.useShadowStack=e;this.sizeType=t;this.hasTemporaryFunction=!1;this.cachedStringsToPointers=new Map;this.cachedPointersToStrings=new Map;assert(t==B.I32||t==B.I64),this.lit=kt(Lu())}static create(r,e){return new i(cd(),r,e)}static createFrom(r,e,t){let n=_s(r),s=new i(Ag(n,r.length),e,t);return ie(changetype(n)),s}i32(r){let e=this.lit;return fd(e,r),Pi(this.ref,e)}i64(r,e=0){let t=this.lit;return Ab(t,i64_new(r,e)),Pi(this.ref,t)}usize(r){return i64_is(r)?this.sizeType==B.I64?this.i64(i64_low(r),i64_high(r)):(assert(i64_is_u32(r)),this.i32(i64_low(r))):this.sizeType==B.I64?this.i64(i32(r)):this.i32(i32(r))}f32(r){let e=this.lit;return _d(e,r),Pi(this.ref,e)}f64(r){let e=this.lit;return dd(e,r),Pi(this.ref,e)}v128(r){assert(r.length==16);let e=this.lit;for(let t=0;t<16;++t)qe(e+t,unchecked(r[t]));return hd(e,e),Pi(this.ref,e)}ref_null(r){return gm(this.ref,r)}ref_eq(r,e){return Sm(this.ref,r,e)}string_eq(r,e){return mp(this.ref,0,r,e)}string_compare(r,e){return mp(this.ref,1,r,e)}unary(r,e){if(r>141){let t=this.sizeType==B.I64;switch(r){case 142:r=t?1:0;break;case 143:r=t?3:2;break;case 144:r=t?5:4;break;case 145:r=t?21:20;break;default:assert(!1)}}return uh(this.ref,r,e)}binary(r,e,t){if(r>216){let n=this.sizeType==B.I64;switch(r){case 217:r=n?25:0;break;case 218:r=n?26:1;break;case 219:r=n?27:2;break;case 220:r=n?28:3;break;case 221:r=n?29:4;break;case 222:r=n?30:5;break;case 223:r=n?31:6;break;case 224:r=n?32:7;break;case 225:r=n?33:8;break;case 226:r=n?34:9;break;case 227:r=n?35:10;break;case 228:r=n?36:11;break;case 229:r=n?37:12;break;case 230:r=n?38:13;break;case 231:r=n?39:14;break;case 232:r=n?40:15;break;case 233:r=n?41:16;break;case 234:r=n?42:17;break;case 235:r=n?43:18;break;case 236:r=n?44:19;break;case 237:r=n?45:20;break;case 238:r=n?46:21;break;case 239:r=n?47:22;break;case 240:r=n?48:23;break;case 241:r=n?49:24;break;default:assert(!1)}}return dh(this.ref,r,e,t)}wide_int_add_sub(r,e,t,n,s){return fh(this.ref,r,e,t,n,s)}wide_int_mul(r,e,t){return _h(this.ref,r,e,t)}memory_size(r=N.DefaultMemory,e=!1){let t=this.allocStringCached(r);return jd(this.ref,t,e)}memory_grow(r,e=N.DefaultMemory,t=!1){let n=this.allocStringCached(e);return Qd(this.ref,r,n,t)}table_size(r){let e=this.allocStringCached(r);return wm(this.ref,e)}table_grow(r,e,t=0){let n=this.allocStringCached(r);return Rm(this.ref,n,t,e)}local_get(r,e){return Ud(this.ref,r,e)}tostack(r){if(this.useShadowStack){let e=_r(r);return assert(e==B.I32||e==B.Unreachable),this.call(m.tostack,[r],e)}return r}local_tee(r,e,t,n=-1){return n==-1&&(n=_r(e)),t&&this.useShadowStack&&(e=this.tostack(e)),Od(this.ref,r,e,n)}global_get(r,e){let t=this.allocStringCached(r);return qd(this.ref,t,e)}table_get(r,e,t){let n=this.allocStringCached(r);return km(this.ref,n,e,t)}load(r,e,t,n,s=0,a=r,l=N.DefaultMemory){let o=this.allocStringCached(l);return $d(this.ref,r,e,s,a,n,t,o)}store(r,e,t,n,s=0,a=r,l=N.DefaultMemory){let o=this.allocStringCached(l);return rh(this.ref,r,s,a,e,t,n,o)}atomic_load(r,e,t,n=0,s=N.DefaultMemory,a=1){let l=this.allocStringCached(s);return th(this.ref,r,n,t,e,l,a)}atomic_store(r,e,t,n,s=0,a=N.DefaultMemory,l=1){let o=this.allocStringCached(a);return nh(this.ref,r,s,e,t,n,o,l)}atomic_rmw(r,e,t,n,s,a,l=N.DefaultMemory,o=1){let u=this.allocStringCached(l);return Ih(this.ref,r,e,t,n,s,a,u,o)}atomic_cmpxchg(r,e,t,n,s,a,l=N.DefaultMemory,o=1){let u=this.allocStringCached(l);return wh(this.ref,r,e,t,n,s,a,u,o)}atomic_wait(r,e,t,n,s=N.DefaultMemory){let a=this.allocStringCached(s);return Bh(this.ref,r,e,t,n,a)}atomic_notify(r,e,t=N.DefaultMemory){let n=this.allocStringCached(t);return zh(this.ref,r,e,n)}atomic_fence(r=null){let e=this.allocStringCached(r);return Uh(this.ref,e)}local_set(r,e,t){return t&&this.useShadowStack&&(e=this.tostack(e)),Vd(this.ref,r,e)}global_set(r,e){let t=this.allocStringCached(r);return Wd(this.ref,t,e)}table_set(r,e,t){let n=this.allocStringCached(r);return Fm(this.ref,n,e,t)}block(r,e,t=B.None){let n=this.allocStringCached(r),s=be(e),a=gd(this.ref,n,s,e.length,t);return ie(s),a}flatten(r,e=B.None){let t=r.length;if(t==0)return this.nop();if(t==1){let n=r[0];switch(re(n)){case 19:case 56:case 23:return n}let s=ce(n);return s!=B.Unreachable&&s!=e?this.unreachable():n}return this.block(null,r,e)}br(r,e=0,t=0){let n=this.allocStringCached(r);return Id(this.ref,n,e,t)}drop(r){return Vu(this.ref,r)}maybeDrop(r){let e=_r(r);return e!=B.None&&e!=B.Unreachable?Vu(this.ref,r):r}maybeDropCondition(r,e){return(vs(r,this.ref)&-21)!=0?this.block(null,[this.drop(r),e],ce(e)):e}loop(r,e){let t=this.allocStringCached(r);return Sd(this.ref,t,e)}if(r,e,t=0){return xd(this.ref,r,e,t)}nop(){return Sh(this.ref)}return(r=0){return Th(this.ref,r)}select(r,e,t){return gh(this.ref,t,r,e)}switch(r,e,t,n=0){let s=r.length,a=new Array(s);for(let c=0;c<s;++c)unchecked(a[c]=this.allocStringCached(r[c]));let l=be(a),o=this.allocStringCached(e),u=wd(this.ref,l,s,o,t,n);return ie(l),u}call(r,e,t,n=!1){let s=this.allocStringCached(r),a=be(e),l=n?Md(this.ref,s,a,e?e.length:0,t):Ld(this.ref,s,a,e?e.length:0,t);return ie(a),l}return_call(r,e,t){return this.call(r,e,t,!0)}call_indirect(r,e,t,n,s,a=!1){let l=this.allocStringCached(r??N.DefaultTable),o=be(t),u=a?Gd(this.ref,l,e,o,t?t.length:0,n,s):zd(this.ref,l,e,o,t?t.length:0,n,s);return ie(o),u}return_call_indirect(r,e,t,n,s){return this.call_indirect(r,e,t,n,s,!0)}unreachable(){return vh(this.ref)}memory_copy(r,e,t,n=N.DefaultMemory,s=N.DefaultMemory){let a=this.allocStringCached(n),l=this.allocStringCached(s);return cm(this.ref,r,e,t,a,l)}memory_fill(r,e,t,n=N.DefaultMemory){let s=this.allocStringCached(n);return dm(this.ref,r,e,t,s)}try(r,e,t,n,s=null){let a=t.length,l=new Array(a);for(let d=0;d<a;++d)l[d]=this.allocStringCached(t[d]);let o=be(l),u=be(n),c=this.allocStringCached(r),f=this.allocStringCached(s),_=Cm(this.ref,c,e,o,a,u,n.length,f);return ie(u),ie(o),_}throw(r,e){let t=this.allocStringCached(r),n=be(e),s=Nm(this.ref,t,n,e.length);return ie(n),s}rethrow(r){let e=this.allocStringCached(r);return zm(this.ref,e)}pop(r){return Om(this.ref,r)}tuple_make(r){let e=be(r),t=Dm(this.ref,e,r.length);return ie(e),t}tuple_extract(r,e){return Um(this.ref,r,e)}simd_extract(r,e,t){return Vh(this.ref,r,e,t)}simd_replace(r,e,t,n){return qh(this.ref,r,e,t,n)}simd_shuffle(r,e,t){assert(t.length==16);let n=_s(t),s=Hh(this.ref,r,e,n);return ie(n),s}simd_ternary(r,e,t,n){return Xh(this.ref,r,e,t,n)}simd_shift(r,e,t){return Jh(this.ref,r,e,t)}simd_load(r,e,t,n,s=N.DefaultMemory){let a=this.allocStringCached(s);return rm(this.ref,r,t,n,e,a)}simd_loadstorelane(r,e,t,n,s,a,l=N.DefaultMemory){let o=this.allocStringCached(l);return nm(this.ref,r,t,n,s,e,a,o)}ref_is_null(r){return bm(this.ref,r)}ref_as(r,e){return Ec(this.ref,r,e)}ref_as_nonnull(r){return Qb(ce(r))?Ec(this.ref,0,r):r}ref_func(r,e){let t=this.allocStringCached(r);return Am(this.ref,t,fr(e))}i31_new(r){return qm(this.ref,r)}i31_get(r,e){return Km(this.ref,r,e)}addGlobal(r,e,t,n){let s=this.allocStringCached(r);return Yy(this.ref,s,e,t,n)}getGlobal(r){let e=this.allocStringCached(r);return vp(this.ref,e)}removeGlobal(r){let e=this.allocStringCached(r);return vp(this.ref,e)?(Jy(this.ref,e),!0):!1}addTag(r,e,t){let n=this.allocStringCached(r);return sg(this.ref,n,e,t)}getTag(r){let e=this.allocStringCached(r);return ag(this.ref,e)}removeTag(r){let e=this.allocStringCached(r);lg(this.ref,e)}addFunction(r,e,t,n,s){let a=this.allocStringCached(r),l=be(n),o=Bi(this.ref,a,e,t,l,n?n.length:0,s);return ie(l),o}setLocalName(r,e,t){zy(r,e,this.allocStringCached(t))}getFunction(r){let e=this.allocStringCached(r);return Ni(this.ref,e)}removeFunction(r){let e=this.allocStringCached(r);Zn(this.ref,e)}hasFunction(r){let e=this.allocStringCached(r);return Ni(this.ref,e)!=0}addTemporaryFunction(r,e,t){this.hasTemporaryFunction=assert(!this.hasTemporaryFunction);let n=this.allocStringCached(""),s=be(e),a=Bi(this.ref,n,ft(e),r,0,0,t);return ie(s),a}removeTemporaryFunction(){this.hasTemporaryFunction=!assert(this.hasTemporaryFunction);let r=this.allocStringCached("");Zn(this.ref,r)}setStart(r){hg(this.ref,r)}addFunctionExport(r,e){let t=this.allocStringCached(r),n=this.allocStringCached(e);return Ka(this.ref,t,n)}addTableExport(r,e){let t=this.allocStringCached(r),n=this.allocStringCached(e);return Ky(this.ref,t,n)}addMemoryExport(r,e){let t=this.allocStringCached(r),n=this.allocStringCached(e);return Hy(this.ref,t,n)}addGlobalExport(r,e){let t=this.allocStringCached(r),n=this.allocStringCached(e);return jy(this.ref,t,n)}addTagExport(r,e){let t=this.allocStringCached(r),n=this.allocStringCached(e);return Qy(this.ref,t,n)}removeExport(r){let e=this.allocStringCached(r);ja(this.ref,e)}hasExport(r){let e=this.allocStringCached(r);return Ha(this.ref,e)!=0}addFunctionImport(r,e,t,n,s){let a=this.allocStringCached(r),l=this.allocStringCached(e),o=this.allocStringCached(t);Uy(this.ref,a,l,o,n,s)}addTableImport(r,e,t){let n=this.allocStringCached(r),s=this.allocStringCached(e),a=this.allocStringCached(t);Vy(this.ref,n,s,a)}addMemoryImport(r,e,t,n=!1){let s=this.allocStringCached(r),a=this.allocStringCached(e),l=this.allocStringCached(t);Oy(this.ref,s,a,l,n)}addGlobalImport(r,e,t,n,s=!1){let a=this.allocStringCached(r),l=this.allocStringCached(e),o=this.allocStringCached(t);qy(this.ref,a,l,o,n,s)}addTagImport(r,e,t,n,s){let a=this.allocStringCached(r),l=this.allocStringCached(e),o=this.allocStringCached(t);Wy(this.ref,a,l,o,n,s)}static{this.UNLIMITED_MEMORY=-1}setMemory(r,e,t,n,s=null,a=N.DefaultMemory,l=!1){let o=this.allocStringCached(s),u=this.allocStringCached(a),c=t.length,f=new Array(c),_=new Uint8Array(c),d=new Array(c),g=new Array(c);for(let F=0;F<c;++F){let w=unchecked(t[F]),R=w.buffer,P=w.offset;unchecked(f[F]=_s(R)),unchecked(_[F]=0),unchecked(d[F]=n==2?this.i64(i64_low(P),i64_high(P)):this.i32(i64_low(P))),unchecked(g[F]=R.length)}let y=be(f),E=_s(_),A=be(d),k=Zp(g);dg(this.ref,r,e,o,0,y,E,A,k,c,l,!1,u),ie(k),ie(A),ie(E),ie(y);for(let F=c-1;F>=0;--F)ie(unchecked(f[F]))}static{this.UNLIMITED_TABLE=-1}addFunctionTable(r,e,t,n,s){let a=this.allocStringCached(r),l=n.length,o=new Array(l);for(let f=0;f<l;++f)unchecked(o[f]=this.allocStringCached(n[f]));let u=be(o),c=kp(this.ref,a);c?(pg(c,e),fg(c,t)):c=Ip(this.ref,a,e,t,B.funcref()),_g(this.ref,a,a,u,l,s),ie(u)}ensureFunctionTable(r){let e=this.allocStringCached(r);kp(this.ref,e)||Ip(this.ref,e,0,i.UNLIMITED_TABLE,B.funcref())}addCustomSection(r,e){let t=this.allocStringCached(r),n=_s(e);Fg(this.ref,t,n,e.length),ie(n)}getOptimizeLevel(){return Kg()}setOptimizeLevel(r){Hg(r)}getShrinkLevel(){return jg()}setShrinkLevel(r){Qg(r)}getDebugInfo(){return Xg()}setDebugInfo(r){$g(r)}getTrapsNeverHappen(){return Zg()}setTrapsNeverHappen(r){Yg(r)}getClosedWorld(){return Jg()}setClosedWorld(r){eb(r)}getLowMemoryUnused(){return tb()}setLowMemoryUnused(r){rb(r)}getZeroFilledMemory(){return ib()}setZeroFilledMemory(r){nb(r)}getFastMath(){return sb()}setFastMath(r){ab(r)}getGenerateStackIR(){return lb()}setGenerateStackIR(r){ob(r)}getOptimizeStackIR(){return ub()}setOptimizeStackIR(r){cb(r)}getPassArgument(r){let e=this.allocStringCached(r),t=pb(e);return t?Ye(t):null}setPassArgument(r,e){let t=this.allocStringCached(r),n=this.allocStringCached(e);fb(t,n)}clearPassArguments(){_b()}getAlwaysInlineMaxSize(){return db()}setAlwaysInlineMaxSize(r){hb(r)}getFlexibleInlineMaxSize(){return mb()}setFlexibleInlineMaxSize(r){yb(r)}getOneCallerInlineMaxSize(){return gb()}setOneCallerInlineMaxSize(r){bb(r)}getAllowInliningFunctionsWithLoops(){return xb()}setAllowInliningFunctionsWithLoops(r){Eb(r)}setPartialInliningIfs(r){this.setPassArgument("partial-inlining-ifs",r.toString())}getFeatures(){return Ig(this.ref)}setFeatures(r){r&16&&(r|=524288),kg(this.ref,r)}runPasses(r,e=0){let t=r.length,n=new Array(t);for(let a=0;a<t;++a)n[a]=Ro(r[a]);let s=be(n);e?Dy(e,this.ref,s,t):yg(this.ref,s,t),ie(s);for(let a=t-1;a>=0;--a)ie(n[a])}optimize(r,e,t=!1,n=!1){(r>=3||e>=2)&&(r=4),this.clearPassArguments(),this.setOptimizeLevel(r),this.setShrinkLevel(e),this.setDebugInfo(t),this.setZeroFilledMemory(n),this.setFastMath(!0);let s=r>=2||e>=1;if(this.setGenerateStackIR(s),this.setOptimizeStackIR(s),r>=2&&e==0?(this.setAlwaysInlineMaxSize(12),this.setFlexibleInlineMaxSize(70),this.setOneCallerInlineMaxSize(200),this.setAllowInliningFunctionsWithLoops(!0)):(this.setAlwaysInlineMaxSize(r<=1||e>=2?2:6),this.setFlexibleInlineMaxSize(65),this.setOneCallerInlineMaxSize(80),this.setAllowInliningFunctionsWithLoops(!1)),this.setPartialInliningIfs(r>=2?4:0),r>0||e>0){let a=new Array;a.push("duplicate-function-elimination"),a.push("remove-unused-module-elements"),r>=2&&a.push("once-reduction"),(r>=2||e>=1)&&(a.push("inlining"),a.push("simplify-globals-optimizing"),a.push("generate-global-effects")),(r>=3||e>=1)&&(a.push("rse"),a.push("vacuum"),a.push("code-folding"),a.push("ssa-nomerge"),a.push("local-cse"),a.push("remove-unused-brs"),a.push("remove-unused-names"),a.push("merge-blocks"),a.push("precompute-propagate"),a.push("simplify-globals-optimizing"),a.push("dae-optimizing")),r>=3&&(a.push("simplify-locals-nostructure"),a.push("flatten"),a.push("vacuum"),a.push("simplify-locals-notee-nostructure"),a.push("vacuum"),a.push("local-cse"),a.push("licm"),a.push("merge-locals"),a.push("reorder-locals")),a.push("optimize-instructions"),r>=2&&a.push("avoid-reinterprets"),a.push("dce"),a.push("remove-unused-brs"),a.push("remove-unused-names"),a.push("merge-blocks"),this.getFeatures()&512&&a.push("tuple-optimization"),r>=3||e>=2?(a.push("inlining"),a.push("precompute-propagate"),a.push("simplify-globals-optimizing")):r>=2||e>=1?a.push("precompute-propagate"):a.push("precompute"),(r>=2||e>=1)&&a.push("pick-load-signs"),a.push("simplify-locals-notee-nostructure"),a.push("vacuum"),(r>=2||e>=1)&&a.push("local-cse"),a.push("reorder-locals"),a.push("coalesce-locals"),a.push("simplify-locals"),a.push("coalesce-locals"),a.push("reorder-locals"),a.push("vacuum"),(r>=2||e>=1)&&(a.push("rse"),a.push("vacuum")),e>=1&&(a.push("merge-locals"),a.push("vacuum")),(r>=2||e>=1)&&(a.push("simplify-globals-optimizing"),a.push("simplify-globals-optimizing")),a.push("remove-unused-brs"),a.push("remove-unused-names"),a.push("merge-blocks"),r>=3&&a.push("optimize-instructions"),(r>=2||e>=1)&&(a.push("simplify-globals-optimizing"),a.push("dae-optimizing")),(r>=2||e>=2)&&a.push("inlining-optimizing"),this.getLowMemoryUnused()&&(r>=3||e>=1?a.push("optimize-added-constants-propagate"):a.push("optimize-added-constants")),a.push("duplicate-import-elimination"),r>=2||e>=2?a.push("simplify-globals-optimizing"):(a.push("simplify-globals"),a.push("vacuum")),r>=2&&(this.getFeatures()&1024)!=0&&(a.push("heap2local"),a.push("merge-locals"),a.push("local-subtyping")),r>=2||e>=1?(a.push("precompute-propagate"),a.push("simplify-globals-optimizing"),a.push("simplify-globals-optimizing")):a.push("precompute"),a.push("directize"),a.push("dae-optimizing"),(r>=3||e>=1)&&a.push("gufa-optimizing"),a.push("inlining-optimizing"),(r>=2||e>=1)&&(a.push("code-folding"),a.push("ssa-nomerge"),a.push("rse"),a.push("code-pushing"),r>=3&&(a.push("simplify-globals"),a.push("vacuum"),a.push("precompute-propagate"),a.push("inlining-optimizing"),a.push("directize"),a.push("dae-optimizing"),a.push("local-cse"),a.push("merge-locals"),a.push("coalesce-locals"),a.push("simplify-locals"),a.push("vacuum"),a.push("inlining"),a.push("precompute-propagate"),a.push("rse"),a.push("vacuum"),a.push("ssa-nomerge"),a.push("simplify-locals"),a.push("coalesce-locals")),a.push("optimize-instructions"),a.push("remove-unused-brs"),a.push("remove-unused-names"),a.push("merge-blocks"),a.push("vacuum"),this.getFeatures()&16384&&a.push("string-gathering"),a.push("simplify-globals-optimizing"),a.push("remove-unused-brs"),a.push("optimize-instructions"),a.push("vacuum")),a.push("reorder-globals"),a.push("reorder-functions"),(r>=2||e>=1)&&a.push("duplicate-function-elimination"),e>=2&&a.push("merge-similar-functions"),a.push("memory-packing"),a.push("remove-unused-module-elements"),(r>=2||e>=1)&&a.push("discard-global-effects"),this.runPasses(a)}}validate(){return mg(this.ref)==1}interpret(){Tg(this.ref)}toBinary(r=null){assert(Lu()>=gg());let e=this.lit,t=Ro(r);bg(e,this.ref,t);let n=yr(e+0),s=yr(e+4),a=yr(e+8),l=new Po(NE(assert(n),s),Ye(a));return t&&ie(t),a&&ie(a),ie(n),l}toText(r=!0){let e=r?Eg(this.ref):xg(this.ref),t=Ye(e);return e&&ie(e),t||""}allocStringCached(r){if(r==null)return 0;let e=this.cachedStringsToPointers;if(e.has(r))return changetype(e.get(r));let t=Ro(r);return e.set(r,t),t}readStringCached(r){if(r==0)return null;let e=this.cachedPointersToStrings;if(e.has(r))return changetype(e.get(r));let t=Ye(r);return e.set(r,t),t}dispose(){assert(this.ref);for(let r=Map_values(this.cachedStringsToPointers),e=0,t=r.length;e<t;++e){let n=unchecked(r[e]);ie(n)}this.cachedStringsToPointers.clear(),this.cachedPointersToStrings.clear(),ie(this.lit),pd(this.ref),this.ref=0}createRelooper(){return Co.create(this)}tryCopyTrivialExpression(r){return this.isTrivialExpression(r)?this.copyExpression(r):0}isTrivialExpression(r){switch(Wt(r)){case 8:case 10:case 14:case 20:case 22:case 23:case 38:case 42:return!0}return!1}copyExpression(r){return md(r,this.ref)}runExpression(r,e,t=50,n=1){let s=Mg(this.ref,e,t,n),a=zg(s,r);if(a){if(!this.isConstExpression(a))return 0;assert(ce(a)==ce(r))}return a}isConstExpression(r){switch(re(r)){case 14:case 42:case 44:case 61:return!0;case 16:{if(this.getFeatures()&8192)switch(tn(r)){case 0:case 1:case 2:case 25:case 26:case 27:return this.isConstExpression(st(r))&&this.isConstExpression(We(r))}break}}return!1}addDebugInfoFile(r){let e=Ro(r),t=Sg(this.ref,e);return ie(e),t}getDebugInfoFile(r){return Ye(vg(this.ref,r))}setDebugLocation(r,e,t,n,s){Gy(r,e,t,n,s)}};function ft(i){if(!i)return B.None;switch(i.length){case 0:return B.None;case 1:return i[0]}let r=be(i),e=K_(r,i.length);return ie(r),e}function uf(i){let r=H_(i),e=kt(r<<2);j_(i,e);let t=new Array(r);for(let n=0;n<r;++n)unchecked(t[n]=yr(e+(n<<2)));return ie(e),t}function Qb(i){return Q_(i)}function re(i){return Wt(i)}function ce(i){return _r(i)}function se(i){return sh(i)}function Be(i){return i64_low(Cp(i))}function Ge(i){return i64_high(Cp(i))}function cf(i,r){let e=0,t=0;return r?(e=Be(i),t=Ge(i)):e=se(i),i64_new(e,t)}function Ce(i){return ah(i)}function Pe(i){return lh(i)}function pf(i){let r=kt(16);oh(i,r);let e=new Uint8Array(16);for(let t=0;t<16;++t)e[t]=Vr(r+t);return ie(r),e}function nt(i){if(re(i)!=14)return!1;let r=ce(i);return r==B.I32?se(i)==0:r==B.I64?(Be(i)|Ge(i))==0:r==B.F32?Ce(i)==0:r==B.F64?Pe(i)==0:!1}function xt(i){if(re(i)!=14)return!1;let r=ce(i);return r==B.I32?se(i)!=0:r==B.I64?(Be(i)|Ge(i))!=0:r==B.F32?Ce(i)!=0:r==B.F64?Pe(i)!=0:!1}function No(i){if(re(i)!=14)return!1;let r=ce(i);if(r==B.F32){let e=Ce(i);return e==0&&f32_as_i32(e)<0}if(r==B.F64){let e=Pe(i);return e==0&&i64_signbit(f64_as_i64(e))}return!1}function lE(i){if(re(i)!=14)return!1;let r=ce(i);return r==B.F32?isNaN(Ce(i)):r==B.F64?isNaN(Pe(i)):!1}function Lo(i,r){let e=re(r),t=ce(r);if(t==B.F32||t==B.F64){if(e==14)return isNaN(t==B.F32?Ce(r):Pe(r));if(e==10){let n=i.runExpression(r,0,8);if(n)return isNaN(t==B.F32?Ce(n):Pe(n))}}return!1}function Ct(i){return Na(i)}function Mo(i){return Ci(i)}function zo(i){return Dr(i)}function ys(i){return La(i)}function gs(i){return Ye(za(i))}function tn(i){return hh(i)}function st(i){return Kn(i)}function We(i){return Hn(i)}function bs(i){return ch(i)}function Do(i){return Wn(i)}function ff(i){return Jd(i)}function oE(i){return Yd(i)}function uE(i){return On(i)}function _f(i){return Zd(i)}function cE(i){return Da(i)}function pE(i){return Ga(i)}function fE(i){return Gr(i)}function _E(i){return qn(i)}function xs(i){return Ye(wa(i))}function Es(i){return Pn(i)}function As(i,r){return Bn(i,r)}function Go(i){return Nn(i)}function Ts(i){return Ln(i)}function rn(i){return Mn(i)}function dE(i){return Ye(Ra(i))}function hE(i){return zn(i)}function mE(i){return Ye(Ca(i))}function yE(i){return Dn(i)}function df(i){return jn(i)}function hf(i){return Qn(i)}function gE(i){return Xn(i)}function bE(i){return $n(i)}function xE(i){return Ur(i)}function Ss(i){return Ye(Ri(i))}function Pt(i){return dr(i)}function Je(i,r){return hr(i,r)}function EE(i){return Vn(i)}function AE(i){return mr(i)}function mf(i){return Ye(Li(i))}function TE(i){return Yn(i)}function SE(i){return Jn(i)}function vE(i){let r=Oa(i),e=new Array(r);for(let t=0;t<r;++t)unchecked(e[t]=qa(i,t));return e}function IE(i){return Ye(rg(i))}function kE(i){return ig(i)}function yf(i){return ng(i)}function FE(i){return Qa(i)}function wE(i){return Ye(og(i))}function RE(i){return ug(i)}function CE(i){return cg(i)}var Co=class i{constructor(r,e){this.module=r;this.ref=e}static create(r){return new i(r,Rg(r.ref))}addBlock(r){return Cg(this.ref,r)}addBranch(r,e,t=0,n=0){Pg(r,e,t,n)}addBlockWithSwitch(r,e){return Bg(this.ref,r,e)}addBranchForSwitch(r,e,t,n=0){let s=PE(t);Ng(r,e,s,t.length,n),ie(s)}renderAndDispose(r,e){return Lg(this.ref,r,e)}},hs=class{constructor(r,e){this.values=new Array;this.indexes=new Array;this.cases=new Array;this.defaultIndex=-1;this.module=r,this.condition=e}addOrReplaceCase(r,e){let t=this.values.indexOf(r),n=this.addCode(e);t>=0?this.indexes[t]=n:(this.values.push(r),this.indexes.push(n))}addCase(r,e){this.values.push(r),this.indexes.push(this.addCode(e))}addCode(r){let e=this.cases,t=e.indexOf(r);return t<0&&(t=e.length,e.push(r)),t}addDefault(r){assert(this.defaultIndex==-1);let e=this.cases;this.defaultIndex=e.length,e.push(r)}render(r,e=""){let t=this.module,n=this.cases,s=n.length;if(!s)return t.drop(this.condition);let a=this.values,l=a.length,o=this.indexes,u=new Array(1+l+1),c=new Array(s);for(let y=0;y<s;++y)unchecked(c[y]=`case${y}${e}`);u[0]=t.local_set(r,this.condition,!1);for(let y=0;y<l;++y){let E=unchecked(o[y]);unchecked(u[1+y]=t.br(c[E],t.binary(15,t.local_get(r,B.I32),t.i32(a[y]))))}let f=this.defaultIndex,_=`default${e}`;u[1+l]=t.br(~f?c[f]:_);let d=t.block(c[0],u);for(let y=1;y<s;++y){let E=n[y-1];E.unshift(d),d=t.block(unchecked(c[y]),E)}let g=n[s-1];return g.unshift(d),t.block(~f?null:_,g)}},gf=(A=>(A[A.None=0]="None",A[A.Branches=1]="Branches",A[A.Calls=2]="Calls",A[A.ReadsLocal=4]="ReadsLocal",A[A.WritesLocal=8]="WritesLocal",A[A.ReadsGlobal=16]="ReadsGlobal",A[A.WritesGlobal=32]="WritesGlobal",A[A.ReadsMemory=64]="ReadsMemory",A[A.WritesMemory=128]="WritesMemory",A[A.ReadsTable=256]="ReadsTable",A[A.WritesTable=512]="WritesTable",A[A.ImplicitTrap=1024]="ImplicitTrap",A[A.IsAtomic=2048]="IsAtomic",A[A.Throws=4096]="Throws",A[A.DanglingPop=8192]="DanglingPop",A[A.TrapsNeverHappen=16384]="TrapsNeverHappen",A[A.Any=32767]="Any",A))(gf||{});function vs(i,r){return wg(i,r)}function Uo(i,r){return(vs(i,r)&-21)!=0}function _s(i){if(!i)return 0;let r=i.length,e=kt(r);for(let t=0;t<r;++t)qe(e+t,unchecked(i[t]));return e}function PE(i){if(!i)return 0;let r=i.length,e=kt(r<<2),t=e;for(let n=0;n<r;++n){let s=unchecked(i[n]);$a(t,s),t+=4}return e}function Zp(i){if(!i)return 0;let r=i.length,e=kt(r<<2),t=e;for(let n=0;n<r;++n){let s=unchecked(i[n]);$a(t,s),t+=4}return e}function be(i){if(!i)return 0;assert(ASC_TARGET!=2);let r=i.length,e=kt(r<<2),t=e;for(let n=0,s=r;n<s;++n){let a=unchecked(i[n]);$a(t,a),t+=4}return e}function BE(i){let r=0;for(let e=0,t=i.length;e<t;++e){let n=i.charCodeAt(e)>>>0;n<=127?r+=1:n<=2047?r+=2:Ki(n)&&e+1<t&&ll(i.charCodeAt(e+1))?(e++,r+=4):r+=3}return r}function Ro(i){if(i==null)return 0;let r=BE(i),e=kt(r+1)>>>0,t=e;if(r==i.length)for(let n=0,s=i.length;n<s;++n){let a=i.charCodeAt(n)>>>0;qe(t++,a)}else for(let n=0,s=i.length;n<s;++n){let a=i.charCodeAt(n)>>>0,l;a<=127?qe(t++,a):a<=2047?(qe(t++,192|a>>>6),qe(t++,128|a&63)):Ki(a)&&n+1<s&&ll(l=i.charCodeAt(n+1))?(a=ns(a,l),++n,qe(t++,240|a>>>18),qe(t++,128|a>>>12&63),qe(t++,128|a>>>6&63),qe(t++,128|a&63)):(qe(t++,224|a>>>12),qe(t++,128|a>>>6&63),qe(t++,128|a&63))}return qe(t,0),e}function NE(i,r){let e=new Uint8Array(r);for(let t=0;t<r;++t)unchecked(e[t]=Vr(i+t));return e}function Ye(i){if(!i)return null;let r=new Array,e,t,n,s;for(;e=Vr(i++);){if(!(e&128)){r.push(e);continue}if(t=Vr(i++)&63,(e&224)==192){r.push((e&31)<<6|t);continue}if(n=Vr(i++)&63,(e&240)==224?e=(e&15)<<12|t<<6|n:(s=Vr(i++)&63,(e&248)==240?e=(e&7)<<18|t<<12|n<<6|s:assert(!1,"Invalid UTF8 sequence during readString")),e<65536)r.push(e);else{let a=e-65536;r.push(is|a>>>10),r.push(Wi|a&1023)}}return String.fromCharCodes(r)}var Po=class{constructor(r,e){this.output=r;this.sourceMap=e}},Zt=!1;function Is(i){if(i==p.void)return B.None;let r=Xb(i);if(r)return r;let e=i;if(i=i.nonNullableType,r=i.ref)return xe(fr(r),e.is(512));ASC_TARGET&&assert(sizeof()==4);let t=Dg(0),n=new Map;br(t,n,i);let s=Xa(t),a=kt(max(4*s,8));if(!Og(t,a,a,a+4)){let l=yr(a),o=yr(a+4);throw ie(a),new Error(`type builder error at index ${l}: ${Yp.toString(o)}`)}for(let l=Map_keys(n),o=0,u=l.length;o<u;++o){let c=l[o];assert(!c.is(512));let f=yr(a+4*o),_=xe(f,!1);assert(!c.ref),c.ref=_,Zt&&console.log(` set ${c.toString()}`);let d=c.getClass();if(d){let g=d.program.module;qg(g.ref,f,g.allocStringCached(d.internalName));let y=d.members;if(y){let E=ud(f),A=0;for(let k=Map_values(y),F=0,w=k.length;F<w;++F){let R=k[F];if(R.kind!=10)continue;let P=R.instance;!P||!P.isField||Wg(g.ref,f,A++,g.allocStringCached(P.name))}assert(E==A)}}}return ie(a),Zt&&console.log(` finalize ${i.toString()}`),r=assert(i.ref),xe(fr(r),e.is(512))}function Xb(i){switch(i.kind){case 0:case 1:case 6:case 2:case 7:case 3:case 8:return B.I32;case 4:case 9:return B.I64;case 5:case 10:{if(i.isInternalReference)break;return i.size==64?B.I64:B.I32}case 11:return B.F32;case 12:return B.F64;case 13:return B.V128;case 16:return xe(Ie.Func,i.is(512));case 15:return xe(Ie.Extern,i.is(512));case 17:return xe(Ie.Any,i.is(512));case 18:return xe(Ie.Eq,i.is(512));case 19:return xe(Ie.Struct,i.is(512));case 20:return xe(Ie.Array,i.is(512));case 21:return xe(Ie.I31,i.is(512));case 22:return xe(Ie.String,i.is(512));case 26:assert(!1)}return 0}function LE(i){switch(i.kind){case 0:case 1:case 6:return ds.I8;case 2:case 7:return ds.I16}return ds.NotPacked}function br(i,r,e){if(e==p.void)return B.None;let t=Xb(e);if(t||(assert(!e.is(512)),t=e.ref))return t;if(r.has(e))return Zt&&console.log(` prepare ${e.toString()} (seen)`),changetype(r.get(e));Zt&&console.log(`prepare ${e.toString()}`);let n=e.getClass();if(n){let a=n.base,l=0;a&&(l=br(i,r,a.type));let o=Xa(i);Fp(i,1),Zt&&console.log(` block [${o}]: ${e.toString()}`);let u=wp(i,o);t=Mi(i,u,!1),r.set(e,t);let c=new Array,f=new Array,_=new Array,d=n.members;if(d)for(let A=Map_values(d),k=0,F=A.length;k<F;++k){let w=A[k];if(w.kind!=10)continue;let R=w.instance;if(!R||!R.isField)continue;let P=R.type;Zt&&console.log(` field ${P.toString()}`),P.is(512)?c.push(Mi(i,fr(br(i,r,P.nonNullableType)),!0)):c.push(br(i,r,P)),f.push(LE(P)),_.push(1)}let g=be(c),y=Zp(f),E=Zp(_);return Zt&&console.log(` concretize [${o}]: ${e.toString()}`),Ug(i,o,g,y,E,c.length),a&&(Zt&&console.log(` set super [${o}]: ${e.toString()} <: ${a.type.toString()} ${l==a.type.ref?" (known)":""}`),Vg(i,o,fr(l))),ie(E),ie(y),ie(g),t}let s=e.getSignature();if(s){let a=Xa(i);Fp(i,1);let l=Mi(i,wp(i,a),!1);r.set(e,l);let o=new Array,u=new Array,c=s.parameterTypes;for(let g=0,y=c.length;g<y;++g){let E=c[g];E.is(512)?o.push(Mi(i,fr(br(i,r,E.nonNullableType)),!0)):o.push(br(i,r,E))}let f=s.returnType;u.push(f==p.void?B.None:f.is(512)?Mi(i,fr(br(i,r,f.nonNullableType)),!0):br(i,r,f));let _;if(o.length>1){let g=be(o);_=Rp(i,g,o.length),ie(g)}else _=o.length?o[0]:B.None;let d;if(u.length>1){let g=be(u);d=Rp(i,g,u.length),ie(g)}else d=u[0];return Zt&&console.log(` concretize [${a}]: ${e.toString()}`),Gg(i,a,_,d),l}throw new Error(`unexpected complex type: ${e.toString()}`)}var Oo=(R=>(R[R.None=0]="None",R[R.Returns=1]="Returns",R[R.ReturnsWrapped=2]="ReturnsWrapped",R[R.ReturnsNonNull=4]="ReturnsNonNull",R[R.Throws=8]="Throws",R[R.Breaks=16]="Breaks",R[R.Continues=32]="Continues",R[R.AccessesThis=64]="AccessesThis",R[R.CallsSuper=128]="CallsSuper",R[R.Terminates=256]="Terminates",R[R.ConditionallyReturns=512]="ConditionallyReturns",R[R.ConditionallyThrows=1024]="ConditionallyThrows",R[R.ConditionallyBreaks=2048]="ConditionallyBreaks",R[R.ConditionallyContinues=4096]="ConditionallyContinues",R[R.ConditionallyAccessesThis=8192]="ConditionallyAccessesThis",R[R.MayReturnNonThis=16384]="MayReturnNonThis",R[R.UncheckedContext=32768]="UncheckedContext",R[R.CtorParamContext=65536]="CtorParamContext",R[R.InlineContext=131072]="InlineContext",R[R.AnyCategorical=511]="AnyCategorical",R[R.AnyConditional=15872]="AnyConditional",R))(Oo||{}),ks=(s=>(s[s.None=0]="None",s[s.Constant=1]="Constant",s[s.Wrapped=2]="Wrapped",s[s.NonNull=4]="NonNull",s[s.Initialized=8]="Initialized",s))(ks||{}),bf=(e=>(e[e.None=0]="None",e[e.Initialized=1]="Initialized",e))(bf||{}),xf=(t=>(t[t.Unknown=0]="Unknown",t[t.True=1]="True",t[t.False=2]="False",t))(xf||{}),Jt=class i{constructor(r,e=null){this.targetFunction=r;this.inlineFunction=e;this.parent=null;this.outer=null;this.flags=0;this.continueLabel=null;this.breakLabel=null;this.scopedLocals=null;this.scopedTypeAlias=null;this.localFlags=[];this.thisFieldFlags=null;this.inlineReturnLabel=null;this.trueFlows=null;this.falseFlows=null}static createDefault(r){let e=new i(r);return r.is(524288)&&e.initThisFieldFlags(),r.program.options.uncheckedBehavior===2&&e.set(32768),e}static createInline(r,e){let t=new i(r,e);return t.inlineReturnLabel=`${e.internalName}|inlined.${e.nextInlineId++}`,e.is(524288)&&t.initThisFieldFlags(),r.program.options.uncheckedBehavior===2&&t.set(32768),t}get isInline(){return this.inlineFunction!=null}get sourceFunction(){let r=this.inlineFunction;return r||this.targetFunction}get program(){return this.targetFunction.program}get returnType(){return this.sourceFunction.signature.returnType}get contextualTypeArguments(){return this.sourceFunction.contextualTypeArguments}is(r){return(this.flags&r)==r}isAny(r){return(this.flags&r)!=0}set(r){this.flags|=r}unset(r){this.flags&=~r}deriveConditionalFlags(){let r=this.flags&15872;return this.is(1)&&(r|=512),this.is(8)&&(r|=1024),this.is(16)&&(r|=2048),this.is(32)&&(r|=4096),this.is(64)&&(r|=8192),r}fork(r=!1,e=r){let t=new i(this.targetFunction,this.inlineFunction);if(t.parent=this,t.flags=this.flags,t.outer=this.outer,r?t.flags&=-2065:t.breakLabel=this.breakLabel,e?t.flags&=-4129:t.continueLabel=this.continueLabel,t.localFlags=this.localFlags.slice(),this.sourceFunction.is(524288)){let n=assert(this.thisFieldFlags);t.thisFieldFlags=de(n)}else assert(!this.thisFieldFlags);return t.inlineReturnLabel=this.inlineReturnLabel,t}forkThen(r,e=!1,t=e){let n=this.fork(e,t),s=this.trueFlows;return s&&s.has(r)&&n.inherit(changetype(s.get(r))),n.inheritNonnullIfTrue(r),n}noteThen(r,e){let t=this.trueFlows;t||(this.trueFlows=t=new Map),t.set(r,e)}forkElse(r){let e=this.fork(),t=this.falseFlows;return t&&t.has(r)&&e.inherit(changetype(t.get(r))),e.inheritNonnullIfFalse(r),e}noteElse(r,e){let t=this.falseFlows;t||(this.falseFlows=t=new Map),t.set(r,e)}addScopedTypeAlias(r,e){let t=this.scopedTypeAlias;t||(this.scopedTypeAlias=t=new Map),t.set(r,e)}lookupScopedTypeAlias(r){let e=this;do{let t=e.scopedTypeAlias;if(t&&t.has(r))return assert(t.get(r));e=e.parent}while(e);return null}lookupTypeAlias(r){let e=null;if(e=this.lookupScopedTypeAlias(r))return e;let t=this.sourceFunction.parent;return t.kind==5?t.flow.lookupTypeAlias(r):null}getTempLocal(r){let e=this.targetFunction.addLocal(r);return this.unsetLocalFlag(e.index,-1),e}getScopedLocal(r){let e=this.scopedLocals;return e&&e.has(r)?assert(e.get(r)):null}addScopedLocal(r,e){let t=this.getTempLocal(e);t.name=r,t.internalName=Ke(r,t.parent,!1);let n=this.scopedLocals;return n?assert(!n.has(r)):this.scopedLocals=n=new Map,t.set(67108864),n.set(r,t),t}addScopedDummyLocal(r,e,t){let n=new Ae(r,-1,e,this.targetFunction),s=this.scopedLocals;return s?s.has(r)&&this.program.error(2451,t.range,r):this.scopedLocals=s=new Map,n.set(67108864),s.set(r,n),n}addScopedAlias(r,e,t,n=null){let s=this.scopedLocals;if(!s)this.scopedLocals=s=new Map;else if(s.has(r)){let l=assert(s.get(r));return n&&(l.declaration.range.source.isNative?this.program.error(2300,n.range,r):this.program.errorRelated(2300,n.range,l.declaration.name.range,r)),l}assert(t<this.targetFunction.localsByIndex.length);let a=new Ae(r,t,e,this.targetFunction);return a.set(67108864),s.set(r,a),a}freeScopedDummyLocal(r){let e=assert(this.scopedLocals);assert(e.has(r));let t=assert(e.get(r));assert(t.index==-1),e.delete(r)}lookupLocal(r){let e=this;do{let t=e.scopedLocals;if(t&&t.has(r))return assert(t.get(r));e=e.parent}while(e);return null}lookup(r){let e=this.lookupLocal(r);return e||this.sourceFunction.lookup(r)}isLocalFlag(r,e,t=!0){if(r<0)return t;let n=this.localFlags;return r<n.length&&(unchecked(n[r])&e)==e}isAnyLocalFlag(r,e,t=!0){if(r<0)return t;let n=this.localFlags;return r<n.length&&(unchecked(n[r])&e)!=0}setLocalFlag(r,e){if(r<0)return;let t=this.localFlags,n=r<t.length?unchecked(t[r]):0;t[r]=n|e}unsetLocalFlag(r,e){if(r<0)return;let t=this.localFlags,n=r<t.length?unchecked(t[r]):0;t[r]=n&~e}initThisFieldFlags(){let r=this.sourceFunction;assert(r.is(524288));let e=r.parent;assert(e.kind==7);let t=e;this.thisFieldFlags=new Map;let n=t.members;if(n)for(let s=Map_values(n),a=0,l=s.length;a<l;++a){let o=s[a];if(o.kind!=10)continue;let u=o.instance;!u||!u.isField||(u.prototype.parent!=t||u.initializerNode||u.prototype.parameterIndex!=-1||u.type.isAny(640))&&this.setThisFieldFlag(u,1)}}isThisFieldFlag(r,e){let t=this.thisFieldFlags;return t!=null&&t.has(r)?(changetype(t.get(r))&e)==e:!1}setThisFieldFlag(r,e){let t=this.thisFieldFlags;if(t)if(assert(this.sourceFunction.is(524288)),t.has(r)){let n=changetype(t.get(r));t.set(r,n|e)}else t.set(r,e);else assert(!this.sourceFunction.is(524288))}pushControlFlowLabel(){let r=this.targetFunction,e=r.nextBreakId++,t=r.breakStack;return t?t.push(e):r.breakStack=[e],e}popControlFlowLabel(r){let e=this.targetFunction,t=assert(e.breakStack);assert(t.length),assert(t.pop()==r)}inherit(r){assert(r.targetFunction==this.targetFunction);let e=r.flags;this.breakLabel!=r.breakLabel&&(e&2064&&(e&=-257),e&=-2065),this.continueLabel!=r.continueLabel&&(e&=-4129),this.flags=this.flags|e,this.localFlags=r.localFlags,this.thisFieldFlags=r.thisFieldFlags}mergeSideEffects(r){assert(r.targetFunction==this.targetFunction);let e=this.flags,t=r.flags,n=0;e&1?n|=1:t&1?n|=512:n|=(e|t)&512,n|=e&t&2,n|=e&t&4,e&8?n|=8:t&8?n|=1024:n|=(e|t)&1024,e&16?n|=16:r.breakLabel==this.breakLabel?t&16?n|=2048:n|=(e|t)&2048:n|=e&2048,e&32?n|=32:r.continueLabel==this.continueLabel?t&32?n|=4096:n|=(e|t)&4096:n|=e&4096,e&64?t&64?n|=64:n|=8192:t&64&&(n|=8192),n|=(e|t)&16384,n|=e&t&128,e&256&&(n|=256),this.flags=n|e&98304}mergeBranch(r){this.mergeSideEffects(r);let e=this.localFlags,t=e.length,n=r.localFlags,s=n.length,a=max(t,s);for(let l=0;l<a;++l){let o=l<t?e[l]:0,u=l<s?n[l]:0;e[l]=o&u&15}}inheritAlternatives(r,e){assert(r.targetFunction==e.targetFunction),assert(r.targetFunction==this.targetFunction);let t=r.flags,n=e.flags,s=0;t&1?n&1?s|=1:s|=512:n&1?s|=512:s|=(t|n)&512,t&2&&n&2&&(s|=2),t&4&&n&4&&(s|=4),t&8?n&8?s|=8:s|=1024:n&8?s|=1024:s|=(t|n)&1024,t&16?n&16?s|=16:s|=2048:n&16?s|=2048:s|=(t|n)&2048,t&32?n&32?s|=32:s|=4096:n&32?s|=4096:s|=(t|n)&4096,t&64?n&64?s|=64:s|=8192:n&64?s|=8192:s|=(t|n)&8192,s|=(t|n)&16384,t&128&&n&128&&(s|=128),t&256&&n&256&&(s|=256),this.flags=s|this.flags&98304;let a=this.localFlags;if(t&256){if(!(n&256)){let o=e.localFlags;for(let u=0,c=o.length;u<c;++u)a[u]=o[u]}}else if(n&256){let o=r.localFlags;for(let u=0,c=o.length;u<c;++u)a[u]=o[u]}else{let o=r.localFlags,u=o.length,c=e.localFlags,f=c.length,_=max(u,f);for(let d=0;d<_;++d){let g=d<u?o[d]:0,y=d<f?c[d]:0;a[d]=g&y&15}}let l=r.thisFieldFlags;if(l){let o=new Map,u=assert(e.thisFieldFlags);for(let c=Map_keys(l),f=0,_=c.length;f<_;++f){let d=c[f];(changetype(l.get(d))&1)!=0&&u.has(d)&&changetype(u.get(d))&1&&o.set(d,1)}this.thisFieldFlags=o}else assert(!e.thisFieldFlags)}resetIfNeedsRecompile(r,e){let t=this.localFlags.length,n=r.localFlags.length,s=this.targetFunction;assert(s==r.targetFunction);let a=s.localsByIndex;assert(a==r.targetFunction.localsByIndex);let l=!1;for(let o=0,u=min(t,n);o<u;++o){let f=a[o].type;f.isShortIntegerValue&&this.isLocalFlag(o,2)&&!r.isLocalFlag(o,2)&&(this.unsetLocalFlag(o,2),l=!0),f.isNullableReference&&this.isLocalFlag(o,4)&&!r.isLocalFlag(o,4)&&(this.unsetLocalFlag(o,4),l=!0)}return l&&(assert(a.length>=e),a.length=e,this.localFlags.length>e&&(this.localFlags.length=e)),l}isNonnull(r,e){if(!e.isNullableReference)return!0;switch(re(r)){case 9:{if(!ys(r))break;let t=this.targetFunction.localsByIndex[Mo(r)];return!t.type.isNullableReference||this.isLocalFlag(t.index,4,!1)}case 8:{let t=this.targetFunction.localsByIndex[Ct(r)];return!t.type.isNullableReference||this.isLocalFlag(t.index,4,!1)}}return!1}inheritNonnullIfTrue(r,e=null){switch(re(r)){case 9:{if(!ys(r))break;let t=this.targetFunction.localsByIndex[Mo(r)];(!e||e.isLocalFlag(t.index,4))&&this.setLocalFlag(t.index,4),this.inheritNonnullIfTrue(zo(r),e);break}case 8:{let t=this.targetFunction.localsByIndex[Ct(r)];(!e||e.isLocalFlag(t.index,4))&&this.setLocalFlag(t.index,4);break}case 2:{let t=rn(r);t&&nt(t)&&(this.inheritNonnullIfTrue(Go(r),e),this.inheritNonnullIfTrue(Ts(r),e));break}case 15:{switch(bs(r)){case 20:case 21:{this.inheritNonnullIfFalse(Do(r),e);break}}break}case 16:{switch(tn(r)){case 15:case 40:{let t=st(r),n=We(r);xt(t)?this.inheritNonnullIfTrue(n,e):xt(n)&&this.inheritNonnullIfTrue(t,e);break}case 16:case 41:{let t=st(r),n=We(r);nt(t)?this.inheritNonnullIfTrue(n,e):nt(n)&&this.inheritNonnullIfTrue(t,e);break}}break}case 6:{let t=Ss(r);if(t==m.String_eq){assert(Pt(r)==2);let n=Je(r,0),s=Je(r,1);xt(n)?this.inheritNonnullIfTrue(s,e):xt(s)&&this.inheritNonnullIfTrue(n,e)}else if(t==m.String_ne){assert(Pt(r)==2);let n=Je(r,0),s=Je(r,1);nt(n)?this.inheritNonnullIfTrue(s,e):nt(s)&&this.inheritNonnullIfTrue(n,e)}else t==m.String_not?(assert(Pt(r)==1),this.inheritNonnullIfFalse(Je(r,0),e)):t==m.tostack&&(assert(Pt(r)==1),this.inheritNonnullIfTrue(Je(r,0),e));break}}}inheritNonnullIfFalse(r,e=null){switch(re(r)){case 15:{switch(bs(r)){case 20:case 21:{this.inheritNonnullIfTrue(Do(r),e);break}}break}case 2:{let t=Ts(r);rn(r)&&xt(t)&&(this.inheritNonnullIfFalse(Go(r),e),this.inheritNonnullIfFalse(rn(r),e));break}case 16:{switch(tn(r)){case 15:case 40:{let t=st(r),n=We(r);nt(t)?this.inheritNonnullIfTrue(n,e):nt(n)&&this.inheritNonnullIfTrue(t,e);break}case 16:case 41:{let t=st(r),n=We(r);xt(t)?this.inheritNonnullIfTrue(n,e):xt(n)&&this.inheritNonnullIfTrue(t,e);break}}break}case 6:{let t=Ss(r);if(t==m.String_eq){assert(Pt(r)==2);let n=Je(r,0),s=Je(r,1);nt(n)?this.inheritNonnullIfTrue(s,e):nt(s)&&this.inheritNonnullIfTrue(n,e)}else if(t==m.String_ne){assert(Pt(r)==2);let n=Je(r,0),s=Je(r,1);xt(n)?this.inheritNonnullIfTrue(s,e):xt(s)&&this.inheritNonnullIfTrue(n,e)}else t==m.String_not?(assert(Pt(r)==1),this.inheritNonnullIfTrue(Je(r,0),e)):t==m.tostack&&(assert(Pt(r)==1),this.inheritNonnullIfFalse(Je(r,0),e));break}}}canOverflow(r,e){if(!e.isShortIntegerValue)return!1;let t;switch(re(r)){case 8:{let n=this.targetFunction.localsByIndex[Ct(r)];return!this.isLocalFlag(n.index,2,!0)||Vo(n.type,e)}case 9:return assert(ys(r)),this.canOverflow(zo(r),e);case 10:{let n=assert(this.program.elementsByName.get(assert(gs(r))));return assert(n.kind==0||n.kind==3),Vo(n.type,e)}case 16:{switch(tn(r)){case 15:case 40:case 57:case 70:case 16:case 41:case 58:case 71:case 17:case 18:case 42:case 43:case 59:case 72:case 19:case 20:case 44:case 45:case 60:case 73:case 21:case 22:case 46:case 47:case 61:case 74:case 23:case 24:case 48:case 49:case 62:case 75:return!1;case 2:return!(re(t=st(r))==14&&(se(t)==0||se(t)==1&&!this.canOverflow(We(r),e))||re(t=We(r))==14&&(se(t)==0||se(t)==1&&!this.canOverflow(st(r),e)));case 7:return!(re(t=st(r))==14&&se(t)<=e.computeSmallIntegerMask(p.i32)||!this.canOverflow(t,e)||re(t=We(r))==14&&se(t)<=e.computeSmallIntegerMask(p.i32)||!this.canOverflow(t,e));case 10:{let n=32-e.size;return re(t=We(r))!=14||se(t)<n}case 11:{let n=32-e.size;return this.canOverflow(st(r),e)&&(re(t=We(r))!=14||se(t)<n)}case 12:{let n=32-e.size;return e.isSignedIntegerValue?!(re(t=We(r))==14&&se(t)>n):this.canOverflow(st(r),e)&&!(re(t=We(r))==14&&se(t)>=n)}case 4:case 5:case 6:return this.canOverflow(st(r),e)||this.canOverflow(We(r),e)}break}case 15:{switch(bs(r)){case 20:case 21:return!1;case 0:case 2:case 4:return e.size<7;case 47:return e.size<(e.isUnsignedIntegerValue?32:8);case 49:return e.size<(e.isUnsignedIntegerValue?64:8);case 48:return e.size<(e.isUnsignedIntegerValue?32:16);case 50:return e.size<(e.isUnsignedIntegerValue?64:16);case 51:return e.size<(e.isUnsignedIntegerValue?64:32)}break}case 14:{let n=0;switch(ce(r)){case B.I32:{n=se(r);break}case B.I64:{n=Be(r);break}case B.F32:{n=i32(Ce(r));break}case B.F64:{n=i32(Pe(r));break}case B.V128:return!1;default:assert(!1)}switch(e.kind){case 0:return(n&-2)!=0;case 1:return n<i8.MIN_VALUE||n>i8.MAX_VALUE;case 2:return n<i16.MIN_VALUE||n>i16.MAX_VALUE;case 6:return n<0||n>u8.MAX_VALUE;case 7:return n<0||n>u16.MAX_VALUE}break}case 12:{let n,s=_f(r);switch(ff(r)){case 1:{n=s?p.i8:p.u8;break}case 2:{n=s?p.i16:p.u16;break}default:{n=s?p.i32:p.u32;break}}return Vo(n,e)}case 1:{if(!xs(r)){let n=assert(Es(r)),s=As(r,n-1);return this.canOverflow(s,e)}break}case 2:return this.canOverflow(Ts(r),e)||this.canOverflow(assert(rn(r)),e);case 17:return this.canOverflow(df(r),e)||this.canOverflow(hf(r),e);case 6:{let s=this.program.instancesByName,a=assert(Ss(r));if(s.has(a)){let l=assert(s.get(a));assert(l.kind==5);let o=l,u=o.signature.returnType;return!o.flow.is(2)||Vo(u,e)}return!1}case 23:return!1}return!0}toString(){let r=0,e=this.parent;for(;e;)e=e.parent,++r;let t=new Array;return this.is(1)&&t.push("RETURNS"),this.is(2)&&t.push("RETURNS_WRAPPED"),this.is(4)&&t.push("RETURNS_NONNULL"),this.is(8)&&t.push("THROWS"),this.is(16)&&t.push("BREAKS"),this.is(32)&&t.push("CONTINUES"),this.is(64)&&t.push("ACCESSES_THIS"),this.is(128)&&t.push("CALLS_SUPER"),this.is(256)&&t.push("TERMINATES"),this.is(512)&&t.push("CONDITIONALLY_RETURNS"),this.is(1024)&&t.push("CONDITIONALLY_THROWS"),this.is(2048)&&t.push("CONDITIONALLY_BREAKS"),this.is(4096)&&t.push("CONDITIONALLY_CONTINUES"),this.is(8192)&&t.push("CONDITIONALLY_ACCESSES_THIS"),this.is(16384)&&t.push("MAY_RETURN_NONTHIS"),`Flow(${this.sourceFunction})[${r}] ${t.join(" ")}`}};function Vo(i,r){return r.isShortIntegerValue&&(!i.isIntegerValue||i.size>r.size||i.isSignedIntegerValue!=r.isSignedIntegerValue)}var jo=(e=>(e[e.Report=0]="Report",e[e.Swallow=1]="Swallow",e))(jo||{});function ME(i){let r=i.name;if(r.kind!=23)return!1;let e=r,t=e.expression;return t.kind!=8?!1:t.text=="abi"&&e.property.text=="align"}function zE(i){if(!i)return null;for(let r=0,e=i.length;r<e;++r){let t=i[r];if(ME(t))return t}return null}function DE(i){switch(i.kind){case 1:case 6:case 2:case 7:case 3:case 8:return!0;default:return!1}}var Fs=class extends tt{constructor(e){super(e.diagnostics);this.currentThisExpression=null;this.currentElementExpression=null;this.discoveredOverride=!1;this.resolvingExpressions=new Set;this.resolveClassPending=new Set;this.program=e}resolveType(e,t,n,s=null,a=0){if(e.currentlyResolving)return this.error(100,e.range,"Recursive types"),null;e.currentlyResolving=!0;let l=null;switch(e.kind){case 1:{l=this.resolveNamedType(e,t,n,s,a);break}case 2:{l=this.resolveFunctionType(e,t,n,s,a);break}case 3:{l=this.resolveTupleType(e,t,n,s,a);break}case 4:{l=this.resolveFixedArrayType(e,t,n,s,a);break}default:assert(!1)}return e.currentlyResolving=!1,l!=null&&e.memoryModel!=0&&(l=this.checkMemoryModelOverride(e,l,a)),l}checkMemoryModelOverride(e,t,n){let s=e.memoryModel,a=Wo(t);return a==0||s==a?t:s==2&&a==3?(n==0&&this.error(6394,e.range,t.toString()),null):(s==3||s==2)&&a==1?(n==0&&this.error(6395,e.range,t.toString(),GE(s)),null):t}resolveNamedType(e,t,n,s=null,a=0){let l=e.name,o=e.typeArguments,u=!l.next;if(u){let _=l.identifier.text;if(s&&s.has(_)){let d=assert(s.get(_));if(o&&o.length>0&&a==0&&this.error(2315,e.range,d.toString()),e.isNullable){if(d.isReference)return d.asNullable();a==0&&this.error(204,e.range,d.toString())}return d}}let c=this.resolveTypeName(l,t,n,a);if(!c)return null;let f=c.shadowType;if(f)c=f;else{if(c.kind==2){o&&o.length>0&&a==0&&this.error(2315,e.range,c.internalName);let _=this.resolveEnumType(c,a);return e.isNullable&&a==0&&this.error(204,e.range,`${c.name}/${_.toString()}`),_}if(c.kind==6||c.kind==8){let _=this.resolveClassInclTypeArguments(c,o,t,n,de(s),e,a);return _?e.isNullable?_.type.asNullable():_.type:null}}if(c.kind==14){let _=c;if(c.is(4194304)){o&&o.length>0&&a==0&&this.error(2315,e.range,c.internalName);let E=_.type;if(e.isNullable){if(E.isReference)return E.asNullable();a==0&&this.error(204,l.range,l.identifier.text)}return E}if(u){let E=l.identifier.text;if(er.has(E)){let A=assert(er.get(E)),k=new Qo(this,e,n,s,a);return A(k)}}let d=_.typeParameterNodes,g=null;if(d){if(g=this.resolveTypeArguments(d,o,t,n,s=de(s),e,a),!g)return null}else o&&o.length>0&&this.error(2315,e.range,l.identifier.text);let y=this.resolveType(_.typeNode,t,c,s,a);if(!y)return null;if(e.isNullable){if(y.isReference)return y.asNullable();a==0&&this.error(204,l.range,l.identifier.text)}return y}return a==0&&this.error(2304,l.range,l.identifier.text),null}resolveEnumType(e,t=0){if(e.underlyingTypeResolved)return e.type;let n=e.declaration.underlyingTypeNode;if(!n)return e.underlyingTypeResolved=!0,e.type;if(e.underlyingTypeResolving)return p.i32;e.underlyingTypeResolving=!0;let s=this.resolveType(n,null,e.parent,null,t);if(e.underlyingTypeResolving=!1,!s)return p.i32;if(!DE(s))return t==0&&this.error(6403,n.range,s.toString()),p.i32;e.refineType(s);let a=e.members;if(a)for(let l=Map_values(a),o=0,u=l.length;o<u;++o){let c=unchecked(l[o]);c.kind==3&&c.refineType(s)}return e.underlyingTypeResolved=!0,s}resolveFunctionType(e,t,n,s=null,a=0){let l=e.explicitThisType,o=null;if(l&&(o=this.resolveType(l,t,n,s,a),!o))return null;let u=e.parameters,c=u.length,f=new Array(c),_=0,d=!1;for(let A=0;A<c;++A){let k=u[A];switch(k.parameterKind){case 0:{_=A+1;break}case 2:{assert(A==c-1),d=!0;break}}let F=k.type;if(De(F))return a==0&&this.error(1110,F.range),null;let w=this.resolveType(F,t,n,s,a);if(!w)return null;if(w==p.void)return a==0&&this.error(214,F.range,w.toString()),null;f[A]=w}let g=e.returnType,y;if(De(g))a==0&&this.error(1110,g.range),y=p.void;else if(y=this.resolveType(g,t,n,s,a),!y)return null;let E=Te.create(this.program,f,y,o,_,d);return e.isNullable?E.type.asNullable():E.type}resolveFixedArrayType(e,t,n,s=null,a=0){let l=this.resolveType(e.elementType,t,n,s,a);return l?l.classReference!=null&&assert(l.classReference).hasDecorator(4096)?(a==0&&this.error(100,e.elementType.range,"an inline array (T[N]) of an @inline struct (elements by value are a later phase)"),null):l.isMemory?p.fixedArray(l,e.length):(a==0&&this.error(203,e.elementType.range,"a fixed-size array of",l.toString()),null):null}resolveTupleType(e,t,n,s=null,a=0){let l=e.elements;for(let o=0,u=l.length;o<u;++o)if(!this.resolveType(l[o],t,n,s,a))return null;return a==0&&this.error(100,e.range,"Tuple types"),null}resolveBuiltinNotNullableType(e,t,n=null,s=0){let a=this.ensureOneTypeArgument(e,s);if(!a)return null;let l=this.resolveType(a,null,t,n,s);return l?l.isNullableReference?l.nonNullableType:l:null}resolveTypeName(e,t,n,s=0){let a=null;if(t&&(a=t.lookupTypeAlias(e.identifier.text)),a||(a=n.lookup(e.identifier.text,!0)),!a)return s==0&&this.error(2304,e.range,e.identifier.text),null;let l=e,o=e.next;for(;o;){if(!(a=a.getMember(o.identifier.text)))return s==0&&this.error(2339,o.range,o.identifier.text,l.identifier.text),null;l=o,o=o.next}return a}resolveTypeArguments(e,t,n,s,a=new Map,l=null,o=0){let u=0,c=0;for(let g=0,y=e.length;g<y;++g)e[g].defaultType||++u,++c;let f=t?t.length:0;if(f<u||f>c)return o==0&&this.error(2558,f?ue.join(t[0].range,t[f-1].range):l.range,(f<u?u:c).toString(),f.toString()),null;let _=new Array(c),d=de(a);a.clear();for(let g=0;g<c;++g){let y=g<f?this.resolveType(t[g],n,s,d,o):this.resolveType(assert(e[g].defaultType),n,s,de(a),o);if(!y)return null;a.set(e[g].name.text,y),_[g]=y}return _}maybeInferCall(e,t,n,s=0){let a=e.typeArguments;if(a)return t.is(65536)?this.resolveFunctionInclTypeArguments(t,a,n.sourceFunction,de(n.contextualTypeArguments),e,s):(s==0&&this.error(2315,e.expression.range,t.internalName),null);if(t.is(65536)){let l=this.inferGenericTypeArguments(e,t,t.typeParameterNodes,n,s);return l?this.resolveFunction(t,l,de(n.contextualTypeArguments),s):null}return this.resolveFunction(t,null,new Map,s)}inferGenericTypeArguments(e,t,n,s,a=0){if(!n)return null;let l=de(s.contextualTypeArguments),o=n.length,u=new Set;for(let E=0;E<o;++E){let A=n[E].name.text;l.set(A,p.auto),u.add(A)}let c=t.functionTypeNode.parameters,f=c.length,_,d;switch(e.kind){case 11:{let E=e;_=E.args,d=E.argumentsRange;break}case 19:{let E=e;_=E.args,d=E.argumentsRange;break}default:return assert(!1),null}let g=_.length;for(let E=0;E<f;++E){let A=E<g?_[E]:c[E].initializer;if(!A){if(c[E].parameterKind==1)continue;return a==0&&(c[E].parameterKind==2?this.error(1140,d.atEnd):this.error(2554,e.range,f.toString(),g.toString())),null}let k=c[E].type;if(c[E].parameterKind==2&&(k=k.typeArguments[0]),k.hasGenericComponent(n)){let F=this.resolveExpression(A,s,p.auto,1);F&&this.propagateInferredGenericTypes(k,F,t,l,u)}}let y=new Array(o);for(let E=0;E<o;++E){let A=n[E],k=A.name.text;if(l.has(k)){let F=assert(l.get(k));if(F!=p.auto){y[E]=F;continue}let w=A.defaultType;if(w){let R=t.parent,P=null;(R.kind==7||R.kind==5)&&(P=R.contextualTypeArguments);let M=this.resolveType(w,null,t,P,a);if(!M)return null;y[E]=M;continue}}if(a==0){let F;switch(e.kind){case 11:F=e.expression.range;break;case 19:F=e.typeName.range;break;default:return assert(!1),null}this.error(1140,F.atEnd)}return null}return y}propagateInferredGenericTypes(e,t,n,s,a){if(e.kind==1){let l=e,o=l.typeArguments;if(o&&o.length>0){let u=t.classReference;if(u){let c=this.resolveTypeName(l.name,null,n);if(!c||c.kind!=6)return;if(u.prototype==c){let f=u.typeArguments;if(f&&f.length==o.length){for(let _=0,d=f.length;_<d;++_)this.propagateInferredGenericTypes(o[_],f[_],n,s,a);return}}}}else{let u=l.name.identifier.text;if(s.has(u)){let c=assert(s.get(u));(c==p.auto||a.has(u)&&c.isAssignableTo(t))&&s.set(u,t)}}}else if(e.kind==2){let l=e,o=l.parameters,u=t.signatureReference;if(u){let c=u.parameterTypes;for(let g=0,y=min(c.length,o.length);g<y;++g)this.propagateInferredGenericTypes(o[g].type,c[g],n,s,a);let f=u.returnType;f!=p.void&&this.propagateInferredGenericTypes(l.returnType,f,n,s,a);let _=u.thisType,d=l.explicitThisType;_&&d&&this.propagateInferredGenericTypes(d,_,n,s,a);return}}}getTypeOfElement(e){let t=e.kind;if(t==0&&!this.ensureResolvedLazyGlobal(e,1))return null;if(Ko(t)){let n=e.type,s=n.getClassOrWrapper(this.program);if(s){let a=s.wrappedType;a&&(n=a)}return n}return null}getElementOfType(e){let t=e.getClassOrWrapper(this.program);return t||null}lookupExpression(e,t,n=p.auto,s=0){for(;e.kind==22;)e=e.expression;switch(e.kind){case 9:return this.lookupAssertionExpression(e,t,n,s);case 10:return this.lookupBinaryExpression(e,t,n,s);case 11:return this.lookupCallExpression(e,t,n,s);case 13:return this.lookupCommaExpression(e,t,n,s);case 14:return this.lookupElementAccessExpression(e,t,n,s);case 16:return this.lookupFunctionExpression(e,t,n,s);case 8:case 15:case 20:case 27:return this.lookupIdentifierExpression(e,t,t.sourceFunction,s);case 26:return this.lookupThisExpression(e,t,n,s);case 25:return this.lookupSuperExpression(e,t,n,s);case 17:return this.lookupInstanceOfExpression(e,t,n,s);case 18:return this.lookupLiteralExpression(e,t,n,s);case 19:return this.lookupNewExpression(e,t,n,s);case 23:return this.lookupPropertyAccessExpression(e,t,n,s);case 24:return this.lookupTernaryExpression(e,t,n,s);case 29:return this.lookupUnaryPostfixExpression(e,t,n,s);case 30:return this.lookupUnaryPrefixExpression(e,t,n,s);case 31:{let a=this.resolveAwaitExpression(e,t,s);return a?this.getElementOfType(a):null}}return assert(!1),null}resolveExpression(e,t,n=p.auto,s=0){let a=this.resolvingExpressions;if(a.has(e))return null;a.add(e);let l=this.doResolveExpression(e,t,n,s);return a.delete(e),l}doResolveExpression(e,t,n=p.auto,s=0){for(;e.kind==22;)e=e.expression;switch(e.kind){case 9:return this.resolveAssertionExpression(e,t,n,s);case 10:return this.resolveBinaryExpression(e,t,n,s);case 11:return this.resolveCallExpression(e,t,n,s);case 13:return this.resolveCommaExpression(e,t,n,s);case 14:return this.resolveElementAccessExpression(e,t,n,s);case 16:return this.resolveFunctionExpression(e,t,n,s);case 8:case 15:case 20:case 27:return this.resolveIdentifierExpression(e,t,n,t.sourceFunction,s);case 26:return this.resolveThisExpression(e,t,n,s);case 25:return this.resolveSuperExpression(e,t,n,s);case 17:return this.resolveInstanceOfExpression(e,t,n,s);case 18:return this.resolveLiteralExpression(e,t,n,s);case 19:return this.resolveNewExpression(e,t,n,s);case 23:return this.resolvePropertyAccessExpression(e,t,n,s);case 24:return this.resolveTernaryExpression(e,t,n,s);case 29:return this.resolveUnaryPostfixExpression(e,t,n,s);case 30:return this.resolveUnaryPrefixExpression(e,t,n,s);case 31:return this.resolveAwaitExpression(e,t,s)}return assert(!1),null}resolveAwaitExpression(e,t,n=0){let s=this.resolveExpression(e.operand,t,p.auto,n);if(!s)return null;let a=this.resolveTaskValueType(s);return a??s}resolveTaskValueType(e){let t=e.getClass();if(!t)return null;let n=this.program.taskPrototype;if(!n)return null;let s=t.getTypeArgumentsTo(n);return!s||s.length!=1?null:s[0]}lookupIdentifierExpression(e,t,n=t.sourceFunction,s=0){switch(e.kind){case 27:case 15:case 20:{let u=this.resolveIdentifierExpression(e,t,p.auto,n,s);return u?this.getElementOfType(u):null}}let a=e.text,l;if(l=t.lookup(a))return this.currentThisExpression=null,this.currentElementExpression=null,l;let o=t.outer;return o&&(l=o.lookup(a))?(this.currentThisExpression=null,this.currentElementExpression=null,l):(l=n.lookup(a))?(this.currentThisExpression=null,this.currentElementExpression=null,l):(l=this.program.lookup(a))?(this.currentThisExpression=null,this.currentElementExpression=null,l):(s==0&&this.error(2304,e.range,a),null)}resolveIdentifierExpression(e,t,n=p.auto,s=t.sourceFunction,a=0){switch(e.kind){case 27:case 15:return p.bool;case 20:{let u=n.getClass();if(u)return u.type.asNullable();{let c=n.getSignature();if(c)return c.type.asNullable();if(n.isExternalReference)return n}return this.program.options.usizeType}}let l=this.lookupIdentifierExpression(e,t,s,a);if(!l)return null;if(l.kind==4){let u=this.resolveFunction(l,null,new Map,a);if(!u)return null;l=u}let o=this.getTypeOfElement(l);return o||a==0&&this.error(225,e.range),o}ensureResolvedLazyGlobal(e,t=0){if(e.is(4194304))return!0;let n=e.typeNode,s=n?this.resolveType(n,null,e.parent,null,t):this.resolveExpression(assert(e.initializerNode),e.file.startFunction.flow,p.auto,t);return s?(e.setType(s),!0):!1}lookupPropertyAccessExpression(e,t,n,s=0){let a=e.expression,l=this.lookupExpression(a,t,n,s);if(!l)return null;let o=e.property.text;switch(l.kind){case 0:if(!this.ensureResolvedLazyGlobal(l,s))return null;case 3:case 1:{let u=l,c=u.type;if(c==p.void)return null;let f=c.getClassOrWrapper(this.program);if(!f)return s==0&&this.error(2339,e.property.range,o,u.type.toString()),null;l=f;break}case 10:{let u=this.resolveProperty(l,s);if(!u)return null;l=u}case 11:{let u=l,c=u.getterInstance;if(!c){let d=assert(u.setterInstance);return this.errorRelated(229,a.range,d.declaration.range,u.name),null}let f=c.signature.returnType,_=f.getClassOrWrapper(this.program);if(!_)return s==0&&this.error(2339,e.property.range,o,f.toString()),null;l=_;break}case 15:{let c=l.parent;assert(c.kind==7);let f=c,_=assert(this.currentElementExpression),d=f.lookupOverload(1);if(!d)return s==0&&this.error(2329,_.range,c.internalName),null;let g=d.signature.returnType,y=g.getClassOrWrapper(this.program);if(!y)return s==0&&this.error(2339,e.property.range,o,g.toString()),null;l=y;break}case 4:{let u=l.shadowType;if(u){if(!u.is(4194304)){let f=this.resolveType(u.typeNode,null,u.parent,null,s);f&&u.setType(f)}let c=u.type.classReference;c&&(l=c.prototype);break}else if(!l.is(65536)&&!l.getMember(o)){let f=this.resolveFunction(l,null,new Map,1);if(f){let _=f.type.getClassOrWrapper(this.program);_&&(l=_)}}break}}switch(l.kind){case 6:case 8:case 7:case 9:{let u=l,c=!1;do{let f=u.getMember(o);if(f){if(f.kind==10){let _=this.resolveProperty(f,s);if(!_)return null;f=_,_.is(32)?this.currentThisExpression=null:this.currentThisExpression=a}else this.currentThisExpression=a;return this.currentElementExpression=null,f}switch(c=!1,u.kind){case 6:case 8:{let d=u.basePrototype;d&&(c=!0,u=d);break}case 7:case 9:{let d=u.base;d&&(c=!0,u=d);break}}}while(c);break}default:{let u=l.getMember(o);if(u)return this.currentThisExpression=a,this.currentElementExpression=null,u;break}}return s==0&&this.error(2339,e.property.range,o,l.internalName),null}resolvePropertyAccessExpression(e,t,n,s=0){let a=this.lookupPropertyAccessExpression(e,t,n,s);if(!a)return null;let l=this.getTypeOfElement(a);return l||s==0&&this.error(225,e.range),l}lookupElementAccessExpression(e,t,n,s=0){let a=e.expression,l=this.resolveExpression(a,t,n,s);if(!l)return null;let o=l.getClassOrWrapper(this.program);if(o)do{let u=o.indexSignature;if(u)return this.currentThisExpression=a,this.currentElementExpression=e.elementExpression,u;o=o.base}while(o);return s==0&&this.error(2329,a.range,l.toString()),null}resolveElementAccessExpression(e,t,n,s=0){let a=this.lookupElementAccessExpression(e,t,n,s);if(!a)return null;let l=this.getTypeOfElement(a);return l||s==0&&this.error(225,e.range),l}determineIntegerLiteralType(e,t,n){let s=e.value;if(t){if(i64_gt(i64_add(s,i64_minimum),i64_zero)){let a=e.range;this.error(236,a,a.source.text.substring(a.start-1,a.end))}else if(i64_eq(s,i64_zero)){if(n.isFloatValue)return n.kind==11?p.f32:p.f64;if(!n.isIntegerValue)return p.f64}s=i64_neg(s)}if(n.isValue)switch(n.kind){case 0:{if(i64_is_bool(s))return p.bool;break}case 1:{if(i64_is_i8(s))return p.i8;break}case 6:{if(i64_is_u8(s))return p.u8;break}case 2:{if(i64_is_i16(s))return p.i16;break}case 7:{if(i64_is_u16(s))return p.u16;break}case 3:{if(i64_is_i32(s))return p.i32;break}case 8:{if(i64_is_u32(s))return p.u32;break}case 5:{if(!this.program.options.isWasm64){if(i64_is_i32(s))return p.isize32;break}return p.isize64}case 10:{if(!this.program.options.isWasm64){if(i64_is_u32(s))return p.usize32;break}return p.usize64}case 4:return p.i64;case 9:return p.u64;case 11:return p.f32;case 12:return p.f64}return i64_is_i32(s)?p.i32:i64_is_u32(s)?p.u32:p.i64}lookupAssertionExpression(e,t,n=p.auto,s=0){switch(e.assertionKind){case 1:case 0:{let a=this.resolveType(assert(e.toType),null,t.sourceFunction,t.contextualTypeArguments,s);if(!a)return null;let l=this.getElementOfType(a);return l||(s==0&&this.error(214,e.range,a.toString()),this.currentThisExpression=null,this.currentElementExpression=null,null)}case 2:return this.lookupExpression(e.expression,t,n,s);case 3:return this.error(100,e.range,"Const assertion"),null}return assert(!1),null}resolveAssertionExpression(e,t,n=p.auto,s=0){switch(e.assertionKind){case 1:case 0:return this.resolveType(assert(e.toType),null,t.sourceFunction,t.contextualTypeArguments,s);case 2:{let a=this.resolveExpression(e.expression,t,n,s);return a?a.nonNullableType:null}case 3:{let a=this.lookupExpression(e,t,n,s);if(!a)return null;let l=this.getTypeOfElement(a);return l||s==0&&this.error(225,e.range),l}default:assert(!1)}return null}lookupUnaryPrefixExpression(e,t,n=p.auto,s=0){let a=this.resolveUnaryPrefixExpression(e,t,n,s);if(!a)return null;let l=this.getElementOfType(a);return l||s==0&&this.error(2469,e.range,Le(e.operator),a.toString()),l}resolveUnaryPrefixExpression(e,t,n=p.auto,s=0){let a=e.operand,l=e.operator;switch(l){case 83:if(a.isLiteralKind(1))return this.determineIntegerLiteralType(a,!0,n);case 82:case 88:case 89:{let o=this.resolveExpression(a,t,n,s);if(!o)return null;let u=o.getClassOrWrapper(this.program);if(u){let c=u.lookupOverload(Me.fromUnaryPrefixToken(l));if(c)return c.signature.returnType}return o.isNumericValue?o:(s==0&&this.error(2469,e.range,Le(l),o.toString()),null)}case 96:{let o=this.resolveExpression(a,t,n,s);if(!o)return null;let u=o.getClassOrWrapper(this.program);if(u){let c=u.lookupOverload(25);if(c)return c.signature.returnType}return p.bool}case 97:{let o=this.resolveExpression(a,t,n,s);if(!o)return null;let u=o.getClassOrWrapper(this.program);if(u){let c=u.lookupOverload(26);if(c)return c.signature.returnType}return o.isNumericValue?o.intType:(s==0&&this.error(2469,e.range,"~",o.toString()),null)}case 70:return s==0&&this.error(100,e.range,"Spread operator"),null;case 57:return this.program.stringInstance.type;default:assert(!1)}return null}lookupUnaryPostfixExpression(e,t,n=p.auto,s=0){let a=this.resolveUnaryPostfixExpression(e,t,n,s);if(!a)return null;let l=this.getElementOfType(a);return l||s==0&&this.error(2469,e.range,Le(e.operator),a.toString()),l}resolveUnaryPostfixExpression(e,t,n=p.auto,s=0){let a=e.operator;switch(a){case 88:case 89:{let l=this.resolveExpression(e.operand,t,n,s);if(!l)return null;let o=l.getClassOrWrapper(this.program);if(o){let u=o.lookupOverload(Me.fromUnaryPostfixToken(a));if(u)return u.signature.returnType}return l.isNumericValue?l:(s==0&&this.error(2469,e.range,Le(a),l.toString()),null)}}return assert(!1),null}lookupBinaryExpression(e,t,n=p.auto,s=0){let a=this.resolveBinaryExpression(e,t,n,s);if(!a)return null;let l=this.getElementOfType(a);return l||(s==0&&this.error(214,e.range,a.toString()),null)}resolveBinaryExpression(e,t,n=p.auto,s=0){let a=e.left,l=e.right,o=e.operator;switch(o){case 102:case 103:case 104:case 105:case 106:case 107:case 108:case 109:case 110:case 111:case 112:case 113:case 114:return this.resolveExpression(a,t,n,s);case 73:case 74:case 75:case 76:{let u=this.resolveExpression(a,t,n,s);if(!u)return null;let c=u.getClassOrWrapper(this.program);if(c){let f=c.lookupOverload(Me.fromBinaryToken(o));if(f)return f.signature.returnType}return u.isNumericValue?p.bool:(s==0&&this.error(2469,e.range,Le(o),u.toString()),null)}case 77:case 78:{let u=this.resolveExpression(a,t,n,s);if(!u)return null;let c=u.getClassOrWrapper(this.program);if(c){let f=c.lookupOverload(Me.fromBinaryToken(o));if(f)return f.signature.returnType}return p.bool}case 79:case 80:return p.bool;case 29:return p.bool;case 82:case 83:case 85:case 86:case 87:case 84:{let u=this.resolveExpression(a,t,n,s);if(!u)return null;let c=u.getClassOrWrapper(this.program);if(c){let d=c.lookupOverload(Me.fromBinaryToken(o));if(d)return d.signature.returnType}let f=this.resolveExpression(l,t,u,s);if(!f)return null;let _=p.commonType(u,f,n);return _||s==0&&this.error(2365,e.range,Le(o),u.toString(),f.toString()),_}case 90:case 91:case 92:{let u=this.resolveExpression(a,t,n,s);if(!u)return null;let c=u.getClassOrWrapper(this.program);if(c){let f=c.lookupOverload(Me.fromBinaryToken(o));if(f)return f.signature.returnType}return u.isIntegerValue?u:(s==0&&this.error(2469,e.range,Le(o),u.toString()),null)}case 93:case 94:case 95:{let u=this.resolveExpression(a,t,n,s);if(!u)return null;let c=u.getClassOrWrapper(this.program);if(c){let d=c.lookupOverload(Me.fromBinaryToken(o));if(d)return d.signature.returnType}let f=this.resolveExpression(l,t,n,s);if(!f)return null;let _=p.commonType(u,f,n);return(!_||!_.isIntegerValue)&&s==0&&this.error(2365,e.range,Le(o),u.toString(),f.toString()),_}case 98:{let u=this.resolveExpression(a,t,n,s);if(!u)return null;let c=this.resolveExpression(l,t,u,s);if(!c)return null;let f=p.commonType(u,c,n);return f||s==0&&this.error(2365,e.range,"&&",u.toString(),c.toString()),f}case 99:{let u=this.resolveExpression(a,t,n,s);if(!u)return null;let c=this.resolveExpression(l,t,u,s);if(!c)return null;let f=p.commonType(u,c,n);return f?u.is(512)&&c.is(512)?f:f.nonNullableType:(s==0&&this.error(2365,e.range,"||",u.toString(),c.toString()),null)}}return assert(!1),null}markCapturingArrows(e,t){for(let n=0,s=e.length;n<s;++n){let a=e[n];a.prototype.capturesThis||(a.prototype.capturesThis=!0,assert(!a.signature.thisType),a.addLocal(t,N.this_))}}lookupThisExpression(e,t,n=p.auto,s=0){if(t.isInline){let o=t.lookupLocal(N.this_);if(o)return this.currentThisExpression=null,this.currentElementExpression=null,o}let a=t.sourceFunction,l=null;for(;a!=null&&a.prototype.arrowKind!=0;){l||(l=new Array),l.push(a);let o=a.parent;a=o!=null&&o.kind==5?o:null}if(a!=null){let o=a.parent;if(o!=null&&o.kind==7)return l&&this.markCapturingArrows(l,o.type),this.currentThisExpression=null,this.currentElementExpression=null,o;if(o!=null&&o.kind==6)return this.currentThisExpression=null,this.currentElementExpression=null,o;let u=a.flow.scopedLocals,c=u?te(u,N.this_):null;if(c)return l&&this.markCapturingArrows(l,c.type),this.currentThisExpression=null,this.currentElementExpression=null,c}return s==0&&this.error(2332,e.range),null}resolveThisExpression(e,t,n=p.auto,s=0){let a=this.lookupThisExpression(e,t,n,s);if(!a)return null;let l=this.getTypeOfElement(a);return l||s==0&&this.error(225,e.range),l}lookupSuperExpression(e,t,n=p.auto,s=0){if(t.isInline){let l=t.lookupLocal(N.super_);if(l)return this.currentThisExpression=null,this.currentElementExpression=null,l}let a=t.sourceFunction.parent;if(a&&a.kind==7){let l=a.base;if(l)return this.currentThisExpression=null,this.currentElementExpression=null,l}return s==0&&this.error(2335,e.range),null}resolveSuperExpression(e,t,n=p.auto,s=0){let a=this.lookupSuperExpression(e,t,n,s);if(!a)return null;let l=this.getTypeOfElement(a);return l||s==0&&this.error(225,e.range),l}lookupLiteralExpression(e,t,n=p.auto,s=0){switch(this.currentThisExpression=e,this.currentElementExpression=null,e.literalKind){case 1:{let a=this.determineIntegerLiteralType(e,!1,n);return assert(a.getClassOrWrapper(this.program))}case 0:{let a=n==p.f32?p.f32:p.f64;return assert(a.getClassOrWrapper(this.program))}case 2:case 3:return this.program.stringInstance;case 4:return this.program.regexpInstance;case 5:{let a=n.getClass();if(a&&a.prototype==this.program.arrayPrototype)return this.getElementOfType(n);let l=e.elementExpressions,o=l.length,u=p.auto,c=0;for(let f=0,_=o;f<_;++f){let d=l[f];if(d)if(d.kind==20&&o>1)++c;else{let g=this.resolveExpression(d,t,u);if(!g)return null;if(u==p.auto)u=g;else if(g!=u){let y=p.commonType(u,g,u);y&&(u=y)}}}if(u==p.auto)if(c==o)u=this.program.options.usizeType;else return s==0&&this.error(2453,e.range,"T"),null;return c>0&&u.isInternalReference&&(u=u.asNullable()),assert(this.resolveClass(this.program.arrayPrototype,[u]))}case 6:return n.isClass?n.classReference:(s==0&&this.error(225,e.range),null)}return assert(!1),null}resolveLiteralExpression(e,t,n=p.auto,s=0){let a=this.lookupLiteralExpression(e,t,n,s);if(!a)return null;let l=this.getTypeOfElement(a);return l||s==0&&this.error(225,e.range),l}lookupCallExpression(e,t,n=p.void,s=0){let a=this.resolveCallExpression(e,t,n,s);if(!a)return null;let l=this.getElementOfType(a);return l||s==0&&this.error(214,e.range,a.toString()),l}resolveCallExpression(e,t,n=p.void,s=0){let a=e.expression,l=this.lookupExpression(a,t,n,s);if(!l)return null;switch(l.kind){case 4:{let o=l;if(o.internalName==m.unchecked&&e.args.length>0)return this.resolveExpression(e.args[0],t,n,s);let u=this.maybeInferCall(e,o,t,s);if(!u)return null;l=u}case 5:{let o=l;if(o.prototype.isAsync){let u=this.resolveAsyncCallType(o,s);if(u)return u}return o.signature.returnType}case 10:{let o=this.resolveProperty(l,s);if(!o)return null;l=o}default:{if(!Ko(l.kind))break;let o=this.getElementOfType(l.type);if(!o||o.kind!=7)break;l=o}case 7:{let o=l.getTypeArgumentsTo(this.program.functionPrototype);if(!(o&&o.length))break;return assert(o[0].getSignature()).returnType}}return s==0&&this.error(2349,a.range,l.internalName),null}resolveAsyncCallType(e,t=0){let n=this.program.taskPrototype;if(!n)return null;let s=this.resolveClass(n,[e.signature.returnType],new Map,t);return s?s.type:null}lookupCommaExpression(e,t,n=p.auto,s=0){let a=e.expressions;return this.lookupExpression(a[assert(a.length)-1],t,n,s)}resolveCommaExpression(e,t,n=p.auto,s=0){let a=e.expressions;return this.resolveExpression(a[assert(a.length)-1],t,n,s)}lookupInstanceOfExpression(e,t,n=p.auto,s=0){return assert(p.bool.getClassOrWrapper(this.program))}resolveInstanceOfExpression(e,t,n=p.auto,s=0){return p.bool}lookupTernaryExpression(e,t,n,s=0){let a=this.resolveTernaryExpression(e,t,n,s);if(!a)return null;let l=this.getElementOfType(a);return l||s==0&&this.error(214,e.range,a.toString()),l}resolveTernaryExpression(e,t,n,s=0){let a=this.resolveExpression(e.ifThen,t,n,s);if(!a)return null;let l=this.resolveExpression(e.ifElse,t,a,s);if(!l)return null;let o=p.commonType(a,l,n);return o||s==0&&this.error(2365,e.range,"?:",a.toString(),l.toString()),o}lookupNewExpression(e,t,n,s=0){let a=this.resolveTypeName(e.typeName,t,t.sourceFunction,s);return a?a.kind==6?this.resolveClassInclTypeArguments(a,e.typeArguments,t,t.sourceFunction,de(t.contextualTypeArguments),e,s):(s==0&&this.error(2351,e.range),null):null}resolveNewExpression(e,t,n,s=0){let a=this.lookupNewExpression(e,t,n,s);if(!a)return null;let l=this.getTypeOfElement(a);return l||s==0&&this.error(225,e.range),l}lookupFunctionExpression(e,t,n,s=0){let a=this.resolveFunctionExpression(e,t,n,s);if(!a)return null;let l=this.getElementOfType(a);return l||s==0&&this.error(214,e.range,a.toString()),l}resolveFunctionExpression(e,t,n,s=0){let a=e.declaration,l=a.signature,o=a.body,u=this.resolveType(l,null,t.sourceFunction,t.contextualTypeArguments,s);if(u&&a.arrowKind!=0&&o&&o.kind==42&&De(l.returnType)){let c=o.expression,f=assert(u.getSignature()),_=Jt.createDefault(t.sourceFunction),d=l.parameters;assert(f.parameterTypes.length==d.length);for(let y=0,E=d.length;y<E;y++){let A=d[y],k=f.parameterTypes[y];_.addScopedDummyLocal(A.name.text,k,A)}let g=this.resolveExpression(c,_,n,s);g&&(u.signatureReference=Te.create(this.program,f.parameterTypes,g,f.thisType,f.requiredParameters,f.hasRest))}return u}resolveFunction(e,t,n=new Map,s=0){let a=null,l=t?Ho(t):"";if(e.is(262144)){a=assert(e.getBoundClassOrInterface());let j=e.getResolvedInstance(l);if(j)return j;let U=a.typeArguments;if(U){let D=assert(a.prototype.typeParameterNodes),Q=D.length;assert(Q==D.length);for(let Y=0;Y<Q;++Y){let q=D[Y].name.text;n.set(q,U[Y])}}}else{assert(!e.isBound);let j=e.getResolvedInstance(l);if(j)return j}let o=e.functionTypeNode,u=e.typeParameterNodes,c;if(t&&(c=t.length)>0){assert(u&&c==u.length);for(let j=0;j<c;++j)n.set(u[j].name.text,t[j])}else assert(!u||u.length==0);let f=null,_=o.explicitThisType;if(_){if(f=this.resolveType(_,null,e.parent,n,s),!f)return null;n.set(N.this_,f)}else a&&(f=a.type,n.set(N.this_,f));let d=o.parameters,g=d.length,y=new Array(g),E=null,A=0,k=!1;for(let j=0;j<g;++j){let U=d[j];U.parameterKind==0?A=j+1:U.parameterKind==2&&(k=!0);let D=U.type;if(De(D))return s==0&&this.error(1110,D.range),null;let Q=this.resolveType(D,null,e.parent,n,s);if(!Q)return null;if(Q==p.void)return s==0&&this.error(1110,D.range),null;y[j]=Q;let Y=D.memoryModel;if(Y!=0){if(E==null){E=new Array(g);for(let q=0;q<g;++q)unchecked(E[q]=0)}unchecked(E[j]=Y)}}let F;if(e.is(4096))F=p.void;else if(e.is(524288))F=a.type;else{let j=o.returnType;if(De(j))return s==0&&this.error(1110,j.range),null;let U=this.resolveType(j,null,e.parent,n,s);if(!U)return null;F=U}let w=e.is(524288)&&F.classReference!=null&&assert(F.classReference).hasDecorator(4096),R=e.hasAnyDecorator(384)&&$b(y,E),P=e.is(1048576)&&!e.hasAnyDecorator(384)&&$b(y,E),M=Te.create(this.program,y,F,f,A,k,w,R,P,E),O=e.name;l.length&&(O+=`<${l}>`);let z=new Lt(O,e,t,M,n);if(e.setResolvedInstance(l,z),a){let j=z.declaration.name.text,U=a.base;if(U){let D=U.getMember(j);if(D){this.discoveredOverride=!0;let Q=!0;if(z.isAny(6144)){if(D.kind==10){let Y=this.resolveProperty(D,s);if(Y)if(z.is(2048)){let q=Y.getterInstance;q&&z.signature.isAssignableTo(q.signature,!0)&&(Q=!1)}else{assert(z.is(4096));let q=Y.setterInstance;q&&z.signature.isAssignableTo(q.signature,!0)&&(Q=!1)}}}else if(z.is(524288))Q=!1;else if(D.kind==4){let Y=D,q=Y.typeParameterNodes,le=q!=null&&q.length>0,H=t!=null&&t.length>0;if(le!=H)this.errorRelated(242,z.identifierAndSignatureRange,D.identifierAndSignatureRange,j),Q=!1;else{let me=this.resolveFunction(Y,t,new Map,1);me&&z.signature.isAssignableTo(me.signature,!0)&&(Q=!1)}}Q&&this.errorRelated(2394,z.identifierAndSignatureRange,D.identifierAndSignatureRange)}}}return z}resolveFunctionInclTypeArguments(e,t,n,s,a,l=0){let o=null;if(e.is(65536)){if(e.is(262144)){let u=assert(e.getBoundClassOrInterface()),c=u.typeArguments;if(c){let f=assert(u.prototype.typeParameterNodes),_=c.length;assert(_==f.length);for(let d=0;d<_;++d)s.set(f[d].name.text,c[d])}}if(o=this.resolveTypeArguments(assert(e.typeParameterNodes),t,null,n,s,a,l),!o)return null}else if(t&&t.length>0)return l==0&&this.error(2315,a.range,e.internalName),null;return this.resolveFunction(e,o,s,l)}resolveOverrides(e){let t=e.prototype.unboundOverrides;if(!t)return null;let n=assert(e.getBoundClassOrInterface()),s=new Set;for(let a=Set_values(t),l=0,o=a.length;l<o;++l){let u=a[l];assert(!u.isBound);let c=u.parent,f;if(assert(c.kind==6||c.kind==8),f=c.instances,!!f)for(let _=Map_values(f),d=0,g=_.length;d<g;++d){let y=_[d];if(!y.isAssignableTo(n))continue;let E=null;if(e.isAny(6144)){let A=e.declaration.name.text,k=assert(y.getMember(A));assert(k.kind==10);let F=this.resolveProperty(k);if(!F)continue;e.is(2048)?E=F.getterInstance:(assert(e.is(4096)),E=F.setterInstance)}else{let A=y.getMember(u.name);if(A){assert(A.kind==4);let k=A;k.is(65536)==e.is(65536)&&(E=this.resolveFunction(k,e.typeArguments))}}E&&s.add(E)}}return Set_values(s)}findManagedLeaf(e,t){let n=e.classReference;if(n==null||t.has(n))return null;t.add(n);let s=n.members;if(!s)return null;for(let a=Map_values(s),l=0,o=a.length;l<o;++l){let u=unchecked(a[l]);if(u.kind!=10)continue;let c=u.instance;if(c==null||!c.isField)continue;let f=c.type;if(f.isManaged)return c;if(f.kind==14){let _=f.fixedElementType;if(_!=null&&_.isManaged)return c}else if(Wo(f)==1){let _=this.findManagedLeaf(f,t);if(_!=null)return _}}return null}resolveClass(e,t,n=new Map,s=0){let a=t?Ho(t):"",l=e.getResolvedInstance(a);if(l)return l;let o=e.name;a.length&&(o+=`<${a}>`),e.kind==8?l=new Cs(o,e,t):l=new Er(o,e,t),e.setResolvedInstance(a,l);let u=this.resolveClassPending;if(u.add(l),t){let d=assert(e.typeParameterNodes),g=d.length,y=t.length;assert(y==g);for(let E=0;E<y;++E)n.set(d[E].name.text,t[E])}else{let d=e.typeParameterNodes;assert(!(d&&d.length>0))}l.contextualTypeArguments=n;let c=!1,f=e.basePrototype;if(f){let d=f;do{if(d==e)return this.error(2506,e.identifierNode.range,e.internalName),null;d=d.basePrototype}while(d);let g=assert(e.extendsNode),y=this.resolveClassInclTypeArguments(f,g.typeArguments,null,e.parent,de(n),g,s);if(!y)return null;l.setBase(y),u.has(y)&&(c=!0)}else e.implicitlyExtendsObject&&l.setBase(this.program.objectInstance);let _=e.interfacePrototypes;if(_)for(let d=0,g=_.length;d<g;++d){let y=_[d],E=y;do{if(E==e)return this.error(2506,e.identifierNode.range,e.internalName),null;E=E.basePrototype}while(E);let A=assert(e.implementsNodes[d]),k=this.resolveClassInclTypeArguments(y,A.typeArguments,null,e.parent,de(n),A,s);if(!k)return null;assert(k.kind==9),l.addInterface(k),u.has(k)&&(c=!0)}return c||this.finishResolveClass(l,s),l}checkOverrideVisibility(e,t,n,s,a,l){let o=!1;return t.is(524288)?(assert(s.is(524288)),s.is(512)&&(l==0&&this.errorRelated(2675,t.identifierNode.range,s.identifierNode.range,a.internalName),o=!0)):t.is(512)?s.is(512)?(l==0&&this.errorRelated(2442,t.identifierNode.range,s.identifierNode.range,e),o=!0):(l==0&&this.errorRelated(2325,t.identifierNode.range,s.identifierNode.range,e,n.internalName,a.internalName),o=!0):t.is(1024)?s.is(512)?(l==0&&this.errorRelated(2325,t.identifierNode.range,s.identifierNode.range,e,a.internalName,n.internalName),o=!0):s.isPublic?(l==0&&this.errorRelated(2444,t.identifierNode.range,s.identifierNode.range,e,n.internalName,a.internalName),o=!0):assert(s.is(1024)):t.isPublic&&(s.is(512)?(l==0&&this.errorRelated(2325,t.identifierNode.range,s.identifierNode.range,e,a.internalName,n.internalName),o=!0):s.is(1024)?(l==0&&this.errorRelated(2444,t.identifierNode.range,s.identifierNode.range,e,a.internalName,n.internalName),o=!0):assert(s.isPublic)),!o}finishResolveClass(e,t){let n=e.members;n||(e.members=n=new Map);let s=this.resolveClassPending,a=new Map,l=e.interfaces;if(l)for(let g=Set_values(l),y=0,E=g.length;y<E;++y){let A=g[y];assert(!s.has(A));let k=A.members;if(k)for(let F=Map_keys(k),w=0,R=F.length;w<R;++w){let P=unchecked(F[w]),M=assert(k.get(P)),O=e.getMember(P);O&&!this.checkOverrideVisibility(P,O,e,M,A,t)||(n.set(P,M),a.set(P,M))}}let o=0,u=0,c=e.base;if(c){let g=e.prototype.implicitlyExtendsObject;assert(!s.has(c));let y=c.members;if(y)for(let E=Map_keys(y),A=0,k=E.length;A<k;++A){let F=unchecked(E[A]),w=assert(y.get(F));if(g&&w.is(32))continue;let R=e.getMember(F);R&&!this.checkOverrideVisibility(F,R,e,w,c,t)||(n.set(F,w),w.is(128)?a.set(F,w):a.delete(F))}o=c.nextMemoryOffset,u=c.alignLog2}let f=e.prototype,_=f.instanceMembers;if(_)for(let g=Map_values(_),y=0,E=g.length;y<E;++y){let A=unchecked(g[y]),k=A.name;if(c){let F=c.getMember(k);F&&this.checkOverrideVisibility(k,A,e,F,c,t)}switch(A.kind){case 4:{let F=A.toBound(e);e.add(F.name,F);break}case 10:{let F=A.toBound(e);if(F.isField){let w=this.resolveProperty(F,t);if(w){let R=w.type;if(R==p.void)break;if(R.isExternalReference){this.error(100,assert(F.typeNode).range,"Reference typed fields");break}let P=!0;if(c){let O=c.getMember(F.name);if(O&&O.kind==10){let z=O,j=this.resolveProperty(z,t);if(j&&j.isField){if(j.type!=w.type){this.errorRelated(2416,w.identifierNode.range,j.identifierNode.range,w.name,e.internalName,c.internalName);break}w.memoryOffset=j.memoryOffset,P=!1}}}if(P){let O=null;if(Wo(R)==1){let Y=R.classReference;if(Y!=null){O=Y;let q=assert(F.fieldDeclaration).type;if(s.has(Y)){this.error(100,q.range,"a recursive @inline struct: '"+Y.name+"' would have an infinite size (it contains itself, directly or through another @inline struct, by value)");break}let le=this.findManagedLeaf(Y.type,new Set);if(le!=null){this.error(100,q.range,"an @inline struct field '"+le.name+"' of '"+Y.name+"' is a GC reference, and"+(e.hasDecorator(2048)?" the __visit pass walks the outer's fields -- an inline field's GC pointer is invisible to it, so the collector would not trace it":" an inline field's GC pointer is invisible to the collector -- the field looks safe but is not; the escape hatch is a hand-written byte layout, not an @inline field"));break}}}let z=O!=null?O.nextMemoryOffset:R.byteSize;if(e.hasDecorator(2048)&&R.kind==14){let Y=R.fixedElementType;this.error(100,assert(F.fieldDeclaration).type.range,Y!=null&&Y.isManaged?"an inline array of GC references on an @managed struct (the collector cannot trace its elements)":"an inline array (T[N]) on an @managed struct (field initialization cannot fill an extent yet; see compiler.ts makeZero)");break}let j=O!=null?O.alignLog2:R.alignLog2,U=j,D=zE(assert(F.fieldDeclaration).decorators);if(D){let Y=D.args,q=i64_zero,le=!1;if(Y&&Y.length==1&&Y[0].isLiteralKind(1)&&(q=Y[0].value,le=!0),!le)this.error(6405,D.range);else if(i64_lt(q,i64_one))this.error(6406,D.range,q.toString());else if(i64_gt(q,i64_new(1073741824,0)))this.error(6409,D.range,q.toString(),"1073741824");else{let H=i64_low(q);if((H&H-1)!=0)this.error(6407,D.range,q.toString());else{let me=1<<j;if(H<me)this.error(6408,D.range,q.toString(),me.toString());else{let oe=0,pe=H;for(;pe>1;)pe>>=1,++oe;U=oe}}}}assert(U>=0),U>u&&(u=U);let Q=(1<<U)-1;o&Q&&(o=(o|Q)+1),w.memoryOffset=o,o+=z}F.instance=w,e.add(F.name,F);let M=assert(F.fieldDeclaration).type;M&&(Wo(R)==1&&(e.hasDecorator(4096)?this.error(100,M.range,"an @inline struct nested inside an @inline value (the outer is one WASM local per field, so the inner would have to be flattened into the outer's leaves -- that is SROA flattening, sub-phase B)"):!e.hasDecorator(16)&&!e.hasDecorator(2048)&&this.error(100,M.range,"an @inline struct as a class field (a class field is a pointer slot; inline-in-heap is a separate, deferred case -- use an @unmanaged or @managed record field)")),this.program.checkTypeSupported(R,M))}}else e.add(F.name,F);break}default:assert(!1)}!A.is(128)&&!A.is(65536)&&a.delete(k)}if(e.kind!=9){if(!e.is(128)&&a.size>0)for(let g=Map_keys(a),y=0,E=g.length;y<E;++y){let A=g[y],k=assert(a.get(A));this.errorRelated(2515,e.identifierNode.range,k.identifierNode.range,e.internalName,A,k.parent.internalName)}if(e.hasDecorator(16)||e.hasDecorator(2048)){let g=(1<<u)-1;o=o+g&~g}e.alignLog2=u,e.nextMemoryOffset=o;{let g=e.getMember(N.constructor);if(g&&g.parent==e){assert(g.kind==4);let y=this.resolveFunction(g,null,assert(e.contextualTypeArguments),t);y&&(e.constructorInstance=y)}}}let d=f.operatorOverloadPrototypes;for(let g=Map_keys(d),y=0,E=g.length;y<E;++y){let A=unchecked(g[y]),k=assert(d.get(A));if(assert(A!=0),k.is(65536))continue;let F;if(k.is(262144)){let R=k.toBound(e);F=this.resolveFunction(R,null,new Map,t)}else F=this.resolveFunction(k,null,new Map,t);if(!F)continue;let w=e.operatorOverloads;if(w||(e.operatorOverloads=w=new Map),F.is(262144))switch(A){case 27:case 28:case 29:case 30:{let R=F.signature.returnType;R.isAssignableTo(e.type)||t==0&&this.error(2322,k.functionTypeNode.returnType.range,R.toString(),e.type.toString())}}if(w.has(A))t==0&&this.error(213,F.declaration.range);else if(w.set(A,F),A==1||A==2){let R=e.indexSignature;R||(e.indexSignature=R=new Rs(e)),A==1&&R.setType(F.signature.returnType)}}assert(s.has(e)),s.delete(e);for(let g=Set_values(s),y=0,E=g.length;y<E;++y){let A=g[y],k=A.base==e,F=A.interfaces;if(F){let w=!1;for(let R=Set_values(F),P=0,M=R.length;P<M;++P){let O=R[P];O==e?k=!0:s.has(O)&&(w=!0)}if(w)continue}k&&this.finishResolveClass(A,t)}}resolveClassInclTypeArguments(e,t,n,s,a,l,o=0){let u=null;if(e.is(65536)){let c=null;for(let f=e;f&&!c;f=f.basePrototype)c=f.constructorPrototype;if(!t&&c&&n&&a.size==0?u=this.inferGenericTypeArguments(l,c,e.typeParameterNodes,n):u=this.resolveTypeArguments(assert(e.typeParameterNodes),t,n,s,a,l,o),!u)return null}else if(t&&t.length>0)return o==0&&this.error(2315,l.range,e.internalName),null;return this.resolveClass(e,u,a,o)}resolveProperty(e,t=0){let n=e.instance;if(n)return n;e.instance=n=new ws(e,e.parent);let s=e.getterPrototype;if(s){let l=this.resolveFunction(s,null,new Map,t);l&&(n.getterInstance=l,n.setType(l.signature.returnType))}let a=e.setterPrototype;if(a){let l=this.resolveFunction(a,null,new Map,t);l&&(n.setterInstance=l,n.is(4194304)||(assert(l.signature.parameterTypes.length==1),n.setType(l.signature.parameterTypes[0])))}return n.checkVisibility(this),n}ensureOneTypeArgument(e,t=0){let n=e.typeArguments,s=0;return!n||(s=n.length)!=1?(t==0&&this.error(2558,e.range,"1",s.toString()),null):n[0]}};function $b(i,r){for(let e=0,t=i.length;e<t;++e){let n=unchecked(i[e]);if((Te.isInlineStructRef(n)||r!=null&&unchecked(r[e])==1)&&Te.fieldCountOf(n)>1)return!0}return!1}function Wo(i){let r=i.classReference;return r==null?0:r.hasDecorator(4096)?1:r.hasDecorator(2048)?2:r.hasDecorator(16)?3:0}function GE(i){switch(i){case 1:return"@inline";case 2:return"@managed";case 3:return"@unmanaged";default:return"@none"}}var Bs=class{constructor(r,e){this.source=r;this.reportNode=e}};function Zb(i){if(!i)return!1;for(let r=0,e=i.length;r<e;++r)if(i[r].decoratorKind==6)return!0;return!1}function UE(i){if(!i)return!1;for(let r=0,e=i.length;r<e;++r)if(i[r].decoratorKind==7)return!0;return!1}function Yb(i){if(!i)return!1;for(let r=0,e=i.length;r<e;++r)if(i[r].decoratorKind==9)return!0;return!1}function Jb(i){let r=null;if(i.kind==8)r=i.text;else if(i.kind==23)return 0;return r==null?0:r=="inline"?1:r=="managed"?2:r=="unmanaged"?3:0}function VE(i){let r=i.name;return r.kind==8&&r.text=="lazy"}function OE(i){let r=i.name;if(r.kind!=23)return!1;let e=r,t=e.expression;return t.kind!=8?!1:t.text=="abi"&&e.property.text=="align"}function qE(i,r){return i==1&&r==2||i==2&&r==1}var Ns=class extends tt{constructor(e=null,t=[]){super(e);this.backlog=new Array;this.seenlog=new Set;this.donelog=new Set;this.onComment=null;this.currentSource=null;this.dependees=new Map;this.currentModuleName=null;this.options=null;this.unplacedLazyExpressions=null;this.awaitNullifiedLazyExpressions=null;this.tryParseSignatureIsSignature=!1;this.parseParametersThis=null;this.inAsyncContext=!1;this.sources=t}parseFile(e,t,n){let s=Qr(t),a=fs(s);if(this.donelog.has(a))return;if(this.donelog.add(a),this.seenlog.add(a),e==null){let _=this.dependees,d=null;_.has(a)&&(d=assert(_.get(a))),this.error(6054,d?d.reportNode.range:null,t);return}let l=new Ee(n?1:t.startsWith(Ft)?t.indexOf(mt,Ft.length)<0?3:2:0,s,e);this.sources.push(l),this.currentSource=l,this.currentModuleName=null;let o=new ls(l,this.diagnostics);o.onComment=this.onComment;let u=l.statements;for(;!o.skip(122);){let _=this.parseTopLevelStatement(o,null);_?u.push(_):this.skipStatement(o)}let c=this.unplacedLazyExpressions;this.unplacedLazyExpressions=null;let f=this.awaitNullifiedLazyExpressions;if(this.awaitNullifiedLazyExpressions=null,c!=null)for(let _=Set_values(c),d=0,g=_.length;d<g;++d){let y=unchecked(_[d]);this.error(f!=null&&f.has(y)?6402:6397,y.range)}}parseTopLevelStatement(e,t=null){let n=t?t.flags&32768:0,s=-1,a=null;for(;e.skip(115);){s<0&&(s=e.tokenPos);let F=this.parseDecorator(e);if(!F){this.skipStatement(e);continue}a?a.push(F):a=[F]}let l=0,o=0,u=0,c=0;e.skip(18)&&(s<0&&(s=e.tokenPos),n|=2,l=e.tokenPos,o=e.pos,e.skip(13)&&(u=e.tokenPos,c=e.pos));let f=0,_=0,d=t!=null&&t.is(32768);e.skip(12)?d?this.error(1038,e.range()):(s<0&&(s=e.tokenPos),f=s,_=e.pos,n|=32772):d&&(n|=32768);let g=!1,y=0,E=0;if(e.peek()==2){let F=e.mark();e.next(),!e.peekOnNewLine()&&e.peek()==24?(g=!0,y=e.tokenPos,E=e.pos,s<0&&(s=y)):e.reset(F)}let A=null,k=e.peek();switch(s<0&&(s=e.nextTokenPos),k){case 8:{e.next(),n|=8,e.skip(17)?A=this.parseEnum(e,n,a,s):A=this.parseVariable(e,n,a,s),a=null;break}case 34:n|=16;case 58:{e.next(),A=this.parseVariable(e,n,a,s),a=null;break}case 17:{e.next(),A=this.parseEnum(e,n,a,s),a=null;break}case 24:{e.next(),A=this.parseFunction(e,n,a,s,g),g&&A&&n&32768&&this.error(1042,e.range(y,E),"async"),a=null;break}case 0:{let F=e.mark();e.next();let w=e.tokenPos,R=e.pos;if(e.peekOnNewLine()){e.reset(F),A=this.parseStatement(e,!0);break}let P=e.peek();if(P!=7){P==31&&this.error(1242,e.range(w,R)),e.reset(F),A=this.parseStatement(e,!0);break}else e.discard(F);n|=128}case 7:case 31:{e.next(),A=this.parseClassOrInterface(e,n,a,s),a=null;break}case 49:{let F=e.tokenPos,w=e.range(F,e.pos),R=Zb(a),P=Yb(a),M=UE(a);M&&R&&this.error(6390,w),M&&Yb(a)&&this.error(6391,w),e.next();let O=this.parseClassOrInterface(e,n,M?a:this.withValueDefault(a,w,R||P),s);O&&(O.declaredAsStruct=!0,O.declaredAsManagedStruct=M),A=O,a=null;break}case 36:{let F=e.mark();e.next(),e.peek(1)==116?(e.discard(F),A=this.parseNamespace(e,n,a,s),a=null):(e.reset(F),A=this.parseStatement(e,!0));break}case 28:{e.next(),n|=1,n&2?A=this.parseExportImport(e,s):A=this.parseImport(e);break}case 56:{let F=e.mark();e.next(),e.peek(1)==116?(e.discard(F),A=this.parseTypeDeclaration(e,n,a,s),a=null):(e.reset(F),A=this.parseStatement(e,!0));break}case 35:{let F=e.mark();e.next(),e.peek()==117&&!e.peekOnNewLine()?(e.discard(F),A=this.parseModuleDeclaration(e,n)):(e.reset(F),A=this.parseStatement(e,!0));break}default:{n&2?c&&e.skipIdentifier(1)?(_&&this.error(1120,e.range(f,_)),A=this.parseExportDefaultAlias(e,s,u,c),u=c=0):A=this.parseExport(e,s,(n&4)!=0):(o&&this.error(1042,e.range(l,o),"export"),_&&this.error(1042,e.range(f,_),"declare"),t?this.error(2695,e.range(s)):A=this.parseStatement(e,!0));break}}if(a)for(let F=0,w=a.length;F<w;++F)this.error(1206,a[F].range);if(c&&A!=null)switch(A.kind){case 56:case 59:case 55:case 61:case 63:return h.createExportDefaultStatement(A,e.range(s,e.pos));default:this.error(1042,e.range(u,c),"default")}return A}nextFile(){let e=this.backlog;return e.length?assert(e.shift()):null}getDependee(e){let t=this.dependees;return t.has(e)?assert(t.get(e)).source.internalPath:null}finish(){if(this.backlog.length)throw new Error("backlog is not empty");this.backlog=[],this.seenlog.clear(),this.donelog.clear(),this.dependees.clear()}parseTypeName(e){let t=h.createSimpleTypeName(e.readIdentifier(),e.range()),n=t;for(;e.skip(69);)if(e.skip(116)){let s=h.createSimpleTypeName(e.readIdentifier(),e.range());n.next=s,n=s}else return this.error(1003,e.range(e.pos)),null;return t}parseType(e,t=!0,n=!1){let s=0,a=null,l=e.next();for(;l==115;){let c=this.parseDecorator(e);if(!c)break;let f=Jb(c.name);f==0?this.error(212,c.range,c.name.range.toString()):s!=0?this.error(qE(s,f)?6391:6393,ue.join(assert(a).range,c.range)):(s=f,a=c),l=e.next()}let o=e.tokenPos,u;if(l==65){let c=e.skip(65),f=this.tryParseFunctionType(e);if(f){if(c&&!e.skip(66))return n||this.error(1005,e.range(),")"),null;u=f}else{if(c||this.tryParseSignatureIsSignature)return n||this.error(1012,e.range()),null;if(t){let _=this.parseType(e,!1,n);if(!_)return null;if(!e.skip(66))return n||this.error(1005,e.range(e.pos),")"),null;u=_,u.range.start=o,u.range.end=e.pos}else return n||this.error(1012,e.range()),null}}else if(l==45){let c=this.parseType(e,t,n);if(!c)return null;u=c,u.range.start=o}else if(l==67&&this.options&&this.options.hasFeature(512)){let c=[],f=[],_=!1;if(!e.skip(68)){do{let d=null,g=e.mark();if(e.skip(116)){let E=e.readIdentifier(),A=e.range();e.skip(101)?(d=h.createIdentifierExpression(E,A),_=!0):e.reset(g)}let y=this.parseType(e,!0,n);if(!y)return null;c.push(y),f.push(d)}while(e.skip(72));if(!e.skip(68))return n||this.error(1005,e.range(e.pos),"]"),null}u=h.createTupleType(c,_?f:null,!1,e.range(o,e.pos))}else if(l==59)u=h.createNamedType(h.createSimpleTypeName("void",e.range()),[],!1,e.range(o,e.pos));else if(l==52)u=h.createNamedType(h.createSimpleTypeName("this",e.range()),[],!1,e.range(o,e.pos));else if(l==54||l==20)u=h.createNamedType(h.createSimpleTypeName("bool",e.range()),[],!1,e.range(o,e.pos));else if(l==38)u=h.createNamedType(h.createSimpleTypeName("null",e.range()),[],!1,e.range(o,e.pos));else if(l==117)e.readString(),u=h.createNamedType(h.createSimpleTypeName("string",e.range()),[],!1,e.range(o,e.pos));else if(l==116){let c=this.parseTypeName(e);if(!c)return null;let f=null;if(e.skip(73)){do{let _=this.parseType(e,!0,n);if(!_)return null;f?f.push(_):f=[_]}while(e.skip(72));if(!e.skip(74))return n||this.error(1005,e.range(e.pos),">"),null}f||(f=[]),u=h.createNamedType(c,f,!1,e.range(o,e.pos))}else return n||this.error(1110,e.range()),null;for(;e.skip(94);){let c=this.parseType(e,!0,!1);if(!c)return null;let f=u.kind==1&&u.isNull,_=c.kind==1&&c.isNull;if(!f&&!_)return n||this.error(100,c.range,"union types"),null;_?(u.isNullable=!0,u.range.end=c.range.end):f?(c.range.start=u.range.start,c.isNullable=!0,u=c):u.range.end=c.range.end}for(;e.skip(67);){let c=e.tokenPos,f=-1;if(e.peek()==118){e.next();let g=e.tokenPos,y=e.readInteger(),E=e.range(g,e.pos);if(!e.skip(68)||i64_lt(y,i64_new(1))||i64_gt(y,i64_new(i32.MAX_VALUE)))return n||this.error(1005,E,"]"),null;f=i64_low(y)}if(f>=0){u=h.createFixedArrayType(u,f,e.range(o,e.pos));continue}if(!e.skip(68))return n||this.error(1005,e.range(),"]"),null;let _=e.range(c,e.pos),d=!1;if(e.skip(94))if(e.skip(38))d=!0;else return n||this.error(100,e.range(),"union types"),null;if(u=h.createNamedType(h.createSimpleTypeName("Array",_),[u],d,e.range(o,e.pos)),d)break}for(;e.peek()==115&&!e.peekOnNewLine();){e.next();let c=this.parseDecorator(e);if(!c)break;if(Jb(c.name)!=0){this.error(6392,c.range,c.name.range.toString());continue}if(VE(c)){this.error(6396,c.range);continue}if(OE(c)){this.error(6410,c.range);continue}u.attributes?assert(u.attributes).push(c):u.attributes=[c]}return s!=0&&(u.memoryModel=s),u}tryParseFunctionType(e){let t=e.mark(),n=e.tokenPos,s=null,a=null,l=!1,o=null,u=0;if(e.skip(66))l=!0,e.discard(t),s=[];else{l=!1;do{let f=-1,_=0;if(e.skip(70)&&(f=e.tokenPos,l=!0,e.discard(t),_=2),e.skip(52))if(f<0&&(f=e.tokenPos),e.skip(101)){l=!0,e.discard(t);let d=this.parseType(e,!1);if(!d)return null;if(d.kind!=1)return this.error(1003,d.range),this.tryParseSignatureIsSignature=!0,null;a=d}else return e.reset(t),this.tryParseSignatureIsSignature=!1,null;else if(e.skipIdentifier()){f<0&&(f=e.tokenPos);let d=h.createIdentifierExpression(e.readIdentifier(),e.range(e.tokenPos,e.pos));if(e.skip(100)&&(l=!0,e.discard(t),_==2?this.error(1047,e.range()):_=1),e.skip(101)){l=!0,e.discard(t);let g=this.parseType(e);if(!g)return this.tryParseSignatureIsSignature=l,null;let y=h.createParameter(_,d,g,null,e.range(f,e.pos));s?s.push(y):s=[y]}else if(l||e.peek()==72&&(l=!0,e.discard(t)),l){let g=h.createParameter(_,d,h.createOmittedType(e.range(e.pos)),null,e.range(f,e.pos));s?s.push(g):s=[g],this.error(1110,g.type.range)}else s||(o=d,u=_)}else{if(l){if(e.peek()==66)break;this.error(1003,e.range())}else e.reset(t);return this.tryParseSignatureIsSignature=l,null}}while(e.skip(72));if(!e.skip(66))return l?this.error(1005,e.range(),")"):e.reset(t),this.tryParseSignatureIsSignature=l,null}let c;if(e.skip(81)){if(!l&&(l=!0,e.discard(t),o)){let f=h.createParameter(u,o,h.createOmittedType(o.range.atEnd),null,o.range);s?s.push(f):s=[f],this.error(1110,f.type.range)}if(c=this.parseType(e),!c)return this.tryParseSignatureIsSignature=l,null}else return l?this.error(1005,e.range(),"=>"):e.reset(t),this.tryParseSignatureIsSignature=l,null;return this.tryParseSignatureIsSignature=!0,s||(s=[]),h.createFunctionType(s,c,a,!1,e.range(n,e.pos))}parseDecorator(e){let t=e.tokenPos;if(e.skipIdentifier()){let n=e.readIdentifier(),s=h.createIdentifierExpression(n,e.range(t,e.pos));for(;e.skip(69);)if(e.skipIdentifier(1))n=e.readIdentifier(),s=h.createPropertyAccessExpression(s,h.createIdentifierExpression(n,e.range()),e.range(t,e.pos));else return this.error(1003,e.range()),null;let a;if(e.skip(65)){if(a=this.parseArguments(e),a)return h.createDecorator(s,a,e.range(t,e.pos))}else return h.createDecorator(s,null,e.range(t,e.pos))}else this.error(1003,e.range());return null}parseVariable(e,t,n,s,a=!1){let l=new Array;do{let u=this.parseVariableDeclaration(e,t,n,a);if(!u)return null;u.overriddenModuleName=this.currentModuleName,l.push(u)}while(e.skip(72));let o=h.createVariableStatement(n,l,e.range(s,e.pos));return!e.skip(71)&&!a&&this.checkASI(e),o}parseVariableDeclaration(e,t,n,s=!1){if(!e.skipIdentifier())return this.error(1003,e.range()),null;let a=h.createIdentifierExpression(e.readIdentifier(),e.range());Xp(a.text)&&this.error(1003,a.range);let l=t;e.skip(96)&&(l|=16384);let o=null;e.skip(101)&&(o=this.parseType(e,!0));let u=null;if(e.skip(102)){if(l&32768&&this.error(1039,e.range()),u=this.parseExpression(e,2),!u)return null;if(u.kind==32){let f=this.unplacedLazyExpressions;f?.delete(u)}l&16384&&this.error(1263,u.range)}else s||(l&8?l&32768||this.error(1155,a.range):o||this.error(1110,e.range(e.pos)));let c=ue.join(a.range,e.range());return(l&16384)!=0&&(l&32768)!=0&&this.error(1255,c),h.createVariableDeclaration(a,n,l,o,u,c)}parseEnum(e,t,n,s){if(e.next()!=116)return this.error(1003,e.range()),null;let a=h.createIdentifierExpression(e.readIdentifier(),e.range()),l=null;if(e.skip(101)&&(l=this.parseType(e,!1),!l))return null;if(e.next()!=63)return this.error(1005,e.range(),"{"),null;let o=new Array;for(;!e.skip(64);){let c=this.parseEnumValue(e,0);if(!c)return null;if(o.push(c),!e.skip(72)){if(e.skip(64))break;return this.error(1005,e.range(),"}"),null}}let u=h.createEnumDeclaration(a,n,t,o,l,e.range(s,e.pos));return u.overriddenModuleName=this.currentModuleName,e.skip(71),u}parseEnumValue(e,t){if(!e.skipIdentifier())return this.error(1003,e.range()),null;let n=h.createIdentifierExpression(e.readIdentifier(),e.range()),s=null;return e.skip(102)&&(s=this.parseExpression(e,2),!s)?null:h.createEnumValueDeclaration(n,t,s,ue.join(n.range,e.range()))}parseReturn(e){let t=e.tokenPos,n=null,s=e.peek();if(s!=71&&s!=64&&!e.peekOnNewLine()&&!(n=this.parseExpression(e)))return null;let a=h.createReturnStatement(n,e.range(t,e.pos));return e.skip(71)||this.checkASI(e),a}parseTypeParameters(e){let t=new Array,n=!1,s=e.tokenPos;for(;!e.skip(74);){let a=this.parseTypeParameter(e);if(!a)return null;if(a.defaultType?n=!0:n&&(this.error(2706,a.range),a.defaultType=null),t.push(a),!e.skip(72)){if(e.skip(74))break;return this.error(1005,e.range(),">"),null}}return t.length||this.error(1098,e.range(s,e.pos)),t}parseTypeParameter(e){if(e.next()==116){let t=h.createIdentifierExpression(e.readIdentifier(),e.range()),n=null;if(e.skip(19)){let a=this.parseType(e);if(!a)return null;if(a.kind!=1)return this.error(1003,a.range),null;n=a}let s=null;if(e.skip(102)){let a=this.parseType(e);if(!a)return null;if(a.kind!=1)return this.error(1003,a.range),null;s=a}return h.createTypeParameter(t,n,s,ue.join(t.range,e.range()))}else this.error(1003,e.range());return null}parseParameters(e,t=!1){let n=new Array,s=null,a=!1,l=!1,o=null;if(this.parseParametersThis=null,e.skip(52)){if(e.skip(101)){if(o=this.parseType(e),!o)return null;o.kind==1?this.parseParametersThis=o:this.error(1003,o.range)}else return this.error(1005,e.range(),":"),null;if(!e.skip(72))return e.skip(66)?n:(this.error(1005,e.range(),")"),null)}for(;!e.skip(66);){let u=this.parseParameter(e,t);if(!u)return null;switch(s&&!l&&(this.error(1014,s.name.range),l=!0),u.parameterKind){default:{a&&this.error(1016,u.name.range);break}case 1:{a=!0;break}case 2:{s=u;break}}if(n.push(u),!e.skip(72)){if(e.skip(66))break;return this.error(1005,e.range(),")"),null}}return n}parseParameter(e,t=!1){let n=!1,s=!1,a=null,l=0;if(t&&(e.skip(44)?(a=e.range(),l|=256):e.skip(43)?(a=e.range(),l|=1024):e.skip(42)&&(a=e.range(),l|=512),e.peek()==45)){let o=e.mark();e.next(),e.peek()!=101?(e.discard(o),a||(a=e.range()),l|=64):e.reset(o)}if(e.skip(70)&&(l?this.error(1317,e.range()):a=e.range(),n=!0),e.skipIdentifier()){n||(a=e.range());let o=h.createIdentifierExpression(e.readIdentifier(),e.range()),u=null;if((s=e.skip(100))&&n&&this.error(1047,o.range),e.skip(101)){if(u=this.parseType(e),!u)return null}else u=h.createOmittedType(e.range(e.pos));let c=null;if(e.skip(102)&&(n&&this.error(1048,o.range),s?this.error(1015,o.range):s=!0,c=this.parseExpression(e,2),!c))return null;let f=h.createParameter(n?2:s?1:0,o,u,c,ue.join(assert(a),e.range()));return f.flags|=l,f}else this.error(1003,e.range());return null}parseFunction(e,t,n,s,a=!1){if(!e.skipIdentifier())return this.error(1003,e.range(e.pos)),null;let l=h.createIdentifierExpression(e.readIdentifier(),e.range()),o=-1,u=null;if(e.skip(73)){if(o=e.tokenPos,u=this.parseTypeParameters(e),!u)return null;t|=65536}if(!e.skip(65))return this.error(1005,e.range(e.pos),"("),null;o<0&&(o=e.tokenPos);let c=this.parseParameters(e);if(!c)return null;let f=this.parseParametersThis,_=(t&4096)!=0;_&&(c.length!=1&&this.error(1049,l.range),c.length>0&&c[0].initializer&&this.error(1052,l.range)),t&2048&&c.length&&this.error(1054,l.range);let d=null;if(e.skip(101)&&(d=this.parseType(e,!0,_),!d))return null;d||(d=h.createOmittedType(e.range(e.pos)),_||this.error(1110,d.range));let g=h.createFunctionType(c,d,f,!1,e.range(o,e.pos)),y=null;if(e.skip(63)){t&32768&&this.error(1183,e.range());let A=this.inAsyncContext;if(this.inAsyncContext=a,y=this.parseBlockStatement(e,!1),this.inAsyncContext=A,!y)return null}else t&32768||this.error(2391,e.range(e.pos));let E=h.createFunctionDeclaration(l,n,t,u,g,y,0,e.range(s,e.pos),a);return E.overriddenModuleName=this.currentModuleName,e.skip(71),E}parseFunctionExpression(e,t=!1){let n=e.tokenPos,s,a=0;if(e.token==24){if(e.skipIdentifier()?s=h.createIdentifierExpression(e.readIdentifier(),e.range()):s=h.createEmptyIdentifierExpression(e.range(e.pos)),!e.skip(65))return this.error(1005,e.range(e.pos),"("),null}else a=1,assert(e.token==65),s=h.createEmptyIdentifierExpression(e.range(e.tokenPos));let l=e.pos,o=this.parseParameters(e);return o?this.parseFunctionExpressionCommon(e,s,o,this.parseParametersThis,a,n,l,t):null}parseFunctionExpressionCommon(e,t,n,s,a,l=-1,o=-1,u=!1){l<0&&(l=t.range.start),o<0&&(o=l);let c=null;if(a!=2&&e.skip(101)){if(c=this.parseType(e),!c)return null}else c=h.createOmittedType(e.range(e.pos));if(a&&!e.skip(81))return this.error(1005,e.range(e.pos),"=>"),null;let f=h.createFunctionType(n,c,s,!1,e.range(o,e.pos)),_=null,d=this.inAsyncContext;if(this.inAsyncContext=u,a)if(e.skip(63))_=this.parseBlockStatement(e,!1);else{let y=this.parseExpression(e,2);y&&(_=h.createExpressionStatement(y))}else{if(!e.skip(63))return this.inAsyncContext=d,this.error(1005,e.range(e.pos),"{"),null;_=this.parseBlockStatement(e,!1)}if(this.inAsyncContext=d,!_)return null;let g=h.createFunctionDeclaration(t,null,0,null,f,_,a,e.range(l,e.pos),u);return h.createFunctionExpression(g)}withValueDefault(e,t,n){let s=this.withUnmanaged(e,t);if(n)return s;let a=h.createDecorator(h.createIdentifierExpression("inline",t),null,t),l=new Array(s.length+1);l[0]=a;for(let o=0,u=s.length;o<u;++o)l[o+1]=s[o];return l}withUnmanaged(e,t){if(Zb(e))return e;let n=h.createDecorator(h.createIdentifierExpression("unmanaged",t),null,t);if(!e)return[n];let s=new Array(e.length+1);s[0]=n;for(let a=0,l=e.length;a<l;++a)s[a+1]=e[a];return s}parseClassOrInterface(e,t,n,s){let a=e.token==31;if(!e.skipIdentifier())return this.error(1003,e.range()),null;let l=h.createIdentifierExpression(e.readIdentifier(),e.range()),o=null;if(e.skip(73)){if(o=this.parseTypeParameters(e),!o)return null;t|=65536}let u=null;if(e.skip(19)){let d=this.parseType(e);if(!d)return null;if(d.kind!=1)return this.error(1003,d.range),null;u=d}let c=null;if(e.skip(27)){a&&this.error(1176,e.range());do{let d=this.parseType(e);if(!d)return null;if(d.kind!=1)return this.error(1003,d.range),null;a||(c||(c=[]),c.push(d))}while(e.skip(72))}if(!e.skip(63))return this.error(1005,e.range(),"{"),null;let f=new Array,_;if(a?(assert(!c),_=h.createInterfaceDeclaration(l,n,t,o,u,null,f,e.range(s,e.pos))):_=h.createClassDeclaration(l,n,t,o,u,c,f,e.range(s,e.pos)),!e.skip(64))do{let d=this.parseClassMember(e,_);if(d)d.kind==69?_.indexSignature=d:(assert(d instanceof it),f.push(d));else if(this.skipStatement(e),e.skip(122))return this.error(1005,e.range(),"}"),null}while(!e.skip(64));return _.range.end=e.pos,_.overriddenModuleName=this.currentModuleName,_}parseClassExpression(e){let t=e.tokenPos,n;if(e.skipIdentifier()?n=h.createIdentifierExpression(e.readIdentifier(),e.range()):n=h.createEmptyIdentifierExpression(e.range(e.pos)),!e.skip(63))return this.error(1005,e.range(e.pos),"{"),null;let s=new Array,a=h.createClassDeclaration(n,null,0,null,null,null,s,e.range(t,e.pos));if(!e.skip(64))do{let l=this.parseClassMember(e,a);if(l)l.kind==69?a.indexSignature=l:(assert(a instanceof it),s.push(l));else if(this.skipStatement(e),e.skip(122))return this.error(1005,e.range(),"}"),null}while(!e.skip(64));return a.range.end=e.pos,h.createClassExpression(a)}parseClassMember(e,t){let n=t.kind==61,s=0,a=null;if(e.skip(115)){s=e.tokenPos;do{let oe=this.parseDecorator(e);if(!oe)break;a||(a=new Array),a.push(oe)}while(e.skip(115));n&&a&&this.error(1206,ue.join(a[0].range,a[a.length-1].range))}let l=t.flags&32768;n&&(l|=268435456);let o=0,u=0,c=t.is(32768);e.skip(12)?(n?this.error(1042,e.range(),"declare"):c?this.error(1038,e.range()):(l|=32772,o=e.tokenPos,u=e.pos),s||(s=e.tokenPos)):c&&(l|=32768);let f=0,_=0;e.skip(44)?(n?this.error(1042,e.range(),"public"):(l|=256,f=e.tokenPos,_=e.pos),s||(s=e.tokenPos)):e.skip(42)?(n?this.error(1042,e.range(),"private"):(l|=512,f=e.tokenPos,_=e.pos),s||(s=e.tokenPos)):e.skip(43)&&(n?this.error(1042,e.range(),"protected"):(l|=1024,f=e.tokenPos,_=e.pos),s||(s=e.tokenPos));let d=0,g=0,y=0,E=0;e.skip(48)?(n?this.error(1042,e.range(),"static"):(l|=32,d=e.tokenPos,g=e.pos),s||(s=e.tokenPos)):(l|=262144,e.skip(0)&&(n||!t.is(128)?this.error(1042,e.range(),"abstract"):(l|=128,y=e.tokenPos,E=e.pos),s||(s=e.tokenPos)),t.flags&65536&&(l|=131072));let A=0,k=0;e.skip(40)&&(n||t.extendsType==null?this.error(1042,e.range(),"override"):(l|=8192,A=e.tokenPos,k=e.pos),s||(s=e.tokenPos));let F=0,w=0;if(e.peek()==45){let oe=e.mark();e.next(),e.peek()!=101?(e.discard(oe),l|=64,F=e.tokenPos,w=e.pos,s||(s=F)):e.reset(oe)}let R=0,P=0,M=!1;if(e.skip(2))switch(M=!0,R=e.tokenPos,P=e.pos,s||(s=R),n&&this.error(1031,e.range(R,P),"async"),e.peek()){case 44:case 42:case 43:case 48:case 0:case 45:case 40:case 12:{this.error(1042,e.range(R,P),"async"),e.next(),M=!1;break}}let O=e.mark(),z=!1,j=!1,U=0,D=0,Q=!1,Y=0,q=0;n||(e.skip(25)?e.peek(1)==116&&!e.peekOnNewLine()?(l|=2048,j=!0,U=e.tokenPos,D=e.pos,s||(s=U),l&64&&this.error(1042,e.range(F,w),"readonly")):e.reset(O):e.skip(47)?e.peek(1)==116&&!e.peekOnNewLine()?(l|=4096,Q=!0,Y=e.tokenPos,q=e.pos,s||(s=Y),l&64&&this.error(1042,e.range(F,w),"readonly")):e.reset(O):e.skip(10)&&(l|=524288,z=!0,s||(s=e.tokenPos),l&32&&this.error(1042,e.range(d,g),"static"),l&128&&this.error(1042,e.range(y,E),"abstract"),l&64&&this.error(1042,e.range(F,w),"readonly")));let le=j||Q,H;if(z)H=h.createConstructorExpression(e.range());else{if(!le&&e.skip(67)){s||(s=e.tokenPos),l&256?this.error(1042,e.range(f,_),"public"):l&1024?this.error(1042,e.range(f,_),"protected"):l&512&&this.error(1042,e.range(f,_),"private"),l&32&&this.error(1042,e.range(d,g),"static"),l&8192&&this.error(1042,e.range(A,k),"override"),l&128&&this.error(1042,e.range(y,E),"abstract");let oe=this.parseIndexSignature(e,l,a);return oe?(e.skip(71),oe):(l&64&&this.error(1042,e.range(F,w),"readonly"),null)}if(!e.skipIdentifier(2))return this.error(1003,e.range()),null;s||(s=e.tokenPos),H=h.createIdentifierExpression(e.readIdentifier(),e.range())}let me=null;if(e.skip(73)){let oe=e.tokenPos;if(me=this.parseTypeParameters(e),!me)return null;z?this.error(1092,e.range(oe,e.pos)):le?this.error(1094,e.range(oe,e.pos)):l|=65536}if(e.skip(65)){l&4&&this.error(1031,e.range(o,u),"declare");let oe=e.tokenPos,pe=this.parseParameters(e,z);if(!pe)return null;let It=this.parseParametersThis;if(z)for(let je=0,ki=pe.length;je<ki;++je){let dt=pe[je];if(dt.isAny(1856)){let pr=h.createFieldDeclaration(dt.name,null,dt.flags|262144,dt.type,null,dt.range);pr.parameterIndex=je,dt.implicitFieldDeclaration=pr,t.members.push(pr)}}else j?pe.length&&this.error(1054,H.range):Q?(pe.length!=1&&this.error(1049,H.range),pe.length>0&&pe[0].initializer&&this.error(1052,H.range)):H.text=="constructor"&&this.error(230,H.range,"constructor");let Fe=null;if(e.skip(101)){if(H.kind==28?this.error(1093,e.range()):Q&&this.error(1095,e.range()),Fe=this.parseType(e,Q||H.kind==28),!Fe)return null}else Fe=h.createOmittedType(e.range(e.pos)),!Q&&H.kind!=28&&this.error(1110,Fe.range);let vn=h.createFunctionType(pe,Fe,It,!1,e.range(oe,e.pos)),Ot=null;if(e.skip(63)){l&32768?this.error(1183,e.range()):l&128?this.error(1245,e.range(),H.text):n&&this.error(1005,e.range(),";");let je=this.inAsyncContext;if(this.inAsyncContext=M,Ot=this.parseBlockStatement(e,!1),this.inAsyncContext=je,!Ot)return null}else!n&&!(l&32896)&&this.error(2391,e.range());let zr=M;M&&(H.kind==28||le)&&(zr=!1,this.error(1042,e.range(R,P),"async"));let Ii=h.createMethodDeclaration(H,a,l,me,vn,Ot,e.range(s,e.pos),zr);return n&&e.skip(72)||e.skip(71),Ii}else if(z)this.error(2390,H.range);else if(le)this.error(2391,H.range);else{M&&this.error(1042,e.range(R,P),"async"),l&4&&this.error(100,e.range(o,u),"Ambient fields"),l&128&&this.error(1042,e.range(y,E),"abstract"),l&2048&&this.error(1042,e.range(U,D),"get"),l&4096&&this.error(1042,e.range(Y,q),"set");let oe=null;if(e.skip(100)&&this.error(219,e.range(s,e.pos)),e.skip(96)&&(l|=16384),e.skip(101)){if(oe=this.parseType(e),!oe)return null}else this.error(1110,e.range());let pe=null;if(e.skip(102)){if(l&32768&&this.error(1039,e.range()),pe=this.parseExpression(e),!pe)return null;l&16384&&this.error(1263,H.range)}let It=e.range(s,e.pos);(l&16384)!=0&&(n||(l&32768)!=0)&&this.error(1255,It);let Fe=h.createFieldDeclaration(H,a,l,oe,pe,It);return n&&e.skip(72)||e.skip(71),Fe}return null}parseIndexSignature(e,t,n){n&&n.length>0&&this.error(1206,ue.join(n[0].range,n[n.length-1].range));let s=e.tokenPos;if(e.skipIdentifier())if(e.readIdentifier()=="key")if(e.skip(101)){let l=this.parseType(e);if(!l)return null;if(l.kind!=1)return this.error(1110,e.range()),null;if(e.skip(68))if(e.skip(101)){let o=this.parseType(e);return o?o.kind!=1?(this.error(1003,o.range),null):h.createIndexSignature(l,o,t,e.range(s,e.pos)):null}else this.error(1005,e.range(),":");else this.error(1005,e.range(),"]")}else this.error(1005,e.range(),":");else this.error(1005,e.range(),"key");else this.error(1003,e.range());return null}parseNamespace(e,t,n,s){if(e.skipIdentifier()){let a=h.createIdentifierExpression(e.readIdentifier(),e.range());if(e.skip(63)){let l=new Array,o=h.createNamespaceDeclaration(a,n,t,l,e.range(s,e.pos));for(;!e.skip(64);){let u=this.parseTopLevelStatement(e,o);if(u){if(u.kind==39)return this.error(1319,u.range),null;l.push(u)}else if(this.skipStatement(e),e.skip(122))return this.error(1005,e.range(),"}"),null}return o.range.end=e.pos,o.overriddenModuleName=this.currentModuleName,e.skip(71),o}else this.error(1005,e.range(),"{")}else this.error(1003,e.range());return null}parseExport(e,t,n){let s=null,a=assert(this.currentSource);if(e.skip(63)){let l=new Array;for(;!e.skip(64);){let u=this.parseExportMember(e);if(!u)return null;if(l.push(u),!e.skip(72)){if(e.skip(64))break;return this.error(1005,e.range(),"}"),null}}if(e.skip(23))if(e.skip(117))s=h.createStringLiteralExpression(e.readString(),e.range());else return this.error(1141,e.range()),null;let o=h.createExportStatement(l,s,n,e.range(t,e.pos));if(s){let u=assert(o.internalPath);this.seenlog.has(u)||(this.dependees.set(u,new Bs(a,s)),this.backlog.push(u),this.seenlog.add(u))}return e.skip(71),o}else if(e.skip(85))if(e.skip(23))if(e.skip(117)){s=h.createStringLiteralExpression(e.readString(),e.range());let l=h.createExportStatement(null,s,n,e.range(t,e.pos)),o=assert(l.internalPath),u=e.source,c=u.exportPaths;return c?c.includes(o)||c.push(o):u.exportPaths=[o],this.seenlog.has(o)||(this.dependees.set(o,new Bs(a,s)),this.backlog.push(o)),e.skip(71),l}else this.error(1141,e.range());else this.error(1005,e.range(),"from");else this.error(1005,e.range(),"{");return null}parseExportMember(e){if(e.skipIdentifier(2)){let t=h.createIdentifierExpression(e.readIdentifier(),e.range()),n=null;if(e.skip(1))if(e.skipIdentifier(2))n=h.createIdentifierExpression(e.readIdentifier(),e.range());else return this.error(1003,e.range()),null;return n?h.createExportMember(t,n,ue.join(t.range,n.range)):h.createExportMember(t,null,t.range)}else this.error(1003,e.range());return null}parseExportDefaultAlias(e,t,n,s){let a=e.readIdentifier(),l=e.range(),o=h.createExportStatement([h.createExportMember(h.createIdentifierExpression(a,l),h.createIdentifierExpression("default",e.range(n,s)),l)],null,!1,e.range(t,e.pos));return e.skip(71),o}parseImport(e){let t=e.tokenPos,n=null,s=null,a=!1;if(e.skip(63))for(n=new Array;!e.skip(64);){let l=this.parseImportDeclaration(e);if(!l)return null;if(n.push(l),!e.skip(72)){if(e.skip(64))break;return this.error(1005,e.range(),"}"),null}}else if(e.skip(85))if(e.skip(1))if(e.skipIdentifier())s=h.createIdentifierExpression(e.readIdentifier(),e.range());else return this.error(1003,e.range()),null;else return this.error(1005,e.range(),"as"),null;else if(e.skip(116,1)){let l=e.readIdentifier(),o=e.range();if(n=[h.createImportDeclaration(h.createIdentifierExpression("default",o),h.createIdentifierExpression(l,o),o)],e.skip(72))return this.error(100,e.range(),"Mixed default and named imports"),null}else a=!0;if(a||e.skip(23))if(e.skip(117)){let l=h.createStringLiteralExpression(e.readString(),e.range()),o;s?(assert(!n),o=h.createWildcardImportStatement(s,l,e.range(t,e.pos))):o=h.createImportStatement(n,l,e.range(t,e.pos));let u=o.internalPath;return this.seenlog.has(u)||(this.dependees.set(u,new Bs(assert(this.currentSource),l)),this.backlog.push(u)),e.skip(71),o}else this.error(1141,e.range());else this.error(1005,e.range(),"from");return null}parseImportDeclaration(e){if(e.skipIdentifier(2)){let t=h.createIdentifierExpression(e.readIdentifier(),e.range()),n=null;if(e.skip(1))if(e.skipIdentifier())n=h.createIdentifierExpression(e.readIdentifier(),e.range());else return this.error(1003,e.range()),null;return n?h.createImportDeclaration(t,n,ue.join(t.range,n.range)):h.createImportDeclaration(t,null,t.range)}else this.error(1003,e.range());return null}parseExportImport(e,t){if(e.skipIdentifier()){let n=h.createIdentifierExpression(e.readIdentifier(),e.range());if(e.skip(102))if(e.skipIdentifier()){let s=h.createIdentifierExpression(e.readIdentifier(),e.range()),a=h.createExportImportStatement(s,n,e.range(t,e.pos));return e.skip(71),a}else this.error(1003,e.range());else this.error(1005,e.range(),"=")}else this.error(1003,e.range());return null}parseStatement(e,t=!1){let n=e.mark(),s=e.next(),a=null;switch(s){case 4:{a=this.parseBreak(e);break}case 8:{a=this.parseVariable(e,8,null,e.tokenPos);break}case 9:{a=this.parseContinue(e);break}case 15:{a=this.parseDoStatement(e);break}case 22:{a=this.parseForStatement(e);break}case 26:{a=this.parseIfStatement(e);break}case 34:{a=this.parseVariable(e,16,null,e.tokenPos);break}case 58:{a=this.parseVariable(e,0,null,e.tokenPos);break}case 63:{a=this.parseBlockStatement(e,t);break}case 46:{t&&this.error(1108,e.range()),a=this.parseReturn(e);break}case 71:return h.createEmptyStatement(e.range(e.tokenPos));case 51:{a=this.parseSwitchStatement(e);break}case 53:{a=this.parseThrowStatement(e);break}case 55:{a=this.parseTryStatement(e);break}case 59:{a=this.parseVoidStatement(e);break}case 60:{a=this.parseWhileStatement(e);break}case 56:if(e.peek(1)==116){a=this.parseTypeDeclaration(e,0,null,e.tokenPos);break}default:{e.reset(n),a=this.parseExpressionStatement(e);break}}return a?e.discard(n):(e.reset(n),this.skipStatement(e)),a}parseBlockStatement(e,t){let n=e.tokenPos,s=new Array;for(;!e.skip(64);){let l=e.mark(),o=this.parseStatement(e,t);if(o)e.discard(l),s.push(o);else{if(e.token==122)return null;e.reset(l),this.skipStatement(e)}}let a=h.createBlockStatement(s,e.range(n,e.pos));return t&&e.skip(71),a}parseBreak(e){let t=null;e.peek()==116&&!e.peekOnNewLine()&&(e.next(1),t=h.createIdentifierExpression(e.readIdentifier(),e.range()));let n=h.createBreakStatement(t,e.range());return e.skip(71),n}parseContinue(e){let t=null;e.peek()==116&&!e.peekOnNewLine()&&(e.next(1),t=h.createIdentifierExpression(e.readIdentifier(),e.range()));let n=h.createContinueStatement(t,e.range());return e.skip(71),n}parseDoStatement(e){let t=e.tokenPos,n=this.parseStatement(e);if(!n)return null;if(e.skip(60))if(e.skip(65)){let s=this.parseExpression(e);if(!s)return null;if(e.skip(66)){let a=h.createDoStatement(n,s,e.range(t,e.pos));return e.skip(71),a}else this.error(1005,e.range(),")")}else this.error(1005,e.range(),"(");else this.error(1005,e.range(),"while");return null}parseExpressionStatement(e){let t=this.parseExpression(e);if(!t)return null;let n=h.createExpressionStatement(t);return e.skip(71),n}parseForStatement(e){let t=e.tokenPos;if(e.skip(65)){let n=null;if(e.skip(8))n=this.parseVariable(e,8,null,e.tokenPos,!0);else if(e.skip(34))n=this.parseVariable(e,16,null,e.tokenPos,!0);else if(e.skip(58))n=this.parseVariable(e,0,null,e.tokenPos,!0);else if(!e.skip(71)&&(n=this.parseExpressionStatement(e),!n))return null;if(n){if(e.skip(39)){if(n.kind==42)return n.expression.kind!=8?(this.error(1003,n.range),null):this.parseForOfStatement(e,t,n);if(n.kind==51){let s=n.declarations;for(let a=0,l=s.length;a<l;++a){let u=s[a].initializer;u&&this.error(1190,u.range)}return this.parseForOfStatement(e,t,n)}return this.error(1003,n.range),null}if(n.kind==51){let s=n.declarations;for(let a=0,l=s.length;a<l;++a){let o=s[a];o.initializer||(o.flags&8?this.error(1155,o.name.range):o.type||this.error(1110,o.name.range.atEnd))}}}if(e.token==71){let s=null;if(!e.skip(71)&&(s=this.parseExpressionStatement(e),!s))return null;if(e.token==71){let a=null;if(!e.skip(66)){if(a=this.parseExpression(e),!a)return null;if(!e.skip(66))return this.error(1005,e.range(),")"),null}let l=this.parseStatement(e);return l?h.createForStatement(n,s?s.expression:null,a,l,e.range(t,e.pos)):null}else this.error(1005,e.range(),";")}else this.error(1005,e.range(),";")}else this.error(1005,e.range(),"(");return null}parseForOfStatement(e,t,n){let s=this.parseExpression(e);if(!s)return null;if(!e.skip(66))return this.error(1005,e.range(),")"),null;let a=this.parseStatement(e);return a?h.createForOfStatement(n,s,a,e.range(t,e.pos)):null}parseIfStatement(e){let t=e.tokenPos;if(e.skip(65)){let n=this.parseExpression(e);if(!n)return null;if(e.skip(66)){let s=this.parseStatement(e);if(!s)return null;let a=null;return e.skip(16)&&(a=this.parseStatement(e),!a)?null:h.createIfStatement(n,s,a,e.range(t,e.pos))}else this.error(1005,e.range(),")")}else this.error(1005,e.range(),"(");return null}parseSwitchStatement(e){let t=e.tokenPos;if(e.skip(65)){let n=this.parseExpression(e);if(!n)return null;if(e.skip(66))if(e.skip(63)){let s=new Array;for(;!e.skip(64);){let l=this.parseSwitchCase(e);if(!l)return null;s.push(l)}let a=h.createSwitchStatement(n,s,e.range(t,e.pos));return e.skip(71),a}else this.error(1005,e.range(),"{");else this.error(1005,e.range(),")")}else this.error(1005,e.range(),"(");return null}parseSwitchCase(e){let t=e.tokenPos,n,s;if(e.skip(5)){let a=this.parseExpression(e);if(!a)return null;if(e.skip(101)){for(n=new Array;e.peek()!=5&&e.nextToken!=13&&e.nextToken!=64;){if(s=this.parseStatement(e),!s)return null;n.push(s)}return h.createSwitchCase(a,n,e.range(t,e.pos))}else this.error(1005,e.range(),":")}else if(e.skip(13))if(e.skip(101)){for(n=new Array;e.peek()!=5&&e.nextToken!=13&&e.nextToken!=64;){if(s=this.parseStatement(e),!s)return null;n.push(s)}return h.createSwitchCase(null,n,e.range(t,e.pos))}else this.error(1005,e.range(),":");else this.error(1130,e.range());return null}parseThrowStatement(e){let t=e.tokenPos,n=this.parseExpression(e);if(!n)return null;let s=h.createThrowStatement(n,e.range(t,e.pos));return e.skip(71)||this.checkASI(e),s}parseTryStatement(e){let t=e.tokenPos,n;if(e.skip(63)){let s=new Array;for(;!e.skip(64);){if(n=this.parseStatement(e),!n)return null;s.push(n)}let a=null,l=null,o=null;if(e.skip(6)){if(!e.skip(65))return this.error(1005,e.range(),"("),null;if(!e.skipIdentifier())return this.error(1003,e.range()),null;if(a=h.createIdentifierExpression(e.readIdentifier(),e.range()),!e.skip(66))return this.error(1005,e.range(),")"),null;if(!e.skip(63))return this.error(1005,e.range(),"{"),null;for(l=[];!e.skip(64);){if(n=this.parseStatement(e),!n)return null;l.push(n)}}if(e.skip(21)){if(!e.skip(63))return this.error(1005,e.range(),"{"),null;for(o=[];!e.skip(64);){if(n=this.parseStatement(e),!n)return null;o.push(n)}}if(!(l||o))return this.error(1005,e.range(),"catch"),null;let u=h.createTryStatement(s,a,l,o,e.range(t,e.pos));return e.skip(71),u}else this.error(1005,e.range(),"{");return null}parseTypeDeclaration(e,t,n,s){if(e.skipIdentifier()){let a=h.createIdentifierExpression(e.readIdentifier(),e.range()),l=null;if(e.skip(73)){if(l=this.parseTypeParameters(e),!l)return null;t|=65536}if(e.skip(102)){e.skip(94);let o=this.parseType(e);if(!o)return null;if(Ps(a.text,o))return this.error(2456,a.range,a.text),null;let u=h.createTypeDeclaration(a,n,t,l,o,e.range(s,e.pos));return e.skip(71),u.overriddenModuleName=this.currentModuleName,u}else this.error(1005,e.range(),"=")}else this.error(1003,e.range());return null}parseModuleDeclaration(e,t){let n=e.tokenPos;assert(e.next()==117);let s=e.readString(),a=h.createModuleDeclaration(s,t,e.range(n,e.pos));return this.currentModuleName=s,e.skip(71),a}parseVoidStatement(e){let t=e.tokenPos,n=this.parseExpression(e,21);if(!n)return null;let s=h.createVoidStatement(n,e.range(t,e.pos));return e.skip(71),s}parseWhileStatement(e){let t=e.tokenPos;if(e.skip(65)){let n=this.parseExpression(e);if(!n)return null;if(e.skip(66)){let s=this.parseStatement(e);if(!s)return null;let a=h.createWhileStatement(n,s,e.range(t,e.pos));return e.skip(71),a}else this.error(1005,e.range(),")")}else this.error(1005,e.range(),"(");return null}parseExpressionStart(e){let t=e.next(1),n=e.tokenPos;switch(t){case 70:case 62:case 96:case 97:case 82:case 83:case 57:case 59:case 14:{let s=this.parseExpression(e,17);return s?h.createUnaryPrefixExpression(t,s,e.range(n,e.pos)):null}case 115:{let s=this.parseLazyExpression(e,n);return s||null}case 3:{let s=e.pos,a=this.parseExpression(e,17);if(!a)return null;if(this.inAsyncContext||this.error(1308,e.range(n,s)),a.kind==32){let l=this.awaitNullifiedLazyExpressions;l==null&&(l=new Set,this.awaitNullifiedLazyExpressions=l),l.add(a)}return h.createAwaitExpression(a,e.range(n,e.pos))}case 2:{let s=e.pos;if(e.peekOnNewLine())return this.error(1042,e.range(n,s),"async"),null;switch(e.peek()){case 24:{e.next();let a=this.parseFunctionExpression(e,!0);return a?(a.range.start=n,a):null}case 65:{e.next();let a=this.parseFunctionExpression(e,!0);return a?(a.range.start=n,a):null}case 116:{if(!e.peekOnNewLine()){e.next();let a=h.createIdentifierExpression(e.readIdentifier(),e.range(n,e.pos));if(e.peek()==81&&!e.peekOnNewLine()){let l=this.parseFunctionExpressionCommon(e,h.createEmptyIdentifierExpression(e.range(n)),[h.createParameter(0,a,h.createOmittedType(a.range.atEnd),null,a.range)],null,2,n,-1,!0);return l||null}}break}}return this.error(1042,e.range(n,s),"async"),null}case 88:case 89:{let s=this.parseExpression(e,17);if(!s)return null;switch(s.kind){case 8:case 14:case 23:break;default:this.error(2357,s.range)}return h.createUnaryPrefixExpression(t,s,e.range(n,e.pos))}case 37:{if(!e.skipIdentifier())return this.error(1003,e.range()),null;let s=this.parseTypeName(e);if(!s)return null;let a=null,l=null;if(e.skip(65)||(a=this.tryParseTypeArgumentsBeforeArguments(e))){if(l=this.parseArguments(e),!l)return null}else l=[];return h.createNewExpression(s,a,l,e.range(n,e.pos))}case 38:return h.createNullExpression(e.range());case 54:return h.createTrueExpression(e.range());case 20:return h.createFalseExpression(e.range());case 52:return h.createThisExpression(e.range());case 10:return h.createConstructorExpression(e.range());case 65:{if(e.skip(66))return this.parseFunctionExpressionCommon(e,h.createEmptyIdentifierExpression(e.range(n)),[],null,1);let s=e.mark(),a=!0;do switch(e.next(1)){case 70:return e.reset(s),this.parseFunctionExpression(e);case 116:{switch(e.readIdentifier(),e.next()){case 66:{if(e.skip(101)&&this.parseType(e,!0,!0)==null){a=!1;break}if(!e.skip(81)){a=!1;break}}case 101:return e.reset(s),this.parseFunctionExpression(e);case 100:{if(e.skip(101)||e.skip(72)||e.skip(66))return e.reset(s),this.parseFunctionExpression(e);a=!1;break}case 72:break;default:{a=!1;break}}break}default:{a=!1;break}}while(a);e.reset(s);let l=this.parseExpression(e);return l?e.skip(66)?(l=h.createParenthesizedExpression(l,e.range(n,e.pos)),this.maybeParseCallExpression(e,l)):(this.error(1005,e.range(),")"),null):null}case 67:{let s=new Array;for(;!e.skip(68);){let a;if(e.peek()==72)a=h.createOmittedExpression(e.range(e.pos));else if(a=this.parseExpression(e,2),!a)return null;if(s.push(a),!e.skip(72)){if(e.skip(68))break;return this.error(1005,e.range(),"]"),null}}return h.createArrayLiteralExpression(s,e.range(n,e.pos))}case 63:{let s=e.tokenPos,a=new Array,l=new Array,o;for(;!e.skip(64);){if(e.skipIdentifier())o=h.createIdentifierExpression(e.readIdentifier(),e.range());else{if(!e.skip(117))return this.error(1003,e.range()),null;o=h.createIdentifierExpression(e.readString(),e.range()),o.isQuoted=!0}if(a.push(o),e.skip(101)){let u=this.parseExpression(e,2);if(!u)return null;l.push(u)}else if(!o.isQuoted)l.push(o);else return this.error(1005,e.range(),":"),null;if(!e.skip(72)){if(e.skip(64))break;return this.error(1005,e.range(),"}"),null}}return h.createObjectLiteralExpression(a,l,e.range(s,e.pos))}case 73:{let s=this.parseType(e);if(!s)return null;if(!e.skip(74))return this.error(1005,e.range(),">"),null;let a=this.parseExpression(e,19);return a?h.createAssertionExpression(0,a,s,e.range(n,e.pos)):null}case 116:{let s=e.readIdentifier();if(s=="null")return h.createNullExpression(e.range());let a=h.createIdentifierExpression(s,e.range(n,e.pos));return e.skip(120)?this.parseTemplateLiteral(e,a):e.peek()==81&&!e.peekOnNewLine()?this.parseFunctionExpressionCommon(e,h.createEmptyIdentifierExpression(e.range(n)),[h.createParameter(0,a,h.createOmittedType(a.range.atEnd),null,a.range)],null,2,n):this.maybeParseCallExpression(e,a,!0)}case 50:{e.peek()!=69&&e.nextToken!=65&&this.error(1034,e.range());let s=h.createSuperExpression(e.range(n,e.pos));return this.maybeParseCallExpression(e,s)}case 117:return h.createStringLiteralExpression(e.readString(),e.range(n,e.pos));case 120:return this.parseTemplateLiteral(e);case 118:{let s=e.readInteger();return e.checkForIdentifierStartAfterNumericLiteral(),h.createIntegerLiteralExpression(s,e.range(n,e.pos))}case 119:{let s=e.readFloat();return e.checkForIdentifierStartAfterNumericLiteral(),h.createFloatLiteralExpression(s,e.range(n,e.pos))}case 86:{let s=e.readRegexpPattern();return e.skip(86)?h.createRegexpLiteralExpression(s,e.readRegexpFlags(),e.range(n,e.pos)):(this.error(1005,e.range(),"/"),null)}case 24:{let s=this.parseFunctionExpression(e);return s?this.maybeParseCallExpression(e,s):null}case 7:return this.parseClassExpression(e);default:return t==122?this.error(1126,e.range(n)):this.error(1109,e.range()),null}}tryParseTypeArgumentsBeforeArguments(e){let t=e.mark();if(!e.skip(73))return null;let n=e.tokenPos,s=null;do{if(e.peek()==74)break;let a=this.parseType(e,!0,!0);if(!a)return e.reset(t),null;s?s.push(a):s=[a]}while(e.skip(72));if(e.skip(74)){let a=e.pos;if(e.skip(65))return s||this.error(1099,e.range(n,a)),s}return e.reset(t),null}parseArguments(e){let t=new Array;for(;!e.skip(66);){let n=this.parseExpression(e,2);if(!n)return null;if(t.push(n),!e.skip(72)){if(e.skip(66))break;return this.error(1005,e.range(),")"),null}}return t}parseLazyExpression(e,t){if(!e.skipIdentifier())return this.error(1003,e.range()),null;let n=e.readIdentifier();if(n!="lazy")return this.error(212,e.range(t,e.pos),n),null;let s=this.parseExpression(e,17);if(!s)return null;let a=h.createLazyExpression(s,e.range(t,e.pos)),l=this.unplacedLazyExpressions;return l==null&&(l=new Set,this.unplacedLazyExpressions=l),l.add(a),a}parseExpression(e,t=1){assert(t!=0);let n=this.parseExpressionStart(e);if(!n)return null;let s=n.range.start,a;for(;(a=WE(e.peek()))>=t;){let l=e.next();switch(l){case 1:{if(e.skip(8))n=h.createAssertionExpression(3,n,null,e.range(s,e.pos));else{let o=this.parseType(e);if(!o)return null;n=h.createAssertionExpression(1,n,o,e.range(s,e.pos))}break}case 96:{n=h.createAssertionExpression(2,n,null,e.range(s,e.pos)),n=this.maybeParseCallExpression(e,n);break}case 30:{let o=this.parseType(e);if(!o)return null;n=h.createInstanceOfExpression(n,o,e.range(s,e.pos));break}case 67:{let o=this.parseExpression(e);if(!o)return null;if(!e.skip(68))return this.error(1005,e.range(),"]"),null;n=h.createElementAccessExpression(n,o,e.range(s,e.pos)),n=this.maybeParseCallExpression(e,n);break}case 88:case 89:{n.kind!=8&&n.kind!=14&&n.kind!=23&&this.error(2357,n.range),n=h.createUnaryPostfixExpression(l,n,e.range(s,e.pos));break}case 100:{let o=this.parseExpression(e);if(!o)return null;if(!e.skip(101))return this.error(1005,e.range(),":"),null;let u=this.parseExpression(e,t>1?2:1);if(!u)return null;n=h.createTernaryExpression(n,o,u,e.range(s,e.pos));break}case 72:{let o=[n];do{if(n=this.parseExpression(e,2),!n)return null;o.push(n)}while(e.skip(72));n=h.createCommaExpression(o,e.range(s,e.pos));break}case 69:{if(e.skipIdentifier(2)){let o=h.createIdentifierExpression(e.readIdentifier(),e.range());n=h.createPropertyAccessExpression(n,o,e.range(s,e.pos))}else{let o=this.parseExpression(e,a+1);if(!o)return null;if(o.kind==11){if(n=this.joinPropertyCall(e,s,n,o),!n)return null}else return this.error(1003,o.range),null}if(e.skip(120)){if(n=this.parseTemplateLiteral(e,n),!n)return null}else n=this.maybeParseCallExpression(e,n,!0);break}case 102:case 103:case 104:case 106:case 105:case 107:case 108:case 109:case 110:case 111:case 112:case 114:case 113:case 84:{let o=this.parseExpression(e,a);if(!o)return null;n=h.createBinaryExpression(l,n,o,e.range(s,e.pos));break}case 73:case 74:case 75:case 76:case 77:case 79:case 80:case 78:case 82:case 83:case 85:case 86:case 87:case 90:case 91:case 92:case 93:case 94:case 95:case 98:case 99:case 29:{let o=this.parseExpression(e,a+1);if(!o)return null;n=h.createBinaryExpression(l,n,o,e.range(s,e.pos));break}default:assert(!1)}}return n}parseTemplateLiteral(e,t=null){let n=t?t.range.start:e.tokenPos,s=new Array,a=new Array,l=new Array;for(s.push(e.readString(0,t!=null)),a.push(e.source.text.substring(e.readStringStart,e.readStringEnd));e.readingTemplateString;){let o=this.parseExpression(e);if(!o)return null;if(l.push(o),!e.skip(64))return this.error(1005,e.range(),"}"),null;s.push(e.readString(96,t!=null)),a.push(e.source.text.substring(e.readStringStart,e.readStringEnd))}return h.createTemplateLiteralExpression(t,s,a,l,e.range(n,e.pos))}joinPropertyCall(e,t,n,s){let a=s.expression;switch(a.kind){case 8:{s.expression=h.createPropertyAccessExpression(n,a,e.range(t,e.pos));break}case 11:{let l=this.joinPropertyCall(e,t,n,a);if(!l)return null;s.expression=l,s.range=e.range(t,e.pos);break}default:return this.error(1003,s.range),null}return s}maybeParseCallExpression(e,t,n=!1){let s=null;for(;e.skip(65)||n&&(s=this.tryParseTypeArgumentsBeforeArguments(e));){let a=this.parseArguments(e);if(!a)break;t=h.createCallExpression(t,s,a,e.range(t.range.start,e.pos)),n=!1}return t}checkASI(e){let t=e.peek();t==122||t==64||e.peekOnNewLine()||this.error(1012,e.range(e.nextTokenPos))}skipStatement(e){e.peekOnNewLine()&&e.next();do{let t=e.peek();if(t==122||t==71){e.next();break}if(e.peekOnNewLine())break;switch(e.next()){case 116:{e.readIdentifier();break}case 117:case 120:{e.readString();break}case 118:{e.readInteger(),e.checkForIdentifierStartAfterNumericLiteral();break}case 119:{e.readFloat(),e.checkForIdentifierStartAfterNumericLiteral();break}case 63:{this.skipBlock(e);break}}}while(!0);e.readingTemplateString=!1}skipBlock(e){let t=1,n=!0;do switch(e.next()){case 122:{this.error(1005,e.range(),"}"),n=!1;break}case 63:{++t;break}case 64:{--t,t||(n=!1);break}case 116:{e.readIdentifier();break}case 117:{e.readString();break}case 120:{for(e.readString();e.readingTemplateString;)this.skipBlock(e),e.readString(96);break}case 118:{e.readInteger(),e.checkForIdentifierStartAfterNumericLiteral();break}case 119:{e.readFloat(),e.checkForIdentifierStartAfterNumericLiteral();break}}while(n)}},ex=(P=>(P[P.None=0]="None",P[P.Comma=1]="Comma",P[P.Spread=2]="Spread",P[P.Yield=3]="Yield",P[P.Assignment=4]="Assignment",P[P.Conditional=5]="Conditional",P[P.LogicalOr=6]="LogicalOr",P[P.LogicalAnd=7]="LogicalAnd",P[P.BitwiseOr=8]="BitwiseOr",P[P.BitwiseXor=9]="BitwiseXor",P[P.BitwiseAnd=10]="BitwiseAnd",P[P.Equality=11]="Equality",P[P.Relational=12]="Relational",P[P.Shift=13]="Shift",P[P.Additive=14]="Additive",P[P.Multiplicative=15]="Multiplicative",P[P.Exponentiated=16]="Exponentiated",P[P.UnaryPrefix=17]="UnaryPrefix",P[P.UnaryPostfix=18]="UnaryPostfix",P[P.Call=19]="Call",P[P.MemberAccess=20]="MemberAccess",P[P.Grouping=21]="Grouping",P))(ex||{});function WE(i){switch(i){case 72:return 1;case 102:case 103:case 104:case 106:case 105:case 107:case 108:case 109:case 110:case 111:case 112:case 114:case 113:return 4;case 100:return 5;case 99:return 6;case 98:return 7;case 94:return 8;case 95:return 9;case 93:return 10;case 77:case 78:case 79:case 80:return 11;case 1:case 29:case 30:case 73:case 74:case 75:case 76:return 12;case 90:case 91:case 92:return 13;case 82:case 83:return 14;case 85:case 86:case 87:return 15;case 84:return 16;case 88:case 89:return 18;case 69:case 67:case 96:return 20}return 0}function Ps(i,r){switch(r.kind){case 1:{if(r.name.identifier.text==i)return!0;let e=r.typeArguments;if(e){for(let t=0,n=e.length;t<n;t++)if(Ps(i,e[t]))return!0}break}case 2:{let e=r;if(Ps(i,e.returnType))return!0;let t=e.parameters;for(let n=0,s=t.length;n<s;n++)if(Ps(i,t[n].type))return!0;break}case 3:{let e=r.elements;for(let t=0,n=e.length;t<n;t++)if(Ps(i,e[t]))return!0;break}default:assert(!1)}return!1}var tx=16,nn=tx-1,Xo=class{constructor(r,e,t,n,s){this.localFile=r;this.localIdentifier=e;this.foreignIdentifier=t;this.foreignPath=n;this.foreignPathAlt=s}},$o=class{constructor(r,e,t,n){this.localIdentifier=r;this.foreignIdentifier=e;this.foreignPath=t;this.foreignPathAlt=n}},Af=class{constructor(r,e,t){this.foreignPath=r;this.foreignPathAlt=e;this.pathLiteral=t}},Me=(q=>(q[q.Invalid=0]="Invalid",q[q.IndexedGet=1]="IndexedGet",q[q.IndexedSet=2]="IndexedSet",q[q.UncheckedIndexedGet=3]="UncheckedIndexedGet",q[q.UncheckedIndexedSet=4]="UncheckedIndexedSet",q[q.Add=5]="Add",q[q.Sub=6]="Sub",q[q.Mul=7]="Mul",q[q.Div=8]="Div",q[q.Rem=9]="Rem",q[q.Pow=10]="Pow",q[q.BitwiseAnd=11]="BitwiseAnd",q[q.BitwiseOr=12]="BitwiseOr",q[q.BitwiseXor=13]="BitwiseXor",q[q.BitwiseShl=14]="BitwiseShl",q[q.BitwiseShr=15]="BitwiseShr",q[q.BitwiseShrU=16]="BitwiseShrU",q[q.Eq=17]="Eq",q[q.Ne=18]="Ne",q[q.Gt=19]="Gt",q[q.Ge=20]="Ge",q[q.Lt=21]="Lt",q[q.Le=22]="Le",q[q.Plus=23]="Plus",q[q.Minus=24]="Minus",q[q.Not=25]="Not",q[q.BitwiseNot=26]="BitwiseNot",q[q.PrefixInc=27]="PrefixInc",q[q.PrefixDec=28]="PrefixDec",q[q.PostfixInc=29]="PostfixInc",q[q.PostfixDec=30]="PostfixDec",q))(Me||{});(n=>{function i(s,a){switch(assert(a.length),s){case 2:case 3:{switch(a.charCodeAt(0)){case 91:{if(a=="[]")return 1;if(a=="[]=")return 2;break}case 123:{if(a=="{}")return 3;if(a=="{}=")return 4;break}case 43:{if(a=="+")return 5;break}case 45:{if(a=="-")return 6;break}case 42:{if(a=="*")return 7;if(a=="**")return 10;break}case 47:{if(a=="/")return 8;break}case 37:{if(a=="%")return 9;break}case 38:{if(a=="&")return 11;break}case 124:{if(a=="|")return 12;break}case 94:{if(a=="^")return 13;break}case 61:{if(a=="==")return 17;break}case 33:{if(a=="!=")return 18;break}case 62:{if(a==">")return 19;if(a==">=")return 20;if(a==">>")return 15;if(a==">>>")return 16;break}case 60:{if(a=="<")return 21;if(a=="<=")return 22;if(a=="<<")return 14;break}}break}case 4:{switch(a.charCodeAt(0)){case 43:{if(a=="+")return 23;if(a=="++")return 27;break}case 45:{if(a=="-")return 24;if(a=="--")return 28;break}case 33:{if(a=="!")return 25;break}case 126:{if(a=="~")return 26;break}}break}case 5:{switch(a.charCodeAt(0)){case 43:{if(a=="++")return 29;break}case 45:{if(a=="--")return 30;break}}break}}return 0}n.fromDecorator=i;function r(s){switch(s){case 82:case 103:return 5;case 83:case 104:return 6;case 85:case 105:return 7;case 86:case 107:return 8;case 87:case 108:return 9;case 84:case 106:return 10;case 93:case 112:return 11;case 94:case 113:return 12;case 95:case 114:return 13;case 90:case 109:return 14;case 91:case 110:return 15;case 92:case 111:return 16;case 77:case 79:return 17;case 78:case 80:return 18;case 74:return 19;case 76:return 20;case 73:return 21;case 75:return 22}return 0}n.fromBinaryToken=r;function e(s){switch(s){case 82:return 23;case 83:return 24;case 96:return 25;case 97:return 26;case 88:return 27;case 89:return 28}return 0}n.fromUnaryPrefixToken=e;function t(s){switch(s){case 88:return 29;case 89:return 30}return 0}n.fromUnaryPostfixToken=t})(Me||={});var Ls=class extends tt{constructor(e,t=null){super(t);this.options=e;this.sources=[];this.stdSources=new Set;this.diagnosticsOffset=0;this.nextClassId=0;this.nextSignatureId=0;this.initialized=!1;this.filesByName=new Map;this.elementsByName=new Map;this.elementsByDeclaration=new Map;this.instancesByName=new Map;this.wrapperClasses=new Map;this.managedClasses=new Map;this.uniqueSignatures=new Map;this.moduleImports=new Map;this._arrayBufferViewInstance=null;this._arrayBufferInstance=null;this._arrayPrototype=null;this._staticArrayPrototype=null;this._setPrototype=null;this._mapPrototype=null;this._functionPrototype=null;this._taskPrototype=null;this._int8ArrayPrototype=null;this._int16ArrayPrototype=null;this._int32ArrayPrototype=null;this._int64ArrayPrototype=null;this._uint8ArrayPrototype=null;this._uint8ClampedArrayPrototype=null;this._uint16ArrayPrototype=null;this._uint32ArrayPrototype=null;this._uint64ArrayPrototype=null;this._float32ArrayPrototype=null;this._float64ArrayPrototype=null;this._stringInstance=null;this._regexpInstance=null;this._objectPrototype=null;this._objectInstance=null;this._templateStringsArrayInstance=null;this._allocInstance=null;this._reallocInstance=null;this._freeInstance=null;this._newInstance=null;this._renewInstance=null;this._linkInstance=null;this._collectInstance=null;this._visitInstance=null;this._newBufferInstance=null;this._newArrayInstance=null;this._BLOCKInstance=null;this._OBJECTInstance=null;this.nativeDummySignature=null;this.module=Yt.create(e.stackSize>0,e.sizeTypeRef),this.parser=new Ns(this.diagnostics,this.sources),this.resolver=new Fs(this);let n=new Ds(this,Ee.native);this.nativeFile=n,this.filesByName.set(n.internalName,n),this.parser.options=this.options}get arrayBufferViewInstance(){let e=this._arrayBufferViewInstance;return e||(this._arrayBufferViewInstance=e=this.requireClass(N.ArrayBufferView)),e}get arrayBufferInstance(){let e=this._arrayBufferInstance;return e||(this._arrayBufferInstance=e=this.requireClass(N.ArrayBuffer)),e}get arrayPrototype(){let e=this._arrayPrototype;return e||(this._arrayPrototype=e=this.require(N.Array,6)),e}get staticArrayPrototype(){let e=this._staticArrayPrototype;return e||(this._staticArrayPrototype=e=this.require(N.StaticArray,6)),e}get setPrototype(){let e=this._setPrototype;return e||(this._setPrototype=e=this.require(N.Set,6)),e}get mapPrototype(){let e=this._mapPrototype;return e||(this._mapPrototype=e=this.require(N.Map,6)),e}get functionPrototype(){let e=this._functionPrototype;return e||(this._functionPrototype=e=this.require(N.Function,6)),e}get taskPrototype(){let e=this._taskPrototype;if(!e){let t=te(this.elementsByName,N.Task);if(!t||t.kind!=6)return null;this._taskPrototype=e=t}return e}get int8ArrayPrototype(){let e=this._int8ArrayPrototype;return e||(this._int8ArrayPrototype=e=this.require(N.Int8Array,6)),e}get int16ArrayPrototype(){let e=this._int16ArrayPrototype;return e||(this._int16ArrayPrototype=e=this.require(N.Int16Array,6)),e}get int32ArrayPrototype(){let e=this._int32ArrayPrototype;return e||(this._int32ArrayPrototype=e=this.require(N.Int32Array,6)),e}get int64ArrayPrototype(){let e=this._int64ArrayPrototype;return e||(this._int64ArrayPrototype=e=this.require(N.Int64Array,6)),e}get uint8ArrayPrototype(){let e=this._uint8ArrayPrototype;return e||(this._uint8ArrayPrototype=e=this.require(N.Uint8Array,6)),e}get uint8ClampedArrayPrototype(){let e=this._uint8ClampedArrayPrototype;return e||(this._uint8ClampedArrayPrototype=e=this.require(N.Uint8ClampedArray,6)),e}get uint16ArrayPrototype(){let e=this._uint16ArrayPrototype;return e||(this._uint16ArrayPrototype=e=this.require(N.Uint16Array,6)),e}get uint32ArrayPrototype(){let e=this._uint32ArrayPrototype;return e||(this._uint32ArrayPrototype=e=this.require(N.Uint32Array,6)),e}get uint64ArrayPrototype(){let e=this._uint64ArrayPrototype;return e||(this._uint64ArrayPrototype=e=this.require(N.Uint64Array,6)),e}get float32ArrayPrototype(){let e=this._float32ArrayPrototype;return e||(this._float32ArrayPrototype=e=this.require(N.Float32Array,6)),e}get float64ArrayPrototype(){let e=this._float64ArrayPrototype;return e||(this._float64ArrayPrototype=e=this.require(N.Float64Array,6)),e}get stringInstance(){let e=this._stringInstance;return e||(this._stringInstance=e=this.requireClass(N.String)),e}get regexpInstance(){let e=this._regexpInstance;return e||(this._regexpInstance=e=this.requireClass(N.RegExp)),e}get objectPrototype(){let e=this._objectPrototype;return e||(this._objectPrototype=e=this.require(N.Object,6)),e}get objectInstance(){let e=this._objectInstance;return e||(this._objectInstance=e=this.requireClass(N.Object)),e}get templateStringsArrayInstance(){let e=this._templateStringsArrayInstance;return e||(this._templateStringsArrayInstance=e=this.requireClass(N.TemplateStringsArray)),e}get abortInstance(){let e=this.lookup(N.abort);return!e||e.kind!=4?null:this.resolver.resolveFunction(e,null)}get allocInstance(){let e=this._allocInstance;return e||(this._allocInstance=e=this.requireFunction(N.alloc)),e}get reallocInstance(){let e=this._reallocInstance;return e||(this._reallocInstance=e=this.requireFunction(N.realloc)),e}get freeInstance(){let e=this._freeInstance;return e||(this._freeInstance=e=this.requireFunction(N.free)),e}get newInstance(){let e=this._newInstance;return e||(this._newInstance=e=this.requireFunction(N.new_)),e}get renewInstance(){let e=this._renewInstance;return e||(this._renewInstance=e=this.requireFunction(N.renew)),e}get linkInstance(){let e=this._linkInstance;return e||(this._linkInstance=e=this.requireFunction(N.link)),e}get collectInstance(){let e=this._collectInstance;return e||(this._collectInstance=e=this.requireFunction(N.collect)),e}get visitInstance(){let e=this._visitInstance;return e||(this._visitInstance=e=this.requireFunction(N.visit)),e}get newBufferInstance(){let e=this._newBufferInstance;return e||(this._newBufferInstance=e=this.requireFunction(N.newBuffer)),e}get newArrayInstance(){let e=this._newArrayInstance;return e||(this._newArrayInstance=e=this.requireFunction(N.newArray)),e}get BLOCKInstance(){let e=this._BLOCKInstance;return e||(this._BLOCKInstance=e=this.requireClass(N.BLOCK)),e}get OBJECTInstance(){let e=this._OBJECTInstance;return e||(this._OBJECTInstance=e=this.requireClass(N.OBJECT)),e}getSource(e){let t=this.sources;for(let n=0;n<t.length;++n){let s=t[n];if(s.internalPath==e)return s.text}return null}get blockOverhead(){return this.BLOCKInstance.nextMemoryOffset}get objectOverhead(){return this.OBJECTInstance.nextMemoryOffset-this.blockOverhead+nn&~nn}get totalOverhead(){return this.blockOverhead+this.objectOverhead}searchFunctionByRef(e){let t=mf(e);if(t){let n=this.instancesByName;if(n.has(t)){let s=assert(n.get(t));if(s.kind==5)return s}}return null}computeBlockStart(e){let t=this.blockOverhead;return(e+t+nn&~nn)-t}computeBlockStart64(e){let t=i64_new(this.blockOverhead);return i64_sub(i64_align(i64_add(e,t),tx),t)}computeBlockSize(e,t){t&&(e+=this.objectOverhead);let n=this.computeBlockStart(e),s=this.blockOverhead,a=(3*this.options.usizeType.byteSize+s+nn&~nn)-s;n<a&&(n=a);let l=1<<30;if(n>=l||(n&3)!=0)throw new Error("invalid block size");return n}makeNativeVariableDeclaration(e,t=0){let n=Ee.native.range;return h.createVariableDeclaration(h.createIdentifierExpression(e,n),null,t,null,null,n)}makeNativeTypeDeclaration(e,t=0){let n=Ee.native.range,s=h.createIdentifierExpression(e,n);return h.createTypeDeclaration(s,null,t,null,h.createOmittedType(n),n)}makeNativeFunctionDeclaration(e,t=0){let n=Ee.native.range,s=this.nativeDummySignature;return s||(this.nativeDummySignature=s=h.createFunctionType([],h.createNamedType(h.createSimpleTypeName(N.void_,n),null,!1,n),null,!1,n)),h.createFunctionDeclaration(h.createIdentifierExpression(e,n),null,t,null,s,null,0,n)}makeNativeNamespaceDeclaration(e,t=0){let n=Ee.native.range;return h.createNamespaceDeclaration(h.createIdentifierExpression(e,n),null,t,[],n)}makeNativeFunction(e,t,n=this.nativeFile,s=0,a=0){return new Lt(e,new lt(e,n,this.makeNativeFunctionDeclaration(e,s),a),null,t)}getElementByDeclaration(e){let t=this.elementsByDeclaration;return t.has(e)?assert(t.get(e)):null}initialize(){if(this.initialized)return;this.initialized=!0;let e=this.options;this.registerNativeType(N.i8,p.i8),this.registerNativeType(N.i16,p.i16),this.registerNativeType(N.i32,p.i32),this.registerNativeType(N.i64,p.i64),this.registerNativeType(N.isize,e.isizeType),this.registerNativeType(N.u8,p.u8),this.registerNativeType(N.u16,p.u16),this.registerNativeType(N.u32,p.u32),this.registerNativeType(N.u64,p.u64),this.registerNativeType(N.usize,e.usizeType),this.registerNativeType(N.bool,p.bool),this.registerNativeType(N.f32,p.f32),this.registerNativeType(N.f64,p.f64),this.registerNativeType(N.void_,p.void),this.registerNativeType(N.number,p.f64),this.registerNativeType(N.boolean,p.bool),this.nativeFile.add(N.native,new at(N.native,this.nativeFile,this.makeNativeTypeDeclaration(N.native,65538),512)),this.nativeFile.add(N.indexof,new at(N.indexof,this.nativeFile,this.makeNativeTypeDeclaration(N.indexof,65538),512)),this.nativeFile.add(N.valueof,new at(N.valueof,this.nativeFile,this.makeNativeTypeDeclaration(N.valueof,65538),512)),this.nativeFile.add(N.returnof,new at(N.returnof,this.nativeFile,this.makeNativeTypeDeclaration(N.returnof,65538),512)),this.nativeFile.add(N.thisof,new at(N.thisof,this.nativeFile,this.makeNativeTypeDeclaration(N.thisof,65538),512)),this.nativeFile.add(N.nonnull,new at(N.nonnull,this.nativeFile,this.makeNativeTypeDeclaration(N.nonnull,65538),512)),this.registerNativeType(N.v128,p.v128),this.registerNativeType(N.ref_func,p.func),this.registerNativeType(N.ref_extern,p.extern),this.registerNativeType(N.ref_any,p.any),this.registerNativeType(N.ref_eq,p.eq),this.registerNativeType(N.ref_struct,p.struct),this.registerNativeType(N.ref_array,p.array),this.registerNativeType(N.ref_i31,p.i31),this.registerNativeType(N.ref_string,p.string),this.registerNativeType(N.ref_stringview_wtf8,p.stringview_wtf8),this.registerNativeType(N.ref_stringview_wtf16,p.stringview_wtf16),this.registerNativeType(N.ref_stringview_iter,p.stringview_iter),this.registerConstantInteger(N.ASC_TARGET,p.i32,i64_new(e.isWasm64?2:1)),this.registerConstantInteger(N.ASC_RUNTIME,p.i32,i64_new(e.runtime)),this.registerConstantInteger(N.ASC_NO_ASSERT,p.bool,i64_new(e.noAssert?1:0,0)),this.registerConstantInteger(N.ASC_MEMORY_BASE,p.i32,i64_new(e.memoryBase,0)),this.registerConstantInteger(N.ASC_TABLE_BASE,p.i32,i64_new(e.tableBase,0)),this.registerConstantInteger(N.ASC_OPTIMIZE_LEVEL,p.i32,i64_new(e.optimizeLevelHint,0)),this.registerConstantInteger(N.ASC_SHRINK_LEVEL,p.i32,i64_new(e.shrinkLevelHint,0)),this.registerConstantInteger(N.ASC_LOW_MEMORY_LIMIT,p.i32,i64_new(e.lowMemoryLimit,0)),this.registerConstantInteger(N.ASC_EXPORT_RUNTIME,p.bool,i64_new(e.exportRuntime?1:0,0)),this.registerConstantInteger(N.ASC_VERSION_MAJOR,p.i32,i64_new(e.bundleMajorVersion)),this.registerConstantInteger(N.ASC_VERSION_MINOR,p.i32,i64_new(e.bundleMinorVersion)),this.registerConstantInteger(N.ASC_VERSION_PATCH,p.i32,i64_new(e.bundlePatchVersion)),this.registerConstantInteger(N.ASC_FEATURE_SIGN_EXTENSION,p.bool,i64_new(e.hasFeature(1)?1:0,0)),this.registerConstantInteger(N.ASC_FEATURE_MUTABLE_GLOBALS,p.bool,i64_new(e.hasFeature(2)?1:0,0)),this.registerConstantInteger(N.ASC_FEATURE_NONTRAPPING_F2I,p.bool,i64_new(e.hasFeature(4)?1:0,0)),this.registerConstantInteger(N.ASC_FEATURE_BULK_MEMORY,p.bool,i64_new(e.hasFeature(8)?1:0,0)),this.registerConstantInteger(N.ASC_FEATURE_SIMD,p.bool,i64_new(e.hasFeature(16)?1:0,0)),this.registerConstantInteger(N.ASC_FEATURE_THREADS,p.bool,i64_new(e.hasFeature(32)?1:0,0)),this.registerConstantInteger(N.ASC_FEATURE_EXCEPTION_HANDLING,p.bool,i64_new(e.hasFeature(64)?1:0,0)),this.registerConstantInteger(N.ASC_FEATURE_TAIL_CALLS,p.bool,i64_new(e.hasFeature(128)?1:0,0)),this.registerConstantInteger(N.ASC_FEATURE_REFERENCE_TYPES,p.bool,i64_new(e.hasFeature(256)?1:0,0)),this.registerConstantInteger(N.ASC_FEATURE_MULTI_VALUE,p.bool,i64_new(e.hasFeature(512)?1:0,0)),this.registerConstantInteger(N.ASC_FEATURE_GC,p.bool,i64_new(e.hasFeature(1024)?1:0,0)),this.registerConstantInteger(N.ASC_FEATURE_MEMORY64,p.bool,i64_new(e.hasFeature(2048)?1:0,0)),this.registerConstantInteger(N.ASC_FEATURE_RELAXED_SIMD,p.bool,i64_new(e.hasFeature(4096)?1:0,0)),this.registerConstantInteger(N.ASC_FEATURE_EXTENDED_CONST,p.bool,i64_new(e.hasFeature(8192)?1:0,0)),this.registerConstantInteger(N.ASC_FEATURE_STRINGREF,p.bool,i64_new(e.hasFeature(16384)?1:0,0)),this.registerConstantInteger(N.ASC_FEATURE_SHARED_EVERYTHING,p.bool,i64_new(e.hasFeature(16384)?1:0,0));let t=new Array,n=new Map,s=new Map,a=new Array,l=new Array;for(let u=0,c=this.sources.length;u<c;++u){let f=this.sources[u],_=new Ds(this,f);this.filesByName.set(_.internalName,_);let d=f.statements;for(let g=0,y=d.length;g<y;++g){let E=d[g];switch(E.kind){case 39:{this.initializeExports(E,_,n,s);break}case 40:{this.initializeExportDefault(E,_,a,l);break}case 46:{this.initializeImports(E,_,t,n);break}case 51:{this.initializeVariables(E,_);break}case 55:{this.initializeClass(E,_,a,l);break}case 56:{this.initializeEnum(E,_);break}case 59:{this.initializeFunction(E,_);break}case 61:{this.initializeInterface(E,_,a);break}case 63:{this.initializeNamespace(E,_,a,l);break}case 64:{this.initializeTypeDefinition(E,_);break}}}}for(let u=Map_keys(s),c=0,f=u.length;c<f;++c){let _=u[c],d=assert(s.get(_));for(let g=0,y=d.length;g<y;++g){let E=unchecked(d[g]),A=this.lookupForeignFile(E.foreignPath,E.foreignPathAlt);if(!A){this.error(6054,E.pathLiteral.range,E.pathLiteral.value);continue}_.ensureExportStar(A)}}do{let u=0,c=!1;for(;u<t.length;){let f=t[u],_=f.localIdentifier,d=f.foreignIdentifier,g=assert(this.lookupForeignFile(f.foreignPath,f.foreignPathAlt));if(d){let y=this.lookupForeign(d.text,g,n);y?(f.localFile.add(_.text,y,_),t.splice(u,1),c=!0):++u}else{let y=f.localFile,E=_.text;y.add(E,g.asAliasNamespace(E,y,_),_),t.splice(u,1),c=!0}}if(!c){for(let f=0,_=t.length;f<_;++f){let d=t[f],g=d.foreignIdentifier;g&&this.error(2305,g.range,d.foreignPath,g.text)}break}}while(!0);for(let u=Map_keys(n),c=0,f=u.length;c<f;++c){let _=unchecked(u[c]),d=assert(n.get(_));for(let g=Map_keys(d),y=0,E=g.length;y<E;++y){let A=unchecked(g[y]),k=assert(d.get(A)),F=k.localIdentifier.text,w=k.foreignPath;if(w){let R=assert(this.lookupForeignFile(w,assert(k.foreignPathAlt))),P=this.lookupForeign(F,R,n);P?_.ensureExport(A,P):this.error(2305,k.localIdentifier.range,w,F)}else{let R=_.getMember(F);if(R)_.ensureExport(A,R);else{let P=this.lookup(F);P&&zs(P.kind)?_.ensureExport(A,P):this.error(2305,k.foreignIdentifier.range,_.internalName,k.foreignIdentifier.text)}}}}assert(this.objectInstance.id==0),assert(this.arrayBufferInstance.id==1),assert(this.stringInstance.id==2),assert(this.arrayBufferViewInstance.id==3),this.registerWrapperClass(p.i8,N.I8),this.registerWrapperClass(p.i16,N.I16),this.registerWrapperClass(p.i32,N.I32),this.registerWrapperClass(p.i64,N.I64),this.registerWrapperClass(e.isizeType,N.Isize),this.registerWrapperClass(p.u8,N.U8),this.registerWrapperClass(p.u16,N.U16),this.registerWrapperClass(p.u32,N.U32),this.registerWrapperClass(p.u64,N.U64),this.registerWrapperClass(e.usizeType,N.Usize),this.registerWrapperClass(p.bool,N.Bool),this.registerWrapperClass(p.f32,N.F32),this.registerWrapperClass(p.f64,N.F64),e.hasFeature(16)&&this.registerWrapperClass(p.v128,N.V128),e.hasFeature(256)&&(this.registerWrapperClass(p.func,N.RefFunc),this.registerWrapperClass(p.extern,N.RefExtern),e.hasFeature(1024)&&(this.registerWrapperClass(p.any,N.RefAny),this.registerWrapperClass(p.eq,N.RefEq),this.registerWrapperClass(p.struct,N.RefStruct),this.registerWrapperClass(p.array,N.RefArray),this.registerWrapperClass(p.i31,N.RefI31)),e.hasFeature(16384)&&this.registerWrapperClass(p.string,N.RefString));let o=this.resolver;for(let u=0,c=a.length;u<c;++u){let f=a[u],_=assert(f.extendsNode),d=o.resolveTypeName(_.name,null,f.parent);if(d){if(f.kind==6)if(d.kind==6){let g=d;g.hasDecorator(32)&&this.error(211,_.range,g.identifierNode.text),g.hasDecorator(16)!=f.hasDecorator(16)&&this.error(207,ue.join(f.identifierNode.range,_.range)),f.extends(g)?this.error(2506,g.identifierNode.range,g.identifierNode.text):f.basePrototype=g}else this.error(1311,_.range);else if(f.kind==8)if(d.kind==8){let g=d;f.extends(g)?this.error(2506,g.identifierNode.range,g.identifierNode.text):f.basePrototype=g}else this.error(2312,_.range)}}for(let u=0,c=a.length;u<c;u++){let f=a[u],_=f.instanceMembers;if(_){let d=Map_values(_);for(let g=0,y=d.length;g<y;g++){let E=d[g],A=E.declaration;if(A.is(8192)){let k=f.basePrototype,F=!1;for(;k;){let w=k.instanceMembers;if(w&&w.has(E.name)){F=!0;break}k=k.basePrototype}if(!F){let w=assert(f.basePrototype);this.error(4117,A.name.range,w.name)}}}}}for(let u=0,c=l.length;u<c;++u){let f=l[u],_=assert(f.implementsNodes);for(let d=0,g=_.length;d<g;++d){let y=_[d],E=o.resolveTypeName(y.name,null,f.parent);if(E)if(E.kind==8){let A=E,k=f.interfacePrototypes;k||(f.interfacePrototypes=k=new Array),k.push(A)}else this.error(2422,y.range)}}for(let u=0,c=a.length;u<c;++u){let f=a[u],_=f.basePrototype;_&&this.processOverrides(f,_)}for(let u=0,c=l.length;u<c;++u){let f=l[u],_=f.basePrototype,d=f.interfacePrototypes;if(_&&this.processOverrides(f,_),d)for(let g=0,y=d.length;g<y;++g)this.processOverrides(f,d[g])}{let u=e.globalAliases;u||(u=new Map),u.has(N.abort)||u.set(N.abort,m.abort),u.has(N.trace)||u.set(N.trace,m.trace),u.has(N.seed)||u.set(N.seed,m.seed),u.has(N.Math)||u.set(N.Math,N.NativeMath),u.has(N.Mathf)||u.set(N.Mathf,N.NativeMathf);for(let c=Map_keys(u),f=0,_=c.length;f<_;++f){let d=unchecked(c[f]),g=changetype(u.get(d));if(assert(g!=null),!g.length){this.elementsByName.delete(d);continue}let y=g.charCodeAt(0);if(y>=48&&y<=57)this.registerConstantInteger(d,p.i32,i64_new(parseInt(g,10)));else{let E=this.elementsByName;E.has(g)?E.set(d,assert(E.get(g))):this.error(111,null,g)}}}for(let u=Map_values(this.filesByName),c=0,f=u.length;c<f;++c){let _=unchecked(u[c]);_.source.sourceKind==1&&this.markModuleExports(_)}}processOverrides(e,t){let n=e.instanceMembers;if(n){let s=Map_values(n),a=null;do{let l=t.instanceMembers;if(l)for(let c=0,f=s.length;c<f;++c){let _=s[c];if(l.has(_.name)){let d=assert(l.get(_.name));this.doProcessOverride(e,_,t,d)}}let o=t.interfacePrototypes;if(o)for(let c=0,f=o.length;c<f;++c){let _=o[c];_!=t&&this.processOverrides(e,_)}let u=t.basePrototype;if(!u||(a||(a=new Set),a.add(t),a.has(u)))break;t=u}while(!0)}}doProcessOverride(e,t,n,s){if(!t.isAny(524800))if(t.kind==4&&s.kind==4){let a=t,l=s,o=a.is(65536),u=l.is(65536);if(o!=u){this.errorRelated(242,a.identifierNode.range,l.identifierNode.range,a.name);return}a.visibilityEquals(l)||this.errorRelated(2385,a.identifierNode.range,l.identifierNode.range),s.set(268435456);let c=l.unboundOverrides;c||(l.unboundOverrides=c=new Set),c.add(t);let f=l.instances;if(f)for(let _=Map_values(f),d=0,g=_.length;d<g;++d)_[d].set(268435456)}else if(t.kind==10&&s.kind==10){let a=t,l=s;if(a.visibilityEquals(l)||this.errorRelated(2385,a.identifierNode.range,l.identifierNode.range),l.parent.kind!=8){let c=a.isField;if(c!=l.isField){c?this.errorRelated(2610,a.identifierNode.range,l.identifierNode.range,a.name,n.internalName,e.internalName):this.errorRelated(2611,a.identifierNode.range,l.identifierNode.range,a.name,n.internalName,e.internalName);return}else if(c)return}l.set(268435456);let o=l.getterPrototype;if(o){o.set(268435456);let c=a.getterPrototype;if(c){let _=o.unboundOverrides;_||(o.unboundOverrides=_=new Set),_.add(c)}let f=o.instances;if(f)for(let _=Map_values(f),d=0,g=_.length;d<g;++d)_[d].set(268435456)}let u=l.setterPrototype;if(u&&a.setterPrototype){u.set(268435456);let c=a.setterPrototype;if(c){let _=u.unboundOverrides;_||(u.unboundOverrides=_=new Set),_.add(c)}let f=u.instances;if(f)for(let _=Map_values(f),d=0,g=_.length;d<g;++d)_[d].set(268435456)}}else this.errorRelated(2416,t.identifierNode.range,s.identifierNode.range,t.name,e.internalName,n.internalName)}lookup(e){let t=this.elementsByName;return t.has(e)?assert(t.get(e)):null}require(e,t){let n=this.lookup(e);if(!n)throw new Error(`Missing standard library component: ${e}`);if(n.kind!=t)throw Error(`Invalid standard library component kind: ${e}`);return n}requireGlobal(e){return this.require(e,0)}requireClass(e){let t=this.require(e,6),n=this.resolver.resolveClass(t,null);if(!n)throw new Error(`Invalid standard library class: ${e}`);return n}requireFunction(e,t=null){let n=this.require(e,4),s=this.resolver.resolveFunction(n,t);if(!s)throw new Error(`Invalid standard library function: ${e}`);return s}markModuleExports(e){let t=e.exports;if(t)for(let s=Map_values(t),a=0,l=s.length;a<l;++a){let o=unchecked(s[a]);this.markModuleExport(o)}let n=e.exportsStar;if(n)for(let s=0,a=n.length;s<a;++s)this.markModuleExports(n[s])}markModuleExport(e){switch(e.set(1048576),e.kind){case 6:{let n=e.instanceMembers;if(n)for(let s=Map_values(n),a=0,l=s.length;a<l;++a){let o=unchecked(s[a]);this.markModuleExport(o)}break}case 10:{let n=e,s=n.getterPrototype;s&&this.markModuleExport(s);let a=n.setterPrototype;a&&this.markModuleExport(a);break}case 11:case 5:case 7:assert(!1)}let t=e.members;if(t)for(let n=Map_values(t),s=0,a=n.length;s<a;++s){let l=unchecked(n[s]);this.markModuleExport(l)}}markModuleImport(e,t,n){n.set(2097152);let s=this.moduleImports,a;s.has(e)?a=assert(s.get(e)):(a=new Map,s.set(e,a)),a.set(t,n)}registerNativeType(e,t){let n=new at(e,this.nativeFile,this.makeNativeTypeDeclaration(e,2),512);n.setType(t),this.nativeFile.add(e,n)}registerWrapperClass(e,t){let n=this.wrapperClasses;assert(!e.isInternalReference&&!n.has(e));let s=assert(this.lookup(t));assert(s.kind==6);let a=assert(this.resolver.resolveClass(s,null));a.wrappedType=e,n.set(e,a)}registerConstantInteger(e,t,n){assert(t.isIntegerInclReference);let s=new ti(e,this.nativeFile,1024,this.makeNativeVariableDeclaration(e,10));s.setConstantIntegerValue(n,t),this.nativeFile.add(e,s)}registerConstantFloat(e,t,n){assert(t.isFloatValue);let s=new ti(e,this.nativeFile,1024,this.makeNativeVariableDeclaration(e,10));s.setConstantFloatValue(n,t),this.nativeFile.add(e,s)}ensureGlobal(e,t){let n=this.elementsByName;if(n.has(e)){let s=assert(n.get(e));if(s!=t){let a=Ff(s,t);if(!a)return zs(s.kind)?this.errorRelated(2300,t.identifierNode.range,s.declaration.name.range,e):this.error(2300,t.identifierNode.range,e),t;t=a}}return n.set(e,t),t}lookupForeignFile(e,t){let n=this.filesByName;return n.has(e)?assert(n.get(e)):n.has(t)?assert(n.get(t)):null}lookupForeign(e,t,n){do{let a=t.lookupExport(e);if(a)return a;if(n.has(t)){let l=assert(n.get(t));if(l.has(e)){let o=assert(l.get(e)),u=o.foreignPath;if(u){let c=this.lookupForeignFile(u,assert(o.foreignPathAlt));if(!c)return null;e=o.localIdentifier.text,t=c;continue}if(a=t.getMember(o.localIdentifier.text),a)return a}}break}while(!0);let s=t.exportsStar;if(s)for(let a=0,l=s.length;a<l;++a){let o=this.lookupForeign(e,s[a],n);if(o)return o}return null}checkDecorators(e,t){let n=0;if(e)for(let s=0,a=e.length;s<a;++s){let l=e[s],o=Rt.fromNode(l.name),u=Nt.fromKind(o);u&&(t&u?n&u?this.error(213,l.range):n|=u:this.error(212,l.range,l.name.range.toString()))}return n}checkFeatureEnabled(e,t){return this.options.hasFeature(e)?!0:(this.error(103,t.range,Di(e)),!1)}checkTypeSupported(e,t){switch(e.kind){case 13:return this.checkFeatureEnabled(16,t);case 16:case 15:return e.is(512)?this.checkFeatureEnabled(256,t):this.checkFeatureEnabled(1024,t);case 17:case 18:case 19:case 20:case 21:return this.checkFeatureEnabled(256,t)&&this.checkFeatureEnabled(1024,t);case 22:case 23:case 24:case 25:return this.checkFeatureEnabled(256,t)&&this.checkFeatureEnabled(16384,t)}let n=e.getClass();if(n)do{let s=n.typeArguments;if(s){for(let a=0,l=s.length;a<l;++a)if(!this.checkInlineStructValue(s[a],t,"a type argument (Array<T>)")||!this.checkTypeSupported(s[a],t))return!1}n=n.base}while(n);else{let s=e.getSignature();if(s){let a=s.thisType;if(a&&!this.checkTypeSupported(a,t))return!1;let l=s.parameterTypes;for(let u=0,c=l.length;u<c;++u)if(!this.checkTypeSupported(l[u],t))return!1;let o=s.returnType;if(!this.checkTypeSupported(o,t))return!1}}return!0}checkInlineStructValue(e,t,n){let s=e.getClass();return s!=null&&s.hasDecorator(4096)?(this.error(100,t.range,n=="a global"?"an @inline struct at top level (a global is a pointer slot, so two values would alias; declare it inside a function)":"an @inline struct value in "+n+" (value types are not implemented here yet; a pointer would alias)"),!1):!0}initializeClass(e,t,n,s){let a=e.name.text,l=e.declaredAsStruct&&KE(e.decorators,64),o=new Us(a,t,e,this.checkDecorators(e.decorators,49|(e.declaredAsStruct?2112:0)));if(!t.add(a,o))return null;l&&(o.decoratorFlags|=4096),(o.hasDecorator(2048)||o.hasDecorator(4096))&&(o.decoratorFlags|=32);let u=e.implementsTypes;if(u){let f=u.length;f&&(o.hasDecorator(16)?this.error(208,ue.join(e.name.range,u[f-1].range)):s.push(o))}e.extendsType?o.hasDecorator(4096)?this.error(100,ue.join(e.name.range,assert(e.extendsType).range),"inheritance on an @inline struct (a value type is final: no base class, no virtual methods)"):o.hasDecorator(2048)?this.error(100,ue.join(e.name.range,assert(e.extendsType).range),"inheritance on an @managed struct (its fields must stay at fixed offsets from the reference)"):n.push(o):!o.hasDecorator(16)&&o.internalName!=m.Object&&(o.implicitlyExtendsObject=!0);let c=e.members;for(let f=0,_=c.length;f<_;++f){let d=c[f];switch(d.kind){case 58:{this.initializeField(d,o);break}case 62:{let g=d;if(g.is(128)&&g.is(65536)&&this.error(241,g.name.range,g.name.text),d.isAny(6144))this.initializeProperty(g,o);else{let y=this.initializeMethod(g,o);y&&g.name.kind==28&&(o.constructorPrototype=y)}break}case 69:break;default:assert(!1)}}return o}initializeField(e,t){let n=e.name.text,s=e.decorators,a,l=8192;if(t.is(32768)&&(l|=128),e.is(32)){if(assert(t.kind!=8),l|=1024,e.is(64)&&(l|=64),a=new ti(n,t,this.checkDecorators(s,l),e),!t.add(n,a))return}else if(assert(!e.isAny(6272)),a=sn.forField(n,t,e,this.checkDecorators(s,l)),!t.addInstance(n,a))return}initializeMethod(e,t){let n=e.name.text,s=e.is(32),a=8256;e.is(65536)||(a|=14),t.is(32768)&&(a|=128),e.range.source.isLibrary&&(a|=512);let l=new lt(n,t,e,this.checkDecorators(e.decorators,a));if(l.hasDecorator(512)&&!x.has(l.internalName)&&this.error(100,e.range,`Builtin '${l.internalName}'`),s){if(assert(e.name.kind!=28),!t.add(n,l))return null}else if(!t.addInstance(n,l))return null;return this.checkOperatorOverloads(e.decorators,l,t),l}checkOperatorOverloads(e,t,n){if(e)for(let s=0,a=e.length;s<a;++s){let l=e[s];switch(l.decoratorKind){case 2:case 3:case 4:case 5:{let o=l.args,u=o?o.length:0;if(u==1){let c=l.args[0];if(c.isLiteralKind(2)){let f=c.value,_=Me.fromDecorator(l.decoratorKind,f);if(_==0)this.error(224,c.range,f);else{let d=n.operatorOverloadPrototypes;d.has(_)?this.error(2393,c.range):(t.operatorKind=_,d.set(_,t))}}else this.error(1141,c.range)}else this.error(2554,l.range,"1",u.toString())}}}}ensureProperty(e,t){let n=e.name.text;if(e.is(32)){let s=t.members;if(s&&s.has(n)){let a=assert(s.get(n));if(a.kind==10)return a}else{let a=new sn(n,t,e);return t.add(n,a)?a:null}}else{let s=t.instanceMembers;if(s&&s.has(n)){let a=assert(s.get(n));if(a.kind==10)return a}else{let a=new sn(n,t,e);return t.addInstance(n,a)?a:null}}return this.error(2718,e.name.range,n),null}initializeProperty(e,t){let n=this.ensureProperty(e,t);if(!n)return;let s=e.name.text,a=e.is(2048);if(a){if(n.getterPrototype){this.error(2718,e.name.range,s);return}}else if(n.setterPrototype){this.error(2718,e.name.range,s);return}let l=new lt((a?el:tl)+s,n.parent,e,this.checkDecorators(e.decorators,8256));a?n.getterPrototype=l:n.setterPrototype=l}initializeEnum(e,t){let n=e.name.text,s=new Zo(n,t,e,this.checkDecorators(e.decorators,1089));if(!t.add(n,s))return null;let a=e.values;for(let l=0,o=a.length;l<o;++l)this.initializeEnumValue(a[l],s);return s}initializeEnumValue(e,t){let n=e.name.text,s=new Yo(n,t,e,this.checkDecorators(e.decorators,0));t.add(n,s)}initializeExports(e,t,n,s){let a=e.members;if(a)for(let l=0,o=a.length;l<o;++l)this.initializeExport(a[l],t,e.internalPath,n);else{let l;s.has(t)?l=assert(s.get(t)):s.set(t,l=[]);let o=e.internalPath;l.push(new Af(o,o.endsWith(Qe)?o.substring(0,o.length-Qe.length):o+Qe,assert(e.path)))}}initializeExport(e,t,n,s){let a=e.localName.text,l=e.exportedName.text,o=t.lookupExport(l);if(o){this.error(2484,e.exportedName.range,l);return}if(n==null)if(o=t.getMember(a))t.ensureExport(l,o);else{let u;s.has(t)?u=assert(s.get(t)):s.set(t,u=new Map),u.set(l,new $o(e.localName,e.exportedName,null,null))}else{let u;s.has(t)?u=assert(s.get(t)):s.set(t,u=new Map),u.set(l,new $o(e.localName,e.exportedName,n,n.endsWith(Qe)?n.substring(0,n.length-Qe.length):n+Qe))}}initializeExportDefault(e,t,n,s){let a=e.declaration,l=null;switch(a.kind){case 56:{l=this.initializeEnum(a,t);break}case 59:{l=this.initializeFunction(a,t);break}case 55:{l=this.initializeClass(a,t,n,s);break}case 61:{l=this.initializeInterface(a,t,n);break}case 63:{l=this.initializeNamespace(a,t,n,s);break}default:assert(!1)}if(l){let o=t.exports;if(!o)t.exports=o=new Map;else if(o.has("default")){let u=assert(o.get("default"));this.errorRelated(2300,a.name.range,u.declaration.name.range,"default");return}o.set("default",l)}}initializeImports(e,t,n,s){let a=e.declarations;if(a)for(let l=0,o=a.length;l<o;++l)this.initializeImport(a[l],t,e.internalPath,n,s);else{let l=e.namespaceName;l&&n.push(new Xo(t,l,null,e.internalPath,e.internalPath+Qe))}}initializeImport(e,t,n,s,a){let l=n.endsWith(Qe)?n.substring(0,n.length-Qe.length):n+Qe,o=this.lookupForeignFile(n,l);if(o){let u=this.lookupForeign(e.foreignName.text,o,a);if(u){t.add(e.name.text,u,e.name);return}}s.push(new Xo(t,e.name,e.foreignName,n,l))}initializeFunction(e,t){let n=e.name.text,s=8192;e.is(32768)?s|=384:(s|=64,(e.range.source.isLibrary||e.is(2))&&(s|=1024)),e.is(262144)||t.kind!=6&&(s|=1),e.range.source.isLibrary&&(s|=512);let a=new lt(n,t,e,this.checkDecorators(e.decorators,s));return a.hasDecorator(512)&&!x.has(a.internalName)&&this.error(100,e.range,`Builtin '${a.internalName}'`),t.add(n,a)?a:null}initializeInterface(e,t,n){let s=e.name.text,a=new Jo(s,t,e,this.checkDecorators(e.decorators,1));if(!t.add(s,a))return null;e.extendsType&&n.push(a);let l=e.members;for(let o=0,u=l.length;o<u;++o){let c=l[o];switch(c.kind){case 58:{this.initializeFieldAsProperty(c,a);break}case 62:{let f=c;f.is(65536)&&this.error(241,f.name.range,f.name.text),c.isAny(6144)?this.initializeProperty(f,a):this.initializeMethod(f,a);break}default:assert(!1)}}return a}initializeFieldAsProperty(e,t){let n=e.initializer;n&&this.error(1246,n.range);let s=e.type;s||(s=h.createOmittedType(e.name.range.atEnd)),this.initializeProperty(h.createMethodDeclaration(e.name,e.decorators,e.flags|2048,null,h.createFunctionType([],s,null,!1,e.range),null,e.range),t),e.is(64)||this.initializeProperty(h.createMethodDeclaration(e.name,e.decorators,e.flags|4096,null,h.createFunctionType([h.createParameter(0,e.name,s,null,e.name.range)],h.createOmittedType(e.name.range.atEnd),null,!1,e.range),null,e.range),t)}initializeNamespace(e,t,n,s){let a=e.name.text,l=new Gs(a,t,e,this.checkDecorators(e.decorators,1));if(!t.add(a,l))return null;let o=assert(t.getMember(a)),u=e.members;for(let c=0,f=u.length;c<f;++c){let _=u[c];switch(_.kind){case 55:{this.initializeClass(_,l,n,s);break}case 56:{this.initializeEnum(_,l);break}case 59:{this.initializeFunction(_,l);break}case 61:{this.initializeInterface(_,l,n);break}case 63:{this.initializeNamespace(_,l,n,s);break}case 64:{this.initializeTypeDefinition(_,l);break}case 51:{this.initializeVariables(_,l);break}default:assert(!1)}}return l!=o&&tr(l,o),o}initializeTypeDefinition(e,t){let n=e.name.text,s=new at(n,t,e,this.checkDecorators(e.decorators,0));t.add(n,s)}initializeVariables(e,t){let n=e.declarations;for(let s=0,a=n.length;s<a;++s){let l=n[s],o=l.name.text,u=1025;l.is(32768)&&(u|=128),l.is(8)&&(u|=64),l.range.source.isLibrary&&(u|=512);let c=new ti(o,t,this.checkDecorators(l.decorators,u),l);c.hasDecorator(512)&&!At.has(c.internalName)&&this.error(100,l.range,`Builtin '${c.internalName}'`),t.add(o,c)}}},Et=(E=>(E[E.Global=0]="Global",E[E.Local=1]="Local",E[E.Enum=2]="Enum",E[E.EnumValue=3]="EnumValue",E[E.FunctionPrototype=4]="FunctionPrototype",E[E.Function=5]="Function",E[E.ClassPrototype=6]="ClassPrototype",E[E.Class=7]="Class",E[E.InterfacePrototype=8]="InterfacePrototype",E[E.Interface=9]="Interface",E[E.PropertyPrototype=10]="PropertyPrototype",E[E.Property=11]="Property",E[E.Namespace=12]="Namespace",E[E.File=13]="File",E[E.TypeDefinition=14]="TypeDefinition",E[E.IndexSignature=15]="IndexSignature",E))(Et||{}),Nt=(y=>(y[y.None=0]="None",y[y.Global=1]="Global",y[y.OperatorBinary=2]="OperatorBinary",y[y.OperatorPrefix=4]="OperatorPrefix",y[y.OperatorPostfix=8]="OperatorPostfix",y[y.Unmanaged=16]="Unmanaged",y[y.Final=32]="Final",y[y.Inline=64]="Inline",y[y.ManagedStruct=2048]="ManagedStruct",y[y.External=128]="External",y[y.ExternalJs=256]="ExternalJs",y[y.Builtin=512]="Builtin",y[y.Lazy=1024]="Lazy",y[y.InlineStruct=4096]="InlineStruct",y[y.Unsafe=8192]="Unsafe",y))(Nt||{});(r=>{function i(e){switch(e){case 1:return 1;case 2:case 3:return 2;case 4:return 4;case 5:return 8;case 6:return 16;case 7:return 2048;case 8:return 32;case 9:return 64;case 10:return 128;case 11:return 256;case 12:return 512;case 13:return 1024;case 14:return 8192;default:return 0}}r.fromKind=i})(Nt||={});var Ms=class{constructor(r,e,t,n,s){this.kind=r;this.name=e;this.internalName=t;this.program=n;this.flags=0;this.decoratorFlags=0;this.members=null;this.shadowType=null;this.program=n,this.name=e,this.internalName=t,s?this.parent=s:(assert(this.kind==13),this.parent=this)}get file(){let r=this;do if(r=r.parent,r.kind==13)return r;while(!0)}is(r){return(this.flags&r)==r}isAny(r){return(this.flags&r)!=0}set(r){this.flags|=r}unset(r){this.flags&=~r}hasDecorator(r){return(this.decoratorFlags&r)==r}hasAnyDecorator(r){return(this.decoratorFlags&r)!=0}getMember(r){let e=this.members;return e&&e.has(r)?assert(e.get(r)):null}lookup(r,e=!1){return this.parent.lookup(r,e)}add(r,e,t=null){let n=e.declaration,s=this.members;if(!s)this.members=s=new Map;else if(s.has(r)){let l=assert(s.get(r));if(l.parent==this){let o=Ff(l,e);if(o)e=o;else{let u=t||e.identifierNode;return zs(l.kind)?this.program.errorRelated(2300,u.range,l.identifierNode.range,u.text):this.program.error(2300,u.range,u.text),!1}}}s.set(r,e);let a=this.program;return(e.kind!=4||!e.isBound)&&(a.elementsByName.set(e.internalName,e),a.elementsByDeclaration.set(n,e)),!0}get isPublic(){return!this.isAny(1536)}get isImplicitlyPublic(){return this.isPublic&&!this.is(256)}visibilityEquals(r){if(this.isPublic==r.isPublic)return!0;let e=1536;return(this.flags&e)==(r.flags&e)}visibilityNoLessThan(r){return this.isPublic?!0:this.is(512)?r.is(512):this.is(1024)?r.isAny(1536):assert(!1)}get isBound(){switch(this.parent.kind){case 7:case 9:return!0}return!1}getBoundClassOrInterface(){let r=this.parent;switch(r.kind){case 7:case 9:return r}return null}toString(){return`${this.internalName}, kind=${this.kind}`}},rx=new Set;function zs(i){return rx.has(i)}var Ar=class extends Ms{constructor(e,t,n,s,a,l){super(e,t,n,s,a);this.declaration=l;rx.add(e),this.declaration=l,this.flags=l.flags}get isDeclaredInLibrary(){return this.declaration.range.source.isLibrary}get identifierNode(){return this.declaration.name}get identifierAndSignatureRange(){let e=this.declaration,t=e.name;if(e.kind==59||e.kind==62){let n=e.signature;if(t.range.source==n.range.source)return ue.join(t.range,n.range)}return t.range}get decoratorNodes(){return this.declaration.decorators}},ix=new Set;function Ko(i){return ix.has(i)}var rr=class extends Ar{constructor(e,t,n,s,a,l){super(e,t,n,s,a,l);this.type=p.void;ix.add(e)}setType(e){assert(!this.is(4194304)),this.type=e,this.set(4194304)}refineType(e){this.type=e,this.set(4194304)}},Ds=class extends Ms{constructor(e,t){super(13,t.normalizedPath,t.internalPath,e,null);this.source=t;this.exports=null;this.exportsStar=null;this.aliasNamespaces=new Array;this.source=t,assert(!e.filesByName.has(this.internalName)),e.filesByName.set(this.internalName,this);let n=this.program.makeNativeFunction(`start:${this.internalName}`,Te.create(e,[],p.void),this);n.internalName=n.name,this.startFunction=n}add(e,t,n=null){return t.hasDecorator(1)&&(t=this.program.ensureGlobal(e,t)),super.add(e,t,n)?(t=assert(this.getMember(e)),t.is(2)&&!n&&this.ensureExport(t.name,t),!0):!1}getMember(e){let t=super.getMember(e);if(t)return t;let n=this.exportsStar;if(n){for(let s=0,a=n.length;s<a;++s)if(t=n[s].getMember(e))return t}return null}lookup(e,t=!1){let n=this.getMember(e);return n||this.program.lookup(e)}ensureExport(e,t){let n=this.exports;n||(this.exports=n=new Map),n.set(e,t),this.source.sourceKind==3&&this.program.ensureGlobal(e,t);for(let s=0;s<this.aliasNamespaces.length;s++)this.aliasNamespaces[s].add(e,t)}ensureExportStar(e){let t=this.exportsStar;if(!t)this.exportsStar=t=[];else if(t.includes(e))return;t.push(e)}lookupExport(e){let t=this.exports;if(t&&t.has(e))return assert(t.get(e));let n=this.exportsStar;if(n)for(let s=0,a=n.length;s<a;++s){let l=n[s].lookupExport(e);if(l)return l}return null}asAliasNamespace(e,t,n){let s=this.program.makeNativeNamespaceDeclaration(e);s.name=n;let a=new Gs(e,t,s);return a.set(67108864),this.copyExportsToNamespace(a),this.aliasNamespaces.push(a),a}copyExportsToNamespace(e){let t=this.exports;if(t)for(let s=Map_keys(t),a=0,l=s.length;a<l;++a){let o=unchecked(s[a]),u=assert(t.get(o));e.add(o,u)}let n=this.exportsStar;if(n)for(let s=0,a=n.length;s<a;++s)n[s].copyExportsToNamespace(e)}},at=class extends rr{constructor(r,e,t,n=0){super(14,r,Ke(r,e,!1),e.program,e,t),this.decoratorFlags=n}get typeParameterNodes(){return this.declaration.typeParameters}get typeNode(){return this.declaration.type}},Gs=class extends Ar{constructor(r,e,t,n=0){super(12,r,Ke(r,e,!1),e.program,e,t),this.decoratorFlags=n}lookup(r,e=!1){let t=this.getMember(r);return t||super.lookup(r,e)}},Zo=class extends rr{constructor(e,t,n,s=0){super(2,e,Ke(e,t,!1),t.program,t,n);this.toStringFunctionName=null;this.underlyingTypeResolved=!1;this.underlyingTypeResolving=!1;this.decoratorFlags=s,this.setType(p.i32)}lookup(e,t=!1){let n=this.getMember(e);return n||super.lookup(e,t)}},If=(t=>(t[t.None=0]="None",t[t.Integer=1]="Integer",t[t.Float=2]="Float",t))(If||{}),ri=class extends rr{constructor(e,t,n,s=n.program.makeNativeVariableDeclaration(t)){super(e,t,Ke(t,n,s.is(262144)),n.program,n,s);this.constantValueKind=0;this.constantIntegerValue=i64_zero;this.constantFloatValue=0;this.flags=s.flags}get typeNode(){return this.declaration.type}get initializerNode(){return this.declaration.initializer}setConstantIntegerValue(e,t){assert(t.isIntegerInclReference),this.type=t,this.constantValueKind=1,this.constantIntegerValue=e,this.set(37748744)}setConstantFloatValue(e,t){assert(t.isFloatValue),this.type=t,this.constantValueKind=2,this.constantFloatValue=e,this.set(37748744)}},Yo=class extends ri{constructor(e,t,n,s=0){super(3,e,t,n);this.isImmutable=!1;this.decoratorFlags=s,this.setType(t.type)}get valueNode(){return this.declaration.initializer}},ti=class extends ri{constructor(r,e,t,n=e.program.makeNativeVariableDeclaration(r)){super(0,r,e,n),this.decoratorFlags=t}},Tf=class{constructor(r,e,t=null){this.name=r;this.type=e;this.initializer=t}},Ae=class extends ri{constructor(e,t,n,s,a=s.program.makeNativeVariableDeclaration(e)){super(1,e,s,a);this.index=t;this.fieldLocals=null;this.originalName=e,this.index=t,assert(n!=p.void),this.setType(n)}declaredByFlow(e){return this.parent==e.targetFunction}},lt=class i extends Ar{constructor(e,t,n,s=0){super(4,e,Ke(e,t,n.is(262144)),t.program,t,n);this.operatorKind=0;this.capturesThis=!1;this.envKind=0;this.envClass=null;this.instances=null;this.unboundOverrides=null;this.boundPrototypes=null;this.decoratorFlags=s}get typeParameterNodes(){return this.declaration.typeParameters}get functionTypeNode(){return this.declaration.signature}get bodyNode(){return this.declaration.body}get arrowKind(){return this.declaration.arrowKind}get isAsync(){return this.declaration.isAsync&&!this.isAny(530432)}toBound(e){assert(this.is(262144)),assert(!this.isBound);let t=this.boundPrototypes;if(!t)this.boundPrototypes=t=new Map;else if(t.has(e))return assert(t.get(e));let n=this.declaration;assert(n.kind==62);let s=new i(this.name,e,n,this.decoratorFlags);return s.flags=this.flags,s.operatorKind=this.operatorKind,s.unboundOverrides=this.unboundOverrides,t.set(e,s),s}getResolvedInstance(e){let t=this.instances;return t&&t.has(e)?assert(t.get(e)):null}setResolvedInstance(e,t){let n=this.instances;n?assert(!n.has(e)):this.instances=n=new Map,n.set(e,t)}},Lt=class i extends rr{constructor(e,t,n,s,a=null){super(5,e,Ke(e,t.parent,t.is(262144)),t.program,t.parent,t.declaration);this.localsByIndex=[];this.debugLocations=new Map;this.ref=0;this.tableIndex=0;this.varargsStub=null;this.overrideStub=null;this.memorySegment=null;this.nextInlineId=0;this.nextAnonymousId=0;this.nextBreakId=0;this.breakStack=null;this.prototype=t,this.typeArguments=n,this.signature=s,this.flags=t.flags|4194304,this.decoratorFlags=t.decoratorFlags,this.contextualTypeArguments=a,this.original=this;let l=t.program;this.type=s.type;let o=Jt.createDefault(this);if(this.flow=o,!t.is(32768)){let u=0,c=s.thisType;if(c){let d=new Ae(N.this_,u++,c,this),g=this.flow.scopedLocals;g||(this.flow.scopedLocals=g=new Map),g.set(N.this_,d),this.localsByIndex[d.index]=d,o.setLocalFlag(d.index,8)}if(s.hasHiddenDestParam){let d=new Ae("$sretDest",u++,p.u32,this);this.localsByIndex[d.index]=d,o.setLocalFlag(d.index,8)}let f=s.parameterTypes,_=null;for(let d=0,g=f.length;d<g;++d){let y=f[d],E=this.getParameterName(d);if(s.isExportByValParam(d)){let F=this.flow.scopedLocals;F||(this.flow.scopedLocals=F=new Map);let w=new Ae(E+"$byval",u++,p.u32,this);this.localsByIndex[w.index]=w,o.setLocalFlag(w.index,8),F.set(E+"$byval",w),_||(_=new Array),unchecked(_[_.length]=new Sf(d,E,y,new Map));continue}if(Te.isInlineStructRef(y)){let F=this.flow.scopedLocals;F||(this.flow.scopedLocals=F=new Map);let w=new Map,R=assert(y.classReference),P=assert(R.members);for(let O=Map_values(P),z=0,j=O.length;z<j;++z){let U=unchecked(O[z]);if(U.kind!=10)continue;let D=U.instance;if(D==null||!D.isField)continue;let Q=new Ae(E+"$"+D.name,u++,D.type,this);w.set(D.name,Q),this.localsByIndex[Q.index]=Q,o.setLocalFlag(Q.index,8)}let M=new Ae(E,-1,y,this);M.fieldLocals=w,F.set(E,M);continue}let A=new Ae(E,u++,y,this),k=this.flow.scopedLocals;k||(this.flow.scopedLocals=k=new Map),k.set(E,A),this.localsByIndex[A.index]=A,o.setLocalFlag(A.index,8)}if(_)for(let d=0,g=_.length;d<g;++d){let y=unchecked(_[d]),E=y.parameterName,A=y.parameterType,k=y.fieldLocals,F=assert(A.classReference),w=assert(F.members);for(let M=Map_values(w),O=0,z=M.length;O<z;++O){let j=unchecked(M[O]);if(j.kind!=10)continue;let U=j.instance;if(U==null||!U.isField)continue;let D=new Ae(E+"$"+U.name,u++,U.type,this);k.set(U.name,D),this.localsByIndex[D.index]=D,o.setLocalFlag(D.index,8)}let R=new Ae(E,-1,A,this);R.fieldLocals=k;let P=this.flow.scopedLocals;P||(this.flow.scopedLocals=P=new Map),P.set(E,R)}}l.instancesByName.has(this.internalName)?(l.error(2393,t.declaration.name.range),this.set(16777216)):kf(l,this)}getNonParameterLocalTypes(){let e=this.localsByIndex,t=this.signature,n=e.length,s=t.wasmParamCount();t.thisType&&++s;let a=n-s,l=new Array(a);for(let o=0;o<a;++o)l[o]=e[s+o].type;return l}getParameterName(e){let t=this.declaration.signature.parameters;return t.length>e?t[e].name.text:nx(e)}newStub(e,t=this.signature.requiredParameters){let n=new i(this.original.name+Np+e,this.prototype,this.typeArguments,this.signature.clone(t),this.contextualTypeArguments);return n.original=this.original,n.set(this.flags&-8388609|134217728),n}addLocal(e,t=null,n=null){let s=this.localsByIndex,a=s.length,l=t??a.toString();n||(n=this.program.makeNativeVariableDeclaration(l));let o=new Ae(l,a,e,this,n);if(t){let u=this.flow,c=u.scopedLocals;if(c||(u.scopedLocals=c=new Map),c.has(t))throw new Error("duplicate local name");c.set(t,o)}return s[a]=o,o}lookup(e,t=!1){if(!t){let n=this.flow.scopedLocals;if(n&&n.has(e))return assert(n.get(e))}return super.lookup(e,t)}finalize(e,t){this.ref=t;let n=this.breakStack;assert(!n||!n.length),this.breakStack=null,this.addDebugInfo(e,t)}addDebugInfo(e,t){if(this.program.options.sourceMap){let n=this.debugLocations;for(let s=Map_keys(n),a=0,l=s.length;a<l;++a){let o=s[a],u=assert(n.get(o)),c=u.source;e.setDebugLocation(t,o,c.debugInfoIndex,c.lineAt(u.start),c.columnAt()-1)}}if(this.program.options.debugInfo){let n=new Set,s=this.localsByIndex;for(let a=0,l=s.length;a<l;a++){let o=s[a].name;n.has(o)&&(o=`${o}|${a}`),n.add(o),e.setLocalName(t,a,o)}}}},sn=class i extends Ar{constructor(e,t,n){super(10,e,Ke(e,t,n.is(262144)),t.program,t,n);this.fieldDeclaration=null;this.getterPrototype=null;this.setterPrototype=null;this.instance=null;this.boundPrototypes=null;this.flags&=-6145}static forField(e,t,n,s){let a=Ee.native.range,l=n.type;l||(l=h.createOmittedType(n.name.range.atEnd));let o=new Jr(n.name,n.decorators,n.flags|262144|2048,null,new Zr([],l,null,!1,a),null,a),u=new Jr(n.name,n.decorators,n.flags|262144|4096,null,new Zr([new $i(0,n.name,l,null,a)],new $r(new Xi(new rt("",!1,a),null,a),null,!1,a),null,!1,a),null,a),c=new i(e,t,o);return c.fieldDeclaration=n,c.decoratorFlags=s,c.getterPrototype=new lt(el+e,t,o,s),c.setterPrototype=new lt(tl+e,t,u,s),c}get isField(){return this.fieldDeclaration!=null}get typeNode(){let e=this.fieldDeclaration;if(e)return e.type;let t=this.getterPrototype;if(t){let s=t.declaration;if(s.kind==59)return s.signature.returnType}let n=this.setterPrototype;if(n){let s=n.declaration;if(s.kind==59){let a=s.signature.parameters;if(a.length)return a[0].type}}return null}get initializerNode(){let e=this.fieldDeclaration;return e?e.initializer:null}get parameterIndex(){let e=this.fieldDeclaration;return e?e.parameterIndex:-1}get thisType(){let e=this.parent;return assert(e.kind==7),e.type}toBound(e){assert(this.is(262144)),assert(!this.isBound);let t=this.boundPrototypes;if(!t)this.boundPrototypes=t=new Map;else if(t.has(e))return assert(t.get(e));let n=this.declaration;assert(n.kind==62);let s=new i(this.name,e,n);s.flags=this.flags,s.fieldDeclaration=this.fieldDeclaration;let a=this.getterPrototype;a&&(s.getterPrototype=a.toBound(e));let l=this.setterPrototype;return l&&(s.setterPrototype=l.toBound(e)),t.set(e,s),s}},ws=class extends ri{constructor(e,t){super(11,e.name,t,e.isField?assert(e.fieldDeclaration):h.createVariableDeclaration(e.identifierNode,null,e.flags&262144,null,null,e.identifierNode.range));this.getterInstance=null;this.setterInstance=null;this.memoryOffset=-1;this.prototype=e,this.flags=e.flags,this.decoratorFlags=e.decoratorFlags,this.is(262144)&&kf(this.program,this)}get isField(){return this.prototype.isField}checkVisibility(e){let t=this.getterInstance,n=this.setterInstance;t&&n&&!t.visibilityNoLessThan(n)&&e.errorRelated(2808,t.identifierNode.range,n.identifierNode.range,t.identifierNode.text)}},Rs=class extends rr{constructor(r){super(15,"[]",r.internalName+"[]",r.program,r,r.program.makeNativeVariableDeclaration("[]"))}getGetterInstance(r){return this.parent.lookupOverload(1,r)}getSetterInstance(r){return this.parent.lookupOverload(2,r)}};function KE(i,r){if(!i)return!1;for(let e=0,t=i.length;e<t;++e)if(Nt.fromKind(i[e].decoratorKind)&r)return!0;return!1}var Us=class extends Ar{constructor(e,t,n,s=0,a=!1){super(a?8:6,e,Ke(e,t,n.is(262144)),t.program,t,n);this.instanceMembers=null;this.basePrototype=null;this.interfacePrototypes=null;this.constructorPrototype=null;this.operatorOverloadPrototypes=new Map;this.instances=null;this.extenders=new Set;this.implicitlyExtendsObject=!1;this.decoratorFlags=s}get typeParameterNodes(){return this.declaration.typeParameters}get extendsNode(){return this.declaration.extendsType}get implementsNodes(){return this.declaration.implementsTypes}get isBuiltinArray(){let e=this.program.arrayBufferViewInstance;return e&&this.extends(e.prototype)}extends(e){let t=this,n=new Set;do{if(n.has(t))break;if(n.add(t),t==e)return!0;t=t.basePrototype}while(t);return!1}addInstance(e,t){let n=t.declaration,s=this.instanceMembers;if(!s)this.instanceMembers=s=new Map;else if(s.has(e)){let a=assert(s.get(e)),l=Ff(a,t);if(!l)return zs(a.kind)?this.program.errorRelated(2300,t.identifierNode.range,a.declaration.name.range,t.identifierNode.text):this.program.error(2300,t.identifierNode.range,t.identifierNode.text),!1;t=l}return s.set(e,t),t.is(2)&&this.is(1048576)&&t.set(1048576),this.program.elementsByDeclaration.set(n,t),!0}getResolvedInstance(e){let t=this.instances;return t&&t.has(e)?t.get(e):null}setResolvedInstance(e,t){let n=this.instances;n?assert(!n.has(e)):this.instances=n=new Map,n.set(e,t)}},Er=class extends rr{constructor(e,t,n=null,s=!1){super(s?9:7,e,Ke(e,t.parent,t.is(262144)),t.program,t.parent,t.declaration);this.base=null;this.interfaces=null;this.contextualTypeArguments=null;this.nextMemoryOffset=0;this.alignLog2=0;this.constructorInstance=null;this.operatorOverloads=null;this.indexSignature=null;this._id=0;this.rttiFlags=0;this.wrappedType=null;this.extenders=null;this.implementers=null;this.didCheckFieldInitialization=!1;this.visitRef=0;this.prototype=t,this.flags=t.flags,this.decoratorFlags=t.decoratorFlags,this.typeArguments=n;let a=this.program,l=a.options.usizeType,o=new p(l.kind,l.flags&-129|256,l.size);if(o.classReference=this,this.setType(o),!this.hasDecorator(16)){let c=a.nextClassId++;this._id=c,a.managedClasses.set(c,this)}let u=t.typeParameterNodes;if(n){let c=n.length;if(!u||c!=u.length)throw new Error("type argument count mismatch");if(c){let f=this.contextualTypeArguments;f||(this.contextualTypeArguments=f=new Map);for(let _=0;_<c;++_)f.set(u[_].name.text,n[_])}}else if(u&&u.length>0)throw new Error("type argument count mismatch");kf(a,this)}get id(){return this._id}get isBuiltinArray(){return this.prototype.isBuiltinArray}get isArrayLike(){if(this.isBuiltinArray)return!0;let e=this.getMember("length");return e?(e.kind==11&&e.getterInstance!=null||e.kind==10&&e.getterPrototype!=null)&&(this.lookupOverload(1)!=null||this.lookupOverload(3)!=null):!1}get isInterface(){return this.kind==9}static leastUpperBound(e,t){if(e==t)return e;let n=new Set;for(n.add(e),n.add(t);;){let s=e.base,a=t.base;if(!s&&!a)return null;if(s){if(n.has(s))return s;n.add(e=s)}if(a){if(n.has(a))return a;n.add(t=a)}}}setBase(e){assert(!this.base),this.base=e;let t=e.contextualTypeArguments;if(t){let a=this.contextualTypeArguments;for(let l=Map_keys(t),o=0,u=l.length;o<u;++o){let c=unchecked(l[o]),f=assert(t.get(c));a?a.has(c)||a.set(c,f):(this.contextualTypeArguments=a=new Map,a.set(c,f))}}e.propagateExtenderUp(this);let n=this.extenders;if(n)for(let a=Set_values(n),l=0,o=a.length;l<o;++l){let u=a[l];e.propagateExtenderUp(u)}let s=e;do{let a=s.interfaces;if(a)for(let l=Set_values(a),o=0,u=l.length;o<u;++o){let c=l[o];this.propagateInterfaceDown(c)}s=s.base}while(s)}propagateExtenderUp(e){let t=this;do{let n=t.extenders;n||(t.extenders=n=new Set),n.add(e),t=t.base}while(t)}propagateInterfaceDown(e){let t=e,n=this.extenders;do{let s=t.implementers;if(s||(t.implementers=s=new Set),s.add(this),n)for(let a=Set_values(n),l=0,o=a.length;l<o;++l){let u=a[l];s.add(u)}t=t.base}while(t)}addInterface(e){let t=this.interfaces;t||(this.interfaces=t=new Set),t.add(e),this.propagateInterfaceDown(e)}isAssignableTo(e){return e.isInterface?this.isInterface?this==e||this.extends(e):this.implements(e):this.isInterface?e==this.program.objectInstance:this==e||this.extends(e)}hasSubclassAssignableTo(e){return e.isInterface?this.isInterface?this.hasImplementerImplementing(e):this.hasExtenderImplementing(e):this.isInterface?this.hasImplementer(e):this.hasExtender(e)}lookupOverload(e,t=!1){if(t)switch(e){case 1:{let s=this.lookupOverload(3);if(s)return s;break}case 2:{let s=this.lookupOverload(4);if(s)return s;break}default:assert(!1)}let n=this;do{let s=n.operatorOverloads;if(s!=null&&s.has(e))return assert(s.get(e));n=n.base}while(n);return null}getMethod(e,t=null){let n=this.getMember(e);return n&&n.kind==4?this.program.resolver.resolveFunction(n,t):null}offsetof(e){let t=assert(this.getMember(e));assert(t.kind==10);let s=t.instance;return s?(assert(s.isField&&s.memoryOffset>=0),s.memoryOffset):0}createBuffer(e=0){let t=this.program,n=this.nextMemoryOffset+e,s=t.computeBlockSize(n,!0),a=new Uint8Array(t.blockOverhead+s),l=t.OBJECTInstance;return l.writeField("mmInfo",s,a,0),l.writeField("gcInfo",0,a,0),l.writeField("gcInfo2",0,a,0),l.writeField("rtId",this.id,a,0),l.writeField("rtSize",n,a,0),a}writeField(e,t,n,s=this.program.totalOverhead){let a=this.getMember(e);if(a&&a.kind==10){let o=a.instance;if(!o)return 0;assert(o.isField&&o.memoryOffset>=0);let u=s+o.memoryOffset,c=o.type.kind;switch(c){case 1:case 6:return assert(!i64_is(t)),ye(i32(t),n,u),1;case 2:case 7:return assert(!i64_is(t)),gr(i32(t),n,u),2;case 3:case 8:return assert(!i64_is(t)),Se(i32(t),n,u),4;case 5:case 10:return this.program.options.isWasm64?(i64_is(t)?qi(t,n,u):nl(i32(t),n,u,c==10),8):(i64_is(t)?Lp(t,n,u,c==10):Se(i32(t),n,u),4);case 4:case 9:return i64_is(t)?qi(t,n,u):nl(i32(t),n,u,c==9),8;case 11:return assert(!i64_is(t)),qr(f32(t),n,u),4;case 12:return assert(!i64_is(t)),Wr(f64(t),n,u),8}}return assert(!1),0}extendsPrototype(e){return this.prototype.extends(e)}getTypeArgumentsTo(e){let t=this;do{if(t.prototype==e)return t.typeArguments;t=t.base}while(t);return null}getArrayValueType(){let e=this,t=this.program,n=t.arrayPrototype;if(this.extendsPrototype(n))return this.getTypeArgumentsTo(n)[0];let s=t.staticArrayPrototype;if(this.extendsPrototype(s))return this.getTypeArgumentsTo(s)[0];let a=t.arrayBufferViewInstance;for(;e.base!=a;)e=assert(e.base);let l=e.prototype;switch(l.name.charCodeAt(0)){case 70:{if(l==t.float32ArrayPrototype)return p.f32;if(l==t.float64ArrayPrototype)return p.f64;break}case 73:{if(l==t.int8ArrayPrototype)return p.i8;if(l==t.int16ArrayPrototype)return p.i16;if(l==t.int32ArrayPrototype)return p.i32;if(l==t.int64ArrayPrototype)return p.i64;break}case 85:{if(l==t.uint8ArrayPrototype)return p.u8;if(l==t.uint8ClampedArrayPrototype)return p.u8;if(l==t.uint16ArrayPrototype)return p.u16;if(l==t.uint32ArrayPrototype)return p.u32;if(l==t.uint64ArrayPrototype)return p.u64;break}}return assert(!1),p.void}get isPointerfree(){let e=this.program,t=this.members;if(t){for(let n=Map_values(t),s=0,a=n.length;s<a;++s){let l=unchecked(n[s]);if(l.kind==10){let u=l.instance;if(!u)continue;if(u.isField&&u.type.isManaged)return!1}}if(t.has(N.visit)){let n=this.prototype;if(n==e.arrayPrototype||n==e.staticArrayPrototype||n==e.setPrototype||n==e.mapPrototype){let s=assert(this.getTypeArgumentsTo(n));for(let a=0,l=s.length;a<l;++a)if(s[a].isManaged)return!1;return!0}return!1}}return!0}extends(e){return e.hasExtender(this)}hasExtender(e){let t=this.extenders;return t!=null&&t.has(e)}hasExtenderImplementing(e){let t=this.extenders;if(t){for(let n=Set_values(t),s=0,a=n.length;s<a;++s)if(n[s].implements(e))return!0}return!1}implements(e){return e.hasImplementer(this)}hasImplementer(e){let t=this.implementers;return t!=null&&t.has(e)}hasImplementerImplementing(e){let t=this.implementers;if(t){for(let n=Set_values(t),s=0,a=n.length;s<a;++s)if(n[s].implements(e))return!0}return!1}},Jo=class extends Us{constructor(r,e,t,n){super(r,e,t,n,!0)}},Cs=class extends Er{constructor(r,e,t=null){super(r,e,t,!0)}};function kf(i,r){assert(!i.instancesByName.has(r.internalName)),i.instancesByName.set(r.internalName,r)}function Ff(i,r){if(assert(i.program==r.program),r.members)return null;let e=null;switch(i.kind){case 4:{switch(r.kind){case 12:{tr(r,i),e=i;break}case 14:{i.shadowType||(i.shadowType=r,tr(r,i),e=i);break}}break}case 6:case 2:{if(r.kind==12){tr(r,i),e=i;break}break}case 12:{switch(r.kind){case 2:case 6:case 4:{tr(i,r),e=r;break}case 12:{tr(r,i),e=i;break}case 14:{i.shadowType||(i.shadowType=r,tr(r,i),e=i);break}}break}case 0:{r.kind==14&&(i.shadowType||(i.shadowType=r,tr(r,i),e=i));break}case 14:{switch(r.kind){case 0:case 4:case 12:{r.shadowType||(r.shadowType=i,tr(i,r),e=r);break}}break}}if(e){let t=i.is(2)||i.hasDecorator(1),n=r.is(2)||r.hasDecorator(1);t!=n&&i.program.error(2395,e.identifierNode.range,e.identifierNode.text)}return e}function tr(i,r){let e=i.members;if(e){let t=r.members;t||(r.members=t=new Map);for(let n=Map_keys(e),s=0,a=n.length;s<a;++s){let l=unchecked(n[s]),o=assert(e.get(l));t.set(l,o)}}}function Ke(i,r,e,t=!1){switch(r.kind){case 13:return t?i:r.internalName+mt+i;case 5:return t?i:(assert(!e),r.internalName+Bp+i);case 10:case 11:r=r.parent;default:return Ke(r.name,r.parent,r.is(262144),t)+(e?Pp:es)+i}}var Ef=[];function nx(i){for(let r=Ef.length;r<=i;++r)Ef.push(`$${r}`);return Ef[i]}var Sf=class{constructor(r,e,t,n){this.index=r;this.parameterName=e;this.parameterType=t;this.fieldLocals=n}};var xr=(U=>(U[U.Bool=0]="Bool",U[U.I8=1]="I8",U[U.I16=2]="I16",U[U.I32=3]="I32",U[U.I64=4]="I64",U[U.Isize=5]="Isize",U[U.U8=6]="U8",U[U.U16=7]="U16",U[U.U32=8]="U32",U[U.U64=9]="U64",U[U.Usize=10]="Usize",U[U.F32=11]="F32",U[U.F64=12]="F64",U[U.V128=13]="V128",U[U.FixedArray=14]="FixedArray",U[U.Extern=15]="Extern",U[U.Func=16]="Func",U[U.Any=17]="Any",U[U.Eq=18]="Eq",U[U.Struct=19]="Struct",U[U.Array=20]="Array",U[U.I31=21]="I31",U[U.String=22]="String",U[U.StringviewWTF8=23]="StringviewWTF8",U[U.StringviewWTF16=24]="StringviewWTF16",U[U.StringviewIter=25]="StringviewIter",U[U.Void=26]="Void",U))(xr||{}),Bt=(y=>(y[y.None=0]="None",y[y.Signed=1]="Signed",y[y.Unsigned=2]="Unsigned",y[y.Integer=4]="Integer",y[y.Float=8]="Float",y[y.Varying=16]="Varying",y[y.Short=32]="Short",y[y.Long=64]="Long",y[y.Value=128]="Value",y[y.Reference=256]="Reference",y[y.Nullable=512]="Nullable",y[y.Vector=1024]="Vector",y[y.External=2048]="External",y[y.Class=4096]="Class",y[y.Function=8192]="Function",y))(Bt||{}),p=class i{constructor(r,e,t){this.classReference=null;this.signatureReference=null;this.fixedElementType=null;this.fixedLength=0;this.fixedAlignLog2=0;this._nonNullableType=null;this._nullableType=null;this.ref=0;this.kind=r,this.flags=e,this.size=t,e&512?this._nullableType=this:this._nonNullableType=this}get intType(){if(this==i.auto)return this;switch(this.kind){case 0:case 3:case 11:return i.i32;case 1:return i.i8;case 2:return i.i16;case 12:case 4:return i.i64;case 5:return this.size==64?i.isize64:i.isize32;case 6:return i.u8;case 7:return i.u16;case 8:return i.u32;case 9:return i.u64;case 10:return this.size==64?i.usize64:i.usize32;default:return i.i32}}get exceptVoid(){return this.kind==26?i.auto:this}get byteSize(){return this.size+7>>>3}get alignLog2(){return this.kind==14?this.fixedAlignLog2:31-clz(this.byteSize)}get isValue(){return this.is(128)}get isIntegerValue(){return this.is(132)}get isShortIntegerValue(){return this.is(164)}get isLongIntegerValue(){return this.is(196)}get isSignedIntegerValue(){return this.is(133)}get isUnsignedIntegerValue(){return this.is(134)}get isVaryingIntegerValue(){return this.is(148)}get isIntegerInclReference(){return this.is(4)}get isFloatValue(){return this.is(136)}get isNumericValue(){return this.isIntegerValue||this.isFloatValue}get isBooleanValue(){return this==i.bool}get isVectorValue(){return this.is(1152)}get isReference(){return this.is(256)}get isNullableReference(){return this.is(768)}get isInternalReference(){return this.is(260)}get isExternalReference(){return this.is(2304)}get isNullableExternalReference(){return this.is(2816)}getClass(){return this.isInternalReference?this.classReference:null}get isClass(){return this.getClass()!=null}getClassOrWrapper(r){let e=this.getClass();if(e)return e;{let t=this.getSignature();if(t){let n=t.type,s=assert(r.resolver.resolveClass(r.functionPrototype,[n]));return s.wrappedType=n,s}else{let n=r.wrapperClasses;if(n.has(this))return assert(n.get(this))}}return null}lookupOverload(r,e){let t=this.getClassOrWrapper(e);return t?t.lookupOverload(r):null}getSignature(){return this.isInternalReference?this.signatureReference:null}get isFunction(){return this.getSignature()!=null}get isManaged(){if(this.isInternalReference){let r=this.classReference;return r?!r.hasDecorator(16):this.signatureReference!=null}return!1}get isUnmanaged(){let r=this.classReference;return r!=null&&r.hasDecorator(16)}get isMemory(){switch(this.kind){case 0:case 1:case 2:case 3:case 4:case 5:case 6:case 7:case 8:case 9:case 10:case 11:case 12:case 13:return!0}return!1}get nonNullableType(){return assert(this._nonNullableType)}get nullableType(){return this.isReference?this.asNullable():null}computeSmallIntegerShift(r){return r.size-this.size}computeSmallIntegerMask(r){let e=this.size;return this.is(2)||(e-=1),-1>>>r.size-e}is(r){return(this.flags&r)==r}isAny(r){return(this.flags&r)!=0}asNullable(){assert(this.isReference);let r=this._nullableType;return r||(assert(!this.isNullableReference),this._nullableType=r=new i(this.kind,this.flags|512,this.size),r.classReference=this.classReference,r.signatureReference=this.signatureReference,r._nonNullableType=this),r}toUnsigned(){switch(this.kind){case 1:return i.u8;case 2:return i.u16;case 3:return i.u32;case 4:return i.u64;case 5:return this.size==64?i.usize64:i.usize32}return this}equals(r){if(this.kind!=r.kind)return!1;if(this.kind==14){let e=this.fixedElementType,t=r.fixedElementType;return e!=null&&t!=null&&this.fixedLength==r.fixedLength&&e.equals(t)}if(this.isReference){let e=this.signatureReference,t=r.signatureReference;return this.classReference==r.classReference&&e==t&&this.isNullableReference==r.isNullableReference}return!0}isAssignableTo(r,e=!1){let t,n,s,a;if(this.isReference){if(r.isReference&&(!this.isNullableReference||r.isNullableReference)){if(t=this.getClass()){if(n=r.getClass())return t.isAssignableTo(n)}else if(s=this.getSignature()){if(a=r.getSignature())return s.isAssignableTo(a)}else if(this.isExternalReference&&(this.kind==r.kind||r.kind==17&&this.kind!=15))return!0}}else if(!r.isReference){if(this.isIntegerValue)if(r.isIntegerValue){if(!e||this.isBooleanValue||this.isSignedIntegerValue==r.isSignedIntegerValue)return this.size<=r.size}else{if(r.kind==11)return this.size<=23;if(r.kind==12)return this.size<=52}else if(this.isFloatValue){if(r.isFloatValue)return this.size<=r.size}else if(this.isVectorValue&&r.isVectorValue)return this.size==r.size}return!1}isStrictlyAssignableTo(r,e=!1){return this.isReference?this.isAssignableTo(r):r.isReference?!1:this.isIntegerValue?r.isIntegerValue&&r.size==this.size&&(!e||this.isSignedIntegerValue==r.isSignedIntegerValue):this.kind==r.kind}hasSubtypeAssignableTo(r){let e=this.getClass(),t=r.getClass();return!e||!t?!1:e.hasSubclassAssignableTo(t)}isChangeableTo(r){if(this.is(4)&&r.is(4)){let e=this.size;return e==r.size&&(e>=32||this.is(1)==r.is(1))}return this.kind==r.kind}canExtendOrImplement(r){let e=this.getClass(),t=r.getClass();if(!e||!t||this.isManaged!=r.isManaged)return!1;if(this.isInternalReference){if(!r.isInternalReference)return!1}else if(this.isExternalReference){if(!r.isExternalReference)return!1}else return!1;return!0}static commonType(r,e,t=i.auto,n=!1){if(r.isInternalReference){if(!e.isInternalReference)return null;if(t!=i.void&&r.isAssignableTo(t)&&e.isAssignableTo(t))return t;let s=r.getClass(),a=e.getClass();if(s&&a){let l=Er.leastUpperBound(s,a);if(l)return r.is(512)||e.is(512)?l.type.asNullable():l.type}}else if(e.isInternalReference)return null;return e.isAssignableTo(r,n)?r:r.isAssignableTo(e,n)?e:null}kindToString(){switch(this.kind){case 0:return N.bool;case 1:return N.i8;case 2:return N.i16;case 3:return N.i32;case 4:return N.i64;case 5:return N.isize;case 6:return N.u8;case 7:return N.u16;case 8:return N.u32;case 9:return N.u64;case 10:return N.usize;case 11:return N.f32;case 12:return N.f64;case 13:return N.v128;case 16:return N.ref_func;case 15:return N.ref_extern;case 17:return N.ref_any;case 18:return N.ref_eq;case 19:return N.ref_struct;case 20:return N.ref_array;case 21:return N.ref_i31;case 22:return N.ref_string;case 23:return N.ref_stringview_wtf8;case 24:return N.ref_stringview_wtf16;case 25:return N.ref_stringview_iter;case 14:{let r=this.fixedElementType;return(r?r.toString():"?")+"["+this.fixedLength.toString()+"]"}default:assert(!1);case 26:return N.void_}}toString(r=!1){let e=r?"|null":" | null";if(this.isReference){let t=this.getClass();if(t)return this.isNullableReference?t.internalName+e:t.internalName;{let n=this.getSignature();return n?this.isNullableReference?`(${n.toString(r)})${e}`:n.toString(r):this.isNullableReference?`${this.kindToString()}${e}`:this.kindToString()}}return this==i.auto?"auto":this.kindToString()}toRef(){switch(this.kind){case 0:case 1:case 2:case 3:case 6:case 7:case 8:return B.I32;case 5:case 10:if(this.size!=64)return B.I32;case 4:case 9:return B.I64;case 11:return B.F32;case 12:return B.F64;case 13:return B.V128;case 16:return xe(Ie.Func,this.is(512));case 15:return xe(Ie.Extern,this.is(512));case 17:return xe(Ie.Any,this.is(512));case 18:return xe(Ie.Eq,this.is(512));case 19:return xe(Ie.Struct,this.is(512));case 20:return xe(Ie.Array,this.is(512));case 21:return xe(Ie.I31,this.is(512));case 22:return xe(Ie.String,this.is(512));case 26:return B.None}return assert(!1),Is(this)}static{this.i8=new i(1,165,8)}static{this.i16=new i(2,165,16)}static{this.i32=new i(3,133,32)}static{this.i64=new i(4,197,64)}static{this.isize32=new i(5,149,32)}static{this.isize64=new i(5,213,64)}static{this.u8=new i(6,166,8)}static{this.u16=new i(7,166,16)}static{this.u32=new i(8,134,32)}static{this.u64=new i(9,198,64)}static{this.usize32=new i(10,150,32)}static{this.usize64=new i(10,214,64)}static{this.bool=new i(0,166,1)}static{this.f32=new i(11,137,32)}static{this._fixedArrays=null}static fixedArray(r,e){let t=r.toString()+"["+e.toString()+"]",n=i._fixedArrays;if(!n){let l=new Map;i._fixedArrays=l,n=l}let s=te(n,t);if(s)return s;let a=new i(14,0,r.byteSize*e<<3);return a.fixedElementType=r,a.fixedLength=e,a.fixedAlignLog2=r.alignLog2,n.set(t,a),a}get fixedArrayElementType(){return assert(this.fixedElementType)}static{this.f64=new i(12,201,64)}static{this.v128=new i(13,1152,128)}static{this.func=new i(16,2304,0)}static{this.extern=new i(15,2304,0)}static{this.any=new i(17,2304,0)}static{this.eq=new i(18,2304,0)}static{this.struct=new i(19,2304,0)}static{this.array=new i(20,2304,0)}static{this.i31=new i(21,2304,0)}static{this.string=new i(22,2304,0)}static{this.stringview_wtf8=new i(23,2304,0)}static{this.stringview_wtf16=new i(24,2304,0)}static{this.stringview_iter=new i(25,2304,0)}static{this.void=new i(26,0,0)}static{this.auto=new i(i.i32.kind,i.i32.flags,i.i32.size)}};function an(i){let r=i.length,e=new Array(r);for(let t=0;t<r;++t)unchecked(e[t]=i[t].toRef());return e}function Ho(i){let r=i.length;if(!r)return"";let e=new Array(r);for(let t=0;t<r;++t)unchecked(e[t]=i[t].toString(!0));return e.join(",")}var sx=(n=>(n[n.None=0]="None",n[n.Inline=1]="Inline",n[n.Managed=2]="Managed",n[n.Unmanaged=3]="Unmanaged",n))(sx||{});function HE(i){if(i==null)return"";let r=i.length;if(!r)return"";let e=new Array(r);for(let t=0;t<r;++t){let n=unchecked(i[t]);unchecked(e[t]=n==1?"i":n==2?"m":n==3?"u":"-")}return"!mm:"+e.join("")+":"}var Te=class i{constructor(r,e,t,n,s,a,l,o,u,c,f,_){this.program=r;this.parameterTypes=e;this.returnType=t;this.thisType=n;this.requiredParameters=s;this.hasRest=a;this.sretDisabled=l;this.externalBoundary=o;this.exportByValParams=u;this.memoryModels=c;this.id=f;this.type=_}static create(r,e=[],t=p.void,n=null,s=e?e.length:0,a=!1,l=!1,o=!1,u=!1,c=null){let f=r.options.usizeType,_=new p(f.kind,f.flags&-129|256,f.size),d=r.uniqueSignatures,g=r.nextSignatureId,y=new i(r,e,t,n,s,a,l,o,u,c,g,_),E=(l?"!sret-disabled:":"")+(o?"!external-boundary:":"")+(u?"!export-byval:":"")+HE(c)+y.toString();if(d.has(E)){let A=assert(d.get(E));return assert(y.equals(A)),A}return r.nextSignatureId=g+1,_.signatureReference=y,d.set(E,y),y}memoryModelOf(r){let e=this.memoryModels;return e==null?0:unchecked(e[r])}static wasmParamCountOf(r){let e=r.classReference;if(e==null||!e.hasDecorator(4096))return 1;let t=e.members;if(!t)return 1;let n=0;for(let s=Map_values(t),a=0,l=s.length;a<l;++a){let o=unchecked(s[a]);if(o.kind!=10)continue;let u=o.instance;u!=null&&u.isField&&++n}return n>0?n:1}wasmParamSlotCountOf(r){return this.isByValPointerParam(r)?1:i.wasmParamCountOf(unchecked(this.parameterTypes[r]))}crossesByValueParam(r){return i.isInlineStructRef(unchecked(this.parameterTypes[r]))?!0:this.memoryModelOf(r)==1}isExternalPointerParam(r){return this.externalBoundary?this.crossesByValueParam(r):!1}isExportByValParam(r){return this.exportByValParams?this.crossesByValueParam(r):!1}isByValPointerParam(r){return this.isExternalPointerParam(r)||this.isExportByValParam(r)}get byValPointerParams(){return this.externalBoundary||this.exportByValParams}static isInlineStructRef(r){let e=r.classReference;return e!=null&&e.hasDecorator(4096)}static fieldCountOf(r){let e=r.classReference;if(e==null)return 0;let t=e.members;if(!t)return 0;let n=0;for(let s=Map_values(t),a=0,l=s.length;a<l;++a){let o=unchecked(s[a]);if(o.kind!=10)continue;let u=o.instance;u!=null&&u.isField&&++n}return n}get hasHiddenDestParam(){if(this.sretDisabled)return!1;let r=this.returnType.classReference;return r!=null&&r.hasDecorator(4096)}wasmParamStartOf(r){let e=this.parameterTypes,t=this.hasHiddenDestParam?1:0;for(let n=0;n<r&&n<e.length;++n)t+=this.wasmParamSlotCountOf(n);return t}wasmParamCount(){let r=this.parameterTypes,e=this.hasHiddenDestParam?1:0;for(let t=0,n=r.length;t<n;++t)e+=this.wasmParamSlotCountOf(t);return e}sourceIndexOf(r){let e=this.parameterTypes,t=this.hasHiddenDestParam?1:0;if(r<t)return-1;for(let n=0,s=e.length;n<s;++n){let a=this.wasmParamSlotCountOf(n);if(r<t+a)return n;t+=a}return-1}get paramRefs(){let r=this.thisType,e=this.parameterTypes,t=e.length,n=this.hasHiddenDestParam;if(!t&&!n)return r?r.toRef():B.None;let s=this.wasmParamCount(),a=new Array(r?1+s:s),l=0;r&&unchecked(a[l++]=r.toRef()),n&&unchecked(a[l++]=B.I32);for(let o=0;o<t;++o){let u=unchecked(e[o]);if(this.isByValPointerParam(o))unchecked(a[l++]=B.I32);else if(i.isInlineStructRef(u)){let c=assert(u.classReference),f=assert(c.members);for(let _=Map_values(f),d=0,g=_.length;d<g;++d){let y=unchecked(_[d]);if(y.kind!=10)continue;let E=y.instance;E==null||!E.isField||unchecked(a[l++]=E.type.toRef())}}else unchecked(a[l++]=u.toRef())}return ft(a)}get resultRefs(){return this.hasHiddenDestParam?B.None:this.returnType.toRef()}equals(r){let e=this.thisType,t=r.thisType;if(e){if(!t||!e.equals(t))return!1}else if(t)return!1;if(this.hasRest!=r.hasRest||this.sretDisabled!=r.sretDisabled||this.externalBoundary!=r.externalBoundary||this.exportByValParams!=r.exportByValParams)return!1;let n=this.memoryModels,s=r.memoryModels;if(n==null!=(s==null))return!1;if(n!=null){let u=assert(s),c=n.length;if(c!=u.length)return!1;for(let f=0;f<c;++f)if(unchecked(n[f])!=unchecked(u[f]))return!1}if(!this.returnType.equals(r.returnType))return!1;let a=this.parameterTypes,l=r.parameterTypes,o=a.length;if(o!=l.length)return!1;for(let u=0;u<o;++u){let c=unchecked(a[u]),f=unchecked(l[u]);if(!c.equals(f))return!1}return!0}isAssignableTo(r,e=!1){let t=this.thisType,n=r.thisType;if(t&&n){if(!(e?t.canExtendOrImplement(n):n.isAssignableTo(t)))return!1}else if(t||n)return!1;if(this.hasRest!=r.hasRest)return!1;let s=this.returnType,a=r.returnType;if(!(s==a||s.isAssignableTo(a)))return!1;let l=this.parameterTypes,o=r.parameterTypes,u=l.length;if(u!=o.length)return!1;for(let c=0;c<u;++c){let f=unchecked(l[c]),_=unchecked(o[c]);if(f!=_)return!1}return!0}get hasManagedOperands(){let r=this.thisType;if(r&&r.isManaged)return!0;let e=this.parameterTypes;for(let t=0,n=e.length;t<n;++t)if(unchecked(e[t]).isManaged)return!0;return!1}getManagedOperandIndices(){let r=new Array,e=0,t=this.thisType;t&&(t.isManaged&&r.push(e),++e);let n=this.parameterTypes;for(let s=0,a=n.length;s<a;++s)unchecked(n[s]).isManaged&&r.push(e),++e;return r}get hasVectorValueOperands(){let r=this.thisType;if(r&&r.isVectorValue)return!0;let e=this.parameterTypes;for(let t=0,n=e.length;t<n;++t)if(unchecked(e[t]).isVectorValue)return!0;return!1}getVectorValueOperandIndices(){let r=new Array,e=0,t=this.thisType;t&&(t.isVectorValue&&r.push(e),++e);let n=this.parameterTypes;for(let s=0,a=n.length;s<a;++s)unchecked(n[s]).isVectorValue&&r.push(e),++e;return r}toString(r=!1){let e=new Array;e.push(r?"%28":"(");let t=0,n=this.thisType;n&&(e.push(r?"this:":"this: "),e.push(n.toString(r)),t=1);let s=this.parameterTypes,a=s.length;if(a){let l=this.requiredParameters,o=this.hasRest?a-1:-1;for(let u=0;u<a;++u,++t)t&&e.push(r?"%2C":", "),u==o&&e.push("..."),e.push(s[u].toString(r)),u>=l&&u!=o&&e.push("?")}return e.push(r?"%29=>":") => "),e.push(this.returnType.toString(r)),e.join("")}clone(r=this.requiredParameters,e=this.hasRest){let t=this.parameterTypes,n=t.length,s=new Array(n);for(let a=0;a<n;++a)unchecked(s[a]=t[a]);return i.create(this.program,s,this.returnType,this.thisType,r,e,this.sretDisabled,this.externalBoundary,this.exportByValParams,this.memoryModels)}};var m;(b=>(b.start="~start",b.started="~started",b.argumentsLength="~argumentsLength",b.setArgumentsLength="~setArgumentsLength",b.env="~env",b.abort="~lib/builtins/abort",b.trace="~lib/builtins/trace",b.seed="~lib/builtins/seed",b.isBoolean="~lib/builtins/isBoolean",b.isInteger="~lib/builtins/isInteger",b.isSigned="~lib/builtins/isSigned",b.isFloat="~lib/builtins/isFloat",b.isVector="~lib/builtins/isVector",b.isReference="~lib/builtins/isReference",b.isString="~lib/builtins/isString",b.isArray="~lib/builtins/isArray",b.isArrayLike="~lib/builtins/isArrayLike",b.isFunction="~lib/builtins/isFunction",b.isNullable="~lib/builtins/isNullable",b.isDefined="~lib/builtins/isDefined",b.isConstant="~lib/builtins/isConstant",b.isManaged="~lib/builtins/isManaged",b.isVoid="~lib/builtins/isVoid",b.add="~lib/builtins/add",b.sub="~lib/builtins/sub",b.mul="~lib/builtins/mul",b.div="~lib/builtins/div",b.clz="~lib/builtins/clz",b.ctz="~lib/builtins/ctz",b.popcnt="~lib/builtins/popcnt",b.rotl="~lib/builtins/rotl",b.rotr="~lib/builtins/rotr",b.abs="~lib/builtins/abs",b.max="~lib/builtins/max",b.min="~lib/builtins/min",b.ceil="~lib/builtins/ceil",b.floor="~lib/builtins/floor",b.copysign="~lib/builtins/copysign",b.nearest="~lib/builtins/nearest",b.reinterpret="~lib/builtins/reinterpret",b.sqrt="~lib/builtins/sqrt",b.trunc="~lib/builtins/trunc",b.eq="~lib/builtins/eq",b.ne="~lib/builtins/ne",b.rem="~lib/builtins/rem",b.load="~lib/builtins/load",b.store="~lib/builtins/store",b.atomic_load="~lib/builtins/atomic.load",b.atomic_store="~lib/builtins/atomic.store",b.atomic_add="~lib/builtins/atomic.add",b.atomic_sub="~lib/builtins/atomic.sub",b.atomic_and="~lib/builtins/atomic.and",b.atomic_or="~lib/builtins/atomic.or",b.atomic_xor="~lib/builtins/atomic.xor",b.atomic_xchg="~lib/builtins/atomic.xchg",b.atomic_cmpxchg="~lib/builtins/atomic.cmpxchg",b.atomic_wait="~lib/builtins/atomic.wait",b.atomic_notify="~lib/builtins/atomic.notify",b.atomic_fence="~lib/builtins/atomic.fence",b.sizeof="~lib/builtins/sizeof",b.alignof="~lib/builtins/alignof",b.offsetof="~lib/builtins/offsetof",b.abiNameOf="~lib/builtins/abiNameOf",b.nameof="~lib/builtins/nameof",b.lengthof="~lib/builtins/lengthof",b.select="~lib/builtins/select",b.unreachable="~lib/builtins/unreachable",b.changetype="~lib/builtins/changetype",b.assert="~lib/builtins/assert",b.call_indirect="~lib/builtins/call_indirect",b.unchecked="~lib/builtins/unchecked",b.inline_always="~lib/builtins/inline.always",b.instantiate="~lib/builtins/instantiate",b.idof="~lib/builtins/idof",b.i8="~lib/builtins/i8",b.i16="~lib/builtins/i16",b.i32="~lib/builtins/i32",b.i64="~lib/builtins/i64",b.isize="~lib/builtins/isize",b.u8="~lib/builtins/u8",b.u16="~lib/builtins/u16",b.u32="~lib/builtins/u32",b.u64="~lib/builtins/u64",b.usize="~lib/builtins/usize",b.bool="~lib/builtins/bool",b.f32="~lib/builtins/f32",b.f64="~lib/builtins/f64",b.v128="~lib/builtins/v128",b.i32_clz="~lib/builtins/i32.clz",b.i64_clz="~lib/builtins/i64.clz",b.i32_ctz="~lib/builtins/i32.ctz",b.i64_ctz="~lib/builtins/i64.ctz",b.i32_popcnt="~lib/builtins/i32.popcnt",b.i64_popcnt="~lib/builtins/i64.popcnt",b.i32_rotl="~lib/builtins/i32.rotl",b.i64_rotl="~lib/builtins/i64.rotl",b.i32_rotr="~lib/builtins/i32.rotr",b.i64_rotr="~lib/builtins/i64.rotr",b.f32_abs="~lib/builtins/f32.abs",b.f64_abs="~lib/builtins/f64.abs",b.f32_max="~lib/builtins/f32.max",b.f64_max="~lib/builtins/f64.max",b.f32_min="~lib/builtins/f32.min",b.f64_min="~lib/builtins/f64.min",b.f32_ceil="~lib/builtins/f32.ceil",b.f64_ceil="~lib/builtins/f64.ceil",b.f32_floor="~lib/builtins/f32.floor",b.f64_floor="~lib/builtins/f64.floor",b.f32_copysign="~lib/builtins/f32.copysign",b.f64_copysign="~lib/builtins/f64.copysign",b.f32_nearest="~lib/builtins/f32.nearest",b.f64_nearest="~lib/builtins/f64.nearest",b.i32_reinterpret_f32="~lib/builtins/i32.reinterpret_f32",b.i64_reinterpret_f64="~lib/builtins/i64.reinterpret_f64",b.f32_reinterpret_i32="~lib/builtins/f32.reinterpret_i32",b.f64_reinterpret_i64="~lib/builtins/f64.reinterpret_i64",b.f32_sqrt="~lib/builtins/f32.sqrt",b.f64_sqrt="~lib/builtins/f64.sqrt",b.f32_trunc="~lib/builtins/f32.trunc",b.f64_trunc="~lib/builtins/f64.trunc",b.i32_add="~lib/builtins/i32.add",b.i64_add="~lib/builtins/i64.add",b.f32_add="~lib/builtins/f32.add",b.f64_add="~lib/builtins/f64.add",b.i32_sub="~lib/builtins/i32.sub",b.i64_sub="~lib/builtins/i64.sub",b.f32_sub="~lib/builtins/f32.sub",b.f64_sub="~lib/builtins/f64.sub",b.i32_mul="~lib/builtins/i32.mul",b.i64_mul="~lib/builtins/i64.mul",b.f32_mul="~lib/builtins/f32.mul",b.f64_mul="~lib/builtins/f64.mul",b.i32_div_s="~lib/builtins/i32.div_s",b.i32_div_u="~lib/builtins/i32.div_u",b.i64_div_s="~lib/builtins/i64.div_s",b.i64_div_u="~lib/builtins/i64.div_u",b.f32_div="~lib/builtins/f32.div",b.f64_div="~lib/builtins/f64.div",b.i32_eq="~lib/builtins/i32.eq",b.i64_eq="~lib/builtins/i64.eq",b.f32_eq="~lib/builtins/f32.eq",b.f64_eq="~lib/builtins/f64.eq",b.i32_ne="~lib/builtins/i32.ne",b.i64_ne="~lib/builtins/i64.ne",b.f32_ne="~lib/builtins/f32.ne",b.f64_ne="~lib/builtins/f64.ne",b.i32_rem_s="~lib/builtins/i32.rem_s",b.i32_rem_u="~lib/builtins/i32.rem_u",b.i64_rem_s="~lib/builtins/i64.rem_s",b.i64_rem_u="~lib/builtins/i64.rem_u",b.i32_load8_s="~lib/builtins/i32.load8_s",b.i32_load8_u="~lib/builtins/i32.load8_u",b.i32_load16_s="~lib/builtins/i32.load16_s",b.i32_load16_u="~lib/builtins/i32.load16_u",b.i32_load="~lib/builtins/i32.load",b.i64_load8_s="~lib/builtins/i64.load8_s",b.i64_load8_u="~lib/builtins/i64.load8_u",b.i64_load16_s="~lib/builtins/i64.load16_s",b.i64_load16_u="~lib/builtins/i64.load16_u",b.i64_load32_s="~lib/builtins/i64.load32_s",b.i64_load32_u="~lib/builtins/i64.load32_u",b.i64_load="~lib/builtins/i64.load",b.f32_load="~lib/builtins/f32.load",b.f64_load="~lib/builtins/f64.load",b.i32_store8="~lib/builtins/i32.store8",b.i32_store16="~lib/builtins/i32.store16",b.i32_store="~lib/builtins/i32.store",b.i64_store8="~lib/builtins/i64.store8",b.i64_store16="~lib/builtins/i64.store16",b.i64_store32="~lib/builtins/i64.store32",b.i64_store="~lib/builtins/i64.store",b.f32_store="~lib/builtins/f32.store",b.f64_store="~lib/builtins/f64.store",b.i32_atomic_load8_u="~lib/builtins/i32.atomic.load8_u",b.i32_atomic_load16_u="~lib/builtins/i32.atomic.load16_u",b.i32_atomic_load="~lib/builtins/i32.atomic.load",b.i64_atomic_load8_u="~lib/builtins/i64.atomic.load8_u",b.i64_atomic_load16_u="~lib/builtins/i64.atomic.load16_u",b.i64_atomic_load32_u="~lib/builtins/i64.atomic.load32_u",b.i64_atomic_load="~lib/builtins/i64.atomic.load",b.i32_atomic_store8="~lib/builtins/i32.atomic.store8",b.i32_atomic_store16="~lib/builtins/i32.atomic.store16",b.i32_atomic_store="~lib/builtins/i32.atomic.store",b.i64_atomic_store8="~lib/builtins/i64.atomic.store8",b.i64_atomic_store16="~lib/builtins/i64.atomic.store16",b.i64_atomic_store32="~lib/builtins/i64.atomic.store32",b.i64_atomic_store="~lib/builtins/i64.atomic.store",b.i32_atomic_rmw8_add_u="~lib/builtins/i32.atomic.rmw8.add_u",b.i32_atomic_rmw16_add_u="~lib/builtins/i32.atomic.rmw16.add_u",b.i32_atomic_rmw_add="~lib/builtins/i32.atomic.rmw.add",b.i64_atomic_rmw8_add_u="~lib/builtins/i64.atomic.rmw8.add_u",b.i64_atomic_rmw16_add_u="~lib/builtins/i64.atomic.rmw16.add_u",b.i64_atomic_rmw32_add_u="~lib/builtins/i64.atomic.rmw32.add_u",b.i64_atomic_rmw_add="~lib/builtins/i64.atomic.rmw.add",b.i32_atomic_rmw8_sub_u="~lib/builtins/i32.atomic.rmw8.sub_u",b.i32_atomic_rmw16_sub_u="~lib/builtins/i32.atomic.rmw16.sub_u",b.i32_atomic_rmw_sub="~lib/builtins/i32.atomic.rmw.sub",b.i64_atomic_rmw8_sub_u="~lib/builtins/i64.atomic.rmw8.sub_u",b.i64_atomic_rmw16_sub_u="~lib/builtins/i64.atomic.rmw16.sub_u",b.i64_atomic_rmw32_sub_u="~lib/builtins/i64.atomic.rmw32.sub_u",b.i64_atomic_rmw_sub="~lib/builtins/i64.atomic.rmw.sub",b.i32_atomic_rmw8_and_u="~lib/builtins/i32.atomic.rmw8.and_u",b.i32_atomic_rmw16_and_u="~lib/builtins/i32.atomic.rmw16.and_u",b.i32_atomic_rmw_and="~lib/builtins/i32.atomic.rmw.and",b.i64_atomic_rmw8_and_u="~lib/builtins/i64.atomic.rmw8.and_u",b.i64_atomic_rmw16_and_u="~lib/builtins/i64.atomic.rmw16.and_u",b.i64_atomic_rmw32_and_u="~lib/builtins/i64.atomic.rmw32.and_u",b.i64_atomic_rmw_and="~lib/builtins/i64.atomic.rmw.and",b.i32_atomic_rmw8_or_u="~lib/builtins/i32.atomic.rmw8.or_u",b.i32_atomic_rmw16_or_u="~lib/builtins/i32.atomic.rmw16.or_u",b.i32_atomic_rmw_or="~lib/builtins/i32.atomic.rmw.or",b.i64_atomic_rmw8_or_u="~lib/builtins/i64.atomic.rmw8.or_u",b.i64_atomic_rmw16_or_u="~lib/builtins/i64.atomic.rmw16.or_u",b.i64_atomic_rmw32_or_u="~lib/builtins/i64.atomic.rmw32.or_u",b.i64_atomic_rmw_or="~lib/builtins/i64.atomic.rmw.or",b.i32_atomic_rmw8_xor_u="~lib/builtins/i32.atomic.rmw8.xor_u",b.i32_atomic_rmw16_xor_u="~lib/builtins/i32.atomic.rmw16.xor_u",b.i32_atomic_rmw_xor="~lib/builtins/i32.atomic.rmw.xor",b.i64_atomic_rmw8_xor_u="~lib/builtins/i64.atomic.rmw8.xor_u",b.i64_atomic_rmw16_xor_u="~lib/builtins/i64.atomic.rmw16.xor_u",b.i64_atomic_rmw32_xor_u="~lib/builtins/i64.atomic.rmw32.xor_u",b.i64_atomic_rmw_xor="~lib/builtins/i64.atomic.rmw.xor",b.i32_atomic_rmw8_xchg_u="~lib/builtins/i32.atomic.rmw8.xchg_u",b.i32_atomic_rmw16_xchg_u="~lib/builtins/i32.atomic.rmw16.xchg_u",b.i32_atomic_rmw_xchg="~lib/builtins/i32.atomic.rmw.xchg",b.i64_atomic_rmw8_xchg_u="~lib/builtins/i64.atomic.rmw8.xchg_u",b.i64_atomic_rmw16_xchg_u="~lib/builtins/i64.atomic.rmw16.xchg_u",b.i64_atomic_rmw32_xchg_u="~lib/builtins/i64.atomic.rmw32.xchg_u",b.i64_atomic_rmw_xchg="~lib/builtins/i64.atomic.rmw.xchg",b.i32_atomic_rmw8_cmpxchg_u="~lib/builtins/i32.atomic.rmw8.cmpxchg_u",b.i32_atomic_rmw16_cmpxchg_u="~lib/builtins/i32.atomic.rmw16.cmpxchg_u",b.i32_atomic_rmw_cmpxchg="~lib/builtins/i32.atomic.rmw.cmpxchg",b.i64_atomic_rmw8_cmpxchg_u="~lib/builtins/i64.atomic.rmw8.cmpxchg_u",b.i64_atomic_rmw16_cmpxchg_u="~lib/builtins/i64.atomic.rmw16.cmpxchg_u",b.i64_atomic_rmw32_cmpxchg_u="~lib/builtins/i64.atomic.rmw32.cmpxchg_u",b.i64_atomic_rmw_cmpxchg="~lib/builtins/i64.atomic.rmw.cmpxchg",b.memory_atomic_wait32="~lib/memory/memory.atomic.wait32",b.memory_atomic_wait64="~lib/memory/memory.atomic.wait64",b.v128_splat="~lib/builtins/v128.splat",b.v128_extract_lane="~lib/builtins/v128.extract_lane",b.v128_replace_lane="~lib/builtins/v128.replace_lane",b.v128_shuffle="~lib/builtins/v128.shuffle",b.v128_swizzle="~lib/builtins/v128.swizzle",b.v128_load_splat="~lib/builtins/v128.load_splat",b.v128_load_ext="~lib/builtins/v128.load_ext",b.v128_load_zero="~lib/builtins/v128.load_zero",b.v128_load_lane="~lib/builtins/v128.load_lane",b.v128_store_lane="~lib/builtins/v128.store_lane",b.v128_load="~lib/builtins/v128.load",b.v128_load8x8_s="~lib/builtins/v128.load8x8_s",b.v128_load8x8_u="~lib/builtins/v128.load8x8_u",b.v128_load16x4_s="~lib/builtins/v128.load16x4_s",b.v128_load16x4_u="~lib/builtins/v128.load16x4_u",b.v128_load32x2_s="~lib/builtins/v128.load32x2_s",b.v128_load32x2_u="~lib/builtins/v128.load32x2_u",b.v128_load8_splat="~lib/builtins/v128.load8_splat",b.v128_load16_splat="~lib/builtins/v128.load16_splat",b.v128_load32_splat="~lib/builtins/v128.load32_splat",b.v128_load64_splat="~lib/builtins/v128.load64_splat",b.v128_load32_zero="~lib/builtins/v128.load32_zero",b.v128_load64_zero="~lib/builtins/v128.load64_zero",b.v128_load8_lane="~lib/builtins/v128.load8_lane",b.v128_load16_lane="~lib/builtins/v128.load16_lane",b.v128_load32_lane="~lib/builtins/v128.load32_lane",b.v128_load64_lane="~lib/builtins/v128.load64_lane",b.v128_store8_lane="~lib/builtins/v128.store8_lane",b.v128_store16_lane="~lib/builtins/v128.store16_lane",b.v128_store32_lane="~lib/builtins/v128.store32_lane",b.v128_store64_lane="~lib/builtins/v128.store64_lane",b.v128_store="~lib/builtins/v128.store",b.v128_add="~lib/builtins/v128.add",b.v128_sub="~lib/builtins/v128.sub",b.v128_mul="~lib/builtins/v128.mul",b.v128_div="~lib/builtins/v128.div",b.v128_neg="~lib/builtins/v128.neg",b.v128_add_sat="~lib/builtins/v128.add_sat",b.v128_sub_sat="~lib/builtins/v128.sub_sat",b.v128_shl="~lib/builtins/v128.shl",b.v128_shr="~lib/builtins/v128.shr",b.v128_and="~lib/builtins/v128.and",b.v128_or="~lib/builtins/v128.or",b.v128_xor="~lib/builtins/v128.xor",b.v128_andnot="~lib/builtins/v128.andnot",b.v128_not="~lib/builtins/v128.not",b.v128_bitselect="~lib/builtins/v128.bitselect",b.v128_any_true="~lib/builtins/v128.any_true",b.v128_all_true="~lib/builtins/v128.all_true",b.v128_bitmask="~lib/builtins/v128.bitmask",b.v128_popcnt="~lib/builtins/v128.popcnt",b.v128_min="~lib/builtins/v128.min",b.v128_max="~lib/builtins/v128.max",b.v128_pmin="~lib/builtins/v128.pmin",b.v128_pmax="~lib/builtins/v128.pmax",b.v128_dot="~lib/builtins/v128.dot",b.v128_avgr="~lib/builtins/v128.avgr",b.v128_abs="~lib/builtins/v128.abs",b.v128_sqrt="~lib/builtins/v128.sqrt",b.v128_ceil="~lib/builtins/v128.ceil",b.v128_floor="~lib/builtins/v128.floor",b.v128_trunc="~lib/builtins/v128.trunc",b.v128_nearest="~lib/builtins/v128.nearest",b.v128_eq="~lib/builtins/v128.eq",b.v128_ne="~lib/builtins/v128.ne",b.v128_lt="~lib/builtins/v128.lt",b.v128_le="~lib/builtins/v128.le",b.v128_gt="~lib/builtins/v128.gt",b.v128_ge="~lib/builtins/v128.ge",b.v128_convert="~lib/builtins/v128.convert",b.v128_convert_low="~lib/builtins/v128.convert_low",b.v128_trunc_sat="~lib/builtins/v128.trunc_sat",b.v128_trunc_sat_zero="~lib/builtins/v128.trunc_sat_zero",b.v128_narrow="~lib/builtins/v128.narrow",b.v128_extend_low="~lib/builtins/v128.extend_low",b.v128_extend_high="~lib/builtins/v128.extend_high",b.v128_extadd_pairwise="~lib/builtins/v128.extadd_pairwise",b.v128_demote_zero="~lib/builtins/v128.demote_zero",b.v128_promote_low="~lib/builtins/v128.promote_low",b.v128_q15mulr_sat="~lib/builtins/v128.q15mulr_sat",b.v128_extmul_low="~lib/builtins/v128.extmul_low",b.v128_extmul_high="~lib/builtins/v128.extmul_high",b.v128_relaxed_swizzle="~lib/builtins/v128.relaxed_swizzle",b.v128_relaxed_trunc="~lib/builtins/v128.relaxed_trunc",b.v128_relaxed_trunc_zero="~lib/builtins/v128.relaxed_trunc_zero",b.v128_relaxed_madd="~lib/builtins/v128.relaxed_madd",b.v128_relaxed_nmadd="~lib/builtins/v128.relaxed_nmadd",b.v128_relaxed_laneselect="~lib/builtins/v128.relaxed_laneselect",b.v128_relaxed_min="~lib/builtins/v128.relaxed_min",b.v128_relaxed_max="~lib/builtins/v128.relaxed_max",b.v128_relaxed_q15mulr="~lib/builtins/v128.relaxed_q15mulr",b.v128_relaxed_dot="~lib/builtins/v128.relaxed_dot",b.v128_relaxed_dot_add="~lib/builtins/v128.relaxed_dot_add",b.i8x16="~lib/builtins/i8x16",b.i16x8="~lib/builtins/i16x8",b.i32x4="~lib/builtins/i32x4",b.i64x2="~lib/builtins/i64x2",b.f32x4="~lib/builtins/f32x4",b.f64x2="~lib/builtins/f64x2",b.i8x16_splat="~lib/builtins/i8x16.splat",b.i8x16_extract_lane_s="~lib/builtins/i8x16.extract_lane_s",b.i8x16_extract_lane_u="~lib/builtins/i8x16.extract_lane_u",b.i8x16_replace_lane="~lib/builtins/i8x16.replace_lane",b.i8x16_add="~lib/builtins/i8x16.add",b.i8x16_sub="~lib/builtins/i8x16.sub",b.i8x16_mul="~lib/builtins/i8x16.mul",b.i8x16_min_s="~lib/builtins/i8x16.min_s",b.i8x16_min_u="~lib/builtins/i8x16.min_u",b.i8x16_max_s="~lib/builtins/i8x16.max_s",b.i8x16_max_u="~lib/builtins/i8x16.max_u",b.i8x16_avgr_u="~lib/builtins/i8x16.avgr_u",b.i8x16_abs="~lib/builtins/i8x16.abs",b.i8x16_neg="~lib/builtins/i8x16.neg",b.i8x16_add_sat_s="~lib/builtins/i8x16.add_sat_s",b.i8x16_add_sat_u="~lib/builtins/i8x16.add_sat_u",b.i8x16_sub_sat_s="~lib/builtins/i8x16.sub_sat_s",b.i8x16_sub_sat_u="~lib/builtins/i8x16.sub_sat_u",b.i8x16_shl="~lib/builtins/i8x16.shl",b.i8x16_shr_s="~lib/builtins/i8x16.shr_s",b.i8x16_shr_u="~lib/builtins/i8x16.shr_u",b.i8x16_all_true="~lib/builtins/i8x16.all_true",b.i8x16_bitmask="~lib/builtins/i8x16.bitmask",b.i8x16_popcnt="~lib/builtins/i8x16.popcnt",b.i8x16_eq="~lib/builtins/i8x16.eq",b.i8x16_ne="~lib/builtins/i8x16.ne",b.i8x16_lt_s="~lib/builtins/i8x16.lt_s",b.i8x16_lt_u="~lib/builtins/i8x16.lt_u",b.i8x16_le_s="~lib/builtins/i8x16.le_s",b.i8x16_le_u="~lib/builtins/i8x16.le_u",b.i8x16_gt_s="~lib/builtins/i8x16.gt_s",b.i8x16_gt_u="~lib/builtins/i8x16.gt_u",b.i8x16_ge_s="~lib/builtins/i8x16.ge_s",b.i8x16_ge_u="~lib/builtins/i8x16.ge_u",b.i8x16_narrow_i16x8_s="~lib/builtins/i8x16.narrow_i16x8_s",b.i8x16_narrow_i16x8_u="~lib/builtins/i8x16.narrow_i16x8_u",b.i8x16_shuffle="~lib/builtins/i8x16.shuffle",b.i8x16_swizzle="~lib/builtins/i8x16.swizzle",b.i16x8_splat="~lib/builtins/i16x8.splat",b.i16x8_extract_lane_s="~lib/builtins/i16x8.extract_lane_s",b.i16x8_extract_lane_u="~lib/builtins/i16x8.extract_lane_u",b.i16x8_replace_lane="~lib/builtins/i16x8.replace_lane",b.i16x8_add="~lib/builtins/i16x8.add",b.i16x8_sub="~lib/builtins/i16x8.sub",b.i16x8_mul="~lib/builtins/i16x8.mul",b.i16x8_min_s="~lib/builtins/i16x8.min_s",b.i16x8_min_u="~lib/builtins/i16x8.min_u",b.i16x8_max_s="~lib/builtins/i16x8.max_s",b.i16x8_max_u="~lib/builtins/i16x8.max_u",b.i16x8_avgr_u="~lib/builtins/i16x8.avgr_u",b.i16x8_abs="~lib/builtins/i16x8.abs",b.i16x8_neg="~lib/builtins/i16x8.neg",b.i16x8_add_sat_s="~lib/builtins/i16x8.add_sat_s",b.i16x8_add_sat_u="~lib/builtins/i16x8.add_sat_u",b.i16x8_sub_sat_s="~lib/builtins/i16x8.sub_sat_s",b.i16x8_sub_sat_u="~lib/builtins/i16x8.sub_sat_u",b.i16x8_shl="~lib/builtins/i16x8.shl",b.i16x8_shr_s="~lib/builtins/i16x8.shr_s",b.i16x8_shr_u="~lib/builtins/i16x8.shr_u",b.i16x8_all_true="~lib/builtins/i16x8.all_true",b.i16x8_bitmask="~lib/builtins/i16x8.bitmask",b.i16x8_eq="~lib/builtins/i16x8.eq",b.i16x8_ne="~lib/builtins/i16x8.ne",b.i16x8_lt_s="~lib/builtins/i16x8.lt_s",b.i16x8_lt_u="~lib/builtins/i16x8.lt_u",b.i16x8_le_s="~lib/builtins/i16x8.le_s",b.i16x8_le_u="~lib/builtins/i16x8.le_u",b.i16x8_gt_s="~lib/builtins/i16x8.gt_s",b.i16x8_gt_u="~lib/builtins/i16x8.gt_u",b.i16x8_ge_s="~lib/builtins/i16x8.ge_s",b.i16x8_ge_u="~lib/builtins/i16x8.ge_u",b.i16x8_narrow_i32x4_s="~lib/builtins/i16x8.narrow_i32x4_s",b.i16x8_narrow_i32x4_u="~lib/builtins/i16x8.narrow_i32x4_u",b.i16x8_extend_low_i8x16_s="~lib/builtins/i16x8.extend_low_i8x16_s",b.i16x8_extend_low_i8x16_u="~lib/builtins/i16x8.extend_low_i8x16_u",b.i16x8_extend_high_i8x16_s="~lib/builtins/i16x8.extend_high_i8x16_s",b.i16x8_extend_high_i8x16_u="~lib/builtins/i16x8.extend_high_i8x16_u",b.i16x8_extadd_pairwise_i8x16_s="~lib/builtins/i16x8.extadd_pairwise_i8x16_s",b.i16x8_extadd_pairwise_i8x16_u="~lib/builtins/i16x8.extadd_pairwise_i8x16_u",b.i16x8_q15mulr_sat_s="~lib/builtins/i16x8.q15mulr_sat_s",b.i16x8_extmul_low_i8x16_s="~lib/builtins/i16x8.extmul_low_i8x16_s",b.i16x8_extmul_low_i8x16_u="~lib/builtins/i16x8.extmul_low_i8x16_u",b.i16x8_extmul_high_i8x16_s="~lib/builtins/i16x8.extmul_high_i8x16_s",b.i16x8_extmul_high_i8x16_u="~lib/builtins/i16x8.extmul_high_i8x16_u",b.i16x8_shuffle="~lib/builtins/i16x8.shuffle",b.i32x4_splat="~lib/builtins/i32x4.splat",b.i32x4_extract_lane="~lib/builtins/i32x4.extract_lane",b.i32x4_replace_lane="~lib/builtins/i32x4.replace_lane",b.i32x4_add="~lib/builtins/i32x4.add",b.i32x4_sub="~lib/builtins/i32x4.sub",b.i32x4_mul="~lib/builtins/i32x4.mul",b.i32x4_min_s="~lib/builtins/i32x4.min_s",b.i32x4_min_u="~lib/builtins/i32x4.min_u",b.i32x4_max_s="~lib/builtins/i32x4.max_s",b.i32x4_max_u="~lib/builtins/i32x4.max_u",b.i32x4_dot_i16x8_s="~lib/builtins/i32x4.dot_i16x8_s",b.i32x4_abs="~lib/builtins/i32x4.abs",b.i32x4_neg="~lib/builtins/i32x4.neg",b.i32x4_shl="~lib/builtins/i32x4.shl",b.i32x4_shr_s="~lib/builtins/i32x4.shr_s",b.i32x4_shr_u="~lib/builtins/i32x4.shr_u",b.i32x4_all_true="~lib/builtins/i32x4.all_true",b.i32x4_bitmask="~lib/builtins/i32x4.bitmask",b.i32x4_eq="~lib/builtins/i32x4.eq",b.i32x4_ne="~lib/builtins/i32x4.ne",b.i32x4_lt_s="~lib/builtins/i32x4.lt_s",b.i32x4_lt_u="~lib/builtins/i32x4.lt_u",b.i32x4_le_s="~lib/builtins/i32x4.le_s",b.i32x4_le_u="~lib/builtins/i32x4.le_u",b.i32x4_gt_s="~lib/builtins/i32x4.gt_s",b.i32x4_gt_u="~lib/builtins/i32x4.gt_u",b.i32x4_ge_s="~lib/builtins/i32x4.ge_s",b.i32x4_ge_u="~lib/builtins/i32x4.ge_u",b.i32x4_trunc_sat_f32x4_s="~lib/builtins/i32x4.trunc_sat_f32x4_s",b.i32x4_trunc_sat_f32x4_u="~lib/builtins/i32x4.trunc_sat_f32x4_u",b.i32x4_trunc_sat_f64x2_s_zero="~lib/builtins/i32x4.trunc_sat_f64x2_s_zero",b.i32x4_trunc_sat_f64x2_u_zero="~lib/builtins/i32x4.trunc_sat_f64x2_u_zero",b.i32x4_extend_low_i16x8_s="~lib/builtins/i32x4.extend_low_i16x8_s",b.i32x4_extend_low_i16x8_u="~lib/builtins/i32x4.extend_low_i16x8_u",b.i32x4_extend_high_i16x8_s="~lib/builtins/i32x4.extend_high_i16x8_s",b.i32x4_extend_high_i16x8_u="~lib/builtins/i32x4.extend_high_i16x8_u",b.i32x4_extadd_pairwise_i16x8_s="~lib/builtins/i32x4.extadd_pairwise_i16x8_s",b.i32x4_extadd_pairwise_i16x8_u="~lib/builtins/i32x4.extadd_pairwise_i16x8_u",b.i32x4_extmul_low_i16x8_s="~lib/builtins/i32x4.extmul_low_i16x8_s",b.i32x4_extmul_low_i16x8_u="~lib/builtins/i32x4.extmul_low_i16x8_u",b.i32x4_extmul_high_i16x8_s="~lib/builtins/i32x4.extmul_high_i16x8_s",b.i32x4_extmul_high_i16x8_u="~lib/builtins/i32x4.extmul_high_i16x8_u",b.i32x4_shuffle="~lib/builtins/i32x4.shuffle",b.i64x2_splat="~lib/builtins/i64x2.splat",b.i64x2_extract_lane="~lib/builtins/i64x2.extract_lane",b.i64x2_replace_lane="~lib/builtins/i64x2.replace_lane",b.i64x2_add="~lib/builtins/i64x2.add",b.i64x2_sub="~lib/builtins/i64x2.sub",b.i64x2_mul="~lib/builtins/i64x2.mul",b.i64x2_abs="~lib/builtins/i64x2.abs",b.i64x2_neg="~lib/builtins/i64x2.neg",b.i64x2_shl="~lib/builtins/i64x2.shl",b.i64x2_shr_s="~lib/builtins/i64x2.shr_s",b.i64x2_shr_u="~lib/builtins/i64x2.shr_u",b.i64x2_all_true="~lib/builtins/i64x2.all_true",b.i64x2_bitmask="~lib/builtins/i64x2.bitmask",b.i64x2_eq="~lib/builtins/i64x2.eq",b.i64x2_ne="~lib/builtins/i64x2.ne",b.i64x2_lt_s="~lib/builtins/i64x2.lt_s",b.i64x2_lt_u="~lib/builtins/i64x2.lt_u",b.i64x2_le_s="~lib/builtins/i64x2.le_s",b.i64x2_le_u="~lib/builtins/i64x2.le_u",b.i64x2_gt_s="~lib/builtins/i64x2.gt_s",b.i64x2_gt_u="~lib/builtins/i64x2.gt_u",b.i64x2_ge_s="~lib/builtins/i64x2.ge_s",b.i64x2_ge_u="~lib/builtins/i64x2.ge_u",b.i64x2_extend_low_i32x4_s="~lib/builtins/i64x2.extend_low_i32x4_s",b.i64x2_extend_low_i32x4_u="~lib/builtins/i64x2.extend_low_i32x4_u",b.i64x2_extend_high_i32x4_s="~lib/builtins/i64x2.extend_high_i32x4_s",b.i64x2_extend_high_i32x4_u="~lib/builtins/i64x2.extend_high_i32x4_u",b.i64x2_extmul_low_i32x4_s="~lib/builtins/i64x2.extmul_low_i32x4_s",b.i64x2_extmul_low_i32x4_u="~lib/builtins/i64x2.extmul_low_i32x4_u",b.i64x2_extmul_high_i32x4_s="~lib/builtins/i64x2.extmul_high_i32x4_s",b.i64x2_extmul_high_i32x4_u="~lib/builtins/i64x2.extmul_high_i32x4_u",b.i64x2_shuffle="~lib/builtins/i64x2.shuffle",b.f32x4_splat="~lib/builtins/f32x4.splat",b.f32x4_extract_lane="~lib/builtins/f32x4.extract_lane",b.f32x4_replace_lane="~lib/builtins/f32x4.replace_lane",b.f32x4_add="~lib/builtins/f32x4.add",b.f32x4_sub="~lib/builtins/f32x4.sub",b.f32x4_mul="~lib/builtins/f32x4.mul",b.f32x4_div="~lib/builtins/f32x4.div",b.f32x4_neg="~lib/builtins/f32x4.neg",b.f32x4_min="~lib/builtins/f32x4.min",b.f32x4_max="~lib/builtins/f32x4.max",b.f32x4_pmin="~lib/builtins/f32x4.pmin",b.f32x4_pmax="~lib/builtins/f32x4.pmax",b.f32x4_abs="~lib/builtins/f32x4.abs",b.f32x4_sqrt="~lib/builtins/f32x4.sqrt",b.f32x4_ceil="~lib/builtins/f32x4.ceil",b.f32x4_floor="~lib/builtins/f32x4.floor",b.f32x4_trunc="~lib/builtins/f32x4.trunc",b.f32x4_nearest="~lib/builtins/f32x4.nearest",b.f32x4_eq="~lib/builtins/f32x4.eq",b.f32x4_ne="~lib/builtins/f32x4.ne",b.f32x4_lt="~lib/builtins/f32x4.lt",b.f32x4_le="~lib/builtins/f32x4.le",b.f32x4_gt="~lib/builtins/f32x4.gt",b.f32x4_ge="~lib/builtins/f32x4.ge",b.f32x4_convert_i32x4_s="~lib/builtins/f32x4.convert_i32x4_s",b.f32x4_convert_i32x4_u="~lib/builtins/f32x4.convert_i32x4_u",b.f32x4_demote_f64x2_zero="~lib/builtins/f32x4.demote_f64x2_zero",b.f32x4_shuffle="~lib/builtins/f32x4.shuffle",b.f64x2_splat="~lib/builtins/f64x2.splat",b.f64x2_extract_lane="~lib/builtins/f64x2.extract_lane",b.f64x2_replace_lane="~lib/builtins/f64x2.replace_lane",b.f64x2_add="~lib/builtins/f64x2.add",b.f64x2_sub="~lib/builtins/f64x2.sub",b.f64x2_mul="~lib/builtins/f64x2.mul",b.f64x2_div="~lib/builtins/f64x2.div",b.f64x2_neg="~lib/builtins/f64x2.neg",b.f64x2_min="~lib/builtins/f64x2.min",b.f64x2_max="~lib/builtins/f64x2.max",b.f64x2_pmin="~lib/builtins/f64x2.pmin",b.f64x2_pmax="~lib/builtins/f64x2.pmax",b.f64x2_abs="~lib/builtins/f64x2.abs",b.f64x2_sqrt="~lib/builtins/f64x2.sqrt",b.f64x2_ceil="~lib/builtins/f64x2.ceil",b.f64x2_floor="~lib/builtins/f64x2.floor",b.f64x2_trunc="~lib/builtins/f64x2.trunc",b.f64x2_nearest="~lib/builtins/f64x2.nearest",b.f64x2_eq="~lib/builtins/f64x2.eq",b.f64x2_ne="~lib/builtins/f64x2.ne",b.f64x2_lt="~lib/builtins/f64x2.lt",b.f64x2_le="~lib/builtins/f64x2.le",b.f64x2_gt="~lib/builtins/f64x2.gt",b.f64x2_ge="~lib/builtins/f64x2.ge",b.f64x2_convert_low_i32x4_s="~lib/builtins/f64x2.convert_low_i32x4_s",b.f64x2_convert_low_i32x4_u="~lib/builtins/f64x2.convert_low_i32x4_u",b.f64x2_promote_low_f32x4="~lib/builtins/f64x2.promote_low_f32x4",b.f64x2_shuffle="~lib/builtins/f64x2.shuffle",b.i8x16_relaxed_swizzle="~lib/builtins/i8x16.relaxed_swizzle",b.i32x4_relaxed_trunc_f32x4_s="~lib/builtins/i32x4.relaxed_trunc_f32x4_s",b.i32x4_relaxed_trunc_f32x4_u="~lib/builtins/i32x4.relaxed_trunc_f32x4_u",b.i32x4_relaxed_trunc_f64x2_s_zero="~lib/builtins/i32x4.relaxed_trunc_f64x2_s_zero",b.i32x4_relaxed_trunc_f64x2_u_zero="~lib/builtins/i32x4.relaxed_trunc_f64x2_u_zero",b.f32x4_relaxed_madd="~lib/builtins/f32x4.relaxed_madd",b.f32x4_relaxed_nmadd="~lib/builtins/f32x4.relaxed_nmadd",b.f64x2_relaxed_madd="~lib/builtins/f64x2.relaxed_madd",b.f64x2_relaxed_nmadd="~lib/builtins/f64x2.relaxed_nmadd",b.i8x16_relaxed_laneselect="~lib/builtins/i8x16.relaxed_laneselect",b.i16x8_relaxed_laneselect="~lib/builtins/i16x8.relaxed_laneselect",b.i32x4_relaxed_laneselect="~lib/builtins/i32x4.relaxed_laneselect",b.i64x2_relaxed_laneselect="~lib/builtins/i64x2.relaxed_laneselect",b.f32x4_relaxed_min="~lib/builtins/f32x4.relaxed_min",b.f32x4_relaxed_max="~lib/builtins/f32x4.relaxed_max",b.f64x2_relaxed_min="~lib/builtins/f64x2.relaxed_min",b.f64x2_relaxed_max="~lib/builtins/f64x2.relaxed_max",b.i16x8_relaxed_q15mulr_s="~lib/builtins/i16x8.relaxed_q15mulr_s",b.i16x8_relaxed_dot_i8x16_i7x16_s="~lib/builtins/i16x8.relaxed_dot_i8x16_i7x16_s",b.i32x4_relaxed_dot_i8x16_i7x16_add_s="~lib/builtins/i32x4.relaxed_dot_i8x16_i7x16_add_s",b.i31_new="~lib/builtins/i31.new",b.i31_get="~lib/builtins/i31.get",b.data_end="~lib/memory/__data_end",b.stack_pointer="~lib/memory/__stack_pointer",b.heap_base="~lib/memory/__heap_base",b.rtti_base="~lib/rt/__rtti_base",b.visit_globals="~lib/rt/__visit_globals",b.visit_members="~lib/rt/__visit_members",b.tostack="~lib/rt/__tostack",b.NaN="~lib/number/NaN",b.Infinity="~lib/number/Infinity",b.isNaN="~lib/number/isNaN",b.isFinite="~lib/number/isFinite",b.ERROR="~lib/diagnostics/ERROR",b.WARNING="~lib/diagnostics/WARNING",b.INFO="~lib/diagnostics/INFO",b.Function="~lib/function/Function",b.Function_call="~lib/function/Function#call",b.memory_size="~lib/memory/memory.size",b.memory_grow="~lib/memory/memory.grow",b.memory_copy="~lib/memory/memory.copy",b.memory_fill="~lib/memory/memory.fill",b.memory_data="~lib/memory/memory.data",b.Int8Array="~lib/typedarray/Int8Array",b.Uint8Array="~lib/typedarray/Uint8Array",b.Uint8ClampedArray="~lib/typedarray/Uint8ClampedArray",b.Int16Array="~lib/typedarray/Int16Array",b.Uint16Array="~lib/typedarray/Uint16Array",b.Int32Array="~lib/typedarray/Int32Array",b.Uint32Array="~lib/typedarray/Uint32Array",b.Int64Array="~lib/typedarray/Int64Array",b.Uint64Array="~lib/typedarray/Uint64Array",b.Float32Array="~lib/typedarray/Float32Array",b.Float64Array="~lib/typedarray/Float64Array",b.String_raw="~lib/string/String.raw",b.String_eq="~lib/string/String.__eq",b.String_ne="~lib/string/String.__ne",b.String_not="~lib/string/String.__not",b.Object="~lib/object/Object"))(m||={});var Qo=class{constructor(r,e,t,n,s){this.resolver=r;this.node=e;this.ctxElement=t;this.ctxTypes=n;this.reportMode=s}},Vs=class{constructor(r,e,t=e.type,n=e.identifierNode){this.compiler=r;this.element=e;this.contextualType=t;this.reportNode=n}},eu=class{constructor(r,e,t,n,s,a,l,o){this.compiler=r;this.prototype=e;this.typeArguments=t;this.operands=n;this.thisOperand=s;this.contextualType=a;this.reportNode=l;this.contextIsExact=o}},er=new Map,x=new Map,nr=new Map,At=new Map;function jE(i){let r=i.resolver,e=i.node,t=i.ctxElement,n=i.ctxTypes,s=i.reportMode,a=r.ensureOneTypeArgument(e,s);if(!a)return null;let l=r.resolveType(a,null,t,n,s);if(!l)return null;switch(l.kind){case 1:case 2:case 3:return p.i32;case 5:if(!r.program.options.isWasm64)return p.i32;case 4:return p.i64;case 6:case 7:case 8:case 0:return p.u32;case 10:if(!r.program.options.isWasm64)return p.u32;case 9:return p.u64;case 11:return p.f32;case 12:return p.f64;case 13:return p.v128;case 26:return p.void;default:assert(!1)}return null}er.set(N.native,jE);function QE(i){let r=i.resolver,e=i.node,t=i.ctxElement,n=i.ctxTypes,s=i.reportMode,a=r.ensureOneTypeArgument(e,s);if(!a)return null;let l=r.resolveType(a,null,t,n,s);if(!l)return null;let o=l.classReference;if(!o)return s==0&&r.error(2329,a.range,l.toString()),null;let u=o.lookupOverload(1);if(u){let c=u.signature.parameterTypes;return u.is(32)?(assert(c.length==2),c[1]):(assert(c.length==1),c[0])}return s==0&&r.error(2329,a.range,l.toString()),null}er.set(N.indexof,QE);function XE(i){let r=i.resolver,e=i.node,t=i.ctxElement,n=i.ctxTypes,s=i.reportMode,a=r.ensureOneTypeArgument(e,s);if(!a)return null;let l=r.resolveType(a,null,t,n,s);if(!l)return null;let o=l.getClassOrWrapper(r.program);if(o){let u=o.lookupOverload(1);if(u)return u.signature.returnType}return s==0&&r.error(2329,a.range,l.toString()),null}er.set(N.valueof,XE);function $E(i){let r=i.resolver,e=i.node,t=i.ctxElement,n=i.ctxTypes,s=i.reportMode,a=r.ensureOneTypeArgument(e,s);if(!a)return null;let l=r.resolveType(a,null,t,n,s);if(!l)return null;let o=l.getSignature();return o?o.returnType:(s==0&&r.error(2757,a.range,l.toString()),null)}er.set(N.returnof,$E);function ZE(i){let r=i.resolver,e=i.node,t=i.ctxElement,n=i.ctxTypes,s=i.reportMode,a=r.ensureOneTypeArgument(e,s);if(!a)return null;let l=r.resolveType(a,null,t,n,s);if(!l)return null;let o=l.getSignature();if(o){let u=o.thisType;return u||p.any}return s==0&&r.error(2757,a.range,l.toString()),null}er.set(N.thisof,ZE);function YE(i){let r=i.resolver,e=i.node,t=i.ctxElement,n=i.ctxTypes,s=i.reportMode,a=r.ensureOneTypeArgument(e,s);if(!a)return null;let l=r.resolveType(a,null,t,n,s);return l?l.isNullableReference?l.nonNullableType:l:null}er.set(N.nonnull,YE);var on=0;function JE(i){let r=i.compiler,e=r.module,t=Ve(i);return r.currentType=p.bool,t?ke(i,e.i32(t.isBooleanValue?1:0)):e.unreachable()}x.set(m.isBoolean,JE);function e6(i){let r=i.compiler,e=r.module,t=Ve(i);return r.currentType=p.bool,t?ke(i,e.i32(t.isIntegerValue?1:0)):e.unreachable()}x.set(m.isInteger,e6);function t6(i){let r=i.compiler,e=r.module,t=Ve(i);return r.currentType=p.bool,t?ke(i,e.i32(t.isSignedIntegerValue?1:0)):e.unreachable()}x.set(m.isSigned,t6);function r6(i){let r=i.compiler,e=r.module,t=Ve(i);return r.currentType=p.bool,t?ke(i,e.i32(t.isFloatValue?1:0)):e.unreachable()}x.set(m.isFloat,r6);function i6(i){let r=i.compiler,e=r.module,t=Ve(i);return r.currentType=p.bool,t?ke(i,e.i32(t.isVectorValue?1:0)):e.unreachable()}x.set(m.isVector,i6);function n6(i){let r=i.compiler,e=r.module,t=Ve(i);return r.currentType=p.bool,t?ke(i,e.i32(t.isReference?1:0)):e.unreachable()}x.set(m.isReference,n6);function s6(i){let r=i.compiler,e=r.module,t=Ve(i);if(r.currentType=p.bool,!t)return e.unreachable();let n=t.getClass();return ke(i,e.i32(n&&n.isAssignableTo(r.program.stringInstance)?1:0))}x.set(m.isString,s6);function a6(i){let r=i.compiler,e=r.module,t=Ve(i);if(r.currentType=p.bool,!t)return e.unreachable();let n=t.getClass();return ke(i,e.i32(n&&n.extendsPrototype(r.program.arrayPrototype)?1:0))}x.set(m.isArray,a6);function l6(i){let r=i.compiler,e=r.module,t=Ve(i);if(r.currentType=p.bool,!t)return e.unreachable();let n=t.getClass();return ke(i,e.i32(n&&n.isArrayLike?1:0))}x.set(m.isArrayLike,l6);function o6(i){let r=i.compiler,e=r.module,t=Ve(i);return r.currentType=p.bool,t?ke(i,e.i32(t.isFunction?1:0)):e.unreachable()}x.set(m.isFunction,o6);function u6(i){let r=i.compiler,e=r.module,t=Ve(i);return r.currentType=p.bool,t?ke(i,e.i32(t.isNullableReference?1:0)):e.unreachable()}x.set(m.isNullable,u6);function c6(i){let r=i.compiler,e=r.module;if(r.currentType=p.bool,I(i)|K(i,1))return e.unreachable();let t=r.resolver.lookupExpression(i.operands[0],r.currentFlow,p.auto,1);return e.i32(t?1:0)}x.set(m.isDefined,c6);function p6(i){let r=i.compiler,e=r.module;if(r.currentType=p.bool,I(i)|K(i,1))return e.unreachable();let t=r.compileExpression(i.operands[0],p.auto);return r.currentType=p.bool,Uo(t,e.ref)?e.block(null,[e.maybeDrop(t),e.i32(0)],ce(t)):e.i32(e.isConstExpression(t)?1:0)}x.set(m.isConstant,p6);function f6(i){let r=i.compiler,e=r.module,t=Ve(i);return r.currentType=p.bool,t?ke(i,e.i32(t.isManaged?1:0)):e.unreachable()}x.set(m.isManaged,f6);function _6(i){let r=i.compiler,e=r.module,t=Ve(i);return r.currentType=p.bool,t?ke(i,e.i32(t.kind==26?1:0)):e.unreachable()}x.set(m.isVoid,_6);function d6(i){let r=i.compiler,e=r.module,t=Ve(i);if(r.currentType=p.i32,!t)return e.unreachable();let n=t.signatureReference;return n?ke(i,e.i32(n.parameterTypes.length)):(r.error(2757,i.reportNode.range,t.toString()),e.unreachable())}x.set(m.lengthof,d6);function h6(i){let r=i.compiler,e=r.module;if(r.currentType=r.options.usizeType,$(i)|K(i,0))return e.unreachable();let t=i.typeArguments[0],n=t.byteSize;if(!n)return r.error(203,i.reportNode.typeArgumentsRange,"sizeof",t.toString()),e.unreachable();let s=t.classReference;return s!=null&&(s.hasDecorator(16)||s.hasDecorator(2048))?ii(r,i64_new(s.nextMemoryOffset),i.contextualType):ii(r,i64_new(n),i.contextualType)}x.set(m.sizeof,h6);function m6(i){let r=i.compiler,e=r.module;if(r.currentType=r.options.usizeType,$(i)|K(i,0))return e.unreachable();let t=i.typeArguments[0],n=t.byteSize;if(!n||t.kind!=14&&!Kr(n))return r.error(203,i.reportNode.typeArgumentsRange,"alignof",t.toString()),e.unreachable();let s=t.classReference;return s!=null&&(s.hasDecorator(16)||s.hasDecorator(2048))?ii(r,i64_new(s.alignLog2),i.contextualType):ii(r,i64_new(t.alignLog2),i.contextualType)}x.set(m.alignof,m6);function y6(i){let r=i.compiler,e=r.module;if(r.currentType=r.options.usizeType,$(i)|Ne(i,0,1))return e.unreachable();let t=i.operands,n=i.contextualType,s=i.typeArguments[0];if(s.kind==14)return i.operands.length?(r.error(203,i.reportNode.range,"offsetof",s.toString()),e.unreachable()):ii(r,i64_new(s.byteSize),i.contextualType);let a=s.getClassOrWrapper(r.program);if(!a)return r.error(203,i.reportNode.typeArgumentsRange,"offsetof",s.toString()),r.options.isWasm64?n.isIntegerValue&&n.size<=32&&(r.currentType=p.u32):n.isIntegerValue&&n.size==64&&(r.currentType=p.u64),e.unreachable();if(t.length){let l=t[0];if(!l.isLiteralKind(2))return r.error(1141,t[0].range),e.unreachable();let o=l.value,u=a.getMember(o);if(u&&u.kind==10){let c=u.instance;if(c&&c.isField)return assert(c.memoryOffset>=0),ii(r,i64_new(c.memoryOffset),n)}return r.error(2460,l.range,a.internalName,o),e.unreachable()}return ii(r,i64_new(a.nextMemoryOffset),n)}x.set(m.offsetof,y6);function g6(i){let r=i.compiler,e=r.module;if(r.currentType=r.program.stringInstance.type,$(i)|K(i,1))return e.unreachable();let t=i.typeArguments[0],n=t.getClassOrWrapper(r.program);if(!n)return r.error(203,i.reportNode.typeArgumentsRange,"abiNameOf",t.toString()),e.unreachable();let s=i.operands[0];if(!s.isLiteralKind(2))return r.error(1141,s.range),e.unreachable();let a=s.value,l=n.getMember(a);if(!l||l.kind!=10)return r.error(2460,s.range,n.internalName,a),e.unreachable();let o=l.fieldDeclaration,u=o?o.type:null,c=u?u.attributes:null;if(c)for(let f=0,_=c.length;f<_;++f){if(!b6(c[f]))continue;let d=c[f].args,g=d&&d.length?d[0]:null;if(g&&g.isLiteralKind(2))return ke(i,r.ensureStaticString(g.value));break}return ke(i,r.ensureStaticString(a))}x.set(m.abiNameOf,g6);function b6(i){let r=i.name;if(r.kind!=23)return!1;let e=r,t=e.expression;return t.kind!=8?!1:t.text=="abi"&&e.property.text=="alias"}function x6(i){let r=i.compiler,e=r.module,t=Ve(i);if(!t)return r.currentType=r.program.stringInstance.type,e.unreachable();let n;if(t.isInternalReference){let s=t.getClass();s?n=s.name:(assert(t.getSignature()),n="Function")}else n=t.toString();return ke(i,r.ensureStaticString(n))}x.set(m.nameof,x6);function E6(i){let r=i.compiler,e=r.module,t=Ve(i);if(r.currentType=p.u32,!t)return e.unreachable();let n=t.getSignature();if(n)return ke(i,e.i32(n.id));let s=t.getClassOrWrapper(r.program);return s&&!s.hasDecorator(16)?ke(i,e.i32(s.id)):(r.error(203,i.reportNode.typeArgumentsRange,"idof",t.toString()),e.unreachable())}x.set(m.idof,E6);function A6(i){let r=i.element;if(r.is(1048576)){let e=i.compiler.module;e.addGlobal(r.internalName,B.F64,!1,e.f64(NaN))}}nr.set(m.NaN,A6);function T6(i){let r=i.compiler,e=r.module;return i.contextualType==p.f32?(r.currentType=p.f32,e.f32(NaN)):(r.currentType=p.f64,e.f64(NaN))}At.set(m.NaN,T6);function S6(i){let r=i.element;if(r.is(1048576)){let e=i.compiler.module;e.addGlobal(r.internalName,B.F64,!1,e.f64(1/0))}}nr.set(m.Infinity,S6);function v6(i){let r=i.compiler,e=r.module;return i.contextualType==p.f32?(r.currentType=p.f32,e.f32(1/0)):(r.currentType=p.f64,e.f64(1/0))}At.set(m.Infinity,v6);function wf(i){let r=i.compiler,e=r.module;if(fe(i,!0)|K(i,1))return e.unreachable();let t=i.typeArguments,n=t?r.compileExpression(i.operands[0],t[0],5):r.compileExpression(i.operands[0],p.i32,4),s=r.currentType;if(s.isValue)switch(s.kind){case 0:case 1:case 6:case 2:case 7:case 3:case 8:return e.unary(0,n);case 5:case 10:return e.unary(142,n);case 4:case 9:return e.unary(1,n)}return r.error(203,i.reportNode.typeArgumentsRange,"clz",s.toString()),e.unreachable()}x.set(m.clz,wf);function Rf(i){let r=i.compiler,e=r.module;if(fe(i,!0)|K(i,1))return e.unreachable();let t=i.operands,n=i.typeArguments,s=n?r.compileExpression(t[0],n[0],5):r.compileExpression(t[0],p.i32,4),a=r.currentType;if(a.isValue)switch(a.kind){case 0:case 1:case 6:case 2:case 7:case 3:case 8:return e.unary(2,s);case 5:case 10:return e.unary(143,s);case 4:case 9:return e.unary(3,s)}return r.error(203,i.reportNode.typeArgumentsRange,"ctz",a.toString()),e.unreachable()}x.set(m.ctz,Rf);function Cf(i){let r=i.compiler,e=r.module;if(fe(i,!0)|K(i,1))return e.unreachable();let t=i.operands,n=i.typeArguments,s=n?r.compileExpression(t[0],n[0],5):r.compileExpression(t[0],p.i32,4),a=r.currentType;if(a.isValue)switch(r.currentType.kind){case 0:return s;case 1:case 6:case 2:case 7:case 3:case 8:return e.unary(4,s);case 4:case 9:return e.unary(5,s);case 5:case 10:return e.unary(144,s)}return r.error(203,i.reportNode.typeArgumentsRange,"popcnt",a.toString()),e.unreachable()}x.set(m.popcnt,Cf);function Pf(i){let r=i.compiler,e=r.module;if(fe(i,!0)|K(i,2))return e.unreachable();let t=i.operands,n=i.typeArguments,s=n?r.compileExpression(t[0],n[0],5):r.compileExpression(t[0],p.i32,4),a=r.currentType;if(a.isValue){let l=r.compileExpression(t[1],a,1);switch(a.kind){case 0:return s;case 1:case 2:case 6:case 7:{let o=r.currentFlow,u=o.getTempLocal(a);o.setLocalFlag(u.index,2);let c=o.getTempLocal(a);return o.setLocalFlag(c.index,2),e.binary(8,e.binary(10,e.local_tee(u.index,s,!1),e.binary(7,e.local_tee(c.index,l,!1),e.i32(a.size-1))),e.binary(12,e.local_get(u.index,B.I32),e.binary(7,e.binary(1,e.i32(0),e.local_get(c.index,B.I32)),e.i32(a.size-1))))}case 3:case 8:return e.binary(13,s,l);case 4:case 9:return e.binary(38,s,l);case 5:case 10:return e.binary(230,s,l)}}return r.error(203,i.reportNode.typeArgumentsRange,"rotl",a.toString()),e.unreachable()}x.set(m.rotl,Pf);function Bf(i){let r=i.compiler,e=r.module;if(fe(i,!0)|K(i,2))return e.unreachable();let t=i.operands,n=i.typeArguments,s=n?r.compileExpression(t[0],n[0],5):r.compileExpression(t[0],p.i32,4),a=r.currentType;if(a.isValue){let l=r.compileExpression(t[1],a,1);switch(a.kind){case 0:return s;case 1:case 2:case 6:case 7:{let o=r.currentFlow,u=o.getTempLocal(a);o.setLocalFlag(u.index,2);let c=o.getTempLocal(a);return o.setLocalFlag(c.index,2),e.binary(8,e.binary(12,e.local_tee(u.index,s,!1),e.binary(7,e.local_tee(c.index,l,!1),e.i32(a.size-1))),e.binary(10,e.local_get(u.index,B.I32),e.binary(7,e.binary(1,e.i32(0),e.local_get(c.index,B.I32)),e.i32(a.size-1))))}case 3:case 8:return e.binary(14,s,l);case 4:case 9:return e.binary(39,s,l);case 5:case 10:return e.binary(231,s,l)}}return r.error(203,i.reportNode.typeArgumentsRange,"rotr",a.toString()),e.unreachable()}x.set(m.rotr,Bf);function Nf(i){let r=i.compiler,e=r.module;if(fe(i,!0)|K(i,1))return e.unreachable();let t=i.operands,n=i.typeArguments,s=n?r.compileExpression(t[0],n[0],5):r.compileExpression(t[0],p.auto,4),a=r.currentType;if(a.isValue)switch(a.kind){case 0:case 6:case 7:case 8:case 9:case 10:return s;case 1:case 2:case 3:{let l=r.currentFlow,o=l.getTempLocal(p.i32),u=l.getTempLocal(p.i32);return e.binary(9,e.binary(0,e.local_tee(u.index,e.binary(11,e.local_tee(o.index,s,!1),e.i32(31)),!1),e.local_get(o.index,B.I32)),e.local_get(u.index,B.I32))}case 5:{let l=r.options,o=r.currentFlow,u=o.getTempLocal(l.usizeType),c=o.getTempLocal(l.usizeType);return e.binary(226,e.binary(217,e.local_tee(c.index,e.binary(228,e.local_tee(u.index,s,!1),r.options.isWasm64?e.i64(63):e.i32(31)),!1),e.local_get(u.index,l.sizeTypeRef)),e.local_get(c.index,l.sizeTypeRef))}case 4:{let l=r.currentFlow,o=l.getTempLocal(p.i64),u=l.getTempLocal(p.i64);return e.binary(34,e.binary(25,e.local_tee(u.index,e.binary(36,e.local_tee(o.index,s,!1),e.i64(63)),!1),e.local_get(o.index,B.I64)),e.local_get(u.index,B.I64))}case 11:return e.unary(8,s);case 12:return e.unary(9,s)}return r.error(203,i.reportNode.typeArgumentsRange,"abs",a.toString()),e.unreachable()}x.set(m.abs,Nf);function Lf(i){let r=i.compiler,e=r.module;if(fe(i,!0)|K(i,2))return e.unreachable();let t=i.operands,n=i.typeArguments,s=t[0],a=n?r.compileExpression(s,n[0],5):r.compileExpression(t[0],p.auto,4),l=r.currentType;if(l.isValue){let o;!n&&s.isNumericLiteral?(o=r.compileExpression(t[1],l,4),r.currentType!=l&&(a=r.compileExpression(s,l=r.currentType,5))):o=r.compileExpression(t[1],l,5);let u=-1;switch(l.kind){case 1:case 2:case 3:{u=21;break}case 0:case 6:case 7:case 8:{u=22;break}case 4:{u=46;break}case 9:{u=47;break}case 5:{u=238;break}case 10:{u=239;break}case 11:return e.binary(56,a,o);case 12:return e.binary(69,a,o)}if(u!=-1){let c=r.currentFlow,f=l.toRef(),_=c.getTempLocal(l);c.setLocalFlag(_.index,2);let d=c.getTempLocal(l);return c.setLocalFlag(d.index,2),e.select(e.local_tee(_.index,a,!1),e.local_tee(d.index,o,!1),e.binary(u,e.local_get(_.index,f),e.local_get(d.index,f)))}}return r.error(203,i.reportNode.typeArgumentsRange,"max",l.toString()),e.unreachable()}x.set(m.max,Lf);function Mf(i){let r=i.compiler,e=r.module;if(fe(i,!0)|K(i,2))return e.unreachable();let t=i.operands,n=i.typeArguments,s=t[0],a=n?r.compileExpression(s,n[0],5):r.compileExpression(t[0],p.auto,4),l=r.currentType;if(l.isValue){let o;!n&&s.isNumericLiteral?(o=r.compileExpression(t[1],l,4),r.currentType!=l&&(a=r.compileExpression(s,l=r.currentType,5))):o=r.compileExpression(t[1],l,5);let u=-1;switch(l.kind){case 1:case 2:case 3:{u=17;break}case 0:case 6:case 7:case 8:{u=18;break}case 4:{u=42;break}case 9:{u=43;break}case 5:{u=234;break}case 10:{u=235;break}case 11:return e.binary(55,a,o);case 12:return e.binary(68,a,o)}if(u!=-1){let c=r.currentFlow,f=l.toRef(),_=c.getTempLocal(l);c.setLocalFlag(_.index,2);let d=c.getTempLocal(l);return c.setLocalFlag(d.index,2),e.select(e.local_tee(_.index,a,!1),e.local_tee(d.index,o,!1),e.binary(u,e.local_get(_.index,f),e.local_get(d.index,f)))}}return r.error(203,i.reportNode.typeArgumentsRange,"min",l.toString()),e.unreachable()}x.set(m.min,Mf);function zf(i){let r=i.compiler,e=r.module;if(fe(i,!0)|K(i,1))return e.unreachable();let t=i.operands,n=i.typeArguments,s=n?r.compileExpression(t[0],n[0],1):r.compileExpression(t[0],p.auto,0),a=r.currentType;if(a.isValue)switch(a.kind){case 0:case 1:case 2:case 3:case 4:case 5:case 6:case 7:case 8:case 9:case 10:return s;case 11:return e.unary(10,s);case 12:return e.unary(11,s)}return r.error(203,i.reportNode.typeArgumentsRange,"ceil",a.toString()),e.unreachable()}x.set(m.ceil,zf);function Df(i){let r=i.compiler,e=r.module;if(fe(i,!0)|K(i,1))return e.unreachable();let t=i.operands,n=i.typeArguments,s=n?r.compileExpression(t[0],n[0],1):r.compileExpression(t[0],p.auto,0),a=r.currentType;if(a.isValue)switch(a.kind){case 0:case 1:case 2:case 3:case 4:case 5:case 6:case 7:case 8:case 9:case 10:return s;case 11:return e.unary(12,s);case 12:return e.unary(13,s)}return r.error(203,i.reportNode.typeArgumentsRange,"floor",a.toString()),e.unreachable()}x.set(m.floor,Df);function Gf(i){let r=i.compiler,e=r.module;if(fe(i,!0)|K(i,2))return e.unreachable();let t=i.operands,n=i.typeArguments,s=n?r.compileExpression(t[0],n[0],1):r.compileExpression(t[0],p.f64,0),a=r.currentType;if(a.isValue){let l=r.compileExpression(t[1],a,1);switch(a.kind){case 11:return e.binary(54,s,l);case 12:return e.binary(67,s,l)}}return r.error(203,i.reportNode.typeArgumentsRange,"copysign",a.toString()),e.unreachable()}x.set(m.copysign,Gf);function Uf(i){let r=i.compiler,e=r.module;if(fe(i,!0)|K(i,1))return e.unreachable();let t=i.operands,n=i.typeArguments,s=n?r.compileExpression(t[0],n[0],1):r.compileExpression(t[0],p.auto,0),a=r.currentType;if(a.isValue)switch(a.kind){case 0:case 1:case 2:case 3:case 4:case 5:case 6:case 7:case 8:case 9:case 10:return s;case 11:return e.unary(16,s);case 12:return e.unary(17,s)}return r.error(203,i.reportNode.typeArgumentsRange,"nearest",a.toString()),e.unreachable()}x.set(m.nearest,Uf);function Os(i){let r=i.compiler,e=r.module;if($(i,!0)|K(i,1))return e.unreachable();let t=i.operands,s=i.typeArguments[0];if(s.isValue)switch(s.kind){case 3:case 8:{let a=r.compileExpression(t[0],p.f32,1);return r.currentType=s,e.unary(33,a)}case 4:case 9:{let a=r.compileExpression(t[0],p.f64,1);return r.currentType=s,e.unary(34,a)}case 5:case 10:{let a=r.options.isWasm64,l=r.compileExpression(t[0],a?p.f64:p.f32,1);return r.currentType=s,e.unary(a?34:33,l)}case 11:{let a=r.compileExpression(t[0],p.i32,1);return r.currentType=p.f32,e.unary(45,a)}case 12:{let a=r.compileExpression(t[0],p.i64,1);return r.currentType=p.f64,e.unary(46,a)}}return r.error(203,i.reportNode.typeArgumentsRange,"reinterpret",s.toString()),e.unreachable()}x.set(m.reinterpret,Os);function Vf(i){let r=i.compiler,e=r.module;if(fe(i,!0)|K(i,1))return e.unreachable();let t=i.operands,n=i.typeArguments,s=n?r.compileExpression(t[0],n[0],1):r.compileExpression(t[0],p.f64,0),a=r.currentType;if(a.isValue)switch(a.kind){case 11:return e.unary(18,s);case 12:return e.unary(19,s)}return r.error(203,i.reportNode.typeArgumentsRange,"sqrt",a.toString()),e.unreachable()}x.set(m.sqrt,Vf);function Of(i){let r=i.compiler,e=r.module;if(fe(i,!0)|K(i,1))return e.unreachable();let t=i.operands,n=i.typeArguments,s=n?r.compileExpression(t[0],n[0],1):r.compileExpression(t[0],p.auto,0),a=r.currentType;if(a.isValue)switch(a.kind){case 0:case 1:case 2:case 3:case 4:case 5:case 6:case 7:case 8:case 9:case 10:return s;case 11:return e.unary(14,s);case 12:return e.unary(15,s)}return r.error(203,i.reportNode.typeArgumentsRange,"trunc",a.toString()),e.unreachable()}x.set(m.trunc,Of);function I6(i){let r=i.compiler,e=r.module;if(fe(i)|K(i,1))return r.currentType=p.bool,e.unreachable();let t=i.operands,n=i.typeArguments,s=n?r.compileExpression(t[0],n[0],1):r.compileExpression(t[0],p.auto),a=r.currentType;if(r.currentType=p.bool,a.isValue)switch(a.kind){case 1:case 2:case 3:case 4:case 5:case 6:case 7:case 8:case 9:case 10:return e.maybeDropCondition(s,e.i32(0));case 11:{if(re(s)==8)return e.binary(58,s,e.local_get(Ct(s),B.F32));let o=r.currentFlow.getTempLocal(p.f32);return e.binary(58,e.local_tee(o.index,s,!1),e.local_get(o.index,B.F32))}case 12:{if(re(s)==8)return e.binary(71,s,e.local_get(Ct(s),B.F64));let o=r.currentFlow.getTempLocal(p.f64);return e.binary(71,e.local_tee(o.index,s,!1),e.local_get(o.index,B.F64))}}return r.error(203,i.reportNode.typeArgumentsRange,"isNaN",a.toString()),e.unreachable()}x.set(m.isNaN,I6);function k6(i){let r=i.compiler,e=r.module;if(fe(i)|K(i,1))return r.currentType=p.bool,e.unreachable();let t=i.operands,n=i.typeArguments,s=n?r.compileExpression(t[0],n[0],1):r.compileExpression(t[0],p.auto),a=r.currentType;if(r.currentType=p.bool,a.isValue)switch(a.kind){case 1:case 2:case 3:case 4:case 5:case 6:case 7:case 8:case 9:case 10:return e.maybeDropCondition(s,e.i32(1));case 11:{if(re(s)==8)return e.binary(57,e.binary(51,s,e.local_get(Ct(s),B.F32)),e.f32(0));let o=r.currentFlow.getTempLocal(p.f32);return e.binary(57,e.binary(51,e.local_tee(o.index,s,!1),e.local_get(o.index,B.F32)),e.f32(0))}case 12:{if(re(s)==8)return e.binary(70,e.binary(64,s,e.local_get(Ct(s),B.F64)),e.f64(0));let o=r.currentFlow.getTempLocal(p.f64);return e.binary(70,e.binary(64,e.local_tee(o.index,s,!1),e.local_get(o.index,B.F64)),e.f64(0))}}return r.error(203,i.reportNode.typeArgumentsRange,"isFinite",a.toString()),e.unreachable()}x.set(m.isFinite,k6);function F6(i){let r=i.compiler,e=r.module,t=i.element,n=t.type;r.runtimeFeatures|=4,e.addGlobal(t.internalName,n.toRef(),!0,r.makeZero(n))}nr.set(m.heap_base,F6);function w6(i){let r=i.compiler,e=r.module,t=i.element,n=t.type;return r.runtimeFeatures|=4,r.currentType=n,e.global_get(t.internalName,n.toRef())}At.set(m.heap_base,w6);function R6(i){let r=i.compiler,e=r.module,t=i.element,n=t.type;r.runtimeFeatures|=1,e.addGlobal(t.internalName,n.toRef(),!0,r.makeZero(n))}nr.set(m.data_end,R6);function C6(i){let r=i.compiler,e=r.module,t=i.element,n=t.type;return r.runtimeFeatures|=1,r.currentType=n,e.global_get(t.internalName,n.toRef())}At.set(m.data_end,C6);function P6(i){let r=i.compiler,e=r.module,t=i.element,n=t.type;r.runtimeFeatures|=2,e.addGlobal(t.internalName,n.toRef(),!0,r.makeZero(n))}nr.set(m.stack_pointer,P6);function B6(i){let r=i.compiler,e=r.module,t=i.element,n=t.type;return r.runtimeFeatures|=2,r.currentType=n,e.global_get(t.internalName,n.toRef())}At.set(m.stack_pointer,B6);function N6(i){let r=i.compiler,e=r.module,t=i.element,n=t.type;r.runtimeFeatures|=8,e.addGlobal(t.internalName,n.toRef(),!0,r.makeZero(n))}nr.set(m.rtti_base,N6);function L6(i){let r=i.compiler,e=r.module,t=i.element,n=t.type;return r.runtimeFeatures|=8,r.currentType=n,e.global_get(t.internalName,n.toRef())}At.set(m.rtti_base,L6);function Ue(i){let r=i.compiler,e=r.module;if($(i,!0)|Ne(i,1,3))return e.unreachable();let t=i.operands,n=i.typeArguments,s=i.contextualType,a=n[0],l=s!=p.auto&&a.isIntegerValue&&s.isIntegerValue&&s.size>a.size?s:a;if(!l.isMemory)return r.error(203,i.reportNode.typeArgumentsRange,"load",l.toString()),r.currentType=p.void,e.unreachable();let o=r.compileExpression(t[0],r.options.usizeType,1),u=t.length,c=0,f=a.byteSize;return u>=2&&(c=_t(t[1],r),c<0||u==3&&(f=ir(t[2],f,r),f<0))?(r.currentType=l,e.unreachable()):(r.currentType=l,e.load(a.byteSize,a.isSignedIntegerValue,o,l.toRef(),c,f))}x.set(m.load,Ue);function Tt(i){let r=i.compiler,e=r.module;if(r.currentType=p.void,$(i)|Ne(i,2,4))return e.unreachable();let t=i.operands,n=t.length,s=i.typeArguments,a=i.contextualType,l=s[0],o=r.compileExpression(t[0],r.options.usizeType,1),u=i.contextIsExact?r.compileExpression(t[1],a,1):r.compileExpression(t[1],l,l.isIntegerValue?0:1),c=r.currentType;if(!c.isMemory)return r.error(203,i.reportNode.typeArgumentsRange,"store",c.toString()),r.currentType=p.void,e.unreachable();l.isIntegerValue&&(!c.isIntegerValue||c.size<l.size)&&(u=r.convertExpression(u,c,l,!1,t[1]),c=l);let f=0,_=l.byteSize;if(n>=3){if(f=_t(t[2],r),f<0)return r.currentType=p.void,e.unreachable();if(n==4&&(_=ir(t[3],_,r),_<0))return r.currentType=p.void,e.unreachable()}return r.currentType=p.void,e.store(l.byteSize,o,u,c.toRef(),f,_)}x.set(m.store,Tt);function qs(i){let r=i.compiler,e=r.module;if(fe(i,!0)|K(i,2))return e.unreachable();let t=i.operands,n=i.typeArguments,s=t[0],a=n?r.compileExpression(s,n[0],1):r.compileExpression(t[0],p.auto),l=r.currentType;if(l.isIntegerValue){let o;if(!n&&s.isNumericLiteral?(o=r.compileExpression(t[1],l),r.currentType!=l&&(a=r.compileExpression(s,l=r.currentType,1))):o=r.compileExpression(t[1],l,1),l.isIntegerValue)return r.makeRem(a,o,l,i.reportNode)}return r.error(203,i.reportNode.typeArgumentsRange,"rem",l.toString()),e.unreachable()}x.set(m.rem,qs);function Ws(i){let r=i.compiler,e=r.module;if(fe(i,!0)|K(i,2))return e.unreachable();let t=i.operands,n=i.typeArguments,s=t[0],a=n?r.compileExpression(s,n[0],1):r.compileExpression(t[0],p.auto),l=r.currentType;if(l.isValue){let o;if(!n&&s.isNumericLiteral?(o=r.compileExpression(t[1],l),r.currentType!=l&&(a=r.compileExpression(s,l=r.currentType,1))):o=r.compileExpression(t[1],l,1),l.isNumericValue)return r.makeAdd(a,o,l)}return r.error(203,i.reportNode.typeArgumentsRange,"add",l.toString()),e.unreachable()}x.set(m.add,Ws);function Ks(i){let r=i.compiler,e=r.module;if(fe(i,!0)|K(i,2))return e.unreachable();let t=i.operands,n=i.typeArguments,s=t[0],a=n?r.compileExpression(s,n[0],1):r.compileExpression(t[0],p.auto),l=r.currentType;if(l.isValue){let o;if(!n&&s.isNumericLiteral?(o=r.compileExpression(t[1],l),r.currentType!=l&&(a=r.compileExpression(s,l=r.currentType,1))):o=r.compileExpression(t[1],l,1),l.isNumericValue)return r.makeSub(a,o,l)}return r.error(203,i.reportNode.typeArgumentsRange,"sub",l.toString()),e.unreachable()}x.set(m.sub,Ks);function Hs(i){let r=i.compiler,e=r.module;if(fe(i,!0)|K(i,2))return e.unreachable();let t=i.operands,n=i.typeArguments,s=t[0],a=n?r.compileExpression(s,n[0],1):r.compileExpression(t[0],p.auto),l=r.currentType;if(l.isValue){let o;if(!n&&s.isNumericLiteral?(o=r.compileExpression(t[1],l),r.currentType!=l&&(a=r.compileExpression(s,l=r.currentType,1))):o=r.compileExpression(t[1],l,1),l.isNumericValue)return r.makeMul(a,o,l)}return r.error(203,i.reportNode.typeArgumentsRange,"mul",l.toString()),e.unreachable()}x.set(m.mul,Hs);function ni(i){let r=i.compiler,e=r.module;if(fe(i,!0)|K(i,2))return e.unreachable();let t=i.operands,n=i.typeArguments,s=t[0],a=n?r.compileExpression(s,n[0],1):r.compileExpression(t[0],p.auto),l=r.currentType;if(l.isValue){let o;if(!n&&s.isNumericLiteral?(o=r.compileExpression(t[1],l),r.currentType!=l&&(a=r.compileExpression(s,l=r.currentType,1))):o=r.compileExpression(t[1],l,1),l.isNumericValue)return r.makeDiv(a,o,l)}return r.error(203,i.reportNode.typeArgumentsRange,"div",l.toString()),e.unreachable()}x.set(m.div,ni);function js(i){let r=i.compiler,e=r.module;if(fe(i,!0)|K(i,2))return e.unreachable();let t=i.operands,n=i.typeArguments,s=t[0],a=n?r.compileExpression(s,n[0],1):r.compileExpression(t[0],p.auto),l=r.currentType;if(l.isValue){let o;if(!n&&s.isNumericLiteral?(o=r.compileExpression(t[1],l),r.currentType!=l&&(a=r.compileExpression(s,l=r.currentType,1))):o=r.compileExpression(t[1],l,1),l.isNumericValue)return r.currentType=p.i32,r.makeEq(a,o,l,i.reportNode)}return r.error(203,i.reportNode.typeArgumentsRange,"eq",l.toString()),e.unreachable()}x.set(m.eq,js);function Qs(i){let r=i.compiler,e=r.module;if(fe(i,!0)|K(i,2))return e.unreachable();let t=i.operands,n=i.typeArguments,s=t[0],a=n?r.compileExpression(s,n[0],1):r.compileExpression(t[0],p.auto),l=r.currentType;if(l.isValue){let o;if(!n&&s.isNumericLiteral?(o=r.compileExpression(t[1],l),r.currentType!=l&&(a=r.compileExpression(s,l=r.currentType,1))):o=r.compileExpression(t[1],l,1),l.isNumericValue)return r.currentType=p.i32,r.makeNe(a,o,l,i.reportNode)}return r.error(203,i.reportNode.typeArgumentsRange,"ne",l.toString()),e.unreachable()}x.set(m.ne,Qs);function Tr(i){let r=i.compiler,e=r.module;if(X(i,32)|$(i,!0)|Ne(i,1,2))return e.unreachable();let t=i.operands,n=i.typeArguments,s=i.contextualType,a=n[0],l=a.isIntegerValue&&s.isIntegerValue&&s.size>a.size?s:a;if(!a.isIntegerValue)return r.error(203,i.reportNode.typeArgumentsRange,"atomic.load",a.toString()),r.currentType=l,e.unreachable();let o=r.compileExpression(t[0],r.options.usizeType,1),u=t.length==2?_t(t[1],r):0;return u<0?(r.currentType=l,e.unreachable()):(r.currentType=l,e.atomic_load(a.byteSize,o,l.toRef(),u))}x.set(m.atomic_load,Tr);function Sr(i){let r=i.compiler,e=r.module;if(X(i,32)|$(i)|Ne(i,2,3))return e.unreachable();let t=i.operands,n=i.typeArguments,s=i.contextualType,a=n[0];if(!a.isIntegerValue)return r.error(203,i.reportNode.typeArgumentsRange,"atomic.store",a.toString()),r.currentType=p.void,e.unreachable();let l=r.compileExpression(t[0],r.options.usizeType,1),o=i.contextIsExact?r.compileExpression(t[1],s,1):r.compileExpression(t[1],a,a.isIntegerValue?0:1),u=r.currentType;a.isIntegerValue&&(!u.isIntegerValue||u.size<a.size)&&(o=r.convertExpression(o,u,a,!1,t[1]),u=a);let c=t.length==3?_t(t[2],r):0;return c<0?(r.currentType=p.void,e.unreachable()):(r.currentType=p.void,e.atomic_store(a.byteSize,l,o,u.toRef(),c))}x.set(m.atomic_store,Sr);function un(i,r,e){let t=i.compiler,n=t.module;if(X(i,32)|$(i,!0)|Ne(i,2,3))return n.unreachable();let s=i.operands,a=i.typeArguments,l=i.contextualType,o=a[0];if(!o.isIntegerValue||o.size<8)return t.error(203,i.reportNode.typeArgumentsRange,e,o.toString()),n.unreachable();let u=t.compileExpression(s[0],t.options.usizeType,1),c=i.contextIsExact?t.compileExpression(s[1],l,1):t.compileExpression(s[1],o,o.isIntegerValue?0:1),f=t.currentType;o.isIntegerValue&&(!f.isIntegerValue||f.size<o.size)&&(c=t.convertExpression(c,f,o,!1,s[1]),f=o);let _=s.length==3?_t(s[2],t):0;return _<0?(t.currentType=f,n.unreachable()):(t.currentType=f,n.atomic_rmw(r,o.byteSize,_,u,c,f.toRef()))}function vr(i){return un(i,0,"atomic.add")}x.set(m.atomic_add,vr);function Ir(i){return un(i,1,"atomic.sub")}x.set(m.atomic_sub,Ir);function kr(i){return un(i,2,"atomic.and")}x.set(m.atomic_and,kr);function Fr(i){return un(i,3,"atomic.or")}x.set(m.atomic_or,Fr);function wr(i){return un(i,4,"atomic.xor")}x.set(m.atomic_xor,wr);function Rr(i){return un(i,5,"atomic.xchg")}x.set(m.atomic_xchg,Rr);function Cr(i){let r=i.compiler,e=r.module;if(X(i,32)|$(i,!0)|Ne(i,3,4))return e.unreachable();let t=i.operands,n=i.typeArguments,s=i.contextualType,a=n[0];if(!a.isIntegerValue||a.size<8)return r.error(203,i.reportNode.typeArgumentsRange,"atomic.cmpxchg",a.toString()),e.unreachable();let l=r.compileExpression(t[0],r.options.usizeType,1),o=i.contextIsExact?r.compileExpression(t[1],s,1):r.compileExpression(t[1],a,a.isIntegerValue?0:1),u=r.currentType,c=r.compileExpression(t[2],u,1);a.isIntegerValue&&(!u.isIntegerValue||u.size<a.size)&&(o=r.convertExpression(o,u,a,!1,t[1]),c=r.convertExpression(c,u,a,!1,t[2]),u=a);let f=t.length==4?_t(t[3],r):0;return f<0?(r.currentType=u,e.unreachable()):(r.currentType=u,e.atomic_cmpxchg(a.byteSize,f,l,o,c,u.toRef()))}x.set(m.atomic_cmpxchg,Cr);function qf(i){let r=i.compiler,e=r.module;if(X(i,32)|$(i)|Ne(i,2,3))return r.currentType=p.i32,e.unreachable();let t=i.operands,s=i.typeArguments[0],a=r.compileExpression(t[0],r.options.usizeType,1),l=r.compileExpression(t[1],s,1),o=t.length==3?r.compileExpression(t[2],p.i64,1):e.i64(-1,-1);switch(r.currentType=p.i32,s.kind){case 3:case 4:case 5:case 8:case 9:case 10:return e.atomic_wait(a,l,o,s.toRef())}return r.error(203,i.reportNode.typeArgumentsRange,"atomic.wait",s.toString()),e.unreachable()}x.set(m.atomic_wait,qf);function M6(i){let r=i.compiler,e=r.module;if(X(i,32)|I(i)|Ne(i,1,2))return r.currentType=p.i32,e.unreachable();let t=i.operands,n=r.compileExpression(t[0],r.options.usizeType,1),s=t.length==2?r.compileExpression(t[1],p.i32,1):e.i32(-1);return r.currentType=p.i32,e.atomic_notify(n,s)}x.set(m.atomic_notify,M6);function z6(i){let r=i.compiler,e=r.module;return r.currentType=p.void,X(i,32)|I(i)|K(i,0)?e.unreachable():e.atomic_fence()}x.set(m.atomic_fence,z6);function D6(i){let r=i.compiler,e=r.module;if(fe(i,!0)|K(i,3))return e.unreachable();let t=i.operands,n=i.typeArguments,s=n?r.compileExpression(t[0],n[0],1):r.compileExpression(t[0],p.auto),a=r.currentType;if(!a.isAny(384))return r.error(203,i.reportNode.typeArgumentsRange,"select",a.toString()),e.unreachable();let l=r.compileExpression(t[1],a,1),o=r.makeIsTrueish(r.compileExpression(t[2],p.bool),r.currentType,t[2]);return r.currentType=a,e.select(s,l,o)}x.set(m.select,D6);function G6(i){return I(i),K(i,0),i.compiler.module.unreachable()}x.set(m.unreachable,G6);function U6(i){let r=i.compiler,e=r.module;return r.currentType=p.i32,I(i)|K(i,0)?e.unreachable():e.memory_size()}x.set(m.memory_size,U6);function V6(i){let r=i.compiler,e=r.module;return r.currentType=p.i32,I(i)|K(i,1)?e.unreachable():e.memory_grow(r.compileExpression(i.operands[0],p.i32,1))}x.set(m.memory_grow,V6);function O6(i){let r=i.compiler,e=r.module;if(r.currentType=p.void,I(i)|K(i,3))return e.unreachable();let t=i.operands;if(!r.options.hasFeature(8)){let o=r.resolver.resolveFunction(i.prototype,null);return r.currentType=p.void,!o||!r.compileFunction(o,!0)?e.unreachable():r.compileCallDirect(o,t,i.reportNode)}let n=r.options.usizeType,s=r.compileExpression(t[0],n,1),a=r.compileExpression(t[1],n,1),l=r.compileExpression(t[2],n,1);return r.currentType=p.void,e.memory_copy(s,a,l)}x.set(m.memory_copy,O6);function q6(i){let r=i.compiler,e=r.module;if(r.currentType=p.void,I(i)|K(i,3))return e.unreachable();let t=i.operands;if(!r.options.hasFeature(8)){let o=r.resolver.resolveFunction(i.prototype,null);return r.currentType=p.void,!o||!r.compileFunction(o,!0)?e.unreachable():r.compileCallDirect(o,t,i.reportNode)}let n=r.options.usizeType,s=r.compileExpression(t[0],n,1),a=r.compileExpression(t[1],p.u8,1),l=r.compileExpression(t[2],n,1);return r.currentType=p.void,e.memory_fill(s,a,l)}x.set(m.memory_fill,q6);function W6(i){let r=i.compiler,e=r.module;if(r.currentType=p.i32,fe(i)|Ne(i,1,2))return e.unreachable();let t=i.typeArguments,n=i.operands,s=n.length,a=r.options.usizeType,l;if(t&&t.length>0){let o=t[0];if(!o.isValue)return r.error(203,i.reportNode.typeArgumentsRange,"memory.data",o.toString()),r.currentType=a,e.unreachable();let u=n[0];if(u.kind!=18||u.literalKind!=5)return r.error(227,n[0].range),r.currentType=a,e.unreachable();let c=u.elementExpressions,f=c.length,_=new Array(f),d=!0;for(let E=0;E<f;++E){let A=c[E];if(A.kind!=21){let k=r.compileExpression(A,o,1),F=e.runExpression(k,1);F?k=F:d=!1,_[E]=k}else _[E]=r.makeZero(o)}if(!d)return r.error(220,u.range),r.currentType=a,e.unreachable();let g=o.byteSize;if(s==2&&(g=ir(n[1],g,r),g<0))return r.currentType=a,e.unreachable();let y=new Uint8Array(f*o.byteSize);assert(r.writeStaticBuffer(y,0,o,_)==y.byteLength),l=r.addAlignedMemorySegment(y,g).offset}else{let o=r.compileExpression(n[0],p.i32,1),u=e.runExpression(o,1);if(!u)return r.error(220,n[0].range),r.currentType=a,e.unreachable();let c=se(u);if(c<1)return r.error(222,n[0].range,"1",i32.MAX_VALUE.toString()),r.currentType=a,e.unreachable();let f=16;if(s==2&&(f=ir(n[1],f,r),f<0))return r.currentType=a,e.unreachable();l=r.addAlignedMemorySegment(new Uint8Array(c),f).offset}return r.currentType=a,a==p.usize32?(assert(!i64_high(l)),e.i32(i64_low(l))):e.i64(i64_low(l),i64_high(l))}x.set(m.memory_data,W6);function K6(i){let r=i.compiler,e=r.module;if(I(i)|K(i,1))return e.unreachable();let t=i.operands,n=r.compileExpression(t[0],p.i32,1);return r.currentType=p.i31,e.i31_new(n)}x.set(m.i31_new,K6);function H6(i){let r=i.compiler,e=r.module;if(I(i)|K(i,1))return e.unreachable();let t=i.operands,n=r.compileExpression(t[0],p.i31.asNullable(),1);return i.contextualType.is(2)?(r.currentType=p.u32,e.i31_get(n,!1)):(r.currentType=p.i32,e.i31_get(n,!0))}x.set(m.i31_get,H6);function ax(i){let r=i.classReference;return r!=null&&r.hasDecorator(2048)}function lx(i){let r=i.classReference;return r!=null&&r.hasDecorator(16)&&!r.hasDecorator(2048)&&!r.hasDecorator(4096)}function j6(i){let r=i.compiler,e=r.module;if($(i,!0)|K(i,1))return e.unreachable();let t=i.operands,s=i.typeArguments[0];if(s.classReference!=null&&assert(s.classReference).hasDecorator(4096))return r.error(100,i.reportNode.range,"changetype to an @inline struct (a value has no pointer representation; use @unmanaged struct for a view over bytes)"),e.unreachable();let a=r.compileExpression(t[0],p.auto),l=r.currentType;return r.currentType=s,ax(s)&&lx(l)?(r.error(6394,i.reportNode.range,l.toString()),e.unreachable()):(lx(s)&&ax(l)&&r.markOperandForRooting(),l.isChangeableTo(s)?a:(r.error(202,i.reportNode.range,l.toString(),s.toString()),e.unreachable()))}x.set(m.changetype,j6);function Q6(i){let r=i.compiler,e=r.module,t=i.typeArguments;if(fe(i,!0)|Ne(i,1,2))return t&&(assert(t.length),r.currentType=t[0].nonNullableType),e.unreachable();let n=i.operands,s=i.contextualType,a=t?r.compileExpression(n[0],t[0],5):r.compileExpression(n[0],p.bool,4),l=r.currentType;if(r.currentType=l.nonNullableType,r.options.noAssert)return a;let o=e.runExpression(a,0);if(o)switch(ce(o)){case B.I32:{if(se(o))return a;break}case B.I64:{if(Be(o)|Ge(o))return a;break}case B.F32:{if(Ce(o))return a;break}case B.F64:{if(Pe(o))return a;break}}let u=r.makeAbort(n.length==2?n[1]:null,i.reportNode);if(r.currentType=l.nonNullableType,s==p.void)switch(r.currentType=p.void,l.kind){case 0:case 1:case 2:case 3:case 6:case 7:case 8:return e.if(e.unary(20,a),u);case 4:case 9:return e.if(e.unary(21,a),u);case 5:case 10:return e.if(e.unary(145,a),u);case 11:return e.if(e.binary(57,a,e.f32(0)),u);case 12:return e.if(e.binary(70,a,e.f64(0)),u);case 16:case 15:case 17:case 18:case 19:case 20:case 21:case 22:case 23:case 24:case 25:return e.if(e.ref_is_null(a),u)}else{r.currentType=l.nonNullableType;let c=r.currentFlow;switch(r.currentType.kind){case 0:case 1:case 2:case 3:case 6:case 7:case 8:{let f=c.getTempLocal(l);return c.setLocalFlag(f.index,2),e.if(e.local_tee(f.index,a,!1),e.local_get(f.index,B.I32),u)}case 4:case 9:{let f=c.getTempLocal(p.i64);return e.if(e.unary(21,e.local_tee(f.index,a,!1)),u,e.local_get(f.index,B.I64))}case 5:case 10:{let f=c.getTempLocal(r.options.usizeType);return e.if(e.unary(145,e.local_tee(f.index,a,l.isManaged)),u,e.local_get(f.index,r.options.sizeTypeRef))}case 11:{let f=c.getTempLocal(p.f32);return e.if(e.binary(57,e.local_tee(f.index,a,!1),e.f32(0)),u,e.local_get(f.index,B.F32))}case 12:{let f=c.getTempLocal(p.f64);return e.if(e.binary(70,e.local_tee(f.index,a,!1),e.f64(0)),u,e.local_get(f.index,B.F64))}case 16:case 15:case 17:case 18:case 19:case 20:case 21:case 22:case 23:case 24:case 25:{let f=c.getTempLocal(l);return e.if(e.ref_is_null(e.local_tee(f.index,a,!1)),u,e.local_get(f.index,l.toRef()))}}}return r.error(203,i.reportNode.typeArgumentsRange,"assert",r.currentType.toString()),u}x.set(m.assert,Q6);function X6(i){let r=i.compiler,e=r.module;if(I(i)|K(i,1))return e.unreachable();let t=r.currentFlow,n=r.options.uncheckedBehavior===1,s=t.is(32768);n?assert(!s):t.set(32768);let a=r.compileExpression(i.operands[0],i.contextualType);return s||t.unset(32768),a}x.set(m.unchecked,X6);function $6(i){let r=i.compiler,e=r.module;if(I(i)|K(i,1))return e.unreachable();let t=r.currentFlow,n=t.is(131072);n||t.set(131072);let s=r.compileExpression(i.operands[0],i.contextualType);return n||t.unset(131072),s}x.set(m.inline_always,$6);function Z6(i){let r=i.compiler,e=r.module;if(fe(i,!0)|Ne(i,1,i32.MAX_VALUE))return e.unreachable();let t=i.operands,n=i.typeArguments,s;n?(assert(n.length),s=n[0]):s=i.contextualType;let a=r.compileExpression(t[0],p.u32,1),l=t.length-1,o=new Array(l),u=new Array(l);for(let c=0;c<l;++c)o[c]=r.compileExpression(t[1+c],p.auto),r.currentType.isManaged&&(o[c]=e.tostack(o[c])),u[c]=r.currentType.toRef();return r.currentType=s,e.call_indirect(null,a,o,ft(u),s.toRef())}x.set(m.call_indirect,Z6);function Y6(i){let r=i.compiler,e=r.module;if($(i,!0))return e.unreachable();let t=i.operands,a=i.typeArguments[0].getClass();if(!a)return r.error(2351,i.reportNode.expression.range),e.unreachable();r.currentType=a.type;let l=r.ensureConstructor(a,i.reportNode);return r.checkFieldInitialization(a,i.reportNode),r.compileInstantiate(l,t,0,i.reportNode)}x.set(m.instantiate,Y6);function Wf(i,r){let e=i.compiler,t=e.module;I(i);let n=i.operands,s=i.reportNode;return e.emitDiagnostic(102,r,s.range,null,n.length?n[0].range.toString():s.range.toString()),r==3?t.unreachable():t.nop()}function J6(i){return Wf(i,3)}x.set(m.ERROR,J6);function eA(i){return Wf(i,2)}x.set(m.WARNING,eA);function tA(i){return Wf(i,1)}x.set(m.INFO,tA);function rA(i){let r=i.compiler,e=i.prototype.parent;assert(e.kind==7);let t=e;assert(t.prototype==r.program.functionPrototype);let n=assert(t.typeArguments);assert(n.length==1);let s=n[0],a=assert(s.getSignature()),l=a.returnType;if(I(i)|Ne(i,1+a.requiredParameters,1+a.parameterTypes.length))return r.currentType=l,r.module.unreachable();let o=r.compileExpression(assert(i.thisOperand),s,1),u=assert(i.operands.shift()),c=a.thisType,f=0;if(c)f=r.compileExpression(u,c,1);else if(u.kind!=20)return r.error(2332,u.range),r.module.unreachable();return r.compileCallIndirect(a,o,i.operands,i.reportNode,f,i.contextualType==p.void)}x.set(m.Function_call,rA);function iA(i){let r=i.compiler,e=r.module;return r.currentType=i.compiler.program.stringInstance.type,r.error(100,i.reportNode.range,"String.raw"),e.unreachable()}x.set(m.String_raw,iA);function ot(i,r){let e=i.compiler;return I(i)|K(i,1)?(e.currentType=r,e.module.unreachable()):e.compileExpression(i.operands[0],r,2)}function nA(i){return ot(i,p.i8)}x.set(m.i8,nA);function sA(i){return ot(i,p.i16)}x.set(m.i16,sA);function aA(i){return ot(i,p.i32)}x.set(m.i32,aA);function lA(i){return ot(i,p.i64)}x.set(m.i64,lA);function oA(i){return ot(i,i.compiler.options.isizeType)}x.set(m.isize,oA);function uA(i){return ot(i,p.u8)}x.set(m.u8,uA);function cA(i){return ot(i,p.u16)}x.set(m.u16,cA);function pA(i){return ot(i,p.u32)}x.set(m.u32,pA);function fA(i){return ot(i,p.u64)}x.set(m.u64,fA);function _A(i){return ot(i,i.compiler.options.usizeType)}x.set(m.usize,_A);function dA(i){return ot(i,p.bool)}x.set(m.bool,dA);function hA(i){return ot(i,p.f32)}x.set(m.f32,hA);function mA(i){return ot(i,p.f64)}x.set(m.f64,mA);function yA(i){return ox(i)}x.set(m.v128,yA);function ox(i){let r=i.compiler,e=r.module;if(X(i,16)|I(i)|K(i,16))return r.currentType=p.v128,e.unreachable();let t=i.operands,n=new Uint8Array(16),s=new Array(16),a=0;for(let l=0;l<16;++l){let o=r.compileExpression(t[l],p.i8,1),u=e.runExpression(o,1);u?ye(se(u),n,l):(s[l]=o,a++)}if(r.currentType=p.v128,a==0)return e.v128(n);{let l,o=a==16;o?l=e.unary(60,s[0]):l=e.v128(n);for(let u=i32(o);u<16;u++){let c=s[u];c&&(l=e.simd_replace(0,l,u,c))}return l}}x.set(m.i8x16,ox);function gA(i){let r=i.compiler,e=r.module;if(X(i,16)|I(i)|K(i,8))return r.currentType=p.v128,e.unreachable();let t=i.operands,n=new Uint8Array(16),s=new Array(8),a=0;for(let l=0;l<8;++l){let o=r.compileExpression(t[l],p.i16,1),u=e.runExpression(o,1);u?gr(se(u),n,l<<1):(s[l]=o,a++)}if(r.currentType=p.v128,a==0)return e.v128(n);{let l,o=a==8;o?l=e.unary(61,s[0]):l=e.v128(n);for(let u=i32(o);u<8;u++){let c=s[u];c&&(l=e.simd_replace(1,l,u,c))}return l}}x.set(m.i16x8,gA);function bA(i){let r=i.compiler,e=r.module;if(X(i,16)|I(i)|K(i,4))return r.currentType=p.v128,e.unreachable();let t=i.operands,n=new Uint8Array(16),s=new Array(4),a=0;for(let l=0;l<4;++l){let o=r.compileExpression(t[l],p.i32,1),u=e.runExpression(o,1);u?Se(se(u),n,l<<2):(s[l]=o,a++)}if(r.currentType=p.v128,a==0)return e.v128(n);{let l,o=a==4;o?l=e.unary(62,s[0]):l=e.v128(n);for(let u=i32(o);u<4;u++){let c=s[u];c&&(l=e.simd_replace(2,l,u,c))}return l}}x.set(m.i32x4,bA);function xA(i){let r=i.compiler,e=r.module;if(X(i,16)|I(i)|K(i,2))return r.currentType=p.v128,e.unreachable();let t=i.operands,n=new Uint8Array(16),s=new Array(2),a=0;for(let l=0;l<2;++l){let o=r.compileExpression(t[l],p.i64,1),u=e.runExpression(o,1);if(u){let c=l<<3;Se(Be(u),n,c+0),Se(Ge(u),n,c+4)}else s[l]=o,a++}if(r.currentType=p.v128,a==0)return e.v128(n);{let l,o=a==2;o?l=e.unary(63,s[0]):l=e.v128(n);for(let u=i32(o);u<2;u++){let c=s[u];c&&(l=e.simd_replace(3,l,u,c))}return l}}x.set(m.i64x2,xA);function EA(i){let r=i.compiler,e=r.module;if(X(i,16)|I(i)|K(i,4))return r.currentType=p.v128,e.unreachable();let t=i.operands,n=new Uint8Array(16),s=new Array(4),a=0;for(let l=0;l<4;++l){let o=r.compileExpression(t[l],p.f32,1),u=e.runExpression(o,1);u?qr(Ce(u),n,l<<2):(s[l]=o,a++)}if(r.currentType=p.v128,a==0)return e.v128(n);{let l,o=a==4;o?l=e.unary(64,s[0]):l=e.v128(n);for(let u=i32(o);u<4;u++){let c=s[u];c&&(l=e.simd_replace(5,l,u,c))}return l}}x.set(m.f32x4,EA);function AA(i){let r=i.compiler,e=r.module;if(X(i,16)|I(i)|K(i,2))return r.currentType=p.v128,e.unreachable();let t=i.operands,n=new Uint8Array(16),s=new Array(2),a=0;for(let l=0;l<2;++l){let o=r.compileExpression(t[l],p.f64,1),u=e.runExpression(o,1);u?Wr(Pe(u),n,l<<3):(s[l]=o,a++)}if(r.currentType=p.v128,a==0)return e.v128(n);{let l,o=a==2;o?l=e.unary(65,s[0]):l=e.v128(n);for(let u=i32(o);u<2;u++){let c=s[u];c&&(l=e.simd_replace(6,l,u,c))}return l}}x.set(m.f64x2,AA);function si(i){let r=i.compiler,e=r.module;if(X(i,16)|$(i)|K(i,1))return r.currentType=p.v128,e.unreachable();let t=i.operands,s=i.typeArguments[0],a=r.compileExpression(t[0],s,1);if(r.currentType=p.v128,s.isValue)switch(s.kind){case 1:case 6:return e.unary(60,a);case 2:case 7:return e.unary(61,a);case 3:case 8:return e.unary(62,a);case 4:case 9:return e.unary(63,a);case 5:case 10:return e.unary(r.options.isWasm64?63:62,a);case 11:return e.unary(64,a);case 12:return e.unary(65,a)}return r.error(203,i.reportNode.typeArgumentsRange,"v128.splat",s.toString()),e.unreachable()}x.set(m.v128_splat,si);function sr(i){let r=i.compiler,e=r.module;if(X(i,16)|$(i,!0)|K(i,2))return e.unreachable();let t=i.operands,s=i.typeArguments[0],a=r.compileExpression(t[0],p.v128,1),l=r.compileExpression(t[1],p.u8,1);r.currentType=s;let o=0,u=e.runExpression(l,1);if(u?o=se(u):r.error(220,t[1].range),s.isValue){let c=16/assert(s.byteSize)-1;switch((o<0||o>c)&&(r.error(222,t[1].range,"Lane index","0",c.toString()),o=0),s.kind){case 1:return e.simd_extract(0,a,o);case 6:return e.simd_extract(1,a,o);case 2:return e.simd_extract(2,a,o);case 7:return e.simd_extract(3,a,o);case 3:case 8:return e.simd_extract(4,a,o);case 4:case 9:return e.simd_extract(5,a,o);case 5:case 10:return e.simd_extract(r.options.isWasm64?5:4,a,o);case 11:return e.simd_extract(7,a,o);case 12:return e.simd_extract(8,a,o)}}return r.error(203,i.reportNode.typeArgumentsRange,"v128.extract_lane",s.toString()),e.unreachable()}x.set(m.v128_extract_lane,sr);function ai(i){let r=i.compiler,e=r.module;if(X(i,16)|$(i)|K(i,3))return r.currentType=p.v128,e.unreachable();let t=i.operands,s=i.typeArguments[0],a=r.compileExpression(t[0],p.v128,1),l=r.compileExpression(t[1],p.u8,1),o=r.compileExpression(t[2],s,1);r.currentType=p.v128;let u=0,c=e.runExpression(l,1);if(c?u=se(c):r.error(220,t[1].range),s.isValue){let f=16/assert(s.byteSize)-1;switch((u<0||u>f)&&(r.error(222,t[1].range,"Lane index","0",f.toString()),u=0),s.kind){case 1:case 6:return e.simd_replace(0,a,u,o);case 2:case 7:return e.simd_replace(1,a,u,o);case 3:case 8:return e.simd_replace(2,a,u,o);case 4:case 9:return e.simd_replace(3,a,u,o);case 5:case 10:return e.simd_replace(r.options.isWasm64?3:2,a,u,o);case 11:return e.simd_replace(5,a,u,o);case 12:return e.simd_replace(6,a,u,o)}}return r.error(203,i.reportNode.typeArgumentsRange,"v128.replace_lane",s.toString()),e.unreachable()}x.set(m.v128_replace_lane,ai);function li(i){let r=i.compiler,e=r.module;if(X(i,16)|$(i))return r.currentType=p.v128,e.unreachable();let t=i.operands,s=i.typeArguments[0];if(s.isValue){let a=s.byteSize,l=16/a;if(assert(Number.isInteger(l)&&Kr(l)),K(i,2+l))return r.currentType=p.v128,e.unreachable();let o=r.compileExpression(t[0],p.v128,1),u=r.compileExpression(t[1],p.v128,1);switch(s.kind){case 1:case 2:case 3:case 4:case 5:case 6:case 7:case 8:case 9:case 10:case 11:case 12:{let c=new Uint8Array(16),f=(l<<1)-1;for(let _=0;_<l;++_){let d=t[2+_],g=r.compileExpression(d,p.u8,1),y=e.runExpression(g,1),E=0;switch(y?(E=se(y),(E<0||E>f)&&(r.error(222,d.range,"Lane index","0",f.toString()),E=0)):r.error(220,d.range),a){case 1:{ye(E,c,_);break}case 2:{let A=_<<1,k=E<<1;ye(k,c,A),ye(k+1,c,A+1);break}case 4:{let A=_<<2,k=E<<2;ye(k,c,A),ye(k+1,c,A+1),ye(k+2,c,A+2),ye(k+3,c,A+3);break}case 8:{let A=_<<3,k=E<<3;ye(k,c,A),ye(k+1,c,A+1),ye(k+2,c,A+2),ye(k+3,c,A+3),ye(k+4,c,A+4),ye(k+5,c,A+5),ye(k+6,c,A+6),ye(k+7,c,A+7);break}default:assert(!1)}}return r.currentType=p.v128,e.simd_shuffle(o,u,c)}}}return r.error(203,i.reportNode.typeArgumentsRange,"v128.shuffle",s.toString()),r.currentType=p.v128,e.unreachable()}x.set(m.v128_shuffle,li);function ux(i){let r=i.compiler,e=r.module;if(X(i,16)|I(i)|K(i,2))return r.currentType=p.v128,e.unreachable();let t=i.operands,n=r.compileExpression(t[0],p.v128,1),s=r.compileExpression(t[1],p.v128,1);return e.binary(209,n,s)}x.set(m.v128_swizzle,ux);function Xs(i){let r=i.compiler,e=r.module;if(X(i,16)|$(i,!0)|Ne(i,1,3))return e.unreachable();let t=i.operands,s=i.typeArguments[0],a=r.compileExpression(t[0],r.options.usizeType,1),l=t.length,o=0,u=s.byteSize;if(l>=2){if(o=_t(t[1],r),o<0)return r.currentType=p.v128,e.unreachable();if(l==3&&(u=ir(t[2],u,r),u<0))return r.currentType=p.v128,e.unreachable()}if(r.currentType=p.v128,s.isValue)switch(s.kind){case 1:case 6:return e.simd_load(0,a,o,u);case 2:case 7:return e.simd_load(1,a,o,u);case 3:case 8:case 11:return e.simd_load(2,a,o,u);case 5:case 10:if(!r.options.isWasm64)return e.simd_load(2,a,o,u);case 4:case 9:case 12:return e.simd_load(3,a,o,u)}return r.error(203,i.reportNode.typeArgumentsRange,"v128.load_splat",s.toString()),e.unreachable()}x.set(m.v128_load_splat,Xs);function oi(i){let r=i.compiler,e=r.module;if(X(i,16)|$(i,!0)|Ne(i,1,3))return e.unreachable();let t=i.operands,s=i.typeArguments[0],a=r.compileExpression(t[0],r.options.usizeType,1),l=t.length,o=0,u=s.byteSize;if(l>=2){if(o=_t(t[1],r),o<0)return r.currentType=p.v128,e.unreachable();if(l==3&&(u=ir(t[2],u,r),u<0))return r.currentType=p.v128,e.unreachable()}if(r.currentType=p.v128,s.isValue)switch(s.kind){case 1:return e.simd_load(4,a,o,u);case 6:return e.simd_load(5,a,o,u);case 2:return e.simd_load(6,a,o,u);case 7:return e.simd_load(7,a,o,u);case 5:if(r.options.isWasm64)break;case 3:return e.simd_load(8,a,o,u);case 10:if(r.options.isWasm64)break;case 8:return e.simd_load(9,a,o,u)}return r.error(203,i.reportNode.typeArgumentsRange,"v128.load_ext",s.toString()),e.unreachable()}x.set(m.v128_load_ext,oi);function Kf(i){let r=i.compiler,e=r.module;if(X(i,16)|$(i,!0)|Ne(i,1,3))return e.unreachable();let t=i.operands,s=i.typeArguments[0],a=r.compileExpression(t[0],r.options.usizeType,1),l=t.length,o=0,u=s.byteSize;if(l>=2){if(o=_t(t[1],r),o<0)return r.currentType=p.v128,e.unreachable();if(l==3&&(u=ir(t[2],u,r),u<0))return r.currentType=p.v128,e.unreachable()}if(r.currentType=p.v128,s.isValue)switch(s.kind){case 3:case 8:case 11:return e.simd_load(10,a,o,u);case 4:case 9:case 12:return e.simd_load(11,a,o,u);case 5:case 10:return e.simd_load(r.options.isWasm64?11:10,a,o,u)}return r.error(203,i.reportNode.typeArgumentsRange,"v128.load_zero",s.toString()),e.unreachable()}x.set(m.v128_load_zero,Kf);function $s(i){let r=i.compiler,e=r.module;if(X(i,16)|$(i,!0)|Ne(i,3,5))return e.unreachable();let t=i.operands,s=i.typeArguments[0],a=r.compileExpression(t[0],r.options.usizeType,1),l=r.compileExpression(t[1],p.v128,1),o=r.compileExpression(t[2],p.u8,1),u=0,c=e.runExpression(o,1);c?u=se(c):r.error(220,t[2].range);let f=t.length,_=0,d=s.byteSize;if(f>=4){if(_=_t(t[3],r),_<0)return r.currentType=p.v128,e.unreachable();if(f==5&&(d=ir(t[4],d,r),d<0))return r.currentType=p.v128,e.unreachable()}if(r.currentType=p.v128,s.isValue){let g=16/assert(s.byteSize)-1;switch((u<0||u>g)&&(r.error(222,t[1].range,"Lane index","0",g.toString()),u=0),s.kind){case 1:case 6:return e.simd_loadstorelane(0,a,_,d,u,l);case 2:case 7:return e.simd_loadstorelane(1,a,_,d,u,l);case 3:case 8:case 11:return e.simd_loadstorelane(2,a,_,d,u,l);case 4:case 9:case 12:return e.simd_loadstorelane(3,a,_,d,u,l);case 5:case 10:return e.simd_loadstorelane(r.options.isWasm64?3:2,a,_,d,u,l)}}return r.error(203,i.reportNode.typeArgumentsRange,"v128.load_lane",s.toString()),e.unreachable()}x.set(m.v128_load_lane,$s);function Zs(i){let r=i.compiler,e=r.module;if(X(i,16)|$(i,!0)|Ne(i,3,5))return e.unreachable();let t=i.operands,s=i.typeArguments[0],a=r.compileExpression(t[0],r.options.usizeType,1),l=r.compileExpression(t[1],p.v128,1),o=r.compileExpression(t[2],p.u8,1),u=0,c=e.runExpression(o,1);c?u=se(c):r.error(220,t[2].range);let f=t.length,_=0,d=s.byteSize;if(f>=4){if(_=_t(t[3],r),_<0)return r.currentType=p.v128,e.unreachable();if(f==5&&(d=ir(t[4],d,r),d<0))return r.currentType=p.v128,e.unreachable()}if(r.currentType=p.void,s.isValue){let g=16/assert(s.byteSize)-1;switch((u<0||u>g)&&(r.error(222,t[1].range,"Lane index","0",g.toString()),u=0),s.kind){case 1:case 6:return e.simd_loadstorelane(4,a,_,d,u,l);case 2:case 7:return e.simd_loadstorelane(5,a,_,d,u,l);case 3:case 8:case 11:return e.simd_loadstorelane(6,a,_,d,u,l);case 4:case 9:case 12:return e.simd_loadstorelane(7,a,_,d,u,l);case 5:case 10:return e.simd_loadstorelane(r.options.isWasm64?7:6,a,_,d,u,l)}}return r.error(203,i.reportNode.typeArgumentsRange,"v128.store_lane",s.toString()),e.unreachable()}x.set(m.v128_store_lane,Zs);function ui(i){let r=i.compiler,e=r.module;if(X(i,16)|$(i)|K(i,2))return r.currentType=p.v128,e.unreachable();let t=i.operands,s=i.typeArguments[0],a=r.compileExpression(t[0],p.v128,1),l=r.compileExpression(t[1],p.v128,1);if(s.isValue)switch(s.kind){case 1:case 6:return e.binary(134,a,l);case 2:case 7:return e.binary(145,a,l);case 3:case 8:return e.binary(162,a,l);case 4:case 9:return e.binary(174,a,l);case 5:case 10:return e.binary(r.options.isWasm64?174:162,a,l);case 11:return e.binary(189,a,l);case 12:return e.binary(197,a,l)}return r.error(203,i.reportNode.typeArgumentsRange,"v128.add",s.toString()),e.unreachable()}x.set(m.v128_add,ui);function ci(i){let r=i.compiler,e=r.module;if(X(i,16)|$(i)|K(i,2))return r.currentType=p.v128,e.unreachable();let t=i.operands,s=i.typeArguments[0],a=r.compileExpression(t[0],p.v128,1),l=r.compileExpression(t[1],p.v128,1);if(s.isValue)switch(s.kind){case 1:case 6:return e.binary(137,a,l);case 2:case 7:return e.binary(148,a,l);case 3:case 8:return e.binary(163,a,l);case 4:case 9:return e.binary(175,a,l);case 5:case 10:return e.binary(r.options.isWasm64?175:163,a,l);case 11:return e.binary(190,a,l);case 12:return e.binary(198,a,l)}return r.error(203,i.reportNode.typeArgumentsRange,"v128.sub",s.toString()),e.unreachable()}x.set(m.v128_sub,ci);function cn(i){let r=i.compiler,e=r.module;if(X(i,16)|$(i)|K(i,2))return r.currentType=p.v128,e.unreachable();let t=i.operands,s=i.typeArguments[0],a=r.compileExpression(t[0],p.v128,1),l=r.compileExpression(t[1],p.v128,1);if(s.isValue)switch(s.kind){case 2:case 7:return e.binary(151,a,l);case 3:case 8:return e.binary(164,a,l);case 4:case 9:return e.binary(176,a,l);case 5:case 10:return e.binary(r.options.isWasm64?176:164,a,l);case 11:return e.binary(191,a,l);case 12:return e.binary(199,a,l)}return r.error(203,i.reportNode.typeArgumentsRange,"v128.mul",s.toString()),e.unreachable()}x.set(m.v128_mul,cn);function Hf(i){let r=i.compiler,e=r.module;if(X(i,16)|$(i)|K(i,2))return r.currentType=p.v128,e.unreachable();let t=i.operands,s=i.typeArguments[0],a=r.compileExpression(t[0],p.v128,1),l=r.compileExpression(t[1],p.v128,1);if(s.isValue)switch(s.kind){case 11:return e.binary(192,a,l);case 12:return e.binary(200,a,l)}return r.error(203,i.reportNode.typeArgumentsRange,"v128.div",s.toString()),e.unreachable()}x.set(m.v128_div,Hf);function Ys(i){let r=i.compiler,e=r.module;if(X(i,16)|$(i)|K(i,2))return r.currentType=p.v128,e.unreachable();let t=i.operands,s=i.typeArguments[0],a=r.compileExpression(t[0],p.v128,1),l=r.compileExpression(t[1],p.v128,1);if(s.isValue)switch(s.kind){case 1:return e.binary(135,a,l);case 6:return e.binary(136,a,l);case 2:return e.binary(146,a,l);case 7:return e.binary(147,a,l)}return r.error(203,i.reportNode.typeArgumentsRange,"v128.add_sat",s.toString()),e.unreachable()}x.set(m.v128_add_sat,Ys);function Js(i){let r=i.compiler,e=r.module;if(X(i,16)|$(i)|K(i,2))return r.currentType=p.v128,e.unreachable();let t=i.operands,s=i.typeArguments[0],a=r.compileExpression(t[0],p.v128,1),l=r.compileExpression(t[1],p.v128,1);if(s.isValue)switch(s.kind){case 1:return e.binary(138,a,l);case 6:return e.binary(139,a,l);case 2:return e.binary(149,a,l);case 7:return e.binary(150,a,l)}return r.error(203,i.reportNode.typeArgumentsRange,"v128.sub_sat",s.toString()),e.unreachable()}x.set(m.v128_sub_sat,Js);function ar(i){let r=i.compiler,e=r.module;if(X(i,16)|$(i)|K(i,2))return r.currentType=p.v128,e.unreachable();let t=i.operands,s=i.typeArguments[0],a=r.compileExpression(t[0],p.v128,1),l=r.compileExpression(t[1],p.v128,1);if(s.isValue)switch(s.kind){case 1:return e.binary(140,a,l);case 6:return e.binary(141,a,l);case 2:return e.binary(152,a,l);case 7:return e.binary(153,a,l);case 5:if(r.options.isWasm64)break;case 3:return e.binary(165,a,l);case 10:if(r.options.isWasm64)break;case 8:return e.binary(166,a,l);case 11:return e.binary(193,a,l);case 12:return e.binary(201,a,l)}return r.error(203,i.reportNode.typeArgumentsRange,"v128.min",s.toString()),e.unreachable()}x.set(m.v128_min,ar);function lr(i){let r=i.compiler,e=r.module;if(X(i,16)|$(i)|K(i,2))return r.currentType=p.v128,e.unreachable();let t=i.operands,s=i.typeArguments[0],a=r.compileExpression(t[0],p.v128,1),l=r.compileExpression(t[1],p.v128,1);if(s.isValue)switch(s.kind){case 1:return e.binary(142,a,l);case 6:return e.binary(143,a,l);case 2:return e.binary(154,a,l);case 7:return e.binary(155,a,l);case 5:if(r.options.isWasm64)break;case 3:return e.binary(167,a,l);case 10:if(r.options.isWasm64)break;case 8:return e.binary(168,a,l);case 11:return e.binary(194,a,l);case 12:return e.binary(202,a,l)}return r.error(203,i.reportNode.typeArgumentsRange,"v128.max",s.toString()),e.unreachable()}x.set(m.v128_max,lr);function jf(i){let r=i.compiler,e=r.module;if(X(i,16)|$(i)|K(i,2))return r.currentType=p.v128,e.unreachable();let t=i.operands,s=i.typeArguments[0],a=r.compileExpression(t[0],p.v128,1),l=r.compileExpression(t[1],p.v128,1);if(s.isValue)switch(s.kind){case 11:return e.binary(195,a,l);case 12:return e.binary(203,a,l)}return r.error(203,i.reportNode.typeArgumentsRange,"v128.pmin",s.toString()),e.unreachable()}x.set(m.v128_pmin,jf);function Qf(i){let r=i.compiler,e=r.module;if(X(i,16)|$(i)|K(i,2))return r.currentType=p.v128,e.unreachable();let t=i.operands,s=i.typeArguments[0],a=r.compileExpression(t[0],p.v128,1),l=r.compileExpression(t[1],p.v128,1);if(s.isValue)switch(s.kind){case 11:return e.binary(196,a,l);case 12:return e.binary(204,a,l)}return r.error(203,i.reportNode.typeArgumentsRange,"v128.pmax",s.toString()),e.unreachable()}x.set(m.v128_pmax,Qf);function cx(i){let r=i.compiler,e=r.module;if(X(i,16)|$(i)|K(i,2))return r.currentType=p.v128,e.unreachable();let t=i.operands,s=i.typeArguments[0],a=r.compileExpression(t[0],p.v128,1),l=r.compileExpression(t[1],p.v128,1);return s.isValue&&s.kind===2?e.binary(169,a,l):(r.error(203,i.reportNode.typeArgumentsRange,"v128.dot",s.toString()),e.unreachable())}x.set(m.v128_dot,cx);function Xf(i){let r=i.compiler,e=r.module;if(X(i,16)|$(i)|K(i,2))return r.currentType=p.v128,e.unreachable();let t=i.operands,s=i.typeArguments[0],a=r.compileExpression(t[0],p.v128,1),l=r.compileExpression(t[1],p.v128,1);if(s.isValue)switch(s.kind){case 6:return e.binary(144,a,l);case 7:return e.binary(156,a,l)}return r.error(203,i.reportNode.typeArgumentsRange,"v128.avgr",s.toString()),e.unreachable()}x.set(m.v128_avgr,Xf);function pi(i){let r=i.compiler,e=r.module;if(X(i,16)|$(i)|K(i,2))return r.currentType=p.v128,e.unreachable();let t=i.operands,s=i.typeArguments[0],a=r.compileExpression(t[0],p.v128,1),l=r.compileExpression(t[1],p.v128,1);if(s.isValue)switch(s.kind){case 1:case 6:return e.binary(76,a,l);case 2:case 7:return e.binary(86,a,l);case 3:case 8:return e.binary(96,a,l);case 4:case 9:return e.binary(106,a,l);case 5:case 10:return e.binary(r.options.isWasm64?106:96,a,l);case 11:return e.binary(118,a,l);case 12:return e.binary(124,a,l)}return r.error(203,i.reportNode.typeArgumentsRange,"v128.eq",s.toString()),e.unreachable()}x.set(m.v128_eq,pi);function fi(i){let r=i.compiler,e=r.module;if(X(i,16)|$(i)|K(i,2))return r.currentType=p.v128,e.unreachable();let t=i.operands,s=i.typeArguments[0],a=r.compileExpression(t[0],p.v128,1),l=r.compileExpression(t[1],p.v128,1);if(s.isValue)switch(s.kind){case 1:case 6:return e.binary(77,a,l);case 2:case 7:return e.binary(87,a,l);case 3:case 8:return e.binary(97,a,l);case 4:case 9:return e.binary(107,a,l);case 5:case 10:return e.binary(r.options.isWasm64?107:97,a,l);case 11:return e.binary(119,a,l);case 12:return e.binary(125,a,l)}return r.error(203,i.reportNode.typeArgumentsRange,"v128.ne",s.toString()),e.unreachable()}x.set(m.v128_ne,fi);function Mt(i){let r=i.compiler,e=r.module;if(X(i,16)|$(i)|K(i,2))return r.currentType=p.v128,e.unreachable();let t=i.operands,s=i.typeArguments[0],a=r.compileExpression(t[0],p.v128,1),l=r.compileExpression(t[1],p.v128,1);if(s.isValue)switch(s.kind){case 1:return e.binary(78,a,l);case 6:return e.binary(79,a,l);case 2:return e.binary(88,a,l);case 7:return e.binary(89,a,l);case 3:return e.binary(98,a,l);case 8:return e.binary(99,a,l);case 4:return e.binary(108,a,l);case 5:return e.binary(r.options.isWasm64?108:98,a,l);case 10:{if(r.options.isWasm64)break;return e.binary(99,a,l)}case 11:return e.binary(120,a,l);case 12:return e.binary(126,a,l)}return r.error(203,i.reportNode.typeArgumentsRange,"v128.lt",s.toString()),e.unreachable()}x.set(m.v128_lt,Mt);function zt(i){let r=i.compiler,e=r.module;if(X(i,16)|$(i)|K(i,2))return r.currentType=p.v128,e.unreachable();let t=i.operands,s=i.typeArguments[0],a=r.compileExpression(t[0],p.v128,1),l=r.compileExpression(t[1],p.v128,1);if(s.isValue)switch(s.kind){case 1:return e.binary(82,a,l);case 6:return e.binary(83,a,l);case 2:return e.binary(92,a,l);case 7:return e.binary(93,a,l);case 3:return e.binary(102,a,l);case 8:return e.binary(103,a,l);case 4:return e.binary(110,a,l);case 5:return e.binary(r.options.isWasm64?110:102,a,l);case 10:{if(r.options.isWasm64)break;return e.binary(103,a,l)}case 11:return e.binary(122,a,l);case 12:return e.binary(128,a,l)}return r.error(203,i.reportNode.typeArgumentsRange,"v128.le",s.toString()),e.unreachable()}x.set(m.v128_le,zt);function Dt(i){let r=i.compiler,e=r.module;if(X(i,16)|$(i)|K(i,2))return r.currentType=p.v128,e.unreachable();let t=i.operands,s=i.typeArguments[0],a=r.compileExpression(t[0],p.v128,1),l=r.compileExpression(t[1],p.v128,1);if(s.isValue)switch(s.kind){case 1:return e.binary(80,a,l);case 6:return e.binary(81,a,l);case 2:return e.binary(90,a,l);case 7:return e.binary(91,a,l);case 3:return e.binary(100,a,l);case 8:return e.binary(101,a,l);case 4:return e.binary(109,a,l);case 5:return e.binary(r.options.isWasm64?109:100,a,l);case 10:{if(r.options.isWasm64)break;return e.binary(101,a,l)}case 11:return e.binary(121,a,l);case 12:return e.binary(127,a,l)}return r.error(203,i.reportNode.typeArgumentsRange,"v128.gt",s.toString()),e.unreachable()}x.set(m.v128_gt,Dt);function Gt(i){let r=i.compiler,e=r.module;if(X(i,16)|$(i)|K(i,2))return r.currentType=p.v128,e.unreachable();let t=i.operands,s=i.typeArguments[0],a=r.compileExpression(t[0],p.v128,1),l=r.compileExpression(t[1],p.v128,1);if(s.isValue)switch(s.kind){case 1:return e.binary(84,a,l);case 6:return e.binary(85,a,l);case 2:return e.binary(94,a,l);case 7:return e.binary(95,a,l);case 3:return e.binary(104,a,l);case 8:return e.binary(105,a,l);case 4:return e.binary(111,a,l);case 5:return e.binary(r.options.isWasm64?111:104,a,l);case 10:{if(r.options.isWasm64)break;return e.binary(105,a,l)}case 11:return e.binary(123,a,l);case 12:return e.binary(129,a,l)}return r.error(203,i.reportNode.typeArgumentsRange,"v128.ge",s.toString()),e.unreachable()}x.set(m.v128_ge,Gt);function ea(i){let r=i.compiler,e=r.module;if(X(i,16)|$(i)|K(i,2))return r.currentType=p.v128,e.unreachable();let t=i.operands,s=i.typeArguments[0],a=r.compileExpression(t[0],p.v128,1),l=r.compileExpression(t[1],p.v128,1);if(s.isValue)switch(s.kind){case 2:return e.binary(205,a,l);case 7:return e.binary(206,a,l);case 3:return e.binary(207,a,l);case 8:return e.binary(208,a,l)}return r.error(203,i.reportNode.typeArgumentsRange,"v128.narrow",s.toString()),e.unreachable()}x.set(m.v128_narrow,ea);function _i(i){let r=i.compiler,e=r.module;if(X(i,16)|$(i)|K(i,1))return r.currentType=p.v128,e.unreachable();let t=i.operands,s=i.typeArguments[0],a=r.compileExpression(t[0],p.v128,1);if(s.isValue)switch(s.kind){case 1:case 6:return e.unary(69,a);case 2:case 7:return e.unary(74,a);case 3:case 8:return e.unary(78,a);case 4:case 9:return e.unary(82,a);case 5:case 10:return e.unary(r.options.isWasm64?82:78,a);case 11:return e.unary(93,a);case 12:return e.unary(100,a)}return r.error(203,i.reportNode.typeArgumentsRange,"v128.neg",s.toString()),e.unreachable()}x.set(m.v128_neg,_i);function di(i){let r=i.compiler,e=r.module;if(X(i,16)|$(i)|K(i,1))return r.currentType=p.v128,e.unreachable();let t=i.operands,s=i.typeArguments[0],a=r.compileExpression(t[0],p.v128,1);if(s.isValue)switch(s.kind){case 1:return e.unary(68,a);case 2:return e.unary(73,a);case 3:return e.unary(77,a);case 4:return e.unary(81,a);case 5:return e.unary(r.options.isWasm64?81:77,a);case 6:case 7:case 8:case 9:case 10:return a;case 11:return e.unary(92,a);case 12:return e.unary(99,a)}return r.error(203,i.reportNode.typeArgumentsRange,"v128.abs",s.toString()),e.unreachable()}x.set(m.v128_abs,di);function $f(i){let r=i.compiler,e=r.module;if(X(i,16)|$(i)|K(i,1))return r.currentType=p.v128,e.unreachable();let t=i.operands,s=i.typeArguments[0],a=r.compileExpression(t[0],p.v128,1);if(s.isValue)switch(s.kind){case 11:return e.unary(94,a);case 12:return e.unary(101,a)}return r.error(203,i.reportNode.typeArgumentsRange,"v128.sqrt",s.toString()),e.unreachable()}x.set(m.v128_sqrt,$f);function Zf(i){let r=i.compiler,e=r.module;if(X(i,16)|$(i)|K(i,1))return r.currentType=p.v128,e.unreachable();let t=i.operands,s=i.typeArguments[0],a=r.compileExpression(t[0],p.v128,1);if(s.isValue)switch(s.kind){case 11:return e.unary(95,a);case 12:return e.unary(102,a)}return r.error(203,i.reportNode.typeArgumentsRange,"v128.ceil",s.toString()),e.unreachable()}x.set(m.v128_ceil,Zf);function Yf(i){let r=i.compiler,e=r.module;if(X(i,16)|$(i)|K(i,1))return r.currentType=p.v128,e.unreachable();let t=i.operands,s=i.typeArguments[0],a=r.compileExpression(t[0],p.v128,1);if(s.isValue)switch(s.kind){case 11:return e.unary(96,a);case 12:return e.unary(103,a)}return r.error(203,i.reportNode.typeArgumentsRange,"v128.floor",s.toString()),e.unreachable()}x.set(m.v128_floor,Yf);function Jf(i){let r=i.compiler,e=r.module;if(X(i,16)|$(i)|K(i,1))return r.currentType=p.v128,e.unreachable();let t=i.operands,s=i.typeArguments[0],a=r.compileExpression(t[0],p.v128,1);if(s.isValue)switch(s.kind){case 11:return e.unary(97,a);case 12:return e.unary(104,a)}return r.error(203,i.reportNode.typeArgumentsRange,"v128.trunc",s.toString()),e.unreachable()}x.set(m.v128_trunc,Jf);function e_(i){let r=i.compiler,e=r.module;if(X(i,16)|$(i)|K(i,1))return r.currentType=p.v128,e.unreachable();let t=i.operands,s=i.typeArguments[0],a=r.compileExpression(t[0],p.v128,1);if(s.isValue)switch(s.kind){case 11:return e.unary(98,a);case 12:return e.unary(105,a)}return r.error(203,i.reportNode.typeArgumentsRange,"v128.nearest",s.toString()),e.unreachable()}x.set(m.v128_nearest,e_);function t_(i){let r=i.compiler,e=r.module;if(X(i,16)|$(i)|K(i,1))return r.currentType=p.v128,e.unreachable();let t=i.operands,s=i.typeArguments[0],a=r.compileExpression(t[0],p.v128,1);if(s.isValue)switch(s.kind){case 5:if(r.options.isWasm64)break;case 3:return e.unary(112,a);case 10:if(r.options.isWasm64)break;case 8:return e.unary(113,a)}return r.error(203,i.reportNode.typeArgumentsRange,"v128.convert",s.toString()),e.unreachable()}x.set(m.v128_convert,t_);function r_(i){let r=i.compiler,e=r.module;if(X(i,16)|$(i)|K(i,1))return r.currentType=p.v128,e.unreachable();let t=i.operands,s=i.typeArguments[0],a=r.compileExpression(t[0],p.v128,1);if(s.isValue)switch(s.kind){case 5:if(r.options.isWasm64)break;case 3:return e.unary(126,a);case 10:if(r.options.isWasm64)break;case 8:return e.unary(127,a)}return r.error(203,i.reportNode.typeArgumentsRange,"v128.convert_low",s.toString()),e.unreachable()}x.set(m.v128_convert_low,r_);function i_(i){let r=i.compiler,e=r.module;if(X(i,16)|$(i)|K(i,1))return r.currentType=p.v128,e.unreachable();let t=i.operands,s=i.typeArguments[0],a=r.compileExpression(t[0],p.v128,1);if(s.isValue)switch(s.kind){case 5:if(r.options.isWasm64)break;case 3:return e.unary(110,a);case 10:if(r.options.isWasm64)break;case 8:return e.unary(111,a)}return r.error(203,i.reportNode.typeArgumentsRange,"v128.trunc_sat",s.toString()),e.unreachable()}x.set(m.v128_trunc_sat,i_);function n_(i){let r=i.compiler,e=r.module;if(X(i,16)|$(i)|K(i,1))return r.currentType=p.v128,e.unreachable();let t=i.operands,s=i.typeArguments[0],a=r.compileExpression(t[0],p.v128,1);if(s.isValue)switch(s.kind){case 5:if(r.options.isWasm64)break;case 3:return e.unary(128,a);case 10:if(r.options.isWasm64)break;case 8:return e.unary(129,a)}return r.error(203,i.reportNode.typeArgumentsRange,"v128.trunc_sat_zero",s.toString()),e.unreachable()}x.set(m.v128_trunc_sat_zero,n_);function hi(i){let r=i.compiler,e=r.module;if(X(i,16)|$(i)|K(i,1))return r.currentType=p.v128,e.unreachable();let t=i.operands,s=i.typeArguments[0],a=r.compileExpression(t[0],p.v128,1);if(s.isValue)switch(s.kind){case 1:return e.unary(114,a);case 6:return e.unary(116,a);case 2:return e.unary(118,a);case 7:return e.unary(120,a);case 5:if(r.options.isWasm64)break;case 3:return e.unary(122,a);case 10:if(r.options.isWasm64)break;case 8:return e.unary(124,a)}return r.error(203,i.reportNode.typeArgumentsRange,"v128.extend_low",s.toString()),e.unreachable()}x.set(m.v128_extend_low,hi);function mi(i){let r=i.compiler,e=r.module;if(X(i,16)|$(i)|K(i,1))return r.currentType=p.v128,e.unreachable();let t=i.operands,s=i.typeArguments[0],a=r.compileExpression(t[0],p.v128,1);if(s.isValue)switch(s.kind){case 1:return e.unary(115,a);case 6:return e.unary(117,a);case 2:return e.unary(119,a);case 7:return e.unary(121,a);case 5:if(r.options.isWasm64)break;case 3:return e.unary(123,a);case 10:if(r.options.isWasm64)break;case 8:return e.unary(125,a)}return r.error(203,i.reportNode.typeArgumentsRange,"v128.extend_high",s.toString()),e.unreachable()}x.set(m.v128_extend_high,mi);function ta(i){let r=i.compiler,e=r.module;if(X(i,16)|$(i)|K(i,2))return r.currentType=p.v128,e.unreachable();let t=i.operands,n=i.typeArguments[0],s=r.compileExpression(t[0],p.v128,1),a=r.compileExpression(t[1],p.i32,1);if(r.currentType=p.v128,n.isValue)switch(n.kind){case 1:case 6:return e.simd_shift(0,s,a);case 2:case 7:return e.simd_shift(3,s,a);case 3:case 8:return e.simd_shift(6,s,a);case 4:case 9:return e.simd_shift(9,s,a);case 5:case 10:return e.simd_shift(r.options.isWasm64?9:6,s,a)}return r.error(203,i.reportNode.typeArgumentsRange,"v128.shl",n.toString()),e.unreachable()}x.set(m.v128_shl,ta);function or(i){let r=i.compiler,e=r.module;if(X(i,16)|$(i)|K(i,2))return r.currentType=p.v128,e.unreachable();let t=i.operands,n=i.typeArguments[0],s=r.compileExpression(t[0],p.v128,1),a=r.compileExpression(t[1],p.i32,1);if(r.currentType=p.v128,n.isValue)switch(n.kind){case 1:return e.simd_shift(1,s,a);case 6:return e.simd_shift(2,s,a);case 2:return e.simd_shift(4,s,a);case 7:return e.simd_shift(5,s,a);case 3:return e.simd_shift(7,s,a);case 8:return e.simd_shift(8,s,a);case 4:return e.simd_shift(10,s,a);case 9:return e.simd_shift(11,s,a);case 5:return e.simd_shift(r.options.isWasm64?10:7,s,a);case 10:return e.simd_shift(r.options.isWasm64?11:8,s,a)}return r.error(203,i.reportNode.typeArgumentsRange,"v128.shr",n.toString()),e.unreachable()}x.set(m.v128_shr,or);function tu(i,r){let e=i.compiler,t=e.module;if(X(i,16)|I(i)|K(i,2))return e.currentType=p.v128,t.unreachable();let n=i.operands,s=e.compileExpression(n[0],p.v128,1),a=e.compileExpression(n[1],p.v128,1);return t.binary(r,s,a)}function TA(i){return tu(i,130)}x.set(m.v128_and,TA);function SA(i){return tu(i,131)}x.set(m.v128_or,SA);function vA(i){return tu(i,132)}x.set(m.v128_xor,vA);function IA(i){return tu(i,133)}x.set(m.v128_andnot,IA);function kA(i,r){let e=i.compiler,t=e.module;if(X(i,16)|I(i)|K(i,1))return e.currentType=p.v128,t.unreachable();let n=i.operands,s=e.compileExpression(n[0],p.v128,1);return t.unary(r,s)}function FA(i){return kA(i,66)}x.set(m.v128_not,FA);function wA(i){let r=i.compiler,e=r.module;if(X(i,16)|I(i)|K(i,3))return r.currentType=p.v128,e.unreachable();let t=i.operands,n=r.compileExpression(t[0],p.v128,1),s=r.compileExpression(t[1],p.v128,1),a=r.compileExpression(t[2],p.v128,1);return e.simd_ternary(0,n,s,a)}x.set(m.v128_bitselect,wA);function RA(i){let r=i.compiler,e=r.module;if(X(i,16)|I(i)|K(i,1))return r.currentType=p.bool,e.unreachable();let t=i.operands,n=r.compileExpression(t[0],p.v128,1);return r.currentType=p.bool,e.unary(67,n)}x.set(m.v128_any_true,RA);function ra(i){let r=i.compiler,e=r.module;if(X(i,16)|$(i)|K(i,1))return r.currentType=p.bool,e.unreachable();let t=i.operands,n=i.typeArguments[0],s=r.compileExpression(t[0],p.v128,1);if(r.currentType=p.bool,n.isValue)switch(n.kind){case 1:case 6:return e.unary(70,s);case 2:case 7:return e.unary(75,s);case 3:case 8:return e.unary(79,s);case 4:case 9:return e.unary(83,s);case 5:case 10:return e.unary(r.options.isWasm64?83:79,s)}return r.error(203,i.reportNode.typeArgumentsRange,"v128.all_true",n.toString()),e.unreachable()}x.set(m.v128_all_true,ra);function ia(i){let r=i.compiler,e=r.module;if(X(i,16)|$(i)|K(i,1))return r.currentType=p.i32,e.unreachable();let t=i.operands,n=i.typeArguments[0],s=r.compileExpression(t[0],p.v128,1);if(r.currentType=p.i32,n.isValue)switch(n.kind){case 1:case 6:return e.unary(71,s);case 2:case 7:return e.unary(76,s);case 3:case 8:return e.unary(80,s);case 4:case 9:return e.unary(84,s);case 5:case 10:return e.unary(r.options.isWasm64?84:80,s)}return r.error(203,i.reportNode.typeArgumentsRange,"v128.bitmask",n.toString()),e.unreachable()}x.set(m.v128_bitmask,ia);function px(i){let r=i.compiler,e=r.module;if(X(i,16)|$(i)|K(i,1))return r.currentType=p.v128,e.unreachable();let t=i.operands,n=i.typeArguments[0],s=r.compileExpression(t[0],p.v128,1);if(r.currentType=p.v128,n.isValue)switch(n.kind){case 1:case 6:return e.unary(72,s)}return r.error(203,i.reportNode.typeArgumentsRange,"v128.popcnt",n.toString()),e.unreachable()}x.set(m.v128_popcnt,px);function na(i){let r=i.compiler,e=r.module;if(X(i,16)|$(i)|K(i,1))return r.currentType=p.v128,e.unreachable();let t=i.operands,n=i.typeArguments[0],s=r.compileExpression(t[0],p.v128,1);if(r.currentType=p.v128,n.isValue)switch(n.kind){case 1:return e.unary(106,s);case 6:return e.unary(107,s);case 2:return e.unary(108,s);case 7:return e.unary(109,s)}return r.error(203,i.reportNode.typeArgumentsRange,"v128.extadd_pairwise",n.toString()),e.unreachable()}x.set(m.v128_extadd_pairwise,na);function fx(i){let r=i.compiler,e=r.module;if(X(i,16)|fe(i)|K(i,1))return r.currentType=p.v128,e.unreachable();let t=i.operands,n=i.typeArguments,s=n?n[0]:p.f64,a=r.compileExpression(t[0],p.v128,1);return r.currentType=p.v128,s.isValue&&s.kind===12?e.unary(130,a):(r.error(203,i.reportNode.typeArgumentsRange,"v128.demote_zero",s.toString()),e.unreachable())}x.set(m.v128_demote_zero,fx);function _x(i){let r=i.compiler,e=r.module;if(X(i,16)|fe(i)|K(i,1))return r.currentType=p.v128,e.unreachable();let t=i.operands,n=i.typeArguments,s=n?n[0]:p.f32,a=r.compileExpression(t[0],p.v128,1);return r.currentType=p.v128,s.isValue&&s.kind===11?e.unary(131,a):(r.error(203,i.reportNode.typeArgumentsRange,"v128.promote_low",s.toString()),e.unreachable())}x.set(m.v128_promote_low,_x);function dx(i){let r=i.compiler,e=r.module;if(X(i,16)|$(i)|K(i,2))return r.currentType=p.v128,e.unreachable();let t=i.operands,s=i.typeArguments[0],a=r.compileExpression(t[0],p.v128,1),l=r.compileExpression(t[1],p.v128,1);return s.isValue&&s.kind===2?e.binary(157,a,l):(r.error(203,i.reportNode.typeArgumentsRange,"v128.q15mulr_sat",s.toString()),e.unreachable())}x.set(m.v128_q15mulr_sat,dx);function yi(i){let r=i.compiler,e=r.module;if(X(i,16)|$(i)|K(i,2))return r.currentType=p.v128,e.unreachable();let t=i.operands,s=i.typeArguments[0],a=r.compileExpression(t[0],p.v128,1),l=r.compileExpression(t[1],p.v128,1);if(s.isValue)switch(s.kind){case 1:return e.binary(158,a,l);case 6:return e.binary(160,a,l);case 2:return e.binary(170,a,l);case 7:return e.binary(172,a,l);case 3:return e.binary(177,a,l);case 8:return e.binary(179,a,l)}return r.error(203,i.reportNode.typeArgumentsRange,"v128.extmul_low",s.toString()),e.unreachable()}x.set(m.v128_extmul_low,yi);function gi(i){let r=i.compiler,e=r.module;if(X(i,16)|$(i)|K(i,2))return r.currentType=p.v128,e.unreachable();let t=i.operands,s=i.typeArguments[0],a=r.compileExpression(t[0],p.v128,1),l=r.compileExpression(t[1],p.v128,1);if(s.isValue)switch(s.kind){case 1:return e.binary(159,a,l);case 6:return e.binary(161,a,l);case 2:return e.binary(171,a,l);case 7:return e.binary(173,a,l);case 3:return e.binary(178,a,l);case 8:return e.binary(180,a,l)}return r.error(203,i.reportNode.typeArgumentsRange,"v128.extmul_high",s.toString()),e.unreachable()}x.set(m.v128_extmul_high,gi);function hx(i){let r=i.compiler,e=r.module;if(X(i,4096)|I(i)|K(i,2))return r.currentType=p.v128,e.unreachable();let t=i.operands,n=r.compileExpression(t[0],p.v128,1),s=r.compileExpression(t[1],p.v128,1);return e.binary(210,n,s)}x.set(m.v128_relaxed_swizzle,hx);function s_(i){let r=i.compiler,e=r.module;if(X(i,4096)|$(i)|K(i,1))return r.currentType=p.v128,e.unreachable();let t=i.operands,s=i.typeArguments[0],a=r.compileExpression(t[0],p.v128,1);if(s.isValue)switch(s.kind){case 5:if(r.options.isWasm64)break;case 3:return e.unary(132,a);case 10:if(r.options.isWasm64)break;case 8:return e.unary(133,a)}return r.error(203,i.reportNode.typeArgumentsRange,"v128.relaxed_trunc",s.toString()),e.unreachable()}x.set(m.v128_relaxed_trunc,s_);function a_(i){let r=i.compiler,e=r.module;if(X(i,4096)|$(i)|K(i,1))return r.currentType=p.v128,e.unreachable();let t=i.operands,s=i.typeArguments[0],a=r.compileExpression(t[0],p.v128,1);if(s.isValue)switch(s.kind){case 5:if(r.options.isWasm64)break;case 3:return e.unary(134,a);case 10:if(r.options.isWasm64)break;case 8:return e.unary(135,a)}return r.error(203,i.reportNode.typeArgumentsRange,"v128.relaxed_trunc_zero",s.toString()),e.unreachable()}x.set(m.v128_relaxed_trunc_zero,a_);function l_(i){let r=i.compiler,e=r.module;if(X(i,4096)|$(i)|K(i,3))return r.currentType=p.v128,e.unreachable();let t=i.operands,s=i.typeArguments[0],a=r.compileExpression(t[0],p.v128,1),l=r.compileExpression(t[1],p.v128,1),o=r.compileExpression(t[2],p.v128,1);if(s.isValue)switch(s.kind){case 11:return e.simd_ternary(1,a,l,o);case 12:return e.simd_ternary(3,a,l,o)}return r.error(203,i.reportNode.typeArgumentsRange,"v128.relaxed_madd",s.toString()),e.unreachable()}x.set(m.v128_relaxed_madd,l_);function o_(i){let r=i.compiler,e=r.module;if(X(i,4096)|$(i)|K(i,3))return r.currentType=p.v128,e.unreachable();let t=i.operands,s=i.typeArguments[0],a=r.compileExpression(t[0],p.v128,1),l=r.compileExpression(t[1],p.v128,1),o=r.compileExpression(t[2],p.v128,1);if(s.isValue)switch(s.kind){case 11:return e.simd_ternary(2,a,l,o);case 12:return e.simd_ternary(4,a,l,o)}return r.error(203,i.reportNode.typeArgumentsRange,"v128.relaxed_nmadd",s.toString()),e.unreachable()}x.set(m.v128_relaxed_nmadd,o_);function sa(i){let r=i.compiler,e=r.module;if(X(i,4096)|$(i)|K(i,3))return r.currentType=p.v128,e.unreachable();let t=i.operands,s=i.typeArguments[0],a=r.compileExpression(t[0],p.v128,1),l=r.compileExpression(t[1],p.v128,1),o=r.compileExpression(t[2],p.v128,1);if(s.isValue)switch(s.kind){case 1:case 6:return e.simd_ternary(5,a,l,o);case 2:case 7:return e.simd_ternary(6,a,l,o);case 3:case 8:return e.simd_ternary(7,a,l,o);case 4:case 9:return e.simd_ternary(8,a,l,o);case 5:case 10:return e.simd_ternary(r.options.isWasm64?8:7,a,l,o)}return r.error(203,i.reportNode.typeArgumentsRange,"v128.relaxed_laneselect",s.toString()),e.unreachable()}x.set(m.v128_relaxed_laneselect,sa);function u_(i){let r=i.compiler,e=r.module;if(X(i,4096)|$(i)|K(i,2))return r.currentType=p.v128,e.unreachable();let t=i.operands,s=i.typeArguments[0],a=r.compileExpression(t[0],p.v128,1),l=r.compileExpression(t[1],p.v128,1);if(s.isValue)switch(s.kind){case 11:return e.binary(211,a,l);case 12:return e.binary(213,a,l)}return r.error(203,i.reportNode.typeArgumentsRange,"v128.relaxed_min",s.toString()),e.unreachable()}x.set(m.v128_relaxed_min,u_);function c_(i){let r=i.compiler,e=r.module;if(X(i,4096)|$(i)|K(i,2))return r.currentType=p.v128,e.unreachable();let t=i.operands,s=i.typeArguments[0],a=r.compileExpression(t[0],p.v128,1),l=r.compileExpression(t[1],p.v128,1);if(s.isValue)switch(s.kind){case 11:return e.binary(212,a,l);case 12:return e.binary(214,a,l)}return r.error(203,i.reportNode.typeArgumentsRange,"v128.relaxed_max",s.toString()),e.unreachable()}x.set(m.v128_relaxed_max,c_);function mx(i){let r=i.compiler,e=r.module;if(X(i,4096)|$(i)|K(i,2))return r.currentType=p.v128,e.unreachable();let t=i.operands,s=i.typeArguments[0],a=r.compileExpression(t[0],p.v128,1),l=r.compileExpression(t[1],p.v128,1);return s.isValue&&s.kind===2?e.binary(215,a,l):(r.error(203,i.reportNode.typeArgumentsRange,"v128.relaxed_q15mulr",s.toString()),e.unreachable())}x.set(m.v128_relaxed_q15mulr,mx);function yx(i){let r=i.compiler,e=r.module;if(X(i,4096)|K(i,2)|$(i))return r.currentType=p.v128,e.unreachable();let t=i.operands,s=i.typeArguments[0],a=r.compileExpression(t[0],p.v128,1),l=r.compileExpression(t[1],p.v128,1);return s.kind===2?e.binary(216,a,l):(r.error(203,i.reportNode.typeArgumentsRange,"v128.relaxed_dot",s.toString()),e.unreachable())}x.set(m.v128_relaxed_dot,yx);function gx(i){let r=i.compiler,e=r.module;if(X(i,4096)|K(i,3)|$(i))return r.currentType=p.v128,e.unreachable();let t=i.operands,s=i.typeArguments[0],a=r.compileExpression(t[0],p.v128,1),l=r.compileExpression(t[1],p.v128,1),o=r.compileExpression(t[2],p.v128,1);switch(s.kind){case 5:if(r.options.isWasm64)break;case 3:return e.simd_ternary(9,a,l,o)}return r.error(203,i.reportNode.typeArgumentsRange,"v128.relaxed_dot_add",s.toString()),e.unreachable()}x.set(m.v128_relaxed_dot_add,gx);function CA(i){let r=i.compiler,e=r.module;if(I(i)|K(i,1))return r.currentType=p.void,e.unreachable();let t=i.operands,n=r.compileExpression(t[0],p.u32,1);return r.runtimeFeatures|=16,r.currentType=p.void,e.call(m.visit_globals,[n],B.None)}x.set(m.visit_globals,CA);function PA(i){let r=i.compiler,e=r.module;if(I(i)|K(i,2))return r.currentType=p.void,e.unreachable();let t=i.operands,n=r.compileExpression(t[0],r.options.usizeType,1),s=r.compileExpression(t[1],p.u32,1);return r.runtimeFeatures|=32,r.currentType=p.void,e.call(m.visit_members,[n,s],B.None)}x.set(m.visit_members,PA);function BA(i){return I(i),i.typeArguments=[p.i32],i.contextualType=p.i32,wf(i)}x.set(m.i32_clz,BA);function NA(i){return I(i),i.typeArguments=[p.i64],i.contextualType=p.i64,wf(i)}x.set(m.i64_clz,NA);function LA(i){return I(i),i.typeArguments=[p.i32],i.contextualType=p.i32,Rf(i)}x.set(m.i32_ctz,LA);function MA(i){return I(i),i.typeArguments=[p.i64],i.contextualType=p.i64,Rf(i)}x.set(m.i64_ctz,MA);function zA(i){return I(i),i.typeArguments=[p.i32],i.contextualType=p.i32,Cf(i)}x.set(m.i32_popcnt,zA);function DA(i){return I(i),i.typeArguments=[p.i64],i.contextualType=p.i64,Cf(i)}x.set(m.i64_popcnt,DA);function GA(i){return I(i),i.typeArguments=[p.i32],i.contextualType=p.i32,Pf(i)}x.set(m.i32_rotl,GA);function UA(i){return I(i),i.typeArguments=[p.i64],i.contextualType=p.i64,Pf(i)}x.set(m.i64_rotl,UA);function VA(i){return I(i),i.typeArguments=[p.i32],i.contextualType=p.i32,Bf(i)}x.set(m.i32_rotr,VA);function OA(i){return I(i),i.typeArguments=[p.i64],i.contextualType=p.i64,Bf(i)}x.set(m.i64_rotr,OA);function qA(i){return I(i),i.typeArguments=[p.f32],i.contextualType=p.f32,Nf(i)}x.set(m.f32_abs,qA);function WA(i){return I(i),i.typeArguments=[p.f64],i.contextualType=p.f64,Nf(i)}x.set(m.f64_abs,WA);function KA(i){return I(i),i.typeArguments=[p.f32],i.contextualType=p.f32,Lf(i)}x.set(m.f32_max,KA);function HA(i){return I(i),i.typeArguments=[p.f64],i.contextualType=p.f64,Lf(i)}x.set(m.f64_max,HA);function jA(i){return I(i),i.typeArguments=[p.f32],i.contextualType=p.f32,Mf(i)}x.set(m.f32_min,jA);function QA(i){return I(i),i.typeArguments=[p.f64],i.contextualType=p.f64,Mf(i)}x.set(m.f64_min,QA);function XA(i){return I(i),i.typeArguments=[p.f32],i.contextualType=p.f32,zf(i)}x.set(m.f32_ceil,XA);function $A(i){return I(i),i.typeArguments=[p.f64],i.contextualType=p.f64,zf(i)}x.set(m.f64_ceil,$A);function ZA(i){return I(i),i.typeArguments=[p.f32],i.contextualType=p.f32,Df(i)}x.set(m.f32_floor,ZA);function YA(i){return I(i),i.typeArguments=[p.f64],i.contextualType=p.f64,Df(i)}x.set(m.f64_floor,YA);function JA(i){return I(i),i.typeArguments=[p.f32],i.contextualType=p.f32,Gf(i)}x.set(m.f32_copysign,JA);function eT(i){return I(i),i.typeArguments=[p.f64],i.contextualType=p.f64,Gf(i)}x.set(m.f64_copysign,eT);function tT(i){return I(i),i.typeArguments=[p.f32],i.contextualType=p.f32,Uf(i)}x.set(m.f32_nearest,tT);function rT(i){return I(i),i.typeArguments=[p.f64],i.contextualType=p.f64,Uf(i)}x.set(m.f64_nearest,rT);function iT(i){return I(i),i.typeArguments=[p.i32],i.contextualType=p.f32,Os(i)}x.set(m.i32_reinterpret_f32,iT);function nT(i){return I(i),i.typeArguments=[p.i64],i.contextualType=p.f64,Os(i)}x.set(m.i64_reinterpret_f64,nT);function sT(i){return I(i),i.typeArguments=[p.f32],i.contextualType=p.i32,Os(i)}x.set(m.f32_reinterpret_i32,sT);function aT(i){return I(i),i.typeArguments=[p.f64],i.contextualType=p.i64,Os(i)}x.set(m.f64_reinterpret_i64,aT);function lT(i){return I(i),i.typeArguments=[p.f32],i.contextualType=p.f32,Vf(i)}x.set(m.f32_sqrt,lT);function oT(i){return I(i),i.typeArguments=[p.f64],i.contextualType=p.f64,Vf(i)}x.set(m.f64_sqrt,oT);function uT(i){return I(i),i.typeArguments=[p.f32],i.contextualType=p.f32,Of(i)}x.set(m.f32_trunc,uT);function cT(i){return I(i),i.typeArguments=[p.f64],i.contextualType=p.f64,Of(i)}x.set(m.f64_trunc,cT);function pT(i){return I(i),i.typeArguments=[p.i32],i.contextualType=p.i32,qs(i)}x.set(m.i32_rem_s,pT);function fT(i){return I(i),i.typeArguments=[p.u32],i.contextualType=p.u32,qs(i)}x.set(m.i32_rem_u,fT);function _T(i){return I(i),i.typeArguments=[p.i64],i.contextualType=p.i64,qs(i)}x.set(m.i64_rem_s,_T);function dT(i){return I(i),i.typeArguments=[p.u64],i.contextualType=p.u64,qs(i)}x.set(m.i64_rem_u,dT);function hT(i){return I(i),i.typeArguments=[p.i32],i.contextualType=p.i32,Ws(i)}x.set(m.i32_add,hT);function mT(i){return I(i),i.typeArguments=[p.i64],i.contextualType=p.i64,Ws(i)}x.set(m.i64_add,mT);function yT(i){return I(i),i.typeArguments=[p.f32],i.contextualType=p.f32,Ws(i)}x.set(m.f32_add,yT);function gT(i){return I(i),i.typeArguments=[p.f64],i.contextualType=p.f64,Ws(i)}x.set(m.f64_add,gT);function bT(i){return I(i),i.typeArguments=[p.i32],i.contextualType=p.i32,Ks(i)}x.set(m.i32_sub,bT);function xT(i){return I(i),i.typeArguments=[p.i64],i.contextualType=p.i64,Ks(i)}x.set(m.i64_sub,xT);function ET(i){return I(i),i.typeArguments=[p.f32],i.contextualType=p.f32,Ks(i)}x.set(m.f32_sub,ET);function AT(i){return I(i),i.typeArguments=[p.f64],i.contextualType=p.f64,Ks(i)}x.set(m.f64_sub,AT);function TT(i){return I(i),i.typeArguments=[p.i32],i.contextualType=p.i32,Hs(i)}x.set(m.i32_mul,TT);function ST(i){return I(i),i.typeArguments=[p.i64],i.contextualType=p.i64,Hs(i)}x.set(m.i64_mul,ST);function vT(i){return I(i),i.typeArguments=[p.f32],i.contextualType=p.f32,Hs(i)}x.set(m.f32_mul,vT);function IT(i){return I(i),i.typeArguments=[p.f64],i.contextualType=p.f64,Hs(i)}x.set(m.f64_mul,IT);function kT(i){return I(i),i.typeArguments=[p.i32],i.contextualType=p.i32,ni(i)}x.set(m.i32_div_s,kT);function FT(i){return I(i),i.typeArguments=[p.u32],i.contextualType=p.u32,ni(i)}x.set(m.i32_div_u,FT);function wT(i){return I(i),i.typeArguments=[p.i64],i.contextualType=p.i64,ni(i)}x.set(m.i64_div_s,wT);function RT(i){return I(i),i.typeArguments=[p.u64],i.contextualType=p.u64,ni(i)}x.set(m.i64_div_u,RT);function CT(i){return I(i),i.typeArguments=[p.f32],i.contextualType=p.f32,ni(i)}x.set(m.f32_div,CT);function PT(i){return I(i),i.typeArguments=[p.f64],i.contextualType=p.f64,ni(i)}x.set(m.f64_div,PT);function BT(i){return I(i),i.typeArguments=[p.i32],i.contextualType=p.i32,js(i)}x.set(m.i32_eq,BT);function NT(i){return I(i),i.typeArguments=[p.i64],i.contextualType=p.i32,js(i)}x.set(m.i64_eq,NT);function LT(i){return I(i),i.typeArguments=[p.f32],i.contextualType=p.i32,js(i)}x.set(m.f32_eq,LT);function MT(i){return I(i),i.typeArguments=[p.f64],i.contextualType=p.i32,js(i)}x.set(m.f64_eq,MT);function zT(i){return I(i),i.typeArguments=[p.i32],i.contextualType=p.i32,Qs(i)}x.set(m.i32_ne,zT);function DT(i){return I(i),i.typeArguments=[p.i64],i.contextualType=p.i32,Qs(i)}x.set(m.i64_ne,DT);function GT(i){return I(i),i.typeArguments=[p.f32],i.contextualType=p.i32,Qs(i)}x.set(m.f32_ne,GT);function UT(i){return I(i),i.typeArguments=[p.f64],i.contextualType=p.i32,Qs(i)}x.set(m.f64_ne,UT);function VT(i){return I(i),i.typeArguments=[p.i8],i.contextualType=p.i32,Ue(i)}x.set(m.i32_load8_s,VT);function OT(i){return I(i),i.typeArguments=[p.u8],i.contextualType=p.i32,Ue(i)}x.set(m.i32_load8_u,OT);function qT(i){return I(i),i.typeArguments=[p.i16],i.contextualType=p.i32,Ue(i)}x.set(m.i32_load16_s,qT);function WT(i){return I(i),i.typeArguments=[p.u16],i.contextualType=p.i32,Ue(i)}x.set(m.i32_load16_u,WT);function KT(i){return I(i),i.typeArguments=[p.i32],i.contextualType=p.i32,Ue(i)}x.set(m.i32_load,KT);function HT(i){return I(i),i.typeArguments=[p.i8],i.contextualType=p.i64,Ue(i)}x.set(m.i64_load8_s,HT);function jT(i){return I(i),i.typeArguments=[p.u8],i.contextualType=p.i64,Ue(i)}x.set(m.i64_load8_u,jT);function QT(i){return I(i),i.typeArguments=[p.i16],i.contextualType=p.i64,Ue(i)}x.set(m.i64_load16_s,QT);function XT(i){return I(i),i.typeArguments=[p.u16],i.contextualType=p.i64,Ue(i)}x.set(m.i64_load16_u,XT);function $T(i){return I(i),i.typeArguments=[p.i32],i.contextualType=p.i64,Ue(i)}x.set(m.i64_load32_s,$T);function ZT(i){return I(i),i.typeArguments=[p.u32],i.contextualType=p.i64,Ue(i)}x.set(m.i64_load32_u,ZT);function YT(i){return I(i),i.typeArguments=[p.i64],i.contextualType=p.i64,Ue(i)}x.set(m.i64_load,YT);function JT(i){return I(i),i.typeArguments=[p.f32],i.contextualType=p.f32,Ue(i)}x.set(m.f32_load,JT);function eS(i){return I(i),i.typeArguments=[p.f64],i.contextualType=p.f64,Ue(i)}x.set(m.f64_load,eS);function tS(i){return I(i),i.typeArguments=[p.i8],i.contextualType=p.i32,i.contextIsExact=!0,Tt(i)}x.set(m.i32_store8,tS);function rS(i){return I(i),i.typeArguments=[p.i16],i.contextualType=p.i32,i.contextIsExact=!0,Tt(i)}x.set(m.i32_store16,rS);function iS(i){return I(i),i.typeArguments=[p.i32],i.contextualType=p.i32,i.contextIsExact=!0,Tt(i)}x.set(m.i32_store,iS);function nS(i){return I(i),i.typeArguments=[p.i8],i.contextualType=p.i64,i.contextIsExact=!0,Tt(i)}x.set(m.i64_store8,nS);function sS(i){return I(i),i.typeArguments=[p.i16],i.contextualType=p.i64,i.contextIsExact=!0,Tt(i)}x.set(m.i64_store16,sS);function aS(i){return I(i),i.typeArguments=[p.i32],i.contextualType=p.i64,i.contextIsExact=!0,Tt(i)}x.set(m.i64_store32,aS);function lS(i){return I(i),i.typeArguments=[p.i64],i.contextualType=p.i64,i.contextIsExact=!0,Tt(i)}x.set(m.i64_store,lS);function oS(i){return I(i),i.typeArguments=[p.f32],i.contextualType=p.f32,i.contextIsExact=!0,Tt(i)}x.set(m.f32_store,oS);function uS(i){return I(i),i.typeArguments=[p.f64],i.contextualType=p.f64,i.contextIsExact=!0,Tt(i)}x.set(m.f64_store,uS);function cS(i){return I(i),i.typeArguments=[p.u8],i.contextualType=p.i32,Tr(i)}x.set(m.i32_atomic_load8_u,cS);function pS(i){return I(i),i.typeArguments=[p.u16],i.contextualType=p.i32,Tr(i)}x.set(m.i32_atomic_load16_u,pS);function fS(i){return I(i),i.typeArguments=[p.i32],i.contextualType=p.i32,Tr(i)}x.set(m.i32_atomic_load,fS);function _S(i){return I(i),i.typeArguments=[p.u8],i.contextualType=p.i64,Tr(i)}x.set(m.i64_atomic_load8_u,_S);function dS(i){return I(i),i.typeArguments=[p.u16],i.contextualType=p.i64,Tr(i)}x.set(m.i64_atomic_load16_u,dS);function hS(i){return I(i),i.typeArguments=[p.u32],i.contextualType=p.i64,Tr(i)}x.set(m.i64_atomic_load32_u,hS);function mS(i){return I(i),i.typeArguments=[p.i64],i.contextualType=p.i64,Tr(i)}x.set(m.i64_atomic_load,mS);function yS(i){return I(i),i.typeArguments=[p.i8],i.contextualType=p.i32,i.contextIsExact=!0,Sr(i)}x.set(m.i32_atomic_store8,yS);function gS(i){return I(i),i.typeArguments=[p.i16],i.contextualType=p.i32,i.contextIsExact=!0,Sr(i)}x.set(m.i32_atomic_store16,gS);function bS(i){return I(i),i.typeArguments=[p.i32],i.contextualType=p.i32,i.contextIsExact=!0,Sr(i)}x.set(m.i32_atomic_store,bS);function xS(i){return I(i),i.typeArguments=[p.i8],i.contextualType=p.i64,i.contextIsExact=!0,Sr(i)}x.set(m.i64_atomic_store8,xS);function ES(i){return I(i),i.typeArguments=[p.u16],i.contextualType=p.i64,i.contextIsExact=!0,Sr(i)}x.set(m.i64_atomic_store16,ES);function AS(i){return I(i),i.typeArguments=[p.i32],i.contextualType=p.i64,i.contextIsExact=!0,Sr(i)}x.set(m.i64_atomic_store32,AS);function TS(i){return I(i),i.typeArguments=[p.i64],i.contextualType=p.i64,i.contextIsExact=!0,Sr(i)}x.set(m.i64_atomic_store,TS);function SS(i){return I(i),i.typeArguments=[p.u8],i.contextualType=p.i32,i.contextIsExact=!0,vr(i)}x.set(m.i32_atomic_rmw8_add_u,SS);function vS(i){return I(i),i.typeArguments=[p.u16],i.contextualType=p.i32,i.contextIsExact=!0,vr(i)}x.set(m.i32_atomic_rmw16_add_u,vS);function IS(i){return I(i),i.typeArguments=[p.i32],i.contextualType=p.i32,i.contextIsExact=!0,vr(i)}x.set(m.i32_atomic_rmw_add,IS);function kS(i){return I(i),i.typeArguments=[p.u8],i.contextualType=p.i64,i.contextIsExact=!0,vr(i)}x.set(m.i64_atomic_rmw8_add_u,kS);function FS(i){return I(i),i.typeArguments=[p.u16],i.contextualType=p.i64,i.contextIsExact=!0,vr(i)}x.set(m.i64_atomic_rmw16_add_u,FS);function wS(i){return I(i),i.typeArguments=[p.u32],i.contextualType=p.i64,i.contextIsExact=!0,vr(i)}x.set(m.i64_atomic_rmw32_add_u,wS);function RS(i){return I(i),i.typeArguments=[p.i64],i.contextualType=p.i64,i.contextIsExact=!0,vr(i)}x.set(m.i64_atomic_rmw_add,RS);function CS(i){return I(i),i.typeArguments=[p.u8],i.contextualType=p.i32,i.contextIsExact=!0,Ir(i)}x.set(m.i32_atomic_rmw8_sub_u,CS);function PS(i){return I(i),i.typeArguments=[p.u16],i.contextualType=p.i32,i.contextIsExact=!0,Ir(i)}x.set(m.i32_atomic_rmw16_sub_u,PS);function BS(i){return I(i),i.typeArguments=[p.i32],i.contextualType=p.i32,i.contextIsExact=!0,Ir(i)}x.set(m.i32_atomic_rmw_sub,BS);function NS(i){return I(i),i.typeArguments=[p.u8],i.contextualType=p.i64,i.contextIsExact=!0,Ir(i)}x.set(m.i64_atomic_rmw8_sub_u,NS);function LS(i){return I(i),i.typeArguments=[p.u16],i.contextualType=p.i64,i.contextIsExact=!0,Ir(i)}x.set(m.i64_atomic_rmw16_sub_u,LS);function MS(i){return I(i),i.typeArguments=[p.u32],i.contextualType=p.i64,i.contextIsExact=!0,Ir(i)}x.set(m.i64_atomic_rmw32_sub_u,MS);function zS(i){return I(i),i.typeArguments=[p.i64],i.contextualType=p.i64,i.contextIsExact=!0,Ir(i)}x.set(m.i64_atomic_rmw_sub,zS);function DS(i){return I(i),i.typeArguments=[p.u8],i.contextualType=p.i32,i.contextIsExact=!0,kr(i)}x.set(m.i32_atomic_rmw8_and_u,DS);function GS(i){return I(i),i.typeArguments=[p.u16],i.contextualType=p.i32,i.contextIsExact=!0,kr(i)}x.set(m.i32_atomic_rmw16_and_u,GS);function US(i){return I(i),i.typeArguments=[p.i32],i.contextualType=p.i32,i.contextIsExact=!0,kr(i)}x.set(m.i32_atomic_rmw_and,US);function VS(i){return I(i),i.typeArguments=[p.u8],i.contextualType=p.i64,i.contextIsExact=!0,kr(i)}x.set(m.i64_atomic_rmw8_and_u,VS);function OS(i){return I(i),i.typeArguments=[p.u16],i.contextualType=p.i64,i.contextIsExact=!0,kr(i)}x.set(m.i64_atomic_rmw16_and_u,OS);function qS(i){return I(i),i.typeArguments=[p.u32],i.contextualType=p.i64,i.contextIsExact=!0,kr(i)}x.set(m.i64_atomic_rmw32_and_u,qS);function WS(i){return I(i),i.typeArguments=[p.i64],i.contextualType=p.i64,i.contextIsExact=!0,kr(i)}x.set(m.i64_atomic_rmw_and,WS);function KS(i){return I(i),i.typeArguments=[p.u8],i.contextualType=p.i32,i.contextIsExact=!0,Fr(i)}x.set(m.i32_atomic_rmw8_or_u,KS);function HS(i){return I(i),i.typeArguments=[p.u16],i.contextualType=p.i32,i.contextIsExact=!0,Fr(i)}x.set(m.i32_atomic_rmw16_or_u,HS);function jS(i){return I(i),i.typeArguments=[p.i32],i.contextualType=p.i32,i.contextIsExact=!0,Fr(i)}x.set(m.i32_atomic_rmw_or,jS);function QS(i){return I(i),i.typeArguments=[p.u8],i.contextualType=p.i64,i.contextIsExact=!0,Fr(i)}x.set(m.i64_atomic_rmw8_or_u,QS);function XS(i){return I(i),i.typeArguments=[p.u16],i.contextualType=p.i64,i.contextIsExact=!0,Fr(i)}x.set(m.i64_atomic_rmw16_or_u,XS);function $S(i){return I(i),i.typeArguments=[p.u32],i.contextualType=p.i64,i.contextIsExact=!0,Fr(i)}x.set(m.i64_atomic_rmw32_or_u,$S);function ZS(i){return I(i),i.typeArguments=[p.i64],i.contextualType=p.i64,i.contextIsExact=!0,Fr(i)}x.set(m.i64_atomic_rmw_or,ZS);function YS(i){return I(i),i.typeArguments=[p.u8],i.contextualType=p.i32,i.contextIsExact=!0,wr(i)}x.set(m.i32_atomic_rmw8_xor_u,YS);function JS(i){return I(i),i.typeArguments=[p.u16],i.contextualType=p.i32,i.contextIsExact=!0,wr(i)}x.set(m.i32_atomic_rmw16_xor_u,JS);function ev(i){return I(i),i.typeArguments=[p.i32],i.contextualType=p.i32,i.contextIsExact=!0,wr(i)}x.set(m.i32_atomic_rmw_xor,ev);function tv(i){return I(i),i.typeArguments=[p.u8],i.contextualType=p.i64,i.contextIsExact=!0,wr(i)}x.set(m.i64_atomic_rmw8_xor_u,tv);function rv(i){return I(i),i.typeArguments=[p.u16],i.contextualType=p.i64,i.contextIsExact=!0,wr(i)}x.set(m.i64_atomic_rmw16_xor_u,rv);function iv(i){return I(i),i.typeArguments=[p.u32],i.contextualType=p.i64,i.contextIsExact=!0,wr(i)}x.set(m.i64_atomic_rmw32_xor_u,iv);function nv(i){return I(i),i.typeArguments=[p.i64],i.contextualType=p.i64,i.contextIsExact=!0,wr(i)}x.set(m.i64_atomic_rmw_xor,nv);function sv(i){return I(i),i.typeArguments=[p.u8],i.contextualType=p.i32,i.contextIsExact=!0,Rr(i)}x.set(m.i32_atomic_rmw8_xchg_u,sv);function av(i){return I(i),i.typeArguments=[p.u16],i.contextualType=p.i32,i.contextIsExact=!0,Rr(i)}x.set(m.i32_atomic_rmw16_xchg_u,av);function lv(i){return I(i),i.typeArguments=[p.i32],i.contextualType=p.i32,i.contextIsExact=!0,Rr(i)}x.set(m.i32_atomic_rmw_xchg,lv);function ov(i){return I(i),i.typeArguments=[p.u8],i.contextualType=p.i64,i.contextIsExact=!0,Rr(i)}x.set(m.i64_atomic_rmw8_xchg_u,ov);function uv(i){return I(i),i.typeArguments=[p.u16],i.contextualType=p.i64,i.contextIsExact=!0,Rr(i)}x.set(m.i64_atomic_rmw16_xchg_u,uv);function cv(i){return I(i),i.typeArguments=[p.u32],i.contextualType=p.i64,i.contextIsExact=!0,Rr(i)}x.set(m.i64_atomic_rmw32_xchg_u,cv);function pv(i){return I(i),i.typeArguments=[p.i64],i.contextualType=p.i64,i.contextIsExact=!0,Rr(i)}x.set(m.i64_atomic_rmw_xchg,pv);function fv(i){return I(i),i.typeArguments=[p.u8],i.contextualType=p.i32,i.contextIsExact=!0,Cr(i)}x.set(m.i32_atomic_rmw8_cmpxchg_u,fv);function _v(i){return I(i),i.typeArguments=[p.u16],i.contextualType=p.i32,i.contextIsExact=!0,Cr(i)}x.set(m.i32_atomic_rmw16_cmpxchg_u,_v);function dv(i){return I(i),i.typeArguments=[p.i32],i.contextualType=p.i32,i.contextIsExact=!0,Cr(i)}x.set(m.i32_atomic_rmw_cmpxchg,dv);function hv(i){return I(i),i.typeArguments=[p.u8],i.contextualType=p.i64,i.contextIsExact=!0,Cr(i)}x.set(m.i64_atomic_rmw8_cmpxchg_u,hv);function mv(i){return I(i),i.typeArguments=[p.u16],i.contextualType=p.i64,i.contextIsExact=!0,Cr(i)}x.set(m.i64_atomic_rmw16_cmpxchg_u,mv);function yv(i){return I(i),i.typeArguments=[p.u32],i.contextualType=p.i64,i.contextIsExact=!0,Cr(i)}x.set(m.i64_atomic_rmw32_cmpxchg_u,yv);function gv(i){return I(i),i.typeArguments=[p.i64],i.contextualType=p.i64,i.contextIsExact=!0,Cr(i)}x.set(m.i64_atomic_rmw_cmpxchg,gv);function bv(i){return I(i),i.typeArguments=[p.i32],qf(i)}x.set(m.memory_atomic_wait32,bv);function xv(i){return I(i),i.typeArguments=[p.i64],i.contextualType=p.i32,qf(i)}x.set(m.memory_atomic_wait64,xv);function Ev(i){return I(i),i.typeArguments=[p.v128],i.contextualType=p.v128,Ue(i)}x.set(m.v128_load,Ev);function Av(i){return I(i),i.typeArguments=[p.i8],i.contextualType=p.v128,oi(i)}x.set(m.v128_load8x8_s,Av);function Tv(i){return I(i),i.typeArguments=[p.u8],i.contextualType=p.v128,oi(i)}x.set(m.v128_load8x8_u,Tv);function Sv(i){return I(i),i.typeArguments=[p.i16],i.contextualType=p.v128,oi(i)}x.set(m.v128_load16x4_s,Sv);function vv(i){return I(i),i.typeArguments=[p.u16],i.contextualType=p.v128,oi(i)}x.set(m.v128_load16x4_u,vv);function Iv(i){return I(i),i.typeArguments=[p.i32],i.contextualType=p.v128,oi(i)}x.set(m.v128_load32x2_s,Iv);function kv(i){return I(i),i.typeArguments=[p.u32],i.contextualType=p.v128,oi(i)}x.set(m.v128_load32x2_u,kv);function Fv(i){return I(i),i.typeArguments=[p.u8],i.contextualType=p.v128,Xs(i)}x.set(m.v128_load8_splat,Fv);function wv(i){return I(i),i.typeArguments=[p.u16],i.contextualType=p.v128,Xs(i)}x.set(m.v128_load16_splat,wv);function Rv(i){return I(i),i.typeArguments=[p.u32],i.contextualType=p.v128,Xs(i)}x.set(m.v128_load32_splat,Rv);function Cv(i){return I(i),i.typeArguments=[p.u64],i.contextualType=p.v128,Xs(i)}x.set(m.v128_load64_splat,Cv);function Pv(i){return I(i),i.typeArguments=[p.u32],i.contextualType=p.v128,Kf(i)}x.set(m.v128_load32_zero,Pv);function Bv(i){return I(i),i.typeArguments=[p.u64],i.contextualType=p.v128,Kf(i)}x.set(m.v128_load64_zero,Bv);function Nv(i){return I(i),i.typeArguments=[p.u8],i.contextualType=p.v128,$s(i)}x.set(m.v128_load8_lane,Nv);function Lv(i){return I(i),i.typeArguments=[p.u16],i.contextualType=p.v128,$s(i)}x.set(m.v128_load16_lane,Lv);function Mv(i){return I(i),i.typeArguments=[p.u32],i.contextualType=p.v128,$s(i)}x.set(m.v128_load32_lane,Mv);function zv(i){return I(i),i.typeArguments=[p.u64],i.contextualType=p.v128,$s(i)}x.set(m.v128_load64_lane,zv);function Dv(i){return I(i),i.typeArguments=[p.u8],i.contextualType=p.v128,Zs(i)}x.set(m.v128_store8_lane,Dv);function Gv(i){return I(i),i.typeArguments=[p.u16],i.contextualType=p.v128,Zs(i)}x.set(m.v128_store16_lane,Gv);function Uv(i){return I(i),i.typeArguments=[p.u32],i.contextualType=p.v128,Zs(i)}x.set(m.v128_store32_lane,Uv);function Vv(i){return I(i),i.typeArguments=[p.u64],i.contextualType=p.v128,Zs(i)}x.set(m.v128_store64_lane,Vv);function Ov(i){return I(i),i.typeArguments=[p.v128],i.contextualType=p.v128,i.contextIsExact=!0,Tt(i)}x.set(m.v128_store,Ov);function qv(i){return I(i),i.typeArguments=[p.i8],i.contextualType=p.v128,si(i)}x.set(m.i8x16_splat,qv);function Wv(i){return I(i),i.typeArguments=[p.i8],i.contextualType=p.i32,sr(i)}x.set(m.i8x16_extract_lane_s,Wv);function Kv(i){return I(i),i.typeArguments=[p.u8],i.contextualType=p.i32,sr(i)}x.set(m.i8x16_extract_lane_u,Kv);function Hv(i){return I(i),i.typeArguments=[p.i8],i.contextualType=p.v128,ai(i)}x.set(m.i8x16_replace_lane,Hv);function jv(i){return I(i),i.typeArguments=[p.i8],i.contextualType=p.v128,ui(i)}x.set(m.i8x16_add,jv);function Qv(i){return I(i),i.typeArguments=[p.i8],i.contextualType=p.v128,ci(i)}x.set(m.i8x16_sub,Qv);function Xv(i){return I(i),i.typeArguments=[p.i8],i.contextualType=p.v128,ar(i)}x.set(m.i8x16_min_s,Xv);function $v(i){return I(i),i.typeArguments=[p.u8],i.contextualType=p.v128,ar(i)}x.set(m.i8x16_min_u,$v);function Zv(i){return I(i),i.typeArguments=[p.i8],i.contextualType=p.v128,lr(i)}x.set(m.i8x16_max_s,Zv);function Yv(i){return I(i),i.typeArguments=[p.u8],i.contextualType=p.v128,lr(i)}x.set(m.i8x16_max_u,Yv);function Jv(i){return I(i),i.typeArguments=[p.u8],i.contextualType=p.v128,Xf(i)}x.set(m.i8x16_avgr_u,Jv);function e4(i){return I(i),i.typeArguments=[p.i8],i.contextualType=p.v128,di(i)}x.set(m.i8x16_abs,e4);function t4(i){return I(i),i.typeArguments=[p.i8],i.contextualType=p.v128,_i(i)}x.set(m.i8x16_neg,t4);function r4(i){return I(i),i.typeArguments=[p.i8],i.contextualType=p.v128,Ys(i)}x.set(m.i8x16_add_sat_s,r4);function i4(i){return I(i),i.typeArguments=[p.u8],i.contextualType=p.v128,Ys(i)}x.set(m.i8x16_add_sat_u,i4);function n4(i){return I(i),i.typeArguments=[p.i8],i.contextualType=p.v128,Js(i)}x.set(m.i8x16_sub_sat_s,n4);function s4(i){return I(i),i.typeArguments=[p.u8],i.contextualType=p.v128,Js(i)}x.set(m.i8x16_sub_sat_u,s4);function a4(i){return I(i),i.typeArguments=[p.i8],i.contextualType=p.v128,ta(i)}x.set(m.i8x16_shl,a4);function l4(i){return I(i),i.typeArguments=[p.i8],i.contextualType=p.v128,or(i)}x.set(m.i8x16_shr_s,l4);function o4(i){return I(i),i.typeArguments=[p.u8],i.contextualType=p.v128,or(i)}x.set(m.i8x16_shr_u,o4);function u4(i){return I(i),i.typeArguments=[p.i8],i.contextualType=p.i32,ra(i)}x.set(m.i8x16_all_true,u4);function c4(i){return I(i),i.typeArguments=[p.i8],i.contextualType=p.i32,ia(i)}x.set(m.i8x16_bitmask,c4);function p4(i){return I(i),i.typeArguments=[p.i8],i.contextualType=p.v128,px(i)}x.set(m.i8x16_popcnt,p4);function f4(i){return I(i),i.typeArguments=[p.i8],i.contextualType=p.v128,pi(i)}x.set(m.i8x16_eq,f4);function _4(i){return I(i),i.typeArguments=[p.i8],i.contextualType=p.v128,fi(i)}x.set(m.i8x16_ne,_4);function d4(i){return I(i),i.typeArguments=[p.i8],i.contextualType=p.v128,Mt(i)}x.set(m.i8x16_lt_s,d4);function h4(i){return I(i),i.typeArguments=[p.u8],i.contextualType=p.v128,Mt(i)}x.set(m.i8x16_lt_u,h4);function m4(i){return I(i),i.typeArguments=[p.i8],i.contextualType=p.v128,zt(i)}x.set(m.i8x16_le_s,m4);function y4(i){return I(i),i.typeArguments=[p.u8],i.contextualType=p.v128,zt(i)}x.set(m.i8x16_le_u,y4);function g4(i){return I(i),i.typeArguments=[p.i8],i.contextualType=p.v128,Dt(i)}x.set(m.i8x16_gt_s,g4);function b4(i){return I(i),i.typeArguments=[p.u8],i.contextualType=p.v128,Dt(i)}x.set(m.i8x16_gt_u,b4);function x4(i){return I(i),i.typeArguments=[p.i8],i.contextualType=p.v128,Gt(i)}x.set(m.i8x16_ge_s,x4);function E4(i){return I(i),i.typeArguments=[p.u8],i.contextualType=p.v128,Gt(i)}x.set(m.i8x16_ge_u,E4);function A4(i){return I(i),i.typeArguments=[p.i16],i.contextualType=p.v128,ea(i)}x.set(m.i8x16_narrow_i16x8_s,A4);function T4(i){return I(i),i.typeArguments=[p.u16],i.contextualType=p.v128,ea(i)}x.set(m.i8x16_narrow_i16x8_u,T4);function S4(i){return I(i),i.typeArguments=[p.i8],i.contextualType=p.v128,li(i)}x.set(m.i8x16_shuffle,S4);function v4(i){return I(i),i.typeArguments=null,i.contextualType=p.v128,ux(i)}x.set(m.i8x16_swizzle,v4);function I4(i){return I(i),i.typeArguments=[p.i16],i.contextualType=p.v128,si(i)}x.set(m.i16x8_splat,I4);function k4(i){return I(i),i.typeArguments=[p.i16],i.contextualType=p.i32,sr(i)}x.set(m.i16x8_extract_lane_s,k4);function F4(i){return I(i),i.typeArguments=[p.u16],i.contextualType=p.i32,sr(i)}x.set(m.i16x8_extract_lane_u,F4);function w4(i){return I(i),i.typeArguments=[p.i16],i.contextualType=p.v128,ai(i)}x.set(m.i16x8_replace_lane,w4);function R4(i){return I(i),i.typeArguments=[p.i16],i.contextualType=p.v128,ui(i)}x.set(m.i16x8_add,R4);function C4(i){return I(i),i.typeArguments=[p.i16],i.contextualType=p.v128,ci(i)}x.set(m.i16x8_sub,C4);function P4(i){return I(i),i.typeArguments=[p.i16],i.contextualType=p.v128,cn(i)}x.set(m.i16x8_mul,P4);function B4(i){return I(i),i.typeArguments=[p.i16],i.contextualType=p.v128,ar(i)}x.set(m.i16x8_min_s,B4);function N4(i){return I(i),i.typeArguments=[p.u16],i.contextualType=p.v128,ar(i)}x.set(m.i16x8_min_u,N4);function L4(i){return I(i),i.typeArguments=[p.i16],i.contextualType=p.v128,lr(i)}x.set(m.i16x8_max_s,L4);function M4(i){return I(i),i.typeArguments=[p.u16],i.contextualType=p.v128,lr(i)}x.set(m.i16x8_max_u,M4);function z4(i){return I(i),i.typeArguments=[p.u16],i.contextualType=p.v128,Xf(i)}x.set(m.i16x8_avgr_u,z4);function D4(i){return I(i),i.typeArguments=[p.i16],i.contextualType=p.v128,di(i)}x.set(m.i16x8_abs,D4);function G4(i){return I(i),i.typeArguments=[p.i16],i.contextualType=p.v128,_i(i)}x.set(m.i16x8_neg,G4);function U4(i){return I(i),i.typeArguments=[p.i16],i.contextualType=p.v128,Ys(i)}x.set(m.i16x8_add_sat_s,U4);function V4(i){return I(i),i.typeArguments=[p.u16],i.contextualType=p.v128,Ys(i)}x.set(m.i16x8_add_sat_u,V4);function O4(i){return I(i),i.typeArguments=[p.i16],i.contextualType=p.v128,Js(i)}x.set(m.i16x8_sub_sat_s,O4);function q4(i){return I(i),i.typeArguments=[p.u16],i.contextualType=p.v128,Js(i)}x.set(m.i16x8_sub_sat_u,q4);function W4(i){return I(i),i.typeArguments=[p.i16],i.contextualType=p.v128,ta(i)}x.set(m.i16x8_shl,W4);function K4(i){return I(i),i.typeArguments=[p.i16],i.contextualType=p.v128,or(i)}x.set(m.i16x8_shr_s,K4);function H4(i){return I(i),i.typeArguments=[p.u16],i.contextualType=p.v128,or(i)}x.set(m.i16x8_shr_u,H4);function j4(i){return I(i),i.typeArguments=[p.i16],i.contextualType=p.i32,ra(i)}x.set(m.i16x8_all_true,j4);function Q4(i){return I(i),i.typeArguments=[p.i16],i.contextualType=p.i32,ia(i)}x.set(m.i16x8_bitmask,Q4);function X4(i){return I(i),i.typeArguments=[p.i16],i.contextualType=p.v128,pi(i)}x.set(m.i16x8_eq,X4);function $4(i){return I(i),i.typeArguments=[p.i16],i.contextualType=p.v128,fi(i)}x.set(m.i16x8_ne,$4);function Z4(i){return I(i),i.typeArguments=[p.i16],i.contextualType=p.v128,Mt(i)}x.set(m.i16x8_lt_s,Z4);function Y4(i){return I(i),i.typeArguments=[p.u16],i.contextualType=p.v128,Mt(i)}x.set(m.i16x8_lt_u,Y4);function J4(i){return I(i),i.typeArguments=[p.i16],i.contextualType=p.v128,zt(i)}x.set(m.i16x8_le_s,J4);function eI(i){return I(i),i.typeArguments=[p.u16],i.contextualType=p.v128,zt(i)}x.set(m.i16x8_le_u,eI);function tI(i){return I(i),i.typeArguments=[p.i16],i.contextualType=p.v128,Dt(i)}x.set(m.i16x8_gt_s,tI);function rI(i){return I(i),i.typeArguments=[p.u16],i.contextualType=p.v128,Dt(i)}x.set(m.i16x8_gt_u,rI);function iI(i){return I(i),i.typeArguments=[p.i16],i.contextualType=p.v128,Gt(i)}x.set(m.i16x8_ge_s,iI);function nI(i){return I(i),i.typeArguments=[p.u16],i.contextualType=p.v128,Gt(i)}x.set(m.i16x8_ge_u,nI);function sI(i){return I(i),i.typeArguments=[p.i32],i.contextualType=p.v128,ea(i)}x.set(m.i16x8_narrow_i32x4_s,sI);function aI(i){return I(i),i.typeArguments=[p.u32],i.contextualType=p.v128,ea(i)}x.set(m.i16x8_narrow_i32x4_u,aI);function lI(i){return I(i),i.typeArguments=[p.i8],i.contextualType=p.v128,hi(i)}x.set(m.i16x8_extend_low_i8x16_s,lI);function oI(i){return I(i),i.typeArguments=[p.u8],i.contextualType=p.v128,hi(i)}x.set(m.i16x8_extend_low_i8x16_u,oI);function uI(i){return I(i),i.typeArguments=[p.i8],i.contextualType=p.v128,mi(i)}x.set(m.i16x8_extend_high_i8x16_s,uI);function cI(i){return I(i),i.typeArguments=[p.u8],i.contextualType=p.v128,mi(i)}x.set(m.i16x8_extend_high_i8x16_u,cI);function pI(i){return I(i),i.typeArguments=[p.i8],i.contextualType=p.v128,na(i)}x.set(m.i16x8_extadd_pairwise_i8x16_s,pI);function fI(i){return I(i),i.typeArguments=[p.u8],i.contextualType=p.v128,na(i)}x.set(m.i16x8_extadd_pairwise_i8x16_u,fI);function _I(i){return I(i),i.typeArguments=[p.i16],i.contextualType=p.v128,dx(i)}x.set(m.i16x8_q15mulr_sat_s,_I);function dI(i){return I(i),i.typeArguments=[p.i8],i.contextualType=p.v128,yi(i)}x.set(m.i16x8_extmul_low_i8x16_s,dI);function hI(i){return I(i),i.typeArguments=[p.u8],i.contextualType=p.v128,yi(i)}x.set(m.i16x8_extmul_low_i8x16_u,hI);function mI(i){return I(i),i.typeArguments=[p.i8],i.contextualType=p.v128,gi(i)}x.set(m.i16x8_extmul_high_i8x16_s,mI);function yI(i){return I(i),i.typeArguments=[p.u8],i.contextualType=p.v128,gi(i)}x.set(m.i16x8_extmul_high_i8x16_u,yI);function gI(i){return I(i),i.typeArguments=[p.i16],i.contextualType=p.v128,li(i)}x.set(m.i16x8_shuffle,gI);function bI(i){return I(i),i.typeArguments=[p.i32],i.contextualType=p.v128,si(i)}x.set(m.i32x4_splat,bI);function xI(i){return I(i),i.typeArguments=[p.i32],i.contextualType=p.i32,sr(i)}x.set(m.i32x4_extract_lane,xI);function EI(i){return I(i),i.typeArguments=[p.i32],i.contextualType=p.v128,ai(i)}x.set(m.i32x4_replace_lane,EI);function AI(i){return I(i),i.typeArguments=[p.i32],i.contextualType=p.v128,ui(i)}x.set(m.i32x4_add,AI);function TI(i){return I(i),i.typeArguments=[p.i32],i.contextualType=p.v128,ci(i)}x.set(m.i32x4_sub,TI);function SI(i){return I(i),i.typeArguments=[p.i32],i.contextualType=p.v128,cn(i)}x.set(m.i32x4_mul,SI);function vI(i){return I(i),i.typeArguments=[p.i32],i.contextualType=p.v128,ar(i)}x.set(m.i32x4_min_s,vI);function II(i){return I(i),i.typeArguments=[p.u32],i.contextualType=p.v128,ar(i)}x.set(m.i32x4_min_u,II);function kI(i){return I(i),i.typeArguments=[p.i32],i.contextualType=p.v128,lr(i)}x.set(m.i32x4_max_s,kI);function FI(i){return I(i),i.typeArguments=[p.u32],i.contextualType=p.v128,lr(i)}x.set(m.i32x4_max_u,FI);function wI(i){return I(i),i.typeArguments=[p.i16],i.contextualType=p.v128,cx(i)}x.set(m.i32x4_dot_i16x8_s,wI);function RI(i){return I(i),i.typeArguments=[p.i32],i.contextualType=p.v128,di(i)}x.set(m.i32x4_abs,RI);function CI(i){return I(i),i.typeArguments=[p.i32],i.contextualType=p.v128,_i(i)}x.set(m.i32x4_neg,CI);function PI(i){return I(i),i.typeArguments=[p.i32],i.contextualType=p.v128,ta(i)}x.set(m.i32x4_shl,PI);function BI(i){return I(i),i.typeArguments=[p.i32],i.contextualType=p.v128,or(i)}x.set(m.i32x4_shr_s,BI);function NI(i){return I(i),i.typeArguments=[p.u32],i.contextualType=p.v128,or(i)}x.set(m.i32x4_shr_u,NI);function LI(i){return I(i),i.typeArguments=[p.i32],i.contextualType=p.i32,ra(i)}x.set(m.i32x4_all_true,LI);function MI(i){return I(i),i.typeArguments=[p.i32],i.contextualType=p.i32,ia(i)}x.set(m.i32x4_bitmask,MI);function zI(i){return I(i),i.typeArguments=[p.i32],i.contextualType=p.v128,pi(i)}x.set(m.i32x4_eq,zI);function DI(i){return I(i),i.typeArguments=[p.i32],i.contextualType=p.v128,fi(i)}x.set(m.i32x4_ne,DI);function GI(i){return I(i),i.typeArguments=[p.i32],i.contextualType=p.v128,Mt(i)}x.set(m.i32x4_lt_s,GI);function UI(i){return I(i),i.typeArguments=[p.u32],i.contextualType=p.v128,Mt(i)}x.set(m.i32x4_lt_u,UI);function VI(i){return I(i),i.typeArguments=[p.i32],i.contextualType=p.v128,zt(i)}x.set(m.i32x4_le_s,VI);function OI(i){return I(i),i.typeArguments=[p.u32],i.contextualType=p.v128,zt(i)}x.set(m.i32x4_le_u,OI);function qI(i){return I(i),i.typeArguments=[p.i32],i.contextualType=p.v128,Dt(i)}x.set(m.i32x4_gt_s,qI);function WI(i){return I(i),i.typeArguments=[p.u32],i.contextualType=p.v128,Dt(i)}x.set(m.i32x4_gt_u,WI);function KI(i){return I(i),i.typeArguments=[p.i32],i.contextualType=p.v128,Gt(i)}x.set(m.i32x4_ge_s,KI);function HI(i){return I(i),i.typeArguments=[p.u32],i.contextualType=p.v128,Gt(i)}x.set(m.i32x4_ge_u,HI);function jI(i){return I(i),i.typeArguments=[p.i32],i.contextualType=p.v128,i_(i)}x.set(m.i32x4_trunc_sat_f32x4_s,jI);function QI(i){return I(i),i.typeArguments=[p.u32],i.contextualType=p.v128,i_(i)}x.set(m.i32x4_trunc_sat_f32x4_u,QI);function XI(i){return I(i),i.typeArguments=[p.i32],i.contextualType=p.v128,n_(i)}x.set(m.i32x4_trunc_sat_f64x2_s_zero,XI);function $I(i){return I(i),i.typeArguments=[p.u32],i.contextualType=p.v128,n_(i)}x.set(m.i32x4_trunc_sat_f64x2_u_zero,$I);function ZI(i){return I(i),i.typeArguments=[p.i16],i.contextualType=p.v128,hi(i)}x.set(m.i32x4_extend_low_i16x8_s,ZI);function YI(i){return I(i),i.typeArguments=[p.u16],i.contextualType=p.v128,hi(i)}x.set(m.i32x4_extend_low_i16x8_u,YI);function JI(i){return I(i),i.typeArguments=[p.i16],i.contextualType=p.v128,mi(i)}x.set(m.i32x4_extend_high_i16x8_s,JI);function e3(i){return I(i),i.typeArguments=[p.u16],i.contextualType=p.v128,mi(i)}x.set(m.i32x4_extend_high_i16x8_u,e3);function t3(i){return I(i),i.typeArguments=[p.i16],i.contextualType=p.v128,na(i)}x.set(m.i32x4_extadd_pairwise_i16x8_s,t3);function r3(i){return I(i),i.typeArguments=[p.u16],i.contextualType=p.v128,na(i)}x.set(m.i32x4_extadd_pairwise_i16x8_u,r3);function i3(i){return I(i),i.typeArguments=[p.i16],i.contextualType=p.v128,yi(i)}x.set(m.i32x4_extmul_low_i16x8_s,i3);function n3(i){return I(i),i.typeArguments=[p.u16],i.contextualType=p.v128,yi(i)}x.set(m.i32x4_extmul_low_i16x8_u,n3);function s3(i){return I(i),i.typeArguments=[p.i16],i.contextualType=p.v128,gi(i)}x.set(m.i32x4_extmul_high_i16x8_s,s3);function a3(i){return I(i),i.typeArguments=[p.u16],i.contextualType=p.v128,gi(i)}x.set(m.i32x4_extmul_high_i16x8_u,a3);function l3(i){return I(i),i.typeArguments=[p.i32],i.contextualType=p.v128,li(i)}x.set(m.i32x4_shuffle,l3);function o3(i){return I(i),i.typeArguments=[p.i64],i.contextualType=p.v128,si(i)}x.set(m.i64x2_splat,o3);function u3(i){return I(i),i.typeArguments=[p.i64],i.contextualType=p.i64,sr(i)}x.set(m.i64x2_extract_lane,u3);function c3(i){return I(i),i.typeArguments=[p.i64],i.contextualType=p.v128,ai(i)}x.set(m.i64x2_replace_lane,c3);function p3(i){return I(i),i.typeArguments=[p.i64],i.contextualType=p.v128,ui(i)}x.set(m.i64x2_add,p3);function f3(i){return I(i),i.typeArguments=[p.i64],i.contextualType=p.v128,ci(i)}x.set(m.i64x2_sub,f3);function _3(i){return I(i),i.typeArguments=[p.i64],i.contextualType=p.v128,cn(i)}x.set(m.i64x2_mul,_3);function d3(i){return I(i),i.typeArguments=[p.i64],i.contextualType=p.v128,di(i)}x.set(m.i64x2_abs,d3);function h3(i){return I(i),i.typeArguments=[p.i64],i.contextualType=p.v128,_i(i)}x.set(m.i64x2_neg,h3);function m3(i){return I(i),i.typeArguments=[p.i64],i.contextualType=p.v128,ta(i)}x.set(m.i64x2_shl,m3);function y3(i){return I(i),i.typeArguments=[p.i64],i.contextualType=p.v128,or(i)}x.set(m.i64x2_shr_s,y3);function g3(i){return I(i),i.typeArguments=[p.u64],i.contextualType=p.v128,or(i)}x.set(m.i64x2_shr_u,g3);function b3(i){return I(i),i.typeArguments=[p.i64],i.contextualType=p.i32,ra(i)}x.set(m.i64x2_all_true,b3);function x3(i){return I(i),i.typeArguments=[p.i64],i.contextualType=p.i32,ia(i)}x.set(m.i64x2_bitmask,x3);function E3(i){return I(i),i.typeArguments=[p.i64],i.contextualType=p.v128,pi(i)}x.set(m.i64x2_eq,E3);function A3(i){return I(i),i.typeArguments=[p.i64],i.contextualType=p.v128,fi(i)}x.set(m.i64x2_ne,A3);function T3(i){return I(i),i.typeArguments=[p.i64],i.contextualType=p.v128,Mt(i)}x.set(m.i64x2_lt_s,T3);function S3(i){return I(i),i.typeArguments=[p.i64],i.contextualType=p.v128,zt(i)}x.set(m.i64x2_le_s,S3);function v3(i){return I(i),i.typeArguments=[p.i64],i.contextualType=p.v128,Dt(i)}x.set(m.i64x2_gt_s,v3);function I3(i){return I(i),i.typeArguments=[p.i64],i.contextualType=p.v128,Gt(i)}x.set(m.i64x2_ge_s,I3);function k3(i){return I(i),i.typeArguments=[p.i32],i.contextualType=p.v128,hi(i)}x.set(m.i64x2_extend_low_i32x4_s,k3);function F3(i){return I(i),i.typeArguments=[p.u32],i.contextualType=p.v128,hi(i)}x.set(m.i64x2_extend_low_i32x4_u,F3);function w3(i){return I(i),i.typeArguments=[p.i32],i.contextualType=p.v128,mi(i)}x.set(m.i64x2_extend_high_i32x4_s,w3);function R3(i){return I(i),i.typeArguments=[p.u32],i.contextualType=p.v128,mi(i)}x.set(m.i64x2_extend_high_i32x4_u,R3);function C3(i){return I(i),i.typeArguments=[p.i32],i.contextualType=p.v128,yi(i)}x.set(m.i64x2_extmul_low_i32x4_s,C3);function P3(i){return I(i),i.typeArguments=[p.u32],i.contextualType=p.v128,yi(i)}x.set(m.i64x2_extmul_low_i32x4_u,P3);function B3(i){return I(i),i.typeArguments=[p.i32],i.contextualType=p.v128,gi(i)}x.set(m.i64x2_extmul_high_i32x4_s,B3);function N3(i){return I(i),i.typeArguments=[p.u32],i.contextualType=p.v128,gi(i)}x.set(m.i64x2_extmul_high_i32x4_u,N3);function L3(i){return I(i),i.typeArguments=[p.i64],i.contextualType=p.v128,li(i)}x.set(m.i64x2_shuffle,L3);function M3(i){return I(i),i.typeArguments=[p.f32],i.contextualType=p.v128,si(i)}x.set(m.f32x4_splat,M3);function z3(i){return I(i),i.typeArguments=[p.f32],i.contextualType=p.f32,sr(i)}x.set(m.f32x4_extract_lane,z3);function D3(i){return I(i),i.typeArguments=[p.f32],i.contextualType=p.v128,ai(i)}x.set(m.f32x4_replace_lane,D3);function G3(i){return I(i),i.typeArguments=[p.f32],i.contextualType=p.v128,ui(i)}x.set(m.f32x4_add,G3);function U3(i){return I(i),i.typeArguments=[p.f32],i.contextualType=p.v128,ci(i)}x.set(m.f32x4_sub,U3);function V3(i){return I(i),i.typeArguments=[p.f32],i.contextualType=p.v128,cn(i)}x.set(m.f32x4_mul,V3);function O3(i){return I(i),i.typeArguments=[p.f32],i.contextualType=p.v128,Hf(i)}x.set(m.f32x4_div,O3);function q3(i){return I(i),i.typeArguments=[p.f32],i.contextualType=p.v128,_i(i)}x.set(m.f32x4_neg,q3);function W3(i){return I(i),i.typeArguments=[p.f32],i.contextualType=p.v128,ar(i)}x.set(m.f32x4_min,W3);function K3(i){return I(i),i.typeArguments=[p.f32],i.contextualType=p.v128,lr(i)}x.set(m.f32x4_max,K3);function H3(i){return I(i),i.typeArguments=[p.f32],i.contextualType=p.v128,jf(i)}x.set(m.f32x4_pmin,H3);function j3(i){return I(i),i.typeArguments=[p.f32],i.contextualType=p.v128,Qf(i)}x.set(m.f32x4_pmax,j3);function Q3(i){return I(i),i.typeArguments=[p.f32],i.contextualType=p.v128,di(i)}x.set(m.f32x4_abs,Q3);function X3(i){return I(i),i.typeArguments=[p.f32],i.contextualType=p.v128,$f(i)}x.set(m.f32x4_sqrt,X3);function $3(i){return I(i),i.typeArguments=[p.f32],i.contextualType=p.v128,Zf(i)}x.set(m.f32x4_ceil,$3);function Z3(i){return I(i),i.typeArguments=[p.f32],i.contextualType=p.v128,Yf(i)}x.set(m.f32x4_floor,Z3);function Y3(i){return I(i),i.typeArguments=[p.f32],i.contextualType=p.v128,Jf(i)}x.set(m.f32x4_trunc,Y3);function J3(i){return I(i),i.typeArguments=[p.f32],i.contextualType=p.v128,e_(i)}x.set(m.f32x4_nearest,J3);function e0(i){return I(i),i.typeArguments=[p.f32],i.contextualType=p.v128,pi(i)}x.set(m.f32x4_eq,e0);function t0(i){return I(i),i.typeArguments=[p.f32],i.contextualType=p.v128,fi(i)}x.set(m.f32x4_ne,t0);function r0(i){return I(i),i.typeArguments=[p.f32],i.contextualType=p.v128,Mt(i)}x.set(m.f32x4_lt,r0);function i0(i){return I(i),i.typeArguments=[p.f32],i.contextualType=p.v128,zt(i)}x.set(m.f32x4_le,i0);function n0(i){return I(i),i.typeArguments=[p.f32],i.contextualType=p.v128,Dt(i)}x.set(m.f32x4_gt,n0);function s0(i){return I(i),i.typeArguments=[p.f32],i.contextualType=p.v128,Gt(i)}x.set(m.f32x4_ge,s0);function a0(i){return I(i),i.typeArguments=[p.i32],i.contextualType=p.v128,t_(i)}x.set(m.f32x4_convert_i32x4_s,a0);function l0(i){return I(i),i.typeArguments=[p.u32],i.contextualType=p.v128,t_(i)}x.set(m.f32x4_convert_i32x4_u,l0);function o0(i){return I(i),i.typeArguments=[p.f64],i.contextualType=p.v128,fx(i)}x.set(m.f32x4_demote_f64x2_zero,o0);function u0(i){return I(i),i.typeArguments=[p.f32],i.contextualType=p.v128,li(i)}x.set(m.f32x4_shuffle,u0);function c0(i){return I(i),i.typeArguments=[p.f64],i.contextualType=p.v128,si(i)}x.set(m.f64x2_splat,c0);function p0(i){return I(i),i.typeArguments=[p.f64],i.contextualType=p.f64,sr(i)}x.set(m.f64x2_extract_lane,p0);function f0(i){return I(i),i.typeArguments=[p.f64],i.contextualType=p.v128,ai(i)}x.set(m.f64x2_replace_lane,f0);function _0(i){return I(i),i.typeArguments=[p.f64],i.contextualType=p.v128,ui(i)}x.set(m.f64x2_add,_0);function d0(i){return I(i),i.typeArguments=[p.f64],i.contextualType=p.v128,ci(i)}x.set(m.f64x2_sub,d0);function h0(i){return I(i),i.typeArguments=[p.f64],i.contextualType=p.v128,cn(i)}x.set(m.f64x2_mul,h0);function m0(i){return I(i),i.typeArguments=[p.f64],i.contextualType=p.v128,Hf(i)}x.set(m.f64x2_div,m0);function y0(i){return I(i),i.typeArguments=[p.f64],i.contextualType=p.v128,_i(i)}x.set(m.f64x2_neg,y0);function g0(i){return I(i),i.typeArguments=[p.f64],i.contextualType=p.v128,ar(i)}x.set(m.f64x2_min,g0);function b0(i){return I(i),i.typeArguments=[p.f64],i.contextualType=p.v128,lr(i)}x.set(m.f64x2_max,b0);function x0(i){return I(i),i.typeArguments=[p.f64],i.contextualType=p.v128,jf(i)}x.set(m.f64x2_pmin,x0);function E0(i){return I(i),i.typeArguments=[p.f64],i.contextualType=p.v128,Qf(i)}x.set(m.f64x2_pmax,E0);function A0(i){return I(i),i.typeArguments=[p.f64],i.contextualType=p.v128,di(i)}x.set(m.f64x2_abs,A0);function T0(i){return I(i),i.typeArguments=[p.f64],i.contextualType=p.v128,$f(i)}x.set(m.f64x2_sqrt,T0);function S0(i){return I(i),i.typeArguments=[p.f64],i.contextualType=p.v128,Zf(i)}x.set(m.f64x2_ceil,S0);function v0(i){return I(i),i.typeArguments=[p.f64],i.contextualType=p.v128,Yf(i)}x.set(m.f64x2_floor,v0);function I0(i){return I(i),i.typeArguments=[p.f64],i.contextualType=p.v128,Jf(i)}x.set(m.f64x2_trunc,I0);function k0(i){return I(i),i.typeArguments=[p.f64],i.contextualType=p.v128,e_(i)}x.set(m.f64x2_nearest,k0);function F0(i){return I(i),i.typeArguments=[p.f64],i.contextualType=p.v128,pi(i)}x.set(m.f64x2_eq,F0);function w0(i){return I(i),i.typeArguments=[p.f64],i.contextualType=p.v128,fi(i)}x.set(m.f64x2_ne,w0);function R0(i){return I(i),i.typeArguments=[p.f64],i.contextualType=p.v128,Mt(i)}x.set(m.f64x2_lt,R0);function C0(i){return I(i),i.typeArguments=[p.f64],i.contextualType=p.v128,zt(i)}x.set(m.f64x2_le,C0);function P0(i){return I(i),i.typeArguments=[p.f64],i.contextualType=p.v128,Dt(i)}x.set(m.f64x2_gt,P0);function B0(i){return I(i),i.typeArguments=[p.f64],i.contextualType=p.v128,Gt(i)}x.set(m.f64x2_ge,B0);function N0(i){return I(i),i.typeArguments=[p.i32],i.contextualType=p.v128,r_(i)}x.set(m.f64x2_convert_low_i32x4_s,N0);function L0(i){return I(i),i.typeArguments=[p.u32],i.contextualType=p.v128,r_(i)}x.set(m.f64x2_convert_low_i32x4_u,L0);function M0(i){return I(i),i.typeArguments=[p.f32],i.contextualType=p.v128,_x(i)}x.set(m.f64x2_promote_low_f32x4,M0);function z0(i){return I(i),i.typeArguments=[p.f64],i.contextualType=p.v128,li(i)}x.set(m.f64x2_shuffle,z0);function D0(i){return I(i),i.typeArguments=null,i.contextualType=p.v128,hx(i)}x.set(m.i8x16_relaxed_swizzle,D0);function G0(i){return I(i),i.typeArguments=[p.i32],i.contextualType=p.v128,s_(i)}x.set(m.i32x4_relaxed_trunc_f32x4_s,G0);function U0(i){return I(i),i.typeArguments=[p.u32],i.contextualType=p.v128,s_(i)}x.set(m.i32x4_relaxed_trunc_f32x4_u,U0);function V0(i){return I(i),i.typeArguments=[p.i32],i.contextualType=p.v128,a_(i)}x.set(m.i32x4_relaxed_trunc_f64x2_s_zero,V0);function O0(i){return I(i),i.typeArguments=[p.u32],i.contextualType=p.v128,a_(i)}x.set(m.i32x4_relaxed_trunc_f64x2_u_zero,O0);function q0(i){return I(i),i.typeArguments=[p.f32],i.contextualType=p.v128,l_(i)}x.set(m.f32x4_relaxed_madd,q0);function W0(i){return I(i),i.typeArguments=[p.f32],i.contextualType=p.v128,o_(i)}x.set(m.f32x4_relaxed_nmadd,W0);function K0(i){return I(i),i.typeArguments=[p.f64],i.contextualType=p.v128,l_(i)}x.set(m.f64x2_relaxed_madd,K0);function H0(i){return I(i),i.typeArguments=[p.f64],i.contextualType=p.v128,o_(i)}x.set(m.f64x2_relaxed_nmadd,H0);function j0(i){return I(i),i.typeArguments=[p.i8],i.contextualType=p.v128,sa(i)}x.set(m.i8x16_relaxed_laneselect,j0);function Q0(i){return I(i),i.typeArguments=[p.i16],i.contextualType=p.v128,sa(i)}x.set(m.i16x8_relaxed_laneselect,Q0);function X0(i){return I(i),i.typeArguments=[p.i32],i.contextualType=p.v128,sa(i)}x.set(m.i32x4_relaxed_laneselect,X0);function $0(i){return I(i),i.typeArguments=[p.i64],i.contextualType=p.v128,sa(i)}x.set(m.i64x2_relaxed_laneselect,$0);function Z0(i){return I(i),i.typeArguments=[p.f32],i.contextualType=p.v128,u_(i)}x.set(m.f32x4_relaxed_min,Z0);function Y0(i){return I(i),i.typeArguments=[p.f32],i.contextualType=p.v128,c_(i)}x.set(m.f32x4_relaxed_max,Y0);function J0(i){return I(i),i.typeArguments=[p.f64],i.contextualType=p.v128,u_(i)}x.set(m.f64x2_relaxed_min,J0);function ek(i){return I(i),i.typeArguments=[p.f64],i.contextualType=p.v128,c_(i)}x.set(m.f64x2_relaxed_max,ek);function tk(i){return I(i),i.typeArguments=[p.i16],i.contextualType=p.v128,mx(i)}x.set(m.i16x8_relaxed_q15mulr_s,tk);function rk(i){return I(i),i.typeArguments=[p.i16],i.contextualType=p.v128,yx(i)}x.set(m.i16x8_relaxed_dot_i8x16_i7x16_s,rk);function ik(i){return I(i),i.typeArguments=[p.i32],i.contextualType=p.v128,gx(i)}x.set(m.i32x4_relaxed_dot_i8x16_i7x16_add_s,ik);function bx(i){let r=i.module,e=new Array,t=i.options.sizeTypeRef,n=assert(i.program.visitInstance);i.compileFunction(n,!0);for(let s=Map_values(i.program.elementsByName),a=0,l=s.length;a<l;++a){let o=unchecked(s[a]);if(o.kind!=0)continue;let u=o,f=u.type.getClass();if(f&&!f.hasDecorator(16)&&u.is(8388608))if(u.is(33554432)){let _=u.constantIntegerValue;(i64_low(_)||i64_high(_))&&e.push(r.call(n.internalName,[i.options.isWasm64?r.i64(i64_low(_),i64_high(_)):r.i32(i64_low(_)),r.local_get(0,B.I32)],B.None))}else e.push(r.if(r.local_tee(1,r.global_get(u.internalName,t),!1),r.call(n.internalName,[r.local_get(1,t),r.local_get(0,B.I32)],B.None)))}r.addFunction(m.visit_globals,B.I32,B.None,[t],e.length?r.block(null,e):r.nop())}function xx(i,r){if(assert(r.type.isManaged),r.visitRef)return;let e=i.program,t=i.module,n=e.options.usizeType,s=n.toRef(),a=n.byteSize,l=assert(e.visitInstance),o=new Array,u=r.base;u&&o.push(t.call(`${u.internalName}~visit`,[t.local_get(0,s),t.local_get(1,B.I32)],B.None));let c=!1;if(r.isDeclaredInLibrary){let _=r.getMember("__visit");if(_){assert(_.kind==4);let d=e.resolver.resolveFunction(_,null);if(!d||!i.compileFunction(d))o.push(t.unreachable());else{let g=d.signature,y=assert(g.thisType);assert(g.parameterTypes.length==1&&g.parameterTypes[0]==p.u32&&g.returnType==p.void&&r.type.isStrictlyAssignableTo(y)),o.push(t.call(d.internalName,[t.local_get(0,s),t.local_get(1,B.I32)],B.None))}c=!0}}let f=!1;if(!c){let _=r.members;if(_)for(let d=Map_values(_),g=0,y=d.length;g<y;++g){let E=unchecked(d[g]);if(E.kind!=10)continue;let A=E.instance;if(!A)continue;let k=A.type;if(!A.isField||A.getBoundClassOrInterface()!=r||!k.isManaged)continue;let F=A.memoryOffset;assert(F>=0),f=!0,o.push(t.call(l.internalName,[t.load(a,!1,t.local_get(0,s),s,F),t.local_get(1,B.I32)],B.None))}}r.visitRef=t.addFunction(`${r.internalName}~visit`,ft([s,B.I32]),B.None,f?[s]:null,t.flatten(o,B.None)),u&&u.type.isManaged&&xx(i,u)}function Ex(i){let r=i.program,e=i.module,n=r.options.usizeType.toRef(),s=r.managedClasses,a=assert(r.visitInstance);i.compileFunction(a,!0);let l=new Array,o=new Array,u=0;for(let f=Map_keys(s),_=0,d=f.length;_<d;++_){let g=f[_];assert(g==u++);let y=assert(s.get(g));l[_]=y.internalName,y.isPointerfree?o[_]=e.return():(o[_]=e.block(null,[e.call(`${y.internalName}~visit`,[e.local_get(0,n),e.local_get(1,B.I32)],B.None),e.return()],B.None),xx(i,y))}let c=e.block(l[0],[e.switch(l,"invalid",e.load(4,!1,n==B.I64?e.binary(26,e.local_get(0,n),e.i64(8)):e.binary(1,e.local_get(0,n),e.i32(8)),B.I32,0))],B.None);for(let f=0,_=l.length-1;f<_;++f)c=e.block(l[f+1],[c,o[f]],B.None);c=e.block("invalid",[c,o[l.length-1]],B.None),e.addFunction(m.visit_members,ft([n,B.I32]),B.None,null,e.flatten([c,e.unreachable()]))}function ln(i){let r=64*(1<<i.alignLog2);return i.is(1)&&(r|=2048),i.is(8)&&(r|=4096),i.is(512)&&(r|=8192),i.isManaged&&(r|=16384),r/64}function Ax(i){let r=i.program,e=i.module,t=r.managedClasses,n=t.size,s=4+4*n,a=new Uint8Array(s);Se(n,a,0);let l=4,o=r.arrayBufferViewInstance,u=o.prototype,c=r.arrayPrototype,f=r.setPrototype,_=r.mapPrototype,d=r.staticArrayPrototype,g=0;for(let A=Map_keys(t),k=0,F=A.length;k<F;++k){let w=unchecked(A[k]),R=assert(t.get(w));assert(w==g++);let P=0;if(R.isPointerfree&&(P|=32),R!=o&&R.extendsPrototype(u)){let M=R.getArrayValueType();P|=1,P|=64*ln(M)}else if(R.extendsPrototype(c)){let M=R.getArrayValueType();P|=2,P|=64*ln(M)}else if(R.extendsPrototype(f)){let M=assert(R.getTypeArgumentsTo(f));assert(M.length==1),P|=8,P|=64*ln(M[0])}else if(R.extendsPrototype(_)){let M=assert(R.getTypeArgumentsTo(_));assert(M.length==2),P|=16,P|=32768*ln(M[0]),P|=64*ln(M[1])}else if(R.extendsPrototype(d)){let M=R.getArrayValueType();P|=4,P|=64*ln(M)}Se(P,a,l),l+=4,R.rttiFlags=P}assert(l==s);let y=r.options.usizeType,E=i.addAlignedMemorySegment(a);if(y.size==8){let A=E.offset;e.addGlobal(m.rtti_base,B.I64,!1,e.i64(i64_low(A),i64_high(A)))}else e.addGlobal(m.rtti_base,B.I32,!1,e.i32(i64_low(E.offset)))}function Ve(i){let r=i.compiler,e=i.operands,t=i.typeArguments;if(on=0,e.length==0)return!t||t.length!=1?(r.error(2558,i.reportNode.typeArgumentsRange,"1",t?t.length.toString():"0"),null):t[0];if(e.length==1){if(t&&t.length>0){if(t.length>1)return r.error(2558,i.reportNode.typeArgumentsRange,"1",t.length.toString()),null;on=r.compileExpression(e[0],t[0],1)}else on=r.compileExpression(e[0],p.auto);return r.currentType}return t&&t.length>1&&r.error(2558,i.reportNode.typeArgumentsRange,"1",t.length.toString()),r.error(2554,i.reportNode.argumentsRange,"1",e.length.toString()),null}function ke(i,r){let e=i.compiler.module;return on&&Uo(on,e.ref)&&(r=e.block(null,[e.maybeDrop(on),r],ce(r))),r}function _t(i,r){let e=r.module,t;if(r.options.isWasm64){let n=r.compileExpression(i,p.usize64,1),s=e.runExpression(n,1);s?(assert(Ge(s)==0),t=Be(s)):(r.error(220,i.range),t=-1)}else{let n=r.compileExpression(i,p.usize32,1),s=e.runExpression(n,1);s?t=se(s):(r.error(220,i.range),t=-1)}return t}function ir(i,r,e){let t=_t(i,e);return t<0?t:t<1||r>16?(e.error(222,i.range,"Alignment","1",r.toString()),-1):Kr(t)?t:(e.error(223,i.range,"Alignment"),-1)}function X(i,r){let e=i.compiler;return e.options.hasFeature(r)?0:(e.error(103,i.reportNode.range,Di(r)),1)}function $(i,r=!1){let e=i.compiler,t=i.typeArguments;if(t){let n=t.length;if(n==1)return 0;assert(n),r&&(e.currentType=t[0]),e.error(2558,i.reportNode.typeArgumentsRange,"1",n.toString())}else e.error(2558,i.reportNode.range,"1","0");return 1}function fe(i,r=!1){let e=i.typeArguments;if(e){let t=i.compiler,n=e.length;return n==1?0:(assert(n),r&&(t.currentType=e[0]),t.error(2558,i.reportNode.typeArgumentsRange,"1",n.toString()),1)}return 0}function I(i){if(i.typeArguments){let e=i.prototype;return e.program.error(2315,i.reportNode.typeArgumentsRange,e.internalName),1}return 0}function K(i,r){let e=i.operands;return e.length!=r?(i.compiler.error(2554,i.reportNode.range,r.toString(),e.length.toString()),1):0}function Ne(i,r,e){let n=i.operands.length;return n<r?(i.compiler.error(2555,i.reportNode.range,r.toString(),n.toString()),1):n>e?(i.compiler.error(2554,i.reportNode.range,e.toString(),n.toString()),1):0}function ii(i,r,e){let t=i.module;if(e!=p.auto&&e.isIntegerValue)switch(e.kind){case 3:{if(i64_is_i32(r))return i.currentType=p.i32,t.i32(i64_low(r));break}case 8:{if(i64_is_u32(r))return i.currentType=p.u32,t.i32(i64_low(r));break}case 4:case 9:return i.currentType=e,t.i64(i64_low(r),i64_high(r))}return i.options.isWasm64?(i.currentType=p.usize64,t.i64(i64_low(r),i64_high(r))):(i.currentType=p.usize32,assert(!i64_high(r)),t.i32(i64_low(r)))}var ru=class{constructor(r,e){this.discriminator=r;this.recordExpression=e}},Tx=null;function iu(){let i=Tx;return i==null&&(Tx=i=new Map),i}var __=class{constructor(){this.stack=new Array;this._currentExpression=0}get currentExpression(){let r=this._currentExpression;if(!r)throw new Error("not walking expressions");return r}get parentExpressionOrNull(){let r=this.stack,e=r.length;return e?r[e-1]:0}visitBlock(r){}visitIf(r){}visitLoop(r){}visitBreak(r){}visitSwitch(r){}visitCallPre(r){}visitCall(r){}visitCallIndirectPre(r){}visitCallIndirect(r){}visitLocalGet(r){}visitLocalSet(r){}visitGlobalGet(r){}visitGlobalSet(r){}visitLoad(r){}visitStore(r){}visitConst(r){}visitUnary(r){}visitBinary(r){}visitSelect(r){}visitDrop(r){}visitReturn(r){}visitMemorySize(r){}visitMemoryGrow(r){}visitNop(r){}visitUnreachable(r){}visitAtomicRMW(r){}visitAtomicCmpxchg(r){}visitAtomicWait(r){}visitAtomicNotify(r){}visitAtomicFence(r){}visitSIMDExtract(r){}visitSIMDReplace(r){}visitSIMDShuffle(r){}visitSIMDTernary(r){}visitSIMDShift(r){}visitSIMDLoad(r){}visitSIMDLoadStoreLane(r){}visitMemoryInit(r){}visitDataDrop(r){}visitMemoryCopy(r){}visitMemoryFill(r){}visitPop(r){}visitRefNull(r){}visitRefIsNull(r){}visitRefFunc(r){}visitRefEq(r){}visitTry(r){}visitThrow(r){}visitRethrow(r){}visitTupleMake(r){}visitTupleExtract(r){}visitRefI31(r){}visitI31Get(r){}visitCallRef(r){}visitRefTest(r){}visitRefCast(r){}visitBrOn(r){}visitStructNew(r){}visitStructGet(r){}visitStructSet(r){}visitArrayNew(r){}visitArrayNewFixed(r){}visitArrayGet(r){}visitArraySet(r){}visitArrayLen(r){}visitArrayCopy(r){}visitRefAs(r){}visitStringNew(r){}visitStringConst(r){}visitStringMeasure(r){}visitStringEncode(r){}visitStringConcat(r){}visitStringEq(r){}visitStringAs(r){}visitStringWTF8Advance(r){}visitStringWTF16Get(r){}visitStringIterNext(r){}visitStringIterMove(r){}visitStringSliceWTF(r){}visitStringSliceIter(r){}visitName(r){}visitLabel(r){}visitIndex(r){}visitTag(r){}visit(r){let e=this._currentExpression;switch(this._currentExpression=assert(r),Wt(r)){case 1:{this.stack.push(r);let t=wa(r);t&&this.visitLabel(t);for(let n=0,s=Pn(r);n<s;++n)this.visit(Bn(r,n));assert(this.stack.pop()==r),this.visitBlock(r);break}case 2:{this.stack.push(r),this.visit(Nn(r)),this.visit(Ln(r));let t=Mn(r);t&&this.visit(t),assert(this.stack.pop()==r),this.visitIf(r);break}case 3:{this.stack.push(r);let t=Ra(r);t&&this.visitLabel(t),this.visit(zn(r)),assert(this.stack.pop()==r),this.visitLoop(r);break}case 4:{this.stack.push(r),this.visitLabel(Ca(r));let t=Dn(r);t&&this.visit(t);let n=Mu(r);n&&this.visit(n),assert(this.stack.pop()==r),this.visitBreak(r);break}case 5:{this.stack.push(r);let t=Pd(r);t&&this.visitLabel(t);let n=Rd(r);for(let a=0;a<n;++a)this.visitLabel(Cd(r,a));this.visit(zu(r));let s=Du(r);s&&this.visit(s),assert(this.stack.pop()==r),this.visitSwitch(r);break}case 6:{this.visitCallPre(r),this.stack.push(r),this.visitName(Ri(r));let t=dr(r);for(let n=0;n<t;++n)this.visit(hr(r,n));assert(this.stack.pop()==r),this.visitCall(r);break}case 7:{this.visitCallIndirectPre(r),this.stack.push(r),this.visit(Gu(r));for(let t=0,n=Gn(r);t<n;++t)this.visit(Un(r,t));assert(this.stack.pop()==r),this.visitCallIndirect(r);break}case 8:{this.stack.push(r),this.visitIndex(Na(r)),assert(this.stack.pop()==r),this.visitLocalGet(r);break}case 9:{this.stack.push(r),this.visitIndex(Ci(r)),this.visit(Dr(r)),assert(this.stack.pop()==r),this.visitLocalSet(r);break}case 10:{this.stack.push(r),this.visitName(za(r)),assert(this.stack.pop()==r),this.visitGlobalGet(r);break}case 11:{this.stack.push(r),this.visitName(Kd(r)),this.visit(Uu(r)),assert(this.stack.pop()==r),this.visitGlobalSet(r);break}case 12:{this.stack.push(r),this.visit(On(r)),assert(this.stack.pop()==r),this.visitLoad(r);break}case 13:{this.stack.push(r),this.visit(Gr(r)),this.visit(qn(r)),assert(this.stack.pop()==r),this.visitStore(r);break}case 14:{this.visitConst(r);break}case 15:{this.stack.push(r),this.visit(Wn(r)),assert(this.stack.pop()==r),this.visitUnary(r);break}case 16:{this.stack.push(r),this.visit(Kn(r)),this.visit(Hn(r)),assert(this.stack.pop()==r),this.visitBinary(r);break}case 17:{this.stack.push(r),this.visit(jn(r)),this.visit(Qn(r)),this.visit(Xn(r)),assert(this.stack.pop()==r),this.visitSelect(r);break}case 18:{this.stack.push(r),this.visit($n(r)),assert(this.stack.pop()==r),this.visitDrop(r);break}case 19:{let t=Ur(r);t&&(this.stack.push(r),this.visit(t),assert(this.stack.pop()==r)),this.visitReturn(r);break}case 20:{this.visitMemorySize(r);break}case 21:{this.stack.push(r),this.visit(Vn(r)),assert(this.stack.pop()==r),this.visitMemoryGrow(r);break}case 22:{this.visitNop(r);break}case 23:{this.visitUnreachable(r);break}case 24:{this.stack.push(r),this.visit(Ou(r)),this.visit(qu(r)),assert(this.stack.pop()==r),this.visitAtomicRMW(r);break}case 25:{this.stack.push(r),this.visit(Wu(r)),this.visit(Ku(r)),this.visit(Hu(r)),assert(this.stack.pop()==r),this.visitAtomicCmpxchg(r);break}case 26:{this.stack.push(r),this.visit(ju(r)),this.visit(Qu(r)),this.visit(Xu(r)),assert(this.stack.pop()==r),this.visitAtomicWait(r);break}case 27:{this.stack.push(r),this.visit($u(r)),this.visit(Zu(r)),assert(this.stack.pop()==r),this.visitAtomicNotify(r);break}case 28:{this.visitAtomicFence(r);break}case 30:{this.stack.push(r),this.visit(Yu(r)),assert(this.stack.pop()==r),this.visitSIMDExtract(r);break}case 31:{this.stack.push(r),this.visit(Ju(r)),this.visit(ec(r)),assert(this.stack.pop()==r),this.visitSIMDReplace(r);break}case 32:{this.stack.push(r),this.visit(tc(r)),this.visit(rc(r)),assert(this.stack.pop()==r),this.visitSIMDShuffle(r);break}case 33:{this.stack.push(r),this.visit(ic(r)),this.visit(nc(r)),this.visit(sc(r)),assert(this.stack.pop()==r),this.visitSIMDTernary(r);break}case 34:{this.stack.push(r),this.visit(ac(r)),this.visit(lc(r)),assert(this.stack.pop()==r),this.visitSIMDShift(r);break}case 35:{this.stack.push(r),this.visit(oc(r)),assert(this.stack.pop()==r),this.visitSIMDLoad(r);break}case 36:{this.stack.push(r),this.visit(uc(r)),this.visit(cc(r)),assert(this.stack.pop()==r),this.visitSIMDLoadStoreLane(r);break}case 37:{this.stack.push(r),this.visit(pc(r)),this.visit(fc(r)),this.visit(_c(r)),assert(this.stack.pop()==r),this.visitMemoryInit(r);break}case 38:{this.visitDataDrop(r);break}case 39:{this.stack.push(r),this.visit(dc(r)),this.visit(hc(r)),this.visit(mc(r)),assert(this.stack.pop()==r),this.visitMemoryCopy(r);break}case 40:{this.stack.push(r),this.visit(yc(r)),this.visit(gc(r)),this.visit(bc(r)),assert(this.stack.pop()==r),this.visitMemoryFill(r);break}case 41:{this.visitPop(r);break}case 42:{this.visitRefNull(r);break}case 43:{this.stack.push(r),this.visit(xc(r)),assert(this.stack.pop()==r),this.visitRefIsNull(r);break}case 44:{this.stack.push(r),this.visitName(Tm(r)),assert(this.stack.pop()==r),this.visitRefFunc(r);break}case 45:{this.stack.push(r),this.visit(Tc(r)),this.visit(Sc(r)),assert(this.stack.pop()==r),this.visitRefEq(r);break}case 54:{this.stack.push(r),this.visit(vc(r));let t=Ic(r);for(let n=0;n<t;++n)this.visit(kc(r,n));assert(this.stack.pop()==r),this.visitTry(r);break}case 56:{this.stack.push(r),this.visitTag(Lm(r));let t=Fc(r);for(let n=0;n<t;++n)this.visit(wc(r,n));assert(this.stack.pop()==r),this.visitThrow(r);break}case 57:{this.visitRethrow(r);break}case 59:{let t=Rc(r);if(t){this.stack.push(r);for(let n=0;n<t;++n)this.visit(Cc(r,n));assert(this.stack.pop()==r)}this.visitTupleMake(r);break}case 60:{this.stack.push(r),this.visit(Pc(r)),assert(this.stack.pop()==r),this.visitTupleExtract(r);break}case 61:{this.stack.push(r),this.visit(Bc(r)),assert(this.stack.pop()==r),this.visitRefI31(r);break}case 62:{this.stack.push(r),this.visit(Nc(r)),assert(this.stack.pop()==r),this.visitI31Get(r);break}case 63:{this.stack.push(r);let t=Lc(r);if(t)for(let n=0;n<t;++n)this.visit(Mc(r,n));this.visit(zc(r)),assert(this.stack.pop()==r),this.visitCallRef(r);break}case 64:{this.stack.push(r),this.visit(Dc(r)),assert(this.stack.pop()==r),this.visitRefTest(r);break}case 65:{this.stack.push(r),this.visit(Gc(r)),assert(this.stack.pop()==r),this.visitRefCast(r);break}case 67:{this.stack.push(r),this.visitLabel(Zm(r)),this.visit(Uc(r)),assert(this.stack.pop()==r),this.visitBrOn(r);break}case 68:{let t=Vc(r);if(t){this.stack.push(r);for(let n=0;n<t;++n)this.visit(Oc(r,n));assert(this.stack.pop()==r)}this.visitStructNew(r);break}case 69:{this.stack.push(r),this.visit(qc(r)),this.visitIndex(ey(r)),assert(this.stack.pop()==r),this.visitStructGet(r);break}case 70:{this.stack.push(r),this.visit(Wc(r)),this.visitIndex(ry(r)),this.visit(Kc(r)),assert(this.stack.pop()==r),this.visitStructSet(r);break}case 73:{this.stack.push(r),this.visit(jc(r));let t=Hc(r);t&&this.visit(t),assert(this.stack.pop()==r),this.visitArrayNew(r);break}case 76:{let t=Qc(r);if(t){this.stack.push(r);for(let n=0;n<t;++n)this.visit(Xc(r,n));assert(this.stack.pop()==r)}this.visitArrayNewFixed(r);break}case 77:{this.stack.push(r),this.visit($c(r)),this.visit(Zc(r)),assert(this.stack.pop()==r),this.visitArrayGet(r);break}case 78:{this.stack.push(r),this.visit(Yc(r)),this.visit(Jc(r)),this.visit(ep(r)),assert(this.stack.pop()==r),this.visitArraySet(r);break}case 81:{this.stack.push(r),this.visit(tp(r)),assert(this.stack.pop()==r),this.visitArrayLen(r);break}case 82:{this.stack.push(r),this.visit(rp(r)),this.visit(ip(r)),this.visit(np(r)),this.visit(sp(r)),this.visit(ap(r)),assert(this.stack.pop()==r),this.visitArrayCopy(r);break}case 88:{this.stack.push(r),this.visit(Ac(r)),assert(this.stack.pop()==r),this.visitRefAs(r);break}case 89:{this.stack.push(r),this.visit(lp(r));let t=op(r);t&&this.visit(t);let n=up(r);n&&this.visit(n),assert(this.stack.pop()==r),this.visitStringNew(r);break}case 90:{this.stack.push(r),assert(this.stack.pop()==r),this.visitStringConst(r);break}case 91:{this.stack.push(r),this.visit(cp(r)),assert(this.stack.pop()==r),this.visitStringMeasure(r);break}case 92:{this.stack.push(r),this.visit(pp(r)),this.visit(fp(r));let t=_p(r);t&&this.visit(t),assert(this.stack.pop()==r),this.visitStringEncode(r);break}case 93:{this.stack.push(r),this.visit(dp(r)),this.visit(hp(r)),assert(this.stack.pop()==r),this.visitStringConcat(r);break}case 94:{this.stack.push(r),this.visit(yp(r)),this.visit(gp(r)),assert(this.stack.pop()==r),this.visitStringEq(r);break}case 96:{this.stack.push(r),this.visit(bp(r)),this.visit(xp(r)),assert(this.stack.pop()==r),this.visitStringWTF16Get(r);break}case 97:{this.stack.push(r),this.visit(Ep(r)),this.visit(Ap(r)),this.visit(Tp(r)),assert(this.stack.pop()==r),this.visitStringSliceWTF(r);break}default:throw new Error("unexpected expression kind")}this._currentExpression=e}},bi=class extends __{constructor(e){super();this.module=e;this._currentFunction=0;this._currentGlobal=0}get currentFunction(){let e=this._currentFunction;if(!e)throw new Error("not walking a function");return e}get currentGlobal(){let e=this._currentGlobal;if(!e)throw new Error("not walking a global");return e}walkModule(){this.walkFunctions(),this.walkGlobals()}walkFunctions(){let e=this.module.ref;for(let t=0,n=Ly(e);t<n;++t)this.walkFunction(My(e,t))}walkFunction(e){let t=mr(e);t&&(this._currentFunction=e,this.visit(t),this._currentFunction=0)}walkGlobals(){let e=this.module.ref;for(let t=0,n=eg(e);t<n;++t)this.walkGlobal(tg(e,t))}walkGlobal(e){this._currentGlobal=e;let t=Qa(e);t&&this.visit(t),this._currentGlobal=0}replaceCurrent(e){let t=this.currentExpression,n=this.currentFunction;if(mr(n)==t)Wa(n,e);else{let a=assert(this.parentExpressionOrNull);if(!nk(a,t,e))throw Error("failed to replace expression");yd(a)}}};function nk(i,r,e){switch(Wt(i)){case 1:{let t=Pn(i);for(let n=0;n<t;++n){let s=Bn(i,n);if(s==r)return bd(i,n,e),s}break}case 2:{let t=Nn(i);if(t==r)return Ed(i,e),t;let n=Ln(i);if(n==r)return Ad(i,e),n;let s=Mn(i);if(s==r)return Td(i,e),s;break}case 3:{let t=zn(i);if(t==r)return vd(i,e),t;break}case 4:{let t=Dn(i);if(t==r)return kd(i,e),t;let n=Mu(i);if(n==r)return Fd(i,e),n;break}case 5:{let t=zu(i);if(t==r)return Bd(i,e),t;let n=Du(i);if(n==r)return Nd(i,e),n;break}case 6:{let t=dr(i);for(let n=0;n<t;++n){let s=hr(i,n);if(s==r)return Pa(i,n,e),s}break}case 7:{let t=Gu(i);if(t==r)return Dd(i,e),t;let n=Gn(i);for(let s=0;s<n;++s){let a=Un(i,s);if(a==r)return Ba(i,s,e),a}break}case 8:break;case 9:{let t=Dr(i);if(t==r)return Ma(i,e),t;break}case 10:break;case 11:{let t=Uu(i);if(t==r)return Hd(i,e),t;break}case 12:{let t=On(i);if(t==r)return eh(i,e),t;break}case 13:{let t=Gr(i);if(t==r)return Ua(i,e),t;let n=qn(i);if(n==r)return ih(i,e),n;break}case 14:break;case 15:{let t=Wn(i);if(t==r)return ph(i,e),t;break}case 16:{let t=Kn(i);if(t==r)return mh(i,e),t;let n=Hn(i);if(n==r)return yh(i,e),n;break}case 17:{let t=jn(i);if(t==r)return bh(i,e),t;let n=Qn(i);if(n==r)return xh(i,e),n;let s=Xn(i);if(s==r)return Eh(i,e),s;break}case 18:{let t=$n(i);if(t==r)return Ah(i,e),t;break}case 19:{let t=Ur(i);if(t==r)return Va(i,e),t;break}case 20:break;case 21:{let t=Vn(i);if(t==r)return Xd(i,e),t;break}case 22:break;case 23:break;case 24:{let t=Ou(i);if(t==r)return kh(i,e),t;let n=qu(i);if(n==r)return Fh(i,e),n;break}case 25:{let t=Wu(i);if(t==r)return Rh(i,e),t;let n=Ku(i);if(n==r)return Ch(i,e),n;let s=Hu(i);if(s==r)return Ph(i,e),s;break}case 26:{let t=ju(i);if(t==r)return Nh(i,e),t;let n=Qu(i);if(n==r)return Lh(i,e),n;let s=Xu(i);if(s==r)return Mh(i,e),s;break}case 27:{let t=$u(i);if(t==r)return Dh(i,e),t;let n=Zu(i);if(n==r)return Gh(i,e),n;break}case 28:break;case 30:{let t=Yu(i);if(t==r)return Oh(i,e),t;break}case 31:{let t=Ju(i);if(t==r)return Wh(i,e),t;let n=ec(i);if(n==r)return Kh(i,e),n;break}case 32:{let t=tc(i);if(t==r)return jh(i,e),t;let n=rc(i);if(n==r)return Qh(i,e),n;break}case 33:{let t=ic(i);if(t==r)return $h(i,e),t;let n=nc(i);if(n==r)return Zh(i,e),n;let s=sc(i);if(s==r)return Yh(i,e),s;break}case 34:{let t=ac(i);if(t==r)return em(i,e),t;let n=lc(i);if(n==r)return tm(i,e),n;break}case 35:{let t=oc(i);if(t==r)return im(i,e),t;break}case 36:{let t=uc(i);if(t==r)return sm(i,e),t;if(cc(i)==r)return am(i,e),t;break}case 37:{let t=pc(i);if(t==r)return lm(i,e),t;let n=fc(i);if(n==r)return om(i,e),n;let s=_c(i);if(s==r)return um(i,e),s;break}case 38:break;case 39:{let t=dc(i);if(t==r)return pm(i,e),t;let n=hc(i);if(n==r)return fm(i,e),n;let s=mc(i);if(s==r)return _m(i,e),s;break}case 40:{let t=yc(i);if(t==r)return hm(i,e),t;let n=gc(i);if(n==r)return mm(i,e),n;let s=bc(i);if(s==r)return ym(i,e),s;break}case 41:break;case 42:break;case 43:{let t=xc(i);if(t==r)return xm(i,e),t;break}case 44:break;case 45:{let t=Tc(i);if(t==r)return vm(i,e),t;let n=Sc(i);if(n==r)return Im(i,e),n;break}case 54:{let t=vc(i);if(t==r)return Pm(i,e),t;let n=Ic(i);for(let s=0;s<n;++s){let a=kc(i,s);if(a==r)return Bm(i,s,e),a}break}case 56:{let t=Fc(i);for(let n=0;n<t;++n){let s=wc(i,n);if(s==r)return Mm(i,n,e),s}break}case 57:break;case 59:{let t=Rc(i);for(let n=0;n<t;++n){let s=Cc(i,n);if(s==r)return Gm(i,n,e),s}break}case 60:{let t=Pc(i);if(t==r)return Vm(i,e),t;break}case 61:{let t=Bc(i);if(t==r)return Wm(i,e),t;break}case 62:{let t=Nc(i);if(t==r)return Hm(i,e),t;break}case 63:{let t=Lc(i);for(let s=0;s<t;++s){let a=Mc(i,s);if(a==r)return jm(i,s,e),a}let n=zc(i);if(n==r)return Qm(i,e),n;break}case 64:{let t=Dc(i);if(t==r)return Xm(i,e),t;break}case 65:{let t=Gc(i);if(t==r)return $m(i,e),t;break}case 67:{let t=Uc(i);if(t==r)return Ym(i,e),t;break}case 68:{let t=Vc(i);for(let n=0;n<t;++n){let s=Oc(i,n);if(s==r)return Jm(i,n,e),s}break}case 69:{let t=qc(i);if(t==r)return ty(i,e),t;break}case 70:{let t=Wc(i);if(t==r)return iy(i,e),t;let n=Kc(i);if(n==r)return ny(i,e),n;break}case 73:{let t=jc(i);if(t==r)return ay(i,e),t;let n=Hc(i);if(n==r)return sy(i,e),n;break}case 76:{let t=Qc(i);for(let n=0;n<t;++n){let s=Xc(i,n);if(s==r)return ly(i,n,e),s}break}case 77:{let t=$c(i);if(t==r)return oy(i,e),t;let n=Zc(i);if(n==r)return uy(i,e),n;break}case 78:{let t=Yc(i);if(t==r)return cy(i,e),t;let n=Jc(i);if(n==r)return py(i,e),n;let s=ep(i);if(s==r)return fy(i,e),s;break}case 81:{let t=tp(i);if(t==r)return _y(i,e),t;break}case 82:{let t=rp(i);if(t==r)return dy(i,e),t;let n=ip(i);if(n==r)return hy(i,e),n;let s=np(i);if(s==r)return my(i,e),s;let a=sp(i);if(a==r)return yy(i,e),a;let l=ap(i);if(l==r)return gy(i,e),l;break}case 88:{let t=Ac(i);if(t==r)return Em(i,e),t;break}case 89:{let t=lp(i);if(t==r)return by(i,e),t;let n=op(i);if(n==r)return xy(i,e),n;let s=up(i);if(s==r)return Ey(i,e),s;break}case 90:break;case 91:{let t=cp(i);if(t==r)return Ay(i,e),t;break}case 92:{let t=pp(i);if(t==r)return Ty(i,e),t;let n=fp(i);if(n==r)return Sy(i,e),n;let s=_p(i);if(s==r)return vy(i,e),s;break}case 93:{let t=dp(i);if(t==r)return Iy(i,e),t;let n=hp(i);if(n==r)return ky(i,e),n;break}case 94:{let t=yp(i);if(t==r)return Fy(i,e),t;let n=gp(i);if(n==r)return wy(i,e),n;break}case 96:{let t=bp(i);if(t==r)return Ry(i,e),t;let n=xp(i);if(n==r)return Cy(i,e),n;break}case 97:{let t=Ep(i);if(t==r)return Py(i,e),t;let n=Ap(i);if(n==r)return By(i,e),n;let s=Tp(i);if(s==r)return Ny(i,e),s;break}default:throw new Error("unexpected expression id")}return 0}var nu=class extends bi{constructor(e){super(e.module);this.seenStores=!1;this.ptrType=e.options.sizeTypeRef}checkRT(){return this.module.readStringCached(Li(this.currentFunction)).startsWith("~lib/rt/")}visitStore(e){let t=this.module,n=Gr(e),s=Ga(e),a=Da(e);Ua(e,t.call("~onstore",[n,t.i32(s),t.i32(a),t.i32(i32(this.checkRT()))],this.ptrType)),this.seenStores=!0}walkModule(){super.walkModule(),this.seenStores&&this.module.addFunctionImport("~onstore","rtrace","onstore",ft([this.ptrType,B.I32,B.I32,B.I32]),this.ptrType)}};function Sx(i,r){let e=!1;for(;Wt(r)==6&&i.readStringCached(Ri(r))==m.tostack;)assert(dr(r)==1),r=hr(r,0),e=!0;return e?r:0}function vx(i){return Wt(i)===14?!nt(i):!0}var su=class extends bi{constructor(e){super(e.module);this.slotMaps=new Map;this.tempMaps=new Map;this.exportMap=new Map;this.hasStackCheckFunction=!1;this.callSlotOffset=0;this.callSlotStack=new Array;this.compiler=e}get options(){return this.compiler.options}get ptrType(){return this.options.sizeTypeRef}get ptrSize(){return this.ptrType==B.I64?8:4}get ptrBinaryAdd(){return this.ptrType==B.I64?25:0}get ptrBinarySub(){return this.ptrType==B.I64?26:1}ptrConst(e){return this.ptrType==B.I64?this.module.i64(e):this.module.i32(e)}noteSlot(e,t){let n;if(this.slotMaps.has(e)){if(n=changetype(this.slotMaps.get(e)),n.has(t))return changetype(n.get(t))}else n=new Map,this.slotMaps.set(e,n);let s=n.size;return n.set(t,s),s}noteExport(e,t){t.length&&this.exportMap.set(e,t)}getSharedTemp(e,t){let n;if(this.tempMaps.has(e)){if(n=changetype(this.tempMaps.get(e)),n.has(t))return changetype(n.get(t))}else n=new Map,this.tempMaps.set(e,n);let a=Sp(e)+n.size;return n.set(t,a),a}makeStackOffset(e){assert(e!=0);let t=this.module,n=t.global_set(m.stack_pointer,t.binary(e>=0?this.ptrBinaryAdd:this.ptrBinarySub,t.global_get(m.stack_pointer,this.ptrType),this.ptrConst(abs(e))));return e>0?n:t.block(null,[n,this.makeStackCheck()],B.None)}makeStackFill(e,t){assert(e>0);let n=this.module;if(this.options.hasFeature(8)&&e>16)t.push(n.memory_fill(n.global_get(m.stack_pointer,this.ptrType),n.i32(0),this.ptrConst(e)));else{let s=e;for(;s>=8;)t.push(n.store(8,n.global_get(m.stack_pointer,this.ptrType),n.i64(0),B.I64,e-s)),s-=8;s&&(assert(s==4),t.push(n.store(4,n.global_get(m.stack_pointer,this.ptrType),n.i32(0),B.I32,e-s)))}}makeStackCheck(){let e=this.module;return this.hasStackCheckFunction||(this.hasStackCheckFunction=!0,e.addFunction("~stack_check",B.None,B.None,null,e.if(e.binary(17,e.global_get(m.stack_pointer,this.ptrType),e.global_get(m.data_end,this.ptrType)),this.compiler.makeStaticAbort(this.compiler.ensureStaticString("stack overflow"),Ee.native)))),e.call("~stack_check",null,B.None)}updateCallOperands(e){let t=this.module,n=0;for(let s=0,a=e.length;s<a;++s){let l=e[s],o=Sx(t,l);if(!o)continue;if(!vx(o)){e[s]=o;continue}let u=this.currentFunction,c=Sp(u),f=this.noteSlot(u,c+this.callSlotOffset+n),_=this.getSharedTemp(u,this.ptrType),d=new Array;d.push(t.local_set(_,o,!1)),d.push(t.store(this.ptrSize,t.global_get(m.stack_pointer,this.ptrType),t.local_get(_,this.ptrType),this.ptrType,f*this.ptrSize)),d.push(t.local_get(_,this.ptrType)),e[s]=t.block(null,d,this.ptrType),++n}return n}visitCallPre(e){let t=dr(e),n=new Array(t);for(let a=0;a<t;++a)n[a]=hr(e,a);let s=this.updateCallOperands(n);for(let a=0,l=n.length;a<l;++a)Pa(e,a,n[a]);s&&(this.callSlotOffset+=s),this.callSlotStack.push(s)}visitCall(e){let t=this.callSlotStack.pop();t&&(this.callSlotOffset-=t)}visitCallIndirectPre(e){let t=Gn(e),n=new Array(t);for(let a=0;a<t;++a)n[a]=Un(e,a);let s=this.updateCallOperands(n);for(let a=0,l=n.length;a<l;++a)Ba(e,a,n[a]);s&&(this.callSlotOffset+=s),this.callSlotStack.push(s)}visitCallIndirect(e){let t=this.callSlotStack.pop();t&&(this.callSlotOffset-=t)}visitLocalSet(e){let t=this.module,n=Dr(e),s=Sx(t,n);if(!s)return;if(!vx(s)){Ma(e,s);return}let a=Ci(e),l=this.noteSlot(this.currentFunction,a),o=new Array;o.push(t.store(this.ptrSize,t.global_get(m.stack_pointer,this.ptrType),t.local_tee(a,s,!1),this.ptrType,l*this.ptrSize)),La(e)?(o.push(t.local_get(a,this.ptrType)),this.replaceCurrent(t.flatten(o,this.ptrType))):this.replaceCurrent(t.flatten(o,B.None))}updateFunction(e){let t=Li(e),n=Yn(e),s=Jn(e),a=assert(mr(e)),l=Oa(e),o=new Array;for(let d=0;d<l;++d)o[d]=qa(e,d);let u=this.tempMaps;if(u.has(e)){let d=changetype(u.get(e));for(let g=Map_keys(d),y=0,E=g.length;y<E;++y)o.push(g[y])}let c=this.module.ref;Zn(c,t);let f=be(o),_=Bi(c,t,n,s,f,o.length,a);if(this.options.sourceMap||this.options.debugInfo){let d=this.compiler.program.searchFunctionByRef(_);d&&d.addDebugInfo(this.module,_)}ie(f)}updateExport(e,t){let n=this.module,s=n.ref;assert(Xy(e)==0);let a=Zy(e),l=n.readStringCached(a),o=$y(e),u=Ni(s,a),c=Yn(u),f=uf(c),_=f.length,d=Jn(u),g=_,y=new Array,E=assert(t.length),A=E*this.ptrSize,k="export:"+l,F=n.allocStringCached(k);if(Ni(s,F)==0){let w=new Array;w.push(this.makeStackOffset(-A));for(let M=0;M<E;++M)w.push(n.store(this.ptrSize,n.global_get(m.stack_pointer,this.ptrType),n.local_get(t[M],this.ptrType),this.ptrType,M*this.ptrSize));let R=new Array(_);for(let M=0;M<_;++M)R[M]=n.local_get(M,f[M]);if(d!=B.None){let M=g++;y.push(d),w.push(n.local_set(M,n.call(l,R,d),!1)),w.push(this.makeStackOffset(+A)),w.push(n.local_get(M,d))}else w.push(n.call(l,R,d)),w.push(this.makeStackOffset(+A));let P=be(y);Bi(s,F,c,d,P,y.length,n.block(null,w,d)),ie(P)}ja(s,o),Ka(s,F,o)}walkModule(){super.walkModule();let e=this.module,t=new d_(this);for(let s=Map_keys(this.slotMaps),a=0,l=s.length;a<l;++a){let o=s[a],c=changetype(this.slotMaps.get(o)).size*this.ptrSize;t.frameSize=c,t.walkFunction(o);let f=new Array;f.push(this.makeStackOffset(-c)),this.makeStackFill(c,f);let _=mr(o),d=_r(_);if(d==B.Unreachable)f.push(_);else if(d==B.None)f.push(_),f.push(this.makeStackOffset(+c));else{let g=this.getSharedTemp(o,d);f.push(e.local_set(g,_,!1)),f.push(this.makeStackOffset(+c)),f.push(e.local_get(g,d))}Wa(o,e.flatten(f,d))}for(let s=Map_keys(this.tempMaps),a=0,l=s.length;a<l;++a)this.updateFunction(s[a]);let n=this.exportMap;for(let s=Map_keys(n),a=0,l=s.length;a<l;++a){let o=s[a],u=Ha(e.ref,e.allocStringCached(o)),c=changetype(n.get(o));this.updateExport(u,c)}}},d_=class extends bi{constructor(e){super(e.module);this.frameSize=0;this.parentPass=e}visitReturn(e){assert(this.frameSize);let t=this.module,n=Ur(e),s=new Array;if(n){let a=_r(n);if(a==B.Unreachable)return;let l=this.parentPass.getSharedTemp(this.currentFunction,a);s.push(t.local_set(l,n,!1)),s.push(this.parentPass.makeStackOffset(+this.frameSize)),Va(e,t.local_get(l,a))}else s.push(this.parentPass.makeStackOffset(+this.frameSize));s.push(e),this.replaceCurrent(t.flatten(s,B.Unreachable))}};var pn=class{constructor(r,e=!1){this.seen=new Map;this.program=r,this.includePrivate=e}walk(){for(let r=Map_values(this.program.filesByName),e=0,t=r.length;e<t;++e){let n=unchecked(r[e]);n.source.sourceKind==1&&this.visitFile(n)}}visitFile(r){let e=r.exports;if(e)for(let n=Map_keys(e),s=0,a=n.length;s<a;++s){let l=unchecked(n[s]),o=assert(e.get(l));this.visitElement(l,o)}let t=r.exportsStar;if(t)for(let n=0,s=t.length;n<s;++n){let a=unchecked(t[n]);this.visitFile(a)}}visitElement(r,e){if(e.is(512)&&!this.includePrivate)return;let t=this.seen;if(!e.is(262144)&&t.has(e)){this.visitAlias(r,e,assert(t.get(e)));return}switch(t.set(e,r),e.kind){case 0:{e.is(8388608)&&this.visitGlobal(r,e);break}case 2:{e.is(8388608)&&this.visitEnum(r,e);break}case 3:break;case 4:{this.visitFunctionInstances(r,e);break}case 6:{this.visitClassInstances(r,e);break}case 8:{this.visitInterfaceInstances(r,e);break}case 10:{let n=e.instance;if(!n)break;e=n}case 11:{let n=e,s=n.getterInstance;s&&this.visitFunction(r,s);let a=n.setterInstance;a&&this.visitFunction(r,a);break}case 12:{Ix(e)&&this.visitNamespace(r,e);break}case 14:case 15:break;default:assert(!1)}}visitFunctionInstances(r,e){let t=e.instances;if(t)for(let n=Map_values(t),s=0,a=n.length;s<a;++s){let l=unchecked(n[s]);l.is(8388608)&&this.visitFunction(r,l)}}visitClassInstances(r,e){let t=e.instances;if(t)for(let n=Map_values(t),s=0,a=n.length;s<a;++s){let l=unchecked(n[s]);assert(l.kind==7),l.is(8388608)&&this.visitClass(r,l)}}visitInterfaceInstances(r,e){let t=e.instances;if(t)for(let n=Map_values(t),s=0,a=n.length;s<a;++s){let l=unchecked(n[s]);assert(l.kind==9),l.is(8388608)&&this.visitInterface(r,l)}}};function Ix(i){let r=i.members;if(r)for(let e=Map_values(r),t=0,n=e.length;t<n;++t){let s=unchecked(e[t]);switch(s.kind){case 4:{let a=s.instances;if(a){for(let l=Map_values(a),o=0,u=l.length;o<u;++o)if(unchecked(l[o]).is(8388608))return!0}break}case 6:{let a=s.instances;if(a){for(let l=Map_values(a),o=0,u=l.length;o<u;++o)if(unchecked(l[o]).is(8388608))return!0}break}default:{if(s.is(8388608)||Ix(s))return!0;break}}}return!1}function sk(i){return i=="rtrace"?"#rtrace":i}function ak(i){return i!="rtrace"}var _n=class i extends pn{constructor(e,t,n=!1){super(e,n);this.sb=[];this.indentLevel=0;this.needsLiftBuffer=!1;this.needsLowerBuffer=!1;this.needsLiftString=!1;this.needsLowerString=!1;this.needsLiftArray=!1;this.needsLowerArray=!1;this.needsLiftTypedArray=!1;this.needsLowerTypedArray=!1;this.needsLiftStaticArray=!1;this.needsLowerStaticArray=!1;this.needsLiftInternref=!1;this.needsLowerInternref=!1;this.needsRetain=!1;this.needsRelease=!1;this.needsNotNull=!1;this.needsSetU8=!1;this.needsSetU16=!1;this.needsSetU32=!1;this.needsSetU64=!1;this.needsSetF32=!1;this.needsSetF64=!1;this.needsGetI8=!1;this.needsGetU8=!1;this.needsGetI16=!1;this.needsGetU16=!1;this.needsGetI32=!1;this.needsGetU32=!1;this.needsGetI64=!1;this.needsGetU64=!1;this.needsGetF32=!1;this.needsGetF64=!1;this.deferredLifts=new Set;this.deferredLowers=new Set;this.deferredCode=new Array;this.exports=new Array;this.importMappings=new Map;this.esm=t}static build(e,t=!0){return new i(e,t).build()}visitGlobal(e,t){let n=this.sb,s=t.type;this.exports.push(e),xi(s,1)||(W(n,this.indentLevel),n.push(e),n.push(`: {
18
+ `),W(n,++this.indentLevel),n.push("// "),n.push(t.internalName),n.push(": "),n.push(s.toString()),n.push(`
19
+ `),W(n,this.indentLevel),n.push(`valueOf() { return this.value; },
20
+ `),W(n,this.indentLevel),n.push(`get value() {
21
+ `),W(n,++this.indentLevel),n.push("return "),this.makeLiftFromValue("exports."+e+".value",s,n),n.push(`;
22
+ `),W(n,--this.indentLevel),n.push("}"),t.is(8)||(n.push(`,
23
+ `),W(n,this.indentLevel),n.push(`set value(value) {
24
+ `),W(n,++this.indentLevel),n.push("exports."),n.push(e),n.push(".value = "),this.makeLowerToValue("value",s,n),n.push(`;
25
+ `),W(n,--this.indentLevel),n.push("}")),n.push(`
26
+ `),W(n,--this.indentLevel),n.push(`},
27
+ `)),this.visitNamespace(e,t)}visitEnum(e,t){let n=this.sb;this.exports.push(e),W(n,this.indentLevel),n.push(e),n.push(`: (values => (
28
+ `),W(n,++this.indentLevel),n.push("// "),n.push(t.internalName),n.push(`
29
+ `);let s=t.members;if(s)for(let a=Map_values(s),l=0,o=a.length;l<o;++l){let u=a[l];u.kind==3&&(W(n,this.indentLevel),n.push("values[values."),n.push(u.name),u.is(33554432)?(n.push(" = "),n.push(i64_low(u.constantIntegerValue).toString())):(n.push(' = exports["'),n.push(Re(e+"."+u.name,34)),n.push('"].valueOf()')),n.push('] = "'),n.push(Re(u.name,34)),n.push(`",
30
+ `))}W(n,this.indentLevel),n.push(`values
31
+ `),W(n,--this.indentLevel),n.push(`))({}),
32
+ `),this.visitNamespace(e,t)}makeGlobalImport(e,t,n){let s=this.sb,a=n.type;W(s,this.indentLevel),$e(t)?s.push(t):(s.push('"'),s.push(Re(t,34)),s.push('": '));let l=this.ensureModuleId(e);xi(a,0)?(s.push(`(
33
+ `),W(s,this.indentLevel+1),s.push("// "),s.push(n.internalName),s.push(": "),s.push(n.type.toString()),s.push(`
34
+ `),W(s,this.indentLevel+1),e!="env"&&(s.push("__module"),s.push(l.toString()),s.push(".")),s.push(t),s.push(`
35
+ `),W(s,this.indentLevel),s.push(")")):(s.push(`{
36
+ `),W(s,++this.indentLevel),s.push("// "),s.push(n.internalName),s.push(": "),s.push(n.type.toString()),s.push(`
37
+ `),W(s,this.indentLevel),s.push(`// not supported: cannot lower before instantiate completes
38
+ `),W(s,--this.indentLevel),s.push("}")),s.push(`,
39
+ `)}makeFunctionImport(e,t,n,s=null){let a=this.sb,l=n.signature;if(W(a,this.indentLevel),$e(t)?a.push(t):(a.push('"'),a.push(Re(t,34)),a.push('"')),h_(l,0)&&!s&&$e(t))a.push(`: (
40
+ `),W(a,this.indentLevel+1),a.push("// "),a.push(n.internalName),a.push(n.signature.toString()),a.push(`
41
+ `),W(a,this.indentLevel+1),e!="env"&&(a.push(e),a.push(".")),a.push(t),a.push(`
42
+ `),W(a,this.indentLevel),a.push(")");else{a.push("(");let o=l.parameterTypes,u=new Array;for(let _=0,d=o.length;_<d;++_)u.push(n.getParameterName(_));a.push(u.join(", ")),a.push(`) {
43
+ `),W(a,++this.indentLevel),a.push("// "),a.push(n.internalName),a.push(n.signature.toString()),a.push(`
44
+ `);for(let _=0,d=o.length;_<d;++_){let g=o[_];if(!xi(g,1)){let y=n.getParameterName(_);W(a,this.indentLevel),a.push(y),a.push(" = "),this.makeLiftFromValue(y,g,a),a.push(`;
45
+ `)}}let c=new Array,f=this.ensureModuleId(e);s?(c.push(`(() => {
46
+ `),W(c,1),c.push(`// @external.js
47
+ `),kx(s,1,c),c.push(`
48
+ })()`)):(e!="env"&&(c.push("__module"),c.push(f.toString()),c.push(".")),c.push(t),c.push("("),c.push(u.join(", ")),c.push(")")),s=c.join(""),c.length=0,kx(s,this.indentLevel,c,!0),s=c.join(""),W(a,this.indentLevel),l.returnType!=p.void?(a.push("return "),this.makeLowerToValue(s,l.returnType,a),a.push(`;
49
+ `)):(a.push(s),a.push(`;
50
+ `)),W(a,--this.indentLevel),a.push("}")}a.push(`,
51
+ `)}visitFunction(e,t){if(t.is(512))return;let n=this.sb,s=t.signature;if(this.exports.push(e),!h_(s,1)){W(n,this.indentLevel),n.push(e),n.push("(");let a=s.parameterTypes,l=0;for(let c=0,f=a.length;c<f;++c)a[c].isInternalReference&&l++,c>0&&n.push(", "),n.push(t.getParameterName(c));n.push(`) {
52
+ `),W(n,++this.indentLevel),n.push("// "),n.push(t.internalName),n.push(s.toString()),n.push(`
53
+ `);let o=new Array;for(let c=0,f=a.length;c<f;++c){let _=a[c];if(!xi(_,0)){let d=t.getParameterName(c);W(n,this.indentLevel),n.push(d),n.push(" = ");let g=_.isInternalReference&&--l>0;g&&(this.needsRetain=!0,this.needsRelease=!0,n.push("__retain("),o.push(d)),this.makeLowerToValue(d,_,n),g&&n.push(")"),n.push(`;
54
+ `)}}o.length&&(W(n,this.indentLevel++),n.push(`try {
55
+ `)),s.requiredParameters<a.length&&(W(n,this.indentLevel),n.push(`exports.__setArgumentsLength(arguments.length);
56
+ `));let u=new Array;u.push("exports."),u.push(e),u.push("(");for(let c=0,f=a.length;c<f;++c)c>0&&u.push(", "),u.push(t.getParameterName(c));if(u.push(")"),s.returnType!=p.void?(W(n,this.indentLevel),n.push("return "),this.makeLiftFromValue(u.join(""),s.returnType,n)):(W(n,this.indentLevel),n.push(u.join(""))),n.push(`;
57
+ `),o.length){W(n,this.indentLevel-1),n.push(`} finally {
58
+ `);for(let c=0,f=o.length;c<f;++c)W(n,this.indentLevel),n.push("__release("),n.push(o[c]),n.push(`);
59
+ `);W(n,--this.indentLevel),n.push(`}
60
+ `)}W(n,--this.indentLevel),n.push(`},
61
+ `)}this.visitNamespace(e,t)}visitClass(e,t){}visitInterface(e,t){this.visitClass(e,t)}visitNamespace(e,t){}visitAlias(e,t,n){}getExternalCode(e){let t=$t(11,e.decoratorNodes);if(t){let n=t.args;if(n&&n.length==1){let s=n[0];if(s.kind==18){let a=s;if(a.literalKind==2)return a.value;if(a.literalKind==3){let l=a.parts;if(l.length==1)return l[0]}}}}return null}build(){let e=this.exports,t=this.program.moduleImports,n=this.program,s=n.options,a=this.sb;a.push(""),W(a,this.indentLevel++),this.esm||a.push("export "),a.push(`async function instantiate(module, imports = {}) {
62
+ `);let l=a.push("")-1;W(a,this.indentLevel++),a.push(`const adaptedImports = {
63
+ `);let o=a.length;for(let y=Map_keys(t),E=0,A=y.length;E<A;++E){let k=y[E],F=this.ensureModuleId(k),w=t.get(k);if(W(a,this.indentLevel),$e(k)?a.push(k):(a.push('"'),a.push(Re(k,34)),a.push('"')),!ak(k)){a.push(": __module"),a.push(F.toString()),a.push(`,
64
+ `);continue}let R=a.length;a.push(`: Object.setPrototypeOf({
65
+ `),++this.indentLevel;let P=0;for(let M=Map_keys(w),O=0,z=M.length;O<z;++O){let j=M[O],U=assert(w.get(j));if(U.kind==5){let D=U,Q=this.getExternalCode(D);(!h_(D.signature,0)||!$e(j)||Q)&&(this.makeFunctionImport(k,j,U,Q),++P)}else if(U.kind==0){let D=U;(!xi(D.type,0)||!$e(j))&&(this.makeGlobalImport(k,j,D),++P)}}--this.indentLevel,P?(W(a,this.indentLevel),a.push("}, "),k=="env"?a.push("Object.assign(Object.create(globalThis), imports.env || {})"):(a.push("__module"),a.push(F.toString())),a.push(`),
66
+ `)):(a.length=R,k=="env"?a.push(": Object.assign(Object.create(globalThis), imports.env || {})"):(a.push(": __module"),a.push(F.toString())),a.push(`,
67
+ `))}--this.indentLevel;let u=a.length>o;u?(W(a,this.indentLevel),a.push(`};
68
+ `)):a.length=o-2;let c=this.importMappings,f=new Array;for(let y=Map_keys(c),E=0,A=y.length;E<A;++E){let k=y[E];if(k=="env")f.push(` const env = imports.env;
69
+ `);else{let F=c.get(k);k=="rtrace"&&(f.push(` ((rtrace) => {
70
+ `),f.push(` delete imports.rtrace;
71
+ `),f.push(" new rtrace.Rtrace({ getMemory() { return memory; }, onerror(err) { console.log(`RTRACE: ${err.stack}`); } }).install(imports);\n"),f.push(` })(imports.rtrace);
72
+ `)),f.push(" const __module"),f.push(F.toString()),f.push(" = imports"),$e(k)?(f.push("."),f.push(k)):(f.push('["'),f.push(Re(k,34)),f.push('"]')),f.push(`;
73
+ `)}}a[l]=f.join(""),W(a,this.indentLevel),a.push("const { exports } = await WebAssembly.instantiate(module"),u?a.push(`, adaptedImports);
74
+ `):a.push(`, imports);
75
+ `),W(a,this.indentLevel),a.push(`const memory = exports.memory || imports.env.memory;
76
+ `),W(a,this.indentLevel++),a.push(`const adaptedExports = Object.setPrototypeOf({
77
+ `),o=a.length,this.walk(),--this.indentLevel;let _=a.length>o;_?(W(a,this.indentLevel),a.push(`}, exports);
78
+ `)):this.needsLiftBuffer||this.needsLowerBuffer||this.needsLiftString||this.needsLowerString||this.needsLiftArray||this.needsLowerArray||this.needsLiftTypedArray||this.needsLowerTypedArray||this.needsLiftStaticArray?a.length=o-2:a.length=o-4;let d=this.deferredCode;if(d.length)for(let y=0,E=d.length;y<E;++y)a.push(d[y]);if(this.needsLiftBuffer){let y=n.OBJECTInstance,E=y.offsetof("rtSize")-y.nextMemoryOffset;a.push(` function __liftBuffer(pointer) {
79
+ if (!pointer) return null;
80
+ return memory.buffer.slice(pointer, pointer + new Uint32Array(memory.buffer)[pointer - ${-E} >>> 2]);
81
+ }
82
+ `)}if(this.needsLowerBuffer){let y=n.arrayBufferInstance.id;a.push(` function __lowerBuffer(value) {
83
+ if (value == null) return 0;
84
+ const pointer = exports.__new(value.byteLength, ${y}) >>> 0;
85
+ new Uint8Array(memory.buffer).set(new Uint8Array(value), pointer);
86
+ return pointer;
87
+ }
88
+ `)}if(this.needsLiftString){let y=n.OBJECTInstance,E=y.offsetof("rtSize")-y.nextMemoryOffset,A=1024;a.push(` function __liftString(pointer) {
89
+ if (!pointer) return null;
90
+ const
91
+ end = pointer + new Uint32Array(memory.buffer)[pointer - ${-E} >>> 2] >>> 1,
92
+ memoryU16 = new Uint16Array(memory.buffer);
93
+ let
94
+ start = pointer >>> 1,
95
+ string = "";
96
+ while (end - start > ${A}) string += String.fromCharCode(...memoryU16.subarray(start, start += ${A}));
97
+ return string + String.fromCharCode(...memoryU16.subarray(start, end));
98
+ }
99
+ `)}if(this.needsLowerString){let y=n.stringInstance.id;a.push(` function __lowerString(value) {
100
+ if (value == null) return 0;
101
+ const
102
+ length = value.length,
103
+ pointer = exports.__new(length << 1, ${y}) >>> 0,
104
+ memoryU16 = new Uint16Array(memory.buffer);
105
+ for (let i = 0; i < length; ++i) memoryU16[(pointer >>> 1) + i] = value.charCodeAt(i);
106
+ return pointer;
107
+ }
108
+ `)}if(this.needsLiftArray){let y=n.arrayBufferViewInstance.offsetof("dataStart"),E=n.arrayBufferViewInstance.nextMemoryOffset;this.needsGetU32=!0,a.push(` function __liftArray(liftElement, align, pointer) {
109
+ if (!pointer) return null;
110
+ const
111
+ dataStart = __getU32(pointer + ${y}),
112
+ length = __dataview.getUint32(pointer + ${E}, true),
113
+ values = new Array(length);
114
+ for (let i = 0; i < length; ++i) values[i] = liftElement(dataStart + (i << align >>> 0));
115
+ return values;
116
+ }
117
+ `)}if(this.needsLowerArray){let y=n.arrayBufferInstance.id,E=n.arrayBufferViewInstance,A=E.nextMemoryOffset+4,k=E.offsetof("buffer"),F=E.offsetof("dataStart"),w=E.offsetof("byteLength"),R=w+4;this.needsSetU32=!0,a.push(` function __lowerArray(lowerElement, id, align, values) {
118
+ if (values == null) return 0;
119
+ const
120
+ length = values.length,
121
+ buffer = exports.__pin(exports.__new(length << align, ${y})) >>> 0,
122
+ header = exports.__pin(exports.__new(${A}, id)) >>> 0;
123
+ __setU32(header + ${k}, buffer);
124
+ __dataview.setUint32(header + ${F}, buffer, true);
125
+ __dataview.setUint32(header + ${w}, length << align, true);
126
+ __dataview.setUint32(header + ${R}, length, true);
127
+ for (let i = 0; i < length; ++i) lowerElement(buffer + (i << align >>> 0), values[i]);
128
+ exports.__unpin(buffer);
129
+ exports.__unpin(header);
130
+ return header;
131
+ }
132
+ `)}if(this.needsLiftTypedArray){let y=n.arrayBufferViewInstance,E=y.offsetof("dataStart"),A=y.offsetof("byteLength");this.needsGetU32=!0,a.push(` function __liftTypedArray(constructor, pointer) {
133
+ if (!pointer) return null;
134
+ return new constructor(
135
+ memory.buffer,
136
+ __getU32(pointer + ${E}),
137
+ __dataview.getUint32(pointer + ${A}, true) / constructor.BYTES_PER_ELEMENT
138
+ ).slice();
139
+ }
140
+ `)}if(this.needsLowerTypedArray){let y=n.arrayBufferInstance.id,E=n.arrayBufferViewInstance,A=E.nextMemoryOffset,k=E.offsetof("buffer"),F=E.offsetof("dataStart"),w=E.offsetof("byteLength");this.needsSetU32=!0,a.push(` function __lowerTypedArray(constructor, id, align, values) {
141
+ if (values == null) return 0;
142
+ const
143
+ length = values.length,
144
+ buffer = exports.__pin(exports.__new(length << align, ${y})) >>> 0,
145
+ header = exports.__new(${A}, id) >>> 0;
146
+ __setU32(header + ${k}, buffer);
147
+ __dataview.setUint32(header + ${F}, buffer, true);
148
+ __dataview.setUint32(header + ${w}, length << align, true);
149
+ new constructor(memory.buffer, buffer, length).set(values);
150
+ exports.__unpin(buffer);
151
+ return header;
152
+ }
153
+ `)}if(this.needsLiftStaticArray){let y=n.OBJECTInstance,E=y.offsetof("rtSize")-y.nextMemoryOffset;this.needsGetU32=!0,a.push(` function __liftStaticArray(liftElement, align, pointer) {
154
+ if (!pointer) return null;
155
+ const
156
+ length = __getU32(pointer - ${-E}) >>> align,
157
+ values = new Array(length);
158
+ for (let i = 0; i < length; ++i) values[i] = liftElement(pointer + (i << align >>> 0));
159
+ return values;
160
+ }
161
+ `)}this.needsLowerStaticArray&&a.push(` function __lowerStaticArray(lowerElement, id, align, values, typedConstructor) {
162
+ if (values == null) return 0;
163
+ const
164
+ length = values.length,
165
+ buffer = exports.__pin(exports.__new(length << align, id)) >>> 0;
166
+ if (typedConstructor) {
167
+ new typedConstructor(memory.buffer, buffer, length).set(values);
168
+ } else {
169
+ for (let i = 0; i < length; i++) lowerElement(buffer + (i << align >>> 0), values[i]);
170
+ }
171
+ exports.__unpin(buffer);
172
+ return buffer;
173
+ }
174
+ `),(this.needsLiftInternref||this.needsLowerInternref)&&a.push(` class Internref extends Number {}
175
+ `),this.needsLiftInternref&&(this.needsRetain=!0,this.needsRelease=!0,a.push(` const registry = new FinalizationRegistry(__release);
176
+ function __liftInternref(pointer) {
177
+ if (!pointer) return null;
178
+ const sentinel = new Internref(__retain(pointer));
179
+ registry.register(sentinel, pointer);
180
+ return sentinel;
181
+ }
182
+ `)),this.needsLowerInternref&&a.push(` function __lowerInternref(value) {
183
+ if (value == null) return 0;
184
+ if (value instanceof Internref) return value.valueOf();
185
+ throw TypeError("internref expected");
186
+ }
187
+ `),(this.needsRetain||this.needsRelease)&&a.push(` const refcounts = new Map();
188
+ `),this.needsRetain&&a.push(` function __retain(pointer) {
189
+ if (pointer) {
190
+ const refcount = refcounts.get(pointer);
191
+ if (refcount) refcounts.set(pointer, refcount + 1);
192
+ else refcounts.set(exports.__pin(pointer), 1);
193
+ }
194
+ return pointer;
195
+ }
196
+ `),this.needsRelease&&a.push(` function __release(pointer) {
197
+ if (pointer) {
198
+ const refcount = refcounts.get(pointer);
199
+ if (refcount === 1) exports.__unpin(pointer), refcounts.delete(pointer);
200
+ else if (refcount) refcounts.set(pointer, refcount - 1);
201
+ else throw Error(\`invalid refcount '\${refcount}' for reference '\${pointer}'\`);
202
+ }
203
+ }
204
+ `),this.needsNotNull&&a.push(` function __notnull() {
205
+ throw TypeError("value must not be null");
206
+ }
207
+ `),(this.needsSetU8||this.needsSetU16||this.needsSetU32||this.needsSetU64||this.needsSetF32||this.needsSetF64||this.needsGetI8||this.needsGetU8||this.needsGetI16||this.needsGetU16||this.needsGetI32||this.needsGetU32||this.needsGetI64||this.needsGetU64||this.needsGetF32||this.needsGetF64)&&a.push(` let __dataview = new DataView(memory.buffer);
208
+ `),this.needsSetU8&&a.push(fn("U8","setUint8")),this.needsSetU16&&a.push(fn("U16","setUint16")),this.needsSetU32&&a.push(fn("U32","setUint32")),this.needsSetU64&&a.push(fn("U64","setBigUint64")),this.needsSetF32&&a.push(fn("F32","setFloat32")),this.needsSetF64&&a.push(fn("F64","setFloat64")),this.needsGetI8&&a.push(Ut("I8","getInt8")),this.needsGetU8&&a.push(Ut("U8","getUint8")),this.needsGetI16&&a.push(Ut("I16","getInt16")),this.needsGetU16&&a.push(Ut("U16","getUint16")),this.needsGetI32&&a.push(Ut("I32","getInt32")),this.needsGetU32&&a.push(Ut("U32","getUint32")),this.needsGetI64&&a.push(Ut("I64","getBigInt64")),this.needsGetU64&&a.push(Ut("U64","getBigUint64")),this.needsGetF32&&a.push(Ut("F32","getFloat32")),this.needsGetF64&&a.push(Ut("F64","getFloat64"));let g=s.exportStart;if(g&&a.push(` exports.${g}();
209
+ `),_?a.push(` return adaptedExports;
210
+ }
211
+ `):a.push(` return exports;
212
+ }
213
+ `),--this.indentLevel,assert(this.indentLevel==0),this.esm){if(a.push(`export const {
214
+ `),this.program.options.exportMemory&&a.push(` memory,
215
+ `),this.program.options.exportTable&&a.push(` table,
216
+ `),this.program.options.exportRuntime){for(let A=0,k=dn.length;A<k;++A)a.push(" "),a.push(dn[A]),a.push(`,
217
+ `);for(let A=0,k=hn.length;A<k;++A)a.push(" "),a.push(hn[A]),a.push(`,
218
+ `)}for(let A=0,k=e.length;A<k;++A)a.push(" "),a.push(e[A]),a.push(`,
219
+ `);a.push(`} = await (async url => instantiate(
220
+ await (async () => {
221
+ const isNodeOrBun = typeof process != "undefined" && process.versions != null && (process.versions.node != null || process.versions.bun != null);
222
+ if (isNodeOrBun) { return globalThis.WebAssembly.compile(await (await import("node:fs/promises")).readFile(url)); }
223
+ else { return await globalThis.WebAssembly.compileStreaming(globalThis.fetch(url)); }
224
+ })(), {
225
+ `);let y=!1,E=new Array;for(let A=Map_keys(c),k=0,F=A.length;k<F;++k){let w=A[k];if(w=="env")W(a,2),a.push(`env: globalThis,
226
+ `);else{let R=this.ensureModuleId(w);W(a,2),$e(w)?a.push(w):(a.push('"'),a.push(Re(w,34)),a.push('"')),a.push(": __maybeDefault(__import"),a.push(R.toString()),a.push(`),
227
+ `),E.push("import * as __import"),E.push(R.toString()),E.push(' from "'),E.push(Re(sk(w),34)),E.push(`";
228
+ `),y=!0}}a[0]=E.join(""),a.push(` }
229
+ ))(new URL("${Re(s.basenameHint,34)}.wasm", import.meta.url));
230
+ `),y&&a.push(`function __maybeDefault(module) {
231
+ return typeof module.default === "object" && Object.keys(module).length == 1
232
+ ? module.default
233
+ : module;
234
+ }
235
+ `)}return a.join("")}ensureModuleId(e){if(e=="env")return-1;let t=this.importMappings,n=t.has(e)?i32(t.get(e)):t.size;return t.set(e,n),n}makeLiftFromValue(e,t,n=this.sb){if(t.isInternalReference){let s=assert(t.getClassOrWrapper(this.program));if(s.extendsPrototype(this.program.arrayBufferInstance.prototype))n.push("__liftBuffer("),this.needsLiftBuffer=!0;else if(s.extendsPrototype(this.program.stringInstance.prototype))n.push("__liftString("),this.needsLiftString=!0;else if(s.extendsPrototype(this.program.arrayPrototype)){let a=s.getArrayValueType();n.push("__liftArray("),this.makeLiftFromMemoryFunc(a,n),n.push(", "),n.push(a.alignLog2.toString()),n.push(", "),this.needsLiftArray=!0}else if(s.extendsPrototype(this.program.staticArrayPrototype)){let a=s.getArrayValueType();n.push("__liftStaticArray("),this.makeLiftFromMemoryFunc(a,n),n.push(", "),n.push(a.alignLog2.toString()),n.push(", "),this.needsLiftStaticArray=!0}else if(s.extendsPrototype(this.program.arrayBufferViewInstance.prototype))n.push("__liftTypedArray("),s.name=="Uint64Array"?n.push("BigUint64Array"):s.name=="Int64Array"?n.push("BigInt64Array"):n.push(s.name),n.push(", "),this.needsLiftTypedArray=!0;else if(aa(s)){if(n.push("__liftRecord"),n.push(s.id.toString()),n.push("("),!this.deferredLifts.has(s)){this.deferredLifts.add(s);let a=this.indentLevel;this.indentLevel=1,this.deferredCode.push(this.makeLiftRecord(s)),this.indentLevel=a}}else n.push("__liftInternref("),this.needsLiftInternref=!0;n.push(e),e.startsWith("__get")||n.push(" >>> 0"),n.push(")")}else t==p.bool?n.push(`${e} != 0`):t.isUnsignedIntegerValue&&t.size>=32?t.size==64?n.push(`BigInt.asUintN(64, ${e})`):n.push(`${e} >>> 0`):n.push(e)}makeLowerToValue(e,t,n=this.sb){if(t.isInternalReference){let s=assert(t.getClassOrWrapper(this.program));if(s.extendsPrototype(this.program.arrayBufferInstance.prototype))n.push("__lowerBuffer("),this.needsLowerBuffer=!0;else if(s.extendsPrototype(this.program.stringInstance.prototype))n.push("__lowerString("),this.needsLowerString=!0;else if(s.extendsPrototype(this.program.arrayPrototype)){let a=s.getArrayValueType();n.push("__lowerArray("),this.makeLowerToMemoryFunc(a,n),n.push(", "),n.push(s.id.toString()),n.push(", "),n.push(s.getArrayValueType().alignLog2.toString()),n.push(", "),this.needsLowerArray=!0}else if(s.extendsPrototype(this.program.staticArrayPrototype)){let a=s.getArrayValueType();n.push("__lowerStaticArray("),this.makeLowerToMemoryFunc(a,n),n.push(", "),n.push(s.id.toString()),n.push(", "),n.push(a.alignLog2.toString()),n.push(", "),this.needsLowerStaticArray=!0}else if(s.extendsPrototype(this.program.arrayBufferViewInstance.prototype)){let a=s.getArrayValueType();n.push("__lowerTypedArray("),a==p.u64?n.push("BigUint64Array"):a==p.i64?n.push("BigInt64Array"):n.push(s.name),n.push(", "),n.push(s.id.toString()),n.push(", "),n.push(s.getArrayValueType().alignLog2.toString()),n.push(", "),this.needsLowerTypedArray=!0}else if(aa(s)){if(n.push("__lowerRecord"),n.push(s.id.toString()),n.push("("),!this.deferredLowers.has(s)){this.deferredLowers.add(s);let a=this.indentLevel;this.indentLevel=1,this.deferredCode.push(this.makeLowerRecord(s)),this.indentLevel=a}}else n.push("__lowerInternref("),this.needsLowerInternref=!0;if(n.push(e),s.extendsPrototype(this.program.staticArrayPrototype)){let a=s.getArrayValueType();a.isNumericValue&&(n.push(", "),a==p.u8||a==p.bool?n.push("Uint8Array"):a==p.i8?n.push("Int8Array"):a==p.u16?n.push("Uint16Array"):a==p.i16?n.push("Int16Array"):a==p.u32||a==p.usize32?n.push("Uint32Array"):a==p.i32||a==p.isize32?n.push("Int32Array"):a==p.u64||a==p.usize64?n.push("BigUint64Array"):a==p.i64||a==p.isize64?n.push("BigInt64Array"):a==p.f32?n.push("Float32Array"):a==p.f64?n.push("Float64Array"):assert(!1))}n.push(")"),t.is(512)||(this.needsNotNull=!0,n.push(" || __notnull()"))}else n.push(e),t.isIntegerValue&&t.size==64?n.push(" || 0n"):t==p.bool&&n.push(" ? 1 : 0")}ensureLiftFromMemoryFn(e){return e.isInternalReference?this.program.options.isWasm64?(this.needsGetU64=!0,"__getU64"):(this.needsGetU32=!0,"__getU32"):e==p.i8?(this.needsGetI8=!0,"__getI8"):e==p.u8||e==p.bool?(this.needsGetU8=!0,"__getU8"):e==p.i16?(this.needsGetI16=!0,"__getI16"):e==p.u16?(this.needsGetU16=!0,"__getU16"):e==p.i32||e==p.isize32?(this.needsGetI32=!0,"__getI32"):e==p.u32||e==p.usize32?(this.needsGetU32=!0,"__getU32"):e==p.i64||e==p.isize64?(this.needsGetI64=!0,"__getI64"):e==p.u64||e==p.usize64?(this.needsGetU64=!0,"__getU64"):e==p.f32?(this.needsGetF32=!0,"__getF32"):e==p.f64?(this.needsGetF64=!0,"__getF64"):'(() => { throw Error("unsupported type"); })'}makeLiftFromMemoryFunc(e,t=this.sb){let n=this.ensureLiftFromMemoryFn(e);e.isInternalReference||e==p.bool||e.isUnsignedIntegerValue&&e.size>=32?(t.push("pointer => "),this.makeLiftFromValue(`${n}(pointer)`,e,t)):t.push(n)}makeLiftFromMemoryCall(e,t=this.sb,n="pointer"){let s=this.ensureLiftFromMemoryFn(e);e.isInternalReference?this.makeLiftFromValue(`${s}(${n})`,e,t):(t.push(s),t.push("("),t.push(n),t.push(")"),e==p.bool&&t.push(" != 0"))}ensureLowerToMemoryFn(e){return e.isInternalReference?this.program.options.isWasm64?(this.needsSetU64=!0,"__setU64"):(this.needsSetU32=!0,"__setU32"):e==p.i8||e==p.u8||e==p.bool?(this.needsSetU8=!0,"__setU8"):e==p.i16||e==p.u16?(this.needsSetU16=!0,"__setU16"):e==p.i32||e==p.u32||e==p.isize32||e==p.usize32?(this.needsSetU32=!0,"__setU32"):e==p.i64||e==p.u64||e==p.isize64||e==p.usize64?(this.needsSetU64=!0,"__setU64"):e==p.f32?(this.needsSetF32=!0,"__setF32"):e==p.f64?(this.needsSetF64=!0,"__setF64"):'(() => { throw Error("unsupported type") })'}makeLowerToMemoryFunc(e,t=this.sb){let n=this.ensureLowerToMemoryFn(e);e.isInternalReference?(t.push("(pointer, value) => { "),t.push(n),t.push("(pointer, "),this.makeLowerToValue("value",e,t),t.push("); }")):t.push(n)}makeLowerToMemoryCall(e,t=this.sb,n="pointer",s="value"){let a=this.ensureLowerToMemoryFn(e);t.push(a),t.push("("),t.push(n),t.push(", "),this.makeLowerToValue(s,e,t),t.push(")")}makeLiftRecord(e){assert(aa(e));let t=new Array;W(t,this.indentLevel),t.push("function __liftRecord"),t.push(e.id.toString()),t.push(`(pointer) {
236
+ `),W(t,++this.indentLevel),t.push("// "),t.push(e.type.toString()),t.push(`
237
+ `),W(t,this.indentLevel),t.push(`// Hint: Opt-out from lifting as a record by providing an empty constructor
238
+ `),W(t,this.indentLevel),t.push(`if (!pointer) return null;
239
+ `),W(t,this.indentLevel++),t.push(`return {
240
+ `);let n=e.members;if(n)for(let s=Map_keys(n),a=0,l=s.length;a<l;++a){let o=s[a],u=assert(n.get(o));if(u.kind!=10)continue;let c=u.instance;!c||!c.isField||(assert(c.memoryOffset>=0),W(t,this.indentLevel),t.push(c.name),t.push(": "),this.makeLiftFromMemoryCall(c.type,t,`pointer + ${c.memoryOffset}`),t.push(`,
241
+ `))}return W(t,--this.indentLevel),t.push(`};
242
+ `),W(t,--this.indentLevel),t.push(`}
243
+ `),t.join("")}makeLowerRecord(e){assert(aa(e));let t=new Array;W(t,this.indentLevel),t.push("function __lowerRecord"),t.push(e.id.toString()),t.push(`(value) {
244
+ `),W(t,++this.indentLevel),t.push("// "),t.push(e.type.toString()),t.push(`
245
+ `),W(t,this.indentLevel),t.push(`// Hint: Opt-out from lowering as a record by providing an empty constructor
246
+ `),W(t,this.indentLevel),t.push(`if (value == null) return 0;
247
+ `),W(t,this.indentLevel),t.push("const pointer = exports.__pin(exports.__new("),t.push(e.nextMemoryOffset.toString()),t.push(", "),t.push(e.id.toString()),t.push(`));
248
+ `);let n=e.members;if(n)for(let s=Map_keys(n),a=0,l=s.length;a<l;++a){let o=s[a],u=assert(n.get(o));if(u.kind!=10)continue;let c=u.instance;!c||!c.isField||(assert(c.memoryOffset>=0),W(t,this.indentLevel),this.makeLowerToMemoryCall(c.type,t,`pointer + ${c.memoryOffset}`,`value.${o}`),t.push(`;
249
+ `))}return W(t,this.indentLevel),t.push(`exports.__unpin(pointer);
250
+ `),W(t,this.indentLevel),t.push(`return pointer;
251
+ `),W(t,--this.indentLevel),t.push(`}
252
+ `),t.join("")}};function xi(i,r){if(r==0){if(i==p.bool||i.isIntegerValue&&i.size==64)return!1}else if(i==p.bool||i.isUnsignedIntegerValue&&i.size>=32)return!1;return!i.isInternalReference}function h_(i,r){let e=i.parameterTypes,t=r==0?1:0;if(!xi(i.returnType,r))return!1;for(let n=0,s=e.length;n<s;++n)if(!xi(e[n],t))return!1;return!0}function aa(i){if(i.base&&!i.prototype.implicitlyExtendsObject)return!1;let r=i.members;if(r)for(let e=Map_values(r),t=0,n=e.length;t<n;++t){let s=e[t];if(s.isAny(1536)||s.is(524288)&&s.declaration.range!=Ee.native.range)return!1}return!0}function kx(i,r,e,t=!1){let n=0,s=i.length,a=0;for(;a<s;)i.charCodeAt(a)==10&&(t?t=!1:W(e,r),e.push(i.substring(n,n=a+1))),++a;n<s&&(t||W(e,r),e.push(i.substring(n)))}function mn(i){if(!i.isInternalReference)return!1;let r=i.classReference;if(!r)return assert(i.signatureReference),!0;let e=r.program;return r.extendsPrototype(e.arrayBufferInstance.prototype)||r.extendsPrototype(e.stringInstance.prototype)||r.extendsPrototype(e.arrayBufferViewInstance.prototype)?!1:r.extendsPrototype(e.arrayPrototype)||r.extendsPrototype(e.staticArrayPrototype)?mn(r.getArrayValueType()):!0}function yn(i){if(!i.isInternalReference)return!1;let r=i.classReference;if(!r)return assert(i.signatureReference),!1;let e=r.program;return r.extendsPrototype(e.arrayBufferInstance.prototype)||r.extendsPrototype(e.stringInstance.prototype)||r.extendsPrototype(e.arrayBufferViewInstance.prototype)||r.extendsPrototype(e.arrayPrototype)||r.extendsPrototype(e.staticArrayPrototype)?!0:aa(r)}function fn(i,r){return` function __set${i}(pointer, value) {
253
+ try {
254
+ __dataview.${r}(pointer, value, true);
255
+ } catch {
256
+ __dataview = new DataView(memory.buffer);
257
+ __dataview.${r}(pointer, value, true);
258
+ }
259
+ }
260
+ `}function Ut(i,r){return` function __get${i}(pointer) {
261
+ try {
262
+ return __dataview.${r}(pointer, true);
263
+ } catch {
264
+ __dataview = new DataView(memory.buffer);
265
+ return __dataview.${r}(pointer, true);
266
+ }
267
+ }
268
+ `}var Ei="",Pr="",lu=15,oa=class{constructor(){this.target=1;this.runtime=2;this.debugInfo=!1;this.noAssert=!1;this.exportMemory=!0;this.importMemory=!1;this.initialMemory=0;this.maximumMemory=0;this.sharedMemory=!1;this.zeroFilledMemory=!1;this.importTable=!1;this.exportTable=!1;this.sourceMap=!1;this.uncheckedBehavior=0;this.exportStart=null;this.memoryBase=0;this.tableBase=0;this.globalAliases=null;this.features=lu;this.noUnsafe=!1;this.pedantic=!1;this.lowMemoryLimit=0;this.exportRuntime=!1;this.stackSize=0;this.bundleMajorVersion=0;this.bundleMinorVersion=0;this.bundlePatchVersion=0;this.optimizeLevelHint=0;this.shrinkLevelHint=0;this.basenameHint="output";this.bindingsHint=!1}get isWasm64(){return this.target==2}get usizeType(){return this.target==2?p.usize64:p.usize32}get isizeType(){return this.target==2?p.isize64:p.isize32}get sizeTypeRef(){return this.target==2?B.I64:B.I32}get willOptimize(){return this.optimizeLevelHint>0||this.shrinkLevelHint>0}setFeature(r,e=!0){e?(r&32768&&(r|=1056),r&16384&&(r|=1024),r&1024&&(r|=256),r&4096&&(r|=16),this.features|=r):(r&256&&(r|=1024),r&1024&&(r|=16384),r&16&&(r|=4096),r&1056&&(r|=32768),this.features&=~r)}hasFeature(r){return(this.features&r)!=0}},qo=(t=>(t[t.Default=0]="Default",t[t.Never=1]="Never",t[t.Always=2]="Always",t))(qo||{}),p_=(l=>(l[l.None=0]="None",l[l.ConvImplicit=1]="ConvImplicit",l[l.ConvExplicit=2]="ConvExplicit",l[l.MustWrap=4]="MustWrap",l[l.WillDrop=8]="WillDrop",l[l.PreferStatic=16]="PreferStatic",l[l.IsThis=32]="IsThis",l))(p_||{}),f_=(o=>(o[o.None=0]="None",o[o.Data=1]="Data",o[o.Stack=2]="Stack",o[o.Heap=4]="Heap",o[o.Rtti=8]="Rtti",o[o.visitGlobals=16]="visitGlobals",o[o.visitMembers=32]="visitMembers",o[o.setArgumentsLength=64]="setArgumentsLength",o))(f_||{}),gn;(t=>(t.DefaultNamespace="env",t.Memory="memory",t.Table="table"))(gn||={});var la;(n=>(n.Memory="memory",n.Table="table",n.argumentsLength="__argumentsLength",n.setArgumentsLength="__setArgumentsLength"))(la||={});var dn=["__new","__pin","__unpin","__collect"],hn=["__rtti_base"],au=0,Fx="$closureEnvIn",m_=class{constructor(r,e,t){this.valueIndex=r;this.doneIndex=e;this.expression=t}},ua=class i extends tt{constructor(e){super(e.diagnostics);this.lazyLocals=null;this.currentParent=null;this.currentType=p.void;this.memorySegments=[];this.stringSegments=new Map;this.staticGcObjectOffsets=new Map;this.functionTable=[];this.builtinArgumentsLength=0;this.builtinEnv=0;this.runtimeFeatures=0;this.inlineStack=[];this.lazyFunctions=new Set;this.pendingInstanceOf=new Map;this.overrideStubs=new Set;this.pendingElements=new Set;this.doneModuleExports=new Set;this.hasCustomFunctionExports=!1;this.desiresExportRuntime=!1;this.f32ModInstance=null;this.f64ModInstance=null;this.f32PowInstance=null;this.f64PowInstance=null;this.i32PowInstance=null;this.i64PowInstance=null;this._reusableCallExpression=null;this.sretStackBase=0;this.sretStackLimit=0;this.sretStackGlobal=null;this.sretDestSlot=0;this.sretDiscardMark=null;this.externalTempMark=null;this.externalTempSize=0;this.rootNextOperand=!1;this.program=e;let t=e.module,n=e.options;n.memoryBase?(this.memoryOffset=i64_new(n.memoryBase),t.setLowMemoryUnused(!1)):!n.lowMemoryLimit&&n.optimizeLevelHint>=2?(this.memoryOffset=i64_new(1024),t.setLowMemoryUnused(!0)):(this.memoryOffset=i64_new(8),t.setLowMemoryUnused(!1));let s=0;n.hasFeature(1)&&(s|=32),n.hasFeature(2)&&(s|=2),n.hasFeature(4)&&(s|=4),n.hasFeature(8)&&(s|=16),n.hasFeature(16)&&(s|=8),n.hasFeature(32)&&(s|=1),n.hasFeature(64)&&(s|=64),n.hasFeature(128)&&(s|=128),n.hasFeature(256)&&(s|=256),n.hasFeature(512)&&(s|=512),n.hasFeature(1024)&&(s|=1024),n.hasFeature(2048)&&(s|=2048),n.hasFeature(4096)&&(s|=4096),n.hasFeature(8192)&&(s|=8192),n.hasFeature(16384)&&(s|=16384),n.hasFeature(32768)&&(s|=131072),t.setFeatures(s);let a=e.makeNativeFunction(m.start,Te.create(e,[],p.void));a.internalName=m.start,this.currentFlow=a.flow,this.currentBody=new Array,this.shadowStack=new su(this)}get module(){return this.program.module}get options(){return this.program.options}get resolver(){return this.program.resolver}static compile(e){return new i(e).compile()}compile(){let e=this.options,t=this.module,n=this.program,s=this.resolver,a=e.stackSize>0;this.initDummyMemory(),this.program.initialize(),t.setClosedWorld(!0);let l=this.currentFlow.targetFunction;assert(l.internalName==m.start);let o=this.currentBody;assert(o.length==0);let u=n.filesByName;for(let A=Map_values(u),k=0,F=A.length;k<F;++k){let w=unchecked(A[k]);w.source.sourceKind==1&&(this.compileFile(w),this.compileModuleExports(w))}if(this.options.exportRuntime||this.options.bindingsHint&&this.desiresExportRuntime){for(let A=0,k=dn.length;A<k;++A){let F=dn[A],w=n.requireFunction(F);this.compileFunction(w)&&!t.hasExport(F)&&t.addFunctionExport(w.internalName,F)}for(let A=0,k=hn.length;A<k;++A){let F=hn[A],w=n.requireGlobal(F);this.compileGlobal(w)&&!t.hasExport(F)&&t.addGlobalExport(w.internalName,F)}}let c=this.lazyFunctions;do{let A=new Array;for(let k=Set_values(c),F=0,w=k.length;F<w;++F){let R=unchecked(k[F]);A.push(R)}c.clear();for(let k=0,F=A.length;k<F;++k)this.compileFunction(unchecked(A[k]),!0)}while(c.size);let f=this.functionTable,_=this.overrideStubs;for(let A=0,k=f.length;A<k;++A){let F=f[A];F.is(268435456)?(assert(F.is(262144)),f[A]=this.ensureOverrideStub(F)):F.signature.requiredParameters<F.signature.parameterTypes.length&&(f[A]=this.ensureVarargsStub(F))}let d=new Set;do{s.discoveredOverride=!1;for(let A=Set_values(_),k=0,F=A.length;k<F;++k){let w=unchecked(A[k]),R=s.resolveOverrides(w);if(R)for(let P=0,M=R.length;P<M;++P)this.compileFunction(R[P]);d.add(w)}}while(_.size>d.size||s.discoveredOverride);d.clear();for(let A=Set_values(_),k=0,F=A.length;k<F;++k)this.finalizeOverrideStub(A[k]);for(let A=Map_keys(this.pendingInstanceOf),k=0,F=A.length;k<F;++k){let w=A[k],R=assert(this.pendingInstanceOf.get(w));switch(w.kind){case 7:case 9:{this.finalizeInstanceOf(w,R);break}case 6:case 8:{this.finalizeAnyInstanceOf(w,R);break}default:assert(!1)}}t.removeGlobal(m.rtti_base),this.runtimeFeatures&8&&Ax(this),this.runtimeFeatures&16&&bx(this),this.runtimeFeatures&32&&Ex(this);let g=i64_align(this.memoryOffset,e.usizeType.byteSize);t.removeGlobal(m.data_end),((this.runtimeFeatures&1)!=0||a)&&(e.isWasm64?t.addGlobal(m.data_end,B.I64,!1,t.i64(i64_low(g),i64_high(g))):t.addGlobal(m.data_end,B.I32,!1,t.i32(i64_low(g)))),t.removeGlobal(m.stack_pointer),((this.runtimeFeatures&2)!=0||a)&&(g=i64_align(i64_add(g,i64_new(e.stackSize)),e.usizeType.byteSize),e.isWasm64?t.addGlobal(m.stack_pointer,B.I64,!0,t.i64(i64_low(g),i64_high(g))):t.addGlobal(m.stack_pointer,B.I32,!0,t.i32(i64_low(g)))),t.removeGlobal(m.heap_base),((this.runtimeFeatures&4)!=0||a)&&(e.isWasm64?t.addGlobal(m.heap_base,B.I64,!1,t.i64(i64_low(g),i64_high(g))):t.addGlobal(m.heap_base,B.I32,!1,t.i32(i64_low(g)))),this.initDefaultMemory(g),this.initDefaultTable(),this.runtimeFeatures&64&&(t.addFunction(m.setArgumentsLength,B.I32,B.None,null,t.global_set(this.ensureArgumentsLength(),t.local_get(0,B.I32))),t.addFunctionExport(m.setArgumentsLength,la.setArgumentsLength));let y=!o.length,E=e.exportStart;if(!y||E!=null){let A=l.signature;!y&&E!=null&&(t.addGlobal(m.started,B.I32,!0,t.i32(0)),o.unshift(t.global_set(m.started,t.i32(1))),o.unshift(t.if(t.global_get(m.started,B.I32),t.return())));let k=t.addFunction(l.internalName,A.paramRefs,A.resultRefs,an(l.getNonParameterLocalTypes()),t.flatten(o));l.finalize(t,k),E==null?t.setStart(k):!$e(E)||t.hasExport(E)?this.error(110,Ee.native.range,E):t.addFunctionExport(l.internalName,E)}return a&&this.shadowStack.walkModule(),n.lookup("ASC_RTRACE")!=null&&new nu(this).walkModule(),t}initDummyMemory(){let e=this.options;this.module.setMemory(0,Yt.UNLIMITED_MEMORY,[],e.target,null,N.DefaultMemory,e.sharedMemory)}initDefaultMemory(e){this.memoryOffset=e;let t=this.options,n=this.module,s=this.memorySegments,a=0,l=Yt.UNLIMITED_MEMORY,o=!1;(t.memoryBase||s.length)&&(a=u32(i64_low(i64_shr_u(i64_align(e,65536),i64_new(16))))),t.initialMemory&&(t.initialMemory<a?this.error(105,null,a.toString()):a=t.initialMemory),t.maximumMemory&&(t.maximumMemory<a?this.error(106,null,a.toString()):l=t.maximumMemory),t.sharedMemory&&(o=!0,t.maximumMemory||(this.error(107,null),o=!1),t.hasFeature(32)||(this.error(108,null),o=!1));let u=t.lowMemoryLimit;if(u){let c=i64_new(u&-16);i64_gt(e,c)&&this.error(104,null,i64_to_string(e),i64_to_string(c))}n.setMemory(a,l,s,t.target,t.exportMemory?la.Memory:null,N.DefaultMemory,o),t.importMemory&&n.addMemoryImport(N.DefaultMemory,gn.DefaultNamespace,gn.Memory,o)}initDefaultTable(){let e=this.options,t=this.module;e.importTable&&(t.addTableImport(N.DefaultTable,gn.DefaultNamespace,gn.Table),t.setClosedWorld(!1),e.pedantic&&e.willOptimize&&this.pedantic(901,null)),e.exportTable&&(t.addTableExport(N.DefaultTable,la.Table),t.setClosedWorld(!1),e.pedantic&&e.willOptimize&&this.pedantic(902,null));let n=e.tableBase;n||(n=1);let s=this.functionTable,a=new Array(s.length);for(let u=0,c=s.length;u<c;++u)a[u]=s[u].internalName;let l=n+s.length,o=Yt.UNLIMITED_TABLE;e.importTable||e.exportTable||(o=l,e.willOptimize&&t.setPassArgument("directize-initial-contents-immutable","true")),t.addFunctionTable(N.DefaultTable,l,o,a,t.i32(n))}compileModuleExports(e){let t=e.exports;if(t)for(let s=Map_keys(t),a=0,l=s.length;a<l;++a){let o=unchecked(s[a]),u=assert(t.get(o));this.compileModuleExport(o,u)}let n=e.exportsStar;if(n)for(let s=0,a=n.length;s<a;++s)this.compileModuleExports(n[s])}compileModuleExport(e,t,n=""){let s=this.module;switch(t.kind){case 4:{let a=t;if(!a.is(65536)){let l=this.resolver.resolveFunction(a,null);l&&this.compileModuleExport(e,l,n);return}break}case 5:{let a=t;if(!a.hasDecorator(512)){let l=a.signature;if(l.requiredParameters<l.parameterTypes.length&&(a=this.ensureVarargsStub(a),this.runtimeFeatures|=64),this.compileFunction(a),a.is(8388608)){let o=n+e;if(!s.hasExport(o)){if(s.addFunctionExport(a.internalName,o),this.hasCustomFunctionExports=!0,l.hasManagedOperands&&this.shadowStack.noteExport(o,l.getManagedOperandIndices()),!this.desiresExportRuntime){let c=l.thisType;if(c&&yn(c)||mn(l.returnType))this.desiresExportRuntime=!0;else{let f=l.parameterTypes;for(let _=0,d=f.length;_<d;++_)if(yn(f[_])){this.desiresExportRuntime=!0;break}}}a.signature.returnType.kind==16&&this.module.setClosedWorld(!1)}return}}break}case 0:{let a=t;if(!(a.is(8)||a.is(96))&&!this.options.hasFeature(2)){this.warning(103,a.identifierNode.range,"mutable-globals");return}if(this.compileGlobal(a),a.is(8388608)){let o=n+e;if(!s.hasExport(o)){if(s.addGlobalExport(t.internalName,o),!this.desiresExportRuntime){let u=a.type;(mn(u)||!a.is(8)&&yn(u))&&(this.desiresExportRuntime=!0)}a.type.kind==16&&this.module.setClosedWorld(!1)}a.type==p.v128&&this.warning(112,a.typeNode?assert(a.typeNode).range:a.identifierNode.range,"v128");return}break}case 2:{this.compileEnum(t);let a=t.members;if(a){let l=n+e+es;for(let o=Map_keys(a),u=0,c=o.length;u<c;++u){let f=unchecked(o[u]),_=assert(a.get(f));_.is(512)||this.compileModuleExport(f,_,l)}}return}case 3:{let a=t;if(!a.isImmutable&&!this.options.hasFeature(2)){this.error(103,a.identifierNode.range,"mutable-globals");return}if(a.is(8388608)){let l=n+e;s.hasExport(l)||s.addGlobalExport(t.internalName,l);return}break}}this.warning(235,t.identifierNode.range)}compileFileByPath(e,t){let n,s=this.program.filesByName,a;if(s.has(e))n=assert(s.get(e));else if(s.has(a=e+Qe))n=assert(s.get(a));else{this.error(6054,t.range,e);return}this.compileFile(n)}compileFile(e){if(e.is(8388608))return;e.set(8388608);let t=e.startFunction,n=t.signature,s=this.currentBody,a=new Array;this.currentBody=a;let l=this.currentFlow,o=t.flow;this.currentFlow=o;for(let u=e.source.statements,c=0,f=u.length;c<f;++c)this.compileTopLevelStatement(u[c],a);if(this.currentFlow=l,this.currentBody=s,a.length){let u=this.module,c=t.localsByIndex,f=c.length,_=new Array(f);for(let g=0;g<f;++g)_[g]=c[g].type.toRef();let d=u.addFunction(t.internalName,n.paramRefs,n.resultRefs,_,u.flatten(a));t.finalize(u,d),s.push(u.call(t.internalName,null,B.None))}}compileGlobalLazy(e,t){return e.is(8388608)?!e.is(16777216):e.hasAnyDecorator(1536)||e.is(32768)||this.hasConstantInitializer(e)?this.compileGlobal(e):(this.errorRelated(2448,t.range,e.identifierNode.range,e.internalName),!1)}hasConstantInitializer(e){let t=e.initializerNode;return t!=null&&t.evaluatesToConst}compileGlobal(e){if(e.is(8388608))return!e.is(16777216);e.set(8388608);let t=this.pendingElements;t.add(e);let n=this.module,s=0,a=e.typeNode,l=e.initializerNode;if(!e.is(4194304))if(a){let g=this.resolver.resolveType(a,null,e.parent);if(!g)return e.set(16777216),t.delete(e),!1;if(g==p.void)return this.error(1110,a.range),e.set(16777216),t.delete(e),!1;e.setType(g),this.program.checkTypeSupported(g,a),this.program.checkInlineStructValue(g,a,"a global")}else if(l){let g=this.currentFlow;if(e.hasDecorator(1024)&&(this.currentFlow=e.file.startFunction.flow),s=this.compileExpression(l,p.auto,20),this.currentFlow=g,this.currentType==p.void)return this.error(2322,l.range,this.currentType.toString(),"<auto>"),e.set(16777216),t.delete(e),!1;e.setType(this.currentType),this.program.checkInlineStructValue(this.currentType,l,"a global")}else return this.error(1110,e.identifierNode.range.atEnd),e.set(16777216),t.delete(e),!1;if(e.hasDecorator(512)){let g=e.internalName;return nr.has(g)&&assert(nr.get(g))(new Vs(this,e)),t.delete(e),!0}let o=e.type;!l&&!e.is(16384)&&o.isReference&&!o.isNullableReference&&this.error(238,e.identifierNode.range);let u=o.toRef(),c=e.is(8)||e.is(96),f=e.hasDecorator(64);if(e.is(32768))return c||this.options.hasFeature(2)?(wx(e,e.declaration),this.program.markModuleImport(Ei,Pr,e),n.addGlobalImport(e.internalName,Ei,Pr,u,!c),t.delete(e),!this.desiresExportRuntime&&yn(o)&&(this.desiresExportRuntime=!0),!0):(this.error(103,e.declaration.range,"mutable-globals"),e.set(16777216),t.delete(e),!1);let _=!1;if(l){if(!s){let g=this.currentFlow;e.hasDecorator(1024)&&(this.currentFlow=e.file.startFunction.flow),s=this.compileExpression(l,o,21),this.currentFlow=g}if(!n.isConstExpression(s))if(c){let g=n.runExpression(s,1);g?s=g:_=!0}else _=!0;if(_&&re(s)==10){let g=assert(gs(s));if(!yf(n.getGlobal(g))){let y=this.program.elementsByName;y.has(g)&&assert(y.get(g)).is(32768)&&(_=!1)}}if(f)if(_)this.warning(206,l.range);else{switch(assert(re(s)==14),ce(s)){case B.I32:{e.constantValueKind=1,e.constantIntegerValue=i64_new(se(s),0);break}case B.I64:{e.constantValueKind=1,e.constantIntegerValue=i64_new(Be(s),Ge(s));break}case B.F32:{e.constantValueKind=2,e.constantFloatValue=Ce(s);break}case B.F64:{e.constantValueKind=2,e.constantFloatValue=Pe(s);break}default:return assert(!1),e.set(16777216),t.delete(e),!1}e.set(33554432)}}else e.is(33554432)?s=this.compileInlineConstant(e,e.type,16):s=this.makeZero(o);let d=e.internalName;if(_){f&&this.error(212,$t(9,e.decoratorNodes).range,"inline");let g=o;o.isExternalReference&&!o.is(512)&&(e.set(-2147483648),g=o.asNullable()),n.addGlobal(d,g.toRef(),!0,this.makeZero(g)),this.currentBody.push(n.global_set(d,s))}else f||n.addGlobal(d,u,!c,s);return t.delete(e),!0}compileEnum(e){if(e.is(8388608))return!e.is(16777216);e.set(8388608);let t=this.resolver.resolveEnumType(e),n=this.pendingElements;n.add(e);let s=this.module,a=this.currentParent;this.currentParent=e;let l=null,o=!1,u=e.is(8)||e.hasDecorator(64),c=e.members;if(c)for(let f=Map_values(c),_=0,d=f.length;_<d;++_){let g=unchecked(f[_]);if(g.kind!=3)continue;let y=!1,E=g,A=E.valueNode;E.set(8388608);let k=this.currentFlow;e.hasDecorator(1024)&&(this.currentFlow=e.file.startFunction.flow);let F;if(A){if(F=this.compileExpression(A,t,1),re(F)!=14){let w=s.runExpression(F,1);w?F=w:(e.is(8)&&this.error(2474,A.range),y=!0)}}else if(l==null)F=s.i32(0);else if(o&&this.error(1061,E.identifierNode.range.atEnd),u){let w=i64_add(l.constantIntegerValue,i64_new(1));assert(!i64_high(w)),F=s.i32(i64_low(w))}else{F=s.binary(0,s.global_get(l.internalName,B.I32),s.i32(1));let w=s.runExpression(F,1);w?F=w:(e.is(8)&&this.error(2474,g.declaration.range),y=!0)}if(this.currentFlow=k,y)s.addGlobal(E.internalName,B.I32,!0,s.i32(0)),this.currentBody.push(this.makeGlobalAssignment(E,F,p.i32,!1)),o=!0;else{let w=se(F);this.enumMemberValueFits(w,t)||this.error(6404,A?A.range:E.identifierNode.range,E.name,t.toString()),u?(E.setConstantIntegerValue(i64_new(w),t),E.is(1048576)&&s.addGlobal(E.internalName,B.I32,!1,F)):s.addGlobal(E.internalName,B.I32,!1,F),E.isImmutable=!0,o=!1}l=E}return this.currentParent=a,n.delete(e),!0}enumMemberValueFits(e,t){switch(t.kind){case 1:return e>=i8.MIN_VALUE&&e<=i8.MAX_VALUE;case 6:return e>=0&&e<=u8.MAX_VALUE;case 2:return e>=i16.MIN_VALUE&&e<=i16.MAX_VALUE;case 7:return e>=0&&e<=u16.MAX_VALUE;default:return!0}}ensureEnumToString(e,t){if(e.toStringFunctionName)return e.toStringFunctionName;if(!this.compileEnum(e))return null;if(e.is(8))return this.errorRelated(2476,t.range,e.identifierNode.range),null;let n=e.members;if(!n)return null;let s=this.module,a=e.hasDecorator(64),l=`${e.internalName}#${N.EnumToString}`;e.toStringFunctionName=l;let o=new Array;for(let u=Map_keys(n),c=Map_values(n),f=1,_=u.length;f<=_;++f){let d=unchecked(u[_-f]),g=unchecked(c[_-f]);if(g.kind!=3)continue;let y=g,E=a?s.i32(i64_low(y.constantIntegerValue)):s.global_get(y.internalName,B.I32),A=s.if(s.binary(15,E,s.local_get(0,B.I32)),s.return(this.ensureStaticString(d)));o.push(A)}return o.push(s.unreachable()),s.addFunction(l,B.I32,B.I32,null,s.block(null,o,B.I32)),l}compileFunction(e,t=!1){if(e.is(16777216))return!1;if(e.is(8388608))return!0;if(!t){if(e.hasDecorator(512))return!0;if(e.hasDecorator(1024))return this.lazyFunctions.add(e),!0}let n=e.prototype.functionTypeNode.parameters,s=n.length;if(s>=2){let d=new Set;d.add(n[0].name.text);for(let g=1;g<s;g++){let y=n[g].name,E=y.text;d.has(E)?this.error(2300,y.range,E):d.add(E)}}e.set(8388608);let a=this.pendingElements;a.add(e);let l=this.currentType,o=this.module,u=e.signature,c=e.prototype.bodyNode,f=e.declaration;if(assert(f.kind==59||f.kind==62),this.checkSignatureSupported(e.signature,f.signature),u.hasHiddenDestParam&&e.is(268435456)&&this.error(100,f.name.range,"an @inline struct return on a virtual method (the override stub has no destination parameter; deferred)"),u.hasHiddenDestParam&&(e.is(1048576)||e.hasAnyDecorator(384))&&this.error(100,f.name.range,"an @inline struct return across the module boundary (the host would have to pass the destination pointer; that is an ABI version, not this phase)"),e.is(1048576)||e.hasAnyDecorator(384)){let d=u.parameterTypes;for(let g=0,y=d.length;g<y;++g){let E=unchecked(d[g]);if(!u.crossesByValueParam(g))continue;if(Te.fieldCountOf(E)==1){let k=e.prototype.functionTypeNode.parameters[g];this.error(100,k.type.range,"an @inline struct with a single field at a host boundary (the C/WASM tool convention passes a one-scalar struct as the scalar itself, while this compiler passes records as pointers; both are `(param i32)`, so the disagreement is silent. Pass the scalar directly, or use a struct with two or more fields)");break}}}if(e.hasAnyDecorator(384)&&!u.externalBoundary){let d=u.parameterTypes;for(let g=0,y=d.length;g<y;++g)if(this.isInlineStructType(unchecked(d[g]))){let E=e.prototype.functionTypeNode.parameters[g];this.error(100,E.type.range,"an @inline struct as an @external parameter (flattening the record into one WASM parameter per field would make its field list part of the host ABI; the by-value temp is the implemented path, so this declaration did not take it)");break}}if(e.is(1048576)&&!e.hasAnyDecorator(384)&&!u.exportByValParams){let d=u.parameterTypes;for(let g=0,y=d.length;g<y;++g)if(this.isInlineStructType(unchecked(d[g]))){let E=e.prototype.functionTypeNode.parameters[g];this.error(100,E.type.range,"an @inline struct as an export parameter (flattening the record into one WASM parameter per field would make its field list part of the host ABI; the by-value pointer parameter is the implemented path, so this declaration did not take it)");break}}let _=0;if(c){if(e.is(32768)&&this.error(1183,e.identifierNode.range),e.hasAnyDecorator(384)){let E=e.decoratorNodes,A;(A=$t(10,E))&&this.error(212,A.range,"external"),(A=$t(11,E))&&this.error(212,A.range,"external.js")}let d=this.currentFlow,g=e.flow;this.currentFlow=g;let y=new Array;u.exportByValParams&&this.emitExportByValPrologue(e,y),this.compileFunctionBody(e,y)||y.push(o.unreachable()),this.currentFlow=d,_=o.addFunction(e.internalName,u.paramRefs,u.resultRefs,an(e.getNonParameterLocalTypes()),o.flatten(y,u.resultRefs))}else if(e.is(32768)){if(wx(e,f),this.program.markModuleImport(Ei,Pr,e),o.addFunctionImport(e.internalName,Ei,Pr,u.paramRefs,u.resultRefs),_=o.getFunction(e.internalName),!this.desiresExportRuntime){let d=u.thisType;if(d&&mn(d)||yn(u.returnType))this.desiresExportRuntime=!0;else{let g=u.parameterTypes;for(let y=0,E=g.length;y<E;++y)if(mn(g[y])){this.desiresExportRuntime=!0;break}}}}else if(e.is(128)||e.parent.kind==9)_=o.addFunction(e.internalName,u.paramRefs,u.resultRefs,null,o.unreachable());else{if(e.isAny(6144)){let d=e.declaration.name.text,g=assert(e.parent.getMember(d));assert(g.kind==10);let y=g.instance;y&&y.isField&&(_=e.is(2048)?this.makeBuiltinFieldGetter(y):this.makeBuiltinFieldSetter(y),assert(e.is(8388608)))}_||(this.error(2391,e.identifierNode.range),e.set(16777216))}if((e.is(32768)||e.is(2))&&u.hasVectorValueOperands){let g,y=e.prototype.functionTypeNode;if(u.returnType==p.v128)g=y.returnType.range;else{let E=u.getVectorValueOperandIndices()[0];g=y.parameters[E].range}this.warning(112,g,"v128")}return e.finalize(o,_),this.currentType=l,a.delete(e),!0}compileFunctionBody(e,t){let n=this.module,s=assert(e.prototype.bodyNode),a=e.signature.returnType,l=this.currentFlow,o=e.signature.thisType?assert(l.lookupLocal(N.this_)):null,u=t.length;if(e.prototype.envKind==2){let c=assert(e.prototype.envClass),f=e.declaration.range.source,_=assert(this.program.filesByName.get(f.internalPath)),d=assert(_.getMember(c)),g=d.typeParameterNodes,y=null;if(g!=null&&g.length>0){let k=l.contextualTypeArguments,F=new Array(g.length);for(let w=0,R=g.length;w<R;++w){let P=g[w].name.text,M=k!=null?te(k,P):null;if(M==null)return this.error(1140,e.declaration.range),!1;F[w]=M}y=F}let E=assert(this.resolver.resolveClass(d,y,new Map,1)),A=l.addScopedLocal(Fx,E.type);l.setLocalFlag(A.index,8)}if(s.kind==34)t=this.compileStatements(s.statements,t);else{assert(s.kind==42),assert(e.prototype.arrowKind),assert(!e.isAny(530432));let c=this.compileExpression(s.expression,a,1);l.canOverflow(c,a)||l.set(2),l.isNonnull(c,a)&&l.set(4),t?t.push(c):t=[c],l.is(256)||(l.canOverflow(c,a)||l.set(2),l.isNonnull(c,a)&&l.set(4),l.set(257))}if(e.is(524288)){assert(e.is(262144)),o=assert(o);let c=assert(e.parent);assert(c.kind==7);let f=c;if(l.isAny(8256)||!l.is(256)){let _=new Array;_.push(this.makeConditionalAllocation(f,o.index)),this.makeFieldInitializationInConstructor(f,_);for(let d=t.length-1;d>=u;--d)t[d+1]=t[d];t[u]=n.flatten(_,B.None),l.is(16384)&&this.options.pedantic&&this.pedantic(905,e.identifierNode.range)}l.is(16384)&&!f.hasDecorator(32)&&this.error(231,f.identifierNode.range),l.is(256)||(t.push(n.local_get(o.index,o.type.toRef())),l.set(261)),f.base&&!f.prototype.implicitlyExtendsObject&&!l.is(128)&&this.error(2377,e.prototype.declaration.range)}else if(a!=p.void&&!l.is(256))return this.error(2355,e.prototype.functionTypeNode.returnType.range),!1;if(e.prototype.capturesThis){assert(!l.isInline);let c=assert(l.lookupLocal(N.this_));assert(!e.signature.thisType);let f=n.local_set(c.index,n.global_get(this.ensureEnvGlobal(),this.options.sizeTypeRef),c.type.isManaged);for(let _=t.length-1;_>=u;--_)t[_+1]=t[_];t[u]=f,l.setLocalFlag(c.index,8)}if(e.prototype.envKind==2){let c=assert(l.lookupLocal(Fx)),f=n.local_set(c.index,n.global_get(this.ensureEnvGlobal(),this.options.sizeTypeRef),c.type.isManaged);for(let _=t.length-1;_>=u;--_)t[_+1]=t[_];t[u]=f}return!0}makeBuiltinFieldGetter(e){let t=assert(e.getterInstance),n=this.module,s=e.type,a=s.toRef(),l=this.options.sizeTypeRef;t.set(8388608);let o=n.load(s.byteSize,s.isSignedIntegerValue,n.local_get(0,l),a,e.memoryOffset),u=this.currentFlow,c=t.flow;return this.currentFlow=c,e.is(16384)&&s.isReference&&!s.isNullableReference&&(o=this.makeRuntimeNonNullCheck(o,s,t.identifierNode)),this.currentFlow=u,n.addFunction(t.internalName,l,a,an(t.getNonParameterLocalTypes()),o)}makeBuiltinFieldSetter(e){let t=assert(e.setterInstance),n=this.module,s=e.type,a=this.options.sizeTypeRef,l=s.toRef(),o=n.store(s.byteSize,n.local_get(0,a),n.local_get(1,l),l,e.memoryOffset);if(s.isManaged){let u=t.parent;if(assert(u.kind==7),u.type.isManaged){let c=this.program.linkInstance;this.compileFunction(c),o=n.block(null,[o,n.call(c.internalName,[n.local_get(0,a),n.local_get(1,l),n.i32(0)],B.None)],B.None)}}return t.set(8388608),n.addFunction(t.internalName,ft([a,l]),B.None,null,o)}addAlignedMemorySegment(e,t=16){assert(Kr(t));let n=i64_align(this.memoryOffset,t),s=new Ji(e,n);return this.memorySegments.push(s),this.memoryOffset=i64_add(n,i64_new(e.length)),s}addRuntimeMemorySegment(e){let t=this.program.computeBlockStart64(this.memoryOffset),n=new Ji(e,t);return this.memorySegments.push(n),this.memoryOffset=i64_add(t,i64_new(e.length)),n}ensureStaticString(e){let t=this.ensureStaticStringPtr(e);return this.currentType=this.program.stringInstance.type,this.module.usize(t)}ensureStaticStringPtr(e){let t=this.program,n=t.totalOverhead,s=assert(t.stringInstance),a,l=this.stringSegments;if(l.has(e))a=assert(l.get(e));else{let c=e.length,f=s.createBuffer(c<<1);for(let _=0;_<c;++_)gr(e.charCodeAt(_),f,n+(_<<1));a=this.addRuntimeMemorySegment(f),l.set(e,a)}let o=i64_add(a.offset,i64_new(n)),u=this.staticGcObjectOffsets;if(u.has(i64_high(o)))assert(u.get(i64_high(o))).add(i64_low(o));else{let c=new Set;c.add(i64_low(o)),u.set(i64_high(o),c)}return o}writeStaticBuffer(e,t,n,s){let a=s.length,l=n.byteSize,o=n.toRef();switch(o){case B.I32:{switch(l){case 1:{for(let u=0;u<a;++u){let c=s[u];assert(ce(c)==o),assert(re(c)==14),ye(se(c),e,t),t+=1}break}case 2:{for(let u=0;u<a;++u){let c=s[u];assert(ce(c)==o),assert(re(c)==14),gr(se(c),e,t),t+=2}break}case 4:{for(let u=0;u<a;++u){let c=s[u];assert(ce(c)==o),assert(re(c)==14),Se(se(c),e,t),t+=4}break}default:assert(!1)}break}case B.I64:{for(let u=0;u<a;++u){let c=s[u];assert(ce(c)==o),assert(re(c)==14),qi(i64_new(Be(c),Ge(c)),e,t),t+=8}break}case B.F32:{for(let u=0;u<a;++u){let c=s[u];assert(ce(c)==o),assert(re(c)==14),qr(Ce(c),e,t),t+=4}break}case B.F64:{for(let u=0;u<a;++u){let c=s[u];assert(ce(c)==o),assert(re(c)==14),Wr(Pe(c),e,t),t+=8}break}case B.V128:{for(let u=0;u<a;++u){let c=s[u];assert(ce(c)==o),assert(re(c)==14),Mp(pf(c),e,t),t+=16}break}case B.None:break;default:assert(!1)}return t}addStaticBuffer(e,t,n=this.program.arrayBufferInstance.id){let s=this.program,l=s.arrayBufferInstance.createBuffer(t.length*e.byteSize);return this.program.OBJECTInstance.writeField("rtId",n,l,0),this.writeStaticBuffer(l,s.totalOverhead,e,t),this.addRuntimeMemorySegment(l)}addStaticArrayHeader(e,t,n=null){let s=this.program;n||(n=assert(this.resolver.resolveClass(this.program.arrayPrototype,[e])));let a=Oi(t.buffer,s.OBJECTInstance.offsetof("rtSize")),l=i32(a/e.byteSize),o=i64_add(t.offset,i64_new(s.totalOverhead)),u=n.createBuffer();return assert(n.writeField("buffer",o,u)),assert(n.writeField("dataStart",o,u)),assert(n.writeField("byteLength",a,u)),assert(n.writeField("length_",l,u)),this.addRuntimeMemorySegment(u)}ensureRuntimeFunction(e){assert(e.is(8388608)&&!e.is(134217728));let t=this.program,n=e.memorySegment;if(!n){let s=this.ensureFunctionTableIndex(e),a=assert(this.resolver.resolveClass(t.functionPrototype,[e.type]));this.assertFunctionLayout(a);let l=a.createBuffer();assert(a.writeField("_index",s,l)),assert(a.writeField("_env",0,l)),e.memorySegment=n=this.addRuntimeMemorySegment(l)}return i64_add(n.offset,i64_new(t.totalOverhead))}ensureFunctionTableIndex(e){let t=e.tableIndex;if(t)return t;this.options.importTable||this.module.ensureFunctionTable(N.DefaultTable);let n=this.functionTable,s=this.options.tableBase;s||(s=1);let a=s+n.length;return n.push(e),e.tableIndex=a,a}compileTopLevelStatement(e,t){switch(e.kind){case 55:{let n=e.members;for(let s=0,a=n.length;s<a;++s)this.compileTopLevelStatement(n[s],t);break}case 56:{let n=this.program.getElementByDeclaration(e);n&&(assert(n.kind==2),n.hasDecorator(1024)||this.compileEnum(n));break}case 63:{let n=e,s=this.program.getElementByDeclaration(n);if(s){let a=this.currentParent;this.currentParent=s;let l=n.members;for(let o=0,u=l.length;o<u;++o)this.compileTopLevelStatement(l[o],t);this.currentParent=a}break}case 51:{let n=e.declarations;for(let s=0,a=n.length;s<a;++s){let l=this.program.getElementByDeclaration(n[s]);l&&(assert(l.kind==0),!l.is(32768)&&!l.hasDecorator(1024)&&this.compileGlobal(l))}break}case 58:{let n=this.program.getElementByDeclaration(e);n&&n.kind==0&&(n.hasDecorator(1024)||this.compileGlobal(n));break}case 39:{let n=e,s=n.internalPath;s!=null&&this.compileFileByPath(s,assert(n.path));break}case 40:{this.compileTopLevelStatement(e.declaration,t);break}case 46:{let n=e;this.compileFileByPath(n.internalPath,n.path);break}case 59:case 62:case 61:case 69:case 64:break;default:{let n=this.compileStatement(e);re(n)!=22&&t.push(n);break}}}compileStatement(e){let t=this.module,n;switch(e.kind){case 34:{n=this.compileBlockStatement(e);break}case 35:{n=this.compileBreakStatement(e);break}case 36:{n=this.compileContinueStatement(e);break}case 37:{n=this.compileDoStatement(e);break}case 38:{n=this.compileEmptyStatement(e);break}case 42:{n=this.compileExpressionStatement(e);break}case 43:{n=this.compileForStatement(e);break}case 44:{n=this.compileForOfStatement(e);break}case 45:{n=this.compileIfStatement(e);break}case 47:{n=this.compileReturnStatement(e);break}case 48:{n=this.compileSwitchStatement(e);break}case 49:{n=this.compileThrowStatement(e);break}case 50:{n=this.compileTryStatement(e);break}case 51:{n=this.compileVariableStatement(e),n||(n=t.nop());break}case 52:{n=this.compileVoidStatement(e);break}case 53:{n=this.compileWhileStatement(e);break}case 64:{n=this.compileTypeDeclaration(e);break}case 54:{n=t.nop();break}default:assert(!1),n=t.unreachable()}return this.options.sourceMap&&this.addDebugLocation(n,e.range),n}compileStatements(e,t=null){let n=e.length;t||(t=new Array(n),t.length=0);let s=this.currentFlow;for(let a=0;a<n;++a){let l=this.compileStatement(e[a]);switch(re(l)){case 1:if(!xs(l)){for(let o=0,u=Es(l);o<u;++o)t.push(As(l,o));break}default:t.push(l);case 22:}if(s.isAny(272))break}return t}compileBlockStatement(e){let t=e.statements,n=this.currentFlow,s=n.fork();this.currentFlow=s;let a=this.compileStatements(t);return n.inherit(s),this.currentFlow=n,this.module.flatten(a)}compileTypeDeclaration(e){let t=this.currentFlow,n=e.name.text,s=t.lookupScopedTypeAlias(n);if(s)return this.errorRelated(2300,e.range,s.declaration.range,n),this.module.unreachable();let a=new at(n,t.sourceFunction,e,0);return t.addScopedTypeAlias(n,a),this.module.nop()}compileBreakStatement(e){let t=this.module,n=e.label;if(n)return this.error(100,n.range,"Break label"),t.unreachable();let s=this.currentFlow,a=s.breakLabel;return a==null?(this.error(1105,e.range),t.unreachable()):(s.set(16),t.br(a))}compileContinueStatement(e){let t=this.module,n=e.label;if(n)return this.error(100,n.range,"Continue label"),t.unreachable();let s=this.currentFlow,a=s.continueLabel;return a==null?(this.error(1104,e.range),t.unreachable()):(s.set(288),t.br(a))}compileDoStatement(e){return this.doCompileDoStatement(e)}doCompileDoStatement(e){let t=this.module,n=this.currentFlow,s=n.targetFunction.localsByIndex.length,a=n.fork(!0),l=a.pushControlFlowLabel(),o=`do-break|${l}`;a.breakLabel=o;let u=`do-continue|${l}`;a.continueLabel=u;let c=`do-loop|${l}`;this.currentFlow=a;let f=new Array,_=e.body;_.kind==34?this.compileStatements(_.statements,f):f.push(this.compileStatement(_)),a.popControlFlowLabel(l);let d=a.isAny(4128),g=a.isAny(2064),y=!a.isAny(272);if(!y&&!d)f.push(t.unreachable()),n.inherit(a),g||n.set(256);else{let A=this.compileExpression(e.condition,p.bool),k=this.makeIsTrueish(A,this.currentType,e.condition),F=this.evaluateCondition(k);if(F!=2&&(d||y)&&n.resetIfNeedsRecompile(a.forkThen(A),s))return this.currentFlow=n,this.doCompileDoStatement(e);d&&(f[0]=t.block(u,f),f.length=1,a.unset(256)),f.push(t.br(c,k)),n.inherit(a),F==1&&!g&&n.set(256)}this.currentFlow=n;let E=t.loop(c,t.flatten(f));return g&&(E=t.block(o,[E])),n.is(256)&&(E=t.block(null,[E,t.unreachable()])),E}compileEmptyStatement(e){return this.module.nop()}compileExpressionStatement(e){return this.compileExpression(e.expression,p.void,1)}compileForStatement(e){return this.doCompileForStatement(e)}doCompileForStatement(e){let t=this.module,n=this.currentFlow,s=n.targetFunction.localsByIndex.length,a=n.fork();this.currentFlow=a;let l=new Array,o=e.initializer;o&&(assert(o.kind==42||o.kind==51),l.push(this.compileStatement(o)));let u,c,f,_=e.condition;if(_){if(u=this.compileExpression(_,p.bool),c=this.makeIsTrueish(u,this.currentType,_),f=this.evaluateCondition(c),f==2)return l.push(t.drop(c)),n.inherit(a),this.currentFlow=n,t.flatten(l)}else u=t.i32(1),c=u,f=1;let d=a.forkThen(u,!0),g=d.pushControlFlowLabel(),y=`for-break${g}`;d.breakLabel=y;let E=`for-continue|${g}`;d.continueLabel=E;let A=`for-loop|${g}`;this.currentFlow=d;let k=new Array,F=e.body;F.kind==34?this.compileStatements(F.statements,k):k.push(this.compileStatement(F)),d.popControlFlowLabel(g),d.breakLabel=null,d.continueLabel=null;let w=!d.isAny(272),R=d.isAny(4128),P=d.isAny(2064);R&&(k[0]=t.block(E,k),k.length=1),f==1?a.inherit(d):a.mergeBranch(d);let M=R||w;if(M){let z=e.incrementor;if(z&&(this.currentFlow=a,k.push(this.compileExpression(z,p.void,9))),k.push(t.br(A)),n.resetIfNeedsRecompile(d.forkThen(u),s))return this.currentFlow=n,this.doCompileForStatement(e)}n.inherit(a),this.currentFlow=n;let O=t.if(c,t.flatten(k));return M&&(O=t.loop(A,O)),P&&(O=t.block(y,[O])),l.push(O),n.is(256)&&l.push(t.unreachable()),t.flatten(l)}compileForOfStatement(e){return this.error(100,e.range,"Iterators"),this.module.unreachable()}compileIfStatement(e){let t=this.module,n=e.ifTrue,s=e.ifFalse,a=this.compileExpression(e.condition,p.bool),l=this.makeIsTrueish(a,this.currentType,e.condition);switch(this.evaluateCondition(l)){case 1:return t.block(null,[t.drop(l),this.compileStatement(n)]);case 2:return s?t.block(null,[t.drop(l),this.compileStatement(s)]):t.drop(l)}let u=this.currentFlow,c=new Array,f=u.forkThen(a);this.currentFlow=f,n.kind==34?this.compileStatements(n.statements,c):c.push(this.compileStatement(n)),this.currentFlow=u;let _=u.forkElse(a);if(s){this.currentFlow=_;let d=new Array;return s.kind==34?this.compileStatements(s.statements,d):d.push(this.compileStatement(s)),u.inheritAlternatives(f,_),this.currentFlow=u,t.if(l,t.flatten(c),t.flatten(d))}else return f.isAny(272)?(u.inherit(_),u.mergeSideEffects(f)):u.inheritAlternatives(f,_),this.currentFlow=u,t.if(l,t.flatten(c))}compileReturnStatement(e){let t=this.module,n=0,s=this.currentFlow,a=s.returnType,l=e.value;if(l){if(this.isInlineStructType(a))return this.compileSretReturnStatement(e,a);let o=1;s.sourceFunction.is(1048576)&&(o|=4),n=this.compileExpression(l,a,o),s.canOverflow(n,a)||s.set(2),s.isNonnull(n,a)&&s.set(4),s.sourceFunction.is(524288)&&l.kind!=26&&s.set(16384)}else if(a!=p.void)return this.error(2322,e.range,"void",a.toString()),this.currentType=a,t.unreachable();if(s.set(257),s.isInline){let o=assert(s.inlineReturnLabel);return n?this.currentType==p.void?t.block(null,[n,t.br(o)]):t.br(o,0,n):t.br(o)}return n?this.currentType==p.void?t.block(null,[n,t.return()]):t.return(n):t.return()}compileSwitchStatement(e){let t=this.module,n=e.cases,s=n.length,a=this.compileExpression(e.condition,p.auto),l=this.currentType;if(!s)return t.drop(a);let o=this.currentFlow,c=o.getTempLocal(l).index,f=new Array(1+s);f[0]=t.local_set(c,a,l.isManaged);let _=1,d=-1,g=o.pushControlFlowLabel();for(let k=0;k<s;++k){let F=n[k];if(F.isDefault){d=k;continue}let w=e.condition,R=t.local_get(c,l.toRef()),P=l,M=F.label,O=this.compileExpression(assert(F.label),l,1),z=this.currentType,j=this.compileCommutativeCompareBinaryExpressionFromParts(77,w,R,P,M,O,z,l,e);f[_++]=t.br(`case${k}|${g}`,j)}f[_]=t.br(d>=0?`case${d}|${g}`:`break|${g}`);let y=t.block(`case0|${g}`,f,B.None),E=null,A=null;for(let k=0;k<s;++k){let w=n[k].statements,R=w.length,P=o.fork(!0,!1);E&&P.mergeBranch(E),this.currentFlow=P;let M=`break|${g}`;P.breakLabel=M;let O=k==s-1,z=O?M:`case${k+1}|${g}`,j=new Array(1+R);j[0]=y;let U=1,D=!0;for(let Y=0;Y<R;++Y){let q=this.compileStatement(w[Y]);if(re(q)!=22&&(j[U++]=q),P.isAny(272)){D=!1;break}}j.length=U,E=D?P:null;let Q=P.isAny(2064);P.unset(2064),Q||O&&D?A?A.inheritAlternatives(A,P):A=P:D||o.mergeSideEffects(P),this.currentFlow=o,y=t.block(z,j,B.None)}return o.popControlFlowLabel(g),d>=0?A?o.inherit(A):o.set(256):A&&o.mergeBranch(A),this.currentFlow=o,y}compileThrowStatement(e){this.currentFlow.set(264);let n=new Array,s=e.value,a=null;if(s.kind==19){let l=s.args;l.length&&(a=l[0])}return n.push(this.makeAbort(a,e)),this.module.flatten(n)}compileTryStatement(e){return this.error(100,e.range,"Exceptions"),this.module.unreachable()}compileLazyLocal(e,t,n,s){let a=this.module,l=this.resolver,o=e.name.text,u=n.expression,c=null;if(t){if(c=l.resolveType(t,s,s.sourceFunction,de(s.contextualTypeArguments)),!c)return 0;this.program.checkTypeSupported(c,t)}else{if(c=l.resolveExpression(u,s,p.auto,0),!c)return 0;if(c==p.void)return this.error(2322,e.range,c.toString(),"<auto>"),0}if(this.inlineStructFieldsOf(c)!=null)return this.error(100,e.range,"a '@lazy' binding of an @inline struct value"),0;if(s.getScopedLocal(o)!=null)return this.error(2300,e.name.range,o),0;let f=s.addScopedLocal(o,c),_=s.targetFunction.addLocal(p.bool,o+"$lazyDone",null);s.unsetLocalFlag(_.index,-1),s.setLocalFlag(f.index,8),c.isShortIntegerValue&&(s.unsetLocalFlag(f.index,-1),s.setLocalFlag(f.index,10));let d=this.lazyLocals;return d==null&&(d=new Map,this.lazyLocals=d),d.set(f,new m_(f.index,_.index,u)),a.local_set(_.index,a.i32(0),!1)}compileVariableStatement(e){let t=this.module,n=e.declarations,s=n.length,a=this.currentFlow,l=new Array,o=this.resolver;for(let u=0;u<s;++u){let c=n[u],f=c.name.text,_=null,d=0,g=null;c.is(16384)&&this.warning(239,c.name.range);let y=c.type,E=c.initializer;if(E!=null&&E.kind==32){let F=this.compileLazyLocal(c,y,E,a);F!=0&&l.push(F);continue}if(y){if(_=o.resolveType(y,a,a.sourceFunction,de(a.contextualTypeArguments)),!_)continue;this.program.checkTypeSupported(_,y);let F=this.inlineStructFieldsOf(_);if(F!=null){this.compileSroaLocal(c,_,F,E,a,l);continue}if(E){let w=this.pendingElements,R=a.addScopedDummyLocal(f,_,e);w.add(R),d=this.compileExpression(E,_,1),g=this.currentType,w.delete(R),a.freeScopedDummyLocal(f)}}else if(E){if(E.kind==8){let R=a.lookupLocal(E.text);if(R!=null&&R.fieldLocals!=null){let P=assert(this.inlineStructFieldsOf(R.type));this.compileSroaLocal(c,R.type,P,E,a,l);continue}}let F=this.pendingElements,w=a.addScopedDummyLocal(f,p.auto,e);if(F.add(w),d=this.compileExpression(E,p.auto),g=this.currentType,F.delete(w),a.freeScopedDummyLocal(f),this.currentType==p.void){this.error(2322,c.range,this.currentType.toString(),"<auto>");continue}_=g}else{this.error(1110,c.name.range.atEnd);continue}let A=c.is(8),k=!1;if(A)if(d){let F=t.runExpression(d,1);if(F){d=F;let w=null;switch(ce(d)){case B.I32:{w=new Ae(f,-1,_,a.targetFunction),w.setConstantIntegerValue(i64_new(se(d),0),_);break}case B.I64:{w=new Ae(f,-1,_,a.targetFunction),w.setConstantIntegerValue(i64_new(Be(d),Ge(d)),_);break}case B.F32:{w=new Ae(f,-1,_,a.targetFunction),w.setConstantFloatValue(Ce(d),_);break}case B.F64:{w=new Ae(f,-1,_,a.targetFunction),w.setConstantFloatValue(Pe(d),_);break}}if(w){let R=a.scopedLocals;if(!R)a.scopedLocals=R=new Map;else if(R.has(f)){let P=assert(R.get(f));return this.errorRelated(2300,c.name.range,P.declaration.name.range,f),this.module.unreachable()}R.set(f,w),k=!0}}}else this.error(1155,c.range);if(!k){let F=this.inlineStructFieldsOf(_);if(F!=null){this.compileSroaLocal(c,_,F,E,a,l);continue}let w;if(c.isAny(24)||a.isInline){let R=a.getScopedLocal(f);R?(R.declaration.range.source.isNative?this.error(2300,c.name.range,f):this.errorRelated(2300,c.name.range,R.declaration.name.range,f),w=R):w=a.addScopedLocal(f,_),A&&a.setLocalFlag(w.index,1)}else{let R=a.lookupLocal(f);if(R){this.errorRelated(2300,c.name.range,R.declaration.name.range,f);continue}w=a.targetFunction.addLocal(_,f,c),a.unsetLocalFlag(w.index,-1),A&&a.setLocalFlag(w.index,1)}d?l.push(this.makeLocalAssignment(w,d,g||_,!1)):w.type.isShortIntegerValue&&a.setLocalFlag(w.index,2)}}return this.currentType=p.void,l.length==0?0:t.flatten(l)}compileVoidStatement(e){return this.compileExpression(e.expression,p.void,10)}compileWhileStatement(e){return this.doCompileWhileStatement(e)}doCompileWhileStatement(e){let t=this.module,n=this.currentFlow,s=n.targetFunction.localsByIndex.length,a=this.compileExpression(e.condition,p.bool),l=this.makeIsTrueish(a,this.currentType,e.condition),o=this.evaluateCondition(l);if(o==2)return t.drop(l);let u=n.forkThen(a,!0),c=u.pushControlFlowLabel(),f=`while-break|${c}`;u.breakLabel=f;let _=`while-continue|${c}`;u.continueLabel=_,this.currentFlow=u;let d=new Array,g=e.body;g.kind==34?this.compileStatements(g.statements,d):d.push(this.compileStatement(g)),d.push(t.br(_)),u.popControlFlowLabel(c);let y=u.isAny(4128),E=u.isAny(2064),A=!u.isAny(272);if((y||A)&&n.resetIfNeedsRecompile(u,s))return this.currentFlow=n,this.doCompileWhileStatement(e);let F=!1;if(o==1)n.inherit(u),E||(F=!0,n.set(256));else{let R=n.forkElse(a);!A&&!E?(n.inherit(R),n.mergeSideEffects(u)):n.inheritAlternatives(u,R)}this.currentFlow=n;let w=[t.loop(_,t.if(l,t.flatten(d)))];return F&&w.push(t.unreachable()),t.block(f,w)}compileInlineConstant(e,t,n){assert(e.is(37748736));let s=e.type;switch(this.currentType=s,s.kind){case 0:return this.module.i32(e.constantValueKind==1?i64_ne(e.constantIntegerValue,i64_zero):0);case 1:case 2:{let a=s.computeSmallIntegerShift(p.i32);return this.module.i32(e.constantValueKind==1?i64_low(e.constantIntegerValue)<<a>>a:0)}case 6:case 7:{let a=e.type.computeSmallIntegerMask(p.i32);return this.module.i32(e.constantValueKind==1?i64_low(e.constantIntegerValue)&a:0)}case 3:case 8:return this.module.i32(e.constantValueKind==1?i64_low(e.constantIntegerValue):0);case 5:case 10:if(!e.program.options.isWasm64)return this.module.i32(e.constantValueKind==1?i64_low(e.constantIntegerValue):0);case 4:case 9:return e.constantValueKind==1?this.module.i64(i64_low(e.constantIntegerValue),i64_high(e.constantIntegerValue)):this.module.i64(0);case 12:{if(!(e.hasDecorator(512)&&t==p.f32))return this.module.f64(e.constantFloatValue);this.currentType=p.f32}case 11:return this.module.f32(e.constantFloatValue);default:return assert(!1),this.module.unreachable()}}compileExpression(e,t,n=0){for(;e.kind==22;)e=e.expression;this.currentType=t,t==p.void&&(n|=8);let s;switch(e.kind){case 9:{s=this.compileAssertionExpression(e,t,n);break}case 10:{s=this.compileBinaryExpression(e,t,n);break}case 11:{s=this.compileCallExpression(e,t,n);break}case 13:{s=this.compileCommaExpression(e,t,n);break}case 14:{s=this.compileElementAccessExpression(e,t,n);break}case 16:{s=this.compileFunctionExpression(e,t,n);break}case 8:case 15:case 20:case 26:case 25:case 27:{s=this.compileIdentifierExpression(e,t,n);break}case 17:{s=this.compileInstanceOfExpression(e,t,n);break}case 18:{s=this.compileLiteralExpression(e,t,n);break}case 19:{s=this.compileNewExpression(e,t,n);break}case 23:{s=this.compilePropertyAccessExpression(e,t,n);break}case 24:{s=this.compileTernaryExpression(e,t,n);break}case 29:{s=this.compileUnaryPostfixExpression(e,t,n);break}case 30:{s=this.compileUnaryPrefixExpression(e,t,n);break}case 31:{s=this.compileLoweredAwaitExpression(e);break}case 32:{let o=e;this.warning(6398,o.range),s=this.compileExpression(o.expression,t,n);break}case 33:{let o=e;s=o.expr,this.currentType=o.type;break}case 12:{this.error(100,e.range,"Block-scoped class declarations or expressions"),s=this.module.unreachable();break}default:assert(!1),s=this.module.unreachable()}let a=this.currentType,l=(n&4)!=0;return a!=t.nonNullableType&&(n&2?(s=this.convertExpression(s,a,t,!0,e),this.currentType=a=t):n&1&&(s=this.convertExpression(s,a,t,!1,e),this.currentType=a=t)),l&&(s=this.ensureSmallIntegerWrap(s,a)),this.options.sourceMap&&this.addDebugLocation(s,e.range),s}convertExpression(e,t,n,s,a){let l=this.module;if(t.kind==26)return n.kind==26?e:(this.error(2322,a.range,t.toString(),n.toString()),l.unreachable());if(n.kind==26)return l.drop(e);if(t.isReference||n.isReference)return this.currentFlow.isNonnull(e,t)?t=t.nonNullableType:s&&t.isNullableReference&&!n.isNullableReference&&(this.options.noAssert||(e=this.makeRuntimeNonNullCheck(e,t,a)),t=t.nonNullableType),t.isAssignableTo(n)?(assert(n.isExternalReference||t.kind==n.kind),this.currentType=n,e):s&&n.nonNullableType.isAssignableTo(t)?n.isExternalReference?(this.error(100,a.range,"ref.cast"),this.currentType=n,l.unreachable()):(assert(t.kind==n.kind),this.options.noAssert||(e=this.makeRuntimeDowncastCheck(e,t,n,a)),this.currentType=n,e):(this.error(2322,a.range,t.toString(),n.toString()),this.currentType=n,l.unreachable());if(assert(!t.isReference&&!n.isReference),n.kind==t.kind)return this.currentType=n,e;if(!n.isBooleanValue&&(n.isVectorValue||t.isVectorValue))return this.error(2322,a.range,t.toString(),n.toString()),l.unreachable();if(t.isAssignableTo(n)||s||this.error(200,a.range,t.toString(),n.toString()),t.isFloatValue)if(n.isFloatValue)t.kind==11?n.kind==12&&(e=l.unary(43,e)):n.kind==11&&(e=l.unary(44,e));else if(n.isIntegerValue)if(t.kind==11)if(n.isBooleanValue)e=this.makeIsTrueish(e,p.f32,a);else if(n.isSignedIntegerValue){let o=this.options.hasFeature(4);n.isLongIntegerValue?e=l.unary(o?56:26,e):e=l.unary(o?52:25,e)}else{let o=this.options.hasFeature(4);n.isLongIntegerValue?e=l.unary(o?57:28,e):e=l.unary(o?53:27,e)}else if(n.isBooleanValue)e=this.makeIsTrueish(e,p.f64,a);else if(n.isSignedIntegerValue){let o=this.options.hasFeature(4);n.isLongIntegerValue?e=l.unary(o?58:30,e):e=l.unary(o?54:29,e)}else{let o=this.options.hasFeature(4);n.isLongIntegerValue?e=l.unary(o?59:32,e):e=l.unary(o?55:31,e)}else assert(n.flags==0,"void type expected"),e=l.drop(e);else if(t.isIntegerValue&&n.isFloatValue){e=this.ensureSmallIntegerWrap(e,t);let o;n.kind==11?t.isLongIntegerValue?t.isSignedIntegerValue?o=39:o=41:t.isSignedIntegerValue?o=35:o=37:t.isLongIntegerValue?t.isSignedIntegerValue?o=40:o=42:t.isSignedIntegerValue?o=36:o=38,e=l.unary(o,e)}else t==p.v128&&n.isBooleanValue?e=this.makeIsTrueish(e,p.v128,a):t.isLongIntegerValue?n.isBooleanValue?e=l.binary(41,e,l.i64(0)):n.isLongIntegerValue||(e=l.unary(24,e)):n.isLongIntegerValue?e=l.unary(t.isSignedIntegerValue?22:23,this.ensureSmallIntegerWrap(e,t)):t.isShortIntegerValue?t.size<n.size&&(e=this.ensureSmallIntegerWrap(e,t)):!s&&!this.options.isWasm64&&t.isVaryingIntegerValue&&!n.isVaryingIntegerValue&&this.warning(201,a.range,t.toString(),n.toString());return this.currentType=n,e}compileAssertionExpression(e,t,n){let s=n&-4;switch(e.assertionKind){case 0:case 1:{let a=this.currentFlow,l=this.resolver.resolveType(assert(e.toType),a,a.sourceFunction,de(a.contextualTypeArguments));return l?this.compileExpression(e.expression,l,s|2):this.module.unreachable()}case 2:{assert(!e.toType);let a=this.compileExpression(e.expression,t.exceptVoid,s),l=this.currentType;return this.currentFlow.isNonnull(a,l)?this.info(210,e.expression.range):this.options.noAssert||(a=this.makeRuntimeNonNullCheck(a,l,e)),this.currentType=l.nonNullableType,a}case 3:return this.error(100,e.range,"Const assertion"),this.module.unreachable();default:assert(!1)}return this.module.unreachable()}compileCommutativeCompareBinaryExpression(e,t){let n=e.left,s=this.compileExpression(n,t),a=this.currentType,l=e.right,o=this.compileExpression(l,a),u=this.currentType;return this.compileCommutativeCompareBinaryExpressionFromParts(e.operator,n,s,a,l,o,u,t,e)}compileCommutativeCompareBinaryExpressionFromParts(e,t,n,s,a,l,o,u,c){let f=this.module,_=Le(e),d=Me.fromBinaryToken(e),g=s.lookupOverload(d,this.program),y=o.lookupOverload(d,this.program);if(g&&y&&g!=y)return this.error(240,c.range,_,g.internalName,y.internalName),this.currentType=u,f.unreachable();if(g)return this.compileCommutativeBinaryOverload(g,t,n,s,a,l,o,c);if(y)return this.compileCommutativeBinaryOverload(y,a,l,o,t,n,s,c);let A=p.commonType(s,o,u,!1);if(!A)return this.error(2365,c.range,_,s.toString(),o.toString()),this.currentType=u,f.unreachable();switch(A.isFloatValue&&((Lo(f,l)||Lo(f,n))&&this.warning(907,c.range),(No(l)||No(n))&&this.warning(908,c.range)),n=this.convertExpression(n,s,A,!1,t),s=A,l=this.convertExpression(l,o,A,!1,a),o=A,this.currentType=p.bool,e){case 79:case 77:return this.makeEq(n,l,A,c);case 80:case 78:return this.makeNe(n,l,A,c);default:return assert(!1),f.unreachable()}}compileNonCommutativeCompareBinaryExpression(e,t){let n=this.module,s=e.left,a=e.right,l,o,u,c,f,_=e.operator,d=Le(_);l=this.compileExpression(s,t),o=this.currentType;let g=Me.fromBinaryToken(_),y=o.lookupOverload(g,this.program);if(y)return this.compileBinaryOverload(y,s,l,o,a,e);if(u=this.compileExpression(a,o),c=this.currentType,f=p.commonType(o,c,t,!0),!f||!f.isNumericValue)return this.error(2365,e.range,d,o.toString(),c.toString()),this.currentType=t,n.unreachable();switch(l=this.convertExpression(l,o,f,!1,s),o=f,u=this.convertExpression(u,c,f,!1,a),c=f,this.currentType=p.bool,_){case 73:return this.makeLt(l,u,f);case 74:return this.makeGt(l,u,f);case 75:return this.makeLe(l,u,f);case 76:return this.makeGe(l,u,f);default:return assert(!1),n.unreachable()}}compileBinaryExpression(e,t,n){let s=this.module,a=e.left,l=e.right,o,u,c,f,_,d,g=!1;switch(e.operator){case 73:case 74:case 75:case 76:return this.compileNonCommutativeCompareBinaryExpression(e,t);case 79:case 77:case 80:case 78:return this.compileCommutativeCompareBinaryExpression(e,t);case 102:return this.compileAssignment(a,l,t);case 103:g=!0;case 82:{o=this.compileExpression(a,t),u=this.currentType;let F=u.getClassOrWrapper(this.program);if(F){let w=F.lookupOverload(5);if(w){d=this.compileBinaryOverload(w,a,o,u,l,e);break}}if(g){if(!u.isNumericValue)return this.error(2469,e.range,"+",u.toString()),s.unreachable();c=this.compileExpression(l,u,1),f=_=this.currentType}else{if(c=this.compileExpression(l,u),f=this.currentType,_=p.commonType(u,f,t),!_||!_.isNumericValue)return this.error(2365,e.range,"+",u.toString(),f.toString()),this.currentType=t,s.unreachable();o=this.convertExpression(o,u,_,!1,a),u=_,c=this.convertExpression(c,f,_,!1,l),f=_}d=this.makeAdd(o,c,_);break}case 104:g=!0;case 83:{o=this.compileExpression(a,t),u=this.currentType;let F=u.getClassOrWrapper(this.program);if(F){let w=F.lookupOverload(6);if(w){d=this.compileBinaryOverload(w,a,o,u,l,e);break}}if(g){if(!u.isNumericValue)return this.error(2469,e.range,"-",u.toString()),s.unreachable();c=this.compileExpression(l,u,1),f=_=this.currentType}else{if(c=this.compileExpression(l,u),f=this.currentType,_=p.commonType(u,f,t),!_||!_.isNumericValue)return this.error(2365,e.range,"-",u.toString(),f.toString()),this.currentType=t,s.unreachable();o=this.convertExpression(o,u,_,!1,a),u=_,c=this.convertExpression(c,f,_,!1,l),f=_}d=this.makeSub(o,c,_);break}case 105:g=!0;case 85:{o=this.compileExpression(a,t),u=this.currentType;let F=u.getClassOrWrapper(this.program);if(F){let w=F.lookupOverload(7);if(w){d=this.compileBinaryOverload(w,a,o,u,l,e);break}}if(g){if(!u.isNumericValue)return this.error(2469,e.range,"*",u.toString()),s.unreachable();c=this.compileExpression(l,u,1),f=_=this.currentType}else{if(c=this.compileExpression(l,u),f=this.currentType,_=p.commonType(u,f,t),!_||!_.isNumericValue)return this.error(2365,e.range,"*",u.toString(),f.toString()),this.currentType=t,s.unreachable();o=this.convertExpression(o,u,_,!1,a),u=_,c=this.convertExpression(c,f,_,!1,l),f=_}d=this.makeMul(o,c,_);break}case 106:g=!0;case 84:{o=this.compileExpression(a,t),u=this.currentType;let F=u.getClassOrWrapper(this.program);if(F){let w=F.lookupOverload(10);if(w){d=this.compileBinaryOverload(w,a,o,u,l,e);break}}if(g){if(!u.isNumericValue)return this.error(2469,e.range,"**",u.toString()),s.unreachable();c=this.compileExpression(l,u,1),f=_=this.currentType}else{if(c=this.compileExpression(l,u),f=this.currentType,_=p.commonType(u,f,t),!_||!_.isNumericValue)return this.error(2365,e.range,"**",u.toString(),f.toString()),this.currentType=t,s.unreachable();o=this.convertExpression(o,u,_,!1,a),u=_,c=this.convertExpression(c,f,_,!1,l),f=_}d=this.makePow(o,c,_,e);break}case 107:g=!0;case 86:{o=this.compileExpression(a,t),u=this.currentType;let F=u.getClassOrWrapper(this.program);if(F){let w=F.lookupOverload(8);if(w){d=this.compileBinaryOverload(w,a,o,u,l,e);break}}if(g){if(!u.isNumericValue)return this.error(2469,e.range,"/",u.toString()),s.unreachable();c=this.compileExpression(l,u,1),f=_=this.currentType}else{if(c=this.compileExpression(l,u),f=this.currentType,_=p.commonType(u,f,t),!_||!_.isNumericValue)return this.error(2365,e.range,"/",u.toString(),f.toString()),this.currentType=t,s.unreachable();o=this.convertExpression(o,u,_,!1,a),u=_,c=this.convertExpression(c,f,_,!1,l),f=_}d=this.makeDiv(o,c,_);break}case 108:g=!0;case 87:{o=this.compileExpression(a,t),u=this.currentType;let F=u.getClassOrWrapper(this.program);if(F){let w=F.lookupOverload(9);if(w){d=this.compileBinaryOverload(w,a,o,u,l,e);break}}if(g){if(!u.isNumericValue)return this.error(2469,e.range,"%",u.toString()),s.unreachable();c=this.compileExpression(l,u,1),f=_=this.currentType}else{if(c=this.compileExpression(l,u),f=this.currentType,_=p.commonType(u,f,t),!_||!_.isNumericValue)return this.error(2365,e.range,"%",u.toString(),f.toString()),this.currentType=t,s.unreachable();o=this.convertExpression(o,u,_,!1,a),u=_,c=this.convertExpression(c,f,_,!1,l),f=_}d=this.makeRem(o,c,_,e);break}case 109:g=!0;case 90:{o=this.compileExpression(a,t.intType),u=this.currentType;let F=u.getClassOrWrapper(this.program);if(F){let w=F.lookupOverload(14);if(w){d=this.compileBinaryOverload(w,a,o,u,l,e);break}}if(!u.isIntegerValue)return this.error(2469,e.range,"<<",u.toString()),s.unreachable();c=this.compileExpression(l,u,1),f=this.currentType,d=this.makeShl(o,c,f);break}case 110:g=!0;case 91:{o=this.compileExpression(a,t.intType),u=this.currentType;let F=u.getClassOrWrapper(this.program);if(F){let w=F.lookupOverload(15);if(w){d=this.compileBinaryOverload(w,a,o,u,l,e);break}}if(!u.isIntegerValue)return this.error(2469,e.range,">>",u.toString()),this.module.unreachable();c=this.compileExpression(l,u,1),f=this.currentType,d=this.makeShr(o,c,f);break}case 111:g=!0;case 92:{o=this.compileExpression(a,t.intType),u=this.currentType;let F=u.getClassOrWrapper(this.program);if(F){let w=F.lookupOverload(16);if(w){d=this.compileBinaryOverload(w,a,o,u,l,e);break}}if(!u.isIntegerValue)return this.error(2469,e.range,">>>",u.toString()),s.unreachable();c=this.compileExpression(l,u,1),f=this.currentType,d=this.makeShru(o,c,f);break}case 112:g=!0;case 93:{o=this.compileExpression(a,t.intType),u=this.currentType;let F=u.getClassOrWrapper(this.program);if(F){let w=F.lookupOverload(11);if(w){d=this.compileBinaryOverload(w,a,o,u,l,e);break}}if(g){if(!u.isIntegerValue)return this.error(2469,e.range,"&",u.toString()),s.unreachable();c=this.compileExpression(l,u,1),f=_=this.currentType}else{if(c=this.compileExpression(l,u),f=this.currentType,_=p.commonType(u,f,t),!_||!_.isIntegerValue)return this.error(2365,e.range,"&",u.toString(),f.toString()),this.currentType=t,s.unreachable();o=this.convertExpression(o,u,_,!1,a),u=_,c=this.convertExpression(c,f,_,!1,l),f=_}d=this.makeAnd(o,c,_);break}case 113:g=!0;case 94:{o=this.compileExpression(a,t.intType),u=this.currentType;let F=u.getClassOrWrapper(this.program);if(F){let w=F.lookupOverload(12);if(w){d=this.compileBinaryOverload(w,a,o,u,l,e);break}}if(g){if(!u.isIntegerValue)return this.error(2469,e.range,"|",u.toString()),s.unreachable();c=this.compileExpression(l,u,1),f=_=this.currentType}else{if(c=this.compileExpression(l,u),f=this.currentType,_=p.commonType(u,f,t),!_||!_.isIntegerValue)return this.error(2365,e.range,"|",u.toString(),f.toString()),this.currentType=t,s.unreachable();o=this.convertExpression(o,u,_,!1,a),u=_,c=this.convertExpression(c,f,_,!1,l),f=_}d=this.makeOr(o,c,_);break}case 114:g=!0;case 95:{o=this.compileExpression(a,t.intType),u=this.currentType;let F=u.getClassOrWrapper(this.program);if(F){let w=F.lookupOverload(13);if(w){d=this.compileBinaryOverload(w,a,o,u,l,e);break}}if(g){if(!u.isIntegerValue)return this.error(2469,e.range,"^",u.toString()),s.unreachable();c=this.compileExpression(l,u,1),f=_=this.currentType}else{if(c=this.compileExpression(l,u),f=this.currentType,_=p.commonType(u,f,t),!_||!_.isIntegerValue)return this.error(2365,e.range,"^",u.toString(),f.toString()),this.currentType=t,s.unreachable();o=this.convertExpression(o,u,_,!1,a),u=_,c=this.convertExpression(c,f,_,!1,l),f=_}d=this.makeXor(o,c,_);break}case 98:{let F=this.currentFlow,w=n&4;o=this.compileExpression(a,t.exceptVoid,w),u=this.currentType;let R=F.forkThen(o);if(this.currentFlow=R,t==p.bool||t==p.void){o=this.makeIsTrueish(o,u,a);let P=this.evaluateCondition(o);P==2?d=o:(c=this.compileExpression(l,u,w),f=this.currentType,c=this.makeIsTrueish(c,f,l),P==1?(d=c,F.inherit(R)):(d=s.if(o,c,s.i32(0)),F.mergeBranch(R),F.noteThen(d,R))),this.currentFlow=F,this.currentType=p.bool}else{if(c=this.compileExpression(l,u,w),f=this.currentType,_=p.commonType(u,f,t),!_)return this.error(2365,e.range,"&&",u.toString(),f.toString()),this.currentType=t,s.unreachable();o=this.convertExpression(o,u,_,!1,a),u=_;let P=s.runExpression(o,1);P&&(o=P),c=this.convertExpression(c,f,_,!1,l),f=_;let M=this.makeIsTrueish(o,this.currentType,a),O=this.evaluateCondition(M);if(O!=0)d=O==1?c:o;else if(d=s.tryCopyTrivialExpression(o))d=s.if(M,c,d);else{let z=F.getTempLocal(u);F.canOverflow(o,u)||F.setLocalFlag(z.index,2),F.isNonnull(o,u)&&F.setLocalFlag(z.index,4),d=s.if(this.makeIsTrueish(s.local_tee(z.index,o,u.isManaged),u,a),c,s.local_get(z.index,u.toRef()))}F.mergeBranch(R),F.noteThen(d,R),this.currentFlow=F,this.currentType=_}break}case 99:{let F=this.currentFlow,w=n&4;o=this.compileExpression(a,t.exceptVoid,w),u=this.currentType;let R=F.forkElse(o);if(this.currentFlow=R,t==p.bool||t==p.void){o=this.makeIsTrueish(o,u,a);let P=this.evaluateCondition(o);P==1?d=o:(c=this.compileExpression(l,u,w),f=this.currentType,c=this.makeIsTrueish(c,f,l),P==2?(d=c,F.inherit(R)):(d=s.if(o,s.i32(1),c),F.mergeBranch(R),F.noteElse(d,R))),this.currentFlow=F,this.currentType=p.bool}else{if(c=this.compileExpression(l,u,w),f=this.currentType,_=p.commonType(u,f,t),!_)return this.error(2365,e.range,"||",u.toString(),f.toString()),this.currentType=t,s.unreachable();let P=u.is(512)&&f.is(512);o=this.convertExpression(o,u,_,!1,a),u=_;let M=s.runExpression(o,1);M&&(o=M),c=this.convertExpression(c,f,_,!1,l),f=_;let O=this.makeIsTrueish(o,this.currentType,a),z=this.evaluateCondition(O);if(z!=0)d=z==1?o:c;else if(d=s.tryCopyTrivialExpression(o))d=s.if(O,d,c);else{let U=F.getTempLocal(u).index;F.canOverflow(o,u)||F.setLocalFlag(U,2),F.isNonnull(o,u)&&F.setLocalFlag(U,4),d=s.if(this.makeIsTrueish(s.local_tee(U,o,u.isManaged),u,a),s.local_get(U,u.toRef()),c)}F.mergeBranch(R),F.noteElse(d,R),this.currentFlow=F,this.currentType=P?_:_.nonNullableType}break}case 29:return this.error(100,e.range,"'in' operator"),this.currentType=p.bool,s.unreachable();default:{assert(!1),d=this.module.unreachable();break}}if(!g)return d;let E=this.resolver;if(a.kind==14){let F=a,w=E.resolveExpression(F.expression,this.currentFlow);if(w&&w.kind==14)return this.compileFixedArrayElementAccess(F,w,!0,t,0,null,d)}let A=E.lookupExpression(a,this.currentFlow);if(!A)return s.unreachable();let k=E.getTypeOfElement(A);return k||(k=p.void),this.currentType.isStrictlyAssignableTo(k)?this.makeAssignment(A,d,this.currentType,l,E.currentThisExpression,E.currentElementExpression,t!=p.void):(this.error(2322,e.range,this.currentType.toString(),k.toString()),s.unreachable())}makeLt(e,t,n){let s=this.module;switch(n.kind){case 1:case 2:e=this.ensureSmallIntegerWrap(e,n),t=this.ensureSmallIntegerWrap(t,n);case 3:return s.binary(17,e,t);case 4:return s.binary(42,e,t);case 5:return s.binary(234,e,t);case 0:case 6:case 7:e=this.ensureSmallIntegerWrap(e,n),t=this.ensureSmallIntegerWrap(t,n);case 8:return s.binary(18,e,t);case 9:return s.binary(43,e,t);case 10:return s.binary(235,e,t);case 11:return s.binary(59,e,t);case 12:return s.binary(72,e,t)}return assert(!1),s.unreachable()}makeGt(e,t,n){let s=this.module;switch(n.kind){case 1:case 2:e=this.ensureSmallIntegerWrap(e,n),t=this.ensureSmallIntegerWrap(t,n);case 3:return s.binary(21,e,t);case 4:return s.binary(46,e,t);case 5:return s.binary(238,e,t);case 0:case 6:case 7:e=this.ensureSmallIntegerWrap(e,n),t=this.ensureSmallIntegerWrap(t,n);case 8:return s.binary(22,e,t);case 9:return s.binary(47,e,t);case 10:return s.binary(239,e,t);case 11:return s.binary(61,e,t);case 12:return s.binary(74,e,t)}return assert(!1),s.unreachable()}makeLe(e,t,n){let s=this.module;switch(n.kind){case 1:case 2:e=this.ensureSmallIntegerWrap(e,n),t=this.ensureSmallIntegerWrap(t,n);case 3:return s.binary(19,e,t);case 4:return s.binary(44,e,t);case 5:return s.binary(236,e,t);case 0:case 6:case 7:e=this.ensureSmallIntegerWrap(e,n),t=this.ensureSmallIntegerWrap(t,n);case 8:return s.binary(20,e,t);case 9:return s.binary(45,e,t);case 10:return s.binary(237,e,t);case 11:return s.binary(60,e,t);case 12:return s.binary(73,e,t)}return assert(!1),s.unreachable()}makeGe(e,t,n){let s=this.module;switch(n.kind){case 1:case 2:e=this.ensureSmallIntegerWrap(e,n),t=this.ensureSmallIntegerWrap(t,n);case 3:return s.binary(23,e,t);case 4:return s.binary(48,e,t);case 5:return s.binary(240,e,t);case 0:case 6:case 7:e=this.ensureSmallIntegerWrap(e,n),t=this.ensureSmallIntegerWrap(t,n);case 8:return s.binary(24,e,t);case 9:return s.binary(49,e,t);case 10:return s.binary(241,e,t);case 11:return s.binary(62,e,t);case 12:return s.binary(75,e,t)}return assert(!1),s.unreachable()}makeEq(e,t,n,s){let a=this.module;switch(n.kind){case 0:case 1:case 2:case 6:case 7:e=this.ensureSmallIntegerWrap(e,n),t=this.ensureSmallIntegerWrap(t,n);case 3:case 8:return a.binary(15,e,t);case 4:case 9:return a.binary(40,e,t);case 5:case 10:return a.binary(232,e,t);case 11:return a.binary(57,e,t);case 12:return a.binary(70,e,t);case 13:return a.unary(70,a.binary(76,e,t));case 18:case 19:case 20:case 21:return a.ref_eq(e,t);case 22:return a.string_eq(e,t);case 23:case 24:case 25:case 16:case 15:case 17:return this.error(203,s.range,"ref.eq",n.toString()),a.unreachable()}return assert(!1),a.unreachable()}makeNe(e,t,n,s){let a=this.module;switch(n.kind){case 0:case 1:case 2:case 6:case 7:e=this.ensureSmallIntegerWrap(e,n),t=this.ensureSmallIntegerWrap(t,n);case 3:case 8:return a.binary(16,e,t);case 4:case 9:return a.binary(41,e,t);case 5:case 10:return a.binary(233,e,t);case 11:return a.binary(58,e,t);case 12:return a.binary(71,e,t);case 13:return a.unary(67,a.binary(77,e,t));case 18:case 19:case 20:case 21:return a.unary(20,a.ref_eq(e,t));case 22:return a.unary(20,a.string_eq(e,t));case 23:case 24:case 25:case 16:case 15:case 17:return this.error(203,s.range,"ref.eq",n.toString()),a.unreachable()}return assert(!1),a.unreachable()}makeAdd(e,t,n){let s=this.module;switch(n.kind){case 0:case 1:case 2:case 6:case 7:case 3:case 8:return s.binary(0,e,t);case 4:case 9:return s.binary(25,e,t);case 5:case 10:return s.binary(217,e,t);case 11:return s.binary(50,e,t);case 12:return s.binary(63,e,t)}return assert(!1),s.unreachable()}makeSub(e,t,n){let s=this.module;switch(n.kind){case 0:case 1:case 2:case 6:case 7:case 3:case 8:return s.binary(1,e,t);case 4:case 9:return s.binary(26,e,t);case 5:case 10:return s.binary(218,e,t);case 11:return s.binary(51,e,t);case 12:return s.binary(64,e,t)}return assert(!1),s.unreachable()}makeMul(e,t,n){let s=this.module;switch(n.kind){case 0:case 1:case 2:case 6:case 7:case 3:case 8:return s.binary(2,e,t);case 4:case 9:return s.binary(27,e,t);case 5:case 10:return s.binary(219,e,t);case 11:return s.binary(52,e,t);case 12:return s.binary(65,e,t)}return assert(!1),s.unreachable()}makePow(e,t,n,s){let a=this.module;switch(n.kind){case 0:return a.select(a.i32(1),a.binary(15,t,a.i32(0)),e);case 1:case 6:case 2:case 7:e=this.ensureSmallIntegerWrap(e,n),t=this.ensureSmallIntegerWrap(t,n);case 3:case 8:{if(this.options.willOptimize&&re(e)==14&&re(t)==14){let u=se(e),c=se(t);return this.currentType=n,a.i32(i64_low(i64_pow(i64_new(u),i64_new(c))))}let l=this.i32PowInstance;if(!l){let u=this.program.lookup(N.ipow32);if(!u)return this.error(2304,s.range,"ipow32"),a.unreachable();assert(u.kind==4),this.i32PowInstance=l=this.resolver.resolveFunction(u,null)}if(!l||!this.compileFunction(l))return a.unreachable();let o=this.makeCallDirect(l,[e,t],s);return n.size<32&&(o=this.ensureSmallIntegerWrap(o,n)),o}case 4:case 9:{if(this.options.willOptimize&&re(e)==14&&re(t)==14){let o=i64_new(Be(e),Ge(e)),u=i64_new(Be(t),Ge(t)),c=i64_pow(o,u);return this.currentType=n,a.i64(i64_low(c),i64_high(c))}let l=this.i64PowInstance;if(!l){let o=this.program.lookup(N.ipow64);if(!o)return this.error(2304,s.range,"ipow64"),a.unreachable();assert(o.kind==4),this.i64PowInstance=l=this.resolver.resolveFunction(o,null)}return!l||!this.compileFunction(l)?a.unreachable():this.makeCallDirect(l,[e,t],s)}case 5:case 10:{let l=this.options.isWasm64;if(this.options.willOptimize&&re(e)==14&&re(t)==14)if(l){let u=i64_new(Be(e),Ge(e)),c=i64_new(Be(t),Ge(t)),f=i64_pow(u,c);return this.currentType=n,a.i64(i64_low(f),i64_high(f))}else{let u=se(e),c=se(t);return this.currentType=n,a.i32(i64_low(i64_pow(i64_new(u),i64_new(c))))}let o=l?this.i64PowInstance:this.i32PowInstance;if(!o){let u=this.program.lookup(l?N.ipow64:N.ipow32);if(!u)return this.error(2304,s.range,l?"ipow64":"ipow32"),a.unreachable();assert(u.kind==4),o=this.resolver.resolveFunction(u,null),l?this.i64PowInstance=o:this.i32PowInstance=o}return!o||!this.compileFunction(o)?a.unreachable():this.makeCallDirect(o,[e,t],s)}case 11:{if(this.options.willOptimize&&re(e)==14&&re(t)==14){let o=Ce(e),u=Ce(t);return this.currentType=n,a.f32(f32(sl(o,u)))}let l=this.f32PowInstance;if(!l){let o=this.program.lookup(N.Mathf);if(!o)return this.error(2304,s.range,"Mathf"),a.unreachable();let u=o.getMember(N.pow);if(!u)return this.error(2304,s.range,"Mathf.pow"),a.unreachable();assert(u.kind==4),this.f32PowInstance=l=this.resolver.resolveFunction(u,null)}return!l||!this.compileFunction(l)?a.unreachable():this.makeCallDirect(l,[e,t],s)}case 12:{if(this.options.willOptimize&&re(e)==14&&re(t)==14){let o=Pe(e),u=Pe(t);return this.currentType=n,a.f64(sl(o,u))}let l=this.f64PowInstance;if(!l){let o=this.program.lookup(N.Math);if(!o)return this.error(2304,s.range,"Math"),a.unreachable();let u=o.getMember(N.pow);if(!u)return this.error(2304,s.range,"Math.pow"),a.unreachable();assert(u.kind==4),this.f64PowInstance=l=this.resolver.resolveFunction(u,null)}return!l||!this.compileFunction(l)?a.unreachable():this.makeCallDirect(l,[e,t],s)}}return assert(!1),a.unreachable()}makeDiv(e,t,n){let s=this.module;switch(n.kind){case 1:case 2:e=this.ensureSmallIntegerWrap(e,n),t=this.ensureSmallIntegerWrap(t,n);case 3:return s.binary(3,e,t);case 4:return s.binary(28,e,t);case 5:return s.binary(220,e,t);case 0:case 6:case 7:e=this.ensureSmallIntegerWrap(e,n),t=this.ensureSmallIntegerWrap(t,n);case 8:return s.binary(4,e,t);case 9:return s.binary(29,e,t);case 10:return s.binary(221,e,t);case 11:return s.binary(53,e,t);case 12:return s.binary(66,e,t)}return assert(!1),s.unreachable()}makeRem(e,t,n,s){let a=this.module;switch(n.kind){case 1:case 2:e=this.ensureSmallIntegerWrap(e,n),t=this.ensureSmallIntegerWrap(t,n);case 3:return a.binary(5,e,t);case 4:return a.binary(30,e,t);case 5:return a.binary(222,e,t);case 0:case 6:case 7:e=this.ensureSmallIntegerWrap(e,n),t=this.ensureSmallIntegerWrap(t,n);case 8:return a.binary(6,e,t);case 9:return a.binary(31,e,t);case 10:return a.binary(223,e,t);case 11:{let l=this.f32ModInstance;if(!l){let o=this.program.lookup(N.Mathf);if(!o)return this.error(2304,s.range,"Mathf"),a.unreachable();let u=o.getMember(N.mod);if(!u)return this.error(2304,s.range,"Mathf.mod"),a.unreachable();assert(u.kind==4),this.f32ModInstance=l=this.resolver.resolveFunction(u,null)}return!l||!this.compileFunction(l)?a.unreachable():this.makeCallDirect(l,[e,t],s)}case 12:{let l=this.f64ModInstance;if(!l){let o=this.program.lookup(N.Math);if(!o)return this.error(2304,s.range,"Math"),a.unreachable();let u=o.getMember(N.mod);if(!u)return this.error(2304,s.range,"Math.mod"),a.unreachable();assert(u.kind==4),this.f64ModInstance=l=this.resolver.resolveFunction(u,null)}return!l||!this.compileFunction(l)?a.unreachable():this.makeCallDirect(l,[e,t],s)}}return assert(!1),a.unreachable()}makeShl(e,t,n){let s=this.module;switch(n.kind){case 0:return e;case 1:case 2:case 6:case 7:return s.binary(10,e,s.binary(7,t,s.i32(n.size-1)));case 3:case 8:return s.binary(10,e,t);case 4:case 9:return s.binary(35,e,t);case 5:case 10:return s.binary(227,e,t)}return assert(!1),s.unreachable()}makeShr(e,t,n){let s=this.module;switch(n.kind){case 0:return e;case 1:case 2:return s.binary(11,this.ensureSmallIntegerWrap(e,n),s.binary(7,t,s.i32(n.size-1)));case 6:case 7:return s.binary(12,this.ensureSmallIntegerWrap(e,n),s.binary(7,t,s.i32(n.size-1)));case 3:return s.binary(11,e,t);case 4:return s.binary(36,e,t);case 5:return s.binary(228,e,t);case 8:return s.binary(12,e,t);case 9:return s.binary(37,e,t);case 10:return s.binary(229,e,t)}return assert(!1),s.unreachable()}makeShru(e,t,n){let s=this.module;switch(n.kind){case 0:return e;case 1:case 2:case 6:case 7:return s.binary(12,this.ensureSmallIntegerWrap(e,n),s.binary(7,t,s.i32(n.size-1)));case 3:case 8:return s.binary(12,e,t);case 4:case 9:return s.binary(37,e,t);case 5:case 10:return s.binary(229,e,t)}return assert(!1),s.unreachable()}makeAnd(e,t,n){let s=this.module;switch(n.kind){case 0:case 1:case 2:case 3:case 6:case 7:case 8:return s.binary(7,e,t);case 4:case 9:return s.binary(32,e,t);case 5:case 10:return s.binary(224,e,t)}return assert(!1),s.unreachable()}makeOr(e,t,n){let s=this.module;switch(n.kind){case 0:case 1:case 2:case 6:case 7:return s.binary(8,e,t);case 3:case 8:return s.binary(8,e,t);case 4:case 9:return s.binary(33,e,t);case 5:case 10:return s.binary(225,e,t)}return assert(!1),s.unreachable()}makeXor(e,t,n){let s=this.module;switch(n.kind){case 0:case 1:case 2:case 6:case 7:return s.binary(9,e,t);case 3:case 8:return s.binary(9,e,t);case 4:case 9:return s.binary(34,e,t);case 5:case 10:return s.binary(226,e,t)}return assert(!1),s.unreachable()}compileUnaryOverload(e,t,n,s){return this.makeCallDirect(e,[n],s,!1)}compileBinaryOverload(e,t,n,s,a,l){let o,u=e.signature,c=u.parameterTypes;e.is(262144)?(n=this.convertExpression(n,s,assert(u.thisType),!1,t),o=c[0]):(n=this.convertExpression(n,s,c[0],!1,t),o=c[1]);let f=this.compileExpression(a,o,1);return this.makeCallDirect(e,[n,f],l)}compileCommutativeBinaryOverload(e,t,n,s,a,l,o,u){let c=e.signature,f=c.parameterTypes;return e.is(262144)?(n=this.convertExpression(n,s,assert(c.thisType),!1,t),l=this.convertExpression(l,o,f[0],!1,a)):(n=this.convertExpression(n,s,f[0],!1,t),l=this.convertExpression(l,o,f[1],!1,a)),this.makeCallDirect(e,[n,l],u)}compileAssignment(e,t,n){let a=this.program.resolver,l=this.currentFlow;if(e.kind==14){let g=e,y=a.resolveExpression(g.expression,l);if(y&&y.kind==14)return this.compileFixedArrayElementAccess(g,y,!0,n,0,t)}if(e.kind==8&&t.kind==8){let g=l.lookupLocal(e.text),y=l.lookupLocal(t.text);if(g!=null&&g.fieldLocals!=null&&y!=null){let E=assert(g.fieldLocals),A=y.fieldLocals;if(A==null)return this.error(2322,t.range,"a non-@inline-struct value",assert(g.type).toString()),this.module.unreachable();let k=new Array;for(let F=Map_keys(E),w=0,R=F.length;w<R;++w){let P=unchecked(F[w]);if(!A.has(P))continue;let M=assert(E.get(P)),O=assert(A.get(P));k.push(this.module.local_set(M.index,this.module.local_get(O.index,O.type.toRef()),!1))}return this.currentType=p.void,this.module.flatten(k)}}let o=a.lookupExpression(e,l);if(!o)return this.module.unreachable();let u=a.currentThisExpression,c=a.currentElementExpression,f;switch(o.kind){case 0:case 1:{if(o.kind==0){if(!this.compileGlobalLazy(o,e))return this.module.unreachable()}else if(!o.declaredByFlow(l))return this.error(100,e.range,"Closures"),this.module.unreachable();if(this.pendingElements.has(o))return this.error(2448,e.range,o.internalName),this.module.unreachable();f=o.type,o.hasDecorator(8192)&&this.checkUnsafe(e);break}case 10:{let g=o,y=a.resolveProperty(g);if(!y)return this.module.unreachable();o=y}case 11:{let g=o;if(g.isField&&this.pendingElements.has(o))return this.error(2448,e.range,o.internalName),this.module.unreachable();let y=g.setterInstance;if(!y)return this.error(2540,e.range,g.internalName),this.module.unreachable();assert(y.signature.parameterTypes.length==1),f=y.signature.parameterTypes[0],y.hasDecorator(8192)&&this.checkUnsafe(e);break}case 15:{let g=o.parent;assert(g.kind==7);let y=g,E=l.is(32768),A=y.lookupOverload(2,E);if(!A)return y.lookupOverload(1,E)?this.error(2542,e.range,y.internalName):this.error(2329,e.range,y.internalName),this.module.unreachable();let k=A.signature.parameterTypes;assert(k.length==2),f=k[1],A.hasDecorator(8192)&&this.checkUnsafe(e),!E&&this.options.pedantic&&this.pedantic(904,e.range);break}default:return this.error(2540,e.range,o.internalName),this.module.unreachable()}assert(f!=p.void);let _=this.compileExpression(t,f),d=this.currentType;return f.isNullableReference&&this.currentFlow.isNonnull(_,d)&&(f=f.nonNullableType),this.makeAssignment(o,this.convertExpression(_,d,f,!1,t),f,t,u,c,n!=p.void)}makeAssignment(e,t,n,s,a,l,o){let u=this.module,c=this.currentFlow;switch(e.kind){case 1:{let f=e;return c.isLocalFlag(f.index,1,!0)?(this.error(2540,s.range,e.internalName),this.currentType=o?f.type:p.void,u.unreachable()):this.makeLocalAssignment(f,t,n,o)}case 0:{let f=e;return this.compileGlobalLazy(f,s)?e.isAny(72)?(this.error(2540,s.range,e.internalName),this.currentType=o?f.type:p.void,u.unreachable()):this.makeGlobalAssignment(f,t,n,o):u.unreachable()}case 10:{let f=this.resolver.resolveProperty(e);if(!f)return u.unreachable();e=f}case 11:{let f=e;if(a!=null){let d=this.resolveSroaReceiver(a);if(d!=null){let g=assert(d.fieldLocals);if(!g.has(f.name))return this.error(100,s.range,"assigning to a refused field of an @inline struct (the field was refused at declaration)"),u.unreachable();let y=assert(g.get(f.name)),E=u.local_set(y.index,t,!1);return this.currentType=o?y.type:p.void,E}}if(f.isField&&this.isInlineStructType(f.type))return this.error(100,s.range,"assigning a whole value to an @inline struct field (the value has no address, so there is nothing to store; assign the field's own fields, e.g. `w.inner.a = ...`)"),this.currentType=o?f.type:p.void,u.unreachable();if(f.isField){let d=c.sourceFunction.is(524288);if(f.is(64)){let g=f.initializerNode;if(!d||g)return this.error(2540,s.range,f.internalName),u.unreachable()}a=assert(a),d&&a.kind==26&&c.setThisFieldFlag(f,1)}let _=f.setterInstance;if(!_)return this.error(2540,s.range,e.internalName),u.unreachable();if(assert(_.signature.parameterTypes.length==1),assert(_.signature.returnType==p.void),f.is(262144)){let d=assert(_.signature.thisType),g=this.compileExpression(assert(a),d,33);if(!o)return this.makeCallDirect(_,[g,t],s);let y=c.getTempLocal(n),E=n.toRef(),A=u.block(null,[this.makeCallDirect(_,[g,u.local_tee(y.index,t,n.isManaged,E)],s),u.local_get(y.index,E)],E);return this.currentType=n,A}else{if(!o)return this.makeCallDirect(_,[t],s);let d=c.getTempLocal(n),g=n.toRef(),y=u.block(null,[this.makeCallDirect(_,[u.local_tee(d.index,t,n.isManaged,g)],s),u.local_get(d.index,g)],g);return this.currentType=n,y}}case 15:{let _=e.parent;assert(_.kind==7);let d=_;assert(d.kind==7);let g=c.is(32768),y=d.lookupOverload(1,g);if(!y)return this.error(2329,s.range,d.internalName),u.unreachable();let E=d.lookupOverload(2,g);if(!E)return this.error(2542,s.range,d.internalName),this.currentType=o?y.signature.returnType:p.void,u.unreachable();assert(E.signature.parameterTypes.length==2);let A=d.type,k=this.compileExpression(assert(a),A,33),F=E.signature.parameterTypes[0],w=y.signature.parameterTypes[0];if(!F.equals(w))return this.errorRelated(237,y.identifierAndSignatureRange,E.identifierAndSignatureRange,d.internalName),this.currentType=o?y.signature.returnType:p.void,u.unreachable();let R=this.compileExpression(assert(l),F,1),P=this.currentType;if(o){let M=c.getTempLocal(A),O=c.getTempLocal(P),z=y.signature.returnType;return u.block(null,[this.makeCallDirect(E,[u.local_tee(M.index,k,A.isManaged),u.local_tee(O.index,R,P.isManaged),t],s),this.makeCallDirect(y,[u.local_get(M.index,M.type.toRef()),u.local_get(O.index,O.type.toRef())],s)],z.toRef())}else return this.makeCallDirect(E,[k,R,t],s)}default:this.error(2541,s.range)}return u.unreachable()}makeLocalAssignment(e,t,n,s){let a=this.module,l=this.currentFlow,o=e.type;assert(o!=p.void);let u=e.index;return o.isNullableReference&&(!n.isNullableReference||l.isNonnull(t,o)?l.setLocalFlag(u,4):l.unsetLocalFlag(u,4)),l.setLocalFlag(u,8),o.isShortIntegerValue&&(l.canOverflow(t,o)?l.unsetLocalFlag(u,2):l.setLocalFlag(u,2)),s?(this.currentType=o,a.local_tee(u,t,o.isManaged)):(this.currentType=p.void,a.local_set(u,t,o.isManaged))}makeGlobalAssignment(e,t,n,s){let a=this.module,l=e.type;assert(l!=p.void);let o=l.toRef();return t=this.ensureSmallIntegerWrap(t,l),s?(this.currentType=l,a.block(null,[a.global_set(e.internalName,t),a.global_get(e.internalName,o)],o)):(this.currentType=p.void,a.global_set(e.internalName,t))}checkNoManagedStructCopy(e,t){if(!e.prototype.internalName.startsWith(N.COPY_STRUCT))return!0;let n=e.typeArguments;if(!n)return!0;for(let s=0,a=n.length;s<a;++s){let l=unchecked(n[s]).classReference;if(l!=null&&l.hasDecorator(2048)){let o=t.typeArguments;return this.error(100,o&&o.length>s?unchecked(o[s]).range:t.range,"COPY_STRUCT on an @managed struct (a raw byte copy bypasses the GC write barrier)"),!1}}return!0}compileCallExpression(e,t,n){let s=this.module,a=this.currentFlow;if(e.expression.kind==25){let f=this.currentFlow,_=f.sourceFunction;if(!_.is(524288))return this.error(2337,e.range),s.unreachable();let d=assert(_.parent);assert(d.kind==7);let g=d,y=g.base;if(!y||g.prototype.implicitlyExtendsObject)return this.error(2335,e.expression.range),s.unreachable();let E=assert(f.lookupLocal(N.this_)),A=this.options.sizeTypeRef,k=this.ensureConstructor(y,e);this.checkFieldInitialization(y,e);let F=this.compileCallDirect(k,e.args,e,s.local_get(E.index,A));return f.isAny(8256)?(this.error(17009,e.range),s.unreachable()):(f.set(192),this.currentType=p.void,s.local_set(E.index,F,g.type.isManaged))}let l=this.resolver.lookupExpression(e.expression,a);if(!l)return s.unreachable();let o=this.resolver.currentThisExpression;switch(l.kind){case 4:{let f=l;if(f.hasDecorator(512))return this.compileCallExpressionBuiltin(f,e,t);let _=this.resolver.maybeInferCall(e,f,a);if(!_)return this.module.unreachable();if(!this.checkNoManagedStructCopy(_,e))return this.module.unreachable();l=_}case 5:{let f=l;if(!this.checkNoManagedStructCopy(f,e))return this.module.unreachable();let _=0;return f.is(262144)&&(_=this.compileExpression(assert(o),assert(f.signature.thisType),33)),this.compileCallDirect(f,e.args,e,_,n)}}let u=this.compileExpression(e.expression,p.auto),c=this.currentType.getSignature();if(c)return this.compileCallIndirect(c,u,e.args,e,0,t==p.void);if(this.error(2349,e.range,this.currentType.toString()),l.kind==10){let f=l.getterPrototype;f&&this.infoRelated(6234,e.range,f.identifierNode.range)}return s.unreachable()}compileCallExpressionLike(e,t,n,s,a,l=0){let o=this._reusableCallExpression;return o?(o.expression=e,o.typeArguments=t,o.args=n,o.range=s):this._reusableCallExpression=o=h.createCallExpression(e,t,n,s),this.compileCallExpression(o,a,l)}compileCallExpressionBuiltin(e,t,n){e.hasDecorator(8192)&&this.checkUnsafe(t);let s=null,a=e.typeParameterNodes,l=t.typeArguments;t.typeArguments&&(e.is(65536)||this.error(2315,t.range,e.internalName),s=this.resolver.resolveTypeArguments(assert(a),l,this.currentFlow,this.currentFlow.sourceFunction.parent,de(this.currentFlow.contextualTypeArguments),t));let o=t.expression,u=new eu(this,e,s,t.args,o.kind==23?o.expression:null,n,t,!1),c;return e.is(262144)?c=`${assert(e.getBoundClassOrInterface()).prototype.internalName}#${e.name}`:c=e.internalName,assert(x.has(c)),assert(x.get(c))(u)}checkCallSignature(e,t,n,s){let a=e.thisType;if(n!=(a!=null))return this.error(2685,s.range),!1;let l=e.hasRest,o=e.requiredParameters,u=e.parameterTypes.length;return t<o?(this.error(o<u?2555:2554,s.range,o.toString(),t.toString()),!1):t>u&&!l?(this.error(2554,s.range,u.toString(),t.toString()),!1):!0}checkUnsafe(e,t=null){this.options.noUnsafe&&!e.range.source.isLibrary&&(t?this.errorRelated(101,e.range,t.range):this.error(101,e.range))}adjustArgumentsForRestParams(e,t,n){if(!t.hasRest)return e;let s=e.length,a=t.parameterTypes.length;if(s<a)return e;let l=e.slice(a-1),o=new ue(l[0].range.start,l[l.length-1].range.end);o.source=n.range.source;let u=new Yr(l,o),c=e.slice(0,a-1);return c.push(u),c}compileCallDirect(e,t,n,s=0,a=0){let l=t.length,o=e.signature;if(!this.checkCallSignature(o,l,s!=0,n))return this.currentType=o.returnType,this.module.unreachable();e.hasDecorator(8192)&&this.checkUnsafe(n);let u=0;o.hasHiddenDestParam&&(u=this.sretDestSlot,this.sretDestSlot=0),t=this.adjustArgumentsForRestParams(t,o,n),l=t.length;let c=this.currentFlow.sourceFunction;if(c.is(524288)&&n.isAccessOnThis){let M=c.parent;assert(M.kind==7),this.checkFieldInitialization(M,n)}let f=e.hasDecorator(64)||this.currentFlow.is(131072);if(!o.hasHiddenDestParam&&f&&(!e.is(268435456)||n.isAccessOnSuper)){assert(!e.is(134217728));let M=this.inlineStack;if(M.includes(e))this.warning(217,n.range,e.internalName);else{let O=o.parameterTypes;assert(l<=O.length);let z=new Array(l);for(let U=0;U<l;++U)z[U]=this.compileExpression(t[U],O[U],1);M.push(e);let j=this.makeCallInline(e,z,s,(a&8)!=0);return M.pop(),j}}let _=o.parameterTypes,d=0;for(let M=0;M<l;++M)d+=o.wasmParamSlotCountOf(M);let g=s?d+1:d,y=o.hasHiddenDestParam;if(this.sretDiscardMark=null,y&&u==0){let M=this.ensureSretStack(),O=this.currentFlow.getTempLocal(p.u32);this.sretDiscardMark=O,u=this.module.binary(0,this.module.i32(M),this.module.local_get(O.index,B.I32))}let E=g+(y?1:0),A=new Array(E),k=0;s&&(A[0]=s,k=1),y&&(A[k++]=u),this.externalTempMark=null,this.externalTempSize=0;let F=0,w=null,R=0,P=0;if(o.byValPointerParams){let M=0;for(let O=0;O<l;++O)o.isByValPointerParam(O)&&(M+=this.sretSizeOf(unchecked(_[O])));M>0&&(F=this.ensureSretStack(),w=this.currentFlow.getTempLocal(p.u32),P=M)}for(let M=0;M<l;++M){let O=unchecked(_[M]);this.rootNextOperand=!1,w!=null&&o.isByValPointerParam(M)?(A[k++]=this.makeExternalTempArgument(unchecked(t[M]),O,F,assert(w),R),R+=this.sretSizeOf(O)):k+=this.expandSroaArgument(unchecked(t[M]),O,A,k),this.rootNextOperand&&(this.rootNextOperand=!1,o.isByValPointerParam(M)||unchecked(A[k-1]=this.module.tostack(unchecked(A[k-1]))))}return assert(k==E),this.externalTempMark=w,this.externalTempSize=P,this.makeCallDirect(e,A,n,(a&8)!=0)}makeCallInline(e,t,n=0,s=!1){let a=this.module,l=t?t.length:0,u=e.signature.parameterTypes,c=u.length,f=this.currentFlow,_=Jt.createInline(f.targetFunction,e),d=[];if(n){let E=assert(e.parent);assert(E.kind==7);let A=E,k=assert(e.signature.thisType),F=_.addScopedLocal(N.this_,k);d.push(a.local_set(F.index,n,k.isManaged)),_.setLocalFlag(F.index,8);let w=A.base;w&&_.addScopedAlias(N.super_,w.type,F.index)}else assert(!e.signature.thisType);for(let E=0;E<l;++E){let A=t[E],k=u[E],F=_.addScopedLocal(e.getParameterName(E),k);f.canOverflow(A,k)||_.setLocalFlag(F.index,2),_.isNonnull(A,k)&&_.setLocalFlag(F.index,4),d.push(a.local_set(F.index,A,k.isManaged)),_.setLocalFlag(F.index,8)}this.currentFlow=_;let g=e.is(524288);g&&_.set(65536);for(let E=l;E<c;++E){let A=u[E],k=this.compileExpression(assert(e.prototype.functionTypeNode.parameters[E].initializer),A,1),F=_.addScopedLocal(e.getParameterName(E),A);d.push(this.makeLocalAssignment(F,k,A,!1))}if(_.unset(65536),this.compileFunctionBody(e,d),g){let E=e.parent;assert(E.kind==7),this.checkFieldInitializationInFlow(E,_)}let y=_.returnType;return this.currentFlow=f,this.currentType=y,a.block(_.inlineReturnLabel,d,this.resultRefOf(y))}ensureArgumentsLength(){let e=m.argumentsLength;if(!this.builtinArgumentsLength){let t=this.module;this.builtinArgumentsLength=t.addGlobal(e,B.I32,!0,t.i32(0))}return e}ensureEnvGlobal(){let e=m.env;if(!this.builtinEnv){let t=this.module,n=this.options.sizeTypeRef;this.builtinEnv=t.addGlobal(e,n,!0,n==B.I64?t.i64(0):t.i32(0))}return e}ensureVarargsStub(e){let t=e.varargsStub;if(t)return t;let n=e.signature,s=n.parameterTypes,a=e.prototype.functionTypeNode.parameters,l=n.returnType,o=e.is(262144),u=n.requiredParameters,c=u,f=s.length,_=f;o&&(++c,++_);let d=assert(_-c),g=new Array(c),y=0,E=new Array,A=this.module,k=n.thisType;k&&(g[0]=A.local_get(0,k.toRef()),y=1);for(let U=0;U<u;++U,++y){let D=s[U];g[y]=A.local_get(y,D.toRef())}assert(y==c),t=e.newStub("varargs",f),e.varargsStub=t;let F=this.currentFlow,w=t.flow;e.is(524288)&&w.set(65536),this.currentFlow=w;let R=d+1,P=new Array(R),M=`of${d}`;for(let U=0;U<R;++U)P[U]=`${U}${M}`;let O=this.ensureArgumentsLength(),z=A.block(P[0],[A.block("outOfRange",[A.switch(P,"outOfRange",u?A.binary(1,A.global_get(O,B.I32),A.i32(u)):A.global_get(O,B.I32))]),A.unreachable()]);for(let U=0;U<d;++U,++y){let D=s[u+U],Q=a[u+U],Y=Q.initializer,q;if(Q.parameterKind===2){let le=new Yr([],Q.range.atEnd);q=this.compileArrayLiteral(le,D,2),q=A.local_set(y,q,D.isManaged)}else Y?(q=this.compileExpression(Y,D,1),q=A.local_set(y,q,D.isManaged)):(this.error(215,Q.range),q=A.unreachable());z=A.block(P[U+1],[z,q]),g[y]=A.local_get(y,D.toRef())}assert(y==_),E.push(z),E.push(this.makeCallDirect(e,g,e.declaration.name)),this.currentFlow=F;let j=A.addFunction(t.internalName,t.signature.paramRefs,t.signature.resultRefs,an(t.getNonParameterLocalTypes()),A.flatten(E,l.toRef()));return t.set(8388608),t.finalize(A,j),t}ensureOverrideStub(e){let t=e.overrideStub;if(t)return t;t=e.newStub("override"),e.overrideStub=t;let n=this.module;return t.ref=n.addFunction(t.internalName,t.signature.paramRefs,t.signature.resultRefs,null,n.unreachable()),this.overrideStubs.add(e),t}finalizeOverrideStub(e){let t=this.ensureOverrideStub(e);if(t.is(8388608))return;assert(e.parent.kind==7||e.parent.kind==9);let n=this.module,a=this.options.usizeType.toRef(),l=e.signature.parameterTypes,o=e.signature.returnType,u=l.length,c=1+assert(e.signature).wasmParamCount(),f=new hs(this.module,n.load(4,!1,n.binary(a==B.I64?26:1,n.local_get(0,a),a==B.I64?n.i64(8):n.i32(8)),B.I32)),_=this.resolver.resolveOverrides(e);if(_){let E=new Map;for(let A=0,k=_.length;A<k;++A){let F=_[A];if(!F.is(8388608))continue;let w=F.signature,R=e.signature;if(!w.isAssignableTo(R,!0)){this.error(2322,F.identifierNode.range,w.toString(),R.toString());continue}let P=w.parameterTypes,M=P.length,O=new Array(1+M);O[0]=n.local_get(0,a);for(let q=1;q<=u;++q)O[q]=n.local_get(q,l[q-1].toRef());let z=!1;for(let q=u;q<M;++q)O[1+q]=this.makeZero(P[q]),z=!0;let j=z?this.ensureVarargsStub(F).internalName:F.internalName,U=w.returnType.toRef(),D=new Array;z&&D.push(n.global_set(this.ensureArgumentsLength(),n.i32(u))),o==p.void?(D.push(n.call(j,O,U)),D.push(n.return())):D.push(n.return(n.call(j,O,U)));let Q=assert(F.getBoundClassOrInterface());f.addCase(Q.id,D);let Y=Q.extenders;if(Y)for(let q=Set_values(Y),le=0,H=q.length;le<H;++le){let me=q[le],oe=me.prototype.instanceMembers;oe&&oe.has(e.declaration.name.text)||(!E.has(me)||!assert(E.get(me)).extends(Q))&&(E.set(me,Q),f.addOrReplaceCase(me.id,D))}}}let d,g=e.getBoundClassOrInterface();if(!e.is(128)&&!(g&&g.kind==9)){let E=new Array(u);E[0]=n.local_get(0,a);for(let A=0,k=l.length;A<k;++A)E[1+A]=n.local_get(1+A,l[A].toRef());d=n.call(e.internalName,E,o.toRef())}else d=n.unreachable();t.ref&&n.removeFunction(t.internalName),t.ref=n.addFunction(t.internalName,t.signature.paramRefs,t.signature.resultRefs,[B.I32],n.block(null,[f.render(c),d],o.toRef())),t.set(8388608)}needToStack(e){let t=this.module.runExpression(e,0);if(t==0)return!0;let n=cf(t,this.options.isWasm64);if(i64_eq(n,i64_zero))return!1;let s=this.staticGcObjectOffsets;return!(s.has(i64_high(n))&&assert(s.get(i64_high(n))).has(i64_low(n)))}operandsTostack(e,t){if(!this.options.stackSize)return;let n=this.module,s=0,a=e.thisType;if(a){if(a.isManaged){let c=t[0];this.needToStack(c)&&(t[s]=n.tostack(c))}++s}let l=e.parameterTypes,o=e.wasmParamCount(),u=0;for(;s<t.length&&!(u>=o);){let c=e.sourceIndexOf(u);if(c<0){++s,++u;continue}if(unchecked(l[c]).isManaged&&!e.isByValPointerParam(c)){let _=t[s];this.needToStack(_)&&(t[s]=n.tostack(_))}++s,++u}}makeCallDirect(e,t,n,s=!1){let a=this.sretDiscardMark;this.sretDiscardMark=null;let l=this.externalTempMark,o=this.externalTempSize;if(this.externalTempMark=null,this.externalTempSize=0,e.hasDecorator(64))if(e.is(268435456))this.warning(228,n.range,e.internalName);else{assert(!e.is(134217728));let F=this.inlineStack;if(F.includes(e))this.warning(217,n.range,e.internalName);else{F.push(e);let w;if(e.is(262144)){let R=assert(t);assert(R.length),w=this.makeCallInline(e,R.slice(1),R[0],s)}else w=this.makeCallInline(e,t,0,s);return F.pop(),w}}let u=this.module,c=t?t.length:0,f=c,d=e.signature.requiredParameters,g=e.signature.parameterTypes,y=g.length,E=y;if(e.is(262144)&&(++d,++E,--f),assert(c>=d),!this.compileFunction(e))return u.unreachable();let A=e.signature.returnType;if(c<E){t||(t=new Array(E),t.length=0);let F=e.prototype.functionTypeNode.parameters;assert(F.length==g.length);let w=!0;for(let R=f;R<y;++R){let P=F[R].initializer;if(P){if(P.compilesToConst){t.push(this.compileExpression(P,g[R],1));continue}let M=this.resolver.lookupExpression(P,e.flow,g[R],1);if(M&&M.kind==0){let O=M;if(this.compileGlobalLazy(O,P)&&O.is(33554432)){t.push(this.compileInlineConstant(O,g[R],1));continue}}}t.push(this.makeZero(g[R])),w=!1}if(!w&&!e.is(2097152)){let R=e;if(e=this.ensureVarargsStub(e),!this.compileFunction(e))return u.unreachable();e.flow.flags=R.flow.flags;let P=e.signature.resultRefs,M=t[E-1];assert(!(vs(M,u.ref)&32));let O=g[y-1];t[E-1]=u.block(null,[u.global_set(this.ensureArgumentsLength(),u.i32(f)),M],O.toRef()),this.operandsTostack(e.signature,t);let z=u.call(e.internalName,t,P);return P!=B.None&&s?(z=u.drop(z),this.currentType=p.void):this.currentType=A,a!=null&&(z=this.wrapSretCall(assert(a),z,A,n),this.currentType=s?p.void:A),z}}e.is(268435456)&&!n.isAccessOnSuper&&(e=this.ensureOverrideStub(e)),t&&this.operandsTostack(e.signature,t);let k=u.call(e.internalName,t,e.signature.resultRefs);return this.currentType=A,a!=null&&(k=this.wrapSretCall(assert(a),k,A,n),this.currentType=s?p.void:A),l!=null&&(k=this.wrapExternalTempCall(assert(l),o,k,A,n),this.currentType=s?p.void:A),k}compileCallIndirect(e,t,n,s,a=0,l=!1){let o=n.length;if(e.hasHiddenDestParam)return this.error(100,s.range,"calling an @inline struct-returning function through a function value (the hidden destination parameter needs a direct call)"),this.currentType=e.returnType,this.module.unreachable();if(!this.checkCallSignature(e,o,a!=0,s))return this.module.unreachable();n=this.adjustArgumentsForRestParams(n,e,s),o=n.length;let u=a?o+1:o,c=new Array(u),f=0;a&&(c[0]=a,f=1);let _=e.parameterTypes;for(let d=0;d<o;++d,++f)c[f]=this.compileExpression(n[d],_[d],1);return assert(f==u),this.makeCallIndirect(e,t,s,c,l)}makeCallIndirect(e,t,n,s=null,a=!1){let l=this.module,o=s?s.length:0,u=o,f=e.requiredParameters,_=e.parameterTypes,d=e.returnType,g=_.length,y=g;if(e.thisType&&(++f,++y,--u),assert(o>=f),o<y){s||(s=new Array(y),s.length=0);let D=e.parameterTypes;for(let Q=u;Q<g;++Q)s.push(this.makeZero(D[Q]))}let E=new Array,A=this.options.sizeTypeRef,k=this.currentFlow.getTempLocal(this.options.usizeType),F=this.ensureEnvGlobal(),w=this.options.usizeType.byteSize,R=this.options.usizeType.byteSize,P=this.currentFlow.getTempLocal(this.options.usizeType);E.push(l.local_set(P.index,l.global_get(F,A),!1)),E.push(l.global_set(F,l.load(R,!1,l.local_tee(k.index,t,!0),A,w))),t=l.local_get(k.index,A);let M=this.ensureArgumentsLength(),O=l.block(null,[l.global_set(M,l.i32(u)),l.load(4,!1,t,B.I32,au)],A);s&&this.operandsTostack(e,s);let z=l.call_indirect(null,O,s,e.paramRefs,e.resultRefs);this.currentType=d;let j=l.global_set(F,l.local_get(P.index,A));if(d==p.void)return E.push(z),E.push(j),l.flatten(E,B.None);let U=this.currentFlow.getTempLocal(d);return E.push(l.local_set(U.index,z,d.isManaged)),E.push(j),E.push(l.local_get(U.index,d.toRef())),l.flatten(E,d.toRef())}compileCommaExpression(e,t,n){let s=e.expressions,a=s.length,l=new Array(a--);for(let o=0;o<a;++o)l[o]=this.compileExpression(s[o],p.void,9);return l[a]=this.compileExpression(s[a],t,n),this.module.flatten(l,this.currentType.toRef())}compileFixedArrayElementAccess(e,t,n,s,a,l=null,o=0){let u=this.module,c=t.fixedArrayElementType,f=c.byteSize,_=this.compileFixedArrayElementAddress(e,t);if(n){let d=o||this.compileExpression(assert(l),c,1);if(s==p.void)return this.currentType=p.void,u.store(f,_,d,c.toRef(),0,f);let g=this.currentFlow.getTempLocal(c);return this.currentType=c,c.isManaged&&this.currentFlow.setLocalFlag(g.index,8),u.block(null,[u.local_set(g.index,d,c.isManaged),u.store(f,_,u.local_get(g.index,c.toRef()),c.toRef(),0,f),u.local_get(g.index,c.toRef())],c.toRef())}return this.currentType=c,u.load(f,c.isSignedIntegerValue,_,c.toRef(),0,f)}compileFixedArrayElementAddress(e,t){let n=this.module,s=t.fixedArrayElementType,a=this.resolver.resolveExpression(e.expression,this.currentFlow);if(!a)return this.module.unreachable();let l=this.compileExpression(e.expression,a,1),o=this.compileExpression(e.elementExpression,p.i32,1),u=n.binary(227,this.options.isWasm64?n.unary(23,o):o,this.options.isWasm64?n.i64(s.alignLog2):n.i32(s.alignLog2));return n.binary(217,l,u)}compileElementAccessExpression(e,t,n){let s=this.module,a=e.expression,l=this.resolver,o=l.lookupExpression(a,this.currentFlow,p.auto,1);if(o&&o.kind==2){let c=this.compileExpression(e.elementExpression,p.i32,1),f=this.ensureEnumToString(o,e);return this.currentType=this.program.stringInstance.type,f==null?s.unreachable():s.call(f,[c],B.I32)}let u=l.resolveExpression(a,this.currentFlow);if(u){if(u.kind==14)return this.compileFixedArrayElementAccess(e,u,!1,t,n);let c=u.getClassOrWrapper(this.program);if(c){let f=this.currentFlow.is(32768),_=c.lookupOverload(1,f);if(_){let d=assert(_.signature.thisType),g=this.compileExpression(a,d,1);return!f&&this.options.pedantic&&this.pedantic(904,e.range),this.compileCallDirect(_,[e.elementExpression],e,g,n)}}this.error(2329,e.expression.range,u.toString())}return s.unreachable()}compileFunctionExpression(e,t,n){let s=e.declaration.clone();assert(!s.typeParameters);let a=this.currentFlow,l=a.sourceFunction,o=s.name.text.length>0,u=!o||t!=p.void,c=new lt(u?`${o?s.name.text:"anonymous"}|${l.nextAnonymousId++}`:s.name.text,l,s,0),f=te(Vi(),e);f&&(c.envKind=f.kind,c.envClass=f.envClass);let _,d=de(a.contextualTypeArguments),g=this.module,y=t.signatureReference;if(y){let k=c.functionTypeNode,F=k.parameters,w=F.length,R=y.parameterTypes,P=R.length;if(w>P)return this.error(2554,e.range,P.toString(),w.toString()),g.unreachable();for(let D=0;D<w;++D){let Q=F[D];if(!De(Q.type)){let Y=this.resolver.resolveType(Q.type,a,l.parent,d);if(!Y)return g.unreachable();if(!R[D].isStrictlyAssignableTo(Y))return this.error(2322,Q.range,R[D].toString(),Y.toString()),g.unreachable()}}let M=y.returnType;if(!De(k.returnType)){let D=this.resolver.resolveType(k.returnType,a,l.parent,d);if(!D)return g.unreachable();if(M==p.void?D!=p.void:!D.isStrictlyAssignableTo(M))return this.error(2322,k.returnType.range,D.toString(),M.toString()),g.unreachable()}let O=y.thisType,z=k.explicitThisType;if(z){if(!O)return this.error(2332,z.range),g.unreachable();let D=this.resolver.resolveType(z,a,l.parent,d);if(!D)return g.unreachable();if(!O.isStrictlyAssignableTo(D))return this.error(2322,z.range,O.toString(),D.toString()),g.unreachable()}let j=Te.create(this.program,R,M,O,P);_=new Lt(c.name,c,null,j,d),_.flow.outer=a;let U=this.compileFunction(_);if(this.currentType=y.type,!U)return g.unreachable()}else{if(_=this.resolver.resolveFunction(c,null,d),!_)return this.module.unreachable();_.flow.outer=a;let k=this.compileFunction(_);if(this.currentType=_.signature.type,!k)return g.unreachable()}let E=this.currentType,A;if(_.prototype.envKind==2)A=this.makeEnvFunctionValue(_,assert(Or().get(e)));else if(_.prototype.capturesThis)A=this.makeCapturingFunctionValue(_);else{let k=this.ensureRuntimeFunction(_);A=this.options.isWasm64?g.i64(i64_low(k),i64_high(k)):g.i32(i64_low(k))}if(this.currentType=E,!u){let k=_.name,F=a.getScopedLocal(k);if(F)F.declaration.range.source.isNative?this.error(2300,s.name.range,k):this.errorRelated(2300,s.name.range,F.declaration.name.range,k);else{let w=_.type,R=a.addScopedLocal(_.name,w);a.setLocalFlag(R.index,9),A=g.local_tee(R.index,A,w.isManaged)}}return A}assertFunctionLayout(e){assert(e.offsetof("_index")==au),assert(e.offsetof("_env")==this.options.usizeType.byteSize)}makeCapturingFunctionValue(e){let t=this.module,n=this.currentFlow,s=this.resolver,a=assert(s.resolveClass(this.program.functionPrototype,[e.type]));this.assertFunctionLayout(a);let l=assert(n.lookupLocal(N.this_)),o=new Array,u=n.getTempLocal(a.type);o.push(t.local_set(u.index,this.makeAllocation(a),a.type.isManaged));let c=t.local_get(u.index,a.type.toRef());return o.push(t.store(4,c,t.i32(this.ensureFunctionTableIndex(e)),B.I32,au)),o.push(t.store(this.options.usizeType.byteSize,c,t.local_get(l.index,l.type.toRef()),this.options.sizeTypeRef,this.options.usizeType.byteSize)),o.push(t.local_get(u.index,a.type.toRef())),t.flatten(o,a.type.toRef())}makeEnvFunctionValue(e,t){let n=this.module,s=this.currentFlow,a=this.resolver,l=assert(a.resolveClass(this.program.functionPrototype,[e.type]));this.assertFunctionLayout(l);let o=assert(s.lookupLocal(t)),u=new Array,c=s.getTempLocal(l.type);u.push(n.local_set(c.index,this.makeAllocation(l),l.type.isManaged));let f=n.local_get(c.index,l.type.toRef());return u.push(n.store(4,f,n.i32(this.ensureFunctionTableIndex(e)),B.I32,au)),u.push(n.store(this.options.usizeType.byteSize,f,n.local_get(o.index,o.type.toRef()),this.options.sizeTypeRef,this.options.usizeType.byteSize)),u.push(n.local_get(c.index,l.type.toRef())),n.flatten(u,l.type.toRef())}maybeCompileEnclosingSource(e){let t=e.range.source.internalPath,n=this.program.filesByName;assert(n.has(t)),assert(n.get(t)).is(8388608)||this.compileFileByPath(t,e)}compileIdentifierExpression(e,t,n){let s=this.module,a=this.currentFlow,l=a.sourceFunction;switch(e.kind){case 20:{let c=this.options;if(t.isReference){let f=t.getClass();if(f)return this.currentType=f.type.asNullable(),c.isWasm64?s.i64(0):s.i32(0);let _=t.getSignature();return _?(this.currentType=_.type.asNullable(),c.isWasm64?s.i64(0):s.i32(0)):this.makeZero(t)}return this.currentType=c.usizeType,this.warning(226,e.range,this.currentType.toString()),c.isWasm64?s.i64(0):s.i32(0)}case 27:return this.currentType=p.bool,s.i32(1);case 15:return this.currentType=p.bool,s.i32(0);case 26:{let c=l.signature.thisType;if(!c){if(l.prototype.capturesThis){let _=assert(a.lookupLocal(N.this_));return a.set(64),this.currentType=_.type,s.local_get(_.index,_.type.toRef())}return this.error(2332,e.range),this.currentType=this.options.usizeType,s.unreachable()}if(l.is(524288)&&(a.is(65536)&&this.error(2333,e.range),!(n&32))){let _=l.parent;assert(_.kind==7),this.checkFieldInitialization(_,e)}let f=assert(a.lookupLocal(N.this_));return a.set(64),this.currentType=c,s.local_get(f.index,c.toRef())}case 25:{if(l.is(524288)&&(a.is(65536)?this.error(2336,e.range):a.is(128)||this.error(17011,e.range)),a.isInline){let c=a.lookupLocal(N.this_);if(c){let _=assert(c.type.getClass()).base;if(_)return this.currentType=_.type,s.local_get(c.index,_.type.toRef())}}if(l.is(262144)){let c=assert(l.parent);assert(c.kind==7);let _=c.base;if(_){let d=_.type;return this.currentType=d,s.local_get(0,d.toRef())}}return this.error(2335,e.range),this.currentType=this.options.usizeType,s.unreachable()}}this.maybeCompileEnclosingSource(e);let o=this.currentParent;o||(o=l);let u=this.resolver.lookupIdentifierExpression(e,a,o);if(!u)return this.currentType==p.void&&(this.currentType=p.i32),s.unreachable();switch(u.kind){case 1:{let c=u,f=c.type;if(assert(f!=p.void),this.pendingElements.has(c))return this.error(2448,e.range,c.internalName),this.currentType=f,s.unreachable();if(c.is(33554432))return this.compileInlineConstant(c,t,n);let _=this.lazyLocals;if(_!=null){let E=te(_,c);if(E!=null)return this.compileLazyLocalRead(c,E,e)}let d=c.index;if(a.isLocalFlag(d,8)||this.error(2454,e.range,c.name),c.fieldLocals!=null||d<0)return this.error(100,e.range,"reading an @inline struct value as a whole (a value has no address; read a field, or copy it with `let q: P = p`)"),this.currentType=f,s.unreachable();assert(d>=0);let g=a.isLocalFlag(d,4,!1);if(f.isNullableReference&&g&&(!f.isExternalReference||this.options.hasFeature(1024))?this.currentType=f.nonNullableType:this.currentType=f,!c.declaredByFlow(a))return this.error(100,e.range,"Closures"),s.unreachable();let y=s.local_get(d,f.toRef());return g&&f.isNullableExternalReference&&this.options.hasFeature(1024)&&(y=s.ref_as_nonnull(y)),y}case 0:{let c=u;if(!this.compileGlobalLazy(c,e))return s.unreachable();let f=c.type;if(this.pendingElements.has(c))return this.error(2448,e.range,c.internalName),this.currentType=f,s.unreachable();if(assert(f!=p.void),c.hasDecorator(512))return this.compileIdentifierExpressionBuiltin(c,e,t);if(c.is(33554432))return this.compileInlineConstant(c,t,n);let _=s.global_get(c.internalName,f.toRef());return c.is(16384)&&f.isReference&&!f.isNullableReference&&(_=this.makeRuntimeNonNullCheck(_,f,e)),this.currentType=f,_}case 3:{let c=u;return u.is(8388608)?(this.currentType=p.i32,c.is(33554432)?(assert(c.constantValueKind==1),s.i32(i64_low(c.constantIntegerValue))):s.global_get(c.internalName,B.I32)):(this.error(2651,e.range),this.currentType=p.i32,s.unreachable())}case 4:{let c=u,f=c.typeParameterNodes;if(f&&f.length!=0){this.error(1140,e.range);break}let _=this.resolver.resolveFunction(c,null,de(a.contextualTypeArguments));if(!_||!this.compileFunction(_))return s.unreachable();if(_.hasDecorator(512))return this.error(100,e.range,"First-class built-ins"),this.currentType=_.type,s.unreachable();if(t.isExternalReference)return this.currentType=p.func,s.ref_func(_.internalName,Is(_.type));let d=this.ensureRuntimeFunction(_);return this.currentType=_.signature.type,this.options.isWasm64?s.i64(i64_low(d),i64_high(d)):s.i32(i64_low(d))}}return this.error(234,e.range),s.unreachable()}compileLazyLocalRead(e,t,n){let s=this.module,a=this.currentFlow,l=e.type,o=t.valueIndex,u=t.doneIndex,c=this.compileExpression(t.expression,l,1);if(!c)return s.unreachable();l.isShortIntegerValue&&(c=this.ensureSmallIntegerWrap(c,l));let f=this.currentType;c=this.convertExpression(c,f,l,!1,t.expression);let _=s.local_set(o,c,l.isManaged),d=s.local_set(u,s.i32(1),!1),g=s.if(s.unary(20,s.local_get(u,B.I32)),s.block(null,[_,d],B.None)),y=o,E=a.isLocalFlag(y,4,!1);return l.isNullableReference&&E&&(!l.isExternalReference||this.options.hasFeature(1024))?this.currentType=l.nonNullableType:this.currentType=l,this.options.sourceMap&&this.addDebugLocation(g,n.range),s.block(null,[g,s.local_get(y,this.currentType.toRef())],this.currentType.toRef())}compileIdentifierExpressionBuiltin(e,t,n){e.hasDecorator(8192)&&this.checkUnsafe(t,e.identifierNode);let s=e.internalName;return assert(At.has(s)),assert(At.get(s))(new Vs(this,e,n,t))}compileLoweredAwaitExpression(e){let t=te(iu(),e);if(!t)return this.error(100,e.range,"the async lowering transform did not run"),this.module.unreachable();let n=this.resolver.resolveExpression(e,this.currentFlow,p.auto,0);if(!n)return this.module.unreachable();if(n==p.void)return this.currentType=p.void,this.module.nop();if(n.isReference)return this.error(100,e.range,"a reference-typed await result"),this.module.unreachable();if(!n.isMemory)return this.error(203,e.range,"await",n.toString()),this.module.unreachable();let s;n==p.f32||n==p.f64||n==p.i64||n==p.u64?s=16:s=8;let a=this.compileExpression(t.recordExpression,p.auto,0);return this.currentType=n,this.module.load(n.byteSize,n.isSignedIntegerValue,a,n.toRef(),s,n.byteSize)}compileInstanceOfExpression(e,t,n){let s=this.currentFlow,a=e.isType;if(a.kind==1){let o=a;if(!(o.isNullable||o.hasTypeArguments)){let u=this.resolver.resolveTypeName(o.name,s,s.sourceFunction,1);if(u&&u.kind==6){let c=u;if(c.is(65536))return this.makeInstanceofClass(e,c)}}}let l=this.resolver.resolveType(e.isType,s,s.sourceFunction,de(s.contextualTypeArguments));return l?this.makeInstanceofType(e,l):(this.currentType=p.bool,this.module.unreachable())}makeInstanceofType(e,t){let n=this.module,s=this.currentFlow,a=this.compileExpression(e.expression,t),l=this.currentType;if(this.currentType=p.bool,t.isValue)return n.maybeDropCondition(a,n.i32(l==t?1:0));if(l.isValue)return n.maybeDropCondition(a,n.i32(0));let o=l.toRef();if(l.isNullableReference&&!t.isNullableReference){if(l.nonNullableType.isAssignableTo(t))return n.binary(o==B.I64?41:16,a,this.makeZero(l));if(l.nonNullableType.hasSubtypeAssignableTo(t))if(l.isUnmanaged||t.isUnmanaged)this.error(2365,e.range,"instanceof",l.toString(),t.toString());else{this.options.pedantic&&this.pedantic(903,e.range);let c=s.getTempLocal(l).index;return n.if(n.unary(o==B.I64?21:20,n.local_tee(c,a,l.isManaged)),n.i32(0),n.call(this.prepareInstanceOf(t.classReference),[n.local_get(c,o)],B.I32))}}else{if(l.isAssignableTo(t))return n.maybeDropCondition(a,n.i32(1));if(l.hasSubtypeAssignableTo(t))if(l.isUnmanaged||t.isUnmanaged)this.error(2365,e.range,"instanceof",l.toString(),t.toString());else{let c=s.getTempLocal(l).index;return n.if(n.unary(o==B.I64?21:20,n.local_tee(c,a,l.isManaged)),n.i32(0),n.call(this.prepareInstanceOf(t.classReference),[n.local_get(c,o)],B.I32))}}return n.maybeDropCondition(a,n.i32(0))}prepareInstanceOf(e){let t=`~instanceof|${e.internalName}`,n=this.pendingInstanceOf;if(n.has(e))return assert(n.get(e));n.set(e,t);let s=this.module;return s.addFunction(t,this.options.sizeTypeRef,B.I32,null,s.unreachable()),t}finalizeInstanceOf(e,t){let n=this.program,s=this.module,a=this.options.sizeTypeRef,l=new Array;l.push(s.local_set(1,s.load(4,!1,s.binary(a==B.I64?26:1,s.local_get(0,a),s.i32(n.totalOverhead-n.OBJECTInstance.offsetof("rtId"))),B.I32),!1));let o;if(e.isInterface)o=e.implementers;else{o=new Set,o.add(e);let u=e.extenders;if(u)for(let c=Set_values(u),f=0,_=c.length;f<_;++f){let d=c[f];o.add(d)}}if(o)for(let u=Set_values(o),c=0,f=u.length;c<f;++c){let _=u[c];l.push(s.br("is_instance",s.binary(15,s.local_get(1,B.I32),s.i32(_.id))))}l.push(s.return(s.i32(0))),l[0]=s.block("is_instance",l,B.None),l.length=1,l.push(s.i32(1)),s.removeFunction(t),s.addFunction(t,a,B.I32,[B.I32],s.block(null,l,B.I32))}makeInstanceofClass(e,t){let n=this.module,s=this.compileExpression(e.expression,p.auto),a=this.currentType,l=a.toRef();this.currentType=p.bool;let o=a.getClass();if(o){if(o.extendsPrototype(t))return a.isNullableReference?n.binary(l==B.I64?41:16,s,this.makeZero(a)):n.maybeDropCondition(s,n.i32(1));if(t.extends(o.prototype)){let f=this.currentFlow.getTempLocal(a).index;return n.if(n.unary(l==B.I64?21:20,n.local_tee(f,s,a.isManaged)),n.i32(0),n.call(this.prepareAnyInstanceOf(t),[n.local_get(f,l)],B.I32))}}return n.maybeDropCondition(s,n.i32(0))}prepareAnyInstanceOf(e){let t=`~anyinstanceof|${e.internalName}`,n=this.pendingInstanceOf;if(n.has(e))return assert(n.get(e));n.set(e,t);let s=this.module;return s.addFunction(t,this.options.sizeTypeRef,B.I32,null,s.unreachable()),t}finalizeAnyInstanceOf(e,t){let n=this.module,s=this.options.sizeTypeRef,a=new Array,l=e.instances;if(l){let o=this.program;a.push(n.local_set(1,n.load(4,!1,n.binary(s==B.I64?26:1,n.local_get(0,s),n.i32(o.totalOverhead-o.OBJECTInstance.offsetof("rtId"))),B.I32),!1));let u=new Set;for(let c=Map_values(l),f=0,_=c.length;f<_;++f){let d=c[f];if(d.isInterface){let g=d.implementers;if(g)for(let y=Set_values(g),E=0,A=y.length;E<A;++E){let k=y[E];u.add(k)}}else{u.add(d);let g=d.extenders;if(g)for(let y=Set_values(g),E=0,A=y.length;E<A;++E){let k=y[E];u.add(k)}}}for(let c=Set_values(u),f=0,_=c.length;f<_;++f){let d=c[f];a.push(n.br("is_instance",n.binary(15,n.local_get(1,B.I32),n.i32(d.id))))}}a.push(n.return(n.i32(0))),a[0]=n.block("is_instance",a,B.None),a.length=1,a.push(n.i32(1)),n.removeFunction(t),n.addFunction(t,s,B.I32,[B.I32],n.block(null,a,B.I32))}compileLiteralExpression(e,t,n,s=!1){let a=this.module;switch(e.literalKind){case 5:return assert(!s),this.compileArrayLiteral(e,t,n);case 0:{let l=e.value;return s&&(l=-l),t==p.f32?a.f32(l):(this.currentType=p.f64,a.f64(l))}case 1:{let l=e,o=this.resolver.determineIntegerLiteralType(l,s,t);this.currentType=o;let u=l.value,c=1;switch(s&&(o.isFloatValue?c=-1:u=i64_neg(u)),o.kind){case 5:if(!this.options.isWasm64)return a.i32(i64_low(u));case 4:return a.i64(i64_low(u),i64_high(u));case 10:if(!this.options.isWasm64)return a.i32(i64_low(u));case 9:return a.i64(i64_low(u),i64_high(u));case 11:return a.f32(c*i64_to_f32(u));case 12:return a.f64(c*i64_to_f64(u));default:return a.i32(i64_low(u))}}case 2:return assert(!s),this.compileStringLiteral(e,n);case 3:return assert(!s),this.compileTemplateLiteral(e,n);case 6:return assert(!s),this.compileObjectLiteral(e,t);case 4:return this.error(100,e.range,"Regular expressions"),this.currentType=t,a.unreachable()}return assert(!1),a.unreachable()}compileStringLiteral(e,t){return this.ensureStaticString(e.value)}compileTemplateLiteral(e,t){let n=e.tag,s=e.parts,a=s.length,l=e.expressions,o=l.length;assert(o==a-1);let u=this.module,c=this.program.stringInstance,f=c.type;if(!n){if(a==1)return this.ensureStaticString(s[0]);if(a==2){let Q=l[0],Y=s[0].length,q=s[1].length;if(!Y&&!q)return this.makeToString(this.compileExpression(Q,f),this.currentType,Q);let le=Y!=0;if(le^q!=0){let H,me,oe=this.makeToString(this.compileExpression(Q,f),this.currentType,Q);le?(H=this.ensureStaticString(s[0]),me=oe):(H=oe,me=this.ensureStaticString(s[1]));let pe=assert(c.getMethod("concat"));return this.makeCallDirect(pe,[H,me],Q)}}if(a==3&&!s[0].length&&!s[1].length&&!s[2].length){let Q=l[0],Y=l[1],q=this.makeToString(this.compileExpression(Q,f),this.currentType,Q),le=this.makeToString(this.compileExpression(Y,f),this.currentType,Y),H=assert(c.getMethod("concat"));return this.makeCallDirect(H,[q,le],e)}let F=new Array(o),w=new Array;s[0].length>0&&w.push(this.ensureStaticString(s[0]));for(let Q=1;Q<a;++Q)F[Q-1]=w.length,w.push(u.usize(0)),s[Q].length>0&&w.push(this.ensureStaticString(s[Q]));let R=assert(this.resolver.resolveClass(this.program.staticArrayPrototype,[f])),P=this.addStaticBuffer(f,w,R.id);this.program.OBJECTInstance.writeField("gcInfo",3,P.buffer,0);let M=i64_add(P.offset,i64_new(this.program.totalOverhead)),O=assert(R.getMethod("join")),z=assert(R.lookupOverload(2,!0)),j=new Array(2*o+1),U=new Array(o),D=this.currentFlow;for(let Q=0;Q<o;++Q){let Y=l[Q],q=D.getTempLocal(f);U[Q]=q,j[Q]=u.local_set(q.index,this.makeToString(this.compileExpression(Y,f),this.currentType,Y),!0)}for(let Q=0;Q<o;++Q)j[o+Q]=this.makeCallDirect(z,[u.usize(M),u.i32(F[Q]),u.local_get(U[Q].index,f.toRef())],e);return j[2*o]=this.makeCallDirect(O,[u.usize(M),this.ensureStaticString("")],e),u.flatten(j,f.toRef())}let _=this.program.templateStringsArrayInstance,d=_,g=this.resolver.lookupExpression(n,this.currentFlow,p.auto,1);if(g)switch(g.kind){case 4:{let F=this.resolver.resolveFunction(g,null,new Map,1);if(!F)break;g=F}case 5:{let w=g.signature.parameterTypes;if(w.length){let R=w[0].getClass();R&&!R.extendsPrototype(_.prototype)&&(d=assert(this.resolver.resolveClass(this.program.arrayPrototype,[f])))}break}}let y=e.rawParts;assert(y.length==a);let E=new Array(a);for(let F=0;F<a;++F)E[F]=this.ensureStaticString(s[F]);let A;if(d==_){let F=new Array(a);for(let R=0;R<a;++R)F[R]=this.ensureStaticString(y[R]);A=this.addStaticArrayHeader(f,this.addStaticBuffer(this.options.usizeType,E),d);let w=this.addStaticArrayHeader(f,this.addStaticBuffer(this.options.usizeType,F));d.writeField("raw",i64_add(w.offset,i64_new(this.program.totalOverhead)),A.buffer)}else A=this.addStaticArrayHeader(f,this.addStaticBuffer(this.options.usizeType,E),d);let k=l.slice();return k.unshift(h.createCompiledExpression(u.usize(i64_add(A.offset,i64_new(this.program.totalOverhead))),d.type,Ee.native.range)),this.error(100,e.range,"Tagged template literals"),this.compileCallExpressionLike(n,null,k,e.range,f)}compileArrayLiteral(e,t,n){let s=this.module,a=this.currentFlow,l=this.program,o=t.getClass();if(o&&o.extendsPrototype(l.staticArrayPrototype))return this.compileStaticArrayLiteral(e,t,n);let u=this.resolver.lookupExpression(e,a,this.currentType);if(!u)return s.unreachable();assert(u.kind==7);let c=u,f=c.type,_=c.getTypeArgumentsTo(l.arrayPrototype)[0],d=a.getTempLocal(this.options.usizeType),g=e.elementExpressions,y=g.length,E=new Array(y),A=!_.isExternalReference;for(let M=0;M<y;++M){let O=g[M];if(O.kind!=21){let z=this.compileExpression(O,_,1);if(ce(z)!=_.toRef())A=!1;else{let j=s.runExpression(z,1);j?z=j:A=!1}E[M]=z}else E[M]=this.makeZero(_)}if(A){let M=l.totalOverhead,O=this.addStaticBuffer(_,E),z=i64_add(O.offset,i64_new(M));if(n&16){let j=this.addStaticArrayHeader(_,O),U=i64_add(j.offset,i64_new(M));return this.currentType=f,l.options.isWasm64?this.module.i64(i64_low(U),i64_high(U)):this.module.i32(i64_low(U))}else return this.makeNewArray(c,y,z,e)}let k=c.lookupOverload(2,!0);if(!k)return this.error(2542,e.range,c.internalName),this.currentType=f,s.unreachable();let F=f.toRef(),w=new Array;w.push(s.local_set(d.index,this.makeNewArray(c,y,i64_new(0),e),f.isManaged));let R=assert(c.getMember("dataStart"));assert(R.kind==10);let P=R.instance;if(!P)return s.unreachable();assert(P.isField&&P.memoryOffset>=0);for(let M=0;M<y;++M)w.push(s.call(k.internalName,[s.local_get(d.index,F),s.i32(M),E[M]],B.None));return w.push(s.local_get(d.index,F)),y&&this.compileFunction(k),this.currentType=f,s.flatten(w,F)}makeNewArray(e,t,n,s){let a=this.program,l=this.module;assert(!e.extendsPrototype(a.staticArrayPrototype));let o=e.getArrayValueType(),u=this.makeCallDirect(a.newArrayInstance,[l.i32(t),a.options.isWasm64?l.i64(o.alignLog2):l.i32(o.alignLog2),l.i32(e.id),a.options.isWasm64?l.i64(i64_low(n),i64_high(n)):l.i32(i64_low(n))],s);return this.currentType=e.type,u}compileStaticArrayLiteral(e,t,n){let s=this.module,a=this.currentFlow,l=this.program,o=assert(t.getClass()),u=o.type,f=assert(o.getTypeArgumentsTo(l.staticArrayPrototype))[0],_=a.getTempLocal(this.options.usizeType),d=e.elementExpressions,g=d.length,y=new Array(g),E=!f.isExternalReference;for(let P=0;P<g;++P){let M=d[P];if(M.kind!=21){let O=this.compileExpression(M,f,1),z=s.runExpression(O,1);z?O=z:E=!1,y[P]=O}else y[P]=this.makeZero(f)}let A=this.options.isWasm64,k=y.length<<f.alignLog2;if(E){let P=this.addStaticBuffer(f,y,o.id),M=i64_add(P.offset,i64_new(l.totalOverhead));if(n&16){let O=this.options.isWasm64?s.i64(i64_low(M),i64_high(M)):s.i32(i64_low(M));return this.currentType=u,O}else{let O=this.makeCallDirect(l.newBufferInstance,[A?s.i64(k):s.i32(k),s.i32(o.id),A?s.i64(i64_low(M),i64_high(M)):s.i32(i64_low(M))],e);return this.currentType=u,O}}let F=o.lookupOverload(2,!0);if(!F)return this.error(2542,e.range,o.internalName),this.currentType=u,s.unreachable();let w=u.toRef(),R=new Array;R.push(s.local_set(_.index,this.makeCallDirect(l.newBufferInstance,[A?s.i64(k):s.i32(k),s.i32(o.id)],e),u.isManaged));for(let P=0;P<g;++P)R.push(s.call(F.internalName,[s.local_get(_.index,w),s.i32(P),y[P]],B.None));return R.push(s.local_get(_.index,w)),g&&this.compileFunction(F),this.currentType=u,s.flatten(R,w)}compileObjectLiteral(e,t){let n=this.module,s=t.getClass();if(!s)return this.error(2322,e.range,"<object>",t.toString()),n.unreachable();let a=s.type;if(this.currentType=a.nonNullableType,s.kind==9)return this.error(100,e.range,"Interface hidden classes"),n.unreachable();if(s.is(128))return this.error(2511,e.range),n.unreachable();let l=s.prototype.constructorPrototype;if(l)return this.errorRelated(216,e.range,l.identifierNode.range,a.toString()),n.unreachable();a.isManaged||this.checkUnsafe(e,$t(6,s.decoratorNodes));let u=e.names,c=u.length,f=e.values,_=s.members,d=!1,g=new Array,E=this.currentFlow.getTempLocal(a),A=a.toRef();assert(c==f.length);let k=new Set;if(_)for(let R=Map_keys(_),P=0,M=R.length;P<M;++P){let O=R[P],z=assert(_.get(O));if(z&&z.kind==10){let j=z.instance;j&&j.isField&&k.add(j)}}let F=new Array;for(let R=0;R<c;++R){let P=u[R].text,M=s.getMember(P);if(!M||M.kind!=10){this.error(2339,u[R].range,P,a.toString()),d=!0;continue}if(M.is(512)){this.error(2341,u[R].range,P,a.toString()),d=!0;continue}if(M.is(1024)){this.error(2445,u[R].range,P,a.toString()),d=!0;continue}let O=this.resolver.resolveProperty(M);if(!O)continue;let z=O.setterInstance;if(!z){this.error(2540,u[R].range,P,a.toString()),d=!0;continue}if(k.delete(O),!O.isField){F.push(O);continue}let j=O.type,U=this.makeCallDirect(z,[n.local_get(E.index,A),this.compileExpression(f[R],j,1)],z.identifierNode,!0);this.currentType!=p.void&&(U=n.drop(U)),g.push(U)}for(let R=0,P=F.length;R<P;++R){let M=F[R],O=assert(M.setterInstance);g.push(this.makeCallDirect(O,[n.local_get(E.index,A),this.compileExpression(f[R],M.type,1)],O.identifierNode))}if(this.currentType=a.nonNullableType,d)return n.unreachable();for(let R=Set_values(k),P=0,M=R.length;P<M;++P){let O=R[P];assert(O.isField);let z=O.type;if(!O.initializerNode){if(z.isReference&&!z.isNullableReference){this.error(2741,e.range,O.name,"<object>",a.toString()),d=!0;continue}switch(z.kind){case 0:case 1:case 2:case 3:case 4:case 5:case 6:case 7:case 8:case 9:case 10:case 11:case 12:{g.push(n.store(z.byteSize,n.local_get(E.index,A),this.makeZero(z),z.toRef(),O.memoryOffset));continue}}this.error(2741,e.range,O.name,"<object>",a.toString()),d=!0}}if(d)return n.unreachable();let w=this.ensureConstructor(s,e);return g.unshift(n.local_set(E.index,this.compileInstantiate(w,[],0,e),a.isManaged)),g.push(n.local_get(E.index,A)),this.currentType=a.nonNullableType,n.flatten(g,A)}compileNewExpression(e,t,n){let s=this.module,a=this.currentFlow,l=this.resolver.resolveTypeName(e.typeName,a,a.sourceFunction);if(!l)return s.unreachable();if(l.kind!=6)return this.error(2351,e.typeName.range),this.module.unreachable();if(l.is(128))return this.error(2511,e.typeName.range),this.module.unreachable();let o=l,u=null,c=e.typeArguments,f;if(!c&&(f=t.classReference)&&f.prototype==o&&f.is(65536)?u=this.resolver.resolveClass(o,f.typeArguments,de(a.contextualTypeArguments)):u=this.resolver.resolveClassInclTypeArguments(o,c,a,a.sourceFunction.parent,de(a.contextualTypeArguments),e),!u)return s.unreachable();t==p.void&&(n|=8);let _=this.ensureConstructor(u,e);return _.hasDecorator(64)||this.checkFieldInitialization(u,e),this.compileInstantiate(_,e.args,n,e)}ensureConstructor(e,t){let n=e.constructorInstance;if(n){if(n.is(8388608))return n;n.hasDecorator(64)||this.compileFunction(n)}else{let s=e.base,a=de(e.contextualTypeArguments);if(s){let F=this.ensureConstructor(s,t);this.checkFieldInitialization(s,t),n=new Lt(N.constructor,new lt(N.constructor,e,F.declaration.clone()),null,Te.create(this.program,F.signature.parameterTypes,e.type,e.type,F.signature.requiredParameters,F.signature.hasRest,e.hasDecorator(4096)),a)}else n=new Lt(N.constructor,new lt(N.constructor,e,this.program.makeNativeFunctionDeclaration(N.constructor,786432)),null,Te.create(this.program,[],e.type,e.type,0,!1,e.hasDecorator(4096)),a);n.set(8388608),n.prototype.setResolvedInstance("",n),e.is(1048576)&&n.set(1048576),e.constructorInstance=n;let l=e.members;l||(e.members=l=new Map),l.set(N.constructor,n.prototype);let o=this.currentFlow,u=n.flow;this.currentFlow=u;let c=n.signature,f=this.module,_=this.options.sizeTypeRef,d=new Array;if(d.push(this.makeConditionalAllocation(e,0)),s){let F=c.parameterTypes,w=F.length,R=new Array(1+w);R[0]=f.local_get(0,_);for(let P=1;P<=w;++P)R[P]=f.local_get(P,F[P-1].toRef());d.push(f.local_set(0,this.makeCallDirect(assert(s.constructorInstance),R,t,!1),s.type.isManaged))}this.makeFieldInitializationInConstructor(e,d),d.push(f.local_get(0,_)),this.currentFlow=o;let g=n.localsByIndex,y=new Array,E=1+c.parameterTypes.length,A=g.length;if(A>E)for(let F=E;F<A;++F)y.push(g[F].type.toRef());let k=f.addFunction(n.internalName,c.paramRefs,c.resultRefs,y,f.flatten(d,_));n.finalize(f,k)}return n}checkFieldInitialization(e,t=null){if(e.didCheckFieldInitialization)return;e.didCheckFieldInitialization=!0;let n=assert(e.constructorInstance);this.checkFieldInitializationInFlow(e,n.flow,t)}checkFieldInitializationInFlow(e,t,n=null){let s=e.members;if(s)for(let a=Map_values(s),l=0,o=a.length;l<o;++l){let u=a[l];if(u.kind!=10||u.parent!=e)continue;let c=u.instance;!c||!c.isField||(!c.initializerNode&&!t.isThisFieldFlag(c,1)?c.is(16384)||(n?this.errorRelated(2564,c.declaration.name.range,n.range,c.internalName):this.error(2564,c.declaration.name.range,c.internalName)):c.is(16384)&&(c.type.isReference?this.warning(233,c.identifierNode.range,c.internalName):this.pedantic(906,c.identifierNode.range)))}}compileInstantiate(e,t,n,s){assert(e.is(524288));let a=e.parent;assert(a.kind==7);let l=a;(l.type.isUnmanaged||e.hasDecorator(8192))&&this.checkUnsafe(s);let o=this.compileCallDirect(e,t,s,this.makeZero(this.options.usizeType),n);return ce(o)!=B.None&&(this.currentType=l.type),o}compilePropertyAccessExpression(e,t,n){let s=this.module,a=this.currentFlow;this.maybeCompileEnclosingSource(e);let l=this.resolver,o=l.lookupExpression(e,a,t);if(!o)return s.unreachable();let u=l.currentThisExpression;switch(o.hasDecorator(8192)&&this.checkUnsafe(e),o.kind){case 0:{let c=o;if(!this.compileGlobalLazy(c,e))return s.unreachable();let f=c.type;if(assert(f!=p.void),this.pendingElements.has(c))return this.error(2448,e.range,c.internalName),this.currentType=f,s.unreachable();if(c.is(33554432))return this.compileInlineConstant(c,t,n);let _=s.global_get(c.internalName,f.toRef());return c.is(16384)&&f.isReference&&!f.isNullableReference&&(_=this.makeRuntimeNonNullCheck(_,f,e)),this.currentType=f,_}case 3:{let c=o,f=assert(c.parent);assert(f.kind==2);let _=f;return this.compileEnum(_)?(this.currentType=c.type,c.is(33554432)?(assert(c.constantValueKind==1),this.compileInlineConstant(c,t,n)):s.global_get(c.internalName,B.I32)):(this.currentType=_.type,this.module.unreachable())}case 10:{let c=o,f=this.resolver.resolveProperty(c);if(!f)return s.unreachable();o=f}case 11:{let c=o;c.isField&&a.sourceFunction.is(524288)&&assert(u).kind==26&&!a.isThisFieldFlag(c,1)&&!c.is(16384)&&this.errorRelated(2565,e.range,c.identifierNode.range,c.internalName);let f=u!=null?this.resolveSroaReceiver(u):null;if(f!=null){let g=assert(f.fieldLocals);if(!c.isField||!g.has(c.name))return this.error(100,e.range,"reading this member of an @inline struct (only supported fields are readable; a refused or computed member has no local)"),s.unreachable();let y=assert(g.get(c.name));return this.currentType=c.type,s.local_get(y.index,y.type.toRef())}if(u!=null&&u.kind==11&&c.isField){let g=this.resolver.resolveExpression(u,this.currentFlow);if(g!=null&&this.isInlineStructType(g))return this.makeSretCallBlock(u,g,c.type,c,null)}if(c.type.kind==14||c.isField&&this.isInlineStructType(c.type)){let g=this.resolver.resolveExpression(assert(u),this.currentFlow);if(!g)return s.unreachable();let y=this.compileExpression(assert(u),g,33);this.currentType=c.type;let E=c.memoryOffset;return E?s.binary(217,y,this.options.isWasm64?s.i64(E):s.i32(E)):y}let _=c.getterInstance;if(!_)return s.unreachable();let d=0;return _.is(262144)&&(d=this.compileExpression(assert(u),assert(_.signature.thisType),33)),this.compileCallDirect(_,[],e,d)}case 4:{let c=o,f=c.typeParameterNodes;if(f&&f.length!=0){this.error(1140,e.range);break}let _=this.resolver.resolveFunction(c,null);if(!_||!this.compileFunction(_))return s.unreachable();if(this.currentType=_.type,_.hasDecorator(512))return this.error(100,e.range,"First-class built-ins"),s.unreachable();let d=this.ensureRuntimeFunction(_);return this.options.isWasm64?s.i64(i64_low(d),i64_high(d)):s.i32(i64_low(d))}}return this.error(234,e.range),this.module.unreachable()}compileTernaryExpression(e,t,n){let s=this.module,a=e.ifThen,l=e.ifElse,o=this.compileExpression(e.condition,p.bool),u=this.makeIsTrueish(o,this.currentType,e.condition),c=this.evaluateCondition(u);if(c==1)return s.maybeDropCondition(u,this.compileExpression(a,t));if(c==2)return s.maybeDropCondition(u,this.compileExpression(l,t));let f=this.currentFlow,_=f.forkThen(o);this.currentFlow=_;let d=this.compileExpression(a,t),g=this.currentType,y=f.forkElse(o);this.currentFlow=y;let E=this.compileExpression(l,t==p.auto?g:t),A=this.currentType;if(t==p.void)g!=p.void&&(d=s.drop(d),g=p.void),A!=p.void&&(E=s.drop(E),A=p.void),this.currentType=p.void;else{let k=p.commonType(g,A,t);if(!k)return this.error(2322,l.range,A.toString(),g.toString()),this.currentType=t,s.unreachable();d=this.convertExpression(d,g,k,!1,a),g=k,E=this.convertExpression(E,A,k,!1,l),A=k,this.currentType=k}return f.inheritAlternatives(_,y),this.currentFlow=f,s.if(u,d,E)}compileUnaryPostfixExpression(e,t,n){let s=this.module,a=this.currentFlow,l=this.compileExpression(e.operand,t.exceptVoid,0),o,u=null;t!=p.void?(u=a.getTempLocal(this.currentType),o=s.local_tee(u.index,l,this.currentType.isManaged)):o=l;let c;switch(e.operator){case 88:{let y=this.currentType.getClassOrWrapper(this.program);if(y){let E=y.lookupOverload(29);if(E){let A=E.is(262144);if(u&&!A&&(o=l,u=null),c=this.compileUnaryOverload(E,e.operand,o,e),A)break;return c}}if(!this.currentType.isValue)return this.error(2469,e.range,"++",this.currentType.toString()),s.unreachable();switch(this.currentType.kind){case 0:case 1:case 2:case 3:case 6:case 7:case 8:{c=s.binary(0,o,s.i32(1));break}case 4:case 9:{c=s.binary(25,o,s.i64(1));break}case 5:case 10:{c=s.binary(217,o,this.makeOne(this.currentType));break}case 11:{c=s.binary(50,o,s.f32(1));break}case 12:{c=s.binary(63,o,s.f64(1));break}default:return this.error(2469,e.range,"++",this.currentType.toString()),s.unreachable()}break}case 89:{let y=this.currentType.getClassOrWrapper(this.program);if(y){let E=y.lookupOverload(30);if(E){let A=E.is(262144);if(u&&!A&&(o=l,u=null),c=this.compileUnaryOverload(E,e.operand,o,e),A)break;return c}}if(!this.currentType.isValue)return this.error(2469,e.range,"--",this.currentType.toString()),s.unreachable();switch(this.currentType.kind){case 0:case 1:case 2:case 3:case 6:case 7:case 8:{c=s.binary(1,o,s.i32(1));break}case 4:case 9:{c=s.binary(26,o,s.i64(1));break}case 5:case 10:{c=s.binary(218,o,this.makeOne(this.currentType));break}case 11:{c=s.binary(51,o,s.f32(1));break}case 12:{c=s.binary(64,o,s.f64(1));break}default:return this.error(2469,e.range,"--",this.currentType.toString()),s.unreachable()}break}default:return assert(!1),s.unreachable()}let f=this.resolver;if(e.operand.kind==14){let y=e.operand,E=f.resolveExpression(y.expression,a);if(E&&E.kind==14){let A=this.compileFixedArrayElementAccess(y,E,!0,t,0,null,c);return u?s.block(null,[A,s.local_get(u.index,this.currentType.toRef())],this.currentType.toRef()):A}}let _=f.lookupExpression(e.operand,a);if(!_)return s.unreachable();if(!u)return this.makeAssignment(_,c,this.currentType,e.operand,f.currentThisExpression,f.currentElementExpression,!1);let d=this.makeAssignment(_,c,this.currentType,e.operand,f.currentThisExpression,f.currentElementExpression,!1);this.currentType=u.type;let g=u.type.toRef();return s.block(null,[d,s.local_get(u.index,g)],g)}compileUnaryPrefixExpression(e,t,n){let s=this.module,a=!1,l;switch(e.operator){case 82:{l=this.compileExpression(e.operand,t.exceptVoid,0);let c=this.currentType.getClassOrWrapper(this.program);if(c){let f=c.lookupOverload(23);if(f)return this.compileUnaryOverload(f,e.operand,l,e)}if(!this.currentType.isValue)return this.error(2469,e.range,"+",this.currentType.toString()),s.unreachable();break}case 83:{let c=e.operand;if(c.isNumericLiteral){l=this.compileLiteralExpression(c,t,0,!0),this.options.sourceMap&&this.addDebugLocation(l,e.range);break}l=this.compileExpression(e.operand,t.exceptVoid,0);let f=this.currentType.getClassOrWrapper(this.program);if(f){let _=f.lookupOverload(24);if(_)return this.compileUnaryOverload(_,e.operand,l,e)}if(!this.currentType.isValue)return this.error(2469,e.range,"-",this.currentType.toString()),s.unreachable();switch(this.currentType.kind){case 0:case 1:case 2:case 3:case 6:case 7:case 8:{l=s.binary(1,s.i32(0),l);break}case 4:case 9:{l=s.binary(26,s.i64(0),l);break}case 5:case 10:{l=s.binary(218,this.makeZero(this.currentType),l);break}case 11:{l=s.unary(6,l);break}case 12:{l=s.unary(7,l);break}default:this.error(2469,e.range,"-",this.currentType.toString()),l=s.unreachable()}break}case 88:{a=!0,l=this.compileExpression(e.operand,t.exceptVoid,0);let c=this.currentType.getClassOrWrapper(this.program);if(c){let f=c.lookupOverload(27);if(f){if(l=this.compileUnaryOverload(f,e.operand,l,e),f.is(262144))break;return l}}if(!this.currentType.isValue)return this.error(2469,e.range,"++",this.currentType.toString()),s.unreachable();switch(this.currentType.kind){case 0:case 1:case 2:case 3:case 6:case 7:case 8:{l=s.binary(0,l,this.module.i32(1));break}case 4:case 9:{l=s.binary(25,l,s.i64(1));break}case 5:case 10:{l=s.binary(217,l,this.makeOne(this.currentType));break}case 11:{l=s.binary(50,l,s.f32(1));break}case 12:{l=s.binary(63,l,s.f64(1));break}default:this.error(2469,e.range,"++",this.currentType.toString()),l=s.unreachable()}break}case 89:{a=!0,l=this.compileExpression(e.operand,t.exceptVoid,0);let c=this.currentType.getClassOrWrapper(this.program);if(c){let f=c.lookupOverload(28);if(f){if(l=this.compileUnaryOverload(f,e.operand,l,e),f.is(262144))break;return l}}if(!this.currentType.isValue)return this.error(2469,e.range,"--",this.currentType.toString()),s.unreachable();switch(this.currentType.kind){case 0:case 1:case 2:case 3:case 6:case 7:case 8:{l=s.binary(1,l,s.i32(1));break}case 4:case 9:{l=s.binary(26,l,s.i64(1));break}case 5:case 10:{l=s.binary(218,l,this.makeOne(this.currentType));break}case 11:{l=s.binary(51,l,s.f32(1));break}case 12:{l=s.binary(64,l,s.f64(1));break}default:this.error(2469,e.range,"--",this.currentType.toString()),l=s.unreachable()}break}case 96:{l=this.compileExpression(e.operand,t.exceptVoid,0);let c=this.currentType.getClassOrWrapper(this.program);if(c){let f=c.lookupOverload(25);if(f)return this.compileUnaryOverload(f,e.operand,l,e)}l=s.unary(20,this.makeIsTrueish(l,this.currentType,e.operand)),this.currentType=p.bool;break}case 97:{l=this.compileExpression(e.operand,t==p.void?p.i32:t.isFloatValue?p.i64:t,0);let c=this.currentType.getClassOrWrapper(this.program);if(c){let f=c.lookupOverload(26);if(f)return this.compileUnaryOverload(f,e.operand,l,e)}if(!this.currentType.isValue)return this.error(2469,e.range,"~",this.currentType.toString()),s.unreachable();switch(l=this.convertExpression(l,this.currentType,this.currentType.intType,!1,e.operand),this.currentType.kind){case 0:case 1:case 2:case 3:case 6:case 7:case 8:{l=s.binary(9,l,s.i32(-1));break}case 4:case 9:{l=s.binary(34,l,s.i64(-1,-1));break}case 5:case 10:{l=s.binary(226,l,this.makeNegOne(this.currentType));break}default:this.error(2469,e.range,"~",this.currentType.toString()),l=s.unreachable()}break}case 57:return this.compileTypeof(e,t,n);case 70:return this.error(100,e.range,"Spread operator"),s.unreachable();default:return assert(!1),s.unreachable()}if(!a)return l;let o=this.resolver,u=o.lookupExpression(e.operand,this.currentFlow);return u?this.makeAssignment(u,l,this.currentType,e.operand,o.currentThisExpression,o.currentElementExpression,t!=p.void):s.unreachable()}compileTypeof(e,t,n){let s=e.operand,a=0,l=this.program.stringInstance,o;if(s.kind==20)o="object";else{let u=this.resolver.lookupExpression(s,this.currentFlow,p.auto,1);if(u)switch(u.kind){case 6:case 12:case 2:{o="object";break}case 4:{o="function";break}default:{a=this.compileExpression(s,p.auto);let c=this.currentType;if(a=this.convertExpression(a,c,p.void,!0,s),c.isReference)if(c.getSignature())o="function";else{let _=c.getClass();_?_.prototype==l.prototype?o="string":o="object":o="externref"}else c==p.bool?o="boolean":c.isNumericValue?o="number":o="undefined";break}}else{switch(s.kind){case 8:break;case 23:case 14:if(s=(s.kind==23,s.expression),!this.resolver.resolveExpression(s,this.currentFlow,p.auto,0))return this.currentType=l.type,this.module.unreachable();default:a=this.compileExpression(s,p.auto),a=this.convertExpression(a,this.currentType,p.void,!0,s)}o="undefined"}}return this.currentType=l.type,a?this.module.block(null,[a,this.ensureStaticString(o)],this.options.sizeTypeRef):this.ensureStaticString(o)}ensureSmallIntegerWrap(e,t){let n=this.module,s=this.currentFlow;switch(t.kind){case 0:{s.canOverflow(e,t)&&(e=n.binary(16,e,n.i32(0)));break}case 1:{s.canOverflow(e,t)&&(e=this.options.hasFeature(1)?n.unary(47,e):n.binary(11,n.binary(10,e,n.i32(24)),n.i32(24)));break}case 2:{s.canOverflow(e,t)&&(e=this.options.hasFeature(1)?n.unary(48,e):n.binary(11,n.binary(10,e,n.i32(16)),n.i32(16)));break}case 6:{s.canOverflow(e,t)&&(e=n.binary(7,e,n.i32(255)));break}case 7:{s.canOverflow(e,t)&&(e=n.binary(7,e,n.i32(65535)));break}}return e}addDebugLocation(e,t){let n=this.currentFlow.targetFunction,s=t.source;s.debugInfoIndex<0&&(s.debugInfoIndex=this.module.addDebugInfoFile(s.normalizedPath)),n.debugLocations.set(e,t)}checkSignatureSupported(e,t){let n=!0,s=t.explicitThisType;s&&(this.program.checkTypeSupported(assert(e.thisType),s)||(n=!1));let a=e.parameterTypes,l=t.parameters;for(let o=0,u=a.length;o<u;++o){let c;l.length>o?c=l[o]:c=t,this.program.checkTypeSupported(a[o],c)||(n=!1)}return this.program.checkTypeSupported(e.returnType,t.returnType)||(n=!1),n}isInlineStructType(e){let t=e.classReference;return t!=null&&t.hasDecorator(4096)}resultRefOf(e){return this.isInlineStructType(e)?B.None:e.toRef()}evaluateCondition(e){let t=ce(e);if(t==B.Unreachable)return 0;assert(t==B.I32);let s=this.module.runExpression(e,0);return s?se(s)?1:2:0}expandSroaArgument(e,t,n,s){if(!Te.isInlineStructRef(t))return unchecked(n[s]=this.compileExpression(e,t,1)),1;let a=Te.fieldCountOf(t),l=e.kind==8?this.currentFlow.lookupLocal(e.text):null;if(l==null||l.fieldLocals==null){this.error(100,e.range,"passing this expression as an @inline struct argument (only a local value can be passed: a value has no address, so there is nothing to hand over)");for(let _=0;_<a;++_)unchecked(n[s+_]=this.module.unreachable());return a}let o=assert(l.fieldLocals),u=assert(t.classReference),c=assert(u.members),f=0;for(let _=Map_values(c),d=0,g=_.length;d<g;++d){let y=unchecked(_[d]);if(y.kind!=10)continue;let E=y.instance;if(E==null||!E.isField)continue;let A=te(o,E.name);A!=null&&(unchecked(n[s+f]=this.module.local_get(A.index,A.type.toRef())),++f)}return f}resolveSroaReceiver(e){if(e.kind!=8)return null;let t=this.currentFlow.lookupLocal(e.text);return t!=null&&t.fieldLocals!=null?t:null}static{this.SRET_STACK_SIZE=4096}markOperandForRooting(){this.rootNextOperand=!0}ensureSretStack(){if(this.sretStackGlobal!=null)return this.sretStackBase;let e=this.module,t=this.addAlignedMemorySegment(new Uint8Array(i.SRET_STACK_SIZE),16),n=i64_low(t.offset);this.sretStackBase=n,this.sretStackLimit=n+i.SRET_STACK_SIZE;let s="~sretStackPointer";return this.sretStackGlobal=s,e.addGlobal(s,B.I32,!0,e.i32(n)),n}sretSizeOf(e){return assert(e.classReference).nextMemoryOffset+15&-16}makeSretAddress(e,t){return this.module.binary(0,this.module.i32(e),this.module.local_get(t.index,B.I32))}makeSretFieldLoad(e,t){return this.module.load(t.type.byteSize,!1,e,t.type.toRef(),t.memoryOffset)}makeSretGuard(e,t,n){let s=this.module,a=s.binary(0,s.local_get(e.index,B.I32),s.i32(t));return s.if(s.binary(21,a,s.i32(this.sretStackLimit)),this.makeStaticAbort(this.ensureStaticString("sret stack overflow: the static call-temp region is 4 KB; see --sretStackSize"),n))}emitExportByValPrologue(e,t){let n=this.module,s=e.signature,a=e.flow,l=s.parameterTypes;for(let o=0,u=l.length;o<u;++o){if(!s.isExportByValParam(o))continue;let c=e.getParameterName(o),f=a.lookupLocal(c+"$byval"),_=a.lookupLocal(c);if(f==null||_==null||_.fieldLocals==null)continue;let d=assert(_.fieldLocals),g=assert(this.recordFieldsOf(unchecked(l[o])));for(let y=0,E=g.length;y<E;++y){let A=unchecked(g[y]),k=te(d,A.name);k&&t.push(n.local_set(k.index,n.load(A.type.byteSize,!1,n.local_get(f.index,B.I32),A.type.toRef(),A.memoryOffset),!1))}}}makeSretAddressPlus(e,t,n){let s=this.module;return s.binary(0,this.makeSretAddress(e,t),s.i32(n))}makeExternalTempArgument(e,t,n,s,a){let l=this.module,o=e.kind==8?this.currentFlow.lookupLocal(e.text):null,u=o!=null?o.fieldLocals:null,c=this.recordFieldsOf(t);if(c==null)return this.error(100,e.range,"passing this expression to a by-value parameter (the temp is filled field by field, which needs a record type)"),l.unreachable();let f=new Array;if(u!=null)for(let _=0,d=c.length;_<d;++_){let g=unchecked(c[_]),y=te(u,g.name);y&&f.push(l.store(g.type.byteSize,this.makeSretAddressPlus(n,s,a),l.local_get(y.index,y.type.toRef()),g.type.toRef(),g.memoryOffset))}else{if(Te.isInlineStructRef(t))return this.error(100,e.range,"passing this expression as an @inline struct to a by-value parameter (the temp is filled by copying a local's fields; a value has no address, so only a local can be passed)"),l.unreachable();{let _=this.options.usizeType,d=this.compileExpression(e,t,1),g=this.currentFlow.getTempLocal(_),y=_.toRef();f.push(l.local_set(g.index,d,!1));for(let E=0,A=c.length;E<A;++E){let k=unchecked(c[E]);f.push(l.store(k.type.byteSize,this.makeSretAddressPlus(n,s,a),l.load(k.type.byteSize,!1,l.local_get(g.index,y),k.type.toRef(),k.memoryOffset),k.type.toRef(),k.memoryOffset))}}}return f.push(this.makeSretAddressPlus(n,s,a)),l.block(null,f,B.I32)}wrapExternalTempCall(e,t,n,s,a){let l=this.module,o=assert(this.sretStackGlobal),u=l.global_set(o,l.local_get(e.index,B.I32)),c=[l.local_set(e.index,l.global_get(o,B.I32),!1),l.global_set(o,l.binary(0,l.local_get(e.index,B.I32),l.i32(t))),this.makeSretGuard(e,t,a)];if(s==p.void)return c.push(n),c.push(u),l.block(null,c);let f=this.currentFlow.getTempLocal(s);return c.push(l.local_set(f.index,n,!1)),c.push(u),c.push(l.local_get(f.index,s.toRef())),l.block(null,c,s.toRef())}wrapSretCall(e,t,n,s){let a=this.module,l=assert(this.sretStackGlobal),o=this.sretSizeOf(n);return a.block(null,[a.local_set(e.index,a.global_get(l,B.I32),!1),a.global_set(l,a.binary(0,a.local_get(e.index,B.I32),a.i32(o))),this.makeSretGuard(e,o,s),t,a.global_set(l,a.local_get(e.index,B.I32))])}makeSretCallBlock(e,t,n,s,a){let l=this.module,o=this.ensureSretStack(),u=assert(this.sretStackGlobal),c=this.sretSizeOf(t),f=this.currentFlow,_=f.getTempLocal(p.u32),d=new Array;d.push(l.local_set(_.index,l.global_get(u,B.I32),!1)),d.push(l.global_set(u,l.binary(0,l.local_get(_.index,B.I32),l.i32(c)))),d.push(this.makeSretGuard(_,c,e)),this.sretDestSlot=l.binary(0,l.i32(o),l.local_get(_.index,B.I32));let g=this.compileCallExpression(e,p.auto,0);if(this.sretDestSlot!=0)return this.sretDestSlot=0,this.currentType=n,l.unreachable();d.push(g);let y=n!=p.void?f.getTempLocal(n):null;if(s!=null)d.push(l.local_set(assert(y).index,this.makeSretFieldLoad(this.makeSretAddress(o,_),s),!1));else if(a!=null){let E=assert(this.inlineStructFieldsOf(t));for(let A=0,k=E.length;A<k;++A){let F=unchecked(E[A]),w=te(a,F.name);w&&d.push(l.local_set(w.index,this.makeSretFieldLoad(this.makeSretAddress(o,_),F),!1))}}return d.push(l.global_set(u,l.local_get(_.index,B.I32))),y!=null?(d.push(l.local_get(y.index,y.type.toRef())),this.currentType=n,l.block(null,d,n.toRef())):(this.currentType=p.void,l.block(null,d))}compileSretReturnStatement(e,t){let n=this.module,s=this.currentFlow,a=assert(e.value),l=assert(this.inlineStructFieldsOf(t));if(a.kind==19&&a.args.length==0){let g=this.module,y=s.sourceFunction.signature.thisType?1:0,E=new Array;for(let A=0,k=l.length;A<k;++A){let F=unchecked(l[A]);this.isSroaFieldType(F.type)&&E.push(g.store(F.type.byteSize,g.local_get(y,B.I32),this.makeZero(F.type),F.type.toRef(),F.memoryOffset))}return E.push(g.return()),s.set(257),this.currentType=t,g.block(null,E)}let u=a.kind==8?s.lookupLocal(a.text):null;if(u==null||u.fieldLocals==null)return this.error(100,a.range,"returning this expression from an @inline struct function (only a local value can be returned: a value has no address, so there is nowhere to write it)"),s.set(257),this.currentType=t,n.unreachable();let c=s.sourceFunction.signature;assert(c.hasHiddenDestParam);let f=c.thisType?1:0,_=assert(u.fieldLocals),d=new Array;for(let g=0,y=l.length;g<y;++g){let E=unchecked(l[g]),A=te(_,E.name);A&&d.push(n.store(E.type.byteSize,n.local_get(f,B.I32),n.local_get(A.index,A.type.toRef()),E.type.toRef(),E.memoryOffset))}return d.push(n.return()),s.set(257),this.currentType=t,n.block(null,d)}compileSroaLocal(e,t,n,s,a,l){let o=this.module,u=e.name.text,c=new Map,f=!1;for(let g=0,y=n.length;g<y;++g){let E=unchecked(n[g]);if(!this.isSroaFieldType(E.type)){let k=assert(E.prototype.fieldDeclaration),F=k.type;this.error(100,F?F.range:k.name.range,E.type.kind==14?"a T[N] field in an @inline struct (SROA keeps one WASM local per field; array fields are the deep-SROA phase)":"a GC-reference field in an @inline struct (a bare local.set skips the write barrier; deferred)"),f=!0;continue}let A=a.targetFunction.addLocal(E.type,u+"$"+E.name,e);c.set(E.name,A)}if(f)return!0;let _=new Ae(u,-1,t,a.targetFunction,e);_.fieldLocals=c;let d=a.scopedLocals;if(d||(a.scopedLocals=d=new Map),d.has(u))return this.error(2300,e.name.range,u),!0;if(d.set(u,_),e.is(8)&&a.setLocalFlag(_.index,1),!s)return!0;if(s.kind==19){let g=s.args;if(g.length>n.length)return this.error(2322,s.range,"too many arguments",t.toString()),!0;for(let y=0,E=g.length;y<E;++y){let A=unchecked(n[y]),k=assert(c.get(A.name)),F=this.compileExpression(g[y],A.type,1);l.push(o.local_set(k.index,F,!1))}return!0}if(s!=null&&s.kind==11){let g=this.resolver.resolveExpression(s,this.currentFlow);if(g!=null&&this.isInlineStructType(g))return l.push(this.makeSretCallBlock(s,g,p.void,null,c)),!0}if(s.kind==8){let g=a.lookupLocal(s.text);if(g&&g.fieldLocals){for(let y=0,E=n.length;y<E;++y){let A=unchecked(n[y]).name,k=assert(assert(g.fieldLocals).get(A)),F=assert(c.get(A));l.push(o.local_set(F.index,o.local_get(k.index,k.type.toRef()),!1))}return!0}}return this.error(100,s.range,"initialising an @inline struct local from this expression (only `new P(\u2026)`, another @inline struct value, or no initialiser)"),!0}inlineStructFieldsOf(e){let t=e.classReference;return t==null||!t.hasDecorator(4096)?null:this.recordFieldsOf(e)}recordFieldsOf(e){let t=e.classReference;if(t==null)return null;let n=new Array,s=t.members;if(s)for(let a=Map_values(s),l=0,o=a.length;l<o;++l){let u=unchecked(a[l]);if(u.kind!=10)continue;let c=u.instance;!c||!c.isField||n.push(c)}return n}isSroaFieldType(e){return e.kind==14?!1:!e.isManaged}makeZero(e){let t=this.module;switch(e.kind){default:assert(!1);case 0:case 1:case 2:case 3:case 6:case 7:case 8:return t.i32(0);case 5:case 10:if(e.size!=64)return t.i32(0);case 4:case 9:return t.i64(0);case 11:return t.f32(0);case 12:return t.f64(0);case 13:return t.v128(qp);case 16:case 15:case 17:case 18:case 19:case 20:case 22:case 23:case 24:case 25:return e.is(512)?t.ref_null(e.toRef()):(assert(!1),t.unreachable());case 21:return e.is(512)?t.ref_null(e.toRef()):t.i31_new(t.i32(0))}}makeOne(e){let t=this.module;switch(e.kind){default:assert(!1);case 0:case 1:case 2:case 3:case 6:case 7:case 8:return t.i32(1);case 5:case 10:if(e.size!=64)return t.i32(1);case 4:case 9:return t.i64(1);case 11:return t.f32(1);case 12:return t.f64(1);case 21:return t.i31_new(t.i32(1))}}makeNegOne(e){let t=this.module;switch(e.kind){default:assert(!1);case 1:case 2:case 3:case 6:case 7:case 8:return t.i32(-1);case 5:case 10:if(e.size!=64)return t.i32(-1);case 4:case 9:return t.i64(-1,-1);case 11:return t.f32(-1);case 12:return t.f64(-1);case 13:return t.v128(Wp);case 21:return t.i31_new(t.i32(-1))}}makeIsTrueish(e,t,n){let s=this.module;switch(t.kind){case 1:case 2:case 6:case 7:e=this.ensureSmallIntegerWrap(e,t);case 0:case 3:case 8:return e;case 4:case 9:return s.binary(41,e,s.i64(0));case 5:case 10:return t.size==64?s.binary(41,e,s.i64(0)):e;case 11:{let a=this.options;return a.shrinkLevelHint>1&&a.hasFeature(4)?s.unary(20,s.unary(20,s.unary(53,s.unary(10,s.unary(8,e))))):s.binary(20,s.binary(1,s.binary(10,s.unary(33,e),s.i32(1)),s.i32(2)),s.i32(4278190078))}case 12:{let a=this.options;return a.shrinkLevelHint>1&&a.hasFeature(4)?s.unary(20,s.unary(20,s.unary(55,s.unary(11,s.unary(9,e))))):s.binary(45,s.binary(26,s.binary(35,s.unary(34,e),s.i64(1)),s.i64(2)),s.i64(4294967294,4292870143))}case 13:return s.unary(67,e);case 16:case 15:case 17:case 18:case 19:case 20:case 21:case 22:case 23:case 24:case 25:return s.unary(20,s.ref_is_null(e));case 26:default:return this.error(1345,n.range,t.toString()),s.i32(0)}}makeToString(e,t,n){let s=this.module,a=this.program.stringInstance.type;if(t==a)return e;let l=t.getClassOrWrapper(this.program);if(l){let o=l.getMethod("toString");if(o){let u=o.signature;if(!this.checkCallSignature(u,0,!0,n))return this.currentType=a,s.unreachable();if(!t.isStrictlyAssignableTo(assert(u.thisType))){if(!t.is(512))return this.errorRelated(2685,n.range,o.identifierAndSignatureRange),this.currentType=a,s.unreachable();let f=this.currentFlow.getTempLocal(t);return s.if(s.local_tee(f.index,e,t.isManaged),this.makeToString(s.local_get(f.index,t.toRef()),t.nonNullableType,n),this.ensureStaticString("null"))}let c=u.returnType;return c.isStrictlyAssignableTo(a)?this.makeCallDirect(o,[e],n):(this.errorRelated(2322,n.range,o.identifierAndSignatureRange,c.toString(),a.toString()),this.currentType=a,s.unreachable())}}return this.error(2322,n.range,t.toString(),a.toString()),this.currentType=a,s.unreachable()}makeAllocation(e){let t=this.program;assert(e.program==t);let n=this.module,s=this.options;if(this.currentType=e.type,e.hasDecorator(16)){let a=t.allocInstance;return this.compileFunction(a),n.call(a.internalName,[s.isWasm64?n.i64(e.nextMemoryOffset):n.i32(e.nextMemoryOffset)],s.sizeTypeRef)}else{let a=t.newInstance;return this.compileFunction(a),n.call(a.internalName,[s.isWasm64?n.i64(e.nextMemoryOffset):n.i32(e.nextMemoryOffset),n.i32(e.id)],s.sizeTypeRef)}}makeConditionalAllocation(e,t){let n=this.module,a=e.type.toRef();return assert(a==this.options.sizeTypeRef),n.if(n.unary(a==B.I64?21:20,n.local_get(t,a)),n.local_set(t,this.makeAllocation(e),e.type.isManaged))}makeFieldInitializationInConstructor(e,t=[]){let n=e.members;if(!n)return t;let s=this.module,a=this.currentFlow,l=a.isInline,o=l?a.lookupLocal(N.this_).index:0,u=this.options.sizeTypeRef,c=null;for(let f=Map_values(n),_=0,d=f.length;_<d;++_){let g=unchecked(f[_]);if(g.kind!=10)continue;let y=g.instance;if(!y||!y.isField||y.getBoundClassOrInterface()!=e)continue;if(this.isInlineStructType(y.type)){let P=y.initializerNode,M=e.hasDecorator(16)||e.hasDecorator(2048);if(P!=null&&M){if(P.kind==18&&P.isLiteralKind(6)&&P.names.length==0)continue;this.error(100,P.range,"an initializer on an @inline struct field (the value is stored inline and has no address to copy into; the allocation is already zero, so `= {}` is allowed -- assign the field's own fields after construction)")}continue}assert(!y.isAny(8));let E=y.prototype,A=E.parameterIndex;if(A<0){c||(c=new Array),c.push(y);continue}let F=y.type.toRef();assert(!E.initializerNode);let w=assert(y.setterInstance),R=this.makeCallDirect(w,[s.local_get(o,u),s.local_get(l?a.lookupLocal(y.name).index:1+A,F)],w.identifierNode,!0);this.currentType!=p.void&&(R=s.drop(R)),t.push(R)}if(c)for(let f=0,_=c.length;f<_;++f){let d=unchecked(c[f]),g=d.type,y=d.prototype,E=y.initializerNode;assert(y.parameterIndex<0);let A=assert(d.setterInstance),k=this.makeCallDirect(A,[s.local_get(o,u),E?this.compileExpression(E,g,1):this.makeZero(g)],d.identifierNode,!0);this.currentType!=p.void&&(k=s.drop(k)),t.push(k)}return this.currentType=p.void,t}makeAbort(e,t){let n=this.program,s=n.abortInstance;if(!s||!this.compileFunction(s))return this.module.unreachable();let a=n.stringInstance,l;return e?l=this.compileExpression(e,a.type,1):l=this.makeZero(a.type),this.makeStaticAbort(l,t)}makeStaticAbort(e,t){let n=this.program,s=this.module,a=n.abortInstance;if(!a||!this.compileFunction(a))return s.unreachable();let l=this.ensureStaticString(t.range.source.normalizedPath),o=t.range,u=o.source;return s.block(null,[s.call(a.internalName,[e,l,s.i32(u.lineAt(o.start)),s.i32(u.columnAt())],B.None),s.unreachable()])}makeRuntimeNonNullCheck(e,t,n){let s=this.module,a=this.currentFlow,o=a.getTempLocal(t).index;a.canOverflow(e,t)||a.setLocalFlag(o,2),a.setLocalFlag(o,4);let u=this.makeStaticAbort(this.ensureStaticString("Unexpected 'null' (not assigned or failed cast)"),n);if(t.isExternalReference){let c=s.local_get(o,t.toRef());this.options.hasFeature(1024)&&(c=s.ref_as_nonnull(c)),e=s.if(s.ref_is_null(s.local_tee(o,e,!1)),u,c)}else e=s.if(s.local_tee(o,e,t.isManaged),s.local_get(o,t.toRef()),u);return this.currentType=t.nonNullableType,e}makeRuntimeDowncastCheck(e,t,n,s){assert(n.isReference&&n.nonNullableType.isAssignableTo(t));let a=this.module,l=this.currentFlow,u=l.getTempLocal(t).index,c=this.makeStaticAbort(this.ensureStaticString("invalid downcast"),s);return!n.isNullableReference||l.isNonnull(e,t)?e=a.if(a.call(this.prepareInstanceOf(n.classReference),[a.local_tee(u,e,t.isManaged)],B.I32),a.local_get(u,t.toRef()),c):e=a.if(a.unary(20,a.local_tee(u,e,t.isManaged)),a.usize(0),a.if(a.call(this.prepareInstanceOf(n.classReference),[a.local_get(u,t.toRef())],B.I32),a.local_get(u,t.toRef()),c)),this.currentType=n,e}};function wx(i,r){Ei=r.range.source.simplePath,Pr=Ke(i.name,i.parent,i.is(262144),!0);let e=r.overriddenModuleName;if(e&&(Ei=e),!i.hasDecorator(128))return;let t=i.program,n=assert($t(10,r.decorators)),s=n.args;if(s&&s.length>0){let a=s[0];a.isLiteralKind(2)?(Pr=a.value,s.length>=2&&(a=s[1],a.isLiteralKind(2)?(Ei=Pr,Pr=a.value,s.length>2&&t.error(2554,n.range,"2",s.length.toString())):t.error(1141,a.range))):t.error(1141,a.range)}else t.error(2555,n.range,"1","0")}var bn=class i extends pn{constructor(e,t,n=!1){super(e,n);this.sb=[];this.indentLevel=0;this.seenObjectTypes=new Map;this.deferredTypings=new Array;this.esm=t}static build(e,t=!0){return new i(e,t).build()}visitGlobal(e,t){let n=this.sb,s=t.type,a=this.toTypeScriptType(s,1);W(n,this.indentLevel),n.push("/** "),n.push(t.internalName),n.push(` */
269
+ `),W(n,this.indentLevel),n.push("export "),this.esm&&n.push("declare "),n.push("const "),n.push(e),n.push(`: {
270
+ `),W(n,++this.indentLevel),n.push("/** @type `"),n.push(s.toString()),n.push("` */\n"),W(n,this.indentLevel),n.push("get value(): "),n.push(a),t.is(8)?n.push(`
271
+ `):(n.push(`;
272
+ `),W(n,this.indentLevel),n.push("set value(value: "),n.push(a),n.push(`);
273
+ `)),W(n,--this.indentLevel),n.push(`};
274
+ `)}visitEnum(e,t){let n=this.sb;W(n,this.indentLevel),n.push("/** "),n.push(t.internalName),n.push(` */
275
+ `),W(n,this.indentLevel++),n.push("export "),this.esm&&n.push("declare "),n.push("enum "),n.push(e),n.push(` {
276
+ `);let s=t.members;if(s)for(let a=Map_keys(s),l=0,o=a.length;l<o;++l){let u=unchecked(a[l]);assert(s.get(u)).kind==3&&(W(n,this.indentLevel),n.push("/** @type `i32` */\n"),W(n,this.indentLevel),n.push(u),n.push(`,
277
+ `))}W(n,--this.indentLevel),n.push(`}
278
+ `)}visitFunction(e,t){let n=this.sb,s=t.signature;W(n,this.indentLevel),n.push(`/**
279
+ `),W(n,this.indentLevel),n.push(" * "),n.push(t.internalName),n.push(`
280
+ `);let a=s.parameterTypes,l=a.length;for(let c=0;c<l;++c)W(n,this.indentLevel),n.push(" * @param "),n.push(t.getParameterName(c)),n.push(" `"),n.push(a[c].toString()),n.push("`\n");let o=s.returnType;o!=p.void&&(W(n,this.indentLevel),n.push(" * @returns `"),n.push(o.toString()),n.push("`\n")),W(n,this.indentLevel),n.push(` */
281
+ `),W(n,this.indentLevel),n.push("export "),this.esm&&n.push("declare "),n.push("function "),n.push(e),n.push("(");let u=s.requiredParameters;for(let c=0;c<l;++c)c&&n.push(", "),n.push(t.getParameterName(c)),c>=u&&n.push("?"),n.push(": "),n.push(this.toTypeScriptType(a[c],0));n.push("): "),n.push(this.toTypeScriptType(o,1)),n.push(`;
282
+ `)}visitClass(e,t){}visitInterface(e,t){}visitNamespace(e,t){}visitAlias(e,t,n){}build(){let e=this.sb;this.esm||(e.push(`declare namespace __AdaptedExports {
283
+ `),++this.indentLevel),this.program.options.exportMemory&&(W(e,this.indentLevel),e.push(`/** Exported memory */
284
+ `),W(e,this.indentLevel),e.push(`export ${this.esm?"declare ":""}const memory: WebAssembly.Memory;
285
+ `)),this.program.options.exportTable&&(W(e,this.indentLevel),e.push(`/** Exported table */
286
+ `),W(e,this.indentLevel),e.push(`export ${this.esm?"declare ":""}const table: WebAssembly.Table;
287
+ `)),this.program.options.exportRuntime&&(W(e,this.indentLevel),e.push(`// Exported runtime interface
288
+ `),W(e,this.indentLevel),e.push(`export ${this.esm?"declare ":""}function __new(size: number, id: number): number;
289
+ `),W(e,this.indentLevel),e.push(`export ${this.esm?"declare ":""}function __pin(ptr: number): number;
290
+ `),W(e,this.indentLevel),e.push(`export ${this.esm?"declare ":""}function __unpin(ptr: number): void;
291
+ `),W(e,this.indentLevel),e.push(`export ${this.esm?"declare ":""}function __collect(): void;
292
+ `),W(e,this.indentLevel),e.push(`export ${this.esm?"declare ":""}const __rtti_base: number;
293
+ `)),this.walk(),this.esm||(--this.indentLevel,e.push(`}
294
+ `));let t=this.deferredTypings;for(let n=0,s=t.length;n<s;++n)e.push(t[n]);if(!this.esm){e.push(`/** Instantiates the compiled WebAssembly module with the given imports. */
295
+ `),e.push(`export declare function instantiate(module: WebAssembly.Module, imports: {
296
+ `);let n=this.program.moduleImports;for(let s=Map_keys(n),a=0,l=s.length;a<l;++a){let o=s[a];e.push(" "),$e(o)?e.push(o):(e.push('"'),e.push(Re(o,34)),e.push('"')),e.push(`: unknown,
297
+ `)}e.push(`}): Promise<typeof __AdaptedExports>;
298
+ `)}return e.join("")}isPlainObject(e){if(e.base&&!e.prototype.implicitlyExtendsObject)return!1;let t=e.members;if(t)for(let n=Map_values(t),s=0,a=n.length;s<a;++s){let l=n[s];if(l.isAny(1536)||l.is(524288)&&l.declaration.range!=Ee.native.range)return!1}return!0}toTypeScriptType(e,t){if(e.isInternalReference){let n=new Array,s=assert(e.getClassOrWrapper(this.program));if(s.extendsPrototype(this.program.arrayBufferInstance.prototype))n.push("ArrayBuffer");else if(s.extendsPrototype(this.program.stringInstance.prototype))n.push("string");else if(s.extendsPrototype(this.program.arrayPrototype)){let a=s.getArrayValueType();n.push("Array<"),n.push(this.toTypeScriptType(a,t)),n.push(">")}else if(s.extendsPrototype(this.program.staticArrayPrototype)){let a=s.getArrayValueType();n.push("ArrayLike<"),n.push(this.toTypeScriptType(a,t)),n.push(">")}else if(s.extendsPrototype(this.program.arrayBufferViewInstance.prototype)){let a=s.getArrayValueType();a==p.i8?n.push("Int8Array"):a==p.u8?s.extendsPrototype(this.program.uint8ClampedArrayPrototype)?n.push("Uint8ClampedArray"):n.push("Uint8Array"):a==p.i16?n.push("Int16Array"):a==p.u16?n.push("Uint16Array"):a==p.i32?n.push("Int32Array"):a==p.u32?n.push("Uint32Array"):a==p.i64?n.push("BigInt64Array"):a==p.u64?n.push("BigUint64Array"):a==p.f32?n.push("Float32Array"):a==p.f64?n.push("Float64Array"):n.push("unknown")}else{let a=this.seenObjectTypes,l;if(a.has(s))l=assert(a.get(s)),n.push(l),this.isPlainObject(s)&&n.push(t==1?"<never>":"<undefined>");else{let o=this.isPlainObject(s);l=`${o?"__Record":"__Internref"}${s.id}`,n.push(l),a.set(s,l),o?(n.push(t==1?"<never>":"<undefined>"),this.deferredTypings.push(this.makeRecordType(s,t))):this.deferredTypings.push(this.makeInternrefType(s))}}return e.is(512)&&n.push(" | null"),n.join("")}else{if(e==p.bool)return"boolean";if(e==p.void)return"void";if(e.isNumericValue)return e.isLongIntegerValue?"bigint":"number"}return"unknown"}makeRecordType(e,t){let n=new Array,s=e.members;if(n.push("/** "),n.push(e.internalName),n.push(` */
299
+ declare interface __Record`),n.push(e.id.toString()),n.push(`<TOmittable> {
300
+ `),s)for(let a=Map_keys(s),l=0,o=a.length;l<o;++l){let u=a[l],c=assert(s.get(u));if(c.kind!=10)continue;let f=c.instance;!f||!f.isField||(n.push(" /** @type `"),n.push(f.type.toString()),n.push("` */\n "),n.push(f.name),n.push(": "),n.push(this.toTypeScriptType(f.type,t)),this.fieldAcceptsUndefined(f.type)&&n.push(" | TOmittable"),n.push(`;
301
+ `))}return n.push(`}
302
+ `),n.join("")}fieldAcceptsUndefined(e){return e.isInternalReference?e.is(512):!0}makeInternrefType(e){let t=new Array;t.push("/** "),t.push(e.internalName),t.push(` */
303
+ `),t.push("declare class __Internref"),t.push(e.id.toString()),t.push(` extends Number {
304
+ `);let n=e;do t.push(" private __nominal"),t.push(n.id.toString()),t.push(`: symbol;
305
+ `),n=n.base;while(n);return t.push(`}
306
+ `),t.join("")}};function ut(i,r,e=0){if(i==null)return null;switch(i.kind){case 18:{switch(i.literalKind){case 1:return Br("i32",i);case 0:return Br("f64",i);case 2:case 3:return Br("string",i)}return null}case 27:case 15:return Br("bool",i);case 22:return ut(i.expression,r,e);case 19:{let t=i;return h.createNamedType(t.typeName,t.typeArguments,!1,t.range)}case 9:{let t=i;return t.assertionKind!=2&&t.toType!=null?t.toType:ut(t.expression,r,e)}case 11:{let t=i,n=t.expression;if(n.kind==8&&n.text=="changetype"){let s=t.typeArguments;if(s!=null&&s.length==1)return s[0]}return null}case 8:{if(r==null||e>8)return null;let t=i.text,n=te(r,t);return n??null}case 30:{let t=i;switch(t.operator){case 96:return Br("bool",i);case 83:case 82:case 97:{let n=ut(t.operand,r,e+1);return ca(n)?n:null}}return null}case 29:{let t=ut(i.operand,r,e+1);return ca(t)?t:null}case 10:{let t=i;switch(t.operator){case 73:case 74:case 75:case 76:case 77:case 78:case 79:case 80:return Br("bool",i);case 90:case 91:case 92:{let n=ut(t.left,r,e+1);return ca(n)?n:null}case 98:case 99:{let n=ut(t.left,r,e+1),s=ut(t.right,r,e+1);return xn(n,"bool")&&xn(s,"bool")?Br("bool",i):null}case 82:case 83:case 85:case 86:case 87:case 93:case 94:case 95:case 84:{let n=ut(t.left,r,e+1),s=ut(t.right,r,e+1);return!ca(n)||!ca(s)?null:xn(n,"f64")||xn(s,"f64")?!xn(n,"f32")&&!xn(s,"f32")?Br("f64",i):null:lk(n,s)?n:null}}return null}}return null}function Br(i,r){let e=h.createSimpleTypeName(i,r.range);return h.createNamedType(e,null,!1,r.range)}function ca(i){if(i==null||i.kind!=1)return!1;let e=i.name.identifier.text;return e=="i8"||e=="i16"||e=="i32"||e=="i64"||e=="u8"||e=="u16"||e=="u32"||e=="u64"||e=="isize"||e=="usize"||e=="f32"||e=="f64"}function y_(i){let r=i.typeArguments;return r!=null&&r.length>0}function xn(i,r){if(i==null||i.kind!=1)return!1;let e=i;return e.name.identifier.text==r&&!y_(e)}function lk(i,r){if(i==null||r==null||i.kind!=1||r.kind!=1)return!1;let e=i,t=r;return y_(e)||y_(t)?!1:e.name.identifier.text==t.name.identifier.text}var fa="$closureEnv",cu="$closureEnvIn",pu="$init$",Rx="$Env",ok="__closureInit",En="$this",pa="$parent",uk="$env",Cx="$awaited";function ck(i){let r=i.length;if(r==0)return!1;if(ou(i,fa)&&(r==fa.length||i.charCodeAt(fa.length)==36)||ou(i,cu)||i==En||i==pa||i==uk||ou(i,pu))return!0;if(ou(i,Cx)){let e=Cx.length;if(e>=r)return!1;for(let t=e;t<r;++t){let n=i.charCodeAt(t);if(n<48||n>57)return!1}return!0}return!1}function ou(i,r){let e=r.length;if(i.length<e)return!1;for(let t=0;t<e;++t)if(i.charCodeAt(t)!=r.charCodeAt(t))return!1;return!0}var du=class{constructor(r,e,t,n,s,a,l){this.name=r;this.kind=e;this.envClass=t;this.ownEnv=n;this.receivesEnv=s;this.parentClass=a;this.needed=l}},ha=class{constructor(){this.analyses=null}afterParse(r){let e=this.program.sources;this.analyses=null;let t=!1,n=new b_;for(let s=0,a=e.length;s<a;++s){let l=e[s];l.isLibrary||(this.collectStatementList(l.statements,r)&&(t=!0),n.visitStatements(l.statements))}if(n.sawAsync&&(t=!0),!(t&&n.refuse(r)))for(let s=0,a=e.length;s<a;++s){let l=e[s];l.isLibrary||this.lowerStatementList(l,l.statements,r)}}dumpEnvAnalysis(){let r=new Array,e=this.analyses;if(e==null)return r;for(let t of e.values()){let n=t.allInfos;for(let s=0,a=n.length;s<a;++s)r.push(t.describe(n[s],s))}return r}recordAnalysis(r,e){let t=this.analyses;t==null&&(t=new Map,this.analyses=t),t.set(r,e)}collectStatementList(r,e){let t=!1;for(let n=0,s=r.length;n<s;++n){let a=r[n];switch(a.kind){case 59:{let l=a;if(l.body==null)break;let o=new da(this,e,l);o.run(),this.recordAnalysis(l,o),o.hasCaptures()&&!o.refused&&(t=!0);break}case 63:{this.collectStatementList(a.members,e)&&(t=!0);break}case 55:{let l=a.name.text,o=a.members;for(let u=0,c=o.length;u<c;++u){if(o[u].kind!=62)continue;let f=o[u];if(f.body==null||f.is(32))continue;let _=new da(this,e,f,_u(l,f.range),a);_.run(),this.recordAnalysis(f,_),_.hasCaptures()&&!_.refused&&(t=!0)}break}case 51:{let l=a.declarations;for(let o=0,u=l.length;o<u;++o){let c=l[o].initializer;if(c==null||c.kind!=16)continue;let f=c;if(f.declaration.body==null)continue;let _=new da(this,e,f.declaration);_.run(),this.recordAnalysis(f.declaration,_),_.hasCaptures()&&!_.refused&&_.refuse(f.declaration.range,"a capture from a top-level function expression (closures lowering)")}break}default:break}}return t}lowerStatementList(r,e,t){let n=new Array,s=!1;for(let a=0,l=e.length;a<l;++a){let o=e[a];switch(o.kind){case 59:{let u=o;if(u.body==null){n.push(o);break}let c=assert(assert(this.analyses).get(u));if(!c.hasCaptures()){n.push(o);break}if(c.refused){n.push(o);break}let f=c.makeEnvClasses();for(let _=0,d=f.length;_<d;++_)n.push(f[_]);c.rewrite(),n.push(o),s=!0;break}case 63:{this.lowerStatementList(r,o.members,t),n.push(o);break}case 55:{let u=o,c=this.lowerMethods(u,t);for(let f=0,_=c.length;f<_;++f)n.push(c[f]);c.length>0&&(s=!0),n.push(o);break}case 51:{n.push(o);break}default:{n.push(o);break}}}if(s){e.length=0;for(let a=0,l=n.length;a<l;++a)e.push(n[a])}}lowerMethods(r,e){let t=new Array,n=r.members;for(let s=0,a=n.length;s<a;++s){let l=n[s];if(l.kind!=62)continue;let o=l;if(o.body==null||o.is(32))continue;let u=assert(assert(this.analyses).get(o));if(!u.hasCaptures()||u.refused)continue;let c=u.makeEnvClasses();for(let f=0,_=c.length;f<_;++f)t.push(c[f]);u.rewrite()}return t}},g_=class{constructor(r,e){this.name=r;this.range=e}},b_=class{constructor(){this.hits=null;this.sawAsync=!1}check(r,e){if(!ck(r))return;let t=this.hits;if(t==null)t=new Array,this.hits=t;else for(let n=0,s=t.length;n<s;++n)if(t[n].name==r)return;t.push(new g_(r,e))}refuse(r){let e=this.hits;if(e==null)return!1;for(let t=0,n=e.length;t<n;++t)r.error(100,e[t].range,"a user identifier named '"+e[t].name+"' (closures lowering)");return!0}visitStatements(r){for(let e=0,t=r.length;e<t;++e)this.visitStatement(r[e])}visitStatement(r){switch(r.kind){case 34:{this.visitStatements(r.statements);break}case 37:{let e=r;this.visitStatement(e.body),this.visitExpression(e.condition);break}case 42:{this.visitExpression(r.expression);break}case 43:{let e=r,t=e.initializer;t!=null&&this.visitStatement(t);let n=e.condition;n!=null&&this.visitExpression(n);let s=e.incrementor;s!=null&&this.visitExpression(s),this.visitStatement(e.body);break}case 44:{let e=r;this.visitStatement(e.variable),this.visitExpression(e.iterable),this.visitStatement(e.body);break}case 45:{let e=r;this.visitExpression(e.condition),this.visitStatement(e.ifTrue),e.ifFalse!=null&&this.visitStatement(assert(e.ifFalse));break}case 47:{let e=r.value;e!=null&&this.visitExpression(e);break}case 48:{let e=r;this.visitExpression(e.condition);let t=e.cases;for(let n=0,s=t.length;n<s;++n){let a=t[n].label;a!=null&&this.visitExpression(a),this.visitStatements(t[n].statements)}break}case 49:{this.visitExpression(r.value);break}case 50:{let e=r;this.visitStatements(e.bodyStatements);let t=e.catchVariable;t!=null&&this.check(t.text,t.range),e.catchStatements!=null&&this.visitStatements(assert(e.catchStatements)),e.finallyStatements!=null&&this.visitStatements(assert(e.finallyStatements));break}case 51:{let e=r.declarations;for(let t=0,n=e.length;t<n;++t){let s=e[t];this.check(s.name.text,s.name.range),s.initializer!=null&&this.visitExpression(assert(s.initializer))}break}case 53:{let e=r;this.visitExpression(e.condition),this.visitStatement(e.body);break}case 59:case 62:{this.visitFunction(r);break}case 55:{this.visitClass(r);break}case 56:{let e=r;this.check(e.name.text,e.name.range);let t=e.values;for(let n=0,s=t.length;n<s;++n){this.check(t[n].name.text,t[n].name.range);let a=t[n].initializer;a!=null&&this.visitExpression(a)}break}case 63:{let e=r;this.check(e.name.text,e.name.range),this.visitStatements(e.members);break}case 64:{let e=r;this.check(e.name.text,e.name.range);break}default:break}}visitFunction(r){let e=r.name;e.text.length!=0&&this.check(e.text,e.range),r.isAsync&&(this.sawAsync=!0);let t=r.signature.parameters;for(let s=0,a=t.length;s<a;++s){let l=t[s];this.check(l.name.text,l.name.range),l.initializer!=null&&this.visitExpression(assert(l.initializer))}let n=r.body;n!=null&&this.visitStatement(n)}visitClass(r){let e=r.name;e.text.length!=0&&this.check(e.text,e.range);let t=r.members;for(let n=0,s=t.length;n<s;++n){let a=t[n];switch(a.kind){case 58:{let l=a;this.check(l.name.text,l.name.range),l.initializer!=null&&this.visitExpression(assert(l.initializer));break}case 62:{this.visitFunction(a);break}default:break}}}visitExpression(r){switch(r.kind){case 9:{this.visitExpression(r.expression);break}case 10:{let e=r;this.visitExpression(e.left),this.visitExpression(e.right);break}case 11:{let e=r;this.visitExpression(e.expression);let t=e.args;for(let n=0,s=t.length;n<s;++n)this.visitExpression(t[n]);break}case 12:{this.visitClass(r.declaration);break}case 13:{let e=r.expressions;for(let t=0,n=e.length;t<n;++t)this.visitExpression(e[t]);break}case 14:{let e=r;this.visitExpression(e.expression),this.visitExpression(e.elementExpression);break}case 16:{this.visitFunction(r.declaration);break}case 17:{this.visitExpression(r.expression);break}case 18:{let e=r;switch(e.literalKind){case 3:{let t=e.expressions;for(let n=0,s=t.length;n<s;++n)this.visitExpression(t[n]);break}case 5:{let t=e.elementExpressions;for(let n=0,s=t.length;n<s;++n)this.visitExpression(t[n]);break}case 6:{let t=e.values;for(let n=0,s=t.length;n<s;++n)this.visitExpression(t[n]);break}default:break}break}case 19:{let e=r.args;for(let t=0,n=e.length;t<n;++t)this.visitExpression(e[t]);break}case 22:{this.visitExpression(r.expression);break}case 23:{this.visitExpression(r.expression);break}case 24:{let e=r;this.visitExpression(e.condition),this.visitExpression(e.ifThen),this.visitExpression(e.ifElse);break}case 30:{this.visitExpression(r.operand);break}case 29:{this.visitExpression(r.operand);break}case 31:{this.visitExpression(r.operand);break}case 32:{this.visitExpression(r.expression);break}default:break}}};var _a=class{constructor(r,e,t,n,s){this.name=r;this.type=e;this.scope=t;this.declaration=n;this.hasInitializer=s;this.captured=!1;this.hasInitFlag=!1;this.isParam=!1;this.isLoopHeader=!1;this.isLoopHeaderOf=null;this.closureValue=null;this.isConst=!1}},Vt=class{constructor(r,e,t,n){this.kind=r;this.parent=e;this.ownerFunction=t;this.range=n;this.bindings=new Map;this.functionValues=new Map;this.captured=new Array;this.localName=null;this.className=null;this.needsThis=!1;this.isLoopHeader=!1}resolveFunctionValue(r){let e=this;for(;e!=null;){let t=te(e.functionValues,r);if(t)return t;e=e.parent}return null}knownTypes(){let r=new Map,e=this;for(;e!=null;){let t=e.bindings,n=Map_keys(t);for(let s=0,a=n.length;s<a;++s){let l=unchecked(n[s]);if(r.has(l))continue;let u=assert(t.get(l)).type;u!=null&&r.set(l,u)}e=e.parent}return r}resolve(r){let e=this;for(;e!=null;){let t=te(e.bindings,r);if(t)return t;e=e.parent}return null}},x_=class{constructor(r,e,t){this.expression=r;this.arrows=e;this.receiver=t}},E_=class{constructor(r,e){this.declaration=r;this.range=e}},A_=class{constructor(r,e,t){this.identifier=r;this.binding=e;this.write=t}},T_=class{constructor(r,e,t,n,s){this.node=r;this.expression=e;this.isArrow=t;this.isAsync=n;this.parent=s;this.children=new Array;this.directCaptures=null;this.neededScopes=null;this.needed=null;this.displayName="";this.ownEnv=!1;this.bodyParent=null;this.usesThis=!1;this.capturesLocal=!1;this.ownsScope=null}recordCapture(r){let e=this.directCaptures;if(e==null)e=new Array,this.directCaptures=e;else if(e.includes(r))return;e.push(r)}recordNeed(r){let e=this.neededScopes;if(e==null)e=new Array,this.neededScopes=e;else if(e.includes(r))return;e.push(r);let t=this.needed;(t==null||ma(r)>ma(t))&&(this.needed=r)}resetNeeds(){this.neededScopes=null,this.needed=null}};function fu(i){return i.captured.length>0||i.needsThis}function uu(i){let r=i.parent;for(;r!=null;){if(fu(r))return r;r=r.parent}return null}function pk(i){let r=i.ownerFunction.name.text,e=i.kind==0?"$body":"$block";return r+e+":"+ma(i).toString()}function ma(i){let r=0,e=i;for(;e!=null;)++r,e=e.parent;return r}var da=class{constructor(r,e,t,n=null,s=null){this.transform=r;this.parser=e;this.owner=t;this.refs=new Map;this.writes=new Set;this.allRefs=new Array;this.infos=new Map;this.scopes=new Array;this.scopeOfBlock=new Map;this.scopeOfCase=new Map;this.scopeOfLoop=new Map;this.plainBlocks=new Set;this.allInfos=new Array;this.bindingOf=new Map;this.captures=!1;this.refused=!1;this.typeParameters=new Set;this.classTypeParameters=new Set;this.envTypeParameters=new Array;this.thisUses=new Array;this.ownerBodyUsesThis=!1;this.hostCallbackCandidates=new Array;this.ownerNames=new Map;this.classNames=new Set;this.anonymousOwners=0;this.structFunctions=new Set;this.thisRefs=new Map;this.ownerThisType=n??t.signature.explicitThisType;let a=t.typeParameters;if(a)for(let o=0,u=a.length;o<u;++o)this.typeParameters.add(a[o].name.text);if(s!=null){let o=s.typeParameters;if(o)for(let u=0,c=o.length;u<c;++u){let f=o[u].name.text;this.classTypeParameters.add(f),this.envTypeParameters.push(f)}}let l=t.typeParameters;if(l)for(let o=0,u=l.length;o<u;++o){let c=l[o].name.text;this.typeParameters.add(c),this.classTypeParameters.has(c)||this.envTypeParameters.push(c)}}hasCaptures(){return this.captures||this.thisRefs.size>0}refuse(r,e){this.refused||(this.refused=!0,this.parser.error(100,r,e))}isPlainBlock(r){return this.plainBlocks.has(r)}describe(r,e){let t=new Array,n=r.neededScopes;if(n!=null){let l=new Array;for(let o=0,u=n.length;o<u;++o)l.push(n[o]);for(let o=1,u=l.length;o<u;++o){let c=l[o],f=ma(c),_=o-1;for(;_>=0&&ma(l[_])<f;)l[_+1]=l[_],--_;l[_+1]=c}for(let o=0,u=l.length;o<u;++o)t.push(pk(l[o]))}let s=r.needed!=null?"struct":r.usesThis?"receiver":"none",a=r.node.name.text;return a.length==0&&(a=r.displayName),a.length==0&&(a="$anonymous"+e.toString()),new du(a,s,r.needed!=null?r.needed.className:null,r.ownEnv,r.needed!=null,r.bodyParent!=null?r.bodyParent.className:null,t)}attributeThis(){let r=this.thisUses;for(let e=0,t=r.length;e<t;++e){let n=r[e],s=n.arrows[0],a=n.receiver.ownsScope;if(a==null)continue;let l=s.needed;if(l==null){if(!n.receiver.isAsync)continue;s.recordCapture(a),s.recordNeed(a),a.needsThis=!0,this.thisRefs.set(n.expression,a);continue}if(this.ownerThisType==null){this.refuse(n.expression.range,"this in a capturing arrow (closures lowering)");continue}let o;l.ownerFunction===a.ownerFunction?(l.needsThis=!0,o=l):(a.needsThis=!0,o=a),this.thisRefs.set(n.expression,o)}if(this.ownerBodyUsesThis&&this.owner.isAsync&&this.ownerThisType!=null){let e=te(this.infos,this.owner),t=e!=null?e.ownsScope:null;t!=null&&fu(t)&&(t.needsThis=!0)}}ownerPrefix(r){let e=te(this.infos,r);if(e==null)return r.name.text;let t=new Array,n=e;for(;n!=null;)t.push(this.ownerNameOf(n)),n=n.parent;let s="";for(let a=t.length-1;a>=0;--a)s.length!=0&&(s+="$"),s+=t[a];return s}ownerNameOf(r){let e=te(this.ownerNames,r.node);if(e!=null)return e;let t=r.node.name.text;return t.length==0&&(t=r.displayName),t.length==0&&(++this.anonymousOwners,t="$anon"+this.anonymousOwners.toString()),this.ownerNames.set(r.node,t),t}uniqueClassName(r,e){let t=r,n=0;for(;this.classNames.has(t);)++n,t=r+"$"+n.toString();return this.classNames.add(t),t}finalizeNeeds(){let r=this.scopes,e=this.allInfos;for(let t=0,n=e.length;t<n;++t)e[t].ownEnv=!1,e[t].bodyParent=null;for(let t=0,n=r.length;t<n;++t){let s=r[t];if(!fu(s))continue;let a=te(this.infos,s.ownerFunction);a!=null&&(a.ownEnv=!0)}for(let t=e.length-1;t>=0;--t){let n=e[t];n.resetNeeds();let s=n.directCaptures;if(s!=null)for(let o=0,u=s.length;o<u;++o)n.recordNeed(s[o]);let a=n.children;for(let o=0,u=a.length;o<u;++o){let c=a[o].needed;c!=null&&this.isDeliverable(n,c)&&n.recordNeed(c)}let l=n.ownsScope;if(l!=null&&l.captured.length>0){let o=uu(l);o!=null&&(n.bodyParent=o,n.recordNeed(o))}}}run(){let r=this.analyzeFunction(this.owner,null,!1,null,null),e=this.allRefs;for(let s=0,a=e.length;s<a;++s){let l=e[s];l.binding.captured&&(this.refs.set(l.identifier,l.binding),l.write&&this.writes.add(l.identifier))}this.finalizeNeeds(),this.attributeThis(),this.finalizeNeeds();let t=this.hostCallbackCandidates;for(let s=0,a=t.length;s<a;++s){let l=t[s],o=te(this.infos,l.declaration);if(o!=null&&o.needed!=null){this.refuse(l.range,"a closure captured by a host callback (closures lowering)");break}}let n=0;for(let s=0,a=this.scopes.length;s<a;++s){let l=this.scopes[s];if(!fu(l))continue;if(l.kind==1&&!this.isPlainBlock(l)&&!l.isLoopHeader){this.refuse(l.range,"a capture from a switch or try scope (closures lowering)");continue}let o=this.ownerPrefix(l.ownerFunction);l.kind==0?(l.localName=fa,l.className=this.uniqueClassName(o+Rx,l.range)):(++n,l.localName=fa+"$"+n.toString(),l.className=this.uniqueClassName(o+Rx+"$"+n.toString(),l.range))}for(let s=0,a=this.allInfos.length;s<a;++s){let l=this.allInfos[s],o=l.ownsScope;o==null||o.className==null||rl.set(l.node,new ts(0,o.className,!0,!1,l.bodyParent!=null?assert(l.bodyParent).className:null,o.needsThis))}r.needed!=null&&this.refuse(this.owner.range,"a top-level function that captures (closures lowering)")}analyzeFunction(r,e,t,n,s){let a=new T_(r,e,t,r.isAsync,s);this.infos.set(r,a),this.allInfos.push(a),s&&s.children.push(a);let l=new Vt(0,n,r,r.range);a.ownsScope=l,this.scopes.push(l);let o=r.signature.parameters;for(let c=0,f=o.length;c<f;++c){let _=o[c],d=new _a(_.name.text,_.type,l,_,!0);d.isParam=!0,l.bindings.set(d.name,d)}let u=r.body;u!=null&&(u.kind==34?this.walkStatements(u.statements,l,a):this.walkStatement(u,l,a)),a.needed!=null&&e!=null&&this.structFunctions.add(e);for(let c=0,f=a.children.length;c<f;++c){let d=a.children[c].needed;d!=null&&this.isDeliverable(a,d)&&a.recordNeed(d)}return a}isDeliverable(r,e){if(e.ownerFunction===r.node)return!1;let t=r.ownsScope,n=e;for(;n!=null;){if(n===t)return!1;n=n.parent}return!0}walkStatements(r,e,t){for(let n=0,s=r.length;n<s;++n)this.walkStatement(r[n],e,t)}walkStatement(r,e,t){switch(r.kind){case 34:{let n=r,s=new Vt(1,e,t.node,n.range);this.scopeOfBlock.set(n,s),this.plainBlocks.add(s),this.scopes.push(s),this.walkStatements(n.statements,s,t);break}case 51:{let n=r.declarations;for(let s=0,a=n.length;s<a;++s)this.declare(n[s],e,!1,t);break}case 42:{let n=r.expression;if(this.walkExpression(n,e,t,!1),n.kind==16){let s=n,a=s.declaration.name;a.text.length>0&&e.functionValues.set(a.text,s)}break}case 47:{let n=r.value;n!=null&&this.walkExpression(n,e,t,!1);break}case 45:{let n=r;this.walkExpression(n.condition,e,t,!1),this.walkStatement(n.ifTrue,e,t),n.ifFalse!=null&&this.walkStatement(assert(n.ifFalse),e,t);break}case 53:{let n=r;this.walkExpression(n.condition,e,t,!1),this.walkStatement(n.body,e,t);break}case 37:{let n=r;this.walkStatement(n.body,e,t),this.walkExpression(n.condition,e,t,!1);break}case 43:{let n=r,s=new Vt(1,e,t.node,n.range);this.scopeOfLoop.set(n,s),this.scopes.push(s);let a=n.initializer;if(a!=null)if(a.kind==51){let u=a.declarations;for(let c=0,f=u.length;c<f;++c)this.declare(u[c],s,!0,t,n)}else this.walkStatement(a,s,t);let l=n.condition;l!=null&&this.walkExpression(l,s,t,!1);let o=n.incrementor;o!=null&&this.walkExpression(o,s,t,!1),this.walkStatement(n.body,s,t);break}case 44:{let n=r;this.walkExpression(n.iterable,e,t,!1);let s=new Vt(1,e,t.node,n.range);if(this.scopes.push(s),n.variable.kind==51){let a=n.variable.declarations;for(let l=0,o=a.length;l<o;++l)this.declare(a[l],s,!0,t)}else this.walkStatement(n.variable,s,t);this.walkStatement(n.body,s,t);break}case 48:{let n=r;this.walkExpression(n.condition,e,t,!1);let s=n.cases;for(let a=0,l=s.length;a<l;++a){let o=s[a],u=o.label;u!=null&&this.walkExpression(u,e,t,!1);let c=new Vt(1,e,t.node,o.range);this.scopeOfCase.set(o,c),this.scopes.push(c),this.walkStatements(o.statements,c,t)}break}case 50:{let n=r,s=new Vt(1,e,t.node,n.range);if(this.scopes.push(s),this.walkStatements(n.bodyStatements,s,t),n.catchStatements!=null){let a=new Vt(1,e,t.node,n.range);this.scopes.push(a);let l=n.catchVariable;if(l!=null){let o=new _a(l.text,null,a,l,!0);a.bindings.set(o.name,o)}this.walkStatements(assert(n.catchStatements),a,t)}if(n.finallyStatements!=null){let a=new Vt(1,e,t.node,n.range);this.scopes.push(a),this.walkStatements(assert(n.finallyStatements),a,t)}break}case 49:{this.walkExpression(r.value,e,t,!1);break}case 35:case 36:case 38:case 64:break;default:break}}declare(r,e,t,n,s=null){let a=r.initializer;a!=null&&this.walkExpression(a,e,n,!1);let l=new _a(r.name.text,r.type,e,r,a!=null);if(l.isLoopHeader=t,l.isLoopHeaderOf=s,a!=null&&a.kind==16){let o=a;this.structFunctions.has(o)&&(l.closureValue=o);let u=te(this.infos,o.declaration);u!=null&&(u.displayName=r.name.text)}l.isConst=(r.flags&8)!=0,e.bindings.set(l.name,l),this.bindingOf.set(r,l)}walkExpression(r,e,t,n){switch(r.kind){case 8:{let s=r,a=e.resolve(s.text);if(a==null)return;this.allRefs.push(new A_(s,a,n)),a.scope.ownerFunction!==t.node&&this.capture(a,s,t,n);return}case 26:{t.node===this.owner?this.ownerBodyUsesThis=!0:this.markThis(r,t);return}case 25:{t.isArrow&&this.refuse(r.range,"super in a capturing arrow (closures lowering)");return}case 27:case 15:case 20:return;case 16:{let s=r,a=s.declaration;this.analyzeFunction(a,s,a.arrowKind!=0,e,t);return}case 18:{let s=r;switch(s.literalKind){case 3:{let a=s.expressions;for(let l=0,o=a.length;l<o;++l)this.walkExpression(a[l],e,t,!1);break}case 5:{let a=s.elementExpressions;for(let l=0,o=a.length;l<o;++l)this.walkExpression(a[l],e,t,!1);break}case 6:{let a=s.values;for(let l=0,o=a.length;l<o;++l)this.walkExpression(a[l],e,t,!1);break}default:break}return}case 10:{let s=r,a=Px(s.operator);this.walkExpression(s.left,e,t,a),this.walkExpression(s.right,e,t,!1);return}case 30:{let s=r,a=s.operator==88||s.operator==89;this.walkExpression(s.operand,e,t,a);return}case 29:{let s=r,a=s.operator==88||s.operator==89;this.walkExpression(s.operand,e,t,a);return}case 11:{let s=r;this.walkExpression(s.expression,e,t,!1);let a=s.args;for(let l=0,o=a.length;l<o;++l)this.walkExpression(a[l],e,t,!1);if(fk(s))for(let l=0,o=a.length;l<o;++l){let u=this.closureValueIn(a[l],e);if(u!=null){let c=te(this.infos,u.declaration);c!=null&&c.needed!=null?this.refuse(u.range,"a closure captured by a host callback (closures lowering)"):this.hostCallbackCandidates.push(new E_(u.declaration,u.range))}}return}case 13:{let s=r.expressions;for(let a=0,l=s.length;a<l;++a)this.walkExpression(s[a],e,t,a==l-1?n:!1);return}case 14:{let s=r;this.walkExpression(s.expression,e,t,!1),this.walkExpression(s.elementExpression,e,t,!1);return}case 17:{this.walkExpression(r.expression,e,t,!1);return}case 19:{let s=r.args;for(let a=0,l=s.length;a<l;++a)this.walkExpression(s[a],e,t,!1);return}case 22:{this.walkExpression(r.expression,e,t,n);return}case 23:{this.walkExpression(r.expression,e,t,!1);return}case 24:{let s=r;this.walkExpression(s.condition,e,t,!1),this.walkExpression(s.ifThen,e,t,n),this.walkExpression(s.ifElse,e,t,n);return}case 9:{this.walkExpression(r.expression,e,t,n);return}case 31:{this.walkExpression(r.operand,e,t,!1);return}case 32:{this.walkExpression(r.expression,e,t,!1);return}default:return}}capture(r,e,t,n){if(this.captures=!0,r.captured=!0,r.hasInitializer||(r.hasInitFlag=!0),r.isLoopHeader&&(r.isLoopHeaderOf==null?this.refuse(e.range,"a captured for-of or for-in binding (closures lowering)"):r.scope.isLoopHeader=!0),r.type==null){let s=null,a=r.declaration;a.kind==65&&(s=a.initializer);let l=ut(s,r.scope.knownTypes(),0);l!=null?(r.type=l,a.kind==65&&(a.type=l)):this.refuse(e.range,"a captured local without a declared type (closures lowering)")}r.type!=null&&(S_(assert(r.type),this.typeParameters)||S_(assert(r.type),this.classTypeParameters))&&dk(r.scope)&&this.refuse(e.range,"a captured local typed by a type parameter in an async body (closures lowering)"),n&&r.isConst&&this.refuse(e.range,"an assignment to a captured constant (closures lowering)"),t.capturesLocal=!0,t.recordCapture(r.scope),t.recordNeed(r.scope),r.scope.captured.includes(r)||r.scope.captured.push(r)}closureValueIn(r,e){if(r.kind==16)return r;if(r.kind==8){let t=r.text,n=e.resolveFunctionValue(t);if(n!=null)return n;let s=e.resolve(t);if(s!=null&&s.closureValue!=null)return s.closureValue}return null}structClosureIn(r,e){if(r.kind==16){let t=r;return this.structFunctions.has(t)?t:null}if(r.kind==8){let t=r.text,n=e.resolveFunctionValue(t);if(n!=null)return this.structFunctions.has(n)?n:null;let s=e.resolve(t);if(s!=null&&s.closureValue!=null)return s.closureValue}return null}markThis(r,e){let t=new Array,n=e;for(;n!=null&&n.isArrow;)n.usesThis=!0,t.push(n),n=n.parent;t.length>0&&n!=null&&this.thisUses.push(new x_(r,t,n))}makeEnvClasses(){let r=new Array;for(let e=0,t=this.scopes.length;e<t;++e){let n=this.scopes[e];n.className!=null&&r.push(this.makeEnvClass(n))}return r}envTypeArgs(r){let e=this.envTypeParameters,t=e.length;if(t==0)return null;let n=new Array(t);for(let s=0;s<t;++s)n[s]=h.createNamedType(h.createSimpleTypeName(e[s],r),null,!1,r);return n}makeEnvClass(r){let e=new Array,t=r.range,n=r.captured;if(r.needsThis){let o=assert(this.ownerThisType);e.push(h.createFieldDeclaration(h.createIdentifierExpression(En,t),null,262144,o,h.createCallExpression(h.createIdentifierExpression("changetype",t),[o],[h.createIntegerLiteralExpression(i64_new(0),t)],t),t))}for(let o=0,u=n.length;o<u;++o){let c=n[o].type,f=null;c!=null&&_k(c)&&(f=h.createCallExpression(h.createIdentifierExpression("changetype",t),[c],[h.createIntegerLiteralExpression(i64_new(0),t)],t)),e.push(h.createFieldDeclaration(h.createIdentifierExpression(n[o].name,t),null,262144,c,f,t))}for(let o=0,u=n.length;o<u;++o)n[o].hasInitFlag&&e.push(h.createFieldDeclaration(h.createIdentifierExpression(pu+n[o].name,t),null,262144,_u("bool",t),null,t));let s=uu(r);if(s!=null&&e.push(h.createFieldDeclaration(h.createIdentifierExpression(pa,t),null,262144,h.createNamedType(h.createSimpleTypeName(assert(s.className),t),this.envTypeArgs(t),!0,t),h.createNullExpression(t),t)),r.isLoopHeader||s!=null){let o=assert(r.className),u="source",c="parent",f=new Array;r.isLoopHeader&&f.push(h.createParameter(1,h.createIdentifierExpression(u,t),h.createNamedType(h.createSimpleTypeName(o,t),this.envTypeArgs(t),!0,t),h.createNullExpression(t),t)),s!=null&&f.push(h.createParameter(1,h.createIdentifierExpression(c,t),h.createNamedType(h.createSimpleTypeName(assert(s.className),t),this.envTypeArgs(t),!0,t),h.createNullExpression(t),t));let _=new Array;if(_.push(h.createExpressionStatement(h.createCallExpression(h.createSuperExpression(t),null,[],t))),s!=null){let y;r.isLoopHeader?y=h.createTernaryExpression(h.createBinaryExpression(78,h.createIdentifierExpression(u,t),h.createNullExpression(t),t),this.fieldOn(u,pa,t),h.createIdentifierExpression(c,t),t):y=h.createIdentifierExpression(c,t),_.push(h.createExpressionStatement(this.assign(this.fieldOn("this",pa,t),y,t)))}let d=new Array,g=new Array;r.needsThis&&g.push(En);for(let y=0,E=n.length;y<E;++y)g.push(n[y].name),n[y].hasInitFlag&&g.push(pu+n[y].name);if(r.isLoopHeader)for(let y=0,E=g.length;y<E;++y)d.push(h.createExpressionStatement(this.assign(this.fieldOn("this",g[y],t),this.fieldOn(u,g[y],t),t)));d.length>0&&_.push(h.createIfStatement(h.createBinaryExpression(78,h.createIdentifierExpression(u,t),h.createNullExpression(t),t),h.createBlockStatement(d,t),null,t)),e.push(h.createMethodDeclaration(h.createConstructorExpression(t),null,786432,null,h.createFunctionType(f,_u("void",t),null,!1,t),h.createBlockStatement(_,t),t))}let a=null,l=this.envTypeParameters;if(l.length>0){a=new Array(l.length);for(let o=0,u=l.length;o<u;++o)a[o]=h.createTypeParameter(h.createIdentifierExpression(l[o],t),null,null,t)}return h.createClassDeclaration(h.createIdentifierExpression(assert(r.className),t),null,a!=null?65536:0,a,_u("TaskEnv",t),null,e,t)}rewrite(){let r=assert(this.infos.get(this.owner));this.rewriteFunctionBody(r)}rewriteFunctionBody(r){let e=r.node.body;if(e==null)return;let t=assert(r.ownsScope),n,s=null;e.kind==34?n=e.statements:(s=e,n=[s]);let a=this.rewriteStatements(n,t,r.node);if(s!=null)if(a.length==1&&a[0].kind==42)r.node.body=a[0];else{let l=new Array,o=null;if(a.length!=0){let u=a.length-1;o=a[u];for(let c=0;c<u;++c)l.push(a[c])}o!=null&&o.kind==42?l.push(h.createReturnStatement(o.expression,o.range)):o!=null&&l.push(o),r.node.body=h.createBlockStatement(l,s.range)}else{let l=e;l.statements.length=0;for(let o=0,u=a.length;o<u;++o)l.statements.push(a[o])}}rewriteStatements(r,e,t,n=null){let s=new Array;if(e.localName!=null){s.push(this.makeEnvAllocation(e)),e.needsThis&&s.push(h.createExpressionStatement(this.assign(this.fieldOn(assert(e.localName),En,e.range),h.createThisExpression(e.range),e.range)));let a=e.captured;for(let l=0,o=a.length;l<o;++l){let u=a[l];u.isParam&&s.push(h.createExpressionStatement(this.assign(this.fieldOf(e,u,e.range),h.createIdentifierExpression(u.name,e.range),e.range)))}}for(let a=0,l=r.length;a<l;++a){let o=this.rewriteStatement(r[a],e,t,n);o!=null&&s.push(o)}return s}makeEnvAllocation(r){let e=assert(r.className),t=new Array;r.isLoopHeader&&t.push(h.createNullExpression(r.range));let n=uu(r);return n!=null&&t.push(n.ownerFunction===r.ownerFunction?h.createIdentifierExpression(assert(n.localName),r.range):h.createIdentifierExpression(cu,r.range)),h.createVariableStatement(null,[h.createVariableDeclaration(h.createIdentifierExpression(assert(r.localName),r.range),null,16,h.createNamedType(h.createSimpleTypeName(e,r.range),this.envTypeArgs(r.range),!1,r.range),h.createNewExpression(h.createSimpleTypeName(e,r.range),this.envTypeArgs(r.range),t,r.range),r.range)],r.range)}rewriteStatement(r,e,t,n=null){switch(r.kind){case 34:{let s=r,a=te(this.scopeOfBlock,s),l=a??e,o=this.rewriteStatements(s.statements,l,t,n);return h.createBlockStatement(o,s.range)}case 51:{let s=r,a=new Array,l=new Array,o=s.declarations;for(let u=0,c=o.length;u<c;++u){let f=o[u],_=te(this.bindingOf,f);if(_!=null&&_.captured){let g=f.initializer;g!=null&&l.push(h.createExpressionStatement(this.assign(this.fieldOf(_.scope,_,f.name.range),this.rewriteExpression(g,e,t),f.range)));continue}let d=f.initializer;d!=null&&(f.initializer=this.rewriteExpression(d,e,t)),a.push(f)}return a.length>0&&l.unshift(h.createVariableStatement(s.decorators,a,s.range)),l.length==0?null:l.length==1?l[0]:h.createBlockStatement(l,s.range)}case 42:{let s=r;return h.createExpressionStatement(this.rewriteExpression(s.expression,e,t))}case 47:{let s=r,a=s.value;return h.createReturnStatement(a!=null?this.rewriteExpression(a,e,t):null,s.range)}case 45:{let s=r;return h.createIfStatement(this.rewriteExpression(s.condition,e,t),assert(this.rewriteStatement(s.ifTrue,e,t,n)),s.ifFalse!=null?this.rewriteStatement(assert(s.ifFalse),e,t,n):null,s.range)}case 53:{let s=r;return h.createWhileStatement(this.rewriteExpression(s.condition,e,t),assert(this.rewriteStatement(s.body,e,t,null)),s.range)}case 37:{let s=r;return h.createDoStatement(assert(this.rewriteStatement(s.body,e,t,null)),this.rewriteExpression(s.condition,e,t),s.range)}case 43:{let s=r,a=te(this.scopeOfLoop,s),l=a??e;if(!(a!=null&&a.localName!=null&&a.isLoopHeader)){let u=s.initializer;return h.createForStatement(u!=null?this.rewriteStatement(u,l,t):null,s.condition!=null?this.rewriteExpression(assert(s.condition),l,t):null,s.incrementor!=null?this.rewriteExpression(assert(s.incrementor),l,t):null,assert(this.rewriteStatement(s.body,l,t,null)),s.range)}return this.rewriteHeaderLoop(s,assert(a),t)}case 44:{let s=r,a=this.rewriteStatement(s.variable,e,t);return h.createForOfStatement(assert(a),this.rewriteExpression(s.iterable,e,t),assert(this.rewriteStatement(s.body,e,t)),s.range)}case 48:{let s=r,a=new Array,l=s.cases;for(let o=0,u=l.length;o<u;++o){let c=l[o],f=e,_=new Array;for(let d=0,g=c.statements.length;d<g;++d){let y=this.rewriteStatement(c.statements[d],f,t);y!=null&&_.push(y)}a.push(h.createSwitchCase(c.label!=null?this.rewriteExpression(assert(c.label),e,t):null,_,c.range))}return h.createSwitchStatement(this.rewriteExpression(s.condition,e,t),a,s.range)}case 50:{let s=r,a=new Array;for(let f=0,_=s.bodyStatements.length;f<_;++f){let d=this.rewriteStatement(s.bodyStatements[f],e,t);d!=null&&a.push(d)}let l=null,o=s.catchStatements;if(o!=null){l=new Array;for(let f=0,_=o.length;f<_;++f){let d=this.rewriteStatement(o[f],e,t);d!=null&&l.push(d)}}let u=null,c=s.finallyStatements;if(c!=null){u=new Array;for(let f=0,_=c.length;f<_;++f){let d=this.rewriteStatement(c[f],e,t);d!=null&&u.push(d)}}return h.createTryStatement(a,s.catchVariable,l,u,s.range)}case 36:return n==null?r:h.createBlockStatement([n,h.createContinueStatement(r.label,r.range)],r.range);case 49:{let s=r;return h.createThrowStatement(this.rewriteExpression(s.value,e,t),s.range)}default:return r}}rewriteHeaderLoop(r,e,t){let n=new Array;n.push(this.makeEnvAllocation(e)),e.needsThis&&n.push(h.createExpressionStatement(this.assign(this.fieldOn(assert(e.localName),En,r.range),h.createThisExpression(r.range),r.range)));let s=null,a=r.initializer;if(a!=null)if(a.kind==51){let f=a,_=new Array,d=f.declarations;for(let g=0,y=d.length;g<y;++g){let E=d[g],A=te(this.bindingOf,E);if(A!=null&&A.captured){let k=E.initializer;k!=null&&n.push(h.createExpressionStatement(this.assign(this.fieldOf(e,A,E.name.range),this.rewriteExpression(k,e,t),E.range)))}else{let k=E.initializer;k!=null&&(E.initializer=this.rewriteExpression(k,e,t)),_.push(E)}}_.length>0&&(s=h.createVariableStatement(f.decorators,_,f.range))}else s=this.rewriteStatement(a,e,t,null);let l=this.rewriteStatement(r.body,e,t,this.makeCloneStatement(e)),o=assert(l),u=o.kind==34?o.statements:[o];u.push(this.makeCloneStatement(e));let c=h.createForStatement(s,r.condition!=null?this.rewriteExpression(assert(r.condition),e,t):null,r.incrementor!=null?this.rewriteExpression(assert(r.incrementor),e,t):null,h.createBlockStatement(u,r.body.range),r.range);return n.push(c),h.createBlockStatement(n,r.range)}makeCloneStatement(r){let e=assert(r.localName),t=assert(r.className);return h.createExpressionStatement(this.assign(h.createIdentifierExpression(e,r.range),h.createNewExpression(h.createSimpleTypeName(t,r.range),this.envTypeArgs(r.range),[h.createIdentifierExpression(e,r.range)],r.range),r.range))}rewriteExpression(r,e,t){switch(r.kind){case 26:{let n=te(this.thisRefs,r);return n==null?r:this.fieldFrom(this.envExprForScope(n,t,r.range),En,r.range)}case 8:{let n=r,s=te(this.refs,n);if(s==null)return r;let a=this.fieldOfFor(s,t,n.range);return s.hasInitFlag?h.createCommaExpression([this.guard(s,a,t,n.range),a],n.range):a}case 10:{let n=r;if(Px(n.operator)&&n.left.kind==8){let s=n.left,a=te(this.refs,s);if(a!=null){let l=this.fieldOfFor(a,t,n.left.range),o=this.rewriteExpression(n.right,e,t);if(n.operator==102)return a.hasInitFlag?h.createCommaExpression([this.assign(this.flagField(a,t,n.range),h.createTrueExpression(n.range),n.range),this.assign(l,o,n.range)],n.range):this.assign(l,o,n.range);let u=new Array;return a.hasInitFlag&&(u.push(this.guard(a,l,t,n.range)),u.push(this.assign(this.flagField(a,t,n.range),h.createTrueExpression(n.range),n.range))),u.push(h.createBinaryExpression(n.operator,l,o,n.range)),u.length==1?u[0]:h.createCommaExpression(u,n.range)}}return h.createBinaryExpression(n.operator,this.rewriteExpression(n.left,e,t),this.rewriteExpression(n.right,e,t),n.range)}case 30:{let n=r,s=n.operand.kind==8?te(this.refs,n.operand):null;if(s!=null){let a=this.fieldOfFor(s,t,n.range),l=new Array;return s.hasInitFlag&&(l.push(this.guard(s,a,t,n.range)),l.push(this.assign(this.flagField(s,t,n.range),h.createTrueExpression(n.range),n.range))),l.push(h.createUnaryPrefixExpression(n.operator,a,n.range)),l.length==1?l[0]:h.createCommaExpression(l,n.range)}return h.createUnaryPrefixExpression(n.operator,this.rewriteExpression(n.operand,e,t),n.range)}case 29:{let n=r,s=n.operand.kind==8?te(this.refs,n.operand):null;if(s!=null){let a=this.fieldOfFor(s,t,n.range),l=new Array;return s.hasInitFlag&&(l.push(this.guard(s,a,t,n.range)),l.push(this.assign(this.flagField(s,t,n.range),h.createTrueExpression(n.range),n.range))),l.push(h.createUnaryPostfixExpression(n.operator,a,n.range)),l.length==1?l[0]:h.createCommaExpression(l,n.range)}return h.createUnaryPostfixExpression(n.operator,this.rewriteExpression(n.operand,e,t),n.range)}case 11:{let n=r,s=new Array;for(let a=0,l=n.args.length;a<l;++a)s.push(this.rewriteExpression(n.args[a],e,t));return h.createCallExpression(this.rewriteExpression(n.expression,e,t),n.typeArguments,s,n.range)}case 16:{let n=r,s=te(this.infos,n.declaration);if(s!=null){this.rewriteFunctionBody(s);let a=s.needed;if(a!=null){let l=assert(a.className),o=s.bodyParent!=null?assert(s.bodyParent).className:null;Vi().set(n,new ts(2,l,s.ownEnv,!0,o,a.needsThis));let u=a.ownerFunction===t?a:null;Or().set(n,u!=null?assert(u.localName):cu)}}return r}case 18:{let n=r;switch(n.literalKind){case 3:{let s=n.expressions;for(let a=0,l=s.length;a<l;++a)s[a]=this.rewriteExpression(s[a],e,t);break}case 5:{let s=n.elementExpressions;for(let a=0,l=s.length;a<l;++a)s[a]=this.rewriteExpression(s[a],e,t);break}case 6:{let s=n.values;for(let a=0,l=s.length;a<l;++a)s[a]=this.rewriteExpression(s[a],e,t);break}default:break}return n}case 13:{let n=r,s=new Array;for(let a=0,l=n.expressions.length;a<l;++a)s.push(this.rewriteExpression(n.expressions[a],e,t));return h.createCommaExpression(s,n.range)}case 14:{let n=r;return h.createElementAccessExpression(this.rewriteExpression(n.expression,e,t),this.rewriteExpression(n.elementExpression,e,t),n.range)}case 17:{let n=r;return h.createInstanceOfExpression(this.rewriteExpression(n.expression,e,t),n.isType,n.range)}case 19:{let n=r,s=new Array;for(let a=0,l=n.args.length;a<l;++a)s.push(this.rewriteExpression(n.args[a],e,t));return h.createNewExpression(n.typeName,n.typeArguments,s,n.range)}case 22:{let n=r;return h.createParenthesizedExpression(this.rewriteExpression(n.expression,e,t),n.range)}case 23:{let n=r;return h.createPropertyAccessExpression(this.rewriteExpression(n.expression,e,t),n.property,n.range)}case 24:{let n=r;return h.createTernaryExpression(this.rewriteExpression(n.condition,e,t),this.rewriteExpression(n.ifThen,e,t),this.rewriteExpression(n.ifElse,e,t),n.range)}case 9:{let n=r;return n.expression=this.rewriteExpression(n.expression,e,t),n}case 31:{let n=r;return n.operand=this.rewriteExpression(n.operand,e,t),n}case 32:{let n=r;return n.expression=this.rewriteExpression(n.expression,e,t),n}default:return r}}fieldOfFor(r,e,t){return this.fieldFrom(this.envExprFor(r,e,t),r.name,t)}envExprFor(r,e,t){return this.envExprForScope(r.scope,e,t)}envExprForScope(r,e,t){if(r.ownerFunction===e)return h.createIdentifierExpression(assert(r.localName),t);let n=assert(this.infos.get(e)),s=assert(n.needed),a=h.createIdentifierExpression(cu,t),l=s;for(;l!==r;)a=h.createAssertionExpression(2,this.fieldFrom(a,pa,t),null,t),l=assert(uu(l));return a}fieldFrom(r,e,t){return h.createPropertyAccessExpression(r,h.createIdentifierExpression(e,t),t)}fieldOf(r,e,t){return this.fieldOn(assert(r.localName),e.name,t)}fieldOn(r,e,t){return h.createPropertyAccessExpression(h.createIdentifierExpression(r,t),h.createIdentifierExpression(e,t),t)}flagField(r,e,t){return this.fieldFrom(this.envExprFor(r,e,t),pu+r.name,t)}guard(r,e,t,n){return h.createCallExpression(h.createIdentifierExpression(ok,n),[assert(r.type)],[e,this.flagField(r,t,n),h.createStringLiteralExpression(r.name,n)],n)}assign(r,e,t){return h.createBinaryExpression(102,r,e,t)}};function _u(i,r){return h.createNamedType(h.createSimpleTypeName(i,r),null,!1,r)}function fk(i){let r=i.expression;return(r.kind==8?r.text:r.kind==23?r.property.text:"")=="makeCallbacks"}function Px(i){switch(i){case 102:case 103:case 104:case 105:case 106:case 107:case 108:case 109:case 110:case 111:case 112:case 113:case 114:return!0;default:return!1}}function _k(i){if(i.kind!=1)return!0;let r=i,e=r.typeArguments;if(e!=null&&e.length>0)return!0;let t=r.name.identifier.text;return!(t=="i8"||t=="i16"||t=="i32"||t=="i64"||t=="u8"||t=="u16"||t=="u32"||t=="u64"||t=="isize"||t=="usize"||t=="bool"||t=="f32"||t=="f64"||t=="v128")}function dk(i){let r=i;for(;r!=null;){if(r.ownerFunction.isAsync)return!0;r=r.parent}return!1}function S_(i,r){if(r.size==0)return!1;if(i.kind==1){let e=i;if(r.has(e.name.identifier.text))return!0;let t=e.typeArguments;if(t!=null){for(let n=0,s=t.length;n<s;++n)if(S_(t[n],r))return!0}}return!1}var hk="$lazyDone",mk="$lazyTask",yk="spawn",I_=class{constructor(r,e,t,n,s){this.name=r;this.doneName=e;this.awaitOperand=t;this.declaration=n;this.range=s;this.taskName=null;this.taskCall=null}},mu=class{afterParse(r){this.parser=r;let e=this.program.sources;for(let t=0,n=e.length;t<n;++t){let s=e[t];s.isLibrary||this.walkFunctions(s.statements)}}walkFunctions(r){for(let e=0,t=r.length;e<t;++e){let n=r[e];switch(n.kind){case 59:{this.rewriteBodyStatement(n.body);break}case 55:{let s=n.members;if(s!=null)for(let a=0,l=s.length;a<l;++a){let o=s[a];(o.kind==62||o.kind==59)&&this.rewriteBodyStatement(o.body)}break}case 63:{this.walkFunctions(n.members);break}case 40:{let s=n.declaration;s!=null&&this.walkFunctions([s]);break}default:break}}}rewriteBodyStatement(r){r==null||r.kind!=34||this.rewriteBody(r)}rewriteBody(r){if(r==null)return;let e=r.statements;r.statements=this.rewriteList(e,new Map),this.walkFunctions(r.statements),this.rewriteNestedFunctionExpressions(r.statements)}rewriteList(r,e){let t=new Array;for(let n=0,s=r.length;n<s;++n){let a=r[n];if(a.kind==42){let o=a,u=o.expression;if(v_(u)){this.parser.warning(6401,u.range);let c=hu(u);c!=null&&(o.expression=c)}}else if(a.kind==51){let o=a.declarations;for(let u=0,c=o.length;u<c;++u){let f=o[u].initializer;if(f!=null&&v_(f)){let _=hu(f);_!=null&&(o[u].initializer=_)}}}if(a.kind==51){let o=this.rewriteDeclaration(a,e);if(o!=null){for(let u=0,c=o.length;u<c;++u)t.push(o[u]);continue}}this.recurseInto(a,e);let l=this.collectOwnReads(a,e,new Array);for(let o=0,u=l.length;o<u;++o)t.push(this.makeGuard(assert(te(e,l[o])),a.range));t.push(a)}return t}rewriteDeclaration(r,e){let t=r.declarations,n=null,s=null;for(let o=0,u=t.length;o<u;++o){let c=t[o],f=c.initializer;if(f==null||f.kind!=32)continue;let _=f;if(_.expression.kind!=31)continue;if(t.length!=1)return this.parser.error(100,c.range,"a '@lazy await' binding in a multi-declarator statement"),this.degrade(c,_),null;let d=c.type;if(d==null)return this.parser.error(6399,c.name.range,c.name.text),this.degrade(c,_),null;let g=c.name.text;if(te(e,g)!=null)return this.parser.error(100,c.name.range,"a redeclared '@lazy await' binding in one block"),null;let y=g+hk,E=_.expression.operand,A=null;if(v_(E)){if(hu(E)==null)return this.parser.error(100,E.range,"a 'spawn' whose argument is not a call or a function name"),this.degrade(c,_),null;A=g+mk,E=h.createIdentifierExpression(A,E.range)}s=new I_(g,y,E,c,c.range),s.taskName=A,A!=null&&(s.taskCall=hu(_.expression.operand)),n=h.createVariableDeclaration(c.name,c.decorators,c.flags,d,null,c.range);break}if(s==null||n==null)return null;e.set(s.name,s);let a=new Array,l=s.taskName;if(l!=null){let o=h.createNamedType(h.createSimpleTypeName("Task",s.range),[assert(s.declaration.type)],!1,s.range);a.push(h.createVariableStatement(null,[h.createVariableDeclaration(h.createIdentifierExpression(l,s.range),null,16,o,s.taskCall,s.range)],s.range))}return a.push(h.createVariableStatement(null,[h.createVariableDeclaration(h.createIdentifierExpression(s.doneName,s.range),null,16,null,h.createFalseExpression(s.range),s.range)],s.range)),a.push(h.createVariableStatement(null,[n],r.range)),a}degrade(r,e){let t=e.expression;r.initializer=t.kind==31?t.operand:t}makeGuard(r,e){let t=h.createIdentifierExpression(r.doneName,e);return h.createIfStatement(h.createUnaryPrefixExpression(96,t,e),h.createBlockStatement([h.createExpressionStatement(h.createBinaryExpression(102,h.createIdentifierExpression(r.name,e),h.createAwaitExpression(r.awaitOperand,e),e)),h.createExpressionStatement(h.createBinaryExpression(102,h.createIdentifierExpression(r.doneName,e),h.createTrueExpression(e),e))],e),null,e)}recurseInto(r,e){switch(r.kind){case 34:{let t=r;t.statements=this.rewriteList(t.statements,e);break}case 45:{let t=r;t.ifTrue=this.rewriteSingleBody(t.ifTrue,e),t.ifFalse!=null&&(t.ifFalse=this.rewriteSingleBody(assert(t.ifFalse),e));break}case 53:{let t=r;t.body=this.rewriteSingleBody(t.body,e);break}case 37:{let t=r;t.body=this.rewriteSingleBody(t.body,e);break}case 43:{let t=r;t.body=this.rewriteSingleBody(t.body,e);break}case 44:{let t=r;t.body=this.rewriteSingleBody(t.body,e);break}case 48:{let n=r.cases;for(let s=0,a=n.length;s<a;++s){let l=n[s];l.statements=this.rewriteList(l.statements,e)}break}case 50:{let t=r;t.bodyStatements=this.rewriteList(t.bodyStatements,e);let n=t.catchStatements;n!=null&&(t.catchStatements=this.rewriteList(n,e));let s=t.finallyStatements;s!=null&&(t.finallyStatements=this.rewriteList(s,e));break}default:break}}rewriteSingleBody(r,e){if(r.kind==34)return this.recurseInto(r,e),r;let t=this.rewriteList([r],e);return t.length==1?t[0]:h.createBlockStatement(t,r.range)}collectOwnReads(r,e,t){switch(r.kind){case 42:{this.collectReads(r.expression,e,t);break}case 51:{let n=r.declarations;for(let s=0,a=n.length;s<a;++s){let l=n[s].initializer;l!=null&&this.collectReads(l,e,t)}break}case 47:{let n=r.value;n!=null&&this.collectReads(n,e,t);break}case 45:{this.collectReads(r.condition,e,t);break}case 53:{this.collectReads(r.condition,e,t);break}case 37:{this.collectReads(r.condition,e,t);break}case 43:{let n=r,s=n.initializer;s!=null&&s.kind!=51&&this.collectOwnReads(s,e,t);let a=n.condition;a!=null&&this.collectReads(a,e,t);let l=n.incrementor;l!=null&&this.collectReads(l,e,t);break}case 48:{this.collectReads(r.condition,e,t);break}case 49:{this.collectReads(r.value,e,t);break}case 52:{this.collectReads(r.expression,e,t);break}default:break}return t}collectReads(r,e,t){switch(r.kind){case 8:{let n=r.text;te(e,n)!=null&&!t.includes(n)&&t.push(n);break}case 11:{let n=r;this.collectReads(n.expression,e,t);let s=n.args;for(let a=0,l=s.length;a<l;++a)this.collectReads(s[a],e,t);break}case 10:{let n=r;this.collectReads(n.left,e,t),this.collectReads(n.right,e,t);break}case 30:{this.collectReads(r.operand,e,t);break}case 29:{this.collectReads(r.operand,e,t);break}case 13:{let s=r.expressions;for(let a=0,l=s.length;a<l;++a)this.collectReads(s[a],e,t);break}case 24:{let n=r;this.collectReads(n.condition,e,t),this.collectReads(n.ifThen,e,t),this.collectReads(n.ifElse,e,t);break}case 23:{this.collectReads(r.expression,e,t);break}case 14:{let n=r;this.collectReads(n.expression,e,t),this.collectReads(n.elementExpression,e,t);break}case 9:{this.collectReads(r.expression,e,t);break}case 22:{this.collectReads(r.expression,e,t);break}case 31:{this.collectReads(r.operand,e,t);break}case 32:{this.collectReads(r.expression,e,t);break}case 19:{let s=r.args;if(s!=null)for(let a=0,l=s.length;a<l;++a)this.collectReads(s[a],e,t);break}case 17:{this.collectReads(r.expression,e,t);break}case 16:{let n=new Array;this.collectReadsInFunctionBody(r,e,n);for(let s=0,a=n.length;s<a;++s)this.parser.error(6400,r.range,n[s]);break}default:break}}collectReadsInFunctionBody(r,e,t){let n=r.declaration.body;if(n==null||n.kind!=34)return;let s=n.statements;for(let a=0,l=s.length;a<l;++a)this.collectOwnReads(s[a],e,t),this.recurseCollect(s[a],e,t)}recurseCollect(r,e,t){switch(r.kind){case 34:{let n=r.statements;for(let s=0,a=n.length;s<a;++s)this.collectOwnReads(n[s],e,t),this.recurseCollect(n[s],e,t);break}case 45:{let n=r;this.recurseCollect(n.ifTrue,e,t),n.ifFalse!=null&&this.recurseCollect(assert(n.ifFalse),e,t);break}case 53:{this.recurseCollect(r.body,e,t);break}case 37:{this.recurseCollect(r.body,e,t);break}case 43:{this.recurseCollect(r.body,e,t);break}case 44:{this.recurseCollect(r.body,e,t);break}case 48:{let n=r.cases;for(let s=0,a=n.length;s<a;++s){let l=n[s].statements;for(let o=0,u=l.length;o<u;++o)this.recurseCollect(l[o],e,t)}break}default:break}}rewriteNestedFunctionExpressions(r){for(let e=0,t=r.length;e<t;++e){let n=r[e];if(n.kind==51){let s=n.declarations;for(let a=0,l=s.length;a<l;++a){let o=s[a].initializer;if(o!=null&&o.kind==16){let u=o.declaration.body;u!=null&&u.kind==34&&this.rewriteBody(u)}}}}}};function v_(i){if(i.kind!=11)return!1;let r=i.expression;return r.kind==8&&r.text==yk}function hu(i){let r=i.args;if(r.length!=1)return null;let e=r[0];return e.kind==11?e:e.kind==8?h.createCallExpression(e,null,[],i.range):null}var ya="async arrow functions (async lowering)",ga="async function expressions (async lowering)",Bx="an async function nested in a non-async body (async lowering)",gk="an async export default function (async lowering)";function Nx(i,r,e){Ai(i.statements,r,e)}function Ai(i,r,e){for(let t=0,n=i.length;t<n;++t)ct(i[t],r,e)}function ct(i,r,e){switch(i.kind){case 59:case 62:{Lx(i,r,e);return}case 55:{Mx(i,r,e);return}case 63:{Ai(i.members,r,e);return}case 34:{Ai(i.statements,r,e);return}case 37:{let t=i;ct(t.body,r,e),ne(t.condition,r,e);return}case 42:{let t=i.expression;if(t.kind==16){let n=t.declaration;if(n.isAsync&&n.arrowKind==0){yu(r,t,Bx,e);return}}ne(t,r,e);return}case 43:{let t=i,n=t.initializer;n!=null&&ct(n,r,e);let s=t.condition;s!=null&&ne(s,r,e);let a=t.incrementor;a!=null&&ne(a,r,e),ct(t.body,r,e);return}case 44:{let t=i;ct(t.variable,r,e),ne(t.iterable,r,e),ct(t.body,r,e);return}case 45:{let t=i;ne(t.condition,r,e),ct(t.ifTrue,r,e);let n=t.ifFalse;n!=null&&ct(n,r,e);return}case 47:{let t=i.value;t!=null&&ne(t,r,e);return}case 48:{let t=i;ne(t.condition,r,e);let n=t.cases;for(let s=0,a=n.length;s<a;++s){let l=n[s].label;l!=null&&ne(l,r,e),Ai(n[s].statements,r,e)}return}case 49:{ne(i.value,r,e);return}case 50:{let t=i;Ai(t.bodyStatements,r,e);let n=t.catchStatements;n!=null&&Ai(n,r,e);let s=t.finallyStatements;s!=null&&Ai(s,r,e);return}case 51:{let t=i.declarations;for(let n=0,s=t.length;n<s;++n){let a=t[n];An(a.decorators,r,e);let l=a.initializer;l!=null&&ne(l,r,e)}return}case 52:{ne(i.expression,r,e);return}case 53:{let t=i;ne(t.condition,r,e),ct(t.body,r,e);return}case 56:{let t=i.values;for(let n=0,s=t.length;n<s;++n)ct(t[n],r,e);return}case 57:{let t=i.initializer;t!=null&&ne(t,r,e);return}case 58:{let t=i;An(t.decorators,r,e);let n=t.initializer;n!=null&&ne(n,r,e);return}case 40:{let t=i.declaration;if(t.kind==59&&t.isAsync){yu(r,t,gk,e);return}ct(t,r,e);return}default:return}}function Lx(i,r,e){if(i.isAsync){yu(r,i,Bx,e);return}An(i.decorators,r,e);let t=i.signature.parameters;for(let s=0,a=t.length;s<a;++s){let l=t[s].initializer;l!=null&&ne(l,r,e)}let n=i.body;n!=null&&ct(n,r,e)}function Mx(i,r,e){An(i.decorators,r,e);let t=i.members;for(let n=0,s=t.length;n<s;++n){let a=t[n];switch(a.kind){case 59:case 62:{Lx(a,r,e);break}case 58:{let l=a;An(l.decorators,r,e);let o=l.initializer;o!=null&&ne(o,r,e);break}default:break}}}function An(i,r,e){if(i!=null)for(let t=0,n=i.length;t<n;++t){let s=i[t];ne(s.name,r,e);let a=s.args;if(a!=null)for(let l=0,o=a.length;l<o;++l)ne(a[l],r,e)}}function ne(i,r,e){switch(i.kind){case 16:{let t=i,n=t.declaration;if(n.isAsync){yu(r,t,n.arrowKind!=0?ya:ga,e);return}An(n.decorators,r,e);let s=n.signature.parameters;for(let l=0,o=s.length;l<o;++l){let u=s[l].initializer;u!=null&&ne(u,r,e)}let a=n.body;a!=null&&ct(a,r,e);return}case 12:{Mx(i.declaration,r,e);return}case 9:{ne(i.expression,r,e);return}case 31:{ne(i.operand,r,e);return}case 10:{let t=i;ne(t.left,r,e),ne(t.right,r,e);return}case 11:{let t=i;ne(t.expression,r,e);let n=t.args;for(let s=0,a=n.length;s<a;++s)ne(n[s],r,e);return}case 13:{let t=i.expressions;for(let n=0,s=t.length;n<s;++n)ne(t[n],r,e);return}case 14:{let t=i;ne(t.expression,r,e),ne(t.elementExpression,r,e);return}case 17:{ne(i.expression,r,e);return}case 19:{let t=i.args;for(let n=0,s=t.length;n<s;++n)ne(t[n],r,e);return}case 22:{ne(i.expression,r,e);return}case 23:{ne(i.expression,r,e);return}case 24:{let t=i;ne(t.condition,r,e),ne(t.ifThen,r,e),ne(t.ifElse,r,e);return}case 29:{ne(i.operand,r,e);return}case 30:{ne(i.operand,r,e);return}case 18:{let t=i;switch(t.literalKind){case 3:{let n=t.expressions;for(let s=0,a=n.length;s<a;++s)ne(n[s],r,e);return}case 5:{let n=t.elementExpressions;for(let s=0,a=n.length;s<a;++s)ne(n[s],r,e);return}case 6:{let n=t.values;for(let s=0,a=n.length;s<a;++s)ne(n[s],r,e);return}default:return}}default:return}}function yu(i,r,e,t){t!=null&&t.has(r.range.start)||i.error(100,r.range,e)}var bk="$State",xk="$resume",zx="TaskState",Dx="TaskEnv",Ek="__taskPark",Ak="__taskSettled",Tk="__taskRegister",Sk="__asyncZero",Kx="__taskComplete",vk="__taskCompleteResult",Gx="_record",Hx="$awaited",Ik="__taskRegistered",vu="resumePoint",Eu="handle",kk="resume",vi="$env",Sn="$closureEnv",gu="$closureEnvIn",va="$this",k_="$parent",Ux="$cond",Ia=class{constructor(){this.refusals=null;this.currentConstruct=null}afterParse(r){let e=this.program.sources;for(let t=0,n=e.length;t<n;++t){let s=e[t];if(this.program.stdSources.has(s))continue;this.lowerStatementList(s,s.statements,r);let a=this.refusals,l=a!=null?te(a,s):null;Nx(s,r,l??null)}}lowerStatementList(r,e,t){if(!Ck(e))return;let n=new Array;for(let a=0,l=e.length;a<l;++a){let o=Pk(e[a]);o!=null&&n.push(o)}let s=new Array;for(let a=0,l=e.length;a<l;++a){let o=e[a];switch(o.kind){case 59:{let u=o;if(u.isAsync){let c=new Array,f=this.lowerAsyncFunction(r,u,n,t,c);if(f){for(let _=0,d=f.length;_<d;++_)s.push(f[_]);for(let _=0,d=c.length;_<d;++_)s.push(c[_])}else s.push(o)}else s.push(o);break}case 63:{let u=o;this.lowerStatementList(r,u.members,t),s.push(o);break}case 55:{let u=o,c=this.lowerAsyncMethods(r,u,n,t);for(let f=0,_=c.length;f<_;++f)s.push(c[f]);s.push(o);break}case 51:{let u=o.declarations;for(let c=0,f=u.length;c<f;++c){let _=u[c].initializer;_&&this.refuseAsyncFunctionExpression(_,t)}s.push(o);break}default:{s.push(o);break}}}e.length=0;for(let a=0,l=s.length;a<l;++a)e.push(s[a])}lowerAsyncFunction(r,e,t,n,s,a=null,l=null){let o=this.currentConstruct;this.currentConstruct=e;let u=this.lowerAsyncFunctionInner(r,e,t,n,s,a,l);return this.currentConstruct=o,u==null&&this.recordRefusal(e),u}lowerAsyncFunctionInner(r,e,t,n,s,a,l){let o=e.signature,u=e.name.text,c=e.range;if(e.arrowKind!=0)return this.refuse(n,e.range,ya),null;if(e.typeParameters!=null)return this.refuse(n,e.range,"async generic functions (async lowering)"),null;a==null&&o.explicitThisType!=null&&(a=o.explicitThisType);let f=null;l!=null&&(f=te(Vi(),l));let _=f??null,d=_!=null&&_.kind==2?_.envClass:null,g=te(rl,e),y=g??null,E=y!=null&&y.ownEnv?y.envClass:null,A=E!=null&&y!=null&&assert(y).hasThis,k=y!=null?y.parentClass:null,F=E!=null&&A,w=!F&&a!=null,R=!F&&!w&&d!=null,P=o.parameters;for(let Z=0,ae=P.length;Z<ae;++Z){let ee=P[Z];if(ee.parameterKind!=0)return this.refuse(n,ee.range,"optional or rest parameters in an async function (async lowering)"),null;if(qx(ee.name.text))return this.refuse(n,ee.name.range,"a parameter whose name is reserved by the state struct (async lowering)"),null}let M=o.returnType;if(M==null||Vk(M))return this.refuse(n,e.name.range,"an async function without a declared return type (async lowering)"),null;let O=e.body;if(!O||O.kind!=34)return this.refuse(n,e.range,"an async function without a block body (async lowering)"),null;let z=O,j=w?u+"$ThisEnv":"",U=null;if(w){let Z=assert(a),ae=h.createFieldDeclaration(h.createIdentifierExpression(va,c),null,262144,Z,h.createCallExpression(h.createIdentifierExpression("changetype",c),[Z],[St(0,c)],c),c),ee="source",wn=new Array;wn.push(h.createParameter(0,h.createIdentifierExpression(ee,c),Z,null,c));let Fi=new Array;Fi.push(ae);let wi=new Array;if(wi.push(h.createExpressionStatement(h.createCallExpression(h.createSuperExpression(c),null,[],c))),wi.push(h.createExpressionStatement(h.createBinaryExpression(102,h.createPropertyAccessExpression(h.createThisExpression(c),h.createIdentifierExpression(va,c),c),h.createIdentifierExpression(ee,c),c))),d!=null){let Fa="parent";wn.push(h.createParameter(0,h.createIdentifierExpression(Fa,c),ve(d,c),null,c)),Fi.push(h.createFieldDeclaration(h.createIdentifierExpression(k_,c),null,262144,h.createNamedType(h.createSimpleTypeName(d,c),null,!0,c),h.createNullExpression(c),c)),wi.push(h.createExpressionStatement(h.createBinaryExpression(102,h.createPropertyAccessExpression(h.createThisExpression(c),h.createIdentifierExpression(k_,c),c),h.createIdentifierExpression(Fa,c),c)))}let Cu=h.createMethodDeclaration(h.createConstructorExpression(c),null,786432,null,h.createFunctionType(wn,ve("void",c),null,!1,c),h.createBlockStatement(wi,c),c);Fi.push(Cu),U=h.createClassDeclaration(h.createIdentifierExpression(j,c),null,0,null,ve(Dx,c),null,Fi,c)}if(F&&zk(z),F||w){let Z=F?assert(E):j;N_(z.statements,Z,Mk(z,P))}let D=new D_;Ti(z,D.declaredTypes);let Q=new Iu,Y=this.planSeq(n,z.statements,Q,!1,r,s,t,D);if(!Y)return null;let q=Q.next-1;if(q!=0&&this.liftCreationEnvs(z,D),this.collectLifting(n,Y,D),q!=0){let Z=new Set;Aa(Y,Z);for(let ae=0,ee=P.length;ae<ee;++ae)Z.has(P[ae].name.text)&&D.liftParameter(P[ae].name.text,P[ae].name.range)}let le=u+bk,H=u+xk;for(let Z=0,ae=t.length;Z<ae;++Z){let ee=t[Z];if(ee==le||ee==H)return this.refuse(n,e.name.range,"an async function whose synthesized name is taken (async lowering)"),null}let me=new Set;Mr(z,me);let oe=B_(P,z),pe=h.createIdentifierExpression(oe,c),It=h.createThisExpression(c),Fe=new Array;for(let Z=0,ae=P.length;Z<ae;++Z){let ee=P[Z];Fe.push(h.createFieldDeclaration(h.createIdentifierExpression(ee.name.text,ee.name.range),null,262144,ee.type,null,ee.name.range))}Fe.push(h.createFieldDeclaration(h.createIdentifierExpression(vi,c),null,262144,h.createNamedType(h.createSimpleTypeName(Dx,c),null,!0,c),h.createNullExpression(c),c));for(let Z=0,ae=D.locals.length;Z<ae;++Z){let ee=D.locals[Z];Fe.push(h.createFieldDeclaration(h.createIdentifierExpression(ee.name,ee.declaration.name.range),null,262144,ee.type,null,ee.declaration.name.range))}Fe.push(h.createFieldDeclaration(h.createIdentifierExpression(vu,c),null,262144,ve("i32",c),null,c));let vn=!Ok(M),Ot=new Array;Ea(Y,Ot);for(let Z=0,ae=Ot.length;Z<ae;++Z)Fe.push(h.createFieldDeclaration(h.createIdentifierExpression(Ot[Z],c),null,278528,ve("TaskRecord",c),null,c));let zr=qk(M,c);Fe.push(h.createFieldDeclaration(h.createIdentifierExpression(Eu,c),null,278528,zr,null,c));let Ii=new Array,je=new Array;je.push(h.createExpressionStatement(h.createCallExpression(h.createSuperExpression(c),null,[],c)));for(let Z=0,ae=P.length;Z<ae;++Z){let ee=P[Z];Ii.push(h.createParameter(0,h.createIdentifierExpression(ee.name.text,ee.name.range),ee.type,null,ee.range)),je.push(h.createExpressionStatement(Nr(It,ee.name.text,h.createIdentifierExpression(ee.name.text,ee.range),ee.range)))}je.push(h.createExpressionStatement(Nr(It,vu,St(0,c),c)));for(let Z=0,ae=D.locals.length;Z<ae;++Z){let ee=D.locals[Z];je.push(h.createExpressionStatement(Nr(It,ee.name,h.createCallExpression(h.createIdentifierExpression(Sk,ee.declaration.name.range),[ee.type],[],ee.declaration.name.range),ee.declaration.name.range)))}Fe.push(h.createMethodDeclaration(h.createConstructorExpression(c),null,786432,null,h.createFunctionType(Ii,ve("void",c),null,!1,c),h.createBlockStatement(je,c),c));let ki=h.createClassDeclaration(h.createIdentifierExpression(le,e.name.range),null,0,null,ve(zx,c),null,Fe,c),dt=h.createIdentifierExpression(H,c),pr=new Array;for(let Z=0,ae=P.length;Z<ae;++Z)pr.push(h.createIdentifierExpression(P[Z].name.text,P[Z].range));let In=h.createPropertyAccessExpression(pe,h.createIdentifierExpression(Eu,c),c),Oe=new Array;if(Oe.push(h.createVariableStatement(null,[h.createVariableDeclaration(h.createIdentifierExpression(oe,c),null,8,ve(le,c),h.createNewExpression(h.createSimpleTypeName(le,c),null,pr,c),c)],c)),F){let Z=assert(E),ae=new Array;k!=null&&(ae.push(h.createNullExpression(c)),ae.push(h.createIdentifierExpression(gu,c))),Oe.push(h.createVariableStatement(null,[h.createVariableDeclaration(h.createIdentifierExpression(Sn,c),null,16,ve(Z,c),h.createNewExpression(h.createSimpleTypeName(Z,c),null,ae,c),c)],c)),A&&Oe.push(h.createExpressionStatement(Nr(h.createIdentifierExpression(Sn,c),va,h.createThisExpression(c),c))),Oe.push(h.createExpressionStatement(Nr(pe,vi,h.createIdentifierExpression(Sn,c),c)))}else if(w){let Z=new Array;Z.push(h.createThisExpression(c)),d!=null&&Z.push(h.createIdentifierExpression(gu,c)),Oe.push(h.createExpressionStatement(Nr(pe,vi,h.createNewExpression(h.createSimpleTypeName(j,c),null,Z,c),c)))}else R&&Oe.push(h.createExpressionStatement(Nr(pe,vi,h.createIdentifierExpression(gu,c),c)));Oe.push(h.createExpressionStatement(Nr(pe,Eu,h.createNewExpression(h.createSimpleTypeName("Task",c),[M],[],c),c))),Oe.push(h.createExpressionStatement(h.createBinaryExpression(102,h.createPropertyAccessExpression(In,h.createIdentifierExpression(Gx,c),c),h.createCallExpression(h.createIdentifierExpression(Tk,c),null,[pe],c),c))),Oe.push(h.createIfStatement(h.createUnaryPrefixExpression(96,h.createCallExpression(h.createIdentifierExpression(Ik,c),null,[pe],c),c),h.createBlockStatement([h.createReturnStatement(In,c)],c),null,c)),Oe.push(h.createExpressionStatement(h.createBinaryExpression(102,h.createPropertyAccessExpression(pe,h.createIdentifierExpression(kk,c),c),h.createCallExpression(h.createIdentifierExpression("changetype",c),[h.createFunctionType([h.createParameter(0,h.createIdentifierExpression("state",c),ve(zx,c),null,c)],ve("void",c),null,!1,c)],[dt],c),c))),Oe.push(h.createExpressionStatement(h.createCallExpression(dt,null,[pe],c))),Oe.push(h.createReturnStatement(In,c)),e.body=h.createBlockStatement(Oe,c),e.signature.returnType=zr,e.isAsync=!1;let ht=B_(P,z),kn=new Array;Ta(Y,kn);for(let Z=0,ae=kn.length;Z<ae;++Z){let ee=kn[Z];iu().set(ee.node,new ru(ee.discriminator,Gk(ht,ee.fieldName,ee.node.range)))}let qt=new Array,Fn=h.createPropertyAccessExpression(h.createIdentifierExpression(ht,c),h.createIdentifierExpression(vi,c),c),ku=F?assert(E):j,Fu=h.createCallExpression(h.createIdentifierExpression("changetype",c),[ve(ku,c)],[Fn],c),wu=R?Fn:h.createAssertionExpression(2,h.createPropertyAccessExpression(Fu,h.createIdentifierExpression(k_,c),c),null,c);if(d!=null){let Z=ve(d,c);qt.push(h.createVariableStatement(null,[h.createVariableDeclaration(h.createIdentifierExpression(gu,c),null,8,Z,h.createCallExpression(h.createIdentifierExpression("changetype",c),[Z],[wu],c),c)],c))}if(F){let Z=assert(E);qt.push(h.createVariableStatement(null,[h.createVariableDeclaration(h.createIdentifierExpression(Sn,c),null,8,ve(Z,c),h.createCallExpression(h.createIdentifierExpression("changetype",c),[ve(Z,c)],[Fn],c),c)],c))}for(let Z=0,ae=P.length;Z<ae;++Z){let ee=P[Z];qt.push(Ox(ee.name.text,ee.name.range,ht))}for(let Z=0,ae=D.locals.length;Z<ae;++Z){let ee=D.locals[Z];qt.push(Ox(ee.name,ee.declaration.name.range,ht))}let Ru=new P_(D,ht,q+1,vn,me,M,q!=0);if(Tn(qt,this.emitSeq(Y,Ru)),!Rk(Y)){let Z=new Array;Z.push(h.createExpressionStatement(Su(ht,St(q+1,c),c))),Z.push(h.createExpressionStatement(h.createCallExpression(h.createIdentifierExpression(Kx,c),null,[h.createIdentifierExpression(ht,c)],c))),qt.push(h.createIfStatement(ur(He(ht,c),c),h.createBlockStatement(Z,c),null,c))}let ka=h.createFunctionDeclaration(h.createIdentifierExpression(H,e.name.range),null,0,null,h.createFunctionType([h.createParameter(0,h.createIdentifierExpression(ht,c),ve(le,c),null,c)],ve("void",c),null,!1,c),h.createBlockStatement(qt,c),0,c);return U!=null?[U,ki,e,ka]:[ki,e,ka]}liftCreationEnvs(r,e){let t=new Set;Lr(r.statements,t),t.size!=0&&Au(r.statements,t,e)}planSeq(r,e,t,n,s,a,l,o){let u=new R_;for(let c=0,f=e.length;c<f;++c){let _=this.planStatement(r,e[c],t,n,s,a,l,o);if(!_)return null;u.add(_)}return u}planStatement(r,e,t,n,s,a,l,o){let u=new w_(e);switch(e.kind){case 38:return u;case 42:{let c=e.expression;if(c.kind==16){let f=c.declaration;if(f.isAsync){let _=this.lowerAsyncFunction(s,f,l,r,a,null,c);if(!_)return null;for(let d=0,g=_.length;d<g;++d)_[d]!==e&&a.push(_[d])}return u.kind=0,u.nestedFunction=!0,u}return this.planLeaf(r,u,t,o)}case 51:case 47:return this.planLeaf(r,u,t,o);case 34:{let c=e,f=this.planSeq(r,c.statements,t,n,s,a,l,o);return f?(u.kind=1,u.statements=f,u.lo=f.lo,u.hi=f.hi,f.lo!=0&&this.liftDeclaredIn(r,f,o),u.all=xa(f),u):null}case 45:{let c=e;if(!this.walkExpression(r,c.condition,u.all,null,!1))return null;let f=this.planBranch(r,c.ifTrue,t,n,s,a,l,o);if(!f)return null;let _=null;return c.ifFalse!=null&&(_=this.planBranch(r,assert(c.ifFalse),t,n,s,a,l,o),!_)?null:(u.kind=2,u.cond=c.condition,u.thenSeq=f,u.elseSeq=_,u.lo=Fk(f,_),u.hi=wk(f,_),u.lo!=0&&(this.liftDeclaredIn(r,f,o),_!=null&&this.liftDeclaredIn(r,assert(_),o)),u.all=ba(u.all,ba(xa(f),_?xa(_):new vt)),u)}case 53:{let c=e;if(!this.walkExpression(r,c.condition,u.all,null,!1))return null;let f=this.planBranch(r,c.body,t,n,s,a,l,o);return f?(u.kind=3,u.cond=c.condition,u.body=f,u.lo=f.lo,u.hi=f.hi,f.lo!=0&&this.liftDeclaredIn(r,f,o),u.all=ba(u.all,xa(f)),u):null}case 43:{let c=e,f=this.planBranch(r,c.body,t,n,s,a,l,o);if(!f)return null;f.lo!=0&&this.liftDeclaredIn(r,f,o);let _=c.initializer;if(f.lo!=0&&_!=null&&_.kind==51){let y=_.declarations;for(let E=0,A=y.length;E<A;++E)if(!this.liftDeclarator(r,y[E],o))return null}if(_!=null){let y=this.planStatement(r,_,new Iu,!1,s,a,l,o);if(!y)return null;if(y.info!=null)return this.refuse(r,_.range,"await in a for initializer (async lowering)"),null;if(y.lo!=0)return null}let d=c.condition;if(d!=null&&!this.walkExpression(r,d,u.all,null,!1))return null;let g=c.incrementor;return g!=null&&!this.walkExpression(r,g,u.all,null,!1)?null:(u.kind=4,u.init=_,u.cond=c.condition,u.incr=c.incrementor,u.body=f,u.lo=f.lo,u.hi=f.hi,u.all=ba(u.all,xa(f)),u)}case 35:case 36:return u.kind=0,u;case 59:{let c=e;if(c.isAsync){let f=this.lowerAsyncFunction(s,c,l,r,a);if(!f)return null;for(let _=0,d=f.length;_<d;++_)f[_]!==e&&a.push(f[_])}return u.kind=0,u}default:return this.refuse(r,e.range,F_(e)),null}}planBranch(r,e,t,n,s,a,l,o){let u;return e.kind==34?u=e.statements:u=[e],this.planSeq(r,u,t,n,s,a,l,o)}planLeaf(r,e,t,n){let s=e.node;if(s.kind==42){let l=s.expression;if(l.kind==31)return this.planAwait(r,e,l,t,n);if(l.kind==10){let o=l;if(o.operator==102&&o.right.kind==31)return this.planAwait(r,e,o.right,t,n,o.left)}}if(s.kind==51){let l=s.declarations;if(l.length==1){let o=l[0],u=o.initializer;if(u!=null&&u.kind==31)return this.liftDeclarator(r,o,n)?this.planAwait(r,e,u,t,n):null}}if(s.kind==47){let l=s.value;if(l!=null&&l.kind==31)return this.planAwait(r,e,l,t,n)}let a=new Array;switch(s.kind){case 42:{if(!this.walkExpression(r,s.expression,e.all,a,!1))return null;break}case 51:{let l=s.declarations;for(let o=0,u=l.length;o<u;++o){let c=l[o];e.declarations.push(c);let f=c.initializer;if(f&&!this.walkExpression(r,f,e.all,a,!1))return null}break}case 47:{let l=s.value;if(l&&!this.walkExpression(r,l,e.all,a,!1))return null;break}}if(a.length){let l=a.length>1?"more than one await in one statement (async lowering)":"await in an unsupported position (async lowering)";return this.refuse(r,a[0].range,l),null}return e}planAwait(r,e,t,n,s,a=null){let l=n.next++,o=t.operand,u=new vt;if(!this.walkExpression(r,o,u,null,!1))return null;let c=new vt;return a!=null&&!this.walkExpression(r,a,c,null,!0)?null:(e.kind=0,e.info=new C_(t,o,l,Hx+l.toString(),l),e.lo=l,e.hi=l,e.before=u,e.after=c,e.all=ba(u,c),e)}liftDeclarator(r,e,t){let n=e.name.text;if(t.hasLocal(n))return!0;if(qx(n))return this.refuse(r,e.name.range,"a local whose name is reserved by the state struct (async lowering)"),!1;let s=e.type;if(s==null){let a=ut(e.initializer,t.knownTypes(),0);if(a!=null)e.type=a,s=a;else return this.refuse(r,e.name.range,"a local without a declared type that crosses an await (async lowering)"),!1}return t.liftLocal(n,s,e),!0}liftDeclaredIn(r,e,t){let n=e.plans;for(let s=0,a=n.length;s<a;++s){let l=n[s],o=l.declarations;for(let u=0,c=o.length;u<c;++u)if(!this.liftDeclarator(r,o[u],t))return!1;if(l.kind==1&&l.lo!=0){if(!this.liftDeclaredIn(r,assert(l.statements),t))return!1}else if(l.kind==2&&l.lo!=0){if(!this.liftDeclaredIn(r,assert(l.thenSeq),t)||l.elseSeq!=null&&!this.liftDeclaredIn(r,assert(l.elseSeq),t))return!1}else if((l.kind==3||l.kind==4)&&l.lo!=0&&!this.liftDeclaredIn(r,assert(l.body),t))return!1}return!0}collectLifting(r,e,t){let n=new Array,s=e.plans;for(let a=0,l=s.length;a<l;++a){let o=s[a];if(o.lo!=0){let c=new vt;et(c.reads,o.after.reads),et(c.writes,o.after.writes),et(c.reads,o.all.reads),et(c.writes,o.all.writes);for(let f=a+1,_=s.length;f<_;++f)et(c.reads,s[f].all.reads),et(c.writes,s[f].all.writes);for(let f=0,_=n.length;f<_;++f){let d=n[f],g=d.name.text;if((c.reads.has(g)||c.writes.has(g))&&!this.liftDeclarator(r,d,t))return}}let u=o.declarations;for(let c=0,f=u.length;c<f;++c){let _=u[c];t.hasLocal(_.name.text)||n.push(_)}switch(o.kind){case 1:{this.collectLifting(r,assert(o.statements),t);break}case 2:{this.collectLifting(r,assert(o.thenSeq),t),o.elseSeq!=null&&this.collectLifting(r,assert(o.elseSeq),t);break}case 3:case 4:{this.collectLifting(r,assert(o.body),t);break}}}}emitSeq(r,e){let t=new Array,n=r.plans,s=new Array;for(let a=0,l=n.length;a<l;++a){let o=n[a];if(e.guarded&&o.kind==0&&o.lo==0&&o.info==null&&!o.nestedFunction&&o.node.kind!=59){Tn(s,Sa(o.node,e));continue}this.flushRun(s,t,e),Tn(t,this.emitPlan(o,e))}return this.flushRun(s,t,e),t}flushRun(r,e,t){r.length!=0&&(e.push(h.createIfStatement(ur(He(t.stateName,r[0].range),r[0].range),h.createBlockStatement(r.slice(0),r[0].range),null,r[0].range)),r.length=0)}emitPlan(r,e){let t=new Array,n=r.node,s=n.range;switch(r.kind){case 0:{if(r.nestedFunction||n.kind==59)return t.push(n),t;if(r.info!=null){let a=assert(r.info),l=new Array;l.push(h.createExpressionStatement(h.createBinaryExpression(102,Tu(e.stateName,a.fieldName,s),h.createPropertyAccessExpression(a.operand,h.createIdentifierExpression(Gx,s),s),s))),l.push(h.createExpressionStatement(Su(e.stateName,St(a.discriminator,s),s)));let o=new Array;Tn(o,Nk(e.lifting,e.stateName,s)),o.push(h.createExpressionStatement(h.createCallExpression(h.createIdentifierExpression(Ek,s),null,[h.createIdentifierExpression(e.stateName,s),Tu(e.stateName,a.fieldName,s)],s))),o.push(h.createReturnStatement(null,s)),l.push(h.createIfStatement(h.createUnaryPrefixExpression(96,h.createCallExpression(h.createIdentifierExpression(Ak,s),null,[Tu(e.stateName,a.fieldName,s)],s),s),h.createBlockStatement(o,s),null,s)),t.push(h.createIfStatement(ur(He(e.stateName,s),s),h.createBlockStatement(l,s),null,s));let u=new Array;return u.push(h.createExpressionStatement(Su(e.stateName,St(0,s),s))),Tn(u,Sa(n,e)),t.push(h.createIfStatement(Uk(He(e.stateName,s),St(a.discriminator,s),s),h.createBlockStatement(u,s),null,s)),t}if(r.lo==0){let a=Sa(n,e);e.guarded?t.push(h.createIfStatement(ur(He(e.stateName,s),s),h.createBlockStatement(a,s),null,s)):Tn(t,a)}return t}case 1:{let a=this.emitSeq(assert(r.statements),e);return r.lo==0?bu(cr(n,e),e,s):(t.push(h.createIfStatement(xu(e.stateName,r.lo,r.hi,s),h.createBlockStatement(a,s),null,s)),t)}case 2:{if(r.lo==0)return bu(cr(n,e),e,s);let a=this.emitSeq(assert(r.thenSeq),e),l=r.elseSeq!=null?this.emitSeq(assert(r.elseSeq),e):new Array,o=e.freshTemp(s),u=new Array;return u.push(h.createVariableStatement(null,[h.createVariableDeclaration(h.createIdentifierExpression(o,s),null,16,ve("bool",s),h.createFalseExpression(s),s)],s)),u.push(h.createIfStatement(ur(He(e.stateName,s),s),h.createBlockStatement([h.createExpressionStatement(L_(o,assert(r.cond),s))],s),h.createBlockStatement([h.createExpressionStatement(L_(o,jx(e.stateName,r.thenSeq!=null?assert(r.thenSeq).lo:0,r.thenSeq!=null?assert(r.thenSeq).hi:0,s),s))],s),s)),u.push(h.createIfStatement(h.createIdentifierExpression(o,s),h.createBlockStatement(a,s),l.length?h.createBlockStatement(l,s):null,s)),t.push(h.createIfStatement(xu(e.stateName,r.lo,r.hi,s),h.createBlockStatement(u,s),null,s)),t}case 3:{if(r.lo==0)return bu(cr(n,e),e,s);let a=this.emitSeq(assert(r.body),e),l=r.cond,o=h.createBinaryExpression(99,Wx(He(e.stateName,s),s),l??h.createTrueExpression(s),s);return t.push(h.createIfStatement(xu(e.stateName,r.lo,r.hi,s),h.createBlockStatement([h.createWhileStatement(o,h.createBlockStatement(a,s),s)],s),null,s)),t}case 4:{if(r.lo==0)return bu(cr(n,e),e,s);let a=this.emitSeq(assert(r.body),e),l=new Array;r.init!=null&&l.push(h.createIfStatement(ur(He(e.stateName,s),s),h.createBlockStatement(Sa(assert(r.init),e),s),null,s));let o=r.cond;return l.push(h.createForStatement(null,h.createBinaryExpression(99,Wx(He(e.stateName,s),s),o??h.createTrueExpression(s),s),r.incr!=null?assert(r.incr):null,h.createBlockStatement(a,s),s)),t.push(h.createIfStatement(xu(e.stateName,r.lo,r.hi,s),h.createBlockStatement(l,s),null,s)),t}}return t}walkExpression(r,e,t,n,s){switch(e.kind){case 8:{if(t){let a=e.text;s?t.writes.add(a):t.reads.add(a)}return!0}case 27:case 15:case 20:return!0;case 16:{let a=e.declaration;return a.isAsync?(this.refuse(r,e.range,a.arrowKind!=0?ya:ga),!1):!0}case 26:return this.refuse(r,e.range,"this in an async function body (async lowering)"),!1;case 25:return this.refuse(r,e.range,"super in an async function body (async lowering)"),!1;case 31:{let a=e;return n?(n.push(a),!0):(this.refuse(r,a.range,"await in an unsupported position (async lowering)"),!1)}case 18:{let a=e;switch(a.literalKind){case 0:case 1:case 2:case 4:return!0;case 3:{let l=a.expressions;for(let o=0,u=l.length;o<u;++o)if(!this.walkExpression(r,l[o],t,n,!1))return!1;return!0}case 5:{let l=a.elementExpressions;for(let o=0,u=l.length;o<u;++o)if(!this.walkExpression(r,l[o],t,n,!1))return!1;return!0}case 6:{let l=a.values;for(let o=0,u=l.length;o<u;++o)if(!this.walkExpression(r,l[o],t,n,!1))return!1;return!0}default:return this.refuse(r,e.range,F_(e)),!1}}case 9:{let a=e;return this.walkExpression(r,a.expression,t,n,s)?a.toType!=null?(this.refuse(r,a.range,"a type argument in an async body (async lowering)"),!1):!0:!1}case 10:{let a=e,l=Wk(a.operator);return this.walkExpression(r,a.left,t,n,l?!0:s)?this.walkExpression(r,a.right,t,n,!1):!1}case 11:{let a=e;if(!this.walkExpression(r,a.expression,t,n,!1))return!1;let l=a.args;for(let o=0,u=l.length;o<u;++o)if(!this.walkExpression(r,l[o],t,n,!1))return!1;return!0}case 13:{let a=e.expressions;for(let l=0,o=a.length;l<o;++l)if(!this.walkExpression(r,a[l],t,n,l==o-1?s:!1))return!1;return!0}case 14:{let a=e;return this.walkExpression(r,a.expression,t,n,!1)?this.walkExpression(r,a.elementExpression,t,n,!1):!1}case 17:return this.walkExpression(r,e.expression,t,n,!1);case 19:{let a=e.args;for(let l=0,o=a.length;l<o;++l)if(!this.walkExpression(r,a[l],t,n,!1))return!1;return!0}case 22:return this.walkExpression(r,e.expression,t,n,s);case 23:return this.walkExpression(r,e.expression,t,n,!1);case 24:{let a=e;return!this.walkExpression(r,a.condition,t,n,!1)||!this.walkExpression(r,a.ifThen,t,n,s)?!1:this.walkExpression(r,a.ifElse,t,n,s)}case 29:{let a=e,l=a.operator==88||a.operator==89;return this.walkExpression(r,a.operand,t,n,l?!0:s)}case 30:{let a=e,l=a.operator==88||a.operator==89;return this.walkExpression(r,a.operand,t,n,l?!0:s)}default:return this.refuse(r,e.range,F_(e)),!1}}lowerAsyncMethods(r,e,t,n){let s=new Array,a=e.members;for(let l=0,o=a.length;l<o;++l){let u=a[l];if(u.kind==62){let c=u;if(!c.isAsync)continue;if(c.is(32)){this.refuse(n,c.range,"async static methods (async lowering)",c);continue}if(c.body==null)continue;let f=this.lowerAsyncFunction(r,c,t,n,s,ve(e.name.text,c.range));if(f)for(let _=0,d=f.length;_<d;++_)f[_]!==c&&s.push(f[_])}else if(u.kind==58){let c=u.initializer;c&&this.refuseAsyncFunctionExpression(c,n)}}return s}refuseAsyncFunctionExpression(r,e){if(r.kind!=16)return;let t=r.declaration;t.isAsync&&this.refuse(e,t.range,t.arrowKind!=0?ya:ga,r)}refuse(r,e,t,n=null){let s=n??this.currentConstruct;s!=null?this.recordRefusalStart(s.range.source,s.range.start):this.recordRefusalStart(e.source,e.start),r.error(100,e,t)}recordRefusal(r){this.recordRefusalStart(r.range.source,r.range.start)}recordRefusalStart(r,e){let t=this.refusals;t==null&&(t=new Map,this.refusals=t);let n=te(t,r);n==null&&(n=new Set,t.set(r,n)),n.add(e)}};var w_=class{constructor(r){this.node=r;this.kind=0;this.lo=0;this.hi=0;this.info=null;this.before=new vt;this.after=new vt;this.all=new vt;this.statements=null;this.cond=null;this.thenSeq=null;this.elseSeq=null;this.body=null;this.init=null;this.incr=null;this.declarations=new Array;this.nestedFunction=!1;this.range=r.range}},R_=class{constructor(){this.plans=new Array;this.lo=0;this.hi=0}add(r){r.lo!=0&&((this.lo==0||r.lo<this.lo)&&(this.lo=r.lo),r.hi>this.hi&&(this.hi=r.hi)),this.plans.push(r)}},Iu=class{constructor(){this.next=1}},C_=class{constructor(r,e,t,n,s){this.node=r;this.operand=e;this.discriminator=t;this.fieldName=n;this.ordinal=s}},vt=class{constructor(){this.reads=new Set;this.writes=new Set}},P_=class{constructor(r,e,t,n,s,a=null,l=!0,o=null){this.lifting=r;this.stateName=e;this.terminal=t;this.returnsValue=n;this.localNames=s;this.returnType=a;this.guarded=l;this.hoisted=o;this.tempCount=0}freshTemp(r){let e=Ux;for(;this.localNames.has(e);)e=Ux+(++this.tempCount).toString();return this.localNames.add(e),e}};function et(i,r){for(let e=Set_values(r),t=0,n=e.length;t<n;++t)i.add(unchecked(e[t]))}function ba(i,r){let e=new vt;return et(e.reads,i.reads),et(e.writes,i.writes),et(e.reads,r.reads),et(e.writes,r.writes),e}function xa(i){let r=new vt,e=i.plans;for(let t=0,n=e.length;t<n;++t)et(r.reads,e[t].all.reads),et(r.writes,e[t].all.writes);return r}function Fk(i,r){let e=0;return i!=null&&i.lo!=0&&(e=i.lo),r!=null&&r.lo!=0&&(e==0||r.lo<e)&&(e=r.lo),e}function wk(i,r){let e=0;return i!=null&&i.hi>e&&(e=i.hi),r!=null&&r.hi>e&&(e=r.hi),e}function Ea(i,r){let e=i.plans;for(let t=0,n=e.length;t<n;++t){let s=e[t];s.info!=null&&r.push(assert(s.info).fieldName),s.statements!=null&&Ea(assert(s.statements),r),s.thenSeq!=null&&Ea(assert(s.thenSeq),r),s.elseSeq!=null&&Ea(assert(s.elseSeq),r),s.body!=null&&Ea(assert(s.body),r)}}function Aa(i,r){let e=i.plans;for(let t=0,n=e.length;t<n;++t){let s=e[t];et(r,s.all.writes),et(r,s.before.writes),s.statements!=null&&Aa(assert(s.statements),r),s.thenSeq!=null&&Aa(assert(s.thenSeq),r),s.elseSeq!=null&&Aa(assert(s.elseSeq),r),s.body!=null&&Aa(assert(s.body),r)}}function Ta(i,r){let e=i.plans;for(let t=0,n=e.length;t<n;++t){let s=e[t];s.info!=null&&r.push(assert(s.info)),s.statements!=null&&Ta(assert(s.statements),r),s.thenSeq!=null&&Ta(assert(s.thenSeq),r),s.elseSeq!=null&&Ta(assert(s.elseSeq),r),s.body!=null&&Ta(assert(s.body),r)}}function Rk(i){let r=i.plans;if(!r.length)return!1;let e=r[r.length-1];return e.kind==0&&e.node.kind==47}function Ck(i){for(let r=0,e=i.length;r<e;++r){let t=i[r].kind;if(t==59){if(i[r].isAsync)return!0}else{if(t==63||t==55)return!0;if(t==51){let n=i[r].declarations;for(let s=0,a=n.length;s<a;++s){let l=n[s].initializer;if(l!=null&&l.kind==16&&l.declaration.isAsync)return!0}}}}return!1}function Lr(i,r){for(let e=0,t=i.length;e<t;++e){let n=i[e];switch(n.kind){case 42:{let s=n.expression;if(s.kind==16){let a=te(Or(),s);a!=null&&r.add(a)}break}case 51:{let s=n.declarations;for(let a=0,l=s.length;a<l;++a){let o=s[a].initializer;if(o!=null&&o.kind==16){let u=te(Or(),o);u!=null&&r.add(u)}}break}case 34:{Lr(n.statements,r);break}case 45:{let s=n;Lr([s.ifTrue],r),s.ifFalse!=null&&Lr([assert(s.ifFalse)],r);break}case 53:{Lr([n.body],r);break}case 37:{Lr([n.body],r);break}case 43:{let s=n;s.initializer!=null&&Lr([assert(s.initializer)],r),Lr([s.body],r);break}default:break}}}function Au(i,r,e){for(let t=0,n=i.length;t<n;++t){let s=i[t];switch(s.kind){case 51:{let a=s.declarations;for(let l=0,o=a.length;l<o;++l){let u=a[l],c=u.name.text;if(!r.has(c)||e.hasLocal(c))continue;let f=u.type;f!=null&&e.liftLocal(c,f,u)}break}case 34:{Au(s.statements,r,e);break}case 45:{let a=s;Au([a.ifTrue],r,e),a.ifFalse!=null&&Au([assert(a.ifFalse)],r,e);break}default:break}}}function Mr(i,r){switch(i.kind){case 34:{let e=i.statements;for(let t=0,n=e.length;t<n;++t)Mr(e[t],r);break}case 45:{let e=i;Mr(e.ifTrue,r),e.ifFalse!=null&&Mr(assert(e.ifFalse),r);break}case 53:{Mr(i.body,r);break}case 43:{let e=i;e.initializer!=null&&Mr(assert(e.initializer),r),Mr(e.body,r);break}case 51:{let e=i.declarations;for(let t=0,n=e.length;t<n;++t)r.add(e[t].name.text);break}default:break}}function Ti(i,r){switch(i.kind){case 34:{let e=i.statements;for(let t=0,n=e.length;t<n;++t)Ti(e[t],r);break}case 45:{let e=i;Ti(e.ifTrue,r),e.ifFalse!=null&&Ti(assert(e.ifFalse),r);break}case 53:{Ti(i.body,r);break}case 43:{let e=i;e.initializer!=null&&Ti(assert(e.initializer),r),Ti(e.body,r);break}case 51:{let e=i.declarations;for(let t=0,n=e.length;t<n;++t){let s=e[t],a=s.type;a!=null&&r.set(s.name.text,a)}break}default:break}}function Pk(i){switch(i.kind){case 59:case 62:case 55:case 56:case 61:case 63:case 64:return i.name.text;case 51:{let r=i.declarations;return r.length?r[0].name.text:null}default:return null}}function Vx(i,r){return h.createExpressionStatement(h.createCallExpression(h.createIdentifierExpression(Kx,r),null,[h.createIdentifierExpression(i,r)],r))}function Ox(i,r,e){return h.createVariableStatement(null,[h.createVariableDeclaration(h.createIdentifierExpression(i,r),null,16,null,h.createPropertyAccessExpression(h.createIdentifierExpression(e,r),h.createIdentifierExpression(i,r),r),r)],r)}function Sa(i,r){let e=r.stateName;if(i.kind==47){let t=i,n=t.value,s=t.range,a=new Array;return n!=null?r.returnsValue?a.push(h.createExpressionStatement(h.createCallExpression(h.createIdentifierExpression(vk,s),[assert(r.returnType)],[h.createIdentifierExpression(e,s),n],s))):(a.push(h.createExpressionStatement(n)),a.push(Vx(e,s))):a.push(Vx(e,s)),a.push(h.createExpressionStatement(Su(e,St(r.terminal,s),s))),a.push(h.createReturnStatement(null,s)),a}if(i.kind==51){let t=i.declarations,n=!1;for(let a=0,l=t.length;a<l;++a){let o=t[a].name.text;if(r.lifting.hasLocal(o)||r.hoisted!=null&&assert(r.hoisted).has(o)){n=!0;break}}if(!n)return[i];let s=new Array;for(let a=0,l=t.length;a<l;++a){let o=t[a],u=o.name.text;if(!r.lifting.hasLocal(u)&&(r.hoisted==null||!assert(r.hoisted).has(u))){s.push(h.createVariableStatement(null,[o],o.range));continue}let c=o.initializer;c!=null&&s.push(h.createExpressionStatement(L_(u,c,o.range)))}return s}return[i]}function cr(i,r){switch(i.kind){case 34:{let e=i,t=new Array,n=e.statements;for(let s=0,a=n.length;s<a;++s){let l=cr(n[s],r);if(l.kind==34&&n[s].kind!=34){let o=l.statements;for(let u=0,c=o.length;u<c;++u)t.push(o[u])}else t.push(l)}return h.createBlockStatement(t,e.range)}case 45:{let e=i;return h.createIfStatement(e.condition,cr(e.ifTrue,r),e.ifFalse!=null?cr(assert(e.ifFalse),r):null,e.range)}case 53:{let e=i;return h.createWhileStatement(e.condition,cr(e.body,r),e.range)}case 43:{let e=i;return h.createForStatement(e.initializer,e.condition,e.incrementor,cr(e.body,r),e.range)}case 47:{let e=Sa(i,r);return e.length==1?e[0]:h.createBlockStatement(e,i.range)}default:return i}}function bu(i,r,e){return r.guarded?Bk(i,r,e):[i]}function Bk(i,r,e){return[h.createIfStatement(ur(He(r.stateName,e),e),h.createBlockStatement([i],e),null,e)]}function Tn(i,r){for(let e=0,t=r.length;e<t;++e)i.push(r[e])}function Nk(i,r,e){let t=new Array,n=i.parameterNames;for(let s=0,a=n.length;s<a;++s){let l=n[s],o=i.parameterRange(l);t.push(h.createExpressionStatement(M_(h.createPropertyAccessExpression(h.createIdentifierExpression(r,o),h.createIdentifierExpression(l,o),o),h.createIdentifierExpression(l,o),o)))}for(let s=0,a=i.locals.length;s<a;++s){let l=i.locals[s],o=l.declaration.name.range;t.push(h.createExpressionStatement(M_(h.createPropertyAccessExpression(h.createIdentifierExpression(r,o),h.createIdentifierExpression(l.name,o),o),h.createIdentifierExpression(l.name,o),o)))}return t}function F_(i){switch(i.kind){case 31:return"await in an unsupported position (async lowering)";case 16:return i.declaration.isAsync?ga:"a nested function in an async function body (async lowering)";case 12:return"a nested class in an async function body (async lowering)";case 26:return"this in an async function body (async lowering)";case 25:return"super in an async function body (async lowering)";case 49:return"throw in an async function body (async lowering)";case 50:return"try/catch in an async function body (async lowering)";case 48:return"switch in an async function body (async lowering)";case 45:return"if in an async function body (async lowering)";case 43:return"for in an async function body (async lowering)";case 44:return"for-of in an async function body (async lowering)";case 53:return"while in an async function body (async lowering)";case 37:return"do in an async function body (async lowering)";case 34:return"a nested block in an async function body (async lowering)";default:return"this async body (async lowering)"}}function B_(i,r){let e="state";for(;Lk(i,r,e);)e="$"+e;return e}function Lk(i,r,e){for(let n=0,s=i.length;n<s;++n)if(i[n].name.text==e)return!0;let t=new Set;return Mr(r,t),t.has(e)}function Mk(i,r){return B_(r,i)}function zk(i){let r=i.statements,e=r.length>0?r[0]:null;if(e==null||e.kind!=51)return;let t=e.declarations;if(t.length!=1||t[0].name.text!=Sn)return;r.shift();let n=r.length>0?r[0]:null;if(n==null||n.kind!=42)return;let s=n.expression;if(s.kind!=10)return;let a=s;if(a.operator!=102||a.left.kind!=23)return;let l=a.left;l.expression.kind==8&&l.expression.text==Sn&&l.property.text==va&&r.shift()}function N_(i,r,e){for(let t=0,n=i.length;t<n;++t)Si(i[t],r,e)}function Si(i,r,e){switch(i.kind){case 42:{let t=i.expression;i.expression=_e(t,r,e);break}case 47:{let t=i.value;t!=null&&(i.value=_e(t,r,e));break}case 51:{let t=i.declarations;for(let n=0,s=t.length;n<s;++n){let a=t[n].initializer;a!=null&&(t[n].initializer=_e(a,r,e))}break}case 34:{N_(i.statements,r,e);break}case 45:{let t=i;t.condition=_e(t.condition,r,e),Si(t.ifTrue,r,e),t.ifFalse!=null&&Si(assert(t.ifFalse),r,e);break}case 53:{let t=i;t.condition=_e(t.condition,r,e),Si(t.body,r,e);break}case 37:{let t=i;Si(t.body,r,e),t.condition=_e(t.condition,r,e);break}case 43:{let t=i,n=t.initializer;n!=null&&Si(n,r,e);let s=t.condition;s!=null&&(t.condition=_e(s,r,e));let a=t.incrementor;a!=null&&(t.incrementor=_e(a,r,e)),Si(t.body,r,e);break}case 48:{let t=i;t.condition=_e(t.condition,r,e);let n=t.cases;for(let s=0,a=n.length;s<a;++s)n[s].label!=null&&(n[s].label=_e(assert(n[s].label),r,e)),N_(n[s].statements,r,e);break}default:break}}function _e(i,r,e){switch(i.kind){case 26:return h.createPropertyAccessExpression(h.createCallExpression(h.createIdentifierExpression("changetype",i.range),[ve(r,i.range)],[h.createPropertyAccessExpression(h.createIdentifierExpression(e,i.range),h.createIdentifierExpression(vi,i.range),i.range)],i.range),h.createIdentifierExpression(va,i.range),i.range);case 10:{let t=i;return t.left=_e(t.left,r,e),t.right=_e(t.right,r,e),t}case 11:{let t=i;t.expression=_e(t.expression,r,e);let n=t.args;for(let s=0,a=n.length;s<a;++s)n[s]=_e(n[s],r,e);return t}case 23:{let t=i;return t.expression=_e(t.expression,r,e),t}case 22:{let t=i;return t.expression=_e(t.expression,r,e),t}case 30:{let t=i;return t.operand=_e(t.operand,r,e),t}case 29:{let t=i;return t.operand=_e(t.operand,r,e),t}case 14:{let t=i;return t.expression=_e(t.expression,r,e),t.elementExpression=_e(t.elementExpression,r,e),t}case 24:{let t=i;return t.condition=_e(t.condition,r,e),t.ifThen=_e(t.ifThen,r,e),t.ifElse=_e(t.ifElse,r,e),t}case 13:{let t=i,n=t.expressions;for(let s=0,a=n.length;s<a;++s)n[s]=_e(n[s],r,e);return t}case 19:{let t=i,n=t.args;for(let s=0,a=n.length;s<a;++s)n[s]=_e(n[s],r,e);return t}case 17:{let t=i;return t.expression=_e(t.expression,r,e),t}case 9:{let t=i;return t.expression=_e(t.expression,r,e),t}case 31:{let t=i;return t.operand=_e(t.operand,r,e),t}default:return i}}function qx(i){return i==vu||i==Eu||i==vi||i=="record"?!0:i.startsWith(Hx)}function Dk(i,r,e){return h.createPropertyAccessExpression(i,h.createIdentifierExpression(r,e),e)}function Tu(i,r,e){return Dk(h.createIdentifierExpression(i,e),r,e)}function Gk(i,r,e){return Tu(i,r,e)}function He(i,r){return h.createPropertyAccessExpression(h.createIdentifierExpression(i,r),h.createIdentifierExpression(vu,r),r)}function Su(i,r,e){return h.createBinaryExpression(102,He(i,e),r,e)}function xu(i,r,e,t){return r==0?ur(He(i,t),t):h.createBinaryExpression(99,ur(He(i,t),t),jx(i,r,e,t),t)}function jx(i,r,e,t){return r==0?h.createFalseExpression(t):h.createBinaryExpression(98,h.createBinaryExpression(76,He(i,t),St(r,t),t),h.createBinaryExpression(75,He(i,t),St(e,t),t),t)}function ur(i,r){return h.createBinaryExpression(77,i,St(0,r),r)}function Wx(i,r){return h.createBinaryExpression(78,i,St(0,r),r)}function Uk(i,r,e){return h.createBinaryExpression(77,i,r,e)}function L_(i,r,e){return M_(h.createIdentifierExpression(i,e),r,e)}function M_(i,r,e){return h.createBinaryExpression(102,i,r,e)}function Vk(i){return i.kind==1&&i.name.identifier.text==""}var z_=class{constructor(r,e,t){this.name=r;this.type=e;this.declaration=t}},D_=class{constructor(){this.locals=new Array;this.parameters=new Set;this.parameterNames=new Array;this.parameterRanges=new Map;this.declaredTypes=new Map}liftParameter(r,e){this.parameters.has(r)||(this.parameters.add(r),this.parameterNames.push(r),this.parameterRanges.set(r,e))}parameterRange(r){return assert(this.parameterRanges.get(r))}liftLocal(r,e,t){this.hasLocal(r)||this.locals.push(new z_(r,e,t))}knownTypes(){let r=new Map,e=this.declaredTypes,t=Map_keys(e);for(let n=0,s=t.length;n<s;++n){let a=unchecked(t[n]);r.set(a,assert(e.get(a)))}for(let n=0,s=this.locals.length;n<s;++n){let a=this.locals[n];r.set(a.name,a.type)}return r}hasLocal(r){for(let e=0,t=this.locals.length;e<t;++e)if(this.locals[e].name==r)return!0;return!1}};function Ok(i){return i.kind==1&&i.name.identifier.text=="void"}function qk(i,r){return h.createNamedType(h.createSimpleTypeName("Task",r),[i],!1,r)}function ve(i,r){return h.createNamedType(h.createSimpleTypeName(i,r),null,!1,r)}function Wk(i){switch(i){case 102:case 103:case 104:case 105:case 106:case 107:case 108:case 109:case 110:case 111:case 112:case 114:case 113:return!0;default:return!1}}function St(i,r){return h.createIntegerLiteralExpression(i64_new(i),r)}function Nr(i,r,e,t){return h.createBinaryExpression(102,h.createPropertyAccessExpression(i,h.createIdentifierExpression(r,t),t),e,t)}function Qx(i){let r=new mu;r.program=i,r.afterParse(i.parser);let e=new ha;e.program=i,e.afterParse(i.parser);let t=new Ia;t.program=i,t.afterParse(i.parser)}function Kk(){return new oa}function Hk(i,r){i.target=r}function jk(i,r){i.runtime=r}function Qk(i,r){i.noAssert=r}function Xk(i,r){i.exportMemory=r}function $k(i,r){i.importMemory=r}function Zk(i,r){i.initialMemory=r}function Yk(i,r){i.maximumMemory=r}function Jk(i,r){i.sharedMemory=r}function eF(i,r){i.importTable=r}function tF(i,r){i.exportTable=r}function rF(i,r){i.sourceMap=r}function iF(i,r){i.uncheckedBehavior=r}function nF(i,r){i.memoryBase=r}function sF(i,r){i.tableBase=r}function aF(i,r,e){let t=i.globalAliases;t||(i.globalAliases=t=new Map),t.set(r,e)}function lF(i,r){let e=i.globalAliases;e&&e.delete(r)}function oF(i,r){i.exportStart=r}function uF(i,r){i.noUnsafe=r}function cF(i,r){i.lowMemoryLimit=r}function pF(i,r){i.exportRuntime=r}var fF=32768;function _F(i,r){i.stackSize=r}function dF(i,r,e,t){i.bundleMajorVersion=r,i.bundleMinorVersion=e,i.bundlePatchVersion=t}var hF=1,mF=2,yF=4,gF=8,bF=16,xF=32,EF=64,AF=128,TF=256,SF=512,vF=1024,IF=2048,kF=4096,FF=8192,wF=16384,RF=32768,CF=65535,PF=lu;function BF(i,r,e){i.setFeature(r,e)}function NF(i,r,e){i.optimizeLevelHint=r,i.shrinkLevelHint=e}function LF(i,r){i.basenameHint=r}function MF(i,r){i.bindingsHint=r}function zF(i,r){i.pedantic=r}function DF(i,r){i.debugInfo=r}function GF(i){return new Ls(i)}function UF(i){return i.diagnosticsOffset<i.diagnostics.length?i.diagnostics[i.diagnosticsOffset++]:null}function VF(i,r){return i.getSource(r)}function OF(i){return i.code}function qF(i){return i.category}function WF(i){return i.message}function KF(i){return i.range}function HF(i){return i.relatedRange}function jF(i){return i.start}function QF(i){return i.end}function XF(i){return i.source}function $F(i){return i.normalizedPath}function ZF(i){return i.category==1}function YF(i){return i.category==2}function JF(i){return i.category==3}function ew(i,r,e,t=!1){i.parser.parseFile(r,e,t)}function tw(i){return i.parser.nextFile()}function rw(i,r){return i.parser.getDependee(r)}function iw(i){i.initialize()}function nw(i){return i.parser.finish(),new ua(i).compile()}function sw(i,r){return bn.build(i,r)}function aw(i,r){return _n.build(i,r)}function lw(i){return i.ref}function ow(i){return i.validate()}function uw(i,r,e,t=!1,n=!1){i.optimize(r,e,t,n)}var G_=class i{constructor(){this.sb=[];this.indentLevel=0}static build(r){let e=new i;return e.visitNode(r),e.finish()}visitNode(r){switch(r.kind){case 0:{this.visitSource(r);break}case 1:{this.visitNamedTypeNode(r);break}case 2:{this.visitFunctionTypeNode(r);break}case 3:{this.visitTupleTypeNode(r);break}case 6:{this.visitTypeParameter(r);break}case 15:case 20:case 25:case 26:case 27:case 28:case 8:{this.visitIdentifierExpression(r);break}case 9:{this.visitAssertionExpression(r);break}case 10:{this.visitBinaryExpression(r);break}case 11:{this.visitCallExpression(r);break}case 12:{this.visitClassExpression(r);break}case 13:{this.visitCommaExpression(r);break}case 14:{this.visitElementAccessExpression(r);break}case 16:{this.visitFunctionExpression(r);break}case 17:{this.visitInstanceOfExpression(r);break}case 18:{this.visitLiteralExpression(r);break}case 19:{this.visitNewExpression(r);break}case 22:{this.visitParenthesizedExpression(r);break}case 23:{this.visitPropertyAccessExpression(r);break}case 24:{this.visitTernaryExpression(r);break}case 29:{this.visitUnaryPostfixExpression(r);break}case 30:{this.visitUnaryPrefixExpression(r);break}case 31:{this.visitAwaitExpression(r);break}case 34:{this.visitBlockStatement(r);break}case 35:{this.visitBreakStatement(r);break}case 36:{this.visitContinueStatement(r);break}case 37:{this.visitDoStatement(r);break}case 38:{this.visitEmptyStatement(r);break}case 39:{this.visitExportStatement(r);break}case 40:{this.visitExportDefaultStatement(r);break}case 41:{this.visitExportImportStatement(r);break}case 42:{this.visitExpressionStatement(r);break}case 43:{this.visitForStatement(r);break}case 44:{this.visitForOfStatement(r);break}case 45:{this.visitIfStatement(r);break}case 46:{this.visitImportStatement(r);break}case 47:{this.visitReturnStatement(r);break}case 48:{this.visitSwitchStatement(r);break}case 49:{this.visitThrowStatement(r);break}case 50:{this.visitTryStatement(r);break}case 51:{this.visitVariableStatement(r);break}case 53:{this.visitWhileStatement(r);break}case 54:{this.visitModuleDeclaration(r);break}case 55:{this.visitClassDeclaration(r);break}case 56:{this.visitEnumDeclaration(r);break}case 57:{this.visitEnumValueDeclaration(r);break}case 58:{this.visitFieldDeclaration(r);break}case 59:{this.visitFunctionDeclaration(r);break}case 60:{this.visitImportDeclaration(r);break}case 61:{this.visitInterfaceDeclaration(r);break}case 62:{this.visitMethodDeclaration(r);break}case 63:{this.visitNamespaceDeclaration(r);break}case 64:{this.visitTypeDeclaration(r);break}case 65:{this.visitVariableDeclaration(r);break}case 66:{this.serializeDecorator(r);break}case 67:{this.visitExportMember(r);break}case 7:{this.serializeParameter(r);break}case 68:{this.visitSwitchCase(r);break}case 69:{this.visitIndexSignature(r);break}default:assert(!1)}}visitSource(r){let e=r.statements;for(let t=0,n=e.length;t<n;++t)this.visitNodeAndTerminate(e[t])}visitTypeNode(r){switch(r.kind){case 1:{this.visitNamedTypeNode(r);break}case 2:{this.visitFunctionTypeNode(r);break}case 3:{this.visitTupleTypeNode(r);break}default:assert(!1)}}visitTypeName(r){this.visitIdentifierExpression(r.identifier);let e=this.sb,t=r.next;for(;t;)e.push("."),this.visitIdentifierExpression(t.identifier),t=t.next}visitNamedTypeNode(r){this.visitTypeName(r.name);let e=r.typeArguments;if(e){let t=e.length,n=this.sb;if(t){n.push("<"),this.visitTypeNode(e[0]);for(let s=1;s<t;++s)n.push(", "),this.visitTypeNode(e[s]);n.push(">")}r.isNullable&&n.push(" | null")}this.visitTypeAttributes(r)}visitTypeAttributes(r){let e=r.attributes;if(!e)return;let t=this.sb;for(let n=0,s=e.length;n<s;++n){let a=e[n];t.push(" @"),this.visitNode(a.name);let l=a.args;if(l){t.push("(");let o=l.length;if(o){this.visitNode(l[0]);for(let u=1;u<o;++u)t.push(", "),this.visitNode(l[u])}t.push(")")}}}visitFunctionTypeNode(r){let e=r.isNullable,t=this.sb;t.push(e?"((":"(");let n=r.explicitThisType;n&&(t.push("this: "),this.visitTypeNode(n));let s=r.parameters,a=s.length;if(a){n&&t.push(", "),this.serializeParameter(s[0]);for(let o=1;o<a;++o)t.push(", "),this.serializeParameter(s[o])}let l=r.returnType;l?(t.push(") => "),this.visitTypeNode(l)):t.push(") => void"),e&&t.push(") | null"),this.visitTypeAttributes(r)}visitTupleTypeNode(r){let e=this.sb;e.push("[");let t=r.elements,n=r.elementNames,s=t.length;if(s){let a=n?n[0]:null;a&&(this.visitIdentifierExpression(a),e.push(": ")),this.visitTypeNode(t[0]);for(let l=1;l<s;++l)e.push(", "),a=n?n[l]:null,a&&(this.visitIdentifierExpression(a),e.push(": ")),this.visitTypeNode(t[l])}e.push("]"),r.isNullable&&e.push(" | null"),this.visitTypeAttributes(r)}visitTypeParameter(r){this.visitIdentifierExpression(r.name);let e=r.extendsType;e&&(this.sb.push(" extends "),this.visitTypeNode(e));let t=r.defaultType;t&&(this.sb.push("="),this.visitTypeNode(t))}visitIdentifierExpression(r){r.isQuoted?this.visitStringLiteral(r.text):this.sb.push(r.text)}visitArrayLiteralExpression(r){let e=this.sb;e.push("[");let t=r.elementExpressions,n=t.length;if(n){let s=t[0];s&&this.visitNode(s);for(let a=1;a<n;++a)s=t[a],e.push(", "),s&&this.visitNode(s)}e.push("]")}visitObjectLiteralExpression(r){let e=this.sb,t=r.names,n=r.values,s=t.length;if(assert(s==n.length),s){e.push(`{
307
+ `),W(e,++this.indentLevel),this.visitNode(t[0]),e.push(": "),this.visitNode(n[0]);for(let a=1;a<s;++a){e.push(`,
308
+ `),W(e,this.indentLevel);let l=t[a],o=n[a];l==o?this.visitNode(l):(this.visitNode(l),e.push(": "),this.visitNode(o))}e.push(`
309
+ `),W(e,--this.indentLevel),e.push("}")}else e.push("{}")}visitAssertionExpression(r){let e=this.sb;switch(r.assertionKind){case 0:{e.push("<"),this.visitTypeNode(assert(r.toType)),e.push(">"),this.visitNode(r.expression);break}case 1:{this.visitNode(r.expression),e.push(" as "),this.visitTypeNode(assert(r.toType));break}case 2:{this.visitNode(r.expression),e.push("!");break}case 3:{this.visitNode(r.expression),e.push(" as const");break}default:assert(!1)}}visitBinaryExpression(r){let e=this.sb;this.visitNode(r.left),e.push(" "),e.push(Le(r.operator)),e.push(" "),this.visitNode(r.right)}visitCallExpression(r){this.visitNode(r.expression),this.visitArguments(r.typeArguments,r.args)}visitArguments(r,e){let t=this.sb;if(r){let s=r.length;if(s){t.push("<"),this.visitTypeNode(r[0]);for(let a=1;a<s;++a)t.push(", "),this.visitTypeNode(r[a]);t.push(">(")}}else t.push("(");let n=e.length;if(n){this.visitNode(e[0]);for(let s=1;s<n;++s)t.push(", "),this.visitNode(e[s])}t.push(")")}visitClassExpression(r){let e=r.declaration;this.visitClassDeclaration(e)}visitCommaExpression(r){let e=r.expressions,t=assert(e.length);this.visitNode(e[0]);let n=this.sb;for(let s=1;s<t;++s)n.push(","),this.visitNode(e[s])}visitElementAccessExpression(r){let e=this.sb;this.visitNode(r.expression),e.push("["),this.visitNode(r.elementExpression),e.push("]")}visitFunctionExpression(r){let e=r.declaration;e.isAsync&&this.sb.push("async "),e.arrowKind?assert(e.name.text.length==0):e.name.text.length?this.sb.push("function "):this.sb.push("function"),this.visitFunctionCommon(e)}visitLiteralExpression(r){switch(r.literalKind){case 0:{this.visitFloatLiteralExpression(r);break}case 1:{this.visitIntegerLiteralExpression(r);break}case 2:{this.visitStringLiteralExpression(r);break}case 3:{this.visitTemplateLiteralExpression(r);break}case 4:{this.visitRegexpLiteralExpression(r);break}case 5:{this.visitArrayLiteralExpression(r);break}case 6:{this.visitObjectLiteralExpression(r);break}default:{assert(!1);break}}}visitFloatLiteralExpression(r){this.sb.push(r.value.toString())}visitInstanceOfExpression(r){this.visitNode(r.expression),this.sb.push(" instanceof "),this.visitTypeNode(r.isType)}visitIntegerLiteralExpression(r){let e=r.range,t=e.source.text.startsWith("-",e.start);this.sb.push(i64_to_string(r.value,!t))}visitStringLiteral(r){let e=this.sb;e.push('"'),e.push(Re(r,34)),e.push('"')}visitStringLiteralExpression(r){this.visitStringLiteral(r.value)}visitTemplateLiteralExpression(r){let e=this.sb,t=r.tag,n=r.parts,s=r.expressions;t&&this.visitNode(t),e.push("`"),e.push(Re(n[0],96)),assert(n.length==s.length+1);for(let a=0,l=s.length;a<l;++a)e.push("${"),this.visitNode(s[a]),e.push("}"),e.push(Re(n[a+1],96));e.push("`")}visitRegexpLiteralExpression(r){let e=this.sb;e.push("/"),e.push(r.pattern),e.push("/"),e.push(r.patternFlags)}visitNewExpression(r){this.sb.push("new "),this.visitTypeName(r.typeName),this.visitArguments(r.typeArguments,r.args)}visitParenthesizedExpression(r){let e=this.sb;e.push("("),this.visitNode(r.expression),e.push(")")}visitPropertyAccessExpression(r){this.visitNode(r.expression),this.sb.push("."),this.visitIdentifierExpression(r.property)}visitTernaryExpression(r){let e=this.sb;this.visitNode(r.condition),e.push(" ? "),this.visitNode(r.ifThen),e.push(" : "),this.visitNode(r.ifElse)}visitUnaryExpression(r){switch(r.kind){case 29:{this.visitUnaryPostfixExpression(r);break}case 30:{this.visitUnaryPrefixExpression(r);break}default:assert(!1)}}visitUnaryPostfixExpression(r){this.visitNode(r.operand),this.sb.push(Le(r.operator))}visitUnaryPrefixExpression(r){this.sb.push(Le(r.operator)),this.visitNode(r.operand)}visitAwaitExpression(r){this.sb.push("await "),this.visitNode(r.operand)}visitNodeAndTerminate(r){this.visitNode(r);let e=this.sb;if(!e.length||r.kind==51||r.kind==42)e.push(`;
310
+ `);else{let t=e[e.length-1],n=t.length-1;n>=0&&(t.charCodeAt(n)==125||t.charCodeAt(n)==59)?e.push(`
311
+ `):e.push(`;
312
+ `)}}visitBlockStatement(r){let e=this.sb,t=r.statements,n=t.length;if(n){e.push(`{
313
+ `);let s=++this.indentLevel;for(let a=0;a<n;++a)W(e,s),this.visitNodeAndTerminate(t[a]);W(e,--this.indentLevel),e.push("}")}else e.push("{}")}visitBreakStatement(r){let e=r.label;e?(this.sb.push("break "),this.visitIdentifierExpression(e)):this.sb.push("break")}visitContinueStatement(r){let e=r.label;e?(this.sb.push("continue "),this.visitIdentifierExpression(e)):this.sb.push("continue")}visitClassDeclaration(r,e=!1){let t=r.decorators;if(t)for(let f=0,_=t.length;f<_;++f)this.serializeDecorator(t[f]);let n=this.sb;e?n.push("export default "):this.serializeExternalModifiers(r),r.is(128)&&n.push("abstract "),r.name.text.length?(n.push("class "),this.visitIdentifierExpression(r.name)):n.push("class");let s=r.typeParameters;if(s!=null&&s.length>0){n.push("<"),this.visitTypeParameter(s[0]);for(let f=1,_=s.length;f<_;++f)n.push(", "),this.visitTypeParameter(s[f]);n.push(">")}let a=r.extendsType;a&&(n.push(" extends "),this.visitTypeNode(a));let l=r.implementsTypes;if(l){let f=l.length;if(f){n.push(" implements "),this.visitTypeNode(l[0]);for(let _=1;_<f;++_)n.push(", "),this.visitTypeNode(l[_])}}let o=r.indexSignature,u=r.members,c=u.length;if(o||c){n.push(` {
314
+ `);let f=++this.indentLevel;o&&(W(n,f),this.visitNodeAndTerminate(o));for(let _=0,d=u.length;_<d;++_){let g=u[_];(g.kind!=58||g.parameterIndex<0)&&(W(n,f),this.visitNodeAndTerminate(g))}W(n,--this.indentLevel),n.push("}")}else n.push(" {}")}visitDoStatement(r){let e=this.sb;e.push("do "),this.visitNode(r.body),r.body.kind==34?e.push(" while ("):(e.push(`;
315
+ `),W(e,this.indentLevel),e.push("while (")),this.visitNode(r.condition),e.push(")")}visitEmptyStatement(r){}visitEnumDeclaration(r,e=!1){let t=this.sb;e?t.push("export default "):this.serializeExternalModifiers(r),r.is(8)&&t.push("const "),t.push("enum "),this.visitIdentifierExpression(r.name);let n=r.underlyingTypeNode;n&&(t.push(": "),this.visitTypeNode(n));let a=r.values.length;if(a){t.push(` {
316
+ `);let l=++this.indentLevel;W(t,l),this.visitEnumValueDeclaration(r.values[0]);for(let o=1;o<a;++o)t.push(`,
317
+ `),W(t,l),this.visitEnumValueDeclaration(r.values[o]);t.push(`
318
+ `),W(t,--this.indentLevel),t.push("}")}else t.push(" {}")}visitEnumValueDeclaration(r){this.visitIdentifierExpression(r.name);let e=r.initializer;e&&(this.sb.push(" = "),this.visitNode(e))}visitExportImportStatement(r){let e=this.sb;e.push("export import "),this.visitIdentifierExpression(r.externalName),e.push(" = "),this.visitIdentifierExpression(r.name)}visitExportMember(r){this.visitIdentifierExpression(r.localName),r.exportedName.text!=r.localName.text&&(this.sb.push(" as "),this.visitIdentifierExpression(r.exportedName))}visitExportStatement(r){let e=this.sb;r.isDeclare&&e.push("declare ");let t=r.members;if(t==null)e.push("export *");else if(t.length>0){let s=t.length;e.push(`export {
319
+ `);let a=++this.indentLevel;W(e,a),this.visitExportMember(t[0]);for(let l=1;l<s;++l)e.push(`,
320
+ `),W(e,a),this.visitExportMember(t[l]);--this.indentLevel,e.push(`
321
+ }`)}else e.push("export {}");let n=r.path;n&&(e.push(" from "),this.visitStringLiteralExpression(n)),e.push(";")}visitExportDefaultStatement(r){let e=r.declaration;switch(e.kind){case 56:{this.visitEnumDeclaration(e,!0);break}case 59:{this.visitFunctionDeclaration(e,!0);break}case 55:{this.visitClassDeclaration(e,!0);break}case 61:{this.visitInterfaceDeclaration(e,!0);break}case 63:{this.visitNamespaceDeclaration(e,!0);break}default:assert(!1)}}visitExpressionStatement(r){this.visitNode(r.expression)}visitFieldDeclaration(r){let e=r.decorators;if(e)for(let a=0,l=e.length;a<l;++a)this.serializeDecorator(e[a]);this.serializeAccessModifiers(r),this.visitIdentifierExpression(r.name);let t=this.sb;r.flags&16384&&t.push("!");let n=r.type;n&&(t.push(": "),this.visitTypeNode(n));let s=r.initializer;s&&(t.push(" = "),this.visitNode(s))}visitForStatement(r){let e=this.sb;e.push("for (");let t=r.initializer;t&&this.visitNode(t);let n=r.condition;n?(e.push("; "),this.visitNode(n)):e.push(";");let s=r.incrementor;s?(e.push("; "),this.visitNode(s)):e.push(";"),e.push(") "),this.visitNode(r.body)}visitForOfStatement(r){let e=this.sb;e.push("for ("),this.visitNode(r.variable),e.push(" of "),this.visitNode(r.iterable),e.push(") "),this.visitNode(r.body)}visitFunctionDeclaration(r,e=!1){let t=this.sb,n=r.decorators;if(n)for(let s=0,a=n.length;s<a;++s)this.serializeDecorator(n[s]);e?t.push("export default "):(this.serializeExternalModifiers(r),this.serializeAccessModifiers(r)),r.isAsync&&t.push("async "),r.name.text.length?t.push("function "):t.push("function"),this.visitFunctionCommon(r)}visitFunctionCommon(r){let e=this.sb;this.visitIdentifierExpression(r.name);let t=r.signature,n=r.typeParameters;if(n){let l=n.length;if(l){e.push("<"),this.visitTypeParameter(n[0]);for(let o=1;o<l;++o)e.push(", "),this.visitTypeParameter(n[o]);e.push(">")}}if(r.arrowKind==2){let l=t.parameters;assert(l.length==1),assert(!t.explicitThisType),this.serializeParameter(l[0])}else{e.push("(");let l=t.parameters,o=l.length,u=t.explicitThisType;if(u&&(e.push("this: "),this.visitTypeNode(u)),o){u&&e.push(", "),this.serializeParameter(l[0]);for(let c=1;c<o;++c)e.push(", "),this.serializeParameter(l[c])}}let s=r.body,a=t.returnType;r.arrowKind?s?(r.arrowKind==2?assert(De(a)):De(a)?e.push(")"):(e.push("): "),this.visitTypeNode(a)),e.push(" => "),this.visitNode(s)):(assert(!De(a)),e.push(" => "),this.visitTypeNode(a)):(!De(a)&&!r.isAny(528384)?(e.push("): "),this.visitTypeNode(a)):e.push(")"),s&&(e.push(" "),this.visitNode(s)))}visitIfStatement(r){let e=this.sb;e.push("if ("),this.visitNode(r.condition),e.push(") ");let t=r.ifTrue;this.visitNode(t),t.kind!=34&&e.push(`;
322
+ `);let n=r.ifFalse;n&&(t.kind==34?e.push(" else "):e.push("else "),this.visitNode(n))}visitImportDeclaration(r){let e=r.foreignName,t=r.name;this.visitIdentifierExpression(e),e.text!=t.text&&(this.sb.push(" as "),this.visitIdentifierExpression(t))}visitImportStatement(r){let e=this.sb;e.push("import ");let t=r.declarations,n=r.namespaceName;if(t){let s=t.length;if(s){e.push(`{
323
+ `);let a=++this.indentLevel;W(e,a),this.visitImportDeclaration(t[0]);for(let l=1;l<s;++l)e.push(`,
324
+ `),W(e,a),this.visitImportDeclaration(t[l]);--this.indentLevel,e.push(`
325
+ } from `)}else e.push("{} from ")}else n&&(e.push("* as "),this.visitIdentifierExpression(n),e.push(" from "));this.visitStringLiteralExpression(r.path)}visitIndexSignature(r){let e=this.sb;e.push("[key: "),this.visitTypeNode(r.keyType),e.push("]: "),this.visitTypeNode(r.valueType)}visitInterfaceDeclaration(r,e=!1){let t=r.decorators;if(t)for(let u=0,c=t.length;u<c;++u)this.serializeDecorator(t[u]);let n=this.sb;e?n.push("export default "):this.serializeExternalModifiers(r),n.push("interface "),this.visitIdentifierExpression(r.name);let s=r.typeParameters;if(s!=null&&s.length>0){n.push("<"),this.visitTypeParameter(s[0]);for(let u=1,c=s.length;u<c;++u)n.push(", "),this.visitTypeParameter(s[u]);n.push(">")}let a=r.extendsType;a&&(n.push(" extends "),this.visitTypeNode(a)),n.push(` {
326
+ `);let l=++this.indentLevel,o=r.members;for(let u=0,c=o.length;u<c;++u)W(n,l),this.visitNodeAndTerminate(o[u]);--this.indentLevel,n.push("}")}visitMethodDeclaration(r){let e=r.decorators;if(e)for(let t=0,n=e.length;t<n;++t)this.serializeDecorator(e[t]);this.serializeAccessModifiers(r),r.isAsync&&this.sb.push("async "),r.is(2048)?this.sb.push("get "):r.is(4096)&&this.sb.push("set "),this.visitFunctionCommon(r)}visitNamespaceDeclaration(r,e=!1){let t=r.decorators;if(t)for(let l=0,o=t.length;l<o;++l)this.serializeDecorator(t[l]);let n=this.sb;e?n.push("export default "):this.serializeExternalModifiers(r),n.push("namespace "),this.visitIdentifierExpression(r.name);let s=r.members;if(s.length){n.push(` {
327
+ `);let l=++this.indentLevel;for(let o=0,u=s.length;o<u;++o)W(n,l),this.visitNodeAndTerminate(s[o]);W(n,--this.indentLevel),n.push("}")}else n.push(" {}")}visitReturnStatement(r){let e=r.value;e?(this.sb.push("return "),this.visitNode(e)):this.sb.push("return")}visitSwitchCase(r){let e=this.sb,t=r.label;t?(e.push("case "),this.visitNode(t),e.push(`:
328
+ `)):e.push(`default:
329
+ `);let n=r.statements,s=n.length;if(s){let a=++this.indentLevel;W(e,a),this.visitNodeAndTerminate(n[0]);for(let l=1;l<s;++l)W(e,a),this.visitNodeAndTerminate(n[l]);--this.indentLevel}}visitSwitchStatement(r){let e=this.sb;e.push("switch ("),this.visitNode(r.condition),e.push(`) {
330
+ `);let t=++this.indentLevel,n=r.cases;for(let s=0,a=n.length;s<a;++s)W(e,t),this.visitSwitchCase(n[s]),e.push(`
331
+ `);--this.indentLevel,e.push("}")}visitThrowStatement(r){this.sb.push("throw "),this.visitNode(r.value)}visitTryStatement(r){let e=this.sb;e.push(`try {
332
+ `);let t=++this.indentLevel,n=r.bodyStatements;for(let l=0,o=n.length;l<o;++l)W(e,t),this.visitNodeAndTerminate(n[l]);let s=r.catchVariable;if(s){W(e,t-1),e.push("} catch ("),this.visitIdentifierExpression(s),e.push(`) {
333
+ `);let l=r.catchStatements;if(l)for(let o=0,u=l.length;o<u;++o)W(e,t),this.visitNodeAndTerminate(l[o])}let a=r.finallyStatements;if(a){W(e,t-1),e.push(`} finally {
334
+ `);for(let l=0,o=a.length;l<o;++l)W(e,t),this.visitNodeAndTerminate(a[l])}W(e,t-1),e.push("}")}visitTypeDeclaration(r){let e=r.decorators;if(e)for(let s=0,a=e.length;s<a;++s)this.serializeDecorator(e[s]);let t=this.sb;this.serializeExternalModifiers(r),t.push("type "),this.visitIdentifierExpression(r.name);let n=r.typeParameters;if(n){let s=n.length;if(s){t.push("<");for(let a=0;a<s;++a)this.visitTypeParameter(n[a]);t.push(">")}}t.push(" = "),this.visitTypeNode(r.type)}visitModuleDeclaration(r){let e=this.sb;r.flags&4&&e.push("declare "),e.push('module "'),e.push(Re(r.moduleName,34)),e.push('"')}visitVariableDeclaration(r){this.visitIdentifierExpression(r.name);let e=r.type,t=this.sb;r.flags&16384&&t.push("!"),e&&(t.push(": "),this.visitTypeNode(e));let n=r.initializer;n&&(t.push(" = "),this.visitNode(n))}visitVariableStatement(r){let e=r.decorators;if(e)for(let l=0,o=e.length;l<o;++l)this.serializeDecorator(e[l]);let t=this.sb,n=r.declarations,s=assert(n.length),a=n[0];this.serializeExternalModifiers(a),t.push(a.is(8)?"const ":a.is(16)?"let ":"var "),this.visitVariableDeclaration(r.declarations[0]);for(let l=1;l<s;++l)t.push(", "),this.visitVariableDeclaration(r.declarations[l])}visitWhileStatement(r){let e=this.sb;e.push("while ("),this.visitNode(r.condition);let t=r.body;t.isEmpty?e.push(")"):(e.push(") "),this.visitNode(t))}serializeDecorator(r){let e=this.sb;e.push("@"),this.visitNode(r.name);let t=r.args;if(t){e.push("(");let n=t.length;if(n){this.visitNode(t[0]);for(let s=1;s<n;++s)e.push(", "),this.visitNode(t[s])}e.push(`)
335
+ `)}else e.push(`
336
+ `);W(e,this.indentLevel)}serializeParameter(r){let e=this.sb,t=r.parameterKind,n=r.implicitFieldDeclaration;n&&this.serializeAccessModifiers(n),t==2&&e.push("..."),this.visitIdentifierExpression(r.name);let s=r.type,a=r.initializer;s&&(t==1&&!a&&e.push("?"),De(s)||(e.push(": "),this.visitTypeNode(s))),a&&(e.push(" = "),this.visitNode(a))}serializeExternalModifiers(r){let e=this.sb;r.is(2)?e.push("export "):r.is(1)?e.push("import "):r.is(4)&&e.push("declare ")}serializeAccessModifiers(r){let e=this.sb;r.is(4)&&e.push("declare "),r.is(256)?e.push("public "):r.is(512)?e.push("private "):r.is(1024)&&e.push("protected "),r.is(32)?e.push("static "):r.is(128)&&e.push("abstract "),r.is(64)&&e.push("readonly ")}finish(){let r=this.sb.join("");return this.sb=[],r}};var tee=U_;export{G_ as ASTBuilder,Yr as ArrayLiteralExpression,Xt as ArrowKind,El as AssertionExpression,Qt as AssertionKind,Ia as AsyncLowerTransform,tf as AtomicRMWOp,Ql as AwaitExpression,Al as BinaryExpression,Po as BinaryModule,en as BinaryOp,Yl as BlockStatement,qb as BrOnOp,Jl as BreakStatement,Tl as CallExpression,Er as Class,us as ClassDeclaration,Sl as ClassExpression,Us as ClassPrototype,ha as ClosureLowerTransform,vl as CommaExpression,$p as CommentKind,xl as CommentNode,ze as CommonFlags,N as CommonNames,$l as CompiledExpression,ua as Compiler,xf as ConditionKind,If as ConstantValueKind,p_ as Constraints,Il as ConstructorExpression,eo as ContinueStatement,fF as DEFAULT_STACK_SIZE,it as DeclarationStatement,Ar as DeclaredElement,Nt as DecoratorFlags,Rt as DecoratorKind,bl as DecoratorNode,dl as DiagnosticCategory,Xe as DiagnosticCode,tt as DiagnosticEmitter,_l as DiagnosticMessage,to as DoStatement,Ms as Element,kl as ElementAccessExpression,Et as ElementKind,ro as EmptyStatement,Zo as Enum,io as EnumDeclaration,Yo as EnumValue,no as EnumValueDeclaration,du as EnvAnalysisRecord,oo as ExportDefaultStatement,so as ExportImportStatement,ao as ExportMember,la as ExportNames,lo as ExportStatement,ge as Expression,ei as ExpressionId,Bo as ExpressionRunnerFlags,uo as ExpressionStatement,ef as ExternalKind,CF as FEATURES_ALL,PF as FEATURES_DEFAULT,gF as FEATURE_BULK_MEMORY,EF as FEATURE_EXCEPTION_HANDLING,FF as FEATURE_EXTENDED_CONST,vF as FEATURE_GC,IF as FEATURE_MEMORY64,SF as FEATURE_MULTI_VALUE,mF as FEATURE_MUTABLE_GLOBALS,yF as FEATURE_NONTRAPPING_F2I,TF as FEATURE_REFERENCE_TYPES,kF as FEATURE_RELAXED_SIMD,RF as FEATURE_SHARED_EVERYTHING,hF as FEATURE_SIGN_EXTENSION,bF as FEATURE_SIMD,wF as FEATURE_STRINGREF,AF as FEATURE_TAIL_CALLS,xF as FEATURE_THREADS,Kl as FalseExpression,Kt as Feature,Jp as FeatureFlags,co as FieldDeclaration,bf as FieldFlags,Ds as File,yl as FixedArrayTypeNode,Fl as FloatLiteralExpression,Jt as Flow,Oo as FlowFlags,fo as ForOfStatement,po as ForStatement,Lt as Function,cs as FunctionDeclaration,wl as FunctionExpression,lt as FunctionPrototype,Zr as FunctionTypeNode,el as GETTER_PREFIX,ti as Global,Ie as HeapTypeRef,Qe as INDEX_SUFFIX,Bp as INNER_DELIMITER,Pp as INSTANCE_DELIMITER,rt as IdentifierExpression,Qp as IdentifierHandling,_o as IfStatement,ho as ImportDeclaration,gn as ImportNames,ps as ImportStatement,Rs as IndexSignature,Zl as IndexSignatureNode,Rl as InstanceOfExpression,Cl as IntegerLiteralExpression,Cs as Interface,mo as InterfaceDeclaration,Jo as InterfacePrototype,_n as JSBuilder,Ft as LIBRARY_PREFIX,kb as LIBRARY_SUBST,Xl as LazyExpression,wt as LiteralExpression,pt as LiteralKind,Ae as Local,ks as LocalFlags,wo as MemoryModel,sx as MemoryModelCode,Gb as MemoryOrder,Ji as MemorySegment,Jr as MethodDeclaration,Yt as Module,To as ModuleDeclaration,$r as NamedTypeNode,Gs as Namespace,yo as NamespaceDeclaration,Pl as NewExpression,h as Node,Ze as NodeKind,Bl as NullExpression,Nl as ObjectLiteralExpression,Ll as OmittedExpression,Me as OperatorKind,oa as Options,M1 as PARENT_SUBST,mt as PATH_DELIMITER,ds as PackedType,Tf as Parameter,jt as ParameterKind,$i as ParameterNode,Ml as ParenthesizedExpression,Ns as Parser,ex as Precedence,Ls as Program,ws as Property,zl as PropertyAccessExpression,sn as PropertyPrototype,ue as Range,Ub as RefAsOp,Dl as RegexpLiteralExpression,Co as Relooper,jo as ReportMode,Fs as Resolver,go as ReturnStatement,Ya as Runtime,f_ as RuntimeFeatures,tl as SETTER_PREFIX,rf as SIMDExtractOp,af as SIMDLoadOp,lf as SIMDLoadStoreLaneOp,nf as SIMDReplaceOp,sf as SIMDShiftOp,of as SIMDTernaryOp,es as STATIC_DELIMITER,Np as STUB_DELIMITER,gf as SideEffects,Te as Signature,Ee as Source,Yi as SourceKind,hl as State,he as Statement,Hb as StringEncodeOp,jb as StringEqOp,Ul as StringLiteralExpression,Kb as StringMeasureOp,Wb as StringNewOp,Vl as SuperExpression,hs as SwitchBuilder,bo as SwitchCase,xo as SwitchStatement,bn as TSDBuilder,Gi as Target,Ol as TemplateLiteralExpression,Gl as TernaryExpression,ql as ThisExpression,Eo as ThrowStatement,bt as Token,ls as Tokenizer,Wl as TrueExpression,Ao as TryStatement,ml as TupleTypeNode,p as Type,Yp as TypeBuilderErrorReason,So as TypeDeclaration,at as TypeDefinition,Bt as TypeFlags,xr as TypeKind,Xi as TypeName,Xr as TypeNode,gl as TypeParameterNode,B as TypeRef,rr as TypedElement,Ui as Typeinfo,Ja as TypeinfoFlags,os as UnaryExpression,ms as UnaryOp,Hl as UnaryPostfixExpression,jl as UnaryPrefixExpression,qo as UncheckedBehavior,vo as VariableDeclaration,Zi as VariableLikeDeclarationStatement,ri as VariableLikeElement,Io as VariableStatement,ko as VoidStatement,Fo as WhileStatement,Vb as WideIntAddSubOp,Ob as WideIntMulOp,aF as addGlobalAlias,be as allocPtrArray,Qx as applyInTreeTransforms,aw as buildJS,sw as buildTSD,nw as compile,ft as createType,tee as default,lu as defaultFeatures,Lb as diagnosticCategoryToColor,Hp as diagnosticCategoryToString,il as diagnosticCodeToString,Is as ensureType,uf as expandType,Di as featureToString,$t as findDecorator,Mb as formatDiagnostic,Mb as formatDiagnosticMessage,st as getBinaryLeft,tn as getBinaryOp,We as getBinaryRight,lw as getBinaryenModuleRef,As as getBlockChildAt,Es as getBlockChildCount,xs as getBlockName,yE as getBreakCondition,mE as getBreakName,Je as getCallOperandAt,Pt as getCallOperandCount,Ss as getCallTarget,Ce as getConstValueF32,Pe as getConstValueF64,se as getConstValueI32,Ge as getConstValueI64High,Be as getConstValueI64Low,cf as getConstValueInteger,pf as getConstValueV128,nx as getDefaultParameterName,rw as getDependee,qF as getDiagnosticCategory,OF as getDiagnosticCode,WF as getDiagnosticMessage,KF as getDiagnosticRange,HF as getDiagnosticRelatedRange,bE as getDropValue,re as getExpressionId,ce as getExpressionType,AE as getFunctionBody,mf as getFunctionName,TE as getFunctionParams,SE as getFunctionResults,vE as getFunctionVars,gs as getGlobalGetName,FE as getGlobalInit,IE as getGlobalName,kE as getGlobalType,Go as getIfCondition,rn as getIfFalse,Ts as getIfTrue,ff as getLoadBytes,oE as getLoadOffset,uE as getLoadPtr,Ct as getLocalGetIndex,Mo as getLocalSetIndex,zo as getLocalSetValue,hE as getLoopBody,dE as getLoopName,EE as getMemoryGrowDelta,QF as getRangeEnd,XF as getRangeSource,jF as getRangeStart,xE as getReturnValue,gE as getSelectCondition,hf as getSelectElse,df as getSelectThen,vs as getSideEffects,VF as getSource,$F as getSourceNormalizedPath,cE as getStoreBytes,pE as getStoreOffset,fE as getStorePtr,_E as getStoreValue,wE as getTagName,RE as getTagParams,CE as getTagResults,bs as getUnaryOp,Do as getUnaryValue,iw as initializeProgram,Lo as isConstExpressionNaN,lE as isConstNaN,No as isConstNegZero,xt as isConstNonZero,nt as isConstZero,zs as isDeclaredElement,JF as isError,yf as isGlobalMutable,Xp as isIllegalVariableIdentifier,ZF as isInfo,_f as isLoadSigned,ys as isLocalTee,Qb as isNullableType,De as isTypeOmitted,Ko as isTypedElement,YF as isWarning,Ke as mangleInternalName,fs as mangleInternalPath,Uo as mustPreserveSideEffects,Kk as newOptions,GF as newProgram,UF as nextDiagnostic,tw as nextFile,Le as operatorTokenToString,uw as optimize,ew as parse,Ye as readString,lF as removeGlobalAlias,dn as runtimeFunctions,hn as runtimeGlobals,LF as setBasenameHint,MF as setBindingsHint,dF as setBundleVersion,DF as setDebugInfo,Xk as setExportMemory,pF as setExportRuntime,oF as setExportStart,tF as setExportTable,BF as setFeature,$k as setImportMemory,eF as setImportTable,Zk as setInitialMemory,cF as setLowMemoryLimit,Yk as setMaximumMemory,nF as setMemoryBase,Qk as setNoAssert,uF as setNoUnsafe,NF as setOptimizeLevelHints,zF as setPedantic,jk as setRuntime,Jk as setSharedMemory,rF as setSourceMap,_F as setStackSize,sF as setTableBase,Hk as setTarget,iF as setUncheckedBehavior,zb as tokenFromKeyword,Db as tokenIsAlsoIdentifier,an as typesToRefs,Ho as typesToString,Kp as util,ow as validate};
337
+ //# sourceMappingURL=assemblyscript.js.map