/* Generated by Nim Compiler v0.11.2 */
/*   (c) 2015 Andreas Rumpf */
/* The generated code is subject to the original license. */
#define NIM_INTBITS 32
#include "nimbase.h"

#include <string.h>
typedef struct Tnode190813 Tnode190813;
typedef struct Ttype190849 Ttype190849;
typedef struct Tlineinfo163338 Tlineinfo163338;
typedef struct NimStringDesc NimStringDesc;
typedef struct TGenericSeq TGenericSeq;
typedef struct Tsym190843 Tsym190843;
typedef struct Tident167021 Tident167021;
typedef struct Tnodeseq190807 Tnodeseq190807;
typedef struct TNimType TNimType;
typedef struct TNimNode TNimNode;
typedef struct Tidobj167015 Tidobj167015;
typedef struct TNimObject TNimObject;
typedef struct Ttypeseq190845 Ttypeseq190845;
typedef struct Tloc190827 Tloc190827;
typedef struct Ropeobj161009 Ropeobj161009;
typedef struct Tscope190837 Tscope190837;
typedef struct TY190944 TY190944;
typedef struct Tstrtable190817 Tstrtable190817;
typedef struct Tsymseq190815 Tsymseq190815;
typedef struct Tlib190831 Tlib190831;
typedef struct Tinstantiation190833 Tinstantiation190833;
typedef struct TY190933 TY190933;
typedef struct Tlistentry130022 Tlistentry130022;
typedef struct Tcell46346 Tcell46346;
typedef struct Tcellseq46362 Tcellseq46362;
typedef struct Tgcheap48216 Tgcheap48216;
typedef struct Tcellset46358 Tcellset46358;
typedef struct Tpagedesc46354 Tpagedesc46354;
typedef struct Tmemregion28210 Tmemregion28210;
typedef struct Tsmallchunk27440 Tsmallchunk27440;
typedef struct Tllchunk28204 Tllchunk28204;
typedef struct Tbigchunk27442 Tbigchunk27442;
typedef struct Tintset27417 Tintset27417;
typedef struct Ttrunk27413 Ttrunk27413;
typedef struct Tavlnode28208 Tavlnode28208;
typedef struct Tgcstat48214 Tgcstat48214;
typedef struct Tidtable190861 Tidtable190861;
typedef struct Tidpairseq190859 Tidpairseq190859;
typedef struct Tidpair190857 Tidpair190857;
typedef struct Tnodetable190873 Tnodetable190873;
typedef struct Tnodepairseq190871 Tnodepairseq190871;
typedef struct Tnodepair190869 Tnodepair190869;
typedef struct TY86545 TY86545;
typedef struct Tidnodetable190867 Tidnodetable190867;
typedef struct Tidnodepairseq190865 Tidnodepairseq190865;
typedef struct Tidnodepair190863 Tidnodepair190863;
typedef struct Tbasechunk27438 Tbasechunk27438;
typedef struct Tfreecell27430 Tfreecell27430;
struct  Tlineinfo163338  {
NI16 line;
NI16 col;
NI32 fileindex;
};
struct  TGenericSeq  {
NI len;
NI reserved;
};
struct  NimStringDesc  {
  TGenericSeq Sup;
NIM_CHAR data[SEQ_DECL_SIZE];
};
struct  Tnode190813  {
Ttype190849* typ;
Tlineinfo163338 info;
NU16 flags;
NU8 kind;
union{
struct {NI64 intval;
} S1;
struct {NF floatval;
} S2;
struct {NimStringDesc* strval;
} S3;
struct {Tsym190843* sym;
} S4;
struct {Tident167021* ident;
} S5;
struct {Tnodeseq190807* sons;
} S6;
} kindU;
NimStringDesc* comment;
};
typedef N_NIMCALL_PTR(void, TY3289) (void* p, NI op);
typedef N_NIMCALL_PTR(void*, TY3294) (void* p);
struct  TNimType  {
NI size;
NU8 kind;
NU8 flags;
TNimType* base;
TNimNode* node;
void* finalizer;
TY3289 marker;
TY3294 deepcopy;
};
struct  TNimNode  {
NU8 kind;
NI offset;
TNimType* typ;
NCSTRING name;
NI len;
TNimNode** sons;
};
struct  TNimObject  {
TNimType* m_type;
};
struct  Tidobj167015  {
  TNimObject Sup;
NI id;
};
struct  Tloc190827  {
NU8 k;
NU8 s;
NU16 flags;
Ttype190849* t;
Ropeobj161009* r;
Ropeobj161009* heaproot;
};
struct  Ttype190849  {
  Tidobj167015 Sup;
NU8 kind;
NU8 callconv;
NU32 flags;
Ttypeseq190845* sons;
Tnode190813* n;
Tsym190843* owner;
Tsym190843* sym;
Tsym190843* destructor;
Tsym190843* deepcopy;
Tsym190843* assignment;
NI64 size;
NI16 align;
NI16 locklevel;
Tloc190827 loc;
};
struct  Tstrtable190817  {
NI counter;
Tsymseq190815* data;
};
struct  Tsym190843  {
  Tidobj167015 Sup;
NU8 kind;
union{
struct {Ttypeseq190845* typeinstcache;
Tscope190837* typscope;
} S1;
struct {TY190944* procinstcache;
Tsym190843* gcunsafetyreason;
} S2;
struct {TY190944* usedgenerics;
Tstrtable190817 tab;
} S3;
struct {Tsym190843* guard;
} S4;
} kindU;
NU16 magic;
Ttype190849* typ;
Tident167021* name;
Tlineinfo163338 info;
Tsym190843* owner;
NU32 flags;
Tnode190813* ast;
NU32 options;
NI position;
NI offset;
Tloc190827 loc;
Tlib190831* annex;
Tnode190813* constraint;
};
struct  Tscope190837  {
NI depthlevel;
Tstrtable190817 symbols;
Tnodeseq190807* usingsyms;
Tscope190837* parent;
};
struct  Tinstantiation190833  {
Tsym190843* sym;
Ttypeseq190845* concretetypes;
TY190933* usedby;
};
struct  Tlistentry130022  {
  TNimObject Sup;
Tlistentry130022* prev;
Tlistentry130022* next;
};
struct  Tlib190831  {
  Tlistentry130022 Sup;
NU8 kind;
NIM_BOOL generated;
NIM_BOOL isoverriden;
Ropeobj161009* name;
Tnode190813* path;
};
struct  Tcell46346  {
NI refcount;
TNimType* typ;
};
struct  Tcellseq46362  {
NI len;
NI cap;
Tcell46346** d;
};
struct  Tcellset46358  {
NI counter;
NI max;
Tpagedesc46354* head;
Tpagedesc46354** data;
};
typedef Tsmallchunk27440* TY28222[512];
typedef Ttrunk27413* Ttrunkbuckets27415[256];
struct  Tintset27417  {
Ttrunkbuckets27415 data;
};
struct  Tmemregion28210  {
NI minlargeobj;
NI maxlargeobj;
TY28222 freesmallchunks;
Tllchunk28204* llmem;
NI currmem;
NI maxmem;
NI freemem;
NI lastsize;
Tbigchunk27442* freechunkslist;
Tintset27417 chunkstarts;
Tavlnode28208* root;
Tavlnode28208* deleted;
Tavlnode28208* last;
Tavlnode28208* freeavlnodes;
};
struct  Tgcstat48214  {
NI stackscans;
NI cyclecollections;
NI maxthreshold;
NI maxstacksize;
NI maxstackcells;
NI cycletablesize;
NI64 maxpause;
};
struct  Tgcheap48216  {
void* stackbottom;
NI cyclethreshold;
Tcellseq46362 zct;
Tcellseq46362 decstack;
Tcellset46358 cycleroots;
Tcellseq46362 tempstack;
NI recgclock;
Tmemregion28210 region;
Tgcstat48214 stat;
};
struct  Tidtable190861  {
NI counter;
Tidpairseq190859* data;
};
struct  Tidpair190857  {
Tidobj167015* key;
TNimObject* val;
};
struct  Tnodetable190873  {
NI counter;
Tnodepairseq190871* data;
};
struct  Tnodepair190869  {
NI h;
Tnode190813* key;
NI val;
};
typedef Tnode190813* TY193071[7];
typedef NimStringDesc* TY190020[10];
struct TY86545 {
NimStringDesc* Field0;
NI Field1;
};
typedef Tnode190813* TY208680[1];
struct  Tidnodetable190867  {
NI counter;
Tidnodepairseq190865* data;
};
struct  Tidnodepair190863  {
Tidobj167015* key;
Tnode190813* val;
};
typedef NU8 TY432644[20];
struct  Tident167021  {
  Tidobj167015 Sup;
NimStringDesc* s;
Tident167021* next;
NI h;
};
struct  Ropeobj161009  {
  TNimObject Sup;
Ropeobj161009* left;
Ropeobj161009* right;
NI length;
NimStringDesc* data;
};
typedef NI TY27420[16];
struct  Tpagedesc46354  {
Tpagedesc46354* next;
NI key;
TY27420 bits;
};
struct  Tbasechunk27438  {
NI prevsize;
NI size;
NIM_BOOL used;
};
struct  Tsmallchunk27440  {
  Tbasechunk27438 Sup;
Tsmallchunk27440* next;
Tsmallchunk27440* prev;
Tfreecell27430* freelist;
NI free;
NI acc;
NF data;
};
struct  Tllchunk28204  {
NI size;
NI acc;
Tllchunk28204* next;
};
struct  Tbigchunk27442  {
  Tbasechunk27438 Sup;
Tbigchunk27442* next;
Tbigchunk27442* prev;
NI align;
NF data;
};
struct  Ttrunk27413  {
Ttrunk27413* next;
NI key;
TY27420 bits;
};
typedef Tavlnode28208* TY28214[2];
struct  Tavlnode28208  {
TY28214 link;
NI key;
NI upperbound;
NI level;
};
struct  Tfreecell27430  {
Tfreecell27430* next;
NI zerofield;
};
struct Ttypeseq190845 {
  TGenericSeq Sup;
  Ttype190849* data[SEQ_DECL_SIZE];
};
struct Tsymseq190815 {
  TGenericSeq Sup;
  Tsym190843* data[SEQ_DECL_SIZE];
};
struct Tnodeseq190807 {
  TGenericSeq Sup;
  Tnode190813* data[SEQ_DECL_SIZE];
};
struct TY190933 {
  TGenericSeq Sup;
  NI32 data[SEQ_DECL_SIZE];
};
struct TY190944 {
  TGenericSeq Sup;
  Tinstantiation190833* data[SEQ_DECL_SIZE];
};
struct Tidpairseq190859 {
  TGenericSeq Sup;
  Tidpair190857 data[SEQ_DECL_SIZE];
};
struct Tnodepairseq190871 {
  TGenericSeq Sup;
  Tnodepair190869 data[SEQ_DECL_SIZE];
};
struct Tidnodepairseq190865 {
  TGenericSeq Sup;
  Tidnodepair190863 data[SEQ_DECL_SIZE];
};
N_NIMCALL(Tnode190813*, newnode_191401)(NU8 kind);
N_NIMCALL(void, nimGCvisit)(void* d, NI op);
N_NIMCALL(void, TMP738)(void* p, NI op);
N_NIMCALL(void, TMP746)(void* p, NI op);
N_NIMCALL(void, TMP747)(void* p, NI op);
N_NIMCALL(void, TMP748)(void* p, NI op);
N_NIMCALL(void, TMP751)(void* p, NI op);
N_NIMCALL(void, TMP752)(void* p, NI op);
N_NIMCALL(void, TMP753)(void* p, NI op);
N_NIMCALL(void, TMP780)(void* p, NI op);
N_NIMCALL(void, TMP781)(void* p, NI op);
N_NIMCALL(void, TMP782)(void* p, NI op);
N_NIMCALL(void, TMP789)(void* p, NI op);
N_NIMCALL(void*, newObj)(TNimType* typ, NI size);
static N_INLINE(void, asgnRefNoCycle)(void** dest, void* src);
static N_INLINE(Tcell46346*, usrtocell_49846)(void* usr);
static N_INLINE(void, rtladdzct_51404)(Tcell46346* c);
N_NOINLINE(void, addzct_49817)(Tcellseq46362* s, Tcell46346* c);
N_NIMCALL(Tsym190843*, newsym_191656)(NU8 symkind, Tident167021* name, Tsym190843* owner, Tlineinfo163338 info);
static N_INLINE(NI, getid_189404)(void);
N_NIMCALL(Tident167021*, getident_167463)(NimStringDesc* identifier);
N_NIMCALL(Tlineinfo163338, unknownlineinfo_164027)(void);
N_NIMCALL(void, addson_192819)(Tnode190813* father, Tnode190813* son);
static N_INLINE(void, nimGCunrefNoCycle)(void* p);
N_NIMCALL(void*, newSeqRC1)(TNimType* typ, NI len);
N_NIMCALL(TGenericSeq*, incrSeq)(TGenericSeq* seq, NI elemsize);
N_NIMCALL(Tsym190843*, createmagic_195986)(NimStringDesc* name, NU16 m);
N_NIMCALL(void, TMP830)(void* p, NI op);
N_NIMCALL(void*, newSeq)(TNimType* typ, NI len);
N_NIMCALL(void, unsureAsgnRef)(void** dest, void* src);
N_NIMCALL(Ttype190849*, lastson_193442)(Ttype190849* n);
N_NIMCALL(NI, sonslen_193351)(Ttype190849* n);
N_NIMCALL(void, propagatetoowner_194274)(Ttype190849* owner, Ttype190849* elem);
N_NIMCALL(NIM_BOOL, ismetatype_191821)(Ttype190849* t);
N_NIMCALL(Ttype190849*, skiptypes_194167)(Ttype190849* t, NU64 kinds);
static N_INLINE(NIM_BOOL, isgcedmem_194235)(Ttype190849* t);
N_NIMCALL(void, TMP1055)(void* p, NI op);
N_NIMCALL(Tnode190813*, newnodei_192351)(NU8 kind, Tlineinfo163338 info);
N_NIMCALL(void, genericSeqAssign)(void* dest, void* src_81404, TNimType* mt);
N_NIMCALL(NI, sonslen_193403)(Tnode190813* n);
N_NIMCALL(NimStringDesc*, copyStringRC1)(NimStringDesc* src);
N_NIMCALL(NimStringDesc*, copyString)(NimStringDesc* src);
N_NIMCALL(NimStringDesc*, nimIntToStr)(NI x);
static N_INLINE(void, asgnRef)(void** dest, void* src);
static N_INLINE(void, incref_52222)(Tcell46346* c);
static N_INLINE(NIM_BOOL, canbecycleroot_49867)(Tcell46346* c);
static N_INLINE(void, rtladdcycleroot_50623)(Tcell46346* c);
N_NOINLINE(void, incl_47065)(Tcellset46358* s, Tcell46346* cell);
static N_INLINE(void, decref_51804)(Tcell46346* c);
N_NIMCALL(void, mergeloc_193207)(Tloc190827* a, Tloc190827 b);
N_NIMCALL(void, newsons_193313)(Ttype190849* father, NI length);
N_NIMCALL(TGenericSeq*, setLengthSeq)(TGenericSeq* seq, NI elemsize, NI newlen);
N_NIMCALL(Ttype190849*, newtype_193140)(NU8 kind, Tsym190843* owner);
N_NIMCALL(void, assigntype_193452)(Ttype190849* dest, Ttype190849* src);
N_NIMCALL(void, copystrtable_192024)(Tstrtable190817* dest, Tstrtable190817 src);
N_NIMCALL(void, genericAssign)(void* dest, void* src, TNimType* mt);
N_NIMCALL(void, initstrtable_194007)(Tstrtable190817* x);
N_NIMCALL(Tnode190813*, copytree_195028)(Tnode190813* src);
N_NIMCALL(void, internalerror_165218)(NimStringDesc* errmsg);
N_NIMCALL(NimStringDesc*, HEX24_165306)(TY86545 x);
N_NIMCALL(Tnode190813*, newintnode_191608)(NU8 kind, NI64 intval);
static N_INLINE(Tnode190813*, HEX5BHEX5D_191244)(Tnode190813* n, NI i);
N_NIMCALL(NI, len_193377)(Ttype190849* n);
N_NIMCALL(void, internalerror_165199)(Tlineinfo163338 info, NimStringDesc* errmsg);
N_NIMCALL(NimStringDesc*, nimCharToStr)(NIM_CHAR x);
N_NIMCALL(void, TMP3254)(void* p, NI op);
N_NIMCALL(NIM_BOOL, containsnode_195365)(Tnode190813* n, TY432644 kinds);
N_NIMCALL(NIM_BOOL, hassubnodewith_195439)(Tnode190813* n, NU8 kind);
TNimNode* NimDT_190843_kind[27];
TNimNode* NimDT_190813_kind[160];
STRING_LITERAL(TMP790, "*", 1);
STRING_LITERAL(TMP791, "not", 3);
STRING_LITERAL(TMP792, "contains", 8);
STRING_LITERAL(TMP2069, "", 0);
STRING_LITERAL(TMP2070, "stdcall", 7);
STRING_LITERAL(TMP2071, "cdecl", 5);
STRING_LITERAL(TMP2072, "safecall", 8);
STRING_LITERAL(TMP2073, "syscall", 7);
STRING_LITERAL(TMP2074, "inline", 6);
STRING_LITERAL(TMP2075, "noinline", 8);
STRING_LITERAL(TMP2076, "fastcall", 8);
STRING_LITERAL(TMP2077, "closure", 7);
STRING_LITERAL(TMP2078, "noconv", 6);
NIM_CONST TY190020 Callingconvtostr_190019 = {((NimStringDesc*) &TMP2069),
((NimStringDesc*) &TMP2070),
((NimStringDesc*) &TMP2071),
((NimStringDesc*) &TMP2072),
((NimStringDesc*) &TMP2073),
((NimStringDesc*) &TMP2074),
((NimStringDesc*) &TMP2075),
((NimStringDesc*) &TMP2076),
((NimStringDesc*) &TMP2077),
((NimStringDesc*) &TMP2078)}
;
STRING_LITERAL(TMP2082, "<unspecified>", 13);
STRING_LITERAL(TMP2083, "<unknown>", 9);
STRING_LITERAL(TMP2674, "ast.nim", 7);
NIM_CONST TY86545 TMP2673 = {((NimStringDesc*) &TMP2674),
((NI) 1519)}
;
STRING_LITERAL(TMP3229, "getInt", 6);
STRING_LITERAL(TMP3230, "getFloat", 8);
STRING_LITERAL(TMP3231, "getStr", 6);
STRING_LITERAL(TMP3234, "getStrOrChar", 12);
NIM_BOOL ggdebug_191066;
Tnode190813* emptynode_191807;
TNimType NTI190813; /* TNode */
extern TNimType NTI167015; /* TIdObj */
TNimType NTI190849; /* TType */
TNimType NTI190260; /* TTypeKind */
TNimType NTI190005; /* TCallingConvention */
TNimType NTI190437; /* TTypeFlag */
TNimType NTI190439; /* TTypeFlags */
TNimType NTI190845; /* TTypeSeq */
TNimType NTI190843; /* TSym */
TNimType NTI190441; /* TSymKind */
TNimType NTI190837; /* TScope */
extern TNimType NTI108; /* int */
TNimType NTI190817; /* TStrTable */
TNimType NTI190815; /* TSymSeq */
TNimType NTI190807; /* TNodeSeq */
TNimType NTI190839; /* PScope */
TNimType NTI190833; /* TInstantiation */
extern TNimType NTI114; /* int32 */
TNimType NTI190933; /* seq[int32] */
TNimType NTI190835; /* PInstantiation */
TNimType NTI190944; /* seq[PInstantiation] */
TNimType NTI190529; /* TMagic */
extern TNimType NTI167019; /* PIdent */
extern TNimType NTI163338; /* TLineInfo */
TNimType NTI190195; /* TSymFlag */
TNimType NTI190197; /* TSymFlags */
extern TNimType NTI154016; /* TOptions */
TNimType NTI190827; /* TLoc */
TNimType NTI190819; /* TLocKind */
TNimType NTI190823; /* TStorageLoc */
TNimType NTI190821; /* TLocFlag */
TNimType NTI190825; /* TLocFlags */
extern TNimType NTI161007; /* Rope */
extern TNimType NTI130022; /* TListEntry */
TNimType NTI190831; /* TLib */
TNimType NTI190829; /* TLibKind */
extern TNimType NTI138; /* bool */
TNimType NTI190841; /* PLib */
TNimType NTI190811; /* PSym */
extern TNimType NTI5710; /* BiggestInt */
extern TNimType NTI112; /* int16 */
TNimType NTI190809; /* PType */
TNimType NTI190433; /* TNodeFlag */
TNimType NTI190435; /* TNodeFlags */
TNimType NTI190029; /* TNodeKind */
extern TNimType NTI5712; /* BiggestFloat */
extern TNimType NTI149; /* string */
TNimType NTI190805; /* PNode */
extern Tgcheap48216 gch_48244;
Tsym190843* anyglobal_191814;
extern NU32 goptions_154126;
extern NI gfrontendid_189012;
Tnode190813* emptyparams_193044;
Tsym190843* opnot_195998;
Tsym190843* opcontains_195999;
TNimType NTI190861; /* TIdTable */
TNimType NTI190857; /* TIdPair */
extern TNimType NTI167017; /* PIdObj */
extern TNimType NTI3413; /* RootRef */
TNimType NTI190859; /* TIdPairSeq */
TNimType NTI190873; /* TNodeTable */
TNimType NTI190869; /* TNodePair */
extern TNimType NTI131021; /* THash */
TNimType NTI190871; /* TNodePairSeq */
TNimType NTI384221; /* ptr PNode */
TNimType NTI190867; /* TIdNodeTable */
TNimType NTI190863; /* TIdNodePair */
TNimType NTI190865; /* TIdNodePairSeq */
N_NIMCALL(void, TMP738)(void* p, NI op) {
	Ttypeseq190845* a;
	NI LOC1;
	a = (Ttypeseq190845*)p;
	LOC1 = 0;
	for (LOC1 = 0; LOC1 < a->Sup.len; LOC1++) {
	nimGCvisit((void*)a->data[LOC1], op);
	}
}
N_NIMCALL(void, TMP746)(void* p, NI op) {
	Tsymseq190815* a;
	NI LOC1;
	a = (Tsymseq190815*)p;
	LOC1 = 0;
	for (LOC1 = 0; LOC1 < a->Sup.len; LOC1++) {
	nimGCvisit((void*)a->data[LOC1], op);
	}
}
N_NIMCALL(void, TMP747)(void* p, NI op) {
	Tnodeseq190807* a;
	NI LOC1;
	a = (Tnodeseq190807*)p;
	LOC1 = 0;
	for (LOC1 = 0; LOC1 < a->Sup.len; LOC1++) {
	nimGCvisit((void*)a->data[LOC1], op);
	}
}
N_NIMCALL(void, TMP748)(void* p, NI op) {
	Tscope190837* a;
	a = (Tscope190837*)p;
	nimGCvisit((void*)(*a).symbols.data, op);
	nimGCvisit((void*)(*a).usingsyms, op);
	nimGCvisit((void*)(*a).parent, op);
}
N_NIMCALL(void, TMP751)(void* p, NI op) {
	TY190933* a;
	NI LOC1;
	a = (TY190933*)p;
	LOC1 = 0;
	for (LOC1 = 0; LOC1 < a->Sup.len; LOC1++) {
	}
}
N_NIMCALL(void, TMP752)(void* p, NI op) {
	Tinstantiation190833* a;
	a = (Tinstantiation190833*)p;
	nimGCvisit((void*)(*a).sym, op);
	nimGCvisit((void*)(*a).concretetypes, op);
	nimGCvisit((void*)(*a).usedby, op);
}
N_NIMCALL(void, TMP753)(void* p, NI op) {
	TY190944* a;
	NI LOC1;
	a = (TY190944*)p;
	LOC1 = 0;
	for (LOC1 = 0; LOC1 < a->Sup.len; LOC1++) {
	nimGCvisit((void*)a->data[LOC1], op);
	}
}
N_NIMCALL(void, TMP780)(void* p, NI op) {
	Tlib190831* a;
	a = (Tlib190831*)p;
	nimGCvisit((void*)(*a).Sup.prev, op);
	nimGCvisit((void*)(*a).Sup.next, op);
	nimGCvisit((void*)(*a).name, op);
	nimGCvisit((void*)(*a).path, op);
}
N_NIMCALL(void, TMP781)(void* p, NI op) {
	Tsym190843* a;
	a = (Tsym190843*)p;
	switch ((*a).kind) {
	case ((NU8) 7):
	case ((NU8) 4):
	nimGCvisit((void*)(*a).kindU.S1.typeinstcache, op);
	nimGCvisit((void*)(*a).kindU.S1.typscope, op);
	break;
	case ((NU8) 12):
	case ((NU8) 13):
	case ((NU8) 14):
	case ((NU8) 15):
	case ((NU8) 16):
	case ((NU8) 17):
	case ((NU8) 18):
	nimGCvisit((void*)(*a).kindU.S2.procinstcache, op);
	nimGCvisit((void*)(*a).kindU.S2.gcunsafetyreason, op);
	break;
	case ((NU8) 6):
	nimGCvisit((void*)(*a).kindU.S3.usedgenerics, op);
	nimGCvisit((void*)(*a).kindU.S3.tab.data, op);
	break;
	case ((NU8) 9):
	case ((NU8) 8):
	case ((NU8) 19):
	case ((NU8) 21):
	nimGCvisit((void*)(*a).kindU.S4.guard, op);
	break;
	default:
	break;
	} 
	nimGCvisit((void*)(*a).typ, op);
	nimGCvisit((void*)(*a).name, op);
	nimGCvisit((void*)(*a).owner, op);
	nimGCvisit((void*)(*a).ast, op);
	nimGCvisit((void*)(*a).loc.t, op);
	nimGCvisit((void*)(*a).loc.r, op);
	nimGCvisit((void*)(*a).loc.heaproot, op);
	nimGCvisit((void*)(*a).annex, op);
	nimGCvisit((void*)(*a).constraint, op);
}
N_NIMCALL(void, TMP782)(void* p, NI op) {
	Ttype190849* a;
	a = (Ttype190849*)p;
	nimGCvisit((void*)(*a).sons, op);
	nimGCvisit((void*)(*a).n, op);
	nimGCvisit((void*)(*a).owner, op);
	nimGCvisit((void*)(*a).sym, op);
	nimGCvisit((void*)(*a).destructor, op);
	nimGCvisit((void*)(*a).deepcopy, op);
	nimGCvisit((void*)(*a).assignment, op);
	nimGCvisit((void*)(*a).loc.t, op);
	nimGCvisit((void*)(*a).loc.r, op);
	nimGCvisit((void*)(*a).loc.heaproot, op);
}
N_NIMCALL(void, TMP789)(void* p, NI op) {
	Tnode190813* a;
	a = (Tnode190813*)p;
	nimGCvisit((void*)(*a).typ, op);
	switch ((*a).kind) {
	case ((NU8) 5) ... ((NU8) 15):
	break;
	case ((NU8) 16) ... ((NU8) 19):
	break;
	case ((NU8) 20) ... ((NU8) 22):
	nimGCvisit((void*)(*a).kindU.S3.strval, op);
	break;
	case ((NU8) 3):
	nimGCvisit((void*)(*a).kindU.S4.sym, op);
	break;
	case ((NU8) 2):
	nimGCvisit((void*)(*a).kindU.S5.ident, op);
	break;
	default:
	nimGCvisit((void*)(*a).kindU.S6.sons, op);
	break;
	} 
	nimGCvisit((void*)(*a).comment, op);
}

