1 /* Generated by Nim Compiler v1.6.2 */
2 #define NIM_INTBITS 64
3 #define NIM_EmulateOverflowChecks
4 
5 #include "nimbase.h"
6 #include <string.h>
7 #undef LANGUAGE_C
8 #undef MIPSEB
9 #undef MIPSEL
10 #undef PPC
11 #undef R3000
12 #undef R4000
13 #undef i386
14 #undef linux
15 #undef mips
16 #undef near
17 #undef far
18 #undef powerpc
19 #undef unix
20 #define nimfr_(x, y)
21 #define nimln_(x, y)
22 typedef struct NimStringDesc NimStringDesc;
23 typedef struct TGenericSeq TGenericSeq;
24 typedef struct tyObject_ValueError__yoNlBGx0D2tRizIdhQuENw tyObject_ValueError__yoNlBGx0D2tRizIdhQuENw;
25 typedef struct tyObject_CatchableError__qrLSDoe2oBoAqNtJ9badtnA tyObject_CatchableError__qrLSDoe2oBoAqNtJ9badtnA;
26 typedef struct Exception Exception;
27 typedef struct RootObj RootObj;
28 typedef struct TNimType TNimType;
29 typedef struct TNimNode TNimNode;
30 typedef struct tySequence__uB9b75OUPRENsBAu4AnoePA tySequence__uB9b75OUPRENsBAu4AnoePA;
31 typedef struct tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g;
32 typedef struct tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w;
33 typedef struct tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ;
34 typedef struct tyObject_GcStack__7fytPA5bBsob6See21YMRA tyObject_GcStack__7fytPA5bBsob6See21YMRA;
35 typedef struct tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg;
36 typedef struct tyObject_SmallChunk__tXn60W2f8h3jgAYdEmy5NQ tyObject_SmallChunk__tXn60W2f8h3jgAYdEmy5NQ;
37 typedef struct tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg;
38 typedef struct tyObject_LLChunk__XsENErzHIZV9bhvyJx56wGw tyObject_LLChunk__XsENErzHIZV9bhvyJx56wGw;
39 typedef struct tyObject_IntSet__EZObFrE3NC9bIb3YMkY9crZA tyObject_IntSet__EZObFrE3NC9bIb3YMkY9crZA;
40 typedef struct tyObject_Trunk__W0r8S0Y3UGke6T9bIUWnnuw tyObject_Trunk__W0r8S0Y3UGke6T9bIUWnnuw;
41 typedef struct tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw;
42 typedef struct tyObject_HeapLinks__PDV1HBZ8CQSQJC9aOBFNRSg tyObject_HeapLinks__PDV1HBZ8CQSQJC9aOBFNRSg;
43 typedef struct tyTuple__ujsjpB2O9cjj3uDHsXbnSzg tyTuple__ujsjpB2O9cjj3uDHsXbnSzg;
44 typedef struct tyObject_GcStat__0RwLoVBHZPfUAcLczmfQAg tyObject_GcStat__0RwLoVBHZPfUAcLczmfQAg;
45 typedef struct tyObject_CellSet__jG87P0AI9aZtss9ccTYBIISQ tyObject_CellSet__jG87P0AI9aZtss9ccTYBIISQ;
46 typedef struct tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg;
47 typedef struct tyTuple__jq7X5k7hWG0tdTZTDkiyGQ tyTuple__jq7X5k7hWG0tdTZTDkiyGQ;
48 typedef struct tyObject_JsonNodeObj__df9bshXB7C9cTiWPIOtX3j1Q tyObject_JsonNodeObj__df9bshXB7C9cTiWPIOtX3j1Q;
49 typedef struct tyObject_Joptions__LkVLf5IMKBOgl3HJApAzgQ tyObject_Joptions__LkVLf5IMKBOgl3HJApAzgQ;
50 typedef struct tyTuple__d8cOxWret6fRDupvUsyoyw tyTuple__d8cOxWret6fRDupvUsyoyw;
51 typedef struct tyObject_ToJsonOptions__T9bCB8O1ZaL5BIvSkjYqMnQ tyObject_ToJsonOptions__T9bCB8O1ZaL5BIvSkjYqMnQ;
52 typedef struct tyObject_OrderedTable__ZZvSdVkA2s2sIyifu4cpkg tyObject_OrderedTable__ZZvSdVkA2s2sIyifu4cpkg;
53 typedef struct tySequence__MlAD6nAPq9bHKla9cWiIZP0g tySequence__MlAD6nAPq9bHKla9cWiIZP0g;
54 typedef struct tySequence__oLpBKXzW3hF9aCVMo5EymfQ tySequence__oLpBKXzW3hF9aCVMo5EymfQ;
55 typedef struct tyObject_StackTraceEntry__oLyohQ7O2XOvGnflOss8EA tyObject_StackTraceEntry__oLyohQ7O2XOvGnflOss8EA;
56 typedef struct tyTuple__awOivLjlO76sGdHY7nQUjQ tyTuple__awOivLjlO76sGdHY7nQUjQ;
57 struct TGenericSeq {
58 NI len;
59 NI reserved;
60 };
61 struct NimStringDesc {
62   TGenericSeq Sup;
63 NIM_CHAR data[SEQ_DECL_SIZE];
64 };
65 typedef NU8 tyEnum_TNimKind__jIBKr1ejBgsfM33Kxw4j7A;
66 typedef NU8 tySet_tyEnum_TNimTypeFlag__v8QUszD1sWlSIWZz7mC4bQ;
67 typedef N_NIMCALL_PTR(void, tyProc__ojoeKfW4VYIm36I9cpDTQIg) (void* p, NI op);
68 typedef N_NIMCALL_PTR(void*, tyProc__WSm2xU5ARYv9aAR4l0z9c9auQ) (void* p);
69 struct TNimType {
70 NI size;
71 NI align;
72 tyEnum_TNimKind__jIBKr1ejBgsfM33Kxw4j7A kind;
73 tySet_tyEnum_TNimTypeFlag__v8QUszD1sWlSIWZz7mC4bQ flags;
74 TNimType* base;
75 TNimNode* node;
76 void* finalizer;
77 tyProc__ojoeKfW4VYIm36I9cpDTQIg marker;
78 tyProc__WSm2xU5ARYv9aAR4l0z9c9auQ deepcopy;
79 };
80 struct RootObj {
81 TNimType* m_type;
82 };
83 struct Exception {
84   RootObj Sup;
85 Exception* parent;
86 NCSTRING name;
87 NimStringDesc* message;
88 tySequence__uB9b75OUPRENsBAu4AnoePA* trace;
89 Exception* up;
90 };
91 struct tyObject_CatchableError__qrLSDoe2oBoAqNtJ9badtnA {
92   Exception Sup;
93 };
94 struct tyObject_ValueError__yoNlBGx0D2tRizIdhQuENw {
95   tyObject_CatchableError__qrLSDoe2oBoAqNtJ9badtnA Sup;
96 };
97 typedef NU8 tyEnum_TNimNodeKind__unfNsxrcATrufDZmpBq4HQ;
98 struct TNimNode {
99 tyEnum_TNimNodeKind__unfNsxrcATrufDZmpBq4HQ kind;
100 NI offset;
101 TNimType* typ;
102 NCSTRING name;
103 NI len;
104 TNimNode** sons;
105 };
106 struct tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g {
107 NI refcount;
108 TNimType* typ;
109 };
110 struct tyObject_GcStack__7fytPA5bBsob6See21YMRA {
111 void* bottom;
112 };
113 struct tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w {
114 NI len;
115 NI cap;
116 tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g** d;
117 };
118 typedef tyObject_SmallChunk__tXn60W2f8h3jgAYdEmy5NQ* tyArray__SPr7N6UKfuF549bNPiUvSRw[256];
119 typedef NU32 tyArray__BHbOSqU1t9b3Gt7K2c6fQig[24];
120 typedef tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg* tyArray__N1u1nqOgmuJN9cSZrnMHgOQ[32];
121 typedef tyArray__N1u1nqOgmuJN9cSZrnMHgOQ tyArray__B6durA4ZCi1xjJvRtyYxMg[24];
122 typedef tyObject_Trunk__W0r8S0Y3UGke6T9bIUWnnuw* tyArray__lh2A89ahMmYg9bCmpVaplLbA[256];
123 struct tyObject_IntSet__EZObFrE3NC9bIb3YMkY9crZA {
124 tyArray__lh2A89ahMmYg9bCmpVaplLbA data;
125 };
126 typedef tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* tyArray__0aOLqZchNi8nWtMTi8ND8w[2];
127 struct tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw {
128 tyArray__0aOLqZchNi8nWtMTi8ND8w link;
129 NI key;
130 NI upperBound;
131 NI level;
132 };
133 struct tyTuple__ujsjpB2O9cjj3uDHsXbnSzg {
134 tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg* Field0;
135 NI Field1;
136 };
137 typedef tyTuple__ujsjpB2O9cjj3uDHsXbnSzg tyArray__LzOv2eCDGiceMKQstCLmhw[30];
138 struct tyObject_HeapLinks__PDV1HBZ8CQSQJC9aOBFNRSg {
139 NI len;
140 tyArray__LzOv2eCDGiceMKQstCLmhw chunks;
141 tyObject_HeapLinks__PDV1HBZ8CQSQJC9aOBFNRSg* next;
142 };
143 struct tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg {
144 NI minLargeObj;
145 NI maxLargeObj;
146 tyArray__SPr7N6UKfuF549bNPiUvSRw freeSmallChunks;
147 NU32 flBitmap;
148 tyArray__BHbOSqU1t9b3Gt7K2c6fQig slBitmap;
149 tyArray__B6durA4ZCi1xjJvRtyYxMg matrix;
150 tyObject_LLChunk__XsENErzHIZV9bhvyJx56wGw* llmem;
151 NI currMem;
152 NI maxMem;
153 NI freeMem;
154 NI occ;
155 NI lastSize;
156 tyObject_IntSet__EZObFrE3NC9bIb3YMkY9crZA chunkStarts;
157 tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* root;
158 tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* deleted;
159 tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* last;
160 tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* freeAvlNodes;
161 NIM_BOOL locked;
162 NIM_BOOL blockChunkSizeIncrease;
163 NI nextChunkSize;
164 tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw bottomData;
165 tyObject_HeapLinks__PDV1HBZ8CQSQJC9aOBFNRSg heapLinks;
166 };
167 struct tyObject_GcStat__0RwLoVBHZPfUAcLczmfQAg {
168 NI stackScans;
169 NI cycleCollections;
170 NI maxThreshold;
171 NI maxStackSize;
172 NI maxStackCells;
173 NI cycleTableSize;
174 NI64 maxPause;
175 };
176 struct tyObject_CellSet__jG87P0AI9aZtss9ccTYBIISQ {
177 NI counter;
178 NI max;
179 tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg* head;
180 tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg** data;
181 };
182 struct tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ {
183 tyObject_GcStack__7fytPA5bBsob6See21YMRA stack;
184 NI cycleThreshold;
185 NI zctThreshold;
186 tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w zct;
187 tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w decStack;
188 tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w tempStack;
189 NI recGcLock;
190 tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg region;
191 tyObject_GcStat__0RwLoVBHZPfUAcLczmfQAg stat;
192 tyObject_CellSet__jG87P0AI9aZtss9ccTYBIISQ marked;
193 tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w additionalRoots;
194 NI gcThreadId;
195 };
196 struct tyTuple__jq7X5k7hWG0tdTZTDkiyGQ {
197 NimStringDesc* Field0;
198 tyObject_JsonNodeObj__df9bshXB7C9cTiWPIOtX3j1Q* Field1;
199 };
200 struct tyObject_Joptions__LkVLf5IMKBOgl3HJApAzgQ {
201 NIM_BOOL allowExtraKeys;
202 NIM_BOOL allowMissingKeys;
203 };
204 struct tyTuple__d8cOxWret6fRDupvUsyoyw {
205 NimStringDesc* Field0;
206 NimStringDesc* Field1;
207 tyObject_JsonNodeObj__df9bshXB7C9cTiWPIOtX3j1Q* Field2;
208 };
209 typedef NU8 tyEnum_EnumMode__VBQLiQclXYpinosAjWkfrg;
210 typedef NU8 tyEnum_JsonNodeMode__UTXRaEPTjXpNdVaD9bbN0bQ;
211 struct tyObject_ToJsonOptions__T9bCB8O1ZaL5BIvSkjYqMnQ {
212 tyEnum_EnumMode__VBQLiQclXYpinosAjWkfrg enumMode;
213 tyEnum_JsonNodeMode__UTXRaEPTjXpNdVaD9bbN0bQ jsonNodeMode;
214 };
215 typedef NU8 tyEnum_JsonNodeKind__RUngo7nCHe6O8aBGIcrhtg;
216 struct tyObject_OrderedTable__ZZvSdVkA2s2sIyifu4cpkg {
217 tySequence__MlAD6nAPq9bHKla9cWiIZP0g* data;
218 NI counter;
219 NI first;
220 NI last;
221 };
222 struct tyObject_JsonNodeObj__df9bshXB7C9cTiWPIOtX3j1Q {
223 NIM_BOOL isUnquoted;
224 tyEnum_JsonNodeKind__RUngo7nCHe6O8aBGIcrhtg kind;
225 union{
226 struct {NimStringDesc* str;
227 } _kind_1;
228 struct {NI64 num;
229 } _kind_2;
230 struct {NF fnum;
231 } _kind_3;
232 struct {NIM_BOOL bval;
233 } _kind_4;
234 struct {tyObject_OrderedTable__ZZvSdVkA2s2sIyifu4cpkg fields;
235 } _kind_6;
236 struct {tySequence__oLpBKXzW3hF9aCVMo5EymfQ* elems;
237 } _kind_7;
238 };
239 };
240 struct tyObject_StackTraceEntry__oLyohQ7O2XOvGnflOss8EA {
241 NCSTRING procname;
242 NI line;
243 NCSTRING filename;
244 };
245 struct tyTuple__awOivLjlO76sGdHY7nQUjQ {
246 NI Field0;
247 NI Field1;
248 NimStringDesc* Field2;
249 tyObject_JsonNodeObj__df9bshXB7C9cTiWPIOtX3j1Q* Field3;
250 };
251 struct tySequence__uB9b75OUPRENsBAu4AnoePA {
252   TGenericSeq Sup;
253   tyObject_StackTraceEntry__oLyohQ7O2XOvGnflOss8EA data[SEQ_DECL_SIZE];
254 };
255 struct tySequence__MlAD6nAPq9bHKla9cWiIZP0g {
256   TGenericSeq Sup;
257   tyTuple__awOivLjlO76sGdHY7nQUjQ data[SEQ_DECL_SIZE];
258 };
259 struct tySequence__oLpBKXzW3hF9aCVMo5EymfQ {
260   TGenericSeq Sup;
261   tyObject_JsonNodeObj__df9bshXB7C9cTiWPIOtX3j1Q* data[SEQ_DECL_SIZE];
262 };
263 N_LIB_PRIVATE N_NOINLINE(void*, newObj)(TNimType* typ, NI size);
264 static N_INLINE(void, appendString)(NimStringDesc* dest, NimStringDesc* src);
265 static N_INLINE(void, copyMem__system_1727)(void* dest, void* source, NI size);
266 static N_INLINE(void, nimCopyMem)(void* dest, void* source, NI size);
267 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, rawNewString)(NI space);
268 static N_INLINE(void, asgnRef)(void** dest, void* src);
269 static N_INLINE(void, incRef__system_5338)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c);
270 static N_INLINE(NI, pluspercent___system_696)(NI x, NI y);
271 static N_INLINE(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*, usrToCell__system_5300)(void* usr);
272 static N_INLINE(NI, minuspercent___system_716)(NI x, NI y);
273 static N_INLINE(void, decRef__system_5345)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c);
274 static N_INLINE(NIM_BOOL, ltpercent___system_1005)(NI x, NI y);
275 static N_INLINE(void, rtlAddZCT__system_5343)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c);
276 N_LIB_PRIVATE N_NOINLINE(void, addZCT__system_5294)(tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w* s, tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c);
277 N_LIB_PRIVATE N_NIMCALL(void, raiseExceptionEx)(Exception* e, NCSTRING ename, NCSTRING procname, NCSTRING filename, NI line);
278 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, copyString)(NimStringDesc* src);
279 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, resizeString)(NimStringDesc* dest, NI addlen);
280 N_LIB_PRIVATE N_NIMCALL(void, addQuoted__pureZos_449)(NimStringDesc** s, NimStringDesc* x);
281 N_LIB_PRIVATE N_NIMCALL(void, addQuoted__stdZjsonutils_444)(NimStringDesc** s, tyObject_JsonNodeObj__df9bshXB7C9cTiWPIOtX3j1Q* x);
282 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, dollar___pureZjson_4465)(tyObject_JsonNodeObj__df9bshXB7C9cTiWPIOtX3j1Q* node);
283 N_LIB_PRIVATE N_NIMCALL(void, unsureAsgnRef)(void** dest, void* src);
284 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, eqeq___pureZjson_2044)(tyObject_JsonNodeObj__df9bshXB7C9cTiWPIOtX3j1Q* a, tyObject_JsonNodeObj__df9bshXB7C9cTiWPIOtX3j1Q* b);
285 N_LIB_PRIVATE N_NOINLINE(void, raiseJsonException__stdZjsonutils_168)(NimStringDesc* condStr, NimStringDesc* msg);
286 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, dollar___stdZjsonutils_407)(tyTuple__jq7X5k7hWG0tdTZTDkiyGQ x);
287 static N_INLINE(void, nimZeroMem)(void* p, NI size);
288 static N_INLINE(void, nimSetMem__systemZmemory_7)(void* a, int v, NI size);
289 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, to__stdZjsonutils_581)(tyObject_JsonNodeObj__df9bshXB7C9cTiWPIOtX3j1Q* node);
290 N_LIB_PRIVATE N_NIMCALL(void, initFromJson__pureZjson_5260)(NimStringDesc** dst, tyObject_JsonNodeObj__df9bshXB7C9cTiWPIOtX3j1Q* jsonNode, NimStringDesc** jsonPath);
291 N_LIB_PRIVATE N_NIMCALL(tyObject_JsonNodeObj__df9bshXB7C9cTiWPIOtX3j1Q*, percent___pureZjson_1790)(NimStringDesc* s);
292 extern TNimType NTIrefvalueerror__Ie1m0dv1ZHg72IgPRr1cDw_;
293 extern TNimType NTIvalueerror__yoNlBGx0D2tRizIdhQuENw_;
294 STRING_LITERAL(TM__D9aPSI6l3gZsoFvdx9c3FKBg_2, " failed: ", 9);
295 STRING_LITERAL(TM__D9aPSI6l3gZsoFvdx9c3FKBg_3, "(", 1);
296 STRING_LITERAL(TM__D9aPSI6l3gZsoFvdx9c3FKBg_4, ", ", 2);
297 STRING_LITERAL(TM__D9aPSI6l3gZsoFvdx9c3FKBg_5, "nil", 3);
298 STRING_LITERAL(TM__D9aPSI6l3gZsoFvdx9c3FKBg_6, ",", 1);
299 STRING_LITERAL(TM__D9aPSI6l3gZsoFvdx9c3FKBg_7, ")", 1);
300 STRING_LITERAL(TM__D9aPSI6l3gZsoFvdx9c3FKBg_8, "\012not (b == nil)", 15);
301 STRING_LITERAL(TM__D9aPSI6l3gZsoFvdx9c3FKBg_9, "string", 6);
302 extern tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ gch__system_5247;
N_INLINE(void,nimCopyMem)303 static N_INLINE(void, nimCopyMem)(void* dest, void* source, NI size) {
304 	void* T1_;
305 	T1_ = (void*)0;
306 	T1_ = memcpy(dest, source, ((size_t) (size)));
307 }
N_INLINE(void,copyMem__system_1727)308 static N_INLINE(void, copyMem__system_1727)(void* dest, void* source, NI size) {
309 	nimCopyMem(dest, source, size);
310 }
N_INLINE(void,appendString)311 static N_INLINE(void, appendString)(NimStringDesc* dest, NimStringDesc* src) {
312 	{
313 		if (!!((src == ((NimStringDesc*) NIM_NIL)))) goto LA3_;
314 		copyMem__system_1727(((void*) ((&(*dest).data[(*dest).Sup.len]))), ((void*) ((*src).data)), ((NI) ((NI)((*src).Sup.len + ((NI) 1)))));
315 		(*dest).Sup.len += (*src).Sup.len;
316 	}
317 	LA3_: ;
318 }
N_INLINE(NI,pluspercent___system_696)319 static N_INLINE(NI, pluspercent___system_696)(NI x, NI y) {
320 	NI result;
321 	result = (NI)0;
322 	result = ((NI) ((NU)((NU64)(((NU) (x))) + (NU64)(((NU) (y))))));
323 	return result;
324 }
N_INLINE(void,incRef__system_5338)325 static N_INLINE(void, incRef__system_5338)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c) {
326 	(*c).refcount = pluspercent___system_696((*c).refcount, ((NI) 8));
327 }
N_INLINE(NI,minuspercent___system_716)328 static N_INLINE(NI, minuspercent___system_716)(NI x, NI y) {
329 	NI result;
330 	result = (NI)0;
331 	result = ((NI) ((NU)((NU64)(((NU) (x))) - (NU64)(((NU) (y))))));
332 	return result;
333 }
N_INLINE(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g *,usrToCell__system_5300)334 static N_INLINE(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*, usrToCell__system_5300)(void* usr) {
335 	tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* result;
336 	NI T1_;
337 	result = (tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*)0;
338 	T1_ = (NI)0;
339 	T1_ = minuspercent___system_716(((NI) (ptrdiff_t) (usr)), ((NI) 16));
340 	result = ((tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*) (T1_));
341 	return result;
342 }
N_INLINE(NIM_BOOL,ltpercent___system_1005)343 static N_INLINE(NIM_BOOL, ltpercent___system_1005)(NI x, NI y) {
344 	NIM_BOOL result;
345 	result = (NIM_BOOL)0;
346 	result = ((NU64)(((NU) (x))) < (NU64)(((NU) (y))));
347 	return result;
348 }
N_INLINE(void,rtlAddZCT__system_5343)349 static N_INLINE(void, rtlAddZCT__system_5343)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c) {
350 	addZCT__system_5294((&gch__system_5247.zct), c);
351 }
N_INLINE(void,decRef__system_5345)352 static N_INLINE(void, decRef__system_5345)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c) {
353 	(*c).refcount = minuspercent___system_716((*c).refcount, ((NI) 8));
354 	{
355 		NIM_BOOL T3_;
356 		T3_ = (NIM_BOOL)0;
357 		T3_ = ltpercent___system_1005((*c).refcount, ((NI) 8));
358 		if (!T3_) goto LA4_;
359 		rtlAddZCT__system_5343(c);
360 	}
361 	LA4_: ;
362 }
N_INLINE(void,asgnRef)363 static N_INLINE(void, asgnRef)(void** dest, void* src) {
364 	{
365 		tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* T5_;
366 		if (!!((src == NIM_NIL))) goto LA3_;
367 		T5_ = (tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*)0;
368 		T5_ = usrToCell__system_5300(src);
369 		incRef__system_5338(T5_);
370 	}
371 	LA3_: ;
372 	{
373 		tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* T10_;
374 		if (!!(((*dest) == NIM_NIL))) goto LA8_;
375 		T10_ = (tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*)0;
376 		T10_ = usrToCell__system_5300((*dest));
377 		decRef__system_5345(T10_);
378 	}
379 	LA8_: ;
380 	(*dest) = src;
381 }
N_NOINLINE(void,raiseJsonException__stdZjsonutils_168)382 N_LIB_PRIVATE N_NOINLINE(void, raiseJsonException__stdZjsonutils_168)(NimStringDesc* condStr, NimStringDesc* msg) {
383 	tyObject_ValueError__yoNlBGx0D2tRizIdhQuENw* T1_;
384 	NimStringDesc* T2_;
385 	T1_ = NIM_NIL;
386 	T1_ = (tyObject_ValueError__yoNlBGx0D2tRizIdhQuENw*) newObj((&NTIrefvalueerror__Ie1m0dv1ZHg72IgPRr1cDw_), sizeof(tyObject_ValueError__yoNlBGx0D2tRizIdhQuENw));
387 	(*T1_).Sup.Sup.Sup.m_type = (&NTIvalueerror__yoNlBGx0D2tRizIdhQuENw_);
388 	(*T1_).Sup.Sup.name = "ValueError";
389 	T2_ = NIM_NIL;
390 	T2_ = rawNewString((condStr ? condStr->Sup.len : 0) + (msg ? msg->Sup.len : 0) + 9);
391 appendString(T2_, condStr);
392 appendString(T2_, ((NimStringDesc*) &TM__D9aPSI6l3gZsoFvdx9c3FKBg_2));
393 appendString(T2_, msg);
394 	asgnRef((void**) (&(*T1_).Sup.Sup.message), T2_);
395 	asgnRef((void**) (&(*T1_).Sup.Sup.parent), ((Exception*) NIM_NIL));
396 	raiseExceptionEx((Exception*)T1_, "ValueError", "raiseJsonException", "jsonutils.nim", 134);
397 }
N_NIMCALL(void,addQuoted__stdZjsonutils_444)398 N_LIB_PRIVATE N_NIMCALL(void, addQuoted__stdZjsonutils_444)(NimStringDesc** s, tyObject_JsonNodeObj__df9bshXB7C9cTiWPIOtX3j1Q* x) {
399 	NimStringDesc* T1_;
400 	T1_ = NIM_NIL;
401 	T1_ = dollar___pureZjson_4465(x);
402 	unsureAsgnRef((void**) (&(*s)), resizeString((*s), (T1_ ? T1_->Sup.len : 0) + 0));
403 appendString((*s), T1_);
404 }
N_NIMCALL(NimStringDesc *,dollar___stdZjsonutils_407)405 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, dollar___stdZjsonutils_407)(tyTuple__jq7X5k7hWG0tdTZTDkiyGQ x) {
406 	NimStringDesc* result;
407 	NI count;
408 	result = NIM_NIL;
409 	result = copyString(((NimStringDesc*) &TM__D9aPSI6l3gZsoFvdx9c3FKBg_3));
410 	count = ((NI) 0);
411 	{
412 		if (!(((NI) 0) < count)) goto LA3_;
413 		result = resizeString(result, 2);
414 appendString(result, ((NimStringDesc*) &TM__D9aPSI6l3gZsoFvdx9c3FKBg_4));
415 	}
416 	LA3_: ;
417 	count += ((NI) 1);
418 	addQuoted__pureZos_449((&result), x.Field0);
419 	{
420 		if (!(((NI) 0) < count)) goto LA7_;
421 		result = resizeString(result, 2);
422 appendString(result, ((NimStringDesc*) &TM__D9aPSI6l3gZsoFvdx9c3FKBg_4));
423 	}
424 	LA7_: ;
425 	count += ((NI) 1);
426 	{
427 		if (!(x.Field1 == 0)) goto LA11_;
428 		result = resizeString(result, 3);
429 appendString(result, ((NimStringDesc*) &TM__D9aPSI6l3gZsoFvdx9c3FKBg_5));
430 	}
431 	goto LA9_;
432 	LA11_: ;
433 	{
434 		addQuoted__stdZjsonutils_444((&result), x.Field1);
435 	}
436 	LA9_: ;
437 	{
438 		if (!(count == ((NI) 1))) goto LA16_;
439 		result = resizeString(result, 1);
440 appendString(result, ((NimStringDesc*) &TM__D9aPSI6l3gZsoFvdx9c3FKBg_6));
441 	}
442 	LA16_: ;
443 	result = resizeString(result, 1);
444 appendString(result, ((NimStringDesc*) &TM__D9aPSI6l3gZsoFvdx9c3FKBg_7));
445 	return result;
446 }
N_INLINE(void,nimSetMem__systemZmemory_7)447 static N_INLINE(void, nimSetMem__systemZmemory_7)(void* a, int v, NI size) {
448 	void* T1_;
449 	T1_ = (void*)0;
450 	T1_ = memset(a, v, ((size_t) (size)));
451 }
N_INLINE(void,nimZeroMem)452 static N_INLINE(void, nimZeroMem)(void* p, NI size) {
453 	nimSetMem__systemZmemory_7(p, ((int) 0), size);
454 }
N_NIMCALL(NimStringDesc *,to__stdZjsonutils_581)455 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, to__stdZjsonutils_581)(tyObject_JsonNodeObj__df9bshXB7C9cTiWPIOtX3j1Q* node) {
456 	NimStringDesc* result;
457 	NimStringDesc* jsonPath;
458 	result = NIM_NIL;
459 	jsonPath = ((NimStringDesc*) NIM_NIL);
460 	initFromJson__pureZjson_5260((&result), node, (&jsonPath));
461 	return result;
462 }
N_NIMCALL(void,fromJson__stdZjsonutils_566)463 N_LIB_PRIVATE N_NIMCALL(void, fromJson__stdZjsonutils_566)(NimStringDesc** a, tyObject_JsonNodeObj__df9bshXB7C9cTiWPIOtX3j1Q* b, tyObject_Joptions__LkVLf5IMKBOgl3HJApAzgQ opt) {
464 	{
465 		NIM_BOOL T3_;
466 		tyTuple__jq7X5k7hWG0tdTZTDkiyGQ T6_;
467 		NimStringDesc* T7_;
468 		T3_ = (NIM_BOOL)0;
469 		T3_ = eqeq___pureZjson_2044(b, ((tyObject_JsonNodeObj__df9bshXB7C9cTiWPIOtX3j1Q*) NIM_NIL));
470 		if (!!(!(T3_))) goto LA4_;
471 		nimZeroMem((void*)(&T6_), sizeof(tyTuple__jq7X5k7hWG0tdTZTDkiyGQ));
472 		T6_.Field0 = copyString(((NimStringDesc*) &TM__D9aPSI6l3gZsoFvdx9c3FKBg_9));
473 		T6_.Field1 = b;
474 		T7_ = NIM_NIL;
475 		T7_ = dollar___stdZjsonutils_407(T6_);
476 		raiseJsonException__stdZjsonutils_168(((NimStringDesc*) &TM__D9aPSI6l3gZsoFvdx9c3FKBg_8), T7_);
477 	}
478 	LA4_: ;
479 	unsureAsgnRef((void**) (&(*a)), to__stdZjsonutils_581(b));
480 }
N_NIMCALL(NimStringDesc *,dollar___stdZjsonutils_504)481 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, dollar___stdZjsonutils_504)(tyTuple__d8cOxWret6fRDupvUsyoyw x) {
482 	NimStringDesc* result;
483 	NI count;
484 	result = NIM_NIL;
485 	result = copyString(((NimStringDesc*) &TM__D9aPSI6l3gZsoFvdx9c3FKBg_3));
486 	count = ((NI) 0);
487 	{
488 		if (!(((NI) 0) < count)) goto LA3_;
489 		result = resizeString(result, 2);
490 appendString(result, ((NimStringDesc*) &TM__D9aPSI6l3gZsoFvdx9c3FKBg_4));
491 	}
492 	LA3_: ;
493 	count += ((NI) 1);
494 	addQuoted__pureZos_449((&result), x.Field0);
495 	{
496 		if (!(((NI) 0) < count)) goto LA7_;
497 		result = resizeString(result, 2);
498 appendString(result, ((NimStringDesc*) &TM__D9aPSI6l3gZsoFvdx9c3FKBg_4));
499 	}
500 	LA7_: ;
501 	count += ((NI) 1);
502 	addQuoted__pureZos_449((&result), x.Field1);
503 	{
504 		if (!(((NI) 0) < count)) goto LA11_;
505 		result = resizeString(result, 2);
506 appendString(result, ((NimStringDesc*) &TM__D9aPSI6l3gZsoFvdx9c3FKBg_4));
507 	}
508 	LA11_: ;
509 	count += ((NI) 1);
510 	{
511 		if (!(x.Field2 == 0)) goto LA15_;
512 		result = resizeString(result, 3);
513 appendString(result, ((NimStringDesc*) &TM__D9aPSI6l3gZsoFvdx9c3FKBg_5));
514 	}
515 	goto LA13_;
516 	LA15_: ;
517 	{
518 		addQuoted__stdZjsonutils_444((&result), x.Field2);
519 	}
520 	LA13_: ;
521 	{
522 		if (!(count == ((NI) 1))) goto LA20_;
523 		result = resizeString(result, 1);
524 appendString(result, ((NimStringDesc*) &TM__D9aPSI6l3gZsoFvdx9c3FKBg_6));
525 	}
526 	LA20_: ;
527 	result = resizeString(result, 1);
528 appendString(result, ((NimStringDesc*) &TM__D9aPSI6l3gZsoFvdx9c3FKBg_7));
529 	return result;
530 }
N_NIMCALL(tyObject_JsonNodeObj__df9bshXB7C9cTiWPIOtX3j1Q *,toJson__stdZjsonutils_603)531 N_LIB_PRIVATE N_NIMCALL(tyObject_JsonNodeObj__df9bshXB7C9cTiWPIOtX3j1Q*, toJson__stdZjsonutils_603)(NimStringDesc* a, tyObject_ToJsonOptions__T9bCB8O1ZaL5BIvSkjYqMnQ opt) {
532 	tyObject_JsonNodeObj__df9bshXB7C9cTiWPIOtX3j1Q* result;
533 	result = NIM_NIL;
534 	result = percent___pureZjson_1790(a);
535 	return result;
536 }
N_NIMCALL(tyObject_ToJsonOptions__T9bCB8O1ZaL5BIvSkjYqMnQ,initToJsonOptions__stdZjsonutils_33)537 N_LIB_PRIVATE N_NIMCALL(tyObject_ToJsonOptions__T9bCB8O1ZaL5BIvSkjYqMnQ, initToJsonOptions__stdZjsonutils_33)(void) {
538 	tyObject_ToJsonOptions__T9bCB8O1ZaL5BIvSkjYqMnQ result;
539 	nimZeroMem((void*)(&result), sizeof(tyObject_ToJsonOptions__T9bCB8O1ZaL5BIvSkjYqMnQ));
540 	nimZeroMem((void*)(&result), sizeof(tyObject_ToJsonOptions__T9bCB8O1ZaL5BIvSkjYqMnQ));
541 	result.enumMode = ((tyEnum_EnumMode__VBQLiQclXYpinosAjWkfrg) 0);
542 	result.jsonNodeMode = ((tyEnum_JsonNodeMode__UTXRaEPTjXpNdVaD9bbN0bQ) 0);
543 	return result;
544 }
545