/* Generated by Nim Compiler v2.2.10 */
#define NIM_INTBITS 64
#define NIM_EmulateOverflowChecks

#include "nimbase.h"
#include <string.h>
#undef LANGUAGE_C
#undef MIPSEB
#undef MIPSEL
#undef PPC
#undef R3000
#undef R4000
#undef i386
#undef linux
#undef mips
#undef near
#undef far
#undef powerpc
#undef unix
typedef struct tySequence__1xFov7v9c2rs44orw6d9bPmw tySequence__1xFov7v9c2rs44orw6d9bPmw;
typedef struct tySequence__1xFov7v9c2rs44orw6d9bPmw_Content tySequence__1xFov7v9c2rs44orw6d9bPmw_Content;
typedef struct tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg;
typedef struct tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ;
typedef struct tyObject_Con__wRKI8PR5jcP87QCiheFmFw tyObject_Con__wRKI8PR5jcP87QCiheFmFw;
typedef struct tySequence__ASKXHf9aJJjLj0hSZ39ci19cA tySequence__ASKXHf9aJJjLj0hSZ39ci19cA;
typedef struct tySequence__ASKXHf9aJJjLj0hSZ39ci19cA_Content tySequence__ASKXHf9aJJjLj0hSZ39ci19cA_Content;
typedef struct tyObject_Instr__q6FqGagLCvmrvQAVu3oy4g tyObject_Instr__q6FqGagLCvmrvQAVu3oy4g;
typedef struct tyObject_TBlock__LegQi0ajkTVtggrD9avD75Q tyObject_TBlock__LegQi0ajkTVtggrD9avD75Q;
typedef struct tySequence__gGvy9cKEpHEX9cA4gF5mzkxA tySequence__gGvy9cKEpHEX9cA4gF5mzkxA;
typedef struct tySequence__gGvy9cKEpHEX9cA4gF5mzkxA_Content tySequence__gGvy9cKEpHEX9cA4gF5mzkxA_Content;
typedef struct tySequence__qwqHTkRvwhrRyENtudHQ7g tySequence__qwqHTkRvwhrRyENtudHQ7g;
typedef struct tySequence__qwqHTkRvwhrRyENtudHQ7g_Content tySequence__qwqHTkRvwhrRyENtudHQ7g_Content;
typedef struct tyObject_ItemId__N3z7uIvKCrk0S9cej5ew0nA tyObject_ItemId__N3z7uIvKCrk0S9cej5ew0nA;
typedef struct tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg;
typedef struct tyObject_TIdent__LG4CHFyohryWo9bzZeyjDjA tyObject_TIdent__LG4CHFyohryWo9bzZeyjDjA;
typedef struct tyObject_TLineInfo__cGj50BJ9bj3Zx09a9bMvKs8HA tyObject_TLineInfo__cGj50BJ9bj3Zx09a9bMvKs8HA;
typedef struct tyObject_TLoc__KvQVlvKb6mbV567NQ0hMOw tyObject_TLoc__KvQVlvKb6mbV567NQ0hMOw;
typedef struct NimStrPayload NimStrPayload;
typedef struct NimStringV2 NimStringV2;
typedef struct tyObject_TLib__sVuuRvQkiYNOUiPRZhmZig tyObject_TLib__sVuuRvQkiYNOUiPRZhmZig;
typedef struct tySequence__9ahcSjIErJohSBBFLwuF56Q tySequence__9ahcSjIErJohSBBFLwuF56Q;
typedef struct tySequence__9ahcSjIErJohSBBFLwuF56Q_Content tySequence__9ahcSjIErJohSBBFLwuF56Q_Content;
typedef struct tySequence__d8ZV4IMgHt9biik9cS9a0hrmg tySequence__d8ZV4IMgHt9biik9cS9a0hrmg;
typedef struct tySequence__d8ZV4IMgHt9biik9cS9a0hrmg_Content tySequence__d8ZV4IMgHt9biik9cS9a0hrmg_Content;
typedef struct tyTuple__MDblJIdBvEzk3cvDpORS3w tyTuple__MDblJIdBvEzk3cvDpORS3w;
typedef struct tyObject_RefHeader__GDnGTjNyvwISJbkIvAst3A tyObject_RefHeader__GDnGTjNyvwISJbkIvAst3A;
typedef struct tyObject_NimRawSeq__Tvl1urqmI1tXqzkHPbWVJQ tyObject_NimRawSeq__Tvl1urqmI1tXqzkHPbWVJQ;
struct tySequence__1xFov7v9c2rs44orw6d9bPmw {
  NI len; tySequence__1xFov7v9c2rs44orw6d9bPmw_Content* p;
};
struct tySequence__ASKXHf9aJJjLj0hSZ39ci19cA {
  NI len; tySequence__ASKXHf9aJJjLj0hSZ39ci19cA_Content* p;
};
struct tyObject_Con__wRKI8PR5jcP87QCiheFmFw {
	tySequence__1xFov7v9c2rs44orw6d9bPmw code;
	NI inTryStmt;
	NI interestingInstructions;
	tySequence__ASKXHf9aJJjLj0hSZ39ci19cA blocks;
	tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* owner;
	tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* root;
};
typedef NU8 tyEnum_InstrKind__xkE9c36M77yqw0WqXYKG9aAg;
struct tyObject_Instr__q6FqGagLCvmrvQAVu3oy4g {
	tyEnum_InstrKind__xkE9c36M77yqw0WqXYKG9aAg kind;
union{
	NI dest;
	struct {
	tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* n;
} _kind_2;
};
};
struct tySequence__gGvy9cKEpHEX9cA4gF5mzkxA {
  NI len; tySequence__gGvy9cKEpHEX9cA4gF5mzkxA_Content* p;
};
struct tySequence__qwqHTkRvwhrRyENtudHQ7g {
  NI len; tySequence__qwqHTkRvwhrRyENtudHQ7g_Content* p;
};
struct tyObject_TBlock__LegQi0ajkTVtggrD9avD75Q {
	NIM_BOOL isTryBlock;
union{
	struct {
	tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* label;
	tySequence__gGvy9cKEpHEX9cA4gF5mzkxA breakFixups;
} _isTryBlock_1;
	struct {
	tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* finale;
	tySequence__qwqHTkRvwhrRyENtudHQ7g raiseFixups;
} _isTryBlock_2;
};
};
struct tyObject_ItemId__N3z7uIvKCrk0S9cej5ew0nA {
	NI32 module;
	NI32 item;
};
typedef NU8 tyEnum_TSymKind__9a75lHd9cV25XwN4jXXBmM0Q;
typedef NU16 tyEnum_TMagic__I3BbtzbLAKAfOym58MkGAg;
struct tyObject_TLineInfo__cGj50BJ9bj3Zx09a9bMvKs8HA {
	NU16 line;
	NI16 col;
	NI32 fileIndex;
};
typedef NU64 tySet_tyEnum_TSymFlag__Ii9cPbwXR8ePKVRFOdTKpDg;
typedef NU32 tySet_tyEnum_TOption__LEwWf0yAgZkZx5Got2wGSQ;
typedef NU8 tyEnum_TLocKind__4f5UmCRM8alrCgj32FqIRQ;
typedef NU8 tyEnum_TStorageLoc__f19b6ZkRyh7BNPxlyjRbEGg;
typedef NU16 tySet_tyEnum_TLocFlag__Df76pxukl21zlyRFq9aa0Bg;
struct NimStrPayload {
	NI cap;
	NIM_CHAR data[SEQ_DECL_SIZE];
};
struct NimStringV2 {
	NI len;
	NimStrPayload* p;
};
struct tyObject_TLoc__KvQVlvKb6mbV567NQ0hMOw {
	tyEnum_TLocKind__4f5UmCRM8alrCgj32FqIRQ k;
	tyEnum_TStorageLoc__f19b6ZkRyh7BNPxlyjRbEGg storage;
	tySet_tyEnum_TLocFlag__Df76pxukl21zlyRFq9aa0Bg flags;
	tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* lode;
	NimStringV2 snippet;
};
struct tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg {
	tyObject_ItemId__N3z7uIvKCrk0S9cej5ew0nA itemId;
	tyEnum_TSymKind__9a75lHd9cV25XwN4jXXBmM0Q kind;
union{
	struct {
	tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* gcUnsafetyReason;
	tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* transformedBody;
} _kind_1;
	struct {
	tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* guard;
	NI bitsize;
	NI alignment;
} _kind_2;
};
	tyEnum_TMagic__I3BbtzbLAKAfOym58MkGAg magic;
	tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* typ;
	tyObject_TIdent__LG4CHFyohryWo9bzZeyjDjA* name;
	tyObject_TLineInfo__cGj50BJ9bj3Zx09a9bMvKs8HA info;
	tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* ownerField;
	tySet_tyEnum_TSymFlag__Ii9cPbwXR8ePKVRFOdTKpDg flags;
	tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* ast;
	tySet_tyEnum_TOption__LEwWf0yAgZkZx5Got2wGSQ options;
	NI position;
	NI32 offset;
	NI32 disamb;
	tyObject_TLoc__KvQVlvKb6mbV567NQ0hMOw loc;
	tyObject_TLib__sVuuRvQkiYNOUiPRZhmZig* annex;
	tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* constraint;
	tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* instantiatedFrom;
};
typedef NU32 tySet_tyEnum_TNodeFlag__3UjGgL9bLM4RXBnoZJs9cviw;
typedef NU8 tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw;
struct tySequence__9ahcSjIErJohSBBFLwuF56Q {
  NI len; tySequence__9ahcSjIErJohSBBFLwuF56Q_Content* p;
};
struct tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ {
	tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* typField;
	tyObject_TLineInfo__cGj50BJ9bj3Zx09a9bMvKs8HA info;
	tySet_tyEnum_TNodeFlag__3UjGgL9bLM4RXBnoZJs9cviw flags;
	tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw kind;
union{
	struct {
	NI64 intVal;
} _kind_1;
	struct {
	NF floatVal;
} _kind_2;
	struct {
	NimStringV2 strVal;
} _kind_3;
	struct {
	tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* sym;
} _kind_4;
	struct {
	tyObject_TIdent__LG4CHFyohryWo9bzZeyjDjA* ident;
} _kind_5;
	struct {
	tySequence__9ahcSjIErJohSBBFLwuF56Q sons;
} _kind_6;
};
};
typedef NU8 tySet_tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg[9];
typedef NU8 tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg;
typedef NU8 tyEnum_TCallingConvention__MvGn9cvx9bNYQKo7Hhd5GM9cQ;
typedef NU64 tySet_tyEnum_TTypeFlag__HJaExo9c84N85e9br9anJmV1A;
struct tySequence__d8ZV4IMgHt9biik9cS9a0hrmg {
  NI len; tySequence__d8ZV4IMgHt9biik9cS9a0hrmg_Content* p;
};
struct tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg {
	tyObject_ItemId__N3z7uIvKCrk0S9cej5ew0nA itemId;
	tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg kind;
	tyEnum_TCallingConvention__MvGn9cvx9bNYQKo7Hhd5GM9cQ callConv;
	tySet_tyEnum_TTypeFlag__HJaExo9c84N85e9br9anJmV1A flags;
	tySequence__d8ZV4IMgHt9biik9cS9a0hrmg sons;
	tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* n;
	tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* ownerField;
	tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* sym;
	NI64 size;
	NI16 align;
	NI16 paddingAtEnd;
	tyObject_TLoc__KvQVlvKb6mbV567NQ0hMOw loc;
	tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* typeInst;
	tyObject_ItemId__N3z7uIvKCrk0S9cej5ew0nA uniqueId;
};
typedef NU8 tyEnum_TTypeFlag__HJaExo9c84N85e9br9anJmV1A;
struct tyTuple__MDblJIdBvEzk3cvDpORS3w {
	NI Field0;
	tySequence__9ahcSjIErJohSBBFLwuF56Q Field1;
};
typedef NU8 tyEnum_TSymFlag__Ii9cPbwXR8ePKVRFOdTKpDg;
typedef NU8 tySet_tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw[21];
struct tyObject_RefHeader__GDnGTjNyvwISJbkIvAst3A {
	NI rc;
	NI rootIdx;
};
struct tyObject_NimRawSeq__Tvl1urqmI1tXqzkHPbWVJQ {
	NI len;
	void* p;
};
struct tySequence__1xFov7v9c2rs44orw6d9bPmw_Content { NI cap; tyObject_Instr__q6FqGagLCvmrvQAVu3oy4g data[SEQ_DECL_SIZE]; };
struct tySequence__ASKXHf9aJJjLj0hSZ39ci19cA_Content { NI cap; tyObject_TBlock__LegQi0ajkTVtggrD9avD75Q data[SEQ_DECL_SIZE]; };
struct tySequence__gGvy9cKEpHEX9cA4gF5mzkxA_Content { NI cap; tyTuple__MDblJIdBvEzk3cvDpORS3w data[SEQ_DECL_SIZE]; };
struct tySequence__qwqHTkRvwhrRyENtudHQ7g_Content { NI cap; NI data[SEQ_DECL_SIZE]; };
struct tySequence__9ahcSjIErJohSBBFLwuF56Q_Content { NI cap; tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* data[SEQ_DECL_SIZE]; };
struct tySequence__d8ZV4IMgHt9biik9cS9a0hrmg_Content { NI cap; tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* data[SEQ_DECL_SIZE]; };
static N_INLINE(void, nimZeroMem)(void* p_p0, NI size_p1);
static N_INLINE(void, nimSetMem__system_u2172)(void* a_p0, int v_p1, NI size_p2);
N_LIB_PRIVATE N_NIMCALL(void*, newSeqPayload)(NI cap_p0, NI elemSize_p1, NI elemAlign_p2);
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg*, eqdup___ast_u4580)(tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* src_p0);
N_LIB_PRIVATE N_NIMCALL(void, add__dfa_u830)(tySequence__ASKXHf9aJJjLj0hSZ39ci19cA* x_p0, tyObject_TBlock__LegQi0ajkTVtggrD9avD75Q* y_p1);
N_LIB_PRIVATE N_NIMCALL(void, gen__dfa_u288)(tyObject_Con__wRKI8PR5jcP87QCiheFmFw* c_p0, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* n_p1);
N_LIB_PRIVATE N_NIMCALL(void, genUse__dfa_u1341)(tyObject_Con__wRKI8PR5jcP87QCiheFmFw* c_p0, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* orig_p1);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*, skipTrivials__dfa_u1333)(tyObject_Con__wRKI8PR5jcP87QCiheFmFw* c_p0, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* n_p1);
N_LIB_PRIVATE N_NIMCALL(void, eqcopy___ast_u3255)(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ** dest_p0, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* src_p1);
static N_INLINE(NIM_BOOL*, nimErrorFlag)(void);
N_LIB_PRIVATE N_NIMCALL(void, add__dfa_u119)(tySequence__1xFov7v9c2rs44orw6d9bPmw* x_p0, tyObject_Instr__q6FqGagLCvmrvQAVu3oy4g y_p1);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*, eqdup___ast_u3258)(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* src_p0);
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___ast_u3252)(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* dest_p0);
N_LIB_PRIVATE N_NIMCALL(void, eqcopy___ast_u4577)(tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg** dest_p0, tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* src_p1);
N_LIB_PRIVATE N_NIMCALL(void, genMagic__dfa_u1424)(tyObject_Con__wRKI8PR5jcP87QCiheFmFw* c_p0, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* n_p1, tyEnum_TMagic__I3BbtzbLAKAfOym58MkGAg m_p2);
N_LIB_PRIVATE N_NIMCALL(void, genAndOr__dfa_u990)(tyObject_Con__wRKI8PR5jcP87QCiheFmFw* c_p0, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* n_p1);
N_LIB_PRIVATE N_NIMCALL(NI, forkI__dfa_u113)(tyObject_Con__wRKI8PR5jcP87QCiheFmFw* c_p0);
N_LIB_PRIVATE N_NIMCALL(void, patch__dfa_u263)(tyObject_Con__wRKI8PR5jcP87QCiheFmFw* c_p0, NI p_p1);
N_LIB_PRIVATE N_NIMCALL(void, failedAssertImpl__stdZassertions_u79)(NimStringV2 msg_p0);
N_LIB_PRIVATE N_NIMCALL(void, genDef__dfa_u1366)(tyObject_Con__wRKI8PR5jcP87QCiheFmFw* c_p0, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* orig_p1);
static N_INLINE(NI, len__ast_u3190)(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* n_p0);
N_LIB_PRIVATE N_NIMCALL(void, genCall__dfa_u1391)(tyObject_Con__wRKI8PR5jcP87QCiheFmFw* c_p0, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* n_p1);
N_LIB_PRIVATE N_NIMCALL(void, eqcopy___ast_u3381)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg** dest_p0, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* src_p1);
N_LIB_PRIVATE N_NIMCALL(void, eqsink___ast_u3387)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg** dest_p0, tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* src_p1);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*, skipTypes__ast_u5379)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_p0, tySet_tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg kinds_p1);
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___ast_u3378)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* dest_p0);
static N_INLINE(NI, signatureLen__ast_u5610)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_p0);
static N_INLINE(NIM_BOOL, isOutParam__ast_u7655)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_p0);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, canRaiseConservative__ast_u7504)(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* fn_p0);
N_LIB_PRIVATE N_NIMCALL(void, genBreakOrRaiseAux__dfa_u1054)(tyObject_Con__wRKI8PR5jcP87QCiheFmFw* c_p0, NI i_p1, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* n_p2);
N_LIB_PRIVATE N_NIMCALL(NI, gotoI__dfa_u216)(tyObject_Con__wRKI8PR5jcP87QCiheFmFw* c_p0);
N_LIB_PRIVATE N_NIMCALL(void, add__dfa_u299)(tySequence__qwqHTkRvwhrRyENtudHQ7g* x_p0, NI y_p1);
N_LIB_PRIVATE N_NIMCALL(void, add__ast_u3225)(tySequence__9ahcSjIErJohSBBFLwuF56Q* x_p0, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* y_p1);
N_LIB_PRIVATE N_NIMCALL(void, add__dfa_u1081)(tySequence__gGvy9cKEpHEX9cA4gF5mzkxA* x_p0, tyTuple__MDblJIdBvEzk3cvDpORS3w y_p1);
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___ast_u4574)(tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* dest_p0);
N_LIB_PRIVATE N_NIMCALL(void, genIf__dfa_u852)(tyObject_Con__wRKI8PR5jcP87QCiheFmFw* c_p0, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* n_p1);
static N_INLINE(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*, lastSon__ast_u5208)(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* n_p0);
static N_INLINE(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ**, X5BX5D___ast_u5211)(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ** s_p0, NI s_p0Len_0, NI i_p1);
N_LIB_PRIVATE N_NIMCALL(void, setLen__dfa_u877)(tySequence__1xFov7v9c2rs44orw6d9bPmw* s_p0, NI newlen_p1);
static N_INLINE(NIM_BOOL, nimDecRefIsLastDyn)(void* p_p0);
static N_INLINE(NI, minuspercent___system_u805)(NI x_p0, NI y_p1);
N_LIB_PRIVATE N_NIMCALL(void, unregisterCycle__system_u3122)(tyObject_RefHeader__GDnGTjNyvwISJbkIvAst3A* s_p0);
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___ast_u3270)(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* dest_p0);
N_LIB_PRIVATE N_NIMCALL(void, nimRawDispose)(void* p_p0, NI alignment_p1);
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___dfa_u589)(tySequence__qwqHTkRvwhrRyENtudHQ7g dest_p0);
N_LIB_PRIVATE N_NIMCALL(void, alignedDealloc)(void* p_p0, NI align_p1);
N_LIB_PRIVATE N_NIMCALL(void, genCase__dfa_u995)(tyObject_Con__wRKI8PR5jcP87QCiheFmFw* c_p0, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* n_p1);
N_LIB_PRIVATE N_NIMCALL(void, genWhile__dfa_u821)(tyObject_Con__wRKI8PR5jcP87QCiheFmFw* c_p0, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* n_p1);
N_LIB_PRIVATE N_NIMCALL(NI, genLabel__dfa_u226)(tyObject_Con__wRKI8PR5jcP87QCiheFmFw* c_p0);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isTrue__ast_u7675)(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* n_p0);
N_LIB_PRIVATE N_NIMCALL(void, jmpBack__dfa_u234)(tyObject_Con__wRKI8PR5jcP87QCiheFmFw* c_p0, NI p_p1);
N_LIB_PRIVATE N_NIMCALL(void, popBlock__dfa_u291)(tyObject_Con__wRKI8PR5jcP87QCiheFmFw* c_p0, NI oldLen_p1);
N_LIB_PRIVATE N_NIMCALL(void, eqcopy___dfa_u421)(tySequence__gGvy9cKEpHEX9cA4gF5mzkxA* dest_p0, tySequence__gGvy9cKEpHEX9cA4gF5mzkxA src_p1);
static N_INLINE(NIM_BOOL, sameSeqPayload)(void* x_p0, void* y_p1);
N_LIB_PRIVATE N_NIMCALL(void, setLen__dfa_u439)(tySequence__gGvy9cKEpHEX9cA4gF5mzkxA* s_p0, NI newlen_p1);
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___ast_u3696)(tySequence__9ahcSjIErJohSBBFLwuF56Q dest_p0);
N_LIB_PRIVATE N_NIMCALL(void, eqcopy___ast_u3699)(tySequence__9ahcSjIErJohSBBFLwuF56Q* dest_p0, tySequence__9ahcSjIErJohSBBFLwuF56Q src_p1);
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___dfa_u418)(tySequence__gGvy9cKEpHEX9cA4gF5mzkxA dest_p0);
N_LIB_PRIVATE N_NIMCALL(void, setLen__dfa_u373)(tySequence__ASKXHf9aJJjLj0hSZ39ci19cA* s_p0, NI newlen_p1);
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___ast_u3469)(tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* dest_p0);
N_LIB_PRIVATE N_NIMCALL(void, genBlock__dfa_u1042)(tyObject_Con__wRKI8PR5jcP87QCiheFmFw* c_p0, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* n_p1);
N_LIB_PRIVATE N_NIMCALL(void, genReturn__dfa_u1320)(tyObject_Con__wRKI8PR5jcP87QCiheFmFw* c_p0, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* n_p1);
N_LIB_PRIVATE N_NIMCALL(void, genImplicitReturn__dfa_u1314)(tyObject_Con__wRKI8PR5jcP87QCiheFmFw* c_p0);
N_LIB_PRIVATE N_NIMCALL(void, genRaise__dfa_u1283)(tyObject_Con__wRKI8PR5jcP87QCiheFmFw* c_p0, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* n_p1);
N_LIB_PRIVATE N_NIMCALL(void, genBreak__dfa_u1179)(tyObject_Con__wRKI8PR5jcP87QCiheFmFw* c_p0, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* n_p1);
N_LIB_PRIVATE N_NIMCALL(void, genTry__dfa_u1213)(tyObject_Con__wRKI8PR5jcP87QCiheFmFw* c_p0, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* n_p1);
N_LIB_PRIVATE N_NIMCALL(void, eqwasMoved___ast_u3249)(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ** dest_p0);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*, newNode__ast_u4069)(tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw kind_p0);
N_LIB_PRIVATE N_NIMCALL(void, eqcopy___dfa_u592)(tySequence__qwqHTkRvwhrRyENtudHQ7g* dest_p0, tySequence__qwqHTkRvwhrRyENtudHQ7g src_p1);
N_LIB_PRIVATE N_NIMCALL(void, setLen__dfa_u609)(tySequence__qwqHTkRvwhrRyENtudHQ7g* s_p0, NI newlen_p1);
static N_INLINE(void, nimCopySeqPayload)(void* dest_p0, void* src_p1, NI elemSize_p2, NI elemAlign_p3);
N_LIB_PRIVATE N_NIMCALL(NI, align__system_u1639)(NI address_p0, NI alignment_p1);
static N_INLINE(void, copyMem__system_u1742)(void* dest_p0, void* source_p1, NI size_p2);
static N_INLINE(void, nimCopyMem)(void* dest_p0, void* source_p1, NI size_p2);
static N_INLINE(NI, safeLen__ast_u3197)(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* n_p0);
N_LIB_PRIVATE N_NIMCALL(void, genVarSection__dfa_u1433)(tyObject_Con__wRKI8PR5jcP87QCiheFmFw* c_p0, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* n_p1);
N_LIB_PRIVATE N_NOINLINE(void, raiseAssert__stdZassertions_u15)(NimStringV2 msg_p0);
N_LIB_PRIVATE N_NIMCALL(void, eqwasMoved___dfa_u1522)(tySequence__1xFov7v9c2rs44orw6d9bPmw* dest_p0);
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___dfa_u1693)(tyObject_Con__wRKI8PR5jcP87QCiheFmFw* dest_p0);
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___dfa_u1127)(tySequence__ASKXHf9aJJjLj0hSZ39ci19cA dest_p0);
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___dfa_u1525)(tySequence__1xFov7v9c2rs44orw6d9bPmw dest_p0);
static const struct {
  NI cap; NIM_CHAR data[99+1];
} TM__rmUZTUif19aNVU5raHE2xtA_2 = { 99 | NIM_STRLIT_FLAG, "dfa.nim(103, 3) `low(int) div 2 + 1 < c.code.len - p.int and c.code.len - p.int < high(int) div 2` " };
static const NimStringV2 TM__rmUZTUif19aNVU5raHE2xtA_3 = {99, (NimStrPayload*)&TM__rmUZTUif19aNVU5raHE2xtA_2};
static NIM_CONST tySet_tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg TM__rmUZTUif19aNVU5raHE2xtA_4 = {
0x10, 0xa9, 0x00, 0x00, 0x00, 0x60, 0x80, 0x00,
0x00}
;
static NIM_CONST tySet_tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw TM__rmUZTUif19aNVU5raHE2xtA_5 = {
0x00, 0x00, 0x00, 0x00, 0x00, 0xe4, 0x00, 0x80,
0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00}
;
static NIM_CONST tySet_tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg TM__rmUZTUif19aNVU5raHE2xtA_6 = {
0x10, 0xa8, 0x90, 0x00, 0x00, 0x60, 0x80, 0x00,
0x00}
;
static const struct {
  NI cap; NIM_CHAR data[99+1];
} TM__rmUZTUif19aNVU5raHE2xtA_7 = { 99 | NIM_STRLIT_FLAG, "dfa.nim(103, 3) `low(int) div 2 + 1 < p.int - c.code.len and p.int - c.code.len < high(int) div 2` " };
static const NimStringV2 TM__rmUZTUif19aNVU5raHE2xtA_8 = {99, (NimStrPayload*)&TM__rmUZTUif19aNVU5raHE2xtA_7};
static const struct {
  NI cap; NIM_CHAR data[57+1];
} TM__rmUZTUif19aNVU5raHE2xtA_9 = { 57 | NIM_STRLIT_FLAG, "dfa construction pass requires the elimination of \'defer\'" };
static const NimStringV2 TM__rmUZTUif19aNVU5raHE2xtA_10 = {57, (NimStrPayload*)&TM__rmUZTUif19aNVU5raHE2xtA_9};
extern NIM_BOOL nimInErrorMode__system_u4138;
static N_INLINE(void, nimSetMem__system_u2172)(void* a_p0, int v_p1, NI size_p2) {
	void* T1_;
	T1_ = (void*)0;
	T1_ = memset(a_p0, v_p1, ((size_t) (size_p2)));
}
static N_INLINE(void, nimZeroMem)(void* p_p0, NI size_p1) {
	nimSetMem__system_u2172(p_p0, ((int)0), size_p1);
}
static N_INLINE(NIM_BOOL*, nimErrorFlag)(void) {
	NIM_BOOL* result;
	result = (&nimInErrorMode__system_u4138);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*, skipTrivials__dfa_u1333)(tyObject_Con__wRKI8PR5jcP87QCiheFmFw* c_p0, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* n_p1) {
	tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = NIM_NIL;
	eqcopy___ast_u3255(&result, n_p1);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	{
		while (1) {
			switch ((*result).kind) {
			case ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)45) ... ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)47):
			case ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)63) ... ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)67):
			{
				eqcopy___ast_u3255(&result, (*result)._kind_6.sons.p->data[((NI)0)]);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			}
			break;
			case ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)42):
			{
				gen__dfa_u288(c_p0, (*result)._kind_6.sons.p->data[((NI)1)]);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				eqcopy___ast_u3255(&result, (*result)._kind_6.sons.p->data[((NI)0)]);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			}
			break;
			case ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)58) ... ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)59):
			{
				eqcopy___ast_u3255(&result, (*result)._kind_6.sons.p->data[((NI)1)]);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			}
			break;
			default:
			{
				goto LA1;
			}
			break;
			}
		}
	} LA1: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, genUse__dfa_u1341)(tyObject_Con__wRKI8PR5jcP87QCiheFmFw* c_p0, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* orig_p1) {
	tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* n_1;
NIM_BOOL oldNimErrFin1_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	n_1 = NIM_NIL;
	n_1 = skipTrivials__dfa_u1333(c_p0, orig_p1);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	{
		if (!((*n_1).kind == ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)3))) goto LA4_;
		{
			NIM_BOOL T8_;
			tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* colontmpD_;
			tyObject_Instr__q6FqGagLCvmrvQAVu3oy4g T12_;
			T8_ = (NIM_BOOL)0;
			T8_ = ((*(*n_1)._kind_4.sym).kind == ((tyEnum_TSymKind__9a75lHd9cV25XwN4jXXBmM0Q)8) || (*(*n_1)._kind_4.sym).kind == ((tyEnum_TSymKind__9a75lHd9cV25XwN4jXXBmM0Q)11) || (*(*n_1)._kind_4.sym).kind == ((tyEnum_TSymKind__9a75lHd9cV25XwN4jXXBmM0Q)9) || (*(*n_1)._kind_4.sym).kind == ((tyEnum_TSymKind__9a75lHd9cV25XwN4jXXBmM0Q)3) || (*(*n_1)._kind_4.sym).kind == ((tyEnum_TSymKind__9a75lHd9cV25XwN4jXXBmM0Q)21) || (*(*n_1)._kind_4.sym).kind == ((tyEnum_TSymKind__9a75lHd9cV25XwN4jXXBmM0Q)5));
			if (!(T8_)) goto LA9_;
			T8_ = ((*n_1)._kind_4.sym == (*c_p0).root);
LA9_: ;
			if (!T8_) goto LA10_;
			nimZeroMem((void*)(&T12_), sizeof(tyObject_Instr__q6FqGagLCvmrvQAVu3oy4g));
			T12_.kind = ((tyEnum_InstrKind__xkE9c36M77yqw0WqXYKG9aAg)4);
			colontmpD_ = eqdup___ast_u3258(orig_p1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			T12_._kind_2.n = colontmpD_;
			add__dfa_u119((&(*c_p0).code), T12_);
			(*c_p0).interestingInstructions += ((NI)1);
		}
LA10_: ;
	}
	goto LA2_;
