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

#include <string.h>
typedef struct tglobals595027 tglobals595027;
typedef struct tpasscontext286005 tpasscontext286005;
typedef struct tsym225846 tsym225846;
typedef struct tjsgen595015 tjsgen595015;
typedef struct TNimObject TNimObject;
typedef struct TNimType TNimType;
typedef struct TNimNode TNimNode;
typedef struct tcell45133 tcell45133;
typedef struct tcellseq45149 tcellseq45149;
typedef struct tgcheap47216 tgcheap47216;
typedef struct tcellset45145 tcellset45145;
typedef struct tpagedesc45141 tpagedesc45141;
typedef struct tmemregion27410 tmemregion27410;
typedef struct tsmallchunk26640 tsmallchunk26640;
typedef struct tllchunk27404 tllchunk27404;
typedef struct tbigchunk26642 tbigchunk26642;
typedef struct tintset26617 tintset26617;
typedef struct ttrunk26613 ttrunk26613;
typedef struct tavlnode27408 tavlnode27408;
typedef struct tgcstat47214 tgcstat47214;
typedef struct trope177009 trope177009;
typedef struct tsymseq225818 tsymseq225818;
typedef struct TGenericSeq TGenericSeq;
typedef struct intset222056 intset222056;
typedef struct ttrunk222052 ttrunk222052;
typedef struct ttrunkseq222054 ttrunkseq222054;
typedef struct trodreader276030 trodreader276030;
typedef struct NimStringDesc NimStringDesc;
typedef struct tnode225816 tnode225816;
typedef struct tlineinfo195539 tlineinfo195539;
typedef struct ttype225852 ttype225852;
typedef struct tident200021 tident200021;
typedef struct tnodeseq225810 tnodeseq225810;
typedef struct tproc595033 tproc595033;
typedef struct TY595071 TY595071;
typedef struct tblock595025 tblock595025;
typedef struct tidobj200015 tidobj200015;
typedef struct ttypeseq225848 ttypeseq225848;
typedef struct tscope225840 tscope225840;
typedef struct TY225947 TY225947;
typedef struct tinstantiation225836 tinstantiation225836;
typedef struct tstrtable225820 tstrtable225820;
typedef struct tloc225830 tloc225830;
typedef struct tlib225834 tlib225834;
typedef struct tcompres595023 tcompres595023;
typedef struct TY84945 TY84945;
typedef struct tbasechunk26638 tbasechunk26638;
typedef struct tfreecell26630 tfreecell26630;
typedef struct TY225936 TY225936;
typedef struct tindex276028 tindex276028;
typedef struct tiitable235274 tiitable235274;
typedef struct tiipairseq235272 tiipairseq235272;
typedef struct tiipair235270 tiipair235270;
typedef struct tidtable225864 tidtable225864;
typedef struct tidpairseq225862 tidpairseq225862;
typedef struct tidpair225860 tidpair225860;
typedef struct memfile274208 memfile274208;
typedef struct tlistentry127022 tlistentry127022;
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  tpasscontext286005  {
  TNimObject Sup;
NIM_BOOL Fromcache;
};
struct  tjsgen595015  {
  tpasscontext286005 Sup;
tsym225846* Module;
};
struct  TNimNode  {
NU8 kind;
NI offset;
TNimType* typ;
NCSTRING name;
NI len;
TNimNode** sons;
};
struct  tcell45133  {
NI Refcount;
TNimType* Typ;
};
struct  tcellseq45149  {
NI Len;
NI Cap;
tcell45133** D;
};
struct  tcellset45145  {
NI Counter;
NI Max;
tpagedesc45141* Head;
tpagedesc45141** Data;
};
typedef tsmallchunk26640* TY27422[512];
typedef ttrunk26613* ttrunkbuckets26615[256];
struct  tintset26617  {
ttrunkbuckets26615 Data;
};
struct  tmemregion27410  {
NI Minlargeobj;
NI Maxlargeobj;
TY27422 Freesmallchunks;
tllchunk27404* Llmem;
NI Currmem;
NI Maxmem;
NI Freemem;
NI Lastsize;
tbigchunk26642* Freechunkslist;
tintset26617 Chunkstarts;
tavlnode27408* Root;
tavlnode27408* Deleted;
tavlnode27408* Last;
tavlnode27408* Freeavlnodes;
};
struct  tgcstat47214  {
NI Stackscans;
NI Cyclecollections;
NI Maxthreshold;
NI Maxstacksize;
NI Maxstackcells;
NI Cycletablesize;
NI64 Maxpause;
};
struct  tgcheap47216  {
void* Stackbottom;
NI Cyclethreshold;
tcellseq45149 Zct;
tcellseq45149 Decstack;
tcellset45145 Cycleroots;
tcellseq45149 Tempstack;
NI Recgclock;
tmemregion27410 Region;
tgcstat47214 Stat;
};
struct  TGenericSeq  {
NI len;
NI reserved;
};
struct  intset222056  {
NI Counter;
NI Max;
ttrunk222052* Head;
ttrunkseq222054* Data;
};
struct  tglobals595027  {
trope177009* Typeinfo;
trope177009* Code;
tsymseq225818* Forwarded;
intset222056 Generatedsyms;
intset222056 Typeinfogenerated;
};
struct  NimStringDesc  {
  TGenericSeq Sup;
NIM_CHAR data[SEQ_DECL_SIZE];
};
struct  tlineinfo195539  {
NI16 Line;
NI16 Col;
NI32 Fileindex;
};
struct  tnode225816  {
ttype225852* Typ;
tlineinfo195539 Info;
NU16 Flags;
NU8 Kind;
union {
struct {NI64 Intval;
} S1;
struct {NF Floatval;
} S2;
struct {NimStringDesc* Strval;
} S3;
struct {tsym225846* Sym;
} S4;
struct {tident200021* Ident;
} S5;
struct {tnodeseq225810* Sons;
} S6;
} kindU;
NimStringDesc* Comment;
};
struct  tblock595025  {
NI Id;
NIM_BOOL Isloop;
};
struct  tproc595033  {
tnode225816* Procdef;
tsym225846* Prc;
trope177009* Locals;
trope177009* Body;
NU32 Options;
tjsgen595015* Module;
tglobals595027* G;
NIM_BOOL Beforeretneeded;
NU8 Target;
NI Unique;
TY595071* Blocks;
tproc595033* Up;
};
struct  tidobj200015  {
  TNimObject Sup;
NI Id;
};
struct  tstrtable225820  {
NI Counter;
tsymseq225818* Data;
};
struct  tloc225830  {
NU8 K;
NU8 S;
NU8 Flags;
ttype225852* T;
trope177009* R;
trope177009* Heaproot;
};
struct  tsym225846  {
  tidobj200015 Sup;
NU8 Kind;
union {
struct {ttypeseq225848* Typeinstcache;
tscope225840* Typscope;
} S1;
struct {TY225947* Procinstcache;
tscope225840* Scope;
} S2;
struct {TY225947* Usedgenerics;
tstrtable225820 Tab;
} S3;
struct {tsym225846* Guard;
} S4;
} kindU;
NU16 Magic;
ttype225852* Typ;
tident200021* Name;
tlineinfo195539 Info;
tsym225846* Owner;
NU32 Flags;
tnode225816* Ast;
NU32 Options;
NI Position;
NI Offset;
tloc225830 Loc;
tlib225834* Annex;
tnode225816* Constraint;
};
typedef trope177009* TY588896[2];
struct  tident200021  {
  tidobj200015 Sup;
NimStringDesc* S;
tident200021* Next;
NI H;
};
struct  tcompres595023  {
NU8 Kind;
NU8 Typ;
trope177009* Res;
trope177009* Address;
};
struct  ttype225852  {
  tidobj200015 Sup;
NU8 Kind;
NU8 Callconv;
NU32 Flags;
ttypeseq225848* Sons;
tnode225816* N;
tsym225846* Owner;
tsym225846* Sym;
tsym225846* Destructor;
tsym225846* Deepcopy;
NI64 Size;
NI16 Align;
NI16 Locklevel;
tloc225830 Loc;
};
typedef trope177009* TY177515[1];
struct TY84945 {
NimStringDesc* Field0;
NI Field1;
};
typedef trope177009* TY558098[6];
typedef trope177009* TY554018[3];
typedef trope177009* TY557593[5];
typedef NU8 TY517462[20];
typedef NimStringDesc* tmagicfrmt596657[4];
typedef tmagicfrmt596657 tmagicops596659[96];
typedef trope177009* TY553703[1];
typedef trope177009* TY556046[4];
typedef NI TY26620[8];
struct  tpagedesc45141  {
tpagedesc45141* Next;
NI Key;
TY26620 Bits;
};
struct  tbasechunk26638  {
NI Prevsize;
NI Size;
NIM_BOOL Used;
};
struct  tsmallchunk26640  {
  tbasechunk26638 Sup;
tsmallchunk26640* Next;
tsmallchunk26640* Prev;
tfreecell26630* Freelist;
NI Free;
NI Acc;
NF Data;
};
struct  tllchunk27404  {
NI Size;
NI Acc;
tllchunk27404* Next;
};
struct  tbigchunk26642  {
  tbasechunk26638 Sup;
tbigchunk26642* Next;
tbigchunk26642* Prev;
NI Align;
NF Data;
};
struct  ttrunk26613  {
ttrunk26613* Next;
NI Key;
TY26620 Bits;
};
typedef tavlnode27408* TY27414[2];
struct  tavlnode27408  {
TY27414 Link;
NI Key;
NI Upperbound;
NI Level;
};
struct  trope177009  {
  TNimObject Sup;
trope177009* Left;
trope177009* Right;
NI Length;
NimStringDesc* Data;
};
struct  ttrunk222052  {
ttrunk222052* Next;
NI Key;
TY26620 Bits;
};
struct  tiipair235270  {
NI Key;
NI Val;
};
struct  tiitable235274  {
NI Counter;
tiipairseq235272* Data;
};
struct  tindex276028  {
NI Lastidxkey;
NI Lastidxval;
tiitable235274 Tab;
NimStringDesc* R;
NI Offset;
};
struct  tidpair225860  {
tidobj200015* Key;
TNimObject* Val;
};
struct  tidtable225864  {
NI Counter;
tidpairseq225862* Data;
};
struct  memfile274208  {
void* Mem;
NI Size;
int Handle;
};
struct  trodreader276030  {
  TNimObject Sup;
NI Pos;
NCSTRING S;
NU32 Options;
NU8 Reason;
TY225936* Moddeps;
TY225936* Files;
NI Dataidx;
NI Convertersidx;
NI Initidx;
NI Interfidx;
NI Compilerprocsidx;
NI Methodsidx;
NimStringDesc* Filename;
tindex276028 Index;
tindex276028 Imports;
NI Readerindex;
NI Line;
NI Moduleid;
tidtable225864 Syms;
memfile274208 Memfile;
tsymseq225818* Methods;
NimStringDesc* Origfile;
NIM_BOOL Inviewmode;
};
struct  tscope225840  {
NI Depthlevel;
tstrtable225820 Symbols;
tnodeseq225810* Usingsyms;
tscope225840* Parent;
};
struct  tinstantiation225836  {
tsym225846* Sym;
ttypeseq225848* Concretetypes;
TY225936* Usedby;
};
struct  tlistentry127022  {
  TNimObject Sup;
tlistentry127022* Prev;
tlistentry127022* Next;
};
struct  tlib225834  {
  tlistentry127022 Sup;
NU8 Kind;
NIM_BOOL Generated;
NIM_BOOL Isoverriden;
trope177009* Name;
tnode225816* Path;
};
struct  tfreecell26630  {
tfreecell26630* Next;
NI Zerofield;
};
struct tsymseq225818 {
  TGenericSeq Sup;
  tsym225846* data[SEQ_DECL_SIZE];
};
struct ttrunkseq222054 {
  TGenericSeq Sup;
  ttrunk222052* data[SEQ_DECL_SIZE];
};
struct tnodeseq225810 {
  TGenericSeq Sup;
  tnode225816* data[SEQ_DECL_SIZE];
};
struct TY595071 {
  TGenericSeq Sup;
  tblock595025 data[SEQ_DECL_SIZE];
};
struct ttypeseq225848 {
  TGenericSeq Sup;
  ttype225852* data[SEQ_DECL_SIZE];
};
struct TY225947 {
  TGenericSeq Sup;
  tinstantiation225836* data[SEQ_DECL_SIZE];
};
struct TY225936 {
  TGenericSeq Sup;
  NI32 data[SEQ_DECL_SIZE];
};
struct tiipairseq235272 {
  TGenericSeq Sup;
  tiipair235270 data[SEQ_DECL_SIZE];
};
struct tidpairseq225862 {
  TGenericSeq Sup;
  tidpair225860 data[SEQ_DECL_SIZE];
};
N_NIMCALL(tjsgen595015*, newmodule_605957)(tsym225846* module);
N_NIMCALL(void, nimGCvisit)(void* d, NI op);
N_NIMCALL(void, TMP4229)(void* p, NI op);
N_NIMCALL(void*, newObj)(TNimType* typ, NI size);
static N_INLINE(void, asgnRefNoCycle)(void** dest, void* src);
static N_INLINE(tcell45133*, usrtocell_48846)(void* usr);
static N_INLINE(void, rtladdzct_50404)(tcell45133* c);
N_NOINLINE(void, addzct_48817)(tcellseq45149* s, tcell45133* c);
N_NIMCALL(tglobals595027*, newglobals_595084)(void);
N_NIMCALL(void, TMP4231)(void* p, NI op);
static N_INLINE(void, nimGCunrefNoCycle)(void* p);
N_NIMCALL(void*, newSeqRC1)(TNimType* typ, NI len);
N_NIMCALL(void, initintset_222950)(intset222056* Result);
N_NIMCALL(void, internalerror_198006)(NimStringDesc* errmsg);
static N_INLINE(NIM_BOOL, skipcodegen_286083)(tnode225816* n);
N_NIMCALL(void, internalerror_197987)(tlineinfo195539 info, NimStringDesc* errmsg);
N_NIMCALL(tproc595033*, newproc_595207)(tglobals595027* globals, tjsgen595015* module, tnode225816* procdef, NU32 options);
N_NIMCALL(void, TMP4239)(void* p, NI op);
N_NIMCALL(void, TMP4240)(void* p, NI op);
static N_INLINE(void, asgnRef)(void** dest, void* src);
static N_INLINE(void, incref_51225)(tcell45133* c);
static N_INLINE(NIM_BOOL, canbecycleroot_48867)(tcell45133* c);
static N_INLINE(void, rtladdcycleroot_49629)(tcell45133* c);
N_NOINLINE(void, incl_45871)(tcellset45145* s, tcell45133* cell);
static N_INLINE(void, decref_50804)(tcell45133* c);
N_NIMCALL(void, genmodule_606013)(tproc595033* p, tnode225816* n);
N_NIMCALL(void, appf_177115)(trope177009** c, NimStringDesc* frmt, trope177009** args, NI argsLen0);
N_NIMCALL(trope177009*, makejsstring_595344)(NimStringDesc* s);
N_NIMCALL(trope177009*, torope_177076)(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_197025)(NI32 fileidx);
N_NIMCALL(void, genstmt_596147)(tproc595033* p, tnode225816* n);
N_NIMCALL(void, gen_596138)(tproc595033* p, tnode225816* n, tcompres595023* r);
N_NIMCALL(void, unsureAsgnRef)(void** dest, void* src);
N_NIMCALL(void, gensym_601663)(tproc595033* p, tnode225816* n, tcompres595023* r);
N_NIMCALL(NU8, maptype_595291)(ttype225852* typ);
N_NIMCALL(ttype225852*, skiptypes_230245)(ttype225852* t, NU64 kinds);
static N_INLINE(ttype225852*, lastson_226267)(ttype225852* n);
static N_INLINE(NI, sonslen_226255)(ttype225852* n);
N_NIMCALL(trope177009*, ropef_177107)(NimStringDesc* frmt, trope177009** args, NI argsLen0);
N_NIMCALL(trope177009*, con_177031)(trope177009* a, NimStringDesc* b);
N_NIMCALL(void, genconstant_596161)(tproc595033* p, tsym225846* c);
N_NIMCALL(NIM_BOOL, containsorincl_222916)(intset222056* s, NI key);
N_NIMCALL(void, genvarinit_602903)(tproc595033* p, tsym225846* v, tnode225816* n);
N_NIMCALL(NimStringDesc*, copyString)(NimStringDesc* src);
N_NIMCALL(trope177009*, manglename_595315)(tsym225846* s);
N_NIMCALL(NimStringDesc*, mangle_548763)(NimStringDesc* name);
N_NIMCALL(void, app_177060)(trope177009** a, NimStringDesc* b);
N_NIMCALL(void, app_177052)(trope177009** a, trope177009* b);
N_NIMCALL(trope177009*, torope_177082)(NI64 i);
N_NIMCALL(trope177009*, createvar_602439)(tproc595033* p, ttype225852* typ, NIM_BOOL indirect);
N_NIMCALL(trope177009*, puttoseq_602424)(NimStringDesc* s, NIM_BOOL indirect);
N_NIMCALL(NI64, lengthord_263016)(ttype225852* t);
N_NIMCALL(ttype225852*, elemtype_263656)(ttype225852* t);
N_NIMCALL(void, usemagic_596168)(tproc595033* p, NimStringDesc* name);
N_NIMCALL(tsym225846*, getcompilerproc_282036)(NimStringDesc* name);
N_NIMCALL(NimStringDesc*, HEX24_198126)(TY84945 x_198130);
N_NIMCALL(trope177009*, genproc_596154)(tproc595033* oldproc, tsym225846* prc);
N_NIMCALL(trope177009*, generateheader_600148)(tproc595033* p, ttype225852* typ);
static N_INLINE(NI, sonslen_226249)(tnode225816* n);
static N_INLINE(NIM_BOOL, iscompiletimeonly_273466)(ttype225852* t);
N_NIMCALL(NIM_BOOL, isindirect_602833)(tsym225846* v);
N_NIMCALL(tnode225816*, getbody_279269)(tsym225846* s);
N_NIMCALL(trope177009*, genprocbody_605203)(tproc595033* p, tsym225846* prc);
static N_INLINE(void, appendChar)(NimStringDesc* dest, NIM_CHAR c);
N_NIMCALL(void, globalerror_197934)(tlineinfo195539 info, NU16 msg, NimStringDesc* arg);
N_NIMCALL(void, rawmessage_197733)(NU16 msg, NimStringDesc* arg);
N_NIMCALL(trope177009*, gentypeinfo_595354)(tproc595033* p, ttype225852* typ);
N_NIMCALL(void, prepend_177068)(trope177009** a, trope177009* b);
N_NIMCALL(void, genenuminfo_595877)(tproc595033* p, ttype225852* typ, trope177009* name);
N_NIMCALL(void, genobjectinfo_595724)(tproc595033* p, ttype225852* typ, trope177009* name);
N_NIMCALL(trope177009*, genobjectfields_595358)(tproc595033* p, ttype225852* typ, tnode225816* n);
N_NIMCALL(NI64, getordvalue_263187)(tnode225816* n);
static N_INLINE(tnode225816*, lastson_226261)(tnode225816* n);
N_NIMCALL(void, gentupleinfo_595845)(tproc595033* p, ttype225852* typ, trope177009* name);
N_NIMCALL(trope177009*, gentuplefields_595787)(tproc595033* p, ttype225852* typ);
N_NIMCALL(NI, len_230005)(ttype225852* n);
N_NIMCALL(NimStringDesc*, reprEnum)(NI e_81107, TNimType* typ);
N_NIMCALL(trope177009*, createrecordvaraux_602447)(tproc595033* p, tnode225816* rec, NI* c);
N_NIMCALL(NIM_BOOL, needsnocopy_600474)(tnode225816* y);
N_NIMCALL(TGenericSeq*, incrSeq)(TGenericSeq* seq, NI elemsize);
static N_INLINE(NIM_BOOL, isemptytype_232991)(ttype225852* t);
N_NIMCALL(NimStringDesc*, tostrmaxprecision_234024)(NF f);
N_NIMCALL(void, genmagic_604024)(tproc595033* p, tnode225816* n, tcompres595023* r);
N_NIMCALL(void, genor_596456)(tproc595033* p, tnode225816* a, tnode225816* b, tcompres595023* r);
N_NIMCALL(NIM_BOOL, issimpleexpr_596250)(tnode225816* n);
static N_INLINE(NI, len_226364)(tnode225816* n);
static N_INLINE(NIM_BOOL, isatom_232963)(tnode225816* n);
static N_INLINE(trope177009*, rdloc_595139)(tcompres595023* a);
N_NIMCALL(trope177009*, gettemp_596313)(tproc595033* p);
N_NIMCALL(void, genand_596353)(tproc595033* p, tnode225816* a, tnode225816* b, tcompres595023* r);
N_NIMCALL(void, arith_597306)(tproc595033* p, tnode225816* n, tcompres595023* r, NU16 op);
N_NIMCALL(void, arithaux_597211)(tproc595033* p, tnode225816* n, tcompres595023* r, NU16 op, tmagicops596659 ops);
N_NIMCALL(void, genericAssign)(void* dest, void* src, TNimType* mt);
N_NIMCALL(void, genrepr_603850)(tproc595033* p, tnode225816* n, tcompres595023* r);
N_NIMCALL(void, unaryexpr_597179)(tproc595033* p, tnode225816* n, tcompres595023* r, NimStringDesc* magic, NimStringDesc* frmt);
N_NIMCALL(void, genswap_600643)(tproc595033* p, tnode225816* n);
N_NIMCALL(void, binaryexpr_597058)(tproc595033* p, tnode225816* n, tcompres595023* r, NimStringDesc* magic, NimStringDesc* frmt);
N_NIMCALL(void, genconstrstr_603664)(tproc595033* p, tnode225816* n, tcompres595023* r);
N_NIMCALL(void, gennew_603504)(tproc595033* p, tnode225816* n);
N_NIMCALL(NI64, getsize_263199)(ttype225852* typ);
N_NIMCALL(void, genord_603615)(tproc595033* p, tnode225816* n, tcompres595023* r);
N_NIMCALL(void, localerror_197955)(tlineinfo195539 info, NU16 msg, NimStringDesc* arg);
N_NIMCALL(void, gennewseq_603551)(tproc595033* p, tnode225816* n);
N_NIMCALL(void, genof_603895)(tproc595033* p, tnode225816* n, tcompres595023* r);
N_NIMCALL(void, genreset_603978)(tproc595033* p, tnode225816* n);
N_NIMCALL(void, genecho_602335)(tproc595033* p, tnode225816* n_602338, tcompres595023* r);
N_NIMCALL(tnode225816*, skipconv_273732)(tnode225816* n);
static N_INLINE(tnode225816*, HEX5BHEX5D_226698)(tnode225816* n, NI i);
N_NIMCALL(void, genarg_602097)(tproc595033* p, tnode225816* n, tcompres595023* r);
N_NIMCALL(void, ternaryexpr_597110)(tproc595033* p, tnode225816* n, tcompres595023* r, NimStringDesc* magic, NimStringDesc* frmt);
N_NIMCALL(void, gencall_602188)(tproc595033* p, tnode225816* n, tcompres595023* r);
N_NIMCALL(void, genargs_602125)(tproc595033* p, tnode225816* n, tcompres595023* r);
N_NIMCALL(void, geninfixcall_602214)(tproc595033* p, tnode225816* n, tcompres595023* r);
N_NIMCALL(void, globalerror_197945)(tlineinfo195539 info, NimStringDesc* arg);
N_NIMCALL(void, gensetconstr_604322)(tproc595033* p, tnode225816* n, tcompres595023* r);
N_NIMCALL(void, genarrayconstr_604430)(tproc595033* p, tnode225816* n, tcompres595023* r);
N_NIMCALL(void, gentupleconstr_604491)(tproc595033* p, tnode225816* n, tcompres595023* r);
N_NIMCALL(void, genobjconstr_604589)(tproc595033* p, tnode225816* n, tcompres595023* r);
N_NIMCALL(void, genconv_604749)(tproc595033* p, tnode225816* n, tcompres595023* r);
N_NIMCALL(void, genaddr_601481)(tproc595033* p, tnode225816* n, tcompres595023* r);
N_NIMCALL(void, gencheckedfieldaddr_601181)(tproc595033* p, tnode225816* n, tcompres595023* r);
N_NIMCALL(void, genfieldaddr_600829)(tproc595033* p, tnode225816* n, tcompres595023* r);
N_NIMCALL(NI, getfieldposition_600790)(tnode225816* f);
N_NIMCALL(NimStringDesc*, nimIntToStr)(NI x);
N_NIMCALL(NimStringDesc*, ropetostr_177101)(trope177009* p);
N_NIMCALL(void, genarrayaddr_601233)(tproc595033* p, tnode225816* n, tcompres595023* r);
N_NIMCALL(NI64, firstord_263004)(ttype225852* t);
N_NIMCALL(NIM_BOOL, isconstexpr_261921)(tnode225816* n);
N_NIMCALL(void, genderef_602018)(tproc595033* p, tnode225816* n, tcompres595023* r);
N_NIMCALL(void, genarrayaccess_601412)(tproc595033* p, tnode225816* n, tcompres595023* r);
N_NIMCALL(void, genfieldaccess_601027)(tproc595033* p, tnode225816* n, tcompres595023* r);
N_NIMCALL(void, gencheckedfieldaccess_601207)(tproc595033* p, tnode225816* n, tcompres595023* r);
N_NIMCALL(void, upconv_604822)(tproc595033* p, tnode225816* n, tcompres595023* r);
N_NIMCALL(void, genrangechck_604848)(tproc595033* p, tnode225816* n, tcompres595023* r, NimStringDesc* magic);
N_NIMCALL(void, convstrtocstr_604926)(tproc595033* p, tnode225816* n, tcompres595023* r);
N_NIMCALL(void, convcstrtostr_605024)(tproc595033* p, tnode225816* n, tcompres595023* r);
N_NIMCALL(void, genblock_598973)(tproc595033* p, tnode225816* n, tcompres595023* r);
N_NIMCALL(TGenericSeq*, setLengthSeq)(TGenericSeq* seq, NI elemsize, NI newlen);
N_NIMCALL(void, genif_599921)(tproc595033* p, tnode225816* n, tcompres595023* r);
N_NIMCALL(void, moveinto_597653)(tproc595033* p, tcompres595023* src, tcompres595023* dest);
N_NIMCALL(NimStringDesc*, nsuRepeatChar)(NI count, NIM_CHAR c);
N_NIMCALL(void, genwhilestmt_597506)(tproc595033* p, tnode225816* n);
N_NIMCALL(void, genlinedir_597328)(tproc595033* p, tnode225816* n);
static N_INLINE(NI, tolinenumber_197073)(tlineinfo195539 info);
N_NIMCALL(void, genvarstmt_603048)(tproc595033* p, tnode225816* n);
N_NIMCALL(tnode225816*, lowertupleunpacking_424184)(tnode225816* n, tsym225846* owner);
N_NIMCALL(void, gencasejs_598363)(tproc595033* p, tnode225816* n, tcompres595023* r);
N_NIMCALL(tnode225816*, copynode_226323)(tnode225816* src);
N_NIMCALL(void, gencaselua_598694)(tproc595033* p, tnode225816* n, tcompres595023* r);
N_NIMCALL(void, genreturnstmt_605122)(tproc595033* p, tnode225816* n);
N_NIMCALL(void, genbreakstmt_599159)(tproc595033* p, tnode225816* n);
N_NIMCALL(void, genasgn_600567)(tproc595033* p, tnode225816* n);
N_NIMCALL(void, genasgnaux_600511)(tproc595033* p, tnode225816* x, tnode225816* y, NIM_BOOL nocopyneeded);
N_NIMCALL(void, genfastasgn_600605)(tproc595033* p, tnode225816* n);
N_NIMCALL(void, genasmstmt_599653)(tproc595033* p, tnode225816* n);
N_NIMCALL(void, gentry_597693)(tproc595033* p, tnode225816* n, tcompres595023* r);
N_NIMCALL(void, genraisestmt_598292)(tproc595033* p, tnode225816* n);
N_NIMCALL(tnode225816*, myprocess_606062)(tpasscontext286005* b, tnode225816* n);
N_NIMCALL(trope177009*, wholecode_606094)(tjsgen595015* m);
N_NIMCALL(tnode225816*, generatemethoddispatchers_423508)(void);
N_NIMCALL(trope177009*, con_177024)(trope177009* a, trope177009* b);
N_NIMCALL(NIM_BOOL, nosisAbsolute)(NimStringDesc* path);
N_NIMCALL(NimStringDesc*, HEX2F_117499)(NimStringDesc* head, NimStringDesc* tail);
N_NIMCALL(NimStringDesc*, nosgetCurrentDir)(void);
N_NIMCALL(NimStringDesc*, noschangeFileExt)(NimStringDesc* filename, NimStringDesc* ext);
N_NIMCALL(NimStringDesc*, completecfilepath_202855)(NimStringDesc* cfile, NIM_BOOL createsubdir);
N_NIMCALL(NIM_BOOL, writeropeifnotequal_177094)(trope177009* r, NimStringDesc* filename);
N_NIMCALL(trope177009*, genheader_606000)(void);
STRING_LITERAL(TMP4232, "symbol files are not possible with the JS code generator", 56);
STRING_LITERAL(TMP4233, "myProcess", 9);
STRING_LITERAL(TMP4241, "var F = {procname:$1,prev:framePtr,filename:$2,line:0};$nframeP"
"tr = F;$n", 72);
STRING_LITERAL(TMP4242, "\"", 1);
STRING_LITERAL(TMP4243, "module ", 7);
STRING_LITERAL(TMP4244, "symbol has no generated name: ", 30);
STRING_LITERAL(TMP4245, "$1[0]", 5);
STRING_LITERAL(TMP4246, "$1[1]", 5);
STRING_LITERAL(TMP4247, "_Idx", 4);
STRING_LITERAL(TMP4248, "var $1 = $2;$n", 14);
STRING_LITERAL(TMP4249, "local $1 = $2;$n", 16);
STRING_LITERAL(TMP4250, "_", 1);
STRING_LITERAL(TMP4251, "[$1]", 4);
STRING_LITERAL(TMP4252, "0", 1);
STRING_LITERAL(TMP4253, "0.0", 3);
STRING_LITERAL(TMP4254, "{}", 2);
STRING_LITERAL(TMP4255, "false", 5);
STRING_LITERAL(TMP4257, "compiler/jsgen.nim", 18);
NIM_CONST TY84945 TMP4256 = {((NimStringDesc*) &TMP4257),
179}
;
STRING_LITERAL(TMP4258, ", ", 2);
STRING_LITERAL(TMP4259, "var $# = $#;$n", 14);
STRING_LITERAL(TMP4260, "local $# = $#;$n", 16);
STRING_LITERAL(TMP4261, "return $#;$n", 12);
STRING_LITERAL(TMP4262, "function $#($#) {$n$#$#$#$#}$n", 30);
STRING_LITERAL(TMP4263, "function $#($#) $n$#$#$#$#$nend$n", 33);
STRING_LITERAL(TMP4264, "var F={procname:$1,prev:framePtr,filename:$2,line:0};$n", 55);
STRING_LITERAL(TMP4265, "local F={procname=$#,prev=framePtr,filename=$#,line=0};$n", 57);
STRING_LITERAL(TMP4266, "framePtr = F;$n", 15);
STRING_LITERAL(TMP4267, "BeforeRet: do {$n$1} while (false); $n", 38);
STRING_LITERAL(TMP4268, "$#;::BeforeRet::$n", 18);
STRING_LITERAL(TMP4269, "try {$n$1} catch (e) {$n alert(\"Unhandled exception:\\n\" + e.mes"
"sage + \"\\n\"$n}", 77);
STRING_LITERAL(TMP4270, "framePtr = framePtr.prev;", 25);
STRING_LITERAL(TMP4271, "arrayConstr", 11);
STRING_LITERAL(TMP4272, "nimCopy", 7);
STRING_LITERAL(TMP4273, "arrayConstr($1, $2, $3)", 23);
STRING_LITERAL(TMP4274, "NTI$1", 5);
STRING_LITERAL(TMP4275, "var $1 = {size: 0,kind: $2,base: null,node: null,finalizer: nul"
"l};$n", 68);
STRING_LITERAL(TMP4276, "$1.base = $2;$n", 15);
STRING_LITERAL(TMP4277, "genEnumInfo", 11);
STRING_LITERAL(TMP4278, "{kind: 1, offset: $1, typ: $2, name: $3, len: 0, sons: null}", 60);
STRING_LITERAL(TMP4279, "var NNI$1 = {kind: 2, offset: 0, typ: null, name: null, len: $2"
", sons: [$3]};$n", 79);
STRING_LITERAL(TMP4280, "var $1 = {size: 0, kind: $2, base: null, node: null, finalizer:"
" null};$n", 72);
STRING_LITERAL(TMP4281, "$1.node = NNI$2;$n", 18);
STRING_LITERAL(TMP4282, "var NNI$1 = $2;$n", 17);
STRING_LITERAL(TMP4283, "{kind: 2, len: $1, offset: 0, typ: null, name: null, sons: [$2]"
"}", 64);
STRING_LITERAL(TMP4284, "{kind: 1, offset: \"$1\", len: 0, typ: $2, name: $3, sons: null}", 62);
STRING_LITERAL(TMP4285, "genObjectFields", 15);
STRING_LITERAL(TMP4286, "genObjectFields; nkOfBranch broken", 34);
STRING_LITERAL(TMP4287, "[$1, $2]", 8);
STRING_LITERAL(TMP4288, "genObjectFields(nkRecCase)", 26);
STRING_LITERAL(TMP4289, "[SetConstr($1), $2]", 19);
STRING_LITERAL(TMP4290, "{kind: 3, offset: \"$1\", len: $3, typ: $2, name: $4, sons: [$5]}", 63);
STRING_LITERAL(TMP4291, "{kind: 1, offset: \"Field$1\", len: 0, typ: $2, name: \"Field$1\", "
"sons: null}", 74);
STRING_LITERAL(TMP4292, "genTypeInfo(", 12);
STRING_LITERAL(TMP4293, "[", 1);
STRING_LITERAL(TMP4294, "]", 1);
STRING_LITERAL(TMP4295, "{", 1);
STRING_LITERAL(TMP4296, "Field$1: $2", 11);
STRING_LITERAL(TMP4297, "Field$# = $#", 12);
STRING_LITERAL(TMP4298, "}", 1);
STRING_LITERAL(TMP4299, "m_type: $1", 10);
STRING_LITERAL(TMP4300, "m_type = $#", 11);
STRING_LITERAL(TMP4301, ": ", 2);
STRING_LITERAL(TMP4302, "createRecordVarAux", 18);
STRING_LITERAL(TMP4303, "[null, 0]", 9);
STRING_LITERAL(TMP4304, "{nil, 0}", 8);
STRING_LITERAL(TMP4305, "null", 4);
STRING_LITERAL(TMP4306, "nil", 3);
STRING_LITERAL(TMP4307, "createVar: ", 11);
static NIM_CONST TY517462 TMP4308 = {
0xE0, 0x07, 0x77, 0xFC, 0xE1, 0x00, 0x00, 0x00,
0x80, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00}
;
STRING_LITERAL(TMP4309, "nimCopy($1, $2)", 15);
STRING_LITERAL(TMP4310, "genVarInit", 10);
STRING_LITERAL(TMP4311, "var $1 = [$2, $3];$n", 20);
STRING_LITERAL(TMP4312, "local $1 = {$2, $3};$n", 22);
STRING_LITERAL(TMP4313, "var $1 = $2; var $1_Idx = $3;$n", 31);
STRING_LITERAL(TMP4314, "local $1 = $2; local $1_Idx = $3;$n", 35);
STRING_LITERAL(TMP4315, "var $1 = [$2];$n", 16);
STRING_LITERAL(TMP4316, "local $1 = {$2};$n", 18);
STRING_LITERAL(TMP4317, "null", 4);
STRING_LITERAL(TMP4318, "nil", 3);
STRING_LITERAL(TMP4319, "0", 1);
STRING_LITERAL(TMP4320, "cstrToNimstr", 12);
STRING_LITERAL(TMP4321, "cstrToNimstr($1)", 16);
STRING_LITERAL(TMP4322, "NaN", 3);
STRING_LITERAL(TMP4323, "0.0", 3);
STRING_LITERAL(TMP4324, "Infinity", 8);
STRING_LITERAL(TMP4325, "-Infinity", 9);
STRING_LITERAL(TMP4326, "($1 || $2)", 10);
STRING_LITERAL(TMP4327, "($1 or $2)", 10);
STRING_LITERAL(TMP4328, "Tmp$1", 5);
STRING_LITERAL(TMP4329, "var $1;$n", 9);
STRING_LITERAL(TMP4330, "local $1;$n", 11);
STRING_LITERAL(TMP4331, "if ($1) $2 = true; else {", 25);
STRING_LITERAL(TMP4332, "if $1 then $2 = true; else", 26);
STRING_LITERAL(TMP4333, "$2 = $1; }", 10);
STRING_LITERAL(TMP4334, "$2 = $1 end", 11);
STRING_LITERAL(TMP4335, "($1 && $2)", 10);
STRING_LITERAL(TMP4336, "($1 and $2)", 11);
STRING_LITERAL(TMP4337, "if (!$1) $2 = false; else {", 27);
STRING_LITERAL(TMP4338, "if not $1 then $2 = false; else", 31);
STRING_LITERAL(TMP4339, "addInt", 6);
STRING_LITERAL(TMP4340, "", 0);
STRING_LITERAL(TMP4341, "addInt($1, $2)", 14);
STRING_LITERAL(TMP4342, "($1 + $2)", 9);
STRING_LITERAL(TMP4343, "subInt", 6);
STRING_LITERAL(TMP4344, "subInt($1, $2)", 14);
STRING_LITERAL(TMP4345, "($1 - $2)", 9);
STRING_LITERAL(TMP4346, "mulInt", 6);
STRING_LITERAL(TMP4347, "mulInt($1, $2)", 14);
STRING_LITERAL(TMP4348, "($1 * $2)", 9);
STRING_LITERAL(TMP4349, "divInt", 6);
STRING_LITERAL(TMP4350, "divInt($1, $2)", 14);
STRING_LITERAL(TMP4351, "Math.floor($1 / $2)", 19);
STRING_LITERAL(TMP4352, "modInt", 6);
STRING_LITERAL(TMP4353, "modInt($1, $2)", 14);
STRING_LITERAL(TMP4354, "Math.floor($1 % $2)", 19);
STRING_LITERAL(TMP4355, "addInt64", 8);
STRING_LITERAL(TMP4356, "addInt64($1, $2)", 16);
STRING_LITERAL(TMP4357, "subInt64", 8);
STRING_LITERAL(TMP4358, "subInt64($1, $2)", 16);
STRING_LITERAL(TMP4359, "mulInt64", 8);
STRING_LITERAL(TMP4360, "mulInt64($1, $2)", 16);
STRING_LITERAL(TMP4361, "divInt64", 8);
STRING_LITERAL(TMP4362, "divInt64($1, $2)", 16);
STRING_LITERAL(TMP4363, "modInt64", 8);
STRING_LITERAL(TMP4364, "modInt64($1, $2)", 16);
STRING_LITERAL(TMP4365, "($1 / $2)", 9);
STRING_LITERAL(TMP4366, "($1 >>> $2)", 11);
STRING_LITERAL(TMP4367, "($1 << $2)", 10);
STRING_LITERAL(TMP4368, "($1 & $2)", 9);
STRING_LITERAL(TMP4369, "($1 | $2)", 9);
STRING_LITERAL(TMP4370, "($1 ^ $2)", 9);
STRING_LITERAL(TMP4371, "nimMin", 6);
STRING_LITERAL(TMP4372, "nimMin($1, $2)", 14);
STRING_LITERAL(TMP4373, "nimMax", 6);
STRING_LITERAL(TMP4374, "nimMax($1, $2)", 14);
STRING_LITERAL(TMP4375, "addU", 4);
STRING_LITERAL(TMP4376, "addU($1, $2)", 12);
STRING_LITERAL(TMP4377, "subU", 4);
STRING_LITERAL(TMP4378, "subU($1, $2)", 12);
STRING_LITERAL(TMP4379, "mulU", 4);
STRING_LITERAL(TMP4380, "mulU($1, $2)", 12);
STRING_LITERAL(TMP4381, "divU", 4);
STRING_LITERAL(TMP4382, "divU($1, $2)", 12);
STRING_LITERAL(TMP4383, "modU", 4);
STRING_LITERAL(TMP4384, "modU($1, $2)", 12);
STRING_LITERAL(TMP4385, "($1 == $2)", 10);
STRING_LITERAL(TMP4386, "($1 <= $2)", 10);
STRING_LITERAL(TMP4387, "($1 < $2)", 9);
STRING_LITERAL(TMP4388, "leU", 3);
STRING_LITERAL(TMP4389, "leU($1, $2)", 11);
STRING_LITERAL(TMP4390, "ltU", 3);
STRING_LITERAL(TMP4391, "ltU($1, $2)", 11);
STRING_LITERAL(TMP4392, "leU64", 5);
STRING_LITERAL(TMP4393, "leU64($1, $2)", 13);
STRING_LITERAL(TMP4394, "ltU64", 5);
STRING_LITERAL(TMP4395, "ltU64($1, $2)", 13);
STRING_LITERAL(TMP4396, "($1 != $2)", 10);
STRING_LITERAL(TMP4397, "negInt", 6);
STRING_LITERAL(TMP4398, "negInt($1)", 10);
STRING_LITERAL(TMP4399, "-($1)", 5);
STRING_LITERAL(TMP4400, "negInt64", 8);
STRING_LITERAL(TMP4401, "negInt64($1)", 12);
STRING_LITERAL(TMP4402, "absInt", 6);
STRING_LITERAL(TMP4403, "absInt($1)", 10);
STRING_LITERAL(TMP4404, "Math.abs($1)", 12);
STRING_LITERAL(TMP4405, "absInt64", 8);
STRING_LITERAL(TMP4406, "absInt64($1)", 12);
STRING_LITERAL(TMP4407, "!($1)", 5);
STRING_LITERAL(TMP4408, "+($1)", 5);
STRING_LITERAL(TMP4409, "~($1)", 5);
STRING_LITERAL(TMP4410, "Ze8ToI", 6);
STRING_LITERAL(TMP4411, "Ze8ToI($1)", 10);
STRING_LITERAL(TMP4412, "Ze8ToI64", 8);
STRING_LITERAL(TMP4413, "Ze8ToI64($1)", 12);
STRING_LITERAL(TMP4414, "Ze16ToI", 7);
STRING_LITERAL(TMP4415, "Ze16ToI($1)", 11);
STRING_LITERAL(TMP4416, "Ze16ToI64", 9);
STRING_LITERAL(TMP4417, "Ze16ToI64($1)", 13);
STRING_LITERAL(TMP4418, "Ze32ToI64", 9);
STRING_LITERAL(TMP4419, "Ze32ToI64($1)", 13);
STRING_LITERAL(TMP4420, "ZeIToI64", 8);
STRING_LITERAL(TMP4421, "ZeIToI64($1)", 12);
STRING_LITERAL(TMP4422, "toU8", 4);
STRING_LITERAL(TMP4423, "toU8($1)", 8);
STRING_LITERAL(TMP4424, "toU16", 5);
STRING_LITERAL(TMP4425, "toU16($1)", 9);
STRING_LITERAL(TMP4426, "toU32", 5);
STRING_LITERAL(TMP4427, "toU32($1)", 9);
STRING_LITERAL(TMP4428, "$1", 2);
STRING_LITERAL(TMP4429, "Math.floor($1)", 14);
STRING_LITERAL(TMP4430, "nimCharToStr", 12);
STRING_LITERAL(TMP4431, "nimCharToStr($1)", 16);
STRING_LITERAL(TMP4432, "nimBoolToStr", 12);
STRING_LITERAL(TMP4433, "nimBoolToStr($1)", 16);
STRING_LITERAL(TMP4434, "cstrToNimstr(($1)+\"\")", 21);
NIM_CONST tmagicops596659 jsops_596665 = {{((NimStringDesc*) &TMP4339),
((NimStringDesc*) &TMP4340),
((NimStringDesc*) &TMP4341),
((NimStringDesc*) &TMP4342)}
,
{((NimStringDesc*) &TMP4343),
((NimStringDesc*) &TMP4340),
((NimStringDesc*) &TMP4344),
((NimStringDesc*) &TMP4345)}
,
{((NimStringDesc*) &TMP4346),
((NimStringDesc*) &TMP4340),
((NimStringDesc*) &TMP4347),
((NimStringDesc*) &TMP4348)}
,
{((NimStringDesc*) &TMP4349),
((NimStringDesc*) &TMP4340),
((NimStringDesc*) &TMP4350),
((NimStringDesc*) &TMP4351)}
,
{((NimStringDesc*) &TMP4352),
((NimStringDesc*) &TMP4340),
((NimStringDesc*) &TMP4353),
((NimStringDesc*) &TMP4354)}
,
{((NimStringDesc*) &TMP4355),
((NimStringDesc*) &TMP4340),
((NimStringDesc*) &TMP4356),
((NimStringDesc*) &TMP4342)}
,
{((NimStringDesc*) &TMP4357),
((NimStringDesc*) &TMP4340),
((NimStringDesc*) &TMP4358),
((NimStringDesc*) &TMP4345)}
,
{((NimStringDesc*) &TMP4359),
((NimStringDesc*) &TMP4340),
((NimStringDesc*) &TMP4360),
((NimStringDesc*) &TMP4348)}
,
{((NimStringDesc*) &TMP4361),
((NimStringDesc*) &TMP4340),
((NimStringDesc*) &TMP4362),
((NimStringDesc*) &TMP4351)}
,
{((NimStringDesc*) &TMP4363),
((NimStringDesc*) &TMP4340),
((NimStringDesc*) &TMP4364),
((NimStringDesc*) &TMP4354)}
,
{((NimStringDesc*) &TMP4340),
((NimStringDesc*) &TMP4340),
((NimStringDesc*) &TMP4342),
((NimStringDesc*) &TMP4342)}
,
{((NimStringDesc*) &TMP4340),
((NimStringDesc*) &TMP4340),
((NimStringDesc*) &TMP4345),
((NimStringDesc*) &TMP4345)}
,
{((NimStringDesc*) &TMP4340),
((NimStringDesc*) &TMP4340),
((NimStringDesc*) &TMP4348),
((NimStringDesc*) &TMP4348)}
,
{((NimStringDesc*) &TMP4340),
((NimStringDesc*) &TMP4340),
((NimStringDesc*) &TMP4365),
((NimStringDesc*) &TMP4365)}
,
{((NimStringDesc*) &TMP4340),
((NimStringDesc*) &TMP4340),
((NimStringDesc*) &TMP4366),
((NimStringDesc*) &TMP4366)}
,
{((NimStringDesc*) &TMP4340),
((NimStringDesc*) &TMP4340),
((NimStringDesc*) &TMP4367),
((NimStringDesc*) &TMP4367)}
,
{((NimStringDesc*) &TMP4340),
((NimStringDesc*) &TMP4340),
((NimStringDesc*) &TMP4368),
((NimStringDesc*) &TMP4368)}
,
{((NimStringDesc*) &TMP4340),
((NimStringDesc*) &TMP4340),
((NimStringDesc*) &TMP4369),
((NimStringDesc*) &TMP4369)}
,
{((NimStringDesc*) &TMP4340),
((NimStringDesc*) &TMP4340),
((NimStringDesc*) &TMP4370),
((NimStringDesc*) &TMP4370)}
,
{((NimStringDesc*) &TMP4371),
((NimStringDesc*) &TMP4371),
((NimStringDesc*) &TMP4372),
((NimStringDesc*) &TMP4372)}
,
{((NimStringDesc*) &TMP4373),
((NimStringDesc*) &TMP4373),
((NimStringDesc*) &TMP4374),
((NimStringDesc*) &TMP4374)}
,
{((NimStringDesc*) &TMP4340),
((NimStringDesc*) &TMP4340),
((NimStringDesc*) &TMP4366),
((NimStringDesc*) &TMP4366)}
,
{((NimStringDesc*) &TMP4340),
((NimStringDesc*) &TMP4340),
((NimStringDesc*) &TMP4367),
((NimStringDesc*) &TMP4367)}
,
{((NimStringDesc*) &TMP4340),
((NimStringDesc*) &TMP4340),
((NimStringDesc*) &TMP4368),
((NimStringDesc*) &TMP4368)}
,
{((NimStringDesc*) &TMP4340),
((NimStringDesc*) &TMP4340),
((NimStringDesc*) &TMP4369),
((NimStringDesc*) &TMP4369)}
,
{((NimStringDesc*) &TMP4340),
((NimStringDesc*) &TMP4340),
((NimStringDesc*) &TMP4370),
((NimStringDesc*) &TMP4370)}
,
{((NimStringDesc*) &TMP4371),
((NimStringDesc*) &TMP4371),
((NimStringDesc*) &TMP4372),
((NimStringDesc*) &TMP4372)}
,
{((NimStringDesc*) &TMP4373),
((NimStringDesc*) &TMP4373),
((NimStringDesc*) &TMP4374),
((NimStringDesc*) &TMP4374)}
,
{((NimStringDesc*) &TMP4371),
((NimStringDesc*) &TMP4371),
((NimStringDesc*) &TMP4372),
((NimStringDesc*) &TMP4372)}
,
{((NimStringDesc*) &TMP4373),
((NimStringDesc*) &TMP4373),
((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*) &TMP4340),
((NimStringDesc*) &TMP4340),
((NimStringDesc*) &TMP4385),
((NimStringDesc*) &TMP4385)}
,
{((NimStringDesc*) &TMP4340),
((NimStringDesc*) &TMP4340),
((NimStringDesc*) &TMP4386),
((NimStringDesc*) &TMP4386)}
,
{((NimStringDesc*) &TMP4340),
((NimStringDesc*) &TMP4340),
((NimStringDesc*) &TMP4387),
((NimStringDesc*) &TMP4387)}
,
{((NimStringDesc*) &TMP4340),
((NimStringDesc*) &TMP4340),
((NimStringDesc*) &TMP4385),
((NimStringDesc*) &TMP4385)}
,
{((NimStringDesc*) &TMP4340),
((NimStringDesc*) &TMP4340),
((NimStringDesc*) &TMP4386),
((NimStringDesc*) &TMP4386)}
,
{((NimStringDesc*) &TMP4340),
((NimStringDesc*) &TMP4340),
((NimStringDesc*) &TMP4387),
((NimStringDesc*) &TMP4387)}
,
{((NimStringDesc*) &TMP4340),
((NimStringDesc*) &TMP4340),
((NimStringDesc*) &TMP4385),
((NimStringDesc*) &TMP4385)}
,
{((NimStringDesc*) &TMP4340),
((NimStringDesc*) &TMP4340),
((NimStringDesc*) &TMP4386),
((NimStringDesc*) &TMP4386)}
,
{((NimStringDesc*) &TMP4340),
((NimStringDesc*) &TMP4340),
((NimStringDesc*) &TMP4387),
((NimStringDesc*) &TMP4387)}
,
{((NimStringDesc*) &TMP4388),
((NimStringDesc*) &TMP4388),
((NimStringDesc*) &TMP4389),
((NimStringDesc*) &TMP4389)}
,
{((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*) &TMP4340),
((NimStringDesc*) &TMP4340),
((NimStringDesc*) &TMP4385),
((NimStringDesc*) &TMP4385)}
,
{((NimStringDesc*) &TMP4340),
((NimStringDesc*) &TMP4340),
((NimStringDesc*) &TMP4386),
((NimStringDesc*) &TMP4386)}
,
{((NimStringDesc*) &TMP4340),
((NimStringDesc*) &TMP4340),
((NimStringDesc*) &TMP4387),
((NimStringDesc*) &TMP4387)}
,
{((NimStringDesc*) &TMP4340),
((NimStringDesc*) &TMP4340),
((NimStringDesc*) &TMP4385),
((NimStringDesc*) &TMP4385)}
,
{((NimStringDesc*) &TMP4340),
((NimStringDesc*) &TMP4340),
((NimStringDesc*) &TMP4386),
((NimStringDesc*) &TMP4386)}
,
{((NimStringDesc*) &TMP4340),
((NimStringDesc*) &TMP4340),
((NimStringDesc*) &TMP4387),
((NimStringDesc*) &TMP4387)}
,
{((NimStringDesc*) &TMP4340),
((NimStringDesc*) &TMP4340),
((NimStringDesc*) &TMP4385),
((NimStringDesc*) &TMP4385)}
,
{((NimStringDesc*) &TMP4340),
((NimStringDesc*) &TMP4340),
((NimStringDesc*) &TMP4386),
((NimStringDesc*) &TMP4386)}
,
{((NimStringDesc*) &TMP4340),
((NimStringDesc*) &TMP4340),
((NimStringDesc*) &TMP4387),
((NimStringDesc*) &TMP4387)}
,
{((NimStringDesc*) &TMP4340),
((NimStringDesc*) &TMP4340),
((NimStringDesc*) &TMP4385),
((NimStringDesc*) &TMP4385)}
,
{((NimStringDesc*) &TMP4340),
((NimStringDesc*) &TMP4340),
((NimStringDesc*) &TMP4385),
((NimStringDesc*) &TMP4385)}
,
{((NimStringDesc*) &TMP4340),
((NimStringDesc*) &TMP4340),
((NimStringDesc*) &TMP4386),
((NimStringDesc*) &TMP4386)}
,
{((NimStringDesc*) &TMP4340),
((NimStringDesc*) &TMP4340),
((NimStringDesc*) &TMP4387),
((NimStringDesc*) &TMP4387)}
,
{((NimStringDesc*) &TMP4340),
((NimStringDesc*) &TMP4340),
((NimStringDesc*) &TMP4385),
((NimStringDesc*) &TMP4385)}
,
{((NimStringDesc*) &TMP4340),
((NimStringDesc*) &TMP4340),
((NimStringDesc*) &TMP4396),
((NimStringDesc*) &TMP4396)}
,
{((NimStringDesc*) &TMP4340),
((NimStringDesc*) &TMP4340),
((NimStringDesc*) &TMP4385),
((NimStringDesc*) &TMP4385)}
,
{((NimStringDesc*) &TMP4397),
((NimStringDesc*) &TMP4340),
((NimStringDesc*) &TMP4398),
((NimStringDesc*) &TMP4399)}
,
{((NimStringDesc*) &TMP4400),
((NimStringDesc*) &TMP4340),
((NimStringDesc*) &TMP4401),
((NimStringDesc*) &TMP4399)}
,
{((NimStringDesc*) &TMP4402),
((NimStringDesc*) &TMP4340),
((NimStringDesc*) &TMP4403),
((NimStringDesc*) &TMP4404)}
,
{((NimStringDesc*) &TMP4405),
((NimStringDesc*) &TMP4340),
((NimStringDesc*) &TMP4406),
((NimStringDesc*) &TMP4404)}
,
{((NimStringDesc*) &TMP4340),
((NimStringDesc*) &TMP4340),
((NimStringDesc*) &TMP4407),
((NimStringDesc*) &TMP4407)}
,
{((NimStringDesc*) &TMP4340),
((NimStringDesc*) &TMP4340),
((NimStringDesc*) &TMP4408),
((NimStringDesc*) &TMP4408)}
,
{((NimStringDesc*) &TMP4340),
((NimStringDesc*) &TMP4340),
((NimStringDesc*) &TMP4409),
((NimStringDesc*) &TMP4409)}
,
{((NimStringDesc*) &TMP4340),
((NimStringDesc*) &TMP4340),
((NimStringDesc*) &TMP4408),
((NimStringDesc*) &TMP4408)}
,
{((NimStringDesc*) &TMP4340),
((NimStringDesc*) &TMP4340),
((NimStringDesc*) &TMP4409),
((NimStringDesc*) &TMP4409)}
,
{((NimStringDesc*) &TMP4340),
((NimStringDesc*) &TMP4340),
((NimStringDesc*) &TMP4408),
((NimStringDesc*) &TMP4408)}
,
{((NimStringDesc*) &TMP4340),
((NimStringDesc*) &TMP4340),
((NimStringDesc*) &TMP4399),
((NimStringDesc*) &TMP4399)}
,
{((NimStringDesc*) &TMP4340),
((NimStringDesc*) &TMP4340),
((NimStringDesc*) &TMP4404),
((NimStringDesc*) &TMP4404)}
,
{((NimStringDesc*) &TMP4410),
((NimStringDesc*) &TMP4410),
((NimStringDesc*) &TMP4411),
((NimStringDesc*) &TMP4411)}
,
{((NimStringDesc*) &TMP4412),
((NimStringDesc*) &TMP4412),
((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*) &TMP4340),
((NimStringDesc*) &TMP4340),
((NimStringDesc*) &TMP4428),
((NimStringDesc*) &TMP4428)}
,
{((NimStringDesc*) &TMP4340),
((NimStringDesc*) &TMP4340),
((NimStringDesc*) &TMP4428),
((NimStringDesc*) &TMP4428)}
,
{((NimStringDesc*) &TMP4340),
((NimStringDesc*) &TMP4340),
((NimStringDesc*) &TMP4429),
((NimStringDesc*) &TMP4429)}
,
{((NimStringDesc*) &TMP4340),
((NimStringDesc*) &TMP4340),
((NimStringDesc*) &TMP4429),
((NimStringDesc*) &TMP4429)}
,
{((NimStringDesc*) &TMP4430),
((NimStringDesc*) &TMP4430),
((NimStringDesc*) &TMP4431),
((NimStringDesc*) &TMP4431)}
,
{((NimStringDesc*) &TMP4432),
((NimStringDesc*) &TMP4432),
((NimStringDesc*) &TMP4433),
((NimStringDesc*) &TMP4433)}
,
{((NimStringDesc*) &TMP4320),
((NimStringDesc*) &TMP4320),
((NimStringDesc*) &TMP4434),
((NimStringDesc*) &TMP4434)}
,
{((NimStringDesc*) &TMP4320),
((NimStringDesc*) &TMP4320),
((NimStringDesc*) &TMP4434),
((NimStringDesc*) &TMP4434)}
,
{((NimStringDesc*) &TMP4320),
((NimStringDesc*) &TMP4320),
((NimStringDesc*) &TMP4434),
((NimStringDesc*) &TMP4434)}
,
{((NimStringDesc*) &TMP4320),
((NimStringDesc*) &TMP4320),
((NimStringDesc*) &TMP4321),
((NimStringDesc*) &TMP4321)}
,
{((NimStringDesc*) &TMP4340),
((NimStringDesc*) &TMP4340),
((NimStringDesc*) &TMP4428),
((NimStringDesc*) &TMP4428)}
}
;
STRING_LITERAL(TMP4435, "not ($1)", 8);
NIM_CONST tmagicops596659 luaops_596860 = {{((NimStringDesc*) &TMP4339),
((NimStringDesc*) &TMP4340),
((NimStringDesc*) &TMP4341),
((NimStringDesc*) &TMP4342)}
,
{((NimStringDesc*) &TMP4343),
((NimStringDesc*) &TMP4340),
((NimStringDesc*) &TMP4344),
((NimStringDesc*) &TMP4345)}
,
{((NimStringDesc*) &TMP4346),
((NimStringDesc*) &TMP4340),
((NimStringDesc*) &TMP4347),
((NimStringDesc*) &TMP4348)}
,
{((NimStringDesc*) &TMP4349),
((NimStringDesc*) &TMP4340),
((NimStringDesc*) &TMP4350),
((NimStringDesc*) &TMP4351)}
,
{((NimStringDesc*) &TMP4352),
((NimStringDesc*) &TMP4340),
((NimStringDesc*) &TMP4353),
((NimStringDesc*) &TMP4354)}
,
{((NimStringDesc*) &TMP4355),
((NimStringDesc*) &TMP4340),
((NimStringDesc*) &TMP4356),
((NimStringDesc*) &TMP4342)}
,
{((NimStringDesc*) &TMP4357),
((NimStringDesc*) &TMP4340),
((NimStringDesc*) &TMP4358),
((NimStringDesc*) &TMP4345)}
,
{((NimStringDesc*) &TMP4359),
((NimStringDesc*) &TMP4340),
((NimStringDesc*) &TMP4360),
((NimStringDesc*) &TMP4348)}
,
{((NimStringDesc*) &TMP4361),
((NimStringDesc*) &TMP4340),
((NimStringDesc*) &TMP4362),
((NimStringDesc*) &TMP4351)}
,
{((NimStringDesc*) &TMP4363),
((NimStringDesc*) &TMP4340),
((NimStringDesc*) &TMP4364),
((NimStringDesc*) &TMP4354)}
,
{((NimStringDesc*) &TMP4340),
((NimStringDesc*) &TMP4340),
((NimStringDesc*) &TMP4342),
((NimStringDesc*) &TMP4342)}
,
{((NimStringDesc*) &TMP4340),
((NimStringDesc*) &TMP4340),
((NimStringDesc*) &TMP4345),
((NimStringDesc*) &TMP4345)}
,
{((NimStringDesc*) &TMP4340),
((NimStringDesc*) &TMP4340),
((NimStringDesc*) &TMP4348),
((NimStringDesc*) &TMP4348)}
,
{((NimStringDesc*) &TMP4340),
((NimStringDesc*) &TMP4340),
((NimStringDesc*) &TMP4365),
((NimStringDesc*) &TMP4365)}
,
{((NimStringDesc*) &TMP4340),
((NimStringDesc*) &TMP4340),
((NimStringDesc*) &TMP4366),
((NimStringDesc*) &TMP4366)}
,
{((NimStringDesc*) &TMP4340),
((NimStringDesc*) &TMP4340),
((NimStringDesc*) &TMP4367),
((NimStringDesc*) &TMP4367)}
,
{((NimStringDesc*) &TMP4340),
((NimStringDesc*) &TMP4340),
((NimStringDesc*) &TMP4368),
((NimStringDesc*) &TMP4368)}
,
{((NimStringDesc*) &TMP4340),
((NimStringDesc*) &TMP4340),
((NimStringDesc*) &TMP4369),
((NimStringDesc*) &TMP4369)}
,
{((NimStringDesc*) &TMP4340),
((NimStringDesc*) &TMP4340),
((NimStringDesc*) &TMP4370),
((NimStringDesc*) &TMP4370)}
,
{((NimStringDesc*) &TMP4371),
((NimStringDesc*) &TMP4371),
((NimStringDesc*) &TMP4372),
((NimStringDesc*) &TMP4372)}
,
{((NimStringDesc*) &TMP4373),
((NimStringDesc*) &TMP4373),
((NimStringDesc*) &TMP4374),
((NimStringDesc*) &TMP4374)}
,
{((NimStringDesc*) &TMP4340),
((NimStringDesc*) &TMP4340),
((NimStringDesc*) &TMP4366),
((NimStringDesc*) &TMP4366)}
,
{((NimStringDesc*) &TMP4340),
((NimStringDesc*) &TMP4340),
((NimStringDesc*) &TMP4367),
((NimStringDesc*) &TMP4367)}
,
{((NimStringDesc*) &TMP4340),
((NimStringDesc*) &TMP4340),
((NimStringDesc*) &TMP4368),
((NimStringDesc*) &TMP4368)}
,
{((NimStringDesc*) &TMP4340),
((NimStringDesc*) &TMP4340),
((NimStringDesc*) &TMP4369),
((NimStringDesc*) &TMP4369)}
,
{((NimStringDesc*) &TMP4340),
((NimStringDesc*) &TMP4340),
((NimStringDesc*) &TMP4370),
((NimStringDesc*) &TMP4370)}
,
{((NimStringDesc*) &TMP4371),
((NimStringDesc*) &TMP4371),
((NimStringDesc*) &TMP4372),
((NimStringDesc*) &TMP4372)}
,
{((NimStringDesc*) &TMP4373),
((NimStringDesc*) &TMP4373),
((NimStringDesc*) &TMP4374),
((NimStringDesc*) &TMP4374)}
,
{((NimStringDesc*) &TMP4371),
((NimStringDesc*) &TMP4371),
((NimStringDesc*) &TMP4372),
((NimStringDesc*) &TMP4372)}
,
{((NimStringDesc*) &TMP4373),
((NimStringDesc*) &TMP4373),
((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*) &TMP4340),
((NimStringDesc*) &TMP4340),
((NimStringDesc*) &TMP4385),
((NimStringDesc*) &TMP4385)}
,
{((NimStringDesc*) &TMP4340),
((NimStringDesc*) &TMP4340),
((NimStringDesc*) &TMP4386),
((NimStringDesc*) &TMP4386)}
,
{((NimStringDesc*) &TMP4340),
((NimStringDesc*) &TMP4340),
((NimStringDesc*) &TMP4387),
((NimStringDesc*) &TMP4387)}
,
{((NimStringDesc*) &TMP4340),
((NimStringDesc*) &TMP4340),
((NimStringDesc*) &TMP4385),
((NimStringDesc*) &TMP4385)}
,
{((NimStringDesc*) &TMP4340),
((NimStringDesc*) &TMP4340),
((NimStringDesc*) &TMP4386),
((NimStringDesc*) &TMP4386)}
,
{((NimStringDesc*) &TMP4340),
((NimStringDesc*) &TMP4340),
((NimStringDesc*) &TMP4387),
((NimStringDesc*) &TMP4387)}
,
{((NimStringDesc*) &TMP4340),
((NimStringDesc*) &TMP4340),
((NimStringDesc*) &TMP4385),
((NimStringDesc*) &TMP4385)}
,
{((NimStringDesc*) &TMP4340),
((NimStringDesc*) &TMP4340),
((NimStringDesc*) &TMP4386),
((NimStringDesc*) &TMP4386)}
,
{((NimStringDesc*) &TMP4340),
((NimStringDesc*) &TMP4340),
((NimStringDesc*) &TMP4387),
((NimStringDesc*) &TMP4387)}
,
{((NimStringDesc*) &TMP4388),
((NimStringDesc*) &TMP4388),
((NimStringDesc*) &TMP4389),
((NimStringDesc*) &TMP4389)}
,
{((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*) &TMP4340),
((NimStringDesc*) &TMP4340),
((NimStringDesc*) &TMP4385),
((NimStringDesc*) &TMP4385)}
,
{((NimStringDesc*) &TMP4340),
((NimStringDesc*) &TMP4340),
((NimStringDesc*) &TMP4386),
((NimStringDesc*) &TMP4386)}
,
{((NimStringDesc*) &TMP4340),
((NimStringDesc*) &TMP4340),
((NimStringDesc*) &TMP4387),
((NimStringDesc*) &TMP4387)}
,
{((NimStringDesc*) &TMP4340),
((NimStringDesc*) &TMP4340),
((NimStringDesc*) &TMP4385),
((NimStringDesc*) &TMP4385)}
,
{((NimStringDesc*) &TMP4340),
((NimStringDesc*) &TMP4340),
((NimStringDesc*) &TMP4386),
((NimStringDesc*) &TMP4386)}
,
{((NimStringDesc*) &TMP4340),
((NimStringDesc*) &TMP4340),
((NimStringDesc*) &TMP4387),
((NimStringDesc*) &TMP4387)}
,
{((NimStringDesc*) &TMP4340),
((NimStringDesc*) &TMP4340),
((NimStringDesc*) &TMP4385),
((NimStringDesc*) &TMP4385)}
,
{((NimStringDesc*) &TMP4340),
((NimStringDesc*) &TMP4340),
((NimStringDesc*) &TMP4386),
((NimStringDesc*) &TMP4386)}
,
{((NimStringDesc*) &TMP4340),
((NimStringDesc*) &TMP4340),
((NimStringDesc*) &TMP4387),
((NimStringDesc*) &TMP4387)}
,
{((NimStringDesc*) &TMP4340),
((NimStringDesc*) &TMP4340),
((NimStringDesc*) &TMP4385),
((NimStringDesc*) &TMP4385)}
,
{((NimStringDesc*) &TMP4340),
((NimStringDesc*) &TMP4340),
((NimStringDesc*) &TMP4385),
((NimStringDesc*) &TMP4385)}
,
{((NimStringDesc*) &TMP4340),
((NimStringDesc*) &TMP4340),
((NimStringDesc*) &TMP4386),
((NimStringDesc*) &TMP4386)}
,
{((NimStringDesc*) &TMP4340),
((NimStringDesc*) &TMP4340),
((NimStringDesc*) &TMP4387),
((NimStringDesc*) &TMP4387)}
,
{((NimStringDesc*) &TMP4340),
((NimStringDesc*) &TMP4340),
((NimStringDesc*) &TMP4385),
((NimStringDesc*) &TMP4385)}
,
{((NimStringDesc*) &TMP4340),
((NimStringDesc*) &TMP4340),
((NimStringDesc*) &TMP4396),
((NimStringDesc*) &TMP4396)}
,
{((NimStringDesc*) &TMP4340),
((NimStringDesc*) &TMP4340),
((NimStringDesc*) &TMP4385),
((NimStringDesc*) &TMP4385)}
,
{((NimStringDesc*) &TMP4397),
((NimStringDesc*) &TMP4340),
((NimStringDesc*) &TMP4398),
((NimStringDesc*) &TMP4399)}
,
{((NimStringDesc*) &TMP4400),
((NimStringDesc*) &TMP4340),
((NimStringDesc*) &TMP4401),
((NimStringDesc*) &TMP4399)}
,
{((NimStringDesc*) &TMP4402),
((NimStringDesc*) &TMP4340),
((NimStringDesc*) &TMP4403),
((NimStringDesc*) &TMP4404)}
,
{((NimStringDesc*) &TMP4405),
((NimStringDesc*) &TMP4340),
((NimStringDesc*) &TMP4406),
((NimStringDesc*) &TMP4404)}
,
{((NimStringDesc*) &TMP4340),
((NimStringDesc*) &TMP4340),
((NimStringDesc*) &TMP4435),
((NimStringDesc*) &TMP4435)}
,
{((NimStringDesc*) &TMP4340),
((NimStringDesc*) &TMP4340),
((NimStringDesc*) &TMP4408),
((NimStringDesc*) &TMP4408)}
,
{((NimStringDesc*) &TMP4340),
((NimStringDesc*) &TMP4340),
((NimStringDesc*) &TMP4409),
((NimStringDesc*) &TMP4409)}
,
{((NimStringDesc*) &TMP4340),
((NimStringDesc*) &TMP4340),
((NimStringDesc*) &TMP4408),
((NimStringDesc*) &TMP4408)}
,
{((NimStringDesc*) &TMP4340),
((NimStringDesc*) &TMP4340),
((NimStringDesc*) &TMP4409),
((NimStringDesc*) &TMP4409)}
,
{((NimStringDesc*) &TMP4340),
((NimStringDesc*) &TMP4340),
((NimStringDesc*) &TMP4408),
((NimStringDesc*) &TMP4408)}
,
{((NimStringDesc*) &TMP4340),
((NimStringDesc*) &TMP4340),
((NimStringDesc*) &TMP4399),
((NimStringDesc*) &TMP4399)}
,
{((NimStringDesc*) &TMP4340),
((NimStringDesc*) &TMP4340),
((NimStringDesc*) &TMP4404),
((NimStringDesc*) &TMP4404)}
,
{((NimStringDesc*) &TMP4410),
((NimStringDesc*) &TMP4410),
((NimStringDesc*) &TMP4411),
((NimStringDesc*) &TMP4411)}
,
{((NimStringDesc*) &TMP4412),
((NimStringDesc*) &TMP4412),
((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*) &TMP4340),
((NimStringDesc*) &TMP4340),
((NimStringDesc*) &TMP4428),
((NimStringDesc*) &TMP4428)}
,
{((NimStringDesc*) &TMP4340),
((NimStringDesc*) &TMP4340),
((NimStringDesc*) &TMP4428),
((NimStringDesc*) &TMP4428)}
,
{((NimStringDesc*) &TMP4340),
((NimStringDesc*) &TMP4340),
((NimStringDesc*) &TMP4429),
((NimStringDesc*) &TMP4429)}
,
{((NimStringDesc*) &TMP4340),
((NimStringDesc*) &TMP4340),
((NimStringDesc*) &TMP4429),
((NimStringDesc*) &TMP4429)}
,
{((NimStringDesc*) &TMP4430),
((NimStringDesc*) &TMP4430),
((NimStringDesc*) &TMP4431),
((NimStringDesc*) &TMP4431)}
,
{((NimStringDesc*) &TMP4432),
((NimStringDesc*) &TMP4432),
((NimStringDesc*) &TMP4433),
((NimStringDesc*) &TMP4433)}
,
{((NimStringDesc*) &TMP4320),
((NimStringDesc*) &TMP4320),
((NimStringDesc*) &TMP4434),
((NimStringDesc*) &TMP4434)}
,
{((NimStringDesc*) &TMP4320),
((NimStringDesc*) &TMP4320),
((NimStringDesc*) &TMP4434),
((NimStringDesc*) &TMP4434)}
,
{((NimStringDesc*) &TMP4320),
((NimStringDesc*) &TMP4320),
((NimStringDesc*) &TMP4434),
((NimStringDesc*) &TMP4434)}
,
{((NimStringDesc*) &TMP4320),
((NimStringDesc*) &TMP4320),
((NimStringDesc*) &TMP4321),
((NimStringDesc*) &TMP4321)}
,
{((NimStringDesc*) &TMP4340),
((NimStringDesc*) &TMP4340),
((NimStringDesc*) &TMP4428),
((NimStringDesc*) &TMP4428)}
}
;
STRING_LITERAL(TMP4436, "(\"\"+ ($1))", 10);
STRING_LITERAL(TMP4437, "cstrToNimstr($1.node.sons[$2].name)", 35);
STRING_LITERAL(TMP4438, "genRepr: Not implemented", 24);
STRING_LITERAL(TMP4439, "genSwap", 7);
STRING_LITERAL(TMP4440, "var $1 = $2; $2 = $3; $3 = $1;$n", 32);
STRING_LITERAL(TMP4441, "local $1 = $2; $2 = $3; $3 = $1;$n", 34);
STRING_LITERAL(TMP4442, "var $1 = $2; $2 = $3; $3 = $1;", 30);
STRING_LITERAL(TMP4443, "local $1 = $2; $2 = $3; $3 = $1;", 32);
STRING_LITERAL(TMP4444, "$1 - 1", 6);
STRING_LITERAL(TMP4445, "subInt($1, 1)", 13);
STRING_LITERAL(TMP4446, "$1 - $2", 7);
STRING_LITERAL(TMP4447, "addChar", 7);
STRING_LITERAL(TMP4448, "addChar($1, $2)", 15);
STRING_LITERAL(TMP4449, "$1 += $2", 8);
STRING_LITERAL(TMP4450, "$1 = ($1.slice(0, -1)).concat($2)", 33);
STRING_LITERAL(TMP4451, "$1.push($2)", 11);
STRING_LITERAL(TMP4452, "[$1].concat(", 12);
STRING_LITERAL(TMP4453, "($1.slice(0,-1)).concat(", 24);
STRING_LITERAL(TMP4454, "[$1],", 5);
STRING_LITERAL(TMP4455, "$1.slice(0,-1),", 15);
STRING_LITERAL(TMP4456, "[$1, 0])", 8);
STRING_LITERAL(TMP4457, "$1)", 3);
STRING_LITERAL(TMP4458, "eqStrings", 9);
STRING_LITERAL(TMP4459, "eqStrings($1, $2)", 17);
STRING_LITERAL(TMP4460, "cmpStrings", 10);
STRING_LITERAL(TMP4461, "(cmpStrings($1, $2) <= 0)", 25);
STRING_LITERAL(TMP4462, "(cmpStrings($1, $2) < 0)", 24);
STRING_LITERAL(TMP4463, "$1 == null", 10);
STRING_LITERAL(TMP4464, "$1 = $2;$n", 10);
STRING_LITERAL(TMP4465, "($1 ? 1:0)", 10);
STRING_LITERAL(TMP4466, "toBool($#)", 10);
STRING_LITERAL(TMP4467, "genOrd", 6);
STRING_LITERAL(TMP4468, "($1.length-1)", 13);
STRING_LITERAL(TMP4469, "$1.length", 9);
STRING_LITERAL(TMP4470, "($1.length-2)", 13);
STRING_LITERAL(TMP4471, "$1 = addInt($1, $2)", 19);
STRING_LITERAL(TMP4472, "$1 -= $2", 8);
STRING_LITERAL(TMP4473, "$1 = subInt($1, $2)", 19);
STRING_LITERAL(TMP4474, "$1.length = $2+1; $1[$1.length-1] = 0", 37);
STRING_LITERAL(TMP4475, "$1.length = $2", 14);
STRING_LITERAL(TMP4476, "SetCard", 7);
STRING_LITERAL(TMP4477, "SetCard($1)", 11);
STRING_LITERAL(TMP4478, "SetLt", 5);
STRING_LITERAL(TMP4479, "SetLt($1, $2)", 13);
STRING_LITERAL(TMP4480, "SetLe", 5);
STRING_LITERAL(TMP4481, "SetLe($1, $2)", 13);
STRING_LITERAL(TMP4482, "SetEq", 5);
STRING_LITERAL(TMP4483, "SetEq($1, $2)", 13);
STRING_LITERAL(TMP4484, "SetMul", 6);
STRING_LITERAL(TMP4485, "SetMul($1, $2)", 14);
STRING_LITERAL(TMP4486, "SetPlus", 7);
STRING_LITERAL(TMP4487, "SetPlus($1, $2)", 15);
STRING_LITERAL(TMP4488, "SetMinus", 8);
STRING_LITERAL(TMP4489, "SetMinus($1, $2)", 16);
STRING_LITERAL(TMP4490, "$1[$2] = true", 13);
STRING_LITERAL(TMP4491, "delete $1[$2]", 13);
STRING_LITERAL(TMP4492, "($1[$2] != undefined)", 21);
STRING_LITERAL(TMP4493, "$1 = new Array($2); for (var i=0;i<$2;++i) {$1[i]=$3;}", 54);
STRING_LITERAL(TMP4494, "($1.m_type == $2)", 17);
STRING_LITERAL(TMP4495, "isObj", 5);
STRING_LITERAL(TMP4496, "isObj($1.m_type, $2)", 20);
STRING_LITERAL(TMP4497, "genericReset", 12);
STRING_LITERAL(TMP4498, "$1 = genericReset($1, $2);$n", 28);
STRING_LITERAL(TMP4499, "rawEcho", 7);
STRING_LITERAL(TMP4500, "rawEcho(", 8);
NIM_CONST TY84945 TMP4501 = {((NimStringDesc*) &TMP4257),
1080}
;
STRING_LITERAL(TMP4502, ")", 1);
STRING_LITERAL(TMP4503, "($1.slice($2))", 14);
STRING_LITERAL(TMP4504, "($1.slice($2, ($3)+1).concat(0))", 32);
STRING_LITERAL(TMP4505, "mnewString", 10);
STRING_LITERAL(TMP4506, "mnewString($1)", 14);
STRING_LITERAL(TMP4507, "mnewString(0)", 13);
STRING_LITERAL(TMP4508, "(", 1);
STRING_LITERAL(TMP4509, "cannot invoke with infix syntax", 31);
STRING_LITERAL(TMP4510, "$1[$2]", 6);
STRING_LITERAL(TMP4511, ".", 1);
STRING_LITERAL(TMP4512, "SetConstr", 9);
STRING_LITERAL(TMP4513, "SetConstr(", 10);
STRING_LITERAL(TMP4514, "Field$#: $#", 11);
NIM_CONST TY84945 TMP4515 = {((NimStringDesc*) &TMP4257),
1440}
;
STRING_LITERAL(TMP4516, "$#: $#", 6);
STRING_LITERAL(TMP4517, "$# = $#", 7);
STRING_LITERAL(TMP4518, "(($1)? 1:0)", 11);
STRING_LITERAL(TMP4519, "genAddr: 3", 10);
STRING_LITERAL(TMP4520, "genAddr: 2", 10);
STRING_LITERAL(TMP4521, "Field", 5);
STRING_LITERAL(TMP4522, "genFieldPosition", 16);
STRING_LITERAL(TMP4523, "genFieldAddr", 12);
NIM_CONST TY84945 TMP4524 = {((NimStringDesc*) &TMP4257),
874}
;
NIM_CONST TY84945 TMP4525 = {((NimStringDesc*) &TMP4257),
904}
;
STRING_LITERAL(TMP4526, "chckIndx", 8);
STRING_LITERAL(TMP4527, "chckIndx($1, $2, $3.length)-$2", 30);
STRING_LITERAL(TMP4528, "($1)-$2", 7);
STRING_LITERAL(TMP4529, "expr(nkBracketExpr, ", 20);
STRING_LITERAL(TMP4530, "genAddr", 7);
STRING_LITERAL(TMP4531, "genDeref", 8);
STRING_LITERAL(TMP4532, "genArrayAccess", 14);
STRING_LITERAL(TMP4533, "$1.Field$2", 10);
STRING_LITERAL(TMP4534, "$1.$2", 5);
STRING_LITERAL(TMP4535, "chckRange", 9);
STRING_LITERAL(TMP4536, "chckRange($1, $2, $3)", 21);
STRING_LITERAL(TMP4537, "chckRangeF", 10);
STRING_LITERAL(TMP4538, "chckRange64", 11);
STRING_LITERAL(TMP4539, "convStrToCStr", 13);
STRING_LITERAL(TMP4540, "toJSStr", 7);
STRING_LITERAL(TMP4541, "toJSStr($1)", 11);
STRING_LITERAL(TMP4542, "convCStrToStr", 13);
STRING_LITERAL(TMP4543, "genBlock", 8);
STRING_LITERAL(TMP4544, "L$1: do {$n", 11);
STRING_LITERAL(TMP4545, "} while(false);$n", 17);
STRING_LITERAL(TMP4546, "$n::L$#::$n", 11);
STRING_LITERAL(TMP4547, "else {$n", 8);
STRING_LITERAL(TMP4548, "else$n", 6);
STRING_LITERAL(TMP4549, "if ($1) {$n", 11);
STRING_LITERAL(TMP4550, "if $# then$n", 12);
STRING_LITERAL(TMP4551, "$1;$n", 5);
STRING_LITERAL(TMP4552, "}$n", 3);
STRING_LITERAL(TMP4553, "end$n", 5);
NIM_CONST TY84945 TMP4554 = {((NimStringDesc*) &TMP4257),
511}
;
STRING_LITERAL(TMP4555, "// line $2 \"$1\"$n", 17);
STRING_LITERAL(TMP4556, "-- line $2 \"$1\"$n", 17);
STRING_LITERAL(TMP4557, "endb", 4);
STRING_LITERAL(TMP4558, "endb($1);$n", 11);
STRING_LITERAL(TMP4559, "F.line = $1;$n", 14);
STRING_LITERAL(TMP4560, "L$1: while (true) {$n", 21);
STRING_LITERAL(TMP4561, "while true do$n", 15);
STRING_LITERAL(TMP4562, "if (!$1) break L$2;$n", 21);
STRING_LITERAL(TMP4563, "if not $1 then goto ::L$2:: end;$n", 34);
STRING_LITERAL(TMP4564, "end ::L$#::$n", 13);
STRING_LITERAL(TMP4565, "for statement not eliminated", 28);
STRING_LITERAL(TMP4566, "switch (toJSStr($1)) {$n", 24);
STRING_LITERAL(TMP4567, "switch ($1) {$n", 15);
STRING_LITERAL(TMP4568, "case $1: ", 9);
STRING_LITERAL(TMP4569, "jsgen.genCaseStmt: 2", 20);
STRING_LITERAL(TMP4570, "$nbreak;$n", 10);
STRING_LITERAL(TMP4571, "default: $n", 11);
STRING_LITERAL(TMP4572, "break;$n", 8);
STRING_LITERAL(TMP4573, "jsgen.genCaseStmt", 17);
STRING_LITERAL(TMP4574, "eqStr", 5);
STRING_LITERAL(TMP4575, "$nelsif ", 8);
STRING_LITERAL(TMP4576, "if ", 3);
STRING_LITERAL(TMP4577, " or ", 4);
STRING_LITERAL(TMP4578, "$1 >= $2 and $1 <= $3", 21);
STRING_LITERAL(TMP4579, "eqStr($1, $2)", 13);
STRING_LITERAL(TMP4580, "$1 == $2", 8);
STRING_LITERAL(TMP4581, " then$n", 7);
STRING_LITERAL(TMP4582, "$nend$n", 7);
STRING_LITERAL(TMP4583, "genReturnStmt", 13);
STRING_LITERAL(TMP4584, "break BeforeRet;$n", 18);
STRING_LITERAL(TMP4585, "goto ::BeforeRet::;$n", 21);
STRING_LITERAL(TMP4586, "no loop to break", 16);
STRING_LITERAL(TMP4587, "break L$1;$n", 12);
STRING_LITERAL(TMP4588, "goto ::L$1::;$n", 15);
STRING_LITERAL(TMP4589, "$1 = nimCopy($2, $3);$n", 23);
STRING_LITERAL(TMP4590, "genAsgn", 7);
STRING_LITERAL(TMP4591, "$1 = $2; $3 = $4;$n", 19);
STRING_LITERAL(TMP4592, "jsgen: genAsmStmt()", 19);
STRING_LITERAL(TMP4593, "var $1 = {prev: excHandler, exc: null};$nexcHandler = $1;$n", 59);
STRING_LITERAL(TMP4594, "local $1 = pcall(", 17);
STRING_LITERAL(TMP4595, "framePtr = F;", 13);
STRING_LITERAL(TMP4596, "try {$n", 7);
STRING_LITERAL(TMP4597, "function()$n", 12);
STRING_LITERAL(TMP4598, "} catch (EXC) {$n  lastJSError = EXC;$n", 39);
STRING_LITERAL(TMP4599, "end)$n", 6);
STRING_LITERAL(TMP4600, "genTryStmt", 10);
STRING_LITERAL(TMP4601, "||", 2);
STRING_LITERAL(TMP4602, "isObj($1.exc.m_type, $2)", 24);
STRING_LITERAL(TMP4603, "else ", 5);
STRING_LITERAL(TMP4604, "if ($1.exc && ($2)) {$n", 23);
STRING_LITERAL(TMP4605, "if $1.exc and ($2) then$n", 25);
STRING_LITERAL(TMP4606, "} finally {", 11);
STRING_LITERAL(TMP4607, "excHandler = excHandler.prev;", 29);
STRING_LITERAL(TMP4608, "raiseException", 14);
STRING_LITERAL(TMP4609, "raiseException($1, $2);$n", 25);
STRING_LITERAL(TMP4610, "reraiseException", 16);
STRING_LITERAL(TMP4611, "reraiseException();", 19);
STRING_LITERAL(TMP4612, "first class iterators not implemented", 37);
STRING_LITERAL(TMP4613, "gen: unknown node type: ", 24);
STRING_LITERAL(TMP4614, "$#;$n", 5);
STRING_LITERAL(TMP4615, "framePtr = framePtr.prev;$n", 27);
STRING_LITERAL(TMP4616, "js", 2);
STRING_LITERAL(TMP4617, "/* 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(TMP4618, "0.10.2", 6);
tglobals595027* globals_605952;
extern TNimType NTI286005; /* TPassContext */
TNimType NTI595015; /* TJSGen */
extern TNimType NTI225814; /* PSym */
TNimType NTI595017; /* BModule */
extern tgcheap47216 gch_47244;
TNimType NTI595027; /* TGlobals */
extern TNimType NTI177007; /* PRope */
extern TNimType NTI225818; /* TSymSeq */
extern TNimType NTI222056; /* IntSet */
TNimType NTI595029; /* PGlobals */
extern NI gerrorcounter_196303;
TNimType NTI595033; /* TProc */
extern TNimType NTI225808; /* PNode */
extern TNimType NTI169016; /* TOptions */
extern TNimType NTI138; /* bool */
TNimType NTI595013; /* TTarget */
extern TNimType NTI108; /* int */
TNimType NTI595025; /* TBlock */
TNimType NTI595071; /* seq[TBlock] */
TNimType NTI595031; /* PProc */
extern NimStringDesc* tnl_174613;
extern TNimType NTI225258; /* TTypeKind */
extern TNimType NTI149; /* string */
TNimType NTI596657; /* TMagicFrmt */
TNimType NTI596659; /* TMagicOps */
extern TNimType NTI225029; /* TNodeKind */
extern NimStringDesc* outfile_169124;
N_NIMCALL(void, TMP4229)(void* p, NI op) {
	tjsgen595015* a;
	a = (tjsgen595015*)p;
	nimGCvisit((void*)(*a).Module, op);
}

static N_INLINE(tcell45133*, usrtocell_48846)(void* usr) {
	tcell45133* result;
	result = 0;
	result = ((tcell45133*) ((NI)((NU64)(((NI) (usr))) - (NU64)(((NI)sizeof(tcell45133))))));
	return result;
}

static N_INLINE(void, rtladdzct_50404)(tcell45133* c) {
	addzct_48817((&gch_47244.Zct), c);
}

static N_INLINE(void, asgnRefNoCycle)(void** dest, void* src) {
	{
		tcell45133* c;
		if (!!((src == NIM_NIL))) goto LA3;
		c = usrtocell_48846(src);
		(*c).Refcount += 8;
	}
	LA3: ;
	{
		tcell45133* c;
		if (!!(((*dest) == NIM_NIL))) goto LA7;
		c = usrtocell_48846((*dest));
		{
			(*c).Refcount -= 8;
			if (!((NU64)((*c).Refcount) < (NU64)(8))) goto LA11;
			rtladdzct_50404(c);
		}
		LA11: ;
	}
	LA7: ;
	(*dest) = src;
}
N_NIMCALL(void, TMP4231)(void* p, NI op) {
	tglobals595027* a;
	a = (tglobals595027*)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) {
	tcell45133* c;
	c = usrtocell_48846(p);
	{
		(*c).Refcount -= 8;
		if (!((NU64)((*c).Refcount) < (NU64)(8))) goto LA3;
		rtladdzct_50404(c);
	}
	LA3: ;
}

N_NIMCALL(tglobals595027*, newglobals_595084)(void) {
	tglobals595027* result;
	result = 0;
	result = (tglobals595027*) newObj((&NTI595029), sizeof(tglobals595027));
	if ((*result).Forwarded) nimGCunrefNoCycle((*result).Forwarded);
	(*result).Forwarded = (tsymseq225818*) newSeqRC1((&NTI225818), 0);
	initintset_222950((&(*result).Generatedsyms));
	initintset_222950((&(*result).Typeinfogenerated));
	return result;
}

N_NIMCALL(tjsgen595015*, newmodule_605957)(tsym225846* module) {
	tjsgen595015* result;
	result = 0;
	result = (tjsgen595015*) newObj((&NTI595017), sizeof(tjsgen595015));
	(*result).Sup.Sup.m_type = (&NTI595015);
	asgnRefNoCycle((void**) (&(*result).Module), module);
	{
		if (!(globals_605952 == NIM_NIL)) goto LA3;
		asgnRefNoCycle((void**) (&globals_605952), newglobals_595084());
	}
	LA3: ;
	return result;
}

N_NIMCALL(tpasscontext286005*, myopen_606238)(tsym225846* s) {
	tpasscontext286005* result;
	tjsgen595015* LOC1;
	result = 0;
	LOC1 = 0;
	LOC1 = newmodule_605957(s);
	result = &LOC1->Sup;
	return result;
}

N_NIMCALL(tpasscontext286005*, myopencached_606227)(tsym225846* s, trodreader276030* rd) {
	tpasscontext286005* result;
	result = 0;
	internalerror_198006(((NimStringDesc*) &TMP4232));
	result = NIM_NIL;
	return result;
}

static N_INLINE(NIM_BOOL, skipcodegen_286083)(tnode225816* n) {
	NIM_BOOL result;
	result = 0;
	result = (0 < gerrorcounter_196303);
	return result;
}
N_NIMCALL(void, TMP4239)(void* p, NI op) {
	TY595071* a;
	NI LOC1;
	a = (TY595071*)p;
	LOC1 = 0;
	for (LOC1 = 0; LOC1 < a->Sup.len; LOC1++) {
	}
}
N_NIMCALL(void, TMP4240)(void* p, NI op) {
	tproc595033* a;
	a = (tproc595033*)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_48867)(tcell45133* c) {
	NIM_BOOL result;
	result = 0;
	result = !((((*(*c).Typ).flags &(1<<((((NU8) 1))&7)))!=0));
	return result;
}

static N_INLINE(void, rtladdcycleroot_49629)(tcell45133* c) {
	{
		if (!!((((NI) ((NI)((*c).Refcount & 3))) == 3))) goto LA3;
		(*c).Refcount = (NI)((NI)((*c).Refcount & -4) | 3);
		incl_45871((&gch_47244.Cycleroots), c);
	}
	LA3: ;
}

static N_INLINE(void, incref_51225)(tcell45133* c) {
	(*c).Refcount = (NI)((NU64)((*c).Refcount) + (NU64)(8));
	{
		NIM_BOOL LOC3;
		LOC3 = 0;
		LOC3 = canbecycleroot_48867(c);
		if (!LOC3) goto LA4;
		rtladdcycleroot_49629(c);
	}
	LA4: ;
}

static N_INLINE(void, decref_50804)(tcell45133* c) {
	{
		(*c).Refcount -= 8;
		if (!((NU64)((*c).Refcount) < (NU64)(8))) goto LA3;
		rtladdzct_50404(c);
	}
	goto LA1;
	LA3: ;
	{
		NIM_BOOL LOC6;
		LOC6 = 0;
		LOC6 = canbecycleroot_48867(c);
		if (!LOC6) goto LA7;
		rtladdcycleroot_49629(c);
	}
	goto LA1;
	LA7: ;
	LA1: ;
}

static N_INLINE(void, asgnRef)(void** dest, void* src) {
	{
		tcell45133* LOC5;
		if (!!((src == NIM_NIL))) goto LA3;
		LOC5 = 0;
		LOC5 = usrtocell_48846(src);
		incref_51225(LOC5);
	}
	LA3: ;
	{
		tcell45133* LOC10;
		if (!!(((*dest) == NIM_NIL))) goto LA8;
		LOC10 = 0;
		LOC10 = usrtocell_48846((*dest));
		decref_50804(LOC10);
	}
	LA8: ;
	(*dest) = src;
}

N_NIMCALL(tproc595033*, newproc_595207)(tglobals595027* globals, tjsgen595015* module, tnode225816* procdef, NU32 options) {
	tproc595033* result;
	tproc595033* LOC1;
	result = 0;
	LOC1 = 0;
	LOC1 = (tproc595033*) newObj((&NTI595031), sizeof(tproc595033));
	if ((*LOC1).Blocks) nimGCunrefNoCycle((*LOC1).Blocks);
	(*LOC1).Blocks = (TY595071*) newSeqRC1((&NTI595071), 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(trope177009*, makejsstring_595344)(NimStringDesc* s) {
	trope177009* result;
	NimStringDesc* LOC1;
	result = 0;
	LOC1 = 0;
	LOC1 = nsuEscape(s, ((NimStringDesc*) &TMP4242), ((NimStringDesc*) &TMP4242));
	result = torope_177076(LOC1);
	return result;
}

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

static N_INLINE(NI, sonslen_226255)(ttype225852* 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(ttype225852*, lastson_226267)(ttype225852* n) {
	ttype225852* result;
	NI LOC1;
	result = 0;
	LOC1 = 0;
	LOC1 = sonslen_226255(n);
	result = (*n).Sons->data[(NI64)(LOC1 - 1)];
	return result;
}

N_NIMCALL(NU8, maptype_595291)(ttype225852* typ) {
	NU8 result;
	ttype225852* t;
	result = 0;
	t = skiptypes_230245(typ, IL64(211106232576256));
	switch ((*t).Kind) {
	case ((NU8) 23):
	case ((NU8) 22):
	case ((NU8) 21):
	{
		{
			ttype225852* LOC4;
			ttype225852* LOC5;
			LOC4 = 0;
			LOC4 = lastson_226267(t);
			LOC5 = 0;
			LOC5 = skiptypes_230245(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_595291((*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(trope177009*, manglename_595315)(tsym225846* s) {
	trope177009* result;
	result = 0;
	result = (*s).Loc.R;
	{
		NimStringDesc* LOC5;
		trope177009* LOC6;
		if (!(result == NIM_NIL)) goto LA3;
		LOC5 = 0;
		LOC5 = mangle_548763((*(*s).Name).S);
		result = torope_177076(LOC5);
		app_177060(&result, ((NimStringDesc*) &TMP4250));
		LOC6 = 0;
		LOC6 = torope_177082(((NI64) ((*s).Sup.Id)));
		app_177052(&result, LOC6);
		asgnRefNoCycle((void**) (&(*s).Loc.R), result);
	}
	LA3: ;
	return result;
}

N_NIMCALL(trope177009*, puttoseq_602424)(NimStringDesc* s, NIM_BOOL indirect) {
	trope177009* result;
	result = 0;
	result = torope_177076(s);
	{
		TY177515 LOC5;
		if (!indirect) goto LA3;
		memset((void*)LOC5, 0, sizeof(LOC5));
		LOC5[0] = result;
		result = ropef_177107(((NimStringDesc*) &TMP4251), LOC5, 1);
	}
	LA3: ;
	return result;
}

static N_INLINE(NI, sonslen_226249)(tnode225816* 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_273466)(ttype225852* t) {
	NIM_BOOL result;
	result = 0;
	result = ((IL64(576460752303423744) &(IL64(1)<<(((*t).Kind)&IL64(63))))!=0);
	return result;
}

N_NIMCALL(trope177009*, generateheader_600148)(tproc595033* p, ttype225852* typ) {
	trope177009* result;
	result = 0;
	result = NIM_NIL;
	{
		NI i_600165;
		NI HEX3Atmp_600446;
		NI LOC2;
		NI res_600449;
		i_600165 = 0;
		HEX3Atmp_600446 = 0;
		LOC2 = 0;
		LOC2 = sonslen_226249((*typ).N);
		HEX3Atmp_600446 = (NI64)(LOC2 - 1);
		res_600449 = 1;
		{
			while (1) {
				if (!(res_600449 <= HEX3Atmp_600446)) goto LA4;
				i_600165 = res_600449;
				{
					tsym225846* param;
					trope177009* name;
					{
						if (!!((result == NIM_NIL))) goto LA8;
						app_177060(&result, ((NimStringDesc*) &TMP4258));
					}
					LA8: ;
					param = (*(*(*typ).N).kindU.S6.Sons->data[i_600165]).kindU.S4.Sym;
					{
						NIM_BOOL LOC12;
						LOC12 = 0;
						LOC12 = iscompiletimeonly_273466((*param).Typ);
						if (!LOC12) goto LA13;
						goto LA5;
					}
					LA13: ;
					name = manglename_595315(param);
					app_177052(&result, name);
					{
						NU8 LOC17;
						LOC17 = 0;
						LOC17 = maptype_595291((*param).Typ);
						if (!(LOC17 == ((NU8) 8))) goto LA18;
						app_177060(&result, ((NimStringDesc*) &TMP4258));
						app_177052(&result, name);
						app_177060(&result, ((NimStringDesc*) &TMP4247));
					}
					LA18: ;
				} LA5: ;
				res_600449 += 1;
			} LA4: ;
		}
	}
	return result;
}

N_NIMCALL(NIM_BOOL, isindirect_602833)(tsym225846* 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_595291((*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[((NI64)((*dest).Sup.len + 1))- 0] = 0;
	(*dest).Sup.len += 1;
}

N_NIMCALL(trope177009*, genprocbody_605203)(tproc595033* p, tsym225846* prc) {
	trope177009* result;
	result = 0;
	{
		NimStringDesc* LOC5;
		NimStringDesc* LOC6;
		TY588896 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*) &TMP4264));
		}
		goto LA7;
		LA9: ;
		{
			LOC6 = copyString(((NimStringDesc*) &TMP4265));
		}
		LA7: ;
		LOC5 = rawNewString(LOC6->Sup.len + 15);
appendString(LOC5, LOC6);
appendString(LOC5, ((NimStringDesc*) &TMP4266));
		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_595344(LOC13);
		LOC14 = 0;
		LOC14 = tofilename_197025((*prc).Info.Fileindex);
		LOC12[1] = makejsstring_595344(LOC14);
		result = ropef_177107(LOC5, LOC12, 2);
	}
	goto LA1;
	LA3: ;
	{
		result = NIM_NIL;
	}
	LA1: ;
	{
		NimStringDesc* LOC20;
		TY177515 LOC26;
		if (!(*p).Beforeretneeded) goto LA18;
		LOC20 = 0;
		{
			if (!((*p).Target == ((NU8) 0))) goto LA23;
			LOC20 = copyString(((NimStringDesc*) &TMP4267));
		}
		goto LA21;
		LA23: ;
		{
			LOC20 = copyString(((NimStringDesc*) &TMP4268));
		}
		LA21: ;
		memset((void*)LOC26, 0, sizeof(LOC26));
		LOC26[0] = (*p).Body;
		appf_177115(&result, LOC20, LOC26, 1);
	}
	goto LA16;
	LA18: ;
	{
		app_177052(&result, (*p).Body);
	}
	LA16: ;
	{
		NIM_BOOL LOC30;
		TY177515 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_177107(((NimStringDesc*) &TMP4269), LOC34, 1);
	}
	LA32: ;
	{
		NimStringDesc* LOC39;
		if (!(((*prc).Options &(1<<((((NU8) 15))&31)))!=0)) goto LA37;
		LOC39 = 0;
		LOC39 = rawNewString(tnl_174613->Sup.len + 25);
appendString(LOC39, ((NimStringDesc*) &TMP4270));
appendString(LOC39, tnl_174613);
		app_177060(&result, LOC39);
	}
	LA37: ;
	return result;
}

N_NIMCALL(trope177009*, genproc_596154)(tproc595033* oldproc, tsym225846* prc) {
	trope177009* result;
	tsym225846* resultsym;
	trope177009* name;
	trope177009* returnstmt;
	trope177009* resultasgn;
	trope177009* header;
	tcompres595023 a;
	tproc595033* p;
	tnode225816* LOC16;
	NimStringDesc* LOC17;
	TY558098 LOC23;
	result = 0;
	resultsym = 0;
	name = 0;
	returnstmt = 0;
	resultasgn = 0;
	header = 0;
	memset((void*)(&a), 0, sizeof(a));
	p = newproc_595207((*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_595315(prc);
	header = generateheader_600148(p, (*prc).Typ);
	{
		NIM_BOOL LOC3;
		NimStringDesc* LOC7;
		TY588896 LOC13;
		NIM_BOOL LOC14;
		TY177515 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*) &TMP4259));
		}
		goto LA8;
		LA10: ;
		{
			LOC7 = copyString(((NimStringDesc*) &TMP4260));
		}
		LA8: ;
		memset((void*)LOC13, 0, sizeof(LOC13));
		LOC13[0] = manglename_595315(resultsym);
		LOC14 = 0;
		LOC14 = isindirect_602833(resultsym);
		LOC13[1] = createvar_602439(p, (*resultsym).Typ, LOC14);
		resultasgn = ropef_177107(LOC7, LOC13, 2);
		gen_596138(p, (*(*prc).Ast).kindU.S6.Sons->data[7], (&a));
		memset((void*)LOC15, 0, sizeof(LOC15));
		LOC15[0] = a.Res;
		returnstmt = ropef_177107(((NimStringDesc*) &TMP4261), LOC15, 1);
	}
	LA5: ;
	LOC16 = 0;
	LOC16 = getbody_279269(prc);
	genstmt_596147(p, LOC16);
	LOC17 = 0;
	{
		if (!((*p).Target == ((NU8) 0))) goto LA20;
		LOC17 = copyString(((NimStringDesc*) &TMP4262));
	}
	goto LA18;
	LA20: ;
	{
		LOC17 = copyString(((NimStringDesc*) &TMP4263));
	}
	LA18: ;
	memset((void*)LOC23, 0, sizeof(LOC23));
	LOC23[0] = name;
	LOC23[1] = header;
	LOC23[2] = (*p).Locals;
	LOC23[3] = resultasgn;
	LOC23[4] = genprocbody_605203(p, prc);
	LOC23[5] = returnstmt;
	result = ropef_177107(LOC17, LOC23, 6);
	return result;
}

N_NIMCALL(void, usemagic_596168)(tproc595033* p, NimStringDesc* name) {
	tsym225846* s;
	{
		if (!(name->Sup.len == 0)) goto LA3;
		goto BeforeRet;
	}
	LA3: ;
	s = getcompilerproc_282036(name);
	{
		if (!!((s == NIM_NIL))) goto LA7;
		{
			NimStringDesc* LOC13;
			if (!!(((77824 &(1<<(((*s).Kind)&31)))!=0))) goto LA11;
			LOC13 = 0;
			LOC13 = HEX24_198126(TMP4256);
			internalerror_198006(LOC13);
		}
		LA11: ;
		{
			NIM_BOOL LOC16;
			trope177009* LOC19;
			LOC16 = 0;
			LOC16 = containsorincl_222916((&(*(*p).G).Generatedsyms), (*s).Sup.Id);
			if (!!(LOC16)) goto LA17;
			LOC19 = 0;
			LOC19 = genproc_596154(p, s);
			app_177052(&(*(*p).G).Code, LOC19);
		}
		LA17: ;
	}
	goto LA5;
	LA7: ;
	{
		{
			if (!!(((*p).Prc == NIM_NIL))) goto LA23;
			globalerror_197934((*(*p).Prc).Info, ((NU16) 64), name);
		}
		goto LA21;
		LA23: ;
		{
			rawmessage_197733(((NU16) 64), name);
		}
		LA21: ;
	}
	LA5: ;
	BeforeRet: ;
}

N_NIMCALL(void, genenuminfo_595877)(tproc595033* p, ttype225852* typ, trope177009* name) {
	NI length;
	trope177009* s;
	trope177009* n;
	TY554018 LOC19;
	TY588896 LOC20;
	TY588896 LOC21;
	length = sonslen_226249((*typ).N);
	s = NIM_NIL;
	{
		NI i_595896;
		NI HEX3Atmp_596036;
		NI res_596039;
		i_595896 = 0;
		HEX3Atmp_596036 = 0;
		HEX3Atmp_596036 = (NI64)(length - 1);
		res_596039 = 0;
		{
			while (1) {
				tsym225846* field;
				NimStringDesc* extname;
				TY554018 LOC18;
				if (!(res_596039 <= HEX3Atmp_596036)) goto LA3;
				i_595896 = res_596039;
				{
					if (!!(((*(*(*typ).N).kindU.S6.Sons->data[i_595896]).Kind == ((NU8) 3)))) goto LA6;
					internalerror_197987((*(*typ).N).Info, ((NimStringDesc*) &TMP4277));
				}
				LA6: ;
				field = (*(*(*typ).N).kindU.S6.Sons->data[i_595896]).kindU.S4.Sym;
				{
					NimStringDesc* LOC12;
					if (!(0 < i_595896)) goto LA10;
					LOC12 = 0;
					LOC12 = rawNewString(tnl_174613->Sup.len + 2);
appendString(LOC12, ((NimStringDesc*) &TMP4258));
appendString(LOC12, tnl_174613);
					app_177060(&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_177082(((NI64) ((*field).Position)));
				LOC18[1] = name;
				LOC18[2] = makejsstring_595344(extname);
				appf_177115(&s, ((NimStringDesc*) &TMP4278), LOC18, 3);
				res_596039 += 1;
			} LA3: ;
		}
	}
	memset((void*)LOC19, 0, sizeof(LOC19));
	LOC19[0] = torope_177082(((NI64) ((*typ).Sup.Id)));
	LOC19[1] = torope_177082(((NI64) (length)));
	LOC19[2] = s;
	n = ropef_177107(((NimStringDesc*) &TMP4279), LOC19, 3);
	memset((void*)LOC20, 0, sizeof(LOC20));
	LOC20[0] = name;
	LOC20[1] = torope_177082(((NI64) ((*typ).Kind)));
	s = ropef_177107(((NimStringDesc*) &TMP4280), LOC20, 2);
	prepend_177068(&(*(*p).G).Typeinfo, s);
	app_177052(&(*(*p).G).Typeinfo, n);
	memset((void*)LOC21, 0, sizeof(LOC21));
	LOC21[0] = name;
	LOC21[1] = torope_177082(((NI64) ((*typ).Sup.Id)));
	appf_177115(&(*(*p).G).Typeinfo, ((NimStringDesc*) &TMP4281), LOC21, 2);
	{
		TY588896 LOC26;
		if (!!(((*typ).Sons->data[0] == NIM_NIL))) goto LA24;
		memset((void*)LOC26, 0, sizeof(LOC26));
		LOC26[0] = name;
		LOC26[1] = gentypeinfo_595354(p, (*typ).Sons->data[0]);
		appf_177115(&(*(*p).G).Typeinfo, ((NimStringDesc*) &TMP4276), LOC26, 2);
	}
	LA24: ;
}

static N_INLINE(tnode225816*, lastson_226261)(tnode225816* n) {
	tnode225816* result;
	NI LOC1;
	result = 0;
	LOC1 = 0;
	LOC1 = sonslen_226249(n);
	result = (*n).kindU.S6.Sons->data[(NI64)(LOC1 - 1)];
	return result;
}

N_NIMCALL(trope177009*, genobjectfields_595358)(tproc595033* p, ttype225852* typ, tnode225816* n) {
	trope177009* result;
	trope177009* s;
	trope177009* u;
	NI length;
	tsym225846* field;
	tnode225816* b;
	result = 0;
	s = 0;
	u = 0;
	length = 0;
	field = 0;
	b = 0;
	result = NIM_NIL;
	switch ((*n).Kind) {
	case ((NU8) 137):
	{
		length = sonslen_226249(n);
		{
			if (!(length == 1)) goto LA4;
			result = genobjectfields_595358(p, typ, (*n).kindU.S6.Sons->data[0]);
		}
		goto LA2;
		LA4: ;
		{
			TY588896 LOC16;
			s = NIM_NIL;
			{
				NI i_595395;
				NI HEX3Atmp_595677;
				NI res_595680;
				i_595395 = 0;
				HEX3Atmp_595677 = 0;
				HEX3Atmp_595677 = (NI64)(length - 1);
				res_595680 = 0;
				{
					while (1) {
						trope177009* LOC15;
						if (!(res_595680 <= HEX3Atmp_595677)) goto LA9;
						i_595395 = res_595680;
						{
							NimStringDesc* LOC14;
							if (!(0 < i_595395)) goto LA12;
							LOC14 = 0;
							LOC14 = rawNewString(tnl_174613->Sup.len + 2);
appendString(LOC14, ((NimStringDesc*) &TMP4258));
appendString(LOC14, tnl_174613);
							app_177060(&s, LOC14);
						}
						LA12: ;
						LOC15 = 0;
						LOC15 = genobjectfields_595358(p, typ, (*n).kindU.S6.Sons->data[i_595395]);
						app_177052(&s, LOC15);
						res_595680 += 1;
					} LA9: ;
				}
			}
			memset((void*)LOC16, 0, sizeof(LOC16));
			LOC16[0] = torope_177082(((NI64) (length)));
			LOC16[1] = s;
			result = ropef_177107(((NimStringDesc*) &TMP4283), LOC16, 2);
		}
		LA2: ;
	}
	break;
	case ((NU8) 3):
	{
		TY554018 LOC18;
		field = (*n).kindU.S4.Sym;
		s = gentypeinfo_595354(p, (*field).Typ);
		memset((void*)LOC18, 0, sizeof(LOC18));
		LOC18[0] = manglename_595315(field);
		LOC18[1] = s;
		LOC18[2] = makejsstring_595344((*(*field).Name).S);
		result = ropef_177107(((NimStringDesc*) &TMP4284), LOC18, 3);
	}
	break;
	case ((NU8) 138):
	{
		TY557593 LOC61;
		NI64 LOC62;
		length = sonslen_226249(n);
		{
			if (!!(((*(*n).kindU.S6.Sons->data[0]).Kind == ((NU8) 3)))) goto LA22;
			internalerror_197987((*n).Info, ((NimStringDesc*) &TMP4285));
		}
		LA22: ;
		field = (*(*n).kindU.S6.Sons->data[0]).kindU.S4.Sym;
		s = gentypeinfo_595354(p, (*field).Typ);
		{
			NI i_595498;
			NI HEX3Atmp_595689;
			NI res_595692;
			i_595498 = 0;
			HEX3Atmp_595689 = 0;
			HEX3Atmp_595689 = (NI64)(length - 1);
			res_595692 = 1;
			{
				while (1) {
					TY588896 LOC59;
					tnode225816* LOC60;
					if (!(res_595692 <= HEX3Atmp_595689)) goto LA26;
					i_595498 = res_595692;
					b = (*n).kindU.S6.Sons->data[i_595498];
					u = NIM_NIL;
					switch ((*b).Kind) {
					case ((NU8) 85):
					{
						{
							NI LOC30;
							LOC30 = 0;
							LOC30 = sonslen_226249(b);
							if (!(LOC30 < 2)) goto LA31;
							internalerror_197987((*b).Info, ((NimStringDesc*) &TMP4286));
						}
						LA31: ;
						{
							NI j_595526;
							NI HEX3Atmp_595684;
							NI LOC34;
							NI res_595687;
							j_595526 = 0;
							HEX3Atmp_595684 = 0;
							LOC34 = 0;
							LOC34 = sonslen_226249(b);
							HEX3Atmp_595684 = (NI64)(LOC34 - 2);
							res_595687 = 0;
							{
								while (1) {
									if (!(res_595687 <= HEX3Atmp_595684)) goto LA36;
									j_595526 = res_595687;
									{
										if (!!((u == NIM_NIL))) goto LA39;
										app_177060(&u, ((NimStringDesc*) &TMP4258));
									}
									LA39: ;
									{
										TY588896 LOC45;
										NI64 LOC46;
										NI64 LOC47;
										if (!((*(*b).kindU.S6.Sons->data[j_595526]).Kind == ((NU8) 44))) goto LA43;
										memset((void*)LOC45, 0, sizeof(LOC45));
										LOC46 = 0;
										LOC46 = getordvalue_263187((*(*b).kindU.S6.Sons->data[j_595526]).kindU.S6.Sons->data[0]);
										LOC45[0] = torope_177082(LOC46);
										LOC47 = 0;
										LOC47 = getordvalue_263187((*(*b).kindU.S6.Sons->data[j_595526]).kindU.S6.Sons->data[1]);
										LOC45[1] = torope_177082(LOC47);
										appf_177115(&u, ((NimStringDesc*) &TMP4287), LOC45, 2);
									}
									goto LA41;
									LA43: ;
									{
										NI64 LOC49;
										trope177009* LOC50;
										LOC49 = 0;
										LOC49 = getordvalue_263187((*b).kindU.S6.Sons->data[j_595526]);
										LOC50 = 0;
										LOC50 = torope_177082(LOC49);
										app_177052(&u, LOC50);
									}
									LA41: ;
									res_595687 += 1;
								} LA36: ;
							}
						}
					}
					break;
					case ((NU8) 88):
					{
						NI64 LOC52;
						LOC52 = 0;
						LOC52 = lengthord_263016((*field).Typ);
						u = torope_177082(LOC52);
					}
					break;
					default:
					{
						internalerror_197987((*n).Info, ((NimStringDesc*) &TMP4288));
					}
					break;
					}
					{
						NimStringDesc* LOC58;
						if (!!((result == NIM_NIL))) goto LA56;
						LOC58 = 0;
						LOC58 = rawNewString(tnl_174613->Sup.len + 2);
appendString(LOC58, ((NimStringDesc*) &TMP4258));
appendString(LOC58, tnl_174613);
						app_177060(&result, LOC58);
					}
					LA56: ;
					memset((void*)LOC59, 0, sizeof(LOC59));
					LOC59[0] = u;
					LOC60 = 0;
					LOC60 = lastson_226261(b);
					LOC59[1] = genobjectfields_595358(p, typ, LOC60);
					appf_177115(&result, ((NimStringDesc*) &TMP4289), LOC59, 2);
					res_595692 += 1;
				} LA26: ;
			}
		}
		memset((void*)LOC61, 0, sizeof(LOC61));
		LOC61[0] = manglename_595315(field);
		LOC61[1] = s;
		LOC62 = 0;
		LOC62 = lengthord_263016((*field).Typ);
		LOC61[2] = torope_177082(LOC62);
		LOC61[3] = makejsstring_595344((*(*field).Name).S);
		LOC61[4] = result;
		result = ropef_177107(((NimStringDesc*) &TMP4290), LOC61, 5);
	}
	break;
	default:
	{
		internalerror_197987((*n).Info, ((NimStringDesc*) &TMP4285));
	}
	break;
	}
	return result;
}

N_NIMCALL(void, genobjectinfo_595724)(tproc595033* p, ttype225852* typ, trope177009* name) {
	trope177009* s;
	TY588896 LOC1;
	TY588896 LOC2;
	TY588896 LOC3;
	memset((void*)LOC1, 0, sizeof(LOC1));
	LOC1[0] = name;
	LOC1[1] = torope_177082(((NI64) ((*typ).Kind)));
	s = ropef_177107(((NimStringDesc*) &TMP4280), LOC1, 2);
	prepend_177068(&(*(*p).G).Typeinfo, s);
	memset((void*)LOC2, 0, sizeof(LOC2));
	LOC2[0] = torope_177082(((NI64) ((*typ).Sup.Id)));
	LOC2[1] = genobjectfields_595358(p, typ, (*typ).N);
	appf_177115(&(*(*p).G).Typeinfo, ((NimStringDesc*) &TMP4282), LOC2, 2);
	memset((void*)LOC3, 0, sizeof(LOC3));
	LOC3[0] = name;
	LOC3[1] = torope_177082(((NI64) ((*typ).Sup.Id)));
	appf_177115(&(*(*p).G).Typeinfo, ((NimStringDesc*) &TMP4281), LOC3, 2);
	{
		NIM_BOOL LOC6;
		TY588896 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_595354(p, (*typ).Sons->data[0]);
		appf_177115(&(*(*p).G).Typeinfo, ((NimStringDesc*) &TMP4276), LOC10, 2);
	}
	LA8: ;
}

N_NIMCALL(trope177009*, gentuplefields_595787)(tproc595033* p, ttype225852* typ) {
	trope177009* result;
	trope177009* s;
	TY588896 LOC11;
	NI LOC12;
	result = 0;
	s = NIM_NIL;
	{
		NI i_595814;
		NI HEX3Atmp_595828;
		NI LOC2;
		NI res_595831;
		i_595814 = 0;
		HEX3Atmp_595828 = 0;
		LOC2 = 0;
		LOC2 = len_230005(typ);
		HEX3Atmp_595828 = (LOC2 - 1);
		res_595831 = 0;
		{
			while (1) {
				TY588896 LOC10;
				if (!(res_595831 <= HEX3Atmp_595828)) goto LA4;
				i_595814 = res_595831;
				{
					NimStringDesc* LOC9;
					if (!(0 < i_595814)) goto LA7;
					LOC9 = 0;
					LOC9 = rawNewString(tnl_174613->Sup.len + 2);
appendString(LOC9, ((NimStringDesc*) &TMP4258));
appendString(LOC9, tnl_174613);
					app_177060(&s, LOC9);
				}
				LA7: ;
				memset((void*)LOC10, 0, sizeof(LOC10));
				LOC10[0] = torope_177082(((NI64) (i_595814)));
				LOC10[1] = gentypeinfo_595354(p, (*typ).Sons->data[i_595814]);
				appf_177115(&s, ((NimStringDesc*) &TMP4291), LOC10, 2);
				res_595831 += 1;
			} LA4: ;
		}
	}
	memset((void*)LOC11, 0, sizeof(LOC11));
	LOC12 = 0;
	LOC12 = len_230005(typ);
	LOC11[0] = torope_177082(((NI64) (LOC12)));
	LOC11[1] = s;
	result = ropef_177107(((NimStringDesc*) &TMP4283), LOC11, 2);
	return result;
}

N_NIMCALL(void, gentupleinfo_595845)(tproc595033* p, ttype225852* typ, trope177009* name) {
	trope177009* s;
	TY588896 LOC1;
	TY588896 LOC2;
	TY588896 LOC3;
	memset((void*)LOC1, 0, sizeof(LOC1));
	LOC1[0] = name;
	LOC1[1] = torope_177082(((NI64) ((*typ).Kind)));
	s = ropef_177107(((NimStringDesc*) &TMP4280), LOC1, 2);
	prepend_177068(&(*(*p).G).Typeinfo, s);
	memset((void*)LOC2, 0, sizeof(LOC2));
	LOC2[0] = torope_177082(((NI64) ((*typ).Sup.Id)));
	LOC2[1] = gentuplefields_595787(p, typ);
	appf_177115(&(*(*p).G).Typeinfo, ((NimStringDesc*) &TMP4282), LOC2, 2);
	memset((void*)LOC3, 0, sizeof(LOC3));
	LOC3[0] = name;
	LOC3[1] = torope_177082(((NI64) ((*typ).Sup.Id)));
	appf_177115(&(*(*p).G).Typeinfo, ((NimStringDesc*) &TMP4281), LOC3, 2);
}

N_NIMCALL(trope177009*, gentypeinfo_595354)(tproc595033* p, ttype225852* typ) {
	trope177009* result;
	ttype225852* t;
	TY177515 LOC5;
	result = 0;
	t = typ;
	{
		if (!((*t).Kind == ((NU8) 11))) goto LA3;
		t = lastson_226267(t);
	}
	LA3: ;
	memset((void*)LOC5, 0, sizeof(LOC5));
	LOC5[0] = torope_177082(((NI64) ((*t).Sup.Id)));
	result = ropef_177107(((NimStringDesc*) &TMP4274), LOC5, 1);
	{
		NIM_BOOL LOC8;
		LOC8 = 0;
		LOC8 = containsorincl_222916((&(*(*p).G).Typeinfogenerated), (*t).Sup.Id);
		if (!LOC8) goto LA9;
		goto BeforeRet;
	}
	LA9: ;
	switch ((*t).Kind) {
	case ((NU8) 13):
	{
		result = gentypeinfo_595354(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):
	{
		trope177009* s;
		TY588896 LOC13;
		memset((void*)LOC13, 0, sizeof(LOC13));
		LOC13[0] = result;
		LOC13[1] = torope_177082(((NI64) ((*t).Kind)));
		s = ropef_177107(((NimStringDesc*) &TMP4275), LOC13, 2);
		prepend_177068(&(*(*p).G).Typeinfo, s);
	}
	break;
	case ((NU8) 23):
	case ((NU8) 22):
	case ((NU8) 21):
	case ((NU8) 24):
	case ((NU8) 20):
	case ((NU8) 19):
	{
		trope177009* s;
		TY588896 LOC15;
		TY588896 LOC16;
		ttype225852* LOC17;
		memset((void*)LOC15, 0, sizeof(LOC15));
		LOC15[0] = result;
		LOC15[1] = torope_177082(((NI64) ((*t).Kind)));
		s = ropef_177107(((NimStringDesc*) &TMP4275), LOC15, 2);
		prepend_177068(&(*(*p).G).Typeinfo, s);
		memset((void*)LOC16, 0, sizeof(LOC16));
		LOC16[0] = result;
		LOC17 = 0;
		LOC17 = lastson_226267(typ);
		LOC16[1] = gentypeinfo_595354(p, LOC17);
		appf_177115(&(*(*p).G).Typeinfo, ((NimStringDesc*) &TMP4276), LOC16, 2);
	}
	break;
	case ((NU8) 4):
	case ((NU8) 16):
	{
		trope177009* s;
		TY588896 LOC19;
		TY588896 LOC20;
		memset((void*)LOC19, 0, sizeof(LOC19));
		LOC19[0] = result;
		LOC19[1] = torope_177082(((NI64) ((*t).Kind)));
		s = ropef_177107(((NimStringDesc*) &TMP4275), LOC19, 2);
		prepend_177068(&(*(*p).G).Typeinfo, s);
		memset((void*)LOC20, 0, sizeof(LOC20));
		LOC20[0] = result;
		LOC20[1] = gentypeinfo_595354(p, (*typ).Sons->data[1]);
		appf_177115(&(*(*p).G).Typeinfo, ((NimStringDesc*) &TMP4276), LOC20, 2);
	}
	break;
	case ((NU8) 14):
	{
		genenuminfo_595877(p, t, result);
	}
	break;
	case ((NU8) 17):
	{
		genobjectinfo_595724(p, t, result);
	}
	break;
	case ((NU8) 18):
	{
		gentupleinfo_595845(p, t, result);
	}
	break;
	default:
	{
		NimStringDesc* LOC25;
		LOC25 = 0;
		LOC25 = rawNewString(reprEnum((*t).Kind, (&NTI225258))->Sup.len + 13);
appendString(LOC25, ((NimStringDesc*) &TMP4292));
appendString(LOC25, reprEnum((*t).Kind, (&NTI225258)));
appendChar(LOC25, 41);
		internalerror_198006(LOC25);
	}
	break;
	}
	BeforeRet: ;
	return result;
}

N_NIMCALL(trope177009*, createrecordvaraux_602447)(tproc595033* p, tnode225816* rec, NI* c) {
	trope177009* result;
	result = 0;
	result = NIM_NIL;
	switch ((*rec).Kind) {
	case ((NU8) 137):
	{
		{
			NI i_602466;
			NI HEX3Atmp_602571;
			NI LOC3;
			NI res_602574;
			i_602466 = 0;
			HEX3Atmp_602571 = 0;
			LOC3 = 0;
			LOC3 = sonslen_226249(rec);
			HEX3Atmp_602571 = (NI64)(LOC3 - 1);
			res_602574 = 0;
			{
				while (1) {
					trope177009* LOC6;
					if (!(res_602574 <= HEX3Atmp_602571)) goto LA5;
					i_602466 = res_602574;
					LOC6 = 0;
					LOC6 = createrecordvaraux_602447(p, (*rec).kindU.S6.Sons->data[i_602466], c);
					app_177052(&result, LOC6);
					res_602574 += 1;
				} LA5: ;
			}
		}
	}
	break;
	case ((NU8) 138):
	{
		trope177009* LOC8;
		LOC8 = 0;
		LOC8 = createrecordvaraux_602447(p, (*rec).kindU.S6.Sons->data[0], c);
		app_177052(&result, LOC8);
		{
			NI i_602509;
			NI HEX3Atmp_602577;
			NI LOC10;
			NI res_602580;
			i_602509 = 0;
			HEX3Atmp_602577 = 0;
			LOC10 = 0;
			LOC10 = sonslen_226249(rec);
			HEX3Atmp_602577 = (NI64)(LOC10 - 1);
			res_602580 = 1;
			{
				while (1) {
					tnode225816* LOC13;
					trope177009* LOC14;
					if (!(res_602580 <= HEX3Atmp_602577)) goto LA12;
					i_602509 = res_602580;
					LOC13 = 0;
					LOC13 = lastson_226261((*rec).kindU.S6.Sons->data[i_602509]);
					LOC14 = 0;
					LOC14 = createrecordvaraux_602447(p, LOC13, c);
					app_177052(&result, LOC14);
					res_602580 += 1;
				} LA12: ;
			}
		}
	}
	break;
	case ((NU8) 3):
	{
		trope177009* LOC20;
		trope177009* LOC21;
		{
			if (!(0 < (*c))) goto LA18;
			app_177060(&result, ((NimStringDesc*) &TMP4258));
		}
		LA18: ;
		LOC20 = 0;
		LOC20 = manglename_595315((*rec).kindU.S4.Sym);
		app_177052(&result, LOC20);
		app_177060(&result, ((NimStringDesc*) &TMP4301));
		LOC21 = 0;
		LOC21 = createvar_602439(p, (*(*rec).kindU.S4.Sym).Typ, NIM_FALSE);
		app_177052(&result, LOC21);
		(*c) += 1;
	}
	break;
	default:
	{
		internalerror_197987((*rec).Info, ((NimStringDesc*) &TMP4302));
	}
	break;
	}
	return result;
}

N_NIMCALL(trope177009*, createvar_602439)(tproc595033* p, ttype225852* typ, NIM_BOOL indirect) {
	trope177009* result;
	ttype225852* t;
	result = 0;
	t = skiptypes_230245(typ, IL64(211106232576256));
	switch ((*t).Kind) {
	case ((NU8) 31) ... ((NU8) 35):
	case ((NU8) 14):
	case ((NU8) 2):
	{
		result = puttoseq_602424(((NimStringDesc*) &TMP4252), indirect);
	}
	break;
	case ((NU8) 36) ... ((NU8) 39):
	{
		result = puttoseq_602424(((NimStringDesc*) &TMP4253), indirect);
	}
	break;
	case ((NU8) 20):
	case ((NU8) 11):
	{
		ttype225852* LOC4;
		LOC4 = 0;
		LOC4 = lastson_226267(typ);
		result = createvar_602439(p, LOC4, indirect);
	}
	break;
	case ((NU8) 19):
	{
		result = torope_177076(((NimStringDesc*) &TMP4254));
	}
	break;
	case ((NU8) 1):
	{
		result = puttoseq_602424(((NimStringDesc*) &TMP4255), indirect);
	}
	break;
	case ((NU8) 16):
	case ((NU8) 4):
	{
		NI length;
		NI64 LOC8;
		ttype225852* e;
		LOC8 = 0;
		LOC8 = lengthord_263016(t);
		length = ((NI) (LOC8));
		e = elemtype_263656(t);
		{
			TY554018 LOC13;
			if (!(32 < length)) goto LA11;
			usemagic_596168(p, ((NimStringDesc*) &TMP4271));
			usemagic_596168(p, ((NimStringDesc*) &TMP4272));
			memset((void*)LOC13, 0, sizeof(LOC13));
			LOC13[0] = torope_177082(((NI64) (length)));
			LOC13[1] = createvar_602439(p, e, NIM_FALSE);
			LOC13[2] = gentypeinfo_595354(p, e);
			result = ropef_177107(((NimStringDesc*) &TMP4273), LOC13, 3);
		}
		goto LA9;
		LA11: ;
		{
			NI i;
			result = torope_177076(((NimStringDesc*) &TMP4293));
			i = 0;
			{
				while (1) {
					trope177009* LOC21;
					if (!(i < length)) goto LA16;
					{
						if (!(0 < i)) goto LA19;
						app_177060(&result, ((NimStringDesc*) &TMP4258));
					}
					LA19: ;
					LOC21 = 0;
					LOC21 = createvar_602439(p, e, NIM_FALSE);
					app_177052(&result, LOC21);
					i += 1;
				} LA16: ;
			}
			app_177060(&result, ((NimStringDesc*) &TMP4294));
		}
		LA9: ;
	}
	break;
	case ((NU8) 18):
	{
		result = torope_177076(((NimStringDesc*) &TMP4295));
		{
			NI i_602659;
			NI HEX3Atmp_602800;
			NI LOC24;
			NI res_602803;
			i_602659 = 0;
			HEX3Atmp_602800 = 0;
			LOC24 = 0;
			LOC24 = sonslen_226255(t);
			HEX3Atmp_602800 = (LOC24 - 1);
			res_602803 = 0;
			{
				while (1) {
					NimStringDesc* LOC31;
					TY588896 LOC37;
					if (!(res_602803 <= HEX3Atmp_602800)) goto LA26;
					i_602659 = res_602803;
					{
						if (!(0 < i_602659)) goto LA29;
						app_177060(&result, ((NimStringDesc*) &TMP4258));
					}
					LA29: ;
					LOC31 = 0;
					{
						if (!((*p).Target == ((NU8) 0))) goto LA34;
						LOC31 = copyString(((NimStringDesc*) &TMP4296));
					}
					goto LA32;
					LA34: ;
					{
						LOC31 = copyString(((NimStringDesc*) &TMP4297));
					}
					LA32: ;
					memset((void*)LOC37, 0, sizeof(LOC37));
					LOC37[0] = torope_177082(((NI64) (i_602659)));
					LOC37[1] = createvar_602439(p, (*t).Sons->data[i_602659], NIM_FALSE);
					appf_177115(&result, LOC31, LOC37, 2);
					res_602803 += 1;
				} LA26: ;
			}
		}
		app_177060(&result, ((NimStringDesc*) &TMP4298));
	}
	break;
	case ((NU8) 17):
	{
		NI c;
		result = torope_177076(((NimStringDesc*) &TMP4295));
		c = 0;
		{
			NIM_BOOL LOC41;
			NimStringDesc* LOC45;
			TY177515 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*) &TMP4299));
			}
			goto LA46;
			LA48: ;
			{
				LOC45 = copyString(((NimStringDesc*) &TMP4300));
			}
			LA46: ;
			memset((void*)LOC51, 0, sizeof(LOC51));
			LOC51[0] = gentypeinfo_595354(p, t);
			appf_177115(&result, LOC45, LOC51, 1);
		}
		LA43: ;
		{
			while (1) {
				trope177009* LOC54;
				if (!!((t == NIM_NIL))) goto LA53;
				LOC54 = 0;
				LOC54 = createrecordvaraux_602447(p, (*t).N, (&c));
				app_177052(&result, LOC54);
				t = (*t).Sons->data[0];
			} LA53: ;
		}
		app_177060(&result, ((NimStringDesc*) &TMP4298));
	}
	break;
	case ((NU8) 23):
	case ((NU8) 21):
	case ((NU8) 22):
	{
		{
			NU8 LOC58;
			NimStringDesc* LOC61;
			LOC58 = 0;
			LOC58 = maptype_595291(t);
			if (!(LOC58 == ((NU8) 8))) goto LA59;
			LOC61 = 0;
			{
				if (!((*p).Target == ((NU8) 0))) goto LA64;
				LOC61 = copyString(((NimStringDesc*) &TMP4303));
			}
			goto LA62;
			LA64: ;
			{
				LOC61 = copyString(((NimStringDesc*) &TMP4304));
			}
			LA62: ;
			result = puttoseq_602424(LOC61, indirect);
		}
		goto LA56;
		LA59: ;
		{
			NimStringDesc* LOC68;
			LOC68 = 0;
			{
				if (!((*p).Target == ((NU8) 0))) goto LA71;
				LOC68 = copyString(((NimStringDesc*) &TMP4305));
			}
			goto LA69;
			LA71: ;
			{
				LOC68 = copyString(((NimStringDesc*) &TMP4306));
			}
			LA69: ;
			result = puttoseq_602424(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*) &TMP4305));
		}
		goto LA76;
		LA78: ;
		{
			LOC75 = copyString(((NimStringDesc*) &TMP4306));
		}
		LA76: ;
		result = puttoseq_602424(LOC75, indirect);
	}
	break;
	default:
	{
		NimStringDesc* LOC82;
		LOC82 = 0;
		LOC82 = rawNewString(reprEnum((*t).Kind, (&NTI225258))->Sup.len + 11);
appendString(LOC82, ((NimStringDesc*) &TMP4307));
appendString(LOC82, reprEnum((*t).Kind, (&NTI225258)));
		internalerror_198006(LOC82);
		result = NIM_NIL;
	}
	break;
	}
	return result;
}

N_NIMCALL(NIM_BOOL, needsnocopy_600474)(tnode225816* y) {
	NIM_BOOL result;
	NIM_BOOL LOC1;
	ttype225852* LOC3;
	result = 0;
	LOC1 = 0;
	LOC1 = ((TMP4308[(*y).Kind/8] &(1<<((*y).Kind%8)))!=0);
	if (LOC1) goto LA2;
	LOC3 = 0;
	LOC3 = skiptypes_230245((*y).Typ, IL64(211106232576256));
	LOC1 = ((14680064 &(IL64(1)<<(((*LOC3).Kind)&IL64(63))))!=0);
	LA2: ;
	result = LOC1;
	return result;
}

N_NIMCALL(void, genvarinit_602903)(tproc595033* p, tsym225846* v, tnode225816* n) {
	tcompres595023 a;
	trope177009* s;
	memset((void*)(&a), 0, sizeof(a));
	s = 0;
	{
		NimStringDesc* LOC5;
		TY588896 LOC11;
		NIM_BOOL LOC12;
		if (!((*n).Kind == ((NU8) 1))) goto LA3;
		LOC5 = 0;
		{
			if (!((*p).Target == ((NU8) 0))) goto LA8;
			LOC5 = copyString(((NimStringDesc*) &TMP4248));
		}
		goto LA6;
		LA8: ;
		{
			LOC5 = copyString(((NimStringDesc*) &TMP4249));
		}
		LA6: ;
		memset((void*)LOC11, 0, sizeof(LOC11));
		LOC11[0] = manglename_595315(v);
		LOC12 = 0;
		LOC12 = isindirect_602833(v);
		LOC11[1] = createvar_602439(p, (*v).Typ, LOC12);
		appf_177115(&(*p).Body, LOC5, LOC11, 2);
	}
	goto LA1;
	LA3: ;
	{
		trope177009* LOC14;
		NU8 LOC15;
		LOC14 = 0;
		LOC14 = manglename_595315(v);
		gen_596138(p, n, (&a));
		LOC15 = 0;
		LOC15 = maptype_595291((*v).Typ);
		switch (LOC15) {
		case ((NU8) 7):
		{
			{
				NIM_BOOL LOC19;
				LOC19 = 0;
				LOC19 = needsnocopy_600474(n);
				if (!LOC19) goto LA20;
				s = a.Res;
			}
			goto LA17;
			LA20: ;
			{
				TY588896 LOC23;
				usemagic_596168(p, ((NimStringDesc*) &TMP4272));
				memset((void*)LOC23, 0, sizeof(LOC23));
				LOC23[0] = a.Res;
				LOC23[1] = gentypeinfo_595354(p, (*n).Typ);
				s = ropef_177107(((NimStringDesc*) &TMP4309), LOC23, 2);
			}
			LA17: ;
		}
		break;
		case ((NU8) 8):
		{
			{
				if (!!((a.Typ == ((NU8) 8)))) goto LA27;
				internalerror_197987((*n).Info, ((NimStringDesc*) &TMP4310));
			}
			LA27: ;
			{
				NimStringDesc* LOC33;
				TY554018 LOC39;
				if (!!(((32776 & (*v).Flags) == 0))) goto LA31;
				LOC33 = 0;
				{
					if (!((*p).Target == ((NU8) 0))) goto LA36;
					LOC33 = copyString(((NimStringDesc*) &TMP4311));
				}
				goto LA34;
				LA36: ;
				{
					LOC33 = copyString(((NimStringDesc*) &TMP4312));
				}
				LA34: ;
				memset((void*)LOC39, 0, sizeof(LOC39));
				LOC39[0] = (*v).Loc.R;
				LOC39[1] = a.Address;
				LOC39[2] = a.Res;
				appf_177115(&(*p).Body, LOC33, LOC39, 3);
			}
			goto LA29;
			LA31: ;
			{
				NimStringDesc* LOC41;
				TY554018 LOC47;
				LOC41 = 0;
				{
					if (!((*p).Target == ((NU8) 0))) goto LA44;
					LOC41 = copyString(((NimStringDesc*) &TMP4313));
				}
				goto LA42;
				LA44: ;
				{
					LOC41 = copyString(((NimStringDesc*) &TMP4314));
				}
				LA42: ;
				memset((void*)LOC47, 0, sizeof(LOC47));
				LOC47[0] = (*v).Loc.R;
				LOC47[1] = a.Address;
				LOC47[2] = a.Res;
				appf_177115(&(*p).Body, LOC41, LOC47, 3);
			}
			LA29: ;
			goto BeforeRet;
		}
		break;
		default:
		{
			s = a.Res;
		}
		break;
		}
		{
			NIM_BOOL LOC51;
			NimStringDesc* LOC54;
			TY588896 LOC60;
			LOC51 = 0;
			LOC51 = isindirect_602833(v);
			if (!LOC51) goto LA52;
			LOC54 = 0;
			{
				if (!((*p).Target == ((NU8) 0))) goto LA57;
				LOC54 = copyString(((NimStringDesc*) &TMP4315));
			}
			goto LA55;
			LA57: ;
			{
				LOC54 = copyString(((NimStringDesc*) &TMP4316));
			}
			LA55: ;
			memset((void*)LOC60, 0, sizeof(LOC60));
			LOC60[0] = (*v).Loc.R;
			LOC60[1] = s;
			appf_177115(&(*p).Body, LOC54, LOC60, 2);
		}
		goto LA49;
		LA52: ;
		{
			NimStringDesc* LOC62;
			TY588896 LOC68;
			LOC62 = 0;
			{
				if (!((*p).Target == ((NU8) 0))) goto LA65;
				LOC62 = copyString(((NimStringDesc*) &TMP4248));
			}
			goto LA63;
			LA65: ;
			{
				LOC62 = copyString(((NimStringDesc*) &TMP4249));
			}
			LA63: ;
			memset((void*)LOC68, 0, sizeof(LOC68));
			LOC68[0] = (*v).Loc.R;
			LOC68[1] = s;
			appf_177115(&(*p).Body, LOC62, LOC68, 2);
		}
		LA49: ;
	}
	LA1: ;
	BeforeRet: ;
}

N_NIMCALL(void, genconstant_596161)(tproc595033* p, tsym225846* c) {
	{
		NIM_BOOL LOC3;
		NIM_BOOL LOC5;
		trope177009* oldbody;
		LOC3 = 0;
		LOC3 = !((((*c).Loc.Flags &(1<<((((NU8) 3))&7)))!=0));
		if (!(LOC3)) goto LA4;
		LOC5 = 0;
		LOC5 = containsorincl_222916((&(*(*p).G).Generatedsyms), (*c).Sup.Id);
		LOC3 = !(LOC5);
		LA4: ;
		if (!LOC3) goto LA6;
		oldbody = (*p).Body;
		asgnRefNoCycle((void**) (&(*p).Body), NIM_NIL);
		genvarinit_602903(p, c, (*c).Ast);
		app_177052(&(*(*p).G).Code, (*p).Body);
		asgnRefNoCycle((void**) (&(*p).Body), oldbody);
	}
	LA6: ;
}

N_NIMCALL(void, gensym_601663)(tproc595033* p, tnode225816* n, tcompres595023* r) {
	tsym225846* 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*) &TMP4244));
appendString(LOC6, (*(*s).Name).S);
			internalerror_197987((*n).Info, LOC6);
		}
		LA4: ;
		k = maptype_595291((*s).Typ);
		{
			if (!(k == ((NU8) 8))) goto LA9;
			(*r).Typ = ((NU8) 8);
			{
				TY177515 LOC15;
				TY177515 LOC16;
				if (!!(((32776 & (*s).Flags) == 0))) goto LA13;
				memset((void*)LOC15, 0, sizeof(LOC15));
				LOC15[0] = (*s).Loc.R;
				unsureAsgnRef((void**) (&(*r).Address), ropef_177107(((NimStringDesc*) &TMP4245), LOC15, 1));
				memset((void*)LOC16, 0, sizeof(LOC16));
				LOC16[0] = (*s).Loc.R;
				unsureAsgnRef((void**) (&(*r).Res), ropef_177107(((NimStringDesc*) &TMP4246), LOC16, 1));
			}
			goto LA11;
			LA13: ;
			{
				unsureAsgnRef((void**) (&(*r).Address), (*s).Loc.R);
				unsureAsgnRef((void**) (&(*r).Res), con_177031((*s).Loc.R, ((NimStringDesc*) &TMP4247)));
			}
			LA11: ;
		}
		goto LA7;
		LA9: ;
		{
			NIM_BOOL LOC19;
			TY177515 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_177107(((NimStringDesc*) &TMP4245), LOC23, 1));
		}
		goto LA7;
		LA21: ;
		{
			unsureAsgnRef((void**) (&(*r).Res), (*s).Loc.R);
		}
		LA7: ;
	}
	break;
	case ((NU8) 10):
	{
		genconstant_596161(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*) &TMP4244));
