text: /* Generated by Nim Compiler v0.15.0 */
  /*   (c) 2016 Andreas Rumpf */
  /* The generated code is subject to the original license. */
  #define NIM_INTBITS 32
  
  #include "nimbase.h"
  #include <string.h>
  #include <setjmp.h>
  #include <dirent.h>
  #include <sys/types.h>
  #include <sys/stat.h>
  #include <time.h>
  #include <unistd.h>
  #include <stdio.h>
  typedef struct NimStringDesc NimStringDesc;
  typedef struct TGenericSeq TGenericSeq;
  typedef struct Tnode294802 Tnode294802;
  typedef struct Tsym294834 Tsym294834;
  typedef struct Tpass343014 Tpass343014;
  typedef struct Tpasscontext343002 Tpasscontext343002;
  typedef struct Trodreader334021 Trodreader334021;
  typedef struct Tlinkedlist148013 Tlinkedlist148013;
  typedef struct Tlistentry148007 Tlistentry148007;
  typedef struct Tidobj201004 Tidobj201004;
  typedef struct TNimObject TNimObject;
  typedef struct TNimType TNimType;
  typedef struct TNimNode TNimNode;
  typedef struct Ttypeseq294836 Ttypeseq294836;
  typedef struct TY294929 TY294929;
  typedef struct Tstrtable294806 Tstrtable294806;
  typedef struct Tsymseq294804 Tsymseq294804;
  typedef struct Ttype294840 Ttype294840;
  typedef struct Tident201010 Tident201010;
  typedef struct Tlineinfo193336 Tlineinfo193336;
  typedef struct Tloc294816 Tloc294816;
  typedef struct Ropeobj180006 Ropeobj180006;
  typedef struct Tlib294820 Tlib294820;
  typedef struct Tctx345035 Tctx345035;
  typedef struct TY599197 TY599197;
  typedef struct TY345241 TY345241;
  typedef struct TY194086 TY194086;
  typedef struct PprocHEX3Aobjecttype345220 PprocHEX3Aobjecttype345220;
  typedef struct TY345260 TY345260;
  typedef struct TY129506 TY129506;
  typedef struct Cell47304 Cell47304;
  typedef struct Cellseq47320 Cellseq47320;
  typedef struct Gcheap49818 Gcheap49818;
  typedef struct Gcstack49816 Gcstack49816;
  typedef struct Memregion29485 Memregion29485;
  typedef struct Smallchunk29439 Smallchunk29439;
  typedef struct Llchunk29479 Llchunk29479;
  typedef struct Bigchunk29441 Bigchunk29441;
  typedef struct Intset29414 Intset29414;
  typedef struct Trunk29410 Trunk29410;
  typedef struct Avlnode29483 Avlnode29483;
  typedef struct Gcstat49814 Gcstat49814;
  typedef struct Cellset47316 Cellset47316;
  typedef struct Pagedesc47312 Pagedesc47312;
  typedef struct Vmargs345029 Vmargs345029;
  typedef struct Exception Exception;
  typedef struct TSafePoint TSafePoint;
  typedef struct TY136002 TY136002;
  typedef struct Stringtableobj153608 Stringtableobj153608;
  typedef struct Tllstream284204 Tllstream284204;
  typedef struct Tnodeseq294796 Tnodeseq294796;
  typedef struct TY334033 TY334033;
  typedef struct Tindex334019 Tindex334019;
  typedef struct Tiitable301142 Tiitable301142;
  typedef struct Tiipairseq301140 Tiipairseq301140;
  typedef struct Table334054 Table334054;
  typedef struct Keyvaluepairseq334057 Keyvaluepairseq334057;
  typedef struct Memfile332202 Memfile332202;
  typedef struct Tinstantiation294824 Tinstantiation294824;
  typedef struct TY294960 TY294960;
  typedef struct TY345221 TY345221;
  typedef struct TY345226 TY345226;
  typedef struct TY345261 TY345261;
  typedef struct Basechunk29437 Basechunk29437;
  typedef struct Freecell29429 Freecell29429;
  typedef struct Keyvaluepairseq153606 Keyvaluepairseq153606;
  typedef struct Tiipair301138 Tiipair301138;
  typedef struct Keyvaluepair334060 Keyvaluepair334060;
  typedef struct TY294961 TY294961;
  typedef struct Tblock345017 Tblock345017;
  typedef struct TY345201 TY345201;
  typedef struct Keyvaluepair153604 Keyvaluepair153604;
  struct  TGenericSeq  {
  NI len;
  NI reserved;
  };
  struct  NimStringDesc  {
    TGenericSeq Sup;
  NIM_CHAR data[SEQ_DECL_SIZE];
  };
  typedef N_NIMCALL_PTR(Tnode294802*, TY343074) (Tsym294834* m0, NI32 fileidx0);
  typedef N_NIMCALL_PTR(Tsym294834*, TY343069) (Tsym294834* m0, NI32 fileidx0);
  typedef N_NIMCALL_PTR(Tpasscontext343002*, Tpassopen343006) (Tsym294834* module0);
  typedef N_NIMCALL_PTR(Tpasscontext343002*, Tpassopencached343008) (Tsym294834* module0, Trodreader334021* rd0);
  typedef N_NIMCALL_PTR(Tnode294802*, Tpassprocess343012) (Tpasscontext343002* p0, Tnode294802* toplevelstmt0);
  typedef N_NIMCALL_PTR(Tnode294802*, Tpassclose343010) (Tpasscontext343002* p0, Tnode294802* n0);
  struct Tpass343014 {
  Tpassopen343006 Field0;
  Tpassopencached343008 Field1;
  Tpassprocess343012 Field2;
  Tpassclose343010 Field3;
  };
  struct  Tlinkedlist148013  {
  Tlistentry148007* head;
  Tlistentry148007* tail;
  NI counter;
  };
  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  Tidobj201004  {
    TNimObject Sup;
  NI id;
  };
  typedef NU8 Tsymkind294435;
  struct  Tstrtable294806  {
  NI counter;
  Tsymseq294804* data;
  };
  typedef NU16 Tmagic294524;
  struct  Tlineinfo193336  {
  NI16 line;
  NI16 col;
  NI32 fileindex;
  };
  typedef NU32 Tsymflag294184Set;
  typedef NU32 Toption171009Set;
  typedef NU8 Tlockind294808;
  typedef NU8 Tstorageloc294812;
  typedef NU16 Tlocflag294810Set;
  struct  Tloc294816  {
  Tlockind294808 k;
  Tstorageloc294812 s;
  Tlocflag294810Set flags;
  Ttype294840* t;
  Ropeobj180006* r;
  };
  struct  Tsym294834  {
    Tidobj201004 Sup;
  Tsymkind294435 kind;
  union{
  struct {Ttypeseq294836* typeinstcache;
  } S1;
  struct {TY294929* procinstcache;
  Tsym294834* gcunsafetyreason;
  } S2;
  struct {TY294929* usedgenerics;
  Tstrtable294806 tab;
  } S3;
  struct {Tsym294834* guard;
  NI bitsize;
  } S4;
  } kindU;
  Tmagic294524 magic;
  Ttype294840* typ;
  Tident201010* name;
  Tlineinfo193336 info;
  Tsym294834* owner;
  Tsymflag294184Set flags;
  Tnode294802* ast;
  Toption171009Set options;
  NI position;
  NI offset;
  Tloc294816 loc;
  Tlib294820* annex;
  Tnode294802* constraint;
  };
  typedef NU8 Tsymflag294184;
  struct  TY599197  {
  NI HEX3Astate;
  NimStringDesc* errormsg599079;
  NimStringDesc* vthisdir599080;
  };
  typedef NU8 Tnimnodekind3405;
  struct  TNimNode  {
  Tnimnodekind3405 kind;
  NI offset;
  TNimType* typ;
  NCSTRING name;
  NI len;
  TNimNode** sons;
  };
  struct  Tpasscontext343002  {
    TNimObject Sup;
  NIM_BOOL fromcache;
  };
  typedef NU8 Tevalmode345019;
  typedef NU8 Tsandboxflag345021Set;
  struct  Tctx345035  {
    Tpasscontext343002 Sup;
  TY345241* code;
  TY194086* debug;
  Tnode294802* globals;
  Tnode294802* constants;
  Ttypeseq294836* types;
  Tnode294802* currentexceptiona;
  Tnode294802* currentexceptionb;
  NI exceptioninstr;
  PprocHEX3Aobjecttype345220* prc;
  Tsym294834* module;
  Tnode294802* callsite;
  Tevalmode345019 mode;
  Tsandboxflag345021Set features;
  NIM_BOOL traceactive;
  NI loopiterations;
  Tlineinfo193336 comesfromheuristic;
  TY345260* callbacks;
  NimStringDesc* errorflag;
  };
  struct TY129506 {
  NimStringDesc* Field0;
  NimStringDesc* Field1;
  NimStringDesc* Field2;
  };
  struct  Cell47304  {
  NI refcount;
  TNimType* typ;
  };
  struct  Cellseq47320  {
  NI len;
  NI cap;
  Cell47304** d;
  };
  typedef Smallchunk29439* TY29500[512];
  typedef Trunk29410* Trunkbuckets29412[256];
  struct  Intset29414  {
  Trunkbuckets29412 data;
  };
  struct  Memregion29485  {
  NI minlargeobj;
  NI maxlargeobj;
  TY29500 freesmallchunks;
  Llchunk29479* llmem;
  NI currmem;
  NI maxmem;
  NI freemem;
  NI lastsize;
  Bigchunk29441* freechunkslist;
  Intset29414 chunkstarts;
  Avlnode29483* root;
  Avlnode29483* deleted;
  Avlnode29483* last;
  Avlnode29483* 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;
  Memregion29485 region;
  Gcstat49814 stat;
  Cellset47316 marked;
  Cellseq47320 additionalroots;
  };
  typedef struct {
  N_NIMCALL_PTR(void, ClPrc) (Vmargs345029* args0, void* ClEnv);
  void* ClEnv;
  } Vmcallback345031;
  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 NU8 Pathcomponent138212Set;
  typedef NU8 Pathcomponent138212;
  typedef NIM_CHAR TY120773[256];
  typedef N_CLOSURE_PTR(void, T3062286716_36) (Vmargs345029* args0, void* ClEnv);
  typedef N_CLOSURE_PTR(void, T3062286716_38) (Vmargs345029* args0, void* ClEnv);
  typedef N_CLOSURE_PTR(void, T3062286716_40) (Vmargs345029* args0, void* ClEnv);
  typedef N_CLOSURE_PTR(void, T3062286716_42) (Vmargs345029* args0, void* ClEnv);
  typedef N_CLOSURE_PTR(void, T3062286716_45) (Vmargs345029* args0, void* ClEnv);
  typedef N_CLOSURE_PTR(void, T3062286716_47) (Vmargs345029* args0, void* ClEnv);
  typedef N_CLOSURE_PTR(void, T3062286716_49) (Vmargs345029* args0, void* ClEnv);
  typedef N_CLOSURE_PTR(void, T3062286716_51) (Vmargs345029* args0, void* ClEnv);
  typedef N_CLOSURE_PTR(void, T3062286716_53) (Vmargs345029* args0, void* ClEnv);
  typedef N_CLOSURE_PTR(void, T3062286716_55) (Vmargs345029* args0, void* ClEnv);
  typedef N_CLOSURE_PTR(void, T3062286716_57) (Vmargs345029* args0, void* ClEnv);
  typedef N_CLOSURE_PTR(void, T3062286716_59) (Vmargs345029* args0, void* ClEnv);
  typedef N_CLOSURE_PTR(void, T3062286716_62) (Vmargs345029* args0, void* ClEnv);
  typedef N_CLOSURE_PTR(void, T3062286716_64) (Vmargs345029* args0, void* ClEnv);
  typedef NU8 Tcmdlinepass282008;
  typedef N_CLOSURE_PTR(void, T3062286716_66) (Vmargs345029* args0, void* ClEnv);
  typedef NU16 Tspecialword277003;
  typedef N_CLOSURE_PTR(void, T3062286716_68) (Vmargs345029* args0, void* ClEnv);
  typedef N_CLOSURE_PTR(void, T3062286716_70) (Vmargs345029* args0, void* ClEnv);
  typedef NU8 char136Set[32];
  typedef N_CLOSURE_PTR(void, T3062286716_76) (Vmargs345029* args0, void* ClEnv);
  typedef NU8 Filemode13009;
  typedef NU16 Tnodeflag294427Set;
  typedef NU8 Tnodekind294020;
  struct  Tnode294802  {
  Ttype294840* typ;
  Tlineinfo193336 info;
  Tnodeflag294427Set flags;
  Tnodekind294020 kind;
  union{
  struct {NI64 intval;
  } S1;
  struct {NF floatval;
  } S2;
  struct {NimStringDesc* strval;
  } S3;
  struct {Tsym294834* sym;
  } S4;
  struct {Tident201010* ident;
  } S5;
  struct {Tnodeseq294796* sons;
  } S6;
  } kindU;
  NimStringDesc* comment;
  };
  typedef NU8 Treasonforrecompile334002;
  struct  Tiitable301142  {
  NI counter;
  Tiipairseq301140* data;
  };
  struct  Tindex334019  {
  NI lastidxkey;
  NI lastidxval;
  Tiitable301142 tab;
  NimStringDesc* r;
  NI offset;
  };
  struct  Table334054  {
  Keyvaluepairseq334057* data;
  NI counter;
  };
  struct  Memfile332202  {
  void* mem;
  NI size;
  int handle;
  };
  struct  Trodreader334021  {
    TNimObject Sup;
  NI pos;
  NCSTRING s;
  Toption171009Set options;
  Treasonforrecompile334002 reason;
  TY334033* moddeps;
  TY334033* files;
  NI dataidx;
  NI convertersidx;
  NI initidx;
  NI interfidx;
  NI compilerprocsidx;
  NI methodsidx;
  NimStringDesc* filename;
  Tindex334019 index;
  Tindex334019 imports;
  NI readerindex;
  NI line;
  NI moduleid;
  Table334054 syms;
  Memfile332202 memfile;
  Tsymseq294804* methods;
  NimStringDesc* origfile;
  NIM_BOOL inviewmode;
  };
  struct  Tlistentry148007  {
    TNimObject Sup;
  Tlistentry148007* prev;
  Tlistentry148007* next;
  };
  typedef NU8 Ttypekind294244;
  typedef NU8 Tcallingconvention294002;
  typedef NU32 Ttypeflag294431Set;
  struct  Ttype294840  {
    Tidobj201004 Sup;
  Ttypekind294244 kind;
  Tcallingconvention294002 callconv;
  Ttypeflag294431Set flags;
  Ttypeseq294836* sons;
  Tnode294802* n;
  Tsym294834* owner;
  Tsym294834* sym;
  Tsym294834* destructor;
  Tsym294834* deepcopy;
  Tsym294834* assignment;
  TY294960* methods;
  NI64 size;
  NI16 align;
  NI16 locklevel;
  Tloc294816 loc;
  };
  struct  Tident201010  {
    Tidobj201004 Sup;
  NimStringDesc* s;
  Tident201010* next;
  NI h;
  };
  struct  Ropeobj180006  {
    TNimObject Sup;
  Ropeobj180006* left;
  Ropeobj180006* right;
  NI length;
  NimStringDesc* data;
  };
  typedef NU8 Tlibkind294818;
  struct  Tlib294820  {
    Tlistentry148007 Sup;
  Tlibkind294818 kind;
  NIM_BOOL generated;
  NIM_BOOL isoverriden;
  Ropeobj180006* name;
  Tnode294802* path;
  };
  typedef NU8 Tslotkind345025;
  struct TY345226 {
  NIM_BOOL Field0;
  Tslotkind345025 Field1;
  };
  typedef TY345226 TY345229[256];
  struct  PprocHEX3Aobjecttype345220  {
  TY345221* blocks;
  Tsym294834* sym;
  TY345229 slots;
  NI maxslots;
  };
  struct TY345261 {
  NimStringDesc* Field0;
  Vmcallback345031 Field1;
  };
  struct  Gcstack49816  {
  Gcstack49816* prev;
  Gcstack49816* next;
  void* starts;
  void* pos;
  NI maxstacksize;
  };
  struct  Basechunk29437  {
  NI prevsize;
  NI size;
  NIM_BOOL used;
  };
  struct  Smallchunk29439  {
    Basechunk29437 Sup;
  Smallchunk29439* next;
  Smallchunk29439* prev;
  Freecell29429* freelist;
  NI free;
  NI acc;
  NF data;
  };
  struct  Llchunk29479  {
  NI size;
  NI acc;
  Llchunk29479* next;
  };
  struct  Bigchunk29441  {
    Basechunk29437 Sup;
  Bigchunk29441* next;
  Bigchunk29441* prev;
  NI align;
  NF data;
  };
  typedef NI TY29418[16];
  struct  Trunk29410  {
  Trunk29410* next;
  NI key;
  TY29418 bits;
  };
  typedef Avlnode29483* TY29490[2];
  struct  Avlnode29483  {
  TY29490 link;
  NI key;
  NI upperbound;
  NI level;
  };
  struct  Pagedesc47312  {
  Pagedesc47312* next;
  NI key;
  TY29418 bits;
  };
  struct  Vmargs345029  {
  NI ra;
  NI rb;
  NI rc;
  void* slots;
  Tnode294802* currentexception;
  };
  typedef NU8 Stringtablemode153602;
  struct  Stringtableobj153608  {
    TNimObject Sup;
  NI counter;
  Keyvaluepairseq153606* data;
  Stringtablemode153602 mode;
  };
  typedef NU8 Tllstreamkind284202;
  struct  Tllstream284204  {
    TNimObject Sup;
  Tllstreamkind284202 kind;
  FILE* f;
  NimStringDesc* s;
  NI rd;
  NI wr;
  NI lineoffset;
  };
  struct  Tiipair301138  {
  NI key;
  NI val;
  };
  struct Keyvaluepair334060 {
  NI Field0;
  NI Field1;
  Tsym294834* Field2;
  };
  struct  Tinstantiation294824  {
  Tsym294834* sym;
  Ttypeseq294836* concretetypes;
  NI compilesid;
  };
  struct TY294961 {
  NI Field0;
  Tsym294834* Field1;
  };
  struct  Tblock345017  {
  Tsym294834* label;
  TY345201* fixups;
  };
  struct  Freecell29429  {
  Freecell29429* next;
  NI zerofield;
  };
  struct Keyvaluepair153604 {
  NimStringDesc* Field0;
  NimStringDesc* Field1;
  };
  struct TY136002 {
    TGenericSeq Sup;
    NimStringDesc* data[SEQ_DECL_SIZE];
  };
  struct Ttypeseq294836 {
    TGenericSeq Sup;
    Ttype294840* data[SEQ_DECL_SIZE];
  };
  struct TY294929 {
    TGenericSeq Sup;
    Tinstantiation294824* data[SEQ_DECL_SIZE];
  };
  struct Tsymseq294804 {
    TGenericSeq Sup;
    Tsym294834* data[SEQ_DECL_SIZE];
  };
  struct TY345241 {
    TGenericSeq Sup;
    NU32 data[SEQ_DECL_SIZE];
  };
  struct TY194086 {
    TGenericSeq Sup;
    Tlineinfo193336 data[SEQ_DECL_SIZE];
  };
  struct TY345260 {
    TGenericSeq Sup;
    TY345261 data[SEQ_DECL_SIZE];
  };
  struct Tnodeseq294796 {
    TGenericSeq Sup;
    Tnode294802* data[SEQ_DECL_SIZE];
  };
  struct TY334033 {
    TGenericSeq Sup;
    NI32 data[SEQ_DECL_SIZE];
  };
  struct Tiipairseq301140 {
    TGenericSeq Sup;
    Tiipair301138 data[SEQ_DECL_SIZE];
  };
  struct Keyvaluepairseq334057 {
    TGenericSeq Sup;
    Keyvaluepair334060 data[SEQ_DECL_SIZE];
  };
  struct TY294960 {
    TGenericSeq Sup;
    TY294961 data[SEQ_DECL_SIZE];
  };
  struct TY345221 {
    TGenericSeq Sup;
    Tblock345017 data[SEQ_DECL_SIZE];
  };
  struct Keyvaluepairseq153606 {
    TGenericSeq Sup;
    Keyvaluepair153604 data[SEQ_DECL_SIZE];
  };
  struct TY345201 {
    TGenericSeq Sup;
    NI data[SEQ_DECL_SIZE];
  };
  N_NIMCALL(Tnode294802*, includemodule_595861_3338220056)(Tsym294834* s0, NI32 fileidx0);
  N_NIMCALL(Tsym294834*, importmodule_595842_3338220056)(Tsym294834* s0, NI32 fileidx0);
  N_NIMCALL(void, initdefines_202193_1967573533)(void);
  N_NIMCALL(void, definesymbol_202004_1967573533)(NimStringDesc* symbol0, NimStringDesc* value0);
  N_NIMCALL(void, registerpass_343167_2355241294)(Tpass343014 p0);
  N_NIMCALL(Tpasscontext343002*, myopen_529227_998339756)(Tsym294834* module0);
  N_NIMCALL(Tpasscontext343002*, myopencached_529273_998339756)(Tsym294834* module0, Trodreader334021* rd0);
  N_NIMCALL(Tnode294802*, myprocess_529463_998339756)(Tpasscontext343002* context0, Tnode294802* n0);
  N_NIMCALL(Tnode294802*, myclose_529473_998339756)(Tpasscontext343002* context0, Tnode294802* n0);
  N_NIMCALL(Tpasscontext343002*, myopen_473258_2569374918)(Tsym294834* module0);
  N_NIMCALL(Tnode294802*, myprocess_473403_2569374918)(Tpasscontext343002* c0, Tnode294802* n0);
  N_NIMCALL(void, appendstr_148244_3771138726)(Tlinkedlist148013* list0, NimStringDesc* data0);
  N_NIMCALL(Tsym294834*, makemodule_595922_3338220056)(NimStringDesc* filename0);
  N_NIMCALL(Tctx345035*, setupvm_599074_3062286716)(Tsym294834* module0, NimStringDesc* scriptname0);
  N_NIMCALL(void, nimGCvisit)(void* d0, NI op0);
  N_NIMCALL(void, T3062286716_6)(void* p, NI op);
  N_NIMCALL(void*, newObj)(TNimType* typ0, NI size0);
  N_NIMCALL(Tctx345035*, newctx_345286_984354655)(Tsym294834* module0);
  N_NIMCALL(void, registeradditionalops_473135_2569374918)(Tctx345035* c0);
  N_NIMCALL(void, nossplitFile)(NimStringDesc* path0, TY129506* Result);
  N_NIMCALL(NimStringDesc*, copyStringRC1)(NimStringDesc* src0);
  static N_INLINE(void, nimGCunrefNoCycle)(void* p0);
  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, registercallback_345393_984354655)(Tctx345035* c0, NimStringDesc* name0, Vmcallback345031 callback0);
  N_CLOSURE(void, HEX3Aanonymous_599093_3062286716)(Vmargs345029* a0, void* ClEnv);
  static N_INLINE(void, pushSafePoint)(TSafePoint* s0);
  N_NIMCALL(void, listdirs_599002_3062286716)(Vmargs345029* a0, Pathcomponent138212Set filter0);
  N_NIMCALL(NimStringDesc*, getstring_461037_2569374918)(Vmargs345029* a0, NI i0);
  N_NIMCALL(void*, newSeq)(TNimType* typ0, NI len0);
  N_NIMCALL(NimStringDesc*, cstrToNimstr)(NCSTRING str0);
  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(NimStringDesc*, HEX2F_129265_2125978480)(NimStringDesc* head0, NimStringDesc* tail0);
  static N_INLINE(NIM_BOOL, direxists_132608_2125978480)(NimStringDesc* dir0);
  N_NIMCALL(NIM_BOOL, nosexistsDir)(NimStringDesc* dir0);
  N_NIMCALL(TGenericSeq*, incrSeqV2)(TGenericSeq* seq0, NI elemsize0);
  N_NIMCALL(Pathcomponent138212, getsymlinkfilekind_138219_2125978480)(NimStringDesc* path0);
  static N_INLINE(void, popSafePoint)(void);
  N_NIMCALL(void, reraiseException)(void);
  N_NIMCALL(void, setresult_460942_2569374918)(Vmargs345029* a0, TY136002* v0);
  N_NIMCALL(NIM_BOOL, isObj)(TNimType* obj0, TNimType* subclass0);
  static N_INLINE(Exception*, getCurrentException)(void);
  static N_INLINE(NimStringDesc*, getcurrentexceptionmsg_89605_1689653243)(void);
  N_NIMCALL(NimStringDesc*, copyString)(NimStringDesc* src0);
  static N_INLINE(void, asgnRefNoCycle)(void** dest0, void* src0);
  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_CLOSURE(void, HEX3Aanonymous_599097_3062286716)(Vmargs345029* a0, void* ClEnv);
  N_CLOSURE(void, HEX3Aanonymous_599101_3062286716)(Vmargs345029* a0, void* ClEnv);
  N_NIMCALL(void, nosremoveDir)(NimStringDesc* dir0);
  N_CLOSURE(void, HEX3Aanonymous_599104_3062286716)(Vmargs345029* a0, void* ClEnv);
  N_NIMCALL(void, nosremoveFile)(NimStringDesc* file0);
  N_CLOSURE(void, HEX3Aanonymous_599107_3062286716)(Vmargs345029* a0, void* ClEnv);
  N_NIMCALL(void, noscreateDir)(NimStringDesc* dir0);
  N_CLOSURE(void, HEX3Aanonymous_599110_3062286716)(Vmargs345029* a0, void* ClEnv);
  N_NIMCALL(void, setresult_460900_2569374918)(Vmargs345029* a0, NimStringDesc* v0);
  N_CLOSURE(void, HEX3Aanonymous_599113_3062286716)(Vmargs345029* a0, void* ClEnv);
  static N_INLINE(void, setcurrentdir_133601_2125978480)(NimStringDesc* newdir0);
  N_NOINLINE(void, raiseoserror_131603_2125978480)(NI32 errorcode0, NimStringDesc* additionalinfo0);
  N_NIMCALL(NI32, oslasterror_131619_2125978480)(void);
  N_CLOSURE(void, HEX3Aanonymous_599116_3062286716)(Vmargs345029* a0, void* ClEnv);
  N_NIMCALL(NimStringDesc*, nosgetCurrentDir)(void);
  N_CLOSURE(void, HEX3Aanonymous_599119_3062286716)(Vmargs345029* a0, void* ClEnv);
  N_NIMCALL(void, nosmoveFile)(NimStringDesc* source0, NimStringDesc* dest0);
  N_CLOSURE(void, HEX3Aanonymous_599122_3062286716)(Vmargs345029* a0, void* ClEnv);
  N_NIMCALL(void, noscopyFile)(NimStringDesc* source0, NimStringDesc* dest0);
  N_CLOSURE(void, HEX3Aanonymous_599125_3062286716)(Vmargs345029* a0, void* ClEnv);
  N_NIMCALL(void, setresult_460851_2569374918)(Vmargs345029* a0, NF v0);
  N_NIMCALL(NF, toseconds_114864_2726502234)(time_t time0);
  N_NIMCALL(time_t, nosgetLastModificationTime)(NimStringDesc* file0);
  N_CLOSURE(void, HEX3Aanonymous_599128_3062286716)(Vmargs345029* a0, void* ClEnv);
  N_NIMCALL(void, setresult_460831_2569374918)(Vmargs345029* a0, NI64 v0);
  N_NIMCALL(NI, nospexecCmd)(NimStringDesc* command0);
  N_NIMCALL(void, HEX3Aanonymous_599131_3062286716)(Vmargs345029* a0);
  N_NIMCALL(NimStringDesc*, getenv_136625_2125978480)(NimStringDesc* key0);
  N_NIMCALL(void, HEX3Aanonymous_599134_3062286716)(Vmargs345029* a0);
  N_NIMCALL(void, setresult_460871_2569374918)(Vmargs345029* a0, NIM_BOOL v_460874_2569374918);
  N_NIMCALL(NIM_BOOL, existsenv_136634_2125978480)(NimStringDesc* key0);
  N_NIMCALL(void, HEX3Aanonymous_599137_3062286716)(Vmargs345029* a0);
  N_NIMCALL(void, HEX3Aanonymous_599140_3062286716)(Vmargs345029* a0);
  static N_INLINE(NIM_BOOL, fileexists_132604_2125978480)(NimStringDesc* filename0);
  N_NIMCALL(NIM_BOOL, nosexistsFile)(NimStringDesc* filename0);
  N_CLOSURE(void, HEX3Aanonymous_599143_3062286716)(Vmargs345029* a0, void* ClEnv);
  N_NIMCALL(void, HEX3Aanonymous_599146_3062286716)(Vmargs345029* a0);
  N_NIMCALL(void, setconfigvar_171296_2607990831)(NimStringDesc* key0, NimStringDesc* val0);
  N_NIMCALL(void, HEX3Aanonymous_599149_3062286716)(Vmargs345029* a0);
  N_NIMCALL(NimStringDesc*, getconfigvar_171292_2607990831)(NimStringDesc* key0);
  N_NIMCALL(void, HEX3Aanonymous_599152_3062286716)(Vmargs345029* a0);
  N_NIMCALL(NIM_BOOL, existsconfigvar_171288_2607990831)(NimStringDesc* key0);
  N_NIMCALL(void, HEX3Aanonymous_599155_3062286716)(Vmargs345029* a0);
  N_NIMCALL(NimStringDesc*, getnimcachedir_172081_2607990831)(void);
  N_NIMCALL(void, HEX3Aanonymous_599158_3062286716)(Vmargs345029* a0);
  N_NIMCALL(NimStringDesc*, paramstr_144007_2125978480)(NI i0);
  N_NIMCALL(NI64, getint_460986_2569374918)(Vmargs345029* a0, NI i0);
  N_NIMCALL(void, HEX3Aanonymous_599161_3062286716)(Vmargs345029* a0);
  N_NIMCALL(NI, paramcount_144026_2125978480)(void);
  N_NIMCALL(void, HEX3Aanonymous_599164_3062286716)(Vmargs345029* a0);
  N_NIMCALL(NI, nsuCmpIgnoreStyle)(NimStringDesc* a0, NimStringDesc* b0);
  N_NIMCALL(void, HEX3Aanonymous_599167_3062286716)(Vmargs345029* a0);
  N_NIMCALL(NI, nsuCmpIgnoreCase)(NimStringDesc* a0, NimStringDesc* b0);
  N_NIMCALL(void, HEX3Aanonymous_599170_3062286716)(Vmargs345029* a0);
  N_NIMCALL(NimStringDesc*, canonicalizepath_171405_2607990831)(NimStringDesc* path0);
  N_NIMCALL(void, HEX3Aanonymous_599174_3062286716)(Vmargs345029* a0);
  N_NIMCALL(void, HEX3Aanonymous_599177_3062286716)(Vmargs345029* a0);
  N_NIMCALL(void, processswitch_282016_2004575671)(NimStringDesc* switch_282018_2004575671, NimStringDesc* arg0, Tcmdlinepass282008 pass0, Tlineinfo193336 info0);
  N_NIMCALL(Tlineinfo193336, unknownlineinfo_194083_155036129)(void);
  N_NIMCALL(void, HEX3Aanonymous_599180_3062286716)(Vmargs345029* a0);
  N_NIMCALL(void, processspecificnote_282370_2004575671)(NimStringDesc* arg0, Tspecialword277003 state0, Tcmdlinepass282008 pass0, Tlineinfo193336 info0, NimStringDesc* orig0);
  N_NIMCALL(void, HEX3Aanonymous_599183_3062286716)(Vmargs345029* a0);
  N_CLOSURE(void, HEX3Aanonymous_599186_3062286716)(Vmargs345029* a0, void* ClEnv);
  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(NimStringDesc*, nosaddFileExt)(NimStringDesc* filename0, NimStringDesc* ext0);
  N_NIMCALL(NIM_BOOL, contains_110056_4286263276)(NimStringDesc* s0, char136Set chars0);
  N_NIMCALL(NimStringDesc*, pathsubs_172084_2607990831)(NimStringDesc* p0, NimStringDesc* config0);
  N_NIMCALL(NIM_BOOL, nosisAbsolute)(NimStringDesc* path0);
  N_NIMCALL(void, nstPut)(Stringtableobj153608* t0, NimStringDesc* key0, NimStringDesc* val0);
  N_NIMCALL(void, HEX3Aanonymous_599193_3062286716)(Vmargs345029* a0);
  N_NIMCALL(NimStringDesc*, nosgetAppFilename)(void);
  N_NIMCALL(void, compilesystemmodule_595894_3338220056)(void);
  N_NIMCALL(NIM_BOOL, processmodule_343490_2355241294)(Tsym294834* module0, Tllstream284204* stream0, Trodreader334021* rd0);
  N_NIMCALL(Tllstream284204*, llstreamopen_284242_597494479)(NimStringDesc* filename0, Filemode13009 mode0);
  N_NIMCALL(void, resetallmoduleshard_595354_3338220056)(void);
  N_NIMCALL(void, undefsymbol_202008_1967573533)(NimStringDesc* symbol0);
  STRING_LITERAL(T3062286716_2, "nimscript", 9);
  STRING_LITERAL(T3062286716_3, "true", 4);
  STRING_LITERAL(T3062286716_4, "nimconfig", 9);
  STRING_LITERAL(T3062286716_7, "stdlib.system.listFiles", 23);
  STRING_LITERAL(T3062286716_10, ".", 1);
  STRING_LITERAL(T3062286716_11, "..", 2);
  STRING_LITERAL(T3062286716_12, "", 0);
  STRING_LITERAL(T3062286716_13, "stdlib.system.listDirs", 22);
  STRING_LITERAL(T3062286716_15, "stdlib.system.removeDir", 23);
  STRING_LITERAL(T3062286716_17, "stdlib.system.removeFile", 24);
  STRING_LITERAL(T3062286716_19, "stdlib.system.createDir", 23);
  STRING_LITERAL(T3062286716_21, "stdlib.system.getOsError", 24);
  STRING_LITERAL(T3062286716_23, "stdlib.system.setCurrentDir", 27);
  STRING_LITERAL(T3062286716_25, "stdlib.system.getCurrentDir", 27);
  STRING_LITERAL(T3062286716_27, "stdlib.system.moveFile", 22);
  STRING_LITERAL(T3062286716_29, "stdlib.system.copyFile", 22);
  STRING_LITERAL(T3062286716_31, "stdlib.system.getLastModificationTime", 37);
  STRING_LITERAL(T3062286716_33, "stdlib.system.rawExec", 21);
  STRING_LITERAL(T3062286716_35, "stdlib.system.getEnv", 20);
  STRING_LITERAL(T3062286716_37, "stdlib.system.existsEnv", 23);
  STRING_LITERAL(T3062286716_39, "stdlib.system.dirExists", 23);
  STRING_LITERAL(T3062286716_41, "stdlib.system.fileExists", 24);
  STRING_LITERAL(T3062286716_43, "stdlib.system.thisDir", 21);
  STRING_LITERAL(T3062286716_44, "stdlib.system.put", 17);
  STRING_LITERAL(T3062286716_46, "stdlib.system.get", 17);
  STRING_LITERAL(T3062286716_48, "stdlib.system.exists", 20);
  STRING_LITERAL(T3062286716_50, "stdlib.system.nimcacheDir", 25);
  STRING_LITERAL(T3062286716_52, "stdlib.system.paramStr", 22);
  STRING_LITERAL(T3062286716_54, "stdlib.system.paramCount", 24);
  STRING_LITERAL(T3062286716_56, "stdlib.system.cmpIgnoreStyle", 28);
  STRING_LITERAL(T3062286716_58, "stdlib.system.cmpIgnoreCase", 27);
  STRING_LITERAL(T3062286716_60, "stdlib.system.setCommand", 24);
  STRING_LITERAL(T3062286716_63, "stdlib.system.getCommand", 24);
  STRING_LITERAL(T3062286716_65, "stdlib.system.switch", 20);
  STRING_LITERAL(T3062286716_67, "stdlib.system.hintImpl", 22);
  STRING_LITERAL(T3062286716_69, "stdlib.system.warningImpl", 25);
  STRING_LITERAL(T3062286716_71, "stdlib.system.patchFile", 23);
  STRING_LITERAL(T3062286716_72, "_", 1);
  STRING_LITERAL(T3062286716_73, "nim", 3);
  static NIM_CONST char136Set T3062286716_74 = {
  0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40,
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
  ;
  STRING_LITERAL(T3062286716_75, "stdlib.system.selfExe", 21);
  extern TY343074 gincludefile_343078_2355241294;
  extern TY343069 gimportmodule_343073_2355241294;
  extern Tlinkedlist148013 searchpaths_171134_2607990831;
  extern NimStringDesc* libpath_171208_2607990831;
  extern Tctx345035* globalctx_473241_2569374918;
  TNimType NTI599197; /* object */
  extern TNimType NTI104021; /* range -1..0(int) */
  extern TNimType NTI138; /* string */
  TNimType NTI599196; /* ref object */
  extern Gcheap49818 gch_49858_1689653243;
  extern TSafePoint* exchandler_18837_1689653243;
  extern TNimType NTI136002; /* seq[string] */
  extern TNimType NTI3630; /* OSError */
  extern Exception* currexception_18839_1689653243;
  extern NimStringDesc* command_171215_2607990831;
  extern NimStringDesc* gprojectname_171209_2607990831;
  extern NimStringDesc* gprojectfull_171211_2607990831;
  extern NimStringDesc* gprojectpath_171210_2607990831;
  extern Stringtableobj153608* gmoduleoverrides_171206_2607990831;
  N_NIMCALL(void, T3062286716_6)(void* p, NI op) {
  	TY599197* a;
  	a = (TY599197*)p;
  	nimGCvisit((void*)(*a).errormsg599079, op);
  	nimGCvisit((void*)(*a).vthisdir599080, op);
  }
  
  static N_INLINE(Cell47304*, usrtocell_51440_1689653243)(void* usr0) {
  	Cell47304* result0;
  	result0 = (Cell47304*)0;
  	result0 = ((Cell47304*) ((NI)((NU32)(((NI) (usr0))) - (NU32)(((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, nimGCunrefNoCycle)(void* p0) {
  	Cell47304* c0;
  	c0 = usrtocell_51440_1689653243(p0);
  	{
  		(*c0).refcount -= ((NI) 8);
  		if (!((NU32)((*c0).refcount) < (NU32)(((NI) 8)))) goto LA3;
  		rtladdzct_52601_1689653243(c0);
  	}
  	LA3: ;
  }
  
  static N_INLINE(void, pushSafePoint)(TSafePoint* s0) {
  	(*s0).hasRaiseAction = NIM_FALSE;
  	(*s0).prev = exchandler_18837_1689653243;
  	exchandler_18837_1689653243 = s0;
  }
  
  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(NIM_BOOL, direxists_132608_2125978480)(NimStringDesc* dir0) {
  	NIM_BOOL result0;
  	result0 = (NIM_BOOL)0;
  	result0 = nosexistsDir(dir0);
  	return result0;
  }
  
  static N_INLINE(void, popSafePoint)(void) {
  	exchandler_18837_1689653243 = (*exchandler_18837_1689653243).prev;
  }
  
  N_NIMCALL(void, listdirs_599002_3062286716)(Vmargs345029* a0, Pathcomponent138212Set filter0) {
  	NimStringDesc* dir0;
  	TY136002* result0;
  	dir0 = getstring_461037_2569374918(a0, ((NI) 0));
  	result0 = (TY136002*) newSeq((&NTI136002), 0);
  	{
  		Pathcomponent138212 kind_599026_3062286716;
  		NimStringDesc* path_599027_3062286716;
  		DIR* d_599065_3062286716;
  		kind_599026_3062286716 = (Pathcomponent138212)0;
  		path_599027_3062286716 = (NimStringDesc*)0;
  		d_599065_3062286716 = opendir(dir0->data);
  		{
  			TSafePoint T3062286716_9;
  			if (!!((d_599065_3062286716 == NIM_NIL))) goto LA4;
  			pushSafePoint(&T3062286716_9);
  			T3062286716_9.status = setjmp(T3062286716_9.context);
  			if (T3062286716_9.status == 0) {
  				{
  					while (1) {
  						{
  							struct dirent* x_599067_3062286716;
  							NimStringDesc* volatile y_599069_3062286716;
  							x_599067_3062286716 = readdir(d_599065_3062286716);
  							{
  								if (!(x_599067_3062286716 == NIM_NIL)) goto LA12;
  								goto LA7;
  							}
  							LA12: ;
  							y_599069_3062286716 = cstrToNimstr(((NCSTRING) ((*x_599067_3062286716).d_name)));
  							{
  								NIM_BOOL LOC16;
  								struct stat s_599071_3062286716;
  								Pathcomponent138212 volatile k_599073_3062286716;
  								LOC16 = (NIM_BOOL)0;
  								LOC16 = !(eqStrings(y_599069_3062286716, ((NimStringDesc*) &T3062286716_10)));
  								if (!(LOC16)) goto LA17;
  								LOC16 = !(eqStrings(y_599069_3062286716, ((NimStringDesc*) &T3062286716_11)));
  								LA17: ;
  								if (!LOC16) goto LA18;
  								memset((void*)(&s_599071_3062286716), 0, sizeof(s_599071_3062286716));
  								{
  									if (!NIM_TRUE) goto LA22;
  									y_599069_3062286716 = HEX2F_129265_2125978480(dir0, y_599069_3062286716);
  								}
  								LA22: ;
  								k_599073_3062286716 = ((Pathcomponent138212) 0);
  								{
  									if (!!(((*x_599067_3062286716).d_type == ((NI8) 0)))) goto LA26;
  									{
  										if (!((*x_599067_3062286716).d_type == ((NI8) 4))) goto LA30;
  										k_599073_3062286716 = ((Pathcomponent138212) 2);
  									}
  									LA30: ;
  									{
  										if (!((*x_599067_3062286716).d_type == ((NI8) 10))) goto LA34;
  										{
  											NIM_BOOL LOC38;
  											LOC38 = (NIM_BOOL)0;
  											LOC38 = direxists_132608_2125978480(y_599069_3062286716);
  											if (!LOC38) goto LA39;
  											k_599073_3062286716 = ((Pathcomponent138212) 3);
  										}
  										goto LA36;
  										LA39: ;
  										{
  											k_599073_3062286716 = ((Pathcomponent138212) 1);
  										}
  										LA36: ;
  									}
  									LA34: ;
  									kind_599026_3062286716 = k_599073_3062286716;
  									path_599027_3062286716 = y_599069_3062286716;
  									{
  										NimStringDesc* LOC46;
  										if (!((filter0 &(1U<<((NU)(kind_599026_3062286716)&7U)))!=0)) goto LA44;
  										result0 = (TY136002*) incrSeqV2(&(result0)->Sup, sizeof(NimStringDesc*));
  										LOC46 = (NimStringDesc*)0;
  										LOC46 = result0->data[result0->Sup.len]; result0->data[result0->Sup.len] = copyStringRC1(path_599027_3062286716);
  										if (LOC46) nimGCunrefNoCycle(LOC46);
  										++result0->Sup.len;
  									}
  									LA44: ;
  									goto LA9;
  								}
  								LA26: ;
  								{
  									int LOC49;
  									LOC49 = (int)0;
  									LOC49 = lstat(y_599069_3062286716->data, (&s_599071_3062286716));
  									if (!(LOC49 < ((NI32) 0))) goto LA50;
  									goto LA7;
  								}
  								LA50: ;
  								{
  									NIM_BOOL LOC54;
  									LOC54 = (NIM_BOOL)0;
  									LOC54 = S_ISDIR(s_599071_3062286716.st_mode);
  									if (!LOC54) goto LA55;
  									k_599073_3062286716 = ((Pathcomponent138212) 2);
  								}
  								goto LA52;
  								LA55: ;
  								{
  									NIM_BOOL LOC58;
  									LOC58 = (NIM_BOOL)0;
  									LOC58 = S_ISLNK(s_599071_3062286716.st_mode);
  									if (!LOC58) goto LA59;
  									k_599073_3062286716 = getsymlinkfilekind_138219_2125978480(y_599069_3062286716);
  								}
  								goto LA52;
  								LA59: ;
  								LA52: ;
  								kind_599026_3062286716 = k_599073_3062286716;
  								path_599027_3062286716 = y_599069_3062286716;
  								{
  									NimStringDesc* LOC65;
  									if (!((filter0 &(1U<<((NU)(kind_599026_3062286716)&7U)))!=0)) goto LA63;
  									result0 = (TY136002*) incrSeqV2(&(result0)->Sup, sizeof(NimStringDesc*));
  									LOC65 = (NimStringDesc*)0;
  									LOC65 = result0->data[result0->Sup.len]; result0->data[result0->Sup.len] = copyStringRC1(path_599027_3062286716);
  									if (LOC65) nimGCunrefNoCycle(LOC65);
  									++result0->Sup.len;
  								}
  								LA63: ;
  							}
  							LA18: ;
  						} LA9: ;
  					}
  				} LA7: ;
  				popSafePoint();
  			}
  			else {
  				popSafePoint();
  			}
  			{
  				int LOC68;
  				LOC68 = (int)0;
  				LOC68 = closedir(d_599065_3062286716);
  			}
  			if (T3062286716_9.status != 0) reraiseException();
  		}
  		LA4: ;
  	}
  	setresult_460942_2569374918(a0, result0);
  }
  
  static N_INLINE(Exception*, getCurrentException)(void) {
  	Exception* result0;
  	result0 = (Exception*)0;
  	result0 = currexception_18839_1689653243;
  	return result0;
  }
  
  static N_INLINE(NimStringDesc*, getcurrentexceptionmsg_89605_1689653243)(void) {
  	NimStringDesc* result0;
  	Exception* e0;
  {	result0 = (NimStringDesc*)0;
  	e0 = getCurrentException();
  	{
  		if (!(e0 == NIM_NIL)) goto LA3;
  		result0 = copyString(((NimStringDesc*) &T3062286716_12));
  	}
  	goto LA1;
  	LA3: ;
  	{
  		result0 = copyString((*e0).message);
  	}
  	LA1: ;
  	goto BeforeRet;
  	}BeforeRet: ;
  	return result0;
  }
  
  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 (!((NU32)((*c0).refcount) < (NU32)(((NI) 8)))) goto LA11;
  			rtladdzct_52601_1689653243(c0);
  		}
  		LA11: ;
  	}
  	LA7: ;
  	(*dest0) = src0;
  }
  
  static N_INLINE(void, incref_53419_1689653243)(Cell47304* c0) {
  	(*c0).refcount = (NI)((NU32)((*c0).refcount) + (NU32)(((NI) 8)));
  }
  
  static N_INLINE(void, decref_53001_1689653243)(Cell47304* c0) {
  	{
  		(*c0).refcount -= ((NI) 8);
  		if (!((NU32)((*c0).refcount) < (NU32)(((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_CLOSURE(void, HEX3Aanonymous_599093_3062286716)(Vmargs345029* a0, void* ClEnv) {
  	TY599197* HEX3Aenvp_599200_3062286716;
  	NimStringDesc* LOC1;
  	TSafePoint T3062286716_8;
  	HEX3Aenvp_599200_3062286716 = (TY599197*) ClEnv;
  	LOC1 = (NimStringDesc*)0;
  	LOC1 = (*HEX3Aenvp_599200_3062286716).errormsg599079; (*HEX3Aenvp_599200_3062286716).errormsg599079 = copyStringRC1(NIM_NIL);
  	if (LOC1) nimGCunrefNoCycle(LOC1);
  	pushSafePoint(&T3062286716_8);
  	T3062286716_8.status = setjmp(T3062286716_8.context);
  	if (T3062286716_8.status == 0) {
  		listdirs_599002_3062286716(a0, 3);
  		popSafePoint();
  	}
  	else {
  		popSafePoint();
  		if (isObj(getCurrentException()->Sup.m_type, (&NTI3630))) {
  			T3062286716_8.status = 0;
  			asgnRefNoCycle((void**) (&(*HEX3Aenvp_599200_3062286716).errormsg599079), getcurrentexceptionmsg_89605_1689653243());
  			popCurrentException();
  		}
  	}
  	if (T3062286716_8.status != 0) reraiseException();
  }
  
  N_CLOSURE(void, HEX3Aanonymous_599097_3062286716)(Vmargs345029* a0, void* ClEnv) {
  	TY599197* HEX3Aenvp_599202_3062286716;
  	NimStringDesc* LOC1;
  	TSafePoint T3062286716_14;
  	HEX3Aenvp_599202_3062286716 = (TY599197*) ClEnv;
  	LOC1 = (NimStringDesc*)0;
  	LOC1 = (*HEX3Aenvp_599202_3062286716).errormsg599079; (*HEX3Aenvp_599202_3062286716).errormsg599079 = copyStringRC1(NIM_NIL);
  	if (LOC1) nimGCunrefNoCycle(LOC1);
  	pushSafePoint(&T3062286716_14);
  	T3062286716_14.status = setjmp(T3062286716_14.context);
  	if (T3062286716_14.status == 0) {
  		listdirs_599002_3062286716(a0, 4);
  		popSafePoint();
  	}
  	else {
  		popSafePoint();
  		if (isObj(getCurrentException()->Sup.m_type, (&NTI3630))) {
  			T3062286716_14.status = 0;
  			asgnRefNoCycle((void**) (&(*HEX3Aenvp_599202_3062286716).errormsg599079), getcurrentexceptionmsg_89605_1689653243());
  			popCurrentException();
  		}
  	}
  	if (T3062286716_14.status != 0) reraiseException();
  }
  
  N_CLOSURE(void, HEX3Aanonymous_599101_3062286716)(Vmargs345029* a0, void* ClEnv) {
  	TY599197* HEX3Aenvp_599203_3062286716;
  	NimStringDesc* LOC1;
  	TSafePoint T3062286716_16;
  	HEX3Aenvp_599203_3062286716 = (TY599197*) ClEnv;
  	LOC1 = (NimStringDesc*)0;
  	LOC1 = (*HEX3Aenvp_599203_3062286716).errormsg599079; (*HEX3Aenvp_599203_3062286716).errormsg599079 = copyStringRC1(NIM_NIL);
  	if (LOC1) nimGCunrefNoCycle(LOC1);
  	pushSafePoint(&T3062286716_16);
  	T3062286716_16.status = setjmp(T3062286716_16.context);
  	if (T3062286716_16.status == 0) {
  		NimStringDesc* LOC3;
  		LOC3 = (NimStringDesc*)0;
  		LOC3 = getstring_461037_2569374918(a0, ((NI) 0));
  		nosremoveDir(LOC3);
  		popSafePoint();
  	}
  	else {
  		popSafePoint();
  		if (isObj(getCurrentException()->Sup.m_type, (&NTI3630))) {
  			T3062286716_16.status = 0;
  			asgnRefNoCycle((void**) (&(*HEX3Aenvp_599203_3062286716).errormsg599079), getcurrentexceptionmsg_89605_1689653243());
  			popCurrentException();
  		}
  	}
  	if (T3062286716_16.status != 0) reraiseException();
  }
  
  N_CLOSURE(void, HEX3Aanonymous_599104_3062286716)(Vmargs345029* a0, void* ClEnv) {
  	TY599197* HEX3Aenvp_599204_3062286716;
  	NimStringDesc* LOC1;
  	TSafePoint T3062286716_18;
  	HEX3Aenvp_599204_3062286716 = (TY599197*) ClEnv;
  	LOC1 = (NimStringDesc*)0;
  	LOC1 = (*HEX3Aenvp_599204_3062286716).errormsg599079; (*HEX3Aenvp_599204_3062286716).errormsg599079 = copyStringRC1(NIM_NIL);
  	if (LOC1) nimGCunrefNoCycle(LOC1);
  	pushSafePoint(&T3062286716_18);
  	T3062286716_18.status = setjmp(T3062286716_18.context);
  	if (T3062286716_18.status == 0) {
  		NimStringDesc* LOC3;
  		LOC3 = (NimStringDesc*)0;
  		LOC3 = getstring_461037_2569374918(a0, ((NI) 0));
  		nosremoveFile(LOC3);
  		popSafePoint();
  	}
  	else {
  		popSafePoint();
  		if (isObj(getCurrentException()->Sup.m_type, (&NTI3630))) {
  			T3062286716_18.status = 0;
  			asgnRefNoCycle((void**) (&(*HEX3Aenvp_599204_3062286716).errormsg599079), getcurrentexceptionmsg_89605_1689653243());
  			popCurrentException();
  		}
  	}
  	if (T3062286716_18.status != 0) reraiseException();
  }
  
  N_CLOSURE(void, HEX3Aanonymous_599107_3062286716)(Vmargs345029* a0, void* ClEnv) {
  	TY599197* HEX3Aenvp_599205_3062286716;
  	NimStringDesc* LOC1;
  	TSafePoint T3062286716_20;
  	HEX3Aenvp_599205_3062286716 = (TY599197*) ClEnv;
  	LOC1 = (NimStringDesc*)0;
  	LOC1 = (*HEX3Aenvp_599205_3062286716).errormsg599079; (*HEX3Aenvp_599205_3062286716).errormsg599079 = copyStringRC1(NIM_NIL);
  	if (LOC1) nimGCunrefNoCycle(LOC1);
  	pushSafePoint(&T3062286716_20);
  	T3062286716_20.status = setjmp(T3062286716_20.context);
  	if (T3062286716_20.status == 0) {
  		NimStringDesc* LOC3;
  		LOC3 = (NimStringDesc*)0;
  		LOC3 = getstring_461037_2569374918(a0, ((NI) 0));
  		noscreateDir(LOC3);
  		popSafePoint();
  	}
  	else {
  		popSafePoint();
  		if (isObj(getCurrentException()->Sup.m_type, (&NTI3630))) {
  			T3062286716_20.status = 0;
  			asgnRefNoCycle((void**) (&(*HEX3Aenvp_599205_3062286716).errormsg599079), getcurrentexceptionmsg_89605_1689653243());
  			popCurrentException();
  		}
  	}
  	if (T3062286716_20.status != 0) reraiseException();
  }
  
  N_CLOSURE(void, HEX3Aanonymous_599110_3062286716)(Vmargs345029* a0, void* ClEnv) {
  	TY599197* HEX3Aenvp_599206_3062286716;
  	NimStringDesc* LOC1;
  	TSafePoint T3062286716_22;
  	HEX3Aenvp_599206_3062286716 = (TY599197*) ClEnv;
  	LOC1 = (NimStringDesc*)0;
  	LOC1 = (*HEX3Aenvp_599206_3062286716).errormsg599079; (*HEX3Aenvp_599206_3062286716).errormsg599079 = copyStringRC1(NIM_NIL);
  	if (LOC1) nimGCunrefNoCycle(LOC1);
  	pushSafePoint(&T3062286716_22);
  	T3062286716_22.status = setjmp(T3062286716_22.context);
  	if (T3062286716_22.status == 0) {
  		setresult_460900_2569374918(a0, (*HEX3Aenvp_599206_3062286716).errormsg599079);
  		popSafePoint();
  	}
  	else {
  		popSafePoint();
  		if (isObj(getCurrentException()->Sup.m_type, (&NTI3630))) {
  			T3062286716_22.status = 0;
  			asgnRefNoCycle((void**) (&(*HEX3Aenvp_599206_3062286716).errormsg599079), getcurrentexceptionmsg_89605_1689653243());
  			popCurrentException();
  		}
  	}
  	if (T3062286716_22.status != 0) reraiseException();
  }
  
  static N_INLINE(void, setcurrentdir_133601_2125978480)(NimStringDesc* newdir0) {
  	{
  		int LOC3;
  		NI32 LOC6;
  		LOC3 = (int)0;
  		LOC3 = chdir(newdir0->data);
  		if (!!((LOC3 == ((NI32) 0)))) goto LA4;
  		LOC6 = (NI32)0;
  		LOC6 = oslasterror_131619_2125978480();
  		raiseoserror_131603_2125978480(LOC6, ((NimStringDesc*) &T3062286716_12));
  	}
  	LA4: ;
  }
  
  N_CLOSURE(void, HEX3Aanonymous_599113_3062286716)(Vmargs345029* a0, void* ClEnv) {
  	TY599197* HEX3Aenvp_599207_3062286716;
  	NimStringDesc* LOC1;
  	TSafePoint T3062286716_24;
  	HEX3Aenvp_599207_3062286716 = (TY599197*) ClEnv;
  	LOC1 = (NimStringDesc*)0;
  	LOC1 = (*HEX3Aenvp_599207_3062286716).errormsg599079; (*HEX3Aenvp_599207_3062286716).errormsg599079 = copyStringRC1(NIM_NIL);
  	if (LOC1) nimGCunrefNoCycle(LOC1);
  	pushSafePoint(&T3062286716_24);
  	T3062286716_24.status = setjmp(T3062286716_24.context);
  	if (T3062286716_24.status == 0) {
  		NimStringDesc* LOC3;
  		LOC3 = (NimStringDesc*)0;
  		LOC3 = getstring_461037_2569374918(a0, ((NI) 0));
  		setcurrentdir_133601_2125978480(LOC3);
  		popSafePoint();
  	}
  	else {
  		popSafePoint();
  		if (isObj(getCurrentException()->Sup.m_type, (&NTI3630))) {
  			T3062286716_24.status = 0;
  			asgnRefNoCycle((void**) (&(*HEX3Aenvp_599207_3062286716).errormsg599079), getcurrentexceptionmsg_89605_1689653243());
  			popCurrentException();
  		}
  	}
  	if (T3062286716_24.status != 0) reraiseException();
  }
  
  N_CLOSURE(void, HEX3Aanonymous_599116_3062286716)(Vmargs345029* a0, void* ClEnv) {
  	TY599197* HEX3Aenvp_599208_3062286716;
  	NimStringDesc* LOC1;
  	TSafePoint T3062286716_26;
  	HEX3Aenvp_599208_3062286716 = (TY599197*) ClEnv;
  	LOC1 = (NimStringDesc*)0;
  	LOC1 = (*HEX3Aenvp_599208_3062286716).errormsg599079; (*HEX3Aenvp_599208_3062286716).errormsg599079 = copyStringRC1(NIM_NIL);
  	if (LOC1) nimGCunrefNoCycle(LOC1);
  	pushSafePoint(&T3062286716_26);
  	T3062286716_26.status = setjmp(T3062286716_26.context);
  	if (T3062286716_26.status == 0) {
  		NimStringDesc* LOC3;
  		LOC3 = (NimStringDesc*)0;
  		LOC3 = nosgetCurrentDir();
  		setresult_460900_2569374918(a0, LOC3);
  		popSafePoint();
  	}
  	else {
  		popSafePoint();
  		if (isObj(getCurrentException()->Sup.m_type, (&NTI3630))) {
  			T3062286716_26.status = 0;
  			asgnRefNoCycle((void**) (&(*HEX3Aenvp_599208_3062286716).errormsg599079), getcurrentexceptionmsg_89605_1689653243());
  			popCurrentException();
  		}
  	}
  	if (T3062286716_26.status != 0) reraiseException();
  }
  
  N_CLOSURE(void, HEX3Aanonymous_599119_3062286716)(Vmargs345029* a0, void* ClEnv) {
  	TY599197* HEX3Aenvp_599209_3062286716;
  	NimStringDesc* LOC1;
  	TSafePoint T3062286716_28;
  	HEX3Aenvp_599209_3062286716 = (TY599197*) ClEnv;
  	LOC1 = (NimStringDesc*)0;
  	LOC1 = (*HEX3Aenvp_599209_3062286716).errormsg599079; (*HEX3Aenvp_599209_3062286716).errormsg599079 = copyStringRC1(NIM_NIL);
  	if (LOC1) nimGCunrefNoCycle(LOC1);
  	pushSafePoint(&T3062286716_28);
  	T3062286716_28.status = setjmp(T3062286716_28.context);
  	if (T3062286716_28.status == 0) {
  		NimStringDesc* LOC3;
  		NimStringDesc* LOC4;
  		LOC3 = (NimStringDesc*)0;
  		LOC3 = getstring_461037_2569374918(a0, ((NI) 0));
  		LOC4 = (NimStringDesc*)0;
  		LOC4 = getstring_461037_2569374918(a0, ((NI) 1));
  		nosmoveFile(LOC3, LOC4);
  		popSafePoint();
  	}
  	else {
  		popSafePoint();
  		if (isObj(getCurrentException()->Sup.m_type, (&NTI3630))) {
  			T3062286716_28.status = 0;
  			asgnRefNoCycle((void**) (&(*HEX3Aenvp_599209_3062286716).errormsg599079), getcurrentexceptionmsg_89605_1689653243());
  			popCurrentException();
  		}
  	}
  	if (T3062286716_28.status != 0) reraiseException();
  }
  
  N_CLOSURE(void, HEX3Aanonymous_599122_3062286716)(Vmargs345029* a0, void* ClEnv) {
  	TY599197* HEX3Aenvp_599210_3062286716;
  	NimStringDesc* LOC1;
  	TSafePoint T3062286716_30;
  	HEX3Aenvp_599210_3062286716 = (TY599197*) ClEnv;
  	LOC1 = (NimStringDesc*)0;
  	LOC1 = (*HEX3Aenvp_599210_3062286716).errormsg599079; (*HEX3Aenvp_599210_3062286716).errormsg599079 = copyStringRC1(NIM_NIL);
  	if (LOC1) nimGCunrefNoCycle(LOC1);
  	pushSafePoint(&T3062286716_30);
  	T3062286716_30.status = setjmp(T3062286716_30.context);
  	if (T3062286716_30.status == 0) {
  		NimStringDesc* LOC3;
  		NimStringDesc* LOC4;
  		LOC3 = (NimStringDesc*)0;
  		LOC3 = getstring_461037_2569374918(a0, ((NI) 0));
  		LOC4 = (NimStringDesc*)0;
  		LOC4 = getstring_461037_2569374918(a0, ((NI) 1));
  		noscopyFile(LOC3, LOC4);
  		popSafePoint();
  	}
  	else {
  		popSafePoint();
  		if (isObj(getCurrentException()->Sup.m_type, (&NTI3630))) {
  			T3062286716_30.status = 0;
  			asgnRefNoCycle((void**) (&(*HEX3Aenvp_599210_3062286716).errormsg599079), getcurrentexceptionmsg_89605_1689653243());
  			popCurrentException();
  		}
  	}
  	if (T3062286716_30.status != 0) reraiseException();
  }
  
  N_CLOSURE(void, HEX3Aanonymous_599125_3062286716)(Vmargs345029* a0, void* ClEnv) {
  	TY599197* HEX3Aenvp_599211_3062286716;
  	NimStringDesc* LOC1;
  	TSafePoint T3062286716_32;
  	HEX3Aenvp_599211_3062286716 = (TY599197*) ClEnv;
  	LOC1 = (NimStringDesc*)0;
  	LOC1 = (*HEX3Aenvp_599211_3062286716).errormsg599079; (*HEX3Aenvp_599211_3062286716).errormsg599079 = copyStringRC1(NIM_NIL);
  	if (LOC1) nimGCunrefNoCycle(LOC1);
  	pushSafePoint(&T3062286716_32);
  	T3062286716_32.status = setjmp(T3062286716_32.context);
  	if (T3062286716_32.status == 0) {
  		NimStringDesc* LOC3;
  		time_t LOC4;
  		NF LOC5;
  		LOC3 = (NimStringDesc*)0;
  		LOC3 = getstring_461037_2569374918(a0, ((NI) 0));
  		LOC4 = (time_t)0;
  		LOC4 = nosgetLastModificationTime(LOC3);
  		LOC5 = (NF)0;
  		LOC5 = toseconds_114864_2726502234(LOC4);
  		setresult_460851_2569374918(a0, LOC5);
  		popSafePoint();
  	}
  	else {
  		popSafePoint();
  		if (isObj(getCurrentException()->Sup.m_type, (&NTI3630))) {
  			T3062286716_32.status = 0;
  			asgnRefNoCycle((void**) (&(*HEX3Aenvp_599211_3062286716).errormsg599079), getcurrentexceptionmsg_89605_1689653243());
  			popCurrentException();
  		}
  	}
  	if (T3062286716_32.status != 0) reraiseException();
  }
  
  N_CLOSURE(void, HEX3Aanonymous_599128_3062286716)(Vmargs345029* a0, void* ClEnv) {
  	TY599197* HEX3Aenvp_599212_3062286716;
  	NimStringDesc* LOC1;
  	TSafePoint T3062286716_34;
  	HEX3Aenvp_599212_3062286716 = (TY599197*) ClEnv;
  	LOC1 = (NimStringDesc*)0;
  	LOC1 = (*HEX3Aenvp_599212_3062286716).errormsg599079; (*HEX3Aenvp_599212_3062286716).errormsg599079 = copyStringRC1(NIM_NIL);
  	if (LOC1) nimGCunrefNoCycle(LOC1);
  	pushSafePoint(&T3062286716_34);
  	T3062286716_34.status = setjmp(T3062286716_34.context);
  	if (T3062286716_34.status == 0) {
  		NimStringDesc* LOC3;
  		NI LOC4;
  		LOC3 = (NimStringDesc*)0;
  		LOC3 = getstring_461037_2569374918(a0, ((NI) 0));
  		LOC4 = (NI)0;
  		LOC4 = nospexecCmd(LOC3);
  		setresult_460831_2569374918(a0, ((NI64) (LOC4)));
  		popSafePoint();
  	}
  	else {
  		popSafePoint();
  		if (isObj(getCurrentException()->Sup.m_type, (&NTI3630))) {
  			T3062286716_34.status = 0;
  			asgnRefNoCycle((void**) (&(*HEX3Aenvp_599212_3062286716).errormsg599079), getcurrentexceptionmsg_89605_1689653243());
  			popCurrentException();
  		}
  	}
  	if (T3062286716_34.status != 0) reraiseException();
  }
  
  N_NIMCALL(void, HEX3Aanonymous_599131_3062286716)(Vmargs345029* a0) {
  	NimStringDesc* LOC1;
  	NimStringDesc* LOC2;
  	LOC1 = (NimStringDesc*)0;
  	LOC1 = getstring_461037_2569374918(a0, ((NI) 0));
  	LOC2 = (NimStringDesc*)0;
  	LOC2 = getenv_136625_2125978480(LOC1);
  	setresult_460900_2569374918(a0, LOC2);
  }
  
  N_NIMCALL(void, HEX3Aanonymous_599134_3062286716)(Vmargs345029* a0) {
  	NimStringDesc* LOC1;
  	NIM_BOOL LOC2;
  	LOC1 = (NimStringDesc*)0;
  	LOC1 = getstring_461037_2569374918(a0, ((NI) 0));
  	LOC2 = (NIM_BOOL)0;
  	LOC2 = existsenv_136634_2125978480(LOC1);
  	setresult_460871_2569374918(a0, LOC2);
  }
  
  N_NIMCALL(void, HEX3Aanonymous_599137_3062286716)(Vmargs345029* a0) {
  	NimStringDesc* LOC1;
  	NIM_BOOL LOC2;
  	LOC1 = (NimStringDesc*)0;
  	LOC1 = getstring_461037_2569374918(a0, ((NI) 0));
  	LOC2 = (NIM_BOOL)0;
  	LOC2 = direxists_132608_2125978480(LOC1);
  	setresult_460871_2569374918(a0, LOC2);
  }
  
  static N_INLINE(NIM_BOOL, fileexists_132604_2125978480)(NimStringDesc* filename0) {
  	NIM_BOOL result0;
  	result0 = (NIM_BOOL)0;
  	result0 = nosexistsFile(filename0);
  	return result0;
  }
  
  N_NIMCALL(void, HEX3Aanonymous_599140_3062286716)(Vmargs345029* a0) {
  	NimStringDesc* LOC1;
  	NIM_BOOL LOC2;
  	LOC1 = (NimStringDesc*)0;
  	LOC1 = getstring_461037_2569374918(a0, ((NI) 0));
  	LOC2 = (NIM_BOOL)0;
  	LOC2 = fileexists_132604_2125978480(LOC1);
  	setresult_460871_2569374918(a0, LOC2);
  }
  
  N_CLOSURE(void, HEX3Aanonymous_599143_3062286716)(Vmargs345029* a0, void* ClEnv) {
  	TY599197* HEX3Aenvp_599213_3062286716;
  	HEX3Aenvp_599213_3062286716 = (TY599197*) ClEnv;
  	setresult_460900_2569374918(a0, (*HEX3Aenvp_599213_3062286716).vthisdir599080);
  }
  
  N_NIMCALL(void, HEX3Aanonymous_599146_3062286716)(Vmargs345029* a0) {
  	NimStringDesc* LOC1;
  	NimStringDesc* LOC2;
  	LOC1 = (NimStringDesc*)0;
  	LOC1 = getstring_461037_2569374918(a0, ((NI) 0));
  	LOC2 = (NimStringDesc*)0;
  	LOC2 = getstring_461037_2569374918(a0, ((NI) 1));
  	setconfigvar_171296_2607990831(LOC1, LOC2);
  }
  
  N_NIMCALL(void, HEX3Aanonymous_599149_3062286716)(Vmargs345029* a0) {
  	NimStringDesc* LOC1;
  	NimStringDesc* LOC2;
  	LOC1 = (NimStringDesc*)0;
  	LOC1 = getstring_461037_2569374918(a0, ((NI) 0));
  	LOC2 = (NimStringDesc*)0;
  	LOC2 = getconfigvar_171292_2607990831(LOC1);
  	setresult_460900_2569374918(a0, LOC2);
  }
  
  N_NIMCALL(void, HEX3Aanonymous_599152_3062286716)(Vmargs345029* a0) {
  	NimStringDesc* LOC1;
  	NIM_BOOL LOC2;
  	LOC1 = (NimStringDesc*)0;
  	LOC1 = getstring_461037_2569374918(a0, ((NI) 0));
  	LOC2 = (NIM_BOOL)0;
  	LOC2 = existsconfigvar_171288_2607990831(LOC1);
  	setresult_460871_2569374918(a0, LOC2);
  }
  
  N_NIMCALL(void, HEX3Aanonymous_599155_3062286716)(Vmargs345029* a0) {
  	NimStringDesc* LOC1;
  	LOC1 = (NimStringDesc*)0;
  	LOC1 = getnimcachedir_172081_2607990831();
  	setresult_460900_2569374918(a0, LOC1);
  }
  
  N_NIMCALL(void, HEX3Aanonymous_599158_3062286716)(Vmargs345029* a0) {
  	NI64 LOC1;
  	NimStringDesc* LOC2;
  	LOC1 = (NI64)0;
  	LOC1 = getint_460986_2569374918(a0, ((NI) 0));
  	LOC2 = (NimStringDesc*)0;
  	LOC2 = paramstr_144007_2125978480(((NI) (LOC1)));
  	setresult_460900_2569374918(a0, LOC2);
  }
  
  N_NIMCALL(void, HEX3Aanonymous_599161_3062286716)(Vmargs345029* a0) {
  	NI LOC1;
  	LOC1 = (NI)0;
  	LOC1 = paramcount_144026_2125978480();
  	setresult_460831_2569374918(a0, ((NI64) (LOC1)));
  }
  
  N_NIMCALL(void, HEX3Aanonymous_599164_3062286716)(Vmargs345029* a0) {
  	NimStringDesc* LOC1;
  	NimStringDesc* LOC2;
  	NI LOC3;
  	LOC1 = (NimStringDesc*)0;
  	LOC1 = getstring_461037_2569374918(a0, ((NI) 0));
  	LOC2 = (NimStringDesc*)0;
  	LOC2 = getstring_461037_2569374918(a0, ((NI) 1));
  	LOC3 = (NI)0;
  	LOC3 = nsuCmpIgnoreStyle(LOC1, LOC2);
  	setresult_460831_2569374918(a0, ((NI64) (LOC3)));
  }
  
  N_NIMCALL(void, HEX3Aanonymous_599167_3062286716)(Vmargs345029* a0) {
  	NimStringDesc* LOC1;
  	NimStringDesc* LOC2;
  	NI LOC3;
  	LOC1 = (NimStringDesc*)0;
  	LOC1 = getstring_461037_2569374918(a0, ((NI) 0));
  	LOC2 = (NimStringDesc*)0;
  	LOC2 = getstring_461037_2569374918(a0, ((NI) 1));
  	LOC3 = (NI)0;
  	LOC3 = nsuCmpIgnoreCase(LOC1, LOC2);
  	setresult_460831_2569374918(a0, ((NI64) (LOC3)));
  }
  
  N_NIMCALL(void, HEX3Aanonymous_599170_3062286716)(Vmargs345029* a0) {
  	NimStringDesc* arg0;
  	asgnRefNoCycle((void**) (&command_171215_2607990831), getstring_461037_2569374918(a0, ((NI) 0)));
  	arg0 = getstring_461037_2569374918(a0, ((NI) 1));
  	{
  		NimStringDesc* LOC5;
  		TSafePoint T3062286716_61;
  		if (!(((NI) 0) < (arg0 ? arg0->Sup.len : 0))) goto LA3;
  		LOC5 = (NimStringDesc*)0;
  		LOC5 = gprojectname_171209_2607990831; gprojectname_171209_2607990831 = copyStringRC1(arg0);
  		if (LOC5) nimGCunrefNoCycle(LOC5);
  		pushSafePoint(&T3062286716_61);
  		T3062286716_61.status = setjmp(T3062286716_61.context);
  		if (T3062286716_61.status == 0) {
  			NimStringDesc* LOC7;
  			LOC7 = (NimStringDesc*)0;
  			LOC7 = HEX2F_129265_2125978480(gprojectpath_171210_2607990831, gprojectname_171209_2607990831);
  			asgnRefNoCycle((void**) (&gprojectfull_171211_2607990831), canonicalizepath_171405_2607990831(LOC7));
  			popSafePoint();
  		}
  		else {
  			popSafePoint();
  			if (isObj(getCurrentException()->Sup.m_type, (&NTI3630))) {
  				NimStringDesc* LOC10;
  				T3062286716_61.status = 0;
  				LOC10 = (NimStringDesc*)0;
  				LOC10 = gprojectfull_171211_2607990831; gprojectfull_171211_2607990831 = copyStringRC1(gprojectname_171209_2607990831);
  				if (LOC10) nimGCunrefNoCycle(LOC10);
  				popCurrentException();
  			}
  		}
  		if (T3062286716_61.status != 0) reraiseException();
  	}
  	LA3: ;
  }
  
  N_NIMCALL(void, HEX3Aanonymous_599174_3062286716)(Vmargs345029* a0) {
  	setresult_460900_2569374918(a0, command_171215_2607990831);
  }
  
  N_NIMCALL(void, HEX3Aanonymous_599177_3062286716)(Vmargs345029* a0) {
  	NimStringDesc* LOC1;
  	NimStringDesc* LOC2;
  	Tlineinfo193336 LOC3;
  	LOC1 = (NimStringDesc*)0;
  	LOC1 = getstring_461037_2569374918(a0, ((NI) 0));
  	LOC2 = (NimStringDesc*)0;
  	LOC2 = getstring_461037_2569374918(a0, ((NI) 1));
  	LOC3 = unknownlineinfo_194083_155036129();
  	processswitch_282016_2004575671(LOC1, LOC2, ((Tcmdlinepass282008) 2), LOC3);
  }
  
  N_NIMCALL(void, HEX3Aanonymous_599180_3062286716)(Vmargs345029* a0) {
  	NimStringDesc* LOC1;
  	Tlineinfo193336 LOC2;
  	NimStringDesc* LOC3;
  	LOC1 = (NimStringDesc*)0;
  	LOC1 = getstring_461037_2569374918(a0, ((NI) 0));
  	LOC2 = unknownlineinfo_194083_155036129();
  	LOC3 = (NimStringDesc*)0;
  	LOC3 = getstring_461037_2569374918(a0, ((NI) 1));
  	processspecificnote_282370_2004575671(LOC1, ((Tspecialword277003) 116), ((Tcmdlinepass282008) 2), LOC2, LOC3);
  }
  
  N_NIMCALL(void, HEX3Aanonymous_599183_3062286716)(Vmargs345029* a0) {
  	NimStringDesc* LOC1;
  	Tlineinfo193336 LOC2;
  	NimStringDesc* LOC3;
  	LOC1 = (NimStringDesc*)0;
  	LOC1 = getstring_461037_2569374918(a0, ((NI) 0));
  	LOC2 = unknownlineinfo_194083_155036129();
  	LOC3 = (NimStringDesc*)0;
  	LOC3 = getstring_461037_2569374918(a0, ((NI) 1));
  	processspecificnote_282370_2004575671(LOC1, ((Tspecialword277003) 115), ((Tcmdlinepass282008) 2), LOC2, LOC3);
  }
  
  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_CLOSURE(void, HEX3Aanonymous_599186_3062286716)(Vmargs345029* a0, void* ClEnv) {
  	TY599197* HEX3Aenvp_599215_3062286716;
  	NimStringDesc* key0;
  	NimStringDesc* LOC1;
  	NimStringDesc* LOC2;
  	NimStringDesc* LOC3;
  	NimStringDesc* val0;
  	NimStringDesc* LOC4;
  	HEX3Aenvp_599215_3062286716 = (TY599197*) ClEnv;
  	LOC1 = (NimStringDesc*)0;
  	LOC2 = (NimStringDesc*)0;
  	LOC2 = getstring_461037_2569374918(a0, ((NI) 0));
  	LOC3 = (NimStringDesc*)0;
  	LOC3 = getstring_461037_2569374918(a0, ((NI) 1));
  	LOC1 = rawNewString(LOC2->Sup.len + LOC3->Sup.len + 1);
  appendString(LOC1, LOC2);
  appendString(LOC1, ((NimStringDesc*) &T3062286716_72));
  appendString(LOC1, LOC3);
  	key0 = LOC1;
  	LOC4 = (NimStringDesc*)0;
  	LOC4 = getstring_461037_2569374918(a0, ((NI) 2));
  	val0 = nosaddFileExt(LOC4, ((NimStringDesc*) &T3062286716_73));
  	{
  		NIM_BOOL LOC7;
  		LOC7 = (NIM_BOOL)0;
  		LOC7 = contains_110056_4286263276(val0, T3062286716_74);
  		if (!LOC7) goto LA8;
  		val0 = pathsubs_172084_2607990831(val0, (*HEX3Aenvp_599215_3062286716).vthisdir599080);
  	}
  	goto LA5;
  	LA8: ;
  	{
  		NIM_BOOL LOC11;
  		LOC11 = (NIM_BOOL)0;
  		LOC11 = nosisAbsolute(val0);
  		if (!!(LOC11)) goto LA12;
  		val0 = HEX2F_129265_2125978480((*HEX3Aenvp_599215_3062286716).vthisdir599080, val0);
  	}
  	goto LA5;
  	LA12: ;
  	LA5: ;
  	nstPut(gmoduleoverrides_171206_2607990831, key0, val0);
  }
  
  N_NIMCALL(void, HEX3Aanonymous_599193_3062286716)(Vmargs345029* a0) {
  	NimStringDesc* LOC1;
  	LOC1 = (NimStringDesc*)0;
  	LOC1 = nosgetAppFilename();
  	setresult_460900_2569374918(a0, LOC1);
  }
  
  N_NIMCALL(Tctx345035*, setupvm_599074_3062286716)(Tsym294834* module0, NimStringDesc* scriptname0) {
  	Tctx345035* result0;
  	TY599197* HEX3Aenv_599216_3062286716;
  	TY129506 LOC1;
  	NimStringDesc* LOC2;
  	Vmcallback345031 LOC3;
  	Vmcallback345031 LOC4;
  	Vmcallback345031 LOC5;
  	Vmcallback345031 LOC6;
  	Vmcallback345031 LOC7;
  	Vmcallback345031 LOC8;
  	Vmcallback345031 LOC9;
  	Vmcallback345031 LOC10;
  	Vmcallback345031 LOC11;
  	Vmcallback345031 LOC12;
  	Vmcallback345031 LOC13;
  	Vmcallback345031 LOC14;
  	Vmcallback345031 LOC15;
  	Vmcallback345031 LOC16;
  	Vmcallback345031 LOC17;
  	Vmcallback345031 LOC18;
  	Vmcallback345031 LOC19;
  	Vmcallback345031 LOC20;
  	Vmcallback345031 LOC21;
  	Vmcallback345031 LOC22;
  	Vmcallback345031 LOC23;
  	Vmcallback345031 LOC24;
  	Vmcallback345031 LOC25;
  	Vmcallback345031 LOC26;
  	Vmcallback345031 LOC27;
  	Vmcallback345031 LOC28;
  	Vmcallback345031 LOC29;
  	Vmcallback345031 LOC30;
  	Vmcallback345031 LOC31;
  	Vmcallback345031 LOC32;
  	Vmcallback345031 LOC33;
  	Vmcallback345031 LOC34;
  	result0 = (Tctx345035*)0;
  	HEX3Aenv_599216_3062286716 = (TY599197*)0;
  	HEX3Aenv_599216_3062286716 = (TY599197*) newObj((&NTI599196), sizeof(TY599197));
  	result0 = newctx_345286_984354655(module0);
  	(*result0).mode = ((Tevalmode345019) 0);
  	registeradditionalops_473135_2569374918(result0);
  	memset((void*)(&LOC1), 0, sizeof(LOC1));
  	nossplitFile(scriptname0, (&LOC1));
  	LOC2 = (NimStringDesc*)0;
  	LOC2 = (*HEX3Aenv_599216_3062286716).vthisdir599080; (*HEX3Aenv_599216_3062286716).vthisdir599080 = copyStringRC1(LOC1.Field0);
  	if (LOC2) nimGCunrefNoCycle(LOC2);
  	memset((void*)(&LOC3), 0, sizeof(LOC3));
  	LOC3.ClPrc = HEX3Aanonymous_599093_3062286716; LOC3.ClEnv = HEX3Aenv_599216_3062286716;
  	registercallback_345393_984354655(result0, ((NimStringDesc*) &T3062286716_7), LOC3);
  	memset((void*)(&LOC4), 0, sizeof(LOC4));
  	LOC4.ClPrc = HEX3Aanonymous_599097_3062286716; LOC4.ClEnv = HEX3Aenv_599216_3062286716;
  	registercallback_345393_984354655(result0, ((NimStringDesc*) &T3062286716_13), LOC4);
  	memset((void*)(&LOC5), 0, sizeof(LOC5));
  	LOC5.ClPrc = HEX3Aanonymous_599101_3062286716; LOC5.ClEnv = HEX3Aenv_599216_3062286716;
  	registercallback_345393_984354655(result0, ((NimStringDesc*) &T3062286716_15), LOC5);
  	memset((void*)(&LOC6), 0, sizeof(LOC6));
  	LOC6.ClPrc = HEX3Aanonymous_599104_3062286716; LOC6.ClEnv = HEX3Aenv_599216_3062286716;
  	registercallback_345393_984354655(result0, ((NimStringDesc*) &T3062286716_17), LOC6);
  	memset((void*)(&LOC7), 0, sizeof(LOC7));
  	LOC7.ClPrc = HEX3Aanonymous_599107_3062286716; LOC7.ClEnv = HEX3Aenv_599216_3062286716;
  	registercallback_345393_984354655(result0, ((NimStringDesc*) &T3062286716_19), LOC7);
  	memset((void*)(&LOC8), 0, sizeof(LOC8));
  	LOC8.ClPrc = HEX3Aanonymous_599110_3062286716; LOC8.ClEnv = HEX3Aenv_599216_3062286716;
  	registercallback_345393_984354655(result0, ((NimStringDesc*) &T3062286716_21), LOC8);
  	memset((void*)(&LOC9), 0, sizeof(LOC9));
  	LOC9.ClPrc = HEX3Aanonymous_599113_3062286716; LOC9.ClEnv = HEX3Aenv_599216_3062286716;
  	registercallback_345393_984354655(result0, ((NimStringDesc*) &T3062286716_23), LOC9);
  	memset((void*)(&LOC10), 0, sizeof(LOC10));
  	LOC10.ClPrc = HEX3Aanonymous_599116_3062286716; LOC10.ClEnv = HEX3Aenv_599216_3062286716;
  	registercallback_345393_984354655(result0, ((NimStringDesc*) &T3062286716_25), LOC10);
  	memset((void*)(&LOC11), 0, sizeof(LOC11));
  	LOC11.ClPrc = HEX3Aanonymous_599119_3062286716; LOC11.ClEnv = HEX3Aenv_599216_3062286716;
  	registercallback_345393_984354655(result0, ((NimStringDesc*) &T3062286716_27), LOC11);
  	memset((void*)(&LOC12), 0, sizeof(LOC12));
  	LOC12.ClPrc = HEX3Aanonymous_599122_3062286716; LOC12.ClEnv = HEX3Aenv_599216_3062286716;
  	registercallback_345393_984354655(result0, ((NimStringDesc*) &T3062286716_29), LOC12);
  	memset((void*)(&LOC13), 0, sizeof(LOC13));
  	LOC13.ClPrc = HEX3Aanonymous_599125_3062286716; LOC13.ClEnv = HEX3Aenv_599216_3062286716;
  	registercallback_345393_984354655(result0, ((NimStringDesc*) &T3062286716_31), LOC13);
  	memset((void*)(&LOC14), 0, sizeof(LOC14));
  	LOC14.ClPrc = HEX3Aanonymous_599128_3062286716; LOC14.ClEnv = HEX3Aenv_599216_3062286716;
  	registercallback_345393_984354655(result0, ((NimStringDesc*) &T3062286716_33), LOC14);
  	memset((void*)(&LOC15), 0, sizeof(LOC15));
  	LOC15.ClPrc = ((T3062286716_36) (HEX3Aanonymous_599131_3062286716)); LOC15.ClEnv = NIM_NIL;
  	registercallback_345393_984354655(result0, ((NimStringDesc*) &T3062286716_35), LOC15);
  	memset((void*)(&LOC16), 0, sizeof(LOC16));
  	LOC16.ClPrc = ((T3062286716_38) (HEX3Aanonymous_599134_3062286716)); LOC16.ClEnv = NIM_NIL;
  	registercallback_345393_984354655(result0, ((NimStringDesc*) &T3062286716_37), LOC16);
  	memset((void*)(&LOC17), 0, sizeof(LOC17));
  	LOC17.ClPrc = ((T3062286716_40) (HEX3Aanonymous_599137_3062286716)); LOC17.ClEnv = NIM_NIL;
  	registercallback_345393_984354655(result0, ((NimStringDesc*) &T3062286716_39), LOC17);
  	memset((void*)(&LOC18), 0, sizeof(LOC18));
  	LOC18.ClPrc = ((T3062286716_42) (HEX3Aanonymous_599140_3062286716)); LOC18.ClEnv = NIM_NIL;
  	registercallback_345393_984354655(result0, ((NimStringDesc*) &T3062286716_41), LOC18);
  	memset((void*)(&LOC19), 0, sizeof(LOC19));
  	LOC19.ClPrc = HEX3Aanonymous_599143_3062286716; LOC19.ClEnv = HEX3Aenv_599216_3062286716;
  	registercallback_345393_984354655(result0, ((NimStringDesc*) &T3062286716_43), LOC19);
  	memset((void*)(&LOC20), 0, sizeof(LOC20));
  	LOC20.ClPrc = ((T3062286716_45) (HEX3Aanonymous_599146_3062286716)); LOC20.ClEnv = NIM_NIL;
  	registercallback_345393_984354655(result0, ((NimStringDesc*) &T3062286716_44), LOC20);
  	memset((void*)(&LOC21), 0, sizeof(LOC21));
  	LOC21.ClPrc = ((T3062286716_47) (HEX3Aanonymous_599149_3062286716)); LOC21.ClEnv = NIM_NIL;
  	registercallback_345393_984354655(result0, ((NimStringDesc*) &T3062286716_46), LOC21);
  	memset((void*)(&LOC22), 0, sizeof(LOC22));
  	LOC22.ClPrc = ((T3062286716_49) (HEX3Aanonymous_599152_3062286716)); LOC22.ClEnv = NIM_NIL;
  	registercallback_345393_984354655(result0, ((NimStringDesc*) &T3062286716_48), LOC22);
  	memset((void*)(&LOC23), 0, sizeof(LOC23));
  	LOC23.ClPrc = ((T3062286716_51) (HEX3Aanonymous_599155_3062286716)); LOC23.ClEnv = NIM_NIL;
  	registercallback_345393_984354655(result0, ((NimStringDesc*) &T3062286716_50), LOC23);
  	memset((void*)(&LOC24), 0, sizeof(LOC24));
  	LOC24.ClPrc = ((T3062286716_53) (HEX3Aanonymous_599158_3062286716)); LOC24.ClEnv = NIM_NIL;
  	registercallback_345393_984354655(result0, ((NimStringDesc*) &T3062286716_52), LOC24);
  	memset((void*)(&LOC25), 0, sizeof(LOC25));
  	LOC25.ClPrc = ((T3062286716_55) (HEX3Aanonymous_599161_3062286716)); LOC25.ClEnv = NIM_NIL;
  	registercallback_345393_984354655(result0, ((NimStringDesc*) &T3062286716_54), LOC25);
  	memset((void*)(&LOC26), 0, sizeof(LOC26));
  	LOC26.ClPrc = ((T3062286716_57) (HEX3Aanonymous_599164_3062286716)); LOC26.ClEnv = NIM_NIL;
  	registercallback_345393_984354655(result0, ((NimStringDesc*) &T3062286716_56), LOC26);
  	memset((void*)(&LOC27), 0, sizeof(LOC27));
  	LOC27.ClPrc = ((T3062286716_59) (HEX3Aanonymous_599167_3062286716)); LOC27.ClEnv = NIM_NIL;
  	registercallback_345393_984354655(result0, ((NimStringDesc*) &T3062286716_58), LOC27);
  	memset((void*)(&LOC28), 0, sizeof(LOC28));
  	LOC28.ClPrc = ((T3062286716_62) (HEX3Aanonymous_599170_3062286716)); LOC28.ClEnv = NIM_NIL;
  	registercallback_345393_984354655(result0, ((NimStringDesc*) &T3062286716_60), LOC28);
  	memset((void*)(&LOC29), 0, sizeof(LOC29));
  	LOC29.ClPrc = ((T3062286716_64) (HEX3Aanonymous_599174_3062286716)); LOC29.ClEnv = NIM_NIL;
  	registercallback_345393_984354655(result0, ((NimStringDesc*) &T3062286716_63), LOC29);
  	memset((void*)(&LOC30), 0, sizeof(LOC30));
  	LOC30.ClPrc = ((T3062286716_66) (HEX3Aanonymous_599177_3062286716)); LOC30.ClEnv = NIM_NIL;
  	registercallback_345393_984354655(result0, ((NimStringDesc*) &T3062286716_65), LOC30);
  	memset((void*)(&LOC31), 0, sizeof(LOC31));
  	LOC31.ClPrc = ((T3062286716_68) (HEX3Aanonymous_599180_3062286716)); LOC31.ClEnv = NIM_NIL;
  	registercallback_345393_984354655(result0, ((NimStringDesc*) &T3062286716_67), LOC31);
  	memset((void*)(&LOC32), 0, sizeof(LOC32));
  	LOC32.ClPrc = ((T3062286716_70) (HEX3Aanonymous_599183_3062286716)); LOC32.ClEnv = NIM_NIL;
  	registercallback_345393_984354655(result0, ((NimStringDesc*) &T3062286716_69), LOC32);
  	memset((void*)(&LOC33), 0, sizeof(LOC33));
  	LOC33.ClPrc = HEX3Aanonymous_599186_3062286716; LOC33.ClEnv = HEX3Aenv_599216_3062286716;
  	registercallback_345393_984354655(result0, ((NimStringDesc*) &T3062286716_71), LOC33);
  	memset((void*)(&LOC34), 0, sizeof(LOC34));
  	LOC34.ClPrc = ((T3062286716_76) (HEX3Aanonymous_599193_3062286716)); LOC34.ClEnv = NIM_NIL;
  	registercallback_345393_984354655(result0, ((NimStringDesc*) &T3062286716_75), LOC34);
  	return result0;
  }
  
  N_NIMCALL(void, runnimscript_599218_3062286716)(NimStringDesc* scriptname0, NIM_BOOL freshdefines0) {
  	Tpass343014 LOC5;
  	Tpass343014 LOC6;
  	Tsym294834* m0;
  	Tllstream284204* LOC7;
  	NIM_BOOL LOC8;
  	gincludefile_343078_2355241294 = includemodule_595861_3338220056;
  	gimportmodule_343073_2355241294 = importmodule_595842_3338220056;
  	{
  		if (!freshdefines0) goto LA3;
  		initdefines_202193_1967573533();
  	}
  	LA3: ;
  	definesymbol_202004_1967573533(((NimStringDesc*) &T3062286716_2), ((NimStringDesc*) &T3062286716_3));
  	definesymbol_202004_1967573533(((NimStringDesc*) &T3062286716_4), ((NimStringDesc*) &T3062286716_3));
  	LOC5.Field0 = myopen_529227_998339756;
  	LOC5.Field1 = myopencached_529273_998339756;
  	LOC5.Field2 = myprocess_529463_998339756;
  	LOC5.Field3 = myclose_529473_998339756;
  	registerpass_343167_2355241294(LOC5);
  	LOC6.Field0 = myopen_473258_2569374918;
  	LOC6.Field1 = NIM_NIL;
  	LOC6.Field2 = myprocess_473403_2569374918;
  	LOC6.Field3 = myprocess_473403_2569374918;
  	registerpass_343167_2355241294(LOC6);
  	appendstr_148244_3771138726((&searchpaths_171134_2607990831), libpath_171208_2607990831);
  	m0 = makemodule_595922_3338220056(scriptname0);
  	(*m0).flags |= ((NU32)1)<<((((Tsymflag294184) 12))%(sizeof(NU32)*8));
  	asgnRef((void**) (&globalctx_473241_2569374918), setupvm_599074_3062286716(m0, scriptname0));
  	compilesystemmodule_595894_3338220056();
  	LOC7 = (Tllstream284204*)0;
  	LOC7 = llstreamopen_284242_597494479(scriptname0, ((Filemode13009) 0));
  	LOC8 = (NIM_BOOL)0;
  	LOC8 = processmodule_343490_2355241294(m0, LOC7, NIM_NIL);
  	resetallmoduleshard_595354_3338220056();
  	asgnRef((void**) (&globalctx_473241_2569374918), NIM_NIL);
  	undefsymbol_202008_1967573533(((NimStringDesc*) &T3062286716_2));
  	undefsymbol_202008_1967573533(((NimStringDesc*) &T3062286716_4));
  }
  NIM_EXTERNC N_NOINLINE(void, compiler_scriptconfigInit000)(void) {
  }
  
  NIM_EXTERNC N_NOINLINE(void, compiler_scriptconfigDatInit000)(void) {
  static TNimNode* T3062286716_5[3];
  static TNimNode T3062286716_0[4];
  NTI599197.size = sizeof(TY599197);
  NTI599197.kind = 18;
  NTI599197.base = 0;
  NTI599197.flags = 2;
  T3062286716_5[0] = &T3062286716_0[1];
  T3062286716_0[1].kind = 1;
  T3062286716_0[1].offset = offsetof(TY599197, HEX3Astate);
  T3062286716_0[1].typ = (&NTI104021);
  T3062286716_0[1].name = ":state";
  T3062286716_5[1] = &T3062286716_0[2];
  T3062286716_0[2].kind = 1;
  T3062286716_0[2].offset = offsetof(TY599197, errormsg599079);
  T3062286716_0[2].typ = (&NTI138);
  T3062286716_0[2].name = "errorMsg599079";
  T3062286716_5[2] = &T3062286716_0[3];
  T3062286716_0[3].kind = 1;
  T3062286716_0[3].offset = offsetof(TY599197, vthisdir599080);
  T3062286716_0[3].typ = (&NTI138);
  T3062286716_0[3].name = "vthisDir599080";
  T3062286716_0[0].len = 3; T3062286716_0[0].kind = 2; T3062286716_0[0].sons = &T3062286716_5[0];
  NTI599197.node = &T3062286716_0[0];
  NTI599196.size = sizeof(TY599197*);
  NTI599196.kind = 22;
  NTI599196.base = (&NTI599197);
  NTI599196.flags = 2;
  NTI599196.marker = T3062286716_6;
  }
  
  