LA4_: ;
	{
		gen__dfa_u288(c_p0, n_1);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	}
LA2_: ;
	{
		LA1_:;
	}
	{
		oldNimErrFin1_ = *nimErr_; *nimErr_ = NIM_FALSE;
		eqdestroy___ast_u3252(n_1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		*nimErr_ = oldNimErrFin1_;
	}
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(NI, forkI__dfa_u113)(tyObject_Con__wRKI8PR5jcP87QCiheFmFw* c_p0) {
	NI result;
	NI T1_;
	tyObject_Instr__q6FqGagLCvmrvQAVu3oy4g T2_;
	T1_ = (*c_p0).code.len;
	result = T1_;
	nimZeroMem((void*)(&T2_), sizeof(tyObject_Instr__q6FqGagLCvmrvQAVu3oy4g));
	T2_.kind = ((tyEnum_InstrKind__xkE9c36M77yqw0WqXYKG9aAg)2);
	T2_.dest = ((NI)0);
	add__dfa_u119((&(*c_p0).code), T2_);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, patch__dfa_u263)(tyObject_Con__wRKI8PR5jcP87QCiheFmFw* c_p0, NI p_p1) {
	NI T9_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	{
		NIM_BOOL T3_;
		NI T4_;
		NI T6_;
		T3_ = (NIM_BOOL)0;
		T4_ = (*c_p0).code.len;
		T3_ = (((NI)IL64(-4611686018427387903)) < (NI)(T4_ - p_p1));
		if (!(T3_)) goto LA5_;
		T6_ = (*c_p0).code.len;
		T3_ = ((NI)(T6_ - p_p1) < ((NI)IL64(4611686018427387903)));
LA5_: ;
		if (!!(T3_)) goto LA7_;
		failedAssertImpl__stdZassertions_u79(TM__rmUZTUif19aNVU5raHE2xtA_3);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
LA7_: ;
	T9_ = (*c_p0).code.len;
	(*c_p0).code.p->data[p_p1].dest = (NI)(T9_ - p_p1);
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, genAndOr__dfa_u990)(tyObject_Con__wRKI8PR5jcP87QCiheFmFw* c_p0, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* n_p1) {
	NI lab1X60gensym23__1;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	gen__dfa_u288(c_p0, (*n_p1)._kind_6.sons.p->data[((NI)1)]);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	lab1X60gensym23__1 = forkI__dfa_u113(c_p0);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	gen__dfa_u288(c_p0, (*n_p1)._kind_6.sons.p->data[((NI)2)]);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	patch__dfa_u263(c_p0, lab1X60gensym23__1);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, genDef__dfa_u1366)(tyObject_Con__wRKI8PR5jcP87QCiheFmFw* c_p0, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* orig_p1) {
	tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* n_1;
NIM_BOOL oldNimErrFin1_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	n_1 = NIM_NIL;
	n_1 = skipTrivials__dfa_u1333(c_p0, orig_p1);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	{
		NIM_BOOL T4_;
		T4_ = (NIM_BOOL)0;
		T4_ = ((*n_1).kind == ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)3));
		if (!(T4_)) goto LA5_;
		T4_ = ((*(*n_1)._kind_4.sym).kind == ((tyEnum_TSymKind__9a75lHd9cV25XwN4jXXBmM0Q)8) || (*(*n_1)._kind_4.sym).kind == ((tyEnum_TSymKind__9a75lHd9cV25XwN4jXXBmM0Q)11) || (*(*n_1)._kind_4.sym).kind == ((tyEnum_TSymKind__9a75lHd9cV25XwN4jXXBmM0Q)9) || (*(*n_1)._kind_4.sym).kind == ((tyEnum_TSymKind__9a75lHd9cV25XwN4jXXBmM0Q)3) || (*(*n_1)._kind_4.sym).kind == ((tyEnum_TSymKind__9a75lHd9cV25XwN4jXXBmM0Q)21) || (*(*n_1)._kind_4.sym).kind == ((tyEnum_TSymKind__9a75lHd9cV25XwN4jXXBmM0Q)5));
LA5_: ;
		if (!T4_) goto LA6_;
		{
			tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* colontmpD_;
			tyObject_Instr__q6FqGagLCvmrvQAVu3oy4g T12_;
			if (!((*n_1)._kind_4.sym == (*c_p0).root)) goto LA10_;
			nimZeroMem((void*)(&T12_), sizeof(tyObject_Instr__q6FqGagLCvmrvQAVu3oy4g));
			T12_.kind = ((tyEnum_InstrKind__xkE9c36M77yqw0WqXYKG9aAg)3);
			colontmpD_ = eqdup___ast_u3258(orig_p1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			T12_._kind_2.n = colontmpD_;
			add__dfa_u119((&(*c_p0).code), T12_);
			(*c_p0).interestingInstructions += ((NI)1);
		}
LA10_: ;
	}
LA6_: ;
	{
		LA1_:;
	}
	{
		oldNimErrFin1_ = *nimErr_; *nimErr_ = NIM_FALSE;
		eqdestroy___ast_u3252(n_1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		*nimErr_ = oldNimErrFin1_;
	}
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
}
static N_INLINE(NI, len__ast_u3190)(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* n_p0) {
	NI result;
	NI T1_;
	T1_ = (*n_p0)._kind_6.sons.len;
	result = T1_;
	return result;
}
static N_INLINE(NI, signatureLen__ast_u5610)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_p0) {
	NI result;
	NI T1_;
	T1_ = (*t_p0).sons.len;
	result = T1_;
	return result;
}
static N_INLINE(NIM_BOOL, isOutParam__ast_u7655)(tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_p0) {
	NIM_BOOL result;
	result = (((*t_p0).flags &((NU64)1<<((NU)((((tyEnum_TTypeFlag__HJaExo9c84N85e9br9anJmV1A)45)))&63U)))!=0);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NI, gotoI__dfa_u216)(tyObject_Con__wRKI8PR5jcP87QCiheFmFw* c_p0) {
	NI result;
	NI T1_;
	tyObject_Instr__q6FqGagLCvmrvQAVu3oy4g T2_;
	T1_ = (*c_p0).code.len;
	result = T1_;
	nimZeroMem((void*)(&T2_), sizeof(tyObject_Instr__q6FqGagLCvmrvQAVu3oy4g));
	T2_.kind = ((tyEnum_InstrKind__xkE9c36M77yqw0WqXYKG9aAg)0);
	T2_.dest = ((NI)0);
	add__dfa_u119((&(*c_p0).code), T2_);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, genBreakOrRaiseAux__dfa_u1054)(tyObject_Con__wRKI8PR5jcP87QCiheFmFw* c_p0, NI i_p1, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* n_p2) {
	NI lab1_1;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	lab1_1 = gotoI__dfa_u216(c_p0);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	{
		if (!(*c_p0).blocks.p->data[i_p1].isTryBlock) goto LA3_;
		add__dfa_u299((&(*c_p0).blocks.p->data[i_p1]._isTryBlock_2.raiseFixups), lab1_1);
	}
	goto LA1_;
LA3_: ;
	{
		tySequence__9ahcSjIErJohSBBFLwuF56Q trailingFinales_1;
		tyTuple__MDblJIdBvEzk3cvDpORS3w T18_;
		tySequence__9ahcSjIErJohSBBFLwuF56Q blitTmp_1;
		trailingFinales_1.len = 0; trailingFinales_1.p = NIM_NIL;
		trailingFinales_1.len = 0; trailingFinales_1.p = (tySequence__9ahcSjIErJohSBBFLwuF56Q_Content*) newSeqPayload(0, sizeof(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*), NIM_ALIGNOF(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*));
		{
			if (!(((NI)0) < (*c_p0).inTryStmt)) goto LA8_;
			{
				NI b_1;
				NI colontmp_;
				NI T11_;
				NI res_1;
				b_1 = (NI)0;
				colontmp_ = (NI)0;
				T11_ = ((*c_p0).blocks.len-1);
				colontmp_ = T11_;
				res_1 = colontmp_;
				{
					while (1) {
						if (!(i_p1 <= res_1)) goto LA13;
						b_1 = ((NI) (res_1));
						{
							tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* colontmpD_;
							if (!(*c_p0).blocks.p->data[b_1].isTryBlock) goto LA16_;
							colontmpD_ = eqdup___ast_u3258((*c_p0).blocks.p->data[b_1]._isTryBlock_2.finale);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							add__ast_u3225((&trailingFinales_1), colontmpD_);
						}
LA16_: ;
						res_1 -= ((NI)1);
					} LA13: ;
				}
			}
		}
LA8_: ;
		T18_.Field0 = lab1_1;
		blitTmp_1 = trailingFinales_1;
		T18_.Field1 = blitTmp_1;
		add__dfa_u1081((&(*c_p0).blocks.p->data[i_p1]._isTryBlock_1.breakFixups), T18_);
	}
LA1_: ;
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, genCall__dfa_u1391)(tyObject_Con__wRKI8PR5jcP87QCiheFmFw* c_p0, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* n_p1) {
	tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* t_1;
NIM_BOOL oldNimErrFin1_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	t_1 = NIM_NIL;
	gen__dfa_u288(c_p0, (*n_p1)._kind_6.sons.p->data[((NI)0)]);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	eqcopy___ast_u3381(&t_1, (*(*n_p1)._kind_6.sons.p->data[((NI)0)]).typField);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	{
		tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* T6_;
		if (!!((t_1 == ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL)))) goto LA4_;
		T6_ = NIM_NIL;
		T6_ = skipTypes__ast_u5379(t_1, TM__rmUZTUif19aNVU5raHE2xtA_4);
		if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___ast_u3378(T6_); goto LA1_;}
		eqsink___ast_u3387(&t_1, T6_);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	}
