/* Generated by Nim Compiler v0.16.0 */
/*   (c) 2017 Andreas Rumpf */
/* The generated code is subject to the original license. */
/* Compiled for: Linux, amd64, gcc */
/* Command for C compiler:
   gcc -c  -w -O3 -fno-strict-aliasing -fPIC  -I/build/nim/src/Nim-0.16.0/lib -o lib/nimcache/stdlib_osproc.o lib/nimcache/stdlib_osproc.c */
#define NIM_INTBITS 64

#include "nimbase.h"
#include <string.h>
#include <sys/types.h>
#include <unistd.h>
#include <setjmp.h>
#include <errno.h>
#include <fcntl.h>
#include <stdio.h>
#include <signal.h>
#include <sys/wait.h>
#include <time.h>
#include <stdlib.h>
#undef linux
typedef struct NimStringDesc NimStringDesc;
typedef struct TGenericSeq TGenericSeq;
typedef struct Processobj_NHqciQYh8G1aN2n273mmYw Processobj_NHqciQYh8G1aN2n273mmYw;
typedef struct TNimObject TNimObject;
typedef struct TNimType TNimType;
typedef struct TNimNode TNimNode;
typedef struct Streamobj_RShkcoDOPnoCVhtpN1hDPQ Streamobj_RShkcoDOPnoCVhtpN1hDPQ;
typedef struct TY_l0xXJxOLtcuhlSBHl64t5w TY_l0xXJxOLtcuhlSBHl64t5w;
typedef struct Cell_1zcF9cV8XIAtbN8h5HRUB8g Cell_1zcF9cV8XIAtbN8h5HRUB8g;
typedef struct Stringtableobj_DKRIdH9c9cKI7YpQb9c0wKlEw Stringtableobj_DKRIdH9c9cKI7YpQb9c0wKlEw;
typedef struct TY_sM4lkSb7zS6F7OVMvW9cffQ TY_sM4lkSb7zS6F7OVMvW9cffQ;
typedef struct Exception Exception;
typedef struct TSafePoint TSafePoint;
typedef struct TY_4eQHGndY6XBYpFOH09apV8Q TY_4eQHGndY6XBYpFOH09apV8Q;
typedef struct TY_UV3llMMYFckfui8YMBuUZA TY_UV3llMMYFckfui8YMBuUZA;
typedef struct Startprocessdata_xgRnKnLIYRtnOkshMKhc9cA Startprocessdata_xgRnKnLIYRtnOkshMKhc9cA;
typedef struct Valueerror_Gi06FkNeykJn7mrqRZYrkA Valueerror_Gi06FkNeykJn7mrqRZYrkA;
typedef struct Filestreamobj_qoDM8xYRV40zbhS9acPNT9bw Filestreamobj_qoDM8xYRV40zbhS9acPNT9bw;
struct  TGenericSeq  {
NI len;
NI reserved;
};
struct  NimStringDesc  {
  TGenericSeq Sup;
NIM_CHAR data[SEQ_DECL_SIZE];
};
typedef NU8 TY_nmiMWKVIe46vacnhAFrQvw_Set[32];
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;
};
typedef NU8 Processoption_bnU6W8LhTMnT4JaSWtGlSA_Set;
struct  Processobj_NHqciQYh8G1aN2n273mmYw  {
  TNimObject Sup;
int inhandle;
int outhandle;
int errhandle;
Streamobj_RShkcoDOPnoCVhtpN1hDPQ* instream;
Streamobj_RShkcoDOPnoCVhtpN1hDPQ* outstream;
Streamobj_RShkcoDOPnoCVhtpN1hDPQ* errstream;
pid_t id;
int exitstatus;
Processoption_bnU6W8LhTMnT4JaSWtGlSA_Set options;
};
typedef struct {
N_NIMCALL_PTR(void, ClPrc) (NI idx0, void* ClEnv);
void* ClEnv;
} TY_kElEuvYkhDcTHhB3d89aMYA;
typedef struct {
N_NIMCALL_PTR(void, ClPrc) (NI idx0, Processobj_NHqciQYh8G1aN2n273mmYw* p0, void* ClEnv);
void* ClEnv;
} TY_SfW5itioRNR8yop8fOJeNg;
typedef NU8 Tnimnodekind_unfNsxrcATrufDZmpBq4HQ;
struct  TNimNode  {
Tnimnodekind_unfNsxrcATrufDZmpBq4HQ kind;
NI offset;
TNimType* typ;
NCSTRING name;
NI len;
TNimNode** sons;
};
typedef NU8 Processoption_bnU6W8LhTMnT4JaSWtGlSA;
typedef N_CLOSURE_PTR(void, T_HZdw8BhppcTQo8DIK46LSg_15) (NI idx0);
typedef NimStringDesc* TY_8ZvwQIddfpj2THRVPsFzIQ[1];
struct  Cell_1zcF9cV8XIAtbN8h5HRUB8g  {
NI refcount;
TNimType* typ;
};
typedef N_CLOSURE_PTR(void, T_HZdw8BhppcTQo8DIK46LSg_17) (NI idx0, Processobj_NHqciQYh8G1aN2n273mmYw* p0);
typedef N_CLOSURE_PTR(void, T_HZdw8BhppcTQo8DIK46LSg_18) (NI idx0);
typedef N_CLOSURE_PTR(void, T_HZdw8BhppcTQo8DIK46LSg_19) (NI idx0, Processobj_NHqciQYh8G1aN2n273mmYw* p0);
typedef N_CLOSURE_PTR(void, T_HZdw8BhppcTQo8DIK46LSg_20) (NI idx0);
typedef N_CLOSURE_PTR(void, T_HZdw8BhppcTQo8DIK46LSg_21) (NI idx0, Processobj_NHqciQYh8G1aN2n273mmYw* p0);
typedef int TY_SKEqGXcReU4NvbQlH779b5Q[2];
typedef NimStringDesc* TY_24KAM9afIUgUaqBaEBB6r9bg[3];
typedef NimStringDesc* TY_nHXaesL0DJZHyVS07ARPRA[1];
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 Stringtablemode_G9c4wVDFIzf0xHmQvxso9a9cQ;
struct  Stringtableobj_DKRIdH9c9cKI7YpQb9c0wKlEw  {
  TNimObject Sup;
NI counter;
TY_4eQHGndY6XBYpFOH09apV8Q* data;
Stringtablemode_G9c4wVDFIzf0xHmQvxso9a9cQ mode;
};
struct TY_UV3llMMYFckfui8YMBuUZA {
NimStringDesc* Field0;
NimStringDesc* Field1;
};
struct  Startprocessdata_xgRnKnLIYRtnOkshMKhc9cA  {
NCSTRING syscommand;
NCSTRING* sysargs;
NCSTRING* sysenv;
NCSTRING workingdir;
TY_SKEqGXcReU4NvbQlH779b5Q pstdin;
TY_SKEqGXcReU4NvbQlH779b5Q pstdout;
TY_SKEqGXcReU4NvbQlH779b5Q pstderr;
TY_SKEqGXcReU4NvbQlH779b5Q perrorpipe;
NIM_BOOL optionpousepath;
NIM_BOOL optionpoparentstreams;
NIM_BOOL optionpostderrtostdout;
};
typedef NimStringDesc* TY_Re75IspeoxXy2oCZHwcRrA[2];
struct  Valueerror_Gi06FkNeykJn7mrqRZYrkA  {
  Exception Sup;
};
typedef NU8 Filemode_fVUBHvW79bXUw1j55Oo9avSQ;
typedef N_NIMCALL_PTR(void, TY_cnkJEp9bna8U6yi9aVW9cAJ0Q) (Streamobj_RShkcoDOPnoCVhtpN1hDPQ* s0);
typedef N_NIMCALL_PTR(NIM_BOOL, TY_KjFcmLOhf4VQvVcyLJWXZw) (Streamobj_RShkcoDOPnoCVhtpN1hDPQ* s0);
typedef N_NIMCALL_PTR(void, TY_jlOYFw9cHausuCbPoWx2iiA) (Streamobj_RShkcoDOPnoCVhtpN1hDPQ* s0, NI pos0);
typedef N_NIMCALL_PTR(NI, TY_Xzm85qBLb9cf9cu8VOfAr8PQ) (Streamobj_RShkcoDOPnoCVhtpN1hDPQ* s0);
typedef N_NIMCALL_PTR(NI, TY_tjaJtoUzLe1BMUbItlcGhQ) (Streamobj_RShkcoDOPnoCVhtpN1hDPQ* s0, void* buffer0, NI buflen0);
typedef N_NIMCALL_PTR(void, TY_b9bsIuILxTLVZHPvJBW187A) (Streamobj_RShkcoDOPnoCVhtpN1hDPQ* s0, void* buffer0, NI buflen0);
struct  Streamobj_RShkcoDOPnoCVhtpN1hDPQ  {
  TNimObject Sup;
TY_cnkJEp9bna8U6yi9aVW9cAJ0Q closeimpl;
TY_KjFcmLOhf4VQvVcyLJWXZw atendimpl;
TY_jlOYFw9cHausuCbPoWx2iiA setpositionimpl;
TY_Xzm85qBLb9cf9cu8VOfAr8PQ getpositionimpl;
TY_tjaJtoUzLe1BMUbItlcGhQ readdataimpl;
TY_tjaJtoUzLe1BMUbItlcGhQ peekdataimpl;
TY_b9bsIuILxTLVZHPvJBW187A writedataimpl;
TY_cnkJEp9bna8U6yi9aVW9cAJ0Q flushimpl;
};
struct  Filestreamobj_qoDM8xYRV40zbhS9acPNT9bw  {
  Streamobj_RShkcoDOPnoCVhtpN1hDPQ Sup;
FILE* f;
};
struct TY_l0xXJxOLtcuhlSBHl64t5w {
  TGenericSeq Sup;
  Processobj_NHqciQYh8G1aN2n273mmYw* data[SEQ_DECL_SIZE];
};
struct TY_sM4lkSb7zS6F7OVMvW9cffQ {
  TGenericSeq Sup;
  NimStringDesc* data[SEQ_DECL_SIZE];
};
struct TY_4eQHGndY6XBYpFOH09apV8Q {
  TGenericSeq Sup;
  TY_UV3llMMYFckfui8YMBuUZA data[SEQ_DECL_SIZE];
};
N_LIB_EXPORT N_CDECL(NimStringDesc*, nospquoteShellWindows)(NimStringDesc* s0);
N_NIMCALL(NIM_BOOL, contains_m1TSS3QwQPclQATuiRuVZg)(NimStringDesc* s0, TY_nmiMWKVIe46vacnhAFrQvw_Set chars0);
N_LIB_EXPORT N_CDECL(NimStringDesc*, nimrtl_copyString)(NimStringDesc* src0);
static N_INLINE(void, appendString)(NimStringDesc* dest0, NimStringDesc* src0);
static N_INLINE(void, copymem_E1xtACub5WcDa3vbrIXbwgsystem)(void* dest0, void* source0, NI size0);
N_LIB_EXPORT N_CDECL(NimStringDesc*, nimrtl_resizeString)(NimStringDesc* dest0, NI addlen0);
N_NIMCALL(NimStringDesc*, addChar)(NimStringDesc* s0, NIM_CHAR c0);
N_LIB_EXPORT N_CDECL(NimStringDesc*, nimrtl_setLengthStr)(NimStringDesc* s0, NI newlen0);
N_LIB_EXPORT N_CDECL(NimStringDesc*, nospquoteShellPosix)(NimStringDesc* s0);
N_NIMCALL(NIM_BOOL, allcharsinset_wVfr4F6j4mVzI8ggLoMVdw)(NimStringDesc* s0, TY_nmiMWKVIe46vacnhAFrQvw_Set theset0);
N_LIB_EXPORT N_CDECL(NimStringDesc*, nsuReplaceStr)(NimStringDesc* s0, NimStringDesc* sub0, NimStringDesc* by0);
N_NIMCALL(NimStringDesc*, rawNewString)(NI space0);
N_LIB_EXPORT N_CDECL(NimStringDesc*, nospquoteShell)(NimStringDesc* s0);
N_LIB_EXPORT N_CDECL(NI, nospprocessID)(Processobj_NHqciQYh8G1aN2n273mmYw* p0);
N_LIB_EXPORT N_CDECL(int, nospinputHandle)(Processobj_NHqciQYh8G1aN2n273mmYw* p0);
N_LIB_EXPORT N_CDECL(int, nospoutputHandle)(Processobj_NHqciQYh8G1aN2n273mmYw* p0);
N_LIB_EXPORT N_CDECL(int, nosperrorHandle)(Processobj_NHqciQYh8G1aN2n273mmYw* p0);
N_LIB_EXPORT N_CDECL(NI, nospcountProcessors)(void);
N_LIB_EXPORT N_CDECL(NI, ncpicountProcessors)(void);
N_LIB_EXPORT N_CDECL(NI, nospexecProcesses)(NimStringDesc** cmds0, NI cmds0Len0, Processoption_bnU6W8LhTMnT4JaSWtGlSA_Set options_SOxRkpbUm0l9cOVKhpddsEw, NI n0, TY_kElEuvYkhDcTHhB3d89aMYA beforerunevent0, TY_SfW5itioRNR8yop8fOJeNg afterrunevent0);
N_LIB_EXPORT N_CDECL(void, nimrtl_nimGCvisit)(void* d0, NI op0);
static N_NIMCALL(void, Marker_TY_Ryg5db24dBRIzTUa2BQTPg)(void* p, NI op);
static N_NIMCALL(void, Marker_TY_l0xXJxOLtcuhlSBHl64t5w)(void* p, NI op);
N_LIB_EXPORT N_CDECL(void*, nimrtl_newSeq)(TNimType* typ0, NI len0);
static N_INLINE(void, asgnRef)(void** dest0, void* src0);
static N_INLINE(void, incref_9cAA5YuQAAC3MVbnGeV86swsystem)(Cell_1zcF9cV8XIAtbN8h5HRUB8g* c0);
static N_INLINE(Cell_1zcF9cV8XIAtbN8h5HRUB8g*, usrtocell_yB9aH5WIlwd0xkYrcdPeXrQsystem)(void* usr0);
static N_INLINE(void, decref_MV4BBk6J1qu70IbBxwEn4wsystem)(Cell_1zcF9cV8XIAtbN8h5HRUB8g* c0);
N_LIB_EXPORT N_CDECL(void, nimrtl_rtlAddZCT)(Cell_1zcF9cV8XIAtbN8h5HRUB8g* c0);
N_LIB_EXPORT N_CDECL(void, nossleep)(NI milsecs0);
N_LIB_EXPORT N_CDECL(NimStringDesc*, nospexecProcess)(NimStringDesc* command0, NimStringDesc** args0, NI args0Len0, Stringtableobj_DKRIdH9c9cKI7YpQb9c0wKlEw* env0, Processoption_bnU6W8LhTMnT4JaSWtGlSA_Set options0);
N_NIMCALL(NimStringDesc*, rawNewString)(NI cap0);
N_NIMCALL(NIM_BOOL, readline_y89bfL07uXzOjT5XgI50WmQ)(Streamobj_RShkcoDOPnoCVhtpN1hDPQ* s0, NimStringDesc** line0);
N_LIB_EXPORT N_CDECL(Processobj_NHqciQYh8G1aN2n273mmYw*, nospstartProcess)(NimStringDesc* command0, NimStringDesc* workingdir0, NimStringDesc** args0, NI args0Len0, Stringtableobj_DKRIdH9c9cKI7YpQb9c0wKlEw* env0, Processoption_bnU6W8LhTMnT4JaSWtGlSA_Set options0);
N_LIB_EXPORT N_CDECL(void*, nimrtl_newObj)(TNimType* typ0, NI size0);
N_NOINLINE(void, raiseoserror_K9a7YBjj81Bse0N0Fg7MFIA)(NI32 errorcode0, NimStringDesc* additionalinfo0);
N_NIMCALL(NI32, oslasterror_pMOMIZAQaKFp1XoL58mjVg)(void);
N_LIB_EXPORT N_CDECL(NimStringDesc*, nimrtl_copyStringRC1)(NimStringDesc* src0);
static N_INLINE(void, nimGCunrefNoCycle)(void* p0);
N_NIMCALL(TGenericSeq*, incrSeqV2)(TGenericSeq* seq0, NI elemsize0);
N_NIMCALL(NCSTRING*, alloccstringarray_TG6GWpa9cdnVJVGZxJaqBJg)(NimStringDesc** a0, NI a0Len0);
N_LIB_EXPORT N_CDECL(void, nimrtl_pushSafePoint)(TSafePoint* s0);
N_NIMCALL(NCSTRING*, envtocstringarray_5W8jibc9b9cn0LB5f6DkUbiA)(void);
N_NIMCALL(void, getenvvarsc_xlXgIeBHBOL9cl4MJcFJ8xA)(void);
N_LIB_EXPORT N_CDECL(NI, nsuFindChar)(NimStringDesc* s0, NIM_CHAR sub0, NI start0);
N_NIMCALL(NimStringDesc*, copyStrLast)(NimStringDesc* s0, NI start_WPWyPKk58Cr5a6XFFviMjg, NI last0);
N_NIMCALL(NimStringDesc*, copyStrLast)(NimStringDesc* s0, NI first0, NI last0);
N_NIMCALL(NimStringDesc*, copyStr)(NimStringDesc* s0, NI start0);
N_NIMCALL(NimStringDesc*, copyStr)(NimStringDesc* s0, NI first0);
N_LIB_EXPORT N_NOCONV(void*, nimrtl_alloc0)(NI size0);
N_LIB_EXPORT N_NOCONV(void*, nimrtl_alloc)(NI size0);
N_NIMCALL(NCSTRING*, envtocstringarray_powWbjMeev5megN9bWVjfTw)(Stringtableobj_DKRIdH9c9cKI7YpQb9c0wKlEw* t0);
N_LIB_EXPORT N_CDECL(NI, nstlen)(Stringtableobj_DKRIdH9c9cKI7YpQb9c0wKlEw* t0);
N_NIMCALL(pid_t, startprocessauxfork_VwNkkMfMOAO9b1isfsqmrNQ)(Startprocessdata_xgRnKnLIYRtnOkshMKhc9cA* data0);
N_CDECL(void, startprocessafterfork_kP8IoxkYQ0xKBWMKeIF3Cw)(Startprocessdata_xgRnKnLIYRtnOkshMKhc9cA* data0);
N_NIMCALL(void, startprocessfail_1Q2da9a7NmGuR0Ogak2NKkw)(Startprocessdata_xgRnKnLIYRtnOkshMKhc9cA* data0);
N_LIB_EXPORT N_CDECL(NimStringDesc*, nsuFormatOpenArray)(NimStringDesc* formatstr0, NimStringDesc** a0, NI a0Len0);
N_LIB_EXPORT N_CDECL(NimStringDesc*, nimrtl_cstrToNimstr)(NCSTRING str0);
N_LIB_EXPORT N_CDECL(void, nimrtl_popSafePoint)(void);
N_LIB_EXPORT N_CDECL(void, nimrtl_reraiseException)(void);
N_LIB_EXPORT N_CDECL(NimStringDesc*, nsuJoinSep)(NimStringDesc** a0, NI a0Len0, NimStringDesc* sep0);
N_NIMCALL(void, dealloccstringarray_PrKbmufafP6J0HO6K4x3tQ)(NCSTRING* a0);
N_LIB_EXPORT N_CDECL(void, nospclose)(Processobj_NHqciQYh8G1aN2n273mmYw* p0);
N_NIMCALL(void, close_4ed7IXme7lqtClFI7s2sTQ)(Streamobj_RShkcoDOPnoCVhtpN1hDPQ* s0);
N_LIB_EXPORT N_CDECL(void, nospsuspend)(Processobj_NHqciQYh8G1aN2n273mmYw* p0);
N_LIB_EXPORT N_CDECL(void, nospresume)(Processobj_NHqciQYh8G1aN2n273mmYw* p0);
N_LIB_EXPORT N_CDECL(NIM_BOOL, nosprunning)(Processobj_NHqciQYh8G1aN2n273mmYw* p0);
N_LIB_EXPORT N_CDECL(void, nospterminate)(Processobj_NHqciQYh8G1aN2n273mmYw* p0);
N_LIB_EXPORT N_CDECL(void, nospkill)(Processobj_NHqciQYh8G1aN2n273mmYw* p0);
N_LIB_EXPORT N_CDECL(NI, nospwaitForExit)(Processobj_NHqciQYh8G1aN2n273mmYw* p0, NI timeout0);
N_LIB_EXPORT N_CDECL(NI64, ntDiffTime)(time_t a0, time_t b0);
N_LIB_EXPORT N_CDECL(NIM_BOOL, ntEqTime)(time_t a0, time_t b0);
N_LIB_EXPORT N_CDECL(void, nimrtl_raiseException)(Exception* e0, NCSTRING ename0);
N_LIB_EXPORT N_CDECL(Streamobj_RShkcoDOPnoCVhtpN1hDPQ*, nospinputStream)(Processobj_NHqciQYh8G1aN2n273mmYw* p0);
N_NIMCALL(void, createstream_v8G6hIKoW7oNggVYf9a9c7dQ)(Streamobj_RShkcoDOPnoCVhtpN1hDPQ** stream0, int* handle0, Filemode_fVUBHvW79bXUw1j55Oo9avSQ filemode0);
N_NIMCALL(NIM_BOOL, open_GRr4dBTChSldEteMxZDsuw)(FILE** f0, int filehandle0, Filemode_fVUBHvW79bXUw1j55Oo9avSQ mode0);
N_NIMCALL(Filestreamobj_qoDM8xYRV40zbhS9acPNT9bw*, newfilestream_j9aOzR9a9bXMSUnTXiGmXXGqQ)(FILE* f0);
N_NIMCALL(void, unsureAsgnRef)(void** dest0, void* src0);
N_LIB_EXPORT N_CDECL(Streamobj_RShkcoDOPnoCVhtpN1hDPQ*, nospoutputStream)(Processobj_NHqciQYh8G1aN2n273mmYw* p0);
N_LIB_EXPORT N_CDECL(Streamobj_RShkcoDOPnoCVhtpN1hDPQ*, nosperrorStream)(Processobj_NHqciQYh8G1aN2n273mmYw* p0);
N_LIB_EXPORT N_CDECL(NI, nospexecCmd)(NimStringDesc* command0);
extern TNimType NTI_13RNkKqUOX1TtorOUlKtqA;
TNimType NTI_NHqciQYh8G1aN2n273mmYw;
extern TNimType NTI_UtShRB9b1wZO9cvpdowm9cefA;
extern TNimType NTI_r3Wc5tOoxP8rz1DvGVTUvw;
extern TNimType NTI_CHeEDdL3roTPu81s9cOH0Bw;
extern TNimType NTI_nlCscttRCss70IBTyuBqnA;
TNimType NTI_bnU6W8LhTMnT4JaSWtGlSA;
TNimType NTI_HlmBYNr2gdAZMXOsuiSZ0A;
TNimType NTI_Ryg5db24dBRIzTUa2BQTPg;
TNimType NTI_l0xXJxOLtcuhlSBHl64t5w;
extern TNimType NTI_sM4lkSb7zS6F7OVMvW9cffQ;
extern TY_sM4lkSb7zS6F7OVMvW9cffQ* environment_mlhK49b6YMgc9cgrcYkKq9a3g;
extern TNimType NTI_yCEN9anxCD6mzBxGjuaRBdg;
extern TNimType NTI_Gi06FkNeykJn7mrqRZYrkA;
static NIM_CONST TY_nmiMWKVIe46vacnhAFrQvw_Set T_HZdw8BhppcTQo8DIK46LSg_2 = {
0x00, 0x02, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
;
STRING_LITERAL(T_HZdw8BhppcTQo8DIK46LSg_3, "", 0);
STRING_LITERAL(T_HZdw8BhppcTQo8DIK46LSg_4, "\"", 1);
STRING_LITERAL(T_HZdw8BhppcTQo8DIK46LSg_5, "\\\"", 2);
STRING_LITERAL(T_HZdw8BhppcTQo8DIK46LSg_6, "\'\'", 2);
static NIM_CONST TY_nmiMWKVIe46vacnhAFrQvw_Set T_HZdw8BhppcTQo8DIK46LSg_7 = {
0x00, 0x00, 0x00, 0x00, 0x20, 0xE8, 0xFF, 0x27,
0xFF, 0xFF, 0xFF, 0x87, 0xFE, 0xFF, 0xFF, 0x07,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
;
STRING_LITERAL(T_HZdw8BhppcTQo8DIK46LSg_8, "\'", 1);
STRING_LITERAL(T_HZdw8BhppcTQo8DIK46LSg_9, "\'\"\'\"\'", 5);
static NIM_CONST TY_kElEuvYkhDcTHhB3d89aMYA T_HZdw8BhppcTQo8DIK46LSg_14 = {NIM_NIL,NIM_NIL};
static NIM_CONST TY_SfW5itioRNR8yop8fOJeNg T_HZdw8BhppcTQo8DIK46LSg_16 = {NIM_NIL,NIM_NIL};
STRING_LITERAL(T_HZdw8BhppcTQo8DIK46LSg_22, "", 0);
STRING_LITERAL(T_HZdw8BhppcTQo8DIK46LSg_23, "\012", 1);
STRING_LITERAL(T_HZdw8BhppcTQo8DIK46LSg_24, "/bin/sh", 7);
STRING_LITERAL(T_HZdw8BhppcTQo8DIK46LSg_25, "-c", 2);
STRING_LITERAL(T_HZdw8BhppcTQo8DIK46LSg_27, "=", 1);
STRING_LITERAL(T_HZdw8BhppcTQo8DIK46LSg_30, "Could not find command: \'$1\'. OS error: $2", 42);
STRING_LITERAL(T_HZdw8BhppcTQo8DIK46LSg_31, " ", 1);
STRING_LITERAL(T_HZdw8BhppcTQo8DIK46LSg_33, "System time was modified", 24);

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

N_LIB_EXPORT N_CDECL(NimStringDesc*, nospquoteShellWindows)(NimStringDesc* s0) {
	NimStringDesc* result0;
	NIM_BOOL needquote0;
	NIM_BOOL LOC1;
	NimStringDesc* backslashbuff0;
	result0 = (NimStringDesc*)0;
	LOC1 = (NIM_BOOL)0;
	LOC1 = contains_m1TSS3QwQPclQATuiRuVZg(s0, T_HZdw8BhppcTQo8DIK46LSg_2);
	if (LOC1) goto LA2;
	LOC1 = ((s0 ? s0->Sup.len : 0) == ((NI) 0));
	LA2: ;
	needquote0 = LOC1;
	result0 = nimrtl_copyString(((NimStringDesc*) &T_HZdw8BhppcTQo8DIK46LSg_3));
	backslashbuff0 = nimrtl_copyString(((NimStringDesc*) &T_HZdw8BhppcTQo8DIK46LSg_3));
	{
		if (!needquote0) goto LA5;
		result0 = nimrtl_resizeString(result0, 1);
appendString(result0, ((NimStringDesc*) &T_HZdw8BhppcTQo8DIK46LSg_4));
	}
	LA5: ;
	{
		NIM_CHAR c_cEb5GPormUAx1moN9c0e4yw;
		NI i_yYr5ptEEqWg8zTlZgS3HdQ;
		NI L_e0rVwYwoF4shE6RWXRGvpg;
		c_cEb5GPormUAx1moN9c0e4yw = (NIM_CHAR)0;
		i_yYr5ptEEqWg8zTlZgS3HdQ = ((NI) 0);
		L_e0rVwYwoF4shE6RWXRGvpg = (s0 ? s0->Sup.len : 0);
		{
			while (1) {
				if (!(i_yYr5ptEEqWg8zTlZgS3HdQ < L_e0rVwYwoF4shE6RWXRGvpg)) goto LA9;
				c_cEb5GPormUAx1moN9c0e4yw = s0->data[i_yYr5ptEEqWg8zTlZgS3HdQ];
				{
					if (!((NU8)(c_cEb5GPormUAx1moN9c0e4yw) == (NU8)(92))) goto LA12;
					backslashbuff0 = addChar(backslashbuff0, c_cEb5GPormUAx1moN9c0e4yw);
				}
				goto LA10;
				LA12: ;
				{
					if (!((NU8)(c_cEb5GPormUAx1moN9c0e4yw) == (NU8)(34))) goto LA15;
					result0 = nimrtl_resizeString(result0, backslashbuff0->Sup.len + 0);
appendString(result0, backslashbuff0);
					result0 = nimrtl_resizeString(result0, backslashbuff0->Sup.len + 0);
appendString(result0, backslashbuff0);
					backslashbuff0 = nimrtl_setLengthStr(backslashbuff0, ((NI) 0));
					result0 = nimrtl_resizeString(result0, 2);
appendString(result0, ((NimStringDesc*) &T_HZdw8BhppcTQo8DIK46LSg_5));
				}
				goto LA10;
				LA15: ;
				{
					{
						if (!!(((backslashbuff0 ? backslashbuff0->Sup.len : 0) == ((NI) 0)))) goto LA20;
						result0 = nimrtl_resizeString(result0, backslashbuff0->Sup.len + 0);
appendString(result0, backslashbuff0);
						backslashbuff0 = nimrtl_setLengthStr(backslashbuff0, ((NI) 0));
					}
					LA20: ;
					result0 = addChar(result0, c_cEb5GPormUAx1moN9c0e4yw);
				}
				LA10: ;
				i_yYr5ptEEqWg8zTlZgS3HdQ += ((NI) 1);
			} LA9: ;
		}
	}
	{
		if (!needquote0) goto LA24;
		result0 = nimrtl_resizeString(result0, 1);
appendString(result0, ((NimStringDesc*) &T_HZdw8BhppcTQo8DIK46LSg_4));
	}
	LA24: ;
	return result0;
}

N_LIB_EXPORT N_CDECL(NimStringDesc*, nospquoteShellPosix)(NimStringDesc* s0) {
	NimStringDesc* result0;
	NIM_BOOL safe0;
{	result0 = (NimStringDesc*)0;
	{
		if (!((s0 ? s0->Sup.len : 0) == ((NI) 0))) goto LA3;
		result0 = nimrtl_copyString(((NimStringDesc*) &T_HZdw8BhppcTQo8DIK46LSg_6));
		goto BeforeRet;
	}
	LA3: ;
	safe0 = allcharsinset_wVfr4F6j4mVzI8ggLoMVdw(s0, T_HZdw8BhppcTQo8DIK46LSg_7);
	{
		if (!safe0) goto LA7;
		result0 = nimrtl_copyString(s0);
		goto BeforeRet;
	}
	goto LA5;
	LA7: ;
	{
		NimStringDesc* LOC10;
		NimStringDesc* LOC11;
		LOC10 = (NimStringDesc*)0;
		LOC11 = (NimStringDesc*)0;
		LOC11 = nsuReplaceStr(s0, ((NimStringDesc*) &T_HZdw8BhppcTQo8DIK46LSg_8), ((NimStringDesc*) &T_HZdw8BhppcTQo8DIK46LSg_9));
		LOC10 = rawNewString(LOC11->Sup.len + 2);
appendString(LOC10, ((NimStringDesc*) &T_HZdw8BhppcTQo8DIK46LSg_8));
appendString(LOC10, LOC11);
appendString(LOC10, ((NimStringDesc*) &T_HZdw8BhppcTQo8DIK46LSg_8));
		result0 = LOC10;
		goto BeforeRet;
	}
	LA5: ;
	}BeforeRet: ;
	return result0;
}

N_LIB_EXPORT N_CDECL(NimStringDesc*, nospquoteShell)(NimStringDesc* s0) {
	NimStringDesc* result0;
{	result0 = (NimStringDesc*)0;
	result0 = nospquoteShellPosix(s0);
	goto BeforeRet;
	}BeforeRet: ;
	return result0;
}

N_LIB_EXPORT N_CDECL(NI, nospprocessID)(Processobj_NHqciQYh8G1aN2n273mmYw* p0) {
	NI result0;
{	result0 = (NI)0;
	result0 = (*p0).id;
	goto BeforeRet;
	}BeforeRet: ;
	return result0;
}

N_LIB_EXPORT N_CDECL(int, nospinputHandle)(Processobj_NHqciQYh8G1aN2n273mmYw* p0) {
	int result0;
	result0 = (int)0;
	result0 = (*p0).inhandle;
	return result0;
}

N_LIB_EXPORT N_CDECL(int, nospoutputHandle)(Processobj_NHqciQYh8G1aN2n273mmYw* p0) {
	int result0;
	result0 = (int)0;
	result0 = (*p0).outhandle;
	return result0;
}

N_LIB_EXPORT N_CDECL(int, nosperrorHandle)(Processobj_NHqciQYh8G1aN2n273mmYw* p0) {
	int result0;
	result0 = (int)0;
	result0 = (*p0).errhandle;
	return result0;
}

N_LIB_EXPORT N_CDECL(NI, nospcountProcessors)(void) {
	NI result0;
	result0 = (NI)0;
	result0 = ncpicountProcessors();
	return result0;
}
static N_NIMCALL(void, Marker_TY_Ryg5db24dBRIzTUa2BQTPg)(void* p, NI op) {
	Processobj_NHqciQYh8G1aN2n273mmYw* a;
	a = (Processobj_NHqciQYh8G1aN2n273mmYw*)p;
	nimrtl_nimGCvisit((void*)(*a).instream, op);
	nimrtl_nimGCvisit((void*)(*a).outstream, op);
	nimrtl_nimGCvisit((void*)(*a).errstream, op);
}
static N_NIMCALL(void, Marker_TY_l0xXJxOLtcuhlSBHl64t5w)(void* p, NI op) {
	TY_l0xXJxOLtcuhlSBHl64t5w* a;
	NI LOC1;
	a = (TY_l0xXJxOLtcuhlSBHl64t5w*)p;
	LOC1 = (NI)0;
	for (LOC1 = 0; LOC1 < a->Sup.len; LOC1++) {
	nimrtl_nimGCvisit((void*)a->data[LOC1], op);
	}
}

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

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

static N_INLINE(void, decref_MV4BBk6J1qu70IbBxwEn4wsystem)(Cell_1zcF9cV8XIAtbN8h5HRUB8g* c0) {
	{
		(*c0).refcount -= ((NI) 8);
		if (!((NU64)((*c0).refcount) < (NU64)(((NI) 8)))) goto LA3;
		nimrtl_rtlAddZCT(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;
}

N_LIB_EXPORT N_CDECL(NI, nospexecProcesses)(NimStringDesc** cmds0, NI cmds0Len0, Processoption_bnU6W8LhTMnT4JaSWtGlSA_Set options_SOxRkpbUm0l9cOVKhpddsEw, NI n0, TY_kElEuvYkhDcTHhB3d89aMYA beforerunevent0, TY_SfW5itioRNR8yop8fOJeNg afterrunevent0) {
	NI result0;
	Processoption_bnU6W8LhTMnT4JaSWtGlSA_Set options0;
	result0 = (NI)0;
	options0 = (options_SOxRkpbUm0l9cOVKhpddsEw & ~ 16);
	{
		TY_l0xXJxOLtcuhlSBHl64t5w* q0;
		NI m0;
		NI i0;
		if (!(((NI) 1) < n0)) goto LA3;
		q0 = (TY_l0xXJxOLtcuhlSBHl64t5w*)0;
		q0 = (TY_l0xXJxOLtcuhlSBHl64t5w*) nimrtl_newSeq((&NTI_l0xXJxOLtcuhlSBHl64t5w), ((NI) (n0)));
		m0 = ((n0 <= cmds0Len0) ? n0 : cmds0Len0);
		{
			NI i_IXYJmgb9b21Zawh7ZZyHDAA;
			NI HEX3Atmp_5gh2Mdy1iOr2MuifGkk4kw;
			NI res_I72nYMiJcfiDqXF9cJLTlxQ;
			i_IXYJmgb9b21Zawh7ZZyHDAA = (NI)0;
			HEX3Atmp_5gh2Mdy1iOr2MuifGkk4kw = (NI)0;
			HEX3Atmp_5gh2Mdy1iOr2MuifGkk4kw = (NI)(m0 - ((NI) 1));
			res_I72nYMiJcfiDqXF9cJLTlxQ = ((NI) 0);
			{
				while (1) {
					TY_8ZvwQIddfpj2THRVPsFzIQ LOC12;
					if (!(res_I72nYMiJcfiDqXF9cJLTlxQ <= HEX3Atmp_5gh2Mdy1iOr2MuifGkk4kw)) goto LA7;
					i_IXYJmgb9b21Zawh7ZZyHDAA = res_I72nYMiJcfiDqXF9cJLTlxQ;
					{
						if (!!((beforerunevent0.ClPrc == T_HZdw8BhppcTQo8DIK46LSg_14.ClPrc && beforerunevent0.ClEnv == T_HZdw8BhppcTQo8DIK46LSg_14.ClEnv))) goto LA10;
						beforerunevent0.ClEnv? beforerunevent0.ClPrc(i_IXYJmgb9b21Zawh7ZZyHDAA, beforerunevent0.ClEnv):((T_HZdw8BhppcTQo8DIK46LSg_15)(beforerunevent0.ClPrc))(i_IXYJmgb9b21Zawh7ZZyHDAA);
					}
					LA10: ;
					memset((void*)LOC12, 0, sizeof(LOC12));
					asgnRef((void**) (&q0->data[i_IXYJmgb9b21Zawh7ZZyHDAA]), nospstartProcess(cmds0[i_IXYJmgb9b21Zawh7ZZyHDAA], ((NimStringDesc*) &T_HZdw8BhppcTQo8DIK46LSg_3), LOC12, 0, NIM_NIL, (options0 | 4)));
					res_I72nYMiJcfiDqXF9cJLTlxQ += ((NI) 1);
				} LA7: ;
			}
		}
		i0 = m0;
		{
			while (1) {
				if (!(i0 <= (cmds0Len0-1))) goto LA14;
				nossleep(((NI) 50));
				{
					NI r_7CDX8QyPfnTM0rb4p9bm9blg;
					NI HEX3Atmp_5gh2Mdy1iOr2MuifGkk4kw_2;
					NI res_I72nYMiJcfiDqXF9cJLTlxQ_2;
					r_7CDX8QyPfnTM0rb4p9bm9blg = (NI)0;
					HEX3Atmp_5gh2Mdy1iOr2MuifGkk4kw_2 = (NI)0;
					HEX3Atmp_5gh2Mdy1iOr2MuifGkk4kw_2 = (NI)(n0 - ((NI) 1));
					res_I72nYMiJcfiDqXF9cJLTlxQ_2 = ((NI) 0);
					{
						while (1) {
							if (!(res_I72nYMiJcfiDqXF9cJLTlxQ_2 <= HEX3Atmp_5gh2Mdy1iOr2MuifGkk4kw_2)) goto LA17;
							r_7CDX8QyPfnTM0rb4p9bm9blg = res_I72nYMiJcfiDqXF9cJLTlxQ_2;
							{
								NIM_BOOL LOC20;
								NI LOC23;
								TY_8ZvwQIddfpj2THRVPsFzIQ LOC36;
								LOC20 = (NIM_BOOL)0;
								LOC20 = nosprunning(q0->data[r_7CDX8QyPfnTM0rb4p9bm9blg]);
								if (!!(LOC20)) goto LA21;
								LOC23 = (NI)0;
								LOC23 = nospwaitForExit(q0->data[r_7CDX8QyPfnTM0rb4p9bm9blg], ((NI) -1));
								result0 = ((LOC23 >= result0) ? LOC23 : result0);
								{
									if (!!((afterrunevent0.ClPrc == T_HZdw8BhppcTQo8DIK46LSg_16.ClPrc && afterrunevent0.ClEnv == T_HZdw8BhppcTQo8DIK46LSg_16.ClEnv))) goto LA26;
									afterrunevent0.ClEnv? afterrunevent0.ClPrc(r_7CDX8QyPfnTM0rb4p9bm9blg, q0->data[r_7CDX8QyPfnTM0rb4p9bm9blg], afterrunevent0.ClEnv):((T_HZdw8BhppcTQo8DIK46LSg_17)(afterrunevent0.ClPrc))(r_7CDX8QyPfnTM0rb4p9bm9blg, q0->data[r_7CDX8QyPfnTM0rb4p9bm9blg]);
								}
								LA26: ;
								{
									if (!!((q0->data[r_7CDX8QyPfnTM0rb4p9bm9blg] == NIM_NIL))) goto LA30;
									nospclose(q0->data[r_7CDX8QyPfnTM0rb4p9bm9blg]);
								}
								LA30: ;
								{
									if (!!((beforerunevent0.ClPrc == T_HZdw8BhppcTQo8DIK46LSg_14.ClPrc && beforerunevent0.ClEnv == T_HZdw8BhppcTQo8DIK46LSg_14.ClEnv))) goto LA34;
									beforerunevent0.ClEnv? beforerunevent0.ClPrc(i0, beforerunevent0.ClEnv):((T_HZdw8BhppcTQo8DIK46LSg_18)(beforerunevent0.ClPrc))(i0);
								}
								LA34: ;
								memset((void*)LOC36, 0, sizeof(LOC36));
								asgnRef((void**) (&q0->data[r_7CDX8QyPfnTM0rb4p9bm9blg]), nospstartProcess(cmds0[i0], ((NimStringDesc*) &T_HZdw8BhppcTQo8DIK46LSg_3), LOC36, 0, NIM_NIL, (options0 | 4)));
								i0 += ((NI) 1);
								{
									if (!((cmds0Len0-1) < i0)) goto LA39;
									goto LA15;
								}
								LA39: ;
							}
							LA21: ;
							res_I72nYMiJcfiDqXF9cJLTlxQ_2 += ((NI) 1);
						} LA17: ;
					}
				} LA15: ;
			} LA14: ;
		}
		{
			NI j_Qx3Y6Wjo6lf0L32X59altUg;
			NI HEX3Atmp_5gh2Mdy1iOr2MuifGkk4kw_3;
			NI res_I72nYMiJcfiDqXF9cJLTlxQ_3;
			j_Qx3Y6Wjo6lf0L32X59altUg = (NI)0;
			HEX3Atmp_5gh2Mdy1iOr2MuifGkk4kw_3 = (NI)0;
			HEX3Atmp_5gh2Mdy1iOr2MuifGkk4kw_3 = (NI)(m0 - ((NI) 1));
			res_I72nYMiJcfiDqXF9cJLTlxQ_3 = ((NI) 0);
			{
				while (1) {
					NI LOC44;
					if (!(res_I72nYMiJcfiDqXF9cJLTlxQ_3 <= HEX3Atmp_5gh2Mdy1iOr2MuifGkk4kw_3)) goto LA43;
					j_Qx3Y6Wjo6lf0L32X59altUg = res_I72nYMiJcfiDqXF9cJLTlxQ_3;
					LOC44 = (NI)0;
					LOC44 = nospwaitForExit(q0->data[j_Qx3Y6Wjo6lf0L32X59altUg], ((NI) -1));
					result0 = ((LOC44 >= result0) ? LOC44 : result0);
					{
						if (!!((afterrunevent0.ClPrc == T_HZdw8BhppcTQo8DIK46LSg_16.ClPrc && afterrunevent0.ClEnv == T_HZdw8BhppcTQo8DIK46LSg_16.ClEnv))) goto LA47;
						afterrunevent0.ClEnv? afterrunevent0.ClPrc(j_Qx3Y6Wjo6lf0L32X59altUg, q0->data[j_Qx3Y6Wjo6lf0L32X59altUg], afterrunevent0.ClEnv):((T_HZdw8BhppcTQo8DIK46LSg_19)(afterrunevent0.ClPrc))(j_Qx3Y6Wjo6lf0L32X59altUg, q0->data[j_Qx3Y6Wjo6lf0L32X59altUg]);
					}
					LA47: ;
					{
						if (!!((q0->data[j_Qx3Y6Wjo6lf0L32X59altUg] == NIM_NIL))) goto LA51;
						nospclose(q0->data[j_Qx3Y6Wjo6lf0L32X59altUg]);
					}
					LA51: ;
					res_I72nYMiJcfiDqXF9cJLTlxQ_3 += ((NI) 1);
				} LA43: ;
			}
		}
	}
	goto LA1;
	LA3: ;
	{
		{
			NI i_IXYJmgb9b21Zawh7ZZyHDAA_2;
			NI HEX3Atmp_5gh2Mdy1iOr2MuifGkk4kw_4;
			NI res_I72nYMiJcfiDqXF9cJLTlxQ_4;
			i_IXYJmgb9b21Zawh7ZZyHDAA_2 = (NI)0;
			HEX3Atmp_5gh2Mdy1iOr2MuifGkk4kw_4 = (NI)0;
			HEX3Atmp_5gh2Mdy1iOr2MuifGkk4kw_4 = (cmds0Len0-1);
			res_I72nYMiJcfiDqXF9cJLTlxQ_4 = ((NI) 0);
			{
				while (1) {
					Processobj_NHqciQYh8G1aN2n273mmYw* p0;
					TY_8ZvwQIddfpj2THRVPsFzIQ LOC61;
					NI LOC62;
					if (!(res_I72nYMiJcfiDqXF9cJLTlxQ_4 <= HEX3Atmp_5gh2Mdy1iOr2MuifGkk4kw_4)) goto LA56;
					i_IXYJmgb9b21Zawh7ZZyHDAA_2 = res_I72nYMiJcfiDqXF9cJLTlxQ_4;
					{
						if (!!((beforerunevent0.ClPrc == T_HZdw8BhppcTQo8DIK46LSg_14.ClPrc && beforerunevent0.ClEnv == T_HZdw8BhppcTQo8DIK46LSg_14.ClEnv))) goto LA59;
						beforerunevent0.ClEnv? beforerunevent0.ClPrc(i_IXYJmgb9b21Zawh7ZZyHDAA_2, beforerunevent0.ClEnv):((T_HZdw8BhppcTQo8DIK46LSg_20)(beforerunevent0.ClPrc))(i_IXYJmgb9b21Zawh7ZZyHDAA_2);
					}
					LA59: ;
					memset((void*)LOC61, 0, sizeof(LOC61));
					p0 = nospstartProcess(cmds0[i_IXYJmgb9b21Zawh7ZZyHDAA_2], ((NimStringDesc*) &T_HZdw8BhppcTQo8DIK46LSg_3), LOC61, 0, NIM_NIL, (options0 | 4));
					LOC62 = (NI)0;
					LOC62 = nospwaitForExit(p0, ((NI) -1));
					result0 = ((LOC62 >= result0) ? LOC62 : result0);
					{
						if (!!((afterrunevent0.ClPrc == T_HZdw8BhppcTQo8DIK46LSg_16.ClPrc && afterrunevent0.ClEnv == T_HZdw8BhppcTQo8DIK46LSg_16.ClEnv))) goto LA65;
						afterrunevent0.ClEnv? afterrunevent0.ClPrc(i_IXYJmgb9b21Zawh7ZZyHDAA_2, p0, afterrunevent0.ClEnv):((T_HZdw8BhppcTQo8DIK46LSg_21)(afterrunevent0.ClPrc))(i_IXYJmgb9b21Zawh7ZZyHDAA_2, p0);
					}
					LA65: ;
					nospclose(p0);
					res_I72nYMiJcfiDqXF9cJLTlxQ_4 += ((NI) 1);
				} LA56: ;
			}
		}
	}
	LA1: ;
	return result0;
}

N_LIB_EXPORT N_CDECL(NimStringDesc*, nospexecProcess)(NimStringDesc* command0, NimStringDesc** args0, NI args0Len0, Stringtableobj_DKRIdH9c9cKI7YpQb9c0wKlEw* env0, Processoption_bnU6W8LhTMnT4JaSWtGlSA_Set options0) {
	NimStringDesc* result0;
	Processobj_NHqciQYh8G1aN2n273mmYw* p0;
	Streamobj_RShkcoDOPnoCVhtpN1hDPQ* outp0;
	NimStringDesc* line0;
	result0 = (NimStringDesc*)0;
	p0 = nospstartProcess(command0, ((NimStringDesc*) &T_HZdw8BhppcTQo8DIK46LSg_3), args0, args0Len0, env0, options0);
	outp0 = nospoutputStream(p0);
	result0 = nimrtl_copyString(((NimStringDesc*) &T_HZdw8BhppcTQo8DIK46LSg_22));
	line0 = rawNewString(((NI) 120));
	{
		while (1) {
			{
				NIM_BOOL LOC5;
				LOC5 = (NIM_BOOL)0;
				LOC5 = readline_y89bfL07uXzOjT5XgI50WmQ(outp0, (&line0));
				if (!LOC5) goto LA6;
				result0 = nimrtl_resizeString(result0, line0->Sup.len + 0);
appendString(result0, line0);
				result0 = nimrtl_resizeString(result0, 1);
appendString(result0, ((NimStringDesc*) &T_HZdw8BhppcTQo8DIK46LSg_23));
			}
			goto LA3;
			LA6: ;
			{
				NIM_BOOL LOC9;
				LOC9 = (NIM_BOOL)0;
				LOC9 = nosprunning(p0);
				if (!!(LOC9)) goto LA10;
				goto LA1;
			}
			goto LA3;
			LA10: ;
			LA3: ;
		}
	} LA1: ;
	nospclose(p0);
	return result0;
}

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

N_NIMCALL(NCSTRING*, envtocstringarray_5W8jibc9b9cn0LB5f6DkUbiA)(void) {
	NCSTRING* result0;
	NI counter0;
	void* LOC5;
	NI i0;
	result0 = (NCSTRING*)0;
	counter0 = ((NI) 0);
	{
		NimStringDesc* key_iOJVgU8trGnsa5UUkfMQQw;
		NimStringDesc* val_l4zUk3N1L5q1rae9aqyrzlQ;
		key_iOJVgU8trGnsa5UUkfMQQw = (NimStringDesc*)0;
		val_l4zUk3N1L5q1rae9aqyrzlQ = (NimStringDesc*)0;
		getenvvarsc_xlXgIeBHBOL9cl4MJcFJ8xA();
		{
			NI i_Hd1K6kr9c3wWUaggjQYrB2Q;
			NI HEX3Atmp_lM5WoIm2quV0NXTN8eNv9bA;
			NI res_LlS0hAmVKuX9cJ3vjpW57WA;
			i_Hd1K6kr9c3wWUaggjQYrB2Q = (NI)0;
			HEX3Atmp_lM5WoIm2quV0NXTN8eNv9bA = (NI)0;
			HEX3Atmp_lM5WoIm2quV0NXTN8eNv9bA = (environment_mlhK49b6YMgc9cgrcYkKq9a3g ? (environment_mlhK49b6YMgc9cgrcYkKq9a3g->Sup.len-1) : -1);
			res_LlS0hAmVKuX9cJ3vjpW57WA = ((NI) 0);
			{
				while (1) {
					NI p_N9bxSvtEv4BRE4OmLvrlZOw;
					if (!(res_LlS0hAmVKuX9cJ3vjpW57WA <= HEX3Atmp_lM5WoIm2quV0NXTN8eNv9bA)) goto LA4;
					i_Hd1K6kr9c3wWUaggjQYrB2Q = res_LlS0hAmVKuX9cJ3vjpW57WA;
					p_N9bxSvtEv4BRE4OmLvrlZOw = nsuFindChar(environment_mlhK49b6YMgc9cgrcYkKq9a3g->data[i_Hd1K6kr9c3wWUaggjQYrB2Q], 61, ((NI) 0));
					key_iOJVgU8trGnsa5UUkfMQQw = copyStrLast(environment_mlhK49b6YMgc9cgrcYkKq9a3g->data[i_Hd1K6kr9c3wWUaggjQYrB2Q], ((NI) 0), (NI)(p_N9bxSvtEv4BRE4OmLvrlZOw - ((NI) 1)));
					val_l4zUk3N1L5q1rae9aqyrzlQ = copyStr(environment_mlhK49b6YMgc9cgrcYkKq9a3g->data[i_Hd1K6kr9c3wWUaggjQYrB2Q], (NI)(p_N9bxSvtEv4BRE4OmLvrlZOw + ((NI) 1)));
					counter0 += ((NI) 1);
					res_LlS0hAmVKuX9cJ3vjpW57WA += ((NI) 1);
				} LA4: ;
			}
		}
	}
	LOC5 = (void*)0;
	LOC5 = nimrtl_alloc0(((NI) ((NI)((NI)(counter0 + ((NI) 1)) * ((NI) 8)))));
	result0 = ((NCSTRING*) (LOC5));
	i0 = ((NI) 0);
	{
		NimStringDesc* key_iOJVgU8trGnsa5UUkfMQQw_2;
		NimStringDesc* val_l4zUk3N1L5q1rae9aqyrzlQ_2;
		key_iOJVgU8trGnsa5UUkfMQQw_2 = (NimStringDesc*)0;
		val_l4zUk3N1L5q1rae9aqyrzlQ_2 = (NimStringDesc*)0;
		getenvvarsc_xlXgIeBHBOL9cl4MJcFJ8xA();
		{
			NI i_Hd1K6kr9c3wWUaggjQYrB2Q_2;
			NI HEX3Atmp_lM5WoIm2quV0NXTN8eNv9bA_2;
			NI res_LlS0hAmVKuX9cJ3vjpW57WA_2;
			i_Hd1K6kr9c3wWUaggjQYrB2Q_2 = (NI)0;
			HEX3Atmp_lM5WoIm2quV0NXTN8eNv9bA_2 = (NI)0;
			HEX3Atmp_lM5WoIm2quV0NXTN8eNv9bA_2 = (environment_mlhK49b6YMgc9cgrcYkKq9a3g ? (environment_mlhK49b6YMgc9cgrcYkKq9a3g->Sup.len-1) : -1);
			res_LlS0hAmVKuX9cJ3vjpW57WA_2 = ((NI) 0);
			{
				while (1) {
					NI p_N9bxSvtEv4BRE4OmLvrlZOw_2;
					NimStringDesc* x0;
					NimStringDesc* LOC10;
					void* LOC11;
					if (!(res_LlS0hAmVKuX9cJ3vjpW57WA_2 <= HEX3Atmp_lM5WoIm2quV0NXTN8eNv9bA_2)) goto LA9;
					i_Hd1K6kr9c3wWUaggjQYrB2Q_2 = res_LlS0hAmVKuX9cJ3vjpW57WA_2;
					p_N9bxSvtEv4BRE4OmLvrlZOw_2 = nsuFindChar(environment_mlhK49b6YMgc9cgrcYkKq9a3g->data[i_Hd1K6kr9c3wWUaggjQYrB2Q_2], 61, ((NI) 0));
					key_iOJVgU8trGnsa5UUkfMQQw_2 = copyStrLast(environment_mlhK49b6YMgc9cgrcYkKq9a3g->data[i_Hd1K6kr9c3wWUaggjQYrB2Q_2], ((NI) 0), (NI)(p_N9bxSvtEv4BRE4OmLvrlZOw_2 - ((NI) 1)));
					val_l4zUk3N1L5q1rae9aqyrzlQ_2 = copyStr(environment_mlhK49b6YMgc9cgrcYkKq9a3g->data[i_Hd1K6kr9c3wWUaggjQYrB2Q_2], (NI)(p_N9bxSvtEv4BRE4OmLvrlZOw_2 + ((NI) 1)));
					LOC10 = (NimStringDesc*)0;
					LOC10 = rawNewString(key_iOJVgU8trGnsa5UUkfMQQw_2->Sup.len + val_l4zUk3N1L5q1rae9aqyrzlQ_2->Sup.len + 1);
appendString(LOC10, key_iOJVgU8trGnsa5UUkfMQQw_2);
appendString(LOC10, ((NimStringDesc*) &T_HZdw8BhppcTQo8DIK46LSg_27));
appendString(LOC10, val_l4zUk3N1L5q1rae9aqyrzlQ_2);
					x0 = LOC10;
					LOC11 = (void*)0;
					LOC11 = nimrtl_alloc(((NI) ((NI)((x0 ? x0->Sup.len : 0) + ((NI) 1)))));
					result0[(i0)- 0] = ((NCSTRING) (LOC11));
					copymem_E1xtACub5WcDa3vbrIXbwgsystem(((void*) (result0[(i0)- 0])), ((void*) ((&x0->data[((NI) 0)]))), ((NI) ((NI)((x0 ? x0->Sup.len : 0) + ((NI) 1)))));
					i0 += ((NI) 1);
					res_LlS0hAmVKuX9cJ3vjpW57WA_2 += ((NI) 1);
				} LA9: ;
			}
		}
	}
	return result0;
}

N_NIMCALL(NCSTRING*, envtocstringarray_powWbjMeev5megN9bWVjfTw)(Stringtableobj_DKRIdH9c9cKI7YpQb9c0wKlEw* t0) {
	NCSTRING* result0;
	NI LOC1;
	void* LOC2;
	NI i0;
	result0 = (NCSTRING*)0;
	LOC1 = (NI)0;
	LOC1 = nstlen(t0);
	LOC2 = (void*)0;
	LOC2 = nimrtl_alloc0(((NI) ((NI)((NI)(LOC1 + ((NI) 1)) * ((NI) 8)))));
	result0 = ((NCSTRING*) (LOC2));
	i0 = ((NI) 0);
	{
		NimStringDesc* key_iOJVgU8trGnsa5UUkfMQQw_3;
		NimStringDesc* val_l4zUk3N1L5q1rae9aqyrzlQ_3;
		key_iOJVgU8trGnsa5UUkfMQQw_3 = (NimStringDesc*)0;
		val_l4zUk3N1L5q1rae9aqyrzlQ_3 = (NimStringDesc*)0;
		{
			NI h_RYkURB9cgLOUJ9bLZxFIW31A;
			NI HEX3Atmp_lM5WoIm2quV0NXTN8eNv9bA_3;
			NI res_LlS0hAmVKuX9cJ3vjpW57WA_3;
			h_RYkURB9cgLOUJ9bLZxFIW31A = (NI)0;
			HEX3Atmp_lM5WoIm2quV0NXTN8eNv9bA_3 = (NI)0;
			HEX3Atmp_lM5WoIm2quV0NXTN8eNv9bA_3 = ((*t0).data ? ((*t0).data->Sup.len-1) : -1);
			res_LlS0hAmVKuX9cJ3vjpW57WA_3 = ((NI) 0);
			{
				while (1) {
					if (!(res_LlS0hAmVKuX9cJ3vjpW57WA_3 <= HEX3Atmp_lM5WoIm2quV0NXTN8eNv9bA_3)) goto LA6;
					h_RYkURB9cgLOUJ9bLZxFIW31A = res_LlS0hAmVKuX9cJ3vjpW57WA_3;
					{
						NimStringDesc* x0;
						NimStringDesc* LOC11;
						void* LOC12;
						if (!!(((*t0).data->data[h_RYkURB9cgLOUJ9bLZxFIW31A].Field0 == 0))) goto LA9;
						key_iOJVgU8trGnsa5UUkfMQQw_3 = (*t0).data->data[h_RYkURB9cgLOUJ9bLZxFIW31A].Field0;
						val_l4zUk3N1L5q1rae9aqyrzlQ_3 = (*t0).data->data[h_RYkURB9cgLOUJ9bLZxFIW31A].Field1;
						LOC11 = (NimStringDesc*)0;
						LOC11 = rawNewString(key_iOJVgU8trGnsa5UUkfMQQw_3->Sup.len + val_l4zUk3N1L5q1rae9aqyrzlQ_3->Sup.len + 1);
appendString(LOC11, key_iOJVgU8trGnsa5UUkfMQQw_3);
appendString(LOC11, ((NimStringDesc*) &T_HZdw8BhppcTQo8DIK46LSg_27));
appendString(LOC11, val_l4zUk3N1L5q1rae9aqyrzlQ_3);
						x0 = LOC11;
						LOC12 = (void*)0;
						LOC12 = nimrtl_alloc(((NI) ((NI)((x0 ? x0->Sup.len : 0) + ((NI) 1)))));
						result0[(i0)- 0] = ((NCSTRING) (LOC12));
						copymem_E1xtACub5WcDa3vbrIXbwgsystem(((void*) (result0[(i0)- 0])), ((void*) ((&x0->data[((NI) 0)]))), ((NI) ((NI)((x0 ? x0->Sup.len : 0) + ((NI) 1)))));
						i0 += ((NI) 1);
					}
					LA9: ;
					res_LlS0hAmVKuX9cJ3vjpW57WA_3 += ((NI) 1);
				} LA6: ;
			}
		}
	}
	return result0;
}

N_NIMCALL(void, startprocessfail_1Q2da9a7NmGuR0Ogak2NKkw)(Startprocessdata_xgRnKnLIYRtnOkshMKhc9cA* data0) {
	int error0;
	NI LOC1;
	error0 = errno;
	LOC1 = (NI)0;
	LOC1 = write((*data0).perrorpipe[(((NI) 1))- 0], ((void*) ((&error0))), ((NI) 4));
	_exit(((NI) 1));
}

N_CDECL(void, startprocessafterfork_kP8IoxkYQ0xKBWMKeIF3Cw)(Startprocessdata_xgRnKnLIYRtnOkshMKhc9cA* data0) {
	int LOC42;
	int LOC43;
	{
		int LOC5;
		int LOC11;
		int LOC17;
		if (!!((*data0).optionpoparentstreams)) goto LA3;
		LOC5 = (int)0;
		LOC5 = close((*data0).pstdin[(((NI) 1))- 0]);
		{
			int LOC8;
			LOC8 = (int)0;
			LOC8 = dup2((*data0).pstdin[(((NI) 0))- 0], ((int) 0));
			if (!(LOC8 < ((NI32) 0))) goto LA9;
			startprocessfail_1Q2da9a7NmGuR0Ogak2NKkw(data0);
		}
		LA9: ;
		LOC11 = (int)0;
		LOC11 = close((*data0).pstdout[(((NI) 0))- 0]);
		{
			int LOC14;
			LOC14 = (int)0;
			LOC14 = dup2((*data0).pstdout[(((NI) 1))- 0], ((int) 1));
			if (!(LOC14 < ((NI32) 0))) goto LA15;
			startprocessfail_1Q2da9a7NmGuR0Ogak2NKkw(data0);
		}
		LA15: ;
		LOC17 = (int)0;
		LOC17 = close((*data0).pstderr[(((NI) 0))- 0]);
		{
			if (!(*data0).optionpostderrtostdout) goto LA20;
			{
				int LOC24;
				LOC24 = (int)0;
				LOC24 = dup2((*data0).pstdout[(((NI) 1))- 0], ((int) 2));
				if (!(LOC24 < ((NI32) 0))) goto LA25;
				startprocessfail_1Q2da9a7NmGuR0Ogak2NKkw(data0);
			}
			LA25: ;
		}
		goto LA18;
		LA20: ;
		{
			{
				int LOC30;
				LOC30 = (int)0;
				LOC30 = dup2((*data0).pstderr[(((NI) 1))- 0], ((int) 2));
				if (!(LOC30 < ((NI32) 0))) goto LA31;
				startprocessfail_1Q2da9a7NmGuR0Ogak2NKkw(data0);
			}
			LA31: ;
		}
		LA18: ;
	}
	LA3: ;
	{
		if (!(((NI) 0) < ((*data0).workingdir ? strlen((*data0).workingdir) : 0))) goto LA35;
		{
			int LOC39;
			LOC39 = (int)0;
			LOC39 = chdir((*data0).workingdir);
			if (!(LOC39 < ((NI32) 0))) goto LA40;
			startprocessfail_1Q2da9a7NmGuR0Ogak2NKkw(data0);
		}
		LA40: ;
	}
	LA35: ;
	LOC42 = (int)0;
	LOC42 = close((*data0).perrorpipe[(((NI) 0))- 0]);
	LOC43 = (int)0;
	LOC43 = fcntl((*data0).perrorpipe[(((NI) 1))- 0], F_SETFD, FD_CLOEXEC);
	{
		int LOC48;
		if (!(*data0).optionpousepath) goto LA46;
		LOC48 = (int)0;
		LOC48 = execvpe((*data0).syscommand, (*data0).sysargs, (*data0).sysenv);
	}
	goto LA44;
	LA46: ;
	{
		int LOC50;
		LOC50 = (int)0;
		LOC50 = execve((*data0).syscommand, (*data0).sysargs, (*data0).sysenv);
	}
	LA44: ;
	startprocessfail_1Q2da9a7NmGuR0Ogak2NKkw(data0);
}

N_NIMCALL(pid_t, startprocessauxfork_VwNkkMfMOAO9b1isfsqmrNQ)(Startprocessdata_xgRnKnLIYRtnOkshMKhc9cA* data0) {
	pid_t volatile result0;
	TSafePoint T_HZdw8BhppcTQo8DIK46LSg_29;
{	result0 = (pid_t)0;
	{
		int LOC3;
		NI32 LOC6;
		LOC3 = (int)0;
		LOC3 = pipe((*data0).perrorpipe);
		if (!!((LOC3 == ((NI32) 0)))) goto LA4;
		LOC6 = (NI32)0;
		LOC6 = oslasterror_pMOMIZAQaKFp1XoL58mjVg();
		raiseoserror_K9a7YBjj81Bse0N0Fg7MFIA(LOC6, ((NimStringDesc*) &T_HZdw8BhppcTQo8DIK46LSg_3));
	}
	LA4: ;
	nimrtl_pushSafePoint(&T_HZdw8BhppcTQo8DIK46LSg_29);
	T_HZdw8BhppcTQo8DIK46LSg_29.status = setjmp(T_HZdw8BhppcTQo8DIK46LSg_29.context);
	if (T_HZdw8BhppcTQo8DIK46LSg_29.status == 0) {
		pid_t volatile pid0;
		Startprocessdata_xgRnKnLIYRtnOkshMKhc9cA datacopy0;
		int LOC12;
		int error0;
		NI sizeread0;
		int LOC26;
		pid0 = (pid_t)0;
		datacopy0 = (*data0);
		pid0 = fork();
		{
			if (!(pid0 == ((NI) 0))) goto LA10;
			startprocessafterfork_kP8IoxkYQ0xKBWMKeIF3Cw((&datacopy0));
			_exit(((NI) 1));
		}
		LA10: ;
		LOC12 = (int)0;
		LOC12 = close((*data0).perrorpipe[(((NI) 1))- 0]);
		{
			NI32 LOC17;
			if (!(pid0 < ((NI) 0))) goto LA15;
			LOC17 = (NI32)0;
			LOC17 = oslasterror_pMOMIZAQaKFp1XoL58mjVg();
			raiseoserror_K9a7YBjj81Bse0N0Fg7MFIA(LOC17, ((NimStringDesc*) &T_HZdw8BhppcTQo8DIK46LSg_3));
		}
		LA15: ;
		error0 = (int)0;
		sizeread0 = read((*data0).perrorpipe[(((NI) 0))- 0], ((void*) ((&error0))), ((NI) 4));
		{
			NI32 LOC22;
			TY_Re75IspeoxXy2oCZHwcRrA LOC23;
			NCSTRING LOC24;
			NimStringDesc* LOC25;
			if (!(sizeread0 == ((NI) 4))) goto LA20;
			LOC22 = (NI32)0;
			LOC22 = oslasterror_pMOMIZAQaKFp1XoL58mjVg();
			memset((void*)LOC23, 0, sizeof(LOC23));
			LOC23[0] = nimrtl_cstrToNimstr((*data0).syscommand);
			LOC24 = (NCSTRING)0;
			LOC24 = strerror(error0);
			LOC23[1] = nimrtl_cstrToNimstr(LOC24);
			LOC25 = (NimStringDesc*)0;
			LOC25 = nsuFormatOpenArray(((NimStringDesc*) &T_HZdw8BhppcTQo8DIK46LSg_30), LOC23, 2);
			raiseoserror_K9a7YBjj81Bse0N0Fg7MFIA(LOC22, LOC25);
		}
		LA20: ;
		result0 = pid0;
		nimrtl_popSafePoint();
		LOC26 = (int)0;
		LOC26 = close((*data0).perrorpipe[(((NI) 0))- 0]);
		goto BeforeRet;
		nimrtl_popSafePoint();
	}
	else {
		nimrtl_popSafePoint();
	}
	{
		int LOC29;
		LOC29 = (int)0;
		LOC29 = close((*data0).perrorpipe[(((NI) 0))- 0]);
	}
	if (T_HZdw8BhppcTQo8DIK46LSg_29.status != 0) nimrtl_reraiseException();
	}BeforeRet: ;
	return result0;
}

N_LIB_EXPORT N_CDECL(Processobj_NHqciQYh8G1aN2n273mmYw*, nospstartProcess)(NimStringDesc* command0, NimStringDesc* workingdir0, NimStringDesc** args0, NI args0Len0, Stringtableobj_DKRIdH9c9cKI7YpQb9c0wKlEw* env0, Processoption_bnU6W8LhTMnT4JaSWtGlSA_Set options0) {
	Processobj_NHqciQYh8G1aN2n273mmYw* result0;
	TY_SKEqGXcReU4NvbQlH779b5Q pstdin0;
	TY_SKEqGXcReU4NvbQlH779b5Q pstdout0;
	TY_SKEqGXcReU4NvbQlH779b5Q pstderr0;
	NimStringDesc* syscommand0;
	TY_sM4lkSb7zS6F7OVMvW9cffQ* sysargsraw0;
	pid_t volatile pid0;
	NCSTRING* sysargs0;
	TSafePoint T_HZdw8BhppcTQo8DIK46LSg_26;
	result0 = (Processobj_NHqciQYh8G1aN2n273mmYw*)0;
	memset((void*)pstdin0, 0, sizeof(pstdin0));
	memset((void*)pstdout0, 0, sizeof(pstdout0));
	memset((void*)pstderr0, 0, sizeof(pstderr0));
	result0 = (Processobj_NHqciQYh8G1aN2n273mmYw*) nimrtl_newObj((&NTI_Ryg5db24dBRIzTUa2BQTPg), sizeof(Processobj_NHqciQYh8G1aN2n273mmYw));
	(*result0).Sup.m_type = (&NTI_NHqciQYh8G1aN2n273mmYw);
	(*result0).options = options0;
	(*result0).exitstatus = ((int) -3);
	{
		if (!!(((options0 &(1U<<((NU)(((Processoption_bnU6W8LhTMnT4JaSWtGlSA) 4))&7U)))!=0))) goto LA3;
		{
			NIM_BOOL LOC7;
			NIM_BOOL LOC8;
			int LOC9;
			int LOC11;
			int LOC13;
			NI32 LOC16;
			LOC7 = (NIM_BOOL)0;
			LOC8 = (NIM_BOOL)0;
			LOC9 = (int)0;
			LOC9 = pipe(pstdin0);
			LOC8 = !((LOC9 == ((NI32) 0)));
			if (LOC8) goto LA10;
			LOC11 = (int)0;
			LOC11 = pipe(pstdout0);
			LOC8 = !((LOC11 == ((NI32) 0)));
			LA10: ;
			LOC7 = LOC8;
			if (LOC7) goto LA12;
			LOC13 = (int)0;
			LOC13 = pipe(pstderr0);
			LOC7 = !((LOC13 == ((NI32) 0)));
			LA12: ;
			if (!LOC7) goto LA14;
			LOC16 = (NI32)0;
			LOC16 = oslasterror_pMOMIZAQaKFp1XoL58mjVg();
			raiseoserror_K9a7YBjj81Bse0N0Fg7MFIA(LOC16, ((NimStringDesc*) &T_HZdw8BhppcTQo8DIK46LSg_3));
		}
		LA14: ;
	}
	LA3: ;
	syscommand0 = (NimStringDesc*)0;
	sysargsraw0 = (TY_sM4lkSb7zS6F7OVMvW9cffQ*)0;
	{
		TY_24KAM9afIUgUaqBaEBB6r9bg LOC21;
		NimStringDesc* LOC22;
		NimStringDesc* LOC23;
		NimStringDesc* LOC24;
		if (!((options0 &(1U<<((NU)(((Processoption_bnU6W8LhTMnT4JaSWtGlSA) 2))&7U)))!=0)) goto LA19;
		syscommand0 = nimrtl_copyString(((NimStringDesc*) &T_HZdw8BhppcTQo8DIK46LSg_24));
		sysargsraw0 = (TY_sM4lkSb7zS6F7OVMvW9cffQ*) nimrtl_newSeq((&NTI_sM4lkSb7zS6F7OVMvW9cffQ), 3);
		memset((void*)LOC21, 0, sizeof(LOC21));
		LOC21[0] = nimrtl_copyString(syscommand0);
		LOC21[1] = nimrtl_copyString(((NimStringDesc*) &T_HZdw8BhppcTQo8DIK46LSg_25));
		LOC21[2] = nimrtl_copyString(command0);
		LOC22 = (NimStringDesc*)0;
		LOC22 = sysargsraw0->data[0]; sysargsraw0->data[0] = nimrtl_copyStringRC1(LOC21[0]);
		if (LOC22) nimGCunrefNoCycle(LOC22);
		LOC23 = (NimStringDesc*)0;
		LOC23 = sysargsraw0->data[1]; sysargsraw0->data[1] = nimrtl_copyStringRC1(LOC21[1]);
		if (LOC23) nimGCunrefNoCycle(LOC23);
		LOC24 = (NimStringDesc*)0;
		LOC24 = sysargsraw0->data[2]; sysargsraw0->data[2] = nimrtl_copyStringRC1(LOC21[2]);
		if (LOC24) nimGCunrefNoCycle(LOC24);
	}
	goto LA17;
	LA19: ;
	{
		TY_nHXaesL0DJZHyVS07ARPRA LOC26;
		NimStringDesc* LOC27;
		syscommand0 = nimrtl_copyString(command0);
		sysargsraw0 = (TY_sM4lkSb7zS6F7OVMvW9cffQ*) nimrtl_newSeq((&NTI_sM4lkSb7zS6F7OVMvW9cffQ), 1);
		memset((void*)LOC26, 0, sizeof(LOC26));
		LOC26[0] = nimrtl_copyString(command0);
		LOC27 = (NimStringDesc*)0;
		LOC27 = sysargsraw0->data[0]; sysargsraw0->data[0] = nimrtl_copyStringRC1(LOC26[0]);
		if (LOC27) nimGCunrefNoCycle(LOC27);
		{
			NimStringDesc* arg_RNTv4MTw28sHh9ciZ6XuVCw;
			NI i_whEmtY8wiAodgfe2BvUzRQ;
			arg_RNTv4MTw28sHh9ciZ6XuVCw = (NimStringDesc*)0;
			i_whEmtY8wiAodgfe2BvUzRQ = ((NI) 0);
			{
				while (1) {
					NimStringDesc* LOC31;
					if (!(i_whEmtY8wiAodgfe2BvUzRQ < args0Len0)) goto LA30;
					arg_RNTv4MTw28sHh9ciZ6XuVCw = args0[i_whEmtY8wiAodgfe2BvUzRQ];
					sysargsraw0 = (TY_sM4lkSb7zS6F7OVMvW9cffQ*) incrSeqV2(&(sysargsraw0)->Sup, sizeof(NimStringDesc*));
					LOC31 = (NimStringDesc*)0;
					LOC31 = sysargsraw0->data[sysargsraw0->Sup.len]; sysargsraw0->data[sysargsraw0->Sup.len] = nimrtl_copyStringRC1(arg_RNTv4MTw28sHh9ciZ6XuVCw);
					if (LOC31) nimGCunrefNoCycle(LOC31);
					++sysargsraw0->Sup.len;
					i_whEmtY8wiAodgfe2BvUzRQ += ((NI) 1);
				} LA30: ;
			}
		}
	}
	LA17: ;
	pid0 = (pid_t)0;
	sysargs0 = alloccstringarray_TG6GWpa9cdnVJVGZxJaqBJg(sysargsraw0->data, sysargsraw0->Sup.len);
	nimrtl_pushSafePoint(&T_HZdw8BhppcTQo8DIK46LSg_26);
	T_HZdw8BhppcTQo8DIK46LSg_26.status = setjmp(T_HZdw8BhppcTQo8DIK46LSg_26.context);
	if (T_HZdw8BhppcTQo8DIK46LSg_26.status == 0) {
		NCSTRING* sysenv0;
		TSafePoint T_HZdw8BhppcTQo8DIK46LSg_28;
		{
			if (!(env0 == NIM_NIL)) goto LA35;
			sysenv0 = envtocstringarray_5W8jibc9b9cn0LB5f6DkUbiA();
		}
		goto LA33;
		LA35: ;
		{
			sysenv0 = envtocstringarray_powWbjMeev5megN9bWVjfTw(env0);
		}
		LA33: ;
		nimrtl_pushSafePoint(&T_HZdw8BhppcTQo8DIK46LSg_28);
		T_HZdw8BhppcTQo8DIK46LSg_28.status = setjmp(T_HZdw8BhppcTQo8DIK46LSg_28.context);
		if (T_HZdw8BhppcTQo8DIK46LSg_28.status == 0) {
			Startprocessdata_xgRnKnLIYRtnOkshMKhc9cA data0;
			memset((void*)(&data0), 0, sizeof(data0));
			data0.syscommand = syscommand0->data;
			data0.sysargs = sysargs0;
			data0.sysenv = sysenv0;
			memcpy((void*)data0.pstdin, (NIM_CONST void*)pstdin0, sizeof(TY_SKEqGXcReU4NvbQlH779b5Q));
			memcpy((void*)data0.pstdout, (NIM_CONST void*)pstdout0, sizeof(TY_SKEqGXcReU4NvbQlH779b5Q));
			memcpy((void*)data0.pstderr, (NIM_CONST void*)pstderr0, sizeof(TY_SKEqGXcReU4NvbQlH779b5Q));
			data0.optionpoparentstreams = ((options0 &(1U<<((NU)(((Processoption_bnU6W8LhTMnT4JaSWtGlSA) 4))&7U)))!=0);
			data0.optionpousepath = ((options0 &(1U<<((NU)(((Processoption_bnU6W8LhTMnT4JaSWtGlSA) 1))&7U)))!=0);
			data0.optionpostderrtostdout = ((options0 &(1U<<((NU)(((Processoption_bnU6W8LhTMnT4JaSWtGlSA) 3))&7U)))!=0);
			data0.workingdir = workingdir0->data;
			pid0 = startprocessauxfork_VwNkkMfMOAO9b1isfsqmrNQ((&data0));
			{
				NimStringDesc* LOC43;
				if (!((options0 &(1U<<((NU)(((Processoption_bnU6W8LhTMnT4JaSWtGlSA) 0))&7U)))!=0)) goto LA41;
				LOC43 = (NimStringDesc*)0;
				LOC43 = nsuJoinSep(args0, args0Len0, ((NimStringDesc*) &T_HZdw8BhppcTQo8DIK46LSg_31));
				printf("%s%s%s\012", command0? (command0)->data:"nil", ((NimStringDesc*) &T_HZdw8BhppcTQo8DIK46LSg_31)? (((NimStringDesc*) &T_HZdw8BhppcTQo8DIK46LSg_31))->data:"nil", LOC43? (LOC43)->data:"nil");
				fflush(stdout);
			}
			LA41: ;
			(*result0).id = pid0;
			{
				if (!((options0 &(1U<<((NU)(((Processoption_bnU6W8LhTMnT4JaSWtGlSA) 4))&7U)))!=0)) goto LA46;
				(*result0).inhandle = ((int) 0);
				(*result0).outhandle = ((int) 1);
				{
					if (!((options0 &(1U<<((NU)(((Processoption_bnU6W8LhTMnT4JaSWtGlSA) 3))&7U)))!=0)) goto LA50;
					(*result0).errhandle = (*result0).outhandle;
				}
				goto LA48;
				LA50: ;
				{
					(*result0).errhandle = ((int) 2);
				}
				LA48: ;
			}
			goto LA44;
			LA46: ;
			{
				int LOC60;
				int LOC61;
				int LOC62;
				(*result0).inhandle = pstdin0[(((NI) 1))- 0];
				(*result0).outhandle = pstdout0[(((NI) 0))- 0];
				{
					int LOC58;
					if (!((options0 &(1U<<((NU)(((Processoption_bnU6W8LhTMnT4JaSWtGlSA) 3))&7U)))!=0)) goto LA56;
					(*result0).errhandle = (*result0).outhandle;
					LOC58 = (int)0;
					LOC58 = close(pstderr0[(((NI) 0))- 0]);
				}
				goto LA54;
				LA56: ;
				{
					(*result0).errhandle = pstderr0[(((NI) 0))- 0];
				}
				LA54: ;
				LOC60 = (int)0;
				LOC60 = close(pstderr0[(((NI) 1))- 0]);
				LOC61 = (int)0;
				LOC61 = close(pstdin0[(((NI) 0))- 0]);
				LOC62 = (int)0;
				LOC62 = close(pstdout0[(((NI) 1))- 0]);
			}
			LA44: ;
			nimrtl_popSafePoint();
		}
		else {
			nimrtl_popSafePoint();
		}
		{
			dealloccstringarray_PrKbmufafP6J0HO6K4x3tQ(sysenv0);
		}
		if (T_HZdw8BhppcTQo8DIK46LSg_28.status != 0) nimrtl_reraiseException();
		nimrtl_popSafePoint();
	}
	else {
		nimrtl_popSafePoint();
	}
	{
		dealloccstringarray_PrKbmufafP6J0HO6K4x3tQ(sysargs0);
	}
	if (T_HZdw8BhppcTQo8DIK46LSg_26.status != 0) nimrtl_reraiseException();
	return result0;
}

N_LIB_EXPORT N_CDECL(void, nospclose)(Processobj_NHqciQYh8G1aN2n273mmYw* p0) {
	{
		if (!!(((*p0).instream == NIM_NIL))) goto LA3;
		close_4ed7IXme7lqtClFI7s2sTQ((*p0).instream);
	}
	LA3: ;
	{
		if (!!(((*p0).outstream == NIM_NIL))) goto LA7;
		close_4ed7IXme7lqtClFI7s2sTQ((*p0).outstream);
	}
	LA7: ;
	{
		if (!!(((*p0).errstream == NIM_NIL))) goto LA11;
		close_4ed7IXme7lqtClFI7s2sTQ((*p0).errstream);
	}
	LA11: ;
	{
		int LOC17;
		int LOC18;
		int LOC19;
		if (!!((((*p0).options &(1U<<((NU)(((Processoption_bnU6W8LhTMnT4JaSWtGlSA) 4))&7U)))!=0))) goto LA15;
		LOC17 = (int)0;
		LOC17 = close((*p0).inhandle);
		LOC18 = (int)0;
		LOC18 = close((*p0).outhandle);
		LOC19 = (int)0;
		LOC19 = close((*p0).errhandle);
	}
	LA15: ;
}

N_LIB_EXPORT N_CDECL(void, nospsuspend)(Processobj_NHqciQYh8G1aN2n273mmYw* p0) {
	{
		int LOC3;
		NI32 LOC6;
		LOC3 = (int)0;
		LOC3 = kill((*p0).id, SIGSTOP);
		if (!!((LOC3 == ((NI32) 0)))) goto LA4;
		LOC6 = (NI32)0;
		LOC6 = oslasterror_pMOMIZAQaKFp1XoL58mjVg();
		raiseoserror_K9a7YBjj81Bse0N0Fg7MFIA(LOC6, ((NimStringDesc*) &T_HZdw8BhppcTQo8DIK46LSg_3));
	}
	LA4: ;
}

N_LIB_EXPORT N_CDECL(void, nospresume)(Processobj_NHqciQYh8G1aN2n273mmYw* p0) {
	{
		int LOC3;
		NI32 LOC6;
		LOC3 = (int)0;
		LOC3 = kill((*p0).id, SIGCONT);
		if (!!((LOC3 == ((NI32) 0)))) goto LA4;
		LOC6 = (NI32)0;
		LOC6 = oslasterror_pMOMIZAQaKFp1XoL58mjVg();
		raiseoserror_K9a7YBjj81Bse0N0Fg7MFIA(LOC6, ((NimStringDesc*) &T_HZdw8BhppcTQo8DIK46LSg_3));
	}
	LA4: ;
}

N_LIB_EXPORT N_CDECL(NIM_BOOL, nosprunning)(Processobj_NHqciQYh8G1aN2n273mmYw* p0) {
	NIM_BOOL result0;
	NI ret0;
	int status0;
{	result0 = (NIM_BOOL)0;
	ret0 = (NI)0;
	status0 = ((int) 1);
	ret0 = waitpid((*p0).id, (&status0), WNOHANG);
	{
		if (!(ret0 == (*p0).id)) goto LA3;
		{
			NIM_BOOL LOC7;
			LOC7 = (NIM_BOOL)0;
			LOC7 = WIFEXITED(status0);
			if (!LOC7) goto LA8;
			(*p0).exitstatus = status0;
			result0 = NIM_FALSE;
			goto BeforeRet;
		}
		goto LA5;
		LA8: ;
		{
			result0 = NIM_TRUE;
			goto BeforeRet;
		}
		LA5: ;
	}
	goto LA1;
	LA3: ;
	{
		if (!(ret0 == ((NI) 0))) goto LA12;
		result0 = NIM_TRUE;
		goto BeforeRet;
	}
	goto LA1;
	LA12: ;
	{
		result0 = NIM_FALSE;
		goto BeforeRet;
	}
	LA1: ;
	}BeforeRet: ;
	return result0;
}

N_LIB_EXPORT N_CDECL(void, nospterminate)(Processobj_NHqciQYh8G1aN2n273mmYw* p0) {
	{
		int LOC3;
		NI32 LOC6;
		LOC3 = (int)0;
		LOC3 = kill((*p0).id, SIGTERM);
		if (!!((LOC3 == ((NI32) 0)))) goto LA4;
		LOC6 = (NI32)0;
		LOC6 = oslasterror_pMOMIZAQaKFp1XoL58mjVg();
		raiseoserror_K9a7YBjj81Bse0N0Fg7MFIA(LOC6, ((NimStringDesc*) &T_HZdw8BhppcTQo8DIK46LSg_3));
	}
	LA4: ;
}

N_LIB_EXPORT N_CDECL(void, nospkill)(Processobj_NHqciQYh8G1aN2n273mmYw* p0) {
	{
		int LOC3;
		NI32 LOC6;
		LOC3 = (int)0;
		LOC3 = kill((*p0).id, SIGKILL);
		if (!!((LOC3 == ((NI32) 0)))) goto LA4;
		LOC6 = (NI32)0;
		LOC6 = oslasterror_pMOMIZAQaKFp1XoL58mjVg();
		raiseoserror_K9a7YBjj81Bse0N0Fg7MFIA(LOC6, ((NimStringDesc*) &T_HZdw8BhppcTQo8DIK46LSg_3));
	}
	LA4: ;
}

N_LIB_EXPORT N_CDECL(NI, nospwaitForExit)(Processobj_NHqciQYh8G1aN2n273mmYw* p0, NI timeout0) {
	NI result0;
{	result0 = (NI)0;
	{
		if (!!(((*p0).exitstatus == ((NI32) -3)))) goto LA3;
		result0 = (NI)((NU64)(((NI) ((*p0).exitstatus))) >> (NU64)(((NI) 8)));
		goto BeforeRet;
	}
	LA3: ;
	{
		int status0;
		if (!(timeout0 == ((NI) -1))) goto LA7;
		status0 = ((int) 1);
		{
			pid_t LOC11;
			NI32 LOC14;
			LOC11 = (pid_t)0;
			LOC11 = waitpid((*p0).id, (&status0), ((int) 0));
			if (!(LOC11 < ((NI) 0))) goto LA12;
			LOC14 = (NI32)0;
			LOC14 = oslasterror_pMOMIZAQaKFp1XoL58mjVg();
			raiseoserror_K9a7YBjj81Bse0N0Fg7MFIA(LOC14, ((NimStringDesc*) &T_HZdw8BhppcTQo8DIK46LSg_3));
		}
		LA12: ;
		(*p0).exitstatus = status0;
	}
	goto LA5;
	LA7: ;
	{
		sigset_t nmask0;
		sigset_t omask0;
		siginfo_t sinfo0;
		struct timespec stspec0;
		struct timespec enspec0;
		struct timespec tmspec0;
		int LOC16;
		int LOC17;
		int LOC18;
		TSafePoint T_HZdw8BhppcTQo8DIK46LSg_32;
		memset((void*)(&nmask0), 0, sizeof(nmask0));
		memset((void*)(&omask0), 0, sizeof(omask0));
		memset((void*)(&sinfo0), 0, sizeof(sinfo0));
		memset((void*)(&stspec0), 0, sizeof(stspec0));
		memset((void*)(&enspec0), 0, sizeof(enspec0));
		memset((void*)(&tmspec0), 0, sizeof(tmspec0));
		LOC16 = (int)0;
		LOC16 = sigemptyset((&nmask0));
		LOC17 = (int)0;
		LOC17 = sigemptyset((&omask0));
		LOC18 = (int)0;
		LOC18 = sigaddset((&nmask0), SIGCHLD);
		{
			int LOC21;
			NI32 LOC24;
			LOC21 = (int)0;
			LOC21 = sigprocmask(SIG_BLOCK, (&nmask0), (&omask0));
			if (!(LOC21 == ((NI32) -1))) goto LA22;
			LOC24 = (NI32)0;
			LOC24 = oslasterror_pMOMIZAQaKFp1XoL58mjVg();
			raiseoserror_K9a7YBjj81Bse0N0Fg7MFIA(LOC24, ((NimStringDesc*) &T_HZdw8BhppcTQo8DIK46LSg_3));
		}
		LA22: ;
		{
			if (!(((NI) 1000) <= timeout0)) goto LA27;
			tmspec0.tv_sec = (NI)(timeout0 / ((NI) 1000));
			tmspec0.tv_nsec = (NI)((NI)((NU64)(timeout0) % (NU64)(((NI) 1000))) * ((NI) 1000000));
		}
		goto LA25;
		LA27: ;
		{
			tmspec0.tv_sec = ((time_t) 0);
			tmspec0.tv_nsec = (NI)(timeout0 * ((NI) 1000000));
		}
		LA25: ;
		nimrtl_pushSafePoint(&T_HZdw8BhppcTQo8DIK46LSg_32);
		T_HZdw8BhppcTQo8DIK46LSg_32.status = setjmp(T_HZdw8BhppcTQo8DIK46LSg_32.context);
		if (T_HZdw8BhppcTQo8DIK46LSg_32.status == 0) {
			{
				int LOC33;
				NI32 LOC36;
				LOC33 = (int)0;
				LOC33 = clock_gettime(((clockid_t) (CLOCK_REALTIME)), (&stspec0));
				if (!(LOC33 == ((NI32) -1))) goto LA34;
				LOC36 = (NI32)0;
				LOC36 = oslasterror_pMOMIZAQaKFp1XoL58mjVg();
				raiseoserror_K9a7YBjj81Bse0N0Fg7MFIA(LOC36, ((NimStringDesc*) &T_HZdw8BhppcTQo8DIK46LSg_3));
			}
			LA34: ;
			{
				while (1) {
					int res0;
					res0 = sigtimedwait((&nmask0), (&sinfo0), (&tmspec0));
					{
						if (!(res0 == SIGCHLD)) goto LA41;
						{
							int status0;
							if (!(sinfo0.si_pid == (*p0).id)) goto LA45;
							status0 = ((int) 1);
							{
								pid_t LOC49;
								NI32 LOC52;
								LOC49 = (pid_t)0;
								LOC49 = waitpid((*p0).id, (&status0), ((int) 0));
								if (!(LOC49 < ((NI) 0))) goto LA50;
								LOC52 = (NI32)0;
								LOC52 = oslasterror_pMOMIZAQaKFp1XoL58mjVg();
								raiseoserror_K9a7YBjj81Bse0N0Fg7MFIA(LOC52, ((NimStringDesc*) &T_HZdw8BhppcTQo8DIK46LSg_3));
							}
							LA50: ;
							(*p0).exitstatus = status0;
							goto LA37;
						}
						goto LA43;
						LA45: ;
						{
							NI volatile diff_sGb9bPLVObt9cTEQdg2YqiAg;
							struct timespec b_pmssJaIJsW5GrSeqqFhLcA;
							NI64 LOC60;
							NI64 LOC73;
							{
								int LOC56;
								NI32 LOC59;
								LOC56 = (int)0;
								LOC56 = clock_gettime(((clockid_t) (CLOCK_REALTIME)), (&enspec0));
								if (!(LOC56 == ((NI32) -1))) goto LA57;
								LOC59 = (NI32)0;
								LOC59 = oslasterror_pMOMIZAQaKFp1XoL58mjVg();
								raiseoserror_K9a7YBjj81Bse0N0Fg7MFIA(LOC59, ((NimStringDesc*) &T_HZdw8BhppcTQo8DIK46LSg_3));
							}
							LA57: ;
							diff_sGb9bPLVObt9cTEQdg2YqiAg = (NI)0;
							memset((void*)(&b_pmssJaIJsW5GrSeqqFhLcA), 0, sizeof(b_pmssJaIJsW5GrSeqqFhLcA));
							b_pmssJaIJsW5GrSeqqFhLcA.tv_sec = enspec0.tv_sec;
							b_pmssJaIJsW5GrSeqqFhLcA.tv_nsec = enspec0.tv_nsec;
							LOC60 = (NI64)0;
							LOC60 = ntDiffTime(enspec0.tv_sec, stspec0.tv_sec);
							enspec0.tv_sec = ((time_t) (LOC60));
							{
								if (!(stspec0.tv_nsec <= enspec0.tv_nsec)) goto LA63;
								enspec0.tv_nsec -= stspec0.tv_nsec;
							}
							goto LA61;
							LA63: ;
							{
								{
									NIM_BOOL LOC68;
									Valueerror_Gi06FkNeykJn7mrqRZYrkA* volatile e_CnnTBizt4erFnIvznHIRgg;
									NimStringDesc* LOC71;
									LOC68 = (NIM_BOOL)0;
									LOC68 = ntEqTime(enspec0.tv_sec, ((time_t) 0));
									if (!LOC68) goto LA69;
									e_CnnTBizt4erFnIvznHIRgg = (Valueerror_Gi06FkNeykJn7mrqRZYrkA*)0;
									e_CnnTBizt4erFnIvznHIRgg = (Valueerror_Gi06FkNeykJn7mrqRZYrkA*) nimrtl_newObj((&NTI_yCEN9anxCD6mzBxGjuaRBdg), sizeof(Valueerror_Gi06FkNeykJn7mrqRZYrkA));
									(*e_CnnTBizt4erFnIvznHIRgg).Sup.Sup.m_type = (&NTI_Gi06FkNeykJn7mrqRZYrkA);
									LOC71 = (NimStringDesc*)0;
									LOC71 = (*e_CnnTBizt4erFnIvznHIRgg).Sup.message; (*e_CnnTBizt4erFnIvznHIRgg).Sup.message = nimrtl_copyStringRC1(((NimStringDesc*) &T_HZdw8BhppcTQo8DIK46LSg_33));
									if (LOC71) nimGCunrefNoCycle(LOC71);
									nimrtl_raiseException((Exception*)e_CnnTBizt4erFnIvznHIRgg, "ValueError");
								}
								goto LA66;
								LA69: ;
								{
									diff_sGb9bPLVObt9cTEQdg2YqiAg = (NI)(stspec0.tv_nsec - enspec0.tv_nsec);
									enspec0.tv_nsec = (NI)(((NI) 1000000000) - diff_sGb9bPLVObt9cTEQdg2YqiAg);
								}
								LA66: ;
							}
							LA61: ;
							LOC73 = (NI64)0;
							LOC73 = ntDiffTime(tmspec0.tv_sec, enspec0.tv_sec);
							tmspec0.tv_sec = ((time_t) (LOC73));
							{
								if (!(enspec0.tv_nsec <= tmspec0.tv_nsec)) goto LA76;
								tmspec0.tv_nsec -= enspec0.tv_nsec;
							}
							goto LA74;
							LA76: ;
							{
								tmspec0.tv_sec = (NI)(tmspec0.tv_sec - ((NI) 1));
								diff_sGb9bPLVObt9cTEQdg2YqiAg = (NI)(enspec0.tv_nsec - tmspec0.tv_nsec);
								tmspec0.tv_nsec = (NI)(((NI) 1000000000) - diff_sGb9bPLVObt9cTEQdg2YqiAg);
							}
							LA74: ;
							stspec0.tv_sec = b_pmssJaIJsW5GrSeqqFhLcA.tv_sec;
							stspec0.tv_nsec = b_pmssJaIJsW5GrSeqqFhLcA.tv_nsec;
						}
						LA43: ;
					}
					goto LA39;
					LA41: ;
					{
						NI32 err0;
						if (!(res0 < ((NI32) 0))) goto LA80;
						err0 = oslasterror_pMOMIZAQaKFp1XoL58mjVg();
						{
							NI volatile diff_sGb9bPLVObt9cTEQdg2YqiAg_2;
							struct timespec b_pmssJaIJsW5GrSeqqFhLcA_2;
							NI64 LOC92;
							NI64 LOC105;
							if (!(err0 == EINTR)) goto LA84;
							{
								int LOC88;
								NI32 LOC91;
								LOC88 = (int)0;
								LOC88 = clock_gettime(((clockid_t) (CLOCK_REALTIME)), (&enspec0));
								if (!(LOC88 == ((NI32) -1))) goto LA89;
								LOC91 = (NI32)0;
								LOC91 = oslasterror_pMOMIZAQaKFp1XoL58mjVg();
								raiseoserror_K9a7YBjj81Bse0N0Fg7MFIA(LOC91, ((NimStringDesc*) &T_HZdw8BhppcTQo8DIK46LSg_3));
							}
							LA89: ;
							diff_sGb9bPLVObt9cTEQdg2YqiAg_2 = (NI)0;
							memset((void*)(&b_pmssJaIJsW5GrSeqqFhLcA_2), 0, sizeof(b_pmssJaIJsW5GrSeqqFhLcA_2));
							b_pmssJaIJsW5GrSeqqFhLcA_2.tv_sec = enspec0.tv_sec;
							b_pmssJaIJsW5GrSeqqFhLcA_2.tv_nsec = enspec0.tv_nsec;
							LOC92 = (NI64)0;
							LOC92 = ntDiffTime(enspec0.tv_sec, stspec0.tv_sec);
							enspec0.tv_sec = ((time_t) (LOC92));
							{
								if (!(stspec0.tv_nsec <= enspec0.tv_nsec)) goto LA95;
								enspec0.tv_nsec -= stspec0.tv_nsec;
							}
							goto LA93;
							LA95: ;
							{
								{
									NIM_BOOL LOC100;
									Valueerror_Gi06FkNeykJn7mrqRZYrkA* volatile e_CnnTBizt4erFnIvznHIRgg_2;
									NimStringDesc* LOC103;
									LOC100 = (NIM_BOOL)0;
									LOC100 = ntEqTime(enspec0.tv_sec, ((time_t) 0));
									if (!LOC100) goto LA101;
									e_CnnTBizt4erFnIvznHIRgg_2 = (Valueerror_Gi06FkNeykJn7mrqRZYrkA*)0;
									e_CnnTBizt4erFnIvznHIRgg_2 = (Valueerror_Gi06FkNeykJn7mrqRZYrkA*) nimrtl_newObj((&NTI_yCEN9anxCD6mzBxGjuaRBdg), sizeof(Valueerror_Gi06FkNeykJn7mrqRZYrkA));
									(*e_CnnTBizt4erFnIvznHIRgg_2).Sup.Sup.m_type = (&NTI_Gi06FkNeykJn7mrqRZYrkA);
									LOC103 = (NimStringDesc*)0;
									LOC103 = (*e_CnnTBizt4erFnIvznHIRgg_2).Sup.message; (*e_CnnTBizt4erFnIvznHIRgg_2).Sup.message = nimrtl_copyStringRC1(((NimStringDesc*) &T_HZdw8BhppcTQo8DIK46LSg_33));
									if (LOC103) nimGCunrefNoCycle(LOC103);
									nimrtl_raiseException((Exception*)e_CnnTBizt4erFnIvznHIRgg_2, "ValueError");
								}
								goto LA98;
								LA101: ;
								{
									diff_sGb9bPLVObt9cTEQdg2YqiAg_2 = (NI)(stspec0.tv_nsec - enspec0.tv_nsec);
									enspec0.tv_nsec = (NI)(((NI) 1000000000) - diff_sGb9bPLVObt9cTEQdg2YqiAg_2);
								}
								LA98: ;
							}
							LA93: ;
							LOC105 = (NI64)0;
							LOC105 = ntDiffTime(tmspec0.tv_sec, enspec0.tv_sec);
							tmspec0.tv_sec = ((time_t) (LOC105));
							{
								if (!(enspec0.tv_nsec <= tmspec0.tv_nsec)) goto LA108;
								tmspec0.tv_nsec -= enspec0.tv_nsec;
							}
							goto LA106;
							LA108: ;
							{
								tmspec0.tv_sec = (NI)(tmspec0.tv_sec - ((NI) 1));
								diff_sGb9bPLVObt9cTEQdg2YqiAg_2 = (NI)(enspec0.tv_nsec - tmspec0.tv_nsec);
								tmspec0.tv_nsec = (NI)(((NI) 1000000000) - diff_sGb9bPLVObt9cTEQdg2YqiAg_2);
							}
							LA106: ;
							stspec0.tv_sec = b_pmssJaIJsW5GrSeqqFhLcA_2.tv_sec;
							stspec0.tv_nsec = b_pmssJaIJsW5GrSeqqFhLcA_2.tv_nsec;
						}
						goto LA82;
						LA84: ;
						{
							int status0;
							if (!(err0 == EAGAIN)) goto LA112;
							{
								int LOC116;
								NI32 LOC119;
								LOC116 = (int)0;
								LOC116 = kill((*p0).id, SIGKILL);
								if (!(LOC116 == ((NI32) -1))) goto LA117;
								LOC119 = (NI32)0;
								LOC119 = oslasterror_pMOMIZAQaKFp1XoL58mjVg();
								raiseoserror_K9a7YBjj81Bse0N0Fg7MFIA(LOC119, ((NimStringDesc*) &T_HZdw8BhppcTQo8DIK46LSg_3));
							}
							LA117: ;
							status0 = ((int) 1);
							{
								pid_t LOC122;
								NI32 LOC125;
								LOC122 = (pid_t)0;
								LOC122 = waitpid((*p0).id, (&status0), ((int) 0));
								if (!(LOC122 < ((NI) 0))) goto LA123;
								LOC125 = (NI32)0;
								LOC125 = oslasterror_pMOMIZAQaKFp1XoL58mjVg();
								raiseoserror_K9a7YBjj81Bse0N0Fg7MFIA(LOC125, ((NimStringDesc*) &T_HZdw8BhppcTQo8DIK46LSg_3));
							}
							LA123: ;
							(*p0).exitstatus = status0;
							goto LA37;
						}
						goto LA82;
						LA112: ;
						{
							raiseoserror_K9a7YBjj81Bse0N0Fg7MFIA(err0, ((NimStringDesc*) &T_HZdw8BhppcTQo8DIK46LSg_3));
						}
						LA82: ;
					}
					goto LA39;
					LA80: ;
					LA39: ;
				}
			} LA37: ;
			nimrtl_popSafePoint();
		}
		else {
			nimrtl_popSafePoint();
		}
		{
			{
				int LOC131;
				NI32 LOC134;
				LOC131 = (int)0;
				LOC131 = sigprocmask(SIG_UNBLOCK, (&nmask0), (&omask0));
				if (!(LOC131 == ((NI32) -1))) goto LA132;
				LOC134 = (NI32)0;
				LOC134 = oslasterror_pMOMIZAQaKFp1XoL58mjVg();
				raiseoserror_K9a7YBjj81Bse0N0Fg7MFIA(LOC134, ((NimStringDesc*) &T_HZdw8BhppcTQo8DIK46LSg_3));
			}
			LA132: ;
		}
		if (T_HZdw8BhppcTQo8DIK46LSg_32.status != 0) nimrtl_reraiseException();
	}
	LA5: ;
	result0 = (NI)((NU64)(((NI) ((*p0).exitstatus))) >> (NU64)(((NI) 8)));
	}BeforeRet: ;
	return result0;
}

N_NIMCALL(void, createstream_v8G6hIKoW7oNggVYf9a9c7dQ)(Streamobj_RShkcoDOPnoCVhtpN1hDPQ** stream0, int* handle0, Filemode_fVUBHvW79bXUw1j55Oo9avSQ filemode0) {
	FILE* f0;
	Filestreamobj_qoDM8xYRV40zbhS9acPNT9bw* LOC7;
	f0 = (FILE*)0;
	{
		NIM_BOOL LOC3;
		NI32 LOC6;
		LOC3 = (NIM_BOOL)0;
		LOC3 = open_GRr4dBTChSldEteMxZDsuw(&f0, (*handle0), filemode0);
		if (!!(LOC3)) goto LA4;
		LOC6 = (NI32)0;
		LOC6 = oslasterror_pMOMIZAQaKFp1XoL58mjVg();
		raiseoserror_K9a7YBjj81Bse0N0Fg7MFIA(LOC6, ((NimStringDesc*) &T_HZdw8BhppcTQo8DIK46LSg_3));
	}
	LA4: ;
	LOC7 = (Filestreamobj_qoDM8xYRV40zbhS9acPNT9bw*)0;
	LOC7 = newfilestream_j9aOzR9a9bXMSUnTXiGmXXGqQ(f0);
	unsureAsgnRef((void**) (&(*stream0)), &LOC7->Sup);
}

N_LIB_EXPORT N_CDECL(Streamobj_RShkcoDOPnoCVhtpN1hDPQ*, nospinputStream)(Processobj_NHqciQYh8G1aN2n273mmYw* p0) {
	Streamobj_RShkcoDOPnoCVhtpN1hDPQ* result0;
{	result0 = (Streamobj_RShkcoDOPnoCVhtpN1hDPQ*)0;
	{
		if (!((*p0).instream == NIM_NIL)) goto LA3;
		createstream_v8G6hIKoW7oNggVYf9a9c7dQ(&(*p0).instream, (&(*p0).inhandle), ((Filemode_fVUBHvW79bXUw1j55Oo9avSQ) 1));
	}
	LA3: ;
	result0 = (*p0).instream;
	goto BeforeRet;
	}BeforeRet: ;
	return result0;
}

N_LIB_EXPORT N_CDECL(Streamobj_RShkcoDOPnoCVhtpN1hDPQ*, nospoutputStream)(Processobj_NHqciQYh8G1aN2n273mmYw* p0) {
	Streamobj_RShkcoDOPnoCVhtpN1hDPQ* result0;
{	result0 = (Streamobj_RShkcoDOPnoCVhtpN1hDPQ*)0;
	{
		if (!((*p0).outstream == NIM_NIL)) goto LA3;
		createstream_v8G6hIKoW7oNggVYf9a9c7dQ(&(*p0).outstream, (&(*p0).outhandle), ((Filemode_fVUBHvW79bXUw1j55Oo9avSQ) 0));
	}
	LA3: ;
	result0 = (*p0).outstream;
	goto BeforeRet;
	}BeforeRet: ;
	return result0;
}

N_LIB_EXPORT N_CDECL(Streamobj_RShkcoDOPnoCVhtpN1hDPQ*, nosperrorStream)(Processobj_NHqciQYh8G1aN2n273mmYw* p0) {
	Streamobj_RShkcoDOPnoCVhtpN1hDPQ* result0;
{	result0 = (Streamobj_RShkcoDOPnoCVhtpN1hDPQ*)0;
	{
		if (!((*p0).errstream == NIM_NIL)) goto LA3;
		createstream_v8G6hIKoW7oNggVYf9a9c7dQ(&(*p0).errstream, (&(*p0).errhandle), ((Filemode_fVUBHvW79bXUw1j55Oo9avSQ) 0));
	}
	LA3: ;
	result0 = (*p0).errstream;
	goto BeforeRet;
	}BeforeRet: ;
	return result0;
}

N_LIB_EXPORT N_CDECL(NI, nospexecCmd)(NimStringDesc* command0) {
	NI result0;
	int LOC1;
	result0 = (NI)0;
	LOC1 = (int)0;
	LOC1 = system(command0->data);
	result0 = ((NI) ((NI32)((NU64)(LOC1) >> (NU64)(((NI) 8)))));
	return result0;
}
NIM_EXTERNC N_NOINLINE(void, stdlib_osprocInit000)(void) {
}

NIM_EXTERNC N_NOINLINE(void, stdlib_osprocDatInit000)(void) {
static TNimNode* T_HZdw8BhppcTQo8DIK46LSg_10[9];
static TNimNode* T_HZdw8BhppcTQo8DIK46LSg_11[7];
NI T_HZdw8BhppcTQo8DIK46LSg_13;
static char* NIM_CONST T_HZdw8BhppcTQo8DIK46LSg_12[7] = {
"poEchoCmd", 
"poUsePath", 
"poEvalCommand", 
"poStdErrToStdOut", 
"poParentStreams", 
"poInteractive", 
"poDemon"};
static TNimNode T_HZdw8BhppcTQo8DIK46LSg_0[19];
NTI_NHqciQYh8G1aN2n273mmYw.size = sizeof(Processobj_NHqciQYh8G1aN2n273mmYw);
NTI_NHqciQYh8G1aN2n273mmYw.kind = 17;
NTI_NHqciQYh8G1aN2n273mmYw.base = (&NTI_13RNkKqUOX1TtorOUlKtqA);
T_HZdw8BhppcTQo8DIK46LSg_10[0] = &T_HZdw8BhppcTQo8DIK46LSg_0[1];
T_HZdw8BhppcTQo8DIK46LSg_0[1].kind = 1;
T_HZdw8BhppcTQo8DIK46LSg_0[1].offset = offsetof(Processobj_NHqciQYh8G1aN2n273mmYw, inhandle);
T_HZdw8BhppcTQo8DIK46LSg_0[1].typ = (&NTI_UtShRB9b1wZO9cvpdowm9cefA);
T_HZdw8BhppcTQo8DIK46LSg_0[1].name = "inHandle";
T_HZdw8BhppcTQo8DIK46LSg_10[1] = &T_HZdw8BhppcTQo8DIK46LSg_0[2];
T_HZdw8BhppcTQo8DIK46LSg_0[2].kind = 1;
T_HZdw8BhppcTQo8DIK46LSg_0[2].offset = offsetof(Processobj_NHqciQYh8G1aN2n273mmYw, outhandle);
T_HZdw8BhppcTQo8DIK46LSg_0[2].typ = (&NTI_UtShRB9b1wZO9cvpdowm9cefA);
T_HZdw8BhppcTQo8DIK46LSg_0[2].name = "outHandle";
T_HZdw8BhppcTQo8DIK46LSg_10[2] = &T_HZdw8BhppcTQo8DIK46LSg_0[3];
T_HZdw8BhppcTQo8DIK46LSg_0[3].kind = 1;
T_HZdw8BhppcTQo8DIK46LSg_0[3].offset = offsetof(Processobj_NHqciQYh8G1aN2n273mmYw, errhandle);
T_HZdw8BhppcTQo8DIK46LSg_0[3].typ = (&NTI_UtShRB9b1wZO9cvpdowm9cefA);
T_HZdw8BhppcTQo8DIK46LSg_0[3].name = "errHandle";
T_HZdw8BhppcTQo8DIK46LSg_10[3] = &T_HZdw8BhppcTQo8DIK46LSg_0[4];
T_HZdw8BhppcTQo8DIK46LSg_0[4].kind = 1;
T_HZdw8BhppcTQo8DIK46LSg_0[4].offset = offsetof(Processobj_NHqciQYh8G1aN2n273mmYw, instream);
T_HZdw8BhppcTQo8DIK46LSg_0[4].typ = (&NTI_r3Wc5tOoxP8rz1DvGVTUvw);
T_HZdw8BhppcTQo8DIK46LSg_0[4].name = "inStream";
T_HZdw8BhppcTQo8DIK46LSg_10[4] = &T_HZdw8BhppcTQo8DIK46LSg_0[5];
T_HZdw8BhppcTQo8DIK46LSg_0[5].kind = 1;
T_HZdw8BhppcTQo8DIK46LSg_0[5].offset = offsetof(Processobj_NHqciQYh8G1aN2n273mmYw, outstream);
T_HZdw8BhppcTQo8DIK46LSg_0[5].typ = (&NTI_r3Wc5tOoxP8rz1DvGVTUvw);
T_HZdw8BhppcTQo8DIK46LSg_0[5].name = "outStream";
T_HZdw8BhppcTQo8DIK46LSg_10[5] = &T_HZdw8BhppcTQo8DIK46LSg_0[6];
T_HZdw8BhppcTQo8DIK46LSg_0[6].kind = 1;
T_HZdw8BhppcTQo8DIK46LSg_0[6].offset = offsetof(Processobj_NHqciQYh8G1aN2n273mmYw, errstream);
T_HZdw8BhppcTQo8DIK46LSg_0[6].typ = (&NTI_r3Wc5tOoxP8rz1DvGVTUvw);
T_HZdw8BhppcTQo8DIK46LSg_0[6].name = "errStream";
T_HZdw8BhppcTQo8DIK46LSg_10[6] = &T_HZdw8BhppcTQo8DIK46LSg_0[7];
T_HZdw8BhppcTQo8DIK46LSg_0[7].kind = 1;
T_HZdw8BhppcTQo8DIK46LSg_0[7].offset = offsetof(Processobj_NHqciQYh8G1aN2n273mmYw, id);
T_HZdw8BhppcTQo8DIK46LSg_0[7].typ = (&NTI_CHeEDdL3roTPu81s9cOH0Bw);
T_HZdw8BhppcTQo8DIK46LSg_0[7].name = "id";
T_HZdw8BhppcTQo8DIK46LSg_10[7] = &T_HZdw8BhppcTQo8DIK46LSg_0[8];
T_HZdw8BhppcTQo8DIK46LSg_0[8].kind = 1;
T_HZdw8BhppcTQo8DIK46LSg_0[8].offset = offsetof(Processobj_NHqciQYh8G1aN2n273mmYw, exitstatus);
T_HZdw8BhppcTQo8DIK46LSg_0[8].typ = (&NTI_nlCscttRCss70IBTyuBqnA);
T_HZdw8BhppcTQo8DIK46LSg_0[8].name = "exitStatus";
T_HZdw8BhppcTQo8DIK46LSg_10[8] = &T_HZdw8BhppcTQo8DIK46LSg_0[9];
NTI_bnU6W8LhTMnT4JaSWtGlSA.size = sizeof(Processoption_bnU6W8LhTMnT4JaSWtGlSA);
NTI_bnU6W8LhTMnT4JaSWtGlSA.kind = 14;
NTI_bnU6W8LhTMnT4JaSWtGlSA.base = 0;
NTI_bnU6W8LhTMnT4JaSWtGlSA.flags = 3;
for (T_HZdw8BhppcTQo8DIK46LSg_13 = 0; T_HZdw8BhppcTQo8DIK46LSg_13 < 7; T_HZdw8BhppcTQo8DIK46LSg_13++) {
T_HZdw8BhppcTQo8DIK46LSg_0[T_HZdw8BhppcTQo8DIK46LSg_13+10].kind = 1;
T_HZdw8BhppcTQo8DIK46LSg_0[T_HZdw8BhppcTQo8DIK46LSg_13+10].offset = T_HZdw8BhppcTQo8DIK46LSg_13;
T_HZdw8BhppcTQo8DIK46LSg_0[T_HZdw8BhppcTQo8DIK46LSg_13+10].name = T_HZdw8BhppcTQo8DIK46LSg_12[T_HZdw8BhppcTQo8DIK46LSg_13];
T_HZdw8BhppcTQo8DIK46LSg_11[T_HZdw8BhppcTQo8DIK46LSg_13] = &T_HZdw8BhppcTQo8DIK46LSg_0[T_HZdw8BhppcTQo8DIK46LSg_13+10];
}
T_HZdw8BhppcTQo8DIK46LSg_0[17].len = 7; T_HZdw8BhppcTQo8DIK46LSg_0[17].kind = 2; T_HZdw8BhppcTQo8DIK46LSg_0[17].sons = &T_HZdw8BhppcTQo8DIK46LSg_11[0];
NTI_bnU6W8LhTMnT4JaSWtGlSA.node = &T_HZdw8BhppcTQo8DIK46LSg_0[17];
NTI_HlmBYNr2gdAZMXOsuiSZ0A.size = sizeof(Processoption_bnU6W8LhTMnT4JaSWtGlSA_Set);
NTI_HlmBYNr2gdAZMXOsuiSZ0A.kind = 19;
NTI_HlmBYNr2gdAZMXOsuiSZ0A.base = (&NTI_bnU6W8LhTMnT4JaSWtGlSA);
NTI_HlmBYNr2gdAZMXOsuiSZ0A.flags = 3;
T_HZdw8BhppcTQo8DIK46LSg_0[18].len = 0; T_HZdw8BhppcTQo8DIK46LSg_0[18].kind = 0;
NTI_HlmBYNr2gdAZMXOsuiSZ0A.node = &T_HZdw8BhppcTQo8DIK46LSg_0[18];
T_HZdw8BhppcTQo8DIK46LSg_0[9].kind = 1;
T_HZdw8BhppcTQo8DIK46LSg_0[9].offset = offsetof(Processobj_NHqciQYh8G1aN2n273mmYw, options);
T_HZdw8BhppcTQo8DIK46LSg_0[9].typ = (&NTI_HlmBYNr2gdAZMXOsuiSZ0A);
T_HZdw8BhppcTQo8DIK46LSg_0[9].name = "options";
T_HZdw8BhppcTQo8DIK46LSg_0[0].len = 9; T_HZdw8BhppcTQo8DIK46LSg_0[0].kind = 2; T_HZdw8BhppcTQo8DIK46LSg_0[0].sons = &T_HZdw8BhppcTQo8DIK46LSg_10[0];
NTI_NHqciQYh8G1aN2n273mmYw.node = &T_HZdw8BhppcTQo8DIK46LSg_0[0];
NTI_Ryg5db24dBRIzTUa2BQTPg.size = sizeof(Processobj_NHqciQYh8G1aN2n273mmYw*);
NTI_Ryg5db24dBRIzTUa2BQTPg.kind = 22;
NTI_Ryg5db24dBRIzTUa2BQTPg.base = (&NTI_NHqciQYh8G1aN2n273mmYw);
NTI_Ryg5db24dBRIzTUa2BQTPg.marker = Marker_TY_Ryg5db24dBRIzTUa2BQTPg;
NTI_l0xXJxOLtcuhlSBHl64t5w.size = sizeof(TY_l0xXJxOLtcuhlSBHl64t5w*);
NTI_l0xXJxOLtcuhlSBHl64t5w.kind = 24;
NTI_l0xXJxOLtcuhlSBHl64t5w.base = (&NTI_Ryg5db24dBRIzTUa2BQTPg);
NTI_l0xXJxOLtcuhlSBHl64t5w.marker = Marker_TY_l0xXJxOLtcuhlSBHl64t5w;
}

