/* Generated by Nim Compiler v1.3.5 */
/*   (c) 2020 Andreas Rumpf */
/* The generated code is subject to the original license. */
#define NIM_INTBITS 64

/* section: NIM_merge_HEADERS */

#include "nimbase.h"
#include <string.h>
#undef LANGUAGE_C
#undef MIPSEB
#undef MIPSEL
#undef PPC
#undef R3000
#undef R4000
#undef i386
#undef linux
#undef mips
#undef near
#undef far
#undef powerpc
#undef unix

/* section: NIM_merge_FRAME_DEFINES */
#define nimfr_(x, y)
#define nimln_(x, y)

/* section: NIM_merge_FORWARD_TYPES */
typedef struct NimStringDesc NimStringDesc;
typedef struct TGenericSeq TGenericSeq;
typedef struct tyObject_StringTableObj__V5PVrt9bIxZEeV7lfvqqtNg tyObject_StringTableObj__V5PVrt9bIxZEeV7lfvqqtNg;
typedef struct tyTuple__XOVT24GHXwqiEj5GCsEGCA tyTuple__XOVT24GHXwqiEj5GCsEGCA;
typedef struct tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg;
typedef struct tyObject_STARTUPINFO__WGlpKvY9cdd69bAwMQMNLYoQ tyObject_STARTUPINFO__WGlpKvY9cdd69bAwMQMNLYoQ;
typedef struct tyObject_PROCESS_INFORMATION__rpgAdaffN9b79bo2kEQiFsMg tyObject_PROCESS_INFORMATION__rpgAdaffN9b79bo2kEQiFsMg;
typedef struct RootObj RootObj;
typedef struct TNimType TNimType;
typedef struct TNimNode TNimNode;
typedef struct tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ;
typedef struct tyObject_SECURITY_ATTRIBUTES__P4HW9ceaevTBZ5O3kGC8yyw tyObject_SECURITY_ATTRIBUTES__P4HW9ceaevTBZ5O3kGC8yyw;
typedef struct tyTuple__0hEbbYmlam6yzyW5MFo9cjg tyTuple__0hEbbYmlam6yzyW5MFo9cjg;
typedef struct tySequence__xv3aaFd3JCw8NbmALHiezQ tySequence__xv3aaFd3JCw8NbmALHiezQ;
typedef struct tyTuple__sPaDkVPSC0MkcoXCxPH9ccA tyTuple__sPaDkVPSC0MkcoXCxPH9ccA;
typedef struct tyObject_HSlice__EE5dzjqoOrHT6HJhIPXAvA tyObject_HSlice__EE5dzjqoOrHT6HJhIPXAvA;
typedef struct tyObject_FileHandleStreamcolonObjectType___Uwf6VGZy4JPKquxCiOCalQ tyObject_FileHandleStreamcolonObjectType___Uwf6VGZy4JPKquxCiOCalQ;

/* section: NIM_merge_TYPES */
struct TGenericSeq {
NI len;
NI reserved;
};
struct NimStringDesc {
  TGenericSeq Sup;
NIM_CHAR data[SEQ_DECL_SIZE];
};
typedef NU8 tySet_tyEnum_ProcessOption__bnU6W8LhTMnT4JaSWtGlSA;
struct tyObject_STARTUPINFO__WGlpKvY9cdd69bAwMQMNLYoQ {
NI32 cb;
NCSTRING lpReserved;
NCSTRING lpDesktop;
NCSTRING lpTitle;
NI32 dwX;
NI32 dwY;
NI32 dwXSize;
NI32 dwYSize;
NI32 dwXCountChars;
NI32 dwYCountChars;
NI32 dwFillAttribute;
NI32 dwFlags;
NI16 wShowWindow;
NI16 cbReserved2;
void* lpReserved2;
NI hStdInput;
NI hStdOutput;
NI hStdError;
};
struct tyObject_PROCESS_INFORMATION__rpgAdaffN9b79bo2kEQiFsMg {
NI hProcess;
NI hThread;
NI32 dwProcessId;
NI32 dwThreadId;
};
typedef NU8 tyEnum_TNimKind__jIBKr1ejBgsfM33Kxw4j7A;
typedef NU8 tySet_tyEnum_TNimTypeFlag__v8QUszD1sWlSIWZz7mC4bQ;
typedef N_NIMCALL_PTR(void, tyProc__ojoeKfW4VYIm36I9cpDTQIg) (void* p, NI op);
typedef N_NIMCALL_PTR(void*, tyProc__WSm2xU5ARYv9aAR4l0z9c9auQ) (void* p);
struct TNimType {
NI size;
NI align;
tyEnum_TNimKind__jIBKr1ejBgsfM33Kxw4j7A kind;
tySet_tyEnum_TNimTypeFlag__v8QUszD1sWlSIWZz7mC4bQ flags;
TNimType* base;
TNimNode* node;
void* finalizer;
tyProc__ojoeKfW4VYIm36I9cpDTQIg marker;
tyProc__WSm2xU5ARYv9aAR4l0z9c9auQ deepcopy;
};
struct RootObj {
TNimType* m_type;
};
struct tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg {
  RootObj Sup;
NI fProcessHandle;
NI fThreadHandle;
int inHandle;
int outHandle;
int errHandle;
NI id;
tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* inStream;
tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* outStream;
tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* errStream;
int exitStatus;
NIM_BOOL exitFlag;
tySet_tyEnum_ProcessOption__bnU6W8LhTMnT4JaSWtGlSA options;
};
typedef NU8 tyEnum_TNimNodeKind__unfNsxrcATrufDZmpBq4HQ;
struct TNimNode {
tyEnum_TNimNodeKind__unfNsxrcATrufDZmpBq4HQ kind;
NI offset;
TNimType* typ;
NCSTRING name;
NI len;
TNimNode** sons;
};
typedef NU8 tyEnum_ProcessOption__bnU6W8LhTMnT4JaSWtGlSA;
struct tyObject_SECURITY_ATTRIBUTES__P4HW9ceaevTBZ5O3kGC8yyw {
NI32 nLength;
void* lpSecurityDescriptor;
NI32 bInheritHandle;
};
typedef N_STDCALL_PTR(NI32, tyProc__C5kM33gEhlSKPXwfDNHofQ) (NI* hReadPipe, NI* hWritePipe, tyObject_SECURITY_ATTRIBUTES__P4HW9ceaevTBZ5O3kGC8yyw* lpPipeAttributes, NI32 nSize);
typedef N_STDCALL_PTR(NI32, tyProc__mBVOPXmpGfUrrbA9a5K9cMbQ) (NI hObject, NI32 dwMask, NI32 dwFlags);
typedef N_STDCALL_PTR(NI, tyProc__ox3t5iM0vxm1voo9c2CrxLQ) (NI16* lpName, NI32 dwOpenMode, NI32 dwPipeMode, NI32 nMaxInstances, NI32 nOutBufferSize, NI32 nInBufferSize, NI32 nDefaultTimeOut, tyObject_SECURITY_ATTRIBUTES__P4HW9ceaevTBZ5O3kGC8yyw* lpSecurityAttributes);
typedef N_STDCALL_PTR(NI, tyProc__A2Q4AG9aesAd2D8S5BP4y2g) (NI16* lpFileName, NI32 dwDesiredAccess, NI32 dwShareMode, void* lpSecurityAttributes, NI32 dwCreationDisposition, NI32 dwFlagsAndAttributes, NI hTemplateFile);
typedef N_STDCALL_PTR(NI, tyProc__uryidYWkntM7ddjZSyxvyQ) (void);
typedef N_STDCALL_PTR(NI32, tyProc__oew1DfaGl5XhHmnBK0HYXQ) (NI hSourceProcessHandle, NI hSourceHandle, NI hTargetProcessHandle, NI* lpTargetHandle, NI32 dwDesiredAccess, NI32 bInheritHandle, NI32 dwOptions);
typedef N_STDCALL_PTR(NI32, tyProc__P13srMBg9b3d3yEV9aW4NCoA) (NI hObject);
typedef N_STDCALL_PTR(NI, tyProc__zP2zGemcuVRvOUE82f9a0Pw) (NI32 nStdHandle);
struct tyTuple__0hEbbYmlam6yzyW5MFo9cjg {
NCSTRING Field0;
NI Field1;
};
typedef NU8 tyEnum_StringTableMode__G9c4wVDFIzf0xHmQvxso9a9cQ;
struct tyObject_StringTableObj__V5PVrt9bIxZEeV7lfvqqtNg {
  RootObj Sup;
NI counter;
tySequence__xv3aaFd3JCw8NbmALHiezQ* data;
tyEnum_StringTableMode__G9c4wVDFIzf0xHmQvxso9a9cQ mode;
};
struct tyTuple__sPaDkVPSC0MkcoXCxPH9ccA {
NimStringDesc* Field0;
NimStringDesc* Field1;
NIM_BOOL Field2;
};
typedef NimStringDesc* tyArray__nHXaesL0DJZHyVS07ARPRA[1];
typedef N_STDCALL_PTR(NI32, tyProc__hHrNIgHA5HNxhRfMx6QeWg) (NI16* lpApplicationName, NI16* lpCommandLine, tyObject_SECURITY_ATTRIBUTES__P4HW9ceaevTBZ5O3kGC8yyw* lpProcessAttributes, tyObject_SECURITY_ATTRIBUTES__P4HW9ceaevTBZ5O3kGC8yyw* lpThreadAttributes, NI32 bInheritHandles, NI32 dwCreationFlags, NI16* lpEnvironment, NI16* lpCurrentDirectory, tyObject_STARTUPINFO__WGlpKvY9cdd69bAwMQMNLYoQ* lpStartupInfo, tyObject_PROCESS_INFORMATION__rpgAdaffN9b79bo2kEQiFsMg* lpProcessInformation);
typedef NimStringDesc* tyArray__8ZvwQIddfpj2THRVPsFzIQ[1];
typedef N_NIMCALL_PTR(void, tyProc__JQrsH08b4uPTH9cyFPlVOZg) (tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s);
typedef N_NIMCALL_PTR(NIM_BOOL, tyProc__9bmhFrLahRsL2hltfRDVtlQ) (tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s);
typedef N_NIMCALL_PTR(void, tyProc__3svSoGIUJIsHkaBL7q4DAQ) (tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s, NI pos);
typedef N_NIMCALL_PTR(NI, tyProc__xflqkf2D1uVClg70czEDHA) (tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s);
typedef N_NIMCALL_PTR(NI, tyProc__c9c0f59ak4YGQ6neEym8LPKw) (tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s, NimStringDesc** buffer, tyObject_HSlice__EE5dzjqoOrHT6HJhIPXAvA slice);
typedef N_NIMCALL_PTR(NIM_BOOL, tyProc__7jFfqMk9ajToCz6Hv9atCA4A) (tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s, NimStringDesc** line);
typedef N_NIMCALL_PTR(NI, tyProc__2VVzVL9bOnKhj1eZKkf9cEuA) (tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s, void* buffer, NI bufLen);
typedef N_NIMCALL_PTR(void, tyProc__ki6p1QyfOkJLQJ9aw5NI0AQ) (tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s, void* buffer, NI bufLen);
struct tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ {
  RootObj Sup;
tyProc__JQrsH08b4uPTH9cyFPlVOZg closeImpl;
tyProc__9bmhFrLahRsL2hltfRDVtlQ atEndImpl;
tyProc__3svSoGIUJIsHkaBL7q4DAQ setPositionImpl;
tyProc__xflqkf2D1uVClg70czEDHA getPositionImpl;
tyProc__c9c0f59ak4YGQ6neEym8LPKw readDataStrImpl;
tyProc__7jFfqMk9ajToCz6Hv9atCA4A readLineImpl;
tyProc__2VVzVL9bOnKhj1eZKkf9cEuA readDataImpl;
tyProc__2VVzVL9bOnKhj1eZKkf9cEuA peekDataImpl;
tyProc__ki6p1QyfOkJLQJ9aw5NI0AQ writeDataImpl;
tyProc__JQrsH08b4uPTH9cyFPlVOZg flushImpl;
};
struct tyObject_FileHandleStreamcolonObjectType___Uwf6VGZy4JPKquxCiOCalQ {
  tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ Sup;
NI handle;
NIM_BOOL atTheEnd;
};
typedef N_STDCALL_PTR(NI32, tyProc__9ajZYMGL5GqiRFqiCC367oA) (NI hFile, void* buffer, NI32 nNumberOfBytesToRead, NI32* lpNumberOfBytesRead, void* lpOverlapped);
struct tyTuple__XOVT24GHXwqiEj5GCsEGCA {
NimStringDesc* Field0;
NI Field1;
};
typedef N_STDCALL_PTR(NI32, tyProc__FprzxJFfqQdWyyGxiUsmeQ) (NI hHandle, NI32 dwMilliseconds);
typedef N_STDCALL_PTR(NI32, tyProc__KxeGXN001TReCr89ca9c5bng) (NI hProcess, NI32* lpExitCode);
struct tyObject_HSlice__EE5dzjqoOrHT6HJhIPXAvA {
NI a;
NI b;
};