LA4_: ;
	{
		NI i_1;
		NI colontmp_;
		NI i_2;
		i_1 = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = len__ast_u3190(n_p1);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		i_2 = ((NI)1);
		{
			while (1) {
				if (!(i_2 < colontmp_)) goto LA9;
				i_1 = i_2;
				gen__dfa_u288(c_p0, (*n_p1)._kind_6.sons.p->data[i_1]);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				{
					NIM_BOOL T12_;
					NIM_BOOL T13_;
					NI T15_;
					T12_ = (NIM_BOOL)0;
					T13_ = (NIM_BOOL)0;
					T13_ = !((t_1 == ((tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg*) NIM_NIL)));
					if (!(T13_)) goto LA14_;
					T15_ = (NI)0;
					T15_ = signatureLen__ast_u5610(t_1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
					T13_ = (i_1 < T15_);
LA14_: ;
					T12_ = T13_;
					if (!(T12_)) goto LA16_;
					T12_ = isOutParam__ast_u7655((*t_1).sons.p->data[i_1]);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
LA16_: ;
					if (!T12_) goto LA17_;
					genDef__dfa_u1366(c_p0, (*n_p1)._kind_6.sons.p->data[i_1]);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				}
LA17_: ;
				i_2 += ((NI)1);
			} LA9: ;
		}
	}
	{
		NIM_BOOL T21_;
		NI lab1X60gensym74__1;
		T21_ = (NIM_BOOL)0;
		T21_ = (((NI)0) < (*c_p0).inTryStmt);
		if (!(T21_)) goto LA22_;
		T21_ = canRaiseConservative__ast_u7504((*n_p1)._kind_6.sons.p->data[((NI)0)]);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
LA22_: ;
		if (!T21_) goto LA23_;
		(*c_p0).interestingInstructions += ((NI)1);
		lab1X60gensym74__1 = forkI__dfa_u113(c_p0);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		{
			NI i_3;
			NI colontmp__2;
			NI T26_;
			NI res_1;
			i_3 = (NI)0;
			colontmp__2 = (NI)0;
			T26_ = ((*c_p0).blocks.len-1);
			colontmp__2 = T26_;
			res_1 = colontmp__2;
			{
				while (1) {
					if (!(((NI)0) <= res_1)) goto LA28;
					i_3 = ((NI) (res_1));
					{
						if (!(*c_p0).blocks.p->data[i_3].isTryBlock) goto LA31_;
						genBreakOrRaiseAux__dfa_u1054(c_p0, i_3, n_p1);
						if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
						goto LA25;
					}
LA31_: ;
					res_1 -= ((NI)1);
				} LA28: ;
			}
		} LA25: ;
		patch__dfa_u263(c_p0, lab1X60gensym74__1);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	}
LA23_: ;
	{
		LA1_:;
	}
	{
		oldNimErrFin1_ = *nimErr_; *nimErr_ = NIM_FALSE;
		eqdestroy___ast_u3378(t_1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		*nimErr_ = oldNimErrFin1_;
	}
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, genMagic__dfa_u1424)(tyObject_Con__wRKI8PR5jcP87QCiheFmFw* c_p0, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* n_p1, tyEnum_TMagic__I3BbtzbLAKAfOym58MkGAg m_p2) {
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	switch (m_p2) {
	case ((tyEnum_TMagic__I3BbtzbLAKAfOym58MkGAg)106):
	case ((tyEnum_TMagic__I3BbtzbLAKAfOym58MkGAg)107):
	{
		genAndOr__dfa_u990(c_p0, n_p1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TMagic__I3BbtzbLAKAfOym58MkGAg)32):
	case ((tyEnum_TMagic__I3BbtzbLAKAfOym58MkGAg)33):
	{
		genDef__dfa_u1366(c_p0, (*n_p1)._kind_6.sons.p->data[((NI)1)]);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		{
			NI i_1;
			NI colontmp_;
			NI i_2;
			i_1 = (NI)0;
			colontmp_ = (NI)0;
			colontmp_ = len__ast_u3190(n_p1);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			i_2 = ((NI)2);
			{
				while (1) {
					if (!(i_2 < colontmp_)) goto LA5;
					i_1 = i_2;
					gen__dfa_u288(c_p0, (*n_p1)._kind_6.sons.p->data[i_1]);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					i_2 += ((NI)1);
				} LA5: ;
			}
		}
	}
	break;
	default:
	{
		genCall__dfa_u1391(c_p0, n_p1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	}
	}BeforeRet_: ;
}
static N_INLINE(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ**, X5BX5D___ast_u5211)(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ** s_p0, NI s_p0Len_0, NI i_p1) {
	tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ** result;
	result = &s_p0[(NI)(s_p0Len_0 - i_p1)];
	return result;
}
static N_INLINE(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ*, lastSon__ast_u5208)(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* n_p0) {
	tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* result;
	tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ** T1_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = NIM_NIL;
	T1_ = (tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ**)0;
	T1_ = X5BX5D___ast_u5211((((*n_p0)._kind_6.sons).p) ? ((*n_p0)._kind_6.sons.p->data) : NIM_NIL, (*n_p0)._kind_6.sons.len, ((NI)1));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	eqcopy___ast_u3255(&result, (*T1_));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
static N_INLINE(NI, minuspercent___system_u805)(NI x_p0, NI y_p1) {
	NI result;
	result = ((NI) ((NU)((NU64)(((NU) (x_p0))) - (NU64)(((NU) (y_p1))))));
	return result;
}
static N_INLINE(NIM_BOOL, nimDecRefIsLastDyn)(void* p_p0) {
	NIM_BOOL result;
	result = NIM_FALSE;
	{
		tyObject_RefHeader__GDnGTjNyvwISJbkIvAst3A* cell_1;
		NI T5_;
		if (!!((p_p0 == NIM_NIL))) goto LA3_;
		T5_ = (NI)0;
		T5_ = minuspercent___system_u805(((NI) (ptrdiff_t) (p_p0)), ((NI)16));
		cell_1 = ((tyObject_RefHeader__GDnGTjNyvwISJbkIvAst3A*) (T5_));
		{
			if (!((NI)((*cell_1).rc & ((NI)-16)) == ((NI)0))) goto LA8_;
			result = NIM_TRUE;
		}
		goto LA6_;
LA8_: ;
		{
			(*cell_1).rc = minuspercent___system_u805((*cell_1).rc, ((NI)16));
		}
LA6_: ;
		{
			if (!result) goto LA13_;
			{
				if (!(((NI)0) < (*cell_1).rootIdx)) goto LA17_;
				unregisterCycle__system_u3122(cell_1);
			}
LA17_: ;
		}
LA13_: ;
	}
LA3_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___dfa_u164)(tyObject_Instr__q6FqGagLCvmrvQAVu3oy4g dest_p0) {
	switch (dest_p0.kind) {
	case ((tyEnum_InstrKind__xkE9c36M77yqw0WqXYKG9aAg)0):
	case ((tyEnum_InstrKind__xkE9c36M77yqw0WqXYKG9aAg)2):
	case ((tyEnum_InstrKind__xkE9c36M77yqw0WqXYKG9aAg)1):
	{
	}
	break;
	case ((tyEnum_InstrKind__xkE9c36M77yqw0WqXYKG9aAg)3):
	case ((tyEnum_InstrKind__xkE9c36M77yqw0WqXYKG9aAg)4):
	{
		{
			NIM_BOOL T5_;
			T5_ = (NIM_BOOL)0;
			T5_ = nimDecRefIsLastDyn(dest_p0._kind_2.n);
			if (!T5_) goto LA6_;
			eqdestroy___ast_u3270((&(*dest_p0._kind_2.n)));
			nimRawDispose(dest_p0._kind_2.n, ((NI)8));
		}
LA6_: ;
	}
	break;
	default: __builtin_unreachable();
	}
}
N_LIB_PRIVATE N_NIMCALL(void, eqwasMoved___dfa_u161)(tyObject_Instr__q6FqGagLCvmrvQAVu3oy4g* dest_p0) {
	(*dest_p0).kind = 0;
	switch ((*dest_p0).kind) {
	case ((tyEnum_InstrKind__xkE9c36M77yqw0WqXYKG9aAg)0):
	case ((tyEnum_InstrKind__xkE9c36M77yqw0WqXYKG9aAg)2):
	case ((tyEnum_InstrKind__xkE9c36M77yqw0WqXYKG9aAg)1):
	{
		(*dest_p0).dest = 0;
	}
	break;
	case ((tyEnum_InstrKind__xkE9c36M77yqw0WqXYKG9aAg)3):
	case ((tyEnum_InstrKind__xkE9c36M77yqw0WqXYKG9aAg)4):
	{
		(*dest_p0)._kind_2.n = 0;
	}
	break;
	default: __builtin_unreachable();
	}
}
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___dfa_u589)(tySequence__qwqHTkRvwhrRyENtudHQ7g dest_p0) {
	if (dest_p0.p && !(dest_p0.p->cap & NIM_STRLIT_FLAG)) {
 alignedDealloc(dest_p0.p, NIM_ALIGNOF(NI));
}
}
N_LIB_PRIVATE N_NIMCALL(void, genIf__dfa_u852)(tyObject_Con__wRKI8PR5jcP87QCiheFmFw* c_p0, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* n_p1) {
	tySequence__qwqHTkRvwhrRyENtudHQ7g endings_1;
	NI oldInteresting_1;
	NI oldLen_1;
	NI T2_;
NIM_BOOL oldNimErrFin12_;
NIM_BOOL oldNimErrFin6_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	endings_1.len = 0; endings_1.p = NIM_NIL;
	endings_1.len = 0; endings_1.p = (tySequence__qwqHTkRvwhrRyENtudHQ7g_Content*) newSeqPayload(0, sizeof(NI), NIM_ALIGNOF(NI));
	oldInteresting_1 = (*c_p0).interestingInstructions;
	T2_ = (*c_p0).code.len;
	oldLen_1 = T2_;
	{
		NI i_1;
		NI colontmp_;
		NI i_2;
		i_1 = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = len__ast_u3190(n_p1);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		i_2 = ((NI)0);
		{
			while (1) {
				tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* it_1;
				if (!(i_2 < colontmp_)) goto LA5;
				it_1 = NIM_NIL;
				i_1 = i_2;
				eqcopy___ast_u3255(&it_1, (*n_p1)._kind_6.sons.p->data[i_1]);
				if (NIM_UNLIKELY(*nimErr_)) goto LA6_;
				gen__dfa_u288(c_p0, (*it_1)._kind_6.sons.p->data[((NI)0)]);
				if (NIM_UNLIKELY(*nimErr_)) goto LA6_;
				{
					NI T9_;
					tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* colontmpD_;
					NI lab1X60gensym21__1;
					NI T13_;
					T9_ = (NI)0;
					T9_ = len__ast_u3190(it_1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA6_;
					if (!(T9_ == ((NI)2))) goto LA10_;
					colontmpD_ = NIM_NIL;
					lab1X60gensym21__1 = forkI__dfa_u113(c_p0);
					if (NIM_UNLIKELY(*nimErr_)) goto LA12_;
					colontmpD_ = lastSon__ast_u5208(it_1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA12_;
					gen__dfa_u288(c_p0, colontmpD_);
					if (NIM_UNLIKELY(*nimErr_)) goto LA12_;
					T13_ = (NI)0;
					T13_ = gotoI__dfa_u216(c_p0);
					if (NIM_UNLIKELY(*nimErr_)) goto LA12_;
					add__dfa_u299((&endings_1), T13_);
					patch__dfa_u263(c_p0, lab1X60gensym21__1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA12_;
					{
						LA12_:;
					}
					{
						oldNimErrFin12_ = *nimErr_; *nimErr_ = NIM_FALSE;
						eqdestroy___ast_u3252(colontmpD_);
						if (NIM_UNLIKELY(*nimErr_)) goto LA6_;
						*nimErr_ = oldNimErrFin12_;
					}
					if (NIM_UNLIKELY(*nimErr_)) goto LA6_;
				}
LA10_: ;
				i_2 += ((NI)1);
				{
					LA6_:;
				}
				{
					oldNimErrFin6_ = *nimErr_; *nimErr_ = NIM_FALSE;
					eqdestroy___ast_u3252(it_1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
					*nimErr_ = oldNimErrFin6_;
				}
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			} LA5: ;
		}
	}
	{
		if (!(oldInteresting_1 == (*c_p0).interestingInstructions)) goto LA20_;
		setLen__dfa_u877((&(*c_p0).code), (oldLen_1));
	}
	goto LA18_;
LA20_: ;
	{
		{
			NI i_3;
			NI colontmp__2;
			NI T24_;
			NI res_1;
			i_3 = (NI)0;
			colontmp__2 = (NI)0;
			T24_ = (endings_1.len-1);
			colontmp__2 = T24_;
			res_1 = colontmp__2;
			{
				while (1) {
					if (!(((NI)0) <= res_1)) goto LA26;
					i_3 = ((NI) (res_1));
					patch__dfa_u263(c_p0, endings_1.p->data[i_3]);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
					res_1 -= ((NI)1);
				} LA26: ;
			}
		}
	}
LA18_: ;
	{
		LA1_:;
	}
	{
		eqdestroy___dfa_u589(endings_1);
	}
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, genCase__dfa_u995)(tyObject_Con__wRKI8PR5jcP87QCiheFmFw* c_p0, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* n_p1) {
	tyObject_TType__8qAQZfpTDk89aeclTNn4d9cg* colontmpD_;
	tySequence__qwqHTkRvwhrRyENtudHQ7g endings_1;
	NIM_BOOL isExhaustive_1;
	NI oldInteresting_1;
	NI oldLen_1;
	NI T2_;
NIM_BOOL oldNimErrFin17_;
NIM_BOOL oldNimErrFin21_;
NIM_BOOL oldNimErrFin6_;
NIM_BOOL oldNimErrFin1_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	colontmpD_ = NIM_NIL;
	endings_1.len = 0; endings_1.p = NIM_NIL;
	colontmpD_ = skipTypes__ast_u5379((*(*n_p1)._kind_6.sons.p->data[((NI)0)]).typField, TM__rmUZTUif19aNVU5raHE2xtA_6);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	isExhaustive_1 = !(((*colontmpD_).kind >= ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)36) && (*colontmpD_).kind <= ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)39) || (*colontmpD_).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)28) || (*colontmpD_).kind == ((tyEnum_TTypeKind__DYVdhzQ9cMfgoirdzGDwSCg)29)));
	endings_1.len = 0; endings_1.p = (tySequence__qwqHTkRvwhrRyENtudHQ7g_Content*) newSeqPayload(0, sizeof(NI), NIM_ALIGNOF(NI));
	gen__dfa_u288(c_p0, (*n_p1)._kind_6.sons.p->data[((NI)0)]);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	oldInteresting_1 = (*c_p0).interestingInstructions;
	T2_ = (*c_p0).code.len;
	oldLen_1 = T2_;
	{
		NI i_1;
		NI colontmp_;
		NI i_2;
		i_1 = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = len__ast_u3190(n_p1);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		i_2 = ((NI)1);
		{
			while (1) {
				tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* it_1;
				if (!(i_2 < colontmp_)) goto LA5;
				it_1 = NIM_NIL;
				i_1 = i_2;
				eqcopy___ast_u3255(&it_1, (*n_p1)._kind_6.sons.p->data[i_1]);
				if (NIM_UNLIKELY(*nimErr_)) goto LA6_;
				{
					NIM_BOOL T9_;
					NI T10_;
					NIM_BOOL T12_;
					NI T13_;
					tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* colontmpD__2;
					T9_ = (NIM_BOOL)0;
					T10_ = (NI)0;
					T10_ = len__ast_u3190(it_1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA6_;
					T9_ = (T10_ == ((NI)1));
					if (T9_) goto LA11_;
					T12_ = (NIM_BOOL)0;
					T13_ = (NI)0;
					T13_ = len__ast_u3190(n_p1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA6_;
					T12_ = (i_1 == (NI)(T13_ - ((NI)1)));
					if (!(T12_)) goto LA14_;
					T12_ = isExhaustive_1;
LA14_: ;
					T9_ = T12_;
LA11_: ;
					if (!T9_) goto LA15_;
					colontmpD__2 = NIM_NIL;
					colontmpD__2 = lastSon__ast_u5208(it_1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA17_;
					gen__dfa_u288(c_p0, colontmpD__2);
					if (NIM_UNLIKELY(*nimErr_)) goto LA17_;
					{
						LA17_:;
					}
					{
						oldNimErrFin17_ = *nimErr_; *nimErr_ = NIM_FALSE;
						eqdestroy___ast_u3252(colontmpD__2);
						if (NIM_UNLIKELY(*nimErr_)) goto LA6_;
						*nimErr_ = oldNimErrFin17_;
					}
					if (NIM_UNLIKELY(*nimErr_)) goto LA6_;
				}
				goto LA7_;
LA15_: ;
				{
					tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* colontmpD__3;
					NI lab1X60gensym30__1;
					NI T22_;
					colontmpD__3 = NIM_NIL;
					lab1X60gensym30__1 = forkI__dfa_u113(c_p0);
					if (NIM_UNLIKELY(*nimErr_)) goto LA21_;
					colontmpD__3 = lastSon__ast_u5208(it_1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA21_;
					gen__dfa_u288(c_p0, colontmpD__3);
					if (NIM_UNLIKELY(*nimErr_)) goto LA21_;
					T22_ = (NI)0;
					T22_ = gotoI__dfa_u216(c_p0);
					if (NIM_UNLIKELY(*nimErr_)) goto LA21_;
					add__dfa_u299((&endings_1), T22_);
					patch__dfa_u263(c_p0, lab1X60gensym30__1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA21_;
					{
						LA21_:;
					}
					{
						oldNimErrFin21_ = *nimErr_; *nimErr_ = NIM_FALSE;
						eqdestroy___ast_u3252(colontmpD__3);
						if (NIM_UNLIKELY(*nimErr_)) goto LA6_;
						*nimErr_ = oldNimErrFin21_;
					}
					if (NIM_UNLIKELY(*nimErr_)) goto LA6_;
				}
LA7_: ;
				i_2 += ((NI)1);
				{
					LA6_:;
				}
				{
					oldNimErrFin6_ = *nimErr_; *nimErr_ = NIM_FALSE;
					eqdestroy___ast_u3252(it_1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
					*nimErr_ = oldNimErrFin6_;
				}
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			} LA5: ;
		}
	}
	{
		if (!(oldInteresting_1 == (*c_p0).interestingInstructions)) goto LA29_;
		setLen__dfa_u877((&(*c_p0).code), (oldLen_1));
	}
	goto LA27_;
LA29_: ;
	{
		{
			NI i_3;
			NI colontmp__2;
			NI T33_;
			NI res_1;
			i_3 = (NI)0;
			colontmp__2 = (NI)0;
			T33_ = (endings_1.len-1);
			colontmp__2 = T33_;
			res_1 = colontmp__2;
			{
				while (1) {
					if (!(((NI)0) <= res_1)) goto LA35;
					i_3 = ((NI) (res_1));
					patch__dfa_u263(c_p0, endings_1.p->data[i_3]);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
					res_1 -= ((NI)1);
				} LA35: ;
			}
		}
	}
LA27_: ;
	{
		LA1_:;
	}
	{
		oldNimErrFin1_ = *nimErr_; *nimErr_ = NIM_FALSE;
		eqdestroy___dfa_u589(endings_1);
		eqdestroy___ast_u3378(colontmpD_);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		*nimErr_ = oldNimErrFin1_;
	}
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(NI, genLabel__dfa_u226)(tyObject_Con__wRKI8PR5jcP87QCiheFmFw* c_p0) {
	NI result;
	NI T1_;
	T1_ = (*c_p0).code.len;
	result = T1_;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, jmpBack__dfa_u234)(tyObject_Con__wRKI8PR5jcP87QCiheFmFw* c_p0, NI p_p1) {
	tyObject_Instr__q6FqGagLCvmrvQAVu3oy4g T1_;
	NI T10_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	nimZeroMem((void*)(&T1_), sizeof(tyObject_Instr__q6FqGagLCvmrvQAVu3oy4g));
	T1_.kind = ((tyEnum_InstrKind__xkE9c36M77yqw0WqXYKG9aAg)1);
	{
		NIM_BOOL T4_;
		NI T5_;
		NI T7_;
		T4_ = (NIM_BOOL)0;
		T5_ = (*c_p0).code.len;
		T4_ = (((NI)IL64(-4611686018427387903)) < (NI)(p_p1 - T5_));
		if (!(T4_)) goto LA6_;
		T7_ = (*c_p0).code.len;
		T4_ = ((NI)(p_p1 - T7_) < ((NI)IL64(4611686018427387903)));
LA6_: ;
		if (!!(T4_)) goto LA8_;
		failedAssertImpl__stdZassertions_u79(TM__rmUZTUif19aNVU5raHE2xtA_8);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
LA8_: ;
	T10_ = (*c_p0).code.len;
	T1_.dest = (NI)(p_p1 - T10_);
	add__dfa_u119((&(*c_p0).code), T1_);
	}BeforeRet_: ;
}
static N_INLINE(NIM_BOOL, sameSeqPayload)(void* x_p0, void* y_p1) {
	NIM_BOOL result;
	result = ((*((tyObject_NimRawSeq__Tvl1urqmI1tXqzkHPbWVJQ*) (x_p0))).p == (*((tyObject_NimRawSeq__Tvl1urqmI1tXqzkHPbWVJQ*) (y_p1))).p);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___dfa_u483)(tyTuple__MDblJIdBvEzk3cvDpORS3w dest_p0) {
	eqdestroy___ast_u3696(dest_p0.Field1);
}
N_LIB_PRIVATE N_NIMCALL(void, eqwasMoved___dfa_u480)(tyTuple__MDblJIdBvEzk3cvDpORS3w* dest_p0) {
	(*dest_p0).Field0 = 0;
	(*dest_p0).Field1.len = 0; (*dest_p0).Field1.p = NIM_NIL;
}
N_LIB_PRIVATE N_NIMCALL(void, eqcopy___dfa_u421)(tySequence__gGvy9cKEpHEX9cA4gF5mzkxA* dest_p0, tySequence__gGvy9cKEpHEX9cA4gF5mzkxA src_p1) {
	NI T6_;
	NI colontmp_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = sameSeqPayload(dest_p0, (&src_p1));
		if (!T3_) goto LA4_;
		goto BeforeRet_;
	}
LA4_: ;
	T6_ = src_p1.len;
	setLen__dfa_u439((&(*dest_p0)), T6_);
	colontmp_ = ((NI)0);
	{
		while (1) {
			NI T9_;
			T9_ = (*dest_p0).len;
			if (!(colontmp_ < T9_)) goto LA8;
			(*dest_p0).p->data[colontmp_].Field0 = src_p1.p->data[colontmp_].Field0;
			eqcopy___ast_u3699((&(*dest_p0).p->data[colontmp_].Field1), src_p1.p->data[colontmp_].Field1);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			colontmp_ += ((NI)1);
		} LA8: ;
	}
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___dfa_u418)(tySequence__gGvy9cKEpHEX9cA4gF5mzkxA dest_p0) {
	NI colontmp_;
	colontmp_ = ((NI)0);
	{
		while (1) {
			NI T3_;
			T3_ = dest_p0.len;
			if (!(colontmp_ < T3_)) goto LA2;
			eqdestroy___ast_u3696(dest_p0.p->data[colontmp_].Field1);
			colontmp_ += ((NI)1);
		} LA2: ;
	}
	if (dest_p0.p && !(dest_p0.p->cap & NIM_STRLIT_FLAG)) {
 alignedDealloc(dest_p0.p, NIM_ALIGNOF(tyTuple__MDblJIdBvEzk3cvDpORS3w));
}
}
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___dfa_u565)(tyObject_TBlock__LegQi0ajkTVtggrD9avD75Q* dest_p0) {
	switch ((*dest_p0).isTryBlock) {
	case NIM_FALSE:
	{
		eqdestroy___dfa_u418((*dest_p0)._isTryBlock_1.breakFixups);
		{
			NIM_BOOL T4_;
			T4_ = (NIM_BOOL)0;
			T4_ = nimDecRefIsLastDyn((*dest_p0)._isTryBlock_1.label);
			if (!T4_) goto LA5_;
			eqdestroy___ast_u3469((&(*(*dest_p0)._isTryBlock_1.label)));
			nimRawDispose((*dest_p0)._isTryBlock_1.label, ((NI)8));
		}
LA5_: ;
	}
	break;
	case NIM_TRUE:
	{
		eqdestroy___dfa_u589((*dest_p0)._isTryBlock_2.raiseFixups);
		{
			NIM_BOOL T10_;
			T10_ = (NIM_BOOL)0;
			T10_ = nimDecRefIsLastDyn((*dest_p0)._isTryBlock_2.finale);
			if (!T10_) goto LA11_;
			eqdestroy___ast_u3270((&(*(*dest_p0)._isTryBlock_2.finale)));
			nimRawDispose((*dest_p0)._isTryBlock_2.finale, ((NI)8));
		}
LA11_: ;
	}
	break;
	default:
	{
	}
	break;
	}
}
N_LIB_PRIVATE N_NIMCALL(void, eqwasMoved___dfa_u562)(tyObject_TBlock__LegQi0ajkTVtggrD9avD75Q* dest_p0) {
	(*dest_p0).isTryBlock = 0;
	switch ((*dest_p0).isTryBlock) {
	case NIM_FALSE:
	{
		(*dest_p0)._isTryBlock_1.label = 0;
		(*dest_p0)._isTryBlock_1.breakFixups.len = 0; (*dest_p0)._isTryBlock_1.breakFixups.p = NIM_NIL;
	}
	break;
	case NIM_TRUE:
	{
		(*dest_p0)._isTryBlock_2.finale = 0;
		(*dest_p0)._isTryBlock_2.raiseFixups.len = 0; (*dest_p0)._isTryBlock_2.raiseFixups.p = NIM_NIL;
	}
	break;
	default:
	{
	}
	break;
	}
}
N_LIB_PRIVATE N_NIMCALL(void, popBlock__dfa_u291)(tyObject_Con__wRKI8PR5jcP87QCiheFmFw* c_p0, NI oldLen_p1) {
	tySequence__qwqHTkRvwhrRyENtudHQ7g exits_1;
	NI T2_;
NIM_BOOL oldNimErrFin4_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	exits_1.len = 0; exits_1.p = NIM_NIL;
	exits_1.len = 0; exits_1.p = (tySequence__qwqHTkRvwhrRyENtudHQ7g_Content*) newSeqPayload(0, sizeof(NI), NIM_ALIGNOF(NI));
	T2_ = (NI)0;
	T2_ = gotoI__dfa_u216(c_p0);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	add__dfa_u299((&exits_1), T2_);
	{
		tySequence__gGvy9cKEpHEX9cA4gF5mzkxA colontmp_;
		tyTuple__MDblJIdBvEzk3cvDpORS3w* f_1;
		NI i_1;
		NI L_1;
		NI T5_;
		colontmp_.len = 0; colontmp_.p = NIM_NIL;
		f_1 = (tyTuple__MDblJIdBvEzk3cvDpORS3w*)0;
		eqcopy___dfa_u421((&colontmp_), (*c_p0).blocks.p->data[oldLen_p1]._isTryBlock_1.breakFixups);
		if (NIM_UNLIKELY(*nimErr_)) goto LA4_;
		i_1 = ((NI)0);
		T5_ = colontmp_.len;
		L_1 = T5_;
		{
			while (1) {
				NI T12_;
				if (!(i_1 < L_1)) goto LA7;
				f_1 = (&colontmp_.p->data[i_1]);
				patch__dfa_u263(c_p0, (*f_1).Field0);
				if (NIM_UNLIKELY(*nimErr_)) goto LA4_;
				{
					tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ** finale_1;
					tySequence__9ahcSjIErJohSBBFLwuF56Q* colontmp__2;
					NI i_2;
					NI L_2;
					NI T9_;
					finale_1 = (tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ**)0;
					colontmp__2 = (tySequence__9ahcSjIErJohSBBFLwuF56Q*)0;
					colontmp__2 = (&(*f_1).Field1);
					i_2 = ((NI)0);
					T9_ = (*colontmp__2).len;
					L_2 = T9_;
					{
						while (1) {
							if (!(i_2 < L_2)) goto LA11;
							finale_1 = &(*colontmp__2).p->data[i_2];
							gen__dfa_u288(c_p0, (*finale_1));
							if (NIM_UNLIKELY(*nimErr_)) goto LA4_;
							i_2 += ((NI)1);
						} LA11: ;
					}
				}
				T12_ = (NI)0;
				T12_ = gotoI__dfa_u216(c_p0);
				if (NIM_UNLIKELY(*nimErr_)) goto LA4_;
				add__dfa_u299((&exits_1), T12_);
				i_1 += ((NI)1);
			} LA7: ;
		}
		{
			LA4_:;
		}
		{
			oldNimErrFin4_ = *nimErr_; *nimErr_ = NIM_FALSE;
			eqdestroy___dfa_u418(colontmp_);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			*nimErr_ = oldNimErrFin4_;
		}
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	}
	{
		NI* e_1;
		NI i_3;
		NI L_3;
		NI T16_;
		e_1 = (NI*)0;
		i_3 = ((NI)0);
		T16_ = exits_1.len;
		L_3 = T16_;
		{
			while (1) {
				if (!(i_3 < L_3)) goto LA18;
				e_1 = (&exits_1.p->data[i_3]);
				patch__dfa_u263(c_p0, (*e_1));
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				i_3 += ((NI)1);
			} LA18: ;
		}
	}
	setLen__dfa_u373((&(*c_p0).blocks), (oldLen_p1));
	{
		LA1_:;
	}
	{
		eqdestroy___dfa_u589(exits_1);
	}
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, genWhile__dfa_u821)(tyObject_Con__wRKI8PR5jcP87QCiheFmFw* c_p0, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* n_p1) {
	NI lab1_1;
	NI oldLenX60gensym13__1;
	NI T1_;
	tyObject_TBlock__LegQi0ajkTVtggrD9avD75Q T2_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	lab1_1 = genLabel__dfa_u226((&(*c_p0)));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	T1_ = (*c_p0).blocks.len;
	oldLenX60gensym13__1 = T1_;
	nimZeroMem((void*)(&T2_), sizeof(tyObject_TBlock__LegQi0ajkTVtggrD9avD75Q));
	nimZeroMem((void*)(&T2_), sizeof(tyObject_TBlock__LegQi0ajkTVtggrD9avD75Q));
	T2_.isTryBlock = NIM_FALSE;
	T2_._isTryBlock_1.label = ((tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg*) NIM_NIL);
	T2_._isTryBlock_1.breakFixups.len = 0; T2_._isTryBlock_1.breakFixups.p = NIM_NIL;
	add__dfa_u830((&(*c_p0).blocks), (&T2_));
	{
		NIM_BOOL T5_;
		T5_ = (NIM_BOOL)0;
		T5_ = isTrue__ast_u7675((*n_p1)._kind_6.sons.p->data[((NI)0)]);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		if (!T5_) goto LA6_;
		gen__dfa_u288(c_p0, (*n_p1)._kind_6.sons.p->data[((NI)1)]);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		jmpBack__dfa_u234(c_p0, lab1_1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	goto LA3_;
LA6_: ;
	{
		NI lab1X60gensym17__1;
		gen__dfa_u288(c_p0, (*n_p1)._kind_6.sons.p->data[((NI)0)]);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		lab1X60gensym17__1 = forkI__dfa_u113(c_p0);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		gen__dfa_u288(c_p0, (*n_p1)._kind_6.sons.p->data[((NI)1)]);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		jmpBack__dfa_u234(c_p0, lab1_1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		patch__dfa_u263(c_p0, lab1X60gensym17__1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
LA3_: ;
	popBlock__dfa_u291(c_p0, oldLenX60gensym13__1);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, genBlock__dfa_u1042)(tyObject_Con__wRKI8PR5jcP87QCiheFmFw* c_p0, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* n_p1) {
	tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* colontmpD_;
	NI oldLenX60gensym32__1;
	NI T1_;
	tyObject_TBlock__LegQi0ajkTVtggrD9avD75Q T2_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	T1_ = (*c_p0).blocks.len;
	oldLenX60gensym32__1 = T1_;
	nimZeroMem((void*)(&T2_), sizeof(tyObject_TBlock__LegQi0ajkTVtggrD9avD75Q));
	nimZeroMem((void*)(&T2_), sizeof(tyObject_TBlock__LegQi0ajkTVtggrD9avD75Q));
	T2_.isTryBlock = NIM_FALSE;
	colontmpD_ = eqdup___ast_u4580((*(*n_p1)._kind_6.sons.p->data[((NI)0)])._kind_4.sym);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	T2_._isTryBlock_1.label = colontmpD_;
	T2_._isTryBlock_1.breakFixups.len = 0; T2_._isTryBlock_1.breakFixups.p = NIM_NIL;
	add__dfa_u830((&(*c_p0).blocks), (&T2_));
	gen__dfa_u288(c_p0, (*n_p1)._kind_6.sons.p->data[((NI)1)]);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	popBlock__dfa_u291(c_p0, oldLenX60gensym32__1);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, genImplicitReturn__dfa_u1314)(tyObject_Con__wRKI8PR5jcP87QCiheFmFw* c_p0) {
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	{
		NIM_BOOL T3_;
		NI T5_;
		T3_ = (NIM_BOOL)0;
		T3_ = ((*(*c_p0).owner).kind == ((tyEnum_TSymKind__9a75lHd9cV25XwN4jXXBmM0Q)12) || (*(*c_p0).owner).kind == ((tyEnum_TSymKind__9a75lHd9cV25XwN4jXXBmM0Q)13) || (*(*c_p0).owner).kind == ((tyEnum_TSymKind__9a75lHd9cV25XwN4jXXBmM0Q)14) || (*(*c_p0).owner).kind == ((tyEnum_TSymKind__9a75lHd9cV25XwN4jXXBmM0Q)15) || (*(*c_p0).owner).kind == ((tyEnum_TSymKind__9a75lHd9cV25XwN4jXXBmM0Q)16));
		if (!(T3_)) goto LA4_;
		T5_ = (NI)0;
		T5_ = len__ast_u3190((*(*c_p0).owner).ast);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T3_ = (((NI)7) < T5_);
LA4_: ;
		if (!T3_) goto LA6_;
		gen__dfa_u288(c_p0, (*(*(*c_p0).owner).ast)._kind_6.sons.p->data[((NI)7)]);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
LA6_: ;
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, genReturn__dfa_u1320)(tyObject_Con__wRKI8PR5jcP87QCiheFmFw* c_p0, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* n_p1) {
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	(*c_p0).interestingInstructions += ((NI)1);
	{
		if (!!(((*(*n_p1)._kind_6.sons.p->data[((NI)0)]).kind == ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)1)))) goto LA3_;
		gen__dfa_u288(c_p0, (*n_p1)._kind_6.sons.p->data[((NI)0)]);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	goto LA1_;
LA3_: ;
	{
		genImplicitReturn__dfa_u1314(c_p0);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
LA1_: ;
	genBreakOrRaiseAux__dfa_u1054(c_p0, ((NI)0), n_p1);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, genRaise__dfa_u1283)(tyObject_Con__wRKI8PR5jcP87QCiheFmFw* c_p0, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* n_p1) {
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	(*c_p0).interestingInstructions += ((NI)1);
	gen__dfa_u288(c_p0, (*n_p1)._kind_6.sons.p->data[((NI)0)]);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	{
		if (!(((NI)0) < (*c_p0).inTryStmt)) goto LA3_;
		{
			NI i_1;
			NI colontmp_;
			NI T6_;
			NI res_1;
			i_1 = (NI)0;
			colontmp_ = (NI)0;
			T6_ = ((*c_p0).blocks.len-1);
			colontmp_ = T6_;
			res_1 = colontmp_;
			{
				while (1) {
					if (!(((NI)0) <= res_1)) goto LA8;
					i_1 = ((NI) (res_1));
					{
						if (!(*c_p0).blocks.p->data[i_1].isTryBlock) goto LA11_;
						genBreakOrRaiseAux__dfa_u1054(c_p0, i_1, n_p1);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						goto BeforeRet_;
					}
LA11_: ;
					res_1 -= ((NI)1);
				} LA8: ;
			}
		}
	}
	goto LA1_;
LA3_: ;
	{
		tyObject_Instr__q6FqGagLCvmrvQAVu3oy4g T14_;
		NI T15_;
		nimZeroMem((void*)(&T14_), sizeof(tyObject_Instr__q6FqGagLCvmrvQAVu3oy4g));
		T14_.kind = ((tyEnum_InstrKind__xkE9c36M77yqw0WqXYKG9aAg)0);
		T15_ = (*c_p0).code.len;
		T14_.dest = (NI)(((NI)IL64(9223372036854775807)) - T15_);
		add__dfa_u119((&(*c_p0).code), T14_);
	}
LA1_: ;
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, genBreak__dfa_u1179)(tyObject_Con__wRKI8PR5jcP87QCiheFmFw* c_p0, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* n_p1) {
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	(*c_p0).interestingInstructions += ((NI)1);
	{
		if (!((*(*n_p1)._kind_6.sons.p->data[((NI)0)]).kind == ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)3))) goto LA3_;
		{
			NI i_1;
			NI colontmp_;
			NI T6_;
			NI res_1;
			i_1 = (NI)0;
			colontmp_ = (NI)0;
			T6_ = ((*c_p0).blocks.len-1);
			colontmp_ = T6_;
			res_1 = colontmp_;
			{
				while (1) {
					if (!(((NI)0) <= res_1)) goto LA8;
					i_1 = ((NI) (res_1));
					{
						NIM_BOOL T11_;
						T11_ = (NIM_BOOL)0;
						T11_ = !((*c_p0).blocks.p->data[i_1].isTryBlock);
						if (!(T11_)) goto LA12_;
						T11_ = ((*c_p0).blocks.p->data[i_1]._isTryBlock_1.label == (*(*n_p1)._kind_6.sons.p->data[((NI)0)])._kind_4.sym);
LA12_: ;
						if (!T11_) goto LA13_;
						genBreakOrRaiseAux__dfa_u1054(c_p0, i_1, n_p1);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						goto BeforeRet_;
					}
LA13_: ;
					res_1 -= ((NI)1);
				} LA8: ;
			}
		}
	}
	goto LA1_;
LA3_: ;
	{
		{
			NI i_2;
			NI colontmp__2;
			NI T17_;
			NI res_2;
			i_2 = (NI)0;
			colontmp__2 = (NI)0;
			T17_ = ((*c_p0).blocks.len-1);
			colontmp__2 = T17_;
			res_2 = colontmp__2;
			{
				while (1) {
					if (!(((NI)0) <= res_2)) goto LA19;
					i_2 = ((NI) (res_2));
					{
						if (!!((*c_p0).blocks.p->data[i_2].isTryBlock)) goto LA22_;
						genBreakOrRaiseAux__dfa_u1054(c_p0, i_2, n_p1);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						goto BeforeRet_;
					}
LA22_: ;
					res_2 -= ((NI)1);
				} LA19: ;
			}
		}
	}
LA1_: ;
	}BeforeRet_: ;
}
static N_INLINE(void, nimCopyMem)(void* dest_p0, void* source_p1, NI size_p2) {
	void* T1_;
	T1_ = (void*)0;
	T1_ = memcpy(dest_p0, source_p1, ((size_t) (size_p2)));
}
static N_INLINE(void, copyMem__system_u1742)(void* dest_p0, void* source_p1, NI size_p2) {
	nimCopyMem(dest_p0, source_p1, size_p2);
}
static N_INLINE(void, nimCopySeqPayload)(void* dest_p0, void* src_p1, NI elemSize_p2, NI elemAlign_p3) {
	tyObject_NimRawSeq__Tvl1urqmI1tXqzkHPbWVJQ* d_1;
	tyObject_NimRawSeq__Tvl1urqmI1tXqzkHPbWVJQ* s_1;
	d_1 = ((tyObject_NimRawSeq__Tvl1urqmI1tXqzkHPbWVJQ*) (dest_p0));
	s_1 = ((tyObject_NimRawSeq__Tvl1urqmI1tXqzkHPbWVJQ*) (src_p1));
	{
		NI headerSize_1;
		if (!(((NI)0) < (*s_1).len)) goto LA3_;
		headerSize_1 = align__system_u1639(((NI)8), elemAlign_p3);
		copyMem__system_u1742(((void*) ((NU)((NU64)(((NU) (ptrdiff_t) ((*d_1).p))) + (NU64)(((NU) (headerSize_1)))))), ((void*) ((NU)((NU64)(((NU) (ptrdiff_t) ((*s_1).p))) + (NU64)(((NU) (headerSize_1)))))), ((NI)((*s_1).len * elemSize_p2)));
	}
LA3_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, eqcopy___dfa_u592)(tySequence__qwqHTkRvwhrRyENtudHQ7g* dest_p0, tySequence__qwqHTkRvwhrRyENtudHQ7g src_p1) {
	NI T6_;
{	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = sameSeqPayload(dest_p0, (&src_p1));
		if (!T3_) goto LA4_;
		goto BeforeRet_;
	}
LA4_: ;
	T6_ = src_p1.len;
	setLen__dfa_u609((&(*dest_p0)), T6_);
	nimCopySeqPayload(dest_p0, (&src_p1), ((NI)8), ((NI)8));
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, genTry__dfa_u1213)(tyObject_Con__wRKI8PR5jcP87QCiheFmFw* c_p0, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* n_p1) {
	tySequence__qwqHTkRvwhrRyENtudHQ7g endings_1;
	tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* colontmpD_;
	tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* colontmpD__2;
	tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* fin_1;
	NI oldLen_1;
	NI T2_;
	tyObject_TBlock__LegQi0ajkTVtggrD9avD75Q T3_;
NIM_BOOL oldNimErrFin23_;
NIM_BOOL oldNimErrFin18_;
NIM_BOOL oldNimErrFin1_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	endings_1.len = 0; endings_1.p = NIM_NIL;
	colontmpD_ = NIM_NIL;
	colontmpD__2 = NIM_NIL;
	fin_1 = NIM_NIL;
	endings_1.len = 0; endings_1.p = (tySequence__qwqHTkRvwhrRyENtudHQ7g_Content*) newSeqPayload(0, sizeof(NI), NIM_ALIGNOF(NI));
	T2_ = (*c_p0).blocks.len;
	oldLen_1 = T2_;
	nimZeroMem((void*)(&T3_), sizeof(tyObject_TBlock__LegQi0ajkTVtggrD9avD75Q));
	nimZeroMem((void*)(&T3_), sizeof(tyObject_TBlock__LegQi0ajkTVtggrD9avD75Q));
	T3_.isTryBlock = NIM_TRUE;
	{
		NI T6_;
		NI T9_;
		tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* blitTmp_1;
		T6_ = (NI)0;
		T6_ = len__ast_u3190(n_p1);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		if (!((*(*n_p1)._kind_6.sons.p->data[(NI)(T6_ - ((NI)1))]).kind == ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)107))) goto LA7_;
		T9_ = (NI)0;
		T9_ = len__ast_u3190(n_p1);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		eqcopy___ast_u3255(&colontmpD_, (*n_p1)._kind_6.sons.p->data[(NI)(T9_ - ((NI)1))]);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		blitTmp_1 = colontmpD_;
		eqwasMoved___ast_u3249(&colontmpD_);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		T3_._isTryBlock_2.finale = blitTmp_1;
	}
	goto LA4_;
LA7_: ;
	{
		tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* blitTmp_2;
		colontmpD__2 = newNode__ast_u4069(((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)1));
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		blitTmp_2 = colontmpD__2;
		eqwasMoved___ast_u3249(&colontmpD__2);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		T3_._isTryBlock_2.finale = blitTmp_2;
	}
LA4_: ;
	T3_._isTryBlock_2.raiseFixups.len = 0; T3_._isTryBlock_2.raiseFixups.p = NIM_NIL;
	add__dfa_u830((&(*c_p0).blocks), (&T3_));
	(*c_p0).inTryStmt += ((NI)1);
	gen__dfa_u288(c_p0, (*n_p1)._kind_6.sons.p->data[((NI)0)]);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	(*c_p0).inTryStmt -= ((NI)1);
	{
		tySequence__qwqHTkRvwhrRyENtudHQ7g colontmp_;
		NI* f_1;
		NI i_1;
		NI L_1;
		NI T12_;
		colontmp_.len = 0; colontmp_.p = NIM_NIL;
		f_1 = (NI*)0;
		eqcopy___dfa_u592((&colontmp_), (*c_p0).blocks.p->data[oldLen_1]._isTryBlock_2.raiseFixups);
		i_1 = ((NI)0);
		T12_ = colontmp_.len;
		L_1 = T12_;
		{
			while (1) {
				if (!(i_1 < L_1)) goto LA14;
				f_1 = (&colontmp_.p->data[i_1]);
				patch__dfa_u263(c_p0, (*f_1));
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				i_1 += ((NI)1);
			} LA14: ;
		}
		eqdestroy___dfa_u589(colontmp_);
	}
	setLen__dfa_u373((&(*c_p0).blocks), (oldLen_1));
	{
		NI i_2;
		NI colontmp__2;
		NI i_3;
		i_2 = (NI)0;
		colontmp__2 = (NI)0;
		colontmp__2 = len__ast_u3190(n_p1);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		i_3 = ((NI)1);
		{
			while (1) {
				tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* it_1;
				if (!(i_3 < colontmp__2)) goto LA17;
				it_1 = NIM_NIL;
				i_2 = i_3;
				eqcopy___ast_u3255(&it_1, (*n_p1)._kind_6.sons.p->data[i_2]);
				if (NIM_UNLIKELY(*nimErr_)) goto LA18_;
				{
					tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* colontmpD__3;
					NI lab1X60gensym46__1;
					NI T24_;
					if (!!(((*it_1).kind == ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)107)))) goto LA21_;
					colontmpD__3 = NIM_NIL;
					lab1X60gensym46__1 = forkI__dfa_u113(c_p0);
					if (NIM_UNLIKELY(*nimErr_)) goto LA23_;
					colontmpD__3 = lastSon__ast_u5208(it_1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA23_;
					gen__dfa_u288(c_p0, colontmpD__3);
					if (NIM_UNLIKELY(*nimErr_)) goto LA23_;
					T24_ = (NI)0;
					T24_ = gotoI__dfa_u216(c_p0);
					if (NIM_UNLIKELY(*nimErr_)) goto LA23_;
					add__dfa_u299((&endings_1), T24_);
					patch__dfa_u263(c_p0, lab1X60gensym46__1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA23_;
					{
						LA23_:;
					}
					{
						oldNimErrFin23_ = *nimErr_; *nimErr_ = NIM_FALSE;
						eqdestroy___ast_u3252(colontmpD__3);
						if (NIM_UNLIKELY(*nimErr_)) goto LA18_;
						*nimErr_ = oldNimErrFin23_;
					}
					if (NIM_UNLIKELY(*nimErr_)) goto LA18_;
				}
LA21_: ;
				i_3 += ((NI)1);
				{
					LA18_:;
				}
				{
					oldNimErrFin18_ = *nimErr_; *nimErr_ = NIM_FALSE;
					eqdestroy___ast_u3252(it_1);
					if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
					*nimErr_ = oldNimErrFin18_;
				}
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			} LA17: ;
		}
	}
	{
		NI i_4;
		NI colontmp__3;
		NI T30_;
		NI res_1;
		i_4 = (NI)0;
		colontmp__3 = (NI)0;
		T30_ = (endings_1.len-1);
		colontmp__3 = T30_;
		res_1 = colontmp__3;
		{
			while (1) {
				if (!(((NI)0) <= res_1)) goto LA32;
				i_4 = ((NI) (res_1));
				patch__dfa_u263(c_p0, endings_1.p->data[i_4]);
				if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
				res_1 -= ((NI)1);
			} LA32: ;
		}
	}
	fin_1 = lastSon__ast_u5208(n_p1);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	{
		if (!((*fin_1).kind == ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)107))) goto LA35_;
		gen__dfa_u288(c_p0, (*fin_1)._kind_6.sons.p->data[((NI)0)]);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	}
LA35_: ;
	{
		LA1_:;
	}
	{
		oldNimErrFin1_ = *nimErr_; *nimErr_ = NIM_FALSE;
		eqdestroy___ast_u3252(fin_1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		eqdestroy___ast_u3252(colontmpD__2);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		eqdestroy___ast_u3252(colontmpD_);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		eqdestroy___dfa_u589(endings_1);
		*nimErr_ = oldNimErrFin1_;
	}
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
}
static N_INLINE(NI, safeLen__ast_u3197)(tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* n_p0) {
	NI result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (NI)0;
	{
		if (!((*n_p0).kind >= ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)0) && (*n_p0).kind <= ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)23))) goto LA3_;
		result = ((NI)0);
	}
	goto LA1_;
LA3_: ;
	{
		result = len__ast_u3190(n_p0);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
LA1_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, genVarSection__dfa_u1433)(tyObject_Con__wRKI8PR5jcP87QCiheFmFw* c_p0, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* n_p1) {
NIM_BOOL oldNimErrFin13_;
NIM_BOOL oldNimErrFin21_;
NIM_BOOL oldNimErrFin2_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	{
		tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* a_1;
		a_1 = NIM_NIL;
		{
			NI i_1;
			NI colontmp_;
			NI i_2;
			i_1 = (NI)0;
			colontmp_ = (NI)0;
			colontmp_ = safeLen__ast_u3197(n_p1);
			if (NIM_UNLIKELY(*nimErr_)) goto LA2_;
			i_2 = ((NI)0);
			{
				while (1) {
					if (!(i_2 < colontmp_)) goto LA5;
					i_1 = i_2;
					eqcopy___ast_u3255(&a_1, (*n_p1)._kind_6.sons.p->data[i_1]);
					if (NIM_UNLIKELY(*nimErr_)) goto LA2_;
					{
						if (!((*a_1).kind == ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)125))) goto LA8_;
					}
					goto LA6_;
LA8_: ;
					{
						tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* colontmpD_;
						if (!((*a_1).kind == ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)36))) goto LA11_;
						colontmpD_ = NIM_NIL;
						colontmpD_ = lastSon__ast_u5208(a_1);
						if (NIM_UNLIKELY(*nimErr_)) goto LA13_;
						gen__dfa_u288(c_p0, colontmpD_);
						if (NIM_UNLIKELY(*nimErr_)) goto LA13_;
						{
							NI i_3;
							NI colontmp__2;
							NI T15_;
							NI i_4;
							i_3 = (NI)0;
							colontmp__2 = (NI)0;
							T15_ = (NI)0;
							T15_ = len__ast_u3190(a_1);
							if (NIM_UNLIKELY(*nimErr_)) goto LA13_;
							colontmp__2 = (NI)(T15_ - ((NI)2));
							i_4 = ((NI)0);
							{
								while (1) {
									if (!(i_4 < colontmp__2)) goto LA17;
									i_3 = i_4;
									genDef__dfa_u1366(c_p0, (*a_1)._kind_6.sons.p->data[i_3]);
									if (NIM_UNLIKELY(*nimErr_)) goto LA13_;
									i_4 += ((NI)1);
								} LA17: ;
							}
						}
						{
							LA13_:;
						}
						{
							oldNimErrFin13_ = *nimErr_; *nimErr_ = NIM_FALSE;
							eqdestroy___ast_u3252(colontmpD_);
							if (NIM_UNLIKELY(*nimErr_)) goto LA2_;
							*nimErr_ = oldNimErrFin13_;
						}
						if (NIM_UNLIKELY(*nimErr_)) goto LA2_;
					}
					goto LA6_;
LA11_: ;
					{
						tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* colontmpD__2;
						tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* colontmpD__3;
						colontmpD__2 = NIM_NIL;
						colontmpD__3 = NIM_NIL;
						colontmpD__2 = lastSon__ast_u5208(a_1);
						if (NIM_UNLIKELY(*nimErr_)) goto LA21_;
						gen__dfa_u288(c_p0, colontmpD__2);
						if (NIM_UNLIKELY(*nimErr_)) goto LA21_;
						{
							colontmpD__3 = lastSon__ast_u5208(a_1);
							if (NIM_UNLIKELY(*nimErr_)) goto LA21_;
							if (!!(((*colontmpD__3).kind == ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)1)))) goto LA24_;
							genDef__dfa_u1366(c_p0, (*a_1)._kind_6.sons.p->data[((NI)0)]);
							if (NIM_UNLIKELY(*nimErr_)) goto LA21_;
						}
LA24_: ;
						{
							LA21_:;
						}
						{
							oldNimErrFin21_ = *nimErr_; *nimErr_ = NIM_FALSE;
							eqdestroy___ast_u3252(colontmpD__3);
							if (NIM_UNLIKELY(*nimErr_)) goto LA2_;
							eqdestroy___ast_u3252(colontmpD__2);
							if (NIM_UNLIKELY(*nimErr_)) goto LA2_;
							*nimErr_ = oldNimErrFin21_;
						}
						if (NIM_UNLIKELY(*nimErr_)) goto LA2_;
					}
LA6_: ;
					i_2 += ((NI)1);
				} LA5: ;
			}
		}
		{
			LA2_:;
		}
		{
			oldNimErrFin2_ = *nimErr_; *nimErr_ = NIM_FALSE;
			eqdestroy___ast_u3252(a_1);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			*nimErr_ = oldNimErrFin2_;
		}
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, gen__dfa_u288)(tyObject_Con__wRKI8PR5jcP87QCiheFmFw* c_p0, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* n_p1) {
NIM_BOOL oldNimErrFin7_;
NIM_BOOL oldNimErrFin28_;
NIM_BOOL oldNimErrFin47_;
NIM_BOOL oldNimErrFin54_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	switch ((*n_p1).kind) {
	case ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)3):
	{
		genUse__dfa_u1341(c_p0, n_p1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)26) ... ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)32):
	{
		{
			tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* s_1;
			if (!((*(*n_p1)._kind_6.sons.p->data[((NI)0)]).kind == ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)3))) goto LA5_;
			s_1 = NIM_NIL;
			eqcopy___ast_u4577(&s_1, (*(*n_p1)._kind_6.sons.p->data[((NI)0)])._kind_4.sym);
			if (NIM_UNLIKELY(*nimErr_)) goto LA7_;
			{
				if (!!(((*s_1).magic == ((tyEnum_TMagic__I3BbtzbLAKAfOym58MkGAg)0)))) goto LA10_;
				genMagic__dfa_u1424(c_p0, n_p1, (*s_1).magic);
				if (NIM_UNLIKELY(*nimErr_)) goto LA7_;
			}
			goto LA8_;