appendString(LOC30, (*(*s).Name).S);
			internalerror_197987((*n).Info, LOC30);
		}
		LA28: ;
		unsureAsgnRef((void**) (&(*r).Res), (*s).Loc.R);
	}
	break;
	case ((NU8) 12):
	case ((NU8) 16):
	case ((NU8) 13):
	{
		trope177009* LOC32;
		LOC32 = 0;
		LOC32 = manglename_595315(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;
			tnode225816* LOC44;
			LOC42 = 0;
			LOC42 = ((*s).Kind == ((NU8) 13));
			if (!(LOC42)) goto LA43;
			LOC44 = 0;
			LOC44 = getbody_279269(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 = (tsymseq225818*) incrSeq(&((*(*p).G).Forwarded)->Sup, sizeof(tsym225846*));
			asgnRefNoCycle((void**) (&(*(*p).G).Forwarded->data[(*(*p).G).Forwarded->Sup.len-1]), s);
		}
		goto LA33;
		LA48: ;
		{
			NIM_BOOL LOC51;
			trope177009* newp;
			tproc595033* owner;
			LOC51 = 0;
			LOC51 = containsorincl_222916((&(*(*p).G).Generatedsyms), (*s).Sup.Id);
			if (!!(LOC51)) goto LA52;
			newp = genproc_596154(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_177052(&(*owner).Locals, newp);
			}
			goto LA58;
			LA60: ;
			{
				app_177052(&(*(*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*) &TMP4244));
appendString(LOC68, (*(*s).Name).S);
			internalerror_197987((*n).Info, LOC68);
		}
		LA66: ;
		unsureAsgnRef((void**) (&(*r).Res), (*s).Loc.R);
	}
	break;
	}
	(*r).Kind = ((NU8) 2);
}

