/* Generated by Nim Compiler v2.2.10 */
/* Compiled for: MacOSX, arm64, clang */
/* Command for C compiler:
   clang -c  -w -ferror-limit=3 -fno-strict-aliasing -pthread -isysroot /Applications/Xcode_16.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk -target arm64-apple-darwin24.2.0 -O3   -I/Users/runner/work/nightlies/nightlies/nim-2.2.10/lib -I/Users/runner/work/nightlies/nightlies/nim-2.2.10/dist/atlas/src -o /Users/runner/work/nightlies/nightlies/nim-2.2.10/dist/atlas/.nimcache/@mconfighandler.nim.c.o /Users/runner/work/nightlies/nightlies/nim-2.2.10/dist/atlas/.nimcache/@mconfighandler.nim.c */
#define NIM_INTBITS 64
#define NIM_EmulateOverflowChecks

#include "nimbase.h"
#include <string.h>
#include <dirent.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <time.h>
#include <stdio.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
typedef struct tyObject_JsonConfig__iFWwY7PHFPaSFEA74m0sTw tyObject_JsonConfig__iFWwY7PHFPaSFEA74m0sTw;
typedef struct NimStrPayload NimStrPayload;
typedef struct NimStringV2 NimStringV2;
typedef struct tyObject_Table__ao79cQacnAZc5Mu0cN3jybg tyObject_Table__ao79cQacnAZc5Mu0cN3jybg;
typedef struct tySequence__SFipDZIkFtPcrLs0AGBBjQ tySequence__SFipDZIkFtPcrLs0AGBBjQ;
typedef struct tySequence__SFipDZIkFtPcrLs0AGBBjQ_Content tySequence__SFipDZIkFtPcrLs0AGBBjQ_Content;
typedef struct tyObject_JsonNodeObj__bQ2G262bsUg9ad9bFtUdEj9aA tyObject_JsonNodeObj__bQ2G262bsUg9ad9bFtUdEj9aA;
typedef struct tyObject_OrderedTable__RIgoItpMnyMLlEioBo9bQIA tyObject_OrderedTable__RIgoItpMnyMLlEioBo9bQIA;
typedef struct tySequence__UM2HJI1wUigOaSPzL6VC3A tySequence__UM2HJI1wUigOaSPzL6VC3A;
typedef struct tySequence__UM2HJI1wUigOaSPzL6VC3A_Content tySequence__UM2HJI1wUigOaSPzL6VC3A_Content;
typedef struct tySequence__t6JKa4Kdxpc0RJiFEWRI9bw tySequence__t6JKa4Kdxpc0RJiFEWRI9bw;
typedef struct tySequence__t6JKa4Kdxpc0RJiFEWRI9bw_Content tySequence__t6JKa4Kdxpc0RJiFEWRI9bw_Content;
typedef struct tyObject_RefHeader__BVEqx9abcuAhztUEHxbqQJA tyObject_RefHeader__BVEqx9abcuAhztUEHxbqQJA;
typedef struct tyObject_AtlasContext__9b9cOM1bS6SdrgGAPmY5KTwQ tyObject_AtlasContext__9b9cOM1bS6SdrgGAPmY5KTwQ;
typedef struct tyObject_FileStreamObj__55YZdAmhEXf1sGHQMYxWjw tyObject_FileStreamObj__55YZdAmhEXf1sGHQMYxWjw;
typedef struct tyObject_StreamObj__bsqueMN9aCOGm2aNaHkuxoQ tyObject_StreamObj__bsqueMN9aCOGm2aNaHkuxoQ;
typedef struct RootObj RootObj;
typedef struct TNimTypeV2 TNimTypeV2;
typedef struct tyObject_HSlice__atPNPXY5GObvliR9b4ZIorQ tyObject_HSlice__atPNPXY5GObvliR9b4ZIorQ;
typedef struct tyObject_Joptions__Bf62ivDFOdoKXzuMmXTKWw tyObject_Joptions__Bf62ivDFOdoKXzuMmXTKWw;
typedef struct tyObject_Patterns__FXqyqR49aNa9c2SMD9akprhSg tyObject_Patterns__FXqyqR49aNa9c2SMD9akprhSg;
typedef struct tySequence__j9bhAvfiD9alXYEwmFnFGFNA tySequence__j9bhAvfiD9alXYEwmFnFGFNA;
typedef struct tySequence__j9bhAvfiD9alXYEwmFnFGFNA_Content tySequence__j9bhAvfiD9alXYEwmFnFGFNA_Content;
typedef struct tySequence__sM4lkSb7zS6F7OVMvW9cffQ tySequence__sM4lkSb7zS6F7OVMvW9cffQ;
typedef struct tySequence__sM4lkSb7zS6F7OVMvW9cffQ_Content tySequence__sM4lkSb7zS6F7OVMvW9cffQ_Content;
typedef struct tySequence__4eQHGndY6XBYpFOH09apV8Q tySequence__4eQHGndY6XBYpFOH09apV8Q;
typedef struct tySequence__4eQHGndY6XBYpFOH09apV8Q_Content tySequence__4eQHGndY6XBYpFOH09apV8Q_Content;
typedef struct tyObject_Table__8bDqb52Br017mlUSc5FIOw tyObject_Table__8bDqb52Br017mlUSc5FIOw;
typedef struct tySequence__tas7jtBybgwOq4KxPkjGjg tySequence__tas7jtBybgwOq4KxPkjGjg;
typedef struct tySequence__tas7jtBybgwOq4KxPkjGjg_Content tySequence__tas7jtBybgwOq4KxPkjGjg_Content;
typedef struct tyObject_PluginInfo__jIeVHC5m9cMm7lQxxmW9bmHg tyObject_PluginInfo__jIeVHC5m9cMm7lQxxmW9bmHg;
typedef struct tyObject_Uri__MX62yCLGQmnfVYEE3Hjm9cA tyObject_Uri__MX62yCLGQmnfVYEE3Hjm9cA;
typedef struct tyObject_HashSet__v3AgR4bnzCtqFMiyBA9al4Q tyObject_HashSet__v3AgR4bnzCtqFMiyBA9al4Q;
typedef struct tySequence__4eRCaZmrYLLw2k30GPTiMw tySequence__4eRCaZmrYLLw2k30GPTiMw;
typedef struct tySequence__4eRCaZmrYLLw2k30GPTiMw_Content tySequence__4eRCaZmrYLLw2k30GPTiMw_Content;
typedef struct tyTuple__8ZxhPt1NwfElsJs8zUSV9bg tyTuple__8ZxhPt1NwfElsJs8zUSV9bg;
typedef struct Exception Exception;
typedef struct tySequence__3EvzHGO0xyXGnJBUggwfKQ tySequence__3EvzHGO0xyXGnJBUggwfKQ;
typedef struct tySequence__3EvzHGO0xyXGnJBUggwfKQ_Content tySequence__3EvzHGO0xyXGnJBUggwfKQ_Content;
typedef struct tyTuple__4ZA8Mtd29a9cAR3xLlz7LVrw tyTuple__4ZA8Mtd29a9cAR3xLlz7LVrw;
typedef struct tyTuple__UV3llMMYFckfui8YMBuUZA tyTuple__UV3llMMYFckfui8YMBuUZA;
typedef struct tySequence__VNJhX4j4hhkFWIpWY4IWXg tySequence__VNJhX4j4hhkFWIpWY4IWXg;
typedef struct tySequence__VNJhX4j4hhkFWIpWY4IWXg_Content tySequence__VNJhX4j4hhkFWIpWY4IWXg_Content;
typedef struct tyTuple__IwpWnMdQOSUzXomfBe9cMRQ tyTuple__IwpWnMdQOSUzXomfBe9cMRQ;
typedef struct tyTuple__uSZbD2CRToUhqTsTNx4cgA tyTuple__uSZbD2CRToUhqTsTNx4cgA;
typedef struct tyObject_ToJsonOptions__mRkT0c8Ugtl0BxbGElJ1oA tyObject_ToJsonOptions__mRkT0c8Ugtl0BxbGElJ1oA;
typedef struct tyObject_DepGraph__i1RlFs3c9aTk9bK2vN5Pa2yw tyObject_DepGraph__i1RlFs3c9aTk9bK2vN5Pa2yw;
typedef struct tyObject_NimbleContext__4UNXx9ceXbsj5kR4Hz1gUgA tyObject_NimbleContext__4UNXx9ceXbsj5kR4Hz1gUgA;
typedef struct tyObject_PackagecolonObjectType___oq9cbJmLUyLo2l9clmDFeVSA tyObject_PackagecolonObjectType___oq9cbJmLUyLo2l9clmDFeVSA;
typedef struct tyObject_OrderedTable__NAaHKPe5f6Y5G54ThvHCdw tyObject_OrderedTable__NAaHKPe5f6Y5G54ThvHCdw;
typedef struct tySequence__oMQEWXk5BpYjO5RbdjG9a1Q tySequence__oMQEWXk5BpYjO5RbdjG9a1Q;
typedef struct tySequence__oMQEWXk5BpYjO5RbdjG9a1Q_Content tySequence__oMQEWXk5BpYjO5RbdjG9a1Q_Content;
typedef struct tyTuple__otFEYh4BBZ0y3q0WDtkCOw tyTuple__otFEYh4BBZ0y3q0WDtkCOw;
typedef struct tyTuple__ZwcqNhWtDfKDJjVz9bcvE9cQ tyTuple__ZwcqNhWtDfKDJjVz9bcvE9cQ;
typedef struct tyObject_Pattern__K9baAv1Y6R5n9b0ZUxBeh6vA tyObject_Pattern__K9baAv1Y6R5n9b0ZUxBeh6vA;
typedef struct tySequence__xjLg9a72SfsVVFciefDuvtw tySequence__xjLg9a72SfsVVFciefDuvtw;
typedef struct tySequence__xjLg9a72SfsVVFciefDuvtw_Content tySequence__xjLg9a72SfsVVFciefDuvtw_Content;
typedef struct tyTuple__QeWl6B6ffS4pU6WWrtcrDw tyTuple__QeWl6B6ffS4pU6WWrtcrDw;
typedef struct tyObject_StackTraceEntry__lcKzdyiD6sm3eeh28rx7fw tyObject_StackTraceEntry__lcKzdyiD6sm3eeh28rx7fw;
typedef struct tyTuple__P9b03d79atTGoSs9bM2vK9bPRA tyTuple__P9b03d79atTGoSs9bM2vK9bPRA;
typedef struct tyObject_PkgUrl__xtGEmbK9cVcp0WbjakP0xVw tyObject_PkgUrl__xtGEmbK9cVcp0WbjakP0xVw;
typedef struct tyTuple__7q7q3E6Oj24ZNVJb9aonhAg tyTuple__7q7q3E6Oj24ZNVJb9aonhAg;
typedef struct tyObject_Instr__dVxI1dKsh9ajF145UocfxWg tyObject_Instr__dVxI1dKsh9ajF145UocfxWg;
struct NimStrPayload {
	NI cap;
	NIM_CHAR data[SEQ_DECL_SIZE];
};
struct NimStringV2 {
	NI len;
	NimStrPayload* p;
};
struct tySequence__SFipDZIkFtPcrLs0AGBBjQ {
  NI len; tySequence__SFipDZIkFtPcrLs0AGBBjQ_Content* p;
};
struct tyObject_Table__ao79cQacnAZc5Mu0cN3jybg {
	tySequence__SFipDZIkFtPcrLs0AGBBjQ data;
	NI counter;
};
struct tyObject_JsonConfig__iFWwY7PHFPaSFEA74m0sTw {
	NimStringV2 deps;
	tyObject_Table__ao79cQacnAZc5Mu0cN3jybg nameOverrides;
	tyObject_Table__ao79cQacnAZc5Mu0cN3jybg urlOverrides;
	tyObject_Table__ao79cQacnAZc5Mu0cN3jybg pkgOverrides;
	NimStringV2 plugins;
	NimStringV2 resolver;
	tyObject_JsonNodeObj__bQ2G262bsUg9ad9bFtUdEj9aA* graph;
};
typedef NU8 tyEnum_JsonNodeKind__iWE9brhI8kBHUww4QuE4NFA;
struct tySequence__UM2HJI1wUigOaSPzL6VC3A {
  NI len; tySequence__UM2HJI1wUigOaSPzL6VC3A_Content* p;
};
struct tyObject_OrderedTable__RIgoItpMnyMLlEioBo9bQIA {
	tySequence__UM2HJI1wUigOaSPzL6VC3A data;
	NI counter;
	NI first;
	NI last;
};
struct tySequence__t6JKa4Kdxpc0RJiFEWRI9bw {
  NI len; tySequence__t6JKa4Kdxpc0RJiFEWRI9bw_Content* p;
};
struct tyObject_JsonNodeObj__bQ2G262bsUg9ad9bFtUdEj9aA {
	NIM_BOOL isUnquoted;
	tyEnum_JsonNodeKind__iWE9brhI8kBHUww4QuE4NFA kind;
union{
	struct {
	NimStringV2 str;
} _kind_1;
	struct {
	NI64 num;
} _kind_2;
	struct {
	NF fnum;
} _kind_3;
	struct {
	NIM_BOOL bval;
} _kind_4;
	struct {
	tyObject_OrderedTable__RIgoItpMnyMLlEioBo9bQIA fields;
} _kind_6;
	struct {
	tySequence__t6JKa4Kdxpc0RJiFEWRI9bw elems;
} _kind_7;
};
};
struct tyObject_RefHeader__BVEqx9abcuAhztUEHxbqQJA {
	NI rc;
	NI rootIdx;
};
typedef NimStringV2 tyArray__pK4u9cQ1bJzH46rrmNu9bPMQ[2];
struct TNimTypeV2 {
	void* destructor;
	NI size;
	NI16 align;
	NI16 depth;
	NU32* display;
	void* traceImpl;
	void* typeInfoV1;
	NI flags;
	void* vTable[SEQ_DECL_SIZE];
};
struct RootObj {
	TNimTypeV2* m_type;
};
typedef N_NIMCALL_PTR(void, tyProc__E9aUxUbQfSfG9bDHtjp9bJx4Q) (tyObject_StreamObj__bsqueMN9aCOGm2aNaHkuxoQ* s_p0);
typedef N_NIMCALL_PTR(NIM_BOOL, tyProc__DMp9aUCWnCo4HurK9bbMFmZw) (tyObject_StreamObj__bsqueMN9aCOGm2aNaHkuxoQ* s_p0);
typedef N_NIMCALL_PTR(void, tyProc__itHc4jZtTpxT9bZ9cqWxzfDA) (tyObject_StreamObj__bsqueMN9aCOGm2aNaHkuxoQ* s_p0, NI pos_p1);
typedef N_NIMCALL_PTR(NI, tyProc__n8ia0SZOWi9aLDiLsBb0yjw) (tyObject_StreamObj__bsqueMN9aCOGm2aNaHkuxoQ* s_p0);
typedef N_NIMCALL_PTR(NI, tyProc__0hYqEcBlB9bEANPIuHrMMfA) (tyObject_StreamObj__bsqueMN9aCOGm2aNaHkuxoQ* s_p0, NimStringV2* buffer_p1, tyObject_HSlice__atPNPXY5GObvliR9b4ZIorQ slice_p2);
typedef N_NIMCALL_PTR(NIM_BOOL, tyProc__wUWG9arq0ePuG9awasbo69cSw) (tyObject_StreamObj__bsqueMN9aCOGm2aNaHkuxoQ* s_p0, NimStringV2* line_p1);
typedef N_NIMCALL_PTR(NI, tyProc__vPMGV5XMHXAc89bq9byt1r9ag) (tyObject_StreamObj__bsqueMN9aCOGm2aNaHkuxoQ* s_p0, void* buffer_p1, NI bufLen_p2);
typedef N_NIMCALL_PTR(void, tyProc__Xz9a8DVGoavze4NXIx9bBtkQ) (tyObject_StreamObj__bsqueMN9aCOGm2aNaHkuxoQ* s_p0, void* buffer_p1, NI bufLen_p2);
struct tyObject_StreamObj__bsqueMN9aCOGm2aNaHkuxoQ {
	RootObj Sup;
	tyProc__E9aUxUbQfSfG9bDHtjp9bJx4Q closeImpl;
	tyProc__DMp9aUCWnCo4HurK9bbMFmZw atEndImpl;
	tyProc__itHc4jZtTpxT9bZ9cqWxzfDA setPositionImpl;
	tyProc__n8ia0SZOWi9aLDiLsBb0yjw getPositionImpl;
	tyProc__0hYqEcBlB9bEANPIuHrMMfA readDataStrImpl;
	tyProc__wUWG9arq0ePuG9awasbo69cSw readLineImpl;
	tyProc__vPMGV5XMHXAc89bq9byt1r9ag readDataImpl;
	tyProc__vPMGV5XMHXAc89bq9byt1r9ag peekDataImpl;
	tyProc__Xz9a8DVGoavze4NXIx9bBtkQ writeDataImpl;
	tyProc__E9aUxUbQfSfG9bDHtjp9bJx4Q flushImpl;
};
struct tyObject_FileStreamObj__55YZdAmhEXf1sGHQMYxWjw {
	tyObject_StreamObj__bsqueMN9aCOGm2aNaHkuxoQ Sup;
	FILE* f;
};
typedef NU8 tyEnum_FileMode__wjF0STQGT1PBuQEl3p0tng;
struct tyObject_Joptions__Bf62ivDFOdoKXzuMmXTKWw {
	NIM_BOOL allowExtraKeys;
	NIM_BOOL allowMissingKeys;
};
typedef NU32 tySet_tyEnum_Flag__YJpVNZDPDp9bqb0qWHXEQFw;
struct tySequence__j9bhAvfiD9alXYEwmFnFGFNA {
  NI len; tySequence__j9bhAvfiD9alXYEwmFnFGFNA_Content* p;
};
struct tySequence__sM4lkSb7zS6F7OVMvW9cffQ {
  NI len; tySequence__sM4lkSb7zS6F7OVMvW9cffQ_Content* p;
};
struct tySequence__4eQHGndY6XBYpFOH09apV8Q {
  NI len; tySequence__4eQHGndY6XBYpFOH09apV8Q_Content* p;
};
struct tyObject_Patterns__FXqyqR49aNa9c2SMD9akprhSg {
	tySequence__j9bhAvfiD9alXYEwmFnFGFNA s;
	tyObject_Table__ao79cQacnAZc5Mu0cN3jybg t;
	tySequence__sM4lkSb7zS6F7OVMvW9cffQ strings;
	tySequence__4eQHGndY6XBYpFOH09apV8Q patterns;
};
struct tySequence__tas7jtBybgwOq4KxPkjGjg {
  NI len; tySequence__tas7jtBybgwOq4KxPkjGjg_Content* p;
};
struct tyObject_Table__8bDqb52Br017mlUSc5FIOw {
	tySequence__tas7jtBybgwOq4KxPkjGjg data;
	NI counter;
};
typedef NU8 tyEnum_ResolutionAlgorithm__EDrRewmAkc38ngHuXBbDaw;
struct tyObject_PluginInfo__jIeVHC5m9cMm7lQxxmW9bmHg {
	tySequence__4eQHGndY6XBYpFOH09apV8Q builderPatterns;
};
struct tyObject_Uri__MX62yCLGQmnfVYEE3Hjm9cA {
	NimStringV2 scheme;
	NimStringV2 username;
	NimStringV2 password;
	NimStringV2 hostname;
	NimStringV2 port;
	NimStringV2 path;
	NimStringV2 query;
	NimStringV2 anchor;
	NIM_BOOL opaque;
	NIM_BOOL isIpv6;
};
struct tySequence__4eRCaZmrYLLw2k30GPTiMw {
  NI len; tySequence__4eRCaZmrYLLw2k30GPTiMw_Content* p;
};
struct tyObject_HashSet__v3AgR4bnzCtqFMiyBA9al4Q {
	tySequence__4eRCaZmrYLLw2k30GPTiMw data;
	NI counter;
};
struct tyObject_AtlasContext__9b9cOM1bS6SdrgGAPmY5KTwQ {
	NimStringV2 projectDir;
	NimStringV2 depsDir;
	NimStringV2 confDirOverride;
	tySet_tyEnum_Flag__YJpVNZDPDp9bqb0qWHXEQFw flags;
	tyObject_Patterns__FXqyqR49aNa9c2SMD9akprhSg nameOverrides;
	tyObject_Patterns__FXqyqR49aNa9c2SMD9akprhSg urlOverrides;
	tyObject_Table__8bDqb52Br017mlUSc5FIOw pkgOverrides;
	tyEnum_ResolutionAlgorithm__EDrRewmAkc38ngHuXBbDaw defaultAlgo;
	tyObject_PluginInfo__jIeVHC5m9cMm7lQxxmW9bmHg plugins;
	NimStringV2 overridesFile;
	NimStringV2 pluginsFile;
	tyObject_Uri__MX62yCLGQmnfVYEE3Hjm9cA proxy;
	tyObject_HashSet__v3AgR4bnzCtqFMiyBA9al4Q features;
};
struct tyTuple__8ZxhPt1NwfElsJs8zUSV9bg {
	NI Field0;
	NimStringV2 Field1;
	NimStringV2 Field2;
};
typedef NimStringV2 tyArray__YgExxhfgKcesA5EOUj1MOA[1];
struct tySequence__3EvzHGO0xyXGnJBUggwfKQ {
  NI len; tySequence__3EvzHGO0xyXGnJBUggwfKQ_Content* p;
};
struct Exception {
	RootObj Sup;
	Exception* parent;
	NCSTRING name;
	NimStringV2 message;
	tySequence__3EvzHGO0xyXGnJBUggwfKQ trace;
	Exception* up;
};
typedef NU8 tyEnum_PathComponent__OiWviOlsjyqprC56d9bn9b4Q;
typedef NIM_CHAR tyArray__bErjiHmvISNmC2iIqkq21Q[256];
struct tyTuple__4ZA8Mtd29a9cAR3xLlz7LVrw {
	tyEnum_PathComponent__OiWviOlsjyqprC56d9bn9b4Q Field0;
	NIM_BOOL Field1;
};
struct tySequence__VNJhX4j4hhkFWIpWY4IWXg {
  NI len; tySequence__VNJhX4j4hhkFWIpWY4IWXg_Content* p;
};
struct tyTuple__IwpWnMdQOSUzXomfBe9cMRQ {
	NimStringV2 Field0;
	tyObject_Uri__MX62yCLGQmnfVYEE3Hjm9cA Field1;
};
struct tyTuple__uSZbD2CRToUhqTsTNx4cgA {
	NI Field0;
	NimStringV2 Field1;
	tyObject_Uri__MX62yCLGQmnfVYEE3Hjm9cA Field2;
};
struct tyTuple__UV3llMMYFckfui8YMBuUZA {
	NimStringV2 Field0;
	NimStringV2 Field1;
};
typedef NU8 tyEnum_EnumMode__SzEOeAZV29bxtRSEwT4jVCA;
typedef NU8 tyEnum_JsonNodeMode__IVcp7Bxa1lbzP5s9ahFgiLQ;
struct tyObject_ToJsonOptions__mRkT0c8Ugtl0BxbGElJ1oA {
	tyEnum_EnumMode__SzEOeAZV29bxtRSEwT4jVCA enumMode;
	tyEnum_JsonNodeMode__IVcp7Bxa1lbzP5s9ahFgiLQ jsonNodeMode;
};
typedef NU8 tyEnum_TraversalMode__7oigiLe2XsEgCBvsMzDCZw;
struct tySequence__oMQEWXk5BpYjO5RbdjG9a1Q {
  NI len; tySequence__oMQEWXk5BpYjO5RbdjG9a1Q_Content* p;
};
struct tyObject_OrderedTable__NAaHKPe5f6Y5G54ThvHCdw {
	tySequence__oMQEWXk5BpYjO5RbdjG9a1Q data;
	NI counter;
	NI first;
	NI last;
};
struct tyObject_DepGraph__i1RlFs3c9aTk9bK2vN5Pa2yw {
	tyEnum_TraversalMode__7oigiLe2XsEgCBvsMzDCZw mode;
	tyObject_PackagecolonObjectType___oq9cbJmLUyLo2l9clmDFeVSA* root;
	tyObject_OrderedTable__NAaHKPe5f6Y5G54ThvHCdw pkgs;
};
struct tySequence__SFipDZIkFtPcrLs0AGBBjQ_Content { NI cap; tyTuple__8ZxhPt1NwfElsJs8zUSV9bg data[SEQ_DECL_SIZE]; };
struct tyTuple__otFEYh4BBZ0y3q0WDtkCOw {
	NI Field0;
	NI Field1;
	NimStringV2 Field2;
	tyObject_JsonNodeObj__bQ2G262bsUg9ad9bFtUdEj9aA* Field3;
};
struct tySequence__UM2HJI1wUigOaSPzL6VC3A_Content { NI cap; tyTuple__otFEYh4BBZ0y3q0WDtkCOw data[SEQ_DECL_SIZE]; };
struct tySequence__t6JKa4Kdxpc0RJiFEWRI9bw_Content { NI cap; tyObject_JsonNodeObj__bQ2G262bsUg9ad9bFtUdEj9aA* data[SEQ_DECL_SIZE]; };
struct tyObject_HSlice__atPNPXY5GObvliR9b4ZIorQ {
	NI a;
	NI b;
};
struct tySequence__xjLg9a72SfsVVFciefDuvtw {
  NI len; tySequence__xjLg9a72SfsVVFciefDuvtw_Content* p;
};
struct tyObject_Pattern__K9baAv1Y6R5n9b0ZUxBeh6vA {
	tySequence__xjLg9a72SfsVVFciefDuvtw code;
	NI usedMatches;
	NimStringV2 error;
};
struct tyTuple__ZwcqNhWtDfKDJjVz9bcvE9cQ {
	tyObject_Pattern__K9baAv1Y6R5n9b0ZUxBeh6vA Field0;
	NimStringV2 Field1;
};
struct tySequence__j9bhAvfiD9alXYEwmFnFGFNA_Content { NI cap; tyTuple__ZwcqNhWtDfKDJjVz9bcvE9cQ data[SEQ_DECL_SIZE]; };
struct tySequence__sM4lkSb7zS6F7OVMvW9cffQ_Content { NI cap; NimStringV2 data[SEQ_DECL_SIZE]; };
struct tySequence__4eQHGndY6XBYpFOH09apV8Q_Content { NI cap; tyTuple__UV3llMMYFckfui8YMBuUZA data[SEQ_DECL_SIZE]; };
struct tySequence__tas7jtBybgwOq4KxPkjGjg_Content { NI cap; tyTuple__uSZbD2CRToUhqTsTNx4cgA data[SEQ_DECL_SIZE]; };
struct tyTuple__QeWl6B6ffS4pU6WWrtcrDw {
	NI Field0;
	NimStringV2 Field1;
};
struct tySequence__4eRCaZmrYLLw2k30GPTiMw_Content { NI cap; tyTuple__QeWl6B6ffS4pU6WWrtcrDw data[SEQ_DECL_SIZE]; };
struct tyObject_StackTraceEntry__lcKzdyiD6sm3eeh28rx7fw {
	NCSTRING procname;
	NI line;
	NCSTRING filename;
};
struct tySequence__3EvzHGO0xyXGnJBUggwfKQ_Content { NI cap; tyObject_StackTraceEntry__lcKzdyiD6sm3eeh28rx7fw data[SEQ_DECL_SIZE]; };
struct tySequence__VNJhX4j4hhkFWIpWY4IWXg_Content { NI cap; tyTuple__IwpWnMdQOSUzXomfBe9cMRQ data[SEQ_DECL_SIZE]; };
struct tyTuple__7q7q3E6Oj24ZNVJb9aonhAg {
	NimStringV2 Field0;
	NimStringV2 Field1;
	NimStringV2 Field2;
};
struct tyObject_PkgUrl__xtGEmbK9cVcp0WbjakP0xVw {
	tyTuple__7q7q3E6Oj24ZNVJb9aonhAg qualifiedName;
	NIM_BOOL hasShortName;
	tyObject_Uri__MX62yCLGQmnfVYEE3Hjm9cA u;
};
struct tyTuple__P9b03d79atTGoSs9bM2vK9bPRA {
	NI Field0;
	NI Field1;
	tyObject_PkgUrl__xtGEmbK9cVcp0WbjakP0xVw Field2;
	tyObject_PackagecolonObjectType___oq9cbJmLUyLo2l9clmDFeVSA* Field3;
};
struct tySequence__oMQEWXk5BpYjO5RbdjG9a1Q_Content { NI cap; tyTuple__P9b03d79atTGoSs9bM2vK9bPRA data[SEQ_DECL_SIZE]; };
typedef NU8 tyEnum_Opcode__6ExfopoXudbZxEsLnN9aAhA;
struct tyObject_Instr__dVxI1dKsh9ajF145UocfxWg {
	tyEnum_Opcode__6ExfopoXudbZxEsLnN9aAhA opc;
	NU8 arg1;
	NU16 arg2;
};
struct tySequence__xjLg9a72SfsVVFciefDuvtw_Content { NI cap; tyObject_Instr__dVxI1dKsh9ajF145UocfxWg data[SEQ_DECL_SIZE]; };
static N_INLINE(void, nimZeroMem)(void* p_p0, NI size_p1);
static N_INLINE(void, nimSetMem__system_u2188)(void* a_p0, int v_p1, NI size_p2);
N_LIB_PRIVATE N_NIMCALL(NimStringV2, depsDir__basicZcontext_u348)(NIM_BOOL relative_p0);
N_LIB_PRIVATE N_NIMCALL(tyObject_Table__ao79cQacnAZc5Mu0cN3jybg, initTable__basicZcompiledpatterns_u722)(NI initialSize_p0);
N_LIB_PRIVATE N_NIMCALL(tyObject_JsonNodeObj__bQ2G262bsUg9ad9bFtUdEj9aA*, newJNull__pureZjson_u438)(void);
N_LIB_PRIVATE N_NIMCALL(NimStringV2, getProjectConfig__basicZcontext_u363)(NimStringV2 dir_p0);
N_LIB_PRIVATE N_NIMCALL(NimStringV2, project__basicZcontext_u340)(void);
N_LIB_PRIVATE N_NIMCALL(void, writeFile__stdZsyncio_u539)(NimStringV2 filename_p0, NimStringV2 content_p1);
N_LIB_PRIVATE N_NIMCALL(NimStringV2, pretty__pureZjson_u4853)(tyObject_JsonNodeObj__bQ2G262bsUg9ad9bFtUdEj9aA* node_p0, NI indent_p1);
N_LIB_PRIVATE N_NIMCALL(tyObject_JsonNodeObj__bQ2G262bsUg9ad9bFtUdEj9aA*, percent___confighandler_u101)(tyObject_JsonConfig__iFWwY7PHFPaSFEA74m0sTw* o_p0);
N_LIB_PRIVATE N_NOCONV(void, deallocShared)(void* p_p0);
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___pureZjson_u321)(tyObject_JsonNodeObj__bQ2G262bsUg9ad9bFtUdEj9aA* dest_p0);
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___confighandler_u154)(tyObject_JsonConfig__iFWwY7PHFPaSFEA74m0sTw* dest_p0);
static N_INLINE(NIM_BOOL, nimDecRefIsLastDyn)(void* p_p0);
static N_INLINE(NI, minuspercent___system_u813)(NI x_p0, NI y_p1);
N_LIB_PRIVATE N_NIMCALL(void, unregisterCycle__system_u3185)(tyObject_RefHeader__BVEqx9abcuAhztUEHxbqQJA* s_p0);
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___pureZjson_u67)(tyObject_JsonNodeObj__bQ2G262bsUg9ad9bFtUdEj9aA* dest_p0);
N_LIB_PRIVATE N_NIMCALL(void, nimRawDispose)(void* p_p0, NI alignment_p1);
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___basicZcompiledpatterns_u879)(tySequence__SFipDZIkFtPcrLs0AGBBjQ dest_p0);
static N_INLINE(NIM_BOOL*, nimErrorFlag)(void);
N_LIB_PRIVATE N_NIMCALL(void, readAtlasContext__confighandler_u1222)(tyObject_AtlasContext__9b9cOM1bS6SdrgGAPmY5KTwQ* ctx_p0, NimStringV2 projectDir_p1);
N_LIB_PRIVATE N_NIMCALL(void, info__basicZparse95requires_u40)(NimStringV2 p_p0, NimStringV2* args_p1, NI args_p1Len_0);
N_LIB_PRIVATE N_NIMCALL(void, readConfigFile__confighandler_u191)(NimStringV2 configFile_p0, tyObject_JsonConfig__iFWwY7PHFPaSFEA74m0sTw* Result);
N_LIB_PRIVATE N_NIMCALL(tyObject_FileStreamObj__55YZdAmhEXf1sGHQMYxWjw*, newFileStream__pureZstreams_u1210)(NimStringV2 filename_p0, tyEnum_FileMode__wjF0STQGT1PBuQEl3p0tng mode_p1, NI bufSize_p2);
N_LIB_PRIVATE N_NIMCALL(void, warn__basicZpkgurls_u133)(NimStringV2 p_p0, NimStringV2* args_p1, NI args_p1Len_0);
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___pureZstreams_u1093)(tyObject_FileStreamObj__55YZdAmhEXf1sGHQMYxWjw* dest_p0);
N_LIB_PRIVATE N_NIMCALL(tyObject_JsonNodeObj__bQ2G262bsUg9ad9bFtUdEj9aA*, parseJson__pureZjson_u5621)(tyObject_StreamObj__bsqueMN9aCOGm2aNaHkuxoQ* s_p0, NimStringV2 filename_p1, NIM_BOOL rawIntegers_p2, NIM_BOOL rawFloats_p3);
N_LIB_PRIVATE N_NIMCALL(void, jsonTo__confighandler_u204)(tyObject_JsonNodeObj__bQ2G262bsUg9ad9bFtUdEj9aA* b_p0, tyObject_Joptions__Bf62ivDFOdoKXzuMmXTKWw opt_p2, tyObject_JsonConfig__iFWwY7PHFPaSFEA74m0sTw* Result);
N_LIB_PRIVATE N_NIMCALL(void, close__pureZstreams_u57)(tyObject_StreamObj__bsqueMN9aCOGm2aNaHkuxoQ* s_p0);
N_LIB_PRIVATE N_NIMCALL(void, eqcopy___system_u2754)(NimStringV2* dest_p0, NimStringV2 src_p1);
N_LIB_PRIVATE N_NIMCALL(void, eqsink___system_u2760)(NimStringV2* dest_p0, NimStringV2 src_p1);
static N_INLINE(NimStringV2, expandTilde__stdZpaths_u215)(NimStringV2 path_p0);
N_LIB_PRIVATE N_NIMCALL(NimStringV2, expandTildeImpl__stdZpaths_u208)(NimStringV2 path_p0);
static N_INLINE(void, eqdestroy___system_u281)(NimStringV2 x_p0);
N_LIB_PRIVATE N_NIMCALL(NI, len__lockfiles_u2034)(tyObject_Table__ao79cQacnAZc5Mu0cN3jybg t_p0);
static N_INLINE(NIM_BOOL, isFilled__pureZcollectionsZtables_u31)(NI hcode_p0);
N_LIB_PRIVATE N_NOINLINE(void, raiseIndexError2)(NI i_p0, NI n_p1);
N_LIB_PRIVATE N_NIMCALL(NimStringV2, addPattern__basicZcompiledpatterns_u1187)(tyObject_Patterns__FXqyqR49aNa9c2SMD9akprhSg* p_p0, NimStringV2 inputPattern_p1, NimStringV2 outputPattern_p2);
N_LIB_PRIVATE N_NIMCALL(void, error__basicZgitops_u1259)(NimStringV2 p_p0, NimStringV2* args_p1, NI args_p1Len_0);
static N_INLINE(void, appendString)(NimStringV2* dest_p0, NimStringV2 src_p1);
static N_INLINE(void, copyMem__system_u1755)(void* dest_p0, void* source_p1, NI size_p2);
static N_INLINE(void, nimCopyMem)(void* dest_p0, void* source_p1, NI size_p2);
N_LIB_PRIVATE N_NIMCALL(NimStringV2, rawNewString)(NI space_p0);
N_LIB_PRIVATE N_NIMCALL(void, failedAssertImpl__stdZassertions_u95)(NimStringV2 msg_p0);
static N_INLINE(NIM_BOOL, nimAddInt)(NI a_p0, NI b_p1, NI* res_p2);
N_LIB_PRIVATE N_NOINLINE(void, raiseOverflow)(void);
N_LIB_PRIVATE N_NIMCALL(void, X5BX5Deq___confighandler_u1295)(tyObject_Table__8bDqb52Br017mlUSc5FIOw* t_p0, NimStringV2 key_p1, tyObject_Uri__MX62yCLGQmnfVYEE3Hjm9cA* val_p2);
N_LIB_PRIVATE N_NIMCALL(void, parseUri__pureZuri_u295)(NimStringV2 uri_p0, tyObject_Uri__MX62yCLGQmnfVYEE3Hjm9cA* Result);
N_LIB_PRIVATE N_NIMCALL(tyEnum_ResolutionAlgorithm__EDrRewmAkc38ngHuXBbDaw, parseEnum__confighandler_u2287)(NimStringV2 s_p0);
static N_INLINE(NIM_BOOL, isObjDisplayCheck)(TNimTypeV2* source_p0, NI16 targetDepth_p1, NU32 token_p2);
static N_INLINE(Exception*, nimBorrowCurrentException)(void);
N_LIB_PRIVATE N_NIMCALL(void, warn__basicZgitops_u3033)(NimStringV2 p_p0, NimStringV2* args_p1, NI args_p1Len_0);
static N_INLINE(void, popCurrentException)(void);
N_LIB_PRIVATE N_NIMCALL(void, eqcopy___system_u3719)(Exception** dest_p0, Exception* src_p1, NIM_BOOL cyclic_p2);
N_LIB_PRIVATE N_NIMCALL(NimStringV2, eqdup___system_u2757)(NimStringV2 src_p0);
N_LIB_PRIVATE N_NIMCALL(void, readPluginsDir__confighandler_u17)(NimStringV2 dir_p0);
static N_INLINE(NimStringV2, slash___stdZpaths_u84)(NimStringV2 head_p0, NimStringV2 tail_p1);
N_LIB_PRIVATE N_NIMCALL(NimStringV2, nosjoinPath)(NimStringV2 head_p0, NimStringV2 tail_p1);
static N_INLINE(NCSTRING, nimToCStringConv)(NimStringV2 s_p0);
N_LIB_PRIVATE N_NOINLINE(void, raiseOSError__stdZoserrors_u119)(NI32 errorCode_p0, NimStringV2 additionalInfo_p1);
N_LIB_PRIVATE N_NIMCALL(NI32, osLastError__stdZoserrors_u122)(void);
N_LIB_PRIVATE N_NIMCALL(NimStringV2, cstrToNimstr)(NCSTRING str_p0);
static N_INLINE(NIM_BOOL, eqStrings)(NimStringV2 a_p0, NimStringV2 b_p1);
static N_INLINE(NIM_BOOL, equalMem__system_u1763)(void* a_p0, void* b_p1, NI size_p2);
static N_INLINE(int, nimCmpMem)(void* a_p0, void* b_p1, NI size_p2);
static N_INLINE(NimStringV2, slash___stdZprivateZospaths2_u88)(NimStringV2 head_p0, NimStringV2 tail_p1);
N_LIB_PRIVATE N_NIMCALL(tyTuple__4ZA8Mtd29a9cAR3xLlz7LVrw, getSymlinkFileKind__stdZprivateZoscommon_u17)(NimStringV2 path_p0);
N_LIB_PRIVATE N_NIMCALL(void, eqwasMoved___system_u2751)(NimStringV2* dest_p0);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, nsuEndsWith)(NimStringV2 s_p0, NimStringV2 suffix_p1);
N_LIB_PRIVATE N_NIMCALL(void, extractPluginInfo__basicZparse95requires_u4757)(NimStringV2 nimscriptFile_p0, tyObject_PluginInfo__jIeVHC5m9cMm7lQxxmW9bmHg* info_p1);
N_LIB_PRIVATE N_NIMCALL(tyObject_AtlasContext__9b9cOM1bS6SdrgGAPmY5KTwQ*, context__basicZcontext_u319)(void);
N_LIB_PRIVATE N_NIMCALL(tyObject_Table__ao79cQacnAZc5Mu0cN3jybg, toTable__basicZcompiledpatterns_u2671)(tyObject_Patterns__FXqyqR49aNa9c2SMD9akprhSg* p_p0);
N_LIB_PRIVATE N_NIMCALL(tyObject_Table__ao79cQacnAZc5Mu0cN3jybg, toTable__lockfiles_u2482)(tyTuple__UV3llMMYFckfui8YMBuUZA* pairs_p0, NI pairs_p0Len_0);
N_LIB_PRIVATE N_NIMCALL(void*, newSeqPayload)(NI cap_p0, NI elemSize_p1, NI elemAlign_p2);
N_LIB_PRIVATE N_NIMCALL(NI, len__confighandler_u2362)(tyObject_Table__8bDqb52Br017mlUSc5FIOw t_p0);
N_LIB_PRIVATE N_NIMCALL(void, eqsink___confighandler_u2584)(tyTuple__IwpWnMdQOSUzXomfBe9cMRQ* dest_p0, tyTuple__IwpWnMdQOSUzXomfBe9cMRQ* src_p1);
N_LIB_PRIVATE N_NIMCALL(void, eqdup___pureZuri_u219)(tyObject_Uri__MX62yCLGQmnfVYEE3Hjm9cA* src_p0, tyObject_Uri__MX62yCLGQmnfVYEE3Hjm9cA* Result);
N_LIB_PRIVATE N_NIMCALL(void, add__confighandler_u2621)(tySequence__VNJhX4j4hhkFWIpWY4IWXg* x_p0, tyTuple__IwpWnMdQOSUzXomfBe9cMRQ* y_p1);
N_LIB_PRIVATE N_NIMCALL(void, eqwasMoved___confighandler_u2572)(tyTuple__IwpWnMdQOSUzXomfBe9cMRQ* dest_p0);
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___confighandler_u2575)(tyTuple__IwpWnMdQOSUzXomfBe9cMRQ* dest_p0);
N_LIB_PRIVATE N_NIMCALL(tySequence__4eQHGndY6XBYpFOH09apV8Q, newSeq__confighandler_u2872)(NI len_p0);
N_LIB_PRIVATE N_NOINLINE(void, raiseRangeErrorI)(NI64 i_p0, NI64 a_p1, NI64 b_p2);
N_LIB_PRIVATE N_NIMCALL(NimStringV2, dollar___pureZuri_u409)(tyObject_Uri__MX62yCLGQmnfVYEE3Hjm9cA* u_p0);
N_LIB_PRIVATE N_NIMCALL(void, eqsink___stdZprivateZospaths2_u312)(tyTuple__UV3llMMYFckfui8YMBuUZA* dest_p0, tyTuple__UV3llMMYFckfui8YMBuUZA* src_p1);
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___confighandler_u2687)(tySequence__VNJhX4j4hhkFWIpWY4IWXg dest_p0);
N_LIB_PRIVATE N_NIMCALL(void, alignedDealloc)(void* p_p0, NI align_p1);
N_LIB_PRIVATE N_NIMCALL(NimStringV2, dollar___basicZversions_u34)(tyEnum_ResolutionAlgorithm__EDrRewmAkc38ngHuXBbDaw e_p0);
N_LIB_PRIVATE N_NIMCALL(tyObject_JsonNodeObj__bQ2G262bsUg9ad9bFtUdEj9aA*, toJson__confighandler_u2969)(tyObject_JsonConfig__iFWwY7PHFPaSFEA74m0sTw* a_p0, tyObject_ToJsonOptions__mRkT0c8Ugtl0BxbGElJ1oA opt_p1);
N_LIB_PRIVATE N_NIMCALL(tyObject_ToJsonOptions__mRkT0c8Ugtl0BxbGElJ1oA, initToJsonOptions__stdZjsonutils_u33)(void);
N_LIB_PRIVATE N_NIMCALL(void, debug__basicZgitops_u1174)(NimStringV2 p_p0, NimStringV2* args_p1, NI args_p1Len_0);
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___stdZenvvars_u103)(tySequence__4eQHGndY6XBYpFOH09apV8Q dest_p0);
N_LIB_PRIVATE N_NIMCALL(NimStringV2, depGraphCacheFile__basicZcontext_u357)(tyObject_AtlasContext__9b9cOM1bS6SdrgGAPmY5KTwQ* ctx_p0);
static N_INLINE(NimStringV2, changeFileExt__stdZpaths_u179)(NimStringV2 filename_p0, NimStringV2 ext_p1);
N_LIB_PRIVATE N_NIMCALL(NimStringV2, noschangeFileExt)(NimStringV2 filename_p0, NimStringV2 ext_p1);
N_LIB_PRIVATE N_NIMCALL(void, dumpJson__basicZdeptypesjson_u13765)(tyObject_DepGraph__i1RlFs3c9aTk9bK2vN5Pa2yw* d_p0, NimStringV2 filename_p1, NIM_BOOL pretty_p2);
static N_INLINE(NIM_BOOL, isAbsolute__stdZpaths_u143)(NimStringV2 path_p0);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, nosisAbsolute)(NimStringV2 path_p0);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, nosfileExists)(NimStringV2 filename_p0);
static N_INLINE(NimStringV2, parentDir__stdZpaths_u155)(NimStringV2 path_p0);
N_LIB_PRIVATE N_NIMCALL(NimStringV2, nosparentDir)(NimStringV2 path_p0);
N_LIB_PRIVATE N_NIMCALL(void, loadJson__basicZdeptypesjson_u14555)(tyObject_NimbleContext__4UNXx9ceXbsj5kR4Hz1gUgA* nc_p0, NimStringV2 filename_p1, tyObject_DepGraph__i1RlFs3c9aTk9bK2vN5Pa2yw* Result);
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___basicZcontext_u87)(tyObject_AtlasContext__9b9cOM1bS6SdrgGAPmY5KTwQ* dest_p0);
static const struct {
  NI cap; NIM_CHAR data[6+1];
} TM__HCWeR39aTt08yMh4d9aL3kjw_2 = { 6 | NIM_STRLIT_FLAG, "SemVer" };
static const NimStringV2 TM__HCWeR39aTt08yMh4d9aL3kjw_3 = {6, (NimStrPayload*)&TM__HCWeR39aTt08yMh4d9aL3kjw_2};
static const struct {
  NI cap; NIM_CHAR data[12+1];
} TM__HCWeR39aTt08yMh4d9aL3kjw_4 = { 12 | NIM_STRLIT_FLAG, "atlas:config" };
static const NimStringV2 TM__HCWeR39aTt08yMh4d9aL3kjw_5 = {12, (NimStrPayload*)&TM__HCWeR39aTt08yMh4d9aL3kjw_4};
static const struct {
  NI cap; NIM_CHAR data[21+1];
} TM__HCWeR39aTt08yMh4d9aL3kjw_6 = { 21 | NIM_STRLIT_FLAG, "Reading config file: " };
static const NimStringV2 TM__HCWeR39aTt08yMh4d9aL3kjw_7 = {21, (NimStrPayload*)&TM__HCWeR39aTt08yMh4d9aL3kjw_6};
static const NimStringV2 TM__HCWeR39aTt08yMh4d9aL3kjw_8 = {12, (NimStrPayload*)&TM__HCWeR39aTt08yMh4d9aL3kjw_4};
static const struct {
  NI cap; NIM_CHAR data[30+1];
} TM__HCWeR39aTt08yMh4d9aL3kjw_9 = { 30 | NIM_STRLIT_FLAG, "could not read project config:" };
static const NimStringV2 TM__HCWeR39aTt08yMh4d9aL3kjw_10 = {30, (NimStrPayload*)&TM__HCWeR39aTt08yMh4d9aL3kjw_9};
static const struct {
  NI cap; NIM_CHAR data[31+1];
} TM__HCWeR39aTt08yMh4d9aL3kjw_11 = { 31 | NIM_STRLIT_FLAG, "invalid name override pattern: " };
static const NimStringV2 TM__HCWeR39aTt08yMh4d9aL3kjw_12 = {31, (NimStrPayload*)&TM__HCWeR39aTt08yMh4d9aL3kjw_11};
static const struct {
  NI cap; NIM_CHAR data[89+1];
} TM__HCWeR39aTt08yMh4d9aL3kjw_13 = { 89 | NIM_STRLIT_FLAG, "tables.nim(771, 13) `len(t) == L` the length of the table changed while iterating over it" };
static const NimStringV2 TM__HCWeR39aTt08yMh4d9aL3kjw_14 = {89, (NimStrPayload*)&TM__HCWeR39aTt08yMh4d9aL3kjw_13};
static const struct {
  NI cap; NIM_CHAR data[30+1];
} TM__HCWeR39aTt08yMh4d9aL3kjw_16 = { 30 | NIM_STRLIT_FLAG, "invalid URL override pattern: " };
static const NimStringV2 TM__HCWeR39aTt08yMh4d9aL3kjw_17 = {30, (NimStrPayload*)&TM__HCWeR39aTt08yMh4d9aL3kjw_16};
static const NimStringV2 TM__HCWeR39aTt08yMh4d9aL3kjw_18 = {89, (NimStrPayload*)&TM__HCWeR39aTt08yMh4d9aL3kjw_13};
static const NimStringV2 TM__HCWeR39aTt08yMh4d9aL3kjw_20 = {89, (NimStrPayload*)&TM__HCWeR39aTt08yMh4d9aL3kjw_13};
static const struct {
  NI cap; NIM_CHAR data[26+1];
} TM__HCWeR39aTt08yMh4d9aL3kjw_22 = { 26 | NIM_STRLIT_FLAG, "ignored unknown resolver: " };
static const NimStringV2 TM__HCWeR39aTt08yMh4d9aL3kjw_23 = {26, (NimStrPayload*)&TM__HCWeR39aTt08yMh4d9aL3kjw_22};
static const struct {
  NI cap; NIM_CHAR data[1+1];
} TM__HCWeR39aTt08yMh4d9aL3kjw_24 = { 1 | NIM_STRLIT_FLAG, "." };
static const NimStringV2 TM__HCWeR39aTt08yMh4d9aL3kjw_25 = {1, (NimStrPayload*)&TM__HCWeR39aTt08yMh4d9aL3kjw_24};
static const struct {
  NI cap; NIM_CHAR data[2+1];
} TM__HCWeR39aTt08yMh4d9aL3kjw_26 = { 2 | NIM_STRLIT_FLAG, ".." };
static const NimStringV2 TM__HCWeR39aTt08yMh4d9aL3kjw_27 = {2, (NimStrPayload*)&TM__HCWeR39aTt08yMh4d9aL3kjw_26};
static const struct {
  NI cap; NIM_CHAR data[5+1];
} TM__HCWeR39aTt08yMh4d9aL3kjw_28 = { 5 | NIM_STRLIT_FLAG, ".nims" };
static const NimStringV2 TM__HCWeR39aTt08yMh4d9aL3kjw_29 = {5, (NimStrPayload*)&TM__HCWeR39aTt08yMh4d9aL3kjw_28};
static const NimStringV2 TM__HCWeR39aTt08yMh4d9aL3kjw_30 = {89, (NimStrPayload*)&TM__HCWeR39aTt08yMh4d9aL3kjw_13};
static const struct {
  NI cap; NIM_CHAR data[90+1];
} TM__HCWeR39aTt08yMh4d9aL3kjw_33 = { 90 | NIM_STRLIT_FLAG, "iterators.nim(254, 11) `len(a) == L` the length of the seq changed while iterating over it" };
static const NimStringV2 TM__HCWeR39aTt08yMh4d9aL3kjw_34 = {90, (NimStrPayload*)&TM__HCWeR39aTt08yMh4d9aL3kjw_33};
static const struct {
  NI cap; NIM_CHAR data[45+1];
} TM__HCWeR39aTt08yMh4d9aL3kjw_35 = { 45 | NIM_STRLIT_FLAG, "confighandler.nim(107, 3) `not jcfg.isNil()` " };
static const NimStringV2 TM__HCWeR39aTt08yMh4d9aL3kjw_36 = {45, (NimStrPayload*)&TM__HCWeR39aTt08yMh4d9aL3kjw_35};
static const struct {
  NI cap; NIM_CHAR data[5+1];
} TM__HCWeR39aTt08yMh4d9aL3kjw_37 = { 5 | NIM_STRLIT_FLAG, "atlas" };
static const NimStringV2 TM__HCWeR39aTt08yMh4d9aL3kjw_38 = {5, (NimStrPayload*)&TM__HCWeR39aTt08yMh4d9aL3kjw_37};
static const struct {
  NI cap; NIM_CHAR data[21+1];
} TM__HCWeR39aTt08yMh4d9aL3kjw_39 = { 21 | NIM_STRLIT_FLAG, "writing config file: " };
static const NimStringV2 TM__HCWeR39aTt08yMh4d9aL3kjw_40 = {21, (NimStrPayload*)&TM__HCWeR39aTt08yMh4d9aL3kjw_39};
static const struct {
  NI cap; NIM_CHAR data[10+1];
} TM__HCWeR39aTt08yMh4d9aL3kjw_41 = { 10 | NIM_STRLIT_FLAG, "debug.json" };
static const NimStringV2 TM__HCWeR39aTt08yMh4d9aL3kjw_42 = {10, (NimStrPayload*)&TM__HCWeR39aTt08yMh4d9aL3kjw_41};
static const NimStringV2 TM__HCWeR39aTt08yMh4d9aL3kjw_43 = {5, (NimStrPayload*)&TM__HCWeR39aTt08yMh4d9aL3kjw_37};
static const struct {
  NI cap; NIM_CHAR data[22+1];
} TM__HCWeR39aTt08yMh4d9aL3kjw_44 = { 22 | NIM_STRLIT_FLAG, "writing dep graph to: " };
static const NimStringV2 TM__HCWeR39aTt08yMh4d9aL3kjw_45 = {22, (NimStrPayload*)&TM__HCWeR39aTt08yMh4d9aL3kjw_44};
static const struct {
  NI cap; NIM_CHAR data[7+1];
} TM__HCWeR39aTt08yMh4d9aL3kjw_46 = { 7 | NIM_STRLIT_FLAG, ".nimble" };
static const NimStringV2 TM__HCWeR39aTt08yMh4d9aL3kjw_47 = {7, (NimStrPayload*)&TM__HCWeR39aTt08yMh4d9aL3kjw_46};
static const struct {
  NI cap; NIM_CHAR data[121+1];
} TM__HCWeR39aTt08yMh4d9aL3kjw_48 = { 121 | NIM_STRLIT_FLAG, "confighandler.nim(120, 3) `nimbleFile.isAbsolute() and endsWith($nimbleFile, \".nimble\") and\012    fileExists($nimbleFile)` " };
static const NimStringV2 TM__HCWeR39aTt08yMh4d9aL3kjw_49 = {121, (NimStrPayload*)&TM__HCWeR39aTt08yMh4d9aL3kjw_48};
static const struct {
  NI cap; NIM_CHAR data[4+1];
} TM__HCWeR39aTt08yMh4d9aL3kjw_50 = { 4 | NIM_STRLIT_FLAG, "deps" };
static const NimStringV2 TM__HCWeR39aTt08yMh4d9aL3kjw_51 = {4, (NimStrPayload*)&TM__HCWeR39aTt08yMh4d9aL3kjw_50};
static const struct {
  NI cap; NIM_CHAR data[0+1];
} TM__HCWeR39aTt08yMh4d9aL3kjw_52 = { 0 | NIM_STRLIT_FLAG, "" };
static const NimStringV2 TM__HCWeR39aTt08yMh4d9aL3kjw_53 = {0, (NimStrPayload*)&TM__HCWeR39aTt08yMh4d9aL3kjw_52};
static const NimStringV2 TM__HCWeR39aTt08yMh4d9aL3kjw_54 = {5, (NimStrPayload*)&TM__HCWeR39aTt08yMh4d9aL3kjw_37};
static const struct {
  NI cap; NIM_CHAR data[24+1];
} TM__HCWeR39aTt08yMh4d9aL3kjw_55 = { 24 | NIM_STRLIT_FLAG, "reading dep graph from: " };
static const NimStringV2 TM__HCWeR39aTt08yMh4d9aL3kjw_56 = {24, (NimStrPayload*)&TM__HCWeR39aTt08yMh4d9aL3kjw_55};
extern NIM_THREADVAR NIM_BOOL nimInErrorMode__system_u4198;
extern NIM_THREADVAR Exception* currException__system_u3686;
static N_INLINE(void, nimSetMem__system_u2188)(void* a_p0, int v_p1, NI size_p2) {
	void* T1_;
	T1_ = (void*)0;
	T1_ = memset(a_p0, v_p1, ((size_t) (size_p2)));
}
static N_INLINE(void, nimZeroMem)(void* p_p0, NI size_p1) {
	nimSetMem__system_u2188(p_p0, ((int)0), size_p1);
}
static N_INLINE(NI, minuspercent___system_u813)(NI x_p0, NI y_p1) {
	NI result;
	result = ((NI) ((NU)((NU64)(((NU) (x_p0))) - (NU64)(((NU) (y_p1))))));
	return result;
}
static N_INLINE(NIM_BOOL, nimDecRefIsLastDyn)(void* p_p0) {
	NIM_BOOL result;
	result = NIM_FALSE;
	{
		tyObject_RefHeader__BVEqx9abcuAhztUEHxbqQJA* cell_1;
		NI T5_;
		if (!!((p_p0 == NIM_NIL))) goto LA3_;
		T5_ = (NI)0;
		T5_ = minuspercent___system_u813(((NI) (ptrdiff_t) (p_p0)), ((NI)16));
		cell_1 = ((tyObject_RefHeader__BVEqx9abcuAhztUEHxbqQJA*) (T5_));
		{
			if (!((NI)((*cell_1).rc & ((NI)-16)) == ((NI)0))) goto LA8_;
			result = NIM_TRUE;
		}
		goto LA6_;
LA8_: ;
		{
			(*cell_1).rc = minuspercent___system_u813((*cell_1).rc, ((NI)16));
		}
LA6_: ;
		{
			if (!result) goto LA13_;
			{
				if (!(((NI)0) < (*cell_1).rootIdx)) goto LA17_;
				unregisterCycle__system_u3185(cell_1);
			}
LA17_: ;
		}
LA13_: ;
	}
LA3_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___confighandler_u154)(tyObject_JsonConfig__iFWwY7PHFPaSFEA74m0sTw* dest_p0) {
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = nimDecRefIsLastDyn((*dest_p0).graph);
		if (!T3_) goto LA4_;
		eqdestroy___pureZjson_u67((&(*(*dest_p0).graph)));
		nimRawDispose((*dest_p0).graph, ((NI)8));
	}
