/* Generated by Nim Compiler v1.6.10 */
#define NIM_INTBITS 32

#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
#define nimfr_(x, y)
#define nimln_(x, y)
typedef struct tySequence__hj4BvueOlKB8Z1Qw2ZU4nQ tySequence__hj4BvueOlKB8Z1Qw2ZU4nQ;
typedef struct TGenericSeq TGenericSeq;
typedef struct tyObject_Instr__Iclb1njvAJfjjEpCLzUzZg tyObject_Instr__Iclb1njvAJfjjEpCLzUzZg;
typedef struct tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw;
typedef struct tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ;
typedef struct tyObject_Con__eFhkbMY30pSTdER2YWz9cRw tyObject_Con__eFhkbMY30pSTdER2YWz9cRw;
typedef struct tySequence__bZP29c0SHT9aMkbSl4EFvgCg tySequence__bZP29c0SHT9aMkbSl4EFvgCg;
typedef struct tyObject_TBlock__J29b9b9cJiD9aK19cdoA7IwWiyA tyObject_TBlock__J29b9b9cJiD9aK19cdoA7IwWiyA;
typedef struct tySequence__m6h1zim2DFUPFJioFj0P9cg tySequence__m6h1zim2DFUPFJioFj0P9cg;
typedef struct tySequence__qwqHTkRvwhrRyENtudHQ7g tySequence__qwqHTkRvwhrRyENtudHQ7g;
typedef struct TNimType TNimType;
typedef struct TNimNode TNimNode;
typedef struct tyTuple__tFiYBoaBrKZKt1Te12yKUQ tyTuple__tFiYBoaBrKZKt1Te12yKUQ;
typedef struct tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ;
typedef struct tyObject_TType__facALICuu8zUj0hjvbTLFg tyObject_TType__facALICuu8zUj0hjvbTLFg;
typedef struct tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q;
typedef struct NimStringDesc NimStringDesc;
typedef struct tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA;
typedef struct tyObject_TIdObj__KUwfjfUQEwGHguQbTcXu7w tyObject_TIdObj__KUwfjfUQEwGHguQbTcXu7w;
typedef struct RootObj RootObj;
typedef struct tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g;
typedef struct tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA;
typedef struct tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA;
typedef struct tyObject_TLib__NBMxlJ6g3utqUlplqTTHkA tyObject_TLib__NBMxlJ6g3utqUlplqTTHkA;
typedef struct tySequence__9aZVGG5Gtti9cC9bqRpXCtA3A tySequence__9aZVGG5Gtti9cC9bqRpXCtA3A;
typedef struct tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g;
typedef struct tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w;
typedef struct tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ;
typedef struct tyObject_GcStack__7fytPA5bBsob6See21YMRA tyObject_GcStack__7fytPA5bBsob6See21YMRA;
typedef struct tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg;
typedef struct tyObject_SmallChunk__tXn60W2f8h3jgAYdEmy5NQ tyObject_SmallChunk__tXn60W2f8h3jgAYdEmy5NQ;
typedef struct tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg;
typedef struct tyObject_LLChunk__XsENErzHIZV9bhvyJx56wGw tyObject_LLChunk__XsENErzHIZV9bhvyJx56wGw;
typedef struct tyObject_IntSet__EZObFrE3NC9bIb3YMkY9crZA tyObject_IntSet__EZObFrE3NC9bIb3YMkY9crZA;
typedef struct tyObject_Trunk__W0r8S0Y3UGke6T9bIUWnnuw tyObject_Trunk__W0r8S0Y3UGke6T9bIUWnnuw;
typedef struct tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw;
typedef struct tyObject_HeapLinks__PDV1HBZ8CQSQJC9aOBFNRSg tyObject_HeapLinks__PDV1HBZ8CQSQJC9aOBFNRSg;
typedef struct tyTuple__ujsjpB2O9cjj3uDHsXbnSzg tyTuple__ujsjpB2O9cjj3uDHsXbnSzg;
typedef struct tyObject_GcStat__0RwLoVBHZPfUAcLczmfQAg tyObject_GcStat__0RwLoVBHZPfUAcLczmfQAg;
typedef struct tyObject_CellSet__jG87P0AI9aZtss9ccTYBIISQ tyObject_CellSet__jG87P0AI9aZtss9ccTYBIISQ;
typedef struct tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg;
struct TGenericSeq {
NI len;
NI reserved;
};
typedef NU8 tyEnum_InstrKind__kmjEwko0gQNypI4MTa9chwQ;
struct tyObject_Instr__Iclb1njvAJfjjEpCLzUzZg {
tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n;
tyEnum_InstrKind__kmjEwko0gQNypI4MTa9chwQ kind;
union{
NI dest;
};
};
struct tyObject_Con__eFhkbMY30pSTdER2YWz9cRw {
tySequence__hj4BvueOlKB8Z1Qw2ZU4nQ* code;
NI inTryStmt;
tySequence__bZP29c0SHT9aMkbSl4EFvgCg* blocks;
tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* owner;
};
struct tyObject_TBlock__J29b9b9cJiD9aK19cdoA7IwWiyA {
NIM_BOOL isTryBlock;
union{
struct {tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* label;
tySequence__m6h1zim2DFUPFJioFj0P9cg* breakFixups;
} _isTryBlock_1;
struct {tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* finale;
tySequence__qwqHTkRvwhrRyENtudHQ7g* raiseFixups;
} _isTryBlock_2;
};
};
typedef NU8 tyEnum_TNimKind__jIBKr1ejBgsfM33Kxw4j7A;
typedef NU8 tySet_tyEnum_TNimTypeFlag__v8QUszD1sWlSIWZz7mC4bQ;
typedef N_NIMCALL_PTR(void, tyProc__ojoeKfW4VYIm36I9cpDTQIg) (void* p, NI op);
typedef N_NIMCALL_PTR(void*, tyProc__WSm2xU5ARYv9aAR4l0z9c9auQ) (void* p);
struct TNimType {
NI size;
NI align;
tyEnum_TNimKind__jIBKr1ejBgsfM33Kxw4j7A kind;
tySet_tyEnum_TNimTypeFlag__v8QUszD1sWlSIWZz7mC4bQ flags;
TNimType* base;
TNimNode* node;
void* finalizer;
tyProc__ojoeKfW4VYIm36I9cpDTQIg marker;
tyProc__WSm2xU5ARYv9aAR4l0z9c9auQ deepcopy;
};
typedef NU8 tyEnum_TNimNodeKind__unfNsxrcATrufDZmpBq4HQ;
struct TNimNode {
tyEnum_TNimNodeKind__unfNsxrcATrufDZmpBq4HQ kind;
NI offset;
TNimType* typ;
NCSTRING name;
NI len;
TNimNode** sons;
};
struct tyTuple__tFiYBoaBrKZKt1Te12yKUQ {
NI Field0;
tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ* Field1;
};
struct tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q {
NU16 line;
NI16 col;
NI32 fileIndex;
};
typedef NU32 tySet_tyEnum_TNodeFlag__jyh9acXHkhZANSSvPIY7ZLg;
typedef NU8 tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw;
struct NimStringDesc {
  TGenericSeq Sup;
NIM_CHAR data[SEQ_DECL_SIZE];
};
struct tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw {
tyObject_TType__facALICuu8zUj0hjvbTLFg* typ;
tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info;
tySet_tyEnum_TNodeFlag__jyh9acXHkhZANSSvPIY7ZLg flags;
tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw kind;
union{
struct {NI64 intVal;
} _kind_1;
struct {NF floatVal;
} _kind_2;
struct {NimStringDesc* strVal;
} _kind_3;
struct {tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* sym;
} _kind_4;
struct {tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA* ident;
} _kind_5;
struct {tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ* sons;
} _kind_6;
};
};
struct RootObj {
TNimType* m_type;
};
struct tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g {
NI32 module;
NI32 item;
};
struct tyObject_TIdObj__KUwfjfUQEwGHguQbTcXu7w {
  RootObj Sup;
tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g itemId;
};
typedef NU8 tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw;
typedef NU16 tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg;
typedef NU64 tySet_tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw;
typedef NU32 tySet_tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg;
typedef NU8 tyEnum_TLocKind__O7PRFZKuiBBWbku09cayVBg;
typedef NU8 tyEnum_TStorageLoc__JK9cKMX3XnqHaUky9b6gkGEw;
typedef NU16 tySet_tyEnum_TLocFlag__o2bqJgR4ceIupnUSpxiudA;
struct tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA {
tyEnum_TLocKind__O7PRFZKuiBBWbku09cayVBg k;
tyEnum_TStorageLoc__JK9cKMX3XnqHaUky9b6gkGEw storage;
tySet_tyEnum_TLocFlag__o2bqJgR4ceIupnUSpxiudA flags;
tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* lode;
tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* r;
};
struct tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ {
  tyObject_TIdObj__KUwfjfUQEwGHguQbTcXu7w Sup;
tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw kind;
union{
struct {tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* gcUnsafetyReason;
tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* transformedBody;
} _kind_1;
struct {tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* guard;
NI bitsize;
NI alignment;
} _kind_2;
};
tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg magic;
tyObject_TType__facALICuu8zUj0hjvbTLFg* typ;
tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA* name;
tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info;
tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* owner;
tySet_tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw flags;
tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* ast;
tySet_tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg options;
NI position;
NI offset;
tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA loc;
tyObject_TLib__NBMxlJ6g3utqUlplqTTHkA* annex;
tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* constraint;
};
typedef NU8 tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag;
typedef NU8 tyEnum_TCallingConvention__yjAJ8w0h1PBaSwSGJ3P7IA;
typedef NU64 tySet_tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw;
struct tyObject_TType__facALICuu8zUj0hjvbTLFg {
  tyObject_TIdObj__KUwfjfUQEwGHguQbTcXu7w Sup;
tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag kind;
tyEnum_TCallingConvention__yjAJ8w0h1PBaSwSGJ3P7IA callConv;
tySet_tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw flags;
tySequence__9aZVGG5Gtti9cC9bqRpXCtA3A* sons;
tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n;
tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* owner;
tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* sym;
NI64 size;
NI16 align;
NI16 paddingAtEnd;
NI16 lockLevel;
tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA loc;
tyObject_TType__facALICuu8zUj0hjvbTLFg* typeInst;
tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g uniqueId;
};
typedef NU8 tySet_tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag[9];
struct tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g {
NI refcount;
TNimType* typ;
};
struct tyObject_GcStack__7fytPA5bBsob6See21YMRA {
void* bottom;
};
struct tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w {
NI len;
NI cap;
tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g** d;
};
typedef tyObject_SmallChunk__tXn60W2f8h3jgAYdEmy5NQ* tyArray__SPr7N6UKfuF549bNPiUvSRw[256];
typedef NU32 tyArray__BHbOSqU1t9b3Gt7K2c6fQig[24];
typedef tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg* tyArray__N1u1nqOgmuJN9cSZrnMHgOQ[32];
typedef tyArray__N1u1nqOgmuJN9cSZrnMHgOQ tyArray__B6durA4ZCi1xjJvRtyYxMg[24];
typedef tyObject_Trunk__W0r8S0Y3UGke6T9bIUWnnuw* tyArray__lh2A89ahMmYg9bCmpVaplLbA[256];
struct tyObject_IntSet__EZObFrE3NC9bIb3YMkY9crZA {
tyArray__lh2A89ahMmYg9bCmpVaplLbA data;
};
typedef tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* tyArray__0aOLqZchNi8nWtMTi8ND8w[2];
struct tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw {
tyArray__0aOLqZchNi8nWtMTi8ND8w link;
NI key;
NI upperBound;
NI level;
};
struct tyTuple__ujsjpB2O9cjj3uDHsXbnSzg {
tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg* Field0;
NI Field1;
};
typedef tyTuple__ujsjpB2O9cjj3uDHsXbnSzg tyArray__LzOv2eCDGiceMKQstCLmhw[30];
struct tyObject_HeapLinks__PDV1HBZ8CQSQJC9aOBFNRSg {
NI len;
tyArray__LzOv2eCDGiceMKQstCLmhw chunks;
tyObject_HeapLinks__PDV1HBZ8CQSQJC9aOBFNRSg* next;
};
struct tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg {
NI minLargeObj;
NI maxLargeObj;
tyArray__SPr7N6UKfuF549bNPiUvSRw freeSmallChunks;
NU32 flBitmap;
tyArray__BHbOSqU1t9b3Gt7K2c6fQig slBitmap;
tyArray__B6durA4ZCi1xjJvRtyYxMg matrix;
tyObject_LLChunk__XsENErzHIZV9bhvyJx56wGw* llmem;
NI currMem;
NI maxMem;
NI freeMem;
NI occ;
NI lastSize;
tyObject_IntSet__EZObFrE3NC9bIb3YMkY9crZA chunkStarts;
tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* root;
tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* deleted;
tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* last;
tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* freeAvlNodes;
NIM_BOOL locked;
NIM_BOOL blockChunkSizeIncrease;
NI nextChunkSize;
tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw bottomData;
tyObject_HeapLinks__PDV1HBZ8CQSQJC9aOBFNRSg heapLinks;
};
struct tyObject_GcStat__0RwLoVBHZPfUAcLczmfQAg {
NI stackScans;
NI cycleCollections;
NI maxThreshold;
NI maxStackSize;
NI maxStackCells;
NI cycleTableSize;
NI64 maxPause;
};
struct tyObject_CellSet__jG87P0AI9aZtss9ccTYBIISQ {
NI counter;
NI max;
tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg* head;
tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg** data;
};
struct tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ {
tyObject_GcStack__7fytPA5bBsob6See21YMRA stack;
NI cycleThreshold;
NI zctThreshold;
tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w zct;
tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w decStack;
tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w tempStack;
NI recGcLock;
tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg region;
tyObject_GcStat__0RwLoVBHZPfUAcLczmfQAg stat;
tyObject_CellSet__jG87P0AI9aZtss9ccTYBIISQ marked;
tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w additionalRoots;
NI gcThreadId;
};
typedef NU8 tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw;
typedef NU8 tySet_tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw[21];
typedef NI tyArray__HU7qaqKu9czJLT84iCBJnsA[2];
typedef NU8 tyEnum_AliasKind__mOZtJx9b3QXuy9bfWq9cuUNCg;
typedef NU8 tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw;
struct tySequence__hj4BvueOlKB8Z1Qw2ZU4nQ {
  TGenericSeq Sup;
  tyObject_Instr__Iclb1njvAJfjjEpCLzUzZg data[SEQ_DECL_SIZE];
};
struct tySequence__bZP29c0SHT9aMkbSl4EFvgCg {
  TGenericSeq Sup;
  tyObject_TBlock__J29b9b9cJiD9aK19cdoA7IwWiyA data[SEQ_DECL_SIZE];
};
struct tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ {
  TGenericSeq Sup;
  tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* data[SEQ_DECL_SIZE];
};
struct tySequence__m6h1zim2DFUPFJioFj0P9cg {
  TGenericSeq Sup;
  tyTuple__tFiYBoaBrKZKt1Te12yKUQ data[SEQ_DECL_SIZE];
};
struct tySequence__qwqHTkRvwhrRyENtudHQ7g {
  TGenericSeq Sup;
  NI data[SEQ_DECL_SIZE];
};
struct tySequence__9aZVGG5Gtti9cC9bqRpXCtA3A {
  TGenericSeq Sup;
  tyObject_TType__facALICuu8zUj0hjvbTLFg* data[SEQ_DECL_SIZE];
};
static N_INLINE(void, nimZeroMem)(void* p, NI size);
static N_INLINE(void, nimSetMem__systemZmemory_7)(void* a, int v, NI size);
N_LIB_PRIVATE N_NIMCALL(TGenericSeq*, incrSeqV3)(TGenericSeq* s, TNimType* typ);
N_LIB_PRIVATE N_NIMCALL(void, nimGCvisit)(void* d, NI op);
static N_NIMCALL(void, Marker_tySequence__m6h1zim2DFUPFJioFj0P9cg)(void* p, NI op);
static N_NIMCALL(void, Marker_tySequence__bZP29c0SHT9aMkbSl4EFvgCg)(void* p, NI op);
N_LIB_PRIVATE N_NIMCALL(void, genericAssign)(void* dest, void* src, TNimType* mt);
N_LIB_PRIVATE N_NIMCALL(void, gen__dfa_200)(tyObject_Con__eFhkbMY30pSTdER2YWz9cRw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(void, genUse__dfa_970)(tyObject_Con__eFhkbMY30pSTdER2YWz9cRw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* orig);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, skipTrivials__dfa_958)(tyObject_Con__eFhkbMY30pSTdER2YWz9cRw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
static N_NIMCALL(void, Marker_tySequence__hj4BvueOlKB8Z1Qw2ZU4nQ)(void* p, NI op);
N_LIB_PRIVATE N_NIMCALL(void, unsureAsgnRef)(void** dest, void* src);
N_LIB_PRIVATE N_NIMCALL(void, genMagic__dfa_1033)(tyObject_Con__eFhkbMY30pSTdER2YWz9cRw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg m);
N_LIB_PRIVATE N_NIMCALL(void, genAndOr__dfa_451)(tyObject_Con__eFhkbMY30pSTdER2YWz9cRw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(NI, forkI__dfa_83)(tyObject_Con__eFhkbMY30pSTdER2YWz9cRw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(void, patch__dfa_175)(tyObject_Con__eFhkbMY30pSTdER2YWz9cRw* c, NI p);
N_LIB_PRIVATE N_NIMCALL(void, failedAssertImpl__systemZassertions_56)(NimStringDesc* msg);
N_LIB_PRIVATE N_NIMCALL(void, genDef__dfa_986)(tyObject_Con__eFhkbMY30pSTdER2YWz9cRw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* orig);
static N_INLINE(NI, len__ast_3151)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(void, genCall__dfa_1002)(tyObject_Con__eFhkbMY30pSTdER2YWz9cRw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__facALICuu8zUj0hjvbTLFg*, skipTypes__ast_3710)(tyObject_TType__facALICuu8zUj0hjvbTLFg* t, tySet_tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag kinds);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, canRaiseConservative__ast_5051)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* fn);
N_LIB_PRIVATE N_NIMCALL(void, genBreakOrRaiseAux__dfa_562)(tyObject_Con__eFhkbMY30pSTdER2YWz9cRw* c, NI i, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(NI, gotoI__dfa_126)(tyObject_Con__eFhkbMY30pSTdER2YWz9cRw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
static N_INLINE(void, asgnRef)(void** dest, void* src);
static N_INLINE(void, incRef__system_5308)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c);
static N_INLINE(NI, pluspercent___system_696)(NI x, NI y);
static N_INLINE(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*, usrToCell__system_5270)(void* usr);
static N_INLINE(NI, minuspercent___system_716)(NI x, NI y);
static N_INLINE(void, decRef__system_5315)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c);
static N_INLINE(NIM_BOOL, ltpercent___system_1005)(NI x, NI y);
static N_INLINE(void, rtlAddZCT__system_5313)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c);
N_LIB_PRIVATE N_NOINLINE(void, addZCT__system_5264)(tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w* s, tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c);
N_LIB_PRIVATE N_NIMCALL(void, genericSeqAssign)(void* dest, void* src, TNimType* mt);
N_LIB_PRIVATE N_NIMCALL(void, genIf__dfa_402)(tyObject_Con__eFhkbMY30pSTdER2YWz9cRw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(void, genCase__dfa_458)(tyObject_Con__eFhkbMY30pSTdER2YWz9cRw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, lastSon__ast_4807)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
static N_INLINE(NI*, X5BX5D___dfa_499)(NI* s, NI sLen_0, NI i);
N_LIB_PRIVATE N_NIMCALL(void, genWhile__dfa_318)(tyObject_Con__eFhkbMY30pSTdER2YWz9cRw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isTrue__dfa_303)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(void, popBlock__dfa_203)(tyObject_Con__eFhkbMY30pSTdER2YWz9cRw* c, NI oldLen);
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, newNode__ast_3285)(tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw kind);
N_LIB_PRIVATE N_NIMCALL(TGenericSeq*, setLengthSeqV2)(TGenericSeq* s, TNimType* typ, NI newLen);
N_LIB_PRIVATE N_NIMCALL(void, genBlock__dfa_548)(tyObject_Con__eFhkbMY30pSTdER2YWz9cRw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(void, genReturn__dfa_775)(tyObject_Con__eFhkbMY30pSTdER2YWz9cRw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(void, genImplicitReturn__dfa_765)(tyObject_Con__eFhkbMY30pSTdER2YWz9cRw* c);
N_LIB_PRIVATE N_NIMCALL(void, genRaise__dfa_738)(tyObject_Con__eFhkbMY30pSTdER2YWz9cRw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(void, genBreak__dfa_616)(tyObject_Con__eFhkbMY30pSTdER2YWz9cRw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(void, genTry__dfa_647)(tyObject_Con__eFhkbMY30pSTdER2YWz9cRw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
static N_INLINE(NI, safeLen__ast_3144)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
N_LIB_PRIVATE N_NIMCALL(void, genVarSection__dfa_1047)(tyObject_Con__eFhkbMY30pSTdER2YWz9cRw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
static N_INLINE(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw**, X5BX5D___ast_4811)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw** s, NI sLen_0, NI i);
static N_INLINE(NIM_BOOL, isSinkParam__ast_5005)(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* s);
N_LIB_PRIVATE TNimType NTItblock__J29b9b9cJiD9aK19cdoA7IwWiyA_;
extern TNimType NTIbool__VaVACK0bpYmqIQ0mKcHfQQ_;
TNimNode* NimDT___J29b9b9cJiD9aK19cdoA7IwWiyA_isTryBlock[3];
extern TNimType NTIpsym__dG2QVH5Z69aMUY38zTqWxaA_;
N_LIB_PRIVATE TNimType NTILtposition_seqLpnodeTT__tFiYBoaBrKZKt1Te12yKUQ_;
extern TNimType NTIint__rR5Bzr1D5krxoo1NcNyeMA_;
extern TNimType NTItnodeseq__ehmV9bTklH2Gt9cXHV9c0HLeQ_;
N_LIB_PRIVATE TNimType NTIseqLLtposition_seqLpnodeTTT__m6h1zim2DFUPFJioFj0P9cg_;
extern TNimType NTIpnode__fKfcLzXYiz5jNu3NH3Tv8Q_;
extern TNimType NTIseqLtpositionT__qwqHTkRvwhrRyENtudHQ7g_;
N_LIB_PRIVATE TNimType NTIseqLtblockT__bZP29c0SHT9aMkbSl4EFvgCg_;
N_LIB_PRIVATE TNimType NTIinstr__Iclb1njvAJfjjEpCLzUzZg_;
N_LIB_PRIVATE TNimType NTIinstrkind__kmjEwko0gQNypI4MTa9chwQ_;
TNimNode* NimDT___Iclb1njvAJfjjEpCLzUzZg_kind[5];
N_LIB_PRIVATE TNimType NTIcontrolflowgraph__hj4BvueOlKB8Z1Qw2ZU4nQ_;
STRING_LITERAL(TM__rmUZTUif19aNVU5raHE2xtA_9, "dfa.nim(272, 12) `low(int) div 2 + 1 < c.code.len - p.int and c.code.len - p.int < high(int) div 2` ", 100);
static NIM_CONST tySet_tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag TM__rmUZTUif19aNVU5raHE2xtA_10 = {
0x10, 0xa9, 0x00, 0x00, 0x00, 0x60, 0x80, 0x00,
0x00}
;
static NIM_CONST tySet_tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw TM__rmUZTUif19aNVU5raHE2xtA_11 = {
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__9a3YiReNVD0IJHWFKgXRe9ag TM__rmUZTUif19aNVU5raHE2xtA_12 = {
0x10, 0xa8, 0x90, 0x00, 0x00, 0x60, 0x80, 0x00,
0x00}
;
STRING_LITERAL(TM__rmUZTUif19aNVU5raHE2xtA_13, "dfa.nim(809, 24) `false` dfa construction pass requires the elimination of \'defer\'", 82);
N_LIB_PRIVATE TNimType NTIaliaskind__mOZtJx9b3QXuy9bfWq9cuUNCg_;
static NIM_CONST tySet_tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag TM__rmUZTUif19aNVU5raHE2xtA_17 = {
0x10, 0xa9, 0x00, 0x00, 0x00, 0x40, 0x80, 0x00,
0x00}
;
extern tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ gch__system_5217;
static N_INLINE(void, nimSetMem__systemZmemory_7)(void* a, int v, NI size) {
	void* T1_;
	T1_ = (void*)0;
	T1_ = memset(a, v, ((size_t) (size)));
}
static N_INLINE(void, nimZeroMem)(void* p, NI size) {
	nimSetMem__systemZmemory_7(p, ((int) 0), size);
}
static N_NIMCALL(void, Marker_tySequence__m6h1zim2DFUPFJioFj0P9cg)(void* p, NI op) {
	tySequence__m6h1zim2DFUPFJioFj0P9cg* a;
	NI T1_;
	a = (tySequence__m6h1zim2DFUPFJioFj0P9cg*)p;
	T1_ = (NI)0;
	for (T1_ = 0; T1_ < (a ? a->Sup.len : 0); T1_++) {
	nimGCvisit((void*)a->data[T1_].Field1, op);
	}
}
static N_NIMCALL(void, Marker_tySequence__bZP29c0SHT9aMkbSl4EFvgCg)(void* p, NI op) {
	tySequence__bZP29c0SHT9aMkbSl4EFvgCg* a;
	NI T1_;
	a = (tySequence__bZP29c0SHT9aMkbSl4EFvgCg*)p;
	T1_ = (NI)0;
	for (T1_ = 0; T1_ < (a ? a->Sup.len : 0); T1_++) {
	switch (a->data[T1_].isTryBlock) {
	case NIM_FALSE:
	nimGCvisit((void*)a->data[T1_]._isTryBlock_1.label, op);
	nimGCvisit((void*)a->data[T1_]._isTryBlock_1.breakFixups, op);
	break;
	case NIM_TRUE:
	nimGCvisit((void*)a->data[T1_]._isTryBlock_2.finale, op);
	nimGCvisit((void*)a->data[T1_]._isTryBlock_2.raiseFixups, op);
	break;
	} 
	}
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, skipTrivials__dfa_958)(tyObject_Con__eFhkbMY30pSTdER2YWz9cRw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	result = NIM_NIL;
	result = n;
	{
		while (1) {
			switch ((*result).kind) {
			case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 45) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 47):
			case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 63) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 67):
			{
				result = (*result)._kind_6.sons->data[((NI) 0)];
			}
			break;
			case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 42):
			{
				gen__dfa_200(c, (*result)._kind_6.sons->data[((NI) 1)]);
				result = (*result)._kind_6.sons->data[((NI) 0)];
			}
			break;
			case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 58) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 59):
			{
				result = (*result)._kind_6.sons->data[((NI) 1)];
			}
			break;
			default:
			{
				goto LA1;
			}
			break;
			}
		}
	} LA1: ;
	return result;
}
static N_NIMCALL(void, Marker_tySequence__hj4BvueOlKB8Z1Qw2ZU4nQ)(void* p, NI op) {
	tySequence__hj4BvueOlKB8Z1Qw2ZU4nQ* a;
	NI T1_;
	a = (tySequence__hj4BvueOlKB8Z1Qw2ZU4nQ*)p;
	T1_ = (NI)0;
	for (T1_ = 0; T1_ < (a ? a->Sup.len : 0); T1_++) {
	nimGCvisit((void*)a->data[T1_].n, op);
	switch (a->data[T1_].kind) {
	case ((tyEnum_InstrKind__kmjEwko0gQNypI4MTa9chwQ) 0):
	case ((tyEnum_InstrKind__kmjEwko0gQNypI4MTa9chwQ) 1):
	break;
	default:
	break;
	} 
	}
}
N_LIB_PRIVATE N_NIMCALL(void, genUse__dfa_970)(tyObject_Con__eFhkbMY30pSTdER2YWz9cRw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* orig) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n;
	n = skipTrivials__dfa_958(c, orig);
	{
		if (!((*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3))) goto LA3_;
		{
			tyObject_Instr__Iclb1njvAJfjjEpCLzUzZg T9_;
			NI T10_;
			if (!((2100008 &((NU32)1<<((NU)((*(*n)._kind_4.sym).kind)&31U)))!=0)) goto LA7_;
			nimZeroMem((void*)(&T9_), sizeof(tyObject_Instr__Iclb1njvAJfjjEpCLzUzZg));
			nimZeroMem((void*)(&T9_), sizeof(tyObject_Instr__Iclb1njvAJfjjEpCLzUzZg));
			T9_.n = orig;
			T9_.kind = ((tyEnum_InstrKind__kmjEwko0gQNypI4MTa9chwQ) 3);
			unsureAsgnRef((void**) (&(*c).code), (tySequence__hj4BvueOlKB8Z1Qw2ZU4nQ*) incrSeqV3((TGenericSeq*)((*c).code), (&NTIcontrolflowgraph__hj4BvueOlKB8Z1Qw2ZU4nQ_)));
			T10_ = (*c).code->Sup.len++;
			genericAssign((void*)(&(*c).code->data[T10_]), (void*)(&T9_), (&NTIinstr__Iclb1njvAJfjjEpCLzUzZg_));
		}
		LA7_: ;
	}
	goto LA1_;
	LA3_: ;
	{
		gen__dfa_200(c, n);
	}
	LA1_: ;
}
N_LIB_PRIVATE N_NIMCALL(NI, forkI__dfa_83)(tyObject_Con__eFhkbMY30pSTdER2YWz9cRw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	NI result;
	NI T1_;
	tyObject_Instr__Iclb1njvAJfjjEpCLzUzZg T2_;
	NI T3_;
	result = (NI)0;
	T1_ = ((*c).code ? (*c).code->Sup.len : 0);
	result = T1_;
	nimZeroMem((void*)(&T2_), sizeof(tyObject_Instr__Iclb1njvAJfjjEpCLzUzZg));
	nimZeroMem((void*)(&T2_), sizeof(tyObject_Instr__Iclb1njvAJfjjEpCLzUzZg));
	T2_.n = n;
	T2_.kind = ((tyEnum_InstrKind__kmjEwko0gQNypI4MTa9chwQ) 1);
	T2_.dest = ((NI) 0);
	unsureAsgnRef((void**) (&(*c).code), (tySequence__hj4BvueOlKB8Z1Qw2ZU4nQ*) incrSeqV3((TGenericSeq*)((*c).code), (&NTIcontrolflowgraph__hj4BvueOlKB8Z1Qw2ZU4nQ_)));
	T3_ = (*c).code->Sup.len++;
	genericAssign((void*)(&(*c).code->data[T3_]), (void*)(&T2_), (&NTIinstr__Iclb1njvAJfjjEpCLzUzZg_));
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, patch__dfa_175)(tyObject_Con__eFhkbMY30pSTdER2YWz9cRw* c, NI p) {
	NI T9_;
	{
		NIM_BOOL T3_;
		NI T4_;
		NI T6_;
		T3_ = (NIM_BOOL)0;
		T4_ = ((*c).code ? (*c).code->Sup.len : 0);
		T3_ = (((NI) -1073741823) < (NI)(T4_ - p));
		if (!(T3_)) goto LA5_;
		T6_ = ((*c).code ? (*c).code->Sup.len : 0);
		T3_ = ((NI)(T6_ - p) < ((NI) 1073741823));
		LA5_: ;
		if (!!(T3_)) goto LA7_;
		failedAssertImpl__systemZassertions_56(((NimStringDesc*) &TM__rmUZTUif19aNVU5raHE2xtA_9));
	}
	LA7_: ;
	T9_ = ((*c).code ? (*c).code->Sup.len : 0);
	(*c).code->data[p].dest = (NI)(T9_ - p);
}
N_LIB_PRIVATE N_NIMCALL(void, genAndOr__dfa_451)(tyObject_Con__eFhkbMY30pSTdER2YWz9cRw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	NI lab1X60gensym28_;
	gen__dfa_200(c, (*n)._kind_6.sons->data[((NI) 1)]);
	lab1X60gensym28_ = forkI__dfa_83(c, n);
	gen__dfa_200(c, (*n)._kind_6.sons->data[((NI) 2)]);
	patch__dfa_175(c, lab1X60gensym28_);
}
N_LIB_PRIVATE N_NIMCALL(void, genDef__dfa_986)(tyObject_Con__eFhkbMY30pSTdER2YWz9cRw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* orig) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n;
	n = skipTrivials__dfa_958(c, orig);
	{
		NIM_BOOL T3_;
		tyObject_Instr__Iclb1njvAJfjjEpCLzUzZg T7_;
		NI T8_;
		T3_ = (NIM_BOOL)0;
		T3_ = ((*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3));
		if (!(T3_)) goto LA4_;
		T3_ = ((2100008 &((NU32)1<<((NU)((*(*n)._kind_4.sym).kind)&31U)))!=0);
		LA4_: ;
		if (!T3_) goto LA5_;
		nimZeroMem((void*)(&T7_), sizeof(tyObject_Instr__Iclb1njvAJfjjEpCLzUzZg));
		nimZeroMem((void*)(&T7_), sizeof(tyObject_Instr__Iclb1njvAJfjjEpCLzUzZg));
		T7_.n = orig;
		T7_.kind = ((tyEnum_InstrKind__kmjEwko0gQNypI4MTa9chwQ) 2);
		unsureAsgnRef((void**) (&(*c).code), (tySequence__hj4BvueOlKB8Z1Qw2ZU4nQ*) incrSeqV3((TGenericSeq*)((*c).code), (&NTIcontrolflowgraph__hj4BvueOlKB8Z1Qw2ZU4nQ_)));
		T8_ = (*c).code->Sup.len++;
		genericAssign((void*)(&(*c).code->data[T8_]), (void*)(&T7_), (&NTIinstr__Iclb1njvAJfjjEpCLzUzZg_));
	}
	LA5_: ;
}
static N_INLINE(NI, len__ast_3151)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	NI result;
	NI T1_;
	result = (NI)0;
	T1_ = ((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0);
	result = T1_;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NI, gotoI__dfa_126)(tyObject_Con__eFhkbMY30pSTdER2YWz9cRw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	NI result;
	NI T1_;
	tyObject_Instr__Iclb1njvAJfjjEpCLzUzZg T2_;
	NI T3_;
	result = (NI)0;
	T1_ = ((*c).code ? (*c).code->Sup.len : 0);
	result = T1_;
	nimZeroMem((void*)(&T2_), sizeof(tyObject_Instr__Iclb1njvAJfjjEpCLzUzZg));
	nimZeroMem((void*)(&T2_), sizeof(tyObject_Instr__Iclb1njvAJfjjEpCLzUzZg));
	T2_.n = n;
	T2_.kind = ((tyEnum_InstrKind__kmjEwko0gQNypI4MTa9chwQ) 0);
	T2_.dest = ((NI) 0);
	unsureAsgnRef((void**) (&(*c).code), (tySequence__hj4BvueOlKB8Z1Qw2ZU4nQ*) incrSeqV3((TGenericSeq*)((*c).code), (&NTIcontrolflowgraph__hj4BvueOlKB8Z1Qw2ZU4nQ_)));
	T3_ = (*c).code->Sup.len++;
	genericAssign((void*)(&(*c).code->data[T3_]), (void*)(&T2_), (&NTIinstr__Iclb1njvAJfjjEpCLzUzZg_));
	return result;
}
static N_INLINE(NI, pluspercent___system_696)(NI x, NI y) {
	NI result;
	result = (NI)0;
	result = ((NI) ((NU)((NU32)(((NU) (x))) + (NU32)(((NU) (y))))));
	return result;
}
static N_INLINE(void, incRef__system_5308)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c) {
	(*c).refcount = pluspercent___system_696((*c).refcount, ((NI) 8));
}
static N_INLINE(NI, minuspercent___system_716)(NI x, NI y) {
	NI result;
	result = (NI)0;
	result = ((NI) ((NU)((NU32)(((NU) (x))) - (NU32)(((NU) (y))))));
	return result;
}
static N_INLINE(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*, usrToCell__system_5270)(void* usr) {
	tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* result;
	NI T1_;
	result = (tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*)0;
	T1_ = (NI)0;
	T1_ = minuspercent___system_716(((NI) (ptrdiff_t) (usr)), ((NI) 8));
	result = ((tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*) (T1_));
	return result;
}
static N_INLINE(NIM_BOOL, ltpercent___system_1005)(NI x, NI y) {
	NIM_BOOL result;
	result = (NIM_BOOL)0;
	result = ((NU32)(((NU) (x))) < (NU32)(((NU) (y))));
	return result;
}
static N_INLINE(void, rtlAddZCT__system_5313)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c) {
	addZCT__system_5264((&gch__system_5217.zct), c);
}
static N_INLINE(void, decRef__system_5315)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c) {
	(*c).refcount = minuspercent___system_716((*c).refcount, ((NI) 8));
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = ltpercent___system_1005((*c).refcount, ((NI) 8));
		if (!T3_) goto LA4_;
		rtlAddZCT__system_5313(c);
	}
	LA4_: ;
}
static N_INLINE(void, asgnRef)(void** dest, void* src) {
	{
		tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* T5_;
		if (!!((src == NIM_NIL))) goto LA3_;
		T5_ = (tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*)0;
		T5_ = usrToCell__system_5270(src);
		incRef__system_5308(T5_);
	}
	LA3_: ;
	{
		tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* T10_;
		if (!!(((*dest) == NIM_NIL))) goto LA8_;
		T10_ = (tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*)0;
		T10_ = usrToCell__system_5270((*dest));
		decRef__system_5315(T10_);
	}
	LA8_: ;
	(*dest) = src;
}
N_LIB_PRIVATE N_NIMCALL(void, genBreakOrRaiseAux__dfa_562)(tyObject_Con__eFhkbMY30pSTdER2YWz9cRw* c, NI i, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	NI lab1;
	lab1 = gotoI__dfa_126(c, n);
	{
		NI T5_;
		if (!(*c).blocks->data[i].isTryBlock) goto LA3_;
		asgnRef((void**) (&(*c).blocks->data[i]._isTryBlock_2.raiseFixups), (tySequence__qwqHTkRvwhrRyENtudHQ7g*) incrSeqV3((TGenericSeq*)((*c).blocks->data[i]._isTryBlock_2.raiseFixups), (&NTIseqLtpositionT__qwqHTkRvwhrRyENtudHQ7g_)));
		T5_ = (*c).blocks->data[i]._isTryBlock_2.raiseFixups->Sup.len++;
		(*c).blocks->data[i]._isTryBlock_2.raiseFixups->data[T5_] = lab1;
	}
	goto LA1_;
	LA3_: ;
	{
		tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ* trailingFinales;
		tyTuple__tFiYBoaBrKZKt1Te12yKUQ T20_;
		NI T21_;
		trailingFinales = NIM_NIL;
		{
			if (!(((NI) 0) < (*c).inTryStmt)) goto LA9_;
			{
				NI b;
				NI colontmp_;
				NI T12_;
				NI res;
				b = (NI)0;
				colontmp_ = (NI)0;
				T12_ = (((*c).blocks ? (*c).blocks->Sup.len : 0)-1);
				colontmp_ = T12_;
				res = colontmp_;
				{
					while (1) {
						if (!(i <= res)) goto LA14;
						b = res;
						{
							NI T19_;
							if (!(*c).blocks->data[b].isTryBlock) goto LA17_;
							trailingFinales = (tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ*) incrSeqV3((TGenericSeq*)(trailingFinales), (&NTItnodeseq__ehmV9bTklH2Gt9cXHV9c0HLeQ_));
							T19_ = trailingFinales->Sup.len++;
							asgnRef((void**) (&trailingFinales->data[T19_]), (*c).blocks->data[b]._isTryBlock_2.finale);
						}
						LA17_: ;
						res -= ((NI) 1);
					} LA14: ;
				}
			}
		}
		LA9_: ;
		nimZeroMem((void*)(&T20_), sizeof(tyTuple__tFiYBoaBrKZKt1Te12yKUQ));
		T20_.Field0 = lab1;
		genericSeqAssign((&T20_.Field1), trailingFinales, (&NTItnodeseq__ehmV9bTklH2Gt9cXHV9c0HLeQ_));
		asgnRef((void**) (&(*c).blocks->data[i]._isTryBlock_1.breakFixups), (tySequence__m6h1zim2DFUPFJioFj0P9cg*) incrSeqV3((TGenericSeq*)((*c).blocks->data[i]._isTryBlock_1.breakFixups), (&NTIseqLLtposition_seqLpnodeTTT__m6h1zim2DFUPFJioFj0P9cg_)));
		T21_ = (*c).blocks->data[i]._isTryBlock_1.breakFixups->Sup.len++;
		(*c).blocks->data[i]._isTryBlock_1.breakFixups->data[T21_].Field0 = T20_.Field0;
		genericSeqAssign((&(*c).blocks->data[i]._isTryBlock_1.breakFixups->data[T21_].Field1), T20_.Field1, (&NTItnodeseq__ehmV9bTklH2Gt9cXHV9c0HLeQ_));
	}
	LA1_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, genCall__dfa_1002)(tyObject_Con__eFhkbMY30pSTdER2YWz9cRw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TType__facALICuu8zUj0hjvbTLFg* t;
	gen__dfa_200(c, (*n)._kind_6.sons->data[((NI) 0)]);
	t = (*(*n)._kind_6.sons->data[((NI) 0)]).typ;
	{
		if (!!((t == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL)))) goto LA3_;
		t = skipTypes__ast_3710(t, TM__rmUZTUif19aNVU5raHE2xtA_10);
	}
	LA3_: ;
	{
		NI i;
		NI colontmp_;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = len__ast_3151(n);
		i_2 = ((NI) 1);
		{
			while (1) {
				if (!(i_2 < colontmp_)) goto LA7;
				i = i_2;
				gen__dfa_200(c, (*n)._kind_6.sons->data[i]);
				i_2 += ((NI) 1);
			} LA7: ;
		}
	}
	{
		NIM_BOOL T10_;
		NI lab1X60gensym114_;
		T10_ = (NIM_BOOL)0;
		T10_ = (((NI) 0) < (*c).inTryStmt);
		if (!(T10_)) goto LA11_;
		T10_ = canRaiseConservative__ast_5051((*n)._kind_6.sons->data[((NI) 0)]);
		LA11_: ;
		if (!T10_) goto LA12_;
		lab1X60gensym114_ = forkI__dfa_83(c, n);
		{
			NI i_3;
			NI colontmp__2;
			NI T15_;
			NI res;
			i_3 = (NI)0;
			colontmp__2 = (NI)0;
			T15_ = (((*c).blocks ? (*c).blocks->Sup.len : 0)-1);
			colontmp__2 = T15_;
			res = colontmp__2;
			{
				while (1) {
					if (!(((NI) 0) <= res)) goto LA17;
					i_3 = res;
					{
						if (!(*c).blocks->data[i_3].isTryBlock) goto LA20_;
						genBreakOrRaiseAux__dfa_562(c, i_3, n);
						goto LA14;
					}
					LA20_: ;
					res -= ((NI) 1);
				} LA17: ;
			}
		} LA14: ;
		patch__dfa_175(c, lab1X60gensym114_);
	}
	LA12_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, genMagic__dfa_1033)(tyObject_Con__eFhkbMY30pSTdER2YWz9cRw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg m) {
	switch (m) {
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 109):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 110):
	{
		genAndOr__dfa_451(c, n);
	}
	break;
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 32):
	case ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 33):
	{
		genDef__dfa_986(c, (*n)._kind_6.sons->data[((NI) 1)]);
		{
			NI i;
			NI colontmp_;
			NI i_2;
			i = (NI)0;
			colontmp_ = (NI)0;
			colontmp_ = len__ast_3151(n);
			i_2 = ((NI) 2);
			{
				while (1) {
					if (!(i_2 < colontmp_)) goto LA5;
					i = i_2;
					gen__dfa_200(c, (*n)._kind_6.sons->data[i]);
					i_2 += ((NI) 1);
				} LA5: ;
			}
		}
	}
	break;
	default:
	{
		genCall__dfa_1002(c, n);
	}
	break;
	}
}
N_LIB_PRIVATE N_NIMCALL(void, genIf__dfa_402)(tyObject_Con__eFhkbMY30pSTdER2YWz9cRw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	tySequence__qwqHTkRvwhrRyENtudHQ7g* endings;
	endings = NIM_NIL;
	{
		NI i;
		NI colontmp_;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = len__ast_3151(n);
		i_2 = ((NI) 0);
		{
			while (1) {
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* it;
				if (!(i_2 < colontmp_)) goto LA3;
				i = i_2;
				it = (*n)._kind_6.sons->data[i];
				gen__dfa_200(c, (*it)._kind_6.sons->data[((NI) 0)]);
				{
					NI T6_;
					NI lab1X60gensym23_;
					NI T9_;
					NI T10_;
					T6_ = (NI)0;
					T6_ = len__ast_3151(it);
					if (!(T6_ == ((NI) 2))) goto LA7_;
					lab1X60gensym23_ = forkI__dfa_83(c, (*it)._kind_6.sons->data[((NI) 1)]);
					gen__dfa_200(c, (*it)._kind_6.sons->data[((NI) 1)]);
					T9_ = (NI)0;
					T9_ = gotoI__dfa_126(c, (*it)._kind_6.sons->data[((NI) 1)]);
					endings = (tySequence__qwqHTkRvwhrRyENtudHQ7g*) incrSeqV3((TGenericSeq*)(endings), (&NTIseqLtpositionT__qwqHTkRvwhrRyENtudHQ7g_));
					T10_ = endings->Sup.len++;
					endings->data[T10_] = T9_;
					patch__dfa_175(c, lab1X60gensym23_);
				}
				LA7_: ;
				i_2 += ((NI) 1);
			} LA3: ;
		}
	}
	{
		NI i_3;
		NI colontmp__2;
		NI T12_;
		NI res;
		i_3 = (NI)0;
		colontmp__2 = (NI)0;
		T12_ = ((endings ? endings->Sup.len : 0)-1);
		colontmp__2 = T12_;
		res = colontmp__2;
		{
			while (1) {
				if (!(((NI) 0) <= res)) goto LA14;
				i_3 = res;
				patch__dfa_175(c, endings->data[i_3]);
				res -= ((NI) 1);
			} LA14: ;
		}
	}
}
static N_INLINE(NI*, X5BX5D___dfa_499)(NI* s, NI sLen_0, NI i) {
	NI* result;
	result = (NI*)0;
	result = (&s[(NI)(sLen_0 - i)]);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, genCase__dfa_458)(tyObject_Con__eFhkbMY30pSTdER2YWz9cRw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	NIM_BOOL isExhaustive;
	tyObject_TType__facALICuu8zUj0hjvbTLFg* T1_;
	tySequence__qwqHTkRvwhrRyENtudHQ7g* endings;
	T1_ = NIM_NIL;
	T1_ = skipTypes__ast_3710((*(*n)._kind_6.sons->data[((NI) 0)]).typ, TM__rmUZTUif19aNVU5raHE2xtA_12);
	isExhaustive = !(((*T1_).kind >= ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 36) && (*T1_).kind <= ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 39) || (*T1_).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 28)));
	endings = NIM_NIL;
	gen__dfa_200(c, (*n)._kind_6.sons->data[((NI) 0)]);
	{
		NI i;
		NI colontmp_;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = len__ast_3151(n);
		i_2 = ((NI) 1);
		{
			while (1) {
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* it;
				if (!(i_2 < colontmp_)) goto LA4;
				i = i_2;
				it = (*n)._kind_6.sons->data[i];
				{
					NIM_BOOL T7_;
					NI T8_;
					NIM_BOOL T10_;
					NI T11_;
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T15_;
					T7_ = (NIM_BOOL)0;
					T8_ = (NI)0;
					T8_ = len__ast_3151(it);
					T7_ = (T8_ == ((NI) 1));
					if (T7_) goto LA9_;
					T10_ = (NIM_BOOL)0;
					T11_ = (NI)0;
					T11_ = len__ast_3151(n);
					T10_ = (i == (NI)(T11_ - ((NI) 1)));
					if (!(T10_)) goto LA12_;
					T10_ = isExhaustive;
					LA12_: ;
					T7_ = T10_;
					LA9_: ;
					if (!T7_) goto LA13_;
					T15_ = NIM_NIL;
					T15_ = lastSon__ast_4807(it);
					gen__dfa_200(c, T15_);
					{
						NI T18_;
						NI* T21_;
						T18_ = (endings ? endings->Sup.len : 0);
						if (!!((T18_ == ((NI) 0)))) goto LA19_;
						T21_ = (NI*)0;
						T21_ = X5BX5D___dfa_499((endings) ? (endings->data) : NIM_NIL, (endings ? endings->Sup.len : 0), ((NI) 1));
						patch__dfa_175(c, (*T21_));
					}
					LA19_: ;
				}
				goto LA5_;
				LA13_: ;
				{
					NI lab1X60gensym36_;
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T23_;
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T24_;
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T31_;
					NI T32_;
					NI T33_;
					T23_ = NIM_NIL;
					T23_ = lastSon__ast_4807(it);
					lab1X60gensym36_ = forkI__dfa_83(c, T23_);
					T24_ = NIM_NIL;
					T24_ = lastSon__ast_4807(it);
					gen__dfa_200(c, T24_);
					{
						NI T27_;
						NI* T30_;
						T27_ = (endings ? endings->Sup.len : 0);
						if (!!((T27_ == ((NI) 0)))) goto LA28_;
						T30_ = (NI*)0;
						T30_ = X5BX5D___dfa_499((endings) ? (endings->data) : NIM_NIL, (endings ? endings->Sup.len : 0), ((NI) 1));
						patch__dfa_175(c, (*T30_));
					}
					LA28_: ;
					T31_ = NIM_NIL;
					T31_ = lastSon__ast_4807(it);
					T32_ = (NI)0;
					T32_ = gotoI__dfa_126(c, T31_);
					endings = (tySequence__qwqHTkRvwhrRyENtudHQ7g*) incrSeqV3((TGenericSeq*)(endings), (&NTIseqLtpositionT__qwqHTkRvwhrRyENtudHQ7g_));
					T33_ = endings->Sup.len++;
					endings->data[T33_] = T32_;
					patch__dfa_175(c, lab1X60gensym36_);
				}
				LA5_: ;
				i_2 += ((NI) 1);
			} LA4: ;
		}
	}
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isTrue__dfa_303)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	NIM_BOOL T2_;
	NIM_BOOL T3_;
	NIM_BOOL T7_;
	result = (NIM_BOOL)0;
	T1_ = (NIM_BOOL)0;
	T2_ = (NIM_BOOL)0;
	T3_ = (NIM_BOOL)0;
	T3_ = ((*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3));
	if (!(T3_)) goto LA4_;
	T3_ = ((*(*n)._kind_4.sym).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 20));
	LA4_: ;
	T2_ = T3_;
	if (!(T2_)) goto LA5_;
	T2_ = !(((*(*n)._kind_4.sym).position == ((NI) 0)));
	LA5_: ;
	T1_ = T2_;
	if (T1_) goto LA6_;
	T7_ = (NIM_BOOL)0;
	T7_ = ((*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 6));
	if (!(T7_)) goto LA8_;
	T7_ = !(((*n)._kind_1.intVal == IL64(0)));
	LA8_: ;
	T1_ = T7_;
	LA6_: ;
	result = T1_;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, popBlock__dfa_203)(tyObject_Con__eFhkbMY30pSTdER2YWz9cRw* c, NI oldLen) {
	tySequence__qwqHTkRvwhrRyENtudHQ7g* exits;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T1_;
	NI T2_;
	NI T3_;
	exits = NIM_NIL;
	T1_ = NIM_NIL;
	T1_ = newNode__ast_3285(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1));
	T2_ = (NI)0;
	T2_ = gotoI__dfa_126(c, T1_);
	exits = (tySequence__qwqHTkRvwhrRyENtudHQ7g*) incrSeqV3((TGenericSeq*)(exits), (&NTIseqLtpositionT__qwqHTkRvwhrRyENtudHQ7g_));
	T3_ = exits->Sup.len++;
	exits->data[T3_] = T2_;
	{
		tyTuple__tFiYBoaBrKZKt1Te12yKUQ* f;
		tySequence__m6h1zim2DFUPFJioFj0P9cg* colontmp_;
		NI i;
		NI L;
		NI T5_;
		f = (tyTuple__tFiYBoaBrKZKt1Te12yKUQ*)0;
		colontmp_ = NIM_NIL;
		colontmp_ = (*c).blocks->data[oldLen]._isTryBlock_1.breakFixups;
		i = ((NI) 0);
		T5_ = (colontmp_ ? colontmp_->Sup.len : 0);
		L = T5_;
		{
			while (1) {
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T12_;
				NI T13_;
				NI T14_;
				if (!(i < L)) goto LA7;
				f = (&colontmp_->data[i]);
				patch__dfa_175(c, (*f).Field0);
				{
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw** finale;
					tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ* colontmp__2;
					NI i_2;
					NI L_2;
					NI T9_;
					finale = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw**)0;
					colontmp__2 = NIM_NIL;
					colontmp__2 = (*f).Field1;
					i_2 = ((NI) 0);
					T9_ = (colontmp__2 ? colontmp__2->Sup.len : 0);
					L_2 = T9_;
					{
						while (1) {
							if (!(i_2 < L_2)) goto LA11;
							finale = &colontmp__2->data[i_2];
							gen__dfa_200(c, (*finale));
							i_2 += ((NI) 1);
						} LA11: ;
					}
				}
				T12_ = NIM_NIL;
				T12_ = newNode__ast_3285(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1));
				T13_ = (NI)0;
				T13_ = gotoI__dfa_126(c, T12_);
				exits = (tySequence__qwqHTkRvwhrRyENtudHQ7g*) incrSeqV3((TGenericSeq*)(exits), (&NTIseqLtpositionT__qwqHTkRvwhrRyENtudHQ7g_));
				T14_ = exits->Sup.len++;
				exits->data[T14_] = T13_;
				i += ((NI) 1);
			} LA7: ;
		}
	}
	{
		NI* e;
		NI i_3;
		NI L_3;
		NI T16_;
		e = (NI*)0;
		i_3 = ((NI) 0);
		T16_ = (exits ? exits->Sup.len : 0);
		L_3 = T16_;
		{
			while (1) {
				if (!(i_3 < L_3)) goto LA18;
				e = (&exits->data[i_3]);
				patch__dfa_175(c, (*e));
				i_3 += ((NI) 1);
			} LA18: ;
		}
	}
	unsureAsgnRef((void**) (&(*c).blocks), (tySequence__bZP29c0SHT9aMkbSl4EFvgCg*) setLengthSeqV2(&((*c).blocks)->Sup, (&NTIseqLtblockT__bZP29c0SHT9aMkbSl4EFvgCg_), ((NI) (oldLen))));
}
N_LIB_PRIVATE N_NIMCALL(void, genWhile__dfa_318)(tyObject_Con__eFhkbMY30pSTdER2YWz9cRw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	{
		NIM_BOOL T3_;
		NI oldLenX60gensym16_;
		NI T6_;
		tyObject_TBlock__J29b9b9cJiD9aK19cdoA7IwWiyA T7_;
		NI T8_;
		T3_ = (NIM_BOOL)0;
		T3_ = isTrue__dfa_303((*n)._kind_6.sons->data[((NI) 0)]);
		if (!T3_) goto LA4_;
		T6_ = ((*c).blocks ? (*c).blocks->Sup.len : 0);
		oldLenX60gensym16_ = T6_;
		nimZeroMem((void*)(&T7_), sizeof(tyObject_TBlock__J29b9b9cJiD9aK19cdoA7IwWiyA));
		nimZeroMem((void*)(&T7_), sizeof(tyObject_TBlock__J29b9b9cJiD9aK19cdoA7IwWiyA));
		T7_.isTryBlock = NIM_FALSE;
		T7_._isTryBlock_1.label = ((tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*) NIM_NIL);
		unsureAsgnRef((void**) (&(*c).blocks), (tySequence__bZP29c0SHT9aMkbSl4EFvgCg*) incrSeqV3((TGenericSeq*)((*c).blocks), (&NTIseqLtblockT__bZP29c0SHT9aMkbSl4EFvgCg_)));
		T8_ = (*c).blocks->Sup.len++;
		genericAssign((void*)(&(*c).blocks->data[T8_]), (void*)(&T7_), (&NTItblock__J29b9b9cJiD9aK19cdoA7IwWiyA_));
		{
			NI i;
			NI res;
			i = (NI)0;
			res = ((NI) 0);
			{
				while (1) {
					if (!(res <= ((NI) 1))) goto LA11;
					i = res;
					gen__dfa_200(c, (*n)._kind_6.sons->data[((NI) 1)]);
					res += ((NI) 1);
				} LA11: ;
			}
		}
		popBlock__dfa_203(c, oldLenX60gensym16_);
	}
	goto LA1_;
	LA4_: ;
	{
		NI oldLenX60gensym18_;
		NI T13_;
		tyObject_TBlock__J29b9b9cJiD9aK19cdoA7IwWiyA T14_;
		NI T15_;
		tyArray__HU7qaqKu9czJLT84iCBJnsA endings;
		T13_ = ((*c).blocks ? (*c).blocks->Sup.len : 0);
		oldLenX60gensym18_ = T13_;
		nimZeroMem((void*)(&T14_), sizeof(tyObject_TBlock__J29b9b9cJiD9aK19cdoA7IwWiyA));
		nimZeroMem((void*)(&T14_), sizeof(tyObject_TBlock__J29b9b9cJiD9aK19cdoA7IwWiyA));
		T14_.isTryBlock = NIM_FALSE;
		T14_._isTryBlock_1.label = ((tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*) NIM_NIL);
		unsureAsgnRef((void**) (&(*c).blocks), (tySequence__bZP29c0SHT9aMkbSl4EFvgCg*) incrSeqV3((TGenericSeq*)((*c).blocks), (&NTIseqLtblockT__bZP29c0SHT9aMkbSl4EFvgCg_)));
		T15_ = (*c).blocks->Sup.len++;
		genericAssign((void*)(&(*c).blocks->data[T15_]), (void*)(&T14_), (&NTItblock__J29b9b9cJiD9aK19cdoA7IwWiyA_));
		nimZeroMem((void*)endings, sizeof(tyArray__HU7qaqKu9czJLT84iCBJnsA));
		{
			NI i_2;
			NI res_2;
			i_2 = (NI)0;
			res_2 = ((NI) 0);
			{
				while (1) {
					if (!(res_2 <= ((NI) 1))) goto LA18;
					i_2 = res_2;
					gen__dfa_200(c, (*n)._kind_6.sons->data[((NI) 0)]);
					endings[(i_2)- 0] = forkI__dfa_83(c, n);
					gen__dfa_200(c, (*n)._kind_6.sons->data[((NI) 1)]);
					res_2 += ((NI) 1);
				} LA18: ;
			}
		}
		{
			NI i_3;
			NI res_3;
			i_3 = (NI)0;
			res_3 = ((NI) 1);
			{
				while (1) {
					if (!(((NI) 0) <= res_3)) goto LA21;
					i_3 = ((NI) (res_3));
					patch__dfa_175(c, endings[(i_3)- 0]);
					res_3 -= ((NI) 1);
				} LA21: ;
			}
		}
		popBlock__dfa_203(c, oldLenX60gensym18_);
	}
	LA1_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, genBlock__dfa_548)(tyObject_Con__eFhkbMY30pSTdER2YWz9cRw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	NI oldLenX60gensym40_;
	NI T1_;
	tyObject_TBlock__J29b9b9cJiD9aK19cdoA7IwWiyA T2_;
	NI T3_;
	T1_ = ((*c).blocks ? (*c).blocks->Sup.len : 0);
	oldLenX60gensym40_ = T1_;
	nimZeroMem((void*)(&T2_), sizeof(tyObject_TBlock__J29b9b9cJiD9aK19cdoA7IwWiyA));
	nimZeroMem((void*)(&T2_), sizeof(tyObject_TBlock__J29b9b9cJiD9aK19cdoA7IwWiyA));
	T2_.isTryBlock = NIM_FALSE;
	T2_._isTryBlock_1.label = (*(*n)._kind_6.sons->data[((NI) 0)])._kind_4.sym;
	unsureAsgnRef((void**) (&(*c).blocks), (tySequence__bZP29c0SHT9aMkbSl4EFvgCg*) incrSeqV3((TGenericSeq*)((*c).blocks), (&NTIseqLtblockT__bZP29c0SHT9aMkbSl4EFvgCg_)));
	T3_ = (*c).blocks->Sup.len++;
	genericAssign((void*)(&(*c).blocks->data[T3_]), (void*)(&T2_), (&NTItblock__J29b9b9cJiD9aK19cdoA7IwWiyA_));
	gen__dfa_200(c, (*n)._kind_6.sons->data[((NI) 1)]);
	popBlock__dfa_203(c, oldLenX60gensym40_);
}
N_LIB_PRIVATE N_NIMCALL(void, genImplicitReturn__dfa_765)(tyObject_Con__eFhkbMY30pSTdER2YWz9cRw* c) {
	{
		NIM_BOOL T3_;
		NI T5_;
		T3_ = (NIM_BOOL)0;
		T3_ = ((126976 &((NU32)1<<((NU)((*(*c).owner).kind)&31U)))!=0);
		if (!(T3_)) goto LA4_;
		T5_ = (NI)0;
		T5_ = len__ast_3151((*(*c).owner).ast);
		T3_ = (((NI) 7) < T5_);
		LA4_: ;
		if (!T3_) goto LA6_;
		gen__dfa_200(c, (*(*(*c).owner).ast)._kind_6.sons->data[((NI) 7)]);
	}
	LA6_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, genReturn__dfa_775)(tyObject_Con__eFhkbMY30pSTdER2YWz9cRw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	{
		if (!!(((*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1)))) goto LA3_;
		gen__dfa_200(c, (*n)._kind_6.sons->data[((NI) 0)]);
	}
	goto LA1_;
	LA3_: ;
	{
		genImplicitReturn__dfa_765(c);
	}
	LA1_: ;
	genBreakOrRaiseAux__dfa_562(c, ((NI) 0), n);
}
N_LIB_PRIVATE N_NIMCALL(void, genRaise__dfa_738)(tyObject_Con__eFhkbMY30pSTdER2YWz9cRw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
{	gen__dfa_200(c, (*n)._kind_6.sons->data[((NI) 0)]);
	{
		if (!(((NI) 0) < (*c).inTryStmt)) goto LA3_;
		{
			NI i;
			NI colontmp_;
			NI T6_;
			NI res;
			i = (NI)0;
			colontmp_ = (NI)0;
			T6_ = (((*c).blocks ? (*c).blocks->Sup.len : 0)-1);
			colontmp_ = T6_;
			res = colontmp_;
			{
				while (1) {
					if (!(((NI) 0) <= res)) goto LA8;
					i = res;
					{
						if (!(*c).blocks->data[i].isTryBlock) goto LA11_;
						genBreakOrRaiseAux__dfa_562(c, i, n);
						goto BeforeRet_;
					}
					LA11_: ;
					res -= ((NI) 1);
				} LA8: ;
			}
		}
	}
	goto LA1_;
	LA3_: ;
	{
		tyObject_Instr__Iclb1njvAJfjjEpCLzUzZg T14_;
		NI T15_;
		NI T16_;
		nimZeroMem((void*)(&T14_), sizeof(tyObject_Instr__Iclb1njvAJfjjEpCLzUzZg));
		nimZeroMem((void*)(&T14_), sizeof(tyObject_Instr__Iclb1njvAJfjjEpCLzUzZg));
		T14_.n = n;
		T14_.kind = ((tyEnum_InstrKind__kmjEwko0gQNypI4MTa9chwQ) 0);
		T15_ = ((*c).code ? (*c).code->Sup.len : 0);
		T14_.dest = (NI)(((NI) 2147483647) - T15_);
		unsureAsgnRef((void**) (&(*c).code), (tySequence__hj4BvueOlKB8Z1Qw2ZU4nQ*) incrSeqV3((TGenericSeq*)((*c).code), (&NTIcontrolflowgraph__hj4BvueOlKB8Z1Qw2ZU4nQ_)));
		T16_ = (*c).code->Sup.len++;
		genericAssign((void*)(&(*c).code->data[T16_]), (void*)(&T14_), (&NTIinstr__Iclb1njvAJfjjEpCLzUzZg_));
	}
	LA1_: ;
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, genBreak__dfa_616)(tyObject_Con__eFhkbMY30pSTdER2YWz9cRw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
{	{
		if (!((*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3))) goto LA3_;
		{
			NI i;
			NI colontmp_;
			NI T6_;
			NI res;
			i = (NI)0;
			colontmp_ = (NI)0;
			T6_ = (((*c).blocks ? (*c).blocks->Sup.len : 0)-1);
			colontmp_ = T6_;
			res = colontmp_;
			{
				while (1) {
					if (!(((NI) 0) <= res)) goto LA8;
					i = res;
					{
						NIM_BOOL T11_;
						T11_ = (NIM_BOOL)0;
						T11_ = !((*c).blocks->data[i].isTryBlock);
						if (!(T11_)) goto LA12_;
						T11_ = ((*c).blocks->data[i]._isTryBlock_1.label == (*(*n)._kind_6.sons->data[((NI) 0)])._kind_4.sym);
						LA12_: ;
						if (!T11_) goto LA13_;
						genBreakOrRaiseAux__dfa_562(c, i, n);
						goto BeforeRet_;
					}
					LA13_: ;
					res -= ((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).blocks ? (*c).blocks->Sup.len : 0)-1);
			colontmp__2 = T17_;
			res_2 = colontmp__2;
			{
				while (1) {
					if (!(((NI) 0) <= res_2)) goto LA19;
					i_2 = res_2;
					{
						if (!!((*c).blocks->data[i_2].isTryBlock)) goto LA22_;
						genBreakOrRaiseAux__dfa_562(c, i_2, n);
						goto BeforeRet_;
					}
					LA22_: ;
					res_2 -= ((NI) 1);
				} LA19: ;
			}
		}
	}
	LA1_: ;
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, genTry__dfa_647)(tyObject_Con__eFhkbMY30pSTdER2YWz9cRw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	tySequence__qwqHTkRvwhrRyENtudHQ7g* endings;
	NI oldLen;
	NI T1_;
	tyObject_TBlock__J29b9b9cJiD9aK19cdoA7IwWiyA T2_;
	NI T10_;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* fin;
	endings = NIM_NIL;
	T1_ = ((*c).blocks ? (*c).blocks->Sup.len : 0);
	oldLen = T1_;
	nimZeroMem((void*)(&T2_), sizeof(tyObject_TBlock__J29b9b9cJiD9aK19cdoA7IwWiyA));
	nimZeroMem((void*)(&T2_), sizeof(tyObject_TBlock__J29b9b9cJiD9aK19cdoA7IwWiyA));
	T2_.isTryBlock = NIM_TRUE;
	{
		NI T5_;
		NI T8_;
		T5_ = (NI)0;
		T5_ = len__ast_3151(n);
		if (!((*(*n)._kind_6.sons->data[(NI)(T5_ - ((NI) 1))]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 107))) goto LA6_;
		T8_ = (NI)0;
		T8_ = len__ast_3151(n);
		T2_._isTryBlock_2.finale = (*n)._kind_6.sons->data[(NI)(T8_ - ((NI) 1))];
	}
	goto LA3_;
	LA6_: ;
	{
		T2_._isTryBlock_2.finale = newNode__ast_3285(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1));
	}
	LA3_: ;
	unsureAsgnRef((void**) (&(*c).blocks), (tySequence__bZP29c0SHT9aMkbSl4EFvgCg*) incrSeqV3((TGenericSeq*)((*c).blocks), (&NTIseqLtblockT__bZP29c0SHT9aMkbSl4EFvgCg_)));
	T10_ = (*c).blocks->Sup.len++;
	genericAssign((void*)(&(*c).blocks->data[T10_]), (void*)(&T2_), (&NTItblock__J29b9b9cJiD9aK19cdoA7IwWiyA_));
	(*c).inTryStmt += ((NI) 1);
	gen__dfa_200(c, (*n)._kind_6.sons->data[((NI) 0)]);
	(*c).inTryStmt -= ((NI) 1);
	{
		NI* f;
		tySequence__qwqHTkRvwhrRyENtudHQ7g* colontmp_;
		NI i;
		NI L;
		NI T12_;
		f = (NI*)0;
		colontmp_ = NIM_NIL;
		colontmp_ = (*c).blocks->data[oldLen]._isTryBlock_2.raiseFixups;
		i = ((NI) 0);
		T12_ = (colontmp_ ? colontmp_->Sup.len : 0);
		L = T12_;
		{
			while (1) {
				if (!(i < L)) goto LA14;
				f = (&colontmp_->data[i]);
				patch__dfa_175(c, (*f));
				i += ((NI) 1);
			} LA14: ;
		}
	}
	unsureAsgnRef((void**) (&(*c).blocks), (tySequence__bZP29c0SHT9aMkbSl4EFvgCg*) setLengthSeqV2(&((*c).blocks)->Sup, (&NTIseqLtblockT__bZP29c0SHT9aMkbSl4EFvgCg_), ((NI) (oldLen))));
	{
		NI i_2;
		NI colontmp__2;
		NI i_3;
		i_2 = (NI)0;
		colontmp__2 = (NI)0;
		colontmp__2 = len__ast_3151(n);
		i_3 = ((NI) 1);
		{
			while (1) {
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* it;
				if (!(i_3 < colontmp__2)) goto LA17;
				i_2 = i_3;
				it = (*n)._kind_6.sons->data[i_2];
				{
					NI lab1X60gensym54_;
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T22_;
					NI T23_;
					NI T24_;
					if (!!(((*it).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 107)))) goto LA20_;
					lab1X60gensym54_ = forkI__dfa_83(c, it);
					T22_ = NIM_NIL;
					T22_ = lastSon__ast_4807(it);
					gen__dfa_200(c, T22_);
					T23_ = (NI)0;
					T23_ = gotoI__dfa_126(c, it);
					endings = (tySequence__qwqHTkRvwhrRyENtudHQ7g*) incrSeqV3((TGenericSeq*)(endings), (&NTIseqLtpositionT__qwqHTkRvwhrRyENtudHQ7g_));
					T24_ = endings->Sup.len++;
					endings->data[T24_] = T23_;
					patch__dfa_175(c, lab1X60gensym54_);
				}
				LA20_: ;
				i_3 += ((NI) 1);
			} LA17: ;
		}
	}
	{
		NI i_4;
		NI colontmp__3;
		NI T26_;
		NI res;
		i_4 = (NI)0;
		colontmp__3 = (NI)0;
		T26_ = ((endings ? endings->Sup.len : 0)-1);
		colontmp__3 = T26_;
		res = colontmp__3;
		{
			while (1) {
				if (!(((NI) 0) <= res)) goto LA28;
				i_4 = res;
				patch__dfa_175(c, endings->data[i_4]);
				res -= ((NI) 1);
			} LA28: ;
		}
	}
	fin = lastSon__ast_4807(n);
	{
		if (!((*fin).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 107))) goto LA31_;
		gen__dfa_200(c, (*fin)._kind_6.sons->data[((NI) 0)]);
	}
	LA31_: ;
}
static N_INLINE(NI, safeLen__ast_3144)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	NI result;
	result = (NI)0;
	{
		if (!((*n).kind >= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 0) && (*n).kind <= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 23))) goto LA3_;
		result = ((NI) 0);
	}
	goto LA1_;
	LA3_: ;
	{
		result = len__ast_3151(n);
	}
	LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, genVarSection__dfa_1047)(tyObject_Con__eFhkbMY30pSTdER2YWz9cRw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a;
		a = NIM_NIL;
		{
			NI i;
			NI colontmp_;
			NI i_2;
			i = (NI)0;
			colontmp_ = (NI)0;
			colontmp_ = safeLen__ast_3144(n);
			i_2 = ((NI) 0);
			{
				while (1) {
					if (!(i_2 < colontmp_)) goto LA4;
					i = i_2;
					a = (*n)._kind_6.sons->data[i];
					{
						if (!((*a).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 125))) goto LA7_;
					}
					goto LA5_;
					LA7_: ;
					{
						tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T12_;
						if (!((*a).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 36))) goto LA10_;
						T12_ = NIM_NIL;
						T12_ = lastSon__ast_4807(a);
						gen__dfa_200(c, T12_);
						{
							NI i_3;
							NI colontmp__2;
							NI T14_;
							NI i_4;
							i_3 = (NI)0;
							colontmp__2 = (NI)0;
							T14_ = (NI)0;
							T14_ = len__ast_3151(a);
							colontmp__2 = (NI)(T14_ - ((NI) 2));
							i_4 = ((NI) 0);
							{
								while (1) {
									if (!(i_4 < colontmp__2)) goto LA16;
									i_3 = i_4;
									genDef__dfa_986(c, (*a)._kind_6.sons->data[i_3]);
									i_4 += ((NI) 1);
								} LA16: ;
							}
						}
					}
					goto LA5_;
					LA10_: ;
					{
						tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T18_;
						T18_ = NIM_NIL;
						T18_ = lastSon__ast_4807(a);
						gen__dfa_200(c, T18_);
						{
							tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T21_;
							T21_ = NIM_NIL;
							T21_ = lastSon__ast_4807(a);
							if (!!(((*T21_).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1)))) goto LA22_;
							genDef__dfa_986(c, (*a)._kind_6.sons->data[((NI) 0)]);
						}
						LA22_: ;
					}
					LA5_: ;
					i_2 += ((NI) 1);
				} LA4: ;
			}
		}
	}
}
N_LIB_PRIVATE N_NIMCALL(void, gen__dfa_200)(tyObject_Con__eFhkbMY30pSTdER2YWz9cRw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	switch ((*n).kind) {
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3):
	{
		genUse__dfa_970(c, n);
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 26) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 32):
	{
		{
			tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* s;
			if (!((*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3))) goto LA5_;
			s = (*(*n)._kind_6.sons->data[((NI) 0)])._kind_4.sym;
			{
				if (!!(((*s).magic == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 0)))) goto LA9_;
				genMagic__dfa_1033(c, n, (*s).magic);
			}
			goto LA7_;
			LA9_: ;
			{
				genCall__dfa_1002(c, n);
			}
			LA7_: ;
			{
				tyObject_Instr__Iclb1njvAJfjjEpCLzUzZg T16_;
				NI T17_;
				NI T18_;
				if (!(((*(*(*n)._kind_6.sons->data[((NI) 0)])._kind_4.sym).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 16))&63U)))!=0)) goto LA14_;
				nimZeroMem((void*)(&T16_), sizeof(tyObject_Instr__Iclb1njvAJfjjEpCLzUzZg));
				nimZeroMem((void*)(&T16_), sizeof(tyObject_Instr__Iclb1njvAJfjjEpCLzUzZg));
				T16_.n = n;
				T16_.kind = ((tyEnum_InstrKind__kmjEwko0gQNypI4MTa9chwQ) 0);
				T17_ = ((*c).code ? (*c).code->Sup.len : 0);
				T16_.dest = (NI)(((NI) 2147483647) - T17_);
				unsureAsgnRef((void**) (&(*c).code), (tySequence__hj4BvueOlKB8Z1Qw2ZU4nQ*) incrSeqV3((TGenericSeq*)((*c).code), (&NTIcontrolflowgraph__hj4BvueOlKB8Z1Qw2ZU4nQ_)));
				T18_ = (*c).code->Sup.len++;
				genericAssign((void*)(&(*c).code->data[T18_]), (void*)(&T16_), (&NTIinstr__Iclb1njvAJfjjEpCLzUzZg_));
			}
			LA14_: ;
		}
		goto LA3_;
		LA5_: ;
		{
			genCall__dfa_1002(c, n);
		}
		LA3_: ;
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 5) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 23):
	{
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 73):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 74):
	{
		gen__dfa_200(c, (*n)._kind_6.sons->data[((NI) 1)]);
		{
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a;
			if (!((TM__rmUZTUif19aNVU5raHE2xtA_11[(NU)((*(*n)._kind_6.sons->data[((NI) 0)]).kind)>>3] &(1U<<((NU)((*(*n)._kind_6.sons->data[((NI) 0)]).kind)&7U)))!=0)) goto LA24_;
			a = skipTrivials__dfa_958(c, (*n)._kind_6.sons->data[((NI) 0)]);
			{
				if (!((*a).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 27) || (*a).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 29) || (*a).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 30) || (*a).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 31) || (*a).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 26) || (*a).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 28) || (*a).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 32))) goto LA28_;
				gen__dfa_200(c, a);
			}
			LA28_: ;
		}
		LA24_: ;
		genDef__dfa_986(c, (*n)._kind_6.sons->data[((NI) 0)]);
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 42):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 45) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 47):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 63) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 65):
	{
		genUse__dfa_970(c, n);
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 92):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 48):
	{
		genIf__dfa_402(c, n);
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 93):
	{
		gen__dfa_200(c, (*(*n)._kind_6.sons->data[((NI) 0)])._kind_6.sons->data[((NI) 1)]);
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 97):
	{
		genCase__dfa_458(c, n);
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 96):
	{
		genWhile__dfa_318(c, n);
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 127):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 112):
	{
		genBlock__dfa_548(c, n);
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 109):
	{
		genReturn__dfa_775(c, n);
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 108):
	{
		genRaise__dfa_738(c, n);
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 110):
	{
		genBreak__dfa_616(c, n);
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 106):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 154):
	{
		genTry__dfa_647(c, n);
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 126):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 68):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 69):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 70):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 41):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 39):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 37):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 160):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 155):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 38):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 104):
	{
		{
			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* x;
			x = NIM_NIL;
			{
				NI i;
				NI colontmp_;
				NI i_2;
				i = (NI)0;
				colontmp_ = (NI)0;
				colontmp_ = safeLen__ast_3144(n);
				i_2 = ((NI) 0);
				{
					while (1) {
						if (!(i_2 < colontmp_)) goto LA44;
						i = i_2;
						x = (*n)._kind_6.sons->data[i];
						gen__dfa_200(c, x);
						i_2 += ((NI) 1);
					} LA44: ;
				}
			}
		}
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 91):
	{
		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T46_;
		T46_ = NIM_NIL;
		T46_ = lastSon__ast_4807(n);
		gen__dfa_200(c, T46_);
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 114):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 66):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 67):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 71):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 72):
	{
		gen__dfa_200(c, (*n)._kind_6.sons->data[((NI) 0)]);
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 60):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 34):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 33):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 61):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 58) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 59):
	{
		gen__dfa_200(c, (*n)._kind_6.sons->data[((NI) 1)]);
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 99):
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 100):
	{
		genVarSection__dfa_1047(c, n);
	}
	break;
	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 105):
	{
		{
			if (!NIM_TRUE) goto LA53_;
			failedAssertImpl__systemZassertions_56(((NimStringDesc*) &TM__rmUZTUif19aNVU5raHE2xtA_13));
		}
		LA53_: ;
	}
	break;
	default:
	{
	}
	break;
	}
}
N_LIB_PRIVATE N_NIMCALL(tySequence__hj4BvueOlKB8Z1Qw2ZU4nQ*, constructCfg__dfa_1142)(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* s, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* body) {
	tySequence__hj4BvueOlKB8Z1Qw2ZU4nQ* result;
	tyObject_Con__eFhkbMY30pSTdER2YWz9cRw c;
	NI oldLenX60gensym138_;
	NI T1_;
	tyObject_TBlock__J29b9b9cJiD9aK19cdoA7IwWiyA T2_;
	NI T3_;
	result = NIM_NIL;
	nimZeroMem((void*)(&c), sizeof(tyObject_Con__eFhkbMY30pSTdER2YWz9cRw));
	nimZeroMem((void*)(&c), sizeof(tyObject_Con__eFhkbMY30pSTdER2YWz9cRw));
	c.code = NIM_NIL;
	c.blocks = NIM_NIL;
	c.owner = s;
	T1_ = (c.blocks ? c.blocks->Sup.len : 0);
	oldLenX60gensym138_ = T1_;
	nimZeroMem((void*)(&T2_), sizeof(tyObject_TBlock__J29b9b9cJiD9aK19cdoA7IwWiyA));
	nimZeroMem((void*)(&T2_), sizeof(tyObject_TBlock__J29b9b9cJiD9aK19cdoA7IwWiyA));
	T2_.isTryBlock = NIM_FALSE;
	T2_._isTryBlock_1.label = s;
	c.blocks = (tySequence__bZP29c0SHT9aMkbSl4EFvgCg*) incrSeqV3((TGenericSeq*)(c.blocks), (&NTIseqLtblockT__bZP29c0SHT9aMkbSl4EFvgCg_));
	T3_ = c.blocks->Sup.len++;
	genericAssign((void*)(&c.blocks->data[T3_]), (void*)(&T2_), (&NTItblock__J29b9b9cJiD9aK19cdoA7IwWiyA_));
	gen__dfa_200((&c), body);
	genImplicitReturn__dfa_765((&c));
	popBlock__dfa_203((&c), oldLenX60gensym138_);
	result = c.code;
	return result;
}
static N_INLINE(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw**, X5BX5D___ast_4811)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw** s, NI sLen_0, NI i) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw** result;
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw**)0;
	result = &s[(NI)(sLen_0 - i)];
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyEnum_AliasKind__mOZtJx9b3QXuy9bfWq9cuUNCg, aliases__dfa_799)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* obj, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* field) {
	tyEnum_AliasKind__mOZtJx9b3QXuy9bfWq9cuUNCg result;
	tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ* objImportantNodes;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* obj_2;
	tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ* fieldImportantNodes;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* field_2;
{	result = (tyEnum_AliasKind__mOZtJx9b3QXuy9bfWq9cuUNCg)0;
	objImportantNodes = NIM_NIL;
	obj_2 = obj;
	{
		while (1) {
			switch ((*obj_2).kind) {
			case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 47):
			case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 63) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 67):
			{
				obj_2 = (*obj_2)._kind_6.sons->data[((NI) 0)];
			}
			break;
			case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 58) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 59):
			{
				obj_2 = (*obj_2)._kind_6.sons->data[((NI) 1)];
			}
			break;
			case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 45):
			case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 46):
			case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 42):
			{
				NI T6_;
				objImportantNodes = (tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ*) incrSeqV3((TGenericSeq*)(objImportantNodes), (&NTItnodeseq__ehmV9bTklH2Gt9cXHV9c0HLeQ_));
				T6_ = objImportantNodes->Sup.len++;
				asgnRef((void**) (&objImportantNodes->data[T6_]), obj_2);
				obj_2 = (*obj_2)._kind_6.sons->data[((NI) 0)];
			}
			break;
			case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3):
			{
				NI T8_;
				objImportantNodes = (tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ*) incrSeqV3((TGenericSeq*)(objImportantNodes), (&NTItnodeseq__ehmV9bTklH2Gt9cXHV9c0HLeQ_));
				T8_ = objImportantNodes->Sup.len++;
				asgnRef((void**) (&objImportantNodes->data[T8_]), obj_2);
				goto LA1;
			}
			break;
			default:
			{
				result = ((tyEnum_AliasKind__mOZtJx9b3QXuy9bfWq9cuUNCg) 1);
				goto BeforeRet_;
			}
			break;
			}
		}
	} LA1: ;
	fieldImportantNodes = NIM_NIL;
	field_2 = field;
	{
		while (1) {
			switch ((*field_2).kind) {
			case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 47):
			case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 63) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 67):
			{
				field_2 = (*field_2)._kind_6.sons->data[((NI) 0)];
			}
			break;
			case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 58) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 59):
			{
				field_2 = (*field_2)._kind_6.sons->data[((NI) 1)];
			}
			break;
			case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 45):
			case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 46):
			case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 42):
			{
				NI T15_;
				fieldImportantNodes = (tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ*) incrSeqV3((TGenericSeq*)(fieldImportantNodes), (&NTItnodeseq__ehmV9bTklH2Gt9cXHV9c0HLeQ_));
				T15_ = fieldImportantNodes->Sup.len++;
				asgnRef((void**) (&fieldImportantNodes->data[T15_]), field_2);
				field_2 = (*field_2)._kind_6.sons->data[((NI) 0)];
			}
			break;
			case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3):
			{
				NI T17_;
				fieldImportantNodes = (tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ*) incrSeqV3((TGenericSeq*)(fieldImportantNodes), (&NTItnodeseq__ehmV9bTklH2Gt9cXHV9c0HLeQ_));
				T17_ = fieldImportantNodes->Sup.len++;
				asgnRef((void**) (&fieldImportantNodes->data[T17_]), field_2);
				goto LA10;
			}
			break;
			default:
			{
				result = ((tyEnum_AliasKind__mOZtJx9b3QXuy9bfWq9cuUNCg) 1);
				goto BeforeRet_;
			}
			break;
			}
		}
	} LA10: ;
	{
		NI T21_;
		NI T22_;
		T21_ = (fieldImportantNodes ? fieldImportantNodes->Sup.len : 0);
		T22_ = (objImportantNodes ? objImportantNodes->Sup.len : 0);
		if (!(T21_ < T22_)) goto LA23_;
		result = ((tyEnum_AliasKind__mOZtJx9b3QXuy9bfWq9cuUNCg) 1);
		goto BeforeRet_;
	}
	LA23_: ;
	result = ((tyEnum_AliasKind__mOZtJx9b3QXuy9bfWq9cuUNCg) 0);
	{
		NI i;
		NI colontmp_;
		NI T26_;
		NI res;
		i = (NI)0;
		colontmp_ = (NI)0;
		T26_ = (objImportantNodes ? objImportantNodes->Sup.len : 0);
		colontmp_ = T26_;
		res = ((NI) 1);
		{
			while (1) {
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* currFieldPath;
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw** T29_;
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* currObjPath;
				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw** T30_;
				if (!(res <= colontmp_)) goto LA28;
				i = res;
				T29_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw**)0;
				T29_ = X5BX5D___ast_4811((fieldImportantNodes) ? (fieldImportantNodes->data) : NIM_NIL, (fieldImportantNodes ? fieldImportantNodes->Sup.len : 0), i);
				currFieldPath = (*T29_);
				T30_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw**)0;
				T30_ = X5BX5D___ast_4811((objImportantNodes) ? (objImportantNodes->data) : NIM_NIL, (objImportantNodes ? objImportantNodes->Sup.len : 0), i);
				currObjPath = (*T30_);
				{
					if (!!(((*currFieldPath).kind == (*currObjPath).kind))) goto LA33_;
					result = ((tyEnum_AliasKind__mOZtJx9b3QXuy9bfWq9cuUNCg) 1);
					goto BeforeRet_;
				}
				LA33_: ;
				switch ((*currFieldPath).kind) {
				case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3):
				{
					{
						if (!!(((*currFieldPath)._kind_4.sym == (*currObjPath)._kind_4.sym))) goto LA38_;
						result = ((tyEnum_AliasKind__mOZtJx9b3QXuy9bfWq9cuUNCg) 1);
						goto BeforeRet_;
					}
					LA38_: ;
				}
				break;
				case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 45):
				{
					{
						if (!!(((*(*currFieldPath)._kind_6.sons->data[((NI) 1)])._kind_4.sym == (*(*currObjPath)._kind_6.sons->data[((NI) 1)])._kind_4.sym))) goto LA43_;
						result = ((tyEnum_AliasKind__mOZtJx9b3QXuy9bfWq9cuUNCg) 1);
						goto BeforeRet_;
					}
					LA43_: ;
				}
				break;
				case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 46):
				{
					{
						if (!!(((*(*(*currFieldPath)._kind_6.sons->data[((NI) 0)])._kind_6.sons->data[((NI) 1)])._kind_4.sym == (*(*(*currObjPath)._kind_6.sons->data[((NI) 0)])._kind_6.sons->data[((NI) 1)])._kind_4.sym))) goto LA48_;
						result = ((tyEnum_AliasKind__mOZtJx9b3QXuy9bfWq9cuUNCg) 1);
						goto BeforeRet_;
					}
					LA48_: ;
				}
				break;
				case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 42):
				{
					{
						NIM_BOOL T53_;
						T53_ = (NIM_BOOL)0;
						T53_ = ((*(*currFieldPath)._kind_6.sons->data[((NI) 1)]).kind >= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 5) && (*(*currFieldPath)._kind_6.sons->data[((NI) 1)]).kind <= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 22));
						if (!(T53_)) goto LA54_;
						T53_ = ((*(*currObjPath)._kind_6.sons->data[((NI) 1)]).kind >= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 5) && (*(*currObjPath)._kind_6.sons->data[((NI) 1)]).kind <= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 22));
						LA54_: ;
						if (!T53_) goto LA55_;
						{
							if (!!(((*(*currFieldPath)._kind_6.sons->data[((NI) 1)])._kind_1.intVal == (*(*currObjPath)._kind_6.sons->data[((NI) 1)])._kind_1.intVal))) goto LA59_;
							result = ((tyEnum_AliasKind__mOZtJx9b3QXuy9bfWq9cuUNCg) 1);
							goto BeforeRet_;
						}
						LA59_: ;
					}
					goto LA51_;
					LA55_: ;
					{
						result = ((tyEnum_AliasKind__mOZtJx9b3QXuy9bfWq9cuUNCg) 2);
					}
					LA51_: ;
				}
				break;
				default:
				{
				}
				break;
				}
				res += ((NI) 1);
			} LA28: ;
		}
	}
	}BeforeRet_: ;
	return result;
}
static N_INLINE(NIM_BOOL, isSinkParam__ast_5005)(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* s) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	NIM_BOOL T3_;
	result = (NIM_BOOL)0;
	T1_ = (NIM_BOOL)0;
	T1_ = ((*s).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 3));
	if (!(T1_)) goto LA2_;
	T3_ = (NIM_BOOL)0;
	T3_ = ((*(*s).typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 46));
	if (T3_) goto LA4_;
	T3_ = (((*(*s).typ).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 4))&63U)))!=0);
	LA4_: ;
	T1_ = T3_;
	LA2_: ;
	result = T1_;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isAnalysableFieldAccess__dfa_910)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* orig, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* owner) {
	NIM_BOOL result;
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n;
	NIM_BOOL T12_;
	NIM_BOOL T13_;
	NIM_BOOL T14_;
	NIM_BOOL T18_;
{	result = (NIM_BOOL)0;
	n = orig;
	{
		while (1) {
			switch ((*n).kind) {
			case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 42):
			case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 45) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 46):
			case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 63) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 64):
			case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 66) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 67):
			{
				n = (*n)._kind_6.sons->data[((NI) 0)];
			}
			break;
			case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 58) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 59):
			{
				n = (*n)._kind_6.sons->data[((NI) 1)];
			}
			break;
			case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 65):
			case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 47):
			{
				NIM_BOOL T6_;
				NIM_BOOL T7_;
				tyObject_TType__facALICuu8zUj0hjvbTLFg* T10_;
				n = (*n)._kind_6.sons->data[((NI) 0)];
				T6_ = (NIM_BOOL)0;
				T7_ = (NIM_BOOL)0;
				T7_ = ((*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3));
				if (!(T7_)) goto LA8_;
				T7_ = ((*(*n)._kind_4.sym).owner == owner);
				LA8_: ;
				T6_ = T7_;
				if (!(T6_)) goto LA9_;
				T10_ = NIM_NIL;
				T10_ = skipTypes__ast_3710((*(*n)._kind_4.sym).typ, TM__rmUZTUif19aNVU5raHE2xtA_17);
				T6_ = ((*T10_).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 45));
				LA9_: ;
				result = T6_;
				goto BeforeRet_;
			}
			break;
			default:
			{
				goto LA1;
			}
			break;
			}
		}
	} LA1: ;
	T12_ = (NIM_BOOL)0;
	T13_ = (NIM_BOOL)0;
	T14_ = (NIM_BOOL)0;
	T14_ = ((*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3));
	if (!(T14_)) goto LA15_;
	T14_ = ((*(*n)._kind_4.sym).owner == owner);
	LA15_: ;
	T13_ = T14_;
	if (!(T13_)) goto LA16_;
	T13_ = ((IL64(2199090364424) & (*(*n)._kind_4.sym).flags) == 0);
	LA16_: ;
	T12_ = T13_;
	if (!(T12_)) goto LA17_;
	T18_ = (NIM_BOOL)0;
	T18_ = !(((*(*n)._kind_4.sym).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 3)));
	if (T18_) goto LA19_;
	T18_ = isSinkParam__ast_5005((*n)._kind_4.sym);
	LA19_: ;
	T12_ = T18_;
	LA17_: ;
	result = T12_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, skipConvDfa__dfa_787)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	result = NIM_NIL;
	result = n;
	{
		while (1) {
			switch ((*result).kind) {
			case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 66):
			case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 67):
			{
				result = (*result)._kind_6.sons->data[((NI) 0)];
			}
			break;
			case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 58) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 59):
			{
				result = (*result)._kind_6.sons->data[((NI) 1)];
			}
			break;
			default:
			{
				goto LA1;
			}
			break;
			}
		}
	} LA1: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, atmdfadotnim_DatInit000)(void) {
static TNimNode* TM__rmUZTUif19aNVU5raHE2xtA_2_2[2];
static TNimNode* TM__rmUZTUif19aNVU5raHE2xtA_3_2[2];
static TNimNode* TM__rmUZTUif19aNVU5raHE2xtA_4_2[2];
static TNimNode* TM__rmUZTUif19aNVU5raHE2xtA_5_2[2];
static TNimNode* TM__rmUZTUif19aNVU5raHE2xtA_6_4[4];
NI TM__rmUZTUif19aNVU5raHE2xtA_8;
static char* NIM_CONST TM__rmUZTUif19aNVU5raHE2xtA_7[4] = {
"goto", 
"fork", 
"def", 
"use"};
static TNimNode* TM__rmUZTUif19aNVU5raHE2xtA_14_3[3];
NI TM__rmUZTUif19aNVU5raHE2xtA_16;
static char* NIM_CONST TM__rmUZTUif19aNVU5raHE2xtA_15[3] = {
"yes", 
"no", 
"maybe"};
static TNimNode TM__rmUZTUif19aNVU5raHE2xtA_0[24];
NTItblock__J29b9b9cJiD9aK19cdoA7IwWiyA_.size = sizeof(tyObject_TBlock__J29b9b9cJiD9aK19cdoA7IwWiyA);
NTItblock__J29b9b9cJiD9aK19cdoA7IwWiyA_.align = NIM_ALIGNOF(tyObject_TBlock__J29b9b9cJiD9aK19cdoA7IwWiyA);
NTItblock__J29b9b9cJiD9aK19cdoA7IwWiyA_.kind = 18;
NTItblock__J29b9b9cJiD9aK19cdoA7IwWiyA_.base = 0;
TM__rmUZTUif19aNVU5raHE2xtA_0[0].kind = 3;
TM__rmUZTUif19aNVU5raHE2xtA_0[0].offset = offsetof(tyObject_TBlock__J29b9b9cJiD9aK19cdoA7IwWiyA, isTryBlock);
TM__rmUZTUif19aNVU5raHE2xtA_0[0].typ = (&NTIbool__VaVACK0bpYmqIQ0mKcHfQQ_);
TM__rmUZTUif19aNVU5raHE2xtA_0[0].name = "isTryBlock";
TM__rmUZTUif19aNVU5raHE2xtA_0[0].sons = &NimDT___J29b9b9cJiD9aK19cdoA7IwWiyA_isTryBlock[0];
TM__rmUZTUif19aNVU5raHE2xtA_0[0].len = 2;
TM__rmUZTUif19aNVU5raHE2xtA_2_2[0] = &TM__rmUZTUif19aNVU5raHE2xtA_0[2];
TM__rmUZTUif19aNVU5raHE2xtA_0[2].kind = 1;
TM__rmUZTUif19aNVU5raHE2xtA_0[2].offset = offsetof(tyObject_TBlock__J29b9b9cJiD9aK19cdoA7IwWiyA, _isTryBlock_1.label);
TM__rmUZTUif19aNVU5raHE2xtA_0[2].typ = (&NTIpsym__dG2QVH5Z69aMUY38zTqWxaA_);
TM__rmUZTUif19aNVU5raHE2xtA_0[2].name = "label";
TM__rmUZTUif19aNVU5raHE2xtA_2_2[1] = &TM__rmUZTUif19aNVU5raHE2xtA_0[3];
NTILtposition_seqLpnodeTT__tFiYBoaBrKZKt1Te12yKUQ_.size = sizeof(tyTuple__tFiYBoaBrKZKt1Te12yKUQ);
NTILtposition_seqLpnodeTT__tFiYBoaBrKZKt1Te12yKUQ_.align = NIM_ALIGNOF(tyTuple__tFiYBoaBrKZKt1Te12yKUQ);
NTILtposition_seqLpnodeTT__tFiYBoaBrKZKt1Te12yKUQ_.kind = 18;
NTILtposition_seqLpnodeTT__tFiYBoaBrKZKt1Te12yKUQ_.base = 0;
TM__rmUZTUif19aNVU5raHE2xtA_3_2[0] = &TM__rmUZTUif19aNVU5raHE2xtA_0[5];
TM__rmUZTUif19aNVU5raHE2xtA_0[5].kind = 1;
TM__rmUZTUif19aNVU5raHE2xtA_0[5].offset = offsetof(tyTuple__tFiYBoaBrKZKt1Te12yKUQ, Field0);
TM__rmUZTUif19aNVU5raHE2xtA_0[5].typ = (&NTIint__rR5Bzr1D5krxoo1NcNyeMA_);
TM__rmUZTUif19aNVU5raHE2xtA_0[5].name = "Field0";
TM__rmUZTUif19aNVU5raHE2xtA_3_2[1] = &TM__rmUZTUif19aNVU5raHE2xtA_0[6];
TM__rmUZTUif19aNVU5raHE2xtA_0[6].kind = 1;
TM__rmUZTUif19aNVU5raHE2xtA_0[6].offset = offsetof(tyTuple__tFiYBoaBrKZKt1Te12yKUQ, Field1);
TM__rmUZTUif19aNVU5raHE2xtA_0[6].typ = (&NTItnodeseq__ehmV9bTklH2Gt9cXHV9c0HLeQ_);
TM__rmUZTUif19aNVU5raHE2xtA_0[6].name = "Field1";
TM__rmUZTUif19aNVU5raHE2xtA_0[4].len = 2; TM__rmUZTUif19aNVU5raHE2xtA_0[4].kind = 2; TM__rmUZTUif19aNVU5raHE2xtA_0[4].sons = &TM__rmUZTUif19aNVU5raHE2xtA_3_2[0];
NTILtposition_seqLpnodeTT__tFiYBoaBrKZKt1Te12yKUQ_.node = &TM__rmUZTUif19aNVU5raHE2xtA_0[4];
NTIseqLLtposition_seqLpnodeTTT__m6h1zim2DFUPFJioFj0P9cg_.size = sizeof(tySequence__m6h1zim2DFUPFJioFj0P9cg*);
NTIseqLLtposition_seqLpnodeTTT__m6h1zim2DFUPFJioFj0P9cg_.align = NIM_ALIGNOF(tySequence__m6h1zim2DFUPFJioFj0P9cg*);
NTIseqLLtposition_seqLpnodeTTT__m6h1zim2DFUPFJioFj0P9cg_.kind = 24;
NTIseqLLtposition_seqLpnodeTTT__m6h1zim2DFUPFJioFj0P9cg_.base = (&NTILtposition_seqLpnodeTT__tFiYBoaBrKZKt1Te12yKUQ_);
NTIseqLLtposition_seqLpnodeTTT__m6h1zim2DFUPFJioFj0P9cg_.marker = Marker_tySequence__m6h1zim2DFUPFJioFj0P9cg;
TM__rmUZTUif19aNVU5raHE2xtA_0[3].kind = 1;
TM__rmUZTUif19aNVU5raHE2xtA_0[3].offset = offsetof(tyObject_TBlock__J29b9b9cJiD9aK19cdoA7IwWiyA, _isTryBlock_1.breakFixups);
TM__rmUZTUif19aNVU5raHE2xtA_0[3].typ = (&NTIseqLLtposition_seqLpnodeTTT__m6h1zim2DFUPFJioFj0P9cg_);
TM__rmUZTUif19aNVU5raHE2xtA_0[3].name = "breakFixups";
TM__rmUZTUif19aNVU5raHE2xtA_0[1].len = 2; TM__rmUZTUif19aNVU5raHE2xtA_0[1].kind = 2; TM__rmUZTUif19aNVU5raHE2xtA_0[1].sons = &TM__rmUZTUif19aNVU5raHE2xtA_2_2[0];
NimDT___J29b9b9cJiD9aK19cdoA7IwWiyA_isTryBlock[0] = &TM__rmUZTUif19aNVU5raHE2xtA_0[1];
TM__rmUZTUif19aNVU5raHE2xtA_4_2[0] = &TM__rmUZTUif19aNVU5raHE2xtA_0[8];
TM__rmUZTUif19aNVU5raHE2xtA_0[8].kind = 1;
TM__rmUZTUif19aNVU5raHE2xtA_0[8].offset = offsetof(tyObject_TBlock__J29b9b9cJiD9aK19cdoA7IwWiyA, _isTryBlock_2.finale);
TM__rmUZTUif19aNVU5raHE2xtA_0[8].typ = (&NTIpnode__fKfcLzXYiz5jNu3NH3Tv8Q_);
TM__rmUZTUif19aNVU5raHE2xtA_0[8].name = "finale";
TM__rmUZTUif19aNVU5raHE2xtA_4_2[1] = &TM__rmUZTUif19aNVU5raHE2xtA_0[9];
TM__rmUZTUif19aNVU5raHE2xtA_0[9].kind = 1;
TM__rmUZTUif19aNVU5raHE2xtA_0[9].offset = offsetof(tyObject_TBlock__J29b9b9cJiD9aK19cdoA7IwWiyA, _isTryBlock_2.raiseFixups);
TM__rmUZTUif19aNVU5raHE2xtA_0[9].typ = (&NTIseqLtpositionT__qwqHTkRvwhrRyENtudHQ7g_);
TM__rmUZTUif19aNVU5raHE2xtA_0[9].name = "raiseFixups";
TM__rmUZTUif19aNVU5raHE2xtA_0[7].len = 2; TM__rmUZTUif19aNVU5raHE2xtA_0[7].kind = 2; TM__rmUZTUif19aNVU5raHE2xtA_0[7].sons = &TM__rmUZTUif19aNVU5raHE2xtA_4_2[0];
NimDT___J29b9b9cJiD9aK19cdoA7IwWiyA_isTryBlock[1] = &TM__rmUZTUif19aNVU5raHE2xtA_0[7];
NTItblock__J29b9b9cJiD9aK19cdoA7IwWiyA_.node = &TM__rmUZTUif19aNVU5raHE2xtA_0[0];
NTIseqLtblockT__bZP29c0SHT9aMkbSl4EFvgCg_.size = sizeof(tySequence__bZP29c0SHT9aMkbSl4EFvgCg*);
NTIseqLtblockT__bZP29c0SHT9aMkbSl4EFvgCg_.align = NIM_ALIGNOF(tySequence__bZP29c0SHT9aMkbSl4EFvgCg*);
NTIseqLtblockT__bZP29c0SHT9aMkbSl4EFvgCg_.kind = 24;
NTIseqLtblockT__bZP29c0SHT9aMkbSl4EFvgCg_.base = (&NTItblock__J29b9b9cJiD9aK19cdoA7IwWiyA_);
NTIseqLtblockT__bZP29c0SHT9aMkbSl4EFvgCg_.marker = Marker_tySequence__bZP29c0SHT9aMkbSl4EFvgCg;
NTIinstr__Iclb1njvAJfjjEpCLzUzZg_.size = sizeof(tyObject_Instr__Iclb1njvAJfjjEpCLzUzZg);
NTIinstr__Iclb1njvAJfjjEpCLzUzZg_.align = NIM_ALIGNOF(tyObject_Instr__Iclb1njvAJfjjEpCLzUzZg);
NTIinstr__Iclb1njvAJfjjEpCLzUzZg_.kind = 18;
NTIinstr__Iclb1njvAJfjjEpCLzUzZg_.base = 0;
TM__rmUZTUif19aNVU5raHE2xtA_5_2[0] = &TM__rmUZTUif19aNVU5raHE2xtA_0[11];
TM__rmUZTUif19aNVU5raHE2xtA_0[11].kind = 1;
TM__rmUZTUif19aNVU5raHE2xtA_0[11].offset = offsetof(tyObject_Instr__Iclb1njvAJfjjEpCLzUzZg, n);
TM__rmUZTUif19aNVU5raHE2xtA_0[11].typ = (&NTIpnode__fKfcLzXYiz5jNu3NH3Tv8Q_);
TM__rmUZTUif19aNVU5raHE2xtA_0[11].name = "n";
TM__rmUZTUif19aNVU5raHE2xtA_5_2[1] = &TM__rmUZTUif19aNVU5raHE2xtA_0[12];
NTIinstrkind__kmjEwko0gQNypI4MTa9chwQ_.size = sizeof(tyEnum_InstrKind__kmjEwko0gQNypI4MTa9chwQ);
NTIinstrkind__kmjEwko0gQNypI4MTa9chwQ_.align = NIM_ALIGNOF(tyEnum_InstrKind__kmjEwko0gQNypI4MTa9chwQ);
NTIinstrkind__kmjEwko0gQNypI4MTa9chwQ_.kind = 14;
NTIinstrkind__kmjEwko0gQNypI4MTa9chwQ_.base = 0;
NTIinstrkind__kmjEwko0gQNypI4MTa9chwQ_.flags = 3;
for (TM__rmUZTUif19aNVU5raHE2xtA_8 = 0; TM__rmUZTUif19aNVU5raHE2xtA_8 < 4; TM__rmUZTUif19aNVU5raHE2xtA_8++) {
TM__rmUZTUif19aNVU5raHE2xtA_0[TM__rmUZTUif19aNVU5raHE2xtA_8+13].kind = 1;
TM__rmUZTUif19aNVU5raHE2xtA_0[TM__rmUZTUif19aNVU5raHE2xtA_8+13].offset = TM__rmUZTUif19aNVU5raHE2xtA_8;
TM__rmUZTUif19aNVU5raHE2xtA_0[TM__rmUZTUif19aNVU5raHE2xtA_8+13].name = TM__rmUZTUif19aNVU5raHE2xtA_7[TM__rmUZTUif19aNVU5raHE2xtA_8];
TM__rmUZTUif19aNVU5raHE2xtA_6_4[TM__rmUZTUif19aNVU5raHE2xtA_8] = &TM__rmUZTUif19aNVU5raHE2xtA_0[TM__rmUZTUif19aNVU5raHE2xtA_8+13];
}
TM__rmUZTUif19aNVU5raHE2xtA_0[17].len = 4; TM__rmUZTUif19aNVU5raHE2xtA_0[17].kind = 2; TM__rmUZTUif19aNVU5raHE2xtA_0[17].sons = &TM__rmUZTUif19aNVU5raHE2xtA_6_4[0];
NTIinstrkind__kmjEwko0gQNypI4MTa9chwQ_.node = &TM__rmUZTUif19aNVU5raHE2xtA_0[17];
TM__rmUZTUif19aNVU5raHE2xtA_0[12].kind = 3;
TM__rmUZTUif19aNVU5raHE2xtA_0[12].offset = offsetof(tyObject_Instr__Iclb1njvAJfjjEpCLzUzZg, kind);
TM__rmUZTUif19aNVU5raHE2xtA_0[12].typ = (&NTIinstrkind__kmjEwko0gQNypI4MTa9chwQ_);
TM__rmUZTUif19aNVU5raHE2xtA_0[12].name = "kind";
TM__rmUZTUif19aNVU5raHE2xtA_0[12].sons = &NimDT___Iclb1njvAJfjjEpCLzUzZg_kind[0];
TM__rmUZTUif19aNVU5raHE2xtA_0[12].len = 4;
TM__rmUZTUif19aNVU5raHE2xtA_0[18].kind = 1;
TM__rmUZTUif19aNVU5raHE2xtA_0[18].offset = offsetof(tyObject_Instr__Iclb1njvAJfjjEpCLzUzZg, dest);
TM__rmUZTUif19aNVU5raHE2xtA_0[18].typ = (&NTIint__rR5Bzr1D5krxoo1NcNyeMA_);
TM__rmUZTUif19aNVU5raHE2xtA_0[18].name = "dest";
NimDT___Iclb1njvAJfjjEpCLzUzZg_kind[0] = &TM__rmUZTUif19aNVU5raHE2xtA_0[18];
NimDT___Iclb1njvAJfjjEpCLzUzZg_kind[1] = &TM__rmUZTUif19aNVU5raHE2xtA_0[18];
TM__rmUZTUif19aNVU5raHE2xtA_0[19].len = 0; TM__rmUZTUif19aNVU5raHE2xtA_0[19].kind = 2;
NimDT___Iclb1njvAJfjjEpCLzUzZg_kind[4] = &TM__rmUZTUif19aNVU5raHE2xtA_0[19];
TM__rmUZTUif19aNVU5raHE2xtA_0[10].len = 2; TM__rmUZTUif19aNVU5raHE2xtA_0[10].kind = 2; TM__rmUZTUif19aNVU5raHE2xtA_0[10].sons = &TM__rmUZTUif19aNVU5raHE2xtA_5_2[0];
NTIinstr__Iclb1njvAJfjjEpCLzUzZg_.node = &TM__rmUZTUif19aNVU5raHE2xtA_0[10];
NTIcontrolflowgraph__hj4BvueOlKB8Z1Qw2ZU4nQ_.size = sizeof(tySequence__hj4BvueOlKB8Z1Qw2ZU4nQ*);
NTIcontrolflowgraph__hj4BvueOlKB8Z1Qw2ZU4nQ_.align = NIM_ALIGNOF(tySequence__hj4BvueOlKB8Z1Qw2ZU4nQ*);
NTIcontrolflowgraph__hj4BvueOlKB8Z1Qw2ZU4nQ_.kind = 24;
NTIcontrolflowgraph__hj4BvueOlKB8Z1Qw2ZU4nQ_.base = (&NTIinstr__Iclb1njvAJfjjEpCLzUzZg_);
NTIcontrolflowgraph__hj4BvueOlKB8Z1Qw2ZU4nQ_.marker = Marker_tySequence__hj4BvueOlKB8Z1Qw2ZU4nQ;
NTIaliaskind__mOZtJx9b3QXuy9bfWq9cuUNCg_.size = sizeof(tyEnum_AliasKind__mOZtJx9b3QXuy9bfWq9cuUNCg);
NTIaliaskind__mOZtJx9b3QXuy9bfWq9cuUNCg_.align = NIM_ALIGNOF(tyEnum_AliasKind__mOZtJx9b3QXuy9bfWq9cuUNCg);
NTIaliaskind__mOZtJx9b3QXuy9bfWq9cuUNCg_.kind = 14;
NTIaliaskind__mOZtJx9b3QXuy9bfWq9cuUNCg_.base = 0;
NTIaliaskind__mOZtJx9b3QXuy9bfWq9cuUNCg_.flags = 3;
for (TM__rmUZTUif19aNVU5raHE2xtA_16 = 0; TM__rmUZTUif19aNVU5raHE2xtA_16 < 3; TM__rmUZTUif19aNVU5raHE2xtA_16++) {
TM__rmUZTUif19aNVU5raHE2xtA_0[TM__rmUZTUif19aNVU5raHE2xtA_16+20].kind = 1;
TM__rmUZTUif19aNVU5raHE2xtA_0[TM__rmUZTUif19aNVU5raHE2xtA_16+20].offset = TM__rmUZTUif19aNVU5raHE2xtA_16;
TM__rmUZTUif19aNVU5raHE2xtA_0[TM__rmUZTUif19aNVU5raHE2xtA_16+20].name = TM__rmUZTUif19aNVU5raHE2xtA_15[TM__rmUZTUif19aNVU5raHE2xtA_16];
TM__rmUZTUif19aNVU5raHE2xtA_14_3[TM__rmUZTUif19aNVU5raHE2xtA_16] = &TM__rmUZTUif19aNVU5raHE2xtA_0[TM__rmUZTUif19aNVU5raHE2xtA_16+20];
}
TM__rmUZTUif19aNVU5raHE2xtA_0[23].len = 3; TM__rmUZTUif19aNVU5raHE2xtA_0[23].kind = 2; TM__rmUZTUif19aNVU5raHE2xtA_0[23].sons = &TM__rmUZTUif19aNVU5raHE2xtA_14_3[0];
NTIaliaskind__mOZtJx9b3QXuy9bfWq9cuUNCg_.node = &TM__rmUZTUif19aNVU5raHE2xtA_0[23];
}

