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

#include <string.h>
typedef struct tglobals594027 tglobals594027;
typedef struct tpasscontext285005 tpasscontext285005;
typedef struct tsym224846 tsym224846;
typedef struct tjsgen594015 tjsgen594015;
typedef struct TNimObject TNimObject;
typedef struct TNimType TNimType;
typedef struct TNimNode TNimNode;
typedef struct tcell44935 tcell44935;
typedef struct tcellseq44951 tcellseq44951;
typedef struct tgcheap47016 tgcheap47016;
typedef struct tcellset44947 tcellset44947;
typedef struct tpagedesc44943 tpagedesc44943;
typedef struct tmemregion27210 tmemregion27210;
typedef struct tsmallchunk26440 tsmallchunk26440;
typedef struct tllchunk27204 tllchunk27204;
typedef struct tbigchunk26442 tbigchunk26442;
typedef struct tintset26417 tintset26417;
typedef struct ttrunk26413 ttrunk26413;
typedef struct tavlnode27208 tavlnode27208;
typedef struct tgcstat47014 tgcstat47014;
typedef struct trope176009 trope176009;
typedef struct tsymseq224818 tsymseq224818;
typedef struct TGenericSeq TGenericSeq;
typedef struct intset221056 intset221056;
typedef struct ttrunk221052 ttrunk221052;
typedef struct ttrunkseq221054 ttrunkseq221054;
typedef struct trodreader275030 trodreader275030;
typedef struct NimStringDesc NimStringDesc;
typedef struct tnode224816 tnode224816;
typedef struct tlineinfo194539 tlineinfo194539;
typedef struct ttype224852 ttype224852;
typedef struct tident199021 tident199021;
typedef struct tnodeseq224810 tnodeseq224810;
typedef struct tproc594033 tproc594033;
typedef struct TY594071 TY594071;
typedef struct tblock594025 tblock594025;
typedef struct tidobj199015 tidobj199015;
typedef struct ttypeseq224848 ttypeseq224848;
typedef struct tscope224840 tscope224840;
typedef struct TY224947 TY224947;
typedef struct tinstantiation224836 tinstantiation224836;
typedef struct tstrtable224820 tstrtable224820;
typedef struct tloc224830 tloc224830;
typedef struct tlib224834 tlib224834;
typedef struct tcompres594023 tcompres594023;
typedef struct TY84745 TY84745;
typedef struct tbasechunk26438 tbasechunk26438;
typedef struct tfreecell26430 tfreecell26430;
typedef struct TY224936 TY224936;
typedef struct tindex275028 tindex275028;
typedef struct tiitable234274 tiitable234274;
typedef struct tiipairseq234272 tiipairseq234272;
typedef struct tiipair234270 tiipair234270;
typedef struct tidtable224864 tidtable224864;
typedef struct tidpairseq224862 tidpairseq224862;
typedef struct tidpair224860 tidpair224860;
typedef struct memfile273208 memfile273208;
typedef struct tlistentry126022 tlistentry126022;
typedef N_NIMCALL_PTR(void, TY3089) (void* p, NI op);
typedef N_NIMCALL_PTR(void*, TY3094) (void* p);
struct  TNimType  {
NI size;
NU8 kind;
NU8 flags;
TNimType* base;
TNimNode* node;
void* finalizer;
TY3089 marker;
TY3094 deepcopy;
};
struct  TNimObject  {
TNimType* m_type;
};
struct  tpasscontext285005  {
  TNimObject Sup;
NIM_BOOL Fromcache;
};
struct  tjsgen594015  {
  tpasscontext285005 Sup;
tsym224846* Module;
};
struct  TNimNode  {
NU8 kind;
NI offset;
TNimType* typ;
NCSTRING name;
NI len;
TNimNode** sons;
};
struct  tcell44935  {
NI Refcount;
TNimType* Typ;
};
struct  tcellseq44951  {
NI Len;
NI Cap;
tcell44935** D;
};
struct  tcellset44947  {
NI Counter;
NI Max;
tpagedesc44943* Head;
tpagedesc44943** Data;
};
typedef tsmallchunk26440* TY27222[512];
typedef ttrunk26413* ttrunkbuckets26415[256];
struct  tintset26417  {
ttrunkbuckets26415 Data;
};
struct  tmemregion27210  {
NI Minlargeobj;
NI Maxlargeobj;
TY27222 Freesmallchunks;
tllchunk27204* Llmem;
NI Currmem;
NI Maxmem;
NI Freemem;
NI Lastsize;
tbigchunk26442* Freechunkslist;
tintset26417 Chunkstarts;
tavlnode27208* Root;
tavlnode27208* Deleted;
tavlnode27208* Last;
tavlnode27208* Freeavlnodes;
};
struct  tgcstat47014  {
NI Stackscans;
NI Cyclecollections;
NI Maxthreshold;
NI Maxstacksize;
NI Maxstackcells;
NI Cycletablesize;
NI64 Maxpause;
};
struct  tgcheap47016  {
void* Stackbottom;
NI Cyclethreshold;
tcellseq44951 Zct;
tcellseq44951 Decstack;
tcellset44947 Cycleroots;
tcellseq44951 Tempstack;
NI Recgclock;
tmemregion27210 Region;
tgcstat47014 Stat;
};
struct  TGenericSeq  {
NI len;
NI reserved;
};
struct  intset221056  {
NI Counter;
NI Max;
ttrunk221052* Head;
ttrunkseq221054* Data;
};
struct  tglobals594027  {
trope176009* Typeinfo;
trope176009* Code;
tsymseq224818* Forwarded;
intset221056 Generatedsyms;
intset221056 Typeinfogenerated;
};
struct  NimStringDesc  {
  TGenericSeq Sup;
NIM_CHAR data[SEQ_DECL_SIZE];
};
struct  tlineinfo194539  {
NI16 Line;
NI16 Col;
NI32 Fileindex;
};
struct  tnode224816  {
ttype224852* Typ;
tlineinfo194539 Info;
NU16 Flags;
NU8 Kind;
union {
struct {NI64 Intval;
} S1;
struct {NF Floatval;
} S2;
struct {NimStringDesc* Strval;
} S3;
struct {tsym224846* Sym;
} S4;
struct {tident199021* Ident;
} S5;
struct {tnodeseq224810* Sons;
} S6;
} kindU;
NimStringDesc* Comment;
};
struct  tblock594025  {
NI Id;
NIM_BOOL Isloop;
};
struct  tproc594033  {
tnode224816* Procdef;
tsym224846* Prc;
trope176009* Locals;
trope176009* Body;
NU32 Options;
tjsgen594015* Module;
tglobals594027* G;
NIM_BOOL Beforeretneeded;
NU8 Target;
NI Unique;
TY594071* Blocks;
tproc594033* Up;
};
struct  tidobj199015  {
  TNimObject Sup;
NI Id;
};
struct  tstrtable224820  {
NI Counter;
tsymseq224818* Data;
};
struct  tloc224830  {
NU8 K;
NU8 S;
NU8 Flags;
ttype224852* T;
trope176009* R;
trope176009* Heaproot;
};
struct  tsym224846  {
  tidobj199015 Sup;
NU8 Kind;
union {
struct {ttypeseq224848* Typeinstcache;
tscope224840* Typscope;
} S1;
struct {TY224947* Procinstcache;
tscope224840* Scope;
} S2;
struct {TY224947* Usedgenerics;
tstrtable224820 Tab;
} S3;
struct {tsym224846* Guard;
} S4;
} kindU;
NU16 Magic;
ttype224852* Typ;
tident199021* Name;
tlineinfo194539 Info;
tsym224846* Owner;
NU32 Flags;
tnode224816* Ast;
NU32 Options;
NI Position;
NI Offset;
tloc224830 Loc;
tlib224834* Annex;
tnode224816* Constraint;
};
typedef trope176009* TY587896[2];
struct  tident199021  {
  tidobj199015 Sup;
NimStringDesc* S;
tident199021* Next;
NI H;
};
struct  tcompres594023  {
NU8 Kind;
NU8 Typ;
trope176009* Res;
trope176009* Address;
};
struct  ttype224852  {
  tidobj199015 Sup;
NU8 Kind;
NU8 Callconv;
NU32 Flags;
ttypeseq224848* Sons;
tnode224816* N;
tsym224846* Owner;
tsym224846* Sym;
tsym224846* Destructor;
tsym224846* Deepcopy;
NI64 Size;
NI16 Align;
NI16 Locklevel;
tloc224830 Loc;
};
typedef trope176009* TY176515[1];
struct TY84745 {
NimStringDesc* Field0;
NI Field1;
};
typedef trope176009* TY557098[6];
typedef trope176009* TY553018[3];
typedef trope176009* TY556593[5];
typedef NU8 TY516462[20];
typedef NimStringDesc* tmagicfrmt595657[4];
typedef tmagicfrmt595657 tmagicops595659[96];
typedef trope176009* TY552703[1];
typedef trope176009* TY555045[4];
typedef NI TY26420[16];
struct  tpagedesc44943  {
tpagedesc44943* Next;
NI Key;
TY26420 Bits;
};
struct  tbasechunk26438  {
NI Prevsize;
NI Size;
NIM_BOOL Used;
};
struct  tsmallchunk26440  {
  tbasechunk26438 Sup;
tsmallchunk26440* Next;
tsmallchunk26440* Prev;
tfreecell26430* Freelist;
NI Free;
NI Acc;
NF Data;
};
struct  tllchunk27204  {
NI Size;
NI Acc;
tllchunk27204* Next;
};
struct  tbigchunk26442  {
  tbasechunk26438 Sup;
tbigchunk26442* Next;
tbigchunk26442* Prev;
NI Align;
NF Data;
};
struct  ttrunk26413  {
ttrunk26413* Next;
NI Key;
TY26420 Bits;
};
typedef tavlnode27208* TY27214[2];
struct  tavlnode27208  {
TY27214 Link;
NI Key;
NI Upperbound;
NI Level;
};
struct  trope176009  {
  TNimObject Sup;
trope176009* Left;
trope176009* Right;
NI Length;
NimStringDesc* Data;
};
struct  ttrunk221052  {
ttrunk221052* Next;
NI Key;
TY26420 Bits;
};
struct  tiipair234270  {
NI Key;
NI Val;
};
struct  tiitable234274  {
NI Counter;
tiipairseq234272* Data;
};
struct  tindex275028  {
NI Lastidxkey;
NI Lastidxval;
tiitable234274 Tab;
NimStringDesc* R;
NI Offset;
};
struct  tidpair224860  {
tidobj199015* Key;
TNimObject* Val;
};
struct  tidtable224864  {
NI Counter;
tidpairseq224862* Data;
};
struct  memfile273208  {
void* Mem;
NI Size;
int Handle;
};
struct  trodreader275030  {
  TNimObject Sup;
NI Pos;
NCSTRING S;
NU32 Options;
NU8 Reason;
TY224936* Moddeps;
TY224936* Files;
NI Dataidx;
NI Convertersidx;
NI Initidx;
NI Interfidx;
NI Compilerprocsidx;
NI Methodsidx;
NimStringDesc* Filename;
tindex275028 Index;
tindex275028 Imports;
NI Readerindex;
NI Line;
NI Moduleid;
tidtable224864 Syms;
memfile273208 Memfile;
tsymseq224818* Methods;
NimStringDesc* Origfile;
NIM_BOOL Inviewmode;
};
struct  tscope224840  {
NI Depthlevel;
tstrtable224820 Symbols;
tnodeseq224810* Usingsyms;
tscope224840* Parent;
};
struct  tinstantiation224836  {
tsym224846* Sym;
ttypeseq224848* Concretetypes;
TY224936* Usedby;
};
struct  tlistentry126022  {
  TNimObject Sup;
tlistentry126022* Prev;
tlistentry126022* Next;
};
struct  tlib224834  {
  tlistentry126022 Sup;
NU8 Kind;
NIM_BOOL Generated;
NIM_BOOL Isoverriden;
trope176009* Name;
tnode224816* Path;
};
struct  tfreecell26430  {
tfreecell26430* Next;
NI Zerofield;
};
struct tsymseq224818 {
  TGenericSeq Sup;
  tsym224846* data[SEQ_DECL_SIZE];
};
struct ttrunkseq221054 {
  TGenericSeq Sup;
  ttrunk221052* data[SEQ_DECL_SIZE];
};
struct tnodeseq224810 {
  TGenericSeq Sup;
  tnode224816* data[SEQ_DECL_SIZE];
};
struct TY594071 {
  TGenericSeq Sup;
  tblock594025 data[SEQ_DECL_SIZE];
};
struct ttypeseq224848 {
  TGenericSeq Sup;
  ttype224852* data[SEQ_DECL_SIZE];
};
struct TY224947 {
  TGenericSeq Sup;
  tinstantiation224836* data[SEQ_DECL_SIZE];
};
struct TY224936 {
  TGenericSeq Sup;
  NI32 data[SEQ_DECL_SIZE];
};
struct tiipairseq234272 {
  TGenericSeq Sup;
  tiipair234270 data[SEQ_DECL_SIZE];
};
struct tidpairseq224862 {
  TGenericSeq Sup;
  tidpair224860 data[SEQ_DECL_SIZE];
};
N_NIMCALL(tjsgen594015*, newmodule_604957)(tsym224846* module);
N_NIMCALL(void, nimGCvisit)(void* d, NI op);
N_NIMCALL(void, TMP4232)(void* p, NI op);
N_NIMCALL(void*, newObj)(TNimType* typ, NI size);
static N_INLINE(void, asgnRefNoCycle)(void** dest, void* src);
static N_INLINE(tcell44935*, usrtocell_48646)(void* usr);
static N_INLINE(void, rtladdzct_50204)(tcell44935* c);
N_NOINLINE(void, addzct_48617)(tcellseq44951* s, tcell44935* c);
N_NIMCALL(tglobals594027*, newglobals_594084)(void);
N_NIMCALL(void, TMP4234)(void* p, NI op);
static N_INLINE(void, nimGCunrefNoCycle)(void* p);
N_NIMCALL(void*, newSeqRC1)(TNimType* typ, NI len);
N_NIMCALL(void, initintset_221950)(intset221056* Result);
N_NIMCALL(void, internalerror_197006)(NimStringDesc* errmsg);
static N_INLINE(NIM_BOOL, skipcodegen_285083)(tnode224816* n);
N_NIMCALL(void, internalerror_196987)(tlineinfo194539 info, NimStringDesc* errmsg);
N_NIMCALL(tproc594033*, newproc_594207)(tglobals594027* globals, tjsgen594015* module, tnode224816* procdef, NU32 options);
N_NIMCALL(void, TMP4242)(void* p, NI op);
N_NIMCALL(void, TMP4243)(void* p, NI op);
static N_INLINE(void, asgnRef)(void** dest, void* src);
static N_INLINE(void, incref_51025)(tcell44935* c);
static N_INLINE(NIM_BOOL, canbecycleroot_48667)(tcell44935* c);
static N_INLINE(void, rtladdcycleroot_49429)(tcell44935* c);
N_NOINLINE(void, incl_45671)(tcellset44947* s, tcell44935* cell);
static N_INLINE(void, decref_50604)(tcell44935* c);
N_NIMCALL(void, genmodule_605013)(tproc594033* p, tnode224816* n);
N_NIMCALL(void, appf_176115)(trope176009** c, NimStringDesc* frmt, trope176009** args, NI argsLen0);
N_NIMCALL(trope176009*, makejsstring_594344)(NimStringDesc* s);
N_NIMCALL(trope176009*, torope_176076)(NimStringDesc* s);
N_NIMCALL(NimStringDesc*, nsuEscape)(NimStringDesc* s, NimStringDesc* prefix, NimStringDesc* suffix);
static N_INLINE(void, appendString)(NimStringDesc* dest, NimStringDesc* src);
N_NIMCALL(NimStringDesc*, rawNewString)(NI space);
N_NIMCALL(NimStringDesc*, tofilename_196025)(NI32 fileidx);
N_NIMCALL(void, genstmt_595147)(tproc594033* p, tnode224816* n);
N_NIMCALL(void, gen_595138)(tproc594033* p, tnode224816* n, tcompres594023* r);
N_NIMCALL(void, unsureAsgnRef)(void** dest, void* src);
N_NIMCALL(void, gensym_600662)(tproc594033* p, tnode224816* n, tcompres594023* r);
N_NIMCALL(NU8, maptype_594291)(ttype224852* typ);
N_NIMCALL(ttype224852*, skiptypes_229245)(ttype224852* t, NU64 kinds);
static N_INLINE(ttype224852*, lastson_225267)(ttype224852* n);
static N_INLINE(NI, sonslen_225255)(ttype224852* n);
N_NIMCALL(trope176009*, ropef_176107)(NimStringDesc* frmt, trope176009** args, NI argsLen0);
N_NIMCALL(trope176009*, con_176031)(trope176009* a, NimStringDesc* b);
N_NIMCALL(void, genconstant_595161)(tproc594033* p, tsym224846* c);
N_NIMCALL(NIM_BOOL, containsorincl_221916)(intset221056* s, NI key);
N_NIMCALL(void, genvarinit_601901)(tproc594033* p, tsym224846* v, tnode224816* n);
N_NIMCALL(NimStringDesc*, copyString)(NimStringDesc* src);
N_NIMCALL(trope176009*, manglename_594315)(tsym224846* s);
N_NIMCALL(NimStringDesc*, mangle_547763)(NimStringDesc* name);
N_NIMCALL(void, app_176060)(trope176009** a, NimStringDesc* b);
N_NIMCALL(void, app_176052)(trope176009** a, trope176009* b);
N_NIMCALL(trope176009*, torope_176082)(NI64 i);
N_NIMCALL(trope176009*, createvar_601438)(tproc594033* p, ttype224852* typ, NIM_BOOL indirect);
N_NIMCALL(trope176009*, puttoseq_601423)(NimStringDesc* s, NIM_BOOL indirect);
N_NIMCALL(NI64, lengthord_262016)(ttype224852* t);
N_NIMCALL(ttype224852*, elemtype_262656)(ttype224852* t);
N_NIMCALL(void, usemagic_595168)(tproc594033* p, NimStringDesc* name);
N_NIMCALL(tsym224846*, getcompilerproc_281036)(NimStringDesc* name);
N_NIMCALL(NimStringDesc*, HEX24_197126)(TY84745 x_197130);
N_NIMCALL(trope176009*, genproc_595154)(tproc594033* oldproc, tsym224846* prc);
N_NIMCALL(trope176009*, generateheader_599148)(tproc594033* p, ttype224852* typ);
static N_INLINE(NI, sonslen_225249)(tnode224816* n);
static N_INLINE(NIM_BOOL, iscompiletimeonly_272466)(ttype224852* t);
N_NIMCALL(NIM_BOOL, isindirect_601831)(tsym224846* v);
N_NIMCALL(tnode224816*, getbody_278270)(tsym224846* s);
N_NIMCALL(trope176009*, genprocbody_604203)(tproc594033* p, tsym224846* prc);
static N_INLINE(void, appendChar)(NimStringDesc* dest, NIM_CHAR c);
N_NIMCALL(void, globalerror_196934)(tlineinfo194539 info, NU16 msg, NimStringDesc* arg);
N_NIMCALL(void, rawmessage_196733)(NU16 msg, NimStringDesc* arg);
N_NIMCALL(trope176009*, gentypeinfo_594354)(tproc594033* p, ttype224852* typ);
N_NIMCALL(void, prepend_176068)(trope176009** a, trope176009* b);
N_NIMCALL(void, genenuminfo_594877)(tproc594033* p, ttype224852* typ, trope176009* name);
N_NIMCALL(void, genobjectinfo_594724)(tproc594033* p, ttype224852* typ, trope176009* name);
N_NIMCALL(trope176009*, genobjectfields_594358)(tproc594033* p, ttype224852* typ, tnode224816* n);
N_NIMCALL(NI64, getordvalue_262187)(tnode224816* n);
static N_INLINE(tnode224816*, lastson_225261)(tnode224816* n);
N_NIMCALL(void, gentupleinfo_594845)(tproc594033* p, ttype224852* typ, trope176009* name);
N_NIMCALL(trope176009*, gentuplefields_594787)(tproc594033* p, ttype224852* typ);
N_NIMCALL(NI, len_229005)(ttype224852* n);
N_NIMCALL(NimStringDesc*, reprEnum)(NI e_80907, TNimType* typ);
N_NIMCALL(trope176009*, createrecordvaraux_601446)(tproc594033* p, tnode224816* rec, NI* c);
N_NIMCALL(NIM_BOOL, needsnocopy_599474)(tnode224816* y);
N_NIMCALL(TGenericSeq*, incrSeq)(TGenericSeq* seq, NI elemsize);
static N_INLINE(NIM_BOOL, isemptytype_231990)(ttype224852* t);
N_NIMCALL(NimStringDesc*, tostrmaxprecision_233024)(NF f);
N_NIMCALL(void, genmagic_603024)(tproc594033* p, tnode224816* n, tcompres594023* r);
N_NIMCALL(void, genor_595456)(tproc594033* p, tnode224816* a, tnode224816* b, tcompres594023* r);
N_NIMCALL(NIM_BOOL, issimpleexpr_595250)(tnode224816* n);
static N_INLINE(NI, len_225364)(tnode224816* n);
static N_INLINE(NIM_BOOL, isatom_231962)(tnode224816* n);
static N_INLINE(trope176009*, rdloc_594139)(tcompres594023 a);
N_NIMCALL(trope176009*, gettemp_595313)(tproc594033* p);
N_NIMCALL(void, genand_595353)(tproc594033* p, tnode224816* a, tnode224816* b, tcompres594023* r);
N_NIMCALL(void, arith_596306)(tproc594033* p, tnode224816* n, tcompres594023* r, NU16 op);
N_NIMCALL(void, arithaux_596211)(tproc594033* p, tnode224816* n, tcompres594023* r, NU16 op, tmagicops595659 ops);
N_NIMCALL(void, genericAssign)(void* dest, void* src, TNimType* mt);
N_NIMCALL(void, genrepr_602850)(tproc594033* p, tnode224816* n, tcompres594023* r);
N_NIMCALL(void, unaryexpr_596179)(tproc594033* p, tnode224816* n, tcompres594023* r, NimStringDesc* magic, NimStringDesc* frmt);
N_NIMCALL(void, genswap_599643)(tproc594033* p, tnode224816* n);
N_NIMCALL(void, binaryexpr_596058)(tproc594033* p, tnode224816* n, tcompres594023* r, NimStringDesc* magic, NimStringDesc* frmt);
N_NIMCALL(void, genconstrstr_602664)(tproc594033* p, tnode224816* n, tcompres594023* r);
N_NIMCALL(void, gennew_602504)(tproc594033* p, tnode224816* n);
N_NIMCALL(NI64, getsize_262199)(ttype224852* typ);
N_NIMCALL(void, genord_602615)(tproc594033* p, tnode224816* n, tcompres594023* r);
N_NIMCALL(void, localerror_196955)(tlineinfo194539 info, NU16 msg, NimStringDesc* arg);
N_NIMCALL(void, gennewseq_602551)(tproc594033* p, tnode224816* n);
N_NIMCALL(void, genof_602895)(tproc594033* p, tnode224816* n, tcompres594023* r);
N_NIMCALL(void, genreset_602978)(tproc594033* p, tnode224816* n);
N_NIMCALL(void, genecho_601334)(tproc594033* p, tnode224816* n_601337, tcompres594023* r);
N_NIMCALL(tnode224816*, skipconv_272732)(tnode224816* n);
static N_INLINE(tnode224816*, HEX5BHEX5D_225698)(tnode224816* n, NI i);
N_NIMCALL(void, genarg_601096)(tproc594033* p, tnode224816* n, tcompres594023* r);
N_NIMCALL(void, ternaryexpr_596110)(tproc594033* p, tnode224816* n, tcompres594023* r, NimStringDesc* magic, NimStringDesc* frmt);
N_NIMCALL(void, gencall_601187)(tproc594033* p, tnode224816* n, tcompres594023* r);
N_NIMCALL(void, genargs_601124)(tproc594033* p, tnode224816* n, tcompres594023* r);
N_NIMCALL(void, geninfixcall_601213)(tproc594033* p, tnode224816* n, tcompres594023* r);
N_NIMCALL(void, globalerror_196945)(tlineinfo194539 info, NimStringDesc* arg);
N_NIMCALL(void, gensetconstr_603322)(tproc594033* p, tnode224816* n, tcompres594023* r);
N_NIMCALL(void, genarrayconstr_603430)(tproc594033* p, tnode224816* n, tcompres594023* r);
N_NIMCALL(void, gentupleconstr_603491)(tproc594033* p, tnode224816* n, tcompres594023* r);
N_NIMCALL(void, genobjconstr_603589)(tproc594033* p, tnode224816* n, tcompres594023* r);
N_NIMCALL(void, genconv_603749)(tproc594033* p, tnode224816* n, tcompres594023* r);
N_NIMCALL(void, genaddr_600480)(tproc594033* p, tnode224816* n, tcompres594023* r);
N_NIMCALL(void, gencheckedfieldaddr_600180)(tproc594033* p, tnode224816* n, tcompres594023* r);
N_NIMCALL(void, genfieldaddr_599828)(tproc594033* p, tnode224816* n, tcompres594023* r);
N_NIMCALL(NI, getfieldposition_599790)(tnode224816* f);
N_NIMCALL(NimStringDesc*, nimIntToStr)(NI x);
N_NIMCALL(NimStringDesc*, ropetostr_176101)(trope176009* p);
N_NIMCALL(void, genarrayaddr_600232)(tproc594033* p, tnode224816* n, tcompres594023* r);
N_NIMCALL(NI64, firstord_262004)(ttype224852* t);
N_NIMCALL(NIM_BOOL, isconstexpr_260921)(tnode224816* n);
N_NIMCALL(void, genderef_601017)(tproc594033* p, tnode224816* n, tcompres594023* r);
N_NIMCALL(void, genarrayaccess_600411)(tproc594033* p, tnode224816* n, tcompres594023* r);
N_NIMCALL(void, genfieldaccess_600026)(tproc594033* p, tnode224816* n, tcompres594023* r);
N_NIMCALL(void, gencheckedfieldaccess_600206)(tproc594033* p, tnode224816* n, tcompres594023* r);
N_NIMCALL(void, upconv_603822)(tproc594033* p, tnode224816* n, tcompres594023* r);
N_NIMCALL(void, genrangechck_603848)(tproc594033* p, tnode224816* n, tcompres594023* r, NimStringDesc* magic);
N_NIMCALL(void, convstrtocstr_603926)(tproc594033* p, tnode224816* n, tcompres594023* r);
N_NIMCALL(void, convcstrtostr_604024)(tproc594033* p, tnode224816* n, tcompres594023* r);
N_NIMCALL(void, genblock_597973)(tproc594033* p, tnode224816* n, tcompres594023* r);
N_NIMCALL(TGenericSeq*, setLengthSeq)(TGenericSeq* seq, NI elemsize, NI newlen);
N_NIMCALL(void, genif_598921)(tproc594033* p, tnode224816* n, tcompres594023* r);
N_NIMCALL(void, moveinto_596653)(tproc594033* p, tcompres594023* src, tcompres594023 dest);
N_NIMCALL(NimStringDesc*, nsuRepeatChar)(NI count, NIM_CHAR c);
N_NIMCALL(void, genwhilestmt_596506)(tproc594033* p, tnode224816* n);
N_NIMCALL(void, genlinedir_596328)(tproc594033* p, tnode224816* n);
static N_INLINE(NI, tolinenumber_196073)(tlineinfo194539 info);
N_NIMCALL(void, genvarstmt_602046)(tproc594033* p, tnode224816* n);
N_NIMCALL(tnode224816*, lowertupleunpacking_423184)(tnode224816* n, tsym224846* owner);
N_NIMCALL(void, gencasejs_597363)(tproc594033* p, tnode224816* n, tcompres594023* r);
N_NIMCALL(tnode224816*, copynode_225323)(tnode224816* src);
N_NIMCALL(void, gencaselua_597694)(tproc594033* p, tnode224816* n, tcompres594023* r);
N_NIMCALL(void, genreturnstmt_604122)(tproc594033* p, tnode224816* n);
N_NIMCALL(void, genbreakstmt_598159)(tproc594033* p, tnode224816* n);
N_NIMCALL(void, genasgn_599567)(tproc594033* p, tnode224816* n);
N_NIMCALL(void, genasgnaux_599511)(tproc594033* p, tnode224816* x, tnode224816* y, NIM_BOOL nocopyneeded);
N_NIMCALL(void, genfastasgn_599605)(tproc594033* p, tnode224816* n);
N_NIMCALL(void, genasmstmt_598653)(tproc594033* p, tnode224816* n);
N_NIMCALL(void, gentry_596693)(tproc594033* p, tnode224816* n, tcompres594023* r);
N_NIMCALL(void, genraisestmt_597292)(tproc594033* p, tnode224816* n);
N_NIMCALL(tnode224816*, myprocess_605062)(tpasscontext285005* b, tnode224816* n);
N_NIMCALL(trope176009*, wholecode_605094)(tjsgen594015* m);
N_NIMCALL(tnode224816*, generatemethoddispatchers_422508)(void);
N_NIMCALL(trope176009*, con_176024)(trope176009* a, trope176009* b);
N_NIMCALL(NIM_BOOL, nosisAbsolute)(NimStringDesc* path);
N_NIMCALL(NimStringDesc*, HEX2F_116299)(NimStringDesc* head, NimStringDesc* tail);
N_NIMCALL(NimStringDesc*, nosgetCurrentDir)(void);
N_NIMCALL(NimStringDesc*, noschangeFileExt)(NimStringDesc* filename, NimStringDesc* ext);
N_NIMCALL(NimStringDesc*, completecfilepath_201855)(NimStringDesc* cfile, NIM_BOOL createsubdir);
N_NIMCALL(NIM_BOOL, writeropeifnotequal_176094)(trope176009* r, NimStringDesc* filename);
N_NIMCALL(trope176009*, genheader_605000)(void);
STRING_LITERAL(TMP4235, "symbol files are not possible with the JS code generator", 56);
STRING_LITERAL(TMP4236, "myProcess", 9);
STRING_LITERAL(TMP4244, "var F = {procname:$1,prev:framePtr,filename:$2,line:0};$nframeP"
"tr = F;$n", 72);
STRING_LITERAL(TMP4245, "\"", 1);
STRING_LITERAL(TMP4246, "module ", 7);
STRING_LITERAL(TMP4247, "symbol has no generated name: ", 30);
STRING_LITERAL(TMP4248, "$1[0]", 5);
STRING_LITERAL(TMP4249, "$1[1]", 5);
STRING_LITERAL(TMP4250, "_Idx", 4);
STRING_LITERAL(TMP4251, "var $1 = $2;$n", 14);
STRING_LITERAL(TMP4252, "local $1 = $2;$n", 16);
STRING_LITERAL(TMP4253, "_", 1);
STRING_LITERAL(TMP4254, "[$1]", 4);
STRING_LITERAL(TMP4255, "0", 1);
STRING_LITERAL(TMP4256, "0.0", 3);
STRING_LITERAL(TMP4257, "{}", 2);
STRING_LITERAL(TMP4258, "false", 5);
STRING_LITERAL(TMP4260, "compiler/jsgen.nim", 18);
NIM_CONST TY84745 TMP4259 = {((NimStringDesc*) &TMP4260),
179}
;
STRING_LITERAL(TMP4261, ", ", 2);
STRING_LITERAL(TMP4262, "var $# = $#;$n", 14);
STRING_LITERAL(TMP4263, "local $# = $#;$n", 16);
STRING_LITERAL(TMP4264, "return $#;$n", 12);
STRING_LITERAL(TMP4265, "function $#($#) {$n$#$#$#$#}$n", 30);
STRING_LITERAL(TMP4266, "function $#($#) $n$#$#$#$#$nend$n", 33);
STRING_LITERAL(TMP4267, "var F={procname:$1,prev:framePtr,filename:$2,line:0};$n", 55);
STRING_LITERAL(TMP4268, "local F={procname=$#,prev=framePtr,filename=$#,line=0};$n", 57);
STRING_LITERAL(TMP4269, "framePtr = F;$n", 15);
STRING_LITERAL(TMP4270, "BeforeRet: do {$n$1} while (false); $n", 38);
STRING_LITERAL(TMP4271, "$#;::BeforeRet::$n", 18);
STRING_LITERAL(TMP4272, "try {$n$1} catch (e) {$n alert(\"Unhandled exception:\\n\" + e.mes"
"sage + \"\\n\"$n}", 77);
STRING_LITERAL(TMP4273, "framePtr = framePtr.prev;", 25);
STRING_LITERAL(TMP4274, "arrayConstr", 11);
STRING_LITERAL(TMP4275, "nimCopy", 7);
STRING_LITERAL(TMP4276, "arrayConstr($1, $2, $3)", 23);
STRING_LITERAL(TMP4277, "NTI$1", 5);
STRING_LITERAL(TMP4278, "var $1 = {size: 0,kind: $2,base: null,node: null,finalizer: nul"
"l};$n", 68);
STRING_LITERAL(TMP4279, "$1.base = $2;$n", 15);
STRING_LITERAL(TMP4280, "genEnumInfo", 11);
STRING_LITERAL(TMP4281, "{kind: 1, offset: $1, typ: $2, name: $3, len: 0, sons: null}", 60);
STRING_LITERAL(TMP4282, "var NNI$1 = {kind: 2, offset: 0, typ: null, name: null, len: $2"
", sons: [$3]};$n", 79);
STRING_LITERAL(TMP4283, "var $1 = {size: 0, kind: $2, base: null, node: null, finalizer:"
" null};$n", 72);
STRING_LITERAL(TMP4284, "$1.node = NNI$2;$n", 18);
STRING_LITERAL(TMP4285, "var NNI$1 = $2;$n", 17);
STRING_LITERAL(TMP4286, "{kind: 2, len: $1, offset: 0, typ: null, name: null, sons: [$2]"
"}", 64);
STRING_LITERAL(TMP4287, "{kind: 1, offset: \"$1\", len: 0, typ: $2, name: $3, sons: null}", 62);
STRING_LITERAL(TMP4288, "genObjectFields", 15);
STRING_LITERAL(TMP4289, "genObjectFields; nkOfBranch broken", 34);
STRING_LITERAL(TMP4290, "[$1, $2]", 8);
STRING_LITERAL(TMP4291, "genObjectFields(nkRecCase)", 26);
STRING_LITERAL(TMP4292, "[SetConstr($1), $2]", 19);
STRING_LITERAL(TMP4293, "{kind: 3, offset: \"$1\", len: $3, typ: $2, name: $4, sons: [$5]}", 63);
STRING_LITERAL(TMP4294, "{kind: 1, offset: \"Field$1\", len: 0, typ: $2, name: \"Field$1\", "
"sons: null}", 74);
STRING_LITERAL(TMP4295, "genTypeInfo(", 12);
STRING_LITERAL(TMP4296, "[", 1);
STRING_LITERAL(TMP4297, "]", 1);
STRING_LITERAL(TMP4298, "{", 1);
STRING_LITERAL(TMP4299, "Field$1: $2", 11);
STRING_LITERAL(TMP4300, "Field$# = $#", 12);
STRING_LITERAL(TMP4301, "}", 1);
STRING_LITERAL(TMP4302, "m_type: $1", 10);
STRING_LITERAL(TMP4303, "m_type = $#", 11);
STRING_LITERAL(TMP4304, ": ", 2);
STRING_LITERAL(TMP4305, "createRecordVarAux", 18);
STRING_LITERAL(TMP4306, "[null, 0]", 9);
STRING_LITERAL(TMP4307, "{nil, 0}", 8);
STRING_LITERAL(TMP4308, "null", 4);
STRING_LITERAL(TMP4309, "nil", 3);
STRING_LITERAL(TMP4310, "createVar: ", 11);
static NIM_CONST TY516462 TMP4311 = {
0xE0, 0x07, 0x77, 0xFC, 0xE1, 0x00, 0x00, 0x00,
0x80, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00}
;
STRING_LITERAL(TMP4312, "nimCopy($1, $2)", 15);
STRING_LITERAL(TMP4313, "genVarInit", 10);
STRING_LITERAL(TMP4314, "var $1 = [$2, $3];$n", 20);
STRING_LITERAL(TMP4315, "local $1 = {$2, $3};$n", 22);
STRING_LITERAL(TMP4316, "var $1 = $2; var $1_Idx = $3;$n", 31);
STRING_LITERAL(TMP4317, "local $1 = $2; local $1_Idx = $3;$n", 35);
STRING_LITERAL(TMP4318, "var $1 = [$2];$n", 16);
STRING_LITERAL(TMP4319, "local $1 = {$2};$n", 18);
STRING_LITERAL(TMP4320, "null", 4);
STRING_LITERAL(TMP4321, "nil", 3);
STRING_LITERAL(TMP4322, "0", 1);
STRING_LITERAL(TMP4323, "cstrToNimstr", 12);
STRING_LITERAL(TMP4324, "cstrToNimstr($1)", 16);
STRING_LITERAL(TMP4325, "NaN", 3);
STRING_LITERAL(TMP4326, "0.0", 3);
STRING_LITERAL(TMP4327, "Infinity", 8);
STRING_LITERAL(TMP4328, "-Infinity", 9);
STRING_LITERAL(TMP4329, "($1 || $2)", 10);
STRING_LITERAL(TMP4330, "($1 or $2)", 10);
STRING_LITERAL(TMP4331, "Tmp$1", 5);
STRING_LITERAL(TMP4332, "var $1;$n", 9);
STRING_LITERAL(TMP4333, "local $1;$n", 11);
STRING_LITERAL(TMP4334, "if ($1) $2 = true; else {", 25);
STRING_LITERAL(TMP4335, "if $1 then $2 = true; else", 26);
STRING_LITERAL(TMP4336, "$2 = $1; }", 10);
STRING_LITERAL(TMP4337, "$2 = $1 end", 11);
STRING_LITERAL(TMP4338, "($1 && $2)", 10);
STRING_LITERAL(TMP4339, "($1 and $2)", 11);
STRING_LITERAL(TMP4340, "if (!$1) $2 = false; else {", 27);
STRING_LITERAL(TMP4341, "if not $1 then $2 = false; else", 31);
STRING_LITERAL(TMP4342, "addInt", 6);
STRING_LITERAL(TMP4343, "", 0);
STRING_LITERAL(TMP4344, "addInt($1, $2)", 14);
STRING_LITERAL(TMP4345, "($1 + $2)", 9);
STRING_LITERAL(TMP4346, "subInt", 6);
STRING_LITERAL(TMP4347, "subInt($1, $2)", 14);
STRING_LITERAL(TMP4348, "($1 - $2)", 9);
STRING_LITERAL(TMP4349, "mulInt", 6);
STRING_LITERAL(TMP4350, "mulInt($1, $2)", 14);
STRING_LITERAL(TMP4351, "($1 * $2)", 9);
STRING_LITERAL(TMP4352, "divInt", 6);
STRING_LITERAL(TMP4353, "divInt($1, $2)", 14);
STRING_LITERAL(TMP4354, "Math.floor($1 / $2)", 19);
STRING_LITERAL(TMP4355, "modInt", 6);
STRING_LITERAL(TMP4356, "modInt($1, $2)", 14);
STRING_LITERAL(TMP4357, "Math.floor($1 % $2)", 19);
STRING_LITERAL(TMP4358, "addInt64", 8);
STRING_LITERAL(TMP4359, "addInt64($1, $2)", 16);
STRING_LITERAL(TMP4360, "subInt64", 8);
STRING_LITERAL(TMP4361, "subInt64($1, $2)", 16);
STRING_LITERAL(TMP4362, "mulInt64", 8);
STRING_LITERAL(TMP4363, "mulInt64($1, $2)", 16);
STRING_LITERAL(TMP4364, "divInt64", 8);
STRING_LITERAL(TMP4365, "divInt64($1, $2)", 16);
STRING_LITERAL(TMP4366, "modInt64", 8);
STRING_LITERAL(TMP4367, "modInt64($1, $2)", 16);
STRING_LITERAL(TMP4368, "($1 / $2)", 9);
STRING_LITERAL(TMP4369, "($1 >>> $2)", 11);
STRING_LITERAL(TMP4370, "($1 << $2)", 10);
STRING_LITERAL(TMP4371, "($1 & $2)", 9);
STRING_LITERAL(TMP4372, "($1 | $2)", 9);
STRING_LITERAL(TMP4373, "($1 ^ $2)", 9);
STRING_LITERAL(TMP4374, "nimMin", 6);
STRING_LITERAL(TMP4375, "nimMin($1, $2)", 14);
STRING_LITERAL(TMP4376, "nimMax", 6);
STRING_LITERAL(TMP4377, "nimMax($1, $2)", 14);
STRING_LITERAL(TMP4378, "addU", 4);
STRING_LITERAL(TMP4379, "addU($1, $2)", 12);
STRING_LITERAL(TMP4380, "subU", 4);
STRING_LITERAL(TMP4381, "subU($1, $2)", 12);
STRING_LITERAL(TMP4382, "mulU", 4);
STRING_LITERAL(TMP4383, "mulU($1, $2)", 12);
STRING_LITERAL(TMP4384, "divU", 4);
STRING_LITERAL(TMP4385, "divU($1, $2)", 12);
STRING_LITERAL(TMP4386, "modU", 4);
STRING_LITERAL(TMP4387, "modU($1, $2)", 12);
STRING_LITERAL(TMP4388, "($1 == $2)", 10);
STRING_LITERAL(TMP4389, "($1 <= $2)", 10);
STRING_LITERAL(TMP4390, "($1 < $2)", 9);
STRING_LITERAL(TMP4391, "leU", 3);
STRING_LITERAL(TMP4392, "leU($1, $2)", 11);
STRING_LITERAL(TMP4393, "ltU", 3);
STRING_LITERAL(TMP4394, "ltU($1, $2)", 11);
STRING_LITERAL(TMP4395, "leU64", 5);
STRING_LITERAL(TMP4396, "leU64($1, $2)", 13);
STRING_LITERAL(TMP4397, "ltU64", 5);
STRING_LITERAL(TMP4398, "ltU64($1, $2)", 13);
STRING_LITERAL(TMP4399, "($1 != $2)", 10);
STRING_LITERAL(TMP4400, "negInt", 6);
STRING_LITERAL(TMP4401, "negInt($1)", 10);
STRING_LITERAL(TMP4402, "-($1)", 5);
STRING_LITERAL(TMP4403, "negInt64", 8);
STRING_LITERAL(TMP4404, "negInt64($1)", 12);
STRING_LITERAL(TMP4405, "absInt", 6);
STRING_LITERAL(TMP4406, "absInt($1)", 10);
STRING_LITERAL(TMP4407, "Math.abs($1)", 12);
STRING_LITERAL(TMP4408, "absInt64", 8);
STRING_LITERAL(TMP4409, "absInt64($1)", 12);
STRING_LITERAL(TMP4410, "!($1)", 5);
STRING_LITERAL(TMP4411, "+($1)", 5);
STRING_LITERAL(TMP4412, "~($1)", 5);
STRING_LITERAL(TMP4413, "Ze8ToI", 6);
STRING_LITERAL(TMP4414, "Ze8ToI($1)", 10);
STRING_LITERAL(TMP4415, "Ze8ToI64", 8);
STRING_LITERAL(TMP4416, "Ze8ToI64($1)", 12);
STRING_LITERAL(TMP4417, "Ze16ToI", 7);
STRING_LITERAL(TMP4418, "Ze16ToI($1)", 11);
STRING_LITERAL(TMP4419, "Ze16ToI64", 9);
STRING_LITERAL(TMP4420, "Ze16ToI64($1)", 13);
STRING_LITERAL(TMP4421, "Ze32ToI64", 9);
STRING_LITERAL(TMP4422, "Ze32ToI64($1)", 13);
STRING_LITERAL(TMP4423, "ZeIToI64", 8);
STRING_LITERAL(TMP4424, "ZeIToI64($1)", 12);
STRING_LITERAL(TMP4425, "toU8", 4);
STRING_LITERAL(TMP4426, "toU8($1)", 8);
STRING_LITERAL(TMP4427, "toU16", 5);
STRING_LITERAL(TMP4428, "toU16($1)", 9);
STRING_LITERAL(TMP4429, "toU32", 5);
STRING_LITERAL(TMP4430, "toU32($1)", 9);
STRING_LITERAL(TMP4431, "$1", 2);
STRING_LITERAL(TMP4432, "Math.floor($1)", 14);
STRING_LITERAL(TMP4433, "nimCharToStr", 12);
STRING_LITERAL(TMP4434, "nimCharToStr($1)", 16);
STRING_LITERAL(TMP4435, "nimBoolToStr", 12);
STRING_LITERAL(TMP4436, "nimBoolToStr($1)", 16);
STRING_LITERAL(TMP4437, "cstrToNimstr(($1)+\"\")", 21);
NIM_CONST tmagicops595659 jsops_595665 = {{((NimStringDesc*) &TMP4342),
((NimStringDesc*) &TMP4343),
((NimStringDesc*) &TMP4344),
((NimStringDesc*) &TMP4345)}
,
{((NimStringDesc*) &TMP4346),
((NimStringDesc*) &TMP4343),
((NimStringDesc*) &TMP4347),
((NimStringDesc*) &TMP4348)}
,
{((NimStringDesc*) &TMP4349),
((NimStringDesc*) &TMP4343),
((NimStringDesc*) &TMP4350),
((NimStringDesc*) &TMP4351)}
,
{((NimStringDesc*) &TMP4352),
((NimStringDesc*) &TMP4343),
((NimStringDesc*) &TMP4353),
((NimStringDesc*) &TMP4354)}
,
{((NimStringDesc*) &TMP4355),
((NimStringDesc*) &TMP4343),
((NimStringDesc*) &TMP4356),
((NimStringDesc*) &TMP4357)}
,
{((NimStringDesc*) &TMP4358),
((NimStringDesc*) &TMP4343),
((NimStringDesc*) &TMP4359),
((NimStringDesc*) &TMP4345)}
,
{((NimStringDesc*) &TMP4360),
((NimStringDesc*) &TMP4343),
((NimStringDesc*) &TMP4361),
((NimStringDesc*) &TMP4348)}
,
{((NimStringDesc*) &TMP4362),
((NimStringDesc*) &TMP4343),
((NimStringDesc*) &TMP4363),
((NimStringDesc*) &TMP4351)}
,
{((NimStringDesc*) &TMP4364),
((NimStringDesc*) &TMP4343),
((NimStringDesc*) &TMP4365),
((NimStringDesc*) &TMP4354)}
,
{((NimStringDesc*) &TMP4366),
((NimStringDesc*) &TMP4343),
((NimStringDesc*) &TMP4367),
((NimStringDesc*) &TMP4357)}
,
{((NimStringDesc*) &TMP4343),
((NimStringDesc*) &TMP4343),
((NimStringDesc*) &TMP4345),
((NimStringDesc*) &TMP4345)}
,
{((NimStringDesc*) &TMP4343),
((NimStringDesc*) &TMP4343),
((NimStringDesc*) &TMP4348),
((NimStringDesc*) &TMP4348)}
,
{((NimStringDesc*) &TMP4343),
((NimStringDesc*) &TMP4343),
((NimStringDesc*) &TMP4351),
((NimStringDesc*) &TMP4351)}
,
{((NimStringDesc*) &TMP4343),
((NimStringDesc*) &TMP4343),
((NimStringDesc*) &TMP4368),
((NimStringDesc*) &TMP4368)}
,
{((NimStringDesc*) &TMP4343),
((NimStringDesc*) &TMP4343),
((NimStringDesc*) &TMP4369),
((NimStringDesc*) &TMP4369)}
,
{((NimStringDesc*) &TMP4343),
((NimStringDesc*) &TMP4343),
((NimStringDesc*) &TMP4370),
((NimStringDesc*) &TMP4370)}
,
{((NimStringDesc*) &TMP4343),
((NimStringDesc*) &TMP4343),
((NimStringDesc*) &TMP4371),
((NimStringDesc*) &TMP4371)}
,
{((NimStringDesc*) &TMP4343),
((NimStringDesc*) &TMP4343),
((NimStringDesc*) &TMP4372),
((NimStringDesc*) &TMP4372)}
,
{((NimStringDesc*) &TMP4343),
((NimStringDesc*) &TMP4343),
((NimStringDesc*) &TMP4373),
((NimStringDesc*) &TMP4373)}
,
{((NimStringDesc*) &TMP4374),
((NimStringDesc*) &TMP4374),
((NimStringDesc*) &TMP4375),
((NimStringDesc*) &TMP4375)}
,
{((NimStringDesc*) &TMP4376),
((NimStringDesc*) &TMP4376),
((NimStringDesc*) &TMP4377),
((NimStringDesc*) &TMP4377)}
,
{((NimStringDesc*) &TMP4343),
((NimStringDesc*) &TMP4343),
((NimStringDesc*) &TMP4369),
((NimStringDesc*) &TMP4369)}
,
{((NimStringDesc*) &TMP4343),
((NimStringDesc*) &TMP4343),
((NimStringDesc*) &TMP4370),
((NimStringDesc*) &TMP4370)}
,
{((NimStringDesc*) &TMP4343),
((NimStringDesc*) &TMP4343),
((NimStringDesc*) &TMP4371),
((NimStringDesc*) &TMP4371)}
,
{((NimStringDesc*) &TMP4343),
((NimStringDesc*) &TMP4343),
((NimStringDesc*) &TMP4372),
((NimStringDesc*) &TMP4372)}
,
{((NimStringDesc*) &TMP4343),
((NimStringDesc*) &TMP4343),
((NimStringDesc*) &TMP4373),
((NimStringDesc*) &TMP4373)}
,
{((NimStringDesc*) &TMP4374),
((NimStringDesc*) &TMP4374),
((NimStringDesc*) &TMP4375),
((NimStringDesc*) &TMP4375)}
,
{((NimStringDesc*) &TMP4376),
((NimStringDesc*) &TMP4376),
((NimStringDesc*) &TMP4377),
((NimStringDesc*) &TMP4377)}
,
{((NimStringDesc*) &TMP4374),
((NimStringDesc*) &TMP4374),
((NimStringDesc*) &TMP4375),
((NimStringDesc*) &TMP4375)}
,
{((NimStringDesc*) &TMP4376),
((NimStringDesc*) &TMP4376),
((NimStringDesc*) &TMP4377),
((NimStringDesc*) &TMP4377)}
,
{((NimStringDesc*) &TMP4378),
((NimStringDesc*) &TMP4378),
((NimStringDesc*) &TMP4379),
((NimStringDesc*) &TMP4379)}
,
{((NimStringDesc*) &TMP4380),
((NimStringDesc*) &TMP4380),
((NimStringDesc*) &TMP4381),
((NimStringDesc*) &TMP4381)}
,
{((NimStringDesc*) &TMP4382),
((NimStringDesc*) &TMP4382),
((NimStringDesc*) &TMP4383),
((NimStringDesc*) &TMP4383)}
,
{((NimStringDesc*) &TMP4384),
((NimStringDesc*) &TMP4384),
((NimStringDesc*) &TMP4385),
((NimStringDesc*) &TMP4385)}
,
{((NimStringDesc*) &TMP4386),
((NimStringDesc*) &TMP4386),
((NimStringDesc*) &TMP4387),
((NimStringDesc*) &TMP4387)}
,
{((NimStringDesc*) &TMP4343),
((NimStringDesc*) &TMP4343),
((NimStringDesc*) &TMP4388),
((NimStringDesc*) &TMP4388)}
,
{((NimStringDesc*) &TMP4343),
((NimStringDesc*) &TMP4343),
((NimStringDesc*) &TMP4389),
((NimStringDesc*) &TMP4389)}
,
{((NimStringDesc*) &TMP4343),
((NimStringDesc*) &TMP4343),
((NimStringDesc*) &TMP4390),
((NimStringDesc*) &TMP4390)}
,
{((NimStringDesc*) &TMP4343),
((NimStringDesc*) &TMP4343),
((NimStringDesc*) &TMP4388),
((NimStringDesc*) &TMP4388)}
,
{((NimStringDesc*) &TMP4343),
((NimStringDesc*) &TMP4343),
((NimStringDesc*) &TMP4389),
((NimStringDesc*) &TMP4389)}
,
{((NimStringDesc*) &TMP4343),
((NimStringDesc*) &TMP4343),
((NimStringDesc*) &TMP4390),
((NimStringDesc*) &TMP4390)}
,
{((NimStringDesc*) &TMP4343),
((NimStringDesc*) &TMP4343),
((NimStringDesc*) &TMP4388),
((NimStringDesc*) &TMP4388)}
,
{((NimStringDesc*) &TMP4343),
((NimStringDesc*) &TMP4343),
((NimStringDesc*) &TMP4389),
((NimStringDesc*) &TMP4389)}
,
{((NimStringDesc*) &TMP4343),
((NimStringDesc*) &TMP4343),
((NimStringDesc*) &TMP4390),
((NimStringDesc*) &TMP4390)}
,
{((NimStringDesc*) &TMP4391),
((NimStringDesc*) &TMP4391),
((NimStringDesc*) &TMP4392),
((NimStringDesc*) &TMP4392)}
,
{((NimStringDesc*) &TMP4393),
((NimStringDesc*) &TMP4393),
((NimStringDesc*) &TMP4394),
((NimStringDesc*) &TMP4394)}
,
{((NimStringDesc*) &TMP4395),
((NimStringDesc*) &TMP4395),
((NimStringDesc*) &TMP4396),
((NimStringDesc*) &TMP4396)}
,
{((NimStringDesc*) &TMP4397),
((NimStringDesc*) &TMP4397),
((NimStringDesc*) &TMP4398),
((NimStringDesc*) &TMP4398)}
,
{((NimStringDesc*) &TMP4343),
((NimStringDesc*) &TMP4343),
((NimStringDesc*) &TMP4388),
((NimStringDesc*) &TMP4388)}
,
{((NimStringDesc*) &TMP4343),
((NimStringDesc*) &TMP4343),
((NimStringDesc*) &TMP4389),
((NimStringDesc*) &TMP4389)}
,
{((NimStringDesc*) &TMP4343),
((NimStringDesc*) &TMP4343),
((NimStringDesc*) &TMP4390),
((NimStringDesc*) &TMP4390)}
,
{((NimStringDesc*) &TMP4343),
((NimStringDesc*) &TMP4343),
((NimStringDesc*) &TMP4388),
((NimStringDesc*) &TMP4388)}
,
{((NimStringDesc*) &TMP4343),
((NimStringDesc*) &TMP4343),
((NimStringDesc*) &TMP4389),
((NimStringDesc*) &TMP4389)}
,
{((NimStringDesc*) &TMP4343),
((NimStringDesc*) &TMP4343),
((NimStringDesc*) &TMP4390),
((NimStringDesc*) &TMP4390)}
,
{((NimStringDesc*) &TMP4343),
((NimStringDesc*) &TMP4343),
((NimStringDesc*) &TMP4388),
((NimStringDesc*) &TMP4388)}
,
{((NimStringDesc*) &TMP4343),
((NimStringDesc*) &TMP4343),
((NimStringDesc*) &TMP4389),
((NimStringDesc*) &TMP4389)}
,
{((NimStringDesc*) &TMP4343),
((NimStringDesc*) &TMP4343),
((NimStringDesc*) &TMP4390),
((NimStringDesc*) &TMP4390)}
,
{((NimStringDesc*) &TMP4343),
((NimStringDesc*) &TMP4343),
((NimStringDesc*) &TMP4388),
((NimStringDesc*) &TMP4388)}
,
{((NimStringDesc*) &TMP4343),
((NimStringDesc*) &TMP4343),
((NimStringDesc*) &TMP4388),
((NimStringDesc*) &TMP4388)}
,
{((NimStringDesc*) &TMP4343),
((NimStringDesc*) &TMP4343),
((NimStringDesc*) &TMP4389),
((NimStringDesc*) &TMP4389)}
,
{((NimStringDesc*) &TMP4343),
((NimStringDesc*) &TMP4343),
((NimStringDesc*) &TMP4390),
((NimStringDesc*) &TMP4390)}
,
{((NimStringDesc*) &TMP4343),
((NimStringDesc*) &TMP4343),
((NimStringDesc*) &TMP4388),
((NimStringDesc*) &TMP4388)}
,
{((NimStringDesc*) &TMP4343),
((NimStringDesc*) &TMP4343),
((NimStringDesc*) &TMP4399),
((NimStringDesc*) &TMP4399)}
,
{((NimStringDesc*) &TMP4343),
((NimStringDesc*) &TMP4343),
((NimStringDesc*) &TMP4388),
((NimStringDesc*) &TMP4388)}
,
{((NimStringDesc*) &TMP4400),
((NimStringDesc*) &TMP4343),
((NimStringDesc*) &TMP4401),
((NimStringDesc*) &TMP4402)}
,
{((NimStringDesc*) &TMP4403),
((NimStringDesc*) &TMP4343),
((NimStringDesc*) &TMP4404),
((NimStringDesc*) &TMP4402)}
,
{((NimStringDesc*) &TMP4405),
((NimStringDesc*) &TMP4343),
((NimStringDesc*) &TMP4406),
((NimStringDesc*) &TMP4407)}
,
{((NimStringDesc*) &TMP4408),
((NimStringDesc*) &TMP4343),
((NimStringDesc*) &TMP4409),
((NimStringDesc*) &TMP4407)}
,
{((NimStringDesc*) &TMP4343),
((NimStringDesc*) &TMP4343),
((NimStringDesc*) &TMP4410),
((NimStringDesc*) &TMP4410)}
,
{((NimStringDesc*) &TMP4343),
((NimStringDesc*) &TMP4343),
((NimStringDesc*) &TMP4411),
((NimStringDesc*) &TMP4411)}
,
{((NimStringDesc*) &TMP4343),
((NimStringDesc*) &TMP4343),
((NimStringDesc*) &TMP4412),
((NimStringDesc*) &TMP4412)}
,
{((NimStringDesc*) &TMP4343),
((NimStringDesc*) &TMP4343),
((NimStringDesc*) &TMP4411),
((NimStringDesc*) &TMP4411)}
,
{((NimStringDesc*) &TMP4343),
((NimStringDesc*) &TMP4343),
((NimStringDesc*) &TMP4412),
((NimStringDesc*) &TMP4412)}
,
{((NimStringDesc*) &TMP4343),
((NimStringDesc*) &TMP4343),
((NimStringDesc*) &TMP4411),
((NimStringDesc*) &TMP4411)}
,
{((NimStringDesc*) &TMP4343),
((NimStringDesc*) &TMP4343),
((NimStringDesc*) &TMP4402),
((NimStringDesc*) &TMP4402)}
,
{((NimStringDesc*) &TMP4343),
((NimStringDesc*) &TMP4343),
((NimStringDesc*) &TMP4407),
((NimStringDesc*) &TMP4407)}
,
{((NimStringDesc*) &TMP4413),
((NimStringDesc*) &TMP4413),
((NimStringDesc*) &TMP4414),
((NimStringDesc*) &TMP4414)}
,
{((NimStringDesc*) &TMP4415),
((NimStringDesc*) &TMP4415),
((NimStringDesc*) &TMP4416),
((NimStringDesc*) &TMP4416)}
,
{((NimStringDesc*) &TMP4417),
((NimStringDesc*) &TMP4417),
((NimStringDesc*) &TMP4418),
((NimStringDesc*) &TMP4418)}
,
{((NimStringDesc*) &TMP4419),
((NimStringDesc*) &TMP4419),
((NimStringDesc*) &TMP4420),
((NimStringDesc*) &TMP4420)}
,
{((NimStringDesc*) &TMP4421),
((NimStringDesc*) &TMP4421),
((NimStringDesc*) &TMP4422),
((NimStringDesc*) &TMP4422)}
,
{((NimStringDesc*) &TMP4423),
((NimStringDesc*) &TMP4423),
((NimStringDesc*) &TMP4424),
((NimStringDesc*) &TMP4424)}
,
{((NimStringDesc*) &TMP4425),
((NimStringDesc*) &TMP4425),
((NimStringDesc*) &TMP4426),
((NimStringDesc*) &TMP4426)}
,
{((NimStringDesc*) &TMP4427),
((NimStringDesc*) &TMP4427),
((NimStringDesc*) &TMP4428),
((NimStringDesc*) &TMP4428)}
,
{((NimStringDesc*) &TMP4429),
((NimStringDesc*) &TMP4429),
((NimStringDesc*) &TMP4430),
((NimStringDesc*) &TMP4430)}
,
{((NimStringDesc*) &TMP4343),
((NimStringDesc*) &TMP4343),
((NimStringDesc*) &TMP4431),
((NimStringDesc*) &TMP4431)}
,
{((NimStringDesc*) &TMP4343),
((NimStringDesc*) &TMP4343),
((NimStringDesc*) &TMP4431),
((NimStringDesc*) &TMP4431)}
,
{((NimStringDesc*) &TMP4343),
((NimStringDesc*) &TMP4343),
((NimStringDesc*) &TMP4432),
((NimStringDesc*) &TMP4432)}
,
{((NimStringDesc*) &TMP4343),
((NimStringDesc*) &TMP4343),
((NimStringDesc*) &TMP4432),
((NimStringDesc*) &TMP4432)}
,
{((NimStringDesc*) &TMP4433),
((NimStringDesc*) &TMP4433),
((NimStringDesc*) &TMP4434),
((NimStringDesc*) &TMP4434)}
,
{((NimStringDesc*) &TMP4435),
((NimStringDesc*) &TMP4435),
((NimStringDesc*) &TMP4436),
((NimStringDesc*) &TMP4436)}
,
{((NimStringDesc*) &TMP4323),
((NimStringDesc*) &TMP4323),
((NimStringDesc*) &TMP4437),
((NimStringDesc*) &TMP4437)}
,
{((NimStringDesc*) &TMP4323),
((NimStringDesc*) &TMP4323),
((NimStringDesc*) &TMP4437),
((NimStringDesc*) &TMP4437)}
,
{((NimStringDesc*) &TMP4323),
((NimStringDesc*) &TMP4323),
((NimStringDesc*) &TMP4437),
((NimStringDesc*) &TMP4437)}
,
{((NimStringDesc*) &TMP4323),
((NimStringDesc*) &TMP4323),
((NimStringDesc*) &TMP4324),
((NimStringDesc*) &TMP4324)}
,
{((NimStringDesc*) &TMP4343),
((NimStringDesc*) &TMP4343),
((NimStringDesc*) &TMP4431),
((NimStringDesc*) &TMP4431)}
}
;
STRING_LITERAL(TMP4438, "not ($1)", 8);
NIM_CONST tmagicops595659 luaops_595860 = {{((NimStringDesc*) &TMP4342),
((NimStringDesc*) &TMP4343),
((NimStringDesc*) &TMP4344),
((NimStringDesc*) &TMP4345)}
,
{((NimStringDesc*) &TMP4346),
((NimStringDesc*) &TMP4343),
((NimStringDesc*) &TMP4347),
((NimStringDesc*) &TMP4348)}
,
{((NimStringDesc*) &TMP4349),
((NimStringDesc*) &TMP4343),
((NimStringDesc*) &TMP4350),
((NimStringDesc*) &TMP4351)}
,
{((NimStringDesc*) &TMP4352),
((NimStringDesc*) &TMP4343),
((NimStringDesc*) &TMP4353),
((NimStringDesc*) &TMP4354)}
,
{((NimStringDesc*) &TMP4355),
((NimStringDesc*) &TMP4343),
((NimStringDesc*) &TMP4356),
((NimStringDesc*) &TMP4357)}
,
{((NimStringDesc*) &TMP4358),
((NimStringDesc*) &TMP4343),
((NimStringDesc*) &TMP4359),
((NimStringDesc*) &TMP4345)}
,
{((NimStringDesc*) &TMP4360),
((NimStringDesc*) &TMP4343),
((NimStringDesc*) &TMP4361),
((NimStringDesc*) &TMP4348)}
,
{((NimStringDesc*) &TMP4362),
((NimStringDesc*) &TMP4343),
((NimStringDesc*) &TMP4363),
((NimStringDesc*) &TMP4351)}
,
{((NimStringDesc*) &TMP4364),
((NimStringDesc*) &TMP4343),
((NimStringDesc*) &TMP4365),
((NimStringDesc*) &TMP4354)}
,
{((NimStringDesc*) &TMP4366),
((NimStringDesc*) &TMP4343),
((NimStringDesc*) &TMP4367),
((NimStringDesc*) &TMP4357)}
,
{((NimStringDesc*) &TMP4343),
((NimStringDesc*) &TMP4343),
((NimStringDesc*) &TMP4345),
((NimStringDesc*) &TMP4345)}
,
{((NimStringDesc*) &TMP4343),
((NimStringDesc*) &TMP4343),
((NimStringDesc*) &TMP4348),
((NimStringDesc*) &TMP4348)}
,
{((NimStringDesc*) &TMP4343),
((NimStringDesc*) &TMP4343),
((NimStringDesc*) &TMP4351),
((NimStringDesc*) &TMP4351)}
,
{((NimStringDesc*) &TMP4343),
((NimStringDesc*) &TMP4343),
((NimStringDesc*) &TMP4368),
((NimStringDesc*) &TMP4368)}
,
{((NimStringDesc*) &TMP4343),
((NimStringDesc*) &TMP4343),
((NimStringDesc*) &TMP4369),
((NimStringDesc*) &TMP4369)}
,
{((NimStringDesc*) &TMP4343),
((NimStringDesc*) &TMP4343),
((NimStringDesc*) &TMP4370),
((NimStringDesc*) &TMP4370)}
,
{((NimStringDesc*) &TMP4343),
((NimStringDesc*) &TMP4343),
((NimStringDesc*) &TMP4371),
((NimStringDesc*) &TMP4371)}
,
{((NimStringDesc*) &TMP4343),
((NimStringDesc*) &TMP4343),
((NimStringDesc*) &TMP4372),
((NimStringDesc*) &TMP4372)}
,
{((NimStringDesc*) &TMP4343),
((NimStringDesc*) &TMP4343),
((NimStringDesc*) &TMP4373),
((NimStringDesc*) &TMP4373)}
,
{((NimStringDesc*) &TMP4374),
((NimStringDesc*) &TMP4374),
((NimStringDesc*) &TMP4375),
((NimStringDesc*) &TMP4375)}
,
{((NimStringDesc*) &TMP4376),
((NimStringDesc*) &TMP4376),
((NimStringDesc*) &TMP4377),
((NimStringDesc*) &TMP4377)}
,
{((NimStringDesc*) &TMP4343),
((NimStringDesc*) &TMP4343),
((NimStringDesc*) &TMP4369),
((NimStringDesc*) &TMP4369)}
,
{((NimStringDesc*) &TMP4343),
((NimStringDesc*) &TMP4343),
((NimStringDesc*) &TMP4370),
((NimStringDesc*) &TMP4370)}
,
{((NimStringDesc*) &TMP4343),
((NimStringDesc*) &TMP4343),
((NimStringDesc*) &TMP4371),
((NimStringDesc*) &TMP4371)}
,
{((NimStringDesc*) &TMP4343),
((NimStringDesc*) &TMP4343),
((NimStringDesc*) &TMP4372),
((NimStringDesc*) &TMP4372)}
,
{((NimStringDesc*) &TMP4343),
((NimStringDesc*) &TMP4343),
((NimStringDesc*) &TMP4373),
((NimStringDesc*) &TMP4373)}
,
{((NimStringDesc*) &TMP4374),
((NimStringDesc*) &TMP4374),
((NimStringDesc*) &TMP4375),
((NimStringDesc*) &TMP4375)}
,
{((NimStringDesc*) &TMP4376),
((NimStringDesc*) &TMP4376),
((NimStringDesc*) &TMP4377),
((NimStringDesc*) &TMP4377)}
,
{((NimStringDesc*) &TMP4374),
((NimStringDesc*) &TMP4374),
((NimStringDesc*) &TMP4375),
((NimStringDesc*) &TMP4375)}
,
{((NimStringDesc*) &TMP4376),
((NimStringDesc*) &TMP4376),
((NimStringDesc*) &TMP4377),
((NimStringDesc*) &TMP4377)}
,
{((NimStringDesc*) &TMP4378),
((NimStringDesc*) &TMP4378),
((NimStringDesc*) &TMP4379),
((NimStringDesc*) &TMP4379)}
,
{((NimStringDesc*) &TMP4380),
((NimStringDesc*) &TMP4380),
((NimStringDesc*) &TMP4381),
((NimStringDesc*) &TMP4381)}
,
{((NimStringDesc*) &TMP4382),
((NimStringDesc*) &TMP4382),
((NimStringDesc*) &TMP4383),
((NimStringDesc*) &TMP4383)}
,
{((NimStringDesc*) &TMP4384),
((NimStringDesc*) &TMP4384),
((NimStringDesc*) &TMP4385),
((NimStringDesc*) &TMP4385)}
,
{((NimStringDesc*) &TMP4386),
((NimStringDesc*) &TMP4386),
((NimStringDesc*) &TMP4387),
((NimStringDesc*) &TMP4387)}
,
{((NimStringDesc*) &TMP4343),
((NimStringDesc*) &TMP4343),
((NimStringDesc*) &TMP4388),
((NimStringDesc*) &TMP4388)}
,
{((NimStringDesc*) &TMP4343),
((NimStringDesc*) &TMP4343),
((NimStringDesc*) &TMP4389),
((NimStringDesc*) &TMP4389)}
,
{((NimStringDesc*) &TMP4343),
((NimStringDesc*) &TMP4343),
((NimStringDesc*) &TMP4390),
((NimStringDesc*) &TMP4390)}
,
{((NimStringDesc*) &TMP4343),
((NimStringDesc*) &TMP4343),
((NimStringDesc*) &TMP4388),
((NimStringDesc*) &TMP4388)}
,
{((NimStringDesc*) &TMP4343),
((NimStringDesc*) &TMP4343),
((NimStringDesc*) &TMP4389),
((NimStringDesc*) &TMP4389)}
,
{((NimStringDesc*) &TMP4343),
((NimStringDesc*) &TMP4343),
((NimStringDesc*) &TMP4390),
((NimStringDesc*) &TMP4390)}
,
{((NimStringDesc*) &TMP4343),
((NimStringDesc*) &TMP4343),
((NimStringDesc*) &TMP4388),
((NimStringDesc*) &TMP4388)}
,
{((NimStringDesc*) &TMP4343),
((NimStringDesc*) &TMP4343),
((NimStringDesc*) &TMP4389),
((NimStringDesc*) &TMP4389)}
,
{((NimStringDesc*) &TMP4343),
((NimStringDesc*) &TMP4343),
((NimStringDesc*) &TMP4390),
((NimStringDesc*) &TMP4390)}
,
{((NimStringDesc*) &TMP4391),
((NimStringDesc*) &TMP4391),
((NimStringDesc*) &TMP4392),
((NimStringDesc*) &TMP4392)}
,
{((NimStringDesc*) &TMP4393),
((NimStringDesc*) &TMP4393),
((NimStringDesc*) &TMP4394),
((NimStringDesc*) &TMP4394)}
,
{((NimStringDesc*) &TMP4395),
((NimStringDesc*) &TMP4395),
((NimStringDesc*) &TMP4396),
((NimStringDesc*) &TMP4396)}
,
{((NimStringDesc*) &TMP4397),
((NimStringDesc*) &TMP4397),
((NimStringDesc*) &TMP4398),
((NimStringDesc*) &TMP4398)}
,
{((NimStringDesc*) &TMP4343),
((NimStringDesc*) &TMP4343),
((NimStringDesc*) &TMP4388),
((NimStringDesc*) &TMP4388)}
,
{((NimStringDesc*) &TMP4343),
((NimStringDesc*) &TMP4343),
((NimStringDesc*) &TMP4389),
((NimStringDesc*) &TMP4389)}
,
{((NimStringDesc*) &TMP4343),
((NimStringDesc*) &TMP4343),
((NimStringDesc*) &TMP4390),
((NimStringDesc*) &TMP4390)}
,
{((NimStringDesc*) &TMP4343),
((NimStringDesc*) &TMP4343),
((NimStringDesc*) &TMP4388),
((NimStringDesc*) &TMP4388)}
,
{((NimStringDesc*) &TMP4343),
((NimStringDesc*) &TMP4343),
((NimStringDesc*) &TMP4389),
((NimStringDesc*) &TMP4389)}
,
{((NimStringDesc*) &TMP4343),
((NimStringDesc*) &TMP4343),
((NimStringDesc*) &TMP4390),
((NimStringDesc*) &TMP4390)}
,
{((NimStringDesc*) &TMP4343),
((NimStringDesc*) &TMP4343),
((NimStringDesc*) &TMP4388),
((NimStringDesc*) &TMP4388)}
,
{((NimStringDesc*) &TMP4343),
((NimStringDesc*) &TMP4343),
((NimStringDesc*) &TMP4389),
((NimStringDesc*) &TMP4389)}
,
{((NimStringDesc*) &TMP4343),
((NimStringDesc*) &TMP4343),
((NimStringDesc*) &TMP4390),
((NimStringDesc*) &TMP4390)}
,
{((NimStringDesc*) &TMP4343),
((NimStringDesc*) &TMP4343),
((NimStringDesc*) &TMP4388),
((NimStringDesc*) &TMP4388)}
,
{((NimStringDesc*) &TMP4343),
((NimStringDesc*) &TMP4343),
((NimStringDesc*) &TMP4388),
((NimStringDesc*) &TMP4388)}
,
{((NimStringDesc*) &TMP4343),
((NimStringDesc*) &TMP4343),
((NimStringDesc*) &TMP4389),
((NimStringDesc*) &TMP4389)}
,
{((NimStringDesc*) &TMP4343),
((NimStringDesc*) &TMP4343),
((NimStringDesc*) &TMP4390),
((NimStringDesc*) &TMP4390)}
,
{((NimStringDesc*) &TMP4343),
((NimStringDesc*) &TMP4343),
((NimStringDesc*) &TMP4388),
((NimStringDesc*) &TMP4388)}
,
{((NimStringDesc*) &TMP4343),
((NimStringDesc*) &TMP4343),
((NimStringDesc*) &TMP4399),
((NimStringDesc*) &TMP4399)}
,
{((NimStringDesc*) &TMP4343),
((NimStringDesc*) &TMP4343),
((NimStringDesc*) &TMP4388),
((NimStringDesc*) &TMP4388)}
,
{((NimStringDesc*) &TMP4400),
((NimStringDesc*) &TMP4343),
((NimStringDesc*) &TMP4401),
((NimStringDesc*) &TMP4402)}
,
{((NimStringDesc*) &TMP4403),
((NimStringDesc*) &TMP4343),
((NimStringDesc*) &TMP4404),
((NimStringDesc*) &TMP4402)}
,
{((NimStringDesc*) &TMP4405),
((NimStringDesc*) &TMP4343),
((NimStringDesc*) &TMP4406),
((NimStringDesc*) &TMP4407)}
,
{((NimStringDesc*) &TMP4408),
((NimStringDesc*) &TMP4343),
((NimStringDesc*) &TMP4409),
((NimStringDesc*) &TMP4407)}
,
{((NimStringDesc*) &TMP4343),
((NimStringDesc*) &TMP4343),
((NimStringDesc*) &TMP4438),
((NimStringDesc*) &TMP4438)}
,
{((NimStringDesc*) &TMP4343),
((NimStringDesc*) &TMP4343),
((NimStringDesc*) &TMP4411),
((NimStringDesc*) &TMP4411)}
,
{((NimStringDesc*) &TMP4343),
((NimStringDesc*) &TMP4343),
((NimStringDesc*) &TMP4412),
((NimStringDesc*) &TMP4412)}
,
{((NimStringDesc*) &TMP4343),
((NimStringDesc*) &TMP4343),
((NimStringDesc*) &TMP4411),
((NimStringDesc*) &TMP4411)}
,
{((NimStringDesc*) &TMP4343),
((NimStringDesc*) &TMP4343),
((NimStringDesc*) &TMP4412),
((NimStringDesc*) &TMP4412)}
,
{((NimStringDesc*) &TMP4343),
((NimStringDesc*) &TMP4343),
((NimStringDesc*) &TMP4411),
((NimStringDesc*) &TMP4411)}
,
{((NimStringDesc*) &TMP4343),
((NimStringDesc*) &TMP4343),
((NimStringDesc*) &TMP4402),
((NimStringDesc*) &TMP4402)}
,
{((NimStringDesc*) &TMP4343),
((NimStringDesc*) &TMP4343),
((NimStringDesc*) &TMP4407),
((NimStringDesc*) &TMP4407)}
,
{((NimStringDesc*) &TMP4413),
((NimStringDesc*) &TMP4413),
((NimStringDesc*) &TMP4414),
((NimStringDesc*) &TMP4414)}
,
{((NimStringDesc*) &TMP4415),
((NimStringDesc*) &TMP4415),
((NimStringDesc*) &TMP4416),
((NimStringDesc*) &TMP4416)}
,
{((NimStringDesc*) &TMP4417),
((NimStringDesc*) &TMP4417),
((NimStringDesc*) &TMP4418),
((NimStringDesc*) &TMP4418)}
,
{((NimStringDesc*) &TMP4419),
((NimStringDesc*) &TMP4419),
((NimStringDesc*) &TMP4420),
((NimStringDesc*) &TMP4420)}
,
{((NimStringDesc*) &TMP4421),
((NimStringDesc*) &TMP4421),
((NimStringDesc*) &TMP4422),
((NimStringDesc*) &TMP4422)}
,
{((NimStringDesc*) &TMP4423),
((NimStringDesc*) &TMP4423),
((NimStringDesc*) &TMP4424),
((NimStringDesc*) &TMP4424)}
,
{((NimStringDesc*) &TMP4425),
((NimStringDesc*) &TMP4425),
((NimStringDesc*) &TMP4426),
((NimStringDesc*) &TMP4426)}
,
{((NimStringDesc*) &TMP4427),
((NimStringDesc*) &TMP4427),
((NimStringDesc*) &TMP4428),
((NimStringDesc*) &TMP4428)}
,
{((NimStringDesc*) &TMP4429),
((NimStringDesc*) &TMP4429),
((NimStringDesc*) &TMP4430),
((NimStringDesc*) &TMP4430)}
,
{((NimStringDesc*) &TMP4343),
((NimStringDesc*) &TMP4343),
((NimStringDesc*) &TMP4431),
((NimStringDesc*) &TMP4431)}
,
{((NimStringDesc*) &TMP4343),
((NimStringDesc*) &TMP4343),
((NimStringDesc*) &TMP4431),
((NimStringDesc*) &TMP4431)}
,
{((NimStringDesc*) &TMP4343),
((NimStringDesc*) &TMP4343),
((NimStringDesc*) &TMP4432),
((NimStringDesc*) &TMP4432)}
,
{((NimStringDesc*) &TMP4343),
((NimStringDesc*) &TMP4343),
((NimStringDesc*) &TMP4432),
((NimStringDesc*) &TMP4432)}
,
{((NimStringDesc*) &TMP4433),
((NimStringDesc*) &TMP4433),
((NimStringDesc*) &TMP4434),
((NimStringDesc*) &TMP4434)}
,
{((NimStringDesc*) &TMP4435),
((NimStringDesc*) &TMP4435),
((NimStringDesc*) &TMP4436),
((NimStringDesc*) &TMP4436)}
,
{((NimStringDesc*) &TMP4323),
((NimStringDesc*) &TMP4323),
((NimStringDesc*) &TMP4437),
((NimStringDesc*) &TMP4437)}
,
{((NimStringDesc*) &TMP4323),
((NimStringDesc*) &TMP4323),
((NimStringDesc*) &TMP4437),
((NimStringDesc*) &TMP4437)}
,
{((NimStringDesc*) &TMP4323),
((NimStringDesc*) &TMP4323),
((NimStringDesc*) &TMP4437),
((NimStringDesc*) &TMP4437)}
,
{((NimStringDesc*) &TMP4323),
((NimStringDesc*) &TMP4323),
((NimStringDesc*) &TMP4324),
((NimStringDesc*) &TMP4324)}
,
{((NimStringDesc*) &TMP4343),
((NimStringDesc*) &TMP4343),
((NimStringDesc*) &TMP4431),
((NimStringDesc*) &TMP4431)}
}
;
STRING_LITERAL(TMP4439, "(\"\"+ ($1))", 10);
STRING_LITERAL(TMP4440, "cstrToNimstr($1.node.sons[$2].name)", 35);
STRING_LITERAL(TMP4441, "genRepr: Not implemented", 24);
STRING_LITERAL(TMP4442, "genSwap", 7);
STRING_LITERAL(TMP4443, "var $1 = $2; $2 = $3; $3 = $1;$n", 32);
STRING_LITERAL(TMP4444, "local $1 = $2; $2 = $3; $3 = $1;$n", 34);
STRING_LITERAL(TMP4445, "var $1 = $2; $2 = $3; $3 = $1;", 30);
STRING_LITERAL(TMP4446, "local $1 = $2; $2 = $3; $3 = $1;", 32);
STRING_LITERAL(TMP4447, "$1 - 1", 6);
STRING_LITERAL(TMP4448, "subInt($1, 1)", 13);
STRING_LITERAL(TMP4449, "$1 - $2", 7);
STRING_LITERAL(TMP4450, "addChar", 7);
STRING_LITERAL(TMP4451, "addChar($1, $2)", 15);
STRING_LITERAL(TMP4452, "$1 += $2", 8);
STRING_LITERAL(TMP4453, "$1 = ($1.slice(0, -1)).concat($2)", 33);
STRING_LITERAL(TMP4454, "$1.push($2)", 11);
STRING_LITERAL(TMP4455, "[$1].concat(", 12);
STRING_LITERAL(TMP4456, "($1.slice(0,-1)).concat(", 24);
STRING_LITERAL(TMP4457, "[$1],", 5);
STRING_LITERAL(TMP4458, "$1.slice(0,-1),", 15);
STRING_LITERAL(TMP4459, "[$1, 0])", 8);
STRING_LITERAL(TMP4460, "$1)", 3);
STRING_LITERAL(TMP4461, "eqStrings", 9);
STRING_LITERAL(TMP4462, "eqStrings($1, $2)", 17);
STRING_LITERAL(TMP4463, "cmpStrings", 10);
STRING_LITERAL(TMP4464, "(cmpStrings($1, $2) <= 0)", 25);
STRING_LITERAL(TMP4465, "(cmpStrings($1, $2) < 0)", 24);
STRING_LITERAL(TMP4466, "$1 == null", 10);
STRING_LITERAL(TMP4467, "$1 = $2;$n", 10);
STRING_LITERAL(TMP4468, "($1 ? 1:0)", 10);
STRING_LITERAL(TMP4469, "toBool($#)", 10);
STRING_LITERAL(TMP4470, "genOrd", 6);
STRING_LITERAL(TMP4471, "($1.length-1)", 13);
STRING_LITERAL(TMP4472, "$1.length", 9);
STRING_LITERAL(TMP4473, "($1.length-2)", 13);
STRING_LITERAL(TMP4474, "$1 = addInt($1, $2)", 19);
STRING_LITERAL(TMP4475, "$1 -= $2", 8);
STRING_LITERAL(TMP4476, "$1 = subInt($1, $2)", 19);
STRING_LITERAL(TMP4477, "$1.length = $2+1; $1[$1.length-1] = 0", 37);
STRING_LITERAL(TMP4478, "$1.length = $2", 14);
STRING_LITERAL(TMP4479, "SetCard", 7);
STRING_LITERAL(TMP4480, "SetCard($1)", 11);
STRING_LITERAL(TMP4481, "SetLt", 5);
STRING_LITERAL(TMP4482, "SetLt($1, $2)", 13);
STRING_LITERAL(TMP4483, "SetLe", 5);
STRING_LITERAL(TMP4484, "SetLe($1, $2)", 13);
STRING_LITERAL(TMP4485, "SetEq", 5);
STRING_LITERAL(TMP4486, "SetEq($1, $2)", 13);
STRING_LITERAL(TMP4487, "SetMul", 6);
STRING_LITERAL(TMP4488, "SetMul($1, $2)", 14);
STRING_LITERAL(TMP4489, "SetPlus", 7);
STRING_LITERAL(TMP4490, "SetPlus($1, $2)", 15);
STRING_LITERAL(TMP4491, "SetMinus", 8);
STRING_LITERAL(TMP4492, "SetMinus($1, $2)", 16);
STRING_LITERAL(TMP4493, "$1[$2] = true", 13);
STRING_LITERAL(TMP4494, "delete $1[$2]", 13);
STRING_LITERAL(TMP4495, "($1[$2] != undefined)", 21);
STRING_LITERAL(TMP4496, "$1 = new Array($2); for (var i=0;i<$2;++i) {$1[i]=$3;}", 54);
STRING_LITERAL(TMP4497, "($1.m_type == $2)", 17);
STRING_LITERAL(TMP4498, "isObj", 5);
STRING_LITERAL(TMP4499, "isObj($1.m_type, $2)", 20);
STRING_LITERAL(TMP4500, "genericReset", 12);
STRING_LITERAL(TMP4501, "$1 = genericReset($1, $2);$n", 28);
STRING_LITERAL(TMP4502, "rawEcho", 7);
STRING_LITERAL(TMP4503, "rawEcho(", 8);
NIM_CONST TY84745 TMP4504 = {((NimStringDesc*) &TMP4260),
1080}
;
STRING_LITERAL(TMP4505, ")", 1);
STRING_LITERAL(TMP4506, "($1.slice($2))", 14);
STRING_LITERAL(TMP4507, "($1.slice($2, ($3)+1).concat(0))", 32);
STRING_LITERAL(TMP4508, "mnewString", 10);
STRING_LITERAL(TMP4509, "mnewString($1)", 14);
STRING_LITERAL(TMP4510, "mnewString(0)", 13);
STRING_LITERAL(TMP4511, "(", 1);
STRING_LITERAL(TMP4512, "cannot invoke with infix syntax", 31);
STRING_LITERAL(TMP4513, "$1[$2]", 6);
STRING_LITERAL(TMP4514, ".", 1);
STRING_LITERAL(TMP4515, "SetConstr", 9);
STRING_LITERAL(TMP4516, "SetConstr(", 10);
STRING_LITERAL(TMP4517, "Field$#: $#", 11);
NIM_CONST TY84745 TMP4518 = {((NimStringDesc*) &TMP4260),
1440}
;
STRING_LITERAL(TMP4519, "$#: $#", 6);
STRING_LITERAL(TMP4520, "$# = $#", 7);
STRING_LITERAL(TMP4521, "(($1)? 1:0)", 11);
STRING_LITERAL(TMP4522, "genAddr: 3", 10);
STRING_LITERAL(TMP4523, "genAddr: 2", 10);
STRING_LITERAL(TMP4524, "Field", 5);
STRING_LITERAL(TMP4525, "genFieldPosition", 16);
STRING_LITERAL(TMP4526, "genFieldAddr", 12);
NIM_CONST TY84745 TMP4527 = {((NimStringDesc*) &TMP4260),
874}
;
NIM_CONST TY84745 TMP4528 = {((NimStringDesc*) &TMP4260),
904}
;
STRING_LITERAL(TMP4529, "chckIndx", 8);
STRING_LITERAL(TMP4530, "chckIndx($1, $2, $3.length)-$2", 30);
STRING_LITERAL(TMP4531, "($1)-$2", 7);
STRING_LITERAL(TMP4532, "expr(nkBracketExpr, ", 20);
STRING_LITERAL(TMP4533, "genAddr", 7);
STRING_LITERAL(TMP4534, "genDeref", 8);
STRING_LITERAL(TMP4535, "genArrayAccess", 14);
STRING_LITERAL(TMP4536, "$1.Field$2", 10);
STRING_LITERAL(TMP4537, "$1.$2", 5);
STRING_LITERAL(TMP4538, "chckRange", 9);
STRING_LITERAL(TMP4539, "chckRange($1, $2, $3)", 21);
STRING_LITERAL(TMP4540, "chckRangeF", 10);
STRING_LITERAL(TMP4541, "chckRange64", 11);
STRING_LITERAL(TMP4542, "convStrToCStr", 13);
STRING_LITERAL(TMP4543, "toJSStr", 7);
STRING_LITERAL(TMP4544, "toJSStr($1)", 11);
STRING_LITERAL(TMP4545, "convCStrToStr", 13);
STRING_LITERAL(TMP4546, "genBlock", 8);
STRING_LITERAL(TMP4547, "L$1: do {$n", 11);
STRING_LITERAL(TMP4548, "} while(false);$n", 17);
STRING_LITERAL(TMP4549, "$n::L$#::$n", 11);
STRING_LITERAL(TMP4550, "else {$n", 8);
STRING_LITERAL(TMP4551, "else$n", 6);
STRING_LITERAL(TMP4552, "if ($1) {$n", 11);
STRING_LITERAL(TMP4553, "if $# then$n", 12);
STRING_LITERAL(TMP4554, "$1;$n", 5);
STRING_LITERAL(TMP4555, "}$n", 3);
STRING_LITERAL(TMP4556, "end$n", 5);
NIM_CONST TY84745 TMP4557 = {((NimStringDesc*) &TMP4260),
511}
;
STRING_LITERAL(TMP4558, "// line $2 \"$1\"$n", 17);
STRING_LITERAL(TMP4559, "-- line $2 \"$1\"$n", 17);
STRING_LITERAL(TMP4560, "endb", 4);
STRING_LITERAL(TMP4561, "endb($1);$n", 11);
STRING_LITERAL(TMP4562, "F.line = $1;$n", 14);
STRING_LITERAL(TMP4563, "L$1: while (true) {$n", 21);
STRING_LITERAL(TMP4564, "while true do$n", 15);
STRING_LITERAL(TMP4565, "if (!$1) break L$2;$n", 21);
STRING_LITERAL(TMP4566, "if not $1 then goto ::L$2:: end;$n", 34);
STRING_LITERAL(TMP4567, "end ::L$#::$n", 13);
STRING_LITERAL(TMP4568, "for statement not eliminated", 28);
STRING_LITERAL(TMP4569, "switch (toJSStr($1)) {$n", 24);
STRING_LITERAL(TMP4570, "switch ($1) {$n", 15);
STRING_LITERAL(TMP4571, "case $1: ", 9);
STRING_LITERAL(TMP4572, "jsgen.genCaseStmt: 2", 20);
STRING_LITERAL(TMP4573, "$nbreak;$n", 10);
STRING_LITERAL(TMP4574, "default: $n", 11);
STRING_LITERAL(TMP4575, "break;$n", 8);
STRING_LITERAL(TMP4576, "jsgen.genCaseStmt", 17);
STRING_LITERAL(TMP4577, "eqStr", 5);
STRING_LITERAL(TMP4578, "$nelsif ", 8);
STRING_LITERAL(TMP4579, "if ", 3);
STRING_LITERAL(TMP4580, " or ", 4);
STRING_LITERAL(TMP4581, "$1 >= $2 and $1 <= $3", 21);
STRING_LITERAL(TMP4582, "eqStr($1, $2)", 13);
STRING_LITERAL(TMP4583, "$1 == $2", 8);
STRING_LITERAL(TMP4584, " then$n", 7);
STRING_LITERAL(TMP4585, "$nend$n", 7);
STRING_LITERAL(TMP4586, "genReturnStmt", 13);
STRING_LITERAL(TMP4587, "break BeforeRet;$n", 18);
STRING_LITERAL(TMP4588, "goto ::BeforeRet::;$n", 21);
STRING_LITERAL(TMP4589, "no loop to break", 16);
STRING_LITERAL(TMP4590, "break L$1;$n", 12);
STRING_LITERAL(TMP4591, "goto ::L$1::;$n", 15);
STRING_LITERAL(TMP4592, "$1 = nimCopy($2, $3);$n", 23);
STRING_LITERAL(TMP4593, "genAsgn", 7);
STRING_LITERAL(TMP4594, "$1 = $2; $3 = $4;$n", 19);
STRING_LITERAL(TMP4595, "jsgen: genAsmStmt()", 19);
STRING_LITERAL(TMP4596, "var $1 = {prev: excHandler, exc: null};$nexcHandler = $1;$n", 59);
STRING_LITERAL(TMP4597, "local $1 = pcall(", 17);
STRING_LITERAL(TMP4598, "framePtr = F;", 13);
STRING_LITERAL(TMP4599, "try {$n", 7);
STRING_LITERAL(TMP4600, "function()$n", 12);
STRING_LITERAL(TMP4601, "} catch (EXC) {$n  lastJSError = EXC;$n", 39);
STRING_LITERAL(TMP4602, "end)$n", 6);
STRING_LITERAL(TMP4603, "genTryStmt", 10);
STRING_LITERAL(TMP4604, "||", 2);
STRING_LITERAL(TMP4605, "isObj($1.exc.m_type, $2)", 24);
STRING_LITERAL(TMP4606, "else ", 5);
STRING_LITERAL(TMP4607, "if ($1.exc && ($2)) {$n", 23);
STRING_LITERAL(TMP4608, "if $1.exc and ($2) then$n", 25);
STRING_LITERAL(TMP4609, "} finally {", 11);
STRING_LITERAL(TMP4610, "excHandler = excHandler.prev;", 29);
STRING_LITERAL(TMP4611, "raiseException", 14);
STRING_LITERAL(TMP4612, "raiseException($1, $2);$n", 25);
STRING_LITERAL(TMP4613, "reraiseException", 16);
STRING_LITERAL(TMP4614, "reraiseException();", 19);
STRING_LITERAL(TMP4615, "first class iterators not implemented", 37);
STRING_LITERAL(TMP4616, "gen: unknown node type: ", 24);
STRING_LITERAL(TMP4617, "$#;$n", 5);
STRING_LITERAL(TMP4618, "framePtr = framePtr.prev;$n", 27);
STRING_LITERAL(TMP4619, "js", 2);
STRING_LITERAL(TMP4620, "/* Generated by the Nim Compiler v$1 */$n/*   (c) 2014 Andreas "
"Rumpf */$n$nvar framePtr = null;$nvar excHandler = null;$nvar la"
"stJSError = null;$n", 146);
STRING_LITERAL(TMP4621, "0.10.2", 6);
tglobals594027* globals_604952;
extern TNimType NTI285005; /* TPassContext */
TNimType NTI594015; /* TJSGen */
extern TNimType NTI224814; /* PSym */
TNimType NTI594017; /* BModule */
extern tgcheap47016 gch_47044;
TNimType NTI594027; /* TGlobals */
extern TNimType NTI176007; /* PRope */
extern TNimType NTI224818; /* TSymSeq */
extern TNimType NTI221056; /* IntSet */
TNimType NTI594029; /* PGlobals */
extern NI gerrorcounter_195306;
TNimType NTI594033; /* TProc */
extern TNimType NTI224808; /* PNode */
extern TNimType NTI168016; /* TOptions */
extern TNimType NTI138; /* bool */
TNimType NTI594013; /* TTarget */
extern TNimType NTI108; /* int */
TNimType NTI594025; /* TBlock */
TNimType NTI594071; /* seq[TBlock] */
TNimType NTI594031; /* PProc */
extern NimStringDesc* tnl_173613;
extern TNimType NTI224258; /* TTypeKind */
extern TNimType NTI149; /* string */
TNimType NTI595657; /* TMagicFrmt */
TNimType NTI595659; /* TMagicOps */
extern TNimType NTI224029; /* TNodeKind */
extern NimStringDesc* outfile_168124;
N_NIMCALL(void, TMP4232)(void* p, NI op) {
	tjsgen594015* a;
	a = (tjsgen594015*)p;
	nimGCvisit((void*)(*a).Module, op);
}

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

static N_INLINE(void, rtladdzct_50204)(tcell44935* c) {
	addzct_48617((&gch_47044.Zct), c);
}

static N_INLINE(void, asgnRefNoCycle)(void** dest, void* src) {
	{
		tcell44935* c;
		if (!!((src == NIM_NIL))) goto LA3;
		c = usrtocell_48646(src);
		(*c).Refcount += 8;
	}
	LA3: ;
	{
		tcell44935* c;
		if (!!(((*dest) == NIM_NIL))) goto LA7;
		c = usrtocell_48646((*dest));
		{
			(*c).Refcount -= 8;
			if (!((NU32)((*c).Refcount) < (NU32)(8))) goto LA11;
			rtladdzct_50204(c);
		}
		LA11: ;
	}
	LA7: ;
	(*dest) = src;
}
N_NIMCALL(void, TMP4234)(void* p, NI op) {
	tglobals594027* a;
	a = (tglobals594027*)p;
	nimGCvisit((void*)(*a).Typeinfo, op);
	nimGCvisit((void*)(*a).Code, op);
	nimGCvisit((void*)(*a).Forwarded, op);
	nimGCvisit((void*)(*a).Generatedsyms.Head, op);
	nimGCvisit((void*)(*a).Generatedsyms.Data, op);
	nimGCvisit((void*)(*a).Typeinfogenerated.Head, op);
	nimGCvisit((void*)(*a).Typeinfogenerated.Data, op);
}

static N_INLINE(void, nimGCunrefNoCycle)(void* p) {
	tcell44935* c;
	c = usrtocell_48646(p);
	{
		(*c).Refcount -= 8;
		if (!((NU32)((*c).Refcount) < (NU32)(8))) goto LA3;
		rtladdzct_50204(c);
	}
	LA3: ;
}

N_NIMCALL(tglobals594027*, newglobals_594084)(void) {
	tglobals594027* result;
	result = 0;
	result = (tglobals594027*) newObj((&NTI594029), sizeof(tglobals594027));
	if ((*result).Forwarded) nimGCunrefNoCycle((*result).Forwarded);
	(*result).Forwarded = (tsymseq224818*) newSeqRC1((&NTI224818), 0);
	initintset_221950((&(*result).Generatedsyms));
	initintset_221950((&(*result).Typeinfogenerated));
	return result;
}

N_NIMCALL(tjsgen594015*, newmodule_604957)(tsym224846* module) {
	tjsgen594015* result;
	result = 0;
	result = (tjsgen594015*) newObj((&NTI594017), sizeof(tjsgen594015));
	(*result).Sup.Sup.m_type = (&NTI594015);
	asgnRefNoCycle((void**) (&(*result).Module), module);
	{
		if (!(globals_604952 == NIM_NIL)) goto LA3;
		asgnRefNoCycle((void**) (&globals_604952), newglobals_594084());
	}
	LA3: ;
	return result;
}

N_NIMCALL(tpasscontext285005*, myopen_605239)(tsym224846* s) {
	tpasscontext285005* result;
	tjsgen594015* LOC1;
	result = 0;
	LOC1 = 0;
	LOC1 = newmodule_604957(s);
	result = &LOC1->Sup;
	return result;
}

N_NIMCALL(tpasscontext285005*, myopencached_605228)(tsym224846* s, trodreader275030* rd) {
	tpasscontext285005* result;
	result = 0;
	internalerror_197006(((NimStringDesc*) &TMP4235));
	result = NIM_NIL;
	return result;
}

static N_INLINE(NIM_BOOL, skipcodegen_285083)(tnode224816* n) {
	NIM_BOOL result;
	result = 0;
	result = (0 < gerrorcounter_195306);
	return result;
}
N_NIMCALL(void, TMP4242)(void* p, NI op) {
	TY594071* a;
	NI LOC1;
	a = (TY594071*)p;
	LOC1 = 0;
	for (LOC1 = 0; LOC1 < a->Sup.len; LOC1++) {
	}
}
N_NIMCALL(void, TMP4243)(void* p, NI op) {
	tproc594033* a;
	a = (tproc594033*)p;
	nimGCvisit((void*)(*a).Procdef, op);
	nimGCvisit((void*)(*a).Prc, op);
	nimGCvisit((void*)(*a).Locals, op);
	nimGCvisit((void*)(*a).Body, op);
	nimGCvisit((void*)(*a).Module, op);
	nimGCvisit((void*)(*a).G, op);
	nimGCvisit((void*)(*a).Blocks, op);
	nimGCvisit((void*)(*a).Up, op);
}

static N_INLINE(NIM_BOOL, canbecycleroot_48667)(tcell44935* c) {
	NIM_BOOL result;
	result = 0;
	result = !((((*(*c).Typ).flags &(1<<((((NU8) 1))&7)))!=0));
	return result;
}

static N_INLINE(void, rtladdcycleroot_49429)(tcell44935* c) {
	{
		if (!!((((NI) ((NI)((*c).Refcount & 3))) == 3))) goto LA3;
		(*c).Refcount = (NI)((NI)((*c).Refcount & -4) | 3);
		incl_45671((&gch_47044.Cycleroots), c);
	}
	LA3: ;
}

static N_INLINE(void, incref_51025)(tcell44935* c) {
	(*c).Refcount = (NI)((NU32)((*c).Refcount) + (NU32)(8));
	{
		NIM_BOOL LOC3;
		LOC3 = 0;
		LOC3 = canbecycleroot_48667(c);
		if (!LOC3) goto LA4;
		rtladdcycleroot_49429(c);
	}
	LA4: ;
}

static N_INLINE(void, decref_50604)(tcell44935* c) {
	{
		(*c).Refcount -= 8;
		if (!((NU32)((*c).Refcount) < (NU32)(8))) goto LA3;
		rtladdzct_50204(c);
	}
	goto LA1;
	LA3: ;
	{
		NIM_BOOL LOC6;
		LOC6 = 0;
		LOC6 = canbecycleroot_48667(c);
		if (!LOC6) goto LA7;
		rtladdcycleroot_49429(c);
	}
	goto LA1;
	LA7: ;
	LA1: ;
}

static N_INLINE(void, asgnRef)(void** dest, void* src) {
	{
		tcell44935* LOC5;
		if (!!((src == NIM_NIL))) goto LA3;
		LOC5 = 0;
		LOC5 = usrtocell_48646(src);
		incref_51025(LOC5);
	}
	LA3: ;
	{
		tcell44935* LOC10;
		if (!!(((*dest) == NIM_NIL))) goto LA8;
		LOC10 = 0;
		LOC10 = usrtocell_48646((*dest));
		decref_50604(LOC10);
	}
	LA8: ;
	(*dest) = src;
}

N_NIMCALL(tproc594033*, newproc_594207)(tglobals594027* globals, tjsgen594015* module, tnode224816* procdef, NU32 options) {
	tproc594033* result;
	tproc594033* LOC1;
	result = 0;
	LOC1 = 0;
	LOC1 = (tproc594033*) newObj((&NTI594031), sizeof(tproc594033));
	if ((*LOC1).Blocks) nimGCunrefNoCycle((*LOC1).Blocks);
	(*LOC1).Blocks = (TY594071*) newSeqRC1((&NTI594071), 0);
	(*LOC1).Options = options;
	asgnRef((void**) (&(*LOC1).Module), module);
	asgnRefNoCycle((void**) (&(*LOC1).Procdef), procdef);
	asgnRefNoCycle((void**) (&(*LOC1).G), globals);
	result = LOC1;
	{
		if (!!((procdef == NIM_NIL))) goto LA4;
		asgnRefNoCycle((void**) (&(*result).Prc), (*(*procdef).kindU.S6.Sons->data[0]).kindU.S4.Sym);
	}
	LA4: ;
	return result;
}

N_NIMCALL(trope176009*, makejsstring_594344)(NimStringDesc* s) {
	trope176009* result;
	NimStringDesc* LOC1;
	result = 0;
	LOC1 = 0;
	LOC1 = nsuEscape(s, ((NimStringDesc*) &TMP4245), ((NimStringDesc*) &TMP4245));
	result = torope_176076(LOC1);
	return result;
}

static N_INLINE(void, appendString)(NimStringDesc* dest, NimStringDesc* src) {
	memcpy(((NCSTRING) ((&(*dest).data[((*dest).Sup.len)- 0]))), ((NCSTRING) ((*src).data)), (NI32)((*src).Sup.len + 1));
	(*dest).Sup.len += (*src).Sup.len;
}

static N_INLINE(NI, sonslen_225255)(ttype224852* n) {
	NI result;
	result = 0;
	{
		if (!(*n).Sons == 0) goto LA3;
		result = 0;
	}
	goto LA1;
	LA3: ;
	{
		result = (*n).Sons->Sup.len;
	}
	LA1: ;
	return result;
}

static N_INLINE(ttype224852*, lastson_225267)(ttype224852* n) {
	ttype224852* result;
	NI LOC1;
	result = 0;
	LOC1 = 0;
	LOC1 = sonslen_225255(n);
	result = (*n).Sons->data[(NI32)(LOC1 - 1)];
	return result;
}

N_NIMCALL(NU8, maptype_594291)(ttype224852* typ) {
	NU8 result;
	ttype224852* t;
	result = 0;
	t = skiptypes_229245(typ, IL64(211106232576256));
	switch ((*t).Kind) {
	case ((NU8) 23):
	case ((NU8) 22):
	case ((NU8) 21):
	{
		{
			ttype224852* LOC4;
			ttype224852* LOC5;
			LOC4 = 0;
			LOC4 = lastson_225267(t);
			LOC5 = 0;
			LOC5 = skiptypes_229245(LOC4, IL64(211106232576256));
			if (!((IL64(316659498680336) &(IL64(1)<<(((*LOC5).Kind)&IL64(63))))!=0)) goto LA6;
			result = ((NU8) 7);
		}
		goto LA2;
		LA6: ;
		{
			result = ((NU8) 8);
		}
		LA2: ;
	}
	break;
	case ((NU8) 26):
	{
		result = ((NU8) 4);
	}
	break;
	case ((NU8) 20):
	case ((NU8) 13):
	case ((NU8) 15):
	case ((NU8) 46):
	case ((NU8) 47):
	case ((NU8) 49):
	case ((NU8) 50):
	{
		result = maptype_594291((*t).Sons->data[0]);
	}
	break;
	case ((NU8) 31) ... ((NU8) 35):
	case ((NU8) 40) ... ((NU8) 44):
	case ((NU8) 14):
	case ((NU8) 2):
	{
		result = ((NU8) 4);
	}
	break;
	case ((NU8) 1):
	{
		result = ((NU8) 3);
	}
	break;
	case ((NU8) 36) ... ((NU8) 39):
	{
		result = ((NU8) 5);
	}
	break;
	case ((NU8) 19):
	{
		result = ((NU8) 7);
	}
	break;
	case ((NU8) 28):
	case ((NU8) 24):
	{
		result = ((NU8) 4);
	}
	break;
	case ((NU8) 17):
	case ((NU8) 16):
	case ((NU8) 4):
	case ((NU8) 18):
	case ((NU8) 27):
	case ((NU8) 45):
	case ((NU8) 48):
	{
		result = ((NU8) 7);
	}
	break;
	case ((NU8) 5):
	{
		result = ((NU8) 1);
	}
	break;
	case ((NU8) 11):
	case ((NU8) 12):
	case ((NU8) 10):
	case ((NU8) 9):
	case ((NU8) 0):
	case ((NU8) 60):
	case ((NU8) 30):
	case ((NU8) 3):
	case ((NU8) 61):
	case ((NU8) 6):
	case ((NU8) 7):
	case ((NU8) 59):
	case ((NU8) 8):
	case ((NU8) 51):
	case ((NU8) 54):
	case ((NU8) 52):
	case ((NU8) 53):
	case ((NU8) 55):
	case ((NU8) 56):
	case ((NU8) 57):
	case ((NU8) 58):
	{
		result = ((NU8) 0);
	}
	break;
	case ((NU8) 25):
	{
		result = ((NU8) 2);
	}
	break;
	case ((NU8) 29):
	{
		result = ((NU8) 6);
	}
	break;
	}
	return result;
}

N_NIMCALL(trope176009*, manglename_594315)(tsym224846* s) {
	trope176009* result;
	result = 0;
	result = (*s).Loc.R;
	{
		NimStringDesc* LOC5;
		trope176009* LOC6;
		if (!(result == NIM_NIL)) goto LA3;
		LOC5 = 0;
		LOC5 = mangle_547763((*(*s).Name).S);
		result = torope_176076(LOC5);
		app_176060(&result, ((NimStringDesc*) &TMP4253));
		LOC6 = 0;
		LOC6 = torope_176082(((NI64) ((*s).Sup.Id)));
		app_176052(&result, LOC6);
		asgnRefNoCycle((void**) (&(*s).Loc.R), result);
	}
	LA3: ;
	return result;
}

N_NIMCALL(trope176009*, puttoseq_601423)(NimStringDesc* s, NIM_BOOL indirect) {
	trope176009* result;
	result = 0;
	result = torope_176076(s);
	{
		TY176515 LOC5;
		if (!indirect) goto LA3;
		memset((void*)LOC5, 0, sizeof(LOC5));
		LOC5[0] = result;
		result = ropef_176107(((NimStringDesc*) &TMP4254), LOC5, 1);
	}
	LA3: ;
	return result;
}

static N_INLINE(NI, sonslen_225249)(tnode224816* n) {
	NI result;
	result = 0;
	{
		if (!(*n).kindU.S6.Sons == 0) goto LA3;
		result = 0;
	}
	goto LA1;
	LA3: ;
	{
		result = (*n).kindU.S6.Sons->Sup.len;
	}
	LA1: ;
	return result;
}

static N_INLINE(NIM_BOOL, iscompiletimeonly_272466)(ttype224852* t) {
	NIM_BOOL result;
	result = 0;
	result = ((*t).Kind == ((NU8) 8) || (*t).Kind == ((NU8) 59));
	return result;
}

N_NIMCALL(trope176009*, generateheader_599148)(tproc594033* p, ttype224852* typ) {
	trope176009* result;
	result = 0;
	result = NIM_NIL;
	{
		NI i_599165;
		NI HEX3Atmp_599446;
		NI LOC2;
		NI res_599449;
		i_599165 = 0;
		HEX3Atmp_599446 = 0;
		LOC2 = 0;
		LOC2 = sonslen_225249((*typ).N);
		HEX3Atmp_599446 = (NI32)(LOC2 - 1);
		res_599449 = 1;
		{
			while (1) {
				if (!(res_599449 <= HEX3Atmp_599446)) goto LA4;
				i_599165 = res_599449;
				{
					tsym224846* param;
					trope176009* name;
					{
						if (!!((result == NIM_NIL))) goto LA8;
						app_176060(&result, ((NimStringDesc*) &TMP4261));
					}
					LA8: ;
					param = (*(*(*typ).N).kindU.S6.Sons->data[i_599165]).kindU.S4.Sym;
					{
						NIM_BOOL LOC12;
						LOC12 = 0;
						LOC12 = iscompiletimeonly_272466((*param).Typ);
						if (!LOC12) goto LA13;
						goto LA5;
					}
					LA13: ;
					name = manglename_594315(param);
					app_176052(&result, name);
					{
						NU8 LOC17;
						LOC17 = 0;
						LOC17 = maptype_594291((*param).Typ);
						if (!(LOC17 == ((NU8) 8))) goto LA18;
						app_176060(&result, ((NimStringDesc*) &TMP4261));
						app_176052(&result, name);
						app_176060(&result, ((NimStringDesc*) &TMP4250));
					}
					LA18: ;
				} LA5: ;
				res_599449 += 1;
			} LA4: ;
		}
	}
	return result;
}

N_NIMCALL(NIM_BOOL, isindirect_601831)(tsym224846* v) {
	NIM_BOOL result;
	NIM_BOOL LOC1;
	NIM_BOOL LOC2;
	NU8 LOC4;
	result = 0;
	LOC1 = 0;
	LOC2 = 0;
	LOC2 = !(((32776 & (*v).Flags) == 0));
	if (!(LOC2)) goto LA3;
	LOC4 = 0;
	LOC4 = maptype_594291((*v).Typ);
	LOC2 = !((LOC4 == ((NU8) 7)));
	LA3: ;
	LOC1 = LOC2;
	if (!(LOC1)) goto LA5;
	LOC1 = !(((126976 &(1<<(((*v).Kind)&31)))!=0));
	LA5: ;
	result = LOC1;
	return result;
}

static N_INLINE(void, appendChar)(NimStringDesc* dest, NIM_CHAR c) {
	(*dest).data[((*dest).Sup.len)- 0] = c;
	(*dest).data[((NI32)((*dest).Sup.len + 1))- 0] = 0;
	(*dest).Sup.len += 1;
}

N_NIMCALL(trope176009*, genprocbody_604203)(tproc594033* p, tsym224846* prc) {
	trope176009* result;
	result = 0;
	{
		NimStringDesc* LOC5;
		NimStringDesc* LOC6;
		TY587896 LOC12;
		NimStringDesc* LOC13;
		NimStringDesc* LOC14;
		if (!(((*prc).Options &(1<<((((NU8) 15))&31)))!=0)) goto LA3;
		LOC5 = 0;
		LOC6 = 0;
		{
			if (!((*p).Target == ((NU8) 0))) goto LA9;
			LOC6 = copyString(((NimStringDesc*) &TMP4267));
		}
		goto LA7;
		LA9: ;
		{
			LOC6 = copyString(((NimStringDesc*) &TMP4268));
		}
		LA7: ;
		LOC5 = rawNewString(LOC6->Sup.len + 15);
appendString(LOC5, LOC6);
appendString(LOC5, ((NimStringDesc*) &TMP4269));
		memset((void*)LOC12, 0, sizeof(LOC12));
		LOC13 = 0;
		LOC13 = rawNewString((*(*(*prc).Owner).Name).S->Sup.len + (*(*prc).Name).S->Sup.len + 1);
appendString(LOC13, (*(*(*prc).Owner).Name).S);
appendChar(LOC13, 46);
appendString(LOC13, (*(*prc).Name).S);
		LOC12[0] = makejsstring_594344(LOC13);
		LOC14 = 0;
		LOC14 = tofilename_196025((*prc).Info.Fileindex);
		LOC12[1] = makejsstring_594344(LOC14);
		result = ropef_176107(LOC5, LOC12, 2);
	}
	goto LA1;
	LA3: ;
	{
		result = NIM_NIL;
	}
	LA1: ;
	{
		NimStringDesc* LOC20;
		TY176515 LOC26;
		if (!(*p).Beforeretneeded) goto LA18;
		LOC20 = 0;
		{
			if (!((*p).Target == ((NU8) 0))) goto LA23;
			LOC20 = copyString(((NimStringDesc*) &TMP4270));
		}
		goto LA21;
		LA23: ;
		{
			LOC20 = copyString(((NimStringDesc*) &TMP4271));
		}
		LA21: ;
		memset((void*)LOC26, 0, sizeof(LOC26));
		LOC26[0] = (*p).Body;
		appf_176115(&result, LOC20, LOC26, 1);
	}
	goto LA16;
	LA18: ;
	{
		app_176052(&result, (*p).Body);
	}
	LA16: ;
	{
		NIM_BOOL LOC30;
		TY176515 LOC34;
		LOC30 = 0;
		LOC30 = ((*(*prc).Typ).Callconv == ((NU8) 4));
		if (!(LOC30)) goto LA31;
		LOC30 = ((*p).Target == ((NU8) 0));
		LA31: ;
		if (!LOC30) goto LA32;
		memset((void*)LOC34, 0, sizeof(LOC34));
		LOC34[0] = result;
		result = ropef_176107(((NimStringDesc*) &TMP4272), LOC34, 1);
	}
	LA32: ;
	{
		NimStringDesc* LOC39;
		if (!(((*prc).Options &(1<<((((NU8) 15))&31)))!=0)) goto LA37;
		LOC39 = 0;
		LOC39 = rawNewString(tnl_173613->Sup.len + 25);
appendString(LOC39, ((NimStringDesc*) &TMP4273));
appendString(LOC39, tnl_173613);
		app_176060(&result, LOC39);
	}
	LA37: ;
	return result;
}

N_NIMCALL(trope176009*, genproc_595154)(tproc594033* oldproc, tsym224846* prc) {
	trope176009* result;
	tsym224846* resultsym;
	trope176009* name;
	trope176009* returnstmt;
	trope176009* resultasgn;
	trope176009* header;
	tcompres594023 a;
	tproc594033* p;
	tnode224816* LOC16;
	NimStringDesc* LOC17;
	TY557098 LOC23;
	result = 0;
	resultsym = 0;
	name = 0;
	returnstmt = 0;
	resultasgn = 0;
	header = 0;
	memset((void*)(&a), 0, sizeof(a));
	p = newproc_594207((*oldproc).G, (*oldproc).Module, (*prc).Ast, (*prc).Options);
	(*p).Target = (*oldproc).Target;
	asgnRef((void**) (&(*p).Up), oldproc);
	returnstmt = NIM_NIL;
	resultasgn = NIM_NIL;
	name = manglename_594315(prc);
	header = generateheader_599148(p, (*prc).Typ);
	{
		NIM_BOOL LOC3;
		NimStringDesc* LOC7;
		TY587896 LOC13;
		NIM_BOOL LOC14;
		TY176515 LOC15;
		LOC3 = 0;
		LOC3 = !(((*(*prc).Typ).Sons->data[0] == NIM_NIL));
		if (!(LOC3)) goto LA4;
		LOC3 = !((((*prc).Flags &(1<<((((NU8) 9))&31)))!=0));
		LA4: ;
		if (!LOC3) goto LA5;
		resultsym = (*(*(*prc).Ast).kindU.S6.Sons->data[7]).kindU.S4.Sym;
		LOC7 = 0;
		{
			if (!((*p).Target == ((NU8) 0))) goto LA10;
			LOC7 = copyString(((NimStringDesc*) &TMP4262));
		}
		goto LA8;
		LA10: ;
		{
			LOC7 = copyString(((NimStringDesc*) &TMP4263));
		}
		LA8: ;
		memset((void*)LOC13, 0, sizeof(LOC13));
		LOC13[0] = manglename_594315(resultsym);
		LOC14 = 0;
		LOC14 = isindirect_601831(resultsym);
		LOC13[1] = createvar_601438(p, (*resultsym).Typ, LOC14);
		resultasgn = ropef_176107(LOC7, LOC13, 2);
		gen_595138(p, (*(*prc).Ast).kindU.S6.Sons->data[7], (&a));
		memset((void*)LOC15, 0, sizeof(LOC15));
		LOC15[0] = a.Res;
		returnstmt = ropef_176107(((NimStringDesc*) &TMP4264), LOC15, 1);
	}
	LA5: ;
	LOC16 = 0;
	LOC16 = getbody_278270(prc);
	genstmt_595147(p, LOC16);
	LOC17 = 0;
	{
		if (!((*p).Target == ((NU8) 0))) goto LA20;
		LOC17 = copyString(((NimStringDesc*) &TMP4265));
	}
	goto LA18;
	LA20: ;
	{
		LOC17 = copyString(((NimStringDesc*) &TMP4266));
	}
	LA18: ;
	memset((void*)LOC23, 0, sizeof(LOC23));
	LOC23[0] = name;
	LOC23[1] = header;
	LOC23[2] = (*p).Locals;
	LOC23[3] = resultasgn;
	LOC23[4] = genprocbody_604203(p, prc);
	LOC23[5] = returnstmt;
	result = ropef_176107(LOC17, LOC23, 6);
	return result;
}

N_NIMCALL(void, usemagic_595168)(tproc594033* p, NimStringDesc* name) {
	tsym224846* s;
	{
		if (!(name->Sup.len == 0)) goto LA3;
		goto BeforeRet;
	}
	LA3: ;
	s = getcompilerproc_281036(name);
	{
		if (!!((s == NIM_NIL))) goto LA7;
		{
			NimStringDesc* LOC13;
			if (!!(((77824 &(1<<(((*s).Kind)&31)))!=0))) goto LA11;
			LOC13 = 0;
			LOC13 = HEX24_197126(TMP4259);
			internalerror_197006(LOC13);
		}
		LA11: ;
		{
			NIM_BOOL LOC16;
			trope176009* LOC19;
			LOC16 = 0;
			LOC16 = containsorincl_221916((&(*(*p).G).Generatedsyms), (*s).Sup.Id);
			if (!!(LOC16)) goto LA17;
			LOC19 = 0;
			LOC19 = genproc_595154(p, s);
			app_176052(&(*(*p).G).Code, LOC19);
		}
		LA17: ;
	}
	goto LA5;
	LA7: ;
	{
		{
			if (!!(((*p).Prc == NIM_NIL))) goto LA23;
			globalerror_196934((*(*p).Prc).Info, ((NU16) 64), name);
		}
		goto LA21;
		LA23: ;
		{
			rawmessage_196733(((NU16) 64), name);
		}
		LA21: ;
	}
	LA5: ;
	BeforeRet: ;
}

N_NIMCALL(void, genenuminfo_594877)(tproc594033* p, ttype224852* typ, trope176009* name) {
	NI length;
	trope176009* s;
	trope176009* n;
	TY553018 LOC19;
	TY587896 LOC20;
	TY587896 LOC21;
	length = sonslen_225249((*typ).N);
	s = NIM_NIL;
	{
		NI i_594896;
		NI HEX3Atmp_595036;
		NI res_595039;
		i_594896 = 0;
		HEX3Atmp_595036 = 0;
		HEX3Atmp_595036 = (NI32)(length - 1);
		res_595039 = 0;
		{
			while (1) {
				tsym224846* field;
				NimStringDesc* extname;
				TY553018 LOC18;
				if (!(res_595039 <= HEX3Atmp_595036)) goto LA3;
				i_594896 = res_595039;
				{
					if (!!(((*(*(*typ).N).kindU.S6.Sons->data[i_594896]).Kind == ((NU8) 3)))) goto LA6;
					internalerror_196987((*(*typ).N).Info, ((NimStringDesc*) &TMP4280));
				}
				LA6: ;
				field = (*(*(*typ).N).kindU.S6.Sons->data[i_594896]).kindU.S4.Sym;
				{
					NimStringDesc* LOC12;
					if (!(0 < i_594896)) goto LA10;
					LOC12 = 0;
					LOC12 = rawNewString(tnl_173613->Sup.len + 2);
appendString(LOC12, ((NimStringDesc*) &TMP4261));
appendString(LOC12, tnl_173613);
					app_176060(&s, LOC12);
				}
				LA10: ;
				{
					if (!((*field).Ast == NIM_NIL)) goto LA15;
					extname = (*(*field).Name).S;
				}
				goto LA13;
				LA15: ;
				{
					extname = (*(*field).Ast).kindU.S3.Strval;
				}
				LA13: ;
				memset((void*)LOC18, 0, sizeof(LOC18));
				LOC18[0] = torope_176082(((NI64) ((*field).Position)));
				LOC18[1] = name;
				LOC18[2] = makejsstring_594344(extname);
				appf_176115(&s, ((NimStringDesc*) &TMP4281), LOC18, 3);
				res_595039 += 1;
			} LA3: ;
		}
	}
	memset((void*)LOC19, 0, sizeof(LOC19));
	LOC19[0] = torope_176082(((NI64) ((*typ).Sup.Id)));
	LOC19[1] = torope_176082(((NI64) (length)));
	LOC19[2] = s;
	n = ropef_176107(((NimStringDesc*) &TMP4282), LOC19, 3);
	memset((void*)LOC20, 0, sizeof(LOC20));
	LOC20[0] = name;
	LOC20[1] = torope_176082(((NI64) ((*typ).Kind)));
	s = ropef_176107(((NimStringDesc*) &TMP4283), LOC20, 2);
	prepend_176068(&(*(*p).G).Typeinfo, s);
	app_176052(&(*(*p).G).Typeinfo, n);
	memset((void*)LOC21, 0, sizeof(LOC21));
	LOC21[0] = name;
	LOC21[1] = torope_176082(((NI64) ((*typ).Sup.Id)));
	appf_176115(&(*(*p).G).Typeinfo, ((NimStringDesc*) &TMP4284), LOC21, 2);
	{
		TY587896 LOC26;
		if (!!(((*typ).Sons->data[0] == NIM_NIL))) goto LA24;
		memset((void*)LOC26, 0, sizeof(LOC26));
		LOC26[0] = name;
		LOC26[1] = gentypeinfo_594354(p, (*typ).Sons->data[0]);
		appf_176115(&(*(*p).G).Typeinfo, ((NimStringDesc*) &TMP4279), LOC26, 2);
	}
	LA24: ;
}

static N_INLINE(tnode224816*, lastson_225261)(tnode224816* n) {
	tnode224816* result;
	NI LOC1;
	result = 0;
	LOC1 = 0;
	LOC1 = sonslen_225249(n);
	result = (*n).kindU.S6.Sons->data[(NI32)(LOC1 - 1)];
	return result;
}

N_NIMCALL(trope176009*, genobjectfields_594358)(tproc594033* p, ttype224852* typ, tnode224816* n) {
	trope176009* result;
	trope176009* s;
	trope176009* u;
	NI length;
	tsym224846* field;
	tnode224816* b;
	result = 0;
	s = 0;
	u = 0;
	length = 0;
	field = 0;
	b = 0;
	result = NIM_NIL;
	switch ((*n).Kind) {
	case ((NU8) 137):
	{
		length = sonslen_225249(n);
		{
			if (!(length == 1)) goto LA4;
			result = genobjectfields_594358(p, typ, (*n).kindU.S6.Sons->data[0]);
		}
		goto LA2;
		LA4: ;
		{
			TY587896 LOC16;
			s = NIM_NIL;
			{
				NI i_594395;
				NI HEX3Atmp_594677;
				NI res_594680;
				i_594395 = 0;
				HEX3Atmp_594677 = 0;
				HEX3Atmp_594677 = (NI32)(length - 1);
				res_594680 = 0;
				{
					while (1) {
						trope176009* LOC15;
						if (!(res_594680 <= HEX3Atmp_594677)) goto LA9;
						i_594395 = res_594680;
						{
							NimStringDesc* LOC14;
							if (!(0 < i_594395)) goto LA12;
							LOC14 = 0;
							LOC14 = rawNewString(tnl_173613->Sup.len + 2);
appendString(LOC14, ((NimStringDesc*) &TMP4261));
appendString(LOC14, tnl_173613);
							app_176060(&s, LOC14);
						}
						LA12: ;
						LOC15 = 0;
						LOC15 = genobjectfields_594358(p, typ, (*n).kindU.S6.Sons->data[i_594395]);
						app_176052(&s, LOC15);
						res_594680 += 1;
					} LA9: ;
				}
			}
			memset((void*)LOC16, 0, sizeof(LOC16));
			LOC16[0] = torope_176082(((NI64) (length)));
			LOC16[1] = s;
			result = ropef_176107(((NimStringDesc*) &TMP4286), LOC16, 2);
		}
		LA2: ;
	}
	break;
	case ((NU8) 3):
	{
		TY553018 LOC18;
		field = (*n).kindU.S4.Sym;
		s = gentypeinfo_594354(p, (*field).Typ);
		memset((void*)LOC18, 0, sizeof(LOC18));
		LOC18[0] = manglename_594315(field);
		LOC18[1] = s;
		LOC18[2] = makejsstring_594344((*(*field).Name).S);
		result = ropef_176107(((NimStringDesc*) &TMP4287), LOC18, 3);
	}
	break;
	case ((NU8) 138):
	{
		TY556593 LOC61;
		NI64 LOC62;
		length = sonslen_225249(n);
		{
			if (!!(((*(*n).kindU.S6.Sons->data[0]).Kind == ((NU8) 3)))) goto LA22;
			internalerror_196987((*n).Info, ((NimStringDesc*) &TMP4288));
		}
		LA22: ;
		field = (*(*n).kindU.S6.Sons->data[0]).kindU.S4.Sym;
		s = gentypeinfo_594354(p, (*field).Typ);
		{
			NI i_594498;
			NI HEX3Atmp_594689;
			NI res_594692;
			i_594498 = 0;
			HEX3Atmp_594689 = 0;
			HEX3Atmp_594689 = (NI32)(length - 1);
			res_594692 = 1;
			{
				while (1) {
					TY587896 LOC59;
					tnode224816* LOC60;
					if (!(res_594692 <= HEX3Atmp_594689)) goto LA26;
					i_594498 = res_594692;
					b = (*n).kindU.S6.Sons->data[i_594498];
					u = NIM_NIL;
					switch ((*b).Kind) {
					case ((NU8) 85):
					{
						{
							NI LOC30;
							LOC30 = 0;
							LOC30 = sonslen_225249(b);
							if (!(LOC30 < 2)) goto LA31;
							internalerror_196987((*b).Info, ((NimStringDesc*) &TMP4289));
						}
						LA31: ;
						{
							NI j_594526;
							NI HEX3Atmp_594684;
							NI LOC34;
							NI res_594687;
							j_594526 = 0;
							HEX3Atmp_594684 = 0;
							LOC34 = 0;
							LOC34 = sonslen_225249(b);
							HEX3Atmp_594684 = (NI32)(LOC34 - 2);
							res_594687 = 0;
							{
								while (1) {
									if (!(res_594687 <= HEX3Atmp_594684)) goto LA36;
									j_594526 = res_594687;
									{
										if (!!((u == NIM_NIL))) goto LA39;
										app_176060(&u, ((NimStringDesc*) &TMP4261));
									}
									LA39: ;
									{
										TY587896 LOC45;
										NI64 LOC46;
										NI64 LOC47;
										if (!((*(*b).kindU.S6.Sons->data[j_594526]).Kind == ((NU8) 44))) goto LA43;
										memset((void*)LOC45, 0, sizeof(LOC45));
										LOC46 = 0;
										LOC46 = getordvalue_262187((*(*b).kindU.S6.Sons->data[j_594526]).kindU.S6.Sons->data[0]);
										LOC45[0] = torope_176082(LOC46);
										LOC47 = 0;
										LOC47 = getordvalue_262187((*(*b).kindU.S6.Sons->data[j_594526]).kindU.S6.Sons->data[1]);
										LOC45[1] = torope_176082(LOC47);
										appf_176115(&u, ((NimStringDesc*) &TMP4290), LOC45, 2);
									}
									goto LA41;
									LA43: ;
									{
										NI64 LOC49;
										trope176009* LOC50;
										LOC49 = 0;
										LOC49 = getordvalue_262187((*b).kindU.S6.Sons->data[j_594526]);
										LOC50 = 0;
										LOC50 = torope_176082(LOC49);
										app_176052(&u, LOC50);
									}
									LA41: ;
									res_594687 += 1;
								} LA36: ;
							}
						}
					}
					break;
					case ((NU8) 88):
					{
						NI64 LOC52;
						LOC52 = 0;
						LOC52 = lengthord_262016((*field).Typ);
						u = torope_176082(LOC52);
					}
					break;
					default:
					{
						internalerror_196987((*n).Info, ((NimStringDesc*) &TMP4291));
					}
					break;
					}
					{
						NimStringDesc* LOC58;
						if (!!((result == NIM_NIL))) goto LA56;
						LOC58 = 0;
						LOC58 = rawNewString(tnl_173613->Sup.len + 2);
appendString(LOC58, ((NimStringDesc*) &TMP4261));
appendString(LOC58, tnl_173613);
						app_176060(&result, LOC58);
					}
					LA56: ;
					memset((void*)LOC59, 0, sizeof(LOC59));
					LOC59[0] = u;
					LOC60 = 0;
					LOC60 = lastson_225261(b);
					LOC59[1] = genobjectfields_594358(p, typ, LOC60);
					appf_176115(&result, ((NimStringDesc*) &TMP4292), LOC59, 2);
					res_594692 += 1;
				} LA26: ;
			}
		}
		memset((void*)LOC61, 0, sizeof(LOC61));
		LOC61[0] = manglename_594315(field);
		LOC61[1] = s;
		LOC62 = 0;
		LOC62 = lengthord_262016((*field).Typ);
		LOC61[2] = torope_176082(LOC62);
		LOC61[3] = makejsstring_594344((*(*field).Name).S);
		LOC61[4] = result;
		result = ropef_176107(((NimStringDesc*) &TMP4293), LOC61, 5);
	}
	break;
	default:
	{
		internalerror_196987((*n).Info, ((NimStringDesc*) &TMP4288));
	}
	break;
	}
	return result;
}

N_NIMCALL(void, genobjectinfo_594724)(tproc594033* p, ttype224852* typ, trope176009* name) {
	trope176009* s;
	TY587896 LOC1;
	TY587896 LOC2;
	TY587896 LOC3;
	memset((void*)LOC1, 0, sizeof(LOC1));
	LOC1[0] = name;
	LOC1[1] = torope_176082(((NI64) ((*typ).Kind)));
	s = ropef_176107(((NimStringDesc*) &TMP4283), LOC1, 2);
	prepend_176068(&(*(*p).G).Typeinfo, s);
	memset((void*)LOC2, 0, sizeof(LOC2));
	LOC2[0] = torope_176082(((NI64) ((*typ).Sup.Id)));
	LOC2[1] = genobjectfields_594358(p, typ, (*typ).N);
	appf_176115(&(*(*p).G).Typeinfo, ((NimStringDesc*) &TMP4285), LOC2, 2);
	memset((void*)LOC3, 0, sizeof(LOC3));
	LOC3[0] = name;
	LOC3[1] = torope_176082(((NI64) ((*typ).Sup.Id)));
	appf_176115(&(*(*p).G).Typeinfo, ((NimStringDesc*) &TMP4284), LOC3, 2);
	{
		NIM_BOOL LOC6;
		TY587896 LOC10;
		LOC6 = 0;
		LOC6 = ((*typ).Kind == ((NU8) 17));
		if (!(LOC6)) goto LA7;
		LOC6 = !(((*typ).Sons->data[0] == NIM_NIL));
		LA7: ;
		if (!LOC6) goto LA8;
		memset((void*)LOC10, 0, sizeof(LOC10));
		LOC10[0] = name;
		LOC10[1] = gentypeinfo_594354(p, (*typ).Sons->data[0]);
		appf_176115(&(*(*p).G).Typeinfo, ((NimStringDesc*) &TMP4279), LOC10, 2);
	}
	LA8: ;
}

N_NIMCALL(trope176009*, gentuplefields_594787)(tproc594033* p, ttype224852* typ) {
	trope176009* result;
	trope176009* s;
	TY587896 LOC11;
	NI LOC12;
	result = 0;
	s = NIM_NIL;
	{
		NI i_594814;
		NI HEX3Atmp_594828;
		NI LOC2;
		NI res_594831;
		i_594814 = 0;
		HEX3Atmp_594828 = 0;
		LOC2 = 0;
		LOC2 = len_229005(typ);
		HEX3Atmp_594828 = (LOC2 - 1);
		res_594831 = 0;
		{
			while (1) {
				TY587896 LOC10;
				if (!(res_594831 <= HEX3Atmp_594828)) goto LA4;
				i_594814 = res_594831;
				{
					NimStringDesc* LOC9;
					if (!(0 < i_594814)) goto LA7;
					LOC9 = 0;
					LOC9 = rawNewString(tnl_173613->Sup.len + 2);
appendString(LOC9, ((NimStringDesc*) &TMP4261));
appendString(LOC9, tnl_173613);
					app_176060(&s, LOC9);
				}
				LA7: ;
				memset((void*)LOC10, 0, sizeof(LOC10));
				LOC10[0] = torope_176082(((NI64) (i_594814)));
				LOC10[1] = gentypeinfo_594354(p, (*typ).Sons->data[i_594814]);
				appf_176115(&s, ((NimStringDesc*) &TMP4294), LOC10, 2);
				res_594831 += 1;
			} LA4: ;
		}
	}
	memset((void*)LOC11, 0, sizeof(LOC11));
	LOC12 = 0;
	LOC12 = len_229005(typ);
	LOC11[0] = torope_176082(((NI64) (LOC12)));
	LOC11[1] = s;
	result = ropef_176107(((NimStringDesc*) &TMP4286), LOC11, 2);
	return result;
}

N_NIMCALL(void, gentupleinfo_594845)(tproc594033* p, ttype224852* typ, trope176009* name) {
	trope176009* s;
	TY587896 LOC1;
	TY587896 LOC2;
	TY587896 LOC3;
	memset((void*)LOC1, 0, sizeof(LOC1));
	LOC1[0] = name;
	LOC1[1] = torope_176082(((NI64) ((*typ).Kind)));
	s = ropef_176107(((NimStringDesc*) &TMP4283), LOC1, 2);
	prepend_176068(&(*(*p).G).Typeinfo, s);
	memset((void*)LOC2, 0, sizeof(LOC2));
	LOC2[0] = torope_176082(((NI64) ((*typ).Sup.Id)));
	LOC2[1] = gentuplefields_594787(p, typ);
	appf_176115(&(*(*p).G).Typeinfo, ((NimStringDesc*) &TMP4285), LOC2, 2);
	memset((void*)LOC3, 0, sizeof(LOC3));
	LOC3[0] = name;
	LOC3[1] = torope_176082(((NI64) ((*typ).Sup.Id)));
	appf_176115(&(*(*p).G).Typeinfo, ((NimStringDesc*) &TMP4284), LOC3, 2);
}

N_NIMCALL(trope176009*, gentypeinfo_594354)(tproc594033* p, ttype224852* typ) {
	trope176009* result;
	ttype224852* t;
	TY176515 LOC5;
	result = 0;
	t = typ;
	{
		if (!((*t).Kind == ((NU8) 11))) goto LA3;
		t = lastson_225267(t);
	}
	LA3: ;
	memset((void*)LOC5, 0, sizeof(LOC5));
	LOC5[0] = torope_176082(((NI64) ((*t).Sup.Id)));
	result = ropef_176107(((NimStringDesc*) &TMP4277), LOC5, 1);
	{
		NIM_BOOL LOC8;
		LOC8 = 0;
		LOC8 = containsorincl_221916((&(*(*p).G).Typeinfogenerated), (*t).Sup.Id);
		if (!LOC8) goto LA9;
		goto BeforeRet;
	}
	LA9: ;
	switch ((*t).Kind) {
	case ((NU8) 13):
	{
		result = gentypeinfo_594354(p, (*typ).Sons->data[0]);
	}
	break;
	case ((NU8) 26):
	case ((NU8) 25):
	case ((NU8) 1):
	case ((NU8) 2):
	case ((NU8) 29):
	case ((NU8) 28):
	case ((NU8) 31) ... ((NU8) 39):
	{
		trope176009* s;
		TY587896 LOC13;
		memset((void*)LOC13, 0, sizeof(LOC13));
		LOC13[0] = result;
		LOC13[1] = torope_176082(((NI64) ((*t).Kind)));
		s = ropef_176107(((NimStringDesc*) &TMP4278), LOC13, 2);
		prepend_176068(&(*(*p).G).Typeinfo, s);
	}
	break;
	case ((NU8) 23):
	case ((NU8) 22):
	case ((NU8) 21):
	case ((NU8) 24):
	case ((NU8) 20):
	case ((NU8) 19):
	{
		trope176009* s;
		TY587896 LOC15;
		TY587896 LOC16;
		ttype224852* LOC17;
		memset((void*)LOC15, 0, sizeof(LOC15));
		LOC15[0] = result;
		LOC15[1] = torope_176082(((NI64) ((*t).Kind)));
		s = ropef_176107(((NimStringDesc*) &TMP4278), LOC15, 2);
		prepend_176068(&(*(*p).G).Typeinfo, s);
		memset((void*)LOC16, 0, sizeof(LOC16));
		LOC16[0] = result;
		LOC17 = 0;
		LOC17 = lastson_225267(typ);
		LOC16[1] = gentypeinfo_594354(p, LOC17);
		appf_176115(&(*(*p).G).Typeinfo, ((NimStringDesc*) &TMP4279), LOC16, 2);
	}
	break;
	case ((NU8) 4):
	case ((NU8) 16):
	{
		trope176009* s;
		TY587896 LOC19;
		TY587896 LOC20;
		memset((void*)LOC19, 0, sizeof(LOC19));
		LOC19[0] = result;
		LOC19[1] = torope_176082(((NI64) ((*t).Kind)));
		s = ropef_176107(((NimStringDesc*) &TMP4278), LOC19, 2);
		prepend_176068(&(*(*p).G).Typeinfo, s);
		memset((void*)LOC20, 0, sizeof(LOC20));
		LOC20[0] = result;
		LOC20[1] = gentypeinfo_594354(p, (*typ).Sons->data[1]);
		appf_176115(&(*(*p).G).Typeinfo, ((NimStringDesc*) &TMP4279), LOC20, 2);
	}
	break;
	case ((NU8) 14):
	{
		genenuminfo_594877(p, t, result);
	}
	break;
	case ((NU8) 17):
	{
		genobjectinfo_594724(p, t, result);
	}
	break;
	case ((NU8) 18):
	{
		gentupleinfo_594845(p, t, result);
	}
	break;
	default:
	{
		NimStringDesc* LOC25;
		LOC25 = 0;
		LOC25 = rawNewString(reprEnum((*t).Kind, (&NTI224258))->Sup.len + 13);
appendString(LOC25, ((NimStringDesc*) &TMP4295));
appendString(LOC25, reprEnum((*t).Kind, (&NTI224258)));
appendChar(LOC25, 41);
		internalerror_197006(LOC25);
	}
	break;
	}
	BeforeRet: ;
	return result;
}

N_NIMCALL(trope176009*, createrecordvaraux_601446)(tproc594033* p, tnode224816* rec, NI* c) {
	trope176009* result;
	result = 0;
	result = NIM_NIL;
	switch ((*rec).Kind) {
	case ((NU8) 137):
	{
		{
			NI i_601465;
			NI HEX3Atmp_601570;
			NI LOC3;
			NI res_601573;
			i_601465 = 0;
			HEX3Atmp_601570 = 0;
			LOC3 = 0;
			LOC3 = sonslen_225249(rec);
			HEX3Atmp_601570 = (NI32)(LOC3 - 1);
			res_601573 = 0;
			{
				while (1) {
					trope176009* LOC6;
					if (!(res_601573 <= HEX3Atmp_601570)) goto LA5;
					i_601465 = res_601573;
					LOC6 = 0;
					LOC6 = createrecordvaraux_601446(p, (*rec).kindU.S6.Sons->data[i_601465], c);
					app_176052(&result, LOC6);
					res_601573 += 1;
				} LA5: ;
			}
		}
	}
	break;
	case ((NU8) 138):
	{
		trope176009* LOC8;
		LOC8 = 0;
		LOC8 = createrecordvaraux_601446(p, (*rec).kindU.S6.Sons->data[0], c);
		app_176052(&result, LOC8);
		{
			NI i_601508;
			NI HEX3Atmp_601576;
			NI LOC10;
			NI res_601579;
			i_601508 = 0;
			HEX3Atmp_601576 = 0;
			LOC10 = 0;
			LOC10 = sonslen_225249(rec);
			HEX3Atmp_601576 = (NI32)(LOC10 - 1);
			res_601579 = 1;
			{
				while (1) {
					tnode224816* LOC13;
					trope176009* LOC14;
					if (!(res_601579 <= HEX3Atmp_601576)) goto LA12;
					i_601508 = res_601579;
					LOC13 = 0;
					LOC13 = lastson_225261((*rec).kindU.S6.Sons->data[i_601508]);
					LOC14 = 0;
					LOC14 = createrecordvaraux_601446(p, LOC13, c);
					app_176052(&result, LOC14);
					res_601579 += 1;
				} LA12: ;
			}
		}
	}
	break;
	case ((NU8) 3):
	{
		trope176009* LOC20;
		trope176009* LOC21;
		{
			if (!(0 < (*c))) goto LA18;
			app_176060(&result, ((NimStringDesc*) &TMP4261));
		}
		LA18: ;
		LOC20 = 0;
		LOC20 = manglename_594315((*rec).kindU.S4.Sym);
		app_176052(&result, LOC20);
		app_176060(&result, ((NimStringDesc*) &TMP4304));
		LOC21 = 0;
		LOC21 = createvar_601438(p, (*(*rec).kindU.S4.Sym).Typ, NIM_FALSE);
		app_176052(&result, LOC21);
		(*c) += 1;
	}
	break;
	default:
	{
		internalerror_196987((*rec).Info, ((NimStringDesc*) &TMP4305));
	}
	break;
	}
	return result;
}

N_NIMCALL(trope176009*, createvar_601438)(tproc594033* p, ttype224852* typ, NIM_BOOL indirect) {
	trope176009* result;
	ttype224852* t;
	result = 0;
	t = skiptypes_229245(typ, IL64(211106232576256));
	switch ((*t).Kind) {
	case ((NU8) 31) ... ((NU8) 35):
	case ((NU8) 14):
	case ((NU8) 2):
	{
		result = puttoseq_601423(((NimStringDesc*) &TMP4255), indirect);
	}
	break;
	case ((NU8) 36) ... ((NU8) 39):
	{
		result = puttoseq_601423(((NimStringDesc*) &TMP4256), indirect);
	}
	break;
	case ((NU8) 20):
	case ((NU8) 11):
	{
		ttype224852* LOC4;
		LOC4 = 0;
		LOC4 = lastson_225267(typ);
		result = createvar_601438(p, LOC4, indirect);
	}
	break;
	case ((NU8) 19):
	{
		result = torope_176076(((NimStringDesc*) &TMP4257));
	}
	break;
	case ((NU8) 1):
	{
		result = puttoseq_601423(((NimStringDesc*) &TMP4258), indirect);
	}
	break;
	case ((NU8) 16):
	case ((NU8) 4):
	{
		NI length;
		NI64 LOC8;
		ttype224852* e;
		LOC8 = 0;
		LOC8 = lengthord_262016(t);
		length = ((NI) (LOC8));
		e = elemtype_262656(t);
		{
			TY553018 LOC13;
			if (!(32 < length)) goto LA11;
			usemagic_595168(p, ((NimStringDesc*) &TMP4274));
			usemagic_595168(p, ((NimStringDesc*) &TMP4275));
			memset((void*)LOC13, 0, sizeof(LOC13));
			LOC13[0] = torope_176082(((NI64) (length)));
			LOC13[1] = createvar_601438(p, e, NIM_FALSE);
			LOC13[2] = gentypeinfo_594354(p, e);
			result = ropef_176107(((NimStringDesc*) &TMP4276), LOC13, 3);
		}
		goto LA9;
		LA11: ;
		{
			NI i;
			result = torope_176076(((NimStringDesc*) &TMP4296));
			i = 0;
			{
				while (1) {
					trope176009* LOC21;
					if (!(i < length)) goto LA16;
					{
						if (!(0 < i)) goto LA19;
						app_176060(&result, ((NimStringDesc*) &TMP4261));
					}
					LA19: ;
					LOC21 = 0;
					LOC21 = createvar_601438(p, e, NIM_FALSE);
					app_176052(&result, LOC21);
					i += 1;
				} LA16: ;
			}
			app_176060(&result, ((NimStringDesc*) &TMP4297));
		}
		LA9: ;
	}
	break;
	case ((NU8) 18):
	{
		result = torope_176076(((NimStringDesc*) &TMP4298));
		{
			NI i_601658;
			NI HEX3Atmp_601798;
			NI LOC24;
			NI res_601801;
			i_601658 = 0;
			HEX3Atmp_601798 = 0;
			LOC24 = 0;
			LOC24 = sonslen_225255(t);
			HEX3Atmp_601798 = (LOC24 - 1);
			res_601801 = 0;
			{
				while (1) {
					NimStringDesc* LOC31;
					TY587896 LOC37;
					if (!(res_601801 <= HEX3Atmp_601798)) goto LA26;
					i_601658 = res_601801;
					{
						if (!(0 < i_601658)) goto LA29;
						app_176060(&result, ((NimStringDesc*) &TMP4261));
					}
					LA29: ;
					LOC31 = 0;
					{
						if (!((*p).Target == ((NU8) 0))) goto LA34;
						LOC31 = copyString(((NimStringDesc*) &TMP4299));
					}
					goto LA32;
					LA34: ;
					{
						LOC31 = copyString(((NimStringDesc*) &TMP4300));
					}
					LA32: ;
					memset((void*)LOC37, 0, sizeof(LOC37));
					LOC37[0] = torope_176082(((NI64) (i_601658)));
					LOC37[1] = createvar_601438(p, (*t).Sons->data[i_601658], NIM_FALSE);
					appf_176115(&result, LOC31, LOC37, 2);
					res_601801 += 1;
				} LA26: ;
			}
		}
		app_176060(&result, ((NimStringDesc*) &TMP4301));
	}
	break;
	case ((NU8) 17):
	{
		NI c;
		result = torope_176076(((NimStringDesc*) &TMP4298));
		c = 0;
		{
			NIM_BOOL LOC41;
			NimStringDesc* LOC45;
			TY176515 LOC51;
			LOC41 = 0;
			LOC41 = !((((*t).Flags &(1<<((((NU8) 2))&31)))!=0));
			if (LOC41) goto LA42;
			LOC41 = !(((*t).Sons->data[0] == NIM_NIL));
			LA42: ;
			if (!LOC41) goto LA43;
			c += 1;
			LOC45 = 0;
			{
				if (!((*p).Target == ((NU8) 0))) goto LA48;
				LOC45 = copyString(((NimStringDesc*) &TMP4302));
			}
			goto LA46;
			LA48: ;
			{
				LOC45 = copyString(((NimStringDesc*) &TMP4303));
			}
			LA46: ;
			memset((void*)LOC51, 0, sizeof(LOC51));
			LOC51[0] = gentypeinfo_594354(p, t);
			appf_176115(&result, LOC45, LOC51, 1);
		}
		LA43: ;
		{
			while (1) {
				trope176009* LOC54;
				if (!!((t == NIM_NIL))) goto LA53;
				LOC54 = 0;
				LOC54 = createrecordvaraux_601446(p, (*t).N, (&c));
				app_176052(&result, LOC54);
				t = (*t).Sons->data[0];
			} LA53: ;
		}
		app_176060(&result, ((NimStringDesc*) &TMP4301));
	}
	break;
	case ((NU8) 23):
	case ((NU8) 21):
	case ((NU8) 22):
	{
		{
			NU8 LOC58;
			NimStringDesc* LOC61;
			LOC58 = 0;
			LOC58 = maptype_594291(t);
			if (!(LOC58 == ((NU8) 8))) goto LA59;
			LOC61 = 0;
			{
				if (!((*p).Target == ((NU8) 0))) goto LA64;
				LOC61 = copyString(((NimStringDesc*) &TMP4306));
			}
			goto LA62;
			LA64: ;
			{
				LOC61 = copyString(((NimStringDesc*) &TMP4307));
			}
			LA62: ;
			result = puttoseq_601423(LOC61, indirect);
		}
		goto LA56;
		LA59: ;
		{
			NimStringDesc* LOC68;
			LOC68 = 0;
			{
				if (!((*p).Target == ((NU8) 0))) goto LA71;
				LOC68 = copyString(((NimStringDesc*) &TMP4308));
			}
			goto LA69;
			LA71: ;
			{
				LOC68 = copyString(((NimStringDesc*) &TMP4309));
			}
			LA69: ;
			result = puttoseq_601423(LOC68, indirect);
		}
		LA56: ;
	}
	break;
	case ((NU8) 24):
	case ((NU8) 28):
	case ((NU8) 29):
	case ((NU8) 26):
	case ((NU8) 25):
	{
		NimStringDesc* LOC75;
		LOC75 = 0;
		{
			if (!((*p).Target == ((NU8) 0))) goto LA78;
			LOC75 = copyString(((NimStringDesc*) &TMP4308));
		}
		goto LA76;
		LA78: ;
		{
			LOC75 = copyString(((NimStringDesc*) &TMP4309));
		}
		LA76: ;
		result = puttoseq_601423(LOC75, indirect);
	}
	break;
	default:
	{
		NimStringDesc* LOC82;
		LOC82 = 0;
		LOC82 = rawNewString(reprEnum((*t).Kind, (&NTI224258))->Sup.len + 11);
appendString(LOC82, ((NimStringDesc*) &TMP4310));
appendString(LOC82, reprEnum((*t).Kind, (&NTI224258)));
		internalerror_197006(LOC82);
		result = NIM_NIL;
	}
	break;
	}
	return result;
}

N_NIMCALL(NIM_BOOL, needsnocopy_599474)(tnode224816* y) {
	NIM_BOOL result;
	NIM_BOOL LOC1;
	ttype224852* LOC3;
	result = 0;
	LOC1 = 0;
	LOC1 = ((TMP4311[(*y).Kind/8] &(1<<((*y).Kind%8)))!=0);
	if (LOC1) goto LA2;
	LOC3 = 0;
	LOC3 = skiptypes_229245((*y).Typ, IL64(211106232576256));
	LOC1 = ((*LOC3).Kind == ((NU8) 22) || (*LOC3).Kind == ((NU8) 21) || (*LOC3).Kind == ((NU8) 23));
	LA2: ;
	result = LOC1;
	return result;
}

N_NIMCALL(void, genvarinit_601901)(tproc594033* p, tsym224846* v, tnode224816* n) {
	tcompres594023 a;
	trope176009* s;
	memset((void*)(&a), 0, sizeof(a));
	s = 0;
	{
		NimStringDesc* LOC5;
		TY587896 LOC11;
		NIM_BOOL LOC12;
		if (!((*n).Kind == ((NU8) 1))) goto LA3;
		LOC5 = 0;
		{
			if (!((*p).Target == ((NU8) 0))) goto LA8;
			LOC5 = copyString(((NimStringDesc*) &TMP4251));
		}
		goto LA6;
		LA8: ;
		{
			LOC5 = copyString(((NimStringDesc*) &TMP4252));
		}
		LA6: ;
		memset((void*)LOC11, 0, sizeof(LOC11));
		LOC11[0] = manglename_594315(v);
		LOC12 = 0;
		LOC12 = isindirect_601831(v);
		LOC11[1] = createvar_601438(p, (*v).Typ, LOC12);
		appf_176115(&(*p).Body, LOC5, LOC11, 2);
	}
	goto LA1;
	LA3: ;
	{
		trope176009* LOC14;
		NU8 LOC15;
		LOC14 = 0;
		LOC14 = manglename_594315(v);
		gen_595138(p, n, (&a));
		LOC15 = 0;
		LOC15 = maptype_594291((*v).Typ);
		switch (LOC15) {
		case ((NU8) 7):
		{
			{
				NIM_BOOL LOC19;
				LOC19 = 0;
				LOC19 = needsnocopy_599474(n);
				if (!LOC19) goto LA20;
				s = a.Res;
			}
			goto LA17;
			LA20: ;
			{
				TY587896 LOC23;
				usemagic_595168(p, ((NimStringDesc*) &TMP4275));
				memset((void*)LOC23, 0, sizeof(LOC23));
				LOC23[0] = a.Res;
				LOC23[1] = gentypeinfo_594354(p, (*n).Typ);
				s = ropef_176107(((NimStringDesc*) &TMP4312), LOC23, 2);
			}
			LA17: ;
		}
		break;
		case ((NU8) 8):
		{
			{
				if (!!((a.Typ == ((NU8) 8)))) goto LA27;
				internalerror_196987((*n).Info, ((NimStringDesc*) &TMP4313));
			}
			LA27: ;
			{
				NimStringDesc* LOC33;
				TY553018 LOC39;
				if (!!(((32776 & (*v).Flags) == 0))) goto LA31;
				LOC33 = 0;
				{
					if (!((*p).Target == ((NU8) 0))) goto LA36;
					LOC33 = copyString(((NimStringDesc*) &TMP4314));
				}
				goto LA34;
				LA36: ;
				{
					LOC33 = copyString(((NimStringDesc*) &TMP4315));
				}
				LA34: ;
				memset((void*)LOC39, 0, sizeof(LOC39));
				LOC39[0] = (*v).Loc.R;
				LOC39[1] = a.Address;
				LOC39[2] = a.Res;
				appf_176115(&(*p).Body, LOC33, LOC39, 3);
			}
			goto LA29;
			LA31: ;
			{
				NimStringDesc* LOC41;
				TY553018 LOC47;
				LOC41 = 0;
				{
					if (!((*p).Target == ((NU8) 0))) goto LA44;
					LOC41 = copyString(((NimStringDesc*) &TMP4316));
				}
				goto LA42;
				LA44: ;
				{
					LOC41 = copyString(((NimStringDesc*) &TMP4317));
				}
				LA42: ;
				memset((void*)LOC47, 0, sizeof(LOC47));
				LOC47[0] = (*v).Loc.R;
				LOC47[1] = a.Address;
				LOC47[2] = a.Res;
				appf_176115(&(*p).Body, LOC41, LOC47, 3);
			}
			LA29: ;
			goto BeforeRet;
		}
		break;
		default:
		{
			s = a.Res;
		}
		break;
		}
		{
			NIM_BOOL LOC51;
			NimStringDesc* LOC54;
			TY587896 LOC60;
			LOC51 = 0;
			LOC51 = isindirect_601831(v);
			if (!LOC51) goto LA52;
			LOC54 = 0;
			{
				if (!((*p).Target == ((NU8) 0))) goto LA57;
				LOC54 = copyString(((NimStringDesc*) &TMP4318));
			}
			goto LA55;
			LA57: ;
			{
				LOC54 = copyString(((NimStringDesc*) &TMP4319));
			}
			LA55: ;
			memset((void*)LOC60, 0, sizeof(LOC60));
			LOC60[0] = (*v).Loc.R;
			LOC60[1] = s;
			appf_176115(&(*p).Body, LOC54, LOC60, 2);
		}
		goto LA49;
		LA52: ;
		{
			NimStringDesc* LOC62;
			TY587896 LOC68;
			LOC62 = 0;
			{
				if (!((*p).Target == ((NU8) 0))) goto LA65;
				LOC62 = copyString(((NimStringDesc*) &TMP4251));
			}
			goto LA63;
			LA65: ;
			{
				LOC62 = copyString(((NimStringDesc*) &TMP4252));
			}
			LA63: ;
			memset((void*)LOC68, 0, sizeof(LOC68));
			LOC68[0] = (*v).Loc.R;
			LOC68[1] = s;
			appf_176115(&(*p).Body, LOC62, LOC68, 2);
		}
		LA49: ;
	}
	LA1: ;
	BeforeRet: ;
}

N_NIMCALL(void, genconstant_595161)(tproc594033* p, tsym224846* c) {
	{
		NIM_BOOL LOC3;
		NIM_BOOL LOC5;
		trope176009* oldbody;
		LOC3 = 0;
		LOC3 = !((((*c).Loc.Flags &(1<<((((NU8) 3))&7)))!=0));
		if (!(LOC3)) goto LA4;
		LOC5 = 0;
		LOC5 = containsorincl_221916((&(*(*p).G).Generatedsyms), (*c).Sup.Id);
		LOC3 = !(LOC5);
		LA4: ;
		if (!LOC3) goto LA6;
		oldbody = (*p).Body;
		asgnRefNoCycle((void**) (&(*p).Body), NIM_NIL);
		genvarinit_601901(p, c, (*c).Ast);
		app_176052(&(*(*p).G).Code, (*p).Body);
		asgnRefNoCycle((void**) (&(*p).Body), oldbody);
	}
	LA6: ;
}

N_NIMCALL(void, gensym_600662)(tproc594033* p, tnode224816* n, tcompres594023* r) {
	tsym224846* s;
	s = (*n).kindU.S4.Sym;
	switch ((*s).Kind) {
	case ((NU8) 8):
	case ((NU8) 9):
	case ((NU8) 3):
	case ((NU8) 5):
	case ((NU8) 11):
	{
		NU8 k;
		{
			NimStringDesc* LOC6;
			if (!((*s).Loc.R == NIM_NIL)) goto LA4;
			LOC6 = 0;
			LOC6 = rawNewString((*(*s).Name).S->Sup.len + 30);
appendString(LOC6, ((NimStringDesc*) &TMP4247));
appendString(LOC6, (*(*s).Name).S);
			internalerror_196987((*n).Info, LOC6);
		}
		LA4: ;
		k = maptype_594291((*s).Typ);
		{
			if (!(k == ((NU8) 8))) goto LA9;
			(*r).Typ = ((NU8) 8);
			{
				TY176515 LOC15;
				TY176515 LOC16;
				if (!!(((32776 & (*s).Flags) == 0))) goto LA13;
				memset((void*)LOC15, 0, sizeof(LOC15));
				LOC15[0] = (*s).Loc.R;
				unsureAsgnRef((void**) (&(*r).Address), ropef_176107(((NimStringDesc*) &TMP4248), LOC15, 1));
				memset((void*)LOC16, 0, sizeof(LOC16));
				LOC16[0] = (*s).Loc.R;
				unsureAsgnRef((void**) (&(*r).Res), ropef_176107(((NimStringDesc*) &TMP4249), LOC16, 1));
			}
			goto LA11;
			LA13: ;
			{
				unsureAsgnRef((void**) (&(*r).Address), (*s).Loc.R);
				unsureAsgnRef((void**) (&(*r).Res), con_176031((*s).Loc.R, ((NimStringDesc*) &TMP4250)));
			}
			LA11: ;
		}
		goto LA7;
		LA9: ;
		{
			NIM_BOOL LOC19;
			TY176515 LOC23;
			LOC19 = 0;
			LOC19 = !((k == ((NU8) 7)));
			if (!(LOC19)) goto LA20;
			LOC19 = !(((32776 & (*s).Flags) == 0));
			LA20: ;
			if (!LOC19) goto LA21;
			memset((void*)LOC23, 0, sizeof(LOC23));
			LOC23[0] = (*s).Loc.R;
			unsureAsgnRef((void**) (&(*r).Res), ropef_176107(((NimStringDesc*) &TMP4248), LOC23, 1));
		}
		goto LA7;
		LA21: ;
		{
			unsureAsgnRef((void**) (&(*r).Res), (*s).Loc.R);
		}
		LA7: ;
	}
	break;
	case ((NU8) 10):
	{
		genconstant_595161(p, s);
		{
			NimStringDesc* LOC30;
			if (!((*s).Loc.R == NIM_NIL)) goto LA28;
			LOC30 = 0;
			LOC30 = rawNewString((*(*s).Name).S->Sup.len + 30);
appendString(LOC30, ((NimStringDesc*) &TMP4247));
appendString(LOC30, (*(*s).Name).S);
			internalerror_196987((*n).Info, LOC30);
		}
		LA28: ;
		unsureAsgnRef((void**) (&(*r).Res), (*s).Loc.R);
	}
	break;
	case ((NU8) 12):
	case ((NU8) 16):
	case ((NU8) 13):
	{
		trope176009* LOC32;
		LOC32 = 0;
		LOC32 = manglename_594315(s);
		unsureAsgnRef((void**) (&(*r).Res), (*s).Loc.R);
		{
			NIM_BOOL LOC35;
			NIM_BOOL LOC36;
			LOC35 = 0;
			LOC36 = 0;
			LOC36 = (((*s).Loc.Flags &(1<<((((NU8) 3))&7)))!=0);
			if (LOC36) goto LA37;
			LOC36 = !(((*s).Magic == ((NU16) 0)));
			LA37: ;
			LOC35 = LOC36;
			if (LOC35) goto LA38;
			LOC35 = !(((134217760 & (*s).Flags) == 0));
			LA38: ;
			if (!LOC35) goto LA39;
		}
		goto LA33;
		LA39: ;
		{
			NIM_BOOL LOC42;
			tnode224816* LOC44;
			LOC42 = 0;
			LOC42 = ((*s).Kind == ((NU8) 13));
			if (!(LOC42)) goto LA43;
			LOC44 = 0;
			LOC44 = getbody_278270(s);
			LOC42 = ((*LOC44).Kind == ((NU8) 1));
			LA43: ;
			if (!LOC42) goto LA45;
		}
		goto LA33;
		LA45: ;
		{
			if (!(((*s).Flags &(1<<((((NU8) 4))&31)))!=0)) goto LA48;
			(*(*p).G).Forwarded = (tsymseq224818*) incrSeq(&((*(*p).G).Forwarded)->Sup, sizeof(tsym224846*));
			asgnRefNoCycle((void**) (&(*(*p).G).Forwarded->data[(*(*p).G).Forwarded->Sup.len-1]), s);
		}
		goto LA33;
		LA48: ;
		{
			NIM_BOOL LOC51;
			trope176009* newp;
			tproc594033* owner;
			LOC51 = 0;
			LOC51 = containsorincl_221916((&(*(*p).G).Generatedsyms), (*s).Sup.Id);
			if (!!(LOC51)) goto LA52;
			newp = genproc_595154(p, s);
			owner = p;
			{
				while (1) {
					NIM_BOOL LOC56;
					LOC56 = 0;
					LOC56 = !((owner == NIM_NIL));
					if (!(LOC56)) goto LA57;
					LOC56 = !(((*owner).Prc == (*s).Owner));
					LA57: ;
					if (!LOC56) goto LA55;
					owner = (*owner).Up;
				} LA55: ;
			}
			{
				if (!!((owner == NIM_NIL))) goto LA60;
				app_176052(&(*owner).Locals, newp);
			}
			goto LA58;
			LA60: ;
			{
				app_176052(&(*(*p).G).Code, newp);
			}
			LA58: ;
		}
		goto LA33;
		LA52: ;
		LA33: ;
	}
	break;
	default:
	{
		{
			NimStringDesc* LOC68;
			if (!((*s).Loc.R == NIM_NIL)) goto LA66;
			LOC68 = 0;
			LOC68 = rawNewString((*(*s).Name).S->Sup.len + 30);
appendString(LOC68, ((NimStringDesc*) &TMP4247));
appendString(LOC68, (*(*s).Name).S);
			internalerror_196987((*n).Info, LOC68);
		}
		LA66: ;
		unsureAsgnRef((void**) (&(*r).Res), (*s).Loc.R);
	}
	break;
	}
	(*r).Kind = ((NU8) 2);
}

static N_INLINE(NIM_BOOL, isemptytype_231990)(ttype224852* t) {
	NIM_BOOL result;
	NIM_BOOL LOC1;
	result = 0;
	LOC1 = 0;
	LOC1 = (t == NIM_NIL);
	if (LOC1) goto LA2;
	LOC1 = ((*t).Kind == ((NU8) 3) || (*t).Kind == ((NU8) 7));
	LA2: ;
	result = LOC1;
	return result;
}

static N_INLINE(NI, len_225364)(tnode224816* n) {
	NI result;
	result = 0;
	{
		if (!(*n).kindU.S6.Sons == 0) goto LA3;
		result = 0;
	}
	goto LA1;
	LA3: ;
	{
		result = (*n).kindU.S6.Sons->Sup.len;
	}
	LA1: ;
	return result;
}

static N_INLINE(NIM_BOOL, isatom_231962)(tnode224816* n) {
	NIM_BOOL result;
	NIM_BOOL LOC1;
	result = 0;
	LOC1 = 0;
	LOC1 = (((NU8) 0) <= (*n).Kind);
	if (!(LOC1)) goto LA2;
	LOC1 = ((*n).Kind <= ((NU8) 23));
	LA2: ;
	result = LOC1;
	return result;
}

N_NIMCALL(NIM_BOOL, issimpleexpr_595250)(tnode224816* n) {
	NIM_BOOL result;
	result = 0;
	{
		if (!((*n).Kind >= ((NU8) 26) && (*n).Kind <= ((NU8) 32) || (*n).Kind >= ((NU8) 37) && (*n).Kind <= ((NU8) 39) || (*n).Kind >= ((NU8) 41) && (*n).Kind <= ((NU8) 42) || (*n).Kind == ((NU8) 45))) goto LA3;
		{
			tnode224816* c_595285;
			c_595285 = 0;
			{
				NI i_595290;
				NI HEX3Atmp_595292;
				NI LOC7;
				NI res_595294;
				i_595290 = 0;
				HEX3Atmp_595292 = 0;
				LOC7 = 0;
				LOC7 = len_225364(n);
				HEX3Atmp_595292 = (LOC7 - 1);
				res_595294 = 0;
				{
					while (1) {
						if (!(res_595294 <= HEX3Atmp_595292)) goto LA9;
						i_595290 = res_595294;
						c_595285 = (*n).kindU.S6.Sons->data[i_595290];
						{
							NIM_BOOL LOC12;
							LOC12 = 0;
							LOC12 = issimpleexpr_595250(c_595285);
							if (!!(LOC12)) goto LA13;
							result = NIM_FALSE;
							goto BeforeRet;
						}
						LA13: ;
						res_595294 += 1;
					} LA9: ;
				}
			}
		}
		result = NIM_TRUE;
	}
	goto LA1;
	LA3: ;
	{
		NIM_BOOL LOC16;
		LOC16 = 0;
		LOC16 = isatom_231962(n);
		if (!LOC16) goto LA17;
		result = NIM_TRUE;
	}
	goto LA1;
	LA17: ;
	LA1: ;
	BeforeRet: ;
	return result;
}

static N_INLINE(trope176009*, rdloc_594139)(tcompres594023 a) {
	trope176009* result;
	result = 0;
	result = a.Res;
	return result;
}

N_NIMCALL(trope176009*, gettemp_595313)(tproc594033* p) {
	trope176009* result;
	TY176515 LOC1;
	NimStringDesc* LOC2;
	TY176515 LOC8;
	result = 0;
	(*p).Unique += 1;
	memset((void*)LOC1, 0, sizeof(LOC1));
	LOC1[0] = torope_176082(((NI64) ((*p).Unique)));
	result = ropef_176107(((NimStringDesc*) &TMP4331), LOC1, 1);
	LOC2 = 0;
	{
		if (!((*p).Target == ((NU8) 0))) goto LA5;
		LOC2 = copyString(((NimStringDesc*) &TMP4332));
	}
	goto LA3;
	LA5: ;
	{
		LOC2 = copyString(((NimStringDesc*) &TMP4333));
	}
	LA3: ;
	memset((void*)LOC8, 0, sizeof(LOC8));
	LOC8[0] = result;
	appf_176115(&(*p).Locals, LOC2, LOC8, 1);
	return result;
}

N_NIMCALL(void, genor_595456)(tproc594033* p, tnode224816* a, tnode224816* b, tcompres594023* r) {
	tcompres594023 x;
	tcompres594023 y;
	memset((void*)(&x), 0, sizeof(x));
	memset((void*)(&y), 0, sizeof(y));
	{
		NIM_BOOL LOC3;
		NimStringDesc* LOC7;
		TY587896 LOC13;
		LOC3 = 0;
		LOC3 = issimpleexpr_595250(a);
		if (!(LOC3)) goto LA4;
		LOC3 = issimpleexpr_595250(b);
		LA4: ;
		if (!LOC3) goto LA5;
		gen_595138(p, a, (&x));
		gen_595138(p, b, (&y));
		(*r).Kind = ((NU8) 1);
		LOC7 = 0;
		{
			if (!((*p).Target == ((NU8) 0))) goto LA10;
			LOC7 = copyString(((NimStringDesc*) &TMP4329));
		}
		goto LA8;
		LA10: ;
		{
			LOC7 = copyString(((NimStringDesc*) &TMP4330));
		}
		LA8: ;
		memset((void*)LOC13, 0, sizeof(LOC13));
		LOC13[0] = rdloc_594139(x);
		LOC13[1] = rdloc_594139(y);
		unsureAsgnRef((void**) (&(*r).Res), ropef_176107(LOC7, LOC13, 2));
	}
	goto LA1;
	LA5: ;
	{
		NimStringDesc* LOC15;
		TY587896 LOC21;
		NimStringDesc* LOC22;
		TY587896 LOC28;
		unsureAsgnRef((void**) (&(*r).Res), gettemp_595313(p));
		(*r).Kind = ((NU8) 2);
		gen_595138(p, a, (&x));
		LOC15 = 0;
		{
			if (!((*p).Target == ((NU8) 0))) goto LA18;
			LOC15 = copyString(((NimStringDesc*) &TMP4334));
		}
		goto LA16;
		LA18: ;
		{
			LOC15 = copyString(((NimStringDesc*) &TMP4335));
		}
		LA16: ;
		memset((void*)LOC21, 0, sizeof(LOC21));
		LOC21[0] = rdloc_594139(x);
		LOC21[1] = rdloc_594139((*r));
		appf_176115(&(*p).Body, LOC15, LOC21, 2);
		gen_595138(p, b, (&y));
		LOC22 = 0;
		{
			if (!((*p).Target == ((NU8) 0))) goto LA25;
			LOC22 = copyString(((NimStringDesc*) &TMP4336));
		}
		goto LA23;
		LA25: ;
		{
			LOC22 = copyString(((NimStringDesc*) &TMP4337));
		}
		LA23: ;
		memset((void*)LOC28, 0, sizeof(LOC28));
		LOC28[0] = rdloc_594139(y);
		LOC28[1] = rdloc_594139((*r));
		appf_176115(&(*p).Body, LOC22, LOC28, 2);
	}
	LA1: ;
}

N_NIMCALL(void, genand_595353)(tproc594033* p, tnode224816* a, tnode224816* b, tcompres594023* r) {
	tcompres594023 x;
	tcompres594023 y;
	memset((void*)(&x), 0, sizeof(x));
	memset((void*)(&y), 0, sizeof(y));
	{
		NIM_BOOL LOC3;
		NimStringDesc* LOC7;
		TY587896 LOC13;
		LOC3 = 0;
		LOC3 = issimpleexpr_595250(a);
		if (!(LOC3)) goto LA4;
		LOC3 = issimpleexpr_595250(b);
		LA4: ;
		if (!LOC3) goto LA5;
		gen_595138(p, a, (&x));
		gen_595138(p, b, (&y));
		(*r).Kind = ((NU8) 1);
		LOC7 = 0;
		{
			if (!((*p).Target == ((NU8) 0))) goto LA10;
			LOC7 = copyString(((NimStringDesc*) &TMP4338));
		}
		goto LA8;
		LA10: ;
		{
			LOC7 = copyString(((NimStringDesc*) &TMP4339));
		}
		LA8: ;
		memset((void*)LOC13, 0, sizeof(LOC13));
		LOC13[0] = rdloc_594139(x);
		LOC13[1] = rdloc_594139(y);
		unsureAsgnRef((void**) (&(*r).Res), ropef_176107(LOC7, LOC13, 2));
	}
	goto LA1;
	LA5: ;
	{
		NimStringDesc* LOC15;
		TY587896 LOC21;
		NimStringDesc* LOC22;
		TY587896 LOC28;
		unsureAsgnRef((void**) (&(*r).Res), gettemp_595313(p));
		(*r).Kind = ((NU8) 2);
		gen_595138(p, a, (&x));
		LOC15 = 0;
		{
			if (!((*p).Target == ((NU8) 0))) goto LA18;
			LOC15 = copyString(((NimStringDesc*) &TMP4340));
		}
		goto LA16;
		LA18: ;
		{
			LOC15 = copyString(((NimStringDesc*) &TMP4341));
		}
		LA16: ;
		memset((void*)LOC21, 0, sizeof(LOC21));
		LOC21[0] = rdloc_594139(x);
		LOC21[1] = rdloc_594139((*r));
		appf_176115(&(*p).Body, LOC15, LOC21, 2);
		gen_595138(p, b, (&y));
		LOC22 = 0;
		{
			if (!((*p).Target == ((NU8) 0))) goto LA25;
			LOC22 = copyString(((NimStringDesc*) &TMP4336));
		}
		goto LA23;
		LA25: ;
		{
			LOC22 = copyString(((NimStringDesc*) &TMP4337));
		}
		LA23: ;
		memset((void*)LOC28, 0, sizeof(LOC28));
		LOC28[0] = rdloc_594139(y);
		LOC28[1] = rdloc_594139((*r));
		appf_176115(&(*p).Body, LOC22, LOC28, 2);
	}
	LA1: ;
}

N_NIMCALL(void, arithaux_596211)(tproc594033* p, tnode224816* n, tcompres594023* r, NU16 op, tmagicops595659 ops) {
	tcompres594023 x;
	tcompres594023 y;
	NI i;
	memset((void*)(&x), 0, sizeof(x));
	memset((void*)(&y), 0, sizeof(y));
	i = !((((*p).Options &(1<<((((NU8) 5))&31)))!=0));
	usemagic_595168(p, ops[(op)- 37][(i)- 0]);
	{
		NI LOC3;
		TY587896 LOC6;
		LOC3 = 0;
		LOC3 = sonslen_225249(n);
		if (!(2 < LOC3)) goto LA4;
		gen_595138(p, (*n).kindU.S6.Sons->data[1], (&x));
		gen_595138(p, (*n).kindU.S6.Sons->data[2], (&y));
		memset((void*)LOC6, 0, sizeof(LOC6));
		LOC6[0] = rdloc_594139(x);
		LOC6[1] = rdloc_594139(y);
		unsureAsgnRef((void**) (&(*r).Res), ropef_176107(ops[(op)- 37][((NI32)(((NI) (i)) + 2))- 0], LOC6, 2));
	}
	goto LA1;
	LA4: ;
	{
		TY176515 LOC8;
		gen_595138(p, (*n).kindU.S6.Sons->data[1], r);
		memset((void*)LOC8, 0, sizeof(LOC8));
		LOC8[0] = rdloc_594139((*r));
		unsureAsgnRef((void**) (&(*r).Res), ropef_176107(ops[(op)- 37][((NI32)(((NI) (i)) + 2))- 0], LOC8, 1));
	}
	LA1: ;
	(*r).Kind = ((NU8) 1);
}

N_NIMCALL(void, arith_596306)(tproc594033* p, tnode224816* n, tcompres594023* r, NU16 op) {
	tmagicops595659 LOC1;
	memset((void*)LOC1, 0, sizeof(LOC1));
	{
		if (!((*p).Target == ((NU8) 0))) goto LA4;
		genericAssign((void*)LOC1, (void*)jsops_595665, (&NTI595659));
	}
	goto LA2;
	LA4: ;
	{
		genericAssign((void*)LOC1, (void*)luaops_595860, (&NTI595659));
	}
	LA2: ;
	arithaux_596211(p, n, r, op, LOC1);
}

N_NIMCALL(void, unaryexpr_596179)(tproc594033* p, tnode224816* n, tcompres594023* r, NimStringDesc* magic, NimStringDesc* frmt) {
	TY176515 LOC1;
	usemagic_595168(p, magic);
	gen_595138(p, (*n).kindU.S6.Sons->data[1], r);
	memset((void*)LOC1, 0, sizeof(LOC1));
	LOC1[0] = rdloc_594139((*r));
	unsureAsgnRef((void**) (&(*r).Res), ropef_176107(frmt, LOC1, 1));
	(*r).Kind = ((NU8) 1);
}

N_NIMCALL(void, genrepr_602850)(tproc594033* p, tnode224816* n, tcompres594023* r) {
	ttype224852* t;
	t = skiptypes_229245((*(*n).kindU.S6.Sons->data[1]).Typ, IL64(211106242013440));
	switch ((*t).Kind) {
	case ((NU8) 31) ... ((NU8) 44):
	{
		unaryexpr_596179(p, n, r, ((NimStringDesc*) &TMP4343), ((NimStringDesc*) &TMP4439));
	}
	break;
	case ((NU8) 14):
	case ((NU8) 15):
	{
		TY587896 LOC3;
		gen_595138(p, (*n).kindU.S6.Sons->data[1], r);
		usemagic_595168(p, ((NimStringDesc*) &TMP4323));
		(*r).Kind = ((NU8) 1);
		memset((void*)LOC3, 0, sizeof(LOC3));
		LOC3[0] = gentypeinfo_594354(p, t);
		LOC3[1] = (*r).Res;
		unsureAsgnRef((void**) (&(*r).Res), ropef_176107(((NimStringDesc*) &TMP4440), LOC3, 2));
	}
	break;
	default:
	{
		internalerror_196987((*n).Info, ((NimStringDesc*) &TMP4441));
	}
	break;
	}
}

N_NIMCALL(void, genswap_599643)(tproc594033* p, tnode224816* n) {
	tcompres594023 a;
	tcompres594023 b;
	trope176009* tmp;
	TY176515 LOC1;
	NimStringDesc* LOC22;
	TY553018 LOC28;
	memset((void*)(&a), 0, sizeof(a));
	memset((void*)(&b), 0, sizeof(b));
	gen_595138(p, (*n).kindU.S6.Sons->data[1], (&a));
	gen_595138(p, (*n).kindU.S6.Sons->data[2], (&b));
	(*p).Unique += 1;
	memset((void*)LOC1, 0, sizeof(LOC1));
	LOC1[0] = torope_176082(((NI64) ((*p).Unique)));
	tmp = ropef_176107(((NimStringDesc*) &TMP4331), LOC1, 1);
	{
		ttype224852* LOC4;
		NU8 LOC5;
		trope176009* tmp2;
		TY176515 LOC8;
		NimStringDesc* LOC15;
		TY553018 LOC21;
		LOC4 = 0;
		LOC4 = skiptypes_229245((*(*n).kindU.S6.Sons->data[1]).Typ, IL64(211106240964864));
		LOC5 = 0;
		LOC5 = maptype_594291(LOC4);
		if (!(LOC5 == ((NU8) 8))) goto LA6;
		(*p).Unique += 1;
		memset((void*)LOC8, 0, sizeof(LOC8));
		LOC8[0] = torope_176082(((NI64) ((*p).Unique)));
		tmp2 = ropef_176107(((NimStringDesc*) &TMP4331), LOC8, 1);
		{
			NIM_BOOL LOC11;
			LOC11 = 0;
			LOC11 = !((a.Typ == ((NU8) 8)));
			if (LOC11) goto LA12;
			LOC11 = !((b.Typ == ((NU8) 8)));
			LA12: ;
			if (!LOC11) goto LA13;
			internalerror_196987((*n).Info, ((NimStringDesc*) &TMP4442));
		}
		LA13: ;
		LOC15 = 0;
		{
			if (!((*p).Target == ((NU8) 0))) goto LA18;
			LOC15 = copyString(((NimStringDesc*) &TMP4443));
		}
		goto LA16;
		LA18: ;
		{
			LOC15 = copyString(((NimStringDesc*) &TMP4444));
		}
		LA16: ;
		memset((void*)LOC21, 0, sizeof(LOC21));
		LOC21[0] = tmp;
		LOC21[1] = a.Address;
		LOC21[2] = b.Address;
		appf_176115(&(*p).Body, LOC15, LOC21, 3);
		tmp = tmp2;
	}
	LA6: ;
	LOC22 = 0;
	{
		if (!((*p).Target == ((NU8) 0))) goto LA25;
		LOC22 = copyString(((NimStringDesc*) &TMP4445));
	}
	goto LA23;
	LA25: ;
	{
		LOC22 = copyString(((NimStringDesc*) &TMP4446));
	}
	LA23: ;
	memset((void*)LOC28, 0, sizeof(LOC28));
	LOC28[0] = tmp;
	LOC28[1] = a.Res;
	LOC28[2] = b.Res;
	appf_176115(&(*p).Body, LOC22, LOC28, 3);
}

N_NIMCALL(void, binaryexpr_596058)(tproc594033* p, tnode224816* n, tcompres594023* r, NimStringDesc* magic, NimStringDesc* frmt) {
	tcompres594023 x;
	tcompres594023 y;
	TY587896 LOC1;
	memset((void*)(&x), 0, sizeof(x));
	memset((void*)(&y), 0, sizeof(y));
	usemagic_595168(p, magic);
	gen_595138(p, (*n).kindU.S6.Sons->data[1], (&x));
	gen_595138(p, (*n).kindU.S6.Sons->data[2], (&y));
	memset((void*)LOC1, 0, sizeof(LOC1));
	LOC1[0] = rdloc_594139(x);
	LOC1[1] = rdloc_594139(y);
	unsureAsgnRef((void**) (&(*r).Res), ropef_176107(frmt, LOC1, 2));
	(*r).Kind = ((NU8) 1);
}

N_NIMCALL(void, genconstrstr_602664)(tproc594033* p, tnode224816* n, tcompres594023* r) {
	tcompres594023 a;
	NI LOC25;
	memset((void*)(&a), 0, sizeof(a));
	gen_595138(p, (*n).kindU.S6.Sons->data[1], (&a));
	(*r).Kind = ((NU8) 1);
	{
		ttype224852* LOC3;
		TY176515 LOC6;
		trope176009* LOC7;
		LOC3 = 0;
		LOC3 = skiptypes_229245((*(*n).kindU.S6.Sons->data[1]).Typ, IL64(211106242013440));
		if (!((*LOC3).Kind == ((NU8) 2))) goto LA4;
		memset((void*)LOC6, 0, sizeof(LOC6));
		LOC6[0] = a.Res;
		LOC7 = 0;
		LOC7 = ropef_176107(((NimStringDesc*) &TMP4455), LOC6, 1);
		app_176052(&(*r).Res, LOC7);
	}
	goto LA1;
	LA4: ;
	{
		TY176515 LOC9;
		trope176009* LOC10;
		memset((void*)LOC9, 0, sizeof(LOC9));
		LOC9[0] = a.Res;
		LOC10 = 0;
		LOC10 = ropef_176107(((NimStringDesc*) &TMP4456), LOC9, 1);
		app_176052(&(*r).Res, LOC10);
	}
	LA1: ;
	{
		NI i_602731;
		NI HEX3Atmp_602830;
		NI LOC12;
		NI res_602833;
		i_602731 = 0;
		HEX3Atmp_602830 = 0;
		LOC12 = 0;
		LOC12 = sonslen_225249(n);
		HEX3Atmp_602830 = (NI32)(LOC12 - 2);
		res_602833 = 2;
		{
			while (1) {
				if (!(res_602833 <= HEX3Atmp_602830)) goto LA14;
				i_602731 = res_602833;
				gen_595138(p, (*n).kindU.S6.Sons->data[i_602731], (&a));
				{
					ttype224852* LOC17;
					TY176515 LOC20;
					trope176009* LOC21;
					LOC17 = 0;
					LOC17 = skiptypes_229245((*(*n).kindU.S6.Sons->data[i_602731]).Typ, IL64(211106242013440));
					if (!((*LOC17).Kind == ((NU8) 2))) goto LA18;
					memset((void*)LOC20, 0, sizeof(LOC20));
					LOC20[0] = a.Res;
					LOC21 = 0;
					LOC21 = ropef_176107(((NimStringDesc*) &TMP4457), LOC20, 1);
					app_176052(&(*r).Res, LOC21);
				}
				goto LA15;
				LA18: ;
				{
					TY176515 LOC23;
					trope176009* LOC24;
					memset((void*)LOC23, 0, sizeof(LOC23));
					LOC23[0] = a.Res;
					LOC24 = 0;
					LOC24 = ropef_176107(((NimStringDesc*) &TMP4458), LOC23, 1);
					app_176052(&(*r).Res, LOC24);
				}
				LA15: ;
				res_602833 += 1;
			} LA14: ;
		}
	}
	LOC25 = 0;
	LOC25 = sonslen_225249(n);
	gen_595138(p, (*n).kindU.S6.Sons->data[(NI32)(LOC25 - 1)], (&a));
	{
		NI LOC28;
		ttype224852* LOC29;
		TY176515 LOC32;
		trope176009* LOC33;
		LOC28 = 0;
		LOC28 = sonslen_225249(n);
		LOC29 = 0;
		LOC29 = skiptypes_229245((*(*n).kindU.S6.Sons->data[(NI32)(LOC28 - 1)]).Typ, IL64(211106242013440));
		if (!((*LOC29).Kind == ((NU8) 2))) goto LA30;
		memset((void*)LOC32, 0, sizeof(LOC32));
		LOC32[0] = a.Res;
		LOC33 = 0;
		LOC33 = ropef_176107(((NimStringDesc*) &TMP4459), LOC32, 1);
		app_176052(&(*r).Res, LOC33);
	}
	goto LA26;
	LA30: ;
	{
		TY176515 LOC35;
		trope176009* LOC36;
		memset((void*)LOC35, 0, sizeof(LOC35));
		LOC35[0] = a.Res;
		LOC36 = 0;
		LOC36 = ropef_176107(((NimStringDesc*) &TMP4460), LOC35, 1);
		app_176052(&(*r).Res, LOC36);
	}
	LA26: ;
}

N_NIMCALL(void, gennew_602504)(tproc594033* p, tnode224816* n) {
	tcompres594023 a;
	ttype224852* t;
	ttype224852* LOC1;
	TY587896 LOC2;
	memset((void*)(&a), 0, sizeof(a));
	gen_595138(p, (*n).kindU.S6.Sons->data[1], (&a));
	LOC1 = 0;
	LOC1 = skiptypes_229245((*(*n).kindU.S6.Sons->data[1]).Typ, IL64(211106240964864));
	t = (*LOC1).Sons->data[0];
	memset((void*)LOC2, 0, sizeof(LOC2));
	LOC2[0] = a.Res;
	LOC2[1] = createvar_601438(p, t, NIM_TRUE);
	appf_176115(&(*p).Body, ((NimStringDesc*) &TMP4467), LOC2, 2);
}

N_NIMCALL(void, genord_602615)(tproc594033* p, tnode224816* n, tcompres594023* r) {
	ttype224852* LOC1;
	LOC1 = 0;
	LOC1 = skiptypes_229245((*(*n).kindU.S6.Sons->data[1]).Typ, IL64(211106240964864));
	switch ((*LOC1).Kind) {
	case ((NU8) 14):
	case ((NU8) 31) ... ((NU8) 35):
	case ((NU8) 2):
	{
		gen_595138(p, (*n).kindU.S6.Sons->data[1], r);
	}
	break;
	case ((NU8) 1):
	{
		NimStringDesc* LOC4;
		LOC4 = 0;
		{
			if (!((*p).Target == ((NU8) 0))) goto LA7;
			LOC4 = copyString(((NimStringDesc*) &TMP4468));
		}
		goto LA5;
		LA7: ;
		{
			LOC4 = copyString(((NimStringDesc*) &TMP4469));
		}
		LA5: ;
		unaryexpr_596179(p, n, r, ((NimStringDesc*) &TMP4343), LOC4);
	}
	break;
	default:
	{
		internalerror_196987((*n).Info, ((NimStringDesc*) &TMP4470));
	}
	break;
	}
}

N_NIMCALL(void, gennewseq_602551)(tproc594033* p, tnode224816* n) {
	tcompres594023 x;
	tcompres594023 y;
	ttype224852* t;
	ttype224852* LOC1;
	TY553018 LOC2;
	memset((void*)(&x), 0, sizeof(x));
	memset((void*)(&y), 0, sizeof(y));
	gen_595138(p, (*n).kindU.S6.Sons->data[1], (&x));
	gen_595138(p, (*n).kindU.S6.Sons->data[2], (&y));
	LOC1 = 0;
	LOC1 = skiptypes_229245((*(*n).kindU.S6.Sons->data[1]).Typ, IL64(211106240964864));
	t = (*LOC1).Sons->data[0];
	memset((void*)LOC2, 0, sizeof(LOC2));
	LOC2[0] = rdloc_594139(x);
	LOC2[1] = rdloc_594139(y);
	LOC2[2] = createvar_601438(p, t, NIM_FALSE);
	appf_176115(&(*p).Body, ((NimStringDesc*) &TMP4496), LOC2, 3);
}

N_NIMCALL(void, genof_602895)(tproc594033* p, tnode224816* n, tcompres594023* r) {
	tcompres594023 x;
	ttype224852* t;
	memset((void*)(&x), 0, sizeof(x));
	t = skiptypes_229245((*(*n).kindU.S6.Sons->data[2]).Typ, IL64(211106248304896));
	gen_595138(p, (*n).kindU.S6.Sons->data[1], (&x));
	{
		TY587896 LOC5;
		if (!(((*t).Flags &(1<<((((NU8) 2))&31)))!=0)) goto LA3;
		memset((void*)LOC5, 0, sizeof(LOC5));
		LOC5[0] = x.Res;
		LOC5[1] = gentypeinfo_594354(p, t);
		unsureAsgnRef((void**) (&(*r).Res), ropef_176107(((NimStringDesc*) &TMP4497), LOC5, 2));
	}
	goto LA1;
	LA3: ;
	{
		TY587896 LOC7;
		usemagic_595168(p, ((NimStringDesc*) &TMP4498));
		memset((void*)LOC7, 0, sizeof(LOC7));
		LOC7[0] = x.Res;
		LOC7[1] = gentypeinfo_594354(p, t);
		unsureAsgnRef((void**) (&(*r).Res), ropef_176107(((NimStringDesc*) &TMP4499), LOC7, 2));
	}
	LA1: ;
	(*r).Kind = ((NU8) 1);
}

N_NIMCALL(void, genreset_602978)(tproc594033* p, tnode224816* n) {
	tcompres594023 x;
	TY587896 LOC1;
	memset((void*)(&x), 0, sizeof(x));
	usemagic_595168(p, ((NimStringDesc*) &TMP4500));
	gen_595138(p, (*n).kindU.S6.Sons->data[1], (&x));
	memset((void*)LOC1, 0, sizeof(LOC1));
	LOC1[0] = x.Res;
	LOC1[1] = gentypeinfo_594354(p, (*(*n).kindU.S6.Sons->data[1]).Typ);
	appf_176115(&(*p).Body, ((NimStringDesc*) &TMP4501), LOC1, 2);
}

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

N_NIMCALL(void, genarg_601096)(tproc594033* p, tnode224816* n, tcompres594023* r) {
	tcompres594023 a;
	memset((void*)(&a), 0, sizeof(a));
	gen_595138(p, n, (&a));
	{
		if (!(a.Typ == ((NU8) 8))) goto LA3;
		app_176052(&(*r).Res, a.Address);
		app_176060(&(*r).Res, ((NimStringDesc*) &TMP4261));
		app_176052(&(*r).Res, a.Res);
	}
	goto LA1;
	LA3: ;
	{
		app_176052(&(*r).Res, a.Res);
	}
	LA1: ;
}

N_NIMCALL(void, genecho_601334)(tproc594033* p, tnode224816* n_601337, tcompres594023* r) {
	tnode224816* n;
	tnode224816* LOC1;
	usemagic_595168(p, ((NimStringDesc*) &TMP4502));
	app_176060(&(*r).Res, ((NimStringDesc*) &TMP4503));
	LOC1 = 0;
	LOC1 = HEX5BHEX5D_225698(n_601337, 1);
	n = skipconv_272732(LOC1);
	{
		NimStringDesc* LOC6;
		if (!!(((*n).Kind == ((NU8) 41)))) goto LA4;
		LOC6 = 0;
		LOC6 = HEX24_197126(TMP4504);
		internalerror_197006(LOC6);
	}
	LA4: ;
	{
		NI i_601379;
		NI HEX3Atmp_601400;
		NI LOC8;
		NI res_601403;
		i_601379 = 0;
		HEX3Atmp_601400 = 0;
		LOC8 = 0;
		LOC8 = sonslen_225249(n);
		HEX3Atmp_601400 = (NI32)(LOC8 - 1);
		res_601403 = 0;
		{
			while (1) {
				if (!(res_601403 <= HEX3Atmp_601400)) goto LA10;
				i_601379 = res_601403;
				{
					tnode224816* it;
					it = (*n).kindU.S6.Sons->data[i_601379];
					{
						NIM_BOOL LOC14;
						LOC14 = 0;
						LOC14 = iscompiletimeonly_272466((*it).Typ);
						if (!LOC14) goto LA15;
						goto LA11;
					}
					LA15: ;
					{
						if (!(0 < i_601379)) goto LA19;
						app_176060(&(*r).Res, ((NimStringDesc*) &TMP4261));
					}
					LA19: ;
					genarg_601096(p, it, r);
				} LA11: ;
				res_601403 += 1;
			} LA10: ;
		}
	}
	app_176060(&(*r).Res, ((NimStringDesc*) &TMP4505));
	(*r).Kind = ((NU8) 1);
}

N_NIMCALL(void, ternaryexpr_596110)(tproc594033* p, tnode224816* n, tcompres594023* r, NimStringDesc* magic, NimStringDesc* frmt) {
	tcompres594023 x;
	tcompres594023 y;
	tcompres594023 z;
	TY553018 LOC1;
	memset((void*)(&x), 0, sizeof(x));
	memset((void*)(&y), 0, sizeof(y));
	memset((void*)(&z), 0, sizeof(z));
	usemagic_595168(p, magic);
	gen_595138(p, (*n).kindU.S6.Sons->data[1], (&x));
	gen_595138(p, (*n).kindU.S6.Sons->data[2], (&y));
	gen_595138(p, (*n).kindU.S6.Sons->data[3], (&z));
	memset((void*)LOC1, 0, sizeof(LOC1));
	LOC1[0] = rdloc_594139(x);
	LOC1[1] = rdloc_594139(y);
	LOC1[2] = rdloc_594139(z);
	unsureAsgnRef((void**) (&(*r).Res), ropef_176107(frmt, LOC1, 3));
	(*r).Kind = ((NU8) 1);
}

N_NIMCALL(void, genargs_601124)(tproc594033* p, tnode224816* n, tcompres594023* r) {
	app_176060(&(*r).Res, ((NimStringDesc*) &TMP4511));
	{
		NI i_601143;
		NI HEX3Atmp_601164;
		NI LOC2;
		NI res_601167;
		i_601143 = 0;
		HEX3Atmp_601164 = 0;
		LOC2 = 0;
		LOC2 = sonslen_225249(n);
		HEX3Atmp_601164 = (NI32)(LOC2 - 1);
		res_601167 = 1;
		{
			while (1) {
				if (!(res_601167 <= HEX3Atmp_601164)) goto LA4;
				i_601143 = res_601167;
				{
					tnode224816* it;
					it = (*n).kindU.S6.Sons->data[i_601143];
					{
						NIM_BOOL LOC8;
						LOC8 = 0;
						LOC8 = iscompiletimeonly_272466((*it).Typ);
						if (!LOC8) goto LA9;
						goto LA5;
					}
					LA9: ;
					{
						if (!(1 < i_601143)) goto LA13;
						app_176060(&(*r).Res, ((NimStringDesc*) &TMP4261));
					}
					LA13: ;
					genarg_601096(p, it, r);
				} LA5: ;
				res_601167 += 1;
			} LA4: ;
		}
	}
	app_176060(&(*r).Res, ((NimStringDesc*) &TMP4505));
	(*r).Kind = ((NU8) 1);
}

N_NIMCALL(void, gencall_601187)(tproc594033* p, tnode224816* n, tcompres594023* r) {
	gen_595138(p, (*n).kindU.S6.Sons->data[0], r);
	genargs_601124(p, n, r);
}

N_NIMCALL(void, genmagic_603024)(tproc594033* p, tnode224816* n, tcompres594023* r) {
	tcompres594023 a;
	trope176009* line;
	trope176009* filen;
	NU16 op;
	memset((void*)(&a), 0, sizeof(a));
	line = 0;
	filen = 0;
	op = (*(*(*n).kindU.S6.Sons->data[0]).kindU.S4.Sym).Magic;
	switch (op) {
	case ((NU16) 135):
	{
		genor_595456(p, (*n).kindU.S6.Sons->data[1], (*n).kindU.S6.Sons->data[2], r);
	}
	break;
	case ((NU16) 134):
	{
		genand_595353(p, (*n).kindU.S6.Sons->data[1], (*n).kindU.S6.Sons->data[2], r);
	}
	break;
	case ((NU16) 37) ... ((NU16) 132):
	{
		arith_596306(p, n, r, op);
	}
	break;
	case ((NU16) 160):
	{
		genrepr_602850(p, n, r);
	}
	break;
	case ((NU16) 167):
	{
		genswap_599643(p, n);
	}
	break;
	case ((NU16) 18):
	{
		{
			if (!!((((*p).Options &(1<<((((NU8) 5))&31)))!=0))) goto LA9;
			unaryexpr_596179(p, n, r, ((NimStringDesc*) &TMP4343), ((NimStringDesc*) &TMP4447));
		}
		goto LA7;
		LA9: ;
		{
			unaryexpr_596179(p, n, r, ((NimStringDesc*) &TMP4346), ((NimStringDesc*) &TMP4448));
		}
		LA7: ;
	}
	break;
	case ((NU16) 20):
	{
		{
			if (!!((((*p).Options &(1<<((((NU8) 5))&31)))!=0))) goto LA15;
			binaryexpr_596058(p, n, r, ((NimStringDesc*) &TMP4343), ((NimStringDesc*) &TMP4449));
		}
		goto LA13;
		LA15: ;
		{
			binaryexpr_596058(p, n, r, ((NimStringDesc*) &TMP4346), ((NimStringDesc*) &TMP4347));
		}
		LA13: ;
	}
	break;
	case ((NU16) 19):
	{
		{
			if (!!((((*p).Options &(1<<((((NU8) 5))&31)))!=0))) goto LA21;
			binaryexpr_596058(p, n, r, ((NimStringDesc*) &TMP4343), ((NimStringDesc*) &TMP4449));
		}
		goto LA19;
		LA21: ;
		{
			binaryexpr_596058(p, n, r, ((NimStringDesc*) &TMP4342), ((NimStringDesc*) &TMP4344));
		}
		LA19: ;
	}
	break;
	case ((NU16) 155):
	{
		binaryexpr_596058(p, n, r, ((NimStringDesc*) &TMP4450), ((NimStringDesc*) &TMP4451));
	}
	break;
	case ((NU16) 156):
	{
		{
			ttype224852* LOC28;
			LOC28 = 0;
			LOC28 = skiptypes_229245((*(*n).kindU.S6.Sons->data[1]).Typ, IL64(211106242013440));
			if (!((*LOC28).Kind == ((NU8) 29))) goto LA29;
			binaryexpr_596058(p, n, r, ((NimStringDesc*) &TMP4343), ((NimStringDesc*) &TMP4452));
		}
		goto LA26;
		LA29: ;
		{
			binaryexpr_596058(p, n, r, ((NimStringDesc*) &TMP4343), ((NimStringDesc*) &TMP4453));
		}
		LA26: ;
	}
	break;
	case ((NU16) 157):
	{
		binaryexpr_596058(p, n, r, ((NimStringDesc*) &TMP4343), ((NimStringDesc*) &TMP4454));
	}
	break;
	case ((NU16) 146):
	{
		genconstrstr_602664(p, n, r);
	}
	break;
	case ((NU16) 136):
	{
		binaryexpr_596058(p, n, r, ((NimStringDesc*) &TMP4461), ((NimStringDesc*) &TMP4462));
	}
	break;
	case ((NU16) 137):
	{
		binaryexpr_596058(p, n, r, ((NimStringDesc*) &TMP4463), ((NimStringDesc*) &TMP4464));
	}
	break;
	case ((NU16) 138):
	{
		binaryexpr_596058(p, n, r, ((NimStringDesc*) &TMP4463), ((NimStringDesc*) &TMP4465));
	}
	break;
	case ((NU16) 168):
	{
		unaryexpr_596179(p, n, r, ((NimStringDesc*) &TMP4343), ((NimStringDesc*) &TMP4466));
	}
	break;
	case ((NU16) 133):
	{
		genrepr_602850(p, n, r);
	}
	break;
	case ((NU16) 24):
	case ((NU16) 25):
	{
		gennew_602504(p, n);
	}
	break;
	case ((NU16) 6):
	{
		NI64 LOC41;
		LOC41 = 0;
		LOC41 = getsize_262199((*(*n).kindU.S6.Sons->data[1]).Typ);
		unsureAsgnRef((void**) (&(*r).Res), torope_176082(LOC41));
	}
	break;
	case ((NU16) 34):
	case ((NU16) 169):
	{
		gen_595138(p, (*n).kindU.S6.Sons->data[1], r);
	}
	break;
	case ((NU16) 23):
	{
		genord_602615(p, n, r);
	}
	break;
	case ((NU16) 28):
	{
		unaryexpr_596179(p, n, r, ((NimStringDesc*) &TMP4343), ((NimStringDesc*) &TMP4471));
	}
	break;
	case ((NU16) 30):
	case ((NU16) 27):
	case ((NU16) 29):
	{
		unaryexpr_596179(p, n, r, ((NimStringDesc*) &TMP4343), ((NimStringDesc*) &TMP4472));
	}
	break;
	case ((NU16) 5):
	{
		{
			ttype224852* LOC49;
			LOC49 = 0;
			LOC49 = skiptypes_229245((*(*n).kindU.S6.Sons->data[1]).Typ, IL64(211106240964864));
			if (!((*LOC49).Kind == ((NU8) 28))) goto LA50;
			unaryexpr_596179(p, n, r, ((NimStringDesc*) &TMP4343), ((NimStringDesc*) &TMP4473));
		}
		goto LA47;
		LA50: ;
		{
			unaryexpr_596179(p, n, r, ((NimStringDesc*) &TMP4343), ((NimStringDesc*) &TMP4471));
		}
		LA47: ;
	}
	break;
	case ((NU16) 21):
	{
		{
			if (!!((((*p).Options &(1<<((((NU8) 5))&31)))!=0))) goto LA56;
			binaryexpr_596058(p, n, r, ((NimStringDesc*) &TMP4343), ((NimStringDesc*) &TMP4452));
		}
		goto LA54;
		LA56: ;
		{
			binaryexpr_596058(p, n, r, ((NimStringDesc*) &TMP4342), ((NimStringDesc*) &TMP4474));
		}
		LA54: ;
	}
	break;
	case ((NU16) 22):
	{
		{
			if (!!((((*p).Options &(1<<((((NU8) 5))&31)))!=0))) goto LA62;
			binaryexpr_596058(p, n, r, ((NimStringDesc*) &TMP4343), ((NimStringDesc*) &TMP4475));
		}
		goto LA60;
		LA62: ;
		{
			binaryexpr_596058(p, n, r, ((NimStringDesc*) &TMP4346), ((NimStringDesc*) &TMP4476));
		}
		LA60: ;
	}
	break;
	case ((NU16) 162):
	{
		binaryexpr_596058(p, n, r, ((NimStringDesc*) &TMP4343), ((NimStringDesc*) &TMP4477));
	}
	break;
	case ((NU16) 163):
	{
		binaryexpr_596058(p, n, r, ((NimStringDesc*) &TMP4343), ((NimStringDesc*) &TMP4478));
	}
	break;
	case ((NU16) 33):
	{
		unaryexpr_596179(p, n, r, ((NimStringDesc*) &TMP4479), ((NimStringDesc*) &TMP4480));
	}
	break;
	case ((NU16) 141):
	{
		binaryexpr_596058(p, n, r, ((NimStringDesc*) &TMP4481), ((NimStringDesc*) &TMP4482));
	}
	break;
	case ((NU16) 140):
	{
		binaryexpr_596058(p, n, r, ((NimStringDesc*) &TMP4483), ((NimStringDesc*) &TMP4484));
	}
	break;
	case ((NU16) 139):
	{
		binaryexpr_596058(p, n, r, ((NimStringDesc*) &TMP4485), ((NimStringDesc*) &TMP4486));
	}
	break;
	case ((NU16) 142):
	{
		binaryexpr_596058(p, n, r, ((NimStringDesc*) &TMP4487), ((NimStringDesc*) &TMP4488));
	}
	break;
	case ((NU16) 143):
	{
		binaryexpr_596058(p, n, r, ((NimStringDesc*) &TMP4489), ((NimStringDesc*) &TMP4490));
	}
	break;
	case ((NU16) 144):
	{
		binaryexpr_596058(p, n, r, ((NimStringDesc*) &TMP4491), ((NimStringDesc*) &TMP4492));
	}
	break;
	case ((NU16) 31):
	{
		binaryexpr_596058(p, n, r, ((NimStringDesc*) &TMP4343), ((NimStringDesc*) &TMP4493));
	}
	break;
	case ((NU16) 32):
	{
		binaryexpr_596058(p, n, r, ((NimStringDesc*) &TMP4343), ((NimStringDesc*) &TMP4494));
	}
	break;
	case ((NU16) 159):
	{
		binaryexpr_596058(p, n, r, ((NimStringDesc*) &TMP4343), ((NimStringDesc*) &TMP4495));
	}
	break;
	case ((NU16) 228) ... ((NU16) 260):
	{
		localerror_196955((*n).Info, ((NU16) 212), (*(*(*(*n).kindU.S6.Sons->data[0]).kindU.S4.Sym).Name).S);
	}
	break;
	case ((NU16) 26):
	{
		gennewseq_602551(p, n);
	}
	break;
	case ((NU16) 9):
	{
		genof_602895(p, n, r);
	}
	break;
	case ((NU16) 175):
	{
		genreset_602978(p, n);
	}
	break;
	case ((NU16) 10):
	{
		genecho_601334(p, n, r);
	}
	break;
	case ((NU16) 12):
	case ((NU16) 13):
	{
		localerror_196955((*n).Info, ((NU16) 224), (*(*(*(*n).kindU.S6.Sons->data[0]).kindU.S4.Sym).Name).S);
	}
	break;
	case ((NU16) 170):
	{
		binaryexpr_596058(p, n, r, ((NimStringDesc*) &TMP4343), ((NimStringDesc*) &TMP4506));
	}
	break;
	case ((NU16) 171):
	{
		ternaryexpr_596110(p, n, r, ((NimStringDesc*) &TMP4343), ((NimStringDesc*) &TMP4507));
	}
	break;
	case ((NU16) 172):
	{
		unaryexpr_596179(p, n, r, ((NimStringDesc*) &TMP4508), ((NimStringDesc*) &TMP4509));
	}
	break;
	case ((NU16) 173):
	{
		unaryexpr_596179(p, n, r, ((NimStringDesc*) &TMP4508), ((NimStringDesc*) &TMP4510));
	}
	break;
	default:
	{
		gencall_601187(p, n, r);
	}
	break;
	}
}

N_NIMCALL(void, geninfixcall_601213)(tproc594033* p, tnode224816* n, tcompres594023* r) {
	tcompres594023 op;
	gen_595138(p, (*n).kindU.S6.Sons->data[1], r);
	{
		TY587896 LOC9;
		if (!((*r).Typ == ((NU8) 8))) goto LA3;
		{
			if (!((*r).Address == NIM_NIL)) goto LA7;
			globalerror_196945((*n).Info, ((NimStringDesc*) &TMP4512));
		}
		LA7: ;
		memset((void*)LOC9, 0, sizeof(LOC9));
		LOC9[0] = (*r).Address;
		LOC9[1] = (*r).Res;
		unsureAsgnRef((void**) (&(*r).Res), ropef_176107(((NimStringDesc*) &TMP4513), LOC9, 2));
		unsureAsgnRef((void**) (&(*r).Address), NIM_NIL);
		(*r).Typ = ((NU8) 0);
	}
	LA3: ;
	app_176060(&(*r).Res, ((NimStringDesc*) &TMP4514));
	memset((void*)(&op), 0, sizeof(op));
	gen_595138(p, (*n).kindU.S6.Sons->data[0], (&op));
	app_176052(&(*r).Res, op.Res);
	app_176060(&(*r).Res, ((NimStringDesc*) &TMP4511));
	{
		NI i_601294;
		NI HEX3Atmp_601314;
		NI LOC11;
		NI res_601317;
		i_601294 = 0;
		HEX3Atmp_601314 = 0;
		LOC11 = 0;
		LOC11 = sonslen_225249(n);
		HEX3Atmp_601314 = (NI32)(LOC11 - 1);
		res_601317 = 2;
		{
			while (1) {
				if (!(res_601317 <= HEX3Atmp_601314)) goto LA13;
				i_601294 = res_601317;
				{
					if (!(2 < i_601294)) goto LA16;
					app_176060(&(*r).Res, ((NimStringDesc*) &TMP4261));
				}
				LA16: ;
				genarg_601096(p, (*n).kindU.S6.Sons->data[i_601294], r);
				res_601317 += 1;
			} LA13: ;
		}
	}
	app_176060(&(*r).Res, ((NimStringDesc*) &TMP4505));
	(*r).Kind = ((NU8) 1);
}

N_NIMCALL(void, gensetconstr_603322)(tproc594033* p, tnode224816* n, tcompres594023* r) {
	tcompres594023 a;
	tcompres594023 b;
	memset((void*)(&a), 0, sizeof(a));
	memset((void*)(&b), 0, sizeof(b));
	usemagic_595168(p, ((NimStringDesc*) &TMP4515));
	unsureAsgnRef((void**) (&(*r).Res), torope_176076(((NimStringDesc*) &TMP4516)));
	(*r).Kind = ((NU8) 1);
	{
		NI i_603342;
		NI HEX3Atmp_603410;
		NI LOC2;
		NI res_603413;
		i_603342 = 0;
		HEX3Atmp_603410 = 0;
		LOC2 = 0;
		LOC2 = sonslen_225249(n);
		HEX3Atmp_603410 = (NI32)(LOC2 - 1);
		res_603413 = 0;
		{
			while (1) {
				tnode224816* it;
				if (!(res_603413 <= HEX3Atmp_603410)) goto LA4;
				i_603342 = res_603413;
				{
					if (!(0 < i_603342)) goto LA7;
					app_176060(&(*r).Res, ((NimStringDesc*) &TMP4261));
				}
				LA7: ;
				it = (*n).kindU.S6.Sons->data[i_603342];
				{
					TY587896 LOC13;
					if (!((*it).Kind == ((NU8) 44))) goto LA11;
					gen_595138(p, (*it).kindU.S6.Sons->data[0], (&a));
					gen_595138(p, (*it).kindU.S6.Sons->data[1], (&b));
					memset((void*)LOC13, 0, sizeof(LOC13));
					LOC13[0] = a.Res;
					LOC13[1] = b.Res;
					appf_176115(&(*r).Res, ((NimStringDesc*) &TMP4290), LOC13, 2);
				}
				goto LA9;
				LA11: ;
				{
					gen_595138(p, it, (&a));
					app_176052(&(*r).Res, a.Res);
				}
				LA9: ;
				res_603413 += 1;
			} LA4: ;
		}
	}
	app_176060(&(*r).Res, ((NimStringDesc*) &TMP4505));
}

N_NIMCALL(void, genarrayconstr_603430)(tproc594033* p, tnode224816* n, tcompres594023* r) {
	tcompres594023 a;
	memset((void*)(&a), 0, sizeof(a));
	unsureAsgnRef((void**) (&(*r).Res), torope_176076(((NimStringDesc*) &TMP4296)));
	(*r).Kind = ((NU8) 1);
	{
		NI i_603449;
		NI HEX3Atmp_603471;
		NI LOC2;
		NI res_603474;
		i_603449 = 0;
		HEX3Atmp_603471 = 0;
		LOC2 = 0;
		LOC2 = sonslen_225249(n);
		HEX3Atmp_603471 = (NI32)(LOC2 - 1);
		res_603474 = 0;
		{
			while (1) {
				if (!(res_603474 <= HEX3Atmp_603471)) goto LA4;
				i_603449 = res_603474;
				{
					if (!(0 < i_603449)) goto LA7;
					app_176060(&(*r).Res, ((NimStringDesc*) &TMP4261));
				}
				LA7: ;
				gen_595138(p, (*n).kindU.S6.Sons->data[i_603449], (&a));
				app_176052(&(*r).Res, a.Res);
				res_603474 += 1;
			} LA4: ;
		}
	}
	app_176060(&(*r).Res, ((NimStringDesc*) &TMP4297));
}

N_NIMCALL(void, gentupleconstr_603491)(tproc594033* p, tnode224816* n, tcompres594023* r) {
	tcompres594023 a;
	memset((void*)(&a), 0, sizeof(a));
	unsureAsgnRef((void**) (&(*r).Res), torope_176076(((NimStringDesc*) &TMP4298)));
	(*r).Kind = ((NU8) 1);
	{
		NI i_603510;
		NI HEX3Atmp_603569;
		NI LOC2;
		NI res_603572;
		i_603510 = 0;
		HEX3Atmp_603569 = 0;
		LOC2 = 0;
		LOC2 = sonslen_225249(n);
		HEX3Atmp_603569 = (NI32)(LOC2 - 1);
		res_603572 = 0;
		{
			while (1) {
				tnode224816* it;
				NimStringDesc* LOC13;
				TY587896 LOC19;
				if (!(res_603572 <= HEX3Atmp_603569)) goto LA4;
				i_603510 = res_603572;
				{
					if (!(0 < i_603510)) goto LA7;
					app_176060(&(*r).Res, ((NimStringDesc*) &TMP4261));
				}
				LA7: ;
				it = (*n).kindU.S6.Sons->data[i_603510];
				{
					if (!((*it).Kind == ((NU8) 34))) goto LA11;
					it = (*it).kindU.S6.Sons->data[1];
				}
				LA11: ;
				gen_595138(p, it, (&a));
				LOC13 = 0;
				{
					if (!((*p).Target == ((NU8) 0))) goto LA16;
					LOC13 = copyString(((NimStringDesc*) &TMP4517));
				}
				goto LA14;
				LA16: ;
				{
					LOC13 = copyString(((NimStringDesc*) &TMP4300));
				}
				LA14: ;
				memset((void*)LOC19, 0, sizeof(LOC19));
				LOC19[0] = torope_176082(((NI64) (i_603510)));
				LOC19[1] = a.Res;
				appf_176115(&(*r).Res, LOC13, LOC19, 2);
				res_603572 += 1;
			} LA4: ;
		}
	}
	app_176060(&(*r).Res, ((NimStringDesc*) &TMP4301));
}

N_NIMCALL(void, genobjconstr_603589)(tproc594033* p, tnode224816* n, tcompres594023* r) {
	tcompres594023 a;
	memset((void*)(&a), 0, sizeof(a));
	unsureAsgnRef((void**) (&(*r).Res), torope_176076(((NimStringDesc*) &TMP4298)));
	(*r).Kind = ((NU8) 1);
	{
		NI i_603608;
		NI HEX3Atmp_603729;
		NI LOC2;
		NI res_603732;
		i_603608 = 0;
		HEX3Atmp_603729 = 0;
		LOC2 = 0;
		LOC2 = sonslen_225249(n);
		HEX3Atmp_603729 = (NI32)(LOC2 - 1);
		res_603732 = 1;
		{
			while (1) {
				tnode224816* it;
				tsym224846* f;
				NimStringDesc* LOC18;
				TY587896 LOC24;
				if (!(res_603732 <= HEX3Atmp_603729)) goto LA4;
				i_603608 = res_603732;
				{
					if (!(1 < i_603608)) goto LA7;
					app_176060(&(*r).Res, ((NimStringDesc*) &TMP4261));
				}
				LA7: ;
				it = (*n).kindU.S6.Sons->data[i_603608];
				{
					NimStringDesc* LOC13;
					if (!!(((*it).Kind == ((NU8) 34)))) goto LA11;
					LOC13 = 0;
					LOC13 = HEX24_197126(TMP4518);
					internalerror_197006(LOC13);
				}
				LA11: ;
				gen_595138(p, (*it).kindU.S6.Sons->data[1], (&a));
				f = (*(*it).kindU.S6.Sons->data[0]).kindU.S4.Sym;
				{
					if (!((*f).Loc.R == NIM_NIL)) goto LA16;
					asgnRefNoCycle((void**) (&(*f).Loc.R), manglename_594315(f));
				}
				LA16: ;
				LOC18 = 0;
				{
					if (!((*p).Target == ((NU8) 0))) goto LA21;
					LOC18 = copyString(((NimStringDesc*) &TMP4519));
				}
				goto LA19;
				LA21: ;
				{
					LOC18 = copyString(((NimStringDesc*) &TMP4520));
				}
				LA19: ;
				memset((void*)LOC24, 0, sizeof(LOC24));
				LOC24[0] = (*f).Loc.R;
				LOC24[1] = a.Res;
				appf_176115(&(*r).Res, LOC18, LOC24, 2);
				res_603732 += 1;
			} LA4: ;
		}
	}
	app_176060(&(*r).Res, ((NimStringDesc*) &TMP4301));
}

N_NIMCALL(void, genconv_603749)(tproc594033* p, tnode224816* n, tcompres594023* r) {
	ttype224852* dest;
	ttype224852* src;
	dest = skiptypes_229245((*n).Typ, IL64(211106242013440));
	src = skiptypes_229245((*(*n).kindU.S6.Sons->data[1]).Typ, IL64(211106242013440));
	gen_595138(p, (*n).kindU.S6.Sons->data[1], r);
	{
		NIM_BOOL LOC3;
		NimStringDesc* LOC7;
		TY176515 LOC13;
		LOC3 = 0;
		LOC3 = !(((*dest).Kind == (*src).Kind));
		if (!(LOC3)) goto LA4;
		LOC3 = ((*src).Kind == ((NU8) 1));
		LA4: ;
		if (!LOC3) goto LA5;
		LOC7 = 0;
		{
			if (!((*p).Target == ((NU8) 0))) goto LA10;
			LOC7 = copyString(((NimStringDesc*) &TMP4521));
		}
		goto LA8;
		LA10: ;
		{
			LOC7 = copyString(((NimStringDesc*) &TMP4469));
		}
		LA8: ;
		memset((void*)LOC13, 0, sizeof(LOC13));
		LOC13[0] = (*r).Res;
		unsureAsgnRef((void**) (&(*r).Res), ropef_176107(LOC7, LOC13, 1));
		(*r).Kind = ((NU8) 1);
	}
	LA5: ;
}

N_NIMCALL(NI, getfieldposition_599790)(tnode224816* f) {
	NI result;
	result = 0;
	switch ((*f).Kind) {
	case ((NU8) 6) ... ((NU8) 15):
	{
		result = ((NI) ((*f).kindU.S1.Intval));
	}
	break;
	case ((NU8) 3):
	{
		result = (*(*f).kindU.S4.Sym).Position;
	}
	break;
	default:
	{
		internalerror_196987((*f).Info, ((NimStringDesc*) &TMP4525));
	}
	break;
	}
	return result;
}

N_NIMCALL(void, genfieldaddr_599828)(tproc594033* p, tnode224816* n, tcompres594023* r) {
	tcompres594023 a;
	tnode224816* b;
	memset((void*)(&a), 0, sizeof(a));
	(*r).Typ = ((NU8) 8);
	{
		if (!((*n).Kind == ((NU8) 64))) goto LA3;
		b = (*n).kindU.S6.Sons->data[0];
	}
	goto LA1;
	LA3: ;
	{
		b = n;
	}
	LA1: ;
	gen_595138(p, (*b).kindU.S6.Sons->data[0], (&a));
	{
		ttype224852* LOC8;
		NimStringDesc* LOC11;
		NI LOC12;
		NimStringDesc* LOC13;
		LOC8 = 0;
		LOC8 = skiptypes_229245((*(*b).kindU.S6.Sons->data[0]).Typ, IL64(211106242013440));
		if (!((*LOC8).Kind == ((NU8) 18))) goto LA9;
		LOC11 = 0;
		LOC12 = 0;
		LOC12 = getfieldposition_599790((*b).kindU.S6.Sons->data[1]);
		LOC13 = 0;
		LOC13 = nimIntToStr(LOC12);
		LOC11 = rawNewString(LOC13->Sup.len + 5);
appendString(LOC11, ((NimStringDesc*) &TMP4524));
appendString(LOC11, LOC13);
		unsureAsgnRef((void**) (&(*r).Res), makejsstring_594344(LOC11));
	}
	goto LA6;
	LA9: ;
	{
		tsym224846* f;
		NimStringDesc* LOC23;
		{
			if (!!(((*(*b).kindU.S6.Sons->data[1]).Kind == ((NU8) 3)))) goto LA17;
			internalerror_196987((*(*b).kindU.S6.Sons->data[1]).Info, ((NimStringDesc*) &TMP4526));
		}
		LA17: ;
		f = (*(*b).kindU.S6.Sons->data[1]).kindU.S4.Sym;
		{
			if (!((*f).Loc.R == NIM_NIL)) goto LA21;
			asgnRefNoCycle((void**) (&(*f).Loc.R), manglename_594315(f));
		}
		LA21: ;
		LOC23 = 0;
		LOC23 = ropetostr_176101((*f).Loc.R);
		unsureAsgnRef((void**) (&(*r).Res), makejsstring_594344(LOC23));
	}
	LA6: ;
	{
		NimStringDesc* LOC28;
		if (!!(!((a.Typ == ((NU8) 8))))) goto LA26;
		LOC28 = 0;
		LOC28 = HEX24_197126(TMP4527);
		internalerror_197006(LOC28);
	}
	LA26: ;
	unsureAsgnRef((void**) (&(*r).Address), a.Res);
	(*r).Kind = ((NU8) 1);
}

N_NIMCALL(void, gencheckedfieldaddr_600180)(tproc594033* p, tnode224816* n, tcompres594023* r) {
	genfieldaddr_599828(p, (*n).kindU.S6.Sons->data[0], r);
}

N_NIMCALL(void, genarrayaddr_600232)(tproc594033* p, tnode224816* n, tcompres594023* r) {
	tcompres594023 a;
	tcompres594023 b;
	NI64 first;
	tnode224816* m;
	ttype224852* typ;
	memset((void*)(&a), 0, sizeof(a));
	memset((void*)(&b), 0, sizeof(b));
	first = 0;
	(*r).Typ = ((NU8) 8);
	{
		if (!((*n).Kind == ((NU8) 64))) goto LA3;
		m = (*n).kindU.S6.Sons->data[0];
	}
	goto LA1;
	LA3: ;
	{
		m = n;
	}
	LA1: ;
	gen_595138(p, (*m).kindU.S6.Sons->data[0], (&a));
	gen_595138(p, (*m).kindU.S6.Sons->data[1], (&b));
	{
		NIM_BOOL LOC8;
		NimStringDesc* LOC12;
		LOC8 = 0;
		LOC8 = !((a.Typ == ((NU8) 8)));
		if (!(LOC8)) goto LA9;
		LOC8 = !((b.Typ == ((NU8) 8)));
		LA9: ;
		if (!!(LOC8)) goto LA10;
		LOC12 = 0;
		LOC12 = HEX24_197126(TMP4528);
		internalerror_197006(LOC12);
	}
	LA10: ;
	unsureAsgnRef((void**) (&(*r).Address), a.Res);
	typ = skiptypes_229245((*(*m).kindU.S6.Sons->data[0]).Typ, IL64(211106247256320));
	{
		if (!((*typ).Kind == ((NU8) 16) || (*typ).Kind == ((NU8) 4))) goto LA15;
		first = firstord_262004((*typ).Sons->data[0]);
	}
	goto LA13;
	LA15: ;
	{
		first = IL64(0);
	}
	LA13: ;
	{
		NIM_BOOL LOC20;
		NIM_BOOL LOC22;
		TY553018 LOC25;
		LOC20 = 0;
		LOC20 = (((*p).Options &(1<<((((NU8) 4))&31)))!=0);
		if (!(LOC20)) goto LA21;
		LOC22 = 0;
		LOC22 = isconstexpr_260921((*m).kindU.S6.Sons->data[1]);
		LOC20 = !(LOC22);
		LA21: ;
		if (!LOC20) goto LA23;
		usemagic_595168(p, ((NimStringDesc*) &TMP4529));
		memset((void*)LOC25, 0, sizeof(LOC25));
		LOC25[0] = b.Res;
		LOC25[1] = torope_176082(first);
		LOC25[2] = a.Res;
		unsureAsgnRef((void**) (&(*r).Res), ropef_176107(((NimStringDesc*) &TMP4530), LOC25, 3));
	}
	goto LA18;
	LA23: ;
	{
		TY587896 LOC29;
		if (!!((first == IL64(0)))) goto LA27;
		memset((void*)LOC29, 0, sizeof(LOC29));
		LOC29[0] = b.Res;
		LOC29[1] = torope_176082(first);
		unsureAsgnRef((void**) (&(*r).Res), ropef_176107(((NimStringDesc*) &TMP4531), LOC29, 2));
	}
	goto LA18;
	LA27: ;
	{
		unsureAsgnRef((void**) (&(*r).Res), b.Res);
	}
	LA18: ;
	(*r).Kind = ((NU8) 1);
}

N_NIMCALL(void, genaddr_600480)(tproc594033* p, tnode224816* n, tcompres594023* r) {
	switch ((*(*n).kindU.S6.Sons->data[0]).Kind) {
	case ((NU8) 3):
	{
		tsym224846* s;
		s = (*(*n).kindU.S6.Sons->data[0]).kindU.S4.Sym;
		{
			if (!((*s).Loc.R == NIM_NIL)) goto LA4;
			internalerror_196987((*n).Info, ((NimStringDesc*) &TMP4522));
		}
		LA4: ;
		switch ((*s).Kind) {
		case ((NU8) 8):
		case ((NU8) 9):
		case ((NU8) 11):
		{
			(*r).Kind = ((NU8) 1);
			{
				NU8 LOC9;
				LOC9 = 0;
				LOC9 = maptype_594291((*(*n).kindU.S6.Sons->data[0]).Typ);
				if (!(LOC9 == ((NU8) 7))) goto LA10;
				(*r).Typ = ((NU8) 0);
				unsureAsgnRef((void**) (&(*r).Res), (*s).Loc.R);
				unsureAsgnRef((void**) (&(*r).Address), NIM_NIL);
			}
			goto LA7;
			LA10: ;
			{
				if (!!(((32776 & (*s).Flags) == 0))) goto LA13;
				(*r).Typ = ((NU8) 8);
				unsureAsgnRef((void**) (&(*r).Address), (*s).Loc.R);
				unsureAsgnRef((void**) (&(*r).Res), torope_176076(((NimStringDesc*) &TMP4255)));
			}
			goto LA7;
			LA13: ;
			{
				gen_595138(p, (*n).kindU.S6.Sons->data[0], r);
			}
			LA7: ;
		}
		break;
		default:
		{
			internalerror_196987((*n).Info, ((NimStringDesc*) &TMP4523));
		}
		break;
		}
	}
	break;
	case ((NU8) 46):
	{
		gencheckedfieldaddr_600180(p, n, r);
	}
	break;
	case ((NU8) 45):
	{
		genfieldaddr_599828(p, n, r);
	}
	break;
	case ((NU8) 42):
	{
		ttype224852* ty;
		ty = skiptypes_229245((*(*n).kindU.S6.Sons->data[0]).Typ, IL64(211106242013440));
		{
			ttype224852* LOC24;
			if (!((*ty).Kind == ((NU8) 22) || (*ty).Kind == ((NU8) 21))) goto LA22;
			LOC24 = 0;
			LOC24 = lastson_225267(ty);
			ty = skiptypes_229245(LOC24, IL64(211106242013440));
		}
		LA22: ;
		switch ((*ty).Kind) {
		case ((NU8) 16):
		case ((NU8) 4):
		case ((NU8) 27):
		case ((NU8) 24):
		case ((NU8) 28):
		case ((NU8) 29):
		case ((NU8) 48):
		{
			genarrayaddr_600232(p, n, r);
		}
		break;
		case ((NU8) 18):
		{
			genfieldaddr_599828(p, n, r);
		}
		break;
		default:
		{
			NimStringDesc* LOC28;
			LOC28 = 0;
			LOC28 = rawNewString(reprEnum((*ty).Kind, (&NTI224258))->Sup.len + 21);
appendString(LOC28, ((NimStringDesc*) &TMP4532));
appendString(LOC28, reprEnum((*ty).Kind, (&NTI224258)));
appendChar(LOC28, 41);
			internalerror_196987((*n).Info, LOC28);
		}
		break;
		}
	}
	break;
	default:
	{
		internalerror_196987((*n).Info, ((NimStringDesc*) &TMP4533));
	}
	break;
	}
}

N_NIMCALL(void, genderef_601017)(tproc594033* p, tnode224816* n, tcompres594023* r) {
	{
		NU8 LOC3;
		LOC3 = 0;
		LOC3 = maptype_594291((*(*n).kindU.S6.Sons->data[0]).Typ);
		if (!(LOC3 == ((NU8) 7))) goto LA4;
		gen_595138(p, (*n).kindU.S6.Sons->data[0], r);
	}
	goto LA1;
	LA4: ;
	{
		tcompres594023 a;
		TY587896 LOC11;
		memset((void*)(&a), 0, sizeof(a));
		gen_595138(p, (*n).kindU.S6.Sons->data[0], (&a));
		{
			if (!!((a.Typ == ((NU8) 8)))) goto LA9;
			internalerror_196987((*n).Info, ((NimStringDesc*) &TMP4534));
		}
		LA9: ;
		memset((void*)LOC11, 0, sizeof(LOC11));
		LOC11[0] = a.Address;
		LOC11[1] = a.Res;
		unsureAsgnRef((void**) (&(*r).Res), ropef_176107(((NimStringDesc*) &TMP4513), LOC11, 2));
	}
	LA1: ;
}

N_NIMCALL(void, genarrayaccess_600411)(tproc594033* p, tnode224816* n, tcompres594023* r) {
	ttype224852* ty;
	TY587896 LOC14;
	ty = skiptypes_229245((*(*n).kindU.S6.Sons->data[0]).Typ, IL64(211106242013440));
	{
		ttype224852* LOC5;
		if (!((*ty).Kind == ((NU8) 22) || (*ty).Kind == ((NU8) 21))) goto LA3;
		LOC5 = 0;
		LOC5 = lastson_225267(ty);
		ty = skiptypes_229245(LOC5, IL64(211106242013440));
	}
	LA3: ;
	switch ((*ty).Kind) {
	case ((NU8) 16):
	case ((NU8) 4):
	case ((NU8) 27):
	case ((NU8) 24):
	case ((NU8) 28):
	case ((NU8) 29):
	case ((NU8) 48):
	{
		genarrayaddr_600232(p, n, r);
	}
	break;
	case ((NU8) 18):
	{
		genfieldaddr_599828(p, n, r);
	}
	break;
	default:
	{
		NimStringDesc* LOC9;
		LOC9 = 0;
		LOC9 = rawNewString(reprEnum((*ty).Kind, (&NTI224258))->Sup.len + 21);
appendString(LOC9, ((NimStringDesc*) &TMP4532));
appendString(LOC9, reprEnum((*ty).Kind, (&NTI224258)));
appendChar(LOC9, 41);
		internalerror_196987((*n).Info, LOC9);
	}
	break;
	}
	(*r).Typ = ((NU8) 0);
	{
		if (!((*r).Res == NIM_NIL)) goto LA12;
		internalerror_196987((*n).Info, ((NimStringDesc*) &TMP4535));
	}
	LA12: ;
	memset((void*)LOC14, 0, sizeof(LOC14));
	LOC14[0] = (*r).Address;
	LOC14[1] = (*r).Res;
	unsureAsgnRef((void**) (&(*r).Res), ropef_176107(((NimStringDesc*) &TMP4513), LOC14, 2));
	unsureAsgnRef((void**) (&(*r).Address), NIM_NIL);
	(*r).Kind = ((NU8) 1);
}

N_NIMCALL(void, genfieldaccess_600026)(tproc594033* p, tnode224816* n, tcompres594023* r) {
	(*r).Typ = ((NU8) 0);
	gen_595138(p, (*n).kindU.S6.Sons->data[0], r);
	{
		ttype224852* LOC3;
		TY587896 LOC6;
		NI LOC7;
		LOC3 = 0;
		LOC3 = skiptypes_229245((*(*n).kindU.S6.Sons->data[0]).Typ, IL64(211106242013440));
		if (!((*LOC3).Kind == ((NU8) 18))) goto LA4;
		memset((void*)LOC6, 0, sizeof(LOC6));
		LOC6[0] = (*r).Res;
		LOC7 = 0;
		LOC7 = getfieldposition_599790((*n).kindU.S6.Sons->data[1]);
		LOC6[1] = torope_176082(((NI64) (LOC7)));
		unsureAsgnRef((void**) (&(*r).Res), ropef_176107(((NimStringDesc*) &TMP4536), LOC6, 2));
	}
	goto LA1;
	LA4: ;
	{
		tsym224846* f;
		TY587896 LOC17;
		{
			if (!!(((*(*n).kindU.S6.Sons->data[1]).Kind == ((NU8) 3)))) goto LA11;
			internalerror_196987((*(*n).kindU.S6.Sons->data[1]).Info, ((NimStringDesc*) &TMP4526));
		}
		LA11: ;
		f = (*(*n).kindU.S6.Sons->data[1]).kindU.S4.Sym;
		{
			if (!((*f).Loc.R == NIM_NIL)) goto LA15;
			asgnRefNoCycle((void**) (&(*f).Loc.R), manglename_594315(f));
		}
		LA15: ;
		memset((void*)LOC17, 0, sizeof(LOC17));
		LOC17[0] = (*r).Res;
		LOC17[1] = (*f).Loc.R;
		unsureAsgnRef((void**) (&(*r).Res), ropef_176107(((NimStringDesc*) &TMP4537), LOC17, 2));
	}
	LA1: ;
	(*r).Kind = ((NU8) 1);
}

N_NIMCALL(void, gencheckedfieldaccess_600206)(tproc594033* p, tnode224816* n, tcompres594023* r) {
	genfieldaccess_600026(p, (*n).kindU.S6.Sons->data[0], r);
}

N_NIMCALL(void, upconv_603822)(tproc594033* p, tnode224816* n, tcompres594023* r) {
	gen_595138(p, (*n).kindU.S6.Sons->data[0], r);
}

N_NIMCALL(void, genrangechck_603848)(tproc594033* p, tnode224816* n, tcompres594023* r, NimStringDesc* magic) {
	tcompres594023 a;
	tcompres594023 b;
	memset((void*)(&a), 0, sizeof(a));
	memset((void*)(&b), 0, sizeof(b));
	gen_595138(p, (*n).kindU.S6.Sons->data[0], r);
	{
		TY553018 LOC5;
		if (!(((*p).Options &(1<<((((NU8) 3))&31)))!=0)) goto LA3;
		gen_595138(p, (*n).kindU.S6.Sons->data[1], (&a));
		gen_595138(p, (*n).kindU.S6.Sons->data[2], (&b));
		usemagic_595168(p, ((NimStringDesc*) &TMP4538));
		memset((void*)LOC5, 0, sizeof(LOC5));
		LOC5[0] = (*r).Res;
		LOC5[1] = a.Res;
		LOC5[2] = b.Res;
		unsureAsgnRef((void**) (&(*r).Res), ropef_176107(((NimStringDesc*) &TMP4539), LOC5, 3));
		(*r).Kind = ((NU8) 1);
	}
	LA3: ;
}

N_NIMCALL(void, convstrtocstr_603926)(tproc594033* p, tnode224816* n, tcompres594023* r) {
	{
		if (!((*(*n).kindU.S6.Sons->data[0]).Kind == ((NU8) 72))) goto LA3;
		gen_595138(p, (*(*n).kindU.S6.Sons->data[0]).kindU.S6.Sons->data[0], r);
	}
	goto LA1;
	LA3: ;
	{
		TY176515 LOC10;
		gen_595138(p, (*n).kindU.S6.Sons->data[0], r);
		{
			if (!((*r).Res == NIM_NIL)) goto LA8;
			internalerror_196987((*n).Info, ((NimStringDesc*) &TMP4542));
		}
		LA8: ;
		usemagic_595168(p, ((NimStringDesc*) &TMP4543));
		memset((void*)LOC10, 0, sizeof(LOC10));
		LOC10[0] = (*r).Res;
		unsureAsgnRef((void**) (&(*r).Res), ropef_176107(((NimStringDesc*) &TMP4544), LOC10, 1));
		(*r).Kind = ((NU8) 1);
	}
	LA1: ;
}

N_NIMCALL(void, convcstrtostr_604024)(tproc594033* p, tnode224816* n, tcompres594023* r) {
	{
		if (!((*(*n).kindU.S6.Sons->data[0]).Kind == ((NU8) 71))) goto LA3;
		gen_595138(p, (*(*n).kindU.S6.Sons->data[0]).kindU.S6.Sons->data[0], r);
	}
	goto LA1;
	LA3: ;
	{
		TY176515 LOC10;
		gen_595138(p, (*n).kindU.S6.Sons->data[0], r);
		{
			if (!((*r).Res == NIM_NIL)) goto LA8;
			internalerror_196987((*n).Info, ((NimStringDesc*) &TMP4545));
		}
		LA8: ;
		usemagic_595168(p, ((NimStringDesc*) &TMP4323));
		memset((void*)LOC10, 0, sizeof(LOC10));
		LOC10[0] = (*r).Res;
		unsureAsgnRef((void**) (&(*r).Res), ropef_176107(((NimStringDesc*) &TMP4324), LOC10, 1));
		(*r).Kind = ((NU8) 1);
	}
	LA1: ;
}

N_NIMCALL(void, genblock_597973)(tproc594033* p, tnode224816* n, tcompres594023* r) {
	NI idx;
	NI labl;
	NimStringDesc* LOC9;
	TY176515 LOC15;
	NimStringDesc* LOC16;
	TY176515 LOC22;
	(*p).Unique += 1;
	idx = (*p).Blocks->Sup.len;
	{
		tsym224846* sym;
		if (!!(((*(*n).kindU.S6.Sons->data[0]).Kind == ((NU8) 1)))) goto LA3;
		{
			if (!!(((*(*n).kindU.S6.Sons->data[0]).Kind == ((NU8) 3)))) goto LA7;
			internalerror_196987((*n).Info, ((NimStringDesc*) &TMP4546));
		}
		LA7: ;
		sym = (*(*n).kindU.S6.Sons->data[0]).kindU.S4.Sym;
		(*sym).Loc.K = ((NU8) 11);
		(*sym).Position = (NI32)(idx + 1);
	}
	LA3: ;
	(*p).Blocks = (TY594071*) setLengthSeq(&((*p).Blocks)->Sup, sizeof(tblock594025), (NI32)(idx + 1));
	(*p).Blocks->data[idx].Id = ((NI32)-((*p).Unique));
	labl = (*p).Unique;
	LOC9 = 0;
	{
		if (!((*p).Target == ((NU8) 0))) goto LA12;
		LOC9 = copyString(((NimStringDesc*) &TMP4547));
	}
	goto LA10;
	LA12: ;
	{
		LOC9 = copyString(((NimStringDesc*) &TMP4343));
	}
	LA10: ;
	memset((void*)LOC15, 0, sizeof(LOC15));
	LOC15[0] = torope_176082(((NI64) (labl)));
	appf_176115(&(*p).Body, LOC9, LOC15, 1);
	gen_595138(p, (*n).kindU.S6.Sons->data[1], r);
	LOC16 = 0;
	{
		if (!((*p).Target == ((NU8) 0))) goto LA19;
		LOC16 = copyString(((NimStringDesc*) &TMP4548));
	}
	goto LA17;
	LA19: ;
	{
		LOC16 = copyString(((NimStringDesc*) &TMP4549));
	}
	LA17: ;
	memset((void*)LOC22, 0, sizeof(LOC22));
	LOC22[0] = torope_176082(((NI64) (labl)));
	appf_176115(&(*p).Body, LOC16, LOC22, 1);
	(*p).Blocks = (TY594071*) setLengthSeq(&((*p).Blocks)->Sup, sizeof(tblock594025), idx);
}

N_NIMCALL(void, moveinto_596653)(tproc594033* p, tcompres594023* src, tcompres594023 dest) {
	{
		if (!!(((*src).Kind == ((NU8) 0)))) goto LA3;
		{
			TY587896 LOC9;
			if (!!((dest.Kind == ((NU8) 0)))) goto LA7;
			memset((void*)LOC9, 0, sizeof(LOC9));
			LOC9[0] = rdloc_594139(dest);
			LOC9[1] = rdloc_594139((*src));
			appf_176115(&(*p).Body, ((NimStringDesc*) &TMP4467), LOC9, 2);
		}
		goto LA5;
		LA7: ;
		{
			TY176515 LOC11;
			memset((void*)LOC11, 0, sizeof(LOC11));
			LOC11[0] = rdloc_594139((*src));
			appf_176115(&(*p).Body, ((NimStringDesc*) &TMP4554), LOC11, 1);
		}
		LA5: ;
		(*src).Kind = ((NU8) 0);
		unsureAsgnRef((void**) (&(*src).Res), NIM_NIL);
	}
	LA3: ;
}

N_NIMCALL(void, genif_598921)(tproc594033* p, tnode224816* n, tcompres594023* r) {
	tcompres594023 cond;
	tcompres594023 stmt;
	NI toclose;
	memset((void*)(&cond), 0, sizeof(cond));
	memset((void*)(&stmt), 0, sizeof(stmt));
	toclose = 0;
	{
		NIM_BOOL LOC3;
		LOC3 = 0;
		LOC3 = isemptytype_231990((*n).Typ);
		if (!!(LOC3)) goto LA4;
		(*r).Kind = ((NU8) 2);
		unsureAsgnRef((void**) (&(*r).Res), gettemp_595313(p));
	}
	LA4: ;
	{
		NI i_598942;
		NI HEX3Atmp_599114;
		NI LOC7;
		NI res_599117;
		i_598942 = 0;
		HEX3Atmp_599114 = 0;
		LOC7 = 0;
		LOC7 = sonslen_225249(n);
		HEX3Atmp_599114 = (NI32)(LOC7 - 1);
		res_599117 = 0;
		{
			while (1) {
				tnode224816* it;
				NimStringDesc* LOC41;
				TY552703 LOC47;
				if (!(res_599117 <= HEX3Atmp_599114)) goto LA9;
				i_598942 = res_599117;
				it = (*n).kindU.S6.Sons->data[i_598942];
				{
					NI LOC12;
					NimStringDesc* LOC26;
					TY176515 LOC32;
					LOC12 = 0;
					LOC12 = sonslen_225249(it);
					if (!!((LOC12 == 1))) goto LA13;
					{
						NimStringDesc* LOC19;
						TY552703 LOC25;
						if (!(0 < i_598942)) goto LA17;
						LOC19 = 0;
						{
							if (!((*p).Target == ((NU8) 0))) goto LA22;
							LOC19 = copyString(((NimStringDesc*) &TMP4550));
						}
						goto LA20;
						LA22: ;
						{
							LOC19 = copyString(((NimStringDesc*) &TMP4551));
						}
						LA20: ;
						memset((void*)LOC25, 0, sizeof(LOC25));
						appf_176115(&(*p).Body, LOC19, LOC25, 0);
						toclose += 1;
					}
					LA17: ;
					gen_595138(p, (*it).kindU.S6.Sons->data[0], (&cond));
					LOC26 = 0;
					{
						if (!((*p).Target == ((NU8) 0))) goto LA29;
						LOC26 = copyString(((NimStringDesc*) &TMP4552));
					}
					goto LA27;
					LA29: ;
					{
						LOC26 = copyString(((NimStringDesc*) &TMP4553));
					}
					LA27: ;
					memset((void*)LOC32, 0, sizeof(LOC32));
					LOC32[0] = rdloc_594139(cond);
					appf_176115(&(*p).Body, LOC26, LOC32, 1);
					gen_595138(p, (*it).kindU.S6.Sons->data[1], (&stmt));
				}
				goto LA10;
				LA13: ;
				{
					NimStringDesc* LOC34;
					TY552703 LOC40;
					LOC34 = 0;
					{
						if (!((*p).Target == ((NU8) 0))) goto LA37;
						LOC34 = copyString(((NimStringDesc*) &TMP4550));
					}
					goto LA35;
					LA37: ;
					{
						LOC34 = copyString(((NimStringDesc*) &TMP4551));
					}
					LA35: ;
					memset((void*)LOC40, 0, sizeof(LOC40));
					appf_176115(&(*p).Body, LOC34, LOC40, 0);
					gen_595138(p, (*it).kindU.S6.Sons->data[0], (&stmt));
				}
				LA10: ;
				moveinto_596653(p, (&stmt), (*r));
				LOC41 = 0;
				{
					if (!((*p).Target == ((NU8) 0))) goto LA44;
					LOC41 = copyString(((NimStringDesc*) &TMP4555));
				}
				goto LA42;
				LA44: ;
				{
					LOC41 = copyString(((NimStringDesc*) &TMP4556));
				}
				LA42: ;
				memset((void*)LOC47, 0, sizeof(LOC47));
				appf_176115(&(*p).Body, LOC41, LOC47, 0);
				res_599117 += 1;
			} LA9: ;
		}
	}
	{
		NimStringDesc* LOC52;
		NimStringDesc* LOC53;
		if (!((*p).Target == ((NU8) 0))) goto LA50;
		LOC52 = 0;
		LOC53 = 0;
		LOC53 = nsuRepeatChar(toclose, 125);
		LOC52 = rawNewString(LOC53->Sup.len + tnl_173613->Sup.len + 0);
appendString(LOC52, LOC53);
appendString(LOC52, tnl_173613);
		app_176060(&(*p).Body, LOC52);
	}
	goto LA48;
	LA50: ;
	{
		{
			NI i_599102;
			NI res_599122;
			i_599102 = 0;
			res_599122 = 1;
			{
				while (1) {
					TY552703 LOC58;
					if (!(res_599122 <= toclose)) goto LA57;
					i_599102 = res_599122;
					memset((void*)LOC58, 0, sizeof(LOC58));
					appf_176115(&(*p).Body, ((NimStringDesc*) &TMP4556), LOC58, 0);
					res_599122 += 1;
				} LA57: ;
			}
		}
	}
	LA48: ;
}

static N_INLINE(NI, tolinenumber_196073)(tlineinfo194539 info) {
	NI result;
	result = 0;
	result = ((NI) (info.Line));
	return result;
}

N_NIMCALL(void, genlinedir_596328)(tproc594033* p, tnode224816* n) {
	NI line;
	line = tolinenumber_196073((*n).Info);
	{
		NimStringDesc* LOC5;
		TY587896 LOC11;
		NimStringDesc* LOC12;
		if (!(((*p).Options &(1<<((((NU8) 10))&31)))!=0)) goto LA3;
		LOC5 = 0;
		{
			if (!((*p).Target == ((NU8) 0))) goto LA8;
			LOC5 = copyString(((NimStringDesc*) &TMP4558));
		}
		goto LA6;
		LA8: ;
		{
			LOC5 = copyString(((NimStringDesc*) &TMP4559));
		}
		LA6: ;
		memset((void*)LOC11, 0, sizeof(LOC11));
		LOC12 = 0;
		LOC12 = tofilename_196025((*n).Info.Fileindex);
		LOC11[0] = torope_176076(LOC12);
		LOC11[1] = torope_176082(((NI64) (line)));
		appf_176115(&(*p).Body, LOC5, LOC11, 2);
	}
	LA3: ;
	{
		NIM_BOOL LOC15;
		NIM_BOOL LOC17;
		TY176515 LOC21;
		LOC15 = 0;
		LOC15 = ((163840 & (*p).Options) == 163840);
		if (!(LOC15)) goto LA16;
		LOC17 = 0;
		LOC17 = ((*p).Prc == NIM_NIL);
		if (LOC17) goto LA18;
		LOC17 = !((((*(*p).Prc).Flags &(1<<((((NU8) 9))&31)))!=0));
		LA18: ;
		LOC15 = LOC17;
		LA16: ;
		if (!LOC15) goto LA19;
		usemagic_595168(p, ((NimStringDesc*) &TMP4560));
		memset((void*)LOC21, 0, sizeof(LOC21));
		LOC21[0] = torope_176082(((NI64) (line)));
		appf_176115(&(*p).Body, ((NimStringDesc*) &TMP4561), LOC21, 1);
	}
	goto LA13;
	LA19: ;
	{
		NIM_BOOL LOC23;
		NIM_BOOL LOC25;
		TY176515 LOC29;
		LOC23 = 0;
		LOC23 = ((98304 & (*p).Options) == 98304);
		if (!(LOC23)) goto LA24;
		LOC25 = 0;
		LOC25 = ((*p).Prc == NIM_NIL);
		if (LOC25) goto LA26;
		LOC25 = !((((*(*p).Prc).Flags &(1<<((((NU8) 9))&31)))!=0));
		LA26: ;
		LOC23 = LOC25;
		LA24: ;
		if (!LOC23) goto LA27;
		memset((void*)LOC29, 0, sizeof(LOC29));
		LOC29[0] = torope_176082(((NI64) (line)));
		appf_176115(&(*p).Body, ((NimStringDesc*) &TMP4562), LOC29, 1);
	}
	goto LA13;
	LA27: ;
	LA13: ;
}

N_NIMCALL(void, genwhilestmt_596506)(tproc594033* p, tnode224816* n) {
	tcompres594023 cond;
	NI length;
	trope176009* labl;
	NimStringDesc* LOC7;
	TY176515 LOC13;
	NimStringDesc* LOC14;
	TY587896 LOC20;
	NimStringDesc* LOC21;
	TY176515 LOC27;
	memset((void*)(&cond), 0, sizeof(cond));
	{
		NIM_BOOL LOC3;
		NimStringDesc* LOC6;
		LOC3 = 0;
		LOC3 = isemptytype_231990((*n).Typ);
		if (!!(LOC3)) goto LA4;
		LOC6 = 0;
		LOC6 = HEX24_197126(TMP4557);
		internalerror_197006(LOC6);
	}
	LA4: ;
	genlinedir_596328(p, n);
	(*p).Unique += 1;
	length = (*p).Blocks->Sup.len;
	(*p).Blocks = (TY594071*) setLengthSeq(&((*p).Blocks)->Sup, sizeof(tblock594025), (NI32)(length + 1));
	(*p).Blocks->data[length].Id = ((NI32)-((*p).Unique));
	(*p).Blocks->data[length].Isloop = NIM_TRUE;
	labl = torope_176082(((NI64) ((*p).Unique)));
	LOC7 = 0;
	{
		if (!((*p).Target == ((NU8) 0))) goto LA10;
		LOC7 = copyString(((NimStringDesc*) &TMP4563));
	}
	goto LA8;
	LA10: ;
	{
		LOC7 = copyString(((NimStringDesc*) &TMP4564));
	}
	LA8: ;
	memset((void*)LOC13, 0, sizeof(LOC13));
	LOC13[0] = labl;
	appf_176115(&(*p).Body, LOC7, LOC13, 1);
	gen_595138(p, (*n).kindU.S6.Sons->data[0], (&cond));
	LOC14 = 0;
	{
		if (!((*p).Target == ((NU8) 0))) goto LA17;
		LOC14 = copyString(((NimStringDesc*) &TMP4565));
	}
	goto LA15;
	LA17: ;
	{
		LOC14 = copyString(((NimStringDesc*) &TMP4566));
	}
	LA15: ;
	memset((void*)LOC20, 0, sizeof(LOC20));
	LOC20[0] = cond.Res;
	LOC20[1] = labl;
	appf_176115(&(*p).Body, LOC14, LOC20, 2);
	genstmt_595147(p, (*n).kindU.S6.Sons->data[1]);
	LOC21 = 0;
	{
		if (!((*p).Target == ((NU8) 0))) goto LA24;
		LOC21 = copyString(((NimStringDesc*) &TMP4555));
	}
	goto LA22;
	LA24: ;
	{
		LOC21 = copyString(((NimStringDesc*) &TMP4567));
	}
	LA22: ;
	memset((void*)LOC27, 0, sizeof(LOC27));
	LOC27[0] = labl;
	appf_176115(&(*p).Body, LOC21, LOC27, 1);
	(*p).Blocks = (TY594071*) setLengthSeq(&((*p).Blocks)->Sup, sizeof(tblock594025), length);
}

N_NIMCALL(void, genvarstmt_602046)(tproc594033* p, tnode224816* n) {
	{
		NI i_602062;
		NI HEX3Atmp_602458;
		NI LOC2;
		NI res_602461;
		i_602062 = 0;
		HEX3Atmp_602458 = 0;
		LOC2 = 0;
		LOC2 = sonslen_225249(n);
		HEX3Atmp_602458 = (NI32)(LOC2 - 1);
		res_602461 = 0;
		{
			while (1) {
				tnode224816* a;
				if (!(res_602461 <= HEX3Atmp_602458)) goto LA4;
				i_602062 = res_602461;
				a = (*n).kindU.S6.Sons->data[i_602062];
				{
					if (!!(((*a).Kind == ((NU8) 125)))) goto LA7;
					{
						tnode224816* unpacked;
						if (!((*a).Kind == ((NU8) 36))) goto LA11;
						unpacked = lowertupleunpacking_423184(a, (*p).Prc);
						genstmt_595147(p, unpacked);
					}
					goto LA9;
					LA11: ;
					{
						tsym224846* v;
						v = (*(*a).kindU.S6.Sons->data[0]).kindU.S4.Sym;
						{
							if (!!((((*v).Loc.Flags &(1<<((((NU8) 3))&7)))!=0))) goto LA16;
							genlinedir_596328(p, a);
							genvarinit_601901(p, v, (*a).kindU.S6.Sons->data[2]);
						}
						LA16: ;
					}
					LA9: ;
				}
				LA7: ;
				res_602461 += 1;
			} LA4: ;
		}
	}
}

N_NIMCALL(void, gencasejs_597363)(tproc594033* p, tnode224816* n, tcompres594023* r) {
	tcompres594023 cond;
	tcompres594023 stmt;
	NIM_BOOL stringswitch;
	ttype224852* LOC1;
	TY552703 LOC46;
	memset((void*)(&cond), 0, sizeof(cond));
	memset((void*)(&stmt), 0, sizeof(stmt));
	genlinedir_596328(p, n);
	gen_595138(p, (*n).kindU.S6.Sons->data[0], (&cond));
	LOC1 = 0;
	LOC1 = skiptypes_229245((*(*n).kindU.S6.Sons->data[0]).Typ, IL64(211106240964864));
	stringswitch = ((*LOC1).Kind == ((NU8) 28));
	{
		TY176515 LOC6;
		if (!stringswitch) goto LA4;
		usemagic_595168(p, ((NimStringDesc*) &TMP4543));
		memset((void*)LOC6, 0, sizeof(LOC6));
		LOC6[0] = rdloc_594139(cond);
		appf_176115(&(*p).Body, ((NimStringDesc*) &TMP4569), LOC6, 1);
	}
	goto LA2;
	LA4: ;
	{
		TY176515 LOC8;
		memset((void*)LOC8, 0, sizeof(LOC8));
		LOC8[0] = rdloc_594139(cond);
		appf_176115(&(*p).Body, ((NimStringDesc*) &TMP4570), LOC8, 1);
	}
	LA2: ;
	{
		NIM_BOOL LOC11;
		LOC11 = 0;
		LOC11 = isemptytype_231990((*n).Typ);
		if (!!(LOC11)) goto LA12;
		(*r).Kind = ((NU8) 2);
		unsureAsgnRef((void**) (&(*r).Res), gettemp_595313(p));
	}
	LA12: ;
	{
		NI i_597432;
		NI HEX3Atmp_597659;
		NI LOC15;
		NI res_597662;
		i_597432 = 0;
		HEX3Atmp_597659 = 0;
		LOC15 = 0;
		LOC15 = sonslen_225249(n);
		HEX3Atmp_597659 = (NI32)(LOC15 - 1);
		res_597662 = 1;
		{
			while (1) {
				tnode224816* it;
				if (!(res_597662 <= HEX3Atmp_597659)) goto LA17;
				i_597432 = res_597662;
				it = (*n).kindU.S6.Sons->data[i_597432];
				switch ((*it).Kind) {
				case ((NU8) 85):
				{
					tnode224816* LOC40;
					TY552703 LOC41;
					{
						NI j_597460;
						NI HEX3Atmp_597654;
						NI LOC20;
						NI res_597657;
						j_597460 = 0;
						HEX3Atmp_597654 = 0;
						LOC20 = 0;
						LOC20 = sonslen_225249(it);
						HEX3Atmp_597654 = (NI32)(LOC20 - 2);
						res_597657 = 0;
						{
							while (1) {
								tnode224816* e;
								if (!(res_597657 <= HEX3Atmp_597654)) goto LA22;
								j_597460 = res_597657;
								e = (*it).kindU.S6.Sons->data[j_597460];
								{
									tnode224816* v;
									if (!((*e).Kind == ((NU8) 44))) goto LA25;
									v = copynode_225323((*e).kindU.S6.Sons->data[0]);
									{
										while (1) {
											TY176515 LOC29;
											if (!((*v).kindU.S1.Intval <= (*(*e).kindU.S6.Sons->data[1]).kindU.S1.Intval)) goto LA28;
											gen_595138(p, v, (&cond));
											memset((void*)LOC29, 0, sizeof(LOC29));
											LOC29[0] = rdloc_594139(cond);
											appf_176115(&(*p).Body, ((NimStringDesc*) &TMP4571), LOC29, 1);
											(*v).kindU.S1.Intval += 1;
										} LA28: ;
									}
								}
								goto LA23;
								LA25: ;
								{
									{
										if (!stringswitch) goto LA33;
										switch ((*e).Kind) {
										case ((NU8) 20) ... ((NU8) 22):
										{
											TY176515 LOC36;
											memset((void*)LOC36, 0, sizeof(LOC36));
											LOC36[0] = makejsstring_594344((*e).kindU.S3.Strval);
											appf_176115(&(*p).Body, ((NimStringDesc*) &TMP4571), LOC36, 1);
										}
										break;
										default:
										{
											internalerror_196987((*e).Info, ((NimStringDesc*) &TMP4572));
										}
										break;
										}
									}
									goto LA31;
									LA33: ;
									{
										TY176515 LOC39;
										gen_595138(p, e, (&cond));
										memset((void*)LOC39, 0, sizeof(LOC39));
										LOC39[0] = rdloc_594139(cond);
										appf_176115(&(*p).Body, ((NimStringDesc*) &TMP4571), LOC39, 1);
									}
									LA31: ;
								}
								LA23: ;
								res_597657 += 1;
							} LA22: ;
						}
					}
					LOC40 = 0;
					LOC40 = lastson_225261(it);
					gen_595138(p, LOC40, (&stmt));
					moveinto_596653(p, (&stmt), (*r));
					memset((void*)LOC41, 0, sizeof(LOC41));
					appf_176115(&(*p).Body, ((NimStringDesc*) &TMP4573), LOC41, 0);
				}
				break;
				case ((NU8) 88):
				{
					TY552703 LOC43;
					TY552703 LOC44;
					memset((void*)LOC43, 0, sizeof(LOC43));
					appf_176115(&(*p).Body, ((NimStringDesc*) &TMP4574), LOC43, 0);
					gen_595138(p, (*it).kindU.S6.Sons->data[0], (&stmt));
					moveinto_596653(p, (&stmt), (*r));
					memset((void*)LOC44, 0, sizeof(LOC44));
					appf_176115(&(*p).Body, ((NimStringDesc*) &TMP4575), LOC44, 0);
				}
				break;
				default:
				{
					internalerror_196987((*it).Info, ((NimStringDesc*) &TMP4576));
				}
				break;
				}
				res_597662 += 1;
			} LA17: ;
		}
	}
	memset((void*)LOC46, 0, sizeof(LOC46));
	appf_176115(&(*p).Body, ((NimStringDesc*) &TMP4555), LOC46, 0);
}

N_NIMCALL(void, gencaselua_597694)(tproc594033* p, tnode224816* n, tcompres594023* r) {
	tcompres594023 cond;
	tcompres594023 stmt;
	NIM_BOOL stringswitch;
	ttype224852* LOC1;
	trope176009* tmp;
	TY587896 LOC6;
	TY552703 LOC52;
	memset((void*)(&cond), 0, sizeof(cond));
	memset((void*)(&stmt), 0, sizeof(stmt));
	genlinedir_596328(p, n);
	gen_595138(p, (*n).kindU.S6.Sons->data[0], (&cond));
	LOC1 = 0;
	LOC1 = skiptypes_229245((*(*n).kindU.S6.Sons->data[0]).Typ, IL64(211106240964864));
	stringswitch = ((*LOC1).Kind == ((NU8) 28));
	{
		if (!stringswitch) goto LA4;
		usemagic_595168(p, ((NimStringDesc*) &TMP4577));
	}
	LA4: ;
	tmp = gettemp_595313(p);
	memset((void*)LOC6, 0, sizeof(LOC6));
	LOC6[0] = tmp;
	LOC6[1] = rdloc_594139(cond);
	appf_176115(&(*p).Body, ((NimStringDesc*) &TMP4467), LOC6, 2);
	{
		NIM_BOOL LOC9;
		LOC9 = 0;
		LOC9 = isemptytype_231990((*n).Typ);
		if (!!(LOC9)) goto LA10;
		(*r).Kind = ((NU8) 2);
		unsureAsgnRef((void**) (&(*r).Res), gettemp_595313(p));
	}
	LA10: ;
	{
		NI i_597759;
		NI HEX3Atmp_597944;
		NI LOC13;
		NI res_597947;
		i_597759 = 0;
		HEX3Atmp_597944 = 0;
		LOC13 = 0;
		LOC13 = sonslen_225249(n);
		HEX3Atmp_597944 = (NI32)(LOC13 - 1);
		res_597947 = 1;
		{
			while (1) {
				tnode224816* it;
				if (!(res_597947 <= HEX3Atmp_597944)) goto LA15;
				i_597759 = res_597947;
				it = (*n).kindU.S6.Sons->data[i_597759];
				switch ((*it).Kind) {
				case ((NU8) 85):
				{
					TY552703 LOC47;
					tnode224816* LOC48;
					{
						TY552703 LOC21;
						if (!!((i_597759 == 1))) goto LA19;
						memset((void*)LOC21, 0, sizeof(LOC21));
						appf_176115(&(*p).Body, ((NimStringDesc*) &TMP4578), LOC21, 0);
					}
					goto LA17;
					LA19: ;
					{
						TY552703 LOC23;
						memset((void*)LOC23, 0, sizeof(LOC23));
						appf_176115(&(*p).Body, ((NimStringDesc*) &TMP4579), LOC23, 0);
					}
					LA17: ;
					{
						NI j_597803;
						NI HEX3Atmp_597939;
						NI LOC25;
						NI res_597942;
						j_597803 = 0;
						HEX3Atmp_597939 = 0;
						LOC25 = 0;
						LOC25 = sonslen_225249(it);
						HEX3Atmp_597939 = (NI32)(LOC25 - 2);
						res_597942 = 0;
						{
							while (1) {
								tnode224816* e;
								if (!(res_597942 <= HEX3Atmp_597939)) goto LA27;
								j_597803 = res_597942;
								{
									if (!!((j_597803 == 0))) goto LA30;
									app_176060(&(*p).Body, ((NimStringDesc*) &TMP4580));
								}
								LA30: ;
								e = (*it).kindU.S6.Sons->data[j_597803];
								{
									tcompres594023 ia;
									tcompres594023 ib;
									TY553018 LOC36;
									if (!((*e).Kind == ((NU8) 44))) goto LA34;
									memset((void*)(&ia), 0, sizeof(ia));
									memset((void*)(&ib), 0, sizeof(ib));
									gen_595138(p, (*e).kindU.S6.Sons->data[0], (&ia));
									gen_595138(p, (*e).kindU.S6.Sons->data[1], (&ib));
									memset((void*)LOC36, 0, sizeof(LOC36));
									LOC36[0] = tmp;
									LOC36[1] = rdloc_594139(ia);
									LOC36[2] = rdloc_594139(ib);
									appf_176115(&(*p).Body, ((NimStringDesc*) &TMP4581), LOC36, 3);
								}
								goto LA32;
								LA34: ;
								{
									{
										if (!stringswitch) goto LA40;
										switch ((*e).Kind) {
										case ((NU8) 20) ... ((NU8) 22):
										{
											TY587896 LOC43;
											memset((void*)LOC43, 0, sizeof(LOC43));
											LOC43[0] = tmp;
											LOC43[1] = makejsstring_594344((*e).kindU.S3.Strval);
											appf_176115(&(*p).Body, ((NimStringDesc*) &TMP4582), LOC43, 2);
										}
										break;
										default:
										{
											internalerror_196987((*e).Info, ((NimStringDesc*) &TMP4572));
										}
										break;
										}
									}
									goto LA38;
									LA40: ;
									{
										TY587896 LOC46;
										gen_595138(p, e, (&cond));
										memset((void*)LOC46, 0, sizeof(LOC46));
										LOC46[0] = tmp;
										LOC46[1] = rdloc_594139(cond);
										appf_176115(&(*p).Body, ((NimStringDesc*) &TMP4583), LOC46, 2);
									}
									LA38: ;
								}
								LA32: ;
								res_597942 += 1;
							} LA27: ;
						}
					}
					memset((void*)LOC47, 0, sizeof(LOC47));
					appf_176115(&(*p).Body, ((NimStringDesc*) &TMP4584), LOC47, 0);
					LOC48 = 0;
					LOC48 = lastson_225261(it);
					gen_595138(p, LOC48, (&stmt));
					moveinto_596653(p, (&stmt), (*r));
				}
				break;
				case ((NU8) 88):
				{
					TY552703 LOC50;
					memset((void*)LOC50, 0, sizeof(LOC50));
					appf_176115(&(*p).Body, ((NimStringDesc*) &TMP4551), LOC50, 0);
					gen_595138(p, (*it).kindU.S6.Sons->data[0], (&stmt));
					moveinto_596653(p, (&stmt), (*r));
				}
				break;
				default:
				{
					internalerror_196987((*it).Info, ((NimStringDesc*) &TMP4576));
				}
				break;
				}
				res_597947 += 1;
			} LA15: ;
		}
	}
	memset((void*)LOC52, 0, sizeof(LOC52));
	appf_176115(&(*p).Body, ((NimStringDesc*) &TMP4585), LOC52, 0);
}

N_NIMCALL(void, genreturnstmt_604122)(tproc594033* p, tnode224816* n) {
	NimStringDesc* LOC10;
	TY552703 LOC16;
	{
		if (!((*p).Procdef == NIM_NIL)) goto LA3;
		internalerror_196987((*n).Info, ((NimStringDesc*) &TMP4586));
	}
	LA3: ;
	(*p).Beforeretneeded = NIM_TRUE;
	{
		if (!!(((*(*n).kindU.S6.Sons->data[0]).Kind == ((NU8) 1)))) goto LA7;
		genstmt_595147(p, (*n).kindU.S6.Sons->data[0]);
	}
	goto LA5;
	LA7: ;
	{
		genlinedir_596328(p, n);
	}
	LA5: ;
	LOC10 = 0;
	{
		if (!((*p).Target == ((NU8) 0))) goto LA13;
		LOC10 = copyString(((NimStringDesc*) &TMP4587));
	}
	goto LA11;
	LA13: ;
	{
		LOC10 = copyString(((NimStringDesc*) &TMP4588));
	}
	LA11: ;
	memset((void*)LOC16, 0, sizeof(LOC16));
	appf_176115(&(*p).Body, LOC10, LOC16, 0);
}

N_NIMCALL(void, genbreakstmt_598159)(tproc594033* p, tnode224816* n) {
	NI idx;
	NimStringDesc* LOC16;
	TY176515 LOC22;
	idx = 0;
	genlinedir_596328(p, n);
	{
		tsym224846* sym;
		if (!!(((*(*n).kindU.S6.Sons->data[0]).Kind == ((NU8) 1)))) goto LA3;
		sym = (*(*n).kindU.S6.Sons->data[0]).kindU.S4.Sym;
		idx = (NI32)((*sym).Position - 1);
	}
	goto LA1;
	LA3: ;
	{
		idx = (NI32)((*p).Blocks->Sup.len - 1);
		{
			while (1) {
				NIM_BOOL LOC8;
				LOC8 = 0;
				LOC8 = (0 <= idx);
				if (!(LOC8)) goto LA9;
				LOC8 = !((*p).Blocks->data[idx].Isloop);
				LA9: ;
				if (!LOC8) goto LA7;
				idx -= 1;
			} LA7: ;
		}
		{
			NIM_BOOL LOC12;
			LOC12 = 0;
			LOC12 = (idx < 0);
			if (LOC12) goto LA13;
			LOC12 = !((*p).Blocks->data[idx].Isloop);
			LA13: ;
			if (!LOC12) goto LA14;
			internalerror_196987((*n).Info, ((NimStringDesc*) &TMP4589));
		}
		LA14: ;
	}
	LA1: ;
	(*p).Blocks->data[idx].Id = ((*p).Blocks->data[idx].Id > 0? ((*p).Blocks->data[idx].Id) : -((*p).Blocks->data[idx].Id));
	LOC16 = 0;
	{
		if (!((*p).Target == ((NU8) 0))) goto LA19;
		LOC16 = copyString(((NimStringDesc*) &TMP4590));
	}
	goto LA17;
	LA19: ;
	{
		LOC16 = copyString(((NimStringDesc*) &TMP4591));
	}
	LA17: ;
	memset((void*)LOC22, 0, sizeof(LOC22));
	LOC22[0] = torope_176082(((NI64) ((*p).Blocks->data[idx].Id)));
	appf_176115(&(*p).Body, LOC16, LOC22, 1);
}

N_NIMCALL(void, genasgnaux_599511)(tproc594033* p, tnode224816* x, tnode224816* y, NIM_BOOL nocopyneeded) {
	tcompres594023 a;
	tcompres594023 b;
	NU8 LOC1;
	memset((void*)(&a), 0, sizeof(a));
	memset((void*)(&b), 0, sizeof(b));
	gen_595138(p, x, (&a));
	gen_595138(p, y, (&b));
	LOC1 = 0;
	LOC1 = maptype_594291((*x).Typ);
	switch (LOC1) {
	case ((NU8) 7):
	{
		{
			NIM_BOOL LOC5;
			TY587896 LOC9;
			LOC5 = 0;
			LOC5 = needsnocopy_599474(y);
			if (LOC5) goto LA6;
			LOC5 = nocopyneeded;
			LA6: ;
			if (!LOC5) goto LA7;
			memset((void*)LOC9, 0, sizeof(LOC9));
			LOC9[0] = rdloc_594139(a);
			LOC9[1] = rdloc_594139(b);
			appf_176115(&(*p).Body, ((NimStringDesc*) &TMP4467), LOC9, 2);
		}
		goto LA3;
		LA7: ;
		{
			TY553018 LOC11;
			usemagic_595168(p, ((NimStringDesc*) &TMP4275));
			memset((void*)LOC11, 0, sizeof(LOC11));
			LOC11[0] = a.Res;
			LOC11[1] = b.Res;
			LOC11[2] = gentypeinfo_594354(p, (*y).Typ);
			appf_176115(&(*p).Body, ((NimStringDesc*) &TMP4592), LOC11, 3);
		}
		LA3: ;
	}
	break;
	case ((NU8) 8):
	{
		TY555045 LOC19;
		{
			NIM_BOOL LOC15;
			LOC15 = 0;
			LOC15 = !((a.Typ == ((NU8) 8)));
			if (LOC15) goto LA16;
			LOC15 = !((b.Typ == ((NU8) 8)));
			LA16: ;
			if (!LOC15) goto LA17;
			internalerror_196987((*x).Info, ((NimStringDesc*) &TMP4593));
		}
		LA17: ;
		memset((void*)LOC19, 0, sizeof(LOC19));
		LOC19[0] = a.Address;
		LOC19[1] = b.Address;
		LOC19[2] = a.Res;
		LOC19[3] = b.Res;
		appf_176115(&(*p).Body, ((NimStringDesc*) &TMP4594), LOC19, 4);
	}
	break;
	default:
	{
		TY587896 LOC21;
		memset((void*)LOC21, 0, sizeof(LOC21));
		LOC21[0] = a.Res;
		LOC21[1] = b.Res;
		appf_176115(&(*p).Body, ((NimStringDesc*) &TMP4467), LOC21, 2);
	}
	break;
	}
}

N_NIMCALL(void, genasgn_599567)(tproc594033* p, tnode224816* n) {
	genlinedir_596328(p, n);
	genasgnaux_599511(p, (*n).kindU.S6.Sons->data[0], (*n).kindU.S6.Sons->data[1], NIM_FALSE);
}

N_NIMCALL(void, genfastasgn_599605)(tproc594033* p, tnode224816* n) {
	genlinedir_596328(p, n);
	genasgnaux_599511(p, (*n).kindU.S6.Sons->data[0], (*n).kindU.S6.Sons->data[1], NIM_TRUE);
}

N_NIMCALL(void, genasmstmt_598653)(tproc594033* p, tnode224816* n) {
	genlinedir_596328(p, n);
	{
		NI i_598813;
		NI HEX3Atmp_598901;
		NI LOC2;
		NI res_598904;
		i_598813 = 0;
		HEX3Atmp_598901 = 0;
		LOC2 = 0;
		LOC2 = sonslen_225249(n);
		HEX3Atmp_598901 = (NI32)(LOC2 - 1);
		res_598904 = 0;
		{
			while (1) {
				if (!(res_598904 <= HEX3Atmp_598901)) goto LA4;
				i_598813 = res_598904;
				switch ((*(*n).kindU.S6.Sons->data[i_598813]).Kind) {
				case ((NU8) 20) ... ((NU8) 22):
				{
					app_176060(&(*p).Body, (*(*n).kindU.S6.Sons->data[i_598813]).kindU.S3.Strval);
				}
				break;
				case ((NU8) 3):
				{
					trope176009* LOC7;
					LOC7 = 0;
					LOC7 = manglename_594315((*(*n).kindU.S6.Sons->data[i_598813]).kindU.S4.Sym);
					app_176052(&(*p).Body, LOC7);
				}
				break;
				default:
				{
					internalerror_196987((*(*n).kindU.S6.Sons->data[i_598813]).Info, ((NimStringDesc*) &TMP4595));
				}
				break;
				}
				res_598904 += 1;
			} LA4: ;
		}
	}
}

N_NIMCALL(void, gentry_596693)(tproc594033* p, tnode224816* n, tcompres594023* r) {
	trope176009* safepoint;
	TY176515 LOC6;
	NimStringDesc* LOC7;
	TY176515 LOC13;
	NimStringDesc* LOC19;
	TY552703 LOC25;
	NI length;
	tcompres594023 a;
	NI i;
	genlinedir_596328(p, n);
	{
		NIM_BOOL LOC3;
		LOC3 = 0;
		LOC3 = isemptytype_231990((*n).Typ);
		if (!!(LOC3)) goto LA4;
		(*r).Kind = ((NU8) 2);
		unsureAsgnRef((void**) (&(*r).Res), gettemp_595313(p));
	}
	LA4: ;
	(*p).Unique += 1;
	memset((void*)LOC6, 0, sizeof(LOC6));
	LOC6[0] = torope_176082(((NI64) ((*p).Unique)));
	safepoint = ropef_176107(((NimStringDesc*) &TMP4331), LOC6, 1);
	LOC7 = 0;
	{
		if (!((*p).Target == ((NU8) 0))) goto LA10;
		LOC7 = copyString(((NimStringDesc*) &TMP4596));
	}
	goto LA8;
	LA10: ;
	{
		LOC7 = copyString(((NimStringDesc*) &TMP4597));
	}
	LA8: ;
	memset((void*)LOC13, 0, sizeof(LOC13));
	LOC13[0] = safepoint;
	appf_176115(&(*p).Body, LOC7, LOC13, 1);
	{
		NimStringDesc* LOC18;
		if (!(((*p).Options &(1<<((((NU8) 15))&31)))!=0)) goto LA16;
		LOC18 = 0;
		LOC18 = rawNewString(tnl_173613->Sup.len + 13);
appendString(LOC18, ((NimStringDesc*) &TMP4598));
appendString(LOC18, tnl_173613);
		app_176060(&(*p).Body, LOC18);
	}
	LA16: ;
	LOC19 = 0;
	{
		if (!((*p).Target == ((NU8) 0))) goto LA22;
		LOC19 = copyString(((NimStringDesc*) &TMP4599));
	}
	goto LA20;
	LA22: ;
	{
		LOC19 = copyString(((NimStringDesc*) &TMP4600));
	}
	LA20: ;
	memset((void*)LOC25, 0, sizeof(LOC25));
	appf_176115(&(*p).Body, LOC19, LOC25, 0);
	length = sonslen_225249(n);
	memset((void*)(&a), 0, sizeof(a));
	gen_595138(p, (*n).kindU.S6.Sons->data[0], (&a));
	moveinto_596653(p, (&a), (*r));
	i = 1;
	{
		NIM_BOOL LOC28;
		NIM_BOOL LOC29;
		TY552703 LOC34;
		LOC28 = 0;
		LOC29 = 0;
		LOC29 = ((*p).Target == ((NU8) 0));
		if (!(LOC29)) goto LA30;
		LOC29 = (1 < length);
		LA30: ;
		LOC28 = LOC29;
		if (!(LOC28)) goto LA31;
		LOC28 = ((*(*n).kindU.S6.Sons->data[i]).Kind == ((NU8) 87));
		LA31: ;
		if (!LOC28) goto LA32;
		memset((void*)LOC34, 0, sizeof(LOC34));
		appf_176115(&(*p).Body, ((NimStringDesc*) &TMP4601), LOC34, 0);
	}
	goto LA26;
	LA32: ;
	{
		TY552703 LOC38;
		if (!((*p).Target == ((NU8) 1))) goto LA36;
		memset((void*)LOC38, 0, sizeof(LOC38));
		appf_176115(&(*p).Body, ((NimStringDesc*) &TMP4602), LOC38, 0);
	}
	goto LA26;
	LA36: ;
	LA26: ;
	{
		while (1) {
			NIM_BOOL LOC41;
			NI blen;
			LOC41 = 0;
			LOC41 = (i < length);
			if (!(LOC41)) goto LA42;
			LOC41 = ((*(*n).kindU.S6.Sons->data[i]).Kind == ((NU8) 87));
			LA42: ;
			if (!LOC41) goto LA40;
			blen = sonslen_225249((*n).kindU.S6.Sons->data[i]);
			{
				if (!(blen == 1)) goto LA45;
				{
					NimStringDesc* LOC51;
					TY552703 LOC57;
					if (!(1 < i)) goto LA49;
					LOC51 = 0;
					{
						if (!((*p).Target == ((NU8) 0))) goto LA54;
						LOC51 = copyString(((NimStringDesc*) &TMP4550));
					}
					goto LA52;
					LA54: ;
					{
						LOC51 = copyString(((NimStringDesc*) &TMP4551));
					}
					LA52: ;
					memset((void*)LOC57, 0, sizeof(LOC57));
					appf_176115(&(*p).Body, LOC51, LOC57, 0);
				}
				LA49: ;
				gen_595138(p, (*(*n).kindU.S6.Sons->data[i]).kindU.S6.Sons->data[0], (&a));
				moveinto_596653(p, (&a), (*r));
				{
					NimStringDesc* LOC62;
					TY552703 LOC68;
					if (!(1 < i)) goto LA60;
					LOC62 = 0;
					{
						if (!((*p).Target == ((NU8) 0))) goto LA65;
						LOC62 = copyString(((NimStringDesc*) &TMP4555));
					}
					goto LA63;
					LA65: ;
					{
						LOC62 = copyString(((NimStringDesc*) &TMP4556));
					}
					LA63: ;
					memset((void*)LOC68, 0, sizeof(LOC68));
					appf_176115(&(*p).Body, LOC62, LOC68, 0);
				}
				LA60: ;
			}
			goto LA43;
			LA45: ;
			{
				trope176009* orexpr;
				NimStringDesc* LOC92;
				TY587896 LOC98;
				NimStringDesc* LOC99;
				TY552703 LOC105;
				orexpr = NIM_NIL;
				usemagic_595168(p, ((NimStringDesc*) &TMP4498));
				{
					NI j_596956;
					NI HEX3Atmp_597266;
					NI res_597269;
					j_596956 = 0;
					HEX3Atmp_597266 = 0;
					HEX3Atmp_597266 = (NI32)(blen - 2);
					res_597269 = 0;
					{
						while (1) {
							TY587896 LOC87;
							if (!(res_597269 <= HEX3Atmp_597266)) goto LA72;
							j_596956 = res_597269;
							{
								if (!!(((*(*(*n).kindU.S6.Sons->data[i]).kindU.S6.Sons->data[j_596956]).Kind == ((NU8) 4)))) goto LA75;
								internalerror_196987((*n).Info, ((NimStringDesc*) &TMP4603));
							}
							LA75: ;
							{
								NimStringDesc* LOC81;
								if (!!((orexpr == NIM_NIL))) goto LA79;
								LOC81 = 0;
								{
									if (!((*p).Target == ((NU8) 0))) goto LA84;
									LOC81 = copyString(((NimStringDesc*) &TMP4604));
								}
								goto LA82;
								LA84: ;
								{
									LOC81 = copyString(((NimStringDesc*) &TMP4580));
								}
								LA82: ;
								app_176060(&orexpr, LOC81);
							}
							LA79: ;
							memset((void*)LOC87, 0, sizeof(LOC87));
							LOC87[0] = safepoint;
							LOC87[1] = gentypeinfo_594354(p, (*(*(*n).kindU.S6.Sons->data[i]).kindU.S6.Sons->data[j_596956]).Typ);
							appf_176115(&orexpr, ((NimStringDesc*) &TMP4605), LOC87, 2);
							res_597269 += 1;
						} LA72: ;
					}
				}
				{
					if (!(1 < i)) goto LA90;
					app_176060(&(*p).Body, ((NimStringDesc*) &TMP4606));
				}
				LA90: ;
				LOC92 = 0;
				{
					if (!((*p).Target == ((NU8) 0))) goto LA95;
					LOC92 = copyString(((NimStringDesc*) &TMP4607));
				}
				goto LA93;
				LA95: ;
				{
					LOC92 = copyString(((NimStringDesc*) &TMP4608));
				}
				LA93: ;
				memset((void*)LOC98, 0, sizeof(LOC98));
				LOC98[0] = safepoint;
				LOC98[1] = orexpr;
				appf_176115(&(*p).Body, LOC92, LOC98, 2);
				gen_595138(p, (*(*n).kindU.S6.Sons->data[i]).kindU.S6.Sons->data[(NI32)(blen - 1)], (&a));
				moveinto_596653(p, (&a), (*r));
				LOC99 = 0;
				{
					if (!((*p).Target == ((NU8) 0))) goto LA102;
					LOC99 = copyString(((NimStringDesc*) &TMP4555));
				}
				goto LA100;
				LA102: ;
				{
					LOC99 = copyString(((NimStringDesc*) &TMP4556));
				}
				LA100: ;
				memset((void*)LOC105, 0, sizeof(LOC105));
				appf_176115(&(*p).Body, LOC99, LOC105, 0);
			}
			LA43: ;
			i += 1;
		} LA40: ;
	}
	{
		NimStringDesc* LOC110;
		if (!((*p).Target == ((NU8) 0))) goto LA108;
		LOC110 = 0;
		LOC110 = rawNewString(tnl_173613->Sup.len + tnl_173613->Sup.len + 40);
appendString(LOC110, ((NimStringDesc*) &TMP4609));
appendString(LOC110, tnl_173613);
appendString(LOC110, ((NimStringDesc*) &TMP4610));
appendString(LOC110, tnl_173613);
		app_176060(&(*p).Body, LOC110);
	}
	LA108: ;
	{
		NIM_BOOL LOC113;
		LOC113 = 0;
		LOC113 = (i < length);
		if (!(LOC113)) goto LA114;
		LOC113 = ((*(*n).kindU.S6.Sons->data[i]).Kind == ((NU8) 107));
		LA114: ;
		if (!LOC113) goto LA115;
		genstmt_595147(p, (*(*n).kindU.S6.Sons->data[i]).kindU.S6.Sons->data[0]);
	}
	LA115: ;
	{
		NimStringDesc* LOC121;
		if (!((*p).Target == ((NU8) 0))) goto LA119;
		LOC121 = 0;
		LOC121 = rawNewString(tnl_173613->Sup.len + 1);
appendString(LOC121, ((NimStringDesc*) &TMP4301));
appendString(LOC121, tnl_173613);
		app_176060(&(*p).Body, LOC121);
	}
	LA119: ;
	{
		if (!((*p).Target == ((NU8) 1))) goto LA124;
		{
			NIM_BOOL LOC128;
			LOC128 = 0;
			LOC128 = (i < length);
			if (!(LOC128)) goto LA129;
			LOC128 = ((*(*n).kindU.S6.Sons->data[i]).Kind == ((NU8) 107));
			LA129: ;
			if (!LOC128) goto LA130;
			genstmt_595147(p, (*(*n).kindU.S6.Sons->data[i]).kindU.S6.Sons->data[0]);
		}
		LA130: ;
	}
	LA124: ;
}

N_NIMCALL(void, genraisestmt_597292)(tproc594033* p, tnode224816* n) {
	genlinedir_596328(p, n);
	{
		tcompres594023 a;
		ttype224852* typ;
		TY587896 LOC5;
		if (!!(((*(*n).kindU.S6.Sons->data[0]).Kind == ((NU8) 1)))) goto LA3;
		memset((void*)(&a), 0, sizeof(a));
		gen_595138(p, (*n).kindU.S6.Sons->data[0], (&a));
		typ = skiptypes_229245((*(*n).kindU.S6.Sons->data[0]).Typ, IL64(211106247256320));
		usemagic_595168(p, ((NimStringDesc*) &TMP4611));
		memset((void*)LOC5, 0, sizeof(LOC5));
		LOC5[0] = rdloc_594139(a);
		LOC5[1] = makejsstring_594344((*(*(*typ).Sym).Name).S);
		appf_176115(&(*p).Body, ((NimStringDesc*) &TMP4612), LOC5, 2);
	}
	goto LA1;
	LA3: ;
	{
		NimStringDesc* LOC7;
		usemagic_595168(p, ((NimStringDesc*) &TMP4613));
		LOC7 = 0;
		LOC7 = rawNewString(tnl_173613->Sup.len + 19);
appendString(LOC7, ((NimStringDesc*) &TMP4614));
appendString(LOC7, tnl_173613);
		app_176060(&(*p).Body, LOC7);
	}
	LA1: ;
}

N_NIMCALL(void, gen_595138)(tproc594033* p, tnode224816* n, tcompres594023* r) {
	(*r).Typ = ((NU8) 0);
	(*r).Kind = ((NU8) 0);
	unsureAsgnRef((void**) (&(*r).Res), NIM_NIL);
	switch ((*n).Kind) {
	case ((NU8) 3):
	{
		gensym_600662(p, n, r);
	}
	break;
	case ((NU8) 5) ... ((NU8) 10):
	{
		unsureAsgnRef((void**) (&(*r).Res), torope_176082((*n).kindU.S1.Intval));
		(*r).Kind = ((NU8) 1);
	}
	break;
	case ((NU8) 23):
	{
		{
			NIM_BOOL LOC6;
			LOC6 = 0;
			LOC6 = isemptytype_231990((*n).Typ);
			if (!LOC6) goto LA7;
		}
		goto LA4;
		LA7: ;
		{
			NU8 LOC10;
			LOC10 = 0;
			LOC10 = maptype_594291((*n).Typ);
			if (!(LOC10 == ((NU8) 8))) goto LA11;
			(*r).Typ = ((NU8) 8);
			{
				if (!((*p).Target == ((NU8) 0))) goto LA15;
				unsureAsgnRef((void**) (&(*r).Address), torope_176076(((NimStringDesc*) &TMP4320)));
			}
			goto LA13;
			LA15: ;
			{
				unsureAsgnRef((void**) (&(*r).Address), torope_176076(((NimStringDesc*) &TMP4321)));
			}
			LA13: ;
			unsureAsgnRef((void**) (&(*r).Res), torope_176076(((NimStringDesc*) &TMP4322)));
			(*r).Kind = ((NU8) 1);
		}
		goto LA4;
		LA11: ;
		{
			{
				if (!((*p).Target == ((NU8) 0))) goto LA21;
				unsureAsgnRef((void**) (&(*r).Res), torope_176076(((NimStringDesc*) &TMP4320)));
			}
			goto LA19;
			LA21: ;
			{
				unsureAsgnRef((void**) (&(*r).Res), torope_176076(((NimStringDesc*) &TMP4321)));
			}
			LA19: ;
			(*r).Kind = ((NU8) 1);
		}
		LA4: ;
	}
	break;
	case ((NU8) 20) ... ((NU8) 22):
	{
		{
			ttype224852* LOC27;
			TY176515 LOC30;
			LOC27 = 0;
			LOC27 = skiptypes_229245((*n).Typ, IL64(211106242013440));
			if (!((*LOC27).Kind == ((NU8) 28))) goto LA28;
			usemagic_595168(p, ((NimStringDesc*) &TMP4323));
			memset((void*)LOC30, 0, sizeof(LOC30));
			LOC30[0] = makejsstring_594344((*n).kindU.S3.Strval);
			unsureAsgnRef((void**) (&(*r).Res), ropef_176107(((NimStringDesc*) &TMP4324), LOC30, 1));
		}
		goto LA25;
		LA28: ;
		{
			unsureAsgnRef((void**) (&(*r).Res), makejsstring_594344((*n).kindU.S3.Strval));
		}
		LA25: ;
		(*r).Kind = ((NU8) 1);
	}
	break;
	case ((NU8) 16) ... ((NU8) 18):
	{
		NF f;
		f = (*n).kindU.S2.Floatval;
		{
			if (!!((f == f))) goto LA35;
			unsureAsgnRef((void**) (&(*r).Res), torope_176076(((NimStringDesc*) &TMP4325)));
		}
		goto LA33;
		LA35: ;
		{
			if (!(f == 0.0)) goto LA38;
			unsureAsgnRef((void**) (&(*r).Res), torope_176076(((NimStringDesc*) &TMP4326)));
		}
		goto LA33;
		LA38: ;
		{
			if (!(f == ((NF)(5.0000000000000000e-01) * (NF)(f)))) goto LA41;
			{
				if (!(0.0 < f)) goto LA45;
				unsureAsgnRef((void**) (&(*r).Res), torope_176076(((NimStringDesc*) &TMP4327)));
			}
			goto LA43;
			LA45: ;
			{
				unsureAsgnRef((void**) (&(*r).Res), torope_176076(((NimStringDesc*) &TMP4328)));
			}
			LA43: ;
		}
		goto LA33;
		LA41: ;
		{
			NimStringDesc* LOC49;
			LOC49 = 0;
			LOC49 = tostrmaxprecision_233024(f);
			unsureAsgnRef((void**) (&(*r).Res), torope_176076(LOC49));
		}
		LA33: ;
		(*r).Kind = ((NU8) 1);
	}
	break;
	case ((NU8) 27):
	case ((NU8) 29):
	case ((NU8) 30):
	case ((NU8) 31):
	case ((NU8) 26):
	case ((NU8) 28):
	case ((NU8) 32):
	{
		{
			NIM_BOOL LOC53;
			LOC53 = 0;
			LOC53 = ((*(*n).kindU.S6.Sons->data[0]).Kind == ((NU8) 3));
			if (!(LOC53)) goto LA54;
			LOC53 = !(((*(*(*n).kindU.S6.Sons->data[0]).kindU.S4.Sym).Magic == ((NU16) 0)));
			LA54: ;
			if (!LOC53) goto LA55;
			genmagic_603024(p, n, r);
		}
		goto LA51;
		LA55: ;
		{
			NIM_BOOL LOC58;
			NIM_BOOL LOC59;
			NI LOC62;
			LOC58 = 0;
			LOC59 = 0;
			LOC59 = ((*(*n).kindU.S6.Sons->data[0]).Kind == ((NU8) 3));
			if (!(LOC59)) goto LA60;
			LOC59 = (((*(*(*n).kindU.S6.Sons->data[0]).kindU.S4.Sym).Flags &(1<<((((NU8) 27))&31)))!=0);
			LA60: ;
			LOC58 = LOC59;
			if (!(LOC58)) goto LA61;
			LOC62 = 0;
			LOC62 = len_225364(n);
			LOC58 = (2 <= LOC62);
			LA61: ;
			if (!LOC58) goto LA63;
			geninfixcall_601213(p, n, r);
		}
		goto LA51;
		LA63: ;
		{
			gencall_601187(p, n, r);
		}
		LA51: ;
	}
	break;
	case ((NU8) 39):
	{
		gensetconstr_603322(p, n, r);
	}
	break;
	case ((NU8) 41):
	{
		genarrayconstr_603430(p, n, r);
	}
	break;
	case ((NU8) 37):
	{
		gentupleconstr_603491(p, n, r);
	}
	break;
	case ((NU8) 38):
	{
		genobjconstr_603589(p, n, r);
	}
	break;
	case ((NU8) 58):
	case ((NU8) 59):
	case ((NU8) 60):
	{
		genconv_603749(p, n, r);
	}
	break;
	case ((NU8) 63):
	case ((NU8) 64):
	{
		genaddr_600480(p, n, r);
	}
	break;
	case ((NU8) 47):
	case ((NU8) 65):
	{
		genderef_601017(p, n, r);
	}
	break;
	case ((NU8) 42):
	{
		genarrayaccess_600411(p, n, r);
	}
	break;
	case ((NU8) 45):
	{
		genfieldaccess_600026(p, n, r);
	}
	break;
	case ((NU8) 46):
	{
		gencheckedfieldaccess_600206(p, n, r);
	}
	break;
	case ((NU8) 66):
	{
		gen_595138(p, (*n).kindU.S6.Sons->data[0], r);
	}
	break;
	case ((NU8) 67):
	{
		upconv_603822(p, n, r);
	}
	break;
	case ((NU8) 61):
	{
		gen_595138(p, (*n).kindU.S6.Sons->data[1], r);
	}
	break;
	case ((NU8) 68):
	{
		genrangechck_603848(p, n, r, ((NimStringDesc*) &TMP4540));
	}
	break;
	case ((NU8) 69):
	{
		genrangechck_603848(p, n, r, ((NimStringDesc*) &TMP4541));
	}
	break;
	case ((NU8) 70):
	{
		genrangechck_603848(p, n, r, ((NimStringDesc*) &TMP4538));
	}
	break;
	case ((NU8) 71):
	{
		convstrtocstr_603926(p, n, r);
	}
	break;
	case ((NU8) 72):
	{
		convcstrtostr_604024(p, n, r);
	}
	break;
	case ((NU8) 1):
	{
	}
	break;
	case ((NU8) 51):
	case ((NU8) 52):
	{
		tsym224846* s;
		trope176009* LOC86;
		s = (*(*n).kindU.S6.Sons->data[0]).kindU.S4.Sym;
		LOC86 = 0;
		LOC86 = manglename_594315(s);
		unsureAsgnRef((void**) (&(*r).Res), (*s).Loc.R);
		{
			NIM_BOOL LOC89;
			LOC89 = 0;
			LOC89 = (((*s).Loc.Flags &(1<<((((NU8) 3))&7)))!=0);
			if (LOC89) goto LA90;
			LOC89 = !(((*s).Magic == ((NU16) 0)));
			LA90: ;
			if (!LOC89) goto LA91;
		}
		goto LA87;
		LA91: ;
		{
			NIM_BOOL LOC94;
			trope176009* LOC97;
			LOC94 = 0;
			LOC94 = containsorincl_221916((&(*(*p).G).Generatedsyms), (*s).Sup.Id);
			if (!!(LOC94)) goto LA95;
			LOC97 = 0;
			LOC97 = genproc_595154(p, s);
			app_176052(&(*p).Locals, LOC97);
		}
		goto LA87;
		LA95: ;
		LA87: ;
	}
	break;
	case ((NU8) 4):
	{
		unsureAsgnRef((void**) (&(*r).Res), gentypeinfo_594354(p, (*n).Typ));
	}
	break;
	case ((NU8) 115):
	case ((NU8) 126):
	{
		NIM_BOOL isexpr;
		NIM_BOOL LOC100;
		LOC100 = 0;
		LOC100 = isemptytype_231990((*n).Typ);
		isexpr = !(LOC100);
		{
			NI i_604785;
			NI HEX3Atmp_604932;
			NI LOC102;
			NI res_604935;
			i_604785 = 0;
			HEX3Atmp_604932 = 0;
			LOC102 = 0;
			LOC102 = sonslen_225249(n);
			HEX3Atmp_604932 = (NI32)((NI32)(LOC102 - 1) - ((NI) (isexpr)));
			res_604935 = 0;
			{
				while (1) {
					if (!(res_604935 <= HEX3Atmp_604932)) goto LA104;
					i_604785 = res_604935;
					genstmt_595147(p, (*n).kindU.S6.Sons->data[i_604785]);
					res_604935 += 1;
				} LA104: ;
			}
		}
		{
			tnode224816* LOC109;
			if (!isexpr) goto LA107;
			LOC109 = 0;
			LOC109 = lastson_225261(n);
			gen_595138(p, LOC109, r);
		}
		LA107: ;
	}
	break;
	case ((NU8) 112):
	case ((NU8) 127):
	{
		genblock_597973(p, n, r);
	}
	break;
	case ((NU8) 92):
	case ((NU8) 48):
	{
		genif_598921(p, n, r);
	}
	break;
	case ((NU8) 96):
	{
		genwhilestmt_596506(p, n);
	}
	break;
	case ((NU8) 99):
	case ((NU8) 100):
	{
		genvarstmt_602046(p, n);
	}
	break;
	case ((NU8) 101):
	{
	}
	break;
	case ((NU8) 94):
	case ((NU8) 95):
	{
		internalerror_196987((*n).Info, ((NimStringDesc*) &TMP4568));
	}
	break;
	case ((NU8) 97):
	{
		{
			if (!((*p).Target == ((NU8) 0))) goto LA119;
			gencasejs_597363(p, n, r);
		}
		goto LA117;
		LA119: ;
		{
			gencaselua_597694(p, n, r);
		}
		LA117: ;
	}
	break;
	case ((NU8) 109):
	{
		genreturnstmt_604122(p, n);
	}
	break;
	case ((NU8) 110):
	{
		genbreakstmt_598159(p, n);
	}
	break;
	case ((NU8) 73):
	{
		genasgn_599567(p, n);
	}
	break;
	case ((NU8) 74):
	{
		genfastasgn_599605(p, n);
	}
	break;
	case ((NU8) 114):
	{
		{
			if (!!(((*(*n).kindU.S6.Sons->data[0]).Kind == ((NU8) 1)))) goto LA129;
			genlinedir_596328(p, n);
			gen_595138(p, (*n).kindU.S6.Sons->data[0], r);
		}
		LA129: ;
	}
	break;
	case ((NU8) 89):
	{
		genasmstmt_598653(p, n);
	}
	break;
	case ((NU8) 106):
	{
		gentry_596693(p, n, r);
	}
	break;
	case ((NU8) 108):
	{
		genraisestmt_597292(p, n);
	}
	break;
	case ((NU8) 98):
	case ((NU8) 125):
	case ((NU8) 84):
	case ((NU8) 121):
	case ((NU8) 116):
	case ((NU8) 117):
	case ((NU8) 118):
	case ((NU8) 119):
	case ((NU8) 120):
	case ((NU8) 83):
	case ((NU8) 82):
	case ((NU8) 90):
	{
	}
	break;
	case ((NU8) 79):
	case ((NU8) 80):
	case ((NU8) 81):
	{
		tsym224846* s;
		s = (*(*n).kindU.S6.Sons->data[0]).kindU.S4.Sym;
		{
			if (!((65600 & (*s).Flags) == 64)) goto LA138;
			gensym_600662(p, (*n).kindU.S6.Sons->data[0], r);
			unsureAsgnRef((void**) (&(*r).Res), NIM_NIL);
		}
		LA138: ;
	}
	break;
	case ((NU8) 155):
	case ((NU8) 156):
	{
		internalerror_196987((*n).Info, ((NimStringDesc*) &TMP4615));
	}
	break;
	case ((NU8) 91):
	{
		tnode224816* LOC142;
		LOC142 = 0;
		LOC142 = lastson_225261(n);
		gen_595138(p, LOC142, r);
	}
	break;
	default:
	{
		NimStringDesc* LOC144;
		LOC144 = 0;
		LOC144 = rawNewString(reprEnum((*n).Kind, (&NTI224029))->Sup.len + 24);
appendString(LOC144, ((NimStringDesc*) &TMP4616));
appendString(LOC144, reprEnum((*n).Kind, (&NTI224029)));
		internalerror_196987((*n).Info, LOC144);
	}
	break;
	}
}

N_NIMCALL(void, genstmt_595147)(tproc594033* p, tnode224816* n) {
	tcompres594023 r;
	memset((void*)(&r), 0, sizeof(r));
	gen_595138(p, n, (&r));
	{
		TY176515 LOC5;
		if (!!((r.Res == NIM_NIL))) goto LA3;
		memset((void*)LOC5, 0, sizeof(LOC5));
		LOC5[0] = r.Res;
		appf_176115(&(*p).Body, ((NimStringDesc*) &TMP4617), LOC5, 1);
	}
	LA3: ;
}

N_NIMCALL(void, genmodule_605013)(tproc594033* p, tnode224816* n) {
	{
		TY587896 LOC5;
		NimStringDesc* LOC6;
		NimStringDesc* LOC7;
		if (!(((*p).Options &(1<<((((NU8) 15))&31)))!=0)) goto LA3;
		memset((void*)LOC5, 0, sizeof(LOC5));
		LOC6 = 0;
		LOC6 = rawNewString((*(*(*(*p).Module).Module).Name).S->Sup.len + 7);
appendString(LOC6, ((NimStringDesc*) &TMP4246));
appendString(LOC6, (*(*(*(*p).Module).Module).Name).S);
		LOC5[0] = makejsstring_594344(LOC6);
		LOC7 = 0;
		LOC7 = tofilename_196025((*(*(*p).Module).Module).Info.Fileindex);
		LOC5[1] = makejsstring_594344(LOC7);
		appf_176115(&(*p).Body, ((NimStringDesc*) &TMP4244), LOC5, 2);
	}
	LA3: ;
	genstmt_595147(p, n);
	{
		TY552703 LOC12;
		if (!(((*p).Options &(1<<((((NU8) 15))&31)))!=0)) goto LA10;
		memset((void*)LOC12, 0, sizeof(LOC12));
		appf_176115(&(*p).Body, ((NimStringDesc*) &TMP4618), LOC12, 0);
	}
	LA10: ;
}

N_NIMCALL(tnode224816*, myprocess_605062)(tpasscontext285005* b, tnode224816* n) {
	tnode224816* result;
	tjsgen594015* m;
	tproc594033* p;
	result = 0;
	{
		NIM_BOOL LOC3;
		LOC3 = 0;
		LOC3 = skipcodegen_285083(n);
		if (!LOC3) goto LA4;
		result = n;
		goto BeforeRet;
	}
	LA4: ;
	result = n;
	m = ((tjsgen594015*) (b));
	{
		if (!((*m).Module == NIM_NIL)) goto LA8;
		internalerror_196987((*n).Info, ((NimStringDesc*) &TMP4236));
	}
	LA8: ;
	p = newproc_594207(globals_604952, m, NIM_NIL, (*(*m).Module).Options);
	genmodule_605013(p, n);
	app_176052(&(*(*p).G).Code, (*p).Locals);
	app_176052(&(*(*p).G).Code, (*p).Body);
	BeforeRet: ;
	return result;
}

N_NIMCALL(trope176009*, wholecode_605094)(tjsgen594015* m) {
	trope176009* result;
	tnode224816* disp;
	result = 0;
	{
		tsym224846* prc_605110;
		tsymseq224818* HEX3Atmp_605161;
		NI i_605164;
		NI l_605166;
		prc_605110 = 0;
		HEX3Atmp_605161 = 0;
		HEX3Atmp_605161 = (*globals_604952).Forwarded;
		i_605164 = 0;
		l_605166 = HEX3Atmp_605161->Sup.len;
		{
			while (1) {
				if (!(i_605164 < l_605166)) goto LA3;
				prc_605110 = HEX3Atmp_605161->data[i_605164];
				{
					NIM_BOOL LOC6;
					tproc594033* p;
					trope176009* LOC9;
					LOC6 = 0;
					LOC6 = containsorincl_221916((&(*globals_604952).Generatedsyms), (*prc_605110).Sup.Id);
					if (!!(LOC6)) goto LA7;
					p = newproc_594207(globals_604952, m, NIM_NIL, (*(*m).Module).Options);
					LOC9 = 0;
					LOC9 = genproc_595154(p, prc_605110);
					app_176052(&(*(*p).G).Code, LOC9);
				}
				LA7: ;
				i_605164 += 1;
			} LA3: ;
		}
	}
	disp = generatemethoddispatchers_422508();
	{
		NI i_605125;
		NI HEX3Atmp_605168;
		NI LOC11;
		NI res_605171;
		i_605125 = 0;
		HEX3Atmp_605168 = 0;
		LOC11 = 0;
		LOC11 = sonslen_225249(disp);
		HEX3Atmp_605168 = (NI32)(LOC11 - 1);
		res_605171 = 0;
		{
			while (1) {
				tsym224846* prc;
				if (!(res_605171 <= HEX3Atmp_605168)) goto LA13;
				i_605125 = res_605171;
				prc = (*(*disp).kindU.S6.Sons->data[i_605125]).kindU.S4.Sym;
				{
					NIM_BOOL LOC16;
					tproc594033* p;
					trope176009* LOC19;
					LOC16 = 0;
					LOC16 = containsorincl_221916((&(*globals_604952).Generatedsyms), (*prc).Sup.Id);
					if (!!(LOC16)) goto LA17;
					p = newproc_594207(globals_604952, m, NIM_NIL, (*(*m).Module).Options);
					LOC19 = 0;
					LOC19 = genproc_595154(p, prc);
					app_176052(&(*(*p).G).Code, LOC19);
				}
				LA17: ;
				res_605171 += 1;
			} LA13: ;
		}
	}
	result = con_176024((*globals_604952).Typeinfo, (*globals_604952).Code);
	return result;
}

N_NIMCALL(trope176009*, genheader_605000)(void) {
	trope176009* result;
	TY176515 LOC1;
	result = 0;
	memset((void*)LOC1, 0, sizeof(LOC1));
	LOC1[0] = torope_176076(((NimStringDesc*) &TMP4621));
	result = ropef_176107(((NimStringDesc*) &TMP4620), LOC1, 1);
	return result;
}

N_NIMCALL(tnode224816*, myclose_605197)(tpasscontext285005* b, tnode224816* n) {
	tnode224816* result;
	tjsgen594015* m;
	result = 0;
	{
		NIM_BOOL LOC3;
		LOC3 = 0;
		LOC3 = skipcodegen_285083(n);
		if (!LOC3) goto LA4;
		result = n;
		goto BeforeRet;
	}
	LA4: ;
	result = myprocess_605062(b, n);
	m = ((tjsgen594015*) (b));
	{
		trope176009* code;
		NimStringDesc* outfile;
		trope176009* LOC24;
		trope176009* LOC25;
		NIM_BOOL LOC26;
		if (!(((*(*m).Module).Flags &(1<<((((NU8) 12))&31)))!=0)) goto LA8;
		code = wholecode_605094(m);
		{
			if (!(0 < outfile_168124->Sup.len)) goto LA12;
			{
				NIM_BOOL LOC16;
				LOC16 = 0;
				LOC16 = nosisAbsolute(outfile_168124);
				if (!LOC16) goto LA17;
				outfile = outfile_168124;
			}
			goto LA14;
			LA17: ;
			{
				NimStringDesc* LOC20;
				LOC20 = 0;
				LOC20 = nosgetCurrentDir();
				outfile = HEX2F_116299(LOC20, outfile_168124);
			}
			LA14: ;
		}
		goto LA10;
		LA12: ;
		{
			NimStringDesc* LOC22;
			NimStringDesc* LOC23;
			LOC22 = 0;
			LOC22 = tofilename_196025(((NI32) ((*(*m).Module).Position)));
			LOC23 = 0;
			LOC23 = completecfilepath_201855(LOC22, NIM_TRUE);
			outfile = noschangeFileExt(LOC23, ((NimStringDesc*) &TMP4619));
		}
		LA10: ;
		LOC24 = 0;
		LOC24 = genheader_605000();
		LOC25 = 0;
		LOC25 = con_176024(LOC24, code);
		LOC26 = 0;
		LOC26 = writeropeifnotequal_176094(LOC25, outfile);
	}
	LA8: ;
	BeforeRet: ;
	return result;
}
NIM_EXTERNC N_NOINLINE(void, HEX00_jsgenInit)(void) {
}

NIM_EXTERNC N_NOINLINE(void, HEX00_jsgenDatInit)(void) {
static TNimNode* TMP4233[5];
static TNimNode* TMP4237[12];
static TNimNode* TMP4238[2];
NI TMP4240;
static char* NIM_CONST TMP4239[2] = {
"targetJS", 
"targetLua"};
static TNimNode* TMP4241[2];
static TNimNode TMP981[26];
NTI594015.size = sizeof(tjsgen594015);
NTI594015.kind = 17;
NTI594015.base = (&NTI285005);
TMP981[0].kind = 1;
TMP981[0].offset = offsetof(tjsgen594015, Module);
TMP981[0].typ = (&NTI224814);
TMP981[0].name = "module";
NTI594015.node = &TMP981[0];
NTI594017.size = sizeof(tjsgen594015*);
NTI594017.kind = 22;
NTI594017.base = (&NTI594015);
NTI594017.marker = TMP4232;
NTI594027.size = sizeof(tglobals594027);
NTI594027.kind = 18;
NTI594027.base = 0;
NTI594027.flags = 2;
TMP4233[0] = &TMP981[2];
TMP981[2].kind = 1;
TMP981[2].offset = offsetof(tglobals594027, Typeinfo);
TMP981[2].typ = (&NTI176007);
TMP981[2].name = "typeInfo";
TMP4233[1] = &TMP981[3];
TMP981[3].kind = 1;
TMP981[3].offset = offsetof(tglobals594027, Code);
TMP981[3].typ = (&NTI176007);
TMP981[3].name = "code";
TMP4233[2] = &TMP981[4];
TMP981[4].kind = 1;
TMP981[4].offset = offsetof(tglobals594027, Forwarded);
TMP981[4].typ = (&NTI224818);
TMP981[4].name = "forwarded";
TMP4233[3] = &TMP981[5];
TMP981[5].kind = 1;
TMP981[5].offset = offsetof(tglobals594027, Generatedsyms);
TMP981[5].typ = (&NTI221056);
TMP981[5].name = "generatedSyms";
TMP4233[4] = &TMP981[6];
TMP981[6].kind = 1;
TMP981[6].offset = offsetof(tglobals594027, Typeinfogenerated);
TMP981[6].typ = (&NTI221056);
TMP981[6].name = "typeInfoGenerated";
TMP981[1].len = 5; TMP981[1].kind = 2; TMP981[1].sons = &TMP4233[0];
NTI594027.node = &TMP981[1];
NTI594029.size = sizeof(tglobals594027*);
NTI594029.kind = 22;
NTI594029.base = (&NTI594027);
NTI594029.flags = 2;
NTI594029.marker = TMP4234;
NTI594033.size = sizeof(tproc594033);
NTI594033.kind = 18;
NTI594033.base = 0;
TMP4237[0] = &TMP981[8];
TMP981[8].kind = 1;
TMP981[8].offset = offsetof(tproc594033, Procdef);
TMP981[8].typ = (&NTI224808);
TMP981[8].name = "procDef";
TMP4237[1] = &TMP981[9];
TMP981[9].kind = 1;
TMP981[9].offset = offsetof(tproc594033, Prc);
TMP981[9].typ = (&NTI224814);
TMP981[9].name = "prc";
TMP4237[2] = &TMP981[10];
TMP981[10].kind = 1;
TMP981[10].offset = offsetof(tproc594033, Locals);
TMP981[10].typ = (&NTI176007);
TMP981[10].name = "locals";
TMP4237[3] = &TMP981[11];
TMP981[11].kind = 1;
TMP981[11].offset = offsetof(tproc594033, Body);
TMP981[11].typ = (&NTI176007);
TMP981[11].name = "body";
TMP4237[4] = &TMP981[12];
TMP981[12].kind = 1;
TMP981[12].offset = offsetof(tproc594033, Options);
TMP981[12].typ = (&NTI168016);
TMP981[12].name = "options";
TMP4237[5] = &TMP981[13];
TMP981[13].kind = 1;
TMP981[13].offset = offsetof(tproc594033, Module);
TMP981[13].typ = (&NTI594017);
TMP981[13].name = "module";
TMP4237[6] = &TMP981[14];
TMP981[14].kind = 1;
TMP981[14].offset = offsetof(tproc594033, G);
TMP981[14].typ = (&NTI594029);
TMP981[14].name = "g";
TMP4237[7] = &TMP981[15];
TMP981[15].kind = 1;
TMP981[15].offset = offsetof(tproc594033, Beforeretneeded);
TMP981[15].typ = (&NTI138);
TMP981[15].name = "beforeRetNeeded";
TMP4237[8] = &TMP981[16];
NTI594013.size = sizeof(NU8);
NTI594013.kind = 14;
NTI594013.base = 0;
NTI594013.flags = 3;
for (TMP4240 = 0; TMP4240 < 2; TMP4240++) {
TMP981[TMP4240+17].kind = 1;
TMP981[TMP4240+17].offset = TMP4240;
TMP981[TMP4240+17].name = TMP4239[TMP4240];
TMP4238[TMP4240] = &TMP981[TMP4240+17];
}
TMP981[19].len = 2; TMP981[19].kind = 2; TMP981[19].sons = &TMP4238[0];
NTI594013.node = &TMP981[19];
TMP981[16].kind = 1;
TMP981[16].offset = offsetof(tproc594033, Target);
TMP981[16].typ = (&NTI594013);
TMP981[16].name = "target";
TMP4237[9] = &TMP981[20];
TMP981[20].kind = 1;
TMP981[20].offset = offsetof(tproc594033, Unique);
TMP981[20].typ = (&NTI108);
TMP981[20].name = "unique";
TMP4237[10] = &TMP981[21];
NTI594025.size = sizeof(tblock594025);
NTI594025.kind = 18;
NTI594025.base = 0;
NTI594025.flags = 3;
TMP4241[0] = &TMP981[23];
TMP981[23].kind = 1;
TMP981[23].offset = offsetof(tblock594025, Id);
TMP981[23].typ = (&NTI108);
TMP981[23].name = "id";
TMP4241[1] = &TMP981[24];
TMP981[24].kind = 1;
TMP981[24].offset = offsetof(tblock594025, Isloop);
TMP981[24].typ = (&NTI138);
TMP981[24].name = "isLoop";
TMP981[22].len = 2; TMP981[22].kind = 2; TMP981[22].sons = &TMP4241[0];
NTI594025.node = &TMP981[22];
NTI594071.size = sizeof(TY594071*);
NTI594071.kind = 24;
NTI594071.base = (&NTI594025);
NTI594071.flags = 2;
NTI594071.marker = TMP4242;
TMP981[21].kind = 1;
TMP981[21].offset = offsetof(tproc594033, Blocks);
TMP981[21].typ = (&NTI594071);
TMP981[21].name = "blocks";
TMP4237[11] = &TMP981[25];
TMP981[25].kind = 1;
TMP981[25].offset = offsetof(tproc594033, Up);
TMP981[25].typ = (&NTI594031);
TMP981[25].name = "up";
TMP981[7].len = 12; TMP981[7].kind = 2; TMP981[7].sons = &TMP4237[0];
NTI594033.node = &TMP981[7];
NTI594031.size = sizeof(tproc594033*);
NTI594031.kind = 22;
NTI594031.base = (&NTI594033);
NTI594031.marker = TMP4243;
NTI595657.size = sizeof(tmagicfrmt595657);
NTI595657.kind = 16;
NTI595657.base = (&NTI149);
NTI595657.flags = 2;
NTI595659.size = sizeof(tmagicops595659);
NTI595659.kind = 16;
NTI595659.base = (&NTI595657);
NTI595659.flags = 2;
}