static N_INLINE(NIM_BOOL, isemptytype_232991)(ttype225852* t) {
	NIM_BOOL result;
	NIM_BOOL LOC1;
	result = 0;
	LOC1 = 0;
	LOC1 = (t == NIM_NIL);
	if (LOC1) goto LA2;
	LOC1 = ((136 &(IL64(1)<<(((*t).Kind)&IL64(63))))!=0);
	LA2: ;
	result = LOC1;
	return result;
}

static N_INLINE(NI, len_226364)(tnode225816* 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_232963)(tnode225816* 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_596250)(tnode225816* 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;
		{
			tnode225816* c_596285;
			c_596285 = 0;
			{
				NI i_596290;
				NI HEX3Atmp_596292;
				NI LOC7;
				NI res_596294;
				i_596290 = 0;
				HEX3Atmp_596292 = 0;
				LOC7 = 0;
				LOC7 = len_226364(n);
				HEX3Atmp_596292 = (LOC7 - 1);
				res_596294 = 0;
				{
					while (1) {
						if (!(res_596294 <= HEX3Atmp_596292)) goto LA9;
						i_596290 = res_596294;
						c_596285 = (*n).kindU.S6.Sons->data[i_596290];
						{
							NIM_BOOL LOC12;
							LOC12 = 0;
							LOC12 = issimpleexpr_596250(c_596285);
							if (!!(LOC12)) goto LA13;
							result = NIM_FALSE;
							goto BeforeRet;
						}
						LA13: ;
						res_596294 += 1;
					} LA9: ;
				}
			}
		}
		result = NIM_TRUE;
	}
	goto LA1;
	LA3: ;
	{
		NIM_BOOL LOC16;
		LOC16 = 0;
		LOC16 = isatom_232963(n);
		if (!LOC16) goto LA17;
		result = NIM_TRUE;
	}
	goto LA1;
	LA17: ;
	LA1: ;
	BeforeRet: ;
	return result;
}

