/* Generated by Nim Compiler v0.16.0 */
/*   (c) 2017 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 <stdio.h>
#undef linux
typedef struct IdentcacheHEX3Aobjecttype_TzLHS09bRH9a0TYLs39cqcNaw IdentcacheHEX3Aobjecttype_TzLHS09bRH9a0TYLs39cqcNaw;
typedef struct NimStringDesc NimStringDesc;
typedef struct TGenericSeq TGenericSeq;
typedef struct Cell_1zcF9cV8XIAtbN8h5HRUB8g Cell_1zcF9cV8XIAtbN8h5HRUB8g;
typedef struct TNimType TNimType;
typedef struct Cellseq_Axo1XVm9aaQueTOldv8le5w Cellseq_Axo1XVm9aaQueTOldv8le5w;
typedef struct Gcheap_1TRH1TZMaVZTnLNcIHuNFQ Gcheap_1TRH1TZMaVZTnLNcIHuNFQ;
typedef struct Gcstack_7fytPA5bBsob6See21YMRA Gcstack_7fytPA5bBsob6See21YMRA;
typedef struct Memregion_x81NhDv59b8ercDZ9bi85jyg Memregion_x81NhDv59b8ercDZ9bi85jyg;
typedef struct Smallchunk_tXn60W2f8h3jgAYdEmy5NQ Smallchunk_tXn60W2f8h3jgAYdEmy5NQ;
typedef struct Llchunk_XsENErzHIZV9bhvyJx56wGw Llchunk_XsENErzHIZV9bhvyJx56wGw;
typedef struct Bigchunk_Rv9c70Uhp2TytkX7eH78qEg Bigchunk_Rv9c70Uhp2TytkX7eH78qEg;
typedef struct Intset_EZObFrE3NC9bIb3YMkY9crZA Intset_EZObFrE3NC9bIb3YMkY9crZA;
typedef struct Trunk_W0r8S0Y3UGke6T9bIUWnnuw Trunk_W0r8S0Y3UGke6T9bIUWnnuw;
typedef struct Avlnode_IaqjtwKhxLEpvDS9bct9blEw Avlnode_IaqjtwKhxLEpvDS9bct9blEw;
typedef struct Gcstat_0RwLoVBHZPfUAcLczmfQAg Gcstat_0RwLoVBHZPfUAcLczmfQAg;
typedef struct Cellset_jG87P0AI9aZtss9ccTYBIISQ Cellset_jG87P0AI9aZtss9ccTYBIISQ;
typedef struct Pagedesc_fublkgIY4LG3mT51LU2WHg Pagedesc_fublkgIY4LG3mT51LU2WHg;
typedef struct Exception Exception;
typedef struct TNimObject TNimObject;
typedef struct TNimNode TNimNode;
typedef struct TSafePoint TSafePoint;
typedef struct TY_7q7q3E6Oj24ZNVJb9aonhAg TY_7q7q3E6Oj24ZNVJb9aonhAg;
typedef struct ModulegraphHEX3Aobjecttype_RZI3hCs0FTPYx8StfC81qQ ModulegraphHEX3Aobjecttype_RZI3hCs0FTPYx8StfC81qQ;
typedef struct Tident_4umxGerWTHGPwUms7Yqu3g Tident_4umxGerWTHGPwUms7Yqu3g;
typedef struct Basechunk_Sdq7WpT6qAH858F5ZEdG3w Basechunk_Sdq7WpT6qAH858F5ZEdG3w;
typedef struct Freecell_u6M5LHprqzkn9axr04yg9bGQ Freecell_u6M5LHprqzkn9axr04yg9bGQ;
typedef struct TY_sksVpmPRIkNR9axiwtD1Guw TY_sksVpmPRIkNR9axiwtD1Guw;
typedef struct Tstrtable_f07aOS3dr28kGa5wcE29aFA Tstrtable_f07aOS3dr28kGa5wcE29aFA;
typedef struct Intset_PQrmFm4BXFkFSVOUl1ojSg Intset_PQrmFm4BXFkFSVOUl1ojSg;
typedef struct Trunk_ul49aWfv9aes8cutmeltT3gQ Trunk_ul49aWfv9aes8cutmeltT3gQ;
typedef struct TY_9brg1xNurxcus33lU4IE1Dw TY_9brg1xNurxcus33lU4IE1Dw;
typedef struct Table_tfmlwa8ktiw8woWAs5vhtQ Table_tfmlwa8ktiw8woWAs5vhtQ;
typedef struct TY_kxu4GK0onha2t9bo86mdVAg TY_kxu4GK0onha2t9bo86mdVAg;
typedef struct TY_48JTohSgTy339bRxHzUD8KA TY_48JTohSgTy339bRxHzUD8KA;
typedef struct Tidobj_raN9cHVgzmvaXisezY9aGg9cg Tidobj_raN9cHVgzmvaXisezY9aGg9cg;
typedef struct Tsym_AXG7xcvKqaxY6koRX1xkCw Tsym_AXG7xcvKqaxY6koRX1xkCw;
typedef struct TY_xDU9bZmv1ZbZkJDaATBekIQ TY_xDU9bZmv1ZbZkJDaATBekIQ;
typedef struct TY_zuqP4Riz26Oi5fWgPYVEgA TY_zuqP4Riz26Oi5fWgPYVEgA;
typedef struct TY_DXS6mEo7PVUFJkirsQ9bNQA TY_DXS6mEo7PVUFJkirsQ9bNQA;
typedef struct Ttype_LTUWCZolpovw9cWE3JBWSUw Ttype_LTUWCZolpovw9cWE3JBWSUw;
typedef struct Tlineinfo_T9c3PM9bs7WZ4LIQfEici9cZw Tlineinfo_T9c3PM9bs7WZ4LIQfEici9cZw;
typedef struct Tnode_bROa11lyF5vxEN9aYNbHmhw Tnode_bROa11lyF5vxEN9aYNbHmhw;
typedef struct Tloc_EtHNvCB0bgfu9bFjzx9cb6aA Tloc_EtHNvCB0bgfu9bFjzx9cb6aA;
typedef struct Ropeobj_HF4qJnb6xiOddgPmsxodtQ Ropeobj_HF4qJnb6xiOddgPmsxodtQ;
typedef struct Tlib_4f9aBgmqEuj7uWJdBBGcRgA Tlib_4f9aBgmqEuj7uWJdBBGcRgA;
typedef struct Tinstantiation_5LqgVn6Tq9ainQRK7TQAQxA Tinstantiation_5LqgVn6Tq9ainQRK7TQAQxA;
typedef struct TY_iGkpo9aKQdr3NWelKC4cnJA TY_iGkpo9aKQdr3NWelKC4cnJA;
typedef struct TY_ehmV9bTklH2Gt9cXHV9c0HLeQ TY_ehmV9bTklH2Gt9cXHV9c0HLeQ;
typedef struct Tlistentry_U4JkVlrJQaACKZ9a9cwCla3Q Tlistentry_U4JkVlrJQaACKZ9a9cwCla3Q;
typedef struct TY_a09bGTAl9ceOKTAytYdkbyKg TY_a09bGTAl9ceOKTAytYdkbyKg;
typedef NU8 Tcmdlinepass_IiBn9cB6WYIMDHOT44O82wA;
struct  TGenericSeq  {
NI len;
NI reserved;
};
struct  NimStringDesc  {
  TGenericSeq Sup;
NIM_CHAR data[SEQ_DECL_SIZE];
};
struct  Cell_1zcF9cV8XIAtbN8h5HRUB8g  {
NI refcount;
TNimType* typ;
};
struct  Cellseq_Axo1XVm9aaQueTOldv8le5w  {
NI len;
NI cap;
Cell_1zcF9cV8XIAtbN8h5HRUB8g** d;
};
typedef Smallchunk_tXn60W2f8h3jgAYdEmy5NQ* TY_SiRwrEKZdLgxqz9a9aoVBglg[512];
typedef Trunk_W0r8S0Y3UGke6T9bIUWnnuw* TY_lh2A89ahMmYg9bCmpVaplLbA[256];
struct  Intset_EZObFrE3NC9bIb3YMkY9crZA  {
TY_lh2A89ahMmYg9bCmpVaplLbA data;
};
struct  Memregion_x81NhDv59b8ercDZ9bi85jyg  {
NI minlargeobj;
NI maxlargeobj;
TY_SiRwrEKZdLgxqz9a9aoVBglg freesmallchunks;
Llchunk_XsENErzHIZV9bhvyJx56wGw* llmem;
NI currmem;
NI maxmem;
NI freemem;
NI lastsize;
Bigchunk_Rv9c70Uhp2TytkX7eH78qEg* freechunkslist;
Intset_EZObFrE3NC9bIb3YMkY9crZA chunkstarts;
Avlnode_IaqjtwKhxLEpvDS9bct9blEw* root;
Avlnode_IaqjtwKhxLEpvDS9bct9blEw* deleted;
Avlnode_IaqjtwKhxLEpvDS9bct9blEw* last;
Avlnode_IaqjtwKhxLEpvDS9bct9blEw* freeavlnodes;
NIM_BOOL locked;
NIM_BOOL blockchunksizeincrease;
NI nextchunksize;
};
struct  Gcstat_0RwLoVBHZPfUAcLczmfQAg  {
NI stackscans;
NI cyclecollections;
NI maxthreshold;
NI maxstacksize;
NI maxstackcells;
NI cycletablesize;
NI64 maxpause;
};
struct  Cellset_jG87P0AI9aZtss9ccTYBIISQ  {
NI counter;
NI max;
Pagedesc_fublkgIY4LG3mT51LU2WHg* head;
Pagedesc_fublkgIY4LG3mT51LU2WHg** data;
};
struct  Gcheap_1TRH1TZMaVZTnLNcIHuNFQ  {
Gcstack_7fytPA5bBsob6See21YMRA* stack;
void* stackbottom;
NI cyclethreshold;
Cellseq_Axo1XVm9aaQueTOldv8le5w zct;
Cellseq_Axo1XVm9aaQueTOldv8le5w decstack;
Cellseq_Axo1XVm9aaQueTOldv8le5w tempstack;
NI recgclock;
Memregion_x81NhDv59b8ercDZ9bi85jyg region;
Gcstat_0RwLoVBHZPfUAcLczmfQAg stat;
Cellset_jG87P0AI9aZtss9ccTYBIISQ marked;
Cellseq_Axo1XVm9aaQueTOldv8le5w additionalroots;
};
typedef NU8 Tnimkind_jIBKr1ejBgsfM33Kxw4j7A;
typedef NU8 Tnimtypeflag_v8QUszD1sWlSIWZz7mC4bQ_Set;
typedef N_NIMCALL_PTR(void, TY_ojoeKfW4VYIm36I9cpDTQIg) (void* p0, NI op0);
typedef N_NIMCALL_PTR(void*, TY_WSm2xU5ARYv9aAR4l0z9c9auQ) (void* p0);
struct  TNimType  {
NI size;
Tnimkind_jIBKr1ejBgsfM33Kxw4j7A kind;
Tnimtypeflag_v8QUszD1sWlSIWZz7mC4bQ_Set flags;
TNimType* base;
TNimNode* node;
void* finalizer;
TY_ojoeKfW4VYIm36I9cpDTQIg marker;
TY_WSm2xU5ARYv9aAR4l0z9c9auQ deepcopy;
};
struct  TNimObject  {
TNimType* m_type;
};
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;
} TY_KeeAOYBd84Ofsw6Y7LizaQ;
struct  TSafePoint  {
TSafePoint* prev;
NI status;
jmp_buf context;
NIM_BOOL hasRaiseAction;
TY_KeeAOYBd84Ofsw6Y7LizaQ raiseAction;
};
typedef NU8 Tnimnodekind_unfNsxrcATrufDZmpBq4HQ;
struct  TNimNode  {
Tnimnodekind_unfNsxrcATrufDZmpBq4HQ kind;
NI offset;
TNimType* typ;
NCSTRING name;
NI len;
TNimNode** sons;
};
struct TY_7q7q3E6Oj24ZNVJb9aonhAg {
NimStringDesc* Field0;
NimStringDesc* Field1;
NimStringDesc* Field2;
};
typedef NU16 Tmsgkind_IGAWgv9aR2KqPKJfPZPEWaw;
typedef NU32 Toption_WspMeQySXNP2XoTWR5MTgg_Set;
typedef NU8 Toption_WspMeQySXNP2XoTWR5MTgg;
typedef NU64 Tmsgkind_nDM9aiGzuSlpuw3CrqwaebA_Set;
typedef NU16 Tmsgkind_nDM9aiGzuSlpuw3CrqwaebA;
typedef NU64 Tglobaloption_RAfAEZqjnKMDumgyKKc1qw_Set;
typedef NU8 Tglobaloption_RAfAEZqjnKMDumgyKKc1qw;
typedef NU8 Tcommands_VH3ghgQVwLSg3krOAoXigw;
typedef Tident_4umxGerWTHGPwUms7Yqu3g* TY_CBfZt49asUfAsBVM7a3Rc9cw[8192];
struct  IdentcacheHEX3Aobjecttype_TzLHS09bRH9a0TYLs39cqcNaw  {
TY_CBfZt49asUfAsBVM7a3Rc9cw buckets;
NI wordcounter;
Tident_4umxGerWTHGPwUms7Yqu3g* idanon;
Tident_4umxGerWTHGPwUms7Yqu3g* iddelegator;
Tident_4umxGerWTHGPwUms7Yqu3g* emptyident;
};
struct  Gcstack_7fytPA5bBsob6See21YMRA  {
Gcstack_7fytPA5bBsob6See21YMRA* prev;
Gcstack_7fytPA5bBsob6See21YMRA* next;
void* starts;
void* pos;
NI maxstacksize;
};
struct  Basechunk_Sdq7WpT6qAH858F5ZEdG3w  {
NI prevsize;
NI size;
NIM_BOOL used;
};
struct  Smallchunk_tXn60W2f8h3jgAYdEmy5NQ  {
  Basechunk_Sdq7WpT6qAH858F5ZEdG3w Sup;
Smallchunk_tXn60W2f8h3jgAYdEmy5NQ* next;
Smallchunk_tXn60W2f8h3jgAYdEmy5NQ* prev;
Freecell_u6M5LHprqzkn9axr04yg9bGQ* freelist;
NI free;
NI acc;
NF data;
};
struct  Llchunk_XsENErzHIZV9bhvyJx56wGw  {
NI size;
NI acc;
Llchunk_XsENErzHIZV9bhvyJx56wGw* next;
};
struct  Bigchunk_Rv9c70Uhp2TytkX7eH78qEg  {
  Basechunk_Sdq7WpT6qAH858F5ZEdG3w Sup;
Bigchunk_Rv9c70Uhp2TytkX7eH78qEg* next;
Bigchunk_Rv9c70Uhp2TytkX7eH78qEg* prev;
NI align;
NF data;
};
typedef NI TY_9agrCtWKhCnWWMJpKKugJag[16];
struct  Trunk_W0r8S0Y3UGke6T9bIUWnnuw  {
Trunk_W0r8S0Y3UGke6T9bIUWnnuw* next;
NI key;
TY_9agrCtWKhCnWWMJpKKugJag bits;
};
typedef Avlnode_IaqjtwKhxLEpvDS9bct9blEw* TY_0aOLqZchNi8nWtMTi8ND8w[2];
struct  Avlnode_IaqjtwKhxLEpvDS9bct9blEw  {
TY_0aOLqZchNi8nWtMTi8ND8w link;
NI key;
NI upperbound;
NI level;
};
struct  Pagedesc_fublkgIY4LG3mT51LU2WHg  {
Pagedesc_fublkgIY4LG3mT51LU2WHg* next;
NI key;
TY_9agrCtWKhCnWWMJpKKugJag bits;
};
struct  Tstrtable_f07aOS3dr28kGa5wcE29aFA  {
NI counter;
TY_sksVpmPRIkNR9axiwtD1Guw* data;
};
struct  Intset_PQrmFm4BXFkFSVOUl1ojSg  {
NI counter;
NI max;
Trunk_ul49aWfv9aes8cutmeltT3gQ* head;
TY_9brg1xNurxcus33lU4IE1Dw* data;
};
struct  Table_tfmlwa8ktiw8woWAs5vhtQ  {
TY_kxu4GK0onha2t9bo86mdVAg* data;
NI counter;
};
struct  ModulegraphHEX3Aobjecttype_RZI3hCs0FTPYx8StfC81qQ  {
TY_sksVpmPRIkNR9axiwtD1Guw* modules;
Tstrtable_f07aOS3dr28kGa5wcE29aFA packagesyms;
Intset_PQrmFm4BXFkFSVOUl1ojSg deps;
NIM_BOOL suggestmode;
NIM_BOOL invalidtransitiveclosure;
Table_tfmlwa8ktiw8woWAs5vhtQ incltomod;
TY_48JTohSgTy339bRxHzUD8KA* importstack;
TNimObject* backend;
};
struct  Tidobj_raN9cHVgzmvaXisezY9aGg9cg  {
  TNimObject Sup;
NI id;
};
struct  Tident_4umxGerWTHGPwUms7Yqu3g  {
  Tidobj_raN9cHVgzmvaXisezY9aGg9cg Sup;
NimStringDesc* s;
Tident_4umxGerWTHGPwUms7Yqu3g* next;
NI h;
};
struct  Freecell_u6M5LHprqzkn9axr04yg9bGQ  {
Freecell_u6M5LHprqzkn9axr04yg9bGQ* next;
NI zerofield;
};
struct  Trunk_ul49aWfv9aes8cutmeltT3gQ  {
Trunk_ul49aWfv9aes8cutmeltT3gQ* next;
NI key;
TY_9agrCtWKhCnWWMJpKKugJag bits;
};
struct TY_xDU9bZmv1ZbZkJDaATBekIQ {
NI Field0;
NI32 Field1;
NI32 Field2;
};
typedef NU8 Tsymkind_cNCW9acsSznmEccl1fgQwkw;
typedef NU16 Tmagic_shZhZOdbVC5nnFvcXQAImg;
struct  Tlineinfo_T9c3PM9bs7WZ4LIQfEici9cZw  {
NI16 line;
NI16 col;
NI32 fileindex;
};
typedef NU32 Tsymflag_K9ay6LWMat9bUiT9bIbMxpDHw_Set;
typedef NU8 Tlockind_O7PRFZKuiBBWbku09cayVBg;
typedef NU8 Tstorageloc_JK9cKMX3XnqHaUky9b6gkGEw;
typedef NU16 Tlocflag_o2bqJgR4ceIupnUSpxiudA_Set;
struct  Tloc_EtHNvCB0bgfu9bFjzx9cb6aA  {
Tlockind_O7PRFZKuiBBWbku09cayVBg k;
Tstorageloc_JK9cKMX3XnqHaUky9b6gkGEw s;
Tlocflag_o2bqJgR4ceIupnUSpxiudA_Set flags;
Ttype_LTUWCZolpovw9cWE3JBWSUw* t;
Ropeobj_HF4qJnb6xiOddgPmsxodtQ* r;
};
struct  Tsym_AXG7xcvKqaxY6koRX1xkCw  {
  Tidobj_raN9cHVgzmvaXisezY9aGg9cg Sup;
Tsymkind_cNCW9acsSznmEccl1fgQwkw kind;
union{
struct {TY_zuqP4Riz26Oi5fWgPYVEgA* typeinstcache;
} S1;
struct {TY_DXS6mEo7PVUFJkirsQ9bNQA* procinstcache;
Tsym_AXG7xcvKqaxY6koRX1xkCw* gcunsafetyreason;
} S2;
struct {TY_DXS6mEo7PVUFJkirsQ9bNQA* usedgenerics;
Tstrtable_f07aOS3dr28kGa5wcE29aFA tab;
} S3;
struct {Tsym_AXG7xcvKqaxY6koRX1xkCw* guard;
NI bitsize;
} S4;
} kindU;
Tmagic_shZhZOdbVC5nnFvcXQAImg magic;
Ttype_LTUWCZolpovw9cWE3JBWSUw* typ;
Tident_4umxGerWTHGPwUms7Yqu3g* name;
Tlineinfo_T9c3PM9bs7WZ4LIQfEici9cZw info;
Tsym_AXG7xcvKqaxY6koRX1xkCw* owner;
Tsymflag_K9ay6LWMat9bUiT9bIbMxpDHw_Set flags;
Tnode_bROa11lyF5vxEN9aYNbHmhw* ast;
Toption_WspMeQySXNP2XoTWR5MTgg_Set options;
NI position;
NI offset;
Tloc_EtHNvCB0bgfu9bFjzx9cb6aA loc;
Tlib_4f9aBgmqEuj7uWJdBBGcRgA* annex;
Tnode_bROa11lyF5vxEN9aYNbHmhw* constraint;
};
typedef NU8 Ttypekind_9a3YiReNVD0IJHWFKgXRe9ag;
typedef NU8 Tcallingconvention_yjAJ8w0h1PBaSwSGJ3P7IA;
typedef NU32 Ttypeflag_x2m5g1NpbmDig4wLT3Ylhw_Set;
struct  Ttype_LTUWCZolpovw9cWE3JBWSUw  {
  Tidobj_raN9cHVgzmvaXisezY9aGg9cg Sup;
Ttypekind_9a3YiReNVD0IJHWFKgXRe9ag kind;
Tcallingconvention_yjAJ8w0h1PBaSwSGJ3P7IA callconv;
Ttypeflag_x2m5g1NpbmDig4wLT3Ylhw_Set flags;
TY_zuqP4Riz26Oi5fWgPYVEgA* sons;
Tnode_bROa11lyF5vxEN9aYNbHmhw* n;
Tsym_AXG7xcvKqaxY6koRX1xkCw* owner;
Tsym_AXG7xcvKqaxY6koRX1xkCw* sym;
Tsym_AXG7xcvKqaxY6koRX1xkCw* destructor;
Tsym_AXG7xcvKqaxY6koRX1xkCw* deepcopy;
Tsym_AXG7xcvKqaxY6koRX1xkCw* assignment;
TY_iGkpo9aKQdr3NWelKC4cnJA* methods;
NI64 size;
NI16 align;
NI16 locklevel;
Tloc_EtHNvCB0bgfu9bFjzx9cb6aA loc;
Ttype_LTUWCZolpovw9cWE3JBWSUw* typeinst;
};
typedef NU16 Tnodeflag_jyh9acXHkhZANSSvPIY7ZLg_Set;
typedef NU8 Tnodekind_G4E4Gxe7oI2Cm03rkiOzQw;
struct  Tnode_bROa11lyF5vxEN9aYNbHmhw  {
Ttype_LTUWCZolpovw9cWE3JBWSUw* typ;
Tlineinfo_T9c3PM9bs7WZ4LIQfEici9cZw info;
Tnodeflag_jyh9acXHkhZANSSvPIY7ZLg_Set flags;
Tnodekind_G4E4Gxe7oI2Cm03rkiOzQw kind;
union{
struct {NI64 intval;
} S1;
struct {NF floatval;
} S2;
struct {NimStringDesc* strval;
} S3;
struct {Tsym_AXG7xcvKqaxY6koRX1xkCw* sym;
} S4;
struct {Tident_4umxGerWTHGPwUms7Yqu3g* ident;
} S5;
struct {TY_ehmV9bTklH2Gt9cXHV9c0HLeQ* sons;
} S6;
} kindU;
NimStringDesc* comment;
};
struct  Ropeobj_HF4qJnb6xiOddgPmsxodtQ  {
  TNimObject Sup;
Ropeobj_HF4qJnb6xiOddgPmsxodtQ* left;
Ropeobj_HF4qJnb6xiOddgPmsxodtQ* right;
NI length;
NimStringDesc* data;
};
struct  Tlistentry_U4JkVlrJQaACKZ9a9cwCla3Q  {
  TNimObject Sup;
Tlistentry_U4JkVlrJQaACKZ9a9cwCla3Q* prev;
Tlistentry_U4JkVlrJQaACKZ9a9cwCla3Q* next;
};
typedef NU8 Tlibkind_9b8v60kso59bBaw9cp8B9a9apKQ;
struct  Tlib_4f9aBgmqEuj7uWJdBBGcRgA  {
  Tlistentry_U4JkVlrJQaACKZ9a9cwCla3Q Sup;
Tlibkind_9b8v60kso59bBaw9cp8B9a9apKQ kind;
NIM_BOOL generated;
NIM_BOOL isoverriden;
Ropeobj_HF4qJnb6xiOddgPmsxodtQ* name;
Tnode_bROa11lyF5vxEN9aYNbHmhw* path;
};
struct  Tinstantiation_5LqgVn6Tq9ainQRK7TQAQxA  {
Tsym_AXG7xcvKqaxY6koRX1xkCw* sym;
TY_zuqP4Riz26Oi5fWgPYVEgA* concretetypes;
NI compilesid;
};
struct TY_a09bGTAl9ceOKTAytYdkbyKg {
NI Field0;
Tsym_AXG7xcvKqaxY6koRX1xkCw* Field1;
};
struct TY_sksVpmPRIkNR9axiwtD1Guw {
  TGenericSeq Sup;
  Tsym_AXG7xcvKqaxY6koRX1xkCw* data[SEQ_DECL_SIZE];
};
struct TY_9brg1xNurxcus33lU4IE1Dw {
  TGenericSeq Sup;
  Trunk_ul49aWfv9aes8cutmeltT3gQ* data[SEQ_DECL_SIZE];
};
struct TY_kxu4GK0onha2t9bo86mdVAg {
  TGenericSeq Sup;
  TY_xDU9bZmv1ZbZkJDaATBekIQ data[SEQ_DECL_SIZE];
};
struct TY_48JTohSgTy339bRxHzUD8KA {
  TGenericSeq Sup;
  NI32 data[SEQ_DECL_SIZE];
};
struct TY_zuqP4Riz26Oi5fWgPYVEgA {
  TGenericSeq Sup;
  Ttype_LTUWCZolpovw9cWE3JBWSUw* data[SEQ_DECL_SIZE];
};
struct TY_DXS6mEo7PVUFJkirsQ9bNQA {
  TGenericSeq Sup;
  Tinstantiation_5LqgVn6Tq9ainQRK7TQAQxA* data[SEQ_DECL_SIZE];
};
struct TY_iGkpo9aKQdr3NWelKC4cnJA {
  TGenericSeq Sup;
  TY_a09bGTAl9ceOKTAytYdkbyKg data[SEQ_DECL_SIZE];
};
struct TY_ehmV9bTklH2Gt9cXHV9c0HLeQ {
  TGenericSeq Sup;
  Tnode_bROa11lyF5vxEN9aYNbHmhw* data[SEQ_DECL_SIZE];
};
N_NIMCALL(void, Gcdisablemarkandsweep_njssp69aa7hvxte9bJ8uuDcg_4)(void);
N_NIMCALL(void, initdefines_cpH2nhcvqZlKU3W1Gx7n5Q)(void);
N_NIMCALL(void, handlecmdline_vMnABAOaqER9aU9a39amQxhmA)(IdentcacheHEX3Aobjecttype_TzLHS09bRH9a0TYLs39cqcNaw* cache0);
N_NIMCALL(NI, nosparamCount)(void);
N_NIMCALL(void, writecommandlineusage_t59c14FW7IpJTxVWyUYociQ)(void);
N_NIMCALL(void, processcmdline_tw2pZl8Nisz38VPmsT5WZA)(Tcmdlinepass_IiBn9cB6WYIMDHOT44O82wA pass0, NimStringDesc* cmd0);
static N_INLINE(NIM_BOOL, eqStrings)(NimStringDesc* a0, NimStringDesc* b0);
static N_INLINE(NIM_BOOL, equalmem_DCrUjdaMvFDHaR1hs7sQGwropes)(void* a0, void* b0, NI size0);
N_NIMCALL(NimStringDesc*, copyStringRC1)(NimStringDesc* src0);
static N_INLINE(void, nimGCunrefNoCycle)(void* p0);
static N_INLINE(Cell_1zcF9cV8XIAtbN8h5HRUB8g*, usrtocell_yB9aH5WIlwd0xkYrcdPeXrQsystem)(void* usr0);
static N_INLINE(void, rtladdzct_MV4BBk6J1qu70IbBxwEn4w_2system)(Cell_1zcF9cV8XIAtbN8h5HRUB8g* c0);
N_NOINLINE(void, addzct_fCDI7oO1NNVXXURtxSzsRw)(Cellseq_Axo1XVm9aaQueTOldv8le5w* s0, Cell_1zcF9cV8XIAtbN8h5HRUB8g* c0);
N_NIMCALL(NimStringDesc*, canonicalizepath_hXI3LWBWedZbdPyAYn0KOQ)(NimStringDesc* path0);
N_NIMCALL(NimStringDesc*, nosgetCurrentDir)(void);
static N_INLINE(void, asgnRefNoCycle)(void** dest0, void* src0);
static N_INLINE(void, pushSafePoint)(TSafePoint* s0);
static N_INLINE(void, popSafePoint)(void);
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_9cAA5YuQAAC3MVbnGeV86swsystem)(Cell_1zcF9cV8XIAtbN8h5HRUB8g* c0);
static N_INLINE(void, decref_MV4BBk6J1qu70IbBxwEn4wsystem)(Cell_1zcF9cV8XIAtbN8h5HRUB8g* c0);
N_NIMCALL(void, reraiseException)(void);
N_NIMCALL(void, nossplitFile)(NimStringDesc* path0, TY_7q7q3E6Oj24ZNVJb9aonhAg* Result);
N_NOINLINE(void, chckNil)(void* p0);
N_NIMCALL(void, loadconfigs_g69cAL3PilmjORegF8eKWNw)(NimStringDesc* cfg0);
N_NIMCALL(NimStringDesc*, noschangeFileExt)(NimStringDesc* filename0, NimStringDesc* ext0);
static N_INLINE(NIM_BOOL, fileexists_yTPrfdEKg9cKCeSFUA6popQoptions)(NimStringDesc* filename0);
N_NIMCALL(NIM_BOOL, nosexistsFile)(NimStringDesc* filename0);
N_NIMCALL(void, runnimscript_No3Q13HcyDw9b69bbWqf2Skw)(IdentcacheHEX3Aobjecttype_TzLHS09bRH9a0TYLs39cqcNaw* cache0, NimStringDesc* scriptname0, NIM_BOOL freshdefines0);
N_NIMCALL(NimStringDesc*, HEX2F_BsTQv9c9anbxt9bKmR0aN1elQ)(NimStringDesc* head0, NimStringDesc* tail0);
N_NIMCALL(void, initvars_7np5TkPW87gkvRFZHLx9aYg)(void);
N_NIMCALL(void, rawmessage_tBJ8mvo7MzzirsGkrHVc9cw)(Tmsgkind_IGAWgv9aR2KqPKJfPZPEWaw msg0, NimStringDesc* arg0);
N_NIMCALL(void, maincommand_9ckTkd2AM27sYCvHGluAXLg)(ModulegraphHEX3Aobjecttype_RZI3hCs0FTPYx8StfC81qQ* graph0, IdentcacheHEX3Aobjecttype_TzLHS09bRH9a0TYLs39cqcNaw* cache0);
N_NIMCALL(ModulegraphHEX3Aobjecttype_RZI3hCs0FTPYx8StfC81qQ*, newmodulegraph_GQ1K7tcEyGzXeNGgaZT54w)(void);
N_NIMCALL(NimStringDesc*, Gcgetstatistics_J4pluHK783lhY9aB0aYTnzg)(void);
N_NIMCALL(NimStringDesc*, nospquoteShell)(NimStringDesc* s0);
N_NIMCALL(NimStringDesc*, prependcurdir_GjIeuxoFFHzgsN9aaFgTDcg)(NimStringDesc* f0);
N_NIMCALL(NimStringDesc*, copyString)(NimStringDesc* src0);
N_NIMCALL(NimStringDesc*, completecfilepath_XziFVTv1mJIlNEw2aMU1Ig)(NimStringDesc* cfile0, NIM_BOOL createsubdir0);
N_NIMCALL(void, execexternalprogram_Pv5NVuLJkhqF9a3uo9aKpTxw)(NimStringDesc* cmd0, Tmsgkind_IGAWgv9aR2KqPKJfPZPEWaw msg0);
N_NIMCALL(NimStringDesc*, findnodejs_z61UrGeYjp2dp3H9c8bG88g)(void);
static N_INLINE(void, appendString)(NimStringDesc* dest0, NimStringDesc* src0);
static N_INLINE(void, copymem_fPlwH3r9agN9aEHB6yCPMh0wsystem)(void* dest0, void* source0, NI size0);
static N_INLINE(void, appendChar)(NimStringDesc* dest0, NIM_CHAR c0);
N_NIMCALL(NimStringDesc*, rawNewString)(NI space0);
N_NIMCALL(IdentcacheHEX3Aobjecttype_TzLHS09bRH9a0TYLs39cqcNaw*, newidentcache_9basvGvZH4FwEO4MVbYyP9aA)(void);
N_NIMCALL(void, msgquit_RYjZhMg4ryWFSaRX7jHrTA)(NI8 x0);
static N_INLINE(void, initStackBottomWith)(void* locals0);
N_NOINLINE(void, setStackBottom)(void* thestackbottom0);
NIM_EXTERNC N_NOINLINE(void, systemInit000)(void);
NIM_EXTERNC N_NOINLINE(void, systemDatInit000)(void);
NIM_EXTERNC N_NOINLINE(void, stdlib_parseutilsInit000)(void);
NIM_EXTERNC N_NOINLINE(void, stdlib_parseutilsDatInit000)(void);
NIM_EXTERNC N_NOINLINE(void, stdlib_mathInit000)(void);
NIM_EXTERNC N_NOINLINE(void, stdlib_mathDatInit000)(void);
NIM_EXTERNC N_NOINLINE(void, stdlib_algorithmInit000)(void);
NIM_EXTERNC N_NOINLINE(void, stdlib_algorithmDatInit000)(void);
NIM_EXTERNC N_NOINLINE(void, stdlib_strutilsInit000)(void);
NIM_EXTERNC N_NOINLINE(void, stdlib_strutilsDatInit000)(void);
NIM_EXTERNC N_NOINLINE(void, stdlib_dynlibInit000)(void);
NIM_EXTERNC N_NOINLINE(void, stdlib_dynlibDatInit000)(void);
NIM_EXTERNC N_NOINLINE(void, stdlib_winleanInit000)(void);
NIM_EXTERNC N_NOINLINE(void, stdlib_winleanDatInit000)(void);
NIM_EXTERNC N_NOINLINE(void, stdlib_timesInit000)(void);
NIM_EXTERNC N_NOINLINE(void, stdlib_timesDatInit000)(void);
NIM_EXTERNC N_NOINLINE(void, stdlib_osInit000)(void);
NIM_EXTERNC N_NOINLINE(void, stdlib_osDatInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_listsInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_listsDatInit000)(void);
NIM_EXTERNC N_NOINLINE(void, stdlib_etcprivInit000)(void);
NIM_EXTERNC N_NOINLINE(void, stdlib_etcprivDatInit000)(void);
NIM_EXTERNC N_NOINLINE(void, stdlib_hashesInit000)(void);
NIM_EXTERNC N_NOINLINE(void, stdlib_hashesDatInit000)(void);
NIM_EXTERNC N_NOINLINE(void, stdlib_strtabsInit000)(void);
NIM_EXTERNC N_NOINLINE(void, stdlib_strtabsDatInit000)(void);
NIM_EXTERNC N_NOINLINE(void, stdlib_streamsInit000)(void);
NIM_EXTERNC N_NOINLINE(void, stdlib_streamsDatInit000)(void);
NIM_EXTERNC N_NOINLINE(void, stdlib_cpuinfoInit000)(void);
NIM_EXTERNC N_NOINLINE(void, stdlib_cpuinfoDatInit000)(void);
NIM_EXTERNC N_NOINLINE(void, stdlib_osprocInit000)(void);
NIM_EXTERNC N_NOINLINE(void, stdlib_osprocDatInit000)(void);
NIM_EXTERNC N_NOINLINE(void, stdlib_setsInit000)(void);
NIM_EXTERNC N_NOINLINE(void, stdlib_setsDatInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_optionsInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_optionsDatInit000)(void);
NIM_EXTERNC N_NOINLINE(void, stdlib_tablesInit000)(void);
NIM_EXTERNC N_NOINLINE(void, stdlib_tablesDatInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_platformInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_platformDatInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_ropesInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_ropesDatInit000)(void);
NIM_EXTERNC N_NOINLINE(void, stdlib_macrosInit000)(void);
NIM_EXTERNC N_NOINLINE(void, stdlib_macrosDatInit000)(void);
NIM_EXTERNC N_NOINLINE(void, stdlib_terminalInit000)(void);
NIM_EXTERNC N_NOINLINE(void, stdlib_terminalDatInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_msgsInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_msgsDatInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_nversionInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_nversionDatInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_wordrecgInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_wordrecgDatInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_identsInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_identsDatInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_condsymsInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_condsymsDatInit000)(void);
NIM_EXTERNC N_NOINLINE(void, stdlib_securehashInit000)(void);
NIM_EXTERNC N_NOINLINE(void, stdlib_securehashDatInit000)(void);
NIM_EXTERNC N_NOINLINE(void, stdlib_lexbaseInit000)(void);
NIM_EXTERNC N_NOINLINE(void, stdlib_lexbaseDatInit000)(void);
NIM_EXTERNC N_NOINLINE(void, stdlib_unicodeInit000)(void);
NIM_EXTERNC N_NOINLINE(void, stdlib_unicodeDatInit000)(void);
NIM_EXTERNC N_NOINLINE(void, stdlib_jsonInit000)(void);
NIM_EXTERNC N_NOINLINE(void, stdlib_jsonDatInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_extccompInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_extccompDatInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_nimblecmdInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_nimblecmdDatInit000)(void);
NIM_EXTERNC N_NOINLINE(void, stdlib_parseoptInit000)(void);
NIM_EXTERNC N_NOINLINE(void, stdlib_parseoptDatInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_commandsInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_commandsDatInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_llstreamInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_llstreamDatInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_nimlexbaseInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_nimlexbaseDatInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_lexerInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_lexerDatInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_nimconfInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_nimconfDatInit000)(void);
NIM_EXTERNC N_NOINLINE(void, stdlib_intsetsInit000)(void);
NIM_EXTERNC N_NOINLINE(void, stdlib_intsetsDatInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_idgenInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_idgenDatInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_astInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_astDatInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_rodutilsInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_rodutilsDatInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_astalgoInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_astalgoDatInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_parserInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_parserDatInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_pbracesInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_pbracesDatInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_rendererInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_rendererDatInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_filtersInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_filtersDatInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_filter_tmplInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_filter_tmplDatInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_syntaxesInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_syntaxesDatInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_treesInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_treesDatInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_typesInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_typesDatInit000)(void);
NIM_EXTERNC N_NOINLINE(void, stdlib_memfilesInit000)(void);
NIM_EXTERNC N_NOINLINE(void, stdlib_memfilesDatInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_rodreadInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_rodreadDatInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_magicsysInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_magicsysDatInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_bitsetsInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_bitsetsDatInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_nimsetsInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_nimsetsDatInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_modulegraphsInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_modulegraphsDatInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_passesInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_passesDatInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_treetabInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_treetabDatInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_vmdefInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_vmdefDatInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_semdataInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_semdataDatInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_prettybaseInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_prettybaseDatInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_lookupsInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_lookupsDatInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_importerInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_importerDatInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_rodwriteInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_rodwriteDatInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_saturateInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_saturateDatInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_semfoldInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_semfoldDatInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_procfindInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_procfindDatInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_pragmasInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_pragmasDatInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_semtypinstInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_semtypinstDatInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_parampatternsInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_parampatternsDatInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_prettyInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_prettyDatInit000)(void);
NIM_EXTERNC N_NOINLINE(void, docutils_rstastInit000)(void);
NIM_EXTERNC N_NOINLINE(void, docutils_rstastDatInit000)(void);
NIM_EXTERNC N_NOINLINE(void, docutils_rstInit000)(void);
NIM_EXTERNC N_NOINLINE(void, docutils_rstDatInit000)(void);
NIM_EXTERNC N_NOINLINE(void, docutils_highliteInit000)(void);
NIM_EXTERNC N_NOINLINE(void, docutils_highliteDatInit000)(void);
NIM_EXTERNC N_NOINLINE(void, stdlib_sequtilsInit000)(void);
NIM_EXTERNC N_NOINLINE(void, stdlib_sequtilsDatInit000)(void);
NIM_EXTERNC N_NOINLINE(void, docutils_rstgenInit000)(void);
NIM_EXTERNC N_NOINLINE(void, docutils_rstgenDatInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_guardsInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_guardsDatInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_writetrackingInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_writetrackingDatInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_sempass2Init000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_sempass2DatInit000)(void);
NIM_EXTERNC N_NOINLINE(void, stdlib_xmltreeInit000)(void);
NIM_EXTERNC N_NOINLINE(void, stdlib_xmltreeDatInit000)(void);
NIM_EXTERNC N_NOINLINE(void, stdlib_cookiesInit000)(void);
NIM_EXTERNC N_NOINLINE(void, stdlib_cookiesDatInit000)(void);
NIM_EXTERNC N_NOINLINE(void, stdlib_cgiInit000)(void);
NIM_EXTERNC N_NOINLINE(void, stdlib_cgiDatInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_typesrendererInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_typesrendererDatInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_docgenInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_docgenDatInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_sigmatchInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_sigmatchDatInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_cgmethInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_cgmethDatInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_loweringsInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_loweringsDatInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_lambdaliftingInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_lambdaliftingDatInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_transfInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_transfDatInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_vmgenInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_vmgenDatInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_vmdepsInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_vmdepsDatInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_vmmarshalInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_vmmarshalDatInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_evaltemplInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_evaltemplDatInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_vmInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_vmDatInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_aliasesInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_aliasesDatInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_patternsInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_patternsDatInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_semmacrosanityInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_semmacrosanityDatInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_semparallelInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_semparallelDatInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_pluginsupportInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_pluginsupportDatInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_localsInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_localsDatInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_itersgenInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_itersgenDatInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_activeInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_activeDatInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_semInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_semDatInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_ccgutilsInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_ccgutilsDatInit000)(void);
NIM_EXTERNC N_NOINLINE(void, stdlib_md5Init000)(void);
NIM_EXTERNC N_NOINLINE(void, stdlib_md5DatInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_sighashesInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_sighashesDatInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_cgendataInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_cgendataDatInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_ccgmergeInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_ccgmergeDatInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_cgenInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_cgenDatInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_jsgenInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_jsgenDatInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_passauxInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_passauxDatInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_dependsInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_dependsDatInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_docgen2Init000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_docgen2DatInit000)(void);
NIM_EXTERNC N_NOINLINE(void, stdlib_nativesocketsInit000)(void);
NIM_EXTERNC N_NOINLINE(void, stdlib_nativesocketsDatInit000)(void);
NIM_EXTERNC N_NOINLINE(void, stdlib_netInit000)(void);
NIM_EXTERNC N_NOINLINE(void, stdlib_netDatInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_serviceInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_serviceDatInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_modulesInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_modulesDatInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_mainInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_mainDatInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_nodejsInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_nodejsDatInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_scriptconfigInit000)(void);
NIM_EXTERNC N_NOINLINE(void, compiler_scriptconfigDatInit000)(void);
NIM_EXTERNC N_NOINLINE(void, NimMainModule)(void);
NIM_EXTERNC N_NOINLINE(void, nimDatInit000)(void);
extern NimStringDesc* gprojectname_QOoHniL6MYtzlAjpv8zzdA;
extern Gcheap_1TRH1TZMaVZTnLNcIHuNFQ gch_IcYaEuuWivYAS86vFMTS3Q;
extern NimStringDesc* gprojectfull_V1rcVHDANDR4ly2ul00asg;
extern NimStringDesc* gprojectpath_RQlrqBW2RHkKfot9caCcOtQ;
extern NIM_BOOL gprojectisstdin_YvC8IOG0BaMX6AECkLfsTg;
extern TSafePoint* exchandler_rqLlY5bs9atDw2OXYqJEn5g;
extern TNimType NTI_3XwRQvmzCEOC4QnT706q1g;
extern Exception* currexception_9bVPeDJlYTi9bQApZpfH8wjg;
extern NimStringDesc* command_zo83h8QWwtDIGDuqkGhjqg;
extern Toption_WspMeQySXNP2XoTWR5MTgg_Set goptions_KL5B8sF4szIsM2AXCWFsIw;
extern Tmsgkind_nDM9aiGzuSlpuw3CrqwaebA_Set gnotes_ra0BBMaJz6cOxn1JA3c6Bg;
extern NI gerrorcounter_BdMIKofstJQD5Y2GBaRdzQ;
extern Tglobaloption_RAfAEZqjnKMDumgyKKc1qw_Set gglobaloptions_j042VVDC9cT5ENYoXnmhhVg;
extern Tcommands_VH3ghgQVwLSg3krOAoXigw gcmd_0oKScFtMiSKnjiHF9cU9c5GQ;
extern NimStringDesc* outfile_LiHKjDVrUS85u6xbuNvgxA;
extern NimStringDesc* arguments_J4sVmqKDJ3MkfxziRX9cODA;
STRING_LITERAL(T_6xNBOpPeN0DsJ34t7RoSng_2, "", 0);
STRING_LITERAL(T_6xNBOpPeN0DsJ34t7RoSng_3, "-", 1);
STRING_LITERAL(T_6xNBOpPeN0DsJ34t7RoSng_4, "stdinfile", 9);
STRING_LITERAL(T_6xNBOpPeN0DsJ34t7RoSng_6, "nim.cfg", 7);
STRING_LITERAL(T_6xNBOpPeN0DsJ34t7RoSng_7, "nims", 4);
STRING_LITERAL(T_6xNBOpPeN0DsJ34t7RoSng_8, "config.nims", 11);
STRING_LITERAL(T_6xNBOpPeN0DsJ34t7RoSng_9, "js", 2);
STRING_LITERAL(T_6xNBOpPeN0DsJ34t7RoSng_10, " ", 1);
STRING_LITERAL(T_6xNBOpPeN0DsJ34t7RoSng_11, "php", 3);
STRING_LITERAL(T_6xNBOpPeN0DsJ34t7RoSng_12, "php ", 4);
STRING_LITERAL(T_6xNBOpPeN0DsJ34t7RoSng_13, "exe", 3);

static N_INLINE(NIM_BOOL, equalmem_DCrUjdaMvFDHaR1hs7sQGwropes)(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_DCrUjdaMvFDHaR1hs7sQGwropes(((void*) ((*a0).data)), ((void*) ((*b0).data)), ((NI) ((*a0).Sup.len)));
	LA12: ;
	result0 = LOC11;
	goto BeforeRet;
	}BeforeRet: ;
	return result0;
}

static N_INLINE(Cell_1zcF9cV8XIAtbN8h5HRUB8g*, usrtocell_yB9aH5WIlwd0xkYrcdPeXrQsystem)(void* usr0) {
	Cell_1zcF9cV8XIAtbN8h5HRUB8g* result0;
	result0 = (Cell_1zcF9cV8XIAtbN8h5HRUB8g*)0;
	result0 = ((Cell_1zcF9cV8XIAtbN8h5HRUB8g*) ((NI)((NU32)(((NI) (usr0))) - (NU32)(((NI)sizeof(Cell_1zcF9cV8XIAtbN8h5HRUB8g))))));
	return result0;
}

static N_INLINE(void, rtladdzct_MV4BBk6J1qu70IbBxwEn4w_2system)(Cell_1zcF9cV8XIAtbN8h5HRUB8g* c0) {
	addzct_fCDI7oO1NNVXXURtxSzsRw((&gch_IcYaEuuWivYAS86vFMTS3Q.zct), c0);
}

static N_INLINE(void, nimGCunrefNoCycle)(void* p0) {
	Cell_1zcF9cV8XIAtbN8h5HRUB8g* c0;
	c0 = usrtocell_yB9aH5WIlwd0xkYrcdPeXrQsystem(p0);
	{
		(*c0).refcount -= ((NI) 8);
		if (!((NU32)((*c0).refcount) < (NU32)(((NI) 8)))) goto LA3;
		rtladdzct_MV4BBk6J1qu70IbBxwEn4w_2system(c0);
	}
	LA3: ;
}

static N_INLINE(void, asgnRefNoCycle)(void** dest0, void* src0) {
	{
		Cell_1zcF9cV8XIAtbN8h5HRUB8g* c0;
		if (!!((src0 == NIM_NIL))) goto LA3;
		c0 = usrtocell_yB9aH5WIlwd0xkYrcdPeXrQsystem(src0);
		(*c0).refcount += ((NI) 8);
	}
	LA3: ;
	{
		Cell_1zcF9cV8XIAtbN8h5HRUB8g* c0;
		if (!!(((*dest0) == NIM_NIL))) goto LA7;
		c0 = usrtocell_yB9aH5WIlwd0xkYrcdPeXrQsystem((*dest0));
		{
			(*c0).refcount -= ((NI) 8);
			if (!((NU32)((*c0).refcount) < (NU32)(((NI) 8)))) goto LA11;
			rtladdzct_MV4BBk6J1qu70IbBxwEn4w_2system(c0);
		}
		LA11: ;
	}
	LA7: ;
	(*dest0) = src0;
}

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

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

static N_INLINE(Exception*, getCurrentException)(void) {
	Exception* result0;
	result0 = (Exception*)0;
	result0 = currexception_9bVPeDJlYTi9bQApZpfH8wjg;
	return result0;
}

static N_INLINE(void, incref_9cAA5YuQAAC3MVbnGeV86swsystem)(Cell_1zcF9cV8XIAtbN8h5HRUB8g* c0) {
	(*c0).refcount = (NI)((NU32)((*c0).refcount) + (NU32)(((NI) 8)));
}

static N_INLINE(void, decref_MV4BBk6J1qu70IbBxwEn4wsystem)(Cell_1zcF9cV8XIAtbN8h5HRUB8g* c0) {
	{
		(*c0).refcount -= ((NI) 8);
		if (!((NU32)((*c0).refcount) < (NU32)(((NI) 8)))) goto LA3;
		rtladdzct_MV4BBk6J1qu70IbBxwEn4w_2system(c0);
	}
	LA3: ;
}

static N_INLINE(void, asgnRef)(void** dest0, void* src0) {
	{
		Cell_1zcF9cV8XIAtbN8h5HRUB8g* LOC5;
		if (!!((src0 == NIM_NIL))) goto LA3;
		LOC5 = (Cell_1zcF9cV8XIAtbN8h5HRUB8g*)0;
		LOC5 = usrtocell_yB9aH5WIlwd0xkYrcdPeXrQsystem(src0);
		incref_9cAA5YuQAAC3MVbnGeV86swsystem(LOC5);
	}
	LA3: ;
	{
		Cell_1zcF9cV8XIAtbN8h5HRUB8g* LOC10;
		if (!!(((*dest0) == NIM_NIL))) goto LA8;
		LOC10 = (Cell_1zcF9cV8XIAtbN8h5HRUB8g*)0;
		LOC10 = usrtocell_yB9aH5WIlwd0xkYrcdPeXrQsystem((*dest0));
		decref_MV4BBk6J1qu70IbBxwEn4wsystem(LOC10);
	}
	LA8: ;
	(*dest0) = src0;
}

static N_INLINE(void, popCurrentException)(void) {
	asgnRef((void**) (&currexception_9bVPeDJlYTi9bQApZpfH8wjg), NIM_NIL);
}

static N_INLINE(NIM_BOOL, fileexists_yTPrfdEKg9cKCeSFUA6popQoptions)(NimStringDesc* filename0) {
	NIM_BOOL result0;
	result0 = (NIM_BOOL)0;
	result0 = nosexistsFile(filename0);
	return result0;
}

N_NIMCALL(NimStringDesc*, prependcurdir_GjIeuxoFFHzgsN9aaFgTDcg)(NimStringDesc* f0) {
	NimStringDesc* result0;
	result0 = (NimStringDesc*)0;
	result0 = copyString(f0);
	return result0;
}

static N_INLINE(void, copymem_fPlwH3r9agN9aEHB6yCPMh0wsystem)(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_fPlwH3r9agN9aEHB6yCPMh0wsystem(((void*) ((&(*dest0).data[((*dest0).Sup.len)- 0]))), ((void*) ((*src0).data)), ((NI) ((NI)((*src0).Sup.len + ((NI) 1)))));
	(*dest0).Sup.len += (*src0).Sup.len;
}

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

N_NIMCALL(void, handlecmdline_vMnABAOaqER9aU9a39amQxhmA)(IdentcacheHEX3Aobjecttype_TzLHS09bRH9a0TYLs39cqcNaw* cache0) {
{	{
		NI LOC3;
		LOC3 = (NI)0;
		LOC3 = nosparamCount();
		if (!(LOC3 == ((NI) 0))) goto LA4;
		writecommandlineusage_t59c14FW7IpJTxVWyUYociQ();
	}
	goto LA1;
	LA4: ;
	{
		NimStringDesc* scriptfile0;
		ModulegraphHEX3Aobjecttype_RZI3hCs0FTPYx8StfC81qQ* LOC48;
		processcmdline_tw2pZl8Nisz38VPmsT5WZA(((Tcmdlinepass_IiBn9cB6WYIMDHOT44O82wA) 0), ((NimStringDesc*) &T_6xNBOpPeN0DsJ34t7RoSng_2));
		{
			NimStringDesc* LOC11;
			NimStringDesc* LOC12;
			NimStringDesc* LOC13;
			if (!eqStrings(gprojectname_QOoHniL6MYtzlAjpv8zzdA, ((NimStringDesc*) &T_6xNBOpPeN0DsJ34t7RoSng_3))) goto LA9;
			LOC11 = (NimStringDesc*)0;
			LOC11 = gprojectname_QOoHniL6MYtzlAjpv8zzdA; gprojectname_QOoHniL6MYtzlAjpv8zzdA = copyStringRC1(((NimStringDesc*) &T_6xNBOpPeN0DsJ34t7RoSng_4));
			if (LOC11) nimGCunrefNoCycle(LOC11);
			LOC12 = (NimStringDesc*)0;
			LOC12 = gprojectfull_V1rcVHDANDR4ly2ul00asg; gprojectfull_V1rcVHDANDR4ly2ul00asg = copyStringRC1(((NimStringDesc*) &T_6xNBOpPeN0DsJ34t7RoSng_4));
			if (LOC12) nimGCunrefNoCycle(LOC12);
			LOC13 = (NimStringDesc*)0;
			LOC13 = nosgetCurrentDir();
			asgnRefNoCycle((void**) (&gprojectpath_RQlrqBW2RHkKfot9caCcOtQ), canonicalizepath_hXI3LWBWedZbdPyAYn0KOQ(LOC13));
			gprojectisstdin_YvC8IOG0BaMX6AECkLfsTg = NIM_TRUE;
		}
		goto LA7;
		LA9: ;
		{
			TSafePoint T_6xNBOpPeN0DsJ34t7RoSng_5;
			TY_7q7q3E6Oj24ZNVJb9aonhAg p0;
			NimStringDesc* dir0;
			NimStringDesc* LOC26;
			if (!!(((gprojectname_QOoHniL6MYtzlAjpv8zzdA) && (gprojectname_QOoHniL6MYtzlAjpv8zzdA)->Sup.len == 0))) goto LA15;
			pushSafePoint(&T_6xNBOpPeN0DsJ34t7RoSng_5);
			T_6xNBOpPeN0DsJ34t7RoSng_5.status = setjmp(T_6xNBOpPeN0DsJ34t7RoSng_5.context);
			if (T_6xNBOpPeN0DsJ34t7RoSng_5.status == 0) {
				asgnRefNoCycle((void**) (&gprojectfull_V1rcVHDANDR4ly2ul00asg), canonicalizepath_hXI3LWBWedZbdPyAYn0KOQ(gprojectname_QOoHniL6MYtzlAjpv8zzdA));
				popSafePoint();
			}
			else {
				popSafePoint();
				if (isObj(getCurrentException()->Sup.m_type, (&NTI_3XwRQvmzCEOC4QnT706q1g))) {
					NimStringDesc* LOC20;
					T_6xNBOpPeN0DsJ34t7RoSng_5.status = 0;
					LOC20 = (NimStringDesc*)0;
					LOC20 = gprojectfull_V1rcVHDANDR4ly2ul00asg; gprojectfull_V1rcVHDANDR4ly2ul00asg = copyStringRC1(gprojectname_QOoHniL6MYtzlAjpv8zzdA);
					if (LOC20) nimGCunrefNoCycle(LOC20);
					popCurrentException();
				}
			}
			if (T_6xNBOpPeN0DsJ34t7RoSng_5.status != 0) reraiseException();
			memset((void*)(&p0), 0, sizeof(p0));
			chckNil((void*)(&p0));
			memset((void*)(&p0), 0, sizeof(p0));
			nossplitFile(gprojectfull_V1rcVHDANDR4ly2ul00asg, (&p0));
			{
				if (!(((NI) 0) < (p0.Field0 ? p0.Field0->Sup.len : 0))) goto LA23;
				dir0 = p0.Field0;
			}
			goto LA21;
			LA23: ;
			{
				dir0 = nosgetCurrentDir();
			}
			LA21: ;
			asgnRefNoCycle((void**) (&gprojectpath_RQlrqBW2RHkKfot9caCcOtQ), canonicalizepath_hXI3LWBWedZbdPyAYn0KOQ(dir0));
			LOC26 = (NimStringDesc*)0;
			LOC26 = gprojectname_QOoHniL6MYtzlAjpv8zzdA; gprojectname_QOoHniL6MYtzlAjpv8zzdA = copyStringRC1(p0.Field1);
			if (LOC26) nimGCunrefNoCycle(LOC26);
		}
		goto LA7;
		LA15: ;
		{
			NimStringDesc* LOC28;
			LOC28 = (NimStringDesc*)0;
			LOC28 = nosgetCurrentDir();
			asgnRefNoCycle((void**) (&gprojectpath_RQlrqBW2RHkKfot9caCcOtQ), canonicalizepath_hXI3LWBWedZbdPyAYn0KOQ(LOC28));
		}
		LA7: ;
		loadconfigs_g69cAL3PilmjORegF8eKWNw(((NimStringDesc*) &T_6xNBOpPeN0DsJ34t7RoSng_6));
		scriptfile0 = noschangeFileExt(gprojectfull_V1rcVHDANDR4ly2ul00asg, ((NimStringDesc*) &T_6xNBOpPeN0DsJ34t7RoSng_7));
		{
			NIM_BOOL LOC31;
			LOC31 = (NIM_BOOL)0;
			LOC31 = fileexists_yTPrfdEKg9cKCeSFUA6popQoptions(scriptfile0);
			if (!LOC31) goto LA32;
			runnimscript_No3Q13HcyDw9b69bbWqf2Skw(cache0, scriptfile0, NIM_FALSE);
			{
				if (!eqStrings(scriptfile0, gprojectfull_V1rcVHDANDR4ly2ul00asg)) goto LA36;
				goto BeforeRet;
			}
			LA36: ;
		}
		goto LA29;
		LA32: ;
		{
			NimStringDesc* LOC39;
			NIM_BOOL LOC40;
			NimStringDesc* LOC43;
			LOC39 = (NimStringDesc*)0;
			LOC39 = HEX2F_BsTQv9c9anbxt9bKmR0aN1elQ(gprojectpath_RQlrqBW2RHkKfot9caCcOtQ, ((NimStringDesc*) &T_6xNBOpPeN0DsJ34t7RoSng_8));
			LOC40 = (NIM_BOOL)0;
			LOC40 = fileexists_yTPrfdEKg9cKCeSFUA6popQoptions(LOC39);
			if (!LOC40) goto LA41;
			LOC43 = (NimStringDesc*)0;
			LOC43 = HEX2F_BsTQv9c9anbxt9bKmR0aN1elQ(gprojectpath_RQlrqBW2RHkKfot9caCcOtQ, ((NimStringDesc*) &T_6xNBOpPeN0DsJ34t7RoSng_8));
			runnimscript_No3Q13HcyDw9b69bbWqf2Skw(cache0, LOC43, NIM_FALSE);
		}
		goto LA29;
		LA41: ;
		LA29: ;
		initvars_7np5TkPW87gkvRFZHLx9aYg();
		processcmdline_tw2pZl8Nisz38VPmsT5WZA(((Tcmdlinepass_IiBn9cB6WYIMDHOT44O82wA) 1), ((NimStringDesc*) &T_6xNBOpPeN0DsJ34t7RoSng_2));
		{
			if (!((command_zo83h8QWwtDIGDuqkGhjqg) && (command_zo83h8QWwtDIGDuqkGhjqg)->Sup.len == 0)) goto LA46;
			rawmessage_tBJ8mvo7MzzirsGkrHVc9cw(((Tmsgkind_IGAWgv9aR2KqPKJfPZPEWaw) 183), command_zo83h8QWwtDIGDuqkGhjqg);
		}
		LA46: ;
		LOC48 = (ModulegraphHEX3Aobjecttype_RZI3hCs0FTPYx8StfC81qQ*)0;
		LOC48 = newmodulegraph_GQ1K7tcEyGzXeNGgaZT54w();
		maincommand_9ckTkd2AM27sYCvHGluAXLg(LOC48, cache0);
		{
			NIM_BOOL LOC51;
			NimStringDesc* LOC55;
			LOC51 = (NIM_BOOL)0;
			LOC51 = ((goptions_KL5B8sF4szIsM2AXCWFsIw &(1U<<((NU)(((Toption_WspMeQySXNP2XoTWR5MTgg) 12))&31U)))!=0);
			if (!(LOC51)) goto LA52;
			LOC51 = ((gnotes_ra0BBMaJz6cOxn1JA3c6Bg &((NU64)1<<((NU)((((Tmsgkind_nDM9aiGzuSlpuw3CrqwaebA) 288)- 236))&63U)))!=0);
			LA52: ;
			if (!LOC51) goto LA53;
			LOC55 = (NimStringDesc*)0;
			LOC55 = Gcgetstatistics_J4pluHK783lhY9aB0aYTnzg();
			printf("%s\015\012", LOC55? (LOC55)->data:"nil");
			fflush(stdout);
		}
		LA53: ;
		{
			if (!(gerrorcounter_BdMIKofstJQD5Y2GBaRdzQ == ((NI) 0))) goto LA58;
			{
				if (!((gglobaloptions_j042VVDC9cT5ENYoXnmhhVg &((NU64)1<<((NU)(((Tglobaloption_RAfAEZqjnKMDumgyKKc1qw) 13))&63U)))!=0)) goto LA62;
				{
					NimStringDesc* ex0;
					NimStringDesc* LOC77;
					NimStringDesc* LOC78;
					if (!(gcmd_0oKScFtMiSKnjiHF9cU9c5GQ == ((Tcommands_VH3ghgQVwLSg3krOAoXigw) 4))) goto LA66;
					ex0 = (NimStringDesc*)0;
					{
						NimStringDesc* LOC72;
						if (!(((NI) 0) < (outfile_LiHKjDVrUS85u6xbuNvgxA ? outfile_LiHKjDVrUS85u6xbuNvgxA->Sup.len : 0))) goto LA70;
						LOC72 = (NimStringDesc*)0;
						LOC72 = prependcurdir_GjIeuxoFFHzgsN9aaFgTDcg(outfile_LiHKjDVrUS85u6xbuNvgxA);
						ex0 = nospquoteShell(LOC72);
					}
					goto LA68;
					LA70: ;
					{
						NimStringDesc* LOC74;
						NimStringDesc* LOC75;
						NimStringDesc* LOC76;
						LOC74 = (NimStringDesc*)0;
						LOC74 = noschangeFileExt(gprojectfull_V1rcVHDANDR4ly2ul00asg, ((NimStringDesc*) &T_6xNBOpPeN0DsJ34t7RoSng_9));
						LOC75 = (NimStringDesc*)0;
						LOC75 = prependcurdir_GjIeuxoFFHzgsN9aaFgTDcg(LOC74);
						LOC76 = (NimStringDesc*)0;
						LOC76 = completecfilepath_XziFVTv1mJIlNEw2aMU1Ig(LOC75, NIM_TRUE);
						ex0 = nospquoteShell(LOC76);
					}
					LA68: ;
					LOC77 = (NimStringDesc*)0;
					LOC78 = (NimStringDesc*)0;
					LOC78 = findnodejs_z61UrGeYjp2dp3H9c8bG88g();
					LOC77 = rawNewString(LOC78->Sup.len + ex0->Sup.len + arguments_J4sVmqKDJ3MkfxziRX9cODA->Sup.len + 2);
appendString(LOC77, LOC78);
appendString(LOC77, ((NimStringDesc*) &T_6xNBOpPeN0DsJ34t7RoSng_10));
appendString(LOC77, ex0);
appendChar(LOC77, 32);
appendString(LOC77, arguments_J4sVmqKDJ3MkfxziRX9cODA);
					execexternalprogram_Pv5NVuLJkhqF9a3uo9aKpTxw(LOC77, ((Tmsgkind_IGAWgv9aR2KqPKJfPZPEWaw) 283));
				}
				goto LA64;
				LA66: ;
				{
					NimStringDesc* ex0;
					NimStringDesc* LOC91;
					if (!(gcmd_0oKScFtMiSKnjiHF9cU9c5GQ == ((Tcommands_VH3ghgQVwLSg3krOAoXigw) 5))) goto LA80;
					ex0 = (NimStringDesc*)0;
					{
						NimStringDesc* LOC86;
						if (!(((NI) 0) < (outfile_LiHKjDVrUS85u6xbuNvgxA ? outfile_LiHKjDVrUS85u6xbuNvgxA->Sup.len : 0))) goto LA84;
						LOC86 = (NimStringDesc*)0;
						LOC86 = prependcurdir_GjIeuxoFFHzgsN9aaFgTDcg(outfile_LiHKjDVrUS85u6xbuNvgxA);
						ex0 = nospquoteShell(LOC86);
					}
					goto LA82;
					LA84: ;
					{
						NimStringDesc* LOC88;
						NimStringDesc* LOC89;
						NimStringDesc* LOC90;
						LOC88 = (NimStringDesc*)0;
						LOC88 = noschangeFileExt(gprojectfull_V1rcVHDANDR4ly2ul00asg, ((NimStringDesc*) &T_6xNBOpPeN0DsJ34t7RoSng_11));
						LOC89 = (NimStringDesc*)0;
						LOC89 = prependcurdir_GjIeuxoFFHzgsN9aaFgTDcg(LOC88);
						LOC90 = (NimStringDesc*)0;
						LOC90 = completecfilepath_XziFVTv1mJIlNEw2aMU1Ig(LOC89, NIM_TRUE);
						ex0 = nospquoteShell(LOC90);
					}
					LA82: ;
					LOC91 = (NimStringDesc*)0;
					LOC91 = rawNewString(ex0->Sup.len + arguments_J4sVmqKDJ3MkfxziRX9cODA->Sup.len + 5);
appendString(LOC91, ((NimStringDesc*) &T_6xNBOpPeN0DsJ34t7RoSng_12));
appendString(LOC91, ex0);
appendChar(LOC91, 32);
appendString(LOC91, arguments_J4sVmqKDJ3MkfxziRX9cODA);
					execexternalprogram_Pv5NVuLJkhqF9a3uo9aKpTxw(LOC91, ((Tmsgkind_IGAWgv9aR2KqPKJfPZPEWaw) 283));
				}
				goto LA64;
				LA80: ;
				{
					NimStringDesc* binpath0;
					NimStringDesc* ex0;
					NimStringDesc* LOC99;
					binpath0 = (NimStringDesc*)0;
					{
						if (!(((NI) 0) < (outfile_LiHKjDVrUS85u6xbuNvgxA ? outfile_LiHKjDVrUS85u6xbuNvgxA->Sup.len : 0))) goto LA95;
						binpath0 = prependcurdir_GjIeuxoFFHzgsN9aaFgTDcg(outfile_LiHKjDVrUS85u6xbuNvgxA);
					}
					goto LA93;
					LA95: ;
					{
						NimStringDesc* LOC98;
						LOC98 = (NimStringDesc*)0;
						LOC98 = noschangeFileExt(gprojectfull_V1rcVHDANDR4ly2ul00asg, ((NimStringDesc*) &T_6xNBOpPeN0DsJ34t7RoSng_13));
						binpath0 = prependcurdir_GjIeuxoFFHzgsN9aaFgTDcg(LOC98);
					}
					LA93: ;
					ex0 = nospquoteShell(binpath0);
					LOC99 = (NimStringDesc*)0;
					LOC99 = rawNewString(ex0->Sup.len + arguments_J4sVmqKDJ3MkfxziRX9cODA->Sup.len + 1);
appendString(LOC99, ex0);
appendChar(LOC99, 32);
appendString(LOC99, arguments_J4sVmqKDJ3MkfxziRX9cODA);
					execexternalprogram_Pv5NVuLJkhqF9a3uo9aKpTxw(LOC99, ((Tmsgkind_IGAWgv9aR2KqPKJfPZPEWaw) 283));
				}
				LA64: ;
			}
			LA62: ;
		}
		LA58: ;
	}
	LA1: ;
	}BeforeRet: ;
}

static N_INLINE(void, initStackBottomWith)(void* locals0) {
	setStackBottom(locals0);
}
void PreMainInner() {
	systemInit000();
	stdlib_parseutilsDatInit000();
	stdlib_mathDatInit000();
	stdlib_algorithmDatInit000();
	stdlib_strutilsDatInit000();
	stdlib_dynlibDatInit000();
	stdlib_winleanDatInit000();
	stdlib_timesDatInit000();
	stdlib_osDatInit000();
	compiler_listsDatInit000();
	stdlib_etcprivDatInit000();
	stdlib_hashesDatInit000();
	stdlib_strtabsDatInit000();
	stdlib_streamsDatInit000();
	stdlib_cpuinfoDatInit000();
	stdlib_osprocDatInit000();
	stdlib_setsDatInit000();
	compiler_optionsDatInit000();
	stdlib_tablesDatInit000();
	compiler_platformDatInit000();
	compiler_ropesDatInit000();
	stdlib_macrosDatInit000();
	stdlib_terminalDatInit000();
	compiler_msgsDatInit000();
	compiler_nversionDatInit000();
	compiler_wordrecgDatInit000();
	compiler_identsDatInit000();
	compiler_condsymsDatInit000();
	stdlib_securehashDatInit000();
	stdlib_lexbaseDatInit000();
	stdlib_unicodeDatInit000();
	stdlib_jsonDatInit000();
	compiler_extccompDatInit000();
	compiler_nimblecmdDatInit000();
	stdlib_parseoptDatInit000();
	compiler_commandsDatInit000();
	compiler_llstreamDatInit000();
	compiler_nimlexbaseDatInit000();
	compiler_lexerDatInit000();
	compiler_nimconfDatInit000();
	stdlib_intsetsDatInit000();
	compiler_idgenDatInit000();
	compiler_astDatInit000();
	compiler_rodutilsDatInit000();
	compiler_astalgoDatInit000();
	compiler_parserDatInit000();
	compiler_pbracesDatInit000();
	compiler_rendererDatInit000();
	compiler_filtersDatInit000();
	compiler_filter_tmplDatInit000();
	compiler_syntaxesDatInit000();
	compiler_treesDatInit000();
	compiler_typesDatInit000();
	stdlib_memfilesDatInit000();
	compiler_rodreadDatInit000();
	compiler_magicsysDatInit000();
	compiler_bitsetsDatInit000();
	compiler_nimsetsDatInit000();
	compiler_modulegraphsDatInit000();
	compiler_passesDatInit000();
	compiler_treetabDatInit000();
	compiler_vmdefDatInit000();
	compiler_semdataDatInit000();
	compiler_prettybaseDatInit000();
	compiler_lookupsDatInit000();
	compiler_importerDatInit000();
	compiler_rodwriteDatInit000();
	compiler_saturateDatInit000();
	compiler_semfoldDatInit000();
	compiler_procfindDatInit000();
	compiler_pragmasDatInit000();
	compiler_semtypinstDatInit000();
	compiler_parampatternsDatInit000();
	compiler_prettyDatInit000();
	docutils_rstastDatInit000();
	docutils_rstDatInit000();
	docutils_highliteDatInit000();
	stdlib_sequtilsDatInit000();
	docutils_rstgenDatInit000();
	compiler_guardsDatInit000();
	compiler_writetrackingDatInit000();
	compiler_sempass2DatInit000();
	stdlib_xmltreeDatInit000();
	stdlib_cookiesDatInit000();
	stdlib_cgiDatInit000();
	compiler_typesrendererDatInit000();
	compiler_docgenDatInit000();
	compiler_sigmatchDatInit000();
	compiler_cgmethDatInit000();
	compiler_loweringsDatInit000();
	compiler_lambdaliftingDatInit000();
	compiler_transfDatInit000();
	compiler_vmgenDatInit000();
	compiler_vmdepsDatInit000();
	compiler_vmmarshalDatInit000();
	compiler_evaltemplDatInit000();
	compiler_vmDatInit000();
	compiler_aliasesDatInit000();
	compiler_patternsDatInit000();
	compiler_semmacrosanityDatInit000();
	compiler_semparallelDatInit000();
	compiler_pluginsupportDatInit000();
	compiler_localsDatInit000();
	compiler_itersgenDatInit000();
	compiler_activeDatInit000();
	compiler_semDatInit000();
	compiler_ccgutilsDatInit000();
	stdlib_md5DatInit000();
	compiler_sighashesDatInit000();
	compiler_cgendataDatInit000();
	compiler_ccgmergeDatInit000();
	compiler_cgenDatInit000();
	compiler_jsgenDatInit000();
	compiler_passauxDatInit000();
	compiler_dependsDatInit000();
	compiler_docgen2DatInit000();
	stdlib_nativesocketsDatInit000();
	stdlib_netDatInit000();
	compiler_serviceDatInit000();
	compiler_modulesDatInit000();
	compiler_mainDatInit000();
	compiler_nodejsDatInit000();
	compiler_scriptconfigDatInit000();
	nimDatInit000();
	stdlib_parseutilsInit000();
	stdlib_mathInit000();
	stdlib_algorithmInit000();
	stdlib_strutilsInit000();
	stdlib_dynlibInit000();
	stdlib_winleanInit000();
	stdlib_timesInit000();
	stdlib_osInit000();
	compiler_listsInit000();
	stdlib_etcprivInit000();
	stdlib_hashesInit000();
	stdlib_strtabsInit000();
	stdlib_streamsInit000();
	stdlib_cpuinfoInit000();
	stdlib_osprocInit000();
	stdlib_setsInit000();
	compiler_optionsInit000();
	stdlib_tablesInit000();
	compiler_platformInit000();
	compiler_ropesInit000();
	stdlib_macrosInit000();
	stdlib_terminalInit000();
	compiler_msgsInit000();
	compiler_nversionInit000();
	compiler_wordrecgInit000();
	compiler_identsInit000();
	compiler_condsymsInit000();
	stdlib_securehashInit000();
	stdlib_lexbaseInit000();
	stdlib_unicodeInit000();
	stdlib_jsonInit000();
	compiler_extccompInit000();
	compiler_nimblecmdInit000();
	stdlib_parseoptInit000();
	compiler_commandsInit000();
	compiler_llstreamInit000();
	compiler_nimlexbaseInit000();
	compiler_lexerInit000();
	compiler_nimconfInit000();
	stdlib_intsetsInit000();
	compiler_idgenInit000();
	compiler_astInit000();
	compiler_rodutilsInit000();
	compiler_astalgoInit000();
	compiler_parserInit000();
	compiler_pbracesInit000();
	compiler_rendererInit000();
	compiler_filtersInit000();
	compiler_filter_tmplInit000();
	compiler_syntaxesInit000();
	compiler_treesInit000();
	compiler_typesInit000();
	stdlib_memfilesInit000();
	compiler_rodreadInit000();
	compiler_magicsysInit000();
	compiler_bitsetsInit000();
	compiler_nimsetsInit000();
	compiler_modulegraphsInit000();
	compiler_passesInit000();
	compiler_treetabInit000();
	compiler_vmdefInit000();
	compiler_semdataInit000();
	compiler_prettybaseInit000();
	compiler_lookupsInit000();
	compiler_importerInit000();
	compiler_rodwriteInit000();
	compiler_saturateInit000();
	compiler_semfoldInit000();
	compiler_procfindInit000();
	compiler_pragmasInit000();
	compiler_semtypinstInit000();
	compiler_parampatternsInit000();
	compiler_prettyInit000();
	docutils_rstastInit000();
	docutils_rstInit000();
	docutils_highliteInit000();
	stdlib_sequtilsInit000();
	docutils_rstgenInit000();
	compiler_guardsInit000();
	compiler_writetrackingInit000();
	compiler_sempass2Init000();
	stdlib_xmltreeInit000();
	stdlib_cookiesInit000();
	stdlib_cgiInit000();
	compiler_typesrendererInit000();
	compiler_docgenInit000();
	compiler_sigmatchInit000();
	compiler_cgmethInit000();
	compiler_loweringsInit000();
	compiler_lambdaliftingInit000();
	compiler_transfInit000();
	compiler_vmgenInit000();
	compiler_vmdepsInit000();
	compiler_vmmarshalInit000();
	compiler_evaltemplInit000();
	compiler_vmInit000();
	compiler_aliasesInit000();
	compiler_patternsInit000();
	compiler_semmacrosanityInit000();
	compiler_semparallelInit000();
	compiler_pluginsupportInit000();
	compiler_localsInit000();
	compiler_itersgenInit000();
	compiler_activeInit000();
	compiler_semInit000();
	compiler_ccgutilsInit000();
	stdlib_md5Init000();
	compiler_sighashesInit000();
	compiler_cgendataInit000();
	compiler_ccgmergeInit000();
	compiler_cgenInit000();
	compiler_jsgenInit000();
	compiler_passauxInit000();
	compiler_dependsInit000();
	compiler_docgen2Init000();
	stdlib_nativesocketsInit000();
	stdlib_netInit000();
	compiler_serviceInit000();
	compiler_modulesInit000();
	compiler_mainInit000();
	compiler_nodejsInit000();
	compiler_scriptconfigInit000();
}

void PreMain() {
	void (*volatile inner)();
	systemDatInit000();
	inner = PreMainInner;
	initStackBottomWith((void *)&inner);
	(*inner)();
}

int cmdCount;
char** cmdLine;
char** gEnv;
N_CDECL(void, NimMainInner)(void) {
	NimMainModule();
}

N_CDECL(void, NimMain)(void) {
	void (*volatile inner)();
	PreMain();
	inner = NimMainInner;
	initStackBottomWith((void *)&inner);
	(*inner)();
}

int main(int argc, char** args, char** env) {
	cmdLine = args;
	cmdCount = argc;
	gEnv = env;
	NimMain();
	return nim_program_result;
}

NIM_EXTERNC N_NOINLINE(void, NimMainModule)(void) {
	IdentcacheHEX3Aobjecttype_TzLHS09bRH9a0TYLs39cqcNaw* LOC1;
	Gcdisablemarkandsweep_njssp69aa7hvxte9bJ8uuDcg_4();
	initdefines_cpH2nhcvqZlKU3W1Gx7n5Q();
	LOC1 = (IdentcacheHEX3Aobjecttype_TzLHS09bRH9a0TYLs39cqcNaw*)0;
	LOC1 = newidentcache_9basvGvZH4FwEO4MVbYyP9aA();
	handlecmdline_vMnABAOaqER9aU9a39amQxhmA(LOC1);
	msgquit_RYjZhMg4ryWFSaRX7jHrTA(((NI8) ((((NI) 0) < gerrorcounter_BdMIKofstJQD5Y2GBaRdzQ))));
}

NIM_EXTERNC N_NOINLINE(void, nimDatInit000)(void) {
}