N_NIMCALL(Tnode190813*, newnode_191401)(NU8 kind) {
	Tnode190813* result;
	result = 0;
	result = (Tnode190813*) newObj((&NTI190805), sizeof(Tnode190813));
	(*result).kind = kind;
	(*result).info.fileindex = ((NI32) -1);
	(*result).info.col = ((NI16) -1);
	(*result).info.line = ((NI16) -1);
	return result;
}

static N_INLINE(Tcell46346*, usrtocell_49846)(void* usr) {
	Tcell46346* result;
	result = 0;
	result = ((Tcell46346*) ((NI)((NU32)(((NI) (usr))) - (NU32)(((NI)sizeof(Tcell46346))))));
	return result;
}

static N_INLINE(void, rtladdzct_51404)(Tcell46346* c) {
	addzct_49817((&gch_48244.zct), c);
}

static N_INLINE(void, asgnRefNoCycle)(void** dest, void* src) {
	{
		Tcell46346* c;
		if (!!((src == NIM_NIL))) goto LA3;
		c = usrtocell_49846(src);
		(*c).refcount += ((NI) 8);
	}
	LA3: ;
	{
		Tcell46346* c;
		if (!!(((*dest) == NIM_NIL))) goto LA7;
		c = usrtocell_49846((*dest));
		{
			(*c).refcount -= ((NI) 8);
			if (!((NU32)((*c).refcount) < (NU32)(((NI) 8)))) goto LA11;
			rtladdzct_51404(c);
		}
		LA11: ;
	}
	LA7: ;
	(*dest) = src;
}

static N_INLINE(NI, getid_189404)(void) {
	NI result;
	result = 0;
	result = gfrontendid_189012;
	gfrontendid_189012 += ((NI) 1);
	return result;
}

N_NIMCALL(Tsym190843*, newsym_191656)(NU8 symkind, Tident167021* name, Tsym190843* owner, Tlineinfo163338 info) {
	Tsym190843* result;
	result = 0;
	result = (Tsym190843*) newObj((&NTI190811), sizeof(Tsym190843));
	(*result).Sup.Sup.m_type = (&NTI190843);
	asgnRefNoCycle((void**) (&(*result).name), name);
	(*result).kind = symkind;
	(*result).flags = 0;
	(*result).info = info;
	(*result).options = goptions_154126;
	asgnRefNoCycle((void**) (&(*result).owner), owner);
	(*result).offset = ((NI) -1);
	(*result).Sup.id = getid_189404();
	return result;
}

static N_INLINE(void, nimGCunrefNoCycle)(void* p) {
	Tcell46346* c;
	c = usrtocell_49846(p);
	{
		(*c).refcount -= ((NI) 8);
		if (!((NU32)((*c).refcount) < (NU32)(((NI) 8)))) goto LA3;
		rtladdzct_51404(c);
	}
	LA3: ;
}

N_NIMCALL(void, addson_192819)(Tnode190813* father, Tnode190813* son) {
	{
		if (!(*father).kindU.S6.sons == 0) goto LA3;
		if ((*father).kindU.S6.sons) nimGCunrefNoCycle((*father).kindU.S6.sons);
		(*father).kindU.S6.sons = (Tnodeseq190807*) newSeqRC1((&NTI190807), 0);
	}
	LA3: ;
	(*father).kindU.S6.sons = (Tnodeseq190807*) incrSeq(&((*father).kindU.S6.sons)->Sup, sizeof(Tnode190813*));
	asgnRefNoCycle((void**) (&(*father).kindU.S6.sons->data[(*father).kindU.S6.sons->Sup.len-1]), son);
}

N_NIMCALL(Tsym190843*, createmagic_195986)(NimStringDesc* name, NU16 m) {
	Tsym190843* result;
	Tident167021* LOC1;
	Tlineinfo163338 LOC2;
	result = 0;
	LOC1 = 0;
	LOC1 = getident_167463(name);
	LOC2 = unknownlineinfo_164027();
	result = newsym_191656(((NU8) 12), LOC1, NIM_NIL, LOC2);
	(*result).magic = m;
	return result;
}
N_NIMCALL(void, TMP830)(void* p, NI op) {
	Tidpairseq190859* a;
	NI LOC1;
	a = (Tidpairseq190859*)p;
	LOC1 = 0;
	for (LOC1 = 0; LOC1 < a->Sup.len; LOC1++) {
	nimGCvisit((void*)a->data[LOC1].key, op);
	nimGCvisit((void*)a->data[LOC1].val, op);
	}
}

N_NIMCALL(void, initidtable_194057)(Tidtable190861* x) {
	(*x).counter = ((NI) 0);
	unsureAsgnRef((void**) (&(*x).data), (Tidpairseq190859*) newSeq((&NTI190859), ((NI) 8)));
}

N_NIMCALL(void, initstrtable_194007)(Tstrtable190817* x) {
	(*x).counter = ((NI) 0);
	unsureAsgnRef((void**) (&(*x).data), (Tsymseq190815*) newSeq((&NTI190815), ((NI) 8)));
}

N_NIMCALL(Ttype190849*, newtype_193140)(NU8 kind, Tsym190843* owner) {
	Ttype190849* result;
	result = 0;
	result = (Ttype190849*) newObj((&NTI190809), sizeof(Ttype190849));
	(*result).Sup.Sup.m_type = (&NTI190849);
	(*result).kind = kind;
	asgnRefNoCycle((void**) (&(*result).owner), owner);
	(*result).size = IL64(-1);
	(*result).align = ((NI16) 2);
	(*result).Sup.id = getid_189404();
	(*result).locklevel = ((NI16) -1);
	return result;
}

N_NIMCALL(Tnode190813*, newnodeit_192807)(NU8 kind, Tlineinfo163338 info, Ttype190849* typ) {
	Tnode190813* result;
	result = 0;
	result = newnode_191401(kind);
	(*result).info = info;
	asgnRefNoCycle((void**) (&(*result).typ), typ);
	return result;
}