static N_INLINE(trope177009*, rdloc_595139)(tcompres595023* a) {
	trope177009* result;
	result = 0;
	result = (*a).Res;
	return result;
}

N_NIMCALL(trope177009*, gettemp_596313)(tproc595033* p) {
	trope177009* result;
	TY177515 LOC1;
	NimStringDesc* LOC2;
	TY177515 LOC8;
	result = 0;
	(*p).Unique += 1;
	memset((void*)LOC1, 0, sizeof(LOC1));
	LOC1[0] = torope_177082(((NI64) ((*p).Unique)));
	result = ropef_177107(((NimStringDesc*) &TMP4328), LOC1, 1);
	LOC2 = 0;
	{
		if (!((*p).Target == ((NU8) 0))) goto LA5;
		LOC2 = copyString(((NimStringDesc*) &TMP4329));
	}
	goto LA3;
	LA5: ;
	{
		LOC2 = copyString(((NimStringDesc*) &TMP4330));
	}
	LA3: ;
	memset((void*)LOC8, 0, sizeof(LOC8));
	LOC8[0] = result;
	appf_177115(&(*p).Locals, LOC2, LOC8, 1);
	return result;
}

N_NIMCALL(void, genor_596456)(tproc595033* p, tnode225816* a, tnode225816* b, tcompres595023* r) {
	tcompres595023 x;
	tcompres595023 y;
	memset((void*)(&x), 0, sizeof(x));
	memset((void*)(&y), 0, sizeof(y));
	{
		NIM_BOOL LOC3;
		NimStringDesc* LOC7;
		TY588896 LOC13;
		LOC3 = 0;
		LOC3 = issimpleexpr_596250(a);
		if (!(LOC3)) goto LA4;
		LOC3 = issimpleexpr_596250(b);
		LA4: ;
		if (!LOC3) goto LA5;
		gen_596138(p, a, (&x));
		gen_596138(p, b, (&y));
		(*r).Kind = ((NU8) 1);
		LOC7 = 0;
		{
			if (!((*p).Target == ((NU8) 0))) goto LA10;
			LOC7 = copyString(((NimStringDesc*) &TMP4326));
		}
		goto LA8;
		LA10: ;
		{
			LOC7 = copyString(((NimStringDesc*) &TMP4327));
		}
		LA8: ;
		memset((void*)LOC13, 0, sizeof(LOC13));
		LOC13[0] = rdloc_595139((&x));
		LOC13[1] = rdloc_595139((&y));
		unsureAsgnRef((void**) (&(*r).Res), ropef_177107(LOC7, LOC13, 2));
	}
	goto LA1;
	LA5: ;
	{
		NimStringDesc* LOC15;
		TY588896 LOC21;
		NimStringDesc* LOC22;
		TY588896 LOC28;
		unsureAsgnRef((void**) (&(*r).Res), gettemp_596313(p));
		(*r).Kind = ((NU8) 2);
		gen_596138(p, a, (&x));
		LOC15 = 0;
		{
			if (!((*p).Target == ((NU8) 0))) goto LA18;
			LOC15 = copyString(((NimStringDesc*) &TMP4331));
		}
		goto LA16;
		LA18: ;
		{
			LOC15 = copyString(((NimStringDesc*) &TMP4332));
		}
		LA16: ;
		memset((void*)LOC21, 0, sizeof(LOC21));
		LOC21[0] = rdloc_595139((&x));
		LOC21[1] = rdloc_595139((&(*r)));
		appf_177115(&(*p).Body, LOC15, LOC21, 2);
		gen_596138(p, b, (&y));
		LOC22 = 0;
		{
			if (!((*p).Target == ((NU8) 0))) goto LA25;
			LOC22 = copyString(((NimStringDesc*) &TMP4333));
		}
		goto LA23;
		LA25: ;
		{
			LOC22 = copyString(((NimStringDesc*) &TMP4334));
		}
		LA23: ;
		memset((void*)LOC28, 0, sizeof(LOC28));
		LOC28[0] = rdloc_595139((&y));
		LOC28[1] = rdloc_595139((&(*r)));
		appf_177115(&(*p).Body, LOC22, LOC28, 2);
	}
	LA1: ;
}