/* section: NIM_merge_SEQ_TYPES */
struct tySequence__xv3aaFd3JCw8NbmALHiezQ {
  TGenericSeq Sup;
  tyTuple__sPaDkVPSC0MkcoXCxPH9ccA data[SEQ_DECL_SIZE];
};

/* section: NIM_merge_PROC_HEADERS */
N_LIB_PRIVATE N_NIMCALL(tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg*, nospstartProcess)(NimStringDesc* command, NimStringDesc* workingDir, NimStringDesc** args, NI argsLen_0, tyObject_StringTableObj__V5PVrt9bIxZEeV7lfvqqtNg* env, tySet_tyEnum_ProcessOption__bnU6W8LhTMnT4JaSWtGlSA options);
static N_INLINE(void, nimZeroMem)(void* p, NI size);
static N_INLINE(void, nimSetMem__zxfKBYntu9cBapkhrCOk1fgmemory)(void* a, int v, NI size);
static N_INLINE(NIM_BOOL*, nimErrorFlag)(void);
N_LIB_PRIVATE N_NIMCALL(void, nimGCvisit)(void* d, NI op);
static N_NIMCALL(void, Marker_tyRef__lw7iqc9cC7bi1oOZOAlJkJA)(void* p, NI op);
N_LIB_PRIVATE N_NIMCALL(void*, newObj)(TNimType* typ, NI size);
N_LIB_PRIVATE N_NIMCALL(void, createPipeHandles__pEMvHI27xToxFqXWQKj9cEg)(NI* rdHandle, NI* wrHandle);
N_LIB_PRIVATE N_NOINLINE(void, raiseOSError__CWyPYlyH9a6rAuZckFyVxPA)(NI32 errorCode, NimStringDesc* additionalInfo);
N_LIB_PRIVATE N_NIMCALL(NI32, osLastError__9bUWNxbcGnToMWA9b79aTXLIw)(void);
N_LIB_PRIVATE N_NIMCALL(void, createAllPipeHandles__kvVk9ctrS43oFgoEN4H4sKQ)(tyObject_STARTUPINFO__WGlpKvY9cdd69bAwMQMNLYoQ* si, NI* stdin_0, NI* stdout_0, NI* stderr_0, NI hash);
N_LIB_PRIVATE N_NIMCALL(NI16*, newWideCString__rFkWhJjmVi0m0Hc9agVEZIQ)(NimStringDesc* s);
static N_INLINE(void, appendString)(NimStringDesc* dest, NimStringDesc* src);
static N_INLINE(void, copyMem__i80o3k0SgEI5gTRCzYdyWAsystem)(void* dest, void* source, NI size);
static N_INLINE(void, nimCopyMem)(void* dest, void* source, NI size);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, nimIntToStr)(NI x);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, rawNewString)(NI space);
N_LIB_PRIVATE N_NIMCALL(NI, myDup__M9bstP9b7HoKMQuZu9aO8zMJQ)(NI h, NI32 inherit);
static N_INLINE(NCSTRING, nimToCStringConv)(NimStringDesc* s);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, buildCommandLine__UDw4GM1E9cGPJc4ElZzKCgg)(NimStringDesc* a, NimStringDesc** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, nospquoteShell)(NimStringDesc* s);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, addChar)(NimStringDesc* s, NIM_CHAR c);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, resizeString)(NimStringDesc* dest, NI addlen);
N_LIB_PRIVATE N_NIMCALL(tyTuple__0hEbbYmlam6yzyW5MFo9cjg, buildEnv__YMjuewsJgp315PbogSaL0w)(tyObject_StringTableObj__V5PVrt9bIxZEeV7lfvqqtNg* env);
N_LIB_PRIVATE N_NOCONV(void*, alloc0Impl__KzdpcuLT9aef9bsiSHlIu9aFg)(NI size);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, cstrToNimstr)(NCSTRING str);
N_LIB_PRIVATE N_NIMCALL(void, echoBinSafe)(NimStringDesc** args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(NI16*, newWideCString__G8rSmf9akUNUzuZWlrfFAmA)(NCSTRING s);
N_LIB_PRIVATE N_NIMCALL(NI16*, newWideCString__K8rR70TBwrP6FNBzDhVVOA)(NCSTRING source, NI L);
static N_INLINE(void, fileClose__l4El30RXaXu69bbUv3QYz2wosproc)(NI h);
static N_INLINE(NIM_BOOL, eqeq___aqip9cmQIuefPKdd25wuEEwsystem)(NCSTRING x, NCSTRING y);
N_LIB_PRIVATE N_NOCONV(void, deallocImpl__SAtZpVrJ3o5FJvSdLQe9auA)(void* p);
N_LIB_PRIVATE N_NIMCALL(void, nospclose)(tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg* p);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, nsuFormatSingleElem)(NimStringDesc* formatstr, NimStringDesc* a);
N_LIB_PRIVATE N_NIMCALL(tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ*, nospoutputStream)(tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg* p);
N_LIB_PRIVATE N_NIMCALL(tyObject_FileHandleStreamcolonObjectType___Uwf6VGZy4JPKquxCiOCalQ*, newFileHandleStream__5UjA3OiL9c38tzpjsTItGlA)(NI handle);
static N_NIMCALL(void, Marker_tyRef__DpwKsN2DZCVvNvk72L1fXA)(void* p, NI op);
N_LIB_PRIVATE N_NIMCALL(void, hsClose__oPbW7ACy7eRAx59c1YwEtTg)(tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, hsAtEnd__9ca7oC9acOy2p6f3mDJ1qajg)(tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s);
N_LIB_PRIVATE N_NIMCALL(NI, hsReadData__Eqw0t3y0Q32IKnOJhWE9bpA)(tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s, void* buffer, NI bufLen);
N_LIB_PRIVATE N_NIMCALL(void, hsWriteData__gg4mJT09aHz5xAJ18sD13Yg)(tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s, void* buffer, NI bufLen);
N_LIB_PRIVATE N_NIMCALL(void, write__egjcKjt8WddLFyjTFl5BAw)(tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s, NimStringDesc* x);
N_LIB_PRIVATE N_NIMCALL(tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ*, nospinputStream)(tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg* p);
N_LIB_PRIVATE N_NIMCALL(void, close__y1KA3B0U09bKtU09am9a9avRYQ)(tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, copyString)(NimStringDesc* src);
N_NIMCALL(NimStringDesc*, rawNewString)(NI cap);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, readLine__9ab9cEjuwJspa9a1pTeb1Z1BQ)(tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s, NimStringDesc** line);
N_LIB_PRIVATE N_NIMCALL(NI, nosppeekExitCode)(tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg* p);