N_NIMCALL(Tnode190813*, newnodei_192351)(NU8 kind, Tlineinfo163338 info) {
	Tnode190813* result;
	result = 0;
	result = (Tnode190813*) newObj((&NTI190805), sizeof(Tnode190813));
	(*result).kind = kind;
	(*result).info = info;
	return result;
}

N_NIMCALL(NI, sonslen_193351)(Ttype190849* n) {
	NI result;
	result = 0;
	{
		if (!(*n).sons == 0) goto LA3;
		result = ((NI) 0);
	}
	goto LA1;
	LA3: ;
	{
		result = ((*n).sons ? (*n).sons->Sup.len : 0);
	}
	LA1: ;
	return result;
}

N_NIMCALL(Ttype190849*, lastson_193442)(Ttype190849* n) {
	Ttype190849* result;
	NI LOC1;
	result = 0;
	LOC1 = 0;
	LOC1 = sonslen_193351(n);
	result = (*n).sons->data[(NI)(LOC1 - ((NI) 1))];
	return result;
}

N_NIMCALL(Ttype190849*, skiptypes_194167)(Ttype190849* t, NU64 kinds) {
	Ttype190849* result;
	result = 0;
	result = t;
	{
		while (1) {
			if (!((kinds &(IL64(1)<<(((*result).kind)&IL64(63))))!=0)) goto LA2;
			result = lastson_193442(result);
		} LA2: ;
	}
	return result;
}

N_NIMCALL(Tnode190813*, newsymnode_192325)(Tsym190843* sym) {
	Tnode190813* result;
	result = 0;
	result = newnode_191401(((NU8) 3));
	asgnRefNoCycle((void**) (&(*result).kindU.S4.sym), sym);
	asgnRefNoCycle((void**) (&(*result).typ), (*sym).typ);
	(*result).info = (*sym).info;
	return result;
}

N_NIMCALL(void, addsonnilallowed_194530)(Tnode190813* father, Tnode190813* son) {
	{
		if (!(*father).kindU.S6.sons == 0) goto LA3;
		if ((*father).kindU.S6.sons) nimGCunrefNoCycle((*father).kindU.S6.sons);
		(*father).kindU.S6.sons = (Tnodeseq190807*) newSeqRC1((&NTI190807), 0);
	}
	LA3: ;
	(*father).kindU.S6.sons = (Tnodeseq190807*) incrSeq(&((*father).kindU.S6.sons)->Sup, sizeof(Tnode190813*));
	asgnRefNoCycle((void**) (&(*father).kindU.S6.sons->data[(*father).kindU.S6.sons->Sup.len-1]), son);
}

N_NIMCALL(NIM_BOOL, ismetatype_191821)(Ttype190849* t) {
	NIM_BOOL result;
	NIM_BOOL LOC1;
	NIM_BOOL LOC2;
	NIM_BOOL LOC4;
{	result = 0;
	LOC1 = 0;
	LOC2 = 0;
	LOC2 = ((*t).kind == ((NU8) 6) || (*t).kind == ((NU8) 8) || (*t).kind == ((NU8) 12) || (*t).kind >= ((NU8) 51) && (*t).kind <= ((NU8) 58));
	if (LOC2) goto LA3;
	LOC4 = 0;
	LOC4 = ((*t).kind == ((NU8) 59));
	if (!(LOC4)) goto LA5;
	LOC4 = ((*t).n == NIM_NIL);
	LA5: ;
	LOC2 = LOC4;
	LA3: ;
	LOC1 = LOC2;
	if (LOC1) goto LA6;
	LOC1 = (((*t).flags &(1<<((((NU8) 19))&31)))!=0);
	LA6: ;
	result = LOC1;
	goto BeforeRet;
	}BeforeRet: ;
	return result;
}

static N_INLINE(NIM_BOOL, isgcedmem_194235)(Ttype190849* t) {
	NIM_BOOL result;
	NIM_BOOL LOC1;
	NIM_BOOL LOC3;
	result = 0;
	LOC1 = 0;
	LOC1 = ((*t).kind == ((NU8) 28) || (*t).kind == ((NU8) 22) || (*t).kind == ((NU8) 24));
	if (LOC1) goto LA2;
	LOC3 = 0;
	LOC3 = ((*t).kind == ((NU8) 25));
	if (!(LOC3)) goto LA4;
	LOC3 = ((*t).callconv == ((NU8) 8));
	LA4: ;
	LOC1 = LOC3;
	LA2: ;
	result = LOC1;
	return result;
}

N_NIMCALL(void, propagatetoowner_194274)(Ttype190849* owner, Ttype190849* elem) {
	(*owner).flags = ((*owner).flags | ((*elem).flags & 524288));
	{
		if (!(((*elem).flags &(1<<((((NU8) 16))&31)))!=0)) goto LA3;
		{
			if (!((*owner).kind == ((NU8) 11) || (*owner).kind == ((NU8) 10) || (*owner).kind == ((NU8) 9))) goto LA7;
			(*owner).flags |= ((NI32)1)<<((((NU8) 16))%(sizeof(NI32)*8));
		}
		goto LA5;
		LA7: ;
		{
			if (!!(((*owner).kind == ((NU8) 24) || (*owner).kind == ((NU8) 19) || (*owner).kind == ((NU8) 21) || (*owner).kind == ((NU8) 22) || (*owner).kind == ((NU8) 25)))) goto LA10;
			(*owner).flags |= ((NI32)1)<<((((NU8) 17))%(sizeof(NI32)*8));
		}
		goto LA5;
		LA10: ;
		LA5: ;
	}
	LA3: ;
	{
		if (!(((*elem).flags &(1<<((((NU8) 17))&31)))!=0)) goto LA14;
		{
			if (!((*owner).kind == ((NU8) 24) || (*owner).kind == ((NU8) 19) || (*owner).kind == ((NU8) 21) || (*owner).kind == ((NU8) 22) || (*owner).kind == ((NU8) 25))) goto LA18;
		}
		goto LA16;
		LA18: ;
		{
			(*owner).flags |= ((NI32)1)<<((((NU8) 17))%(sizeof(NI32)*8));
		}
		LA16: ;
	}
	LA14: ;
	{
		NIM_BOOL LOC23;
		LOC23 = 0;
		LOC23 = ismetatype_191821(elem);
		if (!LOC23) goto LA24;
		(*owner).flags |= ((NI32)1)<<((((NU8) 19))%(sizeof(NI32)*8));
	}
	LA24: ;
	{
		Ttype190849* o2;
		if (!(((*elem).flags &(1<<((((NU8) 26))&31)))!=0)) goto LA28;
		o2 = skiptypes_194167(elem, 2048);
		{
			if (!((*o2).kind == ((NU8) 18) || (*o2).kind == ((NU8) 17) || (*o2).kind == ((NU8) 16) || (*o2).kind == ((NU8) 4) || (*o2).kind == ((NU8) 24) || (*o2).kind == ((NU8) 19) || (*o2).kind == ((NU8) 13))) goto LA32;
			(*o2).flags |= ((NI32)1)<<((((NU8) 26))%(sizeof(NI32)*8));
			(*owner).flags |= ((NI32)1)<<((((NU8) 26))%(sizeof(NI32)*8));
		}
		LA32: ;
	}
	LA28: ;
	{
		Ttype190849* elemb;
		if (!!(((*owner).kind == ((NU8) 25) || (*owner).kind == ((NU8) 11) || (*owner).kind == ((NU8) 10) || (*owner).kind == ((NU8) 9)))) goto LA36;
		elemb = skiptypes_194167(elem, 2048);
		{
			NIM_BOOL LOC40;
			LOC40 = 0;
			LOC40 = isgcedmem_194235(elemb);
			if (LOC40) goto LA41;
			LOC40 = (((*elemb).flags &(1<<((((NU8) 20))&31)))!=0);
			LA41: ;
			if (!LOC40) goto LA42;
			(*owner).flags |= ((NI32)1)<<((((NU8) 20))%(sizeof(NI32)*8));
		}
		LA42: ;
	}
	LA36: ;
}

N_NIMCALL(void, rawaddson_194478)(Ttype190849* father, Ttype190849* son) {
	{
		if (!(*father).sons == 0) goto LA3;
		if ((*father).sons) nimGCunrefNoCycle((*father).sons);
		(*father).sons = (Ttypeseq190845*) newSeqRC1((&NTI190845), 0);
	}
	LA3: ;
	(*father).sons = (Ttypeseq190845*) incrSeq(&((*father).sons)->Sup, sizeof(Ttype190849*));
	asgnRefNoCycle((void**) (&(*father).sons->data[(*father).sons->Sup.len-1]), son);
	{
		if (!!(son == 0)) goto LA7;
		propagatetoowner_194274(father, son);
	}
	LA7: ;
}

N_NIMCALL(Tnode190813*, newsymnode_192338)(Tsym190843* sym, Tlineinfo163338 info) {
	Tnode190813* result;
	result = 0;
	result = newnode_191401(((NU8) 3));
	asgnRefNoCycle((void**) (&(*result).kindU.S4.sym), sym);
	asgnRefNoCycle((void**) (&(*result).typ), (*sym).typ);
	(*result).info = info;
	return result;
}

N_NIMCALL(void, add_191164)(Tnode190813* father, Tnode190813* son) {
	{
		if (!(*father).kindU.S6.sons == 0) goto LA3;
		if ((*father).kindU.S6.sons) nimGCunrefNoCycle((*father).kindU.S6.sons);
		(*father).kindU.S6.sons = (Tnodeseq190807*) newSeqRC1((&NTI190807), 0);
	}
	LA3: ;
	(*father).kindU.S6.sons = (Tnodeseq190807*) incrSeq(&((*father).kindU.S6.sons)->Sup, sizeof(Tnode190813*));
	asgnRefNoCycle((void**) (&(*father).kindU.S6.sons->data[(*father).kindU.S6.sons->Sup.len-1]), son);
}

N_NIMCALL(Tnode190813*, newidentnode_192313)(Tident167021* ident, Tlineinfo163338 info) {
	Tnode190813* result;
	result = 0;
	result = newnode_191401(((NU8) 2));
	asgnRefNoCycle((void**) (&(*result).kindU.S5.ident), ident);
	(*result).info = info;
	return result;
}
N_NIMCALL(void, TMP1055)(void* p, NI op) {
	Tnodepairseq190871* a;
	NI LOC1;
	a = (Tnodepairseq190871*)p;
	LOC1 = 0;
	for (LOC1 = 0; LOC1 < a->Sup.len; LOC1++) {
	nimGCvisit((void*)a->data[LOC1].key, op);
	}
}

N_NIMCALL(Tnode190813*, newprocnode_193058)(NU8 kind, Tlineinfo163338 info, Tnode190813* body, Tnode190813* params, Tnode190813* name, Tnode190813* pattern, Tnode190813* genericparams, Tnode190813* pragmas, Tnode190813* exceptions) {
	Tnode190813* result;
	TY193071 LOC1;
	result = 0;
	result = newnodei_192351(kind, info);
	if ((*result).kindU.S6.sons) nimGCunrefNoCycle((*result).kindU.S6.sons);
	(*result).kindU.S6.sons = (Tnodeseq190807*) newSeqRC1((&NTI190807), 7);
	memset((void*)LOC1, 0, sizeof(LOC1));
	LOC1[0] = name;
	LOC1[1] = pattern;
	LOC1[2] = genericparams;
	LOC1[3] = params;
	LOC1[4] = pragmas;
	LOC1[5] = exceptions;
	LOC1[6] = body;
	asgnRefNoCycle((void**) (&(*result).kindU.S6.sons->data[0]), LOC1[0]);
	asgnRefNoCycle((void**) (&(*result).kindU.S6.sons->data[1]), LOC1[1]);
	asgnRefNoCycle((void**) (&(*result).kindU.S6.sons->data[2]), LOC1[2]);
	asgnRefNoCycle((void**) (&(*result).kindU.S6.sons->data[3]), LOC1[3]);
	asgnRefNoCycle((void**) (&(*result).kindU.S6.sons->data[4]), LOC1[4]);
	asgnRefNoCycle((void**) (&(*result).kindU.S6.sons->data[5]), LOC1[5]);
	asgnRefNoCycle((void**) (&(*result).kindU.S6.sons->data[6]), LOC1[6]);
	return result;
}

N_NIMCALL(NI, sonslen_193403)(Tnode190813* n) {
	NI result;
	result = 0;
	{
		if (!(*n).kindU.S6.sons == 0) goto LA3;
		result = ((NI) 0);
	}
	goto LA1;
	LA3: ;
	{
		result = ((*n).kindU.S6.sons ? (*n).kindU.S6.sons->Sup.len : 0);
	}
	LA1: ;
	return result;
}

N_NIMCALL(Tnode190813*, newnode_192607)(NU8 kind, Tlineinfo163338 info, Tnodeseq190807* sons, Ttype190849* typ) {
	Tnode190813* result;
	result = 0;
	result = (Tnode190813*) newObj((&NTI190805), sizeof(Tnode190813));
	(*result).kind = kind;
	(*result).info = info;
	asgnRefNoCycle((void**) (&(*result).typ), typ);
	genericSeqAssign((&(*result).kindU.S6.sons), sons, (&NTI190807));
	return result;
}

N_NIMCALL(Tnode190813*, newnodei_192407)(NU8 kind, Tlineinfo163338 info, NI children) {
	Tnode190813* result;
	result = 0;
	result = (Tnode190813*) newObj((&NTI190805), sizeof(Tnode190813));
	(*result).kind = kind;
	(*result).info = info;
	{
		if (!(((NI) 0) < children)) goto LA3;
		if ((*result).kindU.S6.sons) nimGCunrefNoCycle((*result).kindU.S6.sons);
		(*result).kindU.S6.sons = (Tnodeseq190807*) newSeqRC1((&NTI190807), ((NI) (children)));
	}
	LA3: ;
	return result;
}

N_NIMCALL(Tnode190813*, lastson_193431)(Tnode190813* n) {
	Tnode190813* result;
	NI LOC1;
	result = 0;
	LOC1 = 0;
	LOC1 = sonslen_193403(n);
	result = (*n).kindU.S6.sons->data[(NI)(LOC1 - ((NI) 1))];
	return result;
}

N_NIMCALL(Tnode190813*, newstrnode_191644)(NU8 kind, NimStringDesc* strval) {
	Tnode190813* result;
	NimStringDesc* LOC1;
	result = 0;
	result = newnode_191401(kind);
	LOC1 = 0;
	LOC1 = (*result).kindU.S3.strval; (*result).kindU.S3.strval = copyStringRC1(strval);
	if (LOC1) nimGCunrefNoCycle(LOC1);
	return result;
}

N_NIMCALL(NI, len_193377)(Ttype190849* n) {
	NI result;
	result = 0;
	{
		if (!(*n).sons == 0) goto LA3;
		result = ((NI) 0);
	}
	goto LA1;
	LA3: ;
	{
		result = ((*n).sons ? (*n).sons->Sup.len : 0);
	}
	LA1: ;
	return result;
}

N_NIMCALL(NimStringDesc*, HEX24_193096)(NI16 x) {
	NimStringDesc* result;
	result = 0;
	{
		if (!(((NI) (x)) == ((NI) -1))) goto LA3;
		result = copyString(((NimStringDesc*) &TMP2082));
	}
	goto LA1;
	LA3: ;
	{
		if (!(((NI) (x)) == ((NI) 1001))) goto LA6;
		result = copyString(((NimStringDesc*) &TMP2083));
	}
	goto LA1;
	LA6: ;
	{
		result = nimIntToStr(((NI) (x)));
	}
	LA1: ;
	return result;
}

static N_INLINE(NIM_BOOL, canbecycleroot_49867)(Tcell46346* c) {
	NIM_BOOL result;
	result = 0;
	result = !((((*(*c).typ).flags &(1<<((((NU8) 1))&7)))!=0));
	return result;
}

static N_INLINE(void, rtladdcycleroot_50623)(Tcell46346* c) {
	{
		if (!!((((NI) ((NI)((*c).refcount & ((NI) 3)))) == ((NI) 3)))) goto LA3;
		(*c).refcount = (NI)((NI)((*c).refcount & ((NI) -4)) | ((NI) 3));
		incl_47065((&gch_48244.cycleroots), c);
	}
	LA3: ;
}

static N_INLINE(void, incref_52222)(Tcell46346* c) {
	(*c).refcount = (NI)((NU32)((*c).refcount) + (NU32)(((NI) 8)));
	{
		NIM_BOOL LOC3;
		LOC3 = 0;
		LOC3 = canbecycleroot_49867(c);
		if (!LOC3) goto LA4;
		rtladdcycleroot_50623(c);
	}
	LA4: ;
}

