text: /* Generated by Nim Compiler v0.15.0 */
  /*   (c) 2016 Andreas Rumpf */
  /* The generated code is subject to the original license. */
  #define NIM_INTBITS 64
  
  #include "nimbase.h"
  #include <setjmp.h>
  #include <string.h>
  typedef struct Tnode292802 Tnode292802;
  typedef struct Ttype292840 Ttype292840;
  typedef struct Tlineinfo191336 Tlineinfo191336;
  typedef struct NimStringDesc NimStringDesc;
  typedef struct TGenericSeq TGenericSeq;
  typedef struct Tsym292834 Tsym292834;
  typedef struct Tident199010 Tident199010;
  typedef struct Tnodeseq292796 Tnodeseq292796;
  typedef struct Tidobj199004 Tidobj199004;
  typedef struct TNimObject TNimObject;
  typedef struct TNimType TNimType;
  typedef struct TNimNode TNimNode;
  typedef struct Ttypeseq292836 Ttypeseq292836;
  typedef struct TY292929 TY292929;
  typedef struct Tstrtable292806 Tstrtable292806;
  typedef struct Tsymseq292804 Tsymseq292804;
  typedef struct Tloc292816 Tloc292816;
  typedef struct Ropeobj178006 Ropeobj178006;
  typedef struct Tlib292820 Tlib292820;
  typedef struct Cell47304 Cell47304;
  typedef struct Cellseq47320 Cellseq47320;
  typedef struct Gcheap49818 Gcheap49818;
  typedef struct Gcstack49816 Gcstack49816;
  typedef struct Memregion29486 Memregion29486;
  typedef struct Smallchunk29440 Smallchunk29440;
  typedef struct Llchunk29480 Llchunk29480;
  typedef struct Bigchunk29442 Bigchunk29442;
  typedef struct Intset29414 Intset29414;
  typedef struct Trunk29410 Trunk29410;
  typedef struct Avlnode29484 Avlnode29484;
  typedef struct Gcstat49814 Gcstat49814;
  typedef struct Cellset47316 Cellset47316;
  typedef struct Pagedesc47312 Pagedesc47312;
  typedef struct TY292960 TY292960;
  typedef struct Tinfocpu176476 Tinfocpu176476;
  typedef struct Tinfoos176035 Tinfoos176035;
  typedef struct Exception Exception;
  typedef struct TSafePoint TSafePoint;
  typedef struct TY203018 TY203018;
  typedef struct Tinstantiation292824 Tinstantiation292824;
  typedef struct Tlistentry147007 Tlistentry147007;
  typedef struct Basechunk29438 Basechunk29438;
  typedef struct Freecell29430 Freecell29430;
  typedef struct TY292961 TY292961;
  struct  Tlineinfo191336  {
  NI16 line;
  NI16 col;
  NI32 fileindex;
  };
  typedef NU16 Tnodeflag292427Set;
  typedef NU8 Tnodekind292020;
  struct  TGenericSeq  {
  NI len;
  NI reserved;
  };
  struct  NimStringDesc  {
    TGenericSeq Sup;
  NIM_CHAR data[SEQ_DECL_SIZE];
  };
  struct  Tnode292802  {
  Ttype292840* typ;
  Tlineinfo191336 info;
  Tnodeflag292427Set flags;
  Tnodekind292020 kind;
  union{
  struct {NI64 intval;
  } S1;
  struct {NF floatval;
  } S2;
  struct {NimStringDesc* strval;
  } S3;
  struct {Tsym292834* sym;
  } S4;
  struct {Tident199010* ident;
  } S5;
  struct {Tnodeseq292796* sons;
  } S6;
  } kindU;
  NimStringDesc* comment;
  };
  typedef NU8 Ttypekind292244;
  typedef NU8 Tnimkind3403;
  typedef NU8 Tnimtypeflag3409Set;
  typedef N_NIMCALL_PTR(void, TY3489) (void* p0, NI op0);
  typedef N_NIMCALL_PTR(void*, TY3494) (void* p0);
  struct  TNimType  {
  NI size;
  Tnimkind3403 kind;
  Tnimtypeflag3409Set flags;
  TNimType* base;
  TNimNode* node;
  void* finalizer;
  TY3489 marker;
  TY3494 deepcopy;
  };
  struct  TNimObject  {
  TNimType* m_type;
  };
  struct  Tidobj199004  {
    TNimObject Sup;
  NI id;
  };
  typedef NU8 Tsymkind292435;
  struct  Tstrtable292806  {
  NI counter;
  Tsymseq292804* data;
  };
  typedef NU16 Tmagic292524;
  typedef NU32 Tsymflag292184Set;
  typedef NU32 Toption169009Set;
  typedef NU8 Tlockind292808;
  typedef NU8 Tstorageloc292812;
  typedef NU16 Tlocflag292810Set;
  struct  Tloc292816  {
  Tlockind292808 k;
  Tstorageloc292812 s;
  Tlocflag292810Set flags;
  Ttype292840* t;
  Ropeobj178006* r;
  };
  struct  Tsym292834  {
    Tidobj199004 Sup;
  Tsymkind292435 kind;
  union{
  struct {Ttypeseq292836* typeinstcache;
  } S1;
  struct {TY292929* procinstcache;
  Tsym292834* gcunsafetyreason;
  } S2;
  struct {TY292929* usedgenerics;
  Tstrtable292806 tab;
  } S3;
  struct {Tsym292834* guard;
  NI bitsize;
  } S4;
  } kindU;
  Tmagic292524 magic;
  Ttype292840* typ;
  Tident199010* name;
  Tlineinfo191336 info;
  Tsym292834* owner;
  Tsymflag292184Set flags;
  Tnode292802* ast;
  Toption169009Set options;
  NI position;
  NI offset;
  Tloc292816 loc;
  Tlib292820* annex;
  Tnode292802* constraint;
  };
  struct  Cell47304  {
  NI refcount;
  TNimType* typ;
  };
  struct  Cellseq47320  {
  NI len;
  NI cap;
  Cell47304** d;
  };
  typedef Smallchunk29440* TY29501[512];
  typedef Trunk29410* Trunkbuckets29412[256];
  struct  Intset29414  {
  Trunkbuckets29412 data;
  };
  struct  Memregion29486  {
  NI minlargeobj;
  NI maxlargeobj;
  TY29501 freesmallchunks;
  Llchunk29480* llmem;
  NI currmem;
  NI maxmem;
  NI freemem;
  NI lastsize;
  Bigchunk29442* freechunkslist;
  Intset29414 chunkstarts;
  Avlnode29484* root;
  Avlnode29484* deleted;
  Avlnode29484* last;
  Avlnode29484* freeavlnodes;
  NIM_BOOL locked;
  };
  struct  Gcstat49814  {
  NI stackscans;
  NI cyclecollections;
  NI maxthreshold;
  NI maxstacksize;
  NI maxstackcells;
  NI cycletablesize;
  NI64 maxpause;
  };
  struct  Cellset47316  {
  NI counter;
  NI max;
  Pagedesc47312* head;
  Pagedesc47312** data;
  };
  struct  Gcheap49818  {
  Gcstack49816* stack;
  void* stackbottom;
  NI cyclethreshold;
  Cellseq47320 zct;
  Cellseq47320 decstack;
  Cellseq47320 tempstack;
  NI recgclock;
  Memregion29486 region;
  Gcstat49814 stat;
  Cellset47316 marked;
  Cellseq47320 additionalroots;
  };
  typedef NU64 Ttypekind292244Set;
  typedef NU8 Tcallingconvention292002;
  typedef NU32 Ttypeflag292431Set;
  struct  Ttype292840  {
    Tidobj199004 Sup;
  Ttypekind292244 kind;
  Tcallingconvention292002 callconv;
  Ttypeflag292431Set flags;
  Ttypeseq292836* sons;
  Tnode292802* n;
  Tsym292834* owner;
  Tsym292834* sym;
  Tsym292834* destructor;
  Tsym292834* deepcopy;
  Tsym292834* assignment;
  TY292960* methods;
  NI64 size;
  NI16 align;
  NI16 locklevel;
  Tloc292816 loc;
  };
  typedef NU8 Tsymflag292184;
  typedef NU8 Tendian176474;
  struct Tinfocpu176476 {
  NimStringDesc* Field0;
  NI Field1;
  Tendian176474 Field2;
  NI Field3;
  NI Field4;
  };
  typedef Tinfocpu176476 TY176510[19];
  typedef NU8 Tsystemcpu176452;
  typedef NU8 Tinfoosprop176031Set;
  struct Tinfoos176035 {
  NimStringDesc* Field0;
  NimStringDesc* Field1;
  NimStringDesc* Field2;
  NimStringDesc* Field3;
  NimStringDesc* Field4;
  NimStringDesc* Field5;
  NimStringDesc* Field6;
  NimStringDesc* Field7;
  NimStringDesc* Field8;
  NimStringDesc* Field9;
  NimStringDesc* Field10;
  NimStringDesc* Field11;
  Tinfoosprop176031Set Field12;
  };
  typedef Tinfoos176035 TY176082[24];
  typedef NU8 Tsystemos176004;
  typedef NU64 Tglobaloption169013Set;
  typedef NU8 Tglobaloption169013;
  struct  Exception  {
    TNimObject Sup;
  Exception* parent;
  NCSTRING name;
  NimStringDesc* message;
  NimStringDesc* trace;
  };
  typedef struct {
  N_NIMCALL_PTR(NIM_BOOL, ClPrc) (Exception* e0, void* ClEnv);
  void* ClEnv;
  } TY17211;
  struct  TSafePoint  {
  TSafePoint* prev;
  NI status;
  jmp_buf context;
  NIM_BOOL hasRaiseAction;
  TY17211 raiseAction;
  };
  typedef NU16 Tmsgkind191002;
  struct  Tident199010  {
    Tidobj199004 Sup;
  NimStringDesc* s;
  Tident199010* next;
  NI h;
  };
  typedef NU8 Trenderflag311004Set;
  struct TY203018 {
  NimStringDesc* Field0;
  NI Field1;
  };
  typedef NU8 Ttypeflag292431;
  typedef NU8 Ttypecmpflag324429Set;
  typedef NU8 Tnimnodekind3405;
  struct  TNimNode  {
  Tnimnodekind3405 kind;
  NI offset;
  TNimType* typ;
  NCSTRING name;
  NI len;
  TNimNode** sons;
  };
  typedef NU8 Tnodeflag292427;
  typedef NimStringDesc* TY193153[2];
  typedef NU8 Tprefereddesc320011;
  struct  Ropeobj178006  {
    TNimObject Sup;
  Ropeobj178006* left;
  Ropeobj178006* right;
  NI length;
  NimStringDesc* data;
  };
  struct  Tlistentry147007  {
    TNimObject Sup;
  Tlistentry147007* prev;
  Tlistentry147007* next;
  };
  typedef NU8 Tlibkind292818;
  struct  Tlib292820  {
    Tlistentry147007 Sup;
  Tlibkind292818 kind;
  NIM_BOOL generated;
  NIM_BOOL isoverriden;
  Ropeobj178006* name;
  Tnode292802* path;
  };
  struct  Gcstack49816  {
  Gcstack49816* prev;
  Gcstack49816* next;
  void* starts;
  void* pos;
  NI maxstacksize;
  };
  struct  Basechunk29438  {
  NI prevsize;
  NI size;
  NIM_BOOL used;
  };
  struct  Smallchunk29440  {
    Basechunk29438 Sup;
  Smallchunk29440* next;
  Smallchunk29440* prev;
  Freecell29430* freelist;
  NI free;
  NI acc;
  NF data;
  };
  struct  Llchunk29480  {
  NI size;
  NI acc;
  Llchunk29480* next;
  };
  struct  Bigchunk29442  {
    Basechunk29438 Sup;
  Bigchunk29442* next;
  Bigchunk29442* prev;
  NI align;
  NF data;
  };
  typedef NI TY29419[8];
  struct  Trunk29410  {
  Trunk29410* next;
  NI key;
  TY29419 bits;
  };
  typedef Avlnode29484* TY29491[2];
  struct  Avlnode29484  {
  TY29491 link;
  NI key;
  NI upperbound;
  NI level;
  };
  struct  Pagedesc47312  {
  Pagedesc47312* next;
  NI key;
  TY29419 bits;
  };
  struct TY292961 {
  NI Field0;
  Tsym292834* Field1;
  };
  struct  Tinstantiation292824  {
  Tsym292834* sym;
  Ttypeseq292836* concretetypes;
  NI compilesid;
  };
  struct  Freecell29430  {
  Freecell29430* next;
  NI zerofield;
  };
  struct Tnodeseq292796 {
    TGenericSeq Sup;
    Tnode292802* data[SEQ_DECL_SIZE];
  };
  struct Ttypeseq292836 {
    TGenericSeq Sup;
    Ttype292840* data[SEQ_DECL_SIZE];
  };
  struct TY292929 {
    TGenericSeq Sup;
    Tinstantiation292824* data[SEQ_DECL_SIZE];
  };
  struct Tsymseq292804 {
    TGenericSeq Sup;
    Tsym292834* data[SEQ_DECL_SIZE];
  };
  struct TY292960 {
    TGenericSeq Sup;
    TY292961 data[SEQ_DECL_SIZE];
  };
  N_NIMCALL(NF, round_111661_1009420244)(NF x0, NI places0);
  N_NIMCALL(void, internalerror_196100_155036129)(Tlineinfo191336 info0, NimStringDesc* errmsg0);
  N_NIMCALL(Tnode292802*, newsymnode_294190_850551059)(Tsym292834* sym0, Tlineinfo191336 info0);
  N_NIMCALL(Ttype292840*, newtype_295107_850551059)(Ttypekind292244 kind0, Tsym292834* owner0);
  static N_INLINE(void, asgnRefNoCycle)(void** dest0, void* src0);
  static N_INLINE(Cell47304*, usrtocell_51440_1689653243)(void* usr0);
  static N_INLINE(void, rtladdzct_52601_1689653243)(Cell47304* c0);
  N_NOINLINE(void, addzct_51417_1689653243)(Cellseq47320* s0, Cell47304* c0);
  N_NIMCALL(void, addsonskipintlit_338680_3937434831)(Ttype292840* father0, Ttype292840* son0);
  N_NIMCALL(Ttype292840*, skiptypes_296099_850551059)(Ttype292840* t0, Ttypekind292244Set kinds0);
  N_NIMCALL(Tnode292802*, newintnode_293659_850551059)(Tnodekind292020 kind0, NI64 intval0);
  N_NIMCALL(Ttype292840*, getintlittype_338627_3937434831)(Tnode292802* literal0);
  N_NIMCALL(Tnode292802*, newstrnode_293677_850551059)(Tnodekind292020 kind0, NimStringDesc* strval0);
  N_NIMCALL(Tnode292802*, newintnodet_353016_2569619629)(NI64 intval0, Tnode292802* n0);
  N_NIMCALL(Tnode292802*, newstrnodet_353024_2569619629)(NimStringDesc* strval0, Tnode292802* n0);
  N_NIMCALL(NimStringDesc*, ntgetDateStr)(void);
  N_NIMCALL(NimStringDesc*, ntgetClockStr)(void);
  N_NIMCALL(NimStringDesc*, nsuToLowerAsciiStr)(NimStringDesc* s0);
  N_NIMCALL(Tnode292802*, getapptype_354015_2569619629)(Tnode292802* n0);
  N_NIMCALL(Tnode292802*, newfloatnodet_353020_2569619629)(NF floatval0, Tnode292802* n0);
  N_NIMCALL(Tnode292802*, newfloatnode_293671_850551059)(Tnodekind292020 kind0, NF floatval0);
  N_NIMCALL(Ttype292840*, getfloatlittype_338649_3937434831)(Tnode292802* literal0);
  N_NIMCALL(NIM_BOOL, isdefined_200141_1967573533)(Tident199010* symbol0);
  N_NIMCALL(NI, nsuParseInt)(NimStringDesc* s0);
  N_NIMCALL(NimStringDesc*, lookupsymbol_200149_1967573533)(Tident199010* symbol0);
  N_NIMCALL(Tnode292802*, copytree_296822_850551059)(Tnode292802* src0);
  N_NIMCALL(Tnode292802*, newsymnodetypedesc_354496_2569619629)(Tsym292834* s0, Tlineinfo191336 info0);
  N_NIMCALL(Tnode292802*, copynode_296528_850551059)(Tnode292802* src0);
  N_NIMCALL(Tnode292802*, getconstifexpr_353857_2569619629)(Tsym292834* c0, Tnode292802* n0);
  N_NIMCALL(NI, sonslen_295351_850551059)(Tnode292802* n0);
  static N_INLINE(NI, len_293081_850551059)(Tnode292802* n0);
  N_NIMCALL(Tnode292802*, getconstexpr_353001_2569619629)(Tsym292834* m0, Tnode292802* n0);
  N_NIMCALL(NI64, getordvalue_320129_3876443242)(Tnode292802* n0);
  static N_INLINE(void, pushSafePoint)(TSafePoint* s0);
  static N_INLINE(void, popSafePoint)(void);
  N_NIMCALL(NI64, computesize_320132_3876443242)(Ttype292840* typ0);
  N_NIMCALL(void, localerror_196080_155036129)(Tlineinfo191336 info0, Tmsgkind191002 msg0, NimStringDesc* arg0);
  N_NIMCALL(NI64, getsize_320135_3876443242)(Ttype292840* typ0);
  N_NIMCALL(NI64, firstord_320001_3876443242)(Ttype292840* t0);
  N_NIMCALL(NI64, lastord_320004_3876443242)(Ttype292840* t0);
  static N_INLINE(Tnode292802*, HEX5BHEX5D_293238_850551059)(Tnode292802* n0, NI i0);
  N_NIMCALL(Tnode292802*, getarrayconstr_354072_2569619629)(Tsym292834* m0, Tnode292802* n0);
  N_NIMCALL(Tnode292802*, magiccall_353962_2569619629)(Tsym292834* m0, Tnode292802* n0);
  N_NIMCALL(Tnode292802*, evalop_353005_2569619629)(Tmagic292524 m0, Tnode292802* n0, Tnode292802* a0, Tnode292802* b0, Tnode292802* c0);
  N_NIMCALL(NI64, getint_297220_850551059)(Tnode292802* a0);
  N_NIMCALL(NF, getfloat_297225_850551059)(Tnode292802* a0);
  N_NIMCALL(NI64, cardset_340050_452470228)(Tnode292802* s0);
  N_NIMCALL(NI64, lengthord_320007_3876443242)(Ttype292840* t0);
  N_NIMCALL(NI64, HEX7CHEX2DHEX7C_352009_3178507870)(NI64 a0, NI64 b0);
  N_NIMCALL(NI64, HEX7CHEX2BHEX7C_352004_3178507870)(NI64 a0, NI64 b0);
  N_NIMCALL(NI64, HEX7CHEX2AHEX7C_352028_3178507870)(NI64 a0, NI64 b0);
  N_NIMCALL(NI64, HEX7CdivHEX7C_352018_3178507870)(NI64 a0, NI64 b0);
  N_NIMCALL(NI64, HEX7CmodHEX7C_352023_3178507870)(NI64 a0, NI64 b0);
  N_NIMCALL(NimStringDesc*, getstr_297230_850551059)(Tnode292802* a0);
  static N_INLINE(NI, cmpStrings)(NimStringDesc* a0, NimStringDesc* b0);
  static N_INLINE(NIM_BOOL, eqStrings)(NimStringDesc* a0, NimStringDesc* b0);
  static N_INLINE(NIM_BOOL, equalmem_7495_1689653243)(void* a0, void* b0, NI size0);
  N_NIMCALL(NIM_BOOL, containssets_340042_452470228)(Tnode292802* a0, Tnode292802* b0);
  N_NIMCALL(NIM_BOOL, equalsets_340046_452470228)(Tnode292802* a0, Tnode292802* b0);
  N_NIMCALL(Tnode292802*, intersectsets_340034_452470228)(Tnode292802* a0, Tnode292802* b0);
  N_NIMCALL(Tnode292802*, unionsets_340026_452470228)(Tnode292802* a0, Tnode292802* b0);
  N_NIMCALL(Tnode292802*, diffsets_340030_452470228)(Tnode292802* a0, Tnode292802* b0);
  N_NIMCALL(Tnode292802*, symdiffsets_340038_452470228)(Tnode292802* a0, Tnode292802* b0);
  N_NIMCALL(NimStringDesc*, getstrorchar_297235_850551059)(Tnode292802* a0);
  static N_INLINE(void, appendString)(NimStringDesc* dest0, NimStringDesc* src0);
  static N_INLINE(void, copymem_7485_1689653243)(void* dest0, void* source0, NI size0);
  N_NIMCALL(NimStringDesc*, rawNewString)(NI space0);
  N_NIMCALL(NIM_BOOL, inset_340010_452470228)(Tnode292802* s0, Tnode292802* elem0);
  N_NIMCALL(NimStringDesc*, nimInt64ToStr)(NI64 x0);
  N_NIMCALL(NimStringDesc*, copyStr)(NimStringDesc* s0, NI start0);
  N_NIMCALL(NimStringDesc*, copyStr)(NimStringDesc* s0, NI first0);
  N_NIMCALL(NimStringDesc*, copyStrLast)(NimStringDesc* s0, NI start_79210_1689653243, NI last0);
  N_NIMCALL(NimStringDesc*, copyStrLast)(NimStringDesc* s0, NI first0, NI last0);
  N_NIMCALL(NimStringDesc*, nimFloatToStr)(NF f0);
  N_NIMCALL(NimStringDesc*, copyString)(NimStringDesc* src0);
  N_NIMCALL(NimStringDesc*, resizeString)(NimStringDesc* dest0, NI addlen0);
  N_NIMCALL(NimStringDesc*, ordinalvaltostring_353052_2569619629)(Tnode292802* a0);
  N_NIMCALL(NimStringDesc*, nimCharToStr)(NIM_CHAR x0);
  N_NIMCALL(NIM_BOOL, testcompileoption_280708_2004575671)(NimStringDesc* switch_280710_2004575671, Tlineinfo191336 info0);
  N_NIMCALL(NIM_BOOL, testcompileoptionarg_280523_2004575671)(NimStringDesc* switch_280525_2004575671, NimStringDesc* arg0, Tlineinfo191336 info0);
  N_NIMCALL(NIM_BOOL, exprstructuralequivalent_318311_2616423590)(Tnode292802* a0, Tnode292802* b0, NIM_BOOL strictsymequality0);
  N_NIMCALL(NimStringDesc*, rendertree_311044_382274130)(Tnode292802* n0, Trenderflag311004Set renderflags0);
  N_NIMCALL(Tnode292802*, foldconstrstr_354455_2569619629)(Tsym292834* m0, Tnode292802* n0);
  N_NIMCALL(Tnode292802*, newnodeit_294801_850551059)(Tnodekind292020 kind0, Tlineinfo191336 info0, Ttype292840* typ0);
  N_NIMCALL(NimStringDesc*, copyStringRC1)(NimStringDesc* src0);
  static N_INLINE(void, nimGCunrefNoCycle)(void* p0);
  N_NIMCALL(Tnode292802*, evalis_353470_2569619629)(Tnode292802* n0, Tnode292802* a0);
  N_NIMCALL(void, internalerror_196113_155036129)(NimStringDesc* errmsg0);
  N_NIMCALL(NimStringDesc*, HEX24_196185_1689653243)(TY203018 x0);
  N_NIMCALL(NimStringDesc*, nsuNormalize)(NimStringDesc* s0);
  N_NIMCALL(NIM_BOOL, sametype_324633_3876443242)(Ttype292840* a0, Ttype292840* b0, Ttypecmpflag324429Set flags0);
  N_NIMCALL(NIM_BOOL, isObj)(TNimType* obj0, TNimType* subclass0);
  static N_INLINE(Exception*, getCurrentException)(void);
  static N_INLINE(void, popCurrentException)(void);
  static N_INLINE(void, asgnRef)(void** dest0, void* src0);
  static N_INLINE(void, incref_53419_1689653243)(Cell47304* c0);
  static N_INLINE(void, decref_53001_1689653243)(Cell47304* c0);
  N_NIMCALL(void, reraiseException)(void);
  N_NIMCALL(void, addson_294807_850551059)(Tnode292802* father0, Tnode292802* son0);
  N_NIMCALL(NIM_BOOL, levalueconv_353012_2569619629)(Tnode292802* a0, Tnode292802* b0);
  N_NIMCALL(NimStringDesc*, nsuFormatOpenArray)(NimStringDesc* formatstr0, NimStringDesc** a0, NI a0Len0);
  N_NIMCALL(NimStringDesc*, msgkindtostring_192723_155036129)(Tmsgkind191002 kind0);
  N_NIMCALL(NimStringDesc*, typetostring_320017_3876443242)(Ttype292840* typ0, Tprefereddesc320011 prefer0);
  N_NIMCALL(Tnode292802*, foldconv_354053_2569619629)(Tnode292802* n0, Tnode292802* a0, NIM_BOOL check0);
  N_NIMCALL(void, rangecheck_354049_2569619629)(Tnode292802* n0, NI64 value0);
  N_NIMCALL(Tnode292802*, foldarrayaccess_354098_2569619629)(Tsym292834* m0, Tnode292802* n0);
  N_NIMCALL(Tnode292802*, foldfieldaccess_354167_2569619629)(Tsym292834* m0, Tnode292802* n0);
  static N_INLINE(NIM_BOOL, isintrange_353136_2569619629)(Ttype292840* t0);
  N_NIMCALL(Ttype292840*, makerange_353203_2569619629)(Ttype292840* typ0, NI64 first0, NI64 last0);
  N_NIMCALL(Tnode292802*, newnode_293401_850551059)(Tnodekind292020 kind0);
  static N_INLINE(NIM_BOOL, isfloatrange_353112_2569619629)(Ttype292840* t0);
  N_NIMCALL(Ttype292840*, makerangef_353242_2569619629)(Ttype292840* typ0, NF first0, NF last0);
  N_NIMCALL(NI64, HEX7CabsHEX7C_352014_3178507870)(NI64 a0);
  static N_INLINE(NIM_BOOL, isintlit_320233_3876443242)(Ttype292840* t0);
  N_NIMCALL(NI64, pickminint_353169_2569619629)(Tnode292802* n0);
  N_NIMCALL(NI64, pickmaxint_353186_2569619629)(Tnode292802* n0);
  N_NIMCALL(NIM_BOOL, isintrangeorlit_353165_2569619629)(Ttype292840* t0);
  N_NIMCALL(Ttype292840*, pickintrange_353160_2569619629)(Ttype292840* a0, Ttype292840* b0);
  STRING_LITERAL(T2569619629_2, "leValueConv", 11);
  extern NIM_CONST TY176510 Cpu_176496_4151366050;
  extern NIM_CONST TY176082 Os_176068_4151366050;
  STRING_LITERAL(T2569619629_3, "lib", 3);
  STRING_LITERAL(T2569619629_4, "staticlib", 9);
  STRING_LITERAL(T2569619629_5, "gui", 3);
  STRING_LITERAL(T2569619629_6, "console", 7);
  STRING_LITERAL(T2569619629_7, "getConstIfExpr()", 16);
  STRING_LITERAL(T2569619629_9, "sizeof", 6);
  STRING_LITERAL(T2569619629_10, "constant folding for shl", 24);
  STRING_LITERAL(T2569619629_11, "constant folding for shr", 24);
  STRING_LITERAL(T2569619629_12, "false", 5);
  STRING_LITERAL(T2569619629_13, "true", 4);
  STRING_LITERAL(T2569619629_14, "", 0);
  STRING_LITERAL(T2569619629_15, "ordinalValToString", 18);
  STRING_LITERAL(T2569619629_16, "no symbol for ordinal value: ", 29);
  STRING_LITERAL(T2569619629_18, "compiler/semfold.nim", 20);
  NIM_CONST TY203018 T2569619629_17 = {((NimStringDesc*) &T2569619629_18),
  ((NI) 252)}
  ;
  NIM_CONST TY203018 T2569619629_19 = {((NimStringDesc*) &T2569619629_18),
  ((NI) 253)}
  ;
  STRING_LITERAL(T2569619629_20, "closure", 7);
  STRING_LITERAL(T2569619629_21, "iterator", 8);
  STRING_LITERAL(T2569619629_22, "cannot convert ", 15);
  STRING_LITERAL(T2569619629_23, " to ", 4);
  STRING_LITERAL(T2569619629_24, "pickMinInt", 10);
  STRING_LITERAL(T2569619629_25, "pickMaxInt", 10);
  extern Gcheap49818 gch_49858_1689653243;
  extern Tsystemcpu176452 targetcpu_176627_4151366050;
  extern Tsystemos176004 targetos_176629_4151366050;
  extern Tglobaloption169013Set gglobaloptions_169130_2607990831;
  extern TSafePoint* exchandler_18837_1689653243;
  extern TNimType NTI3640; /* OverflowError */
  extern Exception* currexception_18839_1689653243;
  extern TNimType NTI3638; /* DivByZeroError */
  
  N_NIMCALL(NIM_BOOL, levalueconv_353012_2569619629)(Tnode292802* a0, Tnode292802* b0) {
  	NIM_BOOL result0;
  	result0 = (NIM_BOOL)0;
  	result0 = NIM_FALSE;
  	switch ((*a0).kind) {
  	case ((Tnodekind292020) 5) ... ((Tnodekind292020) 15):
  	{
  		switch ((*b0).kind) {
  		case ((Tnodekind292020) 5) ... ((Tnodekind292020) 15):
  		{
  			result0 = ((*a0).kindU.S1.intval <= (*b0).kindU.S1.intval);
  		}
  		break;
  		case ((Tnodekind292020) 16) ... ((Tnodekind292020) 19):
  		{
  			NF LOC4;
  			LOC4 = (NF)0;
  			LOC4 = round_111661_1009420244((*b0).kindU.S2.floatval, ((NI) 0));
  			result0 = ((*a0).kindU.S1.intval <= ((NI64) (((NI) (LOC4)))));
  		}
  		break;
  		default:
  		{
  			internalerror_196100_155036129((*a0).info, ((NimStringDesc*) &T2569619629_2));
  		}
  		break;
  		}
  	}
  	break;
  	case ((Tnodekind292020) 16) ... ((Tnodekind292020) 19):
  	{
  		switch ((*b0).kind) {
  		case ((Tnodekind292020) 16) ... ((Tnodekind292020) 19):
  		{
  			result0 = ((*a0).kindU.S2.floatval <= (*b0).kindU.S2.floatval);
  		}
  		break;
  		case ((Tnodekind292020) 5) ... ((Tnodekind292020) 15):
  		{
  			result0 = ((*a0).kindU.S2.floatval <= ((double) (((NI) ((*b0).kindU.S1.intval)))));
  		}
  		break;
  		default:
  		{
  			internalerror_196100_155036129((*a0).info, ((NimStringDesc*) &T2569619629_2));
  		}
  		break;
  		}
  	}
  	break;
  	default:
  	{
  		internalerror_196100_155036129((*a0).info, ((NimStringDesc*) &T2569619629_2));
  	}
  	break;
  	}
  	return result0;
  }
  
  static N_INLINE(Cell47304*, usrtocell_51440_1689653243)(void* usr0) {
  	Cell47304* result0;
  	result0 = (Cell47304*)0;
  	result0 = ((Cell47304*) ((NI)((NU64)(((NI) (usr0))) - (NU64)(((NI)sizeof(Cell47304))))));
  	return result0;
  }
  
  static N_INLINE(void, rtladdzct_52601_1689653243)(Cell47304* c0) {
  	addzct_51417_1689653243((&gch_49858_1689653243.zct), c0);
  }
  
  static N_INLINE(void, asgnRefNoCycle)(void** dest0, void* src0) {
  	{
  		Cell47304* c0;
  		if (!!((src0 == NIM_NIL))) goto LA3;
  		c0 = usrtocell_51440_1689653243(src0);
  		(*c0).refcount += ((NI) 8);
  	}
  	LA3: ;
  	{
  		Cell47304* c0;
  		if (!!(((*dest0) == NIM_NIL))) goto LA7;
  		c0 = usrtocell_51440_1689653243((*dest0));
  		{
  			(*c0).refcount -= ((NI) 8);
  			if (!((NU64)((*c0).refcount) < (NU64)(((NI) 8)))) goto LA11;
  			rtladdzct_52601_1689653243(c0);
  		}
  		LA11: ;
  	}
  	LA7: ;
  	(*dest0) = src0;
  }
  
  N_NIMCALL(Tnode292802*, newsymnodetypedesc_354496_2569619629)(Tsym292834* s0, Tlineinfo191336 info0) {
  	Tnode292802* result0;
  	result0 = (Tnode292802*)0;
  	result0 = newsymnode_294190_850551059(s0, info0);
  	asgnRefNoCycle((void**) (&(*result0).typ), newtype_295107_850551059(((Ttypekind292244) 8), (*s0).owner));
  	addsonskipintlit_338680_3937434831((*result0).typ, (*s0).typ);
  	return result0;
  }
  
  N_NIMCALL(Tnode292802*, newintnodet_353016_2569619629)(NI64 intval0, Tnode292802* n0) {
  	Tnode292802* result0;
  	Ttype292840* LOC1;
  	result0 = (Tnode292802*)0;
  	LOC1 = (Ttype292840*)0;
  	LOC1 = skiptypes_296099_850551059((*n0).typ, IL64(211106242013440));
  	switch ((*LOC1).kind) {
  	case ((Ttypekind292244) 31):
  	{
  		result0 = newintnode_293659_850551059(((Tnodekind292020) 6), intval0);
  		asgnRefNoCycle((void**) (&(*result0).typ), getintlittype_338627_3937434831(result0));
  	}
  	break;
  	case ((Ttypekind292244) 2):
  	{
  		result0 = newintnode_293659_850551059(((Tnodekind292020) 5), intval0);
  		asgnRefNoCycle((void**) (&(*result0).typ), (*n0).typ);
  	}
  	break;
  	default:
  	{
  		result0 = newintnode_293659_850551059(((Tnodekind292020) 6), intval0);
  		asgnRefNoCycle((void**) (&(*result0).typ), (*n0).typ);
  	}
  	break;
  	}
  	(*result0).info = (*n0).info;
  	return result0;
  }
  
  N_NIMCALL(Tnode292802*, newstrnodet_353024_2569619629)(NimStringDesc* strval0, Tnode292802* n0) {
  	Tnode292802* result0;
  	result0 = (Tnode292802*)0;
  	result0 = newstrnode_293677_850551059(((Tnodekind292020) 20), strval0);
  	asgnRefNoCycle((void**) (&(*result0).typ), (*n0).typ);
  	(*result0).info = (*n0).info;
  	return result0;
  }
  
  N_NIMCALL(Tnode292802*, getapptype_354015_2569619629)(Tnode292802* n0) {
  	Tnode292802* result0;
  	result0 = (Tnode292802*)0;
  	{
  		if (!((gglobaloptions_169130_2607990831 &((NU64)1<<((NU)(((Tglobaloption169013) 8))&63U)))!=0)) goto LA3;
  		result0 = newstrnodet_353024_2569619629(((NimStringDesc*) &T2569619629_3), n0);
  	}
  	goto LA1;
  	LA3: ;
  	{
  		if (!((gglobaloptions_169130_2607990831 &((NU64)1<<((NU)(((Tglobaloption169013) 9))&63U)))!=0)) goto LA6;
  		result0 = newstrnodet_353024_2569619629(((NimStringDesc*) &T2569619629_4), n0);
  	}
  	goto LA1;
  	LA6: ;
  	{
  		if (!((gglobaloptions_169130_2607990831 &((NU64)1<<((NU)(((Tglobaloption169013) 10))&63U)))!=0)) goto LA9;
  		result0 = newstrnodet_353024_2569619629(((NimStringDesc*) &T2569619629_5), n0);
  	}
  	goto LA1;
  	LA9: ;
  	{
  		result0 = newstrnodet_353024_2569619629(((NimStringDesc*) &T2569619629_6), n0);
  	}
  	LA1: ;
  	return result0;
  }
  
  N_NIMCALL(Tnode292802*, newfloatnodet_353020_2569619629)(NF floatval0, Tnode292802* n0) {
  	Tnode292802* result0;
  	result0 = (Tnode292802*)0;
  	result0 = newfloatnode_293671_850551059(((Tnodekind292020) 16), floatval0);
  	{
  		Ttype292840* LOC3;
  		LOC3 = (Ttype292840*)0;
  		LOC3 = skiptypes_296099_850551059((*n0).typ, IL64(211106242013440));
  		if (!((*LOC3).kind == ((Ttypekind292244) 36))) goto LA4;
  		asgnRefNoCycle((void**) (&(*result0).typ), getfloatlittype_338649_3937434831(result0));
  	}
  	goto LA1;
  	LA4: ;
  	{
  		asgnRefNoCycle((void**) (&(*result0).typ), (*n0).typ);
  	}
  	LA1: ;
  	(*result0).info = (*n0).info;
  	return result0;
  }
  
  static N_INLINE(NI, len_293081_850551059)(Tnode292802* n0) {
  	NI result0;
  	result0 = (NI)0;
  	{
  		if (!(*n0).kindU.S6.sons == 0) goto LA3;
  		result0 = ((NI) 0);
  	}
  	goto LA1;
  	LA3: ;
  	{
  		result0 = ((*n0).kindU.S6.sons ? (*n0).kindU.S6.sons->Sup.len : 0);
  	}
  	LA1: ;
  	return result0;
  }
  
  N_NIMCALL(Tnode292802*, getconstifexpr_353857_2569619629)(Tsym292834* c0, Tnode292802* n0) {
  	Tnode292802* result0;
  {	result0 = (Tnode292802*)0;
  	result0 = NIM_NIL;
  	{
  		NI i_353873_2569619629;
  		NI HEX3Atmp_353931_2569619629;
  		NI LOC2;
  		NI res_353934_2569619629;
  		i_353873_2569619629 = (NI)0;
  		HEX3Atmp_353931_2569619629 = (NI)0;
  		LOC2 = (NI)0;
  		LOC2 = sonslen_295351_850551059(n0);
  		HEX3Atmp_353931_2569619629 = (NI)(LOC2 - ((NI) 1));
  		res_353934_2569619629 = ((NI) 0);
  		{
  			while (1) {
  				Tnode292802* it0;
  				if (!(res_353934_2569619629 <= HEX3Atmp_353931_2569619629)) goto LA4;
  				i_353873_2569619629 = res_353934_2569619629;
  				it0 = (*n0).kindU.S6.sons->data[i_353873_2569619629];
  				{
  					NI LOC7;
  					Tnode292802* e0;
  					LOC7 = (NI)0;
  					LOC7 = len_293081_850551059(it0);
  					if (!(LOC7 == ((NI) 2))) goto LA8;
  					e0 = getconstexpr_353001_2569619629(c0, (*it0).kindU.S6.sons->data[((NI) 0)]);
  					{
  						if (!(e0 == NIM_NIL)) goto LA12;
  						result0 = NIM_NIL;
  						goto BeforeRet;
  					}
  					LA12: ;
  					{
  						NI64 LOC16;
  						LOC16 = (NI64)0;
  						LOC16 = getordvalue_320129_3876443242(e0);
  						if (!!((LOC16 == IL64(0)))) goto LA17;
  						{
  							if (!(result0 == NIM_NIL)) goto LA21;
  							result0 = getconstexpr_353001_2569619629(c0, (*it0).kindU.S6.sons->data[((NI) 1)]);
  							{
  								if (!(result0 == NIM_NIL)) goto LA25;
  								goto BeforeRet;
  							}
  							LA25: ;
  						}
  						LA21: ;
  					}
  					LA17: ;
  				}
  				goto LA5;
  				LA8: ;
  				{
  					NI LOC28;
  					LOC28 = (NI)0;
  					LOC28 = len_293081_850551059(it0);
  					if (!(LOC28 == ((NI) 1))) goto LA29;
  					{
  						if (!(result0 == NIM_NIL)) goto LA33;
  						result0 = getconstexpr_353001_2569619629(c0, (*it0).kindU.S6.sons->data[((NI) 0)]);
  					}
  					LA33: ;
  				}
  				goto LA5;
  				LA29: ;
  				{
  					internalerror_196100_155036129((*it0).info, ((NimStringDesc*) &T2569619629_7));
  				}
  				LA5: ;
  				res_353934_2569619629 += ((NI) 1);
  			} LA4: ;
  		}
  	}
  	}BeforeRet: ;
  	return result0;
  }
  
  static N_INLINE(void, pushSafePoint)(TSafePoint* s0) {
  	(*s0).hasRaiseAction = NIM_FALSE;
  	(*s0).prev = exchandler_18837_1689653243;
  	exchandler_18837_1689653243 = s0;
  }
  
  static N_INLINE(void, popSafePoint)(void) {
  	exchandler_18837_1689653243 = (*exchandler_18837_1689653243).prev;
  }
  
  static N_INLINE(Tnode292802*, HEX5BHEX5D_293238_850551059)(Tnode292802* n0, NI i0) {
  	Tnode292802* result0;
  	result0 = (Tnode292802*)0;
  	result0 = (*n0).kindU.S6.sons->data[i0];
  	return result0;
  }
  
  N_NIMCALL(Tnode292802*, getarrayconstr_354072_2569619629)(Tsym292834* m0, Tnode292802* n0) {
  	Tnode292802* result0;
  	result0 = (Tnode292802*)0;
  	{
  		if (!((*n0).kind == ((Tnodekind292020) 41))) goto LA3;
  		result0 = n0;
  	}
  	goto LA1;
  	LA3: ;
  	{
  		result0 = getconstexpr_353001_2569619629(m0, n0);
  		{
  			if (!(result0 == NIM_NIL)) goto LA8;
  			result0 = n0;
  		}
  		LA8: ;
  	}
  	LA1: ;
  	return result0;
  }
  
  static N_INLINE(NI, cmpStrings)(NimStringDesc* a0, NimStringDesc* b0) {
  	NI result0;
  	int LOC13;
  {	result0 = (NI)0;
  	{
  		if (!(a0 == b0)) goto LA3;
  		result0 = ((NI) 0);
  		goto BeforeRet;
  	}
  	LA3: ;
  	{
  		if (!(a0 == NIM_NIL)) goto LA7;
  		result0 = ((NI) -1);
  		goto BeforeRet;
  	}
  	LA7: ;
  	{
  		if (!(b0 == NIM_NIL)) goto LA11;
  		result0 = ((NI) 1);
  		goto BeforeRet;
  	}
  	LA11: ;
  	LOC13 = (int)0;
  	LOC13 = strcmp(((NCSTRING) ((*a0).data)), ((NCSTRING) ((*b0).data)));
  	result0 = ((NI) (LOC13));
  	goto BeforeRet;
  	}BeforeRet: ;
  	return result0;
  }
  
  static N_INLINE(NIM_BOOL, equalmem_7495_1689653243)(void* a0, void* b0, NI size0) {
  	NIM_BOOL result0;
  	int LOC1;
  	result0 = (NIM_BOOL)0;
  	LOC1 = (int)0;
  	LOC1 = memcmp(a0, b0, ((size_t) (size0)));
  	result0 = (LOC1 == ((NI32) 0));
  	return result0;
  }
  
  static N_INLINE(NIM_BOOL, eqStrings)(NimStringDesc* a0, NimStringDesc* b0) {
  	NIM_BOOL result0;
  	NIM_BOOL LOC11;
  {	result0 = (NIM_BOOL)0;
  	{
  		if (!(a0 == b0)) goto LA3;
  		result0 = NIM_TRUE;
  		goto BeforeRet;
  	}
  	LA3: ;
  	{
  		NIM_BOOL LOC7;
  		LOC7 = (NIM_BOOL)0;
  		LOC7 = (a0 == NIM_NIL);
  		if (LOC7) goto LA8;
  		LOC7 = (b0 == NIM_NIL);
  		LA8: ;
  		if (!LOC7) goto LA9;
  		result0 = NIM_FALSE;
  		goto BeforeRet;
  	}
  	LA9: ;
  	LOC11 = (NIM_BOOL)0;
  	LOC11 = ((*a0).Sup.len == (*b0).Sup.len);
  	if (!(LOC11)) goto LA12;
  	LOC11 = equalmem_7495_1689653243(((void*) ((*a0).data)), ((void*) ((*b0).data)), ((NI) ((*a0).Sup.len)));
  	LA12: ;
  	result0 = LOC11;
  	goto BeforeRet;
  	}BeforeRet: ;
  	return result0;
  }
  
  static N_INLINE(void, copymem_7485_1689653243)(void* dest0, void* source0, NI size0) {
  	void* LOC1;
  	LOC1 = (void*)0;
  	LOC1 = memcpy(dest0, source0, ((size_t) (size0)));
  }
  
  static N_INLINE(void, appendString)(NimStringDesc* dest0, NimStringDesc* src0) {
  	copymem_7485_1689653243(((void*) ((&(*dest0).data[((*dest0).Sup.len)- 0]))), ((void*) ((*src0).data)), ((NI) ((NI)((*src0).Sup.len + ((NI) 1)))));
  	(*dest0).Sup.len += (*src0).Sup.len;
  }
  
  N_NIMCALL(NimStringDesc*, ordinalvaltostring_353052_2569619629)(Tnode292802* a0) {
  	NimStringDesc* result0;
  	NI64 x0;
  	Ttype292840* t0;
  {	result0 = (NimStringDesc*)0;
  	x0 = getint_297220_850551059(a0);
  	t0 = skiptypes_296099_850551059((*a0).typ, IL64(211106233624832));
  	switch ((*t0).kind) {
  	case ((Ttypekind292244) 2):
  	{
  		result0 = nimCharToStr(((NIM_CHAR) ((NI)(((NI) (x0)) & ((NI) 255)))));
  	}
  	break;
  	case ((Ttypekind292244) 14):
  	{
  		Tnode292802* n0;
  		NimStringDesc* LOC20;
  		NimStringDesc* LOC21;
  		n0 = (*t0).n;
  		{
  			NI i_353072_2569619629;
  			NI HEX3Atmp_353105_2569619629;
  			NI LOC4;
  			NI res_353108_2569619629;
  			i_353072_2569619629 = (NI)0;
  			HEX3Atmp_353105_2569619629 = (NI)0;
  			LOC4 = (NI)0;
  			LOC4 = sonslen_295351_850551059(n0);
  			HEX3Atmp_353105_2569619629 = (NI)(LOC4 - ((NI) 1));
  			res_353108_2569619629 = ((NI) 0);
  			{
  				while (1) {
  					Tsym292834* field0;
  					if (!(res_353108_2569619629 <= HEX3Atmp_353105_2569619629)) goto LA6;
  					i_353072_2569619629 = res_353108_2569619629;
  					{
  						if (!!(((*(*n0).kindU.S6.sons->data[i_353072_2569619629]).kind == ((Tnodekind292020) 3)))) goto LA9;
  						internalerror_196100_155036129((*a0).info, ((NimStringDesc*) &T2569619629_15));
  					}
  					LA9: ;
  					field0 = (*(*n0).kindU.S6.sons->data[i_353072_2569619629]).kindU.S4.sym;
  					{
  						if (!(((NI64) ((*field0).position)) == x0)) goto LA13;
  						{
  							if (!((*field0).ast == NIM_NIL)) goto LA17;
  							result0 = copyString((*(*field0).name).s);
  							goto BeforeRet;
  						}
  						goto LA15;
  						LA17: ;
  						{
  							result0 = copyString((*(*field0).ast).kindU.S3.strval);
  							goto BeforeRet;
  						}
  						LA15: ;
  					}
  					LA13: ;
  					res_353108_2569619629 += ((NI) 1);
  				} LA6: ;
  			}
  		}
  		LOC20 = (NimStringDesc*)0;
  		LOC21 = (NimStringDesc*)0;
  		LOC21 = nimInt64ToStr(x0);
  		LOC20 = rawNewString(LOC21->Sup.len + 29);
  appendString(LOC20, ((NimStringDesc*) &T2569619629_16));
  appendString(LOC20, LOC21);
  		internalerror_196100_155036129((*a0).info, LOC20);
  	}
  	break;
  	default:
  	{
  		result0 = nimInt64ToStr(x0);
  	}
  	break;
  	}
  	}BeforeRet: ;
  	return result0;
  }
  
  N_NIMCALL(Tnode292802*, evalop_353005_2569619629)(Tmagic292524 m0, Tnode292802* n0, Tnode292802* a0, Tnode292802* b0, Tnode292802* c0) {
  	Tnode292802* result0;
  	result0 = (Tnode292802*)0;
  	result0 = NIM_NIL;
  	switch (m0) {
  	case ((Tmagic292524) 28):
  	{
  		NI64 LOC2;
  		LOC2 = (NI64)0;
  		LOC2 = getordvalue_320129_3876443242(a0);
  		result0 = newintnodet_353016_2569619629(LOC2, n0);
  	}
  	break;
  	case ((Tmagic292524) 42):
  	{
  		NI64 LOC4;
  		LOC4 = (NI64)0;
  		LOC4 = getint_297220_850551059(a0);
  		result0 = newintnodet_353016_2569619629(LOC4, n0);
  	}
  	break;
  	case ((Tmagic292524) 96):
  	case ((Tmagic292524) 97):
  	{
  		NI64 LOC6;
  		LOC6 = (NI64)0;
  		LOC6 = getint_297220_850551059(a0);
  		result0 = newintnodet_353016_2569619629(-(LOC6), n0);
  	}
  	break;
  	case ((Tmagic292524) 103):
  	{
  		NF LOC8;
  		LOC8 = (NF)0;
  		LOC8 = getfloat_297225_850551059(a0);
  		result0 = newfloatnodet_353020_2569619629(-(LOC8), n0);
  	}
  	break;
  	case ((Tmagic292524) 99):
  	{
  		NI64 LOC10;
  		LOC10 = (NI64)0;
  		LOC10 = getint_297220_850551059(a0);
  		result0 = newintnodet_353016_2569619629((NI64)(IL64(1) - LOC10), n0);
  	}
  	break;
  	case ((Tmagic292524) 41):
  	{
  		NI64 LOC12;
  		LOC12 = (NI64)0;
  		LOC12 = cardset_340050_452470228(a0);
  		result0 = newintnodet_353016_2569619629(LOC12, n0);
  	}
  	break;
  	case ((Tmagic292524) 101):
  	{
  		NI64 LOC14;
  		LOC14 = (NI64)0;
  		LOC14 = getint_297220_850551059(a0);
  		result0 = newintnodet_353016_2569619629((NI64)((NU64) ~(LOC14)), n0);
  	}
  	break;
  	case ((Tmagic292524) 35):
  	{
  		NI64 LOC16;
  		LOC16 = (NI64)0;
  		LOC16 = lengthord_320007_3876443242((*a0).typ);
  		result0 = newintnodet_353016_2569619629(LOC16, n0);
  	}
  	break;
  	case ((Tmagic292524) 36):
  	case ((Tmagic292524) 33):
  	case ((Tmagic292524) 38):
  	case ((Tmagic292524) 34):
  	case ((Tmagic292524) 37):
  	{
  		{
  			if (!((*a0).kind == ((Tnodekind292020) 23))) goto LA20;
  			result0 = newintnodet_353016_2569619629(IL64(0), n0);
  		}
  		goto LA18;
  		LA20: ;
  		{
  			if (!((*a0).kind >= ((Tnodekind292020) 20) && (*a0).kind <= ((Tnodekind292020) 22))) goto LA23;
  			result0 = newintnodet_353016_2569619629(((NI64) (((*a0).kindU.S3.strval ? (*a0).kindU.S3.strval->Sup.len : 0))), n0);
  		}
  		goto LA18;
  		LA23: ;
  		{
  			NI LOC26;
  			LOC26 = (NI)0;
  			LOC26 = sonslen_295351_850551059(a0);
  			result0 = newintnodet_353016_2569619629(((NI64) (LOC26)), n0);
  		}
  		LA18: ;
  	}
  	break;
  	case ((Tmagic292524) 100):
  	case ((Tmagic292524) 102):
  	{
  		result0 = a0;
  	}
  	break;
  	case ((Tmagic292524) 114):
  	case ((Tmagic292524) 115):
  	{
  		NI64 LOC29;
  		LOC29 = (NI64)0;
  		LOC29 = getint_297220_850551059(a0);
  		result0 = newfloatnodet_353020_2569619629(((double) (((NI) (LOC29)))), n0);
  	}
  	break;
  	case ((Tmagic292524) 116):
  	case ((Tmagic292524) 117):
  	{
  		NF LOC31;
  		LOC31 = (NF)0;
  		LOC31 = getfloat_297225_850551059(a0);
  		result0 = newintnodet_353016_2569619629(((NI64) (float64ToInt32(LOC31))), n0);
  	}
  	break;
  	case ((Tmagic292524) 104):
  	{
  		NF LOC33;
  		LOC33 = (NF)0;
  		LOC33 = getfloat_297225_850551059(a0);
  		result0 = newfloatnodet_353020_2569619629((LOC33 > 0? (LOC33) : -(LOC33)), n0);
  	}
  	break;
  	case ((Tmagic292524) 98):
  	{
  		{
  			NI64 LOC37;
  			LOC37 = (NI64)0;
  			LOC37 = getint_297220_850551059(a0);
  			if (!(IL64(0) <= LOC37)) goto LA38;
  			result0 = a0;
  		}
  		goto LA35;
  		LA38: ;
  		{
  			NI64 LOC41;
  			LOC41 = (NI64)0;
  			LOC41 = getint_297220_850551059(a0);
  			result0 = newintnodet_353016_2569619629(-(LOC41), n0);
  		}
  		LA35: ;
  	}
  	break;
  	case ((Tmagic292524) 105):
  	case ((Tmagic292524) 106):
  	case ((Tmagic292524) 107):
  	case ((Tmagic292524) 108):
  	case ((Tmagic292524) 109):
  	case ((Tmagic292524) 110):
  	{
  		NI64 LOC43;
  		NI64 LOC44;
  		LOC43 = (NI64)0;
  		LOC43 = getint_297220_850551059(a0);
  		LOC44 = (NI64)0;
  		LOC44 = getsize_320135_3876443242((*a0).typ);
  		result0 = newintnodet_353016_2569619629((NI64)(LOC43 & (NI64)((NI64)((NU64)(IL64(1)) << (NU64)((NI64)(LOC44 * IL64(8)))) - IL64(1))), n0);
  	}
  	break;
  	case ((Tmagic292524) 111):
  	{
  		NI64 LOC46;
  		LOC46 = (NI64)0;
  		LOC46 = getint_297220_850551059(a0);
  		result0 = newintnodet_353016_2569619629(((NI64) ((NI64)(LOC46 & IL64(255)))), n0);
  	}
  	break;
  	case ((Tmagic292524) 112):
  	{
  		NI64 LOC48;
  		LOC48 = (NI64)0;
  		LOC48 = getint_297220_850551059(a0);
  		result0 = newintnodet_353016_2569619629(((NI64) ((NI64)(LOC48 & IL64(65535)))), n0);
  	}
  	break;
  	case ((Tmagic292524) 113):
  	{
  		NI64 LOC50;
  		LOC50 = (NI64)0;
  		LOC50 = getint_297220_850551059(a0);
  		result0 = newintnodet_353016_2569619629(((NI64) ((NI64)(LOC50 & IL64(4294967295)))), n0);
  	}
  	break;
  	case ((Tmagic292524) 25):
  	{
  		NI64 LOC52;
  		NI64 LOC53;
  		LOC52 = (NI64)0;
  		LOC52 = getordvalue_320129_3876443242(a0);
  		LOC53 = (NI64)0;
  		LOC53 = HEX7CHEX2DHEX7C_352009_3178507870(LOC52, IL64(1));
  		result0 = newintnodet_353016_2569619629(LOC53, n0);
  	}
  	break;
  	case ((Tmagic292524) 50):
  	{
  		NI64 LOC55;
  		NI64 LOC56;
  		NI64 LOC57;
  		LOC55 = (NI64)0;
  		LOC55 = getordvalue_320129_3876443242(a0);
  		LOC56 = (NI64)0;
  		LOC56 = getint_297220_850551059(b0);
  		LOC57 = (NI64)0;
  		LOC57 = HEX7CHEX2BHEX7C_352004_3178507870(LOC55, LOC56);
  		result0 = newintnodet_353016_2569619629(LOC57, n0);
  	}
  	break;
  	case ((Tmagic292524) 51):
  	{
  		NI64 LOC59;
  		NI64 LOC60;
  		NI64 LOC61;
  		LOC59 = (NI64)0;
  		LOC59 = getordvalue_320129_3876443242(a0);
  		LOC60 = (NI64)0;
  		LOC60 = getint_297220_850551059(b0);
  		LOC61 = (NI64)0;
  		LOC61 = HEX7CHEX2DHEX7C_352009_3178507870(LOC59, LOC60);
  		result0 = newintnodet_353016_2569619629(LOC61, n0);
  	}
  	break;
  	case ((Tmagic292524) 45):
  	{
  		NI64 LOC63;
  		NI64 LOC64;
  		NI64 LOC65;
  		LOC63 = (NI64)0;
  		LOC63 = getint_297220_850551059(a0);
  		LOC64 = (NI64)0;
  		LOC64 = getint_297220_850551059(b0);
  		LOC65 = (NI64)0;
  		LOC65 = HEX7CHEX2BHEX7C_352004_3178507870(LOC63, LOC64);
  		result0 = newintnodet_353016_2569619629(LOC65, n0);
  	}
  	break;
  	case ((Tmagic292524) 46):
  	{
  		NI64 LOC67;
  		NI64 LOC68;
  		NI64 LOC69;
  		LOC67 = (NI64)0;
  		LOC67 = getint_297220_850551059(a0);
  		LOC68 = (NI64)0;
  		LOC68 = getint_297220_850551059(b0);
  		LOC69 = (NI64)0;
  		LOC69 = HEX7CHEX2DHEX7C_352009_3178507870(LOC67, LOC68);
  		result0 = newintnodet_353016_2569619629(LOC69, n0);
  	}
  	break;
  	case ((Tmagic292524) 47):
  	{
  		NI64 LOC71;
  		NI64 LOC72;
  		NI64 LOC73;
  		LOC71 = (NI64)0;
  		LOC71 = getint_297220_850551059(a0);
  		LOC72 = (NI64)0;
  		LOC72 = getint_297220_850551059(b0);
  		LOC73 = (NI64)0;
  		LOC73 = HEX7CHEX2AHEX7C_352028_3178507870(LOC71, LOC72);
  		result0 = newintnodet_353016_2569619629(LOC73, n0);
  	}
  	break;
  	case ((Tmagic292524) 61):
  	{
  		{
  			NI64 LOC77;
  			NI64 LOC78;
  			NI64 LOC81;
  			LOC77 = (NI64)0;
  			LOC77 = getint_297220_850551059(b0);
  			LOC78 = (NI64)0;
  			LOC78 = getint_297220_850551059(a0);
  			if (!(LOC77 < LOC78)) goto LA79;
  			LOC81 = (NI64)0;
  			LOC81 = getint_297220_850551059(b0);
  			result0 = newintnodet_353016_2569619629(LOC81, n0);
  		}
  		goto LA75;
  		LA79: ;
  		{
  			NI64 LOC83;
  			LOC83 = (NI64)0;
  			LOC83 = getint_297220_850551059(a0);
  			result0 = newintnodet_353016_2569619629(LOC83, n0);
  		}
  		LA75: ;
  	}
  	break;
  	case ((Tmagic292524) 62):
  	{
  		{
  			NI64 LOC87;
  			NI64 LOC88;
  			NI64 LOC91;
  			LOC87 = (NI64)0;
  			LOC87 = getint_297220_850551059(b0);
  			LOC88 = (NI64)0;
  			LOC88 = getint_297220_850551059(a0);
  			if (!(LOC87 < LOC88)) goto LA89;
  			LOC91 = (NI64)0;
  			LOC91 = getint_297220_850551059(a0);
  			result0 = newintnodet_353016_2569619629(LOC91, n0);
  		}
  		goto LA85;
  		LA89: ;
  		{
  			NI64 LOC93;
  			LOC93 = (NI64)0;
  			LOC93 = getint_297220_850551059(b0);
  			result0 = newintnodet_353016_2569619629(LOC93, n0);
  		}
  		LA85: ;
  	}
  	break;
  	case ((Tmagic292524) 57):
  	{
  		Ttype292840* LOC95;
  		LOC95 = (Ttype292840*)0;
  		LOC95 = skiptypes_296099_850551059((*n0).typ, IL64(211106233624832));
  		switch ((*LOC95).kind) {
  		case ((Ttypekind292244) 32):
  		{
  			NI64 LOC97;
  			NI64 LOC98;
  			LOC97 = (NI64)0;
  			LOC97 = getint_297220_850551059(a0);
  			LOC98 = (NI64)0;
  			LOC98 = getint_297220_850551059(b0);
  			result0 = newintnodet_353016_2569619629(((NI64) ((NI8)((NU8)(((NI8) (LOC97))) << (NU8)(((NI8) (LOC98)))))), n0);
  		}
  		break;
  		case ((Ttypekind292244) 33):
  		{
  			NI64 LOC100;
  			NI64 LOC101;
  			LOC100 = (NI64)0;
  			LOC100 = getint_297220_850551059(a0);
  			LOC101 = (NI64)0;
  			LOC101 = getint_297220_850551059(b0);
  			result0 = newintnodet_353016_2569619629(((NI64) ((NI16)((NU16)(((NI16) (LOC100))) << (NU16)(((NI16) (LOC101)))))), n0);
  		}
  		break;
  		case ((Ttypekind292244) 34):
  		{
  			NI64 LOC103;
  			NI64 LOC104;
  			LOC103 = (NI64)0;
  			LOC103 = getint_297220_850551059(a0);
  			LOC104 = (NI64)0;
  			LOC104 = getint_297220_850551059(b0);
  			result0 = newintnodet_353016_2569619629(((NI64) ((NI32)((NU32)(((NI32) (LOC103))) << (NU32)(((NI32) (LOC104)))))), n0);
  		}
  		break;
  		case ((Ttypekind292244) 35):
  		case ((Ttypekind292244) 31):
  		case ((Ttypekind292244) 40) ... ((Ttypekind292244) 44):
  		{
  			NI64 LOC106;
  			NI64 LOC107;
  			LOC106 = (NI64)0;
  			LOC106 = getint_297220_850551059(a0);
  			LOC107 = (NI64)0;
  			LOC107 = getint_297220_850551059(b0);
  			result0 = newintnodet_353016_2569619629((NI64)((NU64)(LOC106) << (NU64)(LOC107)), n0);
  		}
  		break;
  		default:
  		{
  			internalerror_196100_155036129((*n0).info, ((NimStringDesc*) &T2569619629_10));
  		}
  		break;
  		}
  	}
  	break;
  	case ((Tmagic292524) 56):
  	{
  		Ttype292840* LOC110;
  		LOC110 = (Ttype292840*)0;
  		LOC110 = skiptypes_296099_850551059((*n0).typ, IL64(211106233624832));
  		switch ((*LOC110).kind) {
  		case ((Ttypekind292244) 32):
  		{
  			NI64 LOC112;
  			NI64 LOC113;
  			LOC112 = (NI64)0;
  			LOC112 = getint_297220_850551059(a0);
  			LOC113 = (NI64)0;
  			LOC113 = getint_297220_850551059(b0);
  			result0 = newintnodet_353016_2569619629(((NI64) ((NI8)((NU8)(((NI8) (LOC112))) >> (NU8)(((NI8) (LOC113)))))), n0);
  		}
  		break;
  		case ((Ttypekind292244) 33):
  		{
  			NI64 LOC115;
  			NI64 LOC116;
  			LOC115 = (NI64)0;
  			LOC115 = getint_297220_850551059(a0);
  			LOC116 = (NI64)0;
  			LOC116 = getint_297220_850551059(b0);
  			result0 = newintnodet_353016_2569619629(((NI64) ((NI16)((NU16)(((NI16) (LOC115))) >> (NU16)(((NI16) (LOC116)))))), n0);
  		}
  		break;
  		case ((Ttypekind292244) 34):
  		{
  			NI64 LOC118;
  			NI64 LOC119;
  			LOC118 = (NI64)0;
  			LOC118 = getint_297220_850551059(a0);
  			LOC119 = (NI64)0;
  			LOC119 = getint_297220_850551059(b0);
  			result0 = newintnodet_353016_2569619629(((NI64) ((NI32)((NU32)(((NI32) (LOC118))) >> (NU32)(((NI32) (LOC119)))))), n0);
  		}
  		break;
  		case ((Ttypekind292244) 35):
  		case ((Ttypekind292244) 31):
  		case ((Ttypekind292244) 40) ... ((Ttypekind292244) 44):
  		{
  			NI64 LOC121;
  			NI64 LOC122;
  			LOC121 = (NI64)0;
  			LOC121 = getint_297220_850551059(a0);
  			LOC122 = (NI64)0;
  			LOC122 = getint_297220_850551059(b0);
  			result0 = newintnodet_353016_2569619629((NI64)((NU64)(LOC121) >> (NU64)(LOC122)), n0);
  		}
  		break;
  		default:
  		{
  			internalerror_196100_155036129((*n0).info, ((NimStringDesc*) &T2569619629_11));
  		}
  		break;
  		}
  	}
  	break;
  	case ((Tmagic292524) 48):
  	{
  		NI64 y0;
  		y0 = getint_297220_850551059(b0);
  		{
  			NI64 LOC129;
  			NI64 LOC130;
  			if (!!((y0 == IL64(0)))) goto LA127;
  			LOC129 = (NI64)0;
  			LOC129 = getint_297220_850551059(a0);
  			LOC130 = (NI64)0;
  			LOC130 = HEX7CdivHEX7C_352018_3178507870(LOC129, y0);
  			result0 = newintnodet_353016_2569619629(LOC130, n0);
  		}
  		LA127: ;
  	}
  	break;
  	case ((Tmagic292524) 49):
  	{
  		NI64 y0;
  		y0 = getint_297220_850551059(b0);
  		{
  			NI64 LOC136;
  			NI64 LOC137;
  			if (!!((y0 == IL64(0)))) goto LA134;
  			LOC136 = (NI64)0;
  			LOC136 = getint_297220_850551059(a0);
  			LOC137 = (NI64)0;
  			LOC137 = HEX7CmodHEX7C_352023_3178507870(LOC136, y0);
  			result0 = newintnodet_353016_2569619629(LOC137, n0);
  		}
  		LA134: ;
  	}
  	break;
  	case ((Tmagic292524) 52):
  	{
  		NF LOC139;
  		NF LOC140;
  		LOC139 = (NF)0;
  		LOC139 = getfloat_297225_850551059(a0);
  		LOC140 = (NF)0;
  		LOC140 = getfloat_297225_850551059(b0);
  		result0 = newfloatnodet_353020_2569619629(((NF)(LOC139) + (NF)(LOC140)), n0);
  	}
  	break;
  	case ((Tmagic292524) 53):
  	{
  		NF LOC142;
  		NF LOC143;
  		LOC142 = (NF)0;
  		LOC142 = getfloat_297225_850551059(a0);
  		LOC143 = (NF)0;
  		LOC143 = getfloat_297225_850551059(b0);
  		result0 = newfloatnodet_353020_2569619629(((NF)(LOC142) - (NF)(LOC143)), n0);
  	}
  	break;
  	case ((Tmagic292524) 54):
  	{
  		NF LOC145;
  		NF LOC146;
  		LOC145 = (NF)0;
  		LOC145 = getfloat_297225_850551059(a0);
  		LOC146 = (NF)0;
  		LOC146 = getfloat_297225_850551059(b0);
  		result0 = newfloatnodet_353020_2569619629(((NF)(LOC145) * (NF)(LOC146)), n0);
  	}
  	break;
  	case ((Tmagic292524) 55):
  	{
  		{
  			NF LOC150;
  			LOC150 = (NF)0;
  			LOC150 = getfloat_297225_850551059(b0);
  			if (!(LOC150 == 0.0)) goto LA151;
  			{
  				NF LOC155;
  				LOC155 = (NF)0;
  				LOC155 = getfloat_297225_850551059(a0);
  				if (!(LOC155 == 0.0)) goto LA156;
  				result0 = newfloatnodet_353020_2569619629(NAN, n0);
  			}
  			goto LA153;
  			LA156: ;
  			{
  				result0 = newfloatnodet_353020_2569619629(INF, n0);
  			}
  			LA153: ;
  		}
  		goto LA148;
  		LA151: ;
  		{
  			NF LOC160;
  			NF LOC161;
  			LOC160 = (NF)0;
  			LOC160 = getfloat_297225_850551059(a0);
  			LOC161 = (NF)0;
  			LOC161 = getfloat_297225_850551059(b0);
  			result0 = newfloatnodet_353020_2569619629(((NF)(LOC160) / (NF)(LOC161)), n0);
  		}
  		LA148: ;
  	}
  	break;
  	case ((Tmagic292524) 64):
  	{
  		{
  			NF LOC165;
  			NF LOC166;
  			NF LOC169;
  			LOC165 = (NF)0;
  			LOC165 = getfloat_297225_850551059(b0);
  			LOC166 = (NF)0;
  			LOC166 = getfloat_297225_850551059(a0);
  			if (!(LOC165 < LOC166)) goto LA167;
  			LOC169 = (NF)0;
  			LOC169 = getfloat_297225_850551059(a0);
  			result0 = newfloatnodet_353020_2569619629(LOC169, n0);
  		}
  		goto LA163;
  		LA167: ;
  		{
  			NF LOC171;
  			LOC171 = (NF)0;
  			LOC171 = getfloat_297225_850551059(b0);
  			result0 = newfloatnodet_353020_2569619629(LOC171, n0);
  		}
  		LA163: ;
  	}
  	break;
  	case ((Tmagic292524) 63):
  	{
  		{
  			NF LOC175;
  			NF LOC176;
  			NF LOC179;
  			LOC175 = (NF)0;
  			LOC175 = getfloat_297225_850551059(b0);
  			LOC176 = (NF)0;
  			LOC176 = getfloat_297225_850551059(a0);
  			if (!(LOC175 < LOC176)) goto LA177;
  			LOC179 = (NF)0;
  			LOC179 = getfloat_297225_850551059(b0);
  			result0 = newfloatnodet_353020_2569619629(LOC179, n0);
  		}
  		goto LA173;
  		LA177: ;
  		{
  			NF LOC181;
  			LOC181 = (NF)0;
  			LOC181 = getfloat_297225_850551059(a0);
  			result0 = newfloatnodet_353020_2569619629(LOC181, n0);
  		}
  		LA173: ;
  	}
  	break;
  	case ((Tmagic292524) 157):
  	{
  		result0 = newintnodet_353016_2569619629(((NI64) (((*a0).kind == ((Tnodekind292020) 23)))), n0);
  	}
  	break;
  	case ((Tmagic292524) 72):
  	case ((Tmagic292524) 88):
  	case ((Tmagic292524) 82):
  	case ((Tmagic292524) 85):
  	{
  		NI64 LOC184;
  		NI64 LOC185;
  		LOC184 = (NI64)0;
  		LOC184 = getordvalue_320129_3876443242(a0);
  		LOC185 = (NI64)0;
  		LOC185 = getordvalue_320129_3876443242(b0);
  		result0 = newintnodet_353016_2569619629(((NI64) ((LOC184 < LOC185))), n0);
  	}
  	break;
  	case ((Tmagic292524) 71):
  	case ((Tmagic292524) 87):
  	case ((Tmagic292524) 81):
  	case ((Tmagic292524) 84):
  	{
  		NI64 LOC187;
  		NI64 LOC188;
  		LOC187 = (NI64)0;
  		LOC187 = getordvalue_320129_3876443242(a0);
  		LOC188 = (NI64)0;
  		LOC188 = getordvalue_320129_3876443242(b0);
  		result0 = newintnodet_353016_2569619629(((NI64) ((LOC187 <= LOC188))), n0);
  	}
  	break;
  	case ((Tmagic292524) 70):
  	case ((Tmagic292524) 86):
  	case ((Tmagic292524) 80):
  	case ((Tmagic292524) 83):
  	{
  		NI64 LOC190;
  		NI64 LOC191;
  		LOC190 = (NI64)0;
  		LOC190 = getordvalue_320129_3876443242(a0);
  		LOC191 = (NI64)0;
  		LOC191 = getordvalue_320129_3876443242(b0);
  		result0 = newintnodet_353016_2569619629(((NI64) ((LOC190 == LOC191))), n0);
  	}
  	break;
  	case ((Tmagic292524) 75):
  	{
  		NF LOC193;
  		NF LOC194;
  		LOC193 = (NF)0;
  		LOC193 = getfloat_297225_850551059(a0);
  		LOC194 = (NF)0;
  		LOC194 = getfloat_297225_850551059(b0);
  		result0 = newintnodet_353016_2569619629(((NI64) ((LOC193 < LOC194))), n0);
  	}
  	break;
  	case ((Tmagic292524) 74):
  	{
  		NF LOC196;
  		NF LOC197;
  		LOC196 = (NF)0;
  		LOC196 = getfloat_297225_850551059(a0);
  		LOC197 = (NF)0;
  		LOC197 = getfloat_297225_850551059(b0);
  		result0 = newintnodet_353016_2569619629(((NI64) ((LOC196 <= LOC197))), n0);
  	}
  	break;
  	case ((Tmagic292524) 73):
  	{
  		NF LOC199;
  		NF LOC200;
  		LOC199 = (NF)0;
  		LOC199 = getfloat_297225_850551059(a0);
  		LOC200 = (NF)0;
  		LOC200 = getfloat_297225_850551059(b0);
  		result0 = newintnodet_353016_2569619629(((NI64) ((LOC199 == LOC200))), n0);
  	}
  	break;
  	case ((Tmagic292524) 130):
  	{
  		NimStringDesc* LOC202;
  		NimStringDesc* LOC203;
  		LOC202 = (NimStringDesc*)0;
  		LOC202 = getstr_297230_850551059(a0);
  		LOC203 = (NimStringDesc*)0;
  		LOC203 = getstr_297230_850551059(b0);
  		result0 = newintnodet_353016_2569619629(((NI64) ((cmpStrings(LOC202, LOC203) < 0))), n0);
  	}
  	break;
  	case ((Tmagic292524) 129):
  	{
  		NimStringDesc* LOC205;
  		NimStringDesc* LOC206;
  		LOC205 = (NimStringDesc*)0;
  		LOC205 = getstr_297230_850551059(a0);
  		LOC206 = (NimStringDesc*)0;
  		LOC206 = getstr_297230_850551059(b0);
  		result0 = newintnodet_353016_2569619629(((NI64) ((cmpStrings(LOC205, LOC206) <= 0))), n0);
  	}
  	break;
  	case ((Tmagic292524) 128):
  	{
  		NimStringDesc* LOC208;
  		NimStringDesc* LOC209;
  		LOC208 = (NimStringDesc*)0;
  		LOC208 = getstr_297230_850551059(a0);
  		LOC209 = (NimStringDesc*)0;
  		LOC209 = getstr_297230_850551059(b0);
  		result0 = newintnodet_353016_2569619629(((NI64) (eqStrings(LOC208, LOC209))), n0);
  	}
  	break;
  	case ((Tmagic292524) 77):
  	case ((Tmagic292524) 79):
  	{
  		NI64 LOC211;
  		NI64 LOC212;
  		LOC211 = (NI64)0;
  		LOC211 = getordvalue_320129_3876443242(a0);
  		LOC212 = (NI64)0;
  		LOC212 = getordvalue_320129_3876443242(b0);
  		result0 = newintnodet_353016_2569619629(((NI64) (((NU64)(LOC211) < (NU64)(LOC212)))), n0);
  	}
  	break;
  	case ((Tmagic292524) 76):
  	case ((Tmagic292524) 78):
  	{
  		NI64 LOC214;
  		NI64 LOC215;
  		LOC214 = (NI64)0;
  		LOC214 = getordvalue_320129_3876443242(a0);
  		LOC215 = (NI64)0;
  		LOC215 = getordvalue_320129_3876443242(b0);
  		result0 = newintnodet_353016_2569619629(((NI64) (((NU64)(LOC214) <= (NU64)(LOC215)))), n0);
  	}
  	break;
  	case ((Tmagic292524) 58):
  	case ((Tmagic292524) 126):
  	{
  		NI64 LOC217;
  		NI64 LOC218;
  		LOC217 = (NI64)0;
  		LOC217 = getint_297220_850551059(a0);
  		LOC218 = (NI64)0;
  		LOC218 = getint_297220_850551059(b0);
  		result0 = newintnodet_353016_2569619629((NI64)(LOC217 & LOC218), n0);
  	}
  	break;
  	case ((Tmagic292524) 59):
  	case ((Tmagic292524) 127):
  	{
  		NI64 LOC220;
  		NI64 LOC221;
  		LOC220 = (NI64)0;
  		LOC220 = getint_297220_850551059(a0);
  		LOC221 = (NI64)0;
  		LOC221 = getint_297220_850551059(b0);
  		result0 = newintnodet_353016_2569619629((NI64)(LOC220 | LOC221), n0);
  	}
  	break;
  	case ((Tmagic292524) 60):
  	case ((Tmagic292524) 93):
  	{
  		NI64 LOC223;
  		NI64 LOC224;
  		LOC223 = (NI64)0;
  		LOC223 = getint_297220_850551059(a0);
  		LOC224 = (NI64)0;
  		LOC224 = getint_297220_850551059(b0);
  		result0 = newintnodet_353016_2569619629((NI64)(LOC223 ^ LOC224), n0);
  	}
  	break;
  	case ((Tmagic292524) 65):
  	{
  		NI64 LOC226;
  		NI64 LOC227;
  		LOC226 = (NI64)0;
  		LOC226 = getint_297220_850551059(a0);
  		LOC227 = (NI64)0;
  		LOC227 = getint_297220_850551059(b0);
  		result0 = newintnodet_353016_2569619629((NI64)((NU64)(LOC226) + (NU64)(LOC227)), n0);
  	}
  	break;
  	case ((Tmagic292524) 66):
  	{
  		NI64 LOC229;
  		NI64 LOC230;
  		LOC229 = (NI64)0;
  		LOC229 = getint_297220_850551059(a0);
  		LOC230 = (NI64)0;
  		LOC230 = getint_297220_850551059(b0);
  		result0 = newintnodet_353016_2569619629((NI64)((NU64)(LOC229) - (NU64)(LOC230)), n0);
  	}
  	break;
  	case ((Tmagic292524) 67):
  	{
  		NI64 LOC232;
  		NI64 LOC233;
  		LOC232 = (NI64)0;
  		LOC232 = getint_297220_850551059(a0);
  		LOC233 = (NI64)0;
  		LOC233 = getint_297220_850551059(b0);
  		result0 = newintnodet_353016_2569619629((NI64)((NU64)(LOC232) * (NU64)(LOC233)), n0);
  	}
  	break;
  	case ((Tmagic292524) 69):
  	{
  		NI64 y0;
  		y0 = getint_297220_850551059(b0);
  		{
  			NI64 LOC239;
  			if (!!((y0 == IL64(0)))) goto LA237;
  			LOC239 = (NI64)0;
  			LOC239 = getint_297220_850551059(a0);
  			result0 = newintnodet_353016_2569619629((NI64)((NU64)(LOC239) % (NU64)(y0)), n0);
  		}
  		LA237: ;
  	}
  	break;
  	case ((Tmagic292524) 68):
  	{
  		NI64 y0;
  		y0 = getint_297220_850551059(b0);
  		{
  			NI64 LOC245;
  			if (!!((y0 == IL64(0)))) goto LA243;
  			LOC245 = (NI64)0;
  			LOC245 = getint_297220_850551059(a0);
  			result0 = newintnodet_353016_2569619629((NI64)((NU64)(LOC245) / (NU64)(y0)), n0);
  		}
  		LA243: ;
  	}
  	break;
  	case ((Tmagic292524) 132):
  	{
  		NIM_BOOL LOC247;
  		LOC247 = (NIM_BOOL)0;
  		LOC247 = containssets_340042_452470228(a0, b0);
  		result0 = newintnodet_353016_2569619629(((NI64) (LOC247)), n0);
  	}
  	break;
  	case ((Tmagic292524) 131):
  	{
  		NIM_BOOL LOC249;
  		LOC249 = (NIM_BOOL)0;
  		LOC249 = equalsets_340046_452470228(a0, b0);
  		result0 = newintnodet_353016_2569619629(((NI64) (LOC249)), n0);
  	}
  	break;
  	case ((Tmagic292524) 133):
  	{
  		NIM_BOOL LOC251;
  		NIM_BOOL LOC253;
  		LOC251 = (NIM_BOOL)0;
  		LOC251 = containssets_340042_452470228(a0, b0);
  		if (!(LOC251)) goto LA252;
  		LOC253 = (NIM_BOOL)0;
  		LOC253 = equalsets_340046_452470228(a0, b0);
  		LOC251 = !(LOC253);
  		LA252: ;
  		result0 = newintnodet_353016_2569619629(((NI64) (LOC251)), n0);
  	}
  	break;
  	case ((Tmagic292524) 134):
  	{
  		result0 = intersectsets_340034_452470228(a0, b0);
  		(*result0).info = (*n0).info;
  	}
  	break;
  	case ((Tmagic292524) 135):
  	{
  		result0 = unionsets_340026_452470228(a0, b0);
  		(*result0).info = (*n0).info;
  	}
  	break;
  	case ((Tmagic292524) 136):
  	{
  		result0 = diffsets_340030_452470228(a0, b0);
  		(*result0).info = (*n0).info;
  	}
  	break;
  	case ((Tmagic292524) 137):
  	{
  		result0 = symdiffsets_340038_452470228(a0, b0);
  		(*result0).info = (*n0).info;
  	}
  	break;
  	case ((Tmagic292524) 138):
  	{
  		NimStringDesc* LOC259;
  		NimStringDesc* LOC260;
  		NimStringDesc* LOC261;
  		LOC259 = (NimStringDesc*)0;
  		LOC260 = (NimStringDesc*)0;
  		LOC260 = getstrorchar_297235_850551059(a0);
  		LOC261 = (NimStringDesc*)0;
  		LOC261 = getstrorchar_297235_850551059(b0);
  		LOC259 = rawNewString(LOC260->Sup.len + LOC261->Sup.len + 0);
  appendString(LOC259, LOC260);
  appendString(LOC259, LOC261);
  		result0 = newstrnodet_353024_2569619629(LOC259, n0);
  	}
  	break;
  	case ((Tmagic292524) 148):
  	{
  		NIM_BOOL LOC263;
  		LOC263 = (NIM_BOOL)0;
  		LOC263 = inset_340010_452470228(a0, b0);
  		result0 = newintnodet_353016_2569619629(((NI64) (LOC263)), n0);
  	}
  	break;
  	case ((Tmagic292524) 149):
  	{
  	}
  	break;
  	case ((Tmagic292524) 120):
  	case ((Tmagic292524) 121):
  	{
  		NI64 LOC266;
  		NimStringDesc* LOC267;
  		LOC266 = (NI64)0;
  		LOC266 = getordvalue_320129_3876443242(a0);
  		LOC267 = (NimStringDesc*)0;
  		LOC267 = nimInt64ToStr(LOC266);
  		result0 = newstrnodet_353024_2569619629(LOC267, n0);
  	}
  	break;
  	case ((Tmagic292524) 119):
  	{
  		{
  			NI64 LOC271;
  			LOC271 = (NI64)0;
  			LOC271 = getordvalue_320129_3876443242(a0);
  			if (!(LOC271 == IL64(0))) goto LA272;
  			result0 = newstrnodet_353024_2569619629(((NimStringDesc*) &T2569619629_12), n0);
  		}
  		goto LA269;
  		LA272: ;
  		{
  			result0 = newstrnodet_353024_2569619629(((NimStringDesc*) &T2569619629_13), n0);
  		}
  		LA269: ;
  	}
  	break;
  	case ((Tmagic292524) 159):
  	{
  		NimStringDesc* LOC276;
  		NI64 LOC277;
  		NimStringDesc* LOC278;
  		LOC276 = (NimStringDesc*)0;
  		LOC276 = getstr_297230_850551059(a0);
  		LOC277 = (NI64)0;
  		LOC277 = getordvalue_320129_3876443242(b0);
  		LOC278 = (NimStringDesc*)0;
  		LOC278 = copyStr(LOC276, ((NI) (LOC277)));
  		result0 = newstrnodet_353024_2569619629(LOC278, n0);
  	}
  	break;
  	case ((Tmagic292524) 160):
  	{
  		NimStringDesc* LOC280;
  		NI64 LOC281;
  		NI64 LOC282;
  		NimStringDesc* LOC283;
  		LOC280 = (NimStringDesc*)0;
  		LOC280 = getstr_297230_850551059(a0);
  		LOC281 = (NI64)0;
  		LOC281 = getordvalue_320129_3876443242(b0);
  		LOC282 = (NI64)0;
  		LOC282 = getordvalue_320129_3876443242(c0);
  		LOC283 = (NimStringDesc*)0;
  		LOC283 = copyStrLast(LOC280, ((NI) (LOC281)), ((NI) (LOC282)));
  		result0 = newstrnodet_353024_2569619629(LOC283, n0);
  	}
  	break;
  	case ((Tmagic292524) 122):
  	{
  		NF LOC285;
  		NimStringDesc* LOC286;
  		LOC285 = (NF)0;
  		LOC285 = getfloat_297225_850551059(a0);
  		LOC286 = (NimStringDesc*)0;
  		LOC286 = nimFloatToStr(LOC285);
  		result0 = newstrnodet_353024_2569619629(LOC286, n0);
  	}
  	break;
  	case ((Tmagic292524) 123):
  	case ((Tmagic292524) 118):
  	{
  		{
  			NimStringDesc* s0;
  			if (!((*a0).kind == ((Tnodekind292020) 41))) goto LA290;
  			s0 = copyString(((NimStringDesc*) &T2569619629_14));
  			{
  				Tnode292802* b_353817_2569619629;
  				Tnodeseq292796* HEX3Atmp_353851_2569619629;
  				NI i_353854_2569619629;
  				NI L_353856_2569619629;
  				b_353817_2569619629 = (Tnode292802*)0;
  				HEX3Atmp_353851_2569619629 = (Tnodeseq292796*)0;
  				HEX3Atmp_353851_2569619629 = (*a0).kindU.S6.sons;
  				i_353854_2569619629 = ((NI) 0);
  				L_353856_2569619629 = (HEX3Atmp_353851_2569619629 ? HEX3Atmp_353851_2569619629->Sup.len : 0);
  				{
  					while (1) {
  						NimStringDesc* LOC295;
  						if (!(i_353854_2569619629 < L_353856_2569619629)) goto LA294;
  						b_353817_2569619629 = HEX3Atmp_353851_2569619629->data[i_353854_2569619629];
  						LOC295 = (NimStringDesc*)0;
  						LOC295 = getstrorchar_297235_850551059(b_353817_2569619629);
  						s0 = resizeString(s0, LOC295->Sup.len + 0);
  appendString(s0, LOC295);
  						i_353854_2569619629 += ((NI) 1);
  					} LA294: ;
  				}
  			}
  			result0 = newstrnodet_353024_2569619629(s0, n0);
  		}
  		goto LA288;
  		LA290: ;
  		{
  			NimStringDesc* LOC297;
  			LOC297 = (NimStringDesc*)0;
  			LOC297 = getstrorchar_297235_850551059(a0);
  			result0 = newstrnodet_353024_2569619629(LOC297, n0);
  		}
  		LA288: ;
  	}
  	break;
  	case ((Tmagic292524) 124):
  	{
  		result0 = a0;
  	}
  	break;
  	case ((Tmagic292524) 125):
  	{
  		NimStringDesc* LOC300;
  		LOC300 = (NimStringDesc*)0;
  		LOC300 = ordinalvaltostring_353052_2569619629(a0);
  		result0 = newstrnodet_353024_2569619629(LOC300, n0);
  	}
  	break;
  	case ((Tmagic292524) 158):
  	{
  		result0 = copytree_296822_850551059(a0);
  		asgnRefNoCycle((void**) (&(*result0).typ), (*n0).typ);
  	}
  	break;
  	case ((Tmagic292524) 221):
  	{
  		NimStringDesc* LOC303;
  		NIM_BOOL LOC304;
  		LOC303 = (NimStringDesc*)0;
  		LOC303 = getstr_297230_850551059(a0);
  		LOC304 = (NIM_BOOL)0;
  		LOC304 = testcompileoption_280708_2004575671(LOC303, (*n0).info);
  		result0 = newintnodet_353016_2569619629(((NI64) (LOC304)), n0);
  	}
  	break;
  	case ((Tmagic292524) 222):
  	{
  		NimStringDesc* LOC306;
  		NimStringDesc* LOC307;
  		NIM_BOOL LOC308;
  		LOC306 = (NimStringDesc*)0;
  		LOC306 = getstr_297230_850551059(a0);
  		LOC307 = (NimStringDesc*)0;
  		LOC307 = getstr_297230_850551059(b0);
  		LOC308 = (NIM_BOOL)0;
  		LOC308 = testcompileoptionarg_280523_2004575671(LOC306, LOC307, (*n0).info);
  		result0 = newintnodet_353016_2569619629(((NI64) (LOC308)), n0);
  	}
  	break;
  	case ((Tmagic292524) 95):
  	{
  		NIM_BOOL LOC310;
  		LOC310 = (NIM_BOOL)0;
  		LOC310 = exprstructuralequivalent_318311_2616423590(a0, b0, NIM_TRUE);
  		result0 = newintnodet_353016_2569619629(((NI64) (LOC310)), n0);
  	}
  	break;
  	default:
  	{
  	}
  	break;
  	}
  	return result0;
  }
  
  N_NIMCALL(Tnode292802*, magiccall_353962_2569619629)(Tsym292834* m0, Tnode292802* n0) {
  	Tnode292802* result0;
  	Tsym292834* s0;
  	Tnode292802* a0;
  	Tnode292802* b0;
  	Tnode292802* c0;
  {	result0 = (Tnode292802*)0;
  	{
  		NI LOC3;
  		LOC3 = (NI)0;
  		LOC3 = sonslen_295351_850551059(n0);
  		if (!(LOC3 <= ((NI) 1))) goto LA4;
  		goto BeforeRet;
  	}
  	LA4: ;
  	s0 = (*(*n0).kindU.S6.sons->data[((NI) 0)]).kindU.S4.sym;
  	a0 = getconstexpr_353001_2569619629(m0, (*n0).kindU.S6.sons->data[((NI) 1)]);
  	b0 = (Tnode292802*)0;
  	c0 = (Tnode292802*)0;
  	{
  		if (!(a0 == NIM_NIL)) goto LA8;
  		goto BeforeRet;
  	}
  	LA8: ;
  	{
  		NI LOC12;
  		LOC12 = (NI)0;
  		LOC12 = sonslen_295351_850551059(n0);
  		if (!(((NI) 2) < LOC12)) goto LA13;
  		b0 = getconstexpr_353001_2569619629(m0, (*n0).kindU.S6.sons->data[((NI) 2)]);
  		{
  			if (!(b0 == NIM_NIL)) goto LA17;
  			goto BeforeRet;
  		}
  		LA17: ;
  		{
  			NI LOC21;
  			LOC21 = (NI)0;
  			LOC21 = sonslen_295351_850551059(n0);
  			if (!(((NI) 3) < LOC21)) goto LA22;
  			c0 = getconstexpr_353001_2569619629(m0, (*n0).kindU.S6.sons->data[((NI) 3)]);
  			{
  				if (!(c0 == NIM_NIL)) goto LA26;
  				goto BeforeRet;
  			}
  			LA26: ;
  		}
  		LA22: ;
  	}
  	LA13: ;
  	result0 = evalop_353005_2569619629((*s0).magic, n0, a0, b0, c0);
  	}BeforeRet: ;
  	return result0;
  }
  
  static N_INLINE(void, nimGCunrefNoCycle)(void* p0) {
  	Cell47304* c0;
  	c0 = usrtocell_51440_1689653243(p0);
  	{
  		(*c0).refcount -= ((NI) 8);
  		if (!((NU64)((*c0).refcount) < (NU64)(((NI) 8)))) goto LA3;
  		rtladdzct_52601_1689653243(c0);
  	}
  	LA3: ;
  }
  
  N_NIMCALL(Tnode292802*, foldconstrstr_354455_2569619629)(Tsym292834* m0, Tnode292802* n0) {
  	Tnode292802* result0;
  	NimStringDesc* LOC1;
  {	result0 = (Tnode292802*)0;
  	result0 = newnodeit_294801_850551059(((Tnodekind292020) 20), (*n0).info, (*n0).typ);
  	LOC1 = (NimStringDesc*)0;
  	LOC1 = (*result0).kindU.S3.strval; (*result0).kindU.S3.strval = copyStringRC1(((NimStringDesc*) &T2569619629_14));
  	if (LOC1) nimGCunrefNoCycle(LOC1);
  	{
  		NI i_354472_2569619629;
  		NI HEX3Atmp_354489_2569619629;
  		NI LOC3;
  		NI res_354492_2569619629;
  		i_354472_2569619629 = (NI)0;
  		HEX3Atmp_354489_2569619629 = (NI)0;
  		LOC3 = (NI)0;
  		LOC3 = sonslen_295351_850551059(n0);
  		HEX3Atmp_354489_2569619629 = (NI)(LOC3 - ((NI) 1));
  		res_354492_2569619629 = ((NI) 1);
  		{
  			while (1) {
  				Tnode292802* a0;
  				NimStringDesc* LOC10;
  				if (!(res_354492_2569619629 <= HEX3Atmp_354489_2569619629)) goto LA5;
  				i_354472_2569619629 = res_354492_2569619629;
  				a0 = getconstexpr_353001_2569619629(m0, (*n0).kindU.S6.sons->data[i_354472_2569619629]);
  				{
  					if (!(a0 == NIM_NIL)) goto LA8;
  					result0 = NIM_NIL;
  					goto BeforeRet;
  				}
  				LA8: ;
  				LOC10 = (NimStringDesc*)0;
  				LOC10 = getstrorchar_297235_850551059(a0);
  				(*result0).kindU.S3.strval = resizeString((*result0).kindU.S3.strval, LOC10->Sup.len + 0);
  appendString((*result0).kindU.S3.strval, LOC10);
  				res_354492_2569619629 += ((NI) 1);
  			} LA5: ;
  		}
  	}
  	}BeforeRet: ;
  	return result0;
  }
  
  N_NIMCALL(Tnode292802*, evalis_353470_2569619629)(Tnode292802* n0, Tnode292802* a0) {
  	Tnode292802* result0;
  	Ttype292840* t10;
  	result0 = (Tnode292802*)0;
  	{
  		NIM_BOOL LOC3;
  		NimStringDesc* LOC7;
  		LOC3 = (NIM_BOOL)0;
  		LOC3 = ((*a0).kind == ((Tnodekind292020) 3));
  		if (!(LOC3)) goto LA4;
  		LOC3 = ((*(*a0).kindU.S4.sym).kind == ((Tsymkind292435) 7));
  		LA4: ;
  		if (!!(LOC3)) goto LA5;
  		LOC7 = (NimStringDesc*)0;
  		LOC7 = HEX24_196185_1689653243(T2569619629_17);
  		internalerror_196113_155036129(LOC7);
  	}
  	LA5: ;
  	{
  		NIM_BOOL LOC10;
  		NI LOC11;
  		Tnode292802* LOC13;
  		NimStringDesc* LOC16;
  		LOC10 = (NIM_BOOL)0;
  		LOC11 = (NI)0;
  		LOC11 = sonslen_295351_850551059(n0);
  		LOC10 = (LOC11 == ((NI) 3));
  		if (!(LOC10)) goto LA12;
  		LOC13 = (Tnode292802*)0;
  		LOC13 = HEX5BHEX5D_293238_850551059(n0, ((NI) 2));
  		LOC10 = ((*LOC13).kind >= ((Tnodekind292020) 20) && (*LOC13).kind <= ((Tnodekind292020) 22) || (*LOC13).kind == ((Tnodekind292020) 4));
  		LA12: ;
  		if (!!(LOC10)) goto LA14;
  		LOC16 = (NimStringDesc*)0;
  		LOC16 = HEX24_196185_1689653243(T2569619629_19);
  		internalerror_196113_155036129(LOC16);
  	}
  	LA14: ;
  	t10 = (*(*a0).kindU.S4.sym).typ;
  	{
  		Tnode292802* LOC19;
  		Tnode292802* LOC22;
  		NimStringDesc* LOC23;
  		LOC19 = (Tnode292802*)0;
  		LOC19 = HEX5BHEX5D_293238_850551059(n0, ((NI) 2));
  		if (!((*LOC19).kind >= ((Tnodekind292020) 20) && (*LOC19).kind <= ((Tnodekind292020) 22))) goto LA20;
  		LOC22 = (Tnode292802*)0;
  		LOC22 = HEX5BHEX5D_293238_850551059(n0, ((NI) 2));
  		LOC23 = (NimStringDesc*)0;
  		LOC23 = nsuNormalize((*LOC22).kindU.S3.strval);
  		if (eqStrings(LOC23, ((NimStringDesc*) &T2569619629_20))) goto LA24;
  		if (eqStrings(LOC23, ((NimStringDesc*) &T2569619629_21))) goto LA25;
  		goto LA26;
  		LA24: ;
  		{
  			Ttype292840* t0;
  			NIM_BOOL LOC29;
  			NIM_BOOL LOC30;
  			t0 = skiptypes_296099_850551059(t10, IL64(211106233624832));
  			LOC29 = (NIM_BOOL)0;
  			LOC30 = (NIM_BOOL)0;
  			LOC30 = ((*t0).kind == ((Ttypekind292244) 25));
  			if (!(LOC30)) goto LA31;
  			LOC30 = ((*t0).callconv == ((Tcallingconvention292002) 8));
  			LA31: ;
  			LOC29 = LOC30;
  			if (!(LOC29)) goto LA32;
  			LOC29 = !((((*t0).flags &(1U<<((NU)(((Ttypeflag292431) 14))&31U)))!=0));
  			LA32: ;
  			result0 = newintnode_293659_850551059(((Tnodekind292020) 6), ((NI64) (LOC29)));
  		}
  		goto LA27;
  		LA25: ;
  		{
  			Ttype292840* t0;
  			NIM_BOOL LOC34;
  			NIM_BOOL LOC35;
  			t0 = skiptypes_296099_850551059(t10, IL64(211106233624832));
  			LOC34 = (NIM_BOOL)0;
  			LOC35 = (NIM_BOOL)0;
  			LOC35 = ((*t0).kind == ((Ttypekind292244) 25));
  			if (!(LOC35)) goto LA36;
  			LOC35 = ((*t0).callconv == ((Tcallingconvention292002) 8));
  			LA36: ;
  			LOC34 = LOC35;
  			if (!(LOC34)) goto LA37;
  			LOC34 = (((*t0).flags &(1U<<((NU)(((Ttypeflag292431) 14))&31U)))!=0);
  			LA37: ;
  			result0 = newintnode_293659_850551059(((Tnodekind292020) 6), ((NI64) (LOC34)));
  		}
  		goto LA27;
  		LA26: ;
  		{
  		}
  		LA27: ;
  	}
  	goto LA17;
  	LA20: ;
  	{
  		Ttype292840* t20;
  		Tnode292802* LOC40;
  		NIM_BOOL match0;
  		LOC40 = (Tnode292802*)0;
  		LOC40 = HEX5BHEX5D_293238_850551059(n0, ((NI) 2));
  		t20 = (*LOC40).typ;
  		match0 = sametype_324633_3876443242(t10, t20, 0);
  		result0 = newintnode_293659_850551059(((Tnodekind292020) 6), ((NI64) (match0)));
  	}
  	LA17: ;
  	asgnRefNoCycle((void**) (&(*result0).typ), (*n0).typ);
  	return result0;
  }
  
  static N_INLINE(Exception*, getCurrentException)(void) {
  	Exception* result0;
  	result0 = (Exception*)0;
  	result0 = currexception_18839_1689653243;
  	return result0;
  }
  
  static N_INLINE(void, incref_53419_1689653243)(Cell47304* c0) {
  	(*c0).refcount = (NI)((NU64)((*c0).refcount) + (NU64)(((NI) 8)));
  }
  
  static N_INLINE(void, decref_53001_1689653243)(Cell47304* c0) {
  	{
  		(*c0).refcount -= ((NI) 8);
  		if (!((NU64)((*c0).refcount) < (NU64)(((NI) 8)))) goto LA3;
  		rtladdzct_52601_1689653243(c0);
  	}
  	LA3: ;
  }
  
  static N_INLINE(void, asgnRef)(void** dest0, void* src0) {
  	{
  		Cell47304* LOC5;
  		if (!!((src0 == NIM_NIL))) goto LA3;
  		LOC5 = (Cell47304*)0;
  		LOC5 = usrtocell_51440_1689653243(src0);
  		incref_53419_1689653243(LOC5);
  	}
  	LA3: ;
  	{
  		Cell47304* LOC10;
  		if (!!(((*dest0) == NIM_NIL))) goto LA8;
  		LOC10 = (Cell47304*)0;
  		LOC10 = usrtocell_51440_1689653243((*dest0));
  		decref_53001_1689653243(LOC10);
  	}
  	LA8: ;
  	(*dest0) = src0;
  }
  
  static N_INLINE(void, popCurrentException)(void) {
  	asgnRef((void**) (&currexception_18839_1689653243), NIM_NIL);
  }
  
  N_NIMCALL(void, rangecheck_354049_2569619629)(Tnode292802* n0, NI64 value0) {
  	{
  		NIM_BOOL LOC3;
  		NI64 LOC4;
  		NI64 LOC6;
  		NimStringDesc* LOC9;
  		NimStringDesc* LOC10;
  		NimStringDesc* LOC11;
  		LOC3 = (NIM_BOOL)0;
  		LOC4 = (NI64)0;
  		LOC4 = firstord_320001_3876443242((*n0).typ);
  		LOC3 = (value0 < LOC4);
  		if (LOC3) goto LA5;
  		LOC6 = (NI64)0;
  		LOC6 = lastord_320004_3876443242((*n0).typ);
  		LOC3 = (LOC6 < value0);
  		LA5: ;
  		if (!LOC3) goto LA7;
  		LOC9 = (NimStringDesc*)0;
  		LOC10 = (NimStringDesc*)0;
  		LOC10 = nimInt64ToStr(value0);
  		LOC11 = (NimStringDesc*)0;
  		LOC11 = typetostring_320017_3876443242((*n0).typ, ((Tprefereddesc320011) 0));
  		LOC9 = rawNewString(LOC10->Sup.len + LOC11->Sup.len + 19);
  appendString(LOC9, ((NimStringDesc*) &T2569619629_22));
  appendString(LOC9, LOC10);
  appendString(LOC9, ((NimStringDesc*) &T2569619629_23));
  appendString(LOC9, LOC11);
  		localerror_196080_155036129((*n0).info, ((Tmsgkind191002) 4), LOC9);
  	}
  	LA7: ;
  }
  
  N_NIMCALL(Tnode292802*, foldconv_354053_2569619629)(Tnode292802* n0, Tnode292802* a0, NIM_BOOL check0) {
  	Tnode292802* result0;
  	Ttype292840* LOC1;
  	result0 = (Tnode292802*)0;
  	LOC1 = (Ttype292840*)0;
  	LOC1 = skiptypes_296099_850551059((*n0).typ, IL64(211106233624832));
  	switch ((*LOC1).kind) {
  	case ((Ttypekind292244) 31) ... ((Ttypekind292244) 35):
  	case ((Ttypekind292244) 40) ... ((Ttypekind292244) 44):
  	{
  		Ttype292840* LOC3;
  		LOC3 = (Ttype292840*)0;
  		LOC3 = skiptypes_296099_850551059((*a0).typ, IL64(211106233624832));
  		switch ((*LOC3).kind) {
  		case ((Ttypekind292244) 36) ... ((Ttypekind292244) 38):
  		{
  			NF LOC5;
  			LOC5 = (NF)0;
  			LOC5 = getfloat_297225_850551059(a0);
  			result0 = newintnodet_353016_2569619629(((NI64) (((NI) (LOC5)))), n0);
  		}
  		break;
  		case ((Ttypekind292244) 2):
  		{
  			NI64 LOC7;
  			LOC7 = (NI64)0;
  			LOC7 = getordvalue_320129_3876443242(a0);
  			result0 = newintnodet_353016_2569619629(LOC7, n0);
  		}
  		break;
  		default:
  		{
  			result0 = a0;
  			asgnRefNoCycle((void**) (&(*result0).typ), (*n0).typ);
  		}
  		break;
  		}
  		{
  			NIM_BOOL LOC11;
  			LOC11 = (NIM_BOOL)0;
  			LOC11 = check0;
  			if (!(LOC11)) goto LA12;
  			LOC11 = ((*result0).kind >= ((Tnodekind292020) 5) && (*result0).kind <= ((Tnodekind292020) 15));
  			LA12: ;
  			if (!LOC11) goto LA13;
  			rangecheck_354049_2569619629(n0, (*result0).kindU.S1.intval);
  		}
  		LA13: ;
  	}
  	break;
  	case ((Ttypekind292244) 36) ... ((Ttypekind292244) 38):
  	{
  		Ttype292840* LOC16;
  		LOC16 = (Ttype292840*)0;
  		LOC16 = skiptypes_296099_850551059((*a0).typ, IL64(211106233624832));
  		switch ((*LOC16).kind) {
  		case ((Ttypekind292244) 31) ... ((Ttypekind292244) 35):
  		case ((Ttypekind292244) 14):
  		case ((Ttypekind292244) 1):
  		case ((Ttypekind292244) 2):
  		{
  			NI64 LOC18;
  			LOC18 = (NI64)0;
  			LOC18 = getordvalue_320129_3876443242(a0);
  			result0 = newfloatnodet_353020_2569619629(((double) (LOC18)), n0);
  		}
  		break;
  		default:
  		{
  			result0 = a0;
  			asgnRefNoCycle((void**) (&(*result0).typ), (*n0).typ);
  		}
  		break;
  		}
  	}
  	break;
  	case ((Ttypekind292244) 27):
  	case ((Ttypekind292244) 48):
  	case ((Ttypekind292244) 25):
  	{
  	}
  	break;
  	default:
  	{
  		result0 = a0;
  		asgnRefNoCycle((void**) (&(*result0).typ), (*n0).typ);
  	}
  	break;
  	}
  	return result0;
  }
  
  N_NIMCALL(Tnode292802*, foldarrayaccess_354098_2569619629)(Tsym292834* m0, Tnode292802* n0) {
  	Tnode292802* result0;
  	Tnode292802* x0;
  	Tnode292802* y0;
  	NI64 idx0;
  {	result0 = (Tnode292802*)0;
  	x0 = getconstexpr_353001_2569619629(m0, (*n0).kindU.S6.sons->data[((NI) 0)]);
  	{
  		NIM_BOOL LOC3;
  		Ttype292840* LOC5;
  		LOC3 = (NIM_BOOL)0;
  		LOC3 = (x0 == NIM_NIL);
  		if (LOC3) goto LA4;
  		LOC5 = (Ttype292840*)0;
  		LOC5 = skiptypes_296099_850551059((*x0).typ, 2048);
  		LOC3 = ((*LOC5).kind == ((Ttypekind292244) 8));
  		LA4: ;
  		if (!LOC3) goto LA6;
  		goto BeforeRet;
  	}
  	LA6: ;
  	y0 = getconstexpr_353001_2569619629(m0, (*n0).kindU.S6.sons->data[((NI) 1)]);
  	{
  		if (!(y0 == NIM_NIL)) goto LA10;
  		goto BeforeRet;
  	}
  	LA10: ;
  	idx0 = getordvalue_320129_3876443242(y0);
  	switch ((*x0).kind) {
  	case ((Tnodekind292020) 37):
  	{
  		{
  			NIM_BOOL LOC15;
  			NI LOC17;
  			LOC15 = (NIM_BOOL)0;
  			LOC15 = (IL64(0) <= idx0);
  			if (!(LOC15)) goto LA16;
  			LOC17 = (NI)0;
  			LOC17 = sonslen_295351_850551059(x0);
  			LOC15 = (idx0 < ((NI64) (LOC17)));
  			LA16: ;
  			if (!LOC15) goto LA18;
  			result0 = (*x0).kindU.S6.sons->data[idx0];
  			{
  				if (!((*result0).kind == ((Tnodekind292020) 34))) goto LA22;
  				result0 = (*result0).kindU.S6.sons->data[((NI) 1)];
  			}
  			LA22: ;
  		}
  		goto LA13;
  		LA18: ;
  		{
  			localerror_196080_155036129((*n0).info, ((Tmsgkind191002) 86), ((NimStringDesc*) &T2569619629_14));
  		}
  		LA13: ;
  	}
  	break;
  	case ((Tnodekind292020) 41):
  	{
  		NI64 LOC26;
  		LOC26 = (NI64)0;
  		LOC26 = firstord_320001_3876443242((*x0).typ);
  		idx0 = (NI64)(idx0 - LOC26);
  		{
  			NIM_BOOL LOC29;
  			NI LOC31;
  			LOC29 = (NIM_BOOL)0;
  			LOC29 = (IL64(0) <= idx0);
  			if (!(LOC29)) goto LA30;
  			LOC31 = (NI)0;
  			LOC31 = len_293081_850551059(x0);
  			LOC29 = (idx0 < ((NI64) (LOC31)));
  			LA30: ;
  			if (!LOC29) goto LA32;
  			result0 = (*x0).kindU.S6.sons->data[idx0];
  		}
  		goto LA27;
  		LA32: ;
  		{
  			localerror_196080_155036129((*n0).info, ((Tmsgkind191002) 86), ((NimStringDesc*) &T2569619629_14));
  		}
  		LA27: ;
  	}
  	break;
  	case ((Tnodekind292020) 20) ... ((Tnodekind292020) 22):
  	{
  		result0 = newnodeit_294801_850551059(((Tnodekind292020) 5), (*x0).info, (*n0).typ);
  		{
  			NIM_BOOL LOC38;
  			LOC38 = (NIM_BOOL)0;
  			LOC38 = (IL64(0) <= idx0);
  			if (!(LOC38)) goto LA39;
  			LOC38 = (idx0 < ((NI64) (((*x0).kindU.S3.strval ? (*x0).kindU.S3.strval->Sup.len : 0))));
  			LA39: ;
  			if (!LOC38) goto LA40;
  			(*result0).kindU.S1.intval = ((NI64) (((NU8)((*x0).kindU.S3.strval->data[idx0]))));
  		}
  		goto LA36;
  		LA40: ;
  		{
  			if (!(idx0 == ((NI64) (((*x0).kindU.S3.strval ? (*x0).kindU.S3.strval->Sup.len : 0))))) goto LA43;
  		}
  		goto LA36;
  		LA43: ;
  		{
  			localerror_196080_155036129((*n0).info, ((Tmsgkind191002) 86), ((NimStringDesc*) &T2569619629_14));
  		}
  		LA36: ;
  	}
  	break;
  	default:
  	{
  	}
  	break;
  	}
  	}BeforeRet: ;
  	return result0;
  }
  
  N_NIMCALL(Tnode292802*, foldfieldaccess_354167_2569619629)(Tsym292834* m0, Tnode292802* n0) {
  	Tnode292802* result0;
  	Tnode292802* x0;
  	Tsym292834* field0;
  {	result0 = (Tnode292802*)0;
  	x0 = getconstexpr_353001_2569619629(m0, (*n0).kindU.S6.sons->data[((NI) 0)]);
  	{
  		NIM_BOOL LOC3;
  		LOC3 = (NIM_BOOL)0;
  		LOC3 = (x0 == NIM_NIL);
  		if (LOC3) goto LA4;
  		LOC3 = !(((*x0).kind == ((Tnodekind292020) 38) || (*x0).kind == ((Tnodekind292020) 37)));
  		LA4: ;
  		if (!LOC3) goto LA5;
  		goto BeforeRet;
  	}
  	LA5: ;
  	field0 = (*(*n0).kindU.S6.sons->data[((NI) 1)]).kindU.S4.sym;
  	{
  		NI i_354415_2569619629;
  		NI HEX3Atmp_354447_2569619629;
  		NI HEX3Atmp_354448_2569619629;
  		NI LOC8;
  		NI res_354451_2569619629;
  		i_354415_2569619629 = (NI)0;
  		HEX3Atmp_354447_2569619629 = (NI)0;
  		HEX3Atmp_354448_2569619629 = (NI)0;
  		HEX3Atmp_354447_2569619629 = ((*x0).kind == ((Tnodekind292020) 38));
  		LOC8 = (NI)0;
  		LOC8 = sonslen_295351_850551059(x0);
  		HEX3Atmp_354448_2569619629 = (NI)(LOC8 - ((NI) 1));
  		res_354451_2569619629 = ((NI) (HEX3Atmp_354447_2569619629));
  		{
  			while (1) {
  				Tnode292802* it0;
  				if (!(res_354451_2569619629 <= HEX3Atmp_354448_2569619629)) goto LA10;
  				i_354415_2569619629 = res_354451_2569619629;
  				it0 = (*x0).kindU.S6.sons->data[i_354415_2569619629];
  				{
  					if (!!(((*it0).kind == ((Tnodekind292020) 34)))) goto LA13;
  					result0 = (*x0).kindU.S6.sons->data[(*field0).position];
  					{
  						if (!((*result0).kind == ((Tnodekind292020) 34))) goto LA17;
  						result0 = (*result0).kindU.S6.sons->data[((NI) 1)];
  					}
  					LA17: ;
  					goto BeforeRet;
  				}
  				LA13: ;
  				{
  					if (!((*(*(*(*it0).kindU.S6.sons->data[((NI) 0)]).kindU.S4.sym).name).Sup.id == (*(*field0).name).Sup.id)) goto LA21;
  					result0 = (*(*x0).kindU.S6.sons->data[i_354415_2569619629]).kindU.S6.sons->data[((NI) 1)];
  					goto BeforeRet;
  				}
  				LA21: ;
  				res_354451_2569619629 += ((NI) 1);
  			} LA10: ;
  		}
  	}
  	localerror_196080_155036129((*n0).info, ((Tmsgkind191002) 214), (*(*field0).name).s);
  	}BeforeRet: ;
  	return result0;
  }
  
  N_NIMCALL(Tnode292802*, getconstexpr_353001_2569619629)(Tsym292834* m0, Tnode292802* n0) {
  	Tnode292802* volatile result0;
  {	result0 = (Tnode292802*)0;
  	result0 = NIM_NIL;
  	switch ((*n0).kind) {
  	case ((Tnodekind292020) 3):
  	{
  		Tsym292834* s0;
  		s0 = (*n0).kindU.S4.sym;
  		switch ((*s0).kind) {
  		case ((Tsymkind292435) 19):
  		{
  			result0 = newintnodet_353016_2569619629(((NI64) ((*s0).position)), n0);
  		}
  		break;
  		case ((Tsymkind292435) 10):
  		{
  			switch ((*s0).magic) {
  			case ((Tmagic292524) 210):
  			{
  				result0 = newintnodet_353016_2569619629(((NI64) ((((*m0).flags &(1U<<((NU)(((Tsymflag292184) 12))&31U)))!=0))), n0);
  			}
  			break;
  			case ((Tmagic292524) 211):
  			{
  				NimStringDesc* LOC6;
  				LOC6 = (NimStringDesc*)0;
  				LOC6 = ntgetDateStr();
  				result0 = newstrnodet_353024_2569619629(LOC6, n0);
  			}
  			break;
  			case ((Tmagic292524) 212):
  			{
  				NimStringDesc* LOC8;
  				LOC8 = (NimStringDesc*)0;
  				LOC8 = ntgetClockStr();
  				result0 = newstrnodet_353024_2569619629(LOC8, n0);
  			}
  			break;
  			case ((Tmagic292524) 214):
  			{
  				result0 = newintnodet_353016_2569619629(((NI64) (Cpu_176496_4151366050[(targetcpu_176627_4151366050)- 1].Field2)), n0);
  			}
  			break;
  			case ((Tmagic292524) 215):
  			{
  				NimStringDesc* LOC11;
  				LOC11 = (NimStringDesc*)0;
  				LOC11 = nsuToLowerAsciiStr(Os_176068_4151366050[(targetos_176629_4151366050)- 1].Field0);
  				result0 = newstrnodet_353024_2569619629(LOC11, n0);
  			}
  			break;
  			case ((Tmagic292524) 216):
  			{
  				NimStringDesc* LOC13;
  				LOC13 = (NimStringDesc*)0;
  				LOC13 = nsuToLowerAsciiStr(Cpu_176496_4151366050[(targetcpu_176627_4151366050)- 1].Field0);
  				result0 = newstrnodet_353024_2569619629(LOC13, n0);
  			}
  			break;
  			case ((Tmagic292524) 217):
  			{
  				result0 = getapptype_354015_2569619629(n0);
  			}
  			break;
  			case ((Tmagic292524) 218):
  			{
  				result0 = newfloatnodet_353020_2569619629(NAN, n0);
  			}
  			break;
  			case ((Tmagic292524) 219):
  			{
  				result0 = newfloatnodet_353020_2569619629(INF, n0);
  			}
  			break;
  			case ((Tmagic292524) 220):
  			{
  				result0 = newfloatnodet_353020_2569619629(-INF, n0);
  			}
  			break;
  			case ((Tmagic292524) 262):
  			{
  				{
  					NIM_BOOL LOC21;
  					NimStringDesc* LOC24;
  					NI LOC25;
  					LOC21 = (NIM_BOOL)0;
  					LOC21 = isdefined_200141_1967573533((*s0).name);
  					if (!LOC21) goto LA22;
  					LOC24 = (NimStringDesc*)0;
  					LOC24 = lookupsymbol_200149_1967573533((*s0).name);
  					LOC25 = (NI)0;
  					LOC25 = nsuParseInt(LOC24);
  					result0 = newintnodet_353016_2569619629(((NI64) (LOC25)), n0);
  				}
  				LA22: ;
  			}
  			break;
  			case ((Tmagic292524) 263):
  			{
  				{
  					NIM_BOOL LOC29;
  					NimStringDesc* LOC32;
  					LOC29 = (NIM_BOOL)0;
  					LOC29 = isdefined_200141_1967573533((*s0).name);
  					if (!LOC29) goto LA30;
  					LOC32 = (NimStringDesc*)0;
  					LOC32 = lookupsymbol_200149_1967573533((*s0).name);
  					result0 = newstrnodet_353024_2569619629(LOC32, n0);
  				}
  				LA30: ;
  			}
  			break;
  			default:
  			{
  				result0 = copytree_296822_850551059((*s0).ast);
  			}
  			break;
  			}
  		}
  		break;
  		case ((Tsymkind292435) 12):
  		case ((Tsymkind292435) 13):
  		{
  			result0 = n0;
  		}
  		break;
  		case ((Tsymkind292435) 7):
  		{
  			result0 = newsymnodetypedesc_354496_2569619629(s0, (*n0).info);
  		}
  		break;
  		case ((Tsymkind292435) 4):
  		{
  			{
  				if (!((*(*s0).typ).kind == ((Ttypekind292244) 59))) goto LA39;
  				{
  					if (!!(((*(*s0).typ).n == NIM_NIL))) goto LA43;
  					result0 = (*(*s0).typ).n;
  					asgnRefNoCycle((void**) (&(*result0).typ), (*(*s0).typ).sons->data[((NI) 0)]);
  				}
  				LA43: ;
  			}
  			goto LA37;
  			LA39: ;
  			{
  				result0 = newsymnodetypedesc_354496_2569619629(s0, (*n0).info);
  			}
  			LA37: ;
  		}
  		break;
  		default:
  		{
  		}
  		break;
  		}
  	}
  	break;
  	case ((Tnodekind292020) 5) ... ((Tnodekind292020) 23):
  	{
  		result0 = copynode_296528_850551059(n0);
  	}
  	break;
  	case ((Tnodekind292020) 48):
  	{
  		result0 = getconstifexpr_353857_2569619629(m0, n0);
  	}
  	break;
  	case ((Tnodekind292020) 27):
  	case ((Tnodekind292020) 29):
  	case ((Tnodekind292020) 30):
  	case ((Tnodekind292020) 31):
  	case ((Tnodekind292020) 26):
  	case ((Tnodekind292020) 28):
  	case ((Tnodekind292020) 32):
  	{
  		Tsym292834* s0;
  		TSafePoint T2569619629_8;
  		{
  			if (!!(((*(*n0).kindU.S6.sons->data[((NI) 0)]).kind == ((Tnodekind292020) 3)))) goto LA52;
  			goto BeforeRet;
  		}
  		LA52: ;
  		s0 = (*(*n0).kindU.S6.sons->data[((NI) 0)]).kindU.S4.sym;
  		{
  			if (!!(((*s0).kind == ((Tsymkind292435) 12)))) goto LA56;
  			goto BeforeRet;
  		}
  		LA56: ;
  		pushSafePoint(&T2569619629_8);
  		T2569619629_8.status = _setjmp(T2569619629_8.context);
  		if (T2569619629_8.status == 0) {
  			switch ((*s0).magic) {
  			case ((Tmagic292524) 0):
  			{
  				popSafePoint();
  				goto BeforeRet;
  			}
  			break;
  			case ((Tmagic292524) 9):
  			{
  				Tnode292802* a0;
  				a0 = (*n0).kindU.S6.sons->data[((NI) 1)];
  				{
  					NI64 LOC63;
  					LOC63 = (NI64)0;
  					LOC63 = computesize_320132_3876443242((*a0).typ);
  					if (!(LOC63 < IL64(0))) goto LA64;
  					localerror_196080_155036129((*a0).info, ((Tmsgkind191002) 81), ((NimStringDesc*) &T2569619629_9));
  					result0 = NIM_NIL;
  				}
  				goto LA61;
  				LA64: ;
  				{
  					Ttype292840* LOC67;
  					NI64 LOC70;
  					LOC67 = (Ttype292840*)0;
  					LOC67 = skiptypes_296099_850551059((*a0).typ, IL64(211106232576256));
  					if (!((IL64(1161083061026822) &((NU64)1<<((NU)((*LOC67).kind)&63U)))!=0)) goto LA68;
  					LOC70 = (NI64)0;
  					LOC70 = getsize_320135_3876443242((*a0).typ);
  					result0 = newintnodet_353016_2569619629(LOC70, n0);
  				}
  				goto LA61;
  				LA68: ;
  				{
  					result0 = NIM_NIL;
  				}
  				LA61: ;
  			}
  			break;
  			case ((Tmagic292524) 7):
  			{
  				NI64 LOC73;
  				LOC73 = (NI64)0;
  				LOC73 = firstord_320001_3876443242((*(*n0).kindU.S6.sons->data[((NI) 1)]).typ);
  				result0 = newintnodet_353016_2569619629(LOC73, n0);
  			}
  			break;
  			case ((Tmagic292524) 8):
  			{
  				{
  					Ttype292840* LOC77;
  					Tnode292802* LOC80;
  					Ttype292840* LOC81;
  					NI64 LOC82;
  					LOC77 = (Ttype292840*)0;
  					LOC77 = skiptypes_296099_850551059((*(*n0).kindU.S6.sons->data[((NI) 1)]).typ, IL64(211106240964864));
  					if (!!(((IL64(281475933011968) &((NU64)1<<((NU)((*LOC77).kind)&63U)))!=0))) goto LA78;
  					LOC80 = (Tnode292802*)0;
  					LOC80 = HEX5BHEX5D_293238_850551059(n0, ((NI) 1));
  					LOC81 = (Ttype292840*)0;
  					LOC81 = skiptypes_296099_850551059((*LOC80).typ, IL64(211106240964864));
  					LOC82 = (NI64)0;
  					LOC82 = lastord_320004_3876443242(LOC81);
  					result0 = newintnodet_353016_2569619629(LOC82, n0);
  				}
  				goto LA75;
  				LA78: ;
  				{
  					Tnode292802* a0;
  					a0 = getarrayconstr_354072_2569619629(m0, (*n0).kindU.S6.sons->data[((NI) 1)]);
  					{
  						NI LOC88;
  						if (!((*a0).kind == ((Tnodekind292020) 41))) goto LA86;
  						LOC88 = (NI)0;
  						LOC88 = sonslen_295351_850551059(a0);
  						result0 = newintnodet_353016_2569619629(((NI64) ((NI)(LOC88 - ((NI) 1)))), n0);
  					}
  					LA86: ;
  				}
  				LA75: ;
  			}
  			break;
  			case ((Tmagic292524) 33):
  			{
  				Tnode292802* a0;
  				a0 = getarrayconstr_354072_2569619629(m0, (*n0).kindU.S6.sons->data[((NI) 1)]);
  				{
  					NI LOC94;
  					if (!((*a0).kind == ((Tnodekind292020) 41))) goto LA92;
  					LOC94 = (NI)0;
  					LOC94 = sonslen_295351_850551059(a0);
  					result0 = newintnodet_353016_2569619629(((NI64) (LOC94)), n0);
  				}
  				goto LA90;
  				LA92: ;
  				{
  					result0 = magiccall_353962_2569619629(m0, n0);
  				}
  				LA90: ;
  			}
  			break;
  			case ((Tmagic292524) 35):
  			{
  				NI64 LOC97;
  				LOC97 = (NI64)0;
  				LOC97 = lengthord_320007_3876443242((*(*n0).kindU.S6.sons->data[((NI) 1)]).typ);
  				result0 = newintnodet_353016_2569619629(LOC97, n0);
  			}
  			break;
  			case ((Tmagic292524) 154):
  			{
  				Tnode292802* LOC99;
  				NimStringDesc* LOC100;
  				LOC99 = (Tnode292802*)0;
  				LOC99 = HEX5BHEX5D_293238_850551059(n0, ((NI) 1));
  				LOC100 = (NimStringDesc*)0;
  				LOC100 = rendertree_311044_382274130(LOC99, 4);
  				result0 = newstrnodet_353024_2569619629(LOC100, n0);
  			}
  			break;
  			case ((Tmagic292524) 138):
  			{
  				result0 = foldconstrstr_354455_2569619629(m0, n0);
  			}
  			break;
  			case ((Tmagic292524) 11):
  			{
  				Tnode292802* a0;
  				Tnode292802* LOC103;
  				LOC103 = (Tnode292802*)0;
  				LOC103 = HEX5BHEX5D_293238_850551059(n0, ((NI) 1));
  				a0 = getconstexpr_353001_2569619629(m0, LOC103);
  				{
  					NIM_BOOL LOC106;
  					NIM_BOOL LOC107;
  					LOC106 = (NIM_BOOL)0;
  					LOC107 = (NIM_BOOL)0;
  					LOC107 = !((a0 == NIM_NIL));
  					if (!(LOC107)) goto LA108;
  					LOC107 = ((*a0).kind == ((Tnodekind292020) 3));
  					LA108: ;
  					LOC106 = LOC107;
  					if (!(LOC106)) goto LA109;
  					LOC106 = ((*(*a0).kindU.S4.sym).kind == ((Tsymkind292435) 7));
  					LA109: ;
  					if (!LOC106) goto LA110;
  					result0 = evalis_353470_2569619629(n0, a0);
  				}
  				LA110: ;
  			}
  			break;
  			default:
  			{
  				result0 = magiccall_353962_2569619629(m0, n0);
  			}
  			break;
  			}
  			popSafePoint();
  		}
  		else {
  			popSafePoint();
  			if (isObj(getCurrentException()->Sup.m_type, (&NTI3640))) {
  				T2569619629_8.status = 0;
  				localerror_196080_155036129((*n0).info, ((Tmsgkind191002) 80), ((NimStringDesc*) &T2569619629_14));
  				popCurrentException();
  			}
  			else 			if (isObj(getCurrentException()->Sup.m_type, (&NTI3638))) {
  				T2569619629_8.status = 0;
  				localerror_196080_155036129((*n0).info, ((Tmsgkind191002) 77), ((NimStringDesc*) &T2569619629_14));
  				popCurrentException();
  			}
  		}
  		if (T2569619629_8.status != 0) reraiseException();
  	}
  	break;
  	case ((Tnodekind292020) 63):
  	{
  		Tnode292802* a0;
  		a0 = getconstexpr_353001_2569619629(m0, (*n0).kindU.S6.sons->data[((NI) 0)]);
  		{
  			if (!!((a0 == NIM_NIL))) goto LA119;
  			result0 = n0;
  			asgnRefNoCycle((void**) (&(*n0).kindU.S6.sons->data[((NI) 0)]), a0);
  		}
  		LA119: ;
  	}
  	break;
  	case ((Tnodekind292020) 41):
  	{
  		result0 = copytree_296822_850551059(n0);
  		{
  			NI i_354725_2569619629;
  			NI HEX3Atmp_355015_2569619629;
  			NI LOC123;
  			NI res_355018_2569619629;
  			i_354725_2569619629 = (NI)0;
  			HEX3Atmp_355015_2569619629 = (NI)0;
  			LOC123 = (NI)0;
  			LOC123 = sonslen_295351_850551059(n0);
  			HEX3Atmp_355015_2569619629 = (NI)(LOC123 - ((NI) 1));
  			res_355018_2569619629 = ((NI) 0);
  			{
  				while (1) {
  					Tnode292802* a0;
  					if (!(res_355018_2569619629 <= HEX3Atmp_355015_2569619629)) goto LA125;
  					i_354725_2569619629 = res_355018_2569619629;
  					a0 = getconstexpr_353001_2569619629(m0, (*n0).kindU.S6.sons->data[i_354725_2569619629]);
  					{
  						if (!(a0 == NIM_NIL)) goto LA128;
  						result0 = NIM_NIL;
  						goto BeforeRet;
  					}
  					LA128: ;
  					asgnRefNoCycle((void**) (&(*result0).kindU.S6.sons->data[i_354725_2569619629]), a0);
  					res_355018_2569619629 += ((NI) 1);
  				} LA125: ;
  			}
  		}
  		(*result0).flags |= ((NU16)1)<<((((Tnodeflag292427) 4))%(sizeof(NU16)*8));
  	}
  	break;
  	case ((Tnodekind292020) 44):
  	{
  		Tnode292802* a0;
  		Tnode292802* b0;
  		a0 = getconstexpr_353001_2569619629(m0, (*n0).kindU.S6.sons->data[((NI) 0)]);
  		{
  			if (!(a0 == NIM_NIL)) goto LA133;
  			goto BeforeRet;
  		}
  		LA133: ;
  		b0 = getconstexpr_353001_2569619629(m0, (*n0).kindU.S6.sons->data[((NI) 1)]);
  		{
  			if (!(b0 == NIM_NIL)) goto LA137;
  			goto BeforeRet;
  		}
  		LA137: ;
  		result0 = copynode_296528_850551059(n0);
  		addson_294807_850551059(result0, a0);
  		addson_294807_850551059(result0, b0);
  	}
  	break;
  	case ((Tnodekind292020) 39):
  	{
  		result0 = copytree_296822_850551059(n0);
  		{
  			NI i_354790_2569619629;
  			NI HEX3Atmp_355023_2569619629;
  			NI LOC141;
  			NI res_355026_2569619629;
  			i_354790_2569619629 = (NI)0;
  			HEX3Atmp_355023_2569619629 = (NI)0;
  			LOC141 = (NI)0;
  			LOC141 = sonslen_295351_850551059(n0);
  			HEX3Atmp_355023_2569619629 = (NI)(LOC141 - ((NI) 1));
  			res_355026_2569619629 = ((NI) 0);
  			{
  				while (1) {
  					Tnode292802* a0;
  					if (!(res_355026_2569619629 <= HEX3Atmp_355023_2569619629)) goto LA143;
  					i_354790_2569619629 = res_355026_2569619629;
  					a0 = getconstexpr_353001_2569619629(m0, (*n0).kindU.S6.sons->data[i_354790_2569619629]);
  					{
  						if (!(a0 == NIM_NIL)) goto LA146;
  						result0 = NIM_NIL;
  						goto BeforeRet;
  					}
  					LA146: ;
  					asgnRefNoCycle((void**) (&(*result0).kindU.S6.sons->data[i_354790_2569619629]), a0);
  					res_355026_2569619629 += ((NI) 1);
  				} LA143: ;
  			}
  		}
  		(*result0).flags |= ((NU16)1)<<((((Tnodeflag292427) 4))%(sizeof(NU16)*8));
  	}
  	break;
  	case ((Tnodekind292020) 38):
  	{
  		result0 = copytree_296822_850551059(n0);
  		{
  			NI i_354827_2569619629;
  			NI HEX3Atmp_355031_2569619629;
  			NI LOC150;
  			NI res_355034_2569619629;
  			i_354827_2569619629 = (NI)0;
  			HEX3Atmp_355031_2569619629 = (NI)0;
  			LOC150 = (NI)0;
  			LOC150 = sonslen_295351_850551059(n0);
  			HEX3Atmp_355031_2569619629 = (NI)(LOC150 - ((NI) 1));
  			res_355034_2569619629 = ((NI) 1);
  			{
  				while (1) {
  					Tnode292802* a0;
  					if (!(res_355034_2569619629 <= HEX3Atmp_355031_2569619629)) goto LA152;
  					i_354827_2569619629 = res_355034_2569619629;
  					a0 = getconstexpr_353001_2569619629(m0, (*(*n0).kindU.S6.sons->data[i_354827_2569619629]).kindU.S6.sons->data[((NI) 1)]);
  					{
  						if (!(a0 == NIM_NIL)) goto LA155;
  						result0 = NIM_NIL;
  						goto BeforeRet;
  					}
  					LA155: ;
  					asgnRefNoCycle((void**) (&(*(*result0).kindU.S6.sons->data[i_354827_2569619629]).kindU.S6.sons->data[((NI) 1)]), a0);
  					res_355034_2569619629 += ((NI) 1);
  				} LA152: ;
  			}
  		}
  		(*result0).flags |= ((NU16)1)<<((((Tnodeflag292427) 4))%(sizeof(NU16)*8));
  	}
  	break;
  	case ((Tnodekind292020) 37):
  	{
  		result0 = copytree_296822_850551059(n0);
  		{
  			NIM_BOOL LOC160;
  			NI LOC161;
  			LOC160 = (NIM_BOOL)0;
  			LOC161 = (NI)0;
  			LOC161 = sonslen_295351_850551059(n0);
  			LOC160 = (((NI) 0) < LOC161);
  			if (!(LOC160)) goto LA162;
  			LOC160 = ((*(*n0).kindU.S6.sons->data[((NI) 0)]).kind == ((Tnodekind292020) 34));
  			LA162: ;
  			if (!LOC160) goto LA163;
  			{
  				NI i_354876_2569619629;
  				NI HEX3Atmp_355039_2569619629;
  				NI LOC166;
  				NI res_355042_2569619629;
  				i_354876_2569619629 = (NI)0;
  				HEX3Atmp_355039_2569619629 = (NI)0;
  				LOC166 = (NI)0;
  				LOC166 = sonslen_295351_850551059(n0);
  				HEX3Atmp_355039_2569619629 = (NI)(LOC166 - ((NI) 1));
  				res_355042_2569619629 = ((NI) 0);
  				{
  					while (1) {
  						Tnode292802* a0;
  						if (!(res_355042_2569619629 <= HEX3Atmp_355039_2569619629)) goto LA168;
  						i_354876_2569619629 = res_355042_2569619629;
  						a0 = getconstexpr_353001_2569619629(m0, (*(*n0).kindU.S6.sons->data[i_354876_2569619629]).kindU.S6.sons->data[((NI) 1)]);
  						{
  							if (!(a0 == NIM_NIL)) goto LA171;
  							result0 = NIM_NIL;
  							goto BeforeRet;
  						}
  						LA171: ;
  						asgnRefNoCycle((void**) (&(*(*result0).kindU.S6.sons->data[i_354876_2569619629]).kindU.S6.sons->data[((NI) 1)]), a0);
  						res_355042_2569619629 += ((NI) 1);
  					} LA168: ;
  				}
  			}
  		}
  		goto LA158;
  		LA163: ;
  		{
  			{
  				NI i_354905_2569619629;
  				NI HEX3Atmp_355047_2569619629;
  				NI LOC175;
  				NI res_355050_2569619629;
  				i_354905_2569619629 = (NI)0;
  				HEX3Atmp_355047_2569619629 = (NI)0;
  				LOC175 = (NI)0;
  				LOC175 = sonslen_295351_850551059(n0);
  				HEX3Atmp_355047_2569619629 = (NI)(LOC175 - ((NI) 1));
  				res_355050_2569619629 = ((NI) 0);
  				{
  					while (1) {
  						Tnode292802* a0;
  						if (!(res_355050_2569619629 <= HEX3Atmp_355047_2569619629)) goto LA177;
  						i_354905_2569619629 = res_355050_2569619629;
  						a0 = getconstexpr_353001_2569619629(m0, (*n0).kindU.S6.sons->data[i_354905_2569619629]);
  						{
  							if (!(a0 == NIM_NIL)) goto LA180;
  							result0 = NIM_NIL;
  							goto BeforeRet;
  						}
  						LA180: ;
  						asgnRefNoCycle((void**) (&(*result0).kindU.S6.sons->data[i_354905_2569619629]), a0);
  						res_355050_2569619629 += ((NI) 1);
  					} LA177: ;
  				}
  			}
  		}
  		LA158: ;
  		(*result0).flags |= ((NU16)1)<<((((Tnodeflag292427) 4))%(sizeof(NU16)*8));
  	}
  	break;
  	case ((Tnodekind292020) 68):
  	case ((Tnodekind292020) 69):
  	case ((Tnodekind292020) 70):
  	{
  		Tnode292802* a0;
  		a0 = getconstexpr_353001_2569619629(m0, (*n0).kindU.S6.sons->data[((NI) 0)]);
  		{
  			if (!(a0 == NIM_NIL)) goto LA185;
  			goto BeforeRet;
  		}
  		LA185: ;
  		{
  			NIM_BOOL LOC189;
  			LOC189 = (NIM_BOOL)0;
  			LOC189 = levalueconv_353012_2569619629((*n0).kindU.S6.sons->data[((NI) 1)], a0);
  			if (!(LOC189)) goto LA190;
  			LOC189 = levalueconv_353012_2569619629(a0, (*n0).kindU.S6.sons->data[((NI) 2)]);
  			LA190: ;
  			if (!LOC189) goto LA191;
  			result0 = a0;
  			asgnRefNoCycle((void**) (&(*result0).typ), (*n0).typ);
  		}
  		goto LA187;
  		LA191: ;
  		{
  			NimStringDesc* LOC194;
  			TY193153 LOC195;
  			NimStringDesc* LOC196;
  			LOC194 = (NimStringDesc*)0;
  			LOC194 = msgkindtostring_192723_155036129(((Tmsgkind191002) 146));
  			memset((void*)LOC195, 0, sizeof(LOC195));
  			LOC195[0] = typetostring_320017_3876443242((*(*n0).kindU.S6.sons->data[((NI) 0)]).typ, ((Tprefereddesc320011) 0));
  			LOC195[1] = typetostring_320017_3876443242((*n0).typ, ((Tprefereddesc320011) 0));
  			LOC196 = (NimStringDesc*)0;
  			LOC196 = nsuFormatOpenArray(LOC194, LOC195, 2);
  			localerror_196080_155036129((*n0).info, ((Tmsgkind191002) 4), LOC196);
  		}
  		LA187: ;
  	}
  	break;
  	case ((Tnodekind292020) 71):
  	case ((Tnodekind292020) 72):
  	{
  		Tnode292802* a0;
  		a0 = getconstexpr_353001_2569619629(m0, (*n0).kindU.S6.sons->data[((NI) 0)]);
  		{
  			if (!(a0 == NIM_NIL)) goto LA200;
  			goto BeforeRet;
  		}
  		LA200: ;
  		result0 = a0;
  		asgnRefNoCycle((void**) (&(*result0).typ), (*n0).typ);
  	}
  	break;
  	case ((Tnodekind292020) 58):
  	case ((Tnodekind292020) 59):
  	case ((Tnodekind292020) 60):
  	{
  		Tnode292802* a0;
  		a0 = getconstexpr_353001_2569619629(m0, (*n0).kindU.S6.sons->data[((NI) 1)]);
  		{
  			if (!(a0 == NIM_NIL)) goto LA205;
  			goto BeforeRet;
  		}
  		LA205: ;
  		result0 = foldconv_354053_2569619629(n0, a0, ((*n0).kind == ((Tnodekind292020) 58)));
  	}
  	break;
  	case ((Tnodekind292020) 61):
  	{
  		Tnode292802* a0;
  		a0 = getconstexpr_353001_2569619629(m0, (*n0).kindU.S6.sons->data[((NI) 1)]);
  		{
  			if (!(a0 == NIM_NIL)) goto LA210;
  			goto BeforeRet;
  		}
  		LA210: ;
  		{
  			if (!((IL64(1125900835880960) &((NU64)1<<((NU)((*(*n0).typ).kind)&63U)))!=0)) goto LA214;
  			result0 = a0;
  			asgnRefNoCycle((void**) (&(*result0).typ), (*n0).typ);
  		}
  		LA214: ;
  	}
  	break;
  	case ((Tnodekind292020) 42):
  	{
  		result0 = foldarrayaccess_354098_2569619629(m0, n0);
  	}
  	break;
  	case ((Tnodekind292020) 45):
  	{
  		result0 = foldfieldaccess_354167_2569619629(m0, n0);
  	}
  	break;
  	default:
  	{
  	}
  	break;
  	}
  	}BeforeRet: ;
  	return result0;
  }
  
  static N_INLINE(NIM_BOOL, isintrange_353136_2569619629)(Ttype292840* t0) {
  	NIM_BOOL result0;
  	NIM_BOOL LOC1;
  	result0 = (NIM_BOOL)0;
  	LOC1 = (NIM_BOOL)0;
  	LOC1 = ((*t0).kind == ((Ttypekind292244) 20));
  	if (!(LOC1)) goto LA2;
  	LOC1 = ((IL64(15459734781952) &((NU64)1<<((NU)((*(*t0).sons->data[((NI) 0)]).kind)&63U)))!=0);
  	LA2: ;
  	result0 = LOC1;
  	return result0;
  }
  
  N_NIMCALL(Ttype292840*, makerange_353203_2569619629)(Ttype292840* typ0, NI64 first0, NI64 last0) {
  	Ttype292840* result0;
  	NI64 mina0;
  	NI64 maxa0;
  	Tnode292802* lowernode0;
  	result0 = (Ttype292840*)0;
  	mina0 = ((first0 <= last0) ? first0 : last0);
  	maxa0 = ((first0 >= last0) ? first0 : last0);
  	lowernode0 = newintnode_293659_850551059(((Tnodekind292020) 6), mina0);
  	{
  		NIM_BOOL LOC3;
  		LOC3 = (NIM_BOOL)0;
  		LOC3 = ((*typ0).kind == ((Ttypekind292244) 31));
  		if (!(LOC3)) goto LA4;
  		LOC3 = (mina0 == maxa0);
  		LA4: ;
  		if (!LOC3) goto LA5;
  		result0 = getintlittype_338627_3937434831(lowernode0);
  	}
  	goto LA1;
  	LA5: ;
  	{
  		if (!((IL64(18691697672192) &((NU64)1<<((NU)((*typ0).kind)&63U)))!=0)) goto LA8;
  		result0 = typ0;
  	}
  	goto LA1;
  	LA8: ;
  	{
  		Tnode292802* n0;
  		Tnode292802* LOC11;
  		Ttype292840* LOC12;
  		n0 = newnode_293401_850551059(((Tnodekind292020) 44));
  		addson_294807_850551059(n0, lowernode0);
  		LOC11 = (Tnode292802*)0;
  		LOC11 = newintnode_293659_850551059(((Tnodekind292020) 6), maxa0);
  		addson_294807_850551059(n0, LOC11);
  		result0 = newtype_295107_850551059(((Ttypekind292244) 20), (*typ0).owner);
  		asgnRefNoCycle((void**) (&(*result0).n), n0);
  		LOC12 = (Ttype292840*)0;
  		LOC12 = skiptypes_296099_850551059(typ0, 1048576);
  		addsonskipintlit_338680_3937434831(result0, LOC12);
  	}
  	LA1: ;
  	return result0;
  }
  
  static N_INLINE(NIM_BOOL, isfloatrange_353112_2569619629)(Ttype292840* t0) {
  	NIM_BOOL result0;
  	NIM_BOOL LOC1;
  	result0 = (NIM_BOOL)0;
  	LOC1 = (NIM_BOOL)0;
  	LOC1 = ((*t0).kind == ((Ttypekind292244) 20));
  	if (!(LOC1)) goto LA2;
  	LOC1 = ((IL64(1030792151040) &((NU64)1<<((NU)((*(*t0).sons->data[((NI) 0)]).kind)&63U)))!=0);
  	LA2: ;
  	result0 = LOC1;
  	return result0;
  }
  
  N_NIMCALL(Ttype292840*, makerangef_353242_2569619629)(Ttype292840* typ0, NF first0, NF last0) {
  	Ttype292840* result0;
  	Tnode292802* n0;
  	Tnode292802* LOC1;
  	Tnode292802* LOC2;
  	Ttype292840* LOC3;
  	result0 = (Ttype292840*)0;
  	n0 = newnode_293401_850551059(((Tnodekind292020) 44));
  	LOC1 = (Tnode292802*)0;
  	LOC1 = newfloatnode_293671_850551059(((Tnodekind292020) 16), ((first0 <= last0) ? first0 : last0));
  	addson_294807_850551059(n0, LOC1);
  	LOC2 = (Tnode292802*)0;
  	LOC2 = newfloatnode_293671_850551059(((Tnodekind292020) 16), ((first0 >= last0) ? first0 : last0));
  	addson_294807_850551059(n0, LOC2);
  	result0 = newtype_295107_850551059(((Ttypekind292244) 20), (*typ0).owner);
  	asgnRefNoCycle((void**) (&(*result0).n), n0);
  	LOC3 = (Ttype292840*)0;
  	LOC3 = skiptypes_296099_850551059(typ0, 1048576);
  	addsonskipintlit_338680_3937434831(result0, LOC3);
  	return result0;
  }
  
  static N_INLINE(NIM_BOOL, isintlit_320233_3876443242)(Ttype292840* t0) {
  	NIM_BOOL result0;
  	NIM_BOOL LOC1;
  	NIM_BOOL LOC2;
  	result0 = (NIM_BOOL)0;
  	LOC1 = (NIM_BOOL)0;
  	LOC2 = (NIM_BOOL)0;
  	LOC2 = ((*t0).kind == ((Ttypekind292244) 31));
  	if (!(LOC2)) goto LA3;
  	LOC2 = !(((*t0).n == NIM_NIL));
  	LA3: ;
  	LOC1 = LOC2;
  	if (!(LOC1)) goto LA4;
  	LOC1 = ((*(*t0).n).kind == ((Tnodekind292020) 6));
  	LA4: ;
  	result0 = LOC1;
  	return result0;
  }
  
  N_NIMCALL(NI64, pickminint_353169_2569619629)(Tnode292802* n0) {
  	NI64 result0;
  	result0 = (NI64)0;
  	{
  		if (!((*n0).kind >= ((Tnodekind292020) 6) && (*n0).kind <= ((Tnodekind292020) 15))) goto LA3;
  		result0 = (*n0).kindU.S1.intval;
  	}
  	goto LA1;
  	LA3: ;
  	{
  		NIM_BOOL LOC6;
  		LOC6 = (NIM_BOOL)0;
  		LOC6 = isintlit_320233_3876443242((*n0).typ);
  		if (!LOC6) goto LA7;
  		result0 = (*(*(*n0).typ).n).kindU.S1.intval;
  	}
  	goto LA1;
  	LA7: ;
  	{
  		NIM_BOOL LOC10;
  		LOC10 = (NIM_BOOL)0;
  		LOC10 = isintrange_353136_2569619629((*n0).typ);
  		if (!LOC10) goto LA11;
  		result0 = firstord_320001_3876443242((*n0).typ);
  	}
  	goto LA1;
  	LA11: ;
  	{
  		internalerror_196100_155036129((*n0).info, ((NimStringDesc*) &T2569619629_24));
  	}
  	LA1: ;
  	return result0;
  }
  
  N_NIMCALL(NI64, pickmaxint_353186_2569619629)(Tnode292802* n0) {
  	NI64 result0;
  	result0 = (NI64)0;
  	{
  		if (!((*n0).kind >= ((Tnodekind292020) 6) && (*n0).kind <= ((Tnodekind292020) 15))) goto LA3;
  		result0 = (*n0).kindU.S1.intval;
  	}
  	goto LA1;
  	LA3: ;
  	{
  		NIM_BOOL LOC6;
  		LOC6 = (NIM_BOOL)0;
  		LOC6 = isintlit_320233_3876443242((*n0).typ);
  		if (!LOC6) goto LA7;
  		result0 = (*(*(*n0).typ).n).kindU.S1.intval;
  	}
  	goto LA1;
  	LA7: ;
  	{
  		NIM_BOOL LOC10;
  		LOC10 = (NIM_BOOL)0;
  		LOC10 = isintrange_353136_2569619629((*n0).typ);
  		if (!LOC10) goto LA11;
  		result0 = lastord_320004_3876443242((*n0).typ);
  	}
  	goto LA1;
  	LA11: ;
  	{
  		internalerror_196100_155036129((*n0).info, ((NimStringDesc*) &T2569619629_25));
  	}
  	LA1: ;
  	return result0;
  }
  
  N_NIMCALL(NIM_BOOL, isintrangeorlit_353165_2569619629)(Ttype292840* t0) {
  	NIM_BOOL result0;
  	NIM_BOOL LOC1;
  	result0 = (NIM_BOOL)0;
  	LOC1 = (NIM_BOOL)0;
  	LOC1 = isintrange_353136_2569619629(t0);
  	if (LOC1) goto LA2;
  	LOC1 = isintlit_320233_3876443242(t0);
  	LA2: ;
  	result0 = LOC1;
  	return result0;
  }
  
  N_NIMCALL(Ttype292840*, pickintrange_353160_2569619629)(Ttype292840* a0, Ttype292840* b0) {
  	Ttype292840* result0;
  	result0 = (Ttype292840*)0;
  	{
  		NIM_BOOL LOC3;
  		LOC3 = (NIM_BOOL)0;
  		LOC3 = isintrange_353136_2569619629(a0);
  		if (!LOC3) goto LA4;
  		result0 = a0;
  	}
  	goto LA1;
  	LA4: ;
  	{
  		NIM_BOOL LOC7;
  		LOC7 = (NIM_BOOL)0;
  		LOC7 = isintrange_353136_2569619629(b0);
  		if (!LOC7) goto LA8;
  		result0 = b0;
  	}
  	goto LA1;
  	LA8: ;
  	{
  		result0 = a0;
  	}
  	LA1: ;
  	return result0;
  }
  
  N_NIMCALL(Ttype292840*, getintervaltype_353262_2569619629)(Tmagic292524 m0, Tnode292802* n0) {
  	Ttype292840* result0;
  	result0 = (Ttype292840*)0;
  	result0 = (*n0).typ;
  	switch (m0) {
  	case ((Tmagic292524) 96):
  	case ((Tmagic292524) 97):
  	{
  		Ttype292840* a0;
  		a0 = (*(*n0).kindU.S6.sons->data[((NI) 1)]).typ;
  		{
  			NIM_BOOL LOC4;
  			NI64 LOC7;
  			NI64 LOC8;
  			NI64 LOC9;
  			NI64 LOC10;
  			LOC4 = (NIM_BOOL)0;
  			LOC4 = isintrange_353136_2569619629(a0);
  			if (!LOC4) goto LA5;
  			LOC7 = (NI64)0;
  			LOC7 = lastord_320004_3876443242(a0);
  			LOC8 = (NI64)0;
  			LOC8 = HEX7CHEX2DHEX7C_352009_3178507870(IL64(0), LOC7);
  			LOC9 = (NI64)0;
  			LOC9 = firstord_320001_3876443242(a0);
  			LOC10 = (NI64)0;
  			LOC10 = HEX7CHEX2DHEX7C_352009_3178507870(IL64(0), LOC9);
  			result0 = makerange_353203_2569619629(a0, LOC8, LOC10);
  		}
  		LA5: ;
  	}
  	break;
  	case ((Tmagic292524) 103):
  	{
  		Ttype292840* a0;
  		a0 = (*(*n0).kindU.S6.sons->data[((NI) 1)]).typ;
  		{
  			NIM_BOOL LOC14;
  			NF LOC17;
  			NF LOC18;
  			LOC14 = (NIM_BOOL)0;
  			LOC14 = isfloatrange_353112_2569619629(a0);
  			if (!LOC14) goto LA15;
  			LOC17 = (NF)0;
  			LOC17 = getfloat_297225_850551059((*(*a0).n).kindU.S6.sons->data[((NI) 1)]);
  			LOC18 = (NF)0;
  			LOC18 = getfloat_297225_850551059((*(*a0).n).kindU.S6.sons->data[((NI) 0)]);
  			result0 = makerangef_353242_2569619629(a0, -(LOC17), -(LOC18));
  		}
  		LA15: ;
  	}
  	break;
  	case ((Tmagic292524) 104):
  	{
  		Ttype292840* a0;
  		a0 = (*(*n0).kindU.S6.sons->data[((NI) 1)]).typ;
  		{
  			NIM_BOOL LOC22;
  			LOC22 = (NIM_BOOL)0;
  			LOC22 = isfloatrange_353112_2569619629(a0);
  			if (!LOC22) goto LA23;
  			{
  				Tnode292802* LOC27;
  				NF LOC30;
  				LOC27 = (Tnode292802*)0;
  				LOC27 = HEX5BHEX5D_293238_850551059((*a0).n, ((NI) 0));
  				if (!((*LOC27).kindU.S2.floatval <= 0.0)) goto LA28;
  				LOC30 = (NF)0;
  				LOC30 = getfloat_297225_850551059((*(*a0).n).kindU.S6.sons->data[((NI) 0)]);
  				result0 = makerangef_353242_2569619629(a0, 0.0, (LOC30 > 0? (LOC30) : -(LOC30)));
  			}
  			goto LA25;
  			LA28: ;
  			{
  				NF LOC32;
  				NF LOC33;
  				LOC32 = (NF)0;
  				LOC32 = getfloat_297225_850551059((*(*a0).n).kindU.S6.sons->data[((NI) 1)]);
  				LOC33 = (NF)0;
  				LOC33 = getfloat_297225_850551059((*(*a0).n).kindU.S6.sons->data[((NI) 0)]);
  				result0 = makerangef_353242_2569619629(a0, (LOC32 > 0? (LOC32) : -(LOC32)), (LOC33 > 0? (LOC33) : -(LOC33)));
  			}
  			LA25: ;
  		}
  		LA23: ;
  	}
  	break;
  	case ((Tmagic292524) 98):
  	{
  		Ttype292840* a0;
  		a0 = (*(*n0).kindU.S6.sons->data[((NI) 1)]).typ;
  		{
  			NIM_BOOL LOC37;
  			LOC37 = (NIM_BOOL)0;
  			LOC37 = isintrange_353136_2569619629(a0);
  			if (!LOC37) goto LA38;
  			{
  				Tnode292802* LOC42;
  				NI64 LOC45;
  				NI64 LOC46;
  				LOC42 = (Tnode292802*)0;
  				LOC42 = HEX5BHEX5D_293238_850551059((*a0).n, ((NI) 0));
  				if (!((*LOC42).kindU.S1.intval <= IL64(0))) goto LA43;
  				LOC45 = (NI64)0;
  				LOC45 = getint_297220_850551059((*(*a0).n).kindU.S6.sons->data[((NI) 0)]);
  				LOC46 = (NI64)0;
  				LOC46 = HEX7CabsHEX7C_352014_3178507870(LOC45);
  				result0 = makerange_353203_2569619629(a0, IL64(0), LOC46);
  			}
  			goto LA40;
  			LA43: ;
  			{
  				NI64 LOC48;
  				NI64 LOC49;
  				NI64 LOC50;
  				NI64 LOC51;
  				LOC48 = (NI64)0;
  				LOC48 = getint_297220_850551059((*(*a0).n).kindU.S6.sons->data[((NI) 1)]);
  				LOC49 = (NI64)0;
  				LOC49 = HEX7CabsHEX7C_352014_3178507870(LOC48);
  				LOC50 = (NI64)0;
  				LOC50 = getint_297220_850551059((*(*a0).n).kindU.S6.sons->data[((NI) 0)]);
  				LOC51 = (NI64)0;
  				LOC51 = HEX7CabsHEX7C_352014_3178507870(LOC50);
  				result0 = makerange_353203_2569619629(a0, LOC49, LOC51);
  			}
  			LA40: ;
  		}
  		LA38: ;
  	}
  	break;
  	case ((Tmagic292524) 50):
  	{
  		Ttype292840* a0;
  		Ttype292840* b0;
  		a0 = (*(*n0).kindU.S6.sons->data[((NI) 1)]).typ;
  		b0 = (*(*n0).kindU.S6.sons->data[((NI) 2)]).typ;
  		{
  			NIM_BOOL LOC55;
  			NI64 LOC59;
  			NI64 LOC60;
  			NI64 LOC61;
  			NI64 LOC62;
  			NI64 LOC63;
  			NI64 LOC64;
  			LOC55 = (NIM_BOOL)0;
  			LOC55 = isintrange_353136_2569619629(a0);
  			if (!(LOC55)) goto LA56;
  			LOC55 = isintlit_320233_3876443242(b0);
  			LA56: ;
  			if (!LOC55) goto LA57;
  			LOC59 = (NI64)0;
  			LOC59 = pickminint_353169_2569619629((*n0).kindU.S6.sons->data[((NI) 1)]);
  			LOC60 = (NI64)0;
  			LOC60 = pickminint_353169_2569619629((*n0).kindU.S6.sons->data[((NI) 2)]);
  			LOC61 = (NI64)0;
  			LOC61 = HEX7CHEX2BHEX7C_352004_3178507870(LOC59, LOC60);
  			LOC62 = (NI64)0;
  			LOC62 = pickmaxint_353186_2569619629((*n0).kindU.S6.sons->data[((NI) 1)]);
  			LOC63 = (NI64)0;
  			LOC63 = pickmaxint_353186_2569619629((*n0).kindU.S6.sons->data[((NI) 2)]);
  			LOC64 = (NI64)0;
  			LOC64 = HEX7CHEX2BHEX7C_352004_3178507870(LOC62, LOC63);
  			result0 = makerange_353203_2569619629(a0, LOC61, LOC64);
  		}
  		LA57: ;
  	}
  	break;
  	case ((Tmagic292524) 51):
  	{
  		Ttype292840* a0;
  		Ttype292840* b0;
  		a0 = (*(*n0).kindU.S6.sons->data[((NI) 1)]).typ;
  		b0 = (*(*n0).kindU.S6.sons->data[((NI) 2)]).typ;
  		{
  			NIM_BOOL LOC68;
  			NI64 LOC72;
  			NI64 LOC73;
  			NI64 LOC74;
  			NI64 LOC75;
  			NI64 LOC76;
  			NI64 LOC77;
  			LOC68 = (NIM_BOOL)0;
  			LOC68 = isintrange_353136_2569619629(a0);
  			if (!(LOC68)) goto LA69;
  			LOC68 = isintlit_320233_3876443242(b0);
  			LA69: ;
  			if (!LOC68) goto LA70;
  			LOC72 = (NI64)0;
  			LOC72 = pickminint_353169_2569619629((*n0).kindU.S6.sons->data[((NI) 1)]);
  			LOC73 = (NI64)0;
  			LOC73 = pickminint_353169_2569619629((*n0).kindU.S6.sons->data[((NI) 2)]);
  			LOC74 = (NI64)0;
  			LOC74 = HEX7CHEX2DHEX7C_352009_3178507870(LOC72, LOC73);
  			LOC75 = (NI64)0;
  			LOC75 = pickmaxint_353186_2569619629((*n0).kindU.S6.sons->data[((NI) 1)]);
  			LOC76 = (NI64)0;
  			LOC76 = pickmaxint_353186_2569619629((*n0).kindU.S6.sons->data[((NI) 2)]);
  			LOC77 = (NI64)0;
  			LOC77 = HEX7CHEX2DHEX7C_352009_3178507870(LOC75, LOC76);
  			result0 = makerange_353203_2569619629(a0, LOC74, LOC77);
  		}
  		LA70: ;
  	}
  	break;
  	case ((Tmagic292524) 45):
  	case ((Tmagic292524) 65):
  	{
  		Tnode292802* a_353323_2569619629;
  		Tnode292802* b_353325_2569619629;
  		a_353323_2569619629 = (*n0).kindU.S6.sons->data[((NI) 1)];
  		b_353325_2569619629 = (*n0).kindU.S6.sons->data[((NI) 2)];
  		{
  			NIM_BOOL LOC81;
  			Ttype292840* LOC85;
  			NI64 LOC86;
  			NI64 LOC87;
  			NI64 LOC88;
  			NI64 LOC89;
  			NI64 LOC90;
  			NI64 LOC91;
  			LOC81 = (NIM_BOOL)0;
  			LOC81 = isintrangeorlit_353165_2569619629((*a_353323_2569619629).typ);
  			if (!(LOC81)) goto LA82;
  			LOC81 = isintrangeorlit_353165_2569619629((*b_353325_2569619629).typ);
  			LA82: ;
  			if (!LOC81) goto LA83;
  			LOC85 = (Ttype292840*)0;
  			LOC85 = pickintrange_353160_2569619629((*a_353323_2569619629).typ, (*b_353325_2569619629).typ);
  			LOC86 = (NI64)0;
  			LOC86 = pickminint_353169_2569619629(a_353323_2569619629);
  			LOC87 = (NI64)0;
  			LOC87 = pickminint_353169_2569619629(b_353325_2569619629);
  			LOC88 = (NI64)0;
  			LOC88 = HEX7CHEX2BHEX7C_352004_3178507870(LOC86, LOC87);
  			LOC89 = (NI64)0;
  			LOC89 = pickmaxint_353186_2569619629(a_353323_2569619629);
  			LOC90 = (NI64)0;
  			LOC90 = pickmaxint_353186_2569619629(b_353325_2569619629);
  			LOC91 = (NI64)0;
  			LOC91 = HEX7CHEX2BHEX7C_352004_3178507870(LOC89, LOC90);
  			result0 = makerange_353203_2569619629(LOC85, LOC88, LOC91);
  		}
  		LA83: ;
  	}
  	break;
  	case ((Tmagic292524) 47):
  	case ((Tmagic292524) 67):
  	{
  		Tnode292802* a_353329_2569619629;
  		Tnode292802* b_353331_2569619629;
  		a_353329_2569619629 = (*n0).kindU.S6.sons->data[((NI) 1)];
  		b_353331_2569619629 = (*n0).kindU.S6.sons->data[((NI) 2)];
  		{
  			NIM_BOOL LOC95;
  			Ttype292840* LOC99;
  			NI64 LOC100;
  			NI64 LOC101;
  			NI64 LOC102;
  			NI64 LOC103;
  			NI64 LOC104;
  			NI64 LOC105;
  			LOC95 = (NIM_BOOL)0;
  			LOC95 = isintrangeorlit_353165_2569619629((*a_353329_2569619629).typ);
  			if (!(LOC95)) goto LA96;
  			LOC95 = isintrangeorlit_353165_2569619629((*b_353331_2569619629).typ);
  			LA96: ;
  			if (!LOC95) goto LA97;
  			LOC99 = (Ttype292840*)0;
  			LOC99 = pickintrange_353160_2569619629((*a_353329_2569619629).typ, (*b_353331_2569619629).typ);
  			LOC100 = (NI64)0;
  			LOC100 = pickminint_353169_2569619629(a_353329_2569619629);
  			LOC101 = (NI64)0;
  			LOC101 = pickminint_353169_2569619629(b_353331_2569619629);
  			LOC102 = (NI64)0;
  			LOC102 = HEX7CHEX2AHEX7C_352028_3178507870(LOC100, LOC101);
  			LOC103 = (NI64)0;
  			LOC103 = pickmaxint_353186_2569619629(a_353329_2569619629);
  			LOC104 = (NI64)0;
  			LOC104 = pickmaxint_353186_2569619629(b_353331_2569619629);
  			LOC105 = (NI64)0;
  			LOC105 = HEX7CHEX2AHEX7C_352028_3178507870(LOC103, LOC104);
  			result0 = makerange_353203_2569619629(LOC99, LOC102, LOC105);
  		}
  		LA97: ;
  	}
  	break;
  	case ((Tmagic292524) 46):
  	case ((Tmagic292524) 66):
  	{
  		Tnode292802* a_353335_2569619629;
  		Tnode292802* b_353337_2569619629;
  		a_353335_2569619629 = (*n0).kindU.S6.sons->data[((NI) 1)];
  		b_353337_2569619629 = (*n0).kindU.S6.sons->data[((NI) 2)];
  		{
  			NIM_BOOL LOC109;
  			NI64 LOC113;
  			NI64 LOC114;
  			NI64 LOC115;
  			NI64 LOC116;
  			NI64 LOC117;
  			NI64 LOC118;
  			LOC109 = (NIM_BOOL)0;
  			LOC109 = isintrange_353136_2569619629((*a_353335_2569619629).typ);
  			if (!(LOC109)) goto LA110;
  			LOC109 = ((*b_353337_2569619629).kind >= ((Tnodekind292020) 6) && (*b_353337_2569619629).kind <= ((Tnodekind292020) 15));
  			LA110: ;
  			if (!LOC109) goto LA111;
  			LOC113 = (NI64)0;
  			LOC113 = pickminint_353169_2569619629(a_353335_2569619629);
  			LOC114 = (NI64)0;
  			LOC114 = pickminint_353169_2569619629(b_353337_2569619629);
  			LOC115 = (NI64)0;
  			LOC115 = HEX7CHEX2DHEX7C_352009_3178507870(LOC113, LOC114);
  			LOC116 = (NI64)0;
  			LOC116 = pickmaxint_353186_2569619629(a_353335_2569619629);
  			LOC117 = (NI64)0;
  			LOC117 = pickmaxint_353186_2569619629(b_353337_2569619629);
  			LOC118 = (NI64)0;
  			LOC118 = HEX7CHEX2DHEX7C_352009_3178507870(LOC116, LOC117);
  			result0 = makerange_353203_2569619629((*a_353335_2569619629).typ, LOC115, LOC118);
  		}
  		LA111: ;
  	}
  	break;
  	case ((Tmagic292524) 58):
  	{
  		Tnode292802* a0;
  		Tnode292802* b0;
  		a0 = (*n0).kindU.S6.sons->data[((NI) 1)];
  		b0 = (*n0).kindU.S6.sons->data[((NI) 2)];
  		{
  			Tnode292802* LOC124;
  			if (!!(((*b0).kind >= ((Tnodekind292020) 6) && (*b0).kind <= ((Tnodekind292020) 15)))) goto LA122;
  			LOC124 = (Tnode292802*)0;
  			LOC124 = a0;
  			a0 = b0;
  			b0 = LOC124;
  		}
  		LA122: ;
  		{
  			NI64 x0;
  			if (!((*b0).kind >= ((Tnodekind292020) 6) && (*b0).kind <= ((Tnodekind292020) 15))) goto LA127;
  			x0 = HEX7CHEX2BHEX7C_352004_3178507870((*b0).kindU.S1.intval, IL64(1));
  			{
  				NIM_BOOL LOC131;
  				LOC131 = (NIM_BOOL)0;
  				LOC131 = ((NI64)(x0 & -(x0)) == x0);
  				if (!(LOC131)) goto LA132;
  				LOC131 = (IL64(0) <= x0);
  				LA132: ;
  				if (!LOC131) goto LA133;
  				result0 = makerange_353203_2569619629((*a0).typ, IL64(0), (*b0).kindU.S1.intval);
  			}
  			LA133: ;
  		}
  		LA127: ;
  	}
  	break;
  	case ((Tmagic292524) 69):
  	{
  		Tnode292802* a0;
  		Tnode292802* b0;
  		a0 = (*n0).kindU.S6.sons->data[((NI) 1)];
  		b0 = (*n0).kindU.S6.sons->data[((NI) 2)];
  		{
  			if (!((*a0).kind >= ((Tnodekind292020) 6) && (*a0).kind <= ((Tnodekind292020) 15))) goto LA138;
  			{
  				if (!(IL64(0) <= (*b0).kindU.S1.intval)) goto LA142;
  				result0 = makerange_353203_2569619629((*a0).typ, IL64(0), (NI64)((*b0).kindU.S1.intval - IL64(1)));
  			}
  			goto LA140;
  			LA142: ;
  			{
  				result0 = makerange_353203_2569619629((*a0).typ, (NI64)((*b0).kindU.S1.intval + IL64(1)), IL64(0));
  			}
  			LA140: ;
  		}
  		LA138: ;
  	}
  	break;
  	case ((Tmagic292524) 49):
  	{
  		Tnode292802* a0;
  		Tnode292802* b0;
  		a0 = (*n0).kindU.S6.sons->data[((NI) 1)];
  		b0 = (*n0).kindU.S6.sons->data[((NI) 2)];
  		{
  			if (!((*b0).kind >= ((Tnodekind292020) 6) && (*b0).kind <= ((Tnodekind292020) 15))) goto LA148;
  			{
  				if (!(IL64(0) <= (*b0).kindU.S1.intval)) goto LA152;
  				result0 = makerange_353203_2569619629((*a0).typ, -((NI64)((*b0).kindU.S1.intval - IL64(1))), (NI64)((*b0).kindU.S1.intval - IL64(1)));
  			}
  			goto LA150;
  			LA152: ;
  			{
  				result0 = makerange_353203_2569619629((*a0).typ, (NI64)((*b0).kindU.S1.intval + IL64(1)), -((NI64)((*b0).kindU.S1.intval + IL64(1))));
  			}
  			LA150: ;
  		}
  		LA148: ;
  	}
  	break;
  	case ((Tmagic292524) 48):
  	case ((Tmagic292524) 68):
  	{
  		Tnode292802* a_353426_2569619629;
  		Tnode292802* b_353428_2569619629;
  		a_353426_2569619629 = (*n0).kindU.S6.sons->data[((NI) 1)];
  		b_353428_2569619629 = (*n0).kindU.S6.sons->data[((NI) 2)];
  		{
  			NIM_BOOL LOC158;
  			NI64 LOC162;
  			NI64 LOC163;
  			NI64 LOC164;
  			NI64 LOC165;
  			NI64 LOC166;
  			NI64 LOC167;
  			LOC158 = (NIM_BOOL)0;
  			LOC158 = isintrange_353136_2569619629((*a_353426_2569619629).typ);
  			if (!(LOC158)) goto LA159;
  			LOC158 = ((*b_353428_2569619629).kind >= ((Tnodekind292020) 6) && (*b_353428_2569619629).kind <= ((Tnodekind292020) 15));
  			LA159: ;
  			if (!LOC158) goto LA160;
  			LOC162 = (NI64)0;
  			LOC162 = pickminint_353169_2569619629(a_353426_2569619629);
  			LOC163 = (NI64)0;
  			LOC163 = pickminint_353169_2569619629(b_353428_2569619629);
  			LOC164 = (NI64)0;
  			LOC164 = HEX7CdivHEX7C_352018_3178507870(LOC162, LOC163);
  			LOC165 = (NI64)0;
  			LOC165 = pickmaxint_353186_2569619629(a_353426_2569619629);
  			LOC166 = (NI64)0;
  			LOC166 = pickmaxint_353186_2569619629(b_353428_2569619629);
  			LOC167 = (NI64)0;
  			LOC167 = HEX7CdivHEX7C_352018_3178507870(LOC165, LOC166);
  			result0 = makerange_353203_2569619629((*a_353426_2569619629).typ, LOC164, LOC167);
  		}
  		LA160: ;
  	}
  	break;
  	case ((Tmagic292524) 61):
  	{
  		Tnode292802* a_353443_2569619629;
  		Tnode292802* b_353445_2569619629;
  		a_353443_2569619629 = (*n0).kindU.S6.sons->data[((NI) 1)];
  		b_353445_2569619629 = (*n0).kindU.S6.sons->data[((NI) 2)];
  		{
  			NIM_BOOL LOC171;
  			Ttype292840* LOC175;
  			NI64 LOC176;
  			NI64 LOC177;
  			NI64 LOC178;
  			NI64 LOC179;
  			LOC171 = (NIM_BOOL)0;
  			LOC171 = isintrangeorlit_353165_2569619629((*a_353443_2569619629).typ);
  			if (!(LOC171)) goto LA172;
  			LOC171 = isintrangeorlit_353165_2569619629((*b_353445_2569619629).typ);
  			LA172: ;
  			if (!LOC171) goto LA173;
  			LOC175 = (Ttype292840*)0;
  			LOC175 = pickintrange_353160_2569619629((*a_353443_2569619629).typ, (*b_353445_2569619629).typ);
  			LOC176 = (NI64)0;
  			LOC176 = pickminint_353169_2569619629(a_353443_2569619629);
  			LOC177 = (NI64)0;
  			LOC177 = pickminint_353169_2569619629(b_353445_2569619629);
  			LOC178 = (NI64)0;
  			LOC178 = pickmaxint_353186_2569619629(a_353443_2569619629);
  			LOC179 = (NI64)0;
  			LOC179 = pickmaxint_353186_2569619629(b_353445_2569619629);
  			result0 = makerange_353203_2569619629(LOC175, ((LOC176 <= LOC177) ? LOC176 : LOC177), ((LOC178 <= LOC179) ? LOC178 : LOC179));
  		}
  		LA173: ;
  	}
  	break;
  	case ((Tmagic292524) 62):
  	{
  		Tnode292802* a_353457_2569619629;
  		Tnode292802* b_353459_2569619629;
  		a_353457_2569619629 = (*n0).kindU.S6.sons->data[((NI) 1)];
  		b_353459_2569619629 = (*n0).kindU.S6.sons->data[((NI) 2)];
  		{
  			NIM_BOOL LOC183;
  			Ttype292840* LOC187;
  			NI64 LOC188;
  			NI64 LOC189;
  			NI64 LOC190;
  			NI64 LOC191;
  			LOC183 = (NIM_BOOL)0;
  			LOC183 = isintrangeorlit_353165_2569619629((*a_353457_2569619629).typ);
  			if (!(LOC183)) goto LA184;
  			LOC183 = isintrangeorlit_353165_2569619629((*b_353459_2569619629).typ);
  			LA184: ;
  			if (!LOC183) goto LA185;
  			LOC187 = (Ttype292840*)0;
  			LOC187 = pickintrange_353160_2569619629((*a_353457_2569619629).typ, (*b_353459_2569619629).typ);
  			LOC188 = (NI64)0;
  			LOC188 = pickminint_353169_2569619629(a_353457_2569619629);
  			LOC189 = (NI64)0;
  			LOC189 = pickminint_353169_2569619629(b_353459_2569619629);
  			LOC190 = (NI64)0;
  			LOC190 = pickmaxint_353186_2569619629(a_353457_2569619629);
  			LOC191 = (NI64)0;
  			LOC191 = pickmaxint_353186_2569619629(b_353459_2569619629);
  			result0 = makerange_353203_2569619629(LOC187, ((LOC188 >= LOC189) ? LOC188 : LOC189), ((LOC190 >= LOC191) ? LOC190 : LOC191));
  		}
  		LA185: ;
  	}
  	break;
  	default:
  	{
  	}
  	break;
  	}
  	return result0;
  }
  NIM_EXTERNC N_NOINLINE(void, compiler_semfoldInit000)(void) {
  }
  
  NIM_EXTERNC N_NOINLINE(void, compiler_semfoldDatInit000)(void) {
  }
  
  