/* section: NIM_merge_DATA */
extern TNimType NTI__ytyiCJqK439aF9cIibuRVpAg_;
N_LIB_PRIVATE TNimType NTI__2rGNQnv9bU4hanI2g3svReg_;
extern TNimType NTI__rR5Bzr1D5krxoo1NcNyeMA_;
extern TNimType NTI__2gIj3gQlK3HZJjQaYCP6ZQ_;
extern TNimType NTI__1G0jiQbe7KwD5ADza5AZaw_;
extern TNimType NTI__nlCscttRCss70IBTyuBqnA_;
extern TNimType NTI__VaVACK0bpYmqIQ0mKcHfQQ_;
N_LIB_PRIVATE TNimType NTI__bnU6W8LhTMnT4JaSWtGlSA_;
N_LIB_PRIVATE TNimType NTI__HlmBYNr2gdAZMXOsuiSZ0A_;
N_LIB_PRIVATE TNimType NTI__lw7iqc9cC7bi1oOZOAlJkJA_;
STRING_LITERAL(TM__HZdw8BhppcTQo8DIK46LSg_6, "\\\\.\\pipe\\stdout", 15);
STRING_LITERAL(TM__HZdw8BhppcTQo8DIK46LSg_7, "\\\\.\\pipe\\stdin", 14);
static NIM_CONST tyTuple__0hEbbYmlam6yzyW5MFo9cjg TM__HZdw8BhppcTQo8DIK46LSg_8 = {NIM_NIL,
((NI) -1)}
;
STRING_LITERAL(TM__HZdw8BhppcTQo8DIK46LSg_9, "=", 1);
STRING_LITERAL(TM__HZdw8BhppcTQo8DIK46LSg_10, "Requested command not found: \'$1\'. OS error:", 44);
extern TNimType NTI__THYguAi9bSgidczZ3ywEIMQ_;
N_LIB_PRIVATE TNimType NTI__Uwf6VGZy4JPKquxCiOCalQ_;
N_LIB_PRIVATE TNimType NTI__DpwKsN2DZCVvNvk72L1fXA_;
STRING_LITERAL(TM__HZdw8BhppcTQo8DIK46LSg_12, "\012", 1);

/* section: NIM_merge_VARS */
extern NIM_BOOL nimInErrorMode__759bT87luu8XGcbkw13FUjA;
extern tyProc__C5kM33gEhlSKPXwfDNHofQ Dl_12796557_;
extern tyProc__mBVOPXmpGfUrrbA9a5K9cMbQ Dl_12798558_;
extern tyProc__ox3t5iM0vxm1voo9c2CrxLQ Dl_12796565_;
extern tyProc__A2Q4AG9aesAd2D8S5BP4y2g Dl_12798565_;
extern tyProc__uryidYWkntM7ddjZSyxvyQ Dl_12798563_;
extern tyProc__oew1DfaGl5XhHmnBK0HYXQ Dl_12798543_;
extern tyProc__P13srMBg9b3d3yEV9aW4NCoA Dl_12796538_;
extern tyProc__zP2zGemcuVRvOUE82f9a0Pw Dl_12796820_;
extern tyProc__hHrNIgHA5HNxhRfMx6QeWg Dl_12796587_;
extern tyProc__9ajZYMGL5GqiRFqiCC367oA Dl_12796541_;
extern tyProc__9ajZYMGL5GqiRFqiCC367oA Dl_12796549_;
extern tyProc__FprzxJFfqQdWyyGxiUsmeQ Dl_12796807_;
extern tyProc__KxeGXN001TReCr89ca9c5bng Dl_12796815_;