static N_INLINE(void, decref_51804)(Tcell46346* c) {
	{
		(*c).refcount -= ((NI) 8);
		if (!((NU32)((*c).refcount) < (NU32)(((NI) 8)))) goto LA3;
		rtladdzct_51404(c);
	}
	goto LA1;
	LA3: ;
	{
		NIM_BOOL LOC6;
		LOC6 = 0;
		LOC6 = canbecycleroot_49867(c);
		if (!LOC6) goto LA7;
		rtladdcycleroot_50623(c);
	}
	goto LA1;
	LA7: ;
	LA1: ;
}

static N_INLINE(void, asgnRef)(void** dest, void* src) {
	{
		Tcell46346* LOC5;
		if (!!((src == NIM_NIL))) goto LA3;
		LOC5 = 0;
		LOC5 = usrtocell_49846(src);
		incref_52222(LOC5);
	}
	LA3: ;
	{
		Tcell46346* LOC10;
		if (!!(((*dest) == NIM_NIL))) goto LA8;
		LOC10 = 0;
		LOC10 = usrtocell_49846((*dest));
		decref_51804(LOC10);
	}
	LA8: ;
	(*dest) = src;
}

N_NIMCALL(void, mergeloc_193207)(Tloc190827* a, Tloc190827 b) {
	{
		if (!((*a).k == ((NU8) 0))) goto LA3;
		(*a).k = b.k;
	}
	LA3: ;
	{
		if (!((*a).s == ((NU8) 0))) goto LA7;
		(*a).s = b.s;
	}
	LA7: ;
	(*a).flags = ((*a).flags | b.flags);
	{
		if (!((*a).t == NIM_NIL)) goto LA11;
		unsureAsgnRef((void**) (&(*a).t), b.t);
	}
	LA11: ;
	{
		if (!((*a).r == NIM_NIL)) goto LA15;
		unsureAsgnRef((void**) (&(*a).r), b.r);
	}
	LA15: ;
}

N_NIMCALL(void, newsons_193313)(Ttype190849* father, NI length) {
	{
		if (!(*father).sons == 0) goto LA3;
		if ((*father).sons) nimGCunrefNoCycle((*father).sons);
		(*father).sons = (Ttypeseq190845*) newSeqRC1((&NTI190845), ((NI) (length)));
	}
	goto LA1;
	LA3: ;
	{
		(*father).sons = (Ttypeseq190845*) setLengthSeq(&((*father).sons)->Sup, sizeof(Ttype190849*), ((NI) (length)));
	}
	LA1: ;
}

N_NIMCALL(void, assigntype_193452)(Ttype190849* dest, Ttype190849* src) {
	NI LOC14;
	(*dest).kind = (*src).kind;
	(*dest).flags = (*src).flags;
	(*dest).callconv = (*src).callconv;
	asgnRefNoCycle((void**) (&(*dest).n), (*src).n);
	(*dest).size = (*src).size;
	(*dest).align = (*src).align;
	asgnRefNoCycle((void**) (&(*dest).destructor), (*src).destructor);
	asgnRefNoCycle((void**) (&(*dest).deepcopy), (*src).deepcopy);
	asgnRefNoCycle((void**) (&(*dest).assignment), (*src).assignment);
	(*dest).locklevel = (*src).locklevel;
	{
		if (!!(((*src).sym == NIM_NIL))) goto LA3;
		{
			if (!!(((*dest).sym == NIM_NIL))) goto LA7;
			(*(*dest).sym).flags = ((*(*dest).sym).flags | (*(*src).sym).flags);
			{
				if (!((*(*dest).sym).annex == NIM_NIL)) goto LA11;
				asgnRef((void**) (&(*(*dest).sym).annex), (*(*src).sym).annex);
			}
			LA11: ;
			mergeloc_193207((&(*(*dest).sym).loc), (*(*src).sym).loc);
		}
		goto LA5;
		LA7: ;
		{
			asgnRefNoCycle((void**) (&(*dest).sym), (*src).sym);
		}
		LA5: ;
	}
	LA3: ;
	LOC14 = 0;
	LOC14 = sonslen_193351(src);
	newsons_193313(dest, LOC14);
	{
		NI i_193525;
		NI HEX3Atmp_193527;
		NI LOC16;
		NI res_193530;
		i_193525 = 0;
		HEX3Atmp_193527 = 0;
		LOC16 = 0;
		LOC16 = sonslen_193351(src);
		HEX3Atmp_193527 = (NI)(LOC16 - ((NI) 1));
		res_193530 = ((NI) 0);
		{
			while (1) {
				if (!(res_193530 <= HEX3Atmp_193527)) goto LA18;
				i_193525 = res_193530;
				asgnRefNoCycle((void**) (&(*dest).sons->data[i_193525]), (*src).sons->data[i_193525]);
				res_193530 += ((NI) 1);
			} LA18: ;
		}
	}
}

N_NIMCALL(void, copyidtable_192091)(Tidtable190861* dest, Tidtable190861 src) {
{	(*dest).counter = src.counter;
	{
		if (!src.data == 0) goto LA3;
		goto BeforeRet;
	}
	LA3: ;
	unsureAsgnRef((void**) (&(*dest).data), (Tidpairseq190859*) newSeq((&NTI190859), ((NI) ((src.data ? src.data->Sup.len : 0)))));
	{
		NI i_192134;
		NI HEX3Atmp_192136;
		NI res_192139;
		i_192134 = 0;
		HEX3Atmp_192136 = 0;
		HEX3Atmp_192136 = (src.data ? (src.data->Sup.len-1) : -1);
		res_192139 = ((NI) 0);
		{
			while (1) {
				if (!(res_192139 <= HEX3Atmp_192136)) goto LA7;
				i_192134 = res_192139;
				asgnRef((void**) (&(*dest).data->data[i_192134].key), src.data->data[i_192134].key);
				asgnRef((void**) (&(*dest).data->data[i_192134].val), src.data->data[i_192134].val);
				res_192139 += ((NI) 1);
			} LA7: ;
		}
	}
	}BeforeRet: ;
}

N_NIMCALL(Tnode190813*, copynode_194640)(Tnode190813* src) {
	Tnode190813* result;
{	result = 0;
	{
		if (!(src == NIM_NIL)) goto LA3;
		result = NIM_NIL;
		goto BeforeRet;
	}
	LA3: ;
	result = newnode_191401((*src).kind);
	(*result).info = (*src).info;
	asgnRefNoCycle((void**) (&(*result).typ), (*src).typ);
	(*result).flags = ((*src).flags & 13070);
	switch ((*src).kind) {
	case ((NU8) 5) ... ((NU8) 15):
	{
		(*result).kindU.S1.intval = (*src).kindU.S1.intval;
	}
	break;
	case ((NU8) 16) ... ((NU8) 19):
	{
		(*result).kindU.S2.floatval = (*src).kindU.S2.floatval;
	}
	break;
	case ((NU8) 3):
	{
		asgnRefNoCycle((void**) (&(*result).kindU.S4.sym), (*src).kindU.S4.sym);
	}
	break;
	case ((NU8) 2):
	{
		asgnRefNoCycle((void**) (&(*result).kindU.S5.ident), (*src).kindU.S5.ident);
	}
	break;
	case ((NU8) 20) ... ((NU8) 22):
	{
		NimStringDesc* LOC10;
		LOC10 = 0;
		LOC10 = (*result).kindU.S3.strval; (*result).kindU.S3.strval = copyStringRC1((*src).kindU.S3.strval);
		if (LOC10) nimGCunrefNoCycle(LOC10);
	}
	break;
	default:
	{
	}
	break;
	}
	}BeforeRet: ;
	return result;
}

N_NIMCALL(Ttype190849*, copytype_193549)(Ttype190849* t, Tsym190843* owner, NIM_BOOL keepid) {
	Ttype190849* result;
	result = 0;
	result = newtype_193140((*t).kind, owner);
	assigntype_193452(result, t);
	{
		if (!keepid) goto LA3;
		(*result).Sup.id = (*t).Sup.id;
	}
	goto LA1;
	LA3: ;
	{
	}
	LA1: ;
	asgnRefNoCycle((void**) (&(*result).sym), (*t).sym);
	return result;
}

N_NIMCALL(void, copystrtable_192024)(Tstrtable190817* dest, Tstrtable190817 src) {
{	(*dest).counter = src.counter;
	{
		if (!src.data == 0) goto LA3;
		goto BeforeRet;
	}
	LA3: ;
	(*dest).data = (Tsymseq190815*) setLengthSeq(&((*dest).data)->Sup, sizeof(Tsym190843*), ((NI) ((src.data ? src.data->Sup.len : 0))));
	{
		NI i_192067;
		NI HEX3Atmp_192069;
		NI res_192072;
		i_192067 = 0;
		HEX3Atmp_192069 = 0;
		HEX3Atmp_192069 = (src.data ? (src.data->Sup.len-1) : -1);
		res_192072 = ((NI) 0);
		{
			while (1) {
				if (!(res_192072 <= HEX3Atmp_192069)) goto LA7;
				i_192067 = res_192072;
				asgnRefNoCycle((void**) (&(*dest).data->data[i_192067]), src.data->data[i_192067]);
				res_192072 += ((NI) 1);
			} LA7: ;
		}
	}
	}BeforeRet: ;
}

N_NIMCALL(Tsym190843*, copysym_193607)(Tsym190843* s, NIM_BOOL keepid) {
	Tsym190843* result;
	result = 0;
	result = newsym_191656((*s).kind, (*s).name, (*s).owner, (*s).info);
	asgnRefNoCycle((void**) (&(*result).typ), (*s).typ);
	{
		if (!keepid) goto LA3;
		(*result).Sup.id = (*s).Sup.id;
	}
	goto LA1;
	LA3: ;
	{
		(*result).Sup.id = getid_189404();
	}
	LA1: ;
	(*result).flags = (*s).flags;
	(*result).magic = (*s).magic;
	{
		if (!((*s).kind == ((NU8) 6))) goto LA8;
		copystrtable_192024((&(*result).kindU.S3.tab), (*s).kindU.S3.tab);
	}
	LA8: ;
	(*result).options = (*s).options;
	(*result).position = (*s).position;
	genericAssign((void*)(&(*result).loc), (void*)(&(*s).loc), (&NTI190827));
	asgnRef((void**) (&(*result).annex), (*s).annex);
	{
		if (!((525056 &(1<<(((*result).kind)&31)))!=0)) goto LA12;
		asgnRefNoCycle((void**) (&(*result).kindU.S4.guard), (*s).kindU.S4.guard);
	}
	LA12: ;
	return result;
}

N_NIMCALL(void, newsons_193272)(Tnode190813* father, NI length) {
	{
		if (!(*father).kindU.S6.sons == 0) goto LA3;
		if ((*father).kindU.S6.sons) nimGCunrefNoCycle((*father).kindU.S6.sons);
		(*father).kindU.S6.sons = (Tnodeseq190807*) newSeqRC1((&NTI190807), ((NI) (length)));
	}
	goto LA1;
	LA3: ;
	{
		(*father).kindU.S6.sons = (Tnodeseq190807*) setLengthSeq(&((*father).kindU.S6.sons)->Sup, sizeof(Tnode190813*), ((NI) (length)));
	}
	LA1: ;
}

N_NIMCALL(Tnode190813*, newintnode_191608)(NU8 kind, NI64 intval) {
	Tnode190813* result;
	result = 0;
	result = newnode_191401(kind);
	(*result).kindU.S1.intval = intval;
	return result;
}

N_NIMCALL(void, newstrtable_194027)(Tstrtable190817* Result) {
	initstrtable_194007(Result);
}

N_NIMCALL(Tnode190813*, copytree_195028)(Tnode190813* src) {
	Tnode190813* result;
{	result = 0;
	{
		if (!(src == NIM_NIL)) goto LA3;
		result = NIM_NIL;
		goto BeforeRet;
	}
	LA3: ;
	result = newnode_191401((*src).kind);
	(*result).info = (*src).info;
	asgnRefNoCycle((void**) (&(*result).typ), (*src).typ);
	(*result).flags = ((*src).flags & 13070);
	switch ((*src).kind) {
	case ((NU8) 5) ... ((NU8) 15):
	{
		(*result).kindU.S1.intval = (*src).kindU.S1.intval;
	}
	break;
	case ((NU8) 16) ... ((NU8) 19):
	{
		(*result).kindU.S2.floatval = (*src).kindU.S2.floatval;
	}
	break;
	case ((NU8) 3):
	{
		asgnRefNoCycle((void**) (&(*result).kindU.S4.sym), (*src).kindU.S4.sym);
	}
	break;
	case ((NU8) 2):
	{
		asgnRefNoCycle((void**) (&(*result).kindU.S5.ident), (*src).kindU.S5.ident);
	}
	break;
	case ((NU8) 20) ... ((NU8) 22):
	{
		NimStringDesc* LOC10;
		LOC10 = 0;
		LOC10 = (*result).kindU.S3.strval; (*result).kindU.S3.strval = copyStringRC1((*src).kindU.S3.strval);
		if (LOC10) nimGCunrefNoCycle(LOC10);
	}
	break;
	default:
	{
		NI LOC12;
		LOC12 = 0;
		LOC12 = sonslen_193403(src);
		if ((*result).kindU.S6.sons) nimGCunrefNoCycle((*result).kindU.S6.sons);
		(*result).kindU.S6.sons = (Tnodeseq190807*) newSeqRC1((&NTI190807), ((NI) (LOC12)));
		{
			NI i_195234;
			NI HEX3Atmp_195238;
			NI LOC14;
			NI res_195241;
			i_195234 = 0;
			HEX3Atmp_195238 = 0;
			LOC14 = 0;
			LOC14 = sonslen_193403(src);
			HEX3Atmp_195238 = (NI)(LOC14 - ((NI) 1));
			res_195241 = ((NI) 0);
			{
				while (1) {
					if (!(res_195241 <= HEX3Atmp_195238)) goto LA16;
					i_195234 = res_195241;
					asgnRefNoCycle((void**) (&(*result).kindU.S6.sons->data[i_195234]), copytree_195028((*src).kindU.S6.sons->data[i_195234]));
					res_195241 += ((NI) 1);
				} LA16: ;
			}
		}
	}
	break;
	}
	}BeforeRet: ;
	return result;
}

N_NIMCALL(Tsym190843*, originatingmodule_195736)(Tsym190843* s) {
	Tsym190843* result;
	result = 0;
	result = (*s).owner;
	{
		while (1) {
			if (!!(((*result).kind == ((NU8) 6)))) goto LA2;
			result = (*result).owner;
		} LA2: ;
	}
	return result;
}

N_NIMCALL(Tsym190843*, skipgenericowner_195695)(Tsym190843* s) {
	Tsym190843* result;
	result = 0;
	{
		NimStringDesc* LOC5;
		if (!!(((520192 &(1<<(((*s).kind)&31)))!=0))) goto LA3;
		LOC5 = 0;
		LOC5 = HEX24_165306(TMP2673);
		internalerror_165218(LOC5);
	}
	LA3: ;
	{
		if (!(((*s).flags &(1<<((((NU8) 2))&31)))!=0)) goto LA8;
		result = (*(*s).owner).owner;
	}
	goto LA6;
	LA8: ;
	{
		result = (*s).owner;
	}
	LA6: ;
	return result;
}

N_NIMCALL(Tnode190813*, newinttypenode_191620)(NU8 kind, NI64 intval, Ttype190849* typ) {
	Tnode190813* result;
	result = 0;
	result = newintnode_191608(kind, intval);
	asgnRefNoCycle((void**) (&(*result).typ), typ);
	return result;
}

static N_INLINE(Tnode190813*, HEX5BHEX5D_191244)(Tnode190813* n, NI i) {
	Tnode190813* result;
	result = 0;
	result = (*n).kindU.S6.sons->data[i];
	return result;
}

N_NIMCALL(NIM_BOOL, isgenericroutine_195651)(Tsym190843* s) {
	NIM_BOOL result;
	result = 0;
	switch ((*s).kind) {
	case ((NU8) 12):
	case ((NU8) 18):
	case ((NU8) 17):
	case ((NU8) 14):
	case ((NU8) 15):
	case ((NU8) 13):
	case ((NU8) 16):
	{
		NIM_BOOL LOC2;
		NIM_BOOL LOC4;
		Tnode190813* LOC6;
		LOC2 = 0;
		LOC2 = (((*s).flags &(1<<((((NU8) 2))&31)))!=0);
		if (LOC2) goto LA3;
		LOC4 = 0;
		LOC4 = !(((*s).ast == NIM_NIL));
		if (!(LOC4)) goto LA5;
		LOC6 = 0;
		LOC6 = HEX5BHEX5D_191244((*s).ast, ((NI) 2));
		LOC4 = !(((*LOC6).kind == ((NU8) 1)));
		LA5: ;
		LOC2 = LOC4;
		LA3: ;
		result = LOC2;
	}
	break;
	default:
	{
	}
	break;
	}
	return result;
}