LA4_: ;
	if ((*dest_p0).resolver.p && !((*dest_p0).resolver.p->cap & NIM_STRLIT_FLAG)) {
 deallocShared((*dest_p0).resolver.p);
}
	if ((*dest_p0).plugins.p && !((*dest_p0).plugins.p->cap & NIM_STRLIT_FLAG)) {
 deallocShared((*dest_p0).plugins.p);
}
	eqdestroy___basicZcompiledpatterns_u879((*dest_p0).pkgOverrides.data);
	eqdestroy___basicZcompiledpatterns_u879((*dest_p0).urlOverrides.data);
	eqdestroy___basicZcompiledpatterns_u879((*dest_p0).nameOverrides.data);
	if ((*dest_p0).deps.p && !((*dest_p0).deps.p->cap & NIM_STRLIT_FLAG)) {
 deallocShared((*dest_p0).deps.p);
}
}
static N_INLINE(NIM_BOOL*, nimErrorFlag)(void) {
	NIM_BOOL* result;
	result = (&nimInErrorMode__system_u4198);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, writeDefaultConfigFile__confighandler_u39)(void) {
	tyObject_JsonConfig__iFWwY7PHFPaSFEA74m0sTw config_1;
	NimStringV2 configFile_1;
	NimStringV2 colontmpD_;
	tyObject_JsonNodeObj__bQ2G262bsUg9ad9bFtUdEj9aA* colontmpD__2;
	NimStringV2 colontmpD__3;
NIM_BOOL oldNimErrFin1_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	nimZeroMem((void*)(&config_1), sizeof(tyObject_JsonConfig__iFWwY7PHFPaSFEA74m0sTw));
	configFile_1.len = 0; configFile_1.p = NIM_NIL;
	colontmpD_.len = 0; colontmpD_.p = NIM_NIL;
	colontmpD__2 = NIM_NIL;
	colontmpD__3.len = 0; colontmpD__3.p = NIM_NIL;
	nimZeroMem((void*)(&config_1), sizeof(tyObject_JsonConfig__iFWwY7PHFPaSFEA74m0sTw));
	config_1.deps = depsDir__basicZcontext_u348(NIM_TRUE);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	config_1.nameOverrides = initTable__basicZcompiledpatterns_u722(((NI)32));
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	config_1.urlOverrides = initTable__basicZcompiledpatterns_u722(((NI)32));
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	config_1.pkgOverrides = initTable__basicZcompiledpatterns_u722(((NI)32));
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	config_1.resolver = TM__HCWeR39aTt08yMh4d9aL3kjw_3;
	config_1.graph = newJNull__pureZjson_u438();
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	colontmpD_ = project__basicZcontext_u340();
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	configFile_1 = getProjectConfig__basicZcontext_u363(colontmpD_);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	colontmpD__2 = percent___confighandler_u101((&config_1));
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	colontmpD__3 = pretty__pureZjson_u4853(colontmpD__2, ((NI)2));
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	writeFile__stdZsyncio_u539(configFile_1, colontmpD__3);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	{
		LA1_:;
	}
	{
		oldNimErrFin1_ = *nimErr_; *nimErr_ = NIM_FALSE;
		if (colontmpD__3.p && !(colontmpD__3.p->cap & NIM_STRLIT_FLAG)) {
 deallocShared(colontmpD__3.p);
}
		eqdestroy___pureZjson_u321(colontmpD__2);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		if (colontmpD_.p && !(colontmpD_.p->cap & NIM_STRLIT_FLAG)) {
 deallocShared(colontmpD_.p);
}
		if (configFile_1.p && !(configFile_1.p->cap & NIM_STRLIT_FLAG)) {
 deallocShared(configFile_1.p);
}
		eqdestroy___confighandler_u154((&config_1));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		*nimErr_ = oldNimErrFin1_;
	}
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, readConfigFile__confighandler_u191)(NimStringV2 configFile_p0, tyObject_JsonConfig__iFWwY7PHFPaSFEA74m0sTw* Result) {
	tyObject_FileStreamObj__55YZdAmhEXf1sGHQMYxWjw* f_1;
	tyObject_JsonNodeObj__bQ2G262bsUg9ad9bFtUdEj9aA* j_1;
	tyObject_Joptions__Bf62ivDFOdoKXzuMmXTKWw T9_;
	tyObject_JsonConfig__iFWwY7PHFPaSFEA74m0sTw T10_;
NIM_BOOL oldNimErrFin8_;
NIM_BOOL oldNimErrFin7_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	nimZeroMem((void*)Result, sizeof(tyObject_JsonConfig__iFWwY7PHFPaSFEA74m0sTw));
	f_1 = NIM_NIL;
	f_1 = newFileStream__pureZstreams_u1210(configFile_p0, ((tyEnum_FileMode__wjF0STQGT1PBuQEl3p0tng)0), ((NI)-1));
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	{
		tyArray__pK4u9cQ1bJzH46rrmNu9bPMQ T6_;
		if (!(f_1 == ((tyObject_FileStreamObj__55YZdAmhEXf1sGHQMYxWjw*) NIM_NIL))) goto LA4_;
		T6_[0] = TM__HCWeR39aTt08yMh4d9aL3kjw_10;
		T6_[1] = configFile_p0;
		warn__basicZpkgurls_u133(TM__HCWeR39aTt08yMh4d9aL3kjw_8, T6_, 2);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		eqdestroy___pureZstreams_u1093(f_1);
		goto BeforeRet_;
	}
LA4_: ;
	j_1 = NIM_NIL;
	j_1 = parseJson__pureZjson_u5621((*((tyObject_StreamObj__bsqueMN9aCOGm2aNaHkuxoQ**) (&(f_1)))), configFile_p0, NIM_FALSE, NIM_FALSE);
	if (NIM_UNLIKELY(*nimErr_)) goto LA8_;
	T9_.allowExtraKeys = NIM_TRUE;
	T9_.allowMissingKeys = NIM_TRUE;
	nimZeroMem((void*)(&T10_), sizeof(tyObject_JsonConfig__iFWwY7PHFPaSFEA74m0sTw));
	jsonTo__confighandler_u204(j_1, T9_, (&T10_));
	(*Result) = T10_;
	if (NIM_UNLIKELY(*nimErr_)) goto LA8_;
	{
		LA8_:;
	}
	{
		oldNimErrFin8_ = *nimErr_; *nimErr_ = NIM_FALSE;
		eqdestroy___pureZjson_u321(j_1);
		if (NIM_UNLIKELY(*nimErr_)) goto LA7_;
		*nimErr_ = oldNimErrFin8_;
	}
	if (NIM_UNLIKELY(*nimErr_)) goto LA7_;
	{
		LA7_:;
	}
	{
		oldNimErrFin7_ = *nimErr_; *nimErr_ = NIM_FALSE;
		close__pureZstreams_u57((*((tyObject_StreamObj__bsqueMN9aCOGm2aNaHkuxoQ**) (&(f_1)))));
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		*nimErr_ = oldNimErrFin7_;
	}
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	{
		LA1_:;
	}
	{
		eqdestroy___pureZstreams_u1093(f_1);
	}
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
}
static N_INLINE(NimStringV2, expandTilde__stdZpaths_u215)(NimStringV2 path_p0) {
	NimStringV2 result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result.len = 0; result.p = NIM_NIL;
	result = expandTildeImpl__stdZpaths_u208(path_p0);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
static N_INLINE(void, eqdestroy___system_u281)(NimStringV2 x_p0) {
}
static N_INLINE(NIM_BOOL, isFilled__pureZcollectionsZtables_u31)(NI hcode_p0) {
	NIM_BOOL result;
	result = !((hcode_p0 == ((NI)0)));
	return result;
}
static N_INLINE(void, nimCopyMem)(void* dest_p0, void* source_p1, NI size_p2) {
	void* T1_;
	T1_ = (void*)0;
	T1_ = memcpy(dest_p0, source_p1, ((size_t) (size_p2)));
}
static N_INLINE(void, copyMem__system_u1755)(void* dest_p0, void* source_p1, NI size_p2) {
	nimCopyMem(dest_p0, source_p1, size_p2);
}
static N_INLINE(void, appendString)(NimStringV2* dest_p0, NimStringV2 src_p1) {
	{
		if (!(((NI)0) < src_p1.len)) goto LA3_;
		copyMem__system_u1755(((void*) ((&(*(*dest_p0).p).data[(*dest_p0).len]))), ((void*) ((&(*src_p1.p).data[((NI)0)]))), (src_p1.len));
		(*dest_p0).len += src_p1.len;
		(*(*dest_p0).p).data[(*dest_p0).len] = 0;
	}
LA3_: ;
}
static N_INLINE(NIM_BOOL, nimAddInt)(NI a_p0, NI b_p1, NI* res_p2) {
	NIM_BOOL result;
	NI r_1;
	result = (NIM_BOOL)0;
	r_1 = ((NI) ((NU)((NU64)(((NU) (a_p0))) + (NU64)(((NU) (b_p1))))));
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = (((NI)0) <= (NI)(r_1 ^ a_p0));
		if (T3_) goto LA4_;
		T3_ = (((NI)0) <= (NI)(r_1 ^ b_p1));
LA4_: ;
		if (!T3_) goto LA5_;
		(*res_p2) = r_1;
	}
	goto LA1_;
LA5_: ;
	{
		result = NIM_TRUE;
	}
LA1_: ;
	return result;
}
static N_INLINE(NIM_BOOL, isObjDisplayCheck)(TNimTypeV2* source_p0, NI16 targetDepth_p1, NU32 token_p2) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	T1_ = (NIM_BOOL)0;
	T1_ = (targetDepth_p1 <= (*source_p0).depth);
	if (!(T1_)) goto LA2_;
	T1_ = ((*source_p0).display[targetDepth_p1] == token_p2);