/* section: NIM_merge_PROCS */
static N_INLINE(void, nimSetMem__zxfKBYntu9cBapkhrCOk1fgmemory)(void* a, int v, NI size) {
	void* T1_;
	T1_ = (void*)0;
	T1_ = memset(a, v, ((size_t) (size)));
}
static N_INLINE(NIM_BOOL*, nimErrorFlag)(void) {
	NIM_BOOL* result;
	result = (NIM_BOOL*)0;
	result = (&nimInErrorMode__759bT87luu8XGcbkw13FUjA);
	return result;
}
static N_INLINE(void, nimZeroMem)(void* p, NI size) {
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	nimSetMem__zxfKBYntu9cBapkhrCOk1fgmemory(p, ((int) 0), size);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
}
static N_NIMCALL(void, Marker_tyRef__lw7iqc9cC7bi1oOZOAlJkJA)(void* p, NI op) {
	tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg* a;
	a = (tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg*)p;
	nimGCvisit((void*)(*a).inStream, op);
	nimGCvisit((void*)(*a).outStream, op);
	nimGCvisit((void*)(*a).errStream, op);
}
N_LIB_PRIVATE N_NIMCALL(void, createPipeHandles__pEMvHI27xToxFqXWQKj9cEg)(NI* rdHandle, NI* wrHandle) {
	tyObject_SECURITY_ATTRIBUTES__P4HW9ceaevTBZ5O3kGC8yyw sa;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	nimZeroMem((void*)(&sa), sizeof(tyObject_SECURITY_ATTRIBUTES__P4HW9ceaevTBZ5O3kGC8yyw));
	sa.nLength = ((int) 24);
	sa.lpSecurityDescriptor = NIM_NIL;
	sa.bInheritHandle = ((NI32) 1);
	{
		NI32 T3_;
		NI32 T6_;
		T3_ = (NI32)0;
		T3_ = Dl_12796557_(rdHandle, wrHandle, (&sa), ((NI32) 0));
		if (!(T3_ == ((NI32) 0))) goto LA4_;
		T6_ = (NI32)0;
		T6_ = osLastError__9bUWNxbcGnToMWA9b79aTXLIw();
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		raiseOSError__CWyPYlyH9a6rAuZckFyVxPA(T6_, ((NimStringDesc*) NIM_NIL));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	LA4_: ;
	}BeforeRet_: ;
}
static N_INLINE(void, nimCopyMem)(void* dest, void* source, NI size) {
	void* T1_;
	T1_ = (void*)0;
	T1_ = memcpy(dest, source, ((size_t) (size)));
}
static N_INLINE(void, copyMem__i80o3k0SgEI5gTRCzYdyWAsystem)(void* dest, void* source, NI size) {
	nimCopyMem(dest, source, size);
}
static N_INLINE(void, appendString)(NimStringDesc* dest, NimStringDesc* src) {
	{
		void* T5_;
		void* T6_;
		if (!!((src == NIM_NIL))) goto LA3_;
		T5_ = (void*)0;
		T5_ = ((void*) ((&(*dest).data[(*dest).Sup.len])));
		T6_ = (void*)0;
		T6_ = ((void*) ((*src).data));
		copyMem__i80o3k0SgEI5gTRCzYdyWAsystem(T5_, T6_, ((NI) ((NI)((*src).Sup.len + ((NI) 1)))));
		(*dest).Sup.len += (*src).Sup.len;
	}
	LA3_: ;
}
N_LIB_PRIVATE N_NIMCALL(NI, myDup__M9bstP9b7HoKMQuZu9aO8zMJQ)(NI h, NI32 inherit) {
	NI result;
	NI thisProc;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (NI)0;
	thisProc = Dl_12798563_();
	{
		NI32 T3_;
		NI32 T6_;
		T3_ = (NI32)0;
		T3_ = Dl_12798543_(thisProc, h, thisProc, (&result), ((NI32) 0), inherit, ((NI32) 2));
		if (!(T3_ == ((NI32) 0))) goto LA4_;
		T6_ = (NI32)0;
		T6_ = osLastError__9bUWNxbcGnToMWA9b79aTXLIw();
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		raiseOSError__CWyPYlyH9a6rAuZckFyVxPA(T6_, ((NimStringDesc*) NIM_NIL));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	LA4_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, createAllPipeHandles__kvVk9ctrS43oFgoEN4H4sKQ)(tyObject_STARTUPINFO__WGlpKvY9cdd69bAwMQMNLYoQ* si, NI* stdin_0, NI* stdout_0, NI* stderr_0, NI hash) {
	tyObject_SECURITY_ATTRIBUTES__P4HW9ceaevTBZ5O3kGC8yyw sa;
	NI16* pipeOutName;
	NimStringDesc* T1_;
	NimStringDesc* T2_;
	NI16* pipeInName;
	NimStringDesc* T3_;
	NimStringDesc* T4_;
	NI pipeOut;
	NI pipeIn;
	NI T20_;
	NI T26_;
	NI T27_;
	NI32 T28_;
	NI32 T29_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	nimZeroMem((void*)(&sa), sizeof(tyObject_SECURITY_ATTRIBUTES__P4HW9ceaevTBZ5O3kGC8yyw));
	sa.nLength = ((int) 24);
	sa.lpSecurityDescriptor = NIM_NIL;
	sa.bInheritHandle = ((NI32) 1);
	T1_ = (NimStringDesc*)0;
	T2_ = (NimStringDesc*)0;
	T2_ = nimIntToStr(hash);
	T1_ = rawNewString((T2_ ? T2_->Sup.len : 0) + 15);
appendString(T1_, ((NimStringDesc*) &TM__HZdw8BhppcTQo8DIK46LSg_6));
appendString(T1_, T2_);
	pipeOutName = newWideCString__rFkWhJjmVi0m0Hc9agVEZIQ(T1_);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	T3_ = (NimStringDesc*)0;
	T4_ = (NimStringDesc*)0;
	T4_ = nimIntToStr(hash);
	T3_ = rawNewString((T4_ ? T4_->Sup.len : 0) + 14);
appendString(T3_, ((NimStringDesc*) &TM__HZdw8BhppcTQo8DIK46LSg_7));
appendString(T3_, T4_);
	pipeInName = newWideCString__rFkWhJjmVi0m0Hc9agVEZIQ(T3_);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	pipeOut = Dl_12796565_(pipeOutName, ((NI32) -2147483647), ((NI32) 1), ((NI32) 1), ((NI32) 1024), ((NI32) 1024), ((NI32) 0), (&sa));
	{
		NI32 T9_;
		if (!(pipeOut == ((NI) -1))) goto LA7_;
		T9_ = (NI32)0;
		T9_ = osLastError__9bUWNxbcGnToMWA9b79aTXLIw();
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		raiseOSError__CWyPYlyH9a6rAuZckFyVxPA(T9_, ((NimStringDesc*) NIM_NIL));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	LA7_: ;
	pipeIn = Dl_12796565_(pipeInName, ((NI32) -2147483646), ((NI32) 1), ((NI32) 1), ((NI32) 1024), ((NI32) 1024), ((NI32) 0), (&sa));
	{
		NI32 T14_;
		if (!(pipeIn == ((NI) -1))) goto LA12_;
		T14_ = (NI32)0;
		T14_ = osLastError__9bUWNxbcGnToMWA9b79aTXLIw();
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		raiseOSError__CWyPYlyH9a6rAuZckFyVxPA(T14_, ((NimStringDesc*) NIM_NIL));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	LA12_: ;
	(*si).hStdOutput = Dl_12798565_(pipeOutName, ((NI32) 1048578), ((NI32) 0), ((void*) ((&sa))), ((NI32) 3), ((NI32) 128), ((NI) 0));
	{
		NI32 T19_;
		if (!((*si).hStdOutput == ((NI) -1))) goto LA17_;
		T19_ = (NI32)0;
		T19_ = osLastError__9bUWNxbcGnToMWA9b79aTXLIw();
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		raiseOSError__CWyPYlyH9a6rAuZckFyVxPA(T19_, ((NimStringDesc*) NIM_NIL));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	LA17_: ;
	T20_ = (NI)0;
	T20_ = myDup__M9bstP9b7HoKMQuZu9aO8zMJQ((*si).hStdOutput, ((NI32) 1));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	(*si).hStdError = T20_;
	(*si).hStdInput = Dl_12798565_(pipeInName, ((NI32) 1048577), ((NI32) 0), ((void*) ((&sa))), ((NI32) 3), ((NI32) 128), ((NI) 0));
	{
		NI32 T25_;
		if (!((*si).hStdInput == ((NI) -1))) goto LA23_;
		T25_ = (NI32)0;
		T25_ = osLastError__9bUWNxbcGnToMWA9b79aTXLIw();
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		raiseOSError__CWyPYlyH9a6rAuZckFyVxPA(T25_, ((NimStringDesc*) NIM_NIL));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	LA23_: ;
	T26_ = (NI)0;
	T26_ = myDup__M9bstP9b7HoKMQuZu9aO8zMJQ(pipeIn, ((NI32) 0));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	(*stdin_0) = T26_;
	T27_ = (NI)0;
	T27_ = myDup__M9bstP9b7HoKMQuZu9aO8zMJQ(pipeOut, ((NI32) 0));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	(*stdout_0) = T27_;
	T28_ = (NI32)0;
	T28_ = Dl_12796538_(pipeIn);
	(void)(T28_);
	T29_ = (NI32)0;
	T29_ = Dl_12796538_(pipeOut);
	(void)(T29_);
	(*stderr_0) = (*stdout_0);
	}BeforeRet_: ;
}
static N_INLINE(NCSTRING, nimToCStringConv)(NimStringDesc* s) {
	NCSTRING result;
	result = (NCSTRING)0;
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = (s == NIM_NIL);
		if (T3_) goto LA4_;
		T3_ = ((*s).Sup.len == ((NI) 0));
		LA4_: ;
		if (!T3_) goto LA5_;
		result = "";
	}
	goto LA1_;
	LA5_: ;
	{
		result = ((NCSTRING) ((*s).data));
	}
	LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, buildCommandLine__UDw4GM1E9cGPJc4ElZzKCgg)(NimStringDesc* a, NimStringDesc** args, NI argsLen_0) {
	NimStringDesc* result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (NimStringDesc*)0;
	result = nospquoteShell(a);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	{
		NI i;
		NI colontmp_;
		NI res;
		i = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = (argsLen_0-1);
		res = ((NI) 0);
		{
			while (1) {
				NimStringDesc* T4_;
				if (!(res <= colontmp_)) goto LA3;
				i = res;
				result = addChar(result, 32);
				T4_ = (NimStringDesc*)0;
				T4_ = nospquoteShell(args[i]);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				result = resizeString(result, (T4_ ? T4_->Sup.len : 0) + 0);
appendString(result, T4_);
				res += ((NI) 1);
			} LA3: ;
		}
	}
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyTuple__0hEbbYmlam6yzyW5MFo9cjg, buildEnv__YMjuewsJgp315PbogSaL0w)(tyObject_StringTableObj__V5PVrt9bIxZEeV7lfvqqtNg* env) {
	tyTuple__0hEbbYmlam6yzyW5MFo9cjg result;
	NI L;
	NCSTRING str;
	void* T10_;
	nimZeroMem((void*)(&result), sizeof(tyTuple__0hEbbYmlam6yzyW5MFo9cjg));
	L = ((NI) 0);
	{
		NimStringDesc* key;
		NimStringDesc* val;
		key = (NimStringDesc*)0;
		val = (NimStringDesc*)0;
		{
			NI h;
			NI colontmp_;
			NI T3_;
			NI res;
			h = (NI)0;
			colontmp_ = (NI)0;
			T3_ = (((*env).data ? (*env).data->Sup.len : 0)-1);
			colontmp_ = T3_;
			res = ((NI) 0);
			{
				while (1) {
					if (!(res <= colontmp_)) goto LA5;
					h = res;
					{
						if (!(*env).data->data[h].Field2) goto LA8_;
						key = (*env).data->data[h].Field0;
						val = (*env).data->data[h].Field1;
						L += (NI)((NI)((key ? key->Sup.len : 0) + (val ? val->Sup.len : 0)) + ((NI) 2));
					}
					LA8_: ;
					res += ((NI) 1);
				} LA5: ;
			}
		}
	}
	T10_ = (void*)0;
	T10_ = alloc0Impl__KzdpcuLT9aef9bsiSHlIu9aFg(((NI) ((NI)(L + ((NI) 2)))));
	str = ((NCSTRING) (T10_));
	L = ((NI) 0);
	{
		NimStringDesc* key_2;
		NimStringDesc* val_2;
		key_2 = (NimStringDesc*)0;
		val_2 = (NimStringDesc*)0;
		{
			NI h_2;
			NI colontmp__2;
			NI T13_;
			NI res_2;
			h_2 = (NI)0;
			colontmp__2 = (NI)0;
			T13_ = (((*env).data ? (*env).data->Sup.len : 0)-1);
			colontmp__2 = T13_;
			res_2 = ((NI) 0);
			{
				while (1) {
					if (!(res_2 <= colontmp__2)) goto LA15;
					h_2 = res_2;
					{
						NimStringDesc* x;
						NimStringDesc* T20_;
						void* T21_;
						if (!(*env).data->data[h_2].Field2) goto LA18_;
						key_2 = (*env).data->data[h_2].Field0;
						val_2 = (*env).data->data[h_2].Field1;
						T20_ = (NimStringDesc*)0;
						T20_ = rawNewString((key_2 ? key_2->Sup.len : 0) + (val_2 ? val_2->Sup.len : 0) + 1);
appendString(T20_, key_2);
appendString(T20_, ((NimStringDesc*) &TM__HZdw8BhppcTQo8DIK46LSg_9));
appendString(T20_, val_2);
						x = T20_;
						T21_ = (void*)0;
						T21_ = ((void*) (nimToCStringConv(x)));
						copyMem__i80o3k0SgEI5gTRCzYdyWAsystem(((void*) ((&str[L]))), T21_, ((NI) ((NI)((x ? x->Sup.len : 0) + ((NI) 1)))));
						L += (NI)((x ? x->Sup.len : 0) + ((NI) 1));
					}
					LA18_: ;
					res_2 += ((NI) 1);
				} LA15: ;
			}
		}
	}
	result.Field0 = str;
	result.Field1 = L;
	return result;
}
static N_INLINE(void, fileClose__l4El30RXaXu69bbUv3QYz2wosproc)(NI h) {
	{
		NI32 T5_;
		if (!(((NI) 4) < h)) goto LA3_;
		T5_ = (NI32)0;
		T5_ = Dl_12796538_(h);
		(void)(T5_);
	}
	LA3_: ;
}
static N_INLINE(NIM_BOOL, eqeq___aqip9cmQIuefPKdd25wuEEwsystem)(NCSTRING x, NCSTRING y) {
	NIM_BOOL result;
	result = (NIM_BOOL)0;
	{
		if (!(((void*) (x)) == ((void*) (y)))) goto LA3_;
		result = NIM_TRUE;
	}
	goto LA1_;
	LA3_: ;
	{
		NIM_BOOL T6_;
		T6_ = (NIM_BOOL)0;
		T6_ = (x == 0);
		if (T6_) goto LA7_;
		T6_ = (y == 0);
		LA7_: ;
		if (!T6_) goto LA8_;
		result = NIM_FALSE;
	}
	goto LA1_;
	LA8_: ;
	{
		int T11_;
		T11_ = (int)0;
		T11_ = strcmp(x, y);
		result = (T11_ == ((NI32) 0));
	}
	LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, nospclose)(tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg* p) {
	NI32 T8_;
	NI32 T9_;
	{
		NI32 T5_;
		NI32 T6_;
		NI32 T7_;
		if (!!((((*p).options &(1U<<((NU)(((tyEnum_ProcessOption__bnU6W8LhTMnT4JaSWtGlSA) 4))&7U)))!=0))) goto LA3_;
		T5_ = (NI32)0;
		T5_ = Dl_12796538_(((NI) ((*p).inHandle)));
		(void)(T5_);
		T6_ = (NI32)0;
		T6_ = Dl_12796538_(((NI) ((*p).outHandle)));
		(void)(T6_);
		T7_ = (NI32)0;
		T7_ = Dl_12796538_(((NI) ((*p).errHandle)));
		(void)(T7_);
	}
	LA3_: ;
	T8_ = (NI32)0;
	T8_ = Dl_12796538_((*p).fThreadHandle);
	(void)(T8_);
	T9_ = (NI32)0;
	T9_ = Dl_12796538_((*p).fProcessHandle);
	(void)(T9_);
}
N_LIB_PRIVATE N_NIMCALL(tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg*, nospstartProcess)(NimStringDesc* command, NimStringDesc* workingDir, NimStringDesc** args, NI argsLen_0, tyObject_StringTableObj__V5PVrt9bIxZEeV7lfvqqtNg* env, tySet_tyEnum_ProcessOption__bnU6W8LhTMnT4JaSWtGlSA options) {
	tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg* result;
	tyObject_STARTUPINFO__WGlpKvY9cdd69bAwMQMNLYoQ si;
	tyObject_PROCESS_INFORMATION__rpgAdaffN9b79bo2kEQiFsMg procInfo;
	NI success;
	NI hi;
	NI ho;
	NI he;
	NCSTRING cmdl;
	NimStringDesc* cmdRoot;
	NCSTRING wd;
	tyTuple__0hEbbYmlam6yzyW5MFo9cjg e;
	NI16* tmp;
	NI16* ee;
	NI16* wwd;
	NI32 flags;
	NI32 T61_;
	NI32 lastError;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg*)0;
	nimZeroMem((void*)(&si), sizeof(tyObject_STARTUPINFO__WGlpKvY9cdd69bAwMQMNLYoQ));
	nimZeroMem((void*)(&procInfo), sizeof(tyObject_PROCESS_INFORMATION__rpgAdaffN9b79bo2kEQiFsMg));
	success = (NI)0;
	hi = (NI)0;
	ho = (NI)0;
	he = (NI)0;
	result = (tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg*) newObj((&NTI__lw7iqc9cC7bi1oOZOAlJkJA_), sizeof(tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg));
	(*result).Sup.m_type = (&NTI__2rGNQnv9bU4hanI2g3svReg_);
	(*result).options = options;
	(*result).exitFlag = NIM_TRUE;
	si.cb = ((int) 104);
	{
		if (!!(((options &(1U<<((NU)(((tyEnum_ProcessOption__bnU6W8LhTMnT4JaSWtGlSA) 4))&7U)))!=0))) goto LA3_;
		si.dwFlags = ((NI32) 256);
		{
			if (!!(((options &(1U<<((NU)(((tyEnum_ProcessOption__bnU6W8LhTMnT4JaSWtGlSA) 5))&7U)))!=0))) goto LA7_;
			createPipeHandles__pEMvHI27xToxFqXWQKj9cEg((&si.hStdInput), (&hi));
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			createPipeHandles__pEMvHI27xToxFqXWQKj9cEg((&ho), (&si.hStdOutput));
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			{
				if (!((options &(1U<<((NU)(((tyEnum_ProcessOption__bnU6W8LhTMnT4JaSWtGlSA) 3))&7U)))!=0)) goto LA11_;
				si.hStdError = si.hStdOutput;
				he = ho;
			}
			goto LA9_;
			LA11_: ;
			{
				createPipeHandles__pEMvHI27xToxFqXWQKj9cEg((&he), (&si.hStdError));
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				{
					NI32 T16_;
					NI32 T19_;
					T16_ = (NI32)0;
					T16_ = Dl_12798558_(he, ((NI32) 1), ((NI32) 0));
					if (!(T16_ == ((NI32) 0))) goto LA17_;
					T19_ = (NI32)0;
					T19_ = osLastError__9bUWNxbcGnToMWA9b79aTXLIw();
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					raiseOSError__CWyPYlyH9a6rAuZckFyVxPA(T19_, ((NimStringDesc*) NIM_NIL));
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				}
				LA17_: ;
			}
			LA9_: ;
			{
				NI32 T22_;
				NI32 T25_;
				T22_ = (NI32)0;
				T22_ = Dl_12798558_(hi, ((NI32) 1), ((NI32) 0));
				if (!(T22_ == ((NI32) 0))) goto LA23_;
				T25_ = (NI32)0;
				T25_ = osLastError__9bUWNxbcGnToMWA9b79aTXLIw();
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				raiseOSError__CWyPYlyH9a6rAuZckFyVxPA(T25_, ((NimStringDesc*) NIM_NIL));
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			}
			LA23_: ;
			{
				NI32 T28_;
				NI32 T31_;
				T28_ = (NI32)0;
				T28_ = Dl_12798558_(ho, ((NI32) 1), ((NI32) 0));
				if (!(T28_ == ((NI32) 0))) goto LA29_;
				T31_ = (NI32)0;
				T31_ = osLastError__9bUWNxbcGnToMWA9b79aTXLIw();
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				raiseOSError__CWyPYlyH9a6rAuZckFyVxPA(T31_, ((NimStringDesc*) NIM_NIL));
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			}
			LA29_: ;
		}
		goto LA5_;
		LA7_: ;
		{
			createAllPipeHandles__kvVk9ctrS43oFgoEN4H4sKQ((&si), (&hi), (&ho), (&he), ((NI) (result)));
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		LA5_: ;
		(*result).inHandle = ((int) (hi));
		(*result).outHandle = ((int) (ho));
		(*result).errHandle = ((int) (he));
	}
	goto LA1_;
	LA3_: ;
	{
		si.hStdError = Dl_12796820_(((NI32) -12));
		si.hStdInput = Dl_12796820_(((NI32) -10));
		si.hStdOutput = Dl_12796820_(((NI32) -11));
		(*result).inHandle = ((int) (si.hStdInput));
		(*result).outHandle = ((int) (si.hStdOutput));
		(*result).errHandle = ((int) (si.hStdError));
	}
	LA1_: ;
	cmdl = (NCSTRING)0;
	cmdRoot = (NimStringDesc*)0;
	{
		if (!((options &(1U<<((NU)(((tyEnum_ProcessOption__bnU6W8LhTMnT4JaSWtGlSA) 2))&7U)))!=0)) goto LA36_;
		cmdl = nimToCStringConv(command);
	}
	goto LA34_;
	LA36_: ;
	{
		cmdRoot = buildCommandLine__UDw4GM1E9cGPJc4ElZzKCgg(command, args, argsLen_0);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		cmdl = nimToCStringConv(cmdRoot);
	}
	LA34_: ;
	wd = NIM_NIL;
	e = TM__HZdw8BhppcTQo8DIK46LSg_8;
	{
		if (!(((NI) 0) < (workingDir ? workingDir->Sup.len : 0))) goto LA41_;
		wd = nimToCStringConv(workingDir);
	}
	LA41_: ;
	{
		if (!!((env == NIM_NIL))) goto LA45_;
		e = buildEnv__YMjuewsJgp315PbogSaL0w(env);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	LA45_: ;
	{
		tyArray__nHXaesL0DJZHyVS07ARPRA T51_;
		if (!((options &(1U<<((NU)(((tyEnum_ProcessOption__bnU6W8LhTMnT4JaSWtGlSA) 0))&7U)))!=0)) goto LA49_;
		nimZeroMem((void*)T51_, sizeof(tyArray__nHXaesL0DJZHyVS07ARPRA));
		T51_[0] = cstrToNimstr(cmdl);
		echoBinSafe(T51_, 1);
	}
	LA49_: ;
	tmp = newWideCString__G8rSmf9akUNUzuZWlrfFAmA(cmdl);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	{
		if (!(e.Field0 == 0)) goto LA54_;
		ee = newWideCString__G8rSmf9akUNUzuZWlrfFAmA(NIM_NIL);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	goto LA52_;
	LA54_: ;
	{
		ee = newWideCString__K8rR70TBwrP6FNBzDhVVOA(e.Field0, e.Field1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	LA52_: ;
	wwd = newWideCString__G8rSmf9akUNUzuZWlrfFAmA(wd);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	flags = ((NI32) 1056);
	{
		if (!((options &(1U<<((NU)(((tyEnum_ProcessOption__bnU6W8LhTMnT4JaSWtGlSA) 6))&7U)))!=0)) goto LA59_;
		flags = (NI32)(flags | ((NI32) 134217728));
	}
	LA59_: ;
	T61_ = (NI32)0;
	T61_ = Dl_12796587_(NIM_NIL, tmp, NIM_NIL, NIM_NIL, ((NI32) 1), flags, ee, wwd, (&si), (&procInfo));
	success = ((NI) (T61_));
	lastError = osLastError__9bUWNxbcGnToMWA9b79aTXLIw();
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	{
		if (!!(((options &(1U<<((NU)(((tyEnum_ProcessOption__bnU6W8LhTMnT4JaSWtGlSA) 4))&7U)))!=0))) goto LA64_;
		fileClose__l4El30RXaXu69bbUv3QYz2wosproc(si.hStdInput);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		fileClose__l4El30RXaXu69bbUv3QYz2wosproc(si.hStdOutput);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		{
			if (!!(((options &(1U<<((NU)(((tyEnum_ProcessOption__bnU6W8LhTMnT4JaSWtGlSA) 3))&7U)))!=0))) goto LA68_;
			fileClose__l4El30RXaXu69bbUv3QYz2wosproc(si.hStdError);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		LA68_: ;
	}
	LA64_: ;
	{
		NIM_BOOL T72_;
		T72_ = (NIM_BOOL)0;
		T72_ = eqeq___aqip9cmQIuefPKdd25wuEEwsystem(e.Field0, NIM_NIL);
		if (!!(T72_)) goto LA73_;
		deallocImpl__SAtZpVrJ3o5FJvSdLQe9auA(((void*) (e.Field0)));
	}
	LA73_: ;
	{
		if (!(success == ((NI) 0))) goto LA77_;
		{
			if (!(((*result).options &(1U<<((NU)(((tyEnum_ProcessOption__bnU6W8LhTMnT4JaSWtGlSA) 5))&7U)))!=0)) goto LA81_;
			nospclose(result);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		LA81_: ;
		{
			NimStringDesc* T87_;
			if (!(((NI) (lastError)) == ((NI) 87) || ((NI) (lastError)) == ((NI) 2))) goto LA85_;
			T87_ = (NimStringDesc*)0;
			T87_ = nsuFormatSingleElem(((NimStringDesc*) &TM__HZdw8BhppcTQo8DIK46LSg_10), command);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			raiseOSError__CWyPYlyH9a6rAuZckFyVxPA(lastError, T87_);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		goto LA83_;
		LA85_: ;
		{
			raiseOSError__CWyPYlyH9a6rAuZckFyVxPA(lastError, command);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		LA83_: ;
	}
	LA77_: ;
	(*result).fProcessHandle = procInfo.hProcess;
	(*result).fThreadHandle = procInfo.hThread;
	(*result).id = ((NI) (procInfo.dwProcessId));
	(*result).exitFlag = NIM_FALSE;
	}BeforeRet_: ;
	return result;
}
static N_NIMCALL(void, Marker_tyRef__DpwKsN2DZCVvNvk72L1fXA)(void* p, NI op) {
	tyObject_FileHandleStreamcolonObjectType___Uwf6VGZy4JPKquxCiOCalQ* a;
	a = (tyObject_FileHandleStreamcolonObjectType___Uwf6VGZy4JPKquxCiOCalQ*)p;
}
N_LIB_PRIVATE N_NIMCALL(void, hsClose__oPbW7ACy7eRAx59c1YwEtTg)(tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s) {
	NI32 T1_;
	T1_ = (NI32)0;
	T1_ = Dl_12796538_((*((tyObject_FileHandleStreamcolonObjectType___Uwf6VGZy4JPKquxCiOCalQ*) (s))).handle);
	(void)(T1_);
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, hsAtEnd__9ca7oC9acOy2p6f3mDJ1qajg)(tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s) {
	NIM_BOOL result;
{	result = (NIM_BOOL)0;
	result = (*((tyObject_FileHandleStreamcolonObjectType___Uwf6VGZy4JPKquxCiOCalQ*) (s))).atTheEnd;
	goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NI, hsReadData__Eqw0t3y0Q32IKnOJhWE9bpA)(tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s, void* buffer, NI bufLen) {
	NI result;
	tyObject_FileHandleStreamcolonObjectType___Uwf6VGZy4JPKquxCiOCalQ* s_2;
	NI32 br;
	NI32 a;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (NI)0;
	s_2 = ((tyObject_FileHandleStreamcolonObjectType___Uwf6VGZy4JPKquxCiOCalQ*) (s));
	{
		if (!(*s_2).atTheEnd) goto LA3_;
		result = ((NI) 0);
		goto BeforeRet_;
	}
	LA3_: ;
	br = (NI32)0;
	a = Dl_12796541_((*s_2).handle, buffer, ((int) (bufLen)), (&br), NIM_NIL);
	{
		NIM_BOOL T7_;
		NI32 T11_;
		T7_ = (NIM_BOOL)0;
		T7_ = (a == ((NI32) 0));
		if (!(T7_)) goto LA8_;
		T7_ = !((br == ((NI32) 0)));
		LA8_: ;
		if (!T7_) goto LA9_;
		T11_ = (NI32)0;
		T11_ = osLastError__9bUWNxbcGnToMWA9b79aTXLIw();
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		raiseOSError__CWyPYlyH9a6rAuZckFyVxPA(T11_, ((NimStringDesc*) NIM_NIL));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	LA9_: ;
	(*s_2).atTheEnd = (br == ((NI32) 0));
	result = ((NI) (br));
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, hsWriteData__gg4mJT09aHz5xAJ18sD13Yg)(tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s, void* buffer, NI bufLen) {
	tyObject_FileHandleStreamcolonObjectType___Uwf6VGZy4JPKquxCiOCalQ* s_2;
	NI32 bytesWritten;
	NI32 a;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	s_2 = ((tyObject_FileHandleStreamcolonObjectType___Uwf6VGZy4JPKquxCiOCalQ*) (s));
	bytesWritten = (NI32)0;
	a = Dl_12796549_((*s_2).handle, buffer, ((int) (bufLen)), (&bytesWritten), NIM_NIL);
	{
		NI32 T5_;
		if (!(a == ((NI32) 0))) goto LA3_;
		T5_ = (NI32)0;
		T5_ = osLastError__9bUWNxbcGnToMWA9b79aTXLIw();
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		raiseOSError__CWyPYlyH9a6rAuZckFyVxPA(T5_, ((NimStringDesc*) NIM_NIL));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	LA3_: ;
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_FileHandleStreamcolonObjectType___Uwf6VGZy4JPKquxCiOCalQ*, newFileHandleStream__5UjA3OiL9c38tzpjsTItGlA)(NI handle) {
	tyObject_FileHandleStreamcolonObjectType___Uwf6VGZy4JPKquxCiOCalQ* result;
	result = (tyObject_FileHandleStreamcolonObjectType___Uwf6VGZy4JPKquxCiOCalQ*)0;
	result = (tyObject_FileHandleStreamcolonObjectType___Uwf6VGZy4JPKquxCiOCalQ*) newObj((&NTI__DpwKsN2DZCVvNvk72L1fXA_), sizeof(tyObject_FileHandleStreamcolonObjectType___Uwf6VGZy4JPKquxCiOCalQ));
	(*result).Sup.Sup.m_type = (&NTI__Uwf6VGZy4JPKquxCiOCalQ_);
	(*result).handle = handle;
	(*result).Sup.closeImpl = hsClose__oPbW7ACy7eRAx59c1YwEtTg;
	(*result).Sup.atEndImpl = hsAtEnd__9ca7oC9acOy2p6f3mDJ1qajg;
	(*result).Sup.readDataImpl = hsReadData__Eqw0t3y0Q32IKnOJhWE9bpA;
	(*result).Sup.writeDataImpl = hsWriteData__gg4mJT09aHz5xAJ18sD13Yg;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ*, nospoutputStream)(tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg* p) {
	tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ*)0;
	{
		tyObject_FileHandleStreamcolonObjectType___Uwf6VGZy4JPKquxCiOCalQ* T5_;
		if (!((*p).outStream == NIM_NIL)) goto LA3_;
		T5_ = (tyObject_FileHandleStreamcolonObjectType___Uwf6VGZy4JPKquxCiOCalQ*)0;
		T5_ = newFileHandleStream__5UjA3OiL9c38tzpjsTItGlA(((NI) ((*p).outHandle)));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		(*p).outStream = &T5_->Sup;
	}
	LA3_: ;
	result = (*p).outStream;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ*, nospinputStream)(tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg* p) {
	tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ*)0;
	{
		tyObject_FileHandleStreamcolonObjectType___Uwf6VGZy4JPKquxCiOCalQ* T5_;
		if (!((*p).inStream == NIM_NIL)) goto LA3_;
		T5_ = (tyObject_FileHandleStreamcolonObjectType___Uwf6VGZy4JPKquxCiOCalQ*)0;
		T5_ = newFileHandleStream__5UjA3OiL9c38tzpjsTItGlA(((NI) ((*p).inHandle)));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		(*p).inStream = &T5_->Sup;
	}
	LA3_: ;
	result = (*p).inStream;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NI, nosppeekExitCode)(tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg* p) {
	NI result;
	NIM_BOOL b;
	NI32 T5_;
{	result = (NI)0;
	{
		if (!(*p).exitFlag) goto LA3_;
		result = ((NI) ((*p).exitStatus));
		goto BeforeRet_;
	}
	LA3_: ;
	result = ((NI) -1);
	T5_ = (NI32)0;
	T5_ = Dl_12796807_((*p).fProcessHandle, ((NI32) 0));
	b = (T5_ == ((NI32) 258));
	{
		NI32 status;
		NI32 T10_;
		NI32 T11_;
		NI32 T12_;
		if (!!(b)) goto LA8_;
		status = (NI32)0;
		T10_ = (NI32)0;
		T10_ = Dl_12796815_((*p).fProcessHandle, (&status));
		(void)(T10_);
		(*p).exitFlag = NIM_TRUE;
		(*p).exitStatus = status;
		T11_ = (NI32)0;
		T11_ = Dl_12796538_((*p).fThreadHandle);
		(void)(T11_);
		T12_ = (NI32)0;
		T12_ = Dl_12796538_((*p).fProcessHandle);
		(void)(T12_);
		result = ((NI) (status));
	}
	LA8_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, execCmdEx__130zQ9a9cS3YNDwoh0G9at3bw)(NimStringDesc* command, tySet_tyEnum_ProcessOption__bnU6W8LhTMnT4JaSWtGlSA options, tyObject_StringTableObj__V5PVrt9bIxZEeV7lfvqqtNg* env, NimStringDesc* workingDir, NimStringDesc* input, tyTuple__XOVT24GHXwqiEj5GCsEGCA* Result) {
	tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg* p;
	tyArray__8ZvwQIddfpj2THRVPsFzIQ T1_;
	tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* outp;
	tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* T7_;
	NimStringDesc* colontmp_;
	NI colontmp__2;
	NimStringDesc* line;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	nimZeroMem((void*)T1_, sizeof(tyArray__8ZvwQIddfpj2THRVPsFzIQ));
	p = nospstartProcess(command, workingDir, T1_, 0, env, (options | 4));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	outp = nospoutputStream(p);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	{
		tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* T6_;
		if (!(((NI) 0) < (input ? input->Sup.len : 0))) goto LA4_;
		T6_ = (tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ*)0;
		T6_ = nospinputStream(p);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		write__egjcKjt8WddLFyjTFl5BAw(T6_, input);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	LA4_: ;
	T7_ = (tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ*)0;
	T7_ = nospinputStream(p);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	close__y1KA3B0U09bKtU09am9a9avRYQ(T7_);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	colontmp_ = ((NimStringDesc*) NIM_NIL);
	colontmp__2 = ((NI) -1);
	(*Result).Field0 = copyString(colontmp_);
	(*Result).Field1 = colontmp__2;
	line = rawNewString(((NI) 120));
	{
		while (1) {
			{
				NIM_BOOL T12_;
				T12_ = (NIM_BOOL)0;
				T12_ = readLine__9ab9cEjuwJspa9a1pTeb1Z1BQ(outp, (&line));
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				if (!T12_) goto LA13_;
				(*Result).Field0 = resizeString((*Result).Field0, (line ? line->Sup.len : 0) + 0);
appendString((*Result).Field0, line);
				(*Result).Field0 = resizeString((*Result).Field0, 1);
appendString((*Result).Field0, ((NimStringDesc*) &TM__HZdw8BhppcTQo8DIK46LSg_12));
			}
			goto LA10_;
			LA13_: ;
			{
				NI T16_;
				T16_ = (NI)0;
				T16_ = nosppeekExitCode(p);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				(*Result).Field1 = T16_;
				{
					if (!!(((*Result).Field1 == ((NI) -1)))) goto LA19_;
					goto LA8;
				}
				LA19_: ;
			}
			LA10_: ;
		}
	} LA8: ;
	nospclose(p);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, stdlib_osprocDatInit000)(void) {

/* section: NIM_merge_TYPE_INIT1 */
static TNimNode* TM__HZdw8BhppcTQo8DIK46LSg_2_12[12];
static TNimNode* TM__HZdw8BhppcTQo8DIK46LSg_3_7[7];
NI TM__HZdw8BhppcTQo8DIK46LSg_5;
static char* NIM_CONST TM__HZdw8BhppcTQo8DIK46LSg_4[7] = {
"poEchoCmd", 
"poUsePath", 
"poEvalCommand", 
"poStdErrToStdOut", 
"poParentStreams", 
"poInteractive", 
"poDaemon"};
static TNimNode* TM__HZdw8BhppcTQo8DIK46LSg_11_2[2];
static TNimNode TM__HZdw8BhppcTQo8DIK46LSg_0[25];

/* section: NIM_merge_TYPE_INIT3 */
NTI__2rGNQnv9bU4hanI2g3svReg_.size = sizeof(tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg);
NTI__2rGNQnv9bU4hanI2g3svReg_.align = NIM_ALIGNOF(tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg);
NTI__2rGNQnv9bU4hanI2g3svReg_.kind = 17;
NTI__2rGNQnv9bU4hanI2g3svReg_.base = (&NTI__ytyiCJqK439aF9cIibuRVpAg_);
TM__HZdw8BhppcTQo8DIK46LSg_2_12[0] = &TM__HZdw8BhppcTQo8DIK46LSg_0[1];
TM__HZdw8BhppcTQo8DIK46LSg_0[1].kind = 1;
TM__HZdw8BhppcTQo8DIK46LSg_0[1].offset = offsetof(tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg, fProcessHandle);
TM__HZdw8BhppcTQo8DIK46LSg_0[1].typ = (&NTI__rR5Bzr1D5krxoo1NcNyeMA_);
TM__HZdw8BhppcTQo8DIK46LSg_0[1].name = "fProcessHandle";
TM__HZdw8BhppcTQo8DIK46LSg_2_12[1] = &TM__HZdw8BhppcTQo8DIK46LSg_0[2];
TM__HZdw8BhppcTQo8DIK46LSg_0[2].kind = 1;
TM__HZdw8BhppcTQo8DIK46LSg_0[2].offset = offsetof(tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg, fThreadHandle);
TM__HZdw8BhppcTQo8DIK46LSg_0[2].typ = (&NTI__rR5Bzr1D5krxoo1NcNyeMA_);
TM__HZdw8BhppcTQo8DIK46LSg_0[2].name = "fThreadHandle";
TM__HZdw8BhppcTQo8DIK46LSg_2_12[2] = &TM__HZdw8BhppcTQo8DIK46LSg_0[3];
TM__HZdw8BhppcTQo8DIK46LSg_0[3].kind = 1;
TM__HZdw8BhppcTQo8DIK46LSg_0[3].offset = offsetof(tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg, inHandle);
TM__HZdw8BhppcTQo8DIK46LSg_0[3].typ = (&NTI__2gIj3gQlK3HZJjQaYCP6ZQ_);
TM__HZdw8BhppcTQo8DIK46LSg_0[3].name = "inHandle";
TM__HZdw8BhppcTQo8DIK46LSg_2_12[3] = &TM__HZdw8BhppcTQo8DIK46LSg_0[4];
TM__HZdw8BhppcTQo8DIK46LSg_0[4].kind = 1;
TM__HZdw8BhppcTQo8DIK46LSg_0[4].offset = offsetof(tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg, outHandle);
TM__HZdw8BhppcTQo8DIK46LSg_0[4].typ = (&NTI__2gIj3gQlK3HZJjQaYCP6ZQ_);
TM__HZdw8BhppcTQo8DIK46LSg_0[4].name = "outHandle";
TM__HZdw8BhppcTQo8DIK46LSg_2_12[4] = &TM__HZdw8BhppcTQo8DIK46LSg_0[5];
TM__HZdw8BhppcTQo8DIK46LSg_0[5].kind = 1;
TM__HZdw8BhppcTQo8DIK46LSg_0[5].offset = offsetof(tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg, errHandle);
TM__HZdw8BhppcTQo8DIK46LSg_0[5].typ = (&NTI__2gIj3gQlK3HZJjQaYCP6ZQ_);
TM__HZdw8BhppcTQo8DIK46LSg_0[5].name = "errHandle";
TM__HZdw8BhppcTQo8DIK46LSg_2_12[5] = &TM__HZdw8BhppcTQo8DIK46LSg_0[6];
TM__HZdw8BhppcTQo8DIK46LSg_0[6].kind = 1;
TM__HZdw8BhppcTQo8DIK46LSg_0[6].offset = offsetof(tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg, id);
TM__HZdw8BhppcTQo8DIK46LSg_0[6].typ = (&NTI__rR5Bzr1D5krxoo1NcNyeMA_);
TM__HZdw8BhppcTQo8DIK46LSg_0[6].name = "id";
TM__HZdw8BhppcTQo8DIK46LSg_2_12[6] = &TM__HZdw8BhppcTQo8DIK46LSg_0[7];
TM__HZdw8BhppcTQo8DIK46LSg_0[7].kind = 1;
TM__HZdw8BhppcTQo8DIK46LSg_0[7].offset = offsetof(tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg, inStream);
TM__HZdw8BhppcTQo8DIK46LSg_0[7].typ = (&NTI__1G0jiQbe7KwD5ADza5AZaw_);
TM__HZdw8BhppcTQo8DIK46LSg_0[7].name = "inStream";
TM__HZdw8BhppcTQo8DIK46LSg_2_12[7] = &TM__HZdw8BhppcTQo8DIK46LSg_0[8];
TM__HZdw8BhppcTQo8DIK46LSg_0[8].kind = 1;
TM__HZdw8BhppcTQo8DIK46LSg_0[8].offset = offsetof(tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg, outStream);
TM__HZdw8BhppcTQo8DIK46LSg_0[8].typ = (&NTI__1G0jiQbe7KwD5ADza5AZaw_);
TM__HZdw8BhppcTQo8DIK46LSg_0[8].name = "outStream";
TM__HZdw8BhppcTQo8DIK46LSg_2_12[8] = &TM__HZdw8BhppcTQo8DIK46LSg_0[9];
TM__HZdw8BhppcTQo8DIK46LSg_0[9].kind = 1;
TM__HZdw8BhppcTQo8DIK46LSg_0[9].offset = offsetof(tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg, errStream);
TM__HZdw8BhppcTQo8DIK46LSg_0[9].typ = (&NTI__1G0jiQbe7KwD5ADza5AZaw_);
TM__HZdw8BhppcTQo8DIK46LSg_0[9].name = "errStream";
TM__HZdw8BhppcTQo8DIK46LSg_2_12[9] = &TM__HZdw8BhppcTQo8DIK46LSg_0[10];
TM__HZdw8BhppcTQo8DIK46LSg_0[10].kind = 1;
TM__HZdw8BhppcTQo8DIK46LSg_0[10].offset = offsetof(tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg, exitStatus);
TM__HZdw8BhppcTQo8DIK46LSg_0[10].typ = (&NTI__nlCscttRCss70IBTyuBqnA_);
TM__HZdw8BhppcTQo8DIK46LSg_0[10].name = "exitStatus";
TM__HZdw8BhppcTQo8DIK46LSg_2_12[10] = &TM__HZdw8BhppcTQo8DIK46LSg_0[11];
TM__HZdw8BhppcTQo8DIK46LSg_0[11].kind = 1;
TM__HZdw8BhppcTQo8DIK46LSg_0[11].offset = offsetof(tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg, exitFlag);
TM__HZdw8BhppcTQo8DIK46LSg_0[11].typ = (&NTI__VaVACK0bpYmqIQ0mKcHfQQ_);
TM__HZdw8BhppcTQo8DIK46LSg_0[11].name = "exitFlag";
TM__HZdw8BhppcTQo8DIK46LSg_2_12[11] = &TM__HZdw8BhppcTQo8DIK46LSg_0[12];
NTI__bnU6W8LhTMnT4JaSWtGlSA_.size = sizeof(tyEnum_ProcessOption__bnU6W8LhTMnT4JaSWtGlSA);
NTI__bnU6W8LhTMnT4JaSWtGlSA_.align = NIM_ALIGNOF(tyEnum_ProcessOption__bnU6W8LhTMnT4JaSWtGlSA);
NTI__bnU6W8LhTMnT4JaSWtGlSA_.kind = 14;
NTI__bnU6W8LhTMnT4JaSWtGlSA_.base = 0;
NTI__bnU6W8LhTMnT4JaSWtGlSA_.flags = 3;
for (TM__HZdw8BhppcTQo8DIK46LSg_5 = 0; TM__HZdw8BhppcTQo8DIK46LSg_5 < 7; TM__HZdw8BhppcTQo8DIK46LSg_5++) {
TM__HZdw8BhppcTQo8DIK46LSg_0[TM__HZdw8BhppcTQo8DIK46LSg_5+13].kind = 1;
TM__HZdw8BhppcTQo8DIK46LSg_0[TM__HZdw8BhppcTQo8DIK46LSg_5+13].offset = TM__HZdw8BhppcTQo8DIK46LSg_5;
TM__HZdw8BhppcTQo8DIK46LSg_0[TM__HZdw8BhppcTQo8DIK46LSg_5+13].name = TM__HZdw8BhppcTQo8DIK46LSg_4[TM__HZdw8BhppcTQo8DIK46LSg_5];
TM__HZdw8BhppcTQo8DIK46LSg_3_7[TM__HZdw8BhppcTQo8DIK46LSg_5] = &TM__HZdw8BhppcTQo8DIK46LSg_0[TM__HZdw8BhppcTQo8DIK46LSg_5+13];
}
TM__HZdw8BhppcTQo8DIK46LSg_0[20].len = 7; TM__HZdw8BhppcTQo8DIK46LSg_0[20].kind = 2; TM__HZdw8BhppcTQo8DIK46LSg_0[20].sons = &TM__HZdw8BhppcTQo8DIK46LSg_3_7[0];
NTI__bnU6W8LhTMnT4JaSWtGlSA_.node = &TM__HZdw8BhppcTQo8DIK46LSg_0[20];
NTI__HlmBYNr2gdAZMXOsuiSZ0A_.size = sizeof(tySet_tyEnum_ProcessOption__bnU6W8LhTMnT4JaSWtGlSA);
NTI__HlmBYNr2gdAZMXOsuiSZ0A_.align = NIM_ALIGNOF(tySet_tyEnum_ProcessOption__bnU6W8LhTMnT4JaSWtGlSA);
NTI__HlmBYNr2gdAZMXOsuiSZ0A_.kind = 19;
NTI__HlmBYNr2gdAZMXOsuiSZ0A_.base = (&NTI__bnU6W8LhTMnT4JaSWtGlSA_);
NTI__HlmBYNr2gdAZMXOsuiSZ0A_.flags = 3;
TM__HZdw8BhppcTQo8DIK46LSg_0[21].len = 0; TM__HZdw8BhppcTQo8DIK46LSg_0[21].kind = 0;
NTI__HlmBYNr2gdAZMXOsuiSZ0A_.node = &TM__HZdw8BhppcTQo8DIK46LSg_0[21];
TM__HZdw8BhppcTQo8DIK46LSg_0[12].kind = 1;
TM__HZdw8BhppcTQo8DIK46LSg_0[12].offset = offsetof(tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg, options);
TM__HZdw8BhppcTQo8DIK46LSg_0[12].typ = (&NTI__HlmBYNr2gdAZMXOsuiSZ0A_);
TM__HZdw8BhppcTQo8DIK46LSg_0[12].name = "options";
TM__HZdw8BhppcTQo8DIK46LSg_0[0].len = 12; TM__HZdw8BhppcTQo8DIK46LSg_0[0].kind = 2; TM__HZdw8BhppcTQo8DIK46LSg_0[0].sons = &TM__HZdw8BhppcTQo8DIK46LSg_2_12[0];
NTI__2rGNQnv9bU4hanI2g3svReg_.node = &TM__HZdw8BhppcTQo8DIK46LSg_0[0];
NTI__lw7iqc9cC7bi1oOZOAlJkJA_.size = sizeof(tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg*);
NTI__lw7iqc9cC7bi1oOZOAlJkJA_.align = NIM_ALIGNOF(tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg*);
NTI__lw7iqc9cC7bi1oOZOAlJkJA_.kind = 22;
NTI__lw7iqc9cC7bi1oOZOAlJkJA_.base = (&NTI__2rGNQnv9bU4hanI2g3svReg_);
NTI__lw7iqc9cC7bi1oOZOAlJkJA_.marker = Marker_tyRef__lw7iqc9cC7bi1oOZOAlJkJA;
NTI__Uwf6VGZy4JPKquxCiOCalQ_.size = sizeof(tyObject_FileHandleStreamcolonObjectType___Uwf6VGZy4JPKquxCiOCalQ);
NTI__Uwf6VGZy4JPKquxCiOCalQ_.align = NIM_ALIGNOF(tyObject_FileHandleStreamcolonObjectType___Uwf6VGZy4JPKquxCiOCalQ);
NTI__Uwf6VGZy4JPKquxCiOCalQ_.kind = 17;
NTI__Uwf6VGZy4JPKquxCiOCalQ_.base = (&NTI__THYguAi9bSgidczZ3ywEIMQ_);
NTI__Uwf6VGZy4JPKquxCiOCalQ_.flags = 1;
TM__HZdw8BhppcTQo8DIK46LSg_11_2[0] = &TM__HZdw8BhppcTQo8DIK46LSg_0[23];
TM__HZdw8BhppcTQo8DIK46LSg_0[23].kind = 1;
TM__HZdw8BhppcTQo8DIK46LSg_0[23].offset = offsetof(tyObject_FileHandleStreamcolonObjectType___Uwf6VGZy4JPKquxCiOCalQ, handle);
TM__HZdw8BhppcTQo8DIK46LSg_0[23].typ = (&NTI__rR5Bzr1D5krxoo1NcNyeMA_);
TM__HZdw8BhppcTQo8DIK46LSg_0[23].name = "handle";
TM__HZdw8BhppcTQo8DIK46LSg_11_2[1] = &TM__HZdw8BhppcTQo8DIK46LSg_0[24];
TM__HZdw8BhppcTQo8DIK46LSg_0[24].kind = 1;
TM__HZdw8BhppcTQo8DIK46LSg_0[24].offset = offsetof(tyObject_FileHandleStreamcolonObjectType___Uwf6VGZy4JPKquxCiOCalQ, atTheEnd);
TM__HZdw8BhppcTQo8DIK46LSg_0[24].typ = (&NTI__VaVACK0bpYmqIQ0mKcHfQQ_);
TM__HZdw8BhppcTQo8DIK46LSg_0[24].name = "atTheEnd";
TM__HZdw8BhppcTQo8DIK46LSg_0[22].len = 2; TM__HZdw8BhppcTQo8DIK46LSg_0[22].kind = 2; TM__HZdw8BhppcTQo8DIK46LSg_0[22].sons = &TM__HZdw8BhppcTQo8DIK46LSg_11_2[0];
NTI__Uwf6VGZy4JPKquxCiOCalQ_.node = &TM__HZdw8BhppcTQo8DIK46LSg_0[22];
NTI__DpwKsN2DZCVvNvk72L1fXA_.size = sizeof(tyObject_FileHandleStreamcolonObjectType___Uwf6VGZy4JPKquxCiOCalQ*);
NTI__DpwKsN2DZCVvNvk72L1fXA_.align = NIM_ALIGNOF(tyObject_FileHandleStreamcolonObjectType___Uwf6VGZy4JPKquxCiOCalQ*);
NTI__DpwKsN2DZCVvNvk72L1fXA_.kind = 22;
NTI__DpwKsN2DZCVvNvk72L1fXA_.base = (&NTI__Uwf6VGZy4JPKquxCiOCalQ_);
NTI__DpwKsN2DZCVvNvk72L1fXA_.marker = Marker_tyRef__DpwKsN2DZCVvNvk72L1fXA;
}