N_NIMCALL(void, discardsons_191091)(Tnode190813* father) {
	genericSeqAssign((&(*father).kindU.S6.sons), NIM_NIL, (&NTI190807));
}

N_NIMCALL(void, appendtomodule_191911)(Tsym190843* m, Tnode190813* n) {
	{
		TY208680 LOC5;
		if (!((*m).ast == NIM_NIL)) goto LA3;
		asgnRefNoCycle((void**) (&(*m).ast), newnode_191401(((NU8) 115)));
		if ((*(*m).ast).kindU.S6.sons) nimGCunrefNoCycle((*(*m).ast).kindU.S6.sons);
		(*(*m).ast).kindU.S6.sons = (Tnodeseq190807*) newSeqRC1((&NTI190807), 1);
		memset((void*)LOC5, 0, sizeof(LOC5));
		LOC5[0] = n;
		asgnRefNoCycle((void**) (&(*(*m).ast).kindU.S6.sons->data[0]), LOC5[0]);
	}
	goto LA1;
	LA3: ;
	{
		(*(*m).ast).kindU.S6.sons = (Tnodeseq190807*) incrSeq(&((*(*m).ast).kindU.S6.sons)->Sup, sizeof(Tnode190813*));
		asgnRefNoCycle((void**) (&(*(*m).ast).kindU.S6.sons->data[(*(*m).ast).kindU.S6.sons->Sup.len-1]), n);
	}
	LA1: ;
}

N_NIMCALL(void, delson_194577)(Tnode190813* father, NI idx) {
	NI length;
{	{
		if (!(*father).kindU.S6.sons == 0) goto LA3;
		goto BeforeRet;
	}
	LA3: ;
	length = sonslen_193403(father);
	{
		NI i_194603;
		NI HEX3Atmp_194618;
		NI res_194621;
		i_194603 = 0;
		HEX3Atmp_194618 = 0;
		HEX3Atmp_194618 = (NI)(length - ((NI) 2));
		res_194621 = idx;
		{
			while (1) {
				if (!(res_194621 <= HEX3Atmp_194618)) goto LA7;
				i_194603 = res_194621;
				asgnRefNoCycle((void**) (&(*father).kindU.S6.sons->data[i_194603]), (*father).kindU.S6.sons->data[(NI)(i_194603 + ((NI) 1))]);
				res_194621 += ((NI) 1);
			} LA7: ;
		}
	}
	(*father).kindU.S6.sons = (Tnodeseq190807*) setLengthSeq(&((*father).kindU.S6.sons)->Sup, sizeof(Tnode190813*), ((NI) ((NI)(length - ((NI) 1)))));
	}BeforeRet: ;
}

N_NIMCALL(Tnode190813*, newfloatnode_191632)(NU8 kind, NF floatval) {
	Tnode190813* result;
	result = 0;
	result = newnode_191401(kind);
	(*result).kindU.S2.floatval = floatval;
	return result;
}

N_NIMCALL(NIM_BOOL, iscallexpr_191071)(Tnode190813* n) {
	NIM_BOOL result;
	result = 0;
	result = ((*n).kind == ((NU8) 27) || (*n).kind == ((NU8) 29) || (*n).kind == ((NU8) 30) || (*n).kind == ((NU8) 31) || (*n).kind == ((NU8) 26) || (*n).kind == ((NU8) 28) || (*n).kind == ((NU8) 32));
	return result;
}

N_NIMCALL(Ttype190849*, skiptypesornil_194195)(Ttype190849* t, NU64 kinds) {
	Ttype190849* result;
{	result = 0;
	result = t;
	{
		while (1) {
			NIM_BOOL LOC3;
			LOC3 = 0;
			LOC3 = !((result == NIM_NIL));
			if (!(LOC3)) goto LA4;
			LOC3 = ((kinds &(IL64(1)<<(((*result).kind)&IL64(63))))!=0);
			LA4: ;
			if (!LOC3) goto LA2;
			{
				NI LOC7;
				LOC7 = 0;
				LOC7 = len_193377(result);
				if (!(LOC7 == ((NI) 0))) goto LA8;
				result = NIM_NIL;
				goto BeforeRet;
			}
			LA8: ;
			result = lastson_193442(result);
		} LA2: ;
	}
	}BeforeRet: ;
	return result;
}

N_NIMCALL(Tnode190813*, shallowcopy_194817)(Tnode190813* src) {
	Tnode190813* result;
{	result = 0;
	{
		if (!(src == NIM_NIL)) goto LA3;
		result = NIM_NIL;
		goto BeforeRet;
	}
	LA3: ;
	result = newnode_191401((*src).kind);
	(*result).info = (*src).info;
	asgnRefNoCycle((void**) (&(*result).typ), (*src).typ);
	(*result).flags = ((*src).flags & 13070);
	switch ((*src).kind) {
	case ((NU8) 5) ... ((NU8) 15):
	{
		(*result).kindU.S1.intval = (*src).kindU.S1.intval;
	}
	break;
	case ((NU8) 16) ... ((NU8) 19):
	{
		(*result).kindU.S2.floatval = (*src).kindU.S2.floatval;
	}
	break;
	case ((NU8) 3):
	{
		asgnRefNoCycle((void**) (&(*result).kindU.S4.sym), (*src).kindU.S4.sym);
	}
	break;
	case ((NU8) 2):
	{
		asgnRefNoCycle((void**) (&(*result).kindU.S5.ident), (*src).kindU.S5.ident);
	}
	break;
	case ((NU8) 20) ... ((NU8) 22):
	{
		NimStringDesc* LOC10;
		LOC10 = 0;
		LOC10 = (*result).kindU.S3.strval; (*result).kindU.S3.strval = copyStringRC1((*src).kindU.S3.strval);
		if (LOC10) nimGCunrefNoCycle(LOC10);
	}
	break;
	default:
	{
		NI LOC12;
		LOC12 = 0;
		LOC12 = sonslen_193403(src);
		if ((*result).kindU.S6.sons) nimGCunrefNoCycle((*result).kindU.S6.sons);
		(*result).kindU.S6.sons = (Tnodeseq190807*) newSeqRC1((&NTI190807), ((NI) (LOC12)));
	}
	break;
	}
	}BeforeRet: ;
	return result;
}

N_NIMCALL(void, resetidtable_194077)(Tidtable190861* x) {
	(*x).counter = ((NI) 0);
	(*x).data = (Tidpairseq190859*) setLengthSeq(&((*x).data)->Sup, sizeof(Tidpair190857), ((NI) 0));
	(*x).data = (Tidpairseq190859*) setLengthSeq(&((*x).data)->Sup, sizeof(Tidpair190857), ((NI) 8));
}

N_NIMCALL(Tsym190843*, linkto_191884)(Tsym190843* s, Ttype190849* t) {
	Tsym190843* result;
	result = 0;
	asgnRefNoCycle((void**) (&(*t).sym), s);
	asgnRefNoCycle((void**) (&(*s).typ), t);
	result = s;
	return result;
}

N_NIMCALL(NI64, getint_195605)(Tnode190813* a) {
	NI64 result;
	result = 0;
	switch ((*a).kind) {
	case ((NU8) 6) ... ((NU8) 15):
	{
		result = (*a).kindU.S1.intval;
	}
	break;
	default:
	{
		internalerror_165199((*a).info, ((NimStringDesc*) &TMP3229));
		result = IL64(0);
	}
	break;
	}
	return result;
}

N_NIMCALL(NF, getfloat_195616)(Tnode190813* a) {
	NF result;
	result = 0;
	switch ((*a).kind) {
	case ((NU8) 16) ... ((NU8) 19):
	{
		result = (*a).kindU.S2.floatval;
	}
	break;
	default:
	{
		internalerror_165199((*a).info, ((NimStringDesc*) &TMP3230));
		result = 0.0;
	}
	break;
	}
	return result;
}

N_NIMCALL(NimStringDesc*, getstr_195628)(Tnode190813* a) {
	NimStringDesc* result;
	result = 0;
	switch ((*a).kind) {
	case ((NU8) 20) ... ((NU8) 22):
	{
		result = copyString((*a).kindU.S3.strval);
	}
	break;
	default:
	{
		internalerror_165199((*a).info, ((NimStringDesc*) &TMP3231));
		result = copyString(((NimStringDesc*) &TMP2069));
	}
	break;
	}
	return result;
}

N_NIMCALL(NimStringDesc*, getstrorchar_195639)(Tnode190813* a) {
	NimStringDesc* result;
	result = 0;
	switch ((*a).kind) {
	case ((NU8) 20) ... ((NU8) 22):
	{
		result = copyString((*a).kindU.S3.strval);
	}
	break;
	case ((NU8) 5) ... ((NU8) 15):
	{
		result = nimCharToStr(((NIM_CHAR) (((NI) (((NI) ((*a).kindU.S1.intval)))))));
	}
	break;
	default:
	{
		internalerror_165199((*a).info, ((NimStringDesc*) &TMP3234));
		result = copyString(((NimStringDesc*) &TMP2069));
	}
	break;
	}
	return result;
}
N_NIMCALL(void, TMP3254)(void* p, NI op) {
	Tidnodepairseq190865* a;
	NI LOC1;
	a = (Tidnodepairseq190865*)p;
	LOC1 = 0;
	for (LOC1 = 0; LOC1 < a->Sup.len; LOC1++) {
	nimGCvisit((void*)a->data[LOC1].key, op);
	nimGCvisit((void*)a->data[LOC1].val, op);
	}
}

N_NIMCALL(void, initidnodetable_194127)(Tidnodetable190867* x) {
	(*x).counter = ((NI) 0);
	unsureAsgnRef((void**) (&(*x).data), (Tidnodepairseq190865*) newSeq((&NTI190865), ((NI) 8)));
}

N_NIMCALL(NIM_BOOL, containsnode_195365)(Tnode190813* n, TY432644 kinds) {
	NIM_BOOL result;
{	result = 0;
	{
		if (!(n == NIM_NIL)) goto LA3;
		goto BeforeRet;
	}
	LA3: ;
	switch ((*n).kind) {
	case ((NU8) 1) ... ((NU8) 23):
	{
		result = ((kinds[(*n).kind/8] &(1<<((*n).kind%8)))!=0);
	}
	break;
	default:
	{
		{
			NI i_195404;
			NI HEX3Atmp_195417;
			NI LOC8;
			NI res_195420;
			i_195404 = 0;
			HEX3Atmp_195417 = 0;
			LOC8 = 0;
			LOC8 = sonslen_193403(n);
			HEX3Atmp_195417 = (NI)(LOC8 - ((NI) 1));
			res_195420 = ((NI) 0);
			{
				while (1) {
					if (!(res_195420 <= HEX3Atmp_195417)) goto LA10;
					i_195404 = res_195420;
					{
						NIM_BOOL LOC13;
						LOC13 = 0;
						LOC13 = ((kinds[(*n).kind/8] &(1<<((*n).kind%8)))!=0);
						if (LOC13) goto LA14;
						LOC13 = containsnode_195365((*n).kindU.S6.sons->data[i_195404], kinds);
						LA14: ;
						if (!LOC13) goto LA15;
						result = NIM_TRUE;
						goto BeforeRet;
					}
					LA15: ;
					res_195420 += ((NI) 1);
				} LA10: ;
			}
		}
	}
	break;
	}
	}BeforeRet: ;
	return result;
}

N_NIMCALL(NIM_BOOL, hassubnodewith_195439)(Tnode190813* n, NU8 kind) {
	NIM_BOOL result;
{	result = 0;
	switch ((*n).kind) {
	case ((NU8) 1) ... ((NU8) 23):
	{
		result = ((*n).kind == kind);
	}
	break;
	default:
	{
		{
			NI i_195465;
			NI HEX3Atmp_195478;
			NI LOC4;
			NI res_195481;
			i_195465 = 0;
			HEX3Atmp_195478 = 0;
			LOC4 = 0;
			LOC4 = sonslen_193403(n);
			HEX3Atmp_195478 = (NI)(LOC4 - ((NI) 1));
			res_195481 = ((NI) 0);
			{
				while (1) {
					if (!(res_195481 <= HEX3Atmp_195478)) goto LA6;
					i_195465 = res_195481;
					{
						NIM_BOOL LOC9;
						LOC9 = 0;
						LOC9 = ((*(*n).kindU.S6.sons->data[i_195465]).kind == kind);
						if (LOC9) goto LA10;
						LOC9 = hassubnodewith_195439((*n).kindU.S6.sons->data[i_195465], kind);
						LA10: ;
						if (!LOC9) goto LA11;
						result = NIM_TRUE;
						goto BeforeRet;
					}
					LA11: ;
					res_195481 += ((NI) 1);
				} LA6: ;
			}
		}
		result = NIM_FALSE;
	}
	break;
	}
	}BeforeRet: ;
	return result;
}

N_NIMCALL(Tnode190813*, withinfo_192302)(Tnode190813* n, Tlineinfo163338 info) {
	Tnode190813* result;
{	result = 0;
	(*n).info = info;
	result = n;
	goto BeforeRet;
	}BeforeRet: ;
	return result;
}

N_NIMCALL(Tsym190843*, createmodulealias_193844)(Tsym190843* s, Tident167021* newident, Tlineinfo163338 info) {
	Tsym190843* result;
	result = 0;
	result = newsym_191656((*s).kind, newident, (*s).owner, info);
	asgnRefNoCycle((void**) (&(*result).ast), (*s).ast);
	(*result).Sup.id = (*s).Sup.id;
	(*result).flags = (*s).flags;
	(*result).kindU.S3.tab.counter = (*s).kindU.S3.tab.counter;
	asgnRefNoCycle((void**) (&(*result).kindU.S3.tab.data), (*s).kindU.S3.tab.data);
	(*result).options = (*s).options;
	(*result).position = (*s).position;
	genericAssign((void*)(&(*result).loc), (void*)(&(*s).loc), (&NTI190827));
	asgnRef((void**) (&(*result).annex), (*s).annex);
	return result;
}

N_NIMCALL(void, initnodetable_194147)(Tnodetable190873* x) {
	(*x).counter = ((NI) 0);
	unsureAsgnRef((void**) (&(*x).data), (Tnodepairseq190871*) newSeq((&NTI190871), ((NI) 8)));
}
NIM_EXTERNC N_NOINLINE(void, nimsrc_astInit)(void) {
	Tident167021* LOC1;
	Tlineinfo163338 LOC2;
	asgnRefNoCycle((void**) (&emptynode_191807), newnode_191401(((NU8) 1)));
	LOC1 = 0;
	LOC1 = getident_167463(((NimStringDesc*) &TMP790));
	LOC2 = unknownlineinfo_164027();
	asgnRefNoCycle((void**) (&anyglobal_191814), newsym_191656(((NU8) 8), LOC1, NIM_NIL, LOC2));
	asgnRefNoCycle((void**) (&emptyparams_193044), newnode_191401(((NU8) 76)));
	addson_192819(emptyparams_193044, emptynode_191807);
	asgnRefNoCycle((void**) (&opnot_195998), createmagic_195986(((NimStringDesc*) &TMP791), ((NU16) 109)));
	asgnRefNoCycle((void**) (&opcontains_195999), createmagic_195986(((NimStringDesc*) &TMP792), ((NU16) 159)));
}

