1 /* Generated by Nim Compiler v1.6.2 */
2 #define NIM_INTBITS 64
3 #define NIM_EmulateOverflowChecks
4 
5 #include "nimbase.h"
6 #include <string.h>
7 #include <stdio.h>
8 #undef LANGUAGE_C
9 #undef MIPSEB
10 #undef MIPSEL
11 #undef PPC
12 #undef R3000
13 #undef R4000
14 #undef i386
15 #undef linux
16 #undef mips
17 #undef near
18 #undef far
19 #undef powerpc
20 #undef unix
21 #define nimfr_(x, y)
22 #define nimln_(x, y)
23 typedef struct tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA;
24 typedef struct TNimType TNimType;
25 typedef struct TNimNode TNimNode;
26 typedef struct RootObj RootObj;
27 typedef struct NimStringDesc NimStringDesc;
28 typedef struct TGenericSeq TGenericSeq;
29 typedef struct tySequence__WwUFq9cJ2xKRlsAWVEHyPRg tySequence__WwUFq9cJ2xKRlsAWVEHyPRg;
30 typedef struct tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g;
31 typedef struct tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w;
32 typedef struct tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ;
33 typedef struct tyObject_GcStack__7fytPA5bBsob6See21YMRA tyObject_GcStack__7fytPA5bBsob6See21YMRA;
34 typedef struct tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg;
35 typedef struct tyObject_SmallChunk__tXn60W2f8h3jgAYdEmy5NQ tyObject_SmallChunk__tXn60W2f8h3jgAYdEmy5NQ;
36 typedef struct tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg;
37 typedef struct tyObject_LLChunk__XsENErzHIZV9bhvyJx56wGw tyObject_LLChunk__XsENErzHIZV9bhvyJx56wGw;
38 typedef struct tyObject_IntSet__EZObFrE3NC9bIb3YMkY9crZA tyObject_IntSet__EZObFrE3NC9bIb3YMkY9crZA;
39 typedef struct tyObject_Trunk__W0r8S0Y3UGke6T9bIUWnnuw tyObject_Trunk__W0r8S0Y3UGke6T9bIUWnnuw;
40 typedef struct tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw;
41 typedef struct tyObject_HeapLinks__PDV1HBZ8CQSQJC9aOBFNRSg tyObject_HeapLinks__PDV1HBZ8CQSQJC9aOBFNRSg;
42 typedef struct tyTuple__ujsjpB2O9cjj3uDHsXbnSzg tyTuple__ujsjpB2O9cjj3uDHsXbnSzg;
43 typedef struct tyObject_GcStat__0RwLoVBHZPfUAcLczmfQAg tyObject_GcStat__0RwLoVBHZPfUAcLczmfQAg;
44 typedef struct tyObject_CellSet__jG87P0AI9aZtss9ccTYBIISQ tyObject_CellSet__jG87P0AI9aZtss9ccTYBIISQ;
45 typedef struct tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg;
46 typedef tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* tyArray__USLYl0Lpkimm4FABiJ3ldA[4096];
47 typedef NU8 tyEnum_TNimKind__jIBKr1ejBgsfM33Kxw4j7A;
48 typedef NU8 tySet_tyEnum_TNimTypeFlag__v8QUszD1sWlSIWZz7mC4bQ;
49 typedef N_NIMCALL_PTR(void, tyProc__ojoeKfW4VYIm36I9cpDTQIg) (void* p, NI op);
50 typedef N_NIMCALL_PTR(void*, tyProc__WSm2xU5ARYv9aAR4l0z9c9auQ) (void* p);
51 struct TNimType {
52 NI size;
53 NI align;
54 tyEnum_TNimKind__jIBKr1ejBgsfM33Kxw4j7A kind;
55 tySet_tyEnum_TNimTypeFlag__v8QUszD1sWlSIWZz7mC4bQ flags;
56 TNimType* base;
57 TNimNode* node;
58 void* finalizer;
59 tyProc__ojoeKfW4VYIm36I9cpDTQIg marker;
60 tyProc__WSm2xU5ARYv9aAR4l0z9c9auQ deepcopy;
61 };
62 typedef NU8 tyEnum_TNimNodeKind__unfNsxrcATrufDZmpBq4HQ;
63 struct TNimNode {
64 tyEnum_TNimNodeKind__unfNsxrcATrufDZmpBq4HQ kind;
65 NI offset;
66 TNimType* typ;
67 NCSTRING name;
68 NI len;
69 TNimNode** sons;
70 };
71 struct RootObj {
72 TNimType* m_type;
73 };
74 struct TGenericSeq {
75 NI len;
76 NI reserved;
77 };
78 struct NimStringDesc {
79   TGenericSeq Sup;
80 NIM_CHAR data[SEQ_DECL_SIZE];
81 };
82 struct tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA {
83   RootObj Sup;
84 tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* left;
85 tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* right;
86 NI L;
87 NimStringDesc* data;
88 };
89 typedef N_NIMCALL_PTR(void, tyProc__T4eqaYlFJYZUv9aG9b1TV0bQ) (void);
90 struct tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g {
91 NI refcount;
92 TNimType* typ;
93 };
94 struct tyObject_GcStack__7fytPA5bBsob6See21YMRA {
95 void* bottom;
96 };
97 struct tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w {
98 NI len;
99 NI cap;
100 tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g** d;
101 };
102 typedef tyObject_SmallChunk__tXn60W2f8h3jgAYdEmy5NQ* tyArray__SPr7N6UKfuF549bNPiUvSRw[256];
103 typedef NU32 tyArray__BHbOSqU1t9b3Gt7K2c6fQig[24];
104 typedef tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg* tyArray__N1u1nqOgmuJN9cSZrnMHgOQ[32];
105 typedef tyArray__N1u1nqOgmuJN9cSZrnMHgOQ tyArray__B6durA4ZCi1xjJvRtyYxMg[24];
106 typedef tyObject_Trunk__W0r8S0Y3UGke6T9bIUWnnuw* tyArray__lh2A89ahMmYg9bCmpVaplLbA[256];
107 struct tyObject_IntSet__EZObFrE3NC9bIb3YMkY9crZA {
108 tyArray__lh2A89ahMmYg9bCmpVaplLbA data;
109 };
110 typedef tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* tyArray__0aOLqZchNi8nWtMTi8ND8w[2];
111 struct tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw {
112 tyArray__0aOLqZchNi8nWtMTi8ND8w link;
113 NI key;
114 NI upperBound;
115 NI level;
116 };
117 struct tyTuple__ujsjpB2O9cjj3uDHsXbnSzg {
118 tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg* Field0;
119 NI Field1;
120 };
121 typedef tyTuple__ujsjpB2O9cjj3uDHsXbnSzg tyArray__LzOv2eCDGiceMKQstCLmhw[30];
122 struct tyObject_HeapLinks__PDV1HBZ8CQSQJC9aOBFNRSg {
123 NI len;
124 tyArray__LzOv2eCDGiceMKQstCLmhw chunks;
125 tyObject_HeapLinks__PDV1HBZ8CQSQJC9aOBFNRSg* next;
126 };
127 struct tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg {
128 NI minLargeObj;
129 NI maxLargeObj;
130 tyArray__SPr7N6UKfuF549bNPiUvSRw freeSmallChunks;
131 NU32 flBitmap;
132 tyArray__BHbOSqU1t9b3Gt7K2c6fQig slBitmap;
133 tyArray__B6durA4ZCi1xjJvRtyYxMg matrix;
134 tyObject_LLChunk__XsENErzHIZV9bhvyJx56wGw* llmem;
135 NI currMem;
136 NI maxMem;
137 NI freeMem;
138 NI occ;
139 NI lastSize;
140 tyObject_IntSet__EZObFrE3NC9bIb3YMkY9crZA chunkStarts;
141 tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* root;
142 tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* deleted;
143 tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* last;
144 tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* freeAvlNodes;
145 NIM_BOOL locked;
146 NIM_BOOL blockChunkSizeIncrease;
147 NI nextChunkSize;
148 tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw bottomData;
149 tyObject_HeapLinks__PDV1HBZ8CQSQJC9aOBFNRSg heapLinks;
150 };
151 struct tyObject_GcStat__0RwLoVBHZPfUAcLczmfQAg {
152 NI stackScans;
153 NI cycleCollections;
154 NI maxThreshold;
155 NI maxStackSize;
156 NI maxStackCells;
157 NI cycleTableSize;
158 NI64 maxPause;
159 };
160 struct tyObject_CellSet__jG87P0AI9aZtss9ccTYBIISQ {
161 NI counter;
162 NI max;
163 tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg* head;
164 tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg** data;
165 };
166 struct tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ {
167 tyObject_GcStack__7fytPA5bBsob6See21YMRA stack;
168 NI cycleThreshold;
169 NI zctThreshold;
170 tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w zct;
171 tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w decStack;
172 tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w tempStack;
173 NI recGcLock;
174 tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg region;
175 tyObject_GcStat__0RwLoVBHZPfUAcLczmfQAg stat;
176 tyObject_CellSet__jG87P0AI9aZtss9ccTYBIISQ marked;
177 tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w additionalRoots;
178 NI gcThreadId;
179 };
180 typedef NU8 tyEnum_FileMode__ZJfK20XeZ9bv2j1pZjw9aswg;
181 typedef NIM_CHAR tyArray__9bKy7UA2LOi2vzOViufaW1Q[1024];
182 struct tySequence__WwUFq9cJ2xKRlsAWVEHyPRg {
183   TGenericSeq Sup;
184   tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* data[SEQ_DECL_SIZE];
185 };
186 N_LIB_PRIVATE N_NIMCALL(void, nimGCvisit)(void* d, NI op);
187 static N_NIMCALL(void, Marker_tyRef__4hi0XQqK9aLiPuWT9acsXm9aQ)(void* p, NI op);
188 static N_NIMCALL(void, TM__Vw9cfUOQOae9b9bzZBlucMZQg_3)(void);
189 N_LIB_PRIVATE N_NIMCALL(void, nimRegisterGlobalMarker)(tyProc__T4eqaYlFJYZUv9aG9b1TV0bQ markerProc);
190 N_NIMCALL(NimStringDesc*, mnewString)(NI len);
191 N_LIB_PRIVATE N_NIMCALL(NI, len__ropes_10)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* a);
192 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, setLengthStr)(NimStringDesc* s, NI newLen);
193 N_LIB_PRIVATE N_NIMCALL(void*, newSeq)(TNimType* typ, NI len);
194 static N_NIMCALL(void, Marker_tySequence__WwUFq9cJ2xKRlsAWVEHyPRg)(void* p, NI op);
195 static N_INLINE(void, asgnRef)(void** dest, void* src);
196 static N_INLINE(void, incRef__system_5338)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c);
197 static N_INLINE(NI, pluspercent___system_696)(NI x, NI y);
198 static N_INLINE(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*, usrToCell__system_5300)(void* usr);
199 static N_INLINE(NI, minuspercent___system_716)(NI x, NI y);
200 static N_INLINE(void, decRef__system_5345)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c);
201 static N_INLINE(NIM_BOOL, ltpercent___system_1005)(NI x, NI y);
202 static N_INLINE(void, rtlAddZCT__system_5343)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c);
203 N_LIB_PRIVATE N_NOINLINE(void, addZCT__system_5294)(tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w* s, tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c);
204 static N_INLINE(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, pop__ropes_180)(tySequence__WwUFq9cJ2xKRlsAWVEHyPRg** s);
205 N_LIB_PRIVATE N_NIMCALL(TGenericSeq*, setLengthSeqV2)(TGenericSeq* s, TNimType* typ, NI newLen);
206 N_LIB_PRIVATE N_NIMCALL(void, unsureAsgnRef)(void** dest, void* src);
207 N_LIB_PRIVATE N_NIMCALL(TGenericSeq*, incrSeqV3)(TGenericSeq* s, TNimType* typ);
208 static N_INLINE(void, appendString)(NimStringDesc* dest, NimStringDesc* src);
209 static N_INLINE(void, copyMem__system_1727)(void* dest, void* source, NI size);
210 static N_INLINE(void, nimCopyMem)(void* dest, void* source, NI size);
211 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, resizeString)(NimStringDesc* dest, NI addlen);
212 N_LIB_PRIVATE N_NIMCALL(void, add__ropes_162)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** a, NimStringDesc* b);
213 N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, amp___ropes_140)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* a, NimStringDesc* b);
214 N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, amp___ropes_128)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* a, tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* b);
215 N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, newRope__ropes_17)(NimStringDesc* data);
216 N_LIB_PRIVATE N_NOINLINE(void*, newObj)(TNimType* typ, NI size);
217 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, copyStringRC1)(NimStringDesc* src);
218 static N_INLINE(void, nimGCunrefNoCycle)(void* p);
219 N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, rope__ropes_109)(NimStringDesc* s);
220 N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, insertInCache__ropes_90)(NimStringDesc* s);
221 N_LIB_PRIVATE N_NIMCALL(NI, hash__pureZhashes_279)(NimStringDesc* x);
222 static N_INLINE(NIM_BOOL, eqStrings)(NimStringDesc* a, NimStringDesc* b);
223 static N_INLINE(NIM_BOOL, equalMem__system_1735)(void* a, void* b, NI size);
224 static N_INLINE(int, nimCmpMem)(void* a, void* b, NI size);
225 N_LIB_PRIVATE N_NIMCALL(void, add__ropes_159)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** a, tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* b);
226 N_LIB_PRIVATE N_NIMCALL(void, failedAssertImpl__systemZassertions_56)(NimStringDesc* msg);
227 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, rawNewString)(NI space);
228 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, substr__system_7773)(NimStringDesc* s, NI first, NI last);
229 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, dollar___systemZdollars_6)(NI64 x);
230 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, open__systemZio_389)(FILE** f, NimStringDesc* filename, tyEnum_FileMode__ZJfK20XeZ9bv2j1pZjw9aswg mode, NI bufSize);
231 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, equalsFile__ropes_385)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* r, FILE* f);
232 static N_INLINE(void, nimZeroMem)(void* p, NI size);
233 static N_INLINE(void, nimSetMem__systemZmemory_7)(void* a, int v, NI size);
234 N_LIB_PRIVATE N_NIMCALL(NI, readBuffer__systemZio_144)(FILE* f, void* buffer, NI len);
235 static N_INLINE(NCSTRING, nimToCStringConv)(NimStringDesc* s);
236 N_LIB_PRIVATE N_NIMCALL(void, close__systemZio_217)(FILE* f);
237 N_LIB_PRIVATE N_NIMCALL(void, writeRope__ropes_237)(FILE* f, tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* r);
238 N_LIB_PRIVATE N_NIMCALL(void, write__systemZio_205)(FILE* f, NimStringDesc* s);
239 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, equalsFile__ropes_453)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* r, NimStringDesc* filename);
240 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, writeRope__ropes_241)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* head, NimStringDesc* filename);
241 extern TNimType NTIrootobj__ytyiCJqK439aF9cIibuRVpAg_;
242 N_LIB_PRIVATE TNimType NTIropeobj__OFzf0kSiPTcNreUIeJgWVA_;
243 extern TNimType NTIint__rR5Bzr1D5krxoo1NcNyeMA_;
244 extern TNimType NTIstring__77mFvmsOLKik79ci2hXkHEg_;
245 N_LIB_PRIVATE TNimType NTIrope__4hi0XQqK9aLiPuWT9acsXm9aQ_;
246 N_LIB_PRIVATE TNimType NTIarrayL48OO52485753_ropeT__USLYl0Lpkimm4FABiJ3ldA_;
247 N_LIB_PRIVATE TNimType NTIseqLropeT__WwUFq9cJ2xKRlsAWVEHyPRg_;
248 STRING_LITERAL(TM__Vw9cfUOQOae9b9bzZBlucMZQg_4, "$", 1);
249 STRING_LITERAL(TM__Vw9cfUOQOae9b9bzZBlucMZQg_5, "ropes.nim(237, 20) `false` invalid format string: ", 50);
250 STRING_LITERAL(TM__Vw9cfUOQOae9b9bzZBlucMZQg_6, "ropes.nim(249, 20) `false` invalid format string: ", 50);
251 STRING_LITERAL(TM__Vw9cfUOQOae9b9bzZBlucMZQg_7, "ropes.nim(252, 20) `false` invalid format string: ", 50);
252 STRING_LITERAL(TM__Vw9cfUOQOae9b9bzZBlucMZQg_8, "\012", 1);
253 STRING_LITERAL(TM__Vw9cfUOQOae9b9bzZBlucMZQg_9, "ropes.nim(262, 18) `false` invalid format string: ", 50);
254 N_LIB_PRIVATE tyArray__USLYl0Lpkimm4FABiJ3ldA cache__ropes_41;
255 N_LIB_PRIVATE NI gCacheTries__ropes_87 = ((NI) 0);
256 N_LIB_PRIVATE NI gCacheMisses__ropes_88 = ((NI) 0);
257 N_LIB_PRIVATE NI gCacheIntTries__ropes_89 = ((NI) 0);
258 extern tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ gch__system_5247;
N_NIMCALL(void,Marker_tyRef__4hi0XQqK9aLiPuWT9acsXm9aQ)259 static N_NIMCALL(void, Marker_tyRef__4hi0XQqK9aLiPuWT9acsXm9aQ)(void* p, NI op) {
260 	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* a;
261 	a = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)p;
262 	nimGCvisit((void*)(*a).left, op);
263 	nimGCvisit((void*)(*a).right, op);
264 	nimGCvisit((void*)(*a).data, op);
265 }
N_NIMCALL(void,TM__Vw9cfUOQOae9b9bzZBlucMZQg_3)266 static N_NIMCALL(void, TM__Vw9cfUOQOae9b9bzZBlucMZQg_3)(void) {
267 	NI T1_;
268 	T1_ = (NI)0;
269 	for (T1_ = 0; T1_ < 4096; T1_++) {
270 	nimGCvisit((void*)cache__ropes_41[T1_], 0);
271 	}
272 }
N_NIMCALL(NI,len__ropes_10)273 N_LIB_PRIVATE N_NIMCALL(NI, len__ropes_10)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* a) {
274 	NI result;
275 	result = (NI)0;
276 	{
277 		if (!(a == ((tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*) NIM_NIL))) goto LA3_;
278 		result = ((NI) 0);
279 	}
280 	goto LA1_;
281 	LA3_: ;
282 	{
283 		result = ((*a).L > 0? ((*a).L) : -((*a).L));
284 	}
285 	LA1_: ;
286 	return result;
287 }
N_NIMCALL(void,Marker_tySequence__WwUFq9cJ2xKRlsAWVEHyPRg)288 static N_NIMCALL(void, Marker_tySequence__WwUFq9cJ2xKRlsAWVEHyPRg)(void* p, NI op) {
289 	tySequence__WwUFq9cJ2xKRlsAWVEHyPRg* a;
290 	NI T1_;
291 	a = (tySequence__WwUFq9cJ2xKRlsAWVEHyPRg*)p;
292 	T1_ = (NI)0;
293 	for (T1_ = 0; T1_ < (a ? a->Sup.len : 0); T1_++) {
294 	nimGCvisit((void*)a->data[T1_], op);
295 	}
296 }
N_INLINE(NI,pluspercent___system_696)297 static N_INLINE(NI, pluspercent___system_696)(NI x, NI y) {
298 	NI result;
299 	result = (NI)0;
300 	result = ((NI) ((NU)((NU64)(((NU) (x))) + (NU64)(((NU) (y))))));
301 	return result;
302 }
N_INLINE(void,incRef__system_5338)303 static N_INLINE(void, incRef__system_5338)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c) {
304 	(*c).refcount = pluspercent___system_696((*c).refcount, ((NI) 8));
305 }
N_INLINE(NI,minuspercent___system_716)306 static N_INLINE(NI, minuspercent___system_716)(NI x, NI y) {
307 	NI result;
308 	result = (NI)0;
309 	result = ((NI) ((NU)((NU64)(((NU) (x))) - (NU64)(((NU) (y))))));
310 	return result;
311 }
N_INLINE(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g *,usrToCell__system_5300)312 static N_INLINE(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*, usrToCell__system_5300)(void* usr) {
313 	tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* result;
314 	NI T1_;
315 	result = (tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*)0;
316 	T1_ = (NI)0;
317 	T1_ = minuspercent___system_716(((NI) (ptrdiff_t) (usr)), ((NI) 16));
318 	result = ((tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*) (T1_));
319 	return result;
320 }
N_INLINE(NIM_BOOL,ltpercent___system_1005)321 static N_INLINE(NIM_BOOL, ltpercent___system_1005)(NI x, NI y) {
322 	NIM_BOOL result;
323 	result = (NIM_BOOL)0;
324 	result = ((NU64)(((NU) (x))) < (NU64)(((NU) (y))));
325 	return result;
326 }
N_INLINE(void,rtlAddZCT__system_5343)327 static N_INLINE(void, rtlAddZCT__system_5343)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c) {
328 	addZCT__system_5294((&gch__system_5247.zct), c);
329 }
N_INLINE(void,decRef__system_5345)330 static N_INLINE(void, decRef__system_5345)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c) {
331 	(*c).refcount = minuspercent___system_716((*c).refcount, ((NI) 8));
332 	{
333 		NIM_BOOL T3_;
334 		T3_ = (NIM_BOOL)0;
335 		T3_ = ltpercent___system_1005((*c).refcount, ((NI) 8));
336 		if (!T3_) goto LA4_;
337 		rtlAddZCT__system_5343(c);
338 	}
339 	LA4_: ;
340 }
N_INLINE(void,asgnRef)341 static N_INLINE(void, asgnRef)(void** dest, void* src) {
342 	{
343 		tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* T5_;
344 		if (!!((src == NIM_NIL))) goto LA3_;
345 		T5_ = (tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*)0;
346 		T5_ = usrToCell__system_5300(src);
347 		incRef__system_5338(T5_);
348 	}
349 	LA3_: ;
350 	{
351 		tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* T10_;
352 		if (!!(((*dest) == NIM_NIL))) goto LA8_;
353 		T10_ = (tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*)0;
354 		T10_ = usrToCell__system_5300((*dest));
355 		decRef__system_5345(T10_);
356 	}
357 	LA8_: ;
358 	(*dest) = src;
359 }
N_INLINE(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA *,pop__ropes_180)360 static N_INLINE(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, pop__ropes_180)(tySequence__WwUFq9cJ2xKRlsAWVEHyPRg** s) {
361 	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* result;
362 	NI L;
363 	NI T1_;
364 	result = NIM_NIL;
365 	T1_ = ((*s) ? (*s)->Sup.len : 0);
366 	L = (NI)(T1_ - ((NI) 1));
367 	result = (*s)->data[L];
368 	unsureAsgnRef((void**) (&(*s)), (tySequence__WwUFq9cJ2xKRlsAWVEHyPRg*) setLengthSeqV2(&((*s))->Sup, (&NTIseqLropeT__WwUFq9cJ2xKRlsAWVEHyPRg_), ((NI) (L))));
369 	return result;
370 }
N_INLINE(void,nimCopyMem)371 static N_INLINE(void, nimCopyMem)(void* dest, void* source, NI size) {
372 	void* T1_;
373 	T1_ = (void*)0;
374 	T1_ = memcpy(dest, source, ((size_t) (size)));
375 }
N_INLINE(void,copyMem__system_1727)376 static N_INLINE(void, copyMem__system_1727)(void* dest, void* source, NI size) {
377 	nimCopyMem(dest, source, size);
378 }
N_INLINE(void,appendString)379 static N_INLINE(void, appendString)(NimStringDesc* dest, NimStringDesc* src) {
380 	{
381 		if (!!((src == ((NimStringDesc*) NIM_NIL)))) goto LA3_;
382 		copyMem__system_1727(((void*) ((&(*dest).data[(*dest).Sup.len]))), ((void*) ((*src).data)), ((NI) ((NI)((*src).Sup.len + ((NI) 1)))));
383 		(*dest).Sup.len += (*src).Sup.len;
384 	}
385 	LA3_: ;
386 }
N_NIMCALL(NimStringDesc *,dollar___ropes_250)387 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, dollar___ropes_250)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* r) {
388 	NimStringDesc* result;
389 	NI T1_;
390 	result = NIM_NIL;
391 	T1_ = (NI)0;
392 	T1_ = len__ropes_10(r);
393 	result = mnewString(((NI) (T1_)));
394 	result = setLengthStr(result, ((NI) 0));
395 	{
396 		NimStringDesc* s;
397 		s = NIM_NIL;
398 		{
399 			tySequence__WwUFq9cJ2xKRlsAWVEHyPRg* stack;
400 			if (!!((r == ((tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*) NIM_NIL)))) goto LA5_;
401 			stack = (tySequence__WwUFq9cJ2xKRlsAWVEHyPRg*) newSeq((&NTIseqLropeT__WwUFq9cJ2xKRlsAWVEHyPRg_), 1);
402 			asgnRef((void**) (&stack->data[0]), r);
403 			{
404 				while (1) {
405 					NI T9_;
406 					tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* it;
407 					T9_ = (stack ? stack->Sup.len : 0);
408 					if (!(((NI) 0) < T9_)) goto LA8;
409 					it = pop__ropes_180((&stack));
410 					{
411 						while (1) {
412 							NI T12_;
413 							if (!!(((*it).left == ((tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*) NIM_NIL)))) goto LA11;
414 							stack = (tySequence__WwUFq9cJ2xKRlsAWVEHyPRg*) incrSeqV3((TGenericSeq*)(stack), (&NTIseqLropeT__WwUFq9cJ2xKRlsAWVEHyPRg_));
415 							T12_ = stack->Sup.len++;
416 							asgnRef((void**) (&stack->data[T12_]), (*it).right);
417 							it = (*it).left;
418 						} LA11: ;
419 					}
420 					s = (*it).data;
421 					result = resizeString(result, (s ? s->Sup.len : 0) + 0);
422 appendString(result, s);
423 				} LA8: ;
424 			}
425 		}
426 		LA5_: ;
427 	}
428 	return result;
429 }
N_INLINE(void,nimGCunrefNoCycle)430 static N_INLINE(void, nimGCunrefNoCycle)(void* p) {
431 	tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* T1_;
432 	T1_ = (tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*)0;
433 	T1_ = usrToCell__system_5300(p);
434 	decRef__system_5345(T1_);
435 }
N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA *,newRope__ropes_17)436 N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, newRope__ropes_17)(NimStringDesc* data) {
437 	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* result;
438 	NimStringDesc* T1_;
439 	result = NIM_NIL;
440 	result = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*) newObj((&NTIrope__4hi0XQqK9aLiPuWT9acsXm9aQ_), sizeof(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA));
441 	(*result).Sup.m_type = (&NTIropeobj__OFzf0kSiPTcNreUIeJgWVA_);
442 	(*result).L = ((NI64)-((data ? data->Sup.len : 0)));
443 	T1_ = NIM_NIL;
444 	T1_ = (*result).data; (*result).data = copyStringRC1(data);
445 	if (T1_) nimGCunrefNoCycle(T1_);
446 	return result;
447 }
N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA *,amp___ropes_128)448 N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, amp___ropes_128)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* a, tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* b) {
449 	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* result;
450 	result = NIM_NIL;
451 	{
452 		if (!(a == ((tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*) NIM_NIL))) goto LA3_;
453 		result = b;
454 	}
455 	goto LA1_;
456 	LA3_: ;
457 	{
458 		if (!(b == ((tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*) NIM_NIL))) goto LA6_;
459 		result = a;
460 	}
461 	goto LA1_;
462 	LA6_: ;
463 	{
464 		result = newRope__ropes_17(((NimStringDesc*) NIM_NIL));
465 		(*result).L = (NI)(((*a).L > 0? ((*a).L) : -((*a).L)) + ((*b).L > 0? ((*b).L) : -((*b).L)));
466 		asgnRef((void**) (&(*result).left), a);
467 		asgnRef((void**) (&(*result).right), b);
468 	}
469 	LA1_: ;
470 	return result;
471 }
N_INLINE(int,nimCmpMem)472 static N_INLINE(int, nimCmpMem)(void* a, void* b, NI size) {
473 	int result;
474 	result = (int)0;
475 	result = memcmp(a, b, ((size_t) (size)));
476 	return result;
477 }
N_INLINE(NIM_BOOL,equalMem__system_1735)478 static N_INLINE(NIM_BOOL, equalMem__system_1735)(void* a, void* b, NI size) {
479 	NIM_BOOL result;
480 	int T1_;
481 	result = (NIM_BOOL)0;
482 	T1_ = (int)0;
483 	T1_ = nimCmpMem(a, b, size);
484 	result = (T1_ == ((NI32) 0));
485 	return result;
486 }
N_INLINE(NIM_BOOL,eqStrings)487 static N_INLINE(NIM_BOOL, eqStrings)(NimStringDesc* a, NimStringDesc* b) {
488 	NIM_BOOL result;
489 	NI alen;
490 	NI blen;
491 {	result = (NIM_BOOL)0;
492 	alen = (a ? a->Sup.len : 0);
493 	blen = (b ? b->Sup.len : 0);
494 	{
495 		if (!(alen == blen)) goto LA3_;
496 		{
497 			if (!(alen == ((NI) 0))) goto LA7_;
498 			result = NIM_TRUE;
499 			goto BeforeRet_;
500 		}
501 		LA7_: ;
502 		result = equalMem__system_1735(((void*) ((&a->data[((NI) 0)]))), ((void*) ((&b->data[((NI) 0)]))), ((NI) (alen)));
503 		goto BeforeRet_;
504 	}
505 	LA3_: ;
506 	}BeforeRet_: ;
507 	return result;
508 }
N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA *,insertInCache__ropes_90)509 N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, insertInCache__ropes_90)(NimStringDesc* s) {
510 	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* result;
511 	NI h;
512 	NI T1_;
513 	result = NIM_NIL;
514 	gCacheTries__ropes_87 += ((NI) 1);
515 	T1_ = (NI)0;
516 	T1_ = hash__pureZhashes_279(s);
517 	h = (NI)(T1_ & ((NI) 4095));
518 	result = cache__ropes_41[(h)- 0];
519 	{
520 		NIM_BOOL T4_;
521 		T4_ = (NIM_BOOL)0;
522 		T4_ = (result == 0);
523 		if (T4_) goto LA5_;
524 		T4_ = !(eqStrings((*result).data, s));
525 		LA5_: ;
526 		if (!T4_) goto LA6_;
527 		gCacheMisses__ropes_88 += ((NI) 1);
528 		result = newRope__ropes_17(s);
529 		asgnRef((void**) (&cache__ropes_41[(h)- 0]), result);
530 	}
531 	LA6_: ;
532 	return result;
533 }
N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA *,rope__ropes_109)534 N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, rope__ropes_109)(NimStringDesc* s) {
535 	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* result;
536 	result = NIM_NIL;
537 	{
538 		if (!((s ? s->Sup.len : 0) == ((NI) 0))) goto LA3_;
539 		result = ((tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*) NIM_NIL);
540 	}
541 	goto LA1_;
542 	LA3_: ;
543 	{
544 		result = insertInCache__ropes_90(s);
545 	}
546 	LA1_: ;
547 	return result;
548 }
N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA *,amp___ropes_140)549 N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, amp___ropes_140)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* a, NimStringDesc* b) {
550 	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* result;
551 	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T1_;
552 	result = NIM_NIL;
553 	T1_ = NIM_NIL;
554 	T1_ = rope__ropes_109(b);
555 	result = amp___ropes_128(a, T1_);
556 	return result;
557 }
N_NIMCALL(void,add__ropes_162)558 N_LIB_PRIVATE N_NIMCALL(void, add__ropes_162)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** a, NimStringDesc* b) {
559 	unsureAsgnRef((void**) (&(*a)), amp___ropes_140((*a), b));
560 }
N_NIMCALL(void,add__ropes_159)561 N_LIB_PRIVATE N_NIMCALL(void, add__ropes_159)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** a, tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* b) {
562 	unsureAsgnRef((void**) (&(*a)), amp___ropes_128((*a), b));
563 }
N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA *,runtimeFormat__ropes_271)564 N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, runtimeFormat__ropes_271)(NimStringDesc* frmt, tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0) {
565 	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* result;
566 	NI i;
567 	NI num;
568 	result = NIM_NIL;
569 	i = ((NI) 0);
570 	result = ((tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*) NIM_NIL);
571 	num = ((NI) 0);
572 	{
573 		while (1) {
574 			NI start;
575 			if (!(i < (frmt ? frmt->Sup.len : 0))) goto LA2;
576 			{
577 				if (!((NU8)(frmt->data[i]) == (NU8)(36))) goto LA5_;
578 				i += ((NI) 1);
579 				switch (((NU8)(frmt->data[i]))) {
580 				case 36:
581 				{
582 					add__ropes_162(&result, ((NimStringDesc*) &TM__Vw9cfUOQOae9b9bzZBlucMZQg_4));
583 					i += ((NI) 1);
584 				}
585 				break;
586 				case 35:
587 				{
588 					i += ((NI) 1);
589 					add__ropes_159(&result, args[num]);
590 					num += ((NI) 1);
591 				}
592 				break;
593 				case 48 ... 57:
594 				{
595 					NI j;
596 					j = ((NI) 0);
597 					{
598 						while (1) {
599 							j = (NI)((NI)((NI)(j * ((NI) 10)) + ((NU8)(frmt->data[i]))) - ((NI) 48));
600 							i += ((NI) 1);
601 							{
602 								NIM_BOOL T14_;
603 								T14_ = (NIM_BOOL)0;
604 								T14_ = ((frmt ? frmt->Sup.len : 0) <= i);
605 								if (T14_) goto LA15_;
606 								T14_ = !((((NU8)(frmt->data[i])) >= ((NU8)(48)) && ((NU8)(frmt->data[i])) <= ((NU8)(57))));
607 								LA15_: ;
608 								if (!T14_) goto LA16_;
609 								goto LA10;
610 							}
611 							LA16_: ;
612 						}
613 					} LA10: ;
614 					num = j;
615 					{
616 						if (!((NI)((argsLen_0-1) + ((NI) 1)) < j)) goto LA20_;
617 						{
618 							NimStringDesc* T26_;
619 							if (!NIM_TRUE) goto LA24_;
620 							T26_ = NIM_NIL;
621 							T26_ = rawNewString((frmt ? frmt->Sup.len : 0) + 50);
622 appendString(T26_, ((NimStringDesc*) &TM__Vw9cfUOQOae9b9bzZBlucMZQg_5));
623 appendString(T26_, frmt);
624 							failedAssertImpl__systemZassertions_56(T26_);
625 						}
626 						LA24_: ;
627 					}
628 					goto LA18_;
629 					LA20_: ;
630 					{
631 						add__ropes_159(&result, args[(NI)(j - ((NI) 1))]);
632 					}
633 					LA18_: ;
634 				}
635 				break;
636 				case 123:
637 				{
638 					NI j_2;
639 					i += ((NI) 1);
640 					j_2 = ((NI) 0);
641 					{
642 						while (1) {
643 							if (!(((NU8)(frmt->data[i])) >= ((NU8)(48)) && ((NU8)(frmt->data[i])) <= ((NU8)(57)))) goto LA30;
644 							j_2 = (NI)((NI)((NI)(j_2 * ((NI) 10)) + ((NU8)(frmt->data[i]))) - ((NI) 48));
645 							i += ((NI) 1);
646 						} LA30: ;
647 					}
648 					num = j_2;
649 					{
650 						if (!((NU8)(frmt->data[i]) == (NU8)(125))) goto LA33_;
651 						i += ((NI) 1);
652 					}
653 					goto LA31_;
654 					LA33_: ;
655 					{
656 						{
657 							NimStringDesc* T40_;
658 							if (!NIM_TRUE) goto LA38_;
659 							T40_ = NIM_NIL;
660 							T40_ = rawNewString((frmt ? frmt->Sup.len : 0) + 50);
661 appendString(T40_, ((NimStringDesc*) &TM__Vw9cfUOQOae9b9bzZBlucMZQg_6));
662 appendString(T40_, frmt);
663 							failedAssertImpl__systemZassertions_56(T40_);
664 						}
665 						LA38_: ;
666 					}
667 					LA31_: ;
668 					{
669 						if (!((NI)((argsLen_0-1) + ((NI) 1)) < j_2)) goto LA43_;
670 						{
671 							NimStringDesc* T49_;
672 							if (!NIM_TRUE) goto LA47_;
673 							T49_ = NIM_NIL;
674 							T49_ = rawNewString((frmt ? frmt->Sup.len : 0) + 50);
675 appendString(T49_, ((NimStringDesc*) &TM__Vw9cfUOQOae9b9bzZBlucMZQg_7));
676 appendString(T49_, frmt);
677 							failedAssertImpl__systemZassertions_56(T49_);
678 						}
679 						LA47_: ;
680 					}
681 					goto LA41_;
682 					LA43_: ;
683 					{
684 						add__ropes_159(&result, args[(NI)(j_2 - ((NI) 1))]);
685 					}
686 					LA41_: ;
687 				}
688 				break;
689 				case 110:
690 				{
691 					add__ropes_162(&result, ((NimStringDesc*) &TM__Vw9cfUOQOae9b9bzZBlucMZQg_8));
692 					i += ((NI) 1);
693 				}
694 				break;
695 				case 78:
696 				{
697 					add__ropes_162(&result, ((NimStringDesc*) &TM__Vw9cfUOQOae9b9bzZBlucMZQg_8));
698 					i += ((NI) 1);
699 				}
700 				break;
701 				default:
702 				{
703 					{
704 						NimStringDesc* T58_;
705 						if (!NIM_TRUE) goto LA56_;
706 						T58_ = NIM_NIL;
707 						T58_ = rawNewString((frmt ? frmt->Sup.len : 0) + 50);
708 appendString(T58_, ((NimStringDesc*) &TM__Vw9cfUOQOae9b9bzZBlucMZQg_9));
709 appendString(T58_, frmt);
710 						failedAssertImpl__systemZassertions_56(T58_);
711 					}
712 					LA56_: ;
713 				}
714 				break;
715 				}
716 			}
717 			LA5_: ;
718 			start = i;
719 			{
720 				while (1) {
721 					if (!(i < (frmt ? frmt->Sup.len : 0))) goto LA60;
722 					{
723 						if (!!(((NU8)(frmt->data[i]) == (NU8)(36)))) goto LA63_;
724 						i += ((NI) 1);
725 					}
726 					goto LA61_;
727 					LA63_: ;
728 					{
729 						goto LA59;
730 					}
731 					LA61_: ;
732 				} LA60: ;
733 			} LA59: ;
734 			{
735 				NimStringDesc* T70_;
736 				if (!(start <= (NI)(i - ((NI) 1)))) goto LA68_;
737 				T70_ = NIM_NIL;
738 				T70_ = substr__system_7773(frmt, start, (NI)(i - ((NI) 1)));
739 				add__ropes_162(&result, T70_);
740 			}
741 			LA68_: ;
742 		} LA2: ;
743 	}
744 	return result;
745 }
N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA *,rope__ropes_115)746 N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, rope__ropes_115)(NI64 i) {
747 	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* result;
748 	NimStringDesc* T1_;
749 	result = NIM_NIL;
750 	gCacheIntTries__ropes_89 += ((NI) 1);
751 	T1_ = NIM_NIL;
752 	T1_ = dollar___systemZdollars_6(i);
753 	result = rope__ropes_109(T1_);
754 	return result;
755 }
N_NIMCALL(void,prepend__ropes_265)756 N_LIB_PRIVATE N_NIMCALL(void, prepend__ropes_265)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** a, tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* b) {
757 	unsureAsgnRef((void**) (&(*a)), amp___ropes_128(b, (*a)));
758 }
N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA *,amp___ropes_144)759 N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, amp___ropes_144)(NimStringDesc* a, tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* b) {
760 	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* result;
761 	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T1_;
762 	result = NIM_NIL;
763 	T1_ = NIM_NIL;
764 	T1_ = rope__ropes_109(a);
765 	result = amp___ropes_128(T1_, b);
766 	return result;
767 }
N_INLINE(void,nimSetMem__systemZmemory_7)768 static N_INLINE(void, nimSetMem__systemZmemory_7)(void* a, int v, NI size) {
769 	void* T1_;
770 	T1_ = (void*)0;
771 	T1_ = memset(a, v, ((size_t) (size)));
772 }
N_INLINE(void,nimZeroMem)773 static N_INLINE(void, nimZeroMem)(void* p, NI size) {
774 	nimSetMem__systemZmemory_7(p, ((int) 0), size);
775 }
N_INLINE(NCSTRING,nimToCStringConv)776 static N_INLINE(NCSTRING, nimToCStringConv)(NimStringDesc* s) {
777 	NCSTRING result;
778 	result = (NCSTRING)0;
779 	{
780 		NIM_BOOL T3_;
781 		T3_ = (NIM_BOOL)0;
782 		T3_ = (s == ((NimStringDesc*) NIM_NIL));
783 		if (T3_) goto LA4_;
784 		T3_ = ((*s).Sup.len == ((NI) 0));
785 		LA4_: ;
786 		if (!T3_) goto LA5_;
787 		result = "";
788 	}
789 	goto LA1_;
790 	LA5_: ;
791 	{
792 		result = ((NCSTRING) ((*s).data));
793 	}
794 	LA1_: ;
795 	return result;
796 }
N_NIMCALL(NIM_BOOL,equalsFile__ropes_385)797 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, equalsFile__ropes_385)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* r, FILE* f) {
798 	NIM_BOOL result;
799 	tyArray__9bKy7UA2LOi2vzOViufaW1Q buf;
800 	NI bpos;
801 	NI blen;
802 	NI btotal;
803 	NI rtotal;
804 	NIM_BOOL T27_;
805 	NI T28_;
806 {	result = (NIM_BOOL)0;
807 	nimZeroMem((void*)buf, sizeof(tyArray__9bKy7UA2LOi2vzOViufaW1Q));
808 	bpos = ((NI) 1024);
809 	blen = ((NI) 1024);
810 	btotal = ((NI) 0);
811 	rtotal = ((NI) 0);
812 	{
813 		NimStringDesc* s;
814 		s = NIM_NIL;
815 		{
816 			tySequence__WwUFq9cJ2xKRlsAWVEHyPRg* stack;
817 			if (!!((r == ((tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*) NIM_NIL)))) goto LA4_;
818 			stack = (tySequence__WwUFq9cJ2xKRlsAWVEHyPRg*) newSeq((&NTIseqLropeT__WwUFq9cJ2xKRlsAWVEHyPRg_), 1);
819 			asgnRef((void**) (&stack->data[0]), r);
820 			{
821 				while (1) {
822 					NI T8_;
823 					tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* it;
824 					NI spos;
825 					T8_ = (stack ? stack->Sup.len : 0);
826 					if (!(((NI) 0) < T8_)) goto LA7;
827 					it = pop__ropes_180((&stack));
828 					{
829 						while (1) {
830 							NI T11_;
831 							if (!!(((*it).left == ((tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*) NIM_NIL)))) goto LA10;
832 							stack = (tySequence__WwUFq9cJ2xKRlsAWVEHyPRg*) incrSeqV3((TGenericSeq*)(stack), (&NTIseqLropeT__WwUFq9cJ2xKRlsAWVEHyPRg_));
833 							T11_ = stack->Sup.len++;
834 							asgnRef((void**) (&stack->data[T11_]), (*it).right);
835 							it = (*it).left;
836 						} LA10: ;
837 					}
838 					s = (*it).data;
839 					spos = ((NI) 0);
840 					rtotal += (s ? s->Sup.len : 0);
841 					{
842 						while (1) {
843 							NI n;
844 							if (!(spos < (s ? s->Sup.len : 0))) goto LA13;
845 							{
846 								if (!(bpos == blen)) goto LA16_;
847 								bpos = ((NI) 0);
848 								blen = readBuffer__systemZio_144(f, ((void*) ((&buf[(((NI) 0))- 0]))), ((NI) 1024));
849 								btotal += blen;
850 								{
851 									if (!(blen == ((NI) 0))) goto LA20_;
852 									result = NIM_FALSE;
853 									goto BeforeRet_;
854 								}
855 								LA20_: ;
856 							}
857 							LA16_: ;
858 							n = (((NI)(blen - bpos) <= (NI)((s ? s->Sup.len : 0) - spos)) ? (NI)(blen - bpos) : (NI)((s ? s->Sup.len : 0) - spos));
859 							{
860 								NIM_BOOL T24_;
861 								T24_ = (NIM_BOOL)0;
862 								T24_ = equalMem__system_1735(((void*) ((&buf[(bpos)- 0]))), ((void*) ((NI)(((NI) (nimToCStringConv(s))) + spos))), ((NI) (n)));
863 								if (!!(T24_)) goto LA25_;
864 								result = NIM_FALSE;
865 								goto BeforeRet_;
866 							}
867 							LA25_: ;
868 							spos += n;
869 							bpos += n;
870 						} LA13: ;
871 					}
872 				} LA7: ;
873 			}
874 		}
875 		LA4_: ;
876 	}
877 	T27_ = (NIM_BOOL)0;
878 	T28_ = (NI)0;
879 	T28_ = readBuffer__systemZio_144(f, ((void*) ((&buf[(((NI) 0))- 0]))), ((NI) 1));
880 	T27_ = (T28_ == ((NI) 0));
881 	if (!(T27_)) goto LA29_;
882 	T27_ = (btotal == rtotal);
883 	LA29_: ;
884 	result = T27_;
885 	}BeforeRet_: ;
886 	return result;
887 }
N_NIMCALL(NIM_BOOL,equalsFile__ropes_453)888 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, equalsFile__ropes_453)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* r, NimStringDesc* filename) {
889 	NIM_BOOL result;
890 	FILE* f;
891 	result = (NIM_BOOL)0;
892 	f = (FILE*)0;
893 	result = open__systemZio_389(&f, filename, ((tyEnum_FileMode__ZJfK20XeZ9bv2j1pZjw9aswg) 0), ((NI) -1));
894 	{
895 		if (!result) goto LA3_;
896 		result = equalsFile__ropes_385(r, f);
897 		close__systemZio_217(f);
898 	}
899 	LA3_: ;
900 	return result;
901 }
N_NIMCALL(void,writeRope__ropes_237)902 N_LIB_PRIVATE N_NIMCALL(void, writeRope__ropes_237)(FILE* f, tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* r) {
903 	{
904 		NimStringDesc* s;
905 		s = NIM_NIL;
906 		{
907 			tySequence__WwUFq9cJ2xKRlsAWVEHyPRg* stack;
908 			if (!!((r == ((tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*) NIM_NIL)))) goto LA4_;
909 			stack = (tySequence__WwUFq9cJ2xKRlsAWVEHyPRg*) newSeq((&NTIseqLropeT__WwUFq9cJ2xKRlsAWVEHyPRg_), 1);
910 			asgnRef((void**) (&stack->data[0]), r);
911 			{
912 				while (1) {
913 					NI T8_;
914 					tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* it;
915 					T8_ = (stack ? stack->Sup.len : 0);
916 					if (!(((NI) 0) < T8_)) goto LA7;
917 					it = pop__ropes_180((&stack));
918 					{
919 						while (1) {
920 							NI T11_;
921 							if (!!(((*it).left == ((tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*) NIM_NIL)))) goto LA10;
922 							stack = (tySequence__WwUFq9cJ2xKRlsAWVEHyPRg*) incrSeqV3((TGenericSeq*)(stack), (&NTIseqLropeT__WwUFq9cJ2xKRlsAWVEHyPRg_));
923 							T11_ = stack->Sup.len++;
924 							asgnRef((void**) (&stack->data[T11_]), (*it).right);
925 							it = (*it).left;
926 						} LA10: ;
927 					}
928 					s = (*it).data;
929 					write__systemZio_205(f, s);
930 				} LA7: ;
931 			}
932 		}
933 		LA4_: ;
934 	}
935 }
N_NIMCALL(NIM_BOOL,writeRope__ropes_241)936 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, writeRope__ropes_241)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* head, NimStringDesc* filename) {
937 	NIM_BOOL result;
938 	FILE* f;
939 	result = (NIM_BOOL)0;
940 	f = (FILE*)0;
941 	{
942 		NIM_BOOL T3_;
943 		T3_ = (NIM_BOOL)0;
944 		T3_ = open__systemZio_389(&f, filename, ((tyEnum_FileMode__ZJfK20XeZ9bv2j1pZjw9aswg) 1), ((NI) -1));
945 		if (!T3_) goto LA4_;
946 		{
947 			if (!!((head == ((tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*) NIM_NIL)))) goto LA8_;
948 			writeRope__ropes_237(f, head);
949 		}
950 		LA8_: ;
951 		close__systemZio_217(f);
952 		result = NIM_TRUE;
953 	}
954 	goto LA1_;
955 	LA4_: ;
956 	{
957 		result = NIM_FALSE;
958 	}
959 	LA1_: ;
960 	return result;
961 }
N_NIMCALL(NIM_BOOL,writeRopeIfNotEqual__ropes_458)962 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, writeRopeIfNotEqual__ropes_458)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* r, NimStringDesc* filename) {
963 	NIM_BOOL result;
964 	result = (NIM_BOOL)0;
965 	{
966 		NIM_BOOL T3_;
967 		T3_ = (NIM_BOOL)0;
968 		T3_ = equalsFile__ropes_453(r, filename);
969 		if (!!(T3_)) goto LA4_;
970 		result = writeRope__ropes_241(r, filename);
971 	}
972 	goto LA1_;
973 	LA4_: ;
974 	{
975 		result = NIM_FALSE;
976 	}
977 	LA1_: ;
978 	return result;
979 }
N_NIMCALL(void,compiler_ropesInit000)980 N_LIB_PRIVATE N_NIMCALL(void, compiler_ropesInit000)(void) {
981 {
982 	TFrame FR_; FR_.len = 0;
983 
984 	nimRegisterGlobalMarker(TM__Vw9cfUOQOae9b9bzZBlucMZQg_3);
985 
986 }/* preInitProc end */
987 {
988 }
989 }
990 
N_NIMCALL(void,compiler_ropesDatInit000)991 N_LIB_PRIVATE N_NIMCALL(void, compiler_ropesDatInit000)(void) {
992 static TNimNode* TM__Vw9cfUOQOae9b9bzZBlucMZQg_2_4[4];
993 static TNimNode TM__Vw9cfUOQOae9b9bzZBlucMZQg_0[5];
994 NTIropeobj__OFzf0kSiPTcNreUIeJgWVA_.size = sizeof(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA);
995 NTIropeobj__OFzf0kSiPTcNreUIeJgWVA_.align = NIM_ALIGNOF(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA);
996 NTIropeobj__OFzf0kSiPTcNreUIeJgWVA_.kind = 17;
997 NTIropeobj__OFzf0kSiPTcNreUIeJgWVA_.base = (&NTIrootobj__ytyiCJqK439aF9cIibuRVpAg_);
998 NTIropeobj__OFzf0kSiPTcNreUIeJgWVA_.flags = 2;
999 TM__Vw9cfUOQOae9b9bzZBlucMZQg_2_4[0] = &TM__Vw9cfUOQOae9b9bzZBlucMZQg_0[1];
1000 TM__Vw9cfUOQOae9b9bzZBlucMZQg_0[1].kind = 1;
1001 TM__Vw9cfUOQOae9b9bzZBlucMZQg_0[1].offset = offsetof(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA, left);
1002 TM__Vw9cfUOQOae9b9bzZBlucMZQg_0[1].typ = (&NTIrope__4hi0XQqK9aLiPuWT9acsXm9aQ_);
1003 TM__Vw9cfUOQOae9b9bzZBlucMZQg_0[1].name = "left";
1004 TM__Vw9cfUOQOae9b9bzZBlucMZQg_2_4[1] = &TM__Vw9cfUOQOae9b9bzZBlucMZQg_0[2];
1005 TM__Vw9cfUOQOae9b9bzZBlucMZQg_0[2].kind = 1;
1006 TM__Vw9cfUOQOae9b9bzZBlucMZQg_0[2].offset = offsetof(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA, right);
1007 TM__Vw9cfUOQOae9b9bzZBlucMZQg_0[2].typ = (&NTIrope__4hi0XQqK9aLiPuWT9acsXm9aQ_);
1008 TM__Vw9cfUOQOae9b9bzZBlucMZQg_0[2].name = "right";
1009 TM__Vw9cfUOQOae9b9bzZBlucMZQg_2_4[2] = &TM__Vw9cfUOQOae9b9bzZBlucMZQg_0[3];
1010 TM__Vw9cfUOQOae9b9bzZBlucMZQg_0[3].kind = 1;
1011 TM__Vw9cfUOQOae9b9bzZBlucMZQg_0[3].offset = offsetof(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA, L);
1012 TM__Vw9cfUOQOae9b9bzZBlucMZQg_0[3].typ = (&NTIint__rR5Bzr1D5krxoo1NcNyeMA_);
1013 TM__Vw9cfUOQOae9b9bzZBlucMZQg_0[3].name = "L";
1014 TM__Vw9cfUOQOae9b9bzZBlucMZQg_2_4[3] = &TM__Vw9cfUOQOae9b9bzZBlucMZQg_0[4];
1015 TM__Vw9cfUOQOae9b9bzZBlucMZQg_0[4].kind = 1;
1016 TM__Vw9cfUOQOae9b9bzZBlucMZQg_0[4].offset = offsetof(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA, data);
1017 TM__Vw9cfUOQOae9b9bzZBlucMZQg_0[4].typ = (&NTIstring__77mFvmsOLKik79ci2hXkHEg_);
1018 TM__Vw9cfUOQOae9b9bzZBlucMZQg_0[4].name = "data";
1019 TM__Vw9cfUOQOae9b9bzZBlucMZQg_0[0].len = 4; TM__Vw9cfUOQOae9b9bzZBlucMZQg_0[0].kind = 2; TM__Vw9cfUOQOae9b9bzZBlucMZQg_0[0].sons = &TM__Vw9cfUOQOae9b9bzZBlucMZQg_2_4[0];
1020 NTIropeobj__OFzf0kSiPTcNreUIeJgWVA_.node = &TM__Vw9cfUOQOae9b9bzZBlucMZQg_0[0];
1021 NTIrope__4hi0XQqK9aLiPuWT9acsXm9aQ_.size = sizeof(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*);
1022 NTIrope__4hi0XQqK9aLiPuWT9acsXm9aQ_.align = NIM_ALIGNOF(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*);
1023 NTIrope__4hi0XQqK9aLiPuWT9acsXm9aQ_.kind = 22;
1024 NTIrope__4hi0XQqK9aLiPuWT9acsXm9aQ_.base = (&NTIropeobj__OFzf0kSiPTcNreUIeJgWVA_);
1025 NTIrope__4hi0XQqK9aLiPuWT9acsXm9aQ_.marker = Marker_tyRef__4hi0XQqK9aLiPuWT9acsXm9aQ;
1026 NTIarrayL48OO52485753_ropeT__USLYl0Lpkimm4FABiJ3ldA_.size = sizeof(tyArray__USLYl0Lpkimm4FABiJ3ldA);
1027 NTIarrayL48OO52485753_ropeT__USLYl0Lpkimm4FABiJ3ldA_.align = NIM_ALIGNOF(tyArray__USLYl0Lpkimm4FABiJ3ldA);
1028 NTIarrayL48OO52485753_ropeT__USLYl0Lpkimm4FABiJ3ldA_.kind = 16;
1029 NTIarrayL48OO52485753_ropeT__USLYl0Lpkimm4FABiJ3ldA_.base = (&NTIrope__4hi0XQqK9aLiPuWT9acsXm9aQ_);
1030 NTIseqLropeT__WwUFq9cJ2xKRlsAWVEHyPRg_.size = sizeof(tySequence__WwUFq9cJ2xKRlsAWVEHyPRg*);
1031 NTIseqLropeT__WwUFq9cJ2xKRlsAWVEHyPRg_.align = NIM_ALIGNOF(tySequence__WwUFq9cJ2xKRlsAWVEHyPRg*);
1032 NTIseqLropeT__WwUFq9cJ2xKRlsAWVEHyPRg_.kind = 24;
1033 NTIseqLropeT__WwUFq9cJ2xKRlsAWVEHyPRg_.base = (&NTIrope__4hi0XQqK9aLiPuWT9acsXm9aQ_);
1034 NTIseqLropeT__WwUFq9cJ2xKRlsAWVEHyPRg_.marker = Marker_tySequence__WwUFq9cJ2xKRlsAWVEHyPRg;
1035 }
1036 
1037