/* Generated by Nimrod Compiler v0.9.5 */
/*   (c) 2014 Andreas Rumpf */
/* The generated code is subject to the original license. */
/* Compiled for: Linux, i386, gcc */
/* Command for C compiler:
   gcc -c  -w -O3 -fno-strict-aliasing  -I/build/nimrod/src/nimrod/lib -o compiler/nimcache/semfold.o compiler/nimcache/semfold.c */
#define NIM_INTBITS 32
#include "nimbase.h"

#include <math.h>

#include <setjmp.h>

#include <string.h>
typedef struct tnode188803 tnode188803;
typedef struct ttype188837 ttype188837;
typedef struct tlineinfo163527 tlineinfo163527;
typedef struct NimStringDesc NimStringDesc;
typedef struct TGenericSeq TGenericSeq;
typedef struct tsym188833 tsym188833;
typedef struct tident167019 tident167019;
typedef struct tnodeseq188797 tnodeseq188797;
typedef struct tidobj167013 tidobj167013;
typedef struct TNimObject TNimObject;
typedef struct TNimType TNimType;
typedef struct TNimNode TNimNode;
typedef struct ttypeseq188835 ttypeseq188835;
typedef struct tscope188827 tscope188827;
typedef struct TY188933 TY188933;
typedef struct tinstantiation188823 tinstantiation188823;
typedef struct tstrtable188807 tstrtable188807;
typedef struct tsymseq188805 tsymseq188805;
typedef struct tloc188817 tloc188817;
typedef struct trope145007 trope145007;
typedef struct tlib188821 tlib188821;
typedef struct tcell41090 tcell41090;
typedef struct tcellseq41106 tcellseq41106;
typedef struct tgcheap43016 tgcheap43016;
typedef struct tcellset41102 tcellset41102;
typedef struct tpagedesc41098 tpagedesc41098;
typedef struct tmemregion23410 tmemregion23410;
typedef struct tsmallchunk22638 tsmallchunk22638;
typedef struct tllchunk23404 tllchunk23404;
typedef struct tbigchunk22640 tbigchunk22640;
typedef struct tintset22615 tintset22615;
typedef struct ttrunk22611 ttrunk22611;
typedef struct tavlnode23408 tavlnode23408;
typedef struct tgcstat43014 tgcstat43014;
typedef struct tinfocpu142453 tinfocpu142453;
typedef struct tinfoos142044 tinfoos142044;
typedef struct E_Base E_Base;
typedef struct TSafePoint TSafePoint;
typedef struct TY79484 TY79484;
typedef struct TY188922 TY188922;
typedef struct tlistentry118017 tlistentry118017;
typedef struct tbasechunk22636 tbasechunk22636;
typedef struct tfreecell22628 tfreecell22628;
struct  tlineinfo163527  {
NI16 Line;
NI16 Col;
NI32 Fileindex;
};
struct  TGenericSeq  {
NI len;
NI reserved;
};
struct  NimStringDesc  {
  TGenericSeq Sup;
NIM_CHAR data[SEQ_DECL_SIZE];
};
struct  tnode188803  {
ttype188837* Typ;
tlineinfo163527 Info;
NU16 Flags;
NU8 Kind;
union {
struct {NI64 Intval;
} S1;
struct {NF Floatval;
} S2;
struct {NimStringDesc* Strval;
} S3;
struct {tsym188833* Sym;
} S4;
struct {tident167019* Ident;
} S5;
struct {tnodeseq188797* Sons;
} S6;
} kindU;
NimStringDesc* Comment;
};
typedef N_NIMCALL_PTR(void, TY2289) (void* p, NI op);
struct  TNimType  {
NI size;
NU8 kind;
NU8 flags;
TNimType* base;
TNimNode* node;
void* finalizer;
TY2289 marker;
};
struct  TNimObject  {
TNimType* m_type;
};
struct  tidobj167013  {
  TNimObject Sup;
NI Id;
};
struct  tstrtable188807  {
NI Counter;
tsymseq188805* Data;
};
struct  tloc188817  {
NU8 K;
NU8 S;
NU8 Flags;
ttype188837* T;
trope145007* R;
trope145007* Heaproot;
NI A;
};
struct  tsym188833  {
  tidobj167013 Sup;
NU8 Kind;
union {
struct {ttypeseq188835* Typeinstcache;
tscope188827* Typscope;
} S1;
struct {TY188933* Procinstcache;
tscope188827* Scope;
} S2;
struct {TY188933* Usedgenerics;
tstrtable188807 Tab;
} S3;
} kindU;
NU16 Magic;
ttype188837* Typ;
tident167019* Name;
tlineinfo163527 Info;
tsym188833* Owner;
NU32 Flags;
tnode188803* Ast;
NU32 Options;
NI Position;
NI Offset;
tloc188817 Loc;
tlib188821* Annex;
tnode188803* Constraint;
};
struct  tcell41090  {
NI Refcount;
TNimType* Typ;
};
struct  tcellseq41106  {
NI Len;
NI Cap;
tcell41090** D;
};
struct  tcellset41102  {
NI Counter;
NI Max;
tpagedesc41098* Head;
tpagedesc41098** Data;
};
typedef tsmallchunk22638* TY23422[512];
typedef ttrunk22611* ttrunkbuckets22613[256];
struct  tintset22615  {
ttrunkbuckets22613 Data;
};
struct  tmemregion23410  {
NI Minlargeobj;
NI Maxlargeobj;
TY23422 Freesmallchunks;
tllchunk23404* Llmem;
NI Currmem;
NI Maxmem;
NI Freemem;
NI Lastsize;
tbigchunk22640* Freechunkslist;
tintset22615 Chunkstarts;
tavlnode23408* Root;
tavlnode23408* Deleted;
tavlnode23408* Last;
tavlnode23408* Freeavlnodes;
};
struct  tgcstat43014  {
NI Stackscans;
NI Cyclecollections;
NI Maxthreshold;
NI Maxstacksize;
NI Maxstackcells;
NI Cycletablesize;
NI64 Maxpause;
};
struct  tgcheap43016  {
void* Stackbottom;
NI Cyclethreshold;
tcellseq41106 Zct;
tcellseq41106 Decstack;
tcellset41102 Cycleroots;
tcellseq41106 Tempstack;
NI Recgclock;
tmemregion23410 Region;
tgcstat43014 Stat;
};
struct  ttype188837  {
  tidobj167013 Sup;
NU8 Kind;
NU8 Callconv;
NU32 Flags;
ttypeseq188835* Sons;
tnode188803* N;
tsym188833* Destructor;
tsym188833* Owner;
tsym188833* Sym;
NI64 Size;
NI Align;
tloc188817 Loc;
};
struct tinfocpu142453 {
NimStringDesc* Field0;
NI Field1;
NU8 Field2;
NI Field3;
NI Field4;
};
typedef tinfocpu142453 TY142469[14];
struct tinfoos142044 {
NimStringDesc* Field0;
NimStringDesc* Field1;
NimStringDesc* Field2;
NimStringDesc* Field3;
NimStringDesc* Field4;
NimStringDesc* Field5;
NimStringDesc* Field6;
NimStringDesc* Field7;
NimStringDesc* Field8;
NimStringDesc* Field9;
NimStringDesc* Field10;
NimStringDesc* Field11;
NU8 Field12;
};
typedef tinfoos142044 TY142064[23];
struct  E_Base  {
  TNimObject Sup;
E_Base* parent;
NCSTRING name;
NimStringDesc* message;
NimStringDesc* trace;
};
typedef struct {
N_NIMCALL_PTR(NIM_BOOL, ClPrc) (E_Base* e, void* ClEnv);
void* ClEnv;
} TY11626;
struct  TSafePoint  {
TSafePoint* prev;
NI status;
jmp_buf context;
NIM_BOOL hasRaiseAction;
TY11626 raiseAction;
};
struct  tident167019  {
  tidobj167013 Sup;
NimStringDesc* S;
tident167019* Next;
NI H;
};
struct  TNimNode  {
NU8 kind;
NI offset;
TNimType* typ;
NCSTRING name;
NI len;
TNimNode** sons;
};
struct TY79484 {
NimStringDesc* Field0;
NI Field1;
};
typedef NimStringDesc* TY137892[2];
struct  tscope188827  {
NI Depthlevel;
tstrtable188807 Symbols;
tnodeseq188797* Usingsyms;
tscope188827* Parent;
};
struct  tinstantiation188823  {
tsym188833* Sym;
ttypeseq188835* Concretetypes;
TY188922* Usedby;
};
struct  trope145007  {
  TNimObject Sup;
trope145007* Left;
trope145007* Right;
NI Length;
NimStringDesc* Data;
};
struct  tlistentry118017  {
  TNimObject Sup;
tlistentry118017* Prev;
tlistentry118017* Next;
};
struct  tlib188821  {
  tlistentry118017 Sup;
NU8 Kind;
NIM_BOOL Generated;
NIM_BOOL Isoverriden;
trope145007* Name;
tnode188803* Path;
};
typedef NI TY22618[16];
struct  tpagedesc41098  {
tpagedesc41098* Next;
NI Key;
TY22618 Bits;
};
struct  tbasechunk22636  {
NI Prevsize;
NI Size;
NIM_BOOL Used;
};
struct  tsmallchunk22638  {
  tbasechunk22636 Sup;
tsmallchunk22638* Next;
tsmallchunk22638* Prev;
tfreecell22628* Freelist;
NI Free;
NI Acc;
NF Data;
};
struct  tllchunk23404  {
NI Size;
NI Acc;
tllchunk23404* Next;
};
struct  tbigchunk22640  {
  tbasechunk22636 Sup;
tbigchunk22640* Next;
tbigchunk22640* Prev;
NI Align;
NF Data;
};
struct  ttrunk22611  {
ttrunk22611* Next;
NI Key;
TY22618 Bits;
};
typedef tavlnode23408* TY23414[2];
struct  tavlnode23408  {
TY23414 Link;
NI Key;
NI Upperbound;
NI Level;
};
struct  tfreecell22628  {
tfreecell22628* Next;
NI Zerofield;
};
struct tnodeseq188797 {
  TGenericSeq Sup;
  tnode188803* data[SEQ_DECL_SIZE];
};
struct ttypeseq188835 {
  TGenericSeq Sup;
  ttype188837* data[SEQ_DECL_SIZE];
};
struct TY188933 {
  TGenericSeq Sup;
  tinstantiation188823* data[SEQ_DECL_SIZE];
};
struct tsymseq188805 {
  TGenericSeq Sup;
  tsym188833* data[SEQ_DECL_SIZE];
};
struct TY188922 {
  TGenericSeq Sup;
  NI32 data[SEQ_DECL_SIZE];
};
N_NIMCALL(void, internalerror_165591)(tlineinfo163527 info, NimStringDesc* errmsg);
N_NIMCALL(tnode188803*, newsymnode_190723)(tsym188833* sym, tlineinfo163527 info);
N_NIMCALL(ttype188837*, newtype_189060)(NU8 kind, tsym188833* owner);
static N_INLINE(void, asgnRefNoCycle)(void** dest, void* src);
static N_INLINE(tcell41090*, usrtocell_44443)(void* usr);
static N_INLINE(void, rtladdzct_46002)(tcell41090* c);
N_NOINLINE(void, addzct_44418)(tcellseq41106* s, tcell41090* c);
N_NIMCALL(void, addsonskipintlit_242461)(ttype188837* father, ttype188837* son);
N_NIMCALL(ttype188837*, skiptypes_192793)(ttype188837* t, NU64 kinds);
N_NIMCALL(tnode188803*, newintnode_189069)(NU8 kind, NI64 intval);
N_NIMCALL(ttype188837*, getintlittype_242378)(tnode188803* literal);
N_NIMCALL(tnode188803*, newstrnode_189085)(NU8 kind, NimStringDesc* strval);
N_NIMCALL(tnode188803*, newintnodet_261020)(NI64 intval, tnode188803* n);
N_NIMCALL(tnode188803*, newstrnodet_261030)(NimStringDesc* strval, tnode188803* n);
N_NIMCALL(NimStringDesc*, ntgetDateStr)(void);
N_NIMCALL(NimStringDesc*, ntgetClockStr)(void);
N_NIMCALL(NimStringDesc*, nsuToLowerStr)(NimStringDesc* s);
N_NIMCALL(tnode188803*, getapptype_263330)(tnode188803* n);
N_NIMCALL(tnode188803*, newfloatnodet_261025)(NF floatval, tnode188803* n);
N_NIMCALL(tnode188803*, newfloatnode_189080)(NU8 kind, NF floatval);
N_NIMCALL(ttype188837*, getfloatlittype_242418)(tnode188803* literal);
N_NIMCALL(tnode188803*, copytree_189237)(tnode188803* src);
N_NIMCALL(tnode188803*, newsymnodetypedesc_263979)(tsym188833* s, tlineinfo163527 info);
N_NIMCALL(tnode188803*, copynode_189233)(tnode188803* src);
N_NIMCALL(tnode188803*, getconstifexpr_262692)(tsym188833* c, tnode188803* n);
static N_INLINE(NI, sonslen_189181)(tnode188803* n);
static N_INLINE(NI, len_189264)(tnode188803* n);
N_NIMCALL(tnode188803*, getconstexpr_261002)(tsym188833* m, tnode188803* n);
N_NIMCALL(NI64, getordvalue_223150)(tnode188803* n);
static N_INLINE(void, pushSafePoint)(TSafePoint* s);
static N_INLINE(void, popSafePoint)(void);
N_NIMCALL(NI64, computesize_223154)(ttype188837* typ);
N_NIMCALL(void, localerror_165571)(tlineinfo163527 info, NU16 msg, NimStringDesc* arg);
N_NIMCALL(NI64, getsize_223158)(ttype188837* typ);
N_NIMCALL(NI64, firstord_223002)(ttype188837* t);
N_NIMCALL(NI64, lastord_223006)(ttype188837* t);
static N_INLINE(tnode188803*, HEX5BHEX5D_189694)(tnode188803* n, NI i);
N_NIMCALL(tnode188803*, getarrayconstr_263405)(tsym188833* m, tnode188803* n);
N_NIMCALL(tnode188803*, magiccall_263194)(tsym188833* m, tnode188803* n);
N_NIMCALL(tnode188803*, evalop_261007)(NU16 m, tnode188803* n, tnode188803* a, tnode188803* b, tnode188803* c);
N_NIMCALL(NI64, getint_194832)(tnode188803* a);
N_NIMCALL(NF, getfloat_194852)(tnode188803* a);
N_NIMCALL(NI64, cardset_244063)(tnode188803* s);
N_NIMCALL(NimStringDesc*, getstr_194873)(tnode188803* a);
N_NIMCALL(NI64, lengthord_223010)(ttype188837* t);
static N_INLINE(NI, cmpStrings)(NimStringDesc* a, NimStringDesc* b);
static N_INLINE(NIM_BOOL, eqStrings)(NimStringDesc* a, NimStringDesc* b);
N_NIMCALL(NIM_BOOL, containssets_244053)(tnode188803* a, tnode188803* b);
N_NIMCALL(NIM_BOOL, equalsets_244058)(tnode188803* a, tnode188803* b);
N_NIMCALL(tnode188803*, intersectsets_244043)(tnode188803* a, tnode188803* b);
N_NIMCALL(tnode188803*, unionsets_244033)(tnode188803* a, tnode188803* b);
N_NIMCALL(tnode188803*, diffsets_244038)(tnode188803* a, tnode188803* b);
N_NIMCALL(tnode188803*, symdiffsets_244048)(tnode188803* a, tnode188803* b);
N_NIMCALL(NimStringDesc*, getstrorchar_194893)(tnode188803* a);
static N_INLINE(void, appendString)(NimStringDesc* dest, NimStringDesc* src);
N_NIMCALL(NimStringDesc*, rawNewString)(NI space);
N_NIMCALL(NIM_BOOL, inset_244013)(tnode188803* s, tnode188803* elem);
N_NIMCALL(NimStringDesc*, nimInt64ToStr)(NI64 x);
N_NIMCALL(NimStringDesc*, copyStr)(NimStringDesc* s, NI start);
N_NIMCALL(NimStringDesc*, copyStr)(NimStringDesc* s, NI first);
N_NIMCALL(NimStringDesc*, copyStrLast)(NimStringDesc* s, NI start_70624, NI last);
N_NIMCALL(NimStringDesc*, copyStrLast)(NimStringDesc* s, NI first, NI last);
N_NIMCALL(NimStringDesc*, nimFloatToStr)(NF x);
N_NIMCALL(NimStringDesc*, ordinalvaltostring_261066)(tnode188803* a);
N_NIMCALL(NimStringDesc*, nimCharToStr)(NIM_CHAR x);
N_NIMCALL(NimStringDesc*, copyString)(NimStringDesc* src);
N_NIMCALL(NIM_BOOL, testcompileoption_173584)(NimStringDesc* switch_173586, tlineinfo163527 info);
N_NIMCALL(NIM_BOOL, testcompileoptionarg_173459)(NimStringDesc* switch_173461, NimStringDesc* arg, tlineinfo163527 info);
N_NIMCALL(NI, random_133979)(NI max);
N_NIMCALL(NimStringDesc*, reprEnum)(NI e_75880, TNimType* typ);
static N_INLINE(void, appendChar)(NimStringDesc* dest, NIM_CHAR c);
N_NIMCALL(NimStringDesc*, rendertree_211051)(tnode188803* n, NU8 renderflags);
N_NIMCALL(tnode188803*, foldconstrstr_263894)(tsym188833* m, tnode188803* n);
N_NIMCALL(tnode188803*, newnodeit_189104)(NU8 kind, tlineinfo163527 info, ttype188837* typ);
N_NIMCALL(NimStringDesc*, copyStringRC1)(NimStringDesc* src);
static N_INLINE(void, nimGCunrefNoCycle)(void* p);
N_NIMCALL(NimStringDesc*, resizeString)(NimStringDesc* dest, NI addlen);
N_NIMCALL(tnode188803*, evalis_262266)(tnode188803* n, tnode188803* a);
N_NIMCALL(void, internalerror_165606)(NimStringDesc* errmsg);
N_NIMCALL(NimStringDesc*, HEX24_165714)(TY79484 x_165718);
N_NIMCALL(NimStringDesc*, nsuNormalize)(NimStringDesc* s);
N_NIMCALL(NIM_BOOL, sametype_228116)(ttype188837* a, ttype188837* b, NU8 flags);
N_NIMCALL(NIM_BOOL, isObj)(TNimType* obj, TNimType* subclass);
static N_INLINE(E_Base*, getCurrentException)(void);
static N_INLINE(void, popCurrentException)(void);
static N_INLINE(void, asgnRef)(void** dest, void* src);
static N_INLINE(void, incref_46827)(tcell41090* c);
static N_INLINE(NIM_BOOL, canbecycleroot_44462)(tcell41090* c);
static N_INLINE(void, rtladdcycleroot_45235)(tcell41090* c);
N_NOINLINE(void, incl_41855)(tcellset41102* s, tcell41090* cell);
static N_INLINE(void, decref_46402)(tcell41090* c);
N_NIMCALL(void, reraiseException)(void);
N_NIMCALL(void, addson_189207)(tnode188803* father, tnode188803* son);
N_NIMCALL(NIM_BOOL, levalueconv_261015)(tnode188803* a, tnode188803* b);
N_NIMCALL(NimStringDesc*, nsuFormatOpenArray)(NimStringDesc* formatstr, NimStringDesc** a, NI aLen0);
N_NIMCALL(NimStringDesc*, msgkindtostring_165071)(NU16 kind);
N_NIMCALL(NimStringDesc*, typetostring_223020)(ttype188837* typ, NU8 prefer);
N_NIMCALL(tnode188803*, foldconv_263383)(tnode188803* n, tnode188803* a, NIM_BOOL check);
N_NIMCALL(void, rangecheck_263375)(tnode188803* n, NI64 value);
N_NIMCALL(tnode188803*, foldarrayaccess_263438)(tsym188833* m, tnode188803* n);
N_NIMCALL(tnode188803*, foldfieldaccess_263638)(tsym188833* m, tnode188803* n);
static N_INLINE(NIM_BOOL, isintrange_261207)(ttype188837* t);
N_NIMCALL(ttype188837*, makerange_261345)(ttype188837* typ, NI64 first, NI64 last);
N_NIMCALL(tnode188803*, newnode_189065)(NU8 kind);
N_NIMCALL(NI64, HEX7CHEX2DHEX7C_260027)(NI64 a, NI64 b);
static N_INLINE(NIM_BOOL, isfloatrange_261178)(ttype188837* t);
N_NIMCALL(ttype188837*, makerangef_261373)(ttype188837* typ, NF first, NF last);
N_NIMCALL(NI64, HEX7CabsHEX7C_260035)(NI64 a);
static N_INLINE(NIM_BOOL, isintlit_223316)(ttype188837* t);
N_NIMCALL(NI64, HEX7CHEX2BHEX7C_260016)(NI64 a, NI64 b);
N_NIMCALL(NI64, pickminint_261249)(tnode188803* n);
N_NIMCALL(NI64, pickmaxint_261297)(tnode188803* n);
N_NIMCALL(NIM_BOOL, isintrangeorlit_261243)(ttype188837* t);
N_NIMCALL(ttype188837*, pickintrange_261236)(ttype188837* a, ttype188837* b);
N_NIMCALL(NI64, HEX7CHEX2AHEX7C_260055)(NI64 a, NI64 b);
N_NIMCALL(NI64, HEX7CdivHEX7C_260041)(NI64 a, NI64 b);
STRING_LITERAL(TMP2617, "leValueConv", 11);
STRING_LITERAL(TMP2904, "0.9.5", 5);
extern NIM_CONST TY142469 cpu_142468;
extern NIM_CONST TY142064 os_142063;
STRING_LITERAL(TMP2905, "lib", 3);
STRING_LITERAL(TMP2906, "staticlib", 9);
STRING_LITERAL(TMP2907, "gui", 3);
STRING_LITERAL(TMP2908, "console", 7);
STRING_LITERAL(TMP2909, "getConstIfExpr()", 16);
STRING_LITERAL(TMP2911, "sizeof", 6);
STRING_LITERAL(TMP2915, "constant folding for shl", 24);
STRING_LITERAL(TMP2916, "constant folding for shr", 24);
STRING_LITERAL(TMP2918, "false", 5);
STRING_LITERAL(TMP2919, "true", 4);
STRING_LITERAL(TMP2920, "ordinalValToString", 18);
STRING_LITERAL(TMP2921, "no symbol for ordinal value: ", 29);
STRING_LITERAL(TMP2922, "evalOp(", 7);
STRING_LITERAL(TMP2923, "", 0);
STRING_LITERAL(TMP2925, "compiler/semfold.nim", 20);
NIM_CONST TY79484 TMP2924 = {((NimStringDesc*) &TMP2925),
240}
;
NIM_CONST TY79484 TMP2926 = {((NimStringDesc*) &TMP2925),
241}
;
STRING_LITERAL(TMP2927, "closure", 7);
STRING_LITERAL(TMP2928, "iterator", 8);
STRING_LITERAL(TMP2929, "cannot convert ", 15);
STRING_LITERAL(TMP2930, " to ", 4);
STRING_LITERAL(TMP2931, "pickMinInt", 10);
STRING_LITERAL(TMP2932, "pickMaxInt", 10);
extern tgcheap43016 gch_43044;
extern NU8 targetcpu_142573;
extern NU8 targetos_142575;
extern NU32 gglobaloptions_137111;
extern TSafePoint* exchandler_13039;
extern TNimType NTI188521; /* TMagic */
extern TNimType NTI2445; /* EOverflow */
extern E_Base* currexception_13041;
extern TNimType NTI2443; /* EDivByZero */

