toilscript 0.1.29 → 0.1.31

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.
@@ -14,7 +14,7 @@ var ao=Object.defineProperty;var Jc=Object.getOwnPropertyDescriptor;var vx=Objec
14
14
  `," ".repeat(o-l.length),l," \u2502 ",r.substring(s,a).replaceAll(" "," "),`
15
15
  `,u," \u2502 "];for(;s<t.start;)r.charCodeAt(s)==9?(c.push(" "),s+=2):(c.push(" "),s++);if(yi()&&c.push(ya),t.start==t.end)c.push("^");else for(;s++<t.end;){let _=r.charCodeAt(s);if(_==9)c.push("~~");else if(Bt(_)){c.push(s==t.start+1?"^":"~");break}else c.push("~")}return yi()&&c.push(kn),c.push(`
16
16
  `),c.push(u),c.push(" \u2514\u2500 in "),c.push(e.normalizedPath),c.join("")}var Ke=class{constructor(i=null){this.seen=new Map;i||(i=[]),this.diagnostics=i}emitDiagnostic(i,e,r,n,s=null,a=null,l=null){let o=ba.create(i,e,s,a,l);if(r&&(o=o.withRange(r)),n&&(o.relatedRange=n),r){let u=this.seen;if(u.has(r.source)){let c=assert(u.get(r.source));if(c.has(r.start)){let _=assert(c.get(r.start));for(let f=0,h=_.length;f<h;++f)if(_[f].equals(o))return;_.push(o)}else c.set(r.start,[o])}else{let c=new Map;c.set(r.start,[o]),u.set(r.source,c)}}this.diagnostics.push(o)}pedantic(i,e,r=null,n=null,s=null){this.emitDiagnostic(i,0,e,null,r,n,s)}pedanticRelated(i,e,r,n=null,s=null,a=null){this.emitDiagnostic(i,0,e,r,n,s,a)}info(i,e,r=null,n=null,s=null){this.emitDiagnostic(i,1,e,null,r,n,s)}infoRelated(i,e,r,n=null,s=null,a=null){this.emitDiagnostic(i,1,e,r,n,s,a)}warning(i,e,r=null,n=null,s=null){this.emitDiagnostic(i,2,e,null,r,n,s)}warningRelated(i,e,r,n=null,s=null,a=null){this.emitDiagnostic(i,2,e,r,n,s,a)}error(i,e,r=null,n=null,s=null){this.emitDiagnostic(i,3,e,null,r,n,s)}errorRelated(i,e,r,n=null,s=null,a=null){this.emitDiagnostic(i,3,e,r,n,s,a)}};var at=(V=>(V[V.Source=0]="Source",V[V.NamedType=1]="NamedType",V[V.FunctionType=2]="FunctionType",V[V.TupleType=3]="TupleType",V[V.TypeName=4]="TypeName",V[V.TypeParameter=5]="TypeParameter",V[V.Parameter=6]="Parameter",V[V.Identifier=7]="Identifier",V[V.Assertion=8]="Assertion",V[V.Binary=9]="Binary",V[V.Call=10]="Call",V[V.Class=11]="Class",V[V.Comma=12]="Comma",V[V.ElementAccess=13]="ElementAccess",V[V.False=14]="False",V[V.Function=15]="Function",V[V.InstanceOf=16]="InstanceOf",V[V.Literal=17]="Literal",V[V.New=18]="New",V[V.Null=19]="Null",V[V.Omitted=20]="Omitted",V[V.Parenthesized=21]="Parenthesized",V[V.PropertyAccess=22]="PropertyAccess",V[V.Ternary=23]="Ternary",V[V.Super=24]="Super",V[V.This=25]="This",V[V.True=26]="True",V[V.Constructor=27]="Constructor",V[V.UnaryPostfix=28]="UnaryPostfix",V[V.UnaryPrefix=29]="UnaryPrefix",V[V.Compiled=30]="Compiled",V[V.Block=31]="Block",V[V.Break=32]="Break",V[V.Continue=33]="Continue",V[V.Do=34]="Do",V[V.Empty=35]="Empty",V[V.Export=36]="Export",V[V.ExportDefault=37]="ExportDefault",V[V.ExportImport=38]="ExportImport",V[V.Expression=39]="Expression",V[V.For=40]="For",V[V.ForOf=41]="ForOf",V[V.If=42]="If",V[V.Import=43]="Import",V[V.Return=44]="Return",V[V.Switch=45]="Switch",V[V.Throw=46]="Throw",V[V.Try=47]="Try",V[V.Variable=48]="Variable",V[V.Void=49]="Void",V[V.While=50]="While",V[V.Module=51]="Module",V[V.ClassDeclaration=52]="ClassDeclaration",V[V.EnumDeclaration=53]="EnumDeclaration",V[V.EnumValueDeclaration=54]="EnumValueDeclaration",V[V.FieldDeclaration=55]="FieldDeclaration",V[V.FunctionDeclaration=56]="FunctionDeclaration",V[V.ImportDeclaration=57]="ImportDeclaration",V[V.InterfaceDeclaration=58]="InterfaceDeclaration",V[V.MethodDeclaration=59]="MethodDeclaration",V[V.NamespaceDeclaration=60]="NamespaceDeclaration",V[V.TypeDeclaration=61]="TypeDeclaration",V[V.VariableDeclaration=62]="VariableDeclaration",V[V.Decorator=63]="Decorator",V[V.ExportMember=64]="ExportMember",V[V.SwitchCase=65]="SwitchCase",V[V.IndexSignature=66]="IndexSignature",V[V.Comment=67]="Comment",V))(at||{}),M=class t{constructor(i,e){this.kind=i;this.range=e}static createSimpleTypeName(i,e){return new bi(t.createIdentifierExpression(i,e),null,e)}static createNamedType(i,e,r,n){return new de(i,e,r,n)}static createFunctionType(i,e,r,n,s){return new Ir(i,e,r,n,s)}static createTupleType(i,e,r,n){return new Ta(i,e,r,n)}static createOmittedType(i){return new de(t.createSimpleTypeName("",i),null,!1,i)}static createTypeParameter(i,e,r,n){return new Aa(i,e,r,n)}static createParameter(i,e,r,n,s){return new xi(i,e,r,n,s)}static createDecorator(i,e,r){return new Ea($e.fromNode(i),i,e,r)}static createComment(i,e,r){return new va(i,e,r)}static createIdentifierExpression(i,e,r=!1){return new je(i,r,e)}static createEmptyIdentifierExpression(i){return new je("",!1,i)}static createArrayLiteralExpression(i,e){return new Rr(i,e)}static createAssertionExpression(i,e,r,n){return new Sa(i,e,r,n)}static createBinaryExpression(i,e,r,n){return new Ia(i,e,r,n)}static createCallExpression(i,e,r,n){return new Ra(i,e,r,n)}static createClassExpression(i){return new Fa(i)}static createCommaExpression(i,e){return new ka(i,e)}static createConstructorExpression(i){return new wa(i)}static createElementAccessExpression(i,e,r){return new Ca(i,e,r)}static createFalseExpression(i){return new Ka(i)}static createFloatLiteralExpression(i,e){return new Pa(i,e)}static createFunctionExpression(i){return new Ba(i)}static createInstanceOfExpression(i,e,r){return new La(i,e,r)}static createIntegerLiteralExpression(i,e){return new Lt(i,e)}static createNewExpression(i,e,r,n){return new Na(i,e,r,n)}static createNullExpression(i){return new Ma(i)}static createObjectLiteralExpression(i,e,r){return new ht(i,e,r)}static createOmittedExpression(i){return new Ga(i)}static createParenthesizedExpression(i,e){return new za(i,e)}static createPropertyAccessExpression(i,e,r){return new Nt(i,e,r)}static createRegexpLiteralExpression(i,e,r){return new Da(i,e,r)}static createTernaryExpression(i,e,r,n){return new Ua(i,e,r,n)}static createStringLiteralExpression(i,e){return new Ye(i,e)}static createSuperExpression(i){return new Va(i)}static createTemplateLiteralExpression(i,e,r,n,s){return new Oa(i,e,r,n,s)}static createThisExpression(i){return new qa(i)}static createTrueExpression(i){return new Wa(i)}static createUnaryPostfixExpression(i,e,r){return new ja(i,e,r)}static createUnaryPrefixExpression(i,e,r){return new Ha(i,e,r)}static createCompiledExpression(i,e,r){return new Qa(i,e,r)}static createBlockStatement(i,e){return new Ja(i,e)}static createBreakStatement(i,e){return new Za(i,e)}static createClassDeclaration(i,e,r,n,s,a,l,o){return new Cn(i,e,r,n,s,a,l,o)}static createContinueStatement(i,e){return new Ya(i,e)}static createDoStatement(i,e,r){return new $a(i,e,r)}static createEmptyStatement(i){return new el(i)}static createEnumDeclaration(i,e,r,n,s){return new tl(i,e,r,n,s)}static createEnumValueDeclaration(i,e,r,n){return new rl(i,e,r,n)}static createExportStatement(i,e,r,n){return new sl(i,e,r,n)}static createExportDefaultStatement(i,e){return new al(i,e)}static createExportImportStatement(i,e,r){return new il(i,e,r)}static createExportMember(i,e,r){return e||(e=i),new nl(i,e,r)}static createExpressionStatement(i){return new ll(i)}static createIfStatement(i,e,r,n){return new cl(i,e,r,n)}static createImportStatement(i,e,r){return new Bn(i,null,e,r)}static createWildcardImportStatement(i,e,r){return new Bn(null,i,e,r)}static createImportDeclaration(i,e,r){return e||(e=i),new _l(e,i,r)}static createInterfaceDeclaration(i,e,r,n,s,a,l,o){return new fl(i,e,r,n,s,a,l,o)}static createFieldDeclaration(i,e,r,n,s,a){return new ol(i,e,r,n,s,-1,a)}static createForStatement(i,e,r,n,s){return new ul(i,e,r,n,s)}static createForOfStatement(i,e,r,n){return new pl(i,e,r,n)}static createFunctionDeclaration(i,e,r,n,s,a,l,o){return new Pn(i,e,r,n,s,a,l,o)}static createIndexSignature(i,e,r,n){return new Xa(i,e,r,n)}static createMethodDeclaration(i,e,r,n,s,a,l){return new Fr(i,e,r,n,s,a,l)}static createNamespaceDeclaration(i,e,r,n,s){return new hl(i,e,r,n,s)}static createReturnStatement(i,e){return new dl(i,e)}static createSwitchStatement(i,e,r){return new yl(i,e,r)}static createSwitchCase(i,e,r){return new ml(i,e,r)}static createThrowStatement(i,e){return new gl(i,e)}static createTryStatement(i,e,r,n,s){return new bl(i,e,r,n,s)}static createTypeDeclaration(i,e,r,n,s,a){return new Tl(i,e,r,n,s,a)}static createModuleDeclaration(i,e,r){return new xl(i,e,r)}static createVariableStatement(i,e,r){return new El(i,e,r)}static createVariableDeclaration(i,e,r,n,s,a){return new Al(i,e,r,n,s,a)}static createVoidStatement(i,e){return new vl(i,e)}static createWhileStatement(i,e,r){return new Sl(i,e,r)}isLiteralKind(i){return this.kind==17&&changetype(this).literalKind==i}get isNumericLiteral(){if(this.kind==17)switch(changetype(this).literalKind){case 0:case 1:return!0}return!1}get compilesToConst(){switch(this.kind){case 17:{switch(changetype(this).literalKind){case 0:case 1:case 2:return!0}break}case 19:case 26:case 14:return!0}return!1}isAccessOn(i){let e=changetype(this);return e.kind==10&&(e=e.expression),e.kind==22&&e.expression.kind==i}get isAccessOnThis(){return this.isAccessOn(25)}get isAccessOnSuper(){return this.isAccessOn(24)}get isEmpty(){return this.kind==35}},gi=class extends M{constructor(e,r,n){super(e,n);this.isNullable=r;this.currentlyResolving=!1}hasGenericComponent(e){if(this.kind==1){let r=changetype(this);if(!r.name.next){let n=r.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=r.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 r=changetype(this),n=r.parameters;for(let a=0,l=n.length;a<l;++a)if(n[a].type.hasGenericComponent(e))return!0;if(r.returnType.hasGenericComponent(e))return!0;let s=r.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}},bi=class extends M{constructor(e,r,n){super(4,n);this.identifier=e;this.next=r}},de=class extends gi{constructor(e,r,n,s){super(1,n,s);this.name=e;this.typeArguments=r}get hasTypeArguments(){let e=this.typeArguments;return e!=null&&e.length>0}get isNull(){return this.name.identifier.text=="null"}},Ir=class extends gi{constructor(e,r,n,s,a){super(2,s,a);this.parameters=e;this.returnType=r;this.explicitThisType=n}},Ta=class extends gi{constructor(e,r,n,s){super(3,n,s);this.elements=e;this.elementNames=r}},Aa=class extends M{constructor(e,r,n,s){super(5,s);this.name=e;this.extendsType=r;this.defaultType=n}},kr=(r=>(r[r.Default=0]="Default",r[r.Optional=1]="Optional",r[r.Rest=2]="Rest",r))(kr||{}),xi=class extends M{constructor(e,r,n,s,a){super(6,a);this.parameterKind=e;this.name=r;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}},$e=(Q=>(Q[Q.Custom=0]="Custom",Q[Q.Global=1]="Global",Q[Q.Operator=2]="Operator",Q[Q.OperatorBinary=3]="OperatorBinary",Q[Q.OperatorPrefix=4]="OperatorPrefix",Q[Q.OperatorPostfix=5]="OperatorPostfix",Q[Q.Unmanaged=6]="Unmanaged",Q[Q.Final=7]="Final",Q[Q.Inline=8]="Inline",Q[Q.External=9]="External",Q[Q.ExternalJs=10]="ExternalJs",Q[Q.Builtin=11]="Builtin",Q[Q.Lazy=12]="Lazy",Q[Q.Unsafe=13]="Unsafe",Q[Q.Main=14]="Main",Q[Q.Data=15]="Data",Q[Q.Remote=16]="Remote",Q[Q.Service=17]="Service",Q[Q.Rest=18]="Rest",Q[Q.Route=19]="Route",Q[Q.Get=20]="Get",Q[Q.Post=21]="Post",Q[Q.Put=22]="Put",Q[Q.Delete=23]="Delete",Q[Q.Patch=24]="Patch",Q[Q.Head=25]="Head",Q[Q.Options=26]="Options",Q[Q.Cache=27]="Cache",Q[Q.Auth=28]="Auth",Q[Q.User=29]="User",Q[Q.Ratelimit=30]="Ratelimit",Q[Q.Database=31]="Database",Q[Q.Collection=32]="Collection",Q[Q.Query=33]="Query",Q[Q.Action=34]="Action",Q[Q.Job=35]="Job",Q[Q.Derive=36]="Derive",Q[Q.Admin=37]="Admin",Q))($e||{});(i=>{function t(e){if(e.kind==7){let r=e.text;switch(assert(r.length),r.charCodeAt(0)){case 97:{if(r=="auth")return 28;if(r=="action")return 34;if(r=="admin")return 37;break}case 98:{if(r=="builtin")return 11;break}case 99:{if(r=="cache")return 27;if(r=="collection")return 32;break}case 100:{if(r=="data")return 15;if(r=="del")return 23;if(r=="database")return 31;if(r=="derive")return 36;break}case 101:{if(r=="external")return 9;break}case 102:{if(r=="final")return 7;break}case 103:{if(r=="global")return 1;if(r=="get")return 20;break}case 104:{if(r=="head")return 25;break}case 105:{if(r=="inline")return 8;break}case 106:{if(r=="job")return 35;break}case 108:{if(r=="lazy")return 12;break}case 109:{if(r=="main")return 14;break}case 111:{if(r=="operator")return 2;if(r=="options")return 26;break}case 112:{if(r=="post")return 21;if(r=="put")return 22;if(r=="patch")return 24;break}case 113:{if(r=="query")return 33;break}case 114:{if(r=="ratelimit")return 30;if(r=="remote")return 16;if(r=="rest")return 18;if(r=="route")return 19;break}case 115:{if(r=="service")return 17;break}case 117:{if(r=="unmanaged")return 6;if(r=="unsafe")return 13;if(r=="user")return 29;break}}}else if(e.kind==22){let r=e,n=r.expression;if(n.kind==7){let s=n.text;assert(s.length);let a=r.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 10;break}}}}return 0}i.fromNode=t})($e||={});var Ea=class extends M{constructor(e,r,n,s){super(63,s);this.decoratorKind=e;this.name=r;this.args=n}},Tp=(r=>(r[r.Line=0]="Line",r[r.Triple=1]="Triple",r[r.Block=2]="Block",r))(Tp||{}),va=class extends M{constructor(e,r,n){super(67,n);this.commentKind=e;this.text=r}},ye=class extends M{},je=class extends ye{constructor(e,r,n){super(7,n);this.text=e;this.isQuoted=r}},$t=(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))($t||{}),ft=class extends ye{constructor(e,r){super(17,r);this.literalKind=e}},Rr=class extends ft{constructor(e,r){super(5,r);this.elementExpressions=e}},Ai=(n=>(n[n.Prefix=0]="Prefix",n[n.As=1]="As",n[n.NonNull=2]="NonNull",n[n.Const=3]="Const",n))(Ai||{}),Sa=class extends ye{constructor(e,r,n,s){super(8,s);this.assertionKind=e;this.expression=r;this.toType=n}},Ia=class extends ye{constructor(e,r,n,s){super(9,s);this.operator=e;this.left=r;this.right=n}},Ra=class extends ye{constructor(e,r,n,s){super(10,s);this.expression=e;this.typeArguments=r;this.args=n}get typeArgumentsRange(){let e=this.typeArguments,r;return e&&(r=e.length)?le.join(e[0].range,e[r-1].range):this.expression.range}get argumentsRange(){let e=this.args,r=e.length;return r?le.join(e[0].range,e[r-1].range):this.expression.range}},Fa=class extends ye{constructor(e){super(11,e.range);this.declaration=e}},ka=class extends ye{constructor(e,r){super(12,r);this.expressions=e}},wa=class extends je{constructor(i){super("constructor",!1,i),this.kind=27}},Ca=class extends ye{constructor(e,r,n){super(13,n);this.expression=e;this.elementExpression=r}},Pa=class extends ft{constructor(e,r){super(0,r);this.value=e}},Ba=class extends ye{constructor(e){super(15,e.range);this.declaration=e}},La=class extends ye{constructor(e,r,n){super(16,n);this.expression=e;this.isType=r}},Lt=class extends ft{constructor(e,r){super(1,r);this.value=e}},Na=class extends ye{constructor(e,r,n,s){super(18,s);this.typeName=e;this.typeArguments=r;this.args=n}get typeArgumentsRange(){let e=this.typeArguments,r;return e&&(r=e.length)>0?le.join(e[0].range,e[r-1].range):this.typeName.range}get argumentsRange(){let e=this.args,r=e.length;return r?le.join(e[0].range,e[r-1].range):this.typeName.range}},Ma=class extends je{constructor(i){super("null",!1,i),this.kind=19}},ht=class extends ft{constructor(e,r,n){super(6,n);this.names=e;this.values=r}},Ga=class extends ye{constructor(i){super(20,i)}},za=class extends ye{constructor(e,r){super(21,r);this.expression=e}},Nt=class extends ye{constructor(e,r,n){super(22,n);this.expression=e;this.property=r}},Da=class extends ft{constructor(e,r,n){super(4,n);this.pattern=e;this.patternFlags=r}},Ua=class extends ye{constructor(e,r,n,s){super(23,s);this.condition=e;this.ifThen=r;this.ifElse=n}},Ye=class extends ft{constructor(e,r){super(2,r);this.value=e}},Va=class extends je{constructor(i){super("super",!1,i),this.kind=24}},Oa=class extends ft{constructor(e,r,n,s,a){super(3,a);this.tag=e;this.parts=r;this.rawParts=n;this.expressions=s}},qa=class extends je{constructor(i){super("this",!1,i),this.kind=25}},Wa=class extends je{constructor(i){super("true",!1,i),this.kind=26}},Ka=class extends je{constructor(i){super("false",!1,i),this.kind=14}},wn=class extends ye{constructor(e,r,n,s){super(e,s);this.operator=r;this.operand=n}},ja=class extends wn{constructor(i,e,r){super(28,i,e,r)}},Ha=class extends wn{constructor(i,e,r){super(29,i,e,r)}},Qa=class extends ye{constructor(e,r,n){super(30,n);this.expr=e;this.type=r}},oe=class extends M{},Ei=(n=>(n[n.User=0]="User",n[n.UserEntry=1]="UserEntry",n[n.Library=2]="Library",n[n.LibraryEntry=3]="LibraryEntry",n))(Ei||{}),ce=class t extends M{constructor(e,r,n){super(0,new le(0,n.length));this.sourceKind=e;this.normalizedPath=r;this.text=n;this.statements=new Array;this.debugInfoIndex=-1;this.exportPaths=null;this.lineCache=null;this.lineColumn=1;let s=Ln(r);this.internalPath=s;let a=s.lastIndexOf(it);this.simplePath=a>=0?s.substring(a+1):s,this.range.source=this}static get native(){let e=t._native;return e||(t._native=e=new t(3,ct+"native.ts","[native code]")),e}static{this._native=null}get isNative(){return this==t._native}get isLibrary(){let e=this.sourceKind;return e==2||e==3}lineAt(e){assert(e>=0&&e<2147483647);let r=this.lineCache;if(!r){this.lineCache=r=[0];let a=this.text,l=0,o=a.length;for(;l<o;)a.charCodeAt(l++)==10&&r.push(l);r.push(2147483647)}let n=0,s=r.length-1;for(;n<s;){let a=n+(s-n>>1),l=unchecked(r[a]);if(e<l)s=a;else{if(e<unchecked(r[a+1]))return this.lineColumn=e-l+1,a+1;n=a+1}}return assert(0)}columnAt(){return this.lineColumn}},Ue=class extends oe{constructor(e,r,n,s,a){super(e,a);this.name=r;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}},Xa=class extends M{constructor(e,r,n,s){super(66,s);this.keyType=e;this.valueType=r;this.flags=n}},Ti=class extends Ue{constructor(e,r,n,s,a,l,o){super(e,r,n,s,o);this.type=a;this.initializer=l}},Ja=class extends oe{constructor(e,r){super(31,r);this.statements=e}},Za=class extends oe{constructor(e,r){super(32,r);this.label=e}},Cn=class extends Ue{constructor(e,r,n,s,a,l,o,u){super(52,e,r,n,u);this.typeParameters=s;this.extendsType=a;this.implementsTypes=l;this.members=o;this.indexSignature=null}get isGeneric(){let e=this.typeParameters;return e!=null&&e.length>0}},Ya=class extends oe{constructor(e,r){super(33,r);this.label=e}},$a=class extends oe{constructor(e,r,n){super(34,n);this.body=e;this.condition=r}},el=class extends oe{constructor(i){super(35,i)}},tl=class extends Ue{constructor(e,r,n,s,a){super(53,e,r,n,a);this.values=s}},rl=class extends Ti{constructor(i,e,r,n){super(54,i,null,e,null,r,n)}},il=class extends oe{constructor(e,r,n){super(38,n);this.name=e;this.externalName=r}},nl=class extends M{constructor(e,r,n){super(64,n);this.localName=e;this.exportedName=r}},sl=class extends oe{constructor(e,r,n,s){super(36,s);this.members=e;this.path=r;this.isDeclare=n;if(r){let a=Sr(r.value);r.value.startsWith(".")?a=da(a,s.source.internalPath):a.startsWith(ct)||(a=ct+a),this.internalPath=a}else this.internalPath=null}},al=class extends oe{constructor(e,r){super(37,r);this.declaration=e}},ll=class extends oe{constructor(e){super(39,e.range);this.expression=e}},ol=class extends Ti{constructor(e,r,n,s,a,l,o){super(55,e,r,n,s,a,o);this.parameterIndex=l}},ul=class extends oe{constructor(e,r,n,s,a){super(40,a);this.initializer=e;this.condition=r;this.incrementor=n;this.body=s}},pl=class extends oe{constructor(e,r,n,s){super(41,s);this.variable=e;this.iterable=r;this.body=n}},vi=(r=>(r[r.None=0]="None",r[r.Parenthesized=1]="Parenthesized",r[r.Single=2]="Single",r))(vi||{}),Pn=class t extends Ue{constructor(e,r,n,s,a,l,o,u){super(56,e,r,n,u);this.typeParameters=s;this.signature=a;this.body=l;this.arrowKind=o}get isGeneric(){let e=this.typeParameters;return e!=null&&e.length>0}clone(){return new t(this.name,this.decorators,this.flags,this.typeParameters,this.signature,this.body,this.arrowKind,this.range)}},cl=class extends oe{constructor(e,r,n,s){super(42,s);this.condition=e;this.ifTrue=r;this.ifFalse=n}},_l=class extends Ue{constructor(e,r,n){super(57,e,null,0,n);this.foreignName=r}},Bn=class extends oe{constructor(e,r,n,s){super(43,s);this.declarations=e;this.namespaceName=r;this.path=n;let a=Sr(n.value);n.value.startsWith(".")?a=da(a,s.source.internalPath):a.startsWith(ct)||(a=ct+a),this.internalPath=Ln(a)}},fl=class extends Cn{constructor(i,e,r,n,s,a,l,o){super(i,e,r,n,s,a,l,o),this.kind=58}},Fr=class extends Pn{constructor(i,e,r,n,s,a,l){super(i,e,r,n,s,a,0,l),this.kind=59}},hl=class extends Ue{constructor(e,r,n,s,a){super(60,e,r,n,a);this.members=s}},dl=class extends oe{constructor(e,r){super(44,r);this.value=e}},ml=class extends M{constructor(e,r,n){super(65,n);this.label=e;this.statements=r}get isDefault(){return this.label==null}},yl=class extends oe{constructor(e,r,n){super(45,n);this.condition=e;this.cases=r}},gl=class extends oe{constructor(e,r){super(46,r);this.value=e}},bl=class extends oe{constructor(e,r,n,s,a){super(47,a);this.bodyStatements=e;this.catchVariable=r;this.catchStatements=n;this.finallyStatements=s}},xl=class extends oe{constructor(e,r,n){super(51,n);this.moduleName=e;this.flags=r}},Tl=class extends Ue{constructor(e,r,n,s,a,l){super(61,e,r,n,l);this.typeParameters=s;this.type=a}},Al=class extends Ti{constructor(i,e,r,n,s,a){super(62,i,e,r,n,s,a)}},El=class extends oe{constructor(e,r,n){super(48,n);this.decorators=e;this.declarations=r}},vl=class extends oe{constructor(e,r){super(49,r);this.expression=e}},Sl=class extends oe{constructor(e,r,n){super(50,n);this.condition=e;this.body=r}};function Mt(t,i){if(i)for(let e=0,r=i.length;e<r;++e){let n=i[e];if(n.decoratorKind==t)return n}return null}function Ln(t){return t.endsWith("/")?t+="index":t.endsWith(".ts")&&(t=t.substring(0,t.length-3)),t}function ke(t){if(t.kind==1){let i=t.name;return!(i.next||i.identifier.text.length>0)}return!1}var Si=(B=>(B[B.Abstract=0]="Abstract",B[B.As=1]="As",B[B.Async=2]="Async",B[B.Await=3]="Await",B[B.Break=4]="Break",B[B.Case=5]="Case",B[B.Catch=6]="Catch",B[B.Class=7]="Class",B[B.Const=8]="Const",B[B.Continue=9]="Continue",B[B.Constructor=10]="Constructor",B[B.Debugger=11]="Debugger",B[B.Declare=12]="Declare",B[B.Default=13]="Default",B[B.Delete=14]="Delete",B[B.Do=15]="Do",B[B.Else=16]="Else",B[B.Enum=17]="Enum",B[B.Export=18]="Export",B[B.Extends=19]="Extends",B[B.False=20]="False",B[B.Finally=21]="Finally",B[B.For=22]="For",B[B.From=23]="From",B[B.Function=24]="Function",B[B.Get=25]="Get",B[B.If=26]="If",B[B.Implements=27]="Implements",B[B.Import=28]="Import",B[B.In=29]="In",B[B.InstanceOf=30]="InstanceOf",B[B.Interface=31]="Interface",B[B.Is=32]="Is",B[B.KeyOf=33]="KeyOf",B[B.Let=34]="Let",B[B.Module=35]="Module",B[B.Namespace=36]="Namespace",B[B.New=37]="New",B[B.Null=38]="Null",B[B.Of=39]="Of",B[B.Override=40]="Override",B[B.Package=41]="Package",B[B.Private=42]="Private",B[B.Protected=43]="Protected",B[B.Public=44]="Public",B[B.Readonly=45]="Readonly",B[B.Return=46]="Return",B[B.Set=47]="Set",B[B.Static=48]="Static",B[B.Super=49]="Super",B[B.Switch=50]="Switch",B[B.This=51]="This",B[B.Throw=52]="Throw",B[B.True=53]="True",B[B.Try=54]="Try",B[B.Type=55]="Type",B[B.TypeOf=56]="TypeOf",B[B.Var=57]="Var",B[B.Void=58]="Void",B[B.While=59]="While",B[B.With=60]="With",B[B.Yield=61]="Yield",B[B.OpenBrace=62]="OpenBrace",B[B.CloseBrace=63]="CloseBrace",B[B.OpenParen=64]="OpenParen",B[B.CloseParen=65]="CloseParen",B[B.OpenBracket=66]="OpenBracket",B[B.CloseBracket=67]="CloseBracket",B[B.Dot=68]="Dot",B[B.Dot_Dot_Dot=69]="Dot_Dot_Dot",B[B.Semicolon=70]="Semicolon",B[B.Comma=71]="Comma",B[B.LessThan=72]="LessThan",B[B.GreaterThan=73]="GreaterThan",B[B.LessThan_Equals=74]="LessThan_Equals",B[B.GreaterThan_Equals=75]="GreaterThan_Equals",B[B.Equals_Equals=76]="Equals_Equals",B[B.Exclamation_Equals=77]="Exclamation_Equals",B[B.Equals_Equals_Equals=78]="Equals_Equals_Equals",B[B.Exclamation_Equals_Equals=79]="Exclamation_Equals_Equals",B[B.Equals_GreaterThan=80]="Equals_GreaterThan",B[B.Plus=81]="Plus",B[B.Minus=82]="Minus",B[B.Asterisk_Asterisk=83]="Asterisk_Asterisk",B[B.Asterisk=84]="Asterisk",B[B.Slash=85]="Slash",B[B.Percent=86]="Percent",B[B.Plus_Plus=87]="Plus_Plus",B[B.Minus_Minus=88]="Minus_Minus",B[B.LessThan_LessThan=89]="LessThan_LessThan",B[B.GreaterThan_GreaterThan=90]="GreaterThan_GreaterThan",B[B.GreaterThan_GreaterThan_GreaterThan=91]="GreaterThan_GreaterThan_GreaterThan",B[B.Ampersand=92]="Ampersand",B[B.Bar=93]="Bar",B[B.Caret=94]="Caret",B[B.Exclamation=95]="Exclamation",B[B.Tilde=96]="Tilde",B[B.Ampersand_Ampersand=97]="Ampersand_Ampersand",B[B.Bar_Bar=98]="Bar_Bar",B[B.Question=99]="Question",B[B.Colon=100]="Colon",B[B.Equals=101]="Equals",B[B.Plus_Equals=102]="Plus_Equals",B[B.Minus_Equals=103]="Minus_Equals",B[B.Asterisk_Equals=104]="Asterisk_Equals",B[B.Asterisk_Asterisk_Equals=105]="Asterisk_Asterisk_Equals",B[B.Slash_Equals=106]="Slash_Equals",B[B.Percent_Equals=107]="Percent_Equals",B[B.LessThan_LessThan_Equals=108]="LessThan_LessThan_Equals",B[B.GreaterThan_GreaterThan_Equals=109]="GreaterThan_GreaterThan_Equals",B[B.GreaterThan_GreaterThan_GreaterThan_Equals=110]="GreaterThan_GreaterThan_GreaterThan_Equals",B[B.Ampersand_Equals=111]="Ampersand_Equals",B[B.Bar_Equals=112]="Bar_Equals",B[B.Caret_Equals=113]="Caret_Equals",B[B.At=114]="At",B[B.Identifier=115]="Identifier",B[B.StringLiteral=116]="StringLiteral",B[B.IntegerLiteral=117]="IntegerLiteral",B[B.FloatLiteral=118]="FloatLiteral",B[B.TemplateLiteral=119]="TemplateLiteral",B[B.Invalid=120]="Invalid",B[B.EndOfFile=121]="EndOfFile",B))(Si||{}),Ep=(r=>(r[r.Default=0]="Default",r[r.Prefer=1]="Prefer",r[r.Always=2]="Always",r))(Ep||{});function Dy(t){let i=t.length;switch(assert(i),t.charCodeAt(0)){case 97:{if(i==5){if(t=="async")return 2;if(t=="await")return 3;break}if(t=="as")return 1;if(t=="abstract")return 0;break}case 98:{if(t=="break")return 4;break}case 99:{if(i==5){if(t=="const")return 8;if(t=="class")return 7;if(t=="catch")return 6;break}if(t=="case")return 5;if(t=="continue")return 9;if(t=="constructor")return 10;break}case 100:{if(i==7){if(t=="default")return 13;if(t=="declare")return 12;break}if(t=="do")return 15;if(t=="delete")return 14;if(t=="debugger")return 11;break}case 101:{if(i==4){if(t=="else")return 16;if(t=="enum")return 17;break}if(t=="export")return 18;if(t=="extends")return 19;break}case 102:{if(i<=5){if(t=="false")return 20;if(t=="for")return 22;if(t=="from")return 23;break}if(t=="function")return 24;if(t=="finally")return 21;break}case 103:{if(t=="get")return 25;break}case 105:{if(i==2){if(t=="if")return 26;if(t=="in")return 29;if(t=="is")return 32;break}switch(t.charCodeAt(3)){case 108:{if(t=="implements")return 27;break}case 111:{if(t=="import")return 28;break}case 116:{if(t=="instanceof")return 30;break}case 101:{if(t=="interface")return 31;break}}break}case 107:{if(t=="keyof")return 33;break}case 108:{if(t=="let")return 34;break}case 109:{if(t=="module")return 35;break}case 110:{if(t=="new")return 37;if(t=="null")return 38;if(t=="namespace")return 36;break}case 111:{if(t=="of")return 39;if(t=="override")return 40;break}case 112:{if(i==7){if(t=="private")return 42;if(t=="package")return 41;break}if(t=="public")return 44;if(t=="protected")return 43;break}case 114:{if(t=="return")return 46;if(t=="readonly")return 45;break}case 115:{if(i==6){if(t=="switch")return 50;if(t=="static")return 48;break}if(t=="set")return 47;if(t=="super")return 49;break}case 116:{if(i==4){if(t=="true")return 53;if(t=="this")return 51;if(t=="type")return 55;break}if(t=="try")return 54;if(t=="throw")return 52;if(t=="typeof")return 56;break}case 118:{if(t=="var")return 57;if(t=="void")return 58;break}case 119:{if(t=="while")return 59;if(t=="with")return 60;break}case 121:{if(t=="yield")return 61;break}}return 120}function Uy(t){switch(t){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 55:case 58:return!0;default:return!1}}function vp(t){switch(assert(t.length),t.charCodeAt(0)){case 100:return t=="delete";case 102:return t=="for";case 105:return t=="instanceof";case 110:return t=="null";case 118:return t=="void"}return!1}function Ie(t){switch(t){case 14:return"delete";case 29:return"in";case 30:return"instanceof";case 37:return"new";case 56:return"typeof";case 58:return"void";case 61:return"yield";case 69:return"...";case 71: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 81: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 101: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"^=";default:return assert(!1),""}}var wr=class extends Ke{constructor(e,r=null){super(r);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;r||(r=[]),this.diagnostics=r,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 r;do r=this.unsafeNext(e);while(r==120);return this.token=r,r}unsafeNext(e=0,r=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,r>1&&a<s&&n.charCodeAt(a)==61?(++a,r>2&&a<s&&n.charCodeAt(a)==61?(this.pos=a+1,79):(this.pos=a,77)):(this.pos=a,95);case 34:case 39:return this.pos=a,116;case 96:return this.pos=a,119;case 37:return++a,r>1&&a<s&&n.charCodeAt(a)==61?(this.pos=a+1,107):(this.pos=a,86);case 38:{if(++a,r>1&&a<s){let o=n.charCodeAt(a);if(o==38)return this.pos=a+1,97;if(o==61)return this.pos=a+1,111}return this.pos=a,92}case 40:return this.pos=a+1,64;case 41:return this.pos=a+1,65;case 42:{if(++a,r>1&&a<s){let o=n.charCodeAt(a);if(o==61)return this.pos=a+1,104;if(o==42)return++a,r>2&&a<s&&n.charCodeAt(a)==61?(this.pos=a+1,105):(this.pos=a,83)}return this.pos=a,84}case 43:{if(++a,r>1&&a<s){let o=n.charCodeAt(a);if(o==43)return this.pos=a+1,87;if(o==61)return this.pos=a+1,102}return this.pos=a,81}case 44:return this.pos=a+1,71;case 45:{if(++a,r>1&&a<s){let o=n.charCodeAt(a);if(o==45)return this.pos=a+1,88;if(o==61)return this.pos=a+1,103}return this.pos=a,82}case 46:{if(++a,r>1&&a<s){let o=n.charCodeAt(a);if(st(o))return this.pos=a-1,118;if(r>2&&a+1<s&&o==46&&n.charCodeAt(a+1)==46)return this.pos=a+2,69}return this.pos=a,68}case 47:{let o=a;if(++a,r>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,106}return this.pos=a,85}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()?117:118;case 58:return this.pos=a+1,100;case 59:return this.pos=a+1,70;case 60:{if(++a,r>1&&a<s){let o=n.charCodeAt(a);if(o==60)return++a,r>2&&a<s&&n.charCodeAt(a)==61?(this.pos=a+1,108):(this.pos=a,89);if(o==61)return this.pos=a+1,74}return this.pos=a,72}case 61:{if(++a,r>1&&a<s){let o=n.charCodeAt(a);if(o==61)return++a,r>2&&a<s&&n.charCodeAt(a)==61?(this.pos=a+1,78):(this.pos=a,76);if(o==62)return this.pos=a+1,80}return this.pos=a,101}case 62:{if(++a,r>1&&a<s){let o=n.charCodeAt(a);if(o==62){if(++a,r>2&&a<s){if(o=n.charCodeAt(a),o==62)return++a,r>3&&a<s&&n.charCodeAt(a)==61?(this.pos=a+1,110):(this.pos=a,91);if(o==61)return this.pos=a+1,109}return this.pos=a,90}if(o==61)return this.pos=a+1,75}return this.pos=a,73}case 63:return this.pos=a+1,99;case 91:return this.pos=a+1,66;case 93:return this.pos=a+1,67;case 94:return++a,r>1&&a<s&&n.charCodeAt(a)==61?(this.pos=a+1,113):(this.pos=a,94);case 123:return this.pos=a+1,62;case 124:{if(++a,r>1&&a<s){let o=n.charCodeAt(a);if(o==124)return this.pos=a+1,98;if(o==61)return this.pos=a+1,112}return this.pos=a,93}case 125:return this.pos=a+1,63;case 126:return this.pos=a+1,96;case 64:return this.pos=a+1,114;default:{if(hi(l)&&a+1<s&&(l=Rn(l,n.charCodeAt(a+1))),di(l)){let u=a;for(;(a+=Er(l))<s&&mi(l=n.codePointAt(a)););if(e!=2){let c=Dy(n.substring(u,a));if(c!=120&&!(e==1&&Uy(c)))return this.pos=a,c}return this.pos=u,115}else if(Sn(l)){++a;break}let o=a;return a+=Er(l),this.error(1127,this.range(o,a)),this.pos=a,120}}}return this.pos=a,121}peek(e=0,r=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,r);while(n==120);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 r=this.pos,n=this.nextTokenPos;r<n;++r)if(Bt(e.charCodeAt(r)))return this.nextTokenOnNewLine=1,!0;return this.nextTokenOnNewLine=0,!1}skipIdentifier(e=1){return this.skip(115,e)}skip(e,r=0){let n=this.pos,s=this.token,a=this.tokenPos,l=i32.MAX_VALUE;e==73&&(l=1);let o;do o=this.unsafeNext(r,l);while(o==120);return o==e?(this.token=e,this.clearNextToken(),!0):(this.pos=n,this.token=s,this.tokenPos=a,!1)}mark(){let e=Ap;return e?(Ap=null,e.pos=this.pos,e.token=this.token,e.tokenPos=this.tokenPos):e=new Il(this.pos,this.token,this.tokenPos),e}discard(e){Ap=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,r=-1){e<0?(e=this.tokenPos,r=this.pos):r<0&&(r=e);let n=new le(e,r);return n.source=this.source,n}readIdentifier(){let e=this.source.text,r=this.end,n=this.pos,s=n,a=e.codePointAt(n);for(assert(di(a));(n+=Er(a))<r&&mi(a=e.codePointAt(n)););return this.pos=n,e.substring(s,n)}readString(e=0,r=!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(r),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(Bt(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 r=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&&st(s.charCodeAt(this.pos))?(++this.pos,s.substring(r,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?r:-1)):this.readUnicodeEscape(e?r:-1);case 120:return this.readHexadecimalEscape(2,e?r:-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,r=this.pos,n=this.end,s=!1;for(;;){if(this.pos>=n){this.error(1161,this.range(r,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(Bt(a)){this.error(1161,this.range(r,this.pos));break}++this.pos,s=!1}return e.substring(r,this.pos)}readRegexpFlags(){let e=this.source.text,r=this.pos,n=this.end,s=0;for(;this.pos<n;){let a=e.charCodeAt(this.pos);if(!mi(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(r,this.pos)),e.substring(r,this.pos)}testInteger(){let e=this.source.text,r=this.pos,n=this.end;if(r+1<n&&e.charCodeAt(r)==48)switch(e.charCodeAt(r+2)|32){case 120:case 98:case 111:return!0}for(;r<n;){let s=e.charCodeAt(r);if(s==46||(s|32)==101)return!1;if(s!=95&&(s<48||s>57))break;r++}return!0}readInteger(){let e=this.source.text,r=this.pos;if(r+2<this.end&&e.charCodeAt(r)==48){switch(e.charCodeAt(r+1)|32){case 120:return this.pos=r+2,this.readHexInteger();case 98:return this.pos=r+2,this.readBinaryInteger();case 111:return this.pos=r+2,this.readOctalInteger()}if(ha(e.charCodeAt(r+1))){let n=r;this.pos=r+1;let s=this.readOctalInteger();return this.error(1121,this.range(n,this.pos)),s}}return this.readDecimalInteger()}readHexInteger(){let e=this.source.text,r=this.pos,n=this.end,s=r,a=s,l=i64_zero,o=i64_new(4),u=l,c=!1;for(;r<n;){let _=e.charCodeAt(r);if(st(_))u=i64_add(i64_shl(l,o),i64_new(_-48));else if(Fn(_))u=i64_add(i64_shl(l,o),i64_new((_|32)+-87));else if(_==95)a==r&&this.error(a==s?6188:6189,this.range(r)),a=r+1;else break;i64_gt_u(l,u)&&(c=!0),l=u,++r}return r==s?this.error(1125,this.range(s)):a==r&&this.error(6188,this.range(a-1)),c&&this.error(236,this.range(s-2,r),this.source.text.substring(s-2,r)),this.pos=r,l}readDecimalInteger(){let e=this.source.text,r=this.pos,n=this.end,s=r,a=s,l=i64_zero,o=i64_new(10),u=l,c=!1;for(;r<n;){let _=e.charCodeAt(r);if(st(_))u=i64_add(i64_mul(l,o),i64_new(_-48));else if(_==95)a==r?this.error(a==s?6188:6189,this.range(r)):r-1==s&&e.charCodeAt(r-1)==48&&this.error(6188,this.range(r)),a=r+1;else break;i64_gt_u(l,u)&&(c=!0),l=u,++r}return r==s?this.error(1124,this.range(s)):a==r?this.error(6188,this.range(a-1)):c&&this.error(236,this.range(s,r),this.source.text.substring(s,r)),this.pos=r,l}readOctalInteger(){let e=this.source.text,r=this.pos,n=this.end,s=r,a=s,l=i64_zero,o=i64_new(3),u=l,c=!1;for(;r<n;){let _=e.charCodeAt(r);if(ha(_))u=i64_add(i64_shl(l,o),i64_new(_-48));else if(_==95)a==r&&this.error(a==s?6188:6189,this.range(r)),a=r+1;else break;i64_gt_u(l,u)&&(c=!0),l=u,++r}return r==s?this.error(1178,this.range(s)):a==r?this.error(6188,this.range(a-1)):c&&this.error(236,this.range(s-2,r),this.source.text.substring(s-2,r)),this.pos=r,l}readBinaryInteger(){let e=this.source.text,r=this.pos,n=this.end,s=r,a=s,l=i64_zero,o=l,u=!1;for(;r<n;){let c=e.charCodeAt(r);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==r&&this.error(a==s?6188:6189,this.range(r)),a=r+1;else break;i64_gt(l,o)&&(u=!0),l=o,++r}return r==s?this.error(1177,this.range(s)):a==r?this.error(6188,this.range(a-1)):u&&this.error(236,this.range(s-2,r),this.source.text.substring(s-2,r)),this.pos=r,l}readFloat(){return this.readDecimalFloat()}readDecimalFloat(){let e=this.source.text,r=this.end,n=this.pos,s=this.readDecimalFloatPartial(!1);if(this.pos<r&&e.charCodeAt(this.pos)==46&&(++this.pos,s+=this.readDecimalFloatPartial()),this.pos<r){let l=e.charCodeAt(this.pos);(l|32)==101&&((++this.pos<r&&(l=e.charCodeAt(this.pos))==45||l==43&&st(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 r=this.source.text,n=this.pos,s=n,a=this.end,l=s,o=0;for(;n<a;){let u=r.charCodeAt(n);if(u==95)l==n?this.error(l==s?6188:6189,this.range(n)):!e&&n-1==s&&r.charCodeAt(n-1)==48&&this.error(6188,this.range(n)),l=n+1,++o;else if(!st(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,r=-1){let n=0,s=this.source.text,a=this.pos,l=this.end;for(;a<l;){let o=s.charCodeAt(a++);if(st(o))n=(n<<4)+o-48;else if(Fn(o))n=(n<<4)+(o|32)+-87;else return~r?(this.pos=--a,s.substring(r,a)):(this.pos=a,this.error(1125,this.range(a-1,a)),"");if(--e==0)break}return e?(this.pos=a,~r?s.substring(r,a):(this.error(1126,this.range(a)),"")):(this.pos=a,String.fromCodePoint(n))}checkForIdentifierStartAfterNumericLiteral(){let e=this.pos;e<this.end&&di(this.source.text.charCodeAt(e))&&this.error(1351,this.range(e))}readUnicodeEscape(e=-1){return this.readHexadecimalEscape(4,e)}readExtendedUnicodeEscape(e=-1){let r=this.pos,n=this.readHexInteger(),s=i64_low(n),a=!1;assert(!i64_high(n)),s>1114111&&(e==-1&&this.error(1198,this.range(r,this.pos)),a=!0);let l=this.end,o=this.source.text;return this.pos>=l?(e==-1&&this.error(1126,this.range(r,l)),a=!0):o.charCodeAt(this.pos)==125?++this.pos:(e==-1&&this.error(1199,this.range(r,this.pos)),a=!0),a?~e?o.substring(e,this.pos):"":String.fromCodePoint(s)}},Il=class{constructor(i,e,r){this.pos=i;this.token=e;this.tokenPos=r}},Ap=null;var L;(I=>(I.None=0,I.Unreachable=1,I.I32=2,I.I64=3,I.F32=4,I.F64=5,I.V128=6,I.Funcref=r_(),I.Externref=i_(),I.Anyref=n_(),I.Eqref=s_(),I.Structref=l_(),I.Arrayref=o_(),I.I31ref=a_(),I.Stringref=u_(),I.Noneref=p_(),I.Nofuncref=__(),I.Noexternref=c_()))(L||={});var ge;(b=>{b.Extern=8,b.Func=16,b.Any=32,b.Eq=40,b.I31=48,b.Struct=56,b.Array=64,b.Exn=7,b.String=80,b.None=88,b.Noextern=96,b.Nofunc=104;function f(A){return f_(A)}b.isBottom=f;function h(A){return h_(A)}b.getBottom=h;function y(A,I){return d_(A,I)}b.isSubtype=y;function x(A,I){if(A==I)return A;if(h(A)!=h(I))return-1;if(f(A))return I;if(f(I))return A;if(A>I){let E=A;A=I,I=E}switch(A){case b.Extern:return I==b.String?A:-1;case b.Func:return-1;case b.Any:return A;case b.Eq:return I==b.I31||I==b.Struct||I==b.Array?b.Eq:b.Any;case b.I31:return I==b.Struct||I==b.Array?b.Eq:b.Any;case b.Struct:return I==b.Array?b.Eq:b.Any;case b.Array:return b.Any}return assert(!1),-1}b.leastUpperBound=x})(ge||={});var Mn;(r=>(r.NotPacked=0,r.I8=1,r.I16=2))(Mn||={});var Ip;(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})(Ip||={});var Rp=(q=>(q[q.MVP=0]="MVP",q[q.Atomics=1]="Atomics",q[q.MutableGlobals=2]="MutableGlobals",q[q.TruncSat=4]="TruncSat",q[q.SIMD=8]="SIMD",q[q.BulkMemory=16]="BulkMemory",q[q.SignExt=32]="SignExt",q[q.ExceptionHandling=64]="ExceptionHandling",q[q.TailCall=128]="TailCall",q[q.ReferenceTypes=256]="ReferenceTypes",q[q.MultiValue=512]="MultiValue",q[q.GC=1024]="GC",q[q.Memory64=2048]="Memory64",q[q.RelaxedSIMD=4096]="RelaxedSIMD",q[q.ExtendedConst=8192]="ExtendedConst",q[q.Strings=16384]="Strings",q[q.MultiMemory=32768]="MultiMemory",q[q.StackSwitching=65536]="StackSwitching",q[q.SharedEverything=131072]="SharedEverything",q[q.FP16=262144]="FP16",q[q.BulkMemoryOpt=524288]="BulkMemoryOpt",q[q.CallIndirectOverlong=1048576]="CallIndirectOverlong",q[q.RelaxedAtomics=4194304]="RelaxedAtomics",q[q.CustomPageSizes=8388608]="CustomPageSizes",q[q.Multibyte=16777216]="Multibyte",q[q.WideArithmetic=33554432]="WideArithmetic",q[q.All=67108863]="All",q))(Rp||{}),Cr=(N=>(N[N.Invalid=0]="Invalid",N[N.Block=1]="Block",N[N.If=2]="If",N[N.Loop=3]="Loop",N[N.Break=4]="Break",N[N.Switch=5]="Switch",N[N.Call=6]="Call",N[N.CallIndirect=7]="CallIndirect",N[N.LocalGet=8]="LocalGet",N[N.LocalSet=9]="LocalSet",N[N.GlobalGet=10]="GlobalGet",N[N.GlobalSet=11]="GlobalSet",N[N.Load=12]="Load",N[N.Store=13]="Store",N[N.Const=14]="Const",N[N.Unary=15]="Unary",N[N.Binary=16]="Binary",N[N.Select=17]="Select",N[N.Drop=18]="Drop",N[N.Return=19]="Return",N[N.MemorySize=20]="MemorySize",N[N.MemoryGrow=21]="MemoryGrow",N[N.Nop=22]="Nop",N[N.Unreachable=23]="Unreachable",N[N.AtomicRMW=24]="AtomicRMW",N[N.AtomicCmpxchg=25]="AtomicCmpxchg",N[N.AtomicWait=26]="AtomicWait",N[N.AtomicNotify=27]="AtomicNotify",N[N.AtomicFence=28]="AtomicFence",N[N.Pause=29]="Pause",N[N.SIMDExtract=30]="SIMDExtract",N[N.SIMDReplace=31]="SIMDReplace",N[N.SIMDShuffle=32]="SIMDShuffle",N[N.SIMDTernary=33]="SIMDTernary",N[N.SIMDShift=34]="SIMDShift",N[N.SIMDLoad=35]="SIMDLoad",N[N.SIMDLoadStoreLane=36]="SIMDLoadStoreLane",N[N.MemoryInit=37]="MemoryInit",N[N.DataDrop=38]="DataDrop",N[N.MemoryCopy=39]="MemoryCopy",N[N.MemoryFill=40]="MemoryFill",N[N.Pop=41]="Pop",N[N.RefNull=42]="RefNull",N[N.RefIsNull=43]="RefIsNull",N[N.RefFunc=44]="RefFunc",N[N.RefEq=45]="RefEq",N[N.TableGet=46]="TableGet",N[N.TableSet=47]="TableSet",N[N.TableSize=48]="TableSize",N[N.TableGrow=49]="TableGrow",N[N.TableFill=50]="TableFill",N[N.TableCopy=51]="TableCopy",N[N.TableInit=52]="TableInit",N[N.ElemDrop=53]="ElemDrop",N[N.Try=54]="Try",N[N.TryTable=55]="TryTable",N[N.Throw=56]="Throw",N[N.Rethrow=57]="Rethrow",N[N.ThrowRef=58]="ThrowRef",N[N.TupleMake=59]="TupleMake",N[N.TupleExtract=60]="TupleExtract",N[N.RefI31=61]="RefI31",N[N.I31Get=62]="I31Get",N[N.CallRef=63]="CallRef",N[N.RefTest=64]="RefTest",N[N.RefCast=65]="RefCast",N[N.RefGetDesc=66]="RefGetDesc",N[N.BrOn=67]="BrOn",N[N.StructNew=68]="StructNew",N[N.StructGet=69]="StructGet",N[N.StructSet=70]="StructSet",N[N.StructRMW=71]="StructRMW",N[N.StructCmpxchg=72]="StructCmpxchg",N[N.ArrayNew=73]="ArrayNew",N[N.ArrayNewData=74]="ArrayNewData",N[N.ArrayNewElem=75]="ArrayNewElem",N[N.ArrayNewFixed=76]="ArrayNewFixed",N[N.ArrayGet=77]="ArrayGet",N[N.ArraySet=78]="ArraySet",N[N.ArrayLoad=79]="ArrayLoad",N[N.ArrayStore=80]="ArrayStore",N[N.ArrayLen=81]="ArrayLen",N[N.ArrayCopy=82]="ArrayCopy",N[N.ArrayFill=83]="ArrayFill",N[N.ArrayInitData=84]="ArrayInitData",N[N.ArrayInitElem=85]="ArrayInitElem",N[N.ArrayRMW=86]="ArrayRMW",N[N.ArrayCmpxchg=87]="ArrayCmpxchg",N[N.RefAs=88]="RefAs",N[N.StringNew=89]="StringNew",N[N.StringConst=90]="StringConst",N[N.StringMeasure=91]="StringMeasure",N[N.StringEncode=92]="StringEncode",N[N.StringConcat=93]="StringConcat",N[N.StringEq=94]="StringEq",N[N.StringTest=95]="StringTest",N[N.StringWTF16Get=96]="StringWTF16Get",N[N.StringSliceWTF=97]="StringSliceWTF",N[N.ContNew=98]="ContNew",N[N.ContBind=99]="ContBind",N[N.Suspend=100]="Suspend",N[N.Resume=101]="Resume",N[N.ResumeThrow=102]="ResumeThrow",N[N.StackSwitch=103]="StackSwitch",N[N.StructWait=104]="StructWait",N[N.StructNotify=105]="StructNotify",N))(Cr||{}),Fp=(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))(Fp||{}),Vy=(r=>(r[r.Unordered=0]="Unordered",r[r.SeqCst=1]="SeqCst",r[r.AcqRel=2]="AcqRel",r))(Vy||{}),zn=(w=>(w[w.ClzI32=0]="ClzI32",w[w.ClzI64=1]="ClzI64",w[w.CtzI32=2]="CtzI32",w[w.CtzI64=3]="CtzI64",w[w.PopcntI32=4]="PopcntI32",w[w.PopcntI64=5]="PopcntI64",w[w.NegF32=6]="NegF32",w[w.NegF64=7]="NegF64",w[w.AbsF32=8]="AbsF32",w[w.AbsF64=9]="AbsF64",w[w.CeilF32=10]="CeilF32",w[w.CeilF64=11]="CeilF64",w[w.FloorF32=12]="FloorF32",w[w.FloorF64=13]="FloorF64",w[w.TruncF32=14]="TruncF32",w[w.TruncF64=15]="TruncF64",w[w.NearestF32=16]="NearestF32",w[w.NearestF64=17]="NearestF64",w[w.SqrtF32=18]="SqrtF32",w[w.SqrtF64=19]="SqrtF64",w[w.EqzI32=20]="EqzI32",w[w.EqzI64=21]="EqzI64",w[w.ExtendI32ToI64=22]="ExtendI32ToI64",w[w.ExtendU32ToU64=23]="ExtendU32ToU64",w[w.WrapI64ToI32=24]="WrapI64ToI32",w[w.TruncF32ToI32=25]="TruncF32ToI32",w[w.TruncF32ToI64=26]="TruncF32ToI64",w[w.TruncF32ToU32=27]="TruncF32ToU32",w[w.TruncF32ToU64=28]="TruncF32ToU64",w[w.TruncF64ToI32=29]="TruncF64ToI32",w[w.TruncF64ToI64=30]="TruncF64ToI64",w[w.TruncF64ToU32=31]="TruncF64ToU32",w[w.TruncF64ToU64=32]="TruncF64ToU64",w[w.ReinterpretF32ToI32=33]="ReinterpretF32ToI32",w[w.ReinterpretF64ToI64=34]="ReinterpretF64ToI64",w[w.ConvertI32ToF32=35]="ConvertI32ToF32",w[w.ConvertI32ToF64=36]="ConvertI32ToF64",w[w.ConvertU32ToF32=37]="ConvertU32ToF32",w[w.ConvertU32ToF64=38]="ConvertU32ToF64",w[w.ConvertI64ToF32=39]="ConvertI64ToF32",w[w.ConvertI64ToF64=40]="ConvertI64ToF64",w[w.ConvertU64ToF32=41]="ConvertU64ToF32",w[w.ConvertU64ToF64=42]="ConvertU64ToF64",w[w.PromoteF32ToF64=43]="PromoteF32ToF64",w[w.DemoteF64ToF32=44]="DemoteF64ToF32",w[w.ReinterpretI32ToF32=45]="ReinterpretI32ToF32",w[w.ReinterpretI64ToF64=46]="ReinterpretI64ToF64",w[w.Extend8I32=47]="Extend8I32",w[w.Extend16I32=48]="Extend16I32",w[w.Extend8I64=49]="Extend8I64",w[w.Extend16I64=50]="Extend16I64",w[w.Extend32I64=51]="Extend32I64",w[w.TruncSatF32ToI32=52]="TruncSatF32ToI32",w[w.TruncSatF32ToU32=53]="TruncSatF32ToU32",w[w.TruncSatF64ToI32=54]="TruncSatF64ToI32",w[w.TruncSatF64ToU32=55]="TruncSatF64ToU32",w[w.TruncSatF32ToI64=56]="TruncSatF32ToI64",w[w.TruncSatF32ToU64=57]="TruncSatF32ToU64",w[w.TruncSatF64ToI64=58]="TruncSatF64ToI64",w[w.TruncSatF64ToU64=59]="TruncSatF64ToU64",w[w.SplatI8x16=60]="SplatI8x16",w[w.SplatI16x8=61]="SplatI16x8",w[w.SplatI32x4=62]="SplatI32x4",w[w.SplatI64x2=63]="SplatI64x2",w[w.SplatF32x4=64]="SplatF32x4",w[w.SplatF64x2=65]="SplatF64x2",w[w.NotV128=66]="NotV128",w[w.AnyTrueV128=67]="AnyTrueV128",w[w.AbsI8x16=68]="AbsI8x16",w[w.NegI8x16=69]="NegI8x16",w[w.AllTrueI8x16=70]="AllTrueI8x16",w[w.BitmaskI8x16=71]="BitmaskI8x16",w[w.PopcntI8x16=72]="PopcntI8x16",w[w.AbsI16x8=73]="AbsI16x8",w[w.NegI16x8=74]="NegI16x8",w[w.AllTrueI16x8=75]="AllTrueI16x8",w[w.BitmaskI16x8=76]="BitmaskI16x8",w[w.AbsI32x4=77]="AbsI32x4",w[w.NegI32x4=78]="NegI32x4",w[w.AllTrueI32x4=79]="AllTrueI32x4",w[w.BitmaskI32x4=80]="BitmaskI32x4",w[w.AbsI64x2=81]="AbsI64x2",w[w.NegI64x2=82]="NegI64x2",w[w.AllTrueI64x2=83]="AllTrueI64x2",w[w.BitmaskI64x2=84]="BitmaskI64x2",w[w.AbsF32x4=92]="AbsF32x4",w[w.NegF32x4=93]="NegF32x4",w[w.SqrtF32x4=94]="SqrtF32x4",w[w.CeilF32x4=95]="CeilF32x4",w[w.FloorF32x4=96]="FloorF32x4",w[w.TruncF32x4=97]="TruncF32x4",w[w.NearestF32x4=98]="NearestF32x4",w[w.AbsF64x2=99]="AbsF64x2",w[w.NegF64x2=100]="NegF64x2",w[w.SqrtF64x2=101]="SqrtF64x2",w[w.CeilF64x2=102]="CeilF64x2",w[w.FloorF64x2=103]="FloorF64x2",w[w.TruncF64x2=104]="TruncF64x2",w[w.NearestF64x2=105]="NearestF64x2",w[w.ExtaddPairwiseI8x16ToI16x8=106]="ExtaddPairwiseI8x16ToI16x8",w[w.ExtaddPairwiseU8x16ToU16x8=107]="ExtaddPairwiseU8x16ToU16x8",w[w.ExtaddPairwiseI16x8ToI32x4=108]="ExtaddPairwiseI16x8ToI32x4",w[w.ExtaddPairwiseU16x8ToU32x4=109]="ExtaddPairwiseU16x8ToU32x4",w[w.TruncSatF32x4ToI32x4=110]="TruncSatF32x4ToI32x4",w[w.TruncSatF32x4ToU32x4=111]="TruncSatF32x4ToU32x4",w[w.ConvertI32x4ToF32x4=112]="ConvertI32x4ToF32x4",w[w.ConvertU32x4ToF32x4=113]="ConvertU32x4ToF32x4",w[w.ExtendLowI8x16ToI16x8=114]="ExtendLowI8x16ToI16x8",w[w.ExtendHighI8x16ToI16x8=115]="ExtendHighI8x16ToI16x8",w[w.ExtendLowU8x16ToU16x8=116]="ExtendLowU8x16ToU16x8",w[w.ExtendHighU8x16ToU16x8=117]="ExtendHighU8x16ToU16x8",w[w.ExtendLowI16x8ToI32x4=118]="ExtendLowI16x8ToI32x4",w[w.ExtendHighI16x8ToI32x4=119]="ExtendHighI16x8ToI32x4",w[w.ExtendLowU16x8ToU32x4=120]="ExtendLowU16x8ToU32x4",w[w.ExtendHighU16x8ToU32x4=121]="ExtendHighU16x8ToU32x4",w[w.ExtendLowI32x4ToI64x2=122]="ExtendLowI32x4ToI64x2",w[w.ExtendHighI32x4ToI64x2=123]="ExtendHighI32x4ToI64x2",w[w.ExtendLowU32x4ToU64x2=124]="ExtendLowU32x4ToU64x2",w[w.ExtendHighU32x4ToU64x2=125]="ExtendHighU32x4ToU64x2",w[w.ConvertLowI32x4ToF64x2=126]="ConvertLowI32x4ToF64x2",w[w.ConvertLowU32x4ToF64x2=127]="ConvertLowU32x4ToF64x2",w[w.TruncSatF64x2ToI32x4Zero=128]="TruncSatF64x2ToI32x4Zero",w[w.TruncSatF64x2ToU32x4Zero=129]="TruncSatF64x2ToU32x4Zero",w[w.DemoteZeroF64x2ToF32x4=130]="DemoteZeroF64x2ToF32x4",w[w.PromoteLowF32x4ToF64x2=131]="PromoteLowF32x4ToF64x2",w[w.RelaxedTruncF32x4ToI32x4=132]="RelaxedTruncF32x4ToI32x4",w[w.RelaxedTruncF32x4ToU32x4=133]="RelaxedTruncF32x4ToU32x4",w[w.RelaxedTruncF64x2ToI32x4Zero=134]="RelaxedTruncF64x2ToI32x4Zero",w[w.RelaxedTruncF64x2ToU32x4Zero=135]="RelaxedTruncF64x2ToU32x4Zero",w[w.PromoteLowF16x8ToF32x4=141]="PromoteLowF16x8ToF32x4",w[w._last=141]="_last",w[w.ClzSize=142]="ClzSize",w[w.CtzSize=143]="CtzSize",w[w.PopcntSize=144]="PopcntSize",w[w.EqzSize=145]="EqzSize",w))(zn||{}),Ri=(T=>(T[T.AddI32=0]="AddI32",T[T.SubI32=1]="SubI32",T[T.MulI32=2]="MulI32",T[T.DivI32=3]="DivI32",T[T.DivU32=4]="DivU32",T[T.RemI32=5]="RemI32",T[T.RemU32=6]="RemU32",T[T.AndI32=7]="AndI32",T[T.OrI32=8]="OrI32",T[T.XorI32=9]="XorI32",T[T.ShlI32=10]="ShlI32",T[T.ShrI32=11]="ShrI32",T[T.ShrU32=12]="ShrU32",T[T.RotlI32=13]="RotlI32",T[T.RotrI32=14]="RotrI32",T[T.EqI32=15]="EqI32",T[T.NeI32=16]="NeI32",T[T.LtI32=17]="LtI32",T[T.LtU32=18]="LtU32",T[T.LeI32=19]="LeI32",T[T.LeU32=20]="LeU32",T[T.GtI32=21]="GtI32",T[T.GtU32=22]="GtU32",T[T.GeI32=23]="GeI32",T[T.GeU32=24]="GeU32",T[T.AddI64=25]="AddI64",T[T.SubI64=26]="SubI64",T[T.MulI64=27]="MulI64",T[T.DivI64=28]="DivI64",T[T.DivU64=29]="DivU64",T[T.RemI64=30]="RemI64",T[T.RemU64=31]="RemU64",T[T.AndI64=32]="AndI64",T[T.OrI64=33]="OrI64",T[T.XorI64=34]="XorI64",T[T.ShlI64=35]="ShlI64",T[T.ShrI64=36]="ShrI64",T[T.ShrU64=37]="ShrU64",T[T.RotlI64=38]="RotlI64",T[T.RotrI64=39]="RotrI64",T[T.EqI64=40]="EqI64",T[T.NeI64=41]="NeI64",T[T.LtI64=42]="LtI64",T[T.LtU64=43]="LtU64",T[T.LeI64=44]="LeI64",T[T.LeU64=45]="LeU64",T[T.GtI64=46]="GtI64",T[T.GtU64=47]="GtU64",T[T.GeI64=48]="GeI64",T[T.GeU64=49]="GeU64",T[T.AddF32=50]="AddF32",T[T.SubF32=51]="SubF32",T[T.MulF32=52]="MulF32",T[T.DivF32=53]="DivF32",T[T.CopysignF32=54]="CopysignF32",T[T.MinF32=55]="MinF32",T[T.MaxF32=56]="MaxF32",T[T.EqF32=57]="EqF32",T[T.NeF32=58]="NeF32",T[T.LtF32=59]="LtF32",T[T.LeF32=60]="LeF32",T[T.GtF32=61]="GtF32",T[T.GeF32=62]="GeF32",T[T.AddF64=63]="AddF64",T[T.SubF64=64]="SubF64",T[T.MulF64=65]="MulF64",T[T.DivF64=66]="DivF64",T[T.CopysignF64=67]="CopysignF64",T[T.MinF64=68]="MinF64",T[T.MaxF64=69]="MaxF64",T[T.EqF64=70]="EqF64",T[T.NeF64=71]="NeF64",T[T.LtF64=72]="LtF64",T[T.LeF64=73]="LeF64",T[T.GtF64=74]="GtF64",T[T.GeF64=75]="GeF64",T[T.EqI8x16=76]="EqI8x16",T[T.NeI8x16=77]="NeI8x16",T[T.LtI8x16=78]="LtI8x16",T[T.LtU8x16=79]="LtU8x16",T[T.GtI8x16=80]="GtI8x16",T[T.GtU8x16=81]="GtU8x16",T[T.LeI8x16=82]="LeI8x16",T[T.LeU8x16=83]="LeU8x16",T[T.GeI8x16=84]="GeI8x16",T[T.GeU8x16=85]="GeU8x16",T[T.EqI16x8=86]="EqI16x8",T[T.NeI16x8=87]="NeI16x8",T[T.LtI16x8=88]="LtI16x8",T[T.LtU16x8=89]="LtU16x8",T[T.GtI16x8=90]="GtI16x8",T[T.GtU16x8=91]="GtU16x8",T[T.LeI16x8=92]="LeI16x8",T[T.LeU16x8=93]="LeU16x8",T[T.GeI16x8=94]="GeI16x8",T[T.GeU16x8=95]="GeU16x8",T[T.EqI32x4=96]="EqI32x4",T[T.NeI32x4=97]="NeI32x4",T[T.LtI32x4=98]="LtI32x4",T[T.LtU32x4=99]="LtU32x4",T[T.GtI32x4=100]="GtI32x4",T[T.GtU32x4=101]="GtU32x4",T[T.LeI32x4=102]="LeI32x4",T[T.LeU32x4=103]="LeU32x4",T[T.GeI32x4=104]="GeI32x4",T[T.GeU32x4=105]="GeU32x4",T[T.EqI64x2=106]="EqI64x2",T[T.NeI64x2=107]="NeI64x2",T[T.LtI64x2=108]="LtI64x2",T[T.GtI64x2=109]="GtI64x2",T[T.LeI64x2=110]="LeI64x2",T[T.GeI64x2=111]="GeI64x2",T[T.EqF32x4=118]="EqF32x4",T[T.NeF32x4=119]="NeF32x4",T[T.LtF32x4=120]="LtF32x4",T[T.GtF32x4=121]="GtF32x4",T[T.LeF32x4=122]="LeF32x4",T[T.GeF32x4=123]="GeF32x4",T[T.EqF64x2=124]="EqF64x2",T[T.NeF64x2=125]="NeF64x2",T[T.LtF64x2=126]="LtF64x2",T[T.GtF64x2=127]="GtF64x2",T[T.LeF64x2=128]="LeF64x2",T[T.GeF64x2=129]="GeF64x2",T[T.AndV128=130]="AndV128",T[T.OrV128=131]="OrV128",T[T.XorV128=132]="XorV128",T[T.AndnotV128=133]="AndnotV128",T[T.AddI8x16=134]="AddI8x16",T[T.AddSatI8x16=135]="AddSatI8x16",T[T.AddSatU8x16=136]="AddSatU8x16",T[T.SubI8x16=137]="SubI8x16",T[T.SubSatI8x16=138]="SubSatI8x16",T[T.SubSatU8x16=139]="SubSatU8x16",T[T.MinI8x16=140]="MinI8x16",T[T.MinU8x16=141]="MinU8x16",T[T.MaxI8x16=142]="MaxI8x16",T[T.MaxU8x16=143]="MaxU8x16",T[T.AvgrU8x16=144]="AvgrU8x16",T[T.AddI16x8=145]="AddI16x8",T[T.AddSatI16x8=146]="AddSatI16x8",T[T.AddSatU16x8=147]="AddSatU16x8",T[T.SubI16x8=148]="SubI16x8",T[T.SubSatI16x8=149]="SubSatI16x8",T[T.SubSatU16x8=150]="SubSatU16x8",T[T.MulI16x8=151]="MulI16x8",T[T.MinI16x8=152]="MinI16x8",T[T.MinU16x8=153]="MinU16x8",T[T.MaxI16x8=154]="MaxI16x8",T[T.MaxU16x8=155]="MaxU16x8",T[T.AvgrU16x8=156]="AvgrU16x8",T[T.Q15mulrSatI16x8=157]="Q15mulrSatI16x8",T[T.ExtmulLowI16x8=158]="ExtmulLowI16x8",T[T.ExtmulHighI16x8=159]="ExtmulHighI16x8",T[T.ExtmulLowU16x8=160]="ExtmulLowU16x8",T[T.ExtmulHighU16x8=161]="ExtmulHighU16x8",T[T.AddI32x4=162]="AddI32x4",T[T.SubI32x4=163]="SubI32x4",T[T.MulI32x4=164]="MulI32x4",T[T.MinI32x4=165]="MinI32x4",T[T.MinU32x4=166]="MinU32x4",T[T.MaxI32x4=167]="MaxI32x4",T[T.MaxU32x4=168]="MaxU32x4",T[T.DotI16x8=169]="DotI16x8",T[T.ExtmulLowI32x4=170]="ExtmulLowI32x4",T[T.ExtmulHighI32x4=171]="ExtmulHighI32x4",T[T.ExtmulLowU32x4=172]="ExtmulLowU32x4",T[T.ExtmulHighU32x4=173]="ExtmulHighU32x4",T[T.AddI64x2=174]="AddI64x2",T[T.SubI64x2=175]="SubI64x2",T[T.MulI64x2=176]="MulI64x2",T[T.ExtmulLowI64x2=177]="ExtmulLowI64x2",T[T.ExtmulHighI64x2=178]="ExtmulHighI64x2",T[T.ExtmulLowU64x2=179]="ExtmulLowU64x2",T[T.ExtmulHighU64x2=180]="ExtmulHighU64x2",T[T.AddF32x4=189]="AddF32x4",T[T.SubF32x4=190]="SubF32x4",T[T.MulF32x4=191]="MulF32x4",T[T.DivF32x4=192]="DivF32x4",T[T.MinF32x4=193]="MinF32x4",T[T.MaxF32x4=194]="MaxF32x4",T[T.PminF32x4=195]="PminF32x4",T[T.PmaxF32x4=196]="PmaxF32x4",T[T.AddF64x2=197]="AddF64x2",T[T.SubF64x2=198]="SubF64x2",T[T.MulF64x2=199]="MulF64x2",T[T.DivF64x2=200]="DivF64x2",T[T.MinF64x2=201]="MinF64x2",T[T.MaxF64x2=202]="MaxF64x2",T[T.PminF64x2=203]="PminF64x2",T[T.PmaxF64x2=204]="PmaxF64x2",T[T.NarrowI16x8ToI8x16=205]="NarrowI16x8ToI8x16",T[T.NarrowU16x8ToU8x16=206]="NarrowU16x8ToU8x16",T[T.NarrowI32x4ToI16x8=207]="NarrowI32x4ToI16x8",T[T.NarrowU32x4ToU16x8=208]="NarrowU32x4ToU16x8",T[T.SwizzleI8x16=209]="SwizzleI8x16",T[T.RelaxedSwizzleI8x16=210]="RelaxedSwizzleI8x16",T[T.RelaxedMinF32x4=211]="RelaxedMinF32x4",T[T.RelaxedMaxF32x4=212]="RelaxedMaxF32x4",T[T.RelaxedMinF64x2=213]="RelaxedMinF64x2",T[T.RelaxedMaxF64x2=214]="RelaxedMaxF64x2",T[T.RelaxedQ15MulrI16x8=215]="RelaxedQ15MulrI16x8",T[T.RelaxedDotI8x16I7x16ToI16x8=216]="RelaxedDotI8x16I7x16ToI16x8",T[T._last=216]="_last",T[T.AddSize=217]="AddSize",T[T.SubSize=218]="SubSize",T[T.MulSize=219]="MulSize",T[T.DivISize=220]="DivISize",T[T.DivUSize=221]="DivUSize",T[T.RemISize=222]="RemISize",T[T.RemUSize=223]="RemUSize",T[T.AndSize=224]="AndSize",T[T.OrSize=225]="OrSize",T[T.XorSize=226]="XorSize",T[T.ShlSize=227]="ShlSize",T[T.ShrISize=228]="ShrISize",T[T.ShrUSize=229]="ShrUSize",T[T.RotlSize=230]="RotlSize",T[T.RotrSize=231]="RotrSize",T[T.EqSize=232]="EqSize",T[T.NeSize=233]="NeSize",T[T.LtISize=234]="LtISize",T[T.LtUSize=235]="LtUSize",T[T.LeISize=236]="LeISize",T[T.LeUSize=237]="LeUSize",T[T.GtISize=238]="GtISize",T[T.GtUSize=239]="GtUSize",T[T.GeISize=240]="GeISize",T[T.GeUSize=241]="GeUSize",T))(Ri||{}),kp=(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))(kp||{}),wp=(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))(wp||{}),Cp=(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))(Cp||{}),Pp=(f=>(f[f.ShlI8x16=0]="ShlI8x16",f[f.ShrI8x16=1]="ShrI8x16",f[f.ShrU8x16=2]="ShrU8x16",f[f.ShlI16x8=3]="ShlI16x8",f[f.ShrI16x8=4]="ShrI16x8",f[f.ShrU16x8=5]="ShrU16x8",f[f.ShlI32x4=6]="ShlI32x4",f[f.ShrI32x4=7]="ShrI32x4",f[f.ShrU32x4=8]="ShrU32x4",f[f.ShlI64x2=9]="ShlI64x2",f[f.ShrI64x2=10]="ShrI64x2",f[f.ShrU64x2=11]="ShrU64x2",f))(Pp||{}),Bp=(f=>(f[f.Load8Splat=0]="Load8Splat",f[f.Load16Splat=1]="Load16Splat",f[f.Load32Splat=2]="Load32Splat",f[f.Load64Splat=3]="Load64Splat",f[f.Load8x8S=4]="Load8x8S",f[f.Load8x8U=5]="Load8x8U",f[f.Load16x4S=6]="Load16x4S",f[f.Load16x4U=7]="Load16x4U",f[f.Load32x2S=8]="Load32x2S",f[f.Load32x2U=9]="Load32x2U",f[f.Load32Zero=10]="Load32Zero",f[f.Load64Zero=11]="Load64Zero",f))(Bp||{}),Lp=(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))(Lp||{}),Np=(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))(Np||{}),Oy=(r=>(r[r.NonNull=0]="NonNull",r[r.ExternInternalize=1]="ExternInternalize",r[r.ExternExternalize=2]="ExternExternalize",r))(Oy||{}),qy=(n=>(n[n.Null=0]="Null",n[n.NonNull=1]="NonNull",n[n.Cast=2]="Cast",n[n.CastFail=3]="CastFail",n))(qy||{}),Wy=(r=>(r[r.LossyUTF8Array=0]="LossyUTF8Array",r[r.WTF16Array=1]="WTF16Array",r[r.FromCodePoint=2]="FromCodePoint",r))(Wy||{}),Ky=(e=>(e[e.UTF8=0]="UTF8",e[e.WTF16=1]="WTF16",e))(Ky||{}),jy=(e=>(e[e.LossyUTF8Array=0]="LossyUTF8Array",e[e.WTF16Array=1]="WTF16Array",e))(jy||{}),Hy=(e=>(e[e.Equal=0]="Equal",e[e.Compare=1]="Compare",e))(Hy||{}),wl=(e=>(e[e.Default=0]="Default",e[e.PreserveSideeffects=1]="PreserveSideeffects",e))(wl||{}),Ii=class{constructor(i,e){this.buffer=i;this.offset=e}},zt=class t{constructor(i,e,r){this.ref=i;this.useShadowStack=e;this.sizeType=r;this.hasTemporaryFunction=!1;this.cachedStringsToPointers=new Map;this.cachedPointersToStrings=new Map;assert(r==L.I32||r==L.I64),this.lit=pt(uo())}static create(i,e){return new t(y_(),i,e)}static createFrom(i,e,r){let n=Nn(i),s=new t(Rm(n,i.length),e,r);return ie(changetype(n)),s}i32(i){let e=this.lit;return b_(e,i),ti(this.ref,e)}i64(i,e=0){let r=this.lit;return Ry(r,i64_new(i,e)),ti(this.ref,r)}usize(i){return i64_is(i)?this.sizeType==L.I64?this.i64(i64_low(i),i64_high(i)):(assert(i64_is_u32(i)),this.i32(i64_low(i))):this.sizeType==L.I64?this.i64(i32(i)):this.i32(i32(i))}f32(i){let e=this.lit;return x_(e,i),ti(this.ref,e)}f64(i){let e=this.lit;return T_(e,i),ti(this.ref,e)}v128(i){assert(i.length==16);let e=this.lit;for(let r=0;r<16;++r)Le(e+r,unchecked(i[r]));return A_(e,e),ti(this.ref,e)}ref_null(i){return Eh(this.ref,i)}ref_eq(i,e){return kh(this.ref,i,e)}string_eq(i,e){return Ku(this.ref,0,i,e)}string_compare(i,e){return Ku(this.ref,1,i,e)}unary(i,e){if(i>141){let r=this.sizeType==L.I64;switch(i){case 142:i=r?1:0;break;case 143:i=r?3:2;break;case 144:i=r?5:4;break;case 145:i=r?21:20;break;default:assert(!1)}}return mf(this.ref,i,e)}binary(i,e,r){if(i>216){let n=this.sizeType==L.I64;switch(i){case 217:i=n?25:0;break;case 218:i=n?26:1;break;case 219:i=n?27:2;break;case 220:i=n?28:3;break;case 221:i=n?29:4;break;case 222:i=n?30:5;break;case 223:i=n?31:6;break;case 224:i=n?32:7;break;case 225:i=n?33:8;break;case 226:i=n?34:9;break;case 227:i=n?35:10;break;case 228:i=n?36:11;break;case 229:i=n?37:12;break;case 230:i=n?38:13;break;case 231:i=n?39:14;break;case 232:i=n?40:15;break;case 233:i=n?41:16;break;case 234:i=n?42:17;break;case 235:i=n?43:18;break;case 236:i=n?44:19;break;case 237:i=n?45:20;break;case 238:i=n?46:21;break;case 239:i=n?47:22;break;case 240:i=n?48:23;break;case 241:i=n?49:24;break;default:assert(!1)}}return bf(this.ref,i,e,r)}memory_size(i=P.DefaultMemory,e=!1){let r=this.allocStringCached(i);return $_(this.ref,r,e)}memory_grow(i,e=P.DefaultMemory,r=!1){let n=this.allocStringCached(e);return ef(this.ref,i,n,r)}table_size(i){let e=this.allocStringCached(i);return Lh(this.ref,e)}table_grow(i,e,r=0){let n=this.allocStringCached(i);return Nh(this.ref,n,r,e)}local_get(i,e){return H_(this.ref,i,e)}tostack(i){if(this.useShadowStack){let e=kt(i);return assert(e==L.I32||e==L.Unreachable),this.call(d.tostack,[i],e)}return i}local_tee(i,e,r,n=-1){return n==-1&&(n=kt(e)),r&&this.useShadowStack&&(e=this.tostack(e)),Q_(this.ref,i,e,n)}global_get(i,e){let r=this.allocStringCached(i);return X_(this.ref,r,e)}table_get(i,e,r){let n=this.allocStringCached(i);return Ph(this.ref,n,e,r)}load(i,e,r,n,s=0,a=i,l=P.DefaultMemory){let o=this.allocStringCached(l);return rf(this.ref,i,e,s,a,n,r,o)}store(i,e,r,n,s=0,a=i,l=P.DefaultMemory){let o=this.allocStringCached(l);return uf(this.ref,i,s,a,e,r,n,o)}atomic_load(i,e,r,n=0,s=P.DefaultMemory,a=1){let l=this.allocStringCached(s);return of(this.ref,i,n,r,e,l,a)}atomic_store(i,e,r,n,s=0,a=P.DefaultMemory,l=1){let o=this.allocStringCached(a);return cf(this.ref,i,s,e,r,n,o,l)}atomic_rmw(i,e,r,n,s,a,l=P.DefaultMemory,o=1){let u=this.allocStringCached(l);return Cf(this.ref,i,e,r,n,s,a,u,o)}atomic_cmpxchg(i,e,r,n,s,a,l=P.DefaultMemory,o=1){let u=this.allocStringCached(l);return Lf(this.ref,i,e,r,n,s,a,u,o)}atomic_wait(i,e,r,n,s=P.DefaultMemory){let a=this.allocStringCached(s);return zf(this.ref,i,e,r,n,a)}atomic_notify(i,e,r=P.DefaultMemory){let n=this.allocStringCached(r);return Of(this.ref,i,e,n)}atomic_fence(i=null){let e=this.allocStringCached(i);return Kf(this.ref,e)}local_set(i,e,r){return r&&this.useShadowStack&&(e=this.tostack(e)),on(this.ref,i,e)}global_set(i,e){let r=this.allocStringCached(i);return J_(this.ref,r,e)}table_set(i,e,r){let n=this.allocStringCached(i);return Bh(this.ref,n,e,r)}block(i,e,r=L.None){let n=this.allocStringCached(i),s=fe(e),a=S_(this.ref,n,s,e.length,r);return ie(s),a}flatten(i,e=L.None){let r=i.length;if(r==0)return this.nop();if(r==1){let n=i[0];switch($(n)){case 19:case 56:case 23:return n}let s=se(n);return s!=L.Unreachable&&s!=e?this.unreachable():n}return this.block(null,i,e)}br(i,e=0,r=0){let n=this.allocStringCached(i);return B_(this.ref,n,e,r)}drop(i){return mo(this.ref,i)}maybeDrop(i){let e=kt(i);return e!=L.None&&e!=L.Unreachable?mo(this.ref,i):i}maybeDropCondition(i,e){return(wi(i,this.ref)&-21)!=0?this.block(null,[this.drop(i),e],se(e)):e}loop(i,e){let r=this.allocStringCached(i);return C_(this.ref,r,e)}if(i,e,r=0){return R_(this.ref,i,e,r)}nop(){return kf(this.ref)}return(i=0){return Ff(this.ref,i)}select(i,e,r){return Ef(this.ref,r,i,e)}switch(i,e,r,n=0){let s=i.length,a=new Array(s);for(let c=0;c<s;++c)unchecked(a[c]=this.allocStringCached(i[c]));let l=fe(a),o=this.allocStringCached(e),u=M_(this.ref,l,s,o,r,n);return ie(l),u}call(i,e,r,n=!1){let s=this.allocStringCached(i),a=fe(e),l=n?q_(this.ref,s,a,e?e.length:0,r):O_(this.ref,s,a,e?e.length:0,r);return ie(a),l}return_call(i,e,r){return this.call(i,e,r,!0)}call_indirect(i,e,r,n,s,a=!1){let l=this.allocStringCached(i??P.DefaultTable),o=fe(r),u=a?j_(this.ref,l,e,o,r?r.length:0,n,s):W_(this.ref,l,e,o,r?r.length:0,n,s);return ie(o),u}return_call_indirect(i,e,r,n,s){return this.call_indirect(i,e,r,n,s,!0)}unreachable(){return wf(this.ref)}memory_copy(i,e,r,n=P.DefaultMemory,s=P.DefaultMemory){let a=this.allocStringCached(n),l=this.allocStringCached(s);return dh(this.ref,i,e,r,a,l)}memory_fill(i,e,r,n=P.DefaultMemory){let s=this.allocStringCached(n);return bh(this.ref,i,e,r,s)}try(i,e,r,n,s=null){let a=r.length,l=new Array(a);for(let h=0;h<a;++h)l[h]=this.allocStringCached(r[h]);let o=fe(l),u=fe(n),c=this.allocStringCached(i),_=this.allocStringCached(s),f=Mh(this.ref,c,e,o,a,u,n.length,_);return ie(u),ie(o),f}throw(i,e){let r=this.allocStringCached(i),n=fe(e),s=Dh(this.ref,r,n,e.length);return ie(n),s}rethrow(i){let e=this.allocStringCached(i);return Oh(this.ref,e)}pop(i){return Hh(this.ref,i)}tuple_make(i){let e=fe(i),r=qh(this.ref,e,i.length);return ie(e),r}tuple_extract(i,e){return Kh(this.ref,i,e)}simd_extract(i,e,r){return jf(this.ref,i,e,r)}simd_replace(i,e,r,n){return Qf(this.ref,i,e,r,n)}simd_shuffle(i,e,r){assert(r.length==16);let n=Nn(r),s=Zf(this.ref,i,e,n);return ie(n),s}simd_ternary(i,e,r,n){return eh(this.ref,i,e,r,n)}simd_shift(i,e,r){return nh(this.ref,i,e,r)}simd_load(i,e,r,n,s=P.DefaultMemory){let a=this.allocStringCached(s);return lh(this.ref,i,r,n,e,a)}simd_loadstorelane(i,e,r,n,s,a,l=P.DefaultMemory){let o=this.allocStringCached(l);return uh(this.ref,i,r,n,s,e,a,o)}ref_is_null(i){return vh(this.ref,i)}ref_as(i,e){return Jo(this.ref,i,e)}ref_as_nonnull(i){return Qy(se(i))?Jo(this.ref,0,i):i}ref_func(i,e){let r=this.allocStringCached(i);return Rh(this.ref,r,Qt(e))}i31_new(i){return Qh(this.ref,i)}i31_get(i,e){return Jh(this.ref,i,e)}addGlobal(i,e,r,n){let s=this.allocStringCached(i);return tm(this.ref,s,e,r,n)}getGlobal(i){let e=this.allocStringCached(i);return ep(this.ref,e)}removeGlobal(i){let e=this.allocStringCached(i);return ep(this.ref,e)?(rm(this.ref,e),!0):!1}addTag(i,e,r){let n=this.allocStringCached(i);return om(this.ref,n,e,r)}getTag(i){let e=this.allocStringCached(i);return um(this.ref,e)}removeTag(i){let e=this.allocStringCached(i);pm(this.ref,e)}addFunction(i,e,r,n,s){let a=this.allocStringCached(i),l=fe(n),o=ri(this.ref,a,e,r,l,n?n.length:0,s);return ie(l),o}setLocalName(i,e,r){Ud(i,e,this.allocStringCached(r))}getFunction(i){let e=this.allocStringCached(i);return ii(this.ref,e)}removeFunction(i){let e=this.allocStringCached(i);bn(this.ref,e)}hasFunction(i){let e=this.allocStringCached(i);return ii(this.ref,e)!=0}addTemporaryFunction(i,e,r){this.hasTemporaryFunction=assert(!this.hasTemporaryFunction);let n=this.allocStringCached(""),s=fe(e),a=ri(this.ref,n,He(e),i,0,0,r);return ie(s),a}removeTemporaryFunction(){this.hasTemporaryFunction=!assert(this.hasTemporaryFunction);let i=this.allocStringCached("");bn(this.ref,i)}setStart(i){xm(this.ref,i)}addFunctionExport(i,e){let r=this.allocStringCached(i),n=this.allocStringCached(e);return Ys(this.ref,r,n)}addTableExport(i,e){let r=this.allocStringCached(i),n=this.allocStringCached(e);return Qd(this.ref,r,n)}addMemoryExport(i,e){let r=this.allocStringCached(i),n=this.allocStringCached(e);return Xd(this.ref,r,n)}addGlobalExport(i,e){let r=this.allocStringCached(i),n=this.allocStringCached(e);return Jd(this.ref,r,n)}addTagExport(i,e){let r=this.allocStringCached(i),n=this.allocStringCached(e);return Zd(this.ref,r,n)}removeExport(i){let e=this.allocStringCached(i);ea(this.ref,e)}hasExport(i){let e=this.allocStringCached(i);return $s(this.ref,e)!=0}addFunctionImport(i,e,r,n,s){let a=this.allocStringCached(i),l=this.allocStringCached(e),o=this.allocStringCached(r);qd(this.ref,a,l,o,n,s)}addTableImport(i,e,r){let n=this.allocStringCached(i),s=this.allocStringCached(e),a=this.allocStringCached(r);Wd(this.ref,n,s,a)}addMemoryImport(i,e,r,n=!1){let s=this.allocStringCached(i),a=this.allocStringCached(e),l=this.allocStringCached(r);Kd(this.ref,s,a,l,n)}addGlobalImport(i,e,r,n,s=!1){let a=this.allocStringCached(i),l=this.allocStringCached(e),o=this.allocStringCached(r);jd(this.ref,a,l,o,n,s)}addTagImport(i,e,r,n,s){let a=this.allocStringCached(i),l=this.allocStringCached(e),o=this.allocStringCached(r);Hd(this.ref,a,l,o,n,s)}static{this.UNLIMITED_MEMORY=-1}setMemory(i,e,r,n,s=null,a=P.DefaultMemory,l=!1){let o=this.allocStringCached(s),u=this.allocStringCached(a),c=r.length,_=new Array(c),f=new Uint8Array(c),h=new Array(c),y=new Array(c);for(let E=0;E<c;++E){let k=unchecked(r[E]),F=k.buffer,R=k.offset;unchecked(_[E]=Nn(F)),unchecked(f[E]=0),unchecked(h[E]=n==2?this.i64(i64_low(R),i64_high(R)):this.i32(i64_low(R))),unchecked(y[E]=F.length)}let x=fe(_),b=Nn(f),A=fe(h),I=Sp(y);bm(this.ref,i,e,o,0,x,b,A,I,c,l,!1,u),ie(I),ie(A),ie(b),ie(x);for(let E=c-1;E>=0;--E)ie(unchecked(_[E]))}static{this.UNLIMITED_TABLE=-1}addFunctionTable(i,e,r,n,s){let a=this.allocStringCached(i),l=n.length,o=new Array(l);for(let _=0;_<l;++_)unchecked(o[_]=this.allocStringCached(n[_]));let u=fe(o),c=dm(this.ref,a);c?(mm(c,e),ym(c,r)):c=hm(this.ref,a,e,r,L.Funcref),gm(this.ref,a,a,u,l,s),ie(u)}addCustomSection(i,e){let r=this.allocStringCached(i),n=Nn(e);Bm(this.ref,r,n,e.length),ie(n)}getOptimizeLevel(){return Jm()}setOptimizeLevel(i){Zm(i)}getShrinkLevel(){return Ym()}setShrinkLevel(i){$m(i)}getDebugInfo(){return ey()}setDebugInfo(i){ty(i)}getTrapsNeverHappen(){return ry()}setTrapsNeverHappen(i){iy(i)}getClosedWorld(){return ny()}setClosedWorld(i){sy(i)}getLowMemoryUnused(){return ay()}setLowMemoryUnused(i){ly(i)}getZeroFilledMemory(){return oy()}setZeroFilledMemory(i){uy(i)}getFastMath(){return py()}setFastMath(i){cy(i)}getGenerateStackIR(){return _y()}setGenerateStackIR(i){fy(i)}getOptimizeStackIR(){return hy()}setOptimizeStackIR(i){dy(i)}getPassArgument(i){let e=this.allocStringCached(i),r=my(e);return r?Ve(r):null}setPassArgument(i,e){let r=this.allocStringCached(i),n=this.allocStringCached(e);yy(r,n)}clearPassArguments(){gy()}getAlwaysInlineMaxSize(){return by()}setAlwaysInlineMaxSize(i){xy(i)}getFlexibleInlineMaxSize(){return Ty()}setFlexibleInlineMaxSize(i){Ay(i)}getOneCallerInlineMaxSize(){return Ey()}setOneCallerInlineMaxSize(i){vy(i)}getAllowInliningFunctionsWithLoops(){return Sy()}setAllowInliningFunctionsWithLoops(i){Iy(i)}setPartialInliningIfs(i){this.setPassArgument("partial-inlining-ifs",i.toString())}getFeatures(){return Cm(this.ref)}setFeatures(i){i&16&&(i|=524288),Pm(this.ref,i)}runPasses(i,e=0){let r=i.length,n=new Array(r);for(let a=0;a<r;++a)n[a]=Rl(i[a]);let s=fe(n);e?Vd(e,this.ref,s,r):Am(this.ref,s,r),ie(s);for(let a=r-1;a>=0;--a)ie(n[a])}optimize(i,e,r=!1,n=!1){(i>=3||e>=2)&&(i=4),this.clearPassArguments(),this.setOptimizeLevel(i),this.setShrinkLevel(e),this.setDebugInfo(r),this.setZeroFilledMemory(n),this.setFastMath(!0);let s=i>=2||e>=1;if(this.setGenerateStackIR(s),this.setOptimizeStackIR(s),i>=2&&e==0?(this.setAlwaysInlineMaxSize(12),this.setFlexibleInlineMaxSize(70),this.setOneCallerInlineMaxSize(200),this.setAllowInliningFunctionsWithLoops(!0)):(this.setAlwaysInlineMaxSize(i<=1||e>=2?2:6),this.setFlexibleInlineMaxSize(65),this.setOneCallerInlineMaxSize(80),this.setAllowInliningFunctionsWithLoops(!1)),this.setPartialInliningIfs(i>=2?4:0),i>0||e>0){let a=new Array;a.push("duplicate-function-elimination"),a.push("remove-unused-module-elements"),i>=2&&a.push("once-reduction"),(i>=2||e>=1)&&(a.push("inlining"),a.push("simplify-globals-optimizing"),a.push("generate-global-effects")),(i>=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")),i>=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"),i>=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"),i>=3||e>=2?(a.push("inlining"),a.push("precompute-propagate"),a.push("simplify-globals-optimizing")):i>=2||e>=1?a.push("precompute-propagate"):a.push("precompute"),(i>=2||e>=1)&&a.push("pick-load-signs"),a.push("simplify-locals-notee-nostructure"),a.push("vacuum"),(i>=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"),(i>=2||e>=1)&&(a.push("rse"),a.push("vacuum")),e>=1&&(a.push("merge-locals"),a.push("vacuum")),(i>=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"),i>=3&&a.push("optimize-instructions"),(i>=2||e>=1)&&(a.push("simplify-globals-optimizing"),a.push("dae-optimizing")),(i>=2||e>=2)&&a.push("inlining-optimizing"),this.getLowMemoryUnused()&&(i>=3||e>=1?a.push("optimize-added-constants-propagate"):a.push("optimize-added-constants")),a.push("duplicate-import-elimination"),i>=2||e>=2?a.push("simplify-globals-optimizing"):(a.push("simplify-globals"),a.push("vacuum")),i>=2&&(this.getFeatures()&1024)!=0&&(a.push("heap2local"),a.push("merge-locals"),a.push("local-subtyping")),i>=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"),(i>=3||e>=1)&&a.push("gufa-optimizing"),a.push("inlining-optimizing"),(i>=2||e>=1)&&(a.push("code-folding"),a.push("ssa-nomerge"),a.push("rse"),a.push("code-pushing"),i>=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"),(i>=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"),(i>=2||e>=1)&&a.push("discard-global-effects"),this.runPasses(a)}}validate(){return Tm(this.ref)==1}interpret(){Fm(this.ref)}toBinary(i=null){assert(uo()>=Em());let e=this.lit,r=Rl(i);vm(e,this.ref,r);let n=Zt(e+0),s=Zt(e+4),a=Zt(e+8),l=new kl(L2(assert(n),s),Ve(a));return r&&ie(r),a&&ie(a),ie(n),l}toText(i=!0){let e=i?Im(this.ref):Sm(this.ref),r=Ve(e);return e&&ie(e),r||""}allocStringCached(i){if(i==null)return 0;let e=this.cachedStringsToPointers;if(e.has(i))return changetype(e.get(i));let r=Rl(i);return e.set(i,r),r}readStringCached(i){if(i==0)return null;let e=this.cachedPointersToStrings;if(e.has(i))return changetype(e.get(i));let r=Ve(i);return e.set(i,r),r}dispose(){assert(this.ref);for(let i=Map_values(this.cachedStringsToPointers),e=0,r=i.length;e<r;++e){let n=unchecked(i[e]);ie(n)}this.cachedStringsToPointers.clear(),this.cachedPointersToStrings.clear(),ie(this.lit),g_(this.ref),this.ref=0}createRelooper(){return Fl.create(this)}tryCopyTrivialExpression(i){return this.isTrivialExpression(i)?this.copyExpression(i):0}isTrivialExpression(i){switch(Ft(i)){case 8:case 10:case 14:case 20:case 22:case 23:case 38:case 42:return!0}return!1}copyExpression(i){return E_(i,this.ref)}runExpression(i,e,r=50,n=1){let s=Vm(this.ref,e,r,n),a=Om(s,i);if(a){if(!this.isConstExpression(a))return 0;assert(se(a)==se(i))}return a}isConstExpression(i){switch($(i)){case 14:case 42:case 44:case 61:return!0;case 16:{if(this.getFeatures()&8192)switch(Fi(i)){case 0:case 1:case 2:case 25:case 26:case 27:return this.isConstExpression(Xe(i))&&this.isConstExpression(Ne(i))}break}}return!1}addDebugInfoFile(i){let e=Rl(i),r=km(this.ref,e);return ie(e),r}getDebugInfoFile(i){return Ve(wm(this.ref,i))}setDebugLocation(i,e,r,n,s){Od(i,e,r,n,s)}};function He(t){if(!t)return L.None;switch(t.length){case 0:return L.None;case 1:return t[0]}let i=fe(t),e=Yc(i,t.length);return ie(i),e}function Mp(t){let i=$c(t),e=pt(i<<2);e_(t,e);let r=new Array(i);for(let n=0;n<i;++n)unchecked(r[n]=Zt(e+(n<<2)));return ie(e),r}function Qy(t){return t_(t)}function $(t){return Ft(t)}function se(t){return kt(t)}function ne(t){return _f(t)}function ve(t){return i64_low(np(t))}function we(t){return i64_high(np(t))}function Gp(t,i){let e=0,r=0;return i?(e=ve(t),r=we(t)):e=ne(t),i64_new(e,r)}function Ae(t){return ff(t)}function Ee(t){return hf(t)}function zp(t){let i=pt(16);df(t,i);let e=new Uint8Array(16);for(let r=0;r<16;++r)e[r]=xr(i+r);return ie(i),e}function Qe(t){if($(t)!=14)return!1;let i=se(t);return i==L.I32?ne(t)==0:i==L.I64?(ve(t)|we(t))==0:i==L.F32?Ae(t)==0:i==L.F64?Ee(t)==0:!1}function lt(t){if($(t)!=14)return!1;let i=se(t);return i==L.I32?ne(t)!=0:i==L.I64?(ve(t)|we(t))!=0:i==L.F32?Ae(t)!=0:i==L.F64?Ee(t)!=0:!1}function Cl(t){if($(t)!=14)return!1;let i=se(t);if(i==L.F32){let e=Ae(t);return e==0&&f32_as_i32(e)<0}if(i==L.F64){let e=Ee(t);return e==0&&i64_signbit(f64_as_i64(e))}return!1}function l2(t){if($(t)!=14)return!1;let i=se(t);return i==L.F32?isNaN(Ae(t)):i==L.F64?isNaN(Ee(t)):!1}function Pl(t,i){let e=$(i),r=se(i);if(r==L.F32||r==L.F64){if(e==14)return isNaN(r==L.F32?Ae(i):Ee(i));if(e==10){let n=t.runExpression(i,0,8);if(n)return isNaN(r==L.F32?Ae(n):Ee(n))}}return!1}function dt(t){return Os(t)}function Bl(t){return ei(t)}function Ll(t){return yr(t)}function Dn(t){return qs(t)}function Un(t){return Ve(Ks(t))}function Fi(t){return xf(t)}function Xe(t){return fn(t)}function Ne(t){return hn(t)}function Vn(t){return yf(t)}function Nl(t){return _n(t)}function Dp(t){return af(t)}function o2(t){return sf(t)}function u2(t){return pn(t)}function Up(t){return nf(t)}function p2(t){return js(t)}function c2(t){return Hs(t)}function _2(t){return gr(t)}function f2(t){return cn(t)}function On(t){return Ve(Gs(t))}function qn(t){return Yi(t)}function Wn(t,i){return $i(t,i)}function Ml(t){return en(t)}function Kn(t){return tn(t)}function ki(t){return rn(t)}function h2(t){return Ve(zs(t))}function d2(t){return nn(t)}function m2(t){return Ve(Ds(t))}function y2(t){return sn(t)}function Vp(t){return dn(t)}function Op(t){return mn(t)}function g2(t){return yn(t)}function b2(t){return gn(t)}function x2(t){return br(t)}function jn(t){return Ve($r(t))}function mt(t){return Xt(t)}function Oe(t,i){return Jt(t,i)}function T2(t){return un(t)}function A2(t){return wt(t)}function qp(t){return Ve(si(t))}function E2(t){return Tn(t)}function v2(t){return An(t)}function S2(t){let i=Js(t),e=new Array(i);for(let r=0;r<i;++r)unchecked(e[r]=Zs(t,r));return e}function I2(t){return Ve(sm(t))}function R2(t){return am(t)}function Wp(t){return lm(t)}function F2(t){return ta(t)}function k2(t){return Ve(cm(t))}function w2(t){return _m(t)}function C2(t){return fm(t)}var Fl=class t{constructor(i,e){this.module=i;this.ref=e}static create(i){return new t(i,Nm(i.ref))}addBlock(i){return Mm(this.ref,i)}addBranch(i,e,r=0,n=0){Gm(i,e,r,n)}addBlockWithSwitch(i,e){return zm(this.ref,i,e)}addBranchForSwitch(i,e,r,n=0){let s=P2(r);Dm(i,e,s,r.length,n),ie(s)}renderAndDispose(i,e){return Um(this.ref,i,e)}},Gn=class{constructor(i,e){this.values=new Array;this.indexes=new Array;this.cases=new Array;this.defaultIndex=-1;this.module=i,this.condition=e}addOrReplaceCase(i,e){let r=this.values.indexOf(i),n=this.addCode(e);r>=0?this.indexes[r]=n:(this.values.push(i),this.indexes.push(n))}addCase(i,e){this.values.push(i),this.indexes.push(this.addCode(e))}addCode(i){let e=this.cases,r=e.indexOf(i);return r<0&&(r=e.length,e.push(i)),r}addDefault(i){assert(this.defaultIndex==-1);let e=this.cases;this.defaultIndex=e.length,e.push(i)}render(i,e=""){let r=this.module,n=this.cases,s=n.length;if(!s)return r.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 x=0;x<s;++x)unchecked(c[x]=`case${x}${e}`);u[0]=r.local_set(i,this.condition,!1);for(let x=0;x<l;++x){let b=unchecked(o[x]);unchecked(u[1+x]=r.br(c[b],r.binary(15,r.local_get(i,L.I32),r.i32(a[x]))))}let _=this.defaultIndex,f=`default${e}`;u[1+l]=r.br(~_?c[_]:f);let h=r.block(c[0],u);for(let x=1;x<s;++x){let b=n[x-1];b.unshift(h),h=r.block(unchecked(c[x]),b)}let y=n[s-1];return y.unshift(h),r.block(~_?null:f,y)}},Kp=(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))(Kp||{});function wi(t,i){return Lm(t,i)}function Gl(t,i){return(wi(t,i)&-21)!=0}function Nn(t){if(!t)return 0;let i=t.length,e=pt(i);for(let r=0;r<i;++r)Le(e+r,unchecked(t[r]));return e}function P2(t){if(!t)return 0;let i=t.length,e=pt(i<<2),r=e;for(let n=0;n<i;++n){let s=unchecked(t[n]);ia(r,s),r+=4}return e}function Sp(t){if(!t)return 0;let i=t.length,e=pt(i<<2),r=e;for(let n=0;n<i;++n){let s=unchecked(t[n]);ia(r,s),r+=4}return e}function fe(t){if(!t)return 0;assert(ASC_TARGET!=2);let i=t.length,e=pt(i<<2),r=e;for(let n=0,s=i;n<s;++n){let a=unchecked(t[n]);ia(r,a),r+=4}return e}function B2(t){let i=0;for(let e=0,r=t.length;e<r;++e){let n=t.charCodeAt(e)>>>0;n<=127?i+=1:n<=2047?i+=2:hi(n)&&e+1<r&&fa(t.charCodeAt(e+1))?(e++,i+=4):i+=3}return i}function Rl(t){if(t==null)return 0;let i=B2(t),e=pt(i+1)>>>0,r=e;if(i==t.length)for(let n=0,s=t.length;n<s;++n){let a=t.charCodeAt(n)>>>0;Le(r++,a)}else for(let n=0,s=t.length;n<s;++n){let a=t.charCodeAt(n)>>>0,l;a<=127?Le(r++,a):a<=2047?(Le(r++,192|a>>>6),Le(r++,128|a&63)):hi(a)&&n+1<s&&fa(l=t.charCodeAt(n+1))?(a=Rn(a,l),++n,Le(r++,240|a>>>18),Le(r++,128|a>>>12&63),Le(r++,128|a>>>6&63),Le(r++,128|a&63)):(Le(r++,224|a>>>12),Le(r++,128|a>>>6&63),Le(r++,128|a&63))}return Le(r,0),e}function L2(t,i){let e=new Uint8Array(i);for(let r=0;r<i;++r)unchecked(e[r]=xr(t+r));return e}function Ve(t){if(!t)return null;let i=new Array,e,r,n,s;for(;e=xr(t++);){if(!(e&128)){i.push(e);continue}if(r=xr(t++)&63,(e&224)==192){i.push((e&31)<<6|r);continue}if(n=xr(t++)&63,(e&240)==224?e=(e&15)<<12|r<<6|n:(s=xr(t++)&63,(e&248)==240?e=(e&7)<<18|r<<12|n<<6|s:assert(!1,"Invalid UTF8 sequence during readString")),e<65536)i.push(e);else{let a=e-65536;i.push(In|a>>>10),i.push(fi|a&1023)}}return String.fromCharCodes(i)}var kl=class{constructor(i,e){this.output=i;this.sourceMap=e}},Gt=!1;function Hn(t){if(t==p.void)return L.None;let i=Xy(t);if(i)return i;let e=t;if(t=t.nonNullableType,i=t.ref)return he(Qt(i),e.is(512));ASC_TARGET&&assert(sizeof()==4);let r=qm(0),n=new Map;er(r,n,t);let s=ra(r),a=pt(max(4*s,8));if(!Hm(r,a,a,a+4)){let l=Zt(a),o=Zt(a+4);throw ie(a),new Error(`type builder error at index ${l}: ${Ip.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 _=Zt(a+4*o),f=he(_,!1);assert(!c.ref),c.ref=f,Gt&&console.log(` set ${c.toString()}`);let h=c.getClass();if(h){let y=h.program.module;Qm(y.ref,_,y.allocStringCached(h.internalName));let x=h.members;if(x){let b=m_(_),A=0;for(let I=Map_values(x),E=0,k=I.length;E<k;++E){let F=I[E];if(F.kind!=10)continue;let R=F.instance;!R||!R.isField||Xm(y.ref,_,A++,y.allocStringCached(R.name))}assert(b==A)}}}return ie(a),Gt&&console.log(` finalize ${t.toString()}`),i=assert(t.ref),he(Qt(i),e.is(512))}function Xy(t){switch(t.kind){case 0:case 1:case 6:case 2:case 7:case 3:case 8:return L.I32;case 4:case 9:return L.I64;case 5:case 10:{if(t.isInternalReference)break;return t.size==64?L.I64:L.I32}case 11:return L.F32;case 12:return L.F64;case 13:return L.V128;case 15:return he(ge.Func,t.is(512));case 14:return he(ge.Extern,t.is(512));case 16:return he(ge.Any,t.is(512));case 17:return he(ge.Eq,t.is(512));case 18:return he(ge.Struct,t.is(512));case 19:return he(ge.Array,t.is(512));case 20:return he(ge.I31,t.is(512));case 21:return he(ge.String,t.is(512));case 25:assert(!1)}return 0}function N2(t){switch(t.kind){case 0:case 1:case 6:return Mn.I8;case 2:case 7:return Mn.I16}return Mn.NotPacked}function er(t,i,e){if(e==p.void)return L.None;let r=Xy(e);if(r||(assert(!e.is(512)),r=e.ref))return r;if(i.has(e))return Gt&&console.log(` prepare ${e.toString()} (seen)`),changetype(i.get(e));Gt&&console.log(`prepare ${e.toString()}`);let n=e.getClass();if(n){let a=n.base,l=0;a&&(l=er(t,i,a.type));let o=ra(t);tp(t,1),Gt&&console.log(` block [${o}]: ${e.toString()}`);let u=rp(t,o);r=ai(t,u,!1),i.set(e,r);let c=new Array,_=new Array,f=new Array,h=n.members;if(h)for(let A=Map_values(h),I=0,E=A.length;I<E;++I){let k=A[I];if(k.kind!=10)continue;let F=k.instance;if(!F||!F.isField)continue;let R=F.type;Gt&&console.log(` field ${R.toString()}`),R.is(512)?c.push(ai(t,Qt(er(t,i,R.nonNullableType)),!0)):c.push(er(t,i,R)),_.push(N2(R)),f.push(1)}let y=fe(c),x=Sp(_),b=Sp(f);return Gt&&console.log(` concretize [${o}]: ${e.toString()}`),Km(t,o,y,x,b,c.length),a&&(Gt&&console.log(` set super [${o}]: ${e.toString()} <: ${a.type.toString()} ${l==a.type.ref?" (known)":""}`),jm(t,o,Qt(l))),ie(b),ie(x),ie(y),r}let s=e.getSignature();if(s){let a=ra(t);tp(t,1);let l=ai(t,rp(t,a),!1);i.set(e,l);let o=new Array,u=new Array,c=s.parameterTypes;for(let y=0,x=c.length;y<x;++y){let b=c[y];b.is(512)?o.push(ai(t,Qt(er(t,i,b.nonNullableType)),!0)):o.push(er(t,i,b))}let _=s.returnType;u.push(_==p.void?L.None:_.is(512)?ai(t,Qt(er(t,i,_.nonNullableType)),!0):er(t,i,_));let f;if(o.length>1){let y=fe(o);f=ip(t,y,o.length),ie(y)}else f=o.length?o[0]:L.None;let h;if(u.length>1){let y=fe(u);h=ip(t,y,u.length),ie(y)}else h=u[0];return Gt&&console.log(` concretize [${a}]: ${e.toString()}`),Wm(t,a,f,h),l}throw new Error(`unexpected complex type: ${e.toString()}`)}var Dl=(F=>(F[F.None=0]="None",F[F.Returns=1]="Returns",F[F.ReturnsWrapped=2]="ReturnsWrapped",F[F.ReturnsNonNull=4]="ReturnsNonNull",F[F.Throws=8]="Throws",F[F.Breaks=16]="Breaks",F[F.Continues=32]="Continues",F[F.AccessesThis=64]="AccessesThis",F[F.CallsSuper=128]="CallsSuper",F[F.Terminates=256]="Terminates",F[F.ConditionallyReturns=512]="ConditionallyReturns",F[F.ConditionallyThrows=1024]="ConditionallyThrows",F[F.ConditionallyBreaks=2048]="ConditionallyBreaks",F[F.ConditionallyContinues=4096]="ConditionallyContinues",F[F.ConditionallyAccessesThis=8192]="ConditionallyAccessesThis",F[F.MayReturnNonThis=16384]="MayReturnNonThis",F[F.UncheckedContext=32768]="UncheckedContext",F[F.CtorParamContext=65536]="CtorParamContext",F[F.InlineContext=131072]="InlineContext",F[F.AnyCategorical=511]="AnyCategorical",F[F.AnyConditional=15872]="AnyConditional",F))(Dl||{}),Qn=(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))(Qn||{}),jp=(e=>(e[e.None=0]="None",e[e.Initialized=1]="Initialized",e))(jp||{}),Hp=(r=>(r[r.Unknown=0]="Unknown",r[r.True=1]="True",r[r.False=2]="False",r))(Hp||{}),Dt=class t{constructor(i,e=null){this.targetFunction=i;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;this.tryFinallyPendingActionLocal=-1;this.tryFinallyPendingValueLocal=-1;this.tryFinallyDispatchLabel=null;this.tryFinallyReturnType=null}static createDefault(i){let e=new t(i);return i.is(524288)&&e.initThisFieldFlags(),i.program.options.uncheckedBehavior===2&&e.set(32768),e}static createInline(i,e){let r=new t(i,e);return r.inlineReturnLabel=`${e.internalName}|inlined.${e.nextInlineId++}`,e.is(524288)&&r.initThisFieldFlags(),i.program.options.uncheckedBehavior===2&&r.set(32768),r}get isInline(){return this.inlineFunction!=null}get isInTryFinally(){return this.tryFinallyPendingActionLocal>=0}getTryFinallyContext(){let i=this;for(;i;){if(i.tryFinallyPendingActionLocal>=0)return i;i=i.parent}return null}get sourceFunction(){let i=this.inlineFunction;return i||this.targetFunction}get program(){return this.targetFunction.program}get returnType(){return this.sourceFunction.signature.returnType}get contextualTypeArguments(){return this.sourceFunction.contextualTypeArguments}is(i){return(this.flags&i)==i}isAny(i){return(this.flags&i)!=0}set(i){this.flags|=i}unset(i){this.flags&=~i}deriveConditionalFlags(){let i=this.flags&15872;return this.is(1)&&(i|=512),this.is(8)&&(i|=1024),this.is(16)&&(i|=2048),this.is(32)&&(i|=4096),this.is(64)&&(i|=8192),i}fork(i=!1,e=i){let r=new t(this.targetFunction,this.inlineFunction);if(r.parent=this,r.flags=this.flags,r.outer=this.outer,i?r.flags&=-2065:r.breakLabel=this.breakLabel,e?r.flags&=-4129:r.continueLabel=this.continueLabel,r.localFlags=this.localFlags.slice(),this.sourceFunction.is(524288)){let n=assert(this.thisFieldFlags);r.thisFieldFlags=pe(n)}else assert(!this.thisFieldFlags);return r.inlineReturnLabel=this.inlineReturnLabel,r}forkThen(i,e=!1,r=e){let n=this.fork(e,r),s=this.trueFlows;return s&&s.has(i)&&n.inherit(changetype(s.get(i))),n.inheritNonnullIfTrue(i),n}noteThen(i,e){let r=this.trueFlows;r||(this.trueFlows=r=new Map),r.set(i,e)}forkElse(i){let e=this.fork(),r=this.falseFlows;return r&&r.has(i)&&e.inherit(changetype(r.get(i))),e.inheritNonnullIfFalse(i),e}noteElse(i,e){let r=this.falseFlows;r||(this.falseFlows=r=new Map),r.set(i,e)}addScopedTypeAlias(i,e){let r=this.scopedTypeAlias;r||(this.scopedTypeAlias=r=new Map),r.set(i,e)}lookupScopedTypeAlias(i){let e=this;do{let r=e.scopedTypeAlias;if(r&&r.has(i))return assert(r.get(i));e=e.parent}while(e);return null}lookupTypeAlias(i){let e=null;if(e=this.lookupScopedTypeAlias(i))return e;let r=this.sourceFunction.parent;return r.kind==5?r.flow.lookupTypeAlias(i):null}getTempLocal(i){let e=this.targetFunction.addLocal(i);return this.unsetLocalFlag(e.index,-1),e}getScopedLocal(i){let e=this.scopedLocals;return e&&e.has(i)?assert(e.get(i)):null}addScopedLocal(i,e){let r=this.getTempLocal(e);r.name=i,r.internalName=Ce(i,r.parent,!1);let n=this.scopedLocals;return n?assert(!n.has(i)):this.scopedLocals=n=new Map,r.set(67108864),n.set(i,r),r}addScopedDummyLocal(i,e,r){let n=new qe(i,-1,e,this.targetFunction),s=this.scopedLocals;return s?s.has(i)&&this.program.error(2451,r.range,i):this.scopedLocals=s=new Map,n.set(67108864),s.set(i,n),n}addScopedAlias(i,e,r,n=null){let s=this.scopedLocals;if(!s)this.scopedLocals=s=new Map;else if(s.has(i)){let l=assert(s.get(i));return n&&(l.declaration.range.source.isNative?this.program.error(2300,n.range,i):this.program.errorRelated(2300,n.range,l.declaration.name.range,i)),l}assert(r<this.targetFunction.localsByIndex.length);let a=new qe(i,r,e,this.targetFunction);return a.set(67108864),s.set(i,a),a}freeScopedDummyLocal(i){let e=assert(this.scopedLocals);assert(e.has(i));let r=assert(e.get(i));assert(r.index==-1),e.delete(i)}lookupLocal(i){let e=this;do{let r=e.scopedLocals;if(r&&r.has(i))return assert(r.get(i));e=e.parent}while(e);return null}lookupLocalInOuter(i){let e=this.outer;for(;e;){let r=e.lookupLocal(i);if(r)return r;e=e.outer}return null}lookup(i){let e=this.lookupLocal(i);return e||this.sourceFunction.lookup(i)}isLocalFlag(i,e,r=!0){if(i<0)return r;let n=this.localFlags;return i<n.length&&(unchecked(n[i])&e)==e}isAnyLocalFlag(i,e,r=!0){if(i<0)return r;let n=this.localFlags;return i<n.length&&(unchecked(n[i])&e)!=0}setLocalFlag(i,e){if(i<0)return;let r=this.localFlags,n=i<r.length?unchecked(r[i]):0;r[i]=n|e}unsetLocalFlag(i,e){if(i<0)return;let r=this.localFlags,n=i<r.length?unchecked(r[i]):0;r[i]=n&~e}initThisFieldFlags(){let i=this.sourceFunction;assert(i.is(524288));let e=i.parent;assert(e.kind==7);let r=e;this.thisFieldFlags=new Map;let n=r.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!=r||u.initializerNode||u.prototype.parameterIndex!=-1||u.type.isAny(640))&&this.setThisFieldFlag(u,1)}}isThisFieldFlag(i,e){let r=this.thisFieldFlags;return r!=null&&r.has(i)?(changetype(r.get(i))&e)==e:!1}setThisFieldFlag(i,e){let r=this.thisFieldFlags;if(r)if(assert(this.sourceFunction.is(524288)),r.has(i)){let n=changetype(r.get(i));r.set(i,n|e)}else r.set(i,e);else assert(!this.sourceFunction.is(524288))}pushControlFlowLabel(){let i=this.targetFunction,e=i.nextBreakId++,r=i.breakStack;return r?r.push(e):i.breakStack=[e],e}popControlFlowLabel(i){let e=this.targetFunction,r=assert(e.breakStack);assert(r.length),assert(r.pop()==i)}inherit(i){assert(i.targetFunction==this.targetFunction);let e=i.flags;this.breakLabel!=i.breakLabel&&(e&2064&&(e&=-257),e&=-2065),this.continueLabel!=i.continueLabel&&(e&=-4129),this.flags=this.flags|e,this.localFlags=i.localFlags,this.thisFieldFlags=i.thisFieldFlags}mergeSideEffects(i){assert(i.targetFunction==this.targetFunction);let e=this.flags,r=i.flags,n=0;e&1?n|=1:r&1?n|=512:n|=(e|r)&512,n|=e&r&2,n|=e&r&4,e&8?n|=8:r&8?n|=1024:n|=(e|r)&1024,e&16?n|=16:i.breakLabel==this.breakLabel?r&16?n|=2048:n|=(e|r)&2048:n|=e&2048,e&32?n|=32:i.continueLabel==this.continueLabel?r&32?n|=4096:n|=(e|r)&4096:n|=e&4096,e&64?r&64?n|=64:n|=8192:r&64&&(n|=8192),n|=(e|r)&16384,n|=e&r&128,e&256&&(n|=256),this.flags=n|e&98304}mergeBranch(i){this.mergeSideEffects(i);let e=this.localFlags,r=e.length,n=i.localFlags,s=n.length,a=max(r,s);for(let l=0;l<a;++l){let o=l<r?e[l]:0,u=l<s?n[l]:0;e[l]=o&u&15}}inheritAlternatives(i,e){assert(i.targetFunction==e.targetFunction),assert(i.targetFunction==this.targetFunction);let r=i.flags,n=e.flags,s=0;r&1?n&1?s|=1:s|=512:n&1?s|=512:s|=(r|n)&512,r&2&&n&2&&(s|=2),r&4&&n&4&&(s|=4),r&8?n&8?s|=8:s|=1024:n&8?s|=1024:s|=(r|n)&1024,r&16?n&16?s|=16:s|=2048:n&16?s|=2048:s|=(r|n)&2048,r&32?n&32?s|=32:s|=4096:n&32?s|=4096:s|=(r|n)&4096,r&64?n&64?s|=64:s|=8192:n&64?s|=8192:s|=(r|n)&8192,s|=(r|n)&16384,r&128&&n&128&&(s|=128),r&256&&n&256&&(s|=256),this.flags=s|this.flags&98304;let a=this.localFlags;if(r&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=i.localFlags;for(let u=0,c=o.length;u<c;++u)a[u]=o[u]}else{let o=i.localFlags,u=o.length,c=e.localFlags,_=c.length,f=max(u,_);for(let h=0;h<f;++h){let y=h<u?o[h]:0,x=h<_?c[h]:0;a[h]=y&x&15}}let l=i.thisFieldFlags;if(l){let o=new Map,u=assert(e.thisFieldFlags);for(let c=Map_keys(l),_=0,f=c.length;_<f;++_){let h=c[_];(changetype(l.get(h))&1)!=0&&u.has(h)&&changetype(u.get(h))&1&&o.set(h,1)}this.thisFieldFlags=o}else assert(!e.thisFieldFlags)}resetIfNeedsRecompile(i,e){let r=this.localFlags.length,n=i.localFlags.length,s=this.targetFunction;assert(s==i.targetFunction);let a=s.localsByIndex;assert(a==i.targetFunction.localsByIndex);let l=!1;for(let o=0,u=min(r,n);o<u;++o){let _=a[o].type;_.isShortIntegerValue&&this.isLocalFlag(o,2)&&!i.isLocalFlag(o,2)&&(this.unsetLocalFlag(o,2),l=!0),_.isNullableReference&&this.isLocalFlag(o,4)&&!i.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(i,e){if(!e.isNullableReference)return!0;switch($(i)){case 9:{if(!Dn(i))break;let r=this.targetFunction.localsByIndex[Bl(i)];return!r.type.isNullableReference||this.isLocalFlag(r.index,4,!1)}case 8:{let r=this.targetFunction.localsByIndex[dt(i)];return!r.type.isNullableReference||this.isLocalFlag(r.index,4,!1)}}return!1}inheritNonnullIfTrue(i,e=null){switch($(i)){case 9:{if(!Dn(i))break;let r=this.targetFunction.localsByIndex[Bl(i)];(!e||e.isLocalFlag(r.index,4))&&this.setLocalFlag(r.index,4),this.inheritNonnullIfTrue(Ll(i),e);break}case 8:{let r=this.targetFunction.localsByIndex[dt(i)];(!e||e.isLocalFlag(r.index,4))&&this.setLocalFlag(r.index,4);break}case 2:{let r=ki(i);r&&Qe(r)&&(this.inheritNonnullIfTrue(Ml(i),e),this.inheritNonnullIfTrue(Kn(i),e));break}case 15:{switch(Vn(i)){case 20:case 21:{this.inheritNonnullIfFalse(Nl(i),e);break}}break}case 16:{switch(Fi(i)){case 15:case 40:{let r=Xe(i),n=Ne(i);lt(r)?this.inheritNonnullIfTrue(n,e):lt(n)&&this.inheritNonnullIfTrue(r,e);break}case 16:case 41:{let r=Xe(i),n=Ne(i);Qe(r)?this.inheritNonnullIfTrue(n,e):Qe(n)&&this.inheritNonnullIfTrue(r,e);break}}break}case 6:{let r=jn(i);if(r==d.String_eq){assert(mt(i)==2);let n=Oe(i,0),s=Oe(i,1);lt(n)?this.inheritNonnullIfTrue(s,e):lt(s)&&this.inheritNonnullIfTrue(n,e)}else if(r==d.String_ne){assert(mt(i)==2);let n=Oe(i,0),s=Oe(i,1);Qe(n)?this.inheritNonnullIfTrue(s,e):Qe(s)&&this.inheritNonnullIfTrue(n,e)}else r==d.String_not?(assert(mt(i)==1),this.inheritNonnullIfFalse(Oe(i,0),e)):r==d.tostack&&(assert(mt(i)==1),this.inheritNonnullIfTrue(Oe(i,0),e));break}}}inheritNonnullIfFalse(i,e=null){switch($(i)){case 15:{switch(Vn(i)){case 20:case 21:{this.inheritNonnullIfTrue(Nl(i),e);break}}break}case 2:{let r=Kn(i);ki(i)&&lt(r)&&(this.inheritNonnullIfFalse(Ml(i),e),this.inheritNonnullIfFalse(ki(i),e));break}case 16:{switch(Fi(i)){case 15:case 40:{let r=Xe(i),n=Ne(i);Qe(r)?this.inheritNonnullIfTrue(n,e):Qe(n)&&this.inheritNonnullIfTrue(r,e);break}case 16:case 41:{let r=Xe(i),n=Ne(i);lt(r)?this.inheritNonnullIfTrue(n,e):lt(n)&&this.inheritNonnullIfTrue(r,e);break}}break}case 6:{let r=jn(i);if(r==d.String_eq){assert(mt(i)==2);let n=Oe(i,0),s=Oe(i,1);Qe(n)?this.inheritNonnullIfTrue(s,e):Qe(s)&&this.inheritNonnullIfTrue(n,e)}else if(r==d.String_ne){assert(mt(i)==2);let n=Oe(i,0),s=Oe(i,1);lt(n)?this.inheritNonnullIfTrue(s,e):lt(s)&&this.inheritNonnullIfTrue(n,e)}else r==d.String_not?(assert(mt(i)==1),this.inheritNonnullIfTrue(Oe(i,0),e)):r==d.tostack&&(assert(mt(i)==1),this.inheritNonnullIfFalse(Oe(i,0),e));break}}}canOverflow(i,e){if(!e.isShortIntegerValue)return!1;let r;switch($(i)){case 8:{let n=this.targetFunction.localsByIndex[dt(i)];return!this.isLocalFlag(n.index,2,!0)||zl(n.type,e)}case 9:return assert(Dn(i)),this.canOverflow(Ll(i),e);case 10:{let n=assert(this.program.elementsByName.get(assert(Un(i))));return assert(n.kind==0||n.kind==3),zl(n.type,e)}case 16:{switch(Fi(i)){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!($(r=Xe(i))==14&&(ne(r)==0||ne(r)==1&&!this.canOverflow(Ne(i),e))||$(r=Ne(i))==14&&(ne(r)==0||ne(r)==1&&!this.canOverflow(Xe(i),e)));case 7:return!($(r=Xe(i))==14&&ne(r)<=e.computeSmallIntegerMask(p.i32)||!this.canOverflow(r,e)||$(r=Ne(i))==14&&ne(r)<=e.computeSmallIntegerMask(p.i32)||!this.canOverflow(r,e));case 10:{let n=32-e.size;return $(r=Ne(i))!=14||ne(r)<n}case 11:{let n=32-e.size;return this.canOverflow(Xe(i),e)&&($(r=Ne(i))!=14||ne(r)<n)}case 12:{let n=32-e.size;return e.isSignedIntegerValue?!($(r=Ne(i))==14&&ne(r)>n):this.canOverflow(Xe(i),e)&&!($(r=Ne(i))==14&&ne(r)>=n)}case 4:case 5:case 6:return this.canOverflow(Xe(i),e)||this.canOverflow(Ne(i),e)}break}case 15:{switch(Vn(i)){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(se(i)){case L.I32:{n=ne(i);break}case L.I64:{n=ve(i);break}case L.F32:{n=i32(Ae(i));break}case L.F64:{n=i32(Ee(i));break}case L.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=Up(i);switch(Dp(i)){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 zl(n,e)}case 1:{if(!On(i)){let n=assert(qn(i)),s=Wn(i,n-1);return this.canOverflow(s,e)}break}case 2:return this.canOverflow(Kn(i),e)||this.canOverflow(assert(ki(i)),e);case 17:return this.canOverflow(Vp(i),e)||this.canOverflow(Op(i),e);case 6:{let s=this.program.instancesByName,a=assert(jn(i));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)||zl(u,e)}return!1}case 23:return!1}return!0}toString(){let i=0,e=this.parent;for(;e;)e=e.parent,++i;let r=new Array;return this.is(1)&&r.push("RETURNS"),this.is(2)&&r.push("RETURNS_WRAPPED"),this.is(4)&&r.push("RETURNS_NONNULL"),this.is(8)&&r.push("THROWS"),this.is(16)&&r.push("BREAKS"),this.is(32)&&r.push("CONTINUES"),this.is(64)&&r.push("ACCESSES_THIS"),this.is(128)&&r.push("CALLS_SUPER"),this.is(256)&&r.push("TERMINATES"),this.is(512)&&r.push("CONDITIONALLY_RETURNS"),this.is(1024)&&r.push("CONDITIONALLY_THROWS"),this.is(2048)&&r.push("CONDITIONALLY_BREAKS"),this.is(4096)&&r.push("CONDITIONALLY_CONTINUES"),this.is(8192)&&r.push("CONDITIONALLY_ACCESSES_THIS"),this.is(16384)&&r.push("MAY_RETURN_NONTHIS"),`Flow(${this.sourceFunction})[${i}] ${r.join(" ")}`}};function zl(t,i){return i.isShortIntegerValue&&(!t.isIntegerValue||t.size>i.size||t.isSignedIntegerValue!=i.isSignedIntegerValue)}var ql=(e=>(e[e.Report=0]="Report",e[e.Swallow=1]="Swallow",e))(ql||{}),Xn=class extends Ke{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,r,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,r,n,s,a);break}case 2:{l=this.resolveFunctionType(e,r,n,s,a);break}case 3:{l=this.resolveTupleType(e,r,n,s,a);break}default:assert(!1)}return e.currentlyResolving=!1,l}resolveNamedType(e,r,n,s=null,a=0){let l=e.name,o=e.typeArguments,u=!l.next;if(u){let f=l.identifier.text;if(s&&s.has(f)){let h=assert(s.get(f));if(o&&o.length>0&&a==0&&this.error(2315,e.range,h.toString()),e.isNullable){if(h.isReference)return h.asNullable();a==0&&this.error(204,e.range,h.toString())}return h}}let c=this.resolveTypeName(l,r,n,a);if(!c)return null;let _=c.shadowType;if(_)c=_;else{if(c.kind==2)return o&&o.length>0&&a==0&&this.error(2315,e.range,c.internalName),e.isNullable&&a==0&&this.error(204,e.range,`${c.name}/i32`),p.i32;if(c.kind==6||c.kind==8){let f=this.resolveClassInclTypeArguments(c,o,r,n,pe(s),e,a);return f?e.isNullable?f.type.asNullable():f.type:null}}if(c.kind==14){let f=c;if(c.is(4194304)){o&&o.length>0&&a==0&&this.error(2315,e.range,c.internalName);let b=f.type;if(e.isNullable){if(b.isReference)return b.asNullable();a==0&&this.error(204,l.range,l.identifier.text)}return b}if(u){let b=l.identifier.text;if(rr.has(b)){let A=assert(rr.get(b)),I=new Wl(this,e,n,s,a);return A(I)}}let h=f.typeParameterNodes,y=null;if(h){if(y=this.resolveTypeArguments(h,o,r,n,s=pe(s),e,a),!y)return null}else o&&o.length>0&&this.error(2315,e.range,l.identifier.text);let x=this.resolveType(f.typeNode,r,c,s,a);if(!x)return null;if(e.isNullable){if(x.isReference)return x.asNullable();a==0&&this.error(204,l.range,l.identifier.text)}return x}return a==0&&this.error(2304,l.range,l.identifier.text),null}resolveFunctionType(e,r,n,s=null,a=0){let l=e.explicitThisType,o=null;if(l&&(o=this.resolveType(l,r,n,s,a),!o))return null;let u=e.parameters,c=u.length,_=new Array(c),f=0,h=!1;for(let A=0;A<c;++A){let I=u[A];switch(I.parameterKind){case 0:{f=A+1;break}case 2:{assert(A==c-1),h=!0;break}}let E=I.type;if(ke(E))return a==0&&this.error(1110,E.range),null;let k=this.resolveType(E,r,n,s,a);if(!k)return null;if(k==p.void)return a==0&&this.error(214,E.range,k.toString()),null;_[A]=k}let y=e.returnType,x;if(ke(y))a==0&&this.error(1110,y.range),x=p.void;else if(x=this.resolveType(y,r,n,s,a),!x)return null;let b=We.create(this.program,_,x,o,f,h);return e.isNullable?b.type.asNullable():b.type}resolveTupleType(e,r,n,s=null,a=0){let l=e.elements;for(let o=0,u=l.length;o<u;++o)if(!this.resolveType(l[o],r,n,s,a))return null;return a==0&&this.error(100,e.range,"Tuple types"),null}resolveBuiltinNotNullableType(e,r,n=null,s=0){let a=this.ensureOneTypeArgument(e,s);if(!a)return null;let l=this.resolveType(a,null,r,n,s);return l?l.isNullableReference?l.nonNullableType:l:null}resolveTypeName(e,r,n,s=0){let a=null;if(r&&(a=r.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,r,n,s,a=new Map,l=null,o=0){let u=0,c=0;for(let y=0,x=e.length;y<x;++y)e[y].defaultType||++u,++c;let _=r?r.length:0;if(_<u||_>c)return o==0&&this.error(2558,_?le.join(r[0].range,r[_-1].range):l.range,(_<u?u:c).toString(),_.toString()),null;let f=new Array(c),h=pe(a);a.clear();for(let y=0;y<c;++y){let x=y<_?this.resolveType(r[y],n,s,h,o):this.resolveType(assert(e[y].defaultType),n,s,pe(a),o);if(!x)return null;a.set(e[y].name.text,x),f[y]=x}return f}maybeInferCall(e,r,n,s=0){let a=e.typeArguments;if(a)return r.is(65536)?this.resolveFunctionInclTypeArguments(r,a,n.sourceFunction,pe(n.contextualTypeArguments),e,s):(s==0&&this.error(2315,e.expression.range,r.internalName),null);if(r.is(65536)){let l=this.inferGenericTypeArguments(e,r,r.typeParameterNodes,n,s);return l?this.resolveFunction(r,l,pe(n.contextualTypeArguments),s):null}return this.resolveFunction(r,null,new Map,s)}inferGenericTypeArguments(e,r,n,s,a=0){if(!n)return null;let l=pe(s.contextualTypeArguments),o=n.length,u=new Set;for(let b=0;b<o;++b){let A=n[b].name.text;l.set(A,p.auto),u.add(A)}let c=r.functionTypeNode.parameters,_=c.length,f,h;switch(e.kind){case 10:{let b=e;f=b.args,h=b.argumentsRange;break}case 18:{let b=e;f=b.args,h=b.argumentsRange;break}default:return assert(!1),null}let y=f.length;for(let b=0;b<_;++b){let A=b<y?f[b]:c[b].initializer;if(!A){if(c[b].parameterKind==1)continue;return a==0&&(c[b].parameterKind==2?this.error(1140,h.atEnd):this.error(2554,e.range,_.toString(),y.toString())),null}let I=c[b].type;if(c[b].parameterKind==2&&(I=I.typeArguments[0]),I.hasGenericComponent(n)){let E=this.resolveExpression(A,s,p.auto,1);E&&this.propagateInferredGenericTypes(I,E,r,l,u)}}let x=new Array(o);for(let b=0;b<o;++b){let A=n[b],I=A.name.text;if(l.has(I)){let E=assert(l.get(I));if(E!=p.auto){x[b]=E;continue}let k=A.defaultType;if(k){let F=r.parent,R=null;(F.kind==7||F.kind==5)&&(R=F.contextualTypeArguments);let G=this.resolveType(k,null,r,R,a);if(!G)return null;x[b]=G;continue}}if(a==0){let E;switch(e.kind){case 10:E=e.expression.range;break;case 18:E=e.typeName.range;break;default:return assert(!1),null}this.error(1140,E.atEnd)}return null}return x}propagateInferredGenericTypes(e,r,n,s,a){if(e.kind==1){let l=e,o=l.typeArguments;if(o&&o.length>0){let u=r.classReference;if(u){let c=this.resolveTypeName(l.name,null,n);if(!c||c.kind!=6)return;if(u.prototype==c){let _=u.typeArguments;if(_&&_.length==o.length){for(let f=0,h=_.length;f<h;++f)this.propagateInferredGenericTypes(o[f],_[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(r))&&s.set(u,r)}}}else if(e.kind==2){let l=e,o=l.parameters,u=r.signatureReference;if(u){let c=u.parameterTypes;for(let y=0,x=min(c.length,o.length);y<x;++y)this.propagateInferredGenericTypes(o[y].type,c[y],n,s,a);let _=u.returnType;_!=p.void&&this.propagateInferredGenericTypes(l.returnType,_,n,s,a);let f=u.thisType,h=l.explicitThisType;f&&h&&this.propagateInferredGenericTypes(h,f,n,s,a);return}}}getTypeOfElement(e){let r=e.kind;if(r==0&&!this.ensureResolvedLazyGlobal(e,1))return null;if(Vl(r)){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 r=e.getClassOrWrapper(this.program);return r||null}lookupExpression(e,r,n=p.auto,s=0){for(;e.kind==21;)e=e.expression;switch(e.kind){case 8:return this.lookupAssertionExpression(e,r,n,s);case 9:return this.lookupBinaryExpression(e,r,n,s);case 10:return this.lookupCallExpression(e,r,n,s);case 12:return this.lookupCommaExpression(e,r,n,s);case 13:return this.lookupElementAccessExpression(e,r,n,s);case 15:return this.lookupFunctionExpression(e,r,n,s);case 7:case 14:case 19:case 26:return this.lookupIdentifierExpression(e,r,r.sourceFunction,s);case 25:return this.lookupThisExpression(e,r,n,s);case 24:return this.lookupSuperExpression(e,r,n,s);case 16:return this.lookupInstanceOfExpression(e,r,n,s);case 17:return this.lookupLiteralExpression(e,r,n,s);case 18:return this.lookupNewExpression(e,r,n,s);case 22:return this.lookupPropertyAccessExpression(e,r,n,s);case 23:return this.lookupTernaryExpression(e,r,n,s);case 28:return this.lookupUnaryPostfixExpression(e,r,n,s);case 29:return this.lookupUnaryPrefixExpression(e,r,n,s)}return assert(!1),null}resolveExpression(e,r,n=p.auto,s=0){let a=this.resolvingExpressions;if(a.has(e))return null;a.add(e);let l=this.doResolveExpression(e,r,n,s);return a.delete(e),l}doResolveExpression(e,r,n=p.auto,s=0){for(;e.kind==21;)e=e.expression;switch(e.kind){case 8:return this.resolveAssertionExpression(e,r,n,s);case 9:return this.resolveBinaryExpression(e,r,n,s);case 10:return this.resolveCallExpression(e,r,n,s);case 12:return this.resolveCommaExpression(e,r,n,s);case 13:return this.resolveElementAccessExpression(e,r,n,s);case 15:return this.resolveFunctionExpression(e,r,n,s);case 7:case 14:case 19:case 26:return this.resolveIdentifierExpression(e,r,n,r.sourceFunction,s);case 25:return this.resolveThisExpression(e,r,n,s);case 24:return this.resolveSuperExpression(e,r,n,s);case 16:return this.resolveInstanceOfExpression(e,r,n,s);case 17:return this.resolveLiteralExpression(e,r,n,s);case 18:return this.resolveNewExpression(e,r,n,s);case 22:return this.resolvePropertyAccessExpression(e,r,n,s);case 23:return this.resolveTernaryExpression(e,r,n,s);case 28:return this.resolveUnaryPostfixExpression(e,r,n,s);case 29:return this.resolveUnaryPrefixExpression(e,r,n,s)}return assert(!1),null}lookupIdentifierExpression(e,r,n=r.sourceFunction,s=0){switch(e.kind){case 26:case 14:case 19:{let u=this.resolveIdentifierExpression(e,r,p.auto,n,s);return u?this.getElementOfType(u):null}}let a=e.text,l;if(l=r.lookup(a))return this.currentThisExpression=null,this.currentElementExpression=null,l;let o=r.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,r,n=p.auto,s=r.sourceFunction,a=0){switch(e.kind){case 26:case 14:return p.bool;case 19:{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,r,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,r=0){if(e.is(4194304))return!0;let n=e.typeNode,s=n?this.resolveType(n,null,e.parent,null,r):this.resolveExpression(assert(e.initializerNode),e.file.startFunction.flow,p.auto,r);return s?(e.setType(s),!0):!1}lookupPropertyAccessExpression(e,r,n,s=0){let a=e.expression,l=this.lookupExpression(a,r,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 _=c.getClassOrWrapper(this.program);if(!_)return s==0&&this.error(2339,e.property.range,o,u.type.toString()),null;l=_;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 h=assert(u.setterInstance);return this.errorRelated(229,a.range,h.declaration.range,u.name),null}let _=c.signature.returnType,f=_.getClassOrWrapper(this.program);if(!f)return s==0&&this.error(2339,e.property.range,o,_.toString()),null;l=f;break}case 15:{let c=l.parent;assert(c.kind==7);let _=c,f=assert(this.currentElementExpression),h=_.lookupOverload(1);if(!h)return s==0&&this.error(2329,f.range,c.internalName),null;let y=h.signature.returnType,x=y.getClassOrWrapper(this.program);if(!x)return s==0&&this.error(2339,e.property.range,o,y.toString()),null;l=x;break}case 4:{let u=l.shadowType;if(u){if(!u.is(4194304)){let _=this.resolveType(u.typeNode,null,u.parent,null,s);_&&u.setType(_)}let c=u.type.classReference;c&&(l=c.prototype);break}else if(!l.is(65536)&&!l.getMember(o)){let _=this.resolveFunction(l,null,new Map,1);if(_){let f=_.type.getClassOrWrapper(this.program);f&&(l=f)}}break}}switch(l.kind){case 6:case 8:case 7:case 9:{let u=l,c=!1;do{let _=u.getMember(o);if(_){if(_.kind==10){let f=this.resolveProperty(_,s);if(!f)return null;_=f,f.is(32)?this.currentThisExpression=null:this.currentThisExpression=a}else this.currentThisExpression=a;return this.currentElementExpression=null,_}switch(c=!1,u.kind){case 6:case 8:{let h=u.basePrototype;h&&(c=!0,u=h);break}case 7:case 9:{let h=u.base;h&&(c=!0,u=h);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,r,n,s=0){let a=this.lookupPropertyAccessExpression(e,r,n,s);if(!a)return null;let l=this.getTypeOfElement(a);return l||s==0&&this.error(225,e.range),l}lookupElementAccessExpression(e,r,n,s=0){let a=e.expression,l=this.resolveExpression(a,r,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,r,n,s=0){let a=this.lookupElementAccessExpression(e,r,n,s);if(!a)return null;let l=this.getTypeOfElement(a);return l||s==0&&this.error(225,e.range),l}determineIntegerLiteralType(e,r,n){let s=e.value;if(r){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,r,n=p.auto,s=0){switch(e.assertionKind){case 1:case 0:{let a=this.resolveType(assert(e.toType),null,r.sourceFunction,r.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,r,n,s);case 3:return this.error(100,e.range,"Const assertion"),null}return assert(!1),null}resolveAssertionExpression(e,r,n=p.auto,s=0){switch(e.assertionKind){case 1:case 0:return this.resolveType(assert(e.toType),null,r.sourceFunction,r.contextualTypeArguments,s);case 2:{let a=this.resolveExpression(e.expression,r,n,s);return a?a.nonNullableType:null}case 3:{let a=this.lookupExpression(e,r,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,r,n=p.auto,s=0){let a=this.resolveUnaryPrefixExpression(e,r,n,s);if(!a)return null;let l=this.getElementOfType(a);return l||s==0&&this.error(2469,e.range,Ie(e.operator),a.toString()),l}resolveUnaryPrefixExpression(e,r,n=p.auto,s=0){let a=e.operand,l=e.operator;switch(l){case 82:if(a.isLiteralKind(1))return this.determineIntegerLiteralType(a,!0,n);case 81:case 87:case 88:{let o=this.resolveExpression(a,r,n,s);if(!o)return null;let u=o.getClassOrWrapper(this.program);if(u){let c=u.lookupOverload(Re.fromUnaryPrefixToken(l));if(c)return c.signature.returnType}return o.isNumericValue?o:(s==0&&this.error(2469,e.range,Ie(l),o.toString()),null)}case 95:{let o=this.resolveExpression(a,r,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 96:{let o=this.resolveExpression(a,r,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 69:return s==0&&this.error(100,e.range,"Spread operator"),null;case 56:return this.program.stringInstance.type;default:assert(!1)}return null}lookupUnaryPostfixExpression(e,r,n=p.auto,s=0){let a=this.resolveUnaryPostfixExpression(e,r,n,s);if(!a)return null;let l=this.getElementOfType(a);return l||s==0&&this.error(2469,e.range,Ie(e.operator),a.toString()),l}resolveUnaryPostfixExpression(e,r,n=p.auto,s=0){let a=e.operator;switch(a){case 87:case 88:{let l=this.resolveExpression(e.operand,r,n,s);if(!l)return null;let o=l.getClassOrWrapper(this.program);if(o){let u=o.lookupOverload(Re.fromUnaryPostfixToken(a));if(u)return u.signature.returnType}return l.isNumericValue?l:(s==0&&this.error(2469,e.range,Ie(a),l.toString()),null)}}return assert(!1),null}lookupBinaryExpression(e,r,n=p.auto,s=0){let a=this.resolveBinaryExpression(e,r,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,r,n=p.auto,s=0){let a=e.left,l=e.right,o=e.operator;switch(o){case 101:case 102:case 103:case 104:case 105:case 106:case 107:case 108:case 109:case 110:case 111:case 112:case 113:return this.resolveExpression(a,r,n,s);case 72:case 73:case 74:case 75:{let u=this.resolveExpression(a,r,n,s);if(!u)return null;let c=u.getClassOrWrapper(this.program);if(c){let _=c.lookupOverload(Re.fromBinaryToken(o));if(_)return _.signature.returnType}return u.isNumericValue?p.bool:(s==0&&this.error(2469,e.range,Ie(o),u.toString()),null)}case 76:case 77:{let u=this.resolveExpression(a,r,n,s);if(!u)return null;let c=u.getClassOrWrapper(this.program);if(c){let _=c.lookupOverload(Re.fromBinaryToken(o));if(_)return _.signature.returnType}return p.bool}case 78:case 79:return p.bool;case 29:return p.bool;case 81:case 82:case 84:case 85:case 86:case 83:{let u=this.resolveExpression(a,r,n,s);if(!u)return null;let c=u.getClassOrWrapper(this.program);if(c){let h=c.lookupOverload(Re.fromBinaryToken(o));if(h)return h.signature.returnType}let _=this.resolveExpression(l,r,u,s);if(!_)return null;let f=p.commonType(u,_,n);return f||s==0&&this.error(2365,e.range,Ie(o),u.toString(),_.toString()),f}case 89:case 90:case 91:{let u=this.resolveExpression(a,r,n,s);if(!u)return null;let c=u.getClassOrWrapper(this.program);if(c){let _=c.lookupOverload(Re.fromBinaryToken(o));if(_)return _.signature.returnType}return u.isIntegerValue?u:(s==0&&this.error(2469,e.range,Ie(o),u.toString()),null)}case 92:case 93:case 94:{let u=this.resolveExpression(a,r,n,s);if(!u)return null;let c=u.getClassOrWrapper(this.program);if(c){let h=c.lookupOverload(Re.fromBinaryToken(o));if(h)return h.signature.returnType}let _=this.resolveExpression(l,r,n,s);if(!_)return null;let f=p.commonType(u,_,n);return(!f||!f.isIntegerValue)&&s==0&&this.error(2365,e.range,Ie(o),u.toString(),_.toString()),f}case 97:{let u=this.resolveExpression(a,r,n,s);if(!u)return null;let c=this.resolveExpression(l,r,u,s);if(!c)return null;let _=p.commonType(u,c,n);return _||s==0&&this.error(2365,e.range,"&&",u.toString(),c.toString()),_}case 98:{let u=this.resolveExpression(a,r,n,s);if(!u)return null;let c=this.resolveExpression(l,r,u,s);if(!c)return null;let _=p.commonType(u,c,n);return _?u.is(512)&&c.is(512)?_:_.nonNullableType:(s==0&&this.error(2365,e.range,"||",u.toString(),c.toString()),null)}}return assert(!1),null}lookupThisExpression(e,r,n=p.auto,s=0){if(r.isInline){let o=r.lookupLocal(P.this_);if(o)return this.currentThisExpression=null,this.currentElementExpression=null,o}let a=r.lookupLocal(P.this_);if(a||(a=r.lookupLocalInOuter(P.this_)),a)return this.currentThisExpression=null,this.currentElementExpression=null,a;let l=r.sourceFunction.parent;return l?(this.currentThisExpression=null,this.currentElementExpression=null,l):(s==0&&this.error(2332,e.range),null)}resolveThisExpression(e,r,n=p.auto,s=0){let a=this.lookupThisExpression(e,r,n,s);if(!a)return null;let l=this.getTypeOfElement(a);return l||s==0&&this.error(225,e.range),l}lookupSuperExpression(e,r,n=p.auto,s=0){if(r.isInline){let l=r.lookupLocal(P.super_);if(l)return this.currentThisExpression=null,this.currentElementExpression=null,l}let a=r.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,r,n=p.auto,s=0){let a=this.lookupSuperExpression(e,r,n,s);if(!a)return null;let l=this.getTypeOfElement(a);return l||s==0&&this.error(225,e.range),l}lookupLiteralExpression(e,r,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 _=0,f=o;_<f;++_){let h=l[_];if(h)if(h.kind==19&&o>1)++c;else{let y=this.resolveExpression(h,r,u);if(!y)return null;if(u==p.auto)u=y;else if(y!=u){let x=p.commonType(u,y,u);x&&(u=x)}}}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,r,n=p.auto,s=0){let a=this.lookupLiteralExpression(e,r,n,s);if(!a)return null;let l=this.getTypeOfElement(a);return l||s==0&&this.error(225,e.range),l}lookupCallExpression(e,r,n=p.void,s=0){let a=this.resolveCallExpression(e,r,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,r,n=p.void,s=0){let a=e.expression,l=this.lookupExpression(a,r,n,s);if(!l)return null;switch(l.kind){case 4:{let o=l;if(o.internalName==d.unchecked&&e.args.length>0)return this.resolveExpression(e.args[0],r,n,s);let u=this.maybeInferCall(e,o,r,s);if(!u)return null;l=u}case 5:return l.signature.returnType;case 10:{let o=this.resolveProperty(l,s);if(!o)return null;l=o}default:{if(!Vl(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}lookupCommaExpression(e,r,n=p.auto,s=0){let a=e.expressions;return this.lookupExpression(a[assert(a.length)-1],r,n,s)}resolveCommaExpression(e,r,n=p.auto,s=0){let a=e.expressions;return this.resolveExpression(a[assert(a.length)-1],r,n,s)}lookupInstanceOfExpression(e,r,n=p.auto,s=0){return assert(p.bool.getClassOrWrapper(this.program))}resolveInstanceOfExpression(e,r,n=p.auto,s=0){return p.bool}lookupTernaryExpression(e,r,n,s=0){let a=this.resolveTernaryExpression(e,r,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,r,n,s=0){let a=this.resolveExpression(e.ifThen,r,n,s);if(!a)return null;let l=this.resolveExpression(e.ifElse,r,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,r,n,s=0){let a=this.resolveTypeName(e.typeName,r,r.sourceFunction,s);return a?a.kind==6?this.resolveClassInclTypeArguments(a,e.typeArguments,r,r.sourceFunction,pe(r.contextualTypeArguments),e,s):(s==0&&this.error(2351,e.range),null):null}resolveNewExpression(e,r,n,s=0){let a=this.lookupNewExpression(e,r,n,s);if(!a)return null;let l=this.getTypeOfElement(a);return l||s==0&&this.error(225,e.range),l}lookupFunctionExpression(e,r,n,s=0){let a=this.resolveFunctionExpression(e,r,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,r,n,s=0){let a=e.declaration,l=a.signature,o=a.body,u=this.resolveType(l,null,r.sourceFunction,r.contextualTypeArguments,s);if(u&&a.arrowKind!=0&&o&&o.kind==39&&ke(l.returnType)){let c=o.expression,_=assert(u.getSignature()),f=Dt.createDefault(r.sourceFunction),h=l.parameters;assert(_.parameterTypes.length==h.length);for(let x=0,b=h.length;x<b;x++){let A=h[x],I=_.parameterTypes[x];f.addScopedDummyLocal(A.name.text,I,A)}let y=this.resolveExpression(c,f,n,s);y&&(u.signatureReference=We.create(this.program,_.parameterTypes,y,_.thisType,_.requiredParameters,_.hasRest))}return u}resolveFunction(e,r,n=new Map,s=0){let a=null,l=r?Ol(r):"";if(e.is(262144)){a=assert(e.getBoundClassOrInterface());let R=e.getResolvedInstance(l);if(R)return R;let G=a.typeArguments;if(G){let U=assert(a.prototype.typeParameterNodes),z=U.length;assert(z==U.length);for(let W=0;W<z;++W){let q=U[W].name.text;n.set(q,G[W])}}}else{assert(!e.isBound);let R=e.getResolvedInstance(l);if(R)return R}let o=e.functionTypeNode,u=e.typeParameterNodes,c;if(r&&(c=r.length)>0){assert(u&&c==u.length);for(let R=0;R<c;++R)n.set(u[R].name.text,r[R])}else assert(!u||u.length==0);let _=null,f=o.explicitThisType;if(f){if(_=this.resolveType(f,null,e.parent,n,s),!_)return null;n.set(P.this_,_)}else a&&(_=a.type,n.set(P.this_,_));let h=o.parameters,y=h.length,x=new Array(y),b=0,A=!1;for(let R=0;R<y;++R){let G=h[R];G.parameterKind==0?b=R+1:G.parameterKind==2&&(A=!0);let U=G.type;if(ke(U))return s==0&&this.error(1110,U.range),null;let z=this.resolveType(U,null,e.parent,n,s);if(!z)return null;if(z==p.void)return s==0&&this.error(1110,U.range),null;x[R]=z}let I;if(e.is(4096))I=p.void;else if(e.is(524288))I=a.type;else{let R=o.returnType;if(ke(R))return s==0&&this.error(1110,R.range),null;let G=this.resolveType(R,null,e.parent,n,s);if(!G)return null;I=G}let E=We.create(this.program,x,I,_,b,A),k=e.name;l.length&&(k+=`<${l}>`);let F=new bt(k,e,r,E,n);if(e.setResolvedInstance(l,F),a){let R=F.declaration.name.text,G=a.base;if(G){let U=G.getMember(R);if(U){this.discoveredOverride=!0;let z=!0;if(F.isAny(6144)){if(U.kind==10){let W=this.resolveProperty(U,s);if(W)if(F.is(2048)){let q=W.getterInstance;q&&F.signature.isAssignableTo(q.signature,!0)&&(z=!1)}else{assert(F.is(4096));let q=W.setterInstance;q&&F.signature.isAssignableTo(q.signature,!0)&&(z=!1)}}}else if(F.is(524288))z=!1;else if(U.kind==4){let W=U,q=W.typeParameterNodes,ee=q!=null&&q.length>0,Y=r!=null&&r.length>0;if(ee!=Y)this.errorRelated(242,F.identifierAndSignatureRange,U.identifierAndSignatureRange,R),z=!1;else{let te=this.resolveFunction(W,r,new Map,1);te&&F.signature.isAssignableTo(te.signature,!0)&&(z=!1)}}z&&this.errorRelated(2394,F.identifierAndSignatureRange,U.identifierAndSignatureRange)}}}return F}resolveFunctionInclTypeArguments(e,r,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 _=assert(u.prototype.typeParameterNodes),f=c.length;assert(f==_.length);for(let h=0;h<f;++h)s.set(_[h].name.text,c[h])}}if(o=this.resolveTypeArguments(assert(e.typeParameterNodes),r,null,n,s,a,l),!o)return null}else if(r&&r.length>0)return l==0&&this.error(2315,a.range,e.internalName),null;return this.resolveFunction(e,o,s,l)}resolveOverrides(e){let r=e.prototype.unboundOverrides;if(!r)return null;let n=assert(e.getBoundClassOrInterface()),s=new Set;for(let a=Set_values(r),l=0,o=a.length;l<o;++l){let u=a[l];assert(!u.isBound);let c=u.parent,_;if(assert(c.kind==6||c.kind==8),_=c.instances,!!_)for(let f=Map_values(_),h=0,y=f.length;h<y;++h){let x=f[h];if(!x.isAssignableTo(n))continue;let b=null;if(e.isAny(6144)){let A=e.declaration.name.text,I=assert(x.getMember(A));assert(I.kind==10);let E=this.resolveProperty(I);if(!E)continue;e.is(2048)?b=E.getterInstance:(assert(e.is(4096)),b=E.setterInstance)}else{let A=x.getMember(u.name);if(A){assert(A.kind==4);let I=A;I.is(65536)==e.is(65536)&&(b=this.resolveFunction(I,e.typeArguments))}}b&&s.add(b)}}return Set_values(s)}resolveClass(e,r,n=new Map,s=0){let a=r?Ol(r):"",l=e.getResolvedInstance(a);if(l)return l;let o=e.name;a.length&&(o+=`<${a}>`),e.kind==8?l=new Yn(o,e,r):l=new ir(o,e,r),e.setResolvedInstance(a,l);let u=this.resolveClassPending;if(u.add(l),r){let h=assert(e.typeParameterNodes),y=h.length,x=r.length;assert(x==y);for(let b=0;b<x;++b)n.set(h[b].name.text,r[b])}else{let h=e.typeParameterNodes;assert(!(h&&h.length>0))}l.contextualTypeArguments=n;let c=!1,_=e.basePrototype;if(_){let h=_;do{if(h==e)return this.error(2506,e.identifierNode.range,e.internalName),null;h=h.basePrototype}while(h);let y=assert(e.extendsNode),x=this.resolveClassInclTypeArguments(_,y.typeArguments,null,e.parent,pe(n),y,s);if(!x)return null;l.setBase(x),u.has(x)&&(c=!0)}else e.implicitlyExtendsObject&&l.setBase(this.program.objectInstance);let f=e.interfacePrototypes;if(f)for(let h=0,y=f.length;h<y;++h){let x=f[h],b=x;do{if(b==e)return this.error(2506,e.identifierNode.range,e.internalName),null;b=b.basePrototype}while(b);let A=assert(e.implementsNodes[h]),I=this.resolveClassInclTypeArguments(x,A.typeArguments,null,e.parent,pe(n),A,s);if(!I)return null;assert(I.kind==9),l.addInterface(I),u.has(I)&&(c=!0)}return c||this.finishResolveClass(l,s),l}checkOverrideVisibility(e,r,n,s,a,l){let o=!1;return r.is(524288)?(assert(s.is(524288)),s.is(512)&&(l==0&&this.errorRelated(2675,r.identifierNode.range,s.identifierNode.range,a.internalName),o=!0)):r.is(512)?s.is(512)?(l==0&&this.errorRelated(2442,r.identifierNode.range,s.identifierNode.range,e),o=!0):(l==0&&this.errorRelated(2325,r.identifierNode.range,s.identifierNode.range,e,n.internalName,a.internalName),o=!0):r.is(1024)?s.is(512)?(l==0&&this.errorRelated(2325,r.identifierNode.range,s.identifierNode.range,e,a.internalName,n.internalName),o=!0):s.isPublic?(l==0&&this.errorRelated(2444,r.identifierNode.range,s.identifierNode.range,e,n.internalName,a.internalName),o=!0):assert(s.is(1024)):r.isPublic&&(s.is(512)?(l==0&&this.errorRelated(2325,r.identifierNode.range,s.identifierNode.range,e,a.internalName,n.internalName),o=!0):s.is(1024)?(l==0&&this.errorRelated(2444,r.identifierNode.range,s.identifierNode.range,e,a.internalName,n.internalName),o=!0):assert(s.isPublic)),!o}finishResolveClass(e,r){let n=e.members;n||(e.members=n=new Map);let s=this.resolveClassPending,a=new Map,l=e.interfaces;if(l)for(let h=Set_values(l),y=0,x=h.length;y<x;++y){let b=h[y];assert(!s.has(b));let A=b.members;if(A)for(let I=Map_keys(A),E=0,k=I.length;E<k;++E){let F=unchecked(I[E]),R=assert(A.get(F)),G=e.getMember(F);G&&!this.checkOverrideVisibility(F,G,e,R,b,r)||(n.set(F,R),a.set(F,R))}}let o=0,u=e.base;if(u){let h=e.prototype.implicitlyExtendsObject;assert(!s.has(u));let y=u.members;if(y)for(let x=Map_keys(y),b=0,A=x.length;b<A;++b){let I=unchecked(x[b]),E=assert(y.get(I));if(h&&E.is(32))continue;let k=e.getMember(I);k&&!this.checkOverrideVisibility(I,k,e,E,u,r)||(n.set(I,E),E.is(128)?a.set(I,E):a.delete(I))}o=u.nextMemoryOffset}let c=e.prototype,_=c.instanceMembers;if(_)for(let h=Map_values(_),y=0,x=h.length;y<x;++y){let b=unchecked(h[y]),A=b.name;if(u){let I=u.getMember(A);I&&this.checkOverrideVisibility(A,b,e,I,u,r)}switch(b.kind){case 4:{let I=b.toBound(e);e.add(I.name,I);break}case 10:{let I=b.toBound(e);if(I.isField){let E=this.resolveProperty(I,r);if(E){let k=E.type;if(k==p.void)break;if(k.isExternalReference){this.error(100,assert(I.typeNode).range,"Reference typed fields");break}let F=!0;if(u){let G=u.getMember(I.name);if(G&&G.kind==10){let U=G,z=this.resolveProperty(U,r);if(z&&z.isField){if(z.type!=E.type){this.errorRelated(2416,E.identifierNode.range,z.identifierNode.range,E.name,e.internalName,u.internalName);break}E.memoryOffset=z.memoryOffset,F=!1}}}if(F){let G=k.byteSize;assert(Pt(G));let U=G-1;o&U&&(o=(o|U)+1),E.memoryOffset=o,o+=G}I.instance=E,e.add(I.name,I);let R=assert(I.fieldDeclaration).type;R&&this.program.checkTypeSupported(k,R)}}else e.add(I.name,I);break}default:assert(!1)}!b.is(128)&&!b.is(65536)&&a.delete(A)}if(e.kind!=9){if(!e.is(128)&&a.size>0)for(let h=Map_keys(a),y=0,x=h.length;y<x;++y){let b=h[y],A=assert(a.get(b));this.errorRelated(2515,e.identifierNode.range,A.identifierNode.range,e.internalName,b,A.parent.internalName)}e.nextMemoryOffset=o;{let h=e.getMember(P.constructor);if(h&&h.parent==e){assert(h.kind==4);let y=this.resolveFunction(h,null,assert(e.contextualTypeArguments),r);y&&(e.constructorInstance=y)}}}let f=c.operatorOverloadPrototypes;for(let h=Map_keys(f),y=0,x=h.length;y<x;++y){let b=unchecked(h[y]),A=assert(f.get(b));if(assert(b!=0),A.is(65536))continue;let I;if(A.is(262144)){let k=A.toBound(e);I=this.resolveFunction(k,null,new Map,r)}else I=this.resolveFunction(A,null,new Map,r);if(!I)continue;let E=e.operatorOverloads;if(E||(e.operatorOverloads=E=new Map),I.is(262144))switch(b){case 27:case 28:case 29:case 30:{let k=I.signature.returnType;k.isAssignableTo(e.type)||r==0&&this.error(2322,A.functionTypeNode.returnType.range,k.toString(),e.type.toString())}}if(E.has(b))r==0&&this.error(213,I.declaration.range);else if(E.set(b,I),b==1||b==2){let k=e.indexSignature;k||(e.indexSignature=k=new Zn(e)),b==1&&k.setType(I.signature.returnType)}}assert(s.has(e)),s.delete(e);for(let h=Set_values(s),y=0,x=h.length;y<x;++y){let b=h[y],A=b.base==e,I=b.interfaces;if(I){let E=!1;for(let k=Set_values(I),F=0,R=k.length;F<R;++F){let G=k[F];G==e?A=!0:s.has(G)&&(E=!0)}if(E)continue}A&&this.finishResolveClass(b,r)}}resolveClassInclTypeArguments(e,r,n,s,a,l,o=0){let u=null;if(e.is(65536)){let c=null;for(let _=e;_&&!c;_=_.basePrototype)c=_.constructorPrototype;if(!r&&c&&n&&a.size==0?u=this.inferGenericTypeArguments(l,c,e.typeParameterNodes,n):u=this.resolveTypeArguments(assert(e.typeParameterNodes),r,n,s,a,l,o),!u)return null}else if(r&&r.length>0)return o==0&&this.error(2315,l.range,e.internalName),null;return this.resolveClass(e,u,a,o)}resolveProperty(e,r=0){let n=e.instance;if(n)return n;e.instance=n=new Jn(e,e.parent);let s=e.getterPrototype;if(s){let l=this.resolveFunction(s,null,new Map,r);l&&(n.getterInstance=l,n.setType(l.signature.returnType))}let a=e.setterPrototype;if(a){let l=this.resolveFunction(a,null,new Map,r);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,r=0){let n=e.typeArguments,s=0;return!n||(s=n.length)!=1?(r==0&&this.error(2558,e.range,"1",s.toString()),null):n[0]}};function eg(t){switch(t){case"u8":return"U8";case"u16":return"U16";case"u32":return"U32";case"u64":return"U64";case"i8":return"I8";case"i16":return"I16";case"i32":return"I32";case"i64":return"I64";case"f32":return"F32";case"f64":return"F64";case"bool":case"boolean":return"Bool";case"string":return"String";case"u128":return"U128";case"i128":return"I128";case"u256":return"U256";case"i256":return"I256";default:return""}}function Jy(t,i){let e=eg(t);return e.length!=0?"__w.write"+e+"("+i+");":i+".encodeInto(__w);"}function Zy(t){let i=eg(t);return i.length!=0?"__r.read"+i+"()":t+".decodeFrom(__r)"}function M2(t){let i=2166136261;for(let e=0,r=t.length;e<r;++e)i=Math.imul(i^t.charCodeAt(e),16777619)>>>0;return i>>>0}function Yy(t,i){switch(t){case"bool":case"boolean":case"u8":case"u16":case"u32":case"i8":case"i16":case"i32":case"f32":case"f64":case"string":return"JSON.of<"+t+">("+i+")";case"u64":case"i64":case"u128":case"i128":case"u256":case"i256":return"JSON.of<string>("+i+".toString())";default:return i+".toJSON()"}}function $y(t,i){switch(t){case"bool":case"boolean":return i+".asBool()";case"u8":case"u16":case"u32":case"u64":return"<"+t+">"+i+".asU64()";case"i8":case"i16":case"i32":case"i64":return"<"+t+">"+i+".asI64()";case"f32":case"f64":return"<"+t+">"+i+".asF64()";case"string":return i+".asString()";case"u128":return"("+i+".isArray() ? new u128("+i+".at(0).asU64(),"+i+".at(1).asU64()) : u128.fromString("+i+".asString()))";case"i128":return"("+i+".isArray() ? new i128("+i+".at(0).asU64(),"+i+".at(1).asI64()) : i128.fromString("+i+".asString()))";case"u256":return"("+i+".isArray() ? new u256("+i+".at(0).asU64(),"+i+".at(1).asU64(),"+i+".at(2).asU64(),"+i+".at(3).asU64()) : u256.fromString("+i+".asString()))";case"i256":return"("+i+".isArray() ? new i256("+i+".at(0).asI64(),"+i+".at(1).asI64(),"+i+".at(2).asI64(),"+i+".at(3).asI64()) : i256.fromString("+i+".asString()))";default:return t+".fromJSON("+i+")"}}var es=class{constructor(i,e){this.source=i;this.reportNode=e}};function G2(t,i){switch(t){case"Record":return i=="get"||i=="require"?"Get":i=="getMany"?"GetMany":i=="exists"?"Exists":i=="create"?"Create":i=="patch"?"Patch":i=="delete"?"Delete":i=="getDelete"?"GetDelete":"";case"View":return i=="get"||i=="require"?"ViewGet":i=="getMany"?"GetMany":i=="publish"?"ViewPublish":"";case"Unique":return i=="lookup"?"UniqueLookup":i=="claim"?"UniqueClaim":i=="release"?"UniqueRelease":"";case"Counter":return i=="get"?"CounterGet":i=="add"?"CounterAdd":"";case"Events":return i=="append"?"Append":i=="latest"?"Latest":"";case"Membership":return i=="contains"?"MembershipContains":i=="list"?"MembershipList":i=="add"?"MembershipAdd":i=="remove"?"MembershipRemove":"";case"Capacity":return i=="available"?"CapacityAvailable":i=="reserve"?"CapacityReserve":i=="confirm"?"CapacityConfirm":i=="cancel"?"CapacityCancel":i=="setTotal"?"CapacitySetTotal":"";default:return""}}function Qp(t){return t=="Get"||t=="GetMany"||t=="Exists"||t=="ViewGet"||t=="CounterGet"||t=="UniqueLookup"||t=="Latest"||t=="MembershipContains"||t=="MembershipList"||t=="CapacityAvailable"}function z2(t,i){switch(t){case 33:return Qp(i);case 34:return Qp(i)||i=="Create"||i=="Patch"||i=="Delete"||i=="GetDelete"||i=="Append"||i=="CounterAdd"||i=="UniqueClaim"||i=="UniqueRelease"||i=="MembershipAdd"||i=="MembershipRemove"||i=="CapacityReserve"||i=="CapacityConfirm"||i=="CapacityCancel";case 36:return Qp(i)||i=="ViewPublish"||i=="Append"||i=="CounterAdd";case 35:return!0;case 37:return!1;default:return!0}}function D2(t){switch(t){case 33:return"query";case 34:return"action";case 35:return"job";case 36:return"derive";case 37:return"admin";default:return"?"}}function U2(t){switch(t){case 33:return"a query is read-only";case 34:return"an action cannot publish views";case 36:return"a derive may only read, publish views, append events, or add to counters";case 37:return"an admin has no request-path data access";default:return"not permitted in this kind"}}var ts=class extends Ke{constructor(e=null,r=[]){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.restImportedSources=new Set;this.ratelimitRouteCounter=0;this.currentModuleName=null;this.options=null;this.tryParseSignatureIsSignature=!1;this.parseParametersThis=null;this.sources=r}parseFile(e,r,n){let s=Sr(r),a=Ln(s);if(this.donelog.has(a))return;if(this.donelog.add(a),this.seenlog.add(a),e==null){let c=this.dependees,_=null;c.has(a)&&(_=assert(c.get(a))),this.error(6054,_?_.reportNode.range:null,r);return}let l=new ce(n?1:r.startsWith(ct)?r.indexOf(it,ct.length)<0?3:2:0,s,e);this.sources.push(l),this.currentSource=l,this.currentModuleName=null;let o=new wr(l,this.diagnostics);o.onComment=this.onComment;let u=l.statements;for(;!o.skip(121);){let c=this.parseTopLevelStatement(o,null);c?u.push(c):this.skipStatement(o)}}parseTopLevelStatement(e,r=null){let n=r?r.flags&32768:0,s=-1,a=null;for(;e.skip(114);){s<0&&(s=e.tokenPos);let b=this.parseDecorator(e);if(!b){this.skipStatement(e);continue}a?a.push(b):a=[b]}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 _=0,f=0,h=r!=null&&r.is(32768);e.skip(12)?h?this.error(1038,e.range()):(s<0&&(s=e.tokenPos),_=s,f=e.pos,n|=32772):h&&(n|=32768);let y=null,x=e.peek();switch(s<0&&(s=e.nextTokenPos),x){case 8:{e.next(),n|=8,e.skip(17)?y=this.parseEnum(e,n,a,s):y=this.parseVariable(e,n,a,s),a=null;break}case 34:n|=16;case 57:{e.next(),y=this.parseVariable(e,n,a,s),a=null;break}case 17:{e.next(),y=this.parseEnum(e,n,a,s),a=null;break}case 24:{e.next(),y=this.parseFunction(e,n,a,s),a=null;break}case 0:{let b=e.mark();e.next();let A=e.tokenPos,I=e.pos;if(e.peekOnNewLine()){e.reset(b),y=this.parseStatement(e,!0);break}let E=e.peek();if(E!=7){E==31&&this.error(1242,e.range(A,I)),e.reset(b),y=this.parseStatement(e,!0);break}else e.discard(b);n|=128}case 7:case 31:{e.next(),y=this.parseClassOrInterface(e,n,a,s),a=null;break}case 36:{let b=e.mark();e.next(),e.peek(1)==115?(e.discard(b),y=this.parseNamespace(e,n,a,s),a=null):(e.reset(b),y=this.parseStatement(e,!0));break}case 28:{e.next(),n|=1,n&2?y=this.parseExportImport(e,s):y=this.parseImport(e);break}case 55:{let b=e.mark();e.next(),e.peek(1)==115?(e.discard(b),y=this.parseTypeDeclaration(e,n,a,s),a=null):(e.reset(b),y=this.parseStatement(e,!0));break}case 35:{let b=e.mark();e.next(),e.peek()==116&&!e.peekOnNewLine()?(e.discard(b),y=this.parseModuleDeclaration(e,n)):(e.reset(b),y=this.parseStatement(e,!0));break}default:{n&2?c&&e.skipIdentifier(1)?(f&&this.error(1120,e.range(_,f)),y=this.parseExportDefaultAlias(e,s,u,c),u=c=0):y=this.parseExport(e,s,(n&4)!=0):(o&&this.error(1042,e.range(l,o),"export"),f&&this.error(1042,e.range(_,f),"declare"),r?this.error(2695,e.range(s)):y=this.parseStatement(e,!0));break}}if(a)for(let b=0,A=a.length;b<A;++b)this.error(1206,a[b].range);if(c&&y!=null)switch(y.kind){case 53:case 56:case 52:case 58:case 60:return M.createExportDefaultStatement(y,e.range(s,e.pos));default:this.error(1042,e.range(u,c),"default")}return y}nextFile(){let e=this.backlog;return e.length?assert(e.shift()):null}getDependee(e){let r=this.dependees;return r.has(e)?assert(r.get(e)).source.internalPath:null}finish(){if(this.backlog.length)throw new Error("backlog is not empty");this.checkToilDbKinds(),this.backlog=[],this.seenlog.clear(),this.donelog.clear(),this.dependees.clear(),this.restImportedSources.clear()}checkToilDbKinds(){let e=new Map;for(let r=0,n=this.sources.length;r<n;++r)this.collectDbCollections(this.sources[r].statements,e);if(e.size)for(let r=0,n=this.sources.length;r<n;++r)this.checkDbFunctions(this.sources[r].statements,e)}collectDbCollections(e,r){for(let n=0,s=e.length;n<s;++n){let a=e[n];if(a.kind==52){let l=a;if(this.hasDecoratorKind(l.decorators,31)){let o=new Map,u=l.members;for(let c=0,_=u.length;c<_;++c){let f=u[c];if(f.kind!=55)continue;let h=f;if(!this.hasDecoratorKind(h.decorators,32))continue;let y=h.type;y==null||!(y instanceof de)||o.set(h.name.text,y.name.identifier.text)}o.size&&r.set(l.name.text,o)}}else a.kind==60&&this.collectDbCollections(a.members,r)}}checkDbFunctions(e,r){for(let n=0,s=e.length;n<s;++n){let a=e[n];if(a.kind==56||a.kind==59){let l=a,o=this.dbFunctionKind(l.decorators),u=l.body;o!=-1&&u!=null&&this.walkDbStmt(u,o,r)}else a.kind==60?this.checkDbFunctions(a.members,r):a.kind==52&&this.checkDbFunctions(a.members,r)}}dbFunctionKind(e){if(e==null)return-1;for(let r=0,n=e.length;r<n;++r){let s=e[r].decoratorKind;if(s==33||s==34||s==35||s==36||s==37)return s}return-1}walkDbStmt(e,r,n){switch(e.kind){case 31:{let s=e.statements;for(let a=0,l=s.length;a<l;++a)this.walkDbStmt(s[a],r,n);break}case 39:this.walkDbExpr(e.expression,r,n);break;case 44:{let s=e.value;s&&this.walkDbExpr(s,r,n);break}case 48:{let s=e.declarations;for(let a=0,l=s.length;a<l;++a){let o=s[a].initializer;o&&this.walkDbExpr(o,r,n)}break}case 42:{let s=e;this.walkDbExpr(s.condition,r,n),this.walkDbStmt(s.ifTrue,r,n),s.ifFalse&&this.walkDbStmt(s.ifFalse,r,n);break}case 40:{let s=e;s.initializer&&this.walkDbStmt(s.initializer,r,n),s.condition&&this.walkDbExpr(s.condition,r,n),s.incrementor&&this.walkDbExpr(s.incrementor,r,n),this.walkDbStmt(s.body,r,n);break}case 41:{let s=e;this.walkDbExpr(s.iterable,r,n),this.walkDbStmt(s.body,r,n);break}case 50:{let s=e;this.walkDbExpr(s.condition,r,n),this.walkDbStmt(s.body,r,n);break}case 34:{let s=e;this.walkDbStmt(s.body,r,n),this.walkDbExpr(s.condition,r,n);break}case 45:{let s=e;this.walkDbExpr(s.condition,r,n);let a=s.cases;for(let l=0,o=a.length;l<o;++l){let u=a[l].statements;for(let c=0,_=u.length;c<_;++c)this.walkDbStmt(u[c],r,n)}break}case 46:this.walkDbExpr(e.value,r,n);break;case 47:{let s=e;this.walkDbStmtList(s.bodyStatements,r,n),s.catchStatements&&this.walkDbStmtList(s.catchStatements,r,n),s.finallyStatements&&this.walkDbStmtList(s.finallyStatements,r,n);break}default:break}}walkDbStmtList(e,r,n){for(let s=0,a=e.length;s<a;++s)this.walkDbStmt(e[s],r,n)}walkDbExpr(e,r,n){switch(e.kind){case 10:{let s=e;this.checkDbCall(s,r,n),this.walkDbExpr(s.expression,r,n);let a=s.args;for(let l=0,o=a.length;l<o;++l)this.walkDbExpr(a[l],r,n);break}case 18:{let s=e.args;for(let a=0,l=s.length;a<l;++a)this.walkDbExpr(s[a],r,n);break}case 22:this.walkDbExpr(e.expression,r,n);break;case 13:{let s=e;this.walkDbExpr(s.expression,r,n),this.walkDbExpr(s.elementExpression,r,n);break}case 9:{let s=e;this.walkDbExpr(s.left,r,n),this.walkDbExpr(s.right,r,n);break}case 29:this.walkDbExpr(e.operand,r,n);break;case 28:this.walkDbExpr(e.operand,r,n);break;case 21:this.walkDbExpr(e.expression,r,n);break;case 8:this.walkDbExpr(e.expression,r,n);break;case 16:this.walkDbExpr(e.expression,r,n);break;case 23:{let s=e;this.walkDbExpr(s.condition,r,n),this.walkDbExpr(s.ifThen,r,n),this.walkDbExpr(s.ifElse,r,n);break}case 12:{let s=e.expressions;for(let a=0,l=s.length;a<l;++a)this.walkDbExpr(s[a],r,n);break}default:break}}checkDbCall(e,r,n){let s=e.expression;if(s.kind!=22)return;let a=s,l=a.expression;if(l.kind!=22)return;let o=l,u=o.expression;if(u.kind!=7)return;let c=n.get(u.text);if(c==null)return;let _=c.get(o.property.text);if(_==null)return;let f=a.property.text,h=G2(_,f);h.length!=0&&(z2(r,h)||this.error(102,a.property.range,"ToilDB: a @"+D2(r)+" function may not call '."+f+"' on '"+u.text+"."+o.property.text+"' ("+U2(r)+")"))}parseTypeName(e){let r=M.createSimpleTypeName(e.readIdentifier(),e.range()),n=r;for(;e.skip(68);)if(e.skip(115)){let s=M.createSimpleTypeName(e.readIdentifier(),e.range());n.next=s,n=s}else return this.error(1003,e.range(e.pos)),null;return r}parseType(e,r=!0,n=!1){let s=e.next(),a=e.tokenPos,l;if(s==64){let o=e.skip(64),u=this.tryParseFunctionType(e);if(u){if(o&&!e.skip(65))return n||this.error(1005,e.range(),")"),null;l=u}else{if(o||this.tryParseSignatureIsSignature)return n||this.error(1012,e.range()),null;if(r){let c=this.parseType(e,!1,n);if(!c)return null;if(!e.skip(65))return n||this.error(1005,e.range(e.pos),")"),null;l=c,l.range.start=a,l.range.end=e.pos}else return n||this.error(1012,e.range()),null}}else if(s==45){let o=this.parseType(e,r,n);if(!o)return null;l=o,l.range.start=a}else if(s==66&&this.options&&this.options.hasFeature(512)){let o=[],u=[],c=!1;if(!e.skip(67)){do{let _=null,f=e.mark();if(e.skip(115)){let y=e.readIdentifier(),x=e.range();e.skip(100)?(_=M.createIdentifierExpression(y,x),c=!0):e.reset(f)}let h=this.parseType(e,!0,n);if(!h)return null;o.push(h),u.push(_)}while(e.skip(71));if(!e.skip(67))return n||this.error(1005,e.range(e.pos),"]"),null}l=M.createTupleType(o,c?u:null,!1,e.range(a,e.pos))}else if(s==58)l=M.createNamedType(M.createSimpleTypeName("void",e.range()),[],!1,e.range(a,e.pos));else if(s==51)l=M.createNamedType(M.createSimpleTypeName("this",e.range()),[],!1,e.range(a,e.pos));else if(s==53||s==20)l=M.createNamedType(M.createSimpleTypeName("bool",e.range()),[],!1,e.range(a,e.pos));else if(s==38)l=M.createNamedType(M.createSimpleTypeName("null",e.range()),[],!1,e.range(a,e.pos));else if(s==116)e.readString(),l=M.createNamedType(M.createSimpleTypeName("string",e.range()),[],!1,e.range(a,e.pos));else if(s==115){let o=this.parseTypeName(e);if(!o)return null;let u=null;if(e.skip(72)){do{let c=this.parseType(e,!0,n);if(!c)return null;u?u.push(c):u=[c]}while(e.skip(71));if(!e.skip(73))return n||this.error(1005,e.range(e.pos),">"),null}u||(u=[]),l=M.createNamedType(o,u,!1,e.range(a,e.pos))}else return n||this.error(1110,e.range()),null;for(;e.skip(93);){let o=this.parseType(e,!0,!1);if(!o)return null;let u=l.kind==1&&l.isNull,c=o.kind==1&&o.isNull;if(!u&&!c)return n||this.error(100,o.range,"union types"),null;c?(l.isNullable=!0,l.range.end=o.range.end):u?(o.range.start=l.range.start,o.isNullable=!0,l=o):l.range.end=o.range.end}for(;e.skip(66);){let o=e.tokenPos;if(!e.skip(67))return n||this.error(1005,e.range(),"]"),null;let u=e.range(o,e.pos),c=!1;if(e.skip(93))if(e.skip(38))c=!0;else return n||this.error(100,e.range(),"union types"),null;if(l=M.createNamedType(M.createSimpleTypeName("Array",u),[l],c,e.range(a,e.pos)),c)break}return l}tryParseFunctionType(e){let r=e.mark(),n=e.tokenPos,s=null,a=null,l=!1,o=null,u=0;if(e.skip(65))l=!0,e.discard(r),s=[];else{l=!1;do{let _=-1,f=0;if(e.skip(69)&&(_=e.tokenPos,l=!0,e.discard(r),f=2),e.skip(51))if(_<0&&(_=e.tokenPos),e.skip(100)){l=!0,e.discard(r);let h=this.parseType(e,!1);if(!h)return null;if(h.kind!=1)return this.error(1003,h.range),this.tryParseSignatureIsSignature=!0,null;a=h}else return e.reset(r),this.tryParseSignatureIsSignature=!1,null;else if(e.skipIdentifier()){_<0&&(_=e.tokenPos);let h=M.createIdentifierExpression(e.readIdentifier(),e.range(e.tokenPos,e.pos));if(e.skip(99)&&(l=!0,e.discard(r),f==2?this.error(1047,e.range()):f=1),e.skip(100)){l=!0,e.discard(r);let y=this.parseType(e);if(!y)return this.tryParseSignatureIsSignature=l,null;let x=M.createParameter(f,h,y,null,e.range(_,e.pos));s?s.push(x):s=[x]}else if(l||e.peek()==71&&(l=!0,e.discard(r)),l){let y=M.createParameter(f,h,M.createOmittedType(e.range(e.pos)),null,e.range(_,e.pos));s?s.push(y):s=[y],this.error(1110,y.type.range)}else s||(o=h,u=f)}else{if(l){if(e.peek()==65)break;this.error(1003,e.range())}else e.reset(r);return this.tryParseSignatureIsSignature=l,null}}while(e.skip(71));if(!e.skip(65))return l?this.error(1005,e.range(),")"):e.reset(r),this.tryParseSignatureIsSignature=l,null}let c;if(e.skip(80)){if(!l&&(l=!0,e.discard(r),o)){let _=M.createParameter(u,o,M.createOmittedType(o.range.atEnd),null,o.range);s?s.push(_):s=[_],this.error(1110,_.type.range)}if(c=this.parseType(e),!c)return this.tryParseSignatureIsSignature=l,null}else return l?this.error(1005,e.range(),"=>"):e.reset(r),this.tryParseSignatureIsSignature=l,null;return this.tryParseSignatureIsSignature=!0,s||(s=[]),M.createFunctionType(s,c,a,!1,e.range(n,e.pos))}parseDecorator(e){let r=e.tokenPos;if(e.skipIdentifier()){let n=e.readIdentifier(),s=M.createIdentifierExpression(n,e.range(r,e.pos));for(;e.skip(68);)if(e.skipIdentifier(1))n=e.readIdentifier(),s=M.createPropertyAccessExpression(s,M.createIdentifierExpression(n,e.range()),e.range(r,e.pos));else return this.error(1003,e.range()),null;let a;if(e.skip(64)){if(a=this.parseArguments(e),a)return M.createDecorator(s,a,e.range(r,e.pos))}else return M.createDecorator(s,null,e.range(r,e.pos))}else this.error(1003,e.range());return null}parseVariable(e,r,n,s,a=!1){let l=new Array;do{let u=this.parseVariableDeclaration(e,r,n,a);if(!u)return null;u.overriddenModuleName=this.currentModuleName,l.push(u)}while(e.skip(71));let o=M.createVariableStatement(n,l,e.range(s,e.pos));return!e.skip(70)&&!a&&this.checkASI(e),o}parseVariableDeclaration(e,r,n,s=!1){if(!e.skipIdentifier())return this.error(1003,e.range()),null;let a=M.createIdentifierExpression(e.readIdentifier(),e.range());vp(a.text)&&this.error(1003,a.range);let l=r;e.skip(95)&&(l|=16384);let o=null;e.skip(100)&&(o=this.parseType(e,!0));let u=null;if(e.skip(101)){if(l&32768&&this.error(1039,e.range()),u=this.parseExpression(e,2),!u)return null;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=le.join(a.range,e.range());return(l&16384)!=0&&(l&32768)!=0&&this.error(1255,c),M.createVariableDeclaration(a,n,l,o,u,c)}parseEnum(e,r,n,s){if(e.next()!=115)return this.error(1003,e.range()),null;let a=M.createIdentifierExpression(e.readIdentifier(),e.range());if(e.next()!=62)return this.error(1005,e.range(),"{"),null;let l=new Array;for(;!e.skip(63);){let u=this.parseEnumValue(e,0);if(!u)return null;if(l.push(u),!e.skip(71)){if(e.skip(63))break;return this.error(1005,e.range(),"}"),null}}let o=M.createEnumDeclaration(a,n,r,l,e.range(s,e.pos));return o.overriddenModuleName=this.currentModuleName,e.skip(70),o}parseEnumValue(e,r){if(!e.skipIdentifier())return this.error(1003,e.range()),null;let n=M.createIdentifierExpression(e.readIdentifier(),e.range()),s=null;return e.skip(101)&&(s=this.parseExpression(e,2),!s)?null:M.createEnumValueDeclaration(n,r,s,le.join(n.range,e.range()))}parseReturn(e){let r=e.tokenPos,n=null,s=e.peek();if(s!=70&&s!=63&&!e.peekOnNewLine()&&!(n=this.parseExpression(e)))return null;let a=M.createReturnStatement(n,e.range(r,e.pos));return e.skip(70)||this.checkASI(e),a}parseTypeParameters(e){let r=new Array,n=!1,s=e.tokenPos;for(;!e.skip(73);){let a=this.parseTypeParameter(e);if(!a)return null;if(a.defaultType?n=!0:n&&(this.error(2706,a.range),a.defaultType=null),r.push(a),!e.skip(71)){if(e.skip(73))break;return this.error(1005,e.range(),">"),null}}return r.length||this.error(1098,e.range(s,e.pos)),r}parseTypeParameter(e){if(e.next()==115){let r=M.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(101)){let a=this.parseType(e);if(!a)return null;if(a.kind!=1)return this.error(1003,a.range),null;s=a}return M.createTypeParameter(r,n,s,le.join(r.range,e.range()))}else this.error(1003,e.range());return null}parseParameters(e,r=!1){let n=new Array,s=null,a=!1,l=!1,o=null;if(this.parseParametersThis=null,e.skip(51)){if(e.skip(100)){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(71))return e.skip(65)?n:(this.error(1005,e.range(),")"),null)}for(;!e.skip(65);){let u=this.parseParameter(e,r);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(71)){if(e.skip(65))break;return this.error(1005,e.range(),")"),null}}return n}parseParameter(e,r=!1){let n=!1,s=!1,a=null,l=0;if(r&&(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()!=100?(e.discard(o),a||(a=e.range()),l|=64):e.reset(o)}if(e.skip(69)&&(l?this.error(1317,e.range()):a=e.range(),n=!0),e.skipIdentifier()){n||(a=e.range());let o=M.createIdentifierExpression(e.readIdentifier(),e.range()),u=null;if((s=e.skip(99))&&n&&this.error(1047,o.range),e.skip(100)){if(u=this.parseType(e),!u)return null}else u=M.createOmittedType(e.range(e.pos));let c=null;if(e.skip(101)&&(n&&this.error(1048,o.range),s?this.error(1015,o.range):s=!0,c=this.parseExpression(e,2),!c))return null;let _=M.createParameter(n?2:s?1:0,o,u,c,le.join(assert(a),e.range()));return _.flags|=l,_}else this.error(1003,e.range());return null}parseFunction(e,r,n,s){if(!e.skipIdentifier())return this.error(1003,e.range(e.pos)),null;let a=M.createIdentifierExpression(e.readIdentifier(),e.range()),l=-1,o=null;if(e.skip(72)){if(l=e.tokenPos,o=this.parseTypeParameters(e),!o)return null;r|=65536}if(!e.skip(64))return this.error(1005,e.range(e.pos),"("),null;l<0&&(l=e.tokenPos);let u=this.parseParameters(e);if(!u)return null;let c=this.parseParametersThis,_=(r&4096)!=0;_&&(u.length!=1&&this.error(1049,a.range),u.length>0&&u[0].initializer&&this.error(1052,a.range)),r&2048&&u.length&&this.error(1054,a.range);let f=null;if(e.skip(100)&&(f=this.parseType(e,!0,_),!f))return null;f||(f=M.createOmittedType(e.range(e.pos)),_||this.error(1110,f.range));let h=M.createFunctionType(u,f,c,!1,e.range(l,e.pos)),y=null;if(e.skip(62)){if(r&32768&&this.error(1183,e.range()),y=this.parseBlockStatement(e,!1),!y)return null}else r&32768||this.error(2391,e.range(e.pos));let x=M.createFunctionDeclaration(a,n,r,o,h,y,0,e.range(s,e.pos));return x.overriddenModuleName=this.currentModuleName,e.skip(70),x}parseFunctionExpression(e){let r=e.tokenPos,n,s=0;if(e.token==24){if(e.skipIdentifier()?n=M.createIdentifierExpression(e.readIdentifier(),e.range()):n=M.createEmptyIdentifierExpression(e.range(e.pos)),!e.skip(64))return this.error(1005,e.range(e.pos),"("),null}else s=1,assert(e.token==64),n=M.createEmptyIdentifierExpression(e.range(e.tokenPos));let a=e.pos,l=this.parseParameters(e);return l?this.parseFunctionExpressionCommon(e,n,l,this.parseParametersThis,s,r,a):null}parseFunctionExpressionCommon(e,r,n,s,a,l=-1,o=-1){l<0&&(l=r.range.start),o<0&&(o=l);let u=null;if(a!=2&&e.skip(100)){if(u=this.parseType(e),!u)return null}else u=M.createOmittedType(e.range(e.pos));if(a&&!e.skip(80))return this.error(1005,e.range(e.pos),"=>"),null;let c=M.createFunctionType(n,u,s,!1,e.range(o,e.pos)),_=null;if(a)if(e.skip(62))_=this.parseBlockStatement(e,!1);else{let h=this.parseExpression(e,2);h&&(_=M.createExpressionStatement(h))}else{if(!e.skip(62))return this.error(1005,e.range(e.pos),"{"),null;_=this.parseBlockStatement(e,!1)}if(!_)return null;let f=M.createFunctionDeclaration(r,null,0,null,c,_,a,e.range(l,e.pos));return M.createFunctionExpression(f)}parseClassOrInterface(e,r,n,s){let a=e.token==31;if(!e.skipIdentifier())return this.error(1003,e.range()),null;let l=M.createIdentifierExpression(e.readIdentifier(),e.range()),o=null;if(e.skip(72)){if(o=this.parseTypeParameters(e),!o)return null;r|=65536}let u=null;if(e.skip(19)){let h=this.parseType(e);if(!h)return null;if(h.kind!=1)return this.error(1003,h.range),null;u=h}let c=null;if(e.skip(27)){a&&this.error(1176,e.range());do{let h=this.parseType(e);if(!h)return null;if(h.kind!=1)return this.error(1003,h.range),null;a||(c||(c=[]),c.push(h))}while(e.skip(71))}if(!e.skip(62))return this.error(1005,e.range(),"{"),null;let _=new Array,f;if(a?(assert(!c),f=M.createInterfaceDeclaration(l,n,r,o,u,null,_,e.range(s,e.pos))):f=M.createClassDeclaration(l,n,r,o,u,c,_,e.range(s,e.pos)),!e.skip(63))do{let h=this.parseClassMember(e,f);if(h)h.kind==66?f.indexSignature=h:(assert(h instanceof Ue),_.push(h));else if(this.skipStatement(e),e.skip(121))return this.error(1005,e.range(),"}"),null}while(!e.skip(63));if(f.range.end=e.pos,f.overriddenModuleName=this.currentModuleName,!a&&n!=null)for(let h=0,y=n.length;h<y;++h){let x=n[h].decoratorKind;x==15?this.injectDataCodec(f):x==29?(this.injectDataCodec(f),this.injectUserBinding(f)):x==18?this.injectRestController(f,n[h]):x==31&&this.injectDatabaseBinding(f)}return f}injectDatabaseBinding(e){let r=e.name.text,n=e.members;for(let s=0,a=n.length;s<a;++s){let l=n[s];if(l.kind!=55)continue;let o=l;if(!this.hasDecoratorKind(o.decorators,32))continue;let u=o.type;if(u==null||!(u instanceof de))continue;let c=u,_=c.name.identifier.text,f=o.name.text,h=c.typeArguments,y=_;if(h!=null&&h.length>0){let A="";for(let I=0,E=h.length;I<E;++I){I>0&&(A+=", ");let k=h[I];k instanceof de&&(A+=k.name.identifier.text)}y=_+"<"+A+">"}let x=r+"/"+f,b="__db_"+f;this.injectClassMember(e,"private static "+b+": "+y+" | null = null;"),this.injectClassMember(e,"static get "+f+"(): "+y+" { if ("+r+"."+b+" == null) "+r+"."+b+" = new "+y+'(__toildbResolve("'+x+'")); return '+r+"."+b+"!; }")}this.injectTopLevelStatements(e,`// @ts-ignore: injected
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?r:-1)):this.readUnicodeEscape(e?r:-1);case 120:return this.readHexadecimalEscape(2,e?r:-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,r=this.pos,n=this.end,s=!1;for(;;){if(this.pos>=n){this.error(1161,this.range(r,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(Bt(a)){this.error(1161,this.range(r,this.pos));break}++this.pos,s=!1}return e.substring(r,this.pos)}readRegexpFlags(){let e=this.source.text,r=this.pos,n=this.end,s=0;for(;this.pos<n;){let a=e.charCodeAt(this.pos);if(!mi(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(r,this.pos)),e.substring(r,this.pos)}testInteger(){let e=this.source.text,r=this.pos,n=this.end;if(r+1<n&&e.charCodeAt(r)==48)switch(e.charCodeAt(r+2)|32){case 120:case 98:case 111:return!0}for(;r<n;){let s=e.charCodeAt(r);if(s==46||(s|32)==101)return!1;if(s!=95&&(s<48||s>57))break;r++}return!0}readInteger(){let e=this.source.text,r=this.pos;if(r+2<this.end&&e.charCodeAt(r)==48){switch(e.charCodeAt(r+1)|32){case 120:return this.pos=r+2,this.readHexInteger();case 98:return this.pos=r+2,this.readBinaryInteger();case 111:return this.pos=r+2,this.readOctalInteger()}if(ha(e.charCodeAt(r+1))){let n=r;this.pos=r+1;let s=this.readOctalInteger();return this.error(1121,this.range(n,this.pos)),s}}return this.readDecimalInteger()}readHexInteger(){let e=this.source.text,r=this.pos,n=this.end,s=r,a=s,l=i64_zero,o=i64_new(4),u=l,c=!1;for(;r<n;){let _=e.charCodeAt(r);if(st(_))u=i64_add(i64_shl(l,o),i64_new(_-48));else if(Fn(_))u=i64_add(i64_shl(l,o),i64_new((_|32)+-87));else if(_==95)a==r&&this.error(a==s?6188:6189,this.range(r)),a=r+1;else break;i64_gt_u(l,u)&&(c=!0),l=u,++r}return r==s?this.error(1125,this.range(s)):a==r&&this.error(6188,this.range(a-1)),c&&this.error(236,this.range(s-2,r),this.source.text.substring(s-2,r)),this.pos=r,l}readDecimalInteger(){let e=this.source.text,r=this.pos,n=this.end,s=r,a=s,l=i64_zero,o=i64_new(10),u=l,c=!1;for(;r<n;){let _=e.charCodeAt(r);if(st(_))u=i64_add(i64_mul(l,o),i64_new(_-48));else if(_==95)a==r?this.error(a==s?6188:6189,this.range(r)):r-1==s&&e.charCodeAt(r-1)==48&&this.error(6188,this.range(r)),a=r+1;else break;i64_gt_u(l,u)&&(c=!0),l=u,++r}return r==s?this.error(1124,this.range(s)):a==r?this.error(6188,this.range(a-1)):c&&this.error(236,this.range(s,r),this.source.text.substring(s,r)),this.pos=r,l}readOctalInteger(){let e=this.source.text,r=this.pos,n=this.end,s=r,a=s,l=i64_zero,o=i64_new(3),u=l,c=!1;for(;r<n;){let _=e.charCodeAt(r);if(ha(_))u=i64_add(i64_shl(l,o),i64_new(_-48));else if(_==95)a==r&&this.error(a==s?6188:6189,this.range(r)),a=r+1;else break;i64_gt_u(l,u)&&(c=!0),l=u,++r}return r==s?this.error(1178,this.range(s)):a==r?this.error(6188,this.range(a-1)):c&&this.error(236,this.range(s-2,r),this.source.text.substring(s-2,r)),this.pos=r,l}readBinaryInteger(){let e=this.source.text,r=this.pos,n=this.end,s=r,a=s,l=i64_zero,o=l,u=!1;for(;r<n;){let c=e.charCodeAt(r);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==r&&this.error(a==s?6188:6189,this.range(r)),a=r+1;else break;i64_gt(l,o)&&(u=!0),l=o,++r}return r==s?this.error(1177,this.range(s)):a==r?this.error(6188,this.range(a-1)):u&&this.error(236,this.range(s-2,r),this.source.text.substring(s-2,r)),this.pos=r,l}readFloat(){return this.readDecimalFloat()}readDecimalFloat(){let e=this.source.text,r=this.end,n=this.pos,s=this.readDecimalFloatPartial(!1);if(this.pos<r&&e.charCodeAt(this.pos)==46&&(++this.pos,s+=this.readDecimalFloatPartial()),this.pos<r){let l=e.charCodeAt(this.pos);(l|32)==101&&((++this.pos<r&&(l=e.charCodeAt(this.pos))==45||l==43&&st(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 r=this.source.text,n=this.pos,s=n,a=this.end,l=s,o=0;for(;n<a;){let u=r.charCodeAt(n);if(u==95)l==n?this.error(l==s?6188:6189,this.range(n)):!e&&n-1==s&&r.charCodeAt(n-1)==48&&this.error(6188,this.range(n)),l=n+1,++o;else if(!st(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,r=-1){let n=0,s=this.source.text,a=this.pos,l=this.end;for(;a<l;){let o=s.charCodeAt(a++);if(st(o))n=(n<<4)+o-48;else if(Fn(o))n=(n<<4)+(o|32)+-87;else return~r?(this.pos=--a,s.substring(r,a)):(this.pos=a,this.error(1125,this.range(a-1,a)),"");if(--e==0)break}return e?(this.pos=a,~r?s.substring(r,a):(this.error(1126,this.range(a)),"")):(this.pos=a,String.fromCodePoint(n))}checkForIdentifierStartAfterNumericLiteral(){let e=this.pos;e<this.end&&di(this.source.text.charCodeAt(e))&&this.error(1351,this.range(e))}readUnicodeEscape(e=-1){return this.readHexadecimalEscape(4,e)}readExtendedUnicodeEscape(e=-1){let r=this.pos,n=this.readHexInteger(),s=i64_low(n),a=!1;assert(!i64_high(n)),s>1114111&&(e==-1&&this.error(1198,this.range(r,this.pos)),a=!0);let l=this.end,o=this.source.text;return this.pos>=l?(e==-1&&this.error(1126,this.range(r,l)),a=!0):o.charCodeAt(this.pos)==125?++this.pos:(e==-1&&this.error(1199,this.range(r,this.pos)),a=!0),a?~e?o.substring(e,this.pos):"":String.fromCodePoint(s)}},Il=class{constructor(i,e,r){this.pos=i;this.token=e;this.tokenPos=r}},Ap=null;var L;(I=>(I.None=0,I.Unreachable=1,I.I32=2,I.I64=3,I.F32=4,I.F64=5,I.V128=6,I.Funcref=r_(),I.Externref=i_(),I.Anyref=n_(),I.Eqref=s_(),I.Structref=l_(),I.Arrayref=o_(),I.I31ref=a_(),I.Stringref=u_(),I.Noneref=p_(),I.Nofuncref=__(),I.Noexternref=c_()))(L||={});var ge;(b=>{b.Extern=8,b.Func=16,b.Any=32,b.Eq=40,b.I31=48,b.Struct=56,b.Array=64,b.Exn=7,b.String=80,b.None=88,b.Noextern=96,b.Nofunc=104;function f(A){return f_(A)}b.isBottom=f;function h(A){return h_(A)}b.getBottom=h;function y(A,I){return d_(A,I)}b.isSubtype=y;function x(A,I){if(A==I)return A;if(h(A)!=h(I))return-1;if(f(A))return I;if(f(I))return A;if(A>I){let E=A;A=I,I=E}switch(A){case b.Extern:return I==b.String?A:-1;case b.Func:return-1;case b.Any:return A;case b.Eq:return I==b.I31||I==b.Struct||I==b.Array?b.Eq:b.Any;case b.I31:return I==b.Struct||I==b.Array?b.Eq:b.Any;case b.Struct:return I==b.Array?b.Eq:b.Any;case b.Array:return b.Any}return assert(!1),-1}b.leastUpperBound=x})(ge||={});var Mn;(r=>(r.NotPacked=0,r.I8=1,r.I16=2))(Mn||={});var Ip;(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})(Ip||={});var Rp=(q=>(q[q.MVP=0]="MVP",q[q.Atomics=1]="Atomics",q[q.MutableGlobals=2]="MutableGlobals",q[q.TruncSat=4]="TruncSat",q[q.SIMD=8]="SIMD",q[q.BulkMemory=16]="BulkMemory",q[q.SignExt=32]="SignExt",q[q.ExceptionHandling=64]="ExceptionHandling",q[q.TailCall=128]="TailCall",q[q.ReferenceTypes=256]="ReferenceTypes",q[q.MultiValue=512]="MultiValue",q[q.GC=1024]="GC",q[q.Memory64=2048]="Memory64",q[q.RelaxedSIMD=4096]="RelaxedSIMD",q[q.ExtendedConst=8192]="ExtendedConst",q[q.Strings=16384]="Strings",q[q.MultiMemory=32768]="MultiMemory",q[q.StackSwitching=65536]="StackSwitching",q[q.SharedEverything=131072]="SharedEverything",q[q.FP16=262144]="FP16",q[q.BulkMemoryOpt=524288]="BulkMemoryOpt",q[q.CallIndirectOverlong=1048576]="CallIndirectOverlong",q[q.RelaxedAtomics=4194304]="RelaxedAtomics",q[q.CustomPageSizes=8388608]="CustomPageSizes",q[q.Multibyte=16777216]="Multibyte",q[q.WideArithmetic=33554432]="WideArithmetic",q[q.All=67108863]="All",q))(Rp||{}),Cr=(N=>(N[N.Invalid=0]="Invalid",N[N.Block=1]="Block",N[N.If=2]="If",N[N.Loop=3]="Loop",N[N.Break=4]="Break",N[N.Switch=5]="Switch",N[N.Call=6]="Call",N[N.CallIndirect=7]="CallIndirect",N[N.LocalGet=8]="LocalGet",N[N.LocalSet=9]="LocalSet",N[N.GlobalGet=10]="GlobalGet",N[N.GlobalSet=11]="GlobalSet",N[N.Load=12]="Load",N[N.Store=13]="Store",N[N.Const=14]="Const",N[N.Unary=15]="Unary",N[N.Binary=16]="Binary",N[N.Select=17]="Select",N[N.Drop=18]="Drop",N[N.Return=19]="Return",N[N.MemorySize=20]="MemorySize",N[N.MemoryGrow=21]="MemoryGrow",N[N.Nop=22]="Nop",N[N.Unreachable=23]="Unreachable",N[N.AtomicRMW=24]="AtomicRMW",N[N.AtomicCmpxchg=25]="AtomicCmpxchg",N[N.AtomicWait=26]="AtomicWait",N[N.AtomicNotify=27]="AtomicNotify",N[N.AtomicFence=28]="AtomicFence",N[N.Pause=29]="Pause",N[N.SIMDExtract=30]="SIMDExtract",N[N.SIMDReplace=31]="SIMDReplace",N[N.SIMDShuffle=32]="SIMDShuffle",N[N.SIMDTernary=33]="SIMDTernary",N[N.SIMDShift=34]="SIMDShift",N[N.SIMDLoad=35]="SIMDLoad",N[N.SIMDLoadStoreLane=36]="SIMDLoadStoreLane",N[N.MemoryInit=37]="MemoryInit",N[N.DataDrop=38]="DataDrop",N[N.MemoryCopy=39]="MemoryCopy",N[N.MemoryFill=40]="MemoryFill",N[N.Pop=41]="Pop",N[N.RefNull=42]="RefNull",N[N.RefIsNull=43]="RefIsNull",N[N.RefFunc=44]="RefFunc",N[N.RefEq=45]="RefEq",N[N.TableGet=46]="TableGet",N[N.TableSet=47]="TableSet",N[N.TableSize=48]="TableSize",N[N.TableGrow=49]="TableGrow",N[N.TableFill=50]="TableFill",N[N.TableCopy=51]="TableCopy",N[N.TableInit=52]="TableInit",N[N.ElemDrop=53]="ElemDrop",N[N.Try=54]="Try",N[N.TryTable=55]="TryTable",N[N.Throw=56]="Throw",N[N.Rethrow=57]="Rethrow",N[N.ThrowRef=58]="ThrowRef",N[N.TupleMake=59]="TupleMake",N[N.TupleExtract=60]="TupleExtract",N[N.RefI31=61]="RefI31",N[N.I31Get=62]="I31Get",N[N.CallRef=63]="CallRef",N[N.RefTest=64]="RefTest",N[N.RefCast=65]="RefCast",N[N.RefGetDesc=66]="RefGetDesc",N[N.BrOn=67]="BrOn",N[N.StructNew=68]="StructNew",N[N.StructGet=69]="StructGet",N[N.StructSet=70]="StructSet",N[N.StructRMW=71]="StructRMW",N[N.StructCmpxchg=72]="StructCmpxchg",N[N.ArrayNew=73]="ArrayNew",N[N.ArrayNewData=74]="ArrayNewData",N[N.ArrayNewElem=75]="ArrayNewElem",N[N.ArrayNewFixed=76]="ArrayNewFixed",N[N.ArrayGet=77]="ArrayGet",N[N.ArraySet=78]="ArraySet",N[N.ArrayLoad=79]="ArrayLoad",N[N.ArrayStore=80]="ArrayStore",N[N.ArrayLen=81]="ArrayLen",N[N.ArrayCopy=82]="ArrayCopy",N[N.ArrayFill=83]="ArrayFill",N[N.ArrayInitData=84]="ArrayInitData",N[N.ArrayInitElem=85]="ArrayInitElem",N[N.ArrayRMW=86]="ArrayRMW",N[N.ArrayCmpxchg=87]="ArrayCmpxchg",N[N.RefAs=88]="RefAs",N[N.StringNew=89]="StringNew",N[N.StringConst=90]="StringConst",N[N.StringMeasure=91]="StringMeasure",N[N.StringEncode=92]="StringEncode",N[N.StringConcat=93]="StringConcat",N[N.StringEq=94]="StringEq",N[N.StringTest=95]="StringTest",N[N.StringWTF16Get=96]="StringWTF16Get",N[N.StringSliceWTF=97]="StringSliceWTF",N[N.ContNew=98]="ContNew",N[N.ContBind=99]="ContBind",N[N.Suspend=100]="Suspend",N[N.Resume=101]="Resume",N[N.ResumeThrow=102]="ResumeThrow",N[N.StackSwitch=103]="StackSwitch",N[N.StructWait=104]="StructWait",N[N.StructNotify=105]="StructNotify",N))(Cr||{}),Fp=(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))(Fp||{}),Vy=(r=>(r[r.Unordered=0]="Unordered",r[r.SeqCst=1]="SeqCst",r[r.AcqRel=2]="AcqRel",r))(Vy||{}),zn=(w=>(w[w.ClzI32=0]="ClzI32",w[w.ClzI64=1]="ClzI64",w[w.CtzI32=2]="CtzI32",w[w.CtzI64=3]="CtzI64",w[w.PopcntI32=4]="PopcntI32",w[w.PopcntI64=5]="PopcntI64",w[w.NegF32=6]="NegF32",w[w.NegF64=7]="NegF64",w[w.AbsF32=8]="AbsF32",w[w.AbsF64=9]="AbsF64",w[w.CeilF32=10]="CeilF32",w[w.CeilF64=11]="CeilF64",w[w.FloorF32=12]="FloorF32",w[w.FloorF64=13]="FloorF64",w[w.TruncF32=14]="TruncF32",w[w.TruncF64=15]="TruncF64",w[w.NearestF32=16]="NearestF32",w[w.NearestF64=17]="NearestF64",w[w.SqrtF32=18]="SqrtF32",w[w.SqrtF64=19]="SqrtF64",w[w.EqzI32=20]="EqzI32",w[w.EqzI64=21]="EqzI64",w[w.ExtendI32ToI64=22]="ExtendI32ToI64",w[w.ExtendU32ToU64=23]="ExtendU32ToU64",w[w.WrapI64ToI32=24]="WrapI64ToI32",w[w.TruncF32ToI32=25]="TruncF32ToI32",w[w.TruncF32ToI64=26]="TruncF32ToI64",w[w.TruncF32ToU32=27]="TruncF32ToU32",w[w.TruncF32ToU64=28]="TruncF32ToU64",w[w.TruncF64ToI32=29]="TruncF64ToI32",w[w.TruncF64ToI64=30]="TruncF64ToI64",w[w.TruncF64ToU32=31]="TruncF64ToU32",w[w.TruncF64ToU64=32]="TruncF64ToU64",w[w.ReinterpretF32ToI32=33]="ReinterpretF32ToI32",w[w.ReinterpretF64ToI64=34]="ReinterpretF64ToI64",w[w.ConvertI32ToF32=35]="ConvertI32ToF32",w[w.ConvertI32ToF64=36]="ConvertI32ToF64",w[w.ConvertU32ToF32=37]="ConvertU32ToF32",w[w.ConvertU32ToF64=38]="ConvertU32ToF64",w[w.ConvertI64ToF32=39]="ConvertI64ToF32",w[w.ConvertI64ToF64=40]="ConvertI64ToF64",w[w.ConvertU64ToF32=41]="ConvertU64ToF32",w[w.ConvertU64ToF64=42]="ConvertU64ToF64",w[w.PromoteF32ToF64=43]="PromoteF32ToF64",w[w.DemoteF64ToF32=44]="DemoteF64ToF32",w[w.ReinterpretI32ToF32=45]="ReinterpretI32ToF32",w[w.ReinterpretI64ToF64=46]="ReinterpretI64ToF64",w[w.Extend8I32=47]="Extend8I32",w[w.Extend16I32=48]="Extend16I32",w[w.Extend8I64=49]="Extend8I64",w[w.Extend16I64=50]="Extend16I64",w[w.Extend32I64=51]="Extend32I64",w[w.TruncSatF32ToI32=52]="TruncSatF32ToI32",w[w.TruncSatF32ToU32=53]="TruncSatF32ToU32",w[w.TruncSatF64ToI32=54]="TruncSatF64ToI32",w[w.TruncSatF64ToU32=55]="TruncSatF64ToU32",w[w.TruncSatF32ToI64=56]="TruncSatF32ToI64",w[w.TruncSatF32ToU64=57]="TruncSatF32ToU64",w[w.TruncSatF64ToI64=58]="TruncSatF64ToI64",w[w.TruncSatF64ToU64=59]="TruncSatF64ToU64",w[w.SplatI8x16=60]="SplatI8x16",w[w.SplatI16x8=61]="SplatI16x8",w[w.SplatI32x4=62]="SplatI32x4",w[w.SplatI64x2=63]="SplatI64x2",w[w.SplatF32x4=64]="SplatF32x4",w[w.SplatF64x2=65]="SplatF64x2",w[w.NotV128=66]="NotV128",w[w.AnyTrueV128=67]="AnyTrueV128",w[w.AbsI8x16=68]="AbsI8x16",w[w.NegI8x16=69]="NegI8x16",w[w.AllTrueI8x16=70]="AllTrueI8x16",w[w.BitmaskI8x16=71]="BitmaskI8x16",w[w.PopcntI8x16=72]="PopcntI8x16",w[w.AbsI16x8=73]="AbsI16x8",w[w.NegI16x8=74]="NegI16x8",w[w.AllTrueI16x8=75]="AllTrueI16x8",w[w.BitmaskI16x8=76]="BitmaskI16x8",w[w.AbsI32x4=77]="AbsI32x4",w[w.NegI32x4=78]="NegI32x4",w[w.AllTrueI32x4=79]="AllTrueI32x4",w[w.BitmaskI32x4=80]="BitmaskI32x4",w[w.AbsI64x2=81]="AbsI64x2",w[w.NegI64x2=82]="NegI64x2",w[w.AllTrueI64x2=83]="AllTrueI64x2",w[w.BitmaskI64x2=84]="BitmaskI64x2",w[w.AbsF32x4=92]="AbsF32x4",w[w.NegF32x4=93]="NegF32x4",w[w.SqrtF32x4=94]="SqrtF32x4",w[w.CeilF32x4=95]="CeilF32x4",w[w.FloorF32x4=96]="FloorF32x4",w[w.TruncF32x4=97]="TruncF32x4",w[w.NearestF32x4=98]="NearestF32x4",w[w.AbsF64x2=99]="AbsF64x2",w[w.NegF64x2=100]="NegF64x2",w[w.SqrtF64x2=101]="SqrtF64x2",w[w.CeilF64x2=102]="CeilF64x2",w[w.FloorF64x2=103]="FloorF64x2",w[w.TruncF64x2=104]="TruncF64x2",w[w.NearestF64x2=105]="NearestF64x2",w[w.ExtaddPairwiseI8x16ToI16x8=106]="ExtaddPairwiseI8x16ToI16x8",w[w.ExtaddPairwiseU8x16ToU16x8=107]="ExtaddPairwiseU8x16ToU16x8",w[w.ExtaddPairwiseI16x8ToI32x4=108]="ExtaddPairwiseI16x8ToI32x4",w[w.ExtaddPairwiseU16x8ToU32x4=109]="ExtaddPairwiseU16x8ToU32x4",w[w.TruncSatF32x4ToI32x4=110]="TruncSatF32x4ToI32x4",w[w.TruncSatF32x4ToU32x4=111]="TruncSatF32x4ToU32x4",w[w.ConvertI32x4ToF32x4=112]="ConvertI32x4ToF32x4",w[w.ConvertU32x4ToF32x4=113]="ConvertU32x4ToF32x4",w[w.ExtendLowI8x16ToI16x8=114]="ExtendLowI8x16ToI16x8",w[w.ExtendHighI8x16ToI16x8=115]="ExtendHighI8x16ToI16x8",w[w.ExtendLowU8x16ToU16x8=116]="ExtendLowU8x16ToU16x8",w[w.ExtendHighU8x16ToU16x8=117]="ExtendHighU8x16ToU16x8",w[w.ExtendLowI16x8ToI32x4=118]="ExtendLowI16x8ToI32x4",w[w.ExtendHighI16x8ToI32x4=119]="ExtendHighI16x8ToI32x4",w[w.ExtendLowU16x8ToU32x4=120]="ExtendLowU16x8ToU32x4",w[w.ExtendHighU16x8ToU32x4=121]="ExtendHighU16x8ToU32x4",w[w.ExtendLowI32x4ToI64x2=122]="ExtendLowI32x4ToI64x2",w[w.ExtendHighI32x4ToI64x2=123]="ExtendHighI32x4ToI64x2",w[w.ExtendLowU32x4ToU64x2=124]="ExtendLowU32x4ToU64x2",w[w.ExtendHighU32x4ToU64x2=125]="ExtendHighU32x4ToU64x2",w[w.ConvertLowI32x4ToF64x2=126]="ConvertLowI32x4ToF64x2",w[w.ConvertLowU32x4ToF64x2=127]="ConvertLowU32x4ToF64x2",w[w.TruncSatF64x2ToI32x4Zero=128]="TruncSatF64x2ToI32x4Zero",w[w.TruncSatF64x2ToU32x4Zero=129]="TruncSatF64x2ToU32x4Zero",w[w.DemoteZeroF64x2ToF32x4=130]="DemoteZeroF64x2ToF32x4",w[w.PromoteLowF32x4ToF64x2=131]="PromoteLowF32x4ToF64x2",w[w.RelaxedTruncF32x4ToI32x4=132]="RelaxedTruncF32x4ToI32x4",w[w.RelaxedTruncF32x4ToU32x4=133]="RelaxedTruncF32x4ToU32x4",w[w.RelaxedTruncF64x2ToI32x4Zero=134]="RelaxedTruncF64x2ToI32x4Zero",w[w.RelaxedTruncF64x2ToU32x4Zero=135]="RelaxedTruncF64x2ToU32x4Zero",w[w.PromoteLowF16x8ToF32x4=141]="PromoteLowF16x8ToF32x4",w[w._last=141]="_last",w[w.ClzSize=142]="ClzSize",w[w.CtzSize=143]="CtzSize",w[w.PopcntSize=144]="PopcntSize",w[w.EqzSize=145]="EqzSize",w))(zn||{}),Ri=(T=>(T[T.AddI32=0]="AddI32",T[T.SubI32=1]="SubI32",T[T.MulI32=2]="MulI32",T[T.DivI32=3]="DivI32",T[T.DivU32=4]="DivU32",T[T.RemI32=5]="RemI32",T[T.RemU32=6]="RemU32",T[T.AndI32=7]="AndI32",T[T.OrI32=8]="OrI32",T[T.XorI32=9]="XorI32",T[T.ShlI32=10]="ShlI32",T[T.ShrI32=11]="ShrI32",T[T.ShrU32=12]="ShrU32",T[T.RotlI32=13]="RotlI32",T[T.RotrI32=14]="RotrI32",T[T.EqI32=15]="EqI32",T[T.NeI32=16]="NeI32",T[T.LtI32=17]="LtI32",T[T.LtU32=18]="LtU32",T[T.LeI32=19]="LeI32",T[T.LeU32=20]="LeU32",T[T.GtI32=21]="GtI32",T[T.GtU32=22]="GtU32",T[T.GeI32=23]="GeI32",T[T.GeU32=24]="GeU32",T[T.AddI64=25]="AddI64",T[T.SubI64=26]="SubI64",T[T.MulI64=27]="MulI64",T[T.DivI64=28]="DivI64",T[T.DivU64=29]="DivU64",T[T.RemI64=30]="RemI64",T[T.RemU64=31]="RemU64",T[T.AndI64=32]="AndI64",T[T.OrI64=33]="OrI64",T[T.XorI64=34]="XorI64",T[T.ShlI64=35]="ShlI64",T[T.ShrI64=36]="ShrI64",T[T.ShrU64=37]="ShrU64",T[T.RotlI64=38]="RotlI64",T[T.RotrI64=39]="RotrI64",T[T.EqI64=40]="EqI64",T[T.NeI64=41]="NeI64",T[T.LtI64=42]="LtI64",T[T.LtU64=43]="LtU64",T[T.LeI64=44]="LeI64",T[T.LeU64=45]="LeU64",T[T.GtI64=46]="GtI64",T[T.GtU64=47]="GtU64",T[T.GeI64=48]="GeI64",T[T.GeU64=49]="GeU64",T[T.AddF32=50]="AddF32",T[T.SubF32=51]="SubF32",T[T.MulF32=52]="MulF32",T[T.DivF32=53]="DivF32",T[T.CopysignF32=54]="CopysignF32",T[T.MinF32=55]="MinF32",T[T.MaxF32=56]="MaxF32",T[T.EqF32=57]="EqF32",T[T.NeF32=58]="NeF32",T[T.LtF32=59]="LtF32",T[T.LeF32=60]="LeF32",T[T.GtF32=61]="GtF32",T[T.GeF32=62]="GeF32",T[T.AddF64=63]="AddF64",T[T.SubF64=64]="SubF64",T[T.MulF64=65]="MulF64",T[T.DivF64=66]="DivF64",T[T.CopysignF64=67]="CopysignF64",T[T.MinF64=68]="MinF64",T[T.MaxF64=69]="MaxF64",T[T.EqF64=70]="EqF64",T[T.NeF64=71]="NeF64",T[T.LtF64=72]="LtF64",T[T.LeF64=73]="LeF64",T[T.GtF64=74]="GtF64",T[T.GeF64=75]="GeF64",T[T.EqI8x16=76]="EqI8x16",T[T.NeI8x16=77]="NeI8x16",T[T.LtI8x16=78]="LtI8x16",T[T.LtU8x16=79]="LtU8x16",T[T.GtI8x16=80]="GtI8x16",T[T.GtU8x16=81]="GtU8x16",T[T.LeI8x16=82]="LeI8x16",T[T.LeU8x16=83]="LeU8x16",T[T.GeI8x16=84]="GeI8x16",T[T.GeU8x16=85]="GeU8x16",T[T.EqI16x8=86]="EqI16x8",T[T.NeI16x8=87]="NeI16x8",T[T.LtI16x8=88]="LtI16x8",T[T.LtU16x8=89]="LtU16x8",T[T.GtI16x8=90]="GtI16x8",T[T.GtU16x8=91]="GtU16x8",T[T.LeI16x8=92]="LeI16x8",T[T.LeU16x8=93]="LeU16x8",T[T.GeI16x8=94]="GeI16x8",T[T.GeU16x8=95]="GeU16x8",T[T.EqI32x4=96]="EqI32x4",T[T.NeI32x4=97]="NeI32x4",T[T.LtI32x4=98]="LtI32x4",T[T.LtU32x4=99]="LtU32x4",T[T.GtI32x4=100]="GtI32x4",T[T.GtU32x4=101]="GtU32x4",T[T.LeI32x4=102]="LeI32x4",T[T.LeU32x4=103]="LeU32x4",T[T.GeI32x4=104]="GeI32x4",T[T.GeU32x4=105]="GeU32x4",T[T.EqI64x2=106]="EqI64x2",T[T.NeI64x2=107]="NeI64x2",T[T.LtI64x2=108]="LtI64x2",T[T.GtI64x2=109]="GtI64x2",T[T.LeI64x2=110]="LeI64x2",T[T.GeI64x2=111]="GeI64x2",T[T.EqF32x4=118]="EqF32x4",T[T.NeF32x4=119]="NeF32x4",T[T.LtF32x4=120]="LtF32x4",T[T.GtF32x4=121]="GtF32x4",T[T.LeF32x4=122]="LeF32x4",T[T.GeF32x4=123]="GeF32x4",T[T.EqF64x2=124]="EqF64x2",T[T.NeF64x2=125]="NeF64x2",T[T.LtF64x2=126]="LtF64x2",T[T.GtF64x2=127]="GtF64x2",T[T.LeF64x2=128]="LeF64x2",T[T.GeF64x2=129]="GeF64x2",T[T.AndV128=130]="AndV128",T[T.OrV128=131]="OrV128",T[T.XorV128=132]="XorV128",T[T.AndnotV128=133]="AndnotV128",T[T.AddI8x16=134]="AddI8x16",T[T.AddSatI8x16=135]="AddSatI8x16",T[T.AddSatU8x16=136]="AddSatU8x16",T[T.SubI8x16=137]="SubI8x16",T[T.SubSatI8x16=138]="SubSatI8x16",T[T.SubSatU8x16=139]="SubSatU8x16",T[T.MinI8x16=140]="MinI8x16",T[T.MinU8x16=141]="MinU8x16",T[T.MaxI8x16=142]="MaxI8x16",T[T.MaxU8x16=143]="MaxU8x16",T[T.AvgrU8x16=144]="AvgrU8x16",T[T.AddI16x8=145]="AddI16x8",T[T.AddSatI16x8=146]="AddSatI16x8",T[T.AddSatU16x8=147]="AddSatU16x8",T[T.SubI16x8=148]="SubI16x8",T[T.SubSatI16x8=149]="SubSatI16x8",T[T.SubSatU16x8=150]="SubSatU16x8",T[T.MulI16x8=151]="MulI16x8",T[T.MinI16x8=152]="MinI16x8",T[T.MinU16x8=153]="MinU16x8",T[T.MaxI16x8=154]="MaxI16x8",T[T.MaxU16x8=155]="MaxU16x8",T[T.AvgrU16x8=156]="AvgrU16x8",T[T.Q15mulrSatI16x8=157]="Q15mulrSatI16x8",T[T.ExtmulLowI16x8=158]="ExtmulLowI16x8",T[T.ExtmulHighI16x8=159]="ExtmulHighI16x8",T[T.ExtmulLowU16x8=160]="ExtmulLowU16x8",T[T.ExtmulHighU16x8=161]="ExtmulHighU16x8",T[T.AddI32x4=162]="AddI32x4",T[T.SubI32x4=163]="SubI32x4",T[T.MulI32x4=164]="MulI32x4",T[T.MinI32x4=165]="MinI32x4",T[T.MinU32x4=166]="MinU32x4",T[T.MaxI32x4=167]="MaxI32x4",T[T.MaxU32x4=168]="MaxU32x4",T[T.DotI16x8=169]="DotI16x8",T[T.ExtmulLowI32x4=170]="ExtmulLowI32x4",T[T.ExtmulHighI32x4=171]="ExtmulHighI32x4",T[T.ExtmulLowU32x4=172]="ExtmulLowU32x4",T[T.ExtmulHighU32x4=173]="ExtmulHighU32x4",T[T.AddI64x2=174]="AddI64x2",T[T.SubI64x2=175]="SubI64x2",T[T.MulI64x2=176]="MulI64x2",T[T.ExtmulLowI64x2=177]="ExtmulLowI64x2",T[T.ExtmulHighI64x2=178]="ExtmulHighI64x2",T[T.ExtmulLowU64x2=179]="ExtmulLowU64x2",T[T.ExtmulHighU64x2=180]="ExtmulHighU64x2",T[T.AddF32x4=189]="AddF32x4",T[T.SubF32x4=190]="SubF32x4",T[T.MulF32x4=191]="MulF32x4",T[T.DivF32x4=192]="DivF32x4",T[T.MinF32x4=193]="MinF32x4",T[T.MaxF32x4=194]="MaxF32x4",T[T.PminF32x4=195]="PminF32x4",T[T.PmaxF32x4=196]="PmaxF32x4",T[T.AddF64x2=197]="AddF64x2",T[T.SubF64x2=198]="SubF64x2",T[T.MulF64x2=199]="MulF64x2",T[T.DivF64x2=200]="DivF64x2",T[T.MinF64x2=201]="MinF64x2",T[T.MaxF64x2=202]="MaxF64x2",T[T.PminF64x2=203]="PminF64x2",T[T.PmaxF64x2=204]="PmaxF64x2",T[T.NarrowI16x8ToI8x16=205]="NarrowI16x8ToI8x16",T[T.NarrowU16x8ToU8x16=206]="NarrowU16x8ToU8x16",T[T.NarrowI32x4ToI16x8=207]="NarrowI32x4ToI16x8",T[T.NarrowU32x4ToU16x8=208]="NarrowU32x4ToU16x8",T[T.SwizzleI8x16=209]="SwizzleI8x16",T[T.RelaxedSwizzleI8x16=210]="RelaxedSwizzleI8x16",T[T.RelaxedMinF32x4=211]="RelaxedMinF32x4",T[T.RelaxedMaxF32x4=212]="RelaxedMaxF32x4",T[T.RelaxedMinF64x2=213]="RelaxedMinF64x2",T[T.RelaxedMaxF64x2=214]="RelaxedMaxF64x2",T[T.RelaxedQ15MulrI16x8=215]="RelaxedQ15MulrI16x8",T[T.RelaxedDotI8x16I7x16ToI16x8=216]="RelaxedDotI8x16I7x16ToI16x8",T[T._last=216]="_last",T[T.AddSize=217]="AddSize",T[T.SubSize=218]="SubSize",T[T.MulSize=219]="MulSize",T[T.DivISize=220]="DivISize",T[T.DivUSize=221]="DivUSize",T[T.RemISize=222]="RemISize",T[T.RemUSize=223]="RemUSize",T[T.AndSize=224]="AndSize",T[T.OrSize=225]="OrSize",T[T.XorSize=226]="XorSize",T[T.ShlSize=227]="ShlSize",T[T.ShrISize=228]="ShrISize",T[T.ShrUSize=229]="ShrUSize",T[T.RotlSize=230]="RotlSize",T[T.RotrSize=231]="RotrSize",T[T.EqSize=232]="EqSize",T[T.NeSize=233]="NeSize",T[T.LtISize=234]="LtISize",T[T.LtUSize=235]="LtUSize",T[T.LeISize=236]="LeISize",T[T.LeUSize=237]="LeUSize",T[T.GtISize=238]="GtISize",T[T.GtUSize=239]="GtUSize",T[T.GeISize=240]="GeISize",T[T.GeUSize=241]="GeUSize",T))(Ri||{}),kp=(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))(kp||{}),wp=(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))(wp||{}),Cp=(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))(Cp||{}),Pp=(f=>(f[f.ShlI8x16=0]="ShlI8x16",f[f.ShrI8x16=1]="ShrI8x16",f[f.ShrU8x16=2]="ShrU8x16",f[f.ShlI16x8=3]="ShlI16x8",f[f.ShrI16x8=4]="ShrI16x8",f[f.ShrU16x8=5]="ShrU16x8",f[f.ShlI32x4=6]="ShlI32x4",f[f.ShrI32x4=7]="ShrI32x4",f[f.ShrU32x4=8]="ShrU32x4",f[f.ShlI64x2=9]="ShlI64x2",f[f.ShrI64x2=10]="ShrI64x2",f[f.ShrU64x2=11]="ShrU64x2",f))(Pp||{}),Bp=(f=>(f[f.Load8Splat=0]="Load8Splat",f[f.Load16Splat=1]="Load16Splat",f[f.Load32Splat=2]="Load32Splat",f[f.Load64Splat=3]="Load64Splat",f[f.Load8x8S=4]="Load8x8S",f[f.Load8x8U=5]="Load8x8U",f[f.Load16x4S=6]="Load16x4S",f[f.Load16x4U=7]="Load16x4U",f[f.Load32x2S=8]="Load32x2S",f[f.Load32x2U=9]="Load32x2U",f[f.Load32Zero=10]="Load32Zero",f[f.Load64Zero=11]="Load64Zero",f))(Bp||{}),Lp=(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))(Lp||{}),Np=(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))(Np||{}),Oy=(r=>(r[r.NonNull=0]="NonNull",r[r.ExternInternalize=1]="ExternInternalize",r[r.ExternExternalize=2]="ExternExternalize",r))(Oy||{}),qy=(n=>(n[n.Null=0]="Null",n[n.NonNull=1]="NonNull",n[n.Cast=2]="Cast",n[n.CastFail=3]="CastFail",n))(qy||{}),Wy=(r=>(r[r.LossyUTF8Array=0]="LossyUTF8Array",r[r.WTF16Array=1]="WTF16Array",r[r.FromCodePoint=2]="FromCodePoint",r))(Wy||{}),Ky=(e=>(e[e.UTF8=0]="UTF8",e[e.WTF16=1]="WTF16",e))(Ky||{}),jy=(e=>(e[e.LossyUTF8Array=0]="LossyUTF8Array",e[e.WTF16Array=1]="WTF16Array",e))(jy||{}),Hy=(e=>(e[e.Equal=0]="Equal",e[e.Compare=1]="Compare",e))(Hy||{}),wl=(e=>(e[e.Default=0]="Default",e[e.PreserveSideeffects=1]="PreserveSideeffects",e))(wl||{}),Ii=class{constructor(i,e){this.buffer=i;this.offset=e}},zt=class t{constructor(i,e,r){this.ref=i;this.useShadowStack=e;this.sizeType=r;this.hasTemporaryFunction=!1;this.cachedStringsToPointers=new Map;this.cachedPointersToStrings=new Map;assert(r==L.I32||r==L.I64),this.lit=pt(uo())}static create(i,e){return new t(y_(),i,e)}static createFrom(i,e,r){let n=Nn(i),s=new t(Rm(n,i.length),e,r);return ie(changetype(n)),s}i32(i){let e=this.lit;return b_(e,i),ti(this.ref,e)}i64(i,e=0){let r=this.lit;return Ry(r,i64_new(i,e)),ti(this.ref,r)}usize(i){return i64_is(i)?this.sizeType==L.I64?this.i64(i64_low(i),i64_high(i)):(assert(i64_is_u32(i)),this.i32(i64_low(i))):this.sizeType==L.I64?this.i64(i32(i)):this.i32(i32(i))}f32(i){let e=this.lit;return x_(e,i),ti(this.ref,e)}f64(i){let e=this.lit;return T_(e,i),ti(this.ref,e)}v128(i){assert(i.length==16);let e=this.lit;for(let r=0;r<16;++r)Le(e+r,unchecked(i[r]));return A_(e,e),ti(this.ref,e)}ref_null(i){return Eh(this.ref,i)}ref_eq(i,e){return kh(this.ref,i,e)}string_eq(i,e){return Ku(this.ref,0,i,e)}string_compare(i,e){return Ku(this.ref,1,i,e)}unary(i,e){if(i>141){let r=this.sizeType==L.I64;switch(i){case 142:i=r?1:0;break;case 143:i=r?3:2;break;case 144:i=r?5:4;break;case 145:i=r?21:20;break;default:assert(!1)}}return mf(this.ref,i,e)}binary(i,e,r){if(i>216){let n=this.sizeType==L.I64;switch(i){case 217:i=n?25:0;break;case 218:i=n?26:1;break;case 219:i=n?27:2;break;case 220:i=n?28:3;break;case 221:i=n?29:4;break;case 222:i=n?30:5;break;case 223:i=n?31:6;break;case 224:i=n?32:7;break;case 225:i=n?33:8;break;case 226:i=n?34:9;break;case 227:i=n?35:10;break;case 228:i=n?36:11;break;case 229:i=n?37:12;break;case 230:i=n?38:13;break;case 231:i=n?39:14;break;case 232:i=n?40:15;break;case 233:i=n?41:16;break;case 234:i=n?42:17;break;case 235:i=n?43:18;break;case 236:i=n?44:19;break;case 237:i=n?45:20;break;case 238:i=n?46:21;break;case 239:i=n?47:22;break;case 240:i=n?48:23;break;case 241:i=n?49:24;break;default:assert(!1)}}return bf(this.ref,i,e,r)}memory_size(i=P.DefaultMemory,e=!1){let r=this.allocStringCached(i);return $_(this.ref,r,e)}memory_grow(i,e=P.DefaultMemory,r=!1){let n=this.allocStringCached(e);return ef(this.ref,i,n,r)}table_size(i){let e=this.allocStringCached(i);return Lh(this.ref,e)}table_grow(i,e,r=0){let n=this.allocStringCached(i);return Nh(this.ref,n,r,e)}local_get(i,e){return H_(this.ref,i,e)}tostack(i){if(this.useShadowStack){let e=kt(i);return assert(e==L.I32||e==L.Unreachable),this.call(d.tostack,[i],e)}return i}local_tee(i,e,r,n=-1){return n==-1&&(n=kt(e)),r&&this.useShadowStack&&(e=this.tostack(e)),Q_(this.ref,i,e,n)}global_get(i,e){let r=this.allocStringCached(i);return X_(this.ref,r,e)}table_get(i,e,r){let n=this.allocStringCached(i);return Ph(this.ref,n,e,r)}load(i,e,r,n,s=0,a=i,l=P.DefaultMemory){let o=this.allocStringCached(l);return rf(this.ref,i,e,s,a,n,r,o)}store(i,e,r,n,s=0,a=i,l=P.DefaultMemory){let o=this.allocStringCached(l);return uf(this.ref,i,s,a,e,r,n,o)}atomic_load(i,e,r,n=0,s=P.DefaultMemory,a=1){let l=this.allocStringCached(s);return of(this.ref,i,n,r,e,l,a)}atomic_store(i,e,r,n,s=0,a=P.DefaultMemory,l=1){let o=this.allocStringCached(a);return cf(this.ref,i,s,e,r,n,o,l)}atomic_rmw(i,e,r,n,s,a,l=P.DefaultMemory,o=1){let u=this.allocStringCached(l);return Cf(this.ref,i,e,r,n,s,a,u,o)}atomic_cmpxchg(i,e,r,n,s,a,l=P.DefaultMemory,o=1){let u=this.allocStringCached(l);return Lf(this.ref,i,e,r,n,s,a,u,o)}atomic_wait(i,e,r,n,s=P.DefaultMemory){let a=this.allocStringCached(s);return zf(this.ref,i,e,r,n,a)}atomic_notify(i,e,r=P.DefaultMemory){let n=this.allocStringCached(r);return Of(this.ref,i,e,n)}atomic_fence(i=null){let e=this.allocStringCached(i);return Kf(this.ref,e)}local_set(i,e,r){return r&&this.useShadowStack&&(e=this.tostack(e)),on(this.ref,i,e)}global_set(i,e){let r=this.allocStringCached(i);return J_(this.ref,r,e)}table_set(i,e,r){let n=this.allocStringCached(i);return Bh(this.ref,n,e,r)}block(i,e,r=L.None){let n=this.allocStringCached(i),s=fe(e),a=S_(this.ref,n,s,e.length,r);return ie(s),a}flatten(i,e=L.None){let r=i.length;if(r==0)return this.nop();if(r==1){let n=i[0];switch($(n)){case 19:case 56:case 23:return n}let s=se(n);return s!=L.Unreachable&&s!=e?this.unreachable():n}return this.block(null,i,e)}br(i,e=0,r=0){let n=this.allocStringCached(i);return B_(this.ref,n,e,r)}drop(i){return mo(this.ref,i)}maybeDrop(i){let e=kt(i);return e!=L.None&&e!=L.Unreachable?mo(this.ref,i):i}maybeDropCondition(i,e){return(wi(i,this.ref)&-21)!=0?this.block(null,[this.drop(i),e],se(e)):e}loop(i,e){let r=this.allocStringCached(i);return C_(this.ref,r,e)}if(i,e,r=0){return R_(this.ref,i,e,r)}nop(){return kf(this.ref)}return(i=0){return Ff(this.ref,i)}select(i,e,r){return Ef(this.ref,r,i,e)}switch(i,e,r,n=0){let s=i.length,a=new Array(s);for(let c=0;c<s;++c)unchecked(a[c]=this.allocStringCached(i[c]));let l=fe(a),o=this.allocStringCached(e),u=M_(this.ref,l,s,o,r,n);return ie(l),u}call(i,e,r,n=!1){let s=this.allocStringCached(i),a=fe(e),l=n?q_(this.ref,s,a,e?e.length:0,r):O_(this.ref,s,a,e?e.length:0,r);return ie(a),l}return_call(i,e,r){return this.call(i,e,r,!0)}call_indirect(i,e,r,n,s,a=!1){let l=this.allocStringCached(i??P.DefaultTable),o=fe(r),u=a?j_(this.ref,l,e,o,r?r.length:0,n,s):W_(this.ref,l,e,o,r?r.length:0,n,s);return ie(o),u}return_call_indirect(i,e,r,n,s){return this.call_indirect(i,e,r,n,s,!0)}unreachable(){return wf(this.ref)}memory_copy(i,e,r,n=P.DefaultMemory,s=P.DefaultMemory){let a=this.allocStringCached(n),l=this.allocStringCached(s);return dh(this.ref,i,e,r,a,l)}memory_fill(i,e,r,n=P.DefaultMemory){let s=this.allocStringCached(n);return bh(this.ref,i,e,r,s)}try(i,e,r,n,s=null){let a=r.length,l=new Array(a);for(let h=0;h<a;++h)l[h]=this.allocStringCached(r[h]);let o=fe(l),u=fe(n),c=this.allocStringCached(i),_=this.allocStringCached(s),f=Mh(this.ref,c,e,o,a,u,n.length,_);return ie(u),ie(o),f}throw(i,e){let r=this.allocStringCached(i),n=fe(e),s=Dh(this.ref,r,n,e.length);return ie(n),s}rethrow(i){let e=this.allocStringCached(i);return Oh(this.ref,e)}pop(i){return Hh(this.ref,i)}tuple_make(i){let e=fe(i),r=qh(this.ref,e,i.length);return ie(e),r}tuple_extract(i,e){return Kh(this.ref,i,e)}simd_extract(i,e,r){return jf(this.ref,i,e,r)}simd_replace(i,e,r,n){return Qf(this.ref,i,e,r,n)}simd_shuffle(i,e,r){assert(r.length==16);let n=Nn(r),s=Zf(this.ref,i,e,n);return ie(n),s}simd_ternary(i,e,r,n){return eh(this.ref,i,e,r,n)}simd_shift(i,e,r){return nh(this.ref,i,e,r)}simd_load(i,e,r,n,s=P.DefaultMemory){let a=this.allocStringCached(s);return lh(this.ref,i,r,n,e,a)}simd_loadstorelane(i,e,r,n,s,a,l=P.DefaultMemory){let o=this.allocStringCached(l);return uh(this.ref,i,r,n,s,e,a,o)}ref_is_null(i){return vh(this.ref,i)}ref_as(i,e){return Jo(this.ref,i,e)}ref_as_nonnull(i){return Qy(se(i))?Jo(this.ref,0,i):i}ref_func(i,e){let r=this.allocStringCached(i);return Rh(this.ref,r,Qt(e))}i31_new(i){return Qh(this.ref,i)}i31_get(i,e){return Jh(this.ref,i,e)}addGlobal(i,e,r,n){let s=this.allocStringCached(i);return tm(this.ref,s,e,r,n)}getGlobal(i){let e=this.allocStringCached(i);return ep(this.ref,e)}removeGlobal(i){let e=this.allocStringCached(i);return ep(this.ref,e)?(rm(this.ref,e),!0):!1}addTag(i,e,r){let n=this.allocStringCached(i);return om(this.ref,n,e,r)}getTag(i){let e=this.allocStringCached(i);return um(this.ref,e)}removeTag(i){let e=this.allocStringCached(i);pm(this.ref,e)}addFunction(i,e,r,n,s){let a=this.allocStringCached(i),l=fe(n),o=ri(this.ref,a,e,r,l,n?n.length:0,s);return ie(l),o}setLocalName(i,e,r){Ud(i,e,this.allocStringCached(r))}getFunction(i){let e=this.allocStringCached(i);return ii(this.ref,e)}removeFunction(i){let e=this.allocStringCached(i);bn(this.ref,e)}hasFunction(i){let e=this.allocStringCached(i);return ii(this.ref,e)!=0}addTemporaryFunction(i,e,r){this.hasTemporaryFunction=assert(!this.hasTemporaryFunction);let n=this.allocStringCached(""),s=fe(e),a=ri(this.ref,n,He(e),i,0,0,r);return ie(s),a}removeTemporaryFunction(){this.hasTemporaryFunction=!assert(this.hasTemporaryFunction);let i=this.allocStringCached("");bn(this.ref,i)}setStart(i){xm(this.ref,i)}addFunctionExport(i,e){let r=this.allocStringCached(i),n=this.allocStringCached(e);return Ys(this.ref,r,n)}addTableExport(i,e){let r=this.allocStringCached(i),n=this.allocStringCached(e);return Qd(this.ref,r,n)}addMemoryExport(i,e){let r=this.allocStringCached(i),n=this.allocStringCached(e);return Xd(this.ref,r,n)}addGlobalExport(i,e){let r=this.allocStringCached(i),n=this.allocStringCached(e);return Jd(this.ref,r,n)}addTagExport(i,e){let r=this.allocStringCached(i),n=this.allocStringCached(e);return Zd(this.ref,r,n)}removeExport(i){let e=this.allocStringCached(i);ea(this.ref,e)}hasExport(i){let e=this.allocStringCached(i);return $s(this.ref,e)!=0}addFunctionImport(i,e,r,n,s){let a=this.allocStringCached(i),l=this.allocStringCached(e),o=this.allocStringCached(r);qd(this.ref,a,l,o,n,s)}addTableImport(i,e,r){let n=this.allocStringCached(i),s=this.allocStringCached(e),a=this.allocStringCached(r);Wd(this.ref,n,s,a)}addMemoryImport(i,e,r,n=!1){let s=this.allocStringCached(i),a=this.allocStringCached(e),l=this.allocStringCached(r);Kd(this.ref,s,a,l,n)}addGlobalImport(i,e,r,n,s=!1){let a=this.allocStringCached(i),l=this.allocStringCached(e),o=this.allocStringCached(r);jd(this.ref,a,l,o,n,s)}addTagImport(i,e,r,n,s){let a=this.allocStringCached(i),l=this.allocStringCached(e),o=this.allocStringCached(r);Hd(this.ref,a,l,o,n,s)}static{this.UNLIMITED_MEMORY=-1}setMemory(i,e,r,n,s=null,a=P.DefaultMemory,l=!1){let o=this.allocStringCached(s),u=this.allocStringCached(a),c=r.length,_=new Array(c),f=new Uint8Array(c),h=new Array(c),y=new Array(c);for(let E=0;E<c;++E){let k=unchecked(r[E]),F=k.buffer,R=k.offset;unchecked(_[E]=Nn(F)),unchecked(f[E]=0),unchecked(h[E]=n==2?this.i64(i64_low(R),i64_high(R)):this.i32(i64_low(R))),unchecked(y[E]=F.length)}let x=fe(_),b=Nn(f),A=fe(h),I=Sp(y);bm(this.ref,i,e,o,0,x,b,A,I,c,l,!1,u),ie(I),ie(A),ie(b),ie(x);for(let E=c-1;E>=0;--E)ie(unchecked(_[E]))}static{this.UNLIMITED_TABLE=-1}addFunctionTable(i,e,r,n,s){let a=this.allocStringCached(i),l=n.length,o=new Array(l);for(let _=0;_<l;++_)unchecked(o[_]=this.allocStringCached(n[_]));let u=fe(o),c=dm(this.ref,a);c?(mm(c,e),ym(c,r)):c=hm(this.ref,a,e,r,L.Funcref),gm(this.ref,a,a,u,l,s),ie(u)}addCustomSection(i,e){let r=this.allocStringCached(i),n=Nn(e);Bm(this.ref,r,n,e.length),ie(n)}getOptimizeLevel(){return Jm()}setOptimizeLevel(i){Zm(i)}getShrinkLevel(){return Ym()}setShrinkLevel(i){$m(i)}getDebugInfo(){return ey()}setDebugInfo(i){ty(i)}getTrapsNeverHappen(){return ry()}setTrapsNeverHappen(i){iy(i)}getClosedWorld(){return ny()}setClosedWorld(i){sy(i)}getLowMemoryUnused(){return ay()}setLowMemoryUnused(i){ly(i)}getZeroFilledMemory(){return oy()}setZeroFilledMemory(i){uy(i)}getFastMath(){return py()}setFastMath(i){cy(i)}getGenerateStackIR(){return _y()}setGenerateStackIR(i){fy(i)}getOptimizeStackIR(){return hy()}setOptimizeStackIR(i){dy(i)}getPassArgument(i){let e=this.allocStringCached(i),r=my(e);return r?Ve(r):null}setPassArgument(i,e){let r=this.allocStringCached(i),n=this.allocStringCached(e);yy(r,n)}clearPassArguments(){gy()}getAlwaysInlineMaxSize(){return by()}setAlwaysInlineMaxSize(i){xy(i)}getFlexibleInlineMaxSize(){return Ty()}setFlexibleInlineMaxSize(i){Ay(i)}getOneCallerInlineMaxSize(){return Ey()}setOneCallerInlineMaxSize(i){vy(i)}getAllowInliningFunctionsWithLoops(){return Sy()}setAllowInliningFunctionsWithLoops(i){Iy(i)}setPartialInliningIfs(i){this.setPassArgument("partial-inlining-ifs",i.toString())}getFeatures(){return Cm(this.ref)}setFeatures(i){i&16&&(i|=524288),Pm(this.ref,i)}runPasses(i,e=0){let r=i.length,n=new Array(r);for(let a=0;a<r;++a)n[a]=Rl(i[a]);let s=fe(n);e?Vd(e,this.ref,s,r):Am(this.ref,s,r),ie(s);for(let a=r-1;a>=0;--a)ie(n[a])}optimize(i,e,r=!1,n=!1){(i>=3||e>=2)&&(i=4),this.clearPassArguments(),this.setOptimizeLevel(i),this.setShrinkLevel(e),this.setDebugInfo(r),this.setZeroFilledMemory(n),this.setFastMath(!0);let s=i>=2||e>=1;if(this.setGenerateStackIR(s),this.setOptimizeStackIR(s),i>=2&&e==0?(this.setAlwaysInlineMaxSize(12),this.setFlexibleInlineMaxSize(70),this.setOneCallerInlineMaxSize(200),this.setAllowInliningFunctionsWithLoops(!0)):(this.setAlwaysInlineMaxSize(i<=1||e>=2?2:6),this.setFlexibleInlineMaxSize(65),this.setOneCallerInlineMaxSize(80),this.setAllowInliningFunctionsWithLoops(!1)),this.setPartialInliningIfs(i>=2?4:0),i>0||e>0){let a=new Array;a.push("duplicate-function-elimination"),a.push("remove-unused-module-elements"),i>=2&&a.push("once-reduction"),(i>=2||e>=1)&&(a.push("inlining"),a.push("simplify-globals-optimizing"),a.push("generate-global-effects")),(i>=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")),i>=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"),i>=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"),i>=3||e>=2?(a.push("inlining"),a.push("precompute-propagate"),a.push("simplify-globals-optimizing")):i>=2||e>=1?a.push("precompute-propagate"):a.push("precompute"),(i>=2||e>=1)&&a.push("pick-load-signs"),a.push("simplify-locals-notee-nostructure"),a.push("vacuum"),(i>=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"),(i>=2||e>=1)&&(a.push("rse"),a.push("vacuum")),e>=1&&(a.push("merge-locals"),a.push("vacuum")),(i>=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"),i>=3&&a.push("optimize-instructions"),(i>=2||e>=1)&&(a.push("simplify-globals-optimizing"),a.push("dae-optimizing")),(i>=2||e>=2)&&a.push("inlining-optimizing"),this.getLowMemoryUnused()&&(i>=3||e>=1?a.push("optimize-added-constants-propagate"):a.push("optimize-added-constants")),a.push("duplicate-import-elimination"),i>=2||e>=2?a.push("simplify-globals-optimizing"):(a.push("simplify-globals"),a.push("vacuum")),i>=2&&(this.getFeatures()&1024)!=0&&(a.push("heap2local"),a.push("merge-locals"),a.push("local-subtyping")),i>=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"),(i>=3||e>=1)&&a.push("gufa-optimizing"),a.push("inlining-optimizing"),(i>=2||e>=1)&&(a.push("code-folding"),a.push("ssa-nomerge"),a.push("rse"),a.push("code-pushing"),i>=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"),(i>=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"),(i>=2||e>=1)&&a.push("discard-global-effects"),this.runPasses(a)}}validate(){return Tm(this.ref)==1}interpret(){Fm(this.ref)}toBinary(i=null){assert(uo()>=Em());let e=this.lit,r=Rl(i);vm(e,this.ref,r);let n=Zt(e+0),s=Zt(e+4),a=Zt(e+8),l=new kl(L2(assert(n),s),Ve(a));return r&&ie(r),a&&ie(a),ie(n),l}toText(i=!0){let e=i?Im(this.ref):Sm(this.ref),r=Ve(e);return e&&ie(e),r||""}allocStringCached(i){if(i==null)return 0;let e=this.cachedStringsToPointers;if(e.has(i))return changetype(e.get(i));let r=Rl(i);return e.set(i,r),r}readStringCached(i){if(i==0)return null;let e=this.cachedPointersToStrings;if(e.has(i))return changetype(e.get(i));let r=Ve(i);return e.set(i,r),r}dispose(){assert(this.ref);for(let i=Map_values(this.cachedStringsToPointers),e=0,r=i.length;e<r;++e){let n=unchecked(i[e]);ie(n)}this.cachedStringsToPointers.clear(),this.cachedPointersToStrings.clear(),ie(this.lit),g_(this.ref),this.ref=0}createRelooper(){return Fl.create(this)}tryCopyTrivialExpression(i){return this.isTrivialExpression(i)?this.copyExpression(i):0}isTrivialExpression(i){switch(Ft(i)){case 8:case 10:case 14:case 20:case 22:case 23:case 38:case 42:return!0}return!1}copyExpression(i){return E_(i,this.ref)}runExpression(i,e,r=50,n=1){let s=Vm(this.ref,e,r,n),a=Om(s,i);if(a){if(!this.isConstExpression(a))return 0;assert(se(a)==se(i))}return a}isConstExpression(i){switch($(i)){case 14:case 42:case 44:case 61:return!0;case 16:{if(this.getFeatures()&8192)switch(Fi(i)){case 0:case 1:case 2:case 25:case 26:case 27:return this.isConstExpression(Xe(i))&&this.isConstExpression(Ne(i))}break}}return!1}addDebugInfoFile(i){let e=Rl(i),r=km(this.ref,e);return ie(e),r}getDebugInfoFile(i){return Ve(wm(this.ref,i))}setDebugLocation(i,e,r,n,s){Od(i,e,r,n,s)}};function He(t){if(!t)return L.None;switch(t.length){case 0:return L.None;case 1:return t[0]}let i=fe(t),e=Yc(i,t.length);return ie(i),e}function Mp(t){let i=$c(t),e=pt(i<<2);e_(t,e);let r=new Array(i);for(let n=0;n<i;++n)unchecked(r[n]=Zt(e+(n<<2)));return ie(e),r}function Qy(t){return t_(t)}function $(t){return Ft(t)}function se(t){return kt(t)}function ne(t){return _f(t)}function ve(t){return i64_low(np(t))}function we(t){return i64_high(np(t))}function Gp(t,i){let e=0,r=0;return i?(e=ve(t),r=we(t)):e=ne(t),i64_new(e,r)}function Ae(t){return ff(t)}function Ee(t){return hf(t)}function zp(t){let i=pt(16);df(t,i);let e=new Uint8Array(16);for(let r=0;r<16;++r)e[r]=xr(i+r);return ie(i),e}function Qe(t){if($(t)!=14)return!1;let i=se(t);return i==L.I32?ne(t)==0:i==L.I64?(ve(t)|we(t))==0:i==L.F32?Ae(t)==0:i==L.F64?Ee(t)==0:!1}function lt(t){if($(t)!=14)return!1;let i=se(t);return i==L.I32?ne(t)!=0:i==L.I64?(ve(t)|we(t))!=0:i==L.F32?Ae(t)!=0:i==L.F64?Ee(t)!=0:!1}function Cl(t){if($(t)!=14)return!1;let i=se(t);if(i==L.F32){let e=Ae(t);return e==0&&f32_as_i32(e)<0}if(i==L.F64){let e=Ee(t);return e==0&&i64_signbit(f64_as_i64(e))}return!1}function l2(t){if($(t)!=14)return!1;let i=se(t);return i==L.F32?isNaN(Ae(t)):i==L.F64?isNaN(Ee(t)):!1}function Pl(t,i){let e=$(i),r=se(i);if(r==L.F32||r==L.F64){if(e==14)return isNaN(r==L.F32?Ae(i):Ee(i));if(e==10){let n=t.runExpression(i,0,8);if(n)return isNaN(r==L.F32?Ae(n):Ee(n))}}return!1}function dt(t){return Os(t)}function Bl(t){return ei(t)}function Ll(t){return yr(t)}function Dn(t){return qs(t)}function Un(t){return Ve(Ks(t))}function Fi(t){return xf(t)}function Xe(t){return fn(t)}function Ne(t){return hn(t)}function Vn(t){return yf(t)}function Nl(t){return _n(t)}function Dp(t){return af(t)}function o2(t){return sf(t)}function u2(t){return pn(t)}function Up(t){return nf(t)}function p2(t){return js(t)}function c2(t){return Hs(t)}function _2(t){return gr(t)}function f2(t){return cn(t)}function On(t){return Ve(Gs(t))}function qn(t){return Yi(t)}function Wn(t,i){return $i(t,i)}function Ml(t){return en(t)}function Kn(t){return tn(t)}function ki(t){return rn(t)}function h2(t){return Ve(zs(t))}function d2(t){return nn(t)}function m2(t){return Ve(Ds(t))}function y2(t){return sn(t)}function Vp(t){return dn(t)}function Op(t){return mn(t)}function g2(t){return yn(t)}function b2(t){return gn(t)}function x2(t){return br(t)}function jn(t){return Ve($r(t))}function mt(t){return Xt(t)}function Oe(t,i){return Jt(t,i)}function T2(t){return un(t)}function A2(t){return wt(t)}function qp(t){return Ve(si(t))}function E2(t){return Tn(t)}function v2(t){return An(t)}function S2(t){let i=Js(t),e=new Array(i);for(let r=0;r<i;++r)unchecked(e[r]=Zs(t,r));return e}function I2(t){return Ve(sm(t))}function R2(t){return am(t)}function Wp(t){return lm(t)}function F2(t){return ta(t)}function k2(t){return Ve(cm(t))}function w2(t){return _m(t)}function C2(t){return fm(t)}var Fl=class t{constructor(i,e){this.module=i;this.ref=e}static create(i){return new t(i,Nm(i.ref))}addBlock(i){return Mm(this.ref,i)}addBranch(i,e,r=0,n=0){Gm(i,e,r,n)}addBlockWithSwitch(i,e){return zm(this.ref,i,e)}addBranchForSwitch(i,e,r,n=0){let s=P2(r);Dm(i,e,s,r.length,n),ie(s)}renderAndDispose(i,e){return Um(this.ref,i,e)}},Gn=class{constructor(i,e){this.values=new Array;this.indexes=new Array;this.cases=new Array;this.defaultIndex=-1;this.module=i,this.condition=e}addOrReplaceCase(i,e){let r=this.values.indexOf(i),n=this.addCode(e);r>=0?this.indexes[r]=n:(this.values.push(i),this.indexes.push(n))}addCase(i,e){this.values.push(i),this.indexes.push(this.addCode(e))}addCode(i){let e=this.cases,r=e.indexOf(i);return r<0&&(r=e.length,e.push(i)),r}addDefault(i){assert(this.defaultIndex==-1);let e=this.cases;this.defaultIndex=e.length,e.push(i)}render(i,e=""){let r=this.module,n=this.cases,s=n.length;if(!s)return r.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 x=0;x<s;++x)unchecked(c[x]=`case${x}${e}`);u[0]=r.local_set(i,this.condition,!1);for(let x=0;x<l;++x){let b=unchecked(o[x]);unchecked(u[1+x]=r.br(c[b],r.binary(15,r.local_get(i,L.I32),r.i32(a[x]))))}let _=this.defaultIndex,f=`default${e}`;u[1+l]=r.br(~_?c[_]:f);let h=r.block(c[0],u);for(let x=1;x<s;++x){let b=n[x-1];b.unshift(h),h=r.block(unchecked(c[x]),b)}let y=n[s-1];return y.unshift(h),r.block(~_?null:f,y)}},Kp=(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))(Kp||{});function wi(t,i){return Lm(t,i)}function Gl(t,i){return(wi(t,i)&-21)!=0}function Nn(t){if(!t)return 0;let i=t.length,e=pt(i);for(let r=0;r<i;++r)Le(e+r,unchecked(t[r]));return e}function P2(t){if(!t)return 0;let i=t.length,e=pt(i<<2),r=e;for(let n=0;n<i;++n){let s=unchecked(t[n]);ia(r,s),r+=4}return e}function Sp(t){if(!t)return 0;let i=t.length,e=pt(i<<2),r=e;for(let n=0;n<i;++n){let s=unchecked(t[n]);ia(r,s),r+=4}return e}function fe(t){if(!t)return 0;assert(ASC_TARGET!=2);let i=t.length,e=pt(i<<2),r=e;for(let n=0,s=i;n<s;++n){let a=unchecked(t[n]);ia(r,a),r+=4}return e}function B2(t){let i=0;for(let e=0,r=t.length;e<r;++e){let n=t.charCodeAt(e)>>>0;n<=127?i+=1:n<=2047?i+=2:hi(n)&&e+1<r&&fa(t.charCodeAt(e+1))?(e++,i+=4):i+=3}return i}function Rl(t){if(t==null)return 0;let i=B2(t),e=pt(i+1)>>>0,r=e;if(i==t.length)for(let n=0,s=t.length;n<s;++n){let a=t.charCodeAt(n)>>>0;Le(r++,a)}else for(let n=0,s=t.length;n<s;++n){let a=t.charCodeAt(n)>>>0,l;a<=127?Le(r++,a):a<=2047?(Le(r++,192|a>>>6),Le(r++,128|a&63)):hi(a)&&n+1<s&&fa(l=t.charCodeAt(n+1))?(a=Rn(a,l),++n,Le(r++,240|a>>>18),Le(r++,128|a>>>12&63),Le(r++,128|a>>>6&63),Le(r++,128|a&63)):(Le(r++,224|a>>>12),Le(r++,128|a>>>6&63),Le(r++,128|a&63))}return Le(r,0),e}function L2(t,i){let e=new Uint8Array(i);for(let r=0;r<i;++r)unchecked(e[r]=xr(t+r));return e}function Ve(t){if(!t)return null;let i=new Array,e,r,n,s;for(;e=xr(t++);){if(!(e&128)){i.push(e);continue}if(r=xr(t++)&63,(e&224)==192){i.push((e&31)<<6|r);continue}if(n=xr(t++)&63,(e&240)==224?e=(e&15)<<12|r<<6|n:(s=xr(t++)&63,(e&248)==240?e=(e&7)<<18|r<<12|n<<6|s:assert(!1,"Invalid UTF8 sequence during readString")),e<65536)i.push(e);else{let a=e-65536;i.push(In|a>>>10),i.push(fi|a&1023)}}return String.fromCharCodes(i)}var kl=class{constructor(i,e){this.output=i;this.sourceMap=e}},Gt=!1;function Hn(t){if(t==p.void)return L.None;let i=Xy(t);if(i)return i;let e=t;if(t=t.nonNullableType,i=t.ref)return he(Qt(i),e.is(512));ASC_TARGET&&assert(sizeof()==4);let r=qm(0),n=new Map;er(r,n,t);let s=ra(r),a=pt(max(4*s,8));if(!Hm(r,a,a,a+4)){let l=Zt(a),o=Zt(a+4);throw ie(a),new Error(`type builder error at index ${l}: ${Ip.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 _=Zt(a+4*o),f=he(_,!1);assert(!c.ref),c.ref=f,Gt&&console.log(` set ${c.toString()}`);let h=c.getClass();if(h){let y=h.program.module;Qm(y.ref,_,y.allocStringCached(h.internalName));let x=h.members;if(x){let b=m_(_),A=0;for(let I=Map_values(x),E=0,k=I.length;E<k;++E){let F=I[E];if(F.kind!=10)continue;let R=F.instance;!R||!R.isField||Xm(y.ref,_,A++,y.allocStringCached(R.name))}assert(b==A)}}}return ie(a),Gt&&console.log(` finalize ${t.toString()}`),i=assert(t.ref),he(Qt(i),e.is(512))}function Xy(t){switch(t.kind){case 0:case 1:case 6:case 2:case 7:case 3:case 8:return L.I32;case 4:case 9:return L.I64;case 5:case 10:{if(t.isInternalReference)break;return t.size==64?L.I64:L.I32}case 11:return L.F32;case 12:return L.F64;case 13:return L.V128;case 15:return he(ge.Func,t.is(512));case 14:return he(ge.Extern,t.is(512));case 16:return he(ge.Any,t.is(512));case 17:return he(ge.Eq,t.is(512));case 18:return he(ge.Struct,t.is(512));case 19:return he(ge.Array,t.is(512));case 20:return he(ge.I31,t.is(512));case 21:return he(ge.String,t.is(512));case 25:assert(!1)}return 0}function N2(t){switch(t.kind){case 0:case 1:case 6:return Mn.I8;case 2:case 7:return Mn.I16}return Mn.NotPacked}function er(t,i,e){if(e==p.void)return L.None;let r=Xy(e);if(r||(assert(!e.is(512)),r=e.ref))return r;if(i.has(e))return Gt&&console.log(` prepare ${e.toString()} (seen)`),changetype(i.get(e));Gt&&console.log(`prepare ${e.toString()}`);let n=e.getClass();if(n){let a=n.base,l=0;a&&(l=er(t,i,a.type));let o=ra(t);tp(t,1),Gt&&console.log(` block [${o}]: ${e.toString()}`);let u=rp(t,o);r=ai(t,u,!1),i.set(e,r);let c=new Array,_=new Array,f=new Array,h=n.members;if(h)for(let A=Map_values(h),I=0,E=A.length;I<E;++I){let k=A[I];if(k.kind!=10)continue;let F=k.instance;if(!F||!F.isField)continue;let R=F.type;Gt&&console.log(` field ${R.toString()}`),R.is(512)?c.push(ai(t,Qt(er(t,i,R.nonNullableType)),!0)):c.push(er(t,i,R)),_.push(N2(R)),f.push(1)}let y=fe(c),x=Sp(_),b=Sp(f);return Gt&&console.log(` concretize [${o}]: ${e.toString()}`),Km(t,o,y,x,b,c.length),a&&(Gt&&console.log(` set super [${o}]: ${e.toString()} <: ${a.type.toString()} ${l==a.type.ref?" (known)":""}`),jm(t,o,Qt(l))),ie(b),ie(x),ie(y),r}let s=e.getSignature();if(s){let a=ra(t);tp(t,1);let l=ai(t,rp(t,a),!1);i.set(e,l);let o=new Array,u=new Array,c=s.parameterTypes;for(let y=0,x=c.length;y<x;++y){let b=c[y];b.is(512)?o.push(ai(t,Qt(er(t,i,b.nonNullableType)),!0)):o.push(er(t,i,b))}let _=s.returnType;u.push(_==p.void?L.None:_.is(512)?ai(t,Qt(er(t,i,_.nonNullableType)),!0):er(t,i,_));let f;if(o.length>1){let y=fe(o);f=ip(t,y,o.length),ie(y)}else f=o.length?o[0]:L.None;let h;if(u.length>1){let y=fe(u);h=ip(t,y,u.length),ie(y)}else h=u[0];return Gt&&console.log(` concretize [${a}]: ${e.toString()}`),Wm(t,a,f,h),l}throw new Error(`unexpected complex type: ${e.toString()}`)}var Dl=(F=>(F[F.None=0]="None",F[F.Returns=1]="Returns",F[F.ReturnsWrapped=2]="ReturnsWrapped",F[F.ReturnsNonNull=4]="ReturnsNonNull",F[F.Throws=8]="Throws",F[F.Breaks=16]="Breaks",F[F.Continues=32]="Continues",F[F.AccessesThis=64]="AccessesThis",F[F.CallsSuper=128]="CallsSuper",F[F.Terminates=256]="Terminates",F[F.ConditionallyReturns=512]="ConditionallyReturns",F[F.ConditionallyThrows=1024]="ConditionallyThrows",F[F.ConditionallyBreaks=2048]="ConditionallyBreaks",F[F.ConditionallyContinues=4096]="ConditionallyContinues",F[F.ConditionallyAccessesThis=8192]="ConditionallyAccessesThis",F[F.MayReturnNonThis=16384]="MayReturnNonThis",F[F.UncheckedContext=32768]="UncheckedContext",F[F.CtorParamContext=65536]="CtorParamContext",F[F.InlineContext=131072]="InlineContext",F[F.AnyCategorical=511]="AnyCategorical",F[F.AnyConditional=15872]="AnyConditional",F))(Dl||{}),Qn=(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))(Qn||{}),jp=(e=>(e[e.None=0]="None",e[e.Initialized=1]="Initialized",e))(jp||{}),Hp=(r=>(r[r.Unknown=0]="Unknown",r[r.True=1]="True",r[r.False=2]="False",r))(Hp||{}),Dt=class t{constructor(i,e=null){this.targetFunction=i;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;this.tryFinallyPendingActionLocal=-1;this.tryFinallyPendingValueLocal=-1;this.tryFinallyDispatchLabel=null;this.tryFinallyReturnType=null}static createDefault(i){let e=new t(i);return i.is(524288)&&e.initThisFieldFlags(),i.program.options.uncheckedBehavior===2&&e.set(32768),e}static createInline(i,e){let r=new t(i,e);return r.inlineReturnLabel=`${e.internalName}|inlined.${e.nextInlineId++}`,e.is(524288)&&r.initThisFieldFlags(),i.program.options.uncheckedBehavior===2&&r.set(32768),r}get isInline(){return this.inlineFunction!=null}get isInTryFinally(){return this.tryFinallyPendingActionLocal>=0}getTryFinallyContext(){let i=this;for(;i;){if(i.tryFinallyPendingActionLocal>=0)return i;i=i.parent}return null}get sourceFunction(){let i=this.inlineFunction;return i||this.targetFunction}get program(){return this.targetFunction.program}get returnType(){return this.sourceFunction.signature.returnType}get contextualTypeArguments(){return this.sourceFunction.contextualTypeArguments}is(i){return(this.flags&i)==i}isAny(i){return(this.flags&i)!=0}set(i){this.flags|=i}unset(i){this.flags&=~i}deriveConditionalFlags(){let i=this.flags&15872;return this.is(1)&&(i|=512),this.is(8)&&(i|=1024),this.is(16)&&(i|=2048),this.is(32)&&(i|=4096),this.is(64)&&(i|=8192),i}fork(i=!1,e=i){let r=new t(this.targetFunction,this.inlineFunction);if(r.parent=this,r.flags=this.flags,r.outer=this.outer,i?r.flags&=-2065:r.breakLabel=this.breakLabel,e?r.flags&=-4129:r.continueLabel=this.continueLabel,r.localFlags=this.localFlags.slice(),this.sourceFunction.is(524288)){let n=assert(this.thisFieldFlags);r.thisFieldFlags=pe(n)}else assert(!this.thisFieldFlags);return r.inlineReturnLabel=this.inlineReturnLabel,r}forkThen(i,e=!1,r=e){let n=this.fork(e,r),s=this.trueFlows;return s&&s.has(i)&&n.inherit(changetype(s.get(i))),n.inheritNonnullIfTrue(i),n}noteThen(i,e){let r=this.trueFlows;r||(this.trueFlows=r=new Map),r.set(i,e)}forkElse(i){let e=this.fork(),r=this.falseFlows;return r&&r.has(i)&&e.inherit(changetype(r.get(i))),e.inheritNonnullIfFalse(i),e}noteElse(i,e){let r=this.falseFlows;r||(this.falseFlows=r=new Map),r.set(i,e)}addScopedTypeAlias(i,e){let r=this.scopedTypeAlias;r||(this.scopedTypeAlias=r=new Map),r.set(i,e)}lookupScopedTypeAlias(i){let e=this;do{let r=e.scopedTypeAlias;if(r&&r.has(i))return assert(r.get(i));e=e.parent}while(e);return null}lookupTypeAlias(i){let e=null;if(e=this.lookupScopedTypeAlias(i))return e;let r=this.sourceFunction.parent;return r.kind==5?r.flow.lookupTypeAlias(i):null}getTempLocal(i){let e=this.targetFunction.addLocal(i);return this.unsetLocalFlag(e.index,-1),e}getScopedLocal(i){let e=this.scopedLocals;return e&&e.has(i)?assert(e.get(i)):null}addScopedLocal(i,e){let r=this.getTempLocal(e);r.name=i,r.internalName=Ce(i,r.parent,!1);let n=this.scopedLocals;return n?assert(!n.has(i)):this.scopedLocals=n=new Map,r.set(67108864),n.set(i,r),r}addScopedDummyLocal(i,e,r){let n=new qe(i,-1,e,this.targetFunction),s=this.scopedLocals;return s?s.has(i)&&this.program.error(2451,r.range,i):this.scopedLocals=s=new Map,n.set(67108864),s.set(i,n),n}addScopedAlias(i,e,r,n=null){let s=this.scopedLocals;if(!s)this.scopedLocals=s=new Map;else if(s.has(i)){let l=assert(s.get(i));return n&&(l.declaration.range.source.isNative?this.program.error(2300,n.range,i):this.program.errorRelated(2300,n.range,l.declaration.name.range,i)),l}assert(r<this.targetFunction.localsByIndex.length);let a=new qe(i,r,e,this.targetFunction);return a.set(67108864),s.set(i,a),a}freeScopedDummyLocal(i){let e=assert(this.scopedLocals);assert(e.has(i));let r=assert(e.get(i));assert(r.index==-1),e.delete(i)}lookupLocal(i){let e=this;do{let r=e.scopedLocals;if(r&&r.has(i))return assert(r.get(i));e=e.parent}while(e);return null}lookupLocalInOuter(i){let e=this.outer;for(;e;){let r=e.lookupLocal(i);if(r)return r;e=e.outer}return null}lookup(i){let e=this.lookupLocal(i);return e||this.sourceFunction.lookup(i)}isLocalFlag(i,e,r=!0){if(i<0)return r;let n=this.localFlags;return i<n.length&&(unchecked(n[i])&e)==e}isAnyLocalFlag(i,e,r=!0){if(i<0)return r;let n=this.localFlags;return i<n.length&&(unchecked(n[i])&e)!=0}setLocalFlag(i,e){if(i<0)return;let r=this.localFlags,n=i<r.length?unchecked(r[i]):0;r[i]=n|e}unsetLocalFlag(i,e){if(i<0)return;let r=this.localFlags,n=i<r.length?unchecked(r[i]):0;r[i]=n&~e}initThisFieldFlags(){let i=this.sourceFunction;assert(i.is(524288));let e=i.parent;assert(e.kind==7);let r=e;this.thisFieldFlags=new Map;let n=r.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!=r||u.initializerNode||u.prototype.parameterIndex!=-1||u.type.isAny(640))&&this.setThisFieldFlag(u,1)}}isThisFieldFlag(i,e){let r=this.thisFieldFlags;return r!=null&&r.has(i)?(changetype(r.get(i))&e)==e:!1}setThisFieldFlag(i,e){let r=this.thisFieldFlags;if(r)if(assert(this.sourceFunction.is(524288)),r.has(i)){let n=changetype(r.get(i));r.set(i,n|e)}else r.set(i,e);else assert(!this.sourceFunction.is(524288))}pushControlFlowLabel(){let i=this.targetFunction,e=i.nextBreakId++,r=i.breakStack;return r?r.push(e):i.breakStack=[e],e}popControlFlowLabel(i){let e=this.targetFunction,r=assert(e.breakStack);assert(r.length),assert(r.pop()==i)}inherit(i){assert(i.targetFunction==this.targetFunction);let e=i.flags;this.breakLabel!=i.breakLabel&&(e&2064&&(e&=-257),e&=-2065),this.continueLabel!=i.continueLabel&&(e&=-4129),this.flags=this.flags|e,this.localFlags=i.localFlags,this.thisFieldFlags=i.thisFieldFlags}mergeSideEffects(i){assert(i.targetFunction==this.targetFunction);let e=this.flags,r=i.flags,n=0;e&1?n|=1:r&1?n|=512:n|=(e|r)&512,n|=e&r&2,n|=e&r&4,e&8?n|=8:r&8?n|=1024:n|=(e|r)&1024,e&16?n|=16:i.breakLabel==this.breakLabel?r&16?n|=2048:n|=(e|r)&2048:n|=e&2048,e&32?n|=32:i.continueLabel==this.continueLabel?r&32?n|=4096:n|=(e|r)&4096:n|=e&4096,e&64?r&64?n|=64:n|=8192:r&64&&(n|=8192),n|=(e|r)&16384,n|=e&r&128,e&256&&(n|=256),this.flags=n|e&98304}mergeBranch(i){this.mergeSideEffects(i);let e=this.localFlags,r=e.length,n=i.localFlags,s=n.length,a=max(r,s);for(let l=0;l<a;++l){let o=l<r?e[l]:0,u=l<s?n[l]:0;e[l]=o&u&15}}inheritAlternatives(i,e){assert(i.targetFunction==e.targetFunction),assert(i.targetFunction==this.targetFunction);let r=i.flags,n=e.flags,s=0;r&1?n&1?s|=1:s|=512:n&1?s|=512:s|=(r|n)&512,r&2&&n&2&&(s|=2),r&4&&n&4&&(s|=4),r&8?n&8?s|=8:s|=1024:n&8?s|=1024:s|=(r|n)&1024,r&16?n&16?s|=16:s|=2048:n&16?s|=2048:s|=(r|n)&2048,r&32?n&32?s|=32:s|=4096:n&32?s|=4096:s|=(r|n)&4096,r&64?n&64?s|=64:s|=8192:n&64?s|=8192:s|=(r|n)&8192,s|=(r|n)&16384,r&128&&n&128&&(s|=128),r&256&&n&256&&(s|=256),this.flags=s|this.flags&98304;let a=this.localFlags;if(r&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=i.localFlags;for(let u=0,c=o.length;u<c;++u)a[u]=o[u]}else{let o=i.localFlags,u=o.length,c=e.localFlags,_=c.length,f=max(u,_);for(let h=0;h<f;++h){let y=h<u?o[h]:0,x=h<_?c[h]:0;a[h]=y&x&15}}let l=i.thisFieldFlags;if(l){let o=new Map,u=assert(e.thisFieldFlags);for(let c=Map_keys(l),_=0,f=c.length;_<f;++_){let h=c[_];(changetype(l.get(h))&1)!=0&&u.has(h)&&changetype(u.get(h))&1&&o.set(h,1)}this.thisFieldFlags=o}else assert(!e.thisFieldFlags)}resetIfNeedsRecompile(i,e){let r=this.localFlags.length,n=i.localFlags.length,s=this.targetFunction;assert(s==i.targetFunction);let a=s.localsByIndex;assert(a==i.targetFunction.localsByIndex);let l=!1;for(let o=0,u=min(r,n);o<u;++o){let _=a[o].type;_.isShortIntegerValue&&this.isLocalFlag(o,2)&&!i.isLocalFlag(o,2)&&(this.unsetLocalFlag(o,2),l=!0),_.isNullableReference&&this.isLocalFlag(o,4)&&!i.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(i,e){if(!e.isNullableReference)return!0;switch($(i)){case 9:{if(!Dn(i))break;let r=this.targetFunction.localsByIndex[Bl(i)];return!r.type.isNullableReference||this.isLocalFlag(r.index,4,!1)}case 8:{let r=this.targetFunction.localsByIndex[dt(i)];return!r.type.isNullableReference||this.isLocalFlag(r.index,4,!1)}}return!1}inheritNonnullIfTrue(i,e=null){switch($(i)){case 9:{if(!Dn(i))break;let r=this.targetFunction.localsByIndex[Bl(i)];(!e||e.isLocalFlag(r.index,4))&&this.setLocalFlag(r.index,4),this.inheritNonnullIfTrue(Ll(i),e);break}case 8:{let r=this.targetFunction.localsByIndex[dt(i)];(!e||e.isLocalFlag(r.index,4))&&this.setLocalFlag(r.index,4);break}case 2:{let r=ki(i);r&&Qe(r)&&(this.inheritNonnullIfTrue(Ml(i),e),this.inheritNonnullIfTrue(Kn(i),e));break}case 15:{switch(Vn(i)){case 20:case 21:{this.inheritNonnullIfFalse(Nl(i),e);break}}break}case 16:{switch(Fi(i)){case 15:case 40:{let r=Xe(i),n=Ne(i);lt(r)?this.inheritNonnullIfTrue(n,e):lt(n)&&this.inheritNonnullIfTrue(r,e);break}case 16:case 41:{let r=Xe(i),n=Ne(i);Qe(r)?this.inheritNonnullIfTrue(n,e):Qe(n)&&this.inheritNonnullIfTrue(r,e);break}}break}case 6:{let r=jn(i);if(r==d.String_eq){assert(mt(i)==2);let n=Oe(i,0),s=Oe(i,1);lt(n)?this.inheritNonnullIfTrue(s,e):lt(s)&&this.inheritNonnullIfTrue(n,e)}else if(r==d.String_ne){assert(mt(i)==2);let n=Oe(i,0),s=Oe(i,1);Qe(n)?this.inheritNonnullIfTrue(s,e):Qe(s)&&this.inheritNonnullIfTrue(n,e)}else r==d.String_not?(assert(mt(i)==1),this.inheritNonnullIfFalse(Oe(i,0),e)):r==d.tostack&&(assert(mt(i)==1),this.inheritNonnullIfTrue(Oe(i,0),e));break}}}inheritNonnullIfFalse(i,e=null){switch($(i)){case 15:{switch(Vn(i)){case 20:case 21:{this.inheritNonnullIfTrue(Nl(i),e);break}}break}case 2:{let r=Kn(i);ki(i)&&lt(r)&&(this.inheritNonnullIfFalse(Ml(i),e),this.inheritNonnullIfFalse(ki(i),e));break}case 16:{switch(Fi(i)){case 15:case 40:{let r=Xe(i),n=Ne(i);Qe(r)?this.inheritNonnullIfTrue(n,e):Qe(n)&&this.inheritNonnullIfTrue(r,e);break}case 16:case 41:{let r=Xe(i),n=Ne(i);lt(r)?this.inheritNonnullIfTrue(n,e):lt(n)&&this.inheritNonnullIfTrue(r,e);break}}break}case 6:{let r=jn(i);if(r==d.String_eq){assert(mt(i)==2);let n=Oe(i,0),s=Oe(i,1);Qe(n)?this.inheritNonnullIfTrue(s,e):Qe(s)&&this.inheritNonnullIfTrue(n,e)}else if(r==d.String_ne){assert(mt(i)==2);let n=Oe(i,0),s=Oe(i,1);lt(n)?this.inheritNonnullIfTrue(s,e):lt(s)&&this.inheritNonnullIfTrue(n,e)}else r==d.String_not?(assert(mt(i)==1),this.inheritNonnullIfTrue(Oe(i,0),e)):r==d.tostack&&(assert(mt(i)==1),this.inheritNonnullIfFalse(Oe(i,0),e));break}}}canOverflow(i,e){if(!e.isShortIntegerValue)return!1;let r;switch($(i)){case 8:{let n=this.targetFunction.localsByIndex[dt(i)];return!this.isLocalFlag(n.index,2,!0)||zl(n.type,e)}case 9:return assert(Dn(i)),this.canOverflow(Ll(i),e);case 10:{let n=assert(this.program.elementsByName.get(assert(Un(i))));return assert(n.kind==0||n.kind==3),zl(n.type,e)}case 16:{switch(Fi(i)){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!($(r=Xe(i))==14&&(ne(r)==0||ne(r)==1&&!this.canOverflow(Ne(i),e))||$(r=Ne(i))==14&&(ne(r)==0||ne(r)==1&&!this.canOverflow(Xe(i),e)));case 7:return!($(r=Xe(i))==14&&ne(r)<=e.computeSmallIntegerMask(p.i32)||!this.canOverflow(r,e)||$(r=Ne(i))==14&&ne(r)<=e.computeSmallIntegerMask(p.i32)||!this.canOverflow(r,e));case 10:{let n=32-e.size;return $(r=Ne(i))!=14||ne(r)<n}case 11:{let n=32-e.size;return this.canOverflow(Xe(i),e)&&($(r=Ne(i))!=14||ne(r)<n)}case 12:{let n=32-e.size;return e.isSignedIntegerValue?!($(r=Ne(i))==14&&ne(r)>n):this.canOverflow(Xe(i),e)&&!($(r=Ne(i))==14&&ne(r)>=n)}case 4:case 5:case 6:return this.canOverflow(Xe(i),e)||this.canOverflow(Ne(i),e)}break}case 15:{switch(Vn(i)){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(se(i)){case L.I32:{n=ne(i);break}case L.I64:{n=ve(i);break}case L.F32:{n=i32(Ae(i));break}case L.F64:{n=i32(Ee(i));break}case L.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=Up(i);switch(Dp(i)){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 zl(n,e)}case 1:{if(!On(i)){let n=assert(qn(i)),s=Wn(i,n-1);return this.canOverflow(s,e)}break}case 2:return this.canOverflow(Kn(i),e)||this.canOverflow(assert(ki(i)),e);case 17:return this.canOverflow(Vp(i),e)||this.canOverflow(Op(i),e);case 6:{let s=this.program.instancesByName,a=assert(jn(i));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)||zl(u,e)}return!1}case 23:return!1}return!0}toString(){let i=0,e=this.parent;for(;e;)e=e.parent,++i;let r=new Array;return this.is(1)&&r.push("RETURNS"),this.is(2)&&r.push("RETURNS_WRAPPED"),this.is(4)&&r.push("RETURNS_NONNULL"),this.is(8)&&r.push("THROWS"),this.is(16)&&r.push("BREAKS"),this.is(32)&&r.push("CONTINUES"),this.is(64)&&r.push("ACCESSES_THIS"),this.is(128)&&r.push("CALLS_SUPER"),this.is(256)&&r.push("TERMINATES"),this.is(512)&&r.push("CONDITIONALLY_RETURNS"),this.is(1024)&&r.push("CONDITIONALLY_THROWS"),this.is(2048)&&r.push("CONDITIONALLY_BREAKS"),this.is(4096)&&r.push("CONDITIONALLY_CONTINUES"),this.is(8192)&&r.push("CONDITIONALLY_ACCESSES_THIS"),this.is(16384)&&r.push("MAY_RETURN_NONTHIS"),`Flow(${this.sourceFunction})[${i}] ${r.join(" ")}`}};function zl(t,i){return i.isShortIntegerValue&&(!t.isIntegerValue||t.size>i.size||t.isSignedIntegerValue!=i.isSignedIntegerValue)}var ql=(e=>(e[e.Report=0]="Report",e[e.Swallow=1]="Swallow",e))(ql||{}),Xn=class extends Ke{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,r,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,r,n,s,a);break}case 2:{l=this.resolveFunctionType(e,r,n,s,a);break}case 3:{l=this.resolveTupleType(e,r,n,s,a);break}default:assert(!1)}return e.currentlyResolving=!1,l}resolveNamedType(e,r,n,s=null,a=0){let l=e.name,o=e.typeArguments,u=!l.next;if(u){let f=l.identifier.text;if(s&&s.has(f)){let h=assert(s.get(f));if(o&&o.length>0&&a==0&&this.error(2315,e.range,h.toString()),e.isNullable){if(h.isReference)return h.asNullable();a==0&&this.error(204,e.range,h.toString())}return h}}let c=this.resolveTypeName(l,r,n,a);if(!c)return null;let _=c.shadowType;if(_)c=_;else{if(c.kind==2)return o&&o.length>0&&a==0&&this.error(2315,e.range,c.internalName),e.isNullable&&a==0&&this.error(204,e.range,`${c.name}/i32`),p.i32;if(c.kind==6||c.kind==8){let f=this.resolveClassInclTypeArguments(c,o,r,n,pe(s),e,a);return f?e.isNullable?f.type.asNullable():f.type:null}}if(c.kind==14){let f=c;if(c.is(4194304)){o&&o.length>0&&a==0&&this.error(2315,e.range,c.internalName);let b=f.type;if(e.isNullable){if(b.isReference)return b.asNullable();a==0&&this.error(204,l.range,l.identifier.text)}return b}if(u){let b=l.identifier.text;if(rr.has(b)){let A=assert(rr.get(b)),I=new Wl(this,e,n,s,a);return A(I)}}let h=f.typeParameterNodes,y=null;if(h){if(y=this.resolveTypeArguments(h,o,r,n,s=pe(s),e,a),!y)return null}else o&&o.length>0&&this.error(2315,e.range,l.identifier.text);let x=this.resolveType(f.typeNode,r,c,s,a);if(!x)return null;if(e.isNullable){if(x.isReference)return x.asNullable();a==0&&this.error(204,l.range,l.identifier.text)}return x}return a==0&&this.error(2304,l.range,l.identifier.text),null}resolveFunctionType(e,r,n,s=null,a=0){let l=e.explicitThisType,o=null;if(l&&(o=this.resolveType(l,r,n,s,a),!o))return null;let u=e.parameters,c=u.length,_=new Array(c),f=0,h=!1;for(let A=0;A<c;++A){let I=u[A];switch(I.parameterKind){case 0:{f=A+1;break}case 2:{assert(A==c-1),h=!0;break}}let E=I.type;if(ke(E))return a==0&&this.error(1110,E.range),null;let k=this.resolveType(E,r,n,s,a);if(!k)return null;if(k==p.void)return a==0&&this.error(214,E.range,k.toString()),null;_[A]=k}let y=e.returnType,x;if(ke(y))a==0&&this.error(1110,y.range),x=p.void;else if(x=this.resolveType(y,r,n,s,a),!x)return null;let b=We.create(this.program,_,x,o,f,h);return e.isNullable?b.type.asNullable():b.type}resolveTupleType(e,r,n,s=null,a=0){let l=e.elements;for(let o=0,u=l.length;o<u;++o)if(!this.resolveType(l[o],r,n,s,a))return null;return a==0&&this.error(100,e.range,"Tuple types"),null}resolveBuiltinNotNullableType(e,r,n=null,s=0){let a=this.ensureOneTypeArgument(e,s);if(!a)return null;let l=this.resolveType(a,null,r,n,s);return l?l.isNullableReference?l.nonNullableType:l:null}resolveTypeName(e,r,n,s=0){let a=null;if(r&&(a=r.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,r,n,s,a=new Map,l=null,o=0){let u=0,c=0;for(let y=0,x=e.length;y<x;++y)e[y].defaultType||++u,++c;let _=r?r.length:0;if(_<u||_>c)return o==0&&this.error(2558,_?le.join(r[0].range,r[_-1].range):l.range,(_<u?u:c).toString(),_.toString()),null;let f=new Array(c),h=pe(a);a.clear();for(let y=0;y<c;++y){let x=y<_?this.resolveType(r[y],n,s,h,o):this.resolveType(assert(e[y].defaultType),n,s,pe(a),o);if(!x)return null;a.set(e[y].name.text,x),f[y]=x}return f}maybeInferCall(e,r,n,s=0){let a=e.typeArguments;if(a)return r.is(65536)?this.resolveFunctionInclTypeArguments(r,a,n.sourceFunction,pe(n.contextualTypeArguments),e,s):(s==0&&this.error(2315,e.expression.range,r.internalName),null);if(r.is(65536)){let l=this.inferGenericTypeArguments(e,r,r.typeParameterNodes,n,s);return l?this.resolveFunction(r,l,pe(n.contextualTypeArguments),s):null}return this.resolveFunction(r,null,new Map,s)}inferGenericTypeArguments(e,r,n,s,a=0){if(!n)return null;let l=pe(s.contextualTypeArguments),o=n.length,u=new Set;for(let b=0;b<o;++b){let A=n[b].name.text;l.set(A,p.auto),u.add(A)}let c=r.functionTypeNode.parameters,_=c.length,f,h;switch(e.kind){case 10:{let b=e;f=b.args,h=b.argumentsRange;break}case 18:{let b=e;f=b.args,h=b.argumentsRange;break}default:return assert(!1),null}let y=f.length;for(let b=0;b<_;++b){let A=b<y?f[b]:c[b].initializer;if(!A){if(c[b].parameterKind==1)continue;return a==0&&(c[b].parameterKind==2?this.error(1140,h.atEnd):this.error(2554,e.range,_.toString(),y.toString())),null}let I=c[b].type;if(c[b].parameterKind==2&&(I=I.typeArguments[0]),I.hasGenericComponent(n)){let E=this.resolveExpression(A,s,p.auto,1);E&&this.propagateInferredGenericTypes(I,E,r,l,u)}}let x=new Array(o);for(let b=0;b<o;++b){let A=n[b],I=A.name.text;if(l.has(I)){let E=assert(l.get(I));if(E!=p.auto){x[b]=E;continue}let k=A.defaultType;if(k){let F=r.parent,R=null;(F.kind==7||F.kind==5)&&(R=F.contextualTypeArguments);let G=this.resolveType(k,null,r,R,a);if(!G)return null;x[b]=G;continue}}if(a==0){let E;switch(e.kind){case 10:E=e.expression.range;break;case 18:E=e.typeName.range;break;default:return assert(!1),null}this.error(1140,E.atEnd)}return null}return x}propagateInferredGenericTypes(e,r,n,s,a){if(e.kind==1){let l=e,o=l.typeArguments;if(o&&o.length>0){let u=r.classReference;if(u){let c=this.resolveTypeName(l.name,null,n);if(!c||c.kind!=6)return;if(u.prototype==c){let _=u.typeArguments;if(_&&_.length==o.length){for(let f=0,h=_.length;f<h;++f)this.propagateInferredGenericTypes(o[f],_[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(r))&&s.set(u,r)}}}else if(e.kind==2){let l=e,o=l.parameters,u=r.signatureReference;if(u){let c=u.parameterTypes;for(let y=0,x=min(c.length,o.length);y<x;++y)this.propagateInferredGenericTypes(o[y].type,c[y],n,s,a);let _=u.returnType;_!=p.void&&this.propagateInferredGenericTypes(l.returnType,_,n,s,a);let f=u.thisType,h=l.explicitThisType;f&&h&&this.propagateInferredGenericTypes(h,f,n,s,a);return}}}getTypeOfElement(e){let r=e.kind;if(r==0&&!this.ensureResolvedLazyGlobal(e,1))return null;if(Vl(r)){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 r=e.getClassOrWrapper(this.program);return r||null}lookupExpression(e,r,n=p.auto,s=0){for(;e.kind==21;)e=e.expression;switch(e.kind){case 8:return this.lookupAssertionExpression(e,r,n,s);case 9:return this.lookupBinaryExpression(e,r,n,s);case 10:return this.lookupCallExpression(e,r,n,s);case 12:return this.lookupCommaExpression(e,r,n,s);case 13:return this.lookupElementAccessExpression(e,r,n,s);case 15:return this.lookupFunctionExpression(e,r,n,s);case 7:case 14:case 19:case 26:return this.lookupIdentifierExpression(e,r,r.sourceFunction,s);case 25:return this.lookupThisExpression(e,r,n,s);case 24:return this.lookupSuperExpression(e,r,n,s);case 16:return this.lookupInstanceOfExpression(e,r,n,s);case 17:return this.lookupLiteralExpression(e,r,n,s);case 18:return this.lookupNewExpression(e,r,n,s);case 22:return this.lookupPropertyAccessExpression(e,r,n,s);case 23:return this.lookupTernaryExpression(e,r,n,s);case 28:return this.lookupUnaryPostfixExpression(e,r,n,s);case 29:return this.lookupUnaryPrefixExpression(e,r,n,s)}return assert(!1),null}resolveExpression(e,r,n=p.auto,s=0){let a=this.resolvingExpressions;if(a.has(e))return null;a.add(e);let l=this.doResolveExpression(e,r,n,s);return a.delete(e),l}doResolveExpression(e,r,n=p.auto,s=0){for(;e.kind==21;)e=e.expression;switch(e.kind){case 8:return this.resolveAssertionExpression(e,r,n,s);case 9:return this.resolveBinaryExpression(e,r,n,s);case 10:return this.resolveCallExpression(e,r,n,s);case 12:return this.resolveCommaExpression(e,r,n,s);case 13:return this.resolveElementAccessExpression(e,r,n,s);case 15:return this.resolveFunctionExpression(e,r,n,s);case 7:case 14:case 19:case 26:return this.resolveIdentifierExpression(e,r,n,r.sourceFunction,s);case 25:return this.resolveThisExpression(e,r,n,s);case 24:return this.resolveSuperExpression(e,r,n,s);case 16:return this.resolveInstanceOfExpression(e,r,n,s);case 17:return this.resolveLiteralExpression(e,r,n,s);case 18:return this.resolveNewExpression(e,r,n,s);case 22:return this.resolvePropertyAccessExpression(e,r,n,s);case 23:return this.resolveTernaryExpression(e,r,n,s);case 28:return this.resolveUnaryPostfixExpression(e,r,n,s);case 29:return this.resolveUnaryPrefixExpression(e,r,n,s)}return assert(!1),null}lookupIdentifierExpression(e,r,n=r.sourceFunction,s=0){switch(e.kind){case 26:case 14:case 19:{let u=this.resolveIdentifierExpression(e,r,p.auto,n,s);return u?this.getElementOfType(u):null}}let a=e.text,l;if(l=r.lookup(a))return this.currentThisExpression=null,this.currentElementExpression=null,l;let o=r.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,r,n=p.auto,s=r.sourceFunction,a=0){switch(e.kind){case 26:case 14:return p.bool;case 19:{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,r,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,r=0){if(e.is(4194304))return!0;let n=e.typeNode,s=n?this.resolveType(n,null,e.parent,null,r):this.resolveExpression(assert(e.initializerNode),e.file.startFunction.flow,p.auto,r);return s?(e.setType(s),!0):!1}lookupPropertyAccessExpression(e,r,n,s=0){let a=e.expression,l=this.lookupExpression(a,r,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 _=c.getClassOrWrapper(this.program);if(!_)return s==0&&this.error(2339,e.property.range,o,u.type.toString()),null;l=_;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 h=assert(u.setterInstance);return this.errorRelated(229,a.range,h.declaration.range,u.name),null}let _=c.signature.returnType,f=_.getClassOrWrapper(this.program);if(!f)return s==0&&this.error(2339,e.property.range,o,_.toString()),null;l=f;break}case 15:{let c=l.parent;assert(c.kind==7);let _=c,f=assert(this.currentElementExpression),h=_.lookupOverload(1);if(!h)return s==0&&this.error(2329,f.range,c.internalName),null;let y=h.signature.returnType,x=y.getClassOrWrapper(this.program);if(!x)return s==0&&this.error(2339,e.property.range,o,y.toString()),null;l=x;break}case 4:{let u=l.shadowType;if(u){if(!u.is(4194304)){let _=this.resolveType(u.typeNode,null,u.parent,null,s);_&&u.setType(_)}let c=u.type.classReference;c&&(l=c.prototype);break}else if(!l.is(65536)&&!l.getMember(o)){let _=this.resolveFunction(l,null,new Map,1);if(_){let f=_.type.getClassOrWrapper(this.program);f&&(l=f)}}break}}switch(l.kind){case 6:case 8:case 7:case 9:{let u=l,c=!1;do{let _=u.getMember(o);if(_){if(_.kind==10){let f=this.resolveProperty(_,s);if(!f)return null;_=f,f.is(32)?this.currentThisExpression=null:this.currentThisExpression=a}else this.currentThisExpression=a;return this.currentElementExpression=null,_}switch(c=!1,u.kind){case 6:case 8:{let h=u.basePrototype;h&&(c=!0,u=h);break}case 7:case 9:{let h=u.base;h&&(c=!0,u=h);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,r,n,s=0){let a=this.lookupPropertyAccessExpression(e,r,n,s);if(!a)return null;let l=this.getTypeOfElement(a);return l||s==0&&this.error(225,e.range),l}lookupElementAccessExpression(e,r,n,s=0){let a=e.expression,l=this.resolveExpression(a,r,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,r,n,s=0){let a=this.lookupElementAccessExpression(e,r,n,s);if(!a)return null;let l=this.getTypeOfElement(a);return l||s==0&&this.error(225,e.range),l}determineIntegerLiteralType(e,r,n){let s=e.value;if(r){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,r,n=p.auto,s=0){switch(e.assertionKind){case 1:case 0:{let a=this.resolveType(assert(e.toType),null,r.sourceFunction,r.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,r,n,s);case 3:return this.error(100,e.range,"Const assertion"),null}return assert(!1),null}resolveAssertionExpression(e,r,n=p.auto,s=0){switch(e.assertionKind){case 1:case 0:return this.resolveType(assert(e.toType),null,r.sourceFunction,r.contextualTypeArguments,s);case 2:{let a=this.resolveExpression(e.expression,r,n,s);return a?a.nonNullableType:null}case 3:{let a=this.lookupExpression(e,r,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,r,n=p.auto,s=0){let a=this.resolveUnaryPrefixExpression(e,r,n,s);if(!a)return null;let l=this.getElementOfType(a);return l||s==0&&this.error(2469,e.range,Ie(e.operator),a.toString()),l}resolveUnaryPrefixExpression(e,r,n=p.auto,s=0){let a=e.operand,l=e.operator;switch(l){case 82:if(a.isLiteralKind(1))return this.determineIntegerLiteralType(a,!0,n);case 81:case 87:case 88:{let o=this.resolveExpression(a,r,n,s);if(!o)return null;let u=o.getClassOrWrapper(this.program);if(u){let c=u.lookupOverload(Re.fromUnaryPrefixToken(l));if(c)return c.signature.returnType}return o.isNumericValue?o:(s==0&&this.error(2469,e.range,Ie(l),o.toString()),null)}case 95:{let o=this.resolveExpression(a,r,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 96:{let o=this.resolveExpression(a,r,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 69:return s==0&&this.error(100,e.range,"Spread operator"),null;case 56:return this.program.stringInstance.type;default:assert(!1)}return null}lookupUnaryPostfixExpression(e,r,n=p.auto,s=0){let a=this.resolveUnaryPostfixExpression(e,r,n,s);if(!a)return null;let l=this.getElementOfType(a);return l||s==0&&this.error(2469,e.range,Ie(e.operator),a.toString()),l}resolveUnaryPostfixExpression(e,r,n=p.auto,s=0){let a=e.operator;switch(a){case 87:case 88:{let l=this.resolveExpression(e.operand,r,n,s);if(!l)return null;let o=l.getClassOrWrapper(this.program);if(o){let u=o.lookupOverload(Re.fromUnaryPostfixToken(a));if(u)return u.signature.returnType}return l.isNumericValue?l:(s==0&&this.error(2469,e.range,Ie(a),l.toString()),null)}}return assert(!1),null}lookupBinaryExpression(e,r,n=p.auto,s=0){let a=this.resolveBinaryExpression(e,r,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,r,n=p.auto,s=0){let a=e.left,l=e.right,o=e.operator;switch(o){case 101:case 102:case 103:case 104:case 105:case 106:case 107:case 108:case 109:case 110:case 111:case 112:case 113:return this.resolveExpression(a,r,n,s);case 72:case 73:case 74:case 75:{let u=this.resolveExpression(a,r,n,s);if(!u)return null;let c=u.getClassOrWrapper(this.program);if(c){let _=c.lookupOverload(Re.fromBinaryToken(o));if(_)return _.signature.returnType}return u.isNumericValue?p.bool:(s==0&&this.error(2469,e.range,Ie(o),u.toString()),null)}case 76:case 77:{let u=this.resolveExpression(a,r,n,s);if(!u)return null;let c=u.getClassOrWrapper(this.program);if(c){let _=c.lookupOverload(Re.fromBinaryToken(o));if(_)return _.signature.returnType}return p.bool}case 78:case 79:return p.bool;case 29:return p.bool;case 81:case 82:case 84:case 85:case 86:case 83:{let u=this.resolveExpression(a,r,n,s);if(!u)return null;let c=u.getClassOrWrapper(this.program);if(c){let h=c.lookupOverload(Re.fromBinaryToken(o));if(h)return h.signature.returnType}let _=this.resolveExpression(l,r,u,s);if(!_)return null;let f=p.commonType(u,_,n);return f||s==0&&this.error(2365,e.range,Ie(o),u.toString(),_.toString()),f}case 89:case 90:case 91:{let u=this.resolveExpression(a,r,n,s);if(!u)return null;let c=u.getClassOrWrapper(this.program);if(c){let _=c.lookupOverload(Re.fromBinaryToken(o));if(_)return _.signature.returnType}return u.isIntegerValue?u:(s==0&&this.error(2469,e.range,Ie(o),u.toString()),null)}case 92:case 93:case 94:{let u=this.resolveExpression(a,r,n,s);if(!u)return null;let c=u.getClassOrWrapper(this.program);if(c){let h=c.lookupOverload(Re.fromBinaryToken(o));if(h)return h.signature.returnType}let _=this.resolveExpression(l,r,n,s);if(!_)return null;let f=p.commonType(u,_,n);return(!f||!f.isIntegerValue)&&s==0&&this.error(2365,e.range,Ie(o),u.toString(),_.toString()),f}case 97:{let u=this.resolveExpression(a,r,n,s);if(!u)return null;let c=this.resolveExpression(l,r,u,s);if(!c)return null;let _=p.commonType(u,c,n);return _||s==0&&this.error(2365,e.range,"&&",u.toString(),c.toString()),_}case 98:{let u=this.resolveExpression(a,r,n,s);if(!u)return null;let c=this.resolveExpression(l,r,u,s);if(!c)return null;let _=p.commonType(u,c,n);return _?u.is(512)&&c.is(512)?_:_.nonNullableType:(s==0&&this.error(2365,e.range,"||",u.toString(),c.toString()),null)}}return assert(!1),null}lookupThisExpression(e,r,n=p.auto,s=0){if(r.isInline){let o=r.lookupLocal(P.this_);if(o)return this.currentThisExpression=null,this.currentElementExpression=null,o}let a=r.lookupLocal(P.this_);if(a||(a=r.lookupLocalInOuter(P.this_)),a)return this.currentThisExpression=null,this.currentElementExpression=null,a;let l=r.sourceFunction.parent;return l?(this.currentThisExpression=null,this.currentElementExpression=null,l):(s==0&&this.error(2332,e.range),null)}resolveThisExpression(e,r,n=p.auto,s=0){let a=this.lookupThisExpression(e,r,n,s);if(!a)return null;let l=this.getTypeOfElement(a);return l||s==0&&this.error(225,e.range),l}lookupSuperExpression(e,r,n=p.auto,s=0){if(r.isInline){let l=r.lookupLocal(P.super_);if(l)return this.currentThisExpression=null,this.currentElementExpression=null,l}let a=r.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,r,n=p.auto,s=0){let a=this.lookupSuperExpression(e,r,n,s);if(!a)return null;let l=this.getTypeOfElement(a);return l||s==0&&this.error(225,e.range),l}lookupLiteralExpression(e,r,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 _=0,f=o;_<f;++_){let h=l[_];if(h)if(h.kind==19&&o>1)++c;else{let y=this.resolveExpression(h,r,u);if(!y)return null;if(u==p.auto)u=y;else if(y!=u){let x=p.commonType(u,y,u);x&&(u=x)}}}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,r,n=p.auto,s=0){let a=this.lookupLiteralExpression(e,r,n,s);if(!a)return null;let l=this.getTypeOfElement(a);return l||s==0&&this.error(225,e.range),l}lookupCallExpression(e,r,n=p.void,s=0){let a=this.resolveCallExpression(e,r,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,r,n=p.void,s=0){let a=e.expression,l=this.lookupExpression(a,r,n,s);if(!l)return null;switch(l.kind){case 4:{let o=l;if(o.internalName==d.unchecked&&e.args.length>0)return this.resolveExpression(e.args[0],r,n,s);let u=this.maybeInferCall(e,o,r,s);if(!u)return null;l=u}case 5:return l.signature.returnType;case 10:{let o=this.resolveProperty(l,s);if(!o)return null;l=o}default:{if(!Vl(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}lookupCommaExpression(e,r,n=p.auto,s=0){let a=e.expressions;return this.lookupExpression(a[assert(a.length)-1],r,n,s)}resolveCommaExpression(e,r,n=p.auto,s=0){let a=e.expressions;return this.resolveExpression(a[assert(a.length)-1],r,n,s)}lookupInstanceOfExpression(e,r,n=p.auto,s=0){return assert(p.bool.getClassOrWrapper(this.program))}resolveInstanceOfExpression(e,r,n=p.auto,s=0){return p.bool}lookupTernaryExpression(e,r,n,s=0){let a=this.resolveTernaryExpression(e,r,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,r,n,s=0){let a=this.resolveExpression(e.ifThen,r,n,s);if(!a)return null;let l=this.resolveExpression(e.ifElse,r,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,r,n,s=0){let a=this.resolveTypeName(e.typeName,r,r.sourceFunction,s);return a?a.kind==6?this.resolveClassInclTypeArguments(a,e.typeArguments,r,r.sourceFunction,pe(r.contextualTypeArguments),e,s):(s==0&&this.error(2351,e.range),null):null}resolveNewExpression(e,r,n,s=0){let a=this.lookupNewExpression(e,r,n,s);if(!a)return null;let l=this.getTypeOfElement(a);return l||s==0&&this.error(225,e.range),l}lookupFunctionExpression(e,r,n,s=0){let a=this.resolveFunctionExpression(e,r,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,r,n,s=0){let a=e.declaration,l=a.signature,o=a.body,u=this.resolveType(l,null,r.sourceFunction,r.contextualTypeArguments,s);if(u&&a.arrowKind!=0&&o&&o.kind==39&&ke(l.returnType)){let c=o.expression,_=assert(u.getSignature()),f=Dt.createDefault(r.sourceFunction),h=l.parameters;assert(_.parameterTypes.length==h.length);for(let x=0,b=h.length;x<b;x++){let A=h[x],I=_.parameterTypes[x];f.addScopedDummyLocal(A.name.text,I,A)}let y=this.resolveExpression(c,f,n,s);y&&(u.signatureReference=We.create(this.program,_.parameterTypes,y,_.thisType,_.requiredParameters,_.hasRest))}return u}resolveFunction(e,r,n=new Map,s=0){let a=null,l=r?Ol(r):"";if(e.is(262144)){a=assert(e.getBoundClassOrInterface());let R=e.getResolvedInstance(l);if(R)return R;let G=a.typeArguments;if(G){let U=assert(a.prototype.typeParameterNodes),z=U.length;assert(z==U.length);for(let W=0;W<z;++W){let q=U[W].name.text;n.set(q,G[W])}}}else{assert(!e.isBound);let R=e.getResolvedInstance(l);if(R)return R}let o=e.functionTypeNode,u=e.typeParameterNodes,c;if(r&&(c=r.length)>0){assert(u&&c==u.length);for(let R=0;R<c;++R)n.set(u[R].name.text,r[R])}else assert(!u||u.length==0);let _=null,f=o.explicitThisType;if(f){if(_=this.resolveType(f,null,e.parent,n,s),!_)return null;n.set(P.this_,_)}else a&&(_=a.type,n.set(P.this_,_));let h=o.parameters,y=h.length,x=new Array(y),b=0,A=!1;for(let R=0;R<y;++R){let G=h[R];G.parameterKind==0?b=R+1:G.parameterKind==2&&(A=!0);let U=G.type;if(ke(U))return s==0&&this.error(1110,U.range),null;let z=this.resolveType(U,null,e.parent,n,s);if(!z)return null;if(z==p.void)return s==0&&this.error(1110,U.range),null;x[R]=z}let I;if(e.is(4096))I=p.void;else if(e.is(524288))I=a.type;else{let R=o.returnType;if(ke(R))return s==0&&this.error(1110,R.range),null;let G=this.resolveType(R,null,e.parent,n,s);if(!G)return null;I=G}let E=We.create(this.program,x,I,_,b,A),k=e.name;l.length&&(k+=`<${l}>`);let F=new bt(k,e,r,E,n);if(e.setResolvedInstance(l,F),a){let R=F.declaration.name.text,G=a.base;if(G){let U=G.getMember(R);if(U){this.discoveredOverride=!0;let z=!0;if(F.isAny(6144)){if(U.kind==10){let W=this.resolveProperty(U,s);if(W)if(F.is(2048)){let q=W.getterInstance;q&&F.signature.isAssignableTo(q.signature,!0)&&(z=!1)}else{assert(F.is(4096));let q=W.setterInstance;q&&F.signature.isAssignableTo(q.signature,!0)&&(z=!1)}}}else if(F.is(524288))z=!1;else if(U.kind==4){let W=U,q=W.typeParameterNodes,ee=q!=null&&q.length>0,Y=r!=null&&r.length>0;if(ee!=Y)this.errorRelated(242,F.identifierAndSignatureRange,U.identifierAndSignatureRange,R),z=!1;else{let te=this.resolveFunction(W,r,new Map,1);te&&F.signature.isAssignableTo(te.signature,!0)&&(z=!1)}}z&&this.errorRelated(2394,F.identifierAndSignatureRange,U.identifierAndSignatureRange)}}}return F}resolveFunctionInclTypeArguments(e,r,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 _=assert(u.prototype.typeParameterNodes),f=c.length;assert(f==_.length);for(let h=0;h<f;++h)s.set(_[h].name.text,c[h])}}if(o=this.resolveTypeArguments(assert(e.typeParameterNodes),r,null,n,s,a,l),!o)return null}else if(r&&r.length>0)return l==0&&this.error(2315,a.range,e.internalName),null;return this.resolveFunction(e,o,s,l)}resolveOverrides(e){let r=e.prototype.unboundOverrides;if(!r)return null;let n=assert(e.getBoundClassOrInterface()),s=new Set;for(let a=Set_values(r),l=0,o=a.length;l<o;++l){let u=a[l];assert(!u.isBound);let c=u.parent,_;if(assert(c.kind==6||c.kind==8),_=c.instances,!!_)for(let f=Map_values(_),h=0,y=f.length;h<y;++h){let x=f[h];if(!x.isAssignableTo(n))continue;let b=null;if(e.isAny(6144)){let A=e.declaration.name.text,I=assert(x.getMember(A));assert(I.kind==10);let E=this.resolveProperty(I);if(!E)continue;e.is(2048)?b=E.getterInstance:(assert(e.is(4096)),b=E.setterInstance)}else{let A=x.getMember(u.name);if(A){assert(A.kind==4);let I=A;I.is(65536)==e.is(65536)&&(b=this.resolveFunction(I,e.typeArguments))}}b&&s.add(b)}}return Set_values(s)}resolveClass(e,r,n=new Map,s=0){let a=r?Ol(r):"",l=e.getResolvedInstance(a);if(l)return l;let o=e.name;a.length&&(o+=`<${a}>`),e.kind==8?l=new Yn(o,e,r):l=new ir(o,e,r),e.setResolvedInstance(a,l);let u=this.resolveClassPending;if(u.add(l),r){let h=assert(e.typeParameterNodes),y=h.length,x=r.length;assert(x==y);for(let b=0;b<x;++b)n.set(h[b].name.text,r[b])}else{let h=e.typeParameterNodes;assert(!(h&&h.length>0))}l.contextualTypeArguments=n;let c=!1,_=e.basePrototype;if(_){let h=_;do{if(h==e)return this.error(2506,e.identifierNode.range,e.internalName),null;h=h.basePrototype}while(h);let y=assert(e.extendsNode),x=this.resolveClassInclTypeArguments(_,y.typeArguments,null,e.parent,pe(n),y,s);if(!x)return null;l.setBase(x),u.has(x)&&(c=!0)}else e.implicitlyExtendsObject&&l.setBase(this.program.objectInstance);let f=e.interfacePrototypes;if(f)for(let h=0,y=f.length;h<y;++h){let x=f[h],b=x;do{if(b==e)return this.error(2506,e.identifierNode.range,e.internalName),null;b=b.basePrototype}while(b);let A=assert(e.implementsNodes[h]),I=this.resolveClassInclTypeArguments(x,A.typeArguments,null,e.parent,pe(n),A,s);if(!I)return null;assert(I.kind==9),l.addInterface(I),u.has(I)&&(c=!0)}return c||this.finishResolveClass(l,s),l}checkOverrideVisibility(e,r,n,s,a,l){let o=!1;return r.is(524288)?(assert(s.is(524288)),s.is(512)&&(l==0&&this.errorRelated(2675,r.identifierNode.range,s.identifierNode.range,a.internalName),o=!0)):r.is(512)?s.is(512)?(l==0&&this.errorRelated(2442,r.identifierNode.range,s.identifierNode.range,e),o=!0):(l==0&&this.errorRelated(2325,r.identifierNode.range,s.identifierNode.range,e,n.internalName,a.internalName),o=!0):r.is(1024)?s.is(512)?(l==0&&this.errorRelated(2325,r.identifierNode.range,s.identifierNode.range,e,a.internalName,n.internalName),o=!0):s.isPublic?(l==0&&this.errorRelated(2444,r.identifierNode.range,s.identifierNode.range,e,n.internalName,a.internalName),o=!0):assert(s.is(1024)):r.isPublic&&(s.is(512)?(l==0&&this.errorRelated(2325,r.identifierNode.range,s.identifierNode.range,e,a.internalName,n.internalName),o=!0):s.is(1024)?(l==0&&this.errorRelated(2444,r.identifierNode.range,s.identifierNode.range,e,a.internalName,n.internalName),o=!0):assert(s.isPublic)),!o}finishResolveClass(e,r){let n=e.members;n||(e.members=n=new Map);let s=this.resolveClassPending,a=new Map,l=e.interfaces;if(l)for(let h=Set_values(l),y=0,x=h.length;y<x;++y){let b=h[y];assert(!s.has(b));let A=b.members;if(A)for(let I=Map_keys(A),E=0,k=I.length;E<k;++E){let F=unchecked(I[E]),R=assert(A.get(F)),G=e.getMember(F);G&&!this.checkOverrideVisibility(F,G,e,R,b,r)||(n.set(F,R),a.set(F,R))}}let o=0,u=e.base;if(u){let h=e.prototype.implicitlyExtendsObject;assert(!s.has(u));let y=u.members;if(y)for(let x=Map_keys(y),b=0,A=x.length;b<A;++b){let I=unchecked(x[b]),E=assert(y.get(I));if(h&&E.is(32))continue;let k=e.getMember(I);k&&!this.checkOverrideVisibility(I,k,e,E,u,r)||(n.set(I,E),E.is(128)?a.set(I,E):a.delete(I))}o=u.nextMemoryOffset}let c=e.prototype,_=c.instanceMembers;if(_)for(let h=Map_values(_),y=0,x=h.length;y<x;++y){let b=unchecked(h[y]),A=b.name;if(u){let I=u.getMember(A);I&&this.checkOverrideVisibility(A,b,e,I,u,r)}switch(b.kind){case 4:{let I=b.toBound(e);e.add(I.name,I);break}case 10:{let I=b.toBound(e);if(I.isField){let E=this.resolveProperty(I,r);if(E){let k=E.type;if(k==p.void)break;if(k.isExternalReference){this.error(100,assert(I.typeNode).range,"Reference typed fields");break}let F=!0;if(u){let G=u.getMember(I.name);if(G&&G.kind==10){let U=G,z=this.resolveProperty(U,r);if(z&&z.isField){if(z.type!=E.type){this.errorRelated(2416,E.identifierNode.range,z.identifierNode.range,E.name,e.internalName,u.internalName);break}E.memoryOffset=z.memoryOffset,F=!1}}}if(F){let G=k.byteSize;assert(Pt(G));let U=G-1;o&U&&(o=(o|U)+1),E.memoryOffset=o,o+=G}I.instance=E,e.add(I.name,I);let R=assert(I.fieldDeclaration).type;R&&this.program.checkTypeSupported(k,R)}}else e.add(I.name,I);break}default:assert(!1)}!b.is(128)&&!b.is(65536)&&a.delete(A)}if(e.kind!=9){if(!e.is(128)&&a.size>0)for(let h=Map_keys(a),y=0,x=h.length;y<x;++y){let b=h[y],A=assert(a.get(b));this.errorRelated(2515,e.identifierNode.range,A.identifierNode.range,e.internalName,b,A.parent.internalName)}e.nextMemoryOffset=o;{let h=e.getMember(P.constructor);if(h&&h.parent==e){assert(h.kind==4);let y=this.resolveFunction(h,null,assert(e.contextualTypeArguments),r);y&&(e.constructorInstance=y)}}}let f=c.operatorOverloadPrototypes;for(let h=Map_keys(f),y=0,x=h.length;y<x;++y){let b=unchecked(h[y]),A=assert(f.get(b));if(assert(b!=0),A.is(65536))continue;let I;if(A.is(262144)){let k=A.toBound(e);I=this.resolveFunction(k,null,new Map,r)}else I=this.resolveFunction(A,null,new Map,r);if(!I)continue;let E=e.operatorOverloads;if(E||(e.operatorOverloads=E=new Map),I.is(262144))switch(b){case 27:case 28:case 29:case 30:{let k=I.signature.returnType;k.isAssignableTo(e.type)||r==0&&this.error(2322,A.functionTypeNode.returnType.range,k.toString(),e.type.toString())}}if(E.has(b))r==0&&this.error(213,I.declaration.range);else if(E.set(b,I),b==1||b==2){let k=e.indexSignature;k||(e.indexSignature=k=new Zn(e)),b==1&&k.setType(I.signature.returnType)}}assert(s.has(e)),s.delete(e);for(let h=Set_values(s),y=0,x=h.length;y<x;++y){let b=h[y],A=b.base==e,I=b.interfaces;if(I){let E=!1;for(let k=Set_values(I),F=0,R=k.length;F<R;++F){let G=k[F];G==e?A=!0:s.has(G)&&(E=!0)}if(E)continue}A&&this.finishResolveClass(b,r)}}resolveClassInclTypeArguments(e,r,n,s,a,l,o=0){let u=null;if(e.is(65536)){let c=null;for(let _=e;_&&!c;_=_.basePrototype)c=_.constructorPrototype;if(!r&&c&&n&&a.size==0?u=this.inferGenericTypeArguments(l,c,e.typeParameterNodes,n):u=this.resolveTypeArguments(assert(e.typeParameterNodes),r,n,s,a,l,o),!u)return null}else if(r&&r.length>0)return o==0&&this.error(2315,l.range,e.internalName),null;return this.resolveClass(e,u,a,o)}resolveProperty(e,r=0){let n=e.instance;if(n)return n;e.instance=n=new Jn(e,e.parent);let s=e.getterPrototype;if(s){let l=this.resolveFunction(s,null,new Map,r);l&&(n.getterInstance=l,n.setType(l.signature.returnType))}let a=e.setterPrototype;if(a){let l=this.resolveFunction(a,null,new Map,r);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,r=0){let n=e.typeArguments,s=0;return!n||(s=n.length)!=1?(r==0&&this.error(2558,e.range,"1",s.toString()),null):n[0]}};function eg(t){switch(t){case"u8":return"U8";case"u16":return"U16";case"u32":return"U32";case"u64":return"U64";case"i8":return"I8";case"i16":return"I16";case"i32":return"I32";case"i64":return"I64";case"f32":return"F32";case"f64":return"F64";case"bool":case"boolean":return"Bool";case"string":return"String";case"u128":return"U128";case"i128":return"I128";case"u256":return"U256";case"i256":return"I256";default:return""}}function Jy(t,i){let e=eg(t);return e.length!=0?"__w.write"+e+"("+i+");":i+".encodeInto(__w);"}function Zy(t){let i=eg(t);return i.length!=0?"__r.read"+i+"()":t+".decodeFrom(__r)"}function M2(t){let i=2166136261;for(let e=0,r=t.length;e<r;++e)i=Math.imul(i^t.charCodeAt(e),16777619)>>>0;return i>>>0}function Yy(t,i){switch(t){case"bool":case"boolean":case"u8":case"u16":case"u32":case"i8":case"i16":case"i32":case"f32":case"f64":case"string":return"JSON.of<"+t+">("+i+")";case"u64":case"i64":case"u128":case"i128":case"u256":case"i256":return"JSON.of<string>("+i+".toString())";default:return i+".toJSON()"}}function $y(t,i){switch(t){case"bool":case"boolean":return i+".asBool()";case"u8":case"u16":case"u32":case"u64":return"<"+t+">"+i+".asU64()";case"i8":case"i16":case"i32":case"i64":return"<"+t+">"+i+".asI64()";case"f32":case"f64":return"<"+t+">"+i+".asF64()";case"string":return i+".asString()";case"u128":return"("+i+".isArray() ? new u128("+i+".at(0).asU64(),"+i+".at(1).asU64()) : u128.fromString("+i+".asString()))";case"i128":return"("+i+".isArray() ? new i128("+i+".at(0).asU64(),"+i+".at(1).asI64()) : i128.fromString("+i+".asString()))";case"u256":return"("+i+".isArray() ? new u256("+i+".at(0).asU64(),"+i+".at(1).asU64(),"+i+".at(2).asU64(),"+i+".at(3).asU64()) : u256.fromString("+i+".asString()))";case"i256":return"("+i+".isArray() ? new i256("+i+".at(0).asI64(),"+i+".at(1).asI64(),"+i+".at(2).asI64(),"+i+".at(3).asI64()) : i256.fromString("+i+".asString()))";default:return t+".fromJSON("+i+")"}}var es=class{constructor(i,e){this.source=i;this.reportNode=e}};function G2(t,i){switch(t){case"Documents":return i=="get"||i=="require"?"Get":i=="getMany"?"GetMany":i=="exists"?"Exists":i=="create"?"Create":i=="patch"?"Patch":i=="delete"?"Delete":i=="getDelete"?"GetDelete":"";case"View":return i=="get"||i=="require"?"ViewGet":i=="getMany"?"GetMany":i=="publish"?"ViewPublish":"";case"Unique":return i=="lookup"?"UniqueLookup":i=="claim"?"UniqueClaim":i=="release"?"UniqueRelease":"";case"Counter":return i=="get"?"CounterGet":i=="add"?"CounterAdd":"";case"Events":return i=="append"?"Append":i=="latest"?"Latest":"";case"Membership":return i=="contains"?"MembershipContains":i=="list"?"MembershipList":i=="add"?"MembershipAdd":i=="remove"?"MembershipRemove":"";case"Capacity":return i=="available"?"CapacityAvailable":i=="reserve"?"CapacityReserve":i=="confirm"?"CapacityConfirm":i=="cancel"?"CapacityCancel":i=="setTotal"?"CapacitySetTotal":"";default:return""}}function Qp(t){return t=="Get"||t=="GetMany"||t=="Exists"||t=="ViewGet"||t=="CounterGet"||t=="UniqueLookup"||t=="Latest"||t=="MembershipContains"||t=="MembershipList"||t=="CapacityAvailable"}function z2(t,i){switch(t){case 33:return Qp(i);case 34:return Qp(i)||i=="Create"||i=="Patch"||i=="Delete"||i=="GetDelete"||i=="Append"||i=="CounterAdd"||i=="UniqueClaim"||i=="UniqueRelease"||i=="MembershipAdd"||i=="MembershipRemove"||i=="CapacityReserve"||i=="CapacityConfirm"||i=="CapacityCancel";case 36:return Qp(i)||i=="ViewPublish"||i=="Append"||i=="CounterAdd";case 35:return!0;case 37:return!1;default:return!0}}function D2(t){switch(t){case 33:return"query";case 34:return"action";case 35:return"job";case 36:return"derive";case 37:return"admin";default:return"?"}}function U2(t){switch(t){case 33:return"a query is read-only";case 34:return"an action cannot publish views";case 36:return"a derive may only read, publish views, append events, or add to counters";case 37:return"an admin has no request-path data access";default:return"not permitted in this kind"}}var ts=class extends Ke{constructor(e=null,r=[]){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.restImportedSources=new Set;this.ratelimitRouteCounter=0;this.currentModuleName=null;this.options=null;this.tryParseSignatureIsSignature=!1;this.parseParametersThis=null;this.sources=r}parseFile(e,r,n){let s=Sr(r),a=Ln(s);if(this.donelog.has(a))return;if(this.donelog.add(a),this.seenlog.add(a),e==null){let c=this.dependees,_=null;c.has(a)&&(_=assert(c.get(a))),this.error(6054,_?_.reportNode.range:null,r);return}let l=new ce(n?1:r.startsWith(ct)?r.indexOf(it,ct.length)<0?3:2:0,s,e);this.sources.push(l),this.currentSource=l,this.currentModuleName=null;let o=new wr(l,this.diagnostics);o.onComment=this.onComment;let u=l.statements;for(;!o.skip(121);){let c=this.parseTopLevelStatement(o,null);c?u.push(c):this.skipStatement(o)}}parseTopLevelStatement(e,r=null){let n=r?r.flags&32768:0,s=-1,a=null;for(;e.skip(114);){s<0&&(s=e.tokenPos);let b=this.parseDecorator(e);if(!b){this.skipStatement(e);continue}a?a.push(b):a=[b]}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 _=0,f=0,h=r!=null&&r.is(32768);e.skip(12)?h?this.error(1038,e.range()):(s<0&&(s=e.tokenPos),_=s,f=e.pos,n|=32772):h&&(n|=32768);let y=null,x=e.peek();switch(s<0&&(s=e.nextTokenPos),x){case 8:{e.next(),n|=8,e.skip(17)?y=this.parseEnum(e,n,a,s):y=this.parseVariable(e,n,a,s),a=null;break}case 34:n|=16;case 57:{e.next(),y=this.parseVariable(e,n,a,s),a=null;break}case 17:{e.next(),y=this.parseEnum(e,n,a,s),a=null;break}case 24:{e.next(),y=this.parseFunction(e,n,a,s),a=null;break}case 0:{let b=e.mark();e.next();let A=e.tokenPos,I=e.pos;if(e.peekOnNewLine()){e.reset(b),y=this.parseStatement(e,!0);break}let E=e.peek();if(E!=7){E==31&&this.error(1242,e.range(A,I)),e.reset(b),y=this.parseStatement(e,!0);break}else e.discard(b);n|=128}case 7:case 31:{e.next(),y=this.parseClassOrInterface(e,n,a,s),a=null;break}case 36:{let b=e.mark();e.next(),e.peek(1)==115?(e.discard(b),y=this.parseNamespace(e,n,a,s),a=null):(e.reset(b),y=this.parseStatement(e,!0));break}case 28:{e.next(),n|=1,n&2?y=this.parseExportImport(e,s):y=this.parseImport(e);break}case 55:{let b=e.mark();e.next(),e.peek(1)==115?(e.discard(b),y=this.parseTypeDeclaration(e,n,a,s),a=null):(e.reset(b),y=this.parseStatement(e,!0));break}case 35:{let b=e.mark();e.next(),e.peek()==116&&!e.peekOnNewLine()?(e.discard(b),y=this.parseModuleDeclaration(e,n)):(e.reset(b),y=this.parseStatement(e,!0));break}default:{n&2?c&&e.skipIdentifier(1)?(f&&this.error(1120,e.range(_,f)),y=this.parseExportDefaultAlias(e,s,u,c),u=c=0):y=this.parseExport(e,s,(n&4)!=0):(o&&this.error(1042,e.range(l,o),"export"),f&&this.error(1042,e.range(_,f),"declare"),r?this.error(2695,e.range(s)):y=this.parseStatement(e,!0));break}}if(a)for(let b=0,A=a.length;b<A;++b)this.error(1206,a[b].range);if(c&&y!=null)switch(y.kind){case 53:case 56:case 52:case 58:case 60:return M.createExportDefaultStatement(y,e.range(s,e.pos));default:this.error(1042,e.range(u,c),"default")}return y}nextFile(){let e=this.backlog;return e.length?assert(e.shift()):null}getDependee(e){let r=this.dependees;return r.has(e)?assert(r.get(e)).source.internalPath:null}finish(){if(this.backlog.length)throw new Error("backlog is not empty");this.checkToilDbKinds(),this.backlog=[],this.seenlog.clear(),this.donelog.clear(),this.dependees.clear(),this.restImportedSources.clear()}checkToilDbKinds(){let e=new Map;for(let r=0,n=this.sources.length;r<n;++r)this.collectDbCollections(this.sources[r].statements,e);if(e.size)for(let r=0,n=this.sources.length;r<n;++r)this.checkDbFunctions(this.sources[r].statements,e)}collectDbCollections(e,r){for(let n=0,s=e.length;n<s;++n){let a=e[n];if(a.kind==52){let l=a;if(this.hasDecoratorKind(l.decorators,31)){let o=new Map,u=l.members;for(let c=0,_=u.length;c<_;++c){let f=u[c];if(f.kind!=55)continue;let h=f;if(!this.hasDecoratorKind(h.decorators,32))continue;let y=h.type;y==null||!(y instanceof de)||o.set(h.name.text,y.name.identifier.text)}o.size&&r.set(l.name.text,o)}}else a.kind==60&&this.collectDbCollections(a.members,r)}}checkDbFunctions(e,r){for(let n=0,s=e.length;n<s;++n){let a=e[n];if(a.kind==56||a.kind==59){let l=a,o=this.dbFunctionKind(l.decorators),u=l.body;o!=-1&&u!=null&&this.walkDbStmt(u,o,r)}else a.kind==60?this.checkDbFunctions(a.members,r):a.kind==52&&this.checkDbFunctions(a.members,r)}}dbFunctionKind(e){if(e==null)return-1;for(let r=0,n=e.length;r<n;++r){let s=e[r].decoratorKind;if(s==33||s==34||s==35||s==36||s==37)return s}return-1}walkDbStmt(e,r,n){switch(e.kind){case 31:{let s=e.statements;for(let a=0,l=s.length;a<l;++a)this.walkDbStmt(s[a],r,n);break}case 39:this.walkDbExpr(e.expression,r,n);break;case 44:{let s=e.value;s&&this.walkDbExpr(s,r,n);break}case 48:{let s=e.declarations;for(let a=0,l=s.length;a<l;++a){let o=s[a].initializer;o&&this.walkDbExpr(o,r,n)}break}case 42:{let s=e;this.walkDbExpr(s.condition,r,n),this.walkDbStmt(s.ifTrue,r,n),s.ifFalse&&this.walkDbStmt(s.ifFalse,r,n);break}case 40:{let s=e;s.initializer&&this.walkDbStmt(s.initializer,r,n),s.condition&&this.walkDbExpr(s.condition,r,n),s.incrementor&&this.walkDbExpr(s.incrementor,r,n),this.walkDbStmt(s.body,r,n);break}case 41:{let s=e;this.walkDbExpr(s.iterable,r,n),this.walkDbStmt(s.body,r,n);break}case 50:{let s=e;this.walkDbExpr(s.condition,r,n),this.walkDbStmt(s.body,r,n);break}case 34:{let s=e;this.walkDbStmt(s.body,r,n),this.walkDbExpr(s.condition,r,n);break}case 45:{let s=e;this.walkDbExpr(s.condition,r,n);let a=s.cases;for(let l=0,o=a.length;l<o;++l){let u=a[l].statements;for(let c=0,_=u.length;c<_;++c)this.walkDbStmt(u[c],r,n)}break}case 46:this.walkDbExpr(e.value,r,n);break;case 47:{let s=e;this.walkDbStmtList(s.bodyStatements,r,n),s.catchStatements&&this.walkDbStmtList(s.catchStatements,r,n),s.finallyStatements&&this.walkDbStmtList(s.finallyStatements,r,n);break}default:break}}walkDbStmtList(e,r,n){for(let s=0,a=e.length;s<a;++s)this.walkDbStmt(e[s],r,n)}walkDbExpr(e,r,n){switch(e.kind){case 10:{let s=e;this.checkDbCall(s,r,n),this.walkDbExpr(s.expression,r,n);let a=s.args;for(let l=0,o=a.length;l<o;++l)this.walkDbExpr(a[l],r,n);break}case 18:{let s=e.args;for(let a=0,l=s.length;a<l;++a)this.walkDbExpr(s[a],r,n);break}case 22:this.walkDbExpr(e.expression,r,n);break;case 13:{let s=e;this.walkDbExpr(s.expression,r,n),this.walkDbExpr(s.elementExpression,r,n);break}case 9:{let s=e;this.walkDbExpr(s.left,r,n),this.walkDbExpr(s.right,r,n);break}case 29:this.walkDbExpr(e.operand,r,n);break;case 28:this.walkDbExpr(e.operand,r,n);break;case 21:this.walkDbExpr(e.expression,r,n);break;case 8:this.walkDbExpr(e.expression,r,n);break;case 16:this.walkDbExpr(e.expression,r,n);break;case 23:{let s=e;this.walkDbExpr(s.condition,r,n),this.walkDbExpr(s.ifThen,r,n),this.walkDbExpr(s.ifElse,r,n);break}case 12:{let s=e.expressions;for(let a=0,l=s.length;a<l;++a)this.walkDbExpr(s[a],r,n);break}default:break}}checkDbCall(e,r,n){let s=e.expression;if(s.kind!=22)return;let a=s,l=a.expression;if(l.kind!=22)return;let o=l,u=o.expression;if(u.kind!=7)return;let c=n.get(u.text);if(c==null)return;let _=c.get(o.property.text);if(_==null)return;let f=a.property.text,h=G2(_,f);h.length!=0&&(z2(r,h)||this.error(102,a.property.range,"ToilDB: a @"+D2(r)+" function may not call '."+f+"' on '"+u.text+"."+o.property.text+"' ("+U2(r)+")"))}parseTypeName(e){let r=M.createSimpleTypeName(e.readIdentifier(),e.range()),n=r;for(;e.skip(68);)if(e.skip(115)){let s=M.createSimpleTypeName(e.readIdentifier(),e.range());n.next=s,n=s}else return this.error(1003,e.range(e.pos)),null;return r}parseType(e,r=!0,n=!1){let s=e.next(),a=e.tokenPos,l;if(s==64){let o=e.skip(64),u=this.tryParseFunctionType(e);if(u){if(o&&!e.skip(65))return n||this.error(1005,e.range(),")"),null;l=u}else{if(o||this.tryParseSignatureIsSignature)return n||this.error(1012,e.range()),null;if(r){let c=this.parseType(e,!1,n);if(!c)return null;if(!e.skip(65))return n||this.error(1005,e.range(e.pos),")"),null;l=c,l.range.start=a,l.range.end=e.pos}else return n||this.error(1012,e.range()),null}}else if(s==45){let o=this.parseType(e,r,n);if(!o)return null;l=o,l.range.start=a}else if(s==66&&this.options&&this.options.hasFeature(512)){let o=[],u=[],c=!1;if(!e.skip(67)){do{let _=null,f=e.mark();if(e.skip(115)){let y=e.readIdentifier(),x=e.range();e.skip(100)?(_=M.createIdentifierExpression(y,x),c=!0):e.reset(f)}let h=this.parseType(e,!0,n);if(!h)return null;o.push(h),u.push(_)}while(e.skip(71));if(!e.skip(67))return n||this.error(1005,e.range(e.pos),"]"),null}l=M.createTupleType(o,c?u:null,!1,e.range(a,e.pos))}else if(s==58)l=M.createNamedType(M.createSimpleTypeName("void",e.range()),[],!1,e.range(a,e.pos));else if(s==51)l=M.createNamedType(M.createSimpleTypeName("this",e.range()),[],!1,e.range(a,e.pos));else if(s==53||s==20)l=M.createNamedType(M.createSimpleTypeName("bool",e.range()),[],!1,e.range(a,e.pos));else if(s==38)l=M.createNamedType(M.createSimpleTypeName("null",e.range()),[],!1,e.range(a,e.pos));else if(s==116)e.readString(),l=M.createNamedType(M.createSimpleTypeName("string",e.range()),[],!1,e.range(a,e.pos));else if(s==115){let o=this.parseTypeName(e);if(!o)return null;let u=null;if(e.skip(72)){do{let c=this.parseType(e,!0,n);if(!c)return null;u?u.push(c):u=[c]}while(e.skip(71));if(!e.skip(73))return n||this.error(1005,e.range(e.pos),">"),null}u||(u=[]),l=M.createNamedType(o,u,!1,e.range(a,e.pos))}else return n||this.error(1110,e.range()),null;for(;e.skip(93);){let o=this.parseType(e,!0,!1);if(!o)return null;let u=l.kind==1&&l.isNull,c=o.kind==1&&o.isNull;if(!u&&!c)return n||this.error(100,o.range,"union types"),null;c?(l.isNullable=!0,l.range.end=o.range.end):u?(o.range.start=l.range.start,o.isNullable=!0,l=o):l.range.end=o.range.end}for(;e.skip(66);){let o=e.tokenPos;if(!e.skip(67))return n||this.error(1005,e.range(),"]"),null;let u=e.range(o,e.pos),c=!1;if(e.skip(93))if(e.skip(38))c=!0;else return n||this.error(100,e.range(),"union types"),null;if(l=M.createNamedType(M.createSimpleTypeName("Array",u),[l],c,e.range(a,e.pos)),c)break}return l}tryParseFunctionType(e){let r=e.mark(),n=e.tokenPos,s=null,a=null,l=!1,o=null,u=0;if(e.skip(65))l=!0,e.discard(r),s=[];else{l=!1;do{let _=-1,f=0;if(e.skip(69)&&(_=e.tokenPos,l=!0,e.discard(r),f=2),e.skip(51))if(_<0&&(_=e.tokenPos),e.skip(100)){l=!0,e.discard(r);let h=this.parseType(e,!1);if(!h)return null;if(h.kind!=1)return this.error(1003,h.range),this.tryParseSignatureIsSignature=!0,null;a=h}else return e.reset(r),this.tryParseSignatureIsSignature=!1,null;else if(e.skipIdentifier()){_<0&&(_=e.tokenPos);let h=M.createIdentifierExpression(e.readIdentifier(),e.range(e.tokenPos,e.pos));if(e.skip(99)&&(l=!0,e.discard(r),f==2?this.error(1047,e.range()):f=1),e.skip(100)){l=!0,e.discard(r);let y=this.parseType(e);if(!y)return this.tryParseSignatureIsSignature=l,null;let x=M.createParameter(f,h,y,null,e.range(_,e.pos));s?s.push(x):s=[x]}else if(l||e.peek()==71&&(l=!0,e.discard(r)),l){let y=M.createParameter(f,h,M.createOmittedType(e.range(e.pos)),null,e.range(_,e.pos));s?s.push(y):s=[y],this.error(1110,y.type.range)}else s||(o=h,u=f)}else{if(l){if(e.peek()==65)break;this.error(1003,e.range())}else e.reset(r);return this.tryParseSignatureIsSignature=l,null}}while(e.skip(71));if(!e.skip(65))return l?this.error(1005,e.range(),")"):e.reset(r),this.tryParseSignatureIsSignature=l,null}let c;if(e.skip(80)){if(!l&&(l=!0,e.discard(r),o)){let _=M.createParameter(u,o,M.createOmittedType(o.range.atEnd),null,o.range);s?s.push(_):s=[_],this.error(1110,_.type.range)}if(c=this.parseType(e),!c)return this.tryParseSignatureIsSignature=l,null}else return l?this.error(1005,e.range(),"=>"):e.reset(r),this.tryParseSignatureIsSignature=l,null;return this.tryParseSignatureIsSignature=!0,s||(s=[]),M.createFunctionType(s,c,a,!1,e.range(n,e.pos))}parseDecorator(e){let r=e.tokenPos;if(e.skipIdentifier()){let n=e.readIdentifier(),s=M.createIdentifierExpression(n,e.range(r,e.pos));for(;e.skip(68);)if(e.skipIdentifier(1))n=e.readIdentifier(),s=M.createPropertyAccessExpression(s,M.createIdentifierExpression(n,e.range()),e.range(r,e.pos));else return this.error(1003,e.range()),null;let a;if(e.skip(64)){if(a=this.parseArguments(e),a)return M.createDecorator(s,a,e.range(r,e.pos))}else return M.createDecorator(s,null,e.range(r,e.pos))}else this.error(1003,e.range());return null}parseVariable(e,r,n,s,a=!1){let l=new Array;do{let u=this.parseVariableDeclaration(e,r,n,a);if(!u)return null;u.overriddenModuleName=this.currentModuleName,l.push(u)}while(e.skip(71));let o=M.createVariableStatement(n,l,e.range(s,e.pos));return!e.skip(70)&&!a&&this.checkASI(e),o}parseVariableDeclaration(e,r,n,s=!1){if(!e.skipIdentifier())return this.error(1003,e.range()),null;let a=M.createIdentifierExpression(e.readIdentifier(),e.range());vp(a.text)&&this.error(1003,a.range);let l=r;e.skip(95)&&(l|=16384);let o=null;e.skip(100)&&(o=this.parseType(e,!0));let u=null;if(e.skip(101)){if(l&32768&&this.error(1039,e.range()),u=this.parseExpression(e,2),!u)return null;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=le.join(a.range,e.range());return(l&16384)!=0&&(l&32768)!=0&&this.error(1255,c),M.createVariableDeclaration(a,n,l,o,u,c)}parseEnum(e,r,n,s){if(e.next()!=115)return this.error(1003,e.range()),null;let a=M.createIdentifierExpression(e.readIdentifier(),e.range());if(e.next()!=62)return this.error(1005,e.range(),"{"),null;let l=new Array;for(;!e.skip(63);){let u=this.parseEnumValue(e,0);if(!u)return null;if(l.push(u),!e.skip(71)){if(e.skip(63))break;return this.error(1005,e.range(),"}"),null}}let o=M.createEnumDeclaration(a,n,r,l,e.range(s,e.pos));return o.overriddenModuleName=this.currentModuleName,e.skip(70),o}parseEnumValue(e,r){if(!e.skipIdentifier())return this.error(1003,e.range()),null;let n=M.createIdentifierExpression(e.readIdentifier(),e.range()),s=null;return e.skip(101)&&(s=this.parseExpression(e,2),!s)?null:M.createEnumValueDeclaration(n,r,s,le.join(n.range,e.range()))}parseReturn(e){let r=e.tokenPos,n=null,s=e.peek();if(s!=70&&s!=63&&!e.peekOnNewLine()&&!(n=this.parseExpression(e)))return null;let a=M.createReturnStatement(n,e.range(r,e.pos));return e.skip(70)||this.checkASI(e),a}parseTypeParameters(e){let r=new Array,n=!1,s=e.tokenPos;for(;!e.skip(73);){let a=this.parseTypeParameter(e);if(!a)return null;if(a.defaultType?n=!0:n&&(this.error(2706,a.range),a.defaultType=null),r.push(a),!e.skip(71)){if(e.skip(73))break;return this.error(1005,e.range(),">"),null}}return r.length||this.error(1098,e.range(s,e.pos)),r}parseTypeParameter(e){if(e.next()==115){let r=M.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(101)){let a=this.parseType(e);if(!a)return null;if(a.kind!=1)return this.error(1003,a.range),null;s=a}return M.createTypeParameter(r,n,s,le.join(r.range,e.range()))}else this.error(1003,e.range());return null}parseParameters(e,r=!1){let n=new Array,s=null,a=!1,l=!1,o=null;if(this.parseParametersThis=null,e.skip(51)){if(e.skip(100)){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(71))return e.skip(65)?n:(this.error(1005,e.range(),")"),null)}for(;!e.skip(65);){let u=this.parseParameter(e,r);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(71)){if(e.skip(65))break;return this.error(1005,e.range(),")"),null}}return n}parseParameter(e,r=!1){let n=!1,s=!1,a=null,l=0;if(r&&(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()!=100?(e.discard(o),a||(a=e.range()),l|=64):e.reset(o)}if(e.skip(69)&&(l?this.error(1317,e.range()):a=e.range(),n=!0),e.skipIdentifier()){n||(a=e.range());let o=M.createIdentifierExpression(e.readIdentifier(),e.range()),u=null;if((s=e.skip(99))&&n&&this.error(1047,o.range),e.skip(100)){if(u=this.parseType(e),!u)return null}else u=M.createOmittedType(e.range(e.pos));let c=null;if(e.skip(101)&&(n&&this.error(1048,o.range),s?this.error(1015,o.range):s=!0,c=this.parseExpression(e,2),!c))return null;let _=M.createParameter(n?2:s?1:0,o,u,c,le.join(assert(a),e.range()));return _.flags|=l,_}else this.error(1003,e.range());return null}parseFunction(e,r,n,s){if(!e.skipIdentifier())return this.error(1003,e.range(e.pos)),null;let a=M.createIdentifierExpression(e.readIdentifier(),e.range()),l=-1,o=null;if(e.skip(72)){if(l=e.tokenPos,o=this.parseTypeParameters(e),!o)return null;r|=65536}if(!e.skip(64))return this.error(1005,e.range(e.pos),"("),null;l<0&&(l=e.tokenPos);let u=this.parseParameters(e);if(!u)return null;let c=this.parseParametersThis,_=(r&4096)!=0;_&&(u.length!=1&&this.error(1049,a.range),u.length>0&&u[0].initializer&&this.error(1052,a.range)),r&2048&&u.length&&this.error(1054,a.range);let f=null;if(e.skip(100)&&(f=this.parseType(e,!0,_),!f))return null;f||(f=M.createOmittedType(e.range(e.pos)),_||this.error(1110,f.range));let h=M.createFunctionType(u,f,c,!1,e.range(l,e.pos)),y=null;if(e.skip(62)){if(r&32768&&this.error(1183,e.range()),y=this.parseBlockStatement(e,!1),!y)return null}else r&32768||this.error(2391,e.range(e.pos));let x=M.createFunctionDeclaration(a,n,r,o,h,y,0,e.range(s,e.pos));return x.overriddenModuleName=this.currentModuleName,e.skip(70),x}parseFunctionExpression(e){let r=e.tokenPos,n,s=0;if(e.token==24){if(e.skipIdentifier()?n=M.createIdentifierExpression(e.readIdentifier(),e.range()):n=M.createEmptyIdentifierExpression(e.range(e.pos)),!e.skip(64))return this.error(1005,e.range(e.pos),"("),null}else s=1,assert(e.token==64),n=M.createEmptyIdentifierExpression(e.range(e.tokenPos));let a=e.pos,l=this.parseParameters(e);return l?this.parseFunctionExpressionCommon(e,n,l,this.parseParametersThis,s,r,a):null}parseFunctionExpressionCommon(e,r,n,s,a,l=-1,o=-1){l<0&&(l=r.range.start),o<0&&(o=l);let u=null;if(a!=2&&e.skip(100)){if(u=this.parseType(e),!u)return null}else u=M.createOmittedType(e.range(e.pos));if(a&&!e.skip(80))return this.error(1005,e.range(e.pos),"=>"),null;let c=M.createFunctionType(n,u,s,!1,e.range(o,e.pos)),_=null;if(a)if(e.skip(62))_=this.parseBlockStatement(e,!1);else{let h=this.parseExpression(e,2);h&&(_=M.createExpressionStatement(h))}else{if(!e.skip(62))return this.error(1005,e.range(e.pos),"{"),null;_=this.parseBlockStatement(e,!1)}if(!_)return null;let f=M.createFunctionDeclaration(r,null,0,null,c,_,a,e.range(l,e.pos));return M.createFunctionExpression(f)}parseClassOrInterface(e,r,n,s){let a=e.token==31;if(!e.skipIdentifier())return this.error(1003,e.range()),null;let l=M.createIdentifierExpression(e.readIdentifier(),e.range()),o=null;if(e.skip(72)){if(o=this.parseTypeParameters(e),!o)return null;r|=65536}let u=null;if(e.skip(19)){let h=this.parseType(e);if(!h)return null;if(h.kind!=1)return this.error(1003,h.range),null;u=h}let c=null;if(e.skip(27)){a&&this.error(1176,e.range());do{let h=this.parseType(e);if(!h)return null;if(h.kind!=1)return this.error(1003,h.range),null;a||(c||(c=[]),c.push(h))}while(e.skip(71))}if(!e.skip(62))return this.error(1005,e.range(),"{"),null;let _=new Array,f;if(a?(assert(!c),f=M.createInterfaceDeclaration(l,n,r,o,u,null,_,e.range(s,e.pos))):f=M.createClassDeclaration(l,n,r,o,u,c,_,e.range(s,e.pos)),!e.skip(63))do{let h=this.parseClassMember(e,f);if(h)h.kind==66?f.indexSignature=h:(assert(h instanceof Ue),_.push(h));else if(this.skipStatement(e),e.skip(121))return this.error(1005,e.range(),"}"),null}while(!e.skip(63));if(f.range.end=e.pos,f.overriddenModuleName=this.currentModuleName,!a&&n!=null)for(let h=0,y=n.length;h<y;++h){let x=n[h].decoratorKind;x==15?this.injectDataCodec(f):x==29?(this.injectDataCodec(f),this.injectUserBinding(f)):x==18?this.injectRestController(f,n[h]):x==31&&this.injectDatabaseBinding(f)}return f}injectDatabaseBinding(e){let r=e.name.text,n=e.members;for(let s=0,a=n.length;s<a;++s){let l=n[s];if(l.kind!=55)continue;let o=l;if(!this.hasDecoratorKind(o.decorators,32))continue;let u=o.type;if(u==null||!(u instanceof de))continue;let c=u,_=c.name.identifier.text,f=o.name.text,h=c.typeArguments,y=_;if(h!=null&&h.length>0){let A="";for(let I=0,E=h.length;I<E;++I){I>0&&(A+=", ");let k=h[I];k instanceof de&&(A+=k.name.identifier.text)}y=_+"<"+A+">"}let x=r+"/"+f,b="__db_"+f;this.injectClassMember(e,"private static "+b+": "+y+" | null = null;"),this.injectClassMember(e,"static get "+f+"(): "+y+" { if ("+r+"."+b+" == null) "+r+"."+b+" = new "+y+'(__toildbResolve("'+x+'")); return '+r+"."+b+"!; }")}this.injectTopLevelStatements(e,`// @ts-ignore: injected
18
18
  import { __toildbResolve } from "toildb";
19
19
  `)}injectDataCodec(e){let r=e.name.text,n=e.members,s="",a="",l="",o="";for(let c=0,_=n.length;c<_;++c){let f=n[c];if(f.kind!=55)continue;let h=f;if(h.is(32))continue;let y=h.type;if(y==null||!(y instanceof de))continue;let x=h.name.text,b='"'+x+'"',A=y,I=A.name.identifier.text,E=A.typeArguments;if(I=="Array"&&E!=null&&E.length==1&&E[0]instanceof de){let k=E[0].name.identifier.text,F="__a"+c.toString(),R="__c"+c.toString(),G="__j"+c.toString();s+="{const "+F+"=this."+x+";__w.writeU32(<u32>"+F+".length);for(let "+G+"=0,"+R+"="+F+".length;"+G+"<"+R+";++"+G+"){"+Jy(k,F+"["+G+"]")+"}}",a+="{const "+R+"=__r.readU32();const "+F+"=new Array<"+k+">();for(let "+G+":u32=0;"+G+"<"+R+"&&__r.ok;++"+G+"){"+F+".push("+Zy(k)+");}__o."+x+"="+F+";}",l+="{const "+F+"=this."+x+";const "+F+"j=JSON.arr();for(let "+G+"=0,"+R+"="+F+".length;"+G+"<"+R+";++"+G+"){"+F+"j.push("+Yy(k,F+"["+G+"]")+");}__j.set("+b+","+F+"j);}",o+="{const "+F+"v=__v.get("+b+");const "+F+"=new Array<"+k+">();for(let "+G+"=0,"+R+"="+F+"v.length();"+G+"<"+R+";++"+G+"){"+F+".push("+$y(k,F+"v.at("+G+")")+");}__o."+x+"="+F+";}"}else if(I=="Uint8Array"){let k="__a"+c.toString(),F="__c"+c.toString(),R="__j"+c.toString();s+="__w.writeBytes(this."+x+");",a+="__o."+x+"=__r.readBytes();",l+="{const "+k+"=this."+x+";const "+k+"j=JSON.arr();for(let "+R+":i32=0,"+F+"="+k+".length;"+R+"<"+F+";++"+R+"){"+k+"j.push(JSON.of<u8>("+k+"["+R+"]));}__j.set("+b+","+k+"j);}",o+="{const "+k+"v=__v.get("+b+");const "+k+"=new Uint8Array("+k+"v.length());for(let "+R+":i32=0,"+F+"="+k+"v.length();"+R+"<"+F+";++"+R+"){"+k+"["+R+"]=<u8>"+k+"v.at("+R+").asU64();}__o."+x+"="+k+";}"}else s+=Jy(I,"this."+x),a+="__o."+x+"="+Zy(I)+";",l+="__j.set("+b+","+Yy(I,"this."+x)+");",o+="__o."+x+"="+$y(I,"__v.get("+b+")")+";"}let u=M2(r).toString();this.injectClassMember(e,"encodeInto(__w: DataWriter): void{"+s+"}"),this.injectClassMember(e,"encode(): Uint8Array{const __w=new DataWriter();__w.writeU32("+u+");this.encodeInto(__w);return __w.toBytes();}"),this.injectClassMember(e,"static decodeFrom(__r: DataReader): "+r+"{const __o=new "+r+"();"+a+"return __o;}"),this.injectClassMember(e,"static decode(__buf: Uint8Array): "+r+"{const __r=new DataReader(__buf);__r.readU32();return "+r+".decodeFrom(__r);}"),this.injectClassMember(e,"decodeInto(__buf: Uint8Array): void{const __r=new DataReader(__buf);__r.readU32();"+a.replace(/__o\./g,"this.")+"}"),this.injectClassMember(e,"static dataId(): u32{return "+u+";}"),this.injectClassMember(e,"toJSON(): JSON{const __j=JSON.obj();"+l+"return __j;}"),this.injectClassMember(e,"static fromJSON(__v: JSON): "+r+"{const __o=new "+r+"();"+o+"return __o;}")}injectClassMember(e,r){let n=e.range.source,s=new ce(n.sourceKind,n.normalizedPath,r),a=new wr(s,this.diagnostics),l=this.parseClassMember(a,e);l!=null&&l instanceof Ue&&e.members.push(l)}injectTopLevelStatements(e,r){let n=e.range.source,s=new ce(n.sourceKind,n.normalizedPath,r),a=new wr(s,this.diagnostics);for(;!a.skip(121);){let l=this.parseTopLevelStatement(a,null);if(l!=null)n.statements.push(l);else{this.skipStatement(a);break}}}injectRestController(e,r){let n=e.name.text,s=e.members,a=this.restPrefixOf(r),l=this.restStreamOf(r),o=this.hasDecoratorKind(e.decorators,28),u="";for(let h=0,y=s.length;h<y;++h){let x=s[h];if(x.kind!=59)continue;let b=x,A=this.routeDecoratorOf(b);if(A==null)continue;let I=this.buildRouteBlock(a,l,b,A,o);I!=null&&(u+=I)}if(u.length==0)return;this.injectClassMember(e,"__tryRoute(__req: __toilReq): __toilResp | null{"+u+"return null;}");let c=this.restRuntimePath(e),f=e.range.source.normalizedPath;this.restImportedSources.has(f)||(this.restImportedSources.add(f),this.injectTopLevelStatements(e,"import { Rest as __toilRest, Request as __toilReq, Response as __toilResp, matchRoute as __toilMatch } from "+JSON.stringify(c)+`;
20
20
  `)),this.injectTopLevelStatements(e,"__toilRest.register((__q: __toilReq): __toilResp | null => new "+n+`().__tryRoute(__q));
@@ -22,7 +22,7 @@ import { __toildbResolve } from "toildb";
22
22
  @global class AuthUser extends `+r+` {}
23
23
  `),this.injectTopLevelStatements(e,`// @ts-ignore: injected
24
24
  @global function __toilDecodeAuthUser(__b: Uint8Array): AuthUser { return changetype<AuthUser>(`+r+`.decode(__b)); }
25
- `)}hasDecoratorKind(e,r){if(e==null)return!1;for(let n=0,s=e.length;n<s;++n)if(e[n].decoratorKind==r)return!0;return!1}restPrefixOf(e){let r=e.args;if(r==null||r.length==0)return"";let n=r[0];if(n instanceof Ye){let s=n.value.trim();return s.length==0||s=="/"?"":(s.startsWith("/")||(s="/"+s),s.replace(/\/+$/,""))}return""}restStreamOf(e){let r=e.args;if(r!=null&&r.length>0&&r[0]instanceof ht){let n=this.objectField(r[0],"stream");if(n!=null){let s=this.enumMember(n);if(s!=null)return s}}return"JSON"}routeDecoratorOf(e){let r=e.decorators;if(r==null)return null;for(let n=0,s=r.length;n<s;++n)switch(r[n].decoratorKind){case 19:case 20:case 21:case 22:case 23:case 24:case 25:case 26:return r[n]}return null}buildRouteBlock(e,r,n,s,a){let l=s.decoratorKind,o,u,c=r;if(l==19){let F=s.args;if(F==null||F.length==0||!(F[0]instanceof ht))return null;let R=F[0],G=this.objectField(R,"method"),U=this.objectField(R,"path");if(G==null||U==null||!(U instanceof Ye))return null;let z=this.enumMember(G);if(z==null)return null;o=z,u=U.value;let W=this.objectField(R,"stream");if(W!=null){let q=this.enumMember(W);q!=null&&(c=q)}}else{o=this.verbName(l);let F=s.args;if(F==null||F.length==0||!(F[0]instanceof Ye))return null;u=F[0].value}let _=this.methodEnumValue(o);if(_<0)return null;let f=this.joinPath(e,u),h=n.signature.parameters,y=null,x="";for(let F=0,R=h.length;F<R;++F){let G=h[F].type,U=G instanceof de?G.name.identifier.text:"";F>0&&(x+=","),U=="RouteContext"?x+="__ctx":(y=U,x+="__body")}let b=n.signature.returnType,A=b instanceof de?b.name.identifier.text:"",I="this."+n.name.text+"("+x+")",E=this.cacheSuffixOf(n),k="if(__req.method=="+_.toString()+"){";return k+="const __ctx=__toilMatch("+JSON.stringify(f)+",__req);",k+="if(__ctx!=null){",k+=this.ratelimitGuardOf(n),(a||this.hasDecoratorKind(n.decorators,28))&&(k+='if(!AuthService.hasSession()){return __toilResp.text("unauthorized\\n",401);}'),y!=null&&(c=="Binary"?k+="const __body="+y+".decode(__req.body);":k+="const __body="+y+".fromJSON(JSON.parse(__ctx.text()));"),A=="Response"||A=="__toilResp"?k+="return "+I+E+";":A=="void"?k+=I+";return __toilResp.empty(204)"+E+";":c=="Binary"?k+="const __res="+I+";return __toilResp.bytes(__res.encode())"+E+";":k+="const __res="+I+";return __toilResp.json(__res.toJSON().toString())"+E+";",k+="}}",k}cacheSuffixOf(e){let r=e.decorators;if(r==null)return"";for(let n=0,s=r.length;n<s;++n){if(r[n].decoratorKind!=27)continue;let a=r[n].args;if(a==null||a.length==0)return"";let l="";for(let o=0,u=a.length;o<u;++o){let c=a[o];if(!(c instanceof Lt||c.kind==26||c.kind==14))return"";o>0&&(l+=","),l+=c.range.toString()}return".cache("+l+")"}return""}ratelimitGuardOf(e){let r=e.decorators;if(r==null)return"";for(let n=0,s=r.length;n<s;++n){if(r[n].decoratorKind!=30)continue;let a=r[n].args;if(a==null||a.length<3)return"";let l=this.ratelimitStrategyTag(a[0]);if(l.length==0)return"";let o=a[1],u=a[2];return!(o instanceof Lt)||!(u instanceof Lt)?"":"{const __rl=RateLimitService.guard("+(this.ratelimitRouteCounter++).toString()+","+l+","+o.range.toString()+","+u.range.toString()+");if(__rl!=null){return __rl;}}"}return""}ratelimitStrategyTag(e){if(e instanceof Lt)return e.range.toString();if(e instanceof Nt){let r=e.property.text;return r=="SlidingWindow"?"1":r=="TokenBucket"?"2":"0"}return""}objectField(e,r){let n=e.names;for(let s=0,a=n.length;s<a;++s)if(n[s].text==r)return e.values[s];return null}enumMember(e){return e instanceof Nt?e.property.text:null}verbName(e){switch(e){case 21:return"POST";case 22:return"PUT";case 23:return"DELETE";case 24:return"PATCH";case 25:return"HEAD";case 26:return"OPTIONS";default:return"GET"}}methodEnumValue(e){switch(e){case"GET":return 0;case"POST":return 1;case"PUT":return 2;case"DELETE":return 3;case"PATCH":return 4;case"HEAD":return 5;case"OPTIONS":return 6;default:return-1}}joinPath(e,r){let n=r.trim();if(n.length==0&&(n="/"),n.startsWith("/")||(n="/"+n),n=="/")return e.length>0?e:"/";n.length>1&&(n=n.replace(/\/+$/,""));let s=e+n;return s.length==0?"/":s}restRuntimePath(e){let r=e.range.source.statements;for(let n=0,s=r.length;n<s;++n){let a=r[n];if(a.kind!=43)continue;let l=a,o=l.declarations;if(o!=null)for(let u=0,c=o.length;u<c;++u){let _=o[u].foreignName.text;if(_=="Response"||_=="Request"||_=="RouteContext"||_=="ToilHandler"||_=="Method"||_=="Header"||_=="Server"||_=="Rest")return l.path.value}}return"toiljs/server/runtime"}parseClassExpression(e){let r=e.tokenPos,n;if(e.skipIdentifier()?n=M.createIdentifierExpression(e.readIdentifier(),e.range()):n=M.createEmptyIdentifierExpression(e.range(e.pos)),!e.skip(62))return this.error(1005,e.range(e.pos),"{"),null;let s=new Array,a=M.createClassDeclaration(n,null,0,null,null,null,s,e.range(r,e.pos));if(!e.skip(63))do{let l=this.parseClassMember(e,a);if(l)l.kind==66?a.indexSignature=l:(assert(a instanceof Ue),s.push(l));else if(this.skipStatement(e),e.skip(121))return this.error(1005,e.range(),"}"),null}while(!e.skip(63));return a.range.end=e.pos,M.createClassExpression(a)}parseClassMember(e,r){let n=r.kind==58,s=0,a=null;if(e.skip(114)){s=e.tokenPos;do{let re=this.parseDecorator(e);if(!re)break;a||(a=new Array),a.push(re)}while(e.skip(114));n&&a&&this.error(1206,le.join(a[0].range,a[a.length-1].range))}let l=r.flags&32768;n&&(l|=268435456);let o=0,u=0,c=r.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 _=0,f=0;e.skip(44)?(n?this.error(1042,e.range(),"public"):(l|=256,_=e.tokenPos,f=e.pos),s||(s=e.tokenPos)):e.skip(42)?(n?this.error(1042,e.range(),"private"):(l|=512,_=e.tokenPos,f=e.pos),s||(s=e.tokenPos)):e.skip(43)&&(n?this.error(1042,e.range(),"protected"):(l|=1024,_=e.tokenPos,f=e.pos),s||(s=e.tokenPos));let h=0,y=0,x=0,b=0;e.skip(48)?(n?this.error(1042,e.range(),"static"):(l|=32,h=e.tokenPos,y=e.pos),s||(s=e.tokenPos)):(l|=262144,e.skip(0)&&(n||!r.is(128)?this.error(1042,e.range(),"abstract"):(l|=128,x=e.tokenPos,b=e.pos),s||(s=e.tokenPos)),r.flags&65536&&(l|=131072));let A=0,I=0;e.skip(40)&&(n||r.extendsType==null?this.error(1042,e.range(),"override"):(l|=8192,A=e.tokenPos,I=e.pos),s||(s=e.tokenPos));let E=0,k=0;if(e.peek()==45){let re=e.mark();e.next(),e.peek()!=100?(e.discard(re),l|=64,E=e.tokenPos,k=e.pos,s||(s=E)):e.reset(re)}let F=e.mark(),R=!1,G=!1,U=0,z=0,W=!1,q=0,ee=0;n||(e.skip(25)?e.peek(1)==115&&!e.peekOnNewLine()?(l|=2048,G=!0,U=e.tokenPos,z=e.pos,s||(s=U),l&64&&this.error(1042,e.range(E,k),"readonly")):e.reset(F):e.skip(47)?e.peek(1)==115&&!e.peekOnNewLine()?(l|=4096,W=!0,q=e.tokenPos,ee=e.pos,s||(s=q),l&64&&this.error(1042,e.range(E,k),"readonly")):e.reset(F):e.skip(10)&&(l|=524288,R=!0,s||(s=e.tokenPos),l&32&&this.error(1042,e.range(h,y),"static"),l&128&&this.error(1042,e.range(x,b),"abstract"),l&64&&this.error(1042,e.range(E,k),"readonly")));let Y=G||W,te;if(R)te=M.createConstructorExpression(e.range());else{if(!Y&&e.skip(66)){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(h,y),"static"),l&8192&&this.error(1042,e.range(A,I),"override"),l&128&&this.error(1042,e.range(x,b),"abstract");let re=this.parseIndexSignature(e,l,a);return re?(e.skip(70),re):(l&64&&this.error(1042,e.range(E,k),"readonly"),null)}if(!e.skipIdentifier(2))return this.error(1003,e.range()),null;s||(s=e.tokenPos),te=M.createIdentifierExpression(e.readIdentifier(),e.range())}let j=null;if(e.skip(72)){let re=e.tokenPos;if(j=this.parseTypeParameters(e),!j)return null;R?this.error(1092,e.range(re,e.pos)):Y?this.error(1094,e.range(re,e.pos)):l|=65536}if(e.skip(64)){l&4&&this.error(1031,e.range(o,u),"declare");let re=e.tokenPos,H=this.parseParameters(e,R);if(!H)return null;let ue=this.parseParametersThis;if(R)for(let Me=0,Hi=H.length;Me<Hi;++Me){let It=H[Me];if(It.isAny(1856)){let Rt=M.createFieldDeclaration(It.name,null,It.flags|262144,It.type,null,It.range);Rt.parameterIndex=Me,It.implicitFieldDeclaration=Rt,r.members.push(Rt)}}else G?H.length&&this.error(1054,te.range):W?(H.length!=1&&this.error(1049,te.range),H.length>0&&H[0].initializer&&this.error(1052,te.range)):te.text=="constructor"&&this.error(230,te.range,"constructor");let be=null;if(e.skip(100)){if(te.kind==27?this.error(1093,e.range()):W&&this.error(1095,e.range()),be=this.parseType(e,W||te.kind==27),!be)return null}else be=M.createOmittedType(e.range(e.pos)),!W&&te.kind!=27&&this.error(1110,be.range);let mr=M.createFunctionType(H,be,ue,!1,e.range(re,e.pos)),St=null;if(e.skip(62)){if(l&32768?this.error(1183,e.range()):l&128?this.error(1245,e.range(),te.text):n&&this.error(1005,e.range(),";"),St=this.parseBlockStatement(e,!1),!St)return null}else!n&&!(l&32896)&&this.error(2391,e.range());let Q=M.createMethodDeclaration(te,a,l,j,mr,St,e.range(s,e.pos));return n&&e.skip(71)||e.skip(70),Q}else if(R)this.error(2390,te.range);else if(Y)this.error(2391,te.range);else{l&4&&this.error(100,e.range(o,u),"Ambient fields"),l&128&&this.error(1042,e.range(x,b),"abstract"),l&2048&&this.error(1042,e.range(U,z),"get"),l&4096&&this.error(1042,e.range(q,ee),"set");let re=null;if(e.skip(99)&&this.error(219,e.range(s,e.pos)),e.skip(95)&&(l|=16384),e.skip(100)){if(re=this.parseType(e),!re)return null}else this.error(1110,e.range());let H=null;if(e.skip(101)){if(l&32768&&this.error(1039,e.range()),H=this.parseExpression(e),!H)return null;l&16384&&this.error(1263,te.range)}let ue=e.range(s,e.pos);(l&16384)!=0&&(n||(l&32768)!=0)&&this.error(1255,ue);let be=M.createFieldDeclaration(te,a,l,re,H,ue);return n&&e.skip(71)||e.skip(70),be}return null}parseIndexSignature(e,r,n){n&&n.length>0&&this.error(1206,le.join(n[0].range,n[n.length-1].range));let s=e.tokenPos;if(e.skipIdentifier())if(e.readIdentifier()=="key")if(e.skip(100)){let l=this.parseType(e);if(!l)return null;if(l.kind!=1)return this.error(1110,e.range()),null;if(e.skip(67))if(e.skip(100)){let o=this.parseType(e);return o?o.kind!=1?(this.error(1003,o.range),null):M.createIndexSignature(l,o,r,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,r,n,s){if(e.skipIdentifier()){let a=M.createIdentifierExpression(e.readIdentifier(),e.range());if(e.skip(62)){let l=new Array,o=M.createNamespaceDeclaration(a,n,r,l,e.range(s,e.pos));for(;!e.skip(63);){let u=this.parseTopLevelStatement(e,o);if(u){if(u.kind==36)return this.error(1319,u.range),null;l.push(u)}else if(this.skipStatement(e),e.skip(121))return this.error(1005,e.range(),"}"),null}return o.range.end=e.pos,o.overriddenModuleName=this.currentModuleName,e.skip(70),o}else this.error(1005,e.range(),"{")}else this.error(1003,e.range());return null}parseExport(e,r,n){let s=null,a=assert(this.currentSource);if(e.skip(62)){let l=new Array;for(;!e.skip(63);){let u=this.parseExportMember(e);if(!u)return null;if(l.push(u),!e.skip(71)){if(e.skip(63))break;return this.error(1005,e.range(),"}"),null}}if(e.skip(23))if(e.skip(116))s=M.createStringLiteralExpression(e.readString(),e.range());else return this.error(1141,e.range()),null;let o=M.createExportStatement(l,s,n,e.range(r,e.pos));if(s){let u=assert(o.internalPath);this.seenlog.has(u)||(this.dependees.set(u,new es(a,s)),this.backlog.push(u),this.seenlog.add(u))}return e.skip(70),o}else if(e.skip(84))if(e.skip(23))if(e.skip(116)){s=M.createStringLiteralExpression(e.readString(),e.range());let l=M.createExportStatement(null,s,n,e.range(r,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 es(a,s)),this.backlog.push(o)),e.skip(70),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 r=M.createIdentifierExpression(e.readIdentifier(),e.range()),n=null;if(e.skip(1))if(e.skipIdentifier(2))n=M.createIdentifierExpression(e.readIdentifier(),e.range());else return this.error(1003,e.range()),null;return n?M.createExportMember(r,n,le.join(r.range,n.range)):M.createExportMember(r,null,r.range)}else this.error(1003,e.range());return null}parseExportDefaultAlias(e,r,n,s){let a=e.readIdentifier(),l=e.range(),o=M.createExportStatement([M.createExportMember(M.createIdentifierExpression(a,l),M.createIdentifierExpression("default",e.range(n,s)),l)],null,!1,e.range(r,e.pos));return e.skip(70),o}parseImport(e){let r=e.tokenPos,n=null,s=null,a=!1;if(e.skip(62))for(n=new Array;!e.skip(63);){let l=this.parseImportDeclaration(e);if(!l)return null;if(n.push(l),!e.skip(71)){if(e.skip(63))break;return this.error(1005,e.range(),"}"),null}}else if(e.skip(84))if(e.skip(1))if(e.skipIdentifier())s=M.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(115,1)){let l=e.readIdentifier(),o=e.range();if(n=[M.createImportDeclaration(M.createIdentifierExpression("default",o),M.createIdentifierExpression(l,o),o)],e.skip(71))return this.error(100,e.range(),"Mixed default and named imports"),null}else a=!0;if(a||e.skip(23))if(e.skip(116)){let l=M.createStringLiteralExpression(e.readString(),e.range()),o;s?(assert(!n),o=M.createWildcardImportStatement(s,l,e.range(r,e.pos))):o=M.createImportStatement(n,l,e.range(r,e.pos));let u=o.internalPath;return this.seenlog.has(u)||(this.dependees.set(u,new es(assert(this.currentSource),l)),this.backlog.push(u)),e.skip(70),o}else this.error(1141,e.range());else this.error(1005,e.range(),"from");return null}parseImportDeclaration(e){if(e.skipIdentifier(2)){let r=M.createIdentifierExpression(e.readIdentifier(),e.range()),n=null;if(e.skip(1))if(e.skipIdentifier())n=M.createIdentifierExpression(e.readIdentifier(),e.range());else return this.error(1003,e.range()),null;return n?M.createImportDeclaration(r,n,le.join(r.range,n.range)):M.createImportDeclaration(r,null,r.range)}else this.error(1003,e.range());return null}parseExportImport(e,r){if(e.skipIdentifier()){let n=M.createIdentifierExpression(e.readIdentifier(),e.range());if(e.skip(101))if(e.skipIdentifier()){let s=M.createIdentifierExpression(e.readIdentifier(),e.range()),a=M.createExportImportStatement(s,n,e.range(r,e.pos));return e.skip(70),a}else this.error(1003,e.range());else this.error(1005,e.range(),"=")}else this.error(1003,e.range());return null}parseStatement(e,r=!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 57:{a=this.parseVariable(e,0,null,e.tokenPos);break}case 62:{a=this.parseBlockStatement(e,r);break}case 46:{r&&this.error(1108,e.range()),a=this.parseReturn(e);break}case 70:return M.createEmptyStatement(e.range(e.tokenPos));case 50:{a=this.parseSwitchStatement(e);break}case 52:{a=this.parseThrowStatement(e);break}case 54:{a=this.parseTryStatement(e);break}case 58:{a=this.parseVoidStatement(e);break}case 59:{a=this.parseWhileStatement(e);break}case 55:if(e.peek(1)==115){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,r){let n=e.tokenPos,s=new Array;for(;!e.skip(63);){let l=e.mark(),o=this.parseStatement(e,r);if(o)e.discard(l),s.push(o);else{if(e.token==121)return null;e.reset(l),this.skipStatement(e)}}let a=M.createBlockStatement(s,e.range(n,e.pos));return r&&e.skip(70),a}parseBreak(e){let r=null;e.peek()==115&&!e.peekOnNewLine()&&(e.next(1),r=M.createIdentifierExpression(e.readIdentifier(),e.range()));let n=M.createBreakStatement(r,e.range());return e.skip(70),n}parseContinue(e){let r=null;e.peek()==115&&!e.peekOnNewLine()&&(e.next(1),r=M.createIdentifierExpression(e.readIdentifier(),e.range()));let n=M.createContinueStatement(r,e.range());return e.skip(70),n}parseDoStatement(e){let r=e.tokenPos,n=this.parseStatement(e);if(!n)return null;if(e.skip(59))if(e.skip(64)){let s=this.parseExpression(e);if(!s)return null;if(e.skip(65)){let a=M.createDoStatement(n,s,e.range(r,e.pos));return e.skip(70),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 r=this.parseExpression(e);if(!r)return null;let n=M.createExpressionStatement(r);return e.skip(70),n}parseForStatement(e){let r=e.tokenPos;if(e.skip(64)){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(57))n=this.parseVariable(e,0,null,e.tokenPos,!0);else if(!e.skip(70)&&(n=this.parseExpressionStatement(e),!n))return null;if(n){if(e.skip(39)){if(n.kind==39)return n.expression.kind!=7?(this.error(1003,n.range),null):this.parseForOfStatement(e,r,n);if(n.kind==48){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,r,n)}return this.error(1003,n.range),null}if(n.kind==48){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==70){let s=null;if(!e.skip(70)&&(s=this.parseExpressionStatement(e),!s))return null;if(e.token==70){let a=null;if(!e.skip(65)){if(a=this.parseExpression(e),!a)return null;if(!e.skip(65))return this.error(1005,e.range(),")"),null}let l=this.parseStatement(e);return l?M.createForStatement(n,s?s.expression:null,a,l,e.range(r,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,r,n){let s=this.parseExpression(e);if(!s)return null;if(!e.skip(65))return this.error(1005,e.range(),")"),null;let a=this.parseStatement(e);return a?M.createForOfStatement(n,s,a,e.range(r,e.pos)):null}parseIfStatement(e){let r=e.tokenPos;if(e.skip(64)){let n=this.parseExpression(e);if(!n)return null;if(e.skip(65)){let s=this.parseStatement(e);if(!s)return null;let a=null;return e.skip(16)&&(a=this.parseStatement(e),!a)?null:M.createIfStatement(n,s,a,e.range(r,e.pos))}else this.error(1005,e.range(),")")}else this.error(1005,e.range(),"(");return null}parseSwitchStatement(e){let r=e.tokenPos;if(e.skip(64)){let n=this.parseExpression(e);if(!n)return null;if(e.skip(65))if(e.skip(62)){let s=new Array;for(;!e.skip(63);){let l=this.parseSwitchCase(e);if(!l)return null;s.push(l)}let a=M.createSwitchStatement(n,s,e.range(r,e.pos));return e.skip(70),a}else this.error(1005,e.range(),"{");else this.error(1005,e.range(),")")}else this.error(1005,e.range(),"(");return null}parseSwitchCase(e){let r=e.tokenPos,n,s;if(e.skip(5)){let a=this.parseExpression(e);if(!a)return null;if(e.skip(100)){for(n=new Array;e.peek()!=5&&e.nextToken!=13&&e.nextToken!=63;){if(s=this.parseStatement(e),!s)return null;n.push(s)}return M.createSwitchCase(a,n,e.range(r,e.pos))}else this.error(1005,e.range(),":")}else if(e.skip(13))if(e.skip(100)){for(n=new Array;e.peek()!=5&&e.nextToken!=13&&e.nextToken!=63;){if(s=this.parseStatement(e),!s)return null;n.push(s)}return M.createSwitchCase(null,n,e.range(r,e.pos))}else this.error(1005,e.range(),":");else this.error(1130,e.range());return null}parseThrowStatement(e){let r=e.tokenPos,n=this.parseExpression(e);if(!n)return null;let s=M.createThrowStatement(n,e.range(r,e.pos));return e.skip(70)||this.checkASI(e),s}parseTryStatement(e){let r=e.tokenPos,n;if(e.skip(62)){let s=new Array;for(;!e.skip(63);){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(64))return this.error(1005,e.range(),"("),null;if(!e.skipIdentifier())return this.error(1003,e.range()),null;if(a=M.createIdentifierExpression(e.readIdentifier(),e.range()),!e.skip(65))return this.error(1005,e.range(),")"),null;if(!e.skip(62))return this.error(1005,e.range(),"{"),null;for(l=[];!e.skip(63);){if(n=this.parseStatement(e),!n)return null;l.push(n)}}if(e.skip(21)){if(!e.skip(62))return this.error(1005,e.range(),"{"),null;for(o=[];!e.skip(63);){if(n=this.parseStatement(e),!n)return null;o.push(n)}}if(!(l||o))return this.error(1005,e.range(),"catch"),null;let u=M.createTryStatement(s,a,l,o,e.range(r,e.pos));return e.skip(70),u}else this.error(1005,e.range(),"{");return null}parseTypeDeclaration(e,r,n,s){if(e.skipIdentifier()){let a=M.createIdentifierExpression(e.readIdentifier(),e.range()),l=null;if(e.skip(72)){if(l=this.parseTypeParameters(e),!l)return null;r|=65536}if(e.skip(101)){e.skip(93);let o=this.parseType(e);if(!o)return null;if($n(a.text,o))return this.error(2456,a.range,a.text),null;let u=M.createTypeDeclaration(a,n,r,l,o,e.range(s,e.pos));return e.skip(70),u.overriddenModuleName=this.currentModuleName,u}else this.error(1005,e.range(),"=")}else this.error(1003,e.range());return null}parseModuleDeclaration(e,r){let n=e.tokenPos;assert(e.next()==116);let s=e.readString(),a=M.createModuleDeclaration(s,r,e.range(n,e.pos));return this.currentModuleName=s,e.skip(70),a}parseVoidStatement(e){let r=e.tokenPos,n=this.parseExpression(e,21);if(!n)return null;let s=M.createVoidStatement(n,e.range(r,e.pos));return e.skip(70),s}parseWhileStatement(e){let r=e.tokenPos;if(e.skip(64)){let n=this.parseExpression(e);if(!n)return null;if(e.skip(65)){let s=this.parseStatement(e);if(!s)return null;let a=M.createWhileStatement(n,s,e.range(r,e.pos));return e.skip(70),a}else this.error(1005,e.range(),")")}else this.error(1005,e.range(),"(");return null}parseExpressionStart(e){let r=e.next(1),n=e.tokenPos;switch(r){case 69:case 61:case 95:case 96:case 81:case 82:case 56:case 58:case 14:{let s=this.parseExpression(e,17);return s?M.createUnaryPrefixExpression(r,s,e.range(n,e.pos)):null}case 87:case 88:{let s=this.parseExpression(e,17);if(!s)return null;switch(s.kind){case 7:case 13:case 22:break;default:this.error(2357,s.range)}return M.createUnaryPrefixExpression(r,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(64)||(a=this.tryParseTypeArgumentsBeforeArguments(e))){if(l=this.parseArguments(e),!l)return null}else l=[];return M.createNewExpression(s,a,l,e.range(n,e.pos))}case 38:return M.createNullExpression(e.range());case 53:return M.createTrueExpression(e.range());case 20:return M.createFalseExpression(e.range());case 51:return M.createThisExpression(e.range());case 10:return M.createConstructorExpression(e.range());case 64:{if(e.skip(65))return this.parseFunctionExpressionCommon(e,M.createEmptyIdentifierExpression(e.range(n)),[],null,1);let s=e.mark(),a=!0;do switch(e.next(1)){case 69:return e.reset(s),this.parseFunctionExpression(e);case 115:{switch(e.readIdentifier(),e.next()){case 65:{if(e.skip(100)&&this.parseType(e,!0,!0)==null){a=!1;break}if(!e.skip(80)){a=!1;break}}case 100:return e.reset(s),this.parseFunctionExpression(e);case 99:{if(e.skip(100)||e.skip(71)||e.skip(65))return e.reset(s),this.parseFunctionExpression(e);a=!1;break}case 71:break;default:{a=!1;break}}break}default:{a=!1;break}}while(a);e.reset(s);let l=this.parseExpression(e);return l?e.skip(65)?(l=M.createParenthesizedExpression(l,e.range(n,e.pos)),this.maybeParseCallExpression(e,l)):(this.error(1005,e.range(),")"),null):null}case 66:{let s=new Array;for(;!e.skip(67);){let a;if(e.peek()==71)a=M.createOmittedExpression(e.range(e.pos));else if(a=this.parseExpression(e,2),!a)return null;if(s.push(a),!e.skip(71)){if(e.skip(67))break;return this.error(1005,e.range(),"]"),null}}return M.createArrayLiteralExpression(s,e.range(n,e.pos))}case 62:{let s=e.tokenPos,a=new Array,l=new Array,o;for(;!e.skip(63);){if(e.skipIdentifier())o=M.createIdentifierExpression(e.readIdentifier(),e.range());else{if(!e.skip(116))return this.error(1003,e.range()),null;o=M.createIdentifierExpression(e.readString(),e.range()),o.isQuoted=!0}if(a.push(o),e.skip(100)){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(71)){if(e.skip(63))break;return this.error(1005,e.range(),"}"),null}}return M.createObjectLiteralExpression(a,l,e.range(s,e.pos))}case 72:{let s=this.parseType(e);if(!s)return null;if(!e.skip(73))return this.error(1005,e.range(),">"),null;let a=this.parseExpression(e,19);return a?M.createAssertionExpression(0,a,s,e.range(n,e.pos)):null}case 115:{let s=e.readIdentifier();if(s=="null")return M.createNullExpression(e.range());let a=M.createIdentifierExpression(s,e.range(n,e.pos));return e.skip(119)?this.parseTemplateLiteral(e,a):e.peek()==80&&!e.peekOnNewLine()?this.parseFunctionExpressionCommon(e,M.createEmptyIdentifierExpression(e.range(n)),[M.createParameter(0,a,M.createOmittedType(a.range.atEnd),null,a.range)],null,2,n):this.maybeParseCallExpression(e,a,!0)}case 49:{e.peek()!=68&&e.nextToken!=64&&this.error(1034,e.range());let s=M.createSuperExpression(e.range(n,e.pos));return this.maybeParseCallExpression(e,s)}case 116:return M.createStringLiteralExpression(e.readString(),e.range(n,e.pos));case 119:return this.parseTemplateLiteral(e);case 117:{let s=e.readInteger();return e.checkForIdentifierStartAfterNumericLiteral(),M.createIntegerLiteralExpression(s,e.range(n,e.pos))}case 118:{let s=e.readFloat();return e.checkForIdentifierStartAfterNumericLiteral(),M.createFloatLiteralExpression(s,e.range(n,e.pos))}case 85:{let s=e.readRegexpPattern();return e.skip(85)?M.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 r==121?this.error(1126,e.range(n)):this.error(1109,e.range()),null}}tryParseTypeArgumentsBeforeArguments(e){let r=e.mark();if(!e.skip(72))return null;let n=e.tokenPos,s=null;do{if(e.peek()==73)break;let a=this.parseType(e,!0,!0);if(!a)return e.reset(r),null;s?s.push(a):s=[a]}while(e.skip(71));if(e.skip(73)){let a=e.pos;if(e.skip(64))return s||this.error(1099,e.range(n,a)),s}return e.reset(r),null}parseArguments(e){let r=new Array;for(;!e.skip(65);){let n=this.parseExpression(e,2);if(!n)return null;if(r.push(n),!e.skip(71)){if(e.skip(65))break;return this.error(1005,e.range(),")"),null}}return r}parseExpression(e,r=1){assert(r!=0);let n=this.parseExpressionStart(e);if(!n)return null;let s=n.range.start,a;for(;(a=V2(e.peek()))>=r;){let l=e.next();switch(l){case 1:{if(e.skip(8))n=M.createAssertionExpression(3,n,null,e.range(s,e.pos));else{let o=this.parseType(e);if(!o)return null;n=M.createAssertionExpression(1,n,o,e.range(s,e.pos))}break}case 95:{n=M.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=M.createInstanceOfExpression(n,o,e.range(s,e.pos));break}case 66:{let o=this.parseExpression(e);if(!o)return null;if(!e.skip(67))return this.error(1005,e.range(),"]"),null;n=M.createElementAccessExpression(n,o,e.range(s,e.pos)),n=this.maybeParseCallExpression(e,n);break}case 87:case 88:{n.kind!=7&&n.kind!=13&&n.kind!=22&&this.error(2357,n.range),n=M.createUnaryPostfixExpression(l,n,e.range(s,e.pos));break}case 99:{let o=this.parseExpression(e);if(!o)return null;if(!e.skip(100))return this.error(1005,e.range(),":"),null;let u=this.parseExpression(e,r>1?2:1);if(!u)return null;n=M.createTernaryExpression(n,o,u,e.range(s,e.pos));break}case 71:{let o=[n];do{if(n=this.parseExpression(e,2),!n)return null;o.push(n)}while(e.skip(71));n=M.createCommaExpression(o,e.range(s,e.pos));break}case 68:{if(e.skipIdentifier(2)){let o=M.createIdentifierExpression(e.readIdentifier(),e.range());n=M.createPropertyAccessExpression(n,o,e.range(s,e.pos))}else{let o=this.parseExpression(e,a+1);if(!o)return null;if(o.kind==10){if(n=this.joinPropertyCall(e,s,n,o),!n)return null}else return this.error(1003,o.range),null}if(e.skip(119)){if(n=this.parseTemplateLiteral(e,n),!n)return null}else n=this.maybeParseCallExpression(e,n,!0);break}case 101:case 102:case 103:case 105:case 104:case 106:case 107:case 108:case 109:case 110:case 111:case 113:case 112:case 83:{let o=this.parseExpression(e,a);if(!o)return null;n=M.createBinaryExpression(l,n,o,e.range(s,e.pos));break}case 72:case 73:case 74:case 75:case 76:case 78:case 79:case 77:case 81:case 82:case 84:case 85:case 86:case 89:case 90:case 91:case 92:case 93:case 94:case 97:case 98:case 29:{let o=this.parseExpression(e,a+1);if(!o)return null;n=M.createBinaryExpression(l,n,o,e.range(s,e.pos));break}default:assert(!1)}}return n}parseTemplateLiteral(e,r=null){let n=r?r.range.start:e.tokenPos,s=new Array,a=new Array,l=new Array;for(s.push(e.readString(0,r!=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(63))return this.error(1005,e.range(),"}"),null;s.push(e.readString(96,r!=null)),a.push(e.source.text.substring(e.readStringStart,e.readStringEnd))}return M.createTemplateLiteralExpression(r,s,a,l,e.range(n,e.pos))}joinPropertyCall(e,r,n,s){let a=s.expression;switch(a.kind){case 7:{s.expression=M.createPropertyAccessExpression(n,a,e.range(r,e.pos));break}case 10:{let l=this.joinPropertyCall(e,r,n,a);if(!l)return null;s.expression=l,s.range=e.range(r,e.pos);break}default:return this.error(1003,s.range),null}return s}maybeParseCallExpression(e,r,n=!1){let s=null;for(;e.skip(64)||n&&(s=this.tryParseTypeArgumentsBeforeArguments(e));){let a=this.parseArguments(e);if(!a)break;r=M.createCallExpression(r,s,a,e.range(r.range.start,e.pos)),n=!1}return r}checkASI(e){let r=e.peek();r==121||r==63||e.peekOnNewLine()||this.error(1012,e.range(e.nextTokenPos))}skipStatement(e){e.peekOnNewLine()&&e.next();do{let r=e.peek();if(r==121||r==70){e.next();break}if(e.peekOnNewLine())break;switch(e.next()){case 115:{e.readIdentifier();break}case 116:case 119:{e.readString();break}case 117:{e.readInteger(),e.checkForIdentifierStartAfterNumericLiteral();break}case 118:{e.readFloat(),e.checkForIdentifierStartAfterNumericLiteral();break}case 62:{this.skipBlock(e);break}}}while(!0);e.readingTemplateString=!1}skipBlock(e){let r=1,n=!0;do switch(e.next()){case 121:{this.error(1005,e.range(),"}"),n=!1;break}case 62:{++r;break}case 63:{--r,r||(n=!1);break}case 115:{e.readIdentifier();break}case 116:{e.readString();break}case 119:{for(e.readString();e.readingTemplateString;)this.skipBlock(e),e.readString(96);break}case 117:{e.readInteger(),e.checkForIdentifierStartAfterNumericLiteral();break}case 118:{e.readFloat(),e.checkForIdentifierStartAfterNumericLiteral();break}}while(n)}},tg=(R=>(R[R.None=0]="None",R[R.Comma=1]="Comma",R[R.Spread=2]="Spread",R[R.Yield=3]="Yield",R[R.Assignment=4]="Assignment",R[R.Conditional=5]="Conditional",R[R.LogicalOr=6]="LogicalOr",R[R.LogicalAnd=7]="LogicalAnd",R[R.BitwiseOr=8]="BitwiseOr",R[R.BitwiseXor=9]="BitwiseXor",R[R.BitwiseAnd=10]="BitwiseAnd",R[R.Equality=11]="Equality",R[R.Relational=12]="Relational",R[R.Shift=13]="Shift",R[R.Additive=14]="Additive",R[R.Multiplicative=15]="Multiplicative",R[R.Exponentiated=16]="Exponentiated",R[R.UnaryPrefix=17]="UnaryPrefix",R[R.UnaryPostfix=18]="UnaryPostfix",R[R.Call=19]="Call",R[R.MemberAccess=20]="MemberAccess",R[R.Grouping=21]="Grouping",R))(tg||{});function V2(t){switch(t){case 71:return 1;case 101:case 102:case 103:case 105:case 104:case 106:case 107:case 108:case 109:case 110:case 111:case 113:case 112:return 4;case 99:return 5;case 98:return 6;case 97:return 7;case 93:return 8;case 94:return 9;case 92:return 10;case 76:case 77:case 78:case 79:return 11;case 1:case 29:case 30:case 72:case 73:case 74:case 75:return 12;case 89:case 90:case 91:return 13;case 81:case 82:return 14;case 84:case 85:case 86:return 15;case 83:return 16;case 87:case 88:return 18;case 68:case 66:case 95:return 20}return 0}function $n(t,i){switch(i.kind){case 1:{if(i.name.identifier.text==t)return!0;let e=i.typeArguments;if(e){for(let r=0,n=e.length;r<n;r++)if($n(t,e[r]))return!0}break}case 2:{let e=i;if($n(t,e.returnType))return!0;let r=e.parameters;for(let n=0,s=r.length;n<s;n++)if($n(t,r[n].type))return!0;break}case 3:{let e=i.elements;for(let r=0,n=e.length;r<n;r++)if($n(t,e[r]))return!0;break}default:assert(!1)}return!1}var rg=16,Ci=rg-1,Kl=class{constructor(i,e,r,n,s){this.localFile=i;this.localIdentifier=e;this.foreignIdentifier=r;this.foreignPath=n;this.foreignPathAlt=s}},jl=class{constructor(i,e,r,n){this.localIdentifier=i;this.foreignIdentifier=e;this.foreignPath=r;this.foreignPathAlt=n}},Jp=class{constructor(i,e,r){this.foreignPath=i;this.foreignPathAlt=e;this.pathLiteral=r}},Re=(j=>(j[j.Invalid=0]="Invalid",j[j.IndexedGet=1]="IndexedGet",j[j.IndexedSet=2]="IndexedSet",j[j.UncheckedIndexedGet=3]="UncheckedIndexedGet",j[j.UncheckedIndexedSet=4]="UncheckedIndexedSet",j[j.Add=5]="Add",j[j.Sub=6]="Sub",j[j.Mul=7]="Mul",j[j.Div=8]="Div",j[j.Rem=9]="Rem",j[j.Pow=10]="Pow",j[j.BitwiseAnd=11]="BitwiseAnd",j[j.BitwiseOr=12]="BitwiseOr",j[j.BitwiseXor=13]="BitwiseXor",j[j.BitwiseShl=14]="BitwiseShl",j[j.BitwiseShr=15]="BitwiseShr",j[j.BitwiseShrU=16]="BitwiseShrU",j[j.Eq=17]="Eq",j[j.Ne=18]="Ne",j[j.Gt=19]="Gt",j[j.Ge=20]="Ge",j[j.Lt=21]="Lt",j[j.Le=22]="Le",j[j.Plus=23]="Plus",j[j.Minus=24]="Minus",j[j.Not=25]="Not",j[j.BitwiseNot=26]="BitwiseNot",j[j.PrefixInc=27]="PrefixInc",j[j.PrefixDec=28]="PrefixDec",j[j.PostfixInc=29]="PostfixInc",j[j.PostfixDec=30]="PostfixDec",j))(Re||{});(n=>{function t(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=t;function i(s){switch(s){case 81:case 102:return 5;case 82:case 103:return 6;case 84:case 104:return 7;case 85:case 106:return 8;case 86:case 107:return 9;case 83:case 105:return 10;case 92:case 111:return 11;case 93:case 112:return 12;case 94:case 113:return 13;case 89:case 108:return 14;case 90:case 109:return 15;case 91:case 110:return 16;case 76:case 78:return 17;case 77:case 79:return 18;case 73:return 19;case 75:return 20;case 72:return 21;case 74:return 22}return 0}n.fromBinaryToken=i;function e(s){switch(s){case 81:return 23;case 82:return 24;case 95:return 25;case 96:return 26;case 87:return 27;case 88:return 28}return 0}n.fromUnaryPrefixToken=e;function r(s){switch(s){case 87:return 29;case 88:return 30}return 0}n.fromUnaryPostfixToken=r})(Re||={});var rs=class extends Ke{constructor(e,r=null){super(r);this.options=e;this.sources=[];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.mainFunction=null;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._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._errorInstance=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=zt.create(e.stackSize>0,e.sizeTypeRef),this.parser=new ts(this.diagnostics,this.sources),this.resolver=new Xn(this);let n=new ss(this,ce.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(P.ArrayBufferView)),e}get arrayBufferInstance(){let e=this._arrayBufferInstance;return e||(this._arrayBufferInstance=e=this.requireClass(P.ArrayBuffer)),e}get arrayPrototype(){let e=this._arrayPrototype;return e||(this._arrayPrototype=e=this.require(P.Array,6)),e}get staticArrayPrototype(){let e=this._staticArrayPrototype;return e||(this._staticArrayPrototype=e=this.require(P.StaticArray,6)),e}get setPrototype(){let e=this._setPrototype;return e||(this._setPrototype=e=this.require(P.Set,6)),e}get mapPrototype(){let e=this._mapPrototype;return e||(this._mapPrototype=e=this.require(P.Map,6)),e}get functionPrototype(){let e=this._functionPrototype;return e||(this._functionPrototype=e=this.require(P.Function,6)),e}get int8ArrayPrototype(){let e=this._int8ArrayPrototype;return e||(this._int8ArrayPrototype=e=this.require(P.Int8Array,6)),e}get int16ArrayPrototype(){let e=this._int16ArrayPrototype;return e||(this._int16ArrayPrototype=e=this.require(P.Int16Array,6)),e}get int32ArrayPrototype(){let e=this._int32ArrayPrototype;return e||(this._int32ArrayPrototype=e=this.require(P.Int32Array,6)),e}get int64ArrayPrototype(){let e=this._int64ArrayPrototype;return e||(this._int64ArrayPrototype=e=this.require(P.Int64Array,6)),e}get uint8ArrayPrototype(){let e=this._uint8ArrayPrototype;return e||(this._uint8ArrayPrototype=e=this.require(P.Uint8Array,6)),e}get uint8ClampedArrayPrototype(){let e=this._uint8ClampedArrayPrototype;return e||(this._uint8ClampedArrayPrototype=e=this.require(P.Uint8ClampedArray,6)),e}get uint16ArrayPrototype(){let e=this._uint16ArrayPrototype;return e||(this._uint16ArrayPrototype=e=this.require(P.Uint16Array,6)),e}get uint32ArrayPrototype(){let e=this._uint32ArrayPrototype;return e||(this._uint32ArrayPrototype=e=this.require(P.Uint32Array,6)),e}get uint64ArrayPrototype(){let e=this._uint64ArrayPrototype;return e||(this._uint64ArrayPrototype=e=this.require(P.Uint64Array,6)),e}get float32ArrayPrototype(){let e=this._float32ArrayPrototype;return e||(this._float32ArrayPrototype=e=this.require(P.Float32Array,6)),e}get float64ArrayPrototype(){let e=this._float64ArrayPrototype;return e||(this._float64ArrayPrototype=e=this.require(P.Float64Array,6)),e}get stringInstance(){let e=this._stringInstance;return e||(this._stringInstance=e=this.requireClass(P.String)),e}get errorInstance(){let e=this._errorInstance;return e||(this._errorInstance=e=this.requireClass(P.Error)),e}get regexpInstance(){let e=this._regexpInstance;return e||(this._regexpInstance=e=this.requireClass(P.RegExp)),e}get objectPrototype(){let e=this._objectPrototype;return e||(this._objectPrototype=e=this.require(P.Object,6)),e}get objectInstance(){let e=this._objectInstance;return e||(this._objectInstance=e=this.requireClass(P.Object)),e}get templateStringsArrayInstance(){let e=this._templateStringsArrayInstance;return e||(this._templateStringsArrayInstance=e=this.requireClass(P.TemplateStringsArray)),e}get abortInstance(){let e=this.lookup(P.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(P.alloc)),e}get reallocInstance(){let e=this._reallocInstance;return e||(this._reallocInstance=e=this.requireFunction(P.realloc)),e}get freeInstance(){let e=this._freeInstance;return e||(this._freeInstance=e=this.requireFunction(P.free)),e}get newInstance(){let e=this._newInstance;return e||(this._newInstance=e=this.requireFunction(P.new_)),e}get renewInstance(){let e=this._renewInstance;return e||(this._renewInstance=e=this.requireFunction(P.renew)),e}get linkInstance(){let e=this._linkInstance;return e||(this._linkInstance=e=this.requireFunction(P.link)),e}get collectInstance(){let e=this._collectInstance;return e||(this._collectInstance=e=this.requireFunction(P.collect)),e}get visitInstance(){let e=this._visitInstance;return e||(this._visitInstance=e=this.requireFunction(P.visit)),e}get newBufferInstance(){let e=this._newBufferInstance;return e||(this._newBufferInstance=e=this.requireFunction(P.newBuffer)),e}get newArrayInstance(){let e=this._newArrayInstance;return e||(this._newArrayInstance=e=this.requireFunction(P.newArray)),e}get BLOCKInstance(){let e=this._BLOCKInstance;return e||(this._BLOCKInstance=e=this.requireClass(P.BLOCK)),e}get OBJECTInstance(){let e=this._OBJECTInstance;return e||(this._OBJECTInstance=e=this.requireClass(P.OBJECT)),e}getSource(e){let r=this.sources;for(let n=0;n<r.length;++n){let s=r[n];if(s.internalPath==e)return s.text}return null}get blockOverhead(){return this.BLOCKInstance.nextMemoryOffset}get objectOverhead(){return this.OBJECTInstance.nextMemoryOffset-this.blockOverhead+Ci&~Ci}get totalOverhead(){return this.blockOverhead+this.objectOverhead}searchFunctionByRef(e){let r=qp(e);if(r){let n=this.instancesByName;if(n.has(r)){let s=assert(n.get(r));if(s.kind==5)return s}}return null}computeBlockStart(e){let r=this.blockOverhead;return(e+r+Ci&~Ci)-r}computeBlockStart64(e){let r=i64_new(this.blockOverhead);return i64_sub(i64_align(i64_add(e,r),rg),r)}computeBlockSize(e,r){r&&(e+=this.objectOverhead);let n=this.computeBlockStart(e),s=this.blockOverhead,a=(3*this.options.usizeType.byteSize+s+Ci&~Ci)-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,r=0){let n=ce.native.range;return M.createVariableDeclaration(M.createIdentifierExpression(e,n),null,r,null,null,n)}makeNativeTypeDeclaration(e,r=0){let n=ce.native.range,s=M.createIdentifierExpression(e,n);return M.createTypeDeclaration(s,null,r,null,M.createOmittedType(n),n)}makeNativeFunctionDeclaration(e,r=0){let n=ce.native.range,s=this.nativeDummySignature;return s||(this.nativeDummySignature=s=M.createFunctionType([],M.createNamedType(M.createSimpleTypeName(P.void_,n),null,!1,n),null,!1,n)),M.createFunctionDeclaration(M.createIdentifierExpression(e,n),null,r,null,s,null,0,n)}makeNativeNamespaceDeclaration(e,r=0){let n=ce.native.range;return M.createNamespaceDeclaration(M.createIdentifierExpression(e,n),null,r,[],n)}makeNativeFunction(e,r,n=this.nativeFile,s=0,a=0){return new bt(e,new Je(e,n,this.makeNativeFunctionDeclaration(e,s),a),null,r)}getElementByDeclaration(e){let r=this.elementsByDeclaration;return r.has(e)?assert(r.get(e)):null}initialize(){if(this.initialized)return;this.initialized=!0;let e=this.options;this.registerNativeType(P.i8,p.i8),this.registerNativeType(P.i16,p.i16),this.registerNativeType(P.i32,p.i32),this.registerNativeType(P.i64,p.i64),this.registerNativeType(P.isize,e.isizeType),this.registerNativeType(P.u8,p.u8),this.registerNativeType(P.u16,p.u16),this.registerNativeType(P.u32,p.u32),this.registerNativeType(P.u64,p.u64),this.registerNativeType(P.usize,e.usizeType),this.registerNativeType(P.bool,p.bool),this.registerNativeType(P.f32,p.f32),this.registerNativeType(P.f64,p.f64),this.registerNativeType(P.void_,p.void),this.registerNativeType(P.number,p.f64),this.registerNativeType(P.boolean,p.bool),this.nativeFile.add(P.native,new et(P.native,this.nativeFile,this.makeNativeTypeDeclaration(P.native,65538),512)),this.nativeFile.add(P.indexof,new et(P.indexof,this.nativeFile,this.makeNativeTypeDeclaration(P.indexof,65538),512)),this.nativeFile.add(P.valueof,new et(P.valueof,this.nativeFile,this.makeNativeTypeDeclaration(P.valueof,65538),512)),this.nativeFile.add(P.returnof,new et(P.returnof,this.nativeFile,this.makeNativeTypeDeclaration(P.returnof,65538),512)),this.nativeFile.add(P.nonnull,new et(P.nonnull,this.nativeFile,this.makeNativeTypeDeclaration(P.nonnull,65538),512)),this.registerNativeType(P.v128,p.v128),this.registerNativeType(P.ref_func,p.func),this.registerNativeType(P.ref_extern,p.extern),this.registerNativeType(P.ref_any,p.any),this.registerNativeType(P.ref_eq,p.eq),this.registerNativeType(P.ref_struct,p.struct),this.registerNativeType(P.ref_array,p.array),this.registerNativeType(P.ref_i31,p.i31),this.registerNativeType(P.ref_string,p.string),this.registerNativeType(P.ref_stringview_wtf8,p.stringview_wtf8),this.registerNativeType(P.ref_stringview_wtf16,p.stringview_wtf16),this.registerNativeType(P.ref_stringview_iter,p.stringview_iter),this.registerConstantInteger(P.ASC_TARGET,p.i32,i64_new(e.isWasm64?2:1)),this.registerConstantInteger(P.ASC_RUNTIME,p.i32,i64_new(e.runtime)),this.registerConstantInteger(P.ASC_NO_ASSERT,p.bool,i64_new(e.noAssert?1:0,0)),this.registerConstantInteger(P.ASC_MEMORY_BASE,p.i32,i64_new(e.memoryBase,0)),this.registerConstantInteger(P.ASC_TABLE_BASE,p.i32,i64_new(e.tableBase,0)),this.registerConstantInteger(P.ASC_OPTIMIZE_LEVEL,p.i32,i64_new(e.optimizeLevelHint,0)),this.registerConstantInteger(P.ASC_SHRINK_LEVEL,p.i32,i64_new(e.shrinkLevelHint,0)),this.registerConstantInteger(P.ASC_LOW_MEMORY_LIMIT,p.i32,i64_new(e.lowMemoryLimit,0)),this.registerConstantInteger(P.ASC_EXPORT_RUNTIME,p.bool,i64_new(e.exportRuntime?1:0,0)),this.registerConstantInteger(P.ASC_VERSION_MAJOR,p.i32,i64_new(e.bundleMajorVersion)),this.registerConstantInteger(P.ASC_VERSION_MINOR,p.i32,i64_new(e.bundleMinorVersion)),this.registerConstantInteger(P.ASC_VERSION_PATCH,p.i32,i64_new(e.bundlePatchVersion)),this.registerConstantInteger(P.ASC_FEATURE_SIGN_EXTENSION,p.bool,i64_new(e.hasFeature(1)?1:0,0)),this.registerConstantInteger(P.ASC_FEATURE_MUTABLE_GLOBALS,p.bool,i64_new(e.hasFeature(2)?1:0,0)),this.registerConstantInteger(P.ASC_FEATURE_NONTRAPPING_F2I,p.bool,i64_new(e.hasFeature(4)?1:0,0)),this.registerConstantInteger(P.ASC_FEATURE_BULK_MEMORY,p.bool,i64_new(e.hasFeature(8)?1:0,0)),this.registerConstantInteger(P.ASC_FEATURE_SIMD,p.bool,i64_new(e.hasFeature(16)?1:0,0)),this.registerConstantInteger(P.ASC_FEATURE_THREADS,p.bool,i64_new(e.hasFeature(32)?1:0,0)),this.registerConstantInteger(P.ASC_FEATURE_EXCEPTION_HANDLING,p.bool,i64_new(e.hasFeature(64)?1:0,0)),this.registerConstantInteger(P.ASC_FEATURE_TAIL_CALLS,p.bool,i64_new(e.hasFeature(128)?1:0,0)),this.registerConstantInteger(P.ASC_FEATURE_REFERENCE_TYPES,p.bool,i64_new(e.hasFeature(256)?1:0,0)),this.registerConstantInteger(P.ASC_FEATURE_MULTI_VALUE,p.bool,i64_new(e.hasFeature(512)?1:0,0)),this.registerConstantInteger(P.ASC_FEATURE_GC,p.bool,i64_new(e.hasFeature(1024)?1:0,0)),this.registerConstantInteger(P.ASC_FEATURE_MEMORY64,p.bool,i64_new(e.hasFeature(2048)?1:0,0)),this.registerConstantInteger(P.ASC_FEATURE_RELAXED_SIMD,p.bool,i64_new(e.hasFeature(4096)?1:0,0)),this.registerConstantInteger(P.ASC_FEATURE_EXTENDED_CONST,p.bool,i64_new(e.hasFeature(8192)?1:0,0)),this.registerConstantInteger(P.ASC_FEATURE_STRINGREF,p.bool,i64_new(e.hasFeature(16384)?1:0,0)),this.registerConstantInteger(P.ASC_FEATURE_SHARED_EVERYTHING,p.bool,i64_new(e.hasFeature(32768)?1:0,0)),this.registerConstantInteger(P.ASC_FEATURE_CLOSURES,p.bool,i64_new(e.hasFeature(65536)?1:0,0));let r=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 _=this.sources[u],f=new ss(this,_);this.filesByName.set(f.internalName,f);let h=_.statements;for(let y=0,x=h.length;y<x;++y){let b=h[y];switch(b.kind){case 36:{this.initializeExports(b,f,n,s);break}case 37:{this.initializeExportDefault(b,f,a,l);break}case 43:{this.initializeImports(b,f,r,n);break}case 48:{this.initializeVariables(b,f);break}case 52:{this.initializeClass(b,f,a,l);break}case 53:{this.initializeEnum(b,f);break}case 56:{this.initializeFunction(b,f);break}case 58:{this.initializeInterface(b,f,a);break}case 60:{this.initializeNamespace(b,f,a,l);break}case 61:{this.initializeTypeDefinition(b,f);break}}}}for(let u=Map_keys(s),c=0,_=u.length;c<_;++c){let f=u[c],h=assert(s.get(f));for(let y=0,x=h.length;y<x;++y){let b=unchecked(h[y]),A=this.lookupForeignFile(b.foreignPath,b.foreignPathAlt);if(!A){this.error(6054,b.pathLiteral.range,b.pathLiteral.value);continue}f.ensureExportStar(A)}}do{let u=0,c=!1;for(;u<r.length;){let _=r[u],f=_.localIdentifier,h=_.foreignIdentifier,y=assert(this.lookupForeignFile(_.foreignPath,_.foreignPathAlt));if(h){let x=this.lookupForeign(h.text,y,n);x?(_.localFile.add(f.text,x,f),r.splice(u,1),c=!0):++u}else{let x=_.localFile,b=f.text;x.add(b,y.asAliasNamespace(b,x,f),f),r.splice(u,1),c=!0}}if(!c){for(let _=0,f=r.length;_<f;++_){let h=r[_],y=h.foreignIdentifier;y&&this.error(2305,y.range,h.foreignPath,y.text)}break}}while(!0);for(let u=Map_keys(n),c=0,_=u.length;c<_;++c){let f=unchecked(u[c]),h=assert(n.get(f));for(let y=Map_keys(h),x=0,b=y.length;x<b;++x){let A=unchecked(y[x]),I=assert(h.get(A)),E=I.localIdentifier.text,k=I.foreignPath;if(k){let F=assert(this.lookupForeignFile(k,assert(I.foreignPathAlt))),R=this.lookupForeign(E,F,n);R?f.ensureExport(A,R):this.error(2305,I.localIdentifier.range,k,E)}else{let F=f.getMember(E);if(F)f.ensureExport(A,F);else{let R=this.lookup(E);R&&ns(R.kind)?f.ensureExport(A,R):this.error(2305,I.foreignIdentifier.range,f.internalName,I.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,P.I8),this.registerWrapperClass(p.i16,P.I16),this.registerWrapperClass(p.i32,P.I32),this.registerWrapperClass(p.i64,P.I64),this.registerWrapperClass(e.isizeType,P.Isize),this.registerWrapperClass(p.u8,P.U8),this.registerWrapperClass(p.u16,P.U16),this.registerWrapperClass(p.u32,P.U32),this.registerWrapperClass(p.u64,P.U64),this.registerWrapperClass(e.usizeType,P.Usize),this.registerWrapperClass(p.bool,P.Bool),this.registerWrapperClass(p.f32,P.F32),this.registerWrapperClass(p.f64,P.F64),e.hasFeature(16)&&this.registerWrapperClass(p.v128,P.V128),e.hasFeature(256)&&(this.registerWrapperClass(p.func,P.RefFunc),this.registerWrapperClass(p.extern,P.RefExtern),e.hasFeature(1024)&&(this.registerWrapperClass(p.any,P.RefAny),this.registerWrapperClass(p.eq,P.RefEq),this.registerWrapperClass(p.struct,P.RefStruct),this.registerWrapperClass(p.array,P.RefArray),this.registerWrapperClass(p.i31,P.RefI31)),e.hasFeature(16384)&&this.registerWrapperClass(p.string,P.RefString));let o=this.resolver;for(let u=0,c=a.length;u<c;++u){let _=a[u],f=assert(_.extendsNode),h=o.resolveTypeName(f.name,null,_.parent);if(h){if(_.kind==6)if(h.kind==6){let y=h;y.hasDecorator(32)&&this.error(211,f.range,y.identifierNode.text),y.hasDecorator(16)!=_.hasDecorator(16)&&this.error(207,le.join(_.identifierNode.range,f.range)),_.extends(y)?this.error(2506,y.identifierNode.range,y.identifierNode.text):_.basePrototype=y}else this.error(1311,f.range);else if(_.kind==8)if(h.kind==8){let y=h;_.extends(y)?this.error(2506,y.identifierNode.range,y.identifierNode.text):_.basePrototype=y}else this.error(2312,f.range)}}for(let u=0,c=a.length;u<c;u++){let _=a[u],f=_.instanceMembers;if(f){let h=Map_values(f);for(let y=0,x=h.length;y<x;y++){let b=h[y],A=b.declaration;if(A.is(8192)){let I=_.basePrototype,E=!1;for(;I;){let k=I.instanceMembers;if(k&&k.has(b.name)){E=!0;break}I=I.basePrototype}if(!E){let k=assert(_.basePrototype);this.error(4117,A.name.range,k.name)}}}}}for(let u=0,c=l.length;u<c;++u){let _=l[u],f=assert(_.implementsNodes);for(let h=0,y=f.length;h<y;++h){let x=f[h],b=o.resolveTypeName(x.name,null,_.parent);if(b)if(b.kind==8){let A=b,I=_.interfacePrototypes;I||(_.interfacePrototypes=I=new Array),I.push(A)}else this.error(2422,x.range)}}for(let u=0,c=a.length;u<c;++u){let _=a[u],f=_.basePrototype;f&&this.processOverrides(_,f)}for(let u=0,c=l.length;u<c;++u){let _=l[u],f=_.basePrototype,h=_.interfacePrototypes;if(f&&this.processOverrides(_,f),h)for(let y=0,x=h.length;y<x;++y)this.processOverrides(_,h[y])}{let u=e.globalAliases;u||(u=new Map),u.has(P.abort)||u.set(P.abort,d.abort),u.has(P.trace)||u.set(P.trace,d.trace),u.has(P.seed)||u.set(P.seed,d.seed),u.has(P.Math)||u.set(P.Math,P.NativeMath),u.has(P.Mathf)||u.set(P.Mathf,P.NativeMathf);for(let c=Map_keys(u),_=0,f=c.length;_<f;++_){let h=unchecked(c[_]),y=changetype(u.get(h));if(assert(y!=null),!y.length){this.elementsByName.delete(h);continue}let x=y.charCodeAt(0);if(x>=48&&x<=57)this.registerConstantInteger(h,p.i32,i64_new(parseInt(y,10)));else{let b=this.elementsByName;b.has(y)?b.set(h,assert(b.get(y))):this.error(111,null,y)}}}for(let u=Map_values(this.filesByName),c=0,_=u.length;c<_;++c){let f=unchecked(u[c]);f.source.sourceKind==1&&this.markModuleExports(f)}}processOverrides(e,r){let n=e.instanceMembers;if(n){let s=Map_values(n),a=null;do{let l=r.instanceMembers;if(l)for(let c=0,_=s.length;c<_;++c){let f=s[c];if(l.has(f.name)){let h=assert(l.get(f.name));this.doProcessOverride(e,f,r,h)}}let o=r.interfacePrototypes;if(o)for(let c=0,_=o.length;c<_;++c){let f=o[c];f!=r&&this.processOverrides(e,f)}let u=r.basePrototype;if(!u||(a||(a=new Set),a.add(r),a.has(u)))break;r=u}while(!0)}}doProcessOverride(e,r,n,s){if(!r.isAny(524800))if(r.kind==4&&s.kind==4){let a=r,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(r);let _=l.instances;if(_)for(let f=Map_values(_),h=0,y=f.length;h<y;++h)f[h].set(268435456)}else if(r.kind==10&&s.kind==10){let a=r,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 f=o.unboundOverrides;f||(o.unboundOverrides=f=new Set),f.add(c)}let _=o.instances;if(_)for(let f=Map_values(_),h=0,y=f.length;h<y;++h)f[h].set(268435456)}let u=l.setterPrototype;if(u&&a.setterPrototype){u.set(268435456);let c=a.setterPrototype;if(c){let f=u.unboundOverrides;f||(u.unboundOverrides=f=new Set),f.add(c)}let _=u.instances;if(_)for(let f=Map_values(_),h=0,y=f.length;h<y;++h)f[h].set(268435456)}}else this.errorRelated(2416,r.identifierNode.range,s.identifierNode.range,r.name,e.internalName,n.internalName)}lookup(e){let r=this.elementsByName;return r.has(e)?assert(r.get(e)):null}require(e,r){let n=this.lookup(e);if(!n)throw this.error(111,null,e),new Error(`Missing standard library component: ${e}`);if(n.kind!=r)throw this.error(111,null,e),new Error(`Invalid standard library component kind: ${e}`);return n}requireGlobal(e){return this.require(e,0)}requireClass(e){let r=this.require(e,6),n=this.resolver.resolveClass(r,null);if(!n)throw new Error(`Invalid standard library class: ${e}`);return n}requireFunction(e,r=null){let n=this.require(e,4),s=this.resolver.resolveFunction(n,r);if(!s)throw new Error(`Invalid standard library function: ${e}`);return s}markModuleExports(e){let r=e.exports;if(r)for(let s=Map_values(r),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 r=e.members;if(r)for(let n=Map_values(r),s=0,a=n.length;s<a;++s){let l=unchecked(n[s]);this.markModuleExport(l)}}markModuleImport(e,r,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(r,n)}registerNativeType(e,r){let n=new et(e,this.nativeFile,this.makeNativeTypeDeclaration(e,2),512);n.setType(r),this.nativeFile.add(e,n)}registerWrapperClass(e,r){let n=this.wrapperClasses;assert(!e.isInternalReference&&!n.has(e));let s=assert(this.lookup(r));assert(s.kind==6);let a=assert(this.resolver.resolveClass(s,null));a.wrappedType=e,n.set(e,a)}registerConstantInteger(e,r,n){assert(r.isIntegerInclReference);let s=new Pr(e,this.nativeFile,1024,this.makeNativeVariableDeclaration(e,10));s.setConstantIntegerValue(n,r),this.nativeFile.add(e,s)}registerConstantFloat(e,r,n){assert(r.isFloatValue);let s=new Pr(e,this.nativeFile,1024,this.makeNativeVariableDeclaration(e,10));s.setConstantFloatValue(n,r),this.nativeFile.add(e,s)}ensureGlobal(e,r){let n=this.elementsByName;if(n.has(e)){let s=assert(n.get(e));if(s!=r){let a=ec(s,r);if(!a)return ns(s.kind)?this.errorRelated(2300,r.identifierNode.range,s.declaration.name.range,e):this.error(2300,r.identifierNode.range,e),r;r=a}}return n.set(e,r),r}lookupForeignFile(e,r){let n=this.filesByName;return n.has(e)?assert(n.get(e)):n.has(r)?assert(n.get(r)):null}lookupForeign(e,r,n){do{let a=r.lookupExport(e);if(a)return a;if(n.has(r)){let l=assert(n.get(r));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,r=c;continue}if(a=r.getMember(o.localIdentifier.text),a)return a}}break}while(!0);let s=r.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,r){let n=0;if(e)for(let s=0,a=e.length;s<a;++s){let l=e[s],o=$e.fromNode(l.name),u=sr.fromKind(o);u&&(r&u?n&u?this.error(213,l.range):n|=u:this.error(212,l.range,l.name.range.toString()))}return n}checkFeatureEnabled(e,r){return this.options.hasFeature(e)?!0:(this.error(103,r.range,oi(e)),!1)}checkTypeSupported(e,r){switch(e.kind){case 13:return this.checkFeatureEnabled(16,r);case 15:case 14:return e.is(512)?this.checkFeatureEnabled(256,r):this.checkFeatureEnabled(1024,r);case 16:case 17:case 18:case 19:case 20:return this.checkFeatureEnabled(256,r)&&this.checkFeatureEnabled(1024,r);case 21:case 22:case 23:case 24:return this.checkFeatureEnabled(256,r)&&this.checkFeatureEnabled(16384,r)}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.checkTypeSupported(s[a],r))return!1}n=n.base}while(n);else{let s=e.getSignature();if(s){let a=s.thisType;if(a&&!this.checkTypeSupported(a,r))return!1;let l=s.parameterTypes;for(let u=0,c=l.length;u<c;++u)if(!this.checkTypeSupported(l[u],r))return!1;let o=s.returnType;if(!this.checkTypeSupported(o,r))return!1}}return!0}initializeClass(e,r,n,s){let a=e.name.text,l=new ls(a,r,e,this.checkDecorators(e.decorators,368689));if(!r.add(a,l))return null;let o=e.implementsTypes;if(o){let c=o.length;c&&(l.hasDecorator(16)?this.error(208,le.join(e.name.range,o[c-1].range)):s.push(l))}e.extendsType?n.push(l):!l.hasDecorator(16)&&l.internalName!=d.Object&&(l.implicitlyExtendsObject=!0);let u=e.members;for(let c=0,_=u.length;c<_;++c){let f=u[c];switch(f.kind){case 55:{this.initializeField(f,l);break}case 59:{let h=f;if(h.is(128)&&h.is(65536)&&this.error(241,h.name.range,h.name.text),f.isAny(6144))this.initializeProperty(h,l);else{let y=this.initializeMethod(h,l);y&&h.name.kind==27&&(l.constructorPrototype=y)}break}case 66:break;default:assert(!1)}}return l}initializeField(e,r){let n=e.name.text,s=e.decorators,a,l=2048;if(l|=524288,r.is(32768)&&(l|=128),e.is(32)){if(assert(r.kind!=8),l|=1024,e.is(64)&&(l|=64),a=new Pr(n,r,this.checkDecorators(s,l),e),!r.add(n,a))return}else if(assert(!e.isAny(6272)),a=Pi.forField(n,r,e,this.checkDecorators(s,l)),!r.addInstance(n,a))return}initializeMethod(e,r){let n=e.name.text,s=e.is(32),a=2112;e.is(65536)||(a|=147470),r.is(32768)&&(a|=128),e.range.source.isLibrary&&(a|=512);let l=new Je(n,r,e,this.checkDecorators(e.decorators,a));if(l.hasDecorator(512)&&!g.has(l.internalName)&&this.error(100,e.range,`Builtin '${l.internalName}'`),s){if(assert(e.name.kind!=27),!r.add(n,l))return null}else if(!r.addInstance(n,l))return null;return this.checkOperatorOverloads(e.decorators,l,r),l}checkOperatorOverloads(e,r,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 _=c.value,f=Re.fromDecorator(l.decoratorKind,_);if(f==0)this.error(224,c.range,_);else{let h=n.operatorOverloadPrototypes;h.has(f)?this.error(2393,c.range):(r.operatorKind=f,h.set(f,r))}}else this.error(1141,c.range)}else this.error(2554,l.range,"1",u.toString())}}}}ensureProperty(e,r){let n=e.name.text;if(e.is(32)){let s=r.members;if(s&&s.has(n)){let a=assert(s.get(n));if(a.kind==10)return a}else{let a=new Pi(n,r,e);return r.add(n,a)?a:null}}else{let s=r.instanceMembers;if(s&&s.has(n)){let a=assert(s.get(n));if(a.kind==10)return a}else{let a=new Pi(n,r,e);return r.addInstance(n,a)?a:null}}return this.error(2718,e.name.range,n),null}initializeProperty(e,r){let n=this.ensureProperty(e,r);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 Je((a?la:oa)+s,n.parent,e,this.checkDecorators(e.decorators,2112));a?n.getterPrototype=l:n.setterPrototype=l}initializeEnum(e,r){let n=e.name.text,s=new Hl(n,r,e,this.checkDecorators(e.decorators,1089));if(!r.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,r){let n=e.name.text,s=new Ql(n,r,e,this.checkDecorators(e.decorators,0));r.add(n,s)}initializeExports(e,r,n,s){let a=e.members;if(a)for(let l=0,o=a.length;l<o;++l)this.initializeExport(a[l],r,e.internalPath,n);else{let l;s.has(r)?l=assert(s.get(r)):s.set(r,l=[]);let o=e.internalPath;l.push(new Jp(o,o.endsWith(ze)?o.substring(0,o.length-ze.length):o+ze,assert(e.path)))}}initializeExport(e,r,n,s){let a=e.localName.text,l=e.exportedName.text,o=r.lookupExport(l);if(o){this.error(2484,e.exportedName.range,l);return}if(n==null)if(o=r.getMember(a))r.ensureExport(l,o);else{let u;s.has(r)?u=assert(s.get(r)):s.set(r,u=new Map),u.set(l,new jl(e.localName,e.exportedName,null,null))}else{let u;s.has(r)?u=assert(s.get(r)):s.set(r,u=new Map),u.set(l,new jl(e.localName,e.exportedName,n,n.endsWith(ze)?n.substring(0,n.length-ze.length):n+ze))}}initializeExportDefault(e,r,n,s){let a=e.declaration,l=null;switch(a.kind){case 53:{l=this.initializeEnum(a,r);break}case 56:{l=this.initializeFunction(a,r);break}case 52:{l=this.initializeClass(a,r,n,s);break}case 58:{l=this.initializeInterface(a,r,n);break}case 60:{l=this.initializeNamespace(a,r,n,s);break}default:assert(!1)}if(l){let o=r.exports;if(!o)r.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,r,n,s){let a=e.declarations;if(a)for(let l=0,o=a.length;l<o;++l)this.initializeImport(a[l],r,e.internalPath,n,s);else{let l=e.namespaceName;l&&n.push(new Kl(r,l,null,e.internalPath,e.internalPath+ze))}}initializeImport(e,r,n,s,a){let l=n.endsWith(ze)?n.substring(0,n.length-ze.length):n+ze,o=this.lookupForeignFile(n,l);if(o){let u=this.lookupForeign(e.foreignName.text,o,a);if(u){r.add(e.name.text,u,e.name);return}}s.push(new Kl(r,e.name,e.foreignName,n,l))}initializeFunction(e,r){let n=e.name.text,s=2048;s|=1048576,e.is(32768)?s|=384:(s|=64,(e.range.source.isLibrary||e.is(2))&&(s|=1024)),e.is(262144)||r.kind!=6&&(s|=1,e.is(65536)||(s|=4096)),e.is(65536)||(s|=16384),e.range.source.isLibrary&&(s|=512);let a=new Je(n,r,e,this.checkDecorators(e.decorators,s));return a.hasDecorator(512)&&!g.has(a.internalName)&&this.error(100,e.range,`Builtin '${a.internalName}'`),a.hasDecorator(4096)&&(this.mainFunction?this.error(213,e.range):this.mainFunction=a),r.add(n,a)?a:null}initializeInterface(e,r,n){let s=e.name.text,a=new Xl(s,r,e,this.checkDecorators(e.decorators,1));if(!r.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 55:{this.initializeFieldAsProperty(c,a);break}case 59:{let _=c;_.is(65536)&&this.error(241,_.name.range,_.name.text),c.isAny(6144)?this.initializeProperty(_,a):this.initializeMethod(_,a);break}default:assert(!1)}}return a}initializeFieldAsProperty(e,r){let n=e.initializer;n&&this.error(1246,n.range);let s=e.type;s||(s=M.createOmittedType(e.name.range.atEnd)),this.initializeProperty(M.createMethodDeclaration(e.name,e.decorators,e.flags|2048,null,M.createFunctionType([],s,null,!1,e.range),null,e.range),r),e.is(64)||this.initializeProperty(M.createMethodDeclaration(e.name,e.decorators,e.flags|4096,null,M.createFunctionType([M.createParameter(0,e.name,s,null,e.name.range)],M.createOmittedType(e.name.range.atEnd),null,!1,e.range),null,e.range),r)}initializeNamespace(e,r,n,s){let a=e.name.text,l=new as(a,r,e,this.checkDecorators(e.decorators,1));if(!r.add(a,l))return null;let o=assert(r.getMember(a)),u=e.members;for(let c=0,_=u.length;c<_;++c){let f=u[c];switch(f.kind){case 52:{this.initializeClass(f,l,n,s);break}case 53:{this.initializeEnum(f,l);break}case 56:{this.initializeFunction(f,l);break}case 58:{this.initializeInterface(f,l,n);break}case 60:{this.initializeNamespace(f,l,n,s);break}case 61:{this.initializeTypeDefinition(f,l);break}case 48:{this.initializeVariables(f,l);break}default:assert(!1)}}return l!=o&&Ut(l,o),o}initializeTypeDefinition(e,r){let n=e.name.text,s=new et(n,r,e,this.checkDecorators(e.decorators,0));r.add(n,s)}initializeVariables(e,r){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 Pr(o,r,this.checkDecorators(l.decorators,u),l);c.hasDecorator(512)&&!ot.has(c.internalName)&&this.error(100,l.range,`Builtin '${c.internalName}'`),r.add(o,c)}}},yt=(b=>(b[b.Global=0]="Global",b[b.Local=1]="Local",b[b.Enum=2]="Enum",b[b.EnumValue=3]="EnumValue",b[b.FunctionPrototype=4]="FunctionPrototype",b[b.Function=5]="Function",b[b.ClassPrototype=6]="ClassPrototype",b[b.Class=7]="Class",b[b.InterfacePrototype=8]="InterfacePrototype",b[b.Interface=9]="Interface",b[b.PropertyPrototype=10]="PropertyPrototype",b[b.Property=11]="Property",b[b.Namespace=12]="Namespace",b[b.File=13]="File",b[b.TypeDefinition=14]="TypeDefinition",b[b.IndexSignature=15]="IndexSignature",b))(yt||{}),sr=(R=>(R[R.None=0]="None",R[R.Global=1]="Global",R[R.OperatorBinary=2]="OperatorBinary",R[R.OperatorPrefix=4]="OperatorPrefix",R[R.OperatorPostfix=8]="OperatorPostfix",R[R.Unmanaged=16]="Unmanaged",R[R.Final=32]="Final",R[R.Inline=64]="Inline",R[R.External=128]="External",R[R.ExternalJs=256]="ExternalJs",R[R.Builtin=512]="Builtin",R[R.Lazy=1024]="Lazy",R[R.Unsafe=2048]="Unsafe",R[R.Main=4096]="Main",R[R.Data=8192]="Data",R[R.Remote=16384]="Remote",R[R.Service=32768]="Service",R[R.Rest=65536]="Rest",R[R.Route=131072]="Route",R[R.Database=262144]="Database",R[R.Collection=524288]="Collection",R[R.DbFunction=1048576]="DbFunction",R))(sr||{});(i=>{function t(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 32;case 8:return 64;case 9:return 128;case 10:return 256;case 11:return 512;case 12:return 1024;case 13:return 2048;case 14:return 4096;case 15:return 8192;case 16:return 16384;case 17:return 32768;case 18:return 65536;case 19:case 20:case 21:case 22:case 23:case 24:case 25:case 26:return 131072;case 31:return 262144;case 32:return 524288;case 33:case 34:case 35:case 36:case 37:return 1048576;default:return 0}}i.fromKind=t})(sr||={});var is=class{constructor(i,e,r,n,s){this.kind=i;this.name=e;this.internalName=r;this.program=n;this.flags=0;this.decoratorFlags=0;this.members=null;this.shadowType=null;this.program=n,this.name=e,this.internalName=r,s?this.parent=s:(assert(this.kind==13),this.parent=this)}get file(){let i=this;do if(i=i.parent,i.kind==13)return i;while(!0)}is(i){return(this.flags&i)==i}isAny(i){return(this.flags&i)!=0}set(i){this.flags|=i}unset(i){this.flags&=~i}hasDecorator(i){return(this.decoratorFlags&i)==i}hasAnyDecorator(i){return(this.decoratorFlags&i)!=0}getMember(i){let e=this.members;return e&&e.has(i)?assert(e.get(i)):null}lookup(i,e=!1){return this.parent.lookup(i,e)}add(i,e,r=null){let n=e.declaration,s=this.members;if(!s)this.members=s=new Map;else if(s.has(i)){let l=assert(s.get(i));if(l.parent==this){let o=ec(l,e);if(o)e=o;else{let u=r||e.identifierNode;return ns(l.kind)?this.program.errorRelated(2300,u.range,l.identifierNode.range,u.text):this.program.error(2300,u.range,u.text),!1}}}s.set(i,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(i){if(this.isPublic==i.isPublic)return!0;let e=1536;return(this.flags&e)==(i.flags&e)}visibilityNoLessThan(i){return this.isPublic?!0:this.is(512)?i.is(512):this.is(1024)?i.isAny(1536):assert(!1)}get isBound(){switch(this.parent.kind){case 7:case 9:return!0}return!1}getBoundClassOrInterface(){let i=this.parent;switch(i.kind){case 7:case 9:return i}return null}toString(){return`${this.internalName}, kind=${this.kind}`}},ig=new Set;function ns(t){return ig.has(t)}var nr=class extends is{constructor(e,r,n,s,a,l){super(e,r,n,s,a);this.declaration=l;ig.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,r=e.name;if(e.kind==56||e.kind==59){let n=e.signature;if(r.range.source==n.range.source)return le.join(r.range,n.range)}return r.range}get decoratorNodes(){return this.declaration.decorators}},ng=new Set;function Vl(t){return ng.has(t)}var Vt=class extends nr{constructor(e,r,n,s,a,l){super(e,r,n,s,a,l);this.type=p.void;ng.add(e)}setType(e){assert(!this.is(4194304)),this.type=e,this.set(4194304)}},ss=class extends is{constructor(e,r){super(13,r.normalizedPath,r.internalPath,e,null);this.source=r;this.exports=null;this.exportsStar=null;this.aliasNamespaces=new Array;this.source=r,assert(!e.filesByName.has(this.internalName)),e.filesByName.set(this.internalName,this);let n=this.program.makeNativeFunction(`start:${this.internalName}`,We.create(e,[],p.void),this);n.internalName=n.name,this.startFunction=n}add(e,r,n=null){return r.hasDecorator(1)&&(r=this.program.ensureGlobal(e,r)),super.add(e,r,n)?(r=assert(this.getMember(e)),r.is(2)&&!n&&this.ensureExport(r.name,r),!0):!1}getMember(e){let r=super.getMember(e);if(r)return r;let n=this.exportsStar;if(n){for(let s=0,a=n.length;s<a;++s)if(r=n[s].getMember(e))return r}return null}lookup(e,r=!1){let n=this.getMember(e);return n||this.program.lookup(e)}ensureExport(e,r){let n=this.exports;n||(this.exports=n=new Map),n.set(e,r),this.source.sourceKind==3&&this.program.ensureGlobal(e,r);for(let s=0;s<this.aliasNamespaces.length;s++)this.aliasNamespaces[s].add(e,r)}ensureExportStar(e){let r=this.exportsStar;if(!r)this.exportsStar=r=[];else if(r.includes(e))return;r.push(e)}lookupExport(e){let r=this.exports;if(r&&r.has(e))return assert(r.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,r,n){let s=this.program.makeNativeNamespaceDeclaration(e);s.name=n;let a=new as(e,r,s);return a.set(67108864),this.copyExportsToNamespace(a),this.aliasNamespaces.push(a),a}copyExportsToNamespace(e){let r=this.exports;if(r)for(let s=Map_keys(r),a=0,l=s.length;a<l;++a){let o=unchecked(s[a]),u=assert(r.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)}},et=class extends Vt{constructor(i,e,r,n=0){super(14,i,Ce(i,e,!1),e.program,e,r),this.decoratorFlags=n}get typeParameterNodes(){return this.declaration.typeParameters}get typeNode(){return this.declaration.type}},as=class extends nr{constructor(i,e,r,n=0){super(12,i,Ce(i,e,!1),e.program,e,r),this.decoratorFlags=n}lookup(i,e=!1){let r=this.getMember(i);return r||super.lookup(i,e)}},Hl=class extends Vt{constructor(e,r,n,s=0){super(2,e,Ce(e,r,!1),r.program,r,n);this.toStringFunctionName=null;this.decoratorFlags=s,this.setType(p.i32)}lookup(e,r=!1){let n=this.getMember(e);return n||super.lookup(e,r)}},Yp=(r=>(r[r.None=0]="None",r[r.Integer=1]="Integer",r[r.Float=2]="Float",r))(Yp||{}),Br=class extends Vt{constructor(e,r,n,s=n.program.makeNativeVariableDeclaration(r)){super(e,r,Ce(r,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,r){assert(r.isIntegerInclReference),this.type=r,this.constantValueKind=1,this.constantIntegerValue=e,this.set(37748744)}setConstantFloatValue(e,r){assert(r.isFloatValue),this.type=r,this.constantValueKind=2,this.constantFloatValue=e,this.set(37748744)}},Ql=class extends Br{constructor(e,r,n,s=0){super(3,e,r,n);this.isImmutable=!1;this.decoratorFlags=s,this.setType(p.i32)}get valueNode(){return this.declaration.initializer}},Pr=class extends Br{constructor(i,e,r,n=e.program.makeNativeVariableDeclaration(i)){super(0,i,e,n),this.decoratorFlags=r}},Zp=class{constructor(i,e,r=null){this.name=i;this.type=e;this.initializer=r}},qe=class extends Br{constructor(e,r,n,s,a=s.program.makeNativeVariableDeclaration(e)){super(1,e,s,a);this.index=r;this.isCaptured=!1;this.envSlotIndex=-1;this.envOwner=null;this.wasAccessedAsLocal=!1;this.originalName=e,this.index=r,assert(n!=p.void),this.setType(n)}declaredByFlow(e){return this.parent==e.targetFunction}},Je=class t extends nr{constructor(e,r,n,s=0){super(4,e,Ce(e,r,n.is(262144)),r.program,r,n);this.operatorKind=0;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}toBound(e){assert(this.is(262144)),assert(!this.isBound);let r=this.boundPrototypes;if(!r)this.boundPrototypes=r=new Map;else if(r.has(e))return assert(r.get(e));let n=this.declaration;assert(n.kind==59);let s=new t(this.name,e,n,this.decoratorFlags);return s.flags=this.flags,s.operatorKind=this.operatorKind,s.unboundOverrides=this.unboundOverrides,r.set(e,s),s}getResolvedInstance(e){let r=this.instances;return r&&r.has(e)?assert(r.get(e)):null}setResolvedInstance(e,r){let n=this.instances;n?assert(!n.has(e)):this.instances=n=new Map,n.set(e,r)}},bt=class t extends Vt{constructor(e,r,n,s,a=null){super(5,e,Ce(e,r.parent,r.is(262144)),r.program,r.parent,r.declaration);this.localsByIndex=[];this.debugLocations=new Map;this.ref=0;this.varargsStub=null;this.overrideStub=null;this.memorySegment=null;this.nextInlineId=0;this.nextAnonymousId=0;this.capturedLocals=null;this.envClass=null;this.envLocal=null;this.outerFunction=null;this.closureEnvLocal=null;this.needsCaptureRecompile=!1;this.nextBreakId=0;this.breakStack=null;this.prototype=r,this.typeArguments=n,this.signature=s,this.flags=r.flags|4194304,this.decoratorFlags=r.decoratorFlags,this.contextualTypeArguments=a,this.original=this;let l=r.program;this.type=s.type;let o=Dt.createDefault(this);if(this.flow=o,!r.is(32768)){let u=0,c=s.thisType;if(c){let f=new qe(P.this_,u++,c,this),h=this.flow.scopedLocals;h||(this.flow.scopedLocals=h=new Map),h.set(P.this_,f),this.localsByIndex[f.index]=f,o.setLocalFlag(f.index,8)}let _=s.parameterTypes;for(let f=0,h=_.length;f<h;++f){let y=_[f],x=this.getParameterName(f),b=new qe(x,u++,y,this),A=this.flow.scopedLocals;A||(this.flow.scopedLocals=A=new Map),A.set(x,b),this.localsByIndex[b.index]=b,o.setLocalFlag(b.index,8)}}l.instancesByName.has(this.internalName)?(l.error(2393,r.declaration.name.range),this.set(16777216)):$p(l,this)}get needsEnvironment(){return this.capturedLocals!=null&&this.capturedLocals.size>0}getNonParameterLocalTypes(){let e=this.localsByIndex,r=this.signature,n=e.length,s=r.parameterTypes.length;r.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 r=this.declaration.signature.parameters;return r.length>e?r[e].name.text:sg(e)}newStub(e,r=this.signature.requiredParameters){let n=new t(this.original.name+op+e,this.prototype,this.typeArguments,this.signature.clone(r),this.contextualTypeArguments);return n.original=this.original,n.set(this.flags&-8388609|134217728),n}addLocal(e,r=null,n=null){let s=this.localsByIndex,a=s.length,l=r??a.toString();n||(n=this.program.makeNativeVariableDeclaration(l));let o=new qe(l,a,e,this,n);if(r){let u=this.flow,c=u.scopedLocals;if(c||(u.scopedLocals=c=new Map),c.has(r))throw new Error("duplicate local name");c.set(r,o)}return s[a]=o,o}lookup(e,r=!1){if(!r){let n=this.flow.scopedLocals;if(n&&n.has(e))return assert(n.get(e))}return super.lookup(e,r)}finalize(e,r){this.ref=r;let n=this.breakStack;assert(!n||!n.length),this.breakStack=null,this.addDebugInfo(e,r)}addDebugInfo(e,r){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(r,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(r,a,o)}}}},Pi=class t extends nr{constructor(e,r,n){super(10,e,Ce(e,r,n.is(262144)),r.program,r,n);this.fieldDeclaration=null;this.getterPrototype=null;this.setterPrototype=null;this.instance=null;this.boundPrototypes=null;this.flags&=-6145}static forField(e,r,n,s){let a=ce.native.range,l=n.type;l||(l=M.createOmittedType(n.name.range.atEnd));let o=new Fr(n.name,n.decorators,n.flags|262144|2048,null,new Ir([],l,null,!1,a),null,a),u=new Fr(n.name,n.decorators,n.flags|262144|4096,null,new Ir([new xi(0,n.name,l,null,a)],new de(new bi(new je("",!1,a),null,a),null,!1,a),null,!1,a),null,a),c=new t(e,r,o);return c.fieldDeclaration=n,c.decoratorFlags=s,c.getterPrototype=new Je(la+e,r,o,s),c.setterPrototype=new Je(oa+e,r,u,s),c}get isField(){return this.fieldDeclaration!=null}get typeNode(){let e=this.fieldDeclaration;if(e)return e.type;let r=this.getterPrototype;if(r){let s=r.declaration;if(s.kind==56)return s.signature.returnType}let n=this.setterPrototype;if(n){let s=n.declaration;if(s.kind==56){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 r=this.boundPrototypes;if(!r)this.boundPrototypes=r=new Map;else if(r.has(e))return assert(r.get(e));let n=this.declaration;assert(n.kind==59);let s=new t(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)),r.set(e,s),s}},Jn=class extends Br{constructor(e,r){super(11,e.name,r,e.isField?assert(e.fieldDeclaration):M.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)&&$p(this.program,this)}get isField(){return this.prototype.isField}checkVisibility(e){let r=this.getterInstance,n=this.setterInstance;r&&n&&!r.visibilityNoLessThan(n)&&e.errorRelated(2808,r.identifierNode.range,n.identifierNode.range,r.identifierNode.text)}},Zn=class extends Vt{constructor(i){super(15,"[]",i.internalName+"[]",i.program,i,i.program.makeNativeVariableDeclaration("[]"))}getGetterInstance(i){return this.parent.lookupOverload(1,i)}getSetterInstance(i){return this.parent.lookupOverload(2,i)}},ls=class extends nr{constructor(e,r,n,s=0,a=!1){super(a?8:6,e,Ce(e,r,n.is(262144)),r.program,r,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 r=this,n=new Set;do{if(n.has(r))break;if(n.add(r),r==e)return!0;r=r.basePrototype}while(r);return!1}addInstance(e,r){let n=r.declaration,s=this.instanceMembers;if(!s)this.instanceMembers=s=new Map;else if(s.has(e)){let a=assert(s.get(e)),l=ec(a,r);if(!l)return ns(a.kind)?this.program.errorRelated(2300,r.identifierNode.range,a.declaration.name.range,r.identifierNode.text):this.program.error(2300,r.identifierNode.range,r.identifierNode.text),!1;r=l}return s.set(e,r),r.is(2)&&this.is(1048576)&&r.set(1048576),this.program.elementsByDeclaration.set(n,r),!0}getResolvedInstance(e){let r=this.instances;return r&&r.has(e)?r.get(e):null}setResolvedInstance(e,r){let n=this.instances;n?assert(!n.has(e)):this.instances=n=new Map,n.set(e,r)}},ir=class extends Vt{constructor(e,r,n=null,s=!1){super(s?9:7,e,Ce(e,r.parent,r.is(262144)),r.program,r.parent,r.declaration);this.base=null;this.interfaces=null;this.contextualTypeArguments=null;this.nextMemoryOffset=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=r,this.flags=r.flags,this.decoratorFlags=r.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=r.typeParameterNodes;if(n){let c=n.length;if(!u||c!=u.length)throw new Error("type argument count mismatch");if(c){let _=this.contextualTypeArguments;_||(this.contextualTypeArguments=_=new Map);for(let f=0;f<c;++f)_.set(u[f].name.text,n[f])}}else if(u&&u.length>0)throw new Error("type argument count mismatch");$p(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,r){if(e==r)return e;let n=new Set;for(n.add(e),n.add(r);;){let s=e.base,a=r.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(r=a)}}}setBase(e){assert(!this.base),this.base=e;let r=e.contextualTypeArguments;if(r){let a=this.contextualTypeArguments;for(let l=Map_keys(r),o=0,u=l.length;o<u;++o){let c=unchecked(l[o]),_=assert(r.get(c));a?a.has(c)||a.set(c,_):(this.contextualTypeArguments=a=new Map,a.set(c,_))}}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 r=this;do{let n=r.extenders;n||(r.extenders=n=new Set),n.add(e),r=r.base}while(r)}propagateInterfaceDown(e){let r=e,n=this.extenders;do{let s=r.implementers;if(s||(r.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)}r=r.base}while(r)}addInterface(e){let r=this.interfaces;r||(this.interfaces=r=new Set),r.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,r=!1){if(r)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,r=null){let n=this.getMember(e);return n&&n.kind==4?this.program.resolver.resolveFunction(n,r):null}offsetof(e){let r=assert(this.getMember(e));assert(r.kind==10);let s=r.instance;return s?(assert(s.isField&&s.memoryOffset>=0),s.memoryOffset):0}createBuffer(e=0){let r=this.program,n=this.nextMemoryOffset+e,s=r.computeBlockSize(n,!0),a=new Uint8Array(r.blockOverhead+s),l=r.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,r,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(r)),_e(i32(r),n,u),1;case 2:case 7:return assert(!i64_is(r)),Yt(i32(r),n,u),2;case 3:case 8:return assert(!i64_is(r)),me(i32(r),n,u),4;case 5:case 10:return this.program.options.isWasm64?(i64_is(r)?_i(r,n,u):pa(i32(r),n,u,c==10),8):(i64_is(r)?up(r,n,u,c==10):me(i32(r),n,u),4);case 4:case 9:return i64_is(r)?_i(r,n,u):pa(i32(r),n,u,c==9),8;case 11:return assert(!i64_is(r)),Tr(f32(r),n,u),4;case 12:return assert(!i64_is(r)),Ar(f64(r),n,u),8}}return assert(!1),0}extendsPrototype(e){return this.prototype.extends(e)}getTypeArgumentsTo(e){let r=this;do{if(r.prototype==e)return r.typeArguments;r=r.base}while(r);return null}getArrayValueType(){let e=this,r=this.program,n=r.arrayPrototype;if(this.extendsPrototype(n))return this.getTypeArgumentsTo(n)[0];let s=r.staticArrayPrototype;if(this.extendsPrototype(s))return this.getTypeArgumentsTo(s)[0];let a=r.arrayBufferViewInstance;for(;e.base!=a;)e=assert(e.base);let l=e.prototype;switch(l.name.charCodeAt(0)){case 70:{if(l==r.float32ArrayPrototype)return p.f32;if(l==r.float64ArrayPrototype)return p.f64;break}case 73:{if(l==r.int8ArrayPrototype)return p.i8;if(l==r.int16ArrayPrototype)return p.i16;if(l==r.int32ArrayPrototype)return p.i32;if(l==r.int64ArrayPrototype)return p.i64;break}case 85:{if(l==r.uint8ArrayPrototype)return p.u8;if(l==r.uint8ClampedArrayPrototype)return p.u8;if(l==r.uint16ArrayPrototype)return p.u16;if(l==r.uint32ArrayPrototype)return p.u32;if(l==r.uint64ArrayPrototype)return p.u64;break}}return assert(!1),p.void}get isPointerfree(){let e=this.program,r=this.members;if(r){for(let n=Map_values(r),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(r.has(P.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 r=this.extenders;return r!=null&&r.has(e)}hasExtenderImplementing(e){let r=this.extenders;if(r){for(let n=Set_values(r),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 r=this.implementers;return r!=null&&r.has(e)}hasImplementerImplementing(e){let r=this.implementers;if(r){for(let n=Set_values(r),s=0,a=n.length;s<a;++s)if(n[s].implements(e))return!0}return!1}},Xl=class extends ls{constructor(i,e,r,n){super(i,e,r,n,!0)}},Yn=class extends ir{constructor(i,e,r=null){super(i,e,r,!0)}};function $p(t,i){assert(!t.instancesByName.has(i.internalName)),t.instancesByName.set(i.internalName,i)}function ec(t,i){if(assert(t.program==i.program),i.members)return null;let e=null;switch(t.kind){case 4:{switch(i.kind){case 12:{Ut(i,t),e=t;break}case 14:{t.shadowType||(t.shadowType=i,Ut(i,t),e=t);break}}break}case 6:case 2:{if(i.kind==12){Ut(i,t),e=t;break}break}case 12:{switch(i.kind){case 2:case 6:case 4:{Ut(t,i),e=i;break}case 12:{Ut(i,t),e=t;break}case 14:{t.shadowType||(t.shadowType=i,Ut(i,t),e=t);break}}break}case 0:{i.kind==14&&(t.shadowType||(t.shadowType=i,Ut(i,t),e=t));break}case 14:{switch(i.kind){case 0:case 4:case 12:{i.shadowType||(i.shadowType=t,Ut(t,i),e=i);break}}break}}if(e){let r=t.is(2)||t.hasDecorator(1),n=i.is(2)||i.hasDecorator(1);r!=n&&t.program.error(2395,e.identifierNode.range,e.identifierNode.text)}return e}function Ut(t,i){let e=t.members;if(e){let r=i.members;r||(i.members=r=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));r.set(l,o)}}}function Ce(t,i,e,r=!1){switch(i.kind){case 13:return r?t:i.internalName+it+t;case 5:return r?t:(assert(!e),i.internalName+lp+t);case 10:case 11:i=i.parent;default:return Ce(i.name,i.parent,i.is(262144),r)+(e?ap:vn)+t}}var Xp=[];function sg(t){for(let i=Xp.length;i<=t;++i)Xp.push(`$${i}`);return Xp[t]}var tr=(W=>(W[W.Bool=0]="Bool",W[W.I8=1]="I8",W[W.I16=2]="I16",W[W.I32=3]="I32",W[W.I64=4]="I64",W[W.Isize=5]="Isize",W[W.U8=6]="U8",W[W.U16=7]="U16",W[W.U32=8]="U32",W[W.U64=9]="U64",W[W.Usize=10]="Usize",W[W.F32=11]="F32",W[W.F64=12]="F64",W[W.V128=13]="V128",W[W.Extern=14]="Extern",W[W.Func=15]="Func",W[W.Any=16]="Any",W[W.Eq=17]="Eq",W[W.Struct=18]="Struct",W[W.Array=19]="Array",W[W.I31=20]="I31",W[W.String=21]="String",W[W.StringviewWTF8=22]="StringviewWTF8",W[W.StringviewWTF16=23]="StringviewWTF16",W[W.StringviewIter=24]="StringviewIter",W[W.Void=25]="Void",W))(tr||{}),gt=(x=>(x[x.None=0]="None",x[x.Signed=1]="Signed",x[x.Unsigned=2]="Unsigned",x[x.Integer=4]="Integer",x[x.Float=8]="Float",x[x.Varying=16]="Varying",x[x.Short=32]="Short",x[x.Long=64]="Long",x[x.Value=128]="Value",x[x.Reference=256]="Reference",x[x.Nullable=512]="Nullable",x[x.Vector=1024]="Vector",x[x.External=2048]="External",x[x.Class=4096]="Class",x[x.Function=8192]="Function",x))(gt||{}),p=class t{constructor(i,e,r){this.classReference=null;this.signatureReference=null;this._nonNullableType=null;this._nullableType=null;this.ref=0;this.kind=i,this.flags=e,this.size=r,e&512?this._nullableType=this:this._nonNullableType=this}get intType(){if(this==t.auto)return this;switch(this.kind){case 0:case 3:case 11:return t.i32;case 1:return t.i8;case 2:return t.i16;case 12:case 4:return t.i64;case 5:return this.size==64?t.isize64:t.isize32;case 6:return t.u8;case 7:return t.u16;case 8:return t.u32;case 9:return t.u64;case 10:return this.size==64?t.usize64:t.usize32;default:return t.i32}}get exceptVoid(){return this.kind==25?t.auto:this}get byteSize(){return this.size+7>>>3}get alignLog2(){return 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==t.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(i){let e=this.getClass();if(e)return e;{let r=this.getSignature();if(r){let n=r.type,s=assert(i.resolver.resolveClass(i.functionPrototype,[n]));return s.wrappedType=n,s}else{let n=i.wrapperClasses;if(n.has(this))return assert(n.get(this))}}return null}lookupOverload(i,e){let r=this.getClassOrWrapper(e);return r?r.lookupOverload(i):null}getSignature(){return this.isInternalReference?this.signatureReference:null}get isFunction(){return this.getSignature()!=null}get isManaged(){if(this.isInternalReference){let i=this.classReference;return i?!i.hasDecorator(16):this.signatureReference!=null}return!1}get isUnmanaged(){let i=this.classReference;return i!=null&&i.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(i){return i.size-this.size}computeSmallIntegerMask(i){let e=this.size;return this.is(2)||(e-=1),-1>>>i.size-e}is(i){return(this.flags&i)==i}isAny(i){return(this.flags&i)!=0}asNullable(){assert(this.isReference);let i=this._nullableType;return i||(assert(!this.isNullableReference),this._nullableType=i=new t(this.kind,this.flags|512,this.size),i.classReference=this.classReference,i.signatureReference=this.signatureReference,i._nonNullableType=this),i}toUnsigned(){switch(this.kind){case 1:return t.u8;case 2:return t.u16;case 3:return t.u32;case 4:return t.u64;case 5:return this.size==64?t.usize64:t.usize32}return this}equals(i){if(this.kind!=i.kind)return!1;if(this.isReference){let e=this.signatureReference,r=i.signatureReference;return this.classReference==i.classReference&&e==r&&this.isNullableReference==i.isNullableReference}return!0}isAssignableTo(i,e=!1){let r,n,s,a;if(this.isReference){if(i.isReference&&(!this.isNullableReference||i.isNullableReference)){if(r=this.getClass()){if(n=i.getClass())return r.isAssignableTo(n)}else if(s=this.getSignature()){if(a=i.getSignature())return s.isAssignableTo(a)}else if(this.isExternalReference&&(this.kind==i.kind||i.kind==16&&this.kind!=14))return!0}}else if(!i.isReference){if(this.isIntegerValue)if(i.isIntegerValue){if(!e||this.isBooleanValue||this.isSignedIntegerValue==i.isSignedIntegerValue)return this.size<=i.size}else{if(i.kind==11)return this.size<=23;if(i.kind==12)return this.size<=52}else if(this.isFloatValue){if(i.isFloatValue)return this.size<=i.size}else if(this.isVectorValue&&i.isVectorValue)return this.size==i.size}return!1}isStrictlyAssignableTo(i,e=!1){return this.isReference?this.isAssignableTo(i):i.isReference?!1:this.isIntegerValue?i.isIntegerValue&&i.size==this.size&&(!e||this.isSignedIntegerValue==i.isSignedIntegerValue):this.kind==i.kind}hasSubtypeAssignableTo(i){let e=this.getClass(),r=i.getClass();return!e||!r?!1:e.hasSubclassAssignableTo(r)}isChangeableTo(i){if(this.is(4)&&i.is(4)){let e=this.size;return e==i.size&&(e>=32||this.is(1)==i.is(1))}return this.kind==i.kind}canExtendOrImplement(i){let e=this.getClass(),r=i.getClass();if(!e||!r||this.isManaged!=i.isManaged)return!1;if(this.isInternalReference){if(!i.isInternalReference)return!1}else if(this.isExternalReference){if(!i.isExternalReference)return!1}else return!1;return!0}static commonType(i,e,r=t.auto,n=!1){if(i.isInternalReference){if(!e.isInternalReference)return null;if(r!=t.void&&i.isAssignableTo(r)&&e.isAssignableTo(r))return r;let s=i.getClass(),a=e.getClass();if(s&&a){let l=ir.leastUpperBound(s,a);if(l)return i.is(512)||e.is(512)?l.type.asNullable():l.type}}else if(e.isInternalReference)return null;return e.isAssignableTo(i,n)?i:i.isAssignableTo(e,n)?e:null}kindToString(){switch(this.kind){case 0:return P.bool;case 1:return P.i8;case 2:return P.i16;case 3:return P.i32;case 4:return P.i64;case 5:return P.isize;case 6:return P.u8;case 7:return P.u16;case 8:return P.u32;case 9:return P.u64;case 10:return P.usize;case 11:return P.f32;case 12:return P.f64;case 13:return P.v128;case 15:return P.ref_func;case 14:return P.ref_extern;case 16:return P.ref_any;case 17:return P.ref_eq;case 18:return P.ref_struct;case 19:return P.ref_array;case 20:return P.ref_i31;case 21:return P.ref_string;case 22:return P.ref_stringview_wtf8;case 23:return P.ref_stringview_wtf16;case 24:return P.ref_stringview_iter;default:assert(!1);case 25:return P.void_}}toString(i=!1){let e=i?"|null":" | null";if(this.isReference){let r=this.getClass();if(r)return this.isNullableReference?r.internalName+e:r.internalName;{let n=this.getSignature();return n?this.isNullableReference?`(${n.toString(i)})${e}`:n.toString(i):this.isNullableReference?`${this.kindToString()}${e}`:this.kindToString()}}return this==t.auto?"auto":this.kindToString()}toRef(){switch(this.kind){case 0:case 1:case 2:case 3:case 6:case 7:case 8:return L.I32;case 5:case 10:if(this.size!=64)return L.I32;case 4:case 9:return L.I64;case 11:return L.F32;case 12:return L.F64;case 13:return L.V128;case 15:return he(ge.Func,this.is(512));case 14:return he(ge.Extern,this.is(512));case 16:return he(ge.Any,this.is(512));case 17:return he(ge.Eq,this.is(512));case 18:return he(ge.Struct,this.is(512));case 19:return he(ge.Array,this.is(512));case 20:return he(ge.I31,this.is(512));case 21:return he(ge.String,this.is(512));case 25:return L.None}return assert(!1),Hn(this)}static{this.i8=new t(1,165,8)}static{this.i16=new t(2,165,16)}static{this.i32=new t(3,133,32)}static{this.i64=new t(4,197,64)}static{this.isize32=new t(5,149,32)}static{this.isize64=new t(5,213,64)}static{this.u8=new t(6,166,8)}static{this.u16=new t(7,166,16)}static{this.u32=new t(8,134,32)}static{this.u64=new t(9,198,64)}static{this.usize32=new t(10,150,32)}static{this.usize64=new t(10,214,64)}static{this.bool=new t(0,166,1)}static{this.f32=new t(11,137,32)}static{this.f64=new t(12,201,64)}static{this.v128=new t(13,1152,128)}static{this.func=new t(15,2304,0)}static{this.extern=new t(14,2304,0)}static{this.any=new t(16,2304,0)}static{this.eq=new t(17,2304,0)}static{this.struct=new t(18,2304,0)}static{this.array=new t(19,2304,0)}static{this.i31=new t(20,2304,0)}static{this.string=new t(21,2304,0)}static{this.stringview_wtf8=new t(22,2304,0)}static{this.stringview_wtf16=new t(23,2304,0)}static{this.stringview_iter=new t(24,2304,0)}static{this.void=new t(25,0,0)}static{this.auto=new t(t.i32.kind,t.i32.flags,t.i32.size)}};function Lr(t){let i=t.length,e=new Array(i);for(let r=0;r<i;++r)unchecked(e[r]=t[r].toRef());return e}function Ol(t){let i=t.length;if(!i)return"";let e=new Array(i);for(let r=0;r<i;++r)unchecked(e[r]=t[r].toString(!0));return e.join(",")}var We=class t{constructor(i,e,r,n,s,a,l,o){this.program=i;this.parameterTypes=e;this.returnType=r;this.thisType=n;this.requiredParameters=s;this.hasRest=a;this.id=l;this.type=o}static create(i,e=[],r=p.void,n=null,s=e?e.length:0,a=!1){let l=i.options.usizeType,o=new p(l.kind,l.flags&-129|256,l.size),u=i.uniqueSignatures,c=i.nextSignatureId,_=new t(i,e,r,n,s,a,c,o),f=_.toString();if(u.has(f)){let h=assert(u.get(f));return assert(_.equals(h)),h}return i.nextSignatureId=c+1,o.signatureReference=_,u.set(f,_),_}get paramRefs(){let i=this.thisType,e=this.parameterTypes,r=e.length;if(!r)return i?i.toRef():L.None;if(i){let n=new Array(1+r);unchecked(n[0]=i.toRef());for(let s=0;s<r;++s)unchecked(n[s+1]=e[s].toRef());return He(n)}return He(Lr(e))}get resultRefs(){return this.returnType.toRef()}equals(i){let e=this.thisType,r=i.thisType;if(e){if(!r||!e.equals(r))return!1}else if(r)return!1;if(this.hasRest!=i.hasRest||!this.returnType.equals(i.returnType))return!1;let n=this.parameterTypes,s=i.parameterTypes,a=n.length;if(a!=s.length)return!1;for(let l=0;l<a;++l){let o=unchecked(n[l]),u=unchecked(s[l]);if(!o.equals(u))return!1}return!0}isAssignableTo(i,e=!1){let r=this.thisType,n=i.thisType;if(r&&n){if(!(e?r.canExtendOrImplement(n):n.isAssignableTo(r)))return!1}else if(r||n)return!1;if(this.hasRest!=i.hasRest)return!1;let s=this.returnType,a=i.returnType;if(!(s==a||s.isAssignableTo(a)))return!1;let l=this.parameterTypes,o=i.parameterTypes,u=l.length;if(u!=o.length)return!1;for(let c=0;c<u;++c){let _=unchecked(l[c]),f=unchecked(o[c]);if(_!=f)return!1}return!0}get hasManagedOperands(){let i=this.thisType;if(i&&i.isManaged)return!0;let e=this.parameterTypes;for(let r=0,n=e.length;r<n;++r)if(unchecked(e[r]).isManaged)return!0;return!1}getManagedOperandIndices(){let i=new Array,e=0,r=this.thisType;r&&(r.isManaged&&i.push(e),++e);let n=this.parameterTypes;for(let s=0,a=n.length;s<a;++s)unchecked(n[s]).isManaged&&i.push(e),++e;return i}get hasVectorValueOperands(){let i=this.thisType;if(i&&i.isVectorValue)return!0;let e=this.parameterTypes;for(let r=0,n=e.length;r<n;++r)if(unchecked(e[r]).isVectorValue)return!0;return!1}getVectorValueOperandIndices(){let i=new Array,e=0,r=this.thisType;r&&(r.isVectorValue&&i.push(e),++e);let n=this.parameterTypes;for(let s=0,a=n.length;s<a;++s)unchecked(n[s]).isVectorValue&&i.push(e),++e;return i}toString(i=!1){let e=new Array;e.push(i?"%28":"(");let r=0,n=this.thisType;n&&(e.push(i?"this:":"this: "),e.push(n.toString(i)),r=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,++r)r&&e.push(i?"%2C":", "),u==o&&e.push("..."),e.push(s[u].toString(i)),u>=l&&u!=o&&e.push("?")}return e.push(i?"%29=>":") => "),e.push(this.returnType.toString(i)),e.join("")}clone(i=this.requiredParameters,e=this.hasRest){let r=this.parameterTypes,n=r.length,s=new Array(n);for(let a=0;a<n;++a)unchecked(s[a]=r[a]);return t.create(this.program,s,this.returnType,this.thisType,i,e)}};var d;(m=>(m.start="~start",m.started="~started",m.argumentsLength="~argumentsLength",m.setArgumentsLength="~setArgumentsLength",m.abort="~lib/builtins/abort",m.trace="~lib/builtins/trace",m.seed="~lib/builtins/seed",m.isBoolean="~lib/builtins/isBoolean",m.isInteger="~lib/builtins/isInteger",m.isSigned="~lib/builtins/isSigned",m.isFloat="~lib/builtins/isFloat",m.isVector="~lib/builtins/isVector",m.isReference="~lib/builtins/isReference",m.isString="~lib/builtins/isString",m.isArray="~lib/builtins/isArray",m.isArrayLike="~lib/builtins/isArrayLike",m.isFunction="~lib/builtins/isFunction",m.isNullable="~lib/builtins/isNullable",m.isDefined="~lib/builtins/isDefined",m.isConstant="~lib/builtins/isConstant",m.isManaged="~lib/builtins/isManaged",m.isVoid="~lib/builtins/isVoid",m.add="~lib/builtins/add",m.sub="~lib/builtins/sub",m.mul="~lib/builtins/mul",m.div="~lib/builtins/div",m.clz="~lib/builtins/clz",m.ctz="~lib/builtins/ctz",m.popcnt="~lib/builtins/popcnt",m.rotl="~lib/builtins/rotl",m.rotr="~lib/builtins/rotr",m.abs="~lib/builtins/abs",m.max="~lib/builtins/max",m.min="~lib/builtins/min",m.ceil="~lib/builtins/ceil",m.floor="~lib/builtins/floor",m.copysign="~lib/builtins/copysign",m.nearest="~lib/builtins/nearest",m.reinterpret="~lib/builtins/reinterpret",m.sqrt="~lib/builtins/sqrt",m.trunc="~lib/builtins/trunc",m.eq="~lib/builtins/eq",m.ne="~lib/builtins/ne",m.rem="~lib/builtins/rem",m.load="~lib/builtins/load",m.store="~lib/builtins/store",m.atomic_load="~lib/builtins/atomic.load",m.atomic_store="~lib/builtins/atomic.store",m.atomic_add="~lib/builtins/atomic.add",m.atomic_sub="~lib/builtins/atomic.sub",m.atomic_and="~lib/builtins/atomic.and",m.atomic_or="~lib/builtins/atomic.or",m.atomic_xor="~lib/builtins/atomic.xor",m.atomic_xchg="~lib/builtins/atomic.xchg",m.atomic_cmpxchg="~lib/builtins/atomic.cmpxchg",m.atomic_wait="~lib/builtins/atomic.wait",m.atomic_notify="~lib/builtins/atomic.notify",m.atomic_fence="~lib/builtins/atomic.fence",m.sizeof="~lib/builtins/sizeof",m.alignof="~lib/builtins/alignof",m.offsetof="~lib/builtins/offsetof",m.nameof="~lib/builtins/nameof",m.lengthof="~lib/builtins/lengthof",m.select="~lib/builtins/select",m.unreachable="~lib/builtins/unreachable",m.changetype="~lib/builtins/changetype",m.assert="~lib/builtins/assert",m.call_indirect="~lib/builtins/call_indirect",m.unchecked="~lib/builtins/unchecked",m.inline_always="~lib/builtins/inline.always",m.instantiate="~lib/builtins/instantiate",m.idof="~lib/builtins/idof",m.i8="~lib/builtins/i8",m.i16="~lib/builtins/i16",m.i32="~lib/builtins/i32",m.i64="~lib/builtins/i64",m.isize="~lib/builtins/isize",m.u8="~lib/builtins/u8",m.u16="~lib/builtins/u16",m.u32="~lib/builtins/u32",m.u64="~lib/builtins/u64",m.usize="~lib/builtins/usize",m.bool="~lib/builtins/bool",m.f32="~lib/builtins/f32",m.f64="~lib/builtins/f64",m.v128="~lib/builtins/v128",m.i32_clz="~lib/builtins/i32.clz",m.i64_clz="~lib/builtins/i64.clz",m.i32_ctz="~lib/builtins/i32.ctz",m.i64_ctz="~lib/builtins/i64.ctz",m.i32_popcnt="~lib/builtins/i32.popcnt",m.i64_popcnt="~lib/builtins/i64.popcnt",m.i32_rotl="~lib/builtins/i32.rotl",m.i64_rotl="~lib/builtins/i64.rotl",m.i32_rotr="~lib/builtins/i32.rotr",m.i64_rotr="~lib/builtins/i64.rotr",m.f32_abs="~lib/builtins/f32.abs",m.f64_abs="~lib/builtins/f64.abs",m.f32_max="~lib/builtins/f32.max",m.f64_max="~lib/builtins/f64.max",m.f32_min="~lib/builtins/f32.min",m.f64_min="~lib/builtins/f64.min",m.f32_ceil="~lib/builtins/f32.ceil",m.f64_ceil="~lib/builtins/f64.ceil",m.f32_floor="~lib/builtins/f32.floor",m.f64_floor="~lib/builtins/f64.floor",m.f32_copysign="~lib/builtins/f32.copysign",m.f64_copysign="~lib/builtins/f64.copysign",m.f32_nearest="~lib/builtins/f32.nearest",m.f64_nearest="~lib/builtins/f64.nearest",m.i32_reinterpret_f32="~lib/builtins/i32.reinterpret_f32",m.i64_reinterpret_f64="~lib/builtins/i64.reinterpret_f64",m.f32_reinterpret_i32="~lib/builtins/f32.reinterpret_i32",m.f64_reinterpret_i64="~lib/builtins/f64.reinterpret_i64",m.f32_sqrt="~lib/builtins/f32.sqrt",m.f64_sqrt="~lib/builtins/f64.sqrt",m.f32_trunc="~lib/builtins/f32.trunc",m.f64_trunc="~lib/builtins/f64.trunc",m.i32_add="~lib/builtins/i32.add",m.i64_add="~lib/builtins/i64.add",m.f32_add="~lib/builtins/f32.add",m.f64_add="~lib/builtins/f64.add",m.i32_sub="~lib/builtins/i32.sub",m.i64_sub="~lib/builtins/i64.sub",m.f32_sub="~lib/builtins/f32.sub",m.f64_sub="~lib/builtins/f64.sub",m.i32_mul="~lib/builtins/i32.mul",m.i64_mul="~lib/builtins/i64.mul",m.f32_mul="~lib/builtins/f32.mul",m.f64_mul="~lib/builtins/f64.mul",m.i32_div_s="~lib/builtins/i32.div_s",m.i32_div_u="~lib/builtins/i32.div_u",m.i64_div_s="~lib/builtins/i64.div_s",m.i64_div_u="~lib/builtins/i64.div_u",m.f32_div="~lib/builtins/f32.div",m.f64_div="~lib/builtins/f64.div",m.i32_eq="~lib/builtins/i32.eq",m.i64_eq="~lib/builtins/i64.eq",m.f32_eq="~lib/builtins/f32.eq",m.f64_eq="~lib/builtins/f64.eq",m.i32_ne="~lib/builtins/i32.ne",m.i64_ne="~lib/builtins/i64.ne",m.f32_ne="~lib/builtins/f32.ne",m.f64_ne="~lib/builtins/f64.ne",m.i32_rem_s="~lib/builtins/i32.rem_s",m.i32_rem_u="~lib/builtins/i32.rem_u",m.i64_rem_s="~lib/builtins/i64.rem_s",m.i64_rem_u="~lib/builtins/i64.rem_u",m.i32_load8_s="~lib/builtins/i32.load8_s",m.i32_load8_u="~lib/builtins/i32.load8_u",m.i32_load16_s="~lib/builtins/i32.load16_s",m.i32_load16_u="~lib/builtins/i32.load16_u",m.i32_load="~lib/builtins/i32.load",m.i64_load8_s="~lib/builtins/i64.load8_s",m.i64_load8_u="~lib/builtins/i64.load8_u",m.i64_load16_s="~lib/builtins/i64.load16_s",m.i64_load16_u="~lib/builtins/i64.load16_u",m.i64_load32_s="~lib/builtins/i64.load32_s",m.i64_load32_u="~lib/builtins/i64.load32_u",m.i64_load="~lib/builtins/i64.load",m.f32_load="~lib/builtins/f32.load",m.f64_load="~lib/builtins/f64.load",m.i32_store8="~lib/builtins/i32.store8",m.i32_store16="~lib/builtins/i32.store16",m.i32_store="~lib/builtins/i32.store",m.i64_store8="~lib/builtins/i64.store8",m.i64_store16="~lib/builtins/i64.store16",m.i64_store32="~lib/builtins/i64.store32",m.i64_store="~lib/builtins/i64.store",m.f32_store="~lib/builtins/f32.store",m.f64_store="~lib/builtins/f64.store",m.i32_atomic_load8_u="~lib/builtins/i32.atomic.load8_u",m.i32_atomic_load16_u="~lib/builtins/i32.atomic.load16_u",m.i32_atomic_load="~lib/builtins/i32.atomic.load",m.i64_atomic_load8_u="~lib/builtins/i64.atomic.load8_u",m.i64_atomic_load16_u="~lib/builtins/i64.atomic.load16_u",m.i64_atomic_load32_u="~lib/builtins/i64.atomic.load32_u",m.i64_atomic_load="~lib/builtins/i64.atomic.load",m.i32_atomic_store8="~lib/builtins/i32.atomic.store8",m.i32_atomic_store16="~lib/builtins/i32.atomic.store16",m.i32_atomic_store="~lib/builtins/i32.atomic.store",m.i64_atomic_store8="~lib/builtins/i64.atomic.store8",m.i64_atomic_store16="~lib/builtins/i64.atomic.store16",m.i64_atomic_store32="~lib/builtins/i64.atomic.store32",m.i64_atomic_store="~lib/builtins/i64.atomic.store",m.i32_atomic_rmw8_add_u="~lib/builtins/i32.atomic.rmw8.add_u",m.i32_atomic_rmw16_add_u="~lib/builtins/i32.atomic.rmw16.add_u",m.i32_atomic_rmw_add="~lib/builtins/i32.atomic.rmw.add",m.i64_atomic_rmw8_add_u="~lib/builtins/i64.atomic.rmw8.add_u",m.i64_atomic_rmw16_add_u="~lib/builtins/i64.atomic.rmw16.add_u",m.i64_atomic_rmw32_add_u="~lib/builtins/i64.atomic.rmw32.add_u",m.i64_atomic_rmw_add="~lib/builtins/i64.atomic.rmw.add",m.i32_atomic_rmw8_sub_u="~lib/builtins/i32.atomic.rmw8.sub_u",m.i32_atomic_rmw16_sub_u="~lib/builtins/i32.atomic.rmw16.sub_u",m.i32_atomic_rmw_sub="~lib/builtins/i32.atomic.rmw.sub",m.i64_atomic_rmw8_sub_u="~lib/builtins/i64.atomic.rmw8.sub_u",m.i64_atomic_rmw16_sub_u="~lib/builtins/i64.atomic.rmw16.sub_u",m.i64_atomic_rmw32_sub_u="~lib/builtins/i64.atomic.rmw32.sub_u",m.i64_atomic_rmw_sub="~lib/builtins/i64.atomic.rmw.sub",m.i32_atomic_rmw8_and_u="~lib/builtins/i32.atomic.rmw8.and_u",m.i32_atomic_rmw16_and_u="~lib/builtins/i32.atomic.rmw16.and_u",m.i32_atomic_rmw_and="~lib/builtins/i32.atomic.rmw.and",m.i64_atomic_rmw8_and_u="~lib/builtins/i64.atomic.rmw8.and_u",m.i64_atomic_rmw16_and_u="~lib/builtins/i64.atomic.rmw16.and_u",m.i64_atomic_rmw32_and_u="~lib/builtins/i64.atomic.rmw32.and_u",m.i64_atomic_rmw_and="~lib/builtins/i64.atomic.rmw.and",m.i32_atomic_rmw8_or_u="~lib/builtins/i32.atomic.rmw8.or_u",m.i32_atomic_rmw16_or_u="~lib/builtins/i32.atomic.rmw16.or_u",m.i32_atomic_rmw_or="~lib/builtins/i32.atomic.rmw.or",m.i64_atomic_rmw8_or_u="~lib/builtins/i64.atomic.rmw8.or_u",m.i64_atomic_rmw16_or_u="~lib/builtins/i64.atomic.rmw16.or_u",m.i64_atomic_rmw32_or_u="~lib/builtins/i64.atomic.rmw32.or_u",m.i64_atomic_rmw_or="~lib/builtins/i64.atomic.rmw.or",m.i32_atomic_rmw8_xor_u="~lib/builtins/i32.atomic.rmw8.xor_u",m.i32_atomic_rmw16_xor_u="~lib/builtins/i32.atomic.rmw16.xor_u",m.i32_atomic_rmw_xor="~lib/builtins/i32.atomic.rmw.xor",m.i64_atomic_rmw8_xor_u="~lib/builtins/i64.atomic.rmw8.xor_u",m.i64_atomic_rmw16_xor_u="~lib/builtins/i64.atomic.rmw16.xor_u",m.i64_atomic_rmw32_xor_u="~lib/builtins/i64.atomic.rmw32.xor_u",m.i64_atomic_rmw_xor="~lib/builtins/i64.atomic.rmw.xor",m.i32_atomic_rmw8_xchg_u="~lib/builtins/i32.atomic.rmw8.xchg_u",m.i32_atomic_rmw16_xchg_u="~lib/builtins/i32.atomic.rmw16.xchg_u",m.i32_atomic_rmw_xchg="~lib/builtins/i32.atomic.rmw.xchg",m.i64_atomic_rmw8_xchg_u="~lib/builtins/i64.atomic.rmw8.xchg_u",m.i64_atomic_rmw16_xchg_u="~lib/builtins/i64.atomic.rmw16.xchg_u",m.i64_atomic_rmw32_xchg_u="~lib/builtins/i64.atomic.rmw32.xchg_u",m.i64_atomic_rmw_xchg="~lib/builtins/i64.atomic.rmw.xchg",m.i32_atomic_rmw8_cmpxchg_u="~lib/builtins/i32.atomic.rmw8.cmpxchg_u",m.i32_atomic_rmw16_cmpxchg_u="~lib/builtins/i32.atomic.rmw16.cmpxchg_u",m.i32_atomic_rmw_cmpxchg="~lib/builtins/i32.atomic.rmw.cmpxchg",m.i64_atomic_rmw8_cmpxchg_u="~lib/builtins/i64.atomic.rmw8.cmpxchg_u",m.i64_atomic_rmw16_cmpxchg_u="~lib/builtins/i64.atomic.rmw16.cmpxchg_u",m.i64_atomic_rmw32_cmpxchg_u="~lib/builtins/i64.atomic.rmw32.cmpxchg_u",m.i64_atomic_rmw_cmpxchg="~lib/builtins/i64.atomic.rmw.cmpxchg",m.memory_atomic_wait32="~lib/memory/memory.atomic.wait32",m.memory_atomic_wait64="~lib/memory/memory.atomic.wait64",m.v128_splat="~lib/builtins/v128.splat",m.v128_extract_lane="~lib/builtins/v128.extract_lane",m.v128_replace_lane="~lib/builtins/v128.replace_lane",m.v128_shuffle="~lib/builtins/v128.shuffle",m.v128_swizzle="~lib/builtins/v128.swizzle",m.v128_load_splat="~lib/builtins/v128.load_splat",m.v128_load_ext="~lib/builtins/v128.load_ext",m.v128_load_zero="~lib/builtins/v128.load_zero",m.v128_load_lane="~lib/builtins/v128.load_lane",m.v128_store_lane="~lib/builtins/v128.store_lane",m.v128_load="~lib/builtins/v128.load",m.v128_load8x8_s="~lib/builtins/v128.load8x8_s",m.v128_load8x8_u="~lib/builtins/v128.load8x8_u",m.v128_load16x4_s="~lib/builtins/v128.load16x4_s",m.v128_load16x4_u="~lib/builtins/v128.load16x4_u",m.v128_load32x2_s="~lib/builtins/v128.load32x2_s",m.v128_load32x2_u="~lib/builtins/v128.load32x2_u",m.v128_load8_splat="~lib/builtins/v128.load8_splat",m.v128_load16_splat="~lib/builtins/v128.load16_splat",m.v128_load32_splat="~lib/builtins/v128.load32_splat",m.v128_load64_splat="~lib/builtins/v128.load64_splat",m.v128_load32_zero="~lib/builtins/v128.load32_zero",m.v128_load64_zero="~lib/builtins/v128.load64_zero",m.v128_load8_lane="~lib/builtins/v128.load8_lane",m.v128_load16_lane="~lib/builtins/v128.load16_lane",m.v128_load32_lane="~lib/builtins/v128.load32_lane",m.v128_load64_lane="~lib/builtins/v128.load64_lane",m.v128_store8_lane="~lib/builtins/v128.store8_lane",m.v128_store16_lane="~lib/builtins/v128.store16_lane",m.v128_store32_lane="~lib/builtins/v128.store32_lane",m.v128_store64_lane="~lib/builtins/v128.store64_lane",m.v128_store="~lib/builtins/v128.store",m.v128_add="~lib/builtins/v128.add",m.v128_sub="~lib/builtins/v128.sub",m.v128_mul="~lib/builtins/v128.mul",m.v128_div="~lib/builtins/v128.div",m.v128_neg="~lib/builtins/v128.neg",m.v128_add_sat="~lib/builtins/v128.add_sat",m.v128_sub_sat="~lib/builtins/v128.sub_sat",m.v128_shl="~lib/builtins/v128.shl",m.v128_shr="~lib/builtins/v128.shr",m.v128_and="~lib/builtins/v128.and",m.v128_or="~lib/builtins/v128.or",m.v128_xor="~lib/builtins/v128.xor",m.v128_andnot="~lib/builtins/v128.andnot",m.v128_not="~lib/builtins/v128.not",m.v128_bitselect="~lib/builtins/v128.bitselect",m.v128_any_true="~lib/builtins/v128.any_true",m.v128_all_true="~lib/builtins/v128.all_true",m.v128_bitmask="~lib/builtins/v128.bitmask",m.v128_popcnt="~lib/builtins/v128.popcnt",m.v128_min="~lib/builtins/v128.min",m.v128_max="~lib/builtins/v128.max",m.v128_pmin="~lib/builtins/v128.pmin",m.v128_pmax="~lib/builtins/v128.pmax",m.v128_dot="~lib/builtins/v128.dot",m.v128_avgr="~lib/builtins/v128.avgr",m.v128_abs="~lib/builtins/v128.abs",m.v128_sqrt="~lib/builtins/v128.sqrt",m.v128_ceil="~lib/builtins/v128.ceil",m.v128_floor="~lib/builtins/v128.floor",m.v128_trunc="~lib/builtins/v128.trunc",m.v128_nearest="~lib/builtins/v128.nearest",m.v128_eq="~lib/builtins/v128.eq",m.v128_ne="~lib/builtins/v128.ne",m.v128_lt="~lib/builtins/v128.lt",m.v128_le="~lib/builtins/v128.le",m.v128_gt="~lib/builtins/v128.gt",m.v128_ge="~lib/builtins/v128.ge",m.v128_convert="~lib/builtins/v128.convert",m.v128_convert_low="~lib/builtins/v128.convert_low",m.v128_trunc_sat="~lib/builtins/v128.trunc_sat",m.v128_trunc_sat_zero="~lib/builtins/v128.trunc_sat_zero",m.v128_narrow="~lib/builtins/v128.narrow",m.v128_extend_low="~lib/builtins/v128.extend_low",m.v128_extend_high="~lib/builtins/v128.extend_high",m.v128_extadd_pairwise="~lib/builtins/v128.extadd_pairwise",m.v128_demote_zero="~lib/builtins/v128.demote_zero",m.v128_promote_low="~lib/builtins/v128.promote_low",m.v128_q15mulr_sat="~lib/builtins/v128.q15mulr_sat",m.v128_extmul_low="~lib/builtins/v128.extmul_low",m.v128_extmul_high="~lib/builtins/v128.extmul_high",m.v128_relaxed_swizzle="~lib/builtins/v128.relaxed_swizzle",m.v128_relaxed_trunc="~lib/builtins/v128.relaxed_trunc",m.v128_relaxed_trunc_zero="~lib/builtins/v128.relaxed_trunc_zero",m.v128_relaxed_madd="~lib/builtins/v128.relaxed_madd",m.v128_relaxed_nmadd="~lib/builtins/v128.relaxed_nmadd",m.v128_relaxed_laneselect="~lib/builtins/v128.relaxed_laneselect",m.v128_relaxed_min="~lib/builtins/v128.relaxed_min",m.v128_relaxed_max="~lib/builtins/v128.relaxed_max",m.v128_relaxed_q15mulr="~lib/builtins/v128.relaxed_q15mulr",m.v128_relaxed_dot="~lib/builtins/v128.relaxed_dot",m.v128_relaxed_dot_add="~lib/builtins/v128.relaxed_dot_add",m.i8x16="~lib/builtins/i8x16",m.i16x8="~lib/builtins/i16x8",m.i32x4="~lib/builtins/i32x4",m.i64x2="~lib/builtins/i64x2",m.f32x4="~lib/builtins/f32x4",m.f64x2="~lib/builtins/f64x2",m.i8x16_splat="~lib/builtins/i8x16.splat",m.i8x16_extract_lane_s="~lib/builtins/i8x16.extract_lane_s",m.i8x16_extract_lane_u="~lib/builtins/i8x16.extract_lane_u",m.i8x16_replace_lane="~lib/builtins/i8x16.replace_lane",m.i8x16_add="~lib/builtins/i8x16.add",m.i8x16_sub="~lib/builtins/i8x16.sub",m.i8x16_mul="~lib/builtins/i8x16.mul",m.i8x16_min_s="~lib/builtins/i8x16.min_s",m.i8x16_min_u="~lib/builtins/i8x16.min_u",m.i8x16_max_s="~lib/builtins/i8x16.max_s",m.i8x16_max_u="~lib/builtins/i8x16.max_u",m.i8x16_avgr_u="~lib/builtins/i8x16.avgr_u",m.i8x16_abs="~lib/builtins/i8x16.abs",m.i8x16_neg="~lib/builtins/i8x16.neg",m.i8x16_add_sat_s="~lib/builtins/i8x16.add_sat_s",m.i8x16_add_sat_u="~lib/builtins/i8x16.add_sat_u",m.i8x16_sub_sat_s="~lib/builtins/i8x16.sub_sat_s",m.i8x16_sub_sat_u="~lib/builtins/i8x16.sub_sat_u",m.i8x16_shl="~lib/builtins/i8x16.shl",m.i8x16_shr_s="~lib/builtins/i8x16.shr_s",m.i8x16_shr_u="~lib/builtins/i8x16.shr_u",m.i8x16_all_true="~lib/builtins/i8x16.all_true",m.i8x16_bitmask="~lib/builtins/i8x16.bitmask",m.i8x16_popcnt="~lib/builtins/i8x16.popcnt",m.i8x16_eq="~lib/builtins/i8x16.eq",m.i8x16_ne="~lib/builtins/i8x16.ne",m.i8x16_lt_s="~lib/builtins/i8x16.lt_s",m.i8x16_lt_u="~lib/builtins/i8x16.lt_u",m.i8x16_le_s="~lib/builtins/i8x16.le_s",m.i8x16_le_u="~lib/builtins/i8x16.le_u",m.i8x16_gt_s="~lib/builtins/i8x16.gt_s",m.i8x16_gt_u="~lib/builtins/i8x16.gt_u",m.i8x16_ge_s="~lib/builtins/i8x16.ge_s",m.i8x16_ge_u="~lib/builtins/i8x16.ge_u",m.i8x16_narrow_i16x8_s="~lib/builtins/i8x16.narrow_i16x8_s",m.i8x16_narrow_i16x8_u="~lib/builtins/i8x16.narrow_i16x8_u",m.i8x16_shuffle="~lib/builtins/i8x16.shuffle",m.i8x16_swizzle="~lib/builtins/i8x16.swizzle",m.i16x8_splat="~lib/builtins/i16x8.splat",m.i16x8_extract_lane_s="~lib/builtins/i16x8.extract_lane_s",m.i16x8_extract_lane_u="~lib/builtins/i16x8.extract_lane_u",m.i16x8_replace_lane="~lib/builtins/i16x8.replace_lane",m.i16x8_add="~lib/builtins/i16x8.add",m.i16x8_sub="~lib/builtins/i16x8.sub",m.i16x8_mul="~lib/builtins/i16x8.mul",m.i16x8_min_s="~lib/builtins/i16x8.min_s",m.i16x8_min_u="~lib/builtins/i16x8.min_u",m.i16x8_max_s="~lib/builtins/i16x8.max_s",m.i16x8_max_u="~lib/builtins/i16x8.max_u",m.i16x8_avgr_u="~lib/builtins/i16x8.avgr_u",m.i16x8_abs="~lib/builtins/i16x8.abs",m.i16x8_neg="~lib/builtins/i16x8.neg",m.i16x8_add_sat_s="~lib/builtins/i16x8.add_sat_s",m.i16x8_add_sat_u="~lib/builtins/i16x8.add_sat_u",m.i16x8_sub_sat_s="~lib/builtins/i16x8.sub_sat_s",m.i16x8_sub_sat_u="~lib/builtins/i16x8.sub_sat_u",m.i16x8_shl="~lib/builtins/i16x8.shl",m.i16x8_shr_s="~lib/builtins/i16x8.shr_s",m.i16x8_shr_u="~lib/builtins/i16x8.shr_u",m.i16x8_all_true="~lib/builtins/i16x8.all_true",m.i16x8_bitmask="~lib/builtins/i16x8.bitmask",m.i16x8_eq="~lib/builtins/i16x8.eq",m.i16x8_ne="~lib/builtins/i16x8.ne",m.i16x8_lt_s="~lib/builtins/i16x8.lt_s",m.i16x8_lt_u="~lib/builtins/i16x8.lt_u",m.i16x8_le_s="~lib/builtins/i16x8.le_s",m.i16x8_le_u="~lib/builtins/i16x8.le_u",m.i16x8_gt_s="~lib/builtins/i16x8.gt_s",m.i16x8_gt_u="~lib/builtins/i16x8.gt_u",m.i16x8_ge_s="~lib/builtins/i16x8.ge_s",m.i16x8_ge_u="~lib/builtins/i16x8.ge_u",m.i16x8_narrow_i32x4_s="~lib/builtins/i16x8.narrow_i32x4_s",m.i16x8_narrow_i32x4_u="~lib/builtins/i16x8.narrow_i32x4_u",m.i16x8_extend_low_i8x16_s="~lib/builtins/i16x8.extend_low_i8x16_s",m.i16x8_extend_low_i8x16_u="~lib/builtins/i16x8.extend_low_i8x16_u",m.i16x8_extend_high_i8x16_s="~lib/builtins/i16x8.extend_high_i8x16_s",m.i16x8_extend_high_i8x16_u="~lib/builtins/i16x8.extend_high_i8x16_u",m.i16x8_extadd_pairwise_i8x16_s="~lib/builtins/i16x8.extadd_pairwise_i8x16_s",m.i16x8_extadd_pairwise_i8x16_u="~lib/builtins/i16x8.extadd_pairwise_i8x16_u",m.i16x8_q15mulr_sat_s="~lib/builtins/i16x8.q15mulr_sat_s",m.i16x8_extmul_low_i8x16_s="~lib/builtins/i16x8.extmul_low_i8x16_s",m.i16x8_extmul_low_i8x16_u="~lib/builtins/i16x8.extmul_low_i8x16_u",m.i16x8_extmul_high_i8x16_s="~lib/builtins/i16x8.extmul_high_i8x16_s",m.i16x8_extmul_high_i8x16_u="~lib/builtins/i16x8.extmul_high_i8x16_u",m.i16x8_shuffle="~lib/builtins/i16x8.shuffle",m.i32x4_splat="~lib/builtins/i32x4.splat",m.i32x4_extract_lane="~lib/builtins/i32x4.extract_lane",m.i32x4_replace_lane="~lib/builtins/i32x4.replace_lane",m.i32x4_add="~lib/builtins/i32x4.add",m.i32x4_sub="~lib/builtins/i32x4.sub",m.i32x4_mul="~lib/builtins/i32x4.mul",m.i32x4_min_s="~lib/builtins/i32x4.min_s",m.i32x4_min_u="~lib/builtins/i32x4.min_u",m.i32x4_max_s="~lib/builtins/i32x4.max_s",m.i32x4_max_u="~lib/builtins/i32x4.max_u",m.i32x4_dot_i16x8_s="~lib/builtins/i32x4.dot_i16x8_s",m.i32x4_abs="~lib/builtins/i32x4.abs",m.i32x4_neg="~lib/builtins/i32x4.neg",m.i32x4_shl="~lib/builtins/i32x4.shl",m.i32x4_shr_s="~lib/builtins/i32x4.shr_s",m.i32x4_shr_u="~lib/builtins/i32x4.shr_u",m.i32x4_all_true="~lib/builtins/i32x4.all_true",m.i32x4_bitmask="~lib/builtins/i32x4.bitmask",m.i32x4_eq="~lib/builtins/i32x4.eq",m.i32x4_ne="~lib/builtins/i32x4.ne",m.i32x4_lt_s="~lib/builtins/i32x4.lt_s",m.i32x4_lt_u="~lib/builtins/i32x4.lt_u",m.i32x4_le_s="~lib/builtins/i32x4.le_s",m.i32x4_le_u="~lib/builtins/i32x4.le_u",m.i32x4_gt_s="~lib/builtins/i32x4.gt_s",m.i32x4_gt_u="~lib/builtins/i32x4.gt_u",m.i32x4_ge_s="~lib/builtins/i32x4.ge_s",m.i32x4_ge_u="~lib/builtins/i32x4.ge_u",m.i32x4_trunc_sat_f32x4_s="~lib/builtins/i32x4.trunc_sat_f32x4_s",m.i32x4_trunc_sat_f32x4_u="~lib/builtins/i32x4.trunc_sat_f32x4_u",m.i32x4_trunc_sat_f64x2_s_zero="~lib/builtins/i32x4.trunc_sat_f64x2_s_zero",m.i32x4_trunc_sat_f64x2_u_zero="~lib/builtins/i32x4.trunc_sat_f64x2_u_zero",m.i32x4_extend_low_i16x8_s="~lib/builtins/i32x4.extend_low_i16x8_s",m.i32x4_extend_low_i16x8_u="~lib/builtins/i32x4.extend_low_i16x8_u",m.i32x4_extend_high_i16x8_s="~lib/builtins/i32x4.extend_high_i16x8_s",m.i32x4_extend_high_i16x8_u="~lib/builtins/i32x4.extend_high_i16x8_u",m.i32x4_extadd_pairwise_i16x8_s="~lib/builtins/i32x4.extadd_pairwise_i16x8_s",m.i32x4_extadd_pairwise_i16x8_u="~lib/builtins/i32x4.extadd_pairwise_i16x8_u",m.i32x4_extmul_low_i16x8_s="~lib/builtins/i32x4.extmul_low_i16x8_s",m.i32x4_extmul_low_i16x8_u="~lib/builtins/i32x4.extmul_low_i16x8_u",m.i32x4_extmul_high_i16x8_s="~lib/builtins/i32x4.extmul_high_i16x8_s",m.i32x4_extmul_high_i16x8_u="~lib/builtins/i32x4.extmul_high_i16x8_u",m.i32x4_shuffle="~lib/builtins/i32x4.shuffle",m.i64x2_splat="~lib/builtins/i64x2.splat",m.i64x2_extract_lane="~lib/builtins/i64x2.extract_lane",m.i64x2_replace_lane="~lib/builtins/i64x2.replace_lane",m.i64x2_add="~lib/builtins/i64x2.add",m.i64x2_sub="~lib/builtins/i64x2.sub",m.i64x2_mul="~lib/builtins/i64x2.mul",m.i64x2_abs="~lib/builtins/i64x2.abs",m.i64x2_neg="~lib/builtins/i64x2.neg",m.i64x2_shl="~lib/builtins/i64x2.shl",m.i64x2_shr_s="~lib/builtins/i64x2.shr_s",m.i64x2_shr_u="~lib/builtins/i64x2.shr_u",m.i64x2_all_true="~lib/builtins/i64x2.all_true",m.i64x2_bitmask="~lib/builtins/i64x2.bitmask",m.i64x2_eq="~lib/builtins/i64x2.eq",m.i64x2_ne="~lib/builtins/i64x2.ne",m.i64x2_lt_s="~lib/builtins/i64x2.lt_s",m.i64x2_lt_u="~lib/builtins/i64x2.lt_u",m.i64x2_le_s="~lib/builtins/i64x2.le_s",m.i64x2_le_u="~lib/builtins/i64x2.le_u",m.i64x2_gt_s="~lib/builtins/i64x2.gt_s",m.i64x2_gt_u="~lib/builtins/i64x2.gt_u",m.i64x2_ge_s="~lib/builtins/i64x2.ge_s",m.i64x2_ge_u="~lib/builtins/i64x2.ge_u",m.i64x2_extend_low_i32x4_s="~lib/builtins/i64x2.extend_low_i32x4_s",m.i64x2_extend_low_i32x4_u="~lib/builtins/i64x2.extend_low_i32x4_u",m.i64x2_extend_high_i32x4_s="~lib/builtins/i64x2.extend_high_i32x4_s",m.i64x2_extend_high_i32x4_u="~lib/builtins/i64x2.extend_high_i32x4_u",m.i64x2_extmul_low_i32x4_s="~lib/builtins/i64x2.extmul_low_i32x4_s",m.i64x2_extmul_low_i32x4_u="~lib/builtins/i64x2.extmul_low_i32x4_u",m.i64x2_extmul_high_i32x4_s="~lib/builtins/i64x2.extmul_high_i32x4_s",m.i64x2_extmul_high_i32x4_u="~lib/builtins/i64x2.extmul_high_i32x4_u",m.i64x2_shuffle="~lib/builtins/i64x2.shuffle",m.f32x4_splat="~lib/builtins/f32x4.splat",m.f32x4_extract_lane="~lib/builtins/f32x4.extract_lane",m.f32x4_replace_lane="~lib/builtins/f32x4.replace_lane",m.f32x4_add="~lib/builtins/f32x4.add",m.f32x4_sub="~lib/builtins/f32x4.sub",m.f32x4_mul="~lib/builtins/f32x4.mul",m.f32x4_div="~lib/builtins/f32x4.div",m.f32x4_neg="~lib/builtins/f32x4.neg",m.f32x4_min="~lib/builtins/f32x4.min",m.f32x4_max="~lib/builtins/f32x4.max",m.f32x4_pmin="~lib/builtins/f32x4.pmin",m.f32x4_pmax="~lib/builtins/f32x4.pmax",m.f32x4_abs="~lib/builtins/f32x4.abs",m.f32x4_sqrt="~lib/builtins/f32x4.sqrt",m.f32x4_ceil="~lib/builtins/f32x4.ceil",m.f32x4_floor="~lib/builtins/f32x4.floor",m.f32x4_trunc="~lib/builtins/f32x4.trunc",m.f32x4_nearest="~lib/builtins/f32x4.nearest",m.f32x4_eq="~lib/builtins/f32x4.eq",m.f32x4_ne="~lib/builtins/f32x4.ne",m.f32x4_lt="~lib/builtins/f32x4.lt",m.f32x4_le="~lib/builtins/f32x4.le",m.f32x4_gt="~lib/builtins/f32x4.gt",m.f32x4_ge="~lib/builtins/f32x4.ge",m.f32x4_convert_i32x4_s="~lib/builtins/f32x4.convert_i32x4_s",m.f32x4_convert_i32x4_u="~lib/builtins/f32x4.convert_i32x4_u",m.f32x4_demote_f64x2_zero="~lib/builtins/f32x4.demote_f64x2_zero",m.f32x4_shuffle="~lib/builtins/f32x4.shuffle",m.f64x2_splat="~lib/builtins/f64x2.splat",m.f64x2_extract_lane="~lib/builtins/f64x2.extract_lane",m.f64x2_replace_lane="~lib/builtins/f64x2.replace_lane",m.f64x2_add="~lib/builtins/f64x2.add",m.f64x2_sub="~lib/builtins/f64x2.sub",m.f64x2_mul="~lib/builtins/f64x2.mul",m.f64x2_div="~lib/builtins/f64x2.div",m.f64x2_neg="~lib/builtins/f64x2.neg",m.f64x2_min="~lib/builtins/f64x2.min",m.f64x2_max="~lib/builtins/f64x2.max",m.f64x2_pmin="~lib/builtins/f64x2.pmin",m.f64x2_pmax="~lib/builtins/f64x2.pmax",m.f64x2_abs="~lib/builtins/f64x2.abs",m.f64x2_sqrt="~lib/builtins/f64x2.sqrt",m.f64x2_ceil="~lib/builtins/f64x2.ceil",m.f64x2_floor="~lib/builtins/f64x2.floor",m.f64x2_trunc="~lib/builtins/f64x2.trunc",m.f64x2_nearest="~lib/builtins/f64x2.nearest",m.f64x2_eq="~lib/builtins/f64x2.eq",m.f64x2_ne="~lib/builtins/f64x2.ne",m.f64x2_lt="~lib/builtins/f64x2.lt",m.f64x2_le="~lib/builtins/f64x2.le",m.f64x2_gt="~lib/builtins/f64x2.gt",m.f64x2_ge="~lib/builtins/f64x2.ge",m.f64x2_convert_low_i32x4_s="~lib/builtins/f64x2.convert_low_i32x4_s",m.f64x2_convert_low_i32x4_u="~lib/builtins/f64x2.convert_low_i32x4_u",m.f64x2_promote_low_f32x4="~lib/builtins/f64x2.promote_low_f32x4",m.f64x2_shuffle="~lib/builtins/f64x2.shuffle",m.i8x16_relaxed_swizzle="~lib/builtins/i8x16.relaxed_swizzle",m.i32x4_relaxed_trunc_f32x4_s="~lib/builtins/i32x4.relaxed_trunc_f32x4_s",m.i32x4_relaxed_trunc_f32x4_u="~lib/builtins/i32x4.relaxed_trunc_f32x4_u",m.i32x4_relaxed_trunc_f64x2_s_zero="~lib/builtins/i32x4.relaxed_trunc_f64x2_s_zero",m.i32x4_relaxed_trunc_f64x2_u_zero="~lib/builtins/i32x4.relaxed_trunc_f64x2_u_zero",m.f32x4_relaxed_madd="~lib/builtins/f32x4.relaxed_madd",m.f32x4_relaxed_nmadd="~lib/builtins/f32x4.relaxed_nmadd",m.f64x2_relaxed_madd="~lib/builtins/f64x2.relaxed_madd",m.f64x2_relaxed_nmadd="~lib/builtins/f64x2.relaxed_nmadd",m.i8x16_relaxed_laneselect="~lib/builtins/i8x16.relaxed_laneselect",m.i16x8_relaxed_laneselect="~lib/builtins/i16x8.relaxed_laneselect",m.i32x4_relaxed_laneselect="~lib/builtins/i32x4.relaxed_laneselect",m.i64x2_relaxed_laneselect="~lib/builtins/i64x2.relaxed_laneselect",m.f32x4_relaxed_min="~lib/builtins/f32x4.relaxed_min",m.f32x4_relaxed_max="~lib/builtins/f32x4.relaxed_max",m.f64x2_relaxed_min="~lib/builtins/f64x2.relaxed_min",m.f64x2_relaxed_max="~lib/builtins/f64x2.relaxed_max",m.i16x8_relaxed_q15mulr_s="~lib/builtins/i16x8.relaxed_q15mulr_s",m.i16x8_relaxed_dot_i8x16_i7x16_s="~lib/builtins/i16x8.relaxed_dot_i8x16_i7x16_s",m.i32x4_relaxed_dot_i8x16_i7x16_add_s="~lib/builtins/i32x4.relaxed_dot_i8x16_i7x16_add_s",m.i31_new="~lib/builtins/i31.new",m.i31_get="~lib/builtins/i31.get",m.data_end="~lib/memory/__data_end",m.stack_pointer="~lib/memory/__stack_pointer",m.heap_base="~lib/memory/__heap_base",m.rtti_base="~lib/rt/__rtti_base",m.visit_globals="~lib/rt/__visit_globals",m.visit_members="~lib/rt/__visit_members",m.tostack="~lib/rt/__tostack",m.NaN="~lib/number/NaN",m.Infinity="~lib/number/Infinity",m.isNaN="~lib/number/isNaN",m.isFinite="~lib/number/isFinite",m.ERROR="~lib/diagnostics/ERROR",m.WARNING="~lib/diagnostics/WARNING",m.INFO="~lib/diagnostics/INFO",m.Function="~lib/function/Function",m.Function_call="~lib/function/Function#call",m.memory_size="~lib/memory/memory.size",m.memory_grow="~lib/memory/memory.grow",m.memory_copy="~lib/memory/memory.copy",m.memory_fill="~lib/memory/memory.fill",m.memory_data="~lib/memory/memory.data",m.Int8Array="~lib/typedarray/Int8Array",m.Uint8Array="~lib/typedarray/Uint8Array",m.Uint8ClampedArray="~lib/typedarray/Uint8ClampedArray",m.Int16Array="~lib/typedarray/Int16Array",m.Uint16Array="~lib/typedarray/Uint16Array",m.Int32Array="~lib/typedarray/Int32Array",m.Uint32Array="~lib/typedarray/Uint32Array",m.Int64Array="~lib/typedarray/Int64Array",m.Uint64Array="~lib/typedarray/Uint64Array",m.Float32Array="~lib/typedarray/Float32Array",m.Float64Array="~lib/typedarray/Float64Array",m.String_raw="~lib/string/String.raw",m.String_eq="~lib/string/String.__eq",m.String_ne="~lib/string/String.__ne",m.String_not="~lib/string/String.__not",m.Object="~lib/object/Object"))(d||={});var Wl=class{constructor(i,e,r,n,s){this.resolver=i;this.node=e;this.ctxElement=r;this.ctxTypes=n;this.reportMode=s}},os=class{constructor(i,e,r=e.type,n=e.identifierNode){this.compiler=i;this.element=e;this.contextualType=r;this.reportNode=n}},Jl=class{constructor(i,e,r,n,s,a,l,o){this.compiler=i;this.prototype=e;this.typeArguments=r;this.operands=n;this.thisOperand=s;this.contextualType=a;this.reportNode=l;this.contextIsExact=o}},rr=new Map,g=new Map,qt=new Map,ot=new Map;function O2(t){let i=t.resolver,e=t.node,r=t.ctxElement,n=t.ctxTypes,s=t.reportMode,a=i.ensureOneTypeArgument(e,s);if(!a)return null;let l=i.resolveType(a,null,r,n,s);if(!l)return null;switch(l.kind){case 1:case 2:case 3:return p.i32;case 5:if(!i.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(!i.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 25:return p.void;default:assert(!1)}return null}rr.set(P.native,O2);function q2(t){let i=t.resolver,e=t.node,r=t.ctxElement,n=t.ctxTypes,s=t.reportMode,a=i.ensureOneTypeArgument(e,s);if(!a)return null;let l=i.resolveType(a,null,r,n,s);if(!l)return null;let o=l.classReference;if(!o)return s==0&&i.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&&i.error(2329,a.range,l.toString()),null}rr.set(P.indexof,q2);function W2(t){let i=t.resolver,e=t.node,r=t.ctxElement,n=t.ctxTypes,s=t.reportMode,a=i.ensureOneTypeArgument(e,s);if(!a)return null;let l=i.resolveType(a,null,r,n,s);if(!l)return null;let o=l.getClassOrWrapper(i.program);if(o){let u=o.lookupOverload(1);if(u)return u.signature.returnType}return s==0&&i.error(2329,a.range,l.toString()),null}rr.set(P.valueof,W2);function K2(t){let i=t.resolver,e=t.node,r=t.ctxElement,n=t.ctxTypes,s=t.reportMode,a=i.ensureOneTypeArgument(e,s);if(!a)return null;let l=i.resolveType(a,null,r,n,s);if(!l)return null;let o=l.getSignature();return o?o.returnType:(s==0&&i.error(2757,a.range,l.toString()),null)}rr.set(P.returnof,K2);function j2(t){let i=t.resolver,e=t.node,r=t.ctxElement,n=t.ctxTypes,s=t.reportMode,a=i.ensureOneTypeArgument(e,s);if(!a)return null;let l=i.resolveType(a,null,r,n,s);return l?l.isNullableReference?l.nonNullableType:l:null}rr.set(P.nonnull,j2);var Li=0;function H2(t){let i=t.compiler,e=i.module,r=Be(t);return i.currentType=p.bool,r?Fe(t,e.i32(r.isBooleanValue?1:0)):e.unreachable()}g.set(d.isBoolean,H2);function Q2(t){let i=t.compiler,e=i.module,r=Be(t);return i.currentType=p.bool,r?Fe(t,e.i32(r.isIntegerValue?1:0)):e.unreachable()}g.set(d.isInteger,Q2);function X2(t){let i=t.compiler,e=i.module,r=Be(t);return i.currentType=p.bool,r?Fe(t,e.i32(r.isSignedIntegerValue?1:0)):e.unreachable()}g.set(d.isSigned,X2);function J2(t){let i=t.compiler,e=i.module,r=Be(t);return i.currentType=p.bool,r?Fe(t,e.i32(r.isFloatValue?1:0)):e.unreachable()}g.set(d.isFloat,J2);function Z2(t){let i=t.compiler,e=i.module,r=Be(t);return i.currentType=p.bool,r?Fe(t,e.i32(r.isVectorValue?1:0)):e.unreachable()}g.set(d.isVector,Z2);function Y2(t){let i=t.compiler,e=i.module,r=Be(t);return i.currentType=p.bool,r?Fe(t,e.i32(r.isReference?1:0)):e.unreachable()}g.set(d.isReference,Y2);function $2(t){let i=t.compiler,e=i.module,r=Be(t);if(i.currentType=p.bool,!r)return e.unreachable();let n=r.getClass();return Fe(t,e.i32(n&&n.isAssignableTo(i.program.stringInstance)?1:0))}g.set(d.isString,$2);function e1(t){let i=t.compiler,e=i.module,r=Be(t);if(i.currentType=p.bool,!r)return e.unreachable();let n=r.getClass();return Fe(t,e.i32(n&&n.extendsPrototype(i.program.arrayPrototype)?1:0))}g.set(d.isArray,e1);function t1(t){let i=t.compiler,e=i.module,r=Be(t);if(i.currentType=p.bool,!r)return e.unreachable();let n=r.getClass();return Fe(t,e.i32(n&&n.isArrayLike?1:0))}g.set(d.isArrayLike,t1);function r1(t){let i=t.compiler,e=i.module,r=Be(t);return i.currentType=p.bool,r?Fe(t,e.i32(r.isFunction?1:0)):e.unreachable()}g.set(d.isFunction,r1);function i1(t){let i=t.compiler,e=i.module,r=Be(t);return i.currentType=p.bool,r?Fe(t,e.i32(r.isNullableReference?1:0)):e.unreachable()}g.set(d.isNullable,i1);function n1(t){let i=t.compiler,e=i.module;if(i.currentType=p.bool,v(t)|K(t,1))return e.unreachable();let r=i.resolver.lookupExpression(t.operands[0],i.currentFlow,p.auto,1);return e.i32(r?1:0)}g.set(d.isDefined,n1);function s1(t){let i=t.compiler,e=i.module;if(i.currentType=p.bool,v(t)|K(t,1))return e.unreachable();let r=i.compileExpression(t.operands[0],p.auto);return i.currentType=p.bool,Gl(r,e.ref)?e.block(null,[e.maybeDrop(r),e.i32(0)],se(r)):e.i32(e.isConstExpression(r)?1:0)}g.set(d.isConstant,s1);function a1(t){let i=t.compiler,e=i.module,r=Be(t);return i.currentType=p.bool,r?Fe(t,e.i32(r.isManaged?1:0)):e.unreachable()}g.set(d.isManaged,a1);function l1(t){let i=t.compiler,e=i.module,r=Be(t);return i.currentType=p.bool,r?Fe(t,e.i32(r.kind==25?1:0)):e.unreachable()}g.set(d.isVoid,l1);function o1(t){let i=t.compiler,e=i.module,r=Be(t);if(i.currentType=p.i32,!r)return e.unreachable();let n=r.signatureReference;return n?Fe(t,e.i32(n.parameterTypes.length)):(i.error(2757,t.reportNode.range,r.toString()),e.unreachable())}g.set(d.lengthof,o1);function u1(t){let i=t.compiler,e=i.module;if(i.currentType=i.options.usizeType,J(t)|K(t,0))return e.unreachable();let r=t.typeArguments[0],n=r.byteSize;return n?Zl(i,i64_new(n),t.contextualType):(i.error(203,t.reportNode.typeArgumentsRange,"sizeof",r.toString()),e.unreachable())}g.set(d.sizeof,u1);function p1(t){let i=t.compiler,e=i.module;if(i.currentType=i.options.usizeType,J(t)|K(t,0))return e.unreachable();let r=t.typeArguments[0],n=r.byteSize;return Pt(n)?Zl(i,i64_new(ctz(n)),t.contextualType):(i.error(203,t.reportNode.typeArgumentsRange,"alignof",r.toString()),e.unreachable())}g.set(d.alignof,p1);function c1(t){let i=t.compiler,e=i.module;if(i.currentType=i.options.usizeType,J(t)|Se(t,0,1))return e.unreachable();let r=t.operands,n=t.contextualType,s=t.typeArguments[0],a=s.getClassOrWrapper(i.program);if(!a)return i.error(203,t.reportNode.typeArgumentsRange,"offsetof",s.toString()),i.options.isWasm64?n.isIntegerValue&&n.size<=32&&(i.currentType=p.u32):n.isIntegerValue&&n.size==64&&(i.currentType=p.u64),e.unreachable();if(r.length){let l=r[0];if(!l.isLiteralKind(2))return i.error(1141,r[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),Zl(i,i64_new(c.memoryOffset),n)}return i.error(2460,l.range,a.internalName,o),e.unreachable()}return Zl(i,i64_new(a.nextMemoryOffset),n)}g.set(d.offsetof,c1);function _1(t){let i=t.compiler,e=i.module,r=Be(t);if(!r)return i.currentType=i.program.stringInstance.type,e.unreachable();let n;if(r.isInternalReference){let s=r.getClass();s?n=s.name:(assert(r.getSignature()),n="Function")}else n=r.toString();return Fe(t,i.ensureStaticString(n))}g.set(d.nameof,_1);function f1(t){let i=t.compiler,e=i.module,r=Be(t);if(i.currentType=p.u32,!r)return e.unreachable();let n=r.getSignature();if(n)return Fe(t,e.i32(n.id));let s=r.getClassOrWrapper(i.program);return s&&!s.hasDecorator(16)?Fe(t,e.i32(s.id)):(i.error(203,t.reportNode.typeArgumentsRange,"idof",r.toString()),e.unreachable())}g.set(d.idof,f1);function h1(t){let i=t.element;if(i.is(1048576)){let e=t.compiler.module;e.addGlobal(i.internalName,L.F64,!1,e.f64(NaN))}}qt.set(d.NaN,h1);function d1(t){let i=t.compiler,e=i.module;return t.contextualType==p.f32?(i.currentType=p.f32,e.f32(NaN)):(i.currentType=p.f64,e.f64(NaN))}ot.set(d.NaN,d1);function m1(t){let i=t.element;if(i.is(1048576)){let e=t.compiler.module;e.addGlobal(i.internalName,L.F64,!1,e.f64(1/0))}}qt.set(d.Infinity,m1);function y1(t){let i=t.compiler,e=i.module;return t.contextualType==p.f32?(i.currentType=p.f32,e.f32(1/0)):(i.currentType=p.f64,e.f64(1/0))}ot.set(d.Infinity,y1);function tc(t){let i=t.compiler,e=i.module;if(ae(t,!0)|K(t,1))return e.unreachable();let r=t.typeArguments,n=r?i.compileExpression(t.operands[0],r[0],5):i.compileExpression(t.operands[0],p.i32,4),s=i.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 i.error(203,t.reportNode.typeArgumentsRange,"clz",s.toString()),e.unreachable()}g.set(d.clz,tc);function rc(t){let i=t.compiler,e=i.module;if(ae(t,!0)|K(t,1))return e.unreachable();let r=t.operands,n=t.typeArguments,s=n?i.compileExpression(r[0],n[0],5):i.compileExpression(r[0],p.i32,4),a=i.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 i.error(203,t.reportNode.typeArgumentsRange,"ctz",a.toString()),e.unreachable()}g.set(d.ctz,rc);function ic(t){let i=t.compiler,e=i.module;if(ae(t,!0)|K(t,1))return e.unreachable();let r=t.operands,n=t.typeArguments,s=n?i.compileExpression(r[0],n[0],5):i.compileExpression(r[0],p.i32,4),a=i.currentType;if(a.isValue)switch(i.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 i.error(203,t.reportNode.typeArgumentsRange,"popcnt",a.toString()),e.unreachable()}g.set(d.popcnt,ic);function nc(t){let i=t.compiler,e=i.module;if(ae(t,!0)|K(t,2))return e.unreachable();let r=t.operands,n=t.typeArguments,s=n?i.compileExpression(r[0],n[0],5):i.compileExpression(r[0],p.i32,4),a=i.currentType;if(a.isValue){let l=i.compileExpression(r[1],a,1);switch(a.kind){case 0:return s;case 1:case 2:case 6:case 7:{let o=i.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,L.I32),e.binary(7,e.binary(1,e.i32(0),e.local_get(c.index,L.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 i.error(203,t.reportNode.typeArgumentsRange,"rotl",a.toString()),e.unreachable()}g.set(d.rotl,nc);function sc(t){let i=t.compiler,e=i.module;if(ae(t,!0)|K(t,2))return e.unreachable();let r=t.operands,n=t.typeArguments,s=n?i.compileExpression(r[0],n[0],5):i.compileExpression(r[0],p.i32,4),a=i.currentType;if(a.isValue){let l=i.compileExpression(r[1],a,1);switch(a.kind){case 0:return s;case 1:case 2:case 6:case 7:{let o=i.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,L.I32),e.binary(7,e.binary(1,e.i32(0),e.local_get(c.index,L.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 i.error(203,t.reportNode.typeArgumentsRange,"rotr",a.toString()),e.unreachable()}g.set(d.rotr,sc);function ac(t){let i=t.compiler,e=i.module;if(ae(t,!0)|K(t,1))return e.unreachable();let r=t.operands,n=t.typeArguments,s=n?i.compileExpression(r[0],n[0],5):i.compileExpression(r[0],p.auto,4),a=i.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=i.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,L.I32)),e.local_get(u.index,L.I32))}case 5:{let l=i.options,o=i.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),i.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=i.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,L.I64)),e.local_get(u.index,L.I64))}case 11:return e.unary(8,s);case 12:return e.unary(9,s)}return i.error(203,t.reportNode.typeArgumentsRange,"abs",a.toString()),e.unreachable()}g.set(d.abs,ac);function lc(t){let i=t.compiler,e=i.module;if(ae(t,!0)|K(t,2))return e.unreachable();let r=t.operands,n=t.typeArguments,s=r[0],a=n?i.compileExpression(s,n[0],5):i.compileExpression(r[0],p.auto,4),l=i.currentType;if(l.isValue){let o;!n&&s.isNumericLiteral?(o=i.compileExpression(r[1],l,4),i.currentType!=l&&(a=i.compileExpression(s,l=i.currentType,5))):o=i.compileExpression(r[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=i.currentFlow,_=l.toRef(),f=c.getTempLocal(l);c.setLocalFlag(f.index,2);let h=c.getTempLocal(l);return c.setLocalFlag(h.index,2),e.select(e.local_tee(f.index,a,!1),e.local_tee(h.index,o,!1),e.binary(u,e.local_get(f.index,_),e.local_get(h.index,_)))}}return i.error(203,t.reportNode.typeArgumentsRange,"max",l.toString()),e.unreachable()}g.set(d.max,lc);function oc(t){let i=t.compiler,e=i.module;if(ae(t,!0)|K(t,2))return e.unreachable();let r=t.operands,n=t.typeArguments,s=r[0],a=n?i.compileExpression(s,n[0],5):i.compileExpression(r[0],p.auto,4),l=i.currentType;if(l.isValue){let o;!n&&s.isNumericLiteral?(o=i.compileExpression(r[1],l,4),i.currentType!=l&&(a=i.compileExpression(s,l=i.currentType,5))):o=i.compileExpression(r[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=i.currentFlow,_=l.toRef(),f=c.getTempLocal(l);c.setLocalFlag(f.index,2);let h=c.getTempLocal(l);return c.setLocalFlag(h.index,2),e.select(e.local_tee(f.index,a,!1),e.local_tee(h.index,o,!1),e.binary(u,e.local_get(f.index,_),e.local_get(h.index,_)))}}return i.error(203,t.reportNode.typeArgumentsRange,"min",l.toString()),e.unreachable()}g.set(d.min,oc);function uc(t){let i=t.compiler,e=i.module;if(ae(t,!0)|K(t,1))return e.unreachable();let r=t.operands,n=t.typeArguments,s=n?i.compileExpression(r[0],n[0],1):i.compileExpression(r[0],p.auto,0),a=i.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 i.error(203,t.reportNode.typeArgumentsRange,"ceil",a.toString()),e.unreachable()}g.set(d.ceil,uc);function pc(t){let i=t.compiler,e=i.module;if(ae(t,!0)|K(t,1))return e.unreachable();let r=t.operands,n=t.typeArguments,s=n?i.compileExpression(r[0],n[0],1):i.compileExpression(r[0],p.auto,0),a=i.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 i.error(203,t.reportNode.typeArgumentsRange,"floor",a.toString()),e.unreachable()}g.set(d.floor,pc);function cc(t){let i=t.compiler,e=i.module;if(ae(t,!0)|K(t,2))return e.unreachable();let r=t.operands,n=t.typeArguments,s=n?i.compileExpression(r[0],n[0],1):i.compileExpression(r[0],p.f64,0),a=i.currentType;if(a.isValue){let l=i.compileExpression(r[1],a,1);switch(a.kind){case 11:return e.binary(54,s,l);case 12:return e.binary(67,s,l)}}return i.error(203,t.reportNode.typeArgumentsRange,"copysign",a.toString()),e.unreachable()}g.set(d.copysign,cc);function _c(t){let i=t.compiler,e=i.module;if(ae(t,!0)|K(t,1))return e.unreachable();let r=t.operands,n=t.typeArguments,s=n?i.compileExpression(r[0],n[0],1):i.compileExpression(r[0],p.auto,0),a=i.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 i.error(203,t.reportNode.typeArgumentsRange,"nearest",a.toString()),e.unreachable()}g.set(d.nearest,_c);function us(t){let i=t.compiler,e=i.module;if(J(t,!0)|K(t,1))return e.unreachable();let r=t.operands,s=t.typeArguments[0];if(s.isValue)switch(s.kind){case 3:case 8:{let a=i.compileExpression(r[0],p.f32,1);return i.currentType=s,e.unary(33,a)}case 4:case 9:{let a=i.compileExpression(r[0],p.f64,1);return i.currentType=s,e.unary(34,a)}case 5:case 10:{let a=i.options.isWasm64,l=i.compileExpression(r[0],a?p.f64:p.f32,1);return i.currentType=s,e.unary(a?34:33,l)}case 11:{let a=i.compileExpression(r[0],p.i32,1);return i.currentType=p.f32,e.unary(45,a)}case 12:{let a=i.compileExpression(r[0],p.i64,1);return i.currentType=p.f64,e.unary(46,a)}}return i.error(203,t.reportNode.typeArgumentsRange,"reinterpret",s.toString()),e.unreachable()}g.set(d.reinterpret,us);function fc(t){let i=t.compiler,e=i.module;if(ae(t,!0)|K(t,1))return e.unreachable();let r=t.operands,n=t.typeArguments,s=n?i.compileExpression(r[0],n[0],1):i.compileExpression(r[0],p.f64,0),a=i.currentType;if(a.isValue)switch(a.kind){case 11:return e.unary(18,s);case 12:return e.unary(19,s)}return i.error(203,t.reportNode.typeArgumentsRange,"sqrt",a.toString()),e.unreachable()}g.set(d.sqrt,fc);function hc(t){let i=t.compiler,e=i.module;if(ae(t,!0)|K(t,1))return e.unreachable();let r=t.operands,n=t.typeArguments,s=n?i.compileExpression(r[0],n[0],1):i.compileExpression(r[0],p.auto,0),a=i.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 i.error(203,t.reportNode.typeArgumentsRange,"trunc",a.toString()),e.unreachable()}g.set(d.trunc,hc);function g1(t){let i=t.compiler,e=i.module;if(ae(t)|K(t,1))return i.currentType=p.bool,e.unreachable();let r=t.operands,n=t.typeArguments,s=n?i.compileExpression(r[0],n[0],1):i.compileExpression(r[0],p.auto),a=i.currentType;if(i.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($(s)==8)return e.binary(58,s,e.local_get(dt(s),L.F32));let o=i.currentFlow.getTempLocal(p.f32);return e.binary(58,e.local_tee(o.index,s,!1),e.local_get(o.index,L.F32))}case 12:{if($(s)==8)return e.binary(71,s,e.local_get(dt(s),L.F64));let o=i.currentFlow.getTempLocal(p.f64);return e.binary(71,e.local_tee(o.index,s,!1),e.local_get(o.index,L.F64))}}return i.error(203,t.reportNode.typeArgumentsRange,"isNaN",a.toString()),e.unreachable()}g.set(d.isNaN,g1);function b1(t){let i=t.compiler,e=i.module;if(ae(t)|K(t,1))return i.currentType=p.bool,e.unreachable();let r=t.operands,n=t.typeArguments,s=n?i.compileExpression(r[0],n[0],1):i.compileExpression(r[0],p.auto),a=i.currentType;if(i.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($(s)==8)return e.binary(57,e.binary(51,s,e.local_get(dt(s),L.F32)),e.f32(0));let o=i.currentFlow.getTempLocal(p.f32);return e.binary(57,e.binary(51,e.local_tee(o.index,s,!1),e.local_get(o.index,L.F32)),e.f32(0))}case 12:{if($(s)==8)return e.binary(70,e.binary(64,s,e.local_get(dt(s),L.F64)),e.f64(0));let o=i.currentFlow.getTempLocal(p.f64);return e.binary(70,e.binary(64,e.local_tee(o.index,s,!1),e.local_get(o.index,L.F64)),e.f64(0))}}return i.error(203,t.reportNode.typeArgumentsRange,"isFinite",a.toString()),e.unreachable()}g.set(d.isFinite,b1);function x1(t){let i=t.compiler,e=i.module,r=t.element,n=r.type;i.runtimeFeatures|=4,e.getGlobal(r.internalName)||e.addGlobal(r.internalName,n.toRef(),!0,i.makeZero(n))}qt.set(d.heap_base,x1);function T1(t){let i=t.compiler,e=i.module,r=t.element,n=r.type;return i.runtimeFeatures|=4,i.currentType=n,e.global_get(r.internalName,n.toRef())}ot.set(d.heap_base,T1);function A1(t){let i=t.compiler,e=i.module,r=t.element,n=r.type;i.runtimeFeatures|=1,e.getGlobal(r.internalName)||e.addGlobal(r.internalName,n.toRef(),!0,i.makeZero(n))}qt.set(d.data_end,A1);function E1(t){let i=t.compiler,e=i.module,r=t.element,n=r.type;return i.runtimeFeatures|=1,i.currentType=n,e.global_get(r.internalName,n.toRef())}ot.set(d.data_end,E1);function v1(t){let i=t.compiler,e=i.module,r=t.element,n=r.type;i.runtimeFeatures|=2,e.getGlobal(r.internalName)||e.addGlobal(r.internalName,n.toRef(),!0,i.makeZero(n))}qt.set(d.stack_pointer,v1);function S1(t){let i=t.compiler,e=i.module,r=t.element,n=r.type;return i.runtimeFeatures|=2,i.currentType=n,e.global_get(r.internalName,n.toRef())}ot.set(d.stack_pointer,S1);function I1(t){let i=t.compiler,e=i.module,r=t.element,n=r.type;i.runtimeFeatures|=8,e.getGlobal(r.internalName)||e.addGlobal(r.internalName,n.toRef(),!0,i.makeZero(n))}qt.set(d.rtti_base,I1);function R1(t){let i=t.compiler,e=i.module,r=t.element,n=r.type;return i.runtimeFeatures|=8,i.currentType=n,e.global_get(r.internalName,n.toRef())}ot.set(d.rtti_base,R1);function Pe(t){let i=t.compiler,e=i.module;if(J(t,!0)|Se(t,1,3))return e.unreachable();let r=t.operands,n=t.typeArguments,s=t.contextualType,a=n[0],l=s!=p.auto&&a.isIntegerValue&&s.isIntegerValue&&s.size>a.size?s:a;if(!l.isMemory)return i.error(203,t.reportNode.typeArgumentsRange,"load",l.toString()),i.currentType=p.void,e.unreachable();let o=i.compileExpression(r[0],i.options.usizeType,1),u=r.length,c=0,_=a.byteSize;return u>=2&&(c=tt(r[1],i),c<0||u==3&&(_=Ot(r[2],_,i),_<0))?(i.currentType=l,e.unreachable()):(i.currentType=l,e.load(a.byteSize,a.isSignedIntegerValue,o,l.toRef(),c,_))}g.set(d.load,Pe);function ut(t){let i=t.compiler,e=i.module;if(i.currentType=p.void,J(t)|Se(t,2,4))return e.unreachable();let r=t.operands,n=r.length,s=t.typeArguments,a=t.contextualType,l=s[0],o=i.compileExpression(r[0],i.options.usizeType,1),u=t.contextIsExact?i.compileExpression(r[1],a,1):i.compileExpression(r[1],l,l.isIntegerValue?0:1),c=i.currentType;if(!c.isMemory)return i.error(203,t.reportNode.typeArgumentsRange,"store",c.toString()),i.currentType=p.void,e.unreachable();l.isIntegerValue&&(!c.isIntegerValue||c.size<l.size)&&(u=i.convertExpression(u,c,l,!1,r[1]),c=l);let _=0,f=l.byteSize;if(n>=3){if(_=tt(r[2],i),_<0)return i.currentType=p.void,e.unreachable();if(n==4&&(f=Ot(r[3],f,i),f<0))return i.currentType=p.void,e.unreachable()}return i.currentType=p.void,e.store(l.byteSize,o,u,c.toRef(),_,f)}g.set(d.store,ut);function ps(t){let i=t.compiler,e=i.module;if(ae(t,!0)|K(t,2))return e.unreachable();let r=t.operands,n=t.typeArguments,s=r[0],a=n?i.compileExpression(s,n[0],1):i.compileExpression(r[0],p.auto),l=i.currentType;if(l.isIntegerValue){let o;if(!n&&s.isNumericLiteral?(o=i.compileExpression(r[1],l),i.currentType!=l&&(a=i.compileExpression(s,l=i.currentType,1))):o=i.compileExpression(r[1],l,1),l.isIntegerValue)return i.makeRem(a,o,l,t.reportNode)}return i.error(203,t.reportNode.typeArgumentsRange,"rem",l.toString()),e.unreachable()}g.set(d.rem,ps);function cs(t){let i=t.compiler,e=i.module;if(ae(t,!0)|K(t,2))return e.unreachable();let r=t.operands,n=t.typeArguments,s=r[0],a=n?i.compileExpression(s,n[0],1):i.compileExpression(r[0],p.auto),l=i.currentType;if(l.isValue){let o;if(!n&&s.isNumericLiteral?(o=i.compileExpression(r[1],l),i.currentType!=l&&(a=i.compileExpression(s,l=i.currentType,1))):o=i.compileExpression(r[1],l,1),l.isNumericValue)return i.makeAdd(a,o,l)}return i.error(203,t.reportNode.typeArgumentsRange,"add",l.toString()),e.unreachable()}g.set(d.add,cs);function _s(t){let i=t.compiler,e=i.module;if(ae(t,!0)|K(t,2))return e.unreachable();let r=t.operands,n=t.typeArguments,s=r[0],a=n?i.compileExpression(s,n[0],1):i.compileExpression(r[0],p.auto),l=i.currentType;if(l.isValue){let o;if(!n&&s.isNumericLiteral?(o=i.compileExpression(r[1],l),i.currentType!=l&&(a=i.compileExpression(s,l=i.currentType,1))):o=i.compileExpression(r[1],l,1),l.isNumericValue)return i.makeSub(a,o,l)}return i.error(203,t.reportNode.typeArgumentsRange,"sub",l.toString()),e.unreachable()}g.set(d.sub,_s);function fs(t){let i=t.compiler,e=i.module;if(ae(t,!0)|K(t,2))return e.unreachable();let r=t.operands,n=t.typeArguments,s=r[0],a=n?i.compileExpression(s,n[0],1):i.compileExpression(r[0],p.auto),l=i.currentType;if(l.isValue){let o;if(!n&&s.isNumericLiteral?(o=i.compileExpression(r[1],l),i.currentType!=l&&(a=i.compileExpression(s,l=i.currentType,1))):o=i.compileExpression(r[1],l,1),l.isNumericValue)return i.makeMul(a,o,l)}return i.error(203,t.reportNode.typeArgumentsRange,"mul",l.toString()),e.unreachable()}g.set(d.mul,fs);function Nr(t){let i=t.compiler,e=i.module;if(ae(t,!0)|K(t,2))return e.unreachable();let r=t.operands,n=t.typeArguments,s=r[0],a=n?i.compileExpression(s,n[0],1):i.compileExpression(r[0],p.auto),l=i.currentType;if(l.isValue){let o;if(!n&&s.isNumericLiteral?(o=i.compileExpression(r[1],l),i.currentType!=l&&(a=i.compileExpression(s,l=i.currentType,1))):o=i.compileExpression(r[1],l,1),l.isNumericValue)return i.makeDiv(a,o,l)}return i.error(203,t.reportNode.typeArgumentsRange,"div",l.toString()),e.unreachable()}g.set(d.div,Nr);function hs(t){let i=t.compiler,e=i.module;if(ae(t,!0)|K(t,2))return e.unreachable();let r=t.operands,n=t.typeArguments,s=r[0],a=n?i.compileExpression(s,n[0],1):i.compileExpression(r[0],p.auto),l=i.currentType;if(l.isValue){let o;if(!n&&s.isNumericLiteral?(o=i.compileExpression(r[1],l),i.currentType!=l&&(a=i.compileExpression(s,l=i.currentType,1))):o=i.compileExpression(r[1],l,1),l.isNumericValue)return i.currentType=p.i32,i.makeEq(a,o,l,t.reportNode)}return i.error(203,t.reportNode.typeArgumentsRange,"eq",l.toString()),e.unreachable()}g.set(d.eq,hs);function ds(t){let i=t.compiler,e=i.module;if(ae(t,!0)|K(t,2))return e.unreachable();let r=t.operands,n=t.typeArguments,s=r[0],a=n?i.compileExpression(s,n[0],1):i.compileExpression(r[0],p.auto),l=i.currentType;if(l.isValue){let o;if(!n&&s.isNumericLiteral?(o=i.compileExpression(r[1],l),i.currentType!=l&&(a=i.compileExpression(s,l=i.currentType,1))):o=i.compileExpression(r[1],l,1),l.isNumericValue)return i.currentType=p.i32,i.makeNe(a,o,l,t.reportNode)}return i.error(203,t.reportNode.typeArgumentsRange,"ne",l.toString()),e.unreachable()}g.set(d.ne,ds);function ar(t){let i=t.compiler,e=i.module;if(X(t,32)|J(t,!0)|Se(t,1,2))return e.unreachable();let r=t.operands,n=t.typeArguments,s=t.contextualType,a=n[0],l=a.isIntegerValue&&s.isIntegerValue&&s.size>a.size?s:a;if(!a.isIntegerValue)return i.error(203,t.reportNode.typeArgumentsRange,"atomic.load",a.toString()),i.currentType=l,e.unreachable();let o=i.compileExpression(r[0],i.options.usizeType,1),u=r.length==2?tt(r[1],i):0;return u<0?(i.currentType=l,e.unreachable()):(i.currentType=l,e.atomic_load(a.byteSize,o,l.toRef(),u))}g.set(d.atomic_load,ar);function lr(t){let i=t.compiler,e=i.module;if(X(t,32)|J(t)|Se(t,2,3))return e.unreachable();let r=t.operands,n=t.typeArguments,s=t.contextualType,a=n[0];if(!a.isIntegerValue)return i.error(203,t.reportNode.typeArgumentsRange,"atomic.store",a.toString()),i.currentType=p.void,e.unreachable();let l=i.compileExpression(r[0],i.options.usizeType,1),o=t.contextIsExact?i.compileExpression(r[1],s,1):i.compileExpression(r[1],a,a.isIntegerValue?0:1),u=i.currentType;a.isIntegerValue&&(!u.isIntegerValue||u.size<a.size)&&(o=i.convertExpression(o,u,a,!1,r[1]),u=a);let c=r.length==3?tt(r[2],i):0;return c<0?(i.currentType=p.void,e.unreachable()):(i.currentType=p.void,e.atomic_store(a.byteSize,l,o,u.toRef(),c))}g.set(d.atomic_store,lr);function Ni(t,i,e){let r=t.compiler,n=r.module;if(X(t,32)|J(t,!0)|Se(t,2,3))return n.unreachable();let s=t.operands,a=t.typeArguments,l=t.contextualType,o=a[0];if(!o.isIntegerValue||o.size<8)return r.error(203,t.reportNode.typeArgumentsRange,e,o.toString()),n.unreachable();let u=r.compileExpression(s[0],r.options.usizeType,1),c=t.contextIsExact?r.compileExpression(s[1],l,1):r.compileExpression(s[1],o,o.isIntegerValue?0:1),_=r.currentType;o.isIntegerValue&&(!_.isIntegerValue||_.size<o.size)&&(c=r.convertExpression(c,_,o,!1,s[1]),_=o);let f=s.length==3?tt(s[2],r):0;return f<0?(r.currentType=_,n.unreachable()):(r.currentType=_,n.atomic_rmw(i,o.byteSize,f,u,c,_.toRef()))}function or(t){return Ni(t,0,"atomic.add")}g.set(d.atomic_add,or);function ur(t){return Ni(t,1,"atomic.sub")}g.set(d.atomic_sub,ur);function pr(t){return Ni(t,2,"atomic.and")}g.set(d.atomic_and,pr);function cr(t){return Ni(t,3,"atomic.or")}g.set(d.atomic_or,cr);function _r(t){return Ni(t,4,"atomic.xor")}g.set(d.atomic_xor,_r);function fr(t){return Ni(t,5,"atomic.xchg")}g.set(d.atomic_xchg,fr);function hr(t){let i=t.compiler,e=i.module;if(X(t,32)|J(t,!0)|Se(t,3,4))return e.unreachable();let r=t.operands,n=t.typeArguments,s=t.contextualType,a=n[0];if(!a.isIntegerValue||a.size<8)return i.error(203,t.reportNode.typeArgumentsRange,"atomic.cmpxchg",a.toString()),e.unreachable();let l=i.compileExpression(r[0],i.options.usizeType,1),o=t.contextIsExact?i.compileExpression(r[1],s,1):i.compileExpression(r[1],a,a.isIntegerValue?0:1),u=i.currentType,c=i.compileExpression(r[2],u,1);a.isIntegerValue&&(!u.isIntegerValue||u.size<a.size)&&(o=i.convertExpression(o,u,a,!1,r[1]),c=i.convertExpression(c,u,a,!1,r[2]),u=a);let _=r.length==4?tt(r[3],i):0;return _<0?(i.currentType=u,e.unreachable()):(i.currentType=u,e.atomic_cmpxchg(a.byteSize,_,l,o,c,u.toRef()))}g.set(d.atomic_cmpxchg,hr);function dc(t){let i=t.compiler,e=i.module;if(X(t,32)|J(t)|Se(t,2,3))return i.currentType=p.i32,e.unreachable();let r=t.operands,s=t.typeArguments[0],a=i.compileExpression(r[0],i.options.usizeType,1),l=i.compileExpression(r[1],s,1),o=r.length==3?i.compileExpression(r[2],p.i64,1):e.i64(-1,-1);switch(i.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 i.error(203,t.reportNode.typeArgumentsRange,"atomic.wait",s.toString()),e.unreachable()}g.set(d.atomic_wait,dc);function F1(t){let i=t.compiler,e=i.module;if(X(t,32)|v(t)|Se(t,1,2))return i.currentType=p.i32,e.unreachable();let r=t.operands,n=i.compileExpression(r[0],i.options.usizeType,1),s=r.length==2?i.compileExpression(r[1],p.i32,1):e.i32(-1);return i.currentType=p.i32,e.atomic_notify(n,s)}g.set(d.atomic_notify,F1);function k1(t){let i=t.compiler,e=i.module;return i.currentType=p.void,X(t,32)|v(t)|K(t,0)?e.unreachable():e.atomic_fence()}g.set(d.atomic_fence,k1);function w1(t){let i=t.compiler,e=i.module;if(ae(t,!0)|K(t,3))return e.unreachable();let r=t.operands,n=t.typeArguments,s=n?i.compileExpression(r[0],n[0],1):i.compileExpression(r[0],p.auto),a=i.currentType;if(!a.isAny(384))return i.error(203,t.reportNode.typeArgumentsRange,"select",a.toString()),e.unreachable();let l=i.compileExpression(r[1],a,1),o=i.makeIsTrueish(i.compileExpression(r[2],p.bool),i.currentType,r[2]);return i.currentType=a,e.select(s,l,o)}g.set(d.select,w1);function C1(t){return v(t),K(t,0),t.compiler.module.unreachable()}g.set(d.unreachable,C1);function P1(t){let i=t.compiler,e=i.module;return i.currentType=p.i32,v(t)|K(t,0)?e.unreachable():e.memory_size()}g.set(d.memory_size,P1);function B1(t){let i=t.compiler,e=i.module;return i.currentType=p.i32,v(t)|K(t,1)?e.unreachable():e.memory_grow(i.compileExpression(t.operands[0],p.i32,1))}g.set(d.memory_grow,B1);function L1(t){let i=t.compiler,e=i.module;if(i.currentType=p.void,v(t)|K(t,3))return e.unreachable();let r=t.operands;if(!i.options.hasFeature(8)){let o=i.resolver.resolveFunction(t.prototype,null);return i.currentType=p.void,!o||!i.compileFunction(o,!0)?e.unreachable():i.compileCallDirect(o,r,t.reportNode)}let n=i.options.usizeType,s=i.compileExpression(r[0],n,1),a=i.compileExpression(r[1],n,1),l=i.compileExpression(r[2],n,1);return i.currentType=p.void,e.memory_copy(s,a,l)}g.set(d.memory_copy,L1);function N1(t){let i=t.compiler,e=i.module;if(i.currentType=p.void,v(t)|K(t,3))return e.unreachable();let r=t.operands;if(!i.options.hasFeature(8)){let o=i.resolver.resolveFunction(t.prototype,null);return i.currentType=p.void,!o||!i.compileFunction(o,!0)?e.unreachable():i.compileCallDirect(o,r,t.reportNode)}let n=i.options.usizeType,s=i.compileExpression(r[0],n,1),a=i.compileExpression(r[1],p.u8,1),l=i.compileExpression(r[2],n,1);return i.currentType=p.void,e.memory_fill(s,a,l)}g.set(d.memory_fill,N1);function M1(t){let i=t.compiler,e=i.module;if(i.currentType=p.i32,ae(t)|Se(t,1,2))return e.unreachable();let r=t.typeArguments,n=t.operands,s=n.length,a=i.options.usizeType,l;if(r&&r.length>0){let o=r[0];if(!o.isValue)return i.error(203,t.reportNode.typeArgumentsRange,"memory.data",o.toString()),i.currentType=a,e.unreachable();let u=n[0];if(u.kind!=17||u.literalKind!=5)return i.error(227,n[0].range),i.currentType=a,e.unreachable();let c=u.elementExpressions,_=c.length,f=new Array(_),h=!0;for(let b=0;b<_;++b){let A=c[b];if(A.kind!=20){let I=i.compileExpression(A,o,1),E=e.runExpression(I,1);E?I=E:h=!1,f[b]=I}else f[b]=i.makeZero(o)}if(!h)return i.error(220,u.range),i.currentType=a,e.unreachable();let y=o.byteSize;if(s==2&&(y=Ot(n[1],y,i),y<0))return i.currentType=a,e.unreachable();let x=new Uint8Array(_*o.byteSize);assert(i.writeStaticBuffer(x,0,o,f)==x.byteLength),l=i.addAlignedMemorySegment(x,y).offset}else{let o=i.compileExpression(n[0],p.i32,1),u=e.runExpression(o,1);if(!u)return i.error(220,n[0].range),i.currentType=a,e.unreachable();let c=ne(u);if(c<1)return i.error(222,n[0].range,"1",i32.MAX_VALUE.toString()),i.currentType=a,e.unreachable();let _=16;if(s==2&&(_=Ot(n[1],_,i),_<0))return i.currentType=a,e.unreachable();l=i.addAlignedMemorySegment(new Uint8Array(c),_).offset}return i.currentType=a,a==p.usize32?(assert(!i64_high(l)),e.i32(i64_low(l))):e.i64(i64_low(l),i64_high(l))}g.set(d.memory_data,M1);function G1(t){let i=t.compiler,e=i.module;if(v(t)|K(t,1))return e.unreachable();let r=t.operands,n=i.compileExpression(r[0],p.i32,1);return i.currentType=p.i31,e.i31_new(n)}g.set(d.i31_new,G1);function z1(t){let i=t.compiler,e=i.module;if(v(t)|K(t,1))return e.unreachable();let r=t.operands,n=i.compileExpression(r[0],p.i31.asNullable(),1);return t.contextualType.is(2)?(i.currentType=p.u32,e.i31_get(n,!1)):(i.currentType=p.i32,e.i31_get(n,!0))}g.set(d.i31_get,z1);function D1(t){let i=t.compiler,e=i.module;if(J(t,!0)|K(t,1))return e.unreachable();let r=t.operands,s=t.typeArguments[0],a=i.compileExpression(r[0],p.auto),l=i.currentType;return i.currentType=s,l.isChangeableTo(s)?a:(i.error(202,t.reportNode.range,l.toString(),s.toString()),e.unreachable())}g.set(d.changetype,D1);function U1(t){let i=t.compiler,e=i.module,r=t.typeArguments;if(ae(t,!0)|Se(t,1,2))return r&&(assert(r.length),i.currentType=r[0].nonNullableType),e.unreachable();let n=t.operands,s=t.contextualType,a=r?i.compileExpression(n[0],r[0],5):i.compileExpression(n[0],p.bool,4),l=i.currentType;if(i.currentType=l.nonNullableType,i.options.noAssert)return a;let o=e.runExpression(a,0);if(o)switch(se(o)){case L.I32:{if(ne(o))return a;break}case L.I64:{if(ve(o)|we(o))return a;break}case L.F32:{if(Ae(o))return a;break}case L.F64:{if(Ee(o))return a;break}}let u=i.makeAbort(n.length==2?n[1]:null,t.reportNode);if(i.currentType=l.nonNullableType,s==p.void)switch(i.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 15:case 14:case 16:case 17:case 18:case 19:case 20:case 21:case 22:case 23:case 24:return e.if(e.ref_is_null(a),u)}else{i.currentType=l.nonNullableType;let c=i.currentFlow;switch(i.currentType.kind){case 0:case 1:case 2:case 3:case 6:case 7:case 8:{let _=c.getTempLocal(l);return c.setLocalFlag(_.index,2),e.if(e.local_tee(_.index,a,!1),e.local_get(_.index,L.I32),u)}case 4:case 9:{let _=c.getTempLocal(p.i64);return e.if(e.unary(21,e.local_tee(_.index,a,!1)),u,e.local_get(_.index,L.I64))}case 5:case 10:{let _=c.getTempLocal(i.options.usizeType);return e.if(e.unary(145,e.local_tee(_.index,a,l.isManaged)),u,e.local_get(_.index,i.options.sizeTypeRef))}case 11:{let _=c.getTempLocal(p.f32);return e.if(e.binary(57,e.local_tee(_.index,a,!1),e.f32(0)),u,e.local_get(_.index,L.F32))}case 12:{let _=c.getTempLocal(p.f64);return e.if(e.binary(70,e.local_tee(_.index,a,!1),e.f64(0)),u,e.local_get(_.index,L.F64))}case 15:case 14:case 16:case 17:case 18:case 19:case 20:case 21:case 22:case 23:case 24:{let _=c.getTempLocal(l);return e.if(e.ref_is_null(e.local_tee(_.index,a,!1)),u,e.local_get(_.index,l.toRef()))}}}return i.error(203,t.reportNode.typeArgumentsRange,"assert",i.currentType.toString()),u}g.set(d.assert,U1);function V1(t){let i=t.compiler,e=i.module;if(v(t)|K(t,1))return e.unreachable();let r=i.currentFlow,n=i.options.uncheckedBehavior===1,s=r.is(32768);n?assert(!s):r.set(32768);let a=i.compileExpression(t.operands[0],t.contextualType);return s||r.unset(32768),a}g.set(d.unchecked,V1);function O1(t){let i=t.compiler,e=i.module;if(v(t)|K(t,1))return e.unreachable();let r=i.currentFlow,n=r.is(131072);n||r.set(131072);let s=i.compileExpression(t.operands[0],t.contextualType);return n||r.unset(131072),s}g.set(d.inline_always,O1);function q1(t){let i=t.compiler,e=i.module;if(ae(t,!0)|Se(t,1,i32.MAX_VALUE))return e.unreachable();let r=t.operands,n=t.typeArguments,s;n?(assert(n.length),s=n[0]):s=t.contextualType;let a=i.compileExpression(r[0],p.u32,1),l=r.length-1,o=new Array(l),u=new Array(l);for(let c=0;c<l;++c)o[c]=i.compileExpression(r[1+c],p.auto),i.currentType.isManaged&&(o[c]=e.tostack(o[c])),u[c]=i.currentType.toRef();return i.currentType=s,e.call_indirect(null,a,o,He(u),s.toRef())}g.set(d.call_indirect,q1);function W1(t){let i=t.compiler,e=i.module;if(J(t,!0))return e.unreachable();let r=t.operands,a=t.typeArguments[0].getClass();if(!a)return i.error(2351,t.reportNode.expression.range),e.unreachable();i.currentType=a.type;let l=i.ensureConstructor(a,t.reportNode);return i.checkFieldInitialization(a,t.reportNode),i.compileInstantiate(l,r,0,t.reportNode)}g.set(d.instantiate,W1);function mc(t,i){let e=t.compiler,r=e.module;v(t);let n=t.operands,s=t.reportNode;return e.emitDiagnostic(102,i,s.range,null,n.length?n[0].range.toString():s.range.toString()),i==3?r.unreachable():r.nop()}function K1(t){return mc(t,3)}g.set(d.ERROR,K1);function j1(t){return mc(t,2)}g.set(d.WARNING,j1);function H1(t){return mc(t,1)}g.set(d.INFO,H1);function Q1(t){let i=t.compiler,e=t.prototype.parent;assert(e.kind==7);let r=e;assert(r.prototype==i.program.functionPrototype);let n=assert(r.typeArguments);assert(n.length==1);let s=n[0],a=assert(s.getSignature()),l=a.returnType;if(v(t)|Se(t,1+a.requiredParameters,1+a.parameterTypes.length))return i.currentType=l,i.module.unreachable();let o=i.compileExpression(assert(t.thisOperand),s,1),u=assert(t.operands.shift()),c=a.thisType,_=0;if(c)_=i.compileExpression(u,c,1);else if(u.kind!=19)return i.error(2332,u.range),i.module.unreachable();return i.compileCallIndirect(a,o,t.operands,t.reportNode,_,t.contextualType==p.void)}g.set(d.Function_call,Q1);function X1(t){let i=t.compiler,e=i.module;return i.currentType=t.compiler.program.stringInstance.type,i.error(100,t.reportNode.range,"String.raw"),e.unreachable()}g.set(d.String_raw,X1);function Ze(t,i){let e=t.compiler;return v(t)|K(t,1)?(e.currentType=i,e.module.unreachable()):e.compileExpression(t.operands[0],i,2)}function J1(t){return Ze(t,p.i8)}g.set(d.i8,J1);function Z1(t){return Ze(t,p.i16)}g.set(d.i16,Z1);function Y1(t){return Ze(t,p.i32)}g.set(d.i32,Y1);function $1(t){return Ze(t,p.i64)}g.set(d.i64,$1);function e6(t){return Ze(t,t.compiler.options.isizeType)}g.set(d.isize,e6);function t6(t){return Ze(t,p.u8)}g.set(d.u8,t6);function r6(t){return Ze(t,p.u16)}g.set(d.u16,r6);function i6(t){return Ze(t,p.u32)}g.set(d.u32,i6);function n6(t){return Ze(t,p.u64)}g.set(d.u64,n6);function s6(t){return Ze(t,t.compiler.options.usizeType)}g.set(d.usize,s6);function a6(t){return Ze(t,p.bool)}g.set(d.bool,a6);function l6(t){return Ze(t,p.f32)}g.set(d.f32,l6);function o6(t){return Ze(t,p.f64)}g.set(d.f64,o6);function u6(t){return ag(t)}g.set(d.v128,u6);function ag(t){let i=t.compiler,e=i.module;if(X(t,16)|v(t)|K(t,16))return i.currentType=p.v128,e.unreachable();let r=t.operands,n=new Uint8Array(16),s=new Array(16),a=0;for(let l=0;l<16;++l){let o=i.compileExpression(r[l],p.i8,1),u=e.runExpression(o,1);u?_e(ne(u),n,l):(s[l]=o,a++)}if(i.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}}g.set(d.i8x16,ag);function p6(t){let i=t.compiler,e=i.module;if(X(t,16)|v(t)|K(t,8))return i.currentType=p.v128,e.unreachable();let r=t.operands,n=new Uint8Array(16),s=new Array(8),a=0;for(let l=0;l<8;++l){let o=i.compileExpression(r[l],p.i16,1),u=e.runExpression(o,1);u?Yt(ne(u),n,l<<1):(s[l]=o,a++)}if(i.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}}g.set(d.i16x8,p6);function c6(t){let i=t.compiler,e=i.module;if(X(t,16)|v(t)|K(t,4))return i.currentType=p.v128,e.unreachable();let r=t.operands,n=new Uint8Array(16),s=new Array(4),a=0;for(let l=0;l<4;++l){let o=i.compileExpression(r[l],p.i32,1),u=e.runExpression(o,1);u?me(ne(u),n,l<<2):(s[l]=o,a++)}if(i.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}}g.set(d.i32x4,c6);function _6(t){let i=t.compiler,e=i.module;if(X(t,16)|v(t)|K(t,2))return i.currentType=p.v128,e.unreachable();let r=t.operands,n=new Uint8Array(16),s=new Array(2),a=0;for(let l=0;l<2;++l){let o=i.compileExpression(r[l],p.i64,1),u=e.runExpression(o,1);if(u){let c=l<<3;me(ve(u),n,c+0),me(we(u),n,c+4)}else s[l]=o,a++}if(i.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}}g.set(d.i64x2,_6);function f6(t){let i=t.compiler,e=i.module;if(X(t,16)|v(t)|K(t,4))return i.currentType=p.v128,e.unreachable();let r=t.operands,n=new Uint8Array(16),s=new Array(4),a=0;for(let l=0;l<4;++l){let o=i.compileExpression(r[l],p.f32,1),u=e.runExpression(o,1);u?Tr(Ae(u),n,l<<2):(s[l]=o,a++)}if(i.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}}g.set(d.f32x4,f6);function h6(t){let i=t.compiler,e=i.module;if(X(t,16)|v(t)|K(t,2))return i.currentType=p.v128,e.unreachable();let r=t.operands,n=new Uint8Array(16),s=new Array(2),a=0;for(let l=0;l<2;++l){let o=i.compileExpression(r[l],p.f64,1),u=e.runExpression(o,1);u?Ar(Ee(u),n,l<<3):(s[l]=o,a++)}if(i.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}}g.set(d.f64x2,h6);function Mr(t){let i=t.compiler,e=i.module;if(X(t,16)|J(t)|K(t,1))return i.currentType=p.v128,e.unreachable();let r=t.operands,s=t.typeArguments[0],a=i.compileExpression(r[0],s,1);if(i.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(i.options.isWasm64?63:62,a);case 11:return e.unary(64,a);case 12:return e.unary(65,a)}return i.error(203,t.reportNode.typeArgumentsRange,"v128.splat",s.toString()),e.unreachable()}g.set(d.v128_splat,Mr);function Wt(t){let i=t.compiler,e=i.module;if(X(t,16)|J(t,!0)|K(t,2))return e.unreachable();let r=t.operands,s=t.typeArguments[0],a=i.compileExpression(r[0],p.v128,1),l=i.compileExpression(r[1],p.u8,1);i.currentType=s;let o=0,u=e.runExpression(l,1);if(u?o=ne(u):i.error(220,r[1].range),s.isValue){let c=16/assert(s.byteSize)-1;switch((o<0||o>c)&&(i.error(222,r[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(i.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 i.error(203,t.reportNode.typeArgumentsRange,"v128.extract_lane",s.toString()),e.unreachable()}g.set(d.v128_extract_lane,Wt);function Gr(t){let i=t.compiler,e=i.module;if(X(t,16)|J(t)|K(t,3))return i.currentType=p.v128,e.unreachable();let r=t.operands,s=t.typeArguments[0],a=i.compileExpression(r[0],p.v128,1),l=i.compileExpression(r[1],p.u8,1),o=i.compileExpression(r[2],s,1);i.currentType=p.v128;let u=0,c=e.runExpression(l,1);if(c?u=ne(c):i.error(220,r[1].range),s.isValue){let _=16/assert(s.byteSize)-1;switch((u<0||u>_)&&(i.error(222,r[1].range,"Lane index","0",_.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(i.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 i.error(203,t.reportNode.typeArgumentsRange,"v128.replace_lane",s.toString()),e.unreachable()}g.set(d.v128_replace_lane,Gr);function zr(t){let i=t.compiler,e=i.module;if(X(t,16)|J(t))return i.currentType=p.v128,e.unreachable();let r=t.operands,s=t.typeArguments[0];if(s.isValue){let a=s.byteSize,l=16/a;if(assert(Number.isInteger(l)&&Pt(l)),K(t,2+l))return i.currentType=p.v128,e.unreachable();let o=i.compileExpression(r[0],p.v128,1),u=i.compileExpression(r[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),_=(l<<1)-1;for(let f=0;f<l;++f){let h=r[2+f],y=i.compileExpression(h,p.u8,1),x=e.runExpression(y,1),b=0;switch(x?(b=ne(x),(b<0||b>_)&&(i.error(222,h.range,"Lane index","0",_.toString()),b=0)):i.error(220,h.range),a){case 1:{_e(b,c,f);break}case 2:{let A=f<<1,I=b<<1;_e(I,c,A),_e(I+1,c,A+1);break}case 4:{let A=f<<2,I=b<<2;_e(I,c,A),_e(I+1,c,A+1),_e(I+2,c,A+2),_e(I+3,c,A+3);break}case 8:{let A=f<<3,I=b<<3;_e(I,c,A),_e(I+1,c,A+1),_e(I+2,c,A+2),_e(I+3,c,A+3),_e(I+4,c,A+4),_e(I+5,c,A+5),_e(I+6,c,A+6),_e(I+7,c,A+7);break}default:assert(!1)}}return i.currentType=p.v128,e.simd_shuffle(o,u,c)}}}return i.error(203,t.reportNode.typeArgumentsRange,"v128.shuffle",s.toString()),i.currentType=p.v128,e.unreachable()}g.set(d.v128_shuffle,zr);function lg(t){let i=t.compiler,e=i.module;if(X(t,16)|v(t)|K(t,2))return i.currentType=p.v128,e.unreachable();let r=t.operands,n=i.compileExpression(r[0],p.v128,1),s=i.compileExpression(r[1],p.v128,1);return e.binary(209,n,s)}g.set(d.v128_swizzle,lg);function ms(t){let i=t.compiler,e=i.module;if(X(t,16)|J(t,!0)|Se(t,1,3))return e.unreachable();let r=t.operands,s=t.typeArguments[0],a=i.compileExpression(r[0],i.options.usizeType,1),l=r.length,o=0,u=s.byteSize;if(l>=2){if(o=tt(r[1],i),o<0)return i.currentType=p.v128,e.unreachable();if(l==3&&(u=Ot(r[2],u,i),u<0))return i.currentType=p.v128,e.unreachable()}if(i.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(!i.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 i.error(203,t.reportNode.typeArgumentsRange,"v128.load_splat",s.toString()),e.unreachable()}g.set(d.v128_load_splat,ms);function Dr(t){let i=t.compiler,e=i.module;if(X(t,16)|J(t,!0)|Se(t,1,3))return e.unreachable();let r=t.operands,s=t.typeArguments[0],a=i.compileExpression(r[0],i.options.usizeType,1),l=r.length,o=0,u=s.byteSize;if(l>=2){if(o=tt(r[1],i),o<0)return i.currentType=p.v128,e.unreachable();if(l==3&&(u=Ot(r[2],u,i),u<0))return i.currentType=p.v128,e.unreachable()}if(i.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(i.options.isWasm64)break;case 3:return e.simd_load(8,a,o,u);case 10:if(i.options.isWasm64)break;case 8:return e.simd_load(9,a,o,u)}return i.error(203,t.reportNode.typeArgumentsRange,"v128.load_ext",s.toString()),e.unreachable()}g.set(d.v128_load_ext,Dr);function yc(t){let i=t.compiler,e=i.module;if(X(t,16)|J(t,!0)|Se(t,1,3))return e.unreachable();let r=t.operands,s=t.typeArguments[0],a=i.compileExpression(r[0],i.options.usizeType,1),l=r.length,o=0,u=s.byteSize;if(l>=2){if(o=tt(r[1],i),o<0)return i.currentType=p.v128,e.unreachable();if(l==3&&(u=Ot(r[2],u,i),u<0))return i.currentType=p.v128,e.unreachable()}if(i.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(i.options.isWasm64?11:10,a,o,u)}return i.error(203,t.reportNode.typeArgumentsRange,"v128.load_zero",s.toString()),e.unreachable()}g.set(d.v128_load_zero,yc);function ys(t){let i=t.compiler,e=i.module;if(X(t,16)|J(t,!0)|Se(t,3,5))return e.unreachable();let r=t.operands,s=t.typeArguments[0],a=i.compileExpression(r[0],i.options.usizeType,1),l=i.compileExpression(r[1],p.v128,1),o=i.compileExpression(r[2],p.u8,1),u=0,c=e.runExpression(o,1);c?u=ne(c):i.error(220,r[2].range);let _=r.length,f=0,h=s.byteSize;if(_>=4){if(f=tt(r[3],i),f<0)return i.currentType=p.v128,e.unreachable();if(_==5&&(h=Ot(r[4],h,i),h<0))return i.currentType=p.v128,e.unreachable()}if(i.currentType=p.v128,s.isValue){let y=16/assert(s.byteSize)-1;switch((u<0||u>y)&&(i.error(222,r[1].range,"Lane index","0",y.toString()),u=0),s.kind){case 1:case 6:return e.simd_loadstorelane(0,a,f,h,u,l);case 2:case 7:return e.simd_loadstorelane(1,a,f,h,u,l);case 3:case 8:case 11:return e.simd_loadstorelane(2,a,f,h,u,l);case 4:case 9:case 12:return e.simd_loadstorelane(3,a,f,h,u,l);case 5:case 10:return e.simd_loadstorelane(i.options.isWasm64?3:2,a,f,h,u,l)}}return i.error(203,t.reportNode.typeArgumentsRange,"v128.load_lane",s.toString()),e.unreachable()}g.set(d.v128_load_lane,ys);function gs(t){let i=t.compiler,e=i.module;if(X(t,16)|J(t,!0)|Se(t,3,5))return e.unreachable();let r=t.operands,s=t.typeArguments[0],a=i.compileExpression(r[0],i.options.usizeType,1),l=i.compileExpression(r[1],p.v128,1),o=i.compileExpression(r[2],p.u8,1),u=0,c=e.runExpression(o,1);c?u=ne(c):i.error(220,r[2].range);let _=r.length,f=0,h=s.byteSize;if(_>=4){if(f=tt(r[3],i),f<0)return i.currentType=p.v128,e.unreachable();if(_==5&&(h=Ot(r[4],h,i),h<0))return i.currentType=p.v128,e.unreachable()}if(i.currentType=p.void,s.isValue){let y=16/assert(s.byteSize)-1;switch((u<0||u>y)&&(i.error(222,r[1].range,"Lane index","0",y.toString()),u=0),s.kind){case 1:case 6:return e.simd_loadstorelane(4,a,f,h,u,l);case 2:case 7:return e.simd_loadstorelane(5,a,f,h,u,l);case 3:case 8:case 11:return e.simd_loadstorelane(6,a,f,h,u,l);case 4:case 9:case 12:return e.simd_loadstorelane(7,a,f,h,u,l);case 5:case 10:return e.simd_loadstorelane(i.options.isWasm64?7:6,a,f,h,u,l)}}return i.error(203,t.reportNode.typeArgumentsRange,"v128.store_lane",s.toString()),e.unreachable()}g.set(d.v128_store_lane,gs);function Ur(t){let i=t.compiler,e=i.module;if(X(t,16)|J(t)|K(t,2))return i.currentType=p.v128,e.unreachable();let r=t.operands,s=t.typeArguments[0],a=i.compileExpression(r[0],p.v128,1),l=i.compileExpression(r[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(i.options.isWasm64?174:162,a,l);case 11:return e.binary(189,a,l);case 12:return e.binary(197,a,l)}return i.error(203,t.reportNode.typeArgumentsRange,"v128.add",s.toString()),e.unreachable()}g.set(d.v128_add,Ur);function Vr(t){let i=t.compiler,e=i.module;if(X(t,16)|J(t)|K(t,2))return i.currentType=p.v128,e.unreachable();let r=t.operands,s=t.typeArguments[0],a=i.compileExpression(r[0],p.v128,1),l=i.compileExpression(r[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(i.options.isWasm64?175:163,a,l);case 11:return e.binary(190,a,l);case 12:return e.binary(198,a,l)}return i.error(203,t.reportNode.typeArgumentsRange,"v128.sub",s.toString()),e.unreachable()}g.set(d.v128_sub,Vr);function Mi(t){let i=t.compiler,e=i.module;if(X(t,16)|J(t)|K(t,2))return i.currentType=p.v128,e.unreachable();let r=t.operands,s=t.typeArguments[0],a=i.compileExpression(r[0],p.v128,1),l=i.compileExpression(r[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(i.options.isWasm64?176:164,a,l);case 11:return e.binary(191,a,l);case 12:return e.binary(199,a,l)}return i.error(203,t.reportNode.typeArgumentsRange,"v128.mul",s.toString()),e.unreachable()}g.set(d.v128_mul,Mi);function gc(t){let i=t.compiler,e=i.module;if(X(t,16)|J(t)|K(t,2))return i.currentType=p.v128,e.unreachable();let r=t.operands,s=t.typeArguments[0],a=i.compileExpression(r[0],p.v128,1),l=i.compileExpression(r[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 i.error(203,t.reportNode.typeArgumentsRange,"v128.div",s.toString()),e.unreachable()}g.set(d.v128_div,gc);function bs(t){let i=t.compiler,e=i.module;if(X(t,16)|J(t)|K(t,2))return i.currentType=p.v128,e.unreachable();let r=t.operands,s=t.typeArguments[0],a=i.compileExpression(r[0],p.v128,1),l=i.compileExpression(r[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 i.error(203,t.reportNode.typeArgumentsRange,"v128.add_sat",s.toString()),e.unreachable()}g.set(d.v128_add_sat,bs);function xs(t){let i=t.compiler,e=i.module;if(X(t,16)|J(t)|K(t,2))return i.currentType=p.v128,e.unreachable();let r=t.operands,s=t.typeArguments[0],a=i.compileExpression(r[0],p.v128,1),l=i.compileExpression(r[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 i.error(203,t.reportNode.typeArgumentsRange,"v128.sub_sat",s.toString()),e.unreachable()}g.set(d.v128_sub_sat,xs);function Kt(t){let i=t.compiler,e=i.module;if(X(t,16)|J(t)|K(t,2))return i.currentType=p.v128,e.unreachable();let r=t.operands,s=t.typeArguments[0],a=i.compileExpression(r[0],p.v128,1),l=i.compileExpression(r[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(i.options.isWasm64)break;case 3:return e.binary(165,a,l);case 10:if(i.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 i.error(203,t.reportNode.typeArgumentsRange,"v128.min",s.toString()),e.unreachable()}g.set(d.v128_min,Kt);function jt(t){let i=t.compiler,e=i.module;if(X(t,16)|J(t)|K(t,2))return i.currentType=p.v128,e.unreachable();let r=t.operands,s=t.typeArguments[0],a=i.compileExpression(r[0],p.v128,1),l=i.compileExpression(r[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(i.options.isWasm64)break;case 3:return e.binary(167,a,l);case 10:if(i.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 i.error(203,t.reportNode.typeArgumentsRange,"v128.max",s.toString()),e.unreachable()}g.set(d.v128_max,jt);function bc(t){let i=t.compiler,e=i.module;if(X(t,16)|J(t)|K(t,2))return i.currentType=p.v128,e.unreachable();let r=t.operands,s=t.typeArguments[0],a=i.compileExpression(r[0],p.v128,1),l=i.compileExpression(r[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 i.error(203,t.reportNode.typeArgumentsRange,"v128.pmin",s.toString()),e.unreachable()}g.set(d.v128_pmin,bc);function xc(t){let i=t.compiler,e=i.module;if(X(t,16)|J(t)|K(t,2))return i.currentType=p.v128,e.unreachable();let r=t.operands,s=t.typeArguments[0],a=i.compileExpression(r[0],p.v128,1),l=i.compileExpression(r[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 i.error(203,t.reportNode.typeArgumentsRange,"v128.pmax",s.toString()),e.unreachable()}g.set(d.v128_pmax,xc);function og(t){let i=t.compiler,e=i.module;if(X(t,16)|J(t)|K(t,2))return i.currentType=p.v128,e.unreachable();let r=t.operands,s=t.typeArguments[0],a=i.compileExpression(r[0],p.v128,1),l=i.compileExpression(r[1],p.v128,1);return s.isValue&&s.kind===2?e.binary(169,a,l):(i.error(203,t.reportNode.typeArgumentsRange,"v128.dot",s.toString()),e.unreachable())}g.set(d.v128_dot,og);function Tc(t){let i=t.compiler,e=i.module;if(X(t,16)|J(t)|K(t,2))return i.currentType=p.v128,e.unreachable();let r=t.operands,s=t.typeArguments[0],a=i.compileExpression(r[0],p.v128,1),l=i.compileExpression(r[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 i.error(203,t.reportNode.typeArgumentsRange,"v128.avgr",s.toString()),e.unreachable()}g.set(d.v128_avgr,Tc);function Or(t){let i=t.compiler,e=i.module;if(X(t,16)|J(t)|K(t,2))return i.currentType=p.v128,e.unreachable();let r=t.operands,s=t.typeArguments[0],a=i.compileExpression(r[0],p.v128,1),l=i.compileExpression(r[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(i.options.isWasm64?106:96,a,l);case 11:return e.binary(118,a,l);case 12:return e.binary(124,a,l)}return i.error(203,t.reportNode.typeArgumentsRange,"v128.eq",s.toString()),e.unreachable()}g.set(d.v128_eq,Or);function qr(t){let i=t.compiler,e=i.module;if(X(t,16)|J(t)|K(t,2))return i.currentType=p.v128,e.unreachable();let r=t.operands,s=t.typeArguments[0],a=i.compileExpression(r[0],p.v128,1),l=i.compileExpression(r[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(i.options.isWasm64?107:97,a,l);case 11:return e.binary(119,a,l);case 12:return e.binary(125,a,l)}return i.error(203,t.reportNode.typeArgumentsRange,"v128.ne",s.toString()),e.unreachable()}g.set(d.v128_ne,qr);function xt(t){let i=t.compiler,e=i.module;if(X(t,16)|J(t)|K(t,2))return i.currentType=p.v128,e.unreachable();let r=t.operands,s=t.typeArguments[0],a=i.compileExpression(r[0],p.v128,1),l=i.compileExpression(r[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(i.options.isWasm64?108:98,a,l);case 10:{if(i.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 i.error(203,t.reportNode.typeArgumentsRange,"v128.lt",s.toString()),e.unreachable()}g.set(d.v128_lt,xt);function Tt(t){let i=t.compiler,e=i.module;if(X(t,16)|J(t)|K(t,2))return i.currentType=p.v128,e.unreachable();let r=t.operands,s=t.typeArguments[0],a=i.compileExpression(r[0],p.v128,1),l=i.compileExpression(r[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(i.options.isWasm64?110:102,a,l);case 10:{if(i.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 i.error(203,t.reportNode.typeArgumentsRange,"v128.le",s.toString()),e.unreachable()}g.set(d.v128_le,Tt);function At(t){let i=t.compiler,e=i.module;if(X(t,16)|J(t)|K(t,2))return i.currentType=p.v128,e.unreachable();let r=t.operands,s=t.typeArguments[0],a=i.compileExpression(r[0],p.v128,1),l=i.compileExpression(r[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(i.options.isWasm64?109:100,a,l);case 10:{if(i.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 i.error(203,t.reportNode.typeArgumentsRange,"v128.gt",s.toString()),e.unreachable()}g.set(d.v128_gt,At);function Et(t){let i=t.compiler,e=i.module;if(X(t,16)|J(t)|K(t,2))return i.currentType=p.v128,e.unreachable();let r=t.operands,s=t.typeArguments[0],a=i.compileExpression(r[0],p.v128,1),l=i.compileExpression(r[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(i.options.isWasm64?111:104,a,l);case 10:{if(i.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 i.error(203,t.reportNode.typeArgumentsRange,"v128.ge",s.toString()),e.unreachable()}g.set(d.v128_ge,Et);function Ts(t){let i=t.compiler,e=i.module;if(X(t,16)|J(t)|K(t,2))return i.currentType=p.v128,e.unreachable();let r=t.operands,s=t.typeArguments[0],a=i.compileExpression(r[0],p.v128,1),l=i.compileExpression(r[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 i.error(203,t.reportNode.typeArgumentsRange,"v128.narrow",s.toString()),e.unreachable()}g.set(d.v128_narrow,Ts);function Wr(t){let i=t.compiler,e=i.module;if(X(t,16)|J(t)|K(t,1))return i.currentType=p.v128,e.unreachable();let r=t.operands,s=t.typeArguments[0],a=i.compileExpression(r[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(i.options.isWasm64?82:78,a);case 11:return e.unary(93,a);case 12:return e.unary(100,a)}return i.error(203,t.reportNode.typeArgumentsRange,"v128.neg",s.toString()),e.unreachable()}g.set(d.v128_neg,Wr);function Kr(t){let i=t.compiler,e=i.module;if(X(t,16)|J(t)|K(t,1))return i.currentType=p.v128,e.unreachable();let r=t.operands,s=t.typeArguments[0],a=i.compileExpression(r[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(i.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 i.error(203,t.reportNode.typeArgumentsRange,"v128.abs",s.toString()),e.unreachable()}g.set(d.v128_abs,Kr);function Ac(t){let i=t.compiler,e=i.module;if(X(t,16)|J(t)|K(t,1))return i.currentType=p.v128,e.unreachable();let r=t.operands,s=t.typeArguments[0],a=i.compileExpression(r[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 i.error(203,t.reportNode.typeArgumentsRange,"v128.sqrt",s.toString()),e.unreachable()}g.set(d.v128_sqrt,Ac);function Ec(t){let i=t.compiler,e=i.module;if(X(t,16)|J(t)|K(t,1))return i.currentType=p.v128,e.unreachable();let r=t.operands,s=t.typeArguments[0],a=i.compileExpression(r[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 i.error(203,t.reportNode.typeArgumentsRange,"v128.ceil",s.toString()),e.unreachable()}g.set(d.v128_ceil,Ec);function vc(t){let i=t.compiler,e=i.module;if(X(t,16)|J(t)|K(t,1))return i.currentType=p.v128,e.unreachable();let r=t.operands,s=t.typeArguments[0],a=i.compileExpression(r[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 i.error(203,t.reportNode.typeArgumentsRange,"v128.floor",s.toString()),e.unreachable()}g.set(d.v128_floor,vc);function Sc(t){let i=t.compiler,e=i.module;if(X(t,16)|J(t)|K(t,1))return i.currentType=p.v128,e.unreachable();let r=t.operands,s=t.typeArguments[0],a=i.compileExpression(r[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 i.error(203,t.reportNode.typeArgumentsRange,"v128.trunc",s.toString()),e.unreachable()}g.set(d.v128_trunc,Sc);function Ic(t){let i=t.compiler,e=i.module;if(X(t,16)|J(t)|K(t,1))return i.currentType=p.v128,e.unreachable();let r=t.operands,s=t.typeArguments[0],a=i.compileExpression(r[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 i.error(203,t.reportNode.typeArgumentsRange,"v128.nearest",s.toString()),e.unreachable()}g.set(d.v128_nearest,Ic);function Rc(t){let i=t.compiler,e=i.module;if(X(t,16)|J(t)|K(t,1))return i.currentType=p.v128,e.unreachable();let r=t.operands,s=t.typeArguments[0],a=i.compileExpression(r[0],p.v128,1);if(s.isValue)switch(s.kind){case 5:if(i.options.isWasm64)break;case 3:return e.unary(112,a);case 10:if(i.options.isWasm64)break;case 8:return e.unary(113,a)}return i.error(203,t.reportNode.typeArgumentsRange,"v128.convert",s.toString()),e.unreachable()}g.set(d.v128_convert,Rc);function Fc(t){let i=t.compiler,e=i.module;if(X(t,16)|J(t)|K(t,1))return i.currentType=p.v128,e.unreachable();let r=t.operands,s=t.typeArguments[0],a=i.compileExpression(r[0],p.v128,1);if(s.isValue)switch(s.kind){case 5:if(i.options.isWasm64)break;case 3:return e.unary(126,a);case 10:if(i.options.isWasm64)break;case 8:return e.unary(127,a)}return i.error(203,t.reportNode.typeArgumentsRange,"v128.convert_low",s.toString()),e.unreachable()}g.set(d.v128_convert_low,Fc);function kc(t){let i=t.compiler,e=i.module;if(X(t,16)|J(t)|K(t,1))return i.currentType=p.v128,e.unreachable();let r=t.operands,s=t.typeArguments[0],a=i.compileExpression(r[0],p.v128,1);if(s.isValue)switch(s.kind){case 5:if(i.options.isWasm64)break;case 3:return e.unary(110,a);case 10:if(i.options.isWasm64)break;case 8:return e.unary(111,a)}return i.error(203,t.reportNode.typeArgumentsRange,"v128.trunc_sat",s.toString()),e.unreachable()}g.set(d.v128_trunc_sat,kc);function wc(t){let i=t.compiler,e=i.module;if(X(t,16)|J(t)|K(t,1))return i.currentType=p.v128,e.unreachable();let r=t.operands,s=t.typeArguments[0],a=i.compileExpression(r[0],p.v128,1);if(s.isValue)switch(s.kind){case 5:if(i.options.isWasm64)break;case 3:return e.unary(128,a);case 10:if(i.options.isWasm64)break;case 8:return e.unary(129,a)}return i.error(203,t.reportNode.typeArgumentsRange,"v128.trunc_sat_zero",s.toString()),e.unreachable()}g.set(d.v128_trunc_sat_zero,wc);function jr(t){let i=t.compiler,e=i.module;if(X(t,16)|J(t)|K(t,1))return i.currentType=p.v128,e.unreachable();let r=t.operands,s=t.typeArguments[0],a=i.compileExpression(r[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(i.options.isWasm64)break;case 3:return e.unary(122,a);case 10:if(i.options.isWasm64)break;case 8:return e.unary(124,a)}return i.error(203,t.reportNode.typeArgumentsRange,"v128.extend_low",s.toString()),e.unreachable()}g.set(d.v128_extend_low,jr);function Hr(t){let i=t.compiler,e=i.module;if(X(t,16)|J(t)|K(t,1))return i.currentType=p.v128,e.unreachable();let r=t.operands,s=t.typeArguments[0],a=i.compileExpression(r[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(i.options.isWasm64)break;case 3:return e.unary(123,a);case 10:if(i.options.isWasm64)break;case 8:return e.unary(125,a)}return i.error(203,t.reportNode.typeArgumentsRange,"v128.extend_high",s.toString()),e.unreachable()}g.set(d.v128_extend_high,Hr);function As(t){let i=t.compiler,e=i.module;if(X(t,16)|J(t)|K(t,2))return i.currentType=p.v128,e.unreachable();let r=t.operands,n=t.typeArguments[0],s=i.compileExpression(r[0],p.v128,1),a=i.compileExpression(r[1],p.i32,1);if(i.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(i.options.isWasm64?9:6,s,a)}return i.error(203,t.reportNode.typeArgumentsRange,"v128.shl",n.toString()),e.unreachable()}g.set(d.v128_shl,As);function Ht(t){let i=t.compiler,e=i.module;if(X(t,16)|J(t)|K(t,2))return i.currentType=p.v128,e.unreachable();let r=t.operands,n=t.typeArguments[0],s=i.compileExpression(r[0],p.v128,1),a=i.compileExpression(r[1],p.i32,1);if(i.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(i.options.isWasm64?10:7,s,a);case 10:return e.simd_shift(i.options.isWasm64?11:8,s,a)}return i.error(203,t.reportNode.typeArgumentsRange,"v128.shr",n.toString()),e.unreachable()}g.set(d.v128_shr,Ht);function Yl(t,i){let e=t.compiler,r=e.module;if(X(t,16)|v(t)|K(t,2))return e.currentType=p.v128,r.unreachable();let n=t.operands,s=e.compileExpression(n[0],p.v128,1),a=e.compileExpression(n[1],p.v128,1);return r.binary(i,s,a)}function d6(t){return Yl(t,130)}g.set(d.v128_and,d6);function m6(t){return Yl(t,131)}g.set(d.v128_or,m6);function y6(t){return Yl(t,132)}g.set(d.v128_xor,y6);function g6(t){return Yl(t,133)}g.set(d.v128_andnot,g6);function b6(t,i){let e=t.compiler,r=e.module;if(X(t,16)|v(t)|K(t,1))return e.currentType=p.v128,r.unreachable();let n=t.operands,s=e.compileExpression(n[0],p.v128,1);return r.unary(i,s)}function x6(t){return b6(t,66)}g.set(d.v128_not,x6);function T6(t){let i=t.compiler,e=i.module;if(X(t,16)|v(t)|K(t,3))return i.currentType=p.v128,e.unreachable();let r=t.operands,n=i.compileExpression(r[0],p.v128,1),s=i.compileExpression(r[1],p.v128,1),a=i.compileExpression(r[2],p.v128,1);return e.simd_ternary(0,n,s,a)}g.set(d.v128_bitselect,T6);function A6(t){let i=t.compiler,e=i.module;if(X(t,16)|v(t)|K(t,1))return i.currentType=p.bool,e.unreachable();let r=t.operands,n=i.compileExpression(r[0],p.v128,1);return i.currentType=p.bool,e.unary(67,n)}g.set(d.v128_any_true,A6);function Es(t){let i=t.compiler,e=i.module;if(X(t,16)|J(t)|K(t,1))return i.currentType=p.bool,e.unreachable();let r=t.operands,n=t.typeArguments[0],s=i.compileExpression(r[0],p.v128,1);if(i.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(i.options.isWasm64?83:79,s)}return i.error(203,t.reportNode.typeArgumentsRange,"v128.all_true",n.toString()),e.unreachable()}g.set(d.v128_all_true,Es);function vs(t){let i=t.compiler,e=i.module;if(X(t,16)|J(t)|K(t,1))return i.currentType=p.i32,e.unreachable();let r=t.operands,n=t.typeArguments[0],s=i.compileExpression(r[0],p.v128,1);if(i.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(i.options.isWasm64?84:80,s)}return i.error(203,t.reportNode.typeArgumentsRange,"v128.bitmask",n.toString()),e.unreachable()}g.set(d.v128_bitmask,vs);function ug(t){let i=t.compiler,e=i.module;if(X(t,16)|J(t)|K(t,1))return i.currentType=p.v128,e.unreachable();let r=t.operands,n=t.typeArguments[0],s=i.compileExpression(r[0],p.v128,1);if(i.currentType=p.v128,n.isValue)switch(n.kind){case 1:case 6:return e.unary(72,s)}return i.error(203,t.reportNode.typeArgumentsRange,"v128.popcnt",n.toString()),e.unreachable()}g.set(d.v128_popcnt,ug);function Ss(t){let i=t.compiler,e=i.module;if(X(t,16)|J(t)|K(t,1))return i.currentType=p.v128,e.unreachable();let r=t.operands,n=t.typeArguments[0],s=i.compileExpression(r[0],p.v128,1);if(i.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 i.error(203,t.reportNode.typeArgumentsRange,"v128.extadd_pairwise",n.toString()),e.unreachable()}g.set(d.v128_extadd_pairwise,Ss);function pg(t){let i=t.compiler,e=i.module;if(X(t,16)|ae(t)|K(t,1))return i.currentType=p.v128,e.unreachable();let r=t.operands,n=t.typeArguments,s=n?n[0]:p.f64,a=i.compileExpression(r[0],p.v128,1);return i.currentType=p.v128,s.isValue&&s.kind===12?e.unary(130,a):(i.error(203,t.reportNode.typeArgumentsRange,"v128.demote_zero",s.toString()),e.unreachable())}g.set(d.v128_demote_zero,pg);function cg(t){let i=t.compiler,e=i.module;if(X(t,16)|ae(t)|K(t,1))return i.currentType=p.v128,e.unreachable();let r=t.operands,n=t.typeArguments,s=n?n[0]:p.f32,a=i.compileExpression(r[0],p.v128,1);return i.currentType=p.v128,s.isValue&&s.kind===11?e.unary(131,a):(i.error(203,t.reportNode.typeArgumentsRange,"v128.promote_low",s.toString()),e.unreachable())}g.set(d.v128_promote_low,cg);function _g(t){let i=t.compiler,e=i.module;if(X(t,16)|J(t)|K(t,2))return i.currentType=p.v128,e.unreachable();let r=t.operands,s=t.typeArguments[0],a=i.compileExpression(r[0],p.v128,1),l=i.compileExpression(r[1],p.v128,1);return s.isValue&&s.kind===2?e.binary(157,a,l):(i.error(203,t.reportNode.typeArgumentsRange,"v128.q15mulr_sat",s.toString()),e.unreachable())}g.set(d.v128_q15mulr_sat,_g);function Qr(t){let i=t.compiler,e=i.module;if(X(t,16)|J(t)|K(t,2))return i.currentType=p.v128,e.unreachable();let r=t.operands,s=t.typeArguments[0],a=i.compileExpression(r[0],p.v128,1),l=i.compileExpression(r[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 i.error(203,t.reportNode.typeArgumentsRange,"v128.extmul_low",s.toString()),e.unreachable()}g.set(d.v128_extmul_low,Qr);function Xr(t){let i=t.compiler,e=i.module;if(X(t,16)|J(t)|K(t,2))return i.currentType=p.v128,e.unreachable();let r=t.operands,s=t.typeArguments[0],a=i.compileExpression(r[0],p.v128,1),l=i.compileExpression(r[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 i.error(203,t.reportNode.typeArgumentsRange,"v128.extmul_high",s.toString()),e.unreachable()}g.set(d.v128_extmul_high,Xr);function fg(t){let i=t.compiler,e=i.module;if(X(t,4096)|v(t)|K(t,2))return i.currentType=p.v128,e.unreachable();let r=t.operands,n=i.compileExpression(r[0],p.v128,1),s=i.compileExpression(r[1],p.v128,1);return e.binary(210,n,s)}g.set(d.v128_relaxed_swizzle,fg);function Cc(t){let i=t.compiler,e=i.module;if(X(t,4096)|J(t)|K(t,1))return i.currentType=p.v128,e.unreachable();let r=t.operands,s=t.typeArguments[0],a=i.compileExpression(r[0],p.v128,1);if(s.isValue)switch(s.kind){case 5:if(i.options.isWasm64)break;case 3:return e.unary(132,a);case 10:if(i.options.isWasm64)break;case 8:return e.unary(133,a)}return i.error(203,t.reportNode.typeArgumentsRange,"v128.relaxed_trunc",s.toString()),e.unreachable()}g.set(d.v128_relaxed_trunc,Cc);function Pc(t){let i=t.compiler,e=i.module;if(X(t,4096)|J(t)|K(t,1))return i.currentType=p.v128,e.unreachable();let r=t.operands,s=t.typeArguments[0],a=i.compileExpression(r[0],p.v128,1);if(s.isValue)switch(s.kind){case 5:if(i.options.isWasm64)break;case 3:return e.unary(134,a);case 10:if(i.options.isWasm64)break;case 8:return e.unary(135,a)}return i.error(203,t.reportNode.typeArgumentsRange,"v128.relaxed_trunc_zero",s.toString()),e.unreachable()}g.set(d.v128_relaxed_trunc_zero,Pc);function Bc(t){let i=t.compiler,e=i.module;if(X(t,4096)|J(t)|K(t,3))return i.currentType=p.v128,e.unreachable();let r=t.operands,s=t.typeArguments[0],a=i.compileExpression(r[0],p.v128,1),l=i.compileExpression(r[1],p.v128,1),o=i.compileExpression(r[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 i.error(203,t.reportNode.typeArgumentsRange,"v128.relaxed_madd",s.toString()),e.unreachable()}g.set(d.v128_relaxed_madd,Bc);function Lc(t){let i=t.compiler,e=i.module;if(X(t,4096)|J(t)|K(t,3))return i.currentType=p.v128,e.unreachable();let r=t.operands,s=t.typeArguments[0],a=i.compileExpression(r[0],p.v128,1),l=i.compileExpression(r[1],p.v128,1),o=i.compileExpression(r[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 i.error(203,t.reportNode.typeArgumentsRange,"v128.relaxed_nmadd",s.toString()),e.unreachable()}g.set(d.v128_relaxed_nmadd,Lc);function Is(t){let i=t.compiler,e=i.module;if(X(t,4096)|J(t)|K(t,3))return i.currentType=p.v128,e.unreachable();let r=t.operands,s=t.typeArguments[0],a=i.compileExpression(r[0],p.v128,1),l=i.compileExpression(r[1],p.v128,1),o=i.compileExpression(r[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(i.options.isWasm64?8:7,a,l,o)}return i.error(203,t.reportNode.typeArgumentsRange,"v128.relaxed_laneselect",s.toString()),e.unreachable()}g.set(d.v128_relaxed_laneselect,Is);function Nc(t){let i=t.compiler,e=i.module;if(X(t,4096)|J(t)|K(t,2))return i.currentType=p.v128,e.unreachable();let r=t.operands,s=t.typeArguments[0],a=i.compileExpression(r[0],p.v128,1),l=i.compileExpression(r[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 i.error(203,t.reportNode.typeArgumentsRange,"v128.relaxed_min",s.toString()),e.unreachable()}g.set(d.v128_relaxed_min,Nc);function Mc(t){let i=t.compiler,e=i.module;if(X(t,4096)|J(t)|K(t,2))return i.currentType=p.v128,e.unreachable();let r=t.operands,s=t.typeArguments[0],a=i.compileExpression(r[0],p.v128,1),l=i.compileExpression(r[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 i.error(203,t.reportNode.typeArgumentsRange,"v128.relaxed_max",s.toString()),e.unreachable()}g.set(d.v128_relaxed_max,Mc);function hg(t){let i=t.compiler,e=i.module;if(X(t,4096)|J(t)|K(t,2))return i.currentType=p.v128,e.unreachable();let r=t.operands,s=t.typeArguments[0],a=i.compileExpression(r[0],p.v128,1),l=i.compileExpression(r[1],p.v128,1);return s.isValue&&s.kind===2?e.binary(215,a,l):(i.error(203,t.reportNode.typeArgumentsRange,"v128.relaxed_q15mulr",s.toString()),e.unreachable())}g.set(d.v128_relaxed_q15mulr,hg);function dg(t){let i=t.compiler,e=i.module;if(X(t,4096)|K(t,2)|J(t))return i.currentType=p.v128,e.unreachable();let r=t.operands,s=t.typeArguments[0],a=i.compileExpression(r[0],p.v128,1),l=i.compileExpression(r[1],p.v128,1);return s.kind===2?e.binary(216,a,l):(i.error(203,t.reportNode.typeArgumentsRange,"v128.relaxed_dot",s.toString()),e.unreachable())}g.set(d.v128_relaxed_dot,dg);function mg(t){let i=t.compiler,e=i.module;if(X(t,4096)|K(t,3)|J(t))return i.currentType=p.v128,e.unreachable();let r=t.operands,s=t.typeArguments[0],a=i.compileExpression(r[0],p.v128,1),l=i.compileExpression(r[1],p.v128,1),o=i.compileExpression(r[2],p.v128,1);switch(s.kind){case 5:if(i.options.isWasm64)break;case 3:return e.simd_ternary(9,a,l,o)}return i.error(203,t.reportNode.typeArgumentsRange,"v128.relaxed_dot_add",s.toString()),e.unreachable()}g.set(d.v128_relaxed_dot_add,mg);function E6(t){let i=t.compiler,e=i.module;if(v(t)|K(t,1))return i.currentType=p.void,e.unreachable();let r=t.operands,n=i.compileExpression(r[0],p.u32,1);return i.runtimeFeatures|=16,i.currentType=p.void,e.call(d.visit_globals,[n],L.None)}g.set(d.visit_globals,E6);function v6(t){let i=t.compiler,e=i.module;if(v(t)|K(t,2))return i.currentType=p.void,e.unreachable();let r=t.operands,n=i.compileExpression(r[0],i.options.usizeType,1),s=i.compileExpression(r[1],p.u32,1);return i.runtimeFeatures|=32,i.currentType=p.void,e.call(d.visit_members,[n,s],L.None)}g.set(d.visit_members,v6);function S6(t){return v(t),t.typeArguments=[p.i32],t.contextualType=p.i32,tc(t)}g.set(d.i32_clz,S6);function I6(t){return v(t),t.typeArguments=[p.i64],t.contextualType=p.i64,tc(t)}g.set(d.i64_clz,I6);function R6(t){return v(t),t.typeArguments=[p.i32],t.contextualType=p.i32,rc(t)}g.set(d.i32_ctz,R6);function F6(t){return v(t),t.typeArguments=[p.i64],t.contextualType=p.i64,rc(t)}g.set(d.i64_ctz,F6);function k6(t){return v(t),t.typeArguments=[p.i32],t.contextualType=p.i32,ic(t)}g.set(d.i32_popcnt,k6);function w6(t){return v(t),t.typeArguments=[p.i64],t.contextualType=p.i64,ic(t)}g.set(d.i64_popcnt,w6);function C6(t){return v(t),t.typeArguments=[p.i32],t.contextualType=p.i32,nc(t)}g.set(d.i32_rotl,C6);function P6(t){return v(t),t.typeArguments=[p.i64],t.contextualType=p.i64,nc(t)}g.set(d.i64_rotl,P6);function B6(t){return v(t),t.typeArguments=[p.i32],t.contextualType=p.i32,sc(t)}g.set(d.i32_rotr,B6);function L6(t){return v(t),t.typeArguments=[p.i64],t.contextualType=p.i64,sc(t)}g.set(d.i64_rotr,L6);function N6(t){return v(t),t.typeArguments=[p.f32],t.contextualType=p.f32,ac(t)}g.set(d.f32_abs,N6);function M6(t){return v(t),t.typeArguments=[p.f64],t.contextualType=p.f64,ac(t)}g.set(d.f64_abs,M6);function G6(t){return v(t),t.typeArguments=[p.f32],t.contextualType=p.f32,lc(t)}g.set(d.f32_max,G6);function z6(t){return v(t),t.typeArguments=[p.f64],t.contextualType=p.f64,lc(t)}g.set(d.f64_max,z6);function D6(t){return v(t),t.typeArguments=[p.f32],t.contextualType=p.f32,oc(t)}g.set(d.f32_min,D6);function U6(t){return v(t),t.typeArguments=[p.f64],t.contextualType=p.f64,oc(t)}g.set(d.f64_min,U6);function V6(t){return v(t),t.typeArguments=[p.f32],t.contextualType=p.f32,uc(t)}g.set(d.f32_ceil,V6);function O6(t){return v(t),t.typeArguments=[p.f64],t.contextualType=p.f64,uc(t)}g.set(d.f64_ceil,O6);function q6(t){return v(t),t.typeArguments=[p.f32],t.contextualType=p.f32,pc(t)}g.set(d.f32_floor,q6);function W6(t){return v(t),t.typeArguments=[p.f64],t.contextualType=p.f64,pc(t)}g.set(d.f64_floor,W6);function K6(t){return v(t),t.typeArguments=[p.f32],t.contextualType=p.f32,cc(t)}g.set(d.f32_copysign,K6);function j6(t){return v(t),t.typeArguments=[p.f64],t.contextualType=p.f64,cc(t)}g.set(d.f64_copysign,j6);function H6(t){return v(t),t.typeArguments=[p.f32],t.contextualType=p.f32,_c(t)}g.set(d.f32_nearest,H6);function Q6(t){return v(t),t.typeArguments=[p.f64],t.contextualType=p.f64,_c(t)}g.set(d.f64_nearest,Q6);function X6(t){return v(t),t.typeArguments=[p.i32],t.contextualType=p.f32,us(t)}g.set(d.i32_reinterpret_f32,X6);function J6(t){return v(t),t.typeArguments=[p.i64],t.contextualType=p.f64,us(t)}g.set(d.i64_reinterpret_f64,J6);function Z6(t){return v(t),t.typeArguments=[p.f32],t.contextualType=p.i32,us(t)}g.set(d.f32_reinterpret_i32,Z6);function Y6(t){return v(t),t.typeArguments=[p.f64],t.contextualType=p.i64,us(t)}g.set(d.f64_reinterpret_i64,Y6);function $6(t){return v(t),t.typeArguments=[p.f32],t.contextualType=p.f32,fc(t)}g.set(d.f32_sqrt,$6);function eT(t){return v(t),t.typeArguments=[p.f64],t.contextualType=p.f64,fc(t)}g.set(d.f64_sqrt,eT);function tT(t){return v(t),t.typeArguments=[p.f32],t.contextualType=p.f32,hc(t)}g.set(d.f32_trunc,tT);function rT(t){return v(t),t.typeArguments=[p.f64],t.contextualType=p.f64,hc(t)}g.set(d.f64_trunc,rT);function iT(t){return v(t),t.typeArguments=[p.i32],t.contextualType=p.i32,ps(t)}g.set(d.i32_rem_s,iT);function nT(t){return v(t),t.typeArguments=[p.u32],t.contextualType=p.u32,ps(t)}g.set(d.i32_rem_u,nT);function sT(t){return v(t),t.typeArguments=[p.i64],t.contextualType=p.i64,ps(t)}g.set(d.i64_rem_s,sT);function aT(t){return v(t),t.typeArguments=[p.u64],t.contextualType=p.u64,ps(t)}g.set(d.i64_rem_u,aT);function lT(t){return v(t),t.typeArguments=[p.i32],t.contextualType=p.i32,cs(t)}g.set(d.i32_add,lT);function oT(t){return v(t),t.typeArguments=[p.i64],t.contextualType=p.i64,cs(t)}g.set(d.i64_add,oT);function uT(t){return v(t),t.typeArguments=[p.f32],t.contextualType=p.f32,cs(t)}g.set(d.f32_add,uT);function pT(t){return v(t),t.typeArguments=[p.f64],t.contextualType=p.f64,cs(t)}g.set(d.f64_add,pT);function cT(t){return v(t),t.typeArguments=[p.i32],t.contextualType=p.i32,_s(t)}g.set(d.i32_sub,cT);function _T(t){return v(t),t.typeArguments=[p.i64],t.contextualType=p.i64,_s(t)}g.set(d.i64_sub,_T);function fT(t){return v(t),t.typeArguments=[p.f32],t.contextualType=p.f32,_s(t)}g.set(d.f32_sub,fT);function hT(t){return v(t),t.typeArguments=[p.f64],t.contextualType=p.f64,_s(t)}g.set(d.f64_sub,hT);function dT(t){return v(t),t.typeArguments=[p.i32],t.contextualType=p.i32,fs(t)}g.set(d.i32_mul,dT);function mT(t){return v(t),t.typeArguments=[p.i64],t.contextualType=p.i64,fs(t)}g.set(d.i64_mul,mT);function yT(t){return v(t),t.typeArguments=[p.f32],t.contextualType=p.f32,fs(t)}g.set(d.f32_mul,yT);function gT(t){return v(t),t.typeArguments=[p.f64],t.contextualType=p.f64,fs(t)}g.set(d.f64_mul,gT);function bT(t){return v(t),t.typeArguments=[p.i32],t.contextualType=p.i32,Nr(t)}g.set(d.i32_div_s,bT);function xT(t){return v(t),t.typeArguments=[p.u32],t.contextualType=p.u32,Nr(t)}g.set(d.i32_div_u,xT);function TT(t){return v(t),t.typeArguments=[p.i64],t.contextualType=p.i64,Nr(t)}g.set(d.i64_div_s,TT);function AT(t){return v(t),t.typeArguments=[p.u64],t.contextualType=p.u64,Nr(t)}g.set(d.i64_div_u,AT);function ET(t){return v(t),t.typeArguments=[p.f32],t.contextualType=p.f32,Nr(t)}g.set(d.f32_div,ET);function vT(t){return v(t),t.typeArguments=[p.f64],t.contextualType=p.f64,Nr(t)}g.set(d.f64_div,vT);function ST(t){return v(t),t.typeArguments=[p.i32],t.contextualType=p.i32,hs(t)}g.set(d.i32_eq,ST);function IT(t){return v(t),t.typeArguments=[p.i64],t.contextualType=p.i32,hs(t)}g.set(d.i64_eq,IT);function RT(t){return v(t),t.typeArguments=[p.f32],t.contextualType=p.i32,hs(t)}g.set(d.f32_eq,RT);function FT(t){return v(t),t.typeArguments=[p.f64],t.contextualType=p.i32,hs(t)}g.set(d.f64_eq,FT);function kT(t){return v(t),t.typeArguments=[p.i32],t.contextualType=p.i32,ds(t)}g.set(d.i32_ne,kT);function wT(t){return v(t),t.typeArguments=[p.i64],t.contextualType=p.i32,ds(t)}g.set(d.i64_ne,wT);function CT(t){return v(t),t.typeArguments=[p.f32],t.contextualType=p.i32,ds(t)}g.set(d.f32_ne,CT);function PT(t){return v(t),t.typeArguments=[p.f64],t.contextualType=p.i32,ds(t)}g.set(d.f64_ne,PT);function BT(t){return v(t),t.typeArguments=[p.i8],t.contextualType=p.i32,Pe(t)}g.set(d.i32_load8_s,BT);function LT(t){return v(t),t.typeArguments=[p.u8],t.contextualType=p.i32,Pe(t)}g.set(d.i32_load8_u,LT);function NT(t){return v(t),t.typeArguments=[p.i16],t.contextualType=p.i32,Pe(t)}g.set(d.i32_load16_s,NT);function MT(t){return v(t),t.typeArguments=[p.u16],t.contextualType=p.i32,Pe(t)}g.set(d.i32_load16_u,MT);function GT(t){return v(t),t.typeArguments=[p.i32],t.contextualType=p.i32,Pe(t)}g.set(d.i32_load,GT);function zT(t){return v(t),t.typeArguments=[p.i8],t.contextualType=p.i64,Pe(t)}g.set(d.i64_load8_s,zT);function DT(t){return v(t),t.typeArguments=[p.u8],t.contextualType=p.i64,Pe(t)}g.set(d.i64_load8_u,DT);function UT(t){return v(t),t.typeArguments=[p.i16],t.contextualType=p.i64,Pe(t)}g.set(d.i64_load16_s,UT);function VT(t){return v(t),t.typeArguments=[p.u16],t.contextualType=p.i64,Pe(t)}g.set(d.i64_load16_u,VT);function OT(t){return v(t),t.typeArguments=[p.i32],t.contextualType=p.i64,Pe(t)}g.set(d.i64_load32_s,OT);function qT(t){return v(t),t.typeArguments=[p.u32],t.contextualType=p.i64,Pe(t)}g.set(d.i64_load32_u,qT);function WT(t){return v(t),t.typeArguments=[p.i64],t.contextualType=p.i64,Pe(t)}g.set(d.i64_load,WT);function KT(t){return v(t),t.typeArguments=[p.f32],t.contextualType=p.f32,Pe(t)}g.set(d.f32_load,KT);function jT(t){return v(t),t.typeArguments=[p.f64],t.contextualType=p.f64,Pe(t)}g.set(d.f64_load,jT);function HT(t){return v(t),t.typeArguments=[p.i8],t.contextualType=p.i32,t.contextIsExact=!0,ut(t)}g.set(d.i32_store8,HT);function QT(t){return v(t),t.typeArguments=[p.i16],t.contextualType=p.i32,t.contextIsExact=!0,ut(t)}g.set(d.i32_store16,QT);function XT(t){return v(t),t.typeArguments=[p.i32],t.contextualType=p.i32,t.contextIsExact=!0,ut(t)}g.set(d.i32_store,XT);function JT(t){return v(t),t.typeArguments=[p.i8],t.contextualType=p.i64,t.contextIsExact=!0,ut(t)}g.set(d.i64_store8,JT);function ZT(t){return v(t),t.typeArguments=[p.i16],t.contextualType=p.i64,t.contextIsExact=!0,ut(t)}g.set(d.i64_store16,ZT);function YT(t){return v(t),t.typeArguments=[p.i32],t.contextualType=p.i64,t.contextIsExact=!0,ut(t)}g.set(d.i64_store32,YT);function $T(t){return v(t),t.typeArguments=[p.i64],t.contextualType=p.i64,t.contextIsExact=!0,ut(t)}g.set(d.i64_store,$T);function eA(t){return v(t),t.typeArguments=[p.f32],t.contextualType=p.f32,t.contextIsExact=!0,ut(t)}g.set(d.f32_store,eA);function tA(t){return v(t),t.typeArguments=[p.f64],t.contextualType=p.f64,t.contextIsExact=!0,ut(t)}g.set(d.f64_store,tA);function rA(t){return v(t),t.typeArguments=[p.u8],t.contextualType=p.i32,ar(t)}g.set(d.i32_atomic_load8_u,rA);function iA(t){return v(t),t.typeArguments=[p.u16],t.contextualType=p.i32,ar(t)}g.set(d.i32_atomic_load16_u,iA);function nA(t){return v(t),t.typeArguments=[p.i32],t.contextualType=p.i32,ar(t)}g.set(d.i32_atomic_load,nA);function sA(t){return v(t),t.typeArguments=[p.u8],t.contextualType=p.i64,ar(t)}g.set(d.i64_atomic_load8_u,sA);function aA(t){return v(t),t.typeArguments=[p.u16],t.contextualType=p.i64,ar(t)}g.set(d.i64_atomic_load16_u,aA);function lA(t){return v(t),t.typeArguments=[p.u32],t.contextualType=p.i64,ar(t)}g.set(d.i64_atomic_load32_u,lA);function oA(t){return v(t),t.typeArguments=[p.i64],t.contextualType=p.i64,ar(t)}g.set(d.i64_atomic_load,oA);function uA(t){return v(t),t.typeArguments=[p.i8],t.contextualType=p.i32,t.contextIsExact=!0,lr(t)}g.set(d.i32_atomic_store8,uA);function pA(t){return v(t),t.typeArguments=[p.i16],t.contextualType=p.i32,t.contextIsExact=!0,lr(t)}g.set(d.i32_atomic_store16,pA);function cA(t){return v(t),t.typeArguments=[p.i32],t.contextualType=p.i32,t.contextIsExact=!0,lr(t)}g.set(d.i32_atomic_store,cA);function _A(t){return v(t),t.typeArguments=[p.i8],t.contextualType=p.i64,t.contextIsExact=!0,lr(t)}g.set(d.i64_atomic_store8,_A);function fA(t){return v(t),t.typeArguments=[p.u16],t.contextualType=p.i64,t.contextIsExact=!0,lr(t)}g.set(d.i64_atomic_store16,fA);function hA(t){return v(t),t.typeArguments=[p.i32],t.contextualType=p.i64,t.contextIsExact=!0,lr(t)}g.set(d.i64_atomic_store32,hA);function dA(t){return v(t),t.typeArguments=[p.i64],t.contextualType=p.i64,t.contextIsExact=!0,lr(t)}g.set(d.i64_atomic_store,dA);function mA(t){return v(t),t.typeArguments=[p.u8],t.contextualType=p.i32,t.contextIsExact=!0,or(t)}g.set(d.i32_atomic_rmw8_add_u,mA);function yA(t){return v(t),t.typeArguments=[p.u16],t.contextualType=p.i32,t.contextIsExact=!0,or(t)}g.set(d.i32_atomic_rmw16_add_u,yA);function gA(t){return v(t),t.typeArguments=[p.i32],t.contextualType=p.i32,t.contextIsExact=!0,or(t)}g.set(d.i32_atomic_rmw_add,gA);function bA(t){return v(t),t.typeArguments=[p.u8],t.contextualType=p.i64,t.contextIsExact=!0,or(t)}g.set(d.i64_atomic_rmw8_add_u,bA);function xA(t){return v(t),t.typeArguments=[p.u16],t.contextualType=p.i64,t.contextIsExact=!0,or(t)}g.set(d.i64_atomic_rmw16_add_u,xA);function TA(t){return v(t),t.typeArguments=[p.u32],t.contextualType=p.i64,t.contextIsExact=!0,or(t)}g.set(d.i64_atomic_rmw32_add_u,TA);function AA(t){return v(t),t.typeArguments=[p.i64],t.contextualType=p.i64,t.contextIsExact=!0,or(t)}g.set(d.i64_atomic_rmw_add,AA);function EA(t){return v(t),t.typeArguments=[p.u8],t.contextualType=p.i32,t.contextIsExact=!0,ur(t)}g.set(d.i32_atomic_rmw8_sub_u,EA);function vA(t){return v(t),t.typeArguments=[p.u16],t.contextualType=p.i32,t.contextIsExact=!0,ur(t)}g.set(d.i32_atomic_rmw16_sub_u,vA);function SA(t){return v(t),t.typeArguments=[p.i32],t.contextualType=p.i32,t.contextIsExact=!0,ur(t)}g.set(d.i32_atomic_rmw_sub,SA);function IA(t){return v(t),t.typeArguments=[p.u8],t.contextualType=p.i64,t.contextIsExact=!0,ur(t)}g.set(d.i64_atomic_rmw8_sub_u,IA);function RA(t){return v(t),t.typeArguments=[p.u16],t.contextualType=p.i64,t.contextIsExact=!0,ur(t)}g.set(d.i64_atomic_rmw16_sub_u,RA);function FA(t){return v(t),t.typeArguments=[p.u32],t.contextualType=p.i64,t.contextIsExact=!0,ur(t)}g.set(d.i64_atomic_rmw32_sub_u,FA);function kA(t){return v(t),t.typeArguments=[p.i64],t.contextualType=p.i64,t.contextIsExact=!0,ur(t)}g.set(d.i64_atomic_rmw_sub,kA);function wA(t){return v(t),t.typeArguments=[p.u8],t.contextualType=p.i32,t.contextIsExact=!0,pr(t)}g.set(d.i32_atomic_rmw8_and_u,wA);function CA(t){return v(t),t.typeArguments=[p.u16],t.contextualType=p.i32,t.contextIsExact=!0,pr(t)}g.set(d.i32_atomic_rmw16_and_u,CA);function PA(t){return v(t),t.typeArguments=[p.i32],t.contextualType=p.i32,t.contextIsExact=!0,pr(t)}g.set(d.i32_atomic_rmw_and,PA);function BA(t){return v(t),t.typeArguments=[p.u8],t.contextualType=p.i64,t.contextIsExact=!0,pr(t)}g.set(d.i64_atomic_rmw8_and_u,BA);function LA(t){return v(t),t.typeArguments=[p.u16],t.contextualType=p.i64,t.contextIsExact=!0,pr(t)}g.set(d.i64_atomic_rmw16_and_u,LA);function NA(t){return v(t),t.typeArguments=[p.u32],t.contextualType=p.i64,t.contextIsExact=!0,pr(t)}g.set(d.i64_atomic_rmw32_and_u,NA);function MA(t){return v(t),t.typeArguments=[p.i64],t.contextualType=p.i64,t.contextIsExact=!0,pr(t)}g.set(d.i64_atomic_rmw_and,MA);function GA(t){return v(t),t.typeArguments=[p.u8],t.contextualType=p.i32,t.contextIsExact=!0,cr(t)}g.set(d.i32_atomic_rmw8_or_u,GA);function zA(t){return v(t),t.typeArguments=[p.u16],t.contextualType=p.i32,t.contextIsExact=!0,cr(t)}g.set(d.i32_atomic_rmw16_or_u,zA);function DA(t){return v(t),t.typeArguments=[p.i32],t.contextualType=p.i32,t.contextIsExact=!0,cr(t)}g.set(d.i32_atomic_rmw_or,DA);function UA(t){return v(t),t.typeArguments=[p.u8],t.contextualType=p.i64,t.contextIsExact=!0,cr(t)}g.set(d.i64_atomic_rmw8_or_u,UA);function VA(t){return v(t),t.typeArguments=[p.u16],t.contextualType=p.i64,t.contextIsExact=!0,cr(t)}g.set(d.i64_atomic_rmw16_or_u,VA);function OA(t){return v(t),t.typeArguments=[p.u32],t.contextualType=p.i64,t.contextIsExact=!0,cr(t)}g.set(d.i64_atomic_rmw32_or_u,OA);function qA(t){return v(t),t.typeArguments=[p.i64],t.contextualType=p.i64,t.contextIsExact=!0,cr(t)}g.set(d.i64_atomic_rmw_or,qA);function WA(t){return v(t),t.typeArguments=[p.u8],t.contextualType=p.i32,t.contextIsExact=!0,_r(t)}g.set(d.i32_atomic_rmw8_xor_u,WA);function KA(t){return v(t),t.typeArguments=[p.u16],t.contextualType=p.i32,t.contextIsExact=!0,_r(t)}g.set(d.i32_atomic_rmw16_xor_u,KA);function jA(t){return v(t),t.typeArguments=[p.i32],t.contextualType=p.i32,t.contextIsExact=!0,_r(t)}g.set(d.i32_atomic_rmw_xor,jA);function HA(t){return v(t),t.typeArguments=[p.u8],t.contextualType=p.i64,t.contextIsExact=!0,_r(t)}g.set(d.i64_atomic_rmw8_xor_u,HA);function QA(t){return v(t),t.typeArguments=[p.u16],t.contextualType=p.i64,t.contextIsExact=!0,_r(t)}g.set(d.i64_atomic_rmw16_xor_u,QA);function XA(t){return v(t),t.typeArguments=[p.u32],t.contextualType=p.i64,t.contextIsExact=!0,_r(t)}g.set(d.i64_atomic_rmw32_xor_u,XA);function JA(t){return v(t),t.typeArguments=[p.i64],t.contextualType=p.i64,t.contextIsExact=!0,_r(t)}g.set(d.i64_atomic_rmw_xor,JA);function ZA(t){return v(t),t.typeArguments=[p.u8],t.contextualType=p.i32,t.contextIsExact=!0,fr(t)}g.set(d.i32_atomic_rmw8_xchg_u,ZA);function YA(t){return v(t),t.typeArguments=[p.u16],t.contextualType=p.i32,t.contextIsExact=!0,fr(t)}g.set(d.i32_atomic_rmw16_xchg_u,YA);function $A(t){return v(t),t.typeArguments=[p.i32],t.contextualType=p.i32,t.contextIsExact=!0,fr(t)}g.set(d.i32_atomic_rmw_xchg,$A);function eE(t){return v(t),t.typeArguments=[p.u8],t.contextualType=p.i64,t.contextIsExact=!0,fr(t)}g.set(d.i64_atomic_rmw8_xchg_u,eE);function tE(t){return v(t),t.typeArguments=[p.u16],t.contextualType=p.i64,t.contextIsExact=!0,fr(t)}g.set(d.i64_atomic_rmw16_xchg_u,tE);function rE(t){return v(t),t.typeArguments=[p.u32],t.contextualType=p.i64,t.contextIsExact=!0,fr(t)}g.set(d.i64_atomic_rmw32_xchg_u,rE);function iE(t){return v(t),t.typeArguments=[p.i64],t.contextualType=p.i64,t.contextIsExact=!0,fr(t)}g.set(d.i64_atomic_rmw_xchg,iE);function nE(t){return v(t),t.typeArguments=[p.u8],t.contextualType=p.i32,t.contextIsExact=!0,hr(t)}g.set(d.i32_atomic_rmw8_cmpxchg_u,nE);function sE(t){return v(t),t.typeArguments=[p.u16],t.contextualType=p.i32,t.contextIsExact=!0,hr(t)}g.set(d.i32_atomic_rmw16_cmpxchg_u,sE);function aE(t){return v(t),t.typeArguments=[p.i32],t.contextualType=p.i32,t.contextIsExact=!0,hr(t)}g.set(d.i32_atomic_rmw_cmpxchg,aE);function lE(t){return v(t),t.typeArguments=[p.u8],t.contextualType=p.i64,t.contextIsExact=!0,hr(t)}g.set(d.i64_atomic_rmw8_cmpxchg_u,lE);function oE(t){return v(t),t.typeArguments=[p.u16],t.contextualType=p.i64,t.contextIsExact=!0,hr(t)}g.set(d.i64_atomic_rmw16_cmpxchg_u,oE);function uE(t){return v(t),t.typeArguments=[p.u32],t.contextualType=p.i64,t.contextIsExact=!0,hr(t)}g.set(d.i64_atomic_rmw32_cmpxchg_u,uE);function pE(t){return v(t),t.typeArguments=[p.i64],t.contextualType=p.i64,t.contextIsExact=!0,hr(t)}g.set(d.i64_atomic_rmw_cmpxchg,pE);function cE(t){return v(t),t.typeArguments=[p.i32],dc(t)}g.set(d.memory_atomic_wait32,cE);function _E(t){return v(t),t.typeArguments=[p.i64],t.contextualType=p.i32,dc(t)}g.set(d.memory_atomic_wait64,_E);function fE(t){return v(t),t.typeArguments=[p.v128],t.contextualType=p.v128,Pe(t)}g.set(d.v128_load,fE);function hE(t){return v(t),t.typeArguments=[p.i8],t.contextualType=p.v128,Dr(t)}g.set(d.v128_load8x8_s,hE);function dE(t){return v(t),t.typeArguments=[p.u8],t.contextualType=p.v128,Dr(t)}g.set(d.v128_load8x8_u,dE);function mE(t){return v(t),t.typeArguments=[p.i16],t.contextualType=p.v128,Dr(t)}g.set(d.v128_load16x4_s,mE);function yE(t){return v(t),t.typeArguments=[p.u16],t.contextualType=p.v128,Dr(t)}g.set(d.v128_load16x4_u,yE);function gE(t){return v(t),t.typeArguments=[p.i32],t.contextualType=p.v128,Dr(t)}g.set(d.v128_load32x2_s,gE);function bE(t){return v(t),t.typeArguments=[p.u32],t.contextualType=p.v128,Dr(t)}g.set(d.v128_load32x2_u,bE);function xE(t){return v(t),t.typeArguments=[p.u8],t.contextualType=p.v128,ms(t)}g.set(d.v128_load8_splat,xE);function TE(t){return v(t),t.typeArguments=[p.u16],t.contextualType=p.v128,ms(t)}g.set(d.v128_load16_splat,TE);function AE(t){return v(t),t.typeArguments=[p.u32],t.contextualType=p.v128,ms(t)}g.set(d.v128_load32_splat,AE);function EE(t){return v(t),t.typeArguments=[p.u64],t.contextualType=p.v128,ms(t)}g.set(d.v128_load64_splat,EE);function vE(t){return v(t),t.typeArguments=[p.u32],t.contextualType=p.v128,yc(t)}g.set(d.v128_load32_zero,vE);function SE(t){return v(t),t.typeArguments=[p.u64],t.contextualType=p.v128,yc(t)}g.set(d.v128_load64_zero,SE);function IE(t){return v(t),t.typeArguments=[p.u8],t.contextualType=p.v128,ys(t)}g.set(d.v128_load8_lane,IE);function RE(t){return v(t),t.typeArguments=[p.u16],t.contextualType=p.v128,ys(t)}g.set(d.v128_load16_lane,RE);function FE(t){return v(t),t.typeArguments=[p.u32],t.contextualType=p.v128,ys(t)}g.set(d.v128_load32_lane,FE);function kE(t){return v(t),t.typeArguments=[p.u64],t.contextualType=p.v128,ys(t)}g.set(d.v128_load64_lane,kE);function wE(t){return v(t),t.typeArguments=[p.u8],t.contextualType=p.v128,gs(t)}g.set(d.v128_store8_lane,wE);function CE(t){return v(t),t.typeArguments=[p.u16],t.contextualType=p.v128,gs(t)}g.set(d.v128_store16_lane,CE);function PE(t){return v(t),t.typeArguments=[p.u32],t.contextualType=p.v128,gs(t)}g.set(d.v128_store32_lane,PE);function BE(t){return v(t),t.typeArguments=[p.u64],t.contextualType=p.v128,gs(t)}g.set(d.v128_store64_lane,BE);function LE(t){return v(t),t.typeArguments=[p.v128],t.contextualType=p.v128,t.contextIsExact=!0,ut(t)}g.set(d.v128_store,LE);function NE(t){return v(t),t.typeArguments=[p.i8],t.contextualType=p.v128,Mr(t)}g.set(d.i8x16_splat,NE);function ME(t){return v(t),t.typeArguments=[p.i8],t.contextualType=p.i32,Wt(t)}g.set(d.i8x16_extract_lane_s,ME);function GE(t){return v(t),t.typeArguments=[p.u8],t.contextualType=p.i32,Wt(t)}g.set(d.i8x16_extract_lane_u,GE);function zE(t){return v(t),t.typeArguments=[p.i8],t.contextualType=p.v128,Gr(t)}g.set(d.i8x16_replace_lane,zE);function DE(t){return v(t),t.typeArguments=[p.i8],t.contextualType=p.v128,Ur(t)}g.set(d.i8x16_add,DE);function UE(t){return v(t),t.typeArguments=[p.i8],t.contextualType=p.v128,Vr(t)}g.set(d.i8x16_sub,UE);function VE(t){return v(t),t.typeArguments=[p.i8],t.contextualType=p.v128,Kt(t)}g.set(d.i8x16_min_s,VE);function OE(t){return v(t),t.typeArguments=[p.u8],t.contextualType=p.v128,Kt(t)}g.set(d.i8x16_min_u,OE);function qE(t){return v(t),t.typeArguments=[p.i8],t.contextualType=p.v128,jt(t)}g.set(d.i8x16_max_s,qE);function WE(t){return v(t),t.typeArguments=[p.u8],t.contextualType=p.v128,jt(t)}g.set(d.i8x16_max_u,WE);function KE(t){return v(t),t.typeArguments=[p.u8],t.contextualType=p.v128,Tc(t)}g.set(d.i8x16_avgr_u,KE);function jE(t){return v(t),t.typeArguments=[p.i8],t.contextualType=p.v128,Kr(t)}g.set(d.i8x16_abs,jE);function HE(t){return v(t),t.typeArguments=[p.i8],t.contextualType=p.v128,Wr(t)}g.set(d.i8x16_neg,HE);function QE(t){return v(t),t.typeArguments=[p.i8],t.contextualType=p.v128,bs(t)}g.set(d.i8x16_add_sat_s,QE);function XE(t){return v(t),t.typeArguments=[p.u8],t.contextualType=p.v128,bs(t)}g.set(d.i8x16_add_sat_u,XE);function JE(t){return v(t),t.typeArguments=[p.i8],t.contextualType=p.v128,xs(t)}g.set(d.i8x16_sub_sat_s,JE);function ZE(t){return v(t),t.typeArguments=[p.u8],t.contextualType=p.v128,xs(t)}g.set(d.i8x16_sub_sat_u,ZE);function YE(t){return v(t),t.typeArguments=[p.i8],t.contextualType=p.v128,As(t)}g.set(d.i8x16_shl,YE);function $E(t){return v(t),t.typeArguments=[p.i8],t.contextualType=p.v128,Ht(t)}g.set(d.i8x16_shr_s,$E);function e4(t){return v(t),t.typeArguments=[p.u8],t.contextualType=p.v128,Ht(t)}g.set(d.i8x16_shr_u,e4);function t4(t){return v(t),t.typeArguments=[p.i8],t.contextualType=p.i32,Es(t)}g.set(d.i8x16_all_true,t4);function r4(t){return v(t),t.typeArguments=[p.i8],t.contextualType=p.i32,vs(t)}g.set(d.i8x16_bitmask,r4);function i4(t){return v(t),t.typeArguments=[p.i8],t.contextualType=p.v128,ug(t)}g.set(d.i8x16_popcnt,i4);function n4(t){return v(t),t.typeArguments=[p.i8],t.contextualType=p.v128,Or(t)}g.set(d.i8x16_eq,n4);function s4(t){return v(t),t.typeArguments=[p.i8],t.contextualType=p.v128,qr(t)}g.set(d.i8x16_ne,s4);function a4(t){return v(t),t.typeArguments=[p.i8],t.contextualType=p.v128,xt(t)}g.set(d.i8x16_lt_s,a4);function l4(t){return v(t),t.typeArguments=[p.u8],t.contextualType=p.v128,xt(t)}g.set(d.i8x16_lt_u,l4);function o4(t){return v(t),t.typeArguments=[p.i8],t.contextualType=p.v128,Tt(t)}g.set(d.i8x16_le_s,o4);function u4(t){return v(t),t.typeArguments=[p.u8],t.contextualType=p.v128,Tt(t)}g.set(d.i8x16_le_u,u4);function p4(t){return v(t),t.typeArguments=[p.i8],t.contextualType=p.v128,At(t)}g.set(d.i8x16_gt_s,p4);function c4(t){return v(t),t.typeArguments=[p.u8],t.contextualType=p.v128,At(t)}g.set(d.i8x16_gt_u,c4);function _4(t){return v(t),t.typeArguments=[p.i8],t.contextualType=p.v128,Et(t)}g.set(d.i8x16_ge_s,_4);function f4(t){return v(t),t.typeArguments=[p.u8],t.contextualType=p.v128,Et(t)}g.set(d.i8x16_ge_u,f4);function h4(t){return v(t),t.typeArguments=[p.i16],t.contextualType=p.v128,Ts(t)}g.set(d.i8x16_narrow_i16x8_s,h4);function d4(t){return v(t),t.typeArguments=[p.u16],t.contextualType=p.v128,Ts(t)}g.set(d.i8x16_narrow_i16x8_u,d4);function m4(t){return v(t),t.typeArguments=[p.i8],t.contextualType=p.v128,zr(t)}g.set(d.i8x16_shuffle,m4);function y4(t){return v(t),t.typeArguments=null,t.contextualType=p.v128,lg(t)}g.set(d.i8x16_swizzle,y4);function g4(t){return v(t),t.typeArguments=[p.i16],t.contextualType=p.v128,Mr(t)}g.set(d.i16x8_splat,g4);function b4(t){return v(t),t.typeArguments=[p.i16],t.contextualType=p.i32,Wt(t)}g.set(d.i16x8_extract_lane_s,b4);function x4(t){return v(t),t.typeArguments=[p.u16],t.contextualType=p.i32,Wt(t)}g.set(d.i16x8_extract_lane_u,x4);function T4(t){return v(t),t.typeArguments=[p.i16],t.contextualType=p.v128,Gr(t)}g.set(d.i16x8_replace_lane,T4);function A4(t){return v(t),t.typeArguments=[p.i16],t.contextualType=p.v128,Ur(t)}g.set(d.i16x8_add,A4);function E4(t){return v(t),t.typeArguments=[p.i16],t.contextualType=p.v128,Vr(t)}g.set(d.i16x8_sub,E4);function v4(t){return v(t),t.typeArguments=[p.i16],t.contextualType=p.v128,Mi(t)}g.set(d.i16x8_mul,v4);function S4(t){return v(t),t.typeArguments=[p.i16],t.contextualType=p.v128,Kt(t)}g.set(d.i16x8_min_s,S4);function I4(t){return v(t),t.typeArguments=[p.u16],t.contextualType=p.v128,Kt(t)}g.set(d.i16x8_min_u,I4);function R4(t){return v(t),t.typeArguments=[p.i16],t.contextualType=p.v128,jt(t)}g.set(d.i16x8_max_s,R4);function F4(t){return v(t),t.typeArguments=[p.u16],t.contextualType=p.v128,jt(t)}g.set(d.i16x8_max_u,F4);function k4(t){return v(t),t.typeArguments=[p.u16],t.contextualType=p.v128,Tc(t)}g.set(d.i16x8_avgr_u,k4);function w4(t){return v(t),t.typeArguments=[p.i16],t.contextualType=p.v128,Kr(t)}g.set(d.i16x8_abs,w4);function C4(t){return v(t),t.typeArguments=[p.i16],t.contextualType=p.v128,Wr(t)}g.set(d.i16x8_neg,C4);function P4(t){return v(t),t.typeArguments=[p.i16],t.contextualType=p.v128,bs(t)}g.set(d.i16x8_add_sat_s,P4);function B4(t){return v(t),t.typeArguments=[p.u16],t.contextualType=p.v128,bs(t)}g.set(d.i16x8_add_sat_u,B4);function L4(t){return v(t),t.typeArguments=[p.i16],t.contextualType=p.v128,xs(t)}g.set(d.i16x8_sub_sat_s,L4);function N4(t){return v(t),t.typeArguments=[p.u16],t.contextualType=p.v128,xs(t)}g.set(d.i16x8_sub_sat_u,N4);function M4(t){return v(t),t.typeArguments=[p.i16],t.contextualType=p.v128,As(t)}g.set(d.i16x8_shl,M4);function G4(t){return v(t),t.typeArguments=[p.i16],t.contextualType=p.v128,Ht(t)}g.set(d.i16x8_shr_s,G4);function z4(t){return v(t),t.typeArguments=[p.u16],t.contextualType=p.v128,Ht(t)}g.set(d.i16x8_shr_u,z4);function D4(t){return v(t),t.typeArguments=[p.i16],t.contextualType=p.i32,Es(t)}g.set(d.i16x8_all_true,D4);function U4(t){return v(t),t.typeArguments=[p.i16],t.contextualType=p.i32,vs(t)}g.set(d.i16x8_bitmask,U4);function V4(t){return v(t),t.typeArguments=[p.i16],t.contextualType=p.v128,Or(t)}g.set(d.i16x8_eq,V4);function O4(t){return v(t),t.typeArguments=[p.i16],t.contextualType=p.v128,qr(t)}g.set(d.i16x8_ne,O4);function q4(t){return v(t),t.typeArguments=[p.i16],t.contextualType=p.v128,xt(t)}g.set(d.i16x8_lt_s,q4);function W4(t){return v(t),t.typeArguments=[p.u16],t.contextualType=p.v128,xt(t)}g.set(d.i16x8_lt_u,W4);function K4(t){return v(t),t.typeArguments=[p.i16],t.contextualType=p.v128,Tt(t)}g.set(d.i16x8_le_s,K4);function j4(t){return v(t),t.typeArguments=[p.u16],t.contextualType=p.v128,Tt(t)}g.set(d.i16x8_le_u,j4);function H4(t){return v(t),t.typeArguments=[p.i16],t.contextualType=p.v128,At(t)}g.set(d.i16x8_gt_s,H4);function Q4(t){return v(t),t.typeArguments=[p.u16],t.contextualType=p.v128,At(t)}g.set(d.i16x8_gt_u,Q4);function X4(t){return v(t),t.typeArguments=[p.i16],t.contextualType=p.v128,Et(t)}g.set(d.i16x8_ge_s,X4);function J4(t){return v(t),t.typeArguments=[p.u16],t.contextualType=p.v128,Et(t)}g.set(d.i16x8_ge_u,J4);function Z4(t){return v(t),t.typeArguments=[p.i32],t.contextualType=p.v128,Ts(t)}g.set(d.i16x8_narrow_i32x4_s,Z4);function Y4(t){return v(t),t.typeArguments=[p.u32],t.contextualType=p.v128,Ts(t)}g.set(d.i16x8_narrow_i32x4_u,Y4);function $4(t){return v(t),t.typeArguments=[p.i8],t.contextualType=p.v128,jr(t)}g.set(d.i16x8_extend_low_i8x16_s,$4);function ev(t){return v(t),t.typeArguments=[p.u8],t.contextualType=p.v128,jr(t)}g.set(d.i16x8_extend_low_i8x16_u,ev);function tv(t){return v(t),t.typeArguments=[p.i8],t.contextualType=p.v128,Hr(t)}g.set(d.i16x8_extend_high_i8x16_s,tv);function rv(t){return v(t),t.typeArguments=[p.u8],t.contextualType=p.v128,Hr(t)}g.set(d.i16x8_extend_high_i8x16_u,rv);function iv(t){return v(t),t.typeArguments=[p.i8],t.contextualType=p.v128,Ss(t)}g.set(d.i16x8_extadd_pairwise_i8x16_s,iv);function nv(t){return v(t),t.typeArguments=[p.u8],t.contextualType=p.v128,Ss(t)}g.set(d.i16x8_extadd_pairwise_i8x16_u,nv);function sv(t){return v(t),t.typeArguments=[p.i16],t.contextualType=p.v128,_g(t)}g.set(d.i16x8_q15mulr_sat_s,sv);function av(t){return v(t),t.typeArguments=[p.i8],t.contextualType=p.v128,Qr(t)}g.set(d.i16x8_extmul_low_i8x16_s,av);function lv(t){return v(t),t.typeArguments=[p.u8],t.contextualType=p.v128,Qr(t)}g.set(d.i16x8_extmul_low_i8x16_u,lv);function ov(t){return v(t),t.typeArguments=[p.i8],t.contextualType=p.v128,Xr(t)}g.set(d.i16x8_extmul_high_i8x16_s,ov);function uv(t){return v(t),t.typeArguments=[p.u8],t.contextualType=p.v128,Xr(t)}g.set(d.i16x8_extmul_high_i8x16_u,uv);function pv(t){return v(t),t.typeArguments=[p.i16],t.contextualType=p.v128,zr(t)}g.set(d.i16x8_shuffle,pv);function cv(t){return v(t),t.typeArguments=[p.i32],t.contextualType=p.v128,Mr(t)}g.set(d.i32x4_splat,cv);function _v(t){return v(t),t.typeArguments=[p.i32],t.contextualType=p.i32,Wt(t)}g.set(d.i32x4_extract_lane,_v);function fv(t){return v(t),t.typeArguments=[p.i32],t.contextualType=p.v128,Gr(t)}g.set(d.i32x4_replace_lane,fv);function hv(t){return v(t),t.typeArguments=[p.i32],t.contextualType=p.v128,Ur(t)}g.set(d.i32x4_add,hv);function dv(t){return v(t),t.typeArguments=[p.i32],t.contextualType=p.v128,Vr(t)}g.set(d.i32x4_sub,dv);function mv(t){return v(t),t.typeArguments=[p.i32],t.contextualType=p.v128,Mi(t)}g.set(d.i32x4_mul,mv);function yv(t){return v(t),t.typeArguments=[p.i32],t.contextualType=p.v128,Kt(t)}g.set(d.i32x4_min_s,yv);function gv(t){return v(t),t.typeArguments=[p.u32],t.contextualType=p.v128,Kt(t)}g.set(d.i32x4_min_u,gv);function bv(t){return v(t),t.typeArguments=[p.i32],t.contextualType=p.v128,jt(t)}g.set(d.i32x4_max_s,bv);function xv(t){return v(t),t.typeArguments=[p.u32],t.contextualType=p.v128,jt(t)}g.set(d.i32x4_max_u,xv);function Tv(t){return v(t),t.typeArguments=[p.i16],t.contextualType=p.v128,og(t)}g.set(d.i32x4_dot_i16x8_s,Tv);function Av(t){return v(t),t.typeArguments=[p.i32],t.contextualType=p.v128,Kr(t)}g.set(d.i32x4_abs,Av);function Ev(t){return v(t),t.typeArguments=[p.i32],t.contextualType=p.v128,Wr(t)}g.set(d.i32x4_neg,Ev);function vv(t){return v(t),t.typeArguments=[p.i32],t.contextualType=p.v128,As(t)}g.set(d.i32x4_shl,vv);function Sv(t){return v(t),t.typeArguments=[p.i32],t.contextualType=p.v128,Ht(t)}g.set(d.i32x4_shr_s,Sv);function Iv(t){return v(t),t.typeArguments=[p.u32],t.contextualType=p.v128,Ht(t)}g.set(d.i32x4_shr_u,Iv);function Rv(t){return v(t),t.typeArguments=[p.i32],t.contextualType=p.i32,Es(t)}g.set(d.i32x4_all_true,Rv);function Fv(t){return v(t),t.typeArguments=[p.i32],t.contextualType=p.i32,vs(t)}g.set(d.i32x4_bitmask,Fv);function kv(t){return v(t),t.typeArguments=[p.i32],t.contextualType=p.v128,Or(t)}g.set(d.i32x4_eq,kv);function wv(t){return v(t),t.typeArguments=[p.i32],t.contextualType=p.v128,qr(t)}g.set(d.i32x4_ne,wv);function Cv(t){return v(t),t.typeArguments=[p.i32],t.contextualType=p.v128,xt(t)}g.set(d.i32x4_lt_s,Cv);function Pv(t){return v(t),t.typeArguments=[p.u32],t.contextualType=p.v128,xt(t)}g.set(d.i32x4_lt_u,Pv);function Bv(t){return v(t),t.typeArguments=[p.i32],t.contextualType=p.v128,Tt(t)}g.set(d.i32x4_le_s,Bv);function Lv(t){return v(t),t.typeArguments=[p.u32],t.contextualType=p.v128,Tt(t)}g.set(d.i32x4_le_u,Lv);function Nv(t){return v(t),t.typeArguments=[p.i32],t.contextualType=p.v128,At(t)}g.set(d.i32x4_gt_s,Nv);function Mv(t){return v(t),t.typeArguments=[p.u32],t.contextualType=p.v128,At(t)}g.set(d.i32x4_gt_u,Mv);function Gv(t){return v(t),t.typeArguments=[p.i32],t.contextualType=p.v128,Et(t)}g.set(d.i32x4_ge_s,Gv);function zv(t){return v(t),t.typeArguments=[p.u32],t.contextualType=p.v128,Et(t)}g.set(d.i32x4_ge_u,zv);function Dv(t){return v(t),t.typeArguments=[p.i32],t.contextualType=p.v128,kc(t)}g.set(d.i32x4_trunc_sat_f32x4_s,Dv);function Uv(t){return v(t),t.typeArguments=[p.u32],t.contextualType=p.v128,kc(t)}g.set(d.i32x4_trunc_sat_f32x4_u,Uv);function Vv(t){return v(t),t.typeArguments=[p.i32],t.contextualType=p.v128,wc(t)}g.set(d.i32x4_trunc_sat_f64x2_s_zero,Vv);function Ov(t){return v(t),t.typeArguments=[p.u32],t.contextualType=p.v128,wc(t)}g.set(d.i32x4_trunc_sat_f64x2_u_zero,Ov);function qv(t){return v(t),t.typeArguments=[p.i16],t.contextualType=p.v128,jr(t)}g.set(d.i32x4_extend_low_i16x8_s,qv);function Wv(t){return v(t),t.typeArguments=[p.u16],t.contextualType=p.v128,jr(t)}g.set(d.i32x4_extend_low_i16x8_u,Wv);function Kv(t){return v(t),t.typeArguments=[p.i16],t.contextualType=p.v128,Hr(t)}g.set(d.i32x4_extend_high_i16x8_s,Kv);function jv(t){return v(t),t.typeArguments=[p.u16],t.contextualType=p.v128,Hr(t)}g.set(d.i32x4_extend_high_i16x8_u,jv);function Hv(t){return v(t),t.typeArguments=[p.i16],t.contextualType=p.v128,Ss(t)}g.set(d.i32x4_extadd_pairwise_i16x8_s,Hv);function Qv(t){return v(t),t.typeArguments=[p.u16],t.contextualType=p.v128,Ss(t)}g.set(d.i32x4_extadd_pairwise_i16x8_u,Qv);function Xv(t){return v(t),t.typeArguments=[p.i16],t.contextualType=p.v128,Qr(t)}g.set(d.i32x4_extmul_low_i16x8_s,Xv);function Jv(t){return v(t),t.typeArguments=[p.u16],t.contextualType=p.v128,Qr(t)}g.set(d.i32x4_extmul_low_i16x8_u,Jv);function Zv(t){return v(t),t.typeArguments=[p.i16],t.contextualType=p.v128,Xr(t)}g.set(d.i32x4_extmul_high_i16x8_s,Zv);function Yv(t){return v(t),t.typeArguments=[p.u16],t.contextualType=p.v128,Xr(t)}g.set(d.i32x4_extmul_high_i16x8_u,Yv);function $v(t){return v(t),t.typeArguments=[p.i32],t.contextualType=p.v128,zr(t)}g.set(d.i32x4_shuffle,$v);function e3(t){return v(t),t.typeArguments=[p.i64],t.contextualType=p.v128,Mr(t)}g.set(d.i64x2_splat,e3);function t3(t){return v(t),t.typeArguments=[p.i64],t.contextualType=p.i64,Wt(t)}g.set(d.i64x2_extract_lane,t3);function r3(t){return v(t),t.typeArguments=[p.i64],t.contextualType=p.v128,Gr(t)}g.set(d.i64x2_replace_lane,r3);function i3(t){return v(t),t.typeArguments=[p.i64],t.contextualType=p.v128,Ur(t)}g.set(d.i64x2_add,i3);function n3(t){return v(t),t.typeArguments=[p.i64],t.contextualType=p.v128,Vr(t)}g.set(d.i64x2_sub,n3);function s3(t){return v(t),t.typeArguments=[p.i64],t.contextualType=p.v128,Mi(t)}g.set(d.i64x2_mul,s3);function a3(t){return v(t),t.typeArguments=[p.i64],t.contextualType=p.v128,Kr(t)}g.set(d.i64x2_abs,a3);function l3(t){return v(t),t.typeArguments=[p.i64],t.contextualType=p.v128,Wr(t)}g.set(d.i64x2_neg,l3);function o3(t){return v(t),t.typeArguments=[p.i64],t.contextualType=p.v128,As(t)}g.set(d.i64x2_shl,o3);function u3(t){return v(t),t.typeArguments=[p.i64],t.contextualType=p.v128,Ht(t)}g.set(d.i64x2_shr_s,u3);function p3(t){return v(t),t.typeArguments=[p.u64],t.contextualType=p.v128,Ht(t)}g.set(d.i64x2_shr_u,p3);function c3(t){return v(t),t.typeArguments=[p.i64],t.contextualType=p.i32,Es(t)}g.set(d.i64x2_all_true,c3);function _3(t){return v(t),t.typeArguments=[p.i64],t.contextualType=p.i32,vs(t)}g.set(d.i64x2_bitmask,_3);function f3(t){return v(t),t.typeArguments=[p.i64],t.contextualType=p.v128,Or(t)}g.set(d.i64x2_eq,f3);function h3(t){return v(t),t.typeArguments=[p.i64],t.contextualType=p.v128,qr(t)}g.set(d.i64x2_ne,h3);function d3(t){return v(t),t.typeArguments=[p.i64],t.contextualType=p.v128,xt(t)}g.set(d.i64x2_lt_s,d3);function m3(t){return v(t),t.typeArguments=[p.i64],t.contextualType=p.v128,Tt(t)}g.set(d.i64x2_le_s,m3);function y3(t){return v(t),t.typeArguments=[p.i64],t.contextualType=p.v128,At(t)}g.set(d.i64x2_gt_s,y3);function g3(t){return v(t),t.typeArguments=[p.i64],t.contextualType=p.v128,Et(t)}g.set(d.i64x2_ge_s,g3);function b3(t){return v(t),t.typeArguments=[p.i32],t.contextualType=p.v128,jr(t)}g.set(d.i64x2_extend_low_i32x4_s,b3);function x3(t){return v(t),t.typeArguments=[p.u32],t.contextualType=p.v128,jr(t)}g.set(d.i64x2_extend_low_i32x4_u,x3);function T3(t){return v(t),t.typeArguments=[p.i32],t.contextualType=p.v128,Hr(t)}g.set(d.i64x2_extend_high_i32x4_s,T3);function A3(t){return v(t),t.typeArguments=[p.u32],t.contextualType=p.v128,Hr(t)}g.set(d.i64x2_extend_high_i32x4_u,A3);function E3(t){return v(t),t.typeArguments=[p.i32],t.contextualType=p.v128,Qr(t)}g.set(d.i64x2_extmul_low_i32x4_s,E3);function v3(t){return v(t),t.typeArguments=[p.u32],t.contextualType=p.v128,Qr(t)}g.set(d.i64x2_extmul_low_i32x4_u,v3);function S3(t){return v(t),t.typeArguments=[p.i32],t.contextualType=p.v128,Xr(t)}g.set(d.i64x2_extmul_high_i32x4_s,S3);function I3(t){return v(t),t.typeArguments=[p.u32],t.contextualType=p.v128,Xr(t)}g.set(d.i64x2_extmul_high_i32x4_u,I3);function R3(t){return v(t),t.typeArguments=[p.i64],t.contextualType=p.v128,zr(t)}g.set(d.i64x2_shuffle,R3);function F3(t){return v(t),t.typeArguments=[p.f32],t.contextualType=p.v128,Mr(t)}g.set(d.f32x4_splat,F3);function k3(t){return v(t),t.typeArguments=[p.f32],t.contextualType=p.f32,Wt(t)}g.set(d.f32x4_extract_lane,k3);function w3(t){return v(t),t.typeArguments=[p.f32],t.contextualType=p.v128,Gr(t)}g.set(d.f32x4_replace_lane,w3);function C3(t){return v(t),t.typeArguments=[p.f32],t.contextualType=p.v128,Ur(t)}g.set(d.f32x4_add,C3);function P3(t){return v(t),t.typeArguments=[p.f32],t.contextualType=p.v128,Vr(t)}g.set(d.f32x4_sub,P3);function B3(t){return v(t),t.typeArguments=[p.f32],t.contextualType=p.v128,Mi(t)}g.set(d.f32x4_mul,B3);function L3(t){return v(t),t.typeArguments=[p.f32],t.contextualType=p.v128,gc(t)}g.set(d.f32x4_div,L3);function N3(t){return v(t),t.typeArguments=[p.f32],t.contextualType=p.v128,Wr(t)}g.set(d.f32x4_neg,N3);function M3(t){return v(t),t.typeArguments=[p.f32],t.contextualType=p.v128,Kt(t)}g.set(d.f32x4_min,M3);function G3(t){return v(t),t.typeArguments=[p.f32],t.contextualType=p.v128,jt(t)}g.set(d.f32x4_max,G3);function z3(t){return v(t),t.typeArguments=[p.f32],t.contextualType=p.v128,bc(t)}g.set(d.f32x4_pmin,z3);function D3(t){return v(t),t.typeArguments=[p.f32],t.contextualType=p.v128,xc(t)}g.set(d.f32x4_pmax,D3);function U3(t){return v(t),t.typeArguments=[p.f32],t.contextualType=p.v128,Kr(t)}g.set(d.f32x4_abs,U3);function V3(t){return v(t),t.typeArguments=[p.f32],t.contextualType=p.v128,Ac(t)}g.set(d.f32x4_sqrt,V3);function O3(t){return v(t),t.typeArguments=[p.f32],t.contextualType=p.v128,Ec(t)}g.set(d.f32x4_ceil,O3);function q3(t){return v(t),t.typeArguments=[p.f32],t.contextualType=p.v128,vc(t)}g.set(d.f32x4_floor,q3);function W3(t){return v(t),t.typeArguments=[p.f32],t.contextualType=p.v128,Sc(t)}g.set(d.f32x4_trunc,W3);function K3(t){return v(t),t.typeArguments=[p.f32],t.contextualType=p.v128,Ic(t)}g.set(d.f32x4_nearest,K3);function j3(t){return v(t),t.typeArguments=[p.f32],t.contextualType=p.v128,Or(t)}g.set(d.f32x4_eq,j3);function H3(t){return v(t),t.typeArguments=[p.f32],t.contextualType=p.v128,qr(t)}g.set(d.f32x4_ne,H3);function Q3(t){return v(t),t.typeArguments=[p.f32],t.contextualType=p.v128,xt(t)}g.set(d.f32x4_lt,Q3);function X3(t){return v(t),t.typeArguments=[p.f32],t.contextualType=p.v128,Tt(t)}g.set(d.f32x4_le,X3);function J3(t){return v(t),t.typeArguments=[p.f32],t.contextualType=p.v128,At(t)}g.set(d.f32x4_gt,J3);function Z3(t){return v(t),t.typeArguments=[p.f32],t.contextualType=p.v128,Et(t)}g.set(d.f32x4_ge,Z3);function Y3(t){return v(t),t.typeArguments=[p.i32],t.contextualType=p.v128,Rc(t)}g.set(d.f32x4_convert_i32x4_s,Y3);function $3(t){return v(t),t.typeArguments=[p.u32],t.contextualType=p.v128,Rc(t)}g.set(d.f32x4_convert_i32x4_u,$3);function eS(t){return v(t),t.typeArguments=[p.f64],t.contextualType=p.v128,pg(t)}g.set(d.f32x4_demote_f64x2_zero,eS);function tS(t){return v(t),t.typeArguments=[p.f32],t.contextualType=p.v128,zr(t)}g.set(d.f32x4_shuffle,tS);function rS(t){return v(t),t.typeArguments=[p.f64],t.contextualType=p.v128,Mr(t)}g.set(d.f64x2_splat,rS);function iS(t){return v(t),t.typeArguments=[p.f64],t.contextualType=p.f64,Wt(t)}g.set(d.f64x2_extract_lane,iS);function nS(t){return v(t),t.typeArguments=[p.f64],t.contextualType=p.v128,Gr(t)}g.set(d.f64x2_replace_lane,nS);function sS(t){return v(t),t.typeArguments=[p.f64],t.contextualType=p.v128,Ur(t)}g.set(d.f64x2_add,sS);function aS(t){return v(t),t.typeArguments=[p.f64],t.contextualType=p.v128,Vr(t)}g.set(d.f64x2_sub,aS);function lS(t){return v(t),t.typeArguments=[p.f64],t.contextualType=p.v128,Mi(t)}g.set(d.f64x2_mul,lS);function oS(t){return v(t),t.typeArguments=[p.f64],t.contextualType=p.v128,gc(t)}g.set(d.f64x2_div,oS);function uS(t){return v(t),t.typeArguments=[p.f64],t.contextualType=p.v128,Wr(t)}g.set(d.f64x2_neg,uS);function pS(t){return v(t),t.typeArguments=[p.f64],t.contextualType=p.v128,Kt(t)}g.set(d.f64x2_min,pS);function cS(t){return v(t),t.typeArguments=[p.f64],t.contextualType=p.v128,jt(t)}g.set(d.f64x2_max,cS);function _S(t){return v(t),t.typeArguments=[p.f64],t.contextualType=p.v128,bc(t)}g.set(d.f64x2_pmin,_S);function fS(t){return v(t),t.typeArguments=[p.f64],t.contextualType=p.v128,xc(t)}g.set(d.f64x2_pmax,fS);function hS(t){return v(t),t.typeArguments=[p.f64],t.contextualType=p.v128,Kr(t)}g.set(d.f64x2_abs,hS);function dS(t){return v(t),t.typeArguments=[p.f64],t.contextualType=p.v128,Ac(t)}g.set(d.f64x2_sqrt,dS);function mS(t){return v(t),t.typeArguments=[p.f64],t.contextualType=p.v128,Ec(t)}g.set(d.f64x2_ceil,mS);function yS(t){return v(t),t.typeArguments=[p.f64],t.contextualType=p.v128,vc(t)}g.set(d.f64x2_floor,yS);function gS(t){return v(t),t.typeArguments=[p.f64],t.contextualType=p.v128,Sc(t)}g.set(d.f64x2_trunc,gS);function bS(t){return v(t),t.typeArguments=[p.f64],t.contextualType=p.v128,Ic(t)}g.set(d.f64x2_nearest,bS);function xS(t){return v(t),t.typeArguments=[p.f64],t.contextualType=p.v128,Or(t)}g.set(d.f64x2_eq,xS);function TS(t){return v(t),t.typeArguments=[p.f64],t.contextualType=p.v128,qr(t)}g.set(d.f64x2_ne,TS);function AS(t){return v(t),t.typeArguments=[p.f64],t.contextualType=p.v128,xt(t)}g.set(d.f64x2_lt,AS);function ES(t){return v(t),t.typeArguments=[p.f64],t.contextualType=p.v128,Tt(t)}g.set(d.f64x2_le,ES);function vS(t){return v(t),t.typeArguments=[p.f64],t.contextualType=p.v128,At(t)}g.set(d.f64x2_gt,vS);function SS(t){return v(t),t.typeArguments=[p.f64],t.contextualType=p.v128,Et(t)}g.set(d.f64x2_ge,SS);function IS(t){return v(t),t.typeArguments=[p.i32],t.contextualType=p.v128,Fc(t)}g.set(d.f64x2_convert_low_i32x4_s,IS);function RS(t){return v(t),t.typeArguments=[p.u32],t.contextualType=p.v128,Fc(t)}g.set(d.f64x2_convert_low_i32x4_u,RS);function FS(t){return v(t),t.typeArguments=[p.f32],t.contextualType=p.v128,cg(t)}g.set(d.f64x2_promote_low_f32x4,FS);function kS(t){return v(t),t.typeArguments=[p.f64],t.contextualType=p.v128,zr(t)}g.set(d.f64x2_shuffle,kS);function wS(t){return v(t),t.typeArguments=null,t.contextualType=p.v128,fg(t)}g.set(d.i8x16_relaxed_swizzle,wS);function CS(t){return v(t),t.typeArguments=[p.i32],t.contextualType=p.v128,Cc(t)}g.set(d.i32x4_relaxed_trunc_f32x4_s,CS);function PS(t){return v(t),t.typeArguments=[p.u32],t.contextualType=p.v128,Cc(t)}g.set(d.i32x4_relaxed_trunc_f32x4_u,PS);function BS(t){return v(t),t.typeArguments=[p.i32],t.contextualType=p.v128,Pc(t)}g.set(d.i32x4_relaxed_trunc_f64x2_s_zero,BS);function LS(t){return v(t),t.typeArguments=[p.u32],t.contextualType=p.v128,Pc(t)}g.set(d.i32x4_relaxed_trunc_f64x2_u_zero,LS);function NS(t){return v(t),t.typeArguments=[p.f32],t.contextualType=p.v128,Bc(t)}g.set(d.f32x4_relaxed_madd,NS);function MS(t){return v(t),t.typeArguments=[p.f32],t.contextualType=p.v128,Lc(t)}g.set(d.f32x4_relaxed_nmadd,MS);function GS(t){return v(t),t.typeArguments=[p.f64],t.contextualType=p.v128,Bc(t)}g.set(d.f64x2_relaxed_madd,GS);function zS(t){return v(t),t.typeArguments=[p.f64],t.contextualType=p.v128,Lc(t)}g.set(d.f64x2_relaxed_nmadd,zS);function DS(t){return v(t),t.typeArguments=[p.i8],t.contextualType=p.v128,Is(t)}g.set(d.i8x16_relaxed_laneselect,DS);function US(t){return v(t),t.typeArguments=[p.i16],t.contextualType=p.v128,Is(t)}g.set(d.i16x8_relaxed_laneselect,US);function VS(t){return v(t),t.typeArguments=[p.i32],t.contextualType=p.v128,Is(t)}g.set(d.i32x4_relaxed_laneselect,VS);function OS(t){return v(t),t.typeArguments=[p.i64],t.contextualType=p.v128,Is(t)}g.set(d.i64x2_relaxed_laneselect,OS);function qS(t){return v(t),t.typeArguments=[p.f32],t.contextualType=p.v128,Nc(t)}g.set(d.f32x4_relaxed_min,qS);function WS(t){return v(t),t.typeArguments=[p.f32],t.contextualType=p.v128,Mc(t)}g.set(d.f32x4_relaxed_max,WS);function KS(t){return v(t),t.typeArguments=[p.f64],t.contextualType=p.v128,Nc(t)}g.set(d.f64x2_relaxed_min,KS);function jS(t){return v(t),t.typeArguments=[p.f64],t.contextualType=p.v128,Mc(t)}g.set(d.f64x2_relaxed_max,jS);function HS(t){return v(t),t.typeArguments=[p.i16],t.contextualType=p.v128,hg(t)}g.set(d.i16x8_relaxed_q15mulr_s,HS);function QS(t){return v(t),t.typeArguments=[p.i16],t.contextualType=p.v128,dg(t)}g.set(d.i16x8_relaxed_dot_i8x16_i7x16_s,QS);function XS(t){return v(t),t.typeArguments=[p.i32],t.contextualType=p.v128,mg(t)}g.set(d.i32x4_relaxed_dot_i8x16_i7x16_add_s,XS);function yg(t){let i=t.module,e=new Array,r=t.options.sizeTypeRef,n=assert(t.program.visitInstance);t.compileFunction(n,!0);for(let s=Map_values(t.program.elementsByName),a=0,l=s.length;a<l;++a){let o=unchecked(s[a]);if(o.kind!=0)continue;let u=o,_=u.type.getClass();if(_&&!_.hasDecorator(16)&&u.is(8388608))if(u.is(33554432)){let f=u.constantIntegerValue;(i64_low(f)||i64_high(f))&&e.push(i.call(n.internalName,[t.options.isWasm64?i.i64(i64_low(f),i64_high(f)):i.i32(i64_low(f)),i.local_get(0,L.I32)],L.None))}else e.push(i.if(i.local_tee(1,i.global_get(u.internalName,r),!1),i.call(n.internalName,[i.local_get(1,r),i.local_get(0,L.I32)],L.None)))}i.addFunction(d.visit_globals,L.I32,L.None,[r],e.length?i.block(null,e):i.nop())}function gg(t,i){if(assert(i.type.isManaged),i.visitRef)return;let e=t.program,r=t.module,n=e.options.usizeType,s=n.toRef(),a=n.byteSize,l=assert(e.visitInstance),o=new Array,u=i.base;u&&o.push(r.call(`${u.internalName}~visit`,[r.local_get(0,s),r.local_get(1,L.I32)],L.None));let c=!1;if(i.isDeclaredInLibrary){let f=i.getMember("__visit");if(f){assert(f.kind==4);let h=e.resolver.resolveFunction(f,null);if(!h||!t.compileFunction(h))o.push(r.unreachable());else{let y=h.signature,x=assert(y.thisType);assert(y.parameterTypes.length==1&&y.parameterTypes[0]==p.u32&&y.returnType==p.void&&i.type.isStrictlyAssignableTo(x)),o.push(r.call(h.internalName,[r.local_get(0,s),r.local_get(1,L.I32)],L.None))}c=!0}}let _=!1;if(!c){let f=i.members;if(f)for(let h=Map_values(f),y=0,x=h.length;y<x;++y){let b=unchecked(h[y]);if(b.kind!=10)continue;let A=b.instance;if(!A)continue;let I=A.type;if(!A.isField||A.getBoundClassOrInterface()!=i||!I.isManaged)continue;let E=A.memoryOffset;assert(E>=0),_=!0,o.push(r.call(l.internalName,[r.load(a,!1,r.local_get(0,s),s,E),r.local_get(1,L.I32)],L.None))}}i.visitRef=r.addFunction(`${i.internalName}~visit`,He([s,L.I32]),L.None,_?[s]:null,r.flatten(o,L.None)),u&&u.type.isManaged&&gg(t,u)}function bg(t){let i=t.program,e=t.module,n=i.options.usizeType.toRef(),s=i.managedClasses,a=assert(i.visitInstance);t.compileFunction(a,!0);let l=new Array,o=new Array,u=0;for(let _=Map_keys(s),f=0,h=_.length;f<h;++f){let y=_[f];assert(y==u++);let x=assert(s.get(y));l[f]=x.internalName,x.isPointerfree?o[f]=e.return():(o[f]=e.block(null,[e.call(`${x.internalName}~visit`,[e.local_get(0,n),e.local_get(1,L.I32)],L.None),e.return()],L.None),gg(t,x))}let c=e.block(l[0],[e.switch(l,"invalid",e.load(4,!1,n==L.I64?e.binary(26,e.local_get(0,n),e.i64(8)):e.binary(1,e.local_get(0,n),e.i32(8)),L.I32,0))],L.None);for(let _=0,f=l.length-1;_<f;++_)c=e.block(l[_+1],[c,o[_]],L.None);c=e.block("invalid",[c,o[l.length-1]],L.None),e.addFunction(d.visit_members,He([n,L.I32]),L.None,null,e.flatten([c,e.unreachable()]))}function Bi(t){let i=64*(1<<t.alignLog2);return t.is(1)&&(i|=2048),t.is(8)&&(i|=4096),t.is(512)&&(i|=8192),t.isManaged&&(i|=16384),i/64}function xg(t){let i=t.program,e=t.module,r=i.managedClasses,n=r.size,s=4+4*n,a=new Uint8Array(s);me(n,a,0);let l=4,o=i.arrayBufferViewInstance,u=o.prototype,c=i.arrayPrototype,_=i.setPrototype,f=i.mapPrototype,h=i.staticArrayPrototype,y=0;for(let A=Map_keys(r),I=0,E=A.length;I<E;++I){let k=unchecked(A[I]),F=assert(r.get(k));assert(k==y++);let R=0;if(F.isPointerfree&&(R|=32),F!=o&&F.extendsPrototype(u)){let G=F.getArrayValueType();R|=1,R|=64*Bi(G)}else if(F.extendsPrototype(c)){let G=F.getArrayValueType();R|=2,R|=64*Bi(G)}else if(F.extendsPrototype(_)){let G=assert(F.getTypeArgumentsTo(_));assert(G.length==1),R|=8,R|=64*Bi(G[0])}else if(F.extendsPrototype(f)){let G=assert(F.getTypeArgumentsTo(f));assert(G.length==2),R|=16,R|=32768*Bi(G[0]),R|=64*Bi(G[1])}else if(F.extendsPrototype(h)){let G=F.getArrayValueType();R|=4,R|=64*Bi(G)}me(R,a,l),l+=4,F.rttiFlags=R}assert(l==s);let x=i.options.usizeType,b=t.addAlignedMemorySegment(a);if(x.size==8){let A=b.offset;e.addGlobal(d.rtti_base,L.I64,!1,e.i64(i64_low(A),i64_high(A)))}else e.addGlobal(d.rtti_base,L.I32,!1,e.i32(i64_low(b.offset)))}function Be(t){let i=t.compiler,e=t.operands,r=t.typeArguments;if(Li=0,e.length==0)return!r||r.length!=1?(i.error(2558,t.reportNode.typeArgumentsRange,"1",r?r.length.toString():"0"),null):r[0];if(e.length==1){if(r&&r.length>0){if(r.length>1)return i.error(2558,t.reportNode.typeArgumentsRange,"1",r.length.toString()),null;Li=i.compileExpression(e[0],r[0],1)}else Li=i.compileExpression(e[0],p.auto);return i.currentType}return r&&r.length>1&&i.error(2558,t.reportNode.typeArgumentsRange,"1",r.length.toString()),i.error(2554,t.reportNode.argumentsRange,"1",e.length.toString()),null}function Fe(t,i){let e=t.compiler.module;return Li&&Gl(Li,e.ref)&&(i=e.block(null,[e.maybeDrop(Li),i],se(i))),i}function tt(t,i){let e=i.module,r;if(i.options.isWasm64){let n=i.compileExpression(t,p.usize64,1),s=e.runExpression(n,1);s?(assert(we(s)==0),r=ve(s)):(i.error(220,t.range),r=-1)}else{let n=i.compileExpression(t,p.usize32,1),s=e.runExpression(n,1);s?r=ne(s):(i.error(220,t.range),r=-1)}return r}function Ot(t,i,e){let r=tt(t,e);return r<0?r:r<1||i>16?(e.error(222,t.range,"Alignment","1",i.toString()),-1):Pt(r)?r:(e.error(223,t.range,"Alignment"),-1)}function X(t,i){let e=t.compiler;return e.options.hasFeature(i)?0:(e.error(103,t.reportNode.range,oi(i)),1)}function J(t,i=!1){let e=t.compiler,r=t.typeArguments;if(r){let n=r.length;if(n==1)return 0;assert(n),i&&(e.currentType=r[0]),e.error(2558,t.reportNode.typeArgumentsRange,"1",n.toString())}else e.error(2558,t.reportNode.range,"1","0");return 1}function ae(t,i=!1){let e=t.typeArguments;if(e){let r=t.compiler,n=e.length;return n==1?0:(assert(n),i&&(r.currentType=e[0]),r.error(2558,t.reportNode.typeArgumentsRange,"1",n.toString()),1)}return 0}function v(t){if(t.typeArguments){let e=t.prototype;return e.program.error(2315,t.reportNode.typeArgumentsRange,e.internalName),1}return 0}function K(t,i){let e=t.operands;return e.length!=i?(t.compiler.error(2554,t.reportNode.range,i.toString(),e.length.toString()),1):0}function Se(t,i,e){let n=t.operands.length;return n<i?(t.compiler.error(2555,t.reportNode.range,i.toString(),n.toString()),1):n>e?(t.compiler.error(2554,t.reportNode.range,e.toString(),n.toString()),1):0}function Zl(t,i,e){let r=t.module;if(e!=p.auto&&e.isIntegerValue)switch(e.kind){case 3:{if(i64_is_i32(i))return t.currentType=p.i32,r.i32(i64_low(i));break}case 8:{if(i64_is_u32(i))return t.currentType=p.u32,r.i32(i64_low(i));break}case 4:case 9:return t.currentType=e,r.i64(i64_low(i),i64_high(i))}return t.options.isWasm64?(t.currentType=p.usize64,r.i64(i64_low(i),i64_high(i))):(t.currentType=p.usize32,assert(!i64_high(i)),r.i32(i64_low(i)))}function JS(t){let i=2166136261;for(let e=0,r=t.length;e<r;++e)i=Math.imul(i^t.charCodeAt(e),16777619)>>>0;return i>>>0}function ZS(t){switch(t){case"Record":return 0;case"View":return 1;case"Events":return 2;case"Counter":return 3;case"Membership":return 4;case"Unique":return 5;case"Capacity":return 6;default:return-1}}function Tg(t,i){if(t==null)return!1;for(let e=0,r=t.length;e<r;++e)if(t[e].decoratorKind==i)return!0;return!1}var Uc=class{constructor(){this.name="";this.family=0;this.keyType="";this.valueType=""}},Vc=class{constructor(){this.name="";this.collections=new Array}},Oc=class{constructor(){this.bytes=new Array}u8(i){this.bytes.push(i&255)}u16(i){this.u8(i&255),this.u8(i>>>8&255)}u32(i){this.u8(i&255),this.u8(i>>>8&255),this.u8(i>>>16&255),this.u8(i>>>24&255)}str(i){this.u32(i.length);for(let e=0,r=i.length;e<r;++e)this.u8(i.charCodeAt(e)&255)}toBytes(){let i=this.bytes.length,e=new Uint8Array(i);for(let r=0;r<i;++r)e[r]=this.bytes[r];return e}};function Dc(t,i){let e=t.typeArguments;if(e!=null&&e.length>i){let r=e[i];if(r instanceof de)return r.name.identifier.text}return""}function Ag(t){let i=new Array,e=t.sources;for(let n=0,s=e.length;n<s;++n){let a=e[n];if(a.isLibrary)continue;let l=a.statements;for(let o=0,u=l.length;o<u;++o){let c=l[o];if(c.kind!=52)continue;let _=c;if(!Tg(_.decorators,31))continue;let f=new Vc;f.name=_.name.text;let h=_.members;for(let y=0,x=h.length;y<x;++y){let b=h[y];if(b.kind!=55)continue;let A=b;if(!Tg(A.decorators,32))continue;let I=A.type;if(I==null||!(I instanceof de))continue;let E=I,k=ZS(E.name.identifier.text);if(k<0)continue;let F=new Uc;F.name=A.name.text,F.family=k,k==3||k==6?(F.keyType=Dc(E,0),F.valueType="i64"):(F.valueType=Dc(E,0),F.keyType=Dc(E,1)),f.collections.push(F)}f.collections.length>0&&i.push(f)}}if(i.length==0)return null;let r=new Oc;r.u16(1),r.u16(i.length);for(let n=0,s=i.length;n<s;++n){let a=i[n];r.str(a.name),r.u16(a.collections.length);for(let l=0,o=a.collections.length;l<o;++l){let u=a.collections[l];r.str(u.name),r.u8(u.family),r.str(u.keyType),r.str(u.valueType);let c=JS(u.valueType);r.u32(c),r.u32(c),r.u32(0),r.u8(0),r.u8(0),r.u16(0)}}return r.toBytes()}var qc=class{constructor(){this.stack=new Array;this._currentExpression=0}get currentExpression(){let i=this._currentExpression;if(!i)throw new Error("not walking expressions");return i}get parentExpressionOrNull(){let i=this.stack,e=i.length;return e?i[e-1]:0}visitBlock(i){}visitIf(i){}visitLoop(i){}visitBreak(i){}visitSwitch(i){}visitCallPre(i){}visitCall(i){}visitCallIndirectPre(i){}visitCallIndirect(i){}visitLocalGet(i){}visitLocalSet(i){}visitGlobalGet(i){}visitGlobalSet(i){}visitLoad(i){}visitStore(i){}visitConst(i){}visitUnary(i){}visitBinary(i){}visitSelect(i){}visitDrop(i){}visitReturn(i){}visitMemorySize(i){}visitMemoryGrow(i){}visitNop(i){}visitUnreachable(i){}visitAtomicRMW(i){}visitAtomicCmpxchg(i){}visitAtomicWait(i){}visitAtomicNotify(i){}visitAtomicFence(i){}visitSIMDExtract(i){}visitSIMDReplace(i){}visitSIMDShuffle(i){}visitSIMDTernary(i){}visitSIMDShift(i){}visitSIMDLoad(i){}visitSIMDLoadStoreLane(i){}visitMemoryInit(i){}visitDataDrop(i){}visitMemoryCopy(i){}visitMemoryFill(i){}visitPop(i){}visitRefNull(i){}visitRefIsNull(i){}visitRefFunc(i){}visitRefEq(i){}visitTry(i){}visitThrow(i){}visitRethrow(i){}visitTupleMake(i){}visitTupleExtract(i){}visitRefI31(i){}visitI31Get(i){}visitCallRef(i){}visitRefTest(i){}visitRefCast(i){}visitBrOn(i){}visitStructNew(i){}visitStructGet(i){}visitStructSet(i){}visitArrayNew(i){}visitArrayNewFixed(i){}visitArrayGet(i){}visitArraySet(i){}visitArrayLen(i){}visitArrayCopy(i){}visitRefAs(i){}visitStringNew(i){}visitStringConst(i){}visitStringMeasure(i){}visitStringEncode(i){}visitStringConcat(i){}visitStringEq(i){}visitStringAs(i){}visitStringWTF8Advance(i){}visitStringWTF16Get(i){}visitStringIterNext(i){}visitStringIterMove(i){}visitStringSliceWTF(i){}visitStringSliceIter(i){}visitName(i){}visitLabel(i){}visitIndex(i){}visitTag(i){}visit(i){let e=this._currentExpression;switch(this._currentExpression=assert(i),Ft(i)){case 1:{this.stack.push(i);let r=Gs(i);r&&this.visitLabel(r);for(let n=0,s=Yi(i);n<s;++n)this.visit($i(i,n));assert(this.stack.pop()==i),this.visitBlock(i);break}case 2:{this.stack.push(i),this.visit(en(i)),this.visit(tn(i));let r=rn(i);r&&this.visit(r),assert(this.stack.pop()==i),this.visitIf(i);break}case 3:{this.stack.push(i);let r=zs(i);r&&this.visitLabel(r),this.visit(nn(i)),assert(this.stack.pop()==i),this.visitLoop(i);break}case 4:{this.stack.push(i),this.visitLabel(Ds(i));let r=sn(i);r&&this.visit(r);let n=po(i);n&&this.visit(n),assert(this.stack.pop()==i),this.visitBreak(i);break}case 5:{this.stack.push(i);let r=D_(i);r&&this.visitLabel(r);let n=G_(i);for(let a=0;a<n;++a)this.visitLabel(z_(i,a));this.visit(co(i));let s=_o(i);s&&this.visit(s),assert(this.stack.pop()==i),this.visitSwitch(i);break}case 6:{this.visitCallPre(i),this.stack.push(i),this.visitName($r(i));let r=Xt(i);for(let n=0;n<r;++n)this.visit(Jt(i,n));assert(this.stack.pop()==i),this.visitCall(i);break}case 7:{this.visitCallIndirectPre(i),this.stack.push(i),this.visit(fo(i));for(let r=0,n=an(i);r<n;++r)this.visit(ln(i,r));assert(this.stack.pop()==i),this.visitCallIndirect(i);break}case 8:{this.stack.push(i),this.visitIndex(Os(i)),assert(this.stack.pop()==i),this.visitLocalGet(i);break}case 9:{this.stack.push(i),this.visitIndex(ei(i)),this.visit(yr(i)),assert(this.stack.pop()==i),this.visitLocalSet(i);break}case 10:{this.stack.push(i),this.visitName(Ks(i)),assert(this.stack.pop()==i),this.visitGlobalGet(i);break}case 11:{this.stack.push(i),this.visitName(Z_(i)),this.visit(ho(i)),assert(this.stack.pop()==i),this.visitGlobalSet(i);break}case 12:{this.stack.push(i),this.visit(pn(i)),assert(this.stack.pop()==i),this.visitLoad(i);break}case 13:{this.stack.push(i),this.visit(gr(i)),this.visit(cn(i)),assert(this.stack.pop()==i),this.visitStore(i);break}case 14:{this.visitConst(i);break}case 15:{this.stack.push(i),this.visit(_n(i)),assert(this.stack.pop()==i),this.visitUnary(i);break}case 16:{this.stack.push(i),this.visit(fn(i)),this.visit(hn(i)),assert(this.stack.pop()==i),this.visitBinary(i);break}case 17:{this.stack.push(i),this.visit(dn(i)),this.visit(mn(i)),this.visit(yn(i)),assert(this.stack.pop()==i),this.visitSelect(i);break}case 18:{this.stack.push(i),this.visit(gn(i)),assert(this.stack.pop()==i),this.visitDrop(i);break}case 19:{let r=br(i);r&&(this.stack.push(i),this.visit(r),assert(this.stack.pop()==i)),this.visitReturn(i);break}case 20:{this.visitMemorySize(i);break}case 21:{this.stack.push(i),this.visit(un(i)),assert(this.stack.pop()==i),this.visitMemoryGrow(i);break}case 22:{this.visitNop(i);break}case 23:{this.visitUnreachable(i);break}case 24:{this.stack.push(i),this.visit(yo(i)),this.visit(go(i)),assert(this.stack.pop()==i),this.visitAtomicRMW(i);break}case 25:{this.stack.push(i),this.visit(bo(i)),this.visit(xo(i)),this.visit(To(i)),assert(this.stack.pop()==i),this.visitAtomicCmpxchg(i);break}case 26:{this.stack.push(i),this.visit(Ao(i)),this.visit(Eo(i)),this.visit(vo(i)),assert(this.stack.pop()==i),this.visitAtomicWait(i);break}case 27:{this.stack.push(i),this.visit(So(i)),this.visit(Io(i)),assert(this.stack.pop()==i),this.visitAtomicNotify(i);break}case 28:{this.visitAtomicFence(i);break}case 30:{this.stack.push(i),this.visit(Ro(i)),assert(this.stack.pop()==i),this.visitSIMDExtract(i);break}case 31:{this.stack.push(i),this.visit(Fo(i)),this.visit(ko(i)),assert(this.stack.pop()==i),this.visitSIMDReplace(i);break}case 32:{this.stack.push(i),this.visit(wo(i)),this.visit(Co(i)),assert(this.stack.pop()==i),this.visitSIMDShuffle(i);break}case 33:{this.stack.push(i),this.visit(Po(i)),this.visit(Bo(i)),this.visit(Lo(i)),assert(this.stack.pop()==i),this.visitSIMDTernary(i);break}case 34:{this.stack.push(i),this.visit(No(i)),this.visit(Mo(i)),assert(this.stack.pop()==i),this.visitSIMDShift(i);break}case 35:{this.stack.push(i),this.visit(Go(i)),assert(this.stack.pop()==i),this.visitSIMDLoad(i);break}case 36:{this.stack.push(i),this.visit(zo(i)),this.visit(Do(i)),assert(this.stack.pop()==i),this.visitSIMDLoadStoreLane(i);break}case 37:{this.stack.push(i),this.visit(Uo(i)),this.visit(Vo(i)),this.visit(Oo(i)),assert(this.stack.pop()==i),this.visitMemoryInit(i);break}case 38:{this.visitDataDrop(i);break}case 39:{this.stack.push(i),this.visit(qo(i)),this.visit(Wo(i)),this.visit(Ko(i)),assert(this.stack.pop()==i),this.visitMemoryCopy(i);break}case 40:{this.stack.push(i),this.visit(jo(i)),this.visit(Ho(i)),this.visit(Qo(i)),assert(this.stack.pop()==i),this.visitMemoryFill(i);break}case 41:{this.visitPop(i);break}case 42:{this.visitRefNull(i);break}case 43:{this.stack.push(i),this.visit(Xo(i)),assert(this.stack.pop()==i),this.visitRefIsNull(i);break}case 44:{this.stack.push(i),this.visitName(Fh(i)),assert(this.stack.pop()==i),this.visitRefFunc(i);break}case 45:{this.stack.push(i),this.visit(Yo(i)),this.visit($o(i)),assert(this.stack.pop()==i),this.visitRefEq(i);break}case 54:{this.stack.push(i),this.visit(eu(i));let r=tu(i);for(let n=0;n<r;++n)this.visit(ru(i,n));assert(this.stack.pop()==i),this.visitTry(i);break}case 56:{this.stack.push(i),this.visitTag(Uh(i));let r=iu(i);for(let n=0;n<r;++n)this.visit(nu(i,n));assert(this.stack.pop()==i),this.visitThrow(i);break}case 57:{this.visitRethrow(i);break}case 59:{let r=su(i);if(r){this.stack.push(i);for(let n=0;n<r;++n)this.visit(au(i,n));assert(this.stack.pop()==i)}this.visitTupleMake(i);break}case 60:{this.stack.push(i),this.visit(lu(i)),assert(this.stack.pop()==i),this.visitTupleExtract(i);break}case 61:{this.stack.push(i),this.visit(ou(i)),assert(this.stack.pop()==i),this.visitRefI31(i);break}case 62:{this.stack.push(i),this.visit(uu(i)),assert(this.stack.pop()==i),this.visitI31Get(i);break}case 63:{this.stack.push(i);let r=pu(i);if(r)for(let n=0;n<r;++n)this.visit(cu(i,n));this.visit(_u(i)),assert(this.stack.pop()==i),this.visitCallRef(i);break}case 64:{this.stack.push(i),this.visit(fu(i)),assert(this.stack.pop()==i),this.visitRefTest(i);break}case 65:{this.stack.push(i),this.visit(hu(i)),assert(this.stack.pop()==i),this.visitRefCast(i);break}case 67:{this.stack.push(i),this.visitLabel(rd(i)),this.visit(du(i)),assert(this.stack.pop()==i),this.visitBrOn(i);break}case 68:{let r=mu(i);if(r){this.stack.push(i);for(let n=0;n<r;++n)this.visit(yu(i,n));assert(this.stack.pop()==i)}this.visitStructNew(i);break}case 69:{this.stack.push(i),this.visit(gu(i)),this.visitIndex(sd(i)),assert(this.stack.pop()==i),this.visitStructGet(i);break}case 70:{this.stack.push(i),this.visit(bu(i)),this.visitIndex(ld(i)),this.visit(xu(i)),assert(this.stack.pop()==i),this.visitStructSet(i);break}case 73:{this.stack.push(i),this.visit(Au(i));let r=Tu(i);r&&this.visit(r),assert(this.stack.pop()==i),this.visitArrayNew(i);break}case 76:{let r=Eu(i);if(r){this.stack.push(i);for(let n=0;n<r;++n)this.visit(vu(i,n));assert(this.stack.pop()==i)}this.visitArrayNewFixed(i);break}case 77:{this.stack.push(i),this.visit(Su(i)),this.visit(Iu(i)),assert(this.stack.pop()==i),this.visitArrayGet(i);break}case 78:{this.stack.push(i),this.visit(Ru(i)),this.visit(Fu(i)),this.visit(ku(i)),assert(this.stack.pop()==i),this.visitArraySet(i);break}case 81:{this.stack.push(i),this.visit(wu(i)),assert(this.stack.pop()==i),this.visitArrayLen(i);break}case 82:{this.stack.push(i),this.visit(Cu(i)),this.visit(Pu(i)),this.visit(Bu(i)),this.visit(Lu(i)),this.visit(Nu(i)),assert(this.stack.pop()==i),this.visitArrayCopy(i);break}case 88:{this.stack.push(i),this.visit(Zo(i)),assert(this.stack.pop()==i),this.visitRefAs(i);break}case 89:{this.stack.push(i),this.visit(Mu(i));let r=Gu(i);r&&this.visit(r);let n=zu(i);n&&this.visit(n),assert(this.stack.pop()==i),this.visitStringNew(i);break}case 90:{this.stack.push(i),assert(this.stack.pop()==i),this.visitStringConst(i);break}case 91:{this.stack.push(i),this.visit(Du(i)),assert(this.stack.pop()==i),this.visitStringMeasure(i);break}case 92:{this.stack.push(i),this.visit(Uu(i)),this.visit(Vu(i));let r=Ou(i);r&&this.visit(r),assert(this.stack.pop()==i),this.visitStringEncode(i);break}case 93:{this.stack.push(i),this.visit(qu(i)),this.visit(Wu(i)),assert(this.stack.pop()==i),this.visitStringConcat(i);break}case 94:{this.stack.push(i),this.visit(ju(i)),this.visit(Hu(i)),assert(this.stack.pop()==i),this.visitStringEq(i);break}case 96:{this.stack.push(i),this.visit(Qu(i)),this.visit(Xu(i)),assert(this.stack.pop()==i),this.visitStringWTF16Get(i);break}case 97:{this.stack.push(i),this.visit(Ju(i)),this.visit(Zu(i)),this.visit(Yu(i)),assert(this.stack.pop()==i),this.visitStringSliceWTF(i);break}default:throw new Error("unexpected expression kind")}this._currentExpression=e}},Jr=class extends qc{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 r=0,n=ni(e);r<n;++r)this.walkFunction(xn(e,r))}walkFunction(e){let r=wt(e);r&&(this._currentFunction=e,this.visit(r),this._currentFunction=0)}walkGlobals(){let e=this.module.ref;for(let r=0,n=im(e);r<n;++r)this.walkGlobal(nm(e,r))}walkGlobal(e){this._currentGlobal=e;let r=ta(e);r&&this.visit(r),this._currentGlobal=0}replaceCurrent(e){let r=this.currentExpression,n=this.currentFunction;if(wt(n)==r)En(n,e);else{let a=assert(this.parentExpressionOrNull);if(!YS(a,r,e))throw Error("failed to replace expression");v_(a)}}};function YS(t,i,e){switch(Ft(t)){case 1:{let r=Yi(t);for(let n=0;n<r;++n){let s=$i(t,n);if(s==i)return I_(t,n,e),s}break}case 2:{let r=en(t);if(r==i)return F_(t,e),r;let n=tn(t);if(n==i)return k_(t,e),n;let s=rn(t);if(s==i)return w_(t,e),s;break}case 3:{let r=nn(t);if(r==i)return P_(t,e),r;break}case 4:{let r=sn(t);if(r==i)return L_(t,e),r;let n=po(t);if(n==i)return N_(t,e),n;break}case 5:{let r=co(t);if(r==i)return U_(t,e),r;let n=_o(t);if(n==i)return V_(t,e),n;break}case 6:{let r=Xt(t);for(let n=0;n<r;++n){let s=Jt(t,n);if(s==i)return Us(t,n,e),s}break}case 7:{let r=fo(t);if(r==i)return K_(t,e),r;let n=an(t);for(let s=0;s<n;++s){let a=ln(t,s);if(a==i)return Vs(t,s,e),a}break}case 8:break;case 9:{let r=yr(t);if(r==i)return Ws(t,e),r;break}case 10:break;case 11:{let r=ho(t);if(r==i)return Y_(t,e),r;break}case 12:{let r=pn(t);if(r==i)return lf(t,e),r;break}case 13:{let r=gr(t);if(r==i)return Qs(t,e),r;let n=cn(t);if(n==i)return pf(t,e),n;break}case 14:break;case 15:{let r=_n(t);if(r==i)return gf(t,e),r;break}case 16:{let r=fn(t);if(r==i)return Tf(t,e),r;let n=hn(t);if(n==i)return Af(t,e),n;break}case 17:{let r=dn(t);if(r==i)return vf(t,e),r;let n=mn(t);if(n==i)return Sf(t,e),n;let s=yn(t);if(s==i)return If(t,e),s;break}case 18:{let r=gn(t);if(r==i)return Rf(t,e),r;break}case 19:{let r=br(t);if(r==i)return Xs(t,e),r;break}case 20:break;case 21:{let r=un(t);if(r==i)return tf(t,e),r;break}case 22:break;case 23:break;case 24:{let r=yo(t);if(r==i)return Pf(t,e),r;let n=go(t);if(n==i)return Bf(t,e),n;break}case 25:{let r=bo(t);if(r==i)return Nf(t,e),r;let n=xo(t);if(n==i)return Mf(t,e),n;let s=To(t);if(s==i)return Gf(t,e),s;break}case 26:{let r=Ao(t);if(r==i)return Df(t,e),r;let n=Eo(t);if(n==i)return Uf(t,e),n;let s=vo(t);if(s==i)return Vf(t,e),s;break}case 27:{let r=So(t);if(r==i)return qf(t,e),r;let n=Io(t);if(n==i)return Wf(t,e),n;break}case 28:break;case 30:{let r=Ro(t);if(r==i)return Hf(t,e),r;break}case 31:{let r=Fo(t);if(r==i)return Xf(t,e),r;let n=ko(t);if(n==i)return Jf(t,e),n;break}case 32:{let r=wo(t);if(r==i)return Yf(t,e),r;let n=Co(t);if(n==i)return $f(t,e),n;break}case 33:{let r=Po(t);if(r==i)return th(t,e),r;let n=Bo(t);if(n==i)return rh(t,e),n;let s=Lo(t);if(s==i)return ih(t,e),s;break}case 34:{let r=No(t);if(r==i)return sh(t,e),r;let n=Mo(t);if(n==i)return ah(t,e),n;break}case 35:{let r=Go(t);if(r==i)return oh(t,e),r;break}case 36:{let r=zo(t);if(r==i)return ph(t,e),r;if(Do(t)==i)return ch(t,e),r;break}case 37:{let r=Uo(t);if(r==i)return _h(t,e),r;let n=Vo(t);if(n==i)return fh(t,e),n;let s=Oo(t);if(s==i)return hh(t,e),s;break}case 38:break;case 39:{let r=qo(t);if(r==i)return mh(t,e),r;let n=Wo(t);if(n==i)return yh(t,e),n;let s=Ko(t);if(s==i)return gh(t,e),s;break}case 40:{let r=jo(t);if(r==i)return xh(t,e),r;let n=Ho(t);if(n==i)return Th(t,e),n;let s=Qo(t);if(s==i)return Ah(t,e),s;break}case 41:break;case 42:break;case 43:{let r=Xo(t);if(r==i)return Sh(t,e),r;break}case 44:break;case 45:{let r=Yo(t);if(r==i)return wh(t,e),r;let n=$o(t);if(n==i)return Ch(t,e),n;break}case 54:{let r=eu(t);if(r==i)return Gh(t,e),r;let n=tu(t);for(let s=0;s<n;++s){let a=ru(t,s);if(a==i)return zh(t,s,e),a}break}case 56:{let r=iu(t);for(let n=0;n<r;++n){let s=nu(t,n);if(s==i)return Vh(t,n,e),s}break}case 57:break;case 59:{let r=su(t);for(let n=0;n<r;++n){let s=au(t,n);if(s==i)return Wh(t,n,e),s}break}case 60:{let r=lu(t);if(r==i)return jh(t,e),r;break}case 61:{let r=ou(t);if(r==i)return Xh(t,e),r;break}case 62:{let r=uu(t);if(r==i)return Zh(t,e),r;break}case 63:{let r=pu(t);for(let s=0;s<r;++s){let a=cu(t,s);if(a==i)return Yh(t,s,e),a}let n=_u(t);if(n==i)return $h(t,e),n;break}case 64:{let r=fu(t);if(r==i)return ed(t,e),r;break}case 65:{let r=hu(t);if(r==i)return td(t,e),r;break}case 67:{let r=du(t);if(r==i)return id(t,e),r;break}case 68:{let r=mu(t);for(let n=0;n<r;++n){let s=yu(t,n);if(s==i)return nd(t,n,e),s}break}case 69:{let r=gu(t);if(r==i)return ad(t,e),r;break}case 70:{let r=bu(t);if(r==i)return od(t,e),r;let n=xu(t);if(n==i)return ud(t,e),n;break}case 73:{let r=Au(t);if(r==i)return cd(t,e),r;let n=Tu(t);if(n==i)return pd(t,e),n;break}case 76:{let r=Eu(t);for(let n=0;n<r;++n){let s=vu(t,n);if(s==i)return _d(t,n,e),s}break}case 77:{let r=Su(t);if(r==i)return fd(t,e),r;let n=Iu(t);if(n==i)return hd(t,e),n;break}case 78:{let r=Ru(t);if(r==i)return dd(t,e),r;let n=Fu(t);if(n==i)return md(t,e),n;let s=ku(t);if(s==i)return yd(t,e),s;break}case 81:{let r=wu(t);if(r==i)return gd(t,e),r;break}case 82:{let r=Cu(t);if(r==i)return bd(t,e),r;let n=Pu(t);if(n==i)return xd(t,e),n;let s=Bu(t);if(s==i)return Td(t,e),s;let a=Lu(t);if(a==i)return Ad(t,e),a;let l=Nu(t);if(l==i)return Ed(t,e),l;break}case 88:{let r=Zo(t);if(r==i)return Ih(t,e),r;break}case 89:{let r=Mu(t);if(r==i)return vd(t,e),r;let n=Gu(t);if(n==i)return Sd(t,e),n;let s=zu(t);if(s==i)return Id(t,e),s;break}case 90:break;case 91:{let r=Du(t);if(r==i)return Rd(t,e),r;break}case 92:{let r=Uu(t);if(r==i)return Fd(t,e),r;let n=Vu(t);if(n==i)return kd(t,e),n;let s=Ou(t);if(s==i)return wd(t,e),s;break}case 93:{let r=qu(t);if(r==i)return Cd(t,e),r;let n=Wu(t);if(n==i)return Pd(t,e),n;break}case 94:{let r=ju(t);if(r==i)return Bd(t,e),r;let n=Hu(t);if(n==i)return Ld(t,e),n;break}case 96:{let r=Qu(t);if(r==i)return Nd(t,e),r;let n=Xu(t);if(n==i)return Md(t,e),n;break}case 97:{let r=Ju(t);if(r==i)return Gd(t,e),r;let n=Zu(t);if(n==i)return zd(t,e),n;let s=Yu(t);if(s==i)return Dd(t,e),s;break}default:throw new Error("unexpected expression id")}return 0}var $l=class extends Jr{constructor(e){super(e.module);this.seenStores=!1;this.ptrType=e.options.sizeTypeRef}checkRT(){return this.module.readStringCached(si(this.currentFunction)).startsWith("~lib/rt/")}visitStore(e){let r=this.module,n=gr(e),s=Hs(e),a=js(e);Qs(e,r.call("~onstore",[n,r.i32(s),r.i32(a),r.i32(i32(this.checkRT()))],this.ptrType)),this.seenStores=!0}walkModule(){super.walkModule(),this.seenStores&&this.module.addFunctionImport("~onstore","rtrace","onstore",He([this.ptrType,L.I32,L.I32,L.I32]),this.ptrType)}};function Eg(t,i){let e=!1;for(;Ft(i)==6&&t.readStringCached($r(i))==d.tostack;)assert(Xt(i)==1),i=Jt(i,0),e=!0;return e?i:0}function vg(t){return Ft(t)===14?!Qe(t):!0}var Rs=class extends Jr{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==L.I64?8:4}get ptrBinaryAdd(){return this.ptrType==L.I64?25:0}get ptrBinarySub(){return this.ptrType==L.I64?26:1}ptrConst(e){return this.ptrType==L.I64?this.module.i64(e):this.module.i32(e)}noteSlot(e,r){let n;if(this.slotMaps.has(e)){if(n=changetype(this.slotMaps.get(e)),n.has(r))return changetype(n.get(r))}else n=new Map,this.slotMaps.set(e,n);let s=n.size;return n.set(r,s),s}noteExport(e,r){r.length&&this.exportMap.set(e,r)}getSharedTemp(e,r){let n;if(this.tempMaps.has(e)){if(n=changetype(this.tempMaps.get(e)),n.has(r))return changetype(n.get(r))}else n=new Map,this.tempMaps.set(e,n);let a=$u(e)+n.size;return n.set(r,a),a}makeStackOffset(e){assert(e!=0);let r=this.module,n=r.global_set(d.stack_pointer,r.binary(e>=0?this.ptrBinaryAdd:this.ptrBinarySub,r.global_get(d.stack_pointer,this.ptrType),this.ptrConst(abs(e))));return e>0?n:r.block(null,[n,this.makeStackCheck()],L.None)}makeStackFill(e,r){assert(e>0);let n=this.module;if(this.options.hasFeature(8)&&e>16)r.push(n.memory_fill(n.global_get(d.stack_pointer,this.ptrType),n.i32(0),this.ptrConst(e)));else{let s=e;for(;s>=8;)r.push(n.store(8,n.global_get(d.stack_pointer,this.ptrType),n.i64(0),L.I64,e-s)),s-=8;s&&(assert(s==4),r.push(n.store(4,n.global_get(d.stack_pointer,this.ptrType),n.i32(0),L.I32,e-s)))}}makeStackCheck(){let e=this.module;return!this.hasStackCheckFunction&&!e.hasFunction("~stack_check")&&(this.hasStackCheckFunction=!0,e.addFunction("~stack_check",L.None,L.None,null,e.if(e.binary(17,e.global_get(d.stack_pointer,this.ptrType),e.global_get(d.data_end,this.ptrType)),this.compiler.options.hasFeature(64)?e.unreachable():this.compiler.makeStaticAbort(this.compiler.ensureStaticString("stack overflow"),ce.native)))),e.call("~stack_check",null,L.None)}updateCallOperands(e){let r=this.module,n=0;for(let s=0,a=e.length;s<a;++s){let l=e[s],o=Eg(r,l);if(!o)continue;if(!vg(o)){e[s]=o;continue}let u=this.currentFunction,c=$u(u),_=this.noteSlot(u,c+this.callSlotOffset+n),f=this.getSharedTemp(u,this.ptrType),h=new Array;h.push(r.local_set(f,o,!1)),h.push(r.store(this.ptrSize,r.global_get(d.stack_pointer,this.ptrType),r.local_get(f,this.ptrType),this.ptrType,_*this.ptrSize)),h.push(r.local_get(f,this.ptrType)),e[s]=r.block(null,h,this.ptrType),++n}return n}visitCallPre(e){let r=Xt(e),n=new Array(r);for(let a=0;a<r;++a)n[a]=Jt(e,a);let s=this.updateCallOperands(n);for(let a=0,l=n.length;a<l;++a)Us(e,a,n[a]);s&&(this.callSlotOffset+=s),this.callSlotStack.push(s)}visitCall(e){let r=this.callSlotStack.pop();r&&(this.callSlotOffset-=r)}visitCallIndirectPre(e){let r=an(e),n=new Array(r);for(let a=0;a<r;++a)n[a]=ln(e,a);let s=this.updateCallOperands(n);for(let a=0,l=n.length;a<l;++a)Vs(e,a,n[a]);s&&(this.callSlotOffset+=s),this.callSlotStack.push(s)}visitCallIndirect(e){let r=this.callSlotStack.pop();r&&(this.callSlotOffset-=r)}visitLocalSet(e){let r=this.module,n=yr(e),s=Eg(r,n);if(!s)return;if(!vg(s)){Ws(e,s);return}let a=ei(e),l=this.noteSlot(this.currentFunction,a),o=new Array;o.push(r.store(this.ptrSize,r.global_get(d.stack_pointer,this.ptrType),r.local_tee(a,s,!1),this.ptrType,l*this.ptrSize)),qs(e)?(o.push(r.local_get(a,this.ptrType)),this.replaceCurrent(r.flatten(o,this.ptrType))):this.replaceCurrent(r.flatten(o,L.None))}updateFunction(e){let r=si(e),n=Tn(e),s=An(e),a=assert(wt(e)),l=Js(e),o=new Array;for(let h=0;h<l;++h)o[h]=Zs(e,h);let u=this.tempMaps;if(u.has(e)){let h=changetype(u.get(e));for(let y=Map_keys(h),x=0,b=y.length;x<b;++x)o.push(y[x])}let c=this.module.ref;bn(c,r);let _=fe(o),f=ri(c,r,n,s,_,o.length,a);if(this.options.sourceMap||this.options.debugInfo){let h=this.compiler.program.searchFunctionByRef(f);h&&h.addDebugInfo(this.module,f)}ie(_)}updateExport(e,r){let n=this.module,s=n.ref;assert(Yd(e)==0);let a=em(e),l=n.readStringCached(a),o=$d(e),u=ii(s,a),c=Tn(u),_=Mp(c),f=_.length,h=An(u),y=f,x=new Array,b=assert(r.length),A=b*this.ptrSize,I="export:"+l,E=n.allocStringCached(I);if(ii(s,E)==0){let k=new Array;k.push(this.makeStackOffset(-A));for(let G=0;G<b;++G)k.push(n.store(this.ptrSize,n.global_get(d.stack_pointer,this.ptrType),n.local_get(r[G],this.ptrType),this.ptrType,G*this.ptrSize));let F=new Array(f);for(let G=0;G<f;++G)F[G]=n.local_get(G,_[G]);if(h!=L.None){let G=y++;x.push(h),k.push(n.local_set(G,n.call(l,F,h),!1)),k.push(this.makeStackOffset(+A)),k.push(n.local_get(G,h))}else k.push(n.call(l,F,h)),k.push(this.makeStackOffset(+A));let R=fe(x);ri(s,E,c,h,R,x.length,n.block(null,k,h)),ie(R)}ea(s,o),Ys(s,E,o)}walkModule(){let e=this.module.ref,r=this.module,n=0,s=0,a=new Set;for(;;){let u=ni(e);if(u==n)break;for(let _=n;_<u;++_)this.walkFunction(xn(e,_));let c=new eo(this);for(let _=Map_keys(this.slotMaps),f=0,h=_.length;f<h;++f){let y=_[f];if(a.has(y))continue;a.add(y);let b=changetype(this.slotMaps.get(y)).size*this.ptrSize;c.frameSize=b,c.walkFunction(y);let A=new Array;A.push(this.makeStackOffset(-b)),this.makeStackFill(b,A);let I=wt(y),E=kt(I);if(E==L.Unreachable)A.push(I);else if(E==L.None)A.push(I),A.push(this.makeStackOffset(+b));else{let k=this.getSharedTemp(y,E);A.push(r.local_set(k,I,!1)),A.push(this.makeStackOffset(+b)),A.push(r.local_get(k,E))}En(y,r.flatten(A,E))}if(n=u,s++,s>100)throw new Error("ShadowStackPass: too many iterations, possible infinite loop")}this.walkGlobals();let l=this.exportMap;for(let u=Map_keys(l),c=0,_=u.length;c<_;++c){let f=u[c],h=$s(r.ref,r.allocStringCached(f)),y=changetype(l.get(f));this.updateExport(h,y)}let o=ni(e);for(;n<o;){for(let c=n;c<o;++c)this.walkFunction(xn(e,c));let u=new eo(this);for(let c=Map_keys(this.slotMaps),_=0,f=c.length;_<f;++_){let h=c[_];if(a.has(h))continue;a.add(h);let x=changetype(this.slotMaps.get(h)).size*this.ptrSize;u.frameSize=x,u.walkFunction(h);let b=new Array;b.push(this.makeStackOffset(-x)),this.makeStackFill(x,b);let A=wt(h),I=kt(A);if(I==L.Unreachable)b.push(A);else if(I==L.None)b.push(A),b.push(this.makeStackOffset(+x));else{let E=this.getSharedTemp(h,I);b.push(r.local_set(E,A,!1)),b.push(this.makeStackOffset(+x)),b.push(r.local_get(E,I))}En(h,r.flatten(b,I))}n=o,o=ni(e)}for(let u=Map_keys(this.tempMaps),c=0,_=u.length;c<_;++c)this.updateFunction(u[c])}},eo=class extends Jr{constructor(e){super(e.module);this.frameSize=0;this.parentPass=e}visitReturn(e){assert(this.frameSize);let r=this.module,n=br(e),s=new Array;if(n){let a=kt(n);if(a==L.Unreachable)return;let l=this.parentPass.getSharedTemp(this.currentFunction,a);s.push(r.local_set(l,n,!1)),s.push(this.parentPass.makeStackOffset(+this.frameSize)),Xs(e,r.local_get(l,a))}else s.push(this.parentPass.makeStackOffset(+this.frameSize));s.push(e),this.replaceCurrent(r.flatten(s,L.Unreachable))}};var Gi=class{constructor(i,e=!1){this.seen=new Map;this.program=i,this.includePrivate=e}walk(){for(let i=Map_values(this.program.filesByName),e=0,r=i.length;e<r;++e){let n=unchecked(i[e]);n.source.sourceKind==1&&this.visitFile(n)}}visitFile(i){let e=i.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 r=i.exportsStar;if(r)for(let n=0,s=r.length;n<s;++n){let a=unchecked(r[n]);this.visitFile(a)}}visitElement(i,e){if(e.is(512)&&!this.includePrivate)return;let r=this.seen;if(!e.is(262144)&&r.has(e)){this.visitAlias(i,e,assert(r.get(e)));return}switch(r.set(e,i),e.kind){case 0:{e.is(8388608)&&this.visitGlobal(i,e);break}case 2:{e.is(8388608)&&this.visitEnum(i,e);break}case 3:break;case 4:{this.visitFunctionInstances(i,e);break}case 6:{this.visitClassInstances(i,e);break}case 8:{this.visitInterfaceInstances(i,e);break}case 10:{let n=e.instance;if(!n)break;e=n}case 11:{let n=e,s=n.getterInstance;s&&this.visitFunction(i,s);let a=n.setterInstance;a&&this.visitFunction(i,a);break}case 12:{Sg(e)&&this.visitNamespace(i,e);break}case 14:case 15:break;default:assert(!1)}}visitFunctionInstances(i,e){let r=e.instances;if(r)for(let n=Map_values(r),s=0,a=n.length;s<a;++s){let l=unchecked(n[s]);l.is(8388608)&&this.visitFunction(i,l)}}visitClassInstances(i,e){let r=e.instances;if(r)for(let n=Map_values(r),s=0,a=n.length;s<a;++s){let l=unchecked(n[s]);assert(l.kind==7),l.is(8388608)&&this.visitClass(i,l)}}visitInterfaceInstances(i,e){let r=e.instances;if(r)for(let n=Map_values(r),s=0,a=n.length;s<a;++s){let l=unchecked(n[s]);assert(l.kind==9),l.is(8388608)&&this.visitInterface(i,l)}}};function Sg(t){let i=t.members;if(i)for(let e=Map_values(i),r=0,n=e.length;r<n;++r){let s=unchecked(e[r]);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)||Sg(s))return!0;break}}}return!1}function $S(t){return t=="rtrace"?"#rtrace":t}function eI(t){return t!="rtrace"}var Di=class t extends Gi{constructor(e,r,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=r}static build(e,r=!0){return new t(e,r).build()}visitGlobal(e,r){let n=this.sb,s=r.type;this.exports.push(e),Zr(s,1)||(O(n,this.indentLevel),n.push(e),n.push(`: {
25
+ `)}hasDecoratorKind(e,r){if(e==null)return!1;for(let n=0,s=e.length;n<s;++n)if(e[n].decoratorKind==r)return!0;return!1}restPrefixOf(e){let r=e.args;if(r==null||r.length==0)return"";let n=r[0];if(n instanceof Ye){let s=n.value.trim();return s.length==0||s=="/"?"":(s.startsWith("/")||(s="/"+s),s.replace(/\/+$/,""))}return""}restStreamOf(e){let r=e.args;if(r!=null&&r.length>0&&r[0]instanceof ht){let n=this.objectField(r[0],"stream");if(n!=null){let s=this.enumMember(n);if(s!=null)return s}}return"JSON"}routeDecoratorOf(e){let r=e.decorators;if(r==null)return null;for(let n=0,s=r.length;n<s;++n)switch(r[n].decoratorKind){case 19:case 20:case 21:case 22:case 23:case 24:case 25:case 26:return r[n]}return null}buildRouteBlock(e,r,n,s,a){let l=s.decoratorKind,o,u,c=r;if(l==19){let F=s.args;if(F==null||F.length==0||!(F[0]instanceof ht))return null;let R=F[0],G=this.objectField(R,"method"),U=this.objectField(R,"path");if(G==null||U==null||!(U instanceof Ye))return null;let z=this.enumMember(G);if(z==null)return null;o=z,u=U.value;let W=this.objectField(R,"stream");if(W!=null){let q=this.enumMember(W);q!=null&&(c=q)}}else{o=this.verbName(l);let F=s.args;if(F==null||F.length==0||!(F[0]instanceof Ye))return null;u=F[0].value}let _=this.methodEnumValue(o);if(_<0)return null;let f=this.joinPath(e,u),h=n.signature.parameters,y=null,x="";for(let F=0,R=h.length;F<R;++F){let G=h[F].type,U=G instanceof de?G.name.identifier.text:"";F>0&&(x+=","),U=="RouteContext"?x+="__ctx":(y=U,x+="__body")}let b=n.signature.returnType,A=b instanceof de?b.name.identifier.text:"",I="this."+n.name.text+"("+x+")",E=this.cacheSuffixOf(n),k="if(__req.method=="+_.toString()+"){";return k+="const __ctx=__toilMatch("+JSON.stringify(f)+",__req);",k+="if(__ctx!=null){",k+=this.ratelimitGuardOf(n),(a||this.hasDecoratorKind(n.decorators,28))&&(k+='if(!AuthService.hasSession()){return __toilResp.text("unauthorized\\n",401);}'),y!=null&&(c=="Binary"?k+="const __body="+y+".decode(__req.body);":k+="const __body="+y+".fromJSON(JSON.parse(__ctx.text()));"),A=="Response"||A=="__toilResp"?k+="return "+I+E+";":A=="void"?k+=I+";return __toilResp.empty(204)"+E+";":c=="Binary"?k+="const __res="+I+";return __toilResp.bytes(__res.encode())"+E+";":k+="const __res="+I+";return __toilResp.json(__res.toJSON().toString())"+E+";",k+="}}",k}cacheSuffixOf(e){let r=e.decorators;if(r==null)return"";for(let n=0,s=r.length;n<s;++n){if(r[n].decoratorKind!=27)continue;let a=r[n].args;if(a==null||a.length==0)return"";let l="";for(let o=0,u=a.length;o<u;++o){let c=a[o];if(!(c instanceof Lt||c.kind==26||c.kind==14))return"";o>0&&(l+=","),l+=c.range.toString()}return".cache("+l+")"}return""}ratelimitGuardOf(e){let r=e.decorators;if(r==null)return"";for(let n=0,s=r.length;n<s;++n){if(r[n].decoratorKind!=30)continue;let a=r[n].args;if(a==null||a.length<3)return"";let l=this.ratelimitStrategyTag(a[0]);if(l.length==0)return"";let o=a[1],u=a[2];return!(o instanceof Lt)||!(u instanceof Lt)?"":"{const __rl=RateLimitService.guard("+(this.ratelimitRouteCounter++).toString()+","+l+","+o.range.toString()+","+u.range.toString()+");if(__rl!=null){return __rl;}}"}return""}ratelimitStrategyTag(e){if(e instanceof Lt)return e.range.toString();if(e instanceof Nt){let r=e.property.text;return r=="SlidingWindow"?"1":r=="TokenBucket"?"2":"0"}return""}objectField(e,r){let n=e.names;for(let s=0,a=n.length;s<a;++s)if(n[s].text==r)return e.values[s];return null}enumMember(e){return e instanceof Nt?e.property.text:null}verbName(e){switch(e){case 21:return"POST";case 22:return"PUT";case 23:return"DELETE";case 24:return"PATCH";case 25:return"HEAD";case 26:return"OPTIONS";default:return"GET"}}methodEnumValue(e){switch(e){case"GET":return 0;case"POST":return 1;case"PUT":return 2;case"DELETE":return 3;case"PATCH":return 4;case"HEAD":return 5;case"OPTIONS":return 6;default:return-1}}joinPath(e,r){let n=r.trim();if(n.length==0&&(n="/"),n.startsWith("/")||(n="/"+n),n=="/")return e.length>0?e:"/";n.length>1&&(n=n.replace(/\/+$/,""));let s=e+n;return s.length==0?"/":s}restRuntimePath(e){let r=e.range.source.statements;for(let n=0,s=r.length;n<s;++n){let a=r[n];if(a.kind!=43)continue;let l=a,o=l.declarations;if(o!=null)for(let u=0,c=o.length;u<c;++u){let _=o[u].foreignName.text;if(_=="Response"||_=="Request"||_=="RouteContext"||_=="ToilHandler"||_=="Method"||_=="Header"||_=="Server"||_=="Rest")return l.path.value}}return"toiljs/server/runtime"}parseClassExpression(e){let r=e.tokenPos,n;if(e.skipIdentifier()?n=M.createIdentifierExpression(e.readIdentifier(),e.range()):n=M.createEmptyIdentifierExpression(e.range(e.pos)),!e.skip(62))return this.error(1005,e.range(e.pos),"{"),null;let s=new Array,a=M.createClassDeclaration(n,null,0,null,null,null,s,e.range(r,e.pos));if(!e.skip(63))do{let l=this.parseClassMember(e,a);if(l)l.kind==66?a.indexSignature=l:(assert(a instanceof Ue),s.push(l));else if(this.skipStatement(e),e.skip(121))return this.error(1005,e.range(),"}"),null}while(!e.skip(63));return a.range.end=e.pos,M.createClassExpression(a)}parseClassMember(e,r){let n=r.kind==58,s=0,a=null;if(e.skip(114)){s=e.tokenPos;do{let re=this.parseDecorator(e);if(!re)break;a||(a=new Array),a.push(re)}while(e.skip(114));n&&a&&this.error(1206,le.join(a[0].range,a[a.length-1].range))}let l=r.flags&32768;n&&(l|=268435456);let o=0,u=0,c=r.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 _=0,f=0;e.skip(44)?(n?this.error(1042,e.range(),"public"):(l|=256,_=e.tokenPos,f=e.pos),s||(s=e.tokenPos)):e.skip(42)?(n?this.error(1042,e.range(),"private"):(l|=512,_=e.tokenPos,f=e.pos),s||(s=e.tokenPos)):e.skip(43)&&(n?this.error(1042,e.range(),"protected"):(l|=1024,_=e.tokenPos,f=e.pos),s||(s=e.tokenPos));let h=0,y=0,x=0,b=0;e.skip(48)?(n?this.error(1042,e.range(),"static"):(l|=32,h=e.tokenPos,y=e.pos),s||(s=e.tokenPos)):(l|=262144,e.skip(0)&&(n||!r.is(128)?this.error(1042,e.range(),"abstract"):(l|=128,x=e.tokenPos,b=e.pos),s||(s=e.tokenPos)),r.flags&65536&&(l|=131072));let A=0,I=0;e.skip(40)&&(n||r.extendsType==null?this.error(1042,e.range(),"override"):(l|=8192,A=e.tokenPos,I=e.pos),s||(s=e.tokenPos));let E=0,k=0;if(e.peek()==45){let re=e.mark();e.next(),e.peek()!=100?(e.discard(re),l|=64,E=e.tokenPos,k=e.pos,s||(s=E)):e.reset(re)}let F=e.mark(),R=!1,G=!1,U=0,z=0,W=!1,q=0,ee=0;n||(e.skip(25)?e.peek(1)==115&&!e.peekOnNewLine()?(l|=2048,G=!0,U=e.tokenPos,z=e.pos,s||(s=U),l&64&&this.error(1042,e.range(E,k),"readonly")):e.reset(F):e.skip(47)?e.peek(1)==115&&!e.peekOnNewLine()?(l|=4096,W=!0,q=e.tokenPos,ee=e.pos,s||(s=q),l&64&&this.error(1042,e.range(E,k),"readonly")):e.reset(F):e.skip(10)&&(l|=524288,R=!0,s||(s=e.tokenPos),l&32&&this.error(1042,e.range(h,y),"static"),l&128&&this.error(1042,e.range(x,b),"abstract"),l&64&&this.error(1042,e.range(E,k),"readonly")));let Y=G||W,te;if(R)te=M.createConstructorExpression(e.range());else{if(!Y&&e.skip(66)){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(h,y),"static"),l&8192&&this.error(1042,e.range(A,I),"override"),l&128&&this.error(1042,e.range(x,b),"abstract");let re=this.parseIndexSignature(e,l,a);return re?(e.skip(70),re):(l&64&&this.error(1042,e.range(E,k),"readonly"),null)}if(!e.skipIdentifier(2))return this.error(1003,e.range()),null;s||(s=e.tokenPos),te=M.createIdentifierExpression(e.readIdentifier(),e.range())}let j=null;if(e.skip(72)){let re=e.tokenPos;if(j=this.parseTypeParameters(e),!j)return null;R?this.error(1092,e.range(re,e.pos)):Y?this.error(1094,e.range(re,e.pos)):l|=65536}if(e.skip(64)){l&4&&this.error(1031,e.range(o,u),"declare");let re=e.tokenPos,H=this.parseParameters(e,R);if(!H)return null;let ue=this.parseParametersThis;if(R)for(let Me=0,Hi=H.length;Me<Hi;++Me){let It=H[Me];if(It.isAny(1856)){let Rt=M.createFieldDeclaration(It.name,null,It.flags|262144,It.type,null,It.range);Rt.parameterIndex=Me,It.implicitFieldDeclaration=Rt,r.members.push(Rt)}}else G?H.length&&this.error(1054,te.range):W?(H.length!=1&&this.error(1049,te.range),H.length>0&&H[0].initializer&&this.error(1052,te.range)):te.text=="constructor"&&this.error(230,te.range,"constructor");let be=null;if(e.skip(100)){if(te.kind==27?this.error(1093,e.range()):W&&this.error(1095,e.range()),be=this.parseType(e,W||te.kind==27),!be)return null}else be=M.createOmittedType(e.range(e.pos)),!W&&te.kind!=27&&this.error(1110,be.range);let mr=M.createFunctionType(H,be,ue,!1,e.range(re,e.pos)),St=null;if(e.skip(62)){if(l&32768?this.error(1183,e.range()):l&128?this.error(1245,e.range(),te.text):n&&this.error(1005,e.range(),";"),St=this.parseBlockStatement(e,!1),!St)return null}else!n&&!(l&32896)&&this.error(2391,e.range());let Q=M.createMethodDeclaration(te,a,l,j,mr,St,e.range(s,e.pos));return n&&e.skip(71)||e.skip(70),Q}else if(R)this.error(2390,te.range);else if(Y)this.error(2391,te.range);else{l&4&&this.error(100,e.range(o,u),"Ambient fields"),l&128&&this.error(1042,e.range(x,b),"abstract"),l&2048&&this.error(1042,e.range(U,z),"get"),l&4096&&this.error(1042,e.range(q,ee),"set");let re=null;if(e.skip(99)&&this.error(219,e.range(s,e.pos)),e.skip(95)&&(l|=16384),e.skip(100)){if(re=this.parseType(e),!re)return null}else this.error(1110,e.range());let H=null;if(e.skip(101)){if(l&32768&&this.error(1039,e.range()),H=this.parseExpression(e),!H)return null;l&16384&&this.error(1263,te.range)}let ue=e.range(s,e.pos);(l&16384)!=0&&(n||(l&32768)!=0)&&this.error(1255,ue);let be=M.createFieldDeclaration(te,a,l,re,H,ue);return n&&e.skip(71)||e.skip(70),be}return null}parseIndexSignature(e,r,n){n&&n.length>0&&this.error(1206,le.join(n[0].range,n[n.length-1].range));let s=e.tokenPos;if(e.skipIdentifier())if(e.readIdentifier()=="key")if(e.skip(100)){let l=this.parseType(e);if(!l)return null;if(l.kind!=1)return this.error(1110,e.range()),null;if(e.skip(67))if(e.skip(100)){let o=this.parseType(e);return o?o.kind!=1?(this.error(1003,o.range),null):M.createIndexSignature(l,o,r,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,r,n,s){if(e.skipIdentifier()){let a=M.createIdentifierExpression(e.readIdentifier(),e.range());if(e.skip(62)){let l=new Array,o=M.createNamespaceDeclaration(a,n,r,l,e.range(s,e.pos));for(;!e.skip(63);){let u=this.parseTopLevelStatement(e,o);if(u){if(u.kind==36)return this.error(1319,u.range),null;l.push(u)}else if(this.skipStatement(e),e.skip(121))return this.error(1005,e.range(),"}"),null}return o.range.end=e.pos,o.overriddenModuleName=this.currentModuleName,e.skip(70),o}else this.error(1005,e.range(),"{")}else this.error(1003,e.range());return null}parseExport(e,r,n){let s=null,a=assert(this.currentSource);if(e.skip(62)){let l=new Array;for(;!e.skip(63);){let u=this.parseExportMember(e);if(!u)return null;if(l.push(u),!e.skip(71)){if(e.skip(63))break;return this.error(1005,e.range(),"}"),null}}if(e.skip(23))if(e.skip(116))s=M.createStringLiteralExpression(e.readString(),e.range());else return this.error(1141,e.range()),null;let o=M.createExportStatement(l,s,n,e.range(r,e.pos));if(s){let u=assert(o.internalPath);this.seenlog.has(u)||(this.dependees.set(u,new es(a,s)),this.backlog.push(u),this.seenlog.add(u))}return e.skip(70),o}else if(e.skip(84))if(e.skip(23))if(e.skip(116)){s=M.createStringLiteralExpression(e.readString(),e.range());let l=M.createExportStatement(null,s,n,e.range(r,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 es(a,s)),this.backlog.push(o)),e.skip(70),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 r=M.createIdentifierExpression(e.readIdentifier(),e.range()),n=null;if(e.skip(1))if(e.skipIdentifier(2))n=M.createIdentifierExpression(e.readIdentifier(),e.range());else return this.error(1003,e.range()),null;return n?M.createExportMember(r,n,le.join(r.range,n.range)):M.createExportMember(r,null,r.range)}else this.error(1003,e.range());return null}parseExportDefaultAlias(e,r,n,s){let a=e.readIdentifier(),l=e.range(),o=M.createExportStatement([M.createExportMember(M.createIdentifierExpression(a,l),M.createIdentifierExpression("default",e.range(n,s)),l)],null,!1,e.range(r,e.pos));return e.skip(70),o}parseImport(e){let r=e.tokenPos,n=null,s=null,a=!1;if(e.skip(62))for(n=new Array;!e.skip(63);){let l=this.parseImportDeclaration(e);if(!l)return null;if(n.push(l),!e.skip(71)){if(e.skip(63))break;return this.error(1005,e.range(),"}"),null}}else if(e.skip(84))if(e.skip(1))if(e.skipIdentifier())s=M.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(115,1)){let l=e.readIdentifier(),o=e.range();if(n=[M.createImportDeclaration(M.createIdentifierExpression("default",o),M.createIdentifierExpression(l,o),o)],e.skip(71))return this.error(100,e.range(),"Mixed default and named imports"),null}else a=!0;if(a||e.skip(23))if(e.skip(116)){let l=M.createStringLiteralExpression(e.readString(),e.range()),o;s?(assert(!n),o=M.createWildcardImportStatement(s,l,e.range(r,e.pos))):o=M.createImportStatement(n,l,e.range(r,e.pos));let u=o.internalPath;return this.seenlog.has(u)||(this.dependees.set(u,new es(assert(this.currentSource),l)),this.backlog.push(u)),e.skip(70),o}else this.error(1141,e.range());else this.error(1005,e.range(),"from");return null}parseImportDeclaration(e){if(e.skipIdentifier(2)){let r=M.createIdentifierExpression(e.readIdentifier(),e.range()),n=null;if(e.skip(1))if(e.skipIdentifier())n=M.createIdentifierExpression(e.readIdentifier(),e.range());else return this.error(1003,e.range()),null;return n?M.createImportDeclaration(r,n,le.join(r.range,n.range)):M.createImportDeclaration(r,null,r.range)}else this.error(1003,e.range());return null}parseExportImport(e,r){if(e.skipIdentifier()){let n=M.createIdentifierExpression(e.readIdentifier(),e.range());if(e.skip(101))if(e.skipIdentifier()){let s=M.createIdentifierExpression(e.readIdentifier(),e.range()),a=M.createExportImportStatement(s,n,e.range(r,e.pos));return e.skip(70),a}else this.error(1003,e.range());else this.error(1005,e.range(),"=")}else this.error(1003,e.range());return null}parseStatement(e,r=!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 57:{a=this.parseVariable(e,0,null,e.tokenPos);break}case 62:{a=this.parseBlockStatement(e,r);break}case 46:{r&&this.error(1108,e.range()),a=this.parseReturn(e);break}case 70:return M.createEmptyStatement(e.range(e.tokenPos));case 50:{a=this.parseSwitchStatement(e);break}case 52:{a=this.parseThrowStatement(e);break}case 54:{a=this.parseTryStatement(e);break}case 58:{a=this.parseVoidStatement(e);break}case 59:{a=this.parseWhileStatement(e);break}case 55:if(e.peek(1)==115){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,r){let n=e.tokenPos,s=new Array;for(;!e.skip(63);){let l=e.mark(),o=this.parseStatement(e,r);if(o)e.discard(l),s.push(o);else{if(e.token==121)return null;e.reset(l),this.skipStatement(e)}}let a=M.createBlockStatement(s,e.range(n,e.pos));return r&&e.skip(70),a}parseBreak(e){let r=null;e.peek()==115&&!e.peekOnNewLine()&&(e.next(1),r=M.createIdentifierExpression(e.readIdentifier(),e.range()));let n=M.createBreakStatement(r,e.range());return e.skip(70),n}parseContinue(e){let r=null;e.peek()==115&&!e.peekOnNewLine()&&(e.next(1),r=M.createIdentifierExpression(e.readIdentifier(),e.range()));let n=M.createContinueStatement(r,e.range());return e.skip(70),n}parseDoStatement(e){let r=e.tokenPos,n=this.parseStatement(e);if(!n)return null;if(e.skip(59))if(e.skip(64)){let s=this.parseExpression(e);if(!s)return null;if(e.skip(65)){let a=M.createDoStatement(n,s,e.range(r,e.pos));return e.skip(70),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 r=this.parseExpression(e);if(!r)return null;let n=M.createExpressionStatement(r);return e.skip(70),n}parseForStatement(e){let r=e.tokenPos;if(e.skip(64)){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(57))n=this.parseVariable(e,0,null,e.tokenPos,!0);else if(!e.skip(70)&&(n=this.parseExpressionStatement(e),!n))return null;if(n){if(e.skip(39)){if(n.kind==39)return n.expression.kind!=7?(this.error(1003,n.range),null):this.parseForOfStatement(e,r,n);if(n.kind==48){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,r,n)}return this.error(1003,n.range),null}if(n.kind==48){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==70){let s=null;if(!e.skip(70)&&(s=this.parseExpressionStatement(e),!s))return null;if(e.token==70){let a=null;if(!e.skip(65)){if(a=this.parseExpression(e),!a)return null;if(!e.skip(65))return this.error(1005,e.range(),")"),null}let l=this.parseStatement(e);return l?M.createForStatement(n,s?s.expression:null,a,l,e.range(r,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,r,n){let s=this.parseExpression(e);if(!s)return null;if(!e.skip(65))return this.error(1005,e.range(),")"),null;let a=this.parseStatement(e);return a?M.createForOfStatement(n,s,a,e.range(r,e.pos)):null}parseIfStatement(e){let r=e.tokenPos;if(e.skip(64)){let n=this.parseExpression(e);if(!n)return null;if(e.skip(65)){let s=this.parseStatement(e);if(!s)return null;let a=null;return e.skip(16)&&(a=this.parseStatement(e),!a)?null:M.createIfStatement(n,s,a,e.range(r,e.pos))}else this.error(1005,e.range(),")")}else this.error(1005,e.range(),"(");return null}parseSwitchStatement(e){let r=e.tokenPos;if(e.skip(64)){let n=this.parseExpression(e);if(!n)return null;if(e.skip(65))if(e.skip(62)){let s=new Array;for(;!e.skip(63);){let l=this.parseSwitchCase(e);if(!l)return null;s.push(l)}let a=M.createSwitchStatement(n,s,e.range(r,e.pos));return e.skip(70),a}else this.error(1005,e.range(),"{");else this.error(1005,e.range(),")")}else this.error(1005,e.range(),"(");return null}parseSwitchCase(e){let r=e.tokenPos,n,s;if(e.skip(5)){let a=this.parseExpression(e);if(!a)return null;if(e.skip(100)){for(n=new Array;e.peek()!=5&&e.nextToken!=13&&e.nextToken!=63;){if(s=this.parseStatement(e),!s)return null;n.push(s)}return M.createSwitchCase(a,n,e.range(r,e.pos))}else this.error(1005,e.range(),":")}else if(e.skip(13))if(e.skip(100)){for(n=new Array;e.peek()!=5&&e.nextToken!=13&&e.nextToken!=63;){if(s=this.parseStatement(e),!s)return null;n.push(s)}return M.createSwitchCase(null,n,e.range(r,e.pos))}else this.error(1005,e.range(),":");else this.error(1130,e.range());return null}parseThrowStatement(e){let r=e.tokenPos,n=this.parseExpression(e);if(!n)return null;let s=M.createThrowStatement(n,e.range(r,e.pos));return e.skip(70)||this.checkASI(e),s}parseTryStatement(e){let r=e.tokenPos,n;if(e.skip(62)){let s=new Array;for(;!e.skip(63);){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(64))return this.error(1005,e.range(),"("),null;if(!e.skipIdentifier())return this.error(1003,e.range()),null;if(a=M.createIdentifierExpression(e.readIdentifier(),e.range()),!e.skip(65))return this.error(1005,e.range(),")"),null;if(!e.skip(62))return this.error(1005,e.range(),"{"),null;for(l=[];!e.skip(63);){if(n=this.parseStatement(e),!n)return null;l.push(n)}}if(e.skip(21)){if(!e.skip(62))return this.error(1005,e.range(),"{"),null;for(o=[];!e.skip(63);){if(n=this.parseStatement(e),!n)return null;o.push(n)}}if(!(l||o))return this.error(1005,e.range(),"catch"),null;let u=M.createTryStatement(s,a,l,o,e.range(r,e.pos));return e.skip(70),u}else this.error(1005,e.range(),"{");return null}parseTypeDeclaration(e,r,n,s){if(e.skipIdentifier()){let a=M.createIdentifierExpression(e.readIdentifier(),e.range()),l=null;if(e.skip(72)){if(l=this.parseTypeParameters(e),!l)return null;r|=65536}if(e.skip(101)){e.skip(93);let o=this.parseType(e);if(!o)return null;if($n(a.text,o))return this.error(2456,a.range,a.text),null;let u=M.createTypeDeclaration(a,n,r,l,o,e.range(s,e.pos));return e.skip(70),u.overriddenModuleName=this.currentModuleName,u}else this.error(1005,e.range(),"=")}else this.error(1003,e.range());return null}parseModuleDeclaration(e,r){let n=e.tokenPos;assert(e.next()==116);let s=e.readString(),a=M.createModuleDeclaration(s,r,e.range(n,e.pos));return this.currentModuleName=s,e.skip(70),a}parseVoidStatement(e){let r=e.tokenPos,n=this.parseExpression(e,21);if(!n)return null;let s=M.createVoidStatement(n,e.range(r,e.pos));return e.skip(70),s}parseWhileStatement(e){let r=e.tokenPos;if(e.skip(64)){let n=this.parseExpression(e);if(!n)return null;if(e.skip(65)){let s=this.parseStatement(e);if(!s)return null;let a=M.createWhileStatement(n,s,e.range(r,e.pos));return e.skip(70),a}else this.error(1005,e.range(),")")}else this.error(1005,e.range(),"(");return null}parseExpressionStart(e){let r=e.next(1),n=e.tokenPos;switch(r){case 69:case 61:case 95:case 96:case 81:case 82:case 56:case 58:case 14:{let s=this.parseExpression(e,17);return s?M.createUnaryPrefixExpression(r,s,e.range(n,e.pos)):null}case 87:case 88:{let s=this.parseExpression(e,17);if(!s)return null;switch(s.kind){case 7:case 13:case 22:break;default:this.error(2357,s.range)}return M.createUnaryPrefixExpression(r,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(64)||(a=this.tryParseTypeArgumentsBeforeArguments(e))){if(l=this.parseArguments(e),!l)return null}else l=[];return M.createNewExpression(s,a,l,e.range(n,e.pos))}case 38:return M.createNullExpression(e.range());case 53:return M.createTrueExpression(e.range());case 20:return M.createFalseExpression(e.range());case 51:return M.createThisExpression(e.range());case 10:return M.createConstructorExpression(e.range());case 64:{if(e.skip(65))return this.parseFunctionExpressionCommon(e,M.createEmptyIdentifierExpression(e.range(n)),[],null,1);let s=e.mark(),a=!0;do switch(e.next(1)){case 69:return e.reset(s),this.parseFunctionExpression(e);case 115:{switch(e.readIdentifier(),e.next()){case 65:{if(e.skip(100)&&this.parseType(e,!0,!0)==null){a=!1;break}if(!e.skip(80)){a=!1;break}}case 100:return e.reset(s),this.parseFunctionExpression(e);case 99:{if(e.skip(100)||e.skip(71)||e.skip(65))return e.reset(s),this.parseFunctionExpression(e);a=!1;break}case 71:break;default:{a=!1;break}}break}default:{a=!1;break}}while(a);e.reset(s);let l=this.parseExpression(e);return l?e.skip(65)?(l=M.createParenthesizedExpression(l,e.range(n,e.pos)),this.maybeParseCallExpression(e,l)):(this.error(1005,e.range(),")"),null):null}case 66:{let s=new Array;for(;!e.skip(67);){let a;if(e.peek()==71)a=M.createOmittedExpression(e.range(e.pos));else if(a=this.parseExpression(e,2),!a)return null;if(s.push(a),!e.skip(71)){if(e.skip(67))break;return this.error(1005,e.range(),"]"),null}}return M.createArrayLiteralExpression(s,e.range(n,e.pos))}case 62:{let s=e.tokenPos,a=new Array,l=new Array,o;for(;!e.skip(63);){if(e.skipIdentifier())o=M.createIdentifierExpression(e.readIdentifier(),e.range());else{if(!e.skip(116))return this.error(1003,e.range()),null;o=M.createIdentifierExpression(e.readString(),e.range()),o.isQuoted=!0}if(a.push(o),e.skip(100)){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(71)){if(e.skip(63))break;return this.error(1005,e.range(),"}"),null}}return M.createObjectLiteralExpression(a,l,e.range(s,e.pos))}case 72:{let s=this.parseType(e);if(!s)return null;if(!e.skip(73))return this.error(1005,e.range(),">"),null;let a=this.parseExpression(e,19);return a?M.createAssertionExpression(0,a,s,e.range(n,e.pos)):null}case 115:{let s=e.readIdentifier();if(s=="null")return M.createNullExpression(e.range());let a=M.createIdentifierExpression(s,e.range(n,e.pos));return e.skip(119)?this.parseTemplateLiteral(e,a):e.peek()==80&&!e.peekOnNewLine()?this.parseFunctionExpressionCommon(e,M.createEmptyIdentifierExpression(e.range(n)),[M.createParameter(0,a,M.createOmittedType(a.range.atEnd),null,a.range)],null,2,n):this.maybeParseCallExpression(e,a,!0)}case 49:{e.peek()!=68&&e.nextToken!=64&&this.error(1034,e.range());let s=M.createSuperExpression(e.range(n,e.pos));return this.maybeParseCallExpression(e,s)}case 116:return M.createStringLiteralExpression(e.readString(),e.range(n,e.pos));case 119:return this.parseTemplateLiteral(e);case 117:{let s=e.readInteger();return e.checkForIdentifierStartAfterNumericLiteral(),M.createIntegerLiteralExpression(s,e.range(n,e.pos))}case 118:{let s=e.readFloat();return e.checkForIdentifierStartAfterNumericLiteral(),M.createFloatLiteralExpression(s,e.range(n,e.pos))}case 85:{let s=e.readRegexpPattern();return e.skip(85)?M.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 r==121?this.error(1126,e.range(n)):this.error(1109,e.range()),null}}tryParseTypeArgumentsBeforeArguments(e){let r=e.mark();if(!e.skip(72))return null;let n=e.tokenPos,s=null;do{if(e.peek()==73)break;let a=this.parseType(e,!0,!0);if(!a)return e.reset(r),null;s?s.push(a):s=[a]}while(e.skip(71));if(e.skip(73)){let a=e.pos;if(e.skip(64))return s||this.error(1099,e.range(n,a)),s}return e.reset(r),null}parseArguments(e){let r=new Array;for(;!e.skip(65);){let n=this.parseExpression(e,2);if(!n)return null;if(r.push(n),!e.skip(71)){if(e.skip(65))break;return this.error(1005,e.range(),")"),null}}return r}parseExpression(e,r=1){assert(r!=0);let n=this.parseExpressionStart(e);if(!n)return null;let s=n.range.start,a;for(;(a=V2(e.peek()))>=r;){let l=e.next();switch(l){case 1:{if(e.skip(8))n=M.createAssertionExpression(3,n,null,e.range(s,e.pos));else{let o=this.parseType(e);if(!o)return null;n=M.createAssertionExpression(1,n,o,e.range(s,e.pos))}break}case 95:{n=M.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=M.createInstanceOfExpression(n,o,e.range(s,e.pos));break}case 66:{let o=this.parseExpression(e);if(!o)return null;if(!e.skip(67))return this.error(1005,e.range(),"]"),null;n=M.createElementAccessExpression(n,o,e.range(s,e.pos)),n=this.maybeParseCallExpression(e,n);break}case 87:case 88:{n.kind!=7&&n.kind!=13&&n.kind!=22&&this.error(2357,n.range),n=M.createUnaryPostfixExpression(l,n,e.range(s,e.pos));break}case 99:{let o=this.parseExpression(e);if(!o)return null;if(!e.skip(100))return this.error(1005,e.range(),":"),null;let u=this.parseExpression(e,r>1?2:1);if(!u)return null;n=M.createTernaryExpression(n,o,u,e.range(s,e.pos));break}case 71:{let o=[n];do{if(n=this.parseExpression(e,2),!n)return null;o.push(n)}while(e.skip(71));n=M.createCommaExpression(o,e.range(s,e.pos));break}case 68:{if(e.skipIdentifier(2)){let o=M.createIdentifierExpression(e.readIdentifier(),e.range());n=M.createPropertyAccessExpression(n,o,e.range(s,e.pos))}else{let o=this.parseExpression(e,a+1);if(!o)return null;if(o.kind==10){if(n=this.joinPropertyCall(e,s,n,o),!n)return null}else return this.error(1003,o.range),null}if(e.skip(119)){if(n=this.parseTemplateLiteral(e,n),!n)return null}else n=this.maybeParseCallExpression(e,n,!0);break}case 101:case 102:case 103:case 105:case 104:case 106:case 107:case 108:case 109:case 110:case 111:case 113:case 112:case 83:{let o=this.parseExpression(e,a);if(!o)return null;n=M.createBinaryExpression(l,n,o,e.range(s,e.pos));break}case 72:case 73:case 74:case 75:case 76:case 78:case 79:case 77:case 81:case 82:case 84:case 85:case 86:case 89:case 90:case 91:case 92:case 93:case 94:case 97:case 98:case 29:{let o=this.parseExpression(e,a+1);if(!o)return null;n=M.createBinaryExpression(l,n,o,e.range(s,e.pos));break}default:assert(!1)}}return n}parseTemplateLiteral(e,r=null){let n=r?r.range.start:e.tokenPos,s=new Array,a=new Array,l=new Array;for(s.push(e.readString(0,r!=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(63))return this.error(1005,e.range(),"}"),null;s.push(e.readString(96,r!=null)),a.push(e.source.text.substring(e.readStringStart,e.readStringEnd))}return M.createTemplateLiteralExpression(r,s,a,l,e.range(n,e.pos))}joinPropertyCall(e,r,n,s){let a=s.expression;switch(a.kind){case 7:{s.expression=M.createPropertyAccessExpression(n,a,e.range(r,e.pos));break}case 10:{let l=this.joinPropertyCall(e,r,n,a);if(!l)return null;s.expression=l,s.range=e.range(r,e.pos);break}default:return this.error(1003,s.range),null}return s}maybeParseCallExpression(e,r,n=!1){let s=null;for(;e.skip(64)||n&&(s=this.tryParseTypeArgumentsBeforeArguments(e));){let a=this.parseArguments(e);if(!a)break;r=M.createCallExpression(r,s,a,e.range(r.range.start,e.pos)),n=!1}return r}checkASI(e){let r=e.peek();r==121||r==63||e.peekOnNewLine()||this.error(1012,e.range(e.nextTokenPos))}skipStatement(e){e.peekOnNewLine()&&e.next();do{let r=e.peek();if(r==121||r==70){e.next();break}if(e.peekOnNewLine())break;switch(e.next()){case 115:{e.readIdentifier();break}case 116:case 119:{e.readString();break}case 117:{e.readInteger(),e.checkForIdentifierStartAfterNumericLiteral();break}case 118:{e.readFloat(),e.checkForIdentifierStartAfterNumericLiteral();break}case 62:{this.skipBlock(e);break}}}while(!0);e.readingTemplateString=!1}skipBlock(e){let r=1,n=!0;do switch(e.next()){case 121:{this.error(1005,e.range(),"}"),n=!1;break}case 62:{++r;break}case 63:{--r,r||(n=!1);break}case 115:{e.readIdentifier();break}case 116:{e.readString();break}case 119:{for(e.readString();e.readingTemplateString;)this.skipBlock(e),e.readString(96);break}case 117:{e.readInteger(),e.checkForIdentifierStartAfterNumericLiteral();break}case 118:{e.readFloat(),e.checkForIdentifierStartAfterNumericLiteral();break}}while(n)}},tg=(R=>(R[R.None=0]="None",R[R.Comma=1]="Comma",R[R.Spread=2]="Spread",R[R.Yield=3]="Yield",R[R.Assignment=4]="Assignment",R[R.Conditional=5]="Conditional",R[R.LogicalOr=6]="LogicalOr",R[R.LogicalAnd=7]="LogicalAnd",R[R.BitwiseOr=8]="BitwiseOr",R[R.BitwiseXor=9]="BitwiseXor",R[R.BitwiseAnd=10]="BitwiseAnd",R[R.Equality=11]="Equality",R[R.Relational=12]="Relational",R[R.Shift=13]="Shift",R[R.Additive=14]="Additive",R[R.Multiplicative=15]="Multiplicative",R[R.Exponentiated=16]="Exponentiated",R[R.UnaryPrefix=17]="UnaryPrefix",R[R.UnaryPostfix=18]="UnaryPostfix",R[R.Call=19]="Call",R[R.MemberAccess=20]="MemberAccess",R[R.Grouping=21]="Grouping",R))(tg||{});function V2(t){switch(t){case 71:return 1;case 101:case 102:case 103:case 105:case 104:case 106:case 107:case 108:case 109:case 110:case 111:case 113:case 112:return 4;case 99:return 5;case 98:return 6;case 97:return 7;case 93:return 8;case 94:return 9;case 92:return 10;case 76:case 77:case 78:case 79:return 11;case 1:case 29:case 30:case 72:case 73:case 74:case 75:return 12;case 89:case 90:case 91:return 13;case 81:case 82:return 14;case 84:case 85:case 86:return 15;case 83:return 16;case 87:case 88:return 18;case 68:case 66:case 95:return 20}return 0}function $n(t,i){switch(i.kind){case 1:{if(i.name.identifier.text==t)return!0;let e=i.typeArguments;if(e){for(let r=0,n=e.length;r<n;r++)if($n(t,e[r]))return!0}break}case 2:{let e=i;if($n(t,e.returnType))return!0;let r=e.parameters;for(let n=0,s=r.length;n<s;n++)if($n(t,r[n].type))return!0;break}case 3:{let e=i.elements;for(let r=0,n=e.length;r<n;r++)if($n(t,e[r]))return!0;break}default:assert(!1)}return!1}var rg=16,Ci=rg-1,Kl=class{constructor(i,e,r,n,s){this.localFile=i;this.localIdentifier=e;this.foreignIdentifier=r;this.foreignPath=n;this.foreignPathAlt=s}},jl=class{constructor(i,e,r,n){this.localIdentifier=i;this.foreignIdentifier=e;this.foreignPath=r;this.foreignPathAlt=n}},Jp=class{constructor(i,e,r){this.foreignPath=i;this.foreignPathAlt=e;this.pathLiteral=r}},Re=(j=>(j[j.Invalid=0]="Invalid",j[j.IndexedGet=1]="IndexedGet",j[j.IndexedSet=2]="IndexedSet",j[j.UncheckedIndexedGet=3]="UncheckedIndexedGet",j[j.UncheckedIndexedSet=4]="UncheckedIndexedSet",j[j.Add=5]="Add",j[j.Sub=6]="Sub",j[j.Mul=7]="Mul",j[j.Div=8]="Div",j[j.Rem=9]="Rem",j[j.Pow=10]="Pow",j[j.BitwiseAnd=11]="BitwiseAnd",j[j.BitwiseOr=12]="BitwiseOr",j[j.BitwiseXor=13]="BitwiseXor",j[j.BitwiseShl=14]="BitwiseShl",j[j.BitwiseShr=15]="BitwiseShr",j[j.BitwiseShrU=16]="BitwiseShrU",j[j.Eq=17]="Eq",j[j.Ne=18]="Ne",j[j.Gt=19]="Gt",j[j.Ge=20]="Ge",j[j.Lt=21]="Lt",j[j.Le=22]="Le",j[j.Plus=23]="Plus",j[j.Minus=24]="Minus",j[j.Not=25]="Not",j[j.BitwiseNot=26]="BitwiseNot",j[j.PrefixInc=27]="PrefixInc",j[j.PrefixDec=28]="PrefixDec",j[j.PostfixInc=29]="PostfixInc",j[j.PostfixDec=30]="PostfixDec",j))(Re||{});(n=>{function t(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=t;function i(s){switch(s){case 81:case 102:return 5;case 82:case 103:return 6;case 84:case 104:return 7;case 85:case 106:return 8;case 86:case 107:return 9;case 83:case 105:return 10;case 92:case 111:return 11;case 93:case 112:return 12;case 94:case 113:return 13;case 89:case 108:return 14;case 90:case 109:return 15;case 91:case 110:return 16;case 76:case 78:return 17;case 77:case 79:return 18;case 73:return 19;case 75:return 20;case 72:return 21;case 74:return 22}return 0}n.fromBinaryToken=i;function e(s){switch(s){case 81:return 23;case 82:return 24;case 95:return 25;case 96:return 26;case 87:return 27;case 88:return 28}return 0}n.fromUnaryPrefixToken=e;function r(s){switch(s){case 87:return 29;case 88:return 30}return 0}n.fromUnaryPostfixToken=r})(Re||={});var rs=class extends Ke{constructor(e,r=null){super(r);this.options=e;this.sources=[];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.mainFunction=null;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._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._errorInstance=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=zt.create(e.stackSize>0,e.sizeTypeRef),this.parser=new ts(this.diagnostics,this.sources),this.resolver=new Xn(this);let n=new ss(this,ce.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(P.ArrayBufferView)),e}get arrayBufferInstance(){let e=this._arrayBufferInstance;return e||(this._arrayBufferInstance=e=this.requireClass(P.ArrayBuffer)),e}get arrayPrototype(){let e=this._arrayPrototype;return e||(this._arrayPrototype=e=this.require(P.Array,6)),e}get staticArrayPrototype(){let e=this._staticArrayPrototype;return e||(this._staticArrayPrototype=e=this.require(P.StaticArray,6)),e}get setPrototype(){let e=this._setPrototype;return e||(this._setPrototype=e=this.require(P.Set,6)),e}get mapPrototype(){let e=this._mapPrototype;return e||(this._mapPrototype=e=this.require(P.Map,6)),e}get functionPrototype(){let e=this._functionPrototype;return e||(this._functionPrototype=e=this.require(P.Function,6)),e}get int8ArrayPrototype(){let e=this._int8ArrayPrototype;return e||(this._int8ArrayPrototype=e=this.require(P.Int8Array,6)),e}get int16ArrayPrototype(){let e=this._int16ArrayPrototype;return e||(this._int16ArrayPrototype=e=this.require(P.Int16Array,6)),e}get int32ArrayPrototype(){let e=this._int32ArrayPrototype;return e||(this._int32ArrayPrototype=e=this.require(P.Int32Array,6)),e}get int64ArrayPrototype(){let e=this._int64ArrayPrototype;return e||(this._int64ArrayPrototype=e=this.require(P.Int64Array,6)),e}get uint8ArrayPrototype(){let e=this._uint8ArrayPrototype;return e||(this._uint8ArrayPrototype=e=this.require(P.Uint8Array,6)),e}get uint8ClampedArrayPrototype(){let e=this._uint8ClampedArrayPrototype;return e||(this._uint8ClampedArrayPrototype=e=this.require(P.Uint8ClampedArray,6)),e}get uint16ArrayPrototype(){let e=this._uint16ArrayPrototype;return e||(this._uint16ArrayPrototype=e=this.require(P.Uint16Array,6)),e}get uint32ArrayPrototype(){let e=this._uint32ArrayPrototype;return e||(this._uint32ArrayPrototype=e=this.require(P.Uint32Array,6)),e}get uint64ArrayPrototype(){let e=this._uint64ArrayPrototype;return e||(this._uint64ArrayPrototype=e=this.require(P.Uint64Array,6)),e}get float32ArrayPrototype(){let e=this._float32ArrayPrototype;return e||(this._float32ArrayPrototype=e=this.require(P.Float32Array,6)),e}get float64ArrayPrototype(){let e=this._float64ArrayPrototype;return e||(this._float64ArrayPrototype=e=this.require(P.Float64Array,6)),e}get stringInstance(){let e=this._stringInstance;return e||(this._stringInstance=e=this.requireClass(P.String)),e}get errorInstance(){let e=this._errorInstance;return e||(this._errorInstance=e=this.requireClass(P.Error)),e}get regexpInstance(){let e=this._regexpInstance;return e||(this._regexpInstance=e=this.requireClass(P.RegExp)),e}get objectPrototype(){let e=this._objectPrototype;return e||(this._objectPrototype=e=this.require(P.Object,6)),e}get objectInstance(){let e=this._objectInstance;return e||(this._objectInstance=e=this.requireClass(P.Object)),e}get templateStringsArrayInstance(){let e=this._templateStringsArrayInstance;return e||(this._templateStringsArrayInstance=e=this.requireClass(P.TemplateStringsArray)),e}get abortInstance(){let e=this.lookup(P.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(P.alloc)),e}get reallocInstance(){let e=this._reallocInstance;return e||(this._reallocInstance=e=this.requireFunction(P.realloc)),e}get freeInstance(){let e=this._freeInstance;return e||(this._freeInstance=e=this.requireFunction(P.free)),e}get newInstance(){let e=this._newInstance;return e||(this._newInstance=e=this.requireFunction(P.new_)),e}get renewInstance(){let e=this._renewInstance;return e||(this._renewInstance=e=this.requireFunction(P.renew)),e}get linkInstance(){let e=this._linkInstance;return e||(this._linkInstance=e=this.requireFunction(P.link)),e}get collectInstance(){let e=this._collectInstance;return e||(this._collectInstance=e=this.requireFunction(P.collect)),e}get visitInstance(){let e=this._visitInstance;return e||(this._visitInstance=e=this.requireFunction(P.visit)),e}get newBufferInstance(){let e=this._newBufferInstance;return e||(this._newBufferInstance=e=this.requireFunction(P.newBuffer)),e}get newArrayInstance(){let e=this._newArrayInstance;return e||(this._newArrayInstance=e=this.requireFunction(P.newArray)),e}get BLOCKInstance(){let e=this._BLOCKInstance;return e||(this._BLOCKInstance=e=this.requireClass(P.BLOCK)),e}get OBJECTInstance(){let e=this._OBJECTInstance;return e||(this._OBJECTInstance=e=this.requireClass(P.OBJECT)),e}getSource(e){let r=this.sources;for(let n=0;n<r.length;++n){let s=r[n];if(s.internalPath==e)return s.text}return null}get blockOverhead(){return this.BLOCKInstance.nextMemoryOffset}get objectOverhead(){return this.OBJECTInstance.nextMemoryOffset-this.blockOverhead+Ci&~Ci}get totalOverhead(){return this.blockOverhead+this.objectOverhead}searchFunctionByRef(e){let r=qp(e);if(r){let n=this.instancesByName;if(n.has(r)){let s=assert(n.get(r));if(s.kind==5)return s}}return null}computeBlockStart(e){let r=this.blockOverhead;return(e+r+Ci&~Ci)-r}computeBlockStart64(e){let r=i64_new(this.blockOverhead);return i64_sub(i64_align(i64_add(e,r),rg),r)}computeBlockSize(e,r){r&&(e+=this.objectOverhead);let n=this.computeBlockStart(e),s=this.blockOverhead,a=(3*this.options.usizeType.byteSize+s+Ci&~Ci)-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,r=0){let n=ce.native.range;return M.createVariableDeclaration(M.createIdentifierExpression(e,n),null,r,null,null,n)}makeNativeTypeDeclaration(e,r=0){let n=ce.native.range,s=M.createIdentifierExpression(e,n);return M.createTypeDeclaration(s,null,r,null,M.createOmittedType(n),n)}makeNativeFunctionDeclaration(e,r=0){let n=ce.native.range,s=this.nativeDummySignature;return s||(this.nativeDummySignature=s=M.createFunctionType([],M.createNamedType(M.createSimpleTypeName(P.void_,n),null,!1,n),null,!1,n)),M.createFunctionDeclaration(M.createIdentifierExpression(e,n),null,r,null,s,null,0,n)}makeNativeNamespaceDeclaration(e,r=0){let n=ce.native.range;return M.createNamespaceDeclaration(M.createIdentifierExpression(e,n),null,r,[],n)}makeNativeFunction(e,r,n=this.nativeFile,s=0,a=0){return new bt(e,new Je(e,n,this.makeNativeFunctionDeclaration(e,s),a),null,r)}getElementByDeclaration(e){let r=this.elementsByDeclaration;return r.has(e)?assert(r.get(e)):null}initialize(){if(this.initialized)return;this.initialized=!0;let e=this.options;this.registerNativeType(P.i8,p.i8),this.registerNativeType(P.i16,p.i16),this.registerNativeType(P.i32,p.i32),this.registerNativeType(P.i64,p.i64),this.registerNativeType(P.isize,e.isizeType),this.registerNativeType(P.u8,p.u8),this.registerNativeType(P.u16,p.u16),this.registerNativeType(P.u32,p.u32),this.registerNativeType(P.u64,p.u64),this.registerNativeType(P.usize,e.usizeType),this.registerNativeType(P.bool,p.bool),this.registerNativeType(P.f32,p.f32),this.registerNativeType(P.f64,p.f64),this.registerNativeType(P.void_,p.void),this.registerNativeType(P.number,p.f64),this.registerNativeType(P.boolean,p.bool),this.nativeFile.add(P.native,new et(P.native,this.nativeFile,this.makeNativeTypeDeclaration(P.native,65538),512)),this.nativeFile.add(P.indexof,new et(P.indexof,this.nativeFile,this.makeNativeTypeDeclaration(P.indexof,65538),512)),this.nativeFile.add(P.valueof,new et(P.valueof,this.nativeFile,this.makeNativeTypeDeclaration(P.valueof,65538),512)),this.nativeFile.add(P.returnof,new et(P.returnof,this.nativeFile,this.makeNativeTypeDeclaration(P.returnof,65538),512)),this.nativeFile.add(P.nonnull,new et(P.nonnull,this.nativeFile,this.makeNativeTypeDeclaration(P.nonnull,65538),512)),this.registerNativeType(P.v128,p.v128),this.registerNativeType(P.ref_func,p.func),this.registerNativeType(P.ref_extern,p.extern),this.registerNativeType(P.ref_any,p.any),this.registerNativeType(P.ref_eq,p.eq),this.registerNativeType(P.ref_struct,p.struct),this.registerNativeType(P.ref_array,p.array),this.registerNativeType(P.ref_i31,p.i31),this.registerNativeType(P.ref_string,p.string),this.registerNativeType(P.ref_stringview_wtf8,p.stringview_wtf8),this.registerNativeType(P.ref_stringview_wtf16,p.stringview_wtf16),this.registerNativeType(P.ref_stringview_iter,p.stringview_iter),this.registerConstantInteger(P.ASC_TARGET,p.i32,i64_new(e.isWasm64?2:1)),this.registerConstantInteger(P.ASC_RUNTIME,p.i32,i64_new(e.runtime)),this.registerConstantInteger(P.ASC_NO_ASSERT,p.bool,i64_new(e.noAssert?1:0,0)),this.registerConstantInteger(P.ASC_MEMORY_BASE,p.i32,i64_new(e.memoryBase,0)),this.registerConstantInteger(P.ASC_TABLE_BASE,p.i32,i64_new(e.tableBase,0)),this.registerConstantInteger(P.ASC_OPTIMIZE_LEVEL,p.i32,i64_new(e.optimizeLevelHint,0)),this.registerConstantInteger(P.ASC_SHRINK_LEVEL,p.i32,i64_new(e.shrinkLevelHint,0)),this.registerConstantInteger(P.ASC_LOW_MEMORY_LIMIT,p.i32,i64_new(e.lowMemoryLimit,0)),this.registerConstantInteger(P.ASC_EXPORT_RUNTIME,p.bool,i64_new(e.exportRuntime?1:0,0)),this.registerConstantInteger(P.ASC_VERSION_MAJOR,p.i32,i64_new(e.bundleMajorVersion)),this.registerConstantInteger(P.ASC_VERSION_MINOR,p.i32,i64_new(e.bundleMinorVersion)),this.registerConstantInteger(P.ASC_VERSION_PATCH,p.i32,i64_new(e.bundlePatchVersion)),this.registerConstantInteger(P.ASC_FEATURE_SIGN_EXTENSION,p.bool,i64_new(e.hasFeature(1)?1:0,0)),this.registerConstantInteger(P.ASC_FEATURE_MUTABLE_GLOBALS,p.bool,i64_new(e.hasFeature(2)?1:0,0)),this.registerConstantInteger(P.ASC_FEATURE_NONTRAPPING_F2I,p.bool,i64_new(e.hasFeature(4)?1:0,0)),this.registerConstantInteger(P.ASC_FEATURE_BULK_MEMORY,p.bool,i64_new(e.hasFeature(8)?1:0,0)),this.registerConstantInteger(P.ASC_FEATURE_SIMD,p.bool,i64_new(e.hasFeature(16)?1:0,0)),this.registerConstantInteger(P.ASC_FEATURE_THREADS,p.bool,i64_new(e.hasFeature(32)?1:0,0)),this.registerConstantInteger(P.ASC_FEATURE_EXCEPTION_HANDLING,p.bool,i64_new(e.hasFeature(64)?1:0,0)),this.registerConstantInteger(P.ASC_FEATURE_TAIL_CALLS,p.bool,i64_new(e.hasFeature(128)?1:0,0)),this.registerConstantInteger(P.ASC_FEATURE_REFERENCE_TYPES,p.bool,i64_new(e.hasFeature(256)?1:0,0)),this.registerConstantInteger(P.ASC_FEATURE_MULTI_VALUE,p.bool,i64_new(e.hasFeature(512)?1:0,0)),this.registerConstantInteger(P.ASC_FEATURE_GC,p.bool,i64_new(e.hasFeature(1024)?1:0,0)),this.registerConstantInteger(P.ASC_FEATURE_MEMORY64,p.bool,i64_new(e.hasFeature(2048)?1:0,0)),this.registerConstantInteger(P.ASC_FEATURE_RELAXED_SIMD,p.bool,i64_new(e.hasFeature(4096)?1:0,0)),this.registerConstantInteger(P.ASC_FEATURE_EXTENDED_CONST,p.bool,i64_new(e.hasFeature(8192)?1:0,0)),this.registerConstantInteger(P.ASC_FEATURE_STRINGREF,p.bool,i64_new(e.hasFeature(16384)?1:0,0)),this.registerConstantInteger(P.ASC_FEATURE_SHARED_EVERYTHING,p.bool,i64_new(e.hasFeature(32768)?1:0,0)),this.registerConstantInteger(P.ASC_FEATURE_CLOSURES,p.bool,i64_new(e.hasFeature(65536)?1:0,0));let r=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 _=this.sources[u],f=new ss(this,_);this.filesByName.set(f.internalName,f);let h=_.statements;for(let y=0,x=h.length;y<x;++y){let b=h[y];switch(b.kind){case 36:{this.initializeExports(b,f,n,s);break}case 37:{this.initializeExportDefault(b,f,a,l);break}case 43:{this.initializeImports(b,f,r,n);break}case 48:{this.initializeVariables(b,f);break}case 52:{this.initializeClass(b,f,a,l);break}case 53:{this.initializeEnum(b,f);break}case 56:{this.initializeFunction(b,f);break}case 58:{this.initializeInterface(b,f,a);break}case 60:{this.initializeNamespace(b,f,a,l);break}case 61:{this.initializeTypeDefinition(b,f);break}}}}for(let u=Map_keys(s),c=0,_=u.length;c<_;++c){let f=u[c],h=assert(s.get(f));for(let y=0,x=h.length;y<x;++y){let b=unchecked(h[y]),A=this.lookupForeignFile(b.foreignPath,b.foreignPathAlt);if(!A){this.error(6054,b.pathLiteral.range,b.pathLiteral.value);continue}f.ensureExportStar(A)}}do{let u=0,c=!1;for(;u<r.length;){let _=r[u],f=_.localIdentifier,h=_.foreignIdentifier,y=assert(this.lookupForeignFile(_.foreignPath,_.foreignPathAlt));if(h){let x=this.lookupForeign(h.text,y,n);x?(_.localFile.add(f.text,x,f),r.splice(u,1),c=!0):++u}else{let x=_.localFile,b=f.text;x.add(b,y.asAliasNamespace(b,x,f),f),r.splice(u,1),c=!0}}if(!c){for(let _=0,f=r.length;_<f;++_){let h=r[_],y=h.foreignIdentifier;y&&this.error(2305,y.range,h.foreignPath,y.text)}break}}while(!0);for(let u=Map_keys(n),c=0,_=u.length;c<_;++c){let f=unchecked(u[c]),h=assert(n.get(f));for(let y=Map_keys(h),x=0,b=y.length;x<b;++x){let A=unchecked(y[x]),I=assert(h.get(A)),E=I.localIdentifier.text,k=I.foreignPath;if(k){let F=assert(this.lookupForeignFile(k,assert(I.foreignPathAlt))),R=this.lookupForeign(E,F,n);R?f.ensureExport(A,R):this.error(2305,I.localIdentifier.range,k,E)}else{let F=f.getMember(E);if(F)f.ensureExport(A,F);else{let R=this.lookup(E);R&&ns(R.kind)?f.ensureExport(A,R):this.error(2305,I.foreignIdentifier.range,f.internalName,I.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,P.I8),this.registerWrapperClass(p.i16,P.I16),this.registerWrapperClass(p.i32,P.I32),this.registerWrapperClass(p.i64,P.I64),this.registerWrapperClass(e.isizeType,P.Isize),this.registerWrapperClass(p.u8,P.U8),this.registerWrapperClass(p.u16,P.U16),this.registerWrapperClass(p.u32,P.U32),this.registerWrapperClass(p.u64,P.U64),this.registerWrapperClass(e.usizeType,P.Usize),this.registerWrapperClass(p.bool,P.Bool),this.registerWrapperClass(p.f32,P.F32),this.registerWrapperClass(p.f64,P.F64),e.hasFeature(16)&&this.registerWrapperClass(p.v128,P.V128),e.hasFeature(256)&&(this.registerWrapperClass(p.func,P.RefFunc),this.registerWrapperClass(p.extern,P.RefExtern),e.hasFeature(1024)&&(this.registerWrapperClass(p.any,P.RefAny),this.registerWrapperClass(p.eq,P.RefEq),this.registerWrapperClass(p.struct,P.RefStruct),this.registerWrapperClass(p.array,P.RefArray),this.registerWrapperClass(p.i31,P.RefI31)),e.hasFeature(16384)&&this.registerWrapperClass(p.string,P.RefString));let o=this.resolver;for(let u=0,c=a.length;u<c;++u){let _=a[u],f=assert(_.extendsNode),h=o.resolveTypeName(f.name,null,_.parent);if(h){if(_.kind==6)if(h.kind==6){let y=h;y.hasDecorator(32)&&this.error(211,f.range,y.identifierNode.text),y.hasDecorator(16)!=_.hasDecorator(16)&&this.error(207,le.join(_.identifierNode.range,f.range)),_.extends(y)?this.error(2506,y.identifierNode.range,y.identifierNode.text):_.basePrototype=y}else this.error(1311,f.range);else if(_.kind==8)if(h.kind==8){let y=h;_.extends(y)?this.error(2506,y.identifierNode.range,y.identifierNode.text):_.basePrototype=y}else this.error(2312,f.range)}}for(let u=0,c=a.length;u<c;u++){let _=a[u],f=_.instanceMembers;if(f){let h=Map_values(f);for(let y=0,x=h.length;y<x;y++){let b=h[y],A=b.declaration;if(A.is(8192)){let I=_.basePrototype,E=!1;for(;I;){let k=I.instanceMembers;if(k&&k.has(b.name)){E=!0;break}I=I.basePrototype}if(!E){let k=assert(_.basePrototype);this.error(4117,A.name.range,k.name)}}}}}for(let u=0,c=l.length;u<c;++u){let _=l[u],f=assert(_.implementsNodes);for(let h=0,y=f.length;h<y;++h){let x=f[h],b=o.resolveTypeName(x.name,null,_.parent);if(b)if(b.kind==8){let A=b,I=_.interfacePrototypes;I||(_.interfacePrototypes=I=new Array),I.push(A)}else this.error(2422,x.range)}}for(let u=0,c=a.length;u<c;++u){let _=a[u],f=_.basePrototype;f&&this.processOverrides(_,f)}for(let u=0,c=l.length;u<c;++u){let _=l[u],f=_.basePrototype,h=_.interfacePrototypes;if(f&&this.processOverrides(_,f),h)for(let y=0,x=h.length;y<x;++y)this.processOverrides(_,h[y])}{let u=e.globalAliases;u||(u=new Map),u.has(P.abort)||u.set(P.abort,d.abort),u.has(P.trace)||u.set(P.trace,d.trace),u.has(P.seed)||u.set(P.seed,d.seed),u.has(P.Math)||u.set(P.Math,P.NativeMath),u.has(P.Mathf)||u.set(P.Mathf,P.NativeMathf);for(let c=Map_keys(u),_=0,f=c.length;_<f;++_){let h=unchecked(c[_]),y=changetype(u.get(h));if(assert(y!=null),!y.length){this.elementsByName.delete(h);continue}let x=y.charCodeAt(0);if(x>=48&&x<=57)this.registerConstantInteger(h,p.i32,i64_new(parseInt(y,10)));else{let b=this.elementsByName;b.has(y)?b.set(h,assert(b.get(y))):this.error(111,null,y)}}}for(let u=Map_values(this.filesByName),c=0,_=u.length;c<_;++c){let f=unchecked(u[c]);f.source.sourceKind==1&&this.markModuleExports(f)}}processOverrides(e,r){let n=e.instanceMembers;if(n){let s=Map_values(n),a=null;do{let l=r.instanceMembers;if(l)for(let c=0,_=s.length;c<_;++c){let f=s[c];if(l.has(f.name)){let h=assert(l.get(f.name));this.doProcessOverride(e,f,r,h)}}let o=r.interfacePrototypes;if(o)for(let c=0,_=o.length;c<_;++c){let f=o[c];f!=r&&this.processOverrides(e,f)}let u=r.basePrototype;if(!u||(a||(a=new Set),a.add(r),a.has(u)))break;r=u}while(!0)}}doProcessOverride(e,r,n,s){if(!r.isAny(524800))if(r.kind==4&&s.kind==4){let a=r,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(r);let _=l.instances;if(_)for(let f=Map_values(_),h=0,y=f.length;h<y;++h)f[h].set(268435456)}else if(r.kind==10&&s.kind==10){let a=r,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 f=o.unboundOverrides;f||(o.unboundOverrides=f=new Set),f.add(c)}let _=o.instances;if(_)for(let f=Map_values(_),h=0,y=f.length;h<y;++h)f[h].set(268435456)}let u=l.setterPrototype;if(u&&a.setterPrototype){u.set(268435456);let c=a.setterPrototype;if(c){let f=u.unboundOverrides;f||(u.unboundOverrides=f=new Set),f.add(c)}let _=u.instances;if(_)for(let f=Map_values(_),h=0,y=f.length;h<y;++h)f[h].set(268435456)}}else this.errorRelated(2416,r.identifierNode.range,s.identifierNode.range,r.name,e.internalName,n.internalName)}lookup(e){let r=this.elementsByName;return r.has(e)?assert(r.get(e)):null}require(e,r){let n=this.lookup(e);if(!n)throw this.error(111,null,e),new Error(`Missing standard library component: ${e}`);if(n.kind!=r)throw this.error(111,null,e),new Error(`Invalid standard library component kind: ${e}`);return n}requireGlobal(e){return this.require(e,0)}requireClass(e){let r=this.require(e,6),n=this.resolver.resolveClass(r,null);if(!n)throw new Error(`Invalid standard library class: ${e}`);return n}requireFunction(e,r=null){let n=this.require(e,4),s=this.resolver.resolveFunction(n,r);if(!s)throw new Error(`Invalid standard library function: ${e}`);return s}markModuleExports(e){let r=e.exports;if(r)for(let s=Map_values(r),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 r=e.members;if(r)for(let n=Map_values(r),s=0,a=n.length;s<a;++s){let l=unchecked(n[s]);this.markModuleExport(l)}}markModuleImport(e,r,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(r,n)}registerNativeType(e,r){let n=new et(e,this.nativeFile,this.makeNativeTypeDeclaration(e,2),512);n.setType(r),this.nativeFile.add(e,n)}registerWrapperClass(e,r){let n=this.wrapperClasses;assert(!e.isInternalReference&&!n.has(e));let s=assert(this.lookup(r));assert(s.kind==6);let a=assert(this.resolver.resolveClass(s,null));a.wrappedType=e,n.set(e,a)}registerConstantInteger(e,r,n){assert(r.isIntegerInclReference);let s=new Pr(e,this.nativeFile,1024,this.makeNativeVariableDeclaration(e,10));s.setConstantIntegerValue(n,r),this.nativeFile.add(e,s)}registerConstantFloat(e,r,n){assert(r.isFloatValue);let s=new Pr(e,this.nativeFile,1024,this.makeNativeVariableDeclaration(e,10));s.setConstantFloatValue(n,r),this.nativeFile.add(e,s)}ensureGlobal(e,r){let n=this.elementsByName;if(n.has(e)){let s=assert(n.get(e));if(s!=r){let a=ec(s,r);if(!a)return ns(s.kind)?this.errorRelated(2300,r.identifierNode.range,s.declaration.name.range,e):this.error(2300,r.identifierNode.range,e),r;r=a}}return n.set(e,r),r}lookupForeignFile(e,r){let n=this.filesByName;return n.has(e)?assert(n.get(e)):n.has(r)?assert(n.get(r)):null}lookupForeign(e,r,n){do{let a=r.lookupExport(e);if(a)return a;if(n.has(r)){let l=assert(n.get(r));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,r=c;continue}if(a=r.getMember(o.localIdentifier.text),a)return a}}break}while(!0);let s=r.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,r){let n=0;if(e)for(let s=0,a=e.length;s<a;++s){let l=e[s],o=$e.fromNode(l.name),u=sr.fromKind(o);u&&(r&u?n&u?this.error(213,l.range):n|=u:this.error(212,l.range,l.name.range.toString()))}return n}checkFeatureEnabled(e,r){return this.options.hasFeature(e)?!0:(this.error(103,r.range,oi(e)),!1)}checkTypeSupported(e,r){switch(e.kind){case 13:return this.checkFeatureEnabled(16,r);case 15:case 14:return e.is(512)?this.checkFeatureEnabled(256,r):this.checkFeatureEnabled(1024,r);case 16:case 17:case 18:case 19:case 20:return this.checkFeatureEnabled(256,r)&&this.checkFeatureEnabled(1024,r);case 21:case 22:case 23:case 24:return this.checkFeatureEnabled(256,r)&&this.checkFeatureEnabled(16384,r)}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.checkTypeSupported(s[a],r))return!1}n=n.base}while(n);else{let s=e.getSignature();if(s){let a=s.thisType;if(a&&!this.checkTypeSupported(a,r))return!1;let l=s.parameterTypes;for(let u=0,c=l.length;u<c;++u)if(!this.checkTypeSupported(l[u],r))return!1;let o=s.returnType;if(!this.checkTypeSupported(o,r))return!1}}return!0}initializeClass(e,r,n,s){let a=e.name.text,l=new ls(a,r,e,this.checkDecorators(e.decorators,368689));if(!r.add(a,l))return null;let o=e.implementsTypes;if(o){let c=o.length;c&&(l.hasDecorator(16)?this.error(208,le.join(e.name.range,o[c-1].range)):s.push(l))}e.extendsType?n.push(l):!l.hasDecorator(16)&&l.internalName!=d.Object&&(l.implicitlyExtendsObject=!0);let u=e.members;for(let c=0,_=u.length;c<_;++c){let f=u[c];switch(f.kind){case 55:{this.initializeField(f,l);break}case 59:{let h=f;if(h.is(128)&&h.is(65536)&&this.error(241,h.name.range,h.name.text),f.isAny(6144))this.initializeProperty(h,l);else{let y=this.initializeMethod(h,l);y&&h.name.kind==27&&(l.constructorPrototype=y)}break}case 66:break;default:assert(!1)}}return l}initializeField(e,r){let n=e.name.text,s=e.decorators,a,l=2048;if(l|=524288,r.is(32768)&&(l|=128),e.is(32)){if(assert(r.kind!=8),l|=1024,e.is(64)&&(l|=64),a=new Pr(n,r,this.checkDecorators(s,l),e),!r.add(n,a))return}else if(assert(!e.isAny(6272)),a=Pi.forField(n,r,e,this.checkDecorators(s,l)),!r.addInstance(n,a))return}initializeMethod(e,r){let n=e.name.text,s=e.is(32),a=2112;e.is(65536)||(a|=147470),r.is(32768)&&(a|=128),e.range.source.isLibrary&&(a|=512);let l=new Je(n,r,e,this.checkDecorators(e.decorators,a));if(l.hasDecorator(512)&&!g.has(l.internalName)&&this.error(100,e.range,`Builtin '${l.internalName}'`),s){if(assert(e.name.kind!=27),!r.add(n,l))return null}else if(!r.addInstance(n,l))return null;return this.checkOperatorOverloads(e.decorators,l,r),l}checkOperatorOverloads(e,r,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 _=c.value,f=Re.fromDecorator(l.decoratorKind,_);if(f==0)this.error(224,c.range,_);else{let h=n.operatorOverloadPrototypes;h.has(f)?this.error(2393,c.range):(r.operatorKind=f,h.set(f,r))}}else this.error(1141,c.range)}else this.error(2554,l.range,"1",u.toString())}}}}ensureProperty(e,r){let n=e.name.text;if(e.is(32)){let s=r.members;if(s&&s.has(n)){let a=assert(s.get(n));if(a.kind==10)return a}else{let a=new Pi(n,r,e);return r.add(n,a)?a:null}}else{let s=r.instanceMembers;if(s&&s.has(n)){let a=assert(s.get(n));if(a.kind==10)return a}else{let a=new Pi(n,r,e);return r.addInstance(n,a)?a:null}}return this.error(2718,e.name.range,n),null}initializeProperty(e,r){let n=this.ensureProperty(e,r);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 Je((a?la:oa)+s,n.parent,e,this.checkDecorators(e.decorators,2112));a?n.getterPrototype=l:n.setterPrototype=l}initializeEnum(e,r){let n=e.name.text,s=new Hl(n,r,e,this.checkDecorators(e.decorators,1089));if(!r.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,r){let n=e.name.text,s=new Ql(n,r,e,this.checkDecorators(e.decorators,0));r.add(n,s)}initializeExports(e,r,n,s){let a=e.members;if(a)for(let l=0,o=a.length;l<o;++l)this.initializeExport(a[l],r,e.internalPath,n);else{let l;s.has(r)?l=assert(s.get(r)):s.set(r,l=[]);let o=e.internalPath;l.push(new Jp(o,o.endsWith(ze)?o.substring(0,o.length-ze.length):o+ze,assert(e.path)))}}initializeExport(e,r,n,s){let a=e.localName.text,l=e.exportedName.text,o=r.lookupExport(l);if(o){this.error(2484,e.exportedName.range,l);return}if(n==null)if(o=r.getMember(a))r.ensureExport(l,o);else{let u;s.has(r)?u=assert(s.get(r)):s.set(r,u=new Map),u.set(l,new jl(e.localName,e.exportedName,null,null))}else{let u;s.has(r)?u=assert(s.get(r)):s.set(r,u=new Map),u.set(l,new jl(e.localName,e.exportedName,n,n.endsWith(ze)?n.substring(0,n.length-ze.length):n+ze))}}initializeExportDefault(e,r,n,s){let a=e.declaration,l=null;switch(a.kind){case 53:{l=this.initializeEnum(a,r);break}case 56:{l=this.initializeFunction(a,r);break}case 52:{l=this.initializeClass(a,r,n,s);break}case 58:{l=this.initializeInterface(a,r,n);break}case 60:{l=this.initializeNamespace(a,r,n,s);break}default:assert(!1)}if(l){let o=r.exports;if(!o)r.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,r,n,s){let a=e.declarations;if(a)for(let l=0,o=a.length;l<o;++l)this.initializeImport(a[l],r,e.internalPath,n,s);else{let l=e.namespaceName;l&&n.push(new Kl(r,l,null,e.internalPath,e.internalPath+ze))}}initializeImport(e,r,n,s,a){let l=n.endsWith(ze)?n.substring(0,n.length-ze.length):n+ze,o=this.lookupForeignFile(n,l);if(o){let u=this.lookupForeign(e.foreignName.text,o,a);if(u){r.add(e.name.text,u,e.name);return}}s.push(new Kl(r,e.name,e.foreignName,n,l))}initializeFunction(e,r){let n=e.name.text,s=2048;s|=1048576,e.is(32768)?s|=384:(s|=64,(e.range.source.isLibrary||e.is(2))&&(s|=1024)),e.is(262144)||r.kind!=6&&(s|=1,e.is(65536)||(s|=4096)),e.is(65536)||(s|=16384),e.range.source.isLibrary&&(s|=512);let a=new Je(n,r,e,this.checkDecorators(e.decorators,s));return a.hasDecorator(512)&&!g.has(a.internalName)&&this.error(100,e.range,`Builtin '${a.internalName}'`),a.hasDecorator(4096)&&(this.mainFunction?this.error(213,e.range):this.mainFunction=a),r.add(n,a)?a:null}initializeInterface(e,r,n){let s=e.name.text,a=new Xl(s,r,e,this.checkDecorators(e.decorators,1));if(!r.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 55:{this.initializeFieldAsProperty(c,a);break}case 59:{let _=c;_.is(65536)&&this.error(241,_.name.range,_.name.text),c.isAny(6144)?this.initializeProperty(_,a):this.initializeMethod(_,a);break}default:assert(!1)}}return a}initializeFieldAsProperty(e,r){let n=e.initializer;n&&this.error(1246,n.range);let s=e.type;s||(s=M.createOmittedType(e.name.range.atEnd)),this.initializeProperty(M.createMethodDeclaration(e.name,e.decorators,e.flags|2048,null,M.createFunctionType([],s,null,!1,e.range),null,e.range),r),e.is(64)||this.initializeProperty(M.createMethodDeclaration(e.name,e.decorators,e.flags|4096,null,M.createFunctionType([M.createParameter(0,e.name,s,null,e.name.range)],M.createOmittedType(e.name.range.atEnd),null,!1,e.range),null,e.range),r)}initializeNamespace(e,r,n,s){let a=e.name.text,l=new as(a,r,e,this.checkDecorators(e.decorators,1));if(!r.add(a,l))return null;let o=assert(r.getMember(a)),u=e.members;for(let c=0,_=u.length;c<_;++c){let f=u[c];switch(f.kind){case 52:{this.initializeClass(f,l,n,s);break}case 53:{this.initializeEnum(f,l);break}case 56:{this.initializeFunction(f,l);break}case 58:{this.initializeInterface(f,l,n);break}case 60:{this.initializeNamespace(f,l,n,s);break}case 61:{this.initializeTypeDefinition(f,l);break}case 48:{this.initializeVariables(f,l);break}default:assert(!1)}}return l!=o&&Ut(l,o),o}initializeTypeDefinition(e,r){let n=e.name.text,s=new et(n,r,e,this.checkDecorators(e.decorators,0));r.add(n,s)}initializeVariables(e,r){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 Pr(o,r,this.checkDecorators(l.decorators,u),l);c.hasDecorator(512)&&!ot.has(c.internalName)&&this.error(100,l.range,`Builtin '${c.internalName}'`),r.add(o,c)}}},yt=(b=>(b[b.Global=0]="Global",b[b.Local=1]="Local",b[b.Enum=2]="Enum",b[b.EnumValue=3]="EnumValue",b[b.FunctionPrototype=4]="FunctionPrototype",b[b.Function=5]="Function",b[b.ClassPrototype=6]="ClassPrototype",b[b.Class=7]="Class",b[b.InterfacePrototype=8]="InterfacePrototype",b[b.Interface=9]="Interface",b[b.PropertyPrototype=10]="PropertyPrototype",b[b.Property=11]="Property",b[b.Namespace=12]="Namespace",b[b.File=13]="File",b[b.TypeDefinition=14]="TypeDefinition",b[b.IndexSignature=15]="IndexSignature",b))(yt||{}),sr=(R=>(R[R.None=0]="None",R[R.Global=1]="Global",R[R.OperatorBinary=2]="OperatorBinary",R[R.OperatorPrefix=4]="OperatorPrefix",R[R.OperatorPostfix=8]="OperatorPostfix",R[R.Unmanaged=16]="Unmanaged",R[R.Final=32]="Final",R[R.Inline=64]="Inline",R[R.External=128]="External",R[R.ExternalJs=256]="ExternalJs",R[R.Builtin=512]="Builtin",R[R.Lazy=1024]="Lazy",R[R.Unsafe=2048]="Unsafe",R[R.Main=4096]="Main",R[R.Data=8192]="Data",R[R.Remote=16384]="Remote",R[R.Service=32768]="Service",R[R.Rest=65536]="Rest",R[R.Route=131072]="Route",R[R.Database=262144]="Database",R[R.Collection=524288]="Collection",R[R.DbFunction=1048576]="DbFunction",R))(sr||{});(i=>{function t(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 32;case 8:return 64;case 9:return 128;case 10:return 256;case 11:return 512;case 12:return 1024;case 13:return 2048;case 14:return 4096;case 15:return 8192;case 16:return 16384;case 17:return 32768;case 18:return 65536;case 19:case 20:case 21:case 22:case 23:case 24:case 25:case 26:return 131072;case 31:return 262144;case 32:return 524288;case 33:case 34:case 35:case 36:case 37:return 1048576;default:return 0}}i.fromKind=t})(sr||={});var is=class{constructor(i,e,r,n,s){this.kind=i;this.name=e;this.internalName=r;this.program=n;this.flags=0;this.decoratorFlags=0;this.members=null;this.shadowType=null;this.program=n,this.name=e,this.internalName=r,s?this.parent=s:(assert(this.kind==13),this.parent=this)}get file(){let i=this;do if(i=i.parent,i.kind==13)return i;while(!0)}is(i){return(this.flags&i)==i}isAny(i){return(this.flags&i)!=0}set(i){this.flags|=i}unset(i){this.flags&=~i}hasDecorator(i){return(this.decoratorFlags&i)==i}hasAnyDecorator(i){return(this.decoratorFlags&i)!=0}getMember(i){let e=this.members;return e&&e.has(i)?assert(e.get(i)):null}lookup(i,e=!1){return this.parent.lookup(i,e)}add(i,e,r=null){let n=e.declaration,s=this.members;if(!s)this.members=s=new Map;else if(s.has(i)){let l=assert(s.get(i));if(l.parent==this){let o=ec(l,e);if(o)e=o;else{let u=r||e.identifierNode;return ns(l.kind)?this.program.errorRelated(2300,u.range,l.identifierNode.range,u.text):this.program.error(2300,u.range,u.text),!1}}}s.set(i,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(i){if(this.isPublic==i.isPublic)return!0;let e=1536;return(this.flags&e)==(i.flags&e)}visibilityNoLessThan(i){return this.isPublic?!0:this.is(512)?i.is(512):this.is(1024)?i.isAny(1536):assert(!1)}get isBound(){switch(this.parent.kind){case 7:case 9:return!0}return!1}getBoundClassOrInterface(){let i=this.parent;switch(i.kind){case 7:case 9:return i}return null}toString(){return`${this.internalName}, kind=${this.kind}`}},ig=new Set;function ns(t){return ig.has(t)}var nr=class extends is{constructor(e,r,n,s,a,l){super(e,r,n,s,a);this.declaration=l;ig.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,r=e.name;if(e.kind==56||e.kind==59){let n=e.signature;if(r.range.source==n.range.source)return le.join(r.range,n.range)}return r.range}get decoratorNodes(){return this.declaration.decorators}},ng=new Set;function Vl(t){return ng.has(t)}var Vt=class extends nr{constructor(e,r,n,s,a,l){super(e,r,n,s,a,l);this.type=p.void;ng.add(e)}setType(e){assert(!this.is(4194304)),this.type=e,this.set(4194304)}},ss=class extends is{constructor(e,r){super(13,r.normalizedPath,r.internalPath,e,null);this.source=r;this.exports=null;this.exportsStar=null;this.aliasNamespaces=new Array;this.source=r,assert(!e.filesByName.has(this.internalName)),e.filesByName.set(this.internalName,this);let n=this.program.makeNativeFunction(`start:${this.internalName}`,We.create(e,[],p.void),this);n.internalName=n.name,this.startFunction=n}add(e,r,n=null){return r.hasDecorator(1)&&(r=this.program.ensureGlobal(e,r)),super.add(e,r,n)?(r=assert(this.getMember(e)),r.is(2)&&!n&&this.ensureExport(r.name,r),!0):!1}getMember(e){let r=super.getMember(e);if(r)return r;let n=this.exportsStar;if(n){for(let s=0,a=n.length;s<a;++s)if(r=n[s].getMember(e))return r}return null}lookup(e,r=!1){let n=this.getMember(e);return n||this.program.lookup(e)}ensureExport(e,r){let n=this.exports;n||(this.exports=n=new Map),n.set(e,r),this.source.sourceKind==3&&this.program.ensureGlobal(e,r);for(let s=0;s<this.aliasNamespaces.length;s++)this.aliasNamespaces[s].add(e,r)}ensureExportStar(e){let r=this.exportsStar;if(!r)this.exportsStar=r=[];else if(r.includes(e))return;r.push(e)}lookupExport(e){let r=this.exports;if(r&&r.has(e))return assert(r.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,r,n){let s=this.program.makeNativeNamespaceDeclaration(e);s.name=n;let a=new as(e,r,s);return a.set(67108864),this.copyExportsToNamespace(a),this.aliasNamespaces.push(a),a}copyExportsToNamespace(e){let r=this.exports;if(r)for(let s=Map_keys(r),a=0,l=s.length;a<l;++a){let o=unchecked(s[a]),u=assert(r.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)}},et=class extends Vt{constructor(i,e,r,n=0){super(14,i,Ce(i,e,!1),e.program,e,r),this.decoratorFlags=n}get typeParameterNodes(){return this.declaration.typeParameters}get typeNode(){return this.declaration.type}},as=class extends nr{constructor(i,e,r,n=0){super(12,i,Ce(i,e,!1),e.program,e,r),this.decoratorFlags=n}lookup(i,e=!1){let r=this.getMember(i);return r||super.lookup(i,e)}},Hl=class extends Vt{constructor(e,r,n,s=0){super(2,e,Ce(e,r,!1),r.program,r,n);this.toStringFunctionName=null;this.decoratorFlags=s,this.setType(p.i32)}lookup(e,r=!1){let n=this.getMember(e);return n||super.lookup(e,r)}},Yp=(r=>(r[r.None=0]="None",r[r.Integer=1]="Integer",r[r.Float=2]="Float",r))(Yp||{}),Br=class extends Vt{constructor(e,r,n,s=n.program.makeNativeVariableDeclaration(r)){super(e,r,Ce(r,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,r){assert(r.isIntegerInclReference),this.type=r,this.constantValueKind=1,this.constantIntegerValue=e,this.set(37748744)}setConstantFloatValue(e,r){assert(r.isFloatValue),this.type=r,this.constantValueKind=2,this.constantFloatValue=e,this.set(37748744)}},Ql=class extends Br{constructor(e,r,n,s=0){super(3,e,r,n);this.isImmutable=!1;this.decoratorFlags=s,this.setType(p.i32)}get valueNode(){return this.declaration.initializer}},Pr=class extends Br{constructor(i,e,r,n=e.program.makeNativeVariableDeclaration(i)){super(0,i,e,n),this.decoratorFlags=r}},Zp=class{constructor(i,e,r=null){this.name=i;this.type=e;this.initializer=r}},qe=class extends Br{constructor(e,r,n,s,a=s.program.makeNativeVariableDeclaration(e)){super(1,e,s,a);this.index=r;this.isCaptured=!1;this.envSlotIndex=-1;this.envOwner=null;this.wasAccessedAsLocal=!1;this.originalName=e,this.index=r,assert(n!=p.void),this.setType(n)}declaredByFlow(e){return this.parent==e.targetFunction}},Je=class t extends nr{constructor(e,r,n,s=0){super(4,e,Ce(e,r,n.is(262144)),r.program,r,n);this.operatorKind=0;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}toBound(e){assert(this.is(262144)),assert(!this.isBound);let r=this.boundPrototypes;if(!r)this.boundPrototypes=r=new Map;else if(r.has(e))return assert(r.get(e));let n=this.declaration;assert(n.kind==59);let s=new t(this.name,e,n,this.decoratorFlags);return s.flags=this.flags,s.operatorKind=this.operatorKind,s.unboundOverrides=this.unboundOverrides,r.set(e,s),s}getResolvedInstance(e){let r=this.instances;return r&&r.has(e)?assert(r.get(e)):null}setResolvedInstance(e,r){let n=this.instances;n?assert(!n.has(e)):this.instances=n=new Map,n.set(e,r)}},bt=class t extends Vt{constructor(e,r,n,s,a=null){super(5,e,Ce(e,r.parent,r.is(262144)),r.program,r.parent,r.declaration);this.localsByIndex=[];this.debugLocations=new Map;this.ref=0;this.varargsStub=null;this.overrideStub=null;this.memorySegment=null;this.nextInlineId=0;this.nextAnonymousId=0;this.capturedLocals=null;this.envClass=null;this.envLocal=null;this.outerFunction=null;this.closureEnvLocal=null;this.needsCaptureRecompile=!1;this.nextBreakId=0;this.breakStack=null;this.prototype=r,this.typeArguments=n,this.signature=s,this.flags=r.flags|4194304,this.decoratorFlags=r.decoratorFlags,this.contextualTypeArguments=a,this.original=this;let l=r.program;this.type=s.type;let o=Dt.createDefault(this);if(this.flow=o,!r.is(32768)){let u=0,c=s.thisType;if(c){let f=new qe(P.this_,u++,c,this),h=this.flow.scopedLocals;h||(this.flow.scopedLocals=h=new Map),h.set(P.this_,f),this.localsByIndex[f.index]=f,o.setLocalFlag(f.index,8)}let _=s.parameterTypes;for(let f=0,h=_.length;f<h;++f){let y=_[f],x=this.getParameterName(f),b=new qe(x,u++,y,this),A=this.flow.scopedLocals;A||(this.flow.scopedLocals=A=new Map),A.set(x,b),this.localsByIndex[b.index]=b,o.setLocalFlag(b.index,8)}}l.instancesByName.has(this.internalName)?(l.error(2393,r.declaration.name.range),this.set(16777216)):$p(l,this)}get needsEnvironment(){return this.capturedLocals!=null&&this.capturedLocals.size>0}getNonParameterLocalTypes(){let e=this.localsByIndex,r=this.signature,n=e.length,s=r.parameterTypes.length;r.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 r=this.declaration.signature.parameters;return r.length>e?r[e].name.text:sg(e)}newStub(e,r=this.signature.requiredParameters){let n=new t(this.original.name+op+e,this.prototype,this.typeArguments,this.signature.clone(r),this.contextualTypeArguments);return n.original=this.original,n.set(this.flags&-8388609|134217728),n}addLocal(e,r=null,n=null){let s=this.localsByIndex,a=s.length,l=r??a.toString();n||(n=this.program.makeNativeVariableDeclaration(l));let o=new qe(l,a,e,this,n);if(r){let u=this.flow,c=u.scopedLocals;if(c||(u.scopedLocals=c=new Map),c.has(r))throw new Error("duplicate local name");c.set(r,o)}return s[a]=o,o}lookup(e,r=!1){if(!r){let n=this.flow.scopedLocals;if(n&&n.has(e))return assert(n.get(e))}return super.lookup(e,r)}finalize(e,r){this.ref=r;let n=this.breakStack;assert(!n||!n.length),this.breakStack=null,this.addDebugInfo(e,r)}addDebugInfo(e,r){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(r,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(r,a,o)}}}},Pi=class t extends nr{constructor(e,r,n){super(10,e,Ce(e,r,n.is(262144)),r.program,r,n);this.fieldDeclaration=null;this.getterPrototype=null;this.setterPrototype=null;this.instance=null;this.boundPrototypes=null;this.flags&=-6145}static forField(e,r,n,s){let a=ce.native.range,l=n.type;l||(l=M.createOmittedType(n.name.range.atEnd));let o=new Fr(n.name,n.decorators,n.flags|262144|2048,null,new Ir([],l,null,!1,a),null,a),u=new Fr(n.name,n.decorators,n.flags|262144|4096,null,new Ir([new xi(0,n.name,l,null,a)],new de(new bi(new je("",!1,a),null,a),null,!1,a),null,!1,a),null,a),c=new t(e,r,o);return c.fieldDeclaration=n,c.decoratorFlags=s,c.getterPrototype=new Je(la+e,r,o,s),c.setterPrototype=new Je(oa+e,r,u,s),c}get isField(){return this.fieldDeclaration!=null}get typeNode(){let e=this.fieldDeclaration;if(e)return e.type;let r=this.getterPrototype;if(r){let s=r.declaration;if(s.kind==56)return s.signature.returnType}let n=this.setterPrototype;if(n){let s=n.declaration;if(s.kind==56){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 r=this.boundPrototypes;if(!r)this.boundPrototypes=r=new Map;else if(r.has(e))return assert(r.get(e));let n=this.declaration;assert(n.kind==59);let s=new t(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)),r.set(e,s),s}},Jn=class extends Br{constructor(e,r){super(11,e.name,r,e.isField?assert(e.fieldDeclaration):M.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)&&$p(this.program,this)}get isField(){return this.prototype.isField}checkVisibility(e){let r=this.getterInstance,n=this.setterInstance;r&&n&&!r.visibilityNoLessThan(n)&&e.errorRelated(2808,r.identifierNode.range,n.identifierNode.range,r.identifierNode.text)}},Zn=class extends Vt{constructor(i){super(15,"[]",i.internalName+"[]",i.program,i,i.program.makeNativeVariableDeclaration("[]"))}getGetterInstance(i){return this.parent.lookupOverload(1,i)}getSetterInstance(i){return this.parent.lookupOverload(2,i)}},ls=class extends nr{constructor(e,r,n,s=0,a=!1){super(a?8:6,e,Ce(e,r,n.is(262144)),r.program,r,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 r=this,n=new Set;do{if(n.has(r))break;if(n.add(r),r==e)return!0;r=r.basePrototype}while(r);return!1}addInstance(e,r){let n=r.declaration,s=this.instanceMembers;if(!s)this.instanceMembers=s=new Map;else if(s.has(e)){let a=assert(s.get(e)),l=ec(a,r);if(!l)return ns(a.kind)?this.program.errorRelated(2300,r.identifierNode.range,a.declaration.name.range,r.identifierNode.text):this.program.error(2300,r.identifierNode.range,r.identifierNode.text),!1;r=l}return s.set(e,r),r.is(2)&&this.is(1048576)&&r.set(1048576),this.program.elementsByDeclaration.set(n,r),!0}getResolvedInstance(e){let r=this.instances;return r&&r.has(e)?r.get(e):null}setResolvedInstance(e,r){let n=this.instances;n?assert(!n.has(e)):this.instances=n=new Map,n.set(e,r)}},ir=class extends Vt{constructor(e,r,n=null,s=!1){super(s?9:7,e,Ce(e,r.parent,r.is(262144)),r.program,r.parent,r.declaration);this.base=null;this.interfaces=null;this.contextualTypeArguments=null;this.nextMemoryOffset=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=r,this.flags=r.flags,this.decoratorFlags=r.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=r.typeParameterNodes;if(n){let c=n.length;if(!u||c!=u.length)throw new Error("type argument count mismatch");if(c){let _=this.contextualTypeArguments;_||(this.contextualTypeArguments=_=new Map);for(let f=0;f<c;++f)_.set(u[f].name.text,n[f])}}else if(u&&u.length>0)throw new Error("type argument count mismatch");$p(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,r){if(e==r)return e;let n=new Set;for(n.add(e),n.add(r);;){let s=e.base,a=r.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(r=a)}}}setBase(e){assert(!this.base),this.base=e;let r=e.contextualTypeArguments;if(r){let a=this.contextualTypeArguments;for(let l=Map_keys(r),o=0,u=l.length;o<u;++o){let c=unchecked(l[o]),_=assert(r.get(c));a?a.has(c)||a.set(c,_):(this.contextualTypeArguments=a=new Map,a.set(c,_))}}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 r=this;do{let n=r.extenders;n||(r.extenders=n=new Set),n.add(e),r=r.base}while(r)}propagateInterfaceDown(e){let r=e,n=this.extenders;do{let s=r.implementers;if(s||(r.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)}r=r.base}while(r)}addInterface(e){let r=this.interfaces;r||(this.interfaces=r=new Set),r.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,r=!1){if(r)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,r=null){let n=this.getMember(e);return n&&n.kind==4?this.program.resolver.resolveFunction(n,r):null}offsetof(e){let r=assert(this.getMember(e));assert(r.kind==10);let s=r.instance;return s?(assert(s.isField&&s.memoryOffset>=0),s.memoryOffset):0}createBuffer(e=0){let r=this.program,n=this.nextMemoryOffset+e,s=r.computeBlockSize(n,!0),a=new Uint8Array(r.blockOverhead+s),l=r.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,r,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(r)),_e(i32(r),n,u),1;case 2:case 7:return assert(!i64_is(r)),Yt(i32(r),n,u),2;case 3:case 8:return assert(!i64_is(r)),me(i32(r),n,u),4;case 5:case 10:return this.program.options.isWasm64?(i64_is(r)?_i(r,n,u):pa(i32(r),n,u,c==10),8):(i64_is(r)?up(r,n,u,c==10):me(i32(r),n,u),4);case 4:case 9:return i64_is(r)?_i(r,n,u):pa(i32(r),n,u,c==9),8;case 11:return assert(!i64_is(r)),Tr(f32(r),n,u),4;case 12:return assert(!i64_is(r)),Ar(f64(r),n,u),8}}return assert(!1),0}extendsPrototype(e){return this.prototype.extends(e)}getTypeArgumentsTo(e){let r=this;do{if(r.prototype==e)return r.typeArguments;r=r.base}while(r);return null}getArrayValueType(){let e=this,r=this.program,n=r.arrayPrototype;if(this.extendsPrototype(n))return this.getTypeArgumentsTo(n)[0];let s=r.staticArrayPrototype;if(this.extendsPrototype(s))return this.getTypeArgumentsTo(s)[0];let a=r.arrayBufferViewInstance;for(;e.base!=a;)e=assert(e.base);let l=e.prototype;switch(l.name.charCodeAt(0)){case 70:{if(l==r.float32ArrayPrototype)return p.f32;if(l==r.float64ArrayPrototype)return p.f64;break}case 73:{if(l==r.int8ArrayPrototype)return p.i8;if(l==r.int16ArrayPrototype)return p.i16;if(l==r.int32ArrayPrototype)return p.i32;if(l==r.int64ArrayPrototype)return p.i64;break}case 85:{if(l==r.uint8ArrayPrototype)return p.u8;if(l==r.uint8ClampedArrayPrototype)return p.u8;if(l==r.uint16ArrayPrototype)return p.u16;if(l==r.uint32ArrayPrototype)return p.u32;if(l==r.uint64ArrayPrototype)return p.u64;break}}return assert(!1),p.void}get isPointerfree(){let e=this.program,r=this.members;if(r){for(let n=Map_values(r),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(r.has(P.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 r=this.extenders;return r!=null&&r.has(e)}hasExtenderImplementing(e){let r=this.extenders;if(r){for(let n=Set_values(r),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 r=this.implementers;return r!=null&&r.has(e)}hasImplementerImplementing(e){let r=this.implementers;if(r){for(let n=Set_values(r),s=0,a=n.length;s<a;++s)if(n[s].implements(e))return!0}return!1}},Xl=class extends ls{constructor(i,e,r,n){super(i,e,r,n,!0)}},Yn=class extends ir{constructor(i,e,r=null){super(i,e,r,!0)}};function $p(t,i){assert(!t.instancesByName.has(i.internalName)),t.instancesByName.set(i.internalName,i)}function ec(t,i){if(assert(t.program==i.program),i.members)return null;let e=null;switch(t.kind){case 4:{switch(i.kind){case 12:{Ut(i,t),e=t;break}case 14:{t.shadowType||(t.shadowType=i,Ut(i,t),e=t);break}}break}case 6:case 2:{if(i.kind==12){Ut(i,t),e=t;break}break}case 12:{switch(i.kind){case 2:case 6:case 4:{Ut(t,i),e=i;break}case 12:{Ut(i,t),e=t;break}case 14:{t.shadowType||(t.shadowType=i,Ut(i,t),e=t);break}}break}case 0:{i.kind==14&&(t.shadowType||(t.shadowType=i,Ut(i,t),e=t));break}case 14:{switch(i.kind){case 0:case 4:case 12:{i.shadowType||(i.shadowType=t,Ut(t,i),e=i);break}}break}}if(e){let r=t.is(2)||t.hasDecorator(1),n=i.is(2)||i.hasDecorator(1);r!=n&&t.program.error(2395,e.identifierNode.range,e.identifierNode.text)}return e}function Ut(t,i){let e=t.members;if(e){let r=i.members;r||(i.members=r=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));r.set(l,o)}}}function Ce(t,i,e,r=!1){switch(i.kind){case 13:return r?t:i.internalName+it+t;case 5:return r?t:(assert(!e),i.internalName+lp+t);case 10:case 11:i=i.parent;default:return Ce(i.name,i.parent,i.is(262144),r)+(e?ap:vn)+t}}var Xp=[];function sg(t){for(let i=Xp.length;i<=t;++i)Xp.push(`$${i}`);return Xp[t]}var tr=(W=>(W[W.Bool=0]="Bool",W[W.I8=1]="I8",W[W.I16=2]="I16",W[W.I32=3]="I32",W[W.I64=4]="I64",W[W.Isize=5]="Isize",W[W.U8=6]="U8",W[W.U16=7]="U16",W[W.U32=8]="U32",W[W.U64=9]="U64",W[W.Usize=10]="Usize",W[W.F32=11]="F32",W[W.F64=12]="F64",W[W.V128=13]="V128",W[W.Extern=14]="Extern",W[W.Func=15]="Func",W[W.Any=16]="Any",W[W.Eq=17]="Eq",W[W.Struct=18]="Struct",W[W.Array=19]="Array",W[W.I31=20]="I31",W[W.String=21]="String",W[W.StringviewWTF8=22]="StringviewWTF8",W[W.StringviewWTF16=23]="StringviewWTF16",W[W.StringviewIter=24]="StringviewIter",W[W.Void=25]="Void",W))(tr||{}),gt=(x=>(x[x.None=0]="None",x[x.Signed=1]="Signed",x[x.Unsigned=2]="Unsigned",x[x.Integer=4]="Integer",x[x.Float=8]="Float",x[x.Varying=16]="Varying",x[x.Short=32]="Short",x[x.Long=64]="Long",x[x.Value=128]="Value",x[x.Reference=256]="Reference",x[x.Nullable=512]="Nullable",x[x.Vector=1024]="Vector",x[x.External=2048]="External",x[x.Class=4096]="Class",x[x.Function=8192]="Function",x))(gt||{}),p=class t{constructor(i,e,r){this.classReference=null;this.signatureReference=null;this._nonNullableType=null;this._nullableType=null;this.ref=0;this.kind=i,this.flags=e,this.size=r,e&512?this._nullableType=this:this._nonNullableType=this}get intType(){if(this==t.auto)return this;switch(this.kind){case 0:case 3:case 11:return t.i32;case 1:return t.i8;case 2:return t.i16;case 12:case 4:return t.i64;case 5:return this.size==64?t.isize64:t.isize32;case 6:return t.u8;case 7:return t.u16;case 8:return t.u32;case 9:return t.u64;case 10:return this.size==64?t.usize64:t.usize32;default:return t.i32}}get exceptVoid(){return this.kind==25?t.auto:this}get byteSize(){return this.size+7>>>3}get alignLog2(){return 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==t.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(i){let e=this.getClass();if(e)return e;{let r=this.getSignature();if(r){let n=r.type,s=assert(i.resolver.resolveClass(i.functionPrototype,[n]));return s.wrappedType=n,s}else{let n=i.wrapperClasses;if(n.has(this))return assert(n.get(this))}}return null}lookupOverload(i,e){let r=this.getClassOrWrapper(e);return r?r.lookupOverload(i):null}getSignature(){return this.isInternalReference?this.signatureReference:null}get isFunction(){return this.getSignature()!=null}get isManaged(){if(this.isInternalReference){let i=this.classReference;return i?!i.hasDecorator(16):this.signatureReference!=null}return!1}get isUnmanaged(){let i=this.classReference;return i!=null&&i.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(i){return i.size-this.size}computeSmallIntegerMask(i){let e=this.size;return this.is(2)||(e-=1),-1>>>i.size-e}is(i){return(this.flags&i)==i}isAny(i){return(this.flags&i)!=0}asNullable(){assert(this.isReference);let i=this._nullableType;return i||(assert(!this.isNullableReference),this._nullableType=i=new t(this.kind,this.flags|512,this.size),i.classReference=this.classReference,i.signatureReference=this.signatureReference,i._nonNullableType=this),i}toUnsigned(){switch(this.kind){case 1:return t.u8;case 2:return t.u16;case 3:return t.u32;case 4:return t.u64;case 5:return this.size==64?t.usize64:t.usize32}return this}equals(i){if(this.kind!=i.kind)return!1;if(this.isReference){let e=this.signatureReference,r=i.signatureReference;return this.classReference==i.classReference&&e==r&&this.isNullableReference==i.isNullableReference}return!0}isAssignableTo(i,e=!1){let r,n,s,a;if(this.isReference){if(i.isReference&&(!this.isNullableReference||i.isNullableReference)){if(r=this.getClass()){if(n=i.getClass())return r.isAssignableTo(n)}else if(s=this.getSignature()){if(a=i.getSignature())return s.isAssignableTo(a)}else if(this.isExternalReference&&(this.kind==i.kind||i.kind==16&&this.kind!=14))return!0}}else if(!i.isReference){if(this.isIntegerValue)if(i.isIntegerValue){if(!e||this.isBooleanValue||this.isSignedIntegerValue==i.isSignedIntegerValue)return this.size<=i.size}else{if(i.kind==11)return this.size<=23;if(i.kind==12)return this.size<=52}else if(this.isFloatValue){if(i.isFloatValue)return this.size<=i.size}else if(this.isVectorValue&&i.isVectorValue)return this.size==i.size}return!1}isStrictlyAssignableTo(i,e=!1){return this.isReference?this.isAssignableTo(i):i.isReference?!1:this.isIntegerValue?i.isIntegerValue&&i.size==this.size&&(!e||this.isSignedIntegerValue==i.isSignedIntegerValue):this.kind==i.kind}hasSubtypeAssignableTo(i){let e=this.getClass(),r=i.getClass();return!e||!r?!1:e.hasSubclassAssignableTo(r)}isChangeableTo(i){if(this.is(4)&&i.is(4)){let e=this.size;return e==i.size&&(e>=32||this.is(1)==i.is(1))}return this.kind==i.kind}canExtendOrImplement(i){let e=this.getClass(),r=i.getClass();if(!e||!r||this.isManaged!=i.isManaged)return!1;if(this.isInternalReference){if(!i.isInternalReference)return!1}else if(this.isExternalReference){if(!i.isExternalReference)return!1}else return!1;return!0}static commonType(i,e,r=t.auto,n=!1){if(i.isInternalReference){if(!e.isInternalReference)return null;if(r!=t.void&&i.isAssignableTo(r)&&e.isAssignableTo(r))return r;let s=i.getClass(),a=e.getClass();if(s&&a){let l=ir.leastUpperBound(s,a);if(l)return i.is(512)||e.is(512)?l.type.asNullable():l.type}}else if(e.isInternalReference)return null;return e.isAssignableTo(i,n)?i:i.isAssignableTo(e,n)?e:null}kindToString(){switch(this.kind){case 0:return P.bool;case 1:return P.i8;case 2:return P.i16;case 3:return P.i32;case 4:return P.i64;case 5:return P.isize;case 6:return P.u8;case 7:return P.u16;case 8:return P.u32;case 9:return P.u64;case 10:return P.usize;case 11:return P.f32;case 12:return P.f64;case 13:return P.v128;case 15:return P.ref_func;case 14:return P.ref_extern;case 16:return P.ref_any;case 17:return P.ref_eq;case 18:return P.ref_struct;case 19:return P.ref_array;case 20:return P.ref_i31;case 21:return P.ref_string;case 22:return P.ref_stringview_wtf8;case 23:return P.ref_stringview_wtf16;case 24:return P.ref_stringview_iter;default:assert(!1);case 25:return P.void_}}toString(i=!1){let e=i?"|null":" | null";if(this.isReference){let r=this.getClass();if(r)return this.isNullableReference?r.internalName+e:r.internalName;{let n=this.getSignature();return n?this.isNullableReference?`(${n.toString(i)})${e}`:n.toString(i):this.isNullableReference?`${this.kindToString()}${e}`:this.kindToString()}}return this==t.auto?"auto":this.kindToString()}toRef(){switch(this.kind){case 0:case 1:case 2:case 3:case 6:case 7:case 8:return L.I32;case 5:case 10:if(this.size!=64)return L.I32;case 4:case 9:return L.I64;case 11:return L.F32;case 12:return L.F64;case 13:return L.V128;case 15:return he(ge.Func,this.is(512));case 14:return he(ge.Extern,this.is(512));case 16:return he(ge.Any,this.is(512));case 17:return he(ge.Eq,this.is(512));case 18:return he(ge.Struct,this.is(512));case 19:return he(ge.Array,this.is(512));case 20:return he(ge.I31,this.is(512));case 21:return he(ge.String,this.is(512));case 25:return L.None}return assert(!1),Hn(this)}static{this.i8=new t(1,165,8)}static{this.i16=new t(2,165,16)}static{this.i32=new t(3,133,32)}static{this.i64=new t(4,197,64)}static{this.isize32=new t(5,149,32)}static{this.isize64=new t(5,213,64)}static{this.u8=new t(6,166,8)}static{this.u16=new t(7,166,16)}static{this.u32=new t(8,134,32)}static{this.u64=new t(9,198,64)}static{this.usize32=new t(10,150,32)}static{this.usize64=new t(10,214,64)}static{this.bool=new t(0,166,1)}static{this.f32=new t(11,137,32)}static{this.f64=new t(12,201,64)}static{this.v128=new t(13,1152,128)}static{this.func=new t(15,2304,0)}static{this.extern=new t(14,2304,0)}static{this.any=new t(16,2304,0)}static{this.eq=new t(17,2304,0)}static{this.struct=new t(18,2304,0)}static{this.array=new t(19,2304,0)}static{this.i31=new t(20,2304,0)}static{this.string=new t(21,2304,0)}static{this.stringview_wtf8=new t(22,2304,0)}static{this.stringview_wtf16=new t(23,2304,0)}static{this.stringview_iter=new t(24,2304,0)}static{this.void=new t(25,0,0)}static{this.auto=new t(t.i32.kind,t.i32.flags,t.i32.size)}};function Lr(t){let i=t.length,e=new Array(i);for(let r=0;r<i;++r)unchecked(e[r]=t[r].toRef());return e}function Ol(t){let i=t.length;if(!i)return"";let e=new Array(i);for(let r=0;r<i;++r)unchecked(e[r]=t[r].toString(!0));return e.join(",")}var We=class t{constructor(i,e,r,n,s,a,l,o){this.program=i;this.parameterTypes=e;this.returnType=r;this.thisType=n;this.requiredParameters=s;this.hasRest=a;this.id=l;this.type=o}static create(i,e=[],r=p.void,n=null,s=e?e.length:0,a=!1){let l=i.options.usizeType,o=new p(l.kind,l.flags&-129|256,l.size),u=i.uniqueSignatures,c=i.nextSignatureId,_=new t(i,e,r,n,s,a,c,o),f=_.toString();if(u.has(f)){let h=assert(u.get(f));return assert(_.equals(h)),h}return i.nextSignatureId=c+1,o.signatureReference=_,u.set(f,_),_}get paramRefs(){let i=this.thisType,e=this.parameterTypes,r=e.length;if(!r)return i?i.toRef():L.None;if(i){let n=new Array(1+r);unchecked(n[0]=i.toRef());for(let s=0;s<r;++s)unchecked(n[s+1]=e[s].toRef());return He(n)}return He(Lr(e))}get resultRefs(){return this.returnType.toRef()}equals(i){let e=this.thisType,r=i.thisType;if(e){if(!r||!e.equals(r))return!1}else if(r)return!1;if(this.hasRest!=i.hasRest||!this.returnType.equals(i.returnType))return!1;let n=this.parameterTypes,s=i.parameterTypes,a=n.length;if(a!=s.length)return!1;for(let l=0;l<a;++l){let o=unchecked(n[l]),u=unchecked(s[l]);if(!o.equals(u))return!1}return!0}isAssignableTo(i,e=!1){let r=this.thisType,n=i.thisType;if(r&&n){if(!(e?r.canExtendOrImplement(n):n.isAssignableTo(r)))return!1}else if(r||n)return!1;if(this.hasRest!=i.hasRest)return!1;let s=this.returnType,a=i.returnType;if(!(s==a||s.isAssignableTo(a)))return!1;let l=this.parameterTypes,o=i.parameterTypes,u=l.length;if(u!=o.length)return!1;for(let c=0;c<u;++c){let _=unchecked(l[c]),f=unchecked(o[c]);if(_!=f)return!1}return!0}get hasManagedOperands(){let i=this.thisType;if(i&&i.isManaged)return!0;let e=this.parameterTypes;for(let r=0,n=e.length;r<n;++r)if(unchecked(e[r]).isManaged)return!0;return!1}getManagedOperandIndices(){let i=new Array,e=0,r=this.thisType;r&&(r.isManaged&&i.push(e),++e);let n=this.parameterTypes;for(let s=0,a=n.length;s<a;++s)unchecked(n[s]).isManaged&&i.push(e),++e;return i}get hasVectorValueOperands(){let i=this.thisType;if(i&&i.isVectorValue)return!0;let e=this.parameterTypes;for(let r=0,n=e.length;r<n;++r)if(unchecked(e[r]).isVectorValue)return!0;return!1}getVectorValueOperandIndices(){let i=new Array,e=0,r=this.thisType;r&&(r.isVectorValue&&i.push(e),++e);let n=this.parameterTypes;for(let s=0,a=n.length;s<a;++s)unchecked(n[s]).isVectorValue&&i.push(e),++e;return i}toString(i=!1){let e=new Array;e.push(i?"%28":"(");let r=0,n=this.thisType;n&&(e.push(i?"this:":"this: "),e.push(n.toString(i)),r=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,++r)r&&e.push(i?"%2C":", "),u==o&&e.push("..."),e.push(s[u].toString(i)),u>=l&&u!=o&&e.push("?")}return e.push(i?"%29=>":") => "),e.push(this.returnType.toString(i)),e.join("")}clone(i=this.requiredParameters,e=this.hasRest){let r=this.parameterTypes,n=r.length,s=new Array(n);for(let a=0;a<n;++a)unchecked(s[a]=r[a]);return t.create(this.program,s,this.returnType,this.thisType,i,e)}};var d;(m=>(m.start="~start",m.started="~started",m.argumentsLength="~argumentsLength",m.setArgumentsLength="~setArgumentsLength",m.abort="~lib/builtins/abort",m.trace="~lib/builtins/trace",m.seed="~lib/builtins/seed",m.isBoolean="~lib/builtins/isBoolean",m.isInteger="~lib/builtins/isInteger",m.isSigned="~lib/builtins/isSigned",m.isFloat="~lib/builtins/isFloat",m.isVector="~lib/builtins/isVector",m.isReference="~lib/builtins/isReference",m.isString="~lib/builtins/isString",m.isArray="~lib/builtins/isArray",m.isArrayLike="~lib/builtins/isArrayLike",m.isFunction="~lib/builtins/isFunction",m.isNullable="~lib/builtins/isNullable",m.isDefined="~lib/builtins/isDefined",m.isConstant="~lib/builtins/isConstant",m.isManaged="~lib/builtins/isManaged",m.isVoid="~lib/builtins/isVoid",m.add="~lib/builtins/add",m.sub="~lib/builtins/sub",m.mul="~lib/builtins/mul",m.div="~lib/builtins/div",m.clz="~lib/builtins/clz",m.ctz="~lib/builtins/ctz",m.popcnt="~lib/builtins/popcnt",m.rotl="~lib/builtins/rotl",m.rotr="~lib/builtins/rotr",m.abs="~lib/builtins/abs",m.max="~lib/builtins/max",m.min="~lib/builtins/min",m.ceil="~lib/builtins/ceil",m.floor="~lib/builtins/floor",m.copysign="~lib/builtins/copysign",m.nearest="~lib/builtins/nearest",m.reinterpret="~lib/builtins/reinterpret",m.sqrt="~lib/builtins/sqrt",m.trunc="~lib/builtins/trunc",m.eq="~lib/builtins/eq",m.ne="~lib/builtins/ne",m.rem="~lib/builtins/rem",m.load="~lib/builtins/load",m.store="~lib/builtins/store",m.atomic_load="~lib/builtins/atomic.load",m.atomic_store="~lib/builtins/atomic.store",m.atomic_add="~lib/builtins/atomic.add",m.atomic_sub="~lib/builtins/atomic.sub",m.atomic_and="~lib/builtins/atomic.and",m.atomic_or="~lib/builtins/atomic.or",m.atomic_xor="~lib/builtins/atomic.xor",m.atomic_xchg="~lib/builtins/atomic.xchg",m.atomic_cmpxchg="~lib/builtins/atomic.cmpxchg",m.atomic_wait="~lib/builtins/atomic.wait",m.atomic_notify="~lib/builtins/atomic.notify",m.atomic_fence="~lib/builtins/atomic.fence",m.sizeof="~lib/builtins/sizeof",m.alignof="~lib/builtins/alignof",m.offsetof="~lib/builtins/offsetof",m.nameof="~lib/builtins/nameof",m.lengthof="~lib/builtins/lengthof",m.select="~lib/builtins/select",m.unreachable="~lib/builtins/unreachable",m.changetype="~lib/builtins/changetype",m.assert="~lib/builtins/assert",m.call_indirect="~lib/builtins/call_indirect",m.unchecked="~lib/builtins/unchecked",m.inline_always="~lib/builtins/inline.always",m.instantiate="~lib/builtins/instantiate",m.idof="~lib/builtins/idof",m.i8="~lib/builtins/i8",m.i16="~lib/builtins/i16",m.i32="~lib/builtins/i32",m.i64="~lib/builtins/i64",m.isize="~lib/builtins/isize",m.u8="~lib/builtins/u8",m.u16="~lib/builtins/u16",m.u32="~lib/builtins/u32",m.u64="~lib/builtins/u64",m.usize="~lib/builtins/usize",m.bool="~lib/builtins/bool",m.f32="~lib/builtins/f32",m.f64="~lib/builtins/f64",m.v128="~lib/builtins/v128",m.i32_clz="~lib/builtins/i32.clz",m.i64_clz="~lib/builtins/i64.clz",m.i32_ctz="~lib/builtins/i32.ctz",m.i64_ctz="~lib/builtins/i64.ctz",m.i32_popcnt="~lib/builtins/i32.popcnt",m.i64_popcnt="~lib/builtins/i64.popcnt",m.i32_rotl="~lib/builtins/i32.rotl",m.i64_rotl="~lib/builtins/i64.rotl",m.i32_rotr="~lib/builtins/i32.rotr",m.i64_rotr="~lib/builtins/i64.rotr",m.f32_abs="~lib/builtins/f32.abs",m.f64_abs="~lib/builtins/f64.abs",m.f32_max="~lib/builtins/f32.max",m.f64_max="~lib/builtins/f64.max",m.f32_min="~lib/builtins/f32.min",m.f64_min="~lib/builtins/f64.min",m.f32_ceil="~lib/builtins/f32.ceil",m.f64_ceil="~lib/builtins/f64.ceil",m.f32_floor="~lib/builtins/f32.floor",m.f64_floor="~lib/builtins/f64.floor",m.f32_copysign="~lib/builtins/f32.copysign",m.f64_copysign="~lib/builtins/f64.copysign",m.f32_nearest="~lib/builtins/f32.nearest",m.f64_nearest="~lib/builtins/f64.nearest",m.i32_reinterpret_f32="~lib/builtins/i32.reinterpret_f32",m.i64_reinterpret_f64="~lib/builtins/i64.reinterpret_f64",m.f32_reinterpret_i32="~lib/builtins/f32.reinterpret_i32",m.f64_reinterpret_i64="~lib/builtins/f64.reinterpret_i64",m.f32_sqrt="~lib/builtins/f32.sqrt",m.f64_sqrt="~lib/builtins/f64.sqrt",m.f32_trunc="~lib/builtins/f32.trunc",m.f64_trunc="~lib/builtins/f64.trunc",m.i32_add="~lib/builtins/i32.add",m.i64_add="~lib/builtins/i64.add",m.f32_add="~lib/builtins/f32.add",m.f64_add="~lib/builtins/f64.add",m.i32_sub="~lib/builtins/i32.sub",m.i64_sub="~lib/builtins/i64.sub",m.f32_sub="~lib/builtins/f32.sub",m.f64_sub="~lib/builtins/f64.sub",m.i32_mul="~lib/builtins/i32.mul",m.i64_mul="~lib/builtins/i64.mul",m.f32_mul="~lib/builtins/f32.mul",m.f64_mul="~lib/builtins/f64.mul",m.i32_div_s="~lib/builtins/i32.div_s",m.i32_div_u="~lib/builtins/i32.div_u",m.i64_div_s="~lib/builtins/i64.div_s",m.i64_div_u="~lib/builtins/i64.div_u",m.f32_div="~lib/builtins/f32.div",m.f64_div="~lib/builtins/f64.div",m.i32_eq="~lib/builtins/i32.eq",m.i64_eq="~lib/builtins/i64.eq",m.f32_eq="~lib/builtins/f32.eq",m.f64_eq="~lib/builtins/f64.eq",m.i32_ne="~lib/builtins/i32.ne",m.i64_ne="~lib/builtins/i64.ne",m.f32_ne="~lib/builtins/f32.ne",m.f64_ne="~lib/builtins/f64.ne",m.i32_rem_s="~lib/builtins/i32.rem_s",m.i32_rem_u="~lib/builtins/i32.rem_u",m.i64_rem_s="~lib/builtins/i64.rem_s",m.i64_rem_u="~lib/builtins/i64.rem_u",m.i32_load8_s="~lib/builtins/i32.load8_s",m.i32_load8_u="~lib/builtins/i32.load8_u",m.i32_load16_s="~lib/builtins/i32.load16_s",m.i32_load16_u="~lib/builtins/i32.load16_u",m.i32_load="~lib/builtins/i32.load",m.i64_load8_s="~lib/builtins/i64.load8_s",m.i64_load8_u="~lib/builtins/i64.load8_u",m.i64_load16_s="~lib/builtins/i64.load16_s",m.i64_load16_u="~lib/builtins/i64.load16_u",m.i64_load32_s="~lib/builtins/i64.load32_s",m.i64_load32_u="~lib/builtins/i64.load32_u",m.i64_load="~lib/builtins/i64.load",m.f32_load="~lib/builtins/f32.load",m.f64_load="~lib/builtins/f64.load",m.i32_store8="~lib/builtins/i32.store8",m.i32_store16="~lib/builtins/i32.store16",m.i32_store="~lib/builtins/i32.store",m.i64_store8="~lib/builtins/i64.store8",m.i64_store16="~lib/builtins/i64.store16",m.i64_store32="~lib/builtins/i64.store32",m.i64_store="~lib/builtins/i64.store",m.f32_store="~lib/builtins/f32.store",m.f64_store="~lib/builtins/f64.store",m.i32_atomic_load8_u="~lib/builtins/i32.atomic.load8_u",m.i32_atomic_load16_u="~lib/builtins/i32.atomic.load16_u",m.i32_atomic_load="~lib/builtins/i32.atomic.load",m.i64_atomic_load8_u="~lib/builtins/i64.atomic.load8_u",m.i64_atomic_load16_u="~lib/builtins/i64.atomic.load16_u",m.i64_atomic_load32_u="~lib/builtins/i64.atomic.load32_u",m.i64_atomic_load="~lib/builtins/i64.atomic.load",m.i32_atomic_store8="~lib/builtins/i32.atomic.store8",m.i32_atomic_store16="~lib/builtins/i32.atomic.store16",m.i32_atomic_store="~lib/builtins/i32.atomic.store",m.i64_atomic_store8="~lib/builtins/i64.atomic.store8",m.i64_atomic_store16="~lib/builtins/i64.atomic.store16",m.i64_atomic_store32="~lib/builtins/i64.atomic.store32",m.i64_atomic_store="~lib/builtins/i64.atomic.store",m.i32_atomic_rmw8_add_u="~lib/builtins/i32.atomic.rmw8.add_u",m.i32_atomic_rmw16_add_u="~lib/builtins/i32.atomic.rmw16.add_u",m.i32_atomic_rmw_add="~lib/builtins/i32.atomic.rmw.add",m.i64_atomic_rmw8_add_u="~lib/builtins/i64.atomic.rmw8.add_u",m.i64_atomic_rmw16_add_u="~lib/builtins/i64.atomic.rmw16.add_u",m.i64_atomic_rmw32_add_u="~lib/builtins/i64.atomic.rmw32.add_u",m.i64_atomic_rmw_add="~lib/builtins/i64.atomic.rmw.add",m.i32_atomic_rmw8_sub_u="~lib/builtins/i32.atomic.rmw8.sub_u",m.i32_atomic_rmw16_sub_u="~lib/builtins/i32.atomic.rmw16.sub_u",m.i32_atomic_rmw_sub="~lib/builtins/i32.atomic.rmw.sub",m.i64_atomic_rmw8_sub_u="~lib/builtins/i64.atomic.rmw8.sub_u",m.i64_atomic_rmw16_sub_u="~lib/builtins/i64.atomic.rmw16.sub_u",m.i64_atomic_rmw32_sub_u="~lib/builtins/i64.atomic.rmw32.sub_u",m.i64_atomic_rmw_sub="~lib/builtins/i64.atomic.rmw.sub",m.i32_atomic_rmw8_and_u="~lib/builtins/i32.atomic.rmw8.and_u",m.i32_atomic_rmw16_and_u="~lib/builtins/i32.atomic.rmw16.and_u",m.i32_atomic_rmw_and="~lib/builtins/i32.atomic.rmw.and",m.i64_atomic_rmw8_and_u="~lib/builtins/i64.atomic.rmw8.and_u",m.i64_atomic_rmw16_and_u="~lib/builtins/i64.atomic.rmw16.and_u",m.i64_atomic_rmw32_and_u="~lib/builtins/i64.atomic.rmw32.and_u",m.i64_atomic_rmw_and="~lib/builtins/i64.atomic.rmw.and",m.i32_atomic_rmw8_or_u="~lib/builtins/i32.atomic.rmw8.or_u",m.i32_atomic_rmw16_or_u="~lib/builtins/i32.atomic.rmw16.or_u",m.i32_atomic_rmw_or="~lib/builtins/i32.atomic.rmw.or",m.i64_atomic_rmw8_or_u="~lib/builtins/i64.atomic.rmw8.or_u",m.i64_atomic_rmw16_or_u="~lib/builtins/i64.atomic.rmw16.or_u",m.i64_atomic_rmw32_or_u="~lib/builtins/i64.atomic.rmw32.or_u",m.i64_atomic_rmw_or="~lib/builtins/i64.atomic.rmw.or",m.i32_atomic_rmw8_xor_u="~lib/builtins/i32.atomic.rmw8.xor_u",m.i32_atomic_rmw16_xor_u="~lib/builtins/i32.atomic.rmw16.xor_u",m.i32_atomic_rmw_xor="~lib/builtins/i32.atomic.rmw.xor",m.i64_atomic_rmw8_xor_u="~lib/builtins/i64.atomic.rmw8.xor_u",m.i64_atomic_rmw16_xor_u="~lib/builtins/i64.atomic.rmw16.xor_u",m.i64_atomic_rmw32_xor_u="~lib/builtins/i64.atomic.rmw32.xor_u",m.i64_atomic_rmw_xor="~lib/builtins/i64.atomic.rmw.xor",m.i32_atomic_rmw8_xchg_u="~lib/builtins/i32.atomic.rmw8.xchg_u",m.i32_atomic_rmw16_xchg_u="~lib/builtins/i32.atomic.rmw16.xchg_u",m.i32_atomic_rmw_xchg="~lib/builtins/i32.atomic.rmw.xchg",m.i64_atomic_rmw8_xchg_u="~lib/builtins/i64.atomic.rmw8.xchg_u",m.i64_atomic_rmw16_xchg_u="~lib/builtins/i64.atomic.rmw16.xchg_u",m.i64_atomic_rmw32_xchg_u="~lib/builtins/i64.atomic.rmw32.xchg_u",m.i64_atomic_rmw_xchg="~lib/builtins/i64.atomic.rmw.xchg",m.i32_atomic_rmw8_cmpxchg_u="~lib/builtins/i32.atomic.rmw8.cmpxchg_u",m.i32_atomic_rmw16_cmpxchg_u="~lib/builtins/i32.atomic.rmw16.cmpxchg_u",m.i32_atomic_rmw_cmpxchg="~lib/builtins/i32.atomic.rmw.cmpxchg",m.i64_atomic_rmw8_cmpxchg_u="~lib/builtins/i64.atomic.rmw8.cmpxchg_u",m.i64_atomic_rmw16_cmpxchg_u="~lib/builtins/i64.atomic.rmw16.cmpxchg_u",m.i64_atomic_rmw32_cmpxchg_u="~lib/builtins/i64.atomic.rmw32.cmpxchg_u",m.i64_atomic_rmw_cmpxchg="~lib/builtins/i64.atomic.rmw.cmpxchg",m.memory_atomic_wait32="~lib/memory/memory.atomic.wait32",m.memory_atomic_wait64="~lib/memory/memory.atomic.wait64",m.v128_splat="~lib/builtins/v128.splat",m.v128_extract_lane="~lib/builtins/v128.extract_lane",m.v128_replace_lane="~lib/builtins/v128.replace_lane",m.v128_shuffle="~lib/builtins/v128.shuffle",m.v128_swizzle="~lib/builtins/v128.swizzle",m.v128_load_splat="~lib/builtins/v128.load_splat",m.v128_load_ext="~lib/builtins/v128.load_ext",m.v128_load_zero="~lib/builtins/v128.load_zero",m.v128_load_lane="~lib/builtins/v128.load_lane",m.v128_store_lane="~lib/builtins/v128.store_lane",m.v128_load="~lib/builtins/v128.load",m.v128_load8x8_s="~lib/builtins/v128.load8x8_s",m.v128_load8x8_u="~lib/builtins/v128.load8x8_u",m.v128_load16x4_s="~lib/builtins/v128.load16x4_s",m.v128_load16x4_u="~lib/builtins/v128.load16x4_u",m.v128_load32x2_s="~lib/builtins/v128.load32x2_s",m.v128_load32x2_u="~lib/builtins/v128.load32x2_u",m.v128_load8_splat="~lib/builtins/v128.load8_splat",m.v128_load16_splat="~lib/builtins/v128.load16_splat",m.v128_load32_splat="~lib/builtins/v128.load32_splat",m.v128_load64_splat="~lib/builtins/v128.load64_splat",m.v128_load32_zero="~lib/builtins/v128.load32_zero",m.v128_load64_zero="~lib/builtins/v128.load64_zero",m.v128_load8_lane="~lib/builtins/v128.load8_lane",m.v128_load16_lane="~lib/builtins/v128.load16_lane",m.v128_load32_lane="~lib/builtins/v128.load32_lane",m.v128_load64_lane="~lib/builtins/v128.load64_lane",m.v128_store8_lane="~lib/builtins/v128.store8_lane",m.v128_store16_lane="~lib/builtins/v128.store16_lane",m.v128_store32_lane="~lib/builtins/v128.store32_lane",m.v128_store64_lane="~lib/builtins/v128.store64_lane",m.v128_store="~lib/builtins/v128.store",m.v128_add="~lib/builtins/v128.add",m.v128_sub="~lib/builtins/v128.sub",m.v128_mul="~lib/builtins/v128.mul",m.v128_div="~lib/builtins/v128.div",m.v128_neg="~lib/builtins/v128.neg",m.v128_add_sat="~lib/builtins/v128.add_sat",m.v128_sub_sat="~lib/builtins/v128.sub_sat",m.v128_shl="~lib/builtins/v128.shl",m.v128_shr="~lib/builtins/v128.shr",m.v128_and="~lib/builtins/v128.and",m.v128_or="~lib/builtins/v128.or",m.v128_xor="~lib/builtins/v128.xor",m.v128_andnot="~lib/builtins/v128.andnot",m.v128_not="~lib/builtins/v128.not",m.v128_bitselect="~lib/builtins/v128.bitselect",m.v128_any_true="~lib/builtins/v128.any_true",m.v128_all_true="~lib/builtins/v128.all_true",m.v128_bitmask="~lib/builtins/v128.bitmask",m.v128_popcnt="~lib/builtins/v128.popcnt",m.v128_min="~lib/builtins/v128.min",m.v128_max="~lib/builtins/v128.max",m.v128_pmin="~lib/builtins/v128.pmin",m.v128_pmax="~lib/builtins/v128.pmax",m.v128_dot="~lib/builtins/v128.dot",m.v128_avgr="~lib/builtins/v128.avgr",m.v128_abs="~lib/builtins/v128.abs",m.v128_sqrt="~lib/builtins/v128.sqrt",m.v128_ceil="~lib/builtins/v128.ceil",m.v128_floor="~lib/builtins/v128.floor",m.v128_trunc="~lib/builtins/v128.trunc",m.v128_nearest="~lib/builtins/v128.nearest",m.v128_eq="~lib/builtins/v128.eq",m.v128_ne="~lib/builtins/v128.ne",m.v128_lt="~lib/builtins/v128.lt",m.v128_le="~lib/builtins/v128.le",m.v128_gt="~lib/builtins/v128.gt",m.v128_ge="~lib/builtins/v128.ge",m.v128_convert="~lib/builtins/v128.convert",m.v128_convert_low="~lib/builtins/v128.convert_low",m.v128_trunc_sat="~lib/builtins/v128.trunc_sat",m.v128_trunc_sat_zero="~lib/builtins/v128.trunc_sat_zero",m.v128_narrow="~lib/builtins/v128.narrow",m.v128_extend_low="~lib/builtins/v128.extend_low",m.v128_extend_high="~lib/builtins/v128.extend_high",m.v128_extadd_pairwise="~lib/builtins/v128.extadd_pairwise",m.v128_demote_zero="~lib/builtins/v128.demote_zero",m.v128_promote_low="~lib/builtins/v128.promote_low",m.v128_q15mulr_sat="~lib/builtins/v128.q15mulr_sat",m.v128_extmul_low="~lib/builtins/v128.extmul_low",m.v128_extmul_high="~lib/builtins/v128.extmul_high",m.v128_relaxed_swizzle="~lib/builtins/v128.relaxed_swizzle",m.v128_relaxed_trunc="~lib/builtins/v128.relaxed_trunc",m.v128_relaxed_trunc_zero="~lib/builtins/v128.relaxed_trunc_zero",m.v128_relaxed_madd="~lib/builtins/v128.relaxed_madd",m.v128_relaxed_nmadd="~lib/builtins/v128.relaxed_nmadd",m.v128_relaxed_laneselect="~lib/builtins/v128.relaxed_laneselect",m.v128_relaxed_min="~lib/builtins/v128.relaxed_min",m.v128_relaxed_max="~lib/builtins/v128.relaxed_max",m.v128_relaxed_q15mulr="~lib/builtins/v128.relaxed_q15mulr",m.v128_relaxed_dot="~lib/builtins/v128.relaxed_dot",m.v128_relaxed_dot_add="~lib/builtins/v128.relaxed_dot_add",m.i8x16="~lib/builtins/i8x16",m.i16x8="~lib/builtins/i16x8",m.i32x4="~lib/builtins/i32x4",m.i64x2="~lib/builtins/i64x2",m.f32x4="~lib/builtins/f32x4",m.f64x2="~lib/builtins/f64x2",m.i8x16_splat="~lib/builtins/i8x16.splat",m.i8x16_extract_lane_s="~lib/builtins/i8x16.extract_lane_s",m.i8x16_extract_lane_u="~lib/builtins/i8x16.extract_lane_u",m.i8x16_replace_lane="~lib/builtins/i8x16.replace_lane",m.i8x16_add="~lib/builtins/i8x16.add",m.i8x16_sub="~lib/builtins/i8x16.sub",m.i8x16_mul="~lib/builtins/i8x16.mul",m.i8x16_min_s="~lib/builtins/i8x16.min_s",m.i8x16_min_u="~lib/builtins/i8x16.min_u",m.i8x16_max_s="~lib/builtins/i8x16.max_s",m.i8x16_max_u="~lib/builtins/i8x16.max_u",m.i8x16_avgr_u="~lib/builtins/i8x16.avgr_u",m.i8x16_abs="~lib/builtins/i8x16.abs",m.i8x16_neg="~lib/builtins/i8x16.neg",m.i8x16_add_sat_s="~lib/builtins/i8x16.add_sat_s",m.i8x16_add_sat_u="~lib/builtins/i8x16.add_sat_u",m.i8x16_sub_sat_s="~lib/builtins/i8x16.sub_sat_s",m.i8x16_sub_sat_u="~lib/builtins/i8x16.sub_sat_u",m.i8x16_shl="~lib/builtins/i8x16.shl",m.i8x16_shr_s="~lib/builtins/i8x16.shr_s",m.i8x16_shr_u="~lib/builtins/i8x16.shr_u",m.i8x16_all_true="~lib/builtins/i8x16.all_true",m.i8x16_bitmask="~lib/builtins/i8x16.bitmask",m.i8x16_popcnt="~lib/builtins/i8x16.popcnt",m.i8x16_eq="~lib/builtins/i8x16.eq",m.i8x16_ne="~lib/builtins/i8x16.ne",m.i8x16_lt_s="~lib/builtins/i8x16.lt_s",m.i8x16_lt_u="~lib/builtins/i8x16.lt_u",m.i8x16_le_s="~lib/builtins/i8x16.le_s",m.i8x16_le_u="~lib/builtins/i8x16.le_u",m.i8x16_gt_s="~lib/builtins/i8x16.gt_s",m.i8x16_gt_u="~lib/builtins/i8x16.gt_u",m.i8x16_ge_s="~lib/builtins/i8x16.ge_s",m.i8x16_ge_u="~lib/builtins/i8x16.ge_u",m.i8x16_narrow_i16x8_s="~lib/builtins/i8x16.narrow_i16x8_s",m.i8x16_narrow_i16x8_u="~lib/builtins/i8x16.narrow_i16x8_u",m.i8x16_shuffle="~lib/builtins/i8x16.shuffle",m.i8x16_swizzle="~lib/builtins/i8x16.swizzle",m.i16x8_splat="~lib/builtins/i16x8.splat",m.i16x8_extract_lane_s="~lib/builtins/i16x8.extract_lane_s",m.i16x8_extract_lane_u="~lib/builtins/i16x8.extract_lane_u",m.i16x8_replace_lane="~lib/builtins/i16x8.replace_lane",m.i16x8_add="~lib/builtins/i16x8.add",m.i16x8_sub="~lib/builtins/i16x8.sub",m.i16x8_mul="~lib/builtins/i16x8.mul",m.i16x8_min_s="~lib/builtins/i16x8.min_s",m.i16x8_min_u="~lib/builtins/i16x8.min_u",m.i16x8_max_s="~lib/builtins/i16x8.max_s",m.i16x8_max_u="~lib/builtins/i16x8.max_u",m.i16x8_avgr_u="~lib/builtins/i16x8.avgr_u",m.i16x8_abs="~lib/builtins/i16x8.abs",m.i16x8_neg="~lib/builtins/i16x8.neg",m.i16x8_add_sat_s="~lib/builtins/i16x8.add_sat_s",m.i16x8_add_sat_u="~lib/builtins/i16x8.add_sat_u",m.i16x8_sub_sat_s="~lib/builtins/i16x8.sub_sat_s",m.i16x8_sub_sat_u="~lib/builtins/i16x8.sub_sat_u",m.i16x8_shl="~lib/builtins/i16x8.shl",m.i16x8_shr_s="~lib/builtins/i16x8.shr_s",m.i16x8_shr_u="~lib/builtins/i16x8.shr_u",m.i16x8_all_true="~lib/builtins/i16x8.all_true",m.i16x8_bitmask="~lib/builtins/i16x8.bitmask",m.i16x8_eq="~lib/builtins/i16x8.eq",m.i16x8_ne="~lib/builtins/i16x8.ne",m.i16x8_lt_s="~lib/builtins/i16x8.lt_s",m.i16x8_lt_u="~lib/builtins/i16x8.lt_u",m.i16x8_le_s="~lib/builtins/i16x8.le_s",m.i16x8_le_u="~lib/builtins/i16x8.le_u",m.i16x8_gt_s="~lib/builtins/i16x8.gt_s",m.i16x8_gt_u="~lib/builtins/i16x8.gt_u",m.i16x8_ge_s="~lib/builtins/i16x8.ge_s",m.i16x8_ge_u="~lib/builtins/i16x8.ge_u",m.i16x8_narrow_i32x4_s="~lib/builtins/i16x8.narrow_i32x4_s",m.i16x8_narrow_i32x4_u="~lib/builtins/i16x8.narrow_i32x4_u",m.i16x8_extend_low_i8x16_s="~lib/builtins/i16x8.extend_low_i8x16_s",m.i16x8_extend_low_i8x16_u="~lib/builtins/i16x8.extend_low_i8x16_u",m.i16x8_extend_high_i8x16_s="~lib/builtins/i16x8.extend_high_i8x16_s",m.i16x8_extend_high_i8x16_u="~lib/builtins/i16x8.extend_high_i8x16_u",m.i16x8_extadd_pairwise_i8x16_s="~lib/builtins/i16x8.extadd_pairwise_i8x16_s",m.i16x8_extadd_pairwise_i8x16_u="~lib/builtins/i16x8.extadd_pairwise_i8x16_u",m.i16x8_q15mulr_sat_s="~lib/builtins/i16x8.q15mulr_sat_s",m.i16x8_extmul_low_i8x16_s="~lib/builtins/i16x8.extmul_low_i8x16_s",m.i16x8_extmul_low_i8x16_u="~lib/builtins/i16x8.extmul_low_i8x16_u",m.i16x8_extmul_high_i8x16_s="~lib/builtins/i16x8.extmul_high_i8x16_s",m.i16x8_extmul_high_i8x16_u="~lib/builtins/i16x8.extmul_high_i8x16_u",m.i16x8_shuffle="~lib/builtins/i16x8.shuffle",m.i32x4_splat="~lib/builtins/i32x4.splat",m.i32x4_extract_lane="~lib/builtins/i32x4.extract_lane",m.i32x4_replace_lane="~lib/builtins/i32x4.replace_lane",m.i32x4_add="~lib/builtins/i32x4.add",m.i32x4_sub="~lib/builtins/i32x4.sub",m.i32x4_mul="~lib/builtins/i32x4.mul",m.i32x4_min_s="~lib/builtins/i32x4.min_s",m.i32x4_min_u="~lib/builtins/i32x4.min_u",m.i32x4_max_s="~lib/builtins/i32x4.max_s",m.i32x4_max_u="~lib/builtins/i32x4.max_u",m.i32x4_dot_i16x8_s="~lib/builtins/i32x4.dot_i16x8_s",m.i32x4_abs="~lib/builtins/i32x4.abs",m.i32x4_neg="~lib/builtins/i32x4.neg",m.i32x4_shl="~lib/builtins/i32x4.shl",m.i32x4_shr_s="~lib/builtins/i32x4.shr_s",m.i32x4_shr_u="~lib/builtins/i32x4.shr_u",m.i32x4_all_true="~lib/builtins/i32x4.all_true",m.i32x4_bitmask="~lib/builtins/i32x4.bitmask",m.i32x4_eq="~lib/builtins/i32x4.eq",m.i32x4_ne="~lib/builtins/i32x4.ne",m.i32x4_lt_s="~lib/builtins/i32x4.lt_s",m.i32x4_lt_u="~lib/builtins/i32x4.lt_u",m.i32x4_le_s="~lib/builtins/i32x4.le_s",m.i32x4_le_u="~lib/builtins/i32x4.le_u",m.i32x4_gt_s="~lib/builtins/i32x4.gt_s",m.i32x4_gt_u="~lib/builtins/i32x4.gt_u",m.i32x4_ge_s="~lib/builtins/i32x4.ge_s",m.i32x4_ge_u="~lib/builtins/i32x4.ge_u",m.i32x4_trunc_sat_f32x4_s="~lib/builtins/i32x4.trunc_sat_f32x4_s",m.i32x4_trunc_sat_f32x4_u="~lib/builtins/i32x4.trunc_sat_f32x4_u",m.i32x4_trunc_sat_f64x2_s_zero="~lib/builtins/i32x4.trunc_sat_f64x2_s_zero",m.i32x4_trunc_sat_f64x2_u_zero="~lib/builtins/i32x4.trunc_sat_f64x2_u_zero",m.i32x4_extend_low_i16x8_s="~lib/builtins/i32x4.extend_low_i16x8_s",m.i32x4_extend_low_i16x8_u="~lib/builtins/i32x4.extend_low_i16x8_u",m.i32x4_extend_high_i16x8_s="~lib/builtins/i32x4.extend_high_i16x8_s",m.i32x4_extend_high_i16x8_u="~lib/builtins/i32x4.extend_high_i16x8_u",m.i32x4_extadd_pairwise_i16x8_s="~lib/builtins/i32x4.extadd_pairwise_i16x8_s",m.i32x4_extadd_pairwise_i16x8_u="~lib/builtins/i32x4.extadd_pairwise_i16x8_u",m.i32x4_extmul_low_i16x8_s="~lib/builtins/i32x4.extmul_low_i16x8_s",m.i32x4_extmul_low_i16x8_u="~lib/builtins/i32x4.extmul_low_i16x8_u",m.i32x4_extmul_high_i16x8_s="~lib/builtins/i32x4.extmul_high_i16x8_s",m.i32x4_extmul_high_i16x8_u="~lib/builtins/i32x4.extmul_high_i16x8_u",m.i32x4_shuffle="~lib/builtins/i32x4.shuffle",m.i64x2_splat="~lib/builtins/i64x2.splat",m.i64x2_extract_lane="~lib/builtins/i64x2.extract_lane",m.i64x2_replace_lane="~lib/builtins/i64x2.replace_lane",m.i64x2_add="~lib/builtins/i64x2.add",m.i64x2_sub="~lib/builtins/i64x2.sub",m.i64x2_mul="~lib/builtins/i64x2.mul",m.i64x2_abs="~lib/builtins/i64x2.abs",m.i64x2_neg="~lib/builtins/i64x2.neg",m.i64x2_shl="~lib/builtins/i64x2.shl",m.i64x2_shr_s="~lib/builtins/i64x2.shr_s",m.i64x2_shr_u="~lib/builtins/i64x2.shr_u",m.i64x2_all_true="~lib/builtins/i64x2.all_true",m.i64x2_bitmask="~lib/builtins/i64x2.bitmask",m.i64x2_eq="~lib/builtins/i64x2.eq",m.i64x2_ne="~lib/builtins/i64x2.ne",m.i64x2_lt_s="~lib/builtins/i64x2.lt_s",m.i64x2_lt_u="~lib/builtins/i64x2.lt_u",m.i64x2_le_s="~lib/builtins/i64x2.le_s",m.i64x2_le_u="~lib/builtins/i64x2.le_u",m.i64x2_gt_s="~lib/builtins/i64x2.gt_s",m.i64x2_gt_u="~lib/builtins/i64x2.gt_u",m.i64x2_ge_s="~lib/builtins/i64x2.ge_s",m.i64x2_ge_u="~lib/builtins/i64x2.ge_u",m.i64x2_extend_low_i32x4_s="~lib/builtins/i64x2.extend_low_i32x4_s",m.i64x2_extend_low_i32x4_u="~lib/builtins/i64x2.extend_low_i32x4_u",m.i64x2_extend_high_i32x4_s="~lib/builtins/i64x2.extend_high_i32x4_s",m.i64x2_extend_high_i32x4_u="~lib/builtins/i64x2.extend_high_i32x4_u",m.i64x2_extmul_low_i32x4_s="~lib/builtins/i64x2.extmul_low_i32x4_s",m.i64x2_extmul_low_i32x4_u="~lib/builtins/i64x2.extmul_low_i32x4_u",m.i64x2_extmul_high_i32x4_s="~lib/builtins/i64x2.extmul_high_i32x4_s",m.i64x2_extmul_high_i32x4_u="~lib/builtins/i64x2.extmul_high_i32x4_u",m.i64x2_shuffle="~lib/builtins/i64x2.shuffle",m.f32x4_splat="~lib/builtins/f32x4.splat",m.f32x4_extract_lane="~lib/builtins/f32x4.extract_lane",m.f32x4_replace_lane="~lib/builtins/f32x4.replace_lane",m.f32x4_add="~lib/builtins/f32x4.add",m.f32x4_sub="~lib/builtins/f32x4.sub",m.f32x4_mul="~lib/builtins/f32x4.mul",m.f32x4_div="~lib/builtins/f32x4.div",m.f32x4_neg="~lib/builtins/f32x4.neg",m.f32x4_min="~lib/builtins/f32x4.min",m.f32x4_max="~lib/builtins/f32x4.max",m.f32x4_pmin="~lib/builtins/f32x4.pmin",m.f32x4_pmax="~lib/builtins/f32x4.pmax",m.f32x4_abs="~lib/builtins/f32x4.abs",m.f32x4_sqrt="~lib/builtins/f32x4.sqrt",m.f32x4_ceil="~lib/builtins/f32x4.ceil",m.f32x4_floor="~lib/builtins/f32x4.floor",m.f32x4_trunc="~lib/builtins/f32x4.trunc",m.f32x4_nearest="~lib/builtins/f32x4.nearest",m.f32x4_eq="~lib/builtins/f32x4.eq",m.f32x4_ne="~lib/builtins/f32x4.ne",m.f32x4_lt="~lib/builtins/f32x4.lt",m.f32x4_le="~lib/builtins/f32x4.le",m.f32x4_gt="~lib/builtins/f32x4.gt",m.f32x4_ge="~lib/builtins/f32x4.ge",m.f32x4_convert_i32x4_s="~lib/builtins/f32x4.convert_i32x4_s",m.f32x4_convert_i32x4_u="~lib/builtins/f32x4.convert_i32x4_u",m.f32x4_demote_f64x2_zero="~lib/builtins/f32x4.demote_f64x2_zero",m.f32x4_shuffle="~lib/builtins/f32x4.shuffle",m.f64x2_splat="~lib/builtins/f64x2.splat",m.f64x2_extract_lane="~lib/builtins/f64x2.extract_lane",m.f64x2_replace_lane="~lib/builtins/f64x2.replace_lane",m.f64x2_add="~lib/builtins/f64x2.add",m.f64x2_sub="~lib/builtins/f64x2.sub",m.f64x2_mul="~lib/builtins/f64x2.mul",m.f64x2_div="~lib/builtins/f64x2.div",m.f64x2_neg="~lib/builtins/f64x2.neg",m.f64x2_min="~lib/builtins/f64x2.min",m.f64x2_max="~lib/builtins/f64x2.max",m.f64x2_pmin="~lib/builtins/f64x2.pmin",m.f64x2_pmax="~lib/builtins/f64x2.pmax",m.f64x2_abs="~lib/builtins/f64x2.abs",m.f64x2_sqrt="~lib/builtins/f64x2.sqrt",m.f64x2_ceil="~lib/builtins/f64x2.ceil",m.f64x2_floor="~lib/builtins/f64x2.floor",m.f64x2_trunc="~lib/builtins/f64x2.trunc",m.f64x2_nearest="~lib/builtins/f64x2.nearest",m.f64x2_eq="~lib/builtins/f64x2.eq",m.f64x2_ne="~lib/builtins/f64x2.ne",m.f64x2_lt="~lib/builtins/f64x2.lt",m.f64x2_le="~lib/builtins/f64x2.le",m.f64x2_gt="~lib/builtins/f64x2.gt",m.f64x2_ge="~lib/builtins/f64x2.ge",m.f64x2_convert_low_i32x4_s="~lib/builtins/f64x2.convert_low_i32x4_s",m.f64x2_convert_low_i32x4_u="~lib/builtins/f64x2.convert_low_i32x4_u",m.f64x2_promote_low_f32x4="~lib/builtins/f64x2.promote_low_f32x4",m.f64x2_shuffle="~lib/builtins/f64x2.shuffle",m.i8x16_relaxed_swizzle="~lib/builtins/i8x16.relaxed_swizzle",m.i32x4_relaxed_trunc_f32x4_s="~lib/builtins/i32x4.relaxed_trunc_f32x4_s",m.i32x4_relaxed_trunc_f32x4_u="~lib/builtins/i32x4.relaxed_trunc_f32x4_u",m.i32x4_relaxed_trunc_f64x2_s_zero="~lib/builtins/i32x4.relaxed_trunc_f64x2_s_zero",m.i32x4_relaxed_trunc_f64x2_u_zero="~lib/builtins/i32x4.relaxed_trunc_f64x2_u_zero",m.f32x4_relaxed_madd="~lib/builtins/f32x4.relaxed_madd",m.f32x4_relaxed_nmadd="~lib/builtins/f32x4.relaxed_nmadd",m.f64x2_relaxed_madd="~lib/builtins/f64x2.relaxed_madd",m.f64x2_relaxed_nmadd="~lib/builtins/f64x2.relaxed_nmadd",m.i8x16_relaxed_laneselect="~lib/builtins/i8x16.relaxed_laneselect",m.i16x8_relaxed_laneselect="~lib/builtins/i16x8.relaxed_laneselect",m.i32x4_relaxed_laneselect="~lib/builtins/i32x4.relaxed_laneselect",m.i64x2_relaxed_laneselect="~lib/builtins/i64x2.relaxed_laneselect",m.f32x4_relaxed_min="~lib/builtins/f32x4.relaxed_min",m.f32x4_relaxed_max="~lib/builtins/f32x4.relaxed_max",m.f64x2_relaxed_min="~lib/builtins/f64x2.relaxed_min",m.f64x2_relaxed_max="~lib/builtins/f64x2.relaxed_max",m.i16x8_relaxed_q15mulr_s="~lib/builtins/i16x8.relaxed_q15mulr_s",m.i16x8_relaxed_dot_i8x16_i7x16_s="~lib/builtins/i16x8.relaxed_dot_i8x16_i7x16_s",m.i32x4_relaxed_dot_i8x16_i7x16_add_s="~lib/builtins/i32x4.relaxed_dot_i8x16_i7x16_add_s",m.i31_new="~lib/builtins/i31.new",m.i31_get="~lib/builtins/i31.get",m.data_end="~lib/memory/__data_end",m.stack_pointer="~lib/memory/__stack_pointer",m.heap_base="~lib/memory/__heap_base",m.rtti_base="~lib/rt/__rtti_base",m.visit_globals="~lib/rt/__visit_globals",m.visit_members="~lib/rt/__visit_members",m.tostack="~lib/rt/__tostack",m.NaN="~lib/number/NaN",m.Infinity="~lib/number/Infinity",m.isNaN="~lib/number/isNaN",m.isFinite="~lib/number/isFinite",m.ERROR="~lib/diagnostics/ERROR",m.WARNING="~lib/diagnostics/WARNING",m.INFO="~lib/diagnostics/INFO",m.Function="~lib/function/Function",m.Function_call="~lib/function/Function#call",m.memory_size="~lib/memory/memory.size",m.memory_grow="~lib/memory/memory.grow",m.memory_copy="~lib/memory/memory.copy",m.memory_fill="~lib/memory/memory.fill",m.memory_data="~lib/memory/memory.data",m.Int8Array="~lib/typedarray/Int8Array",m.Uint8Array="~lib/typedarray/Uint8Array",m.Uint8ClampedArray="~lib/typedarray/Uint8ClampedArray",m.Int16Array="~lib/typedarray/Int16Array",m.Uint16Array="~lib/typedarray/Uint16Array",m.Int32Array="~lib/typedarray/Int32Array",m.Uint32Array="~lib/typedarray/Uint32Array",m.Int64Array="~lib/typedarray/Int64Array",m.Uint64Array="~lib/typedarray/Uint64Array",m.Float32Array="~lib/typedarray/Float32Array",m.Float64Array="~lib/typedarray/Float64Array",m.String_raw="~lib/string/String.raw",m.String_eq="~lib/string/String.__eq",m.String_ne="~lib/string/String.__ne",m.String_not="~lib/string/String.__not",m.Object="~lib/object/Object"))(d||={});var Wl=class{constructor(i,e,r,n,s){this.resolver=i;this.node=e;this.ctxElement=r;this.ctxTypes=n;this.reportMode=s}},os=class{constructor(i,e,r=e.type,n=e.identifierNode){this.compiler=i;this.element=e;this.contextualType=r;this.reportNode=n}},Jl=class{constructor(i,e,r,n,s,a,l,o){this.compiler=i;this.prototype=e;this.typeArguments=r;this.operands=n;this.thisOperand=s;this.contextualType=a;this.reportNode=l;this.contextIsExact=o}},rr=new Map,g=new Map,qt=new Map,ot=new Map;function O2(t){let i=t.resolver,e=t.node,r=t.ctxElement,n=t.ctxTypes,s=t.reportMode,a=i.ensureOneTypeArgument(e,s);if(!a)return null;let l=i.resolveType(a,null,r,n,s);if(!l)return null;switch(l.kind){case 1:case 2:case 3:return p.i32;case 5:if(!i.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(!i.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 25:return p.void;default:assert(!1)}return null}rr.set(P.native,O2);function q2(t){let i=t.resolver,e=t.node,r=t.ctxElement,n=t.ctxTypes,s=t.reportMode,a=i.ensureOneTypeArgument(e,s);if(!a)return null;let l=i.resolveType(a,null,r,n,s);if(!l)return null;let o=l.classReference;if(!o)return s==0&&i.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&&i.error(2329,a.range,l.toString()),null}rr.set(P.indexof,q2);function W2(t){let i=t.resolver,e=t.node,r=t.ctxElement,n=t.ctxTypes,s=t.reportMode,a=i.ensureOneTypeArgument(e,s);if(!a)return null;let l=i.resolveType(a,null,r,n,s);if(!l)return null;let o=l.getClassOrWrapper(i.program);if(o){let u=o.lookupOverload(1);if(u)return u.signature.returnType}return s==0&&i.error(2329,a.range,l.toString()),null}rr.set(P.valueof,W2);function K2(t){let i=t.resolver,e=t.node,r=t.ctxElement,n=t.ctxTypes,s=t.reportMode,a=i.ensureOneTypeArgument(e,s);if(!a)return null;let l=i.resolveType(a,null,r,n,s);if(!l)return null;let o=l.getSignature();return o?o.returnType:(s==0&&i.error(2757,a.range,l.toString()),null)}rr.set(P.returnof,K2);function j2(t){let i=t.resolver,e=t.node,r=t.ctxElement,n=t.ctxTypes,s=t.reportMode,a=i.ensureOneTypeArgument(e,s);if(!a)return null;let l=i.resolveType(a,null,r,n,s);return l?l.isNullableReference?l.nonNullableType:l:null}rr.set(P.nonnull,j2);var Li=0;function H2(t){let i=t.compiler,e=i.module,r=Be(t);return i.currentType=p.bool,r?Fe(t,e.i32(r.isBooleanValue?1:0)):e.unreachable()}g.set(d.isBoolean,H2);function Q2(t){let i=t.compiler,e=i.module,r=Be(t);return i.currentType=p.bool,r?Fe(t,e.i32(r.isIntegerValue?1:0)):e.unreachable()}g.set(d.isInteger,Q2);function X2(t){let i=t.compiler,e=i.module,r=Be(t);return i.currentType=p.bool,r?Fe(t,e.i32(r.isSignedIntegerValue?1:0)):e.unreachable()}g.set(d.isSigned,X2);function J2(t){let i=t.compiler,e=i.module,r=Be(t);return i.currentType=p.bool,r?Fe(t,e.i32(r.isFloatValue?1:0)):e.unreachable()}g.set(d.isFloat,J2);function Z2(t){let i=t.compiler,e=i.module,r=Be(t);return i.currentType=p.bool,r?Fe(t,e.i32(r.isVectorValue?1:0)):e.unreachable()}g.set(d.isVector,Z2);function Y2(t){let i=t.compiler,e=i.module,r=Be(t);return i.currentType=p.bool,r?Fe(t,e.i32(r.isReference?1:0)):e.unreachable()}g.set(d.isReference,Y2);function $2(t){let i=t.compiler,e=i.module,r=Be(t);if(i.currentType=p.bool,!r)return e.unreachable();let n=r.getClass();return Fe(t,e.i32(n&&n.isAssignableTo(i.program.stringInstance)?1:0))}g.set(d.isString,$2);function e1(t){let i=t.compiler,e=i.module,r=Be(t);if(i.currentType=p.bool,!r)return e.unreachable();let n=r.getClass();return Fe(t,e.i32(n&&n.extendsPrototype(i.program.arrayPrototype)?1:0))}g.set(d.isArray,e1);function t1(t){let i=t.compiler,e=i.module,r=Be(t);if(i.currentType=p.bool,!r)return e.unreachable();let n=r.getClass();return Fe(t,e.i32(n&&n.isArrayLike?1:0))}g.set(d.isArrayLike,t1);function r1(t){let i=t.compiler,e=i.module,r=Be(t);return i.currentType=p.bool,r?Fe(t,e.i32(r.isFunction?1:0)):e.unreachable()}g.set(d.isFunction,r1);function i1(t){let i=t.compiler,e=i.module,r=Be(t);return i.currentType=p.bool,r?Fe(t,e.i32(r.isNullableReference?1:0)):e.unreachable()}g.set(d.isNullable,i1);function n1(t){let i=t.compiler,e=i.module;if(i.currentType=p.bool,v(t)|K(t,1))return e.unreachable();let r=i.resolver.lookupExpression(t.operands[0],i.currentFlow,p.auto,1);return e.i32(r?1:0)}g.set(d.isDefined,n1);function s1(t){let i=t.compiler,e=i.module;if(i.currentType=p.bool,v(t)|K(t,1))return e.unreachable();let r=i.compileExpression(t.operands[0],p.auto);return i.currentType=p.bool,Gl(r,e.ref)?e.block(null,[e.maybeDrop(r),e.i32(0)],se(r)):e.i32(e.isConstExpression(r)?1:0)}g.set(d.isConstant,s1);function a1(t){let i=t.compiler,e=i.module,r=Be(t);return i.currentType=p.bool,r?Fe(t,e.i32(r.isManaged?1:0)):e.unreachable()}g.set(d.isManaged,a1);function l1(t){let i=t.compiler,e=i.module,r=Be(t);return i.currentType=p.bool,r?Fe(t,e.i32(r.kind==25?1:0)):e.unreachable()}g.set(d.isVoid,l1);function o1(t){let i=t.compiler,e=i.module,r=Be(t);if(i.currentType=p.i32,!r)return e.unreachable();let n=r.signatureReference;return n?Fe(t,e.i32(n.parameterTypes.length)):(i.error(2757,t.reportNode.range,r.toString()),e.unreachable())}g.set(d.lengthof,o1);function u1(t){let i=t.compiler,e=i.module;if(i.currentType=i.options.usizeType,J(t)|K(t,0))return e.unreachable();let r=t.typeArguments[0],n=r.byteSize;return n?Zl(i,i64_new(n),t.contextualType):(i.error(203,t.reportNode.typeArgumentsRange,"sizeof",r.toString()),e.unreachable())}g.set(d.sizeof,u1);function p1(t){let i=t.compiler,e=i.module;if(i.currentType=i.options.usizeType,J(t)|K(t,0))return e.unreachable();let r=t.typeArguments[0],n=r.byteSize;return Pt(n)?Zl(i,i64_new(ctz(n)),t.contextualType):(i.error(203,t.reportNode.typeArgumentsRange,"alignof",r.toString()),e.unreachable())}g.set(d.alignof,p1);function c1(t){let i=t.compiler,e=i.module;if(i.currentType=i.options.usizeType,J(t)|Se(t,0,1))return e.unreachable();let r=t.operands,n=t.contextualType,s=t.typeArguments[0],a=s.getClassOrWrapper(i.program);if(!a)return i.error(203,t.reportNode.typeArgumentsRange,"offsetof",s.toString()),i.options.isWasm64?n.isIntegerValue&&n.size<=32&&(i.currentType=p.u32):n.isIntegerValue&&n.size==64&&(i.currentType=p.u64),e.unreachable();if(r.length){let l=r[0];if(!l.isLiteralKind(2))return i.error(1141,r[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),Zl(i,i64_new(c.memoryOffset),n)}return i.error(2460,l.range,a.internalName,o),e.unreachable()}return Zl(i,i64_new(a.nextMemoryOffset),n)}g.set(d.offsetof,c1);function _1(t){let i=t.compiler,e=i.module,r=Be(t);if(!r)return i.currentType=i.program.stringInstance.type,e.unreachable();let n;if(r.isInternalReference){let s=r.getClass();s?n=s.name:(assert(r.getSignature()),n="Function")}else n=r.toString();return Fe(t,i.ensureStaticString(n))}g.set(d.nameof,_1);function f1(t){let i=t.compiler,e=i.module,r=Be(t);if(i.currentType=p.u32,!r)return e.unreachable();let n=r.getSignature();if(n)return Fe(t,e.i32(n.id));let s=r.getClassOrWrapper(i.program);return s&&!s.hasDecorator(16)?Fe(t,e.i32(s.id)):(i.error(203,t.reportNode.typeArgumentsRange,"idof",r.toString()),e.unreachable())}g.set(d.idof,f1);function h1(t){let i=t.element;if(i.is(1048576)){let e=t.compiler.module;e.addGlobal(i.internalName,L.F64,!1,e.f64(NaN))}}qt.set(d.NaN,h1);function d1(t){let i=t.compiler,e=i.module;return t.contextualType==p.f32?(i.currentType=p.f32,e.f32(NaN)):(i.currentType=p.f64,e.f64(NaN))}ot.set(d.NaN,d1);function m1(t){let i=t.element;if(i.is(1048576)){let e=t.compiler.module;e.addGlobal(i.internalName,L.F64,!1,e.f64(1/0))}}qt.set(d.Infinity,m1);function y1(t){let i=t.compiler,e=i.module;return t.contextualType==p.f32?(i.currentType=p.f32,e.f32(1/0)):(i.currentType=p.f64,e.f64(1/0))}ot.set(d.Infinity,y1);function tc(t){let i=t.compiler,e=i.module;if(ae(t,!0)|K(t,1))return e.unreachable();let r=t.typeArguments,n=r?i.compileExpression(t.operands[0],r[0],5):i.compileExpression(t.operands[0],p.i32,4),s=i.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 i.error(203,t.reportNode.typeArgumentsRange,"clz",s.toString()),e.unreachable()}g.set(d.clz,tc);function rc(t){let i=t.compiler,e=i.module;if(ae(t,!0)|K(t,1))return e.unreachable();let r=t.operands,n=t.typeArguments,s=n?i.compileExpression(r[0],n[0],5):i.compileExpression(r[0],p.i32,4),a=i.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 i.error(203,t.reportNode.typeArgumentsRange,"ctz",a.toString()),e.unreachable()}g.set(d.ctz,rc);function ic(t){let i=t.compiler,e=i.module;if(ae(t,!0)|K(t,1))return e.unreachable();let r=t.operands,n=t.typeArguments,s=n?i.compileExpression(r[0],n[0],5):i.compileExpression(r[0],p.i32,4),a=i.currentType;if(a.isValue)switch(i.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 i.error(203,t.reportNode.typeArgumentsRange,"popcnt",a.toString()),e.unreachable()}g.set(d.popcnt,ic);function nc(t){let i=t.compiler,e=i.module;if(ae(t,!0)|K(t,2))return e.unreachable();let r=t.operands,n=t.typeArguments,s=n?i.compileExpression(r[0],n[0],5):i.compileExpression(r[0],p.i32,4),a=i.currentType;if(a.isValue){let l=i.compileExpression(r[1],a,1);switch(a.kind){case 0:return s;case 1:case 2:case 6:case 7:{let o=i.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,L.I32),e.binary(7,e.binary(1,e.i32(0),e.local_get(c.index,L.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 i.error(203,t.reportNode.typeArgumentsRange,"rotl",a.toString()),e.unreachable()}g.set(d.rotl,nc);function sc(t){let i=t.compiler,e=i.module;if(ae(t,!0)|K(t,2))return e.unreachable();let r=t.operands,n=t.typeArguments,s=n?i.compileExpression(r[0],n[0],5):i.compileExpression(r[0],p.i32,4),a=i.currentType;if(a.isValue){let l=i.compileExpression(r[1],a,1);switch(a.kind){case 0:return s;case 1:case 2:case 6:case 7:{let o=i.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,L.I32),e.binary(7,e.binary(1,e.i32(0),e.local_get(c.index,L.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 i.error(203,t.reportNode.typeArgumentsRange,"rotr",a.toString()),e.unreachable()}g.set(d.rotr,sc);function ac(t){let i=t.compiler,e=i.module;if(ae(t,!0)|K(t,1))return e.unreachable();let r=t.operands,n=t.typeArguments,s=n?i.compileExpression(r[0],n[0],5):i.compileExpression(r[0],p.auto,4),a=i.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=i.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,L.I32)),e.local_get(u.index,L.I32))}case 5:{let l=i.options,o=i.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),i.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=i.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,L.I64)),e.local_get(u.index,L.I64))}case 11:return e.unary(8,s);case 12:return e.unary(9,s)}return i.error(203,t.reportNode.typeArgumentsRange,"abs",a.toString()),e.unreachable()}g.set(d.abs,ac);function lc(t){let i=t.compiler,e=i.module;if(ae(t,!0)|K(t,2))return e.unreachable();let r=t.operands,n=t.typeArguments,s=r[0],a=n?i.compileExpression(s,n[0],5):i.compileExpression(r[0],p.auto,4),l=i.currentType;if(l.isValue){let o;!n&&s.isNumericLiteral?(o=i.compileExpression(r[1],l,4),i.currentType!=l&&(a=i.compileExpression(s,l=i.currentType,5))):o=i.compileExpression(r[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=i.currentFlow,_=l.toRef(),f=c.getTempLocal(l);c.setLocalFlag(f.index,2);let h=c.getTempLocal(l);return c.setLocalFlag(h.index,2),e.select(e.local_tee(f.index,a,!1),e.local_tee(h.index,o,!1),e.binary(u,e.local_get(f.index,_),e.local_get(h.index,_)))}}return i.error(203,t.reportNode.typeArgumentsRange,"max",l.toString()),e.unreachable()}g.set(d.max,lc);function oc(t){let i=t.compiler,e=i.module;if(ae(t,!0)|K(t,2))return e.unreachable();let r=t.operands,n=t.typeArguments,s=r[0],a=n?i.compileExpression(s,n[0],5):i.compileExpression(r[0],p.auto,4),l=i.currentType;if(l.isValue){let o;!n&&s.isNumericLiteral?(o=i.compileExpression(r[1],l,4),i.currentType!=l&&(a=i.compileExpression(s,l=i.currentType,5))):o=i.compileExpression(r[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=i.currentFlow,_=l.toRef(),f=c.getTempLocal(l);c.setLocalFlag(f.index,2);let h=c.getTempLocal(l);return c.setLocalFlag(h.index,2),e.select(e.local_tee(f.index,a,!1),e.local_tee(h.index,o,!1),e.binary(u,e.local_get(f.index,_),e.local_get(h.index,_)))}}return i.error(203,t.reportNode.typeArgumentsRange,"min",l.toString()),e.unreachable()}g.set(d.min,oc);function uc(t){let i=t.compiler,e=i.module;if(ae(t,!0)|K(t,1))return e.unreachable();let r=t.operands,n=t.typeArguments,s=n?i.compileExpression(r[0],n[0],1):i.compileExpression(r[0],p.auto,0),a=i.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 i.error(203,t.reportNode.typeArgumentsRange,"ceil",a.toString()),e.unreachable()}g.set(d.ceil,uc);function pc(t){let i=t.compiler,e=i.module;if(ae(t,!0)|K(t,1))return e.unreachable();let r=t.operands,n=t.typeArguments,s=n?i.compileExpression(r[0],n[0],1):i.compileExpression(r[0],p.auto,0),a=i.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 i.error(203,t.reportNode.typeArgumentsRange,"floor",a.toString()),e.unreachable()}g.set(d.floor,pc);function cc(t){let i=t.compiler,e=i.module;if(ae(t,!0)|K(t,2))return e.unreachable();let r=t.operands,n=t.typeArguments,s=n?i.compileExpression(r[0],n[0],1):i.compileExpression(r[0],p.f64,0),a=i.currentType;if(a.isValue){let l=i.compileExpression(r[1],a,1);switch(a.kind){case 11:return e.binary(54,s,l);case 12:return e.binary(67,s,l)}}return i.error(203,t.reportNode.typeArgumentsRange,"copysign",a.toString()),e.unreachable()}g.set(d.copysign,cc);function _c(t){let i=t.compiler,e=i.module;if(ae(t,!0)|K(t,1))return e.unreachable();let r=t.operands,n=t.typeArguments,s=n?i.compileExpression(r[0],n[0],1):i.compileExpression(r[0],p.auto,0),a=i.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 i.error(203,t.reportNode.typeArgumentsRange,"nearest",a.toString()),e.unreachable()}g.set(d.nearest,_c);function us(t){let i=t.compiler,e=i.module;if(J(t,!0)|K(t,1))return e.unreachable();let r=t.operands,s=t.typeArguments[0];if(s.isValue)switch(s.kind){case 3:case 8:{let a=i.compileExpression(r[0],p.f32,1);return i.currentType=s,e.unary(33,a)}case 4:case 9:{let a=i.compileExpression(r[0],p.f64,1);return i.currentType=s,e.unary(34,a)}case 5:case 10:{let a=i.options.isWasm64,l=i.compileExpression(r[0],a?p.f64:p.f32,1);return i.currentType=s,e.unary(a?34:33,l)}case 11:{let a=i.compileExpression(r[0],p.i32,1);return i.currentType=p.f32,e.unary(45,a)}case 12:{let a=i.compileExpression(r[0],p.i64,1);return i.currentType=p.f64,e.unary(46,a)}}return i.error(203,t.reportNode.typeArgumentsRange,"reinterpret",s.toString()),e.unreachable()}g.set(d.reinterpret,us);function fc(t){let i=t.compiler,e=i.module;if(ae(t,!0)|K(t,1))return e.unreachable();let r=t.operands,n=t.typeArguments,s=n?i.compileExpression(r[0],n[0],1):i.compileExpression(r[0],p.f64,0),a=i.currentType;if(a.isValue)switch(a.kind){case 11:return e.unary(18,s);case 12:return e.unary(19,s)}return i.error(203,t.reportNode.typeArgumentsRange,"sqrt",a.toString()),e.unreachable()}g.set(d.sqrt,fc);function hc(t){let i=t.compiler,e=i.module;if(ae(t,!0)|K(t,1))return e.unreachable();let r=t.operands,n=t.typeArguments,s=n?i.compileExpression(r[0],n[0],1):i.compileExpression(r[0],p.auto,0),a=i.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 i.error(203,t.reportNode.typeArgumentsRange,"trunc",a.toString()),e.unreachable()}g.set(d.trunc,hc);function g1(t){let i=t.compiler,e=i.module;if(ae(t)|K(t,1))return i.currentType=p.bool,e.unreachable();let r=t.operands,n=t.typeArguments,s=n?i.compileExpression(r[0],n[0],1):i.compileExpression(r[0],p.auto),a=i.currentType;if(i.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($(s)==8)return e.binary(58,s,e.local_get(dt(s),L.F32));let o=i.currentFlow.getTempLocal(p.f32);return e.binary(58,e.local_tee(o.index,s,!1),e.local_get(o.index,L.F32))}case 12:{if($(s)==8)return e.binary(71,s,e.local_get(dt(s),L.F64));let o=i.currentFlow.getTempLocal(p.f64);return e.binary(71,e.local_tee(o.index,s,!1),e.local_get(o.index,L.F64))}}return i.error(203,t.reportNode.typeArgumentsRange,"isNaN",a.toString()),e.unreachable()}g.set(d.isNaN,g1);function b1(t){let i=t.compiler,e=i.module;if(ae(t)|K(t,1))return i.currentType=p.bool,e.unreachable();let r=t.operands,n=t.typeArguments,s=n?i.compileExpression(r[0],n[0],1):i.compileExpression(r[0],p.auto),a=i.currentType;if(i.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($(s)==8)return e.binary(57,e.binary(51,s,e.local_get(dt(s),L.F32)),e.f32(0));let o=i.currentFlow.getTempLocal(p.f32);return e.binary(57,e.binary(51,e.local_tee(o.index,s,!1),e.local_get(o.index,L.F32)),e.f32(0))}case 12:{if($(s)==8)return e.binary(70,e.binary(64,s,e.local_get(dt(s),L.F64)),e.f64(0));let o=i.currentFlow.getTempLocal(p.f64);return e.binary(70,e.binary(64,e.local_tee(o.index,s,!1),e.local_get(o.index,L.F64)),e.f64(0))}}return i.error(203,t.reportNode.typeArgumentsRange,"isFinite",a.toString()),e.unreachable()}g.set(d.isFinite,b1);function x1(t){let i=t.compiler,e=i.module,r=t.element,n=r.type;i.runtimeFeatures|=4,e.getGlobal(r.internalName)||e.addGlobal(r.internalName,n.toRef(),!0,i.makeZero(n))}qt.set(d.heap_base,x1);function T1(t){let i=t.compiler,e=i.module,r=t.element,n=r.type;return i.runtimeFeatures|=4,i.currentType=n,e.global_get(r.internalName,n.toRef())}ot.set(d.heap_base,T1);function A1(t){let i=t.compiler,e=i.module,r=t.element,n=r.type;i.runtimeFeatures|=1,e.getGlobal(r.internalName)||e.addGlobal(r.internalName,n.toRef(),!0,i.makeZero(n))}qt.set(d.data_end,A1);function E1(t){let i=t.compiler,e=i.module,r=t.element,n=r.type;return i.runtimeFeatures|=1,i.currentType=n,e.global_get(r.internalName,n.toRef())}ot.set(d.data_end,E1);function v1(t){let i=t.compiler,e=i.module,r=t.element,n=r.type;i.runtimeFeatures|=2,e.getGlobal(r.internalName)||e.addGlobal(r.internalName,n.toRef(),!0,i.makeZero(n))}qt.set(d.stack_pointer,v1);function S1(t){let i=t.compiler,e=i.module,r=t.element,n=r.type;return i.runtimeFeatures|=2,i.currentType=n,e.global_get(r.internalName,n.toRef())}ot.set(d.stack_pointer,S1);function I1(t){let i=t.compiler,e=i.module,r=t.element,n=r.type;i.runtimeFeatures|=8,e.getGlobal(r.internalName)||e.addGlobal(r.internalName,n.toRef(),!0,i.makeZero(n))}qt.set(d.rtti_base,I1);function R1(t){let i=t.compiler,e=i.module,r=t.element,n=r.type;return i.runtimeFeatures|=8,i.currentType=n,e.global_get(r.internalName,n.toRef())}ot.set(d.rtti_base,R1);function Pe(t){let i=t.compiler,e=i.module;if(J(t,!0)|Se(t,1,3))return e.unreachable();let r=t.operands,n=t.typeArguments,s=t.contextualType,a=n[0],l=s!=p.auto&&a.isIntegerValue&&s.isIntegerValue&&s.size>a.size?s:a;if(!l.isMemory)return i.error(203,t.reportNode.typeArgumentsRange,"load",l.toString()),i.currentType=p.void,e.unreachable();let o=i.compileExpression(r[0],i.options.usizeType,1),u=r.length,c=0,_=a.byteSize;return u>=2&&(c=tt(r[1],i),c<0||u==3&&(_=Ot(r[2],_,i),_<0))?(i.currentType=l,e.unreachable()):(i.currentType=l,e.load(a.byteSize,a.isSignedIntegerValue,o,l.toRef(),c,_))}g.set(d.load,Pe);function ut(t){let i=t.compiler,e=i.module;if(i.currentType=p.void,J(t)|Se(t,2,4))return e.unreachable();let r=t.operands,n=r.length,s=t.typeArguments,a=t.contextualType,l=s[0],o=i.compileExpression(r[0],i.options.usizeType,1),u=t.contextIsExact?i.compileExpression(r[1],a,1):i.compileExpression(r[1],l,l.isIntegerValue?0:1),c=i.currentType;if(!c.isMemory)return i.error(203,t.reportNode.typeArgumentsRange,"store",c.toString()),i.currentType=p.void,e.unreachable();l.isIntegerValue&&(!c.isIntegerValue||c.size<l.size)&&(u=i.convertExpression(u,c,l,!1,r[1]),c=l);let _=0,f=l.byteSize;if(n>=3){if(_=tt(r[2],i),_<0)return i.currentType=p.void,e.unreachable();if(n==4&&(f=Ot(r[3],f,i),f<0))return i.currentType=p.void,e.unreachable()}return i.currentType=p.void,e.store(l.byteSize,o,u,c.toRef(),_,f)}g.set(d.store,ut);function ps(t){let i=t.compiler,e=i.module;if(ae(t,!0)|K(t,2))return e.unreachable();let r=t.operands,n=t.typeArguments,s=r[0],a=n?i.compileExpression(s,n[0],1):i.compileExpression(r[0],p.auto),l=i.currentType;if(l.isIntegerValue){let o;if(!n&&s.isNumericLiteral?(o=i.compileExpression(r[1],l),i.currentType!=l&&(a=i.compileExpression(s,l=i.currentType,1))):o=i.compileExpression(r[1],l,1),l.isIntegerValue)return i.makeRem(a,o,l,t.reportNode)}return i.error(203,t.reportNode.typeArgumentsRange,"rem",l.toString()),e.unreachable()}g.set(d.rem,ps);function cs(t){let i=t.compiler,e=i.module;if(ae(t,!0)|K(t,2))return e.unreachable();let r=t.operands,n=t.typeArguments,s=r[0],a=n?i.compileExpression(s,n[0],1):i.compileExpression(r[0],p.auto),l=i.currentType;if(l.isValue){let o;if(!n&&s.isNumericLiteral?(o=i.compileExpression(r[1],l),i.currentType!=l&&(a=i.compileExpression(s,l=i.currentType,1))):o=i.compileExpression(r[1],l,1),l.isNumericValue)return i.makeAdd(a,o,l)}return i.error(203,t.reportNode.typeArgumentsRange,"add",l.toString()),e.unreachable()}g.set(d.add,cs);function _s(t){let i=t.compiler,e=i.module;if(ae(t,!0)|K(t,2))return e.unreachable();let r=t.operands,n=t.typeArguments,s=r[0],a=n?i.compileExpression(s,n[0],1):i.compileExpression(r[0],p.auto),l=i.currentType;if(l.isValue){let o;if(!n&&s.isNumericLiteral?(o=i.compileExpression(r[1],l),i.currentType!=l&&(a=i.compileExpression(s,l=i.currentType,1))):o=i.compileExpression(r[1],l,1),l.isNumericValue)return i.makeSub(a,o,l)}return i.error(203,t.reportNode.typeArgumentsRange,"sub",l.toString()),e.unreachable()}g.set(d.sub,_s);function fs(t){let i=t.compiler,e=i.module;if(ae(t,!0)|K(t,2))return e.unreachable();let r=t.operands,n=t.typeArguments,s=r[0],a=n?i.compileExpression(s,n[0],1):i.compileExpression(r[0],p.auto),l=i.currentType;if(l.isValue){let o;if(!n&&s.isNumericLiteral?(o=i.compileExpression(r[1],l),i.currentType!=l&&(a=i.compileExpression(s,l=i.currentType,1))):o=i.compileExpression(r[1],l,1),l.isNumericValue)return i.makeMul(a,o,l)}return i.error(203,t.reportNode.typeArgumentsRange,"mul",l.toString()),e.unreachable()}g.set(d.mul,fs);function Nr(t){let i=t.compiler,e=i.module;if(ae(t,!0)|K(t,2))return e.unreachable();let r=t.operands,n=t.typeArguments,s=r[0],a=n?i.compileExpression(s,n[0],1):i.compileExpression(r[0],p.auto),l=i.currentType;if(l.isValue){let o;if(!n&&s.isNumericLiteral?(o=i.compileExpression(r[1],l),i.currentType!=l&&(a=i.compileExpression(s,l=i.currentType,1))):o=i.compileExpression(r[1],l,1),l.isNumericValue)return i.makeDiv(a,o,l)}return i.error(203,t.reportNode.typeArgumentsRange,"div",l.toString()),e.unreachable()}g.set(d.div,Nr);function hs(t){let i=t.compiler,e=i.module;if(ae(t,!0)|K(t,2))return e.unreachable();let r=t.operands,n=t.typeArguments,s=r[0],a=n?i.compileExpression(s,n[0],1):i.compileExpression(r[0],p.auto),l=i.currentType;if(l.isValue){let o;if(!n&&s.isNumericLiteral?(o=i.compileExpression(r[1],l),i.currentType!=l&&(a=i.compileExpression(s,l=i.currentType,1))):o=i.compileExpression(r[1],l,1),l.isNumericValue)return i.currentType=p.i32,i.makeEq(a,o,l,t.reportNode)}return i.error(203,t.reportNode.typeArgumentsRange,"eq",l.toString()),e.unreachable()}g.set(d.eq,hs);function ds(t){let i=t.compiler,e=i.module;if(ae(t,!0)|K(t,2))return e.unreachable();let r=t.operands,n=t.typeArguments,s=r[0],a=n?i.compileExpression(s,n[0],1):i.compileExpression(r[0],p.auto),l=i.currentType;if(l.isValue){let o;if(!n&&s.isNumericLiteral?(o=i.compileExpression(r[1],l),i.currentType!=l&&(a=i.compileExpression(s,l=i.currentType,1))):o=i.compileExpression(r[1],l,1),l.isNumericValue)return i.currentType=p.i32,i.makeNe(a,o,l,t.reportNode)}return i.error(203,t.reportNode.typeArgumentsRange,"ne",l.toString()),e.unreachable()}g.set(d.ne,ds);function ar(t){let i=t.compiler,e=i.module;if(X(t,32)|J(t,!0)|Se(t,1,2))return e.unreachable();let r=t.operands,n=t.typeArguments,s=t.contextualType,a=n[0],l=a.isIntegerValue&&s.isIntegerValue&&s.size>a.size?s:a;if(!a.isIntegerValue)return i.error(203,t.reportNode.typeArgumentsRange,"atomic.load",a.toString()),i.currentType=l,e.unreachable();let o=i.compileExpression(r[0],i.options.usizeType,1),u=r.length==2?tt(r[1],i):0;return u<0?(i.currentType=l,e.unreachable()):(i.currentType=l,e.atomic_load(a.byteSize,o,l.toRef(),u))}g.set(d.atomic_load,ar);function lr(t){let i=t.compiler,e=i.module;if(X(t,32)|J(t)|Se(t,2,3))return e.unreachable();let r=t.operands,n=t.typeArguments,s=t.contextualType,a=n[0];if(!a.isIntegerValue)return i.error(203,t.reportNode.typeArgumentsRange,"atomic.store",a.toString()),i.currentType=p.void,e.unreachable();let l=i.compileExpression(r[0],i.options.usizeType,1),o=t.contextIsExact?i.compileExpression(r[1],s,1):i.compileExpression(r[1],a,a.isIntegerValue?0:1),u=i.currentType;a.isIntegerValue&&(!u.isIntegerValue||u.size<a.size)&&(o=i.convertExpression(o,u,a,!1,r[1]),u=a);let c=r.length==3?tt(r[2],i):0;return c<0?(i.currentType=p.void,e.unreachable()):(i.currentType=p.void,e.atomic_store(a.byteSize,l,o,u.toRef(),c))}g.set(d.atomic_store,lr);function Ni(t,i,e){let r=t.compiler,n=r.module;if(X(t,32)|J(t,!0)|Se(t,2,3))return n.unreachable();let s=t.operands,a=t.typeArguments,l=t.contextualType,o=a[0];if(!o.isIntegerValue||o.size<8)return r.error(203,t.reportNode.typeArgumentsRange,e,o.toString()),n.unreachable();let u=r.compileExpression(s[0],r.options.usizeType,1),c=t.contextIsExact?r.compileExpression(s[1],l,1):r.compileExpression(s[1],o,o.isIntegerValue?0:1),_=r.currentType;o.isIntegerValue&&(!_.isIntegerValue||_.size<o.size)&&(c=r.convertExpression(c,_,o,!1,s[1]),_=o);let f=s.length==3?tt(s[2],r):0;return f<0?(r.currentType=_,n.unreachable()):(r.currentType=_,n.atomic_rmw(i,o.byteSize,f,u,c,_.toRef()))}function or(t){return Ni(t,0,"atomic.add")}g.set(d.atomic_add,or);function ur(t){return Ni(t,1,"atomic.sub")}g.set(d.atomic_sub,ur);function pr(t){return Ni(t,2,"atomic.and")}g.set(d.atomic_and,pr);function cr(t){return Ni(t,3,"atomic.or")}g.set(d.atomic_or,cr);function _r(t){return Ni(t,4,"atomic.xor")}g.set(d.atomic_xor,_r);function fr(t){return Ni(t,5,"atomic.xchg")}g.set(d.atomic_xchg,fr);function hr(t){let i=t.compiler,e=i.module;if(X(t,32)|J(t,!0)|Se(t,3,4))return e.unreachable();let r=t.operands,n=t.typeArguments,s=t.contextualType,a=n[0];if(!a.isIntegerValue||a.size<8)return i.error(203,t.reportNode.typeArgumentsRange,"atomic.cmpxchg",a.toString()),e.unreachable();let l=i.compileExpression(r[0],i.options.usizeType,1),o=t.contextIsExact?i.compileExpression(r[1],s,1):i.compileExpression(r[1],a,a.isIntegerValue?0:1),u=i.currentType,c=i.compileExpression(r[2],u,1);a.isIntegerValue&&(!u.isIntegerValue||u.size<a.size)&&(o=i.convertExpression(o,u,a,!1,r[1]),c=i.convertExpression(c,u,a,!1,r[2]),u=a);let _=r.length==4?tt(r[3],i):0;return _<0?(i.currentType=u,e.unreachable()):(i.currentType=u,e.atomic_cmpxchg(a.byteSize,_,l,o,c,u.toRef()))}g.set(d.atomic_cmpxchg,hr);function dc(t){let i=t.compiler,e=i.module;if(X(t,32)|J(t)|Se(t,2,3))return i.currentType=p.i32,e.unreachable();let r=t.operands,s=t.typeArguments[0],a=i.compileExpression(r[0],i.options.usizeType,1),l=i.compileExpression(r[1],s,1),o=r.length==3?i.compileExpression(r[2],p.i64,1):e.i64(-1,-1);switch(i.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 i.error(203,t.reportNode.typeArgumentsRange,"atomic.wait",s.toString()),e.unreachable()}g.set(d.atomic_wait,dc);function F1(t){let i=t.compiler,e=i.module;if(X(t,32)|v(t)|Se(t,1,2))return i.currentType=p.i32,e.unreachable();let r=t.operands,n=i.compileExpression(r[0],i.options.usizeType,1),s=r.length==2?i.compileExpression(r[1],p.i32,1):e.i32(-1);return i.currentType=p.i32,e.atomic_notify(n,s)}g.set(d.atomic_notify,F1);function k1(t){let i=t.compiler,e=i.module;return i.currentType=p.void,X(t,32)|v(t)|K(t,0)?e.unreachable():e.atomic_fence()}g.set(d.atomic_fence,k1);function w1(t){let i=t.compiler,e=i.module;if(ae(t,!0)|K(t,3))return e.unreachable();let r=t.operands,n=t.typeArguments,s=n?i.compileExpression(r[0],n[0],1):i.compileExpression(r[0],p.auto),a=i.currentType;if(!a.isAny(384))return i.error(203,t.reportNode.typeArgumentsRange,"select",a.toString()),e.unreachable();let l=i.compileExpression(r[1],a,1),o=i.makeIsTrueish(i.compileExpression(r[2],p.bool),i.currentType,r[2]);return i.currentType=a,e.select(s,l,o)}g.set(d.select,w1);function C1(t){return v(t),K(t,0),t.compiler.module.unreachable()}g.set(d.unreachable,C1);function P1(t){let i=t.compiler,e=i.module;return i.currentType=p.i32,v(t)|K(t,0)?e.unreachable():e.memory_size()}g.set(d.memory_size,P1);function B1(t){let i=t.compiler,e=i.module;return i.currentType=p.i32,v(t)|K(t,1)?e.unreachable():e.memory_grow(i.compileExpression(t.operands[0],p.i32,1))}g.set(d.memory_grow,B1);function L1(t){let i=t.compiler,e=i.module;if(i.currentType=p.void,v(t)|K(t,3))return e.unreachable();let r=t.operands;if(!i.options.hasFeature(8)){let o=i.resolver.resolveFunction(t.prototype,null);return i.currentType=p.void,!o||!i.compileFunction(o,!0)?e.unreachable():i.compileCallDirect(o,r,t.reportNode)}let n=i.options.usizeType,s=i.compileExpression(r[0],n,1),a=i.compileExpression(r[1],n,1),l=i.compileExpression(r[2],n,1);return i.currentType=p.void,e.memory_copy(s,a,l)}g.set(d.memory_copy,L1);function N1(t){let i=t.compiler,e=i.module;if(i.currentType=p.void,v(t)|K(t,3))return e.unreachable();let r=t.operands;if(!i.options.hasFeature(8)){let o=i.resolver.resolveFunction(t.prototype,null);return i.currentType=p.void,!o||!i.compileFunction(o,!0)?e.unreachable():i.compileCallDirect(o,r,t.reportNode)}let n=i.options.usizeType,s=i.compileExpression(r[0],n,1),a=i.compileExpression(r[1],p.u8,1),l=i.compileExpression(r[2],n,1);return i.currentType=p.void,e.memory_fill(s,a,l)}g.set(d.memory_fill,N1);function M1(t){let i=t.compiler,e=i.module;if(i.currentType=p.i32,ae(t)|Se(t,1,2))return e.unreachable();let r=t.typeArguments,n=t.operands,s=n.length,a=i.options.usizeType,l;if(r&&r.length>0){let o=r[0];if(!o.isValue)return i.error(203,t.reportNode.typeArgumentsRange,"memory.data",o.toString()),i.currentType=a,e.unreachable();let u=n[0];if(u.kind!=17||u.literalKind!=5)return i.error(227,n[0].range),i.currentType=a,e.unreachable();let c=u.elementExpressions,_=c.length,f=new Array(_),h=!0;for(let b=0;b<_;++b){let A=c[b];if(A.kind!=20){let I=i.compileExpression(A,o,1),E=e.runExpression(I,1);E?I=E:h=!1,f[b]=I}else f[b]=i.makeZero(o)}if(!h)return i.error(220,u.range),i.currentType=a,e.unreachable();let y=o.byteSize;if(s==2&&(y=Ot(n[1],y,i),y<0))return i.currentType=a,e.unreachable();let x=new Uint8Array(_*o.byteSize);assert(i.writeStaticBuffer(x,0,o,f)==x.byteLength),l=i.addAlignedMemorySegment(x,y).offset}else{let o=i.compileExpression(n[0],p.i32,1),u=e.runExpression(o,1);if(!u)return i.error(220,n[0].range),i.currentType=a,e.unreachable();let c=ne(u);if(c<1)return i.error(222,n[0].range,"1",i32.MAX_VALUE.toString()),i.currentType=a,e.unreachable();let _=16;if(s==2&&(_=Ot(n[1],_,i),_<0))return i.currentType=a,e.unreachable();l=i.addAlignedMemorySegment(new Uint8Array(c),_).offset}return i.currentType=a,a==p.usize32?(assert(!i64_high(l)),e.i32(i64_low(l))):e.i64(i64_low(l),i64_high(l))}g.set(d.memory_data,M1);function G1(t){let i=t.compiler,e=i.module;if(v(t)|K(t,1))return e.unreachable();let r=t.operands,n=i.compileExpression(r[0],p.i32,1);return i.currentType=p.i31,e.i31_new(n)}g.set(d.i31_new,G1);function z1(t){let i=t.compiler,e=i.module;if(v(t)|K(t,1))return e.unreachable();let r=t.operands,n=i.compileExpression(r[0],p.i31.asNullable(),1);return t.contextualType.is(2)?(i.currentType=p.u32,e.i31_get(n,!1)):(i.currentType=p.i32,e.i31_get(n,!0))}g.set(d.i31_get,z1);function D1(t){let i=t.compiler,e=i.module;if(J(t,!0)|K(t,1))return e.unreachable();let r=t.operands,s=t.typeArguments[0],a=i.compileExpression(r[0],p.auto),l=i.currentType;return i.currentType=s,l.isChangeableTo(s)?a:(i.error(202,t.reportNode.range,l.toString(),s.toString()),e.unreachable())}g.set(d.changetype,D1);function U1(t){let i=t.compiler,e=i.module,r=t.typeArguments;if(ae(t,!0)|Se(t,1,2))return r&&(assert(r.length),i.currentType=r[0].nonNullableType),e.unreachable();let n=t.operands,s=t.contextualType,a=r?i.compileExpression(n[0],r[0],5):i.compileExpression(n[0],p.bool,4),l=i.currentType;if(i.currentType=l.nonNullableType,i.options.noAssert)return a;let o=e.runExpression(a,0);if(o)switch(se(o)){case L.I32:{if(ne(o))return a;break}case L.I64:{if(ve(o)|we(o))return a;break}case L.F32:{if(Ae(o))return a;break}case L.F64:{if(Ee(o))return a;break}}let u=i.makeAbort(n.length==2?n[1]:null,t.reportNode);if(i.currentType=l.nonNullableType,s==p.void)switch(i.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 15:case 14:case 16:case 17:case 18:case 19:case 20:case 21:case 22:case 23:case 24:return e.if(e.ref_is_null(a),u)}else{i.currentType=l.nonNullableType;let c=i.currentFlow;switch(i.currentType.kind){case 0:case 1:case 2:case 3:case 6:case 7:case 8:{let _=c.getTempLocal(l);return c.setLocalFlag(_.index,2),e.if(e.local_tee(_.index,a,!1),e.local_get(_.index,L.I32),u)}case 4:case 9:{let _=c.getTempLocal(p.i64);return e.if(e.unary(21,e.local_tee(_.index,a,!1)),u,e.local_get(_.index,L.I64))}case 5:case 10:{let _=c.getTempLocal(i.options.usizeType);return e.if(e.unary(145,e.local_tee(_.index,a,l.isManaged)),u,e.local_get(_.index,i.options.sizeTypeRef))}case 11:{let _=c.getTempLocal(p.f32);return e.if(e.binary(57,e.local_tee(_.index,a,!1),e.f32(0)),u,e.local_get(_.index,L.F32))}case 12:{let _=c.getTempLocal(p.f64);return e.if(e.binary(70,e.local_tee(_.index,a,!1),e.f64(0)),u,e.local_get(_.index,L.F64))}case 15:case 14:case 16:case 17:case 18:case 19:case 20:case 21:case 22:case 23:case 24:{let _=c.getTempLocal(l);return e.if(e.ref_is_null(e.local_tee(_.index,a,!1)),u,e.local_get(_.index,l.toRef()))}}}return i.error(203,t.reportNode.typeArgumentsRange,"assert",i.currentType.toString()),u}g.set(d.assert,U1);function V1(t){let i=t.compiler,e=i.module;if(v(t)|K(t,1))return e.unreachable();let r=i.currentFlow,n=i.options.uncheckedBehavior===1,s=r.is(32768);n?assert(!s):r.set(32768);let a=i.compileExpression(t.operands[0],t.contextualType);return s||r.unset(32768),a}g.set(d.unchecked,V1);function O1(t){let i=t.compiler,e=i.module;if(v(t)|K(t,1))return e.unreachable();let r=i.currentFlow,n=r.is(131072);n||r.set(131072);let s=i.compileExpression(t.operands[0],t.contextualType);return n||r.unset(131072),s}g.set(d.inline_always,O1);function q1(t){let i=t.compiler,e=i.module;if(ae(t,!0)|Se(t,1,i32.MAX_VALUE))return e.unreachable();let r=t.operands,n=t.typeArguments,s;n?(assert(n.length),s=n[0]):s=t.contextualType;let a=i.compileExpression(r[0],p.u32,1),l=r.length-1,o=new Array(l),u=new Array(l);for(let c=0;c<l;++c)o[c]=i.compileExpression(r[1+c],p.auto),i.currentType.isManaged&&(o[c]=e.tostack(o[c])),u[c]=i.currentType.toRef();return i.currentType=s,e.call_indirect(null,a,o,He(u),s.toRef())}g.set(d.call_indirect,q1);function W1(t){let i=t.compiler,e=i.module;if(J(t,!0))return e.unreachable();let r=t.operands,a=t.typeArguments[0].getClass();if(!a)return i.error(2351,t.reportNode.expression.range),e.unreachable();i.currentType=a.type;let l=i.ensureConstructor(a,t.reportNode);return i.checkFieldInitialization(a,t.reportNode),i.compileInstantiate(l,r,0,t.reportNode)}g.set(d.instantiate,W1);function mc(t,i){let e=t.compiler,r=e.module;v(t);let n=t.operands,s=t.reportNode;return e.emitDiagnostic(102,i,s.range,null,n.length?n[0].range.toString():s.range.toString()),i==3?r.unreachable():r.nop()}function K1(t){return mc(t,3)}g.set(d.ERROR,K1);function j1(t){return mc(t,2)}g.set(d.WARNING,j1);function H1(t){return mc(t,1)}g.set(d.INFO,H1);function Q1(t){let i=t.compiler,e=t.prototype.parent;assert(e.kind==7);let r=e;assert(r.prototype==i.program.functionPrototype);let n=assert(r.typeArguments);assert(n.length==1);let s=n[0],a=assert(s.getSignature()),l=a.returnType;if(v(t)|Se(t,1+a.requiredParameters,1+a.parameterTypes.length))return i.currentType=l,i.module.unreachable();let o=i.compileExpression(assert(t.thisOperand),s,1),u=assert(t.operands.shift()),c=a.thisType,_=0;if(c)_=i.compileExpression(u,c,1);else if(u.kind!=19)return i.error(2332,u.range),i.module.unreachable();return i.compileCallIndirect(a,o,t.operands,t.reportNode,_,t.contextualType==p.void)}g.set(d.Function_call,Q1);function X1(t){let i=t.compiler,e=i.module;return i.currentType=t.compiler.program.stringInstance.type,i.error(100,t.reportNode.range,"String.raw"),e.unreachable()}g.set(d.String_raw,X1);function Ze(t,i){let e=t.compiler;return v(t)|K(t,1)?(e.currentType=i,e.module.unreachable()):e.compileExpression(t.operands[0],i,2)}function J1(t){return Ze(t,p.i8)}g.set(d.i8,J1);function Z1(t){return Ze(t,p.i16)}g.set(d.i16,Z1);function Y1(t){return Ze(t,p.i32)}g.set(d.i32,Y1);function $1(t){return Ze(t,p.i64)}g.set(d.i64,$1);function e6(t){return Ze(t,t.compiler.options.isizeType)}g.set(d.isize,e6);function t6(t){return Ze(t,p.u8)}g.set(d.u8,t6);function r6(t){return Ze(t,p.u16)}g.set(d.u16,r6);function i6(t){return Ze(t,p.u32)}g.set(d.u32,i6);function n6(t){return Ze(t,p.u64)}g.set(d.u64,n6);function s6(t){return Ze(t,t.compiler.options.usizeType)}g.set(d.usize,s6);function a6(t){return Ze(t,p.bool)}g.set(d.bool,a6);function l6(t){return Ze(t,p.f32)}g.set(d.f32,l6);function o6(t){return Ze(t,p.f64)}g.set(d.f64,o6);function u6(t){return ag(t)}g.set(d.v128,u6);function ag(t){let i=t.compiler,e=i.module;if(X(t,16)|v(t)|K(t,16))return i.currentType=p.v128,e.unreachable();let r=t.operands,n=new Uint8Array(16),s=new Array(16),a=0;for(let l=0;l<16;++l){let o=i.compileExpression(r[l],p.i8,1),u=e.runExpression(o,1);u?_e(ne(u),n,l):(s[l]=o,a++)}if(i.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}}g.set(d.i8x16,ag);function p6(t){let i=t.compiler,e=i.module;if(X(t,16)|v(t)|K(t,8))return i.currentType=p.v128,e.unreachable();let r=t.operands,n=new Uint8Array(16),s=new Array(8),a=0;for(let l=0;l<8;++l){let o=i.compileExpression(r[l],p.i16,1),u=e.runExpression(o,1);u?Yt(ne(u),n,l<<1):(s[l]=o,a++)}if(i.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}}g.set(d.i16x8,p6);function c6(t){let i=t.compiler,e=i.module;if(X(t,16)|v(t)|K(t,4))return i.currentType=p.v128,e.unreachable();let r=t.operands,n=new Uint8Array(16),s=new Array(4),a=0;for(let l=0;l<4;++l){let o=i.compileExpression(r[l],p.i32,1),u=e.runExpression(o,1);u?me(ne(u),n,l<<2):(s[l]=o,a++)}if(i.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}}g.set(d.i32x4,c6);function _6(t){let i=t.compiler,e=i.module;if(X(t,16)|v(t)|K(t,2))return i.currentType=p.v128,e.unreachable();let r=t.operands,n=new Uint8Array(16),s=new Array(2),a=0;for(let l=0;l<2;++l){let o=i.compileExpression(r[l],p.i64,1),u=e.runExpression(o,1);if(u){let c=l<<3;me(ve(u),n,c+0),me(we(u),n,c+4)}else s[l]=o,a++}if(i.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}}g.set(d.i64x2,_6);function f6(t){let i=t.compiler,e=i.module;if(X(t,16)|v(t)|K(t,4))return i.currentType=p.v128,e.unreachable();let r=t.operands,n=new Uint8Array(16),s=new Array(4),a=0;for(let l=0;l<4;++l){let o=i.compileExpression(r[l],p.f32,1),u=e.runExpression(o,1);u?Tr(Ae(u),n,l<<2):(s[l]=o,a++)}if(i.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}}g.set(d.f32x4,f6);function h6(t){let i=t.compiler,e=i.module;if(X(t,16)|v(t)|K(t,2))return i.currentType=p.v128,e.unreachable();let r=t.operands,n=new Uint8Array(16),s=new Array(2),a=0;for(let l=0;l<2;++l){let o=i.compileExpression(r[l],p.f64,1),u=e.runExpression(o,1);u?Ar(Ee(u),n,l<<3):(s[l]=o,a++)}if(i.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}}g.set(d.f64x2,h6);function Mr(t){let i=t.compiler,e=i.module;if(X(t,16)|J(t)|K(t,1))return i.currentType=p.v128,e.unreachable();let r=t.operands,s=t.typeArguments[0],a=i.compileExpression(r[0],s,1);if(i.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(i.options.isWasm64?63:62,a);case 11:return e.unary(64,a);case 12:return e.unary(65,a)}return i.error(203,t.reportNode.typeArgumentsRange,"v128.splat",s.toString()),e.unreachable()}g.set(d.v128_splat,Mr);function Wt(t){let i=t.compiler,e=i.module;if(X(t,16)|J(t,!0)|K(t,2))return e.unreachable();let r=t.operands,s=t.typeArguments[0],a=i.compileExpression(r[0],p.v128,1),l=i.compileExpression(r[1],p.u8,1);i.currentType=s;let o=0,u=e.runExpression(l,1);if(u?o=ne(u):i.error(220,r[1].range),s.isValue){let c=16/assert(s.byteSize)-1;switch((o<0||o>c)&&(i.error(222,r[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(i.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 i.error(203,t.reportNode.typeArgumentsRange,"v128.extract_lane",s.toString()),e.unreachable()}g.set(d.v128_extract_lane,Wt);function Gr(t){let i=t.compiler,e=i.module;if(X(t,16)|J(t)|K(t,3))return i.currentType=p.v128,e.unreachable();let r=t.operands,s=t.typeArguments[0],a=i.compileExpression(r[0],p.v128,1),l=i.compileExpression(r[1],p.u8,1),o=i.compileExpression(r[2],s,1);i.currentType=p.v128;let u=0,c=e.runExpression(l,1);if(c?u=ne(c):i.error(220,r[1].range),s.isValue){let _=16/assert(s.byteSize)-1;switch((u<0||u>_)&&(i.error(222,r[1].range,"Lane index","0",_.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(i.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 i.error(203,t.reportNode.typeArgumentsRange,"v128.replace_lane",s.toString()),e.unreachable()}g.set(d.v128_replace_lane,Gr);function zr(t){let i=t.compiler,e=i.module;if(X(t,16)|J(t))return i.currentType=p.v128,e.unreachable();let r=t.operands,s=t.typeArguments[0];if(s.isValue){let a=s.byteSize,l=16/a;if(assert(Number.isInteger(l)&&Pt(l)),K(t,2+l))return i.currentType=p.v128,e.unreachable();let o=i.compileExpression(r[0],p.v128,1),u=i.compileExpression(r[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),_=(l<<1)-1;for(let f=0;f<l;++f){let h=r[2+f],y=i.compileExpression(h,p.u8,1),x=e.runExpression(y,1),b=0;switch(x?(b=ne(x),(b<0||b>_)&&(i.error(222,h.range,"Lane index","0",_.toString()),b=0)):i.error(220,h.range),a){case 1:{_e(b,c,f);break}case 2:{let A=f<<1,I=b<<1;_e(I,c,A),_e(I+1,c,A+1);break}case 4:{let A=f<<2,I=b<<2;_e(I,c,A),_e(I+1,c,A+1),_e(I+2,c,A+2),_e(I+3,c,A+3);break}case 8:{let A=f<<3,I=b<<3;_e(I,c,A),_e(I+1,c,A+1),_e(I+2,c,A+2),_e(I+3,c,A+3),_e(I+4,c,A+4),_e(I+5,c,A+5),_e(I+6,c,A+6),_e(I+7,c,A+7);break}default:assert(!1)}}return i.currentType=p.v128,e.simd_shuffle(o,u,c)}}}return i.error(203,t.reportNode.typeArgumentsRange,"v128.shuffle",s.toString()),i.currentType=p.v128,e.unreachable()}g.set(d.v128_shuffle,zr);function lg(t){let i=t.compiler,e=i.module;if(X(t,16)|v(t)|K(t,2))return i.currentType=p.v128,e.unreachable();let r=t.operands,n=i.compileExpression(r[0],p.v128,1),s=i.compileExpression(r[1],p.v128,1);return e.binary(209,n,s)}g.set(d.v128_swizzle,lg);function ms(t){let i=t.compiler,e=i.module;if(X(t,16)|J(t,!0)|Se(t,1,3))return e.unreachable();let r=t.operands,s=t.typeArguments[0],a=i.compileExpression(r[0],i.options.usizeType,1),l=r.length,o=0,u=s.byteSize;if(l>=2){if(o=tt(r[1],i),o<0)return i.currentType=p.v128,e.unreachable();if(l==3&&(u=Ot(r[2],u,i),u<0))return i.currentType=p.v128,e.unreachable()}if(i.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(!i.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 i.error(203,t.reportNode.typeArgumentsRange,"v128.load_splat",s.toString()),e.unreachable()}g.set(d.v128_load_splat,ms);function Dr(t){let i=t.compiler,e=i.module;if(X(t,16)|J(t,!0)|Se(t,1,3))return e.unreachable();let r=t.operands,s=t.typeArguments[0],a=i.compileExpression(r[0],i.options.usizeType,1),l=r.length,o=0,u=s.byteSize;if(l>=2){if(o=tt(r[1],i),o<0)return i.currentType=p.v128,e.unreachable();if(l==3&&(u=Ot(r[2],u,i),u<0))return i.currentType=p.v128,e.unreachable()}if(i.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(i.options.isWasm64)break;case 3:return e.simd_load(8,a,o,u);case 10:if(i.options.isWasm64)break;case 8:return e.simd_load(9,a,o,u)}return i.error(203,t.reportNode.typeArgumentsRange,"v128.load_ext",s.toString()),e.unreachable()}g.set(d.v128_load_ext,Dr);function yc(t){let i=t.compiler,e=i.module;if(X(t,16)|J(t,!0)|Se(t,1,3))return e.unreachable();let r=t.operands,s=t.typeArguments[0],a=i.compileExpression(r[0],i.options.usizeType,1),l=r.length,o=0,u=s.byteSize;if(l>=2){if(o=tt(r[1],i),o<0)return i.currentType=p.v128,e.unreachable();if(l==3&&(u=Ot(r[2],u,i),u<0))return i.currentType=p.v128,e.unreachable()}if(i.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(i.options.isWasm64?11:10,a,o,u)}return i.error(203,t.reportNode.typeArgumentsRange,"v128.load_zero",s.toString()),e.unreachable()}g.set(d.v128_load_zero,yc);function ys(t){let i=t.compiler,e=i.module;if(X(t,16)|J(t,!0)|Se(t,3,5))return e.unreachable();let r=t.operands,s=t.typeArguments[0],a=i.compileExpression(r[0],i.options.usizeType,1),l=i.compileExpression(r[1],p.v128,1),o=i.compileExpression(r[2],p.u8,1),u=0,c=e.runExpression(o,1);c?u=ne(c):i.error(220,r[2].range);let _=r.length,f=0,h=s.byteSize;if(_>=4){if(f=tt(r[3],i),f<0)return i.currentType=p.v128,e.unreachable();if(_==5&&(h=Ot(r[4],h,i),h<0))return i.currentType=p.v128,e.unreachable()}if(i.currentType=p.v128,s.isValue){let y=16/assert(s.byteSize)-1;switch((u<0||u>y)&&(i.error(222,r[1].range,"Lane index","0",y.toString()),u=0),s.kind){case 1:case 6:return e.simd_loadstorelane(0,a,f,h,u,l);case 2:case 7:return e.simd_loadstorelane(1,a,f,h,u,l);case 3:case 8:case 11:return e.simd_loadstorelane(2,a,f,h,u,l);case 4:case 9:case 12:return e.simd_loadstorelane(3,a,f,h,u,l);case 5:case 10:return e.simd_loadstorelane(i.options.isWasm64?3:2,a,f,h,u,l)}}return i.error(203,t.reportNode.typeArgumentsRange,"v128.load_lane",s.toString()),e.unreachable()}g.set(d.v128_load_lane,ys);function gs(t){let i=t.compiler,e=i.module;if(X(t,16)|J(t,!0)|Se(t,3,5))return e.unreachable();let r=t.operands,s=t.typeArguments[0],a=i.compileExpression(r[0],i.options.usizeType,1),l=i.compileExpression(r[1],p.v128,1),o=i.compileExpression(r[2],p.u8,1),u=0,c=e.runExpression(o,1);c?u=ne(c):i.error(220,r[2].range);let _=r.length,f=0,h=s.byteSize;if(_>=4){if(f=tt(r[3],i),f<0)return i.currentType=p.v128,e.unreachable();if(_==5&&(h=Ot(r[4],h,i),h<0))return i.currentType=p.v128,e.unreachable()}if(i.currentType=p.void,s.isValue){let y=16/assert(s.byteSize)-1;switch((u<0||u>y)&&(i.error(222,r[1].range,"Lane index","0",y.toString()),u=0),s.kind){case 1:case 6:return e.simd_loadstorelane(4,a,f,h,u,l);case 2:case 7:return e.simd_loadstorelane(5,a,f,h,u,l);case 3:case 8:case 11:return e.simd_loadstorelane(6,a,f,h,u,l);case 4:case 9:case 12:return e.simd_loadstorelane(7,a,f,h,u,l);case 5:case 10:return e.simd_loadstorelane(i.options.isWasm64?7:6,a,f,h,u,l)}}return i.error(203,t.reportNode.typeArgumentsRange,"v128.store_lane",s.toString()),e.unreachable()}g.set(d.v128_store_lane,gs);function Ur(t){let i=t.compiler,e=i.module;if(X(t,16)|J(t)|K(t,2))return i.currentType=p.v128,e.unreachable();let r=t.operands,s=t.typeArguments[0],a=i.compileExpression(r[0],p.v128,1),l=i.compileExpression(r[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(i.options.isWasm64?174:162,a,l);case 11:return e.binary(189,a,l);case 12:return e.binary(197,a,l)}return i.error(203,t.reportNode.typeArgumentsRange,"v128.add",s.toString()),e.unreachable()}g.set(d.v128_add,Ur);function Vr(t){let i=t.compiler,e=i.module;if(X(t,16)|J(t)|K(t,2))return i.currentType=p.v128,e.unreachable();let r=t.operands,s=t.typeArguments[0],a=i.compileExpression(r[0],p.v128,1),l=i.compileExpression(r[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(i.options.isWasm64?175:163,a,l);case 11:return e.binary(190,a,l);case 12:return e.binary(198,a,l)}return i.error(203,t.reportNode.typeArgumentsRange,"v128.sub",s.toString()),e.unreachable()}g.set(d.v128_sub,Vr);function Mi(t){let i=t.compiler,e=i.module;if(X(t,16)|J(t)|K(t,2))return i.currentType=p.v128,e.unreachable();let r=t.operands,s=t.typeArguments[0],a=i.compileExpression(r[0],p.v128,1),l=i.compileExpression(r[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(i.options.isWasm64?176:164,a,l);case 11:return e.binary(191,a,l);case 12:return e.binary(199,a,l)}return i.error(203,t.reportNode.typeArgumentsRange,"v128.mul",s.toString()),e.unreachable()}g.set(d.v128_mul,Mi);function gc(t){let i=t.compiler,e=i.module;if(X(t,16)|J(t)|K(t,2))return i.currentType=p.v128,e.unreachable();let r=t.operands,s=t.typeArguments[0],a=i.compileExpression(r[0],p.v128,1),l=i.compileExpression(r[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 i.error(203,t.reportNode.typeArgumentsRange,"v128.div",s.toString()),e.unreachable()}g.set(d.v128_div,gc);function bs(t){let i=t.compiler,e=i.module;if(X(t,16)|J(t)|K(t,2))return i.currentType=p.v128,e.unreachable();let r=t.operands,s=t.typeArguments[0],a=i.compileExpression(r[0],p.v128,1),l=i.compileExpression(r[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 i.error(203,t.reportNode.typeArgumentsRange,"v128.add_sat",s.toString()),e.unreachable()}g.set(d.v128_add_sat,bs);function xs(t){let i=t.compiler,e=i.module;if(X(t,16)|J(t)|K(t,2))return i.currentType=p.v128,e.unreachable();let r=t.operands,s=t.typeArguments[0],a=i.compileExpression(r[0],p.v128,1),l=i.compileExpression(r[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 i.error(203,t.reportNode.typeArgumentsRange,"v128.sub_sat",s.toString()),e.unreachable()}g.set(d.v128_sub_sat,xs);function Kt(t){let i=t.compiler,e=i.module;if(X(t,16)|J(t)|K(t,2))return i.currentType=p.v128,e.unreachable();let r=t.operands,s=t.typeArguments[0],a=i.compileExpression(r[0],p.v128,1),l=i.compileExpression(r[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(i.options.isWasm64)break;case 3:return e.binary(165,a,l);case 10:if(i.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 i.error(203,t.reportNode.typeArgumentsRange,"v128.min",s.toString()),e.unreachable()}g.set(d.v128_min,Kt);function jt(t){let i=t.compiler,e=i.module;if(X(t,16)|J(t)|K(t,2))return i.currentType=p.v128,e.unreachable();let r=t.operands,s=t.typeArguments[0],a=i.compileExpression(r[0],p.v128,1),l=i.compileExpression(r[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(i.options.isWasm64)break;case 3:return e.binary(167,a,l);case 10:if(i.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 i.error(203,t.reportNode.typeArgumentsRange,"v128.max",s.toString()),e.unreachable()}g.set(d.v128_max,jt);function bc(t){let i=t.compiler,e=i.module;if(X(t,16)|J(t)|K(t,2))return i.currentType=p.v128,e.unreachable();let r=t.operands,s=t.typeArguments[0],a=i.compileExpression(r[0],p.v128,1),l=i.compileExpression(r[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 i.error(203,t.reportNode.typeArgumentsRange,"v128.pmin",s.toString()),e.unreachable()}g.set(d.v128_pmin,bc);function xc(t){let i=t.compiler,e=i.module;if(X(t,16)|J(t)|K(t,2))return i.currentType=p.v128,e.unreachable();let r=t.operands,s=t.typeArguments[0],a=i.compileExpression(r[0],p.v128,1),l=i.compileExpression(r[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 i.error(203,t.reportNode.typeArgumentsRange,"v128.pmax",s.toString()),e.unreachable()}g.set(d.v128_pmax,xc);function og(t){let i=t.compiler,e=i.module;if(X(t,16)|J(t)|K(t,2))return i.currentType=p.v128,e.unreachable();let r=t.operands,s=t.typeArguments[0],a=i.compileExpression(r[0],p.v128,1),l=i.compileExpression(r[1],p.v128,1);return s.isValue&&s.kind===2?e.binary(169,a,l):(i.error(203,t.reportNode.typeArgumentsRange,"v128.dot",s.toString()),e.unreachable())}g.set(d.v128_dot,og);function Tc(t){let i=t.compiler,e=i.module;if(X(t,16)|J(t)|K(t,2))return i.currentType=p.v128,e.unreachable();let r=t.operands,s=t.typeArguments[0],a=i.compileExpression(r[0],p.v128,1),l=i.compileExpression(r[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 i.error(203,t.reportNode.typeArgumentsRange,"v128.avgr",s.toString()),e.unreachable()}g.set(d.v128_avgr,Tc);function Or(t){let i=t.compiler,e=i.module;if(X(t,16)|J(t)|K(t,2))return i.currentType=p.v128,e.unreachable();let r=t.operands,s=t.typeArguments[0],a=i.compileExpression(r[0],p.v128,1),l=i.compileExpression(r[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(i.options.isWasm64?106:96,a,l);case 11:return e.binary(118,a,l);case 12:return e.binary(124,a,l)}return i.error(203,t.reportNode.typeArgumentsRange,"v128.eq",s.toString()),e.unreachable()}g.set(d.v128_eq,Or);function qr(t){let i=t.compiler,e=i.module;if(X(t,16)|J(t)|K(t,2))return i.currentType=p.v128,e.unreachable();let r=t.operands,s=t.typeArguments[0],a=i.compileExpression(r[0],p.v128,1),l=i.compileExpression(r[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(i.options.isWasm64?107:97,a,l);case 11:return e.binary(119,a,l);case 12:return e.binary(125,a,l)}return i.error(203,t.reportNode.typeArgumentsRange,"v128.ne",s.toString()),e.unreachable()}g.set(d.v128_ne,qr);function xt(t){let i=t.compiler,e=i.module;if(X(t,16)|J(t)|K(t,2))return i.currentType=p.v128,e.unreachable();let r=t.operands,s=t.typeArguments[0],a=i.compileExpression(r[0],p.v128,1),l=i.compileExpression(r[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(i.options.isWasm64?108:98,a,l);case 10:{if(i.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 i.error(203,t.reportNode.typeArgumentsRange,"v128.lt",s.toString()),e.unreachable()}g.set(d.v128_lt,xt);function Tt(t){let i=t.compiler,e=i.module;if(X(t,16)|J(t)|K(t,2))return i.currentType=p.v128,e.unreachable();let r=t.operands,s=t.typeArguments[0],a=i.compileExpression(r[0],p.v128,1),l=i.compileExpression(r[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(i.options.isWasm64?110:102,a,l);case 10:{if(i.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 i.error(203,t.reportNode.typeArgumentsRange,"v128.le",s.toString()),e.unreachable()}g.set(d.v128_le,Tt);function At(t){let i=t.compiler,e=i.module;if(X(t,16)|J(t)|K(t,2))return i.currentType=p.v128,e.unreachable();let r=t.operands,s=t.typeArguments[0],a=i.compileExpression(r[0],p.v128,1),l=i.compileExpression(r[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(i.options.isWasm64?109:100,a,l);case 10:{if(i.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 i.error(203,t.reportNode.typeArgumentsRange,"v128.gt",s.toString()),e.unreachable()}g.set(d.v128_gt,At);function Et(t){let i=t.compiler,e=i.module;if(X(t,16)|J(t)|K(t,2))return i.currentType=p.v128,e.unreachable();let r=t.operands,s=t.typeArguments[0],a=i.compileExpression(r[0],p.v128,1),l=i.compileExpression(r[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(i.options.isWasm64?111:104,a,l);case 10:{if(i.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 i.error(203,t.reportNode.typeArgumentsRange,"v128.ge",s.toString()),e.unreachable()}g.set(d.v128_ge,Et);function Ts(t){let i=t.compiler,e=i.module;if(X(t,16)|J(t)|K(t,2))return i.currentType=p.v128,e.unreachable();let r=t.operands,s=t.typeArguments[0],a=i.compileExpression(r[0],p.v128,1),l=i.compileExpression(r[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 i.error(203,t.reportNode.typeArgumentsRange,"v128.narrow",s.toString()),e.unreachable()}g.set(d.v128_narrow,Ts);function Wr(t){let i=t.compiler,e=i.module;if(X(t,16)|J(t)|K(t,1))return i.currentType=p.v128,e.unreachable();let r=t.operands,s=t.typeArguments[0],a=i.compileExpression(r[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(i.options.isWasm64?82:78,a);case 11:return e.unary(93,a);case 12:return e.unary(100,a)}return i.error(203,t.reportNode.typeArgumentsRange,"v128.neg",s.toString()),e.unreachable()}g.set(d.v128_neg,Wr);function Kr(t){let i=t.compiler,e=i.module;if(X(t,16)|J(t)|K(t,1))return i.currentType=p.v128,e.unreachable();let r=t.operands,s=t.typeArguments[0],a=i.compileExpression(r[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(i.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 i.error(203,t.reportNode.typeArgumentsRange,"v128.abs",s.toString()),e.unreachable()}g.set(d.v128_abs,Kr);function Ac(t){let i=t.compiler,e=i.module;if(X(t,16)|J(t)|K(t,1))return i.currentType=p.v128,e.unreachable();let r=t.operands,s=t.typeArguments[0],a=i.compileExpression(r[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 i.error(203,t.reportNode.typeArgumentsRange,"v128.sqrt",s.toString()),e.unreachable()}g.set(d.v128_sqrt,Ac);function Ec(t){let i=t.compiler,e=i.module;if(X(t,16)|J(t)|K(t,1))return i.currentType=p.v128,e.unreachable();let r=t.operands,s=t.typeArguments[0],a=i.compileExpression(r[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 i.error(203,t.reportNode.typeArgumentsRange,"v128.ceil",s.toString()),e.unreachable()}g.set(d.v128_ceil,Ec);function vc(t){let i=t.compiler,e=i.module;if(X(t,16)|J(t)|K(t,1))return i.currentType=p.v128,e.unreachable();let r=t.operands,s=t.typeArguments[0],a=i.compileExpression(r[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 i.error(203,t.reportNode.typeArgumentsRange,"v128.floor",s.toString()),e.unreachable()}g.set(d.v128_floor,vc);function Sc(t){let i=t.compiler,e=i.module;if(X(t,16)|J(t)|K(t,1))return i.currentType=p.v128,e.unreachable();let r=t.operands,s=t.typeArguments[0],a=i.compileExpression(r[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 i.error(203,t.reportNode.typeArgumentsRange,"v128.trunc",s.toString()),e.unreachable()}g.set(d.v128_trunc,Sc);function Ic(t){let i=t.compiler,e=i.module;if(X(t,16)|J(t)|K(t,1))return i.currentType=p.v128,e.unreachable();let r=t.operands,s=t.typeArguments[0],a=i.compileExpression(r[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 i.error(203,t.reportNode.typeArgumentsRange,"v128.nearest",s.toString()),e.unreachable()}g.set(d.v128_nearest,Ic);function Rc(t){let i=t.compiler,e=i.module;if(X(t,16)|J(t)|K(t,1))return i.currentType=p.v128,e.unreachable();let r=t.operands,s=t.typeArguments[0],a=i.compileExpression(r[0],p.v128,1);if(s.isValue)switch(s.kind){case 5:if(i.options.isWasm64)break;case 3:return e.unary(112,a);case 10:if(i.options.isWasm64)break;case 8:return e.unary(113,a)}return i.error(203,t.reportNode.typeArgumentsRange,"v128.convert",s.toString()),e.unreachable()}g.set(d.v128_convert,Rc);function Fc(t){let i=t.compiler,e=i.module;if(X(t,16)|J(t)|K(t,1))return i.currentType=p.v128,e.unreachable();let r=t.operands,s=t.typeArguments[0],a=i.compileExpression(r[0],p.v128,1);if(s.isValue)switch(s.kind){case 5:if(i.options.isWasm64)break;case 3:return e.unary(126,a);case 10:if(i.options.isWasm64)break;case 8:return e.unary(127,a)}return i.error(203,t.reportNode.typeArgumentsRange,"v128.convert_low",s.toString()),e.unreachable()}g.set(d.v128_convert_low,Fc);function kc(t){let i=t.compiler,e=i.module;if(X(t,16)|J(t)|K(t,1))return i.currentType=p.v128,e.unreachable();let r=t.operands,s=t.typeArguments[0],a=i.compileExpression(r[0],p.v128,1);if(s.isValue)switch(s.kind){case 5:if(i.options.isWasm64)break;case 3:return e.unary(110,a);case 10:if(i.options.isWasm64)break;case 8:return e.unary(111,a)}return i.error(203,t.reportNode.typeArgumentsRange,"v128.trunc_sat",s.toString()),e.unreachable()}g.set(d.v128_trunc_sat,kc);function wc(t){let i=t.compiler,e=i.module;if(X(t,16)|J(t)|K(t,1))return i.currentType=p.v128,e.unreachable();let r=t.operands,s=t.typeArguments[0],a=i.compileExpression(r[0],p.v128,1);if(s.isValue)switch(s.kind){case 5:if(i.options.isWasm64)break;case 3:return e.unary(128,a);case 10:if(i.options.isWasm64)break;case 8:return e.unary(129,a)}return i.error(203,t.reportNode.typeArgumentsRange,"v128.trunc_sat_zero",s.toString()),e.unreachable()}g.set(d.v128_trunc_sat_zero,wc);function jr(t){let i=t.compiler,e=i.module;if(X(t,16)|J(t)|K(t,1))return i.currentType=p.v128,e.unreachable();let r=t.operands,s=t.typeArguments[0],a=i.compileExpression(r[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(i.options.isWasm64)break;case 3:return e.unary(122,a);case 10:if(i.options.isWasm64)break;case 8:return e.unary(124,a)}return i.error(203,t.reportNode.typeArgumentsRange,"v128.extend_low",s.toString()),e.unreachable()}g.set(d.v128_extend_low,jr);function Hr(t){let i=t.compiler,e=i.module;if(X(t,16)|J(t)|K(t,1))return i.currentType=p.v128,e.unreachable();let r=t.operands,s=t.typeArguments[0],a=i.compileExpression(r[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(i.options.isWasm64)break;case 3:return e.unary(123,a);case 10:if(i.options.isWasm64)break;case 8:return e.unary(125,a)}return i.error(203,t.reportNode.typeArgumentsRange,"v128.extend_high",s.toString()),e.unreachable()}g.set(d.v128_extend_high,Hr);function As(t){let i=t.compiler,e=i.module;if(X(t,16)|J(t)|K(t,2))return i.currentType=p.v128,e.unreachable();let r=t.operands,n=t.typeArguments[0],s=i.compileExpression(r[0],p.v128,1),a=i.compileExpression(r[1],p.i32,1);if(i.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(i.options.isWasm64?9:6,s,a)}return i.error(203,t.reportNode.typeArgumentsRange,"v128.shl",n.toString()),e.unreachable()}g.set(d.v128_shl,As);function Ht(t){let i=t.compiler,e=i.module;if(X(t,16)|J(t)|K(t,2))return i.currentType=p.v128,e.unreachable();let r=t.operands,n=t.typeArguments[0],s=i.compileExpression(r[0],p.v128,1),a=i.compileExpression(r[1],p.i32,1);if(i.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(i.options.isWasm64?10:7,s,a);case 10:return e.simd_shift(i.options.isWasm64?11:8,s,a)}return i.error(203,t.reportNode.typeArgumentsRange,"v128.shr",n.toString()),e.unreachable()}g.set(d.v128_shr,Ht);function Yl(t,i){let e=t.compiler,r=e.module;if(X(t,16)|v(t)|K(t,2))return e.currentType=p.v128,r.unreachable();let n=t.operands,s=e.compileExpression(n[0],p.v128,1),a=e.compileExpression(n[1],p.v128,1);return r.binary(i,s,a)}function d6(t){return Yl(t,130)}g.set(d.v128_and,d6);function m6(t){return Yl(t,131)}g.set(d.v128_or,m6);function y6(t){return Yl(t,132)}g.set(d.v128_xor,y6);function g6(t){return Yl(t,133)}g.set(d.v128_andnot,g6);function b6(t,i){let e=t.compiler,r=e.module;if(X(t,16)|v(t)|K(t,1))return e.currentType=p.v128,r.unreachable();let n=t.operands,s=e.compileExpression(n[0],p.v128,1);return r.unary(i,s)}function x6(t){return b6(t,66)}g.set(d.v128_not,x6);function T6(t){let i=t.compiler,e=i.module;if(X(t,16)|v(t)|K(t,3))return i.currentType=p.v128,e.unreachable();let r=t.operands,n=i.compileExpression(r[0],p.v128,1),s=i.compileExpression(r[1],p.v128,1),a=i.compileExpression(r[2],p.v128,1);return e.simd_ternary(0,n,s,a)}g.set(d.v128_bitselect,T6);function A6(t){let i=t.compiler,e=i.module;if(X(t,16)|v(t)|K(t,1))return i.currentType=p.bool,e.unreachable();let r=t.operands,n=i.compileExpression(r[0],p.v128,1);return i.currentType=p.bool,e.unary(67,n)}g.set(d.v128_any_true,A6);function Es(t){let i=t.compiler,e=i.module;if(X(t,16)|J(t)|K(t,1))return i.currentType=p.bool,e.unreachable();let r=t.operands,n=t.typeArguments[0],s=i.compileExpression(r[0],p.v128,1);if(i.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(i.options.isWasm64?83:79,s)}return i.error(203,t.reportNode.typeArgumentsRange,"v128.all_true",n.toString()),e.unreachable()}g.set(d.v128_all_true,Es);function vs(t){let i=t.compiler,e=i.module;if(X(t,16)|J(t)|K(t,1))return i.currentType=p.i32,e.unreachable();let r=t.operands,n=t.typeArguments[0],s=i.compileExpression(r[0],p.v128,1);if(i.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(i.options.isWasm64?84:80,s)}return i.error(203,t.reportNode.typeArgumentsRange,"v128.bitmask",n.toString()),e.unreachable()}g.set(d.v128_bitmask,vs);function ug(t){let i=t.compiler,e=i.module;if(X(t,16)|J(t)|K(t,1))return i.currentType=p.v128,e.unreachable();let r=t.operands,n=t.typeArguments[0],s=i.compileExpression(r[0],p.v128,1);if(i.currentType=p.v128,n.isValue)switch(n.kind){case 1:case 6:return e.unary(72,s)}return i.error(203,t.reportNode.typeArgumentsRange,"v128.popcnt",n.toString()),e.unreachable()}g.set(d.v128_popcnt,ug);function Ss(t){let i=t.compiler,e=i.module;if(X(t,16)|J(t)|K(t,1))return i.currentType=p.v128,e.unreachable();let r=t.operands,n=t.typeArguments[0],s=i.compileExpression(r[0],p.v128,1);if(i.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 i.error(203,t.reportNode.typeArgumentsRange,"v128.extadd_pairwise",n.toString()),e.unreachable()}g.set(d.v128_extadd_pairwise,Ss);function pg(t){let i=t.compiler,e=i.module;if(X(t,16)|ae(t)|K(t,1))return i.currentType=p.v128,e.unreachable();let r=t.operands,n=t.typeArguments,s=n?n[0]:p.f64,a=i.compileExpression(r[0],p.v128,1);return i.currentType=p.v128,s.isValue&&s.kind===12?e.unary(130,a):(i.error(203,t.reportNode.typeArgumentsRange,"v128.demote_zero",s.toString()),e.unreachable())}g.set(d.v128_demote_zero,pg);function cg(t){let i=t.compiler,e=i.module;if(X(t,16)|ae(t)|K(t,1))return i.currentType=p.v128,e.unreachable();let r=t.operands,n=t.typeArguments,s=n?n[0]:p.f32,a=i.compileExpression(r[0],p.v128,1);return i.currentType=p.v128,s.isValue&&s.kind===11?e.unary(131,a):(i.error(203,t.reportNode.typeArgumentsRange,"v128.promote_low",s.toString()),e.unreachable())}g.set(d.v128_promote_low,cg);function _g(t){let i=t.compiler,e=i.module;if(X(t,16)|J(t)|K(t,2))return i.currentType=p.v128,e.unreachable();let r=t.operands,s=t.typeArguments[0],a=i.compileExpression(r[0],p.v128,1),l=i.compileExpression(r[1],p.v128,1);return s.isValue&&s.kind===2?e.binary(157,a,l):(i.error(203,t.reportNode.typeArgumentsRange,"v128.q15mulr_sat",s.toString()),e.unreachable())}g.set(d.v128_q15mulr_sat,_g);function Qr(t){let i=t.compiler,e=i.module;if(X(t,16)|J(t)|K(t,2))return i.currentType=p.v128,e.unreachable();let r=t.operands,s=t.typeArguments[0],a=i.compileExpression(r[0],p.v128,1),l=i.compileExpression(r[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 i.error(203,t.reportNode.typeArgumentsRange,"v128.extmul_low",s.toString()),e.unreachable()}g.set(d.v128_extmul_low,Qr);function Xr(t){let i=t.compiler,e=i.module;if(X(t,16)|J(t)|K(t,2))return i.currentType=p.v128,e.unreachable();let r=t.operands,s=t.typeArguments[0],a=i.compileExpression(r[0],p.v128,1),l=i.compileExpression(r[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 i.error(203,t.reportNode.typeArgumentsRange,"v128.extmul_high",s.toString()),e.unreachable()}g.set(d.v128_extmul_high,Xr);function fg(t){let i=t.compiler,e=i.module;if(X(t,4096)|v(t)|K(t,2))return i.currentType=p.v128,e.unreachable();let r=t.operands,n=i.compileExpression(r[0],p.v128,1),s=i.compileExpression(r[1],p.v128,1);return e.binary(210,n,s)}g.set(d.v128_relaxed_swizzle,fg);function Cc(t){let i=t.compiler,e=i.module;if(X(t,4096)|J(t)|K(t,1))return i.currentType=p.v128,e.unreachable();let r=t.operands,s=t.typeArguments[0],a=i.compileExpression(r[0],p.v128,1);if(s.isValue)switch(s.kind){case 5:if(i.options.isWasm64)break;case 3:return e.unary(132,a);case 10:if(i.options.isWasm64)break;case 8:return e.unary(133,a)}return i.error(203,t.reportNode.typeArgumentsRange,"v128.relaxed_trunc",s.toString()),e.unreachable()}g.set(d.v128_relaxed_trunc,Cc);function Pc(t){let i=t.compiler,e=i.module;if(X(t,4096)|J(t)|K(t,1))return i.currentType=p.v128,e.unreachable();let r=t.operands,s=t.typeArguments[0],a=i.compileExpression(r[0],p.v128,1);if(s.isValue)switch(s.kind){case 5:if(i.options.isWasm64)break;case 3:return e.unary(134,a);case 10:if(i.options.isWasm64)break;case 8:return e.unary(135,a)}return i.error(203,t.reportNode.typeArgumentsRange,"v128.relaxed_trunc_zero",s.toString()),e.unreachable()}g.set(d.v128_relaxed_trunc_zero,Pc);function Bc(t){let i=t.compiler,e=i.module;if(X(t,4096)|J(t)|K(t,3))return i.currentType=p.v128,e.unreachable();let r=t.operands,s=t.typeArguments[0],a=i.compileExpression(r[0],p.v128,1),l=i.compileExpression(r[1],p.v128,1),o=i.compileExpression(r[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 i.error(203,t.reportNode.typeArgumentsRange,"v128.relaxed_madd",s.toString()),e.unreachable()}g.set(d.v128_relaxed_madd,Bc);function Lc(t){let i=t.compiler,e=i.module;if(X(t,4096)|J(t)|K(t,3))return i.currentType=p.v128,e.unreachable();let r=t.operands,s=t.typeArguments[0],a=i.compileExpression(r[0],p.v128,1),l=i.compileExpression(r[1],p.v128,1),o=i.compileExpression(r[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 i.error(203,t.reportNode.typeArgumentsRange,"v128.relaxed_nmadd",s.toString()),e.unreachable()}g.set(d.v128_relaxed_nmadd,Lc);function Is(t){let i=t.compiler,e=i.module;if(X(t,4096)|J(t)|K(t,3))return i.currentType=p.v128,e.unreachable();let r=t.operands,s=t.typeArguments[0],a=i.compileExpression(r[0],p.v128,1),l=i.compileExpression(r[1],p.v128,1),o=i.compileExpression(r[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(i.options.isWasm64?8:7,a,l,o)}return i.error(203,t.reportNode.typeArgumentsRange,"v128.relaxed_laneselect",s.toString()),e.unreachable()}g.set(d.v128_relaxed_laneselect,Is);function Nc(t){let i=t.compiler,e=i.module;if(X(t,4096)|J(t)|K(t,2))return i.currentType=p.v128,e.unreachable();let r=t.operands,s=t.typeArguments[0],a=i.compileExpression(r[0],p.v128,1),l=i.compileExpression(r[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 i.error(203,t.reportNode.typeArgumentsRange,"v128.relaxed_min",s.toString()),e.unreachable()}g.set(d.v128_relaxed_min,Nc);function Mc(t){let i=t.compiler,e=i.module;if(X(t,4096)|J(t)|K(t,2))return i.currentType=p.v128,e.unreachable();let r=t.operands,s=t.typeArguments[0],a=i.compileExpression(r[0],p.v128,1),l=i.compileExpression(r[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 i.error(203,t.reportNode.typeArgumentsRange,"v128.relaxed_max",s.toString()),e.unreachable()}g.set(d.v128_relaxed_max,Mc);function hg(t){let i=t.compiler,e=i.module;if(X(t,4096)|J(t)|K(t,2))return i.currentType=p.v128,e.unreachable();let r=t.operands,s=t.typeArguments[0],a=i.compileExpression(r[0],p.v128,1),l=i.compileExpression(r[1],p.v128,1);return s.isValue&&s.kind===2?e.binary(215,a,l):(i.error(203,t.reportNode.typeArgumentsRange,"v128.relaxed_q15mulr",s.toString()),e.unreachable())}g.set(d.v128_relaxed_q15mulr,hg);function dg(t){let i=t.compiler,e=i.module;if(X(t,4096)|K(t,2)|J(t))return i.currentType=p.v128,e.unreachable();let r=t.operands,s=t.typeArguments[0],a=i.compileExpression(r[0],p.v128,1),l=i.compileExpression(r[1],p.v128,1);return s.kind===2?e.binary(216,a,l):(i.error(203,t.reportNode.typeArgumentsRange,"v128.relaxed_dot",s.toString()),e.unreachable())}g.set(d.v128_relaxed_dot,dg);function mg(t){let i=t.compiler,e=i.module;if(X(t,4096)|K(t,3)|J(t))return i.currentType=p.v128,e.unreachable();let r=t.operands,s=t.typeArguments[0],a=i.compileExpression(r[0],p.v128,1),l=i.compileExpression(r[1],p.v128,1),o=i.compileExpression(r[2],p.v128,1);switch(s.kind){case 5:if(i.options.isWasm64)break;case 3:return e.simd_ternary(9,a,l,o)}return i.error(203,t.reportNode.typeArgumentsRange,"v128.relaxed_dot_add",s.toString()),e.unreachable()}g.set(d.v128_relaxed_dot_add,mg);function E6(t){let i=t.compiler,e=i.module;if(v(t)|K(t,1))return i.currentType=p.void,e.unreachable();let r=t.operands,n=i.compileExpression(r[0],p.u32,1);return i.runtimeFeatures|=16,i.currentType=p.void,e.call(d.visit_globals,[n],L.None)}g.set(d.visit_globals,E6);function v6(t){let i=t.compiler,e=i.module;if(v(t)|K(t,2))return i.currentType=p.void,e.unreachable();let r=t.operands,n=i.compileExpression(r[0],i.options.usizeType,1),s=i.compileExpression(r[1],p.u32,1);return i.runtimeFeatures|=32,i.currentType=p.void,e.call(d.visit_members,[n,s],L.None)}g.set(d.visit_members,v6);function S6(t){return v(t),t.typeArguments=[p.i32],t.contextualType=p.i32,tc(t)}g.set(d.i32_clz,S6);function I6(t){return v(t),t.typeArguments=[p.i64],t.contextualType=p.i64,tc(t)}g.set(d.i64_clz,I6);function R6(t){return v(t),t.typeArguments=[p.i32],t.contextualType=p.i32,rc(t)}g.set(d.i32_ctz,R6);function F6(t){return v(t),t.typeArguments=[p.i64],t.contextualType=p.i64,rc(t)}g.set(d.i64_ctz,F6);function k6(t){return v(t),t.typeArguments=[p.i32],t.contextualType=p.i32,ic(t)}g.set(d.i32_popcnt,k6);function w6(t){return v(t),t.typeArguments=[p.i64],t.contextualType=p.i64,ic(t)}g.set(d.i64_popcnt,w6);function C6(t){return v(t),t.typeArguments=[p.i32],t.contextualType=p.i32,nc(t)}g.set(d.i32_rotl,C6);function P6(t){return v(t),t.typeArguments=[p.i64],t.contextualType=p.i64,nc(t)}g.set(d.i64_rotl,P6);function B6(t){return v(t),t.typeArguments=[p.i32],t.contextualType=p.i32,sc(t)}g.set(d.i32_rotr,B6);function L6(t){return v(t),t.typeArguments=[p.i64],t.contextualType=p.i64,sc(t)}g.set(d.i64_rotr,L6);function N6(t){return v(t),t.typeArguments=[p.f32],t.contextualType=p.f32,ac(t)}g.set(d.f32_abs,N6);function M6(t){return v(t),t.typeArguments=[p.f64],t.contextualType=p.f64,ac(t)}g.set(d.f64_abs,M6);function G6(t){return v(t),t.typeArguments=[p.f32],t.contextualType=p.f32,lc(t)}g.set(d.f32_max,G6);function z6(t){return v(t),t.typeArguments=[p.f64],t.contextualType=p.f64,lc(t)}g.set(d.f64_max,z6);function D6(t){return v(t),t.typeArguments=[p.f32],t.contextualType=p.f32,oc(t)}g.set(d.f32_min,D6);function U6(t){return v(t),t.typeArguments=[p.f64],t.contextualType=p.f64,oc(t)}g.set(d.f64_min,U6);function V6(t){return v(t),t.typeArguments=[p.f32],t.contextualType=p.f32,uc(t)}g.set(d.f32_ceil,V6);function O6(t){return v(t),t.typeArguments=[p.f64],t.contextualType=p.f64,uc(t)}g.set(d.f64_ceil,O6);function q6(t){return v(t),t.typeArguments=[p.f32],t.contextualType=p.f32,pc(t)}g.set(d.f32_floor,q6);function W6(t){return v(t),t.typeArguments=[p.f64],t.contextualType=p.f64,pc(t)}g.set(d.f64_floor,W6);function K6(t){return v(t),t.typeArguments=[p.f32],t.contextualType=p.f32,cc(t)}g.set(d.f32_copysign,K6);function j6(t){return v(t),t.typeArguments=[p.f64],t.contextualType=p.f64,cc(t)}g.set(d.f64_copysign,j6);function H6(t){return v(t),t.typeArguments=[p.f32],t.contextualType=p.f32,_c(t)}g.set(d.f32_nearest,H6);function Q6(t){return v(t),t.typeArguments=[p.f64],t.contextualType=p.f64,_c(t)}g.set(d.f64_nearest,Q6);function X6(t){return v(t),t.typeArguments=[p.i32],t.contextualType=p.f32,us(t)}g.set(d.i32_reinterpret_f32,X6);function J6(t){return v(t),t.typeArguments=[p.i64],t.contextualType=p.f64,us(t)}g.set(d.i64_reinterpret_f64,J6);function Z6(t){return v(t),t.typeArguments=[p.f32],t.contextualType=p.i32,us(t)}g.set(d.f32_reinterpret_i32,Z6);function Y6(t){return v(t),t.typeArguments=[p.f64],t.contextualType=p.i64,us(t)}g.set(d.f64_reinterpret_i64,Y6);function $6(t){return v(t),t.typeArguments=[p.f32],t.contextualType=p.f32,fc(t)}g.set(d.f32_sqrt,$6);function eT(t){return v(t),t.typeArguments=[p.f64],t.contextualType=p.f64,fc(t)}g.set(d.f64_sqrt,eT);function tT(t){return v(t),t.typeArguments=[p.f32],t.contextualType=p.f32,hc(t)}g.set(d.f32_trunc,tT);function rT(t){return v(t),t.typeArguments=[p.f64],t.contextualType=p.f64,hc(t)}g.set(d.f64_trunc,rT);function iT(t){return v(t),t.typeArguments=[p.i32],t.contextualType=p.i32,ps(t)}g.set(d.i32_rem_s,iT);function nT(t){return v(t),t.typeArguments=[p.u32],t.contextualType=p.u32,ps(t)}g.set(d.i32_rem_u,nT);function sT(t){return v(t),t.typeArguments=[p.i64],t.contextualType=p.i64,ps(t)}g.set(d.i64_rem_s,sT);function aT(t){return v(t),t.typeArguments=[p.u64],t.contextualType=p.u64,ps(t)}g.set(d.i64_rem_u,aT);function lT(t){return v(t),t.typeArguments=[p.i32],t.contextualType=p.i32,cs(t)}g.set(d.i32_add,lT);function oT(t){return v(t),t.typeArguments=[p.i64],t.contextualType=p.i64,cs(t)}g.set(d.i64_add,oT);function uT(t){return v(t),t.typeArguments=[p.f32],t.contextualType=p.f32,cs(t)}g.set(d.f32_add,uT);function pT(t){return v(t),t.typeArguments=[p.f64],t.contextualType=p.f64,cs(t)}g.set(d.f64_add,pT);function cT(t){return v(t),t.typeArguments=[p.i32],t.contextualType=p.i32,_s(t)}g.set(d.i32_sub,cT);function _T(t){return v(t),t.typeArguments=[p.i64],t.contextualType=p.i64,_s(t)}g.set(d.i64_sub,_T);function fT(t){return v(t),t.typeArguments=[p.f32],t.contextualType=p.f32,_s(t)}g.set(d.f32_sub,fT);function hT(t){return v(t),t.typeArguments=[p.f64],t.contextualType=p.f64,_s(t)}g.set(d.f64_sub,hT);function dT(t){return v(t),t.typeArguments=[p.i32],t.contextualType=p.i32,fs(t)}g.set(d.i32_mul,dT);function mT(t){return v(t),t.typeArguments=[p.i64],t.contextualType=p.i64,fs(t)}g.set(d.i64_mul,mT);function yT(t){return v(t),t.typeArguments=[p.f32],t.contextualType=p.f32,fs(t)}g.set(d.f32_mul,yT);function gT(t){return v(t),t.typeArguments=[p.f64],t.contextualType=p.f64,fs(t)}g.set(d.f64_mul,gT);function bT(t){return v(t),t.typeArguments=[p.i32],t.contextualType=p.i32,Nr(t)}g.set(d.i32_div_s,bT);function xT(t){return v(t),t.typeArguments=[p.u32],t.contextualType=p.u32,Nr(t)}g.set(d.i32_div_u,xT);function TT(t){return v(t),t.typeArguments=[p.i64],t.contextualType=p.i64,Nr(t)}g.set(d.i64_div_s,TT);function AT(t){return v(t),t.typeArguments=[p.u64],t.contextualType=p.u64,Nr(t)}g.set(d.i64_div_u,AT);function ET(t){return v(t),t.typeArguments=[p.f32],t.contextualType=p.f32,Nr(t)}g.set(d.f32_div,ET);function vT(t){return v(t),t.typeArguments=[p.f64],t.contextualType=p.f64,Nr(t)}g.set(d.f64_div,vT);function ST(t){return v(t),t.typeArguments=[p.i32],t.contextualType=p.i32,hs(t)}g.set(d.i32_eq,ST);function IT(t){return v(t),t.typeArguments=[p.i64],t.contextualType=p.i32,hs(t)}g.set(d.i64_eq,IT);function RT(t){return v(t),t.typeArguments=[p.f32],t.contextualType=p.i32,hs(t)}g.set(d.f32_eq,RT);function FT(t){return v(t),t.typeArguments=[p.f64],t.contextualType=p.i32,hs(t)}g.set(d.f64_eq,FT);function kT(t){return v(t),t.typeArguments=[p.i32],t.contextualType=p.i32,ds(t)}g.set(d.i32_ne,kT);function wT(t){return v(t),t.typeArguments=[p.i64],t.contextualType=p.i32,ds(t)}g.set(d.i64_ne,wT);function CT(t){return v(t),t.typeArguments=[p.f32],t.contextualType=p.i32,ds(t)}g.set(d.f32_ne,CT);function PT(t){return v(t),t.typeArguments=[p.f64],t.contextualType=p.i32,ds(t)}g.set(d.f64_ne,PT);function BT(t){return v(t),t.typeArguments=[p.i8],t.contextualType=p.i32,Pe(t)}g.set(d.i32_load8_s,BT);function LT(t){return v(t),t.typeArguments=[p.u8],t.contextualType=p.i32,Pe(t)}g.set(d.i32_load8_u,LT);function NT(t){return v(t),t.typeArguments=[p.i16],t.contextualType=p.i32,Pe(t)}g.set(d.i32_load16_s,NT);function MT(t){return v(t),t.typeArguments=[p.u16],t.contextualType=p.i32,Pe(t)}g.set(d.i32_load16_u,MT);function GT(t){return v(t),t.typeArguments=[p.i32],t.contextualType=p.i32,Pe(t)}g.set(d.i32_load,GT);function zT(t){return v(t),t.typeArguments=[p.i8],t.contextualType=p.i64,Pe(t)}g.set(d.i64_load8_s,zT);function DT(t){return v(t),t.typeArguments=[p.u8],t.contextualType=p.i64,Pe(t)}g.set(d.i64_load8_u,DT);function UT(t){return v(t),t.typeArguments=[p.i16],t.contextualType=p.i64,Pe(t)}g.set(d.i64_load16_s,UT);function VT(t){return v(t),t.typeArguments=[p.u16],t.contextualType=p.i64,Pe(t)}g.set(d.i64_load16_u,VT);function OT(t){return v(t),t.typeArguments=[p.i32],t.contextualType=p.i64,Pe(t)}g.set(d.i64_load32_s,OT);function qT(t){return v(t),t.typeArguments=[p.u32],t.contextualType=p.i64,Pe(t)}g.set(d.i64_load32_u,qT);function WT(t){return v(t),t.typeArguments=[p.i64],t.contextualType=p.i64,Pe(t)}g.set(d.i64_load,WT);function KT(t){return v(t),t.typeArguments=[p.f32],t.contextualType=p.f32,Pe(t)}g.set(d.f32_load,KT);function jT(t){return v(t),t.typeArguments=[p.f64],t.contextualType=p.f64,Pe(t)}g.set(d.f64_load,jT);function HT(t){return v(t),t.typeArguments=[p.i8],t.contextualType=p.i32,t.contextIsExact=!0,ut(t)}g.set(d.i32_store8,HT);function QT(t){return v(t),t.typeArguments=[p.i16],t.contextualType=p.i32,t.contextIsExact=!0,ut(t)}g.set(d.i32_store16,QT);function XT(t){return v(t),t.typeArguments=[p.i32],t.contextualType=p.i32,t.contextIsExact=!0,ut(t)}g.set(d.i32_store,XT);function JT(t){return v(t),t.typeArguments=[p.i8],t.contextualType=p.i64,t.contextIsExact=!0,ut(t)}g.set(d.i64_store8,JT);function ZT(t){return v(t),t.typeArguments=[p.i16],t.contextualType=p.i64,t.contextIsExact=!0,ut(t)}g.set(d.i64_store16,ZT);function YT(t){return v(t),t.typeArguments=[p.i32],t.contextualType=p.i64,t.contextIsExact=!0,ut(t)}g.set(d.i64_store32,YT);function $T(t){return v(t),t.typeArguments=[p.i64],t.contextualType=p.i64,t.contextIsExact=!0,ut(t)}g.set(d.i64_store,$T);function eA(t){return v(t),t.typeArguments=[p.f32],t.contextualType=p.f32,t.contextIsExact=!0,ut(t)}g.set(d.f32_store,eA);function tA(t){return v(t),t.typeArguments=[p.f64],t.contextualType=p.f64,t.contextIsExact=!0,ut(t)}g.set(d.f64_store,tA);function rA(t){return v(t),t.typeArguments=[p.u8],t.contextualType=p.i32,ar(t)}g.set(d.i32_atomic_load8_u,rA);function iA(t){return v(t),t.typeArguments=[p.u16],t.contextualType=p.i32,ar(t)}g.set(d.i32_atomic_load16_u,iA);function nA(t){return v(t),t.typeArguments=[p.i32],t.contextualType=p.i32,ar(t)}g.set(d.i32_atomic_load,nA);function sA(t){return v(t),t.typeArguments=[p.u8],t.contextualType=p.i64,ar(t)}g.set(d.i64_atomic_load8_u,sA);function aA(t){return v(t),t.typeArguments=[p.u16],t.contextualType=p.i64,ar(t)}g.set(d.i64_atomic_load16_u,aA);function lA(t){return v(t),t.typeArguments=[p.u32],t.contextualType=p.i64,ar(t)}g.set(d.i64_atomic_load32_u,lA);function oA(t){return v(t),t.typeArguments=[p.i64],t.contextualType=p.i64,ar(t)}g.set(d.i64_atomic_load,oA);function uA(t){return v(t),t.typeArguments=[p.i8],t.contextualType=p.i32,t.contextIsExact=!0,lr(t)}g.set(d.i32_atomic_store8,uA);function pA(t){return v(t),t.typeArguments=[p.i16],t.contextualType=p.i32,t.contextIsExact=!0,lr(t)}g.set(d.i32_atomic_store16,pA);function cA(t){return v(t),t.typeArguments=[p.i32],t.contextualType=p.i32,t.contextIsExact=!0,lr(t)}g.set(d.i32_atomic_store,cA);function _A(t){return v(t),t.typeArguments=[p.i8],t.contextualType=p.i64,t.contextIsExact=!0,lr(t)}g.set(d.i64_atomic_store8,_A);function fA(t){return v(t),t.typeArguments=[p.u16],t.contextualType=p.i64,t.contextIsExact=!0,lr(t)}g.set(d.i64_atomic_store16,fA);function hA(t){return v(t),t.typeArguments=[p.i32],t.contextualType=p.i64,t.contextIsExact=!0,lr(t)}g.set(d.i64_atomic_store32,hA);function dA(t){return v(t),t.typeArguments=[p.i64],t.contextualType=p.i64,t.contextIsExact=!0,lr(t)}g.set(d.i64_atomic_store,dA);function mA(t){return v(t),t.typeArguments=[p.u8],t.contextualType=p.i32,t.contextIsExact=!0,or(t)}g.set(d.i32_atomic_rmw8_add_u,mA);function yA(t){return v(t),t.typeArguments=[p.u16],t.contextualType=p.i32,t.contextIsExact=!0,or(t)}g.set(d.i32_atomic_rmw16_add_u,yA);function gA(t){return v(t),t.typeArguments=[p.i32],t.contextualType=p.i32,t.contextIsExact=!0,or(t)}g.set(d.i32_atomic_rmw_add,gA);function bA(t){return v(t),t.typeArguments=[p.u8],t.contextualType=p.i64,t.contextIsExact=!0,or(t)}g.set(d.i64_atomic_rmw8_add_u,bA);function xA(t){return v(t),t.typeArguments=[p.u16],t.contextualType=p.i64,t.contextIsExact=!0,or(t)}g.set(d.i64_atomic_rmw16_add_u,xA);function TA(t){return v(t),t.typeArguments=[p.u32],t.contextualType=p.i64,t.contextIsExact=!0,or(t)}g.set(d.i64_atomic_rmw32_add_u,TA);function AA(t){return v(t),t.typeArguments=[p.i64],t.contextualType=p.i64,t.contextIsExact=!0,or(t)}g.set(d.i64_atomic_rmw_add,AA);function EA(t){return v(t),t.typeArguments=[p.u8],t.contextualType=p.i32,t.contextIsExact=!0,ur(t)}g.set(d.i32_atomic_rmw8_sub_u,EA);function vA(t){return v(t),t.typeArguments=[p.u16],t.contextualType=p.i32,t.contextIsExact=!0,ur(t)}g.set(d.i32_atomic_rmw16_sub_u,vA);function SA(t){return v(t),t.typeArguments=[p.i32],t.contextualType=p.i32,t.contextIsExact=!0,ur(t)}g.set(d.i32_atomic_rmw_sub,SA);function IA(t){return v(t),t.typeArguments=[p.u8],t.contextualType=p.i64,t.contextIsExact=!0,ur(t)}g.set(d.i64_atomic_rmw8_sub_u,IA);function RA(t){return v(t),t.typeArguments=[p.u16],t.contextualType=p.i64,t.contextIsExact=!0,ur(t)}g.set(d.i64_atomic_rmw16_sub_u,RA);function FA(t){return v(t),t.typeArguments=[p.u32],t.contextualType=p.i64,t.contextIsExact=!0,ur(t)}g.set(d.i64_atomic_rmw32_sub_u,FA);function kA(t){return v(t),t.typeArguments=[p.i64],t.contextualType=p.i64,t.contextIsExact=!0,ur(t)}g.set(d.i64_atomic_rmw_sub,kA);function wA(t){return v(t),t.typeArguments=[p.u8],t.contextualType=p.i32,t.contextIsExact=!0,pr(t)}g.set(d.i32_atomic_rmw8_and_u,wA);function CA(t){return v(t),t.typeArguments=[p.u16],t.contextualType=p.i32,t.contextIsExact=!0,pr(t)}g.set(d.i32_atomic_rmw16_and_u,CA);function PA(t){return v(t),t.typeArguments=[p.i32],t.contextualType=p.i32,t.contextIsExact=!0,pr(t)}g.set(d.i32_atomic_rmw_and,PA);function BA(t){return v(t),t.typeArguments=[p.u8],t.contextualType=p.i64,t.contextIsExact=!0,pr(t)}g.set(d.i64_atomic_rmw8_and_u,BA);function LA(t){return v(t),t.typeArguments=[p.u16],t.contextualType=p.i64,t.contextIsExact=!0,pr(t)}g.set(d.i64_atomic_rmw16_and_u,LA);function NA(t){return v(t),t.typeArguments=[p.u32],t.contextualType=p.i64,t.contextIsExact=!0,pr(t)}g.set(d.i64_atomic_rmw32_and_u,NA);function MA(t){return v(t),t.typeArguments=[p.i64],t.contextualType=p.i64,t.contextIsExact=!0,pr(t)}g.set(d.i64_atomic_rmw_and,MA);function GA(t){return v(t),t.typeArguments=[p.u8],t.contextualType=p.i32,t.contextIsExact=!0,cr(t)}g.set(d.i32_atomic_rmw8_or_u,GA);function zA(t){return v(t),t.typeArguments=[p.u16],t.contextualType=p.i32,t.contextIsExact=!0,cr(t)}g.set(d.i32_atomic_rmw16_or_u,zA);function DA(t){return v(t),t.typeArguments=[p.i32],t.contextualType=p.i32,t.contextIsExact=!0,cr(t)}g.set(d.i32_atomic_rmw_or,DA);function UA(t){return v(t),t.typeArguments=[p.u8],t.contextualType=p.i64,t.contextIsExact=!0,cr(t)}g.set(d.i64_atomic_rmw8_or_u,UA);function VA(t){return v(t),t.typeArguments=[p.u16],t.contextualType=p.i64,t.contextIsExact=!0,cr(t)}g.set(d.i64_atomic_rmw16_or_u,VA);function OA(t){return v(t),t.typeArguments=[p.u32],t.contextualType=p.i64,t.contextIsExact=!0,cr(t)}g.set(d.i64_atomic_rmw32_or_u,OA);function qA(t){return v(t),t.typeArguments=[p.i64],t.contextualType=p.i64,t.contextIsExact=!0,cr(t)}g.set(d.i64_atomic_rmw_or,qA);function WA(t){return v(t),t.typeArguments=[p.u8],t.contextualType=p.i32,t.contextIsExact=!0,_r(t)}g.set(d.i32_atomic_rmw8_xor_u,WA);function KA(t){return v(t),t.typeArguments=[p.u16],t.contextualType=p.i32,t.contextIsExact=!0,_r(t)}g.set(d.i32_atomic_rmw16_xor_u,KA);function jA(t){return v(t),t.typeArguments=[p.i32],t.contextualType=p.i32,t.contextIsExact=!0,_r(t)}g.set(d.i32_atomic_rmw_xor,jA);function HA(t){return v(t),t.typeArguments=[p.u8],t.contextualType=p.i64,t.contextIsExact=!0,_r(t)}g.set(d.i64_atomic_rmw8_xor_u,HA);function QA(t){return v(t),t.typeArguments=[p.u16],t.contextualType=p.i64,t.contextIsExact=!0,_r(t)}g.set(d.i64_atomic_rmw16_xor_u,QA);function XA(t){return v(t),t.typeArguments=[p.u32],t.contextualType=p.i64,t.contextIsExact=!0,_r(t)}g.set(d.i64_atomic_rmw32_xor_u,XA);function JA(t){return v(t),t.typeArguments=[p.i64],t.contextualType=p.i64,t.contextIsExact=!0,_r(t)}g.set(d.i64_atomic_rmw_xor,JA);function ZA(t){return v(t),t.typeArguments=[p.u8],t.contextualType=p.i32,t.contextIsExact=!0,fr(t)}g.set(d.i32_atomic_rmw8_xchg_u,ZA);function YA(t){return v(t),t.typeArguments=[p.u16],t.contextualType=p.i32,t.contextIsExact=!0,fr(t)}g.set(d.i32_atomic_rmw16_xchg_u,YA);function $A(t){return v(t),t.typeArguments=[p.i32],t.contextualType=p.i32,t.contextIsExact=!0,fr(t)}g.set(d.i32_atomic_rmw_xchg,$A);function eE(t){return v(t),t.typeArguments=[p.u8],t.contextualType=p.i64,t.contextIsExact=!0,fr(t)}g.set(d.i64_atomic_rmw8_xchg_u,eE);function tE(t){return v(t),t.typeArguments=[p.u16],t.contextualType=p.i64,t.contextIsExact=!0,fr(t)}g.set(d.i64_atomic_rmw16_xchg_u,tE);function rE(t){return v(t),t.typeArguments=[p.u32],t.contextualType=p.i64,t.contextIsExact=!0,fr(t)}g.set(d.i64_atomic_rmw32_xchg_u,rE);function iE(t){return v(t),t.typeArguments=[p.i64],t.contextualType=p.i64,t.contextIsExact=!0,fr(t)}g.set(d.i64_atomic_rmw_xchg,iE);function nE(t){return v(t),t.typeArguments=[p.u8],t.contextualType=p.i32,t.contextIsExact=!0,hr(t)}g.set(d.i32_atomic_rmw8_cmpxchg_u,nE);function sE(t){return v(t),t.typeArguments=[p.u16],t.contextualType=p.i32,t.contextIsExact=!0,hr(t)}g.set(d.i32_atomic_rmw16_cmpxchg_u,sE);function aE(t){return v(t),t.typeArguments=[p.i32],t.contextualType=p.i32,t.contextIsExact=!0,hr(t)}g.set(d.i32_atomic_rmw_cmpxchg,aE);function lE(t){return v(t),t.typeArguments=[p.u8],t.contextualType=p.i64,t.contextIsExact=!0,hr(t)}g.set(d.i64_atomic_rmw8_cmpxchg_u,lE);function oE(t){return v(t),t.typeArguments=[p.u16],t.contextualType=p.i64,t.contextIsExact=!0,hr(t)}g.set(d.i64_atomic_rmw16_cmpxchg_u,oE);function uE(t){return v(t),t.typeArguments=[p.u32],t.contextualType=p.i64,t.contextIsExact=!0,hr(t)}g.set(d.i64_atomic_rmw32_cmpxchg_u,uE);function pE(t){return v(t),t.typeArguments=[p.i64],t.contextualType=p.i64,t.contextIsExact=!0,hr(t)}g.set(d.i64_atomic_rmw_cmpxchg,pE);function cE(t){return v(t),t.typeArguments=[p.i32],dc(t)}g.set(d.memory_atomic_wait32,cE);function _E(t){return v(t),t.typeArguments=[p.i64],t.contextualType=p.i32,dc(t)}g.set(d.memory_atomic_wait64,_E);function fE(t){return v(t),t.typeArguments=[p.v128],t.contextualType=p.v128,Pe(t)}g.set(d.v128_load,fE);function hE(t){return v(t),t.typeArguments=[p.i8],t.contextualType=p.v128,Dr(t)}g.set(d.v128_load8x8_s,hE);function dE(t){return v(t),t.typeArguments=[p.u8],t.contextualType=p.v128,Dr(t)}g.set(d.v128_load8x8_u,dE);function mE(t){return v(t),t.typeArguments=[p.i16],t.contextualType=p.v128,Dr(t)}g.set(d.v128_load16x4_s,mE);function yE(t){return v(t),t.typeArguments=[p.u16],t.contextualType=p.v128,Dr(t)}g.set(d.v128_load16x4_u,yE);function gE(t){return v(t),t.typeArguments=[p.i32],t.contextualType=p.v128,Dr(t)}g.set(d.v128_load32x2_s,gE);function bE(t){return v(t),t.typeArguments=[p.u32],t.contextualType=p.v128,Dr(t)}g.set(d.v128_load32x2_u,bE);function xE(t){return v(t),t.typeArguments=[p.u8],t.contextualType=p.v128,ms(t)}g.set(d.v128_load8_splat,xE);function TE(t){return v(t),t.typeArguments=[p.u16],t.contextualType=p.v128,ms(t)}g.set(d.v128_load16_splat,TE);function AE(t){return v(t),t.typeArguments=[p.u32],t.contextualType=p.v128,ms(t)}g.set(d.v128_load32_splat,AE);function EE(t){return v(t),t.typeArguments=[p.u64],t.contextualType=p.v128,ms(t)}g.set(d.v128_load64_splat,EE);function vE(t){return v(t),t.typeArguments=[p.u32],t.contextualType=p.v128,yc(t)}g.set(d.v128_load32_zero,vE);function SE(t){return v(t),t.typeArguments=[p.u64],t.contextualType=p.v128,yc(t)}g.set(d.v128_load64_zero,SE);function IE(t){return v(t),t.typeArguments=[p.u8],t.contextualType=p.v128,ys(t)}g.set(d.v128_load8_lane,IE);function RE(t){return v(t),t.typeArguments=[p.u16],t.contextualType=p.v128,ys(t)}g.set(d.v128_load16_lane,RE);function FE(t){return v(t),t.typeArguments=[p.u32],t.contextualType=p.v128,ys(t)}g.set(d.v128_load32_lane,FE);function kE(t){return v(t),t.typeArguments=[p.u64],t.contextualType=p.v128,ys(t)}g.set(d.v128_load64_lane,kE);function wE(t){return v(t),t.typeArguments=[p.u8],t.contextualType=p.v128,gs(t)}g.set(d.v128_store8_lane,wE);function CE(t){return v(t),t.typeArguments=[p.u16],t.contextualType=p.v128,gs(t)}g.set(d.v128_store16_lane,CE);function PE(t){return v(t),t.typeArguments=[p.u32],t.contextualType=p.v128,gs(t)}g.set(d.v128_store32_lane,PE);function BE(t){return v(t),t.typeArguments=[p.u64],t.contextualType=p.v128,gs(t)}g.set(d.v128_store64_lane,BE);function LE(t){return v(t),t.typeArguments=[p.v128],t.contextualType=p.v128,t.contextIsExact=!0,ut(t)}g.set(d.v128_store,LE);function NE(t){return v(t),t.typeArguments=[p.i8],t.contextualType=p.v128,Mr(t)}g.set(d.i8x16_splat,NE);function ME(t){return v(t),t.typeArguments=[p.i8],t.contextualType=p.i32,Wt(t)}g.set(d.i8x16_extract_lane_s,ME);function GE(t){return v(t),t.typeArguments=[p.u8],t.contextualType=p.i32,Wt(t)}g.set(d.i8x16_extract_lane_u,GE);function zE(t){return v(t),t.typeArguments=[p.i8],t.contextualType=p.v128,Gr(t)}g.set(d.i8x16_replace_lane,zE);function DE(t){return v(t),t.typeArguments=[p.i8],t.contextualType=p.v128,Ur(t)}g.set(d.i8x16_add,DE);function UE(t){return v(t),t.typeArguments=[p.i8],t.contextualType=p.v128,Vr(t)}g.set(d.i8x16_sub,UE);function VE(t){return v(t),t.typeArguments=[p.i8],t.contextualType=p.v128,Kt(t)}g.set(d.i8x16_min_s,VE);function OE(t){return v(t),t.typeArguments=[p.u8],t.contextualType=p.v128,Kt(t)}g.set(d.i8x16_min_u,OE);function qE(t){return v(t),t.typeArguments=[p.i8],t.contextualType=p.v128,jt(t)}g.set(d.i8x16_max_s,qE);function WE(t){return v(t),t.typeArguments=[p.u8],t.contextualType=p.v128,jt(t)}g.set(d.i8x16_max_u,WE);function KE(t){return v(t),t.typeArguments=[p.u8],t.contextualType=p.v128,Tc(t)}g.set(d.i8x16_avgr_u,KE);function jE(t){return v(t),t.typeArguments=[p.i8],t.contextualType=p.v128,Kr(t)}g.set(d.i8x16_abs,jE);function HE(t){return v(t),t.typeArguments=[p.i8],t.contextualType=p.v128,Wr(t)}g.set(d.i8x16_neg,HE);function QE(t){return v(t),t.typeArguments=[p.i8],t.contextualType=p.v128,bs(t)}g.set(d.i8x16_add_sat_s,QE);function XE(t){return v(t),t.typeArguments=[p.u8],t.contextualType=p.v128,bs(t)}g.set(d.i8x16_add_sat_u,XE);function JE(t){return v(t),t.typeArguments=[p.i8],t.contextualType=p.v128,xs(t)}g.set(d.i8x16_sub_sat_s,JE);function ZE(t){return v(t),t.typeArguments=[p.u8],t.contextualType=p.v128,xs(t)}g.set(d.i8x16_sub_sat_u,ZE);function YE(t){return v(t),t.typeArguments=[p.i8],t.contextualType=p.v128,As(t)}g.set(d.i8x16_shl,YE);function $E(t){return v(t),t.typeArguments=[p.i8],t.contextualType=p.v128,Ht(t)}g.set(d.i8x16_shr_s,$E);function e4(t){return v(t),t.typeArguments=[p.u8],t.contextualType=p.v128,Ht(t)}g.set(d.i8x16_shr_u,e4);function t4(t){return v(t),t.typeArguments=[p.i8],t.contextualType=p.i32,Es(t)}g.set(d.i8x16_all_true,t4);function r4(t){return v(t),t.typeArguments=[p.i8],t.contextualType=p.i32,vs(t)}g.set(d.i8x16_bitmask,r4);function i4(t){return v(t),t.typeArguments=[p.i8],t.contextualType=p.v128,ug(t)}g.set(d.i8x16_popcnt,i4);function n4(t){return v(t),t.typeArguments=[p.i8],t.contextualType=p.v128,Or(t)}g.set(d.i8x16_eq,n4);function s4(t){return v(t),t.typeArguments=[p.i8],t.contextualType=p.v128,qr(t)}g.set(d.i8x16_ne,s4);function a4(t){return v(t),t.typeArguments=[p.i8],t.contextualType=p.v128,xt(t)}g.set(d.i8x16_lt_s,a4);function l4(t){return v(t),t.typeArguments=[p.u8],t.contextualType=p.v128,xt(t)}g.set(d.i8x16_lt_u,l4);function o4(t){return v(t),t.typeArguments=[p.i8],t.contextualType=p.v128,Tt(t)}g.set(d.i8x16_le_s,o4);function u4(t){return v(t),t.typeArguments=[p.u8],t.contextualType=p.v128,Tt(t)}g.set(d.i8x16_le_u,u4);function p4(t){return v(t),t.typeArguments=[p.i8],t.contextualType=p.v128,At(t)}g.set(d.i8x16_gt_s,p4);function c4(t){return v(t),t.typeArguments=[p.u8],t.contextualType=p.v128,At(t)}g.set(d.i8x16_gt_u,c4);function _4(t){return v(t),t.typeArguments=[p.i8],t.contextualType=p.v128,Et(t)}g.set(d.i8x16_ge_s,_4);function f4(t){return v(t),t.typeArguments=[p.u8],t.contextualType=p.v128,Et(t)}g.set(d.i8x16_ge_u,f4);function h4(t){return v(t),t.typeArguments=[p.i16],t.contextualType=p.v128,Ts(t)}g.set(d.i8x16_narrow_i16x8_s,h4);function d4(t){return v(t),t.typeArguments=[p.u16],t.contextualType=p.v128,Ts(t)}g.set(d.i8x16_narrow_i16x8_u,d4);function m4(t){return v(t),t.typeArguments=[p.i8],t.contextualType=p.v128,zr(t)}g.set(d.i8x16_shuffle,m4);function y4(t){return v(t),t.typeArguments=null,t.contextualType=p.v128,lg(t)}g.set(d.i8x16_swizzle,y4);function g4(t){return v(t),t.typeArguments=[p.i16],t.contextualType=p.v128,Mr(t)}g.set(d.i16x8_splat,g4);function b4(t){return v(t),t.typeArguments=[p.i16],t.contextualType=p.i32,Wt(t)}g.set(d.i16x8_extract_lane_s,b4);function x4(t){return v(t),t.typeArguments=[p.u16],t.contextualType=p.i32,Wt(t)}g.set(d.i16x8_extract_lane_u,x4);function T4(t){return v(t),t.typeArguments=[p.i16],t.contextualType=p.v128,Gr(t)}g.set(d.i16x8_replace_lane,T4);function A4(t){return v(t),t.typeArguments=[p.i16],t.contextualType=p.v128,Ur(t)}g.set(d.i16x8_add,A4);function E4(t){return v(t),t.typeArguments=[p.i16],t.contextualType=p.v128,Vr(t)}g.set(d.i16x8_sub,E4);function v4(t){return v(t),t.typeArguments=[p.i16],t.contextualType=p.v128,Mi(t)}g.set(d.i16x8_mul,v4);function S4(t){return v(t),t.typeArguments=[p.i16],t.contextualType=p.v128,Kt(t)}g.set(d.i16x8_min_s,S4);function I4(t){return v(t),t.typeArguments=[p.u16],t.contextualType=p.v128,Kt(t)}g.set(d.i16x8_min_u,I4);function R4(t){return v(t),t.typeArguments=[p.i16],t.contextualType=p.v128,jt(t)}g.set(d.i16x8_max_s,R4);function F4(t){return v(t),t.typeArguments=[p.u16],t.contextualType=p.v128,jt(t)}g.set(d.i16x8_max_u,F4);function k4(t){return v(t),t.typeArguments=[p.u16],t.contextualType=p.v128,Tc(t)}g.set(d.i16x8_avgr_u,k4);function w4(t){return v(t),t.typeArguments=[p.i16],t.contextualType=p.v128,Kr(t)}g.set(d.i16x8_abs,w4);function C4(t){return v(t),t.typeArguments=[p.i16],t.contextualType=p.v128,Wr(t)}g.set(d.i16x8_neg,C4);function P4(t){return v(t),t.typeArguments=[p.i16],t.contextualType=p.v128,bs(t)}g.set(d.i16x8_add_sat_s,P4);function B4(t){return v(t),t.typeArguments=[p.u16],t.contextualType=p.v128,bs(t)}g.set(d.i16x8_add_sat_u,B4);function L4(t){return v(t),t.typeArguments=[p.i16],t.contextualType=p.v128,xs(t)}g.set(d.i16x8_sub_sat_s,L4);function N4(t){return v(t),t.typeArguments=[p.u16],t.contextualType=p.v128,xs(t)}g.set(d.i16x8_sub_sat_u,N4);function M4(t){return v(t),t.typeArguments=[p.i16],t.contextualType=p.v128,As(t)}g.set(d.i16x8_shl,M4);function G4(t){return v(t),t.typeArguments=[p.i16],t.contextualType=p.v128,Ht(t)}g.set(d.i16x8_shr_s,G4);function z4(t){return v(t),t.typeArguments=[p.u16],t.contextualType=p.v128,Ht(t)}g.set(d.i16x8_shr_u,z4);function D4(t){return v(t),t.typeArguments=[p.i16],t.contextualType=p.i32,Es(t)}g.set(d.i16x8_all_true,D4);function U4(t){return v(t),t.typeArguments=[p.i16],t.contextualType=p.i32,vs(t)}g.set(d.i16x8_bitmask,U4);function V4(t){return v(t),t.typeArguments=[p.i16],t.contextualType=p.v128,Or(t)}g.set(d.i16x8_eq,V4);function O4(t){return v(t),t.typeArguments=[p.i16],t.contextualType=p.v128,qr(t)}g.set(d.i16x8_ne,O4);function q4(t){return v(t),t.typeArguments=[p.i16],t.contextualType=p.v128,xt(t)}g.set(d.i16x8_lt_s,q4);function W4(t){return v(t),t.typeArguments=[p.u16],t.contextualType=p.v128,xt(t)}g.set(d.i16x8_lt_u,W4);function K4(t){return v(t),t.typeArguments=[p.i16],t.contextualType=p.v128,Tt(t)}g.set(d.i16x8_le_s,K4);function j4(t){return v(t),t.typeArguments=[p.u16],t.contextualType=p.v128,Tt(t)}g.set(d.i16x8_le_u,j4);function H4(t){return v(t),t.typeArguments=[p.i16],t.contextualType=p.v128,At(t)}g.set(d.i16x8_gt_s,H4);function Q4(t){return v(t),t.typeArguments=[p.u16],t.contextualType=p.v128,At(t)}g.set(d.i16x8_gt_u,Q4);function X4(t){return v(t),t.typeArguments=[p.i16],t.contextualType=p.v128,Et(t)}g.set(d.i16x8_ge_s,X4);function J4(t){return v(t),t.typeArguments=[p.u16],t.contextualType=p.v128,Et(t)}g.set(d.i16x8_ge_u,J4);function Z4(t){return v(t),t.typeArguments=[p.i32],t.contextualType=p.v128,Ts(t)}g.set(d.i16x8_narrow_i32x4_s,Z4);function Y4(t){return v(t),t.typeArguments=[p.u32],t.contextualType=p.v128,Ts(t)}g.set(d.i16x8_narrow_i32x4_u,Y4);function $4(t){return v(t),t.typeArguments=[p.i8],t.contextualType=p.v128,jr(t)}g.set(d.i16x8_extend_low_i8x16_s,$4);function ev(t){return v(t),t.typeArguments=[p.u8],t.contextualType=p.v128,jr(t)}g.set(d.i16x8_extend_low_i8x16_u,ev);function tv(t){return v(t),t.typeArguments=[p.i8],t.contextualType=p.v128,Hr(t)}g.set(d.i16x8_extend_high_i8x16_s,tv);function rv(t){return v(t),t.typeArguments=[p.u8],t.contextualType=p.v128,Hr(t)}g.set(d.i16x8_extend_high_i8x16_u,rv);function iv(t){return v(t),t.typeArguments=[p.i8],t.contextualType=p.v128,Ss(t)}g.set(d.i16x8_extadd_pairwise_i8x16_s,iv);function nv(t){return v(t),t.typeArguments=[p.u8],t.contextualType=p.v128,Ss(t)}g.set(d.i16x8_extadd_pairwise_i8x16_u,nv);function sv(t){return v(t),t.typeArguments=[p.i16],t.contextualType=p.v128,_g(t)}g.set(d.i16x8_q15mulr_sat_s,sv);function av(t){return v(t),t.typeArguments=[p.i8],t.contextualType=p.v128,Qr(t)}g.set(d.i16x8_extmul_low_i8x16_s,av);function lv(t){return v(t),t.typeArguments=[p.u8],t.contextualType=p.v128,Qr(t)}g.set(d.i16x8_extmul_low_i8x16_u,lv);function ov(t){return v(t),t.typeArguments=[p.i8],t.contextualType=p.v128,Xr(t)}g.set(d.i16x8_extmul_high_i8x16_s,ov);function uv(t){return v(t),t.typeArguments=[p.u8],t.contextualType=p.v128,Xr(t)}g.set(d.i16x8_extmul_high_i8x16_u,uv);function pv(t){return v(t),t.typeArguments=[p.i16],t.contextualType=p.v128,zr(t)}g.set(d.i16x8_shuffle,pv);function cv(t){return v(t),t.typeArguments=[p.i32],t.contextualType=p.v128,Mr(t)}g.set(d.i32x4_splat,cv);function _v(t){return v(t),t.typeArguments=[p.i32],t.contextualType=p.i32,Wt(t)}g.set(d.i32x4_extract_lane,_v);function fv(t){return v(t),t.typeArguments=[p.i32],t.contextualType=p.v128,Gr(t)}g.set(d.i32x4_replace_lane,fv);function hv(t){return v(t),t.typeArguments=[p.i32],t.contextualType=p.v128,Ur(t)}g.set(d.i32x4_add,hv);function dv(t){return v(t),t.typeArguments=[p.i32],t.contextualType=p.v128,Vr(t)}g.set(d.i32x4_sub,dv);function mv(t){return v(t),t.typeArguments=[p.i32],t.contextualType=p.v128,Mi(t)}g.set(d.i32x4_mul,mv);function yv(t){return v(t),t.typeArguments=[p.i32],t.contextualType=p.v128,Kt(t)}g.set(d.i32x4_min_s,yv);function gv(t){return v(t),t.typeArguments=[p.u32],t.contextualType=p.v128,Kt(t)}g.set(d.i32x4_min_u,gv);function bv(t){return v(t),t.typeArguments=[p.i32],t.contextualType=p.v128,jt(t)}g.set(d.i32x4_max_s,bv);function xv(t){return v(t),t.typeArguments=[p.u32],t.contextualType=p.v128,jt(t)}g.set(d.i32x4_max_u,xv);function Tv(t){return v(t),t.typeArguments=[p.i16],t.contextualType=p.v128,og(t)}g.set(d.i32x4_dot_i16x8_s,Tv);function Av(t){return v(t),t.typeArguments=[p.i32],t.contextualType=p.v128,Kr(t)}g.set(d.i32x4_abs,Av);function Ev(t){return v(t),t.typeArguments=[p.i32],t.contextualType=p.v128,Wr(t)}g.set(d.i32x4_neg,Ev);function vv(t){return v(t),t.typeArguments=[p.i32],t.contextualType=p.v128,As(t)}g.set(d.i32x4_shl,vv);function Sv(t){return v(t),t.typeArguments=[p.i32],t.contextualType=p.v128,Ht(t)}g.set(d.i32x4_shr_s,Sv);function Iv(t){return v(t),t.typeArguments=[p.u32],t.contextualType=p.v128,Ht(t)}g.set(d.i32x4_shr_u,Iv);function Rv(t){return v(t),t.typeArguments=[p.i32],t.contextualType=p.i32,Es(t)}g.set(d.i32x4_all_true,Rv);function Fv(t){return v(t),t.typeArguments=[p.i32],t.contextualType=p.i32,vs(t)}g.set(d.i32x4_bitmask,Fv);function kv(t){return v(t),t.typeArguments=[p.i32],t.contextualType=p.v128,Or(t)}g.set(d.i32x4_eq,kv);function wv(t){return v(t),t.typeArguments=[p.i32],t.contextualType=p.v128,qr(t)}g.set(d.i32x4_ne,wv);function Cv(t){return v(t),t.typeArguments=[p.i32],t.contextualType=p.v128,xt(t)}g.set(d.i32x4_lt_s,Cv);function Pv(t){return v(t),t.typeArguments=[p.u32],t.contextualType=p.v128,xt(t)}g.set(d.i32x4_lt_u,Pv);function Bv(t){return v(t),t.typeArguments=[p.i32],t.contextualType=p.v128,Tt(t)}g.set(d.i32x4_le_s,Bv);function Lv(t){return v(t),t.typeArguments=[p.u32],t.contextualType=p.v128,Tt(t)}g.set(d.i32x4_le_u,Lv);function Nv(t){return v(t),t.typeArguments=[p.i32],t.contextualType=p.v128,At(t)}g.set(d.i32x4_gt_s,Nv);function Mv(t){return v(t),t.typeArguments=[p.u32],t.contextualType=p.v128,At(t)}g.set(d.i32x4_gt_u,Mv);function Gv(t){return v(t),t.typeArguments=[p.i32],t.contextualType=p.v128,Et(t)}g.set(d.i32x4_ge_s,Gv);function zv(t){return v(t),t.typeArguments=[p.u32],t.contextualType=p.v128,Et(t)}g.set(d.i32x4_ge_u,zv);function Dv(t){return v(t),t.typeArguments=[p.i32],t.contextualType=p.v128,kc(t)}g.set(d.i32x4_trunc_sat_f32x4_s,Dv);function Uv(t){return v(t),t.typeArguments=[p.u32],t.contextualType=p.v128,kc(t)}g.set(d.i32x4_trunc_sat_f32x4_u,Uv);function Vv(t){return v(t),t.typeArguments=[p.i32],t.contextualType=p.v128,wc(t)}g.set(d.i32x4_trunc_sat_f64x2_s_zero,Vv);function Ov(t){return v(t),t.typeArguments=[p.u32],t.contextualType=p.v128,wc(t)}g.set(d.i32x4_trunc_sat_f64x2_u_zero,Ov);function qv(t){return v(t),t.typeArguments=[p.i16],t.contextualType=p.v128,jr(t)}g.set(d.i32x4_extend_low_i16x8_s,qv);function Wv(t){return v(t),t.typeArguments=[p.u16],t.contextualType=p.v128,jr(t)}g.set(d.i32x4_extend_low_i16x8_u,Wv);function Kv(t){return v(t),t.typeArguments=[p.i16],t.contextualType=p.v128,Hr(t)}g.set(d.i32x4_extend_high_i16x8_s,Kv);function jv(t){return v(t),t.typeArguments=[p.u16],t.contextualType=p.v128,Hr(t)}g.set(d.i32x4_extend_high_i16x8_u,jv);function Hv(t){return v(t),t.typeArguments=[p.i16],t.contextualType=p.v128,Ss(t)}g.set(d.i32x4_extadd_pairwise_i16x8_s,Hv);function Qv(t){return v(t),t.typeArguments=[p.u16],t.contextualType=p.v128,Ss(t)}g.set(d.i32x4_extadd_pairwise_i16x8_u,Qv);function Xv(t){return v(t),t.typeArguments=[p.i16],t.contextualType=p.v128,Qr(t)}g.set(d.i32x4_extmul_low_i16x8_s,Xv);function Jv(t){return v(t),t.typeArguments=[p.u16],t.contextualType=p.v128,Qr(t)}g.set(d.i32x4_extmul_low_i16x8_u,Jv);function Zv(t){return v(t),t.typeArguments=[p.i16],t.contextualType=p.v128,Xr(t)}g.set(d.i32x4_extmul_high_i16x8_s,Zv);function Yv(t){return v(t),t.typeArguments=[p.u16],t.contextualType=p.v128,Xr(t)}g.set(d.i32x4_extmul_high_i16x8_u,Yv);function $v(t){return v(t),t.typeArguments=[p.i32],t.contextualType=p.v128,zr(t)}g.set(d.i32x4_shuffle,$v);function e3(t){return v(t),t.typeArguments=[p.i64],t.contextualType=p.v128,Mr(t)}g.set(d.i64x2_splat,e3);function t3(t){return v(t),t.typeArguments=[p.i64],t.contextualType=p.i64,Wt(t)}g.set(d.i64x2_extract_lane,t3);function r3(t){return v(t),t.typeArguments=[p.i64],t.contextualType=p.v128,Gr(t)}g.set(d.i64x2_replace_lane,r3);function i3(t){return v(t),t.typeArguments=[p.i64],t.contextualType=p.v128,Ur(t)}g.set(d.i64x2_add,i3);function n3(t){return v(t),t.typeArguments=[p.i64],t.contextualType=p.v128,Vr(t)}g.set(d.i64x2_sub,n3);function s3(t){return v(t),t.typeArguments=[p.i64],t.contextualType=p.v128,Mi(t)}g.set(d.i64x2_mul,s3);function a3(t){return v(t),t.typeArguments=[p.i64],t.contextualType=p.v128,Kr(t)}g.set(d.i64x2_abs,a3);function l3(t){return v(t),t.typeArguments=[p.i64],t.contextualType=p.v128,Wr(t)}g.set(d.i64x2_neg,l3);function o3(t){return v(t),t.typeArguments=[p.i64],t.contextualType=p.v128,As(t)}g.set(d.i64x2_shl,o3);function u3(t){return v(t),t.typeArguments=[p.i64],t.contextualType=p.v128,Ht(t)}g.set(d.i64x2_shr_s,u3);function p3(t){return v(t),t.typeArguments=[p.u64],t.contextualType=p.v128,Ht(t)}g.set(d.i64x2_shr_u,p3);function c3(t){return v(t),t.typeArguments=[p.i64],t.contextualType=p.i32,Es(t)}g.set(d.i64x2_all_true,c3);function _3(t){return v(t),t.typeArguments=[p.i64],t.contextualType=p.i32,vs(t)}g.set(d.i64x2_bitmask,_3);function f3(t){return v(t),t.typeArguments=[p.i64],t.contextualType=p.v128,Or(t)}g.set(d.i64x2_eq,f3);function h3(t){return v(t),t.typeArguments=[p.i64],t.contextualType=p.v128,qr(t)}g.set(d.i64x2_ne,h3);function d3(t){return v(t),t.typeArguments=[p.i64],t.contextualType=p.v128,xt(t)}g.set(d.i64x2_lt_s,d3);function m3(t){return v(t),t.typeArguments=[p.i64],t.contextualType=p.v128,Tt(t)}g.set(d.i64x2_le_s,m3);function y3(t){return v(t),t.typeArguments=[p.i64],t.contextualType=p.v128,At(t)}g.set(d.i64x2_gt_s,y3);function g3(t){return v(t),t.typeArguments=[p.i64],t.contextualType=p.v128,Et(t)}g.set(d.i64x2_ge_s,g3);function b3(t){return v(t),t.typeArguments=[p.i32],t.contextualType=p.v128,jr(t)}g.set(d.i64x2_extend_low_i32x4_s,b3);function x3(t){return v(t),t.typeArguments=[p.u32],t.contextualType=p.v128,jr(t)}g.set(d.i64x2_extend_low_i32x4_u,x3);function T3(t){return v(t),t.typeArguments=[p.i32],t.contextualType=p.v128,Hr(t)}g.set(d.i64x2_extend_high_i32x4_s,T3);function A3(t){return v(t),t.typeArguments=[p.u32],t.contextualType=p.v128,Hr(t)}g.set(d.i64x2_extend_high_i32x4_u,A3);function E3(t){return v(t),t.typeArguments=[p.i32],t.contextualType=p.v128,Qr(t)}g.set(d.i64x2_extmul_low_i32x4_s,E3);function v3(t){return v(t),t.typeArguments=[p.u32],t.contextualType=p.v128,Qr(t)}g.set(d.i64x2_extmul_low_i32x4_u,v3);function S3(t){return v(t),t.typeArguments=[p.i32],t.contextualType=p.v128,Xr(t)}g.set(d.i64x2_extmul_high_i32x4_s,S3);function I3(t){return v(t),t.typeArguments=[p.u32],t.contextualType=p.v128,Xr(t)}g.set(d.i64x2_extmul_high_i32x4_u,I3);function R3(t){return v(t),t.typeArguments=[p.i64],t.contextualType=p.v128,zr(t)}g.set(d.i64x2_shuffle,R3);function F3(t){return v(t),t.typeArguments=[p.f32],t.contextualType=p.v128,Mr(t)}g.set(d.f32x4_splat,F3);function k3(t){return v(t),t.typeArguments=[p.f32],t.contextualType=p.f32,Wt(t)}g.set(d.f32x4_extract_lane,k3);function w3(t){return v(t),t.typeArguments=[p.f32],t.contextualType=p.v128,Gr(t)}g.set(d.f32x4_replace_lane,w3);function C3(t){return v(t),t.typeArguments=[p.f32],t.contextualType=p.v128,Ur(t)}g.set(d.f32x4_add,C3);function P3(t){return v(t),t.typeArguments=[p.f32],t.contextualType=p.v128,Vr(t)}g.set(d.f32x4_sub,P3);function B3(t){return v(t),t.typeArguments=[p.f32],t.contextualType=p.v128,Mi(t)}g.set(d.f32x4_mul,B3);function L3(t){return v(t),t.typeArguments=[p.f32],t.contextualType=p.v128,gc(t)}g.set(d.f32x4_div,L3);function N3(t){return v(t),t.typeArguments=[p.f32],t.contextualType=p.v128,Wr(t)}g.set(d.f32x4_neg,N3);function M3(t){return v(t),t.typeArguments=[p.f32],t.contextualType=p.v128,Kt(t)}g.set(d.f32x4_min,M3);function G3(t){return v(t),t.typeArguments=[p.f32],t.contextualType=p.v128,jt(t)}g.set(d.f32x4_max,G3);function z3(t){return v(t),t.typeArguments=[p.f32],t.contextualType=p.v128,bc(t)}g.set(d.f32x4_pmin,z3);function D3(t){return v(t),t.typeArguments=[p.f32],t.contextualType=p.v128,xc(t)}g.set(d.f32x4_pmax,D3);function U3(t){return v(t),t.typeArguments=[p.f32],t.contextualType=p.v128,Kr(t)}g.set(d.f32x4_abs,U3);function V3(t){return v(t),t.typeArguments=[p.f32],t.contextualType=p.v128,Ac(t)}g.set(d.f32x4_sqrt,V3);function O3(t){return v(t),t.typeArguments=[p.f32],t.contextualType=p.v128,Ec(t)}g.set(d.f32x4_ceil,O3);function q3(t){return v(t),t.typeArguments=[p.f32],t.contextualType=p.v128,vc(t)}g.set(d.f32x4_floor,q3);function W3(t){return v(t),t.typeArguments=[p.f32],t.contextualType=p.v128,Sc(t)}g.set(d.f32x4_trunc,W3);function K3(t){return v(t),t.typeArguments=[p.f32],t.contextualType=p.v128,Ic(t)}g.set(d.f32x4_nearest,K3);function j3(t){return v(t),t.typeArguments=[p.f32],t.contextualType=p.v128,Or(t)}g.set(d.f32x4_eq,j3);function H3(t){return v(t),t.typeArguments=[p.f32],t.contextualType=p.v128,qr(t)}g.set(d.f32x4_ne,H3);function Q3(t){return v(t),t.typeArguments=[p.f32],t.contextualType=p.v128,xt(t)}g.set(d.f32x4_lt,Q3);function X3(t){return v(t),t.typeArguments=[p.f32],t.contextualType=p.v128,Tt(t)}g.set(d.f32x4_le,X3);function J3(t){return v(t),t.typeArguments=[p.f32],t.contextualType=p.v128,At(t)}g.set(d.f32x4_gt,J3);function Z3(t){return v(t),t.typeArguments=[p.f32],t.contextualType=p.v128,Et(t)}g.set(d.f32x4_ge,Z3);function Y3(t){return v(t),t.typeArguments=[p.i32],t.contextualType=p.v128,Rc(t)}g.set(d.f32x4_convert_i32x4_s,Y3);function $3(t){return v(t),t.typeArguments=[p.u32],t.contextualType=p.v128,Rc(t)}g.set(d.f32x4_convert_i32x4_u,$3);function eS(t){return v(t),t.typeArguments=[p.f64],t.contextualType=p.v128,pg(t)}g.set(d.f32x4_demote_f64x2_zero,eS);function tS(t){return v(t),t.typeArguments=[p.f32],t.contextualType=p.v128,zr(t)}g.set(d.f32x4_shuffle,tS);function rS(t){return v(t),t.typeArguments=[p.f64],t.contextualType=p.v128,Mr(t)}g.set(d.f64x2_splat,rS);function iS(t){return v(t),t.typeArguments=[p.f64],t.contextualType=p.f64,Wt(t)}g.set(d.f64x2_extract_lane,iS);function nS(t){return v(t),t.typeArguments=[p.f64],t.contextualType=p.v128,Gr(t)}g.set(d.f64x2_replace_lane,nS);function sS(t){return v(t),t.typeArguments=[p.f64],t.contextualType=p.v128,Ur(t)}g.set(d.f64x2_add,sS);function aS(t){return v(t),t.typeArguments=[p.f64],t.contextualType=p.v128,Vr(t)}g.set(d.f64x2_sub,aS);function lS(t){return v(t),t.typeArguments=[p.f64],t.contextualType=p.v128,Mi(t)}g.set(d.f64x2_mul,lS);function oS(t){return v(t),t.typeArguments=[p.f64],t.contextualType=p.v128,gc(t)}g.set(d.f64x2_div,oS);function uS(t){return v(t),t.typeArguments=[p.f64],t.contextualType=p.v128,Wr(t)}g.set(d.f64x2_neg,uS);function pS(t){return v(t),t.typeArguments=[p.f64],t.contextualType=p.v128,Kt(t)}g.set(d.f64x2_min,pS);function cS(t){return v(t),t.typeArguments=[p.f64],t.contextualType=p.v128,jt(t)}g.set(d.f64x2_max,cS);function _S(t){return v(t),t.typeArguments=[p.f64],t.contextualType=p.v128,bc(t)}g.set(d.f64x2_pmin,_S);function fS(t){return v(t),t.typeArguments=[p.f64],t.contextualType=p.v128,xc(t)}g.set(d.f64x2_pmax,fS);function hS(t){return v(t),t.typeArguments=[p.f64],t.contextualType=p.v128,Kr(t)}g.set(d.f64x2_abs,hS);function dS(t){return v(t),t.typeArguments=[p.f64],t.contextualType=p.v128,Ac(t)}g.set(d.f64x2_sqrt,dS);function mS(t){return v(t),t.typeArguments=[p.f64],t.contextualType=p.v128,Ec(t)}g.set(d.f64x2_ceil,mS);function yS(t){return v(t),t.typeArguments=[p.f64],t.contextualType=p.v128,vc(t)}g.set(d.f64x2_floor,yS);function gS(t){return v(t),t.typeArguments=[p.f64],t.contextualType=p.v128,Sc(t)}g.set(d.f64x2_trunc,gS);function bS(t){return v(t),t.typeArguments=[p.f64],t.contextualType=p.v128,Ic(t)}g.set(d.f64x2_nearest,bS);function xS(t){return v(t),t.typeArguments=[p.f64],t.contextualType=p.v128,Or(t)}g.set(d.f64x2_eq,xS);function TS(t){return v(t),t.typeArguments=[p.f64],t.contextualType=p.v128,qr(t)}g.set(d.f64x2_ne,TS);function AS(t){return v(t),t.typeArguments=[p.f64],t.contextualType=p.v128,xt(t)}g.set(d.f64x2_lt,AS);function ES(t){return v(t),t.typeArguments=[p.f64],t.contextualType=p.v128,Tt(t)}g.set(d.f64x2_le,ES);function vS(t){return v(t),t.typeArguments=[p.f64],t.contextualType=p.v128,At(t)}g.set(d.f64x2_gt,vS);function SS(t){return v(t),t.typeArguments=[p.f64],t.contextualType=p.v128,Et(t)}g.set(d.f64x2_ge,SS);function IS(t){return v(t),t.typeArguments=[p.i32],t.contextualType=p.v128,Fc(t)}g.set(d.f64x2_convert_low_i32x4_s,IS);function RS(t){return v(t),t.typeArguments=[p.u32],t.contextualType=p.v128,Fc(t)}g.set(d.f64x2_convert_low_i32x4_u,RS);function FS(t){return v(t),t.typeArguments=[p.f32],t.contextualType=p.v128,cg(t)}g.set(d.f64x2_promote_low_f32x4,FS);function kS(t){return v(t),t.typeArguments=[p.f64],t.contextualType=p.v128,zr(t)}g.set(d.f64x2_shuffle,kS);function wS(t){return v(t),t.typeArguments=null,t.contextualType=p.v128,fg(t)}g.set(d.i8x16_relaxed_swizzle,wS);function CS(t){return v(t),t.typeArguments=[p.i32],t.contextualType=p.v128,Cc(t)}g.set(d.i32x4_relaxed_trunc_f32x4_s,CS);function PS(t){return v(t),t.typeArguments=[p.u32],t.contextualType=p.v128,Cc(t)}g.set(d.i32x4_relaxed_trunc_f32x4_u,PS);function BS(t){return v(t),t.typeArguments=[p.i32],t.contextualType=p.v128,Pc(t)}g.set(d.i32x4_relaxed_trunc_f64x2_s_zero,BS);function LS(t){return v(t),t.typeArguments=[p.u32],t.contextualType=p.v128,Pc(t)}g.set(d.i32x4_relaxed_trunc_f64x2_u_zero,LS);function NS(t){return v(t),t.typeArguments=[p.f32],t.contextualType=p.v128,Bc(t)}g.set(d.f32x4_relaxed_madd,NS);function MS(t){return v(t),t.typeArguments=[p.f32],t.contextualType=p.v128,Lc(t)}g.set(d.f32x4_relaxed_nmadd,MS);function GS(t){return v(t),t.typeArguments=[p.f64],t.contextualType=p.v128,Bc(t)}g.set(d.f64x2_relaxed_madd,GS);function zS(t){return v(t),t.typeArguments=[p.f64],t.contextualType=p.v128,Lc(t)}g.set(d.f64x2_relaxed_nmadd,zS);function DS(t){return v(t),t.typeArguments=[p.i8],t.contextualType=p.v128,Is(t)}g.set(d.i8x16_relaxed_laneselect,DS);function US(t){return v(t),t.typeArguments=[p.i16],t.contextualType=p.v128,Is(t)}g.set(d.i16x8_relaxed_laneselect,US);function VS(t){return v(t),t.typeArguments=[p.i32],t.contextualType=p.v128,Is(t)}g.set(d.i32x4_relaxed_laneselect,VS);function OS(t){return v(t),t.typeArguments=[p.i64],t.contextualType=p.v128,Is(t)}g.set(d.i64x2_relaxed_laneselect,OS);function qS(t){return v(t),t.typeArguments=[p.f32],t.contextualType=p.v128,Nc(t)}g.set(d.f32x4_relaxed_min,qS);function WS(t){return v(t),t.typeArguments=[p.f32],t.contextualType=p.v128,Mc(t)}g.set(d.f32x4_relaxed_max,WS);function KS(t){return v(t),t.typeArguments=[p.f64],t.contextualType=p.v128,Nc(t)}g.set(d.f64x2_relaxed_min,KS);function jS(t){return v(t),t.typeArguments=[p.f64],t.contextualType=p.v128,Mc(t)}g.set(d.f64x2_relaxed_max,jS);function HS(t){return v(t),t.typeArguments=[p.i16],t.contextualType=p.v128,hg(t)}g.set(d.i16x8_relaxed_q15mulr_s,HS);function QS(t){return v(t),t.typeArguments=[p.i16],t.contextualType=p.v128,dg(t)}g.set(d.i16x8_relaxed_dot_i8x16_i7x16_s,QS);function XS(t){return v(t),t.typeArguments=[p.i32],t.contextualType=p.v128,mg(t)}g.set(d.i32x4_relaxed_dot_i8x16_i7x16_add_s,XS);function yg(t){let i=t.module,e=new Array,r=t.options.sizeTypeRef,n=assert(t.program.visitInstance);t.compileFunction(n,!0);for(let s=Map_values(t.program.elementsByName),a=0,l=s.length;a<l;++a){let o=unchecked(s[a]);if(o.kind!=0)continue;let u=o,_=u.type.getClass();if(_&&!_.hasDecorator(16)&&u.is(8388608))if(u.is(33554432)){let f=u.constantIntegerValue;(i64_low(f)||i64_high(f))&&e.push(i.call(n.internalName,[t.options.isWasm64?i.i64(i64_low(f),i64_high(f)):i.i32(i64_low(f)),i.local_get(0,L.I32)],L.None))}else e.push(i.if(i.local_tee(1,i.global_get(u.internalName,r),!1),i.call(n.internalName,[i.local_get(1,r),i.local_get(0,L.I32)],L.None)))}i.addFunction(d.visit_globals,L.I32,L.None,[r],e.length?i.block(null,e):i.nop())}function gg(t,i){if(assert(i.type.isManaged),i.visitRef)return;let e=t.program,r=t.module,n=e.options.usizeType,s=n.toRef(),a=n.byteSize,l=assert(e.visitInstance),o=new Array,u=i.base;u&&o.push(r.call(`${u.internalName}~visit`,[r.local_get(0,s),r.local_get(1,L.I32)],L.None));let c=!1;if(i.isDeclaredInLibrary){let f=i.getMember("__visit");if(f){assert(f.kind==4);let h=e.resolver.resolveFunction(f,null);if(!h||!t.compileFunction(h))o.push(r.unreachable());else{let y=h.signature,x=assert(y.thisType);assert(y.parameterTypes.length==1&&y.parameterTypes[0]==p.u32&&y.returnType==p.void&&i.type.isStrictlyAssignableTo(x)),o.push(r.call(h.internalName,[r.local_get(0,s),r.local_get(1,L.I32)],L.None))}c=!0}}let _=!1;if(!c){let f=i.members;if(f)for(let h=Map_values(f),y=0,x=h.length;y<x;++y){let b=unchecked(h[y]);if(b.kind!=10)continue;let A=b.instance;if(!A)continue;let I=A.type;if(!A.isField||A.getBoundClassOrInterface()!=i||!I.isManaged)continue;let E=A.memoryOffset;assert(E>=0),_=!0,o.push(r.call(l.internalName,[r.load(a,!1,r.local_get(0,s),s,E),r.local_get(1,L.I32)],L.None))}}i.visitRef=r.addFunction(`${i.internalName}~visit`,He([s,L.I32]),L.None,_?[s]:null,r.flatten(o,L.None)),u&&u.type.isManaged&&gg(t,u)}function bg(t){let i=t.program,e=t.module,n=i.options.usizeType.toRef(),s=i.managedClasses,a=assert(i.visitInstance);t.compileFunction(a,!0);let l=new Array,o=new Array,u=0;for(let _=Map_keys(s),f=0,h=_.length;f<h;++f){let y=_[f];assert(y==u++);let x=assert(s.get(y));l[f]=x.internalName,x.isPointerfree?o[f]=e.return():(o[f]=e.block(null,[e.call(`${x.internalName}~visit`,[e.local_get(0,n),e.local_get(1,L.I32)],L.None),e.return()],L.None),gg(t,x))}let c=e.block(l[0],[e.switch(l,"invalid",e.load(4,!1,n==L.I64?e.binary(26,e.local_get(0,n),e.i64(8)):e.binary(1,e.local_get(0,n),e.i32(8)),L.I32,0))],L.None);for(let _=0,f=l.length-1;_<f;++_)c=e.block(l[_+1],[c,o[_]],L.None);c=e.block("invalid",[c,o[l.length-1]],L.None),e.addFunction(d.visit_members,He([n,L.I32]),L.None,null,e.flatten([c,e.unreachable()]))}function Bi(t){let i=64*(1<<t.alignLog2);return t.is(1)&&(i|=2048),t.is(8)&&(i|=4096),t.is(512)&&(i|=8192),t.isManaged&&(i|=16384),i/64}function xg(t){let i=t.program,e=t.module,r=i.managedClasses,n=r.size,s=4+4*n,a=new Uint8Array(s);me(n,a,0);let l=4,o=i.arrayBufferViewInstance,u=o.prototype,c=i.arrayPrototype,_=i.setPrototype,f=i.mapPrototype,h=i.staticArrayPrototype,y=0;for(let A=Map_keys(r),I=0,E=A.length;I<E;++I){let k=unchecked(A[I]),F=assert(r.get(k));assert(k==y++);let R=0;if(F.isPointerfree&&(R|=32),F!=o&&F.extendsPrototype(u)){let G=F.getArrayValueType();R|=1,R|=64*Bi(G)}else if(F.extendsPrototype(c)){let G=F.getArrayValueType();R|=2,R|=64*Bi(G)}else if(F.extendsPrototype(_)){let G=assert(F.getTypeArgumentsTo(_));assert(G.length==1),R|=8,R|=64*Bi(G[0])}else if(F.extendsPrototype(f)){let G=assert(F.getTypeArgumentsTo(f));assert(G.length==2),R|=16,R|=32768*Bi(G[0]),R|=64*Bi(G[1])}else if(F.extendsPrototype(h)){let G=F.getArrayValueType();R|=4,R|=64*Bi(G)}me(R,a,l),l+=4,F.rttiFlags=R}assert(l==s);let x=i.options.usizeType,b=t.addAlignedMemorySegment(a);if(x.size==8){let A=b.offset;e.addGlobal(d.rtti_base,L.I64,!1,e.i64(i64_low(A),i64_high(A)))}else e.addGlobal(d.rtti_base,L.I32,!1,e.i32(i64_low(b.offset)))}function Be(t){let i=t.compiler,e=t.operands,r=t.typeArguments;if(Li=0,e.length==0)return!r||r.length!=1?(i.error(2558,t.reportNode.typeArgumentsRange,"1",r?r.length.toString():"0"),null):r[0];if(e.length==1){if(r&&r.length>0){if(r.length>1)return i.error(2558,t.reportNode.typeArgumentsRange,"1",r.length.toString()),null;Li=i.compileExpression(e[0],r[0],1)}else Li=i.compileExpression(e[0],p.auto);return i.currentType}return r&&r.length>1&&i.error(2558,t.reportNode.typeArgumentsRange,"1",r.length.toString()),i.error(2554,t.reportNode.argumentsRange,"1",e.length.toString()),null}function Fe(t,i){let e=t.compiler.module;return Li&&Gl(Li,e.ref)&&(i=e.block(null,[e.maybeDrop(Li),i],se(i))),i}function tt(t,i){let e=i.module,r;if(i.options.isWasm64){let n=i.compileExpression(t,p.usize64,1),s=e.runExpression(n,1);s?(assert(we(s)==0),r=ve(s)):(i.error(220,t.range),r=-1)}else{let n=i.compileExpression(t,p.usize32,1),s=e.runExpression(n,1);s?r=ne(s):(i.error(220,t.range),r=-1)}return r}function Ot(t,i,e){let r=tt(t,e);return r<0?r:r<1||i>16?(e.error(222,t.range,"Alignment","1",i.toString()),-1):Pt(r)?r:(e.error(223,t.range,"Alignment"),-1)}function X(t,i){let e=t.compiler;return e.options.hasFeature(i)?0:(e.error(103,t.reportNode.range,oi(i)),1)}function J(t,i=!1){let e=t.compiler,r=t.typeArguments;if(r){let n=r.length;if(n==1)return 0;assert(n),i&&(e.currentType=r[0]),e.error(2558,t.reportNode.typeArgumentsRange,"1",n.toString())}else e.error(2558,t.reportNode.range,"1","0");return 1}function ae(t,i=!1){let e=t.typeArguments;if(e){let r=t.compiler,n=e.length;return n==1?0:(assert(n),i&&(r.currentType=e[0]),r.error(2558,t.reportNode.typeArgumentsRange,"1",n.toString()),1)}return 0}function v(t){if(t.typeArguments){let e=t.prototype;return e.program.error(2315,t.reportNode.typeArgumentsRange,e.internalName),1}return 0}function K(t,i){let e=t.operands;return e.length!=i?(t.compiler.error(2554,t.reportNode.range,i.toString(),e.length.toString()),1):0}function Se(t,i,e){let n=t.operands.length;return n<i?(t.compiler.error(2555,t.reportNode.range,i.toString(),n.toString()),1):n>e?(t.compiler.error(2554,t.reportNode.range,e.toString(),n.toString()),1):0}function Zl(t,i,e){let r=t.module;if(e!=p.auto&&e.isIntegerValue)switch(e.kind){case 3:{if(i64_is_i32(i))return t.currentType=p.i32,r.i32(i64_low(i));break}case 8:{if(i64_is_u32(i))return t.currentType=p.u32,r.i32(i64_low(i));break}case 4:case 9:return t.currentType=e,r.i64(i64_low(i),i64_high(i))}return t.options.isWasm64?(t.currentType=p.usize64,r.i64(i64_low(i),i64_high(i))):(t.currentType=p.usize32,assert(!i64_high(i)),r.i32(i64_low(i)))}function JS(t){let i=2166136261;for(let e=0,r=t.length;e<r;++e)i=Math.imul(i^t.charCodeAt(e),16777619)>>>0;return i>>>0}function ZS(t){switch(t){case"Documents":return 0;case"View":return 1;case"Events":return 2;case"Counter":return 3;case"Membership":return 4;case"Unique":return 5;case"Capacity":return 6;default:return-1}}function Tg(t,i){if(t==null)return!1;for(let e=0,r=t.length;e<r;++e)if(t[e].decoratorKind==i)return!0;return!1}var Uc=class{constructor(){this.name="";this.family=0;this.keyType="";this.valueType=""}},Vc=class{constructor(){this.name="";this.collections=new Array}},Oc=class{constructor(){this.bytes=new Array}u8(i){this.bytes.push(i&255)}u16(i){this.u8(i&255),this.u8(i>>>8&255)}u32(i){this.u8(i&255),this.u8(i>>>8&255),this.u8(i>>>16&255),this.u8(i>>>24&255)}str(i){this.u32(i.length);for(let e=0,r=i.length;e<r;++e)this.u8(i.charCodeAt(e)&255)}toBytes(){let i=this.bytes.length,e=new Uint8Array(i);for(let r=0;r<i;++r)e[r]=this.bytes[r];return e}};function Dc(t,i){let e=t.typeArguments;if(e!=null&&e.length>i){let r=e[i];if(r instanceof de)return r.name.identifier.text}return""}function Ag(t){let i=new Array,e=t.sources;for(let n=0,s=e.length;n<s;++n){let a=e[n];if(a.isLibrary)continue;let l=a.statements;for(let o=0,u=l.length;o<u;++o){let c=l[o];if(c.kind!=52)continue;let _=c;if(!Tg(_.decorators,31))continue;let f=new Vc;f.name=_.name.text;let h=_.members;for(let y=0,x=h.length;y<x;++y){let b=h[y];if(b.kind!=55)continue;let A=b;if(!Tg(A.decorators,32))continue;let I=A.type;if(I==null||!(I instanceof de))continue;let E=I,k=ZS(E.name.identifier.text);if(k<0)continue;let F=new Uc;F.name=A.name.text,F.family=k,k==3||k==6?(F.keyType=Dc(E,0),F.valueType="i64"):(F.keyType=Dc(E,0),F.valueType=Dc(E,1)),f.collections.push(F)}f.collections.length>0&&i.push(f)}}if(i.length==0)return null;let r=new Oc;r.u16(1),r.u16(i.length);for(let n=0,s=i.length;n<s;++n){let a=i[n];r.str(a.name),r.u16(a.collections.length);for(let l=0,o=a.collections.length;l<o;++l){let u=a.collections[l];r.str(u.name),r.u8(u.family),r.str(u.keyType),r.str(u.valueType);let c=JS(u.valueType);r.u32(c),r.u32(c),r.u32(0),r.u8(0),r.u8(0),r.u16(0)}}return r.toBytes()}var qc=class{constructor(){this.stack=new Array;this._currentExpression=0}get currentExpression(){let i=this._currentExpression;if(!i)throw new Error("not walking expressions");return i}get parentExpressionOrNull(){let i=this.stack,e=i.length;return e?i[e-1]:0}visitBlock(i){}visitIf(i){}visitLoop(i){}visitBreak(i){}visitSwitch(i){}visitCallPre(i){}visitCall(i){}visitCallIndirectPre(i){}visitCallIndirect(i){}visitLocalGet(i){}visitLocalSet(i){}visitGlobalGet(i){}visitGlobalSet(i){}visitLoad(i){}visitStore(i){}visitConst(i){}visitUnary(i){}visitBinary(i){}visitSelect(i){}visitDrop(i){}visitReturn(i){}visitMemorySize(i){}visitMemoryGrow(i){}visitNop(i){}visitUnreachable(i){}visitAtomicRMW(i){}visitAtomicCmpxchg(i){}visitAtomicWait(i){}visitAtomicNotify(i){}visitAtomicFence(i){}visitSIMDExtract(i){}visitSIMDReplace(i){}visitSIMDShuffle(i){}visitSIMDTernary(i){}visitSIMDShift(i){}visitSIMDLoad(i){}visitSIMDLoadStoreLane(i){}visitMemoryInit(i){}visitDataDrop(i){}visitMemoryCopy(i){}visitMemoryFill(i){}visitPop(i){}visitRefNull(i){}visitRefIsNull(i){}visitRefFunc(i){}visitRefEq(i){}visitTry(i){}visitThrow(i){}visitRethrow(i){}visitTupleMake(i){}visitTupleExtract(i){}visitRefI31(i){}visitI31Get(i){}visitCallRef(i){}visitRefTest(i){}visitRefCast(i){}visitBrOn(i){}visitStructNew(i){}visitStructGet(i){}visitStructSet(i){}visitArrayNew(i){}visitArrayNewFixed(i){}visitArrayGet(i){}visitArraySet(i){}visitArrayLen(i){}visitArrayCopy(i){}visitRefAs(i){}visitStringNew(i){}visitStringConst(i){}visitStringMeasure(i){}visitStringEncode(i){}visitStringConcat(i){}visitStringEq(i){}visitStringAs(i){}visitStringWTF8Advance(i){}visitStringWTF16Get(i){}visitStringIterNext(i){}visitStringIterMove(i){}visitStringSliceWTF(i){}visitStringSliceIter(i){}visitName(i){}visitLabel(i){}visitIndex(i){}visitTag(i){}visit(i){let e=this._currentExpression;switch(this._currentExpression=assert(i),Ft(i)){case 1:{this.stack.push(i);let r=Gs(i);r&&this.visitLabel(r);for(let n=0,s=Yi(i);n<s;++n)this.visit($i(i,n));assert(this.stack.pop()==i),this.visitBlock(i);break}case 2:{this.stack.push(i),this.visit(en(i)),this.visit(tn(i));let r=rn(i);r&&this.visit(r),assert(this.stack.pop()==i),this.visitIf(i);break}case 3:{this.stack.push(i);let r=zs(i);r&&this.visitLabel(r),this.visit(nn(i)),assert(this.stack.pop()==i),this.visitLoop(i);break}case 4:{this.stack.push(i),this.visitLabel(Ds(i));let r=sn(i);r&&this.visit(r);let n=po(i);n&&this.visit(n),assert(this.stack.pop()==i),this.visitBreak(i);break}case 5:{this.stack.push(i);let r=D_(i);r&&this.visitLabel(r);let n=G_(i);for(let a=0;a<n;++a)this.visitLabel(z_(i,a));this.visit(co(i));let s=_o(i);s&&this.visit(s),assert(this.stack.pop()==i),this.visitSwitch(i);break}case 6:{this.visitCallPre(i),this.stack.push(i),this.visitName($r(i));let r=Xt(i);for(let n=0;n<r;++n)this.visit(Jt(i,n));assert(this.stack.pop()==i),this.visitCall(i);break}case 7:{this.visitCallIndirectPre(i),this.stack.push(i),this.visit(fo(i));for(let r=0,n=an(i);r<n;++r)this.visit(ln(i,r));assert(this.stack.pop()==i),this.visitCallIndirect(i);break}case 8:{this.stack.push(i),this.visitIndex(Os(i)),assert(this.stack.pop()==i),this.visitLocalGet(i);break}case 9:{this.stack.push(i),this.visitIndex(ei(i)),this.visit(yr(i)),assert(this.stack.pop()==i),this.visitLocalSet(i);break}case 10:{this.stack.push(i),this.visitName(Ks(i)),assert(this.stack.pop()==i),this.visitGlobalGet(i);break}case 11:{this.stack.push(i),this.visitName(Z_(i)),this.visit(ho(i)),assert(this.stack.pop()==i),this.visitGlobalSet(i);break}case 12:{this.stack.push(i),this.visit(pn(i)),assert(this.stack.pop()==i),this.visitLoad(i);break}case 13:{this.stack.push(i),this.visit(gr(i)),this.visit(cn(i)),assert(this.stack.pop()==i),this.visitStore(i);break}case 14:{this.visitConst(i);break}case 15:{this.stack.push(i),this.visit(_n(i)),assert(this.stack.pop()==i),this.visitUnary(i);break}case 16:{this.stack.push(i),this.visit(fn(i)),this.visit(hn(i)),assert(this.stack.pop()==i),this.visitBinary(i);break}case 17:{this.stack.push(i),this.visit(dn(i)),this.visit(mn(i)),this.visit(yn(i)),assert(this.stack.pop()==i),this.visitSelect(i);break}case 18:{this.stack.push(i),this.visit(gn(i)),assert(this.stack.pop()==i),this.visitDrop(i);break}case 19:{let r=br(i);r&&(this.stack.push(i),this.visit(r),assert(this.stack.pop()==i)),this.visitReturn(i);break}case 20:{this.visitMemorySize(i);break}case 21:{this.stack.push(i),this.visit(un(i)),assert(this.stack.pop()==i),this.visitMemoryGrow(i);break}case 22:{this.visitNop(i);break}case 23:{this.visitUnreachable(i);break}case 24:{this.stack.push(i),this.visit(yo(i)),this.visit(go(i)),assert(this.stack.pop()==i),this.visitAtomicRMW(i);break}case 25:{this.stack.push(i),this.visit(bo(i)),this.visit(xo(i)),this.visit(To(i)),assert(this.stack.pop()==i),this.visitAtomicCmpxchg(i);break}case 26:{this.stack.push(i),this.visit(Ao(i)),this.visit(Eo(i)),this.visit(vo(i)),assert(this.stack.pop()==i),this.visitAtomicWait(i);break}case 27:{this.stack.push(i),this.visit(So(i)),this.visit(Io(i)),assert(this.stack.pop()==i),this.visitAtomicNotify(i);break}case 28:{this.visitAtomicFence(i);break}case 30:{this.stack.push(i),this.visit(Ro(i)),assert(this.stack.pop()==i),this.visitSIMDExtract(i);break}case 31:{this.stack.push(i),this.visit(Fo(i)),this.visit(ko(i)),assert(this.stack.pop()==i),this.visitSIMDReplace(i);break}case 32:{this.stack.push(i),this.visit(wo(i)),this.visit(Co(i)),assert(this.stack.pop()==i),this.visitSIMDShuffle(i);break}case 33:{this.stack.push(i),this.visit(Po(i)),this.visit(Bo(i)),this.visit(Lo(i)),assert(this.stack.pop()==i),this.visitSIMDTernary(i);break}case 34:{this.stack.push(i),this.visit(No(i)),this.visit(Mo(i)),assert(this.stack.pop()==i),this.visitSIMDShift(i);break}case 35:{this.stack.push(i),this.visit(Go(i)),assert(this.stack.pop()==i),this.visitSIMDLoad(i);break}case 36:{this.stack.push(i),this.visit(zo(i)),this.visit(Do(i)),assert(this.stack.pop()==i),this.visitSIMDLoadStoreLane(i);break}case 37:{this.stack.push(i),this.visit(Uo(i)),this.visit(Vo(i)),this.visit(Oo(i)),assert(this.stack.pop()==i),this.visitMemoryInit(i);break}case 38:{this.visitDataDrop(i);break}case 39:{this.stack.push(i),this.visit(qo(i)),this.visit(Wo(i)),this.visit(Ko(i)),assert(this.stack.pop()==i),this.visitMemoryCopy(i);break}case 40:{this.stack.push(i),this.visit(jo(i)),this.visit(Ho(i)),this.visit(Qo(i)),assert(this.stack.pop()==i),this.visitMemoryFill(i);break}case 41:{this.visitPop(i);break}case 42:{this.visitRefNull(i);break}case 43:{this.stack.push(i),this.visit(Xo(i)),assert(this.stack.pop()==i),this.visitRefIsNull(i);break}case 44:{this.stack.push(i),this.visitName(Fh(i)),assert(this.stack.pop()==i),this.visitRefFunc(i);break}case 45:{this.stack.push(i),this.visit(Yo(i)),this.visit($o(i)),assert(this.stack.pop()==i),this.visitRefEq(i);break}case 54:{this.stack.push(i),this.visit(eu(i));let r=tu(i);for(let n=0;n<r;++n)this.visit(ru(i,n));assert(this.stack.pop()==i),this.visitTry(i);break}case 56:{this.stack.push(i),this.visitTag(Uh(i));let r=iu(i);for(let n=0;n<r;++n)this.visit(nu(i,n));assert(this.stack.pop()==i),this.visitThrow(i);break}case 57:{this.visitRethrow(i);break}case 59:{let r=su(i);if(r){this.stack.push(i);for(let n=0;n<r;++n)this.visit(au(i,n));assert(this.stack.pop()==i)}this.visitTupleMake(i);break}case 60:{this.stack.push(i),this.visit(lu(i)),assert(this.stack.pop()==i),this.visitTupleExtract(i);break}case 61:{this.stack.push(i),this.visit(ou(i)),assert(this.stack.pop()==i),this.visitRefI31(i);break}case 62:{this.stack.push(i),this.visit(uu(i)),assert(this.stack.pop()==i),this.visitI31Get(i);break}case 63:{this.stack.push(i);let r=pu(i);if(r)for(let n=0;n<r;++n)this.visit(cu(i,n));this.visit(_u(i)),assert(this.stack.pop()==i),this.visitCallRef(i);break}case 64:{this.stack.push(i),this.visit(fu(i)),assert(this.stack.pop()==i),this.visitRefTest(i);break}case 65:{this.stack.push(i),this.visit(hu(i)),assert(this.stack.pop()==i),this.visitRefCast(i);break}case 67:{this.stack.push(i),this.visitLabel(rd(i)),this.visit(du(i)),assert(this.stack.pop()==i),this.visitBrOn(i);break}case 68:{let r=mu(i);if(r){this.stack.push(i);for(let n=0;n<r;++n)this.visit(yu(i,n));assert(this.stack.pop()==i)}this.visitStructNew(i);break}case 69:{this.stack.push(i),this.visit(gu(i)),this.visitIndex(sd(i)),assert(this.stack.pop()==i),this.visitStructGet(i);break}case 70:{this.stack.push(i),this.visit(bu(i)),this.visitIndex(ld(i)),this.visit(xu(i)),assert(this.stack.pop()==i),this.visitStructSet(i);break}case 73:{this.stack.push(i),this.visit(Au(i));let r=Tu(i);r&&this.visit(r),assert(this.stack.pop()==i),this.visitArrayNew(i);break}case 76:{let r=Eu(i);if(r){this.stack.push(i);for(let n=0;n<r;++n)this.visit(vu(i,n));assert(this.stack.pop()==i)}this.visitArrayNewFixed(i);break}case 77:{this.stack.push(i),this.visit(Su(i)),this.visit(Iu(i)),assert(this.stack.pop()==i),this.visitArrayGet(i);break}case 78:{this.stack.push(i),this.visit(Ru(i)),this.visit(Fu(i)),this.visit(ku(i)),assert(this.stack.pop()==i),this.visitArraySet(i);break}case 81:{this.stack.push(i),this.visit(wu(i)),assert(this.stack.pop()==i),this.visitArrayLen(i);break}case 82:{this.stack.push(i),this.visit(Cu(i)),this.visit(Pu(i)),this.visit(Bu(i)),this.visit(Lu(i)),this.visit(Nu(i)),assert(this.stack.pop()==i),this.visitArrayCopy(i);break}case 88:{this.stack.push(i),this.visit(Zo(i)),assert(this.stack.pop()==i),this.visitRefAs(i);break}case 89:{this.stack.push(i),this.visit(Mu(i));let r=Gu(i);r&&this.visit(r);let n=zu(i);n&&this.visit(n),assert(this.stack.pop()==i),this.visitStringNew(i);break}case 90:{this.stack.push(i),assert(this.stack.pop()==i),this.visitStringConst(i);break}case 91:{this.stack.push(i),this.visit(Du(i)),assert(this.stack.pop()==i),this.visitStringMeasure(i);break}case 92:{this.stack.push(i),this.visit(Uu(i)),this.visit(Vu(i));let r=Ou(i);r&&this.visit(r),assert(this.stack.pop()==i),this.visitStringEncode(i);break}case 93:{this.stack.push(i),this.visit(qu(i)),this.visit(Wu(i)),assert(this.stack.pop()==i),this.visitStringConcat(i);break}case 94:{this.stack.push(i),this.visit(ju(i)),this.visit(Hu(i)),assert(this.stack.pop()==i),this.visitStringEq(i);break}case 96:{this.stack.push(i),this.visit(Qu(i)),this.visit(Xu(i)),assert(this.stack.pop()==i),this.visitStringWTF16Get(i);break}case 97:{this.stack.push(i),this.visit(Ju(i)),this.visit(Zu(i)),this.visit(Yu(i)),assert(this.stack.pop()==i),this.visitStringSliceWTF(i);break}default:throw new Error("unexpected expression kind")}this._currentExpression=e}},Jr=class extends qc{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 r=0,n=ni(e);r<n;++r)this.walkFunction(xn(e,r))}walkFunction(e){let r=wt(e);r&&(this._currentFunction=e,this.visit(r),this._currentFunction=0)}walkGlobals(){let e=this.module.ref;for(let r=0,n=im(e);r<n;++r)this.walkGlobal(nm(e,r))}walkGlobal(e){this._currentGlobal=e;let r=ta(e);r&&this.visit(r),this._currentGlobal=0}replaceCurrent(e){let r=this.currentExpression,n=this.currentFunction;if(wt(n)==r)En(n,e);else{let a=assert(this.parentExpressionOrNull);if(!YS(a,r,e))throw Error("failed to replace expression");v_(a)}}};function YS(t,i,e){switch(Ft(t)){case 1:{let r=Yi(t);for(let n=0;n<r;++n){let s=$i(t,n);if(s==i)return I_(t,n,e),s}break}case 2:{let r=en(t);if(r==i)return F_(t,e),r;let n=tn(t);if(n==i)return k_(t,e),n;let s=rn(t);if(s==i)return w_(t,e),s;break}case 3:{let r=nn(t);if(r==i)return P_(t,e),r;break}case 4:{let r=sn(t);if(r==i)return L_(t,e),r;let n=po(t);if(n==i)return N_(t,e),n;break}case 5:{let r=co(t);if(r==i)return U_(t,e),r;let n=_o(t);if(n==i)return V_(t,e),n;break}case 6:{let r=Xt(t);for(let n=0;n<r;++n){let s=Jt(t,n);if(s==i)return Us(t,n,e),s}break}case 7:{let r=fo(t);if(r==i)return K_(t,e),r;let n=an(t);for(let s=0;s<n;++s){let a=ln(t,s);if(a==i)return Vs(t,s,e),a}break}case 8:break;case 9:{let r=yr(t);if(r==i)return Ws(t,e),r;break}case 10:break;case 11:{let r=ho(t);if(r==i)return Y_(t,e),r;break}case 12:{let r=pn(t);if(r==i)return lf(t,e),r;break}case 13:{let r=gr(t);if(r==i)return Qs(t,e),r;let n=cn(t);if(n==i)return pf(t,e),n;break}case 14:break;case 15:{let r=_n(t);if(r==i)return gf(t,e),r;break}case 16:{let r=fn(t);if(r==i)return Tf(t,e),r;let n=hn(t);if(n==i)return Af(t,e),n;break}case 17:{let r=dn(t);if(r==i)return vf(t,e),r;let n=mn(t);if(n==i)return Sf(t,e),n;let s=yn(t);if(s==i)return If(t,e),s;break}case 18:{let r=gn(t);if(r==i)return Rf(t,e),r;break}case 19:{let r=br(t);if(r==i)return Xs(t,e),r;break}case 20:break;case 21:{let r=un(t);if(r==i)return tf(t,e),r;break}case 22:break;case 23:break;case 24:{let r=yo(t);if(r==i)return Pf(t,e),r;let n=go(t);if(n==i)return Bf(t,e),n;break}case 25:{let r=bo(t);if(r==i)return Nf(t,e),r;let n=xo(t);if(n==i)return Mf(t,e),n;let s=To(t);if(s==i)return Gf(t,e),s;break}case 26:{let r=Ao(t);if(r==i)return Df(t,e),r;let n=Eo(t);if(n==i)return Uf(t,e),n;let s=vo(t);if(s==i)return Vf(t,e),s;break}case 27:{let r=So(t);if(r==i)return qf(t,e),r;let n=Io(t);if(n==i)return Wf(t,e),n;break}case 28:break;case 30:{let r=Ro(t);if(r==i)return Hf(t,e),r;break}case 31:{let r=Fo(t);if(r==i)return Xf(t,e),r;let n=ko(t);if(n==i)return Jf(t,e),n;break}case 32:{let r=wo(t);if(r==i)return Yf(t,e),r;let n=Co(t);if(n==i)return $f(t,e),n;break}case 33:{let r=Po(t);if(r==i)return th(t,e),r;let n=Bo(t);if(n==i)return rh(t,e),n;let s=Lo(t);if(s==i)return ih(t,e),s;break}case 34:{let r=No(t);if(r==i)return sh(t,e),r;let n=Mo(t);if(n==i)return ah(t,e),n;break}case 35:{let r=Go(t);if(r==i)return oh(t,e),r;break}case 36:{let r=zo(t);if(r==i)return ph(t,e),r;if(Do(t)==i)return ch(t,e),r;break}case 37:{let r=Uo(t);if(r==i)return _h(t,e),r;let n=Vo(t);if(n==i)return fh(t,e),n;let s=Oo(t);if(s==i)return hh(t,e),s;break}case 38:break;case 39:{let r=qo(t);if(r==i)return mh(t,e),r;let n=Wo(t);if(n==i)return yh(t,e),n;let s=Ko(t);if(s==i)return gh(t,e),s;break}case 40:{let r=jo(t);if(r==i)return xh(t,e),r;let n=Ho(t);if(n==i)return Th(t,e),n;let s=Qo(t);if(s==i)return Ah(t,e),s;break}case 41:break;case 42:break;case 43:{let r=Xo(t);if(r==i)return Sh(t,e),r;break}case 44:break;case 45:{let r=Yo(t);if(r==i)return wh(t,e),r;let n=$o(t);if(n==i)return Ch(t,e),n;break}case 54:{let r=eu(t);if(r==i)return Gh(t,e),r;let n=tu(t);for(let s=0;s<n;++s){let a=ru(t,s);if(a==i)return zh(t,s,e),a}break}case 56:{let r=iu(t);for(let n=0;n<r;++n){let s=nu(t,n);if(s==i)return Vh(t,n,e),s}break}case 57:break;case 59:{let r=su(t);for(let n=0;n<r;++n){let s=au(t,n);if(s==i)return Wh(t,n,e),s}break}case 60:{let r=lu(t);if(r==i)return jh(t,e),r;break}case 61:{let r=ou(t);if(r==i)return Xh(t,e),r;break}case 62:{let r=uu(t);if(r==i)return Zh(t,e),r;break}case 63:{let r=pu(t);for(let s=0;s<r;++s){let a=cu(t,s);if(a==i)return Yh(t,s,e),a}let n=_u(t);if(n==i)return $h(t,e),n;break}case 64:{let r=fu(t);if(r==i)return ed(t,e),r;break}case 65:{let r=hu(t);if(r==i)return td(t,e),r;break}case 67:{let r=du(t);if(r==i)return id(t,e),r;break}case 68:{let r=mu(t);for(let n=0;n<r;++n){let s=yu(t,n);if(s==i)return nd(t,n,e),s}break}case 69:{let r=gu(t);if(r==i)return ad(t,e),r;break}case 70:{let r=bu(t);if(r==i)return od(t,e),r;let n=xu(t);if(n==i)return ud(t,e),n;break}case 73:{let r=Au(t);if(r==i)return cd(t,e),r;let n=Tu(t);if(n==i)return pd(t,e),n;break}case 76:{let r=Eu(t);for(let n=0;n<r;++n){let s=vu(t,n);if(s==i)return _d(t,n,e),s}break}case 77:{let r=Su(t);if(r==i)return fd(t,e),r;let n=Iu(t);if(n==i)return hd(t,e),n;break}case 78:{let r=Ru(t);if(r==i)return dd(t,e),r;let n=Fu(t);if(n==i)return md(t,e),n;let s=ku(t);if(s==i)return yd(t,e),s;break}case 81:{let r=wu(t);if(r==i)return gd(t,e),r;break}case 82:{let r=Cu(t);if(r==i)return bd(t,e),r;let n=Pu(t);if(n==i)return xd(t,e),n;let s=Bu(t);if(s==i)return Td(t,e),s;let a=Lu(t);if(a==i)return Ad(t,e),a;let l=Nu(t);if(l==i)return Ed(t,e),l;break}case 88:{let r=Zo(t);if(r==i)return Ih(t,e),r;break}case 89:{let r=Mu(t);if(r==i)return vd(t,e),r;let n=Gu(t);if(n==i)return Sd(t,e),n;let s=zu(t);if(s==i)return Id(t,e),s;break}case 90:break;case 91:{let r=Du(t);if(r==i)return Rd(t,e),r;break}case 92:{let r=Uu(t);if(r==i)return Fd(t,e),r;let n=Vu(t);if(n==i)return kd(t,e),n;let s=Ou(t);if(s==i)return wd(t,e),s;break}case 93:{let r=qu(t);if(r==i)return Cd(t,e),r;let n=Wu(t);if(n==i)return Pd(t,e),n;break}case 94:{let r=ju(t);if(r==i)return Bd(t,e),r;let n=Hu(t);if(n==i)return Ld(t,e),n;break}case 96:{let r=Qu(t);if(r==i)return Nd(t,e),r;let n=Xu(t);if(n==i)return Md(t,e),n;break}case 97:{let r=Ju(t);if(r==i)return Gd(t,e),r;let n=Zu(t);if(n==i)return zd(t,e),n;let s=Yu(t);if(s==i)return Dd(t,e),s;break}default:throw new Error("unexpected expression id")}return 0}var $l=class extends Jr{constructor(e){super(e.module);this.seenStores=!1;this.ptrType=e.options.sizeTypeRef}checkRT(){return this.module.readStringCached(si(this.currentFunction)).startsWith("~lib/rt/")}visitStore(e){let r=this.module,n=gr(e),s=Hs(e),a=js(e);Qs(e,r.call("~onstore",[n,r.i32(s),r.i32(a),r.i32(i32(this.checkRT()))],this.ptrType)),this.seenStores=!0}walkModule(){super.walkModule(),this.seenStores&&this.module.addFunctionImport("~onstore","rtrace","onstore",He([this.ptrType,L.I32,L.I32,L.I32]),this.ptrType)}};function Eg(t,i){let e=!1;for(;Ft(i)==6&&t.readStringCached($r(i))==d.tostack;)assert(Xt(i)==1),i=Jt(i,0),e=!0;return e?i:0}function vg(t){return Ft(t)===14?!Qe(t):!0}var Rs=class extends Jr{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==L.I64?8:4}get ptrBinaryAdd(){return this.ptrType==L.I64?25:0}get ptrBinarySub(){return this.ptrType==L.I64?26:1}ptrConst(e){return this.ptrType==L.I64?this.module.i64(e):this.module.i32(e)}noteSlot(e,r){let n;if(this.slotMaps.has(e)){if(n=changetype(this.slotMaps.get(e)),n.has(r))return changetype(n.get(r))}else n=new Map,this.slotMaps.set(e,n);let s=n.size;return n.set(r,s),s}noteExport(e,r){r.length&&this.exportMap.set(e,r)}getSharedTemp(e,r){let n;if(this.tempMaps.has(e)){if(n=changetype(this.tempMaps.get(e)),n.has(r))return changetype(n.get(r))}else n=new Map,this.tempMaps.set(e,n);let a=$u(e)+n.size;return n.set(r,a),a}makeStackOffset(e){assert(e!=0);let r=this.module,n=r.global_set(d.stack_pointer,r.binary(e>=0?this.ptrBinaryAdd:this.ptrBinarySub,r.global_get(d.stack_pointer,this.ptrType),this.ptrConst(abs(e))));return e>0?n:r.block(null,[n,this.makeStackCheck()],L.None)}makeStackFill(e,r){assert(e>0);let n=this.module;if(this.options.hasFeature(8)&&e>16)r.push(n.memory_fill(n.global_get(d.stack_pointer,this.ptrType),n.i32(0),this.ptrConst(e)));else{let s=e;for(;s>=8;)r.push(n.store(8,n.global_get(d.stack_pointer,this.ptrType),n.i64(0),L.I64,e-s)),s-=8;s&&(assert(s==4),r.push(n.store(4,n.global_get(d.stack_pointer,this.ptrType),n.i32(0),L.I32,e-s)))}}makeStackCheck(){let e=this.module;return!this.hasStackCheckFunction&&!e.hasFunction("~stack_check")&&(this.hasStackCheckFunction=!0,e.addFunction("~stack_check",L.None,L.None,null,e.if(e.binary(17,e.global_get(d.stack_pointer,this.ptrType),e.global_get(d.data_end,this.ptrType)),this.compiler.options.hasFeature(64)?e.unreachable():this.compiler.makeStaticAbort(this.compiler.ensureStaticString("stack overflow"),ce.native)))),e.call("~stack_check",null,L.None)}updateCallOperands(e){let r=this.module,n=0;for(let s=0,a=e.length;s<a;++s){let l=e[s],o=Eg(r,l);if(!o)continue;if(!vg(o)){e[s]=o;continue}let u=this.currentFunction,c=$u(u),_=this.noteSlot(u,c+this.callSlotOffset+n),f=this.getSharedTemp(u,this.ptrType),h=new Array;h.push(r.local_set(f,o,!1)),h.push(r.store(this.ptrSize,r.global_get(d.stack_pointer,this.ptrType),r.local_get(f,this.ptrType),this.ptrType,_*this.ptrSize)),h.push(r.local_get(f,this.ptrType)),e[s]=r.block(null,h,this.ptrType),++n}return n}visitCallPre(e){let r=Xt(e),n=new Array(r);for(let a=0;a<r;++a)n[a]=Jt(e,a);let s=this.updateCallOperands(n);for(let a=0,l=n.length;a<l;++a)Us(e,a,n[a]);s&&(this.callSlotOffset+=s),this.callSlotStack.push(s)}visitCall(e){let r=this.callSlotStack.pop();r&&(this.callSlotOffset-=r)}visitCallIndirectPre(e){let r=an(e),n=new Array(r);for(let a=0;a<r;++a)n[a]=ln(e,a);let s=this.updateCallOperands(n);for(let a=0,l=n.length;a<l;++a)Vs(e,a,n[a]);s&&(this.callSlotOffset+=s),this.callSlotStack.push(s)}visitCallIndirect(e){let r=this.callSlotStack.pop();r&&(this.callSlotOffset-=r)}visitLocalSet(e){let r=this.module,n=yr(e),s=Eg(r,n);if(!s)return;if(!vg(s)){Ws(e,s);return}let a=ei(e),l=this.noteSlot(this.currentFunction,a),o=new Array;o.push(r.store(this.ptrSize,r.global_get(d.stack_pointer,this.ptrType),r.local_tee(a,s,!1),this.ptrType,l*this.ptrSize)),qs(e)?(o.push(r.local_get(a,this.ptrType)),this.replaceCurrent(r.flatten(o,this.ptrType))):this.replaceCurrent(r.flatten(o,L.None))}updateFunction(e){let r=si(e),n=Tn(e),s=An(e),a=assert(wt(e)),l=Js(e),o=new Array;for(let h=0;h<l;++h)o[h]=Zs(e,h);let u=this.tempMaps;if(u.has(e)){let h=changetype(u.get(e));for(let y=Map_keys(h),x=0,b=y.length;x<b;++x)o.push(y[x])}let c=this.module.ref;bn(c,r);let _=fe(o),f=ri(c,r,n,s,_,o.length,a);if(this.options.sourceMap||this.options.debugInfo){let h=this.compiler.program.searchFunctionByRef(f);h&&h.addDebugInfo(this.module,f)}ie(_)}updateExport(e,r){let n=this.module,s=n.ref;assert(Yd(e)==0);let a=em(e),l=n.readStringCached(a),o=$d(e),u=ii(s,a),c=Tn(u),_=Mp(c),f=_.length,h=An(u),y=f,x=new Array,b=assert(r.length),A=b*this.ptrSize,I="export:"+l,E=n.allocStringCached(I);if(ii(s,E)==0){let k=new Array;k.push(this.makeStackOffset(-A));for(let G=0;G<b;++G)k.push(n.store(this.ptrSize,n.global_get(d.stack_pointer,this.ptrType),n.local_get(r[G],this.ptrType),this.ptrType,G*this.ptrSize));let F=new Array(f);for(let G=0;G<f;++G)F[G]=n.local_get(G,_[G]);if(h!=L.None){let G=y++;x.push(h),k.push(n.local_set(G,n.call(l,F,h),!1)),k.push(this.makeStackOffset(+A)),k.push(n.local_get(G,h))}else k.push(n.call(l,F,h)),k.push(this.makeStackOffset(+A));let R=fe(x);ri(s,E,c,h,R,x.length,n.block(null,k,h)),ie(R)}ea(s,o),Ys(s,E,o)}walkModule(){let e=this.module.ref,r=this.module,n=0,s=0,a=new Set;for(;;){let u=ni(e);if(u==n)break;for(let _=n;_<u;++_)this.walkFunction(xn(e,_));let c=new eo(this);for(let _=Map_keys(this.slotMaps),f=0,h=_.length;f<h;++f){let y=_[f];if(a.has(y))continue;a.add(y);let b=changetype(this.slotMaps.get(y)).size*this.ptrSize;c.frameSize=b,c.walkFunction(y);let A=new Array;A.push(this.makeStackOffset(-b)),this.makeStackFill(b,A);let I=wt(y),E=kt(I);if(E==L.Unreachable)A.push(I);else if(E==L.None)A.push(I),A.push(this.makeStackOffset(+b));else{let k=this.getSharedTemp(y,E);A.push(r.local_set(k,I,!1)),A.push(this.makeStackOffset(+b)),A.push(r.local_get(k,E))}En(y,r.flatten(A,E))}if(n=u,s++,s>100)throw new Error("ShadowStackPass: too many iterations, possible infinite loop")}this.walkGlobals();let l=this.exportMap;for(let u=Map_keys(l),c=0,_=u.length;c<_;++c){let f=u[c],h=$s(r.ref,r.allocStringCached(f)),y=changetype(l.get(f));this.updateExport(h,y)}let o=ni(e);for(;n<o;){for(let c=n;c<o;++c)this.walkFunction(xn(e,c));let u=new eo(this);for(let c=Map_keys(this.slotMaps),_=0,f=c.length;_<f;++_){let h=c[_];if(a.has(h))continue;a.add(h);let x=changetype(this.slotMaps.get(h)).size*this.ptrSize;u.frameSize=x,u.walkFunction(h);let b=new Array;b.push(this.makeStackOffset(-x)),this.makeStackFill(x,b);let A=wt(h),I=kt(A);if(I==L.Unreachable)b.push(A);else if(I==L.None)b.push(A),b.push(this.makeStackOffset(+x));else{let E=this.getSharedTemp(h,I);b.push(r.local_set(E,A,!1)),b.push(this.makeStackOffset(+x)),b.push(r.local_get(E,I))}En(h,r.flatten(b,I))}n=o,o=ni(e)}for(let u=Map_keys(this.tempMaps),c=0,_=u.length;c<_;++c)this.updateFunction(u[c])}},eo=class extends Jr{constructor(e){super(e.module);this.frameSize=0;this.parentPass=e}visitReturn(e){assert(this.frameSize);let r=this.module,n=br(e),s=new Array;if(n){let a=kt(n);if(a==L.Unreachable)return;let l=this.parentPass.getSharedTemp(this.currentFunction,a);s.push(r.local_set(l,n,!1)),s.push(this.parentPass.makeStackOffset(+this.frameSize)),Xs(e,r.local_get(l,a))}else s.push(this.parentPass.makeStackOffset(+this.frameSize));s.push(e),this.replaceCurrent(r.flatten(s,L.Unreachable))}};var Gi=class{constructor(i,e=!1){this.seen=new Map;this.program=i,this.includePrivate=e}walk(){for(let i=Map_values(this.program.filesByName),e=0,r=i.length;e<r;++e){let n=unchecked(i[e]);n.source.sourceKind==1&&this.visitFile(n)}}visitFile(i){let e=i.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 r=i.exportsStar;if(r)for(let n=0,s=r.length;n<s;++n){let a=unchecked(r[n]);this.visitFile(a)}}visitElement(i,e){if(e.is(512)&&!this.includePrivate)return;let r=this.seen;if(!e.is(262144)&&r.has(e)){this.visitAlias(i,e,assert(r.get(e)));return}switch(r.set(e,i),e.kind){case 0:{e.is(8388608)&&this.visitGlobal(i,e);break}case 2:{e.is(8388608)&&this.visitEnum(i,e);break}case 3:break;case 4:{this.visitFunctionInstances(i,e);break}case 6:{this.visitClassInstances(i,e);break}case 8:{this.visitInterfaceInstances(i,e);break}case 10:{let n=e.instance;if(!n)break;e=n}case 11:{let n=e,s=n.getterInstance;s&&this.visitFunction(i,s);let a=n.setterInstance;a&&this.visitFunction(i,a);break}case 12:{Sg(e)&&this.visitNamespace(i,e);break}case 14:case 15:break;default:assert(!1)}}visitFunctionInstances(i,e){let r=e.instances;if(r)for(let n=Map_values(r),s=0,a=n.length;s<a;++s){let l=unchecked(n[s]);l.is(8388608)&&this.visitFunction(i,l)}}visitClassInstances(i,e){let r=e.instances;if(r)for(let n=Map_values(r),s=0,a=n.length;s<a;++s){let l=unchecked(n[s]);assert(l.kind==7),l.is(8388608)&&this.visitClass(i,l)}}visitInterfaceInstances(i,e){let r=e.instances;if(r)for(let n=Map_values(r),s=0,a=n.length;s<a;++s){let l=unchecked(n[s]);assert(l.kind==9),l.is(8388608)&&this.visitInterface(i,l)}}};function Sg(t){let i=t.members;if(i)for(let e=Map_values(i),r=0,n=e.length;r<n;++r){let s=unchecked(e[r]);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)||Sg(s))return!0;break}}}return!1}function $S(t){return t=="rtrace"?"#rtrace":t}function eI(t){return t!="rtrace"}var Di=class t extends Gi{constructor(e,r,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=r}static build(e,r=!0){return new t(e,r).build()}visitGlobal(e,r){let n=this.sb,s=r.type;this.exports.push(e),Zr(s,1)||(O(n,this.indentLevel),n.push(e),n.push(`: {
26
26
  `),O(n,++this.indentLevel),n.push("// "),n.push(r.internalName),n.push(": "),n.push(s.toString()),n.push(`
27
27
  `),O(n,this.indentLevel),n.push(`valueOf() { return this.value; },
28
28
  `),O(n,this.indentLevel),n.push(`get value() {