LA10_: ;
			{
				genCall__dfa_u1391(c_p0, n_p1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA7_;
			}
LA8_: ;
			{
				tyObject_Instr__q6FqGagLCvmrvQAVu3oy4g T17_;
				NI T18_;
				if (!(((*(*(*n_p1)._kind_6.sons.p->data[((NI)0)])._kind_4.sym).flags &((NU64)1<<((NU)((((tyEnum_TSymFlag__Ii9cPbwXR8ePKVRFOdTKpDg)16)))&63U)))!=0)) goto LA15_;
				nimZeroMem((void*)(&T17_), sizeof(tyObject_Instr__q6FqGagLCvmrvQAVu3oy4g));
				T17_.kind = ((tyEnum_InstrKind__xkE9c36M77yqw0WqXYKG9aAg)0);
				T18_ = (*c_p0).code.len;
				T17_.dest = (NI)(((NI)IL64(9223372036854775807)) - T18_);
				add__dfa_u119((&(*c_p0).code), T17_);
			}
LA15_: ;
			{
				LA7_:;
			}
			{
				oldNimErrFin7_ = *nimErr_; *nimErr_ = NIM_FALSE;
				eqdestroy___ast_u4574(s_1);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				*nimErr_ = oldNimErrFin7_;
			}
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		goto LA3_;
LA5_: ;
		{
			genCall__dfa_u1391(c_p0, n_p1);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
LA3_: ;
	}
	break;
	case ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)5) ... ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)23):
	{
	}
	break;
	case ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)73):
	case ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)74):
	case ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)149):
	{
		gen__dfa_u288(c_p0, (*n_p1)._kind_6.sons.p->data[((NI)1)]);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		{
			tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* a_1;
			if (!((TM__rmUZTUif19aNVU5raHE2xtA_5[(NU)(((*(*n_p1)._kind_6.sons.p->data[((NI)0)]).kind))>>3] &(1U<<((NU)(((*(*n_p1)._kind_6.sons.p->data[((NI)0)]).kind))&7U)))!=0)) goto LA26_;
			a_1 = NIM_NIL;
			a_1 = skipTrivials__dfa_u1333(c_p0, (*n_p1)._kind_6.sons.p->data[((NI)0)]);
			if (NIM_UNLIKELY(*nimErr_)) goto LA28_;
			{
				if (!((*a_1).kind == ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)27) || (*a_1).kind == ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)29) || (*a_1).kind == ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)30) || (*a_1).kind == ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)31) || (*a_1).kind == ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)26) || (*a_1).kind == ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)28) || (*a_1).kind == ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)32))) goto LA31_;
				gen__dfa_u288(c_p0, a_1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA28_;
			}