N_NIMCALL(NIM_BOOL, levalueconv_261015)(tnode188803* a, tnode188803* b) {
	NIM_BOOL result;
	result = 0;
	result = NIM_FALSE;
	switch ((*a).Kind) {
	case ((NU8) 5) ... ((NU8) 15):
	{
		switch ((*b).Kind) {
		case ((NU8) 5) ... ((NU8) 15):
		{
			result = ((*a).kindU.S1.Intval <= (*b).kindU.S1.Intval);
		}
		break;
		case ((NU8) 16) ... ((NU8) 19):
		{
			NI LOC4;
			LOC4 = 0;
			LOC4 = lrint((*b).kindU.S2.Floatval);
			result = ((*a).kindU.S1.Intval <= ((NI64) (LOC4)));
		}
		break;
		default:
		{
			internalerror_165591((*a).Info, ((NimStringDesc*) &TMP2617));
		}
		break;
		}
	}
	break;
	case ((NU8) 16) ... ((NU8) 19):
	{
		switch ((*b).Kind) {
		case ((NU8) 16) ... ((NU8) 19):
		{
			result = ((*a).kindU.S2.Floatval <= (*b).kindU.S2.Floatval);
		}
		break;
		case ((NU8) 5) ... ((NU8) 15):
		{
			result = ((*a).kindU.S2.Floatval <= ((double) (((NI) ((*b).kindU.S1.Intval)))));
		}
		break;
		default:
		{
			internalerror_165591((*a).Info, ((NimStringDesc*) &TMP2617));
		}
		break;
		}
	}
	break;
	default:
	{
		internalerror_165591((*a).Info, ((NimStringDesc*) &TMP2617));
	}
	break;
	}
	return result;
}

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

static N_INLINE(void, rtladdzct_46002)(tcell41090* c) {
	addzct_44418(&gch_43044.Zct, c);
}

static N_INLINE(void, asgnRefNoCycle)(void** dest, void* src) {
	{
		tcell41090* c;
		if (!!((src == NIM_NIL))) goto LA3;
		c = usrtocell_44443(src);
		(*c).Refcount += 8;
	}
	LA3: ;
	{
		tcell41090* c;
		if (!!(((*dest) == NIM_NIL))) goto LA7;
		c = usrtocell_44443((*dest));
		{
			(*c).Refcount -= 8;
			if (!((NU32)((*c).Refcount) < (NU32)(8))) goto LA11;
			rtladdzct_46002(c);
		}
		LA11: ;
	}
	LA7: ;
	(*dest) = src;
}

N_NIMCALL(tnode188803*, newsymnodetypedesc_263979)(tsym188833* s, tlineinfo163527 info) {
	tnode188803* result;
	result = 0;
	result = newsymnode_190723(s, info);
	asgnRefNoCycle((void**) &(*result).Typ, newtype_189060(((NU8) 8), (*s).Owner));
	addsonskipintlit_242461((*result).Typ, (*s).Typ);
	return result;
}

N_NIMCALL(tnode188803*, newintnodet_261020)(NI64 intval, tnode188803* n) {
	tnode188803* result;
	ttype188837* LOC1;
	result = 0;
	LOC1 = 0;
	LOC1 = skiptypes_192793((*n).Typ, IL64(211106242013440));
	switch ((*LOC1).Kind) {
	case ((NU8) 31):
	{
		result = newintnode_189069(((NU8) 6), intval);
		asgnRefNoCycle((void**) &(*result).Typ, getintlittype_242378(result));
	}
	break;
	case ((NU8) 2):
	{
		result = newintnode_189069(((NU8) 5), intval);
		asgnRefNoCycle((void**) &(*result).Typ, (*n).Typ);
	}
	break;
	default:
	{
		result = newintnode_189069(((NU8) 6), intval);
		asgnRefNoCycle((void**) &(*result).Typ, (*n).Typ);
	}
	break;
	}
	(*result).Info = (*n).Info;
	return result;
}

N_NIMCALL(tnode188803*, newstrnodet_261030)(NimStringDesc* strval, tnode188803* n) {
	tnode188803* result;
	result = 0;
	result = newstrnode_189085(((NU8) 20), strval);
	asgnRefNoCycle((void**) &(*result).Typ, (*n).Typ);
	(*result).Info = (*n).Info;
	return result;
}

N_NIMCALL(tnode188803*, getapptype_263330)(tnode188803* n) {
	tnode188803* result;
	result = 0;
	{
		if (!((gglobaloptions_137111 &(1<<((((NU8) 8))&31)))!=0)) goto LA3;
		result = newstrnodet_261030(((NimStringDesc*) &TMP2905), n);
	}
	goto LA1;
	LA3: ;
	{
		if (!((gglobaloptions_137111 &(1<<((((NU8) 9))&31)))!=0)) goto LA6;
		result = newstrnodet_261030(((NimStringDesc*) &TMP2906), n);
	}
	goto LA1;
	LA6: ;
	{
		if (!((gglobaloptions_137111 &(1<<((((NU8) 10))&31)))!=0)) goto LA9;
		result = newstrnodet_261030(((NimStringDesc*) &TMP2907), n);
	}
	goto LA1;
	LA9: ;
	{
		result = newstrnodet_261030(((NimStringDesc*) &TMP2908), n);
	}
	LA1: ;
	return result;
}

N_NIMCALL(tnode188803*, newfloatnodet_261025)(NF floatval, tnode188803* n) {
	tnode188803* result;
	result = 0;
	result = newfloatnode_189080(((NU8) 16), floatval);
	{
		ttype188837* LOC3;
		LOC3 = 0;
		LOC3 = skiptypes_192793((*n).Typ, IL64(211106242013440));
		if (!((*LOC3).Kind == ((NU8) 36))) goto LA4;
		asgnRefNoCycle((void**) &(*result).Typ, getfloatlittype_242418(result));
	}
	goto LA1;
	LA4: ;
	{
		asgnRefNoCycle((void**) &(*result).Typ, (*n).Typ);
	}
	LA1: ;
	(*result).Info = (*n).Info;
	return result;
}

