1 /* Generated by Nim Compiler v1.6.2 */
2 #define NIM_INTBITS 32
3 #define NIM_EmulateOverflowChecks
4 
5 #include "nimbase.h"
6 #include <sys/mman.h>
7 #include <stdio.h>
8 #include <string.h>
9 #include <stdlib.h>
10 #include <setjmp.h>
11 #include <math.h>
12 #include <signal.h>
13 #undef LANGUAGE_C
14 #undef MIPSEB
15 #undef MIPSEL
16 #undef PPC
17 #undef R3000
18 #undef R4000
19 #undef i386
20 #undef linux
21 #undef mips
22 #undef near
23 #undef far
24 #undef powerpc
25 #undef unix
26 #define nimfr_(x, y)
27 #define nimln_(x, y)
28 typedef struct Exception Exception;
29 typedef struct TNimType TNimType;
30 typedef struct TNimNode TNimNode;
31 typedef struct tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ;
32 typedef struct tyObject_GcStack__7fytPA5bBsob6See21YMRA tyObject_GcStack__7fytPA5bBsob6See21YMRA;
33 typedef struct tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w;
34 typedef struct tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g;
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 tyObject_BaseChunk__Sdq7WpT6qAH858F5ZEdG3w tyObject_BaseChunk__Sdq7WpT6qAH858F5ZEdG3w;
48 typedef struct tyObject_FreeCell__u6M5LHprqzkn9axr04yg9bGQ tyObject_FreeCell__u6M5LHprqzkn9axr04yg9bGQ;
49 typedef struct tyTuple__1v9bKyksXWMsm0vNwmZ4EuQ tyTuple__1v9bKyksXWMsm0vNwmZ4EuQ;
50 typedef struct NimStringDesc NimStringDesc;
51 typedef struct TGenericSeq TGenericSeq;
52 typedef struct TSafePoint TSafePoint;
53 typedef struct RootObj RootObj;
54 typedef struct tySequence__uB9b75OUPRENsBAu4AnoePA tySequence__uB9b75OUPRENsBAu4AnoePA;
55 typedef struct tyObject_StackTraceEntry__oLyohQ7O2XOvGnflOss8EA tyObject_StackTraceEntry__oLyohQ7O2XOvGnflOss8EA;
56 typedef struct GcFrameHeader GcFrameHeader;
57 typedef struct tyObject_ReraiseDefect__E0L0wGYS1gPD81VLstNO2g tyObject_ReraiseDefect__E0L0wGYS1gPD81VLstNO2g;
58 typedef struct tyObject_Defect__LbeSGvgPzGzXnW9caIkJqMA tyObject_Defect__LbeSGvgPzGzXnW9caIkJqMA;
59 typedef struct tyObject_OverflowDefect__9cxMi1BPLc3UKt9br86bGfGQ tyObject_OverflowDefect__9cxMi1BPLc3UKt9br86bGfGQ;
60 typedef struct tyObject_ArithmeticDefect__cT9c9bHlHSpA1QTnKbHjnIkA tyObject_ArithmeticDefect__cT9c9bHlHSpA1QTnKbHjnIkA;
61 typedef struct tyObject_CatchableError__qrLSDoe2oBoAqNtJ9badtnA tyObject_CatchableError__qrLSDoe2oBoAqNtJ9badtnA;
62 typedef struct tyObject_ValueError__yoNlBGx0D2tRizIdhQuENw tyObject_ValueError__yoNlBGx0D2tRizIdhQuENw;
63 typedef struct tyObject_KeyError__t7nhKLvXTQS9cS8ByJU9bIag tyObject_KeyError__t7nhKLvXTQS9cS8ByJU9bIag;
64 typedef struct tyObject_AssertionDefect__PtYxPmY5X0dorfvxAFbJpQ tyObject_AssertionDefect__PtYxPmY5X0dorfvxAFbJpQ;
65 typedef struct tyObject_ObjectAssignmentDefect__6toVe0IizlEwN9bORXEdX3g tyObject_ObjectAssignmentDefect__6toVe0IizlEwN9bORXEdX3g;
66 typedef struct tyObject_IndexDefect__n6tGEPHKkh7E1AP9bj30WrQ tyObject_IndexDefect__n6tGEPHKkh7E1AP9bj30WrQ;
67 typedef struct tyObject_OSError__BeJgrOdDsczOwEWOZbRfKA tyObject_OSError__BeJgrOdDsczOwEWOZbRfKA;
68 typedef struct tyObject_IOError__iLZrPn9anoh9ad1MmO0RczFw tyObject_IOError__iLZrPn9anoh9ad1MmO0RczFw;
69 typedef struct tyObject_EOFError__KGSY1JdrNB7Xi8KDhXFhSg tyObject_EOFError__KGSY1JdrNB7Xi8KDhXFhSg;
70 typedef struct tyObject_RangeDefect__Rp9adJYTsbbIUzQ8fWxwgdA tyObject_RangeDefect__Rp9adJYTsbbIUzQ8fWxwgdA;
71 typedef struct tyObject_DivByZeroDefect__n3A4gjRrFZBuNnTYx1h9a8w tyObject_DivByZeroDefect__n3A4gjRrFZBuNnTYx1h9a8w;
72 typedef N_NIMCALL_PTR(NIM_BOOL, tyProc__9axCnCRMUx32AHzFgBrzSMg) (Exception* e);
73 typedef N_NIMCALL_PTR(void, tyProc__T4eqaYlFJYZUv9aG9b1TV0bQ) (void);
74 typedef N_NIMCALL_PTR(void, tyProc__NFmM6mqUOVW3cJg4yvk8Fw) (Exception* e);
75 typedef NU8 tyEnum_TNimKind__jIBKr1ejBgsfM33Kxw4j7A;
76 typedef NU8 tySet_tyEnum_TNimTypeFlag__v8QUszD1sWlSIWZz7mC4bQ;
77 typedef N_NIMCALL_PTR(void, tyProc__ojoeKfW4VYIm36I9cpDTQIg) (void* p, NI op);
78 typedef N_NIMCALL_PTR(void*, tyProc__WSm2xU5ARYv9aAR4l0z9c9auQ) (void* p);
79 struct TNimType {
80 NI size;
81 NI align;
82 tyEnum_TNimKind__jIBKr1ejBgsfM33Kxw4j7A kind;
83 tySet_tyEnum_TNimTypeFlag__v8QUszD1sWlSIWZz7mC4bQ flags;
84 TNimType* base;
85 TNimNode* node;
86 void* finalizer;
87 tyProc__ojoeKfW4VYIm36I9cpDTQIg marker;
88 tyProc__WSm2xU5ARYv9aAR4l0z9c9auQ deepcopy;
89 };
90 struct tyObject_GcStack__7fytPA5bBsob6See21YMRA {
91 void* bottom;
92 };
93 struct tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w {
94 NI len;
95 NI cap;
96 tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g** d;
97 };
98 typedef tyObject_SmallChunk__tXn60W2f8h3jgAYdEmy5NQ* tyArray__SPr7N6UKfuF549bNPiUvSRw[256];
99 typedef NU32 tyArray__BHbOSqU1t9b3Gt7K2c6fQig[24];
100 typedef tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg* tyArray__N1u1nqOgmuJN9cSZrnMHgOQ[32];
101 typedef tyArray__N1u1nqOgmuJN9cSZrnMHgOQ tyArray__B6durA4ZCi1xjJvRtyYxMg[24];
102 typedef tyObject_Trunk__W0r8S0Y3UGke6T9bIUWnnuw* tyArray__lh2A89ahMmYg9bCmpVaplLbA[256];
103 struct tyObject_IntSet__EZObFrE3NC9bIb3YMkY9crZA {
104 tyArray__lh2A89ahMmYg9bCmpVaplLbA data;
105 };
106 typedef tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* tyArray__0aOLqZchNi8nWtMTi8ND8w[2];
107 struct tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw {
108 tyArray__0aOLqZchNi8nWtMTi8ND8w link;
109 NI key;
110 NI upperBound;
111 NI level;
112 };
113 struct tyTuple__ujsjpB2O9cjj3uDHsXbnSzg {
114 tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg* Field0;
115 NI Field1;
116 };
117 typedef tyTuple__ujsjpB2O9cjj3uDHsXbnSzg tyArray__LzOv2eCDGiceMKQstCLmhw[30];
118 struct tyObject_HeapLinks__PDV1HBZ8CQSQJC9aOBFNRSg {
119 NI len;
120 tyArray__LzOv2eCDGiceMKQstCLmhw chunks;
121 tyObject_HeapLinks__PDV1HBZ8CQSQJC9aOBFNRSg* next;
122 };
123 struct tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg {
124 NI minLargeObj;
125 NI maxLargeObj;
126 tyArray__SPr7N6UKfuF549bNPiUvSRw freeSmallChunks;
127 NU32 flBitmap;
128 tyArray__BHbOSqU1t9b3Gt7K2c6fQig slBitmap;
129 tyArray__B6durA4ZCi1xjJvRtyYxMg matrix;
130 tyObject_LLChunk__XsENErzHIZV9bhvyJx56wGw* llmem;
131 NI currMem;
132 NI maxMem;
133 NI freeMem;
134 NI occ;
135 NI lastSize;
136 tyObject_IntSet__EZObFrE3NC9bIb3YMkY9crZA chunkStarts;
137 tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* root;
138 tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* deleted;
139 tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* last;
140 tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* freeAvlNodes;
141 NIM_BOOL locked;
142 NIM_BOOL blockChunkSizeIncrease;
143 NI nextChunkSize;
144 tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw bottomData;
145 tyObject_HeapLinks__PDV1HBZ8CQSQJC9aOBFNRSg heapLinks;
146 };
147 struct tyObject_GcStat__0RwLoVBHZPfUAcLczmfQAg {
148 NI stackScans;
149 NI cycleCollections;
150 NI maxThreshold;
151 NI maxStackSize;
152 NI maxStackCells;
153 NI cycleTableSize;
154 NI64 maxPause;
155 };
156 struct tyObject_CellSet__jG87P0AI9aZtss9ccTYBIISQ {
157 NI counter;
158 NI max;
159 tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg* head;
160 tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg** data;
161 };
162 struct tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ {
163 tyObject_GcStack__7fytPA5bBsob6See21YMRA stack;
164 NI cycleThreshold;
165 NI zctThreshold;
166 tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w zct;
167 tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w decStack;
168 tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w tempStack;
169 NI recGcLock;
170 tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg region;
171 tyObject_GcStat__0RwLoVBHZPfUAcLczmfQAg stat;
172 tyObject_CellSet__jG87P0AI9aZtss9ccTYBIISQ marked;
173 tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w additionalRoots;
174 NI gcThreadId;
175 };
176 typedef tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* tyUncheckedArray__qYl1ErvQvkPpq9bTvm2UvTg[1];
177 struct tyObject_BaseChunk__Sdq7WpT6qAH858F5ZEdG3w {
178 NI prevSize;
179 NI size;
180 };
181 struct tyObject_SmallChunk__tXn60W2f8h3jgAYdEmy5NQ {
182   tyObject_BaseChunk__Sdq7WpT6qAH858F5ZEdG3w Sup;
183 tyObject_SmallChunk__tXn60W2f8h3jgAYdEmy5NQ* next;
184 tyObject_SmallChunk__tXn60W2f8h3jgAYdEmy5NQ* prev;
185 tyObject_FreeCell__u6M5LHprqzkn9axr04yg9bGQ* freeList;
186 NI free;
187 NI acc;
188 NIM_ALIGN(16) NU8 data[SEQ_DECL_SIZE];
189 };
190 typedef NI8 tyArray__mkmEeKAWtk2yS9bBb1lUWXA[256];
191 struct tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg {
192   tyObject_BaseChunk__Sdq7WpT6qAH858F5ZEdG3w Sup;
193 tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg* next;
194 tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg* prev;
195 NIM_ALIGN(16) NU8 data[SEQ_DECL_SIZE];
196 };
197 struct tyObject_LLChunk__XsENErzHIZV9bhvyJx56wGw {
198 NI size;
199 NI acc;
200 tyObject_LLChunk__XsENErzHIZV9bhvyJx56wGw* next;
201 };
202 typedef NU tyArray__cC4ce9cdvDKtIpar5g9cDejA[16];
203 struct tyObject_Trunk__W0r8S0Y3UGke6T9bIUWnnuw {
204 tyObject_Trunk__W0r8S0Y3UGke6T9bIUWnnuw* next;
205 NI key;
206 tyArray__cC4ce9cdvDKtIpar5g9cDejA bits;
207 };
208 struct tyTuple__1v9bKyksXWMsm0vNwmZ4EuQ {
209 NI Field0;
210 NI Field1;
211 };
212 struct tyObject_FreeCell__u6M5LHprqzkn9axr04yg9bGQ {
213 tyObject_FreeCell__u6M5LHprqzkn9axr04yg9bGQ* next;
214 NI zeroField;
215 };
216 typedef tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg* tyUncheckedArray__xm0FYDlyTP1z2D1LZJL9bqQ[1];
217 typedef NI tyArray__9a8QARi5WsUggNU9bom7kzTQ[8];
218 struct tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg {
219 tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg* next;
220 NU key;
221 tyArray__9a8QARi5WsUggNU9bom7kzTQ bits;
222 };
223 struct TGenericSeq {
224 NI len;
225 NI reserved;
226 };
227 struct NimStringDesc {
228   TGenericSeq Sup;
229 NIM_CHAR data[SEQ_DECL_SIZE];
230 };
231 typedef N_NIMCALL_PTR(void, tyProc__W6IXMh2CA4X1rFYGjUb4yg) (NimStringDesc* msg);
232 struct RootObj {
233 TNimType* m_type;
234 };
235 struct Exception {
236   RootObj Sup;
237 Exception* parent;
238 NCSTRING name;
239 NimStringDesc* message;
240 tySequence__uB9b75OUPRENsBAu4AnoePA* trace;
241 Exception* up;
242 };
243 struct tyObject_StackTraceEntry__oLyohQ7O2XOvGnflOss8EA {
244 NCSTRING procname;
245 NI line;
246 NCSTRING filename;
247 };
248 typedef NU8 tyEnum_WalkOp__Wfy7gT5VQ8B3aJBxqU8D9cQ;
249 struct tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g {
250 NI refcount;
251 TNimType* typ;
252 };
253 typedef NU8 tyEnum_TNimTypeFlag__v8QUszD1sWlSIWZz7mC4bQ;
254 typedef NU8 tyEnum_TNimNodeKind__unfNsxrcATrufDZmpBq4HQ;
255 struct TNimNode {
256 tyEnum_TNimNodeKind__unfNsxrcATrufDZmpBq4HQ kind;
257 NI offset;
258 TNimType* typ;
259 NCSTRING name;
260 NI len;
261 TNimNode** sons;
262 };
263 struct TSafePoint {
264 TSafePoint* prev;
265 NI status;
266 jmp_buf context;
267 };
268 typedef N_NIMCALL_PTR(void, Finalizer) (void* self);
269 struct tyObject_Defect__LbeSGvgPzGzXnW9caIkJqMA {
270   Exception Sup;
271 };
272 struct tyObject_ReraiseDefect__E0L0wGYS1gPD81VLstNO2g {
273   tyObject_Defect__LbeSGvgPzGzXnW9caIkJqMA Sup;
274 };
275 struct tyObject_ArithmeticDefect__cT9c9bHlHSpA1QTnKbHjnIkA {
276   tyObject_Defect__LbeSGvgPzGzXnW9caIkJqMA Sup;
277 };
278 struct tyObject_OverflowDefect__9cxMi1BPLc3UKt9br86bGfGQ {
279   tyObject_ArithmeticDefect__cT9c9bHlHSpA1QTnKbHjnIkA Sup;
280 };
281 typedef NIM_CHAR tyArray__gpc2RrLEcWgv7ONpLYNHOw[2001];
282 typedef N_NOCONV_PTR(void, tyProc__ZEo3s9cIqJYP74f7GMZM2FA) (int a);
283 typedef tyProc__T4eqaYlFJYZUv9aG9b1TV0bQ tyArray__9aTRall1siQT9bXabu2aKXUg[3500];
284 struct tyObject_CatchableError__qrLSDoe2oBoAqNtJ9badtnA {
285   Exception Sup;
286 };
287 struct tyObject_ValueError__yoNlBGx0D2tRizIdhQuENw {
288   tyObject_CatchableError__qrLSDoe2oBoAqNtJ9badtnA Sup;
289 };
290 struct tyObject_KeyError__t7nhKLvXTQS9cS8ByJU9bIag {
291   tyObject_ValueError__yoNlBGx0D2tRizIdhQuENw Sup;
292 };
293 struct tyObject_AssertionDefect__PtYxPmY5X0dorfvxAFbJpQ {
294   tyObject_Defect__LbeSGvgPzGzXnW9caIkJqMA Sup;
295 };
296 typedef NIM_CHAR tyArray__eVNFTutn6un5gcq48fQLdg[65];
297 struct tyObject_ObjectAssignmentDefect__6toVe0IizlEwN9bORXEdX3g {
298   tyObject_Defect__LbeSGvgPzGzXnW9caIkJqMA Sup;
299 };
300 struct tyObject_IndexDefect__n6tGEPHKkh7E1AP9bj30WrQ {
301   tyObject_Defect__LbeSGvgPzGzXnW9caIkJqMA Sup;
302 };
303 struct tyObject_OSError__BeJgrOdDsczOwEWOZbRfKA {
304   tyObject_CatchableError__qrLSDoe2oBoAqNtJ9badtnA Sup;
305 NI32 errorCode;
306 };
307 struct tyObject_IOError__iLZrPn9anoh9ad1MmO0RczFw {
308   tyObject_CatchableError__qrLSDoe2oBoAqNtJ9badtnA Sup;
309 };
310 struct tyObject_EOFError__KGSY1JdrNB7Xi8KDhXFhSg {
311   tyObject_IOError__iLZrPn9anoh9ad1MmO0RczFw Sup;
312 };
313 typedef NF tyArray__yp9a149boki9cCCWgfXI0Ip4A[23];
314 typedef NIM_CHAR tyArray__PGLh8drTnaWr3s1qUUSq2Q[500];
315 struct tyObject_RangeDefect__Rp9adJYTsbbIUzQ8fWxwgdA {
316   tyObject_Defect__LbeSGvgPzGzXnW9caIkJqMA Sup;
317 };
318 typedef NCSTRING tyUncheckedArray__nvS6J9clHMUMHfoZd8Ad2zg[1];
319 struct tyObject_DivByZeroDefect__n3A4gjRrFZBuNnTYx1h9a8w {
320   tyObject_ArithmeticDefect__cT9c9bHlHSpA1QTnKbHjnIkA Sup;
321 };
322 struct tySequence__uB9b75OUPRENsBAu4AnoePA {
323   TGenericSeq Sup;
324   tyObject_StackTraceEntry__oLyohQ7O2XOvGnflOss8EA data[SEQ_DECL_SIZE];
325 };
326 static N_INLINE(void, initStackBottom)(void);
327 N_LIB_PRIVATE N_NOINLINE(void, nimGC_setStackBottom)(void* theStackBottom);
328 N_LIB_PRIVATE N_NIMCALL(void, setPosition__system_5424)(tyObject_GcStack__7fytPA5bBsob6See21YMRA* stack, void* position);
329 N_LIB_PRIVATE N_NIMCALL(void, initGC__system_2398)(void);
330 N_LIB_PRIVATE N_NIMCALL(void, init__system_4906)(tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w* s, NI cap);
331 N_LIB_PRIVATE N_NOCONV(void*, alloc0Impl__system_1745)(NI size);
332 N_LIB_PRIVATE N_NIMCALL(void*, alloc0__system_4800)(tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg* allocator, NI size);
333 N_LIB_PRIVATE N_NIMCALL(void*, alloc__system_4796)(tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg* allocator, NI size);
334 N_LIB_PRIVATE N_NIMCALL(void*, rawAlloc__system_4580)(tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg* a, NI requestedSize);
335 static N_INLINE(NI, roundup__system_3725)(NI x, NI v);
336 N_LIB_PRIVATE N_NIMCALL(tyObject_SmallChunk__tXn60W2f8h3jgAYdEmy5NQ*, getSmallChunk__system_4559)(tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg* a);
337 N_LIB_PRIVATE N_NIMCALL(tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg*, getBigChunk__system_4536)(tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg* a, NI size);
338 static N_INLINE(void, mappingSearch__system_3873)(NI* r, NI* fl, NI* sl);
339 static N_INLINE(NI, msbit__system_3848)(NU32 x);
340 static N_INLINE(tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg*, findSuitableBlock__system_3905)(tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg* a, NI* fl, NI* sl);
341 static N_INLINE(NI, lsbit__system_3856)(NU32 x);
342 N_LIB_PRIVATE N_NIMCALL(tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg*, requestOsChunks__system_4459)(tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg* a, NI size);
343 static N_INLINE(void*, osAllocPages__system_3745)(NI size);
344 N_LIB_PRIVATE N_NOINLINE(void, raiseOutOfMem__system_3720)(void);
345 static N_INLINE(void, rawWrite)(FILE* f, NCSTRING s);
346 static N_INLINE(NI, nimCStrLen)(NCSTRING a);
347 static N_INLINE(void*, osTryAllocPages__system_3748)(NI size);
348 static N_INLINE(void, incCurrMem__system_3988)(tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg* a, NI bytes);
349 N_LIB_PRIVATE N_NIMCALL(void, addHeapLink__system_4072)(tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg* a, tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg* p, NI size);
350 N_LIB_PRIVATE N_NIMCALL(void*, llAlloc__system_4005)(tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg* a, NI size);
351 static N_INLINE(void, zeroMem__system_1724)(void* p, NI size);
352 static N_INLINE(void, nimZeroMem)(void* p, NI size);
353 static N_INLINE(void, nimSetMem__systemZmemory_7)(void* a, int v, NI size);
354 static N_INLINE(NI, pluspercent___system_696)(NI x, NI y);
355 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, contains__system_4254)(tyObject_IntSet__EZObFrE3NC9bIb3YMkY9crZA* s, NI key);
356 N_LIB_PRIVATE N_NIMCALL(tyObject_Trunk__W0r8S0Y3UGke6T9bIUWnnuw*, intSetGet__system_4215)(tyObject_IntSet__EZObFrE3NC9bIb3YMkY9crZA* t, NI key);
357 static N_INLINE(NI, pageIndex__system_4441)(tyObject_BaseChunk__Sdq7WpT6qAH858F5ZEdG3w* c);
358 static N_INLINE(NI, minuspercent___system_716)(NI x, NI y);
359 N_LIB_PRIVATE N_NIMCALL(void, splitChunk__system_4510)(tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg* a, tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg* c, NI size);
360 N_LIB_PRIVATE N_NIMCALL(tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg*, splitChunk2__system_4505)(tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg* a, tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg* c, NI size);
361 static N_INLINE(void, updatePrevSize__system_4500)(tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg* a, tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg* c, NI prevSize);
362 static N_INLINE(NIM_BOOL, isAccessible__system_4482)(tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg* a, void* p);
363 static N_INLINE(NI, pageIndex__system_4448)(void* p);
364 N_LIB_PRIVATE N_NIMCALL(void, incl__system_4276)(tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg* a, tyObject_IntSet__EZObFrE3NC9bIb3YMkY9crZA* s, NI key);
365 N_LIB_PRIVATE N_NIMCALL(tyObject_Trunk__W0r8S0Y3UGke6T9bIUWnnuw*, intSetPut__system_4237)(tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg* a, tyObject_IntSet__EZObFrE3NC9bIb3YMkY9crZA* t, NI key);
366 N_LIB_PRIVATE N_NIMCALL(void, addChunkToMatrix__system_3979)(tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg* a, tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg* b);
367 static N_INLINE(tyTuple__1v9bKyksXWMsm0vNwmZ4EuQ, mappingInsert__system_3891)(NI r);
368 static N_INLINE(void, setBit__system_3859)(NI nr, NU32* dest);
369 N_LIB_PRIVATE N_NIMCALL(void, removeChunkFromMatrix2__system_3970)(tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg* a, tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg* b, NI fl, NI sl);
370 static N_INLINE(void, clearBit__system_3866)(NI nr, NU32* dest);
371 static N_INLINE(void, listAdd__system_4597)(tyObject_SmallChunk__tXn60W2f8h3jgAYdEmy5NQ** head, tyObject_SmallChunk__tXn60W2f8h3jgAYdEmy5NQ* c);
372 static N_INLINE(void, listRemove__system_4650)(tyObject_SmallChunk__tXn60W2f8h3jgAYdEmy5NQ** head, tyObject_SmallChunk__tXn60W2f8h3jgAYdEmy5NQ* c);
373 N_LIB_PRIVATE N_NIMCALL(tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg*, getHugeChunk__system_4551)(tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg* a, NI size);
374 N_LIB_PRIVATE N_NIMCALL(tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw*, getBottom__system_4031)(tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg* a);
375 N_LIB_PRIVATE N_NIMCALL(void, add__system_4178)(tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg* a, tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw** t, NI key, NI upperBound);
376 N_LIB_PRIVATE N_NIMCALL(tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw*, allocAvlNode__system_4047)(tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg* a, NI key, NI upperBound);
377 static N_INLINE(NIM_BOOL, ltpercent___system_1005)(NI x, NI y);
378 N_LIB_PRIVATE N_NIMCALL(void, skew__system_4168)(tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw** t);
379 N_LIB_PRIVATE N_NIMCALL(void, split__system_4171)(tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw** t);
380 N_LIB_PRIVATE N_NIMCALL(void, init__system_4912)(tyObject_CellSet__jG87P0AI9aZtss9ccTYBIISQ* s);
381 static N_INLINE(NI, atomicInc__system_2172)(NI* memLoc, NI x);
382 static N_NIMCALL(void, Marker_tySequence__uB9b75OUPRENsBAu4AnoePA)(void* p, NI op);
383 N_LIB_PRIVATE N_NIMCALL(void, nimGCvisit)(void* d, NI op);
384 N_LIB_PRIVATE N_NIMCALL(void, doOperation__system_5322)(void* p, tyEnum_WalkOp__Wfy7gT5VQ8B3aJBxqU8D9cQ op);
385 static N_INLINE(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*, usrToCell__system_5291)(void* usr);
386 static N_INLINE(void, decRef__system_5336)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c);
387 static N_INLINE(void, rtlAddZCT__system_5334)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c);
388 N_LIB_PRIVATE N_NOINLINE(void, addZCT__system_5285)(tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w* s, tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c);
389 static N_INLINE(void, add__system_4880)(tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w* s, tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c);
390 N_LIB_PRIVATE N_NOCONV(void*, allocImpl__system_1743)(NI size);
391 static N_INLINE(void, copyMem__system_1727)(void* dest, void* source, NI size);
392 static N_INLINE(void, nimCopyMem)(void* dest, void* source, NI size);
393 N_LIB_PRIVATE N_NOCONV(void, dealloc)(void* p);
394 N_LIB_PRIVATE N_NOCONV(void, deallocImpl__system_1747)(void* p);
395 N_LIB_PRIVATE N_NIMCALL(void, dealloc__system_4804)(tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg* allocator, void* p);
396 N_LIB_PRIVATE N_NIMCALL(void, rawDealloc__system_4709)(tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg* a, void* p);
397 static N_INLINE(tyObject_BaseChunk__Sdq7WpT6qAH858F5ZEdG3w*, pageAddr__system_4455)(void* p);
398 static N_INLINE(NIM_BOOL, isSmallChunk__system_4366)(tyObject_BaseChunk__Sdq7WpT6qAH858F5ZEdG3w* c);
399 N_LIB_PRIVATE N_NIMCALL(void, freeBigChunk__system_4515)(tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg* a, tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg* c);
400 static N_INLINE(NIM_BOOL, chunkUnused__system_4372)(tyObject_BaseChunk__Sdq7WpT6qAH858F5ZEdG3w* c);
401 N_LIB_PRIVATE N_NIMCALL(void, removeChunkFromMatrix__system_3940)(tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg* a, tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg* b);
402 N_LIB_PRIVATE N_NIMCALL(void, excl__system_4298)(tyObject_IntSet__EZObFrE3NC9bIb3YMkY9crZA* s, NI key);
403 N_LIB_PRIVATE N_NIMCALL(void, del__system_4187)(tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg* a, tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw** t, NI x);
404 static N_INLINE(void, deallocAvlNode__system_4069)(tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg* a, tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* n);
405 N_LIB_PRIVATE N_NIMCALL(void, freeHugeChunk__system_4555)(tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg* a, tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg* c);
406 static N_INLINE(void, decCurrMem__system_3995)(tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg* a, NI bytes);
407 static N_INLINE(void, osDeallocPages__system_3751)(void* p, NI size);
408 N_LIB_PRIVATE N_NIMCALL(void, markS__system_5740)(tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ* gch, tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c);
409 N_LIB_PRIVATE N_NIMCALL(void, incl__system_5037)(tyObject_CellSet__jG87P0AI9aZtss9ccTYBIISQ* s, tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* cell);
410 N_LIB_PRIVATE N_NIMCALL(tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg*, cellSetPut__system_4983)(tyObject_CellSet__jG87P0AI9aZtss9ccTYBIISQ* t, NU key);
411 static N_INLINE(NI, nextTry__system_4940)(NI h, NI maxHash);
412 N_LIB_PRIVATE N_NIMCALL(void, cellSetEnlarge__system_4970)(tyObject_CellSet__jG87P0AI9aZtss9ccTYBIISQ* t);
413 N_LIB_PRIVATE N_NIMCALL(void, cellSetRawInsert__system_4953)(tyObject_CellSet__jG87P0AI9aZtss9ccTYBIISQ t, tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg** data, tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg* desc);
414 N_LIB_PRIVATE N_NIMCALL(void, forAllChildren__system_5319)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* cell, tyEnum_WalkOp__Wfy7gT5VQ8B3aJBxqU8D9cQ op);
415 static N_INLINE(void*, cellToUsr__system_5288)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* cell);
416 N_LIB_PRIVATE N_NIMCALL(void, forAllChildrenAux__system_5325)(void* dest, TNimType* mt, tyEnum_WalkOp__Wfy7gT5VQ8B3aJBxqU8D9cQ op);
417 N_LIB_PRIVATE N_NIMCALL(void, forAllSlotsAux__system_5556)(void* dest, TNimNode* n, tyEnum_WalkOp__Wfy7gT5VQ8B3aJBxqU8D9cQ op);
418 N_LIB_PRIVATE N_NIMCALL(TNimNode*, selectBranch__system_3674)(void* aa, TNimNode* n);
419 N_LIB_PRIVATE N_NIMCALL(NU, getDiscriminant__system_3636)(void* aa, TNimNode* n);
420 static N_INLINE(NI, starpercent___system_736)(NI x, NI y);
421 N_LIB_PRIVATE N_NIMCALL(NI, align__system_1624)(NI address, NI alignment);
422 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, containsOrIncl__system_5083)(tyObject_CellSet__jG87P0AI9aZtss9ccTYBIISQ* s, tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* cell);
423 N_LIB_PRIVATE N_NIMCALL(tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg*, cellSetGet__system_4944)(tyObject_CellSet__jG87P0AI9aZtss9ccTYBIISQ t, NU key);
424 static N_NIMCALL(void, Marker_tyRef__vU9aO9cTqOMn6CBzhV8rX7Sw)(void* p, NI op);
425 static N_NIMCALL(void, TM__Q5wkpxktOdTGvlSRo9bzt9aw_4)(void);
426 N_LIB_PRIVATE N_NIMCALL(void, nimRegisterThreadLocalMarker)(tyProc__T4eqaYlFJYZUv9aG9b1TV0bQ markerProc);
427 N_LIB_PRIVATE N_NOCONV(void, signalHandler)(int sign);
428 N_LIB_PRIVATE N_NIMCALL(void, showErrorMessage__system_2536)(NCSTRING data, NI length);
429 static N_INLINE(void, pushSafePoint)(TSafePoint* s);
430 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, cstrToNimstr)(NCSTRING str);
431 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, toNimStr)(NCSTRING str, NI len);
432 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, rawNewStringNoInit)(NI space);
433 N_LIB_PRIVATE N_NIMCALL(void*, newObjNoInit)(TNimType* typ, NI size);
434 N_LIB_PRIVATE N_NIMCALL(void*, rawNewObj__system_5668)(TNimType* typ, NI size, tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ* gch);
435 N_LIB_PRIVATE N_NIMCALL(void, collectCT__system_5315)(tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ* gch);
436 static N_INLINE(NI, getOccupiedMem__system_4840)(tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg* a);
437 N_LIB_PRIVATE N_NIMCALL(void, collectCTBody__system_5860)(tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ* gch);
438 N_LIB_PRIVATE N_NOINLINE(NI, stackSize__system_5409)(void);
439 N_LIB_PRIVATE N_NOINLINE(NI, stackSize__system_5405)(tyObject_GcStack__7fytPA5bBsob6See21YMRA* stack);
440 static N_INLINE(void, prepareForInteriorPointerChecking__system_4761)(tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg* a);
441 N_LIB_PRIVATE N_NIMCALL(NI, lowGauge__system_4128)(tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* n);
442 N_LIB_PRIVATE N_NIMCALL(NI, highGauge__system_4136)(tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* n);
443 CLANG_NO_SANITIZE_ADDRESS N_LIB_PRIVATE void markStackAndRegisters__system_5798(tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ* gch);
444 N_LIB_PRIVATE N_NIMCALL(void, setPosition__system_5421)(tyObject_GcStack__7fytPA5bBsob6See21YMRA* stack, void* position);
445 N_LIB_PRIVATE N_NIMCALL(tyObject_GcStack__7fytPA5bBsob6See21YMRA*, getActiveStack__system_5427)(tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ* gch);
446 static N_INLINE(void, gcMark__system_5789)(tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ* gch, void* p);
447 N_LIB_PRIVATE N_NIMCALL(void*, interiorAllocatedPtr__system_4763)(tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg* a, void* p);
448 static N_INLINE(NI, percentpercent___system_776)(NI x, NI y);
449 static N_INLINE(NIM_BOOL, lteqpercent___system_985)(NI x, NI y);
450 N_LIB_PRIVATE N_NIMCALL(tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw*, inRange__system_4156)(tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* root, NI key);
451 static N_INLINE(void, incRef__system_5329)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c);
452 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, collectZCT__system_5779)(tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ* gch);
453 N_LIB_PRIVATE N_NIMCALL(void, prepareDealloc__system_5451)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* cell);
454 N_LIB_PRIVATE N_NIMCALL(void, collectCycles__system_5781)(tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ* gch);
455 N_LIB_PRIVATE N_NIMCALL(void, cellsetReset__system_5554)(tyObject_CellSet__jG87P0AI9aZtss9ccTYBIISQ* s);
456 N_LIB_PRIVATE N_NIMCALL(void, deinit__system_4932)(tyObject_CellSet__jG87P0AI9aZtss9ccTYBIISQ* s);
457 N_LIB_PRIVATE N_NIMCALL(void, markGlobals__system_5748)(tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ* gch);
458 N_LIB_PRIVATE N_NIMCALL(void, sweep__system_5736)(tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ* gch);
459 static N_INLINE(NIM_BOOL, isCell__system_4429)(void* p);
460 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, contains__system_5005)(tyObject_CellSet__jG87P0AI9aZtss9ccTYBIISQ s, tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* cell);
461 N_LIB_PRIVATE N_NIMCALL(void, freeCyclicCell__system_5732)(tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ* gch, tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c);
462 N_LIB_PRIVATE N_NIMCALL(NI, getOccupiedMem__system_1936)(void);
463 N_LIB_PRIVATE N_NIMCALL(void, unmarkStackAndRegisters__system_5852)(tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ* gch);
464 static N_INLINE(void, addNewObjToZCT__system_5653)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* res, tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ* gch);
465 static N_INLINE(void, popSafePoint)(void);
466 static N_INLINE(void, popCurrentException)(void);
467 static N_INLINE(void, asgnRef)(void** dest, void* src);
468 N_LIB_PRIVATE N_NIMCALL(void, reraiseException)(void);
469 static N_INLINE(void, sysFatal__system_2898)(NimStringDesc* message) __attribute__((noreturn));
470 static N_NIMCALL(void, Marker_tyRef__uG62cfJZ15c2siK3CKLmnQ)(void* p, NI op);
471 N_LIB_PRIVATE N_NOINLINE(void*, newObj)(TNimType* typ, NI size);
472 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, copyStringRC1)(NimStringDesc* src);
473 N_LIB_PRIVATE N_NOINLINE(void*, newObjRC1)(TNimType* typ, NI size);
474 static N_INLINE(void, nimGCunrefNoCycle)(void* p);
475 N_LIB_PRIVATE N_NIMCALL(void, raiseExceptionEx)(Exception* e, NCSTRING ename, NCSTRING procname, NCSTRING filename, NI line);
476 N_LIB_PRIVATE N_NIMCALL(TGenericSeq*, incrSeqV3)(TGenericSeq* s, TNimType* typ);
477 N_LIB_PRIVATE N_NIMCALL(void*, newSeq)(TNimType* typ, NI len);
478 static N_INLINE(NIM_BOOL, nimMulInt)(NI a, NI b, NI* res);
479 static N_INLINE(NF, toFloat__system_1702)(NI i);
480 static N_INLINE(NF, abs__system_3474)(NF x);
481 N_LIB_PRIVATE N_NOINLINE(void, raiseOverflow)(void);
482 static N_INLINE(void, sysFatal__system_3375)(NimStringDesc* message) __attribute__((noreturn));
483 static N_NIMCALL(void, Marker_tyRef__r8GBEWywN07B3Rat3azS4Q)(void* p, NI op);
484 static N_INLINE(NIM_BOOL, nimAddInt)(NI a, NI b, NI* res);
485 static N_INLINE(NI, resize__system_5915)(NI old);
486 N_LIB_PRIVATE N_NIMCALL(void*, dataPointer__system_5905)(TGenericSeq* a, NI elemAlign);
487 N_LIB_PRIVATE N_NIMCALL(void, raiseExceptionAux__system_2866)(Exception* e);
488 static N_INLINE(void, pushCurrentException)(Exception* e);
489 N_LIB_PRIVATE N_NIMCALL(void, reportUnhandledError__system_2855)(Exception* e);
490 N_LIB_PRIVATE N_NIMCALL(void, reportUnhandledErrorAux__system_2752)(Exception* e);
491 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, dollar___system_2723)(tySequence__uB9b75OUPRENsBAu4AnoePA* stackTraceEntries);
492 N_NIMCALL(NimStringDesc*, rawNewString)(NI cap);
493 static N_INLINE(void, appendString)(NimStringDesc* dest, NimStringDesc* src);
494 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, resizeString)(NimStringDesc* dest, NI addlen);
495 N_LIB_PRIVATE N_NIMCALL(void, add__system_2308)(NimStringDesc** x, NCSTRING y);
496 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, addChar)(NimStringDesc* s, NIM_CHAR c);
497 N_LIB_PRIVATE N_NIMCALL(void, unsureAsgnRef)(void** dest, void* src);
498 N_LIB_PRIVATE N_NOINLINE(NIM_BOOL, isOnStack__system_5317)(void* p);
499 static N_INLINE(void, addInt__stdZprivateZdigitsutils_189)(NimStringDesc** result, NI x);
500 N_LIB_PRIVATE N_NIMCALL(void, addInt__stdZprivateZdigitsutils_167)(NimStringDesc** result, NI64 x);
501 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, mnewString)(NI len);
502 static N_INLINE(NCSTRING, nimToCStringConv)(NimStringDesc* s);
503 N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___systemZassertions_23)(NimStringDesc** dest);
504 N_LIB_PRIVATE N_NIMCALL(void, writeToStdErr__system_2531)(NCSTRING msg, NI length);
505 static N_INLINE(void, rawWriteString)(FILE* f, NCSTRING s, NI length);
506 N_LIB_PRIVATE N_NIMCALL(void, registerSignalHandler__system_2992)(void);
507 N_LIB_PRIVATE N_NIMCALL(NI, getRefcount)(void* p);
508 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, dollar___systemZdollars_3)(NI x);
509 static N_NIMCALL(void, Marker_tyRef__8SzoIAgLw9ci2v0yafHj9b6Q)(void* p, NI op);
510 N_LIB_PRIVATE N_NIMCALL(void*, dataPointer__system_5909)(TGenericSeq* a, NI elemAlign, NI elemSize, NI index);
511 N_LIB_PRIVATE N_NIMCALL(TNimType*, extGetCellType)(void* c);
512 static N_NIMCALL(void, Marker_tyRef__S8DV6hfcgC9c0IiUsAoR29cQ)(void* p, NI op);
513 N_NIMCALL(NimStringDesc*, mnewString)(NI len);
514 N_LIB_PRIVATE N_NIMCALL(NI, writeFloatToBufferRoundtrip__systemZformatfloat_13)(NIM_CHAR* buf, NF value);
515 N_LIB_PRIVATE N_NIMCALL(void, addCstringN__systemZformatfloat_5)(NimStringDesc** result, NCSTRING buf, NI buflen);
516 N_LIB_PRIVATE N_NIMCALL(void, genericAssign)(void* dest, void* src, TNimType* mt);
517 N_LIB_PRIVATE N_NIMCALL(void, genericAssignAux__system_6426)(void* dest, void* src, TNimType* mt, NIM_BOOL shallow);
518 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, copyString)(NimStringDesc* src);
519 N_LIB_PRIVATE N_NIMCALL(void*, nimNewSeqOfCap)(TNimType* typ, NI cap);
520 N_LIB_PRIVATE N_NIMCALL(void, genericAssignAux__system_6431)(void* dest, void* src, TNimNode* n, NIM_BOOL shallow);
521 N_LIB_PRIVATE N_NIMCALL(void, genericResetAux__system_6423)(void* dest, TNimNode* n);
522 N_LIB_PRIVATE N_NIMCALL(void, genericReset)(void* dest, TNimType* mt);
523 static N_INLINE(void, chckObjAsgn)(TNimType* a, TNimType* b);
524 static N_INLINE(void, sysFatal__system_3290)(NimStringDesc* message) __attribute__((noreturn));
525 static N_NIMCALL(void, Marker_tyRef__C0A9bPZSVeyr2BWpBf4Jxqw)(void* p, NI op);
526 static N_NIMCALL(void, Marker_tyRef__RJnHOb9cQV3neNC9cDkRgMyw)(void* p, NI op);
527 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, substr__system_7764)(NimStringDesc* s, NI first, NI last);
528 static N_NIMCALL(void, Marker_tyRef__Ie1m0dv1ZHg72IgPRr1cDw)(void* p, NI op);
529 static N_INLINE(int, nimCmpMem)(void* a, void* b, NI size);
530 static N_NIMCALL(void, Marker_tyRef__9clYsYwyjCqe2PFTuCI3Ubg)(void* p, NI op);
531 static N_NIMCALL(void, Marker_tyRef__HMIVdYjdZYWskTmTQVo5BQ)(void* p, NI op);
532 static N_INLINE(void, showErrorMessage2__system_2544)(NimStringDesc* data);
533 static N_NIMCALL(void, Marker_tyRef__LEclZrWX2FQAodlapxGITw)(void* p, NI op);
534 static N_NIMCALL(void, Marker_tyRef__0vJvi4uHbxjbxlkkX7P1EA)(void* p, NI op);
535 static N_INLINE(void, addFloat__system_3122)(NimStringDesc** result, NF x);
536 N_LIB_PRIVATE N_NIMCALL(void, addFloatRoundtrip__system_3127)(NimStringDesc** result, NF x);
537 N_LIB_PRIVATE N_NIMCALL(void, objectInitAux__system_6541)(void* dest, TNimNode* n);
538 N_LIB_PRIVATE N_NIMCALL(void, objectInit)(void* dest, TNimType* typ);
539 static N_NIMCALL(void, Marker_tyRef__9ai78kkwqt3gikTN9cpHKUVg)(void* p, NI op);
540 N_LIB_PRIVATE N_NIMCALL(NI, writeFloatToBufferRoundtrip__systemZformatfloat_44)(NIM_CHAR* buf, NF32 value);
541 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, setLengthStr)(NimStringDesc* s, NI newLen);
542 N_LIB_PRIVATE N_NIMCALL(NI, getMaxMem__system_4002)(tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg* a);
543 N_LIB_PRIVATE N_NIMCALL(NI, getTotalMem__system_1938)(void);
544 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, dollar___systemZdollars_6)(NI64 x);
545 static N_INLINE(void, initStackBottomWith)(void* locals);
546 N_LIB_PRIVATE NIM_CONST tyArray__mkmEeKAWtk2yS9bBb1lUWXA fsLookupTable__system_3847 = {((NI8) -1),
547 ((NI8) 0),
548 ((NI8) 1),
549 ((NI8) 1),
550 ((NI8) 2),
551 ((NI8) 2),
552 ((NI8) 2),
553 ((NI8) 2),
554 ((NI8) 3),
555 ((NI8) 3),
556 ((NI8) 3),
557 ((NI8) 3),
558 ((NI8) 3),
559 ((NI8) 3),
560 ((NI8) 3),
561 ((NI8) 3),
562 ((NI8) 4),
563 ((NI8) 4),
564 ((NI8) 4),
565 ((NI8) 4),
566 ((NI8) 4),
567 ((NI8) 4),
568 ((NI8) 4),
569 ((NI8) 4),
570 ((NI8) 4),
571 ((NI8) 4),
572 ((NI8) 4),
573 ((NI8) 4),
574 ((NI8) 4),
575 ((NI8) 4),
576 ((NI8) 4),
577 ((NI8) 4),
578 ((NI8) 5),
579 ((NI8) 5),
580 ((NI8) 5),
581 ((NI8) 5),
582 ((NI8) 5),
583 ((NI8) 5),
584 ((NI8) 5),
585 ((NI8) 5),
586 ((NI8) 5),
587 ((NI8) 5),
588 ((NI8) 5),
589 ((NI8) 5),
590 ((NI8) 5),
591 ((NI8) 5),
592 ((NI8) 5),
593 ((NI8) 5),
594 ((NI8) 5),
595 ((NI8) 5),
596 ((NI8) 5),
597 ((NI8) 5),
598 ((NI8) 5),
599 ((NI8) 5),
600 ((NI8) 5),
601 ((NI8) 5),
602 ((NI8) 5),
603 ((NI8) 5),
604 ((NI8) 5),
605 ((NI8) 5),
606 ((NI8) 5),
607 ((NI8) 5),
608 ((NI8) 5),
609 ((NI8) 5),
610 ((NI8) 6),
611 ((NI8) 6),
612 ((NI8) 6),
613 ((NI8) 6),
614 ((NI8) 6),
615 ((NI8) 6),
616 ((NI8) 6),
617 ((NI8) 6),
618 ((NI8) 6),
619 ((NI8) 6),
620 ((NI8) 6),
621 ((NI8) 6),
622 ((NI8) 6),
623 ((NI8) 6),
624 ((NI8) 6),
625 ((NI8) 6),
626 ((NI8) 6),
627 ((NI8) 6),
628 ((NI8) 6),
629 ((NI8) 6),
630 ((NI8) 6),
631 ((NI8) 6),
632 ((NI8) 6),
633 ((NI8) 6),
634 ((NI8) 6),
635 ((NI8) 6),
636 ((NI8) 6),
637 ((NI8) 6),
638 ((NI8) 6),
639 ((NI8) 6),
640 ((NI8) 6),
641 ((NI8) 6),
642 ((NI8) 6),
643 ((NI8) 6),
644 ((NI8) 6),
645 ((NI8) 6),
646 ((NI8) 6),
647 ((NI8) 6),
648 ((NI8) 6),
649 ((NI8) 6),
650 ((NI8) 6),
651 ((NI8) 6),
652 ((NI8) 6),
653 ((NI8) 6),
654 ((NI8) 6),
655 ((NI8) 6),
656 ((NI8) 6),
657 ((NI8) 6),
658 ((NI8) 6),
659 ((NI8) 6),
660 ((NI8) 6),
661 ((NI8) 6),
662 ((NI8) 6),
663 ((NI8) 6),
664 ((NI8) 6),
665 ((NI8) 6),
666 ((NI8) 6),
667 ((NI8) 6),
668 ((NI8) 6),
669 ((NI8) 6),
670 ((NI8) 6),
671 ((NI8) 6),
672 ((NI8) 6),
673 ((NI8) 6),
674 ((NI8) 7),
675 ((NI8) 7),
676 ((NI8) 7),
677 ((NI8) 7),
678 ((NI8) 7),
679 ((NI8) 7),
680 ((NI8) 7),
681 ((NI8) 7),
682 ((NI8) 7),
683 ((NI8) 7),
684 ((NI8) 7),
685 ((NI8) 7),
686 ((NI8) 7),
687 ((NI8) 7),
688 ((NI8) 7),
689 ((NI8) 7),
690 ((NI8) 7),
691 ((NI8) 7),
692 ((NI8) 7),
693 ((NI8) 7),
694 ((NI8) 7),
695 ((NI8) 7),
696 ((NI8) 7),
697 ((NI8) 7),
698 ((NI8) 7),
699 ((NI8) 7),
700 ((NI8) 7),
701 ((NI8) 7),
702 ((NI8) 7),
703 ((NI8) 7),
704 ((NI8) 7),
705 ((NI8) 7),
706 ((NI8) 7),
707 ((NI8) 7),
708 ((NI8) 7),
709 ((NI8) 7),
710 ((NI8) 7),
711 ((NI8) 7),
712 ((NI8) 7),
713 ((NI8) 7),
714 ((NI8) 7),
715 ((NI8) 7),
716 ((NI8) 7),
717 ((NI8) 7),
718 ((NI8) 7),
719 ((NI8) 7),
720 ((NI8) 7),
721 ((NI8) 7),
722 ((NI8) 7),
723 ((NI8) 7),
724 ((NI8) 7),
725 ((NI8) 7),
726 ((NI8) 7),
727 ((NI8) 7),
728 ((NI8) 7),
729 ((NI8) 7),
730 ((NI8) 7),
731 ((NI8) 7),
732 ((NI8) 7),
733 ((NI8) 7),
734 ((NI8) 7),
735 ((NI8) 7),
736 ((NI8) 7),
737 ((NI8) 7),
738 ((NI8) 7),
739 ((NI8) 7),
740 ((NI8) 7),
741 ((NI8) 7),
742 ((NI8) 7),
743 ((NI8) 7),
744 ((NI8) 7),
745 ((NI8) 7),
746 ((NI8) 7),
747 ((NI8) 7),
748 ((NI8) 7),
749 ((NI8) 7),
750 ((NI8) 7),
751 ((NI8) 7),
752 ((NI8) 7),
753 ((NI8) 7),
754 ((NI8) 7),
755 ((NI8) 7),
756 ((NI8) 7),
757 ((NI8) 7),
758 ((NI8) 7),
759 ((NI8) 7),
760 ((NI8) 7),
761 ((NI8) 7),
762 ((NI8) 7),
763 ((NI8) 7),
764 ((NI8) 7),
765 ((NI8) 7),
766 ((NI8) 7),
767 ((NI8) 7),
768 ((NI8) 7),
769 ((NI8) 7),
770 ((NI8) 7),
771 ((NI8) 7),
772 ((NI8) 7),
773 ((NI8) 7),
774 ((NI8) 7),
775 ((NI8) 7),
776 ((NI8) 7),
777 ((NI8) 7),
778 ((NI8) 7),
779 ((NI8) 7),
780 ((NI8) 7),
781 ((NI8) 7),
782 ((NI8) 7),
783 ((NI8) 7),
784 ((NI8) 7),
785 ((NI8) 7),
786 ((NI8) 7),
787 ((NI8) 7),
788 ((NI8) 7),
789 ((NI8) 7),
790 ((NI8) 7),
791 ((NI8) 7),
792 ((NI8) 7),
793 ((NI8) 7),
794 ((NI8) 7),
795 ((NI8) 7),
796 ((NI8) 7),
797 ((NI8) 7),
798 ((NI8) 7),
799 ((NI8) 7),
800 ((NI8) 7),
801 ((NI8) 7)}
802 ;
803 N_LIB_PRIVATE TNimType NTIrootobj__ytyiCJqK439aF9cIibuRVpAg_;
804 N_LIB_PRIVATE TNimType NTIexception__XEycrCsme5C8CVWAYEcdBQ_;
805 N_LIB_PRIVATE TNimType NTIcstring__S9agCYBinaYZnGWcjTdxclg_;
806 N_LIB_PRIVATE TNimType NTIstring__77mFvmsOLKik79ci2hXkHEg_;
807 N_LIB_PRIVATE TNimType NTIstacktraceentry__oLyohQ7O2XOvGnflOss8EA_;
808 N_LIB_PRIVATE TNimType NTIint__rR5Bzr1D5krxoo1NcNyeMA_;
809 N_LIB_PRIVATE TNimType NTIseqLstacktraceentryT__uB9b75OUPRENsBAu4AnoePA_;
810 N_LIB_PRIVATE TNimType NTIrefexception__vU9aO9cTqOMn6CBzhV8rX7Sw_;
811 N_LIB_PRIVATE TNimType NTIdefect__LbeSGvgPzGzXnW9caIkJqMA_;
812 N_LIB_PRIVATE TNimType NTIreraisedefect__E0L0wGYS1gPD81VLstNO2g_;
813 N_LIB_PRIVATE TNimType NTIrefreraisedefect__uG62cfJZ15c2siK3CKLmnQ_;
814 N_LIB_PRIVATE TNimType NTIarithmeticdefect__cT9c9bHlHSpA1QTnKbHjnIkA_;
815 N_LIB_PRIVATE TNimType NTIoverflowdefect__9cxMi1BPLc3UKt9br86bGfGQ_;
816 N_LIB_PRIVATE TNimType NTIrefoverflowdefect__r8GBEWywN07B3Rat3azS4Q_;
817 STRING_LITERAL(TM__Q5wkpxktOdTGvlSRo9bzt9aw_7, "over- or underflow", 18);
818 STRING_LITERAL(TM__Q5wkpxktOdTGvlSRo9bzt9aw_9, "[[reraised from:\012", 17);
819 STRING_LITERAL(TM__Q5wkpxktOdTGvlSRo9bzt9aw_10, "]]\012", 3);
820 STRING_LITERAL(TM__Q5wkpxktOdTGvlSRo9bzt9aw_11, "(", 1);
821 STRING_LITERAL(TM__Q5wkpxktOdTGvlSRo9bzt9aw_12, ", ", 2);
822 STRING_LITERAL(TM__Q5wkpxktOdTGvlSRo9bzt9aw_13, ")", 1);
823 STRING_LITERAL(TM__Q5wkpxktOdTGvlSRo9bzt9aw_14, "\012", 1);
824 STRING_LITERAL(TM__Q5wkpxktOdTGvlSRo9bzt9aw_15, "no exception to reraise", 23);
825 N_LIB_PRIVATE TNimType NTIbool__VaVACK0bpYmqIQ0mKcHfQQ_;
826 STRING_LITERAL(TM__Q5wkpxktOdTGvlSRo9bzt9aw_16, " (invalid data!)", 16);
827 N_LIB_PRIVATE TNimType NTIcatchableerror__qrLSDoe2oBoAqNtJ9badtnA_;
828 N_LIB_PRIVATE TNimType NTIvalueerror__yoNlBGx0D2tRizIdhQuENw_;
829 N_LIB_PRIVATE TNimType NTIkeyerror__t7nhKLvXTQS9cS8ByJU9bIag_;
830 N_LIB_PRIVATE TNimType NTIrefkeyerror__8SzoIAgLw9ci2v0yafHj9b6Q_;
831 N_LIB_PRIVATE TNimType NTIassertiondefect__PtYxPmY5X0dorfvxAFbJpQ_;
832 N_LIB_PRIVATE TNimType NTIrefassertiondefect__S8DV6hfcgC9c0IiUsAoR29cQ_;
833 N_LIB_PRIVATE TNimType NTIuint4954__M4na42GvebBMnI5wV9cYMxg_;
834 N_LIB_PRIVATE TNimType NTIint4954__kDPg4wXyR8DDyA0MeEjIsw_;
835 N_LIB_PRIVATE TNimType NTIint5150__sVg18TP9cLifHyygRe9cro9aA_;
836 N_LIB_PRIVATE TNimType NTIint56__chXunH2dwinSkhpA6JnsXw_;
837 N_LIB_PRIVATE TNimType NTIfloat__w9bl9a1ul9ctRJWiMl9cNnIMvg_;
838 N_LIB_PRIVATE TNimType NTIchar__nmiMWKVIe46vacnhAFrQvw_;
839 N_LIB_PRIVATE TNimType NTIobjectassignmentdefect__6toVe0IizlEwN9bORXEdX3g_;
840 N_LIB_PRIVATE TNimType NTIrefobjectassignmentdefect__C0A9bPZSVeyr2BWpBf4Jxqw_;
841 STRING_LITERAL(TM__Q5wkpxktOdTGvlSRo9bzt9aw_21, "invalid object assignment", 25);
842 N_LIB_PRIVATE TNimType NTIindexdefect__n6tGEPHKkh7E1AP9bj30WrQ_;
843 N_LIB_PRIVATE TNimType NTIrefindexdefect__RJnHOb9cQV3neNC9cDkRgMyw_;
844 N_LIB_PRIVATE TNimType NTIrefvalueerror__Ie1m0dv1ZHg72IgPRr1cDw_;
845 N_LIB_PRIVATE TNimType NTIoserror__BeJgrOdDsczOwEWOZbRfKA_;
846 N_LIB_PRIVATE TNimType NTIrefoserror__9clYsYwyjCqe2PFTuCI3Ubg_;
847 N_LIB_PRIVATE TNimType NTIioerror__iLZrPn9anoh9ad1MmO0RczFw_;
848 N_LIB_PRIVATE TNimType NTIrefioerror__HMIVdYjdZYWskTmTQVo5BQ_;
849 STRING_LITERAL(TM__Q5wkpxktOdTGvlSRo9bzt9aw_22, "No stack traceback available\012", 29);
850 N_LIB_PRIVATE TNimType NTIeoferror__KGSY1JdrNB7Xi8KDhXFhSg_;
851 N_LIB_PRIVATE TNimType NTIrefeoferror__LEclZrWX2FQAodlapxGITw_;
852 N_LIB_PRIVATE TNimType NTIbiggestint__Aav8dQoMlCFnZRxA0IhTHQ_;
853 N_LIB_PRIVATE TNimType NTIuint5150__JrFyJbYm9b5I4hJ9cWDqvfYA_;
854 N_LIB_PRIVATE TNimType NTIrootref__0vJvi4uHbxjbxlkkX7P1EA_;
855 N_LIB_PRIVATE TNimType NTIuint56__k3HXouOuhqAKq0dx450lXQ_;
856 N_LIB_PRIVATE NIM_CONST tyArray__yp9a149boki9cCCWgfXI0Ip4A powtens__system_6173 = {1.0,
857 10.0,
858 100.0,
859 1000.0,
860 10000.0,
861 100000.0,
862 1000000.0,
863 10000000.0,
864 100000000.0,
865 1000000000.0,
866 10000000000.0,
867 100000000000.0,
868 1000000000000.0,
869 10000000000000.0,
870 100000000000000.0,
871 1000000000000000.0,
872 10000000000000000.0,
873 1e+17,
874 1e+18,
875 1e+19,
876 1e+20,
877 1e+21,
878 1e+22}
879 ;
880 N_LIB_PRIVATE TNimType NTIrangedefect__Rp9adJYTsbbIUzQ8fWxwgdA_;
881 N_LIB_PRIVATE TNimType NTIint__xHTZrq9aYs6boc9bCba0JbpQ_;
882 N_LIB_PRIVATE TNimType NTIrefint__9ai78kkwqt3gikTN9cpHKUVg_;
883 N_LIB_PRIVATE TNimType NTIptrstring__Y36n7l9b7WX4rcaAYCe6LWw_;
884 N_LIB_PRIVATE TNimType NTIcint__nlCscttRCss70IBTyuBqnA_;
885 N_LIB_PRIVATE TNimType NTIuncheckedarrayLcstringT__nvS6J9clHMUMHfoZd8Ad2zg_;
886 N_LIB_PRIVATE TNimType NTIcstringarray__vCtGdhfQAmBlRFXaVFklkQ_;
887 N_LIB_PRIVATE TNimType NTIdivbyzerodefect__n3A4gjRrFZBuNnTYx1h9a8w_;
888 STRING_LITERAL(TM__Q5wkpxktOdTGvlSRo9bzt9aw_23, "true", 4);
889 STRING_LITERAL(TM__Q5wkpxktOdTGvlSRo9bzt9aw_24, "false", 5);
890 N_LIB_PRIVATE TNimType NTIint__u50F0puw9b9c6p256tX4eJLQ_;
891 STRING_LITERAL(TM__Q5wkpxktOdTGvlSRo9bzt9aw_25, "[GC] total memory: ", 19);
892 STRING_LITERAL(TM__Q5wkpxktOdTGvlSRo9bzt9aw_26, "\012[GC] occupied memory: ", 23);
893 STRING_LITERAL(TM__Q5wkpxktOdTGvlSRo9bzt9aw_27, "\012[GC] stack scans: ", 19);
894 STRING_LITERAL(TM__Q5wkpxktOdTGvlSRo9bzt9aw_28, "\012[GC] stack cells: ", 19);
895 STRING_LITERAL(TM__Q5wkpxktOdTGvlSRo9bzt9aw_29, "\012[GC] cycle collections: ", 25);
896 STRING_LITERAL(TM__Q5wkpxktOdTGvlSRo9bzt9aw_30, "\012[GC] max threshold: ", 21);
897 STRING_LITERAL(TM__Q5wkpxktOdTGvlSRo9bzt9aw_31, "\012[GC] zct capacity: ", 20);
898 STRING_LITERAL(TM__Q5wkpxktOdTGvlSRo9bzt9aw_32, "\012[GC] max cycle table size: ", 28);
899 STRING_LITERAL(TM__Q5wkpxktOdTGvlSRo9bzt9aw_33, "\012[GC] max pause time [ms]: ", 27);
900 STRING_LITERAL(TM__Q5wkpxktOdTGvlSRo9bzt9aw_34, "[GC] max stack size: ", 21);
901 N_LIB_PRIVATE NI nim_program_result;
902 N_LIB_PRIVATE tyProc__9axCnCRMUx32AHzFgBrzSMg globalRaiseHook__system_2291;
903 N_LIB_PRIVATE tyProc__9axCnCRMUx32AHzFgBrzSMg localRaiseHook__system_2294;
904 N_LIB_PRIVATE tyProc__T4eqaYlFJYZUv9aG9b1TV0bQ outOfMemHook__system_2296;
905 N_LIB_PRIVATE tyProc__NFmM6mqUOVW3cJg4yvk8Fw unhandledExceptionHook__system_2299;
906 N_LIB_PRIVATE TNimType strDesc__system_2412 = {((NI) 4), 0, ((tyEnum_TNimKind__jIBKr1ejBgsfM33Kxw4j7A) 28), 2, NIM_NIL, NIM_NIL, NIM_NIL, NIM_NIL, NIM_NIL}
907 ;
908 N_LIB_PRIVATE tyProc__W6IXMh2CA4X1rFYGjUb4yg errorMessageWriter__system_2528;
909 N_LIB_PRIVATE TFrame* framePtr__system_2564;
910 N_LIB_PRIVATE TSafePoint* excHandler__system_2565;
911 N_LIB_PRIVATE Exception* currException__system_2566;
912 N_LIB_PRIVATE GcFrameHeader* gcFramePtr__system_2567;
913 N_LIB_PRIVATE tyProc__W6IXMh2CA4X1rFYGjUb4yg onUnhandledException__system_2751;
914 N_LIB_PRIVATE tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ gch__system_5238;
915 N_LIB_PRIVATE NI globalMarkersLen;
916 N_LIB_PRIVATE tyArray__9aTRall1siQT9bXabu2aKXUg globalMarkers;
917 N_LIB_PRIVATE NI threadLocalMarkersLen;
918 N_LIB_PRIVATE tyArray__9aTRall1siQT9bXabu2aKXUg threadLocalMarkers;
919 N_LIB_PRIVATE NI gHeapidGenerator__system_5505;
N_NIMCALL(void,setPosition__system_5424)920 N_LIB_PRIVATE N_NIMCALL(void, setPosition__system_5424)(tyObject_GcStack__7fytPA5bBsob6See21YMRA* stack, void* position) {
921 }
N_NOINLINE(void,nimGC_setStackBottom)922 N_LIB_PRIVATE N_NOINLINE(void, nimGC_setStackBottom)(void* theStackBottom) {
923 	{
924 		if (!(gch__system_5238.stack.bottom == NIM_NIL)) goto LA3_;
925 		gch__system_5238.stack.bottom = theStackBottom;
926 	}
927 	goto LA1_;
928 	LA3_: ;
929 	{
930 		NI a;
931 		NI b;
932 		if (!!((theStackBottom == gch__system_5238.stack.bottom))) goto LA6_;
933 		a = ((NI) (ptrdiff_t) (theStackBottom));
934 		b = ((NI) (ptrdiff_t) (gch__system_5238.stack.bottom));
935 		gch__system_5238.stack.bottom = ((void*) (((a >= b) ? a : b)));
936 	}
937 	goto LA1_;
938 	LA6_: ;
939 	LA1_: ;
940 	setPosition__system_5424((&gch__system_5238.stack), theStackBottom);
941 }
N_INLINE(void,initStackBottom)942 static N_INLINE(void, initStackBottom)(void) {
943 	void* volatile locals;
944 	locals = ((void*) ((&locals)));
945 	nimGC_setStackBottom(locals);
946 }
N_INLINE(NI,roundup__system_3725)947 static N_INLINE(NI, roundup__system_3725)(NI x, NI v) {
948 	NI result;
949 	result = (NI)0;
950 	result = (NI)((NI)(x + (NI)(v - ((NI) 1))) & (NI)((NU32) ~((NI)(v - ((NI) 1)))));
951 	return result;
952 }
N_INLINE(NI,msbit__system_3848)953 static N_INLINE(NI, msbit__system_3848)(NU32 x) {
954 	NI result;
955 	NI a;
956 	result = (NI)0;
957 	{
958 		if (!((NU32)(x) <= (NU32)(((NU32) 65535)))) goto LA3_;
959 		{
960 			if (!((NU32)(x) <= (NU32)(((NU32) 255)))) goto LA7_;
961 			a = ((NI) 0);
962 		}
963 		goto LA5_;
964 		LA7_: ;
965 		{
966 			a = ((NI) 8);
967 		}
968 		LA5_: ;
969 	}
970 	goto LA1_;
971 	LA3_: ;
972 	{
973 		{
974 			if (!((NU32)(x) <= (NU32)(((NU32) 16777215)))) goto LA13_;
975 			a = ((NI) 16);
976 		}
977 		goto LA11_;
978 		LA13_: ;
979 		{
980 			a = ((NI) 24);
981 		}
982 		LA11_: ;
983 	}
984 	LA1_: ;
985 	result = (NI)(((NI) (fsLookupTable__system_3847[((NU32)((NU32)(x) >> (NU32)(a)))- 0])) + a);
986 	return result;
987 }
N_INLINE(void,mappingSearch__system_3873)988 static N_INLINE(void, mappingSearch__system_3873)(NI* r, NI* fl, NI* sl) {
989 	NI t;
990 	NI T1_;
991 	NI T2_;
992 	T1_ = (NI)0;
993 	T1_ = msbit__system_3848(((NU32) ((*r))));
994 	T2_ = (NI)0;
995 	T2_ = roundup__system_3725((NI)((NU32)(((NI) 1)) << (NU32)((NI)(T1_ - ((NI) 5)))), ((NI) 4096));
996 	t = (NI)(T2_ - ((NI) 1));
997 	(*r) = (NI)((*r) + t);
998 	(*r) = (NI)((*r) & (NI)((NU32) ~(t)));
999 	(*r) = (((*r) <= ((NI) 1056964608)) ? (*r) : ((NI) 1056964608));
1000 	(*fl) = msbit__system_3848(((NU32) ((*r))));
1001 	(*sl) = (NI)((NI)((NI32)((*r)) >> (NU32)((NI)((*fl) - ((NI) 5)))) - ((NI) 32));
1002 	(*fl) -= ((NI) 6);
1003 }
N_INLINE(NI,lsbit__system_3856)1004 static N_INLINE(NI, lsbit__system_3856)(NU32 x) {
1005 	NI result;
1006 	result = (NI)0;
1007 	result = msbit__system_3848((NU32)(x & (NU32)((NU32)((NU32)((NU32) ~(x))) + (NU32)(((NU32) 1)))));
1008 	return result;
1009 }
N_INLINE(tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg *,findSuitableBlock__system_3905)1010 static N_INLINE(tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg*, findSuitableBlock__system_3905)(tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg* a, NI* fl, NI* sl) {
1011 	tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg* result;
1012 	NU32 tmp;
1013 	result = (tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg*)0;
1014 	tmp = (NU32)((*a).slBitmap[((*fl))- 0] & (NU32)((NU32)(((NU32) IL64(4294967295))) << (NU32)((*sl))));
1015 	result = ((tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg*) NIM_NIL);
1016 	{
1017 		if (!!((tmp == ((NU32) 0)))) goto LA3_;
1018 		(*sl) = lsbit__system_3856(tmp);
1019 		result = (*a).matrix[((*fl))- 0][((*sl))- 0];
1020 	}
1021 	goto LA1_;
1022 	LA3_: ;
1023 	{
1024 		(*fl) = lsbit__system_3856((NU32)((*a).flBitmap & (NU32)((NU32)(((NU32) IL64(4294967295))) << (NU32)((NI)((*fl) + ((NI) 1))))));
1025 		{
1026 			if (!(((NI) 0) < (*fl))) goto LA8_;
1027 			(*sl) = lsbit__system_3856((*a).slBitmap[((*fl))- 0]);
1028 			result = (*a).matrix[((*fl))- 0][((*sl))- 0];
1029 		}
1030 		LA8_: ;
1031 	}
1032 	LA1_: ;
1033 	return result;
1034 }
N_INLINE(NI,nimCStrLen)1035 static N_INLINE(NI, nimCStrLen)(NCSTRING a) {
1036 	NI result;
1037 	size_t T1_;
1038 	result = (NI)0;
1039 	T1_ = (size_t)0;
1040 	T1_ = strlen(a);
1041 	result = ((NI) (T1_));
1042 	return result;
1043 }
N_INLINE(void,rawWrite)1044 static N_INLINE(void, rawWrite)(FILE* f, NCSTRING s) {
1045 	int T1_;
1046 	int T2_;
1047 	T1_ = (int)0;
1048 	T1_ = fwrite(((void*) (s)), ((size_t) 1), ((size_t) ((s ? nimCStrLen(s) : 0))), f);
1049 	(void)(T1_);
1050 	T2_ = (int)0;
1051 	T2_ = fflush(f);
1052 	(void)(T2_);
1053 }
N_NOINLINE(void,raiseOutOfMem__system_3720)1054 N_LIB_PRIVATE N_NOINLINE(void, raiseOutOfMem__system_3720)(void) {
1055 	{
1056 		if (!!((outOfMemHook__system_2296 == NIM_NIL))) goto LA3_;
1057 		outOfMemHook__system_2296();
1058 	}
1059 	LA3_: ;
1060 	rawWrite(stderr, "out of memory\012");
1061 	exit(((NI) 1));
1062 }
N_INLINE(void *,osAllocPages__system_3745)1063 static N_INLINE(void*, osAllocPages__system_3745)(NI size) {
1064 	void* result;
1065 	result = (void*)0;
1066 	result = mmap(NIM_NIL, ((size_t) (size)), ((int) 3), (NI32)((NI32)(MAP_ANONYMOUS | MAP_PRIVATE) | MAP_STACK), ((int) -1), ((NI) 0));
1067 	{
1068 		NIM_BOOL T3_;
1069 		T3_ = (NIM_BOOL)0;
1070 		T3_ = (result == NIM_NIL);
1071 		if (T3_) goto LA4_;
1072 		T3_ = (result == ((void*) (((NI) -1))));
1073 		LA4_: ;
1074 		if (!T3_) goto LA5_;
1075 		raiseOutOfMem__system_3720();
1076 	}
1077 	LA5_: ;
1078 	return result;
1079 }
N_INLINE(void *,osTryAllocPages__system_3748)1080 static N_INLINE(void*, osTryAllocPages__system_3748)(NI size) {
1081 	void* result;
1082 	result = (void*)0;
1083 	result = mmap(NIM_NIL, ((size_t) (size)), ((int) 3), (NI32)((NI32)(MAP_ANONYMOUS | MAP_PRIVATE) | MAP_STACK), ((int) -1), ((NI) 0));
1084 	{
1085 		if (!(result == ((void*) (((NI) -1))))) goto LA3_;
1086 		result = NIM_NIL;
1087 	}
1088 	LA3_: ;
1089 	return result;
1090 }
N_INLINE(void,incCurrMem__system_3988)1091 static N_INLINE(void, incCurrMem__system_3988)(tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg* a, NI bytes) {
1092 	(*a).currMem += bytes;
1093 }
N_INLINE(void,nimSetMem__systemZmemory_7)1094 static N_INLINE(void, nimSetMem__systemZmemory_7)(void* a, int v, NI size) {
1095 	void* T1_;
1096 	T1_ = (void*)0;
1097 	T1_ = memset(a, v, ((size_t) (size)));
1098 }
N_INLINE(void,nimZeroMem)1099 static N_INLINE(void, nimZeroMem)(void* p, NI size) {
1100 	nimSetMem__systemZmemory_7(p, ((int) 0), size);
1101 }
N_INLINE(void,zeroMem__system_1724)1102 static N_INLINE(void, zeroMem__system_1724)(void* p, NI size) {
1103 	nimZeroMem(p, size);
1104 }
N_NIMCALL(void *,llAlloc__system_4005)1105 N_LIB_PRIVATE N_NIMCALL(void*, llAlloc__system_4005)(tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg* a, NI size) {
1106 	void* result;
1107 	result = (void*)0;
1108 	{
1109 		NIM_BOOL T3_;
1110 		tyObject_LLChunk__XsENErzHIZV9bhvyJx56wGw* old;
1111 		void* T7_;
1112 		T3_ = (NIM_BOOL)0;
1113 		T3_ = ((*a).llmem == ((tyObject_LLChunk__XsENErzHIZV9bhvyJx56wGw*) NIM_NIL));
1114 		if (T3_) goto LA4_;
1115 		T3_ = ((*(*a).llmem).size < size);
1116 		LA4_: ;
1117 		if (!T3_) goto LA5_;
1118 		old = (*a).llmem;
1119 		T7_ = (void*)0;
1120 		T7_ = osAllocPages__system_3745(((NI) 4096));
1121 		(*a).llmem = ((tyObject_LLChunk__XsENErzHIZV9bhvyJx56wGw*) (T7_));
1122 		incCurrMem__system_3988(a, ((NI) 4096));
1123 		(*(*a).llmem).size = ((NI) 4084);
1124 		(*(*a).llmem).acc = ((NI) 12);
1125 		(*(*a).llmem).next = old;
1126 	}
1127 	LA5_: ;
1128 	result = ((void*) ((NI)(((NI) (ptrdiff_t) ((*a).llmem)) + (*(*a).llmem).acc)));
1129 	(*(*a).llmem).size -= size;
1130 	(*(*a).llmem).acc += size;
1131 	zeroMem__system_1724(result, ((NI) (size)));
1132 	return result;
1133 }
N_NIMCALL(void,addHeapLink__system_4072)1134 N_LIB_PRIVATE N_NIMCALL(void, addHeapLink__system_4072)(tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg* a, tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg* p, NI size) {
1135 	tyObject_HeapLinks__PDV1HBZ8CQSQJC9aOBFNRSg* it;
1136 	it = (&(*a).heapLinks);
1137 	{
1138 		while (1) {
1139 			NIM_BOOL T3_;
1140 			T3_ = (NIM_BOOL)0;
1141 			T3_ = !((it == ((tyObject_HeapLinks__PDV1HBZ8CQSQJC9aOBFNRSg*) NIM_NIL)));
1142 			if (!(T3_)) goto LA4_;
1143 			T3_ = (((NI) 30) <= (*it).len);
1144 			LA4_: ;
1145 			if (!T3_) goto LA2;
1146 			it = (*it).next;
1147 		} LA2: ;
1148 	}
1149 	{
1150 		tyObject_HeapLinks__PDV1HBZ8CQSQJC9aOBFNRSg* n;
1151 		void* T9_;
1152 		tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg* colontmp_;
1153 		NI colontmp__2;
1154 		if (!(it == ((tyObject_HeapLinks__PDV1HBZ8CQSQJC9aOBFNRSg*) NIM_NIL))) goto LA7_;
1155 		T9_ = (void*)0;
1156 		T9_ = llAlloc__system_4005(a, ((NI) 248));
1157 		n = ((tyObject_HeapLinks__PDV1HBZ8CQSQJC9aOBFNRSg*) (T9_));
1158 		(*n).next = (*a).heapLinks.next;
1159 		(*a).heapLinks.next = n;
1160 		colontmp_ = p;
1161 		colontmp__2 = size;
1162 		(*n).chunks[(((NI) 0))- 0].Field0 = colontmp_;
1163 		(*n).chunks[(((NI) 0))- 0].Field1 = colontmp__2;
1164 		(*n).len = ((NI) 1);
1165 	}
1166 	goto LA5_;
1167 	LA7_: ;
1168 	{
1169 		NI L;
1170 		tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg* colontmp__3;
1171 		NI colontmp__4;
1172 		L = (*it).len;
1173 		colontmp__3 = p;
1174 		colontmp__4 = size;
1175 		(*it).chunks[(L)- 0].Field0 = colontmp__3;
1176 		(*it).chunks[(L)- 0].Field1 = colontmp__4;
1177 		(*it).len += ((NI) 1);
1178 	}
1179 	LA5_: ;
1180 }
N_INLINE(NI,pluspercent___system_696)1181 static N_INLINE(NI, pluspercent___system_696)(NI x, NI y) {
1182 	NI result;
1183 	result = (NI)0;
1184 	result = ((NI) ((NU)((NU32)(((NU) (x))) + (NU32)(((NU) (y))))));
1185 	return result;
1186 }
N_NIMCALL(tyObject_Trunk__W0r8S0Y3UGke6T9bIUWnnuw *,intSetGet__system_4215)1187 N_LIB_PRIVATE N_NIMCALL(tyObject_Trunk__W0r8S0Y3UGke6T9bIUWnnuw*, intSetGet__system_4215)(tyObject_IntSet__EZObFrE3NC9bIb3YMkY9crZA* t, NI key) {
1188 	tyObject_Trunk__W0r8S0Y3UGke6T9bIUWnnuw* result;
1189 	tyObject_Trunk__W0r8S0Y3UGke6T9bIUWnnuw* it;
1190 {	result = (tyObject_Trunk__W0r8S0Y3UGke6T9bIUWnnuw*)0;
1191 	it = (*t).data[((NI)(key & ((NI) 255)))- 0];
1192 	{
1193 		while (1) {
1194 			if (!!((it == ((tyObject_Trunk__W0r8S0Y3UGke6T9bIUWnnuw*) NIM_NIL)))) goto LA2;
1195 			{
1196 				if (!((*it).key == key)) goto LA5_;
1197 				result = it;
1198 				goto BeforeRet_;
1199 			}
1200 			LA5_: ;
1201 			it = (*it).next;
1202 		} LA2: ;
1203 	}
1204 	result = ((tyObject_Trunk__W0r8S0Y3UGke6T9bIUWnnuw*) NIM_NIL);
1205 	}BeforeRet_: ;
1206 	return result;
1207 }
N_NIMCALL(NIM_BOOL,contains__system_4254)1208 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, contains__system_4254)(tyObject_IntSet__EZObFrE3NC9bIb3YMkY9crZA* s, NI key) {
1209 	NIM_BOOL result;
1210 	tyObject_Trunk__W0r8S0Y3UGke6T9bIUWnnuw* t;
1211 	result = (NIM_BOOL)0;
1212 	t = intSetGet__system_4215(s, (NI)((NI32)(key) >> (NU32)(((NI) 9))));
1213 	{
1214 		NI u;
1215 		if (!!((t == ((tyObject_Trunk__W0r8S0Y3UGke6T9bIUWnnuw*) NIM_NIL)))) goto LA3_;
1216 		u = (NI)(key & ((NI) 511));
1217 		result = !(((NU)((*t).bits[((NI)((NI32)(u) >> (NU32)(((NI) 5))))- 0] & (NU)((NU32)(((NU) 1)) << (NU32)((NI)(u & ((NI) 31))))) == ((NU) 0)));
1218 	}
1219 	goto LA1_;
1220 	LA3_: ;
1221 	{
1222 		result = NIM_FALSE;
1223 	}
1224 	LA1_: ;
1225 	return result;
1226 }
N_INLINE(NI,pageIndex__system_4441)1227 static N_INLINE(NI, pageIndex__system_4441)(tyObject_BaseChunk__Sdq7WpT6qAH858F5ZEdG3w* c) {
1228 	NI result;
1229 	result = (NI)0;
1230 	result = (NI)((NI32)(((NI) (ptrdiff_t) (c))) >> (NU32)(((NI) 12)));
1231 	return result;
1232 }
N_INLINE(NI,minuspercent___system_716)1233 static N_INLINE(NI, minuspercent___system_716)(NI x, NI y) {
1234 	NI result;
1235 	result = (NI)0;
1236 	result = ((NI) ((NU)((NU32)(((NU) (x))) - (NU32)(((NU) (y))))));
1237 	return result;
1238 }
N_NIMCALL(tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg *,requestOsChunks__system_4459)1239 N_LIB_PRIVATE N_NIMCALL(tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg*, requestOsChunks__system_4459)(tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg* a, NI size) {
1240 	tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg* result;
1241 	NI size_2;
1242 	NI nxt;
1243 	tyObject_BaseChunk__Sdq7WpT6qAH858F5ZEdG3w* next;
1244 	NI lastSize;
1245 	NI prv;
1246 	tyObject_BaseChunk__Sdq7WpT6qAH858F5ZEdG3w* prev;
1247 	result = (tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg*)0;
1248 	{
1249 		NI usedMem;
1250 		if (!!((*a).blockChunkSizeIncrease)) goto LA3_;
1251 		usedMem = (*a).occ;
1252 		{
1253 			if (!(usedMem < ((NI) 65536))) goto LA7_;
1254 			(*a).nextChunkSize = ((NI) 16384);
1255 		}
1256 		goto LA5_;
1257 		LA7_: ;
1258 		{
1259 			NI T10_;
1260 			T10_ = (NI)0;
1261 			T10_ = roundup__system_3725((NI)((NI32)(usedMem) >> (NU32)(((NI) 2))), ((NI) 4096));
1262 			(*a).nextChunkSize = ((T10_ <= (NI)((*a).nextChunkSize * ((NI) 2))) ? T10_ : (NI)((*a).nextChunkSize * ((NI) 2)));
1263 			(*a).nextChunkSize = (((*a).nextChunkSize <= ((NI) 1056964608)) ? (*a).nextChunkSize : ((NI) 1056964608));
1264 		}
1265 		LA5_: ;
1266 	}
1267 	LA3_: ;
1268 	size_2 = size;
1269 	{
1270 		void* T15_;
1271 		if (!((*a).nextChunkSize < size_2)) goto LA13_;
1272 		T15_ = (void*)0;
1273 		T15_ = osAllocPages__system_3745(size_2);
1274 		result = ((tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg*) (T15_));
1275 	}
1276 	goto LA11_;
1277 	LA13_: ;
1278 	{
1279 		void* T17_;
1280 		T17_ = (void*)0;
1281 		T17_ = osTryAllocPages__system_3748((*a).nextChunkSize);
1282 		result = ((tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg*) (T17_));
1283 		{
1284 			void* T22_;
1285 			if (!(result == ((tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg*) NIM_NIL))) goto LA20_;
1286 			T22_ = (void*)0;
1287 			T22_ = osAllocPages__system_3745(size_2);
1288 			result = ((tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg*) (T22_));
1289 			(*a).blockChunkSizeIncrease = NIM_TRUE;
1290 		}
1291 		goto LA18_;
1292 		LA20_: ;
1293 		{
1294 			size_2 = (*a).nextChunkSize;
1295 		}
1296 		LA18_: ;
1297 	}
1298 	LA11_: ;
1299 	incCurrMem__system_3988(a, size_2);
1300 	(*a).freeMem += size_2;
1301 	addHeapLink__system_4072(a, result, size_2);
1302 	(*result).next = ((tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg*) NIM_NIL);
1303 	(*result).prev = ((tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg*) NIM_NIL);
1304 	(*result).Sup.size = size_2;
1305 	nxt = pluspercent___system_696(((NI) (ptrdiff_t) (result)), size_2);
1306 	next = ((tyObject_BaseChunk__Sdq7WpT6qAH858F5ZEdG3w*) (nxt));
1307 	{
1308 		NI T26_;
1309 		NIM_BOOL T27_;
1310 		T26_ = (NI)0;
1311 		T26_ = pageIndex__system_4441(next);
1312 		T27_ = (NIM_BOOL)0;
1313 		T27_ = contains__system_4254((&(*a).chunkStarts), T26_);
1314 		if (!T27_) goto LA28_;
1315 		(*next).prevSize = (NI)(size_2 | (NI)((*next).prevSize & ((NI) 1)));
1316 	}
1317 	LA28_: ;
1318 	{
1319 		if (!!(((*a).lastSize == ((NI) 0)))) goto LA32_;
1320 		lastSize = (*a).lastSize;
1321 	}
1322 	goto LA30_;
1323 	LA32_: ;
1324 	{
1325 		lastSize = ((NI) 4096);
1326 	}
1327 	LA30_: ;
1328 	prv = minuspercent___system_716(((NI) (ptrdiff_t) (result)), lastSize);
1329 	prev = ((tyObject_BaseChunk__Sdq7WpT6qAH858F5ZEdG3w*) (prv));
1330 	{
1331 		NIM_BOOL T37_;
1332 		NI T38_;
1333 		T37_ = (NIM_BOOL)0;
1334 		T38_ = (NI)0;
1335 		T38_ = pageIndex__system_4441(prev);
1336 		T37_ = contains__system_4254((&(*a).chunkStarts), T38_);
1337 		if (!(T37_)) goto LA39_;
1338 		T37_ = ((*prev).size == lastSize);
1339 		LA39_: ;
1340 		if (!T37_) goto LA40_;
1341 		(*result).Sup.prevSize = (NI)(lastSize | (NI)((*result).Sup.prevSize & ((NI) 1)));
1342 	}
1343 	goto LA35_;
1344 	LA40_: ;
1345 	{
1346 		(*result).Sup.prevSize = (NI)(((NI) 0) | (NI)((*result).Sup.prevSize & ((NI) 1)));
1347 	}
1348 	LA35_: ;
1349 	(*a).lastSize = size_2;
1350 	return result;
1351 }
N_INLINE(NI,pageIndex__system_4448)1352 static N_INLINE(NI, pageIndex__system_4448)(void* p) {
1353 	NI result;
1354 	result = (NI)0;
1355 	result = (NI)((NI32)(((NI) (ptrdiff_t) (p))) >> (NU32)(((NI) 12)));
1356 	return result;
1357 }
N_INLINE(NIM_BOOL,isAccessible__system_4482)1358 static N_INLINE(NIM_BOOL, isAccessible__system_4482)(tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg* a, void* p) {
1359 	NIM_BOOL result;
1360 	NI T1_;
1361 	result = (NIM_BOOL)0;
1362 	T1_ = (NI)0;
1363 	T1_ = pageIndex__system_4448(p);
1364 	result = contains__system_4254((&(*a).chunkStarts), T1_);
1365 	return result;
1366 }
N_INLINE(void,updatePrevSize__system_4500)1367 static N_INLINE(void, updatePrevSize__system_4500)(tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg* a, tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg* c, NI prevSize) {
1368 	tyObject_BaseChunk__Sdq7WpT6qAH858F5ZEdG3w* ri;
1369 	NI T1_;
1370 	T1_ = (NI)0;
1371 	T1_ = pluspercent___system_696(((NI) (ptrdiff_t) (c)), (*c).Sup.size);
1372 	ri = ((tyObject_BaseChunk__Sdq7WpT6qAH858F5ZEdG3w*) (T1_));
1373 	{
1374 		NIM_BOOL T4_;
1375 		T4_ = (NIM_BOOL)0;
1376 		T4_ = isAccessible__system_4482((&(*a)), ((void*) (ri)));
1377 		if (!T4_) goto LA5_;
1378 		(*ri).prevSize = (NI)(prevSize | (NI)((*ri).prevSize & ((NI) 1)));
1379 	}
1380 	LA5_: ;
1381 }
N_NIMCALL(tyObject_Trunk__W0r8S0Y3UGke6T9bIUWnnuw *,intSetPut__system_4237)1382 N_LIB_PRIVATE N_NIMCALL(tyObject_Trunk__W0r8S0Y3UGke6T9bIUWnnuw*, intSetPut__system_4237)(tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg* a, tyObject_IntSet__EZObFrE3NC9bIb3YMkY9crZA* t, NI key) {
1383 	tyObject_Trunk__W0r8S0Y3UGke6T9bIUWnnuw* result;
1384 	result = (tyObject_Trunk__W0r8S0Y3UGke6T9bIUWnnuw*)0;
1385 	result = intSetGet__system_4215((&(*t)), key);
1386 	{
1387 		void* T5_;
1388 		if (!(result == ((tyObject_Trunk__W0r8S0Y3UGke6T9bIUWnnuw*) NIM_NIL))) goto LA3_;
1389 		T5_ = (void*)0;
1390 		T5_ = llAlloc__system_4005(a, ((NI) 72));
1391 		result = ((tyObject_Trunk__W0r8S0Y3UGke6T9bIUWnnuw*) (T5_));
1392 		(*result).next = (*t).data[((NI)(key & ((NI) 255)))- 0];
1393 		(*t).data[((NI)(key & ((NI) 255)))- 0] = result;
1394 		(*result).key = key;
1395 	}
1396 	LA3_: ;
1397 	return result;
1398 }
N_NIMCALL(void,incl__system_4276)1399 N_LIB_PRIVATE N_NIMCALL(void, incl__system_4276)(tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg* a, tyObject_IntSet__EZObFrE3NC9bIb3YMkY9crZA* s, NI key) {
1400 	tyObject_Trunk__W0r8S0Y3UGke6T9bIUWnnuw* t;
1401 	NI u;
1402 	t = intSetPut__system_4237(a, s, (NI)((NI32)(key) >> (NU32)(((NI) 9))));
1403 	u = (NI)(key & ((NI) 511));
1404 	(*t).bits[((NI)((NI32)(u) >> (NU32)(((NI) 5))))- 0] = (NU)((*t).bits[((NI)((NI32)(u) >> (NU32)(((NI) 5))))- 0] | (NU)((NU32)(((NU) 1)) << (NU32)((NI)(u & ((NI) 31)))));
1405 }
N_NIMCALL(tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg *,splitChunk2__system_4505)1406 N_LIB_PRIVATE N_NIMCALL(tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg*, splitChunk2__system_4505)(tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg* a, tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg* c, NI size) {
1407 	tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg* result;
1408 	NI T1_;
1409 	NI T2_;
1410 	result = (tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg*)0;
1411 	T1_ = (NI)0;
1412 	T1_ = pluspercent___system_696(((NI) (ptrdiff_t) (c)), size);
1413 	result = ((tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg*) (T1_));
1414 	(*result).Sup.size = (NI)((*c).Sup.size - size);
1415 	(*result).next = ((tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg*) NIM_NIL);
1416 	(*result).prev = ((tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg*) NIM_NIL);
1417 	(*result).Sup.prevSize = size;
1418 	updatePrevSize__system_4500(a, c, (*result).Sup.size);
1419 	(*c).Sup.size = size;
1420 	T2_ = (NI)0;
1421 	T2_ = pageIndex__system_4441((*((tyObject_BaseChunk__Sdq7WpT6qAH858F5ZEdG3w**) (&(result)))));
1422 	incl__system_4276(a, (&(*a).chunkStarts), T2_);
1423 	return result;
1424 }
N_INLINE(tyTuple__1v9bKyksXWMsm0vNwmZ4EuQ,mappingInsert__system_3891)1425 static N_INLINE(tyTuple__1v9bKyksXWMsm0vNwmZ4EuQ, mappingInsert__system_3891)(NI r) {
1426 	tyTuple__1v9bKyksXWMsm0vNwmZ4EuQ result;
1427 	nimZeroMem((void*)(&result), sizeof(tyTuple__1v9bKyksXWMsm0vNwmZ4EuQ));
1428 	result.Field0 = msbit__system_3848(((NU32) (r)));
1429 	result.Field1 = (NI)((NI)((NI32)(r) >> (NU32)((NI)(result.Field0 - ((NI) 5)))) - ((NI) 32));
1430 	result.Field0 -= ((NI) 6);
1431 	return result;
1432 }
N_INLINE(void,setBit__system_3859)1433 static N_INLINE(void, setBit__system_3859)(NI nr, NU32* dest) {
1434 	(*dest) = (NU32)((*dest) | (NU32)((NU32)(((NU32) 1)) << (NU32)((NI)(nr & ((NI) 31)))));
1435 }
N_NIMCALL(void,addChunkToMatrix__system_3979)1436 N_LIB_PRIVATE N_NIMCALL(void, addChunkToMatrix__system_3979)(tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg* a, tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg* b) {
1437 	tyTuple__1v9bKyksXWMsm0vNwmZ4EuQ T1_;
1438 	NI fl;
1439 	NI sl;
1440 	T1_ = mappingInsert__system_3891((*b).Sup.size);
1441 	fl = T1_.Field0;
1442 	sl = T1_.Field1;
1443 	(*b).prev = ((tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg*) NIM_NIL);
1444 	(*b).next = (*a).matrix[(fl)- 0][(sl)- 0];
1445 	{
1446 		if (!!(((*a).matrix[(fl)- 0][(sl)- 0] == ((tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg*) NIM_NIL)))) goto LA4_;
1447 		(*(*a).matrix[(fl)- 0][(sl)- 0]).prev = b;
1448 	}
1449 	LA4_: ;
1450 	(*a).matrix[(fl)- 0][(sl)- 0] = b;
1451 	setBit__system_3859(sl, (&(*a).slBitmap[(fl)- 0]));
1452 	setBit__system_3859(fl, (&(*a).flBitmap));
1453 }
N_NIMCALL(void,splitChunk__system_4510)1454 N_LIB_PRIVATE N_NIMCALL(void, splitChunk__system_4510)(tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg* a, tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg* c, NI size) {
1455 	tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg* rest;
1456 	rest = splitChunk2__system_4505(a, c, size);
1457 	addChunkToMatrix__system_3979(a, rest);
1458 }
N_INLINE(void,clearBit__system_3866)1459 static N_INLINE(void, clearBit__system_3866)(NI nr, NU32* dest) {
1460 	(*dest) = (NU32)((*dest) & (NU32)((NU32) ~((NU32)((NU32)(((NU32) 1)) << (NU32)((NI)(nr & ((NI) 31)))))));
1461 }
N_NIMCALL(void,removeChunkFromMatrix2__system_3970)1462 N_LIB_PRIVATE N_NIMCALL(void, removeChunkFromMatrix2__system_3970)(tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg* a, tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg* b, NI fl, NI sl) {
1463 	(*a).matrix[(fl)- 0][(sl)- 0] = (*b).next;
1464 	{
1465 		if (!!(((*a).matrix[(fl)- 0][(sl)- 0] == ((tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg*) NIM_NIL)))) goto LA3_;
1466 		(*(*a).matrix[(fl)- 0][(sl)- 0]).prev = ((tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg*) NIM_NIL);
1467 	}
1468 	goto LA1_;
1469 	LA3_: ;
1470 	{
1471 		clearBit__system_3866(sl, (&(*a).slBitmap[(fl)- 0]));
1472 		{
1473 			if (!((*a).slBitmap[(fl)- 0] == ((NU32) 0))) goto LA8_;
1474 			clearBit__system_3866(fl, (&(*a).flBitmap));
1475 		}
1476 		LA8_: ;
1477 	}
1478 	LA1_: ;
1479 	(*b).prev = ((tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg*) NIM_NIL);
1480 	(*b).next = ((tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg*) NIM_NIL);
1481 }
N_NIMCALL(tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg *,getBigChunk__system_4536)1482 N_LIB_PRIVATE N_NIMCALL(tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg*, getBigChunk__system_4536)(tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg* a, NI size) {
1483 	tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg* result;
1484 	NI size_2;
1485 	NI fl;
1486 	NI sl;
1487 	NI T19_;
1488 	result = (tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg*)0;
1489 	size_2 = size;
1490 	fl = ((NI) 0);
1491 	sl = ((NI) 0);
1492 	mappingSearch__system_3873((&size_2), (&fl), (&sl));
1493 	result = findSuitableBlock__system_3905((&(*a)), (&fl), (&sl));
1494 	{
1495 		if (!(result == ((tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg*) NIM_NIL))) goto LA3_;
1496 		{
1497 			if (!(size_2 < ((NI) 524288))) goto LA7_;
1498 			result = requestOsChunks__system_4459(a, ((NI) 524288));
1499 			splitChunk__system_4510(a, result, size_2);
1500 		}
1501 		goto LA5_;
1502 		LA7_: ;
1503 		{
1504 			result = requestOsChunks__system_4459(a, size_2);
1505 			{
1506 				if (!(size_2 < (*result).Sup.size)) goto LA12_;
1507 				splitChunk__system_4510(a, result, size_2);
1508 			}
1509 			LA12_: ;
1510 		}
1511 		LA5_: ;
1512 	}
1513 	goto LA1_;
1514 	LA3_: ;
1515 	{
1516 		removeChunkFromMatrix2__system_3970(a, result, fl, sl);
1517 		{
1518 			if (!((NI)(size_2 + ((NI) 4096)) <= (*result).Sup.size)) goto LA17_;
1519 			splitChunk__system_4510(a, result, size_2);
1520 		}
1521 		LA17_: ;
1522 	}
1523 	LA1_: ;
1524 	(*result).Sup.prevSize = ((NI) 1);
1525 	T19_ = (NI)0;
1526 	T19_ = pageIndex__system_4441((*((tyObject_BaseChunk__Sdq7WpT6qAH858F5ZEdG3w**) (&(result)))));
1527 	incl__system_4276(a, (&(*a).chunkStarts), T19_);
1528 	(*a).freeMem -= size_2;
1529 	return result;
1530 }
N_NIMCALL(tyObject_SmallChunk__tXn60W2f8h3jgAYdEmy5NQ *,getSmallChunk__system_4559)1531 N_LIB_PRIVATE N_NIMCALL(tyObject_SmallChunk__tXn60W2f8h3jgAYdEmy5NQ*, getSmallChunk__system_4559)(tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg* a) {
1532 	tyObject_SmallChunk__tXn60W2f8h3jgAYdEmy5NQ* result;
1533 	tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg* res;
1534 	result = (tyObject_SmallChunk__tXn60W2f8h3jgAYdEmy5NQ*)0;
1535 	res = getBigChunk__system_4536(a, ((NI) 4096));
1536 	result = ((tyObject_SmallChunk__tXn60W2f8h3jgAYdEmy5NQ*) (res));
1537 	return result;
1538 }
N_INLINE(void,listAdd__system_4597)1539 static N_INLINE(void, listAdd__system_4597)(tyObject_SmallChunk__tXn60W2f8h3jgAYdEmy5NQ** head, tyObject_SmallChunk__tXn60W2f8h3jgAYdEmy5NQ* c) {
1540 	(*c).next = (*head);
1541 	{
1542 		if (!!(((*head) == ((tyObject_SmallChunk__tXn60W2f8h3jgAYdEmy5NQ*) NIM_NIL)))) goto LA3_;
1543 		(*(*head)).prev = c;
1544 	}
1545 	LA3_: ;
1546 	(*head) = c;
1547 }
N_INLINE(void,listRemove__system_4650)1548 static N_INLINE(void, listRemove__system_4650)(tyObject_SmallChunk__tXn60W2f8h3jgAYdEmy5NQ** head, tyObject_SmallChunk__tXn60W2f8h3jgAYdEmy5NQ* c) {
1549 	{
1550 		if (!(c == (*head))) goto LA3_;
1551 		(*head) = (*c).next;
1552 		{
1553 			if (!!(((*head) == ((tyObject_SmallChunk__tXn60W2f8h3jgAYdEmy5NQ*) NIM_NIL)))) goto LA7_;
1554 			(*(*head)).prev = ((tyObject_SmallChunk__tXn60W2f8h3jgAYdEmy5NQ*) NIM_NIL);
1555 		}
1556 		LA7_: ;
1557 	}
1558 	goto LA1_;
1559 	LA3_: ;
1560 	{
1561 		(*(*c).prev).next = (*c).next;
1562 		{
1563 			if (!!(((*c).next == ((tyObject_SmallChunk__tXn60W2f8h3jgAYdEmy5NQ*) NIM_NIL)))) goto LA12_;
1564 			(*(*c).next).prev = (*c).prev;
1565 		}
1566 		LA12_: ;
1567 	}
1568 	LA1_: ;
1569 	(*c).next = ((tyObject_SmallChunk__tXn60W2f8h3jgAYdEmy5NQ*) NIM_NIL);
1570 	(*c).prev = ((tyObject_SmallChunk__tXn60W2f8h3jgAYdEmy5NQ*) NIM_NIL);
1571 }
N_NIMCALL(tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg *,getHugeChunk__system_4551)1572 N_LIB_PRIVATE N_NIMCALL(tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg*, getHugeChunk__system_4551)(tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg* a, NI size) {
1573 	tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg* result;
1574 	void* T1_;
1575 	NI T2_;
1576 	result = (tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg*)0;
1577 	T1_ = (void*)0;
1578 	T1_ = osAllocPages__system_3745(size);
1579 	result = ((tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg*) (T1_));
1580 	incCurrMem__system_3988(a, size);
1581 	(*result).next = ((tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg*) NIM_NIL);
1582 	(*result).prev = ((tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg*) NIM_NIL);
1583 	(*result).Sup.size = size;
1584 	(*result).Sup.prevSize = ((NI) 1);
1585 	T2_ = (NI)0;
1586 	T2_ = pageIndex__system_4441((*((tyObject_BaseChunk__Sdq7WpT6qAH858F5ZEdG3w**) (&(result)))));
1587 	incl__system_4276(a, (&(*a).chunkStarts), T2_);
1588 	return result;
1589 }
N_NIMCALL(tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw *,getBottom__system_4031)1590 N_LIB_PRIVATE N_NIMCALL(tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw*, getBottom__system_4031)(tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg* a) {
1591 	tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* result;
1592 	result = (tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw*)0;
1593 	result = (&(*a).bottomData);
1594 	{
1595 		if (!((*result).link[(((NI) 0))- 0] == ((tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw*) NIM_NIL))) goto LA3_;
1596 		(*result).link[(((NI) 0))- 0] = result;
1597 		(*result).link[(((NI) 1))- 0] = result;
1598 	}
1599 	LA3_: ;
1600 	return result;
1601 }
N_NIMCALL(tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw *,allocAvlNode__system_4047)1602 N_LIB_PRIVATE N_NIMCALL(tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw*, allocAvlNode__system_4047)(tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg* a, NI key, NI upperBound) {
1603 	tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* result;
1604 	tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* bottom;
1605 	result = (tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw*)0;
1606 	{
1607 		if (!!(((*a).freeAvlNodes == ((tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw*) NIM_NIL)))) goto LA3_;
1608 		result = (*a).freeAvlNodes;
1609 		(*a).freeAvlNodes = (*(*a).freeAvlNodes).link[(((NI) 0))- 0];
1610 	}
1611 	goto LA1_;
1612 	LA3_: ;
1613 	{
1614 		void* T6_;
1615 		T6_ = (void*)0;
1616 		T6_ = llAlloc__system_4005(a, ((NI) 20));
1617 		result = ((tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw*) (T6_));
1618 	}
1619 	LA1_: ;
1620 	(*result).key = key;
1621 	(*result).upperBound = upperBound;
1622 	bottom = getBottom__system_4031(a);
1623 	(*result).link[(((NI) 0))- 0] = bottom;
1624 	(*result).link[(((NI) 1))- 0] = bottom;
1625 	(*result).level = ((NI) 1);
1626 	return result;
1627 }
N_INLINE(NIM_BOOL,ltpercent___system_1005)1628 static N_INLINE(NIM_BOOL, ltpercent___system_1005)(NI x, NI y) {
1629 	NIM_BOOL result;
1630 	result = (NIM_BOOL)0;
1631 	result = ((NU32)(((NU) (x))) < (NU32)(((NU) (y))));
1632 	return result;
1633 }
N_NIMCALL(void,skew__system_4168)1634 N_LIB_PRIVATE N_NIMCALL(void, skew__system_4168)(tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw** t) {
1635 	{
1636 		tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* temp;
1637 		if (!((*(*(*t)).link[(((NI) 0))- 0]).level == (*(*t)).level)) goto LA3_;
1638 		temp = (*t);
1639 		(*t) = (*(*t)).link[(((NI) 0))- 0];
1640 		(*temp).link[(((NI) 0))- 0] = (*(*t)).link[(((NI) 1))- 0];
1641 		(*(*t)).link[(((NI) 1))- 0] = temp;
1642 	}
1643 	LA3_: ;
1644 }
N_NIMCALL(void,split__system_4171)1645 N_LIB_PRIVATE N_NIMCALL(void, split__system_4171)(tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw** t) {
1646 	{
1647 		tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* temp;
1648 		if (!((*(*(*(*t)).link[(((NI) 1))- 0]).link[(((NI) 1))- 0]).level == (*(*t)).level)) goto LA3_;
1649 		temp = (*t);
1650 		(*t) = (*(*t)).link[(((NI) 1))- 0];
1651 		(*temp).link[(((NI) 1))- 0] = (*(*t)).link[(((NI) 0))- 0];
1652 		(*(*t)).link[(((NI) 0))- 0] = temp;
1653 		(*(*t)).level += ((NI) 1);
1654 	}
1655 	LA3_: ;
1656 }
N_NIMCALL(void,add__system_4178)1657 N_LIB_PRIVATE N_NIMCALL(void, add__system_4178)(tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg* a, tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw** t, NI key, NI upperBound) {
1658 	{
1659 		if (!((*(*t)).link[(((NI) 0))- 0] == (*t))) goto LA3_;
1660 		(*t) = allocAvlNode__system_4047(a, key, upperBound);
1661 	}
1662 	goto LA1_;
1663 	LA3_: ;
1664 	{
1665 		{
1666 			NIM_BOOL T8_;
1667 			T8_ = (NIM_BOOL)0;
1668 			T8_ = ltpercent___system_1005(key, (*(*t)).key);
1669 			if (!T8_) goto LA9_;
1670 			add__system_4178(a, &(*(*t)).link[(((NI) 0))- 0], key, upperBound);
1671 		}
1672 		goto LA6_;
1673 		LA9_: ;
1674 		{
1675 			NIM_BOOL T12_;
1676 			T12_ = (NIM_BOOL)0;
1677 			T12_ = ltpercent___system_1005((*(*t)).key, key);
1678 			if (!T12_) goto LA13_;
1679 			add__system_4178(a, &(*(*t)).link[(((NI) 1))- 0], key, upperBound);
1680 		}
1681 		goto LA6_;
1682 		LA13_: ;
1683 		{
1684 		}
1685 		LA6_: ;
1686 		skew__system_4168(t);
1687 		split__system_4171(t);
1688 	}
1689 	LA1_: ;
1690 }
N_NIMCALL(void *,rawAlloc__system_4580)1691 N_LIB_PRIVATE N_NIMCALL(void*, rawAlloc__system_4580)(tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg* a, NI requestedSize) {
1692 	void* result;
1693 	NI size;
1694 	result = (void*)0;
1695 	size = roundup__system_3725(requestedSize, ((NI) 16));
1696 	{
1697 		NI s;
1698 		tyObject_SmallChunk__tXn60W2f8h3jgAYdEmy5NQ* c;
1699 		if (!(size <= ((NI) 4064))) goto LA3_;
1700 		s = (NI)(size / ((NI) 16));
1701 		c = (*a).freeSmallChunks[(s)- 0];
1702 		{
1703 			if (!(c == ((tyObject_SmallChunk__tXn60W2f8h3jgAYdEmy5NQ*) NIM_NIL))) goto LA7_;
1704 			c = getSmallChunk__system_4559(a);
1705 			(*c).freeList = ((tyObject_FreeCell__u6M5LHprqzkn9axr04yg9bGQ*) NIM_NIL);
1706 			(*c).Sup.size = size;
1707 			(*c).acc = size;
1708 			(*c).free = (NI)(((NI) 4064) - size);
1709 			(*c).next = ((tyObject_SmallChunk__tXn60W2f8h3jgAYdEmy5NQ*) NIM_NIL);
1710 			(*c).prev = ((tyObject_SmallChunk__tXn60W2f8h3jgAYdEmy5NQ*) NIM_NIL);
1711 			listAdd__system_4597(&(*a).freeSmallChunks[(s)- 0], c);
1712 			result = ((void*) ((*c).data));
1713 		}
1714 		goto LA5_;
1715 		LA7_: ;
1716 		{
1717 			{
1718 				NI T14_;
1719 				if (!((*c).freeList == ((tyObject_FreeCell__u6M5LHprqzkn9axr04yg9bGQ*) NIM_NIL))) goto LA12_;
1720 				T14_ = (NI)0;
1721 				T14_ = pluspercent___system_696(((NI) (ptrdiff_t) ((*c).data)), (*c).acc);
1722 				result = ((void*) (T14_));
1723 				(*c).acc += size;
1724 			}
1725 			goto LA10_;
1726 			LA12_: ;
1727 			{
1728 				result = ((void*) ((*c).freeList));
1729 				(*c).freeList = (*(*c).freeList).next;
1730 			}
1731 			LA10_: ;
1732 			(*c).free -= size;
1733 		}
1734 		LA5_: ;
1735 		{
1736 			if (!((*c).free < size)) goto LA18_;
1737 			listRemove__system_4650(&(*a).freeSmallChunks[(s)- 0], c);
1738 		}
1739 		LA18_: ;
1740 		(*a).occ += size;
1741 	}
1742 	goto LA1_;
1743 	LA3_: ;
1744 	{
1745 		tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg* c_2;
1746 		NI T30_;
1747 		size = (NI)(requestedSize + ((NI) 16));
1748 		{
1749 			if (!(((NI) 1056964609) <= size)) goto LA23_;
1750 			c_2 = getHugeChunk__system_4551(a, size);
1751 		}
1752 		goto LA21_;
1753 		LA23_: ;
1754 		{
1755 			c_2 = getBigChunk__system_4536(a, size);
1756 		}
1757 		LA21_: ;
1758 		result = ((void*) ((*c_2).data));
1759 		{
1760 			if (!((*a).root == ((tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw*) NIM_NIL))) goto LA28_;
1761 			(*a).root = getBottom__system_4031(a);
1762 		}
1763 		LA28_: ;
1764 		T30_ = (NI)0;
1765 		T30_ = pluspercent___system_696(((NI) (ptrdiff_t) (result)), size);
1766 		add__system_4178(a, &(*a).root, ((NI) (ptrdiff_t) (result)), T30_);
1767 		(*a).occ += (*c_2).Sup.size;
1768 	}
1769 	LA1_: ;
1770 	return result;
1771 }
N_NIMCALL(void *,alloc__system_4796)1772 N_LIB_PRIVATE N_NIMCALL(void*, alloc__system_4796)(tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg* allocator, NI size) {
1773 	void* result;
1774 	NI T1_;
1775 	result = (void*)0;
1776 	result = rawAlloc__system_4580(allocator, (NI)(((NI) (size)) + ((NI) 8)));
1777 	(*((tyObject_FreeCell__u6M5LHprqzkn9axr04yg9bGQ*) (result))).zeroField = ((NI) 1);
1778 	T1_ = (NI)0;
1779 	T1_ = pluspercent___system_696(((NI) (ptrdiff_t) (result)), ((NI) 8));
1780 	result = ((void*) (T1_));
1781 	return result;
1782 }
N_NIMCALL(void *,alloc0__system_4800)1783 N_LIB_PRIVATE N_NIMCALL(void*, alloc0__system_4800)(tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg* allocator, NI size) {
1784 	void* result;
1785 	result = (void*)0;
1786 	result = alloc__system_4796(allocator, size);
1787 	zeroMem__system_1724(result, size);
1788 	return result;
1789 }
N_NOCONV(void *,alloc0Impl__system_1745)1790 N_LIB_PRIVATE N_NOCONV(void*, alloc0Impl__system_1745)(NI size) {
1791 	void* result;
1792 	result = (void*)0;
1793 	result = alloc0__system_4800((&gch__system_5238.region), size);
1794 	return result;
1795 }
N_NIMCALL(void,init__system_4906)1796 N_LIB_PRIVATE N_NIMCALL(void, init__system_4906)(tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w* s, NI cap) {
1797 	void* T1_;
1798 	(*s).len = ((NI) 0);
1799 	(*s).cap = cap;
1800 	T1_ = (void*)0;
1801 	T1_ = alloc0Impl__system_1745(((NI) ((NI)(cap * ((NI) 4)))));
1802 	(*s).d = ((tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g**) (T1_));
1803 }
N_NIMCALL(void,init__system_4912)1804 N_LIB_PRIVATE N_NIMCALL(void, init__system_4912)(tyObject_CellSet__jG87P0AI9aZtss9ccTYBIISQ* s) {
1805 	void* T1_;
1806 	T1_ = (void*)0;
1807 	T1_ = alloc0Impl__system_1745(((NI) 4096));
1808 	(*s).data = ((tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg**) (T1_));
1809 	(*s).max = ((NI) 1023);
1810 	(*s).counter = ((NI) 0);
1811 	(*s).head = ((tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg*) NIM_NIL);
1812 }
N_INLINE(NI,atomicInc__system_2172)1813 static N_INLINE(NI, atomicInc__system_2172)(NI* memLoc, NI x) {
1814 	NI result;
1815 	result = (NI)0;
1816 	(*memLoc) += x;
1817 	result = (*memLoc);
1818 	return result;
1819 }
N_NIMCALL(void,initGC__system_2398)1820 N_LIB_PRIVATE N_NIMCALL(void, initGC__system_2398)(void) {
1821 	NI T1_;
1822 	gch__system_5238.cycleThreshold = ((NI) 4194304);
1823 	gch__system_5238.zctThreshold = ((NI) 500);
1824 	gch__system_5238.stat.stackScans = ((NI) 0);
1825 	gch__system_5238.stat.cycleCollections = ((NI) 0);
1826 	gch__system_5238.stat.maxThreshold = ((NI) 0);
1827 	gch__system_5238.stat.maxStackSize = ((NI) 0);
1828 	gch__system_5238.stat.maxStackCells = ((NI) 0);
1829 	gch__system_5238.stat.cycleTableSize = ((NI) 0);
1830 	init__system_4906((&gch__system_5238.zct), ((NI) 1024));
1831 	init__system_4906((&gch__system_5238.tempStack), ((NI) 1024));
1832 	init__system_4906((&gch__system_5238.decStack), ((NI) 1024));
1833 	init__system_4912((&gch__system_5238.marked));
1834 	init__system_4906((&gch__system_5238.additionalRoots), ((NI) 1024));
1835 	T1_ = (NI)0;
1836 	T1_ = atomicInc__system_2172((&gHeapidGenerator__system_5505), ((NI) 1));
1837 	gch__system_5238.gcThreadId = (NI)(T1_ - ((NI) 1));
1838 }
N_NIMCALL(void,Marker_tySequence__uB9b75OUPRENsBAu4AnoePA)1839 static N_NIMCALL(void, Marker_tySequence__uB9b75OUPRENsBAu4AnoePA)(void* p, NI op) {
1840 	tySequence__uB9b75OUPRENsBAu4AnoePA* a;
1841 	NI T1_;
1842 	a = (tySequence__uB9b75OUPRENsBAu4AnoePA*)p;
1843 	T1_ = (NI)0;
1844 }
N_INLINE(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g *,usrToCell__system_5291)1845 static N_INLINE(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*, usrToCell__system_5291)(void* usr) {
1846 	tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* result;
1847 	NI T1_;
1848 	result = (tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*)0;
1849 	T1_ = (NI)0;
1850 	T1_ = minuspercent___system_716(((NI) (ptrdiff_t) (usr)), ((NI) 8));
1851 	result = ((tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*) (T1_));
1852 	return result;
1853 }
N_NOCONV(void *,allocImpl__system_1743)1854 N_LIB_PRIVATE N_NOCONV(void*, allocImpl__system_1743)(NI size) {
1855 	void* result;
1856 	result = (void*)0;
1857 	result = alloc__system_4796((&gch__system_5238.region), size);
1858 	return result;
1859 }
N_INLINE(void,nimCopyMem)1860 static N_INLINE(void, nimCopyMem)(void* dest, void* source, NI size) {
1861 	void* T1_;
1862 	T1_ = (void*)0;
1863 	T1_ = memcpy(dest, source, ((size_t) (size)));
1864 }
N_INLINE(void,copyMem__system_1727)1865 static N_INLINE(void, copyMem__system_1727)(void* dest, void* source, NI size) {
1866 	nimCopyMem(dest, source, size);
1867 }
N_INLINE(tyObject_BaseChunk__Sdq7WpT6qAH858F5ZEdG3w *,pageAddr__system_4455)1868 static N_INLINE(tyObject_BaseChunk__Sdq7WpT6qAH858F5ZEdG3w*, pageAddr__system_4455)(void* p) {
1869 	tyObject_BaseChunk__Sdq7WpT6qAH858F5ZEdG3w* result;
1870 	result = (tyObject_BaseChunk__Sdq7WpT6qAH858F5ZEdG3w*)0;
1871 	result = ((tyObject_BaseChunk__Sdq7WpT6qAH858F5ZEdG3w*) ((NI)(((NI) (ptrdiff_t) (p)) & ((NI) -4096))));
1872 	return result;
1873 }
N_INLINE(NIM_BOOL,isSmallChunk__system_4366)1874 static N_INLINE(NIM_BOOL, isSmallChunk__system_4366)(tyObject_BaseChunk__Sdq7WpT6qAH858F5ZEdG3w* c) {
1875 	NIM_BOOL result;
1876 	result = (NIM_BOOL)0;
1877 	result = ((*c).size <= ((NI) 4064));
1878 	return result;
1879 }
N_INLINE(NIM_BOOL,chunkUnused__system_4372)1880 static N_INLINE(NIM_BOOL, chunkUnused__system_4372)(tyObject_BaseChunk__Sdq7WpT6qAH858F5ZEdG3w* c) {
1881 	NIM_BOOL result;
1882 	result = (NIM_BOOL)0;
1883 	result = ((NI)((*c).prevSize & ((NI) 1)) == ((NI) 0));
1884 	return result;
1885 }
N_NIMCALL(void,removeChunkFromMatrix__system_3940)1886 N_LIB_PRIVATE N_NIMCALL(void, removeChunkFromMatrix__system_3940)(tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg* a, tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg* b) {
1887 	tyTuple__1v9bKyksXWMsm0vNwmZ4EuQ T1_;
1888 	NI fl;
1889 	NI sl;
1890 	T1_ = mappingInsert__system_3891((*b).Sup.size);
1891 	fl = T1_.Field0;
1892 	sl = T1_.Field1;
1893 	{
1894 		if (!!(((*b).next == ((tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg*) NIM_NIL)))) goto LA4_;
1895 		(*(*b).next).prev = (*b).prev;
1896 	}
1897 	LA4_: ;
1898 	{
1899 		if (!!(((*b).prev == ((tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg*) NIM_NIL)))) goto LA8_;
1900 		(*(*b).prev).next = (*b).next;
1901 	}
1902 	LA8_: ;
1903 	{
1904 		if (!((*a).matrix[(fl)- 0][(sl)- 0] == b)) goto LA12_;
1905 		(*a).matrix[(fl)- 0][(sl)- 0] = (*b).next;
1906 		{
1907 			if (!((*a).matrix[(fl)- 0][(sl)- 0] == ((tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg*) NIM_NIL))) goto LA16_;
1908 			clearBit__system_3866(sl, (&(*a).slBitmap[(fl)- 0]));
1909 			{
1910 				if (!((*a).slBitmap[(fl)- 0] == ((NU32) 0))) goto LA20_;
1911 				clearBit__system_3866(fl, (&(*a).flBitmap));
1912 			}
1913 			LA20_: ;
1914 		}
1915 		LA16_: ;
1916 	}
1917 	LA12_: ;
1918 	(*b).prev = ((tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg*) NIM_NIL);
1919 	(*b).next = ((tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg*) NIM_NIL);
1920 }
N_NIMCALL(void,excl__system_4298)1921 N_LIB_PRIVATE N_NIMCALL(void, excl__system_4298)(tyObject_IntSet__EZObFrE3NC9bIb3YMkY9crZA* s, NI key) {
1922 	tyObject_Trunk__W0r8S0Y3UGke6T9bIUWnnuw* t;
1923 	t = intSetGet__system_4215((&(*s)), (NI)((NI32)(key) >> (NU32)(((NI) 9))));
1924 	{
1925 		NI u;
1926 		if (!!((t == ((tyObject_Trunk__W0r8S0Y3UGke6T9bIUWnnuw*) NIM_NIL)))) goto LA3_;
1927 		u = (NI)(key & ((NI) 511));
1928 		(*t).bits[((NI)((NI32)(u) >> (NU32)(((NI) 5))))- 0] = (NU)((*t).bits[((NI)((NI32)(u) >> (NU32)(((NI) 5))))- 0] & (NU)((NU32) ~((NU)((NU32)(((NU) 1)) << (NU32)((NI)(u & ((NI) 31)))))));
1929 	}
1930 	LA3_: ;
1931 }
N_NIMCALL(void,freeBigChunk__system_4515)1932 N_LIB_PRIVATE N_NIMCALL(void, freeBigChunk__system_4515)(tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg* a, tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg* c) {
1933 	tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg* c_2;
1934 	NI prevSize;
1935 	tyObject_BaseChunk__Sdq7WpT6qAH858F5ZEdG3w* ri;
1936 	NI T24_;
1937 	c_2 = c;
1938 	(*a).freeMem += (*c_2).Sup.size;
1939 	(*c_2).Sup.prevSize = (NI)((*c_2).Sup.prevSize & ((NI) -2));
1940 	prevSize = (*c_2).Sup.prevSize;
1941 	{
1942 		tyObject_BaseChunk__Sdq7WpT6qAH858F5ZEdG3w* le;
1943 		NI T5_;
1944 		if (!!((prevSize == ((NI) 0)))) goto LA3_;
1945 		T5_ = (NI)0;
1946 		T5_ = minuspercent___system_716(((NI) (ptrdiff_t) (c_2)), prevSize);
1947 		le = ((tyObject_BaseChunk__Sdq7WpT6qAH858F5ZEdG3w*) (T5_));
1948 		{
1949 			NIM_BOOL T8_;
1950 			T8_ = (NIM_BOOL)0;
1951 			T8_ = isAccessible__system_4482((&(*a)), ((void*) (le)));
1952 			if (!(T8_)) goto LA9_;
1953 			T8_ = chunkUnused__system_4372(le);
1954 			LA9_: ;
1955 			if (!T8_) goto LA10_;
1956 			{
1957 				NIM_BOOL T14_;
1958 				NIM_BOOL T15_;
1959 				NI T19_;
1960 				T14_ = (NIM_BOOL)0;
1961 				T15_ = (NIM_BOOL)0;
1962 				T15_ = isSmallChunk__system_4366(le);
1963 				T14_ = !(T15_);
1964 				if (!(T14_)) goto LA16_;
1965 				T14_ = ((*le).size < ((NI) 1056964608));
1966 				LA16_: ;
1967 				if (!T14_) goto LA17_;
1968 				removeChunkFromMatrix__system_3940(a, ((tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg*) (le)));
1969 				(*le).size += (*c_2).Sup.size;
1970 				T19_ = (NI)0;
1971 				T19_ = pageIndex__system_4441((*((tyObject_BaseChunk__Sdq7WpT6qAH858F5ZEdG3w**) (&(c_2)))));
1972 				excl__system_4298((&(*a).chunkStarts), T19_);
1973 				c_2 = ((tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg*) (le));
1974 				{
1975 					tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg* rest;
1976 					if (!(((NI) 1056964608) < (*c_2).Sup.size)) goto LA22_;
1977 					rest = splitChunk2__system_4505(a, c_2, ((NI) 1056964608));
1978 					addChunkToMatrix__system_3979(a, c_2);
1979 					c_2 = rest;
1980 				}
1981 				LA22_: ;
1982 			}
1983 			LA17_: ;
1984 		}
1985 		LA10_: ;
1986 	}
1987 	LA3_: ;
1988 	T24_ = (NI)0;
1989 	T24_ = pluspercent___system_696(((NI) (ptrdiff_t) (c_2)), (*c_2).Sup.size);
1990 	ri = ((tyObject_BaseChunk__Sdq7WpT6qAH858F5ZEdG3w*) (T24_));
1991 	{
1992 		NIM_BOOL T27_;
1993 		T27_ = (NIM_BOOL)0;
1994 		T27_ = isAccessible__system_4482((&(*a)), ((void*) (ri)));
1995 		if (!(T27_)) goto LA28_;
1996 		T27_ = chunkUnused__system_4372(ri);
1997 		LA28_: ;
1998 		if (!T27_) goto LA29_;
1999 		{
2000 			NIM_BOOL T33_;
2001 			NIM_BOOL T34_;
2002 			NI T38_;
2003 			T33_ = (NIM_BOOL)0;
2004 			T34_ = (NIM_BOOL)0;
2005 			T34_ = isSmallChunk__system_4366(ri);
2006 			T33_ = !(T34_);
2007 			if (!(T33_)) goto LA35_;
2008 			T33_ = ((*c_2).Sup.size < ((NI) 1056964608));
2009 			LA35_: ;
2010 			if (!T33_) goto LA36_;
2011 			removeChunkFromMatrix__system_3940(a, ((tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg*) (ri)));
2012 			(*c_2).Sup.size += (*ri).size;
2013 			T38_ = (NI)0;
2014 			T38_ = pageIndex__system_4441(ri);
2015 			excl__system_4298((&(*a).chunkStarts), T38_);
2016 			{
2017 				tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg* rest_2;
2018 				if (!(((NI) 1056964608) < (*c_2).Sup.size)) goto LA41_;
2019 				rest_2 = splitChunk2__system_4505(a, c_2, ((NI) 1056964608));
2020 				addChunkToMatrix__system_3979(a, rest_2);
2021 			}
2022 			LA41_: ;
2023 		}
2024 		LA36_: ;
2025 	}
2026 	LA29_: ;
2027 	addChunkToMatrix__system_3979(a, c_2);
2028 }
N_INLINE(void,deallocAvlNode__system_4069)2029 static N_INLINE(void, deallocAvlNode__system_4069)(tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg* a, tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* n) {
2030 	(*n).link[(((NI) 0))- 0] = (*a).freeAvlNodes;
2031 	(*a).freeAvlNodes = n;
2032 }
N_NIMCALL(void,del__system_4187)2033 N_LIB_PRIVATE N_NIMCALL(void, del__system_4187)(tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg* a, tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw** t, NI x) {
2034 {	{
2035 		if (!((*(*t)).link[(((NI) 0))- 0] == (*t))) goto LA3_;
2036 		goto BeforeRet_;
2037 	}
2038 	LA3_: ;
2039 	(*a).last = (*t);
2040 	{
2041 		NIM_BOOL T7_;
2042 		T7_ = (NIM_BOOL)0;
2043 		T7_ = ltpercent___system_1005(x, (*(*t)).key);
2044 		if (!T7_) goto LA8_;
2045 		del__system_4187(a, &(*(*t)).link[(((NI) 0))- 0], x);
2046 	}
2047 	goto LA5_;
2048 	LA8_: ;
2049 	{
2050 		(*a).deleted = (*t);
2051 		del__system_4187(a, &(*(*t)).link[(((NI) 1))- 0], x);
2052 	}
2053 	LA5_: ;
2054 	{
2055 		NIM_BOOL T13_;
2056 		NIM_BOOL T14_;
2057 		T13_ = (NIM_BOOL)0;
2058 		T14_ = (NIM_BOOL)0;
2059 		T14_ = ((*t) == (*a).last);
2060 		if (!(T14_)) goto LA15_;
2061 		T14_ = !(((*(*a).deleted).link[(((NI) 0))- 0] == (*a).deleted));
2062 		LA15_: ;
2063 		T13_ = T14_;
2064 		if (!(T13_)) goto LA16_;
2065 		T13_ = (x == (*(*a).deleted).key);
2066 		LA16_: ;
2067 		if (!T13_) goto LA17_;
2068 		(*(*a).deleted).key = (*(*t)).key;
2069 		(*(*a).deleted).upperBound = (*(*t)).upperBound;
2070 		(*a).deleted = getBottom__system_4031(a);
2071 		(*t) = (*(*t)).link[(((NI) 1))- 0];
2072 		deallocAvlNode__system_4069(a, (*a).last);
2073 	}
2074 	goto LA11_;
2075 	LA17_: ;
2076 	{
2077 		NIM_BOOL T20_;
2078 		T20_ = (NIM_BOOL)0;
2079 		T20_ = ((*(*(*t)).link[(((NI) 0))- 0]).level < (NI)((*(*t)).level - ((NI) 1)));
2080 		if (T20_) goto LA21_;
2081 		T20_ = ((*(*(*t)).link[(((NI) 1))- 0]).level < (NI)((*(*t)).level - ((NI) 1)));
2082 		LA21_: ;
2083 		if (!T20_) goto LA22_;
2084 		(*(*t)).level -= ((NI) 1);
2085 		{
2086 			if (!((*(*t)).level < (*(*(*t)).link[(((NI) 1))- 0]).level)) goto LA26_;
2087 			(*(*(*t)).link[(((NI) 1))- 0]).level = (*(*t)).level;
2088 		}
2089 		LA26_: ;
2090 		skew__system_4168(t);
2091 		skew__system_4168(&(*(*t)).link[(((NI) 1))- 0]);
2092 		skew__system_4168(&(*(*(*t)).link[(((NI) 1))- 0]).link[(((NI) 1))- 0]);
2093 		split__system_4171(t);
2094 		split__system_4171(&(*(*t)).link[(((NI) 1))- 0]);
2095 	}
2096 	goto LA11_;
2097 	LA22_: ;
2098 	LA11_: ;
2099 	}BeforeRet_: ;
2100 }
N_INLINE(void,decCurrMem__system_3995)2101 static N_INLINE(void, decCurrMem__system_3995)(tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg* a, NI bytes) {
2102 	(*a).maxMem = (((*a).maxMem >= (*a).currMem) ? (*a).maxMem : (*a).currMem);
2103 	(*a).currMem -= bytes;
2104 }
N_INLINE(void,osDeallocPages__system_3751)2105 static N_INLINE(void, osDeallocPages__system_3751)(void* p, NI size) {
2106 	int T1_;
2107 	T1_ = (int)0;
2108 	T1_ = munmap(p, ((size_t) (size)));
2109 	(void)(T1_);
2110 }
N_NIMCALL(void,freeHugeChunk__system_4555)2111 N_LIB_PRIVATE N_NIMCALL(void, freeHugeChunk__system_4555)(tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg* a, tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg* c) {
2112 	NI size;
2113 	NI T1_;
2114 	size = (*c).Sup.size;
2115 	T1_ = (NI)0;
2116 	T1_ = pageIndex__system_4441(&c->Sup);
2117 	excl__system_4298((&(*a).chunkStarts), T1_);
2118 	decCurrMem__system_3995(a, size);
2119 	osDeallocPages__system_3751(((void*) (c)), size);
2120 }
N_NIMCALL(void,rawDealloc__system_4709)2121 N_LIB_PRIVATE N_NIMCALL(void, rawDealloc__system_4709)(tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg* a, void* p) {
2122 	tyObject_BaseChunk__Sdq7WpT6qAH858F5ZEdG3w* c;
2123 	c = pageAddr__system_4455(p);
2124 	{
2125 		NIM_BOOL T3_;
2126 		tyObject_SmallChunk__tXn60W2f8h3jgAYdEmy5NQ* c_2;
2127 		NI s;
2128 		tyObject_FreeCell__u6M5LHprqzkn9axr04yg9bGQ* f;
2129 		T3_ = (NIM_BOOL)0;
2130 		T3_ = isSmallChunk__system_4366(c);
2131 		if (!T3_) goto LA4_;
2132 		c_2 = ((tyObject_SmallChunk__tXn60W2f8h3jgAYdEmy5NQ*) (c));
2133 		s = (*c_2).Sup.size;
2134 		(*a).occ -= s;
2135 		f = ((tyObject_FreeCell__u6M5LHprqzkn9axr04yg9bGQ*) (p));
2136 		(*f).zeroField = ((NI) 0);
2137 		(*f).next = (*c_2).freeList;
2138 		(*c_2).freeList = f;
2139 		{
2140 			if (!((*c_2).free < s)) goto LA8_;
2141 			listAdd__system_4597(&(*a).freeSmallChunks[((NI)(s / ((NI) 16)))- 0], c_2);
2142 			(*c_2).free += s;
2143 		}
2144 		goto LA6_;
2145 		LA8_: ;
2146 		{
2147 			(*c_2).free += s;
2148 			{
2149 				if (!((*c_2).free == ((NI) 4064))) goto LA13_;
2150 				listRemove__system_4650(&(*a).freeSmallChunks[((NI)(s / ((NI) 16)))- 0], c_2);
2151 				(*c_2).Sup.size = ((NI) 4096);
2152 				freeBigChunk__system_4515(a, ((tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg*) (c_2)));
2153 			}
2154 			LA13_: ;
2155 		}
2156 		LA6_: ;
2157 	}
2158 	goto LA1_;
2159 	LA4_: ;
2160 	{
2161 		tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg* c_3;
2162 		c_3 = ((tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg*) (c));
2163 		(*a).occ -= (*c_3).Sup.size;
2164 		(*a).deleted = getBottom__system_4031(a);
2165 		del__system_4187(a, &(*a).root, ((NI) (ptrdiff_t) ((*c_3).data)));
2166 		{
2167 			if (!(((NI) 1056964609) <= (*c_3).Sup.size)) goto LA18_;
2168 			freeHugeChunk__system_4555(a, c_3);
2169 		}
2170 		goto LA16_;
2171 		LA18_: ;
2172 		{
2173 			freeBigChunk__system_4515(a, c_3);
2174 		}
2175 		LA16_: ;
2176 	}
2177 	LA1_: ;
2178 }
N_NIMCALL(void,dealloc__system_4804)2179 N_LIB_PRIVATE N_NIMCALL(void, dealloc__system_4804)(tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg* allocator, void* p) {
2180 	void* x;
2181 	NI T1_;
2182 	T1_ = (NI)0;
2183 	T1_ = minuspercent___system_716(((NI) (ptrdiff_t) (p)), ((NI) 8));
2184 	x = ((void*) (T1_));
2185 	rawDealloc__system_4709(allocator, x);
2186 }
N_NOCONV(void,deallocImpl__system_1747)2187 N_LIB_PRIVATE N_NOCONV(void, deallocImpl__system_1747)(void* p) {
2188 	dealloc__system_4804((&gch__system_5238.region), p);
2189 }
N_NOCONV(void,dealloc)2190 N_LIB_PRIVATE N_NOCONV(void, dealloc)(void* p) {
2191 	deallocImpl__system_1747(p);
2192 }
N_INLINE(void,add__system_4880)2193 static N_INLINE(void, add__system_4880)(tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w* s, tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c) {
2194 	{
2195 		tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g** d;
2196 		void* T5_;
2197 		if (!((*s).cap <= (*s).len)) goto LA3_;
2198 		(*s).cap = (NI)((NI)((*s).cap * ((NI) 3)) / ((NI) 2));
2199 		T5_ = (void*)0;
2200 		T5_ = allocImpl__system_1743(((NI) ((NI)((*s).cap * ((NI) 4)))));
2201 		d = ((tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g**) (T5_));
2202 		copyMem__system_1727(((void*) (d)), ((void*) ((*s).d)), ((NI) ((NI)((*s).len * ((NI) 4)))));
2203 		dealloc(((void*) ((*s).d)));
2204 		(*s).d = d;
2205 	}
2206 	LA3_: ;
2207 	(*s).d[(*s).len] = c;
2208 	(*s).len += ((NI) 1);
2209 }
N_NOINLINE(void,addZCT__system_5285)2210 N_LIB_PRIVATE N_NOINLINE(void, addZCT__system_5285)(tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w* s, tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c) {
2211 	{
2212 		if (!((NI)((*c).refcount & ((NI) 4)) == ((NI) 0))) goto LA3_;
2213 		(*c).refcount = (NI)((*c).refcount | ((NI) 4));
2214 		add__system_4880(s, c);
2215 	}
2216 	LA3_: ;
2217 }
N_INLINE(void,rtlAddZCT__system_5334)2218 static N_INLINE(void, rtlAddZCT__system_5334)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c) {
2219 	addZCT__system_5285((&gch__system_5238.zct), c);
2220 }
N_INLINE(void,decRef__system_5336)2221 static N_INLINE(void, decRef__system_5336)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c) {
2222 	(*c).refcount = minuspercent___system_716((*c).refcount, ((NI) 8));
2223 	{
2224 		NIM_BOOL T3_;
2225 		T3_ = (NIM_BOOL)0;
2226 		T3_ = ltpercent___system_1005((*c).refcount, ((NI) 8));
2227 		if (!T3_) goto LA4_;
2228 		rtlAddZCT__system_5334(c);
2229 	}
2230 	LA4_: ;
2231 }
N_INLINE(NI,nextTry__system_4940)2232 static N_INLINE(NI, nextTry__system_4940)(NI h, NI maxHash) {
2233 	NI result;
2234 	result = (NI)0;
2235 	result = (NI)((NI)((NI)(((NI) 5) * h) + ((NI) 1)) & maxHash);
2236 	return result;
2237 }
N_NIMCALL(void,cellSetRawInsert__system_4953)2238 N_LIB_PRIVATE N_NIMCALL(void, cellSetRawInsert__system_4953)(tyObject_CellSet__jG87P0AI9aZtss9ccTYBIISQ t, tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg** data, tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg* desc) {
2239 	NI h;
2240 	h = (NI)(((NI) ((*desc).key)) & t.max);
2241 	{
2242 		while (1) {
2243 			if (!!((data[h] == ((tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg*) NIM_NIL)))) goto LA2;
2244 			h = nextTry__system_4940(h, t.max);
2245 		} LA2: ;
2246 	}
2247 	data[h] = desc;
2248 }
N_NIMCALL(void,cellSetEnlarge__system_4970)2249 N_LIB_PRIVATE N_NIMCALL(void, cellSetEnlarge__system_4970)(tyObject_CellSet__jG87P0AI9aZtss9ccTYBIISQ* t) {
2250 	NI oldMax;
2251 	tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg** n;
2252 	void* T1_;
2253 	oldMax = (*t).max;
2254 	(*t).max = (NI)((NI)((NI)((*t).max + ((NI) 1)) * ((NI) 2)) - ((NI) 1));
2255 	T1_ = (void*)0;
2256 	T1_ = alloc0Impl__system_1745(((NI) ((NI)((NI)((*t).max + ((NI) 1)) * ((NI) 4)))));
2257 	n = ((tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg**) (T1_));
2258 	{
2259 		NI i;
2260 		NI res;
2261 		i = (NI)0;
2262 		res = ((NI) 0);
2263 		{
2264 			while (1) {
2265 				if (!(res <= oldMax)) goto LA4;
2266 				i = res;
2267 				{
2268 					if (!!(((*t).data[i] == ((tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg*) NIM_NIL)))) goto LA7_;
2269 					cellSetRawInsert__system_4953((*t), n, (*t).data[i]);
2270 				}
2271 				LA7_: ;
2272 				res += ((NI) 1);
2273 			} LA4: ;
2274 		}
2275 	}
2276 	dealloc(((void*) ((*t).data)));
2277 	(*t).data = n;
2278 }
N_NIMCALL(tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg *,cellSetPut__system_4983)2279 N_LIB_PRIVATE N_NIMCALL(tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg*, cellSetPut__system_4983)(tyObject_CellSet__jG87P0AI9aZtss9ccTYBIISQ* t, NU key) {
2280 	tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg* result;
2281 	NI h;
2282 	void* T19_;
2283 {	result = (tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg*)0;
2284 	h = (NI)(((NI) (key)) & (*t).max);
2285 	{
2286 		while (1) {
2287 			tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg* x;
2288 			x = (*t).data[h];
2289 			{
2290 				if (!(x == ((tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg*) NIM_NIL))) goto LA5_;
2291 				goto LA1;
2292 			}
2293 			LA5_: ;
2294 			{
2295 				if (!((*x).key == key)) goto LA9_;
2296 				result = x;
2297 				goto BeforeRet_;
2298 			}
2299 			LA9_: ;
2300 			h = nextTry__system_4940(h, (*t).max);
2301 		}
2302 	} LA1: ;
2303 	{
2304 		NIM_BOOL T13_;
2305 		T13_ = (NIM_BOOL)0;
2306 		T13_ = ((NI)((NI)((*t).max + ((NI) 1)) * ((NI) 2)) < (NI)((*t).counter * ((NI) 3)));
2307 		if (T13_) goto LA14_;
2308 		T13_ = ((NI)((NI)((*t).max + ((NI) 1)) - (*t).counter) < ((NI) 4));
2309 		LA14_: ;
2310 		if (!T13_) goto LA15_;
2311 		cellSetEnlarge__system_4970(t);
2312 	}
2313 	LA15_: ;
2314 	(*t).counter += ((NI) 1);
2315 	h = (NI)(((NI) (key)) & (*t).max);
2316 	{
2317 		while (1) {
2318 			if (!!(((*t).data[h] == ((tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg*) NIM_NIL)))) goto LA18;
2319 			h = nextTry__system_4940(h, (*t).max);
2320 		} LA18: ;
2321 	}
2322 	T19_ = (void*)0;
2323 	T19_ = alloc0Impl__system_1745(((NI) 40));
2324 	result = ((tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg*) (T19_));
2325 	(*result).next = (*t).head;
2326 	(*result).key = key;
2327 	(*t).head = result;
2328 	(*t).data[h] = result;
2329 	}BeforeRet_: ;
2330 	return result;
2331 }
N_NIMCALL(void,incl__system_5037)2332 N_LIB_PRIVATE N_NIMCALL(void, incl__system_5037)(tyObject_CellSet__jG87P0AI9aZtss9ccTYBIISQ* s, tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* cell) {
2333 	NU u;
2334 	tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg* t;
2335 	u = ((NU) (ptrdiff_t) (cell));
2336 	t = cellSetPut__system_4983(s, (NU)((NU32)(u) >> (NU32)(((NI) 12))));
2337 	u = (NU)((NU32)((NU)((NU32)(u) % (NU32)(((NU) 4096)))) / (NU32)(((NU) 16)));
2338 	(*t).bits[((NU)((NU32)(u) >> (NU32)(((NI) 5))))- 0] = (NI)((*t).bits[((NU)((NU32)(u) >> (NU32)(((NI) 5))))- 0] | (NI)((NU32)(((NI) 1)) << (NU32)((NU)(u & ((NU) 31)))));
2339 }
N_INLINE(void *,cellToUsr__system_5288)2340 static N_INLINE(void*, cellToUsr__system_5288)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* cell) {
2341 	void* result;
2342 	NI T1_;
2343 	result = (void*)0;
2344 	T1_ = (NI)0;
2345 	T1_ = pluspercent___system_696(((NI) (ptrdiff_t) (cell)), ((NI) 8));
2346 	result = ((void*) (T1_));
2347 	return result;
2348 }
N_NIMCALL(NU,getDiscriminant__system_3636)2349 N_LIB_PRIVATE N_NIMCALL(NU, getDiscriminant__system_3636)(void* aa, TNimNode* n) {
2350 	NU result;
2351 	NU d;
2352 	NU a;
2353 {	result = (NU)0;
2354 	d = (NU)0;
2355 	a = ((NU) (ptrdiff_t) (aa));
2356 	switch ((*(*n).typ).size) {
2357 	case ((NI) 1):
2358 	{
2359 		d = ((NU) ((*((NU8*) ((NU)((NU32)(a) + (NU32)(((NU) ((*n).offset)))))))));
2360 	}
2361 	break;
2362 	case ((NI) 2):
2363 	{
2364 		d = ((NU) ((*((NU16*) ((NU)((NU32)(a) + (NU32)(((NU) ((*n).offset)))))))));
2365 	}
2366 	break;
2367 	case ((NI) 4):
2368 	{
2369 		d = ((NU) ((*((NU32*) ((NU)((NU32)(a) + (NU32)(((NU) ((*n).offset)))))))));
2370 	}
2371 	break;
2372 	case ((NI) 8):
2373 	{
2374 		d = ((NU) ((*((NU64*) ((NU)((NU32)(a) + (NU32)(((NU) ((*n).offset)))))))));
2375 	}
2376 	break;
2377 	default:
2378 	{
2379 		d = ((NU) 0);
2380 	}
2381 	break;
2382 	}
2383 	result = d;
2384 	goto BeforeRet_;
2385 	}BeforeRet_: ;
2386 	return result;
2387 }
N_NIMCALL(TNimNode *,selectBranch__system_3674)2388 N_LIB_PRIVATE N_NIMCALL(TNimNode*, selectBranch__system_3674)(void* aa, TNimNode* n) {
2389 	TNimNode* result;
2390 	NU discr;
2391 	result = (TNimNode*)0;
2392 	discr = getDiscriminant__system_3636(aa, n);
2393 	{
2394 		if (!((NU32)(discr) < (NU32)(((NU) ((*n).len))))) goto LA3_;
2395 		result = (*n).sons[(discr)- 0];
2396 		{
2397 			if (!(result == ((TNimNode*) NIM_NIL))) goto LA7_;
2398 			result = (*n).sons[((*n).len)- 0];
2399 		}
2400 		LA7_: ;
2401 	}
2402 	goto LA1_;
2403 	LA3_: ;
2404 	{
2405 		result = (*n).sons[((*n).len)- 0];
2406 	}
2407 	LA1_: ;
2408 	return result;
2409 }
N_NIMCALL(void,forAllSlotsAux__system_5556)2410 N_LIB_PRIVATE N_NIMCALL(void, forAllSlotsAux__system_5556)(void* dest, TNimNode* n, tyEnum_WalkOp__Wfy7gT5VQ8B3aJBxqU8D9cQ op) {
2411 	NI d;
2412 	d = ((NI) (ptrdiff_t) (dest));
2413 	switch ((*n).kind) {
2414 	case ((tyEnum_TNimNodeKind__unfNsxrcATrufDZmpBq4HQ) 1):
2415 	{
2416 		NI T2_;
2417 		T2_ = (NI)0;
2418 		T2_ = pluspercent___system_696(d, (*n).offset);
2419 		forAllChildrenAux__system_5325(((void*) (T2_)), (*n).typ, op);
2420 	}
2421 	break;
2422 	case ((tyEnum_TNimNodeKind__unfNsxrcATrufDZmpBq4HQ) 2):
2423 	{
2424 		{
2425 			NI i;
2426 			NI colontmp_;
2427 			NI res;
2428 			i = (NI)0;
2429 			colontmp_ = (NI)0;
2430 			colontmp_ = (NI)((*n).len - ((NI) 1));
2431 			res = ((NI) 0);
2432 			{
2433 				while (1) {
2434 					if (!(res <= colontmp_)) goto LA6;
2435 					i = res;
2436 					{
2437 						if (!((*(*n).sons[(i)- 0]).kind == ((tyEnum_TNimNodeKind__unfNsxrcATrufDZmpBq4HQ) 1))) goto LA9_;
2438 						{
2439 							NI T15_;
2440 							if (!((*(*(*n).sons[(i)- 0]).typ).kind == ((tyEnum_TNimKind__jIBKr1ejBgsfM33Kxw4j7A) 22) || (*(*(*n).sons[(i)- 0]).typ).kind == ((tyEnum_TNimKind__jIBKr1ejBgsfM33Kxw4j7A) 28) || (*(*(*n).sons[(i)- 0]).typ).kind == ((tyEnum_TNimKind__jIBKr1ejBgsfM33Kxw4j7A) 24))) goto LA13_;
2441 							T15_ = (NI)0;
2442 							T15_ = pluspercent___system_696(d, (*(*n).sons[(i)- 0]).offset);
2443 							doOperation__system_5322((*((void**) (T15_))), op);
2444 						}
2445 						goto LA11_;
2446 						LA13_: ;
2447 						{
2448 							NI T17_;
2449 							T17_ = (NI)0;
2450 							T17_ = pluspercent___system_696(d, (*(*n).sons[(i)- 0]).offset);
2451 							forAllChildrenAux__system_5325(((void*) (T17_)), (*(*n).sons[(i)- 0]).typ, op);
2452 						}
2453 						LA11_: ;
2454 					}
2455 					goto LA7_;
2456 					LA9_: ;
2457 					{
2458 						forAllSlotsAux__system_5556(dest, (*n).sons[(i)- 0], op);
2459 					}
2460 					LA7_: ;
2461 					res += ((NI) 1);
2462 				} LA6: ;
2463 			}
2464 		}
2465 	}
2466 	break;
2467 	case ((tyEnum_TNimNodeKind__unfNsxrcATrufDZmpBq4HQ) 3):
2468 	{
2469 		TNimNode* m;
2470 		m = selectBranch__system_3674(dest, n);
2471 		{
2472 			if (!!((m == ((TNimNode*) NIM_NIL)))) goto LA22_;
2473 			forAllSlotsAux__system_5556(dest, m, op);
2474 		}
2475 		LA22_: ;
2476 	}
2477 	break;
2478 	case ((tyEnum_TNimNodeKind__unfNsxrcATrufDZmpBq4HQ) 0):
2479 	{
2480 	}
2481 	break;
2482 	}
2483 }
N_INLINE(NI,starpercent___system_736)2484 static N_INLINE(NI, starpercent___system_736)(NI x, NI y) {
2485 	NI result;
2486 	result = (NI)0;
2487 	result = ((NI) ((NU)((NU32)(((NU) (x))) * (NU32)(((NU) (y))))));
2488 	return result;
2489 }
N_NIMCALL(void,forAllChildrenAux__system_5325)2490 N_LIB_PRIVATE N_NIMCALL(void, forAllChildrenAux__system_5325)(void* dest, TNimType* mt, tyEnum_WalkOp__Wfy7gT5VQ8B3aJBxqU8D9cQ op) {
2491 	NI d;
2492 {	d = ((NI) (ptrdiff_t) (dest));
2493 	{
2494 		if (!(dest == NIM_NIL)) goto LA3_;
2495 		goto BeforeRet_;
2496 	}
2497 	LA3_: ;
2498 	{
2499 		if (!!((((*mt).flags &((NU8)1<<((NU)(((tyEnum_TNimTypeFlag__v8QUszD1sWlSIWZz7mC4bQ) 0))&7U)))!=0))) goto LA7_;
2500 		switch ((*mt).kind) {
2501 		case ((tyEnum_TNimKind__jIBKr1ejBgsfM33Kxw4j7A) 22):
2502 		case ((tyEnum_TNimKind__jIBKr1ejBgsfM33Kxw4j7A) 28):
2503 		case ((tyEnum_TNimKind__jIBKr1ejBgsfM33Kxw4j7A) 24):
2504 		{
2505 			doOperation__system_5322((*((void**) (d))), op);
2506 		}
2507 		break;
2508 		case ((tyEnum_TNimKind__jIBKr1ejBgsfM33Kxw4j7A) 17):
2509 		case ((tyEnum_TNimKind__jIBKr1ejBgsfM33Kxw4j7A) 18):
2510 		{
2511 			forAllSlotsAux__system_5556(dest, (*mt).node, op);
2512 		}
2513 		break;
2514 		case ((tyEnum_TNimKind__jIBKr1ejBgsfM33Kxw4j7A) 16):
2515 		case ((tyEnum_TNimKind__jIBKr1ejBgsfM33Kxw4j7A) 4):
2516 		case ((tyEnum_TNimKind__jIBKr1ejBgsfM33Kxw4j7A) 27):
2517 		{
2518 			{
2519 				NI i;
2520 				NI colontmp_;
2521 				NI res;
2522 				i = (NI)0;
2523 				colontmp_ = (NI)0;
2524 				colontmp_ = (NI)((NI)((*mt).size / (*(*mt).base).size) - ((NI) 1));
2525 				res = ((NI) 0);
2526 				{
2527 					while (1) {
2528 						NI T15_;
2529 						NI T16_;
2530 						if (!(res <= colontmp_)) goto LA14;
2531 						i = res;
2532 						T15_ = (NI)0;
2533 						T15_ = starpercent___system_736(i, (*(*mt).base).size);
2534 						T16_ = (NI)0;
2535 						T16_ = pluspercent___system_696(d, T15_);
2536 						forAllChildrenAux__system_5325(((void*) (T16_)), (*mt).base, op);
2537 						res += ((NI) 1);
2538 					} LA14: ;
2539 				}
2540 			}
2541 		}
2542 		break;
2543 		default:
2544 		{
2545 		}
2546 		break;
2547 		}
2548 	}
2549 	LA7_: ;
2550 	}BeforeRet_: ;
2551 }
N_NIMCALL(NI,align__system_1624)2552 N_LIB_PRIVATE N_NIMCALL(NI, align__system_1624)(NI address, NI alignment) {
2553 	NI result;
2554 	result = (NI)0;
2555 	{
2556 		if (!(alignment == ((NI) 0))) goto LA3_;
2557 		result = address;
2558 	}
2559 	goto LA1_;
2560 	LA3_: ;
2561 	{
2562 		result = (NI)((NI)(address + (NI)(alignment - ((NI) 1))) & (NI)((NU32) ~((NI)(alignment - ((NI) 1)))));
2563 	}
2564 	LA1_: ;
2565 	return result;
2566 }
N_NIMCALL(void,forAllChildren__system_5319)2567 N_LIB_PRIVATE N_NIMCALL(void, forAllChildren__system_5319)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* cell, tyEnum_WalkOp__Wfy7gT5VQ8B3aJBxqU8D9cQ op) {
2568 	tyProc__ojoeKfW4VYIm36I9cpDTQIg marker;
2569 	marker = (*(*cell).typ).marker;
2570 	{
2571 		void* T5_;
2572 		if (!!((marker == NIM_NIL))) goto LA3_;
2573 		T5_ = (void*)0;
2574 		T5_ = cellToUsr__system_5288(cell);
2575 		marker(T5_, ((NI) (op)));
2576 	}
2577 	goto LA1_;
2578 	LA3_: ;
2579 	{
2580 		switch ((*(*cell).typ).kind) {
2581 		case ((tyEnum_TNimKind__jIBKr1ejBgsfM33Kxw4j7A) 22):
2582 		{
2583 			void* T8_;
2584 			T8_ = (void*)0;
2585 			T8_ = cellToUsr__system_5288(cell);
2586 			forAllChildrenAux__system_5325(T8_, (*(*cell).typ).base, op);
2587 		}
2588 		break;
2589 		case ((tyEnum_TNimKind__jIBKr1ejBgsfM33Kxw4j7A) 24):
2590 		{
2591 			NI d;
2592 			void* T10_;
2593 			TGenericSeq* s;
2594 			T10_ = (void*)0;
2595 			T10_ = cellToUsr__system_5288(cell);
2596 			d = ((NI) (ptrdiff_t) (T10_));
2597 			s = ((TGenericSeq*) (d));
2598 			{
2599 				if (!!((s == ((TGenericSeq*) NIM_NIL)))) goto LA13_;
2600 				{
2601 					NI i;
2602 					NI colontmp_;
2603 					NI res;
2604 					i = (NI)0;
2605 					colontmp_ = (NI)0;
2606 					colontmp_ = (NI)((*s).len - ((NI) 1));
2607 					res = ((NI) 0);
2608 					{
2609 						while (1) {
2610 							NI T18_;
2611 							NI T19_;
2612 							NI T20_;
2613 							NI T21_;
2614 							if (!(res <= colontmp_)) goto LA17;
2615 							i = res;
2616 							T18_ = (NI)0;
2617 							T18_ = align__system_1624(((NI) 8), (*(*(*cell).typ).base).align);
2618 							T19_ = (NI)0;
2619 							T19_ = pluspercent___system_696(d, T18_);
2620 							T20_ = (NI)0;
2621 							T20_ = starpercent___system_736(i, (*(*(*cell).typ).base).size);
2622 							T21_ = (NI)0;
2623 							T21_ = pluspercent___system_696(T19_, T20_);
2624 							forAllChildrenAux__system_5325(((void*) (T21_)), (*(*cell).typ).base, op);
2625 							res += ((NI) 1);
2626 						} LA17: ;
2627 					}
2628 				}
2629 			}
2630 			LA13_: ;
2631 		}
2632 		break;
2633 		default:
2634 		{
2635 		}
2636 		break;
2637 		}
2638 	}
2639 	LA1_: ;
2640 }
N_NIMCALL(tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg *,cellSetGet__system_4944)2641 N_LIB_PRIVATE N_NIMCALL(tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg*, cellSetGet__system_4944)(tyObject_CellSet__jG87P0AI9aZtss9ccTYBIISQ t, NU key) {
2642 	tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg* result;
2643 	NI h;
2644 {	result = (tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg*)0;
2645 	h = (NI)(((NI) (key)) & t.max);
2646 	{
2647 		while (1) {
2648 			if (!!((t.data[h] == ((tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg*) NIM_NIL)))) goto LA2;
2649 			{
2650 				if (!((*t.data[h]).key == key)) goto LA5_;
2651 				result = t.data[h];
2652 				goto BeforeRet_;
2653 			}
2654 			LA5_: ;
2655 			h = nextTry__system_4940(h, t.max);
2656 		} LA2: ;
2657 	}
2658 	result = ((tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg*) NIM_NIL);
2659 	goto BeforeRet_;
2660 	}BeforeRet_: ;
2661 	return result;
2662 }
N_NIMCALL(NIM_BOOL,containsOrIncl__system_5083)2663 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, containsOrIncl__system_5083)(tyObject_CellSet__jG87P0AI9aZtss9ccTYBIISQ* s, tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* cell) {
2664 	NIM_BOOL result;
2665 	NU u;
2666 	tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg* t;
2667 	result = (NIM_BOOL)0;
2668 	u = ((NU) (ptrdiff_t) (cell));
2669 	t = cellSetGet__system_4944((*s), (NU)((NU32)(u) >> (NU32)(((NI) 12))));
2670 	{
2671 		if (!!((t == ((tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg*) NIM_NIL)))) goto LA3_;
2672 		u = (NU)((NU32)((NU)((NU32)(u) % (NU32)(((NU) 4096)))) / (NU32)(((NU) 16)));
2673 		result = !(((NI)((*t).bits[((NU)((NU32)(u) >> (NU32)(((NI) 5))))- 0] & (NI)((NU32)(((NI) 1)) << (NU32)((NU)(u & ((NU) 31))))) == ((NI) 0)));
2674 		{
2675 			if (!!(result)) goto LA7_;
2676 			(*t).bits[((NU)((NU32)(u) >> (NU32)(((NI) 5))))- 0] = (NI)((*t).bits[((NU)((NU32)(u) >> (NU32)(((NI) 5))))- 0] | (NI)((NU32)(((NI) 1)) << (NU32)((NU)(u & ((NU) 31)))));
2677 		}
2678 		LA7_: ;
2679 	}
2680 	goto LA1_;
2681 	LA3_: ;
2682 	{
2683 		incl__system_5037(s, cell);
2684 		result = NIM_FALSE;
2685 	}
2686 	LA1_: ;
2687 	return result;
2688 }
N_NIMCALL(void,markS__system_5740)2689 N_LIB_PRIVATE N_NIMCALL(void, markS__system_5740)(tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ* gch, tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c) {
2690 	incl__system_5037((&(*gch).marked), c);
2691 	forAllChildren__system_5319(c, ((tyEnum_WalkOp__Wfy7gT5VQ8B3aJBxqU8D9cQ) 1));
2692 	{
2693 		while (1) {
2694 			tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* d;
2695 			if (!(((NI) 0) < (*gch).tempStack.len)) goto LA2;
2696 			(*gch).tempStack.len -= ((NI) 1);
2697 			d = (*gch).tempStack.d[(*gch).tempStack.len];
2698 			{
2699 				NIM_BOOL T5_;
2700 				T5_ = (NIM_BOOL)0;
2701 				T5_ = containsOrIncl__system_5083((&(*gch).marked), d);
2702 				if (!!(T5_)) goto LA6_;
2703 				forAllChildren__system_5319(d, ((tyEnum_WalkOp__Wfy7gT5VQ8B3aJBxqU8D9cQ) 1));
2704 			}
2705 			LA6_: ;
2706 		} LA2: ;
2707 	}
2708 }
N_NIMCALL(void,doOperation__system_5322)2709 N_LIB_PRIVATE N_NIMCALL(void, doOperation__system_5322)(void* p, tyEnum_WalkOp__Wfy7gT5VQ8B3aJBxqU8D9cQ op) {
2710 	tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c;
2711 {	{
2712 		if (!(p == NIM_NIL)) goto LA3_;
2713 		goto BeforeRet_;
2714 	}
2715 	LA3_: ;
2716 	c = usrToCell__system_5291(p);
2717 	switch (op) {
2718 	case ((tyEnum_WalkOp__Wfy7gT5VQ8B3aJBxqU8D9cQ) 2):
2719 	{
2720 		decRef__system_5336(c);
2721 	}
2722 	break;
2723 	case ((tyEnum_WalkOp__Wfy7gT5VQ8B3aJBxqU8D9cQ) 3):
2724 	{
2725 		add__system_4880((&gch__system_5238.tempStack), c);
2726 	}
2727 	break;
2728 	case ((tyEnum_WalkOp__Wfy7gT5VQ8B3aJBxqU8D9cQ) 0):
2729 	{
2730 		markS__system_5740((&gch__system_5238), c);
2731 	}
2732 	break;
2733 	case ((tyEnum_WalkOp__Wfy7gT5VQ8B3aJBxqU8D9cQ) 1):
2734 	{
2735 		add__system_4880((&gch__system_5238.tempStack), c);
2736 	}
2737 	break;
2738 	}
2739 	}BeforeRet_: ;
2740 }
N_NIMCALL(void,nimGCvisit)2741 N_LIB_PRIVATE N_NIMCALL(void, nimGCvisit)(void* d, NI op) {
2742 	doOperation__system_5322(d, ((tyEnum_WalkOp__Wfy7gT5VQ8B3aJBxqU8D9cQ) (op)));
2743 }
N_NIMCALL(void,Marker_tyRef__vU9aO9cTqOMn6CBzhV8rX7Sw)2744 static N_NIMCALL(void, Marker_tyRef__vU9aO9cTqOMn6CBzhV8rX7Sw)(void* p, NI op) {
2745 	Exception* a;
2746 	a = (Exception*)p;
2747 	nimGCvisit((void*)(*a).parent, op);
2748 	nimGCvisit((void*)(*a).message, op);
2749 	nimGCvisit((void*)(*a).trace, op);
2750 	nimGCvisit((void*)(*a).up, op);
2751 }
N_NIMCALL(void,TM__Q5wkpxktOdTGvlSRo9bzt9aw_4)2752 static N_NIMCALL(void, TM__Q5wkpxktOdTGvlSRo9bzt9aw_4)(void) {
2753 	nimGCvisit((void*)currException__system_2566, 0);
2754 }
N_NIMCALL(void,nimRegisterThreadLocalMarker)2755 N_LIB_PRIVATE N_NIMCALL(void, nimRegisterThreadLocalMarker)(tyProc__T4eqaYlFJYZUv9aG9b1TV0bQ markerProc) {
2756 	{
2757 		if (!(threadLocalMarkersLen <= ((NI) 3499))) goto LA3_;
2758 		threadLocalMarkers[(threadLocalMarkersLen)- 0] = markerProc;
2759 		threadLocalMarkersLen += ((NI) 1);
2760 	}
2761 	goto LA1_;
2762 	LA3_: ;
2763 	{
2764 		rawWrite(stderr, "[GC] cannot register thread local variable; too many thread local variables");
2765 		exit(((NI) 1));
2766 	}
2767 	LA1_: ;
2768 }
N_INLINE(void,pushSafePoint)2769 static N_INLINE(void, pushSafePoint)(TSafePoint* s) {
2770 	(*s).prev = excHandler__system_2565;
2771 	excHandler__system_2565 = s;
2772 }
N_INLINE(NI,getOccupiedMem__system_4840)2773 static N_INLINE(NI, getOccupiedMem__system_4840)(tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg* a) {
2774 	NI result;
2775 	result = (NI)0;
2776 	result = (*a).occ;
2777 	return result;
2778 }
N_NOINLINE(NI,stackSize__system_5405)2779 N_LIB_PRIVATE N_NOINLINE(NI, stackSize__system_5405)(tyObject_GcStack__7fytPA5bBsob6See21YMRA* stack) {
2780 	NI result;
2781 	void* volatile pos;
2782 	result = (NI)0;
2783 	pos = ((void*) ((&pos)));
2784 	{
2785 		if (!!((pos == NIM_NIL))) goto LA3_;
2786 		result = minuspercent___system_716(((NI) (ptrdiff_t) ((*stack).bottom)), ((NI) (ptrdiff_t) (pos)));
2787 	}
2788 	goto LA1_;
2789 	LA3_: ;
2790 	{
2791 		result = ((NI) 0);
2792 	}
2793 	LA1_: ;
2794 	return result;
2795 }
N_NOINLINE(NI,stackSize__system_5409)2796 N_LIB_PRIVATE N_NOINLINE(NI, stackSize__system_5409)(void) {
2797 	NI result;
2798 	result = (NI)0;
2799 	result = ((NI) 0);
2800 	{
2801 		tyObject_GcStack__7fytPA5bBsob6See21YMRA* stack;
2802 		NI T2_;
2803 		stack = (tyObject_GcStack__7fytPA5bBsob6See21YMRA*)0;
2804 		stack = (&gch__system_5238.stack);
2805 		T2_ = (NI)0;
2806 		T2_ = stackSize__system_5405(stack);
2807 		result = (NI)(result + T2_);
2808 	}
2809 	return result;
2810 }
N_NIMCALL(NI,lowGauge__system_4128)2811 N_LIB_PRIVATE N_NIMCALL(NI, lowGauge__system_4128)(tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* n) {
2812 	NI result;
2813 	tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* it;
2814 	result = (NI)0;
2815 	it = n;
2816 	{
2817 		while (1) {
2818 			if (!!(((*it).link[(((NI) 0))- 0] == it))) goto LA2;
2819 			result = (*it).key;
2820 			it = (*it).link[(((NI) 0))- 0];
2821 		} LA2: ;
2822 	}
2823 	return result;
2824 }
N_NIMCALL(NI,highGauge__system_4136)2825 N_LIB_PRIVATE N_NIMCALL(NI, highGauge__system_4136)(tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* n) {
2826 	NI result;
2827 	tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* it;
2828 	result = (NI)0;
2829 	result = ((NI) -1);
2830 	it = n;
2831 	{
2832 		while (1) {
2833 			if (!!(((*it).link[(((NI) 0))- 0] == it))) goto LA2;
2834 			result = (*it).upperBound;
2835 			it = (*it).link[(((NI) 1))- 0];
2836 		} LA2: ;
2837 	}
2838 	return result;
2839 }
N_INLINE(void,prepareForInteriorPointerChecking__system_4761)2840 static N_INLINE(void, prepareForInteriorPointerChecking__system_4761)(tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg* a) {
2841 	(*a).minLargeObj = lowGauge__system_4128((*a).root);
2842 	(*a).maxLargeObj = highGauge__system_4136((*a).root);
2843 }
N_NIMCALL(void,setPosition__system_5421)2844 N_LIB_PRIVATE N_NIMCALL(void, setPosition__system_5421)(tyObject_GcStack__7fytPA5bBsob6See21YMRA* stack, void* position) {
2845 }
N_NIMCALL(tyObject_GcStack__7fytPA5bBsob6See21YMRA *,getActiveStack__system_5427)2846 N_LIB_PRIVATE N_NIMCALL(tyObject_GcStack__7fytPA5bBsob6See21YMRA*, getActiveStack__system_5427)(tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ* gch) {
2847 	tyObject_GcStack__7fytPA5bBsob6See21YMRA* result;
2848 	result = (tyObject_GcStack__7fytPA5bBsob6See21YMRA*)0;
2849 	result = (&(*gch).stack);
2850 	return result;
2851 }
N_INLINE(NI,percentpercent___system_776)2852 static N_INLINE(NI, percentpercent___system_776)(NI x, NI y) {
2853 	NI result;
2854 	result = (NI)0;
2855 	result = ((NI) ((NU)((NU32)(((NU) (x))) % (NU32)(((NU) (y))))));
2856 	return result;
2857 }
N_INLINE(NIM_BOOL,lteqpercent___system_985)2858 static N_INLINE(NIM_BOOL, lteqpercent___system_985)(NI x, NI y) {
2859 	NIM_BOOL result;
2860 	result = (NIM_BOOL)0;
2861 	result = ((NU32)(((NU) (x))) <= (NU32)(((NU) (y))));
2862 	return result;
2863 }
N_NIMCALL(tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw *,inRange__system_4156)2864 N_LIB_PRIVATE N_NIMCALL(tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw*, inRange__system_4156)(tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* root, NI key) {
2865 	tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* result;
2866 	tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* it;
2867 {	result = (tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw*)0;
2868 	it = root;
2869 	{
2870 		while (1) {
2871 			NIM_BOOL T9_;
2872 			if (!!(((*it).link[(((NI) 0))- 0] == it))) goto LA2;
2873 			{
2874 				NIM_BOOL T5_;
2875 				T5_ = (NIM_BOOL)0;
2876 				T5_ = lteqpercent___system_985((*it).key, key);
2877 				if (!(T5_)) goto LA6_;
2878 				T5_ = ltpercent___system_1005(key, (*it).upperBound);
2879 				LA6_: ;
2880 				if (!T5_) goto LA7_;
2881 				result = it;
2882 				goto BeforeRet_;
2883 			}
2884 			LA7_: ;
2885 			T9_ = (NIM_BOOL)0;
2886 			T9_ = ltpercent___system_1005((*it).key, key);
2887 			it = (*it).link[(T9_)- 0];
2888 		} LA2: ;
2889 	}
2890 	}BeforeRet_: ;
2891 	return result;
2892 }
N_NIMCALL(void *,interiorAllocatedPtr__system_4763)2893 N_LIB_PRIVATE N_NIMCALL(void*, interiorAllocatedPtr__system_4763)(tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg* a, void* p) {
2894 	void* result;
2895 	result = (void*)0;
2896 	{
2897 		NIM_BOOL T3_;
2898 		tyObject_BaseChunk__Sdq7WpT6qAH858F5ZEdG3w* c;
2899 		T3_ = (NIM_BOOL)0;
2900 		T3_ = isAccessible__system_4482(a, p);
2901 		if (!T3_) goto LA4_;
2902 		c = pageAddr__system_4455(p);
2903 		{
2904 			NIM_BOOL T8_;
2905 			T8_ = (NIM_BOOL)0;
2906 			T8_ = chunkUnused__system_4372(c);
2907 			if (!!(T8_)) goto LA9_;
2908 			{
2909 				NIM_BOOL T13_;
2910 				tyObject_SmallChunk__tXn60W2f8h3jgAYdEmy5NQ* c_2;
2911 				NI offset;
2912 				T13_ = (NIM_BOOL)0;
2913 				T13_ = isSmallChunk__system_4366(c);
2914 				if (!T13_) goto LA14_;
2915 				c_2 = ((tyObject_SmallChunk__tXn60W2f8h3jgAYdEmy5NQ*) (c));
2916 				offset = minuspercent___system_716((NI)(((NI) (ptrdiff_t) (p)) & ((NI) 4095)), ((NI) 32));
2917 				{
2918 					NIM_BOOL T18_;
2919 					tyObject_FreeCell__u6M5LHprqzkn9axr04yg9bGQ* d;
2920 					NI T21_;
2921 					NI T22_;
2922 					NI T23_;
2923 					T18_ = (NIM_BOOL)0;
2924 					T18_ = ltpercent___system_1005(offset, (*c_2).acc);
2925 					if (!T18_) goto LA19_;
2926 					T21_ = (NI)0;
2927 					T21_ = pluspercent___system_696(((NI) (ptrdiff_t) ((*c_2).data)), offset);
2928 					T22_ = (NI)0;
2929 					T22_ = percentpercent___system_776(offset, (*c_2).Sup.size);
2930 					T23_ = (NI)0;
2931 					T23_ = minuspercent___system_716(T21_, T22_);
2932 					d = ((tyObject_FreeCell__u6M5LHprqzkn9axr04yg9bGQ*) (T23_));
2933 					{
2934 						NIM_BOOL T26_;
2935 						T26_ = (NIM_BOOL)0;
2936 						T26_ = ltpercent___system_1005(((NI) 1), (*d).zeroField);
2937 						if (!T26_) goto LA27_;
2938 						result = ((void*) (d));
2939 					}
2940 					LA27_: ;
2941 				}
2942 				LA19_: ;
2943 			}
2944 			goto LA11_;
2945 			LA14_: ;
2946 			{
2947 				tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg* c_3;
2948 				NU8* d_2;
2949 				c_3 = ((tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg*) (c));
2950 				d_2 = (*c_3).data;
2951 				{
2952 					NIM_BOOL T32_;
2953 					T32_ = (NIM_BOOL)0;
2954 					T32_ = (((void*) (d_2)) <= p);
2955 					if (!(T32_)) goto LA33_;
2956 					T32_ = ltpercent___system_1005(((NI) 1), (*((tyObject_FreeCell__u6M5LHprqzkn9axr04yg9bGQ*) (d_2))).zeroField);
2957 					LA33_: ;
2958 					if (!T32_) goto LA34_;
2959 					result = ((void*) (d_2));
2960 				}
2961 				LA34_: ;
2962 			}
2963 			LA11_: ;
2964 		}
2965 		LA9_: ;
2966 	}
2967 	goto LA1_;
2968 	LA4_: ;
2969 	{
2970 		NI q;
2971 		q = ((NI) (ptrdiff_t) (p));
2972 		{
2973 			NIM_BOOL T39_;
2974 			tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* avlNode;
2975 			T39_ = (NIM_BOOL)0;
2976 			T39_ = lteqpercent___system_985((*a).minLargeObj, q);
2977 			if (!(T39_)) goto LA40_;
2978 			T39_ = lteqpercent___system_985(q, (*a).maxLargeObj);
2979 			LA40_: ;
2980 			if (!T39_) goto LA41_;
2981 			avlNode = inRange__system_4156((*a).root, q);
2982 			{
2983 				void* k;
2984 				tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg* c_4;
2985 				tyObject_BaseChunk__Sdq7WpT6qAH858F5ZEdG3w* T47_;
2986 				if (!!((avlNode == ((tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw*) NIM_NIL)))) goto LA45_;
2987 				k = ((void*) ((*avlNode).key));
2988 				T47_ = (tyObject_BaseChunk__Sdq7WpT6qAH858F5ZEdG3w*)0;
2989 				T47_ = pageAddr__system_4455(k);
2990 				c_4 = ((tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg*) (T47_));
2991 				{
2992 					NIM_BOOL T50_;
2993 					T50_ = (NIM_BOOL)0;
2994 					T50_ = ltpercent___system_1005(((NI) 1), (*((tyObject_FreeCell__u6M5LHprqzkn9axr04yg9bGQ*) (k))).zeroField);
2995 					if (!T50_) goto LA51_;
2996 					result = k;
2997 				}
2998 				LA51_: ;
2999 			}
3000 			LA45_: ;
3001 		}
3002 		LA41_: ;
3003 	}
3004 	LA1_: ;
3005 	return result;
3006 }
N_INLINE(void,incRef__system_5329)3007 static N_INLINE(void, incRef__system_5329)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c) {
3008 	(*c).refcount = pluspercent___system_696((*c).refcount, ((NI) 8));
3009 }
N_INLINE(void,gcMark__system_5789)3010 static N_INLINE(void, gcMark__system_5789)(tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ* gch, void* p) {
3011 	NI c;
3012 	c = ((NI) (ptrdiff_t) (p));
3013 	{
3014 		NIM_BOOL T3_;
3015 		tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* objStart;
3016 		void* T6_;
3017 		T3_ = (NIM_BOOL)0;
3018 		T3_ = ltpercent___system_1005(((NI) 4096), c);
3019 		if (!T3_) goto LA4_;
3020 		T6_ = (void*)0;
3021 		T6_ = interiorAllocatedPtr__system_4763((&(*gch).region), p);
3022 		objStart = ((tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*) (T6_));
3023 		{
3024 			if (!!((objStart == ((tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*) NIM_NIL)))) goto LA9_;
3025 			incRef__system_5329(objStart);
3026 			add__system_4880((&(*gch).decStack), objStart);
3027 		}
3028 		LA9_: ;
3029 	}
3030 	LA4_: ;
3031 }
markStackAndRegisters__system_5798(tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ * gch)3032 CLANG_NO_SANITIZE_ADDRESS N_LIB_PRIVATE void markStackAndRegisters__system_5798(tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ* gch) {
3033 	jmp_buf registers;
3034 	tyObject_GcStack__7fytPA5bBsob6See21YMRA* T1_;
3035 	T1_ = (tyObject_GcStack__7fytPA5bBsob6See21YMRA*)0;
3036 	T1_ = getActiveStack__system_5427(gch);
3037 	setPosition__system_5421(T1_, ((void*) ((&registers))));
3038 	{
3039 		int T4_;
3040 		T4_ = (int)0;
3041 		T4_ = _setjmp(registers);
3042 		if (!(T4_ == ((NI32) 0))) goto LA5_;
3043 		{
3044 			tyObject_GcStack__7fytPA5bBsob6See21YMRA* stack;
3045 			NI max;
3046 			NI sp;
3047 			stack = (tyObject_GcStack__7fytPA5bBsob6See21YMRA*)0;
3048 			stack = (&(*gch).stack);
3049 			max = ((NI) (ptrdiff_t) ((*stack).bottom));
3050 			sp = ((NI) (ptrdiff_t) ((&registers)));
3051 			sp = (NI)(sp & ((NI) -4));
3052 			{
3053 				while (1) {
3054 					NIM_BOOL T10_;
3055 					T10_ = (NIM_BOOL)0;
3056 					T10_ = ltpercent___system_1005(sp, (NI)(max - ((NI) 32)));
3057 					if (!T10_) goto LA9;
3058 					gcMark__system_5789(gch, ((void**) (sp))[(((NI) 0))- 0]);
3059 					gcMark__system_5789(gch, ((void**) (sp))[(((NI) 1))- 0]);
3060 					gcMark__system_5789(gch, ((void**) (sp))[(((NI) 2))- 0]);
3061 					gcMark__system_5789(gch, ((void**) (sp))[(((NI) 3))- 0]);
3062 					gcMark__system_5789(gch, ((void**) (sp))[(((NI) 4))- 0]);
3063 					gcMark__system_5789(gch, ((void**) (sp))[(((NI) 5))- 0]);
3064 					gcMark__system_5789(gch, ((void**) (sp))[(((NI) 6))- 0]);
3065 					gcMark__system_5789(gch, ((void**) (sp))[(((NI) 7))- 0]);
3066 					sp = pluspercent___system_696(sp, ((NI) 32));
3067 				} LA9: ;
3068 			}
3069 			{
3070 				while (1) {
3071 					NIM_BOOL T13_;
3072 					T13_ = (NIM_BOOL)0;
3073 					T13_ = lteqpercent___system_985(sp, max);
3074 					if (!T13_) goto LA12;
3075 					gcMark__system_5789(gch, (*((void**) (sp))));
3076 					sp = pluspercent___system_696(sp, ((NI) 4));
3077 				} LA12: ;
3078 			}
3079 		}
3080 	}
3081 	LA5_: ;
3082 }
N_NIMCALL(void,prepareDealloc__system_5451)3083 N_LIB_PRIVATE N_NIMCALL(void, prepareDealloc__system_5451)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* cell) {
3084 	TNimType* t;
3085 	t = (*cell).typ;
3086 	{
3087 		void* T5_;
3088 		if (!!(((*t).finalizer == NIM_NIL))) goto LA3_;
3089 		gch__system_5238.recGcLock += ((NI) 1);
3090 		T5_ = (void*)0;
3091 		T5_ = cellToUsr__system_5288(cell);
3092 		((Finalizer) ((*t).finalizer))(T5_);
3093 		gch__system_5238.recGcLock -= ((NI) 1);
3094 	}
3095 	LA3_: ;
3096 }
N_NIMCALL(NIM_BOOL,collectZCT__system_5779)3097 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, collectZCT__system_5779)(tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ* gch) {
3098 	NIM_BOOL result;
3099 	NI* L;
3100 	result = (NIM_BOOL)0;
3101 	L = (&(*gch).zct.len);
3102 	{
3103 		while (1) {
3104 			tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c;
3105 			if (!(((NI) 0) < (*L))) goto LA2;
3106 			c = (*gch).zct.d[((NI) 0)];
3107 			(*c).refcount = (NI)((*c).refcount & ((NI) -5));
3108 			(*gch).zct.d[((NI) 0)] = (*gch).zct.d[(NI)((*L) - ((NI) 1))];
3109 			(*L) -= ((NI) 1);
3110 			{
3111 				NIM_BOOL T5_;
3112 				T5_ = (NIM_BOOL)0;
3113 				T5_ = ltpercent___system_1005((*c).refcount, ((NI) 8));
3114 				if (!T5_) goto LA6_;
3115 				prepareDealloc__system_5451(c);
3116 				forAllChildren__system_5319(c, ((tyEnum_WalkOp__Wfy7gT5VQ8B3aJBxqU8D9cQ) 2));
3117 				rawDealloc__system_4709((&(*gch).region), ((void*) (c)));
3118 			}
3119 			LA6_: ;
3120 		} LA2: ;
3121 	}
3122 	result = NIM_TRUE;
3123 	return result;
3124 }
N_NIMCALL(void,deinit__system_4932)3125 N_LIB_PRIVATE N_NIMCALL(void, deinit__system_4932)(tyObject_CellSet__jG87P0AI9aZtss9ccTYBIISQ* s) {
3126 	tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg* it;
3127 	it = (*s).head;
3128 	{
3129 		while (1) {
3130 			tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg* n;
3131 			if (!!((it == ((tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg*) NIM_NIL)))) goto LA2;
3132 			n = (*it).next;
3133 			dealloc(((void*) (it)));
3134 			it = n;
3135 		} LA2: ;
3136 	}
3137 	(*s).head = ((tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg*) NIM_NIL);
3138 	dealloc(((void*) ((*s).data)));
3139 	(*s).data = ((tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg**) NIM_NIL);
3140 	(*s).counter = ((NI) 0);
3141 }
N_NIMCALL(void,cellsetReset__system_5554)3142 N_LIB_PRIVATE N_NIMCALL(void, cellsetReset__system_5554)(tyObject_CellSet__jG87P0AI9aZtss9ccTYBIISQ* s) {
3143 	deinit__system_4932(s);
3144 	init__system_4912(s);
3145 }
N_NIMCALL(void,markGlobals__system_5748)3146 N_LIB_PRIVATE N_NIMCALL(void, markGlobals__system_5748)(tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ* gch) {
3147 	tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g** d;
3148 	{
3149 		if (!((*gch).gcThreadId == ((NI) 0))) goto LA3_;
3150 		{
3151 			NI i;
3152 			NI colontmp_;
3153 			NI res;
3154 			i = (NI)0;
3155 			colontmp_ = (NI)0;
3156 			colontmp_ = (NI)(globalMarkersLen - ((NI) 1));
3157 			res = ((NI) 0);
3158 			{
3159 				while (1) {
3160 					if (!(res <= colontmp_)) goto LA7;
3161 					i = res;
3162 					globalMarkers[(i)- 0]();
3163 					res += ((NI) 1);
3164 				} LA7: ;
3165 			}
3166 		}
3167 	}
3168 	LA3_: ;
3169 	{
3170 		NI i_2;
3171 		NI colontmp__2;
3172 		NI res_2;
3173 		i_2 = (NI)0;
3174 		colontmp__2 = (NI)0;
3175 		colontmp__2 = (NI)(threadLocalMarkersLen - ((NI) 1));
3176 		res_2 = ((NI) 0);
3177 		{
3178 			while (1) {
3179 				if (!(res_2 <= colontmp__2)) goto LA10;
3180 				i_2 = res_2;
3181 				threadLocalMarkers[(i_2)- 0]();
3182 				res_2 += ((NI) 1);
3183 			} LA10: ;
3184 		}
3185 	}
3186 	d = (*gch).additionalRoots.d;
3187 	{
3188 		NI i_3;
3189 		NI colontmp__3;
3190 		NI res_3;
3191 		i_3 = (NI)0;
3192 		colontmp__3 = (NI)0;
3193 		colontmp__3 = (NI)((*gch).additionalRoots.len - ((NI) 1));
3194 		res_3 = ((NI) 0);
3195 		{
3196 			while (1) {
3197 				if (!(res_3 <= colontmp__3)) goto LA13;
3198 				i_3 = res_3;
3199 				markS__system_5740(gch, d[i_3]);
3200 				res_3 += ((NI) 1);
3201 			} LA13: ;
3202 		}
3203 	}
3204 }
N_INLINE(NIM_BOOL,isCell__system_4429)3205 static N_INLINE(NIM_BOOL, isCell__system_4429)(void* p) {
3206 	NIM_BOOL result;
3207 	result = (NIM_BOOL)0;
3208 	result = ltpercent___system_1005(((NI) 1), (*((tyObject_FreeCell__u6M5LHprqzkn9axr04yg9bGQ*) (p))).zeroField);
3209 	return result;
3210 }
N_NIMCALL(NIM_BOOL,contains__system_5005)3211 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, contains__system_5005)(tyObject_CellSet__jG87P0AI9aZtss9ccTYBIISQ s, tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* cell) {
3212 	NIM_BOOL result;
3213 	NU u;
3214 	tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg* t;
3215 	result = (NIM_BOOL)0;
3216 	u = ((NU) (ptrdiff_t) (cell));
3217 	t = cellSetGet__system_4944(s, (NU)((NU32)(u) >> (NU32)(((NI) 12))));
3218 	{
3219 		if (!!((t == ((tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg*) NIM_NIL)))) goto LA3_;
3220 		u = (NU)((NU32)((NU)((NU32)(u) % (NU32)(((NU) 4096)))) / (NU32)(((NU) 16)));
3221 		result = !(((NI)((*t).bits[((NU)((NU32)(u) >> (NU32)(((NI) 5))))- 0] & (NI)((NU32)(((NI) 1)) << (NU32)((NU)(u & ((NU) 31))))) == ((NI) 0)));
3222 	}
3223 	goto LA1_;
3224 	LA3_: ;
3225 	{
3226 		result = NIM_FALSE;
3227 	}
3228 	LA1_: ;
3229 	return result;
3230 }
N_NIMCALL(void,freeCyclicCell__system_5732)3231 N_LIB_PRIVATE N_NIMCALL(void, freeCyclicCell__system_5732)(tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ* gch, tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c) {
3232 	prepareDealloc__system_5451(c);
3233 	rawDealloc__system_4709((&(*gch).region), ((void*) (c)));
3234 }
N_NIMCALL(void,sweep__system_5736)3235 N_LIB_PRIVATE N_NIMCALL(void, sweep__system_5736)(tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ* gch) {
3236 	{
3237 		void* x;
3238 		x = (void*)0;
3239 		(*gch).region.locked = NIM_TRUE;
3240 		{
3241 			NI s;
3242 			s = (NI)0;
3243 			{
3244 				NI h;
3245 				NI res;
3246 				h = (NI)0;
3247 				res = ((NI) 0);
3248 				{
3249 					while (1) {
3250 						tyObject_Trunk__W0r8S0Y3UGke6T9bIUWnnuw* r;
3251 						if (!(res <= ((NI) 255))) goto LA5;
3252 						h = res;
3253 						r = (*gch).region.chunkStarts.data[(h)- 0];
3254 						{
3255 							while (1) {
3256 								NI i;
3257 								if (!!((r == ((tyObject_Trunk__W0r8S0Y3UGke6T9bIUWnnuw*) NIM_NIL)))) goto LA7;
3258 								i = ((NI) 0);
3259 								{
3260 									while (1) {
3261 										NU w;
3262 										NI j;
3263 										if (!(i <= ((NI) 15))) goto LA9;
3264 										w = (*r).bits[(i)- 0];
3265 										j = ((NI) 0);
3266 										{
3267 											while (1) {
3268 												if (!!((w == ((NU) 0)))) goto LA11;
3269 												{
3270 													NI T16_;
3271 													if (!!(((NU)(w & ((NU) 1)) == ((NU) 0)))) goto LA14_;
3272 													T16_ = (NI)0;
3273 													T16_ = pluspercent___system_696((NI)((NU32)(i) << (NU32)(((NI) 5))), j);
3274 													s = (NI)((NI)((NU32)((*r).key) << (NU32)(((NI) 9))) | T16_);
3275 													{
3276 														NIM_BOOL T19_;
3277 														tyObject_BaseChunk__Sdq7WpT6qAH858F5ZEdG3w* c;
3278 														T19_ = (NIM_BOOL)0;
3279 														T19_ = contains__system_4254((&(*gch).region.chunkStarts), s);
3280 														if (!T19_) goto LA20_;
3281 														c = ((tyObject_BaseChunk__Sdq7WpT6qAH858F5ZEdG3w*) ((NI)((NU32)(s) << (NU32)(((NI) 12)))));
3282 														{
3283 															NIM_BOOL T24_;
3284 															T24_ = (NIM_BOOL)0;
3285 															T24_ = chunkUnused__system_4372(c);
3286 															if (!!(T24_)) goto LA25_;
3287 															{
3288 																NIM_BOOL T29_;
3289 																tyObject_SmallChunk__tXn60W2f8h3jgAYdEmy5NQ* c_2;
3290 																NI size;
3291 																NI a;
3292 																NI limit;
3293 																T29_ = (NIM_BOOL)0;
3294 																T29_ = isSmallChunk__system_4366(c);
3295 																if (!T29_) goto LA30_;
3296 																c_2 = ((tyObject_SmallChunk__tXn60W2f8h3jgAYdEmy5NQ*) (c));
3297 																size = (*c_2).Sup.size;
3298 																a = ((NI) (ptrdiff_t) ((*c_2).data));
3299 																limit = (NI)(a + (*c_2).acc);
3300 																{
3301 																	while (1) {
3302 																		NIM_BOOL T34_;
3303 																		T34_ = (NIM_BOOL)0;
3304 																		T34_ = ltpercent___system_1005(a, limit);
3305 																		if (!T34_) goto LA33;
3306 																		x = ((void*) (a));
3307 																		{
3308 																			NIM_BOOL T37_;
3309 																			tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c_3;
3310 																			T37_ = (NIM_BOOL)0;
3311 																			T37_ = isCell__system_4429(x);
3312 																			if (!T37_) goto LA38_;
3313 																			c_3 = ((tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*) (x));
3314 																			{
3315 																				NIM_BOOL T42_;
3316 																				T42_ = (NIM_BOOL)0;
3317 																				T42_ = contains__system_5005((*gch).marked, c_3);
3318 																				if (!!(T42_)) goto LA43_;
3319 																				freeCyclicCell__system_5732(gch, c_3);
3320 																			}
3321 																			LA43_: ;
3322 																		}
3323 																		LA38_: ;
3324 																		a = pluspercent___system_696(a, size);
3325 																	} LA33: ;
3326 																}
3327 															}
3328 															goto LA27_;
3329 															LA30_: ;
3330 															{
3331 																tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg* c_4;
3332 																c_4 = ((tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg*) (c));
3333 																x = ((void*) ((*c_4).data));
3334 																{
3335 																	NIM_BOOL T48_;
3336 																	tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c_5;
3337 																	T48_ = (NIM_BOOL)0;
3338 																	T48_ = isCell__system_4429(x);
3339 																	if (!T48_) goto LA49_;
3340 																	c_5 = ((tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*) (x));
3341 																	{
3342 																		NIM_BOOL T53_;
3343 																		T53_ = (NIM_BOOL)0;
3344 																		T53_ = contains__system_5005((*gch).marked, c_5);
3345 																		if (!!(T53_)) goto LA54_;
3346 																		freeCyclicCell__system_5732(gch, c_5);
3347 																	}
3348 																	LA54_: ;
3349 																}
3350 																LA49_: ;
3351 															}
3352 															LA27_: ;
3353 														}
3354 														LA25_: ;
3355 													}
3356 													LA20_: ;
3357 												}
3358 												LA14_: ;
3359 												j += ((NI) 1);
3360 												w = (NU)((NU32)(w) >> (NU32)(((NI) 1)));
3361 											} LA11: ;
3362 										}
3363 										i += ((NI) 1);
3364 									} LA9: ;
3365 								}
3366 								r = (*r).next;
3367 							} LA7: ;
3368 						}
3369 						res += ((NI) 1);
3370 					} LA5: ;
3371 				}
3372 			}
3373 		}
3374 		(*gch).region.locked = NIM_FALSE;
3375 	}
3376 }
N_NIMCALL(void,collectCycles__system_5781)3377 N_LIB_PRIVATE N_NIMCALL(void, collectCycles__system_5781)(tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ* gch) {
3378 	tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g** d;
3379 	{
3380 		while (1) {
3381 			NIM_BOOL T3_;
3382 			if (!(((NI) 0) < (*gch).zct.len)) goto LA2;
3383 			T3_ = (NIM_BOOL)0;
3384 			T3_ = collectZCT__system_5779(gch);
3385 			(void)(T3_);
3386 		} LA2: ;
3387 	}
3388 	cellsetReset__system_5554((&(*gch).marked));
3389 	d = (*gch).decStack.d;
3390 	{
3391 		NI i;
3392 		NI colontmp_;
3393 		NI res;
3394 		i = (NI)0;
3395 		colontmp_ = (NI)0;
3396 		colontmp_ = (NI)((*gch).decStack.len - ((NI) 1));
3397 		res = ((NI) 0);
3398 		{
3399 			while (1) {
3400 				if (!(res <= colontmp_)) goto LA6;
3401 				i = res;
3402 				markS__system_5740(gch, d[i]);
3403 				res += ((NI) 1);
3404 			} LA6: ;
3405 		}
3406 	}
3407 	markGlobals__system_5748(gch);
3408 	sweep__system_5736(gch);
3409 }
N_NIMCALL(NI,getOccupiedMem__system_1936)3410 N_LIB_PRIVATE N_NIMCALL(NI, getOccupiedMem__system_1936)(void) {
3411 	NI result;
3412 	result = (NI)0;
3413 	result = gch__system_5238.region.occ;
3414 	return result;
3415 }
N_NIMCALL(void,unmarkStackAndRegisters__system_5852)3416 N_LIB_PRIVATE N_NIMCALL(void, unmarkStackAndRegisters__system_5852)(tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ* gch) {
3417 	tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g** d;
3418 	d = (*gch).decStack.d;
3419 	{
3420 		NI i;
3421 		NI colontmp_;
3422 		NI res;
3423 		i = (NI)0;
3424 		colontmp_ = (NI)0;
3425 		colontmp_ = (NI)((*gch).decStack.len - ((NI) 1));
3426 		res = ((NI) 0);
3427 		{
3428 			while (1) {
3429 				if (!(res <= colontmp_)) goto LA3;
3430 				i = res;
3431 				decRef__system_5336(d[i]);
3432 				res += ((NI) 1);
3433 			} LA3: ;
3434 		}
3435 	}
3436 	(*gch).decStack.len = ((NI) 0);
3437 }
N_NIMCALL(void,collectCTBody__system_5860)3438 N_LIB_PRIVATE N_NIMCALL(void, collectCTBody__system_5860)(tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ* gch) {
3439 	NI T1_;
3440 	T1_ = (NI)0;
3441 	T1_ = stackSize__system_5409();
3442 	(*gch).stat.maxStackSize = (((*gch).stat.maxStackSize >= T1_) ? (*gch).stat.maxStackSize : T1_);
3443 	prepareForInteriorPointerChecking__system_4761((&(*gch).region));
3444 	markStackAndRegisters__system_5798(gch);
3445 	(*gch).stat.maxStackCells = (((*gch).stat.maxStackCells >= (*gch).decStack.len) ? (*gch).stat.maxStackCells : (*gch).decStack.len);
3446 	(*gch).stat.stackScans += ((NI) 1);
3447 	{
3448 		NIM_BOOL T4_;
3449 		T4_ = (NIM_BOOL)0;
3450 		T4_ = collectZCT__system_5779(gch);
3451 		if (!T4_) goto LA5_;
3452 		{
3453 			NIM_BOOL T9_;
3454 			NI T10_;
3455 			NI T14_;
3456 			T9_ = (NIM_BOOL)0;
3457 			T10_ = (NI)0;
3458 			T10_ = getOccupiedMem__system_4840((&(*gch).region));
3459 			T9_ = ((*gch).cycleThreshold <= T10_);
3460 			if (T9_) goto LA11_;
3461 			T9_ = NIM_FALSE;
3462 			LA11_: ;
3463 			if (!T9_) goto LA12_;
3464 			collectCycles__system_5781(gch);
3465 			(*gch).stat.cycleCollections += ((NI) 1);
3466 			T14_ = (NI)0;
3467 			T14_ = getOccupiedMem__system_1936();
3468 			(*gch).cycleThreshold = ((((NI) 4194304) >= (NI)(T14_ * ((NI) 2))) ? ((NI) 4194304) : (NI)(T14_ * ((NI) 2)));
3469 			(*gch).stat.maxThreshold = (((*gch).stat.maxThreshold >= (*gch).cycleThreshold) ? (*gch).stat.maxThreshold : (*gch).cycleThreshold);
3470 		}
3471 		LA12_: ;
3472 	}
3473 	LA5_: ;
3474 	unmarkStackAndRegisters__system_5852(gch);
3475 }
N_NIMCALL(void,collectCT__system_5315)3476 N_LIB_PRIVATE N_NIMCALL(void, collectCT__system_5315)(tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ* gch) {
3477 	{
3478 		NIM_BOOL T3_;
3479 		NIM_BOOL T4_;
3480 		NIM_BOOL T5_;
3481 		NIM_BOOL T7_;
3482 		NI T9_;
3483 		T3_ = (NIM_BOOL)0;
3484 		T4_ = (NIM_BOOL)0;
3485 		T5_ = (NIM_BOOL)0;
3486 		T5_ = ((*gch).zctThreshold <= (*gch).zct.len);
3487 		if (T5_) goto LA6_;
3488 		T7_ = (NIM_BOOL)0;
3489 		T7_ = NIM_TRUE;
3490 		if (!(T7_)) goto LA8_;
3491 		T9_ = (NI)0;
3492 		T9_ = getOccupiedMem__system_4840((&(*gch).region));
3493 		T7_ = ((*gch).cycleThreshold <= T9_);
3494 		LA8_: ;
3495 		T5_ = T7_;
3496 		LA6_: ;
3497 		T4_ = T5_;
3498 		if (T4_) goto LA10_;
3499 		T4_ = NIM_FALSE;
3500 		LA10_: ;
3501 		T3_ = T4_;
3502 		if (!(T3_)) goto LA11_;
3503 		T3_ = ((*gch).recGcLock == ((NI) 0));
3504 		LA11_: ;
3505 		if (!T3_) goto LA12_;
3506 		collectCTBody__system_5860(gch);
3507 		(*gch).zctThreshold = ((((NI) 500) >= (NI)((*gch).zct.len * ((NI) 2))) ? ((NI) 500) : (NI)((*gch).zct.len * ((NI) 2)));
3508 	}
3509 	LA12_: ;
3510 }
N_INLINE(void,addNewObjToZCT__system_5653)3511 static N_INLINE(void, addNewObjToZCT__system_5653)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* res, tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ* gch) {
3512 	NI L;
3513 	tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g** d;
3514 {	L = (*gch).zct.len;
3515 	d = (*gch).zct.d;
3516 	{
3517 		tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c;
3518 		if (!(((NI) 8) < L)) goto LA3_;
3519 		c = (tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*)0;
3520 		c = d[(NI)(L - ((NI) 1))];
3521 		{
3522 			NIM_BOOL T7_;
3523 			T7_ = (NIM_BOOL)0;
3524 			T7_ = lteqpercent___system_985(((NI) 8), (*c).refcount);
3525 			if (!T7_) goto LA8_;
3526 			(*c).refcount = (NI)((*c).refcount & ((NI) -5));
3527 			d[(NI)(L - ((NI) 1))] = res;
3528 			goto BeforeRet_;
3529 		}
3530 		LA8_: ;
3531 		c = d[(NI)(L - ((NI) 2))];
3532 		{
3533 			NIM_BOOL T12_;
3534 			T12_ = (NIM_BOOL)0;
3535 			T12_ = lteqpercent___system_985(((NI) 8), (*c).refcount);
3536 			if (!T12_) goto LA13_;
3537 			(*c).refcount = (NI)((*c).refcount & ((NI) -5));
3538 			d[(NI)(L - ((NI) 2))] = res;
3539 			goto BeforeRet_;
3540 		}
3541 		LA13_: ;
3542 		c = d[(NI)(L - ((NI) 3))];
3543 		{
3544 			NIM_BOOL T17_;
3545 			T17_ = (NIM_BOOL)0;
3546 			T17_ = lteqpercent___system_985(((NI) 8), (*c).refcount);
3547 			if (!T17_) goto LA18_;
3548 			(*c).refcount = (NI)((*c).refcount & ((NI) -5));
3549 			d[(NI)(L - ((NI) 3))] = res;
3550 			goto BeforeRet_;
3551 		}
3552 		LA18_: ;
3553 		c = d[(NI)(L - ((NI) 4))];
3554 		{
3555 			NIM_BOOL T22_;
3556 			T22_ = (NIM_BOOL)0;
3557 			T22_ = lteqpercent___system_985(((NI) 8), (*c).refcount);
3558 			if (!T22_) goto LA23_;
3559 			(*c).refcount = (NI)((*c).refcount & ((NI) -5));
3560 			d[(NI)(L - ((NI) 4))] = res;
3561 			goto BeforeRet_;
3562 		}
3563 		LA23_: ;
3564 		c = d[(NI)(L - ((NI) 5))];
3565 		{
3566 			NIM_BOOL T27_;
3567 			T27_ = (NIM_BOOL)0;
3568 			T27_ = lteqpercent___system_985(((NI) 8), (*c).refcount);
3569 			if (!T27_) goto LA28_;
3570 			(*c).refcount = (NI)((*c).refcount & ((NI) -5));
3571 			d[(NI)(L - ((NI) 5))] = res;
3572 			goto BeforeRet_;
3573 		}
3574 		LA28_: ;
3575 		c = d[(NI)(L - ((NI) 6))];
3576 		{
3577 			NIM_BOOL T32_;
3578 			T32_ = (NIM_BOOL)0;
3579 			T32_ = lteqpercent___system_985(((NI) 8), (*c).refcount);
3580 			if (!T32_) goto LA33_;
3581 			(*c).refcount = (NI)((*c).refcount & ((NI) -5));
3582 			d[(NI)(L - ((NI) 6))] = res;
3583 			goto BeforeRet_;
3584 		}
3585 		LA33_: ;
3586 		c = d[(NI)(L - ((NI) 7))];
3587 		{
3588 			NIM_BOOL T37_;
3589 			T37_ = (NIM_BOOL)0;
3590 			T37_ = lteqpercent___system_985(((NI) 8), (*c).refcount);
3591 			if (!T37_) goto LA38_;
3592 			(*c).refcount = (NI)((*c).refcount & ((NI) -5));
3593 			d[(NI)(L - ((NI) 7))] = res;
3594 			goto BeforeRet_;
3595 		}
3596 		LA38_: ;
3597 		c = d[(NI)(L - ((NI) 8))];
3598 		{
3599 			NIM_BOOL T42_;
3600 			T42_ = (NIM_BOOL)0;
3601 			T42_ = lteqpercent___system_985(((NI) 8), (*c).refcount);
3602 			if (!T42_) goto LA43_;
3603 			(*c).refcount = (NI)((*c).refcount & ((NI) -5));
3604 			d[(NI)(L - ((NI) 8))] = res;
3605 			goto BeforeRet_;
3606 		}
3607 		LA43_: ;
3608 		add__system_4880((&(*gch).zct), res);
3609 	}
3610 	goto LA1_;
3611 	LA3_: ;
3612 	{
3613 		d[L] = res;
3614 		(*gch).zct.len += ((NI) 1);
3615 	}
3616 	LA1_: ;
3617 	}BeforeRet_: ;
3618 }
N_NIMCALL(void *,rawNewObj__system_5668)3619 N_LIB_PRIVATE N_NIMCALL(void*, rawNewObj__system_5668)(TNimType* typ, NI size, tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ* gch) {
3620 	void* result;
3621 	tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* res;
3622 	void* T1_;
3623 	result = (void*)0;
3624 	collectCT__system_5315(gch);
3625 	T1_ = (void*)0;
3626 	T1_ = rawAlloc__system_4580((&(*gch).region), (NI)(size + ((NI) 8)));
3627 	res = ((tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*) (T1_));
3628 	(*res).typ = typ;
3629 	(*res).refcount = ((NI) 4);
3630 	addNewObjToZCT__system_5653(res, gch);
3631 	result = cellToUsr__system_5288(res);
3632 	return result;
3633 }
N_NIMCALL(void *,newObjNoInit)3634 N_LIB_PRIVATE N_NIMCALL(void*, newObjNoInit)(TNimType* typ, NI size) {
3635 	void* result;
3636 	result = (void*)0;
3637 	result = rawNewObj__system_5668(typ, size, (&gch__system_5238));
3638 	return result;
3639 }
N_NIMCALL(NimStringDesc *,rawNewStringNoInit)3640 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, rawNewStringNoInit)(NI space) {
3641 	NimStringDesc* result;
3642 	NI s;
3643 	void* T5_;
3644 	result = (NimStringDesc*)0;
3645 	s = space;
3646 	{
3647 		if (!(s < ((NI) 7))) goto LA3_;
3648 		s = ((NI) 7);
3649 	}
3650 	LA3_: ;
3651 	T5_ = (void*)0;
3652 	T5_ = newObjNoInit((&strDesc__system_2412), (NI)((NI)(((NI) 8) + s) + ((NI) 1)));
3653 	result = ((NimStringDesc*) (T5_));
3654 	(*result).Sup.reserved = s;
3655 	(*result).Sup.len = ((NI) 0);
3656 	return result;
3657 }
N_NIMCALL(NimStringDesc *,toNimStr)3658 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, toNimStr)(NCSTRING str, NI len) {
3659 	NimStringDesc* result;
3660 	result = (NimStringDesc*)0;
3661 	result = rawNewStringNoInit(len);
3662 	(*result).Sup.len = len;
3663 	copyMem__system_1727(((void*) ((*result).data)), ((void*) (str)), ((NI) ((NI)(len + ((NI) 1)))));
3664 	return result;
3665 }
N_NIMCALL(NimStringDesc *,cstrToNimstr)3666 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, cstrToNimstr)(NCSTRING str) {
3667 	NimStringDesc* result;
3668 	result = (NimStringDesc*)0;
3669 	{
3670 		if (!(((void*) (str)) == NIM_NIL)) goto LA3_;
3671 		result = ((NimStringDesc*) NIM_NIL);
3672 	}
3673 	goto LA1_;
3674 	LA3_: ;
3675 	{
3676 		result = toNimStr(str, (str ? nimCStrLen(str) : 0));
3677 	}
3678 	LA1_: ;
3679 	return result;
3680 }
N_INLINE(void,popSafePoint)3681 static N_INLINE(void, popSafePoint)(void) {
3682 	excHandler__system_2565 = (*excHandler__system_2565).prev;
3683 }
N_INLINE(void,asgnRef)3684 static N_INLINE(void, asgnRef)(void** dest, void* src) {
3685 	{
3686 		tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* T5_;
3687 		if (!!((src == NIM_NIL))) goto LA3_;
3688 		T5_ = (tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*)0;
3689 		T5_ = usrToCell__system_5291(src);
3690 		incRef__system_5329(T5_);
3691 	}
3692 	LA3_: ;
3693 	{
3694 		tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* T10_;
3695 		if (!!(((*dest) == NIM_NIL))) goto LA8_;
3696 		T10_ = (tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*)0;
3697 		T10_ = usrToCell__system_5291((*dest));
3698 		decRef__system_5336(T10_);
3699 	}
3700 	LA8_: ;
3701 	(*dest) = src;
3702 }
N_INLINE(void,popCurrentException)3703 static N_INLINE(void, popCurrentException)(void) {
3704 	asgnRef((void**) (&currException__system_2566), (*currException__system_2566).up);
3705 }
N_NIMCALL(void,Marker_tyRef__uG62cfJZ15c2siK3CKLmnQ)3706 static N_NIMCALL(void, Marker_tyRef__uG62cfJZ15c2siK3CKLmnQ)(void* p, NI op) {
3707 	tyObject_ReraiseDefect__E0L0wGYS1gPD81VLstNO2g* a;
3708 	a = (tyObject_ReraiseDefect__E0L0wGYS1gPD81VLstNO2g*)p;
3709 	nimGCvisit((void*)(*a).Sup.Sup.parent, op);
3710 	nimGCvisit((void*)(*a).Sup.Sup.message, op);
3711 	nimGCvisit((void*)(*a).Sup.Sup.trace, op);
3712 	nimGCvisit((void*)(*a).Sup.Sup.up, op);
3713 }
N_NOINLINE(void *,newObj)3714 N_LIB_PRIVATE N_NOINLINE(void*, newObj)(TNimType* typ, NI size) {
3715 	void* result;
3716 	result = (void*)0;
3717 	result = rawNewObj__system_5668(typ, size, (&gch__system_5238));
3718 	zeroMem__system_1724(result, ((NI) (size)));
3719 	return result;
3720 }
N_NOINLINE(void *,newObjRC1)3721 N_LIB_PRIVATE N_NOINLINE(void*, newObjRC1)(TNimType* typ, NI size) {
3722 	void* result;
3723 	tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* res;
3724 	void* T1_;
3725 	result = (void*)0;
3726 	collectCT__system_5315((&gch__system_5238));
3727 	T1_ = (void*)0;
3728 	T1_ = rawAlloc__system_4580((&gch__system_5238.region), (NI)(size + ((NI) 8)));
3729 	res = ((tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*) (T1_));
3730 	(*res).typ = typ;
3731 	(*res).refcount = ((NI) 8);
3732 	result = cellToUsr__system_5288(res);
3733 	zeroMem__system_1724(result, ((NI) (size)));
3734 	return result;
3735 }
N_NIMCALL(NimStringDesc *,copyStringRC1)3736 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, copyStringRC1)(NimStringDesc* src) {
3737 	NimStringDesc* result;
3738 	result = (NimStringDesc*)0;
3739 	{
3740 		if (!!((src == ((NimStringDesc*) NIM_NIL)))) goto LA3_;
3741 		{
3742 			tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* T9_;
3743 			if (!!(((NI)((*src).Sup.reserved & ((NI) (-2147483647 -1))) == ((NI) 0)))) goto LA7_;
3744 			result = src;
3745 			T9_ = (tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*)0;
3746 			T9_ = usrToCell__system_5291(((void*) (result)));
3747 			incRef__system_5329(T9_);
3748 		}
3749 		goto LA5_;
3750 		LA7_: ;
3751 		{
3752 			NI s;
3753 			void* T15_;
3754 			s = (*src).Sup.len;
3755 			{
3756 				if (!(s < ((NI) 7))) goto LA13_;
3757 				s = ((NI) 7);
3758 			}
3759 			LA13_: ;
3760 			T15_ = (void*)0;
3761 			T15_ = newObjRC1((&strDesc__system_2412), (NI)((NI)(((NI) 8) + s) + ((NI) 1)));
3762 			result = ((NimStringDesc*) (T15_));
3763 			(*result).Sup.reserved = s;
3764 			(*result).Sup.len = (*src).Sup.len;
3765 			copyMem__system_1727(((void*) ((*result).data)), ((void*) ((*src).data)), ((NI) ((NI)((*src).Sup.len + ((NI) 1)))));
3766 		}
3767 		LA5_: ;
3768 	}
3769 	LA3_: ;
3770 	return result;
3771 }
N_INLINE(void,nimGCunrefNoCycle)3772 static N_INLINE(void, nimGCunrefNoCycle)(void* p) {
3773 	tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* T1_;
3774 	T1_ = (tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*)0;
3775 	T1_ = usrToCell__system_5291(p);
3776 	decRef__system_5336(T1_);
3777 }
N_INLINE(NF,toFloat__system_1702)3778 static N_INLINE(NF, toFloat__system_1702)(NI i) {
3779 	NF result;
3780 	result = (NF)0;
3781 	result = ((NF) (i));
3782 	return result;
3783 }
N_INLINE(NF,abs__system_3474)3784 static N_INLINE(NF, abs__system_3474)(NF x) {
3785 	NF result;
3786 	result = (NF)0;
3787 	result = fabs(x);
3788 	return result;
3789 }
N_INLINE(NIM_BOOL,nimMulInt)3790 static N_INLINE(NIM_BOOL, nimMulInt)(NI a, NI b, NI* res) {
3791 	NIM_BOOL result;
3792 	NI r;
3793 	NF floatProd;
3794 	NF T1_;
3795 	NF T2_;
3796 	NF resAsFloat;
3797 	result = (NIM_BOOL)0;
3798 	r = ((NI) ((NU)((NU32)(((NU) (a))) * (NU32)(((NU) (b))))));
3799 	T1_ = (NF)0;
3800 	T1_ = toFloat__system_1702(a);
3801 	T2_ = (NF)0;
3802 	T2_ = toFloat__system_1702(b);
3803 	floatProd = ((NF)(T1_) * (NF)(T2_));
3804 	resAsFloat = toFloat__system_1702(r);
3805 	{
3806 		if (!(resAsFloat == floatProd)) goto LA5_;
3807 		(*res) = r;
3808 	}
3809 	goto LA3_;
3810 	LA5_: ;
3811 	{
3812 		{
3813 			NF T10_;
3814 			NF T11_;
3815 			T10_ = (NF)0;
3816 			T10_ = abs__system_3474(((NF)(resAsFloat) - (NF)(floatProd)));
3817 			T11_ = (NF)0;
3818 			T11_ = abs__system_3474(floatProd);
3819 			if (!(((NF)(32.0) * (NF)(T10_)) <= T11_)) goto LA12_;
3820 			(*res) = r;
3821 		}
3822 		goto LA8_;
3823 		LA12_: ;
3824 		{
3825 			result = NIM_TRUE;
3826 		}
3827 		LA8_: ;
3828 	}
3829 	LA3_: ;
3830 	return result;
3831 }
N_NIMCALL(void,Marker_tyRef__r8GBEWywN07B3Rat3azS4Q)3832 static N_NIMCALL(void, Marker_tyRef__r8GBEWywN07B3Rat3azS4Q)(void* p, NI op) {
3833 	tyObject_OverflowDefect__9cxMi1BPLc3UKt9br86bGfGQ* a;
3834 	a = (tyObject_OverflowDefect__9cxMi1BPLc3UKt9br86bGfGQ*)p;
3835 	nimGCvisit((void*)(*a).Sup.Sup.Sup.parent, op);
3836 	nimGCvisit((void*)(*a).Sup.Sup.Sup.message, op);
3837 	nimGCvisit((void*)(*a).Sup.Sup.Sup.trace, op);
3838 	nimGCvisit((void*)(*a).Sup.Sup.Sup.up, op);
3839 }
N_INLINE(void,sysFatal__system_3375)3840 static N_INLINE(void, sysFatal__system_3375)(NimStringDesc* message) {
3841 	tyObject_OverflowDefect__9cxMi1BPLc3UKt9br86bGfGQ* T1_;
3842 	NimStringDesc* T2_;
3843 	T1_ = NIM_NIL;
3844 	T1_ = (tyObject_OverflowDefect__9cxMi1BPLc3UKt9br86bGfGQ*) newObj((&NTIrefoverflowdefect__r8GBEWywN07B3Rat3azS4Q_), sizeof(tyObject_OverflowDefect__9cxMi1BPLc3UKt9br86bGfGQ));
3845 	(*T1_).Sup.Sup.Sup.Sup.m_type = (&NTIoverflowdefect__9cxMi1BPLc3UKt9br86bGfGQ_);
3846 	(*T1_).Sup.Sup.Sup.name = "OverflowDefect";
3847 	T2_ = NIM_NIL;
3848 	T2_ = (*T1_).Sup.Sup.Sup.message; (*T1_).Sup.Sup.Sup.message = copyStringRC1(message);
3849 	if (T2_) nimGCunrefNoCycle(T2_);
3850 	raiseExceptionEx((Exception*)T1_, "OverflowDefect", "sysFatal", "fatal.nim", 53);
3851 }
N_NOINLINE(void,raiseOverflow)3852 N_LIB_PRIVATE N_NOINLINE(void, raiseOverflow)(void) {
3853 	sysFatal__system_3375(((NimStringDesc*) &TM__Q5wkpxktOdTGvlSRo9bzt9aw_7));
3854 }
N_INLINE(NIM_BOOL,nimAddInt)3855 static N_INLINE(NIM_BOOL, nimAddInt)(NI a, NI b, NI* res) {
3856 	NIM_BOOL result;
3857 	NI r;
3858 	result = (NIM_BOOL)0;
3859 	r = ((NI) ((NU)((NU32)(((NU) (a))) + (NU32)(((NU) (b))))));
3860 	{
3861 		NIM_BOOL T3_;
3862 		T3_ = (NIM_BOOL)0;
3863 		T3_ = (((NI) 0) <= (NI)(r ^ a));
3864 		if (T3_) goto LA4_;
3865 		T3_ = (((NI) 0) <= (NI)(r ^ b));
3866 		LA4_: ;
3867 		if (!T3_) goto LA5_;
3868 		(*res) = r;
3869 	}
3870 	goto LA1_;
3871 	LA5_: ;
3872 	{
3873 		result = NIM_TRUE;
3874 	}
3875 	LA1_: ;
3876 	return result;
3877 }
N_NIMCALL(void *,newSeq)3878 N_LIB_PRIVATE N_NIMCALL(void*, newSeq)(TNimType* typ, NI len) {
3879 	void* result;
3880 	NI size;
3881 	NI T1_;
3882 	NI TM__Q5wkpxktOdTGvlSRo9bzt9aw_6;
3883 	NI TM__Q5wkpxktOdTGvlSRo9bzt9aw_8;
3884 	result = (void*)0;
3885 	T1_ = (NI)0;
3886 	T1_ = align__system_1624(((NI) 8), (*(*typ).base).align);
3887 	if (nimMulInt(len, (*(*typ).base).size, &TM__Q5wkpxktOdTGvlSRo9bzt9aw_6)) { raiseOverflow(); };
3888 	if (nimAddInt(T1_, (NI)(TM__Q5wkpxktOdTGvlSRo9bzt9aw_6), &TM__Q5wkpxktOdTGvlSRo9bzt9aw_8)) { raiseOverflow(); };
3889 	size = (NI)(TM__Q5wkpxktOdTGvlSRo9bzt9aw_8);
3890 	result = newObj(typ, size);
3891 	(*((TGenericSeq*) (result))).len = len;
3892 	(*((TGenericSeq*) (result))).reserved = len;
3893 	return result;
3894 }
N_INLINE(NI,resize__system_5915)3895 static N_INLINE(NI, resize__system_5915)(NI old) {
3896 	NI result;
3897 	result = (NI)0;
3898 	{
3899 		if (!(old <= ((NI) 0))) goto LA3_;
3900 		result = ((NI) 4);
3901 	}
3902 	goto LA1_;
3903 	LA3_: ;
3904 	{
3905 		if (!(old < ((NI) 65536))) goto LA6_;
3906 		result = (NI)(old * ((NI) 2));
3907 	}
3908 	goto LA1_;
3909 	LA6_: ;
3910 	{
3911 		result = (NI)((NI)(old * ((NI) 3)) / ((NI) 2));
3912 	}
3913 	LA1_: ;
3914 	return result;
3915 }
N_NIMCALL(void *,dataPointer__system_5905)3916 N_LIB_PRIVATE N_NIMCALL(void*, dataPointer__system_5905)(TGenericSeq* a, NI elemAlign) {
3917 	void* result;
3918 	NI T1_;
3919 	NI T2_;
3920 	result = (void*)0;
3921 	T1_ = (NI)0;
3922 	T1_ = align__system_1624(((NI) 8), elemAlign);
3923 	T2_ = (NI)0;
3924 	T2_ = pluspercent___system_696(((NI) (ptrdiff_t) (a)), T1_);
3925 	result = ((void*) (T2_));
3926 	return result;
3927 }
N_NIMCALL(TGenericSeq *,incrSeqV3)3928 N_LIB_PRIVATE N_NIMCALL(TGenericSeq*, incrSeqV3)(TGenericSeq* s, TNimType* typ) {
3929 	TGenericSeq* result;
3930 	result = (TGenericSeq*)0;
3931 	{
3932 		void* T5_;
3933 		if (!(s == ((TGenericSeq*) NIM_NIL))) goto LA3_;
3934 		T5_ = (void*)0;
3935 		T5_ = newSeq(typ, ((NI) 1));
3936 		result = ((TGenericSeq*) (T5_));
3937 		(*result).len = ((NI) 0);
3938 	}
3939 	goto LA1_;
3940 	LA3_: ;
3941 	{
3942 		result = s;
3943 		{
3944 			NI r;
3945 			void* T11_;
3946 			void* T12_;
3947 			void* T13_;
3948 			if (!((NI)((*result).reserved & ((NI) 1073741823)) <= (*result).len)) goto LA9_;
3949 			r = resize__system_5915((NI)((*result).reserved & ((NI) 1073741823)));
3950 			T11_ = (void*)0;
3951 			T11_ = newSeq(typ, r);
3952 			result = ((TGenericSeq*) (T11_));
3953 			(*result).len = (*s).len;
3954 			T12_ = (void*)0;
3955 			T12_ = dataPointer__system_5905(result, (*(*typ).base).align);
3956 			T13_ = (void*)0;
3957 			T13_ = dataPointer__system_5905(s, (*(*typ).base).align);
3958 			copyMem__system_1727(T12_, T13_, ((NI) ((NI)((*s).len * (*(*typ).base).size))));
3959 			(*s).len = ((NI) 0);
3960 		}
3961 		LA9_: ;
3962 	}
3963 	LA1_: ;
3964 	return result;
3965 }
N_INLINE(void,pushCurrentException)3966 static N_INLINE(void, pushCurrentException)(Exception* e) {
3967 	asgnRef((void**) (&(*e).up), currException__system_2566);
3968 	asgnRef((void**) (&currException__system_2566), e);
3969 }
N_NIMCALL(NimStringDesc *,rawNewString)3970 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, rawNewString)(NI space) {
3971 	NimStringDesc* result;
3972 	NI s;
3973 	void* T5_;
3974 	result = (NimStringDesc*)0;
3975 	s = space;
3976 	{
3977 		if (!(s < ((NI) 7))) goto LA3_;
3978 		s = ((NI) 7);
3979 	}
3980 	LA3_: ;
3981 	T5_ = (void*)0;
3982 	T5_ = newObj((&strDesc__system_2412), (NI)((NI)(((NI) 8) + s) + ((NI) 1)));
3983 	result = ((NimStringDesc*) (T5_));
3984 	(*result).Sup.reserved = s;
3985 	(*result).Sup.len = ((NI) 0);
3986 	return result;
3987 }
N_INLINE(void,appendString)3988 static N_INLINE(void, appendString)(NimStringDesc* dest, NimStringDesc* src) {
3989 	{
3990 		if (!!((src == ((NimStringDesc*) NIM_NIL)))) goto LA3_;
3991 		copyMem__system_1727(((void*) ((&(*dest).data[(*dest).Sup.len]))), ((void*) ((*src).data)), ((NI) ((NI)((*src).Sup.len + ((NI) 1)))));
3992 		(*dest).Sup.len += (*src).Sup.len;
3993 	}
3994 	LA3_: ;
3995 }
N_NIMCALL(NimStringDesc *,resizeString)3996 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, resizeString)(NimStringDesc* dest, NI addlen) {
3997 	NimStringDesc* result;
3998 	result = (NimStringDesc*)0;
3999 	{
4000 		if (!(dest == ((NimStringDesc*) NIM_NIL))) goto LA3_;
4001 		result = rawNewStringNoInit(addlen);
4002 	}
4003 	goto LA1_;
4004 	LA3_: ;
4005 	{
4006 		if (!((NI)((*dest).Sup.len + addlen) <= (NI)((*dest).Sup.reserved & ((NI) 1073741823)))) goto LA6_;
4007 		result = dest;
4008 	}
4009 	goto LA1_;
4010 	LA6_: ;
4011 	{
4012 		NI sp;
4013 		NI T9_;
4014 		T9_ = (NI)0;
4015 		T9_ = resize__system_5915((NI)((*dest).Sup.reserved & ((NI) 1073741823)));
4016 		sp = ((T9_ >= (NI)((*dest).Sup.len + addlen)) ? T9_ : (NI)((*dest).Sup.len + addlen));
4017 		result = rawNewStringNoInit(sp);
4018 		(*result).Sup.len = (*dest).Sup.len;
4019 		copyMem__system_1727(((void*) ((&(*result).data[((NI) 0)]))), ((void*) ((&(*dest).data[((NI) 0)]))), ((NI) ((NI)((*dest).Sup.len + ((NI) 1)))));
4020 		(*result).Sup.reserved = sp;
4021 	}
4022 	LA1_: ;
4023 	return result;
4024 }
N_NIMCALL(NimStringDesc *,addChar)4025 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, addChar)(NimStringDesc* s, NIM_CHAR c) {
4026 	NimStringDesc* result;
4027 	result = (NimStringDesc*)0;
4028 	{
4029 		if (!(s == ((NimStringDesc*) NIM_NIL))) goto LA3_;
4030 		result = rawNewStringNoInit(((NI) 1));
4031 		(*result).Sup.len = ((NI) 0);
4032 	}
4033 	goto LA1_;
4034 	LA3_: ;
4035 	{
4036 		result = s;
4037 		{
4038 			NI r;
4039 			if (!((NI)((*result).Sup.reserved & ((NI) 1073741823)) <= (*result).Sup.len)) goto LA8_;
4040 			r = resize__system_5915((NI)((*result).Sup.reserved & ((NI) 1073741823)));
4041 			result = rawNewStringNoInit(r);
4042 			(*result).Sup.len = (*s).Sup.len;
4043 			copyMem__system_1727(((void*) ((&(*result).data[((NI) 0)]))), ((void*) ((&(*s).data[((NI) 0)]))), ((NI) ((NI)((*s).Sup.len + ((NI) 1)))));
4044 			(*result).Sup.reserved = r;
4045 		}
4046 		LA8_: ;
4047 	}
4048 	LA1_: ;
4049 	(*result).data[(*result).Sup.len] = c;
4050 	(*result).data[(NI)((*result).Sup.len + ((NI) 1))] = 0;
4051 	(*result).Sup.len += ((NI) 1);
4052 	return result;
4053 }
N_NOINLINE(NIM_BOOL,isOnStack__system_5317)4054 N_LIB_PRIVATE N_NOINLINE(NIM_BOOL, isOnStack__system_5317)(void* p) {
4055 	NIM_BOOL result;
4056 	void* volatile stackTop;
4057 	NI a;
4058 	tyObject_GcStack__7fytPA5bBsob6See21YMRA* T1_;
4059 	NI b;
4060 	NI T2_;
4061 	NI x;
4062 	NIM_BOOL T3_;
4063 	result = (NIM_BOOL)0;
4064 	stackTop = ((void*) ((&stackTop)));
4065 	T1_ = (tyObject_GcStack__7fytPA5bBsob6See21YMRA*)0;
4066 	T1_ = getActiveStack__system_5427((&gch__system_5238));
4067 	a = ((NI) (ptrdiff_t) ((*T1_).bottom));
4068 	b = ((NI) (ptrdiff_t) (stackTop));
4069 	T2_ = (NI)0;
4070 	T2_ = a;
4071 	a = b;
4072 	b = T2_;
4073 	x = ((NI) (ptrdiff_t) (p));
4074 	T3_ = (NIM_BOOL)0;
4075 	T3_ = lteqpercent___system_985(a, x);
4076 	if (!(T3_)) goto LA4_;
4077 	T3_ = lteqpercent___system_985(x, b);
4078 	LA4_: ;
4079 	result = T3_;
4080 	return result;
4081 }
N_NIMCALL(void,unsureAsgnRef)4082 N_LIB_PRIVATE N_NIMCALL(void, unsureAsgnRef)(void** dest, void* src) {
4083 	{
4084 		NIM_BOOL T3_;
4085 		T3_ = (NIM_BOOL)0;
4086 		T3_ = isOnStack__system_5317(((void*) (dest)));
4087 		if (!!(T3_)) goto LA4_;
4088 		{
4089 			tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* T10_;
4090 			if (!!((src == NIM_NIL))) goto LA8_;
4091 			T10_ = (tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*)0;
4092 			T10_ = usrToCell__system_5291(src);
4093 			incRef__system_5329(T10_);
4094 		}
4095 		LA8_: ;
4096 		{
4097 			NIM_BOOL T13_;
4098 			tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* T16_;
4099 			T13_ = (NIM_BOOL)0;
4100 			T13_ = lteqpercent___system_985(((NI) 4096), ((NI) (ptrdiff_t) ((*dest))));
4101 			if (!T13_) goto LA14_;
4102 			T16_ = (tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*)0;
4103 			T16_ = usrToCell__system_5291((*dest));
4104 			decRef__system_5336(T16_);
4105 		}
4106 		LA14_: ;
4107 	}
4108 	goto LA1_;
4109 	LA4_: ;
4110 	{
4111 	}
4112 	LA1_: ;
4113 	(*dest) = src;
4114 }
N_NIMCALL(void,add__system_2308)4115 N_LIB_PRIVATE N_NIMCALL(void, add__system_2308)(NimStringDesc** x, NCSTRING y) {
4116 	NI i;
4117 	i = ((NI) 0);
4118 	{
4119 		if (!!((((void*) (y)) == NIM_NIL))) goto LA3_;
4120 		{
4121 			while (1) {
4122 				if (!!(((NU8)(y[i]) == (NU8)(0)))) goto LA6;
4123 				unsureAsgnRef((void**) (&(*x)), addChar((*x), y[i]));
4124 				i += ((NI) 1);
4125 			} LA6: ;
4126 		}
4127 	}
4128 	LA3_: ;
4129 }
N_NIMCALL(NimStringDesc *,mnewString)4130 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, mnewString)(NI len) {
4131 	NimStringDesc* result;
4132 	result = (NimStringDesc*)0;
4133 	result = rawNewString(len);
4134 	(*result).Sup.len = len;
4135 	return result;
4136 }
N_NIMCALL(NimStringDesc *,setLengthStr)4137 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, setLengthStr)(NimStringDesc* s, NI newLen) {
4138 	NimStringDesc* result;
4139 	NI n;
4140 	result = (NimStringDesc*)0;
4141 	n = ((newLen >= ((NI) 0)) ? newLen : ((NI) 0));
4142 	{
4143 		if (!(s == ((NimStringDesc*) NIM_NIL))) goto LA3_;
4144 		result = mnewString(newLen);
4145 	}
4146 	goto LA1_;
4147 	LA3_: ;
4148 	{
4149 		if (!(n <= (NI)((*s).Sup.reserved & ((NI) 1073741823)))) goto LA6_;
4150 		result = s;
4151 	}
4152 	goto LA1_;
4153 	LA6_: ;
4154 	{
4155 		NI sp;
4156 		NI T9_;
4157 		T9_ = (NI)0;
4158 		T9_ = resize__system_5915((NI)((*s).Sup.reserved & ((NI) 1073741823)));
4159 		sp = ((T9_ >= newLen) ? T9_ : newLen);
4160 		result = rawNewStringNoInit(sp);
4161 		(*result).Sup.len = (*s).Sup.len;
4162 		copyMem__system_1727(((void*) ((&(*result).data[((NI) 0)]))), ((void*) ((&(*s).data[((NI) 0)]))), ((NI) ((NI)((*s).Sup.len + ((NI) 1)))));
4163 		zeroMem__system_1724(((void*) ((&(*result).data[(*s).Sup.len]))), ((NI) ((NI)(newLen - (*s).Sup.len))));
4164 		(*result).Sup.reserved = sp;
4165 	}
4166 	LA1_: ;
4167 	(*result).Sup.len = n;
4168 	(*result).data[n] = 0;
4169 	return result;
4170 }
N_INLINE(void,addInt__stdZprivateZdigitsutils_189)4171 static N_INLINE(void, addInt__stdZprivateZdigitsutils_189)(NimStringDesc** result, NI x) {
4172 	addInt__stdZprivateZdigitsutils_167(result, ((NI64) (x)));
4173 }
N_NIMCALL(NimStringDesc *,dollar___system_2723)4174 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, dollar___system_2723)(tySequence__uB9b75OUPRENsBAu4AnoePA* stackTraceEntries) {
4175 	NimStringDesc* result;
4176 	tySequence__uB9b75OUPRENsBAu4AnoePA* s;
4177 	result = NIM_NIL;
4178 	s = stackTraceEntries;
4179 	result = rawNewString(((NI) 2000));
4180 	{
4181 		NI i;
4182 		NI colontmp_;
4183 		NI T2_;
4184 		NI res;
4185 		i = (NI)0;
4186 		colontmp_ = (NI)0;
4187 		T2_ = (s ? s->Sup.len : 0);
4188 		colontmp_ = (NI)(T2_ - ((NI) 1));
4189 		res = ((NI) 0);
4190 		{
4191 			while (1) {
4192 				if (!(res <= colontmp_)) goto LA4;
4193 				i = res;
4194 				{
4195 					if (!(s->data[i].line == ((NI) -10))) goto LA7_;
4196 					result = resizeString(result, 17);
4197 appendString(result, ((NimStringDesc*) &TM__Q5wkpxktOdTGvlSRo9bzt9aw_9));
4198 				}
4199 				goto LA5_;
4200 				LA7_: ;
4201 				{
4202 					if (!(s->data[i].line == ((NI) -100))) goto LA10_;
4203 					result = resizeString(result, 3);
4204 appendString(result, ((NimStringDesc*) &TM__Q5wkpxktOdTGvlSRo9bzt9aw_10));
4205 				}
4206 				goto LA5_;
4207 				LA10_: ;
4208 				{
4209 					NI oldLenX60gensym69_;
4210 					oldLenX60gensym69_ = (result ? result->Sup.len : 0);
4211 					add__system_2308((&result), s->data[i].filename);
4212 					{
4213 						if (!(((NI) 0) < s->data[i].line)) goto LA15_;
4214 						result = resizeString(result, 1);
4215 appendString(result, ((NimStringDesc*) &TM__Q5wkpxktOdTGvlSRo9bzt9aw_11));
4216 						addInt__stdZprivateZdigitsutils_189((&result), s->data[i].line);
4217 						{
4218 							if (!NIM_FALSE) goto LA19_;
4219 							result = resizeString(result, 2);
4220 appendString(result, ((NimStringDesc*) &TM__Q5wkpxktOdTGvlSRo9bzt9aw_12));
4221 							addInt__stdZprivateZdigitsutils_189((&result), ((NI) 0));
4222 						}
4223 						LA19_: ;
4224 						result = resizeString(result, 1);
4225 appendString(result, ((NimStringDesc*) &TM__Q5wkpxktOdTGvlSRo9bzt9aw_13));
4226 					}
4227 					LA15_: ;
4228 					{
4229 						NI kX60gensym69_;
4230 						NI colontmp__2;
4231 						NI res_2;
4232 						kX60gensym69_ = (NI)0;
4233 						colontmp__2 = (NI)0;
4234 						colontmp__2 = ((((NI) 1) >= (NI)(((NI) 25) - (NI)((result ? result->Sup.len : 0) - oldLenX60gensym69_))) ? ((NI) 1) : (NI)(((NI) 25) - (NI)((result ? result->Sup.len : 0) - oldLenX60gensym69_)));
4235 						res_2 = ((NI) 1);
4236 						{
4237 							while (1) {
4238 								if (!(res_2 <= colontmp__2)) goto LA23;
4239 								kX60gensym69_ = res_2;
4240 								result = addChar(result, 32);
4241 								res_2 += ((NI) 1);
4242 							} LA23: ;
4243 						}
4244 					}
4245 					add__system_2308((&result), s->data[i].procname);
4246 					result = resizeString(result, 1);
4247 appendString(result, ((NimStringDesc*) &TM__Q5wkpxktOdTGvlSRo9bzt9aw_14));
4248 				}
4249 				LA5_: ;
4250 				res += ((NI) 1);
4251 			} LA4: ;
4252 		}
4253 	}
4254 	return result;
4255 }
N_INLINE(NCSTRING,nimToCStringConv)4256 static N_INLINE(NCSTRING, nimToCStringConv)(NimStringDesc* s) {
4257 	NCSTRING result;
4258 	result = (NCSTRING)0;
4259 	{
4260 		NIM_BOOL T3_;
4261 		T3_ = (NIM_BOOL)0;
4262 		T3_ = (s == ((NimStringDesc*) NIM_NIL));
4263 		if (T3_) goto LA4_;
4264 		T3_ = ((*s).Sup.len == ((NI) 0));
4265 		LA4_: ;
4266 		if (!T3_) goto LA5_;
4267 		result = "";
4268 	}
4269 	goto LA1_;
4270 	LA5_: ;
4271 	{
4272 		result = ((NCSTRING) ((*s).data));
4273 	}
4274 	LA1_: ;
4275 	return result;
4276 }
N_NIMCALL(void,reportUnhandledErrorAux__system_2752)4277 N_LIB_PRIVATE N_NIMCALL(void, reportUnhandledErrorAux__system_2752)(Exception* e) {
4278 	tyArray__gpc2RrLEcWgv7ONpLYNHOw buf;
4279 	NI L;
4280 	nimZeroMem((void*)buf, sizeof(tyArray__gpc2RrLEcWgv7ONpLYNHOw));
4281 	L = ((NI) 0);
4282 	{
4283 		NI T3_;
4284 		NimStringDesc* trace;
4285 		T3_ = ((*e).trace ? (*e).trace->Sup.len : 0);
4286 		if (!!((T3_ == ((NI) 0)))) goto LA4_;
4287 		trace = dollar___system_2723((*e).trace);
4288 		{
4289 			if (!((NI)(L + (trace ? trace->Sup.len : 0)) < ((NI) 2000))) goto LA8_;
4290 			copyMem__system_1727(((void*) ((&buf[(L)- 0]))), ((void*) (nimToCStringConv(trace))), ((NI) ((trace ? trace->Sup.len : 0))));
4291 			L += (trace ? trace->Sup.len : 0);
4292 		}
4293 		LA8_: ;
4294 		eqdestroy___systemZassertions_23((&trace));
4295 	}
4296 	LA4_: ;
4297 	{
4298 		if (!((NI)(L + ((NI) 28)) < ((NI) 2000))) goto LA12_;
4299 		copyMem__system_1727(((void*) ((&buf[(L)- 0]))), ((void*) ("Error: unhandled exception: ")), ((NI) 28));
4300 		L += ((NI) 28);
4301 	}
4302 	LA12_: ;
4303 	{
4304 		if (!((NI)(L + ((*e).message ? (*e).message->Sup.len : 0)) < ((NI) 2000))) goto LA16_;
4305 		copyMem__system_1727(((void*) ((&buf[(L)- 0]))), ((void*) (nimToCStringConv((*e).message))), ((NI) (((*e).message ? (*e).message->Sup.len : 0))));
4306 		L += ((*e).message ? (*e).message->Sup.len : 0);
4307 	}
4308 	LA16_: ;
4309 	{
4310 		if (!((NI)(L + ((NI) 2)) < ((NI) 2000))) goto LA20_;
4311 		copyMem__system_1727(((void*) ((&buf[(L)- 0]))), ((void*) (" [")), ((NI) 2));
4312 		L += ((NI) 2);
4313 	}
4314 	LA20_: ;
4315 	{
4316 		if (!((NI)(L + ((*e).name ? nimCStrLen((*e).name) : 0)) < ((NI) 2000))) goto LA24_;
4317 		copyMem__system_1727(((void*) ((&buf[(L)- 0]))), ((void*) ((*e).name)), ((NI) (((*e).name ? nimCStrLen((*e).name) : 0))));
4318 		L += ((*e).name ? nimCStrLen((*e).name) : 0);
4319 	}
4320 	LA24_: ;
4321 	{
4322 		if (!((NI)(L + ((NI) 2)) < ((NI) 2000))) goto LA28_;
4323 		copyMem__system_1727(((void*) ((&buf[(L)- 0]))), ((void*) ("]\012")), ((NI) 2));
4324 		L += ((NI) 2);
4325 	}
4326 	LA28_: ;
4327 	{
4328 		NimStringDesc* T34_;
4329 		if (!!((onUnhandledException__system_2751 == NIM_NIL))) goto LA32_;
4330 		T34_ = NIM_NIL;
4331 		T34_ = cstrToNimstr(((NCSTRING) (buf)));
4332 		onUnhandledException__system_2751(T34_);
4333 	}
4334 	goto LA30_;
4335 	LA32_: ;
4336 	{
4337 		showErrorMessage__system_2536(((NCSTRING) (buf)), L);
4338 	}
4339 	LA30_: ;
4340 }
N_NIMCALL(void,reportUnhandledError__system_2855)4341 N_LIB_PRIVATE N_NIMCALL(void, reportUnhandledError__system_2855)(Exception* e) {
4342 	{
4343 		if (!!((unhandledExceptionHook__system_2299 == NIM_NIL))) goto LA3_;
4344 		unhandledExceptionHook__system_2299(e);
4345 	}
4346 	LA3_: ;
4347 	reportUnhandledErrorAux__system_2752(e);
4348 }
N_NIMCALL(void,raiseExceptionAux__system_2866)4349 N_LIB_PRIVATE N_NIMCALL(void, raiseExceptionAux__system_2866)(Exception* e) {
4350 {	{
4351 		if (!!((localRaiseHook__system_2294 == NIM_NIL))) goto LA3_;
4352 		{
4353 			NIM_BOOL T7_;
4354 			T7_ = (NIM_BOOL)0;
4355 			T7_ = localRaiseHook__system_2294(e);
4356 			if (!!(T7_)) goto LA8_;
4357 			goto BeforeRet_;
4358 		}
4359 		LA8_: ;
4360 	}
4361 	LA3_: ;
4362 	{
4363 		if (!!((globalRaiseHook__system_2291 == NIM_NIL))) goto LA12_;
4364 		{
4365 			NIM_BOOL T16_;
4366 			T16_ = (NIM_BOOL)0;
4367 			T16_ = globalRaiseHook__system_2291(e);
4368 			if (!!(T16_)) goto LA17_;
4369 			goto BeforeRet_;
4370 		}
4371 		LA17_: ;
4372 	}
4373 	LA12_: ;
4374 	{
4375 		if (!!((excHandler__system_2565 == ((TSafePoint*) NIM_NIL)))) goto LA21_;
4376 		pushCurrentException(e);
4377 		_longjmp((*excHandler__system_2565).context, ((int) 1));
4378 	}
4379 	goto LA19_;
4380 	LA21_: ;
4381 	{
4382 		reportUnhandledError__system_2855(e);
4383 		exit(((NI) 1));
4384 	}
4385 	LA19_: ;
4386 	}BeforeRet_: ;
4387 }
N_NIMCALL(void,raiseExceptionEx)4388 N_LIB_PRIVATE N_NIMCALL(void, raiseExceptionEx)(Exception* e, NCSTRING ename, NCSTRING procname, NCSTRING filename, NI line) {
4389 	{
4390 		if (!((*e).name == 0)) goto LA3_;
4391 		(*e).name = ename;
4392 	}
4393 	LA3_: ;
4394 	{
4395 		NIM_BOOL T7_;
4396 		tyObject_StackTraceEntry__oLyohQ7O2XOvGnflOss8EA T11_;
4397 		NI T12_;
4398 		T7_ = (NIM_BOOL)0;
4399 		T7_ = !((((void*) (procname)) == NIM_NIL));
4400 		if (!(T7_)) goto LA8_;
4401 		T7_ = !((((void*) (filename)) == NIM_NIL));
4402 		LA8_: ;
4403 		if (!T7_) goto LA9_;
4404 		nimZeroMem((void*)(&T11_), sizeof(tyObject_StackTraceEntry__oLyohQ7O2XOvGnflOss8EA));
4405 		T11_.procname = procname;
4406 		T11_.filename = filename;
4407 		T11_.line = line;
4408 		asgnRef((void**) (&(*e).trace), (tySequence__uB9b75OUPRENsBAu4AnoePA*) incrSeqV3((TGenericSeq*)((*e).trace), (&NTIseqLstacktraceentryT__uB9b75OUPRENsBAu4AnoePA_)));
4409 		T12_ = (*e).trace->Sup.len++;
4410 		(*e).trace->data[T12_] = T11_;
4411 	}
4412 	LA9_: ;
4413 	raiseExceptionAux__system_2866(e);
4414 }
N_INLINE(void,sysFatal__system_2898)4415 static N_INLINE(void, sysFatal__system_2898)(NimStringDesc* message) {
4416 	tyObject_ReraiseDefect__E0L0wGYS1gPD81VLstNO2g* T1_;
4417 	NimStringDesc* T2_;
4418 	T1_ = NIM_NIL;
4419 	T1_ = (tyObject_ReraiseDefect__E0L0wGYS1gPD81VLstNO2g*) newObj((&NTIrefreraisedefect__uG62cfJZ15c2siK3CKLmnQ_), sizeof(tyObject_ReraiseDefect__E0L0wGYS1gPD81VLstNO2g));
4420 	(*T1_).Sup.Sup.Sup.m_type = (&NTIreraisedefect__E0L0wGYS1gPD81VLstNO2g_);
4421 	(*T1_).Sup.Sup.name = "ReraiseDefect";
4422 	T2_ = NIM_NIL;
4423 	T2_ = (*T1_).Sup.Sup.message; (*T1_).Sup.Sup.message = copyStringRC1(message);
4424 	if (T2_) nimGCunrefNoCycle(T2_);
4425 	raiseExceptionEx((Exception*)T1_, "ReraiseDefect", "sysFatal", "fatal.nim", 53);
4426 }
N_NIMCALL(void,reraiseException)4427 N_LIB_PRIVATE N_NIMCALL(void, reraiseException)(void) {
4428 	{
4429 		if (!(currException__system_2566 == ((Exception*) NIM_NIL))) goto LA3_;
4430 		sysFatal__system_2898(((NimStringDesc*) &TM__Q5wkpxktOdTGvlSRo9bzt9aw_15));
4431 	}
4432 	goto LA1_;
4433 	LA3_: ;
4434 	{
4435 		raiseExceptionAux__system_2866(currException__system_2566);
4436 	}
4437 	LA1_: ;
4438 }
N_INLINE(void,rawWriteString)4439 static N_INLINE(void, rawWriteString)(FILE* f, NCSTRING s, NI length) {
4440 	int T1_;
4441 	int T2_;
4442 	T1_ = (int)0;
4443 	T1_ = fwrite(((void*) (s)), ((size_t) 1), ((size_t) (length)), f);
4444 	(void)(T1_);
4445 	T2_ = (int)0;
4446 	T2_ = fflush(f);
4447 	(void)(T2_);
4448 }
N_NIMCALL(void,writeToStdErr__system_2531)4449 N_LIB_PRIVATE N_NIMCALL(void, writeToStdErr__system_2531)(NCSTRING msg, NI length) {
4450 	rawWriteString(stderr, msg, length);
4451 }
N_NIMCALL(void,showErrorMessage__system_2536)4452 N_LIB_PRIVATE N_NIMCALL(void, showErrorMessage__system_2536)(NCSTRING data, NI length) {
4453 	NIM_BOOL volatile toWrite;
4454 	toWrite = NIM_TRUE;
4455 	{
4456 		TSafePoint TM__Q5wkpxktOdTGvlSRo9bzt9aw_5;
4457 		NimStringDesc* T5_;
4458 		if (!!((errorMessageWriter__system_2528 == NIM_NIL))) goto LA3_;
4459 		pushSafePoint(&TM__Q5wkpxktOdTGvlSRo9bzt9aw_5);
4460 		TM__Q5wkpxktOdTGvlSRo9bzt9aw_5.status = _setjmp(TM__Q5wkpxktOdTGvlSRo9bzt9aw_5.context);
4461 		if (TM__Q5wkpxktOdTGvlSRo9bzt9aw_5.status == 0) {
4462 		T5_ = NIM_NIL;
4463 		T5_ = cstrToNimstr(data);
4464 		errorMessageWriter__system_2528(T5_);
4465 		toWrite = NIM_FALSE;
4466 		popSafePoint();
4467 		}
4468 		else {
4469 			popSafePoint();
4470 			{
4471 				TM__Q5wkpxktOdTGvlSRo9bzt9aw_5.status = 0;
4472 				popCurrentException();
4473 			}
4474 		}
4475 		if (TM__Q5wkpxktOdTGvlSRo9bzt9aw_5.status != 0) reraiseException();
4476 	}
4477 	LA3_: ;
4478 	{
4479 		if (!toWrite) goto LA10_;
4480 		writeToStdErr__system_2531(data, length);
4481 	}
4482 	LA10_: ;
4483 }
N_NOCONV(void,signalHandler)4484 N_LIB_PRIVATE N_NOCONV(void, signalHandler)(int sign) {
4485 	NCSTRING msg;
4486 	tyProc__ZEo3s9cIqJYP74f7GMZM2FA T26_;
4487 	int T27_;
4488 	msg = (NCSTRING)0;
4489 	{
4490 		if (!(sign == ((int) 2))) goto LA3_;
4491 		msg = "SIGINT: Interrupted by Ctrl-C.\012";
4492 	}
4493 	goto LA1_;
4494 	LA3_: ;
4495 	{
4496 		if (!(sign == ((int) 11))) goto LA6_;
4497 		msg = "SIGSEGV: Illegal storage access. (Attempt to read from nil\?)\012";
4498 	}
4499 	goto LA1_;
4500 	LA6_: ;
4501 	{
4502 		if (!(sign == ((int) 6))) goto LA9_;
4503 		msg = "SIGABRT: Abnormal termination.\012";
4504 	}
4505 	goto LA1_;
4506 	LA9_: ;
4507 	{
4508 		if (!(sign == ((int) 8))) goto LA12_;
4509 		msg = "SIGFPE: Arithmetic error.\012";
4510 	}
4511 	goto LA1_;
4512 	LA12_: ;
4513 	{
4514 		if (!(sign == ((int) 4))) goto LA15_;
4515 		msg = "SIGILL: Illegal operation.\012";
4516 	}
4517 	goto LA1_;
4518 	LA15_: ;
4519 	{
4520 		if (!NIM_FALSE) goto LA18_;
4521 		msg = "SIGBUS: Illegal storage access. (Attempt to read from nil\?)\012";
4522 	}
4523 	goto LA1_;
4524 	LA18_: ;
4525 	{
4526 		{
4527 			{
4528 				if (!(sign == ((int) 13))) goto LA24_;
4529 				msg = "SIGPIPE: Pipe closed.\012";
4530 				goto LA21;
4531 			}
4532 			LA24_: ;
4533 			msg = "unknown signal\012";
4534 		} LA21: ;
4535 	}
4536 	LA1_: ;
4537 	showErrorMessage__system_2536(msg, (msg ? nimCStrLen(msg) : 0));
4538 	T26_ = (tyProc__ZEo3s9cIqJYP74f7GMZM2FA)0;
4539 	T26_ = signal(sign, ((tyProc__ZEo3s9cIqJYP74f7GMZM2FA) 0));
4540 	T27_ = (int)0;
4541 	T27_ = raise(sign);
4542 	(void)(T27_);
4543 }
N_NIMCALL(void,registerSignalHandler__system_2992)4544 N_LIB_PRIVATE N_NIMCALL(void, registerSignalHandler__system_2992)(void) {
4545 	tyProc__ZEo3s9cIqJYP74f7GMZM2FA T1_;
4546 	tyProc__ZEo3s9cIqJYP74f7GMZM2FA T2_;
4547 	tyProc__ZEo3s9cIqJYP74f7GMZM2FA T3_;
4548 	tyProc__ZEo3s9cIqJYP74f7GMZM2FA T4_;
4549 	tyProc__ZEo3s9cIqJYP74f7GMZM2FA T5_;
4550 	tyProc__ZEo3s9cIqJYP74f7GMZM2FA T6_;
4551 	T1_ = (tyProc__ZEo3s9cIqJYP74f7GMZM2FA)0;
4552 	T1_ = signal(((int) 2), signalHandler);
4553 	T2_ = (tyProc__ZEo3s9cIqJYP74f7GMZM2FA)0;
4554 	T2_ = signal(((int) 11), signalHandler);
4555 	T3_ = (tyProc__ZEo3s9cIqJYP74f7GMZM2FA)0;
4556 	T3_ = signal(((int) 6), signalHandler);
4557 	T4_ = (tyProc__ZEo3s9cIqJYP74f7GMZM2FA)0;
4558 	T4_ = signal(((int) 8), signalHandler);
4559 	T5_ = (tyProc__ZEo3s9cIqJYP74f7GMZM2FA)0;
4560 	T5_ = signal(((int) 4), signalHandler);
4561 	T6_ = (tyProc__ZEo3s9cIqJYP74f7GMZM2FA)0;
4562 	T6_ = signal(((int) 13), SIG_IGN);
4563 }
N_NIMCALL(NI,getRefcount)4564 N_LIB_PRIVATE N_NIMCALL(NI, getRefcount)(void* p) {
4565 	NI result;
4566 	tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* T1_;
4567 	result = (NI)0;
4568 	T1_ = (tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*)0;
4569 	T1_ = usrToCell__system_5291(p);
4570 	result = (NI)((NI32)((*T1_).refcount) >> (NU32)(((NI) 3)));
4571 	return result;
4572 }
N_NIMCALL(void,nimRegisterGlobalMarker)4573 N_LIB_PRIVATE N_NIMCALL(void, nimRegisterGlobalMarker)(tyProc__T4eqaYlFJYZUv9aG9b1TV0bQ markerProc) {
4574 	{
4575 		if (!(globalMarkersLen <= ((NI) 3499))) goto LA3_;
4576 		globalMarkers[(globalMarkersLen)- 0] = markerProc;
4577 		globalMarkersLen += ((NI) 1);
4578 	}
4579 	goto LA1_;
4580 	LA3_: ;
4581 	{
4582 		rawWrite(stderr, "[GC] cannot register global variable; too many global variables");
4583 		exit(((NI) 1));
4584 	}
4585 	LA1_: ;
4586 }
N_NIMCALL(NimStringDesc *,reprEnum)4587 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, reprEnum)(NI e, TNimType* typ) {
4588 	NimStringDesc* result;
4589 	TNimNode* n;
4590 	NimStringDesc* T19_;
4591 	NimStringDesc* T20_;
4592 {	result = NIM_NIL;
4593 	n = (*typ).node;
4594 	{
4595 		NI o;
4596 		if (!!((((*typ).flags &((NU8)1<<((NU)(((tyEnum_TNimTypeFlag__v8QUszD1sWlSIWZz7mC4bQ) 2))&7U)))!=0))) goto LA3_;
4597 		o = (NI)(e - (*(*n).sons[(((NI) 0))- 0]).offset);
4598 		{
4599 			NIM_BOOL T7_;
4600 			T7_ = (NIM_BOOL)0;
4601 			T7_ = (((NI) 0) <= o);
4602 			if (!(T7_)) goto LA8_;
4603 			T7_ = ltpercent___system_1005(o, (*(*typ).node).len);
4604 			LA8_: ;
4605 			if (!T7_) goto LA9_;
4606 			result = cstrToNimstr((*(*n).sons[(o)- 0]).name);
4607 			goto BeforeRet_;
4608 		}
4609 		LA9_: ;
4610 	}
4611 	goto LA1_;
4612 	LA3_: ;
4613 	{
4614 		TNimNode** s;
4615 		s = (*n).sons;
4616 		{
4617 			NI i;
4618 			NI colontmp_;
4619 			NI res;
4620 			i = (NI)0;
4621 			colontmp_ = (NI)0;
4622 			colontmp_ = (NI)((*n).len - ((NI) 1));
4623 			res = ((NI) 0);
4624 			{
4625 				while (1) {
4626 					if (!(res <= colontmp_)) goto LA14;
4627 					i = res;
4628 					{
4629 						if (!((*s[(i)- 0]).offset == e)) goto LA17_;
4630 						result = cstrToNimstr((*s[(i)- 0]).name);
4631 						goto BeforeRet_;
4632 					}
4633 					LA17_: ;
4634 					res += ((NI) 1);
4635 				} LA14: ;
4636 			}
4637 		}
4638 	}
4639 	LA1_: ;
4640 	T19_ = NIM_NIL;
4641 	T20_ = NIM_NIL;
4642 	T20_ = dollar___systemZdollars_3(e);
4643 	T19_ = rawNewString((T20_ ? T20_->Sup.len : 0) + 16);
4644 appendString(T19_, T20_);
4645 appendString(T19_, ((NimStringDesc*) &TM__Q5wkpxktOdTGvlSRo9bzt9aw_16));
4646 	result = T19_;
4647 	}BeforeRet_: ;
4648 	return result;
4649 }
N_NIMCALL(void,Marker_tyRef__8SzoIAgLw9ci2v0yafHj9b6Q)4650 static N_NIMCALL(void, Marker_tyRef__8SzoIAgLw9ci2v0yafHj9b6Q)(void* p, NI op) {
4651 	tyObject_KeyError__t7nhKLvXTQS9cS8ByJU9bIag* a;
4652 	a = (tyObject_KeyError__t7nhKLvXTQS9cS8ByJU9bIag*)p;
4653 	nimGCvisit((void*)(*a).Sup.Sup.Sup.parent, op);
4654 	nimGCvisit((void*)(*a).Sup.Sup.Sup.message, op);
4655 	nimGCvisit((void*)(*a).Sup.Sup.Sup.trace, op);
4656 	nimGCvisit((void*)(*a).Sup.Sup.Sup.up, op);
4657 }
N_NIMCALL(NimStringDesc *,copyString)4658 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, copyString)(NimStringDesc* src) {
4659 	NimStringDesc* result;
4660 	result = (NimStringDesc*)0;
4661 	{
4662 		if (!!((src == ((NimStringDesc*) NIM_NIL)))) goto LA3_;
4663 		{
4664 			if (!!(((NI)((*src).Sup.reserved & ((NI) (-2147483647 -1))) == ((NI) 0)))) goto LA7_;
4665 			result = src;
4666 		}
4667 		goto LA5_;
4668 		LA7_: ;
4669 		{
4670 			result = rawNewStringNoInit((*src).Sup.len);
4671 			(*result).Sup.len = (*src).Sup.len;
4672 			copyMem__system_1727(((void*) ((*result).data)), ((void*) ((*src).data)), ((NI) ((NI)((*src).Sup.len + ((NI) 1)))));
4673 		}
4674 		LA5_: ;
4675 	}
4676 	LA3_: ;
4677 	return result;
4678 }
N_NIMCALL(void *,dataPointer__system_5909)4679 N_LIB_PRIVATE N_NIMCALL(void*, dataPointer__system_5909)(TGenericSeq* a, NI elemAlign, NI elemSize, NI index) {
4680 	void* result;
4681 	NI T1_;
4682 	NI T2_;
4683 	NI T3_;
4684 	NI T4_;
4685 	result = (void*)0;
4686 	T1_ = (NI)0;
4687 	T1_ = align__system_1624(((NI) 8), elemAlign);
4688 	T2_ = (NI)0;
4689 	T2_ = pluspercent___system_696(((NI) (ptrdiff_t) (a)), T1_);
4690 	T3_ = (NI)0;
4691 	T3_ = starpercent___system_736(index, elemSize);
4692 	T4_ = (NI)0;
4693 	T4_ = pluspercent___system_696(T2_, T3_);
4694 	result = ((void*) (T4_));
4695 	return result;
4696 }
N_NIMCALL(TNimType *,extGetCellType)4697 N_LIB_PRIVATE N_NIMCALL(TNimType*, extGetCellType)(void* c) {
4698 	TNimType* result;
4699 	tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* T1_;
4700 	result = (TNimType*)0;
4701 	T1_ = (tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*)0;
4702 	T1_ = usrToCell__system_5291(c);
4703 	result = (*T1_).typ;
4704 	return result;
4705 }
N_NIMCALL(TGenericSeq *,setLengthSeqV2)4706 N_LIB_PRIVATE N_NIMCALL(TGenericSeq*, setLengthSeqV2)(TGenericSeq* s, TNimType* typ, NI newLen) {
4707 	TGenericSeq* result;
4708 	result = (TGenericSeq*)0;
4709 	{
4710 		void* T5_;
4711 		if (!(s == ((TGenericSeq*) NIM_NIL))) goto LA3_;
4712 		T5_ = (void*)0;
4713 		T5_ = newSeq(typ, newLen);
4714 		result = ((TGenericSeq*) (T5_));
4715 	}
4716 	goto LA1_;
4717 	LA3_: ;
4718 	{
4719 		NI elemSize;
4720 		NI elemAlign;
4721 		elemSize = (*(*typ).base).size;
4722 		elemAlign = (*(*typ).base).align;
4723 		{
4724 			NI r;
4725 			NI T11_;
4726 			void* T12_;
4727 			void* T13_;
4728 			void* T14_;
4729 			if (!((NI)((*s).reserved & ((NI) 1073741823)) < newLen)) goto LA9_;
4730 			T11_ = (NI)0;
4731 			T11_ = resize__system_5915((NI)((*s).reserved & ((NI) 1073741823)));
4732 			r = ((T11_ >= newLen) ? T11_ : newLen);
4733 			T12_ = (void*)0;
4734 			T12_ = newSeq(typ, r);
4735 			result = ((TGenericSeq*) (T12_));
4736 			T13_ = (void*)0;
4737 			T13_ = dataPointer__system_5905(result, elemAlign);
4738 			T14_ = (void*)0;
4739 			T14_ = dataPointer__system_5905(s, elemAlign);
4740 			copyMem__system_1727(T13_, T14_, ((NI) ((NI)((*s).len * elemSize))));
4741 			(*s).len = ((NI) 0);
4742 		}
4743 		goto LA7_;
4744 		LA9_: ;
4745 		{
4746 			void* T27_;
4747 			NI T28_;
4748 			NI T29_;
4749 			if (!(newLen < (*s).len)) goto LA16_;
4750 			result = s;
4751 			{
4752 				if (!!((((*(*typ).base).flags &((NU8)1<<((NU)(((tyEnum_TNimTypeFlag__v8QUszD1sWlSIWZz7mC4bQ) 0))&7U)))!=0))) goto LA20_;
4753 				{
4754 					NI i;
4755 					NI colontmp_;
4756 					NI res;
4757 					i = (NI)0;
4758 					colontmp_ = (NI)0;
4759 					colontmp_ = (NI)((*result).len - ((NI) 1));
4760 					res = newLen;
4761 					{
4762 						while (1) {
4763 							void* T25_;
4764 							TNimType* T26_;
4765 							if (!(res <= colontmp_)) goto LA24;
4766 							i = res;
4767 							T25_ = (void*)0;
4768 							T25_ = dataPointer__system_5909(result, elemAlign, elemSize, i);
4769 							T26_ = (TNimType*)0;
4770 							T26_ = extGetCellType(((void*) (result)));
4771 							forAllChildrenAux__system_5325(T25_, (*T26_).base, ((tyEnum_WalkOp__Wfy7gT5VQ8B3aJBxqU8D9cQ) 2));
4772 							res += ((NI) 1);
4773 						} LA24: ;
4774 					}
4775 				}
4776 			}
4777 			LA20_: ;
4778 			T27_ = (void*)0;
4779 			T27_ = dataPointer__system_5909(result, elemAlign, elemSize, newLen);
4780 			T28_ = (NI)0;
4781 			T28_ = minuspercent___system_716((*result).len, newLen);
4782 			T29_ = (NI)0;
4783 			T29_ = starpercent___system_736(T28_, elemSize);
4784 			zeroMem__system_1724(T27_, ((NI) (T29_)));
4785 		}
4786 		goto LA7_;
4787 		LA16_: ;
4788 		{
4789 			void* T31_;
4790 			NI T32_;
4791 			NI T33_;
4792 			result = s;
4793 			T31_ = (void*)0;
4794 			T31_ = dataPointer__system_5909(result, elemAlign, elemSize, (*result).len);
4795 			T32_ = (NI)0;
4796 			T32_ = minuspercent___system_716(newLen, (*result).len);
4797 			T33_ = (NI)0;
4798 			T33_ = starpercent___system_736(T32_, elemSize);
4799 			zeroMem__system_1724(T31_, ((NI) (T33_)));
4800 		}
4801 		LA7_: ;
4802 		(*result).len = newLen;
4803 	}
4804 	LA1_: ;
4805 	return result;
4806 }
N_NIMCALL(void,Marker_tyRef__S8DV6hfcgC9c0IiUsAoR29cQ)4807 static N_NIMCALL(void, Marker_tyRef__S8DV6hfcgC9c0IiUsAoR29cQ)(void* p, NI op) {
4808 	tyObject_AssertionDefect__PtYxPmY5X0dorfvxAFbJpQ* a;
4809 	a = (tyObject_AssertionDefect__PtYxPmY5X0dorfvxAFbJpQ*)p;
4810 	nimGCvisit((void*)(*a).Sup.Sup.parent, op);
4811 	nimGCvisit((void*)(*a).Sup.Sup.message, op);
4812 	nimGCvisit((void*)(*a).Sup.Sup.trace, op);
4813 	nimGCvisit((void*)(*a).Sup.Sup.up, op);
4814 }
N_NIMCALL(NimStringDesc *,substr__system_7764)4815 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, substr__system_7764)(NimStringDesc* s, NI first, NI last) {
4816 	NimStringDesc* result;
4817 	NI first_2;
4818 	NI L;
4819 	result = NIM_NIL;
4820 	first_2 = ((first >= ((NI) 0)) ? first : ((NI) 0));
4821 	L = (((NI)((NI)(((last <= ((s ? s->Sup.len : 0)-1)) ? last : ((s ? s->Sup.len : 0)-1)) - first_2) + ((NI) 1)) >= ((NI) 0)) ? (NI)((NI)(((last <= ((s ? s->Sup.len : 0)-1)) ? last : ((s ? s->Sup.len : 0)-1)) - first_2) + ((NI) 1)) : ((NI) 0));
4822 	result = mnewString(((NI) (L)));
4823 	{
4824 		NI i;
4825 		NI colontmp_;
4826 		NI res;
4827 		i = (NI)0;
4828 		colontmp_ = (NI)0;
4829 		colontmp_ = (NI)(L - ((NI) 1));
4830 		res = ((NI) 0);
4831 		{
4832 			while (1) {
4833 				if (!(res <= colontmp_)) goto LA3;
4834 				i = res;
4835 				result->data[i] = s->data[(NI)(i + first_2)];
4836 				res += ((NI) 1);
4837 			} LA3: ;
4838 		}
4839 	}
4840 	return result;
4841 }
N_NIMCALL(NimStringDesc *,nimCharToStr)4842 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, nimCharToStr)(NIM_CHAR x) {
4843 	NimStringDesc* result;
4844 	result = NIM_NIL;
4845 	result = mnewString(((NI) 1));
4846 	result->data[((NI) 0)] = x;
4847 	return result;
4848 }
N_NIMCALL(void,addFloatRoundtrip__system_3127)4849 N_LIB_PRIVATE N_NIMCALL(void, addFloatRoundtrip__system_3127)(NimStringDesc** result, NF x) {
4850 	tyArray__eVNFTutn6un5gcq48fQLdg buffer;
4851 	NI n;
4852 	n = writeFloatToBufferRoundtrip__systemZformatfloat_13(buffer, x);
4853 	addCstringN__systemZformatfloat_5(result, ((NCSTRING) ((&buffer[(((NI) 0))- 0]))), n);
4854 }
N_NIMCALL(void,GC_disableMarkAndSweep__system_2267)4855 N_LIB_PRIVATE N_NIMCALL(void, GC_disableMarkAndSweep__system_2267)(void) {
4856 	gch__system_5238.cycleThreshold = ((NI) 2147483646);
4857 }
N_NIMCALL(void *,newSeqRC1)4858 N_LIB_PRIVATE N_NIMCALL(void*, newSeqRC1)(TNimType* typ, NI len) {
4859 	void* result;
4860 	NI size;
4861 	NI T1_;
4862 	NI TM__Q5wkpxktOdTGvlSRo9bzt9aw_17;
4863 	NI TM__Q5wkpxktOdTGvlSRo9bzt9aw_18;
4864 	result = (void*)0;
4865 	T1_ = (NI)0;
4866 	T1_ = align__system_1624(((NI) 8), (*(*typ).base).align);
4867 	if (nimMulInt(len, (*(*typ).base).size, &TM__Q5wkpxktOdTGvlSRo9bzt9aw_17)) { raiseOverflow(); };
4868 	if (nimAddInt(T1_, (NI)(TM__Q5wkpxktOdTGvlSRo9bzt9aw_17), &TM__Q5wkpxktOdTGvlSRo9bzt9aw_18)) { raiseOverflow(); };
4869 	size = (NI)(TM__Q5wkpxktOdTGvlSRo9bzt9aw_18);
4870 	result = newObjRC1(typ, size);
4871 	(*((TGenericSeq*) (result))).len = len;
4872 	(*((TGenericSeq*) (result))).reserved = len;
4873 	return result;
4874 }
N_NIMCALL(void *,nimNewSeqOfCap)4875 N_LIB_PRIVATE N_NIMCALL(void*, nimNewSeqOfCap)(TNimType* typ, NI cap) {
4876 	void* result;
4877 	NI s;
4878 	NI T1_;
4879 	NI TM__Q5wkpxktOdTGvlSRo9bzt9aw_19;
4880 	NI TM__Q5wkpxktOdTGvlSRo9bzt9aw_20;
4881 	result = (void*)0;
4882 	T1_ = (NI)0;
4883 	T1_ = align__system_1624(((NI) 8), (*(*typ).base).align);
4884 	if (nimMulInt(cap, (*(*typ).base).size, &TM__Q5wkpxktOdTGvlSRo9bzt9aw_19)) { raiseOverflow(); };
4885 	if (nimAddInt(T1_, (NI)(TM__Q5wkpxktOdTGvlSRo9bzt9aw_19), &TM__Q5wkpxktOdTGvlSRo9bzt9aw_20)) { raiseOverflow(); };
4886 	s = (NI)(TM__Q5wkpxktOdTGvlSRo9bzt9aw_20);
4887 	{
4888 		if (!(((*(*typ).base).flags &((NU8)1<<((NU)(((tyEnum_TNimTypeFlag__v8QUszD1sWlSIWZz7mC4bQ) 0))&7U)))!=0)) goto LA4_;
4889 		result = newObjNoInit(typ, s);
4890 	}
4891 	goto LA2_;
4892 	LA4_: ;
4893 	{
4894 		result = newObj(typ, s);
4895 	}
4896 	LA2_: ;
4897 	(*((TGenericSeq*) (result))).len = ((NI) 0);
4898 	(*((TGenericSeq*) (result))).reserved = cap;
4899 	return result;
4900 }
N_NIMCALL(void,genericReset)4901 N_LIB_PRIVATE N_NIMCALL(void, genericReset)(void* dest, TNimType* mt) {
4902 	NI d;
4903 	d = ((NI) (ptrdiff_t) (dest));
4904 	switch ((*mt).kind) {
4905 	case ((tyEnum_TNimKind__jIBKr1ejBgsfM33Kxw4j7A) 22):
4906 	{
4907 		unsureAsgnRef(((void**) (dest)), NIM_NIL);
4908 	}
4909 	break;
4910 	case ((tyEnum_TNimKind__jIBKr1ejBgsfM33Kxw4j7A) 28):
4911 	{
4912 		unsureAsgnRef(((void**) (dest)), NIM_NIL);
4913 	}
4914 	break;
4915 	case ((tyEnum_TNimKind__jIBKr1ejBgsfM33Kxw4j7A) 24):
4916 	{
4917 		unsureAsgnRef(((void**) (dest)), NIM_NIL);
4918 	}
4919 	break;
4920 	case ((tyEnum_TNimKind__jIBKr1ejBgsfM33Kxw4j7A) 18):
4921 	{
4922 		genericResetAux__system_6423(dest, (*mt).node);
4923 	}
4924 	break;
4925 	case ((tyEnum_TNimKind__jIBKr1ejBgsfM33Kxw4j7A) 17):
4926 	{
4927 		TNimType** pint;
4928 		genericResetAux__system_6423(dest, (*mt).node);
4929 		pint = ((TNimType**) (dest));
4930 		(*pint) = ((TNimType*) NIM_NIL);
4931 	}
4932 	break;
4933 	case ((tyEnum_TNimKind__jIBKr1ejBgsfM33Kxw4j7A) 16):
4934 	case ((tyEnum_TNimKind__jIBKr1ejBgsfM33Kxw4j7A) 4):
4935 	{
4936 		{
4937 			NI i;
4938 			NI colontmp_;
4939 			NI res;
4940 			i = (NI)0;
4941 			colontmp_ = (NI)0;
4942 			colontmp_ = (NI)((NI)((*mt).size / (*(*mt).base).size) - ((NI) 1));
4943 			res = ((NI) 0);
4944 			{
4945 				while (1) {
4946 					NI T10_;
4947 					NI T11_;
4948 					if (!(res <= colontmp_)) goto LA9;
4949 					i = res;
4950 					T10_ = (NI)0;
4951 					T10_ = starpercent___system_736(i, (*(*mt).base).size);
4952 					T11_ = (NI)0;
4953 					T11_ = pluspercent___system_696(d, T10_);
4954 					genericReset(((void*) (T11_)), (*mt).base);
4955 					res += ((NI) 1);
4956 				} LA9: ;
4957 			}
4958 		}
4959 	}
4960 	break;
4961 	default:
4962 	{
4963 		zeroMem__system_1724(dest, ((NI) ((*mt).size)));
4964 	}
4965 	break;
4966 	}
4967 }
N_NIMCALL(void,genericResetAux__system_6423)4968 N_LIB_PRIVATE N_NIMCALL(void, genericResetAux__system_6423)(void* dest, TNimNode* n) {
4969 	NI d;
4970 	d = ((NI) (ptrdiff_t) (dest));
4971 	switch ((*n).kind) {
4972 	case ((tyEnum_TNimNodeKind__unfNsxrcATrufDZmpBq4HQ) 0):
4973 	{
4974 	}
4975 	break;
4976 	case ((tyEnum_TNimNodeKind__unfNsxrcATrufDZmpBq4HQ) 1):
4977 	{
4978 		NI T3_;
4979 		T3_ = (NI)0;
4980 		T3_ = pluspercent___system_696(d, (*n).offset);
4981 		genericReset(((void*) (T3_)), (*n).typ);
4982 	}
4983 	break;
4984 	case ((tyEnum_TNimNodeKind__unfNsxrcATrufDZmpBq4HQ) 2):
4985 	{
4986 		{
4987 			NI i;
4988 			NI colontmp_;
4989 			NI res;
4990 			i = (NI)0;
4991 			colontmp_ = (NI)0;
4992 			colontmp_ = (NI)((*n).len - ((NI) 1));
4993 			res = ((NI) 0);
4994 			{
4995 				while (1) {
4996 					if (!(res <= colontmp_)) goto LA7;
4997 					i = res;
4998 					genericResetAux__system_6423(dest, (*n).sons[(i)- 0]);
4999 					res += ((NI) 1);
5000 				} LA7: ;
5001 			}
5002 		}
5003 	}
5004 	break;
5005 	case ((tyEnum_TNimNodeKind__unfNsxrcATrufDZmpBq4HQ) 3):
5006 	{
5007 		TNimNode* m;
5008 		NI T13_;
5009 		m = selectBranch__system_3674(dest, n);
5010 		{
5011 			if (!!((m == ((TNimNode*) NIM_NIL)))) goto LA11_;
5012 			genericResetAux__system_6423(dest, m);
5013 		}
5014 		LA11_: ;
5015 		T13_ = (NI)0;
5016 		T13_ = pluspercent___system_696(d, (*n).offset);
5017 		zeroMem__system_1724(((void*) (T13_)), ((NI) ((*(*n).typ).size)));
5018 	}
5019 	break;
5020 	}
5021 }
N_NIMCALL(void,genericAssignAux__system_6431)5022 N_LIB_PRIVATE N_NIMCALL(void, genericAssignAux__system_6431)(void* dest, void* src, TNimNode* n, NIM_BOOL shallow) {
5023 	NI d;
5024 	NI s;
5025 	d = ((NI) (ptrdiff_t) (dest));
5026 	s = ((NI) (ptrdiff_t) (src));
5027 	switch ((*n).kind) {
5028 	case ((tyEnum_TNimNodeKind__unfNsxrcATrufDZmpBq4HQ) 1):
5029 	{
5030 		NI T2_;
5031 		NI T3_;
5032 		T2_ = (NI)0;
5033 		T2_ = pluspercent___system_696(d, (*n).offset);
5034 		T3_ = (NI)0;
5035 		T3_ = pluspercent___system_696(s, (*n).offset);
5036 		genericAssignAux__system_6426(((void*) (T2_)), ((void*) (T3_)), (*n).typ, shallow);
5037 	}
5038 	break;
5039 	case ((tyEnum_TNimNodeKind__unfNsxrcATrufDZmpBq4HQ) 2):
5040 	{
5041 		{
5042 			NI i;
5043 			NI colontmp_;
5044 			NI res;
5045 			i = (NI)0;
5046 			colontmp_ = (NI)0;
5047 			colontmp_ = (NI)((*n).len - ((NI) 1));
5048 			res = ((NI) 0);
5049 			{
5050 				while (1) {
5051 					if (!(res <= colontmp_)) goto LA7;
5052 					i = res;
5053 					genericAssignAux__system_6431(dest, src, (*n).sons[(i)- 0], shallow);
5054 					res += ((NI) 1);
5055 				} LA7: ;
5056 			}
5057 		}
5058 	}
5059 	break;
5060 	case ((tyEnum_TNimNodeKind__unfNsxrcATrufDZmpBq4HQ) 3):
5061 	{
5062 		TNimNode* dd;
5063 		TNimNode* m;
5064 		NI T15_;
5065 		NI T16_;
5066 		dd = selectBranch__system_3674(dest, n);
5067 		m = selectBranch__system_3674(src, n);
5068 		{
5069 			NIM_BOOL T11_;
5070 			T11_ = (NIM_BOOL)0;
5071 			T11_ = !((m == dd));
5072 			if (!(T11_)) goto LA12_;
5073 			T11_ = !((dd == ((TNimNode*) NIM_NIL)));
5074 			LA12_: ;
5075 			if (!T11_) goto LA13_;
5076 			genericResetAux__system_6423(dest, dd);
5077 		}
5078 		LA13_: ;
5079 		T15_ = (NI)0;
5080 		T15_ = pluspercent___system_696(d, (*n).offset);
5081 		T16_ = (NI)0;
5082 		T16_ = pluspercent___system_696(s, (*n).offset);
5083 		copyMem__system_1727(((void*) (T15_)), ((void*) (T16_)), ((NI) ((*(*n).typ).size)));
5084 		{
5085 			if (!!((m == ((TNimNode*) NIM_NIL)))) goto LA19_;
5086 			genericAssignAux__system_6431(dest, src, m, shallow);
5087 		}
5088 		LA19_: ;
5089 	}
5090 	break;
5091 	case ((tyEnum_TNimNodeKind__unfNsxrcATrufDZmpBq4HQ) 0):
5092 	{
5093 	}
5094 	break;
5095 	}
5096 }
N_NIMCALL(void,Marker_tyRef__C0A9bPZSVeyr2BWpBf4Jxqw)5097 static N_NIMCALL(void, Marker_tyRef__C0A9bPZSVeyr2BWpBf4Jxqw)(void* p, NI op) {
5098 	tyObject_ObjectAssignmentDefect__6toVe0IizlEwN9bORXEdX3g* a;
5099 	a = (tyObject_ObjectAssignmentDefect__6toVe0IizlEwN9bORXEdX3g*)p;
5100 	nimGCvisit((void*)(*a).Sup.Sup.parent, op);
5101 	nimGCvisit((void*)(*a).Sup.Sup.message, op);
5102 	nimGCvisit((void*)(*a).Sup.Sup.trace, op);
5103 	nimGCvisit((void*)(*a).Sup.Sup.up, op);
5104 }
N_INLINE(void,sysFatal__system_3290)5105 static N_INLINE(void, sysFatal__system_3290)(NimStringDesc* message) {
5106 	tyObject_ObjectAssignmentDefect__6toVe0IizlEwN9bORXEdX3g* T1_;
5107 	NimStringDesc* T2_;
5108 	T1_ = NIM_NIL;
5109 	T1_ = (tyObject_ObjectAssignmentDefect__6toVe0IizlEwN9bORXEdX3g*) newObj((&NTIrefobjectassignmentdefect__C0A9bPZSVeyr2BWpBf4Jxqw_), sizeof(tyObject_ObjectAssignmentDefect__6toVe0IizlEwN9bORXEdX3g));
5110 	(*T1_).Sup.Sup.Sup.m_type = (&NTIobjectassignmentdefect__6toVe0IizlEwN9bORXEdX3g_);
5111 	(*T1_).Sup.Sup.name = "ObjectAssignmentDefect";
5112 	T2_ = NIM_NIL;
5113 	T2_ = (*T1_).Sup.Sup.message; (*T1_).Sup.Sup.message = copyStringRC1(message);
5114 	if (T2_) nimGCunrefNoCycle(T2_);
5115 	raiseExceptionEx((Exception*)T1_, "ObjectAssignmentDefect", "sysFatal", "fatal.nim", 53);
5116 }
N_INLINE(void,chckObjAsgn)5117 static N_INLINE(void, chckObjAsgn)(TNimType* a, TNimType* b) {
5118 	{
5119 		if (!!((a == b))) goto LA3_;
5120 		sysFatal__system_3290(((NimStringDesc*) &TM__Q5wkpxktOdTGvlSRo9bzt9aw_21));
5121 	}
5122 	LA3_: ;
5123 }
N_NIMCALL(void,genericAssignAux__system_6426)5124 N_LIB_PRIVATE N_NIMCALL(void, genericAssignAux__system_6426)(void* dest, void* src, TNimType* mt, NIM_BOOL shallow) {
5125 	NI d;
5126 	NI s;
5127 {	d = ((NI) (ptrdiff_t) (dest));
5128 	s = ((NI) (ptrdiff_t) (src));
5129 	switch ((*mt).kind) {
5130 	case ((tyEnum_TNimKind__jIBKr1ejBgsfM33Kxw4j7A) 28):
5131 	{
5132 		void** x;
5133 		void* s2;
5134 		x = ((void**) (dest));
5135 		s2 = (*((void**) (s)));
5136 		{
5137 			NIM_BOOL T4_;
5138 			NIM_BOOL T5_;
5139 			T4_ = (NIM_BOOL)0;
5140 			T5_ = (NIM_BOOL)0;
5141 			T5_ = (s2 == NIM_NIL);
5142 			if (T5_) goto LA6_;
5143 			T5_ = shallow;
5144 			LA6_: ;
5145 			T4_ = T5_;
5146 			if (T4_) goto LA7_;
5147 			T4_ = !(((NI)((*((TGenericSeq*) (s2))).reserved & ((NI) (-2147483647 -1))) == ((NI) 0)));
5148 			LA7_: ;
5149 			if (!T4_) goto LA8_;
5150 			unsureAsgnRef(x, s2);
5151 		}
5152 		goto LA2_;
5153 		LA8_: ;
5154 		{
5155 			NimStringDesc* T11_;
5156 			T11_ = (NimStringDesc*)0;
5157 			T11_ = copyString(((NimStringDesc*) (s2)));
5158 			unsureAsgnRef(x, ((void*) (T11_)));
5159 		}
5160 		LA2_: ;
5161 	}
5162 	break;
5163 	case ((tyEnum_TNimKind__jIBKr1ejBgsfM33Kxw4j7A) 24):
5164 	{
5165 		void* s2_2;
5166 		TGenericSeq* seq;
5167 		void** x_2;
5168 		s2_2 = (*((void**) (src)));
5169 		seq = ((TGenericSeq*) (s2_2));
5170 		x_2 = ((void**) (dest));
5171 		{
5172 			NIM_BOOL T15_;
5173 			NIM_BOOL T16_;
5174 			T15_ = (NIM_BOOL)0;
5175 			T16_ = (NIM_BOOL)0;
5176 			T16_ = (s2_2 == NIM_NIL);
5177 			if (T16_) goto LA17_;
5178 			T16_ = shallow;
5179 			LA17_: ;
5180 			T15_ = T16_;
5181 			if (T15_) goto LA18_;
5182 			T15_ = !(((NI)((*seq).reserved & ((NI) (-2147483647 -1))) == ((NI) 0)));
5183 			LA18_: ;
5184 			if (!T15_) goto LA19_;
5185 			unsureAsgnRef(x_2, s2_2);
5186 			goto BeforeRet_;
5187 		}
5188 		LA19_: ;
5189 		{
5190 			void* ss;
5191 			NI dst;
5192 			NI T25_;
5193 			NI T26_;
5194 			NI T27_;
5195 			NI T28_;
5196 			NI T29_;
5197 			if (!(((*(*mt).base).flags &((NU8)1<<((NU)(((tyEnum_TNimTypeFlag__v8QUszD1sWlSIWZz7mC4bQ) 0))&7U)))!=0)) goto LA23_;
5198 			ss = nimNewSeqOfCap(mt, (*seq).len);
5199 			(*((TGenericSeq*) (ss))).len = (*seq).len;
5200 			unsureAsgnRef(x_2, ss);
5201 			dst = ((NI) (ptrdiff_t) ((*((void**) (dest)))));
5202 			T25_ = (NI)0;
5203 			T25_ = align__system_1624(((NI) 8), (*(*mt).base).align);
5204 			T26_ = (NI)0;
5205 			T26_ = pluspercent___system_696(dst, T25_);
5206 			T27_ = (NI)0;
5207 			T27_ = align__system_1624(((NI) 8), (*(*mt).base).align);
5208 			T28_ = (NI)0;
5209 			T28_ = pluspercent___system_696(((NI) (ptrdiff_t) (s2_2)), T27_);
5210 			T29_ = (NI)0;
5211 			T29_ = starpercent___system_736((*seq).len, (*(*mt).base).size);
5212 			copyMem__system_1727(((void*) (T26_)), ((void*) (T28_)), ((NI) (T29_)));
5213 		}
5214 		goto LA21_;
5215 		LA23_: ;
5216 		{
5217 			void* T31_;
5218 			NI dst_2;
5219 			T31_ = (void*)0;
5220 			T31_ = newSeq(mt, (*seq).len);
5221 			unsureAsgnRef(x_2, T31_);
5222 			dst_2 = ((NI) (ptrdiff_t) ((*((void**) (dest)))));
5223 			{
5224 				NI i;
5225 				NI colontmp_;
5226 				NI res;
5227 				i = (NI)0;
5228 				colontmp_ = (NI)0;
5229 				colontmp_ = (NI)((*seq).len - ((NI) 1));
5230 				res = ((NI) 0);
5231 				{
5232 					while (1) {
5233 						NI T35_;
5234 						NI T36_;
5235 						NI T37_;
5236 						NI T38_;
5237 						NI T39_;
5238 						NI T40_;
5239 						NI T41_;
5240 						NI T42_;
5241 						if (!(res <= colontmp_)) goto LA34;
5242 						i = res;
5243 						T35_ = (NI)0;
5244 						T35_ = align__system_1624(((NI) 8), (*(*mt).base).align);
5245 						T36_ = (NI)0;
5246 						T36_ = pluspercent___system_696(dst_2, T35_);
5247 						T37_ = (NI)0;
5248 						T37_ = starpercent___system_736(i, (*(*mt).base).size);
5249 						T38_ = (NI)0;
5250 						T38_ = pluspercent___system_696(T36_, T37_);
5251 						T39_ = (NI)0;
5252 						T39_ = align__system_1624(((NI) 8), (*(*mt).base).align);
5253 						T40_ = (NI)0;
5254 						T40_ = pluspercent___system_696(((NI) (ptrdiff_t) (s2_2)), T39_);
5255 						T41_ = (NI)0;
5256 						T41_ = starpercent___system_736(i, (*(*mt).base).size);
5257 						T42_ = (NI)0;
5258 						T42_ = pluspercent___system_696(T40_, T41_);
5259 						genericAssignAux__system_6426(((void*) (T38_)), ((void*) (T42_)), (*mt).base, shallow);
5260 						res += ((NI) 1);
5261 					} LA34: ;
5262 				}
5263 			}
5264 		}
5265 		LA21_: ;
5266 	}
5267 	break;
5268 	case ((tyEnum_TNimKind__jIBKr1ejBgsfM33Kxw4j7A) 17):
5269 	{
5270 		TNimType* it;
5271 		TNimType** pint;
5272 		TNimType* srcType;
5273 		it = (*mt).base;
5274 		{
5275 			while (1) {
5276 				if (!!((it == ((TNimType*) NIM_NIL)))) goto LA45;
5277 				genericAssignAux__system_6431(dest, src, (*it).node, shallow);
5278 				it = (*it).base;
5279 			} LA45: ;
5280 		}
5281 		genericAssignAux__system_6431(dest, src, (*mt).node, shallow);
5282 		pint = ((TNimType**) (dest));
5283 		srcType = (*((TNimType**) (src)));
5284 		{
5285 			if (!!((srcType == ((TNimType*) NIM_NIL)))) goto LA48_;
5286 			chckObjAsgn(srcType, mt);
5287 		}
5288 		LA48_: ;
5289 		(*pint) = mt;
5290 	}
5291 	break;
5292 	case ((tyEnum_TNimKind__jIBKr1ejBgsfM33Kxw4j7A) 18):
5293 	{
5294 		genericAssignAux__system_6431(dest, src, (*mt).node, shallow);
5295 	}
5296 	break;
5297 	case ((tyEnum_TNimKind__jIBKr1ejBgsfM33Kxw4j7A) 16):
5298 	case ((tyEnum_TNimKind__jIBKr1ejBgsfM33Kxw4j7A) 4):
5299 	{
5300 		{
5301 			NI i_2;
5302 			NI colontmp__2;
5303 			NI res_2;
5304 			i_2 = (NI)0;
5305 			colontmp__2 = (NI)0;
5306 			colontmp__2 = (NI)((NI)((*mt).size / (*(*mt).base).size) - ((NI) 1));
5307 			res_2 = ((NI) 0);
5308 			{
5309 				while (1) {
5310 					NI T55_;
5311 					NI T56_;
5312 					NI T57_;
5313 					NI T58_;
5314 					if (!(res_2 <= colontmp__2)) goto LA54;
5315 					i_2 = res_2;
5316 					T55_ = (NI)0;
5317 					T55_ = starpercent___system_736(i_2, (*(*mt).base).size);
5318 					T56_ = (NI)0;
5319 					T56_ = pluspercent___system_696(d, T55_);
5320 					T57_ = (NI)0;
5321 					T57_ = starpercent___system_736(i_2, (*(*mt).base).size);
5322 					T58_ = (NI)0;
5323 					T58_ = pluspercent___system_696(s, T57_);
5324 					genericAssignAux__system_6426(((void*) (T56_)), ((void*) (T58_)), (*mt).base, shallow);
5325 					res_2 += ((NI) 1);
5326 				} LA54: ;
5327 			}
5328 		}
5329 	}
5330 	break;
5331 	case ((tyEnum_TNimKind__jIBKr1ejBgsfM33Kxw4j7A) 22):
5332 	{
5333 		unsureAsgnRef(((void**) (dest)), (*((void**) (s))));
5334 	}
5335 	break;
5336 	default:
5337 	{
5338 		copyMem__system_1727(dest, src, ((NI) ((*mt).size)));
5339 	}
5340 	break;
5341 	}
5342 	}BeforeRet_: ;
5343 }
N_NIMCALL(void,genericAssign)5344 N_LIB_PRIVATE N_NIMCALL(void, genericAssign)(void* dest, void* src, TNimType* mt) {
5345 	genericAssignAux__system_6426(dest, src, mt, NIM_FALSE);
5346 }
N_NIMCALL(void,genericSeqAssign)5347 N_LIB_PRIVATE N_NIMCALL(void, genericSeqAssign)(void* dest, void* src, TNimType* mt) {
5348 	void* src_2;
5349 	src_2 = src;
5350 	genericAssign(dest, ((void*) ((&src_2))), mt);
5351 }
N_NIMCALL(void,Marker_tyRef__RJnHOb9cQV3neNC9cDkRgMyw)5352 static N_NIMCALL(void, Marker_tyRef__RJnHOb9cQV3neNC9cDkRgMyw)(void* p, NI op) {
5353 	tyObject_IndexDefect__n6tGEPHKkh7E1AP9bj30WrQ* a;
5354 	a = (tyObject_IndexDefect__n6tGEPHKkh7E1AP9bj30WrQ*)p;
5355 	nimGCvisit((void*)(*a).Sup.Sup.parent, op);
5356 	nimGCvisit((void*)(*a).Sup.Sup.message, op);
5357 	nimGCvisit((void*)(*a).Sup.Sup.trace, op);
5358 	nimGCvisit((void*)(*a).Sup.Sup.up, op);
5359 }
N_NIMCALL(NimStringDesc *,substr__system_7776)5360 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, substr__system_7776)(NimStringDesc* s, NI first) {
5361 	NimStringDesc* result;
5362 	result = NIM_NIL;
5363 	result = substr__system_7764(s, first, ((s ? s->Sup.len : 0)-1));
5364 	return result;
5365 }
N_NIMCALL(NI,hashString)5366 N_LIB_PRIVATE N_NIMCALL(NI, hashString)(NimStringDesc* s) {
5367 	NI result;
5368 	NU h;
5369 	result = (NI)0;
5370 	h = ((NU) 0);
5371 	{
5372 		NI i;
5373 		NI colontmp_;
5374 		NI res;
5375 		i = (NI)0;
5376 		colontmp_ = (NI)0;
5377 		colontmp_ = (NI)((s ? s->Sup.len : 0) - ((NI) 1));
5378 		res = ((NI) 0);
5379 		{
5380 			while (1) {
5381 				if (!(res <= colontmp_)) goto LA3;
5382 				i = res;
5383 				h = (NU)((NU32)(h) + (NU32)(((NU) (((NU8)(s->data[i]))))));
5384 				h = (NU)((NU32)(h) + (NU32)((NU)((NU32)(h) << (NU32)(((NI) 10)))));
5385 				h = (NU)(h ^ (NU)((NU32)(h) >> (NU32)(((NI) 6))));
5386 				res += ((NI) 1);
5387 			} LA3: ;
5388 		}
5389 	}
5390 	h = (NU)((NU32)(h) + (NU32)((NU)((NU32)(h) << (NU32)(((NI) 3)))));
5391 	h = (NU)(h ^ (NU)((NU32)(h) >> (NU32)(((NI) 11))));
5392 	h = (NU)((NU32)(h) + (NU32)((NU)((NU32)(h) << (NU32)(((NI) 15)))));
5393 	result = ((NI) (h));
5394 	return result;
5395 }
N_NIMCALL(void,Marker_tyRef__Ie1m0dv1ZHg72IgPRr1cDw)5396 static N_NIMCALL(void, Marker_tyRef__Ie1m0dv1ZHg72IgPRr1cDw)(void* p, NI op) {
5397 	tyObject_ValueError__yoNlBGx0D2tRizIdhQuENw* a;
5398 	a = (tyObject_ValueError__yoNlBGx0D2tRizIdhQuENw*)p;
5399 	nimGCvisit((void*)(*a).Sup.Sup.parent, op);
5400 	nimGCvisit((void*)(*a).Sup.Sup.message, op);
5401 	nimGCvisit((void*)(*a).Sup.Sup.trace, op);
5402 	nimGCvisit((void*)(*a).Sup.Sup.up, op);
5403 }
N_INLINE(int,nimCmpMem)5404 static N_INLINE(int, nimCmpMem)(void* a, void* b, NI size) {
5405 	int result;
5406 	result = (int)0;
5407 	result = memcmp(a, b, ((size_t) (size)));
5408 	return result;
5409 }
N_NIMCALL(NI,cmp__system_1549)5410 N_LIB_PRIVATE N_NIMCALL(NI, cmp__system_1549)(NimStringDesc* x, NimStringDesc* y) {
5411 	NI result;
5412 	NI minlen;
5413 	int T1_;
5414 	result = (NI)0;
5415 	minlen = (((x ? x->Sup.len : 0) <= (y ? y->Sup.len : 0)) ? (x ? x->Sup.len : 0) : (y ? y->Sup.len : 0));
5416 	T1_ = (int)0;
5417 	T1_ = nimCmpMem(((void*) (nimToCStringConv(x))), ((void*) (nimToCStringConv(y))), ((NI) (((size_t) (minlen)))));
5418 	result = ((NI) (T1_));
5419 	{
5420 		if (!(result == ((NI) 0))) goto LA4_;
5421 		result = (NI)((x ? x->Sup.len : 0) - (y ? y->Sup.len : 0));
5422 	}
5423 	LA4_: ;
5424 	return result;
5425 }
N_NIMCALL(void,Marker_tyRef__9clYsYwyjCqe2PFTuCI3Ubg)5426 static N_NIMCALL(void, Marker_tyRef__9clYsYwyjCqe2PFTuCI3Ubg)(void* p, NI op) {
5427 	tyObject_OSError__BeJgrOdDsczOwEWOZbRfKA* a;
5428 	a = (tyObject_OSError__BeJgrOdDsczOwEWOZbRfKA*)p;
5429 	nimGCvisit((void*)(*a).Sup.Sup.parent, op);
5430 	nimGCvisit((void*)(*a).Sup.Sup.message, op);
5431 	nimGCvisit((void*)(*a).Sup.Sup.trace, op);
5432 	nimGCvisit((void*)(*a).Sup.Sup.up, op);
5433 }
N_NIMCALL(void,nimLeaveFinally)5434 N_LIB_PRIVATE N_NIMCALL(void, nimLeaveFinally)(void) {
5435 	{
5436 		if (!!((excHandler__system_2565 == ((TSafePoint*) NIM_NIL)))) goto LA3_;
5437 		_longjmp((*excHandler__system_2565).context, ((int) 1));
5438 	}
5439 	goto LA1_;
5440 	LA3_: ;
5441 	{
5442 		reportUnhandledError__system_2855(currException__system_2566);
5443 		exit(((NI) 1));
5444 	}
5445 	LA1_: ;
5446 }
N_NIMCALL(void,Marker_tyRef__HMIVdYjdZYWskTmTQVo5BQ)5447 static N_NIMCALL(void, Marker_tyRef__HMIVdYjdZYWskTmTQVo5BQ)(void* p, NI op) {
5448 	tyObject_IOError__iLZrPn9anoh9ad1MmO0RczFw* a;
5449 	a = (tyObject_IOError__iLZrPn9anoh9ad1MmO0RczFw*)p;
5450 	nimGCvisit((void*)(*a).Sup.Sup.parent, op);
5451 	nimGCvisit((void*)(*a).Sup.Sup.message, op);
5452 	nimGCvisit((void*)(*a).Sup.Sup.trace, op);
5453 	nimGCvisit((void*)(*a).Sup.Sup.up, op);
5454 }
N_NIMCALL(NIM_BOOL,isObj)5455 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isObj)(TNimType* obj, TNimType* subclass) {
5456 	NIM_BOOL result;
5457 	TNimType* x;
5458 {	result = (NIM_BOOL)0;
5459 	x = obj;
5460 	{
5461 		if (!(x == subclass)) goto LA3_;
5462 		result = NIM_TRUE;
5463 		goto BeforeRet_;
5464 	}
5465 	LA3_: ;
5466 	{
5467 		while (1) {
5468 			if (!!((x == subclass))) goto LA6;
5469 			{
5470 				if (!(x == ((TNimType*) NIM_NIL))) goto LA9_;
5471 				result = NIM_FALSE;
5472 				goto BeforeRet_;
5473 			}
5474 			LA9_: ;
5475 			x = (*x).base;
5476 		} LA6: ;
5477 	}
5478 	result = NIM_TRUE;
5479 	goto BeforeRet_;
5480 	}BeforeRet_: ;
5481 	return result;
5482 }
N_NIMCALL(void,quit__system_7194)5483 N_LIB_PRIVATE N_NIMCALL(void, quit__system_7194)(NimStringDesc* errormsg, NI errorcode) {
5484 	rawWrite(stderr, nimToCStringConv(errormsg));
5485 	rawWrite(stderr, "\012");
5486 	exit(errorcode);
5487 }
N_NIMCALL(NIM_BOOL,stackTraceAvailable__system_2747)5488 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, stackTraceAvailable__system_2747)(void) {
5489 	NIM_BOOL result;
5490 	result = (NIM_BOOL)0;
5491 	result = NIM_FALSE;
5492 	return result;
5493 }
N_INLINE(void,showErrorMessage2__system_2544)5494 static N_INLINE(void, showErrorMessage2__system_2544)(NimStringDesc* data) {
5495 	showErrorMessage__system_2536(nimToCStringConv(data), (data ? data->Sup.len : 0));
5496 }
N_NIMCALL(void,writeStackTrace__system_2161)5497 N_LIB_PRIVATE N_NIMCALL(void, writeStackTrace__system_2161)(void) {
5498 	NimStringDesc* s;
5499 	s = copyString(((NimStringDesc*) &TM__Q5wkpxktOdTGvlSRo9bzt9aw_22));
5500 	showErrorMessage2__system_2544(s);
5501 }
N_NIMCALL(void,Marker_tyRef__LEclZrWX2FQAodlapxGITw)5502 static N_NIMCALL(void, Marker_tyRef__LEclZrWX2FQAodlapxGITw)(void* p, NI op) {
5503 	tyObject_EOFError__KGSY1JdrNB7Xi8KDhXFhSg* a;
5504 	a = (tyObject_EOFError__KGSY1JdrNB7Xi8KDhXFhSg*)p;
5505 	nimGCvisit((void*)(*a).Sup.Sup.Sup.parent, op);
5506 	nimGCvisit((void*)(*a).Sup.Sup.Sup.message, op);
5507 	nimGCvisit((void*)(*a).Sup.Sup.Sup.trace, op);
5508 	nimGCvisit((void*)(*a).Sup.Sup.Sup.up, op);
5509 }
N_NIMCALL(void,Marker_tyRef__0vJvi4uHbxjbxlkkX7P1EA)5510 static N_NIMCALL(void, Marker_tyRef__0vJvi4uHbxjbxlkkX7P1EA)(void* p, NI op) {
5511 	RootObj* a;
5512 	a = (RootObj*)p;
5513 }
N_NIMCALL(NI,nimParseBiggestFloat)5514 N_LIB_PRIVATE N_NIMCALL(NI, nimParseBiggestFloat)(NimStringDesc* s, NF* number, NI start) {
5515 	NI result;
5516 	NI i;
5517 	NF sign;
5518 	NI kdigits;
5519 	NI fdigits;
5520 	NI exponent;
5521 	NU64 integer;
5522 	NI fracExponent;
5523 	NI expSign;
5524 	NI firstDigit;
5525 	NIM_BOOL hasSign;
5526 	NI realExponent;
5527 	NIM_BOOL expNegative;
5528 	NI absExponent;
5529 	NI digits;
5530 	tyArray__PGLh8drTnaWr3s1qUUSq2Q t;
5531 	NI ti;
5532 	NI maxlen;
5533 	NI endPos;
5534 {	result = (NI)0;
5535 	i = start;
5536 	sign = 1.0;
5537 	kdigits = ((NI) 0);
5538 	fdigits = ((NI) 0);
5539 	exponent = ((NI) 0);
5540 	integer = 0ULL;
5541 	fracExponent = ((NI) 0);
5542 	expSign = ((NI) 1);
5543 	firstDigit = ((NI) -1);
5544 	hasSign = NIM_FALSE;
5545 	{
5546 		NIM_BOOL T3_;
5547 		NIM_BOOL T5_;
5548 		T3_ = (NIM_BOOL)0;
5549 		T3_ = (i < (s ? s->Sup.len : 0));
5550 		if (!(T3_)) goto LA4_;
5551 		T5_ = (NIM_BOOL)0;
5552 		T5_ = ((NU8)(s->data[i]) == (NU8)(43));
5553 		if (T5_) goto LA6_;
5554 		T5_ = ((NU8)(s->data[i]) == (NU8)(45));
5555 		LA6_: ;
5556 		T3_ = T5_;
5557 		LA4_: ;
5558 		if (!T3_) goto LA7_;
5559 		hasSign = NIM_TRUE;
5560 		{
5561 			if (!((NU8)(s->data[i]) == (NU8)(45))) goto LA11_;
5562 			sign = -1.0;
5563 		}
5564 		LA11_: ;
5565 		i += ((NI) 1);
5566 	}
5567 	LA7_: ;
5568 	{
5569 		NIM_BOOL T15_;
5570 		NIM_BOOL T17_;
5571 		T15_ = (NIM_BOOL)0;
5572 		T15_ = ((NI)(i + ((NI) 2)) < (s ? s->Sup.len : 0));
5573 		if (!(T15_)) goto LA16_;
5574 		T17_ = (NIM_BOOL)0;
5575 		T17_ = ((NU8)(s->data[i]) == (NU8)(78));
5576 		if (T17_) goto LA18_;
5577 		T17_ = ((NU8)(s->data[i]) == (NU8)(110));
5578 		LA18_: ;
5579 		T15_ = T17_;
5580 		LA16_: ;
5581 		if (!T15_) goto LA19_;
5582 		{
5583 			NIM_BOOL T23_;
5584 			T23_ = (NIM_BOOL)0;
5585 			T23_ = ((NU8)(s->data[(NI)(i + ((NI) 1))]) == (NU8)(65));
5586 			if (T23_) goto LA24_;
5587 			T23_ = ((NU8)(s->data[(NI)(i + ((NI) 1))]) == (NU8)(97));
5588 			LA24_: ;
5589 			if (!T23_) goto LA25_;
5590 			{
5591 				NIM_BOOL T29_;
5592 				T29_ = (NIM_BOOL)0;
5593 				T29_ = ((NU8)(s->data[(NI)(i + ((NI) 2))]) == (NU8)(78));
5594 				if (T29_) goto LA30_;
5595 				T29_ = ((NU8)(s->data[(NI)(i + ((NI) 2))]) == (NU8)(110));
5596 				LA30_: ;
5597 				if (!T29_) goto LA31_;
5598 				{
5599 					NIM_BOOL T35_;
5600 					T35_ = (NIM_BOOL)0;
5601 					T35_ = ((s ? s->Sup.len : 0) <= (NI)(i + ((NI) 3)));
5602 					if (T35_) goto LA36_;
5603 					T35_ = !((((NU8)(s->data[(NI)(i + ((NI) 3))])) >= ((NU8)(97)) && ((NU8)(s->data[(NI)(i + ((NI) 3))])) <= ((NU8)(122)) || ((NU8)(s->data[(NI)(i + ((NI) 3))])) >= ((NU8)(65)) && ((NU8)(s->data[(NI)(i + ((NI) 3))])) <= ((NU8)(90)) || ((NU8)(s->data[(NI)(i + ((NI) 3))])) >= ((NU8)(48)) && ((NU8)(s->data[(NI)(i + ((NI) 3))])) <= ((NU8)(57)) || ((NU8)(s->data[(NI)(i + ((NI) 3))])) == ((NU8)(95))));
5604 					LA36_: ;
5605 					if (!T35_) goto LA37_;
5606 					(*number) = NAN;
5607 					result = (NI)((NI)(i + ((NI) 3)) - start);
5608 					goto BeforeRet_;
5609 				}
5610 				LA37_: ;
5611 			}
5612 			LA31_: ;
5613 		}
5614 		LA25_: ;
5615 		result = ((NI) 0);
5616 		goto BeforeRet_;
5617 	}
5618 	LA19_: ;
5619 	{
5620 		NIM_BOOL T41_;
5621 		NIM_BOOL T43_;
5622 		T41_ = (NIM_BOOL)0;
5623 		T41_ = ((NI)(i + ((NI) 2)) < (s ? s->Sup.len : 0));
5624 		if (!(T41_)) goto LA42_;
5625 		T43_ = (NIM_BOOL)0;
5626 		T43_ = ((NU8)(s->data[i]) == (NU8)(73));
5627 		if (T43_) goto LA44_;
5628 		T43_ = ((NU8)(s->data[i]) == (NU8)(105));
5629 		LA44_: ;
5630 		T41_ = T43_;
5631 		LA42_: ;
5632 		if (!T41_) goto LA45_;
5633 		{
5634 			NIM_BOOL T49_;
5635 			T49_ = (NIM_BOOL)0;
5636 			T49_ = ((NU8)(s->data[(NI)(i + ((NI) 1))]) == (NU8)(78));
5637 			if (T49_) goto LA50_;
5638 			T49_ = ((NU8)(s->data[(NI)(i + ((NI) 1))]) == (NU8)(110));
5639 			LA50_: ;
5640 			if (!T49_) goto LA51_;
5641 			{
5642 				NIM_BOOL T55_;
5643 				T55_ = (NIM_BOOL)0;
5644 				T55_ = ((NU8)(s->data[(NI)(i + ((NI) 2))]) == (NU8)(70));
5645 				if (T55_) goto LA56_;
5646 				T55_ = ((NU8)(s->data[(NI)(i + ((NI) 2))]) == (NU8)(102));
5647 				LA56_: ;
5648 				if (!T55_) goto LA57_;
5649 				{
5650 					NIM_BOOL T61_;
5651 					T61_ = (NIM_BOOL)0;
5652 					T61_ = ((s ? s->Sup.len : 0) <= (NI)(i + ((NI) 3)));
5653 					if (T61_) goto LA62_;
5654 					T61_ = !((((NU8)(s->data[(NI)(i + ((NI) 3))])) >= ((NU8)(97)) && ((NU8)(s->data[(NI)(i + ((NI) 3))])) <= ((NU8)(122)) || ((NU8)(s->data[(NI)(i + ((NI) 3))])) >= ((NU8)(65)) && ((NU8)(s->data[(NI)(i + ((NI) 3))])) <= ((NU8)(90)) || ((NU8)(s->data[(NI)(i + ((NI) 3))])) >= ((NU8)(48)) && ((NU8)(s->data[(NI)(i + ((NI) 3))])) <= ((NU8)(57)) || ((NU8)(s->data[(NI)(i + ((NI) 3))])) == ((NU8)(95))));
5655 					LA62_: ;
5656 					if (!T61_) goto LA63_;
5657 					(*number) = ((NF)(INF) * (NF)(sign));
5658 					result = (NI)((NI)(i + ((NI) 3)) - start);
5659 					goto BeforeRet_;
5660 				}
5661 				LA63_: ;
5662 			}
5663 			LA57_: ;
5664 		}
5665 		LA51_: ;
5666 		result = ((NI) 0);
5667 		goto BeforeRet_;
5668 	}
5669 	LA45_: ;
5670 	{
5671 		NIM_BOOL T67_;
5672 		T67_ = (NIM_BOOL)0;
5673 		T67_ = (i < (s ? s->Sup.len : 0));
5674 		if (!(T67_)) goto LA68_;
5675 		T67_ = (((NU8)(s->data[i])) >= ((NU8)(48)) && ((NU8)(s->data[i])) <= ((NU8)(57)));
5676 		LA68_: ;
5677 		if (!T67_) goto LA69_;
5678 		firstDigit = (NI)(((NU8)(s->data[i])) - ((NI) 48));
5679 	}
5680 	LA69_: ;
5681 	{
5682 		while (1) {
5683 			NIM_BOOL T73_;
5684 			T73_ = (NIM_BOOL)0;
5685 			T73_ = (i < (s ? s->Sup.len : 0));
5686 			if (!(T73_)) goto LA74_;
5687 			T73_ = (((NU8)(s->data[i])) >= ((NU8)(48)) && ((NU8)(s->data[i])) <= ((NU8)(57)));
5688 			LA74_: ;
5689 			if (!T73_) goto LA72;
5690 			kdigits += ((NI) 1);
5691 			integer = (NU64)((NU64)((NU64)((NU64)(integer) * (NU64)(10ULL))) + (NU64)(((NU64) ((NI)(((NU8)(s->data[i])) - ((NI) 48))))));
5692 			i += ((NI) 1);
5693 			{
5694 				while (1) {
5695 					NIM_BOOL T77_;
5696 					T77_ = (NIM_BOOL)0;
5697 					T77_ = (i < (s ? s->Sup.len : 0));
5698 					if (!(T77_)) goto LA78_;
5699 					T77_ = ((NU8)(s->data[i]) == (NU8)(95));
5700 					LA78_: ;
5701 					if (!T77_) goto LA76;
5702 					i += ((NI) 1);
5703 				} LA76: ;
5704 			}
5705 		} LA72: ;
5706 	}
5707 	{
5708 		NIM_BOOL T81_;
5709 		T81_ = (NIM_BOOL)0;
5710 		T81_ = (i < (s ? s->Sup.len : 0));
5711 		if (!(T81_)) goto LA82_;
5712 		T81_ = ((NU8)(s->data[i]) == (NU8)(46));
5713 		LA82_: ;
5714 		if (!T81_) goto LA83_;
5715 		i += ((NI) 1);
5716 		{
5717 			if (!(kdigits <= ((NI) 0))) goto LA87_;
5718 			{
5719 				while (1) {
5720 					NIM_BOOL T91_;
5721 					T91_ = (NIM_BOOL)0;
5722 					T91_ = (i < (s ? s->Sup.len : 0));
5723 					if (!(T91_)) goto LA92_;
5724 					T91_ = ((NU8)(s->data[i]) == (NU8)(48));
5725 					LA92_: ;
5726 					if (!T91_) goto LA90;
5727 					fracExponent += ((NI) 1);
5728 					i += ((NI) 1);
5729 					{
5730 						while (1) {
5731 							NIM_BOOL T95_;
5732 							T95_ = (NIM_BOOL)0;
5733 							T95_ = (i < (s ? s->Sup.len : 0));
5734 							if (!(T95_)) goto LA96_;
5735 							T95_ = ((NU8)(s->data[i]) == (NU8)(95));
5736 							LA96_: ;
5737 							if (!T95_) goto LA94;
5738 							i += ((NI) 1);
5739 						} LA94: ;
5740 					}
5741 				} LA90: ;
5742 			}
5743 		}
5744 		LA87_: ;
5745 		{
5746 			NIM_BOOL T99_;
5747 			NIM_BOOL T100_;
5748 			T99_ = (NIM_BOOL)0;
5749 			T100_ = (NIM_BOOL)0;
5750 			T100_ = (firstDigit == ((NI) -1));
5751 			if (!(T100_)) goto LA101_;
5752 			T100_ = (i < (s ? s->Sup.len : 0));
5753 			LA101_: ;
5754 			T99_ = T100_;
5755 			if (!(T99_)) goto LA102_;
5756 			T99_ = (((NU8)(s->data[i])) >= ((NU8)(48)) && ((NU8)(s->data[i])) <= ((NU8)(57)));
5757 			LA102_: ;
5758 			if (!T99_) goto LA103_;
5759 			firstDigit = (NI)(((NU8)(s->data[i])) - ((NI) 48));
5760 		}
5761 		LA103_: ;
5762 		{
5763 			while (1) {
5764 				NIM_BOOL T107_;
5765 				T107_ = (NIM_BOOL)0;
5766 				T107_ = (i < (s ? s->Sup.len : 0));
5767 				if (!(T107_)) goto LA108_;
5768 				T107_ = (((NU8)(s->data[i])) >= ((NU8)(48)) && ((NU8)(s->data[i])) <= ((NU8)(57)));
5769 				LA108_: ;
5770 				if (!T107_) goto LA106;
5771 				fdigits += ((NI) 1);
5772 				fracExponent += ((NI) 1);
5773 				integer = (NU64)((NU64)((NU64)((NU64)(integer) * (NU64)(10ULL))) + (NU64)(((NU64) ((NI)(((NU8)(s->data[i])) - ((NI) 48))))));
5774 				i += ((NI) 1);
5775 				{
5776 					while (1) {
5777 						NIM_BOOL T111_;
5778 						T111_ = (NIM_BOOL)0;
5779 						T111_ = (i < (s ? s->Sup.len : 0));
5780 						if (!(T111_)) goto LA112_;
5781 						T111_ = ((NU8)(s->data[i]) == (NU8)(95));
5782 						LA112_: ;
5783 						if (!T111_) goto LA110;
5784 						i += ((NI) 1);
5785 					} LA110: ;
5786 				}
5787 			} LA106: ;
5788 		}
5789 	}
5790 	LA83_: ;
5791 	{
5792 		NIM_BOOL T115_;
5793 		NIM_BOOL T117_;
5794 		NIM_BOOL T119_;
5795 		T115_ = (NIM_BOOL)0;
5796 		T115_ = ((NI)(kdigits + fdigits) <= ((NI) 0));
5797 		if (!(T115_)) goto LA116_;
5798 		T117_ = (NIM_BOOL)0;
5799 		T117_ = (i == start);
5800 		if (T117_) goto LA118_;
5801 		T119_ = (NIM_BOOL)0;
5802 		T119_ = (i == (NI)(start + ((NI) 1)));
5803 		if (!(T119_)) goto LA120_;
5804 		T119_ = hasSign;
5805 		LA120_: ;
5806 		T117_ = T119_;
5807 		LA118_: ;
5808 		T115_ = T117_;
5809 		LA116_: ;
5810 		if (!T115_) goto LA121_;
5811 		result = ((NI) 0);
5812 		goto BeforeRet_;
5813 	}
5814 	LA121_: ;
5815 	{
5816 		NIM_BOOL T125_;
5817 		T125_ = (NIM_BOOL)0;
5818 		T125_ = ((NI)(i + ((NI) 1)) < (s ? s->Sup.len : 0));
5819 		if (!(T125_)) goto LA126_;
5820 		T125_ = (((NU8)(s->data[i])) == ((NU8)(101)) || ((NU8)(s->data[i])) == ((NU8)(69)));
5821 		LA126_: ;
5822 		if (!T125_) goto LA127_;
5823 		i += ((NI) 1);
5824 		{
5825 			NIM_BOOL T131_;
5826 			T131_ = (NIM_BOOL)0;
5827 			T131_ = ((NU8)(s->data[i]) == (NU8)(43));
5828 			if (T131_) goto LA132_;
5829 			T131_ = ((NU8)(s->data[i]) == (NU8)(45));
5830 			LA132_: ;
5831 			if (!T131_) goto LA133_;
5832 			{
5833 				if (!((NU8)(s->data[i]) == (NU8)(45))) goto LA137_;
5834 				expSign = ((NI) -1);
5835 			}
5836 			LA137_: ;
5837 			i += ((NI) 1);
5838 		}
5839 		LA133_: ;
5840 		{
5841 			if (!!((((NU8)(s->data[i])) >= ((NU8)(48)) && ((NU8)(s->data[i])) <= ((NU8)(57))))) goto LA141_;
5842 			result = ((NI) 0);
5843 			goto BeforeRet_;
5844 		}
5845 		LA141_: ;
5846 		{
5847 			while (1) {
5848 				NIM_BOOL T145_;
5849 				T145_ = (NIM_BOOL)0;
5850 				T145_ = (i < (s ? s->Sup.len : 0));
5851 				if (!(T145_)) goto LA146_;
5852 				T145_ = (((NU8)(s->data[i])) >= ((NU8)(48)) && ((NU8)(s->data[i])) <= ((NU8)(57)));
5853 				LA146_: ;
5854 				if (!T145_) goto LA144;
5855 				exponent = (NI)((NI)(exponent * ((NI) 10)) + (NI)(((NU8)(s->data[i])) - ((NI) 48)));
5856 				i += ((NI) 1);
5857 				{
5858 					while (1) {
5859 						NIM_BOOL T149_;
5860 						T149_ = (NIM_BOOL)0;
5861 						T149_ = (i < (s ? s->Sup.len : 0));
5862 						if (!(T149_)) goto LA150_;
5863 						T149_ = ((NU8)(s->data[i]) == (NU8)(95));
5864 						LA150_: ;
5865 						if (!T149_) goto LA148;
5866 						i += ((NI) 1);
5867 					} LA148: ;
5868 				}
5869 			} LA144: ;
5870 		}
5871 	}
5872 	LA127_: ;
5873 	realExponent = (NI)((NI)(expSign * exponent) - fracExponent);
5874 	expNegative = (realExponent < ((NI) 0));
5875 	absExponent = (realExponent > 0? (realExponent) : -(realExponent));
5876 	{
5877 		if (!(((NI) 999) < absExponent)) goto LA153_;
5878 		{
5879 			if (!expNegative) goto LA157_;
5880 			(*number) = ((NF)(0.0) * (NF)(sign));
5881 		}
5882 		goto LA155_;
5883 		LA157_: ;
5884 		{
5885 			(*number) = ((NF)(INF) * (NF)(sign));
5886 		}
5887 		LA155_: ;
5888 		result = (NI)(i - start);
5889 		goto BeforeRet_;
5890 	}
5891 	LA153_: ;
5892 	digits = (NI)(kdigits + fdigits);
5893 	{
5894 		NIM_BOOL T162_;
5895 		NIM_BOOL T164_;
5896 		NI slop;
5897 		T162_ = (NIM_BOOL)0;
5898 		T162_ = (digits <= ((NI) 15));
5899 		if (T162_) goto LA163_;
5900 		T164_ = (NIM_BOOL)0;
5901 		T164_ = (digits <= ((NI) 16));
5902 		if (!(T164_)) goto LA165_;
5903 		T164_ = (firstDigit <= ((NI) 8));
5904 		LA165_: ;
5905 		T162_ = T164_;
5906 		LA163_: ;
5907 		if (!T162_) goto LA166_;
5908 		{
5909 			if (!(absExponent <= ((NI) 22))) goto LA170_;
5910 			{
5911 				if (!expNegative) goto LA174_;
5912 				(*number) = ((NF)(((NF)(sign) * (NF)(((NF) (integer))))) / (NF)(powtens__system_6173[(absExponent)- 0]));
5913 			}
5914 			goto LA172_;
5915 			LA174_: ;
5916 			{
5917 				(*number) = ((NF)(((NF)(sign) * (NF)(((NF) (integer))))) * (NF)(powtens__system_6173[(absExponent)- 0]));
5918 			}
5919 			LA172_: ;
5920 			result = (NI)(i - start);
5921 			goto BeforeRet_;
5922 		}
5923 		LA170_: ;
5924 		slop = (NI)((NI)(((NI) 15) - kdigits) - fdigits);
5925 		{
5926 			NIM_BOOL T179_;
5927 			T179_ = (NIM_BOOL)0;
5928 			T179_ = (absExponent <= (NI)(((NI) 22) + slop));
5929 			if (!(T179_)) goto LA180_;
5930 			T179_ = !(expNegative);
5931 			LA180_: ;
5932 			if (!T179_) goto LA181_;
5933 			(*number) = ((NF)(((NF)(((NF)(sign) * (NF)(((NF) (integer))))) * (NF)(powtens__system_6173[(slop)- 0]))) * (NF)(powtens__system_6173[((NI)(absExponent - slop))- 0]));
5934 			result = (NI)(i - start);
5935 			goto BeforeRet_;
5936 		}
5937 		LA181_: ;
5938 	}
5939 	LA166_: ;
5940 	nimZeroMem((void*)t, sizeof(tyArray__PGLh8drTnaWr3s1qUUSq2Q));
5941 	ti = ((NI) 0);
5942 	maxlen = ((NI) 494);
5943 	endPos = i;
5944 	result = (NI)(endPos - start);
5945 	i = start;
5946 	{
5947 		NIM_BOOL T185_;
5948 		T185_ = (NIM_BOOL)0;
5949 		T185_ = (i < endPos);
5950 		if (!(T185_)) goto LA186_;
5951 		T185_ = ((NU8)(s->data[i]) == (NU8)(46));
5952 		LA186_: ;
5953 		if (!T185_) goto LA187_;
5954 		i += ((NI) 1);
5955 	}
5956 	LA187_: ;
5957 	{
5958 		while (1) {
5959 			NIM_BOOL T191_;
5960 			T191_ = (NIM_BOOL)0;
5961 			T191_ = (i < endPos);
5962 			if (!(T191_)) goto LA192_;
5963 			T191_ = (((NU8)(s->data[i])) >= ((NU8)(48)) && ((NU8)(s->data[i])) <= ((NU8)(57)) || ((NU8)(s->data[i])) == ((NU8)(43)) || ((NU8)(s->data[i])) == ((NU8)(45)));
5964 			LA192_: ;
5965 			if (!T191_) goto LA190;
5966 			{
5967 				if (!(ti < maxlen)) goto LA195_;
5968 				t[(ti)- 0] = s->data[i];
5969 				ti += ((NI) 1);
5970 			}
5971 			LA195_: ;
5972 			i += ((NI) 1);
5973 			{
5974 				while (1) {
5975 					NIM_BOOL T199_;
5976 					T199_ = (NIM_BOOL)0;
5977 					T199_ = (i < endPos);
5978 					if (!(T199_)) goto LA200_;
5979 					T199_ = (((NU8)(s->data[i])) == ((NU8)(46)) || ((NU8)(s->data[i])) == ((NU8)(95)));
5980 					LA200_: ;
5981 					if (!T199_) goto LA198;
5982 					i += ((NI) 1);
5983 				} LA198: ;
5984 			}
5985 		} LA190: ;
5986 	}
5987 	t[(ti)- 0] = 69;
5988 	ti += ((NI) 1);
5989 	{
5990 		if (!expNegative) goto LA203_;
5991 		t[(ti)- 0] = 45;
5992 	}
5993 	goto LA201_;
5994 	LA203_: ;
5995 	{
5996 		t[(ti)- 0] = 43;
5997 	}
5998 	LA201_: ;
5999 	ti += ((NI) 4);
6000 	t[((NI)(ti - ((NI) 1)))- 0] = ((NIM_CHAR) ((NI)(((NI) 48) + (NI)(absExponent % ((NI) 10)))));
6001 	absExponent = (NI)(absExponent / ((NI) 10));
6002 	t[((NI)(ti - ((NI) 2)))- 0] = ((NIM_CHAR) ((NI)(((NI) 48) + (NI)(absExponent % ((NI) 10)))));
6003 	absExponent = (NI)(absExponent / ((NI) 10));
6004 	t[((NI)(ti - ((NI) 3)))- 0] = ((NIM_CHAR) ((NI)(((NI) 48) + (NI)(absExponent % ((NI) 10)))));
6005 	(*number) = strtod(((NCSTRING) (t)), ((NCSTRING*) NIM_NIL));
6006 	}BeforeRet_: ;
6007 	return result;
6008 }
N_INLINE(void,addFloat__system_3122)6009 static N_INLINE(void, addFloat__system_3122)(NimStringDesc** result, NF x) {
6010 	addFloatRoundtrip__system_3127(result, x);
6011 }
N_NIMCALL(NimStringDesc *,dollar___system_3118)6012 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, dollar___system_3118)(NF x) {
6013 	NimStringDesc* result;
6014 	result = NIM_NIL;
6015 	addFloat__system_3122((&result), x);
6016 	return result;
6017 }
N_NIMCALL(void,objectInitAux__system_6541)6018 N_LIB_PRIVATE N_NIMCALL(void, objectInitAux__system_6541)(void* dest, TNimNode* n) {
6019 	NI d;
6020 	d = ((NI) (ptrdiff_t) (dest));
6021 	switch ((*n).kind) {
6022 	case ((tyEnum_TNimNodeKind__unfNsxrcATrufDZmpBq4HQ) 0):
6023 	{
6024 	}
6025 	break;
6026 	case ((tyEnum_TNimNodeKind__unfNsxrcATrufDZmpBq4HQ) 1):
6027 	{
6028 		NI T3_;
6029 		T3_ = (NI)0;
6030 		T3_ = pluspercent___system_696(d, (*n).offset);
6031 		objectInit(((void*) (T3_)), (*n).typ);
6032 	}
6033 	break;
6034 	case ((tyEnum_TNimNodeKind__unfNsxrcATrufDZmpBq4HQ) 2):
6035 	{
6036 		{
6037 			NI i;
6038 			NI colontmp_;
6039 			NI res;
6040 			i = (NI)0;
6041 			colontmp_ = (NI)0;
6042 			colontmp_ = (NI)((*n).len - ((NI) 1));
6043 			res = ((NI) 0);
6044 			{
6045 				while (1) {
6046 					if (!(res <= colontmp_)) goto LA7;
6047 					i = res;
6048 					objectInitAux__system_6541(dest, (*n).sons[(i)- 0]);
6049 					res += ((NI) 1);
6050 				} LA7: ;
6051 			}
6052 		}
6053 	}
6054 	break;
6055 	case ((tyEnum_TNimNodeKind__unfNsxrcATrufDZmpBq4HQ) 3):
6056 	{
6057 		TNimNode* m;
6058 		m = selectBranch__system_3674(dest, n);
6059 		{
6060 			if (!!((m == ((TNimNode*) NIM_NIL)))) goto LA11_;
6061 			objectInitAux__system_6541(dest, m);
6062 		}
6063 		LA11_: ;
6064 	}
6065 	break;
6066 	}
6067 }
N_NIMCALL(void,objectInit)6068 N_LIB_PRIVATE N_NIMCALL(void, objectInit)(void* dest, TNimType* typ) {
6069 	NI d;
6070 	d = ((NI) (ptrdiff_t) (dest));
6071 	switch ((*typ).kind) {
6072 	case ((tyEnum_TNimKind__jIBKr1ejBgsfM33Kxw4j7A) 17):
6073 	{
6074 		TNimType** pint;
6075 		pint = ((TNimType**) (dest));
6076 		(*pint) = typ;
6077 		objectInitAux__system_6541(dest, (*typ).node);
6078 	}
6079 	break;
6080 	case ((tyEnum_TNimKind__jIBKr1ejBgsfM33Kxw4j7A) 18):
6081 	{
6082 		objectInitAux__system_6541(dest, (*typ).node);
6083 	}
6084 	break;
6085 	case ((tyEnum_TNimKind__jIBKr1ejBgsfM33Kxw4j7A) 16):
6086 	case ((tyEnum_TNimKind__jIBKr1ejBgsfM33Kxw4j7A) 4):
6087 	{
6088 		{
6089 			NI i;
6090 			NI colontmp_;
6091 			NI res;
6092 			i = (NI)0;
6093 			colontmp_ = (NI)0;
6094 			colontmp_ = (NI)((NI)((*typ).size / (*(*typ).base).size) - ((NI) 1));
6095 			res = ((NI) 0);
6096 			{
6097 				while (1) {
6098 					NI T7_;
6099 					if (!(res <= colontmp_)) goto LA6;
6100 					i = res;
6101 					T7_ = (NI)0;
6102 					T7_ = pluspercent___system_696(d, (NI)(i * (*(*typ).base).size));
6103 					objectInit(((void*) (T7_)), (*typ).base);
6104 					res += ((NI) 1);
6105 				} LA6: ;
6106 			}
6107 		}
6108 	}
6109 	break;
6110 	default:
6111 	{
6112 	}
6113 	break;
6114 	}
6115 }
N_NIMCALL(void,genericShallowAssign)6116 N_LIB_PRIVATE N_NIMCALL(void, genericShallowAssign)(void* dest, void* src, TNimType* mt) {
6117 	genericAssignAux__system_6426(dest, src, mt, NIM_TRUE);
6118 }
N_NIMCALL(NI,cmp__system_7473)6119 N_LIB_PRIVATE N_NIMCALL(NI, cmp__system_7473)(NI x, NI y) {
6120 	NI result;
6121 {	result = (NI)0;
6122 	{
6123 		if (!(x == y)) goto LA3_;
6124 		result = ((NI) 0);
6125 		goto BeforeRet_;
6126 	}
6127 	LA3_: ;
6128 	{
6129 		if (!(x < y)) goto LA7_;
6130 		result = ((NI) -1);
6131 		goto BeforeRet_;
6132 	}
6133 	LA7_: ;
6134 	result = ((NI) 1);
6135 	goto BeforeRet_;
6136 	}BeforeRet_: ;
6137 	return result;
6138 }
N_NIMCALL(void,Marker_tyRef__9ai78kkwqt3gikTN9cpHKUVg)6139 static N_NIMCALL(void, Marker_tyRef__9ai78kkwqt3gikTN9cpHKUVg)(void* p, NI op) {
6140 	NI* a;
6141 	a = (NI*)p;
6142 }
N_NIMCALL(NCSTRING *,allocCStringArray__system_2469)6143 N_LIB_PRIVATE N_NIMCALL(NCSTRING*, allocCStringArray__system_2469)(NimStringDesc** a, NI aLen_0) {
6144 	NCSTRING* result;
6145 	void* T1_;
6146 	NimStringDesc** x;
6147 	result = (NCSTRING*)0;
6148 	T1_ = (void*)0;
6149 	T1_ = alloc0Impl__system_1745(((NI) ((NI)((NI)(aLen_0 + ((NI) 1)) * ((NI) 4)))));
6150 	result = ((NCSTRING*) (T1_));
6151 	x = ((NimStringDesc**) (a));
6152 	{
6153 		NI i;
6154 		NI colontmp_;
6155 		NI res;
6156 		i = (NI)0;
6157 		colontmp_ = (NI)0;
6158 		colontmp_ = (aLen_0-1);
6159 		res = ((NI) 0);
6160 		{
6161 			while (1) {
6162 				void* T5_;
6163 				if (!(res <= colontmp_)) goto LA4;
6164 				i = res;
6165 				T5_ = (void*)0;
6166 				T5_ = alloc0Impl__system_1745(((NI) ((NI)((x[i] ? x[i]->Sup.len : 0) + ((NI) 1)))));
6167 				result[i] = ((NCSTRING) (T5_));
6168 				copyMem__system_1727(((void*) (result[i])), ((void*) ((&x[i]->data[((NI) 0)]))), ((NI) ((x[i] ? x[i]->Sup.len : 0))));
6169 				res += ((NI) 1);
6170 			} LA4: ;
6171 		}
6172 	}
6173 	return result;
6174 }
N_NIMCALL(void,deallocCStringArray__system_2503)6175 N_LIB_PRIVATE N_NIMCALL(void, deallocCStringArray__system_2503)(NCSTRING* a) {
6176 	NI i;
6177 	i = ((NI) 0);
6178 	{
6179 		while (1) {
6180 			if (!!((((void*) (a[i])) == NIM_NIL))) goto LA2;
6181 			dealloc(((void*) (a[i])));
6182 			i += ((NI) 1);
6183 		} LA2: ;
6184 	}
6185 	dealloc(((void*) (a)));
6186 }
N_NIMCALL(NimStringDesc *,nimBoolToStr)6187 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, nimBoolToStr)(NIM_BOOL x) {
6188 	NimStringDesc* result;
6189 {	result = NIM_NIL;
6190 	{
6191 		if (!x) goto LA3_;
6192 		result = copyString(((NimStringDesc*) &TM__Q5wkpxktOdTGvlSRo9bzt9aw_23));
6193 	}
6194 	goto LA1_;
6195 	LA3_: ;
6196 	{
6197 		result = copyString(((NimStringDesc*) &TM__Q5wkpxktOdTGvlSRo9bzt9aw_24));
6198 	}
6199 	LA1_: ;
6200 	goto BeforeRet_;
6201 	}BeforeRet_: ;
6202 	return result;
6203 }
N_NIMCALL(NI,toInt__system_1708)6204 N_LIB_PRIVATE N_NIMCALL(NI, toInt__system_1708)(NF f) {
6205 	NI result;
6206 	result = (NI)0;
6207 	{
6208 		if (!(0.0 <= f)) goto LA3_;
6209 		result = ((NI) (((NF)(f) + (NF)(0.5))));
6210 	}
6211 	goto LA1_;
6212 	LA3_: ;
6213 	{
6214 		result = ((NI) (((NF)(f) - (NF)(0.5))));
6215 	}
6216 	LA1_: ;
6217 	return result;
6218 }
N_NOINLINE(NIM_BOOL,isObjSlowPath__system_3313)6219 N_LIB_PRIVATE N_NOINLINE(NIM_BOOL, isObjSlowPath__system_3313)(TNimType* obj, TNimType* subclass, TNimType** cache) {
6220 	NIM_BOOL result;
6221 	TNimType* x;
6222 {	result = (NIM_BOOL)0;
6223 	x = (*obj).base;
6224 	{
6225 		while (1) {
6226 			if (!!((x == subclass))) goto LA2;
6227 			{
6228 				if (!(x == ((TNimType*) NIM_NIL))) goto LA5_;
6229 				cache[(((NI) 0))- 0] = obj;
6230 				result = NIM_FALSE;
6231 				goto BeforeRet_;
6232 			}
6233 			LA5_: ;
6234 			x = (*x).base;
6235 		} LA2: ;
6236 	}
6237 	cache[(((NI) 1))- 0] = obj;
6238 	result = NIM_TRUE;
6239 	goto BeforeRet_;
6240 	}BeforeRet_: ;
6241 	return result;
6242 }
N_NIMCALL(void,addFloatRoundtrip__system_6855)6243 N_LIB_PRIVATE N_NIMCALL(void, addFloatRoundtrip__system_6855)(NimStringDesc** result, NF32 x) {
6244 	tyArray__eVNFTutn6un5gcq48fQLdg buffer;
6245 	NI n;
6246 	n = writeFloatToBufferRoundtrip__systemZformatfloat_44(buffer, x);
6247 	addCstringN__systemZformatfloat_5(result, ((NCSTRING) ((&buffer[(((NI) 0))- 0]))), n);
6248 }
N_NIMCALL(void,insert__system_7491)6249 N_LIB_PRIVATE N_NIMCALL(void, insert__system_7491)(NimStringDesc** x, NimStringDesc* item, NI i) {
6250 	NI xl;
6251 	NI j;
6252 	xl = ((*x) ? (*x)->Sup.len : 0);
6253 	unsureAsgnRef((void**) (&(*x)), setLengthStr((*x), ((NI) ((NI)(xl + (item ? item->Sup.len : 0))))));
6254 	j = (NI)(xl - ((NI) 1));
6255 	{
6256 		while (1) {
6257 			if (!(((NI) (i)) <= j)) goto LA2;
6258 			(*x)->data[(NI)(j + (item ? item->Sup.len : 0))] = (*x)->data[j];
6259 			j -= ((NI) 1);
6260 		} LA2: ;
6261 	}
6262 	j = ((NI) 0);
6263 	{
6264 		while (1) {
6265 			if (!(j < (item ? item->Sup.len : 0))) goto LA4;
6266 			(*x)->data[(NI)(j + ((NI) (i)))] = item->data[j];
6267 			j += ((NI) 1);
6268 		} LA4: ;
6269 	}
6270 }
N_NIMCALL(NimStringDesc *,getStackTrace__system_2521)6271 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, getStackTrace__system_2521)(Exception* e) {
6272 	NimStringDesc* result;
6273 	result = NIM_NIL;
6274 	{
6275 		if (!!((e == 0))) goto LA3_;
6276 		result = dollar___system_2723((*e).trace);
6277 	}
6278 	goto LA1_;
6279 	LA3_: ;
6280 	{
6281 		result = ((NimStringDesc*) NIM_NIL);
6282 	}
6283 	LA1_: ;
6284 	return result;
6285 }
N_NIMCALL(NI,getMaxMem__system_4002)6286 N_LIB_PRIVATE N_NIMCALL(NI, getMaxMem__system_4002)(tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg* a) {
6287 	NI result;
6288 	result = (NI)0;
6289 	result = (((*a).currMem >= (*a).maxMem) ? (*a).currMem : (*a).maxMem);
6290 	return result;
6291 }
N_NIMCALL(NI,getMaxMem__system_5263)6292 N_LIB_PRIVATE N_NIMCALL(NI, getMaxMem__system_5263)(void) {
6293 	NI result;
6294 	result = (NI)0;
6295 	result = getMaxMem__system_4002((&gch__system_5238.region));
6296 	return result;
6297 }
N_NIMCALL(NI,getTotalMem__system_1938)6298 N_LIB_PRIVATE N_NIMCALL(NI, getTotalMem__system_1938)(void) {
6299 	NI result;
6300 	result = (NI)0;
6301 	result = gch__system_5238.region.currMem;
6302 	return result;
6303 }
N_NIMCALL(NimStringDesc *,GC_getStatistics__system_2268)6304 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, GC_getStatistics__system_2268)(void) {
6305 	NimStringDesc* result;
6306 	NimStringDesc* T1_;
6307 	NI T2_;
6308 	NimStringDesc* T3_;
6309 	NI T4_;
6310 	NimStringDesc* T5_;
6311 	NimStringDesc* T6_;
6312 	NimStringDesc* T7_;
6313 	NimStringDesc* T8_;
6314 	NimStringDesc* T9_;
6315 	NimStringDesc* T10_;
6316 	NimStringDesc* T11_;
6317 	NimStringDesc* T12_;
6318 	NimStringDesc* T13_;
6319 	NimStringDesc* T14_;
6320 	result = NIM_NIL;
6321 	T1_ = NIM_NIL;
6322 	T2_ = (NI)0;
6323 	T2_ = getTotalMem__system_1938();
6324 	T3_ = NIM_NIL;
6325 	T3_ = dollar___systemZdollars_3(T2_);
6326 	T4_ = (NI)0;
6327 	T4_ = getOccupiedMem__system_1936();
6328 	T5_ = NIM_NIL;
6329 	T5_ = dollar___systemZdollars_3(T4_);
6330 	T6_ = NIM_NIL;
6331 	T6_ = dollar___systemZdollars_3(gch__system_5238.stat.stackScans);
6332 	T7_ = NIM_NIL;
6333 	T7_ = dollar___systemZdollars_3(gch__system_5238.stat.maxStackCells);
6334 	T8_ = NIM_NIL;
6335 	T8_ = dollar___systemZdollars_3(gch__system_5238.stat.cycleCollections);
6336 	T9_ = NIM_NIL;
6337 	T9_ = dollar___systemZdollars_3(gch__system_5238.stat.maxThreshold);
6338 	T10_ = NIM_NIL;
6339 	T10_ = dollar___systemZdollars_3(gch__system_5238.zct.cap);
6340 	T11_ = NIM_NIL;
6341 	T11_ = dollar___systemZdollars_3(gch__system_5238.stat.cycleTableSize);
6342 	T12_ = NIM_NIL;
6343 	T12_ = dollar___systemZdollars_6((NI64)(gch__system_5238.stat.maxPause / IL64(1000000)));
6344 	T1_ = rawNewString((T3_ ? T3_->Sup.len : 0) + (T5_ ? T5_->Sup.len : 0) + (T6_ ? T6_->Sup.len : 0) + (T7_ ? T7_->Sup.len : 0) + (T8_ ? T8_->Sup.len : 0) + (T9_ ? T9_->Sup.len : 0) + (T10_ ? T10_->Sup.len : 0) + (T11_ ? T11_->Sup.len : 0) + (T12_ ? T12_->Sup.len : 0) + 202);
6345 appendString(T1_, ((NimStringDesc*) &TM__Q5wkpxktOdTGvlSRo9bzt9aw_25));
6346 appendString(T1_, T3_);
6347 appendString(T1_, ((NimStringDesc*) &TM__Q5wkpxktOdTGvlSRo9bzt9aw_26));
6348 appendString(T1_, T5_);
6349 appendString(T1_, ((NimStringDesc*) &TM__Q5wkpxktOdTGvlSRo9bzt9aw_27));
6350 appendString(T1_, T6_);
6351 appendString(T1_, ((NimStringDesc*) &TM__Q5wkpxktOdTGvlSRo9bzt9aw_28));
6352 appendString(T1_, T7_);
6353 appendString(T1_, ((NimStringDesc*) &TM__Q5wkpxktOdTGvlSRo9bzt9aw_29));
6354 appendString(T1_, T8_);
6355 appendString(T1_, ((NimStringDesc*) &TM__Q5wkpxktOdTGvlSRo9bzt9aw_30));
6356 appendString(T1_, T9_);
6357 appendString(T1_, ((NimStringDesc*) &TM__Q5wkpxktOdTGvlSRo9bzt9aw_31));
6358 appendString(T1_, T10_);
6359 appendString(T1_, ((NimStringDesc*) &TM__Q5wkpxktOdTGvlSRo9bzt9aw_32));
6360 appendString(T1_, T11_);
6361 appendString(T1_, ((NimStringDesc*) &TM__Q5wkpxktOdTGvlSRo9bzt9aw_33));
6362 appendString(T1_, T12_);
6363 appendString(T1_, ((NimStringDesc*) &TM__Q5wkpxktOdTGvlSRo9bzt9aw_14));
6364 	result = T1_;
6365 	T13_ = NIM_NIL;
6366 	T14_ = NIM_NIL;
6367 	T14_ = dollar___systemZdollars_3(gch__system_5238.stat.maxStackSize);
6368 	T13_ = rawNewString((T14_ ? T14_->Sup.len : 0) + 22);
6369 appendString(T13_, ((NimStringDesc*) &TM__Q5wkpxktOdTGvlSRo9bzt9aw_34));
6370 appendString(T13_, T14_);
6371 appendString(T13_, ((NimStringDesc*) &TM__Q5wkpxktOdTGvlSRo9bzt9aw_14));
6372 	result = resizeString(result, (T13_ ? T13_->Sup.len : 0) + 0);
6373 appendString(result, T13_);
6374 	return result;
6375 }
N_INLINE(void,initStackBottomWith)6376 static N_INLINE(void, initStackBottomWith)(void* locals) {
6377 	nimGC_setStackBottom(locals);
6378 }
N_NIMCALL(void,systemInit000)6379 N_LIB_PRIVATE N_NIMCALL(void, systemInit000)(void) {
6380 {
6381 	TFrame FR_; FR_.len = 0;
6382 
6383 	nimRegisterThreadLocalMarker(TM__Q5wkpxktOdTGvlSRo9bzt9aw_4);
6384 
6385 }/* preInitProc end */
6386 {
6387 	initStackBottom();
6388 	initGC__system_2398();
6389 	registerSignalHandler__system_2992();
6390 }
6391 }
6392 
N_NIMCALL(void,systemDatInit000)6393 N_LIB_PRIVATE N_NIMCALL(void, systemDatInit000)(void) {
6394 static TNimNode* TM__Q5wkpxktOdTGvlSRo9bzt9aw_2_5[5];
6395 static TNimNode* TM__Q5wkpxktOdTGvlSRo9bzt9aw_3_3[3];
6396 static TNimNode TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[26];
6397 NTIrootobj__ytyiCJqK439aF9cIibuRVpAg_.size = sizeof(RootObj);
6398 NTIrootobj__ytyiCJqK439aF9cIibuRVpAg_.align = NIM_ALIGNOF(RootObj);
6399 NTIrootobj__ytyiCJqK439aF9cIibuRVpAg_.kind = 17;
6400 NTIrootobj__ytyiCJqK439aF9cIibuRVpAg_.base = 0;
6401 NTIrootobj__ytyiCJqK439aF9cIibuRVpAg_.flags = 1;
6402 TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[0].len = 0; TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[0].kind = 2;
6403 NTIrootobj__ytyiCJqK439aF9cIibuRVpAg_.node = &TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[0];
6404 NTIexception__XEycrCsme5C8CVWAYEcdBQ_.size = sizeof(Exception);
6405 NTIexception__XEycrCsme5C8CVWAYEcdBQ_.align = NIM_ALIGNOF(Exception);
6406 NTIexception__XEycrCsme5C8CVWAYEcdBQ_.kind = 17;
6407 NTIexception__XEycrCsme5C8CVWAYEcdBQ_.base = (&NTIrootobj__ytyiCJqK439aF9cIibuRVpAg_);
6408 TM__Q5wkpxktOdTGvlSRo9bzt9aw_2_5[0] = &TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[2];
6409 TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[2].kind = 1;
6410 TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[2].offset = offsetof(Exception, parent);
6411 TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[2].typ = (&NTIrefexception__vU9aO9cTqOMn6CBzhV8rX7Sw_);
6412 TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[2].name = "parent";
6413 TM__Q5wkpxktOdTGvlSRo9bzt9aw_2_5[1] = &TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[3];
6414 NTIcstring__S9agCYBinaYZnGWcjTdxclg_.size = sizeof(NCSTRING);
6415 NTIcstring__S9agCYBinaYZnGWcjTdxclg_.align = NIM_ALIGNOF(NCSTRING);
6416 NTIcstring__S9agCYBinaYZnGWcjTdxclg_.kind = 29;
6417 NTIcstring__S9agCYBinaYZnGWcjTdxclg_.base = 0;
6418 NTIcstring__S9agCYBinaYZnGWcjTdxclg_.flags = 3;
6419 TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[3].kind = 1;
6420 TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[3].offset = offsetof(Exception, name);
6421 TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[3].typ = (&NTIcstring__S9agCYBinaYZnGWcjTdxclg_);
6422 TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[3].name = "name";
6423 TM__Q5wkpxktOdTGvlSRo9bzt9aw_2_5[2] = &TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[4];
6424 NTIstring__77mFvmsOLKik79ci2hXkHEg_.size = sizeof(NimStringDesc*);
6425 NTIstring__77mFvmsOLKik79ci2hXkHEg_.align = NIM_ALIGNOF(NimStringDesc*);
6426 NTIstring__77mFvmsOLKik79ci2hXkHEg_.kind = 28;
6427 NTIstring__77mFvmsOLKik79ci2hXkHEg_.base = 0;
6428 NTIstring__77mFvmsOLKik79ci2hXkHEg_.flags = 2;
6429 TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[4].kind = 1;
6430 TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[4].offset = offsetof(Exception, message);
6431 TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[4].typ = (&NTIstring__77mFvmsOLKik79ci2hXkHEg_);
6432 TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[4].name = "msg";
6433 TM__Q5wkpxktOdTGvlSRo9bzt9aw_2_5[3] = &TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[5];
6434 NTIstacktraceentry__oLyohQ7O2XOvGnflOss8EA_.size = sizeof(tyObject_StackTraceEntry__oLyohQ7O2XOvGnflOss8EA);
6435 NTIstacktraceentry__oLyohQ7O2XOvGnflOss8EA_.align = NIM_ALIGNOF(tyObject_StackTraceEntry__oLyohQ7O2XOvGnflOss8EA);
6436 NTIstacktraceentry__oLyohQ7O2XOvGnflOss8EA_.kind = 18;
6437 NTIstacktraceentry__oLyohQ7O2XOvGnflOss8EA_.base = 0;
6438 NTIstacktraceentry__oLyohQ7O2XOvGnflOss8EA_.flags = 1;
6439 TM__Q5wkpxktOdTGvlSRo9bzt9aw_3_3[0] = &TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[7];
6440 TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[7].kind = 1;
6441 TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[7].offset = offsetof(tyObject_StackTraceEntry__oLyohQ7O2XOvGnflOss8EA, procname);
6442 TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[7].typ = (&NTIcstring__S9agCYBinaYZnGWcjTdxclg_);
6443 TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[7].name = "procname";
6444 TM__Q5wkpxktOdTGvlSRo9bzt9aw_3_3[1] = &TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[8];
6445 NTIint__rR5Bzr1D5krxoo1NcNyeMA_.size = sizeof(NI);
6446 NTIint__rR5Bzr1D5krxoo1NcNyeMA_.align = NIM_ALIGNOF(NI);
6447 NTIint__rR5Bzr1D5krxoo1NcNyeMA_.kind = 31;
6448 NTIint__rR5Bzr1D5krxoo1NcNyeMA_.base = 0;
6449 NTIint__rR5Bzr1D5krxoo1NcNyeMA_.flags = 3;
6450 TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[8].kind = 1;
6451 TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[8].offset = offsetof(tyObject_StackTraceEntry__oLyohQ7O2XOvGnflOss8EA, line);
6452 TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[8].typ = (&NTIint__rR5Bzr1D5krxoo1NcNyeMA_);
6453 TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[8].name = "line";
6454 TM__Q5wkpxktOdTGvlSRo9bzt9aw_3_3[2] = &TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[9];
6455 TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[9].kind = 1;
6456 TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[9].offset = offsetof(tyObject_StackTraceEntry__oLyohQ7O2XOvGnflOss8EA, filename);
6457 TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[9].typ = (&NTIcstring__S9agCYBinaYZnGWcjTdxclg_);
6458 TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[9].name = "filename";
6459 TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[6].len = 3; TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[6].kind = 2; TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[6].sons = &TM__Q5wkpxktOdTGvlSRo9bzt9aw_3_3[0];
6460 NTIstacktraceentry__oLyohQ7O2XOvGnflOss8EA_.node = &TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[6];
6461 NTIseqLstacktraceentryT__uB9b75OUPRENsBAu4AnoePA_.size = sizeof(tySequence__uB9b75OUPRENsBAu4AnoePA*);
6462 NTIseqLstacktraceentryT__uB9b75OUPRENsBAu4AnoePA_.align = NIM_ALIGNOF(tySequence__uB9b75OUPRENsBAu4AnoePA*);
6463 NTIseqLstacktraceentryT__uB9b75OUPRENsBAu4AnoePA_.kind = 24;
6464 NTIseqLstacktraceentryT__uB9b75OUPRENsBAu4AnoePA_.base = (&NTIstacktraceentry__oLyohQ7O2XOvGnflOss8EA_);
6465 NTIseqLstacktraceentryT__uB9b75OUPRENsBAu4AnoePA_.marker = Marker_tySequence__uB9b75OUPRENsBAu4AnoePA;
6466 TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[5].kind = 1;
6467 TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[5].offset = offsetof(Exception, trace);
6468 TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[5].typ = (&NTIseqLstacktraceentryT__uB9b75OUPRENsBAu4AnoePA_);
6469 TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[5].name = "trace";
6470 TM__Q5wkpxktOdTGvlSRo9bzt9aw_2_5[4] = &TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[10];
6471 TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[10].kind = 1;
6472 TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[10].offset = offsetof(Exception, up);
6473 TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[10].typ = (&NTIrefexception__vU9aO9cTqOMn6CBzhV8rX7Sw_);
6474 TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[10].name = "up";
6475 TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[1].len = 5; TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[1].kind = 2; TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[1].sons = &TM__Q5wkpxktOdTGvlSRo9bzt9aw_2_5[0];
6476 NTIexception__XEycrCsme5C8CVWAYEcdBQ_.node = &TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[1];
6477 NTIrefexception__vU9aO9cTqOMn6CBzhV8rX7Sw_.size = sizeof(Exception*);
6478 NTIrefexception__vU9aO9cTqOMn6CBzhV8rX7Sw_.align = NIM_ALIGNOF(Exception*);
6479 NTIrefexception__vU9aO9cTqOMn6CBzhV8rX7Sw_.kind = 22;
6480 NTIrefexception__vU9aO9cTqOMn6CBzhV8rX7Sw_.base = (&NTIexception__XEycrCsme5C8CVWAYEcdBQ_);
6481 NTIrefexception__vU9aO9cTqOMn6CBzhV8rX7Sw_.marker = Marker_tyRef__vU9aO9cTqOMn6CBzhV8rX7Sw;
6482 NTIdefect__LbeSGvgPzGzXnW9caIkJqMA_.size = sizeof(tyObject_Defect__LbeSGvgPzGzXnW9caIkJqMA);
6483 NTIdefect__LbeSGvgPzGzXnW9caIkJqMA_.align = NIM_ALIGNOF(tyObject_Defect__LbeSGvgPzGzXnW9caIkJqMA);
6484 NTIdefect__LbeSGvgPzGzXnW9caIkJqMA_.kind = 17;
6485 NTIdefect__LbeSGvgPzGzXnW9caIkJqMA_.base = (&NTIexception__XEycrCsme5C8CVWAYEcdBQ_);
6486 TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[11].len = 0; TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[11].kind = 2;
6487 NTIdefect__LbeSGvgPzGzXnW9caIkJqMA_.node = &TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[11];
6488 NTIreraisedefect__E0L0wGYS1gPD81VLstNO2g_.size = sizeof(tyObject_ReraiseDefect__E0L0wGYS1gPD81VLstNO2g);
6489 NTIreraisedefect__E0L0wGYS1gPD81VLstNO2g_.align = NIM_ALIGNOF(tyObject_ReraiseDefect__E0L0wGYS1gPD81VLstNO2g);
6490 NTIreraisedefect__E0L0wGYS1gPD81VLstNO2g_.kind = 17;
6491 NTIreraisedefect__E0L0wGYS1gPD81VLstNO2g_.base = (&NTIdefect__LbeSGvgPzGzXnW9caIkJqMA_);
6492 TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[12].len = 0; TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[12].kind = 2;
6493 NTIreraisedefect__E0L0wGYS1gPD81VLstNO2g_.node = &TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[12];
6494 NTIrefreraisedefect__uG62cfJZ15c2siK3CKLmnQ_.size = sizeof(tyObject_ReraiseDefect__E0L0wGYS1gPD81VLstNO2g*);
6495 NTIrefreraisedefect__uG62cfJZ15c2siK3CKLmnQ_.align = NIM_ALIGNOF(tyObject_ReraiseDefect__E0L0wGYS1gPD81VLstNO2g*);
6496 NTIrefreraisedefect__uG62cfJZ15c2siK3CKLmnQ_.kind = 22;
6497 NTIrefreraisedefect__uG62cfJZ15c2siK3CKLmnQ_.base = (&NTIreraisedefect__E0L0wGYS1gPD81VLstNO2g_);
6498 NTIrefreraisedefect__uG62cfJZ15c2siK3CKLmnQ_.marker = Marker_tyRef__uG62cfJZ15c2siK3CKLmnQ;
6499 NTIarithmeticdefect__cT9c9bHlHSpA1QTnKbHjnIkA_.size = sizeof(tyObject_ArithmeticDefect__cT9c9bHlHSpA1QTnKbHjnIkA);
6500 NTIarithmeticdefect__cT9c9bHlHSpA1QTnKbHjnIkA_.align = NIM_ALIGNOF(tyObject_ArithmeticDefect__cT9c9bHlHSpA1QTnKbHjnIkA);
6501 NTIarithmeticdefect__cT9c9bHlHSpA1QTnKbHjnIkA_.kind = 17;
6502 NTIarithmeticdefect__cT9c9bHlHSpA1QTnKbHjnIkA_.base = (&NTIdefect__LbeSGvgPzGzXnW9caIkJqMA_);
6503 TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[13].len = 0; TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[13].kind = 2;
6504 NTIarithmeticdefect__cT9c9bHlHSpA1QTnKbHjnIkA_.node = &TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[13];
6505 NTIoverflowdefect__9cxMi1BPLc3UKt9br86bGfGQ_.size = sizeof(tyObject_OverflowDefect__9cxMi1BPLc3UKt9br86bGfGQ);
6506 NTIoverflowdefect__9cxMi1BPLc3UKt9br86bGfGQ_.align = NIM_ALIGNOF(tyObject_OverflowDefect__9cxMi1BPLc3UKt9br86bGfGQ);
6507 NTIoverflowdefect__9cxMi1BPLc3UKt9br86bGfGQ_.kind = 17;
6508 NTIoverflowdefect__9cxMi1BPLc3UKt9br86bGfGQ_.base = (&NTIarithmeticdefect__cT9c9bHlHSpA1QTnKbHjnIkA_);
6509 TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[14].len = 0; TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[14].kind = 2;
6510 NTIoverflowdefect__9cxMi1BPLc3UKt9br86bGfGQ_.node = &TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[14];
6511 NTIrefoverflowdefect__r8GBEWywN07B3Rat3azS4Q_.size = sizeof(tyObject_OverflowDefect__9cxMi1BPLc3UKt9br86bGfGQ*);
6512 NTIrefoverflowdefect__r8GBEWywN07B3Rat3azS4Q_.align = NIM_ALIGNOF(tyObject_OverflowDefect__9cxMi1BPLc3UKt9br86bGfGQ*);
6513 NTIrefoverflowdefect__r8GBEWywN07B3Rat3azS4Q_.kind = 22;
6514 NTIrefoverflowdefect__r8GBEWywN07B3Rat3azS4Q_.base = (&NTIoverflowdefect__9cxMi1BPLc3UKt9br86bGfGQ_);
6515 NTIrefoverflowdefect__r8GBEWywN07B3Rat3azS4Q_.marker = Marker_tyRef__r8GBEWywN07B3Rat3azS4Q;
6516 NTIbool__VaVACK0bpYmqIQ0mKcHfQQ_.size = sizeof(NIM_BOOL);
6517 NTIbool__VaVACK0bpYmqIQ0mKcHfQQ_.align = NIM_ALIGNOF(NIM_BOOL);
6518 NTIbool__VaVACK0bpYmqIQ0mKcHfQQ_.kind = 1;
6519 NTIbool__VaVACK0bpYmqIQ0mKcHfQQ_.base = 0;
6520 NTIbool__VaVACK0bpYmqIQ0mKcHfQQ_.flags = 3;
6521 NTIcatchableerror__qrLSDoe2oBoAqNtJ9badtnA_.size = sizeof(tyObject_CatchableError__qrLSDoe2oBoAqNtJ9badtnA);
6522 NTIcatchableerror__qrLSDoe2oBoAqNtJ9badtnA_.align = NIM_ALIGNOF(tyObject_CatchableError__qrLSDoe2oBoAqNtJ9badtnA);
6523 NTIcatchableerror__qrLSDoe2oBoAqNtJ9badtnA_.kind = 17;
6524 NTIcatchableerror__qrLSDoe2oBoAqNtJ9badtnA_.base = (&NTIexception__XEycrCsme5C8CVWAYEcdBQ_);
6525 TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[15].len = 0; TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[15].kind = 2;
6526 NTIcatchableerror__qrLSDoe2oBoAqNtJ9badtnA_.node = &TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[15];
6527 NTIvalueerror__yoNlBGx0D2tRizIdhQuENw_.size = sizeof(tyObject_ValueError__yoNlBGx0D2tRizIdhQuENw);
6528 NTIvalueerror__yoNlBGx0D2tRizIdhQuENw_.align = NIM_ALIGNOF(tyObject_ValueError__yoNlBGx0D2tRizIdhQuENw);
6529 NTIvalueerror__yoNlBGx0D2tRizIdhQuENw_.kind = 17;
6530 NTIvalueerror__yoNlBGx0D2tRizIdhQuENw_.base = (&NTIcatchableerror__qrLSDoe2oBoAqNtJ9badtnA_);
6531 TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[16].len = 0; TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[16].kind = 2;
6532 NTIvalueerror__yoNlBGx0D2tRizIdhQuENw_.node = &TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[16];
6533 NTIkeyerror__t7nhKLvXTQS9cS8ByJU9bIag_.size = sizeof(tyObject_KeyError__t7nhKLvXTQS9cS8ByJU9bIag);
6534 NTIkeyerror__t7nhKLvXTQS9cS8ByJU9bIag_.align = NIM_ALIGNOF(tyObject_KeyError__t7nhKLvXTQS9cS8ByJU9bIag);
6535 NTIkeyerror__t7nhKLvXTQS9cS8ByJU9bIag_.kind = 17;
6536 NTIkeyerror__t7nhKLvXTQS9cS8ByJU9bIag_.base = (&NTIvalueerror__yoNlBGx0D2tRizIdhQuENw_);
6537 TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[17].len = 0; TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[17].kind = 2;
6538 NTIkeyerror__t7nhKLvXTQS9cS8ByJU9bIag_.node = &TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[17];
6539 NTIrefkeyerror__8SzoIAgLw9ci2v0yafHj9b6Q_.size = sizeof(tyObject_KeyError__t7nhKLvXTQS9cS8ByJU9bIag*);
6540 NTIrefkeyerror__8SzoIAgLw9ci2v0yafHj9b6Q_.align = NIM_ALIGNOF(tyObject_KeyError__t7nhKLvXTQS9cS8ByJU9bIag*);
6541 NTIrefkeyerror__8SzoIAgLw9ci2v0yafHj9b6Q_.kind = 22;
6542 NTIrefkeyerror__8SzoIAgLw9ci2v0yafHj9b6Q_.base = (&NTIkeyerror__t7nhKLvXTQS9cS8ByJU9bIag_);
6543 NTIrefkeyerror__8SzoIAgLw9ci2v0yafHj9b6Q_.marker = Marker_tyRef__8SzoIAgLw9ci2v0yafHj9b6Q;
6544 NTIassertiondefect__PtYxPmY5X0dorfvxAFbJpQ_.size = sizeof(tyObject_AssertionDefect__PtYxPmY5X0dorfvxAFbJpQ);
6545 NTIassertiondefect__PtYxPmY5X0dorfvxAFbJpQ_.align = NIM_ALIGNOF(tyObject_AssertionDefect__PtYxPmY5X0dorfvxAFbJpQ);
6546 NTIassertiondefect__PtYxPmY5X0dorfvxAFbJpQ_.kind = 17;
6547 NTIassertiondefect__PtYxPmY5X0dorfvxAFbJpQ_.base = (&NTIdefect__LbeSGvgPzGzXnW9caIkJqMA_);
6548 TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[18].len = 0; TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[18].kind = 2;
6549 NTIassertiondefect__PtYxPmY5X0dorfvxAFbJpQ_.node = &TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[18];
6550 NTIrefassertiondefect__S8DV6hfcgC9c0IiUsAoR29cQ_.size = sizeof(tyObject_AssertionDefect__PtYxPmY5X0dorfvxAFbJpQ*);
6551 NTIrefassertiondefect__S8DV6hfcgC9c0IiUsAoR29cQ_.align = NIM_ALIGNOF(tyObject_AssertionDefect__PtYxPmY5X0dorfvxAFbJpQ*);
6552 NTIrefassertiondefect__S8DV6hfcgC9c0IiUsAoR29cQ_.kind = 22;
6553 NTIrefassertiondefect__S8DV6hfcgC9c0IiUsAoR29cQ_.base = (&NTIassertiondefect__PtYxPmY5X0dorfvxAFbJpQ_);
6554 NTIrefassertiondefect__S8DV6hfcgC9c0IiUsAoR29cQ_.marker = Marker_tyRef__S8DV6hfcgC9c0IiUsAoR29cQ;
6555 NTIuint4954__M4na42GvebBMnI5wV9cYMxg_.size = sizeof(NU16);
6556 NTIuint4954__M4na42GvebBMnI5wV9cYMxg_.align = NIM_ALIGNOF(NU16);
6557 NTIuint4954__M4na42GvebBMnI5wV9cYMxg_.kind = 42;
6558 NTIuint4954__M4na42GvebBMnI5wV9cYMxg_.base = 0;
6559 NTIuint4954__M4na42GvebBMnI5wV9cYMxg_.flags = 3;
6560 NTIint4954__kDPg4wXyR8DDyA0MeEjIsw_.size = sizeof(NI16);
6561 NTIint4954__kDPg4wXyR8DDyA0MeEjIsw_.align = NIM_ALIGNOF(NI16);
6562 NTIint4954__kDPg4wXyR8DDyA0MeEjIsw_.kind = 33;
6563 NTIint4954__kDPg4wXyR8DDyA0MeEjIsw_.base = 0;
6564 NTIint4954__kDPg4wXyR8DDyA0MeEjIsw_.flags = 3;
6565 NTIint5150__sVg18TP9cLifHyygRe9cro9aA_.size = sizeof(NI32);
6566 NTIint5150__sVg18TP9cLifHyygRe9cro9aA_.align = NIM_ALIGNOF(NI32);
6567 NTIint5150__sVg18TP9cLifHyygRe9cro9aA_.kind = 34;
6568 NTIint5150__sVg18TP9cLifHyygRe9cro9aA_.base = 0;
6569 NTIint5150__sVg18TP9cLifHyygRe9cro9aA_.flags = 3;
6570 NTIint56__chXunH2dwinSkhpA6JnsXw_.size = sizeof(NI8);
6571 NTIint56__chXunH2dwinSkhpA6JnsXw_.align = NIM_ALIGNOF(NI8);
6572 NTIint56__chXunH2dwinSkhpA6JnsXw_.kind = 32;
6573 NTIint56__chXunH2dwinSkhpA6JnsXw_.base = 0;
6574 NTIint56__chXunH2dwinSkhpA6JnsXw_.flags = 3;
6575 NTIfloat__w9bl9a1ul9ctRJWiMl9cNnIMvg_.size = sizeof(NF);
6576 NTIfloat__w9bl9a1ul9ctRJWiMl9cNnIMvg_.align = NIM_ALIGNOF(NF);
6577 NTIfloat__w9bl9a1ul9ctRJWiMl9cNnIMvg_.kind = 36;
6578 NTIfloat__w9bl9a1ul9ctRJWiMl9cNnIMvg_.base = 0;
6579 NTIfloat__w9bl9a1ul9ctRJWiMl9cNnIMvg_.flags = 3;
6580 NTIchar__nmiMWKVIe46vacnhAFrQvw_.size = sizeof(NIM_CHAR);
6581 NTIchar__nmiMWKVIe46vacnhAFrQvw_.align = NIM_ALIGNOF(NIM_CHAR);
6582 NTIchar__nmiMWKVIe46vacnhAFrQvw_.kind = 2;
6583 NTIchar__nmiMWKVIe46vacnhAFrQvw_.base = 0;
6584 NTIchar__nmiMWKVIe46vacnhAFrQvw_.flags = 3;
6585 NTIobjectassignmentdefect__6toVe0IizlEwN9bORXEdX3g_.size = sizeof(tyObject_ObjectAssignmentDefect__6toVe0IizlEwN9bORXEdX3g);
6586 NTIobjectassignmentdefect__6toVe0IizlEwN9bORXEdX3g_.align = NIM_ALIGNOF(tyObject_ObjectAssignmentDefect__6toVe0IizlEwN9bORXEdX3g);
6587 NTIobjectassignmentdefect__6toVe0IizlEwN9bORXEdX3g_.kind = 17;
6588 NTIobjectassignmentdefect__6toVe0IizlEwN9bORXEdX3g_.base = (&NTIdefect__LbeSGvgPzGzXnW9caIkJqMA_);
6589 TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[19].len = 0; TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[19].kind = 2;
6590 NTIobjectassignmentdefect__6toVe0IizlEwN9bORXEdX3g_.node = &TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[19];
6591 NTIrefobjectassignmentdefect__C0A9bPZSVeyr2BWpBf4Jxqw_.size = sizeof(tyObject_ObjectAssignmentDefect__6toVe0IizlEwN9bORXEdX3g*);
6592 NTIrefobjectassignmentdefect__C0A9bPZSVeyr2BWpBf4Jxqw_.align = NIM_ALIGNOF(tyObject_ObjectAssignmentDefect__6toVe0IizlEwN9bORXEdX3g*);
6593 NTIrefobjectassignmentdefect__C0A9bPZSVeyr2BWpBf4Jxqw_.kind = 22;
6594 NTIrefobjectassignmentdefect__C0A9bPZSVeyr2BWpBf4Jxqw_.base = (&NTIobjectassignmentdefect__6toVe0IizlEwN9bORXEdX3g_);
6595 NTIrefobjectassignmentdefect__C0A9bPZSVeyr2BWpBf4Jxqw_.marker = Marker_tyRef__C0A9bPZSVeyr2BWpBf4Jxqw;
6596 NTIindexdefect__n6tGEPHKkh7E1AP9bj30WrQ_.size = sizeof(tyObject_IndexDefect__n6tGEPHKkh7E1AP9bj30WrQ);
6597 NTIindexdefect__n6tGEPHKkh7E1AP9bj30WrQ_.align = NIM_ALIGNOF(tyObject_IndexDefect__n6tGEPHKkh7E1AP9bj30WrQ);
6598 NTIindexdefect__n6tGEPHKkh7E1AP9bj30WrQ_.kind = 17;
6599 NTIindexdefect__n6tGEPHKkh7E1AP9bj30WrQ_.base = (&NTIdefect__LbeSGvgPzGzXnW9caIkJqMA_);
6600 TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[20].len = 0; TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[20].kind = 2;
6601 NTIindexdefect__n6tGEPHKkh7E1AP9bj30WrQ_.node = &TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[20];
6602 NTIrefindexdefect__RJnHOb9cQV3neNC9cDkRgMyw_.size = sizeof(tyObject_IndexDefect__n6tGEPHKkh7E1AP9bj30WrQ*);
6603 NTIrefindexdefect__RJnHOb9cQV3neNC9cDkRgMyw_.align = NIM_ALIGNOF(tyObject_IndexDefect__n6tGEPHKkh7E1AP9bj30WrQ*);
6604 NTIrefindexdefect__RJnHOb9cQV3neNC9cDkRgMyw_.kind = 22;
6605 NTIrefindexdefect__RJnHOb9cQV3neNC9cDkRgMyw_.base = (&NTIindexdefect__n6tGEPHKkh7E1AP9bj30WrQ_);
6606 NTIrefindexdefect__RJnHOb9cQV3neNC9cDkRgMyw_.marker = Marker_tyRef__RJnHOb9cQV3neNC9cDkRgMyw;
6607 NTIrefvalueerror__Ie1m0dv1ZHg72IgPRr1cDw_.size = sizeof(tyObject_ValueError__yoNlBGx0D2tRizIdhQuENw*);
6608 NTIrefvalueerror__Ie1m0dv1ZHg72IgPRr1cDw_.align = NIM_ALIGNOF(tyObject_ValueError__yoNlBGx0D2tRizIdhQuENw*);
6609 NTIrefvalueerror__Ie1m0dv1ZHg72IgPRr1cDw_.kind = 22;
6610 NTIrefvalueerror__Ie1m0dv1ZHg72IgPRr1cDw_.base = (&NTIvalueerror__yoNlBGx0D2tRizIdhQuENw_);
6611 NTIrefvalueerror__Ie1m0dv1ZHg72IgPRr1cDw_.marker = Marker_tyRef__Ie1m0dv1ZHg72IgPRr1cDw;
6612 NTIoserror__BeJgrOdDsczOwEWOZbRfKA_.size = sizeof(tyObject_OSError__BeJgrOdDsczOwEWOZbRfKA);
6613 NTIoserror__BeJgrOdDsczOwEWOZbRfKA_.align = NIM_ALIGNOF(tyObject_OSError__BeJgrOdDsczOwEWOZbRfKA);
6614 NTIoserror__BeJgrOdDsczOwEWOZbRfKA_.kind = 17;
6615 NTIoserror__BeJgrOdDsczOwEWOZbRfKA_.base = (&NTIcatchableerror__qrLSDoe2oBoAqNtJ9badtnA_);
6616 TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[21].kind = 1;
6617 TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[21].offset = offsetof(tyObject_OSError__BeJgrOdDsczOwEWOZbRfKA, errorCode);
6618 TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[21].typ = (&NTIint5150__sVg18TP9cLifHyygRe9cro9aA_);
6619 TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[21].name = "errorCode";
6620 NTIoserror__BeJgrOdDsczOwEWOZbRfKA_.node = &TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[21];
6621 NTIrefoserror__9clYsYwyjCqe2PFTuCI3Ubg_.size = sizeof(tyObject_OSError__BeJgrOdDsczOwEWOZbRfKA*);
6622 NTIrefoserror__9clYsYwyjCqe2PFTuCI3Ubg_.align = NIM_ALIGNOF(tyObject_OSError__BeJgrOdDsczOwEWOZbRfKA*);
6623 NTIrefoserror__9clYsYwyjCqe2PFTuCI3Ubg_.kind = 22;
6624 NTIrefoserror__9clYsYwyjCqe2PFTuCI3Ubg_.base = (&NTIoserror__BeJgrOdDsczOwEWOZbRfKA_);
6625 NTIrefoserror__9clYsYwyjCqe2PFTuCI3Ubg_.marker = Marker_tyRef__9clYsYwyjCqe2PFTuCI3Ubg;
6626 NTIioerror__iLZrPn9anoh9ad1MmO0RczFw_.size = sizeof(tyObject_IOError__iLZrPn9anoh9ad1MmO0RczFw);
6627 NTIioerror__iLZrPn9anoh9ad1MmO0RczFw_.align = NIM_ALIGNOF(tyObject_IOError__iLZrPn9anoh9ad1MmO0RczFw);
6628 NTIioerror__iLZrPn9anoh9ad1MmO0RczFw_.kind = 17;
6629 NTIioerror__iLZrPn9anoh9ad1MmO0RczFw_.base = (&NTIcatchableerror__qrLSDoe2oBoAqNtJ9badtnA_);
6630 TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[22].len = 0; TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[22].kind = 2;
6631 NTIioerror__iLZrPn9anoh9ad1MmO0RczFw_.node = &TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[22];
6632 NTIrefioerror__HMIVdYjdZYWskTmTQVo5BQ_.size = sizeof(tyObject_IOError__iLZrPn9anoh9ad1MmO0RczFw*);
6633 NTIrefioerror__HMIVdYjdZYWskTmTQVo5BQ_.align = NIM_ALIGNOF(tyObject_IOError__iLZrPn9anoh9ad1MmO0RczFw*);
6634 NTIrefioerror__HMIVdYjdZYWskTmTQVo5BQ_.kind = 22;
6635 NTIrefioerror__HMIVdYjdZYWskTmTQVo5BQ_.base = (&NTIioerror__iLZrPn9anoh9ad1MmO0RczFw_);
6636 NTIrefioerror__HMIVdYjdZYWskTmTQVo5BQ_.marker = Marker_tyRef__HMIVdYjdZYWskTmTQVo5BQ;
6637 NTIeoferror__KGSY1JdrNB7Xi8KDhXFhSg_.size = sizeof(tyObject_EOFError__KGSY1JdrNB7Xi8KDhXFhSg);
6638 NTIeoferror__KGSY1JdrNB7Xi8KDhXFhSg_.align = NIM_ALIGNOF(tyObject_EOFError__KGSY1JdrNB7Xi8KDhXFhSg);
6639 NTIeoferror__KGSY1JdrNB7Xi8KDhXFhSg_.kind = 17;
6640 NTIeoferror__KGSY1JdrNB7Xi8KDhXFhSg_.base = (&NTIioerror__iLZrPn9anoh9ad1MmO0RczFw_);
6641 TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[23].len = 0; TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[23].kind = 2;
6642 NTIeoferror__KGSY1JdrNB7Xi8KDhXFhSg_.node = &TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[23];
6643 NTIrefeoferror__LEclZrWX2FQAodlapxGITw_.size = sizeof(tyObject_EOFError__KGSY1JdrNB7Xi8KDhXFhSg*);
6644 NTIrefeoferror__LEclZrWX2FQAodlapxGITw_.align = NIM_ALIGNOF(tyObject_EOFError__KGSY1JdrNB7Xi8KDhXFhSg*);
6645 NTIrefeoferror__LEclZrWX2FQAodlapxGITw_.kind = 22;
6646 NTIrefeoferror__LEclZrWX2FQAodlapxGITw_.base = (&NTIeoferror__KGSY1JdrNB7Xi8KDhXFhSg_);
6647 NTIrefeoferror__LEclZrWX2FQAodlapxGITw_.marker = Marker_tyRef__LEclZrWX2FQAodlapxGITw;
6648 NTIbiggestint__Aav8dQoMlCFnZRxA0IhTHQ_.size = sizeof(NI64);
6649 NTIbiggestint__Aav8dQoMlCFnZRxA0IhTHQ_.align = NIM_ALIGNOF(NI64);
6650 NTIbiggestint__Aav8dQoMlCFnZRxA0IhTHQ_.kind = 35;
6651 NTIbiggestint__Aav8dQoMlCFnZRxA0IhTHQ_.base = 0;
6652 NTIbiggestint__Aav8dQoMlCFnZRxA0IhTHQ_.flags = 3;
6653 NTIuint5150__JrFyJbYm9b5I4hJ9cWDqvfYA_.size = sizeof(NU32);
6654 NTIuint5150__JrFyJbYm9b5I4hJ9cWDqvfYA_.align = NIM_ALIGNOF(NU32);
6655 NTIuint5150__JrFyJbYm9b5I4hJ9cWDqvfYA_.kind = 43;
6656 NTIuint5150__JrFyJbYm9b5I4hJ9cWDqvfYA_.base = 0;
6657 NTIuint5150__JrFyJbYm9b5I4hJ9cWDqvfYA_.flags = 3;
6658 NTIrootref__0vJvi4uHbxjbxlkkX7P1EA_.size = sizeof(RootObj*);
6659 NTIrootref__0vJvi4uHbxjbxlkkX7P1EA_.align = NIM_ALIGNOF(RootObj*);
6660 NTIrootref__0vJvi4uHbxjbxlkkX7P1EA_.kind = 22;
6661 NTIrootref__0vJvi4uHbxjbxlkkX7P1EA_.base = (&NTIrootobj__ytyiCJqK439aF9cIibuRVpAg_);
6662 NTIrootref__0vJvi4uHbxjbxlkkX7P1EA_.marker = Marker_tyRef__0vJvi4uHbxjbxlkkX7P1EA;
6663 NTIuint56__k3HXouOuhqAKq0dx450lXQ_.size = sizeof(NU8);
6664 NTIuint56__k3HXouOuhqAKq0dx450lXQ_.align = NIM_ALIGNOF(NU8);
6665 NTIuint56__k3HXouOuhqAKq0dx450lXQ_.kind = 41;
6666 NTIuint56__k3HXouOuhqAKq0dx450lXQ_.base = 0;
6667 NTIuint56__k3HXouOuhqAKq0dx450lXQ_.flags = 3;
6668 NTIrangedefect__Rp9adJYTsbbIUzQ8fWxwgdA_.size = sizeof(tyObject_RangeDefect__Rp9adJYTsbbIUzQ8fWxwgdA);
6669 NTIrangedefect__Rp9adJYTsbbIUzQ8fWxwgdA_.align = NIM_ALIGNOF(tyObject_RangeDefect__Rp9adJYTsbbIUzQ8fWxwgdA);
6670 NTIrangedefect__Rp9adJYTsbbIUzQ8fWxwgdA_.kind = 17;
6671 NTIrangedefect__Rp9adJYTsbbIUzQ8fWxwgdA_.base = (&NTIdefect__LbeSGvgPzGzXnW9caIkJqMA_);
6672 TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[24].len = 0; TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[24].kind = 2;
6673 NTIrangedefect__Rp9adJYTsbbIUzQ8fWxwgdA_.node = &TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[24];
6674 NTIint__xHTZrq9aYs6boc9bCba0JbpQ_.size = sizeof(NI);
6675 NTIint__xHTZrq9aYs6boc9bCba0JbpQ_.align = NIM_ALIGNOF(NI);
6676 NTIint__xHTZrq9aYs6boc9bCba0JbpQ_.kind = 31;
6677 NTIint__xHTZrq9aYs6boc9bCba0JbpQ_.base = 0;
6678 NTIint__xHTZrq9aYs6boc9bCba0JbpQ_.flags = 3;
6679 NTIrefint__9ai78kkwqt3gikTN9cpHKUVg_.size = sizeof(NI*);
6680 NTIrefint__9ai78kkwqt3gikTN9cpHKUVg_.align = NIM_ALIGNOF(NI*);
6681 NTIrefint__9ai78kkwqt3gikTN9cpHKUVg_.kind = 22;
6682 NTIrefint__9ai78kkwqt3gikTN9cpHKUVg_.base = (&NTIint__rR5Bzr1D5krxoo1NcNyeMA_);
6683 NTIrefint__9ai78kkwqt3gikTN9cpHKUVg_.marker = Marker_tyRef__9ai78kkwqt3gikTN9cpHKUVg;
6684 NTIptrstring__Y36n7l9b7WX4rcaAYCe6LWw_.size = sizeof(NimStringDesc**);
6685 NTIptrstring__Y36n7l9b7WX4rcaAYCe6LWw_.align = NIM_ALIGNOF(NimStringDesc**);
6686 NTIptrstring__Y36n7l9b7WX4rcaAYCe6LWw_.kind = 21;
6687 NTIptrstring__Y36n7l9b7WX4rcaAYCe6LWw_.base = (&NTIstring__77mFvmsOLKik79ci2hXkHEg_);
6688 NTIptrstring__Y36n7l9b7WX4rcaAYCe6LWw_.flags = 3;
6689 NTIcint__nlCscttRCss70IBTyuBqnA_.size = sizeof(int);
6690 NTIcint__nlCscttRCss70IBTyuBqnA_.align = NIM_ALIGNOF(int);
6691 NTIcint__nlCscttRCss70IBTyuBqnA_.kind = 34;
6692 NTIcint__nlCscttRCss70IBTyuBqnA_.base = 0;
6693 NTIcint__nlCscttRCss70IBTyuBqnA_.flags = 3;
6694 NTIuncheckedarrayLcstringT__nvS6J9clHMUMHfoZd8Ad2zg_.size = sizeof(tyUncheckedArray__nvS6J9clHMUMHfoZd8Ad2zg);
6695 NTIuncheckedarrayLcstringT__nvS6J9clHMUMHfoZd8Ad2zg_.align = NIM_ALIGNOF(tyUncheckedArray__nvS6J9clHMUMHfoZd8Ad2zg);
6696 NTIuncheckedarrayLcstringT__nvS6J9clHMUMHfoZd8Ad2zg_.kind = 49;
6697 NTIuncheckedarrayLcstringT__nvS6J9clHMUMHfoZd8Ad2zg_.base = (&NTIcstring__S9agCYBinaYZnGWcjTdxclg_);
6698 NTIuncheckedarrayLcstringT__nvS6J9clHMUMHfoZd8Ad2zg_.flags = 3;
6699 NTIcstringarray__vCtGdhfQAmBlRFXaVFklkQ_.size = sizeof(NCSTRING*);
6700 NTIcstringarray__vCtGdhfQAmBlRFXaVFklkQ_.align = NIM_ALIGNOF(NCSTRING*);
6701 NTIcstringarray__vCtGdhfQAmBlRFXaVFklkQ_.kind = 21;
6702 NTIcstringarray__vCtGdhfQAmBlRFXaVFklkQ_.base = (&NTIuncheckedarrayLcstringT__nvS6J9clHMUMHfoZd8Ad2zg_);
6703 NTIcstringarray__vCtGdhfQAmBlRFXaVFklkQ_.flags = 3;
6704 NTIdivbyzerodefect__n3A4gjRrFZBuNnTYx1h9a8w_.size = sizeof(tyObject_DivByZeroDefect__n3A4gjRrFZBuNnTYx1h9a8w);
6705 NTIdivbyzerodefect__n3A4gjRrFZBuNnTYx1h9a8w_.align = NIM_ALIGNOF(tyObject_DivByZeroDefect__n3A4gjRrFZBuNnTYx1h9a8w);
6706 NTIdivbyzerodefect__n3A4gjRrFZBuNnTYx1h9a8w_.kind = 17;
6707 NTIdivbyzerodefect__n3A4gjRrFZBuNnTYx1h9a8w_.base = (&NTIarithmeticdefect__cT9c9bHlHSpA1QTnKbHjnIkA_);
6708 TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[25].len = 0; TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[25].kind = 2;
6709 NTIdivbyzerodefect__n3A4gjRrFZBuNnTYx1h9a8w_.node = &TM__Q5wkpxktOdTGvlSRo9bzt9aw_0[25];
6710 NTIint__u50F0puw9b9c6p256tX4eJLQ_.size = sizeof(NI);
6711 NTIint__u50F0puw9b9c6p256tX4eJLQ_.align = NIM_ALIGNOF(NI);
6712 NTIint__u50F0puw9b9c6p256tX4eJLQ_.kind = 31;
6713 NTIint__u50F0puw9b9c6p256tX4eJLQ_.base = 0;
6714 NTIint__u50F0puw9b9c6p256tX4eJLQ_.flags = 3;
6715 }
6716 
6717