LA31_: ;
			{
				LA28_:;
			}
			{
				oldNimErrFin28_ = *nimErr_; *nimErr_ = NIM_FALSE;
				eqdestroy___ast_u3252(a_1);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				*nimErr_ = oldNimErrFin28_;
			}
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
LA26_: ;
		genDef__dfa_u1366(c_p0, (*n_p1)._kind_6.sons.p->data[((NI)0)]);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)42):
	case ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)45) ... ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)47):
	case ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)63) ... ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)65):
	{
		genUse__dfa_u1341(c_p0, n_p1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)92):
	case ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)48):
	{
		genIf__dfa_u852(c_p0, n_p1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)93):
	{
		gen__dfa_u288(c_p0, (*(*n_p1)._kind_6.sons.p->data[((NI)1)])._kind_6.sons.p->data[((NI)0)]);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)97):
	{
		genCase__dfa_u995(c_p0, n_p1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)96):
	{
		genWhile__dfa_u821(c_p0, n_p1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)127):
	case ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)112):
	{
		genBlock__dfa_u1042(c_p0, n_p1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)109):
	{
		genReturn__dfa_u1320(c_p0, n_p1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)108):
	{
		genRaise__dfa_u1283(c_p0, n_p1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)110):
	{
		genBreak__dfa_u1179(c_p0, n_p1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)106):
	case ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)154):
	{
		genTry__dfa_u1213(c_p0, n_p1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)115):
	case ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)126):
	case ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)68):
	case ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)69):
	case ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)70):
	case ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)41):
	case ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)39):
	case ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)37):
	case ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)160):
	case ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)155):
	case ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)38):
	case ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)104):
	{
		{
			tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* x_1;
			x_1 = NIM_NIL;
			{
				NI i_1;
				NI colontmp_;
				NI i_2;
				i_1 = (NI)0;
				colontmp_ = (NI)0;
				colontmp_ = safeLen__ast_u3197(n_p1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA47_;
				i_2 = ((NI)0);
				{
					while (1) {
						if (!(i_2 < colontmp_)) goto LA50;
						i_1 = i_2;
						eqcopy___ast_u3255(&x_1, (*n_p1)._kind_6.sons.p->data[i_1]);
						if (NIM_UNLIKELY(*nimErr_)) goto LA47_;
						gen__dfa_u288(c_p0, x_1);
						if (NIM_UNLIKELY(*nimErr_)) goto LA47_;
						i_2 += ((NI)1);
					} LA50: ;
				}
			}
			{
				LA47_:;
			}
			{
				oldNimErrFin47_ = *nimErr_; *nimErr_ = NIM_FALSE;
				eqdestroy___ast_u3252(x_1);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				*nimErr_ = oldNimErrFin47_;
			}
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
	}
	break;
	case ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)91):
	{
		tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* colontmpD_;
		colontmpD_ = NIM_NIL;
		colontmpD_ = lastSon__ast_u5208(n_p1);
		if (NIM_UNLIKELY(*nimErr_)) goto LA54_;
		gen__dfa_u288(c_p0, colontmpD_);
		if (NIM_UNLIKELY(*nimErr_)) goto LA54_;
		{
			LA54_:;
		}
		{
			oldNimErrFin54_ = *nimErr_; *nimErr_ = NIM_FALSE;
			eqdestroy___ast_u3252(colontmpD_);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			*nimErr_ = oldNimErrFin54_;
		}
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)114):
	case ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)66):
	case ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)67):
	case ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)71):
	case ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)72):
	{
		gen__dfa_u288(c_p0, (*n_p1)._kind_6.sons.p->data[((NI)0)]);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)60):
	case ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)34):
	case ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)33):
	case ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)61):
	case ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)58) ... ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)59):
	{
		gen__dfa_u288(c_p0, (*n_p1)._kind_6.sons.p->data[((NI)1)]);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)99):
	case ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)100):
	{
		genVarSection__dfa_u1433(c_p0, n_p1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TNodeKind__eZrq5BxQzEyOryCcwdj4Kw)105):
	{
		raiseAssert__stdZassertions_u15(TM__rmUZTUif19aNVU5raHE2xtA_10);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	default:
	{
	}
	break;
	}
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___dfa_u1127)(tySequence__ASKXHf9aJJjLj0hSZ39ci19cA dest_p0) {
	NI colontmp_;
	colontmp_ = ((NI)0);
	{
		while (1) {
			NI T3_;
			T3_ = dest_p0.len;
			if (!(colontmp_ < T3_)) goto LA2;
			switch (dest_p0.p->data[colontmp_].isTryBlock) {
			case NIM_FALSE:
			{
				eqdestroy___dfa_u418(dest_p0.p->data[colontmp_]._isTryBlock_1.breakFixups);
				{
					NIM_BOOL T7_;
					T7_ = (NIM_BOOL)0;
					T7_ = nimDecRefIsLastDyn(dest_p0.p->data[colontmp_]._isTryBlock_1.label);
					if (!T7_) goto LA8_;
					eqdestroy___ast_u3469((&(*dest_p0.p->data[colontmp_]._isTryBlock_1.label)));
					nimRawDispose(dest_p0.p->data[colontmp_]._isTryBlock_1.label, ((NI)8));
				}
LA8_: ;
			}
			break;
			case NIM_TRUE:
			{
				eqdestroy___dfa_u589(dest_p0.p->data[colontmp_]._isTryBlock_2.raiseFixups);
				{
					NIM_BOOL T13_;
					T13_ = (NIM_BOOL)0;
					T13_ = nimDecRefIsLastDyn(dest_p0.p->data[colontmp_]._isTryBlock_2.finale);
					if (!T13_) goto LA14_;
					eqdestroy___ast_u3270((&(*dest_p0.p->data[colontmp_]._isTryBlock_2.finale)));
					nimRawDispose(dest_p0.p->data[colontmp_]._isTryBlock_2.finale, ((NI)8));
				}
LA14_: ;
			}
			break;
			default:
			{
			}
			break;
			}
			colontmp_ += ((NI)1);
		} LA2: ;
	}
	if (dest_p0.p && !(dest_p0.p->cap & NIM_STRLIT_FLAG)) {
 alignedDealloc(dest_p0.p, NIM_ALIGNOF(tyObject_TBlock__LegQi0ajkTVtggrD9avD75Q));
}
}
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___dfa_u1693)(tyObject_Con__wRKI8PR5jcP87QCiheFmFw* dest_p0) {
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = nimDecRefIsLastDyn((*dest_p0).root);
		if (!T3_) goto LA4_;
		eqdestroy___ast_u3469((&(*(*dest_p0).root)));
		nimRawDispose((*dest_p0).root, ((NI)8));
	}