static N_INLINE(NI, sonslen_189181)(tnode188803* 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(NI, len_189264)(tnode188803* 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;
}

N_NIMCALL(tnode188803*, getconstifexpr_262692)(tsym188833* c, tnode188803* n) {
	tnode188803* result;
	NI i_262709;
	NI HEX3Atmp_262836;
	NI LOC1;
	NI res_262838;
	result = 0;
	result = NIM_NIL;
	i_262709 = 0;
	HEX3Atmp_262836 = 0;
	LOC1 = 0;
	LOC1 = sonslen_189181(n);
	HEX3Atmp_262836 = (NI32)(LOC1 - 1);
	res_262838 = 0;
	while (1) {
		tnode188803* it;
		if (!(res_262838 <= HEX3Atmp_262836)) goto LA2;
		i_262709 = res_262838;
		it = (*n).kindU.S6.Sons->data[i_262709];
		{
			NI LOC5;
			tnode188803* e;
			LOC5 = 0;
			LOC5 = len_189264(it);
			if (!(LOC5 == 2)) goto LA6;
			e = getconstexpr_261002(c, (*it).kindU.S6.Sons->data[0]);
			{
				if (!(e == NIM_NIL)) goto LA10;
				result = NIM_NIL;
				goto BeforeRet;
			}
			LA10: ;
			{
				NI64 LOC14;
				LOC14 = 0;
				LOC14 = getordvalue_223150(e);
				if (!!((LOC14 == 0))) goto LA15;
				{
					if (!(result == NIM_NIL)) goto LA19;
					result = getconstexpr_261002(c, (*it).kindU.S6.Sons->data[1]);
					{
						if (!(result == NIM_NIL)) goto LA23;
						goto BeforeRet;
					}
					LA23: ;
				}
				LA19: ;
			}
			LA15: ;
		}
		goto LA3;
		LA6: ;
		{
			NI LOC26;
			LOC26 = 0;
			LOC26 = len_189264(it);
			if (!(LOC26 == 1)) goto LA27;
			{
				if (!(result == NIM_NIL)) goto LA31;
				result = getconstexpr_261002(c, (*it).kindU.S6.Sons->data[0]);
			}
			LA31: ;
		}
		goto LA3;
		LA27: ;
		{
			internalerror_165591((*it).Info, ((NimStringDesc*) &TMP2909));
		}
		LA3: ;
		res_262838 += 1;
	} LA2: ;
	BeforeRet: ;
	return result;
}

static N_INLINE(void, pushSafePoint)(TSafePoint* s) {
	(*s).hasRaiseAction = NIM_FALSE;
	(*s).prev = exchandler_13039;
	exchandler_13039 = s;
}

static N_INLINE(void, popSafePoint)(void) {
	exchandler_13039 = (*exchandler_13039).prev;
}

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

N_NIMCALL(tnode188803*, getarrayconstr_263405)(tsym188833* m, tnode188803* n) {
	tnode188803* result;
	result = 0;
	{
		if (!((*n).Kind == ((NU8) 41))) goto LA3;
		result = n;
	}
	goto LA1;
	LA3: ;
	{
		result = getconstexpr_261002(m, n);
		{
			if (!(result == NIM_NIL)) goto LA8;
			result = n;
		}
		LA8: ;
	}
	LA1: ;
	return result;
}

static N_INLINE(NI, cmpStrings)(NimStringDesc* a, NimStringDesc* b) {
	NI result;
	int LOC13;
	result = 0;
	{
		if (!(a == b)) goto LA3;
		result = 0;
		goto BeforeRet;
	}
	LA3: ;
	{
		if (!(a == NIM_NIL)) goto LA7;
		result = -1;
		goto BeforeRet;
	}
	LA7: ;
	{
		if (!(b == NIM_NIL)) goto LA11;
		result = 1;
		goto BeforeRet;
	}
	LA11: ;
	LOC13 = 0;
	LOC13 = strcmp(((NCSTRING) ((*a).data)), ((NCSTRING) ((*b).data)));
	result = ((NI) (LOC13));
	goto BeforeRet;
	BeforeRet: ;
	return result;
}

static N_INLINE(NIM_BOOL, eqStrings)(NimStringDesc* a, NimStringDesc* b) {
	NIM_BOOL result;
	NIM_BOOL LOC11;
	int LOC13;
	result = 0;
	{
		if (!(a == b)) goto LA3;
		result = NIM_TRUE;
		goto BeforeRet;
	}
	LA3: ;
	{
		NIM_BOOL LOC7;
		LOC7 = 0;
		LOC7 = (a == NIM_NIL);
		if (LOC7) goto LA8;
		LOC7 = (b == NIM_NIL);
		LA8: ;
		if (!LOC7) goto LA9;
		result = NIM_FALSE;
		goto BeforeRet;
	}
	LA9: ;
	LOC11 = 0;
	LOC11 = ((*a).Sup.len == (*b).Sup.len);
	if (!(LOC11)) goto LA12;
	LOC13 = 0;
	LOC13 = memcmp(((NCSTRING) ((*a).data)), ((NCSTRING) ((*b).data)), (NI32)((*a).Sup.len * 1));
	LOC11 = (LOC13 == ((NI32) 0));
	LA12: ;
	result = LOC11;
	goto BeforeRet;
	BeforeRet: ;
	return result;
}

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

N_NIMCALL(NimStringDesc*, ordinalvaltostring_261066)(tnode188803* a) {
	NimStringDesc* result;
	NI64 x;
	ttype188837* t;
	result = 0;
	x = getint_194832(a);
	t = skiptypes_192793((*a).Typ, IL64(211106233624832));
	switch ((*t).Kind) {
	case ((NU8) 2):
	{
		result = nimCharToStr(((NIM_CHAR) ((NI)(((NI) (x)) & 255))));
	}
	break;
	case ((NU8) 14):
	{
		tnode188803* n;
		NI i_261087;
		NI HEX3Atmp_261171;
		NI LOC3;
		NI res_261173;
		NimStringDesc* LOC18;
		NimStringDesc* LOC19;
		n = (*t).N;
		i_261087 = 0;
		HEX3Atmp_261171 = 0;
		LOC3 = 0;
		LOC3 = sonslen_189181(n);
		HEX3Atmp_261171 = (NI32)(LOC3 - 1);
		res_261173 = 0;
		while (1) {
			tsym188833* field;
			if (!(res_261173 <= HEX3Atmp_261171)) goto LA4;
			i_261087 = res_261173;
			{
				if (!!(((*(*n).kindU.S6.Sons->data[i_261087]).Kind == ((NU8) 3)))) goto LA7;
				internalerror_165591((*a).Info, ((NimStringDesc*) &TMP2920));
			}
			LA7: ;
			field = (*(*n).kindU.S6.Sons->data[i_261087]).kindU.S4.Sym;
			{
				if (!(((NI64) ((*field).Position)) == x)) goto LA11;
				{
					if (!((*field).Ast == NIM_NIL)) goto LA15;
					result = copyString((*(*field).Name).S);
					goto BeforeRet;
				}
				goto LA13;
				LA15: ;
				{
					result = copyString((*(*field).Ast).kindU.S3.Strval);
					goto BeforeRet;
				}
				LA13: ;
			}
			LA11: ;
			res_261173 += 1;
		} LA4: ;
		LOC18 = 0;
		LOC19 = 0;
		LOC19 = nimInt64ToStr(x);
		LOC18 = rawNewString(LOC19->Sup.len + 29);
appendString(LOC18, ((NimStringDesc*) &TMP2921));
appendString(LOC18, LOC19);
		internalerror_165591((*a).Info, LOC18);
	}
	break;
	default:
	{
		result = nimInt64ToStr(x);
	}
	break;
	}
	BeforeRet: ;
	return result;
}

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

N_NIMCALL(tnode188803*, evalop_261007)(NU16 m, tnode188803* n, tnode188803* a, tnode188803* b, tnode188803* c) {
	tnode188803* result;
	result = 0;
	result = NIM_NIL;
	switch (m) {
	case ((NU16) 23):
	{
		NI64 LOC2;
		LOC2 = 0;
		LOC2 = getordvalue_223150(a);
		result = newintnodet_261020(LOC2, n);
	}
	break;
	case ((NU16) 34):
	{
		NI64 LOC4;
		LOC4 = 0;
		LOC4 = getint_194832(a);
		result = newintnodet_261020(LOC4, n);
	}
	break;
	case ((NU16) 101):
	case ((NU16) 102):
	{
		NI64 LOC6;
		LOC6 = 0;
		LOC6 = getint_194832(a);
		result = newintnodet_261020(-(LOC6), n);
	}
	break;
	case ((NU16) 111):
	{
		NF LOC8;
		LOC8 = 0;
		LOC8 = getfloat_194852(a);
		result = newfloatnodet_261025(-(LOC8), n);
	}
	break;
	case ((NU16) 105):
	{
		NI64 LOC10;
		LOC10 = 0;
		LOC10 = getint_194832(a);
		result = newintnodet_261020((NI64)(1 - LOC10), n);
	}
	break;
	case ((NU16) 33):
	{
		NI64 LOC12;
		LOC12 = 0;
		LOC12 = cardset_244063(a);
		result = newintnodet_261020(LOC12, n);
	}
	break;
	case ((NU16) 107):
	case ((NU16) 109):
	{
		NI64 LOC14;
		LOC14 = 0;
		LOC14 = getint_194832(a);
		result = newintnodet_261020((NI64)((NU64) ~(LOC14)), n);
	}
	break;
	case ((NU16) 28):
	{
		NimStringDesc* LOC16;
		LOC16 = 0;
		LOC16 = getstr_194873(a);
		result = newintnodet_261020(((NI64) (LOC16->Sup.len)), n);
	}
	break;
	case ((NU16) 29):
	{
		NI64 LOC18;
		LOC18 = 0;
		LOC18 = lengthord_223010((*a).Typ);
		result = newintnodet_261020(LOC18, n);
	}
	break;
	case ((NU16) 30):
	case ((NU16) 27):
	{
		NI LOC20;
		LOC20 = 0;
		LOC20 = sonslen_189181(a);
		result = newintnodet_261020(((NI64) (LOC20)), n);
	}
	break;
	case ((NU16) 106):
	case ((NU16) 108):
	case ((NU16) 110):
	{
		result = a;
	}
	break;
	case ((NU16) 122):
	case ((NU16) 123):
	{
		NI64 LOC23;
		LOC23 = 0;
		LOC23 = getint_194832(a);
		result = newfloatnodet_261025(((double) (((NI) (LOC23)))), n);
	}
	break;
	case ((NU16) 124):
	case ((NU16) 125):
	{
		NF LOC25;
		LOC25 = 0;
		LOC25 = getfloat_194852(a);
		result = newintnodet_261020(((NI64) (float64ToInt32(LOC25))), n);
	}
	break;
	case ((NU16) 112):
	{
		NF LOC27;
		LOC27 = 0;
		LOC27 = getfloat_194852(a);
		result = newfloatnodet_261025((LOC27 > 0? (LOC27) : -(LOC27)), n);
	}
	break;
	case ((NU16) 103):
	case ((NU16) 104):
	{
		{
			NI64 LOC31;
			LOC31 = 0;
			LOC31 = getint_194832(a);
			if (!(0 <= LOC31)) goto LA32;
			result = a;
		}
		goto LA29;
		LA32: ;
		{
			NI64 LOC35;
			LOC35 = 0;
			LOC35 = getint_194832(a);
			result = newintnodet_261020(-(LOC35), n);
		}
		LA29: ;
	}
	break;
	case ((NU16) 113):
	case ((NU16) 114):
	case ((NU16) 115):
	case ((NU16) 116):
	case ((NU16) 117):
	case ((NU16) 118):
	{
		NI64 LOC37;
		NI64 LOC38;
		LOC37 = 0;
		LOC37 = getint_194832(a);
		LOC38 = 0;
		LOC38 = getsize_223158((*a).Typ);
		result = newintnodet_261020((NI64)(LOC37 & (NI64)((NI64)((NU64)(1) << (NU64)((NI64)(LOC38 * 8))) - 1)), n);
	}
	break;
	case ((NU16) 119):
	{
		NI64 LOC40;
		LOC40 = 0;
		LOC40 = getint_194832(a);
		result = newintnodet_261020(((NI64) ((NI64)(LOC40 & 255))), n);
	}
	break;
	case ((NU16) 120):
	{
		NI64 LOC42;
		LOC42 = 0;
		LOC42 = getint_194832(a);
		result = newintnodet_261020(((NI64) ((NI64)(LOC42 & 65535))), n);
	}
	break;
	case ((NU16) 121):
	{
		NI64 LOC44;
		LOC44 = 0;
		LOC44 = getint_194832(a);
		result = newintnodet_261020(((NI64) ((NI64)(LOC44 & IL64(4294967295)))), n);
	}
	break;
	case ((NU16) 18):
	{
		NI64 LOC46;
		LOC46 = 0;
		LOC46 = getordvalue_223150(a);
		result = newintnodet_261020((NI64)(LOC46 - 1), n);
	}
	break;
	case ((NU16) 19):
	{
		NI64 LOC48;
		NI64 LOC49;
		LOC48 = 0;
		LOC48 = getordvalue_223150(a);
		LOC49 = 0;
		LOC49 = getint_194832(b);
		result = newintnodet_261020((NI64)(LOC48 + LOC49), n);
	}
	break;
	case ((NU16) 20):
	{
		NI64 LOC51;
		NI64 LOC52;
		LOC51 = 0;
		LOC51 = getordvalue_223150(a);
		LOC52 = 0;
		LOC52 = getint_194832(b);
		result = newintnodet_261020((NI64)(LOC51 - LOC52), n);
	}
	break;
	case ((NU16) 37):
	case ((NU16) 42):
	{
		NI64 LOC54;
		NI64 LOC55;
		LOC54 = 0;
		LOC54 = getint_194832(a);
		LOC55 = 0;
		LOC55 = getint_194832(b);
		result = newintnodet_261020((NI64)(LOC54 + LOC55), n);
	}
	break;
	case ((NU16) 38):
	case ((NU16) 43):
	{
		NI64 LOC57;
		NI64 LOC58;
		LOC57 = 0;
		LOC57 = getint_194832(a);
		LOC58 = 0;
		LOC58 = getint_194832(b);
		result = newintnodet_261020((NI64)(LOC57 - LOC58), n);
	}
	break;
	case ((NU16) 39):
	case ((NU16) 44):
	{
		NI64 LOC60;
		NI64 LOC61;
		LOC60 = 0;
		LOC60 = getint_194832(a);
		LOC61 = 0;
		LOC61 = getint_194832(b);
		result = newintnodet_261020((NI64)(LOC60 * LOC61), n);
	}
	break;
	case ((NU16) 56):
	case ((NU16) 63):
	{
		{
			NI64 LOC65;
			NI64 LOC66;
			NI64 LOC69;
			LOC65 = 0;
			LOC65 = getint_194832(b);
			LOC66 = 0;
			LOC66 = getint_194832(a);
			if (!(LOC65 < LOC66)) goto LA67;
			LOC69 = 0;
			LOC69 = getint_194832(b);
			result = newintnodet_261020(LOC69, n);
		}
		goto LA63;
		LA67: ;
		{
			NI64 LOC71;
			LOC71 = 0;
			LOC71 = getint_194832(a);
			result = newintnodet_261020(LOC71, n);
		}
		LA63: ;
	}
	break;
	case ((NU16) 57):
	case ((NU16) 64):
	{
		{
			NI64 LOC75;
			NI64 LOC76;
			NI64 LOC79;
			LOC75 = 0;
			LOC75 = getint_194832(b);
			LOC76 = 0;
			LOC76 = getint_194832(a);
			if (!(LOC75 < LOC76)) goto LA77;
			LOC79 = 0;
			LOC79 = getint_194832(a);
			result = newintnodet_261020(LOC79, n);
		}
		goto LA73;
		LA77: ;
		{
			NI64 LOC81;
			LOC81 = 0;
			LOC81 = getint_194832(b);
			result = newintnodet_261020(LOC81, n);
		}
		LA73: ;
	}
	break;
	case ((NU16) 52):
	case ((NU16) 59):
	{
		ttype188837* LOC83;
		LOC83 = 0;
		LOC83 = skiptypes_192793((*n).Typ, IL64(211106233624832));
		switch ((*LOC83).Kind) {
		case ((NU8) 32):
		{
			NI64 LOC85;
			NI64 LOC86;
			LOC85 = 0;
			LOC85 = getint_194832(a);
			LOC86 = 0;
			LOC86 = getint_194832(b);
			result = newintnodet_261020(((NI64) ((NI8)((NU8)(((NI8) (LOC85))) << (NU8)(((NI8) (LOC86)))))), n);
		}
		break;
		case ((NU8) 33):
		{
			NI64 LOC88;
			NI64 LOC89;
			LOC88 = 0;
			LOC88 = getint_194832(a);
			LOC89 = 0;
			LOC89 = getint_194832(b);
			result = newintnodet_261020(((NI64) ((NI16)((NU16)(((NI16) (LOC88))) << (NU16)(((NI16) (LOC89)))))), n);
		}
		break;
		case ((NU8) 34):
		{
			NI64 LOC91;
			NI64 LOC92;
			LOC91 = 0;
			LOC91 = getint_194832(a);
			LOC92 = 0;
			LOC92 = getint_194832(b);
			result = newintnodet_261020(((NI64) ((NI32)((NU32)(((NI32) (LOC91))) << (NU32)(((NI32) (LOC92)))))), n);
		}
		break;
		case ((NU8) 35):
		case ((NU8) 31):
		case ((NU8) 40) ... ((NU8) 44):
		{
			NI64 LOC94;
			NI64 LOC95;
			LOC94 = 0;
			LOC94 = getint_194832(a);
			LOC95 = 0;
			LOC95 = getint_194832(b);
			result = newintnodet_261020((NI64)((NU64)(LOC94) << (NU64)(LOC95)), n);
		}
		break;
		default:
		{
			internalerror_165591((*n).Info, ((NimStringDesc*) &TMP2915));
		}
		break;
		}
	}
	break;
	case ((NU16) 51):
	case ((NU16) 58):
	{
		ttype188837* LOC98;
		LOC98 = 0;
		LOC98 = skiptypes_192793((*n).Typ, IL64(211106233624832));
		switch ((*LOC98).Kind) {
		case ((NU8) 32):
		{
			NI64 LOC100;
			NI64 LOC101;
			LOC100 = 0;
			LOC100 = getint_194832(a);
			LOC101 = 0;
			LOC101 = getint_194832(b);
			result = newintnodet_261020(((NI64) ((NI8)((NU8)(((NI8) (LOC100))) >> (NU8)(((NI8) (LOC101)))))), n);
		}
		break;
		case ((NU8) 33):
		{
			NI64 LOC103;
			NI64 LOC104;
			LOC103 = 0;
			LOC103 = getint_194832(a);
			LOC104 = 0;
			LOC104 = getint_194832(b);
			result = newintnodet_261020(((NI64) ((NI16)((NU16)(((NI16) (LOC103))) >> (NU16)(((NI16) (LOC104)))))), n);
		}
		break;
		case ((NU8) 34):
		{
			NI64 LOC106;
			NI64 LOC107;
			LOC106 = 0;
			LOC106 = getint_194832(a);
			LOC107 = 0;
			LOC107 = getint_194832(b);
			result = newintnodet_261020(((NI64) ((NI32)((NU32)(((NI32) (LOC106))) >> (NU32)(((NI32) (LOC107)))))), n);
		}
		break;
		case ((NU8) 35):
		case ((NU8) 31):
		case ((NU8) 40) ... ((NU8) 44):
		{
			NI64 LOC109;
			NI64 LOC110;
			LOC109 = 0;
			LOC109 = getint_194832(a);
			LOC110 = 0;
			LOC110 = getint_194832(b);
			result = newintnodet_261020((NI64)((NU64)(LOC109) >> (NU64)(LOC110)), n);
		}
		break;
		default:
		{
			internalerror_165591((*n).Info, ((NimStringDesc*) &TMP2916));
		}
		break;
		}
	}
	break;
	case ((NU16) 40):
	case ((NU16) 45):
	{
		NI64 LOC113;
		NI64 LOC114;
		LOC113 = 0;
		LOC113 = getint_194832(a);
		LOC114 = 0;
		LOC114 = getint_194832(b);
		result = newintnodet_261020((NI64)(LOC113 / LOC114), n);
	}
	break;
	case ((NU16) 41):
	case ((NU16) 46):
	{
		NI64 LOC116;
		NI64 LOC117;
		LOC116 = 0;
		LOC116 = getint_194832(a);
		LOC117 = 0;
		LOC117 = getint_194832(b);
		result = newintnodet_261020((NI64)(LOC116 % LOC117), n);
	}
	break;
	case ((NU16) 47):
	{
		NF LOC119;
		NF LOC120;
		LOC119 = 0;
		LOC119 = getfloat_194852(a);
		LOC120 = 0;
		LOC120 = getfloat_194852(b);
		result = newfloatnodet_261025(((NF)(LOC119) + (NF)(LOC120)), n);
	}
	break;
	case ((NU16) 48):
	{
		NF LOC122;
		NF LOC123;
		LOC122 = 0;
		LOC122 = getfloat_194852(a);
		LOC123 = 0;
		LOC123 = getfloat_194852(b);
		result = newfloatnodet_261025(((NF)(LOC122) - (NF)(LOC123)), n);
	}
	break;
	case ((NU16) 49):
	{
		NF LOC125;
		NF LOC126;
		LOC125 = 0;
		LOC125 = getfloat_194852(a);
		LOC126 = 0;
		LOC126 = getfloat_194852(b);
		result = newfloatnodet_261025(((NF)(LOC125) * (NF)(LOC126)), n);
	}
	break;
	case ((NU16) 50):
	{
		{
			NF LOC130;
			LOC130 = 0;
			LOC130 = getfloat_194852(b);
			if (!(LOC130 == 0.0)) goto LA131;
			{
				NF LOC135;
				LOC135 = 0;
				LOC135 = getfloat_194852(a);
				if (!(LOC135 == 0.0)) goto LA136;
				result = newfloatnodet_261025(NAN, n);
			}
			goto LA133;
			LA136: ;
			{
				result = newfloatnodet_261025(INF, n);
			}
			LA133: ;
		}
		goto LA128;
		LA131: ;
		{
			NF LOC140;
			NF LOC141;
			LOC140 = 0;
			LOC140 = getfloat_194852(a);
			LOC141 = 0;
			LOC141 = getfloat_194852(b);
			result = newfloatnodet_261025(((NF)(LOC140) / (NF)(LOC141)), n);
		}
		LA128: ;
	}
	break;
	case ((NU16) 66):
	{
		{
			NF LOC145;
			NF LOC146;
			NF LOC149;
			LOC145 = 0;
			LOC145 = getfloat_194852(b);
			LOC146 = 0;
			LOC146 = getfloat_194852(a);
			if (!(LOC145 < LOC146)) goto LA147;
			LOC149 = 0;
			LOC149 = getfloat_194852(a);
			result = newfloatnodet_261025(LOC149, n);
		}
		goto LA143;
		LA147: ;
		{
			NF LOC151;
			LOC151 = 0;
			LOC151 = getfloat_194852(b);
			result = newfloatnodet_261025(LOC151, n);
		}
		LA143: ;
	}
	break;
	case ((NU16) 65):
	{
		{
			NF LOC155;
			NF LOC156;
			NF LOC159;
			LOC155 = 0;
			LOC155 = getfloat_194852(b);
			LOC156 = 0;
			LOC156 = getfloat_194852(a);
			if (!(LOC155 < LOC156)) goto LA157;
			LOC159 = 0;
			LOC159 = getfloat_194852(b);
			result = newfloatnodet_261025(LOC159, n);
		}
		goto LA153;
		LA157: ;
		{
			NF LOC161;
			LOC161 = 0;
			LOC161 = getfloat_194852(a);
			result = newfloatnodet_261025(LOC161, n);
		}
		LA153: ;
	}
	break;
	case ((NU16) 168):
	{
		result = newintnodet_261020(((NI64) (((*a).Kind == ((NU8) 23)))), n);
	}
	break;
	case ((NU16) 74):
	case ((NU16) 77):
	case ((NU16) 93):
	case ((NU16) 87):
	case ((NU16) 90):
	{
		NI64 LOC164;
		NI64 LOC165;
		LOC164 = 0;
		LOC164 = getordvalue_223150(a);
		LOC165 = 0;
		LOC165 = getordvalue_223150(b);
		result = newintnodet_261020(((NI64) ((LOC164 < LOC165))), n);
	}
	break;
	case ((NU16) 73):
	case ((NU16) 76):
	case ((NU16) 92):
	case ((NU16) 86):
	case ((NU16) 89):
	{
		NI64 LOC167;
		NI64 LOC168;
		LOC167 = 0;
		LOC167 = getordvalue_223150(a);
		LOC168 = 0;
		LOC168 = getordvalue_223150(b);
		result = newintnodet_261020(((NI64) ((LOC167 <= LOC168))), n);
	}
	break;
	case ((NU16) 72):
	case ((NU16) 75):
	case ((NU16) 91):
	case ((NU16) 85):
	case ((NU16) 88):
	{
		NI64 LOC170;
		NI64 LOC171;
		LOC170 = 0;
		LOC170 = getordvalue_223150(a);
		LOC171 = 0;
		LOC171 = getordvalue_223150(b);
		result = newintnodet_261020(((NI64) ((LOC170 == LOC171))), n);
	}
	break;
	case ((NU16) 80):
	{
		NF LOC173;
		NF LOC174;
		LOC173 = 0;
		LOC173 = getfloat_194852(a);
		LOC174 = 0;
		LOC174 = getfloat_194852(b);
		result = newintnodet_261020(((NI64) ((LOC173 < LOC174))), n);
	}
	break;
	case ((NU16) 79):
	{
		NF LOC176;
		NF LOC177;
		LOC176 = 0;
		LOC176 = getfloat_194852(a);
		LOC177 = 0;
		LOC177 = getfloat_194852(b);
		result = newintnodet_261020(((NI64) ((LOC176 <= LOC177))), n);
	}
	break;
	case ((NU16) 78):
	{
		NF LOC179;
		NF LOC180;
		LOC179 = 0;
		LOC179 = getfloat_194852(a);
		LOC180 = 0;
		LOC180 = getfloat_194852(b);
		result = newintnodet_261020(((NI64) ((LOC179 == LOC180))), n);
	}
	break;
	case ((NU16) 138):
	{
		NimStringDesc* LOC182;
		NimStringDesc* LOC183;
		LOC182 = 0;
		LOC182 = getstr_194873(a);
		LOC183 = 0;
		LOC183 = getstr_194873(b);
		result = newintnodet_261020(((NI64) ((cmpStrings(LOC182, LOC183) < 0))), n);
	}
	break;
	case ((NU16) 137):
	{
		NimStringDesc* LOC185;
		NimStringDesc* LOC186;
		LOC185 = 0;
		LOC185 = getstr_194873(a);
		LOC186 = 0;
		LOC186 = getstr_194873(b);
		result = newintnodet_261020(((NI64) ((cmpStrings(LOC185, LOC186) <= 0))), n);
	}
	break;
	case ((NU16) 136):
	{
		NimStringDesc* LOC188;
		NimStringDesc* LOC189;
		LOC188 = 0;
		LOC188 = getstr_194873(a);
		LOC189 = 0;
		LOC189 = getstr_194873(b);
		result = newintnodet_261020(((NI64) (eqStrings(LOC188, LOC189))), n);
	}
	break;
	case ((NU16) 82):
	case ((NU16) 84):
	{
		NI64 LOC191;
		NI64 LOC192;
		LOC191 = 0;
		LOC191 = getordvalue_223150(a);
		LOC192 = 0;
		LOC192 = getordvalue_223150(b);
		result = newintnodet_261020(((NI64) (((NU64)(LOC191) < (NU64)(LOC192)))), n);
	}
	break;
	case ((NU16) 81):
	case ((NU16) 83):
	{
		NI64 LOC194;
		NI64 LOC195;
		LOC194 = 0;
		LOC194 = getordvalue_223150(a);
		LOC195 = 0;
		LOC195 = getordvalue_223150(b);
		result = newintnodet_261020(((NI64) (((NU64)(LOC194) <= (NU64)(LOC195)))), n);
	}
	break;
	case ((NU16) 53):
	case ((NU16) 60):
	case ((NU16) 134):
	{
		NI64 LOC197;
		NI64 LOC198;
		LOC197 = 0;
		LOC197 = getint_194832(a);
		LOC198 = 0;
		LOC198 = getint_194832(b);
		result = newintnodet_261020((NI64)(LOC197 & LOC198), n);
	}
	break;
	case ((NU16) 54):
	case ((NU16) 61):
	case ((NU16) 135):
	{
		NI64 LOC200;
		NI64 LOC201;
		LOC200 = 0;
		LOC200 = getint_194832(a);
		LOC201 = 0;
		LOC201 = getint_194832(b);
		result = newintnodet_261020((NI64)(LOC200 | LOC201), n);
	}
	break;
	case ((NU16) 55):
	case ((NU16) 62):
	case ((NU16) 99):
	{
		NI64 LOC203;
		NI64 LOC204;
		LOC203 = 0;
		LOC203 = getint_194832(a);
		LOC204 = 0;
		LOC204 = getint_194832(b);
		result = newintnodet_261020((NI64)(LOC203 ^ LOC204), n);
	}
	break;
	case ((NU16) 67):
	{
		NI64 LOC206;
		NI64 LOC207;
		LOC206 = 0;
		LOC206 = getint_194832(a);
		LOC207 = 0;
		LOC207 = getint_194832(b);
		result = newintnodet_261020((NI64)((NU64)(LOC206) + (NU64)(LOC207)), n);
	}
	break;
	case ((NU16) 68):
	{
		NI64 LOC209;
		NI64 LOC210;
		LOC209 = 0;
		LOC209 = getint_194832(a);
		LOC210 = 0;
		LOC210 = getint_194832(b);
		result = newintnodet_261020((NI64)((NU64)(LOC209) - (NU64)(LOC210)), n);
	}
	break;
	case ((NU16) 69):
	{
		NI64 LOC212;
		NI64 LOC213;
		LOC212 = 0;
		LOC212 = getint_194832(a);
		LOC213 = 0;
		LOC213 = getint_194832(b);
		result = newintnodet_261020((NI64)((NU64)(LOC212) * (NU64)(LOC213)), n);
	}
	break;
	case ((NU16) 71):
	{
		NI64 LOC215;
		NI64 LOC216;
		LOC215 = 0;
		LOC215 = getint_194832(a);
		LOC216 = 0;
		LOC216 = getint_194832(b);
		result = newintnodet_261020((NI64)((NU64)(LOC215) % (NU64)(LOC216)), n);
	}
	break;
	case ((NU16) 70):
	{
		NI64 LOC218;
		NI64 LOC219;
		LOC218 = 0;
		LOC218 = getint_194832(a);
		LOC219 = 0;
		LOC219 = getint_194832(b);
		result = newintnodet_261020((NI64)((NU64)(LOC218) / (NU64)(LOC219)), n);
	}
	break;
	case ((NU16) 140):
	{
		NIM_BOOL LOC221;
		LOC221 = 0;
		LOC221 = containssets_244053(a, b);
		result = newintnodet_261020(((NI64) (LOC221)), n);
	}
	break;
	case ((NU16) 139):
	{
		NIM_BOOL LOC223;
		LOC223 = 0;
		LOC223 = equalsets_244058(a, b);
		result = newintnodet_261020(((NI64) (LOC223)), n);
	}
	break;
	case ((NU16) 141):
	{
		NIM_BOOL LOC225;
		NIM_BOOL LOC227;
		LOC225 = 0;
		LOC225 = containssets_244053(a, b);
		if (!(LOC225)) goto LA226;
		LOC227 = 0;
		LOC227 = equalsets_244058(a, b);
		LOC225 = !(LOC227);
		LA226: ;
		result = newintnodet_261020(((NI64) (LOC225)), n);
	}
	break;
	case ((NU16) 142):
	{
		result = intersectsets_244043(a, b);
		(*result).Info = (*n).Info;
	}
	break;
	case ((NU16) 143):
	{
		result = unionsets_244033(a, b);
		(*result).Info = (*n).Info;
	}
	break;
	case ((NU16) 144):
	{
		result = diffsets_244038(a, b);
		(*result).Info = (*n).Info;
	}
	break;
	case ((NU16) 145):
	{
		result = symdiffsets_244048(a, b);
		(*result).Info = (*n).Info;
	}
	break;
	case ((NU16) 146):
	{
		NimStringDesc* LOC233;
		NimStringDesc* LOC234;
		NimStringDesc* LOC235;
		LOC233 = 0;
		LOC234 = 0;
		LOC234 = getstrorchar_194893(a);
		LOC235 = 0;
		LOC235 = getstrorchar_194893(b);
		LOC233 = rawNewString(LOC234->Sup.len + LOC235->Sup.len + 0);
appendString(LOC233, LOC234);
appendString(LOC233, LOC235);
		result = newstrnodet_261030(LOC233, n);
	}
	break;
	case ((NU16) 159):
	{
		NIM_BOOL LOC237;
		LOC237 = 0;
		LOC237 = inset_244013(a, b);
		result = newintnodet_261020(((NI64) (LOC237)), n);
	}
	break;
	case ((NU16) 160):
	{
	}
	break;
	case ((NU16) 128):
	case ((NU16) 129):
	{
		NI64 LOC240;
		NimStringDesc* LOC241;
		LOC240 = 0;
		LOC240 = getordvalue_223150(a);
		LOC241 = 0;
		LOC241 = nimInt64ToStr(LOC240);
		result = newstrnodet_261030(LOC241, n);
	}
	break;
	case ((NU16) 127):
	{
		{
			NI64 LOC245;
			LOC245 = 0;
			LOC245 = getordvalue_223150(a);
			if (!(LOC245 == 0)) goto LA246;
			result = newstrnodet_261030(((NimStringDesc*) &TMP2918), n);
		}
		goto LA243;
		LA246: ;
		{
			result = newstrnodet_261030(((NimStringDesc*) &TMP2919), n);
		}
		LA243: ;
	}
	break;
	case ((NU16) 170):
	{
		NimStringDesc* LOC250;
		NI64 LOC251;
		NimStringDesc* LOC252;
		LOC250 = 0;
		LOC250 = getstr_194873(a);
		LOC251 = 0;
		LOC251 = getordvalue_223150(b);
		LOC252 = 0;
		LOC252 = copyStr(LOC250, ((NI) (LOC251)));
		result = newstrnodet_261030(LOC252, n);
	}
	break;
	case ((NU16) 171):
	{
		NimStringDesc* LOC254;
		NI64 LOC255;
		NI64 LOC256;
		NimStringDesc* LOC257;
		LOC254 = 0;
		LOC254 = getstr_194873(a);
		LOC255 = 0;
		LOC255 = getordvalue_223150(b);
		LOC256 = 0;
		LOC256 = getordvalue_223150(c);
		LOC257 = 0;
		LOC257 = copyStrLast(LOC254, ((NI) (LOC255)), ((NI) (LOC256)));
		result = newstrnodet_261030(LOC257, n);
	}
	break;
	case ((NU16) 130):
	{
		NF LOC259;
		NimStringDesc* LOC260;
		LOC259 = 0;
		LOC259 = getfloat_194852(a);
		LOC260 = 0;
		LOC260 = nimFloatToStr(LOC259);
		result = newstrnodet_261030(LOC260, n);
	}
	break;
	case ((NU16) 131):
	case ((NU16) 126):
	{
		NimStringDesc* LOC262;
		LOC262 = 0;
		LOC262 = getstrorchar_194893(a);
		result = newstrnodet_261030(LOC262, n);
	}
	break;
	case ((NU16) 132):
	{
		result = a;
	}
	break;
	case ((NU16) 133):
	{
		NimStringDesc* LOC265;
		LOC265 = 0;
		LOC265 = ordinalvaltostring_261066(a);
		result = newstrnodet_261030(LOC265, n);
	}
	break;
	case ((NU16) 169):
	{
		result = copytree_189237(a);
		asgnRefNoCycle((void**) &(*result).Typ, (*n).Typ);
	}
	break;
	case ((NU16) 227):
	{
		NimStringDesc* LOC268;
		NIM_BOOL LOC269;
		LOC268 = 0;
		LOC268 = getstr_194873(a);
		LOC269 = 0;
		LOC269 = testcompileoption_173584(LOC268, (*n).Info);
		result = newintnodet_261020(((NI64) (LOC269)), n);
	}
	break;
	case ((NU16) 228):
	{
		NimStringDesc* LOC271;
		NimStringDesc* LOC272;
		NIM_BOOL LOC273;
		LOC271 = 0;
		LOC271 = getstr_194873(a);
		LOC272 = 0;
		LOC272 = getstr_194873(b);
		LOC273 = 0;
		LOC273 = testcompileoptionarg_173459(LOC271, LOC272, (*n).Info);
		result = newintnodet_261020(((NI64) (LOC273)), n);
	}
	break;
	case ((NU16) 172):
	case ((NU16) 173):
	case ((NU16) 161):
	case ((NU16) 21):
	case ((NU16) 22):
	case ((NU16) 10):
	case ((NU16) 167):
	case ((NU16) 155):
	case ((NU16) 156):
	case ((NU16) 157):
	case ((NU16) 162):
	case ((NU16) 163):
	case ((NU16) 14):
	case ((NU16) 15):
	case ((NU16) 16):
	case ((NU16) 7):
	case ((NU16) 229) ... ((NU16) 261):
	case ((NU16) 94):
	case ((NU16) 12):
	case ((NU16) 13):
	case ((NU16) 264):
	case ((NU16) 212):
	{
	}
	break;
	case ((NU16) 166):
	{
		NI64 LOC276;
		NI LOC277;
		LOC276 = 0;
		LOC276 = getint_194832(a);
		LOC277 = 0;
		LOC277 = random_133979(((NI) (LOC276)));
		result = newintnodet_261020(((NI64) (LOC277)), n);
	}
	break;
	default:
	{
		NimStringDesc* LOC279;
		LOC279 = 0;
		LOC279 = rawNewString(reprEnum(m, (&NTI188521))->Sup.len + 8);
appendString(LOC279, ((NimStringDesc*) &TMP2922));
appendString(LOC279, reprEnum(m, (&NTI188521)));
appendChar(LOC279, 41);
		internalerror_165591((*a).Info, LOC279);
	}
	break;
	}
	return result;
}

N_NIMCALL(tnode188803*, magiccall_263194)(tsym188833* m, tnode188803* n) {
	tnode188803* result;
	tsym188833* s;
	tnode188803* a;
	tnode188803* b;
	tnode188803* c;
	result = 0;
	{
		NI LOC3;
		LOC3 = 0;
		LOC3 = sonslen_189181(n);
		if (!(LOC3 <= 1)) goto LA4;
		goto BeforeRet;
	}
	LA4: ;
	s = (*(*n).kindU.S6.Sons->data[0]).kindU.S4.Sym;
	a = getconstexpr_261002(m, (*n).kindU.S6.Sons->data[1]);
	b = 0;
	c = 0;
	{
		if (!(a == NIM_NIL)) goto LA8;
		goto BeforeRet;
	}
	LA8: ;
	{
		NI LOC12;
		LOC12 = 0;
		LOC12 = sonslen_189181(n);
		if (!(2 < LOC12)) goto LA13;
		b = getconstexpr_261002(m, (*n).kindU.S6.Sons->data[2]);
		{
			if (!(b == NIM_NIL)) goto LA17;
			goto BeforeRet;
		}
		LA17: ;
		{
			NI LOC21;
			LOC21 = 0;
			LOC21 = sonslen_189181(n);
			if (!(3 < LOC21)) goto LA22;
			c = getconstexpr_261002(m, (*n).kindU.S6.Sons->data[3]);
			{
				if (!(c == NIM_NIL)) goto LA26;
				goto BeforeRet;
			}
			LA26: ;
		}
		LA22: ;
	}
	LA13: ;
	result = evalop_261007((*s).Magic, n, a, b, c);
	BeforeRet: ;
	return result;
}

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

N_NIMCALL(tnode188803*, foldconstrstr_263894)(tsym188833* m, tnode188803* n) {
	tnode188803* result;
	NimStringDesc* LOC1;
	NI i_263925;
	NI HEX3Atmp_263972;
	NI LOC2;
	NI res_263974;
	result = 0;
	result = newnodeit_189104(((NU8) 20), (*n).Info, (*n).Typ);
	LOC1 = 0;
	LOC1 = (*result).kindU.S3.Strval; (*result).kindU.S3.Strval = copyStringRC1(((NimStringDesc*) &TMP2923));
	if (LOC1) nimGCunrefNoCycle(LOC1);
	i_263925 = 0;
	HEX3Atmp_263972 = 0;
	LOC2 = 0;
	LOC2 = sonslen_189181(n);
	HEX3Atmp_263972 = (NI32)(LOC2 - 1);
	res_263974 = 1;
	while (1) {
		tnode188803* a;
		NimStringDesc* LOC8;
		if (!(res_263974 <= HEX3Atmp_263972)) goto LA3;
		i_263925 = res_263974;
		a = getconstexpr_261002(m, (*n).kindU.S6.Sons->data[i_263925]);
		{
			if (!(a == NIM_NIL)) goto LA6;
			result = NIM_NIL;
			goto BeforeRet;
		}
		LA6: ;
		LOC8 = 0;
		LOC8 = getstrorchar_194893(a);
		(*result).kindU.S3.Strval = resizeString((*result).kindU.S3.Strval, LOC8->Sup.len + 0);
appendString((*result).kindU.S3.Strval, LOC8);
		res_263974 += 1;
	} LA3: ;
	BeforeRet: ;
	return result;
}

N_NIMCALL(tnode188803*, evalis_262266)(tnode188803* n, tnode188803* a) {
	tnode188803* result;
	ttype188837* t1;
	result = 0;
	{
		NIM_BOOL LOC3;
		NimStringDesc* LOC7;
		LOC3 = 0;
		LOC3 = ((*a).Kind == ((NU8) 3));
		if (!(LOC3)) goto LA4;
		LOC3 = ((*(*a).kindU.S4.Sym).Kind == ((NU8) 7));
		LA4: ;
		if (!!(LOC3)) goto LA5;
		LOC7 = 0;
		LOC7 = HEX24_165714(TMP2924);
		internalerror_165606(LOC7);
	}
	LA5: ;
	{
		NIM_BOOL LOC10;
		NI LOC11;
		tnode188803* LOC13;
		NimStringDesc* LOC16;
		LOC10 = 0;
		LOC11 = 0;
		LOC11 = sonslen_189181(n);
		LOC10 = (LOC11 == 3);
		if (!(LOC10)) goto LA12;
		LOC13 = 0;
		LOC13 = HEX5BHEX5D_189694(n, 2);
		LOC10 = ((*LOC13).Kind >= ((NU8) 20) && (*LOC13).Kind <= ((NU8) 22) || (*LOC13).Kind == ((NU8) 4));
		LA12: ;
		if (!!(LOC10)) goto LA14;
		LOC16 = 0;
		LOC16 = HEX24_165714(TMP2926);
		internalerror_165606(LOC16);
	}
	LA14: ;
	t1 = (*(*a).kindU.S4.Sym).Typ;
	{
		tnode188803* LOC19;
		tnode188803* LOC22;
		NimStringDesc* LOC23;
		LOC19 = 0;
		LOC19 = HEX5BHEX5D_189694(n, 2);
		if (!((*LOC19).Kind >= ((NU8) 20) && (*LOC19).Kind <= ((NU8) 22))) goto LA20;
		LOC22 = 0;
		LOC22 = HEX5BHEX5D_189694(n, 2);
		LOC23 = 0;
		LOC23 = nsuNormalize((*LOC22).kindU.S3.Strval);
		if (eqStrings(LOC23, ((NimStringDesc*) &TMP2927))) goto LA24;
		if (eqStrings(LOC23, ((NimStringDesc*) &TMP2928))) goto LA25;
		goto LA26;
		LA24: ;
		{
			ttype188837* t;
			NIM_BOOL LOC29;
			NIM_BOOL LOC30;
			t = skiptypes_192793(t1, IL64(211106233624832));
			LOC29 = 0;
			LOC30 = 0;
			LOC30 = ((*t).Kind == ((NU8) 25));
			if (!(LOC30)) goto LA31;
			LOC30 = ((*t).Callconv == ((NU8) 8));
			LA31: ;
			LOC29 = LOC30;
			if (!(LOC29)) goto LA32;
			LOC29 = !((((*t).Flags &(1<<((((NU8) 14))&31)))!=0));
			LA32: ;
			result = newintnode_189069(((NU8) 6), ((NI64) (LOC29)));
		}
		goto LA27;
		LA25: ;
		{
			ttype188837* t;
			NIM_BOOL LOC34;
			NIM_BOOL LOC35;
			t = skiptypes_192793(t1, IL64(211106233624832));
			LOC34 = 0;
			LOC35 = 0;
			LOC35 = ((*t).Kind == ((NU8) 25));
			if (!(LOC35)) goto LA36;
			LOC35 = ((*t).Callconv == ((NU8) 8));
			LA36: ;
			LOC34 = LOC35;
			if (!(LOC34)) goto LA37;
			LOC34 = (((*t).Flags &(1<<((((NU8) 14))&31)))!=0);
			LA37: ;
			result = newintnode_189069(((NU8) 6), ((NI64) (LOC34)));
		}
		goto LA27;
		LA26: ;
		{
		}
		LA27: ;
	}
	goto LA17;
	LA20: ;
	{
		ttype188837* t2;
		tnode188803* LOC40;
		NIM_BOOL match;
		LOC40 = 0;
		LOC40 = HEX5BHEX5D_189694(n, 2);
		t2 = (*LOC40).Typ;
		match = sametype_228116(t1, t2, 0);
		result = newintnode_189069(((NU8) 6), ((NI64) (match)));
	}
	LA17: ;
	asgnRefNoCycle((void**) &(*result).Typ, (*n).Typ);
	return result;
}

static N_INLINE(E_Base*, getCurrentException)(void) {
	E_Base* result;
	result = 0;
	result = currexception_13041;
	return result;
}

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

static N_INLINE(void, rtladdcycleroot_45235)(tcell41090* c) {
	{
		if (!!((((NI) ((NI)((*c).Refcount & 3))) == 3))) goto LA3;
		(*c).Refcount = (NI)((NI)((*c).Refcount & -4) | 3);
		incl_41855(&gch_43044.Cycleroots, c);
	}
	LA3: ;
}

static N_INLINE(void, incref_46827)(tcell41090* c) {
	(*c).Refcount = (NI)((NU32)((*c).Refcount) + (NU32)(8));
	{
		NIM_BOOL LOC3;
		LOC3 = 0;
		LOC3 = canbecycleroot_44462(c);
		if (!LOC3) goto LA4;
		rtladdcycleroot_45235(c);
	}
	LA4: ;
}

static N_INLINE(void, decref_46402)(tcell41090* c) {
	{
		(*c).Refcount -= 8;
		if (!((NU32)((*c).Refcount) < (NU32)(8))) goto LA3;
		rtladdzct_46002(c);
	}
	goto LA1;
	LA3: ;
	{
		NIM_BOOL LOC6;
		LOC6 = 0;
		LOC6 = canbecycleroot_44462(c);
		if (!LOC6) goto LA7;
		rtladdcycleroot_45235(c);
	}
	goto LA1;
	LA7: ;
	LA1: ;
}

static N_INLINE(void, asgnRef)(void** dest, void* src) {
	{
		tcell41090* LOC5;
		if (!!((src == NIM_NIL))) goto LA3;
		LOC5 = 0;
		LOC5 = usrtocell_44443(src);
		incref_46827(LOC5);
	}
	LA3: ;
	{
		tcell41090* LOC10;
		if (!!(((*dest) == NIM_NIL))) goto LA8;
		LOC10 = 0;
		LOC10 = usrtocell_44443((*dest));
		decref_46402(LOC10);
	}
	LA8: ;
	(*dest) = src;
}

static N_INLINE(void, popCurrentException)(void) {
	asgnRef((void**) &currexception_13041, (*currexception_13041).parent);
}

N_NIMCALL(void, rangecheck_263375)(tnode188803* n, NI64 value) {
	{
		NIM_BOOL LOC3;
		NI64 LOC4;
		NI64 LOC6;
		NimStringDesc* LOC9;
		NimStringDesc* LOC10;
		NimStringDesc* LOC11;
		LOC3 = 0;
		LOC4 = 0;
		LOC4 = firstord_223002((*n).Typ);
		LOC3 = (value < LOC4);
		if (LOC3) goto LA5;
		LOC6 = 0;
		LOC6 = lastord_223006((*n).Typ);
		LOC3 = (LOC6 < value);
		LA5: ;
		if (!LOC3) goto LA7;
		LOC9 = 0;
		LOC10 = 0;
		LOC10 = nimInt64ToStr(value);
		LOC11 = 0;
		LOC11 = typetostring_223020((*n).Typ, ((NU8) 0));
		LOC9 = rawNewString(LOC10->Sup.len + LOC11->Sup.len + 19);
appendString(LOC9, ((NimStringDesc*) &TMP2929));
appendString(LOC9, LOC10);
appendString(LOC9, ((NimStringDesc*) &TMP2930));
appendString(LOC9, LOC11);
		localerror_165571((*n).Info, ((NU16) 4), LOC9);
	}
	LA7: ;
}

N_NIMCALL(tnode188803*, foldconv_263383)(tnode188803* n, tnode188803* a, NIM_BOOL check) {
	tnode188803* result;
	ttype188837* LOC1;
	result = 0;
	LOC1 = 0;
	LOC1 = skiptypes_192793((*n).Typ, IL64(211106233624832));
	switch ((*LOC1).Kind) {
	case ((NU8) 31) ... ((NU8) 35):
	{
		ttype188837* LOC3;
		LOC3 = 0;
		LOC3 = skiptypes_192793((*a).Typ, IL64(211106233624832));
		switch ((*LOC3).Kind) {
		case ((NU8) 36) ... ((NU8) 38):
		{
			NF LOC5;
			LOC5 = 0;
			LOC5 = getfloat_194852(a);
			result = newintnodet_261020(((NI64) (float64ToInt32(LOC5))), n);
		}
		break;
		case ((NU8) 2):
		{
			NI64 LOC7;
			LOC7 = 0;
			LOC7 = getordvalue_223150(a);
			result = newintnodet_261020(LOC7, n);
		}
		break;
		default:
		{
			result = a;
			asgnRefNoCycle((void**) &(*result).Typ, (*n).Typ);
		}
		break;
		}
		{
			if (!check) goto LA11;
			rangecheck_263375(n, (*result).kindU.S1.Intval);
		}
		LA11: ;
	}
	break;
	case ((NU8) 36) ... ((NU8) 38):
	{
		ttype188837* LOC14;
		LOC14 = 0;
		LOC14 = skiptypes_192793((*a).Typ, IL64(211106233624832));
		switch ((*LOC14).Kind) {
		case ((NU8) 31) ... ((NU8) 35):
		case ((NU8) 14):
		case ((NU8) 1):
		case ((NU8) 2):
		{
			NI64 LOC16;
			LOC16 = 0;
			LOC16 = getordvalue_223150(a);
			result = newfloatnodet_261025(((double) (((NI) (LOC16)))), n);
		}
		break;
		default:
		{
			result = a;
			asgnRefNoCycle((void**) &(*result).Typ, (*n).Typ);
		}
		break;
		}
	}
	break;
	case ((NU8) 27):
	case ((NU8) 48):
	case ((NU8) 25):
	{
	}
	break;
	default:
	{
		result = a;
		asgnRefNoCycle((void**) &(*result).Typ, (*n).Typ);
	}
	break;
	}
	return result;
}

N_NIMCALL(tnode188803*, foldarrayaccess_263438)(tsym188833* m, tnode188803* n) {
	tnode188803* result;
	tnode188803* x;
	tnode188803* y;
	NI64 idx;
	result = 0;
	x = getconstexpr_261002(m, (*n).kindU.S6.Sons->data[0]);
	{
		NIM_BOOL LOC3;
		ttype188837* LOC5;
		LOC3 = 0;
		LOC3 = (x == NIM_NIL);
		if (LOC3) goto LA4;
		LOC5 = 0;
		LOC5 = skiptypes_192793((*x).Typ, 2048);
		LOC3 = ((*LOC5).Kind == ((NU8) 8));
		LA4: ;
		if (!LOC3) goto LA6;
		goto BeforeRet;
	}
	LA6: ;
	y = getconstexpr_261002(m, (*n).kindU.S6.Sons->data[1]);
	{
		if (!(y == NIM_NIL)) goto LA10;
		goto BeforeRet;
	}
	LA10: ;
	idx = getordvalue_223150(y);
	switch ((*x).Kind) {
	case ((NU8) 37):
	{
		{
			NIM_BOOL LOC15;
			NI LOC17;
			LOC15 = 0;
			LOC15 = (0 <= idx);
			if (!(LOC15)) goto LA16;
			LOC17 = 0;
			LOC17 = sonslen_189181(x);
			LOC15 = (idx < ((NI64) (LOC17)));
			LA16: ;
			if (!LOC15) goto LA18;
			result = (*x).kindU.S6.Sons->data[idx];
			{
				if (!((*result).Kind == ((NU8) 34))) goto LA22;
				result = (*result).kindU.S6.Sons->data[1];
			}
			LA22: ;
		}
		goto LA13;
		LA18: ;
		{
			localerror_165571((*n).Info, ((NU16) 82), ((NimStringDesc*) &TMP2923));
		}
		LA13: ;
	}
	break;
	case ((NU8) 41):
	{
		{
			NIM_BOOL LOC28;
			NI LOC30;
			LOC28 = 0;
			LOC28 = (0 <= idx);
			if (!(LOC28)) goto LA29;
			LOC30 = 0;
			LOC30 = sonslen_189181(x);
			LOC28 = (idx < ((NI64) (LOC30)));
			LA29: ;
			if (!LOC28) goto LA31;
			result = (*x).kindU.S6.Sons->data[idx];
		}
		goto LA26;
		LA31: ;
		{
			localerror_165571((*n).Info, ((NU16) 82), ((NimStringDesc*) &TMP2923));
		}
		LA26: ;
	}
	break;
	case ((NU8) 20) ... ((NU8) 22):
	{
		result = newnodeit_189104(((NU8) 5), (*x).Info, (*n).Typ);
		{
			NIM_BOOL LOC37;
			LOC37 = 0;
			LOC37 = (0 <= idx);
			if (!(LOC37)) goto LA38;
			LOC37 = (idx < ((NI64) ((*x).kindU.S3.Strval->Sup.len)));
			LA38: ;
			if (!LOC37) goto LA39;
			(*result).kindU.S1.Intval = ((NI64) (((NU8)((*x).kindU.S3.Strval->data[idx]))));
		}
		goto LA35;
		LA39: ;
		{
			if (!(idx == ((NI64) ((*x).kindU.S3.Strval->Sup.len)))) goto LA42;
		}
		goto LA35;
		LA42: ;
		{
			localerror_165571((*n).Info, ((NU16) 82), ((NimStringDesc*) &TMP2923));
		}
		LA35: ;
	}
	break;
	default:
	{
	}
	break;
	}
	BeforeRet: ;
	return result;
}

N_NIMCALL(tnode188803*, foldfieldaccess_263638)(tsym188833* m, tnode188803* n) {
	tnode188803* result;
	tnode188803* x;
	tsym188833* field;
	NI i_263768;
	NI HEX3Atmp_263886;
	NI HEX3Atmp_263887;
	NI LOC7;
	NI res_263889;
	result = 0;
	x = getconstexpr_261002(m, (*n).kindU.S6.Sons->data[0]);
	{
		NIM_BOOL LOC3;
		LOC3 = 0;
		LOC3 = (x == NIM_NIL);
		if (LOC3) goto LA4;
		LOC3 = !(((*x).Kind == ((NU8) 38) || (*x).Kind == ((NU8) 37)));
		LA4: ;
		if (!LOC3) goto LA5;
		goto BeforeRet;
	}
	LA5: ;
	field = (*(*n).kindU.S6.Sons->data[1]).kindU.S4.Sym;
	i_263768 = 0;
	HEX3Atmp_263886 = 0;
	HEX3Atmp_263887 = 0;
	HEX3Atmp_263886 = ((*x).Kind == ((NU8) 38));
	LOC7 = 0;
	LOC7 = sonslen_189181(x);
	HEX3Atmp_263887 = (NI32)(LOC7 - 1);
	res_263889 = ((NI) (HEX3Atmp_263886));
	while (1) {
		tnode188803* it;
		if (!(res_263889 <= HEX3Atmp_263887)) goto LA8;
		i_263768 = res_263889;
		it = (*x).kindU.S6.Sons->data[i_263768];
		{
			if (!!(((*it).Kind == ((NU8) 34)))) goto LA11;
			result = (*x).kindU.S6.Sons->data[(*field).Position];
			{
				if (!((*result).Kind == ((NU8) 34))) goto LA15;
				result = (*result).kindU.S6.Sons->data[1];
			}
			LA15: ;
			goto BeforeRet;
		}
		LA11: ;
		{
			if (!((*(*(*(*it).kindU.S6.Sons->data[0]).kindU.S4.Sym).Name).Sup.Id == (*(*field).Name).Sup.Id)) goto LA19;
			result = (*(*x).kindU.S6.Sons->data[i_263768]).kindU.S6.Sons->data[1];
			goto BeforeRet;
		}
		LA19: ;
		res_263889 += 1;
	} LA8: ;
	localerror_165571((*n).Info, ((NU16) 209), (*(*field).Name).S);
	BeforeRet: ;
	return result;
}

N_NIMCALL(tnode188803*, getconstexpr_261002)(tsym188833* m, tnode188803* n) {
	tnode188803* result;
	result = 0;
	result = NIM_NIL;
	switch ((*n).Kind) {
	case ((NU8) 3):
	{
		tsym188833* s;
		s = (*n).kindU.S4.Sym;
		switch ((*s).Kind) {
		case ((NU8) 20):
		{
			result = newintnodet_261020(((NI64) ((*s).Position)), n);
		}
		break;
		case ((NU8) 10):
		{
			switch ((*s).Magic) {
			case ((NU16) 213):
			{
				result = newintnodet_261020(((NI64) ((((*m).Flags &(1<<((((NU8) 12))&31)))!=0))), n);
			}
			break;
			case ((NU16) 214):
			{
				NimStringDesc* LOC6;
				LOC6 = 0;
				LOC6 = ntgetDateStr();
				result = newstrnodet_261030(LOC6, n);
			}
			break;
			case ((NU16) 215):
			{
				NimStringDesc* LOC8;
				LOC8 = 0;
				LOC8 = ntgetClockStr();
				result = newstrnodet_261030(LOC8, n);
			}
			break;
			case ((NU16) 216):
			{
				result = newstrnodet_261030(((NimStringDesc*) &TMP2904), n);
			}
			break;
			case ((NU16) 217):
			{
				result = newintnodet_261020(0, n);
			}
			break;
			case ((NU16) 218):
			{
				result = newintnodet_261020(9, n);
			}
			break;
			case ((NU16) 219):
			{
				result = newintnodet_261020(5, n);
			}
			break;
			case ((NU16) 220):
			{
				result = newintnodet_261020(((NI64) (cpu_142468[(targetcpu_142573)- 1].Field2)), n);
			}
			break;
			case ((NU16) 221):
			{
				NimStringDesc* LOC15;
				LOC15 = 0;
				LOC15 = nsuToLowerStr(os_142063[(targetos_142575)- 1].Field0);
				result = newstrnodet_261030(LOC15, n);
			}
			break;
			case ((NU16) 222):
			{
				NimStringDesc* LOC17;
				LOC17 = 0;
				LOC17 = nsuToLowerStr(cpu_142468[(targetcpu_142573)- 1].Field0);
				result = newstrnodet_261030(LOC17, n);
			}
			break;
			case ((NU16) 223):
			{
				result = getapptype_263330(n);
			}
			break;
			case ((NU16) 224):
			{
				result = newfloatnodet_261025(NAN, n);
			}
			break;
			case ((NU16) 225):
			{
				result = newfloatnodet_261025(INF, n);
			}
			break;
			case ((NU16) 226):
			{
				result = newfloatnodet_261025(-INF, n);
			}
			break;
			default:
			{
				{
					if (!!((((*s).Flags &(1<<((((NU8) 25))&31)))!=0))) goto LA25;
					result = copytree_189237((*s).Ast);
				}
				LA25: ;
			}
			break;
			}
		}
		break;
		case ((NU8) 12):
		case ((NU8) 13):
		{
			result = n;
		}
		break;
		case ((NU8) 7):
		{
			result = newsymnodetypedesc_263979(s, (*n).Info);
		}
		break;
		case ((NU8) 4):
		{
			{
				if (!((*(*s).Typ).Kind == ((NU8) 59))) goto LA32;
				{
					if (!!(((*(*s).Typ).N == NIM_NIL))) goto LA36;
					result = (*(*s).Typ).N;
					asgnRefNoCycle((void**) &(*result).Typ, (*(*s).Typ).Sons->data[0]);
				}
				LA36: ;
			}
			goto LA30;
			LA32: ;
			{
				result = newsymnodetypedesc_263979(s, (*n).Info);
			}
			LA30: ;
		}
		break;
		default:
		{
		}
		break;
		}
	}
	break;
	case ((NU8) 5) ... ((NU8) 23):
	{
		result = copynode_189233(n);
	}
	break;
	case ((NU8) 48):
	{
		result = getconstifexpr_262692(m, n);
	}
	break;
	case ((NU8) 27):
	case ((NU8) 26):
	case ((NU8) 28):
	case ((NU8) 30):
	case ((NU8) 29):
	{
		tsym188833* s;
		TSafePoint TMP2910;
		{
			if (!!(((*(*n).kindU.S6.Sons->data[0]).Kind == ((NU8) 3)))) goto LA45;
			goto BeforeRet;
		}
		LA45: ;
		s = (*(*n).kindU.S6.Sons->data[0]).kindU.S4.Sym;
		{
			if (!!(((*s).Kind == ((NU8) 12)))) goto LA49;
			goto BeforeRet;
		}
		LA49: ;
		pushSafePoint(&TMP2910);
		TMP2910.status = setjmp(TMP2910.context);
		if (TMP2910.status == 0) {
			switch ((*s).Magic) {
			case ((NU16) 0):
			{
				popSafePoint();
				goto BeforeRet;
			}
			break;
			case ((NU16) 6):
			{
				tnode188803* volatile a;
				a = (*n).kindU.S6.Sons->data[1];
				{
					NI64 LOC56;
					LOC56 = 0;
					LOC56 = computesize_223154((*a).Typ);
					if (!(LOC56 < 0)) goto LA57;
					localerror_165571((*a).Info, ((NU16) 77), ((NimStringDesc*) &TMP2911));
					result = NIM_NIL;
				}
				goto LA54;
				LA57: ;
				{
					ttype188837* LOC60;
					NI64 LOC63;
					LOC60 = 0;
					LOC60 = skiptypes_192793((*a).Typ, IL64(211106232576256));
					if (!((*LOC60).Kind >= ((NU8) 1) && (*LOC60).Kind <= ((NU8) 2) || (*LOC60).Kind == ((NU8) 14) || (*LOC60).Kind == ((NU8) 19) || (*LOC60).Kind >= ((NU8) 21) && (*LOC60).Kind <= ((NU8) 22) || (*LOC60).Kind >= ((NU8) 24) && (*LOC60).Kind <= ((NU8) 26) || (*LOC60).Kind >= ((NU8) 28) && (*LOC60).Kind <= ((NU8) 29) || (*LOC60).Kind >= ((NU8) 31) && (*LOC60).Kind <= ((NU8) 44) || (*LOC60).Kind == ((NU8) 50))) goto LA61;
					LOC63 = 0;
					LOC63 = getsize_223158((*a).Typ);
					result = newintnodet_261020(LOC63, n);
				}
				goto LA54;
				LA61: ;
				{
					result = NIM_NIL;
				}
				LA54: ;
			}
			break;
			case ((NU16) 4):
			{
				NI64 LOC66;
				LOC66 = 0;
				LOC66 = firstord_223002((*(*n).kindU.S6.Sons->data[1]).Typ);
				result = newintnodet_261020(LOC66, n);
			}
			break;
			case ((NU16) 5):
			{
				{
					ttype188837* LOC70;
					tnode188803* LOC73;
					ttype188837* LOC74;
					NI64 LOC75;
					LOC70 = 0;
					LOC70 = skiptypes_192793((*(*n).kindU.S6.Sons->data[1]).Typ, IL64(211106240964864));
					if (!!(((*LOC70).Kind == ((NU8) 27) || (*LOC70).Kind == ((NU8) 48) || (*LOC70).Kind == ((NU8) 24) || (*LOC70).Kind == ((NU8) 28)))) goto LA71;
					LOC73 = 0;
					LOC73 = HEX5BHEX5D_189694(n, 1);
					LOC74 = 0;
					LOC74 = skiptypes_192793((*LOC73).Typ, IL64(211106240964864));
					LOC75 = 0;
					LOC75 = lastord_223006(LOC74);
					result = newintnodet_261020(LOC75, n);
				}
				goto LA68;
				LA71: ;
				{
					tnode188803* volatile a;
					a = getarrayconstr_263405(m, (*n).kindU.S6.Sons->data[1]);
					{
						NI LOC81;
						if (!((*a).Kind == ((NU8) 41))) goto LA79;
						LOC81 = 0;
						LOC81 = sonslen_189181(a);
						result = newintnodet_261020(((NI64) ((NI32)(LOC81 - 1))), n);
					}
					LA79: ;
				}
				LA68: ;
			}
			break;
			case ((NU16) 27):
			{
				tnode188803* volatile a;
				a = getarrayconstr_263405(m, (*n).kindU.S6.Sons->data[1]);
				{
					NI LOC87;
					if (!((*a).Kind == ((NU8) 41))) goto LA85;
					LOC87 = 0;
					LOC87 = sonslen_189181(a);
					result = newintnodet_261020(((NI64) (LOC87)), n);
				}
				goto LA83;
				LA85: ;
				{
					result = magiccall_263194(m, n);
				}
				LA83: ;
			}
			break;
			case ((NU16) 29):
			{
				NI64 LOC90;
				LOC90 = 0;
				LOC90 = lengthord_223010((*(*n).kindU.S6.Sons->data[1]).Typ);
				result = newintnodet_261020(LOC90, n);
			}
			break;
			case ((NU16) 165):
			{
				tnode188803* LOC92;
				NimStringDesc* LOC93;
				LOC92 = 0;
				LOC92 = HEX5BHEX5D_189694(n, 1);
				LOC93 = 0;
				LOC93 = rendertree_211051(LOC92, 4);
				result = newstrnodet_261030(LOC93, n);
			}
			break;
			case ((NU16) 146):
			{
				result = foldconstrstr_263894(m, n);
			}
			break;
			case ((NU16) 8):
			{
				tnode188803* volatile a;
				tnode188803* LOC96;
				LOC96 = 0;
				LOC96 = HEX5BHEX5D_189694(n, 1);
				a = getconstexpr_261002(m, LOC96);
				{
					NIM_BOOL LOC99;
					NIM_BOOL LOC100;
					LOC99 = 0;
					LOC100 = 0;
					LOC100 = !((a == NIM_NIL));
					if (!(LOC100)) goto LA101;
					LOC100 = ((*a).Kind == ((NU8) 3));
					LA101: ;
					LOC99 = LOC100;
					if (!(LOC99)) goto LA102;
					LOC99 = ((*(*a).kindU.S4.Sym).Kind == ((NU8) 7));
					LA102: ;
					if (!LOC99) goto LA103;
					result = evalis_262266(n, a);
				}
				LA103: ;
			}
			break;
			default:
			{
				result = magiccall_263194(m, n);
			}
			break;
			}
			popSafePoint();
		}
		else {
			popSafePoint();
			if (isObj(getCurrentException()->Sup.m_type, (&NTI2445))) {
				TMP2910.status = 0;
				localerror_165571((*n).Info, ((NU16) 76), ((NimStringDesc*) &TMP2923));
				popCurrentException();
			}
			else 			if (isObj(getCurrentException()->Sup.m_type, (&NTI2443))) {
				TMP2910.status = 0;
				localerror_165571((*n).Info, ((NU16) 73), ((NimStringDesc*) &TMP2923));
				popCurrentException();
			}
		}
		if (TMP2910.status != 0) reraiseException();
	}
	break;
	case ((NU8) 63):
	{
		tnode188803* a;
		a = getconstexpr_261002(m, (*n).kindU.S6.Sons->data[0]);
		{
			if (!!((a == NIM_NIL))) goto LA112;
			result = n;
			asgnRefNoCycle((void**) &(*n).kindU.S6.Sons->data[0], a);
		}
		LA112: ;
	}
	break;
	case ((NU8) 41):
	{
		NI i_264414;
		NI HEX3Atmp_265101;
		NI LOC115;
		NI res_265103;
		result = copytree_189237(n);
		i_264414 = 0;
		HEX3Atmp_265101 = 0;
		LOC115 = 0;
		LOC115 = sonslen_189181(n);
		HEX3Atmp_265101 = (NI32)(LOC115 - 1);
		res_265103 = 0;
		while (1) {
			tnode188803* a;
			if (!(res_265103 <= HEX3Atmp_265101)) goto LA116;
			i_264414 = res_265103;
			a = getconstexpr_261002(m, (*n).kindU.S6.Sons->data[i_264414]);
			{
				if (!(a == NIM_NIL)) goto LA119;
				result = NIM_NIL;
				goto BeforeRet;
			}
			LA119: ;
			asgnRefNoCycle((void**) &(*result).kindU.S6.Sons->data[i_264414], a);
			res_265103 += 1;
		} LA116: ;
		(*result).Flags |=((NI16)(1)<<((((NU8) 4))%(sizeof(NI16)*8)));
	}
	break;
	case ((NU8) 44):
	{
		tnode188803* a;
		tnode188803* b;
		a = getconstexpr_261002(m, (*n).kindU.S6.Sons->data[0]);
		{
			if (!(a == NIM_NIL)) goto LA124;
			goto BeforeRet;
		}
		LA124: ;
		b = getconstexpr_261002(m, (*n).kindU.S6.Sons->data[1]);
		{
			if (!(b == NIM_NIL)) goto LA128;
			goto BeforeRet;
		}
		LA128: ;
		result = copynode_189233(n);
		addson_189207(result, a);
		addson_189207(result, b);
	}
	break;
	case ((NU8) 39):
	{
		NI i_264553;
		NI HEX3Atmp_265105;
		NI LOC131;
		NI res_265107;
		result = copytree_189237(n);
		i_264553 = 0;
		HEX3Atmp_265105 = 0;
		LOC131 = 0;
		LOC131 = sonslen_189181(n);
		HEX3Atmp_265105 = (NI32)(LOC131 - 1);
		res_265107 = 0;
		while (1) {
			tnode188803* a;
			if (!(res_265107 <= HEX3Atmp_265105)) goto LA132;
			i_264553 = res_265107;
			a = getconstexpr_261002(m, (*n).kindU.S6.Sons->data[i_264553]);
			{
				if (!(a == NIM_NIL)) goto LA135;
				result = NIM_NIL;
				goto BeforeRet;
			}
			LA135: ;
			asgnRefNoCycle((void**) &(*result).kindU.S6.Sons->data[i_264553], a);
			res_265107 += 1;
		} LA132: ;
		(*result).Flags |=((NI16)(1)<<((((NU8) 4))%(sizeof(NI16)*8)));
	}
	break;
	case ((NU8) 38):
	{
		NI i_264628;
		NI HEX3Atmp_265109;
		NI LOC138;
		NI res_265111;
		result = copytree_189237(n);
		i_264628 = 0;
		HEX3Atmp_265109 = 0;
		LOC138 = 0;
		LOC138 = sonslen_189181(n);
		HEX3Atmp_265109 = (NI32)(LOC138 - 1);
		res_265111 = 1;
		while (1) {
			tnode188803* a;
			if (!(res_265111 <= HEX3Atmp_265109)) goto LA139;
			i_264628 = res_265111;
			a = getconstexpr_261002(m, (*(*n).kindU.S6.Sons->data[i_264628]).kindU.S6.Sons->data[1]);
			{
				if (!(a == NIM_NIL)) goto LA142;
				result = NIM_NIL;
				goto BeforeRet;
			}
			LA142: ;
			asgnRefNoCycle((void**) &(*(*result).kindU.S6.Sons->data[i_264628]).kindU.S6.Sons->data[1], a);
			res_265111 += 1;
		} LA139: ;
		(*result).Flags |=((NI16)(1)<<((((NU8) 4))%(sizeof(NI16)*8)));
	}
	break;
	case ((NU8) 37):
	{
		result = copytree_189237(n);
		{
			NIM_BOOL LOC147;
			NI LOC148;
			NI i_264755;
			NI HEX3Atmp_265113;
			NI LOC152;
			NI res_265115;
			LOC147 = 0;
			LOC148 = 0;
			LOC148 = sonslen_189181(n);
			LOC147 = (0 < LOC148);
			if (!(LOC147)) goto LA149;
			LOC147 = ((*(*n).kindU.S6.Sons->data[0]).Kind == ((NU8) 34));
			LA149: ;
			if (!LOC147) goto LA150;
			i_264755 = 0;
			HEX3Atmp_265113 = 0;
			LOC152 = 0;
			LOC152 = sonslen_189181(n);
			HEX3Atmp_265113 = (NI32)(LOC152 - 1);
			res_265115 = 0;
			while (1) {
				tnode188803* a;
				if (!(res_265115 <= HEX3Atmp_265113)) goto LA153;
				i_264755 = res_265115;
				a = getconstexpr_261002(m, (*(*n).kindU.S6.Sons->data[i_264755]).kindU.S6.Sons->data[1]);
				{
					if (!(a == NIM_NIL)) goto LA156;
					result = NIM_NIL;
					goto BeforeRet;
				}
				LA156: ;
				asgnRefNoCycle((void**) &(*(*result).kindU.S6.Sons->data[i_264755]).kindU.S6.Sons->data[1], a);
				res_265115 += 1;
			} LA153: ;
		}
		goto LA145;
		LA150: ;
		{
			NI i_264842;
			NI HEX3Atmp_265117;
			NI LOC159;
			NI res_265119;
			i_264842 = 0;
			HEX3Atmp_265117 = 0;
			LOC159 = 0;
			LOC159 = sonslen_189181(n);
			HEX3Atmp_265117 = (NI32)(LOC159 - 1);
			res_265119 = 0;
			while (1) {
				tnode188803* a;
				if (!(res_265119 <= HEX3Atmp_265117)) goto LA160;
				i_264842 = res_265119;
				a = getconstexpr_261002(m, (*n).kindU.S6.Sons->data[i_264842]);
				{
					if (!(a == NIM_NIL)) goto LA163;
					result = NIM_NIL;
					goto BeforeRet;
				}
				LA163: ;
				asgnRefNoCycle((void**) &(*result).kindU.S6.Sons->data[i_264842], a);
				res_265119 += 1;
			} LA160: ;
		}
		LA145: ;
		(*result).Flags |=((NI16)(1)<<((((NU8) 4))%(sizeof(NI16)*8)));
	}
	break;
	case ((NU8) 68):
	case ((NU8) 69):
	case ((NU8) 70):
	{
		tnode188803* a;
		a = getconstexpr_261002(m, (*n).kindU.S6.Sons->data[0]);
		{
			if (!(a == NIM_NIL)) goto LA168;
			goto BeforeRet;
		}
		LA168: ;
		{
			NIM_BOOL LOC172;
			LOC172 = 0;
			LOC172 = levalueconv_261015((*n).kindU.S6.Sons->data[1], a);
			if (!(LOC172)) goto LA173;
			LOC172 = levalueconv_261015(a, (*n).kindU.S6.Sons->data[2]);
			LA173: ;
			if (!LOC172) goto LA174;
			result = a;
			asgnRefNoCycle((void**) &(*result).Typ, (*n).Typ);
		}
		goto LA170;
		LA174: ;
		{
			NimStringDesc* LOC177;
			TY137892 LOC178;
			NimStringDesc* LOC179;
			LOC177 = 0;
			LOC177 = msgkindtostring_165071(((NU16) 142));
			memset((void*)LOC178, 0, sizeof(LOC178));
			LOC178[0] = typetostring_223020((*(*n).kindU.S6.Sons->data[0]).Typ, ((NU8) 0));
			LOC178[1] = typetostring_223020((*n).Typ, ((NU8) 0));
			LOC179 = 0;
			LOC179 = nsuFormatOpenArray(LOC177, LOC178, 2);
			localerror_165571((*n).Info, ((NU16) 4), LOC179);
		}
		LA170: ;
	}
	break;
	case ((NU8) 71):
	case ((NU8) 72):
	{
		tnode188803* a;
		a = getconstexpr_261002(m, (*n).kindU.S6.Sons->data[0]);
		{
			if (!(a == NIM_NIL)) goto LA183;
			goto BeforeRet;
		}
		LA183: ;
		result = a;
		asgnRefNoCycle((void**) &(*result).Typ, (*n).Typ);
	}
	break;
	case ((NU8) 58):
	case ((NU8) 59):
	case ((NU8) 60):
	{
		tnode188803* a;
		a = getconstexpr_261002(m, (*n).kindU.S6.Sons->data[1]);
		{
			if (!(a == NIM_NIL)) goto LA188;
			goto BeforeRet;
		}
		LA188: ;
		result = foldconv_263383(n, a, ((*n).Kind == ((NU8) 58)));
	}
	break;
	case ((NU8) 61):
	{
		tnode188803* a;
		a = getconstexpr_261002(m, (*n).kindU.S6.Sons->data[1]);
		{
			if (!(a == NIM_NIL)) goto LA193;
			goto BeforeRet;
		}
		LA193: ;
		{
			if (!((*(*n).Typ).Kind == ((NU8) 26) || (*(*n).Typ).Kind == ((NU8) 29) || (*(*n).Typ).Kind == ((NU8) 22) || (*(*n).Typ).Kind == ((NU8) 21) || (*(*n).Typ).Kind == ((NU8) 24) || (*(*n).Typ).Kind == ((NU8) 25) || (*(*n).Typ).Kind == ((NU8) 28) || (*(*n).Typ).Kind == ((NU8) 50))) goto LA197;
			result = a;
			asgnRefNoCycle((void**) &(*result).Typ, (*n).Typ);
		}
		LA197: ;
	}
	break;
	case ((NU8) 42):
	{
		result = foldarrayaccess_263438(m, n);
	}
	break;
	case ((NU8) 45):
	{
		result = foldfieldaccess_263638(m, n);
	}
	break;
	default:
	{
	}
	break;
	}
	BeforeRet: ;
	return result;
}

static N_INLINE(NIM_BOOL, isintrange_261207)(ttype188837* t) {
	NIM_BOOL result;
	NIM_BOOL LOC1;
	result = 0;
	LOC1 = 0;
	LOC1 = ((*t).Kind == ((NU8) 20));
	if (!(LOC1)) goto LA2;
	LOC1 = ((*(*t).Sons->data[0]).Kind >= ((NU8) 31) && (*(*t).Sons->data[0]).Kind <= ((NU8) 35) || (*(*t).Sons->data[0]).Kind >= ((NU8) 41) && (*(*t).Sons->data[0]).Kind <= ((NU8) 43));
	LA2: ;
	result = LOC1;
	return result;
}

N_NIMCALL(ttype188837*, makerange_261345)(ttype188837* typ, NI64 first, NI64 last) {
	ttype188837* result;
	NI64 mina;
	NI64 maxa;
	tnode188803* lowernode;
	result = 0;
	mina = ((first <= last) ? first : last);
	maxa = ((first >= last) ? first : last);
	lowernode = newintnode_189069(((NU8) 6), mina);
	{
		NIM_BOOL LOC3;
		LOC3 = 0;
		LOC3 = ((*typ).Kind == ((NU8) 31));
		if (!(LOC3)) goto LA4;
		LOC3 = (mina == maxa);
		LA4: ;
		if (!LOC3) goto LA5;
		result = getintlittype_242378(lowernode);
	}
	goto LA1;
	LA5: ;
	{
		tnode188803* n;
		tnode188803* LOC8;
		ttype188837* LOC9;
		n = newnode_189065(((NU8) 44));
		addson_189207(n, lowernode);
		LOC8 = 0;
		LOC8 = newintnode_189069(((NU8) 6), maxa);
		addson_189207(n, LOC8);
		result = newtype_189060(((NU8) 20), (*typ).Owner);
		asgnRefNoCycle((void**) &(*result).N, n);
		LOC9 = 0;
		LOC9 = skiptypes_192793(typ, 1048576);
		addsonskipintlit_242461(result, LOC9);
	}
	LA1: ;
	return result;
}

static N_INLINE(NIM_BOOL, isfloatrange_261178)(ttype188837* t) {
	NIM_BOOL result;
	NIM_BOOL LOC1;
	result = 0;
	LOC1 = 0;
	LOC1 = ((*t).Kind == ((NU8) 20));
	if (!(LOC1)) goto LA2;
	LOC1 = ((*(*t).Sons->data[0]).Kind >= ((NU8) 36) && (*(*t).Sons->data[0]).Kind <= ((NU8) 39));
	LA2: ;
	result = LOC1;
	return result;
}

N_NIMCALL(ttype188837*, makerangef_261373)(ttype188837* typ, NF first, NF last) {
	ttype188837* result;
	tnode188803* n;
	tnode188803* LOC1;
	tnode188803* LOC2;
	ttype188837* LOC3;
	result = 0;
	n = newnode_189065(((NU8) 44));
	LOC1 = 0;
	LOC1 = newfloatnode_189080(((NU8) 16), ((first <= last) ? first : last));
	addson_189207(n, LOC1);
	LOC2 = 0;
	LOC2 = newfloatnode_189080(((NU8) 16), ((first >= last) ? first : last));
	addson_189207(n, LOC2);
	result = newtype_189060(((NU8) 20), (*typ).Owner);
	asgnRefNoCycle((void**) &(*result).N, n);
	LOC3 = 0;
	LOC3 = skiptypes_192793(typ, 1048576);
	addsonskipintlit_242461(result, LOC3);
	return result;
}

static N_INLINE(NIM_BOOL, isintlit_223316)(ttype188837* t) {
	NIM_BOOL result;
	NIM_BOOL LOC1;
	NIM_BOOL LOC2;
	result = 0;
	LOC1 = 0;
	LOC2 = 0;
	LOC2 = ((*t).Kind == ((NU8) 31));
	if (!(LOC2)) goto LA3;
	LOC2 = !(((*t).N == NIM_NIL));
	LA3: ;
	LOC1 = LOC2;
	if (!(LOC1)) goto LA4;
	LOC1 = ((*(*t).N).Kind == ((NU8) 6));
	LA4: ;
	result = LOC1;
	return result;
}

N_NIMCALL(NI64, pickminint_261249)(tnode188803* n) {
	NI64 result;
	result = 0;
	{
		if (!((*n).Kind >= ((NU8) 6) && (*n).Kind <= ((NU8) 15))) goto LA3;
		result = (*n).kindU.S1.Intval;
	}
	goto LA1;
	LA3: ;
	{
		NIM_BOOL LOC6;
		LOC6 = 0;
		LOC6 = isintlit_223316((*n).Typ);
		if (!LOC6) goto LA7;
		result = (*(*(*n).Typ).N).kindU.S1.Intval;
	}
	goto LA1;
	LA7: ;
	{
		NIM_BOOL LOC10;
		LOC10 = 0;
		LOC10 = isintrange_261207((*n).Typ);
		if (!LOC10) goto LA11;
		result = firstord_223002((*n).Typ);
	}
	goto LA1;
	LA11: ;
	{
		internalerror_165591((*n).Info, ((NimStringDesc*) &TMP2931));
	}
	LA1: ;
	return result;
}

N_NIMCALL(NI64, pickmaxint_261297)(tnode188803* n) {
	NI64 result;
	result = 0;
	{
		if (!((*n).Kind >= ((NU8) 6) && (*n).Kind <= ((NU8) 15))) goto LA3;
		result = (*n).kindU.S1.Intval;
	}
	goto LA1;
	LA3: ;
	{
		NIM_BOOL LOC6;
		LOC6 = 0;
		LOC6 = isintlit_223316((*n).Typ);
		if (!LOC6) goto LA7;
		result = (*(*(*n).Typ).N).kindU.S1.Intval;
	}
	goto LA1;
	LA7: ;
	{
		NIM_BOOL LOC10;
		LOC10 = 0;
		LOC10 = isintrange_261207((*n).Typ);
		if (!LOC10) goto LA11;
		result = lastord_223006((*n).Typ);
	}
	goto LA1;
	LA11: ;
	{
		internalerror_165591((*n).Info, ((NimStringDesc*) &TMP2932));
	}
	LA1: ;
	return result;
}

N_NIMCALL(NIM_BOOL, isintrangeorlit_261243)(ttype188837* t) {
	NIM_BOOL result;
	NIM_BOOL LOC1;
	result = 0;
	LOC1 = 0;
	LOC1 = isintrange_261207(t);
	if (LOC1) goto LA2;
	LOC1 = isintlit_223316(t);
	LA2: ;
	result = LOC1;
	return result;
}

N_NIMCALL(ttype188837*, pickintrange_261236)(ttype188837* a, ttype188837* b) {
	ttype188837* result;
	result = 0;
	{
		NIM_BOOL LOC3;
		LOC3 = 0;
		LOC3 = isintrange_261207(a);
		if (!LOC3) goto LA4;
		result = a;
	}
	goto LA1;
	LA4: ;
	{
		NIM_BOOL LOC7;
		LOC7 = 0;
		LOC7 = isintrange_261207(b);
		if (!LOC7) goto LA8;
		result = b;
	}
	goto LA1;
	LA8: ;
	{
		result = a;
	}
	LA1: ;
	return result;
}

N_NIMCALL(ttype188837*, getintervaltype_261393)(NU16 m, tnode188803* n) {
	ttype188837* result;
	result = 0;
	result = (*n).Typ;
	switch (m) {
	case ((NU16) 101):
	case ((NU16) 102):
	{
		ttype188837* a;
		a = (*(*n).kindU.S6.Sons->data[1]).Typ;
		{
			NIM_BOOL LOC4;
			NI64 LOC7;
			NI64 LOC8;
			NI64 LOC9;
			NI64 LOC10;
			LOC4 = 0;
			LOC4 = isintrange_261207(a);
			if (!LOC4) goto LA5;
			LOC7 = 0;
			LOC7 = lastord_223006(a);
			LOC8 = 0;
			LOC8 = HEX7CHEX2DHEX7C_260027(0, LOC7);
			LOC9 = 0;
			LOC9 = firstord_223002(a);
			LOC10 = 0;
			LOC10 = HEX7CHEX2DHEX7C_260027(0, LOC9);
			result = makerange_261345(a, LOC8, LOC10);
		}
		LA5: ;
	}
	break;
	case ((NU16) 111):
	{
		ttype188837* a;
		a = (*(*n).kindU.S6.Sons->data[1]).Typ;
		{
			NIM_BOOL LOC14;
			NF LOC17;
			NF LOC18;
			LOC14 = 0;
			LOC14 = isfloatrange_261178(a);
			if (!LOC14) goto LA15;
			LOC17 = 0;
			LOC17 = getfloat_194852((*(*a).N).kindU.S6.Sons->data[1]);
			LOC18 = 0;
			LOC18 = getfloat_194852((*(*a).N).kindU.S6.Sons->data[0]);
			result = makerangef_261373(a, -(LOC17), -(LOC18));
		}
		LA15: ;
	}
	break;
	case ((NU16) 112):
	{
		ttype188837* a;
		a = (*(*n).kindU.S6.Sons->data[1]).Typ;
		{
			NIM_BOOL LOC22;
			NF LOC25;
			NF LOC26;
			LOC22 = 0;
			LOC22 = isfloatrange_261178(a);
			if (!LOC22) goto LA23;
			LOC25 = 0;
			LOC25 = getfloat_194852((*(*a).N).kindU.S6.Sons->data[1]);
			LOC26 = 0;
			LOC26 = getfloat_194852((*(*a).N).kindU.S6.Sons->data[0]);
			result = makerangef_261373(a, (LOC25 > 0? (LOC25) : -(LOC25)), (LOC26 > 0? (LOC26) : -(LOC26)));
		}
		LA23: ;
	}
	break;
	case ((NU16) 103):
	case ((NU16) 104):
	{
		ttype188837* a;
		a = (*(*n).kindU.S6.Sons->data[1]).Typ;
		{
			NIM_BOOL LOC30;
			NI64 LOC33;
			NI64 LOC34;
			NI64 LOC35;
			NI64 LOC36;
			LOC30 = 0;
			LOC30 = isintrange_261207(a);
			if (!LOC30) goto LA31;
			LOC33 = 0;
			LOC33 = getint_194832((*(*a).N).kindU.S6.Sons->data[1]);
			LOC34 = 0;
			LOC34 = HEX7CabsHEX7C_260035(LOC33);
			LOC35 = 0;
			LOC35 = getint_194832((*(*a).N).kindU.S6.Sons->data[0]);
			LOC36 = 0;
			LOC36 = HEX7CabsHEX7C_260035(LOC35);
			result = makerange_261345(a, LOC34, LOC36);
		}
		LA31: ;
	}
	break;
	case ((NU16) 19):
	{
		ttype188837* a;
		ttype188837* b;
		a = (*(*n).kindU.S6.Sons->data[1]).Typ;
		b = (*(*n).kindU.S6.Sons->data[2]).Typ;
		{
			NIM_BOOL LOC40;
			NI64 LOC44;
			NI64 LOC45;
			NI64 LOC46;
			NI64 LOC47;
			NI64 LOC48;
			NI64 LOC49;
			LOC40 = 0;
			LOC40 = isintrange_261207(a);
			if (!(LOC40)) goto LA41;
			LOC40 = isintlit_223316(b);
			LA41: ;
			if (!LOC40) goto LA42;
			LOC44 = 0;
			LOC44 = pickminint_261249((*n).kindU.S6.Sons->data[1]);
			LOC45 = 0;
			LOC45 = pickminint_261249((*n).kindU.S6.Sons->data[2]);
			LOC46 = 0;
			LOC46 = HEX7CHEX2BHEX7C_260016(LOC44, LOC45);
			LOC47 = 0;
			LOC47 = pickmaxint_261297((*n).kindU.S6.Sons->data[1]);
			LOC48 = 0;
			LOC48 = pickmaxint_261297((*n).kindU.S6.Sons->data[2]);
			LOC49 = 0;
			LOC49 = HEX7CHEX2BHEX7C_260016(LOC47, LOC48);
			result = makerange_261345(a, LOC46, LOC49);
		}
		LA42: ;
	}
	break;
	case ((NU16) 20):
	{
		ttype188837* a;
		ttype188837* b;
		a = (*(*n).kindU.S6.Sons->data[1]).Typ;
		b = (*(*n).kindU.S6.Sons->data[2]).Typ;
		{
			NIM_BOOL LOC53;
			NI64 LOC57;
			NI64 LOC58;
			NI64 LOC59;
			NI64 LOC60;
			NI64 LOC61;
			NI64 LOC62;
			LOC53 = 0;
			LOC53 = isintrange_261207(a);
			if (!(LOC53)) goto LA54;
			LOC53 = isintlit_223316(b);
			LA54: ;
			if (!LOC53) goto LA55;
			LOC57 = 0;
			LOC57 = pickminint_261249((*n).kindU.S6.Sons->data[1]);
			LOC58 = 0;
			LOC58 = pickminint_261249((*n).kindU.S6.Sons->data[2]);
			LOC59 = 0;
			LOC59 = HEX7CHEX2DHEX7C_260027(LOC57, LOC58);
			LOC60 = 0;
			LOC60 = pickmaxint_261297((*n).kindU.S6.Sons->data[1]);
			LOC61 = 0;
			LOC61 = pickmaxint_261297((*n).kindU.S6.Sons->data[2]);
			LOC62 = 0;
			LOC62 = HEX7CHEX2DHEX7C_260027(LOC60, LOC61);
			result = makerange_261345(a, LOC59, LOC62);
		}
		LA55: ;
	}
	break;
	case ((NU16) 37):
	case ((NU16) 42):
	case ((NU16) 67):
	{
		tnode188803* a_261730;
		tnode188803* b_261732;
		a_261730 = (*n).kindU.S6.Sons->data[1];
		b_261732 = (*n).kindU.S6.Sons->data[2];
		{
			NIM_BOOL LOC66;
			ttype188837* LOC70;
			NI64 LOC71;
			NI64 LOC72;
			NI64 LOC73;
			NI64 LOC74;
			NI64 LOC75;
			NI64 LOC76;
			LOC66 = 0;
			LOC66 = isintrangeorlit_261243((*a_261730).Typ);
			if (!(LOC66)) goto LA67;
			LOC66 = isintrangeorlit_261243((*b_261732).Typ);
			LA67: ;
			if (!LOC66) goto LA68;
			LOC70 = 0;
			LOC70 = pickintrange_261236((*a_261730).Typ, (*b_261732).Typ);
			LOC71 = 0;
			LOC71 = pickminint_261249(a_261730);
			LOC72 = 0;
			LOC72 = pickminint_261249(b_261732);
			LOC73 = 0;
			LOC73 = HEX7CHEX2BHEX7C_260016(LOC71, LOC72);
			LOC74 = 0;
			LOC74 = pickmaxint_261297(a_261730);
			LOC75 = 0;
			LOC75 = pickmaxint_261297(b_261732);
			LOC76 = 0;
			LOC76 = HEX7CHEX2BHEX7C_260016(LOC74, LOC75);
			result = makerange_261345(LOC70, LOC73, LOC76);
		}
		LA68: ;
	}
	break;
	case ((NU16) 39):
	case ((NU16) 44):
	case ((NU16) 69):
	{
		tnode188803* a_261762;
		tnode188803* b_261764;
		a_261762 = (*n).kindU.S6.Sons->data[1];
		b_261764 = (*n).kindU.S6.Sons->data[2];
		{
			NIM_BOOL LOC80;
			ttype188837* LOC84;
			NI64 LOC85;
			NI64 LOC86;
			NI64 LOC87;
			NI64 LOC88;
			NI64 LOC89;
			NI64 LOC90;
			LOC80 = 0;
			LOC80 = isintrangeorlit_261243((*a_261762).Typ);
			if (!(LOC80)) goto LA81;
			LOC80 = isintrangeorlit_261243((*b_261764).Typ);
			LA81: ;
			if (!LOC80) goto LA82;
			LOC84 = 0;
			LOC84 = pickintrange_261236((*a_261762).Typ, (*b_261764).Typ);
			LOC85 = 0;
			LOC85 = pickminint_261249(a_261762);
			LOC86 = 0;
			LOC86 = pickminint_261249(b_261764);
			LOC87 = 0;
			LOC87 = HEX7CHEX2AHEX7C_260055(LOC85, LOC86);
			LOC88 = 0;
			LOC88 = pickmaxint_261297(a_261762);
			LOC89 = 0;
			LOC89 = pickmaxint_261297(b_261764);
			LOC90 = 0;
			LOC90 = HEX7CHEX2AHEX7C_260055(LOC88, LOC89);
			result = makerange_261345(LOC84, LOC87, LOC90);
		}
		LA82: ;
	}
	break;
	case ((NU16) 38):
	case ((NU16) 43):
	case ((NU16) 68):
	{
		tnode188803* a_261794;
		tnode188803* b_261796;
		a_261794 = (*n).kindU.S6.Sons->data[1];
		b_261796 = (*n).kindU.S6.Sons->data[2];
		{
			NIM_BOOL LOC94;
			NI64 LOC98;
			NI64 LOC99;
			NI64 LOC100;
			NI64 LOC101;
			NI64 LOC102;
			NI64 LOC103;
			LOC94 = 0;
			LOC94 = isintrange_261207((*a_261794).Typ);
			if (!(LOC94)) goto LA95;
			LOC94 = ((*b_261796).Kind >= ((NU8) 6) && (*b_261796).Kind <= ((NU8) 15));
			LA95: ;
			if (!LOC94) goto LA96;
			LOC98 = 0;
			LOC98 = pickminint_261249(a_261794);
			LOC99 = 0;
			LOC99 = pickminint_261249(b_261796);
			LOC100 = 0;
			LOC100 = HEX7CHEX2DHEX7C_260027(LOC98, LOC99);
			LOC101 = 0;
			LOC101 = pickmaxint_261297(a_261794);
			LOC102 = 0;
			LOC102 = pickmaxint_261297(b_261796);
			LOC103 = 0;
			LOC103 = HEX7CHEX2DHEX7C_260027(LOC101, LOC102);
			result = makerange_261345((*a_261794).Typ, LOC100, LOC103);
		}
		LA96: ;
	}
	break;
	case ((NU16) 53):
	case ((NU16) 60):
	{
		tnode188803* a;
		tnode188803* b;
		a = (*n).kindU.S6.Sons->data[1];
		b = (*n).kindU.S6.Sons->data[2];
		{
			tnode188803* LOC109;
			if (!!(((*b).Kind >= ((NU8) 6) && (*b).Kind <= ((NU8) 15)))) goto LA107;
			LOC109 = 0;
			LOC109 = a;
			a = b;
			b = LOC109;
		}
		LA107: ;
		{
			NI64 x;
			if (!((*b).Kind >= ((NU8) 6) && (*b).Kind <= ((NU8) 15))) goto LA112;
			x = HEX7CHEX2BHEX7C_260016((*b).kindU.S1.Intval, 1);
			{
				NIM_BOOL LOC116;
				LOC116 = 0;
				LOC116 = ((NI64)(x & -(x)) == x);
				if (!(LOC116)) goto LA117;
				LOC116 = (0 <= x);
				LA117: ;
				if (!LOC116) goto LA118;
				result = makerange_261345((*a).Typ, 0, (*b).kindU.S1.Intval);
			}
			LA118: ;
		}
		LA112: ;
	}
	break;
	case ((NU16) 71):
	{
		tnode188803* a;
		tnode188803* b;
		a = (*n).kindU.S6.Sons->data[1];
		b = (*n).kindU.S6.Sons->data[2];
		{
			if (!((*b).Kind >= ((NU8) 6) && (*b).Kind <= ((NU8) 15))) goto LA123;
			{
				if (!(0 <= (*b).kindU.S1.Intval)) goto LA127;
				result = makerange_261345((*a).Typ, 0, (NI64)((*b).kindU.S1.Intval - 1));
			}
			goto LA125;
			LA127: ;
			{
				result = makerange_261345((*a).Typ, (NI64)((*b).kindU.S1.Intval + 1), 0);
			}
			LA125: ;
		}
		LA123: ;
	}
	break;
	case ((NU16) 41):
	case ((NU16) 46):
	{
		tnode188803* a;
		tnode188803* b;
		a = (*n).kindU.S6.Sons->data[1];
		b = (*n).kindU.S6.Sons->data[2];
		{
			if (!((*b).Kind >= ((NU8) 6) && (*b).Kind <= ((NU8) 15))) goto LA133;
			{
				if (!(0 <= (*b).kindU.S1.Intval)) goto LA137;
				result = makerange_261345((*a).Typ, -((NI64)((*b).kindU.S1.Intval - 1)), (NI64)((*b).kindU.S1.Intval - 1));
			}
			goto LA135;
			LA137: ;
			{
				result = makerange_261345((*a).Typ, (NI64)((*b).kindU.S1.Intval + 1), -((NI64)((*b).kindU.S1.Intval + 1)));
			}
			LA135: ;
		}
		LA133: ;
	}
	break;
	case ((NU16) 40):
	case ((NU16) 45):
	case ((NU16) 70):
	{
		tnode188803* a_262142;
		tnode188803* b_262144;
		a_262142 = (*n).kindU.S6.Sons->data[1];
		b_262144 = (*n).kindU.S6.Sons->data[2];
		{
			NIM_BOOL LOC143;
			NI64 LOC147;
			NI64 LOC148;
			NI64 LOC149;
			NI64 LOC150;
			NI64 LOC151;
			NI64 LOC152;
			LOC143 = 0;
			LOC143 = isintrange_261207((*a_262142).Typ);
			if (!(LOC143)) goto LA144;
			LOC143 = ((*b_262144).Kind >= ((NU8) 6) && (*b_262144).Kind <= ((NU8) 15));
			LA144: ;
			if (!LOC143) goto LA145;
			LOC147 = 0;
			LOC147 = pickminint_261249(a_262142);
			LOC148 = 0;
			LOC148 = pickminint_261249(b_262144);
			LOC149 = 0;
			LOC149 = HEX7CdivHEX7C_260041(LOC147, LOC148);
			LOC150 = 0;
			LOC150 = pickmaxint_261297(a_262142);
			LOC151 = 0;
			LOC151 = pickmaxint_261297(b_262144);
			LOC152 = 0;
			LOC152 = HEX7CdivHEX7C_260041(LOC150, LOC151);
			result = makerange_261345((*a_262142).Typ, LOC149, LOC152);
		}
		LA145: ;
	}
	break;
	case ((NU16) 56):
	case ((NU16) 63):
	{
		tnode188803* a_262188;
		tnode188803* b_262190;
		a_262188 = (*n).kindU.S6.Sons->data[1];
		b_262190 = (*n).kindU.S6.Sons->data[2];
		{
			NIM_BOOL LOC156;
			ttype188837* LOC160;
			NI64 LOC161;
			NI64 LOC162;
			NI64 LOC163;
			NI64 LOC164;
			LOC156 = 0;
			LOC156 = isintrangeorlit_261243((*a_262188).Typ);
			if (!(LOC156)) goto LA157;
			LOC156 = isintrangeorlit_261243((*b_262190).Typ);
			LA157: ;
			if (!LOC156) goto LA158;
			LOC160 = 0;
			LOC160 = pickintrange_261236((*a_262188).Typ, (*b_262190).Typ);
			LOC161 = 0;
			LOC161 = pickminint_261249(a_262188);
			LOC162 = 0;
			LOC162 = pickminint_261249(b_262190);
			LOC163 = 0;
			LOC163 = pickmaxint_261297(a_262188);
			LOC164 = 0;
			LOC164 = pickmaxint_261297(b_262190);
			result = makerange_261345(LOC160, ((LOC161 <= LOC162) ? LOC161 : LOC162), ((LOC163 <= LOC164) ? LOC163 : LOC164));
		}
		LA158: ;
	}
	break;
	case ((NU16) 57):
	case ((NU16) 64):
	{
		tnode188803* a_262226;
		tnode188803* b_262228;
		a_262226 = (*n).kindU.S6.Sons->data[1];
		b_262228 = (*n).kindU.S6.Sons->data[2];
		{
			NIM_BOOL LOC168;
			ttype188837* LOC172;
			NI64 LOC173;
			NI64 LOC174;
			NI64 LOC175;
			NI64 LOC176;
			LOC168 = 0;
			LOC168 = isintrangeorlit_261243((*a_262226).Typ);
			if (!(LOC168)) goto LA169;
			LOC168 = isintrangeorlit_261243((*b_262228).Typ);
			LA169: ;
			if (!LOC168) goto LA170;
			LOC172 = 0;
			LOC172 = pickintrange_261236((*a_262226).Typ, (*b_262228).Typ);
			LOC173 = 0;
			LOC173 = pickminint_261249(a_262226);
			LOC174 = 0;
			LOC174 = pickminint_261249(b_262228);
			LOC175 = 0;
			LOC175 = pickmaxint_261297(a_262226);
			LOC176 = 0;
			LOC176 = pickmaxint_261297(b_262228);
			result = makerange_261345(LOC172, ((LOC173 >= LOC174) ? LOC173 : LOC174), ((LOC175 >= LOC176) ? LOC175 : LOC176));
		}
		LA170: ;
	}
	break;
	default:
	{
	}
	break;
	}
	return result;
}
N_NOINLINE(void, semfoldInit)(void) {
}

N_NOINLINE(void, semfoldDatInit)(void) {
}