NIM_EXTERNC N_NOINLINE(void, nimsrc_astDatInit)(void) {
static TNimNode* TMP727[5];
static TNimNode* TMP728[14];
static TNimNode* TMP729[62];
NI TMP731;
static char* NIM_CONST TMP730[62] = {
"tyNone", 
"tyBool", 
"tyChar", 
"tyEmpty", 
"tyArrayConstr", 
"tyNil", 
"tyExpr", 
"tyStmt", 
"tyTypeDesc", 
"tyGenericInvocation", 
"tyGenericBody", 
"tyGenericInst", 
"tyGenericParam", 
"tyDistinct", 
"tyEnum", 
"tyOrdinal", 
"tyArray", 
"tyObject", 
"tyTuple", 
"tySet", 
"tyRange", 
"tyPtr", 
"tyRef", 
"tyVar", 
"tySequence", 
"tyProc", 
"tyPointer", 
"tyOpenArray", 
"tyString", 
"tyCString", 
"tyForward", 
"tyInt", 
"tyInt8", 
"tyInt16", 
"tyInt32", 
"tyInt64", 
"tyFloat", 
"tyFloat32", 
"tyFloat64", 
"tyFloat128", 
"tyUInt", 
"tyUInt8", 
"tyUInt16", 
"tyUInt32", 
"tyUInt64", 
"tyBigNum", 
"tyConst", 
"tyMutable", 
"tyVarargs", 
"tyIter", 
"tyProxy", 
"tyBuiltInTypeClass", 
"tyUserTypeClass", 
"tyUserTypeClassInst", 
"tyCompositeTypeClass", 
"tyAnd", 
"tyOr", 
"tyNot", 
"tyAnything", 
"tyStatic", 
"tyFromExpr", 
"tyFieldAccessor"};
static TNimNode* TMP732[10];
NI TMP734;
static char* NIM_CONST TMP733[10] = {
"ccDefault", 
"ccStdCall", 
"ccCDecl", 
"ccSafeCall", 
"ccSysCall", 
"ccInline", 
"ccNoInline", 
"ccFastCall", 
"ccClosure", 
"ccNoConvention"};
static TNimNode* TMP735[28];
NI TMP737;
static char* NIM_CONST TMP736[28] = {
"tfVarargs", 
"tfNoSideEffect", 
"tfFinal", 
"tfInheritable", 
"tfAcyclic", 
"tfEnumHasHoles", 
"tfShallow", 
"tfThread", 
"tfFromGeneric", 
"tfUnresolved", 
"tfRetType", 
"tfCapturesEnv", 
"tfByCopy", 
"tfByRef", 
"tfIterator", 
"tfShared", 
"tfNotNil", 
"tfNeedsInit", 
"tfVarIsPtr", 
"tfHasMeta", 
"tfHasGCedMem", 
"tfPacked", 
"tfHasStatic", 
"tfGenericTypeParam", 
"tfImplicitTypeParam", 
"tfWildcard", 
"tfHasAsgn", 
"tfBorrowDot"};
static TNimNode* TMP739[14];
static TNimNode* TMP740[26];
NI TMP742;
static char* NIM_CONST TMP741[26] = {
"skUnknown", 
"skConditional", 
"skDynLib", 
"skParam", 
"skGenericParam", 
"skTemp", 
"skModule", 
"skType", 
"skVar", 
"skLet", 
"skConst", 
"skResult", 
"skProc", 
"skMethod", 
"skIterator", 
"skClosureIterator", 
"skConverter", 
"skMacro", 
"skTemplate", 
"skField", 
"skEnumField", 
"skForVar", 
"skLabel", 
"skStub", 
"skPackage", 
"skAlias"};
static TNimNode* TMP743[2];
static TNimNode* TMP744[4];
static TNimNode* TMP745[2];
static TNimNode* TMP749[2];
static TNimNode* TMP750[3];
static TNimNode* TMP754[2];
static TNimNode* TMP755[264];
NI TMP757;
static char* NIM_CONST TMP756[264] = {
"mNone", 
"mDefined", 
"mDefinedInScope", 
"mCompiles", 
"mLow", 
"mHigh", 
"mSizeOf", 
"mTypeTrait", 
"mIs", 
"mOf", 
"mAddr", 
"mTypeOf", 
"mRoof", 
"mPlugin", 
"mEcho", 
"mShallowCopy", 
"mSlurp", 
"mStaticExec", 
"mParseExprToAst", 
"mParseStmtToAst", 
"mExpandToAst", 
"mQuoteAst", 
"mUnaryLt", 
"mInc", 
"mDec", 
"mOrd", 
"mNew", 
"mNewFinalize", 
"mNewSeq", 
"mLengthOpenArray", 
"mLengthStr", 
"mLengthArray", 
"mLengthSeq", 
"mXLenStr", 
"mXLenSeq", 
"mIncl", 
"mExcl", 
"mCard", 
"mChr", 
"mGCref", 
"mGCunref", 
"mAddI", 
"mSubI", 
"mMulI", 
"mDivI", 
"mModI", 
"mAddI64", 
"mSubI64", 
"mMulI64", 
"mDivI64", 
"mModI64", 
"mSucc", 
"mPred", 
"mAddF64", 
"mSubF64", 
"mMulF64", 
"mDivF64", 
"mShrI", 
"mShlI", 
"mBitandI", 
"mBitorI", 
"mBitxorI", 
"mMinI", 
"mMaxI", 
"mShrI64", 
"mShlI64", 
"mBitandI64", 
"mBitorI64", 
"mBitxorI64", 
"mMinF64", 
"mMaxF64", 
"mAddU", 
"mSubU", 
"mMulU", 
"mDivU", 
"mModU", 
"mEqI", 
"mLeI", 
"mLtI", 
"mEqI64", 
"mLeI64", 
"mLtI64", 
"mEqF64", 
"mLeF64", 
"mLtF64", 
"mLeU", 
"mLtU", 
"mLeU64", 
"mLtU64", 
"mEqEnum", 
"mLeEnum", 
"mLtEnum", 
"mEqCh", 
"mLeCh", 
"mLtCh", 
"mEqB", 
"mLeB", 
"mLtB", 
"mEqRef", 
"mEqUntracedRef", 
"mLePtr", 
"mLtPtr", 
"mEqCString", 
"mXor", 
"mEqProc", 
"mUnaryMinusI", 
"mUnaryMinusI64", 
"mAbsI", 
"mAbsI64", 
"mNot", 
"mUnaryPlusI", 
"mBitnotI", 
"mBitnotI64", 
"mUnaryPlusF64", 
"mUnaryMinusF64", 
"mAbsF64", 
"mZe8ToI", 
"mZe8ToI64", 
"mZe16ToI", 
"mZe16ToI64", 
"mZe32ToI64", 
"mZeIToI64", 
"mToU8", 
"mToU16", 
"mToU32", 
"mToFloat", 
"mToBiggestFloat", 
"mToInt", 
"mToBiggestInt", 
"mCharToStr", 
"mBoolToStr", 
"mIntToStr", 
"mInt64ToStr", 
"mFloatToStr", 
"mCStrToStr", 
"mStrToStr", 
"mEnumToStr", 
"mAnd", 
"mOr", 
"mEqStr", 
"mLeStr", 
"mLtStr", 
"mEqSet", 
"mLeSet", 
"mLtSet", 
"mMulSet", 
"mPlusSet", 
"mMinusSet", 
"mSymDiffSet", 
"mConStrStr", 
"mSlice", 
"mDotDot", 
"mFields", 
"mFieldPairs", 
"mOmpParFor", 
"mAppendStrCh", 
"mAppendStrStr", 
"mAppendSeqElem", 
"mInRange", 
"mInSet", 
"mRepr", 
"mExit", 
"mSetLengthStr", 
"mSetLengthSeq", 
"mIsPartOf", 
"mAstToStr", 
"mParallel", 
"mSwap", 
"mIsNil", 
"mArrToSeq", 
"mCopyStr", 
"mCopyStrLast", 
"mNewString", 
"mNewStringOfCap", 
"mParseBiggestFloat", 
"mReset", 
"mArray", 
"mOpenArray", 
"mRange", 
"mSet", 
"mSeq", 
"mVarargs", 
"mOrdinal", 
"mInt", 
"mInt8", 
"mInt16", 
"mInt32", 
"mInt64", 
"mUInt", 
"mUInt8", 
"mUInt16", 
"mUInt32", 
"mUInt64", 
"mFloat", 
"mFloat32", 
"mFloat64", 
"mFloat128", 
"mBool", 
"mChar", 
"mString", 
"mCstring", 
"mPointer", 
"mEmptySet", 
"mIntSetBaseType", 
"mNil", 
"mExpr", 
"mStmt", 
"mTypeDesc", 
"mVoidType", 
"mPNimrodNode", 
"mShared", 
"mGuarded", 
"mLock", 
"mSpawn", 
"mDeepCopy", 
"mIsMainModule", 
"mCompileDate", 
"mCompileTime", 
"mProcCall", 
"mCpuEndian", 
"mHostOS", 
"mHostCPU", 
"mAppType", 
"mNaN", 
"mInf", 
"mNegInf", 
"mCompileOption", 
"mCompileOptionArg", 
"mNLen", 
"mNChild", 
"mNSetChild", 
"mNAdd", 
"mNAddMultiple", 
"mNDel", 
"mNKind", 
"mNIntVal", 
"mNFloatVal", 
"mNSymbol", 
"mNIdent", 
"mNGetType", 
"mNStrVal", 
"mNSetIntVal", 
"mNSetFloatVal", 
"mNSetSymbol", 
"mNSetIdent", 
"mNSetType", 
"mNSetStrVal", 
"mNLineInfo", 
"mNNewNimNode", 
"mNCopyNimNode", 
"mNCopyNimTree", 
"mStrToIdent", 
"mIdentToStr", 
"mNBindSym", 
"mLocals", 
"mNCallSite", 
"mEqIdent", 
"mEqNimrodNode", 
"mNHint", 
"mNWarning", 
"mNError", 
"mInstantiationInfo", 
"mGetTypeInfo", 
"mNGenSym"};
static TNimNode* TMP758[32];
NI TMP760;
static char* NIM_CONST TMP759[32] = {
"sfUsed", 
"sfExported", 
"sfFromGeneric", 
"sfGlobal", 
"sfForward", 
"sfImportc", 
"sfExportc", 
"sfVolatile", 
"sfRegister", 
"sfPure", 
"sfNoSideEffect", 
"sfSideEffect", 
"sfMainModule", 
"sfSystemModule", 
"sfNoReturn", 
"sfAddrTaken", 
"sfCompilerProc", 
"sfProcvar", 
"sfDiscriminant", 
"sfDeprecated", 
"sfError", 
"sfShadowed", 
"sfThread", 
"sfCompileTime", 
"sfConstructor", 
"sfDeadCodeElim", 
"sfBorrow", 
"sfInfixCall", 
"sfNamedParamCall", 
"sfDiscardable", 
"sfOverriden", 
"sfGenSym"};
static TNimNode* TMP764[6];
static TNimNode* TMP765[11];
NI TMP767;
static char* NIM_CONST TMP766[11] = {
"locNone", 
"locTemp", 
"locLocalVar", 
"locGlobalVar", 
"locParam", 
"locField", 
"locExpr", 
"locProc", 
"locData", 
"locCall", 
"locOther"};
static TNimNode* TMP768[3];
NI TMP770;
static char* NIM_CONST TMP769[3] = {
"OnUnknown", 
"OnStack", 
"OnHeap"};
static TNimNode* TMP771[9];
NI TMP773;
static char* NIM_CONST TMP772[9] = {
"lfIndirect", 
"lfFullExternalName", 
"lfNoDeepCopy", 
"lfNoDecl", 
"lfDynamicLib", 
"lfExportLib", 
"lfHeader", 
"lfImportCompilerProc", 
"lfSingleUse"};
static TNimNode* TMP776[5];
static TNimNode* TMP777[2];
NI TMP779;
static char* NIM_CONST TMP778[2] = {
"libHeader", 
"libDynamic"};
static TNimNode* TMP783[14];
NI TMP785;
static char* NIM_CONST TMP784[14] = {
"nfNone", 
"nfBase2", 
"nfBase8", 
"nfBase16", 
"nfAllConst", 
"nfTransf", 
"nfSem", 
"nfLL", 
"nfDotField", 
"nfDotSetter", 
"nfExplicitCall", 
"nfExprCall", 
"nfIsRef", 
"nfIsCursor"};
static TNimNode* TMP786[159];
NI TMP788;
static char* NIM_CONST TMP787[159] = {
"nkNone", 
"nkEmpty", 
"nkIdent", 
"nkSym", 
"nkType", 
"nkCharLit", 
"nkIntLit", 
"nkInt8Lit", 
"nkInt16Lit", 
"nkInt32Lit", 
"nkInt64Lit", 
"nkUIntLit", 
"nkUInt8Lit", 
"nkUInt16Lit", 
"nkUInt32Lit", 
"nkUInt64Lit", 
"nkFloatLit", 
"nkFloat32Lit", 
"nkFloat64Lit", 
"nkFloat128Lit", 
"nkStrLit", 
"nkRStrLit", 
"nkTripleStrLit", 
"nkNilLit", 
"nkMetaNode_Obsolete", 
"nkDotCall", 
"nkCommand", 
"nkCall", 
"nkCallStrLit", 
"nkInfix", 
"nkPrefix", 
"nkPostfix", 
"nkHiddenCallConv", 
"nkExprEqExpr", 
"nkExprColonExpr", 
"nkIdentDefs", 
"nkVarTuple", 
"nkPar", 
"nkObjConstr", 
"nkCurly", 
"nkCurlyExpr", 
"nkBracket", 
"nkBracketExpr", 
"nkPragmaExpr", 
"nkRange", 
"nkDotExpr", 
"nkCheckedFieldExpr", 
"nkDerefExpr", 
"nkIfExpr", 
"nkElifExpr", 
"nkElseExpr", 
"nkLambda", 
"nkDo", 
"nkAccQuoted", 
"nkTableConstr", 
"nkBind", 
"nkClosedSymChoice", 
"nkOpenSymChoice", 
"nkHiddenStdConv", 
"nkHiddenSubConv", 
"nkConv", 
"nkCast", 
"nkStaticExpr", 
"nkAddr", 
"nkHiddenAddr", 
"nkHiddenDeref", 
"nkObjDownConv", 
"nkObjUpConv", 
"nkChckRangeF", 
"nkChckRange64", 
"nkChckRange", 
"nkStringToCString", 
"nkCStringToString", 
"nkAsgn", 
"nkFastAsgn", 
"nkGenericParams", 
"nkFormalParams", 
"nkOfInherit", 
"nkImportAs", 
"nkProcDef", 
"nkMethodDef", 
"nkConverterDef", 
"nkMacroDef", 
"nkTemplateDef", 
"nkIteratorDef", 
"nkOfBranch", 
"nkElifBranch", 
"nkExceptBranch", 
"nkElse", 
"nkAsmStmt", 
"nkPragma", 
"nkPragmaBlock", 
"nkIfStmt", 
"nkWhenStmt", 
"nkForStmt", 
"nkParForStmt", 
"nkWhileStmt", 
"nkCaseStmt", 
"nkTypeSection", 
"nkVarSection", 
"nkLetSection", 
"nkConstSection", 
"nkConstDef", 
"nkTypeDef", 
"nkYieldStmt", 
"nkDefer", 
"nkTryStmt", 
"nkFinally", 
"nkRaiseStmt", 
"nkReturnStmt", 
"nkBreakStmt", 
"nkContinueStmt", 
"nkBlockStmt", 
"nkStaticStmt", 
"nkDiscardStmt", 
"nkStmtList", 
"nkImportStmt", 
"nkImportExceptStmt", 
"nkExportStmt", 
"nkExportExceptStmt", 
"nkFromStmt", 
"nkIncludeStmt", 
"nkBindStmt", 
"nkMixinStmt", 
"nkUsingStmt", 
"nkCommentStmt", 
"nkStmtListExpr", 
"nkBlockExpr", 
"nkStmtListType", 
"nkBlockType", 
"nkWith", 
"nkWithout", 
"nkTypeOfExpr", 
"nkObjectTy", 
"nkTupleTy", 
"nkTupleClassTy", 
"nkTypeClassTy", 
"nkStaticTy", 
"nkRecList", 
"nkRecCase", 
"nkRecWhen", 
"nkRefTy", 
"nkPtrTy", 
"nkVarTy", 
"nkConstTy", 
"nkMutableTy", 
"nkDistinctTy", 
"nkProcTy", 
"nkIteratorTy", 
"nkSharedTy", 
"nkEnumTy", 
"nkEnumFieldDef", 
"nkArgList", 
"nkPattern", 
"nkReturnToken", 
"nkClosure", 
"nkGotoState", 
"nkState", 
"nkBreakState"};
static TNimNode* TMP826[2];
static TNimNode* TMP827[2];
static TNimNode* TMP1053[2];
static TNimNode* TMP1054[3];
static TNimNode* TMP3252[2];
static TNimNode* TMP3253[2];
static TNimNode TMP721[733];
NTI190813.size = sizeof(Tnode190813);
NTI190813.kind = 18;
NTI190813.base = 0;
NTI190813.flags = 2;
TMP727[0] = &TMP721[1];
NTI190849.size = sizeof(Ttype190849);
NTI190849.kind = 17;
NTI190849.base = (&NTI167015);
NTI190849.flags = 2;
TMP728[0] = &TMP721[3];
NTI190260.size = sizeof(NU8);
NTI190260.kind = 14;
NTI190260.base = 0;
NTI190260.flags = 3;
for (TMP731 = 0; TMP731 < 62; TMP731++) {
TMP721[TMP731+4].kind = 1;
TMP721[TMP731+4].offset = TMP731;
TMP721[TMP731+4].name = TMP730[TMP731];
TMP729[TMP731] = &TMP721[TMP731+4];
}
TMP721[66].len = 62; TMP721[66].kind = 2; TMP721[66].sons = &TMP729[0];
NTI190260.node = &TMP721[66];
TMP721[3].kind = 1;
TMP721[3].offset = offsetof(Ttype190849, kind);
TMP721[3].typ = (&NTI190260);
TMP721[3].name = "kind";
TMP728[1] = &TMP721[67];
NTI190005.size = sizeof(NU8);
NTI190005.kind = 14;
NTI190005.base = 0;
NTI190005.flags = 3;
for (TMP734 = 0; TMP734 < 10; TMP734++) {
TMP721[TMP734+68].kind = 1;
TMP721[TMP734+68].offset = TMP734;
TMP721[TMP734+68].name = TMP733[TMP734];
TMP732[TMP734] = &TMP721[TMP734+68];
}
TMP721[78].len = 10; TMP721[78].kind = 2; TMP721[78].sons = &TMP732[0];
NTI190005.node = &TMP721[78];
TMP721[67].kind = 1;
TMP721[67].offset = offsetof(Ttype190849, callconv);
TMP721[67].typ = (&NTI190005);
TMP721[67].name = "callConv";
TMP728[2] = &TMP721[79];
NTI190437.size = sizeof(NU8);
NTI190437.kind = 14;
NTI190437.base = 0;
NTI190437.flags = 3;
for (TMP737 = 0; TMP737 < 28; TMP737++) {
TMP721[TMP737+80].kind = 1;
TMP721[TMP737+80].offset = TMP737;
TMP721[TMP737+80].name = TMP736[TMP737];
TMP735[TMP737] = &TMP721[TMP737+80];
}
TMP721[108].len = 28; TMP721[108].kind = 2; TMP721[108].sons = &TMP735[0];
NTI190437.node = &TMP721[108];
NTI190439.size = sizeof(NU32);
NTI190439.kind = 19;
NTI190439.base = (&NTI190437);
NTI190439.flags = 3;
TMP721[109].len = 0; TMP721[109].kind = 0;
NTI190439.node = &TMP721[109];
TMP721[79].kind = 1;
TMP721[79].offset = offsetof(Ttype190849, flags);
TMP721[79].typ = (&NTI190439);
TMP721[79].name = "flags";
TMP728[3] = &TMP721[110];
NTI190845.size = sizeof(Ttypeseq190845*);
NTI190845.kind = 24;
NTI190845.base = (&NTI190809);
NTI190845.flags = 2;
NTI190845.marker = TMP738;
TMP721[110].kind = 1;
TMP721[110].offset = offsetof(Ttype190849, sons);
TMP721[110].typ = (&NTI190845);
TMP721[110].name = "sons";
TMP728[4] = &TMP721[111];
TMP721[111].kind = 1;
TMP721[111].offset = offsetof(Ttype190849, n);
TMP721[111].typ = (&NTI190805);
TMP721[111].name = "n";
TMP728[5] = &TMP721[112];
NTI190843.size = sizeof(Tsym190843);
NTI190843.kind = 17;
NTI190843.base = (&NTI167015);
NTI190843.flags = 2;
TMP739[0] = &TMP721[114];
NTI190441.size = sizeof(NU8);
NTI190441.kind = 14;
NTI190441.base = 0;
NTI190441.flags = 3;
for (TMP742 = 0; TMP742 < 26; TMP742++) {
TMP721[TMP742+115].kind = 1;
TMP721[TMP742+115].offset = TMP742;
TMP721[TMP742+115].name = TMP741[TMP742];
TMP740[TMP742] = &TMP721[TMP742+115];
}
TMP721[141].len = 26; TMP721[141].kind = 2; TMP721[141].sons = &TMP740[0];
NTI190441.node = &TMP721[141];
TMP721[114].kind = 3;
TMP721[114].offset = offsetof(Tsym190843, kind);
TMP721[114].typ = (&NTI190441);
TMP721[114].name = "kind";
TMP721[114].sons = &NimDT_190843_kind[0];
TMP721[114].len = 26;
TMP743[0] = &TMP721[143];
TMP721[143].kind = 1;
TMP721[143].offset = offsetof(Tsym190843, kindU.S1.typeinstcache);
TMP721[143].typ = (&NTI190845);
TMP721[143].name = "typeInstCache";
TMP743[1] = &TMP721[144];
NTI190837.size = sizeof(Tscope190837);
NTI190837.kind = 18;
NTI190837.base = 0;
TMP744[0] = &TMP721[146];
TMP721[146].kind = 1;
TMP721[146].offset = offsetof(Tscope190837, depthlevel);
TMP721[146].typ = (&NTI108);
TMP721[146].name = "depthLevel";
TMP744[1] = &TMP721[147];
NTI190817.size = sizeof(Tstrtable190817);
NTI190817.kind = 18;
NTI190817.base = 0;
NTI190817.flags = 2;
TMP745[0] = &TMP721[149];
TMP721[149].kind = 1;
TMP721[149].offset = offsetof(Tstrtable190817, counter);
TMP721[149].typ = (&NTI108);
TMP721[149].name = "counter";
TMP745[1] = &TMP721[150];
NTI190815.size = sizeof(Tsymseq190815*);
NTI190815.kind = 24;
NTI190815.base = (&NTI190811);
NTI190815.flags = 2;
NTI190815.marker = TMP746;
TMP721[150].kind = 1;
TMP721[150].offset = offsetof(Tstrtable190817, data);
TMP721[150].typ = (&NTI190815);
TMP721[150].name = "data";
TMP721[148].len = 2; TMP721[148].kind = 2; TMP721[148].sons = &TMP745[0];
NTI190817.node = &TMP721[148];
TMP721[147].kind = 1;
TMP721[147].offset = offsetof(Tscope190837, symbols);
TMP721[147].typ = (&NTI190817);
TMP721[147].name = "symbols";
TMP744[2] = &TMP721[151];
NTI190807.size = sizeof(Tnodeseq190807*);
NTI190807.kind = 24;
NTI190807.base = (&NTI190805);
NTI190807.flags = 2;
NTI190807.marker = TMP747;
TMP721[151].kind = 1;
TMP721[151].offset = offsetof(Tscope190837, usingsyms);
TMP721[151].typ = (&NTI190807);
TMP721[151].name = "usingSyms";
TMP744[3] = &TMP721[152];
TMP721[152].kind = 1;
TMP721[152].offset = offsetof(Tscope190837, parent);
TMP721[152].typ = (&NTI190839);
TMP721[152].name = "parent";
TMP721[145].len = 4; TMP721[145].kind = 2; TMP721[145].sons = &TMP744[0];
NTI190837.node = &TMP721[145];
NTI190839.size = sizeof(Tscope190837*);
NTI190839.kind = 22;
NTI190839.base = (&NTI190837);
NTI190839.marker = TMP748;
TMP721[144].kind = 1;
TMP721[144].offset = offsetof(Tsym190843, kindU.S1.typscope);
TMP721[144].typ = (&NTI190839);
TMP721[144].name = "typScope";
TMP721[142].len = 2; TMP721[142].kind = 2; TMP721[142].sons = &TMP743[0];
NimDT_190843_kind[7] = &TMP721[142];
NimDT_190843_kind[4] = &TMP721[142];
TMP749[0] = &TMP721[154];
NTI190833.size = sizeof(Tinstantiation190833);
NTI190833.kind = 18;
NTI190833.base = 0;
NTI190833.flags = 2;
TMP750[0] = &TMP721[156];
TMP721[156].kind = 1;
TMP721[156].offset = offsetof(Tinstantiation190833, sym);
TMP721[156].typ = (&NTI190811);
TMP721[156].name = "sym";
TMP750[1] = &TMP721[157];
TMP721[157].kind = 1;
TMP721[157].offset = offsetof(Tinstantiation190833, concretetypes);
TMP721[157].typ = (&NTI190845);
TMP721[157].name = "concreteTypes";
TMP750[2] = &TMP721[158];
NTI190933.size = sizeof(TY190933*);
NTI190933.kind = 24;
NTI190933.base = (&NTI114);
NTI190933.flags = 2;
NTI190933.marker = TMP751;
TMP721[158].kind = 1;
TMP721[158].offset = offsetof(Tinstantiation190833, usedby);
TMP721[158].typ = (&NTI190933);
TMP721[158].name = "usedBy";
TMP721[155].len = 3; TMP721[155].kind = 2; TMP721[155].sons = &TMP750[0];
NTI190833.node = &TMP721[155];
NTI190835.size = sizeof(Tinstantiation190833*);
NTI190835.kind = 22;
NTI190835.base = (&NTI190833);
NTI190835.flags = 2;
NTI190835.marker = TMP752;
NTI190944.size = sizeof(TY190944*);
NTI190944.kind = 24;
NTI190944.base = (&NTI190835);
NTI190944.flags = 2;
NTI190944.marker = TMP753;
TMP721[154].kind = 1;
TMP721[154].offset = offsetof(Tsym190843, kindU.S2.procinstcache);
TMP721[154].typ = (&NTI190944);
TMP721[154].name = "procInstCache";
TMP749[1] = &TMP721[159];
TMP721[159].kind = 1;
TMP721[159].offset = offsetof(Tsym190843, kindU.S2.gcunsafetyreason);
TMP721[159].typ = (&NTI190811);
TMP721[159].name = "gcUnsafetyReason";
TMP721[153].len = 2; TMP721[153].kind = 2; TMP721[153].sons = &TMP749[0];
NimDT_190843_kind[12] = &TMP721[153];
NimDT_190843_kind[13] = &TMP721[153];
NimDT_190843_kind[14] = &TMP721[153];
NimDT_190843_kind[15] = &TMP721[153];
NimDT_190843_kind[16] = &TMP721[153];
NimDT_190843_kind[17] = &TMP721[153];
NimDT_190843_kind[18] = &TMP721[153];
TMP754[0] = &TMP721[161];
TMP721[161].kind = 1;
TMP721[161].offset = offsetof(Tsym190843, kindU.S3.usedgenerics);
TMP721[161].typ = (&NTI190944);
TMP721[161].name = "usedGenerics";
TMP754[1] = &TMP721[162];
TMP721[162].kind = 1;
TMP721[162].offset = offsetof(Tsym190843, kindU.S3.tab);
TMP721[162].typ = (&NTI190817);
TMP721[162].name = "tab";
TMP721[160].len = 2; TMP721[160].kind = 2; TMP721[160].sons = &TMP754[0];
NimDT_190843_kind[6] = &TMP721[160];
TMP721[163].kind = 1;
TMP721[163].offset = offsetof(Tsym190843, kindU.S4.guard);
TMP721[163].typ = (&NTI190811);
TMP721[163].name = "guard";
NimDT_190843_kind[9] = &TMP721[163];
NimDT_190843_kind[8] = &TMP721[163];
NimDT_190843_kind[19] = &TMP721[163];
NimDT_190843_kind[21] = &TMP721[163];
TMP721[164].len = 0; TMP721[164].kind = 2;
NimDT_190843_kind[26] = &TMP721[164];
TMP739[1] = &TMP721[165];
NTI190529.size = sizeof(NU16);
NTI190529.kind = 14;
NTI190529.base = 0;
NTI190529.flags = 3;
for (TMP757 = 0; TMP757 < 264; TMP757++) {
TMP721[TMP757+166].kind = 1;
TMP721[TMP757+166].offset = TMP757;
TMP721[TMP757+166].name = TMP756[TMP757];
TMP755[TMP757] = &TMP721[TMP757+166];
}
TMP721[430].len = 264; TMP721[430].kind = 2; TMP721[430].sons = &TMP755[0];
NTI190529.node = &TMP721[430];
TMP721[165].kind = 1;
TMP721[165].offset = offsetof(Tsym190843, magic);
TMP721[165].typ = (&NTI190529);
TMP721[165].name = "magic";
TMP739[2] = &TMP721[431];
TMP721[431].kind = 1;
TMP721[431].offset = offsetof(Tsym190843, typ);
TMP721[431].typ = (&NTI190809);
TMP721[431].name = "typ";
TMP739[3] = &TMP721[432];
TMP721[432].kind = 1;
TMP721[432].offset = offsetof(Tsym190843, name);
TMP721[432].typ = (&NTI167019);
TMP721[432].name = "name";
TMP739[4] = &TMP721[433];
TMP721[433].kind = 1;
TMP721[433].offset = offsetof(Tsym190843, info);
TMP721[433].typ = (&NTI163338);
TMP721[433].name = "info";
TMP739[5] = &TMP721[434];
TMP721[434].kind = 1;
TMP721[434].offset = offsetof(Tsym190843, owner);
TMP721[434].typ = (&NTI190811);
TMP721[434].name = "owner";
TMP739[6] = &TMP721[435];
NTI190195.size = sizeof(NU8);
NTI190195.kind = 14;
NTI190195.base = 0;
NTI190195.flags = 3;
for (TMP760 = 0; TMP760 < 32; TMP760++) {
TMP721[TMP760+436].kind = 1;
TMP721[TMP760+436].offset = TMP760;
TMP721[TMP760+436].name = TMP759[TMP760];
TMP758[TMP760] = &TMP721[TMP760+436];
}
TMP721[468].len = 32; TMP721[468].kind = 2; TMP721[468].sons = &TMP758[0];
NTI190195.node = &TMP721[468];
NTI190197.size = sizeof(NU32);
NTI190197.kind = 19;
NTI190197.base = (&NTI190195);
NTI190197.flags = 3;
TMP721[469].len = 0; TMP721[469].kind = 0;
NTI190197.node = &TMP721[469];
TMP721[435].kind = 1;
TMP721[435].offset = offsetof(Tsym190843, flags);
TMP721[435].typ = (&NTI190197);
TMP721[435].name = "flags";
TMP739[7] = &TMP721[470];
TMP721[470].kind = 1;
TMP721[470].offset = offsetof(Tsym190843, ast);
TMP721[470].typ = (&NTI190805);
TMP721[470].name = "ast";
TMP739[8] = &TMP721[471];
TMP721[471].kind = 1;
TMP721[471].offset = offsetof(Tsym190843, options);
TMP721[471].typ = (&NTI154016);
TMP721[471].name = "options";
TMP739[9] = &TMP721[472];
TMP721[472].kind = 1;
TMP721[472].offset = offsetof(Tsym190843, position);
TMP721[472].typ = (&NTI108);
TMP721[472].name = "position";
TMP739[10] = &TMP721[473];
TMP721[473].kind = 1;
TMP721[473].offset = offsetof(Tsym190843, offset);
TMP721[473].typ = (&NTI108);
TMP721[473].name = "offset";
TMP739[11] = &TMP721[474];
NTI190827.size = sizeof(Tloc190827);
NTI190827.kind = 18;
NTI190827.base = 0;
NTI190827.flags = 2;
TMP764[0] = &TMP721[476];
NTI190819.size = sizeof(NU8);
NTI190819.kind = 14;
NTI190819.base = 0;
NTI190819.flags = 3;
for (TMP767 = 0; TMP767 < 11; TMP767++) {
TMP721[TMP767+477].kind = 1;
TMP721[TMP767+477].offset = TMP767;
TMP721[TMP767+477].name = TMP766[TMP767];
TMP765[TMP767] = &TMP721[TMP767+477];
}
TMP721[488].len = 11; TMP721[488].kind = 2; TMP721[488].sons = &TMP765[0];
NTI190819.node = &TMP721[488];
TMP721[476].kind = 1;
TMP721[476].offset = offsetof(Tloc190827, k);
TMP721[476].typ = (&NTI190819);
TMP721[476].name = "k";
TMP764[1] = &TMP721[489];
NTI190823.size = sizeof(NU8);
NTI190823.kind = 14;
NTI190823.base = 0;
NTI190823.flags = 3;
for (TMP770 = 0; TMP770 < 3; TMP770++) {
TMP721[TMP770+490].kind = 1;
TMP721[TMP770+490].offset = TMP770;
TMP721[TMP770+490].name = TMP769[TMP770];
TMP768[TMP770] = &TMP721[TMP770+490];
}
TMP721[493].len = 3; TMP721[493].kind = 2; TMP721[493].sons = &TMP768[0];
NTI190823.node = &TMP721[493];
TMP721[489].kind = 1;
TMP721[489].offset = offsetof(Tloc190827, s);
TMP721[489].typ = (&NTI190823);
TMP721[489].name = "s";
TMP764[2] = &TMP721[494];
NTI190821.size = sizeof(NU8);
NTI190821.kind = 14;
NTI190821.base = 0;
NTI190821.flags = 3;
for (TMP773 = 0; TMP773 < 9; TMP773++) {
TMP721[TMP773+495].kind = 1;
TMP721[TMP773+495].offset = TMP773;
TMP721[TMP773+495].name = TMP772[TMP773];
TMP771[TMP773] = &TMP721[TMP773+495];
}
TMP721[504].len = 9; TMP721[504].kind = 2; TMP721[504].sons = &TMP771[0];
NTI190821.node = &TMP721[504];
NTI190825.size = sizeof(NU16);
NTI190825.kind = 19;
NTI190825.base = (&NTI190821);
NTI190825.flags = 3;
TMP721[505].len = 0; TMP721[505].kind = 0;
NTI190825.node = &TMP721[505];
TMP721[494].kind = 1;
TMP721[494].offset = offsetof(Tloc190827, flags);
TMP721[494].typ = (&NTI190825);
TMP721[494].name = "flags";
TMP764[3] = &TMP721[506];
TMP721[506].kind = 1;
TMP721[506].offset = offsetof(Tloc190827, t);
TMP721[506].typ = (&NTI190809);
TMP721[506].name = "t";
TMP764[4] = &TMP721[507];
TMP721[507].kind = 1;
TMP721[507].offset = offsetof(Tloc190827, r);
TMP721[507].typ = (&NTI161007);
TMP721[507].name = "r";
TMP764[5] = &TMP721[508];
TMP721[508].kind = 1;
TMP721[508].offset = offsetof(Tloc190827, heaproot);
TMP721[508].typ = (&NTI161007);
TMP721[508].name = "heapRoot";
TMP721[475].len = 6; TMP721[475].kind = 2; TMP721[475].sons = &TMP764[0];
NTI190827.node = &TMP721[475];
TMP721[474].kind = 1;
TMP721[474].offset = offsetof(Tsym190843, loc);
TMP721[474].typ = (&NTI190827);
TMP721[474].name = "loc";
TMP739[12] = &TMP721[509];
NTI190831.size = sizeof(Tlib190831);
NTI190831.kind = 17;
NTI190831.base = (&NTI130022);
TMP776[0] = &TMP721[511];
NTI190829.size = sizeof(NU8);
NTI190829.kind = 14;
NTI190829.base = 0;
NTI190829.flags = 3;
for (TMP779 = 0; TMP779 < 2; TMP779++) {
TMP721[TMP779+512].kind = 1;
TMP721[TMP779+512].offset = TMP779;
TMP721[TMP779+512].name = TMP778[TMP779];
TMP777[TMP779] = &TMP721[TMP779+512];
}
TMP721[514].len = 2; TMP721[514].kind = 2; TMP721[514].sons = &TMP777[0];
NTI190829.node = &TMP721[514];
TMP721[511].kind = 1;
TMP721[511].offset = offsetof(Tlib190831, kind);
TMP721[511].typ = (&NTI190829);
TMP721[511].name = "kind";
TMP776[1] = &TMP721[515];
TMP721[515].kind = 1;
TMP721[515].offset = offsetof(Tlib190831, generated);
TMP721[515].typ = (&NTI138);
TMP721[515].name = "generated";
TMP776[2] = &TMP721[516];
TMP721[516].kind = 1;
TMP721[516].offset = offsetof(Tlib190831, isoverriden);
TMP721[516].typ = (&NTI138);
TMP721[516].name = "isOverriden";
TMP776[3] = &TMP721[517];
TMP721[517].kind = 1;
TMP721[517].offset = offsetof(Tlib190831, name);
TMP721[517].typ = (&NTI161007);
TMP721[517].name = "name";
TMP776[4] = &TMP721[518];
TMP721[518].kind = 1;
TMP721[518].offset = offsetof(Tlib190831, path);
TMP721[518].typ = (&NTI190805);
TMP721[518].name = "path";
TMP721[510].len = 5; TMP721[510].kind = 2; TMP721[510].sons = &TMP776[0];
NTI190831.node = &TMP721[510];
NTI190841.size = sizeof(Tlib190831*);
NTI190841.kind = 22;
NTI190841.base = (&NTI190831);
NTI190841.marker = TMP780;
TMP721[509].kind = 1;
TMP721[509].offset = offsetof(Tsym190843, annex);
TMP721[509].typ = (&NTI190841);
TMP721[509].name = "annex";
TMP739[13] = &TMP721[519];
TMP721[519].kind = 1;
TMP721[519].offset = offsetof(Tsym190843, constraint);
TMP721[519].typ = (&NTI190805);
TMP721[519].name = "constraint";
TMP721[113].len = 14; TMP721[113].kind = 2; TMP721[113].sons = &TMP739[0];
NTI190843.node = &TMP721[113];
NTI190811.size = sizeof(Tsym190843*);
NTI190811.kind = 22;
NTI190811.base = (&NTI190843);
NTI190811.flags = 2;
NTI190811.marker = TMP781;
TMP721[112].kind = 1;
TMP721[112].offset = offsetof(Ttype190849, owner);
TMP721[112].typ = (&NTI190811);
TMP721[112].name = "owner";
TMP728[6] = &TMP721[520];
TMP721[520].kind = 1;
TMP721[520].offset = offsetof(Ttype190849, sym);
TMP721[520].typ = (&NTI190811);
TMP721[520].name = "sym";
TMP728[7] = &TMP721[521];
TMP721[521].kind = 1;
TMP721[521].offset = offsetof(Ttype190849, destructor);
TMP721[521].typ = (&NTI190811);
TMP721[521].name = "destructor";
TMP728[8] = &TMP721[522];
TMP721[522].kind = 1;
TMP721[522].offset = offsetof(Ttype190849, deepcopy);
TMP721[522].typ = (&NTI190811);
TMP721[522].name = "deepCopy";
TMP728[9] = &TMP721[523];
TMP721[523].kind = 1;
TMP721[523].offset = offsetof(Ttype190849, assignment);
TMP721[523].typ = (&NTI190811);
TMP721[523].name = "assignment";
TMP728[10] = &TMP721[524];
TMP721[524].kind = 1;
TMP721[524].offset = offsetof(Ttype190849, size);
TMP721[524].typ = (&NTI5710);
TMP721[524].name = "size";
TMP728[11] = &TMP721[525];
TMP721[525].kind = 1;
TMP721[525].offset = offsetof(Ttype190849, align);
TMP721[525].typ = (&NTI112);
TMP721[525].name = "align";
TMP728[12] = &TMP721[526];
TMP721[526].kind = 1;
TMP721[526].offset = offsetof(Ttype190849, locklevel);
TMP721[526].typ = (&NTI112);
TMP721[526].name = "lockLevel";
TMP728[13] = &TMP721[527];
TMP721[527].kind = 1;
TMP721[527].offset = offsetof(Ttype190849, loc);
TMP721[527].typ = (&NTI190827);
TMP721[527].name = "loc";
TMP721[2].len = 14; TMP721[2].kind = 2; TMP721[2].sons = &TMP728[0];
NTI190849.node = &TMP721[2];
NTI190809.size = sizeof(Ttype190849*);
NTI190809.kind = 22;
NTI190809.base = (&NTI190849);
NTI190809.flags = 2;
NTI190809.marker = TMP782;
TMP721[1].kind = 1;
TMP721[1].offset = offsetof(Tnode190813, typ);
TMP721[1].typ = (&NTI190809);
TMP721[1].name = "typ";
TMP727[1] = &TMP721[528];
TMP721[528].kind = 1;
TMP721[528].offset = offsetof(Tnode190813, info);
TMP721[528].typ = (&NTI163338);
TMP721[528].name = "info";
TMP727[2] = &TMP721[529];
NTI190433.size = sizeof(NU8);
NTI190433.kind = 14;
NTI190433.base = 0;
NTI190433.flags = 3;
for (TMP785 = 0; TMP785 < 14; TMP785++) {
TMP721[TMP785+530].kind = 1;
TMP721[TMP785+530].offset = TMP785;
TMP721[TMP785+530].name = TMP784[TMP785];
TMP783[TMP785] = &TMP721[TMP785+530];
}
TMP721[544].len = 14; TMP721[544].kind = 2; TMP721[544].sons = &TMP783[0];
NTI190433.node = &TMP721[544];
NTI190435.size = sizeof(NU16);
NTI190435.kind = 19;
NTI190435.base = (&NTI190433);
NTI190435.flags = 3;
TMP721[545].len = 0; TMP721[545].kind = 0;
NTI190435.node = &TMP721[545];
TMP721[529].kind = 1;
TMP721[529].offset = offsetof(Tnode190813, flags);
TMP721[529].typ = (&NTI190435);
TMP721[529].name = "flags";
TMP727[3] = &TMP721[546];
NTI190029.size = sizeof(NU8);
NTI190029.kind = 14;
NTI190029.base = 0;
NTI190029.flags = 3;
for (TMP788 = 0; TMP788 < 159; TMP788++) {
TMP721[TMP788+547].kind = 1;
TMP721[TMP788+547].offset = TMP788;
TMP721[TMP788+547].name = TMP787[TMP788];
TMP786[TMP788] = &TMP721[TMP788+547];
}
TMP721[706].len = 159; TMP721[706].kind = 2; TMP721[706].sons = &TMP786[0];
NTI190029.node = &TMP721[706];
TMP721[546].kind = 3;
TMP721[546].offset = offsetof(Tnode190813, kind);
TMP721[546].typ = (&NTI190029);
TMP721[546].name = "kind";
TMP721[546].sons = &NimDT_190813_kind[0];
TMP721[546].len = 159;
TMP721[707].kind = 1;
TMP721[707].offset = offsetof(Tnode190813, kindU.S1.intval);
TMP721[707].typ = (&NTI5710);
TMP721[707].name = "intVal";
NimDT_190813_kind[5] = &TMP721[707];
NimDT_190813_kind[6] = &TMP721[707];
NimDT_190813_kind[7] = &TMP721[707];
NimDT_190813_kind[8] = &TMP721[707];
NimDT_190813_kind[9] = &TMP721[707];
NimDT_190813_kind[10] = &TMP721[707];
NimDT_190813_kind[11] = &TMP721[707];
NimDT_190813_kind[12] = &TMP721[707];
NimDT_190813_kind[13] = &TMP721[707];
NimDT_190813_kind[14] = &TMP721[707];
NimDT_190813_kind[15] = &TMP721[707];
TMP721[708].kind = 1;
TMP721[708].offset = offsetof(Tnode190813, kindU.S2.floatval);
TMP721[708].typ = (&NTI5712);
TMP721[708].name = "floatVal";
NimDT_190813_kind[16] = &TMP721[708];
NimDT_190813_kind[17] = &TMP721[708];
NimDT_190813_kind[18] = &TMP721[708];
NimDT_190813_kind[19] = &TMP721[708];
TMP721[709].kind = 1;
TMP721[709].offset = offsetof(Tnode190813, kindU.S3.strval);
TMP721[709].typ = (&NTI149);
TMP721[709].name = "strVal";
NimDT_190813_kind[20] = &TMP721[709];
NimDT_190813_kind[21] = &TMP721[709];
NimDT_190813_kind[22] = &TMP721[709];
TMP721[710].kind = 1;
TMP721[710].offset = offsetof(Tnode190813, kindU.S4.sym);
TMP721[710].typ = (&NTI190811);
TMP721[710].name = "sym";
NimDT_190813_kind[3] = &TMP721[710];
TMP721[711].kind = 1;
TMP721[711].offset = offsetof(Tnode190813, kindU.S5.ident);
TMP721[711].typ = (&NTI167019);
TMP721[711].name = "ident";
NimDT_190813_kind[2] = &TMP721[711];
TMP721[712].kind = 1;
TMP721[712].offset = offsetof(Tnode190813, kindU.S6.sons);
TMP721[712].typ = (&NTI190807);
TMP721[712].name = "sons";
NimDT_190813_kind[159] = &TMP721[712];
TMP727[4] = &TMP721[713];
TMP721[713].kind = 1;
TMP721[713].offset = offsetof(Tnode190813, comment);
TMP721[713].typ = (&NTI149);
TMP721[713].name = "comment";
TMP721[0].len = 5; TMP721[0].kind = 2; TMP721[0].sons = &TMP727[0];
NTI190813.node = &TMP721[0];
NTI190805.size = sizeof(Tnode190813*);
NTI190805.kind = 22;
NTI190805.base = (&NTI190813);
NTI190805.flags = 2;
NTI190805.marker = TMP789;
NTI190861.size = sizeof(Tidtable190861);
NTI190861.kind = 18;
NTI190861.base = 0;
TMP826[0] = &TMP721[715];
TMP721[715].kind = 1;
TMP721[715].offset = offsetof(Tidtable190861, counter);
TMP721[715].typ = (&NTI108);
TMP721[715].name = "counter";
TMP826[1] = &TMP721[716];
NTI190857.size = sizeof(Tidpair190857);
NTI190857.kind = 18;
NTI190857.base = 0;
TMP827[0] = &TMP721[718];
TMP721[718].kind = 1;
TMP721[718].offset = offsetof(Tidpair190857, key);
TMP721[718].typ = (&NTI167017);
TMP721[718].name = "key";
TMP827[1] = &TMP721[719];
TMP721[719].kind = 1;
TMP721[719].offset = offsetof(Tidpair190857, val);
TMP721[719].typ = (&NTI3413);
TMP721[719].name = "val";
TMP721[717].len = 2; TMP721[717].kind = 2; TMP721[717].sons = &TMP827[0];
NTI190857.node = &TMP721[717];
NTI190859.size = sizeof(Tidpairseq190859*);
NTI190859.kind = 24;
NTI190859.base = (&NTI190857);
NTI190859.marker = TMP830;
TMP721[716].kind = 1;
TMP721[716].offset = offsetof(Tidtable190861, data);
TMP721[716].typ = (&NTI190859);
TMP721[716].name = "data";
TMP721[714].len = 2; TMP721[714].kind = 2; TMP721[714].sons = &TMP826[0];
NTI190861.node = &TMP721[714];
NTI190873.size = sizeof(Tnodetable190873);
NTI190873.kind = 18;
NTI190873.base = 0;
NTI190873.flags = 2;
TMP1053[0] = &TMP721[721];
TMP721[721].kind = 1;
TMP721[721].offset = offsetof(Tnodetable190873, counter);
TMP721[721].typ = (&NTI108);
TMP721[721].name = "counter";
TMP1053[1] = &TMP721[722];
NTI190869.size = sizeof(Tnodepair190869);
NTI190869.kind = 18;
NTI190869.base = 0;
NTI190869.flags = 2;
TMP1054[0] = &TMP721[724];
TMP721[724].kind = 1;
TMP721[724].offset = offsetof(Tnodepair190869, h);
TMP721[724].typ = (&NTI131021);
TMP721[724].name = "h";
TMP1054[1] = &TMP721[725];
TMP721[725].kind = 1;
TMP721[725].offset = offsetof(Tnodepair190869, key);
TMP721[725].typ = (&NTI190805);
TMP721[725].name = "key";
TMP1054[2] = &TMP721[726];
TMP721[726].kind = 1;
TMP721[726].offset = offsetof(Tnodepair190869, val);
TMP721[726].typ = (&NTI108);
TMP721[726].name = "val";
TMP721[723].len = 3; TMP721[723].kind = 2; TMP721[723].sons = &TMP1054[0];
NTI190869.node = &TMP721[723];
NTI190871.size = sizeof(Tnodepairseq190871*);
NTI190871.kind = 24;
NTI190871.base = (&NTI190869);
NTI190871.flags = 2;
NTI190871.marker = TMP1055;
TMP721[722].kind = 1;
TMP721[722].offset = offsetof(Tnodetable190873, data);
TMP721[722].typ = (&NTI190871);
TMP721[722].name = "data";
TMP721[720].len = 2; TMP721[720].kind = 2; TMP721[720].sons = &TMP1053[0];
NTI190873.node = &TMP721[720];
NTI384221.size = sizeof(Tnode190813**);
NTI384221.kind = 21;
NTI384221.base = (&NTI190805);
NTI384221.flags = 3;
NTI190867.size = sizeof(Tidnodetable190867);
NTI190867.kind = 18;
NTI190867.base = 0;
TMP3252[0] = &TMP721[728];
TMP721[728].kind = 1;
TMP721[728].offset = offsetof(Tidnodetable190867, counter);
TMP721[728].typ = (&NTI108);
TMP721[728].name = "counter";
TMP3252[1] = &TMP721[729];
NTI190863.size = sizeof(Tidnodepair190863);
NTI190863.kind = 18;
NTI190863.base = 0;
TMP3253[0] = &TMP721[731];
TMP721[731].kind = 1;
TMP721[731].offset = offsetof(Tidnodepair190863, key);
TMP721[731].typ = (&NTI167017);
TMP721[731].name = "key";
TMP3253[1] = &TMP721[732];
TMP721[732].kind = 1;
TMP721[732].offset = offsetof(Tidnodepair190863, val);
TMP721[732].typ = (&NTI190805);
TMP721[732].name = "val";
TMP721[730].len = 2; TMP721[730].kind = 2; TMP721[730].sons = &TMP3253[0];
NTI190863.node = &TMP721[730];
NTI190865.size = sizeof(Tidnodepairseq190865*);
NTI190865.kind = 24;
NTI190865.base = (&NTI190863);
NTI190865.marker = TMP3254;
TMP721[729].kind = 1;
TMP721[729].offset = offsetof(Tidnodetable190867, data);
TMP721[729].typ = (&NTI190865);
TMP721[729].name = "data";
TMP721[727].len = 2; TMP721[727].kind = 2; TMP721[727].sons = &TMP3252[0];
NTI190867.node = &TMP721[727];
}