N_NIMCALL(void, genand_596353)(tproc595033* p, tnode225816* a, tnode225816* b, tcompres595023* r) {
	tcompres595023 x;
	tcompres595023 y;
	memset((void*)(&x), 0, sizeof(x));
	memset((void*)(&y), 0, sizeof(y));
	{
		NIM_BOOL LOC3;
		NimStringDesc* LOC7;
		TY588896 LOC13;
		LOC3 = 0;
		LOC3 = issimpleexpr_596250(a);
		if (!(LOC3)) goto LA4;
		LOC3 = issimpleexpr_596250(b);
		LA4: ;
		if (!LOC3) goto LA5;
		gen_596138(p, a, (&x));
		gen_596138(p, b, (&y));
		(*r).Kind = ((NU8) 1);
		LOC7 = 0;
		{
			if (!((*p).Target == ((NU8) 0))) goto LA10;
			LOC7 = copyString(((NimStringDesc*) &TMP4335));
		}
		goto LA8;
		LA10: ;
		{
			LOC7 = copyString(((NimStringDesc*) &TMP4336));
		}
		LA8: ;
		memset((void*)LOC13, 0, sizeof(LOC13));
		LOC13[0] = rdloc_595139((&x));
		LOC13[1] = rdloc_595139((&y));
		unsureAsgnRef((void**) (&(*r).Res), ropef_177107(LOC7, LOC13, 2));
	}
	goto LA1;
	LA5: ;
	{
		NimStringDesc* LOC15;
		TY588896 LOC21;
		NimStringDesc* LOC22;
		TY588896 LOC28;
		unsureAsgnRef((void**) (&(*r).Res), gettemp_596313(p));
		(*r).Kind = ((NU8) 2);
		gen_596138(p, a, (&x));
		LOC15 = 0;
		{
			if (!((*p).Target == ((NU8) 0))) goto LA18;
			LOC15 = copyString(((NimStringDesc*) &TMP4337));
		}
		goto LA16;
		LA18: ;
		{
			LOC15 = copyString(((NimStringDesc*) &TMP4338));
		}
		LA16: ;
		memset((void*)LOC21, 0, sizeof(LOC21));
		LOC21[0] = rdloc_595139((&x));
		LOC21[1] = rdloc_595139((&(*r)));
		appf_177115(&(*p).Body, LOC15, LOC21, 2);
		gen_596138(p, b, (&y));
		LOC22 = 0;
		{
			if (!((*p).Target == ((NU8) 0))) goto LA25;
			LOC22 = copyString(((NimStringDesc*) &TMP4333));
		}
		goto LA23;
		LA25: ;
		{
			LOC22 = copyString(((NimStringDesc*) &TMP4334));
		}
		LA23: ;
		memset((void*)LOC28, 0, sizeof(LOC28));
		LOC28[0] = rdloc_595139((&y));
		LOC28[1] = rdloc_595139((&(*r)));
		appf_177115(&(*p).Body, LOC22, LOC28, 2);
	}
	LA1: ;
}

N_NIMCALL(void, arithaux_597211)(tproc595033* p, tnode225816* n, tcompres595023* r, NU16 op, tmagicops596659 ops) {
	tcompres595023 x;
	tcompres595023 y;
	NI i;
	memset((void*)(&x), 0, sizeof(x));
	memset((void*)(&y), 0, sizeof(y));
	i = !((((*p).Options &(1<<((((NU8) 5))&31)))!=0));
	usemagic_596168(p, ops[(op)- 37][(i)- 0]);
	{
		NI LOC3;
		TY588896 LOC6;
		LOC3 = 0;
		LOC3 = sonslen_226249(n);
		if (!(2 < LOC3)) goto LA4;
		gen_596138(p, (*n).kindU.S6.Sons->data[1], (&x));
		gen_596138(p, (*n).kindU.S6.Sons->data[2], (&y));
		memset((void*)LOC6, 0, sizeof(LOC6));
		LOC6[0] = rdloc_595139((&x));
		LOC6[1] = rdloc_595139((&y));
		unsureAsgnRef((void**) (&(*r).Res), ropef_177107(ops[(op)- 37][((NI64)(((NI) (i)) + 2))- 0], LOC6, 2));
	}
	goto LA1;
	LA4: ;
	{
		TY177515 LOC8;
		gen_596138(p, (*n).kindU.S6.Sons->data[1], r);
		memset((void*)LOC8, 0, sizeof(LOC8));
		LOC8[0] = rdloc_595139((&(*r)));
		unsureAsgnRef((void**) (&(*r).Res), ropef_177107(ops[(op)- 37][((NI64)(((NI) (i)) + 2))- 0], LOC8, 1));
	}
	LA1: ;
	(*r).Kind = ((NU8) 1);
}

N_NIMCALL(void, arith_597306)(tproc595033* p, tnode225816* n, tcompres595023* r, NU16 op) {
	tmagicops596659 LOC1;
	memset((void*)LOC1, 0, sizeof(LOC1));
	{
		if (!((*p).Target == ((NU8) 0))) goto LA4;
		genericAssign((void*)LOC1, (void*)jsops_596665, (&NTI596659));
	}
	goto LA2;
	LA4: ;
	{
		genericAssign((void*)LOC1, (void*)luaops_596860, (&NTI596659));
	}
	LA2: ;
	arithaux_597211(p, n, r, op, LOC1);
}

N_NIMCALL(void, unaryexpr_597179)(tproc595033* p, tnode225816* n, tcompres595023* r, NimStringDesc* magic, NimStringDesc* frmt) {
	TY177515 LOC1;
	usemagic_596168(p, magic);
	gen_596138(p, (*n).kindU.S6.Sons->data[1], r);
	memset((void*)LOC1, 0, sizeof(LOC1));
	LOC1[0] = rdloc_595139((&(*r)));
	unsureAsgnRef((void**) (&(*r).Res), ropef_177107(frmt, LOC1, 1));
	(*r).Kind = ((NU8) 1);
}

N_NIMCALL(void, genrepr_603850)(tproc595033* p, tnode225816* n, tcompres595023* r) {
	ttype225852* t;
	t = skiptypes_230245((*(*n).kindU.S6.Sons->data[1]).Typ, IL64(211106242013440));
	switch ((*t).Kind) {
	case ((NU8) 31) ... ((NU8) 44):
	{
		unaryexpr_597179(p, n, r, ((NimStringDesc*) &TMP4340), ((NimStringDesc*) &TMP4436));
	}
	break;
	case ((NU8) 14):
	case ((NU8) 15):
	{
		TY588896 LOC3;
		gen_596138(p, (*n).kindU.S6.Sons->data[1], r);
		usemagic_596168(p, ((NimStringDesc*) &TMP4320));
		(*r).Kind = ((NU8) 1);
		memset((void*)LOC3, 0, sizeof(LOC3));
		LOC3[0] = gentypeinfo_595354(p, t);
		LOC3[1] = (*r).Res;
		unsureAsgnRef((void**) (&(*r).Res), ropef_177107(((NimStringDesc*) &TMP4437), LOC3, 2));
	}
	break;
	default:
	{
		internalerror_197987((*n).Info, ((NimStringDesc*) &TMP4438));
	}
	break;
	}
}

N_NIMCALL(void, genswap_600643)(tproc595033* p, tnode225816* n) {
	tcompres595023 a;
	tcompres595023 b;
	trope177009* tmp;
	TY177515 LOC1;
	NimStringDesc* LOC22;
	TY554018 LOC28;
	memset((void*)(&a), 0, sizeof(a));
	memset((void*)(&b), 0, sizeof(b));
	gen_596138(p, (*n).kindU.S6.Sons->data[1], (&a));
	gen_596138(p, (*n).kindU.S6.Sons->data[2], (&b));
	(*p).Unique += 1;
	memset((void*)LOC1, 0, sizeof(LOC1));
	LOC1[0] = torope_177082(((NI64) ((*p).Unique)));
	tmp = ropef_177107(((NimStringDesc*) &TMP4328), LOC1, 1);
	{
		ttype225852* LOC4;
		NU8 LOC5;
		trope177009* tmp2;
		TY177515 LOC8;
		NimStringDesc* LOC15;
		TY554018 LOC21;
		LOC4 = 0;
		LOC4 = skiptypes_230245((*(*n).kindU.S6.Sons->data[1]).Typ, IL64(211106240964864));
		LOC5 = 0;
		LOC5 = maptype_595291(LOC4);
		if (!(LOC5 == ((NU8) 8))) goto LA6;
		(*p).Unique += 1;
		memset((void*)LOC8, 0, sizeof(LOC8));
		LOC8[0] = torope_177082(((NI64) ((*p).Unique)));
		tmp2 = ropef_177107(((NimStringDesc*) &TMP4328), 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_197987((*n).Info, ((NimStringDesc*) &TMP4439));
		}
		LA13: ;
		LOC15 = 0;
		{
			if (!((*p).Target == ((NU8) 0))) goto LA18;
			LOC15 = copyString(((NimStringDesc*) &TMP4440));
		}
		goto LA16;
		LA18: ;
		{
			LOC15 = copyString(((NimStringDesc*) &TMP4441));
		}
		LA16: ;
		memset((void*)LOC21, 0, sizeof(LOC21));
		LOC21[0] = tmp;
		LOC21[1] = a.Address;
		LOC21[2] = b.Address;
		appf_177115(&(*p).Body, LOC15, LOC21, 3);
		tmp = tmp2;
	}
	LA6: ;
	LOC22 = 0;
	{
		if (!((*p).Target == ((NU8) 0))) goto LA25;
		LOC22 = copyString(((NimStringDesc*) &TMP4442));
	}
	goto LA23;
	LA25: ;
	{
		LOC22 = copyString(((NimStringDesc*) &TMP4443));
	}
	LA23: ;
	memset((void*)LOC28, 0, sizeof(LOC28));
	LOC28[0] = tmp;
	LOC28[1] = a.Res;
	LOC28[2] = b.Res;
	appf_177115(&(*p).Body, LOC22, LOC28, 3);
}

N_NIMCALL(void, binaryexpr_597058)(tproc595033* p, tnode225816* n, tcompres595023* r, NimStringDesc* magic, NimStringDesc* frmt) {
	tcompres595023 x;
	tcompres595023 y;
	TY588896 LOC1;
	memset((void*)(&x), 0, sizeof(x));
	memset((void*)(&y), 0, sizeof(y));
	usemagic_596168(p, magic);
	gen_596138(p, (*n).kindU.S6.Sons->data[1], (&x));
	gen_596138(p, (*n).kindU.S6.Sons->data[2], (&y));
	memset((void*)LOC1, 0, sizeof(LOC1));
	LOC1[0] = rdloc_595139((&x));
	LOC1[1] = rdloc_595139((&y));
	unsureAsgnRef((void**) (&(*r).Res), ropef_177107(frmt, LOC1, 2));
	(*r).Kind = ((NU8) 1);
}