LA2_: ;
	result = T1_;
	return result;
}
static N_INLINE(Exception*, nimBorrowCurrentException)(void) {
	Exception* result;
	result = currException__system_u3686;
	return result;
}
static N_INLINE(void, popCurrentException)(void) {
	eqcopy___system_u3719(&currException__system_u3686, (*currException__system_u3686).up, NIM_FALSE);
}
static N_INLINE(NimStringV2, slash___stdZpaths_u84)(NimStringV2 head_p0, NimStringV2 tail_p1) {
	NimStringV2 result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result.len = 0; result.p = NIM_NIL;
	result = nosjoinPath(head_p0, tail_p1);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
static N_INLINE(NCSTRING, nimToCStringConv)(NimStringV2 s_p0) {
	NCSTRING result;
	{
		if (!(s_p0.len == ((NI)0))) goto LA3_;
		result = "";
	}
	goto LA1_;
LA3_: ;
	{
		result = ((NCSTRING) ((*s_p0.p).data));
	}
LA1_: ;
	return result;
}
static N_INLINE(int, nimCmpMem)(void* a_p0, void* b_p1, NI size_p2) {
	int result;
	result = memcmp(a_p0, b_p1, ((size_t) (size_p2)));
	return result;
}
static N_INLINE(NIM_BOOL, equalMem__system_u1763)(void* a_p0, void* b_p1, NI size_p2) {
	NIM_BOOL result;
	int T1_;
	T1_ = (int)0;
	T1_ = nimCmpMem(a_p0, b_p1, size_p2);
	result = (T1_ == ((NI32)0));
	return result;
}
static N_INLINE(NIM_BOOL, eqStrings)(NimStringV2 a_p0, NimStringV2 b_p1) {
	NIM_BOOL result;
	NI alen_1;
	NI blen_1;
{	result = NIM_FALSE;
	alen_1 = a_p0.len;
	blen_1 = b_p1.len;
	{
		if (!(alen_1 == blen_1)) goto LA3_;
		{
			if (!(alen_1 == ((NI)0))) goto LA7_;
			result = NIM_TRUE;
			goto BeforeRet_;
		}
LA7_: ;
		result = equalMem__system_u1763(((void*) ((&a_p0.p->data[((NI)0)]))), ((void*) ((&b_p1.p->data[((NI)0)]))), (alen_1));
		goto BeforeRet_;
	}
LA3_: ;
	}BeforeRet_: ;
	return result;
}
static N_INLINE(NimStringV2, slash___stdZprivateZospaths2_u88)(NimStringV2 head_p0, NimStringV2 tail_p1) {
	NimStringV2 result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result.len = 0; result.p = NIM_NIL;
	result = nosjoinPath(head_p0, tail_p1);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, readPluginsDir__confighandler_u17)(NimStringV2 dir_p0) {
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	{
		NimStringV2 f_1;
		NimStringV2 colontmp_;
		NimStringV2 colontmpD_;
		tyEnum_PathComponent__OiWviOlsjyqprC56d9bn9b4Q k_1;
		DIR* d_1;
		f_1.len = 0; f_1.p = NIM_NIL;
		colontmp_.len = 0; colontmp_.p = NIM_NIL;
		colontmpD_.len = 0; colontmpD_.p = NIM_NIL;
		k_1 = (tyEnum_PathComponent__OiWviOlsjyqprC56d9bn9b4Q)0;
		colontmpD_ = project__basicZcontext_u340();
		if (NIM_UNLIKELY(*nimErr_)) goto LA2_;
		colontmp_ = slash___stdZpaths_u84(colontmpD_, dir_p0);
		if (NIM_UNLIKELY(*nimErr_)) goto LA2_;
		d_1 = opendir(nimToCStringConv(colontmp_));
		{
			if (!(d_1 == ((DIR*) NIM_NIL))) goto LA5_;
			{
				NI32 T11_;
				if (!NIM_FALSE) goto LA9_;
				T11_ = (NI32)0;
				T11_ = osLastError__stdZoserrors_u122();
				if (NIM_UNLIKELY(*nimErr_)) goto LA2_;
				raiseOSError__stdZoserrors_u119(T11_, colontmp_);
				if (NIM_UNLIKELY(*nimErr_)) goto LA2_;
			}
LA9_: ;
		}
		goto LA3_;
LA5_: ;
		{
			{
				while (1) {
					{
						NimStringV2 y_1;
						struct dirent* x_1;
						y_1.len = 0; y_1.p = NIM_NIL;
						x_1 = readdir(d_1);
						{
							if (!(x_1 == ((struct dirent*) NIM_NIL))) goto LA20_;
							if (y_1.p && !(y_1.p->cap & NIM_STRLIT_FLAG)) {
 deallocShared(y_1.p);
}
							goto LA14;
						}
LA20_: ;
						y_1 = cstrToNimstr(((NCSTRING) ((*x_1).d_name)));
						{
							NIM_BOOL T24_;
							NimStringV2 path_1;
							struct stat s_1;
							tyEnum_PathComponent__OiWviOlsjyqprC56d9bn9b4Q k_2;
							T24_ = (NIM_BOOL)0;
							T24_ = !(eqStrings(y_1, TM__HCWeR39aTt08yMh4d9aL3kjw_25));
							if (!(T24_)) goto LA25_;
							T24_ = !(eqStrings(y_1, TM__HCWeR39aTt08yMh4d9aL3kjw_27));
LA25_: ;
							if (!T24_) goto LA26_;
							path_1.len = 0; path_1.p = NIM_NIL;
							nimZeroMem((void*)(&s_1), sizeof(struct stat));
							path_1 = slash___stdZprivateZospaths2_u88(colontmp_, y_1);
							if (NIM_UNLIKELY(*nimErr_)) goto LA28_;
							{
								if (!NIM_TRUE) goto LA31_;
								eqcopy___system_u2754((&y_1), path_1);
							}
LA31_: ;
							k_2 = ((tyEnum_PathComponent__OiWviOlsjyqprC56d9bn9b4Q)0);
							switch ((*x_1).d_type) {
							case ((NI8)4):
							{
								k_2 = ((tyEnum_PathComponent__OiWviOlsjyqprC56d9bn9b4Q)2);
							}
							break;
							case ((NI8)10):
							{
								NIM_BOOL isSpecialX60gensym19__1;
								tyTuple__4ZA8Mtd29a9cAR3xLlz7LVrw tmpTupleAsgn;
								isSpecialX60gensym19__1 = (NIM_BOOL)0;
								tmpTupleAsgn = getSymlinkFileKind__stdZprivateZoscommon_u17(path_1);
								if (NIM_UNLIKELY(*nimErr_)) goto LA28_;
								k_2 = tmpTupleAsgn.Field0;
								isSpecialX60gensym19__1 = tmpTupleAsgn.Field1;
								{
									NIM_BOOL T37_;
									T37_ = (NIM_BOOL)0;
									T37_ = NIM_FALSE;
									if (!(T37_)) goto LA38_;
									T37_ = isSpecialX60gensym19__1;
LA38_: ;
									if (!T37_) goto LA39_;
									if (path_1.p && !(path_1.p->cap & NIM_STRLIT_FLAG)) {
 deallocShared(path_1.p);
}
									if (y_1.p && !(y_1.p->cap & NIM_STRLIT_FLAG)) {
 deallocShared(y_1.p);
}
									goto LA16;
								}
LA39_: ;
							}
							break;
							case ((NI8)0):
							{
								{
									int T44_;
									T44_ = (int)0;
									T44_ = lstat(nimToCStringConv(path_1), (&s_1));
									if (!(T44_ < ((NI32)0))) goto LA45_;
									if (path_1.p && !(path_1.p->cap & NIM_STRLIT_FLAG)) {
 deallocShared(path_1.p);
}
									if (y_1.p && !(y_1.p->cap & NIM_STRLIT_FLAG)) {
 deallocShared(y_1.p);
}
									goto LA16;
								}
								goto LA42_;
LA45_: ;
								{
									NIM_BOOL T48_;
									T48_ = (NIM_BOOL)0;
									T48_ = S_ISDIR(s_1.st_mode);
									if (!T48_) goto LA49_;
									k_2 = ((tyEnum_PathComponent__OiWviOlsjyqprC56d9bn9b4Q)2);
								}
								goto LA42_;
LA49_: ;
								{
									NIM_BOOL T52_;
									NIM_BOOL isSpecialX60gensym21__1;
									tyTuple__4ZA8Mtd29a9cAR3xLlz7LVrw tmpTupleAsgn_2;
									T52_ = (NIM_BOOL)0;
									T52_ = S_ISLNK(s_1.st_mode);
									if (!T52_) goto LA53_;
									isSpecialX60gensym21__1 = (NIM_BOOL)0;
									tmpTupleAsgn_2 = getSymlinkFileKind__stdZprivateZoscommon_u17(path_1);
									if (NIM_UNLIKELY(*nimErr_)) goto LA28_;
									k_2 = tmpTupleAsgn_2.Field0;
									isSpecialX60gensym21__1 = tmpTupleAsgn_2.Field1;
									{
										NIM_BOOL T57_;
										T57_ = (NIM_BOOL)0;
										T57_ = NIM_FALSE;
										if (!(T57_)) goto LA58_;
										T57_ = isSpecialX60gensym21__1;
LA58_: ;
										if (!T57_) goto LA59_;
										if (path_1.p && !(path_1.p->cap & NIM_STRLIT_FLAG)) {
 deallocShared(path_1.p);
}
										if (y_1.p && !(y_1.p->cap & NIM_STRLIT_FLAG)) {
 deallocShared(y_1.p);
}
										goto LA16;
									}
LA59_: ;
								}
								goto LA42_;
LA53_: ;
								{
									NIM_BOOL T62_;
									NIM_BOOL T64_;
									T62_ = (NIM_BOOL)0;
									T62_ = NIM_FALSE;
									if (!(T62_)) goto LA63_;
									T64_ = (NIM_BOOL)0;
									T64_ = S_ISREG(s_1.st_mode);
									T62_ = !(T64_);
LA63_: ;
									if (!T62_) goto LA65_;
									if (path_1.p && !(path_1.p->cap & NIM_STRLIT_FLAG)) {
 deallocShared(path_1.p);
}
									if (y_1.p && !(y_1.p->cap & NIM_STRLIT_FLAG)) {
 deallocShared(y_1.p);
}
									goto LA16;
								}
								goto LA42_;
LA65_: ;
LA42_: ;
							}
							break;
							default:
							{
								{
									NIM_BOOL T70_;
									T70_ = (NIM_BOOL)0;
									T70_ = NIM_FALSE;
									if (!(T70_)) goto LA71_;
									T70_ = !(((*x_1).d_type == ((NI8)8)));
LA71_: ;
									if (!T70_) goto LA72_;
									if (path_1.p && !(path_1.p->cap & NIM_STRLIT_FLAG)) {
 deallocShared(path_1.p);
}
									if (y_1.p && !(y_1.p->cap & NIM_STRLIT_FLAG)) {
 deallocShared(y_1.p);
}
									goto LA16;
								}
								goto LA68_;
LA72_: ;
								{
								}
LA68_: ;
							}
							break;
							}
							k_1 = k_2;
							eqsink___system_u2760((&f_1), y_1);
							eqwasMoved___system_u2751((&y_1));
							{
								NIM_BOOL T77_;
								tyObject_AtlasContext__9b9cOM1bS6SdrgGAPmY5KTwQ* T81_;
								T77_ = (NIM_BOOL)0;
								T77_ = (k_1 == ((tyEnum_PathComponent__OiWviOlsjyqprC56d9bn9b4Q)0));
								if (!(T77_)) goto LA78_;
								T77_ = nsuEndsWith(f_1, TM__HCWeR39aTt08yMh4d9aL3kjw_29);
								if (NIM_UNLIKELY(*nimErr_)) goto LA28_;
LA78_: ;
								if (!T77_) goto LA79_;
								T81_ = (tyObject_AtlasContext__9b9cOM1bS6SdrgGAPmY5KTwQ*)0;
								T81_ = context__basicZcontext_u319();
								if (NIM_UNLIKELY(*nimErr_)) goto LA28_;
								extractPluginInfo__basicZparse95requires_u4757(f_1, (&(*T81_).plugins));
								if (NIM_UNLIKELY(*nimErr_)) goto LA28_;
							}
LA79_: ;
							{
								LA28_:;
							}
							{
								if (path_1.p && !(path_1.p->cap & NIM_STRLIT_FLAG)) {
 deallocShared(path_1.p);
}
							}
							if (NIM_UNLIKELY(*nimErr_)) goto LA17_;
						}
LA26_: ;
						{
							LA17_:;
						}
						{
							if (y_1.p && !(y_1.p->cap & NIM_STRLIT_FLAG)) {
 deallocShared(y_1.p);
}
						}
						if (NIM_UNLIKELY(*nimErr_)) goto LA13_;
					} LA16: ;
				}
			} LA14: ;
			{
				LA13_:;
			}
			{
				int T88_;
				T88_ = (int)0;
				T88_ = closedir(d_1);
				(void)(T88_);
			}
			if (NIM_UNLIKELY(*nimErr_)) goto LA2_;
		}
LA3_: ;
		{
			LA2_:;
		}
		{
			if (colontmpD_.p && !(colontmpD_.p->cap & NIM_STRLIT_FLAG)) {
 deallocShared(colontmpD_.p);
}
			if (colontmp_.p && !(colontmp_.p->cap & NIM_STRLIT_FLAG)) {
 deallocShared(colontmp_.p);
}
			if (f_1.p && !(f_1.p->cap & NIM_STRLIT_FLAG)) {
 deallocShared(f_1.p);
}
		}
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, readAtlasContext__confighandler_u1222)(tyObject_AtlasContext__9b9cOM1bS6SdrgGAPmY5KTwQ* ctx_p0, NimStringV2 projectDir_p1) {
	NimStringV2 configFile_1;
	tyObject_JsonConfig__iFWwY7PHFPaSFEA74m0sTw m_1;
	tyArray__pK4u9cQ1bJzH46rrmNu9bPMQ T2_;
NIM_BOOL oldNimErrFin1_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	configFile_1.len = 0; configFile_1.p = NIM_NIL;
	nimZeroMem((void*)(&m_1), sizeof(tyObject_JsonConfig__iFWwY7PHFPaSFEA74m0sTw));
	configFile_1 = getProjectConfig__basicZcontext_u363(projectDir_p1);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	T2_[0] = TM__HCWeR39aTt08yMh4d9aL3kjw_7;
	T2_[1] = configFile_1;
	info__basicZparse95requires_u40(TM__HCWeR39aTt08yMh4d9aL3kjw_5, T2_, 2);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	readConfigFile__confighandler_u191(configFile_1, (&m_1));
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	eqcopy___system_u2754((&(*ctx_p0).projectDir), projectDir_p1);
	{
		NimStringV2 T7_;
		if (!(((NI)0) < m_1.deps.len)) goto LA5_;
		T7_.len = 0; T7_.p = NIM_NIL;
		T7_ = expandTilde__stdZpaths_u215(m_1.deps);
		if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___system_u281(T7_); goto LA1_;}
		eqsink___system_u2760((&(*ctx_p0).depsDir), T7_);
	}
LA5_: ;
	{
		NimStringV2 key_1;
		NimStringV2 val_1;
		NI L_1;
		key_1.len = 0; key_1.p = NIM_NIL;
		val_1.len = 0; val_1.p = NIM_NIL;
		L_1 = len__lockfiles_u2034(m_1.nameOverrides);
		if (NIM_UNLIKELY(*nimErr_)) goto LA9_;
		{
			NI h_1;
			NI colontmp_;
			NI T11_;
			NI res_1;
			h_1 = (NI)0;
			colontmp_ = (NI)0;
			T11_ = (m_1.nameOverrides.data.len-1);
			colontmp_ = T11_;
			res_1 = ((NI)0);
			{
				while (1) {
					NI TM__HCWeR39aTt08yMh4d9aL3kjw_15;
					if (!(res_1 <= colontmp_)) goto LA13;
					h_1 = ((NI) (res_1));
					{
						NIM_BOOL T16_;
						NimStringV2 err_1;
						if (h_1 < 0 || h_1 >= m_1.nameOverrides.data.len){ raiseIndexError2(h_1,m_1.nameOverrides.data.len-1); goto LA9_;
						}
						T16_ = (NIM_BOOL)0;
						T16_ = isFilled__pureZcollectionsZtables_u31(m_1.nameOverrides.data.p->data[h_1].Field0);
						if (NIM_UNLIKELY(*nimErr_)) goto LA9_;
						if (!T16_) goto LA17_;
						err_1.len = 0; err_1.p = NIM_NIL;
						if (h_1 < 0 || h_1 >= m_1.nameOverrides.data.len){ raiseIndexError2(h_1,m_1.nameOverrides.data.len-1); goto LA19_;
						}
						eqcopy___system_u2754((&key_1), m_1.nameOverrides.data.p->data[h_1].Field1);
						if (h_1 < 0 || h_1 >= m_1.nameOverrides.data.len){ raiseIndexError2(h_1,m_1.nameOverrides.data.len-1); goto LA19_;
						}
						eqcopy___system_u2754((&val_1), m_1.nameOverrides.data.p->data[h_1].Field2);
						err_1 = addPattern__basicZcompiledpatterns_u1187((&(*ctx_p0).nameOverrides), key_1, val_1);
						if (NIM_UNLIKELY(*nimErr_)) goto LA19_;
						{
							NimStringV2 colontmpD_;
							tyArray__YgExxhfgKcesA5EOUj1MOA T25_;
							NimStringV2 T26_;
							if (!(((NI)0) < err_1.len)) goto LA22_;
							colontmpD_.len = 0; colontmpD_.p = NIM_NIL;
							T26_.len = 0; T26_.p = NIM_NIL;
							T26_ = rawNewString(err_1.len + 31);
appendString((&T26_), TM__HCWeR39aTt08yMh4d9aL3kjw_12);
appendString((&T26_), err_1);
							colontmpD_ = T26_;
							T25_[0] = colontmpD_;
							error__basicZgitops_u1259(configFile_1, T25_, 1);
							if (NIM_UNLIKELY(*nimErr_)) goto LA24_;
							{
								LA24_:;
							}
							{
								if (colontmpD_.p && !(colontmpD_.p->cap & NIM_STRLIT_FLAG)) {
 deallocShared(colontmpD_.p);
}
							}
							if (NIM_UNLIKELY(*nimErr_)) goto LA19_;
						}
LA22_: ;
						{
							NI T31_;
							T31_ = (NI)0;
							T31_ = len__lockfiles_u2034(m_1.nameOverrides);
							if (NIM_UNLIKELY(*nimErr_)) goto LA19_;
							if (!!((T31_ == L_1))) goto LA32_;
							failedAssertImpl__stdZassertions_u95(TM__HCWeR39aTt08yMh4d9aL3kjw_14);
							if (NIM_UNLIKELY(*nimErr_)) goto LA19_;
						}
LA32_: ;
						{
							LA19_:;
						}
						{
							if (err_1.p && !(err_1.p->cap & NIM_STRLIT_FLAG)) {
 deallocShared(err_1.p);
}
						}
						if (NIM_UNLIKELY(*nimErr_)) goto LA9_;
					}
LA17_: ;
					if (nimAddInt(res_1, ((NI)1), &TM__HCWeR39aTt08yMh4d9aL3kjw_15)) { raiseOverflow(); goto LA9_;
					};
					res_1 = (NI)(TM__HCWeR39aTt08yMh4d9aL3kjw_15);
				} LA13: ;
			}
		}
		{
			LA9_:;
		}
		{
			if (val_1.p && !(val_1.p->cap & NIM_STRLIT_FLAG)) {
 deallocShared(val_1.p);
}
			if (key_1.p && !(key_1.p->cap & NIM_STRLIT_FLAG)) {
 deallocShared(key_1.p);
}
		}
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	}
	{
		NimStringV2 key_2;
		NimStringV2 val_2;
		NI L_2;
		key_2.len = 0; key_2.p = NIM_NIL;
		val_2.len = 0; val_2.p = NIM_NIL;
		L_2 = len__lockfiles_u2034(m_1.urlOverrides);
		if (NIM_UNLIKELY(*nimErr_)) goto LA39_;
		{
			NI h_2;
			NI colontmp__2;
			NI T41_;
			NI res_2;
			h_2 = (NI)0;
			colontmp__2 = (NI)0;
			T41_ = (m_1.urlOverrides.data.len-1);
			colontmp__2 = T41_;
			res_2 = ((NI)0);
			{
				while (1) {
					NI TM__HCWeR39aTt08yMh4d9aL3kjw_19;
					if (!(res_2 <= colontmp__2)) goto LA43;
					h_2 = ((NI) (res_2));
					{
						NIM_BOOL T46_;
						NimStringV2 err_2;
						if (h_2 < 0 || h_2 >= m_1.urlOverrides.data.len){ raiseIndexError2(h_2,m_1.urlOverrides.data.len-1); goto LA39_;
						}
						T46_ = (NIM_BOOL)0;
						T46_ = isFilled__pureZcollectionsZtables_u31(m_1.urlOverrides.data.p->data[h_2].Field0);
						if (NIM_UNLIKELY(*nimErr_)) goto LA39_;
						if (!T46_) goto LA47_;
						err_2.len = 0; err_2.p = NIM_NIL;
						if (h_2 < 0 || h_2 >= m_1.urlOverrides.data.len){ raiseIndexError2(h_2,m_1.urlOverrides.data.len-1); goto LA49_;
						}
						eqcopy___system_u2754((&key_2), m_1.urlOverrides.data.p->data[h_2].Field1);
						if (h_2 < 0 || h_2 >= m_1.urlOverrides.data.len){ raiseIndexError2(h_2,m_1.urlOverrides.data.len-1); goto LA49_;
						}
						eqcopy___system_u2754((&val_2), m_1.urlOverrides.data.p->data[h_2].Field2);
						err_2 = addPattern__basicZcompiledpatterns_u1187((&(*ctx_p0).urlOverrides), key_2, val_2);
						if (NIM_UNLIKELY(*nimErr_)) goto LA49_;
						{
							NimStringV2 colontmpD__2;
							tyArray__YgExxhfgKcesA5EOUj1MOA T55_;
							NimStringV2 T56_;
							if (!(((NI)0) < err_2.len)) goto LA52_;
							colontmpD__2.len = 0; colontmpD__2.p = NIM_NIL;
							T56_.len = 0; T56_.p = NIM_NIL;
							T56_ = rawNewString(err_2.len + 30);
appendString((&T56_), TM__HCWeR39aTt08yMh4d9aL3kjw_17);
appendString((&T56_), err_2);
							colontmpD__2 = T56_;
							T55_[0] = colontmpD__2;
							error__basicZgitops_u1259(configFile_1, T55_, 1);
							if (NIM_UNLIKELY(*nimErr_)) goto LA54_;
							{
								LA54_:;
							}
							{
								if (colontmpD__2.p && !(colontmpD__2.p->cap & NIM_STRLIT_FLAG)) {
 deallocShared(colontmpD__2.p);
}
							}
							if (NIM_UNLIKELY(*nimErr_)) goto LA49_;
						}
LA52_: ;
						{
							NI T61_;
							T61_ = (NI)0;
							T61_ = len__lockfiles_u2034(m_1.urlOverrides);
							if (NIM_UNLIKELY(*nimErr_)) goto LA49_;
							if (!!((T61_ == L_2))) goto LA62_;
							failedAssertImpl__stdZassertions_u95(TM__HCWeR39aTt08yMh4d9aL3kjw_18);
							if (NIM_UNLIKELY(*nimErr_)) goto LA49_;
						}
LA62_: ;
						{
							LA49_:;
						}
						{
							if (err_2.p && !(err_2.p->cap & NIM_STRLIT_FLAG)) {
 deallocShared(err_2.p);
}
						}
						if (NIM_UNLIKELY(*nimErr_)) goto LA39_;
					}
LA47_: ;
					if (nimAddInt(res_2, ((NI)1), &TM__HCWeR39aTt08yMh4d9aL3kjw_19)) { raiseOverflow(); goto LA39_;
					};
					res_2 = (NI)(TM__HCWeR39aTt08yMh4d9aL3kjw_19);
				} LA43: ;
			}
		}
		{
			LA39_:;
		}
		{
			if (val_2.p && !(val_2.p->cap & NIM_STRLIT_FLAG)) {
 deallocShared(val_2.p);
}
			if (key_2.p && !(key_2.p->cap & NIM_STRLIT_FLAG)) {
 deallocShared(key_2.p);
}
		}
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	}
	{
		NimStringV2 key_3;
		NimStringV2 val_3;
		NI L_3;
		key_3.len = 0; key_3.p = NIM_NIL;
		val_3.len = 0; val_3.p = NIM_NIL;
		L_3 = len__lockfiles_u2034(m_1.pkgOverrides);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		{
			NI h_3;
			NI colontmp__3;
			NI T70_;
			NI res_3;
			h_3 = (NI)0;
			colontmp__3 = (NI)0;
			T70_ = (m_1.pkgOverrides.data.len-1);
			colontmp__3 = T70_;
			res_3 = ((NI)0);
			{
				while (1) {
					NI TM__HCWeR39aTt08yMh4d9aL3kjw_21;
					if (!(res_3 <= colontmp__3)) goto LA72;
					h_3 = ((NI) (res_3));
					{
						NIM_BOOL T75_;
						tyObject_Uri__MX62yCLGQmnfVYEE3Hjm9cA T78_;
						if (h_3 < 0 || h_3 >= m_1.pkgOverrides.data.len){ raiseIndexError2(h_3,m_1.pkgOverrides.data.len-1); goto LA1_;
						}
						T75_ = (NIM_BOOL)0;
						T75_ = isFilled__pureZcollectionsZtables_u31(m_1.pkgOverrides.data.p->data[h_3].Field0);
						if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
						if (!T75_) goto LA76_;
						if (h_3 < 0 || h_3 >= m_1.pkgOverrides.data.len){ raiseIndexError2(h_3,m_1.pkgOverrides.data.len-1); goto LA1_;
						}
						eqcopy___system_u2754((&key_3), m_1.pkgOverrides.data.p->data[h_3].Field1);
						if (h_3 < 0 || h_3 >= m_1.pkgOverrides.data.len){ raiseIndexError2(h_3,m_1.pkgOverrides.data.len-1); goto LA1_;
						}
						eqcopy___system_u2754((&val_3), m_1.pkgOverrides.data.p->data[h_3].Field2);
						nimZeroMem((void*)(&T78_), sizeof(tyObject_Uri__MX62yCLGQmnfVYEE3Hjm9cA));
						parseUri__pureZuri_u295(val_3, (&T78_));
						if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
						X5BX5Deq___confighandler_u1295((&(*ctx_p0).pkgOverrides), key_3, (&T78_));
						if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
						{
							NI T81_;
							T81_ = (NI)0;
							T81_ = len__lockfiles_u2034(m_1.pkgOverrides);
							if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
							if (!!((T81_ == L_3))) goto LA82_;
							failedAssertImpl__stdZassertions_u95(TM__HCWeR39aTt08yMh4d9aL3kjw_20);
							if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
						}
LA82_: ;
					}
LA76_: ;
					if (nimAddInt(res_3, ((NI)1), &TM__HCWeR39aTt08yMh4d9aL3kjw_21)) { raiseOverflow(); goto LA1_;
					};
					res_3 = (NI)(TM__HCWeR39aTt08yMh4d9aL3kjw_21);
				} LA72: ;
			}
		}
		if (val_3.p && !(val_3.p->cap & NIM_STRLIT_FLAG)) {
 deallocShared(val_3.p);
}
		if (key_3.p && !(key_3.p->cap & NIM_STRLIT_FLAG)) {
 deallocShared(key_3.p);
}
	}
	{
		tyEnum_ResolutionAlgorithm__EDrRewmAkc38ngHuXBbDaw T89_;
		if (!(((NI)0) < m_1.resolver.len)) goto LA86_;
		T89_ = (tyEnum_ResolutionAlgorithm__EDrRewmAkc38ngHuXBbDaw)0;
		T89_ = parseEnum__confighandler_u2287(m_1.resolver);
		if (NIM_UNLIKELY(*nimErr_)) goto LA88_;
		(*ctx_p0).defaultAlgo = T89_;
		if (NIM_UNLIKELY(*nimErr_)) {
			LA88_:;
			if (isObjDisplayCheck(nimBorrowCurrentException()->Sup.m_type, 3, 1287918080)) {
				NimStringV2 colontmpD__3;
				tyArray__YgExxhfgKcesA5EOUj1MOA T94_;
				NimStringV2 T95_;
				*nimErr_ = NIM_FALSE;
				colontmpD__3.len = 0; colontmpD__3.p = NIM_NIL;
				T95_.len = 0; T95_.p = NIM_NIL;
				T95_ = rawNewString(m_1.resolver.len + 26);
appendString((&T95_), TM__HCWeR39aTt08yMh4d9aL3kjw_23);
appendString((&T95_), m_1.resolver);
				colontmpD__3 = T95_;
				T94_[0] = colontmpD__3;
				warn__basicZgitops_u3033(configFile_1, T94_, 1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA93_;
				{
					LA93_:;
				}
				{
					if (colontmpD__3.p && !(colontmpD__3.p->cap & NIM_STRLIT_FLAG)) {
 deallocShared(colontmpD__3.p);
}
				}
				if (NIM_UNLIKELY(*nimErr_)) goto LA91_;
				popCurrentException();
				LA91_:;
			}
		}
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	}
LA86_: ;
	{
		NimStringV2 colontmpD__4;
		if (!(((NI)0) < m_1.plugins.len)) goto LA100_;
		colontmpD__4 = eqdup___system_u2757(m_1.plugins);
		eqsink___system_u2760((&(*ctx_p0).pluginsFile), colontmpD__4);
		readPluginsDir__confighandler_u17(m_1.plugins);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	}
LA100_: ;
	{
		LA1_:;
	}
	{
		oldNimErrFin1_ = *nimErr_; *nimErr_ = NIM_FALSE;
		eqdestroy___confighandler_u154((&m_1));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		if (configFile_1.p && !(configFile_1.p->cap & NIM_STRLIT_FLAG)) {
 deallocShared(configFile_1.p);
}
		*nimErr_ = oldNimErrFin1_;
	}
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, readConfig__confighandler_u2316)(void) {
	NimStringV2 colontmpD_;
	tyObject_AtlasContext__9b9cOM1bS6SdrgGAPmY5KTwQ* T2_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	colontmpD_.len = 0; colontmpD_.p = NIM_NIL;
	T2_ = (tyObject_AtlasContext__9b9cOM1bS6SdrgGAPmY5KTwQ*)0;
	T2_ = context__basicZcontext_u319();
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	colontmpD_ = project__basicZcontext_u340();
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	readAtlasContext__confighandler_u1222(T2_, colontmpD_);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	{
		LA1_:;
	}
	{
		if (colontmpD_.p && !(colontmpD_.p->cap & NIM_STRLIT_FLAG)) {
 deallocShared(colontmpD_.p);
}
	}
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___confighandler_u2687)(tySequence__VNJhX4j4hhkFWIpWY4IWXg dest_p0) {
	NI colontmp_;
	colontmp_ = ((NI)0);
	{
		while (1) {
			NI T3_;
			T3_ = dest_p0.len;
			if (!(colontmp_ < T3_)) goto LA2;
			if (dest_p0.p->data[colontmp_].Field0.p && !(dest_p0.p->data[colontmp_].Field0.p->cap & NIM_STRLIT_FLAG)) {
 deallocShared(dest_p0.p->data[colontmp_].Field0.p);
}
			if (dest_p0.p->data[colontmp_].Field1.anchor.p && !(dest_p0.p->data[colontmp_].Field1.anchor.p->cap & NIM_STRLIT_FLAG)) {
 deallocShared(dest_p0.p->data[colontmp_].Field1.anchor.p);
}
			if (dest_p0.p->data[colontmp_].Field1.query.p && !(dest_p0.p->data[colontmp_].Field1.query.p->cap & NIM_STRLIT_FLAG)) {
 deallocShared(dest_p0.p->data[colontmp_].Field1.query.p);
}
			if (dest_p0.p->data[colontmp_].Field1.path.p && !(dest_p0.p->data[colontmp_].Field1.path.p->cap & NIM_STRLIT_FLAG)) {
 deallocShared(dest_p0.p->data[colontmp_].Field1.path.p);
}
			if (dest_p0.p->data[colontmp_].Field1.port.p && !(dest_p0.p->data[colontmp_].Field1.port.p->cap & NIM_STRLIT_FLAG)) {
 deallocShared(dest_p0.p->data[colontmp_].Field1.port.p);
}
			if (dest_p0.p->data[colontmp_].Field1.hostname.p && !(dest_p0.p->data[colontmp_].Field1.hostname.p->cap & NIM_STRLIT_FLAG)) {
 deallocShared(dest_p0.p->data[colontmp_].Field1.hostname.p);
}
			if (dest_p0.p->data[colontmp_].Field1.password.p && !(dest_p0.p->data[colontmp_].Field1.password.p->cap & NIM_STRLIT_FLAG)) {
 deallocShared(dest_p0.p->data[colontmp_].Field1.password.p);
}
			if (dest_p0.p->data[colontmp_].Field1.username.p && !(dest_p0.p->data[colontmp_].Field1.username.p->cap & NIM_STRLIT_FLAG)) {
 deallocShared(dest_p0.p->data[colontmp_].Field1.username.p);
}
			if (dest_p0.p->data[colontmp_].Field1.scheme.p && !(dest_p0.p->data[colontmp_].Field1.scheme.p->cap & NIM_STRLIT_FLAG)) {
 deallocShared(dest_p0.p->data[colontmp_].Field1.scheme.p);
}
			colontmp_ += ((NI)1);
		} LA2: ;
	}
	if (dest_p0.p && !(dest_p0.p->cap & NIM_STRLIT_FLAG)) {
 alignedDealloc(dest_p0.p, NIM_ALIGNOF(tyTuple__IwpWnMdQOSUzXomfBe9cMRQ));
}
}
N_LIB_PRIVATE N_NIMCALL(void, writeConfig__confighandler_u2317)(void) {
	tyObject_JsonConfig__iFWwY7PHFPaSFEA74m0sTw config_1;
	tySequence__4eQHGndY6XBYpFOH09apV8Q colontmpD_;
	NimStringV2 colontmpD__2;
	tyObject_JsonNodeObj__bQ2G262bsUg9ad9bFtUdEj9aA* jcfg_1;
	NimStringV2 configFile_1;
	NimStringV2 colontmpD__3;
	NimStringV2 colontmpD__4;
	tyObject_AtlasContext__9b9cOM1bS6SdrgGAPmY5KTwQ* T2_;
	tyObject_AtlasContext__9b9cOM1bS6SdrgGAPmY5KTwQ* T3_;
	tySequence__4eQHGndY6XBYpFOH09apV8Q T4_;
	tyObject_AtlasContext__9b9cOM1bS6SdrgGAPmY5KTwQ* T34_;
	tyObject_AtlasContext__9b9cOM1bS6SdrgGAPmY5KTwQ* T35_;
	tyObject_ToJsonOptions__mRkT0c8Ugtl0BxbGElJ1oA T36_;
	tyArray__pK4u9cQ1bJzH46rrmNu9bPMQ T41_;
NIM_BOOL oldNimErrFin1_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	nimZeroMem((void*)(&config_1), sizeof(tyObject_JsonConfig__iFWwY7PHFPaSFEA74m0sTw));
	colontmpD_.len = 0; colontmpD_.p = NIM_NIL;
	jcfg_1 = NIM_NIL;
	configFile_1.len = 0; configFile_1.p = NIM_NIL;
	colontmpD__3.len = 0; colontmpD__3.p = NIM_NIL;
	colontmpD__4.len = 0; colontmpD__4.p = NIM_NIL;
	config_1.deps = depsDir__basicZcontext_u348(NIM_TRUE);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	T2_ = (tyObject_AtlasContext__9b9cOM1bS6SdrgGAPmY5KTwQ*)0;
	T2_ = context__basicZcontext_u319();
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	config_1.nameOverrides = toTable__basicZcompiledpatterns_u2671((&(*T2_).nameOverrides));
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	T3_ = (tyObject_AtlasContext__9b9cOM1bS6SdrgGAPmY5KTwQ*)0;
	T3_ = context__basicZcontext_u319();
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	config_1.urlOverrides = toTable__basicZcompiledpatterns_u2671((&(*T3_).urlOverrides));
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	T4_.len = 0; T4_.p = NIM_NIL;
	{
		tySequence__VNJhX4j4hhkFWIpWY4IWXg colontmp__1;
		tySequence__VNJhX4j4hhkFWIpWY4IWXg resultX60gensym52__1;
		tySequence__4eQHGndY6XBYpFOH09apV8Q resultX60gensym53__1;
		NI iX60gensym53__1;
		NI T23_;
		colontmp__1.len = 0; colontmp__1.p = NIM_NIL;
		resultX60gensym52__1.len = 0; resultX60gensym52__1.p = NIM_NIL;
		resultX60gensym53__1.len = 0; resultX60gensym53__1.p = NIM_NIL;
		resultX60gensym52__1.len = 0; resultX60gensym52__1.p = (tySequence__VNJhX4j4hhkFWIpWY4IWXg_Content*) newSeqPayload(0, sizeof(tyTuple__IwpWnMdQOSUzXomfBe9cMRQ), NIM_ALIGNOF(tyTuple__IwpWnMdQOSUzXomfBe9cMRQ));
		{
			tyTuple__IwpWnMdQOSUzXomfBe9cMRQ xX60gensym52__1;
			tyObject_Table__8bDqb52Br017mlUSc5FIOw colontmp__2;
			tyObject_AtlasContext__9b9cOM1bS6SdrgGAPmY5KTwQ* T7_;
			NI L_1;
			nimZeroMem((void*)(&xX60gensym52__1), sizeof(tyTuple__IwpWnMdQOSUzXomfBe9cMRQ));
			nimZeroMem((void*)(&colontmp__2), sizeof(tyObject_Table__8bDqb52Br017mlUSc5FIOw));
			T7_ = (tyObject_AtlasContext__9b9cOM1bS6SdrgGAPmY5KTwQ*)0;
			T7_ = context__basicZcontext_u319();
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			colontmp__2 = (*T7_).pkgOverrides;
			L_1 = len__confighandler_u2362(colontmp__2);
			if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
			{
				NI h_1;
				NI colontmp__3;
				NI T9_;
				NI res_1;
				h_1 = (NI)0;
				colontmp__3 = (NI)0;
				T9_ = (colontmp__2.data.len-1);
				colontmp__3 = T9_;
				res_1 = ((NI)0);
				{
					while (1) {
						NI TM__HCWeR39aTt08yMh4d9aL3kjw_31;
						if (!(res_1 <= colontmp__3)) goto LA11;
						h_1 = ((NI) (res_1));
						{
							NIM_BOOL T14_;
							NimStringV2 colontmpD__5;
							tyObject_Uri__MX62yCLGQmnfVYEE3Hjm9cA colontmpD__6;
							tyTuple__IwpWnMdQOSUzXomfBe9cMRQ T17_;
							tyTuple__IwpWnMdQOSUzXomfBe9cMRQ blitTmp_1;
							if (h_1 < 0 || h_1 >= colontmp__2.data.len){ raiseIndexError2(h_1,colontmp__2.data.len-1); goto LA1_;
							}
							T14_ = (NIM_BOOL)0;
							T14_ = isFilled__pureZcollectionsZtables_u31(colontmp__2.data.p->data[h_1].Field0);
							if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
							if (!T14_) goto LA15_;
							if (h_1 < 0 || h_1 >= colontmp__2.data.len){ raiseIndexError2(h_1,colontmp__2.data.len-1); goto LA1_;
							}
							colontmpD__5 = eqdup___system_u2757(colontmp__2.data.p->data[h_1].Field1);
							T17_.Field0 = colontmpD__5;
							if (h_1 < 0 || h_1 >= colontmp__2.data.len){ raiseIndexError2(h_1,colontmp__2.data.len-1); goto LA1_;
							}
							eqdup___pureZuri_u219((&colontmp__2.data.p->data[h_1].Field2), (&colontmpD__6));
							T17_.Field1 = colontmpD__6;
							eqsink___confighandler_u2584((&xX60gensym52__1), (&T17_));
							nimZeroMem((void*)(&blitTmp_1), sizeof(tyTuple__IwpWnMdQOSUzXomfBe9cMRQ));
							blitTmp_1 = xX60gensym52__1;
							eqwasMoved___confighandler_u2572((&xX60gensym52__1));
							add__confighandler_u2621((&resultX60gensym52__1), (&blitTmp_1));
							{
								NI T20_;
								T20_ = (NI)0;
								T20_ = len__confighandler_u2362(colontmp__2);
								if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
								if (!!((T20_ == L_1))) goto LA21_;
								failedAssertImpl__stdZassertions_u95(TM__HCWeR39aTt08yMh4d9aL3kjw_30);
								if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
							}
LA21_: ;
						}
LA15_: ;
						if (nimAddInt(res_1, ((NI)1), &TM__HCWeR39aTt08yMh4d9aL3kjw_31)) { raiseOverflow(); goto LA1_;
						};
						res_1 = (NI)(TM__HCWeR39aTt08yMh4d9aL3kjw_31);
					} LA11: ;
				}
			}
			eqdestroy___confighandler_u2575((&xX60gensym52__1));
		}
		colontmp__1 = resultX60gensym52__1;
		iX60gensym53__1 = ((NI)0);
		T23_ = colontmp__1.len;
		if ((T23_) < ((NI)0) || (T23_) > ((NI)IL64(9223372036854775807))){ raiseRangeErrorI(T23_, ((NI)0), ((NI)IL64(9223372036854775807))); goto LA1_;
		}
		resultX60gensym53__1 = newSeq__confighandler_u2872((T23_));
		{
			tyTuple__IwpWnMdQOSUzXomfBe9cMRQ* it_1;
			NI i_1;
			NI L_2;
			NI T25_;
			it_1 = (tyTuple__IwpWnMdQOSUzXomfBe9cMRQ*)0;
			i_1 = ((NI)0);
			T25_ = colontmp__1.len;
			L_2 = T25_;
			{
				while (1) {
					NimStringV2 colontmp__4;
					NimStringV2 colontmp__5;
					tyTuple__UV3llMMYFckfui8YMBuUZA T28_;
					NimStringV2 blitTmp_2;
					NimStringV2 blitTmp_3;
					NI TM__HCWeR39aTt08yMh4d9aL3kjw_32;
					if (!(i_1 < L_2)) goto LA27;
					colontmp__4.len = 0; colontmp__4.p = NIM_NIL;
					colontmp__5.len = 0; colontmp__5.p = NIM_NIL;
					if (i_1 < 0 || i_1 >= colontmp__1.len){ raiseIndexError2(i_1,colontmp__1.len-1); goto LA1_;
					}
					it_1 = (&colontmp__1.p->data[i_1]);
					eqcopy___system_u2754((&colontmp__4), (*it_1).Field0);
					colontmp__5 = dollar___pureZuri_u409((&(*it_1).Field1));
					if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
					if (iX60gensym53__1 < 0 || iX60gensym53__1 >= resultX60gensym53__1.len){ raiseIndexError2(iX60gensym53__1,resultX60gensym53__1.len-1); goto LA1_;
					}
					blitTmp_2 = colontmp__4;
					T28_.Field0 = blitTmp_2;
					blitTmp_3 = colontmp__5;
					T28_.Field1 = blitTmp_3;
					eqsink___stdZprivateZospaths2_u312((&resultX60gensym53__1.p->data[iX60gensym53__1]), (&T28_));
					if (nimAddInt(iX60gensym53__1, ((NI)1), &TM__HCWeR39aTt08yMh4d9aL3kjw_32)) { raiseOverflow(); goto LA1_;
					};
					iX60gensym53__1 = (NI)(TM__HCWeR39aTt08yMh4d9aL3kjw_32);
					i_1 += ((NI)1);
					{
						NI T31_;
						T31_ = colontmp__1.len;
						if (!!((T31_ == L_2))) goto LA32_;
						failedAssertImpl__stdZassertions_u95(TM__HCWeR39aTt08yMh4d9aL3kjw_34);
						if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
					}
LA32_: ;
				} LA27: ;
			}
		}
		colontmpD_ = resultX60gensym53__1;
		eqdestroy___confighandler_u2687(colontmp__1);
		T4_ = colontmpD_;
	}
	config_1.pkgOverrides = toTable__lockfiles_u2482(((T4_).p) ? (T4_.p->data) : NIM_NIL, T4_.len);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	T34_ = (tyObject_AtlasContext__9b9cOM1bS6SdrgGAPmY5KTwQ*)0;
	T34_ = context__basicZcontext_u319();
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	colontmpD__2 = eqdup___system_u2757((*T34_).pluginsFile);
	config_1.plugins = colontmpD__2;
	T35_ = (tyObject_AtlasContext__9b9cOM1bS6SdrgGAPmY5KTwQ*)0;
	T35_ = context__basicZcontext_u319();
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	config_1.resolver = dollar___basicZversions_u34((*T35_).defaultAlgo);
	config_1.graph = newJNull__pureZjson_u438();
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	T36_ = initToJsonOptions__stdZjsonutils_u33();
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	jcfg_1 = toJson__confighandler_u2969((&config_1), T36_);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	{
		if (!!(!((jcfg_1 == 0)))) goto LA39_;
		failedAssertImpl__stdZassertions_u95(TM__HCWeR39aTt08yMh4d9aL3kjw_36);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	}
LA39_: ;
	colontmpD__3 = project__basicZcontext_u340();
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	configFile_1 = getProjectConfig__basicZcontext_u363(colontmpD__3);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	T41_[0] = TM__HCWeR39aTt08yMh4d9aL3kjw_40;
	T41_[1] = configFile_1;
	debug__basicZgitops_u1174(TM__HCWeR39aTt08yMh4d9aL3kjw_38, T41_, 2);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	colontmpD__4 = pretty__pureZjson_u4853(jcfg_1, ((NI)2));
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	writeFile__stdZsyncio_u539(configFile_1, colontmpD__4);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	{
		LA1_:;
	}
	{
		oldNimErrFin1_ = *nimErr_; *nimErr_ = NIM_FALSE;
		if (colontmpD__4.p && !(colontmpD__4.p->cap & NIM_STRLIT_FLAG)) {
 deallocShared(colontmpD__4.p);
}
		if (colontmpD__3.p && !(colontmpD__3.p->cap & NIM_STRLIT_FLAG)) {
 deallocShared(colontmpD__3.p);
}
		if (configFile_1.p && !(configFile_1.p->cap & NIM_STRLIT_FLAG)) {
 deallocShared(configFile_1.p);
}
		eqdestroy___pureZjson_u321(jcfg_1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		eqdestroy___stdZenvvars_u103(colontmpD_);
		eqdestroy___confighandler_u154((&config_1));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		*nimErr_ = oldNimErrFin1_;
	}
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
}
static N_INLINE(NimStringV2, changeFileExt__stdZpaths_u179)(NimStringV2 filename_p0, NimStringV2 ext_p1) {
	NimStringV2 result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result.len = 0; result.p = NIM_NIL;
	result = noschangeFileExt(filename_p0, ext_p1);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, writeDepGraph__confighandler_u3043)(tyObject_DepGraph__i1RlFs3c9aTk9bK2vN5Pa2yw* g_p0, NIM_BOOL debug_p1) {
	NimStringV2 configFile_1;
	tyObject_AtlasContext__9b9cOM1bS6SdrgGAPmY5KTwQ* T2_;
	tyArray__pK4u9cQ1bJzH46rrmNu9bPMQ T8_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	configFile_1.len = 0; configFile_1.p = NIM_NIL;
	T2_ = (tyObject_AtlasContext__9b9cOM1bS6SdrgGAPmY5KTwQ*)0;
	T2_ = context__basicZcontext_u319();
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	configFile_1 = depGraphCacheFile__basicZcontext_u357((&(*T2_)));
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	{
		NimStringV2 T7_;
		if (!debug_p1) goto LA5_;
		T7_.len = 0; T7_.p = NIM_NIL;
		T7_ = changeFileExt__stdZpaths_u179(configFile_1, TM__HCWeR39aTt08yMh4d9aL3kjw_42);
		if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___system_u281(T7_); goto LA1_;}
		eqsink___system_u2760((&configFile_1), T7_);
	}
LA5_: ;
	T8_[0] = TM__HCWeR39aTt08yMh4d9aL3kjw_45;
	T8_[1] = configFile_1;
	debug__basicZgitops_u1174(TM__HCWeR39aTt08yMh4d9aL3kjw_43, T8_, 2);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	dumpJson__basicZdeptypesjson_u13765(g_p0, configFile_1, NIM_TRUE);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	{
		LA1_:;
	}
	{
		if (configFile_1.p && !(configFile_1.p->cap & NIM_STRLIT_FLAG)) {
 deallocShared(configFile_1.p);
}
	}
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
}
static N_INLINE(NIM_BOOL, isAbsolute__stdZpaths_u143)(NimStringV2 path_p0) {
	NIM_BOOL result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (NIM_BOOL)0;
	result = nosisAbsolute(path_p0);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
static N_INLINE(NimStringV2, parentDir__stdZpaths_u155)(NimStringV2 path_p0) {
	NimStringV2 result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result.len = 0; result.p = NIM_NIL;
	result = nosparentDir(path_p0);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, loadDepGraph__confighandler_u3051)(tyObject_NimbleContext__4UNXx9ceXbsj5kR4Hz1gUgA* nc_p0, NimStringV2 nimbleFile_p1, tyObject_DepGraph__i1RlFs3c9aTk9bK2vN5Pa2yw* Result) {
	NimStringV2 projectDir_1;
	tyObject_AtlasContext__9b9cOM1bS6SdrgGAPmY5KTwQ ctx_1;
	NimStringV2 colontmpD_;
	NimStringV2 configFile_1;
	tyArray__pK4u9cQ1bJzH46rrmNu9bPMQ T10_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	nimZeroMem((void*)Result, sizeof(tyObject_DepGraph__i1RlFs3c9aTk9bK2vN5Pa2yw));
	projectDir_1.len = 0; projectDir_1.p = NIM_NIL;
	nimZeroMem((void*)(&ctx_1), sizeof(tyObject_AtlasContext__9b9cOM1bS6SdrgGAPmY5KTwQ));
	configFile_1.len = 0; configFile_1.p = NIM_NIL;
	{
		NIM_BOOL T4_;
		NIM_BOOL T5_;
		T4_ = (NIM_BOOL)0;
		T5_ = (NIM_BOOL)0;
		T5_ = isAbsolute__stdZpaths_u143(nimbleFile_p1);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		if (!(T5_)) goto LA6_;
		T5_ = nsuEndsWith(nimbleFile_p1, TM__HCWeR39aTt08yMh4d9aL3kjw_47);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
LA6_: ;
		T4_ = T5_;
		if (!(T4_)) goto LA7_;
		T4_ = nosfileExists(nimbleFile_p1);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
LA7_: ;
		if (!!(T4_)) goto LA8_;
		failedAssertImpl__stdZassertions_u95(TM__HCWeR39aTt08yMh4d9aL3kjw_49);
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	}
LA8_: ;
	projectDir_1 = parentDir__stdZpaths_u155(nimbleFile_p1);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	nimZeroMem((void*)(&ctx_1), sizeof(tyObject_AtlasContext__9b9cOM1bS6SdrgGAPmY5KTwQ));
	colontmpD_ = eqdup___system_u2757(projectDir_1);
	ctx_1.projectDir = colontmpD_;
	ctx_1.depsDir = TM__HCWeR39aTt08yMh4d9aL3kjw_51;
	ctx_1.confDirOverride = TM__HCWeR39aTt08yMh4d9aL3kjw_53;
	ctx_1.flags = 0;
	ctx_1.defaultAlgo = ((tyEnum_ResolutionAlgorithm__EDrRewmAkc38ngHuXBbDaw)1);
	readAtlasContext__confighandler_u1222((&ctx_1), projectDir_1);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	configFile_1 = depGraphCacheFile__basicZcontext_u357((&ctx_1));
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	T10_[0] = TM__HCWeR39aTt08yMh4d9aL3kjw_56;
	T10_[1] = configFile_1;
	debug__basicZgitops_u1174(TM__HCWeR39aTt08yMh4d9aL3kjw_54, T10_, 2);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	loadJson__basicZdeptypesjson_u14555(nc_p0, configFile_1, Result);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	{
		LA1_:;
	}
	{
		if (configFile_1.p && !(configFile_1.p->cap & NIM_STRLIT_FLAG)) {
 deallocShared(configFile_1.p);
}
		eqdestroy___basicZcontext_u87((&ctx_1));
		if (projectDir_1.p && !(projectDir_1.p->cap & NIM_STRLIT_FLAG)) {
 deallocShared(projectDir_1.p);
}
	}
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
}