LA4_: ;
	{
		NIM_BOOL T8_;
		T8_ = (NIM_BOOL)0;
		T8_ = nimDecRefIsLastDyn((*dest_p0).owner);
		if (!T8_) goto LA9_;
		eqdestroy___ast_u3469((&(*(*dest_p0).owner)));
		nimRawDispose((*dest_p0).owner, ((NI)8));
	}
LA9_: ;
	eqdestroy___dfa_u1127((*dest_p0).blocks);
	eqdestroy___dfa_u1525((*dest_p0).code);
}
N_LIB_PRIVATE N_NIMCALL(tySequence__1xFov7v9c2rs44orw6d9bPmw, constructCfg__dfa_u1495)(tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* s_p0, tyObject_TNode__eTSqWXWVL7LuzmZf0c6unQ* body_p1, tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* root_p2) {
	tySequence__1xFov7v9c2rs44orw6d9bPmw result;
	tyObject_Con__wRKI8PR5jcP87QCiheFmFw c_1;
	tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* colontmpD_;
	tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* colontmpD__2;
	tyObject_TSym__lYFc3T7YHHNBnaZR9at0NSg* colontmpD__3;
	NI oldLenX60gensym96__1;
	NI T2_;
	tyObject_TBlock__LegQi0ajkTVtggrD9avD75Q T3_;
NIM_BOOL oldNimErrFin1_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result.len = 0; result.p = NIM_NIL;
	nimZeroMem((void*)(&c_1), sizeof(tyObject_Con__wRKI8PR5jcP87QCiheFmFw));
	nimZeroMem((void*)(&c_1), sizeof(tyObject_Con__wRKI8PR5jcP87QCiheFmFw));
	c_1.code.len = 0; c_1.code.p = (tySequence__1xFov7v9c2rs44orw6d9bPmw_Content*) newSeqPayload(0, sizeof(tyObject_Instr__q6FqGagLCvmrvQAVu3oy4g), NIM_ALIGNOF(tyObject_Instr__q6FqGagLCvmrvQAVu3oy4g));
	c_1.blocks.len = 0; c_1.blocks.p = (tySequence__ASKXHf9aJJjLj0hSZ39ci19cA_Content*) newSeqPayload(0, sizeof(tyObject_TBlock__LegQi0ajkTVtggrD9avD75Q), NIM_ALIGNOF(tyObject_TBlock__LegQi0ajkTVtggrD9avD75Q));
	colontmpD_ = eqdup___ast_u4580(s_p0);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	c_1.owner = colontmpD_;
	colontmpD__2 = eqdup___ast_u4580(root_p2);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	c_1.root = colontmpD__2;
	T2_ = c_1.blocks.len;
	oldLenX60gensym96__1 = T2_;
	nimZeroMem((void*)(&T3_), sizeof(tyObject_TBlock__LegQi0ajkTVtggrD9avD75Q));
	nimZeroMem((void*)(&T3_), sizeof(tyObject_TBlock__LegQi0ajkTVtggrD9avD75Q));
	T3_.isTryBlock = NIM_FALSE;
	colontmpD__3 = eqdup___ast_u4580(s_p0);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	T3_._isTryBlock_1.label = colontmpD__3;
	T3_._isTryBlock_1.breakFixups.len = 0; T3_._isTryBlock_1.breakFixups.p = NIM_NIL;
	add__dfa_u830((&c_1.blocks), (&T3_));
	gen__dfa_u288((&c_1), body_p1);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	{
		if (!((*root_p2).kind == ((tyEnum_TSymKind__9a75lHd9cV25XwN4jXXBmM0Q)11))) goto LA6_;
		genImplicitReturn__dfa_u1314((&c_1));
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	}
LA6_: ;
	popBlock__dfa_u291((&c_1), oldLenX60gensym96__1);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	result = c_1.code;
	eqwasMoved___dfa_u1522((&c_1.code));
	{
		LA1_:;
	}
	{
		oldNimErrFin1_ = *nimErr_; *nimErr_ = NIM_FALSE;
		eqdestroy___dfa_u1693((&c_1));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		*nimErr_ = oldNimErrFin1_;
	}
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