N_NIMCALL(void, genconstrstr_603664)(tproc595033* p, tnode225816* n, tcompres595023* r) {
	tcompres595023 a;
	NI LOC25;
	memset((void*)(&a), 0, sizeof(a));
	gen_596138(p, (*n).kindU.S6.Sons->data[1], (&a));
	(*r).Kind = ((NU8) 1);
	{
		ttype225852* LOC3;
		TY177515 LOC6;
		trope177009* LOC7;
		LOC3 = 0;
		LOC3 = skiptypes_230245((*(*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_177107(((NimStringDesc*) &TMP4452), LOC6, 1);
		app_177052(&(*r).Res, LOC7);
	}
	goto LA1;
	LA4: ;
	{
		TY177515 LOC9;
		trope177009* LOC10;
		memset((void*)LOC9, 0, sizeof(LOC9));
		LOC9[0] = a.Res;
		LOC10 = 0;
		LOC10 = ropef_177107(((NimStringDesc*) &TMP4453), LOC9, 1);
		app_177052(&(*r).Res, LOC10);
	}
	LA1: ;
	{
		NI i_603731;
		NI HEX3Atmp_603830;
		NI LOC12;
		NI res_603833;
		i_603731 = 0;
		HEX3Atmp_603830 = 0;
		LOC12 = 0;
		LOC12 = sonslen_226249(n);
		HEX3Atmp_603830 = (NI64)(LOC12 - 2);
		res_603833 = 2;
		{
			while (1) {
				if (!(res_603833 <= HEX3Atmp_603830)) goto LA14;
				i_603731 = res_603833;
				gen_596138(p, (*n).kindU.S6.Sons->data[i_603731], (&a));
				{
					ttype225852* LOC17;
					TY177515 LOC20;
					trope177009* LOC21;
					LOC17 = 0;
					LOC17 = skiptypes_230245((*(*n).kindU.S6.Sons->data[i_603731]).Typ, IL64(211106242013440));
					if (!((*LOC17).Kind == ((NU8) 2))) goto LA18;
					memset((void*)LOC20, 0, sizeof(LOC20));
					LOC20[0] = a.Res;
					LOC21 = 0;
					LOC21 = ropef_177107(((NimStringDesc*) &TMP4454), LOC20, 1);
					app_177052(&(*r).Res, LOC21);
				}
				goto LA15;
				LA18: ;
				{
					TY177515 LOC23;
					trope177009* LOC24;
					memset((void*)LOC23, 0, sizeof(LOC23));
					LOC23[0] = a.Res;
					LOC24 = 0;
					LOC24 = ropef_177107(((NimStringDesc*) &TMP4455), LOC23, 1);
					app_177052(&(*r).Res, LOC24);
				}
				LA15: ;
				res_603833 += 1;
			} LA14: ;
		}
	}
	LOC25 = 0;
	LOC25 = sonslen_226249(n);
	gen_596138(p, (*n).kindU.S6.Sons->data[(NI64)(LOC25 - 1)], (&a));
	{
		NI LOC28;
		ttype225852* LOC29;
		TY177515 LOC32;
		trope177009* LOC33;
		LOC28 = 0;
		LOC28 = sonslen_226249(n);
		LOC29 = 0;
		LOC29 = skiptypes_230245((*(*n).kindU.S6.Sons->data[(NI64)(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_177107(((NimStringDesc*) &TMP4456), LOC32, 1);
		app_177052(&(*r).Res, LOC33);
	}
	goto LA26;
	LA30: ;
	{
		TY177515 LOC35;
		trope177009* LOC36;
		memset((void*)LOC35, 0, sizeof(LOC35));
		LOC35[0] = a.Res;
		LOC36 = 0;
		LOC36 = ropef_177107(((NimStringDesc*) &TMP4457), LOC35, 1);
		app_177052(&(*r).Res, LOC36);
	}
	LA26: ;
}

N_NIMCALL(void, gennew_603504)(tproc595033* p, tnode225816* n) {
	tcompres595023 a;
	ttype225852* t;
	ttype225852* LOC1;
	TY588896 LOC2;
	memset((void*)(&a), 0, sizeof(a));
	gen_596138(p, (*n).kindU.S6.Sons->data[1], (&a));
	LOC1 = 0;
	LOC1 = skiptypes_230245((*(*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_602439(p, t, NIM_TRUE);
	appf_177115(&(*p).Body, ((NimStringDesc*) &TMP4464), LOC2, 2);
}

N_NIMCALL(void, genord_603615)(tproc595033* p, tnode225816* n, tcompres595023* r) {
	ttype225852* LOC1;
	LOC1 = 0;
	LOC1 = skiptypes_230245((*(*n).kindU.S6.Sons->data[1]).Typ, IL64(211106240964864));
	switch ((*LOC1).Kind) {
	case ((NU8) 14):
	case ((NU8) 31) ... ((NU8) 35):
	case ((NU8) 2):
	{
		gen_596138(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*) &TMP4465));
		}
		goto LA5;
		LA7: ;
		{
			LOC4 = copyString(((NimStringDesc*) &TMP4466));
		}
		LA5: ;
		unaryexpr_597179(p, n, r, ((NimStringDesc*) &TMP4340), LOC4);
	}
	break;
	default:
	{
		internalerror_197987((*n).Info, ((NimStringDesc*) &TMP4467));
	}
	break;
	}
}

N_NIMCALL(void, gennewseq_603551)(tproc595033* p, tnode225816* n) {
	tcompres595023 x;
	tcompres595023 y;
	ttype225852* t;
	ttype225852* LOC1;
	TY554018 LOC2;
	memset((void*)(&x), 0, sizeof(x));
	memset((void*)(&y), 0, sizeof(y));
	gen_596138(p, (*n).kindU.S6.Sons->data[1], (&x));
	gen_596138(p, (*n).kindU.S6.Sons->data[2], (&y));
	LOC1 = 0;
	LOC1 = skiptypes_230245((*(*n).kindU.S6.Sons->data[1]).Typ, IL64(211106240964864));
	t = (*LOC1).Sons->data[0];
	memset((void*)LOC2, 0, sizeof(LOC2));
	LOC2[0] = rdloc_595139((&x));
	LOC2[1] = rdloc_595139((&y));
	LOC2[2] = createvar_602439(p, t, NIM_FALSE);
	appf_177115(&(*p).Body, ((NimStringDesc*) &TMP4493), LOC2, 3);
}

N_NIMCALL(void, genof_603895)(tproc595033* p, tnode225816* n, tcompres595023* r) {
	tcompres595023 x;
	ttype225852* t;
	memset((void*)(&x), 0, sizeof(x));
	t = skiptypes_230245((*(*n).kindU.S6.Sons->data[2]).Typ, IL64(211106248304896));
	gen_596138(p, (*n).kindU.S6.Sons->data[1], (&x));
	{
		TY588896 LOC5;
		if (!(((*t).Flags &(1<<((((NU8) 2))&31)))!=0)) goto LA3;
		memset((void*)LOC5, 0, sizeof(LOC5));
		LOC5[0] = x.Res;
		LOC5[1] = gentypeinfo_595354(p, t);
		unsureAsgnRef((void**) (&(*r).Res), ropef_177107(((NimStringDesc*) &TMP4494), LOC5, 2));
	}
	goto LA1;
	LA3: ;
	{
		TY588896 LOC7;
		usemagic_596168(p, ((NimStringDesc*) &TMP4495));
		memset((void*)LOC7, 0, sizeof(LOC7));
		LOC7[0] = x.Res;
		LOC7[1] = gentypeinfo_595354(p, t);
		unsureAsgnRef((void**) (&(*r).Res), ropef_177107(((NimStringDesc*) &TMP4496), LOC7, 2));
	}
	LA1: ;
	(*r).Kind = ((NU8) 1);
}

N_NIMCALL(void, genreset_603978)(tproc595033* p, tnode225816* n) {
	tcompres595023 x;
	TY588896 LOC1;
	memset((void*)(&x), 0, sizeof(x));
	usemagic_596168(p, ((NimStringDesc*) &TMP4497));
	gen_596138(p, (*n).kindU.S6.Sons->data[1], (&x));
	memset((void*)LOC1, 0, sizeof(LOC1));
	LOC1[0] = x.Res;
	LOC1[1] = gentypeinfo_595354(p, (*(*n).kindU.S6.Sons->data[1]).Typ);
	appf_177115(&(*p).Body, ((NimStringDesc*) &TMP4498), LOC1, 2);
}

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

N_NIMCALL(void, genarg_602097)(tproc595033* p, tnode225816* n, tcompres595023* r) {
	tcompres595023 a;
	memset((void*)(&a), 0, sizeof(a));
	gen_596138(p, n, (&a));
	{
		if (!(a.Typ == ((NU8) 8))) goto LA3;
		app_177052(&(*r).Res, a.Address);
		app_177060(&(*r).Res, ((NimStringDesc*) &TMP4258));
		app_177052(&(*r).Res, a.Res);
	}
	goto LA1;
	LA3: ;
	{
		app_177052(&(*r).Res, a.Res);
	}
	LA1: ;
}

N_NIMCALL(void, genecho_602335)(tproc595033* p, tnode225816* n_602338, tcompres595023* r) {
	tnode225816* n;
	tnode225816* LOC1;
	usemagic_596168(p, ((NimStringDesc*) &TMP4499));
	app_177060(&(*r).Res, ((NimStringDesc*) &TMP4500));
	LOC1 = 0;
	LOC1 = HEX5BHEX5D_226698(n_602338, 1);
	n = skipconv_273732(LOC1);
	{
		NimStringDesc* LOC6;
		if (!!(((*n).Kind == ((NU8) 41)))) goto LA4;
		LOC6 = 0;
		LOC6 = HEX24_198126(TMP4501);
		internalerror_198006(LOC6);
	}
	LA4: ;
	{
		NI i_602380;
		NI HEX3Atmp_602401;
		NI LOC8;
		NI res_602404;
		i_602380 = 0;
		HEX3Atmp_602401 = 0;
		LOC8 = 0;
		LOC8 = sonslen_226249(n);
		HEX3Atmp_602401 = (NI64)(LOC8 - 1);
		res_602404 = 0;
		{
			while (1) {
				if (!(res_602404 <= HEX3Atmp_602401)) goto LA10;
				i_602380 = res_602404;
				{
					tnode225816* it;
					it = (*n).kindU.S6.Sons->data[i_602380];
					{
						NIM_BOOL LOC14;
						LOC14 = 0;
						LOC14 = iscompiletimeonly_273466((*it).Typ);
						if (!LOC14) goto LA15;
						goto LA11;
					}
					LA15: ;
					{
						if (!(0 < i_602380)) goto LA19;
						app_177060(&(*r).Res, ((NimStringDesc*) &TMP4258));
					}
					LA19: ;
					genarg_602097(p, it, r);
				} LA11: ;
				res_602404 += 1;
			} LA10: ;
		}
	}
	app_177060(&(*r).Res, ((NimStringDesc*) &TMP4502));
	(*r).Kind = ((NU8) 1);
}

N_NIMCALL(void, ternaryexpr_597110)(tproc595033* p, tnode225816* n, tcompres595023* r, NimStringDesc* magic, NimStringDesc* frmt) {
	tcompres595023 x;
	tcompres595023 y;
	tcompres595023 z;
	TY554018 LOC1;
	memset((void*)(&x), 0, sizeof(x));
	memset((void*)(&y), 0, sizeof(y));
	memset((void*)(&z), 0, sizeof(z));
	usemagic_596168(p, magic);
	gen_596138(p, (*n).kindU.S6.Sons->data[1], (&x));
	gen_596138(p, (*n).kindU.S6.Sons->data[2], (&y));
	gen_596138(p, (*n).kindU.S6.Sons->data[3], (&z));
	memset((void*)LOC1, 0, sizeof(LOC1));
	LOC1[0] = rdloc_595139((&x));
	LOC1[1] = rdloc_595139((&y));
	LOC1[2] = rdloc_595139((&z));
	unsureAsgnRef((void**) (&(*r).Res), ropef_177107(frmt, LOC1, 3));
	(*r).Kind = ((NU8) 1);
}

N_NIMCALL(void, genargs_602125)(tproc595033* p, tnode225816* n, tcompres595023* r) {
	app_177060(&(*r).Res, ((NimStringDesc*) &TMP4508));
	{
		NI i_602144;
		NI HEX3Atmp_602165;
		NI LOC2;
		NI res_602168;
		i_602144 = 0;
		HEX3Atmp_602165 = 0;
		LOC2 = 0;
		LOC2 = sonslen_226249(n);
		HEX3Atmp_602165 = (NI64)(LOC2 - 1);
		res_602168 = 1;
		{
			while (1) {
				if (!(res_602168 <= HEX3Atmp_602165)) goto LA4;
				i_602144 = res_602168;
				{
					tnode225816* it;
					it = (*n).kindU.S6.Sons->data[i_602144];
					{
						NIM_BOOL LOC8;
						LOC8 = 0;
						LOC8 = iscompiletimeonly_273466((*it).Typ);
						if (!LOC8) goto LA9;
						goto LA5;
					}
					LA9: ;
					{
						if (!(1 < i_602144)) goto LA13;
						app_177060(&(*r).Res, ((NimStringDesc*) &TMP4258));
					}
					LA13: ;
					genarg_602097(p, it, r);
				} LA5: ;
				res_602168 += 1;
			} LA4: ;
		}
	}
	app_177060(&(*r).Res, ((NimStringDesc*) &TMP4502));
	(*r).Kind = ((NU8) 1);
}

N_NIMCALL(void, gencall_602188)(tproc595033* p, tnode225816* n, tcompres595023* r) {
	gen_596138(p, (*n).kindU.S6.Sons->data[0], r);
	genargs_602125(p, n, r);
}

N_NIMCALL(void, genmagic_604024)(tproc595033* p, tnode225816* n, tcompres595023* r) {
	tcompres595023 a;
	trope177009* line;
	trope177009* 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_596456(p, (*n).kindU.S6.Sons->data[1], (*n).kindU.S6.Sons->data[2], r);
	}
	break;
	case ((NU16) 134):
	{
		genand_596353(p, (*n).kindU.S6.Sons->data[1], (*n).kindU.S6.Sons->data[2], r);
	}
	break;
	case ((NU16) 37) ... ((NU16) 132):
	{
		arith_597306(p, n, r, op);
	}
	break;
	case ((NU16) 160):
	{
		genrepr_603850(p, n, r);
	}
	break;
	case ((NU16) 167):
	{
		genswap_600643(p, n);
	}
	break;
	case ((NU16) 18):
	{
		{
			if (!!((((*p).Options &(1<<((((NU8) 5))&31)))!=0))) goto LA9;
			unaryexpr_597179(p, n, r, ((NimStringDesc*) &TMP4340), ((NimStringDesc*) &TMP4444));
		}
		goto LA7;
		LA9: ;
		{
			unaryexpr_597179(p, n, r, ((NimStringDesc*) &TMP4343), ((NimStringDesc*) &TMP4445));
		}
		LA7: ;
	}
	break;
	case ((NU16) 20):
	{
		{
			if (!!((((*p).Options &(1<<((((NU8) 5))&31)))!=0))) goto LA15;
			binaryexpr_597058(p, n, r, ((NimStringDesc*) &TMP4340), ((NimStringDesc*) &TMP4446));
		}
		goto LA13;
		LA15: ;
		{
			binaryexpr_597058(p, n, r, ((NimStringDesc*) &TMP4343), ((NimStringDesc*) &TMP4344));
		}
		LA13: ;
	}
	break;
	case ((NU16) 19):
	{
		{
			if (!!((((*p).Options &(1<<((((NU8) 5))&31)))!=0))) goto LA21;
			binaryexpr_597058(p, n, r, ((NimStringDesc*) &TMP4340), ((NimStringDesc*) &TMP4446));
		}
		goto LA19;
		LA21: ;
		{
			binaryexpr_597058(p, n, r, ((NimStringDesc*) &TMP4339), ((NimStringDesc*) &TMP4341));
		}
		LA19: ;
	}
	break;
	case ((NU16) 155):
	{
		binaryexpr_597058(p, n, r, ((NimStringDesc*) &TMP4447), ((NimStringDesc*) &TMP4448));
	}
	break;
	case ((NU16) 156):
	{
		{
			ttype225852* LOC28;
			LOC28 = 0;
			LOC28 = skiptypes_230245((*(*n).kindU.S6.Sons->data[1]).Typ, IL64(211106242013440));
			if (!((*LOC28).Kind == ((NU8) 29))) goto LA29;
			binaryexpr_597058(p, n, r, ((NimStringDesc*) &TMP4340), ((NimStringDesc*) &TMP4449));
		}
		goto LA26;
		LA29: ;
		{
			binaryexpr_597058(p, n, r, ((NimStringDesc*) &TMP4340), ((NimStringDesc*) &TMP4450));
		}
		LA26: ;
	}
	break;
	case ((NU16) 157):
	{
		binaryexpr_597058(p, n, r, ((NimStringDesc*) &TMP4340), ((NimStringDesc*) &TMP4451));
	}
	break;
	case ((NU16) 146):
	{
		genconstrstr_603664(p, n, r);
	}
	break;
	case ((NU16) 136):
	{
		binaryexpr_597058(p, n, r, ((NimStringDesc*) &TMP4458), ((NimStringDesc*) &TMP4459));
	}
	break;
	case ((NU16) 137):
	{
		binaryexpr_597058(p, n, r, ((NimStringDesc*) &TMP4460), ((NimStringDesc*) &TMP4461));
	}
	break;
	case ((NU16) 138):
	{
		binaryexpr_597058(p, n, r, ((NimStringDesc*) &TMP4460), ((NimStringDesc*) &TMP4462));
	}
	break;
	case ((NU16) 168):
	{
		unaryexpr_597179(p, n, r, ((NimStringDesc*) &TMP4340), ((NimStringDesc*) &TMP4463));
	}
	break;
	case ((NU16) 133):
	{
		genrepr_603850(p, n, r);
	}
	break;
	case ((NU16) 24):
	case ((NU16) 25):
	{
		gennew_603504(p, n);
	}
	break;
	case ((NU16) 6):
	{
		NI64 LOC41;
		LOC41 = 0;
		LOC41 = getsize_263199((*(*n).kindU.S6.Sons->data[1]).Typ);
		unsureAsgnRef((void**) (&(*r).Res), torope_177082(LOC41));
	}
	break;
	case ((NU16) 34):
	case ((NU16) 169):
	{
		gen_596138(p, (*n).kindU.S6.Sons->data[1], r);
	}
	break;
	case ((NU16) 23):
	{
		genord_603615(p, n, r);
	}
	break;
	case ((NU16) 28):
	{
		unaryexpr_597179(p, n, r, ((NimStringDesc*) &TMP4340), ((NimStringDesc*) &TMP4468));
	}
	break;
	case ((NU16) 30):
	case ((NU16) 27):
	case ((NU16) 29):
	{
		unaryexpr_597179(p, n, r, ((NimStringDesc*) &TMP4340), ((NimStringDesc*) &TMP4469));
	}
	break;
	case ((NU16) 5):
	{
		{
			ttype225852* LOC49;
			LOC49 = 0;
			LOC49 = skiptypes_230245((*(*n).kindU.S6.Sons->data[1]).Typ, IL64(211106240964864));
			if (!((*LOC49).Kind == ((NU8) 28))) goto LA50;
			unaryexpr_597179(p, n, r, ((NimStringDesc*) &TMP4340), ((NimStringDesc*) &TMP4470));
		}
		goto LA47;
		LA50: ;
		{
			unaryexpr_597179(p, n, r, ((NimStringDesc*) &TMP4340), ((NimStringDesc*) &TMP4468));
		}
		LA47: ;
	}
	break;
	case ((NU16) 21):
	{
		{
			if (!!((((*p).Options &(1<<((((NU8) 5))&31)))!=0))) goto LA56;
			binaryexpr_597058(p, n, r, ((NimStringDesc*) &TMP4340), ((NimStringDesc*) &TMP4449));
		}
		goto LA54;
		LA56: ;
		{
			binaryexpr_597058(p, n, r, ((NimStringDesc*) &TMP4339), ((NimStringDesc*) &TMP4471));
		}
		LA54: ;
	}
	break;
	case ((NU16) 22):
	{
		{
			if (!!((((*p).Options &(1<<((((NU8) 5))&31)))!=0))) goto LA62;
			binaryexpr_597058(p, n, r, ((NimStringDesc*) &TMP4340), ((NimStringDesc*) &TMP4472));
		}
		goto LA60;
		LA62: ;
		{
			binaryexpr_597058(p, n, r, ((NimStringDesc*) &TMP4343), ((NimStringDesc*) &TMP4473));
		}
		LA60: ;
	}
	break;
	case ((NU16) 162):
	{
		binaryexpr_597058(p, n, r, ((NimStringDesc*) &TMP4340), ((NimStringDesc*) &TMP4474));
	}
	break;
	case ((NU16) 163):
	{
		binaryexpr_597058(p, n, r, ((NimStringDesc*) &TMP4340), ((NimStringDesc*) &TMP4475));
	}
	break;
	case ((NU16) 33):
	{
		unaryexpr_597179(p, n, r, ((NimStringDesc*) &TMP4476), ((NimStringDesc*) &TMP4477));
	}
	break;
	case ((NU16) 141):
	{
		binaryexpr_597058(p, n, r, ((NimStringDesc*) &TMP4478), ((NimStringDesc*) &TMP4479));
	}
	break;
	case ((NU16) 140):
	{
		binaryexpr_597058(p, n, r, ((NimStringDesc*) &TMP4480), ((NimStringDesc*) &TMP4481));
	}
	break;
	case ((NU16) 139):
	{
		binaryexpr_597058(p, n, r, ((NimStringDesc*) &TMP4482), ((NimStringDesc*) &TMP4483));
	}
	break;
	case ((NU16) 142):
	{
		binaryexpr_597058(p, n, r, ((NimStringDesc*) &TMP4484), ((NimStringDesc*) &TMP4485));
	}
	break;
	case ((NU16) 143):
	{
		binaryexpr_597058(p, n, r, ((NimStringDesc*) &TMP4486), ((NimStringDesc*) &TMP4487));
	}
	break;
	case ((NU16) 144):
	{
		binaryexpr_597058(p, n, r, ((NimStringDesc*) &TMP4488), ((NimStringDesc*) &TMP4489));
	}
	break;
	case ((NU16) 31):
	{
		binaryexpr_597058(p, n, r, ((NimStringDesc*) &TMP4340), ((NimStringDesc*) &TMP4490));
	}
	break;
	case ((NU16) 32):
	{
		binaryexpr_597058(p, n, r, ((NimStringDesc*) &TMP4340), ((NimStringDesc*) &TMP4491));
	}
	break;
	case ((NU16) 159):
	{
		binaryexpr_597058(p, n, r, ((NimStringDesc*) &TMP4340), ((NimStringDesc*) &TMP4492));
	}
	break;
	case ((NU16) 228) ... ((NU16) 260):
	{
		localerror_197955((*n).Info, ((NU16) 212), (*(*(*(*n).kindU.S6.Sons->data[0]).kindU.S4.Sym).Name).S);
	}
	break;
	case ((NU16) 26):
	{
		gennewseq_603551(p, n);
	}
	break;
	case ((NU16) 9):
	{
		genof_603895(p, n, r);
	}
	break;
	case ((NU16) 175):
	{
		genreset_603978(p, n);
	}
	break;
	case ((NU16) 10):
	{
		genecho_602335(p, n, r);
	}
	break;
	case ((NU16) 12):
	case ((NU16) 13):
	{
		localerror_197955((*n).Info, ((NU16) 224), (*(*(*(*n).kindU.S6.Sons->data[0]).kindU.S4.Sym).Name).S);
	}
	break;
	case ((NU16) 170):
	{
		binaryexpr_597058(p, n, r, ((NimStringDesc*) &TMP4340), ((NimStringDesc*) &TMP4503));
	}
	break;
	case ((NU16) 171):
	{
		ternaryexpr_597110(p, n, r, ((NimStringDesc*) &TMP4340), ((NimStringDesc*) &TMP4504));
	}
	break;
	case ((NU16) 172):
	{
		unaryexpr_597179(p, n, r, ((NimStringDesc*) &TMP4505), ((NimStringDesc*) &TMP4506));
	}
	break;
	case ((NU16) 173):
	{
		unaryexpr_597179(p, n, r, ((NimStringDesc*) &TMP4505), ((NimStringDesc*) &TMP4507));
	}
	break;
	default:
	{
		gencall_602188(p, n, r);
	}
	break;
	}
}

N_NIMCALL(void, geninfixcall_602214)(tproc595033* p, tnode225816* n, tcompres595023* r) {
	tcompres595023 op;
	gen_596138(p, (*n).kindU.S6.Sons->data[1], r);
	{
		TY588896 LOC9;
		if (!((*r).Typ == ((NU8) 8))) goto LA3;
		{
			if (!((*r).Address == NIM_NIL)) goto LA7;
			globalerror_197945((*n).Info, ((NimStringDesc*) &TMP4509));
		}
		LA7: ;
		memset((void*)LOC9, 0, sizeof(LOC9));
		LOC9[0] = (*r).Address;
		LOC9[1] = (*r).Res;
		unsureAsgnRef((void**) (&(*r).Res), ropef_177107(((NimStringDesc*) &TMP4510), LOC9, 2));
		unsureAsgnRef((void**) (&(*r).Address), NIM_NIL);
		(*r).Typ = ((NU8) 0);
	}
	LA3: ;
	app_177060(&(*r).Res, ((NimStringDesc*) &TMP4511));
	memset((void*)(&op), 0, sizeof(op));
	gen_596138(p, (*n).kindU.S6.Sons->data[0], (&op));
	app_177052(&(*r).Res, op.Res);
	app_177060(&(*r).Res, ((NimStringDesc*) &TMP4508));
	{
		NI i_602295;
		NI HEX3Atmp_602315;
		NI LOC11;
		NI res_602318;
		i_602295 = 0;
		HEX3Atmp_602315 = 0;
		LOC11 = 0;
		LOC11 = sonslen_226249(n);
		HEX3Atmp_602315 = (NI64)(LOC11 - 1);
		res_602318 = 2;
		{
			while (1) {
				if (!(res_602318 <= HEX3Atmp_602315)) goto LA13;
				i_602295 = res_602318;
				{
					if (!(2 < i_602295)) goto LA16;
					app_177060(&(*r).Res, ((NimStringDesc*) &TMP4258));
				}
				LA16: ;
				genarg_602097(p, (*n).kindU.S6.Sons->data[i_602295], r);
				res_602318 += 1;
			} LA13: ;
		}
	}
	app_177060(&(*r).Res, ((NimStringDesc*) &TMP4502));
	(*r).Kind = ((NU8) 1);
}

N_NIMCALL(void, gensetconstr_604322)(tproc595033* p, tnode225816* n, tcompres595023* r) {
	tcompres595023 a;
	tcompres595023 b;
	memset((void*)(&a), 0, sizeof(a));
	memset((void*)(&b), 0, sizeof(b));
	usemagic_596168(p, ((NimStringDesc*) &TMP4512));
	unsureAsgnRef((void**) (&(*r).Res), torope_177076(((NimStringDesc*) &TMP4513)));
	(*r).Kind = ((NU8) 1);
	{
		NI i_604342;
		NI HEX3Atmp_604410;
		NI LOC2;
		NI res_604413;
		i_604342 = 0;
		HEX3Atmp_604410 = 0;
		LOC2 = 0;
		LOC2 = sonslen_226249(n);
		HEX3Atmp_604410 = (NI64)(LOC2 - 1);
		res_604413 = 0;
		{
			while (1) {
				tnode225816* it;
				if (!(res_604413 <= HEX3Atmp_604410)) goto LA4;
				i_604342 = res_604413;
				{
					if (!(0 < i_604342)) goto LA7;
					app_177060(&(*r).Res, ((NimStringDesc*) &TMP4258));
				}
				LA7: ;
				it = (*n).kindU.S6.Sons->data[i_604342];
				{
					TY588896 LOC13;
					if (!((*it).Kind == ((NU8) 44))) goto LA11;
					gen_596138(p, (*it).kindU.S6.Sons->data[0], (&a));
					gen_596138(p, (*it).kindU.S6.Sons->data[1], (&b));
					memset((void*)LOC13, 0, sizeof(LOC13));
					LOC13[0] = a.Res;
					LOC13[1] = b.Res;
					appf_177115(&(*r).Res, ((NimStringDesc*) &TMP4287), LOC13, 2);
				}
				goto LA9;
				LA11: ;
				{
					gen_596138(p, it, (&a));
					app_177052(&(*r).Res, a.Res);
				}
				LA9: ;
				res_604413 += 1;
			} LA4: ;
		}
	}
	app_177060(&(*r).Res, ((NimStringDesc*) &TMP4502));
}

N_NIMCALL(void, genarrayconstr_604430)(tproc595033* p, tnode225816* n, tcompres595023* r) {
	tcompres595023 a;
	memset((void*)(&a), 0, sizeof(a));
	unsureAsgnRef((void**) (&(*r).Res), torope_177076(((NimStringDesc*) &TMP4293)));
	(*r).Kind = ((NU8) 1);
	{
		NI i_604449;
		NI HEX3Atmp_604471;
		NI LOC2;
		NI res_604474;
		i_604449 = 0;
		HEX3Atmp_604471 = 0;
		LOC2 = 0;
		LOC2 = sonslen_226249(n);
		HEX3Atmp_604471 = (NI64)(LOC2 - 1);
		res_604474 = 0;
		{
			while (1) {
				if (!(res_604474 <= HEX3Atmp_604471)) goto LA4;
				i_604449 = res_604474;
				{
					if (!(0 < i_604449)) goto LA7;
					app_177060(&(*r).Res, ((NimStringDesc*) &TMP4258));
				}
				LA7: ;
				gen_596138(p, (*n).kindU.S6.Sons->data[i_604449], (&a));
				app_177052(&(*r).Res, a.Res);
				res_604474 += 1;
			} LA4: ;
		}
	}
	app_177060(&(*r).Res, ((NimStringDesc*) &TMP4294));
}

N_NIMCALL(void, gentupleconstr_604491)(tproc595033* p, tnode225816* n, tcompres595023* r) {
	tcompres595023 a;
	memset((void*)(&a), 0, sizeof(a));
	unsureAsgnRef((void**) (&(*r).Res), torope_177076(((NimStringDesc*) &TMP4295)));
	(*r).Kind = ((NU8) 1);
	{
		NI i_604510;
		NI HEX3Atmp_604569;
		NI LOC2;
		NI res_604572;
		i_604510 = 0;
		HEX3Atmp_604569 = 0;
		LOC2 = 0;
		LOC2 = sonslen_226249(n);
		HEX3Atmp_604569 = (NI64)(LOC2 - 1);
		res_604572 = 0;
		{
			while (1) {
				tnode225816* it;
				NimStringDesc* LOC13;
				TY588896 LOC19;
				if (!(res_604572 <= HEX3Atmp_604569)) goto LA4;
				i_604510 = res_604572;
				{
					if (!(0 < i_604510)) goto LA7;
					app_177060(&(*r).Res, ((NimStringDesc*) &TMP4258));
				}
				LA7: ;
				it = (*n).kindU.S6.Sons->data[i_604510];
				{
					if (!((*it).Kind == ((NU8) 34))) goto LA11;
					it = (*it).kindU.S6.Sons->data[1];
				}
				LA11: ;
				gen_596138(p, it, (&a));
				LOC13 = 0;
				{
					if (!((*p).Target == ((NU8) 0))) goto LA16;
					LOC13 = copyString(((NimStringDesc*) &TMP4514));
				}
				goto LA14;
				LA16: ;
				{
					LOC13 = copyString(((NimStringDesc*) &TMP4297));
				}
				LA14: ;
				memset((void*)LOC19, 0, sizeof(LOC19));
				LOC19[0] = torope_177082(((NI64) (i_604510)));
				LOC19[1] = a.Res;
				appf_177115(&(*r).Res, LOC13, LOC19, 2);
				res_604572 += 1;
			} LA4: ;
		}
	}
	app_177060(&(*r).Res, ((NimStringDesc*) &TMP4298));
}

N_NIMCALL(void, genobjconstr_604589)(tproc595033* p, tnode225816* n, tcompres595023* r) {
	tcompres595023 a;
	memset((void*)(&a), 0, sizeof(a));
	unsureAsgnRef((void**) (&(*r).Res), torope_177076(((NimStringDesc*) &TMP4295)));
	(*r).Kind = ((NU8) 1);
	{
		NI i_604608;
		NI HEX3Atmp_604729;
		NI LOC2;
		NI res_604732;
		i_604608 = 0;
		HEX3Atmp_604729 = 0;
		LOC2 = 0;
		LOC2 = sonslen_226249(n);
		HEX3Atmp_604729 = (NI64)(LOC2 - 1);
		res_604732 = 1;
		{
			while (1) {
				tnode225816* it;
				tsym225846* f;
				NimStringDesc* LOC18;
				TY588896 LOC24;
				if (!(res_604732 <= HEX3Atmp_604729)) goto LA4;
				i_604608 = res_604732;
				{
					if (!(1 < i_604608)) goto LA7;
					app_177060(&(*r).Res, ((NimStringDesc*) &TMP4258));
				}
				LA7: ;
				it = (*n).kindU.S6.Sons->data[i_604608];
				{
					NimStringDesc* LOC13;
					if (!!(((*it).Kind == ((NU8) 34)))) goto LA11;
					LOC13 = 0;
					LOC13 = HEX24_198126(TMP4515);
					internalerror_198006(LOC13);
				}
				LA11: ;
				gen_596138(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_595315(f));
				}
				LA16: ;
				LOC18 = 0;
				{
					if (!((*p).Target == ((NU8) 0))) goto LA21;
					LOC18 = copyString(((NimStringDesc*) &TMP4516));
				}
				goto LA19;
				LA21: ;
				{
					LOC18 = copyString(((NimStringDesc*) &TMP4517));
				}
				LA19: ;
				memset((void*)LOC24, 0, sizeof(LOC24));
				LOC24[0] = (*f).Loc.R;
				LOC24[1] = a.Res;
				appf_177115(&(*r).Res, LOC18, LOC24, 2);
				res_604732 += 1;
			} LA4: ;
		}
	}
	app_177060(&(*r).Res, ((NimStringDesc*) &TMP4298));
}

N_NIMCALL(void, genconv_604749)(tproc595033* p, tnode225816* n, tcompres595023* r) {
	ttype225852* dest;
	ttype225852* src;
	dest = skiptypes_230245((*n).Typ, IL64(211106242013440));
	src = skiptypes_230245((*(*n).kindU.S6.Sons->data[1]).Typ, IL64(211106242013440));
	gen_596138(p, (*n).kindU.S6.Sons->data[1], r);
	{
		NIM_BOOL LOC3;
		NimStringDesc* LOC7;
		TY177515 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*) &TMP4518));
		}
		goto LA8;
		LA10: ;
		{
			LOC7 = copyString(((NimStringDesc*) &TMP4466));
		}
		LA8: ;
		memset((void*)LOC13, 0, sizeof(LOC13));
		LOC13[0] = (*r).Res;
		unsureAsgnRef((void**) (&(*r).Res), ropef_177107(LOC7, LOC13, 1));
		(*r).Kind = ((NU8) 1);
	}
	LA5: ;
}

N_NIMCALL(NI, getfieldposition_600790)(tnode225816* 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_197987((*f).Info, ((NimStringDesc*) &TMP4522));
	}
	break;
	}
	return result;
}

N_NIMCALL(void, genfieldaddr_600829)(tproc595033* p, tnode225816* n, tcompres595023* r) {
	tcompres595023 a;
	tnode225816* 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_596138(p, (*b).kindU.S6.Sons->data[0], (&a));
	{
		ttype225852* LOC8;
		NimStringDesc* LOC11;
		NI LOC12;
		NimStringDesc* LOC13;
		LOC8 = 0;
		LOC8 = skiptypes_230245((*(*b).kindU.S6.Sons->data[0]).Typ, IL64(211106242013440));
		if (!((*LOC8).Kind == ((NU8) 18))) goto LA9;
		LOC11 = 0;
		LOC12 = 0;
		LOC12 = getfieldposition_600790((*b).kindU.S6.Sons->data[1]);
		LOC13 = 0;
		LOC13 = nimIntToStr(LOC12);
		LOC11 = rawNewString(LOC13->Sup.len + 5);
appendString(LOC11, ((NimStringDesc*) &TMP4521));
appendString(LOC11, LOC13);
		unsureAsgnRef((void**) (&(*r).Res), makejsstring_595344(LOC11));
	}
	goto LA6;
	LA9: ;
	{
		tsym225846* f;
		NimStringDesc* LOC23;
		{
			if (!!(((*(*b).kindU.S6.Sons->data[1]).Kind == ((NU8) 3)))) goto LA17;
			internalerror_197987((*(*b).kindU.S6.Sons->data[1]).Info, ((NimStringDesc*) &TMP4523));
		}
		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_595315(f));
		}
		LA21: ;
		LOC23 = 0;
		LOC23 = ropetostr_177101((*f).Loc.R);
		unsureAsgnRef((void**) (&(*r).Res), makejsstring_595344(LOC23));
	}
	LA6: ;
	{
		NimStringDesc* LOC28;
		if (!!(!((a.Typ == ((NU8) 8))))) goto LA26;
		LOC28 = 0;
		LOC28 = HEX24_198126(TMP4524);
		internalerror_198006(LOC28);
	}
	LA26: ;
	unsureAsgnRef((void**) (&(*r).Address), a.Res);
	(*r).Kind = ((NU8) 1);
}

N_NIMCALL(void, gencheckedfieldaddr_601181)(tproc595033* p, tnode225816* n, tcompres595023* r) {
	genfieldaddr_600829(p, (*n).kindU.S6.Sons->data[0], r);
}

N_NIMCALL(void, genarrayaddr_601233)(tproc595033* p, tnode225816* n, tcompres595023* r) {
	tcompres595023 a;
	tcompres595023 b;
	NI64 first;
	tnode225816* m;
	ttype225852* 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_596138(p, (*m).kindU.S6.Sons->data[0], (&a));
	gen_596138(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_198126(TMP4525);
		internalerror_198006(LOC12);
	}
	LA10: ;
	unsureAsgnRef((void**) (&(*r).Address), a.Res);
	typ = skiptypes_230245((*(*m).kindU.S6.Sons->data[0]).Typ, IL64(211106247256320));
	{
		if (!((65552 &(IL64(1)<<(((*typ).Kind)&IL64(63))))!=0)) goto LA15;
		first = firstord_263004((*typ).Sons->data[0]);
	}
	goto LA13;
	LA15: ;
	{
		first = IL64(0);
	}
	LA13: ;
	{
		NIM_BOOL LOC20;
		NIM_BOOL LOC22;
		TY554018 LOC25;
		LOC20 = 0;
		LOC20 = (((*p).Options &(1<<((((NU8) 4))&31)))!=0);
		if (!(LOC20)) goto LA21;
		LOC22 = 0;
		LOC22 = isconstexpr_261921((*m).kindU.S6.Sons->data[1]);
		LOC20 = !(LOC22);
		LA21: ;
		if (!LOC20) goto LA23;
		usemagic_596168(p, ((NimStringDesc*) &TMP4526));
		memset((void*)LOC25, 0, sizeof(LOC25));
		LOC25[0] = b.Res;
		LOC25[1] = torope_177082(first);
		LOC25[2] = a.Res;
		unsureAsgnRef((void**) (&(*r).Res), ropef_177107(((NimStringDesc*) &TMP4527), LOC25, 3));
	}
	goto LA18;
	LA23: ;
	{
		TY588896 LOC29;
		if (!!((first == IL64(0)))) goto LA27;
		memset((void*)LOC29, 0, sizeof(LOC29));
		LOC29[0] = b.Res;
		LOC29[1] = torope_177082(first);
		unsureAsgnRef((void**) (&(*r).Res), ropef_177107(((NimStringDesc*) &TMP4528), LOC29, 2));
	}
	goto LA18;
	LA27: ;
	{
		unsureAsgnRef((void**) (&(*r).Res), b.Res);
	}
	LA18: ;
	(*r).Kind = ((NU8) 1);
}

N_NIMCALL(void, genaddr_601481)(tproc595033* p, tnode225816* n, tcompres595023* r) {
	switch ((*(*n).kindU.S6.Sons->data[0]).Kind) {
	case ((NU8) 3):
	{
		tsym225846* s;
		s = (*(*n).kindU.S6.Sons->data[0]).kindU.S4.Sym;
		{
			if (!((*s).Loc.R == NIM_NIL)) goto LA4;
			internalerror_197987((*n).Info, ((NimStringDesc*) &TMP4519));
		}
		LA4: ;
		switch ((*s).Kind) {
		case ((NU8) 8):
		case ((NU8) 9):
		case ((NU8) 11):
		{
			(*r).Kind = ((NU8) 1);
			{
				NU8 LOC9;
				LOC9 = 0;
				LOC9 = maptype_595291((*(*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_177076(((NimStringDesc*) &TMP4252)));
			}
			goto LA7;
			LA13: ;
			{
				gen_596138(p, (*n).kindU.S6.Sons->data[0], r);
			}
			LA7: ;
		}
		break;
		default:
		{
			internalerror_197987((*n).Info, ((NimStringDesc*) &TMP4520));
		}
		break;
		}
	}
	break;
	case ((NU8) 46):
	{
		gencheckedfieldaddr_601181(p, n, r);
	}
	break;
	case ((NU8) 45):
	{
		genfieldaddr_600829(p, n, r);
	}
	break;
	case ((NU8) 42):
	{
		ttype225852* ty;
		ty = skiptypes_230245((*(*n).kindU.S6.Sons->data[0]).Typ, IL64(211106242013440));
		{
			ttype225852* LOC24;
			if (!((6291456 &(IL64(1)<<(((*ty).Kind)&IL64(63))))!=0)) goto LA22;
			LOC24 = 0;
			LOC24 = lastson_226267(ty);
			ty = skiptypes_230245(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_601233(p, n, r);
		}
		break;
		case ((NU8) 18):
		{
			genfieldaddr_600829(p, n, r);
		}
		break;
		default:
		{
			NimStringDesc* LOC28;
			LOC28 = 0;
			LOC28 = rawNewString(reprEnum((*ty).Kind, (&NTI225258))->Sup.len + 21);
appendString(LOC28, ((NimStringDesc*) &TMP4529));
appendString(LOC28, reprEnum((*ty).Kind, (&NTI225258)));
appendChar(LOC28, 41);
			internalerror_197987((*n).Info, LOC28);
		}
		break;
		}
	}
	break;
	default:
	{
		internalerror_197987((*n).Info, ((NimStringDesc*) &TMP4530));
	}
	break;
	}
}

N_NIMCALL(void, genderef_602018)(tproc595033* p, tnode225816* n, tcompres595023* r) {
	{
		NU8 LOC3;
		LOC3 = 0;
		LOC3 = maptype_595291((*(*n).kindU.S6.Sons->data[0]).Typ);
		if (!(LOC3 == ((NU8) 7))) goto LA4;
		gen_596138(p, (*n).kindU.S6.Sons->data[0], r);
	}
	goto LA1;
	LA4: ;
	{
		tcompres595023 a;
		TY588896 LOC11;
		memset((void*)(&a), 0, sizeof(a));
		gen_596138(p, (*n).kindU.S6.Sons->data[0], (&a));
		{
			if (!!((a.Typ == ((NU8) 8)))) goto LA9;
			internalerror_197987((*n).Info, ((NimStringDesc*) &TMP4531));
		}
		LA9: ;
		memset((void*)LOC11, 0, sizeof(LOC11));
		LOC11[0] = a.Address;
		LOC11[1] = a.Res;
		unsureAsgnRef((void**) (&(*r).Res), ropef_177107(((NimStringDesc*) &TMP4510), LOC11, 2));
	}
	LA1: ;
}

N_NIMCALL(void, genarrayaccess_601412)(tproc595033* p, tnode225816* n, tcompres595023* r) {
	ttype225852* ty;
	TY588896 LOC14;
	ty = skiptypes_230245((*(*n).kindU.S6.Sons->data[0]).Typ, IL64(211106242013440));
	{
		ttype225852* LOC5;
		if (!((6291456 &(IL64(1)<<(((*ty).Kind)&IL64(63))))!=0)) goto LA3;
		LOC5 = 0;
		LOC5 = lastson_226267(ty);
		ty = skiptypes_230245(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_601233(p, n, r);
	}
	break;
	case ((NU8) 18):
	{
		genfieldaddr_600829(p, n, r);
	}
	break;
	default:
	{
		NimStringDesc* LOC9;
		LOC9 = 0;
		LOC9 = rawNewString(reprEnum((*ty).Kind, (&NTI225258))->Sup.len + 21);
appendString(LOC9, ((NimStringDesc*) &TMP4529));
appendString(LOC9, reprEnum((*ty).Kind, (&NTI225258)));
appendChar(LOC9, 41);
		internalerror_197987((*n).Info, LOC9);
	}
	break;
	}
	(*r).Typ = ((NU8) 0);
	{
		if (!((*r).Res == NIM_NIL)) goto LA12;
		internalerror_197987((*n).Info, ((NimStringDesc*) &TMP4532));
	}
	LA12: ;
	memset((void*)LOC14, 0, sizeof(LOC14));
	LOC14[0] = (*r).Address;
	LOC14[1] = (*r).Res;
	unsureAsgnRef((void**) (&(*r).Res), ropef_177107(((NimStringDesc*) &TMP4510), LOC14, 2));
	unsureAsgnRef((void**) (&(*r).Address), NIM_NIL);
	(*r).Kind = ((NU8) 1);
}

N_NIMCALL(void, genfieldaccess_601027)(tproc595033* p, tnode225816* n, tcompres595023* r) {
	(*r).Typ = ((NU8) 0);
	gen_596138(p, (*n).kindU.S6.Sons->data[0], r);
	{
		ttype225852* LOC3;
		TY588896 LOC6;
		NI LOC7;
		LOC3 = 0;
		LOC3 = skiptypes_230245((*(*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_600790((*n).kindU.S6.Sons->data[1]);
		LOC6[1] = torope_177082(((NI64) (LOC7)));
		unsureAsgnRef((void**) (&(*r).Res), ropef_177107(((NimStringDesc*) &TMP4533), LOC6, 2));
	}
	goto LA1;
	LA4: ;
	{
		tsym225846* f;
		TY588896 LOC17;
		{
			if (!!(((*(*n).kindU.S6.Sons->data[1]).Kind == ((NU8) 3)))) goto LA11;
			internalerror_197987((*(*n).kindU.S6.Sons->data[1]).Info, ((NimStringDesc*) &TMP4523));
		}
		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_595315(f));
		}
		LA15: ;
		memset((void*)LOC17, 0, sizeof(LOC17));
		LOC17[0] = (*r).Res;
		LOC17[1] = (*f).Loc.R;
		unsureAsgnRef((void**) (&(*r).Res), ropef_177107(((NimStringDesc*) &TMP4534), LOC17, 2));
	}
	LA1: ;
	(*r).Kind = ((NU8) 1);
}

N_NIMCALL(void, gencheckedfieldaccess_601207)(tproc595033* p, tnode225816* n, tcompres595023* r) {
	genfieldaccess_601027(p, (*n).kindU.S6.Sons->data[0], r);
}

N_NIMCALL(void, upconv_604822)(tproc595033* p, tnode225816* n, tcompres595023* r) {
	gen_596138(p, (*n).kindU.S6.Sons->data[0], r);
}

N_NIMCALL(void, genrangechck_604848)(tproc595033* p, tnode225816* n, tcompres595023* r, NimStringDesc* magic) {
	tcompres595023 a;
	tcompres595023 b;
	memset((void*)(&a), 0, sizeof(a));
	memset((void*)(&b), 0, sizeof(b));
	gen_596138(p, (*n).kindU.S6.Sons->data[0], r);
	{
		TY554018 LOC5;
		if (!(((*p).Options &(1<<((((NU8) 3))&31)))!=0)) goto LA3;
		gen_596138(p, (*n).kindU.S6.Sons->data[1], (&a));
		gen_596138(p, (*n).kindU.S6.Sons->data[2], (&b));
		usemagic_596168(p, ((NimStringDesc*) &TMP4535));
		memset((void*)LOC5, 0, sizeof(LOC5));
		LOC5[0] = (*r).Res;
		LOC5[1] = a.Res;
		LOC5[2] = b.Res;
		unsureAsgnRef((void**) (&(*r).Res), ropef_177107(((NimStringDesc*) &TMP4536), LOC5, 3));
		(*r).Kind = ((NU8) 1);
	}
	LA3: ;
}

N_NIMCALL(void, convstrtocstr_604926)(tproc595033* p, tnode225816* n, tcompres595023* r) {
	{
		if (!((*(*n).kindU.S6.Sons->data[0]).Kind == ((NU8) 72))) goto LA3;
		gen_596138(p, (*(*n).kindU.S6.Sons->data[0]).kindU.S6.Sons->data[0], r);
	}
	goto LA1;
	LA3: ;
	{
		TY177515 LOC10;
		gen_596138(p, (*n).kindU.S6.Sons->data[0], r);
		{
			if (!((*r).Res == NIM_NIL)) goto LA8;
			internalerror_197987((*n).Info, ((NimStringDesc*) &TMP4539));
		}
		LA8: ;
		usemagic_596168(p, ((NimStringDesc*) &TMP4540));
		memset((void*)LOC10, 0, sizeof(LOC10));
		LOC10[0] = (*r).Res;
		unsureAsgnRef((void**) (&(*r).Res), ropef_177107(((NimStringDesc*) &TMP4541), LOC10, 1));
		(*r).Kind = ((NU8) 1);
	}
	LA1: ;
}

N_NIMCALL(void, convcstrtostr_605024)(tproc595033* p, tnode225816* n, tcompres595023* r) {
	{
		if (!((*(*n).kindU.S6.Sons->data[0]).Kind == ((NU8) 71))) goto LA3;
		gen_596138(p, (*(*n).kindU.S6.Sons->data[0]).kindU.S6.Sons->data[0], r);
	}
	goto LA1;
	LA3: ;
	{
		TY177515 LOC10;
		gen_596138(p, (*n).kindU.S6.Sons->data[0], r);
		{
			if (!((*r).Res == NIM_NIL)) goto LA8;
			internalerror_197987((*n).Info, ((NimStringDesc*) &TMP4542));
		}
		LA8: ;
		usemagic_596168(p, ((NimStringDesc*) &TMP4320));
		memset((void*)LOC10, 0, sizeof(LOC10));
		LOC10[0] = (*r).Res;
		unsureAsgnRef((void**) (&(*r).Res), ropef_177107(((NimStringDesc*) &TMP4321), LOC10, 1));
		(*r).Kind = ((NU8) 1);
	}
	LA1: ;
}

N_NIMCALL(void, genblock_598973)(tproc595033* p, tnode225816* n, tcompres595023* r) {
	NI idx;
	NI labl;
	NimStringDesc* LOC9;
	TY177515 LOC15;
	NimStringDesc* LOC16;
	TY177515 LOC22;
	(*p).Unique += 1;
	idx = (*p).Blocks->Sup.len;
	{
		tsym225846* 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_197987((*n).Info, ((NimStringDesc*) &TMP4543));
		}
		LA7: ;
		sym = (*(*n).kindU.S6.Sons->data[0]).kindU.S4.Sym;
		(*sym).Loc.K = ((NU8) 11);
		(*sym).Position = (NI64)(idx + 1);
	}
	LA3: ;
	(*p).Blocks = (TY595071*) setLengthSeq(&((*p).Blocks)->Sup, sizeof(tblock595025), (NI64)(idx + 1));
	(*p).Blocks->data[idx].Id = ((NI64)-((*p).Unique));
	labl = (*p).Unique;
	LOC9 = 0;
	{
		if (!((*p).Target == ((NU8) 0))) goto LA12;
		LOC9 = copyString(((NimStringDesc*) &TMP4544));
	}
	goto LA10;
	LA12: ;
	{
		LOC9 = copyString(((NimStringDesc*) &TMP4340));
	}
	LA10: ;
	memset((void*)LOC15, 0, sizeof(LOC15));
	LOC15[0] = torope_177082(((NI64) (labl)));
	appf_177115(&(*p).Body, LOC9, LOC15, 1);
	gen_596138(p, (*n).kindU.S6.Sons->data[1], r);
	LOC16 = 0;
	{
		if (!((*p).Target == ((NU8) 0))) goto LA19;
		LOC16 = copyString(((NimStringDesc*) &TMP4545));
	}
	goto LA17;
	LA19: ;
	{
		LOC16 = copyString(((NimStringDesc*) &TMP4546));
	}
	LA17: ;
	memset((void*)LOC22, 0, sizeof(LOC22));
	LOC22[0] = torope_177082(((NI64) (labl)));
	appf_177115(&(*p).Body, LOC16, LOC22, 1);
	(*p).Blocks = (TY595071*) setLengthSeq(&((*p).Blocks)->Sup, sizeof(tblock595025), idx);
}

N_NIMCALL(void, moveinto_597653)(tproc595033* p, tcompres595023* src, tcompres595023* dest) {
	{
		if (!!(((*src).Kind == ((NU8) 0)))) goto LA3;
		{
			TY588896 LOC9;
			if (!!(((*dest).Kind == ((NU8) 0)))) goto LA7;
			memset((void*)LOC9, 0, sizeof(LOC9));
			LOC9[0] = rdloc_595139(dest);
			LOC9[1] = rdloc_595139((&(*src)));
			appf_177115(&(*p).Body, ((NimStringDesc*) &TMP4464), LOC9, 2);
		}
		goto LA5;
		LA7: ;
		{
			TY177515 LOC11;
			memset((void*)LOC11, 0, sizeof(LOC11));
			LOC11[0] = rdloc_595139((&(*src)));
			appf_177115(&(*p).Body, ((NimStringDesc*) &TMP4551), LOC11, 1);
		}
		LA5: ;
		(*src).Kind = ((NU8) 0);
		unsureAsgnRef((void**) (&(*src).Res), NIM_NIL);
	}
	LA3: ;
}

N_NIMCALL(void, genif_599921)(tproc595033* p, tnode225816* n, tcompres595023* r) {
	tcompres595023 cond;
	tcompres595023 stmt;
	NI toclose;
	memset((void*)(&cond), 0, sizeof(cond));
	memset((void*)(&stmt), 0, sizeof(stmt));
	toclose = 0;
	{
		NIM_BOOL LOC3;
		LOC3 = 0;
		LOC3 = isemptytype_232991((*n).Typ);
		if (!!(LOC3)) goto LA4;
		(*r).Kind = ((NU8) 2);
		unsureAsgnRef((void**) (&(*r).Res), gettemp_596313(p));
	}
	LA4: ;
	{
		NI i_599942;
		NI HEX3Atmp_600114;
		NI LOC7;
		NI res_600117;
		i_599942 = 0;
		HEX3Atmp_600114 = 0;
		LOC7 = 0;
		LOC7 = sonslen_226249(n);
		HEX3Atmp_600114 = (NI64)(LOC7 - 1);
		res_600117 = 0;
		{
			while (1) {
				tnode225816* it;
				NimStringDesc* LOC41;
				TY553703 LOC47;
				if (!(res_600117 <= HEX3Atmp_600114)) goto LA9;
				i_599942 = res_600117;
				it = (*n).kindU.S6.Sons->data[i_599942];
				{
					NI LOC12;
					NimStringDesc* LOC26;
					TY177515 LOC32;
					LOC12 = 0;
					LOC12 = sonslen_226249(it);
					if (!!((LOC12 == 1))) goto LA13;
					{
						NimStringDesc* LOC19;
						TY553703 LOC25;
						if (!(0 < i_599942)) goto LA17;
						LOC19 = 0;
						{
							if (!((*p).Target == ((NU8) 0))) goto LA22;
							LOC19 = copyString(((NimStringDesc*) &TMP4547));
						}
						goto LA20;
						LA22: ;
						{
							LOC19 = copyString(((NimStringDesc*) &TMP4548));
						}
						LA20: ;
						memset((void*)LOC25, 0, sizeof(LOC25));
						appf_177115(&(*p).Body, LOC19, LOC25, 0);
						toclose += 1;
					}
					LA17: ;
					gen_596138(p, (*it).kindU.S6.Sons->data[0], (&cond));
					LOC26 = 0;
					{
						if (!((*p).Target == ((NU8) 0))) goto LA29;
						LOC26 = copyString(((NimStringDesc*) &TMP4549));
					}
					goto LA27;
					LA29: ;
					{
						LOC26 = copyString(((NimStringDesc*) &TMP4550));
					}
					LA27: ;
					memset((void*)LOC32, 0, sizeof(LOC32));
					LOC32[0] = rdloc_595139((&cond));
					appf_177115(&(*p).Body, LOC26, LOC32, 1);
					gen_596138(p, (*it).kindU.S6.Sons->data[1], (&stmt));
				}
				goto LA10;
				LA13: ;
				{
					NimStringDesc* LOC34;
					TY553703 LOC40;
					LOC34 = 0;
					{
						if (!((*p).Target == ((NU8) 0))) goto LA37;
						LOC34 = copyString(((NimStringDesc*) &TMP4547));
					}
					goto LA35;
					LA37: ;
					{
						LOC34 = copyString(((NimStringDesc*) &TMP4548));
					}
					LA35: ;
					memset((void*)LOC40, 0, sizeof(LOC40));
					appf_177115(&(*p).Body, LOC34, LOC40, 0);
					gen_596138(p, (*it).kindU.S6.Sons->data[0], (&stmt));
				}
				LA10: ;
				moveinto_597653(p, (&stmt), (&(*r)));
				LOC41 = 0;
				{
					if (!((*p).Target == ((NU8) 0))) goto LA44;
					LOC41 = copyString(((NimStringDesc*) &TMP4552));
				}
				goto LA42;
				LA44: ;
				{
					LOC41 = copyString(((NimStringDesc*) &TMP4553));
				}
				LA42: ;
				memset((void*)LOC47, 0, sizeof(LOC47));
				appf_177115(&(*p).Body, LOC41, LOC47, 0);
				res_600117 += 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_174613->Sup.len + 0);
appendString(LOC52, LOC53);
appendString(LOC52, tnl_174613);
		app_177060(&(*p).Body, LOC52);
	}
	goto LA48;
	LA50: ;
	{
		{
			NI i_600102;
			NI res_600122;
			i_600102 = 0;
			res_600122 = 1;
			{
				while (1) {
					TY553703 LOC58;
					if (!(res_600122 <= toclose)) goto LA57;
					i_600102 = res_600122;
					memset((void*)LOC58, 0, sizeof(LOC58));
					appf_177115(&(*p).Body, ((NimStringDesc*) &TMP4553), LOC58, 0);
					res_600122 += 1;
				} LA57: ;
			}
		}
	}
	LA48: ;
}

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

N_NIMCALL(void, genlinedir_597328)(tproc595033* p, tnode225816* n) {
	NI line;
	line = tolinenumber_197073((*n).Info);
	{
		NimStringDesc* LOC5;
		TY588896 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*) &TMP4555));
		}
		goto LA6;
		LA8: ;
		{
			LOC5 = copyString(((NimStringDesc*) &TMP4556));
		}
		LA6: ;
		memset((void*)LOC11, 0, sizeof(LOC11));
		LOC12 = 0;
		LOC12 = tofilename_197025((*n).Info.Fileindex);
		LOC11[0] = torope_177076(LOC12);
		LOC11[1] = torope_177082(((NI64) (line)));
		appf_177115(&(*p).Body, LOC5, LOC11, 2);
	}
	LA3: ;
	{
		NIM_BOOL LOC15;
		NIM_BOOL LOC17;
		TY177515 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_596168(p, ((NimStringDesc*) &TMP4557));
		memset((void*)LOC21, 0, sizeof(LOC21));
		LOC21[0] = torope_177082(((NI64) (line)));
		appf_177115(&(*p).Body, ((NimStringDesc*) &TMP4558), LOC21, 1);
	}
	goto LA13;
	LA19: ;
	{
		NIM_BOOL LOC23;
		NIM_BOOL LOC25;
		TY177515 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_177082(((NI64) (line)));
		appf_177115(&(*p).Body, ((NimStringDesc*) &TMP4559), LOC29, 1);
	}
	goto LA13;
	LA27: ;
	LA13: ;
}

N_NIMCALL(void, genwhilestmt_597506)(tproc595033* p, tnode225816* n) {
	tcompres595023 cond;
	NI length;
	trope177009* labl;
	NimStringDesc* LOC7;
	TY177515 LOC13;
	NimStringDesc* LOC14;
	TY588896 LOC20;
	NimStringDesc* LOC21;
	TY177515 LOC27;
	memset((void*)(&cond), 0, sizeof(cond));
	{
		NIM_BOOL LOC3;
		NimStringDesc* LOC6;
		LOC3 = 0;
		LOC3 = isemptytype_232991((*n).Typ);
		if (!!(LOC3)) goto LA4;
		LOC6 = 0;
		LOC6 = HEX24_198126(TMP4554);
		internalerror_198006(LOC6);
	}
	LA4: ;
	genlinedir_597328(p, n);
	(*p).Unique += 1;
	length = (*p).Blocks->Sup.len;
	(*p).Blocks = (TY595071*) setLengthSeq(&((*p).Blocks)->Sup, sizeof(tblock595025), (NI64)(length + 1));
	(*p).Blocks->data[length].Id = ((NI64)-((*p).Unique));
	(*p).Blocks->data[length].Isloop = NIM_TRUE;
	labl = torope_177082(((NI64) ((*p).Unique)));
	LOC7 = 0;
	{
		if (!((*p).Target == ((NU8) 0))) goto LA10;
		LOC7 = copyString(((NimStringDesc*) &TMP4560));
	}
	goto LA8;
	LA10: ;
	{
		LOC7 = copyString(((NimStringDesc*) &TMP4561));
	}
	LA8: ;
	memset((void*)LOC13, 0, sizeof(LOC13));
	LOC13[0] = labl;
	appf_177115(&(*p).Body, LOC7, LOC13, 1);
	gen_596138(p, (*n).kindU.S6.Sons->data[0], (&cond));
	LOC14 = 0;
	{
		if (!((*p).Target == ((NU8) 0))) goto LA17;
		LOC14 = copyString(((NimStringDesc*) &TMP4562));
	}
	goto LA15;
	LA17: ;
	{
		LOC14 = copyString(((NimStringDesc*) &TMP4563));
	}
	LA15: ;
	memset((void*)LOC20, 0, sizeof(LOC20));
	LOC20[0] = cond.Res;
	LOC20[1] = labl;
	appf_177115(&(*p).Body, LOC14, LOC20, 2);
	genstmt_596147(p, (*n).kindU.S6.Sons->data[1]);
	LOC21 = 0;
	{
		if (!((*p).Target == ((NU8) 0))) goto LA24;
		LOC21 = copyString(((NimStringDesc*) &TMP4552));
	}
	goto LA22;
	LA24: ;
	{
		LOC21 = copyString(((NimStringDesc*) &TMP4564));
	}
	LA22: ;
	memset((void*)LOC27, 0, sizeof(LOC27));
	LOC27[0] = labl;
	appf_177115(&(*p).Body, LOC21, LOC27, 1);
	(*p).Blocks = (TY595071*) setLengthSeq(&((*p).Blocks)->Sup, sizeof(tblock595025), length);
}

N_NIMCALL(void, genvarstmt_603048)(tproc595033* p, tnode225816* n) {
	{
		NI i_603064;
		NI HEX3Atmp_603458;
		NI LOC2;
		NI res_603461;
		i_603064 = 0;
		HEX3Atmp_603458 = 0;
		LOC2 = 0;
		LOC2 = sonslen_226249(n);
		HEX3Atmp_603458 = (NI64)(LOC2 - 1);
		res_603461 = 0;
		{
			while (1) {
				tnode225816* a;
				if (!(res_603461 <= HEX3Atmp_603458)) goto LA4;
				i_603064 = res_603461;
				a = (*n).kindU.S6.Sons->data[i_603064];
				{
					if (!!(((*a).Kind == ((NU8) 125)))) goto LA7;
					{
						tnode225816* unpacked;
						if (!((*a).Kind == ((NU8) 36))) goto LA11;
						unpacked = lowertupleunpacking_424184(a, (*p).Prc);
						genstmt_596147(p, unpacked);
					}
					goto LA9;
					LA11: ;
					{
						tsym225846* v;
						v = (*(*a).kindU.S6.Sons->data[0]).kindU.S4.Sym;
						{
							if (!!((((*v).Loc.Flags &(1<<((((NU8) 3))&7)))!=0))) goto LA16;
							genlinedir_597328(p, a);
							genvarinit_602903(p, v, (*a).kindU.S6.Sons->data[2]);
						}
						LA16: ;
					}
					LA9: ;
				}
				LA7: ;
				res_603461 += 1;
			} LA4: ;
		}
	}
}

N_NIMCALL(void, gencasejs_598363)(tproc595033* p, tnode225816* n, tcompres595023* r) {
	tcompres595023 cond;
	tcompres595023 stmt;
	NIM_BOOL stringswitch;
	ttype225852* LOC1;
	TY553703 LOC46;
	memset((void*)(&cond), 0, sizeof(cond));
	memset((void*)(&stmt), 0, sizeof(stmt));
	genlinedir_597328(p, n);
	gen_596138(p, (*n).kindU.S6.Sons->data[0], (&cond));
	LOC1 = 0;
	LOC1 = skiptypes_230245((*(*n).kindU.S6.Sons->data[0]).Typ, IL64(211106240964864));
	stringswitch = ((*LOC1).Kind == ((NU8) 28));
	{
		TY177515 LOC6;
		if (!stringswitch) goto LA4;
		usemagic_596168(p, ((NimStringDesc*) &TMP4540));
		memset((void*)LOC6, 0, sizeof(LOC6));
		LOC6[0] = rdloc_595139((&cond));
		appf_177115(&(*p).Body, ((NimStringDesc*) &TMP4566), LOC6, 1);
	}
	goto LA2;
	LA4: ;
	{
		TY177515 LOC8;
		memset((void*)LOC8, 0, sizeof(LOC8));
		LOC8[0] = rdloc_595139((&cond));
		appf_177115(&(*p).Body, ((NimStringDesc*) &TMP4567), LOC8, 1);
	}
	LA2: ;
	{
		NIM_BOOL LOC11;
		LOC11 = 0;
		LOC11 = isemptytype_232991((*n).Typ);
		if (!!(LOC11)) goto LA12;
		(*r).Kind = ((NU8) 2);
		unsureAsgnRef((void**) (&(*r).Res), gettemp_596313(p));
	}
	LA12: ;
	{
		NI i_598432;
		NI HEX3Atmp_598659;
		NI LOC15;
		NI res_598662;
		i_598432 = 0;
		HEX3Atmp_598659 = 0;
		LOC15 = 0;
		LOC15 = sonslen_226249(n);
		HEX3Atmp_598659 = (NI64)(LOC15 - 1);
		res_598662 = 1;
		{
			while (1) {
				tnode225816* it;
				if (!(res_598662 <= HEX3Atmp_598659)) goto LA17;
				i_598432 = res_598662;
				it = (*n).kindU.S6.Sons->data[i_598432];
				switch ((*it).Kind) {
				case ((NU8) 85):
				{
					tnode225816* LOC40;
					TY553703 LOC41;
					{
						NI j_598460;
						NI HEX3Atmp_598654;
						NI LOC20;
						NI res_598657;
						j_598460 = 0;
						HEX3Atmp_598654 = 0;
						LOC20 = 0;
						LOC20 = sonslen_226249(it);
						HEX3Atmp_598654 = (NI64)(LOC20 - 2);
						res_598657 = 0;
						{
							while (1) {
								tnode225816* e;
								if (!(res_598657 <= HEX3Atmp_598654)) goto LA22;
								j_598460 = res_598657;
								e = (*it).kindU.S6.Sons->data[j_598460];
								{
									tnode225816* v;
									if (!((*e).Kind == ((NU8) 44))) goto LA25;
									v = copynode_226323((*e).kindU.S6.Sons->data[0]);
									{
										while (1) {
											TY177515 LOC29;
											if (!((*v).kindU.S1.Intval <= (*(*e).kindU.S6.Sons->data[1]).kindU.S1.Intval)) goto LA28;
											gen_596138(p, v, (&cond));
											memset((void*)LOC29, 0, sizeof(LOC29));
											LOC29[0] = rdloc_595139((&cond));
											appf_177115(&(*p).Body, ((NimStringDesc*) &TMP4568), LOC29, 1);
											(*v).kindU.S1.Intval += 1;
										} LA28: ;
									}
								}
								goto LA23;
								LA25: ;
								{
									{
										if (!stringswitch) goto LA33;
										switch ((*e).Kind) {
										case ((NU8) 20) ... ((NU8) 22):
										{
											TY177515 LOC36;
											memset((void*)LOC36, 0, sizeof(LOC36));
											LOC36[0] = makejsstring_595344((*e).kindU.S3.Strval);
											appf_177115(&(*p).Body, ((NimStringDesc*) &TMP4568), LOC36, 1);
										}
										break;
										default:
										{
											internalerror_197987((*e).Info, ((NimStringDesc*) &TMP4569));
										}
										break;
										}
									}
									goto LA31;
									LA33: ;
									{
										TY177515 LOC39;
										gen_596138(p, e, (&cond));
										memset((void*)LOC39, 0, sizeof(LOC39));
										LOC39[0] = rdloc_595139((&cond));
										appf_177115(&(*p).Body, ((NimStringDesc*) &TMP4568), LOC39, 1);
									}
									LA31: ;
								}
								LA23: ;
								res_598657 += 1;
							} LA22: ;
						}
					}
					LOC40 = 0;
					LOC40 = lastson_226261(it);
					gen_596138(p, LOC40, (&stmt));
					moveinto_597653(p, (&stmt), (&(*r)));
					memset((void*)LOC41, 0, sizeof(LOC41));
					appf_177115(&(*p).Body, ((NimStringDesc*) &TMP4570), LOC41, 0);
				}
				break;
				case ((NU8) 88):
				{
					TY553703 LOC43;
					TY553703 LOC44;
					memset((void*)LOC43, 0, sizeof(LOC43));
					appf_177115(&(*p).Body, ((NimStringDesc*) &TMP4571), LOC43, 0);
					gen_596138(p, (*it).kindU.S6.Sons->data[0], (&stmt));
					moveinto_597653(p, (&stmt), (&(*r)));
					memset((void*)LOC44, 0, sizeof(LOC44));
					appf_177115(&(*p).Body, ((NimStringDesc*) &TMP4572), LOC44, 0);
				}
				break;
				default:
				{
					internalerror_197987((*it).Info, ((NimStringDesc*) &TMP4573));
				}
				break;
				}
				res_598662 += 1;
			} LA17: ;
		}
	}
	memset((void*)LOC46, 0, sizeof(LOC46));
	appf_177115(&(*p).Body, ((NimStringDesc*) &TMP4552), LOC46, 0);
}

N_NIMCALL(void, gencaselua_598694)(tproc595033* p, tnode225816* n, tcompres595023* r) {
	tcompres595023 cond;
	tcompres595023 stmt;
	NIM_BOOL stringswitch;
	ttype225852* LOC1;
	trope177009* tmp;
	TY588896 LOC6;
	TY553703 LOC52;
	memset((void*)(&cond), 0, sizeof(cond));
	memset((void*)(&stmt), 0, sizeof(stmt));
	genlinedir_597328(p, n);
	gen_596138(p, (*n).kindU.S6.Sons->data[0], (&cond));
	LOC1 = 0;
	LOC1 = skiptypes_230245((*(*n).kindU.S6.Sons->data[0]).Typ, IL64(211106240964864));
	stringswitch = ((*LOC1).Kind == ((NU8) 28));
	{
		if (!stringswitch) goto LA4;
		usemagic_596168(p, ((NimStringDesc*) &TMP4574));
	}
	LA4: ;
	tmp = gettemp_596313(p);
	memset((void*)LOC6, 0, sizeof(LOC6));
	LOC6[0] = tmp;
	LOC6[1] = rdloc_595139((&cond));
	appf_177115(&(*p).Body, ((NimStringDesc*) &TMP4464), LOC6, 2);
	{
		NIM_BOOL LOC9;
		LOC9 = 0;
		LOC9 = isemptytype_232991((*n).Typ);
		if (!!(LOC9)) goto LA10;
		(*r).Kind = ((NU8) 2);
		unsureAsgnRef((void**) (&(*r).Res), gettemp_596313(p));
	}
	LA10: ;
	{
		NI i_598759;
		NI HEX3Atmp_598944;
		NI LOC13;
		NI res_598947;
		i_598759 = 0;
		HEX3Atmp_598944 = 0;
		LOC13 = 0;
		LOC13 = sonslen_226249(n);
		HEX3Atmp_598944 = (NI64)(LOC13 - 1);
		res_598947 = 1;
		{
			while (1) {
				tnode225816* it;
				if (!(res_598947 <= HEX3Atmp_598944)) goto LA15;
				i_598759 = res_598947;
				it = (*n).kindU.S6.Sons->data[i_598759];
				switch ((*it).Kind) {
				case ((NU8) 85):
				{
					TY553703 LOC47;
					tnode225816* LOC48;
					{
						TY553703 LOC21;
						if (!!((i_598759 == 1))) goto LA19;
						memset((void*)LOC21, 0, sizeof(LOC21));
						appf_177115(&(*p).Body, ((NimStringDesc*) &TMP4575), LOC21, 0);
					}
					goto LA17;
					LA19: ;
					{
						TY553703 LOC23;
						memset((void*)LOC23, 0, sizeof(LOC23));
						appf_177115(&(*p).Body, ((NimStringDesc*) &TMP4576), LOC23, 0);
					}
					LA17: ;
					{
						NI j_598803;
						NI HEX3Atmp_598939;
						NI LOC25;
						NI res_598942;
						j_598803 = 0;
						HEX3Atmp_598939 = 0;
						LOC25 = 0;
						LOC25 = sonslen_226249(it);
						HEX3Atmp_598939 = (NI64)(LOC25 - 2);
						res_598942 = 0;
						{
							while (1) {
								tnode225816* e;
								if (!(res_598942 <= HEX3Atmp_598939)) goto LA27;
								j_598803 = res_598942;
								{
									if (!!((j_598803 == 0))) goto LA30;
									app_177060(&(*p).Body, ((NimStringDesc*) &TMP4577));
								}
								LA30: ;
								e = (*it).kindU.S6.Sons->data[j_598803];
								{
									tcompres595023 ia;
									tcompres595023 ib;
									TY554018 LOC36;
									if (!((*e).Kind == ((NU8) 44))) goto LA34;
									memset((void*)(&ia), 0, sizeof(ia));
									memset((void*)(&ib), 0, sizeof(ib));
									gen_596138(p, (*e).kindU.S6.Sons->data[0], (&ia));
									gen_596138(p, (*e).kindU.S6.Sons->data[1], (&ib));
									memset((void*)LOC36, 0, sizeof(LOC36));
									LOC36[0] = tmp;
									LOC36[1] = rdloc_595139((&ia));
									LOC36[2] = rdloc_595139((&ib));
									appf_177115(&(*p).Body, ((NimStringDesc*) &TMP4578), LOC36, 3);
								}
								goto LA32;
								LA34: ;
								{
									{
										if (!stringswitch) goto LA40;
										switch ((*e).Kind) {
										case ((NU8) 20) ... ((NU8) 22):
										{
											TY588896 LOC43;
											memset((void*)LOC43, 0, sizeof(LOC43));
											LOC43[0] = tmp;
											LOC43[1] = makejsstring_595344((*e).kindU.S3.Strval);
											appf_177115(&(*p).Body, ((NimStringDesc*) &TMP4579), LOC43, 2);
										}
										break;
										default:
										{
											internalerror_197987((*e).Info, ((NimStringDesc*) &TMP4569));
										}
										break;
										}
									}
									goto LA38;
									LA40: ;
									{
										TY588896 LOC46;
										gen_596138(p, e, (&cond));
										memset((void*)LOC46, 0, sizeof(LOC46));
										LOC46[0] = tmp;
										LOC46[1] = rdloc_595139((&cond));
										appf_177115(&(*p).Body, ((NimStringDesc*) &TMP4580), LOC46, 2);
									}
									LA38: ;
								}
								LA32: ;
								res_598942 += 1;
							} LA27: ;
						}
					}
					memset((void*)LOC47, 0, sizeof(LOC47));
					appf_177115(&(*p).Body, ((NimStringDesc*) &TMP4581), LOC47, 0);
					LOC48 = 0;
					LOC48 = lastson_226261(it);
					gen_596138(p, LOC48, (&stmt));
					moveinto_597653(p, (&stmt), (&(*r)));
				}
				break;
				case ((NU8) 88):
				{
					TY553703 LOC50;
					memset((void*)LOC50, 0, sizeof(LOC50));
					appf_177115(&(*p).Body, ((NimStringDesc*) &TMP4548), LOC50, 0);
					gen_596138(p, (*it).kindU.S6.Sons->data[0], (&stmt));
					moveinto_597653(p, (&stmt), (&(*r)));
				}
				break;
				default:
				{
					internalerror_197987((*it).Info, ((NimStringDesc*) &TMP4573));
				}
				break;
				}
				res_598947 += 1;
			} LA15: ;
		}
	}
	memset((void*)LOC52, 0, sizeof(LOC52));
	appf_177115(&(*p).Body, ((NimStringDesc*) &TMP4582), LOC52, 0);
}

N_NIMCALL(void, genreturnstmt_605122)(tproc595033* p, tnode225816* n) {
	NimStringDesc* LOC10;
	TY553703 LOC16;
	{
		if (!((*p).Procdef == NIM_NIL)) goto LA3;
		internalerror_197987((*n).Info, ((NimStringDesc*) &TMP4583));
	}
	LA3: ;
	(*p).Beforeretneeded = NIM_TRUE;
	{
		if (!!(((*(*n).kindU.S6.Sons->data[0]).Kind == ((NU8) 1)))) goto LA7;
		genstmt_596147(p, (*n).kindU.S6.Sons->data[0]);
	}
	goto LA5;
	LA7: ;
	{
		genlinedir_597328(p, n);
	}
	LA5: ;
	LOC10 = 0;
	{
		if (!((*p).Target == ((NU8) 0))) goto LA13;
		LOC10 = copyString(((NimStringDesc*) &TMP4584));
	}
	goto LA11;
	LA13: ;
	{
		LOC10 = copyString(((NimStringDesc*) &TMP4585));
	}
	LA11: ;
	memset((void*)LOC16, 0, sizeof(LOC16));
	appf_177115(&(*p).Body, LOC10, LOC16, 0);
}

N_NIMCALL(void, genbreakstmt_599159)(tproc595033* p, tnode225816* n) {
	NI idx;
	NimStringDesc* LOC16;
	TY177515 LOC22;
	idx = 0;
	genlinedir_597328(p, n);
	{
		tsym225846* sym;
		if (!!(((*(*n).kindU.S6.Sons->data[0]).Kind == ((NU8) 1)))) goto LA3;
		sym = (*(*n).kindU.S6.Sons->data[0]).kindU.S4.Sym;
		idx = (NI64)((*sym).Position - 1);
	}
	goto LA1;
	LA3: ;
	{
		idx = (NI64)((*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_197987((*n).Info, ((NimStringDesc*) &TMP4586));
		}
		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*) &TMP4587));
	}
	goto LA17;
	LA19: ;
	{
		LOC16 = copyString(((NimStringDesc*) &TMP4588));
	}
	LA17: ;
	memset((void*)LOC22, 0, sizeof(LOC22));
	LOC22[0] = torope_177082(((NI64) ((*p).Blocks->data[idx].Id)));
	appf_177115(&(*p).Body, LOC16, LOC22, 1);
}

N_NIMCALL(void, genasgnaux_600511)(tproc595033* p, tnode225816* x, tnode225816* y, NIM_BOOL nocopyneeded) {
	tcompres595023 a;
	tcompres595023 b;
	NU8 LOC1;
	memset((void*)(&a), 0, sizeof(a));
	memset((void*)(&b), 0, sizeof(b));
	gen_596138(p, x, (&a));
	gen_596138(p, y, (&b));
	LOC1 = 0;
	LOC1 = maptype_595291((*x).Typ);
	switch (LOC1) {
	case ((NU8) 7):
	{
		{
			NIM_BOOL LOC5;
			TY588896 LOC9;
			LOC5 = 0;
			LOC5 = needsnocopy_600474(y);
			if (LOC5) goto LA6;
			LOC5 = nocopyneeded;
			LA6: ;
			if (!LOC5) goto LA7;
			memset((void*)LOC9, 0, sizeof(LOC9));
			LOC9[0] = rdloc_595139((&a));
			LOC9[1] = rdloc_595139((&b));
			appf_177115(&(*p).Body, ((NimStringDesc*) &TMP4464), LOC9, 2);
		}
		goto LA3;
		LA7: ;
		{
			TY554018 LOC11;
			usemagic_596168(p, ((NimStringDesc*) &TMP4272));
			memset((void*)LOC11, 0, sizeof(LOC11));
			LOC11[0] = a.Res;
			LOC11[1] = b.Res;
			LOC11[2] = gentypeinfo_595354(p, (*y).Typ);
			appf_177115(&(*p).Body, ((NimStringDesc*) &TMP4589), LOC11, 3);
		}
		LA3: ;
	}
	break;
	case ((NU8) 8):
	{
		TY556046 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_197987((*x).Info, ((NimStringDesc*) &TMP4590));
		}
		LA17: ;
		memset((void*)LOC19, 0, sizeof(LOC19));
		LOC19[0] = a.Address;
		LOC19[1] = b.Address;
		LOC19[2] = a.Res;
		LOC19[3] = b.Res;
		appf_177115(&(*p).Body, ((NimStringDesc*) &TMP4591), LOC19, 4);
	}
	break;
	default:
	{
		TY588896 LOC21;
		memset((void*)LOC21, 0, sizeof(LOC21));
		LOC21[0] = a.Res;
		LOC21[1] = b.Res;
		appf_177115(&(*p).Body, ((NimStringDesc*) &TMP4464), LOC21, 2);
	}
	break;
	}
}

N_NIMCALL(void, genasgn_600567)(tproc595033* p, tnode225816* n) {
	genlinedir_597328(p, n);
	genasgnaux_600511(p, (*n).kindU.S6.Sons->data[0], (*n).kindU.S6.Sons->data[1], NIM_FALSE);
}

N_NIMCALL(void, genfastasgn_600605)(tproc595033* p, tnode225816* n) {
	genlinedir_597328(p, n);
	genasgnaux_600511(p, (*n).kindU.S6.Sons->data[0], (*n).kindU.S6.Sons->data[1], NIM_TRUE);
}

N_NIMCALL(void, genasmstmt_599653)(tproc595033* p, tnode225816* n) {
	genlinedir_597328(p, n);
	{
		NI i_599813;
		NI HEX3Atmp_599901;
		NI LOC2;
		NI res_599904;
		i_599813 = 0;
		HEX3Atmp_599901 = 0;
		LOC2 = 0;
		LOC2 = sonslen_226249(n);
		HEX3Atmp_599901 = (NI64)(LOC2 - 1);
		res_599904 = 0;
		{
			while (1) {
				if (!(res_599904 <= HEX3Atmp_599901)) goto LA4;
				i_599813 = res_599904;
				switch ((*(*n).kindU.S6.Sons->data[i_599813]).Kind) {
				case ((NU8) 20) ... ((NU8) 22):
				{
					app_177060(&(*p).Body, (*(*n).kindU.S6.Sons->data[i_599813]).kindU.S3.Strval);
				}
				break;
				case ((NU8) 3):
				{
					trope177009* LOC7;
					LOC7 = 0;
					LOC7 = manglename_595315((*(*n).kindU.S6.Sons->data[i_599813]).kindU.S4.Sym);
					app_177052(&(*p).Body, LOC7);
				}
				break;
				default:
				{
					internalerror_197987((*(*n).kindU.S6.Sons->data[i_599813]).Info, ((NimStringDesc*) &TMP4592));
				}
				break;
				}
				res_599904 += 1;
			} LA4: ;
		}
	}
}

N_NIMCALL(void, gentry_597693)(tproc595033* p, tnode225816* n, tcompres595023* r) {
	trope177009* safepoint;
	TY177515 LOC6;
	NimStringDesc* LOC7;
	TY177515 LOC13;
	NimStringDesc* LOC19;
	TY553703 LOC25;
	NI length;
	tcompres595023 a;
	NI i;
	genlinedir_597328(p, n);
	{
		NIM_BOOL LOC3;
		LOC3 = 0;
		LOC3 = isemptytype_232991((*n).Typ);
		if (!!(LOC3)) goto LA4;
		(*r).Kind = ((NU8) 2);
		unsureAsgnRef((void**) (&(*r).Res), gettemp_596313(p));
	}
	LA4: ;
	(*p).Unique += 1;
	memset((void*)LOC6, 0, sizeof(LOC6));
	LOC6[0] = torope_177082(((NI64) ((*p).Unique)));
	safepoint = ropef_177107(((NimStringDesc*) &TMP4328), LOC6, 1);
	LOC7 = 0;
	{
		if (!((*p).Target == ((NU8) 0))) goto LA10;
		LOC7 = copyString(((NimStringDesc*) &TMP4593));
	}
	goto LA8;
	LA10: ;
	{
		LOC7 = copyString(((NimStringDesc*) &TMP4594));
	}
	LA8: ;
	memset((void*)LOC13, 0, sizeof(LOC13));
	LOC13[0] = safepoint;
	appf_177115(&(*p).Body, LOC7, LOC13, 1);
	{
		NimStringDesc* LOC18;
		if (!(((*p).Options &(1<<((((NU8) 15))&31)))!=0)) goto LA16;
		LOC18 = 0;
		LOC18 = rawNewString(tnl_174613->Sup.len + 13);
appendString(LOC18, ((NimStringDesc*) &TMP4595));
appendString(LOC18, tnl_174613);
		app_177060(&(*p).Body, LOC18);
	}
	LA16: ;
	LOC19 = 0;
	{
		if (!((*p).Target == ((NU8) 0))) goto LA22;
		LOC19 = copyString(((NimStringDesc*) &TMP4596));
	}
	goto LA20;
	LA22: ;
	{
		LOC19 = copyString(((NimStringDesc*) &TMP4597));
	}
	LA20: ;
	memset((void*)LOC25, 0, sizeof(LOC25));
	appf_177115(&(*p).Body, LOC19, LOC25, 0);
	length = sonslen_226249(n);
	memset((void*)(&a), 0, sizeof(a));
	gen_596138(p, (*n).kindU.S6.Sons->data[0], (&a));
	moveinto_597653(p, (&a), (&(*r)));
	i = 1;
	{
		NIM_BOOL LOC28;
		NIM_BOOL LOC29;
		TY553703 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_177115(&(*p).Body, ((NimStringDesc*) &TMP4598), LOC34, 0);
	}
	goto LA26;
	LA32: ;
	{
		TY553703 LOC38;
		if (!((*p).Target == ((NU8) 1))) goto LA36;
		memset((void*)LOC38, 0, sizeof(LOC38));
		appf_177115(&(*p).Body, ((NimStringDesc*) &TMP4599), 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_226249((*n).kindU.S6.Sons->data[i]);
			{
				if (!(blen == 1)) goto LA45;
				{
					NimStringDesc* LOC51;
					TY553703 LOC57;
					if (!(1 < i)) goto LA49;
					LOC51 = 0;
					{
						if (!((*p).Target == ((NU8) 0))) goto LA54;
						LOC51 = copyString(((NimStringDesc*) &TMP4547));
					}
					goto LA52;
					LA54: ;
					{
						LOC51 = copyString(((NimStringDesc*) &TMP4548));
					}
					LA52: ;
					memset((void*)LOC57, 0, sizeof(LOC57));
					appf_177115(&(*p).Body, LOC51, LOC57, 0);
				}
				LA49: ;
				gen_596138(p, (*(*n).kindU.S6.Sons->data[i]).kindU.S6.Sons->data[0], (&a));
				moveinto_597653(p, (&a), (&(*r)));
				{
					NimStringDesc* LOC62;
					TY553703 LOC68;
					if (!(1 < i)) goto LA60;
					LOC62 = 0;
					{
						if (!((*p).Target == ((NU8) 0))) goto LA65;
						LOC62 = copyString(((NimStringDesc*) &TMP4552));
					}
					goto LA63;
					LA65: ;
					{
						LOC62 = copyString(((NimStringDesc*) &TMP4553));
					}
					LA63: ;
					memset((void*)LOC68, 0, sizeof(LOC68));
					appf_177115(&(*p).Body, LOC62, LOC68, 0);
				}
				LA60: ;
			}
			goto LA43;
			LA45: ;
			{
				trope177009* orexpr;
				NimStringDesc* LOC92;
				TY588896 LOC98;
				NimStringDesc* LOC99;
				TY553703 LOC105;
				orexpr = NIM_NIL;
				usemagic_596168(p, ((NimStringDesc*) &TMP4495));
				{
					NI j_597956;
					NI HEX3Atmp_598266;
					NI res_598269;
					j_597956 = 0;
					HEX3Atmp_598266 = 0;
					HEX3Atmp_598266 = (NI64)(blen - 2);
					res_598269 = 0;
					{
						while (1) {
							TY588896 LOC87;
							if (!(res_598269 <= HEX3Atmp_598266)) goto LA72;
							j_597956 = res_598269;
							{
								if (!!(((*(*(*n).kindU.S6.Sons->data[i]).kindU.S6.Sons->data[j_597956]).Kind == ((NU8) 4)))) goto LA75;
								internalerror_197987((*n).Info, ((NimStringDesc*) &TMP4600));
							}
							LA75: ;
							{
								NimStringDesc* LOC81;
								if (!!((orexpr == NIM_NIL))) goto LA79;
								LOC81 = 0;
								{
									if (!((*p).Target == ((NU8) 0))) goto LA84;
									LOC81 = copyString(((NimStringDesc*) &TMP4601));
								}
								goto LA82;
								LA84: ;
								{
									LOC81 = copyString(((NimStringDesc*) &TMP4577));
								}
								LA82: ;
								app_177060(&orexpr, LOC81);
							}
							LA79: ;
							memset((void*)LOC87, 0, sizeof(LOC87));
							LOC87[0] = safepoint;
							LOC87[1] = gentypeinfo_595354(p, (*(*(*n).kindU.S6.Sons->data[i]).kindU.S6.Sons->data[j_597956]).Typ);
							appf_177115(&orexpr, ((NimStringDesc*) &TMP4602), LOC87, 2);
							res_598269 += 1;
						} LA72: ;
					}
				}
				{
					if (!(1 < i)) goto LA90;
					app_177060(&(*p).Body, ((NimStringDesc*) &TMP4603));
				}
				LA90: ;
				LOC92 = 0;
				{
					if (!((*p).Target == ((NU8) 0))) goto LA95;
					LOC92 = copyString(((NimStringDesc*) &TMP4604));
				}
				goto LA93;
				LA95: ;
				{
					LOC92 = copyString(((NimStringDesc*) &TMP4605));
				}
				LA93: ;
				memset((void*)LOC98, 0, sizeof(LOC98));
				LOC98[0] = safepoint;
				LOC98[1] = orexpr;
				appf_177115(&(*p).Body, LOC92, LOC98, 2);
				gen_596138(p, (*(*n).kindU.S6.Sons->data[i]).kindU.S6.Sons->data[(NI64)(blen - 1)], (&a));
				moveinto_597653(p, (&a), (&(*r)));
				LOC99 = 0;
				{
					if (!((*p).Target == ((NU8) 0))) goto LA102;
					LOC99 = copyString(((NimStringDesc*) &TMP4552));
				}
				goto LA100;
				LA102: ;
				{
					LOC99 = copyString(((NimStringDesc*) &TMP4553));
				}
				LA100: ;
				memset((void*)LOC105, 0, sizeof(LOC105));
				appf_177115(&(*p).Body, LOC99, LOC105, 0);
			}
			LA43: ;
			i += 1;
		} LA40: ;
	}
	{
		NimStringDesc* LOC110;
		if (!((*p).Target == ((NU8) 0))) goto LA108;
		LOC110 = 0;
		LOC110 = rawNewString(tnl_174613->Sup.len + tnl_174613->Sup.len + 40);
appendString(LOC110, ((NimStringDesc*) &TMP4606));
appendString(LOC110, tnl_174613);
appendString(LOC110, ((NimStringDesc*) &TMP4607));
appendString(LOC110, tnl_174613);
		app_177060(&(*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_596147(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_174613->Sup.len + 1);
appendString(LOC121, ((NimStringDesc*) &TMP4298));
appendString(LOC121, tnl_174613);
		app_177060(&(*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_596147(p, (*(*n).kindU.S6.Sons->data[i]).kindU.S6.Sons->data[0]);
		}
		LA130: ;
	}
	LA124: ;
}

N_NIMCALL(void, genraisestmt_598292)(tproc595033* p, tnode225816* n) {
	genlinedir_597328(p, n);
	{
		tcompres595023 a;
		ttype225852* typ;
		TY588896 LOC5;
		if (!!(((*(*n).kindU.S6.Sons->data[0]).Kind == ((NU8) 1)))) goto LA3;
		memset((void*)(&a), 0, sizeof(a));
		gen_596138(p, (*n).kindU.S6.Sons->data[0], (&a));
		typ = skiptypes_230245((*(*n).kindU.S6.Sons->data[0]).Typ, IL64(211106247256320));
		usemagic_596168(p, ((NimStringDesc*) &TMP4608));
		memset((void*)LOC5, 0, sizeof(LOC5));
		LOC5[0] = rdloc_595139((&a));
		LOC5[1] = makejsstring_595344((*(*(*typ).Sym).Name).S);
		appf_177115(&(*p).Body, ((NimStringDesc*) &TMP4609), LOC5, 2);
	}
	goto LA1;
	LA3: ;
	{
		NimStringDesc* LOC7;
		usemagic_596168(p, ((NimStringDesc*) &TMP4610));
		LOC7 = 0;
		LOC7 = rawNewString(tnl_174613->Sup.len + 19);
appendString(LOC7, ((NimStringDesc*) &TMP4611));
appendString(LOC7, tnl_174613);
		app_177060(&(*p).Body, LOC7);
	}
	LA1: ;
}

N_NIMCALL(void, gen_596138)(tproc595033* p, tnode225816* n, tcompres595023* r) {
	(*r).Typ = ((NU8) 0);
	(*r).Kind = ((NU8) 0);
	unsureAsgnRef((void**) (&(*r).Res), NIM_NIL);
	switch ((*n).Kind) {
	case ((NU8) 3):
	{
		gensym_601663(p, n, r);
	}
	break;
	case ((NU8) 5) ... ((NU8) 10):
	{
		unsureAsgnRef((void**) (&(*r).Res), torope_177082((*n).kindU.S1.Intval));
		(*r).Kind = ((NU8) 1);
	}
	break;
	case ((NU8) 23):
	{
		{
			NIM_BOOL LOC6;
			LOC6 = 0;
			LOC6 = isemptytype_232991((*n).Typ);
			if (!LOC6) goto LA7;
		}
		goto LA4;
		LA7: ;
		{
			NU8 LOC10;
			LOC10 = 0;
			LOC10 = maptype_595291((*n).Typ);
			if (!(LOC10 == ((NU8) 8))) goto LA11;
			(*r).Typ = ((NU8) 8);
			{
				if (!((*p).Target == ((NU8) 0))) goto LA15;
				unsureAsgnRef((void**) (&(*r).Address), torope_177076(((NimStringDesc*) &TMP4317)));
			}
			goto LA13;
			LA15: ;
			{
				unsureAsgnRef((void**) (&(*r).Address), torope_177076(((NimStringDesc*) &TMP4318)));
			}
			LA13: ;
			unsureAsgnRef((void**) (&(*r).Res), torope_177076(((NimStringDesc*) &TMP4319)));
			(*r).Kind = ((NU8) 1);
		}
		goto LA4;
		LA11: ;
		{
			{
				if (!((*p).Target == ((NU8) 0))) goto LA21;
				unsureAsgnRef((void**) (&(*r).Res), torope_177076(((NimStringDesc*) &TMP4317)));
			}
			goto LA19;
			LA21: ;
			{
				unsureAsgnRef((void**) (&(*r).Res), torope_177076(((NimStringDesc*) &TMP4318)));
			}
			LA19: ;
			(*r).Kind = ((NU8) 1);
		}
		LA4: ;
	}
	break;
	case ((NU8) 20) ... ((NU8) 22):
	{
		{
			ttype225852* LOC27;
			TY177515 LOC30;
			LOC27 = 0;
			LOC27 = skiptypes_230245((*n).Typ, IL64(211106242013440));
			if (!((*LOC27).Kind == ((NU8) 28))) goto LA28;
			usemagic_596168(p, ((NimStringDesc*) &TMP4320));
			memset((void*)LOC30, 0, sizeof(LOC30));
			LOC30[0] = makejsstring_595344((*n).kindU.S3.Strval);
			unsureAsgnRef((void**) (&(*r).Res), ropef_177107(((NimStringDesc*) &TMP4321), LOC30, 1));
		}
		goto LA25;
		LA28: ;
		{
			unsureAsgnRef((void**) (&(*r).Res), makejsstring_595344((*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_177076(((NimStringDesc*) &TMP4322)));
		}
		goto LA33;
		LA35: ;
		{
			if (!(f == 0.0)) goto LA38;
			unsureAsgnRef((void**) (&(*r).Res), torope_177076(((NimStringDesc*) &TMP4323)));
		}
		goto LA33;
		LA38: ;
		{
			if (!(f == ((NF)(5.0000000000000000e-01) * (NF)(f)))) goto LA41;
			{
				if (!(0.0 < f)) goto LA45;
				unsureAsgnRef((void**) (&(*r).Res), torope_177076(((NimStringDesc*) &TMP4324)));
			}
			goto LA43;
			LA45: ;
			{
				unsureAsgnRef((void**) (&(*r).Res), torope_177076(((NimStringDesc*) &TMP4325)));
			}
			LA43: ;
		}
		goto LA33;
		LA41: ;
		{
			NimStringDesc* LOC49;
			LOC49 = 0;
			LOC49 = tostrmaxprecision_234024(f);
			unsureAsgnRef((void**) (&(*r).Res), torope_177076(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_604024(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_226364(n);
			LOC58 = (2 <= LOC62);
			LA61: ;
			if (!LOC58) goto LA63;
			geninfixcall_602214(p, n, r);
		}
		goto LA51;
		LA63: ;
		{
			gencall_602188(p, n, r);
		}
		LA51: ;
	}
	break;
	case ((NU8) 39):
	{
		gensetconstr_604322(p, n, r);
	}
	break;
	case ((NU8) 41):
	{
		genarrayconstr_604430(p, n, r);
	}
	break;
	case ((NU8) 37):
	{
		gentupleconstr_604491(p, n, r);
	}
	break;
	case ((NU8) 38):
	{
		genobjconstr_604589(p, n, r);
	}
	break;
	case ((NU8) 58):
	case ((NU8) 59):
	case ((NU8) 60):
	{
		genconv_604749(p, n, r);
	}
	break;
	case ((NU8) 63):
	case ((NU8) 64):
	{
		genaddr_601481(p, n, r);
	}
	break;
	case ((NU8) 47):
	case ((NU8) 65):
	{
		genderef_602018(p, n, r);
	}
	break;
	case ((NU8) 42):
	{
		genarrayaccess_601412(p, n, r);
	}
	break;
	case ((NU8) 45):
	{
		genfieldaccess_601027(p, n, r);
	}
	break;
	case ((NU8) 46):
	{
		gencheckedfieldaccess_601207(p, n, r);
	}
	break;
	case ((NU8) 66):
	{
		gen_596138(p, (*n).kindU.S6.Sons->data[0], r);
	}
	break;
	case ((NU8) 67):
	{
		upconv_604822(p, n, r);
	}
	break;
	case ((NU8) 61):
	{
		gen_596138(p, (*n).kindU.S6.Sons->data[1], r);
	}
	break;
	case ((NU8) 68):
	{
		genrangechck_604848(p, n, r, ((NimStringDesc*) &TMP4537));
	}
	break;
	case ((NU8) 69):
	{
		genrangechck_604848(p, n, r, ((NimStringDesc*) &TMP4538));
	}
	break;
	case ((NU8) 70):
	{
		genrangechck_604848(p, n, r, ((NimStringDesc*) &TMP4535));
	}
	break;
	case ((NU8) 71):
	{
		convstrtocstr_604926(p, n, r);
	}
	break;
	case ((NU8) 72):
	{
		convcstrtostr_605024(p, n, r);
	}
	break;
	case ((NU8) 1):
	{
	}
	break;
	case ((NU8) 51):
	case ((NU8) 52):
	{
		tsym225846* s;
		trope177009* LOC86;
		s = (*(*n).kindU.S6.Sons->data[0]).kindU.S4.Sym;
		LOC86 = 0;
		LOC86 = manglename_595315(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;
			trope177009* LOC97;
			LOC94 = 0;
			LOC94 = containsorincl_222916((&(*(*p).G).Generatedsyms), (*s).Sup.Id);
			if (!!(LOC94)) goto LA95;
			LOC97 = 0;
			LOC97 = genproc_596154(p, s);
			app_177052(&(*p).Locals, LOC97);
		}
		goto LA87;
		LA95: ;
		LA87: ;
	}
	break;
	case ((NU8) 4):
	{
		unsureAsgnRef((void**) (&(*r).Res), gentypeinfo_595354(p, (*n).Typ));
	}
	break;
	case ((NU8) 115):
	case ((NU8) 126):
	{
		NIM_BOOL isexpr;
		NIM_BOOL LOC100;
		LOC100 = 0;
		LOC100 = isemptytype_232991((*n).Typ);
		isexpr = !(LOC100);
		{
			NI i_605785;
			NI HEX3Atmp_605932;
			NI LOC102;
			NI res_605935;
			i_605785 = 0;
			HEX3Atmp_605932 = 0;
			LOC102 = 0;
			LOC102 = sonslen_226249(n);
			HEX3Atmp_605932 = (NI64)((NI64)(LOC102 - 1) - ((NI) (isexpr)));
			res_605935 = 0;
			{
				while (1) {
					if (!(res_605935 <= HEX3Atmp_605932)) goto LA104;
					i_605785 = res_605935;
					genstmt_596147(p, (*n).kindU.S6.Sons->data[i_605785]);
					res_605935 += 1;
				} LA104: ;
			}
		}
		{
			tnode225816* LOC109;
			if (!isexpr) goto LA107;
			LOC109 = 0;
			LOC109 = lastson_226261(n);
			gen_596138(p, LOC109, r);
		}
		LA107: ;
	}
	break;
	case ((NU8) 112):
	case ((NU8) 127):
	{
		genblock_598973(p, n, r);
	}
	break;
	case ((NU8) 92):
	case ((NU8) 48):
	{
		genif_599921(p, n, r);
	}
	break;
	case ((NU8) 96):
	{
		genwhilestmt_597506(p, n);
	}
	break;
	case ((NU8) 99):
	case ((NU8) 100):
	{
		genvarstmt_603048(p, n);
	}
	break;
	case ((NU8) 101):
	{
	}
	break;
	case ((NU8) 94):
	case ((NU8) 95):
	{
		internalerror_197987((*n).Info, ((NimStringDesc*) &TMP4565));
	}
	break;
	case ((NU8) 97):
	{
		{
			if (!((*p).Target == ((NU8) 0))) goto LA119;
			gencasejs_598363(p, n, r);
		}
		goto LA117;
		LA119: ;
		{
			gencaselua_598694(p, n, r);
		}
		LA117: ;
	}
	break;
	case ((NU8) 109):
	{
		genreturnstmt_605122(p, n);
	}
	break;
	case ((NU8) 110):
	{
		genbreakstmt_599159(p, n);
	}
	break;
	case ((NU8) 73):
	{
		genasgn_600567(p, n);
	}
	break;
	case ((NU8) 74):
	{
		genfastasgn_600605(p, n);
	}
	break;
	case ((NU8) 114):
	{
		{
			if (!!(((*(*n).kindU.S6.Sons->data[0]).Kind == ((NU8) 1)))) goto LA129;
			genlinedir_597328(p, n);
			gen_596138(p, (*n).kindU.S6.Sons->data[0], r);
		}
		LA129: ;
	}
	break;
	case ((NU8) 89):
	{
		genasmstmt_599653(p, n);
	}
	break;
	case ((NU8) 106):
	{
		gentry_597693(p, n, r);
	}
	break;
	case ((NU8) 108):
	{
		genraisestmt_598292(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):
	{
		tsym225846* s;
		s = (*(*n).kindU.S6.Sons->data[0]).kindU.S4.Sym;
		{
			if (!((65600 & (*s).Flags) == 64)) goto LA138;
			gensym_601663(p, (*n).kindU.S6.Sons->data[0], r);
			unsureAsgnRef((void**) (&(*r).Res), NIM_NIL);
		}
		LA138: ;
	}
	break;
	case ((NU8) 155):
	case ((NU8) 156):
	{
		internalerror_197987((*n).Info, ((NimStringDesc*) &TMP4612));
	}
	break;
	case ((NU8) 91):
	{
		tnode225816* LOC142;
		LOC142 = 0;
		LOC142 = lastson_226261(n);
		gen_596138(p, LOC142, r);
	}
	break;
	default:
	{
		NimStringDesc* LOC144;
		LOC144 = 0;
		LOC144 = rawNewString(reprEnum((*n).Kind, (&NTI225029))->Sup.len + 24);
appendString(LOC144, ((NimStringDesc*) &TMP4613));
appendString(LOC144, reprEnum((*n).Kind, (&NTI225029)));
		internalerror_197987((*n).Info, LOC144);
	}
	break;
	}
}

N_NIMCALL(void, genstmt_596147)(tproc595033* p, tnode225816* n) {
	tcompres595023 r;
	memset((void*)(&r), 0, sizeof(r));
	gen_596138(p, n, (&r));
	{
		TY177515 LOC5;
		if (!!((r.Res == NIM_NIL))) goto LA3;
		memset((void*)LOC5, 0, sizeof(LOC5));
		LOC5[0] = r.Res;
		appf_177115(&(*p).Body, ((NimStringDesc*) &TMP4614), LOC5, 1);
	}
	LA3: ;
}

N_NIMCALL(void, genmodule_606013)(tproc595033* p, tnode225816* n) {
	{
		TY588896 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*) &TMP4243));
appendString(LOC6, (*(*(*(*p).Module).Module).Name).S);
		LOC5[0] = makejsstring_595344(LOC6);
		LOC7 = 0;
		LOC7 = tofilename_197025((*(*(*p).Module).Module).Info.Fileindex);
		LOC5[1] = makejsstring_595344(LOC7);
		appf_177115(&(*p).Body, ((NimStringDesc*) &TMP4241), LOC5, 2);
	}
	LA3: ;
	genstmt_596147(p, n);
	{
		TY553703 LOC12;
		if (!(((*p).Options &(1<<((((NU8) 15))&31)))!=0)) goto LA10;
		memset((void*)LOC12, 0, sizeof(LOC12));
		appf_177115(&(*p).Body, ((NimStringDesc*) &TMP4615), LOC12, 0);
	}
	LA10: ;
}

N_NIMCALL(tnode225816*, myprocess_606062)(tpasscontext286005* b, tnode225816* n) {
	tnode225816* result;
	tjsgen595015* m;
	tproc595033* p;
	result = 0;
	{
		NIM_BOOL LOC3;
		LOC3 = 0;
		LOC3 = skipcodegen_286083(n);
		if (!LOC3) goto LA4;
		result = n;
		goto BeforeRet;
	}
	LA4: ;
	result = n;
	m = ((tjsgen595015*) (b));
	{
		if (!((*m).Module == NIM_NIL)) goto LA8;
		internalerror_197987((*n).Info, ((NimStringDesc*) &TMP4233));
	}
	LA8: ;
	p = newproc_595207(globals_605952, m, NIM_NIL, (*(*m).Module).Options);
	genmodule_606013(p, n);
	app_177052(&(*(*p).G).Code, (*p).Locals);
	app_177052(&(*(*p).G).Code, (*p).Body);
	BeforeRet: ;
	return result;
}

N_NIMCALL(trope177009*, wholecode_606094)(tjsgen595015* m) {
	trope177009* result;
	tnode225816* disp;
	result = 0;
	{
		tsym225846* prc_606110;
		tsymseq225818* HEX3Atmp_606161;
		NI i_606164;
		NI l_606166;
		prc_606110 = 0;
		HEX3Atmp_606161 = 0;
		HEX3Atmp_606161 = (*globals_605952).Forwarded;
		i_606164 = 0;
		l_606166 = HEX3Atmp_606161->Sup.len;
		{
			while (1) {
				if (!(i_606164 < l_606166)) goto LA3;
				prc_606110 = HEX3Atmp_606161->data[i_606164];
				{
					NIM_BOOL LOC6;
					tproc595033* p;
					trope177009* LOC9;
					LOC6 = 0;
					LOC6 = containsorincl_222916((&(*globals_605952).Generatedsyms), (*prc_606110).Sup.Id);
					if (!!(LOC6)) goto LA7;
					p = newproc_595207(globals_605952, m, NIM_NIL, (*(*m).Module).Options);
					LOC9 = 0;
					LOC9 = genproc_596154(p, prc_606110);
					app_177052(&(*(*p).G).Code, LOC9);
				}
				LA7: ;
				i_606164 += 1;
			} LA3: ;
		}
	}
	disp = generatemethoddispatchers_423508();
	{
		NI i_606125;
		NI HEX3Atmp_606168;
		NI LOC11;
		NI res_606171;
		i_606125 = 0;
		HEX3Atmp_606168 = 0;
		LOC11 = 0;
		LOC11 = sonslen_226249(disp);
		HEX3Atmp_606168 = (NI64)(LOC11 - 1);
		res_606171 = 0;
		{
			while (1) {
				tsym225846* prc;
				if (!(res_606171 <= HEX3Atmp_606168)) goto LA13;
				i_606125 = res_606171;
				prc = (*(*disp).kindU.S6.Sons->data[i_606125]).kindU.S4.Sym;
				{
					NIM_BOOL LOC16;
					tproc595033* p;
					trope177009* LOC19;
					LOC16 = 0;
					LOC16 = containsorincl_222916((&(*globals_605952).Generatedsyms), (*prc).Sup.Id);
					if (!!(LOC16)) goto LA17;
					p = newproc_595207(globals_605952, m, NIM_NIL, (*(*m).Module).Options);
					LOC19 = 0;
					LOC19 = genproc_596154(p, prc);
					app_177052(&(*(*p).G).Code, LOC19);
				}
				LA17: ;
				res_606171 += 1;
			} LA13: ;
		}
	}
	result = con_177024((*globals_605952).Typeinfo, (*globals_605952).Code);
	return result;
}

N_NIMCALL(trope177009*, genheader_606000)(void) {
	trope177009* result;
	TY177515 LOC1;
	result = 0;
	memset((void*)LOC1, 0, sizeof(LOC1));
	LOC1[0] = torope_177076(((NimStringDesc*) &TMP4618));
	result = ropef_177107(((NimStringDesc*) &TMP4617), LOC1, 1);
	return result;
}

N_NIMCALL(tnode225816*, myclose_606197)(tpasscontext286005* b, tnode225816* n) {
	tnode225816* result;
	tjsgen595015* m;
	result = 0;
	{
		NIM_BOOL LOC3;
		LOC3 = 0;
		LOC3 = skipcodegen_286083(n);
		if (!LOC3) goto LA4;
		result = n;
		goto BeforeRet;
	}
	LA4: ;
	result = myprocess_606062(b, n);
	m = ((tjsgen595015*) (b));
	{
		trope177009* code;
		NimStringDesc* outfile;
		trope177009* LOC24;
		trope177009* LOC25;
		NIM_BOOL LOC26;
		if (!(((*(*m).Module).Flags &(1<<((((NU8) 12))&31)))!=0)) goto LA8;
		code = wholecode_606094(m);
		{
			if (!(0 < outfile_169124->Sup.len)) goto LA12;
			{
				NIM_BOOL LOC16;
				LOC16 = 0;
				LOC16 = nosisAbsolute(outfile_169124);
				if (!LOC16) goto LA17;
				outfile = outfile_169124;
			}
			goto LA14;
			LA17: ;
			{
				NimStringDesc* LOC20;
				LOC20 = 0;
				LOC20 = nosgetCurrentDir();
				outfile = HEX2F_117499(LOC20, outfile_169124);
			}
			LA14: ;
		}
		goto LA10;
		LA12: ;
		{
			NimStringDesc* LOC22;
			NimStringDesc* LOC23;
			LOC22 = 0;
			LOC22 = tofilename_197025(((NI32) ((*(*m).Module).Position)));
			LOC23 = 0;
			LOC23 = completecfilepath_202855(LOC22, NIM_TRUE);
			outfile = noschangeFileExt(LOC23, ((NimStringDesc*) &TMP4616));
		}
		LA10: ;
		LOC24 = 0;
		LOC24 = genheader_606000();
		LOC25 = 0;
		LOC25 = con_177024(LOC24, code);
		LOC26 = 0;
		LOC26 = writeropeifnotequal_177094(LOC25, outfile);
	}
	LA8: ;
	BeforeRet: ;
	return result;
}
NIM_EXTERNC N_NOINLINE(void, HEX00_jsgenInit)(void) {
}

NIM_EXTERNC N_NOINLINE(void, HEX00_jsgenDatInit)(void) {
static TNimNode* TMP4230[5];
static TNimNode* TMP4234[12];
static TNimNode* TMP4235[2];
NI TMP4237;
static char* NIM_CONST TMP4236[2] = {
"targetJS", 
"targetLua"};
static TNimNode* TMP4238[2];
static TNimNode TMP981[26];
NTI595015.size = sizeof(tjsgen595015);
NTI595015.kind = 17;
NTI595015.base = (&NTI286005);
TMP981[0].kind = 1;
TMP981[0].offset = offsetof(tjsgen595015, Module);
TMP981[0].typ = (&NTI225814);
TMP981[0].name = "module";
NTI595015.node = &TMP981[0];
NTI595017.size = sizeof(tjsgen595015*);
NTI595017.kind = 22;
NTI595017.base = (&NTI595015);
NTI595017.marker = TMP4229;
NTI595027.size = sizeof(tglobals595027);
NTI595027.kind = 18;
NTI595027.base = 0;
NTI595027.flags = 2;
TMP4230[0] = &TMP981[2];
TMP981[2].kind = 1;
TMP981[2].offset = offsetof(tglobals595027, Typeinfo);
TMP981[2].typ = (&NTI177007);
TMP981[2].name = "typeInfo";
TMP4230[1] = &TMP981[3];
TMP981[3].kind = 1;
TMP981[3].offset = offsetof(tglobals595027, Code);
TMP981[3].typ = (&NTI177007);
TMP981[3].name = "code";
TMP4230[2] = &TMP981[4];
TMP981[4].kind = 1;
TMP981[4].offset = offsetof(tglobals595027, Forwarded);
TMP981[4].typ = (&NTI225818);
TMP981[4].name = "forwarded";
TMP4230[3] = &TMP981[5];
TMP981[5].kind = 1;
TMP981[5].offset = offsetof(tglobals595027, Generatedsyms);
TMP981[5].typ = (&NTI222056);
TMP981[5].name = "generatedSyms";
TMP4230[4] = &TMP981[6];
TMP981[6].kind = 1;
TMP981[6].offset = offsetof(tglobals595027, Typeinfogenerated);
TMP981[6].typ = (&NTI222056);
TMP981[6].name = "typeInfoGenerated";
TMP981[1].len = 5; TMP981[1].kind = 2; TMP981[1].sons = &TMP4230[0];
NTI595027.node = &TMP981[1];
NTI595029.size = sizeof(tglobals595027*);
NTI595029.kind = 22;
NTI595029.base = (&NTI595027);
NTI595029.flags = 2;
NTI595029.marker = TMP4231;
NTI595033.size = sizeof(tproc595033);
NTI595033.kind = 18;
NTI595033.base = 0;
TMP4234[0] = &TMP981[8];
TMP981[8].kind = 1;
TMP981[8].offset = offsetof(tproc595033, Procdef);
TMP981[8].typ = (&NTI225808);
TMP981[8].name = "procDef";
TMP4234[1] = &TMP981[9];
TMP981[9].kind = 1;
TMP981[9].offset = offsetof(tproc595033, Prc);
TMP981[9].typ = (&NTI225814);
TMP981[9].name = "prc";
TMP4234[2] = &TMP981[10];
TMP981[10].kind = 1;
TMP981[10].offset = offsetof(tproc595033, Locals);
TMP981[10].typ = (&NTI177007);
TMP981[10].name = "locals";
TMP4234[3] = &TMP981[11];
TMP981[11].kind = 1;
TMP981[11].offset = offsetof(tproc595033, Body);
TMP981[11].typ = (&NTI177007);
TMP981[11].name = "body";
TMP4234[4] = &TMP981[12];
TMP981[12].kind = 1;
TMP981[12].offset = offsetof(tproc595033, Options);
TMP981[12].typ = (&NTI169016);
TMP981[12].name = "options";
TMP4234[5] = &TMP981[13];
TMP981[13].kind = 1;
TMP981[13].offset = offsetof(tproc595033, Module);
TMP981[13].typ = (&NTI595017);
TMP981[13].name = "module";
TMP4234[6] = &TMP981[14];
TMP981[14].kind = 1;
TMP981[14].offset = offsetof(tproc595033, G);
TMP981[14].typ = (&NTI595029);
TMP981[14].name = "g";
TMP4234[7] = &TMP981[15];
TMP981[15].kind = 1;
TMP981[15].offset = offsetof(tproc595033, Beforeretneeded);
TMP981[15].typ = (&NTI138);
TMP981[15].name = "beforeRetNeeded";
TMP4234[8] = &TMP981[16];
NTI595013.size = sizeof(NU8);
NTI595013.kind = 14;
NTI595013.base = 0;
NTI595013.flags = 3;
for (TMP4237 = 0; TMP4237 < 2; TMP4237++) {
TMP981[TMP4237+17].kind = 1;
TMP981[TMP4237+17].offset = TMP4237;
TMP981[TMP4237+17].name = TMP4236[TMP4237];
TMP4235[TMP4237] = &TMP981[TMP4237+17];
}
TMP981[19].len = 2; TMP981[19].kind = 2; TMP981[19].sons = &TMP4235[0];
NTI595013.node = &TMP981[19];
TMP981[16].kind = 1;
TMP981[16].offset = offsetof(tproc595033, Target);
TMP981[16].typ = (&NTI595013);
TMP981[16].name = "target";
TMP4234[9] = &TMP981[20];
TMP981[20].kind = 1;
TMP981[20].offset = offsetof(tproc595033, Unique);
TMP981[20].typ = (&NTI108);
TMP981[20].name = "unique";
TMP4234[10] = &TMP981[21];
NTI595025.size = sizeof(tblock595025);
NTI595025.kind = 18;
NTI595025.base = 0;
NTI595025.flags = 3;
TMP4238[0] = &TMP981[23];
TMP981[23].kind = 1;
TMP981[23].offset = offsetof(tblock595025, Id);
TMP981[23].typ = (&NTI108);
TMP981[23].name = "id";
TMP4238[1] = &TMP981[24];
TMP981[24].kind = 1;
TMP981[24].offset = offsetof(tblock595025, Isloop);
TMP981[24].typ = (&NTI138);
TMP981[24].name = "isLoop";
TMP981[22].len = 2; TMP981[22].kind = 2; TMP981[22].sons = &TMP4238[0];
NTI595025.node = &TMP981[22];
NTI595071.size = sizeof(TY595071*);
NTI595071.kind = 24;
NTI595071.base = (&NTI595025);
NTI595071.flags = 2;
NTI595071.marker = TMP4239;
TMP981[21].kind = 1;
TMP981[21].offset = offsetof(tproc595033, Blocks);
TMP981[21].typ = (&NTI595071);
TMP981[21].name = "blocks";
TMP4234[11] = &TMP981[25];
TMP981[25].kind = 1;
TMP981[25].offset = offsetof(tproc595033, Up);
TMP981[25].typ = (&NTI595031);
TMP981[25].name = "up";
TMP981[7].len = 12; TMP981[7].kind = 2; TMP981[7].sons = &TMP4234[0];
NTI595033.node = &TMP981[7];
NTI595031.size = sizeof(tproc595033*);
NTI595031.kind = 22;
NTI595031.base = (&NTI595033);
NTI595031.marker = TMP4240;
NTI596657.size = sizeof(tmagicfrmt596657);
NTI596657.kind = 16;
NTI596657.base = (&NTI149);
NTI596657.flags = 2;
NTI596659.size = sizeof(tmagicops596659);
NTI596659.kind = 16;
NTI596659.base = (&NTI596657);
NTI596659.flags = 2;
}

