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

#include "nimbase.h"
#include <string.h>
#undef LANGUAGE_C
#undef MIPSEB
#undef MIPSEL
#undef PPC
#undef R3000
#undef R4000
#undef i386
#undef linux
#undef mips
#undef near
#undef far
#undef powerpc
#undef unix
#define nimfr_(x, y)
#define nimln_(x, y)
typedef struct tyObject_Table__GpIQt2f0xrasZObyH6X8bg tyObject_Table__GpIQt2f0xrasZObyH6X8bg;
typedef struct TNimType TNimType;
typedef struct tySequence__9chP3SzkaldXzawWQCDsqqg tySequence__9chP3SzkaldXzawWQCDsqqg;
typedef struct TNimNode TNimNode;
typedef struct tyTuple__aGv2fk9ceddvdC01ZJC2Q2g tyTuple__aGv2fk9ceddvdC01ZJC2Q2g;
typedef struct TGenericSeq TGenericSeq;
typedef struct NimStringDesc NimStringDesc;
typedef struct tyObject_Table__Ab4q9c36aMR4mtkEOIBzdzA tyObject_Table__Ab4q9c36aMR4mtkEOIBzdzA;
typedef struct tySequence__7lEisrXlQEzwtUKW5pzRCw tySequence__7lEisrXlQEzwtUKW5pzRCw;
typedef struct tyTuple__xYhUhS7X82rKTqbT9bRfCnw tyTuple__xYhUhS7X82rKTqbT9bRfCnw;
typedef struct tyObject_KeyError__t7nhKLvXTQS9cS8ByJU9bIag tyObject_KeyError__t7nhKLvXTQS9cS8ByJU9bIag;
typedef struct tyObject_ValueError__yoNlBGx0D2tRizIdhQuENw tyObject_ValueError__yoNlBGx0D2tRizIdhQuENw;
typedef struct tyObject_CatchableError__qrLSDoe2oBoAqNtJ9badtnA tyObject_CatchableError__qrLSDoe2oBoAqNtJ9badtnA;
typedef struct Exception Exception;
typedef struct RootObj RootObj;
typedef struct tySequence__uB9b75OUPRENsBAu4AnoePA tySequence__uB9b75OUPRENsBAu4AnoePA;
typedef struct tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g;
typedef struct tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w;
typedef struct tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ;
typedef struct tyObject_GcStack__7fytPA5bBsob6See21YMRA tyObject_GcStack__7fytPA5bBsob6See21YMRA;
typedef struct tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg;
typedef struct tyObject_SmallChunk__tXn60W2f8h3jgAYdEmy5NQ tyObject_SmallChunk__tXn60W2f8h3jgAYdEmy5NQ;
typedef struct tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg;
typedef struct tyObject_LLChunk__XsENErzHIZV9bhvyJx56wGw tyObject_LLChunk__XsENErzHIZV9bhvyJx56wGw;
typedef struct tyObject_IntSet__EZObFrE3NC9bIb3YMkY9crZA tyObject_IntSet__EZObFrE3NC9bIb3YMkY9crZA;
typedef struct tyObject_Trunk__W0r8S0Y3UGke6T9bIUWnnuw tyObject_Trunk__W0r8S0Y3UGke6T9bIUWnnuw;
typedef struct tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw;
typedef struct tyObject_HeapLinks__PDV1HBZ8CQSQJC9aOBFNRSg tyObject_HeapLinks__PDV1HBZ8CQSQJC9aOBFNRSg;
typedef struct tyTuple__ujsjpB2O9cjj3uDHsXbnSzg tyTuple__ujsjpB2O9cjj3uDHsXbnSzg;
typedef struct tyObject_GcStat__0RwLoVBHZPfUAcLczmfQAg tyObject_GcStat__0RwLoVBHZPfUAcLczmfQAg;
typedef struct tyObject_CellSet__jG87P0AI9aZtss9ccTYBIISQ tyObject_CellSet__jG87P0AI9aZtss9ccTYBIISQ;
typedef struct tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg;
typedef struct tyObject_Table__fdKWDDO1P17zvuQPReVgRA tyObject_Table__fdKWDDO1P17zvuQPReVgRA;
typedef struct tySequence__fdmz6VkIf1ewwrssKYqRFg tySequence__fdmz6VkIf1ewwrssKYqRFg;
typedef struct tyTuple__1mtQ8sCEE7DbfIuQciv9b5Q tyTuple__1mtQ8sCEE7DbfIuQciv9b5Q;
typedef struct tySequence__48JTohSgTy339bRxHzUD8KA tySequence__48JTohSgTy339bRxHzUD8KA;
typedef struct tyObject_Table__e2Ciu0s1q49aVQ7ULXy7l9bQ tyObject_Table__e2Ciu0s1q49aVQ7ULXy7l9bQ;
typedef struct tySequence__kxu4GK0onha2t9bo86mdVAg tySequence__kxu4GK0onha2t9bo86mdVAg;
typedef struct tyTuple__xDU9bZmv1ZbZkJDaATBekIQ tyTuple__xDU9bZmv1ZbZkJDaATBekIQ;
typedef struct tyObject_Table__IioUJGdqPI6xC7S7QF8MBw tyObject_Table__IioUJGdqPI6xC7S7QF8MBw;
typedef struct tySequence__Qr6E8eH7btq79cFKGaJfGLw tySequence__Qr6E8eH7btq79cFKGaJfGLw;
typedef struct tyTuple__EkGTYRWQ6y9cppXTlT8Xm5g tyTuple__EkGTYRWQ6y9cppXTlT8Xm5g;
typedef struct tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ;
typedef struct tyObject_Table__G1v8c16HePOldLeucwe05Q tyObject_Table__G1v8c16HePOldLeucwe05Q;
typedef struct tySequence__fIB1rTQ55aFonoft9a9bmljQ tySequence__fIB1rTQ55aFonoft9a9bmljQ;
typedef struct tyTuple__OJFzEczluV8Jmo9bRpBfkzw tyTuple__OJFzEczluV8Jmo9bRpBfkzw;
typedef struct tyObject_Table__0Y2brGGKD9bV6GJLXT9aUDgA tyObject_Table__0Y2brGGKD9bV6GJLXT9aUDgA;
typedef struct tySequence__23SMqauuRsbDANhthj9bWlA tySequence__23SMqauuRsbDANhthj9bWlA;
typedef struct tyTuple__2SGm9aGCXuo7XSQ9bqD29axXw tyTuple__2SGm9aGCXuo7XSQ9bqD29axXw;
typedef struct tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw;
typedef struct tyObject_Table__NttoEzoiq5CiphZe81oadg tyObject_Table__NttoEzoiq5CiphZe81oadg;
typedef struct tySequence__squ9b9bUH4OLHf6cEMrt6hVA tySequence__squ9b9bUH4OLHf6cEMrt6hVA;
typedef struct tyTuple__F3gkSrMB1qp2Tvf9bixVXwg tyTuple__F3gkSrMB1qp2Tvf9bixVXwg;
typedef struct tyObject_Table__nagDFX4QHx0s6Fvma9blmSg tyObject_Table__nagDFX4QHx0s6Fvma9blmSg;
typedef struct tySequence__pHNq3oXj9av2sEUdqaqeZjw tySequence__pHNq3oXj9av2sEUdqaqeZjw;
typedef struct tyTuple__wcNatyuf8WOqAhGLhSvgiw tyTuple__wcNatyuf8WOqAhGLhSvgiw;
typedef struct tyObject_BTree__VZdzO0Tlflp7WMN4gS8oPg tyObject_BTree__VZdzO0Tlflp7WMN4gS8oPg;
typedef struct tyObject_NodecolonObjectType___dNELmBSmY7nthjhZupWO6g tyObject_NodecolonObjectType___dNELmBSmY7nthjhZupWO6g;
typedef struct tyObject_Table__Os4it9bmHnOQtsd5CqH09aRQ tyObject_Table__Os4it9bmHnOQtsd5CqH09aRQ;
typedef struct tySequence__hLW2w9a9bDM1AHB8BIrU3BYw tySequence__hLW2w9a9bDM1AHB8BIrU3BYw;
typedef struct tyTuple__YGgHblKlCINajXDZno8UTQ tyTuple__YGgHblKlCINajXDZno8UTQ;
typedef struct tyObject_TIdObj__iIXPrEsiKHiioLj0HSkQhA tyObject_TIdObj__iIXPrEsiKHiioLj0HSkQhA;
typedef struct tySequence__Ef05srmQTDulnBdXR4Ja6Q tySequence__Ef05srmQTDulnBdXR4Ja6Q;
typedef struct tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w;
typedef struct tySequence__MvZmat48bhe9b6x9aUD58D5Q tySequence__MvZmat48bhe9b6x9aUD58D5Q;
typedef struct tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA;
typedef struct tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA;
typedef struct tyObject_Table__JrI9bTpOVccKpiJXKOskjFg tyObject_Table__JrI9bTpOVccKpiJXKOskjFg;
typedef struct tySequence__YuKuU17u5ApAIki23DK9bJw tySequence__YuKuU17u5ApAIki23DK9bJw;
typedef struct tyTuple__Wymbvuvlf49clEgp9bKoFN9bw tyTuple__Wymbvuvlf49clEgp9bKoFN9bw;
typedef struct tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q;
typedef struct tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA;
typedef struct tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ;
typedef struct tyObject_Table__7O9bs4LORhqcR0JGh7d1MDg tyObject_Table__7O9bs4LORhqcR0JGh7d1MDg;
typedef struct tySequence__s12F9c4cKfaapm8VzG9a1flQ tySequence__s12F9c4cKfaapm8VzG9a1flQ;
typedef struct tyTuple__8jHm6IGDGecciKpp2bTNxA tyTuple__8jHm6IGDGecciKpp2bTNxA;
typedef struct tyObject_Table__gZ3EYQdz9coOB7ngN9a1cqwA tyObject_Table__gZ3EYQdz9coOB7ngN9a1cqwA;
typedef struct tySequence__sII3pVVRkIdBZ2HDPdZddA tySequence__sII3pVVRkIdBZ2HDPdZddA;
typedef struct tyTuple__wROVfG5RQYpjEAhvO3LqdQ tyTuple__wROVfG5RQYpjEAhvO3LqdQ;
typedef struct tyObject_CountTable__chlLjy9bvnFM9b9bSZfiIkyGg tyObject_CountTable__chlLjy9bvnFM9b9bSZfiIkyGg;
typedef struct tySequence__jwzrUFjG9akTIJTBBFvvqxw tySequence__jwzrUFjG9akTIJTBBFvvqxw;
typedef struct tyTuple__XOVT24GHXwqiEj5GCsEGCA tyTuple__XOVT24GHXwqiEj5GCsEGCA;
typedef struct tyObject_CountTable__tUMxxU9cRgLolsrW9b7IBGsQ tyObject_CountTable__tUMxxU9cRgLolsrW9b7IBGsQ;
typedef struct tySequence__XUL1TrMU0tgXmaMFCIYgFQ tySequence__XUL1TrMU0tgXmaMFCIYgFQ;
typedef struct tyTuple__tA7Q8IrfOKH7Mn89cK9cBAIg tyTuple__tA7Q8IrfOKH7Mn89cK9cBAIg;
typedef struct tyObject_Table__6nOsw5R7jH72bux7HSST9bg tyObject_Table__6nOsw5R7jH72bux7HSST9bg;
typedef struct tySequence__diqJJ1bWuFP7M6rQDS9cBLQ tySequence__diqJJ1bWuFP7M6rQDS9cBLQ;
typedef struct tyTuple__4keOEuB8uAwYehpErwqI9ag tyTuple__4keOEuB8uAwYehpErwqI9ag;
typedef struct tyTuple__Iz0jrTw3w7v6sMzjrqs0nA tyTuple__Iz0jrTw3w7v6sMzjrqs0nA;
typedef struct tyObject_OrderedTable__ZZvSdVkA2s2sIyifu4cpkg tyObject_OrderedTable__ZZvSdVkA2s2sIyifu4cpkg;
typedef struct tySequence__MlAD6nAPq9bHKla9cWiIZP0g tySequence__MlAD6nAPq9bHKla9cWiIZP0g;
typedef struct tyTuple__awOivLjlO76sGdHY7nQUjQ tyTuple__awOivLjlO76sGdHY7nQUjQ;
typedef struct tyObject_JsonNodeObj__df9bshXB7C9cTiWPIOtX3j1Q tyObject_JsonNodeObj__df9bshXB7C9cTiWPIOtX3j1Q;
typedef struct tySequence__oLpBKXzW3hF9aCVMo5EymfQ tySequence__oLpBKXzW3hF9aCVMo5EymfQ;
typedef struct tyObject_Table__i55W8RrwGKsG9cl0sAKxgkQ tyObject_Table__i55W8RrwGKsG9cl0sAKxgkQ;
typedef struct tySequence__pUxI6Ljo6IKKHXKOZkQ7Og tySequence__pUxI6Ljo6IKKHXKOZkQ7Og;
typedef struct tyTuple__sr3s7uVHpu9cEbbDnCSg8yQ tyTuple__sr3s7uVHpu9cEbbDnCSg8yQ;
typedef struct tyObject_Table__XC01wkRgzAyOjTiapde7hQ tyObject_Table__XC01wkRgzAyOjTiapde7hQ;
typedef struct tySequence__wAC0kXbVGkLoWP8vdi0sUw tySequence__wAC0kXbVGkLoWP8vdi0sUw;
typedef struct tyTuple__A9cRoiotm9actU8lLMnN9bYcw tyTuple__A9cRoiotm9actU8lLMnN9bYcw;
typedef struct tyObject_IndexEntry__G9ccBDFWfr9aYnLgXTNGDHDg tyObject_IndexEntry__G9ccBDFWfr9aYnLgXTNGDHDg;
typedef struct tySequence__5PunAJrNQYcB8dF0jau3pQ tySequence__5PunAJrNQYcB8dF0jau3pQ;
typedef struct tyObject_StackTraceEntry__oLyohQ7O2XOvGnflOss8EA tyObject_StackTraceEntry__oLyohQ7O2XOvGnflOss8EA;
typedef struct tyTuple__zwpS6d6iewrdlBSTNFoyVA tyTuple__zwpS6d6iewrdlBSTNFoyVA;
struct tyObject_Table__GpIQt2f0xrasZObyH6X8bg {
tySequence__9chP3SzkaldXzawWQCDsqqg* data;
NI counter;
};
typedef NU8 tyEnum_TNimKind__jIBKr1ejBgsfM33Kxw4j7A;
typedef NU8 tySet_tyEnum_TNimTypeFlag__v8QUszD1sWlSIWZz7mC4bQ;
typedef N_NIMCALL_PTR(void, tyProc__ojoeKfW4VYIm36I9cpDTQIg) (void* p, NI op);
typedef N_NIMCALL_PTR(void*, tyProc__WSm2xU5ARYv9aAR4l0z9c9auQ) (void* p);
struct TNimType {
NI size;
tyEnum_TNimKind__jIBKr1ejBgsfM33Kxw4j7A kind;
tySet_tyEnum_TNimTypeFlag__v8QUszD1sWlSIWZz7mC4bQ flags;
TNimType* base;
TNimNode* node;
void* finalizer;
tyProc__ojoeKfW4VYIm36I9cpDTQIg marker;
tyProc__WSm2xU5ARYv9aAR4l0z9c9auQ deepcopy;
};
struct tyTuple__aGv2fk9ceddvdC01ZJC2Q2g {
NI Field0;
void* Field1;
NI Field2;
};
typedef NU8 tyEnum_TNimNodeKind__unfNsxrcATrufDZmpBq4HQ;
struct TNimNode {
tyEnum_TNimNodeKind__unfNsxrcATrufDZmpBq4HQ kind;
NI offset;
TNimType* typ;
NCSTRING name;
NI len;
TNimNode** sons;
};
struct TGenericSeq {
NI len;
NI reserved;
};
struct NimStringDesc {
  TGenericSeq Sup;
NIM_CHAR data[SEQ_DECL_SIZE];
};
struct tyObject_Table__Ab4q9c36aMR4mtkEOIBzdzA {
tySequence__7lEisrXlQEzwtUKW5pzRCw* data;
NI counter;
};
struct tyTuple__xYhUhS7X82rKTqbT9bRfCnw {
NI Field0;
NimStringDesc* Field1;
NI32 Field2;
};
struct RootObj {
TNimType* m_type;
};
struct Exception {
  RootObj Sup;
Exception* parent;
NCSTRING name;
NimStringDesc* message;
tySequence__uB9b75OUPRENsBAu4AnoePA* trace;
NU raiseId;
Exception* up;
};
struct tyObject_CatchableError__qrLSDoe2oBoAqNtJ9badtnA {
  Exception Sup;
};
struct tyObject_ValueError__yoNlBGx0D2tRizIdhQuENw {
  tyObject_CatchableError__qrLSDoe2oBoAqNtJ9badtnA Sup;
};
struct tyObject_KeyError__t7nhKLvXTQS9cS8ByJU9bIag {
  tyObject_ValueError__yoNlBGx0D2tRizIdhQuENw Sup;
};
struct tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g {
NI refcount;
TNimType* typ;
};
struct tyObject_GcStack__7fytPA5bBsob6See21YMRA {
void* bottom;
};
struct tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w {
NI len;
NI cap;
tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g** d;
};
typedef tyObject_SmallChunk__tXn60W2f8h3jgAYdEmy5NQ* tyArray__SiRwrEKZdLgxqz9a9aoVBglg[512];
typedef NU32 tyArray__BHbOSqU1t9b3Gt7K2c6fQig[24];
typedef tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg* tyArray__N1u1nqOgmuJN9cSZrnMHgOQ[32];
typedef tyArray__N1u1nqOgmuJN9cSZrnMHgOQ tyArray__B6durA4ZCi1xjJvRtyYxMg[24];
typedef tyObject_Trunk__W0r8S0Y3UGke6T9bIUWnnuw* tyArray__lh2A89ahMmYg9bCmpVaplLbA[256];
struct tyObject_IntSet__EZObFrE3NC9bIb3YMkY9crZA {
tyArray__lh2A89ahMmYg9bCmpVaplLbA data;
};
typedef tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* tyArray__0aOLqZchNi8nWtMTi8ND8w[2];
struct tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw {
tyArray__0aOLqZchNi8nWtMTi8ND8w link;
NI key;
NI upperBound;
NI level;
};
struct tyTuple__ujsjpB2O9cjj3uDHsXbnSzg {
tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg* Field0;
NI Field1;
};
typedef tyTuple__ujsjpB2O9cjj3uDHsXbnSzg tyArray__LzOv2eCDGiceMKQstCLmhw[30];
struct tyObject_HeapLinks__PDV1HBZ8CQSQJC9aOBFNRSg {
NI len;
tyArray__LzOv2eCDGiceMKQstCLmhw chunks;
tyObject_HeapLinks__PDV1HBZ8CQSQJC9aOBFNRSg* next;
};
struct tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg {
NI minLargeObj;
NI maxLargeObj;
tyArray__SiRwrEKZdLgxqz9a9aoVBglg freeSmallChunks;
NU32 flBitmap;
tyArray__BHbOSqU1t9b3Gt7K2c6fQig slBitmap;
tyArray__B6durA4ZCi1xjJvRtyYxMg matrix;
tyObject_LLChunk__XsENErzHIZV9bhvyJx56wGw* llmem;
NI currMem;
NI maxMem;
NI freeMem;
NI occ;
NI lastSize;
tyObject_IntSet__EZObFrE3NC9bIb3YMkY9crZA chunkStarts;
tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* root;
tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* deleted;
tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* last;
tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* freeAvlNodes;
NIM_BOOL locked;
NIM_BOOL blockChunkSizeIncrease;
NI nextChunkSize;
tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw bottomData;
tyObject_HeapLinks__PDV1HBZ8CQSQJC9aOBFNRSg heapLinks;
};
struct tyObject_GcStat__0RwLoVBHZPfUAcLczmfQAg {
NI stackScans;
NI cycleCollections;
NI maxThreshold;
NI maxStackSize;
NI maxStackCells;
NI cycleTableSize;
NI64 maxPause;
};
struct tyObject_CellSet__jG87P0AI9aZtss9ccTYBIISQ {
NI counter;
NI max;
tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg* head;
tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg** data;
};
struct tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ {
tyObject_GcStack__7fytPA5bBsob6See21YMRA stack;
NI cycleThreshold;
NI zctThreshold;
tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w zct;
tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w decStack;
tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w tempStack;
NI recGcLock;
tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg region;
tyObject_GcStat__0RwLoVBHZPfUAcLczmfQAg stat;
tyObject_CellSet__jG87P0AI9aZtss9ccTYBIISQ marked;
tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w additionalRoots;
NI gcThreadId;
};
struct tyObject_Table__fdKWDDO1P17zvuQPReVgRA {
tySequence__fdmz6VkIf1ewwrssKYqRFg* data;
NI counter;
};
struct tyTuple__1mtQ8sCEE7DbfIuQciv9b5Q {
NI Field0;
NI32 Field1;
tySequence__48JTohSgTy339bRxHzUD8KA* Field2;
};
struct tyObject_Table__e2Ciu0s1q49aVQ7ULXy7l9bQ {
tySequence__kxu4GK0onha2t9bo86mdVAg* data;
NI counter;
};
struct tyTuple__xDU9bZmv1ZbZkJDaATBekIQ {
NI Field0;
NI32 Field1;
NI32 Field2;
};
struct tyObject_Table__IioUJGdqPI6xC7S7QF8MBw {
tySequence__Qr6E8eH7btq79cFKGaJfGLw* data;
NI counter;
};
typedef NU8 tyArray__qtqsWM5aXmcpMIVmvq3kAA[16];
struct tyTuple__EkGTYRWQ6y9cppXTlT8Xm5g {
NI Field0;
tyArray__qtqsWM5aXmcpMIVmvq3kAA Field1;
tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* Field2;
};
struct tyObject_Table__G1v8c16HePOldLeucwe05Q {
tySequence__fIB1rTQ55aFonoft9a9bmljQ* data;
NI counter;
};
struct tyTuple__OJFzEczluV8Jmo9bRpBfkzw {
NI Field0;
NI Field1;
tyArray__qtqsWM5aXmcpMIVmvq3kAA Field2;
};
struct tyObject_Table__0Y2brGGKD9bV6GJLXT9aUDgA {
tySequence__23SMqauuRsbDANhthj9bWlA* data;
NI counter;
};
struct tyTuple__2SGm9aGCXuo7XSQ9bqD29axXw {
NI Field0;
NimStringDesc* Field1;
tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* Field2;
};
struct tyObject_Table__NttoEzoiq5CiphZe81oadg {
tySequence__squ9b9bUH4OLHf6cEMrt6hVA* data;
NI counter;
};
struct tyTuple__F3gkSrMB1qp2Tvf9bixVXwg {
NI Field0;
NimStringDesc* Field1;
NI64 Field2;
};
struct tyObject_Table__nagDFX4QHx0s6Fvma9blmSg {
tySequence__pHNq3oXj9av2sEUdqaqeZjw* data;
NI counter;
};
struct tyObject_BTree__VZdzO0Tlflp7WMN4gS8oPg {
tyObject_NodecolonObjectType___dNELmBSmY7nthjhZupWO6g* root;
NI entries;
};
struct tyTuple__wcNatyuf8WOqAhGLhSvgiw {
NI Field0;
NimStringDesc* Field1;
tyObject_BTree__VZdzO0Tlflp7WMN4gS8oPg Field2;
};
struct tyObject_Table__Os4it9bmHnOQtsd5CqH09aRQ {
tySequence__hLW2w9a9bDM1AHB8BIrU3BYw* data;
NI counter;
};
struct tyTuple__YGgHblKlCINajXDZno8UTQ {
NI Field0;
NI Field1;
tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* Field2;
};
struct tyObject_TIdObj__iIXPrEsiKHiioLj0HSkQhA {
  RootObj Sup;
NI id;
};
typedef NU8 tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag;
typedef NU8 tyEnum_TCallingConvention__yjAJ8w0h1PBaSwSGJ3P7IA;
typedef NU64 tySet_tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw;
typedef tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* tyArray__PsPyPA45AAjHu4uDGHNjTg[4];
typedef NU8 tyEnum_TLocKind__O7PRFZKuiBBWbku09cayVBg;
typedef NU8 tyEnum_TStorageLoc__JK9cKMX3XnqHaUky9b6gkGEw;
typedef NU16 tySet_tyEnum_TLocFlag__o2bqJgR4ceIupnUSpxiudA;
struct tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA {
tyEnum_TLocKind__O7PRFZKuiBBWbku09cayVBg k;
tyEnum_TStorageLoc__JK9cKMX3XnqHaUky9b6gkGEw storage;
tySet_tyEnum_TLocFlag__o2bqJgR4ceIupnUSpxiudA flags;
tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* lode;
tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* r;
};
struct tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ {
  tyObject_TIdObj__iIXPrEsiKHiioLj0HSkQhA Sup;
tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag kind;
tyEnum_TCallingConvention__yjAJ8w0h1PBaSwSGJ3P7IA callConv;
tySet_tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw flags;
tySequence__Ef05srmQTDulnBdXR4Ja6Q* sons;
tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n;
tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* owner;
tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* sym;
tyArray__PsPyPA45AAjHu4uDGHNjTg attachedOps;
tySequence__MvZmat48bhe9b6x9aUD58D5Q* methods;
NI64 size;
NI16 align;
NI16 paddingAtEnd;
NI16 lockLevel;
tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA loc;
tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typeInst;
NI uniqueId;
};
struct tyObject_Table__JrI9bTpOVccKpiJXKOskjFg {
tySequence__YuKuU17u5ApAIki23DK9bJw* data;
NI counter;
};
struct tyTuple__Wymbvuvlf49clEgp9bKoFN9bw {
NI Field0;
NI Field1;
tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* Field2;
};
struct tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q {
NU16 line;
NI16 col;
NI32 fileIndex;
};
typedef NU32 tySet_tyEnum_TNodeFlag__jyh9acXHkhZANSSvPIY7ZLg;
typedef NU8 tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw;
struct tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw {
tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* typ;
tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info;
tySet_tyEnum_TNodeFlag__jyh9acXHkhZANSSvPIY7ZLg flags;
tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw kind;
union{
struct {NI64 intVal;
};
struct {NF floatVal;
};
struct {NimStringDesc* strVal;
};
struct {tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* sym;
};
struct {tyObject_TIdent__GufRQq9c0miSybX3zBD4tyA* ident;
};
struct {tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ* sons;
};
};
NimStringDesc* comment;
};
struct tyObject_Table__7O9bs4LORhqcR0JGh7d1MDg {
tySequence__s12F9c4cKfaapm8VzG9a1flQ* data;
NI counter;
};
struct tyTuple__8jHm6IGDGecciKpp2bTNxA {
NI Field0;
NI64 Field1;
tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* Field2;
};
struct tyObject_Table__gZ3EYQdz9coOB7ngN9a1cqwA {
tySequence__sII3pVVRkIdBZ2HDPdZddA* data;
NI counter;
};
struct tyTuple__wROVfG5RQYpjEAhvO3LqdQ {
NI Field0;
tyArray__qtqsWM5aXmcpMIVmvq3kAA Field1;
tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* Field2;
};
struct tyObject_CountTable__chlLjy9bvnFM9b9bSZfiIkyGg {
tySequence__jwzrUFjG9akTIJTBBFvvqxw* data;
NI counter;
NIM_BOOL isSorted;
};
struct tyTuple__XOVT24GHXwqiEj5GCsEGCA {
NimStringDesc* Field0;
NI Field1;
};
struct tyObject_CountTable__tUMxxU9cRgLolsrW9b7IBGsQ {
tySequence__XUL1TrMU0tgXmaMFCIYgFQ* data;
NI counter;
NIM_BOOL isSorted;
};
struct tyTuple__tA7Q8IrfOKH7Mn89cK9cBAIg {
tyArray__qtqsWM5aXmcpMIVmvq3kAA Field0;
NI Field1;
};
struct tyObject_Table__6nOsw5R7jH72bux7HSST9bg {
tySequence__diqJJ1bWuFP7M6rQDS9cBLQ* data;
NI counter;
};
struct tyTuple__Iz0jrTw3w7v6sMzjrqs0nA {
tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* Field0;
tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* Field1;
};
struct tyTuple__4keOEuB8uAwYehpErwqI9ag {
NI Field0;
tyArray__qtqsWM5aXmcpMIVmvq3kAA Field1;
tyTuple__Iz0jrTw3w7v6sMzjrqs0nA Field2;
};
struct tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA {
  RootObj Sup;
tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* left;
tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* right;
NI L;
NimStringDesc* data;
};
struct tyObject_OrderedTable__ZZvSdVkA2s2sIyifu4cpkg {
tySequence__MlAD6nAPq9bHKla9cWiIZP0g* data;
NI counter;
NI first;
NI last;
};
struct tyTuple__awOivLjlO76sGdHY7nQUjQ {
NI Field0;
NI Field1;
NimStringDesc* Field2;
tyObject_JsonNodeObj__df9bshXB7C9cTiWPIOtX3j1Q* Field3;
};
typedef NU8 tyEnum_JsonNodeKind__RUngo7nCHe6O8aBGIcrhtg;
struct tyObject_JsonNodeObj__df9bshXB7C9cTiWPIOtX3j1Q {
tyEnum_JsonNodeKind__RUngo7nCHe6O8aBGIcrhtg kind;
union{
struct {NimStringDesc* str;
};
struct {NI64 num;
};
struct {NF fnum;
};
struct {NIM_BOOL bval;
};
struct {tyObject_OrderedTable__ZZvSdVkA2s2sIyifu4cpkg fields;
};
struct {tySequence__oLpBKXzW3hF9aCVMo5EymfQ* elems;
};
};
};
struct tyObject_Table__i55W8RrwGKsG9cl0sAKxgkQ {
tySequence__pUxI6Ljo6IKKHXKOZkQ7Og* data;
NI counter;
};
struct tyTuple__sr3s7uVHpu9cEbbDnCSg8yQ {
NI Field0;
NimStringDesc* Field1;
NI Field2;
};
struct tyObject_Table__XC01wkRgzAyOjTiapde7hQ {
tySequence__wAC0kXbVGkLoWP8vdi0sUw* data;
NI counter;
};
struct tyObject_IndexEntry__G9ccBDFWfr9aYnLgXTNGDHDg {
NimStringDesc* keyword;
NimStringDesc* link;
NimStringDesc* linkTitle;
NimStringDesc* linkDesc;
};
struct tyTuple__A9cRoiotm9actU8lLMnN9bYcw {
NI Field0;
tyObject_IndexEntry__G9ccBDFWfr9aYnLgXTNGDHDg Field1;
tySequence__5PunAJrNQYcB8dF0jau3pQ* Field2;
};
struct tyObject_StackTraceEntry__oLyohQ7O2XOvGnflOss8EA {
NCSTRING procname;
NI line;
NCSTRING filename;
};
struct tyTuple__zwpS6d6iewrdlBSTNFoyVA {
NI Field0;
tyObject_TSym__JpsEh5i1AcKChGYbg7aV4w* Field1;
};
struct tySequence__9chP3SzkaldXzawWQCDsqqg {
  TGenericSeq Sup;
  tyTuple__aGv2fk9ceddvdC01ZJC2Q2g data[SEQ_DECL_SIZE];
};
struct tySequence__7lEisrXlQEzwtUKW5pzRCw {
  TGenericSeq Sup;
  tyTuple__xYhUhS7X82rKTqbT9bRfCnw data[SEQ_DECL_SIZE];
};
struct tySequence__48JTohSgTy339bRxHzUD8KA {
  TGenericSeq Sup;
  NI32 data[SEQ_DECL_SIZE];
};
struct tySequence__fdmz6VkIf1ewwrssKYqRFg {
  TGenericSeq Sup;
  tyTuple__1mtQ8sCEE7DbfIuQciv9b5Q data[SEQ_DECL_SIZE];
};
struct tySequence__kxu4GK0onha2t9bo86mdVAg {
  TGenericSeq Sup;
  tyTuple__xDU9bZmv1ZbZkJDaATBekIQ data[SEQ_DECL_SIZE];
};
struct tySequence__Qr6E8eH7btq79cFKGaJfGLw {
  TGenericSeq Sup;
  tyTuple__EkGTYRWQ6y9cppXTlT8Xm5g data[SEQ_DECL_SIZE];
};
struct tySequence__fIB1rTQ55aFonoft9a9bmljQ {
  TGenericSeq Sup;
  tyTuple__OJFzEczluV8Jmo9bRpBfkzw data[SEQ_DECL_SIZE];
};
struct tySequence__23SMqauuRsbDANhthj9bWlA {
  TGenericSeq Sup;
  tyTuple__2SGm9aGCXuo7XSQ9bqD29axXw data[SEQ_DECL_SIZE];
};
struct tySequence__squ9b9bUH4OLHf6cEMrt6hVA {
  TGenericSeq Sup;
  tyTuple__F3gkSrMB1qp2Tvf9bixVXwg data[SEQ_DECL_SIZE];
};
struct tySequence__pHNq3oXj9av2sEUdqaqeZjw {
  TGenericSeq Sup;
  tyTuple__wcNatyuf8WOqAhGLhSvgiw data[SEQ_DECL_SIZE];
};
struct tySequence__hLW2w9a9bDM1AHB8BIrU3BYw {
  TGenericSeq Sup;
  tyTuple__YGgHblKlCINajXDZno8UTQ data[SEQ_DECL_SIZE];
};
struct tySequence__YuKuU17u5ApAIki23DK9bJw {
  TGenericSeq Sup;
  tyTuple__Wymbvuvlf49clEgp9bKoFN9bw data[SEQ_DECL_SIZE];
};
struct tySequence__s12F9c4cKfaapm8VzG9a1flQ {
  TGenericSeq Sup;
  tyTuple__8jHm6IGDGecciKpp2bTNxA data[SEQ_DECL_SIZE];
};
struct tySequence__sII3pVVRkIdBZ2HDPdZddA {
  TGenericSeq Sup;
  tyTuple__wROVfG5RQYpjEAhvO3LqdQ data[SEQ_DECL_SIZE];
};
struct tySequence__jwzrUFjG9akTIJTBBFvvqxw {
  TGenericSeq Sup;
  tyTuple__XOVT24GHXwqiEj5GCsEGCA data[SEQ_DECL_SIZE];
};
struct tySequence__XUL1TrMU0tgXmaMFCIYgFQ {
  TGenericSeq Sup;
  tyTuple__tA7Q8IrfOKH7Mn89cK9cBAIg data[SEQ_DECL_SIZE];
};
struct tySequence__diqJJ1bWuFP7M6rQDS9cBLQ {
  TGenericSeq Sup;
  tyTuple__4keOEuB8uAwYehpErwqI9ag data[SEQ_DECL_SIZE];
};
struct tySequence__MlAD6nAPq9bHKla9cWiIZP0g {
  TGenericSeq Sup;
  tyTuple__awOivLjlO76sGdHY7nQUjQ data[SEQ_DECL_SIZE];
};
struct tySequence__pUxI6Ljo6IKKHXKOZkQ7Og {
  TGenericSeq Sup;
  tyTuple__sr3s7uVHpu9cEbbDnCSg8yQ data[SEQ_DECL_SIZE];
};
struct tySequence__5PunAJrNQYcB8dF0jau3pQ {
  TGenericSeq Sup;
  tyObject_IndexEntry__G9ccBDFWfr9aYnLgXTNGDHDg data[SEQ_DECL_SIZE];
};
struct tySequence__wAC0kXbVGkLoWP8vdi0sUw {
  TGenericSeq Sup;
  tyTuple__A9cRoiotm9actU8lLMnN9bYcw data[SEQ_DECL_SIZE];
};
struct tySequence__uB9b75OUPRENsBAu4AnoePA {
  TGenericSeq Sup;
  tyObject_StackTraceEntry__oLyohQ7O2XOvGnflOss8EA data[SEQ_DECL_SIZE];
};
struct tySequence__Ef05srmQTDulnBdXR4Ja6Q {
  TGenericSeq Sup;
  tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* data[SEQ_DECL_SIZE];
};
struct tySequence__MvZmat48bhe9b6x9aUD58D5Q {
  TGenericSeq Sup;
  tyTuple__zwpS6d6iewrdlBSTNFoyVA data[SEQ_DECL_SIZE];
};
struct tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ {
  TGenericSeq Sup;
  tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* data[SEQ_DECL_SIZE];
};
struct tySequence__oLpBKXzW3hF9aCVMo5EymfQ {
  TGenericSeq Sup;
  tyObject_JsonNodeObj__df9bshXB7C9cTiWPIOtX3j1Q* data[SEQ_DECL_SIZE];
};
N_NOINLINE(void, chckNil)(void* p);
N_NIMCALL(void, genericReset)(void* dest, TNimType* mt);
static N_NIMCALL(void, Marker_tySequence__9chP3SzkaldXzawWQCDsqqg)(void* p, NI op);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isPowerOfTwo__1xdTQapFveM9bImKot7h9cdw)(NI x);
N_LIB_PRIVATE N_NIMCALL(void, failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A)(NimStringDesc* msg);
static N_INLINE(NI, chckRange)(NI i, NI a, NI b);
N_NOINLINE(void, raiseRangeError)(NI64 val);
N_NIMCALL(void*, newSeq)(TNimType* typ, NI len);
N_NIMCALL(void, unsureAsgnRef)(void** dest, void* src);
static N_INLINE(NI, rawGet__pJC7JHVRNtUUDTiQZ8plCgtables)(tyObject_Table__GpIQt2f0xrasZObyH6X8bg t, void* key, NI* hc);
static N_INLINE(NI, hash__7gl3lTUUVpX34lnpKJqWSAhashes)(void* x);
static N_INLINE(NIM_BOOL, isFilled__5Qpmu5QqwDY0esVXn6wf7wtables)(NI hcode);
N_NOINLINE(void, raiseIndexError2)(NI i, NI n);
static N_INLINE(NI, nextTry__rkF6R1GhqjFh3qSAPaT2Cwtables)(NI h, NI maxHash);
static N_INLINE(NI, addInt)(NI a, NI b);
N_NOINLINE(void, raiseOverflow)(void);
static N_INLINE(NI, subInt)(NI a, NI b);
static N_INLINE(NIM_BOOL, mustRehash__qu7bkfOlld3ZqX4akPQiHwtables)(NI length, NI counter);
N_NIMCALL(NI, mulInt)(NI a, NI b);
N_LIB_PRIVATE N_NIMCALL(void, enlarge__nhw9bTVfE6OkiLzyZXzMd2g)(tyObject_Table__GpIQt2f0xrasZObyH6X8bg* t);
N_LIB_PRIVATE N_NIMCALL(void, rawInsert__LmaHS4VRBw21v38Bn9cFz9aw)(tyObject_Table__GpIQt2f0xrasZObyH6X8bg* t, tySequence__9chP3SzkaldXzawWQCDsqqg** data, void* key, NI val, NI hc, NI h);
static N_INLINE(NI, rawGetKnownHC__dnp0S0givr4a9aDtgzNUbswtables)(tyObject_Table__GpIQt2f0xrasZObyH6X8bg t, void* key, NI hc);
N_NIMCALL(void, nimGCvisit)(void* d, NI op);
static N_NIMCALL(void, Marker_tySequence__7lEisrXlQEzwtUKW5pzRCw)(void* p, NI op);
static N_INLINE(NI, rawGet__aseVP1phVqFWkLGjK22lyQtables)(tyObject_Table__Ab4q9c36aMR4mtkEOIBzdzA t, NimStringDesc* key, NI* hc);
N_LIB_PRIVATE N_NIMCALL(NI, hash__6PCYkKlCNhq9cnRLnqWKkwQ)(NimStringDesc* x);
static N_INLINE(NIM_BOOL, eqStrings)(NimStringDesc* a, NimStringDesc* b);
static N_INLINE(NIM_BOOL, equalMem__9bGgqEk7RXXl6eqM9c1HdELAsystem)(void* a, void* b, NI size);
static N_INLINE(int, nimCmpMem)(void* a, void* b, NI size);
N_NIMCALL(void*, newObj)(TNimType* typ, NI size);
static N_INLINE(void, appendString)(NimStringDesc* dest, NimStringDesc* src);
static N_INLINE(void, copyMem__i80o3k0SgEI5gTRCzYdyWAsystem)(void* dest, void* source, NI size);
static N_INLINE(void, nimCopyMem)(void* dest, void* source, NI size);
N_NIMCALL(NimStringDesc*, rawNewString)(NI space);
static N_INLINE(void, asgnRef)(void** dest, void* src);
static N_INLINE(void, incRef__AT1eRuflKWyTTBdLjEDZbg_3system)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c);
static N_INLINE(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*, usrToCell__QFQqcLB3lgOdwipkv9a60xwsystem)(void* usr);
static N_INLINE(void, decRef__AT1eRuflKWyTTBdLjEDZbgsystem)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c);
static N_INLINE(void, rtlAddZCT__AT1eRuflKWyTTBdLjEDZbg_2system)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c);
N_LIB_PRIVATE N_NOINLINE(void, addZCT__Y66tOYFjgwJ0k4aLz4bc0Q)(tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w* s, tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c);
N_NIMCALL(void, raiseExceptionEx)(Exception* e, NCSTRING ename, NCSTRING procname, NCSTRING filename, NI line);
N_LIB_PRIVATE N_NIMCALL(void, enlarge__P4cqx62gVTX9c2bQ9bXSUNLQ)(tyObject_Table__Ab4q9c36aMR4mtkEOIBzdzA* t);
N_LIB_PRIVATE N_NIMCALL(void, rawInsert__yQ7epY8a0RazcWyuwV5Ntg)(tyObject_Table__Ab4q9c36aMR4mtkEOIBzdzA* t, tySequence__7lEisrXlQEzwtUKW5pzRCw** data, NimStringDesc* key, NI32 val, NI hc, NI h);
N_NIMCALL(NimStringDesc*, copyStringRC1)(NimStringDesc* src);
static N_INLINE(void, nimGCunrefNoCycle)(void* p);
static N_INLINE(NI, rawGetKnownHC__HSQlXRmDev9cP9bGdOA5HsvQtables)(tyObject_Table__Ab4q9c36aMR4mtkEOIBzdzA t, NimStringDesc* key, NI hc);
static N_NIMCALL(void, Marker_tySequence__fdmz6VkIf1ewwrssKYqRFg)(void* p, NI op);
static N_NIMCALL(void, Marker_tySequence__kxu4GK0onha2t9bo86mdVAg)(void* p, NI op);
static N_NIMCALL(void, Marker_tySequence__Qr6E8eH7btq79cFKGaJfGLw)(void* p, NI op);
static N_NIMCALL(void, Marker_tySequence__fIB1rTQ55aFonoft9a9bmljQ)(void* p, NI op);
static N_NIMCALL(void, Marker_tySequence__23SMqauuRsbDANhthj9bWlA)(void* p, NI op);
static N_NIMCALL(void, Marker_tySequence__squ9b9bUH4OLHf6cEMrt6hVA)(void* p, NI op);
static N_NIMCALL(void, Marker_tySequence__pHNq3oXj9av2sEUdqaqeZjw)(void* p, NI op);
static N_INLINE(NI, rawGet__8eLPyJNN6hcR50ctxeSkDgtables)(tyObject_Table__G1v8c16HePOldLeucwe05Q t, NI key, NI* hc);
static N_INLINE(NI, hash__aWv89bCLOibANstPF9bHQoyQhashes)(NI x);
N_LIB_PRIVATE N_NIMCALL(void, enlarge__IhIQ7TfMuHBewVVmTQrOlQ)(tyObject_Table__G1v8c16HePOldLeucwe05Q* t);
N_LIB_PRIVATE N_NIMCALL(void, rawInsert__2E5CplI9bWrWY15XwFVf2bA)(tyObject_Table__G1v8c16HePOldLeucwe05Q* t, tySequence__fIB1rTQ55aFonoft9a9bmljQ** data, NI key, tyArray__qtqsWM5aXmcpMIVmvq3kAA val, NI hc, NI h);
static N_INLINE(void, nimZeroMem)(void* p, NI size);
static N_INLINE(void, nimSetMem__zxfKBYntu9cBapkhrCOk1fgmemory)(void* a, int v, NI size);
static N_INLINE(NI, rawGetKnownHC__UaWZNeEgUaDIcsfDXIvasAtables)(tyObject_Table__G1v8c16HePOldLeucwe05Q t, NI key, NI hc);
static N_NIMCALL(void, Marker_tySequence__hLW2w9a9bDM1AHB8BIrU3BYw)(void* p, NI op);
static N_INLINE(NI, rawGet__6JakEI68PBBdEMzqcwDJCAtables)(tyObject_Table__Os4it9bmHnOQtsd5CqH09aRQ t, NI key, NI* hc);
N_LIB_PRIVATE N_NIMCALL(void, enlarge__e2mchzYwFdhwebJni6CqZg)(tyObject_Table__Os4it9bmHnOQtsd5CqH09aRQ* t);
N_LIB_PRIVATE N_NIMCALL(void, rawInsert__0NF4fuOYJP4YH8beRyMvWg)(tyObject_Table__Os4it9bmHnOQtsd5CqH09aRQ* t, tySequence__hLW2w9a9bDM1AHB8BIrU3BYw** data, NI key, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* val, NI hc, NI h);
static N_INLINE(NI, rawGetKnownHC__eNcUgWoz7pcvMX3xYaDRLgtables)(tyObject_Table__Os4it9bmHnOQtsd5CqH09aRQ t, NI key, NI hc);
static N_NIMCALL(void, Marker_tySequence__YuKuU17u5ApAIki23DK9bJw)(void* p, NI op);
static N_INLINE(NI, rawGet__aS7VMifwQ5UsdOtD1Dx7GAtables)(tyObject_Table__JrI9bTpOVccKpiJXKOskjFg t, NI key, NI* hc);
N_LIB_PRIVATE N_NIMCALL(void, enlarge__NZJD7XooFe3vwlZMQikupw)(tyObject_Table__JrI9bTpOVccKpiJXKOskjFg* t);
N_LIB_PRIVATE N_NIMCALL(void, rawInsert__zd631ggeGEiPTefqYEGpiA)(tyObject_Table__JrI9bTpOVccKpiJXKOskjFg* t, tySequence__YuKuU17u5ApAIki23DK9bJw** data, NI key, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* val, NI hc, NI h);
static N_INLINE(NI, rawGetKnownHC__abkoCGbCZlz6d4aa4hHxhgtables)(tyObject_Table__JrI9bTpOVccKpiJXKOskjFg t, NI key, NI hc);
N_NIMCALL(NimStringDesc*, nimIntToStr)(NI x);
static N_INLINE(NI, rawGet__UJsERo5BkViQH6ie2d9asaQtables)(tyObject_Table__IioUJGdqPI6xC7S7QF8MBw t, tyArray__qtqsWM5aXmcpMIVmvq3kAA key, NI* hc);
N_LIB_PRIVATE N_NIMCALL(NI, hash__XFPFecV5bGJUDhwku4bw7A)(tyArray__qtqsWM5aXmcpMIVmvq3kAA u);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, eqeq___76rDYGuUQDl2xSav8vUDiA)(tyArray__qtqsWM5aXmcpMIVmvq3kAA a, tyArray__qtqsWM5aXmcpMIVmvq3kAA b);
N_LIB_PRIVATE N_NIMCALL(void, enlarge__wtlRvAPpfH5zwFZ6PVJ9bEw)(tyObject_Table__IioUJGdqPI6xC7S7QF8MBw* t);
N_LIB_PRIVATE N_NIMCALL(void, rawInsert__u9aJV4Xxo1Qv0WGIfVav9c2Q)(tyObject_Table__IioUJGdqPI6xC7S7QF8MBw* t, tySequence__Qr6E8eH7btq79cFKGaJfGLw** data, tyArray__qtqsWM5aXmcpMIVmvq3kAA key, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* val, NI hc, NI h);
static N_INLINE(NI, rawGetKnownHC__bT8cRF5uMfM8lc5JOL9baswtables)(tyObject_Table__IioUJGdqPI6xC7S7QF8MBw t, tyArray__qtqsWM5aXmcpMIVmvq3kAA key, NI hc);
static N_INLINE(NI, rawGet__3B39bms3hJS0Syhd7xxEULgtables)(tyObject_Table__NttoEzoiq5CiphZe81oadg t, NimStringDesc* key, NI* hc);
N_LIB_PRIVATE N_NIMCALL(void, enlarge__Ia9aKwc9aYyF2xX8fakDniHw)(tyObject_Table__NttoEzoiq5CiphZe81oadg* t);
N_LIB_PRIVATE N_NIMCALL(void, rawInsert__XH2oBuEgDaY43m9bc9czCHzQ)(tyObject_Table__NttoEzoiq5CiphZe81oadg* t, tySequence__squ9b9bUH4OLHf6cEMrt6hVA** data, NimStringDesc* key, NI64 val, NI hc, NI h);
static N_INLINE(NI, rawGetKnownHC__A9bYZN6s9cFvr27D9aBNRZxQwtables)(tyObject_Table__NttoEzoiq5CiphZe81oadg t, NimStringDesc* key, NI hc);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, hasKey__tNDb8HX4Pcd05E6w80ngeA_2)(tyObject_Table__0Y2brGGKD9bV6GJLXT9aUDgA t, NimStringDesc* key);
static N_INLINE(NI, rawGet__SMyMIOHvYU9bKbIDA9aXa0CQtables)(tyObject_Table__0Y2brGGKD9bV6GJLXT9aUDgA t, NimStringDesc* key, NI* hc);
N_LIB_PRIVATE N_NIMCALL(void, enlarge__6K1KMyIJ44JU1rDXMt00fQ)(tyObject_Table__0Y2brGGKD9bV6GJLXT9aUDgA* t);
N_LIB_PRIVATE N_NIMCALL(void, rawInsert__dphYj2K2cQV4c59cmH9bTrwQ)(tyObject_Table__0Y2brGGKD9bV6GJLXT9aUDgA* t, tySequence__23SMqauuRsbDANhthj9bWlA** data, NimStringDesc* key, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* val, NI hc, NI h);
static N_INLINE(NI, rawGetKnownHC__So4NwPMLEKibXtBM4tOfkQtables)(tyObject_Table__0Y2brGGKD9bV6GJLXT9aUDgA t, NimStringDesc* key, NI hc);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, hasKey__HJN1GCNkXuSaKainyv8E2w_2)(tyObject_Table__nagDFX4QHx0s6Fvma9blmSg t, NimStringDesc* key);
static N_INLINE(NI, rawGet__z5lyUFnYWNZgtnmQvNIG1Atables)(tyObject_Table__nagDFX4QHx0s6Fvma9blmSg t, NimStringDesc* key, NI* hc);
N_LIB_PRIVATE N_NIMCALL(void, enlarge__xUzvAyBcVu9b8xJ84vmmdgg)(tyObject_Table__nagDFX4QHx0s6Fvma9blmSg* t);
N_LIB_PRIVATE N_NIMCALL(void, rawInsert__X9afgMwIB5o1VDnyZkF63LA)(tyObject_Table__nagDFX4QHx0s6Fvma9blmSg* t, tySequence__pHNq3oXj9av2sEUdqaqeZjw** data, NimStringDesc* key, tyObject_BTree__VZdzO0Tlflp7WMN4gS8oPg val, NI hc, NI h);
static N_INLINE(NI, rawGetKnownHC__TSpYtoROqC7475f9bg4iXugtables)(tyObject_Table__nagDFX4QHx0s6Fvma9blmSg t, NimStringDesc* key, NI hc);
static N_NIMCALL(void, Marker_tySequence__s12F9c4cKfaapm8VzG9a1flQ)(void* p, NI op);
static N_INLINE(NI, rawGet__WHgMCdcTgzDXYwrCU5rygAtables)(tyObject_Table__7O9bs4LORhqcR0JGh7d1MDg t, NI64 key, NI* hc);
static N_INLINE(NI, hash__sTYVuBLDBQbglYNxcT9bWrghashes)(NI64 x);
N_LIB_PRIVATE N_NIMCALL(void, enlarge__eoqIM0Hd0SjhaY9cur9b4i8w)(tyObject_Table__7O9bs4LORhqcR0JGh7d1MDg* t);
N_LIB_PRIVATE N_NIMCALL(void, rawInsert__9bGCjjc8EMS6OJa9a9anUwMjg)(tyObject_Table__7O9bs4LORhqcR0JGh7d1MDg* t, tySequence__s12F9c4cKfaapm8VzG9a1flQ** data, NI64 key, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* val, NI hc, NI h);
static N_INLINE(NI, rawGetKnownHC__K1f7gLsHF5x79adahVjRo5Atables)(tyObject_Table__7O9bs4LORhqcR0JGh7d1MDg t, NI64 key, NI hc);
static N_NIMCALL(void, Marker_tySequence__sII3pVVRkIdBZ2HDPdZddA)(void* p, NI op);
static N_NIMCALL(void, Marker_tySequence__jwzrUFjG9akTIJTBBFvvqxw)(void* p, NI op);
static N_NIMCALL(void, Marker_tySequence__XUL1TrMU0tgXmaMFCIYgFQ)(void* p, NI op);
static N_NIMCALL(void, Marker_tySequence__diqJJ1bWuFP7M6rQDS9cBLQ)(void* p, NI op);
N_LIB_PRIVATE N_NIMCALL(NI, rawGet__w2fZhqPRZdan2r9a51X3ZXA)(tyObject_CountTable__tUMxxU9cRgLolsrW9b7IBGsQ t, tyArray__qtqsWM5aXmcpMIVmvq3kAA key);
N_LIB_PRIVATE N_NIMCALL(void, enlarge__kgVnhJBOCSxuahhdbN9cidg)(tyObject_CountTable__tUMxxU9cRgLolsrW9b7IBGsQ* t);
N_LIB_PRIVATE N_NIMCALL(void, ctRawInsert__EhLhU9b3JGmgVjguB3HOsgQ)(tyObject_CountTable__tUMxxU9cRgLolsrW9b7IBGsQ t, tySequence__XUL1TrMU0tgXmaMFCIYgFQ** data, tyArray__qtqsWM5aXmcpMIVmvq3kAA key, NI val);
static N_INLINE(NI, rawGet__kRkMedOi9aSBIvfUrXCRvxQtables)(tyObject_Table__gZ3EYQdz9coOB7ngN9a1cqwA t, tyArray__qtqsWM5aXmcpMIVmvq3kAA key, NI* hc);
N_LIB_PRIVATE N_NIMCALL(void, enlarge__C3S2Q2U8lwkz8doGQgUxug)(tyObject_Table__gZ3EYQdz9coOB7ngN9a1cqwA* t);
N_LIB_PRIVATE N_NIMCALL(void, rawInsert__Gf66Iv0CJwvyroazPxyGpA)(tyObject_Table__gZ3EYQdz9coOB7ngN9a1cqwA* t, tySequence__sII3pVVRkIdBZ2HDPdZddA** data, tyArray__qtqsWM5aXmcpMIVmvq3kAA key, tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* val, NI hc, NI h);
static N_INLINE(NI, rawGetKnownHC__zkkRq29b9amWxeaphfvlnK6wtables)(tyObject_Table__gZ3EYQdz9coOB7ngN9a1cqwA t, tyArray__qtqsWM5aXmcpMIVmvq3kAA key, NI hc);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, dollar___0A9bslyIJ49bWrftLGh13rvg)(tyArray__qtqsWM5aXmcpMIVmvq3kAA u);
N_LIB_PRIVATE N_NIMCALL(NI, rawGet__JC4YP8wfdV9aPnE9bz5sPkhA)(tyObject_CountTable__chlLjy9bvnFM9b9bSZfiIkyGg t, NimStringDesc* key);
N_LIB_PRIVATE N_NIMCALL(void, enlarge__lFm9aQmmTsb5E6B6Jx9bb6dQ)(tyObject_CountTable__chlLjy9bvnFM9b9bSZfiIkyGg* t);
N_LIB_PRIVATE N_NIMCALL(void, ctRawInsert__3TJBMrgzatHsknHA6jSouA)(tyObject_CountTable__chlLjy9bvnFM9b9bSZfiIkyGg t, tySequence__jwzrUFjG9akTIJTBBFvvqxw** data, NimStringDesc* key, NI val);
static N_INLINE(NI, rawGet__xRsE9bd9cmMxcEsI9aaY9cppuAtables)(tyObject_Table__6nOsw5R7jH72bux7HSST9bg t, tyArray__qtqsWM5aXmcpMIVmvq3kAA key, NI* hc);
N_LIB_PRIVATE N_NIMCALL(void, enlarge__s8GP5B2qbnsxFlutyTGcnw)(tyObject_Table__6nOsw5R7jH72bux7HSST9bg* t);
N_LIB_PRIVATE N_NIMCALL(void, rawInsert__7en31G7VfABQHDdprxuYPA)(tyObject_Table__6nOsw5R7jH72bux7HSST9bg* t, tySequence__diqJJ1bWuFP7M6rQDS9cBLQ** data, tyArray__qtqsWM5aXmcpMIVmvq3kAA key, tyTuple__Iz0jrTw3w7v6sMzjrqs0nA val, NI hc, NI h);
static N_INLINE(NI, rawGetKnownHC__2LQwcr0umtLrUHRkcv9bHNAtables)(tyObject_Table__6nOsw5R7jH72bux7HSST9bg t, tyArray__qtqsWM5aXmcpMIVmvq3kAA key, NI hc);
static N_NIMCALL(void, Marker_tySequence__MlAD6nAPq9bHKla9cWiIZP0g)(void* p, NI op);
N_LIB_PRIVATE N_NIMCALL(NI, rawGet__U8BE8F1hkorXEqb1x9baemQ)(tyObject_OrderedTable__ZZvSdVkA2s2sIyifu4cpkg* t, NimStringDesc* key, NI* hc);
N_LIB_PRIVATE N_NIMCALL(void, enlarge__9cAm9cItwB6y9bUzyB9bE1NBlA)(tyObject_OrderedTable__ZZvSdVkA2s2sIyifu4cpkg* t);
N_LIB_PRIVATE N_NIMCALL(void, rawInsert__K9b9aplmUERncrp49bmzOdPnw)(tyObject_OrderedTable__ZZvSdVkA2s2sIyifu4cpkg* t, tySequence__MlAD6nAPq9bHKla9cWiIZP0g** data, NimStringDesc* key, tyObject_JsonNodeObj__df9bshXB7C9cTiWPIOtX3j1Q* val, NI hc, NI h);
N_LIB_PRIVATE N_NIMCALL(NI, rawGetKnownHC__9cQeRP9bxZubT9bE5dfTSZEew)(tyObject_OrderedTable__ZZvSdVkA2s2sIyifu4cpkg* t, NimStringDesc* key, NI hc);
static N_INLINE(NI, rawGet__B8emH5taC0NsYyBRssSIiwtables)(tyObject_OrderedTable__ZZvSdVkA2s2sIyifu4cpkg* t, NimStringDesc* key, NI* hc);
static N_INLINE(NI, rawGet__VHL4jbXDU6F0885vBGFikgtables)(tyObject_Table__e2Ciu0s1q49aVQ7ULXy7l9bQ t, NI32 key, NI* hc);
static N_INLINE(NI, hash__ixIcN23Rzgwj4rjH9cMHDWQhashes)(NI32 x);
N_LIB_PRIVATE N_NIMCALL(void, enlarge__WznuIAS2HbbgwoQgMlLNGA)(tyObject_Table__e2Ciu0s1q49aVQ7ULXy7l9bQ* t);
N_LIB_PRIVATE N_NIMCALL(void, rawInsert__wUVYiyWmQ9cvzc9aNVobHWfA)(tyObject_Table__e2Ciu0s1q49aVQ7ULXy7l9bQ* t, tySequence__kxu4GK0onha2t9bo86mdVAg** data, NI32 key, NI32 val, NI hc, NI h);
static N_INLINE(NI, rawGetKnownHC__WbZNr9ajY1NXktE9abGpy5rgtables)(tyObject_Table__e2Ciu0s1q49aVQ7ULXy7l9bQ t, NI32 key, NI hc);
static N_INLINE(NI, rawGet__QnNqXOulpiE3rTDm0rj6bgtables)(tyObject_Table__fdKWDDO1P17zvuQPReVgRA t, NI32 key, NI* hc);
N_LIB_PRIVATE N_NIMCALL(void, enlarge__8q9c9aCPUMM0w7HNF4dndgQg)(tyObject_Table__fdKWDDO1P17zvuQPReVgRA* t);
N_LIB_PRIVATE N_NIMCALL(void, rawInsert__IVJyWWnSh59cPztkOuQNV0g)(tyObject_Table__fdKWDDO1P17zvuQPReVgRA* t, tySequence__fdmz6VkIf1ewwrssKYqRFg** data, NI32 key, tySequence__48JTohSgTy339bRxHzUD8KA* val, NI hc, NI h);
N_NIMCALL(void, genericSeqAssign)(void* dest, void* src, TNimType* mt);
static N_INLINE(NI, rawGetKnownHC__4Fsb1T2VnPSV6oxoQiJufQtables)(tyObject_Table__fdKWDDO1P17zvuQPReVgRA t, NI32 key, NI hc);
static N_NIMCALL(void, Marker_tySequence__pUxI6Ljo6IKKHXKOZkQ7Og)(void* p, NI op);
static N_INLINE(NI, rawGet__hi24HVDthGVUIUfuDpjqIQtables)(tyObject_Table__i55W8RrwGKsG9cl0sAKxgkQ t, NimStringDesc* key, NI* hc);
N_LIB_PRIVATE N_NIMCALL(void, enlarge__VYLD6MqB59amU6bk9ahC8zNw)(tyObject_Table__i55W8RrwGKsG9cl0sAKxgkQ* t);
N_LIB_PRIVATE N_NIMCALL(void, rawInsert__K9c1MhW8jYPmeOjDdrH9ajyg)(tyObject_Table__i55W8RrwGKsG9cl0sAKxgkQ* t, tySequence__pUxI6Ljo6IKKHXKOZkQ7Og** data, NimStringDesc* key, NI val, NI hc, NI h);
static N_INLINE(NI, rawGetKnownHC__so4qfaUZuauODRq3tIG3Igtables)(tyObject_Table__i55W8RrwGKsG9cl0sAKxgkQ t, NimStringDesc* key, NI hc);
static N_NIMCALL(void, Marker_tySequence__wAC0kXbVGkLoWP8vdi0sUw)(void* p, NI op);
static N_INLINE(NI, rawGet__amoK2sCC6NAXbAYzoteO2wtables)(tyObject_Table__XC01wkRgzAyOjTiapde7hQ t, tyObject_IndexEntry__G9ccBDFWfr9aYnLgXTNGDHDg* key, NI* hc);
N_LIB_PRIVATE N_NIMCALL(NI, hash__qsZ1IgNQkpu0AbMu0eEzCQ)(tyObject_IndexEntry__G9ccBDFWfr9aYnLgXTNGDHDg* x);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, eqeq___Z149cxs9a8jIB6voh7d344JA)(tyObject_IndexEntry__G9ccBDFWfr9aYnLgXTNGDHDg* x, tyObject_IndexEntry__G9ccBDFWfr9aYnLgXTNGDHDg* y);
N_LIB_PRIVATE N_NIMCALL(void, enlarge__bYy9bKTH7krTyVnrGJtBKbg)(tyObject_Table__XC01wkRgzAyOjTiapde7hQ* t);
N_LIB_PRIVATE N_NIMCALL(void, rawInsert__5biQFmkRUjJPNto9cNutA9bw)(tyObject_Table__XC01wkRgzAyOjTiapde7hQ* t, tySequence__wAC0kXbVGkLoWP8vdi0sUw** data, tyObject_IndexEntry__G9ccBDFWfr9aYnLgXTNGDHDg* key, tySequence__5PunAJrNQYcB8dF0jau3pQ* val, NI hc, NI h);
static N_INLINE(NI, rawGetKnownHC__Y4x6AL1DTZHSh9bv7PGnpCwtables)(tyObject_Table__XC01wkRgzAyOjTiapde7hQ t, tyObject_IndexEntry__G9ccBDFWfr9aYnLgXTNGDHDg* key, NI hc);
TNimType NTI__GpIQt2f0xrasZObyH6X8bg_;
TNimType NTI__aGv2fk9ceddvdC01ZJC2Q2g_;
extern TNimType NTI__rR5Bzr1D5krxoo1NcNyeMA_;
extern TNimType NTI__vr5DoT1jILTGdRlYv1OYpw_;
TNimType NTI__9chP3SzkaldXzawWQCDsqqg_;
TNimType NTI__Ab4q9c36aMR4mtkEOIBzdzA_;
TNimType NTI__xYhUhS7X82rKTqbT9bRfCnw_;
extern TNimType NTI__77mFvmsOLKik79ci2hXkHEg_;
extern TNimType NTI__sVg18TP9cLifHyygRe9cro9aA_;
TNimType NTI__7lEisrXlQEzwtUKW5pzRCw_;
extern TNimType NTI__8SzoIAgLw9ci2v0yafHj9b6Q_;
extern TNimType NTI__t7nhKLvXTQS9cS8ByJU9bIag_;
extern tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ gch__IcYaEuuWivYAS86vFMTS3Q;
TNimType NTI__fdKWDDO1P17zvuQPReVgRA_;
TNimType NTI__1mtQ8sCEE7DbfIuQciv9b5Q_;
extern TNimType NTI__48JTohSgTy339bRxHzUD8KA_;
TNimType NTI__fdmz6VkIf1ewwrssKYqRFg_;
TNimType NTI__e2Ciu0s1q49aVQ7ULXy7l9bQ_;
TNimType NTI__xDU9bZmv1ZbZkJDaATBekIQ_;
TNimType NTI__kxu4GK0onha2t9bo86mdVAg_;
TNimType NTI__IioUJGdqPI6xC7S7QF8MBw_;
TNimType NTI__EkGTYRWQ6y9cppXTlT8Xm5g_;
extern TNimType NTI__qtqsWM5aXmcpMIVmvq3kAA_;
extern TNimType NTI__AgIT5feFR9a9aoVjv9cx2rOtg_;
TNimType NTI__Qr6E8eH7btq79cFKGaJfGLw_;
TNimType NTI__G1v8c16HePOldLeucwe05Q_;
TNimType NTI__OJFzEczluV8Jmo9bRpBfkzw_;
TNimType NTI__fIB1rTQ55aFonoft9a9bmljQ_;
TNimType NTI__0Y2brGGKD9bV6GJLXT9aUDgA_;
TNimType NTI__2SGm9aGCXuo7XSQ9bqD29axXw_;
extern TNimType NTI__fKfcLzXYiz5jNu3NH3Tv8Q_;
TNimType NTI__23SMqauuRsbDANhthj9bWlA_;
TNimType NTI__NttoEzoiq5CiphZe81oadg_;
TNimType NTI__F3gkSrMB1qp2Tvf9bixVXwg_;
extern TNimType NTI__Aav8dQoMlCFnZRxA0IhTHQ_;
TNimType NTI__squ9b9bUH4OLHf6cEMrt6hVA_;
TNimType NTI__nagDFX4QHx0s6Fvma9blmSg_;
TNimType NTI__wcNatyuf8WOqAhGLhSvgiw_;
extern TNimType NTI__VZdzO0Tlflp7WMN4gS8oPg_;
TNimType NTI__pHNq3oXj9av2sEUdqaqeZjw_;
TNimType NTI__Os4it9bmHnOQtsd5CqH09aRQ_;
TNimType NTI__YGgHblKlCINajXDZno8UTQ_;
TNimType NTI__hLW2w9a9bDM1AHB8BIrU3BYw_;
TNimType NTI__JrI9bTpOVccKpiJXKOskjFg_;
TNimType NTI__Wymbvuvlf49clEgp9bKoFN9bw_;
TNimType NTI__YuKuU17u5ApAIki23DK9bJw_;
TNimType NTI__7O9bs4LORhqcR0JGh7d1MDg_;
TNimType NTI__8jHm6IGDGecciKpp2bTNxA_;
TNimType NTI__s12F9c4cKfaapm8VzG9a1flQ_;
TNimType NTI__gZ3EYQdz9coOB7ngN9a1cqwA_;
TNimType NTI__wROVfG5RQYpjEAhvO3LqdQ_;
extern TNimType NTI__4hi0XQqK9aLiPuWT9acsXm9aQ_;
TNimType NTI__sII3pVVRkIdBZ2HDPdZddA_;
TNimType NTI__chlLjy9bvnFM9b9bSZfiIkyGg_;
extern TNimType NTI__XOVT24GHXwqiEj5GCsEGCA_;
TNimType NTI__jwzrUFjG9akTIJTBBFvvqxw_;
extern TNimType NTI__VaVACK0bpYmqIQ0mKcHfQQ_;
TNimType NTI__tUMxxU9cRgLolsrW9b7IBGsQ_;
TNimType NTI__tA7Q8IrfOKH7Mn89cK9cBAIg_;
TNimType NTI__XUL1TrMU0tgXmaMFCIYgFQ_;
TNimType NTI__6nOsw5R7jH72bux7HSST9bg_;
TNimType NTI__4keOEuB8uAwYehpErwqI9ag_;
extern TNimType NTI__Iz0jrTw3w7v6sMzjrqs0nA_;
TNimType NTI__diqJJ1bWuFP7M6rQDS9cBLQ_;
TNimType NTI__ZZvSdVkA2s2sIyifu4cpkg_;
TNimType NTI__awOivLjlO76sGdHY7nQUjQ_;
extern TNimType NTI__zfzzuQ8txrdZAYK0WGWpHg_;
TNimType NTI__MlAD6nAPq9bHKla9cWiIZP0g_;
TNimType NTI__i55W8RrwGKsG9cl0sAKxgkQ_;
TNimType NTI__sr3s7uVHpu9cEbbDnCSg8yQ_;
TNimType NTI__pUxI6Ljo6IKKHXKOZkQ7Og_;
TNimType NTI__XC01wkRgzAyOjTiapde7hQ_;
TNimType NTI__A9cRoiotm9actU8lLMnN9bYcw_;
extern TNimType NTI__G9ccBDFWfr9aYnLgXTNGDHDg_;
extern TNimType NTI__5PunAJrNQYcB8dF0jau3pQ_;
TNimType NTI__wAC0kXbVGkLoWP8vdi0sUw_;
STRING_LITERAL(TM__4SoG2KRQy3oMm9aUzSLtGrA_4, "tableimpl.nim(118, 10) `isPowerOfTwo(initialSize)` ", 51);
STRING_LITERAL(TM__4SoG2KRQy3oMm9aUzSLtGrA_7, "tableimpl.nim(118, 10) `isPowerOfTwo(defaultInitialSize)` ", 58);
STRING_LITERAL(TM__4SoG2KRQy3oMm9aUzSLtGrA_8, "hashcommon.nim(33, 9) `length > counter` ", 41);
STRING_LITERAL(TM__4SoG2KRQy3oMm9aUzSLtGrA_20, "key not found: ", 15);
STRING_LITERAL(TM__4SoG2KRQy3oMm9aUzSLtGrA_102, "tables.nim(2261, 9) `not t.isSorted` CountTable must not be use"
"d after sorting", 78);
static N_NIMCALL(void, Marker_tySequence__9chP3SzkaldXzawWQCDsqqg)(void* p, NI op) {
	tySequence__9chP3SzkaldXzawWQCDsqqg* a;
	NI T1_;
	a = (tySequence__9chP3SzkaldXzawWQCDsqqg*)p;
	T1_ = (NI)0;
}
static N_INLINE(NI, chckRange)(NI i, NI a, NI b) {	NI result;
{	result = (NI)0;
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = (a <= i);
		if (!(T3_)) goto LA4_;
		T3_ = (i <= b);
		LA4_: ;
		if (!T3_) goto LA5_;
		result = i;
		goto BeforeRet_;
	}
	goto LA1_;
	LA5_: ;
	{
		raiseRangeError(((NI64) (i)));
	}
	LA1_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, initTable__avINVlbIK12XSqjy8oSlzg)(NI initialSize, tyObject_Table__GpIQt2f0xrasZObyH6X8bg* Result) {	chckNil((void*)Result);
	genericReset((void*)Result, (&NTI__GpIQt2f0xrasZObyH6X8bg_));
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = isPowerOfTwo__1xdTQapFveM9bImKot7h9cdw(initialSize);
		if (!!(T3_)) goto LA4_;
		failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__4SoG2KRQy3oMm9aUzSLtGrA_4));
	}
	LA4_: ;
	(*Result).counter = ((NI) 0);
	unsureAsgnRef((void**) (&(*Result).data), (tySequence__9chP3SzkaldXzawWQCDsqqg*) newSeq((&NTI__9chP3SzkaldXzawWQCDsqqg_), ((NI)chckRange(initialSize, ((NI) 0), ((NI) IL64(9223372036854775807))))));
}
static N_INLINE(NI, hash__7gl3lTUUVpX34lnpKJqWSAhashes)(void* x) {	NI result;
	result = (NI)0;
	result = ((NI) ((NU)((NU64)(((NU) (ptrdiff_t) (x))) >> (NU64)(((NI) 3)))));
	return result;
}
static N_INLINE(NIM_BOOL, isFilled__5Qpmu5QqwDY0esVXn6wf7wtables)(NI hcode) {	NIM_BOOL result;
	result = (NIM_BOOL)0;
	result = !((hcode == ((NI) 0)));
	return result;
}
static N_INLINE(NI, addInt)(NI a, NI b) {	NI result;
{	result = (NI)0;
	result = (NI)((NU64)(a) + (NU64)(b));
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = (((NI) 0) <= (NI)(result ^ a));
		if (T3_) goto LA4_;
		T3_ = (((NI) 0) <= (NI)(result ^ b));
		LA4_: ;
		if (!T3_) goto LA5_;
		goto BeforeRet_;
	}
	LA5_: ;
	raiseOverflow();
	}BeforeRet_: ;
	return result;
}
static N_INLINE(NI, nextTry__rkF6R1GhqjFh3qSAPaT2Cwtables)(NI h, NI maxHash) {	NI result;
	NI TM__4SoG2KRQy3oMm9aUzSLtGrA_5;
	result = (NI)0;
	TM__4SoG2KRQy3oMm9aUzSLtGrA_5 = addInt(h, ((NI) 1));
	result = (NI)((NI)(TM__4SoG2KRQy3oMm9aUzSLtGrA_5) & maxHash);
	return result;
}
static N_INLINE(NI, subInt)(NI a, NI b) {	NI result;
{	result = (NI)0;
	result = (NI)((NU64)(a) - (NU64)(b));
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = (((NI) 0) <= (NI)(result ^ a));
		if (T3_) goto LA4_;
		T3_ = (((NI) 0) <= (NI)(result ^ (NI)((NU64) ~(b))));
		LA4_: ;
		if (!T3_) goto LA5_;
		goto BeforeRet_;
	}
	LA5_: ;
	raiseOverflow();
	}BeforeRet_: ;
	return result;
}
static N_INLINE(NI, rawGet__pJC7JHVRNtUUDTiQZ8plCgtables)(tyObject_Table__GpIQt2f0xrasZObyH6X8bg t, void* key, NI* hc) {	NI result;
	NI h;
	NI T10_;
	NI TM__4SoG2KRQy3oMm9aUzSLtGrA_6;
{	result = (NI)0;
	(*hc) = hash__7gl3lTUUVpX34lnpKJqWSAhashes(key);
	{
		if (!((*hc) == ((NI) 0))) goto LA3_;
		(*hc) = ((NI) 314159265);
	}
	LA3_: ;
	{
		NI T7_;
		T7_ = (t.data ? t.data->Sup.len : 0);
		if (!(T7_ == ((NI) 0))) goto LA8_;
		result = ((NI) -1);
		goto BeforeRet_;
	}
	LA8_: ;
	T10_ = ((t.data ? t.data->Sup.len : 0)-1);
	h = (NI)((*hc) & T10_);
	{
		while (1) {
			NIM_BOOL T13_;
			NI T20_;
			if ((NU)(h) >= (NU)(t.data ? t.data->Sup.len : 0)) raiseIndexError2(h,(t.data ? t.data->Sup.len : 0)-1);
			T13_ = (NIM_BOOL)0;
			T13_ = isFilled__5Qpmu5QqwDY0esVXn6wf7wtables(t.data->data[h].Field0);
			if (!T13_) goto LA12;
			{
				NIM_BOOL T16_;
				T16_ = (NIM_BOOL)0;
				if ((NU)(h) >= (NU)(t.data ? t.data->Sup.len : 0)) raiseIndexError2(h,(t.data ? t.data->Sup.len : 0)-1);
				T16_ = (t.data->data[h].Field0 == (*hc));
				if (!(T16_)) goto LA17_;
				if ((NU)(h) >= (NU)(t.data ? t.data->Sup.len : 0)) raiseIndexError2(h,(t.data ? t.data->Sup.len : 0)-1);
				T16_ = (t.data->data[h].Field1 == key);
				LA17_: ;
				if (!T16_) goto LA18_;
				result = h;
				goto BeforeRet_;
			}
			LA18_: ;
			T20_ = ((t.data ? t.data->Sup.len : 0)-1);
			h = nextTry__rkF6R1GhqjFh3qSAPaT2Cwtables(h, T20_);
		} LA12: ;
	}
	TM__4SoG2KRQy3oMm9aUzSLtGrA_6 = subInt(((NI) -1), h);
	result = (NI)(TM__4SoG2KRQy3oMm9aUzSLtGrA_6);
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NI, getOrDefault__ucLvuteXMiAMAvKs77J1uw)(tyObject_Table__GpIQt2f0xrasZObyH6X8bg t, void* key, NI default_0) {	NI result;
	NI hcX60gensym562310_;
	NI indexX60gensym562311_;
	result = (NI)0;
	hcX60gensym562310_ = (NI)0;
	indexX60gensym562311_ = rawGet__pJC7JHVRNtUUDTiQZ8plCgtables(t, key, (&hcX60gensym562310_));
	{
		if (!(((NI) 0) <= indexX60gensym562311_)) goto LA3_;
		if ((NU)(indexX60gensym562311_) >= (NU)(t.data ? t.data->Sup.len : 0)) raiseIndexError2(indexX60gensym562311_,(t.data ? t.data->Sup.len : 0)-1);
		result = t.data->data[indexX60gensym562311_].Field2;
	}
	goto LA1_;
	LA3_: ;
	{
		result = default_0;
	}
	LA1_: ;
	return result;
}
static N_INLINE(NIM_BOOL, mustRehash__qu7bkfOlld3ZqX4akPQiHwtables)(NI length, NI counter) {	NIM_BOOL result;
	NIM_BOOL T5_;
	NI TM__4SoG2KRQy3oMm9aUzSLtGrA_9;
	NI TM__4SoG2KRQy3oMm9aUzSLtGrA_10;
	NI TM__4SoG2KRQy3oMm9aUzSLtGrA_11;
	result = (NIM_BOOL)0;
	{
		if (!!((counter < length))) goto LA3_;
		failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__4SoG2KRQy3oMm9aUzSLtGrA_8));
	}
	LA3_: ;
	T5_ = (NIM_BOOL)0;
	TM__4SoG2KRQy3oMm9aUzSLtGrA_9 = mulInt(length, ((NI) 2));
	TM__4SoG2KRQy3oMm9aUzSLtGrA_10 = mulInt(counter, ((NI) 3));
	T5_ = ((NI)(TM__4SoG2KRQy3oMm9aUzSLtGrA_9) < (NI)(TM__4SoG2KRQy3oMm9aUzSLtGrA_10));
	if (T5_) goto LA6_;
	TM__4SoG2KRQy3oMm9aUzSLtGrA_11 = subInt(length, counter);
	T5_ = ((NI)(TM__4SoG2KRQy3oMm9aUzSLtGrA_11) < ((NI) 4));
	LA6_: ;
	result = T5_;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, rawInsert__LmaHS4VRBw21v38Bn9cFz9aw)(tyObject_Table__GpIQt2f0xrasZObyH6X8bg* t, tySequence__9chP3SzkaldXzawWQCDsqqg** data, void* key, NI val, NI hc, NI h) {	if ((NU)(h) >= (NU)((*data) ? (*data)->Sup.len : 0)) raiseIndexError2(h,((*data) ? (*data)->Sup.len : 0)-1);
	(*data)->data[h].Field1 = key;
	if ((NU)(h) >= (NU)((*data) ? (*data)->Sup.len : 0)) raiseIndexError2(h,((*data) ? (*data)->Sup.len : 0)-1);
	(*data)->data[h].Field2 = val;
	if ((NU)(h) >= (NU)((*data) ? (*data)->Sup.len : 0)) raiseIndexError2(h,((*data) ? (*data)->Sup.len : 0)-1);
	(*data)->data[h].Field0 = hc;
}
N_LIB_PRIVATE N_NIMCALL(void, enlarge__nhw9bTVfE6OkiLzyZXzMd2g)(tyObject_Table__GpIQt2f0xrasZObyH6X8bg* t) {	tySequence__9chP3SzkaldXzawWQCDsqqg* n;
	NI T1_;
	NI TM__4SoG2KRQy3oMm9aUzSLtGrA_12;
	tySequence__9chP3SzkaldXzawWQCDsqqg* T2_;
	n = (tySequence__9chP3SzkaldXzawWQCDsqqg*)0;
	T1_ = ((*t).data ? (*t).data->Sup.len : 0);
	TM__4SoG2KRQy3oMm9aUzSLtGrA_12 = mulInt(T1_, ((NI) 2));
	n = (tySequence__9chP3SzkaldXzawWQCDsqqg*) newSeq((&NTI__9chP3SzkaldXzawWQCDsqqg_), ((NI)chckRange((NI)(TM__4SoG2KRQy3oMm9aUzSLtGrA_12), ((NI) 0), ((NI) IL64(9223372036854775807)))));
	T2_ = (tySequence__9chP3SzkaldXzawWQCDsqqg*)0;
	T2_ = (*t).data;
	unsureAsgnRef((void**) (&(*t).data), n);
	n = T2_;
	{
		NI i;
		NI colontmp_;
		NI T4_;
		NI res;
		i = (NI)0;
		colontmp_ = (NI)0;
		T4_ = ((n ? n->Sup.len : 0)-1);
		colontmp_ = T4_;
		res = ((NI) 0);
		{
			while (1) {
				NI eh;
				NI TM__4SoG2KRQy3oMm9aUzSLtGrA_13;
				if (!(res <= colontmp_)) goto LA6;
				i = res;
				if ((NU)(i) >= (NU)(n ? n->Sup.len : 0)) raiseIndexError2(i,(n ? n->Sup.len : 0)-1);
				eh = n->data[i].Field0;
				{
					NIM_BOOL T9_;
					NI j;
					NI T12_;
					void* T17_;
					NI T18_;
					T9_ = (NIM_BOOL)0;
					T9_ = isFilled__5Qpmu5QqwDY0esVXn6wf7wtables(eh);
					if (!T9_) goto LA10_;
					T12_ = (((*t).data ? (*t).data->Sup.len : 0)-1);
					j = (NI)(eh & T12_);
					{
						while (1) {
							NIM_BOOL T15_;
							NI T16_;
							if ((NU)(j) >= (NU)((*t).data ? (*t).data->Sup.len : 0)) raiseIndexError2(j,((*t).data ? (*t).data->Sup.len : 0)-1);
							T15_ = (NIM_BOOL)0;
							T15_ = isFilled__5Qpmu5QqwDY0esVXn6wf7wtables((*t).data->data[j].Field0);
							if (!T15_) goto LA14;
							T16_ = (((*t).data ? (*t).data->Sup.len : 0)-1);
							j = nextTry__rkF6R1GhqjFh3qSAPaT2Cwtables(j, T16_);
						} LA14: ;
					}
					if ((NU)(i) >= (NU)(n ? n->Sup.len : 0)) raiseIndexError2(i,(n ? n->Sup.len : 0)-1);
					T17_ = (void*)0;
					T17_ = n->data[i].Field1;
					n->data[i].Field1 = 0;
					if ((NU)(i) >= (NU)(n ? n->Sup.len : 0)) raiseIndexError2(i,(n ? n->Sup.len : 0)-1);
					T18_ = (NI)0;
					T18_ = n->data[i].Field2;
					n->data[i].Field2 = 0;
					rawInsert__LmaHS4VRBw21v38Bn9cFz9aw(t, (&(*t).data), T17_, T18_, eh, j);
				}
				LA10_: ;
				TM__4SoG2KRQy3oMm9aUzSLtGrA_13 = addInt(res, ((NI) 1));
				res = (NI)(TM__4SoG2KRQy3oMm9aUzSLtGrA_13);
			} LA6: ;
		}
	}
}
static N_INLINE(NI, rawGetKnownHC__dnp0S0givr4a9aDtgzNUbswtables)(tyObject_Table__GpIQt2f0xrasZObyH6X8bg t, void* key, NI hc) {	NI result;
	NI h;
	NI T6_;
	NI TM__4SoG2KRQy3oMm9aUzSLtGrA_14;
{	result = (NI)0;
	{
		NI T3_;
		T3_ = (t.data ? t.data->Sup.len : 0);
		if (!(T3_ == ((NI) 0))) goto LA4_;
		result = ((NI) -1);
		goto BeforeRet_;
	}
	LA4_: ;
	T6_ = ((t.data ? t.data->Sup.len : 0)-1);
	h = (NI)(hc & T6_);
	{
		while (1) {
			NIM_BOOL T9_;
			NI T16_;
			if ((NU)(h) >= (NU)(t.data ? t.data->Sup.len : 0)) raiseIndexError2(h,(t.data ? t.data->Sup.len : 0)-1);
			T9_ = (NIM_BOOL)0;
			T9_ = isFilled__5Qpmu5QqwDY0esVXn6wf7wtables(t.data->data[h].Field0);
			if (!T9_) goto LA8;
			{
				NIM_BOOL T12_;
				T12_ = (NIM_BOOL)0;
				if ((NU)(h) >= (NU)(t.data ? t.data->Sup.len : 0)) raiseIndexError2(h,(t.data ? t.data->Sup.len : 0)-1);
				T12_ = (t.data->data[h].Field0 == hc);
				if (!(T12_)) goto LA13_;
				if ((NU)(h) >= (NU)(t.data ? t.data->Sup.len : 0)) raiseIndexError2(h,(t.data ? t.data->Sup.len : 0)-1);
				T12_ = (t.data->data[h].Field1 == key);
				LA13_: ;
				if (!T12_) goto LA14_;
				result = h;
				goto BeforeRet_;
			}
			LA14_: ;
			T16_ = ((t.data ? t.data->Sup.len : 0)-1);
			h = nextTry__rkF6R1GhqjFh3qSAPaT2Cwtables(h, T16_);
		} LA8: ;
	}
	TM__4SoG2KRQy3oMm9aUzSLtGrA_14 = subInt(((NI) -1), h);
	result = (NI)(TM__4SoG2KRQy3oMm9aUzSLtGrA_14);
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, X5BX5Deq___7nUN9bEb8it8esEzVF54z3Q)(tyObject_Table__GpIQt2f0xrasZObyH6X8bg* t, void* key, NI val) {	NI hc;
	NI index;
	{
		NI T3_;
		T3_ = ((*t).data ? (*t).data->Sup.len : 0);
		if (!(T3_ == ((NI) 0))) goto LA4_;
		{
			NIM_BOOL T8_;
			T8_ = (NIM_BOOL)0;
			T8_ = isPowerOfTwo__1xdTQapFveM9bImKot7h9cdw(((NI) 64));
			if (!!(T8_)) goto LA9_;
			failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__4SoG2KRQy3oMm9aUzSLtGrA_7));
		}
		LA9_: ;
		(*t).counter = ((NI) 0);
		unsureAsgnRef((void**) (&(*t).data), (tySequence__9chP3SzkaldXzawWQCDsqqg*) newSeq((&NTI__9chP3SzkaldXzawWQCDsqqg_), ((NI) 64)));
	}
	LA4_: ;
	hc = (NI)0;
	index = rawGet__pJC7JHVRNtUUDTiQZ8plCgtables((*t), key, (&hc));
	{
		if (!(((NI) 0) <= index)) goto LA13_;
		if ((NU)(index) >= (NU)((*t).data ? (*t).data->Sup.len : 0)) raiseIndexError2(index,((*t).data ? (*t).data->Sup.len : 0)-1);
		(*t).data->data[index].Field2 = val;
	}
	goto LA11_;
	LA13_: ;
	{
		NI TM__4SoG2KRQy3oMm9aUzSLtGrA_15;
		NI TM__4SoG2KRQy3oMm9aUzSLtGrA_16;
		{
			NI T18_;
			T18_ = ((*t).data ? (*t).data->Sup.len : 0);
			if (!(T18_ == ((NI) 0))) goto LA19_;
			{
				NIM_BOOL T23_;
				T23_ = (NIM_BOOL)0;
				T23_ = isPowerOfTwo__1xdTQapFveM9bImKot7h9cdw(((NI) 64));
				if (!!(T23_)) goto LA24_;
				failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__4SoG2KRQy3oMm9aUzSLtGrA_7));
			}
			LA24_: ;
			(*t).counter = ((NI) 0);
			unsureAsgnRef((void**) (&(*t).data), (tySequence__9chP3SzkaldXzawWQCDsqqg*) newSeq((&NTI__9chP3SzkaldXzawWQCDsqqg_), ((NI) 64)));
		}
		LA19_: ;
		{
			NI T28_;
			NIM_BOOL T29_;
			T28_ = ((*t).data ? (*t).data->Sup.len : 0);
			T29_ = (NIM_BOOL)0;
			T29_ = mustRehash__qu7bkfOlld3ZqX4akPQiHwtables(T28_, (*t).counter);
			if (!T29_) goto LA30_;
			enlarge__nhw9bTVfE6OkiLzyZXzMd2g(t);
			index = rawGetKnownHC__dnp0S0givr4a9aDtgzNUbswtables((*t), key, hc);
		}
		LA30_: ;
		TM__4SoG2KRQy3oMm9aUzSLtGrA_15 = subInt(((NI) -1), index);
		index = (NI)(TM__4SoG2KRQy3oMm9aUzSLtGrA_15);
		rawInsert__LmaHS4VRBw21v38Bn9cFz9aw(t, (&(*t).data), key, val, hc, index);
		TM__4SoG2KRQy3oMm9aUzSLtGrA_16 = addInt((*t).counter, ((NI) 1));
		(*t).counter = (NI)(TM__4SoG2KRQy3oMm9aUzSLtGrA_16);
	}
	LA11_: ;
}
static N_NIMCALL(void, Marker_tySequence__7lEisrXlQEzwtUKW5pzRCw)(void* p, NI op) {
	tySequence__7lEisrXlQEzwtUKW5pzRCw* a;
	NI T1_;
	a = (tySequence__7lEisrXlQEzwtUKW5pzRCw*)p;
	T1_ = (NI)0;
	for (T1_ = 0; T1_ < (a ? a->Sup.len : 0); T1_++) {
	nimGCvisit((void*)a->data[T1_].Field1, op);
	}
}
N_LIB_PRIVATE N_NIMCALL(void, initTable__14glhEbpv2WXsBQ7EIe6aQ)(NI initialSize, tyObject_Table__Ab4q9c36aMR4mtkEOIBzdzA* Result) {	chckNil((void*)Result);
	genericReset((void*)Result, (&NTI__Ab4q9c36aMR4mtkEOIBzdzA_));
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = isPowerOfTwo__1xdTQapFveM9bImKot7h9cdw(initialSize);
		if (!!(T3_)) goto LA4_;
		failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__4SoG2KRQy3oMm9aUzSLtGrA_4));
	}
	LA4_: ;
	(*Result).counter = ((NI) 0);
	unsureAsgnRef((void**) (&(*Result).data), (tySequence__7lEisrXlQEzwtUKW5pzRCw*) newSeq((&NTI__7lEisrXlQEzwtUKW5pzRCw_), ((NI)chckRange(initialSize, ((NI) 0), ((NI) IL64(9223372036854775807))))));
}
static N_INLINE(int, nimCmpMem)(void* a, void* b, NI size) {	int result;
	result = (int)0;
	result = memcmp(a, b, ((size_t) (size)));
	return result;
}
static N_INLINE(NIM_BOOL, equalMem__9bGgqEk7RXXl6eqM9c1HdELAsystem)(void* a, void* b, NI size) {	NIM_BOOL result;
	int T1_;
	result = (NIM_BOOL)0;
	T1_ = (int)0;
	T1_ = nimCmpMem(a, b, size);
	result = (T1_ == ((NI32) 0));
	return result;
}
static N_INLINE(NIM_BOOL, eqStrings)(NimStringDesc* a, NimStringDesc* b) {	NIM_BOOL result;
	NI alen;
	NI blen;
{	result = (NIM_BOOL)0;
	alen = (a ? a->Sup.len : 0);
	blen = (b ? b->Sup.len : 0);
	{
		if (!(alen == blen)) goto LA3_;
		{
			if (!(alen == ((NI) 0))) goto LA7_;
			result = NIM_TRUE;
			goto BeforeRet_;
		}
		LA7_: ;
		result = equalMem__9bGgqEk7RXXl6eqM9c1HdELAsystem(((void*) ((&a->data[((NI) 0)]))), ((void*) ((&b->data[((NI) 0)]))), ((NI) (alen)));
		goto BeforeRet_;
	}
	LA3_: ;
	}BeforeRet_: ;
	return result;
}
static N_INLINE(NI, rawGet__aseVP1phVqFWkLGjK22lyQtables)(tyObject_Table__Ab4q9c36aMR4mtkEOIBzdzA t, NimStringDesc* key, NI* hc) {	NI result;
	NI h;
	NI T10_;
	NI TM__4SoG2KRQy3oMm9aUzSLtGrA_19;
{	result = (NI)0;
	(*hc) = hash__6PCYkKlCNhq9cnRLnqWKkwQ(key);
	{
		if (!((*hc) == ((NI) 0))) goto LA3_;
		(*hc) = ((NI) 314159265);
	}
	LA3_: ;
	{
		NI T7_;
		T7_ = (t.data ? t.data->Sup.len : 0);
		if (!(T7_ == ((NI) 0))) goto LA8_;
		result = ((NI) -1);
		goto BeforeRet_;
	}
	LA8_: ;
	T10_ = ((t.data ? t.data->Sup.len : 0)-1);
	h = (NI)((*hc) & T10_);
	{
		while (1) {
			NIM_BOOL T13_;
			NI T20_;
			if ((NU)(h) >= (NU)(t.data ? t.data->Sup.len : 0)) raiseIndexError2(h,(t.data ? t.data->Sup.len : 0)-1);
			T13_ = (NIM_BOOL)0;
			T13_ = isFilled__5Qpmu5QqwDY0esVXn6wf7wtables(t.data->data[h].Field0);
			if (!T13_) goto LA12;
			{
				NIM_BOOL T16_;
				T16_ = (NIM_BOOL)0;
				if ((NU)(h) >= (NU)(t.data ? t.data->Sup.len : 0)) raiseIndexError2(h,(t.data ? t.data->Sup.len : 0)-1);
				T16_ = (t.data->data[h].Field0 == (*hc));
				if (!(T16_)) goto LA17_;
				if ((NU)(h) >= (NU)(t.data ? t.data->Sup.len : 0)) raiseIndexError2(h,(t.data ? t.data->Sup.len : 0)-1);
				T16_ = eqStrings(t.data->data[h].Field1, key);
				LA17_: ;
				if (!T16_) goto LA18_;
				result = h;
				goto BeforeRet_;
			}
			LA18_: ;
			T20_ = ((t.data ? t.data->Sup.len : 0)-1);
			h = nextTry__rkF6R1GhqjFh3qSAPaT2Cwtables(h, T20_);
		} LA12: ;
	}
	TM__4SoG2KRQy3oMm9aUzSLtGrA_19 = subInt(((NI) -1), h);
	result = (NI)(TM__4SoG2KRQy3oMm9aUzSLtGrA_19);
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, hasKey__V2bna9aem30Wfb1MT9bSnPzQ)(tyObject_Table__Ab4q9c36aMR4mtkEOIBzdzA t, NimStringDesc* key) {	NIM_BOOL result;
	NI hc;
	NI T1_;
	result = (NIM_BOOL)0;
	hc = (NI)0;
	T1_ = (NI)0;
	T1_ = rawGet__aseVP1phVqFWkLGjK22lyQtables(t, key, (&hc));
	result = (((NI) 0) <= T1_);
	return result;
}
static N_INLINE(void, nimCopyMem)(void* dest, void* source, NI size) {	void* T1_;
	T1_ = (void*)0;
	T1_ = memcpy(dest, source, ((size_t) (size)));
}
static N_INLINE(void, copyMem__i80o3k0SgEI5gTRCzYdyWAsystem)(void* dest, void* source, NI size) {	nimCopyMem(dest, source, size);
}
static N_INLINE(void, appendString)(NimStringDesc* dest, NimStringDesc* src) {	{
		if (!!((src == NIM_NIL))) goto LA3_;
		copyMem__i80o3k0SgEI5gTRCzYdyWAsystem(((void*) ((&(*dest).data[(*dest).Sup.len]))), ((void*) ((*src).data)), ((NI) ((NI)((*src).Sup.len + ((NI) 1)))));
		(*dest).Sup.len += (*src).Sup.len;
	}
	LA3_: ;
}
static N_INLINE(void, incRef__AT1eRuflKWyTTBdLjEDZbg_3system)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c) {	(*c).refcount = (NI)((NU64)((*c).refcount) + (NU64)(((NI) 8)));
}
static N_INLINE(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*, usrToCell__QFQqcLB3lgOdwipkv9a60xwsystem)(void* usr) {	tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* result;
	result = (tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*)0;
	result = ((tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*) ((NI)((NU64)(((NI) (ptrdiff_t) (usr))) - (NU64)(((NI) 16)))));
	return result;
}
static N_INLINE(void, rtlAddZCT__AT1eRuflKWyTTBdLjEDZbg_2system)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c) {	addZCT__Y66tOYFjgwJ0k4aLz4bc0Q((&gch__IcYaEuuWivYAS86vFMTS3Q.zct), c);
}
static N_INLINE(void, decRef__AT1eRuflKWyTTBdLjEDZbgsystem)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c) {	(*c).refcount = (NI)((NU64)((*c).refcount) - (NU64)(((NI) 8)));
	{
		if (!((NU64)((*c).refcount) < (NU64)(((NI) 8)))) goto LA3_;
		rtlAddZCT__AT1eRuflKWyTTBdLjEDZbg_2system(c);
	}
	LA3_: ;
}
static N_INLINE(void, asgnRef)(void** dest, void* src) {	{
		tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* T5_;
		if (!!((src == NIM_NIL))) goto LA3_;
		T5_ = (tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*)0;
		T5_ = usrToCell__QFQqcLB3lgOdwipkv9a60xwsystem(src);
		incRef__AT1eRuflKWyTTBdLjEDZbg_3system(T5_);
	}
	LA3_: ;
	{
		tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* T10_;
		if (!!(((*dest) == NIM_NIL))) goto LA8_;
		T10_ = (tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*)0;
		T10_ = usrToCell__QFQqcLB3lgOdwipkv9a60xwsystem((*dest));
		decRef__AT1eRuflKWyTTBdLjEDZbgsystem(T10_);
	}
	LA8_: ;
	(*dest) = src;
}
N_LIB_PRIVATE N_NIMCALL(NI32*, X5BX5D___cYD9bwEY2FvxLm9bWq5KUhtA)(tyObject_Table__Ab4q9c36aMR4mtkEOIBzdzA* t, NimStringDesc* key) {	NI32* result;
	NI hcX60gensym365565_;
	NI indexX60gensym365566_;
	result = (NI32*)0;
	hcX60gensym365565_ = (NI)0;
	indexX60gensym365566_ = rawGet__aseVP1phVqFWkLGjK22lyQtables((*t), key, (&hcX60gensym365565_));
	{
		if (!(((NI) 0) <= indexX60gensym365566_)) goto LA3_;
		if ((NU)(indexX60gensym365566_) >= (NU)((*t).data ? (*t).data->Sup.len : 0)) raiseIndexError2(indexX60gensym365566_,((*t).data ? (*t).data->Sup.len : 0)-1);
		result = (&(*t).data->data[indexX60gensym365566_].Field2);
	}
	goto LA1_;
	LA3_: ;
	{
		tyObject_KeyError__t7nhKLvXTQS9cS8ByJU9bIag* eX60gensym394803_;
		NimStringDesc* T6_;
		eX60gensym394803_ = (tyObject_KeyError__t7nhKLvXTQS9cS8ByJU9bIag*)0;
		eX60gensym394803_ = (tyObject_KeyError__t7nhKLvXTQS9cS8ByJU9bIag*) newObj((&NTI__8SzoIAgLw9ci2v0yafHj9b6Q_), sizeof(tyObject_KeyError__t7nhKLvXTQS9cS8ByJU9bIag));
		(*eX60gensym394803_).Sup.Sup.Sup.Sup.m_type = (&NTI__t7nhKLvXTQS9cS8ByJU9bIag_);
		(*eX60gensym394803_).Sup.Sup.Sup.name = "KeyError";
		T6_ = (NimStringDesc*)0;
		T6_ = rawNewString((key ? key->Sup.len : 0) + 15);
appendString(T6_, ((NimStringDesc*) &TM__4SoG2KRQy3oMm9aUzSLtGrA_20));
appendString(T6_, key);
		asgnRef((void**) (&(*eX60gensym394803_).Sup.Sup.Sup.message), T6_);
		asgnRef((void**) (&(*eX60gensym394803_).Sup.Sup.Sup.parent), NIM_NIL);
		raiseExceptionEx((Exception*)eX60gensym394803_, "KeyError", "[]", "tables.nim", 264);
	}
	LA1_: ;
	return result;
}
static N_INLINE(void, nimGCunrefNoCycle)(void* p) {	tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* T1_;
	T1_ = (tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*)0;
	T1_ = usrToCell__QFQqcLB3lgOdwipkv9a60xwsystem(p);
	decRef__AT1eRuflKWyTTBdLjEDZbgsystem(T1_);
}
N_LIB_PRIVATE N_NIMCALL(void, rawInsert__yQ7epY8a0RazcWyuwV5Ntg)(tyObject_Table__Ab4q9c36aMR4mtkEOIBzdzA* t, tySequence__7lEisrXlQEzwtUKW5pzRCw** data, NimStringDesc* key, NI32 val, NI hc, NI h) {	NimStringDesc* T1_;
	if ((NU)(h) >= (NU)((*data) ? (*data)->Sup.len : 0)) raiseIndexError2(h,((*data) ? (*data)->Sup.len : 0)-1);
	T1_ = (NimStringDesc*)0;
	T1_ = (*data)->data[h].Field1; (*data)->data[h].Field1 = copyStringRC1(key);
	if (T1_) nimGCunrefNoCycle(T1_);
	if ((NU)(h) >= (NU)((*data) ? (*data)->Sup.len : 0)) raiseIndexError2(h,((*data) ? (*data)->Sup.len : 0)-1);
	(*data)->data[h].Field2 = val;
	if ((NU)(h) >= (NU)((*data) ? (*data)->Sup.len : 0)) raiseIndexError2(h,((*data) ? (*data)->Sup.len : 0)-1);
	(*data)->data[h].Field0 = hc;
}
N_LIB_PRIVATE N_NIMCALL(void, enlarge__P4cqx62gVTX9c2bQ9bXSUNLQ)(tyObject_Table__Ab4q9c36aMR4mtkEOIBzdzA* t) {	tySequence__7lEisrXlQEzwtUKW5pzRCw* n;
	NI T1_;
	NI TM__4SoG2KRQy3oMm9aUzSLtGrA_21;
	tySequence__7lEisrXlQEzwtUKW5pzRCw* T2_;
	n = (tySequence__7lEisrXlQEzwtUKW5pzRCw*)0;
	T1_ = ((*t).data ? (*t).data->Sup.len : 0);
	TM__4SoG2KRQy3oMm9aUzSLtGrA_21 = mulInt(T1_, ((NI) 2));
	n = (tySequence__7lEisrXlQEzwtUKW5pzRCw*) newSeq((&NTI__7lEisrXlQEzwtUKW5pzRCw_), ((NI)chckRange((NI)(TM__4SoG2KRQy3oMm9aUzSLtGrA_21), ((NI) 0), ((NI) IL64(9223372036854775807)))));
	T2_ = (tySequence__7lEisrXlQEzwtUKW5pzRCw*)0;
	T2_ = (*t).data;
	unsureAsgnRef((void**) (&(*t).data), n);
	n = T2_;
	{
		NI i;
		NI colontmp_;
		NI T4_;
		NI res;
		i = (NI)0;
		colontmp_ = (NI)0;
		T4_ = ((n ? n->Sup.len : 0)-1);
		colontmp_ = T4_;
		res = ((NI) 0);
		{
			while (1) {
				NI eh;
				NI TM__4SoG2KRQy3oMm9aUzSLtGrA_22;
				if (!(res <= colontmp_)) goto LA6;
				i = res;
				if ((NU)(i) >= (NU)(n ? n->Sup.len : 0)) raiseIndexError2(i,(n ? n->Sup.len : 0)-1);
				eh = n->data[i].Field0;
				{
					NIM_BOOL T9_;
					NI j;
					NI T12_;
					NimStringDesc* T17_;
					NI32 T18_;
					T9_ = (NIM_BOOL)0;
					T9_ = isFilled__5Qpmu5QqwDY0esVXn6wf7wtables(eh);
					if (!T9_) goto LA10_;
					T12_ = (((*t).data ? (*t).data->Sup.len : 0)-1);
					j = (NI)(eh & T12_);
					{
						while (1) {
							NIM_BOOL T15_;
							NI T16_;
							if ((NU)(j) >= (NU)((*t).data ? (*t).data->Sup.len : 0)) raiseIndexError2(j,((*t).data ? (*t).data->Sup.len : 0)-1);
							T15_ = (NIM_BOOL)0;
							T15_ = isFilled__5Qpmu5QqwDY0esVXn6wf7wtables((*t).data->data[j].Field0);
							if (!T15_) goto LA14;
							T16_ = (((*t).data ? (*t).data->Sup.len : 0)-1);
							j = nextTry__rkF6R1GhqjFh3qSAPaT2Cwtables(j, T16_);
						} LA14: ;
					}
					if ((NU)(i) >= (NU)(n ? n->Sup.len : 0)) raiseIndexError2(i,(n ? n->Sup.len : 0)-1);
					T17_ = (NimStringDesc*)0;
					T17_ = n->data[i].Field1;
					asgnRef((void**) (&n->data[i].Field1), NIM_NIL);
					if ((NU)(i) >= (NU)(n ? n->Sup.len : 0)) raiseIndexError2(i,(n ? n->Sup.len : 0)-1);
					T18_ = (NI32)0;
					T18_ = n->data[i].Field2;
					n->data[i].Field2 = 0;
					rawInsert__yQ7epY8a0RazcWyuwV5Ntg(t, (&(*t).data), T17_, T18_, eh, j);
				}
				LA10_: ;
				TM__4SoG2KRQy3oMm9aUzSLtGrA_22 = addInt(res, ((NI) 1));
				res = (NI)(TM__4SoG2KRQy3oMm9aUzSLtGrA_22);
			} LA6: ;
		}
	}
}
static N_INLINE(NI, rawGetKnownHC__HSQlXRmDev9cP9bGdOA5HsvQtables)(tyObject_Table__Ab4q9c36aMR4mtkEOIBzdzA t, NimStringDesc* key, NI hc) {	NI result;
	NI h;
	NI T6_;
	NI TM__4SoG2KRQy3oMm9aUzSLtGrA_23;
{	result = (NI)0;
	{
		NI T3_;
		T3_ = (t.data ? t.data->Sup.len : 0);
		if (!(T3_ == ((NI) 0))) goto LA4_;
		result = ((NI) -1);
		goto BeforeRet_;
	}
	LA4_: ;
	T6_ = ((t.data ? t.data->Sup.len : 0)-1);
	h = (NI)(hc & T6_);
	{
		while (1) {
			NIM_BOOL T9_;
			NI T16_;
			if ((NU)(h) >= (NU)(t.data ? t.data->Sup.len : 0)) raiseIndexError2(h,(t.data ? t.data->Sup.len : 0)-1);
			T9_ = (NIM_BOOL)0;
			T9_ = isFilled__5Qpmu5QqwDY0esVXn6wf7wtables(t.data->data[h].Field0);
			if (!T9_) goto LA8;
			{
				NIM_BOOL T12_;
				T12_ = (NIM_BOOL)0;
				if ((NU)(h) >= (NU)(t.data ? t.data->Sup.len : 0)) raiseIndexError2(h,(t.data ? t.data->Sup.len : 0)-1);
				T12_ = (t.data->data[h].Field0 == hc);
				if (!(T12_)) goto LA13_;
				if ((NU)(h) >= (NU)(t.data ? t.data->Sup.len : 0)) raiseIndexError2(h,(t.data ? t.data->Sup.len : 0)-1);
				T12_ = eqStrings(t.data->data[h].Field1, key);
				LA13_: ;
				if (!T12_) goto LA14_;
				result = h;
				goto BeforeRet_;
			}
			LA14_: ;
			T16_ = ((t.data ? t.data->Sup.len : 0)-1);
			h = nextTry__rkF6R1GhqjFh3qSAPaT2Cwtables(h, T16_);
		} LA8: ;
	}
	TM__4SoG2KRQy3oMm9aUzSLtGrA_23 = subInt(((NI) -1), h);
	result = (NI)(TM__4SoG2KRQy3oMm9aUzSLtGrA_23);
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, X5BX5Deq___anizD9c0GXTQTVVON49cli6g)(tyObject_Table__Ab4q9c36aMR4mtkEOIBzdzA* t, NimStringDesc* key, NI32 val) {	NI hc;
	NI index;
	{
		NI T3_;
		T3_ = ((*t).data ? (*t).data->Sup.len : 0);
		if (!(T3_ == ((NI) 0))) goto LA4_;
		{
			NIM_BOOL T8_;
			T8_ = (NIM_BOOL)0;
			T8_ = isPowerOfTwo__1xdTQapFveM9bImKot7h9cdw(((NI) 64));
			if (!!(T8_)) goto LA9_;
			failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__4SoG2KRQy3oMm9aUzSLtGrA_7));
		}
		LA9_: ;
		(*t).counter = ((NI) 0);
		unsureAsgnRef((void**) (&(*t).data), (tySequence__7lEisrXlQEzwtUKW5pzRCw*) newSeq((&NTI__7lEisrXlQEzwtUKW5pzRCw_), ((NI) 64)));
	}
	LA4_: ;
	hc = (NI)0;
	index = rawGet__aseVP1phVqFWkLGjK22lyQtables((*t), key, (&hc));
	{
		if (!(((NI) 0) <= index)) goto LA13_;
		if ((NU)(index) >= (NU)((*t).data ? (*t).data->Sup.len : 0)) raiseIndexError2(index,((*t).data ? (*t).data->Sup.len : 0)-1);
		(*t).data->data[index].Field2 = val;
	}
	goto LA11_;
	LA13_: ;
	{
		NI TM__4SoG2KRQy3oMm9aUzSLtGrA_24;
		NI TM__4SoG2KRQy3oMm9aUzSLtGrA_25;
		{
			NI T18_;
			T18_ = ((*t).data ? (*t).data->Sup.len : 0);
			if (!(T18_ == ((NI) 0))) goto LA19_;
			{
				NIM_BOOL T23_;
				T23_ = (NIM_BOOL)0;
				T23_ = isPowerOfTwo__1xdTQapFveM9bImKot7h9cdw(((NI) 64));
				if (!!(T23_)) goto LA24_;
				failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__4SoG2KRQy3oMm9aUzSLtGrA_7));
			}
			LA24_: ;
			(*t).counter = ((NI) 0);
			unsureAsgnRef((void**) (&(*t).data), (tySequence__7lEisrXlQEzwtUKW5pzRCw*) newSeq((&NTI__7lEisrXlQEzwtUKW5pzRCw_), ((NI) 64)));
		}
		LA19_: ;
		{
			NI T28_;
			NIM_BOOL T29_;
			T28_ = ((*t).data ? (*t).data->Sup.len : 0);
			T29_ = (NIM_BOOL)0;
			T29_ = mustRehash__qu7bkfOlld3ZqX4akPQiHwtables(T28_, (*t).counter);
			if (!T29_) goto LA30_;
			enlarge__P4cqx62gVTX9c2bQ9bXSUNLQ(t);
			index = rawGetKnownHC__HSQlXRmDev9cP9bGdOA5HsvQtables((*t), key, hc);
		}
		LA30_: ;
		TM__4SoG2KRQy3oMm9aUzSLtGrA_24 = subInt(((NI) -1), index);
		index = (NI)(TM__4SoG2KRQy3oMm9aUzSLtGrA_24);
		rawInsert__yQ7epY8a0RazcWyuwV5Ntg(t, (&(*t).data), key, val, hc, index);
		TM__4SoG2KRQy3oMm9aUzSLtGrA_25 = addInt((*t).counter, ((NI) 1));
		(*t).counter = (NI)(TM__4SoG2KRQy3oMm9aUzSLtGrA_25);
	}
	LA11_: ;
}
static N_NIMCALL(void, Marker_tySequence__fdmz6VkIf1ewwrssKYqRFg)(void* p, NI op) {
	tySequence__fdmz6VkIf1ewwrssKYqRFg* a;
	NI T1_;
	a = (tySequence__fdmz6VkIf1ewwrssKYqRFg*)p;
	T1_ = (NI)0;
	for (T1_ = 0; T1_ < (a ? a->Sup.len : 0); T1_++) {
	nimGCvisit((void*)a->data[T1_].Field2, op);
	}
}
static N_NIMCALL(void, Marker_tySequence__kxu4GK0onha2t9bo86mdVAg)(void* p, NI op) {
	tySequence__kxu4GK0onha2t9bo86mdVAg* a;
	NI T1_;
	a = (tySequence__kxu4GK0onha2t9bo86mdVAg*)p;
	T1_ = (NI)0;
}
static N_NIMCALL(void, Marker_tySequence__Qr6E8eH7btq79cFKGaJfGLw)(void* p, NI op) {
	tySequence__Qr6E8eH7btq79cFKGaJfGLw* a;
	NI T1_;
	NI T2_;
	a = (tySequence__Qr6E8eH7btq79cFKGaJfGLw*)p;
	T1_ = (NI)0;
	for (T1_ = 0; T1_ < (a ? a->Sup.len : 0); T1_++) {
	T2_ = (NI)0;
	nimGCvisit((void*)a->data[T1_].Field2, op);
	}
}
static N_NIMCALL(void, Marker_tySequence__fIB1rTQ55aFonoft9a9bmljQ)(void* p, NI op) {
	tySequence__fIB1rTQ55aFonoft9a9bmljQ* a;
	NI T1_;
	NI T2_;
	a = (tySequence__fIB1rTQ55aFonoft9a9bmljQ*)p;
	T1_ = (NI)0;
	for (T1_ = 0; T1_ < (a ? a->Sup.len : 0); T1_++) {
	T2_ = (NI)0;
	}
}
static N_NIMCALL(void, Marker_tySequence__23SMqauuRsbDANhthj9bWlA)(void* p, NI op) {
	tySequence__23SMqauuRsbDANhthj9bWlA* a;
	NI T1_;
	a = (tySequence__23SMqauuRsbDANhthj9bWlA*)p;
	T1_ = (NI)0;
	for (T1_ = 0; T1_ < (a ? a->Sup.len : 0); T1_++) {
	nimGCvisit((void*)a->data[T1_].Field1, op);
	nimGCvisit((void*)a->data[T1_].Field2, op);
	}
}
static N_NIMCALL(void, Marker_tySequence__squ9b9bUH4OLHf6cEMrt6hVA)(void* p, NI op) {
	tySequence__squ9b9bUH4OLHf6cEMrt6hVA* a;
	NI T1_;
	a = (tySequence__squ9b9bUH4OLHf6cEMrt6hVA*)p;
	T1_ = (NI)0;
	for (T1_ = 0; T1_ < (a ? a->Sup.len : 0); T1_++) {
	nimGCvisit((void*)a->data[T1_].Field1, op);
	}
}
static N_NIMCALL(void, Marker_tySequence__pHNq3oXj9av2sEUdqaqeZjw)(void* p, NI op) {
	tySequence__pHNq3oXj9av2sEUdqaqeZjw* a;
	NI T1_;
	a = (tySequence__pHNq3oXj9av2sEUdqaqeZjw*)p;
	T1_ = (NI)0;
	for (T1_ = 0; T1_ < (a ? a->Sup.len : 0); T1_++) {
	nimGCvisit((void*)a->data[T1_].Field1, op);
	nimGCvisit((void*)a->data[T1_].Field2.root, op);
	}
}
static N_INLINE(NI, hash__aWv89bCLOibANstPF9bHQoyQhashes)(NI x) {	NI result;
	result = (NI)0;
	result = x;
	return result;
}
static N_INLINE(NI, rawGet__8eLPyJNN6hcR50ctxeSkDgtables)(tyObject_Table__G1v8c16HePOldLeucwe05Q t, NI key, NI* hc) {	NI result;
	NI h;
	NI T10_;
	NI TM__4SoG2KRQy3oMm9aUzSLtGrA_40;
{	result = (NI)0;
	(*hc) = hash__aWv89bCLOibANstPF9bHQoyQhashes(key);
	{
		if (!((*hc) == ((NI) 0))) goto LA3_;
		(*hc) = ((NI) 314159265);
	}
	LA3_: ;
	{
		NI T7_;
		T7_ = (t.data ? t.data->Sup.len : 0);
		if (!(T7_ == ((NI) 0))) goto LA8_;
		result = ((NI) -1);
		goto BeforeRet_;
	}
	LA8_: ;
	T10_ = ((t.data ? t.data->Sup.len : 0)-1);
	h = (NI)((*hc) & T10_);
	{
		while (1) {
			NIM_BOOL T13_;
			NI T20_;
			if ((NU)(h) >= (NU)(t.data ? t.data->Sup.len : 0)) raiseIndexError2(h,(t.data ? t.data->Sup.len : 0)-1);
			T13_ = (NIM_BOOL)0;
			T13_ = isFilled__5Qpmu5QqwDY0esVXn6wf7wtables(t.data->data[h].Field0);
			if (!T13_) goto LA12;
			{
				NIM_BOOL T16_;
				T16_ = (NIM_BOOL)0;
				if ((NU)(h) >= (NU)(t.data ? t.data->Sup.len : 0)) raiseIndexError2(h,(t.data ? t.data->Sup.len : 0)-1);
				T16_ = (t.data->data[h].Field0 == (*hc));
				if (!(T16_)) goto LA17_;
				if ((NU)(h) >= (NU)(t.data ? t.data->Sup.len : 0)) raiseIndexError2(h,(t.data ? t.data->Sup.len : 0)-1);
				T16_ = (t.data->data[h].Field1 == key);
				LA17_: ;
				if (!T16_) goto LA18_;
				result = h;
				goto BeforeRet_;
			}
			LA18_: ;
			T20_ = ((t.data ? t.data->Sup.len : 0)-1);
			h = nextTry__rkF6R1GhqjFh3qSAPaT2Cwtables(h, T20_);
		} LA12: ;
	}
	TM__4SoG2KRQy3oMm9aUzSLtGrA_40 = subInt(((NI) -1), h);
	result = (NI)(TM__4SoG2KRQy3oMm9aUzSLtGrA_40);
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, rawInsert__2E5CplI9bWrWY15XwFVf2bA)(tyObject_Table__G1v8c16HePOldLeucwe05Q* t, tySequence__fIB1rTQ55aFonoft9a9bmljQ** data, NI key, tyArray__qtqsWM5aXmcpMIVmvq3kAA val, NI hc, NI h) {	if ((NU)(h) >= (NU)((*data) ? (*data)->Sup.len : 0)) raiseIndexError2(h,((*data) ? (*data)->Sup.len : 0)-1);
	(*data)->data[h].Field1 = key;
	if ((NU)(h) >= (NU)((*data) ? (*data)->Sup.len : 0)) raiseIndexError2(h,((*data) ? (*data)->Sup.len : 0)-1);
	nimCopyMem((void*)(*data)->data[h].Field2, (NIM_CONST void*)val, sizeof(tyArray__qtqsWM5aXmcpMIVmvq3kAA));
	if ((NU)(h) >= (NU)((*data) ? (*data)->Sup.len : 0)) raiseIndexError2(h,((*data) ? (*data)->Sup.len : 0)-1);
	(*data)->data[h].Field0 = hc;
}
static N_INLINE(void, nimSetMem__zxfKBYntu9cBapkhrCOk1fgmemory)(void* a, int v, NI size) {	void* T1_;
	T1_ = (void*)0;
	T1_ = memset(a, v, ((size_t) (size)));
}
static N_INLINE(void, nimZeroMem)(void* p, NI size) {	nimSetMem__zxfKBYntu9cBapkhrCOk1fgmemory(p, ((int) 0), size);
}
N_LIB_PRIVATE N_NIMCALL(void, enlarge__IhIQ7TfMuHBewVVmTQrOlQ)(tyObject_Table__G1v8c16HePOldLeucwe05Q* t) {	tySequence__fIB1rTQ55aFonoft9a9bmljQ* n;
	NI T1_;
	NI TM__4SoG2KRQy3oMm9aUzSLtGrA_41;
	tySequence__fIB1rTQ55aFonoft9a9bmljQ* T2_;
	n = (tySequence__fIB1rTQ55aFonoft9a9bmljQ*)0;
	T1_ = ((*t).data ? (*t).data->Sup.len : 0);
	TM__4SoG2KRQy3oMm9aUzSLtGrA_41 = mulInt(T1_, ((NI) 2));
	n = (tySequence__fIB1rTQ55aFonoft9a9bmljQ*) newSeq((&NTI__fIB1rTQ55aFonoft9a9bmljQ_), ((NI)chckRange((NI)(TM__4SoG2KRQy3oMm9aUzSLtGrA_41), ((NI) 0), ((NI) IL64(9223372036854775807)))));
	T2_ = (tySequence__fIB1rTQ55aFonoft9a9bmljQ*)0;
	T2_ = (*t).data;
	unsureAsgnRef((void**) (&(*t).data), n);
	n = T2_;
	{
		NI i;
		NI colontmp_;
		NI T4_;
		NI res;
		i = (NI)0;
		colontmp_ = (NI)0;
		T4_ = ((n ? n->Sup.len : 0)-1);
		colontmp_ = T4_;
		res = ((NI) 0);
		{
			while (1) {
				NI eh;
				NI TM__4SoG2KRQy3oMm9aUzSLtGrA_42;
				if (!(res <= colontmp_)) goto LA6;
				i = res;
				if ((NU)(i) >= (NU)(n ? n->Sup.len : 0)) raiseIndexError2(i,(n ? n->Sup.len : 0)-1);
				eh = n->data[i].Field0;
				{
					NIM_BOOL T9_;
					NI j;
					NI T12_;
					NI T17_;
					tyArray__qtqsWM5aXmcpMIVmvq3kAA T18_;
					T9_ = (NIM_BOOL)0;
					T9_ = isFilled__5Qpmu5QqwDY0esVXn6wf7wtables(eh);
					if (!T9_) goto LA10_;
					T12_ = (((*t).data ? (*t).data->Sup.len : 0)-1);
					j = (NI)(eh & T12_);
					{
						while (1) {
							NIM_BOOL T15_;
							NI T16_;
							if ((NU)(j) >= (NU)((*t).data ? (*t).data->Sup.len : 0)) raiseIndexError2(j,((*t).data ? (*t).data->Sup.len : 0)-1);
							T15_ = (NIM_BOOL)0;
							T15_ = isFilled__5Qpmu5QqwDY0esVXn6wf7wtables((*t).data->data[j].Field0);
							if (!T15_) goto LA14;
							T16_ = (((*t).data ? (*t).data->Sup.len : 0)-1);
							j = nextTry__rkF6R1GhqjFh3qSAPaT2Cwtables(j, T16_);
						} LA14: ;
					}
					if ((NU)(i) >= (NU)(n ? n->Sup.len : 0)) raiseIndexError2(i,(n ? n->Sup.len : 0)-1);
					T17_ = (NI)0;
					T17_ = n->data[i].Field1;
					n->data[i].Field1 = 0;
					if ((NU)(i) >= (NU)(n ? n->Sup.len : 0)) raiseIndexError2(i,(n ? n->Sup.len : 0)-1);
					nimCopyMem((void*)T18_, (NIM_CONST void*)n->data[i].Field2, sizeof(tyArray__qtqsWM5aXmcpMIVmvq3kAA));
					chckNil((void*)n->data[i].Field2);
					nimZeroMem((void*)n->data[i].Field2, sizeof(tyArray__qtqsWM5aXmcpMIVmvq3kAA));
					rawInsert__2E5CplI9bWrWY15XwFVf2bA(t, (&(*t).data), T17_, T18_, eh, j);
				}
				LA10_: ;
				TM__4SoG2KRQy3oMm9aUzSLtGrA_42 = addInt(res, ((NI) 1));
				res = (NI)(TM__4SoG2KRQy3oMm9aUzSLtGrA_42);
			} LA6: ;
		}
	}
}
static N_INLINE(NI, rawGetKnownHC__UaWZNeEgUaDIcsfDXIvasAtables)(tyObject_Table__G1v8c16HePOldLeucwe05Q t, NI key, NI hc) {	NI result;
	NI h;
	NI T6_;
	NI TM__4SoG2KRQy3oMm9aUzSLtGrA_43;
{	result = (NI)0;
	{
		NI T3_;
		T3_ = (t.data ? t.data->Sup.len : 0);
		if (!(T3_ == ((NI) 0))) goto LA4_;
		result = ((NI) -1);
		goto BeforeRet_;
	}
	LA4_: ;
	T6_ = ((t.data ? t.data->Sup.len : 0)-1);
	h = (NI)(hc & T6_);
	{
		while (1) {
			NIM_BOOL T9_;
			NI T16_;
			if ((NU)(h) >= (NU)(t.data ? t.data->Sup.len : 0)) raiseIndexError2(h,(t.data ? t.data->Sup.len : 0)-1);
			T9_ = (NIM_BOOL)0;
			T9_ = isFilled__5Qpmu5QqwDY0esVXn6wf7wtables(t.data->data[h].Field0);
			if (!T9_) goto LA8;
			{
				NIM_BOOL T12_;
				T12_ = (NIM_BOOL)0;
				if ((NU)(h) >= (NU)(t.data ? t.data->Sup.len : 0)) raiseIndexError2(h,(t.data ? t.data->Sup.len : 0)-1);
				T12_ = (t.data->data[h].Field0 == hc);
				if (!(T12_)) goto LA13_;
				if ((NU)(h) >= (NU)(t.data ? t.data->Sup.len : 0)) raiseIndexError2(h,(t.data ? t.data->Sup.len : 0)-1);
				T12_ = (t.data->data[h].Field1 == key);
				LA13_: ;
				if (!T12_) goto LA14_;
				result = h;
				goto BeforeRet_;
			}
			LA14_: ;
			T16_ = ((t.data ? t.data->Sup.len : 0)-1);
			h = nextTry__rkF6R1GhqjFh3qSAPaT2Cwtables(h, T16_);
		} LA8: ;
	}
	TM__4SoG2KRQy3oMm9aUzSLtGrA_43 = subInt(((NI) -1), h);
	result = (NI)(TM__4SoG2KRQy3oMm9aUzSLtGrA_43);
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, X5BX5Deq___vM9aGuvtd2MaMcJSPmyUs0g)(tyObject_Table__G1v8c16HePOldLeucwe05Q* t, NI key, tyArray__qtqsWM5aXmcpMIVmvq3kAA val) {	NI hc;
	NI index;
	{
		NI T3_;
		T3_ = ((*t).data ? (*t).data->Sup.len : 0);
		if (!(T3_ == ((NI) 0))) goto LA4_;
		{
			NIM_BOOL T8_;
			T8_ = (NIM_BOOL)0;
			T8_ = isPowerOfTwo__1xdTQapFveM9bImKot7h9cdw(((NI) 64));
			if (!!(T8_)) goto LA9_;
			failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__4SoG2KRQy3oMm9aUzSLtGrA_7));
		}
		LA9_: ;
		(*t).counter = ((NI) 0);
		unsureAsgnRef((void**) (&(*t).data), (tySequence__fIB1rTQ55aFonoft9a9bmljQ*) newSeq((&NTI__fIB1rTQ55aFonoft9a9bmljQ_), ((NI) 64)));
	}
	LA4_: ;
	hc = (NI)0;
	index = rawGet__8eLPyJNN6hcR50ctxeSkDgtables((*t), key, (&hc));
	{
		if (!(((NI) 0) <= index)) goto LA13_;
		if ((NU)(index) >= (NU)((*t).data ? (*t).data->Sup.len : 0)) raiseIndexError2(index,((*t).data ? (*t).data->Sup.len : 0)-1);
		nimCopyMem((void*)(*t).data->data[index].Field2, (NIM_CONST void*)val, sizeof(tyArray__qtqsWM5aXmcpMIVmvq3kAA));
	}
	goto LA11_;
	LA13_: ;
	{
		NI TM__4SoG2KRQy3oMm9aUzSLtGrA_44;
		NI TM__4SoG2KRQy3oMm9aUzSLtGrA_45;
		{
			NI T18_;
			T18_ = ((*t).data ? (*t).data->Sup.len : 0);
			if (!(T18_ == ((NI) 0))) goto LA19_;
			{
				NIM_BOOL T23_;
				T23_ = (NIM_BOOL)0;
				T23_ = isPowerOfTwo__1xdTQapFveM9bImKot7h9cdw(((NI) 64));
				if (!!(T23_)) goto LA24_;
				failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__4SoG2KRQy3oMm9aUzSLtGrA_7));
			}
			LA24_: ;
			(*t).counter = ((NI) 0);
			unsureAsgnRef((void**) (&(*t).data), (tySequence__fIB1rTQ55aFonoft9a9bmljQ*) newSeq((&NTI__fIB1rTQ55aFonoft9a9bmljQ_), ((NI) 64)));
		}
		LA19_: ;
		{
			NI T28_;
			NIM_BOOL T29_;
			T28_ = ((*t).data ? (*t).data->Sup.len : 0);
			T29_ = (NIM_BOOL)0;
			T29_ = mustRehash__qu7bkfOlld3ZqX4akPQiHwtables(T28_, (*t).counter);
			if (!T29_) goto LA30_;
			enlarge__IhIQ7TfMuHBewVVmTQrOlQ(t);
			index = rawGetKnownHC__UaWZNeEgUaDIcsfDXIvasAtables((*t), key, hc);
		}
		LA30_: ;
		TM__4SoG2KRQy3oMm9aUzSLtGrA_44 = subInt(((NI) -1), index);
		index = (NI)(TM__4SoG2KRQy3oMm9aUzSLtGrA_44);
		rawInsert__2E5CplI9bWrWY15XwFVf2bA(t, (&(*t).data), key, val, hc, index);
		TM__4SoG2KRQy3oMm9aUzSLtGrA_45 = addInt((*t).counter, ((NI) 1));
		(*t).counter = (NI)(TM__4SoG2KRQy3oMm9aUzSLtGrA_45);
	}
	LA11_: ;
}
static N_NIMCALL(void, Marker_tySequence__hLW2w9a9bDM1AHB8BIrU3BYw)(void* p, NI op) {
	tySequence__hLW2w9a9bDM1AHB8BIrU3BYw* a;
	NI T1_;
	a = (tySequence__hLW2w9a9bDM1AHB8BIrU3BYw*)p;
	T1_ = (NI)0;
	for (T1_ = 0; T1_ < (a ? a->Sup.len : 0); T1_++) {
	nimGCvisit((void*)a->data[T1_].Field2, op);
	}
}
N_LIB_PRIVATE N_NIMCALL(void, initTable__a9bC7nkiLU3lFTLZqMubj5Q)(NI initialSize, tyObject_Table__Os4it9bmHnOQtsd5CqH09aRQ* Result) {	chckNil((void*)Result);
	genericReset((void*)Result, (&NTI__Os4it9bmHnOQtsd5CqH09aRQ_));
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = isPowerOfTwo__1xdTQapFveM9bImKot7h9cdw(initialSize);
		if (!!(T3_)) goto LA4_;
		failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__4SoG2KRQy3oMm9aUzSLtGrA_4));
	}
	LA4_: ;
	(*Result).counter = ((NI) 0);
	unsureAsgnRef((void**) (&(*Result).data), (tySequence__hLW2w9a9bDM1AHB8BIrU3BYw*) newSeq((&NTI__hLW2w9a9bDM1AHB8BIrU3BYw_), ((NI)chckRange(initialSize, ((NI) 0), ((NI) IL64(9223372036854775807))))));
}
static N_INLINE(NI, rawGet__6JakEI68PBBdEMzqcwDJCAtables)(tyObject_Table__Os4it9bmHnOQtsd5CqH09aRQ t, NI key, NI* hc) {	NI result;
	NI h;
	NI T10_;
	NI TM__4SoG2KRQy3oMm9aUzSLtGrA_48;
{	result = (NI)0;
	(*hc) = hash__aWv89bCLOibANstPF9bHQoyQhashes(key);
	{
		if (!((*hc) == ((NI) 0))) goto LA3_;
		(*hc) = ((NI) 314159265);
	}
	LA3_: ;
	{
		NI T7_;
		T7_ = (t.data ? t.data->Sup.len : 0);
		if (!(T7_ == ((NI) 0))) goto LA8_;
		result = ((NI) -1);
		goto BeforeRet_;
	}
	LA8_: ;
	T10_ = ((t.data ? t.data->Sup.len : 0)-1);
	h = (NI)((*hc) & T10_);
	{
		while (1) {
			NIM_BOOL T13_;
			NI T20_;
			if ((NU)(h) >= (NU)(t.data ? t.data->Sup.len : 0)) raiseIndexError2(h,(t.data ? t.data->Sup.len : 0)-1);
			T13_ = (NIM_BOOL)0;
			T13_ = isFilled__5Qpmu5QqwDY0esVXn6wf7wtables(t.data->data[h].Field0);
			if (!T13_) goto LA12;
			{
				NIM_BOOL T16_;
				T16_ = (NIM_BOOL)0;
				if ((NU)(h) >= (NU)(t.data ? t.data->Sup.len : 0)) raiseIndexError2(h,(t.data ? t.data->Sup.len : 0)-1);
				T16_ = (t.data->data[h].Field0 == (*hc));
				if (!(T16_)) goto LA17_;
				if ((NU)(h) >= (NU)(t.data ? t.data->Sup.len : 0)) raiseIndexError2(h,(t.data ? t.data->Sup.len : 0)-1);
				T16_ = (t.data->data[h].Field1 == key);
				LA17_: ;
				if (!T16_) goto LA18_;
				result = h;
				goto BeforeRet_;
			}
			LA18_: ;
			T20_ = ((t.data ? t.data->Sup.len : 0)-1);
			h = nextTry__rkF6R1GhqjFh3qSAPaT2Cwtables(h, T20_);
		} LA12: ;
	}
	TM__4SoG2KRQy3oMm9aUzSLtGrA_48 = subInt(((NI) -1), h);
	result = (NI)(TM__4SoG2KRQy3oMm9aUzSLtGrA_48);
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*, getOrDefault__9bQKf8dFvOTPFC2tZLVBE7A)(tyObject_Table__Os4it9bmHnOQtsd5CqH09aRQ t, NI key) {	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* result;
	NI hcX60gensym795073_;
	NI indexX60gensym795074_;
	result = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	hcX60gensym795073_ = (NI)0;
	indexX60gensym795074_ = rawGet__6JakEI68PBBdEMzqcwDJCAtables(t, key, (&hcX60gensym795073_));
	{
		if (!(((NI) 0) <= indexX60gensym795074_)) goto LA3_;
		if ((NU)(indexX60gensym795074_) >= (NU)(t.data ? t.data->Sup.len : 0)) raiseIndexError2(indexX60gensym795074_,(t.data ? t.data->Sup.len : 0)-1);
		result = t.data->data[indexX60gensym795074_].Field2;
	}
	LA3_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, rawInsert__0NF4fuOYJP4YH8beRyMvWg)(tyObject_Table__Os4it9bmHnOQtsd5CqH09aRQ* t, tySequence__hLW2w9a9bDM1AHB8BIrU3BYw** data, NI key, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* val, NI hc, NI h) {	if ((NU)(h) >= (NU)((*data) ? (*data)->Sup.len : 0)) raiseIndexError2(h,((*data) ? (*data)->Sup.len : 0)-1);
	(*data)->data[h].Field1 = key;
	if ((NU)(h) >= (NU)((*data) ? (*data)->Sup.len : 0)) raiseIndexError2(h,((*data) ? (*data)->Sup.len : 0)-1);
	asgnRef((void**) (&(*data)->data[h].Field2), val);
	if ((NU)(h) >= (NU)((*data) ? (*data)->Sup.len : 0)) raiseIndexError2(h,((*data) ? (*data)->Sup.len : 0)-1);
	(*data)->data[h].Field0 = hc;
}
N_LIB_PRIVATE N_NIMCALL(void, enlarge__e2mchzYwFdhwebJni6CqZg)(tyObject_Table__Os4it9bmHnOQtsd5CqH09aRQ* t) {	tySequence__hLW2w9a9bDM1AHB8BIrU3BYw* n;
	NI T1_;
	NI TM__4SoG2KRQy3oMm9aUzSLtGrA_49;
	tySequence__hLW2w9a9bDM1AHB8BIrU3BYw* T2_;
	n = (tySequence__hLW2w9a9bDM1AHB8BIrU3BYw*)0;
	T1_ = ((*t).data ? (*t).data->Sup.len : 0);
	TM__4SoG2KRQy3oMm9aUzSLtGrA_49 = mulInt(T1_, ((NI) 2));
	n = (tySequence__hLW2w9a9bDM1AHB8BIrU3BYw*) newSeq((&NTI__hLW2w9a9bDM1AHB8BIrU3BYw_), ((NI)chckRange((NI)(TM__4SoG2KRQy3oMm9aUzSLtGrA_49), ((NI) 0), ((NI) IL64(9223372036854775807)))));
	T2_ = (tySequence__hLW2w9a9bDM1AHB8BIrU3BYw*)0;
	T2_ = (*t).data;
	unsureAsgnRef((void**) (&(*t).data), n);
	n = T2_;
	{
		NI i;
		NI colontmp_;
		NI T4_;
		NI res;
		i = (NI)0;
		colontmp_ = (NI)0;
		T4_ = ((n ? n->Sup.len : 0)-1);
		colontmp_ = T4_;
		res = ((NI) 0);
		{
			while (1) {
				NI eh;
				NI TM__4SoG2KRQy3oMm9aUzSLtGrA_50;
				if (!(res <= colontmp_)) goto LA6;
				i = res;
				if ((NU)(i) >= (NU)(n ? n->Sup.len : 0)) raiseIndexError2(i,(n ? n->Sup.len : 0)-1);
				eh = n->data[i].Field0;
				{
					NIM_BOOL T9_;
					NI j;
					NI T12_;
					NI T17_;
					tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T18_;
					T9_ = (NIM_BOOL)0;
					T9_ = isFilled__5Qpmu5QqwDY0esVXn6wf7wtables(eh);
					if (!T9_) goto LA10_;
					T12_ = (((*t).data ? (*t).data->Sup.len : 0)-1);
					j = (NI)(eh & T12_);
					{
						while (1) {
							NIM_BOOL T15_;
							NI T16_;
							if ((NU)(j) >= (NU)((*t).data ? (*t).data->Sup.len : 0)) raiseIndexError2(j,((*t).data ? (*t).data->Sup.len : 0)-1);
							T15_ = (NIM_BOOL)0;
							T15_ = isFilled__5Qpmu5QqwDY0esVXn6wf7wtables((*t).data->data[j].Field0);
							if (!T15_) goto LA14;
							T16_ = (((*t).data ? (*t).data->Sup.len : 0)-1);
							j = nextTry__rkF6R1GhqjFh3qSAPaT2Cwtables(j, T16_);
						} LA14: ;
					}
					if ((NU)(i) >= (NU)(n ? n->Sup.len : 0)) raiseIndexError2(i,(n ? n->Sup.len : 0)-1);
					T17_ = (NI)0;
					T17_ = n->data[i].Field1;
					n->data[i].Field1 = 0;
					if ((NU)(i) >= (NU)(n ? n->Sup.len : 0)) raiseIndexError2(i,(n ? n->Sup.len : 0)-1);
					T18_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
					T18_ = n->data[i].Field2;
					asgnRef((void**) (&n->data[i].Field2), NIM_NIL);
					rawInsert__0NF4fuOYJP4YH8beRyMvWg(t, (&(*t).data), T17_, T18_, eh, j);
				}
				LA10_: ;
				TM__4SoG2KRQy3oMm9aUzSLtGrA_50 = addInt(res, ((NI) 1));
				res = (NI)(TM__4SoG2KRQy3oMm9aUzSLtGrA_50);
			} LA6: ;
		}
	}
}
static N_INLINE(NI, rawGetKnownHC__eNcUgWoz7pcvMX3xYaDRLgtables)(tyObject_Table__Os4it9bmHnOQtsd5CqH09aRQ t, NI key, NI hc) {	NI result;
	NI h;
	NI T6_;
	NI TM__4SoG2KRQy3oMm9aUzSLtGrA_51;
{	result = (NI)0;
	{
		NI T3_;
		T3_ = (t.data ? t.data->Sup.len : 0);
		if (!(T3_ == ((NI) 0))) goto LA4_;
		result = ((NI) -1);
		goto BeforeRet_;
	}
	LA4_: ;
	T6_ = ((t.data ? t.data->Sup.len : 0)-1);
	h = (NI)(hc & T6_);
	{
		while (1) {
			NIM_BOOL T9_;
			NI T16_;
			if ((NU)(h) >= (NU)(t.data ? t.data->Sup.len : 0)) raiseIndexError2(h,(t.data ? t.data->Sup.len : 0)-1);
			T9_ = (NIM_BOOL)0;
			T9_ = isFilled__5Qpmu5QqwDY0esVXn6wf7wtables(t.data->data[h].Field0);
			if (!T9_) goto LA8;
			{
				NIM_BOOL T12_;
				T12_ = (NIM_BOOL)0;
				if ((NU)(h) >= (NU)(t.data ? t.data->Sup.len : 0)) raiseIndexError2(h,(t.data ? t.data->Sup.len : 0)-1);
				T12_ = (t.data->data[h].Field0 == hc);
				if (!(T12_)) goto LA13_;
				if ((NU)(h) >= (NU)(t.data ? t.data->Sup.len : 0)) raiseIndexError2(h,(t.data ? t.data->Sup.len : 0)-1);
				T12_ = (t.data->data[h].Field1 == key);
				LA13_: ;
				if (!T12_) goto LA14_;
				result = h;
				goto BeforeRet_;
			}
			LA14_: ;
			T16_ = ((t.data ? t.data->Sup.len : 0)-1);
			h = nextTry__rkF6R1GhqjFh3qSAPaT2Cwtables(h, T16_);
		} LA8: ;
	}
	TM__4SoG2KRQy3oMm9aUzSLtGrA_51 = subInt(((NI) -1), h);
	result = (NI)(TM__4SoG2KRQy3oMm9aUzSLtGrA_51);
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, X5BX5Deq___MQp6geYbWilpbmJT3tnncQ)(tyObject_Table__Os4it9bmHnOQtsd5CqH09aRQ* t, NI key, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* val) {	NI hc;
	NI index;
	{
		NI T3_;
		T3_ = ((*t).data ? (*t).data->Sup.len : 0);
		if (!(T3_ == ((NI) 0))) goto LA4_;
		{
			NIM_BOOL T8_;
			T8_ = (NIM_BOOL)0;
			T8_ = isPowerOfTwo__1xdTQapFveM9bImKot7h9cdw(((NI) 64));
			if (!!(T8_)) goto LA9_;
			failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__4SoG2KRQy3oMm9aUzSLtGrA_7));
		}
		LA9_: ;
		(*t).counter = ((NI) 0);
		unsureAsgnRef((void**) (&(*t).data), (tySequence__hLW2w9a9bDM1AHB8BIrU3BYw*) newSeq((&NTI__hLW2w9a9bDM1AHB8BIrU3BYw_), ((NI) 64)));
	}
	LA4_: ;
	hc = (NI)0;
	index = rawGet__6JakEI68PBBdEMzqcwDJCAtables((*t), key, (&hc));
	{
		if (!(((NI) 0) <= index)) goto LA13_;
		if ((NU)(index) >= (NU)((*t).data ? (*t).data->Sup.len : 0)) raiseIndexError2(index,((*t).data ? (*t).data->Sup.len : 0)-1);
		asgnRef((void**) (&(*t).data->data[index].Field2), val);
	}
	goto LA11_;
	LA13_: ;
	{
		NI TM__4SoG2KRQy3oMm9aUzSLtGrA_52;
		NI TM__4SoG2KRQy3oMm9aUzSLtGrA_53;
		{
			NI T18_;
			T18_ = ((*t).data ? (*t).data->Sup.len : 0);
			if (!(T18_ == ((NI) 0))) goto LA19_;
			{
				NIM_BOOL T23_;
				T23_ = (NIM_BOOL)0;
				T23_ = isPowerOfTwo__1xdTQapFveM9bImKot7h9cdw(((NI) 64));
				if (!!(T23_)) goto LA24_;
				failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__4SoG2KRQy3oMm9aUzSLtGrA_7));
			}
			LA24_: ;
			(*t).counter = ((NI) 0);
			unsureAsgnRef((void**) (&(*t).data), (tySequence__hLW2w9a9bDM1AHB8BIrU3BYw*) newSeq((&NTI__hLW2w9a9bDM1AHB8BIrU3BYw_), ((NI) 64)));
		}
		LA19_: ;
		{
			NI T28_;
			NIM_BOOL T29_;
			T28_ = ((*t).data ? (*t).data->Sup.len : 0);
			T29_ = (NIM_BOOL)0;
			T29_ = mustRehash__qu7bkfOlld3ZqX4akPQiHwtables(T28_, (*t).counter);
			if (!T29_) goto LA30_;
			enlarge__e2mchzYwFdhwebJni6CqZg(t);
			index = rawGetKnownHC__eNcUgWoz7pcvMX3xYaDRLgtables((*t), key, hc);
		}
		LA30_: ;
		TM__4SoG2KRQy3oMm9aUzSLtGrA_52 = subInt(((NI) -1), index);
		index = (NI)(TM__4SoG2KRQy3oMm9aUzSLtGrA_52);
		rawInsert__0NF4fuOYJP4YH8beRyMvWg(t, (&(*t).data), key, val, hc, index);
		TM__4SoG2KRQy3oMm9aUzSLtGrA_53 = addInt((*t).counter, ((NI) 1));
		(*t).counter = (NI)(TM__4SoG2KRQy3oMm9aUzSLtGrA_53);
	}
	LA11_: ;
}
static N_NIMCALL(void, Marker_tySequence__YuKuU17u5ApAIki23DK9bJw)(void* p, NI op) {
	tySequence__YuKuU17u5ApAIki23DK9bJw* a;
	NI T1_;
	a = (tySequence__YuKuU17u5ApAIki23DK9bJw*)p;
	T1_ = (NI)0;
	for (T1_ = 0; T1_ < (a ? a->Sup.len : 0); T1_++) {
	nimGCvisit((void*)a->data[T1_].Field2, op);
	}
}
N_LIB_PRIVATE N_NIMCALL(void, initTable__TJKMxrEPQUpx86MsTl1C3A)(NI initialSize, tyObject_Table__JrI9bTpOVccKpiJXKOskjFg* Result) {	chckNil((void*)Result);
	genericReset((void*)Result, (&NTI__JrI9bTpOVccKpiJXKOskjFg_));
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = isPowerOfTwo__1xdTQapFveM9bImKot7h9cdw(initialSize);
		if (!!(T3_)) goto LA4_;
		failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__4SoG2KRQy3oMm9aUzSLtGrA_4));
	}
	LA4_: ;
	(*Result).counter = ((NI) 0);
	unsureAsgnRef((void**) (&(*Result).data), (tySequence__YuKuU17u5ApAIki23DK9bJw*) newSeq((&NTI__YuKuU17u5ApAIki23DK9bJw_), ((NI)chckRange(initialSize, ((NI) 0), ((NI) IL64(9223372036854775807))))));
}
static N_INLINE(NI, rawGet__aS7VMifwQ5UsdOtD1Dx7GAtables)(tyObject_Table__JrI9bTpOVccKpiJXKOskjFg t, NI key, NI* hc) {	NI result;
	NI h;
	NI T10_;
	NI TM__4SoG2KRQy3oMm9aUzSLtGrA_56;
{	result = (NI)0;
	(*hc) = hash__aWv89bCLOibANstPF9bHQoyQhashes(key);
	{
		if (!((*hc) == ((NI) 0))) goto LA3_;
		(*hc) = ((NI) 314159265);
	}
	LA3_: ;
	{
		NI T7_;
		T7_ = (t.data ? t.data->Sup.len : 0);
		if (!(T7_ == ((NI) 0))) goto LA8_;
		result = ((NI) -1);
		goto BeforeRet_;
	}
	LA8_: ;
	T10_ = ((t.data ? t.data->Sup.len : 0)-1);
	h = (NI)((*hc) & T10_);
	{
		while (1) {
			NIM_BOOL T13_;
			NI T20_;
			if ((NU)(h) >= (NU)(t.data ? t.data->Sup.len : 0)) raiseIndexError2(h,(t.data ? t.data->Sup.len : 0)-1);
			T13_ = (NIM_BOOL)0;
			T13_ = isFilled__5Qpmu5QqwDY0esVXn6wf7wtables(t.data->data[h].Field0);
			if (!T13_) goto LA12;
			{
				NIM_BOOL T16_;
				T16_ = (NIM_BOOL)0;
				if ((NU)(h) >= (NU)(t.data ? t.data->Sup.len : 0)) raiseIndexError2(h,(t.data ? t.data->Sup.len : 0)-1);
				T16_ = (t.data->data[h].Field0 == (*hc));
				if (!(T16_)) goto LA17_;
				if ((NU)(h) >= (NU)(t.data ? t.data->Sup.len : 0)) raiseIndexError2(h,(t.data ? t.data->Sup.len : 0)-1);
				T16_ = (t.data->data[h].Field1 == key);
				LA17_: ;
				if (!T16_) goto LA18_;
				result = h;
				goto BeforeRet_;
			}
			LA18_: ;
			T20_ = ((t.data ? t.data->Sup.len : 0)-1);
			h = nextTry__rkF6R1GhqjFh3qSAPaT2Cwtables(h, T20_);
		} LA12: ;
	}
	TM__4SoG2KRQy3oMm9aUzSLtGrA_56 = subInt(((NI) -1), h);
	result = (NI)(TM__4SoG2KRQy3oMm9aUzSLtGrA_56);
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, getOrDefault__OX9anFuDn9bfK9aeoL9blUUBvw)(tyObject_Table__JrI9bTpOVccKpiJXKOskjFg t, NI key) {	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	NI hcX60gensym800829_;
	NI indexX60gensym800830_;
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	hcX60gensym800829_ = (NI)0;
	indexX60gensym800830_ = rawGet__aS7VMifwQ5UsdOtD1Dx7GAtables(t, key, (&hcX60gensym800829_));
	{
		if (!(((NI) 0) <= indexX60gensym800830_)) goto LA3_;
		if ((NU)(indexX60gensym800830_) >= (NU)(t.data ? t.data->Sup.len : 0)) raiseIndexError2(indexX60gensym800830_,(t.data ? t.data->Sup.len : 0)-1);
		result = t.data->data[indexX60gensym800830_].Field2;
	}
	LA3_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, rawInsert__zd631ggeGEiPTefqYEGpiA)(tyObject_Table__JrI9bTpOVccKpiJXKOskjFg* t, tySequence__YuKuU17u5ApAIki23DK9bJw** data, NI key, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* val, NI hc, NI h) {	if ((NU)(h) >= (NU)((*data) ? (*data)->Sup.len : 0)) raiseIndexError2(h,((*data) ? (*data)->Sup.len : 0)-1);
	(*data)->data[h].Field1 = key;
	if ((NU)(h) >= (NU)((*data) ? (*data)->Sup.len : 0)) raiseIndexError2(h,((*data) ? (*data)->Sup.len : 0)-1);
	asgnRef((void**) (&(*data)->data[h].Field2), val);
	if ((NU)(h) >= (NU)((*data) ? (*data)->Sup.len : 0)) raiseIndexError2(h,((*data) ? (*data)->Sup.len : 0)-1);
	(*data)->data[h].Field0 = hc;
}
N_LIB_PRIVATE N_NIMCALL(void, enlarge__NZJD7XooFe3vwlZMQikupw)(tyObject_Table__JrI9bTpOVccKpiJXKOskjFg* t) {	tySequence__YuKuU17u5ApAIki23DK9bJw* n;
	NI T1_;
	NI TM__4SoG2KRQy3oMm9aUzSLtGrA_57;
	tySequence__YuKuU17u5ApAIki23DK9bJw* T2_;
	n = (tySequence__YuKuU17u5ApAIki23DK9bJw*)0;
	T1_ = ((*t).data ? (*t).data->Sup.len : 0);
	TM__4SoG2KRQy3oMm9aUzSLtGrA_57 = mulInt(T1_, ((NI) 2));
	n = (tySequence__YuKuU17u5ApAIki23DK9bJw*) newSeq((&NTI__YuKuU17u5ApAIki23DK9bJw_), ((NI)chckRange((NI)(TM__4SoG2KRQy3oMm9aUzSLtGrA_57), ((NI) 0), ((NI) IL64(9223372036854775807)))));
	T2_ = (tySequence__YuKuU17u5ApAIki23DK9bJw*)0;
	T2_ = (*t).data;
	unsureAsgnRef((void**) (&(*t).data), n);
	n = T2_;
	{
		NI i;
		NI colontmp_;
		NI T4_;
		NI res;
		i = (NI)0;
		colontmp_ = (NI)0;
		T4_ = ((n ? n->Sup.len : 0)-1);
		colontmp_ = T4_;
		res = ((NI) 0);
		{
			while (1) {
				NI eh;
				NI TM__4SoG2KRQy3oMm9aUzSLtGrA_58;
				if (!(res <= colontmp_)) goto LA6;
				i = res;
				if ((NU)(i) >= (NU)(n ? n->Sup.len : 0)) raiseIndexError2(i,(n ? n->Sup.len : 0)-1);
				eh = n->data[i].Field0;
				{
					NIM_BOOL T9_;
					NI j;
					NI T12_;
					NI T17_;
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T18_;
					T9_ = (NIM_BOOL)0;
					T9_ = isFilled__5Qpmu5QqwDY0esVXn6wf7wtables(eh);
					if (!T9_) goto LA10_;
					T12_ = (((*t).data ? (*t).data->Sup.len : 0)-1);
					j = (NI)(eh & T12_);
					{
						while (1) {
							NIM_BOOL T15_;
							NI T16_;
							if ((NU)(j) >= (NU)((*t).data ? (*t).data->Sup.len : 0)) raiseIndexError2(j,((*t).data ? (*t).data->Sup.len : 0)-1);
							T15_ = (NIM_BOOL)0;
							T15_ = isFilled__5Qpmu5QqwDY0esVXn6wf7wtables((*t).data->data[j].Field0);
							if (!T15_) goto LA14;
							T16_ = (((*t).data ? (*t).data->Sup.len : 0)-1);
							j = nextTry__rkF6R1GhqjFh3qSAPaT2Cwtables(j, T16_);
						} LA14: ;
					}
					if ((NU)(i) >= (NU)(n ? n->Sup.len : 0)) raiseIndexError2(i,(n ? n->Sup.len : 0)-1);
					T17_ = (NI)0;
					T17_ = n->data[i].Field1;
					n->data[i].Field1 = 0;
					if ((NU)(i) >= (NU)(n ? n->Sup.len : 0)) raiseIndexError2(i,(n ? n->Sup.len : 0)-1);
					T18_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
					T18_ = n->data[i].Field2;
					asgnRef((void**) (&n->data[i].Field2), NIM_NIL);
					rawInsert__zd631ggeGEiPTefqYEGpiA(t, (&(*t).data), T17_, T18_, eh, j);
				}
				LA10_: ;
				TM__4SoG2KRQy3oMm9aUzSLtGrA_58 = addInt(res, ((NI) 1));
				res = (NI)(TM__4SoG2KRQy3oMm9aUzSLtGrA_58);
			} LA6: ;
		}
	}
}
static N_INLINE(NI, rawGetKnownHC__abkoCGbCZlz6d4aa4hHxhgtables)(tyObject_Table__JrI9bTpOVccKpiJXKOskjFg t, NI key, NI hc) {	NI result;
	NI h;
	NI T6_;
	NI TM__4SoG2KRQy3oMm9aUzSLtGrA_59;
{	result = (NI)0;
	{
		NI T3_;
		T3_ = (t.data ? t.data->Sup.len : 0);
		if (!(T3_ == ((NI) 0))) goto LA4_;
		result = ((NI) -1);
		goto BeforeRet_;
	}
	LA4_: ;
	T6_ = ((t.data ? t.data->Sup.len : 0)-1);
	h = (NI)(hc & T6_);
	{
		while (1) {
			NIM_BOOL T9_;
			NI T16_;
			if ((NU)(h) >= (NU)(t.data ? t.data->Sup.len : 0)) raiseIndexError2(h,(t.data ? t.data->Sup.len : 0)-1);
			T9_ = (NIM_BOOL)0;
			T9_ = isFilled__5Qpmu5QqwDY0esVXn6wf7wtables(t.data->data[h].Field0);
			if (!T9_) goto LA8;
			{
				NIM_BOOL T12_;
				T12_ = (NIM_BOOL)0;
				if ((NU)(h) >= (NU)(t.data ? t.data->Sup.len : 0)) raiseIndexError2(h,(t.data ? t.data->Sup.len : 0)-1);
				T12_ = (t.data->data[h].Field0 == hc);
				if (!(T12_)) goto LA13_;
				if ((NU)(h) >= (NU)(t.data ? t.data->Sup.len : 0)) raiseIndexError2(h,(t.data ? t.data->Sup.len : 0)-1);
				T12_ = (t.data->data[h].Field1 == key);
				LA13_: ;
				if (!T12_) goto LA14_;
				result = h;
				goto BeforeRet_;
			}
			LA14_: ;
			T16_ = ((t.data ? t.data->Sup.len : 0)-1);
			h = nextTry__rkF6R1GhqjFh3qSAPaT2Cwtables(h, T16_);
		} LA8: ;
	}
	TM__4SoG2KRQy3oMm9aUzSLtGrA_59 = subInt(((NI) -1), h);
	result = (NI)(TM__4SoG2KRQy3oMm9aUzSLtGrA_59);
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, X5BX5Deq___tMEyAvlcC3r82WGaTaSYrQ)(tyObject_Table__JrI9bTpOVccKpiJXKOskjFg* t, NI key, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* val) {	NI hc;
	NI index;
	{
		NI T3_;
		T3_ = ((*t).data ? (*t).data->Sup.len : 0);
		if (!(T3_ == ((NI) 0))) goto LA4_;
		{
			NIM_BOOL T8_;
			T8_ = (NIM_BOOL)0;
			T8_ = isPowerOfTwo__1xdTQapFveM9bImKot7h9cdw(((NI) 64));
			if (!!(T8_)) goto LA9_;
			failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__4SoG2KRQy3oMm9aUzSLtGrA_7));
		}
		LA9_: ;
		(*t).counter = ((NI) 0);
		unsureAsgnRef((void**) (&(*t).data), (tySequence__YuKuU17u5ApAIki23DK9bJw*) newSeq((&NTI__YuKuU17u5ApAIki23DK9bJw_), ((NI) 64)));
	}
	LA4_: ;
	hc = (NI)0;
	index = rawGet__aS7VMifwQ5UsdOtD1Dx7GAtables((*t), key, (&hc));
	{
		if (!(((NI) 0) <= index)) goto LA13_;
		if ((NU)(index) >= (NU)((*t).data ? (*t).data->Sup.len : 0)) raiseIndexError2(index,((*t).data ? (*t).data->Sup.len : 0)-1);
		asgnRef((void**) (&(*t).data->data[index].Field2), val);
	}
	goto LA11_;
	LA13_: ;
	{
		NI TM__4SoG2KRQy3oMm9aUzSLtGrA_60;
		NI TM__4SoG2KRQy3oMm9aUzSLtGrA_61;
		{
			NI T18_;
			T18_ = ((*t).data ? (*t).data->Sup.len : 0);
			if (!(T18_ == ((NI) 0))) goto LA19_;
			{
				NIM_BOOL T23_;
				T23_ = (NIM_BOOL)0;
				T23_ = isPowerOfTwo__1xdTQapFveM9bImKot7h9cdw(((NI) 64));
				if (!!(T23_)) goto LA24_;
				failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__4SoG2KRQy3oMm9aUzSLtGrA_7));
			}
			LA24_: ;
			(*t).counter = ((NI) 0);
			unsureAsgnRef((void**) (&(*t).data), (tySequence__YuKuU17u5ApAIki23DK9bJw*) newSeq((&NTI__YuKuU17u5ApAIki23DK9bJw_), ((NI) 64)));
		}
		LA19_: ;
		{
			NI T28_;
			NIM_BOOL T29_;
			T28_ = ((*t).data ? (*t).data->Sup.len : 0);
			T29_ = (NIM_BOOL)0;
			T29_ = mustRehash__qu7bkfOlld3ZqX4akPQiHwtables(T28_, (*t).counter);
			if (!T29_) goto LA30_;
			enlarge__NZJD7XooFe3vwlZMQikupw(t);
			index = rawGetKnownHC__abkoCGbCZlz6d4aa4hHxhgtables((*t), key, hc);
		}
		LA30_: ;
		TM__4SoG2KRQy3oMm9aUzSLtGrA_60 = subInt(((NI) -1), index);
		index = (NI)(TM__4SoG2KRQy3oMm9aUzSLtGrA_60);
		rawInsert__zd631ggeGEiPTefqYEGpiA(t, (&(*t).data), key, val, hc, index);
		TM__4SoG2KRQy3oMm9aUzSLtGrA_61 = addInt((*t).counter, ((NI) 1));
		(*t).counter = (NI)(TM__4SoG2KRQy3oMm9aUzSLtGrA_61);
	}
	LA11_: ;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw**, X5BX5D___X7HRLXyMghOAScJitThqsw)(tyObject_Table__JrI9bTpOVccKpiJXKOskjFg* t, NI key) {	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw** result;
	NI hcX60gensym365565_;
	NI indexX60gensym365566_;
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw**)0;
	hcX60gensym365565_ = (NI)0;
	indexX60gensym365566_ = rawGet__aS7VMifwQ5UsdOtD1Dx7GAtables((*t), key, (&hcX60gensym365565_));
	{
		if (!(((NI) 0) <= indexX60gensym365566_)) goto LA3_;
		if ((NU)(indexX60gensym365566_) >= (NU)((*t).data ? (*t).data->Sup.len : 0)) raiseIndexError2(indexX60gensym365566_,((*t).data ? (*t).data->Sup.len : 0)-1);
		result = &(*t).data->data[indexX60gensym365566_].Field2;
	}
	goto LA1_;
	LA3_: ;
	{
		tyObject_KeyError__t7nhKLvXTQS9cS8ByJU9bIag* eX60gensym806002_;
		NimStringDesc* T6_;
		NimStringDesc* T7_;
		eX60gensym806002_ = (tyObject_KeyError__t7nhKLvXTQS9cS8ByJU9bIag*)0;
		eX60gensym806002_ = (tyObject_KeyError__t7nhKLvXTQS9cS8ByJU9bIag*) newObj((&NTI__8SzoIAgLw9ci2v0yafHj9b6Q_), sizeof(tyObject_KeyError__t7nhKLvXTQS9cS8ByJU9bIag));
		(*eX60gensym806002_).Sup.Sup.Sup.Sup.m_type = (&NTI__t7nhKLvXTQS9cS8ByJU9bIag_);
		(*eX60gensym806002_).Sup.Sup.Sup.name = "KeyError";
		T6_ = (NimStringDesc*)0;
		T7_ = (NimStringDesc*)0;
		T7_ = nimIntToStr(key);
		T6_ = rawNewString((T7_ ? T7_->Sup.len : 0) + 15);
appendString(T6_, ((NimStringDesc*) &TM__4SoG2KRQy3oMm9aUzSLtGrA_20));
appendString(T6_, T7_);
		asgnRef((void**) (&(*eX60gensym806002_).Sup.Sup.Sup.message), T6_);
		asgnRef((void**) (&(*eX60gensym806002_).Sup.Sup.Sup.parent), NIM_NIL);
		raiseExceptionEx((Exception*)eX60gensym806002_, "KeyError", "[]", "tables.nim", 264);
	}
	LA1_: ;
	return result;
}
static N_INLINE(NI, rawGet__UJsERo5BkViQH6ie2d9asaQtables)(tyObject_Table__IioUJGdqPI6xC7S7QF8MBw t, tyArray__qtqsWM5aXmcpMIVmvq3kAA key, NI* hc) {	NI result;
	NI h;
	NI T10_;
	NI TM__4SoG2KRQy3oMm9aUzSLtGrA_62;
{	result = (NI)0;
	(*hc) = hash__XFPFecV5bGJUDhwku4bw7A(key);
	{
		if (!((*hc) == ((NI) 0))) goto LA3_;
		(*hc) = ((NI) 314159265);
	}
	LA3_: ;
	{
		NI T7_;
		T7_ = (t.data ? t.data->Sup.len : 0);
		if (!(T7_ == ((NI) 0))) goto LA8_;
		result = ((NI) -1);
		goto BeforeRet_;
	}
	LA8_: ;
	T10_ = ((t.data ? t.data->Sup.len : 0)-1);
	h = (NI)((*hc) & T10_);
	{
		while (1) {
			NIM_BOOL T13_;
			NI T20_;
			if ((NU)(h) >= (NU)(t.data ? t.data->Sup.len : 0)) raiseIndexError2(h,(t.data ? t.data->Sup.len : 0)-1);
			T13_ = (NIM_BOOL)0;
			T13_ = isFilled__5Qpmu5QqwDY0esVXn6wf7wtables(t.data->data[h].Field0);
			if (!T13_) goto LA12;
			{
				NIM_BOOL T16_;
				T16_ = (NIM_BOOL)0;
				if ((NU)(h) >= (NU)(t.data ? t.data->Sup.len : 0)) raiseIndexError2(h,(t.data ? t.data->Sup.len : 0)-1);
				T16_ = (t.data->data[h].Field0 == (*hc));
				if (!(T16_)) goto LA17_;
				if ((NU)(h) >= (NU)(t.data ? t.data->Sup.len : 0)) raiseIndexError2(h,(t.data ? t.data->Sup.len : 0)-1);
				T16_ = eqeq___76rDYGuUQDl2xSav8vUDiA(t.data->data[h].Field1, key);
				LA17_: ;
				if (!T16_) goto LA18_;
				result = h;
				goto BeforeRet_;
			}
			LA18_: ;
			T20_ = ((t.data ? t.data->Sup.len : 0)-1);
			h = nextTry__rkF6R1GhqjFh3qSAPaT2Cwtables(h, T20_);
		} LA12: ;
	}
	TM__4SoG2KRQy3oMm9aUzSLtGrA_62 = subInt(((NI) -1), h);
	result = (NI)(TM__4SoG2KRQy3oMm9aUzSLtGrA_62);
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*, getOrDefault__osKkoxC3A03cBoj9bK1Or9cQ)(tyObject_Table__IioUJGdqPI6xC7S7QF8MBw t, tyArray__qtqsWM5aXmcpMIVmvq3kAA key) {	tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* result;
	NI hcX60gensym764856_;
	NI indexX60gensym764857_;
	result = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
	hcX60gensym764856_ = (NI)0;
	indexX60gensym764857_ = rawGet__UJsERo5BkViQH6ie2d9asaQtables(t, key, (&hcX60gensym764856_));
	{
		if (!(((NI) 0) <= indexX60gensym764857_)) goto LA3_;
		if ((NU)(indexX60gensym764857_) >= (NU)(t.data ? t.data->Sup.len : 0)) raiseIndexError2(indexX60gensym764857_,(t.data ? t.data->Sup.len : 0)-1);
		result = t.data->data[indexX60gensym764857_].Field2;
	}
	LA3_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, rawInsert__u9aJV4Xxo1Qv0WGIfVav9c2Q)(tyObject_Table__IioUJGdqPI6xC7S7QF8MBw* t, tySequence__Qr6E8eH7btq79cFKGaJfGLw** data, tyArray__qtqsWM5aXmcpMIVmvq3kAA key, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* val, NI hc, NI h) {	if ((NU)(h) >= (NU)((*data) ? (*data)->Sup.len : 0)) raiseIndexError2(h,((*data) ? (*data)->Sup.len : 0)-1);
	nimCopyMem((void*)(*data)->data[h].Field1, (NIM_CONST void*)key, sizeof(tyArray__qtqsWM5aXmcpMIVmvq3kAA));
	if ((NU)(h) >= (NU)((*data) ? (*data)->Sup.len : 0)) raiseIndexError2(h,((*data) ? (*data)->Sup.len : 0)-1);
	asgnRef((void**) (&(*data)->data[h].Field2), val);
	if ((NU)(h) >= (NU)((*data) ? (*data)->Sup.len : 0)) raiseIndexError2(h,((*data) ? (*data)->Sup.len : 0)-1);
	(*data)->data[h].Field0 = hc;
}
N_LIB_PRIVATE N_NIMCALL(void, enlarge__wtlRvAPpfH5zwFZ6PVJ9bEw)(tyObject_Table__IioUJGdqPI6xC7S7QF8MBw* t) {	tySequence__Qr6E8eH7btq79cFKGaJfGLw* n;
	NI T1_;
	NI TM__4SoG2KRQy3oMm9aUzSLtGrA_63;
	tySequence__Qr6E8eH7btq79cFKGaJfGLw* T2_;
	n = (tySequence__Qr6E8eH7btq79cFKGaJfGLw*)0;
	T1_ = ((*t).data ? (*t).data->Sup.len : 0);
	TM__4SoG2KRQy3oMm9aUzSLtGrA_63 = mulInt(T1_, ((NI) 2));
	n = (tySequence__Qr6E8eH7btq79cFKGaJfGLw*) newSeq((&NTI__Qr6E8eH7btq79cFKGaJfGLw_), ((NI)chckRange((NI)(TM__4SoG2KRQy3oMm9aUzSLtGrA_63), ((NI) 0), ((NI) IL64(9223372036854775807)))));
	T2_ = (tySequence__Qr6E8eH7btq79cFKGaJfGLw*)0;
	T2_ = (*t).data;
	unsureAsgnRef((void**) (&(*t).data), n);
	n = T2_;
	{
		NI i;
		NI colontmp_;
		NI T4_;
		NI res;
		i = (NI)0;
		colontmp_ = (NI)0;
		T4_ = ((n ? n->Sup.len : 0)-1);
		colontmp_ = T4_;
		res = ((NI) 0);
		{
			while (1) {
				NI eh;
				NI TM__4SoG2KRQy3oMm9aUzSLtGrA_64;
				if (!(res <= colontmp_)) goto LA6;
				i = res;
				if ((NU)(i) >= (NU)(n ? n->Sup.len : 0)) raiseIndexError2(i,(n ? n->Sup.len : 0)-1);
				eh = n->data[i].Field0;
				{
					NIM_BOOL T9_;
					NI j;
					NI T12_;
					tyArray__qtqsWM5aXmcpMIVmvq3kAA T17_;
					tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* T18_;
					T9_ = (NIM_BOOL)0;
					T9_ = isFilled__5Qpmu5QqwDY0esVXn6wf7wtables(eh);
					if (!T9_) goto LA10_;
					T12_ = (((*t).data ? (*t).data->Sup.len : 0)-1);
					j = (NI)(eh & T12_);
					{
						while (1) {
							NIM_BOOL T15_;
							NI T16_;
							if ((NU)(j) >= (NU)((*t).data ? (*t).data->Sup.len : 0)) raiseIndexError2(j,((*t).data ? (*t).data->Sup.len : 0)-1);
							T15_ = (NIM_BOOL)0;
							T15_ = isFilled__5Qpmu5QqwDY0esVXn6wf7wtables((*t).data->data[j].Field0);
							if (!T15_) goto LA14;
							T16_ = (((*t).data ? (*t).data->Sup.len : 0)-1);
							j = nextTry__rkF6R1GhqjFh3qSAPaT2Cwtables(j, T16_);
						} LA14: ;
					}
					if ((NU)(i) >= (NU)(n ? n->Sup.len : 0)) raiseIndexError2(i,(n ? n->Sup.len : 0)-1);
					nimCopyMem((void*)T17_, (NIM_CONST void*)n->data[i].Field1, sizeof(tyArray__qtqsWM5aXmcpMIVmvq3kAA));
					chckNil((void*)n->data[i].Field1);
					nimZeroMem((void*)n->data[i].Field1, sizeof(tyArray__qtqsWM5aXmcpMIVmvq3kAA));
					if ((NU)(i) >= (NU)(n ? n->Sup.len : 0)) raiseIndexError2(i,(n ? n->Sup.len : 0)-1);
					T18_ = (tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ*)0;
					T18_ = n->data[i].Field2;
					asgnRef((void**) (&n->data[i].Field2), NIM_NIL);
					rawInsert__u9aJV4Xxo1Qv0WGIfVav9c2Q(t, (&(*t).data), T17_, T18_, eh, j);
				}
				LA10_: ;
				TM__4SoG2KRQy3oMm9aUzSLtGrA_64 = addInt(res, ((NI) 1));
				res = (NI)(TM__4SoG2KRQy3oMm9aUzSLtGrA_64);
			} LA6: ;
		}
	}
}
static N_INLINE(NI, rawGetKnownHC__bT8cRF5uMfM8lc5JOL9baswtables)(tyObject_Table__IioUJGdqPI6xC7S7QF8MBw t, tyArray__qtqsWM5aXmcpMIVmvq3kAA key, NI hc) {	NI result;
	NI h;
	NI T6_;
	NI TM__4SoG2KRQy3oMm9aUzSLtGrA_65;
{	result = (NI)0;
	{
		NI T3_;
		T3_ = (t.data ? t.data->Sup.len : 0);
		if (!(T3_ == ((NI) 0))) goto LA4_;
		result = ((NI) -1);
		goto BeforeRet_;
	}
	LA4_: ;
	T6_ = ((t.data ? t.data->Sup.len : 0)-1);
	h = (NI)(hc & T6_);
	{
		while (1) {
			NIM_BOOL T9_;
			NI T16_;
			if ((NU)(h) >= (NU)(t.data ? t.data->Sup.len : 0)) raiseIndexError2(h,(t.data ? t.data->Sup.len : 0)-1);
			T9_ = (NIM_BOOL)0;
			T9_ = isFilled__5Qpmu5QqwDY0esVXn6wf7wtables(t.data->data[h].Field0);
			if (!T9_) goto LA8;
			{
				NIM_BOOL T12_;
				T12_ = (NIM_BOOL)0;
				if ((NU)(h) >= (NU)(t.data ? t.data->Sup.len : 0)) raiseIndexError2(h,(t.data ? t.data->Sup.len : 0)-1);
				T12_ = (t.data->data[h].Field0 == hc);
				if (!(T12_)) goto LA13_;
				if ((NU)(h) >= (NU)(t.data ? t.data->Sup.len : 0)) raiseIndexError2(h,(t.data ? t.data->Sup.len : 0)-1);
				T12_ = eqeq___76rDYGuUQDl2xSav8vUDiA(t.data->data[h].Field1, key);
				LA13_: ;
				if (!T12_) goto LA14_;
				result = h;
				goto BeforeRet_;
			}
			LA14_: ;
			T16_ = ((t.data ? t.data->Sup.len : 0)-1);
			h = nextTry__rkF6R1GhqjFh3qSAPaT2Cwtables(h, T16_);
		} LA8: ;
	}
	TM__4SoG2KRQy3oMm9aUzSLtGrA_65 = subInt(((NI) -1), h);
	result = (NI)(TM__4SoG2KRQy3oMm9aUzSLtGrA_65);
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, X5BX5Deq___mDjERi9aeOTPpwet1knXpgw)(tyObject_Table__IioUJGdqPI6xC7S7QF8MBw* t, tyArray__qtqsWM5aXmcpMIVmvq3kAA key, tyObject_TType__v9ae2Dpu13OW2ZJ2U9bNMd9cQ* val) {	NI hc;
	NI index;
	{
		NI T3_;
		T3_ = ((*t).data ? (*t).data->Sup.len : 0);
		if (!(T3_ == ((NI) 0))) goto LA4_;
		{
			NIM_BOOL T8_;
			T8_ = (NIM_BOOL)0;
			T8_ = isPowerOfTwo__1xdTQapFveM9bImKot7h9cdw(((NI) 64));
			if (!!(T8_)) goto LA9_;
			failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__4SoG2KRQy3oMm9aUzSLtGrA_7));
		}
		LA9_: ;
		(*t).counter = ((NI) 0);
		unsureAsgnRef((void**) (&(*t).data), (tySequence__Qr6E8eH7btq79cFKGaJfGLw*) newSeq((&NTI__Qr6E8eH7btq79cFKGaJfGLw_), ((NI) 64)));
	}
	LA4_: ;
	hc = (NI)0;
	index = rawGet__UJsERo5BkViQH6ie2d9asaQtables((*t), key, (&hc));
	{
		if (!(((NI) 0) <= index)) goto LA13_;
		if ((NU)(index) >= (NU)((*t).data ? (*t).data->Sup.len : 0)) raiseIndexError2(index,((*t).data ? (*t).data->Sup.len : 0)-1);
		asgnRef((void**) (&(*t).data->data[index].Field2), val);
	}
	goto LA11_;
	LA13_: ;
	{
		NI TM__4SoG2KRQy3oMm9aUzSLtGrA_66;
		NI TM__4SoG2KRQy3oMm9aUzSLtGrA_67;
		{
			NI T18_;
			T18_ = ((*t).data ? (*t).data->Sup.len : 0);
			if (!(T18_ == ((NI) 0))) goto LA19_;
			{
				NIM_BOOL T23_;
				T23_ = (NIM_BOOL)0;
				T23_ = isPowerOfTwo__1xdTQapFveM9bImKot7h9cdw(((NI) 64));
				if (!!(T23_)) goto LA24_;
				failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__4SoG2KRQy3oMm9aUzSLtGrA_7));
			}
			LA24_: ;
			(*t).counter = ((NI) 0);
			unsureAsgnRef((void**) (&(*t).data), (tySequence__Qr6E8eH7btq79cFKGaJfGLw*) newSeq((&NTI__Qr6E8eH7btq79cFKGaJfGLw_), ((NI) 64)));
		}
		LA19_: ;
		{
			NI T28_;
			NIM_BOOL T29_;
			T28_ = ((*t).data ? (*t).data->Sup.len : 0);
			T29_ = (NIM_BOOL)0;
			T29_ = mustRehash__qu7bkfOlld3ZqX4akPQiHwtables(T28_, (*t).counter);
			if (!T29_) goto LA30_;
			enlarge__wtlRvAPpfH5zwFZ6PVJ9bEw(t);
			index = rawGetKnownHC__bT8cRF5uMfM8lc5JOL9baswtables((*t), key, hc);
		}
		LA30_: ;
		TM__4SoG2KRQy3oMm9aUzSLtGrA_66 = subInt(((NI) -1), index);
		index = (NI)(TM__4SoG2KRQy3oMm9aUzSLtGrA_66);
		rawInsert__u9aJV4Xxo1Qv0WGIfVav9c2Q(t, (&(*t).data), key, val, hc, index);
		TM__4SoG2KRQy3oMm9aUzSLtGrA_67 = addInt((*t).counter, ((NI) 1));
		(*t).counter = (NI)(TM__4SoG2KRQy3oMm9aUzSLtGrA_67);
	}
	LA11_: ;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, X5BX5D___OX9anFuDn9bfK9aeoL9blUUBvw_2)(tyObject_Table__JrI9bTpOVccKpiJXKOskjFg t, NI key) {	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	NI hcX60gensym365547_;
	NI indexX60gensym365548_;
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	hcX60gensym365547_ = (NI)0;
	indexX60gensym365548_ = rawGet__aS7VMifwQ5UsdOtD1Dx7GAtables(t, key, (&hcX60gensym365547_));
	{
		if (!(((NI) 0) <= indexX60gensym365548_)) goto LA3_;
		if ((NU)(indexX60gensym365548_) >= (NU)(t.data ? t.data->Sup.len : 0)) raiseIndexError2(indexX60gensym365548_,(t.data ? t.data->Sup.len : 0)-1);
		result = t.data->data[indexX60gensym365548_].Field2;
	}
	goto LA1_;
	LA3_: ;
	{
		tyObject_KeyError__t7nhKLvXTQS9cS8ByJU9bIag* eX60gensym807202_;
		NimStringDesc* T6_;
		NimStringDesc* T7_;
		eX60gensym807202_ = (tyObject_KeyError__t7nhKLvXTQS9cS8ByJU9bIag*)0;
		eX60gensym807202_ = (tyObject_KeyError__t7nhKLvXTQS9cS8ByJU9bIag*) newObj((&NTI__8SzoIAgLw9ci2v0yafHj9b6Q_), sizeof(tyObject_KeyError__t7nhKLvXTQS9cS8ByJU9bIag));
		(*eX60gensym807202_).Sup.Sup.Sup.Sup.m_type = (&NTI__t7nhKLvXTQS9cS8ByJU9bIag_);
		(*eX60gensym807202_).Sup.Sup.Sup.name = "KeyError";
		T6_ = (NimStringDesc*)0;
		T7_ = (NimStringDesc*)0;
		T7_ = nimIntToStr(key);
		T6_ = rawNewString((T7_ ? T7_->Sup.len : 0) + 15);
appendString(T6_, ((NimStringDesc*) &TM__4SoG2KRQy3oMm9aUzSLtGrA_20));
appendString(T6_, T7_);
		asgnRef((void**) (&(*eX60gensym807202_).Sup.Sup.Sup.message), T6_);
		asgnRef((void**) (&(*eX60gensym807202_).Sup.Sup.Sup.parent), NIM_NIL);
		raiseExceptionEx((Exception*)eX60gensym807202_, "KeyError", "[]", "tables.nim", 264);
	}
	LA1_: ;
	return result;
}
static N_INLINE(NI, rawGet__3B39bms3hJS0Syhd7xxEULgtables)(tyObject_Table__NttoEzoiq5CiphZe81oadg t, NimStringDesc* key, NI* hc) {	NI result;
	NI h;
	NI T10_;
	NI TM__4SoG2KRQy3oMm9aUzSLtGrA_68;
{	result = (NI)0;
	(*hc) = hash__6PCYkKlCNhq9cnRLnqWKkwQ(key);
	{
		if (!((*hc) == ((NI) 0))) goto LA3_;
		(*hc) = ((NI) 314159265);
	}
	LA3_: ;
	{
		NI T7_;
		T7_ = (t.data ? t.data->Sup.len : 0);
		if (!(T7_ == ((NI) 0))) goto LA8_;
		result = ((NI) -1);
		goto BeforeRet_;
	}
	LA8_: ;
	T10_ = ((t.data ? t.data->Sup.len : 0)-1);
	h = (NI)((*hc) & T10_);
	{
		while (1) {
			NIM_BOOL T13_;
			NI T20_;
			if ((NU)(h) >= (NU)(t.data ? t.data->Sup.len : 0)) raiseIndexError2(h,(t.data ? t.data->Sup.len : 0)-1);
			T13_ = (NIM_BOOL)0;
			T13_ = isFilled__5Qpmu5QqwDY0esVXn6wf7wtables(t.data->data[h].Field0);
			if (!T13_) goto LA12;
			{
				NIM_BOOL T16_;
				T16_ = (NIM_BOOL)0;
				if ((NU)(h) >= (NU)(t.data ? t.data->Sup.len : 0)) raiseIndexError2(h,(t.data ? t.data->Sup.len : 0)-1);
				T16_ = (t.data->data[h].Field0 == (*hc));
				if (!(T16_)) goto LA17_;
				if ((NU)(h) >= (NU)(t.data ? t.data->Sup.len : 0)) raiseIndexError2(h,(t.data ? t.data->Sup.len : 0)-1);
				T16_ = eqStrings(t.data->data[h].Field1, key);
				LA17_: ;
				if (!T16_) goto LA18_;
				result = h;
				goto BeforeRet_;
			}
			LA18_: ;
			T20_ = ((t.data ? t.data->Sup.len : 0)-1);
			h = nextTry__rkF6R1GhqjFh3qSAPaT2Cwtables(h, T20_);
		} LA12: ;
	}
	TM__4SoG2KRQy3oMm9aUzSLtGrA_68 = subInt(((NI) -1), h);
	result = (NI)(TM__4SoG2KRQy3oMm9aUzSLtGrA_68);
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NI64, getOrDefault__z8A9cwbmxkLXNxRJ9arkRPMQ)(tyObject_Table__NttoEzoiq5CiphZe81oadg t, NimStringDesc* key) {	NI64 result;
	NI hcX60gensym857955_;
	NI indexX60gensym857956_;
	result = (NI64)0;
	hcX60gensym857955_ = (NI)0;
	indexX60gensym857956_ = rawGet__3B39bms3hJS0Syhd7xxEULgtables(t, key, (&hcX60gensym857955_));
	{
		if (!(((NI) 0) <= indexX60gensym857956_)) goto LA3_;
		if ((NU)(indexX60gensym857956_) >= (NU)(t.data ? t.data->Sup.len : 0)) raiseIndexError2(indexX60gensym857956_,(t.data ? t.data->Sup.len : 0)-1);
		result = t.data->data[indexX60gensym857956_].Field2;
	}
	LA3_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, rawInsert__XH2oBuEgDaY43m9bc9czCHzQ)(tyObject_Table__NttoEzoiq5CiphZe81oadg* t, tySequence__squ9b9bUH4OLHf6cEMrt6hVA** data, NimStringDesc* key, NI64 val, NI hc, NI h) {	NimStringDesc* T1_;
	if ((NU)(h) >= (NU)((*data) ? (*data)->Sup.len : 0)) raiseIndexError2(h,((*data) ? (*data)->Sup.len : 0)-1);
	T1_ = (NimStringDesc*)0;
	T1_ = (*data)->data[h].Field1; (*data)->data[h].Field1 = copyStringRC1(key);
	if (T1_) nimGCunrefNoCycle(T1_);
	if ((NU)(h) >= (NU)((*data) ? (*data)->Sup.len : 0)) raiseIndexError2(h,((*data) ? (*data)->Sup.len : 0)-1);
	(*data)->data[h].Field2 = val;
	if ((NU)(h) >= (NU)((*data) ? (*data)->Sup.len : 0)) raiseIndexError2(h,((*data) ? (*data)->Sup.len : 0)-1);
	(*data)->data[h].Field0 = hc;
}
N_LIB_PRIVATE N_NIMCALL(void, enlarge__Ia9aKwc9aYyF2xX8fakDniHw)(tyObject_Table__NttoEzoiq5CiphZe81oadg* t) {	tySequence__squ9b9bUH4OLHf6cEMrt6hVA* n;
	NI T1_;
	NI TM__4SoG2KRQy3oMm9aUzSLtGrA_69;
	tySequence__squ9b9bUH4OLHf6cEMrt6hVA* T2_;
	n = (tySequence__squ9b9bUH4OLHf6cEMrt6hVA*)0;
	T1_ = ((*t).data ? (*t).data->Sup.len : 0);
	TM__4SoG2KRQy3oMm9aUzSLtGrA_69 = mulInt(T1_, ((NI) 2));
	n = (tySequence__squ9b9bUH4OLHf6cEMrt6hVA*) newSeq((&NTI__squ9b9bUH4OLHf6cEMrt6hVA_), ((NI)chckRange((NI)(TM__4SoG2KRQy3oMm9aUzSLtGrA_69), ((NI) 0), ((NI) IL64(9223372036854775807)))));
	T2_ = (tySequence__squ9b9bUH4OLHf6cEMrt6hVA*)0;
	T2_ = (*t).data;
	unsureAsgnRef((void**) (&(*t).data), n);
	n = T2_;
	{
		NI i;
		NI colontmp_;
		NI T4_;
		NI res;
		i = (NI)0;
		colontmp_ = (NI)0;
		T4_ = ((n ? n->Sup.len : 0)-1);
		colontmp_ = T4_;
		res = ((NI) 0);
		{
			while (1) {
				NI eh;
				NI TM__4SoG2KRQy3oMm9aUzSLtGrA_70;
				if (!(res <= colontmp_)) goto LA6;
				i = res;
				if ((NU)(i) >= (NU)(n ? n->Sup.len : 0)) raiseIndexError2(i,(n ? n->Sup.len : 0)-1);
				eh = n->data[i].Field0;
				{
					NIM_BOOL T9_;
					NI j;
					NI T12_;
					NimStringDesc* T17_;
					NI64 T18_;
					T9_ = (NIM_BOOL)0;
					T9_ = isFilled__5Qpmu5QqwDY0esVXn6wf7wtables(eh);
					if (!T9_) goto LA10_;
					T12_ = (((*t).data ? (*t).data->Sup.len : 0)-1);
					j = (NI)(eh & T12_);
					{
						while (1) {
							NIM_BOOL T15_;
							NI T16_;
							if ((NU)(j) >= (NU)((*t).data ? (*t).data->Sup.len : 0)) raiseIndexError2(j,((*t).data ? (*t).data->Sup.len : 0)-1);
							T15_ = (NIM_BOOL)0;
							T15_ = isFilled__5Qpmu5QqwDY0esVXn6wf7wtables((*t).data->data[j].Field0);
							if (!T15_) goto LA14;
							T16_ = (((*t).data ? (*t).data->Sup.len : 0)-1);
							j = nextTry__rkF6R1GhqjFh3qSAPaT2Cwtables(j, T16_);
						} LA14: ;
					}
					if ((NU)(i) >= (NU)(n ? n->Sup.len : 0)) raiseIndexError2(i,(n ? n->Sup.len : 0)-1);
					T17_ = (NimStringDesc*)0;
					T17_ = n->data[i].Field1;
					asgnRef((void**) (&n->data[i].Field1), NIM_NIL);
					if ((NU)(i) >= (NU)(n ? n->Sup.len : 0)) raiseIndexError2(i,(n ? n->Sup.len : 0)-1);
					T18_ = (NI64)0;
					T18_ = n->data[i].Field2;
					n->data[i].Field2 = 0;
					rawInsert__XH2oBuEgDaY43m9bc9czCHzQ(t, (&(*t).data), T17_, T18_, eh, j);
				}
				LA10_: ;
				TM__4SoG2KRQy3oMm9aUzSLtGrA_70 = addInt(res, ((NI) 1));
				res = (NI)(TM__4SoG2KRQy3oMm9aUzSLtGrA_70);
			} LA6: ;
		}
	}
}
static N_INLINE(NI, rawGetKnownHC__A9bYZN6s9cFvr27D9aBNRZxQwtables)(tyObject_Table__NttoEzoiq5CiphZe81oadg t, NimStringDesc* key, NI hc) {	NI result;
	NI h;
	NI T6_;
	NI TM__4SoG2KRQy3oMm9aUzSLtGrA_71;
{	result = (NI)0;
	{
		NI T3_;
		T3_ = (t.data ? t.data->Sup.len : 0);
		if (!(T3_ == ((NI) 0))) goto LA4_;
		result = ((NI) -1);
		goto BeforeRet_;
	}
	LA4_: ;
	T6_ = ((t.data ? t.data->Sup.len : 0)-1);
	h = (NI)(hc & T6_);
	{
		while (1) {
			NIM_BOOL T9_;
			NI T16_;
			if ((NU)(h) >= (NU)(t.data ? t.data->Sup.len : 0)) raiseIndexError2(h,(t.data ? t.data->Sup.len : 0)-1);
			T9_ = (NIM_BOOL)0;
			T9_ = isFilled__5Qpmu5QqwDY0esVXn6wf7wtables(t.data->data[h].Field0);
			if (!T9_) goto LA8;
			{
				NIM_BOOL T12_;
				T12_ = (NIM_BOOL)0;
				if ((NU)(h) >= (NU)(t.data ? t.data->Sup.len : 0)) raiseIndexError2(h,(t.data ? t.data->Sup.len : 0)-1);
				T12_ = (t.data->data[h].Field0 == hc);
				if (!(T12_)) goto LA13_;
				if ((NU)(h) >= (NU)(t.data ? t.data->Sup.len : 0)) raiseIndexError2(h,(t.data ? t.data->Sup.len : 0)-1);
				T12_ = eqStrings(t.data->data[h].Field1, key);
				LA13_: ;
				if (!T12_) goto LA14_;
				result = h;
				goto BeforeRet_;
			}
			LA14_: ;
			T16_ = ((t.data ? t.data->Sup.len : 0)-1);
			h = nextTry__rkF6R1GhqjFh3qSAPaT2Cwtables(h, T16_);
		} LA8: ;
	}
	TM__4SoG2KRQy3oMm9aUzSLtGrA_71 = subInt(((NI) -1), h);
	result = (NI)(TM__4SoG2KRQy3oMm9aUzSLtGrA_71);
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, X5BX5Deq___fM9b60sY7h9aUB763UQb3oXA)(tyObject_Table__NttoEzoiq5CiphZe81oadg* t, NimStringDesc* key, NI64 val) {	NI hc;
	NI index;
	{
		NI T3_;
		T3_ = ((*t).data ? (*t).data->Sup.len : 0);
		if (!(T3_ == ((NI) 0))) goto LA4_;
		{
			NIM_BOOL T8_;
			T8_ = (NIM_BOOL)0;
			T8_ = isPowerOfTwo__1xdTQapFveM9bImKot7h9cdw(((NI) 64));
			if (!!(T8_)) goto LA9_;
			failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__4SoG2KRQy3oMm9aUzSLtGrA_7));
		}
		LA9_: ;
		(*t).counter = ((NI) 0);
		unsureAsgnRef((void**) (&(*t).data), (tySequence__squ9b9bUH4OLHf6cEMrt6hVA*) newSeq((&NTI__squ9b9bUH4OLHf6cEMrt6hVA_), ((NI) 64)));
	}
	LA4_: ;
	hc = (NI)0;
	index = rawGet__3B39bms3hJS0Syhd7xxEULgtables((*t), key, (&hc));
	{
		if (!(((NI) 0) <= index)) goto LA13_;
		if ((NU)(index) >= (NU)((*t).data ? (*t).data->Sup.len : 0)) raiseIndexError2(index,((*t).data ? (*t).data->Sup.len : 0)-1);
		(*t).data->data[index].Field2 = val;
	}
	goto LA11_;
	LA13_: ;
	{
		NI TM__4SoG2KRQy3oMm9aUzSLtGrA_72;
		NI TM__4SoG2KRQy3oMm9aUzSLtGrA_73;
		{
			NI T18_;
			T18_ = ((*t).data ? (*t).data->Sup.len : 0);
			if (!(T18_ == ((NI) 0))) goto LA19_;
			{
				NIM_BOOL T23_;
				T23_ = (NIM_BOOL)0;
				T23_ = isPowerOfTwo__1xdTQapFveM9bImKot7h9cdw(((NI) 64));
				if (!!(T23_)) goto LA24_;
				failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__4SoG2KRQy3oMm9aUzSLtGrA_7));
			}
			LA24_: ;
			(*t).counter = ((NI) 0);
			unsureAsgnRef((void**) (&(*t).data), (tySequence__squ9b9bUH4OLHf6cEMrt6hVA*) newSeq((&NTI__squ9b9bUH4OLHf6cEMrt6hVA_), ((NI) 64)));
		}
		LA19_: ;
		{
			NI T28_;
			NIM_BOOL T29_;
			T28_ = ((*t).data ? (*t).data->Sup.len : 0);
			T29_ = (NIM_BOOL)0;
			T29_ = mustRehash__qu7bkfOlld3ZqX4akPQiHwtables(T28_, (*t).counter);
			if (!T29_) goto LA30_;
			enlarge__Ia9aKwc9aYyF2xX8fakDniHw(t);
			index = rawGetKnownHC__A9bYZN6s9cFvr27D9aBNRZxQwtables((*t), key, hc);
		}
		LA30_: ;
		TM__4SoG2KRQy3oMm9aUzSLtGrA_72 = subInt(((NI) -1), index);
		index = (NI)(TM__4SoG2KRQy3oMm9aUzSLtGrA_72);
		rawInsert__XH2oBuEgDaY43m9bc9czCHzQ(t, (&(*t).data), key, val, hc, index);
		TM__4SoG2KRQy3oMm9aUzSLtGrA_73 = addInt((*t).counter, ((NI) 1));
		(*t).counter = (NI)(TM__4SoG2KRQy3oMm9aUzSLtGrA_73);
	}
	LA11_: ;
}
static N_INLINE(NI, rawGet__SMyMIOHvYU9bKbIDA9aXa0CQtables)(tyObject_Table__0Y2brGGKD9bV6GJLXT9aUDgA t, NimStringDesc* key, NI* hc) {	NI result;
	NI h;
	NI T10_;
	NI TM__4SoG2KRQy3oMm9aUzSLtGrA_74;
{	result = (NI)0;
	(*hc) = hash__6PCYkKlCNhq9cnRLnqWKkwQ(key);
	{
		if (!((*hc) == ((NI) 0))) goto LA3_;
		(*hc) = ((NI) 314159265);
	}
	LA3_: ;
	{
		NI T7_;
		T7_ = (t.data ? t.data->Sup.len : 0);
		if (!(T7_ == ((NI) 0))) goto LA8_;
		result = ((NI) -1);
		goto BeforeRet_;
	}
	LA8_: ;
	T10_ = ((t.data ? t.data->Sup.len : 0)-1);
	h = (NI)((*hc) & T10_);
	{
		while (1) {
			NIM_BOOL T13_;
			NI T20_;
			if ((NU)(h) >= (NU)(t.data ? t.data->Sup.len : 0)) raiseIndexError2(h,(t.data ? t.data->Sup.len : 0)-1);
			T13_ = (NIM_BOOL)0;
			T13_ = isFilled__5Qpmu5QqwDY0esVXn6wf7wtables(t.data->data[h].Field0);
			if (!T13_) goto LA12;
			{
				NIM_BOOL T16_;
				T16_ = (NIM_BOOL)0;
				if ((NU)(h) >= (NU)(t.data ? t.data->Sup.len : 0)) raiseIndexError2(h,(t.data ? t.data->Sup.len : 0)-1);
				T16_ = (t.data->data[h].Field0 == (*hc));
				if (!(T16_)) goto LA17_;
				if ((NU)(h) >= (NU)(t.data ? t.data->Sup.len : 0)) raiseIndexError2(h,(t.data ? t.data->Sup.len : 0)-1);
				T16_ = eqStrings(t.data->data[h].Field1, key);
				LA17_: ;
				if (!T16_) goto LA18_;
				result = h;
				goto BeforeRet_;
			}
			LA18_: ;
			T20_ = ((t.data ? t.data->Sup.len : 0)-1);
			h = nextTry__rkF6R1GhqjFh3qSAPaT2Cwtables(h, T20_);
		} LA12: ;
	}
	TM__4SoG2KRQy3oMm9aUzSLtGrA_74 = subInt(((NI) -1), h);
	result = (NI)(TM__4SoG2KRQy3oMm9aUzSLtGrA_74);
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, hasKey__tNDb8HX4Pcd05E6w80ngeA_2)(tyObject_Table__0Y2brGGKD9bV6GJLXT9aUDgA t, NimStringDesc* key) {	NIM_BOOL result;
	NI hc;
	NI T1_;
	result = (NIM_BOOL)0;
	hc = (NI)0;
	T1_ = (NI)0;
	T1_ = rawGet__SMyMIOHvYU9bKbIDA9aXa0CQtables(t, key, (&hc));
	result = (((NI) 0) <= T1_);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, contains__tNDb8HX4Pcd05E6w80ngeA)(tyObject_Table__0Y2brGGKD9bV6GJLXT9aUDgA t, NimStringDesc* key) {	NIM_BOOL result;
{	result = (NIM_BOOL)0;
	result = hasKey__tNDb8HX4Pcd05E6w80ngeA_2(t, key);
	goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, rawInsert__dphYj2K2cQV4c59cmH9bTrwQ)(tyObject_Table__0Y2brGGKD9bV6GJLXT9aUDgA* t, tySequence__23SMqauuRsbDANhthj9bWlA** data, NimStringDesc* key, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* val, NI hc, NI h) {	NimStringDesc* T1_;
	if ((NU)(h) >= (NU)((*data) ? (*data)->Sup.len : 0)) raiseIndexError2(h,((*data) ? (*data)->Sup.len : 0)-1);
	T1_ = (NimStringDesc*)0;
	T1_ = (*data)->data[h].Field1; (*data)->data[h].Field1 = copyStringRC1(key);
	if (T1_) nimGCunrefNoCycle(T1_);
	if ((NU)(h) >= (NU)((*data) ? (*data)->Sup.len : 0)) raiseIndexError2(h,((*data) ? (*data)->Sup.len : 0)-1);
	asgnRef((void**) (&(*data)->data[h].Field2), val);
	if ((NU)(h) >= (NU)((*data) ? (*data)->Sup.len : 0)) raiseIndexError2(h,((*data) ? (*data)->Sup.len : 0)-1);
	(*data)->data[h].Field0 = hc;
}
N_LIB_PRIVATE N_NIMCALL(void, enlarge__6K1KMyIJ44JU1rDXMt00fQ)(tyObject_Table__0Y2brGGKD9bV6GJLXT9aUDgA* t) {	tySequence__23SMqauuRsbDANhthj9bWlA* n;
	NI T1_;
	NI TM__4SoG2KRQy3oMm9aUzSLtGrA_75;
	tySequence__23SMqauuRsbDANhthj9bWlA* T2_;
	n = (tySequence__23SMqauuRsbDANhthj9bWlA*)0;
	T1_ = ((*t).data ? (*t).data->Sup.len : 0);
	TM__4SoG2KRQy3oMm9aUzSLtGrA_75 = mulInt(T1_, ((NI) 2));
	n = (tySequence__23SMqauuRsbDANhthj9bWlA*) newSeq((&NTI__23SMqauuRsbDANhthj9bWlA_), ((NI)chckRange((NI)(TM__4SoG2KRQy3oMm9aUzSLtGrA_75), ((NI) 0), ((NI) IL64(9223372036854775807)))));
	T2_ = (tySequence__23SMqauuRsbDANhthj9bWlA*)0;
	T2_ = (*t).data;
	unsureAsgnRef((void**) (&(*t).data), n);
	n = T2_;
	{
		NI i;
		NI colontmp_;
		NI T4_;
		NI res;
		i = (NI)0;
		colontmp_ = (NI)0;
		T4_ = ((n ? n->Sup.len : 0)-1);
		colontmp_ = T4_;
		res = ((NI) 0);
		{
			while (1) {
				NI eh;
				NI TM__4SoG2KRQy3oMm9aUzSLtGrA_76;
				if (!(res <= colontmp_)) goto LA6;
				i = res;
				if ((NU)(i) >= (NU)(n ? n->Sup.len : 0)) raiseIndexError2(i,(n ? n->Sup.len : 0)-1);
				eh = n->data[i].Field0;
				{
					NIM_BOOL T9_;
					NI j;
					NI T12_;
					NimStringDesc* T17_;
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T18_;
					T9_ = (NIM_BOOL)0;
					T9_ = isFilled__5Qpmu5QqwDY0esVXn6wf7wtables(eh);
					if (!T9_) goto LA10_;
					T12_ = (((*t).data ? (*t).data->Sup.len : 0)-1);
					j = (NI)(eh & T12_);
					{
						while (1) {
							NIM_BOOL T15_;
							NI T16_;
							if ((NU)(j) >= (NU)((*t).data ? (*t).data->Sup.len : 0)) raiseIndexError2(j,((*t).data ? (*t).data->Sup.len : 0)-1);
							T15_ = (NIM_BOOL)0;
							T15_ = isFilled__5Qpmu5QqwDY0esVXn6wf7wtables((*t).data->data[j].Field0);
							if (!T15_) goto LA14;
							T16_ = (((*t).data ? (*t).data->Sup.len : 0)-1);
							j = nextTry__rkF6R1GhqjFh3qSAPaT2Cwtables(j, T16_);
						} LA14: ;
					}
					if ((NU)(i) >= (NU)(n ? n->Sup.len : 0)) raiseIndexError2(i,(n ? n->Sup.len : 0)-1);
					T17_ = (NimStringDesc*)0;
					T17_ = n->data[i].Field1;
					asgnRef((void**) (&n->data[i].Field1), NIM_NIL);
					if ((NU)(i) >= (NU)(n ? n->Sup.len : 0)) raiseIndexError2(i,(n ? n->Sup.len : 0)-1);
					T18_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
					T18_ = n->data[i].Field2;
					asgnRef((void**) (&n->data[i].Field2), NIM_NIL);
					rawInsert__dphYj2K2cQV4c59cmH9bTrwQ(t, (&(*t).data), T17_, T18_, eh, j);
				}
				LA10_: ;
				TM__4SoG2KRQy3oMm9aUzSLtGrA_76 = addInt(res, ((NI) 1));
				res = (NI)(TM__4SoG2KRQy3oMm9aUzSLtGrA_76);
			} LA6: ;
		}
	}
}
static N_INLINE(NI, rawGetKnownHC__So4NwPMLEKibXtBM4tOfkQtables)(tyObject_Table__0Y2brGGKD9bV6GJLXT9aUDgA t, NimStringDesc* key, NI hc) {	NI result;
	NI h;
	NI T6_;
	NI TM__4SoG2KRQy3oMm9aUzSLtGrA_77;
{	result = (NI)0;
	{
		NI T3_;
		T3_ = (t.data ? t.data->Sup.len : 0);
		if (!(T3_ == ((NI) 0))) goto LA4_;
		result = ((NI) -1);
		goto BeforeRet_;
	}
	LA4_: ;
	T6_ = ((t.data ? t.data->Sup.len : 0)-1);
	h = (NI)(hc & T6_);
	{
		while (1) {
			NIM_BOOL T9_;
			NI T16_;
			if ((NU)(h) >= (NU)(t.data ? t.data->Sup.len : 0)) raiseIndexError2(h,(t.data ? t.data->Sup.len : 0)-1);
			T9_ = (NIM_BOOL)0;
			T9_ = isFilled__5Qpmu5QqwDY0esVXn6wf7wtables(t.data->data[h].Field0);
			if (!T9_) goto LA8;
			{
				NIM_BOOL T12_;
				T12_ = (NIM_BOOL)0;
				if ((NU)(h) >= (NU)(t.data ? t.data->Sup.len : 0)) raiseIndexError2(h,(t.data ? t.data->Sup.len : 0)-1);
				T12_ = (t.data->data[h].Field0 == hc);
				if (!(T12_)) goto LA13_;
				if ((NU)(h) >= (NU)(t.data ? t.data->Sup.len : 0)) raiseIndexError2(h,(t.data ? t.data->Sup.len : 0)-1);
				T12_ = eqStrings(t.data->data[h].Field1, key);
				LA13_: ;
				if (!T12_) goto LA14_;
				result = h;
				goto BeforeRet_;
			}
			LA14_: ;
			T16_ = ((t.data ? t.data->Sup.len : 0)-1);
			h = nextTry__rkF6R1GhqjFh3qSAPaT2Cwtables(h, T16_);
		} LA8: ;
	}
	TM__4SoG2KRQy3oMm9aUzSLtGrA_77 = subInt(((NI) -1), h);
	result = (NI)(TM__4SoG2KRQy3oMm9aUzSLtGrA_77);
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, X5BX5Deq___sShzjuQoVJkvjz3oILuGOQ)(tyObject_Table__0Y2brGGKD9bV6GJLXT9aUDgA* t, NimStringDesc* key, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* val) {	NI hc;
	NI index;
	{
		NI T3_;
		T3_ = ((*t).data ? (*t).data->Sup.len : 0);
		if (!(T3_ == ((NI) 0))) goto LA4_;
		{
			NIM_BOOL T8_;
			T8_ = (NIM_BOOL)0;
			T8_ = isPowerOfTwo__1xdTQapFveM9bImKot7h9cdw(((NI) 64));
			if (!!(T8_)) goto LA9_;
			failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__4SoG2KRQy3oMm9aUzSLtGrA_7));
		}
		LA9_: ;
		(*t).counter = ((NI) 0);
		unsureAsgnRef((void**) (&(*t).data), (tySequence__23SMqauuRsbDANhthj9bWlA*) newSeq((&NTI__23SMqauuRsbDANhthj9bWlA_), ((NI) 64)));
	}
	LA4_: ;
	hc = (NI)0;
	index = rawGet__SMyMIOHvYU9bKbIDA9aXa0CQtables((*t), key, (&hc));
	{
		if (!(((NI) 0) <= index)) goto LA13_;
		if ((NU)(index) >= (NU)((*t).data ? (*t).data->Sup.len : 0)) raiseIndexError2(index,((*t).data ? (*t).data->Sup.len : 0)-1);
		asgnRef((void**) (&(*t).data->data[index].Field2), val);
	}
	goto LA11_;
	LA13_: ;
	{
		NI TM__4SoG2KRQy3oMm9aUzSLtGrA_78;
		NI TM__4SoG2KRQy3oMm9aUzSLtGrA_79;
		{
			NI T18_;
			T18_ = ((*t).data ? (*t).data->Sup.len : 0);
			if (!(T18_ == ((NI) 0))) goto LA19_;
			{
				NIM_BOOL T23_;
				T23_ = (NIM_BOOL)0;
				T23_ = isPowerOfTwo__1xdTQapFveM9bImKot7h9cdw(((NI) 64));
				if (!!(T23_)) goto LA24_;
				failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__4SoG2KRQy3oMm9aUzSLtGrA_7));
			}
			LA24_: ;
			(*t).counter = ((NI) 0);
			unsureAsgnRef((void**) (&(*t).data), (tySequence__23SMqauuRsbDANhthj9bWlA*) newSeq((&NTI__23SMqauuRsbDANhthj9bWlA_), ((NI) 64)));
		}
		LA19_: ;
		{
			NI T28_;
			NIM_BOOL T29_;
			T28_ = ((*t).data ? (*t).data->Sup.len : 0);
			T29_ = (NIM_BOOL)0;
			T29_ = mustRehash__qu7bkfOlld3ZqX4akPQiHwtables(T28_, (*t).counter);
			if (!T29_) goto LA30_;
			enlarge__6K1KMyIJ44JU1rDXMt00fQ(t);
			index = rawGetKnownHC__So4NwPMLEKibXtBM4tOfkQtables((*t), key, hc);
		}
		LA30_: ;
		TM__4SoG2KRQy3oMm9aUzSLtGrA_78 = subInt(((NI) -1), index);
		index = (NI)(TM__4SoG2KRQy3oMm9aUzSLtGrA_78);
		rawInsert__dphYj2K2cQV4c59cmH9bTrwQ(t, (&(*t).data), key, val, hc, index);
		TM__4SoG2KRQy3oMm9aUzSLtGrA_79 = addInt((*t).counter, ((NI) 1));
		(*t).counter = (NI)(TM__4SoG2KRQy3oMm9aUzSLtGrA_79);
	}
	LA11_: ;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw**, X5BX5D___MfHxsDwfhxJEwdTZBgdTmg)(tyObject_Table__0Y2brGGKD9bV6GJLXT9aUDgA* t, NimStringDesc* key) {	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw** result;
	NI hcX60gensym365565_;
	NI indexX60gensym365566_;
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw**)0;
	hcX60gensym365565_ = (NI)0;
	indexX60gensym365566_ = rawGet__SMyMIOHvYU9bKbIDA9aXa0CQtables((*t), key, (&hcX60gensym365565_));
	{
		if (!(((NI) 0) <= indexX60gensym365566_)) goto LA3_;
		if ((NU)(indexX60gensym365566_) >= (NU)((*t).data ? (*t).data->Sup.len : 0)) raiseIndexError2(indexX60gensym365566_,((*t).data ? (*t).data->Sup.len : 0)-1);
		result = &(*t).data->data[indexX60gensym365566_].Field2;
	}
	goto LA1_;
	LA3_: ;
	{
		tyObject_KeyError__t7nhKLvXTQS9cS8ByJU9bIag* eX60gensym867403_;
		NimStringDesc* T6_;
		eX60gensym867403_ = (tyObject_KeyError__t7nhKLvXTQS9cS8ByJU9bIag*)0;
		eX60gensym867403_ = (tyObject_KeyError__t7nhKLvXTQS9cS8ByJU9bIag*) newObj((&NTI__8SzoIAgLw9ci2v0yafHj9b6Q_), sizeof(tyObject_KeyError__t7nhKLvXTQS9cS8ByJU9bIag));
		(*eX60gensym867403_).Sup.Sup.Sup.Sup.m_type = (&NTI__t7nhKLvXTQS9cS8ByJU9bIag_);
		(*eX60gensym867403_).Sup.Sup.Sup.name = "KeyError";
		T6_ = (NimStringDesc*)0;
		T6_ = rawNewString((key ? key->Sup.len : 0) + 15);
appendString(T6_, ((NimStringDesc*) &TM__4SoG2KRQy3oMm9aUzSLtGrA_20));
appendString(T6_, key);
		asgnRef((void**) (&(*eX60gensym867403_).Sup.Sup.Sup.message), T6_);
		asgnRef((void**) (&(*eX60gensym867403_).Sup.Sup.Sup.parent), NIM_NIL);
		raiseExceptionEx((Exception*)eX60gensym867403_, "KeyError", "[]", "tables.nim", 264);
	}
	LA1_: ;
	return result;
}
static N_INLINE(NI, rawGet__z5lyUFnYWNZgtnmQvNIG1Atables)(tyObject_Table__nagDFX4QHx0s6Fvma9blmSg t, NimStringDesc* key, NI* hc) {	NI result;
	NI h;
	NI T10_;
	NI TM__4SoG2KRQy3oMm9aUzSLtGrA_80;
{	result = (NI)0;
	(*hc) = hash__6PCYkKlCNhq9cnRLnqWKkwQ(key);
	{
		if (!((*hc) == ((NI) 0))) goto LA3_;
		(*hc) = ((NI) 314159265);
	}
	LA3_: ;
	{
		NI T7_;
		T7_ = (t.data ? t.data->Sup.len : 0);
		if (!(T7_ == ((NI) 0))) goto LA8_;
		result = ((NI) -1);
		goto BeforeRet_;
	}
	LA8_: ;
	T10_ = ((t.data ? t.data->Sup.len : 0)-1);
	h = (NI)((*hc) & T10_);
	{
		while (1) {
			NIM_BOOL T13_;
			NI T20_;
			if ((NU)(h) >= (NU)(t.data ? t.data->Sup.len : 0)) raiseIndexError2(h,(t.data ? t.data->Sup.len : 0)-1);
			T13_ = (NIM_BOOL)0;
			T13_ = isFilled__5Qpmu5QqwDY0esVXn6wf7wtables(t.data->data[h].Field0);
			if (!T13_) goto LA12;
			{
				NIM_BOOL T16_;
				T16_ = (NIM_BOOL)0;
				if ((NU)(h) >= (NU)(t.data ? t.data->Sup.len : 0)) raiseIndexError2(h,(t.data ? t.data->Sup.len : 0)-1);
				T16_ = (t.data->data[h].Field0 == (*hc));
				if (!(T16_)) goto LA17_;
				if ((NU)(h) >= (NU)(t.data ? t.data->Sup.len : 0)) raiseIndexError2(h,(t.data ? t.data->Sup.len : 0)-1);
				T16_ = eqStrings(t.data->data[h].Field1, key);
				LA17_: ;
				if (!T16_) goto LA18_;
				result = h;
				goto BeforeRet_;
			}
			LA18_: ;
			T20_ = ((t.data ? t.data->Sup.len : 0)-1);
			h = nextTry__rkF6R1GhqjFh3qSAPaT2Cwtables(h, T20_);
		} LA12: ;
	}
	TM__4SoG2KRQy3oMm9aUzSLtGrA_80 = subInt(((NI) -1), h);
	result = (NI)(TM__4SoG2KRQy3oMm9aUzSLtGrA_80);
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, hasKey__HJN1GCNkXuSaKainyv8E2w_2)(tyObject_Table__nagDFX4QHx0s6Fvma9blmSg t, NimStringDesc* key) {	NIM_BOOL result;
	NI hc;
	NI T1_;
	result = (NIM_BOOL)0;
	hc = (NI)0;
	T1_ = (NI)0;
	T1_ = rawGet__z5lyUFnYWNZgtnmQvNIG1Atables(t, key, (&hc));
	result = (((NI) 0) <= T1_);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, contains__HJN1GCNkXuSaKainyv8E2w)(tyObject_Table__nagDFX4QHx0s6Fvma9blmSg t, NimStringDesc* key) {	NIM_BOOL result;
{	result = (NIM_BOOL)0;
	result = hasKey__HJN1GCNkXuSaKainyv8E2w_2(t, key);
	goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, rawInsert__X9afgMwIB5o1VDnyZkF63LA)(tyObject_Table__nagDFX4QHx0s6Fvma9blmSg* t, tySequence__pHNq3oXj9av2sEUdqaqeZjw** data, NimStringDesc* key, tyObject_BTree__VZdzO0Tlflp7WMN4gS8oPg val, NI hc, NI h) {	NimStringDesc* T1_;
	if ((NU)(h) >= (NU)((*data) ? (*data)->Sup.len : 0)) raiseIndexError2(h,((*data) ? (*data)->Sup.len : 0)-1);
	T1_ = (NimStringDesc*)0;
	T1_ = (*data)->data[h].Field1; (*data)->data[h].Field1 = copyStringRC1(key);
	if (T1_) nimGCunrefNoCycle(T1_);
	if ((NU)(h) >= (NU)((*data) ? (*data)->Sup.len : 0)) raiseIndexError2(h,((*data) ? (*data)->Sup.len : 0)-1);
	asgnRef((void**) (&(*data)->data[h].Field2.root), val.root);
	(*data)->data[h].Field2.entries = val.entries;
	if ((NU)(h) >= (NU)((*data) ? (*data)->Sup.len : 0)) raiseIndexError2(h,((*data) ? (*data)->Sup.len : 0)-1);
	(*data)->data[h].Field0 = hc;
}
N_LIB_PRIVATE N_NIMCALL(void, enlarge__xUzvAyBcVu9b8xJ84vmmdgg)(tyObject_Table__nagDFX4QHx0s6Fvma9blmSg* t) {	tySequence__pHNq3oXj9av2sEUdqaqeZjw* n;
	NI T1_;
	NI TM__4SoG2KRQy3oMm9aUzSLtGrA_81;
	tySequence__pHNq3oXj9av2sEUdqaqeZjw* T2_;
	n = (tySequence__pHNq3oXj9av2sEUdqaqeZjw*)0;
	T1_ = ((*t).data ? (*t).data->Sup.len : 0);
	TM__4SoG2KRQy3oMm9aUzSLtGrA_81 = mulInt(T1_, ((NI) 2));
	n = (tySequence__pHNq3oXj9av2sEUdqaqeZjw*) newSeq((&NTI__pHNq3oXj9av2sEUdqaqeZjw_), ((NI)chckRange((NI)(TM__4SoG2KRQy3oMm9aUzSLtGrA_81), ((NI) 0), ((NI) IL64(9223372036854775807)))));
	T2_ = (tySequence__pHNq3oXj9av2sEUdqaqeZjw*)0;
	T2_ = (*t).data;
	unsureAsgnRef((void**) (&(*t).data), n);
	n = T2_;
	{
		NI i;
		NI colontmp_;
		NI T4_;
		NI res;
		i = (NI)0;
		colontmp_ = (NI)0;
		T4_ = ((n ? n->Sup.len : 0)-1);
		colontmp_ = T4_;
		res = ((NI) 0);
		{
			while (1) {
				NI eh;
				NI TM__4SoG2KRQy3oMm9aUzSLtGrA_82;
				if (!(res <= colontmp_)) goto LA6;
				i = res;
				if ((NU)(i) >= (NU)(n ? n->Sup.len : 0)) raiseIndexError2(i,(n ? n->Sup.len : 0)-1);
				eh = n->data[i].Field0;
				{
					NIM_BOOL T9_;
					NI j;
					NI T12_;
					NimStringDesc* T17_;
					tyObject_BTree__VZdzO0Tlflp7WMN4gS8oPg T18_;
					T9_ = (NIM_BOOL)0;
					T9_ = isFilled__5Qpmu5QqwDY0esVXn6wf7wtables(eh);
					if (!T9_) goto LA10_;
					T12_ = (((*t).data ? (*t).data->Sup.len : 0)-1);
					j = (NI)(eh & T12_);
					{
						while (1) {
							NIM_BOOL T15_;
							NI T16_;
							if ((NU)(j) >= (NU)((*t).data ? (*t).data->Sup.len : 0)) raiseIndexError2(j,((*t).data ? (*t).data->Sup.len : 0)-1);
							T15_ = (NIM_BOOL)0;
							T15_ = isFilled__5Qpmu5QqwDY0esVXn6wf7wtables((*t).data->data[j].Field0);
							if (!T15_) goto LA14;
							T16_ = (((*t).data ? (*t).data->Sup.len : 0)-1);
							j = nextTry__rkF6R1GhqjFh3qSAPaT2Cwtables(j, T16_);
						} LA14: ;
					}
					if ((NU)(i) >= (NU)(n ? n->Sup.len : 0)) raiseIndexError2(i,(n ? n->Sup.len : 0)-1);
					T17_ = (NimStringDesc*)0;
					T17_ = n->data[i].Field1;
					asgnRef((void**) (&n->data[i].Field1), NIM_NIL);
					if ((NU)(i) >= (NU)(n ? n->Sup.len : 0)) raiseIndexError2(i,(n ? n->Sup.len : 0)-1);
					nimZeroMem((void*)(&T18_), sizeof(tyObject_BTree__VZdzO0Tlflp7WMN4gS8oPg));
					T18_.root = n->data[i].Field2.root;
					T18_.entries = n->data[i].Field2.entries;
					chckNil((void*)(&n->data[i].Field2));
					genericReset((void*)(&n->data[i].Field2), (&NTI__VZdzO0Tlflp7WMN4gS8oPg_));
					rawInsert__X9afgMwIB5o1VDnyZkF63LA(t, (&(*t).data), T17_, T18_, eh, j);
				}
				LA10_: ;
				TM__4SoG2KRQy3oMm9aUzSLtGrA_82 = addInt(res, ((NI) 1));
				res = (NI)(TM__4SoG2KRQy3oMm9aUzSLtGrA_82);
			} LA6: ;
		}
	}
}
static N_INLINE(NI, rawGetKnownHC__TSpYtoROqC7475f9bg4iXugtables)(tyObject_Table__nagDFX4QHx0s6Fvma9blmSg t, NimStringDesc* key, NI hc) {	NI result;
	NI h;
	NI T6_;
	NI TM__4SoG2KRQy3oMm9aUzSLtGrA_83;
{	result = (NI)0;
	{
		NI T3_;
		T3_ = (t.data ? t.data->Sup.len : 0);
		if (!(T3_ == ((NI) 0))) goto LA4_;
		result = ((NI) -1);
		goto BeforeRet_;
	}
	LA4_: ;
	T6_ = ((t.data ? t.data->Sup.len : 0)-1);
	h = (NI)(hc & T6_);
	{
		while (1) {
			NIM_BOOL T9_;
			NI T16_;
			if ((NU)(h) >= (NU)(t.data ? t.data->Sup.len : 0)) raiseIndexError2(h,(t.data ? t.data->Sup.len : 0)-1);
			T9_ = (NIM_BOOL)0;
			T9_ = isFilled__5Qpmu5QqwDY0esVXn6wf7wtables(t.data->data[h].Field0);
			if (!T9_) goto LA8;
			{
				NIM_BOOL T12_;
				T12_ = (NIM_BOOL)0;
				if ((NU)(h) >= (NU)(t.data ? t.data->Sup.len : 0)) raiseIndexError2(h,(t.data ? t.data->Sup.len : 0)-1);
				T12_ = (t.data->data[h].Field0 == hc);
				if (!(T12_)) goto LA13_;
				if ((NU)(h) >= (NU)(t.data ? t.data->Sup.len : 0)) raiseIndexError2(h,(t.data ? t.data->Sup.len : 0)-1);
				T12_ = eqStrings(t.data->data[h].Field1, key);
				LA13_: ;
				if (!T12_) goto LA14_;
				result = h;
				goto BeforeRet_;
			}
			LA14_: ;
			T16_ = ((t.data ? t.data->Sup.len : 0)-1);
			h = nextTry__rkF6R1GhqjFh3qSAPaT2Cwtables(h, T16_);
		} LA8: ;
	}
	TM__4SoG2KRQy3oMm9aUzSLtGrA_83 = subInt(((NI) -1), h);
	result = (NI)(TM__4SoG2KRQy3oMm9aUzSLtGrA_83);
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, X5BX5Deq___L2EahbjJPAlDipW4Omiq5g)(tyObject_Table__nagDFX4QHx0s6Fvma9blmSg* t, NimStringDesc* key, tyObject_BTree__VZdzO0Tlflp7WMN4gS8oPg val) {	NI hc;
	NI index;
	{
		NI T3_;
		T3_ = ((*t).data ? (*t).data->Sup.len : 0);
		if (!(T3_ == ((NI) 0))) goto LA4_;
		{
			NIM_BOOL T8_;
			T8_ = (NIM_BOOL)0;
			T8_ = isPowerOfTwo__1xdTQapFveM9bImKot7h9cdw(((NI) 64));
			if (!!(T8_)) goto LA9_;
			failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__4SoG2KRQy3oMm9aUzSLtGrA_7));
		}
		LA9_: ;
		(*t).counter = ((NI) 0);
		unsureAsgnRef((void**) (&(*t).data), (tySequence__pHNq3oXj9av2sEUdqaqeZjw*) newSeq((&NTI__pHNq3oXj9av2sEUdqaqeZjw_), ((NI) 64)));
	}
	LA4_: ;
	hc = (NI)0;
	index = rawGet__z5lyUFnYWNZgtnmQvNIG1Atables((*t), key, (&hc));
	{
		if (!(((NI) 0) <= index)) goto LA13_;
		if ((NU)(index) >= (NU)((*t).data ? (*t).data->Sup.len : 0)) raiseIndexError2(index,((*t).data ? (*t).data->Sup.len : 0)-1);
		asgnRef((void**) (&(*t).data->data[index].Field2.root), val.root);
		(*t).data->data[index].Field2.entries = val.entries;
	}
	goto LA11_;
	LA13_: ;
	{
		NI TM__4SoG2KRQy3oMm9aUzSLtGrA_84;
		NI TM__4SoG2KRQy3oMm9aUzSLtGrA_85;
		{
			NI T18_;
			T18_ = ((*t).data ? (*t).data->Sup.len : 0);
			if (!(T18_ == ((NI) 0))) goto LA19_;
			{
				NIM_BOOL T23_;
				T23_ = (NIM_BOOL)0;
				T23_ = isPowerOfTwo__1xdTQapFveM9bImKot7h9cdw(((NI) 64));
				if (!!(T23_)) goto LA24_;
				failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__4SoG2KRQy3oMm9aUzSLtGrA_7));
			}
			LA24_: ;
			(*t).counter = ((NI) 0);
			unsureAsgnRef((void**) (&(*t).data), (tySequence__pHNq3oXj9av2sEUdqaqeZjw*) newSeq((&NTI__pHNq3oXj9av2sEUdqaqeZjw_), ((NI) 64)));
		}
		LA19_: ;
		{
			NI T28_;
			NIM_BOOL T29_;
			T28_ = ((*t).data ? (*t).data->Sup.len : 0);
			T29_ = (NIM_BOOL)0;
			T29_ = mustRehash__qu7bkfOlld3ZqX4akPQiHwtables(T28_, (*t).counter);
			if (!T29_) goto LA30_;
			enlarge__xUzvAyBcVu9b8xJ84vmmdgg(t);
			index = rawGetKnownHC__TSpYtoROqC7475f9bg4iXugtables((*t), key, hc);
		}
		LA30_: ;
		TM__4SoG2KRQy3oMm9aUzSLtGrA_84 = subInt(((NI) -1), index);
		index = (NI)(TM__4SoG2KRQy3oMm9aUzSLtGrA_84);
		rawInsert__X9afgMwIB5o1VDnyZkF63LA(t, (&(*t).data), key, val, hc, index);
		TM__4SoG2KRQy3oMm9aUzSLtGrA_85 = addInt((*t).counter, ((NI) 1));
		(*t).counter = (NI)(TM__4SoG2KRQy3oMm9aUzSLtGrA_85);
	}
	LA11_: ;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_BTree__VZdzO0Tlflp7WMN4gS8oPg*, X5BX5D___SsXWfuQKn5htR3WBdyM0mA)(tyObject_Table__nagDFX4QHx0s6Fvma9blmSg* t, NimStringDesc* key) {	tyObject_BTree__VZdzO0Tlflp7WMN4gS8oPg* result;
	NI hcX60gensym365565_;
	NI indexX60gensym365566_;
	result = (tyObject_BTree__VZdzO0Tlflp7WMN4gS8oPg*)0;
	hcX60gensym365565_ = (NI)0;
	indexX60gensym365566_ = rawGet__z5lyUFnYWNZgtnmQvNIG1Atables((*t), key, (&hcX60gensym365565_));
	{
		if (!(((NI) 0) <= indexX60gensym365566_)) goto LA3_;
		if ((NU)(indexX60gensym365566_) >= (NU)((*t).data ? (*t).data->Sup.len : 0)) raiseIndexError2(indexX60gensym365566_,((*t).data ? (*t).data->Sup.len : 0)-1);
		result = (&(*t).data->data[indexX60gensym365566_].Field2);
	}
	goto LA1_;
	LA3_: ;
	{
		tyObject_KeyError__t7nhKLvXTQS9cS8ByJU9bIag* eX60gensym874403_;
		NimStringDesc* T6_;
		eX60gensym874403_ = (tyObject_KeyError__t7nhKLvXTQS9cS8ByJU9bIag*)0;
		eX60gensym874403_ = (tyObject_KeyError__t7nhKLvXTQS9cS8ByJU9bIag*) newObj((&NTI__8SzoIAgLw9ci2v0yafHj9b6Q_), sizeof(tyObject_KeyError__t7nhKLvXTQS9cS8ByJU9bIag));
		(*eX60gensym874403_).Sup.Sup.Sup.Sup.m_type = (&NTI__t7nhKLvXTQS9cS8ByJU9bIag_);
		(*eX60gensym874403_).Sup.Sup.Sup.name = "KeyError";
		T6_ = (NimStringDesc*)0;
		T6_ = rawNewString((key ? key->Sup.len : 0) + 15);
appendString(T6_, ((NimStringDesc*) &TM__4SoG2KRQy3oMm9aUzSLtGrA_20));
appendString(T6_, key);
		asgnRef((void**) (&(*eX60gensym874403_).Sup.Sup.Sup.message), T6_);
		asgnRef((void**) (&(*eX60gensym874403_).Sup.Sup.Sup.parent), NIM_NIL);
		raiseExceptionEx((Exception*)eX60gensym874403_, "KeyError", "[]", "tables.nim", 264);
	}
	LA1_: ;
	return result;
}
static N_NIMCALL(void, Marker_tySequence__s12F9c4cKfaapm8VzG9a1flQ)(void* p, NI op) {
	tySequence__s12F9c4cKfaapm8VzG9a1flQ* a;
	NI T1_;
	a = (tySequence__s12F9c4cKfaapm8VzG9a1flQ*)p;
	T1_ = (NI)0;
	for (T1_ = 0; T1_ < (a ? a->Sup.len : 0); T1_++) {
	nimGCvisit((void*)a->data[T1_].Field2, op);
	}
}
N_LIB_PRIVATE N_NIMCALL(void, initTable__YTsZ11U9aeIqqeJoGkYFEXQ)(NI initialSize, tyObject_Table__7O9bs4LORhqcR0JGh7d1MDg* Result) {	chckNil((void*)Result);
	genericReset((void*)Result, (&NTI__7O9bs4LORhqcR0JGh7d1MDg_));
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = isPowerOfTwo__1xdTQapFveM9bImKot7h9cdw(initialSize);
		if (!!(T3_)) goto LA4_;
		failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__4SoG2KRQy3oMm9aUzSLtGrA_4));
	}
	LA4_: ;
	(*Result).counter = ((NI) 0);
	unsureAsgnRef((void**) (&(*Result).data), (tySequence__s12F9c4cKfaapm8VzG9a1flQ*) newSeq((&NTI__s12F9c4cKfaapm8VzG9a1flQ_), ((NI)chckRange(initialSize, ((NI) 0), ((NI) IL64(9223372036854775807))))));
}
static N_INLINE(NI, hash__sTYVuBLDBQbglYNxcT9bWrghashes)(NI64 x) {	NI result;
	result = (NI)0;
	result = ((NI) (x));
	return result;
}
static N_INLINE(NI, rawGet__WHgMCdcTgzDXYwrCU5rygAtables)(tyObject_Table__7O9bs4LORhqcR0JGh7d1MDg t, NI64 key, NI* hc) {	NI result;
	NI h;
	NI T10_;
	NI TM__4SoG2KRQy3oMm9aUzSLtGrA_88;
{	result = (NI)0;
	(*hc) = hash__sTYVuBLDBQbglYNxcT9bWrghashes(key);
	{
		if (!((*hc) == ((NI) 0))) goto LA3_;
		(*hc) = ((NI) 314159265);
	}
	LA3_: ;
	{
		NI T7_;
		T7_ = (t.data ? t.data->Sup.len : 0);
		if (!(T7_ == ((NI) 0))) goto LA8_;
		result = ((NI) -1);
		goto BeforeRet_;
	}
	LA8_: ;
	T10_ = ((t.data ? t.data->Sup.len : 0)-1);
	h = (NI)((*hc) & T10_);
	{
		while (1) {
			NIM_BOOL T13_;
			NI T20_;
			if ((NU)(h) >= (NU)(t.data ? t.data->Sup.len : 0)) raiseIndexError2(h,(t.data ? t.data->Sup.len : 0)-1);
			T13_ = (NIM_BOOL)0;
			T13_ = isFilled__5Qpmu5QqwDY0esVXn6wf7wtables(t.data->data[h].Field0);
			if (!T13_) goto LA12;
			{
				NIM_BOOL T16_;
				T16_ = (NIM_BOOL)0;
				if ((NU)(h) >= (NU)(t.data ? t.data->Sup.len : 0)) raiseIndexError2(h,(t.data ? t.data->Sup.len : 0)-1);
				T16_ = (t.data->data[h].Field0 == (*hc));
				if (!(T16_)) goto LA17_;
				if ((NU)(h) >= (NU)(t.data ? t.data->Sup.len : 0)) raiseIndexError2(h,(t.data ? t.data->Sup.len : 0)-1);
				T16_ = (t.data->data[h].Field1 == key);
				LA17_: ;
				if (!T16_) goto LA18_;
				result = h;
				goto BeforeRet_;
			}
			LA18_: ;
			T20_ = ((t.data ? t.data->Sup.len : 0)-1);
			h = nextTry__rkF6R1GhqjFh3qSAPaT2Cwtables(h, T20_);
		} LA12: ;
	}
	TM__4SoG2KRQy3oMm9aUzSLtGrA_88 = subInt(((NI) -1), h);
	result = (NI)(TM__4SoG2KRQy3oMm9aUzSLtGrA_88);
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, getOrDefault__NuV0kwmS6NPkSg4nGTYxGQ)(tyObject_Table__7O9bs4LORhqcR0JGh7d1MDg t, NI64 key) {	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	NI hcX60gensym835187_;
	NI indexX60gensym835188_;
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
	hcX60gensym835187_ = (NI)0;
	indexX60gensym835188_ = rawGet__WHgMCdcTgzDXYwrCU5rygAtables(t, key, (&hcX60gensym835187_));
	{
		if (!(((NI) 0) <= indexX60gensym835188_)) goto LA3_;
		if ((NU)(indexX60gensym835188_) >= (NU)(t.data ? t.data->Sup.len : 0)) raiseIndexError2(indexX60gensym835188_,(t.data ? t.data->Sup.len : 0)-1);
		result = t.data->data[indexX60gensym835188_].Field2;
	}
	LA3_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, rawInsert__9bGCjjc8EMS6OJa9a9anUwMjg)(tyObject_Table__7O9bs4LORhqcR0JGh7d1MDg* t, tySequence__s12F9c4cKfaapm8VzG9a1flQ** data, NI64 key, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* val, NI hc, NI h) {	if ((NU)(h) >= (NU)((*data) ? (*data)->Sup.len : 0)) raiseIndexError2(h,((*data) ? (*data)->Sup.len : 0)-1);
	(*data)->data[h].Field1 = key;
	if ((NU)(h) >= (NU)((*data) ? (*data)->Sup.len : 0)) raiseIndexError2(h,((*data) ? (*data)->Sup.len : 0)-1);
	asgnRef((void**) (&(*data)->data[h].Field2), val);
	if ((NU)(h) >= (NU)((*data) ? (*data)->Sup.len : 0)) raiseIndexError2(h,((*data) ? (*data)->Sup.len : 0)-1);
	(*data)->data[h].Field0 = hc;
}
N_LIB_PRIVATE N_NIMCALL(void, enlarge__eoqIM0Hd0SjhaY9cur9b4i8w)(tyObject_Table__7O9bs4LORhqcR0JGh7d1MDg* t) {	tySequence__s12F9c4cKfaapm8VzG9a1flQ* n;
	NI T1_;
	NI TM__4SoG2KRQy3oMm9aUzSLtGrA_89;
	tySequence__s12F9c4cKfaapm8VzG9a1flQ* T2_;
	n = (tySequence__s12F9c4cKfaapm8VzG9a1flQ*)0;
	T1_ = ((*t).data ? (*t).data->Sup.len : 0);
	TM__4SoG2KRQy3oMm9aUzSLtGrA_89 = mulInt(T1_, ((NI) 2));
	n = (tySequence__s12F9c4cKfaapm8VzG9a1flQ*) newSeq((&NTI__s12F9c4cKfaapm8VzG9a1flQ_), ((NI)chckRange((NI)(TM__4SoG2KRQy3oMm9aUzSLtGrA_89), ((NI) 0), ((NI) IL64(9223372036854775807)))));
	T2_ = (tySequence__s12F9c4cKfaapm8VzG9a1flQ*)0;
	T2_ = (*t).data;
	unsureAsgnRef((void**) (&(*t).data), n);
	n = T2_;
	{
		NI i;
		NI colontmp_;
		NI T4_;
		NI res;
		i = (NI)0;
		colontmp_ = (NI)0;
		T4_ = ((n ? n->Sup.len : 0)-1);
		colontmp_ = T4_;
		res = ((NI) 0);
		{
			while (1) {
				NI eh;
				NI TM__4SoG2KRQy3oMm9aUzSLtGrA_90;
				if (!(res <= colontmp_)) goto LA6;
				i = res;
				if ((NU)(i) >= (NU)(n ? n->Sup.len : 0)) raiseIndexError2(i,(n ? n->Sup.len : 0)-1);
				eh = n->data[i].Field0;
				{
					NIM_BOOL T9_;
					NI j;
					NI T12_;
					NI64 T17_;
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T18_;
					T9_ = (NIM_BOOL)0;
					T9_ = isFilled__5Qpmu5QqwDY0esVXn6wf7wtables(eh);
					if (!T9_) goto LA10_;
					T12_ = (((*t).data ? (*t).data->Sup.len : 0)-1);
					j = (NI)(eh & T12_);
					{
						while (1) {
							NIM_BOOL T15_;
							NI T16_;
							if ((NU)(j) >= (NU)((*t).data ? (*t).data->Sup.len : 0)) raiseIndexError2(j,((*t).data ? (*t).data->Sup.len : 0)-1);
							T15_ = (NIM_BOOL)0;
							T15_ = isFilled__5Qpmu5QqwDY0esVXn6wf7wtables((*t).data->data[j].Field0);
							if (!T15_) goto LA14;
							T16_ = (((*t).data ? (*t).data->Sup.len : 0)-1);
							j = nextTry__rkF6R1GhqjFh3qSAPaT2Cwtables(j, T16_);
						} LA14: ;
					}
					if ((NU)(i) >= (NU)(n ? n->Sup.len : 0)) raiseIndexError2(i,(n ? n->Sup.len : 0)-1);
					T17_ = (NI64)0;
					T17_ = n->data[i].Field1;
					n->data[i].Field1 = 0;
					if ((NU)(i) >= (NU)(n ? n->Sup.len : 0)) raiseIndexError2(i,(n ? n->Sup.len : 0)-1);
					T18_ = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*)0;
					T18_ = n->data[i].Field2;
					asgnRef((void**) (&n->data[i].Field2), NIM_NIL);
					rawInsert__9bGCjjc8EMS6OJa9a9anUwMjg(t, (&(*t).data), T17_, T18_, eh, j);
				}
				LA10_: ;
				TM__4SoG2KRQy3oMm9aUzSLtGrA_90 = addInt(res, ((NI) 1));
				res = (NI)(TM__4SoG2KRQy3oMm9aUzSLtGrA_90);
			} LA6: ;
		}
	}
}
static N_INLINE(NI, rawGetKnownHC__K1f7gLsHF5x79adahVjRo5Atables)(tyObject_Table__7O9bs4LORhqcR0JGh7d1MDg t, NI64 key, NI hc) {	NI result;
	NI h;
	NI T6_;
	NI TM__4SoG2KRQy3oMm9aUzSLtGrA_91;
{	result = (NI)0;
	{
		NI T3_;
		T3_ = (t.data ? t.data->Sup.len : 0);
		if (!(T3_ == ((NI) 0))) goto LA4_;
		result = ((NI) -1);
		goto BeforeRet_;
	}
	LA4_: ;
	T6_ = ((t.data ? t.data->Sup.len : 0)-1);
	h = (NI)(hc & T6_);
	{
		while (1) {
			NIM_BOOL T9_;
			NI T16_;
			if ((NU)(h) >= (NU)(t.data ? t.data->Sup.len : 0)) raiseIndexError2(h,(t.data ? t.data->Sup.len : 0)-1);
			T9_ = (NIM_BOOL)0;
			T9_ = isFilled__5Qpmu5QqwDY0esVXn6wf7wtables(t.data->data[h].Field0);
			if (!T9_) goto LA8;
			{
				NIM_BOOL T12_;
				T12_ = (NIM_BOOL)0;
				if ((NU)(h) >= (NU)(t.data ? t.data->Sup.len : 0)) raiseIndexError2(h,(t.data ? t.data->Sup.len : 0)-1);
				T12_ = (t.data->data[h].Field0 == hc);
				if (!(T12_)) goto LA13_;
				if ((NU)(h) >= (NU)(t.data ? t.data->Sup.len : 0)) raiseIndexError2(h,(t.data ? t.data->Sup.len : 0)-1);
				T12_ = (t.data->data[h].Field1 == key);
				LA13_: ;
				if (!T12_) goto LA14_;
				result = h;
				goto BeforeRet_;
			}
			LA14_: ;
			T16_ = ((t.data ? t.data->Sup.len : 0)-1);
			h = nextTry__rkF6R1GhqjFh3qSAPaT2Cwtables(h, T16_);
		} LA8: ;
	}
	TM__4SoG2KRQy3oMm9aUzSLtGrA_91 = subInt(((NI) -1), h);
	result = (NI)(TM__4SoG2KRQy3oMm9aUzSLtGrA_91);
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, X5BX5Deq___OtPEflpH4zlxCllppdpU2g)(tyObject_Table__7O9bs4LORhqcR0JGh7d1MDg* t, NI64 key, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* val) {	NI hc;
	NI index;
	{
		NI T3_;
		T3_ = ((*t).data ? (*t).data->Sup.len : 0);
		if (!(T3_ == ((NI) 0))) goto LA4_;
		{
			NIM_BOOL T8_;
			T8_ = (NIM_BOOL)0;
			T8_ = isPowerOfTwo__1xdTQapFveM9bImKot7h9cdw(((NI) 64));
			if (!!(T8_)) goto LA9_;
			failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__4SoG2KRQy3oMm9aUzSLtGrA_7));
		}
		LA9_: ;
		(*t).counter = ((NI) 0);
		unsureAsgnRef((void**) (&(*t).data), (tySequence__s12F9c4cKfaapm8VzG9a1flQ*) newSeq((&NTI__s12F9c4cKfaapm8VzG9a1flQ_), ((NI) 64)));
	}
	LA4_: ;
	hc = (NI)0;
	index = rawGet__WHgMCdcTgzDXYwrCU5rygAtables((*t), key, (&hc));
	{
		if (!(((NI) 0) <= index)) goto LA13_;
		if ((NU)(index) >= (NU)((*t).data ? (*t).data->Sup.len : 0)) raiseIndexError2(index,((*t).data ? (*t).data->Sup.len : 0)-1);
		asgnRef((void**) (&(*t).data->data[index].Field2), val);
	}
	goto LA11_;
	LA13_: ;
	{
		NI TM__4SoG2KRQy3oMm9aUzSLtGrA_92;
		NI TM__4SoG2KRQy3oMm9aUzSLtGrA_93;
		{
			NI T18_;
			T18_ = ((*t).data ? (*t).data->Sup.len : 0);
			if (!(T18_ == ((NI) 0))) goto LA19_;
			{
				NIM_BOOL T23_;
				T23_ = (NIM_BOOL)0;
				T23_ = isPowerOfTwo__1xdTQapFveM9bImKot7h9cdw(((NI) 64));
				if (!!(T23_)) goto LA24_;
				failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__4SoG2KRQy3oMm9aUzSLtGrA_7));
			}
			LA24_: ;
			(*t).counter = ((NI) 0);
			unsureAsgnRef((void**) (&(*t).data), (tySequence__s12F9c4cKfaapm8VzG9a1flQ*) newSeq((&NTI__s12F9c4cKfaapm8VzG9a1flQ_), ((NI) 64)));
		}
		LA19_: ;
		{
			NI T28_;
			NIM_BOOL T29_;
			T28_ = ((*t).data ? (*t).data->Sup.len : 0);
			T29_ = (NIM_BOOL)0;
			T29_ = mustRehash__qu7bkfOlld3ZqX4akPQiHwtables(T28_, (*t).counter);
			if (!T29_) goto LA30_;
			enlarge__eoqIM0Hd0SjhaY9cur9b4i8w(t);
			index = rawGetKnownHC__K1f7gLsHF5x79adahVjRo5Atables((*t), key, hc);
		}
		LA30_: ;
		TM__4SoG2KRQy3oMm9aUzSLtGrA_92 = subInt(((NI) -1), index);
		index = (NI)(TM__4SoG2KRQy3oMm9aUzSLtGrA_92);
		rawInsert__9bGCjjc8EMS6OJa9a9anUwMjg(t, (&(*t).data), key, val, hc, index);
		TM__4SoG2KRQy3oMm9aUzSLtGrA_93 = addInt((*t).counter, ((NI) 1));
		(*t).counter = (NI)(TM__4SoG2KRQy3oMm9aUzSLtGrA_93);
	}
	LA11_: ;
}
static N_NIMCALL(void, Marker_tySequence__sII3pVVRkIdBZ2HDPdZddA)(void* p, NI op) {
	tySequence__sII3pVVRkIdBZ2HDPdZddA* a;
	NI T1_;
	NI T2_;
	a = (tySequence__sII3pVVRkIdBZ2HDPdZddA*)p;
	T1_ = (NI)0;
	for (T1_ = 0; T1_ < (a ? a->Sup.len : 0); T1_++) {
	T2_ = (NI)0;
	nimGCvisit((void*)a->data[T1_].Field2, op);
	}
}
static N_NIMCALL(void, Marker_tySequence__jwzrUFjG9akTIJTBBFvvqxw)(void* p, NI op) {
	tySequence__jwzrUFjG9akTIJTBBFvvqxw* a;
	NI T1_;
	a = (tySequence__jwzrUFjG9akTIJTBBFvvqxw*)p;
	T1_ = (NI)0;
	for (T1_ = 0; T1_ < (a ? a->Sup.len : 0); T1_++) {
	nimGCvisit((void*)a->data[T1_].Field0, op);
	}
}
static N_NIMCALL(void, Marker_tySequence__XUL1TrMU0tgXmaMFCIYgFQ)(void* p, NI op) {
	tySequence__XUL1TrMU0tgXmaMFCIYgFQ* a;
	NI T1_;
	NI T2_;
	a = (tySequence__XUL1TrMU0tgXmaMFCIYgFQ*)p;
	T1_ = (NI)0;
	for (T1_ = 0; T1_ < (a ? a->Sup.len : 0); T1_++) {
	T2_ = (NI)0;
	}
}
static N_NIMCALL(void, Marker_tySequence__diqJJ1bWuFP7M6rQDS9cBLQ)(void* p, NI op) {
	tySequence__diqJJ1bWuFP7M6rQDS9cBLQ* a;
	NI T1_;
	NI T2_;
	a = (tySequence__diqJJ1bWuFP7M6rQDS9cBLQ*)p;
	T1_ = (NI)0;
	for (T1_ = 0; T1_ < (a ? a->Sup.len : 0); T1_++) {
	T2_ = (NI)0;
	nimGCvisit((void*)a->data[T1_].Field2.Field0, op);
	nimGCvisit((void*)a->data[T1_].Field2.Field1, op);
	}
}
N_LIB_PRIVATE N_NIMCALL(void, initTable__22cYO7U9aPu9aJmxAg0EDCBg)(NI initialSize, tyObject_Table__6nOsw5R7jH72bux7HSST9bg* Result) {	chckNil((void*)Result);
	genericReset((void*)Result, (&NTI__6nOsw5R7jH72bux7HSST9bg_));
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = isPowerOfTwo__1xdTQapFveM9bImKot7h9cdw(initialSize);
		if (!!(T3_)) goto LA4_;
		failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__4SoG2KRQy3oMm9aUzSLtGrA_4));
	}
	LA4_: ;
	(*Result).counter = ((NI) 0);
	unsureAsgnRef((void**) (&(*Result).data), (tySequence__diqJJ1bWuFP7M6rQDS9cBLQ*) newSeq((&NTI__diqJJ1bWuFP7M6rQDS9cBLQ_), ((NI)chckRange(initialSize, ((NI) 0), ((NI) IL64(9223372036854775807))))));
}
N_LIB_PRIVATE N_NIMCALL(void, initTable__ZudPzqPNlpthuJgNIdX3jA)(NI initialSize, tyObject_Table__gZ3EYQdz9coOB7ngN9a1cqwA* Result) {	chckNil((void*)Result);
	genericReset((void*)Result, (&NTI__gZ3EYQdz9coOB7ngN9a1cqwA_));
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = isPowerOfTwo__1xdTQapFveM9bImKot7h9cdw(initialSize);
		if (!!(T3_)) goto LA4_;
		failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__4SoG2KRQy3oMm9aUzSLtGrA_4));
	}
	LA4_: ;
	(*Result).counter = ((NI) 0);
	unsureAsgnRef((void**) (&(*Result).data), (tySequence__sII3pVVRkIdBZ2HDPdZddA*) newSeq((&NTI__sII3pVVRkIdBZ2HDPdZddA_), ((NI)chckRange(initialSize, ((NI) 0), ((NI) IL64(9223372036854775807))))));
}
N_LIB_PRIVATE N_NIMCALL(void, initCountTable__9apu9bmxB0tG2KjdEWuGfVPg)(NI initialSize, tyObject_CountTable__tUMxxU9cRgLolsrW9b7IBGsQ* Result) {	chckNil((void*)Result);
	genericReset((void*)Result, (&NTI__tUMxxU9cRgLolsrW9b7IBGsQ_));
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = isPowerOfTwo__1xdTQapFveM9bImKot7h9cdw(initialSize);
		if (!!(T3_)) goto LA4_;
		failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__4SoG2KRQy3oMm9aUzSLtGrA_4));
	}
	LA4_: ;
	(*Result).counter = ((NI) 0);
	unsureAsgnRef((void**) (&(*Result).data), (tySequence__XUL1TrMU0tgXmaMFCIYgFQ*) newSeq((&NTI__XUL1TrMU0tgXmaMFCIYgFQ_), ((NI)chckRange(initialSize, ((NI) 0), ((NI) IL64(9223372036854775807))))));
}
N_LIB_PRIVATE N_NIMCALL(void, initCountTable__c8ZqFh8t3EqhDNTipW6ekQ)(NI initialSize, tyObject_CountTable__chlLjy9bvnFM9b9bSZfiIkyGg* Result) {	chckNil((void*)Result);
	genericReset((void*)Result, (&NTI__chlLjy9bvnFM9b9bSZfiIkyGg_));
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = isPowerOfTwo__1xdTQapFveM9bImKot7h9cdw(initialSize);
		if (!!(T3_)) goto LA4_;
		failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__4SoG2KRQy3oMm9aUzSLtGrA_4));
	}
	LA4_: ;
	(*Result).counter = ((NI) 0);
	unsureAsgnRef((void**) (&(*Result).data), (tySequence__jwzrUFjG9akTIJTBBFvvqxw*) newSeq((&NTI__jwzrUFjG9akTIJTBBFvvqxw_), ((NI)chckRange(initialSize, ((NI) 0), ((NI) IL64(9223372036854775807))))));
}
N_LIB_PRIVATE N_NIMCALL(NI, rawGet__w2fZhqPRZdan2r9a51X3ZXA)(tyObject_CountTable__tUMxxU9cRgLolsrW9b7IBGsQ t, tyArray__qtqsWM5aXmcpMIVmvq3kAA key) {	NI result;
	NI h;
	NI T6_;
	NI T7_;
	NI TM__4SoG2KRQy3oMm9aUzSLtGrA_101;
{	result = (NI)0;
	{
		NI T3_;
		T3_ = (t.data ? t.data->Sup.len : 0);
		if (!(T3_ == ((NI) 0))) goto LA4_;
		result = ((NI) -1);
		goto BeforeRet_;
	}
	LA4_: ;
	T6_ = (NI)0;
	T6_ = hash__XFPFecV5bGJUDhwku4bw7A(key);
	T7_ = ((t.data ? t.data->Sup.len : 0)-1);
	h = (NI)(T6_ & T7_);
	{
		while (1) {
			NI T15_;
			if ((NU)(h) >= (NU)(t.data ? t.data->Sup.len : 0)) raiseIndexError2(h,(t.data ? t.data->Sup.len : 0)-1);
			if (!!((t.data->data[h].Field1 == ((NI) 0)))) goto LA9;
			{
				NIM_BOOL T12_;
				if ((NU)(h) >= (NU)(t.data ? t.data->Sup.len : 0)) raiseIndexError2(h,(t.data ? t.data->Sup.len : 0)-1);
				T12_ = (NIM_BOOL)0;
				T12_ = eqeq___76rDYGuUQDl2xSav8vUDiA(t.data->data[h].Field0, key);
				if (!T12_) goto LA13_;
				result = h;
				goto BeforeRet_;
			}
			LA13_: ;
			T15_ = ((t.data ? t.data->Sup.len : 0)-1);
			h = nextTry__rkF6R1GhqjFh3qSAPaT2Cwtables(h, T15_);
		} LA9: ;
	}
	TM__4SoG2KRQy3oMm9aUzSLtGrA_101 = subInt(((NI) -1), h);
	result = (NI)(TM__4SoG2KRQy3oMm9aUzSLtGrA_101);
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NI, getOrDefault__jOz9cq69cLtimtiCsRyrmEBA)(tyObject_CountTable__tUMxxU9cRgLolsrW9b7IBGsQ t, tyArray__qtqsWM5aXmcpMIVmvq3kAA key, NI default_0) {	NI result;
	NI indexX60gensym367698_;
	result = (NI)0;
	indexX60gensym367698_ = rawGet__w2fZhqPRZdan2r9a51X3ZXA(t, key);
	{
		if (!(((NI) 0) <= indexX60gensym367698_)) goto LA3_;
		if ((NU)(indexX60gensym367698_) >= (NU)(t.data ? t.data->Sup.len : 0)) raiseIndexError2(indexX60gensym367698_,(t.data ? t.data->Sup.len : 0)-1);
		result = t.data->data[indexX60gensym367698_].Field1;
	}
	goto LA1_;
	LA3_: ;
	{
		result = default_0;
	}
	LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, ctRawInsert__EhLhU9b3JGmgVjguB3HOsgQ)(tyObject_CountTable__tUMxxU9cRgLolsrW9b7IBGsQ t, tySequence__XUL1TrMU0tgXmaMFCIYgFQ** data, tyArray__qtqsWM5aXmcpMIVmvq3kAA key, NI val) {	NI h;
	NI T1_;
	NI T2_;
	T1_ = (NI)0;
	T1_ = hash__XFPFecV5bGJUDhwku4bw7A(key);
	T2_ = (((*data) ? (*data)->Sup.len : 0)-1);
	h = (NI)(T1_ & T2_);
	{
		while (1) {
			NI T5_;
			if ((NU)(h) >= (NU)((*data) ? (*data)->Sup.len : 0)) raiseIndexError2(h,((*data) ? (*data)->Sup.len : 0)-1);
			if (!!(((*data)->data[h].Field1 == ((NI) 0)))) goto LA4;
			T5_ = (((*data) ? (*data)->Sup.len : 0)-1);
			h = nextTry__rkF6R1GhqjFh3qSAPaT2Cwtables(h, T5_);
		} LA4: ;
	}
	if ((NU)(h) >= (NU)((*data) ? (*data)->Sup.len : 0)) raiseIndexError2(h,((*data) ? (*data)->Sup.len : 0)-1);
	nimCopyMem((void*)(*data)->data[h].Field0, (NIM_CONST void*)key, sizeof(tyArray__qtqsWM5aXmcpMIVmvq3kAA));
	if ((NU)(h) >= (NU)((*data) ? (*data)->Sup.len : 0)) raiseIndexError2(h,((*data) ? (*data)->Sup.len : 0)-1);
	(*data)->data[h].Field1 = val;
}
N_LIB_PRIVATE N_NIMCALL(void, enlarge__kgVnhJBOCSxuahhdbN9cidg)(tyObject_CountTable__tUMxxU9cRgLolsrW9b7IBGsQ* t) {	tySequence__XUL1TrMU0tgXmaMFCIYgFQ* n;
	NI T1_;
	NI TM__4SoG2KRQy3oMm9aUzSLtGrA_105;
	tySequence__XUL1TrMU0tgXmaMFCIYgFQ* T10_;
	n = (tySequence__XUL1TrMU0tgXmaMFCIYgFQ*)0;
	T1_ = ((*t).data ? (*t).data->Sup.len : 0);
	TM__4SoG2KRQy3oMm9aUzSLtGrA_105 = mulInt(T1_, ((NI) 2));
	n = (tySequence__XUL1TrMU0tgXmaMFCIYgFQ*) newSeq((&NTI__XUL1TrMU0tgXmaMFCIYgFQ_), ((NI)chckRange((NI)(TM__4SoG2KRQy3oMm9aUzSLtGrA_105), ((NI) 0), ((NI) IL64(9223372036854775807)))));
	{
		NI i;
		NI colontmp_;
		NI T3_;
		NI res;
		i = (NI)0;
		colontmp_ = (NI)0;
		T3_ = (((*t).data ? (*t).data->Sup.len : 0)-1);
		colontmp_ = T3_;
		res = ((NI) 0);
		{
			while (1) {
				NI TM__4SoG2KRQy3oMm9aUzSLtGrA_106;
				if (!(res <= colontmp_)) goto LA5;
				i = res;
				{
					if ((NU)(i) >= (NU)((*t).data ? (*t).data->Sup.len : 0)) raiseIndexError2(i,((*t).data ? (*t).data->Sup.len : 0)-1);
					if (!!(((*t).data->data[i].Field1 == ((NI) 0)))) goto LA8_;
					if ((NU)(i) >= (NU)((*t).data ? (*t).data->Sup.len : 0)) raiseIndexError2(i,((*t).data ? (*t).data->Sup.len : 0)-1);
					if ((NU)(i) >= (NU)((*t).data ? (*t).data->Sup.len : 0)) raiseIndexError2(i,((*t).data ? (*t).data->Sup.len : 0)-1);
					ctRawInsert__EhLhU9b3JGmgVjguB3HOsgQ((*t), (&n), (*t).data->data[i].Field0, (*t).data->data[i].Field1);
				}
				LA8_: ;
				TM__4SoG2KRQy3oMm9aUzSLtGrA_106 = addInt(res, ((NI) 1));
				res = (NI)(TM__4SoG2KRQy3oMm9aUzSLtGrA_106);
			} LA5: ;
		}
	}
	T10_ = (tySequence__XUL1TrMU0tgXmaMFCIYgFQ*)0;
	T10_ = (*t).data;
	unsureAsgnRef((void**) (&(*t).data), n);
	n = T10_;
}
N_LIB_PRIVATE N_NIMCALL(void, inc__mQ9csBKZY63ZLl8WSSQ9cYcA)(tyObject_CountTable__tUMxxU9cRgLolsrW9b7IBGsQ* t, tyArray__qtqsWM5aXmcpMIVmvq3kAA key, NI val) {	NI index;
	{
		if (!!(!((*t).isSorted))) goto LA3_;
		failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__4SoG2KRQy3oMm9aUzSLtGrA_102));
	}
	LA3_: ;
	index = rawGet__w2fZhqPRZdan2r9a51X3ZXA((*t), key);
	{
		NI TM__4SoG2KRQy3oMm9aUzSLtGrA_103;
		if (!(((NI) 0) <= index)) goto LA7_;
		if ((NU)(index) >= (NU)((*t).data ? (*t).data->Sup.len : 0)) raiseIndexError2(index,((*t).data ? (*t).data->Sup.len : 0)-1);
		TM__4SoG2KRQy3oMm9aUzSLtGrA_103 = addInt((*t).data->data[index].Field1, ((NI) (val)));
		(*t).data->data[index].Field1 = (NI)(TM__4SoG2KRQy3oMm9aUzSLtGrA_103);
		{
			NI TM__4SoG2KRQy3oMm9aUzSLtGrA_104;
			if ((NU)(index) >= (NU)((*t).data ? (*t).data->Sup.len : 0)) raiseIndexError2(index,((*t).data ? (*t).data->Sup.len : 0)-1);
			if (!((*t).data->data[index].Field1 == ((NI) 0))) goto LA11_;
			TM__4SoG2KRQy3oMm9aUzSLtGrA_104 = subInt((*t).counter, ((NI) 1));
			(*t).counter = (NI)(TM__4SoG2KRQy3oMm9aUzSLtGrA_104);
		}
		LA11_: ;
	}
	goto LA5_;
	LA7_: ;
	{
		NI TM__4SoG2KRQy3oMm9aUzSLtGrA_107;
		{
			NI T16_;
			T16_ = ((*t).data ? (*t).data->Sup.len : 0);
			if (!(T16_ == ((NI) 0))) goto LA17_;
			{
				NIM_BOOL T21_;
				T21_ = (NIM_BOOL)0;
				T21_ = isPowerOfTwo__1xdTQapFveM9bImKot7h9cdw(((NI) 64));
				if (!!(T21_)) goto LA22_;
				failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__4SoG2KRQy3oMm9aUzSLtGrA_7));
			}
			LA22_: ;
			(*t).counter = ((NI) 0);
			unsureAsgnRef((void**) (&(*t).data), (tySequence__XUL1TrMU0tgXmaMFCIYgFQ*) newSeq((&NTI__XUL1TrMU0tgXmaMFCIYgFQ_), ((NI) 64)));
		}
		LA17_: ;
		{
			NI T26_;
			NIM_BOOL T27_;
			T26_ = ((*t).data ? (*t).data->Sup.len : 0);
			T27_ = (NIM_BOOL)0;
			T27_ = mustRehash__qu7bkfOlld3ZqX4akPQiHwtables(T26_, (*t).counter);
			if (!T27_) goto LA28_;
			enlarge__kgVnhJBOCSxuahhdbN9cidg(t);
		}
		LA28_: ;
		ctRawInsert__EhLhU9b3JGmgVjguB3HOsgQ((*t), (&(*t).data), key, ((NI) (val)));
		TM__4SoG2KRQy3oMm9aUzSLtGrA_107 = addInt((*t).counter, ((NI) 1));
		(*t).counter = (NI)(TM__4SoG2KRQy3oMm9aUzSLtGrA_107);
	}
	LA5_: ;
}
static N_INLINE(NI, rawGet__kRkMedOi9aSBIvfUrXCRvxQtables)(tyObject_Table__gZ3EYQdz9coOB7ngN9a1cqwA t, tyArray__qtqsWM5aXmcpMIVmvq3kAA key, NI* hc) {	NI result;
	NI h;
	NI T10_;
	NI TM__4SoG2KRQy3oMm9aUzSLtGrA_108;
{	result = (NI)0;
	(*hc) = hash__XFPFecV5bGJUDhwku4bw7A(key);
	{
		if (!((*hc) == ((NI) 0))) goto LA3_;
		(*hc) = ((NI) 314159265);
	}
	LA3_: ;
	{
		NI T7_;
		T7_ = (t.data ? t.data->Sup.len : 0);
		if (!(T7_ == ((NI) 0))) goto LA8_;
		result = ((NI) -1);
		goto BeforeRet_;
	}
	LA8_: ;
	T10_ = ((t.data ? t.data->Sup.len : 0)-1);
	h = (NI)((*hc) & T10_);
	{
		while (1) {
			NIM_BOOL T13_;
			NI T20_;
			if ((NU)(h) >= (NU)(t.data ? t.data->Sup.len : 0)) raiseIndexError2(h,(t.data ? t.data->Sup.len : 0)-1);
			T13_ = (NIM_BOOL)0;
			T13_ = isFilled__5Qpmu5QqwDY0esVXn6wf7wtables(t.data->data[h].Field0);
			if (!T13_) goto LA12;
			{
				NIM_BOOL T16_;
				T16_ = (NIM_BOOL)0;
				if ((NU)(h) >= (NU)(t.data ? t.data->Sup.len : 0)) raiseIndexError2(h,(t.data ? t.data->Sup.len : 0)-1);
				T16_ = (t.data->data[h].Field0 == (*hc));
				if (!(T16_)) goto LA17_;
				if ((NU)(h) >= (NU)(t.data ? t.data->Sup.len : 0)) raiseIndexError2(h,(t.data ? t.data->Sup.len : 0)-1);
				T16_ = eqeq___76rDYGuUQDl2xSav8vUDiA(t.data->data[h].Field1, key);
				LA17_: ;
				if (!T16_) goto LA18_;
				result = h;
				goto BeforeRet_;
			}
			LA18_: ;
			T20_ = ((t.data ? t.data->Sup.len : 0)-1);
			h = nextTry__rkF6R1GhqjFh3qSAPaT2Cwtables(h, T20_);
		} LA12: ;
	}
	TM__4SoG2KRQy3oMm9aUzSLtGrA_108 = subInt(((NI) -1), h);
	result = (NI)(TM__4SoG2KRQy3oMm9aUzSLtGrA_108);
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, getOrDefault__tD8SQMueXhdfvpBnagcsKg)(tyObject_Table__gZ3EYQdz9coOB7ngN9a1cqwA t, tyArray__qtqsWM5aXmcpMIVmvq3kAA key) {	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* result;
	NI hcX60gensym963997_;
	NI indexX60gensym963998_;
	result = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
	hcX60gensym963997_ = (NI)0;
	indexX60gensym963998_ = rawGet__kRkMedOi9aSBIvfUrXCRvxQtables(t, key, (&hcX60gensym963997_));
	{
		if (!(((NI) 0) <= indexX60gensym963998_)) goto LA3_;
		if ((NU)(indexX60gensym963998_) >= (NU)(t.data ? t.data->Sup.len : 0)) raiseIndexError2(indexX60gensym963998_,(t.data ? t.data->Sup.len : 0)-1);
		result = t.data->data[indexX60gensym963998_].Field2;
	}
	LA3_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, rawInsert__Gf66Iv0CJwvyroazPxyGpA)(tyObject_Table__gZ3EYQdz9coOB7ngN9a1cqwA* t, tySequence__sII3pVVRkIdBZ2HDPdZddA** data, tyArray__qtqsWM5aXmcpMIVmvq3kAA key, tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* val, NI hc, NI h) {	if ((NU)(h) >= (NU)((*data) ? (*data)->Sup.len : 0)) raiseIndexError2(h,((*data) ? (*data)->Sup.len : 0)-1);
	nimCopyMem((void*)(*data)->data[h].Field1, (NIM_CONST void*)key, sizeof(tyArray__qtqsWM5aXmcpMIVmvq3kAA));
	if ((NU)(h) >= (NU)((*data) ? (*data)->Sup.len : 0)) raiseIndexError2(h,((*data) ? (*data)->Sup.len : 0)-1);
	asgnRef((void**) (&(*data)->data[h].Field2), val);
	if ((NU)(h) >= (NU)((*data) ? (*data)->Sup.len : 0)) raiseIndexError2(h,((*data) ? (*data)->Sup.len : 0)-1);
	(*data)->data[h].Field0 = hc;
}
N_LIB_PRIVATE N_NIMCALL(void, enlarge__C3S2Q2U8lwkz8doGQgUxug)(tyObject_Table__gZ3EYQdz9coOB7ngN9a1cqwA* t) {	tySequence__sII3pVVRkIdBZ2HDPdZddA* n;
	NI T1_;
	NI TM__4SoG2KRQy3oMm9aUzSLtGrA_109;
	tySequence__sII3pVVRkIdBZ2HDPdZddA* T2_;
	n = (tySequence__sII3pVVRkIdBZ2HDPdZddA*)0;
	T1_ = ((*t).data ? (*t).data->Sup.len : 0);
	TM__4SoG2KRQy3oMm9aUzSLtGrA_109 = mulInt(T1_, ((NI) 2));
	n = (tySequence__sII3pVVRkIdBZ2HDPdZddA*) newSeq((&NTI__sII3pVVRkIdBZ2HDPdZddA_), ((NI)chckRange((NI)(TM__4SoG2KRQy3oMm9aUzSLtGrA_109), ((NI) 0), ((NI) IL64(9223372036854775807)))));
	T2_ = (tySequence__sII3pVVRkIdBZ2HDPdZddA*)0;
	T2_ = (*t).data;
	unsureAsgnRef((void**) (&(*t).data), n);
	n = T2_;
	{
		NI i;
		NI colontmp_;
		NI T4_;
		NI res;
		i = (NI)0;
		colontmp_ = (NI)0;
		T4_ = ((n ? n->Sup.len : 0)-1);
		colontmp_ = T4_;
		res = ((NI) 0);
		{
			while (1) {
				NI eh;
				NI TM__4SoG2KRQy3oMm9aUzSLtGrA_110;
				if (!(res <= colontmp_)) goto LA6;
				i = res;
				if ((NU)(i) >= (NU)(n ? n->Sup.len : 0)) raiseIndexError2(i,(n ? n->Sup.len : 0)-1);
				eh = n->data[i].Field0;
				{
					NIM_BOOL T9_;
					NI j;
					NI T12_;
					tyArray__qtqsWM5aXmcpMIVmvq3kAA T17_;
					tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T18_;
					T9_ = (NIM_BOOL)0;
					T9_ = isFilled__5Qpmu5QqwDY0esVXn6wf7wtables(eh);
					if (!T9_) goto LA10_;
					T12_ = (((*t).data ? (*t).data->Sup.len : 0)-1);
					j = (NI)(eh & T12_);
					{
						while (1) {
							NIM_BOOL T15_;
							NI T16_;
							if ((NU)(j) >= (NU)((*t).data ? (*t).data->Sup.len : 0)) raiseIndexError2(j,((*t).data ? (*t).data->Sup.len : 0)-1);
							T15_ = (NIM_BOOL)0;
							T15_ = isFilled__5Qpmu5QqwDY0esVXn6wf7wtables((*t).data->data[j].Field0);
							if (!T15_) goto LA14;
							T16_ = (((*t).data ? (*t).data->Sup.len : 0)-1);
							j = nextTry__rkF6R1GhqjFh3qSAPaT2Cwtables(j, T16_);
						} LA14: ;
					}
					if ((NU)(i) >= (NU)(n ? n->Sup.len : 0)) raiseIndexError2(i,(n ? n->Sup.len : 0)-1);
					nimCopyMem((void*)T17_, (NIM_CONST void*)n->data[i].Field1, sizeof(tyArray__qtqsWM5aXmcpMIVmvq3kAA));
					chckNil((void*)n->data[i].Field1);
					nimZeroMem((void*)n->data[i].Field1, sizeof(tyArray__qtqsWM5aXmcpMIVmvq3kAA));
					if ((NU)(i) >= (NU)(n ? n->Sup.len : 0)) raiseIndexError2(i,(n ? n->Sup.len : 0)-1);
					T18_ = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)0;
					T18_ = n->data[i].Field2;
					asgnRef((void**) (&n->data[i].Field2), NIM_NIL);
					rawInsert__Gf66Iv0CJwvyroazPxyGpA(t, (&(*t).data), T17_, T18_, eh, j);
				}
				LA10_: ;
				TM__4SoG2KRQy3oMm9aUzSLtGrA_110 = addInt(res, ((NI) 1));
				res = (NI)(TM__4SoG2KRQy3oMm9aUzSLtGrA_110);
			} LA6: ;
		}
	}
}
static N_INLINE(NI, rawGetKnownHC__zkkRq29b9amWxeaphfvlnK6wtables)(tyObject_Table__gZ3EYQdz9coOB7ngN9a1cqwA t, tyArray__qtqsWM5aXmcpMIVmvq3kAA key, NI hc) {	NI result;
	NI h;
	NI T6_;
	NI TM__4SoG2KRQy3oMm9aUzSLtGrA_111;
{	result = (NI)0;
	{
		NI T3_;
		T3_ = (t.data ? t.data->Sup.len : 0);
		if (!(T3_ == ((NI) 0))) goto LA4_;
		result = ((NI) -1);
		goto BeforeRet_;
	}
	LA4_: ;
	T6_ = ((t.data ? t.data->Sup.len : 0)-1);
	h = (NI)(hc & T6_);
	{
		while (1) {
			NIM_BOOL T9_;
			NI T16_;
			if ((NU)(h) >= (NU)(t.data ? t.data->Sup.len : 0)) raiseIndexError2(h,(t.data ? t.data->Sup.len : 0)-1);
			T9_ = (NIM_BOOL)0;
			T9_ = isFilled__5Qpmu5QqwDY0esVXn6wf7wtables(t.data->data[h].Field0);
			if (!T9_) goto LA8;
			{
				NIM_BOOL T12_;
				T12_ = (NIM_BOOL)0;
				if ((NU)(h) >= (NU)(t.data ? t.data->Sup.len : 0)) raiseIndexError2(h,(t.data ? t.data->Sup.len : 0)-1);
				T12_ = (t.data->data[h].Field0 == hc);
				if (!(T12_)) goto LA13_;
				if ((NU)(h) >= (NU)(t.data ? t.data->Sup.len : 0)) raiseIndexError2(h,(t.data ? t.data->Sup.len : 0)-1);
				T12_ = eqeq___76rDYGuUQDl2xSav8vUDiA(t.data->data[h].Field1, key);
				LA13_: ;
				if (!T12_) goto LA14_;
				result = h;
				goto BeforeRet_;
			}
			LA14_: ;
			T16_ = ((t.data ? t.data->Sup.len : 0)-1);
			h = nextTry__rkF6R1GhqjFh3qSAPaT2Cwtables(h, T16_);
		} LA8: ;
	}
	TM__4SoG2KRQy3oMm9aUzSLtGrA_111 = subInt(((NI) -1), h);
	result = (NI)(TM__4SoG2KRQy3oMm9aUzSLtGrA_111);
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, X5BX5Deq___zhbvOVNN6tTRFgZkPDZOmA)(tyObject_Table__gZ3EYQdz9coOB7ngN9a1cqwA* t, tyArray__qtqsWM5aXmcpMIVmvq3kAA key, tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* val) {	NI hc;
	NI index;
	{
		NI T3_;
		T3_ = ((*t).data ? (*t).data->Sup.len : 0);
		if (!(T3_ == ((NI) 0))) goto LA4_;
		{
			NIM_BOOL T8_;
			T8_ = (NIM_BOOL)0;
			T8_ = isPowerOfTwo__1xdTQapFveM9bImKot7h9cdw(((NI) 64));
			if (!!(T8_)) goto LA9_;
			failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__4SoG2KRQy3oMm9aUzSLtGrA_7));
		}
		LA9_: ;
		(*t).counter = ((NI) 0);
		unsureAsgnRef((void**) (&(*t).data), (tySequence__sII3pVVRkIdBZ2HDPdZddA*) newSeq((&NTI__sII3pVVRkIdBZ2HDPdZddA_), ((NI) 64)));
	}
	LA4_: ;
	hc = (NI)0;
	index = rawGet__kRkMedOi9aSBIvfUrXCRvxQtables((*t), key, (&hc));
	{
		if (!(((NI) 0) <= index)) goto LA13_;
		if ((NU)(index) >= (NU)((*t).data ? (*t).data->Sup.len : 0)) raiseIndexError2(index,((*t).data ? (*t).data->Sup.len : 0)-1);
		asgnRef((void**) (&(*t).data->data[index].Field2), val);
	}
	goto LA11_;
	LA13_: ;
	{
		NI TM__4SoG2KRQy3oMm9aUzSLtGrA_112;
		NI TM__4SoG2KRQy3oMm9aUzSLtGrA_113;
		{
			NI T18_;
			T18_ = ((*t).data ? (*t).data->Sup.len : 0);
			if (!(T18_ == ((NI) 0))) goto LA19_;
			{
				NIM_BOOL T23_;
				T23_ = (NIM_BOOL)0;
				T23_ = isPowerOfTwo__1xdTQapFveM9bImKot7h9cdw(((NI) 64));
				if (!!(T23_)) goto LA24_;
				failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__4SoG2KRQy3oMm9aUzSLtGrA_7));
			}
			LA24_: ;
			(*t).counter = ((NI) 0);
			unsureAsgnRef((void**) (&(*t).data), (tySequence__sII3pVVRkIdBZ2HDPdZddA*) newSeq((&NTI__sII3pVVRkIdBZ2HDPdZddA_), ((NI) 64)));
		}
		LA19_: ;
		{
			NI T28_;
			NIM_BOOL T29_;
			T28_ = ((*t).data ? (*t).data->Sup.len : 0);
			T29_ = (NIM_BOOL)0;
			T29_ = mustRehash__qu7bkfOlld3ZqX4akPQiHwtables(T28_, (*t).counter);
			if (!T29_) goto LA30_;
			enlarge__C3S2Q2U8lwkz8doGQgUxug(t);
			index = rawGetKnownHC__zkkRq29b9amWxeaphfvlnK6wtables((*t), key, hc);
		}
		LA30_: ;
		TM__4SoG2KRQy3oMm9aUzSLtGrA_112 = subInt(((NI) -1), index);
		index = (NI)(TM__4SoG2KRQy3oMm9aUzSLtGrA_112);
		rawInsert__Gf66Iv0CJwvyroazPxyGpA(t, (&(*t).data), key, val, hc, index);
		TM__4SoG2KRQy3oMm9aUzSLtGrA_113 = addInt((*t).counter, ((NI) 1));
		(*t).counter = (NI)(TM__4SoG2KRQy3oMm9aUzSLtGrA_113);
	}
	LA11_: ;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**, X5BX5D___KricVWBSqqSbgxpQ5up3Ig)(tyObject_Table__gZ3EYQdz9coOB7ngN9a1cqwA* t, tyArray__qtqsWM5aXmcpMIVmvq3kAA key) {	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** result;
	NI hcX60gensym365565_;
	NI indexX60gensym365566_;
	result = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
	hcX60gensym365565_ = (NI)0;
	indexX60gensym365566_ = rawGet__kRkMedOi9aSBIvfUrXCRvxQtables((*t), key, (&hcX60gensym365565_));
	{
		if (!(((NI) 0) <= indexX60gensym365566_)) goto LA3_;
		if ((NU)(indexX60gensym365566_) >= (NU)((*t).data ? (*t).data->Sup.len : 0)) raiseIndexError2(indexX60gensym365566_,((*t).data ? (*t).data->Sup.len : 0)-1);
		result = &(*t).data->data[indexX60gensym365566_].Field2;
	}
	goto LA1_;
	LA3_: ;
	{
		tyObject_KeyError__t7nhKLvXTQS9cS8ByJU9bIag* eX60gensym969602_;
		NimStringDesc* T6_;
		NimStringDesc* T7_;
		eX60gensym969602_ = (tyObject_KeyError__t7nhKLvXTQS9cS8ByJU9bIag*)0;
		eX60gensym969602_ = (tyObject_KeyError__t7nhKLvXTQS9cS8ByJU9bIag*) newObj((&NTI__8SzoIAgLw9ci2v0yafHj9b6Q_), sizeof(tyObject_KeyError__t7nhKLvXTQS9cS8ByJU9bIag));
		(*eX60gensym969602_).Sup.Sup.Sup.Sup.m_type = (&NTI__t7nhKLvXTQS9cS8ByJU9bIag_);
		(*eX60gensym969602_).Sup.Sup.Sup.name = "KeyError";
		T6_ = (NimStringDesc*)0;
		T7_ = (NimStringDesc*)0;
		T7_ = dollar___0A9bslyIJ49bWrftLGh13rvg(key);
		T6_ = rawNewString((T7_ ? T7_->Sup.len : 0) + 15);
appendString(T6_, ((NimStringDesc*) &TM__4SoG2KRQy3oMm9aUzSLtGrA_20));
appendString(T6_, T7_);
		asgnRef((void**) (&(*eX60gensym969602_).Sup.Sup.Sup.message), T6_);
		asgnRef((void**) (&(*eX60gensym969602_).Sup.Sup.Sup.parent), NIM_NIL);
		raiseExceptionEx((Exception*)eX60gensym969602_, "KeyError", "[]", "tables.nim", 264);
	}
	LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NI, rawGet__JC4YP8wfdV9aPnE9bz5sPkhA)(tyObject_CountTable__chlLjy9bvnFM9b9bSZfiIkyGg t, NimStringDesc* key) {	NI result;
	NI h;
	NI T6_;
	NI T7_;
	NI TM__4SoG2KRQy3oMm9aUzSLtGrA_114;
{	result = (NI)0;
	{
		NI T3_;
		T3_ = (t.data ? t.data->Sup.len : 0);
		if (!(T3_ == ((NI) 0))) goto LA4_;
		result = ((NI) -1);
		goto BeforeRet_;
	}
	LA4_: ;
	T6_ = (NI)0;
	T6_ = hash__6PCYkKlCNhq9cnRLnqWKkwQ(key);
	T7_ = ((t.data ? t.data->Sup.len : 0)-1);
	h = (NI)(T6_ & T7_);
	{
		while (1) {
			NI T14_;
			if ((NU)(h) >= (NU)(t.data ? t.data->Sup.len : 0)) raiseIndexError2(h,(t.data ? t.data->Sup.len : 0)-1);
			if (!!((t.data->data[h].Field1 == ((NI) 0)))) goto LA9;
			{
				if ((NU)(h) >= (NU)(t.data ? t.data->Sup.len : 0)) raiseIndexError2(h,(t.data ? t.data->Sup.len : 0)-1);
				if (!eqStrings(t.data->data[h].Field0, key)) goto LA12_;
				result = h;
				goto BeforeRet_;
			}
			LA12_: ;
			T14_ = ((t.data ? t.data->Sup.len : 0)-1);
			h = nextTry__rkF6R1GhqjFh3qSAPaT2Cwtables(h, T14_);
		} LA9: ;
	}
	TM__4SoG2KRQy3oMm9aUzSLtGrA_114 = subInt(((NI) -1), h);
	result = (NI)(TM__4SoG2KRQy3oMm9aUzSLtGrA_114);
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NI, getOrDefault__9bK0jMctS3Kpz9aVaHPQI4gA)(tyObject_CountTable__chlLjy9bvnFM9b9bSZfiIkyGg t, NimStringDesc* key, NI default_0) {	NI result;
	NI indexX60gensym367698_;
	result = (NI)0;
	indexX60gensym367698_ = rawGet__JC4YP8wfdV9aPnE9bz5sPkhA(t, key);
	{
		if (!(((NI) 0) <= indexX60gensym367698_)) goto LA3_;
		if ((NU)(indexX60gensym367698_) >= (NU)(t.data ? t.data->Sup.len : 0)) raiseIndexError2(indexX60gensym367698_,(t.data ? t.data->Sup.len : 0)-1);
		result = t.data->data[indexX60gensym367698_].Field1;
	}
	goto LA1_;
	LA3_: ;
	{
		result = default_0;
	}
	LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, ctRawInsert__3TJBMrgzatHsknHA6jSouA)(tyObject_CountTable__chlLjy9bvnFM9b9bSZfiIkyGg t, tySequence__jwzrUFjG9akTIJTBBFvvqxw** data, NimStringDesc* key, NI val) {	NI h;
	NI T1_;
	NI T2_;
	NimStringDesc* T6_;
	T1_ = (NI)0;
	T1_ = hash__6PCYkKlCNhq9cnRLnqWKkwQ(key);
	T2_ = (((*data) ? (*data)->Sup.len : 0)-1);
	h = (NI)(T1_ & T2_);
	{
		while (1) {
			NI T5_;
			if ((NU)(h) >= (NU)((*data) ? (*data)->Sup.len : 0)) raiseIndexError2(h,((*data) ? (*data)->Sup.len : 0)-1);
			if (!!(((*data)->data[h].Field1 == ((NI) 0)))) goto LA4;
			T5_ = (((*data) ? (*data)->Sup.len : 0)-1);
			h = nextTry__rkF6R1GhqjFh3qSAPaT2Cwtables(h, T5_);
		} LA4: ;
	}
	if ((NU)(h) >= (NU)((*data) ? (*data)->Sup.len : 0)) raiseIndexError2(h,((*data) ? (*data)->Sup.len : 0)-1);
	T6_ = (NimStringDesc*)0;
	T6_ = (*data)->data[h].Field0; (*data)->data[h].Field0 = copyStringRC1(key);
	if (T6_) nimGCunrefNoCycle(T6_);
	if ((NU)(h) >= (NU)((*data) ? (*data)->Sup.len : 0)) raiseIndexError2(h,((*data) ? (*data)->Sup.len : 0)-1);
	(*data)->data[h].Field1 = val;
}
N_LIB_PRIVATE N_NIMCALL(void, enlarge__lFm9aQmmTsb5E6B6Jx9bb6dQ)(tyObject_CountTable__chlLjy9bvnFM9b9bSZfiIkyGg* t) {	tySequence__jwzrUFjG9akTIJTBBFvvqxw* n;
	NI T1_;
	NI TM__4SoG2KRQy3oMm9aUzSLtGrA_117;
	tySequence__jwzrUFjG9akTIJTBBFvvqxw* T10_;
	n = (tySequence__jwzrUFjG9akTIJTBBFvvqxw*)0;
	T1_ = ((*t).data ? (*t).data->Sup.len : 0);
	TM__4SoG2KRQy3oMm9aUzSLtGrA_117 = mulInt(T1_, ((NI) 2));
	n = (tySequence__jwzrUFjG9akTIJTBBFvvqxw*) newSeq((&NTI__jwzrUFjG9akTIJTBBFvvqxw_), ((NI)chckRange((NI)(TM__4SoG2KRQy3oMm9aUzSLtGrA_117), ((NI) 0), ((NI) IL64(9223372036854775807)))));
	{
		NI i;
		NI colontmp_;
		NI T3_;
		NI res;
		i = (NI)0;
		colontmp_ = (NI)0;
		T3_ = (((*t).data ? (*t).data->Sup.len : 0)-1);
		colontmp_ = T3_;
		res = ((NI) 0);
		{
			while (1) {
				NI TM__4SoG2KRQy3oMm9aUzSLtGrA_118;
				if (!(res <= colontmp_)) goto LA5;
				i = res;
				{
					if ((NU)(i) >= (NU)((*t).data ? (*t).data->Sup.len : 0)) raiseIndexError2(i,((*t).data ? (*t).data->Sup.len : 0)-1);
					if (!!(((*t).data->data[i].Field1 == ((NI) 0)))) goto LA8_;
					if ((NU)(i) >= (NU)((*t).data ? (*t).data->Sup.len : 0)) raiseIndexError2(i,((*t).data ? (*t).data->Sup.len : 0)-1);
					if ((NU)(i) >= (NU)((*t).data ? (*t).data->Sup.len : 0)) raiseIndexError2(i,((*t).data ? (*t).data->Sup.len : 0)-1);
					ctRawInsert__3TJBMrgzatHsknHA6jSouA((*t), (&n), (*t).data->data[i].Field0, (*t).data->data[i].Field1);
				}
				LA8_: ;
				TM__4SoG2KRQy3oMm9aUzSLtGrA_118 = addInt(res, ((NI) 1));
				res = (NI)(TM__4SoG2KRQy3oMm9aUzSLtGrA_118);
			} LA5: ;
		}
	}
	T10_ = (tySequence__jwzrUFjG9akTIJTBBFvvqxw*)0;
	T10_ = (*t).data;
	unsureAsgnRef((void**) (&(*t).data), n);
	n = T10_;
}
N_LIB_PRIVATE N_NIMCALL(void, inc__XQ1O4O4gd5lpqQbHRnLCtw)(tyObject_CountTable__chlLjy9bvnFM9b9bSZfiIkyGg* t, NimStringDesc* key, NI val) {	NI index;
	{
		if (!!(!((*t).isSorted))) goto LA3_;
		failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__4SoG2KRQy3oMm9aUzSLtGrA_102));
	}
	LA3_: ;
	index = rawGet__JC4YP8wfdV9aPnE9bz5sPkhA((*t), key);
	{
		NI TM__4SoG2KRQy3oMm9aUzSLtGrA_115;
		if (!(((NI) 0) <= index)) goto LA7_;
		if ((NU)(index) >= (NU)((*t).data ? (*t).data->Sup.len : 0)) raiseIndexError2(index,((*t).data ? (*t).data->Sup.len : 0)-1);
		TM__4SoG2KRQy3oMm9aUzSLtGrA_115 = addInt((*t).data->data[index].Field1, ((NI) (val)));
		(*t).data->data[index].Field1 = (NI)(TM__4SoG2KRQy3oMm9aUzSLtGrA_115);
		{
			NI TM__4SoG2KRQy3oMm9aUzSLtGrA_116;
			if ((NU)(index) >= (NU)((*t).data ? (*t).data->Sup.len : 0)) raiseIndexError2(index,((*t).data ? (*t).data->Sup.len : 0)-1);
			if (!((*t).data->data[index].Field1 == ((NI) 0))) goto LA11_;
			TM__4SoG2KRQy3oMm9aUzSLtGrA_116 = subInt((*t).counter, ((NI) 1));
			(*t).counter = (NI)(TM__4SoG2KRQy3oMm9aUzSLtGrA_116);
		}
		LA11_: ;
	}
	goto LA5_;
	LA7_: ;
	{
		NI TM__4SoG2KRQy3oMm9aUzSLtGrA_119;
		{
			NI T16_;
			T16_ = ((*t).data ? (*t).data->Sup.len : 0);
			if (!(T16_ == ((NI) 0))) goto LA17_;
			{
				NIM_BOOL T21_;
				T21_ = (NIM_BOOL)0;
				T21_ = isPowerOfTwo__1xdTQapFveM9bImKot7h9cdw(((NI) 64));
				if (!!(T21_)) goto LA22_;
				failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__4SoG2KRQy3oMm9aUzSLtGrA_7));
			}
			LA22_: ;
			(*t).counter = ((NI) 0);
			unsureAsgnRef((void**) (&(*t).data), (tySequence__jwzrUFjG9akTIJTBBFvvqxw*) newSeq((&NTI__jwzrUFjG9akTIJTBBFvvqxw_), ((NI) 64)));
		}
		LA17_: ;
		{
			NI T26_;
			NIM_BOOL T27_;
			T26_ = ((*t).data ? (*t).data->Sup.len : 0);
			T27_ = (NIM_BOOL)0;
			T27_ = mustRehash__qu7bkfOlld3ZqX4akPQiHwtables(T26_, (*t).counter);
			if (!T27_) goto LA28_;
			enlarge__lFm9aQmmTsb5E6B6Jx9bb6dQ(t);
		}
		LA28_: ;
		ctRawInsert__3TJBMrgzatHsknHA6jSouA((*t), (&(*t).data), key, ((NI) (val)));
		TM__4SoG2KRQy3oMm9aUzSLtGrA_119 = addInt((*t).counter, ((NI) 1));
		(*t).counter = (NI)(TM__4SoG2KRQy3oMm9aUzSLtGrA_119);
	}
	LA5_: ;
}
static N_INLINE(NI, rawGet__xRsE9bd9cmMxcEsI9aaY9cppuAtables)(tyObject_Table__6nOsw5R7jH72bux7HSST9bg t, tyArray__qtqsWM5aXmcpMIVmvq3kAA key, NI* hc) {	NI result;
	NI h;
	NI T10_;
	NI TM__4SoG2KRQy3oMm9aUzSLtGrA_120;
{	result = (NI)0;
	(*hc) = hash__XFPFecV5bGJUDhwku4bw7A(key);
	{
		if (!((*hc) == ((NI) 0))) goto LA3_;
		(*hc) = ((NI) 314159265);
	}
	LA3_: ;
	{
		NI T7_;
		T7_ = (t.data ? t.data->Sup.len : 0);
		if (!(T7_ == ((NI) 0))) goto LA8_;
		result = ((NI) -1);
		goto BeforeRet_;
	}
	LA8_: ;
	T10_ = ((t.data ? t.data->Sup.len : 0)-1);
	h = (NI)((*hc) & T10_);
	{
		while (1) {
			NIM_BOOL T13_;
			NI T20_;
			if ((NU)(h) >= (NU)(t.data ? t.data->Sup.len : 0)) raiseIndexError2(h,(t.data ? t.data->Sup.len : 0)-1);
			T13_ = (NIM_BOOL)0;
			T13_ = isFilled__5Qpmu5QqwDY0esVXn6wf7wtables(t.data->data[h].Field0);
			if (!T13_) goto LA12;
			{
				NIM_BOOL T16_;
				T16_ = (NIM_BOOL)0;
				if ((NU)(h) >= (NU)(t.data ? t.data->Sup.len : 0)) raiseIndexError2(h,(t.data ? t.data->Sup.len : 0)-1);
				T16_ = (t.data->data[h].Field0 == (*hc));
				if (!(T16_)) goto LA17_;
				if ((NU)(h) >= (NU)(t.data ? t.data->Sup.len : 0)) raiseIndexError2(h,(t.data ? t.data->Sup.len : 0)-1);
				T16_ = eqeq___76rDYGuUQDl2xSav8vUDiA(t.data->data[h].Field1, key);
				LA17_: ;
				if (!T16_) goto LA18_;
				result = h;
				goto BeforeRet_;
			}
			LA18_: ;
			T20_ = ((t.data ? t.data->Sup.len : 0)-1);
			h = nextTry__rkF6R1GhqjFh3qSAPaT2Cwtables(h, T20_);
		} LA12: ;
	}
	TM__4SoG2KRQy3oMm9aUzSLtGrA_120 = subInt(((NI) -1), h);
	result = (NI)(TM__4SoG2KRQy3oMm9aUzSLtGrA_120);
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, getOrDefault__qISsmXPGy0MStH2gg2BcOA)(tyObject_Table__6nOsw5R7jH72bux7HSST9bg t, tyArray__qtqsWM5aXmcpMIVmvq3kAA key, tyTuple__Iz0jrTw3w7v6sMzjrqs0nA* Result) {	NI hcX60gensym983718_;
	NI indexX60gensym983719_;
	chckNil((void*)Result);
	genericReset((void*)Result, (&NTI__Iz0jrTw3w7v6sMzjrqs0nA_));
	hcX60gensym983718_ = (NI)0;
	indexX60gensym983719_ = rawGet__xRsE9bd9cmMxcEsI9aaY9cppuAtables(t, key, (&hcX60gensym983718_));
	{
		if (!(((NI) 0) <= indexX60gensym983719_)) goto LA3_;
		if ((NU)(indexX60gensym983719_) >= (NU)(t.data ? t.data->Sup.len : 0)) raiseIndexError2(indexX60gensym983719_,(t.data ? t.data->Sup.len : 0)-1);
		unsureAsgnRef((void**) (&(*Result).Field0), t.data->data[indexX60gensym983719_].Field2.Field0);
		unsureAsgnRef((void**) (&(*Result).Field1), t.data->data[indexX60gensym983719_].Field2.Field1);
	}
	LA3_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, rawInsert__7en31G7VfABQHDdprxuYPA)(tyObject_Table__6nOsw5R7jH72bux7HSST9bg* t, tySequence__diqJJ1bWuFP7M6rQDS9cBLQ** data, tyArray__qtqsWM5aXmcpMIVmvq3kAA key, tyTuple__Iz0jrTw3w7v6sMzjrqs0nA val, NI hc, NI h) {	if ((NU)(h) >= (NU)((*data) ? (*data)->Sup.len : 0)) raiseIndexError2(h,((*data) ? (*data)->Sup.len : 0)-1);
	nimCopyMem((void*)(*data)->data[h].Field1, (NIM_CONST void*)key, sizeof(tyArray__qtqsWM5aXmcpMIVmvq3kAA));
	if ((NU)(h) >= (NU)((*data) ? (*data)->Sup.len : 0)) raiseIndexError2(h,((*data) ? (*data)->Sup.len : 0)-1);
	asgnRef((void**) (&(*data)->data[h].Field2.Field0), val.Field0);
	asgnRef((void**) (&(*data)->data[h].Field2.Field1), val.Field1);
	if ((NU)(h) >= (NU)((*data) ? (*data)->Sup.len : 0)) raiseIndexError2(h,((*data) ? (*data)->Sup.len : 0)-1);
	(*data)->data[h].Field0 = hc;
}
N_LIB_PRIVATE N_NIMCALL(void, enlarge__s8GP5B2qbnsxFlutyTGcnw)(tyObject_Table__6nOsw5R7jH72bux7HSST9bg* t) {	tySequence__diqJJ1bWuFP7M6rQDS9cBLQ* n;
	NI T1_;
	NI TM__4SoG2KRQy3oMm9aUzSLtGrA_121;
	tySequence__diqJJ1bWuFP7M6rQDS9cBLQ* T2_;
	n = (tySequence__diqJJ1bWuFP7M6rQDS9cBLQ*)0;
	T1_ = ((*t).data ? (*t).data->Sup.len : 0);
	TM__4SoG2KRQy3oMm9aUzSLtGrA_121 = mulInt(T1_, ((NI) 2));
	n = (tySequence__diqJJ1bWuFP7M6rQDS9cBLQ*) newSeq((&NTI__diqJJ1bWuFP7M6rQDS9cBLQ_), ((NI)chckRange((NI)(TM__4SoG2KRQy3oMm9aUzSLtGrA_121), ((NI) 0), ((NI) IL64(9223372036854775807)))));
	T2_ = (tySequence__diqJJ1bWuFP7M6rQDS9cBLQ*)0;
	T2_ = (*t).data;
	unsureAsgnRef((void**) (&(*t).data), n);
	n = T2_;
	{
		NI i;
		NI colontmp_;
		NI T4_;
		NI res;
		i = (NI)0;
		colontmp_ = (NI)0;
		T4_ = ((n ? n->Sup.len : 0)-1);
		colontmp_ = T4_;
		res = ((NI) 0);
		{
			while (1) {
				NI eh;
				NI TM__4SoG2KRQy3oMm9aUzSLtGrA_122;
				if (!(res <= colontmp_)) goto LA6;
				i = res;
				if ((NU)(i) >= (NU)(n ? n->Sup.len : 0)) raiseIndexError2(i,(n ? n->Sup.len : 0)-1);
				eh = n->data[i].Field0;
				{
					NIM_BOOL T9_;
					NI j;
					NI T12_;
					tyArray__qtqsWM5aXmcpMIVmvq3kAA T17_;
					tyTuple__Iz0jrTw3w7v6sMzjrqs0nA T18_;
					T9_ = (NIM_BOOL)0;
					T9_ = isFilled__5Qpmu5QqwDY0esVXn6wf7wtables(eh);
					if (!T9_) goto LA10_;
					T12_ = (((*t).data ? (*t).data->Sup.len : 0)-1);
					j = (NI)(eh & T12_);
					{
						while (1) {
							NIM_BOOL T15_;
							NI T16_;
							if ((NU)(j) >= (NU)((*t).data ? (*t).data->Sup.len : 0)) raiseIndexError2(j,((*t).data ? (*t).data->Sup.len : 0)-1);
							T15_ = (NIM_BOOL)0;
							T15_ = isFilled__5Qpmu5QqwDY0esVXn6wf7wtables((*t).data->data[j].Field0);
							if (!T15_) goto LA14;
							T16_ = (((*t).data ? (*t).data->Sup.len : 0)-1);
							j = nextTry__rkF6R1GhqjFh3qSAPaT2Cwtables(j, T16_);
						} LA14: ;
					}
					if ((NU)(i) >= (NU)(n ? n->Sup.len : 0)) raiseIndexError2(i,(n ? n->Sup.len : 0)-1);
					nimCopyMem((void*)T17_, (NIM_CONST void*)n->data[i].Field1, sizeof(tyArray__qtqsWM5aXmcpMIVmvq3kAA));
					chckNil((void*)n->data[i].Field1);
					nimZeroMem((void*)n->data[i].Field1, sizeof(tyArray__qtqsWM5aXmcpMIVmvq3kAA));
					if ((NU)(i) >= (NU)(n ? n->Sup.len : 0)) raiseIndexError2(i,(n ? n->Sup.len : 0)-1);
					nimZeroMem((void*)(&T18_), sizeof(tyTuple__Iz0jrTw3w7v6sMzjrqs0nA));
					T18_.Field0 = n->data[i].Field2.Field0;
					T18_.Field1 = n->data[i].Field2.Field1;
					chckNil((void*)(&n->data[i].Field2));
					genericReset((void*)(&n->data[i].Field2), (&NTI__Iz0jrTw3w7v6sMzjrqs0nA_));
					rawInsert__7en31G7VfABQHDdprxuYPA(t, (&(*t).data), T17_, T18_, eh, j);
				}
				LA10_: ;
				TM__4SoG2KRQy3oMm9aUzSLtGrA_122 = addInt(res, ((NI) 1));
				res = (NI)(TM__4SoG2KRQy3oMm9aUzSLtGrA_122);
			} LA6: ;
		}
	}
}
static N_INLINE(NI, rawGetKnownHC__2LQwcr0umtLrUHRkcv9bHNAtables)(tyObject_Table__6nOsw5R7jH72bux7HSST9bg t, tyArray__qtqsWM5aXmcpMIVmvq3kAA key, NI hc) {	NI result;
	NI h;
	NI T6_;
	NI TM__4SoG2KRQy3oMm9aUzSLtGrA_123;
{	result = (NI)0;
	{
		NI T3_;
		T3_ = (t.data ? t.data->Sup.len : 0);
		if (!(T3_ == ((NI) 0))) goto LA4_;
		result = ((NI) -1);
		goto BeforeRet_;
	}
	LA4_: ;
	T6_ = ((t.data ? t.data->Sup.len : 0)-1);
	h = (NI)(hc & T6_);
	{
		while (1) {
			NIM_BOOL T9_;
			NI T16_;
			if ((NU)(h) >= (NU)(t.data ? t.data->Sup.len : 0)) raiseIndexError2(h,(t.data ? t.data->Sup.len : 0)-1);
			T9_ = (NIM_BOOL)0;
			T9_ = isFilled__5Qpmu5QqwDY0esVXn6wf7wtables(t.data->data[h].Field0);
			if (!T9_) goto LA8;
			{
				NIM_BOOL T12_;
				T12_ = (NIM_BOOL)0;
				if ((NU)(h) >= (NU)(t.data ? t.data->Sup.len : 0)) raiseIndexError2(h,(t.data ? t.data->Sup.len : 0)-1);
				T12_ = (t.data->data[h].Field0 == hc);
				if (!(T12_)) goto LA13_;
				if ((NU)(h) >= (NU)(t.data ? t.data->Sup.len : 0)) raiseIndexError2(h,(t.data ? t.data->Sup.len : 0)-1);
				T12_ = eqeq___76rDYGuUQDl2xSav8vUDiA(t.data->data[h].Field1, key);
				LA13_: ;
				if (!T12_) goto LA14_;
				result = h;
				goto BeforeRet_;
			}
			LA14_: ;
			T16_ = ((t.data ? t.data->Sup.len : 0)-1);
			h = nextTry__rkF6R1GhqjFh3qSAPaT2Cwtables(h, T16_);
		} LA8: ;
	}
	TM__4SoG2KRQy3oMm9aUzSLtGrA_123 = subInt(((NI) -1), h);
	result = (NI)(TM__4SoG2KRQy3oMm9aUzSLtGrA_123);
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, X5BX5Deq___e9czpY4GXpbU9cznliOfqQ1Q)(tyObject_Table__6nOsw5R7jH72bux7HSST9bg* t, tyArray__qtqsWM5aXmcpMIVmvq3kAA key, tyTuple__Iz0jrTw3w7v6sMzjrqs0nA val) {	NI hc;
	NI index;
	{
		NI T3_;
		T3_ = ((*t).data ? (*t).data->Sup.len : 0);
		if (!(T3_ == ((NI) 0))) goto LA4_;
		{
			NIM_BOOL T8_;
			T8_ = (NIM_BOOL)0;
			T8_ = isPowerOfTwo__1xdTQapFveM9bImKot7h9cdw(((NI) 64));
			if (!!(T8_)) goto LA9_;
			failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__4SoG2KRQy3oMm9aUzSLtGrA_7));
		}
		LA9_: ;
		(*t).counter = ((NI) 0);
		unsureAsgnRef((void**) (&(*t).data), (tySequence__diqJJ1bWuFP7M6rQDS9cBLQ*) newSeq((&NTI__diqJJ1bWuFP7M6rQDS9cBLQ_), ((NI) 64)));
	}
	LA4_: ;
	hc = (NI)0;
	index = rawGet__xRsE9bd9cmMxcEsI9aaY9cppuAtables((*t), key, (&hc));
	{
		if (!(((NI) 0) <= index)) goto LA13_;
		if ((NU)(index) >= (NU)((*t).data ? (*t).data->Sup.len : 0)) raiseIndexError2(index,((*t).data ? (*t).data->Sup.len : 0)-1);
		asgnRef((void**) (&(*t).data->data[index].Field2.Field0), val.Field0);
		asgnRef((void**) (&(*t).data->data[index].Field2.Field1), val.Field1);
	}
	goto LA11_;
	LA13_: ;
	{
		NI TM__4SoG2KRQy3oMm9aUzSLtGrA_124;
		NI TM__4SoG2KRQy3oMm9aUzSLtGrA_125;
		{
			NI T18_;
			T18_ = ((*t).data ? (*t).data->Sup.len : 0);
			if (!(T18_ == ((NI) 0))) goto LA19_;
			{
				NIM_BOOL T23_;
				T23_ = (NIM_BOOL)0;
				T23_ = isPowerOfTwo__1xdTQapFveM9bImKot7h9cdw(((NI) 64));
				if (!!(T23_)) goto LA24_;
				failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__4SoG2KRQy3oMm9aUzSLtGrA_7));
			}
			LA24_: ;
			(*t).counter = ((NI) 0);
			unsureAsgnRef((void**) (&(*t).data), (tySequence__diqJJ1bWuFP7M6rQDS9cBLQ*) newSeq((&NTI__diqJJ1bWuFP7M6rQDS9cBLQ_), ((NI) 64)));
		}
		LA19_: ;
		{
			NI T28_;
			NIM_BOOL T29_;
			T28_ = ((*t).data ? (*t).data->Sup.len : 0);
			T29_ = (NIM_BOOL)0;
			T29_ = mustRehash__qu7bkfOlld3ZqX4akPQiHwtables(T28_, (*t).counter);
			if (!T29_) goto LA30_;
			enlarge__s8GP5B2qbnsxFlutyTGcnw(t);
			index = rawGetKnownHC__2LQwcr0umtLrUHRkcv9bHNAtables((*t), key, hc);
		}
		LA30_: ;
		TM__4SoG2KRQy3oMm9aUzSLtGrA_124 = subInt(((NI) -1), index);
		index = (NI)(TM__4SoG2KRQy3oMm9aUzSLtGrA_124);
		rawInsert__7en31G7VfABQHDdprxuYPA(t, (&(*t).data), key, val, hc, index);
		TM__4SoG2KRQy3oMm9aUzSLtGrA_125 = addInt((*t).counter, ((NI) 1));
		(*t).counter = (NI)(TM__4SoG2KRQy3oMm9aUzSLtGrA_125);
	}
	LA11_: ;
}
static N_NIMCALL(void, Marker_tySequence__MlAD6nAPq9bHKla9cWiIZP0g)(void* p, NI op) {
	tySequence__MlAD6nAPq9bHKla9cWiIZP0g* a;
	NI T1_;
	a = (tySequence__MlAD6nAPq9bHKla9cWiIZP0g*)p;
	T1_ = (NI)0;
	for (T1_ = 0; T1_ < (a ? a->Sup.len : 0); T1_++) {
	nimGCvisit((void*)a->data[T1_].Field2, op);
	nimGCvisit((void*)a->data[T1_].Field3, op);
	}
}
N_LIB_PRIVATE N_NIMCALL(void, initOrderedTable__Xnq4D4mCe8fymnuh9c7PQlw)(NI initialSize, tyObject_OrderedTable__ZZvSdVkA2s2sIyifu4cpkg* Result) {	chckNil((void*)Result);
	genericReset((void*)Result, (&NTI__ZZvSdVkA2s2sIyifu4cpkg_));
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = isPowerOfTwo__1xdTQapFveM9bImKot7h9cdw(initialSize);
		if (!!(T3_)) goto LA4_;
		failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__4SoG2KRQy3oMm9aUzSLtGrA_4));
	}
	LA4_: ;
	(*Result).counter = ((NI) 0);
	unsureAsgnRef((void**) (&(*Result).data), (tySequence__MlAD6nAPq9bHKla9cWiIZP0g*) newSeq((&NTI__MlAD6nAPq9bHKla9cWiIZP0g_), ((NI)chckRange(initialSize, ((NI) 0), ((NI) IL64(9223372036854775807))))));
	(*Result).first = ((NI) -1);
	(*Result).last = ((NI) -1);
}
N_LIB_PRIVATE N_NIMCALL(NI, rawGet__U8BE8F1hkorXEqb1x9baemQ)(tyObject_OrderedTable__ZZvSdVkA2s2sIyifu4cpkg* t, NimStringDesc* key, NI* hc) {	NI result;
	NI h;
	NI T10_;
	NI TM__4SoG2KRQy3oMm9aUzSLtGrA_128;
{	result = (NI)0;
	(*hc) = hash__6PCYkKlCNhq9cnRLnqWKkwQ(key);
	{
		if (!((*hc) == ((NI) 0))) goto LA3_;
		(*hc) = ((NI) 314159265);
	}
	LA3_: ;
	{
		NI T7_;
		T7_ = ((*t).data ? (*t).data->Sup.len : 0);
		if (!(T7_ == ((NI) 0))) goto LA8_;
		result = ((NI) -1);
		goto BeforeRet_;
	}
	LA8_: ;
	T10_ = (((*t).data ? (*t).data->Sup.len : 0)-1);
	h = (NI)((*hc) & T10_);
	{
		while (1) {
			NIM_BOOL T13_;
			NI T20_;
			if ((NU)(h) >= (NU)((*t).data ? (*t).data->Sup.len : 0)) raiseIndexError2(h,((*t).data ? (*t).data->Sup.len : 0)-1);
			T13_ = (NIM_BOOL)0;
			T13_ = isFilled__5Qpmu5QqwDY0esVXn6wf7wtables((*t).data->data[h].Field0);
			if (!T13_) goto LA12;
			{
				NIM_BOOL T16_;
				T16_ = (NIM_BOOL)0;
				if ((NU)(h) >= (NU)((*t).data ? (*t).data->Sup.len : 0)) raiseIndexError2(h,((*t).data ? (*t).data->Sup.len : 0)-1);
				T16_ = ((*t).data->data[h].Field0 == (*hc));
				if (!(T16_)) goto LA17_;
				if ((NU)(h) >= (NU)((*t).data ? (*t).data->Sup.len : 0)) raiseIndexError2(h,((*t).data ? (*t).data->Sup.len : 0)-1);
				T16_ = eqStrings((*t).data->data[h].Field2, key);
				LA17_: ;
				if (!T16_) goto LA18_;
				result = h;
				goto BeforeRet_;
			}
			LA18_: ;
			T20_ = (((*t).data ? (*t).data->Sup.len : 0)-1);
			h = nextTry__rkF6R1GhqjFh3qSAPaT2Cwtables(h, T20_);
		} LA12: ;
	}
	TM__4SoG2KRQy3oMm9aUzSLtGrA_128 = subInt(((NI) -1), h);
	result = (NI)(TM__4SoG2KRQy3oMm9aUzSLtGrA_128);
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, rawInsert__K9b9aplmUERncrp49bmzOdPnw)(tyObject_OrderedTable__ZZvSdVkA2s2sIyifu4cpkg* t, tySequence__MlAD6nAPq9bHKla9cWiIZP0g** data, NimStringDesc* key, tyObject_JsonNodeObj__df9bshXB7C9cTiWPIOtX3j1Q* val, NI hc, NI h) {	NimStringDesc* T1_;
	if ((NU)(h) >= (NU)((*data) ? (*data)->Sup.len : 0)) raiseIndexError2(h,((*data) ? (*data)->Sup.len : 0)-1);
	T1_ = (NimStringDesc*)0;
	T1_ = (*data)->data[h].Field2; (*data)->data[h].Field2 = copyStringRC1(key);
	if (T1_) nimGCunrefNoCycle(T1_);
	if ((NU)(h) >= (NU)((*data) ? (*data)->Sup.len : 0)) raiseIndexError2(h,((*data) ? (*data)->Sup.len : 0)-1);
	asgnRef((void**) (&(*data)->data[h].Field3), val);
	if ((NU)(h) >= (NU)((*data) ? (*data)->Sup.len : 0)) raiseIndexError2(h,((*data) ? (*data)->Sup.len : 0)-1);
	(*data)->data[h].Field0 = hc;
	if ((NU)(h) >= (NU)((*data) ? (*data)->Sup.len : 0)) raiseIndexError2(h,((*data) ? (*data)->Sup.len : 0)-1);
	(*data)->data[h].Field1 = ((NI) -1);
	{
		if (!((*t).first < ((NI) 0))) goto LA4_;
		(*t).first = h;
	}
	LA4_: ;
	{
		if (!(((NI) 0) <= (*t).last)) goto LA8_;
		if ((NU)((*t).last) >= (NU)((*data) ? (*data)->Sup.len : 0)) raiseIndexError2((*t).last,((*data) ? (*data)->Sup.len : 0)-1);
		(*data)->data[(*t).last].Field1 = h;
	}
	LA8_: ;
	(*t).last = h;
}
N_LIB_PRIVATE N_NIMCALL(void, enlarge__9cAm9cItwB6y9bUzyB9bE1NBlA)(tyObject_OrderedTable__ZZvSdVkA2s2sIyifu4cpkg* t) {	tySequence__MlAD6nAPq9bHKla9cWiIZP0g* n;
	NI T1_;
	NI TM__4SoG2KRQy3oMm9aUzSLtGrA_129;
	NI h;
	tySequence__MlAD6nAPq9bHKla9cWiIZP0g* T2_;
	n = (tySequence__MlAD6nAPq9bHKla9cWiIZP0g*)0;
	T1_ = ((*t).data ? (*t).data->Sup.len : 0);
	TM__4SoG2KRQy3oMm9aUzSLtGrA_129 = mulInt(T1_, ((NI) 2));
	n = (tySequence__MlAD6nAPq9bHKla9cWiIZP0g*) newSeq((&NTI__MlAD6nAPq9bHKla9cWiIZP0g_), ((NI)chckRange((NI)(TM__4SoG2KRQy3oMm9aUzSLtGrA_129), ((NI) 0), ((NI) IL64(9223372036854775807)))));
	h = (*t).first;
	(*t).first = ((NI) -1);
	(*t).last = ((NI) -1);
	T2_ = (tySequence__MlAD6nAPq9bHKla9cWiIZP0g*)0;
	T2_ = (*t).data;
	unsureAsgnRef((void**) (&(*t).data), n);
	n = T2_;
	{
		while (1) {
			NI nxt;
			NI eh;
			if (!(((NI) 0) <= h)) goto LA4;
			if ((NU)(h) >= (NU)(n ? n->Sup.len : 0)) raiseIndexError2(h,(n ? n->Sup.len : 0)-1);
			nxt = n->data[h].Field1;
			if ((NU)(h) >= (NU)(n ? n->Sup.len : 0)) raiseIndexError2(h,(n ? n->Sup.len : 0)-1);
			eh = n->data[h].Field0;
			{
				NIM_BOOL T7_;
				NI j;
				NI T10_;
				T7_ = (NIM_BOOL)0;
				T7_ = isFilled__5Qpmu5QqwDY0esVXn6wf7wtables(eh);
				if (!T7_) goto LA8_;
				T10_ = (((*t).data ? (*t).data->Sup.len : 0)-1);
				j = (NI)(eh & T10_);
				{
					while (1) {
						NIM_BOOL T13_;
						NI T14_;
						if ((NU)(j) >= (NU)((*t).data ? (*t).data->Sup.len : 0)) raiseIndexError2(j,((*t).data ? (*t).data->Sup.len : 0)-1);
						T13_ = (NIM_BOOL)0;
						T13_ = isFilled__5Qpmu5QqwDY0esVXn6wf7wtables((*t).data->data[j].Field0);
						if (!T13_) goto LA12;
						T14_ = (((*t).data ? (*t).data->Sup.len : 0)-1);
						j = nextTry__rkF6R1GhqjFh3qSAPaT2Cwtables(j, T14_);
					} LA12: ;
				}
				if ((NU)(h) >= (NU)(n ? n->Sup.len : 0)) raiseIndexError2(h,(n ? n->Sup.len : 0)-1);
				if ((NU)(h) >= (NU)(n ? n->Sup.len : 0)) raiseIndexError2(h,(n ? n->Sup.len : 0)-1);
				if ((NU)(h) >= (NU)(n ? n->Sup.len : 0)) raiseIndexError2(h,(n ? n->Sup.len : 0)-1);
				rawInsert__K9b9aplmUERncrp49bmzOdPnw(t, (&(*t).data), n->data[h].Field2, n->data[h].Field3, n->data[h].Field0, j);
			}
			LA8_: ;
			h = nxt;
		} LA4: ;
	}
}
N_LIB_PRIVATE N_NIMCALL(NI, rawGetKnownHC__9cQeRP9bxZubT9bE5dfTSZEew)(tyObject_OrderedTable__ZZvSdVkA2s2sIyifu4cpkg* t, NimStringDesc* key, NI hc) {	NI result;
	NI h;
	NI T6_;
	NI TM__4SoG2KRQy3oMm9aUzSLtGrA_130;
{	result = (NI)0;
	{
		NI T3_;
		T3_ = ((*t).data ? (*t).data->Sup.len : 0);
		if (!(T3_ == ((NI) 0))) goto LA4_;
		result = ((NI) -1);
		goto BeforeRet_;
	}
	LA4_: ;
	T6_ = (((*t).data ? (*t).data->Sup.len : 0)-1);
	h = (NI)(hc & T6_);
	{
		while (1) {
			NIM_BOOL T9_;
			NI T16_;
			if ((NU)(h) >= (NU)((*t).data ? (*t).data->Sup.len : 0)) raiseIndexError2(h,((*t).data ? (*t).data->Sup.len : 0)-1);
			T9_ = (NIM_BOOL)0;
			T9_ = isFilled__5Qpmu5QqwDY0esVXn6wf7wtables((*t).data->data[h].Field0);
			if (!T9_) goto LA8;
			{
				NIM_BOOL T12_;
				T12_ = (NIM_BOOL)0;
				if ((NU)(h) >= (NU)((*t).data ? (*t).data->Sup.len : 0)) raiseIndexError2(h,((*t).data ? (*t).data->Sup.len : 0)-1);
				T12_ = ((*t).data->data[h].Field0 == hc);
				if (!(T12_)) goto LA13_;
				if ((NU)(h) >= (NU)((*t).data ? (*t).data->Sup.len : 0)) raiseIndexError2(h,((*t).data ? (*t).data->Sup.len : 0)-1);
				T12_ = eqStrings((*t).data->data[h].Field2, key);
				LA13_: ;
				if (!T12_) goto LA14_;
				result = h;
				goto BeforeRet_;
			}
			LA14_: ;
			T16_ = (((*t).data ? (*t).data->Sup.len : 0)-1);
			h = nextTry__rkF6R1GhqjFh3qSAPaT2Cwtables(h, T16_);
		} LA8: ;
	}
	TM__4SoG2KRQy3oMm9aUzSLtGrA_130 = subInt(((NI) -1), h);
	result = (NI)(TM__4SoG2KRQy3oMm9aUzSLtGrA_130);
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, X5BX5Deq___vlnBr1uIbtu0ntnZh6Askg)(tyObject_OrderedTable__ZZvSdVkA2s2sIyifu4cpkg* t, NimStringDesc* key, tyObject_JsonNodeObj__df9bshXB7C9cTiWPIOtX3j1Q* val) {	NI hc;
	NI index;
	{
		NI T3_;
		T3_ = ((*t).data ? (*t).data->Sup.len : 0);
		if (!(T3_ == ((NI) 0))) goto LA4_;
		{
			NIM_BOOL T8_;
			T8_ = (NIM_BOOL)0;
			T8_ = isPowerOfTwo__1xdTQapFveM9bImKot7h9cdw(((NI) 64));
			if (!!(T8_)) goto LA9_;
			failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__4SoG2KRQy3oMm9aUzSLtGrA_7));
		}
		LA9_: ;
		(*t).counter = ((NI) 0);
		unsureAsgnRef((void**) (&(*t).data), (tySequence__MlAD6nAPq9bHKla9cWiIZP0g*) newSeq((&NTI__MlAD6nAPq9bHKla9cWiIZP0g_), ((NI) 64)));
		(*t).first = ((NI) -1);
		(*t).last = ((NI) -1);
	}
	LA4_: ;
	hc = (NI)0;
	index = rawGet__U8BE8F1hkorXEqb1x9baemQ((&(*t)), key, (&hc));
	{
		if (!(((NI) 0) <= index)) goto LA13_;
		if ((NU)(index) >= (NU)((*t).data ? (*t).data->Sup.len : 0)) raiseIndexError2(index,((*t).data ? (*t).data->Sup.len : 0)-1);
		asgnRef((void**) (&(*t).data->data[index].Field3), val);
	}
	goto LA11_;
	LA13_: ;
	{
		NI TM__4SoG2KRQy3oMm9aUzSLtGrA_131;
		NI TM__4SoG2KRQy3oMm9aUzSLtGrA_132;
		{
			NI T18_;
			T18_ = ((*t).data ? (*t).data->Sup.len : 0);
			if (!(T18_ == ((NI) 0))) goto LA19_;
			{
				NIM_BOOL T23_;
				T23_ = (NIM_BOOL)0;
				T23_ = isPowerOfTwo__1xdTQapFveM9bImKot7h9cdw(((NI) 64));
				if (!!(T23_)) goto LA24_;
				failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__4SoG2KRQy3oMm9aUzSLtGrA_7));
			}
			LA24_: ;
			(*t).counter = ((NI) 0);
			unsureAsgnRef((void**) (&(*t).data), (tySequence__MlAD6nAPq9bHKla9cWiIZP0g*) newSeq((&NTI__MlAD6nAPq9bHKla9cWiIZP0g_), ((NI) 64)));
			(*t).first = ((NI) -1);
			(*t).last = ((NI) -1);
		}
		LA19_: ;
		{
			NI T28_;
			NIM_BOOL T29_;
			T28_ = ((*t).data ? (*t).data->Sup.len : 0);
			T29_ = (NIM_BOOL)0;
			T29_ = mustRehash__qu7bkfOlld3ZqX4akPQiHwtables(T28_, (*t).counter);
			if (!T29_) goto LA30_;
			enlarge__9cAm9cItwB6y9bUzyB9bE1NBlA(t);
			index = rawGetKnownHC__9cQeRP9bxZubT9bE5dfTSZEew((&(*t)), key, hc);
		}
		LA30_: ;
		TM__4SoG2KRQy3oMm9aUzSLtGrA_131 = subInt(((NI) -1), index);
		index = (NI)(TM__4SoG2KRQy3oMm9aUzSLtGrA_131);
		rawInsert__K9b9aplmUERncrp49bmzOdPnw(t, (&(*t).data), key, val, hc, index);
		TM__4SoG2KRQy3oMm9aUzSLtGrA_132 = addInt((*t).counter, ((NI) 1));
		(*t).counter = (NI)(TM__4SoG2KRQy3oMm9aUzSLtGrA_132);
	}
	LA11_: ;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, hasKey__UX29cFESnmC3SpxKAQuMIcg)(tyObject_OrderedTable__ZZvSdVkA2s2sIyifu4cpkg* t, NimStringDesc* key) {	NIM_BOOL result;
	NI hc;
	NI T1_;
	result = (NIM_BOOL)0;
	hc = (NI)0;
	T1_ = (NI)0;
	T1_ = rawGet__U8BE8F1hkorXEqb1x9baemQ(t, key, (&hc));
	result = (((NI) 0) <= T1_);
	return result;
}
static N_INLINE(NI, rawGet__B8emH5taC0NsYyBRssSIiwtables)(tyObject_OrderedTable__ZZvSdVkA2s2sIyifu4cpkg* t, NimStringDesc* key, NI* hc) {	NI result;
	NI h;
	NI T10_;
	NI TM__4SoG2KRQy3oMm9aUzSLtGrA_133;
{	result = (NI)0;
	(*hc) = hash__6PCYkKlCNhq9cnRLnqWKkwQ(key);
	{
		if (!((*hc) == ((NI) 0))) goto LA3_;
		(*hc) = ((NI) 314159265);
	}
	LA3_: ;
	{
		NI T7_;
		T7_ = ((*t).data ? (*t).data->Sup.len : 0);
		if (!(T7_ == ((NI) 0))) goto LA8_;
		result = ((NI) -1);
		goto BeforeRet_;
	}
	LA8_: ;
	T10_ = (((*t).data ? (*t).data->Sup.len : 0)-1);
	h = (NI)((*hc) & T10_);
	{
		while (1) {
			NIM_BOOL T13_;
			NI T20_;
			if ((NU)(h) >= (NU)((*t).data ? (*t).data->Sup.len : 0)) raiseIndexError2(h,((*t).data ? (*t).data->Sup.len : 0)-1);
			T13_ = (NIM_BOOL)0;
			T13_ = isFilled__5Qpmu5QqwDY0esVXn6wf7wtables((*t).data->data[h].Field0);
			if (!T13_) goto LA12;
			{
				NIM_BOOL T16_;
				T16_ = (NIM_BOOL)0;
				if ((NU)(h) >= (NU)((*t).data ? (*t).data->Sup.len : 0)) raiseIndexError2(h,((*t).data ? (*t).data->Sup.len : 0)-1);
				T16_ = ((*t).data->data[h].Field0 == (*hc));
				if (!(T16_)) goto LA17_;
				if ((NU)(h) >= (NU)((*t).data ? (*t).data->Sup.len : 0)) raiseIndexError2(h,((*t).data ? (*t).data->Sup.len : 0)-1);
				T16_ = eqStrings((*t).data->data[h].Field2, key);
				LA17_: ;
				if (!T16_) goto LA18_;
				result = h;
				goto BeforeRet_;
			}
			LA18_: ;
			T20_ = (((*t).data ? (*t).data->Sup.len : 0)-1);
			h = nextTry__rkF6R1GhqjFh3qSAPaT2Cwtables(h, T20_);
		} LA12: ;
	}
	TM__4SoG2KRQy3oMm9aUzSLtGrA_133 = subInt(((NI) -1), h);
	result = (NI)(TM__4SoG2KRQy3oMm9aUzSLtGrA_133);
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_JsonNodeObj__df9bshXB7C9cTiWPIOtX3j1Q**, X5BX5D___l9atGRY9bA25fn4p5uueZfUQ)(tyObject_OrderedTable__ZZvSdVkA2s2sIyifu4cpkg* t, NimStringDesc* key) {	tyObject_JsonNodeObj__df9bshXB7C9cTiWPIOtX3j1Q** result;
	NI hcX60gensym366648_;
	NI indexX60gensym366649_;
	result = (tyObject_JsonNodeObj__df9bshXB7C9cTiWPIOtX3j1Q**)0;
	hcX60gensym366648_ = (NI)0;
	indexX60gensym366649_ = rawGet__B8emH5taC0NsYyBRssSIiwtables((&(*t)), key, (&hcX60gensym366648_));
	{
		if (!(((NI) 0) <= indexX60gensym366649_)) goto LA3_;
		if ((NU)(indexX60gensym366649_) >= (NU)((*t).data ? (*t).data->Sup.len : 0)) raiseIndexError2(indexX60gensym366649_,((*t).data ? (*t).data->Sup.len : 0)-1);
		result = &(*t).data->data[indexX60gensym366649_].Field3;
	}
	goto LA1_;
	LA3_: ;
	{
		tyObject_KeyError__t7nhKLvXTQS9cS8ByJU9bIag* eX60gensym453403_;
		NimStringDesc* T6_;
		eX60gensym453403_ = (tyObject_KeyError__t7nhKLvXTQS9cS8ByJU9bIag*)0;
		eX60gensym453403_ = (tyObject_KeyError__t7nhKLvXTQS9cS8ByJU9bIag*) newObj((&NTI__8SzoIAgLw9ci2v0yafHj9b6Q_), sizeof(tyObject_KeyError__t7nhKLvXTQS9cS8ByJU9bIag));
		(*eX60gensym453403_).Sup.Sup.Sup.Sup.m_type = (&NTI__t7nhKLvXTQS9cS8ByJU9bIag_);
		(*eX60gensym453403_).Sup.Sup.Sup.name = "KeyError";
		T6_ = (NimStringDesc*)0;
		T6_ = rawNewString((key ? key->Sup.len : 0) + 15);
appendString(T6_, ((NimStringDesc*) &TM__4SoG2KRQy3oMm9aUzSLtGrA_20));
appendString(T6_, key);
		asgnRef((void**) (&(*eX60gensym453403_).Sup.Sup.Sup.message), T6_);
		asgnRef((void**) (&(*eX60gensym453403_).Sup.Sup.Sup.parent), NIM_NIL);
		raiseExceptionEx((Exception*)eX60gensym453403_, "KeyError", "[]", "tables.nim", 264);
	}
	LA1_: ;
	return result;
}
static N_INLINE(NI, hash__ixIcN23Rzgwj4rjH9cMHDWQhashes)(NI32 x) {	NI result;
	result = (NI)0;
	result = x;
	return result;
}
static N_INLINE(NI, rawGet__VHL4jbXDU6F0885vBGFikgtables)(tyObject_Table__e2Ciu0s1q49aVQ7ULXy7l9bQ t, NI32 key, NI* hc) {	NI result;
	NI h;
	NI T10_;
	NI TM__4SoG2KRQy3oMm9aUzSLtGrA_134;
{	result = (NI)0;
	(*hc) = hash__ixIcN23Rzgwj4rjH9cMHDWQhashes(key);
	{
		if (!((*hc) == ((NI) 0))) goto LA3_;
		(*hc) = ((NI) 314159265);
	}
	LA3_: ;
	{
		NI T7_;
		T7_ = (t.data ? t.data->Sup.len : 0);
		if (!(T7_ == ((NI) 0))) goto LA8_;
		result = ((NI) -1);
		goto BeforeRet_;
	}
	LA8_: ;
	T10_ = ((t.data ? t.data->Sup.len : 0)-1);
	h = (NI)((*hc) & T10_);
	{
		while (1) {
			NIM_BOOL T13_;
			NI T20_;
			if ((NU)(h) >= (NU)(t.data ? t.data->Sup.len : 0)) raiseIndexError2(h,(t.data ? t.data->Sup.len : 0)-1);
			T13_ = (NIM_BOOL)0;
			T13_ = isFilled__5Qpmu5QqwDY0esVXn6wf7wtables(t.data->data[h].Field0);
			if (!T13_) goto LA12;
			{
				NIM_BOOL T16_;
				T16_ = (NIM_BOOL)0;
				if ((NU)(h) >= (NU)(t.data ? t.data->Sup.len : 0)) raiseIndexError2(h,(t.data ? t.data->Sup.len : 0)-1);
				T16_ = (t.data->data[h].Field0 == (*hc));
				if (!(T16_)) goto LA17_;
				if ((NU)(h) >= (NU)(t.data ? t.data->Sup.len : 0)) raiseIndexError2(h,(t.data ? t.data->Sup.len : 0)-1);
				T16_ = (t.data->data[h].Field1 == key);
				LA17_: ;
				if (!T16_) goto LA18_;
				result = h;
				goto BeforeRet_;
			}
			LA18_: ;
			T20_ = ((t.data ? t.data->Sup.len : 0)-1);
			h = nextTry__rkF6R1GhqjFh3qSAPaT2Cwtables(h, T20_);
		} LA12: ;
	}
	TM__4SoG2KRQy3oMm9aUzSLtGrA_134 = subInt(((NI) -1), h);
	result = (NI)(TM__4SoG2KRQy3oMm9aUzSLtGrA_134);
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, rawInsert__wUVYiyWmQ9cvzc9aNVobHWfA)(tyObject_Table__e2Ciu0s1q49aVQ7ULXy7l9bQ* t, tySequence__kxu4GK0onha2t9bo86mdVAg** data, NI32 key, NI32 val, NI hc, NI h) {	if ((NU)(h) >= (NU)((*data) ? (*data)->Sup.len : 0)) raiseIndexError2(h,((*data) ? (*data)->Sup.len : 0)-1);
	(*data)->data[h].Field1 = key;
	if ((NU)(h) >= (NU)((*data) ? (*data)->Sup.len : 0)) raiseIndexError2(h,((*data) ? (*data)->Sup.len : 0)-1);
	(*data)->data[h].Field2 = val;
	if ((NU)(h) >= (NU)((*data) ? (*data)->Sup.len : 0)) raiseIndexError2(h,((*data) ? (*data)->Sup.len : 0)-1);
	(*data)->data[h].Field0 = hc;
}
N_LIB_PRIVATE N_NIMCALL(void, enlarge__WznuIAS2HbbgwoQgMlLNGA)(tyObject_Table__e2Ciu0s1q49aVQ7ULXy7l9bQ* t) {	tySequence__kxu4GK0onha2t9bo86mdVAg* n;
	NI T1_;
	NI TM__4SoG2KRQy3oMm9aUzSLtGrA_135;
	tySequence__kxu4GK0onha2t9bo86mdVAg* T2_;
	n = (tySequence__kxu4GK0onha2t9bo86mdVAg*)0;
	T1_ = ((*t).data ? (*t).data->Sup.len : 0);
	TM__4SoG2KRQy3oMm9aUzSLtGrA_135 = mulInt(T1_, ((NI) 2));
	n = (tySequence__kxu4GK0onha2t9bo86mdVAg*) newSeq((&NTI__kxu4GK0onha2t9bo86mdVAg_), ((NI)chckRange((NI)(TM__4SoG2KRQy3oMm9aUzSLtGrA_135), ((NI) 0), ((NI) IL64(9223372036854775807)))));
	T2_ = (tySequence__kxu4GK0onha2t9bo86mdVAg*)0;
	T2_ = (*t).data;
	unsureAsgnRef((void**) (&(*t).data), n);
	n = T2_;
	{
		NI i;
		NI colontmp_;
		NI T4_;
		NI res;
		i = (NI)0;
		colontmp_ = (NI)0;
		T4_ = ((n ? n->Sup.len : 0)-1);
		colontmp_ = T4_;
		res = ((NI) 0);
		{
			while (1) {
				NI eh;
				NI TM__4SoG2KRQy3oMm9aUzSLtGrA_136;
				if (!(res <= colontmp_)) goto LA6;
				i = res;
				if ((NU)(i) >= (NU)(n ? n->Sup.len : 0)) raiseIndexError2(i,(n ? n->Sup.len : 0)-1);
				eh = n->data[i].Field0;
				{
					NIM_BOOL T9_;
					NI j;
					NI T12_;
					NI32 T17_;
					NI32 T18_;
					T9_ = (NIM_BOOL)0;
					T9_ = isFilled__5Qpmu5QqwDY0esVXn6wf7wtables(eh);
					if (!T9_) goto LA10_;
					T12_ = (((*t).data ? (*t).data->Sup.len : 0)-1);
					j = (NI)(eh & T12_);
					{
						while (1) {
							NIM_BOOL T15_;
							NI T16_;
							if ((NU)(j) >= (NU)((*t).data ? (*t).data->Sup.len : 0)) raiseIndexError2(j,((*t).data ? (*t).data->Sup.len : 0)-1);
							T15_ = (NIM_BOOL)0;
							T15_ = isFilled__5Qpmu5QqwDY0esVXn6wf7wtables((*t).data->data[j].Field0);
							if (!T15_) goto LA14;
							T16_ = (((*t).data ? (*t).data->Sup.len : 0)-1);
							j = nextTry__rkF6R1GhqjFh3qSAPaT2Cwtables(j, T16_);
						} LA14: ;
					}
					if ((NU)(i) >= (NU)(n ? n->Sup.len : 0)) raiseIndexError2(i,(n ? n->Sup.len : 0)-1);
					T17_ = (NI32)0;
					T17_ = n->data[i].Field1;
					n->data[i].Field1 = 0;
					if ((NU)(i) >= (NU)(n ? n->Sup.len : 0)) raiseIndexError2(i,(n ? n->Sup.len : 0)-1);
					T18_ = (NI32)0;
					T18_ = n->data[i].Field2;
					n->data[i].Field2 = 0;
					rawInsert__wUVYiyWmQ9cvzc9aNVobHWfA(t, (&(*t).data), T17_, T18_, eh, j);
				}
				LA10_: ;
				TM__4SoG2KRQy3oMm9aUzSLtGrA_136 = addInt(res, ((NI) 1));
				res = (NI)(TM__4SoG2KRQy3oMm9aUzSLtGrA_136);
			} LA6: ;
		}
	}
}
static N_INLINE(NI, rawGetKnownHC__WbZNr9ajY1NXktE9abGpy5rgtables)(tyObject_Table__e2Ciu0s1q49aVQ7ULXy7l9bQ t, NI32 key, NI hc) {	NI result;
	NI h;
	NI T6_;
	NI TM__4SoG2KRQy3oMm9aUzSLtGrA_137;
{	result = (NI)0;
	{
		NI T3_;
		T3_ = (t.data ? t.data->Sup.len : 0);
		if (!(T3_ == ((NI) 0))) goto LA4_;
		result = ((NI) -1);
		goto BeforeRet_;
	}
	LA4_: ;
	T6_ = ((t.data ? t.data->Sup.len : 0)-1);
	h = (NI)(hc & T6_);
	{
		while (1) {
			NIM_BOOL T9_;
			NI T16_;
			if ((NU)(h) >= (NU)(t.data ? t.data->Sup.len : 0)) raiseIndexError2(h,(t.data ? t.data->Sup.len : 0)-1);
			T9_ = (NIM_BOOL)0;
			T9_ = isFilled__5Qpmu5QqwDY0esVXn6wf7wtables(t.data->data[h].Field0);
			if (!T9_) goto LA8;
			{
				NIM_BOOL T12_;
				T12_ = (NIM_BOOL)0;
				if ((NU)(h) >= (NU)(t.data ? t.data->Sup.len : 0)) raiseIndexError2(h,(t.data ? t.data->Sup.len : 0)-1);
				T12_ = (t.data->data[h].Field0 == hc);
				if (!(T12_)) goto LA13_;
				if ((NU)(h) >= (NU)(t.data ? t.data->Sup.len : 0)) raiseIndexError2(h,(t.data ? t.data->Sup.len : 0)-1);
				T12_ = (t.data->data[h].Field1 == key);
				LA13_: ;
				if (!T12_) goto LA14_;
				result = h;
				goto BeforeRet_;
			}
			LA14_: ;
			T16_ = ((t.data ? t.data->Sup.len : 0)-1);
			h = nextTry__rkF6R1GhqjFh3qSAPaT2Cwtables(h, T16_);
		} LA8: ;
	}
	TM__4SoG2KRQy3oMm9aUzSLtGrA_137 = subInt(((NI) -1), h);
	result = (NI)(TM__4SoG2KRQy3oMm9aUzSLtGrA_137);
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, hasKeyOrPut__WdnGwzJoNnsIHUzxAKLE9aw)(tyObject_Table__e2Ciu0s1q49aVQ7ULXy7l9bQ* t, NI32 key, NI32 val) {	NIM_BOOL result;
	NI hc;
	NI index;
	result = (NIM_BOOL)0;
	{
		NI T3_;
		T3_ = ((*t).data ? (*t).data->Sup.len : 0);
		if (!(T3_ == ((NI) 0))) goto LA4_;
		{
			NIM_BOOL T8_;
			T8_ = (NIM_BOOL)0;
			T8_ = isPowerOfTwo__1xdTQapFveM9bImKot7h9cdw(((NI) 64));
			if (!!(T8_)) goto LA9_;
			failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__4SoG2KRQy3oMm9aUzSLtGrA_7));
		}
		LA9_: ;
		(*t).counter = ((NI) 0);
		unsureAsgnRef((void**) (&(*t).data), (tySequence__kxu4GK0onha2t9bo86mdVAg*) newSeq((&NTI__kxu4GK0onha2t9bo86mdVAg_), ((NI) 64)));
	}
	LA4_: ;
	hc = (NI)0;
	index = rawGet__VHL4jbXDU6F0885vBGFikgtables((*t), key, (&hc));
	{
		NI TM__4SoG2KRQy3oMm9aUzSLtGrA_138;
		NI TM__4SoG2KRQy3oMm9aUzSLtGrA_139;
		if (!(index < ((NI) 0))) goto LA13_;
		result = NIM_FALSE;
		{
			NI T17_;
			T17_ = ((*t).data ? (*t).data->Sup.len : 0);
			if (!(T17_ == ((NI) 0))) goto LA18_;
			{
				NIM_BOOL T22_;
				T22_ = (NIM_BOOL)0;
				T22_ = isPowerOfTwo__1xdTQapFveM9bImKot7h9cdw(((NI) 64));
				if (!!(T22_)) goto LA23_;
				failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__4SoG2KRQy3oMm9aUzSLtGrA_7));
			}
			LA23_: ;
			(*t).counter = ((NI) 0);
			unsureAsgnRef((void**) (&(*t).data), (tySequence__kxu4GK0onha2t9bo86mdVAg*) newSeq((&NTI__kxu4GK0onha2t9bo86mdVAg_), ((NI) 64)));
		}
		LA18_: ;
		{
			NI T27_;
			NIM_BOOL T28_;
			T27_ = ((*t).data ? (*t).data->Sup.len : 0);
			T28_ = (NIM_BOOL)0;
			T28_ = mustRehash__qu7bkfOlld3ZqX4akPQiHwtables(T27_, (*t).counter);
			if (!T28_) goto LA29_;
			enlarge__WznuIAS2HbbgwoQgMlLNGA(t);
			index = rawGetKnownHC__WbZNr9ajY1NXktE9abGpy5rgtables((*t), key, hc);
		}
		LA29_: ;
		TM__4SoG2KRQy3oMm9aUzSLtGrA_138 = subInt(((NI) -1), index);
		index = (NI)(TM__4SoG2KRQy3oMm9aUzSLtGrA_138);
		rawInsert__wUVYiyWmQ9cvzc9aNVobHWfA(t, (&(*t).data), key, val, hc, index);
		TM__4SoG2KRQy3oMm9aUzSLtGrA_139 = addInt((*t).counter, ((NI) 1));
		(*t).counter = (NI)(TM__4SoG2KRQy3oMm9aUzSLtGrA_139);
	}
	goto LA11_;
	LA13_: ;
	{
		result = NIM_TRUE;
	}
	LA11_: ;
	return result;
}
static N_INLINE(NI, rawGet__QnNqXOulpiE3rTDm0rj6bgtables)(tyObject_Table__fdKWDDO1P17zvuQPReVgRA t, NI32 key, NI* hc) {	NI result;
	NI h;
	NI T10_;
	NI TM__4SoG2KRQy3oMm9aUzSLtGrA_140;
{	result = (NI)0;
	(*hc) = hash__ixIcN23Rzgwj4rjH9cMHDWQhashes(key);
	{
		if (!((*hc) == ((NI) 0))) goto LA3_;
		(*hc) = ((NI) 314159265);
	}
	LA3_: ;
	{
		NI T7_;
		T7_ = (t.data ? t.data->Sup.len : 0);
		if (!(T7_ == ((NI) 0))) goto LA8_;
		result = ((NI) -1);
		goto BeforeRet_;
	}
	LA8_: ;
	T10_ = ((t.data ? t.data->Sup.len : 0)-1);
	h = (NI)((*hc) & T10_);
	{
		while (1) {
			NIM_BOOL T13_;
			NI T20_;
			if ((NU)(h) >= (NU)(t.data ? t.data->Sup.len : 0)) raiseIndexError2(h,(t.data ? t.data->Sup.len : 0)-1);
			T13_ = (NIM_BOOL)0;
			T13_ = isFilled__5Qpmu5QqwDY0esVXn6wf7wtables(t.data->data[h].Field0);
			if (!T13_) goto LA12;
			{
				NIM_BOOL T16_;
				T16_ = (NIM_BOOL)0;
				if ((NU)(h) >= (NU)(t.data ? t.data->Sup.len : 0)) raiseIndexError2(h,(t.data ? t.data->Sup.len : 0)-1);
				T16_ = (t.data->data[h].Field0 == (*hc));
				if (!(T16_)) goto LA17_;
				if ((NU)(h) >= (NU)(t.data ? t.data->Sup.len : 0)) raiseIndexError2(h,(t.data ? t.data->Sup.len : 0)-1);
				T16_ = (t.data->data[h].Field1 == key);
				LA17_: ;
				if (!T16_) goto LA18_;
				result = h;
				goto BeforeRet_;
			}
			LA18_: ;
			T20_ = ((t.data ? t.data->Sup.len : 0)-1);
			h = nextTry__rkF6R1GhqjFh3qSAPaT2Cwtables(h, T20_);
		} LA12: ;
	}
	TM__4SoG2KRQy3oMm9aUzSLtGrA_140 = subInt(((NI) -1), h);
	result = (NI)(TM__4SoG2KRQy3oMm9aUzSLtGrA_140);
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, rawInsert__IVJyWWnSh59cPztkOuQNV0g)(tyObject_Table__fdKWDDO1P17zvuQPReVgRA* t, tySequence__fdmz6VkIf1ewwrssKYqRFg** data, NI32 key, tySequence__48JTohSgTy339bRxHzUD8KA* val, NI hc, NI h) {	if ((NU)(h) >= (NU)((*data) ? (*data)->Sup.len : 0)) raiseIndexError2(h,((*data) ? (*data)->Sup.len : 0)-1);
	(*data)->data[h].Field1 = key;
	if ((NU)(h) >= (NU)((*data) ? (*data)->Sup.len : 0)) raiseIndexError2(h,((*data) ? (*data)->Sup.len : 0)-1);
	genericSeqAssign((&(*data)->data[h].Field2), val, (&NTI__48JTohSgTy339bRxHzUD8KA_));
	if ((NU)(h) >= (NU)((*data) ? (*data)->Sup.len : 0)) raiseIndexError2(h,((*data) ? (*data)->Sup.len : 0)-1);
	(*data)->data[h].Field0 = hc;
}
N_LIB_PRIVATE N_NIMCALL(void, enlarge__8q9c9aCPUMM0w7HNF4dndgQg)(tyObject_Table__fdKWDDO1P17zvuQPReVgRA* t) {	tySequence__fdmz6VkIf1ewwrssKYqRFg* n;
	NI T1_;
	NI TM__4SoG2KRQy3oMm9aUzSLtGrA_141;
	tySequence__fdmz6VkIf1ewwrssKYqRFg* T2_;
	n = (tySequence__fdmz6VkIf1ewwrssKYqRFg*)0;
	T1_ = ((*t).data ? (*t).data->Sup.len : 0);
	TM__4SoG2KRQy3oMm9aUzSLtGrA_141 = mulInt(T1_, ((NI) 2));
	n = (tySequence__fdmz6VkIf1ewwrssKYqRFg*) newSeq((&NTI__fdmz6VkIf1ewwrssKYqRFg_), ((NI)chckRange((NI)(TM__4SoG2KRQy3oMm9aUzSLtGrA_141), ((NI) 0), ((NI) IL64(9223372036854775807)))));
	T2_ = (tySequence__fdmz6VkIf1ewwrssKYqRFg*)0;
	T2_ = (*t).data;
	unsureAsgnRef((void**) (&(*t).data), n);
	n = T2_;
	{
		NI i;
		NI colontmp_;
		NI T4_;
		NI res;
		i = (NI)0;
		colontmp_ = (NI)0;
		T4_ = ((n ? n->Sup.len : 0)-1);
		colontmp_ = T4_;
		res = ((NI) 0);
		{
			while (1) {
				NI eh;
				NI TM__4SoG2KRQy3oMm9aUzSLtGrA_142;
				if (!(res <= colontmp_)) goto LA6;
				i = res;
				if ((NU)(i) >= (NU)(n ? n->Sup.len : 0)) raiseIndexError2(i,(n ? n->Sup.len : 0)-1);
				eh = n->data[i].Field0;
				{
					NIM_BOOL T9_;
					NI j;
					NI T12_;
					NI32 T17_;
					tySequence__48JTohSgTy339bRxHzUD8KA* T18_;
					T9_ = (NIM_BOOL)0;
					T9_ = isFilled__5Qpmu5QqwDY0esVXn6wf7wtables(eh);
					if (!T9_) goto LA10_;
					T12_ = (((*t).data ? (*t).data->Sup.len : 0)-1);
					j = (NI)(eh & T12_);
					{
						while (1) {
							NIM_BOOL T15_;
							NI T16_;
							if ((NU)(j) >= (NU)((*t).data ? (*t).data->Sup.len : 0)) raiseIndexError2(j,((*t).data ? (*t).data->Sup.len : 0)-1);
							T15_ = (NIM_BOOL)0;
							T15_ = isFilled__5Qpmu5QqwDY0esVXn6wf7wtables((*t).data->data[j].Field0);
							if (!T15_) goto LA14;
							T16_ = (((*t).data ? (*t).data->Sup.len : 0)-1);
							j = nextTry__rkF6R1GhqjFh3qSAPaT2Cwtables(j, T16_);
						} LA14: ;
					}
					if ((NU)(i) >= (NU)(n ? n->Sup.len : 0)) raiseIndexError2(i,(n ? n->Sup.len : 0)-1);
					T17_ = (NI32)0;
					T17_ = n->data[i].Field1;
					n->data[i].Field1 = 0;
					if ((NU)(i) >= (NU)(n ? n->Sup.len : 0)) raiseIndexError2(i,(n ? n->Sup.len : 0)-1);
					T18_ = (tySequence__48JTohSgTy339bRxHzUD8KA*)0;
					T18_ = n->data[i].Field2;
					asgnRef((void**) (&n->data[i].Field2), NIM_NIL);
					rawInsert__IVJyWWnSh59cPztkOuQNV0g(t, (&(*t).data), T17_, T18_, eh, j);
				}
				LA10_: ;
				TM__4SoG2KRQy3oMm9aUzSLtGrA_142 = addInt(res, ((NI) 1));
				res = (NI)(TM__4SoG2KRQy3oMm9aUzSLtGrA_142);
			} LA6: ;
		}
	}
}
static N_INLINE(NI, rawGetKnownHC__4Fsb1T2VnPSV6oxoQiJufQtables)(tyObject_Table__fdKWDDO1P17zvuQPReVgRA t, NI32 key, NI hc) {	NI result;
	NI h;
	NI T6_;
	NI TM__4SoG2KRQy3oMm9aUzSLtGrA_143;
{	result = (NI)0;
	{
		NI T3_;
		T3_ = (t.data ? t.data->Sup.len : 0);
		if (!(T3_ == ((NI) 0))) goto LA4_;
		result = ((NI) -1);
		goto BeforeRet_;
	}
	LA4_: ;
	T6_ = ((t.data ? t.data->Sup.len : 0)-1);
	h = (NI)(hc & T6_);
	{
		while (1) {
			NIM_BOOL T9_;
			NI T16_;
			if ((NU)(h) >= (NU)(t.data ? t.data->Sup.len : 0)) raiseIndexError2(h,(t.data ? t.data->Sup.len : 0)-1);
			T9_ = (NIM_BOOL)0;
			T9_ = isFilled__5Qpmu5QqwDY0esVXn6wf7wtables(t.data->data[h].Field0);
			if (!T9_) goto LA8;
			{
				NIM_BOOL T12_;
				T12_ = (NIM_BOOL)0;
				if ((NU)(h) >= (NU)(t.data ? t.data->Sup.len : 0)) raiseIndexError2(h,(t.data ? t.data->Sup.len : 0)-1);
				T12_ = (t.data->data[h].Field0 == hc);
				if (!(T12_)) goto LA13_;
				if ((NU)(h) >= (NU)(t.data ? t.data->Sup.len : 0)) raiseIndexError2(h,(t.data ? t.data->Sup.len : 0)-1);
				T12_ = (t.data->data[h].Field1 == key);
				LA13_: ;
				if (!T12_) goto LA14_;
				result = h;
				goto BeforeRet_;
			}
			LA14_: ;
			T16_ = ((t.data ? t.data->Sup.len : 0)-1);
			h = nextTry__rkF6R1GhqjFh3qSAPaT2Cwtables(h, T16_);
		} LA8: ;
	}
	TM__4SoG2KRQy3oMm9aUzSLtGrA_143 = subInt(((NI) -1), h);
	result = (NI)(TM__4SoG2KRQy3oMm9aUzSLtGrA_143);
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tySequence__48JTohSgTy339bRxHzUD8KA**, mgetOrPut__zZWWGOWkKOEGJoEiQeIHZA)(tyObject_Table__fdKWDDO1P17zvuQPReVgRA* t, NI32 key, tySequence__48JTohSgTy339bRxHzUD8KA* val) {	tySequence__48JTohSgTy339bRxHzUD8KA** result;
	NI hc;
	NI index;
	result = (tySequence__48JTohSgTy339bRxHzUD8KA**)0;
	{
		NI T3_;
		T3_ = ((*t).data ? (*t).data->Sup.len : 0);
		if (!(T3_ == ((NI) 0))) goto LA4_;
		{
			NIM_BOOL T8_;
			T8_ = (NIM_BOOL)0;
			T8_ = isPowerOfTwo__1xdTQapFveM9bImKot7h9cdw(((NI) 64));
			if (!!(T8_)) goto LA9_;
			failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__4SoG2KRQy3oMm9aUzSLtGrA_7));
		}
		LA9_: ;
		(*t).counter = ((NI) 0);
		unsureAsgnRef((void**) (&(*t).data), (tySequence__fdmz6VkIf1ewwrssKYqRFg*) newSeq((&NTI__fdmz6VkIf1ewwrssKYqRFg_), ((NI) 64)));
	}
	LA4_: ;
	hc = (NI)0;
	index = rawGet__QnNqXOulpiE3rTDm0rj6bgtables((*t), key, (&hc));
	{
		NI TM__4SoG2KRQy3oMm9aUzSLtGrA_144;
		NI TM__4SoG2KRQy3oMm9aUzSLtGrA_145;
		if (!(index < ((NI) 0))) goto LA13_;
		{
			NI T17_;
			T17_ = ((*t).data ? (*t).data->Sup.len : 0);
			if (!(T17_ == ((NI) 0))) goto LA18_;
			{
				NIM_BOOL T22_;
				T22_ = (NIM_BOOL)0;
				T22_ = isPowerOfTwo__1xdTQapFveM9bImKot7h9cdw(((NI) 64));
				if (!!(T22_)) goto LA23_;
				failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__4SoG2KRQy3oMm9aUzSLtGrA_7));
			}
			LA23_: ;
			(*t).counter = ((NI) 0);
			unsureAsgnRef((void**) (&(*t).data), (tySequence__fdmz6VkIf1ewwrssKYqRFg*) newSeq((&NTI__fdmz6VkIf1ewwrssKYqRFg_), ((NI) 64)));
		}
		LA18_: ;
		{
			NI T27_;
			NIM_BOOL T28_;
			T27_ = ((*t).data ? (*t).data->Sup.len : 0);
			T28_ = (NIM_BOOL)0;
			T28_ = mustRehash__qu7bkfOlld3ZqX4akPQiHwtables(T27_, (*t).counter);
			if (!T28_) goto LA29_;
			enlarge__8q9c9aCPUMM0w7HNF4dndgQg(t);
			index = rawGetKnownHC__4Fsb1T2VnPSV6oxoQiJufQtables((*t), key, hc);
		}
		LA29_: ;
		TM__4SoG2KRQy3oMm9aUzSLtGrA_144 = subInt(((NI) -1), index);
		index = (NI)(TM__4SoG2KRQy3oMm9aUzSLtGrA_144);
		rawInsert__IVJyWWnSh59cPztkOuQNV0g(t, (&(*t).data), key, val, hc, index);
		TM__4SoG2KRQy3oMm9aUzSLtGrA_145 = addInt((*t).counter, ((NI) 1));
		(*t).counter = (NI)(TM__4SoG2KRQy3oMm9aUzSLtGrA_145);
	}
	LA13_: ;
	if ((NU)(index) >= (NU)((*t).data ? (*t).data->Sup.len : 0)) raiseIndexError2(index,((*t).data ? (*t).data->Sup.len : 0)-1);
	result = (&(*t).data->data[index].Field2);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NI, len__2ofA2tlPvPQGtfqWkdG41g)(tyObject_Table__gZ3EYQdz9coOB7ngN9a1cqwA t) {	NI result;
	result = (NI)0;
	result = t.counter;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NI, len__BJm9cTslcy01z41qkbd1OIw)(tyObject_Table__e2Ciu0s1q49aVQ7ULXy7l9bQ t) {	NI result;
	result = (NI)0;
	result = t.counter;
	return result;
}
static N_NIMCALL(void, Marker_tySequence__pUxI6Ljo6IKKHXKOZkQ7Og)(void* p, NI op) {
	tySequence__pUxI6Ljo6IKKHXKOZkQ7Og* a;
	NI T1_;
	a = (tySequence__pUxI6Ljo6IKKHXKOZkQ7Og*)p;
	T1_ = (NI)0;
	for (T1_ = 0; T1_ < (a ? a->Sup.len : 0); T1_++) {
	nimGCvisit((void*)a->data[T1_].Field1, op);
	}
}
N_LIB_PRIVATE N_NIMCALL(void, initTable__RrWZeIMfwjxuENvIG9aHB8g)(NI initialSize, tyObject_Table__i55W8RrwGKsG9cl0sAKxgkQ* Result) {	chckNil((void*)Result);
	genericReset((void*)Result, (&NTI__i55W8RrwGKsG9cl0sAKxgkQ_));
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = isPowerOfTwo__1xdTQapFveM9bImKot7h9cdw(initialSize);
		if (!!(T3_)) goto LA4_;
		failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__4SoG2KRQy3oMm9aUzSLtGrA_4));
	}
	LA4_: ;
	(*Result).counter = ((NI) 0);
	unsureAsgnRef((void**) (&(*Result).data), (tySequence__pUxI6Ljo6IKKHXKOZkQ7Og*) newSeq((&NTI__pUxI6Ljo6IKKHXKOZkQ7Og_), ((NI)chckRange(initialSize, ((NI) 0), ((NI) IL64(9223372036854775807))))));
}
static N_INLINE(NI, rawGet__hi24HVDthGVUIUfuDpjqIQtables)(tyObject_Table__i55W8RrwGKsG9cl0sAKxgkQ t, NimStringDesc* key, NI* hc) {	NI result;
	NI h;
	NI T10_;
	NI TM__4SoG2KRQy3oMm9aUzSLtGrA_148;
{	result = (NI)0;
	(*hc) = hash__6PCYkKlCNhq9cnRLnqWKkwQ(key);
	{
		if (!((*hc) == ((NI) 0))) goto LA3_;
		(*hc) = ((NI) 314159265);
	}
	LA3_: ;
	{
		NI T7_;
		T7_ = (t.data ? t.data->Sup.len : 0);
		if (!(T7_ == ((NI) 0))) goto LA8_;
		result = ((NI) -1);
		goto BeforeRet_;
	}
	LA8_: ;
	T10_ = ((t.data ? t.data->Sup.len : 0)-1);
	h = (NI)((*hc) & T10_);
	{
		while (1) {
			NIM_BOOL T13_;
			NI T20_;
			if ((NU)(h) >= (NU)(t.data ? t.data->Sup.len : 0)) raiseIndexError2(h,(t.data ? t.data->Sup.len : 0)-1);
			T13_ = (NIM_BOOL)0;
			T13_ = isFilled__5Qpmu5QqwDY0esVXn6wf7wtables(t.data->data[h].Field0);
			if (!T13_) goto LA12;
			{
				NIM_BOOL T16_;
				T16_ = (NIM_BOOL)0;
				if ((NU)(h) >= (NU)(t.data ? t.data->Sup.len : 0)) raiseIndexError2(h,(t.data ? t.data->Sup.len : 0)-1);
				T16_ = (t.data->data[h].Field0 == (*hc));
				if (!(T16_)) goto LA17_;
				if ((NU)(h) >= (NU)(t.data ? t.data->Sup.len : 0)) raiseIndexError2(h,(t.data ? t.data->Sup.len : 0)-1);
				T16_ = eqStrings(t.data->data[h].Field1, key);
				LA17_: ;
				if (!T16_) goto LA18_;
				result = h;
				goto BeforeRet_;
			}
			LA18_: ;
			T20_ = ((t.data ? t.data->Sup.len : 0)-1);
			h = nextTry__rkF6R1GhqjFh3qSAPaT2Cwtables(h, T20_);
		} LA12: ;
	}
	TM__4SoG2KRQy3oMm9aUzSLtGrA_148 = subInt(((NI) -1), h);
	result = (NI)(TM__4SoG2KRQy3oMm9aUzSLtGrA_148);
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, hasKey__aOI3jq5GpcZWNc9aNWt3Shw)(tyObject_Table__i55W8RrwGKsG9cl0sAKxgkQ t, NimStringDesc* key) {	NIM_BOOL result;
	NI hc;
	NI T1_;
	result = (NIM_BOOL)0;
	hc = (NI)0;
	T1_ = (NI)0;
	T1_ = rawGet__hi24HVDthGVUIUfuDpjqIQtables(t, key, (&hc));
	result = (((NI) 0) <= T1_);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, rawInsert__K9c1MhW8jYPmeOjDdrH9ajyg)(tyObject_Table__i55W8RrwGKsG9cl0sAKxgkQ* t, tySequence__pUxI6Ljo6IKKHXKOZkQ7Og** data, NimStringDesc* key, NI val, NI hc, NI h) {	NimStringDesc* T1_;
	if ((NU)(h) >= (NU)((*data) ? (*data)->Sup.len : 0)) raiseIndexError2(h,((*data) ? (*data)->Sup.len : 0)-1);
	T1_ = (NimStringDesc*)0;
	T1_ = (*data)->data[h].Field1; (*data)->data[h].Field1 = copyStringRC1(key);
	if (T1_) nimGCunrefNoCycle(T1_);
	if ((NU)(h) >= (NU)((*data) ? (*data)->Sup.len : 0)) raiseIndexError2(h,((*data) ? (*data)->Sup.len : 0)-1);
	(*data)->data[h].Field2 = val;
	if ((NU)(h) >= (NU)((*data) ? (*data)->Sup.len : 0)) raiseIndexError2(h,((*data) ? (*data)->Sup.len : 0)-1);
	(*data)->data[h].Field0 = hc;
}
N_LIB_PRIVATE N_NIMCALL(void, enlarge__VYLD6MqB59amU6bk9ahC8zNw)(tyObject_Table__i55W8RrwGKsG9cl0sAKxgkQ* t) {	tySequence__pUxI6Ljo6IKKHXKOZkQ7Og* n;
	NI T1_;
	NI TM__4SoG2KRQy3oMm9aUzSLtGrA_149;
	tySequence__pUxI6Ljo6IKKHXKOZkQ7Og* T2_;
	n = (tySequence__pUxI6Ljo6IKKHXKOZkQ7Og*)0;
	T1_ = ((*t).data ? (*t).data->Sup.len : 0);
	TM__4SoG2KRQy3oMm9aUzSLtGrA_149 = mulInt(T1_, ((NI) 2));
	n = (tySequence__pUxI6Ljo6IKKHXKOZkQ7Og*) newSeq((&NTI__pUxI6Ljo6IKKHXKOZkQ7Og_), ((NI)chckRange((NI)(TM__4SoG2KRQy3oMm9aUzSLtGrA_149), ((NI) 0), ((NI) IL64(9223372036854775807)))));
	T2_ = (tySequence__pUxI6Ljo6IKKHXKOZkQ7Og*)0;
	T2_ = (*t).data;
	unsureAsgnRef((void**) (&(*t).data), n);
	n = T2_;
	{
		NI i;
		NI colontmp_;
		NI T4_;
		NI res;
		i = (NI)0;
		colontmp_ = (NI)0;
		T4_ = ((n ? n->Sup.len : 0)-1);
		colontmp_ = T4_;
		res = ((NI) 0);
		{
			while (1) {
				NI eh;
				NI TM__4SoG2KRQy3oMm9aUzSLtGrA_150;
				if (!(res <= colontmp_)) goto LA6;
				i = res;
				if ((NU)(i) >= (NU)(n ? n->Sup.len : 0)) raiseIndexError2(i,(n ? n->Sup.len : 0)-1);
				eh = n->data[i].Field0;
				{
					NIM_BOOL T9_;
					NI j;
					NI T12_;
					NimStringDesc* T17_;
					NI T18_;
					T9_ = (NIM_BOOL)0;
					T9_ = isFilled__5Qpmu5QqwDY0esVXn6wf7wtables(eh);
					if (!T9_) goto LA10_;
					T12_ = (((*t).data ? (*t).data->Sup.len : 0)-1);
					j = (NI)(eh & T12_);
					{
						while (1) {
							NIM_BOOL T15_;
							NI T16_;
							if ((NU)(j) >= (NU)((*t).data ? (*t).data->Sup.len : 0)) raiseIndexError2(j,((*t).data ? (*t).data->Sup.len : 0)-1);
							T15_ = (NIM_BOOL)0;
							T15_ = isFilled__5Qpmu5QqwDY0esVXn6wf7wtables((*t).data->data[j].Field0);
							if (!T15_) goto LA14;
							T16_ = (((*t).data ? (*t).data->Sup.len : 0)-1);
							j = nextTry__rkF6R1GhqjFh3qSAPaT2Cwtables(j, T16_);
						} LA14: ;
					}
					if ((NU)(i) >= (NU)(n ? n->Sup.len : 0)) raiseIndexError2(i,(n ? n->Sup.len : 0)-1);
					T17_ = (NimStringDesc*)0;
					T17_ = n->data[i].Field1;
					asgnRef((void**) (&n->data[i].Field1), NIM_NIL);
					if ((NU)(i) >= (NU)(n ? n->Sup.len : 0)) raiseIndexError2(i,(n ? n->Sup.len : 0)-1);
					T18_ = (NI)0;
					T18_ = n->data[i].Field2;
					n->data[i].Field2 = 0;
					rawInsert__K9c1MhW8jYPmeOjDdrH9ajyg(t, (&(*t).data), T17_, T18_, eh, j);
				}
				LA10_: ;
				TM__4SoG2KRQy3oMm9aUzSLtGrA_150 = addInt(res, ((NI) 1));
				res = (NI)(TM__4SoG2KRQy3oMm9aUzSLtGrA_150);
			} LA6: ;
		}
	}
}
static N_INLINE(NI, rawGetKnownHC__so4qfaUZuauODRq3tIG3Igtables)(tyObject_Table__i55W8RrwGKsG9cl0sAKxgkQ t, NimStringDesc* key, NI hc) {	NI result;
	NI h;
	NI T6_;
	NI TM__4SoG2KRQy3oMm9aUzSLtGrA_151;
{	result = (NI)0;
	{
		NI T3_;
		T3_ = (t.data ? t.data->Sup.len : 0);
		if (!(T3_ == ((NI) 0))) goto LA4_;
		result = ((NI) -1);
		goto BeforeRet_;
	}
	LA4_: ;
	T6_ = ((t.data ? t.data->Sup.len : 0)-1);
	h = (NI)(hc & T6_);
	{
		while (1) {
			NIM_BOOL T9_;
			NI T16_;
			if ((NU)(h) >= (NU)(t.data ? t.data->Sup.len : 0)) raiseIndexError2(h,(t.data ? t.data->Sup.len : 0)-1);
			T9_ = (NIM_BOOL)0;
			T9_ = isFilled__5Qpmu5QqwDY0esVXn6wf7wtables(t.data->data[h].Field0);
			if (!T9_) goto LA8;
			{
				NIM_BOOL T12_;
				T12_ = (NIM_BOOL)0;
				if ((NU)(h) >= (NU)(t.data ? t.data->Sup.len : 0)) raiseIndexError2(h,(t.data ? t.data->Sup.len : 0)-1);
				T12_ = (t.data->data[h].Field0 == hc);
				if (!(T12_)) goto LA13_;
				if ((NU)(h) >= (NU)(t.data ? t.data->Sup.len : 0)) raiseIndexError2(h,(t.data ? t.data->Sup.len : 0)-1);
				T12_ = eqStrings(t.data->data[h].Field1, key);
				LA13_: ;
				if (!T12_) goto LA14_;
				result = h;
				goto BeforeRet_;
			}
			LA14_: ;
			T16_ = ((t.data ? t.data->Sup.len : 0)-1);
			h = nextTry__rkF6R1GhqjFh3qSAPaT2Cwtables(h, T16_);
		} LA8: ;
	}
	TM__4SoG2KRQy3oMm9aUzSLtGrA_151 = subInt(((NI) -1), h);
	result = (NI)(TM__4SoG2KRQy3oMm9aUzSLtGrA_151);
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, X5BX5Deq___HfxZpUfki4UkuP38hbwROA)(tyObject_Table__i55W8RrwGKsG9cl0sAKxgkQ* t, NimStringDesc* key, NI val) {	NI hc;
	NI index;
	{
		NI T3_;
		T3_ = ((*t).data ? (*t).data->Sup.len : 0);
		if (!(T3_ == ((NI) 0))) goto LA4_;
		{
			NIM_BOOL T8_;
			T8_ = (NIM_BOOL)0;
			T8_ = isPowerOfTwo__1xdTQapFveM9bImKot7h9cdw(((NI) 64));
			if (!!(T8_)) goto LA9_;
			failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__4SoG2KRQy3oMm9aUzSLtGrA_7));
		}
		LA9_: ;
		(*t).counter = ((NI) 0);
		unsureAsgnRef((void**) (&(*t).data), (tySequence__pUxI6Ljo6IKKHXKOZkQ7Og*) newSeq((&NTI__pUxI6Ljo6IKKHXKOZkQ7Og_), ((NI) 64)));
	}
	LA4_: ;
	hc = (NI)0;
	index = rawGet__hi24HVDthGVUIUfuDpjqIQtables((*t), key, (&hc));
	{
		if (!(((NI) 0) <= index)) goto LA13_;
		if ((NU)(index) >= (NU)((*t).data ? (*t).data->Sup.len : 0)) raiseIndexError2(index,((*t).data ? (*t).data->Sup.len : 0)-1);
		(*t).data->data[index].Field2 = val;
	}
	goto LA11_;
	LA13_: ;
	{
		NI TM__4SoG2KRQy3oMm9aUzSLtGrA_152;
		NI TM__4SoG2KRQy3oMm9aUzSLtGrA_153;
		{
			NI T18_;
			T18_ = ((*t).data ? (*t).data->Sup.len : 0);
			if (!(T18_ == ((NI) 0))) goto LA19_;
			{
				NIM_BOOL T23_;
				T23_ = (NIM_BOOL)0;
				T23_ = isPowerOfTwo__1xdTQapFveM9bImKot7h9cdw(((NI) 64));
				if (!!(T23_)) goto LA24_;
				failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__4SoG2KRQy3oMm9aUzSLtGrA_7));
			}
			LA24_: ;
			(*t).counter = ((NI) 0);
			unsureAsgnRef((void**) (&(*t).data), (tySequence__pUxI6Ljo6IKKHXKOZkQ7Og*) newSeq((&NTI__pUxI6Ljo6IKKHXKOZkQ7Og_), ((NI) 64)));
		}
		LA19_: ;
		{
			NI T28_;
			NIM_BOOL T29_;
			T28_ = ((*t).data ? (*t).data->Sup.len : 0);
			T29_ = (NIM_BOOL)0;
			T29_ = mustRehash__qu7bkfOlld3ZqX4akPQiHwtables(T28_, (*t).counter);
			if (!T29_) goto LA30_;
			enlarge__VYLD6MqB59amU6bk9ahC8zNw(t);
			index = rawGetKnownHC__so4qfaUZuauODRq3tIG3Igtables((*t), key, hc);
		}
		LA30_: ;
		TM__4SoG2KRQy3oMm9aUzSLtGrA_152 = subInt(((NI) -1), index);
		index = (NI)(TM__4SoG2KRQy3oMm9aUzSLtGrA_152);
		rawInsert__K9c1MhW8jYPmeOjDdrH9ajyg(t, (&(*t).data), key, val, hc, index);
		TM__4SoG2KRQy3oMm9aUzSLtGrA_153 = addInt((*t).counter, ((NI) 1));
		(*t).counter = (NI)(TM__4SoG2KRQy3oMm9aUzSLtGrA_153);
	}
	LA11_: ;
}
N_LIB_PRIVATE N_NIMCALL(NI, getOrDefault__B9adUqknApMjE6ou13bpO8A)(tyObject_Table__i55W8RrwGKsG9cl0sAKxgkQ t, NimStringDesc* key) {	NI result;
	NI hcX60gensym651186_;
	NI indexX60gensym651187_;
	result = (NI)0;
	hcX60gensym651186_ = (NI)0;
	indexX60gensym651187_ = rawGet__hi24HVDthGVUIUfuDpjqIQtables(t, key, (&hcX60gensym651186_));
	{
		if (!(((NI) 0) <= indexX60gensym651187_)) goto LA3_;
		if ((NU)(indexX60gensym651187_) >= (NU)(t.data ? t.data->Sup.len : 0)) raiseIndexError2(indexX60gensym651187_,(t.data ? t.data->Sup.len : 0)-1);
		result = t.data->data[indexX60gensym651187_].Field2;
	}
	LA3_: ;
	return result;
}
static N_NIMCALL(void, Marker_tySequence__wAC0kXbVGkLoWP8vdi0sUw)(void* p, NI op) {
	tySequence__wAC0kXbVGkLoWP8vdi0sUw* a;
	NI T1_;
	a = (tySequence__wAC0kXbVGkLoWP8vdi0sUw*)p;
	T1_ = (NI)0;
	for (T1_ = 0; T1_ < (a ? a->Sup.len : 0); T1_++) {
	nimGCvisit((void*)a->data[T1_].Field1.keyword, op);
	nimGCvisit((void*)a->data[T1_].Field1.link, op);
	nimGCvisit((void*)a->data[T1_].Field1.linkTitle, op);
	nimGCvisit((void*)a->data[T1_].Field1.linkDesc, op);
	nimGCvisit((void*)a->data[T1_].Field2, op);
	}
}
N_LIB_PRIVATE N_NIMCALL(void, initTable__I9aPNnheGFL82i9cc5xQlxyA)(NI initialSize, tyObject_Table__XC01wkRgzAyOjTiapde7hQ* Result) {	chckNil((void*)Result);
	genericReset((void*)Result, (&NTI__XC01wkRgzAyOjTiapde7hQ_));
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = isPowerOfTwo__1xdTQapFveM9bImKot7h9cdw(initialSize);
		if (!!(T3_)) goto LA4_;
		failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__4SoG2KRQy3oMm9aUzSLtGrA_4));
	}
	LA4_: ;
	(*Result).counter = ((NI) 0);
	unsureAsgnRef((void**) (&(*Result).data), (tySequence__wAC0kXbVGkLoWP8vdi0sUw*) newSeq((&NTI__wAC0kXbVGkLoWP8vdi0sUw_), ((NI)chckRange(initialSize, ((NI) 0), ((NI) IL64(9223372036854775807))))));
}
N_LIB_PRIVATE N_NIMCALL(NI, len__XkMbL52cqyBSUFesQIX9bTA)(tyObject_Table__XC01wkRgzAyOjTiapde7hQ t) {	NI result;
	result = (NI)0;
	result = t.counter;
	return result;
}
static N_INLINE(NI, rawGet__amoK2sCC6NAXbAYzoteO2wtables)(tyObject_Table__XC01wkRgzAyOjTiapde7hQ t, tyObject_IndexEntry__G9ccBDFWfr9aYnLgXTNGDHDg* key, NI* hc) {	NI result;
	NI h;
	NI T10_;
	NI TM__4SoG2KRQy3oMm9aUzSLtGrA_156;
{	result = (NI)0;
	(*hc) = hash__qsZ1IgNQkpu0AbMu0eEzCQ(key);
	{
		if (!((*hc) == ((NI) 0))) goto LA3_;
		(*hc) = ((NI) 314159265);
	}
	LA3_: ;
	{
		NI T7_;
		T7_ = (t.data ? t.data->Sup.len : 0);
		if (!(T7_ == ((NI) 0))) goto LA8_;
		result = ((NI) -1);
		goto BeforeRet_;
	}
	LA8_: ;
	T10_ = ((t.data ? t.data->Sup.len : 0)-1);
	h = (NI)((*hc) & T10_);
	{
		while (1) {
			NIM_BOOL T13_;
			NI T20_;
			if ((NU)(h) >= (NU)(t.data ? t.data->Sup.len : 0)) raiseIndexError2(h,(t.data ? t.data->Sup.len : 0)-1);
			T13_ = (NIM_BOOL)0;
			T13_ = isFilled__5Qpmu5QqwDY0esVXn6wf7wtables(t.data->data[h].Field0);
			if (!T13_) goto LA12;
			{
				NIM_BOOL T16_;
				T16_ = (NIM_BOOL)0;
				if ((NU)(h) >= (NU)(t.data ? t.data->Sup.len : 0)) raiseIndexError2(h,(t.data ? t.data->Sup.len : 0)-1);
				T16_ = (t.data->data[h].Field0 == (*hc));
				if (!(T16_)) goto LA17_;
				if ((NU)(h) >= (NU)(t.data ? t.data->Sup.len : 0)) raiseIndexError2(h,(t.data ? t.data->Sup.len : 0)-1);
				T16_ = eqeq___Z149cxs9a8jIB6voh7d344JA((&t.data->data[h].Field1), key);
				LA17_: ;
				if (!T16_) goto LA18_;
				result = h;
				goto BeforeRet_;
			}
			LA18_: ;
			T20_ = ((t.data ? t.data->Sup.len : 0)-1);
			h = nextTry__rkF6R1GhqjFh3qSAPaT2Cwtables(h, T20_);
		} LA12: ;
	}
	TM__4SoG2KRQy3oMm9aUzSLtGrA_156 = subInt(((NI) -1), h);
	result = (NI)(TM__4SoG2KRQy3oMm9aUzSLtGrA_156);
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, rawInsert__5biQFmkRUjJPNto9cNutA9bw)(tyObject_Table__XC01wkRgzAyOjTiapde7hQ* t, tySequence__wAC0kXbVGkLoWP8vdi0sUw** data, tyObject_IndexEntry__G9ccBDFWfr9aYnLgXTNGDHDg* key, tySequence__5PunAJrNQYcB8dF0jau3pQ* val, NI hc, NI h) {	NimStringDesc* T1_;
	NimStringDesc* T2_;
	NimStringDesc* T3_;
	NimStringDesc* T4_;
	if ((NU)(h) >= (NU)((*data) ? (*data)->Sup.len : 0)) raiseIndexError2(h,((*data) ? (*data)->Sup.len : 0)-1);
	T1_ = (NimStringDesc*)0;
	T1_ = (*data)->data[h].Field1.keyword; (*data)->data[h].Field1.keyword = copyStringRC1((*key).keyword);
	if (T1_) nimGCunrefNoCycle(T1_);
	T2_ = (NimStringDesc*)0;
	T2_ = (*data)->data[h].Field1.link; (*data)->data[h].Field1.link = copyStringRC1((*key).link);
	if (T2_) nimGCunrefNoCycle(T2_);
	T3_ = (NimStringDesc*)0;
	T3_ = (*data)->data[h].Field1.linkTitle; (*data)->data[h].Field1.linkTitle = copyStringRC1((*key).linkTitle);
	if (T3_) nimGCunrefNoCycle(T3_);
	T4_ = (NimStringDesc*)0;
	T4_ = (*data)->data[h].Field1.linkDesc; (*data)->data[h].Field1.linkDesc = copyStringRC1((*key).linkDesc);
	if (T4_) nimGCunrefNoCycle(T4_);
	if ((NU)(h) >= (NU)((*data) ? (*data)->Sup.len : 0)) raiseIndexError2(h,((*data) ? (*data)->Sup.len : 0)-1);
	genericSeqAssign((&(*data)->data[h].Field2), val, (&NTI__5PunAJrNQYcB8dF0jau3pQ_));
	if ((NU)(h) >= (NU)((*data) ? (*data)->Sup.len : 0)) raiseIndexError2(h,((*data) ? (*data)->Sup.len : 0)-1);
	(*data)->data[h].Field0 = hc;
}
N_LIB_PRIVATE N_NIMCALL(void, enlarge__bYy9bKTH7krTyVnrGJtBKbg)(tyObject_Table__XC01wkRgzAyOjTiapde7hQ* t) {	tySequence__wAC0kXbVGkLoWP8vdi0sUw* n;
	NI T1_;
	NI TM__4SoG2KRQy3oMm9aUzSLtGrA_157;
	tySequence__wAC0kXbVGkLoWP8vdi0sUw* T2_;
	n = (tySequence__wAC0kXbVGkLoWP8vdi0sUw*)0;
	T1_ = ((*t).data ? (*t).data->Sup.len : 0);
	TM__4SoG2KRQy3oMm9aUzSLtGrA_157 = mulInt(T1_, ((NI) 2));
	n = (tySequence__wAC0kXbVGkLoWP8vdi0sUw*) newSeq((&NTI__wAC0kXbVGkLoWP8vdi0sUw_), ((NI)chckRange((NI)(TM__4SoG2KRQy3oMm9aUzSLtGrA_157), ((NI) 0), ((NI) IL64(9223372036854775807)))));
	T2_ = (tySequence__wAC0kXbVGkLoWP8vdi0sUw*)0;
	T2_ = (*t).data;
	unsureAsgnRef((void**) (&(*t).data), n);
	n = T2_;
	{
		NI i;
		NI colontmp_;
		NI T4_;
		NI res;
		i = (NI)0;
		colontmp_ = (NI)0;
		T4_ = ((n ? n->Sup.len : 0)-1);
		colontmp_ = T4_;
		res = ((NI) 0);
		{
			while (1) {
				NI eh;
				NI TM__4SoG2KRQy3oMm9aUzSLtGrA_158;
				if (!(res <= colontmp_)) goto LA6;
				i = res;
				if ((NU)(i) >= (NU)(n ? n->Sup.len : 0)) raiseIndexError2(i,(n ? n->Sup.len : 0)-1);
				eh = n->data[i].Field0;
				{
					NIM_BOOL T9_;
					NI j;
					NI T12_;
					tyObject_IndexEntry__G9ccBDFWfr9aYnLgXTNGDHDg T17_;
					tySequence__5PunAJrNQYcB8dF0jau3pQ* T18_;
					T9_ = (NIM_BOOL)0;
					T9_ = isFilled__5Qpmu5QqwDY0esVXn6wf7wtables(eh);
					if (!T9_) goto LA10_;
					T12_ = (((*t).data ? (*t).data->Sup.len : 0)-1);
					j = (NI)(eh & T12_);
					{
						while (1) {
							NIM_BOOL T15_;
							NI T16_;
							if ((NU)(j) >= (NU)((*t).data ? (*t).data->Sup.len : 0)) raiseIndexError2(j,((*t).data ? (*t).data->Sup.len : 0)-1);
							T15_ = (NIM_BOOL)0;
							T15_ = isFilled__5Qpmu5QqwDY0esVXn6wf7wtables((*t).data->data[j].Field0);
							if (!T15_) goto LA14;
							T16_ = (((*t).data ? (*t).data->Sup.len : 0)-1);
							j = nextTry__rkF6R1GhqjFh3qSAPaT2Cwtables(j, T16_);
						} LA14: ;
					}
					if ((NU)(i) >= (NU)(n ? n->Sup.len : 0)) raiseIndexError2(i,(n ? n->Sup.len : 0)-1);
					nimZeroMem((void*)(&T17_), sizeof(tyObject_IndexEntry__G9ccBDFWfr9aYnLgXTNGDHDg));
					T17_.keyword = n->data[i].Field1.keyword;
					T17_.link = n->data[i].Field1.link;
					T17_.linkTitle = n->data[i].Field1.linkTitle;
					T17_.linkDesc = n->data[i].Field1.linkDesc;
					chckNil((void*)(&n->data[i].Field1));
					genericReset((void*)(&n->data[i].Field1), (&NTI__G9ccBDFWfr9aYnLgXTNGDHDg_));
					if ((NU)(i) >= (NU)(n ? n->Sup.len : 0)) raiseIndexError2(i,(n ? n->Sup.len : 0)-1);
					T18_ = (tySequence__5PunAJrNQYcB8dF0jau3pQ*)0;
					T18_ = n->data[i].Field2;
					asgnRef((void**) (&n->data[i].Field2), NIM_NIL);
					rawInsert__5biQFmkRUjJPNto9cNutA9bw(t, (&(*t).data), (&T17_), T18_, eh, j);
				}
				LA10_: ;
				TM__4SoG2KRQy3oMm9aUzSLtGrA_158 = addInt(res, ((NI) 1));
				res = (NI)(TM__4SoG2KRQy3oMm9aUzSLtGrA_158);
			} LA6: ;
		}
	}
}
static N_INLINE(NI, rawGetKnownHC__Y4x6AL1DTZHSh9bv7PGnpCwtables)(tyObject_Table__XC01wkRgzAyOjTiapde7hQ t, tyObject_IndexEntry__G9ccBDFWfr9aYnLgXTNGDHDg* key, NI hc) {	NI result;
	NI h;
	NI T6_;
	NI TM__4SoG2KRQy3oMm9aUzSLtGrA_159;
{	result = (NI)0;
	{
		NI T3_;
		T3_ = (t.data ? t.data->Sup.len : 0);
		if (!(T3_ == ((NI) 0))) goto LA4_;
		result = ((NI) -1);
		goto BeforeRet_;
	}
	LA4_: ;
	T6_ = ((t.data ? t.data->Sup.len : 0)-1);
	h = (NI)(hc & T6_);
	{
		while (1) {
			NIM_BOOL T9_;
			NI T16_;
			if ((NU)(h) >= (NU)(t.data ? t.data->Sup.len : 0)) raiseIndexError2(h,(t.data ? t.data->Sup.len : 0)-1);
			T9_ = (NIM_BOOL)0;
			T9_ = isFilled__5Qpmu5QqwDY0esVXn6wf7wtables(t.data->data[h].Field0);
			if (!T9_) goto LA8;
			{
				NIM_BOOL T12_;
				T12_ = (NIM_BOOL)0;
				if ((NU)(h) >= (NU)(t.data ? t.data->Sup.len : 0)) raiseIndexError2(h,(t.data ? t.data->Sup.len : 0)-1);
				T12_ = (t.data->data[h].Field0 == hc);
				if (!(T12_)) goto LA13_;
				if ((NU)(h) >= (NU)(t.data ? t.data->Sup.len : 0)) raiseIndexError2(h,(t.data ? t.data->Sup.len : 0)-1);
				T12_ = eqeq___Z149cxs9a8jIB6voh7d344JA((&t.data->data[h].Field1), key);
				LA13_: ;
				if (!T12_) goto LA14_;
				result = h;
				goto BeforeRet_;
			}
			LA14_: ;
			T16_ = ((t.data ? t.data->Sup.len : 0)-1);
			h = nextTry__rkF6R1GhqjFh3qSAPaT2Cwtables(h, T16_);
		} LA8: ;
	}
	TM__4SoG2KRQy3oMm9aUzSLtGrA_159 = subInt(((NI) -1), h);
	result = (NI)(TM__4SoG2KRQy3oMm9aUzSLtGrA_159);
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, X5BX5Deq___7WMJi0xLR1wauzIPHncLMA)(tyObject_Table__XC01wkRgzAyOjTiapde7hQ* t, tyObject_IndexEntry__G9ccBDFWfr9aYnLgXTNGDHDg* key, tySequence__5PunAJrNQYcB8dF0jau3pQ* val) {	NI hc;
	NI index;
	{
		NI T3_;
		T3_ = ((*t).data ? (*t).data->Sup.len : 0);
		if (!(T3_ == ((NI) 0))) goto LA4_;
		{
			NIM_BOOL T8_;
			T8_ = (NIM_BOOL)0;
			T8_ = isPowerOfTwo__1xdTQapFveM9bImKot7h9cdw(((NI) 64));
			if (!!(T8_)) goto LA9_;
			failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__4SoG2KRQy3oMm9aUzSLtGrA_7));
		}
		LA9_: ;
		(*t).counter = ((NI) 0);
		unsureAsgnRef((void**) (&(*t).data), (tySequence__wAC0kXbVGkLoWP8vdi0sUw*) newSeq((&NTI__wAC0kXbVGkLoWP8vdi0sUw_), ((NI) 64)));
	}
	LA4_: ;
	hc = (NI)0;
	index = rawGet__amoK2sCC6NAXbAYzoteO2wtables((*t), key, (&hc));
	{
		if (!(((NI) 0) <= index)) goto LA13_;
		if ((NU)(index) >= (NU)((*t).data ? (*t).data->Sup.len : 0)) raiseIndexError2(index,((*t).data ? (*t).data->Sup.len : 0)-1);
		genericSeqAssign((&(*t).data->data[index].Field2), val, (&NTI__5PunAJrNQYcB8dF0jau3pQ_));
	}
	goto LA11_;
	LA13_: ;
	{
		NI TM__4SoG2KRQy3oMm9aUzSLtGrA_160;
		NI TM__4SoG2KRQy3oMm9aUzSLtGrA_161;
		{
			NI T18_;
			T18_ = ((*t).data ? (*t).data->Sup.len : 0);
			if (!(T18_ == ((NI) 0))) goto LA19_;
			{
				NIM_BOOL T23_;
				T23_ = (NIM_BOOL)0;
				T23_ = isPowerOfTwo__1xdTQapFveM9bImKot7h9cdw(((NI) 64));
				if (!!(T23_)) goto LA24_;
				failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__4SoG2KRQy3oMm9aUzSLtGrA_7));
			}
			LA24_: ;
			(*t).counter = ((NI) 0);
			unsureAsgnRef((void**) (&(*t).data), (tySequence__wAC0kXbVGkLoWP8vdi0sUw*) newSeq((&NTI__wAC0kXbVGkLoWP8vdi0sUw_), ((NI) 64)));
		}
		LA19_: ;
		{
			NI T28_;
			NIM_BOOL T29_;
			T28_ = ((*t).data ? (*t).data->Sup.len : 0);
			T29_ = (NIM_BOOL)0;
			T29_ = mustRehash__qu7bkfOlld3ZqX4akPQiHwtables(T28_, (*t).counter);
			if (!T29_) goto LA30_;
			enlarge__bYy9bKTH7krTyVnrGJtBKbg(t);
			index = rawGetKnownHC__Y4x6AL1DTZHSh9bv7PGnpCwtables((*t), key, hc);
		}
		LA30_: ;
		TM__4SoG2KRQy3oMm9aUzSLtGrA_160 = subInt(((NI) -1), index);
		index = (NI)(TM__4SoG2KRQy3oMm9aUzSLtGrA_160);
		rawInsert__5biQFmkRUjJPNto9cNutA9bw(t, (&(*t).data), key, val, hc, index);
		TM__4SoG2KRQy3oMm9aUzSLtGrA_161 = addInt((*t).counter, ((NI) 1));
		(*t).counter = (NI)(TM__4SoG2KRQy3oMm9aUzSLtGrA_161);
	}
	LA11_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, initTable__w3hW0l8agm6xMv9afJe9aiRw)(NI initialSize, tyObject_Table__fdKWDDO1P17zvuQPReVgRA* Result) {	chckNil((void*)Result);
	genericReset((void*)Result, (&NTI__fdKWDDO1P17zvuQPReVgRA_));
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = isPowerOfTwo__1xdTQapFveM9bImKot7h9cdw(initialSize);
		if (!!(T3_)) goto LA4_;
		failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__4SoG2KRQy3oMm9aUzSLtGrA_4));
	}
	LA4_: ;
	(*Result).counter = ((NI) 0);
	unsureAsgnRef((void**) (&(*Result).data), (tySequence__fdmz6VkIf1ewwrssKYqRFg*) newSeq((&NTI__fdmz6VkIf1ewwrssKYqRFg_), ((NI)chckRange(initialSize, ((NI) 0), ((NI) IL64(9223372036854775807))))));
}
N_LIB_PRIVATE N_NIMCALL(void, initTable__CaVonymNJD1dGAhApMbV2g)(NI initialSize, tyObject_Table__e2Ciu0s1q49aVQ7ULXy7l9bQ* Result) {	chckNil((void*)Result);
	genericReset((void*)Result, (&NTI__e2Ciu0s1q49aVQ7ULXy7l9bQ_));
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = isPowerOfTwo__1xdTQapFveM9bImKot7h9cdw(initialSize);
		if (!!(T3_)) goto LA4_;
		failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__4SoG2KRQy3oMm9aUzSLtGrA_4));
	}
	LA4_: ;
	(*Result).counter = ((NI) 0);
	unsureAsgnRef((void**) (&(*Result).data), (tySequence__kxu4GK0onha2t9bo86mdVAg*) newSeq((&NTI__kxu4GK0onha2t9bo86mdVAg_), ((NI)chckRange(initialSize, ((NI) 0), ((NI) IL64(9223372036854775807))))));
}
N_LIB_PRIVATE N_NIMCALL(void, initTable__nbdg1XkakWibhw6meLxFVg)(NI initialSize, tyObject_Table__0Y2brGGKD9bV6GJLXT9aUDgA* Result) {	chckNil((void*)Result);
	genericReset((void*)Result, (&NTI__0Y2brGGKD9bV6GJLXT9aUDgA_));
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = isPowerOfTwo__1xdTQapFveM9bImKot7h9cdw(initialSize);
		if (!!(T3_)) goto LA4_;
		failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__4SoG2KRQy3oMm9aUzSLtGrA_4));
	}
	LA4_: ;
	(*Result).counter = ((NI) 0);
	unsureAsgnRef((void**) (&(*Result).data), (tySequence__23SMqauuRsbDANhthj9bWlA*) newSeq((&NTI__23SMqauuRsbDANhthj9bWlA_), ((NI)chckRange(initialSize, ((NI) 0), ((NI) IL64(9223372036854775807))))));
}
N_LIB_PRIVATE N_NIMCALL(void, initTable__2gDElK9agmPOHa6UVPYygZg)(NI initialSize, tyObject_Table__NttoEzoiq5CiphZe81oadg* Result) {	chckNil((void*)Result);
	genericReset((void*)Result, (&NTI__NttoEzoiq5CiphZe81oadg_));
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = isPowerOfTwo__1xdTQapFveM9bImKot7h9cdw(initialSize);
		if (!!(T3_)) goto LA4_;
		failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__4SoG2KRQy3oMm9aUzSLtGrA_4));
	}
	LA4_: ;
	(*Result).counter = ((NI) 0);
	unsureAsgnRef((void**) (&(*Result).data), (tySequence__squ9b9bUH4OLHf6cEMrt6hVA*) newSeq((&NTI__squ9b9bUH4OLHf6cEMrt6hVA_), ((NI)chckRange(initialSize, ((NI) 0), ((NI) IL64(9223372036854775807))))));
}
N_LIB_PRIVATE N_NIMCALL(void, initTable__Qp2wzR51fqIFP8LjGKEktQ)(NI initialSize, tyObject_Table__nagDFX4QHx0s6Fvma9blmSg* Result) {	chckNil((void*)Result);
	genericReset((void*)Result, (&NTI__nagDFX4QHx0s6Fvma9blmSg_));
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = isPowerOfTwo__1xdTQapFveM9bImKot7h9cdw(initialSize);
		if (!!(T3_)) goto LA4_;
		failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__4SoG2KRQy3oMm9aUzSLtGrA_4));
	}
	LA4_: ;
	(*Result).counter = ((NI) 0);
	unsureAsgnRef((void**) (&(*Result).data), (tySequence__pHNq3oXj9av2sEUdqaqeZjw*) newSeq((&NTI__pHNq3oXj9av2sEUdqaqeZjw_), ((NI)chckRange(initialSize, ((NI) 0), ((NI) IL64(9223372036854775807))))));
}
N_LIB_PRIVATE N_NIMCALL(void, initTable__SkNpgL9chjNeAljrvOTzV2Q)(NI initialSize, tyObject_Table__IioUJGdqPI6xC7S7QF8MBw* Result) {	chckNil((void*)Result);
	genericReset((void*)Result, (&NTI__IioUJGdqPI6xC7S7QF8MBw_));
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = isPowerOfTwo__1xdTQapFveM9bImKot7h9cdw(initialSize);
		if (!!(T3_)) goto LA4_;
		failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__4SoG2KRQy3oMm9aUzSLtGrA_4));
	}
	LA4_: ;
	(*Result).counter = ((NI) 0);
	unsureAsgnRef((void**) (&(*Result).data), (tySequence__Qr6E8eH7btq79cFKGaJfGLw*) newSeq((&NTI__Qr6E8eH7btq79cFKGaJfGLw_), ((NI)chckRange(initialSize, ((NI) 0), ((NI) IL64(9223372036854775807))))));
}
N_LIB_PRIVATE N_NIMCALL(void, initTable__DqzDsZYrt3ZYs1snAP7Uqw)(NI initialSize, tyObject_Table__G1v8c16HePOldLeucwe05Q* Result) {	chckNil((void*)Result);
	genericReset((void*)Result, (&NTI__G1v8c16HePOldLeucwe05Q_));
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = isPowerOfTwo__1xdTQapFveM9bImKot7h9cdw(initialSize);
		if (!!(T3_)) goto LA4_;
		failedAssertImpl__W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM__4SoG2KRQy3oMm9aUzSLtGrA_4));
	}
	LA4_: ;
	(*Result).counter = ((NI) 0);
	unsureAsgnRef((void**) (&(*Result).data), (tySequence__fIB1rTQ55aFonoft9a9bmljQ*) newSeq((&NTI__fIB1rTQ55aFonoft9a9bmljQ_), ((NI)chckRange(initialSize, ((NI) 0), ((NI) IL64(9223372036854775807))))));
}
N_LIB_PRIVATE N_NIMCALL(void, stdlib_tablesDatInit000)(void) {
static TNimNode* TM__4SoG2KRQy3oMm9aUzSLtGrA_2_2[2];
static TNimNode* TM__4SoG2KRQy3oMm9aUzSLtGrA_3_3[3];
static TNimNode* TM__4SoG2KRQy3oMm9aUzSLtGrA_17_2[2];
static TNimNode* TM__4SoG2KRQy3oMm9aUzSLtGrA_18_3[3];
static TNimNode* TM__4SoG2KRQy3oMm9aUzSLtGrA_26_2[2];
static TNimNode* TM__4SoG2KRQy3oMm9aUzSLtGrA_27_3[3];
static TNimNode* TM__4SoG2KRQy3oMm9aUzSLtGrA_28_2[2];
static TNimNode* TM__4SoG2KRQy3oMm9aUzSLtGrA_29_3[3];
static TNimNode* TM__4SoG2KRQy3oMm9aUzSLtGrA_30_2[2];
static TNimNode* TM__4SoG2KRQy3oMm9aUzSLtGrA_31_3[3];
static TNimNode* TM__4SoG2KRQy3oMm9aUzSLtGrA_32_2[2];
static TNimNode* TM__4SoG2KRQy3oMm9aUzSLtGrA_33_3[3];
static TNimNode* TM__4SoG2KRQy3oMm9aUzSLtGrA_34_2[2];
static TNimNode* TM__4SoG2KRQy3oMm9aUzSLtGrA_35_3[3];
static TNimNode* TM__4SoG2KRQy3oMm9aUzSLtGrA_36_2[2];
static TNimNode* TM__4SoG2KRQy3oMm9aUzSLtGrA_37_3[3];
static TNimNode* TM__4SoG2KRQy3oMm9aUzSLtGrA_38_2[2];
static TNimNode* TM__4SoG2KRQy3oMm9aUzSLtGrA_39_3[3];
static TNimNode* TM__4SoG2KRQy3oMm9aUzSLtGrA_46_2[2];
static TNimNode* TM__4SoG2KRQy3oMm9aUzSLtGrA_47_3[3];
static TNimNode* TM__4SoG2KRQy3oMm9aUzSLtGrA_54_2[2];
static TNimNode* TM__4SoG2KRQy3oMm9aUzSLtGrA_55_3[3];
static TNimNode* TM__4SoG2KRQy3oMm9aUzSLtGrA_86_2[2];
static TNimNode* TM__4SoG2KRQy3oMm9aUzSLtGrA_87_3[3];
static TNimNode* TM__4SoG2KRQy3oMm9aUzSLtGrA_94_2[2];
static TNimNode* TM__4SoG2KRQy3oMm9aUzSLtGrA_95_3[3];
static TNimNode* TM__4SoG2KRQy3oMm9aUzSLtGrA_96_3[3];
static TNimNode* TM__4SoG2KRQy3oMm9aUzSLtGrA_97_3[3];
static TNimNode* TM__4SoG2KRQy3oMm9aUzSLtGrA_98_2[2];
static TNimNode* TM__4SoG2KRQy3oMm9aUzSLtGrA_99_2[2];
static TNimNode* TM__4SoG2KRQy3oMm9aUzSLtGrA_100_3[3];
static TNimNode* TM__4SoG2KRQy3oMm9aUzSLtGrA_126_4[4];
static TNimNode* TM__4SoG2KRQy3oMm9aUzSLtGrA_127_4[4];
static TNimNode* TM__4SoG2KRQy3oMm9aUzSLtGrA_146_2[2];
static TNimNode* TM__4SoG2KRQy3oMm9aUzSLtGrA_147_3[3];
static TNimNode* TM__4SoG2KRQy3oMm9aUzSLtGrA_154_2[2];
static TNimNode* TM__4SoG2KRQy3oMm9aUzSLtGrA_155_3[3];
static TNimNode TM__4SoG2KRQy3oMm9aUzSLtGrA_0[133];
NTI__GpIQt2f0xrasZObyH6X8bg_.size = sizeof(tyObject_Table__GpIQt2f0xrasZObyH6X8bg);
NTI__GpIQt2f0xrasZObyH6X8bg_.kind = 18;
NTI__GpIQt2f0xrasZObyH6X8bg_.base = 0;
NTI__GpIQt2f0xrasZObyH6X8bg_.flags = 2;
TM__4SoG2KRQy3oMm9aUzSLtGrA_2_2[0] = &TM__4SoG2KRQy3oMm9aUzSLtGrA_0[1];
NTI__aGv2fk9ceddvdC01ZJC2Q2g_.size = sizeof(tyTuple__aGv2fk9ceddvdC01ZJC2Q2g);
NTI__aGv2fk9ceddvdC01ZJC2Q2g_.kind = 18;
NTI__aGv2fk9ceddvdC01ZJC2Q2g_.base = 0;
NTI__aGv2fk9ceddvdC01ZJC2Q2g_.flags = 3;
TM__4SoG2KRQy3oMm9aUzSLtGrA_3_3[0] = &TM__4SoG2KRQy3oMm9aUzSLtGrA_0[3];
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[3].kind = 1;
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[3].offset = offsetof(tyTuple__aGv2fk9ceddvdC01ZJC2Q2g, Field0);
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[3].typ = (&NTI__rR5Bzr1D5krxoo1NcNyeMA_);
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[3].name = "Field0";
TM__4SoG2KRQy3oMm9aUzSLtGrA_3_3[1] = &TM__4SoG2KRQy3oMm9aUzSLtGrA_0[4];
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[4].kind = 1;
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[4].offset = offsetof(tyTuple__aGv2fk9ceddvdC01ZJC2Q2g, Field1);
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[4].typ = (&NTI__vr5DoT1jILTGdRlYv1OYpw_);
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[4].name = "Field1";
TM__4SoG2KRQy3oMm9aUzSLtGrA_3_3[2] = &TM__4SoG2KRQy3oMm9aUzSLtGrA_0[5];
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[5].kind = 1;
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[5].offset = offsetof(tyTuple__aGv2fk9ceddvdC01ZJC2Q2g, Field2);
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[5].typ = (&NTI__rR5Bzr1D5krxoo1NcNyeMA_);
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[5].name = "Field2";
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[2].len = 3; TM__4SoG2KRQy3oMm9aUzSLtGrA_0[2].kind = 2; TM__4SoG2KRQy3oMm9aUzSLtGrA_0[2].sons = &TM__4SoG2KRQy3oMm9aUzSLtGrA_3_3[0];
NTI__aGv2fk9ceddvdC01ZJC2Q2g_.node = &TM__4SoG2KRQy3oMm9aUzSLtGrA_0[2];
NTI__9chP3SzkaldXzawWQCDsqqg_.size = sizeof(tySequence__9chP3SzkaldXzawWQCDsqqg*);
NTI__9chP3SzkaldXzawWQCDsqqg_.kind = 24;
NTI__9chP3SzkaldXzawWQCDsqqg_.base = (&NTI__aGv2fk9ceddvdC01ZJC2Q2g_);
NTI__9chP3SzkaldXzawWQCDsqqg_.flags = 2;
NTI__9chP3SzkaldXzawWQCDsqqg_.marker = Marker_tySequence__9chP3SzkaldXzawWQCDsqqg;
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[1].kind = 1;
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[1].offset = offsetof(tyObject_Table__GpIQt2f0xrasZObyH6X8bg, data);
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[1].typ = (&NTI__9chP3SzkaldXzawWQCDsqqg_);
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[1].name = "data";
TM__4SoG2KRQy3oMm9aUzSLtGrA_2_2[1] = &TM__4SoG2KRQy3oMm9aUzSLtGrA_0[6];
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[6].kind = 1;
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[6].offset = offsetof(tyObject_Table__GpIQt2f0xrasZObyH6X8bg, counter);
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[6].typ = (&NTI__rR5Bzr1D5krxoo1NcNyeMA_);
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[6].name = "counter";
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[0].len = 2; TM__4SoG2KRQy3oMm9aUzSLtGrA_0[0].kind = 2; TM__4SoG2KRQy3oMm9aUzSLtGrA_0[0].sons = &TM__4SoG2KRQy3oMm9aUzSLtGrA_2_2[0];
NTI__GpIQt2f0xrasZObyH6X8bg_.node = &TM__4SoG2KRQy3oMm9aUzSLtGrA_0[0];
NTI__Ab4q9c36aMR4mtkEOIBzdzA_.size = sizeof(tyObject_Table__Ab4q9c36aMR4mtkEOIBzdzA);
NTI__Ab4q9c36aMR4mtkEOIBzdzA_.kind = 18;
NTI__Ab4q9c36aMR4mtkEOIBzdzA_.base = 0;
NTI__Ab4q9c36aMR4mtkEOIBzdzA_.flags = 2;
TM__4SoG2KRQy3oMm9aUzSLtGrA_17_2[0] = &TM__4SoG2KRQy3oMm9aUzSLtGrA_0[8];
NTI__xYhUhS7X82rKTqbT9bRfCnw_.size = sizeof(tyTuple__xYhUhS7X82rKTqbT9bRfCnw);
NTI__xYhUhS7X82rKTqbT9bRfCnw_.kind = 18;
NTI__xYhUhS7X82rKTqbT9bRfCnw_.base = 0;
NTI__xYhUhS7X82rKTqbT9bRfCnw_.flags = 2;
TM__4SoG2KRQy3oMm9aUzSLtGrA_18_3[0] = &TM__4SoG2KRQy3oMm9aUzSLtGrA_0[10];
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[10].kind = 1;
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[10].offset = offsetof(tyTuple__xYhUhS7X82rKTqbT9bRfCnw, Field0);
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[10].typ = (&NTI__rR5Bzr1D5krxoo1NcNyeMA_);
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[10].name = "Field0";
TM__4SoG2KRQy3oMm9aUzSLtGrA_18_3[1] = &TM__4SoG2KRQy3oMm9aUzSLtGrA_0[11];
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[11].kind = 1;
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[11].offset = offsetof(tyTuple__xYhUhS7X82rKTqbT9bRfCnw, Field1);
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[11].typ = (&NTI__77mFvmsOLKik79ci2hXkHEg_);
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[11].name = "Field1";
TM__4SoG2KRQy3oMm9aUzSLtGrA_18_3[2] = &TM__4SoG2KRQy3oMm9aUzSLtGrA_0[12];
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[12].kind = 1;
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[12].offset = offsetof(tyTuple__xYhUhS7X82rKTqbT9bRfCnw, Field2);
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[12].typ = (&NTI__sVg18TP9cLifHyygRe9cro9aA_);
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[12].name = "Field2";
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[9].len = 3; TM__4SoG2KRQy3oMm9aUzSLtGrA_0[9].kind = 2; TM__4SoG2KRQy3oMm9aUzSLtGrA_0[9].sons = &TM__4SoG2KRQy3oMm9aUzSLtGrA_18_3[0];
NTI__xYhUhS7X82rKTqbT9bRfCnw_.node = &TM__4SoG2KRQy3oMm9aUzSLtGrA_0[9];
NTI__7lEisrXlQEzwtUKW5pzRCw_.size = sizeof(tySequence__7lEisrXlQEzwtUKW5pzRCw*);
NTI__7lEisrXlQEzwtUKW5pzRCw_.kind = 24;
NTI__7lEisrXlQEzwtUKW5pzRCw_.base = (&NTI__xYhUhS7X82rKTqbT9bRfCnw_);
NTI__7lEisrXlQEzwtUKW5pzRCw_.flags = 2;
NTI__7lEisrXlQEzwtUKW5pzRCw_.marker = Marker_tySequence__7lEisrXlQEzwtUKW5pzRCw;
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[8].kind = 1;
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[8].offset = offsetof(tyObject_Table__Ab4q9c36aMR4mtkEOIBzdzA, data);
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[8].typ = (&NTI__7lEisrXlQEzwtUKW5pzRCw_);
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[8].name = "data";
TM__4SoG2KRQy3oMm9aUzSLtGrA_17_2[1] = &TM__4SoG2KRQy3oMm9aUzSLtGrA_0[13];
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[13].kind = 1;
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[13].offset = offsetof(tyObject_Table__Ab4q9c36aMR4mtkEOIBzdzA, counter);
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[13].typ = (&NTI__rR5Bzr1D5krxoo1NcNyeMA_);
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[13].name = "counter";
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[7].len = 2; TM__4SoG2KRQy3oMm9aUzSLtGrA_0[7].kind = 2; TM__4SoG2KRQy3oMm9aUzSLtGrA_0[7].sons = &TM__4SoG2KRQy3oMm9aUzSLtGrA_17_2[0];
NTI__Ab4q9c36aMR4mtkEOIBzdzA_.node = &TM__4SoG2KRQy3oMm9aUzSLtGrA_0[7];
NTI__fdKWDDO1P17zvuQPReVgRA_.size = sizeof(tyObject_Table__fdKWDDO1P17zvuQPReVgRA);
NTI__fdKWDDO1P17zvuQPReVgRA_.kind = 18;
NTI__fdKWDDO1P17zvuQPReVgRA_.base = 0;
NTI__fdKWDDO1P17zvuQPReVgRA_.flags = 2;
TM__4SoG2KRQy3oMm9aUzSLtGrA_26_2[0] = &TM__4SoG2KRQy3oMm9aUzSLtGrA_0[15];
NTI__1mtQ8sCEE7DbfIuQciv9b5Q_.size = sizeof(tyTuple__1mtQ8sCEE7DbfIuQciv9b5Q);
NTI__1mtQ8sCEE7DbfIuQciv9b5Q_.kind = 18;
NTI__1mtQ8sCEE7DbfIuQciv9b5Q_.base = 0;
NTI__1mtQ8sCEE7DbfIuQciv9b5Q_.flags = 2;
TM__4SoG2KRQy3oMm9aUzSLtGrA_27_3[0] = &TM__4SoG2KRQy3oMm9aUzSLtGrA_0[17];
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[17].kind = 1;
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[17].offset = offsetof(tyTuple__1mtQ8sCEE7DbfIuQciv9b5Q, Field0);
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[17].typ = (&NTI__rR5Bzr1D5krxoo1NcNyeMA_);
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[17].name = "Field0";
TM__4SoG2KRQy3oMm9aUzSLtGrA_27_3[1] = &TM__4SoG2KRQy3oMm9aUzSLtGrA_0[18];
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[18].kind = 1;
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[18].offset = offsetof(tyTuple__1mtQ8sCEE7DbfIuQciv9b5Q, Field1);
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[18].typ = (&NTI__sVg18TP9cLifHyygRe9cro9aA_);
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[18].name = "Field1";
TM__4SoG2KRQy3oMm9aUzSLtGrA_27_3[2] = &TM__4SoG2KRQy3oMm9aUzSLtGrA_0[19];
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[19].kind = 1;
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[19].offset = offsetof(tyTuple__1mtQ8sCEE7DbfIuQciv9b5Q, Field2);
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[19].typ = (&NTI__48JTohSgTy339bRxHzUD8KA_);
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[19].name = "Field2";
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[16].len = 3; TM__4SoG2KRQy3oMm9aUzSLtGrA_0[16].kind = 2; TM__4SoG2KRQy3oMm9aUzSLtGrA_0[16].sons = &TM__4SoG2KRQy3oMm9aUzSLtGrA_27_3[0];
NTI__1mtQ8sCEE7DbfIuQciv9b5Q_.node = &TM__4SoG2KRQy3oMm9aUzSLtGrA_0[16];
NTI__fdmz6VkIf1ewwrssKYqRFg_.size = sizeof(tySequence__fdmz6VkIf1ewwrssKYqRFg*);
NTI__fdmz6VkIf1ewwrssKYqRFg_.kind = 24;
NTI__fdmz6VkIf1ewwrssKYqRFg_.base = (&NTI__1mtQ8sCEE7DbfIuQciv9b5Q_);
NTI__fdmz6VkIf1ewwrssKYqRFg_.flags = 2;
NTI__fdmz6VkIf1ewwrssKYqRFg_.marker = Marker_tySequence__fdmz6VkIf1ewwrssKYqRFg;
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[15].kind = 1;
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[15].offset = offsetof(tyObject_Table__fdKWDDO1P17zvuQPReVgRA, data);
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[15].typ = (&NTI__fdmz6VkIf1ewwrssKYqRFg_);
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[15].name = "data";
TM__4SoG2KRQy3oMm9aUzSLtGrA_26_2[1] = &TM__4SoG2KRQy3oMm9aUzSLtGrA_0[20];
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[20].kind = 1;
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[20].offset = offsetof(tyObject_Table__fdKWDDO1P17zvuQPReVgRA, counter);
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[20].typ = (&NTI__rR5Bzr1D5krxoo1NcNyeMA_);
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[20].name = "counter";
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[14].len = 2; TM__4SoG2KRQy3oMm9aUzSLtGrA_0[14].kind = 2; TM__4SoG2KRQy3oMm9aUzSLtGrA_0[14].sons = &TM__4SoG2KRQy3oMm9aUzSLtGrA_26_2[0];
NTI__fdKWDDO1P17zvuQPReVgRA_.node = &TM__4SoG2KRQy3oMm9aUzSLtGrA_0[14];
NTI__e2Ciu0s1q49aVQ7ULXy7l9bQ_.size = sizeof(tyObject_Table__e2Ciu0s1q49aVQ7ULXy7l9bQ);
NTI__e2Ciu0s1q49aVQ7ULXy7l9bQ_.kind = 18;
NTI__e2Ciu0s1q49aVQ7ULXy7l9bQ_.base = 0;
NTI__e2Ciu0s1q49aVQ7ULXy7l9bQ_.flags = 2;
TM__4SoG2KRQy3oMm9aUzSLtGrA_28_2[0] = &TM__4SoG2KRQy3oMm9aUzSLtGrA_0[22];
NTI__xDU9bZmv1ZbZkJDaATBekIQ_.size = sizeof(tyTuple__xDU9bZmv1ZbZkJDaATBekIQ);
NTI__xDU9bZmv1ZbZkJDaATBekIQ_.kind = 18;
NTI__xDU9bZmv1ZbZkJDaATBekIQ_.base = 0;
NTI__xDU9bZmv1ZbZkJDaATBekIQ_.flags = 3;
TM__4SoG2KRQy3oMm9aUzSLtGrA_29_3[0] = &TM__4SoG2KRQy3oMm9aUzSLtGrA_0[24];
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[24].kind = 1;
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[24].offset = offsetof(tyTuple__xDU9bZmv1ZbZkJDaATBekIQ, Field0);
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[24].typ = (&NTI__rR5Bzr1D5krxoo1NcNyeMA_);
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[24].name = "Field0";
TM__4SoG2KRQy3oMm9aUzSLtGrA_29_3[1] = &TM__4SoG2KRQy3oMm9aUzSLtGrA_0[25];
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[25].kind = 1;
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[25].offset = offsetof(tyTuple__xDU9bZmv1ZbZkJDaATBekIQ, Field1);
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[25].typ = (&NTI__sVg18TP9cLifHyygRe9cro9aA_);
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[25].name = "Field1";
TM__4SoG2KRQy3oMm9aUzSLtGrA_29_3[2] = &TM__4SoG2KRQy3oMm9aUzSLtGrA_0[26];
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[26].kind = 1;
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[26].offset = offsetof(tyTuple__xDU9bZmv1ZbZkJDaATBekIQ, Field2);
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[26].typ = (&NTI__sVg18TP9cLifHyygRe9cro9aA_);
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[26].name = "Field2";
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[23].len = 3; TM__4SoG2KRQy3oMm9aUzSLtGrA_0[23].kind = 2; TM__4SoG2KRQy3oMm9aUzSLtGrA_0[23].sons = &TM__4SoG2KRQy3oMm9aUzSLtGrA_29_3[0];
NTI__xDU9bZmv1ZbZkJDaATBekIQ_.node = &TM__4SoG2KRQy3oMm9aUzSLtGrA_0[23];
NTI__kxu4GK0onha2t9bo86mdVAg_.size = sizeof(tySequence__kxu4GK0onha2t9bo86mdVAg*);
NTI__kxu4GK0onha2t9bo86mdVAg_.kind = 24;
NTI__kxu4GK0onha2t9bo86mdVAg_.base = (&NTI__xDU9bZmv1ZbZkJDaATBekIQ_);
NTI__kxu4GK0onha2t9bo86mdVAg_.flags = 2;
NTI__kxu4GK0onha2t9bo86mdVAg_.marker = Marker_tySequence__kxu4GK0onha2t9bo86mdVAg;
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[22].kind = 1;
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[22].offset = offsetof(tyObject_Table__e2Ciu0s1q49aVQ7ULXy7l9bQ, data);
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[22].typ = (&NTI__kxu4GK0onha2t9bo86mdVAg_);
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[22].name = "data";
TM__4SoG2KRQy3oMm9aUzSLtGrA_28_2[1] = &TM__4SoG2KRQy3oMm9aUzSLtGrA_0[27];
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[27].kind = 1;
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[27].offset = offsetof(tyObject_Table__e2Ciu0s1q49aVQ7ULXy7l9bQ, counter);
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[27].typ = (&NTI__rR5Bzr1D5krxoo1NcNyeMA_);
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[27].name = "counter";
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[21].len = 2; TM__4SoG2KRQy3oMm9aUzSLtGrA_0[21].kind = 2; TM__4SoG2KRQy3oMm9aUzSLtGrA_0[21].sons = &TM__4SoG2KRQy3oMm9aUzSLtGrA_28_2[0];
NTI__e2Ciu0s1q49aVQ7ULXy7l9bQ_.node = &TM__4SoG2KRQy3oMm9aUzSLtGrA_0[21];
NTI__IioUJGdqPI6xC7S7QF8MBw_.size = sizeof(tyObject_Table__IioUJGdqPI6xC7S7QF8MBw);
NTI__IioUJGdqPI6xC7S7QF8MBw_.kind = 18;
NTI__IioUJGdqPI6xC7S7QF8MBw_.base = 0;
TM__4SoG2KRQy3oMm9aUzSLtGrA_30_2[0] = &TM__4SoG2KRQy3oMm9aUzSLtGrA_0[29];
NTI__EkGTYRWQ6y9cppXTlT8Xm5g_.size = sizeof(tyTuple__EkGTYRWQ6y9cppXTlT8Xm5g);
NTI__EkGTYRWQ6y9cppXTlT8Xm5g_.kind = 18;
NTI__EkGTYRWQ6y9cppXTlT8Xm5g_.base = 0;
TM__4SoG2KRQy3oMm9aUzSLtGrA_31_3[0] = &TM__4SoG2KRQy3oMm9aUzSLtGrA_0[31];
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[31].kind = 1;
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[31].offset = offsetof(tyTuple__EkGTYRWQ6y9cppXTlT8Xm5g, Field0);
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[31].typ = (&NTI__rR5Bzr1D5krxoo1NcNyeMA_);
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[31].name = "Field0";
TM__4SoG2KRQy3oMm9aUzSLtGrA_31_3[1] = &TM__4SoG2KRQy3oMm9aUzSLtGrA_0[32];
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[32].kind = 1;
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[32].offset = offsetof(tyTuple__EkGTYRWQ6y9cppXTlT8Xm5g, Field1);
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[32].typ = (&NTI__qtqsWM5aXmcpMIVmvq3kAA_);
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[32].name = "Field1";
TM__4SoG2KRQy3oMm9aUzSLtGrA_31_3[2] = &TM__4SoG2KRQy3oMm9aUzSLtGrA_0[33];
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[33].kind = 1;
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[33].offset = offsetof(tyTuple__EkGTYRWQ6y9cppXTlT8Xm5g, Field2);
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[33].typ = (&NTI__AgIT5feFR9a9aoVjv9cx2rOtg_);
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[33].name = "Field2";
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[30].len = 3; TM__4SoG2KRQy3oMm9aUzSLtGrA_0[30].kind = 2; TM__4SoG2KRQy3oMm9aUzSLtGrA_0[30].sons = &TM__4SoG2KRQy3oMm9aUzSLtGrA_31_3[0];
NTI__EkGTYRWQ6y9cppXTlT8Xm5g_.node = &TM__4SoG2KRQy3oMm9aUzSLtGrA_0[30];
NTI__Qr6E8eH7btq79cFKGaJfGLw_.size = sizeof(tySequence__Qr6E8eH7btq79cFKGaJfGLw*);
NTI__Qr6E8eH7btq79cFKGaJfGLw_.kind = 24;
NTI__Qr6E8eH7btq79cFKGaJfGLw_.base = (&NTI__EkGTYRWQ6y9cppXTlT8Xm5g_);
NTI__Qr6E8eH7btq79cFKGaJfGLw_.marker = Marker_tySequence__Qr6E8eH7btq79cFKGaJfGLw;
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[29].kind = 1;
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[29].offset = offsetof(tyObject_Table__IioUJGdqPI6xC7S7QF8MBw, data);
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[29].typ = (&NTI__Qr6E8eH7btq79cFKGaJfGLw_);
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[29].name = "data";
TM__4SoG2KRQy3oMm9aUzSLtGrA_30_2[1] = &TM__4SoG2KRQy3oMm9aUzSLtGrA_0[34];
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[34].kind = 1;
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[34].offset = offsetof(tyObject_Table__IioUJGdqPI6xC7S7QF8MBw, counter);
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[34].typ = (&NTI__rR5Bzr1D5krxoo1NcNyeMA_);
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[34].name = "counter";
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[28].len = 2; TM__4SoG2KRQy3oMm9aUzSLtGrA_0[28].kind = 2; TM__4SoG2KRQy3oMm9aUzSLtGrA_0[28].sons = &TM__4SoG2KRQy3oMm9aUzSLtGrA_30_2[0];
NTI__IioUJGdqPI6xC7S7QF8MBw_.node = &TM__4SoG2KRQy3oMm9aUzSLtGrA_0[28];
NTI__G1v8c16HePOldLeucwe05Q_.size = sizeof(tyObject_Table__G1v8c16HePOldLeucwe05Q);
NTI__G1v8c16HePOldLeucwe05Q_.kind = 18;
NTI__G1v8c16HePOldLeucwe05Q_.base = 0;
NTI__G1v8c16HePOldLeucwe05Q_.flags = 2;
TM__4SoG2KRQy3oMm9aUzSLtGrA_32_2[0] = &TM__4SoG2KRQy3oMm9aUzSLtGrA_0[36];
NTI__OJFzEczluV8Jmo9bRpBfkzw_.size = sizeof(tyTuple__OJFzEczluV8Jmo9bRpBfkzw);
NTI__OJFzEczluV8Jmo9bRpBfkzw_.kind = 18;
NTI__OJFzEczluV8Jmo9bRpBfkzw_.base = 0;
NTI__OJFzEczluV8Jmo9bRpBfkzw_.flags = 3;
TM__4SoG2KRQy3oMm9aUzSLtGrA_33_3[0] = &TM__4SoG2KRQy3oMm9aUzSLtGrA_0[38];
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[38].kind = 1;
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[38].offset = offsetof(tyTuple__OJFzEczluV8Jmo9bRpBfkzw, Field0);
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[38].typ = (&NTI__rR5Bzr1D5krxoo1NcNyeMA_);
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[38].name = "Field0";
TM__4SoG2KRQy3oMm9aUzSLtGrA_33_3[1] = &TM__4SoG2KRQy3oMm9aUzSLtGrA_0[39];
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[39].kind = 1;
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[39].offset = offsetof(tyTuple__OJFzEczluV8Jmo9bRpBfkzw, Field1);
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[39].typ = (&NTI__rR5Bzr1D5krxoo1NcNyeMA_);
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[39].name = "Field1";
TM__4SoG2KRQy3oMm9aUzSLtGrA_33_3[2] = &TM__4SoG2KRQy3oMm9aUzSLtGrA_0[40];
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[40].kind = 1;
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[40].offset = offsetof(tyTuple__OJFzEczluV8Jmo9bRpBfkzw, Field2);
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[40].typ = (&NTI__qtqsWM5aXmcpMIVmvq3kAA_);
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[40].name = "Field2";
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[37].len = 3; TM__4SoG2KRQy3oMm9aUzSLtGrA_0[37].kind = 2; TM__4SoG2KRQy3oMm9aUzSLtGrA_0[37].sons = &TM__4SoG2KRQy3oMm9aUzSLtGrA_33_3[0];
NTI__OJFzEczluV8Jmo9bRpBfkzw_.node = &TM__4SoG2KRQy3oMm9aUzSLtGrA_0[37];
NTI__fIB1rTQ55aFonoft9a9bmljQ_.size = sizeof(tySequence__fIB1rTQ55aFonoft9a9bmljQ*);
NTI__fIB1rTQ55aFonoft9a9bmljQ_.kind = 24;
NTI__fIB1rTQ55aFonoft9a9bmljQ_.base = (&NTI__OJFzEczluV8Jmo9bRpBfkzw_);
NTI__fIB1rTQ55aFonoft9a9bmljQ_.flags = 2;
NTI__fIB1rTQ55aFonoft9a9bmljQ_.marker = Marker_tySequence__fIB1rTQ55aFonoft9a9bmljQ;
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[36].kind = 1;
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[36].offset = offsetof(tyObject_Table__G1v8c16HePOldLeucwe05Q, data);
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[36].typ = (&NTI__fIB1rTQ55aFonoft9a9bmljQ_);
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[36].name = "data";
TM__4SoG2KRQy3oMm9aUzSLtGrA_32_2[1] = &TM__4SoG2KRQy3oMm9aUzSLtGrA_0[41];
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[41].kind = 1;
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[41].offset = offsetof(tyObject_Table__G1v8c16HePOldLeucwe05Q, counter);
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[41].typ = (&NTI__rR5Bzr1D5krxoo1NcNyeMA_);
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[41].name = "counter";
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[35].len = 2; TM__4SoG2KRQy3oMm9aUzSLtGrA_0[35].kind = 2; TM__4SoG2KRQy3oMm9aUzSLtGrA_0[35].sons = &TM__4SoG2KRQy3oMm9aUzSLtGrA_32_2[0];
NTI__G1v8c16HePOldLeucwe05Q_.node = &TM__4SoG2KRQy3oMm9aUzSLtGrA_0[35];
NTI__0Y2brGGKD9bV6GJLXT9aUDgA_.size = sizeof(tyObject_Table__0Y2brGGKD9bV6GJLXT9aUDgA);
NTI__0Y2brGGKD9bV6GJLXT9aUDgA_.kind = 18;
NTI__0Y2brGGKD9bV6GJLXT9aUDgA_.base = 0;
TM__4SoG2KRQy3oMm9aUzSLtGrA_34_2[0] = &TM__4SoG2KRQy3oMm9aUzSLtGrA_0[43];
NTI__2SGm9aGCXuo7XSQ9bqD29axXw_.size = sizeof(tyTuple__2SGm9aGCXuo7XSQ9bqD29axXw);
NTI__2SGm9aGCXuo7XSQ9bqD29axXw_.kind = 18;
NTI__2SGm9aGCXuo7XSQ9bqD29axXw_.base = 0;
TM__4SoG2KRQy3oMm9aUzSLtGrA_35_3[0] = &TM__4SoG2KRQy3oMm9aUzSLtGrA_0[45];
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[45].kind = 1;
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[45].offset = offsetof(tyTuple__2SGm9aGCXuo7XSQ9bqD29axXw, Field0);
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[45].typ = (&NTI__rR5Bzr1D5krxoo1NcNyeMA_);
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[45].name = "Field0";
TM__4SoG2KRQy3oMm9aUzSLtGrA_35_3[1] = &TM__4SoG2KRQy3oMm9aUzSLtGrA_0[46];
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[46].kind = 1;
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[46].offset = offsetof(tyTuple__2SGm9aGCXuo7XSQ9bqD29axXw, Field1);
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[46].typ = (&NTI__77mFvmsOLKik79ci2hXkHEg_);
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[46].name = "Field1";
TM__4SoG2KRQy3oMm9aUzSLtGrA_35_3[2] = &TM__4SoG2KRQy3oMm9aUzSLtGrA_0[47];
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[47].kind = 1;
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[47].offset = offsetof(tyTuple__2SGm9aGCXuo7XSQ9bqD29axXw, Field2);
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[47].typ = (&NTI__fKfcLzXYiz5jNu3NH3Tv8Q_);
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[47].name = "Field2";
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[44].len = 3; TM__4SoG2KRQy3oMm9aUzSLtGrA_0[44].kind = 2; TM__4SoG2KRQy3oMm9aUzSLtGrA_0[44].sons = &TM__4SoG2KRQy3oMm9aUzSLtGrA_35_3[0];
NTI__2SGm9aGCXuo7XSQ9bqD29axXw_.node = &TM__4SoG2KRQy3oMm9aUzSLtGrA_0[44];
NTI__23SMqauuRsbDANhthj9bWlA_.size = sizeof(tySequence__23SMqauuRsbDANhthj9bWlA*);
NTI__23SMqauuRsbDANhthj9bWlA_.kind = 24;
NTI__23SMqauuRsbDANhthj9bWlA_.base = (&NTI__2SGm9aGCXuo7XSQ9bqD29axXw_);
NTI__23SMqauuRsbDANhthj9bWlA_.marker = Marker_tySequence__23SMqauuRsbDANhthj9bWlA;
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[43].kind = 1;
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[43].offset = offsetof(tyObject_Table__0Y2brGGKD9bV6GJLXT9aUDgA, data);
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[43].typ = (&NTI__23SMqauuRsbDANhthj9bWlA_);
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[43].name = "data";
TM__4SoG2KRQy3oMm9aUzSLtGrA_34_2[1] = &TM__4SoG2KRQy3oMm9aUzSLtGrA_0[48];
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[48].kind = 1;
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[48].offset = offsetof(tyObject_Table__0Y2brGGKD9bV6GJLXT9aUDgA, counter);
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[48].typ = (&NTI__rR5Bzr1D5krxoo1NcNyeMA_);
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[48].name = "counter";
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[42].len = 2; TM__4SoG2KRQy3oMm9aUzSLtGrA_0[42].kind = 2; TM__4SoG2KRQy3oMm9aUzSLtGrA_0[42].sons = &TM__4SoG2KRQy3oMm9aUzSLtGrA_34_2[0];
NTI__0Y2brGGKD9bV6GJLXT9aUDgA_.node = &TM__4SoG2KRQy3oMm9aUzSLtGrA_0[42];
NTI__NttoEzoiq5CiphZe81oadg_.size = sizeof(tyObject_Table__NttoEzoiq5CiphZe81oadg);
NTI__NttoEzoiq5CiphZe81oadg_.kind = 18;
NTI__NttoEzoiq5CiphZe81oadg_.base = 0;
NTI__NttoEzoiq5CiphZe81oadg_.flags = 2;
TM__4SoG2KRQy3oMm9aUzSLtGrA_36_2[0] = &TM__4SoG2KRQy3oMm9aUzSLtGrA_0[50];
NTI__F3gkSrMB1qp2Tvf9bixVXwg_.size = sizeof(tyTuple__F3gkSrMB1qp2Tvf9bixVXwg);
NTI__F3gkSrMB1qp2Tvf9bixVXwg_.kind = 18;
NTI__F3gkSrMB1qp2Tvf9bixVXwg_.base = 0;
NTI__F3gkSrMB1qp2Tvf9bixVXwg_.flags = 2;
TM__4SoG2KRQy3oMm9aUzSLtGrA_37_3[0] = &TM__4SoG2KRQy3oMm9aUzSLtGrA_0[52];
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[52].kind = 1;
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[52].offset = offsetof(tyTuple__F3gkSrMB1qp2Tvf9bixVXwg, Field0);
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[52].typ = (&NTI__rR5Bzr1D5krxoo1NcNyeMA_);
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[52].name = "Field0";
TM__4SoG2KRQy3oMm9aUzSLtGrA_37_3[1] = &TM__4SoG2KRQy3oMm9aUzSLtGrA_0[53];
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[53].kind = 1;
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[53].offset = offsetof(tyTuple__F3gkSrMB1qp2Tvf9bixVXwg, Field1);
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[53].typ = (&NTI__77mFvmsOLKik79ci2hXkHEg_);
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[53].name = "Field1";
TM__4SoG2KRQy3oMm9aUzSLtGrA_37_3[2] = &TM__4SoG2KRQy3oMm9aUzSLtGrA_0[54];
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[54].kind = 1;
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[54].offset = offsetof(tyTuple__F3gkSrMB1qp2Tvf9bixVXwg, Field2);
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[54].typ = (&NTI__Aav8dQoMlCFnZRxA0IhTHQ_);
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[54].name = "Field2";
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[51].len = 3; TM__4SoG2KRQy3oMm9aUzSLtGrA_0[51].kind = 2; TM__4SoG2KRQy3oMm9aUzSLtGrA_0[51].sons = &TM__4SoG2KRQy3oMm9aUzSLtGrA_37_3[0];
NTI__F3gkSrMB1qp2Tvf9bixVXwg_.node = &TM__4SoG2KRQy3oMm9aUzSLtGrA_0[51];
NTI__squ9b9bUH4OLHf6cEMrt6hVA_.size = sizeof(tySequence__squ9b9bUH4OLHf6cEMrt6hVA*);
NTI__squ9b9bUH4OLHf6cEMrt6hVA_.kind = 24;
NTI__squ9b9bUH4OLHf6cEMrt6hVA_.base = (&NTI__F3gkSrMB1qp2Tvf9bixVXwg_);
NTI__squ9b9bUH4OLHf6cEMrt6hVA_.flags = 2;
NTI__squ9b9bUH4OLHf6cEMrt6hVA_.marker = Marker_tySequence__squ9b9bUH4OLHf6cEMrt6hVA;
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[50].kind = 1;
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[50].offset = offsetof(tyObject_Table__NttoEzoiq5CiphZe81oadg, data);
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[50].typ = (&NTI__squ9b9bUH4OLHf6cEMrt6hVA_);
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[50].name = "data";
TM__4SoG2KRQy3oMm9aUzSLtGrA_36_2[1] = &TM__4SoG2KRQy3oMm9aUzSLtGrA_0[55];
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[55].kind = 1;
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[55].offset = offsetof(tyObject_Table__NttoEzoiq5CiphZe81oadg, counter);
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[55].typ = (&NTI__rR5Bzr1D5krxoo1NcNyeMA_);
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[55].name = "counter";
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[49].len = 2; TM__4SoG2KRQy3oMm9aUzSLtGrA_0[49].kind = 2; TM__4SoG2KRQy3oMm9aUzSLtGrA_0[49].sons = &TM__4SoG2KRQy3oMm9aUzSLtGrA_36_2[0];
NTI__NttoEzoiq5CiphZe81oadg_.node = &TM__4SoG2KRQy3oMm9aUzSLtGrA_0[49];
NTI__nagDFX4QHx0s6Fvma9blmSg_.size = sizeof(tyObject_Table__nagDFX4QHx0s6Fvma9blmSg);
NTI__nagDFX4QHx0s6Fvma9blmSg_.kind = 18;
NTI__nagDFX4QHx0s6Fvma9blmSg_.base = 0;
TM__4SoG2KRQy3oMm9aUzSLtGrA_38_2[0] = &TM__4SoG2KRQy3oMm9aUzSLtGrA_0[57];
NTI__wcNatyuf8WOqAhGLhSvgiw_.size = sizeof(tyTuple__wcNatyuf8WOqAhGLhSvgiw);
NTI__wcNatyuf8WOqAhGLhSvgiw_.kind = 18;
NTI__wcNatyuf8WOqAhGLhSvgiw_.base = 0;
TM__4SoG2KRQy3oMm9aUzSLtGrA_39_3[0] = &TM__4SoG2KRQy3oMm9aUzSLtGrA_0[59];
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[59].kind = 1;
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[59].offset = offsetof(tyTuple__wcNatyuf8WOqAhGLhSvgiw, Field0);
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[59].typ = (&NTI__rR5Bzr1D5krxoo1NcNyeMA_);
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[59].name = "Field0";
TM__4SoG2KRQy3oMm9aUzSLtGrA_39_3[1] = &TM__4SoG2KRQy3oMm9aUzSLtGrA_0[60];
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[60].kind = 1;
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[60].offset = offsetof(tyTuple__wcNatyuf8WOqAhGLhSvgiw, Field1);
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[60].typ = (&NTI__77mFvmsOLKik79ci2hXkHEg_);
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[60].name = "Field1";
TM__4SoG2KRQy3oMm9aUzSLtGrA_39_3[2] = &TM__4SoG2KRQy3oMm9aUzSLtGrA_0[61];
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[61].kind = 1;
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[61].offset = offsetof(tyTuple__wcNatyuf8WOqAhGLhSvgiw, Field2);
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[61].typ = (&NTI__VZdzO0Tlflp7WMN4gS8oPg_);
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[61].name = "Field2";
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[58].len = 3; TM__4SoG2KRQy3oMm9aUzSLtGrA_0[58].kind = 2; TM__4SoG2KRQy3oMm9aUzSLtGrA_0[58].sons = &TM__4SoG2KRQy3oMm9aUzSLtGrA_39_3[0];
NTI__wcNatyuf8WOqAhGLhSvgiw_.node = &TM__4SoG2KRQy3oMm9aUzSLtGrA_0[58];
NTI__pHNq3oXj9av2sEUdqaqeZjw_.size = sizeof(tySequence__pHNq3oXj9av2sEUdqaqeZjw*);
NTI__pHNq3oXj9av2sEUdqaqeZjw_.kind = 24;
NTI__pHNq3oXj9av2sEUdqaqeZjw_.base = (&NTI__wcNatyuf8WOqAhGLhSvgiw_);
NTI__pHNq3oXj9av2sEUdqaqeZjw_.marker = Marker_tySequence__pHNq3oXj9av2sEUdqaqeZjw;
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[57].kind = 1;
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[57].offset = offsetof(tyObject_Table__nagDFX4QHx0s6Fvma9blmSg, data);
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[57].typ = (&NTI__pHNq3oXj9av2sEUdqaqeZjw_);
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[57].name = "data";
TM__4SoG2KRQy3oMm9aUzSLtGrA_38_2[1] = &TM__4SoG2KRQy3oMm9aUzSLtGrA_0[62];
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[62].kind = 1;
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[62].offset = offsetof(tyObject_Table__nagDFX4QHx0s6Fvma9blmSg, counter);
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[62].typ = (&NTI__rR5Bzr1D5krxoo1NcNyeMA_);
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[62].name = "counter";
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[56].len = 2; TM__4SoG2KRQy3oMm9aUzSLtGrA_0[56].kind = 2; TM__4SoG2KRQy3oMm9aUzSLtGrA_0[56].sons = &TM__4SoG2KRQy3oMm9aUzSLtGrA_38_2[0];
NTI__nagDFX4QHx0s6Fvma9blmSg_.node = &TM__4SoG2KRQy3oMm9aUzSLtGrA_0[56];
NTI__Os4it9bmHnOQtsd5CqH09aRQ_.size = sizeof(tyObject_Table__Os4it9bmHnOQtsd5CqH09aRQ);
NTI__Os4it9bmHnOQtsd5CqH09aRQ_.kind = 18;
NTI__Os4it9bmHnOQtsd5CqH09aRQ_.base = 0;
TM__4SoG2KRQy3oMm9aUzSLtGrA_46_2[0] = &TM__4SoG2KRQy3oMm9aUzSLtGrA_0[64];
NTI__YGgHblKlCINajXDZno8UTQ_.size = sizeof(tyTuple__YGgHblKlCINajXDZno8UTQ);
NTI__YGgHblKlCINajXDZno8UTQ_.kind = 18;
NTI__YGgHblKlCINajXDZno8UTQ_.base = 0;
TM__4SoG2KRQy3oMm9aUzSLtGrA_47_3[0] = &TM__4SoG2KRQy3oMm9aUzSLtGrA_0[66];
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[66].kind = 1;
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[66].offset = offsetof(tyTuple__YGgHblKlCINajXDZno8UTQ, Field0);
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[66].typ = (&NTI__rR5Bzr1D5krxoo1NcNyeMA_);
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[66].name = "Field0";
TM__4SoG2KRQy3oMm9aUzSLtGrA_47_3[1] = &TM__4SoG2KRQy3oMm9aUzSLtGrA_0[67];
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[67].kind = 1;
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[67].offset = offsetof(tyTuple__YGgHblKlCINajXDZno8UTQ, Field1);
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[67].typ = (&NTI__rR5Bzr1D5krxoo1NcNyeMA_);
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[67].name = "Field1";
TM__4SoG2KRQy3oMm9aUzSLtGrA_47_3[2] = &TM__4SoG2KRQy3oMm9aUzSLtGrA_0[68];
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[68].kind = 1;
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[68].offset = offsetof(tyTuple__YGgHblKlCINajXDZno8UTQ, Field2);
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[68].typ = (&NTI__AgIT5feFR9a9aoVjv9cx2rOtg_);
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[68].name = "Field2";
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[65].len = 3; TM__4SoG2KRQy3oMm9aUzSLtGrA_0[65].kind = 2; TM__4SoG2KRQy3oMm9aUzSLtGrA_0[65].sons = &TM__4SoG2KRQy3oMm9aUzSLtGrA_47_3[0];
NTI__YGgHblKlCINajXDZno8UTQ_.node = &TM__4SoG2KRQy3oMm9aUzSLtGrA_0[65];
NTI__hLW2w9a9bDM1AHB8BIrU3BYw_.size = sizeof(tySequence__hLW2w9a9bDM1AHB8BIrU3BYw*);
NTI__hLW2w9a9bDM1AHB8BIrU3BYw_.kind = 24;
NTI__hLW2w9a9bDM1AHB8BIrU3BYw_.base = (&NTI__YGgHblKlCINajXDZno8UTQ_);
NTI__hLW2w9a9bDM1AHB8BIrU3BYw_.marker = Marker_tySequence__hLW2w9a9bDM1AHB8BIrU3BYw;
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[64].kind = 1;
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[64].offset = offsetof(tyObject_Table__Os4it9bmHnOQtsd5CqH09aRQ, data);
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[64].typ = (&NTI__hLW2w9a9bDM1AHB8BIrU3BYw_);
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[64].name = "data";
TM__4SoG2KRQy3oMm9aUzSLtGrA_46_2[1] = &TM__4SoG2KRQy3oMm9aUzSLtGrA_0[69];
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[69].kind = 1;
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[69].offset = offsetof(tyObject_Table__Os4it9bmHnOQtsd5CqH09aRQ, counter);
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[69].typ = (&NTI__rR5Bzr1D5krxoo1NcNyeMA_);
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[69].name = "counter";
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[63].len = 2; TM__4SoG2KRQy3oMm9aUzSLtGrA_0[63].kind = 2; TM__4SoG2KRQy3oMm9aUzSLtGrA_0[63].sons = &TM__4SoG2KRQy3oMm9aUzSLtGrA_46_2[0];
NTI__Os4it9bmHnOQtsd5CqH09aRQ_.node = &TM__4SoG2KRQy3oMm9aUzSLtGrA_0[63];
NTI__JrI9bTpOVccKpiJXKOskjFg_.size = sizeof(tyObject_Table__JrI9bTpOVccKpiJXKOskjFg);
NTI__JrI9bTpOVccKpiJXKOskjFg_.kind = 18;
NTI__JrI9bTpOVccKpiJXKOskjFg_.base = 0;
TM__4SoG2KRQy3oMm9aUzSLtGrA_54_2[0] = &TM__4SoG2KRQy3oMm9aUzSLtGrA_0[71];
NTI__Wymbvuvlf49clEgp9bKoFN9bw_.size = sizeof(tyTuple__Wymbvuvlf49clEgp9bKoFN9bw);
NTI__Wymbvuvlf49clEgp9bKoFN9bw_.kind = 18;
NTI__Wymbvuvlf49clEgp9bKoFN9bw_.base = 0;
TM__4SoG2KRQy3oMm9aUzSLtGrA_55_3[0] = &TM__4SoG2KRQy3oMm9aUzSLtGrA_0[73];
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[73].kind = 1;
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[73].offset = offsetof(tyTuple__Wymbvuvlf49clEgp9bKoFN9bw, Field0);
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[73].typ = (&NTI__rR5Bzr1D5krxoo1NcNyeMA_);
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[73].name = "Field0";
TM__4SoG2KRQy3oMm9aUzSLtGrA_55_3[1] = &TM__4SoG2KRQy3oMm9aUzSLtGrA_0[74];
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[74].kind = 1;
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[74].offset = offsetof(tyTuple__Wymbvuvlf49clEgp9bKoFN9bw, Field1);
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[74].typ = (&NTI__rR5Bzr1D5krxoo1NcNyeMA_);
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[74].name = "Field1";
TM__4SoG2KRQy3oMm9aUzSLtGrA_55_3[2] = &TM__4SoG2KRQy3oMm9aUzSLtGrA_0[75];
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[75].kind = 1;
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[75].offset = offsetof(tyTuple__Wymbvuvlf49clEgp9bKoFN9bw, Field2);
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[75].typ = (&NTI__fKfcLzXYiz5jNu3NH3Tv8Q_);
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[75].name = "Field2";
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[72].len = 3; TM__4SoG2KRQy3oMm9aUzSLtGrA_0[72].kind = 2; TM__4SoG2KRQy3oMm9aUzSLtGrA_0[72].sons = &TM__4SoG2KRQy3oMm9aUzSLtGrA_55_3[0];
NTI__Wymbvuvlf49clEgp9bKoFN9bw_.node = &TM__4SoG2KRQy3oMm9aUzSLtGrA_0[72];
NTI__YuKuU17u5ApAIki23DK9bJw_.size = sizeof(tySequence__YuKuU17u5ApAIki23DK9bJw*);
NTI__YuKuU17u5ApAIki23DK9bJw_.kind = 24;
NTI__YuKuU17u5ApAIki23DK9bJw_.base = (&NTI__Wymbvuvlf49clEgp9bKoFN9bw_);
NTI__YuKuU17u5ApAIki23DK9bJw_.marker = Marker_tySequence__YuKuU17u5ApAIki23DK9bJw;
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[71].kind = 1;
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[71].offset = offsetof(tyObject_Table__JrI9bTpOVccKpiJXKOskjFg, data);
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[71].typ = (&NTI__YuKuU17u5ApAIki23DK9bJw_);
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[71].name = "data";
TM__4SoG2KRQy3oMm9aUzSLtGrA_54_2[1] = &TM__4SoG2KRQy3oMm9aUzSLtGrA_0[76];
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[76].kind = 1;
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[76].offset = offsetof(tyObject_Table__JrI9bTpOVccKpiJXKOskjFg, counter);
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[76].typ = (&NTI__rR5Bzr1D5krxoo1NcNyeMA_);
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[76].name = "counter";
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[70].len = 2; TM__4SoG2KRQy3oMm9aUzSLtGrA_0[70].kind = 2; TM__4SoG2KRQy3oMm9aUzSLtGrA_0[70].sons = &TM__4SoG2KRQy3oMm9aUzSLtGrA_54_2[0];
NTI__JrI9bTpOVccKpiJXKOskjFg_.node = &TM__4SoG2KRQy3oMm9aUzSLtGrA_0[70];
NTI__7O9bs4LORhqcR0JGh7d1MDg_.size = sizeof(tyObject_Table__7O9bs4LORhqcR0JGh7d1MDg);
NTI__7O9bs4LORhqcR0JGh7d1MDg_.kind = 18;
NTI__7O9bs4LORhqcR0JGh7d1MDg_.base = 0;
TM__4SoG2KRQy3oMm9aUzSLtGrA_86_2[0] = &TM__4SoG2KRQy3oMm9aUzSLtGrA_0[78];
NTI__8jHm6IGDGecciKpp2bTNxA_.size = sizeof(tyTuple__8jHm6IGDGecciKpp2bTNxA);
NTI__8jHm6IGDGecciKpp2bTNxA_.kind = 18;
NTI__8jHm6IGDGecciKpp2bTNxA_.base = 0;
TM__4SoG2KRQy3oMm9aUzSLtGrA_87_3[0] = &TM__4SoG2KRQy3oMm9aUzSLtGrA_0[80];
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[80].kind = 1;
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[80].offset = offsetof(tyTuple__8jHm6IGDGecciKpp2bTNxA, Field0);
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[80].typ = (&NTI__rR5Bzr1D5krxoo1NcNyeMA_);
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[80].name = "Field0";
TM__4SoG2KRQy3oMm9aUzSLtGrA_87_3[1] = &TM__4SoG2KRQy3oMm9aUzSLtGrA_0[81];
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[81].kind = 1;
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[81].offset = offsetof(tyTuple__8jHm6IGDGecciKpp2bTNxA, Field1);
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[81].typ = (&NTI__Aav8dQoMlCFnZRxA0IhTHQ_);
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[81].name = "Field1";
TM__4SoG2KRQy3oMm9aUzSLtGrA_87_3[2] = &TM__4SoG2KRQy3oMm9aUzSLtGrA_0[82];
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[82].kind = 1;
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[82].offset = offsetof(tyTuple__8jHm6IGDGecciKpp2bTNxA, Field2);
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[82].typ = (&NTI__fKfcLzXYiz5jNu3NH3Tv8Q_);
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[82].name = "Field2";
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[79].len = 3; TM__4SoG2KRQy3oMm9aUzSLtGrA_0[79].kind = 2; TM__4SoG2KRQy3oMm9aUzSLtGrA_0[79].sons = &TM__4SoG2KRQy3oMm9aUzSLtGrA_87_3[0];
NTI__8jHm6IGDGecciKpp2bTNxA_.node = &TM__4SoG2KRQy3oMm9aUzSLtGrA_0[79];
NTI__s12F9c4cKfaapm8VzG9a1flQ_.size = sizeof(tySequence__s12F9c4cKfaapm8VzG9a1flQ*);
NTI__s12F9c4cKfaapm8VzG9a1flQ_.kind = 24;
NTI__s12F9c4cKfaapm8VzG9a1flQ_.base = (&NTI__8jHm6IGDGecciKpp2bTNxA_);
NTI__s12F9c4cKfaapm8VzG9a1flQ_.marker = Marker_tySequence__s12F9c4cKfaapm8VzG9a1flQ;
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[78].kind = 1;
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[78].offset = offsetof(tyObject_Table__7O9bs4LORhqcR0JGh7d1MDg, data);
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[78].typ = (&NTI__s12F9c4cKfaapm8VzG9a1flQ_);
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[78].name = "data";
TM__4SoG2KRQy3oMm9aUzSLtGrA_86_2[1] = &TM__4SoG2KRQy3oMm9aUzSLtGrA_0[83];
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[83].kind = 1;
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[83].offset = offsetof(tyObject_Table__7O9bs4LORhqcR0JGh7d1MDg, counter);
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[83].typ = (&NTI__rR5Bzr1D5krxoo1NcNyeMA_);
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[83].name = "counter";
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[77].len = 2; TM__4SoG2KRQy3oMm9aUzSLtGrA_0[77].kind = 2; TM__4SoG2KRQy3oMm9aUzSLtGrA_0[77].sons = &TM__4SoG2KRQy3oMm9aUzSLtGrA_86_2[0];
NTI__7O9bs4LORhqcR0JGh7d1MDg_.node = &TM__4SoG2KRQy3oMm9aUzSLtGrA_0[77];
NTI__gZ3EYQdz9coOB7ngN9a1cqwA_.size = sizeof(tyObject_Table__gZ3EYQdz9coOB7ngN9a1cqwA);
NTI__gZ3EYQdz9coOB7ngN9a1cqwA_.kind = 18;
NTI__gZ3EYQdz9coOB7ngN9a1cqwA_.base = 0;
TM__4SoG2KRQy3oMm9aUzSLtGrA_94_2[0] = &TM__4SoG2KRQy3oMm9aUzSLtGrA_0[85];
NTI__wROVfG5RQYpjEAhvO3LqdQ_.size = sizeof(tyTuple__wROVfG5RQYpjEAhvO3LqdQ);
NTI__wROVfG5RQYpjEAhvO3LqdQ_.kind = 18;
NTI__wROVfG5RQYpjEAhvO3LqdQ_.base = 0;
TM__4SoG2KRQy3oMm9aUzSLtGrA_95_3[0] = &TM__4SoG2KRQy3oMm9aUzSLtGrA_0[87];
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[87].kind = 1;
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[87].offset = offsetof(tyTuple__wROVfG5RQYpjEAhvO3LqdQ, Field0);
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[87].typ = (&NTI__rR5Bzr1D5krxoo1NcNyeMA_);
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[87].name = "Field0";
TM__4SoG2KRQy3oMm9aUzSLtGrA_95_3[1] = &TM__4SoG2KRQy3oMm9aUzSLtGrA_0[88];
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[88].kind = 1;
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[88].offset = offsetof(tyTuple__wROVfG5RQYpjEAhvO3LqdQ, Field1);
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[88].typ = (&NTI__qtqsWM5aXmcpMIVmvq3kAA_);
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[88].name = "Field1";
TM__4SoG2KRQy3oMm9aUzSLtGrA_95_3[2] = &TM__4SoG2KRQy3oMm9aUzSLtGrA_0[89];
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[89].kind = 1;
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[89].offset = offsetof(tyTuple__wROVfG5RQYpjEAhvO3LqdQ, Field2);
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[89].typ = (&NTI__4hi0XQqK9aLiPuWT9acsXm9aQ_);
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[89].name = "Field2";
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[86].len = 3; TM__4SoG2KRQy3oMm9aUzSLtGrA_0[86].kind = 2; TM__4SoG2KRQy3oMm9aUzSLtGrA_0[86].sons = &TM__4SoG2KRQy3oMm9aUzSLtGrA_95_3[0];
NTI__wROVfG5RQYpjEAhvO3LqdQ_.node = &TM__4SoG2KRQy3oMm9aUzSLtGrA_0[86];
NTI__sII3pVVRkIdBZ2HDPdZddA_.size = sizeof(tySequence__sII3pVVRkIdBZ2HDPdZddA*);
NTI__sII3pVVRkIdBZ2HDPdZddA_.kind = 24;
NTI__sII3pVVRkIdBZ2HDPdZddA_.base = (&NTI__wROVfG5RQYpjEAhvO3LqdQ_);
NTI__sII3pVVRkIdBZ2HDPdZddA_.marker = Marker_tySequence__sII3pVVRkIdBZ2HDPdZddA;
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[85].kind = 1;
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[85].offset = offsetof(tyObject_Table__gZ3EYQdz9coOB7ngN9a1cqwA, data);
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[85].typ = (&NTI__sII3pVVRkIdBZ2HDPdZddA_);
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[85].name = "data";
TM__4SoG2KRQy3oMm9aUzSLtGrA_94_2[1] = &TM__4SoG2KRQy3oMm9aUzSLtGrA_0[90];
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[90].kind = 1;
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[90].offset = offsetof(tyObject_Table__gZ3EYQdz9coOB7ngN9a1cqwA, counter);
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[90].typ = (&NTI__rR5Bzr1D5krxoo1NcNyeMA_);
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[90].name = "counter";
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[84].len = 2; TM__4SoG2KRQy3oMm9aUzSLtGrA_0[84].kind = 2; TM__4SoG2KRQy3oMm9aUzSLtGrA_0[84].sons = &TM__4SoG2KRQy3oMm9aUzSLtGrA_94_2[0];
NTI__gZ3EYQdz9coOB7ngN9a1cqwA_.node = &TM__4SoG2KRQy3oMm9aUzSLtGrA_0[84];
NTI__chlLjy9bvnFM9b9bSZfiIkyGg_.size = sizeof(tyObject_CountTable__chlLjy9bvnFM9b9bSZfiIkyGg);
NTI__chlLjy9bvnFM9b9bSZfiIkyGg_.kind = 18;
NTI__chlLjy9bvnFM9b9bSZfiIkyGg_.base = 0;
NTI__chlLjy9bvnFM9b9bSZfiIkyGg_.flags = 2;
TM__4SoG2KRQy3oMm9aUzSLtGrA_96_3[0] = &TM__4SoG2KRQy3oMm9aUzSLtGrA_0[92];
NTI__jwzrUFjG9akTIJTBBFvvqxw_.size = sizeof(tySequence__jwzrUFjG9akTIJTBBFvvqxw*);
NTI__jwzrUFjG9akTIJTBBFvvqxw_.kind = 24;
NTI__jwzrUFjG9akTIJTBBFvvqxw_.base = (&NTI__XOVT24GHXwqiEj5GCsEGCA_);
NTI__jwzrUFjG9akTIJTBBFvvqxw_.flags = 2;
NTI__jwzrUFjG9akTIJTBBFvvqxw_.marker = Marker_tySequence__jwzrUFjG9akTIJTBBFvvqxw;
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[92].kind = 1;
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[92].offset = offsetof(tyObject_CountTable__chlLjy9bvnFM9b9bSZfiIkyGg, data);
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[92].typ = (&NTI__jwzrUFjG9akTIJTBBFvvqxw_);
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[92].name = "data";
TM__4SoG2KRQy3oMm9aUzSLtGrA_96_3[1] = &TM__4SoG2KRQy3oMm9aUzSLtGrA_0[93];
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[93].kind = 1;
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[93].offset = offsetof(tyObject_CountTable__chlLjy9bvnFM9b9bSZfiIkyGg, counter);
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[93].typ = (&NTI__rR5Bzr1D5krxoo1NcNyeMA_);
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[93].name = "counter";
TM__4SoG2KRQy3oMm9aUzSLtGrA_96_3[2] = &TM__4SoG2KRQy3oMm9aUzSLtGrA_0[94];
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[94].kind = 1;
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[94].offset = offsetof(tyObject_CountTable__chlLjy9bvnFM9b9bSZfiIkyGg, isSorted);
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[94].typ = (&NTI__VaVACK0bpYmqIQ0mKcHfQQ_);
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[94].name = "isSorted";
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[91].len = 3; TM__4SoG2KRQy3oMm9aUzSLtGrA_0[91].kind = 2; TM__4SoG2KRQy3oMm9aUzSLtGrA_0[91].sons = &TM__4SoG2KRQy3oMm9aUzSLtGrA_96_3[0];
NTI__chlLjy9bvnFM9b9bSZfiIkyGg_.node = &TM__4SoG2KRQy3oMm9aUzSLtGrA_0[91];
NTI__tUMxxU9cRgLolsrW9b7IBGsQ_.size = sizeof(tyObject_CountTable__tUMxxU9cRgLolsrW9b7IBGsQ);
NTI__tUMxxU9cRgLolsrW9b7IBGsQ_.kind = 18;
NTI__tUMxxU9cRgLolsrW9b7IBGsQ_.base = 0;
NTI__tUMxxU9cRgLolsrW9b7IBGsQ_.flags = 2;
TM__4SoG2KRQy3oMm9aUzSLtGrA_97_3[0] = &TM__4SoG2KRQy3oMm9aUzSLtGrA_0[96];
NTI__tA7Q8IrfOKH7Mn89cK9cBAIg_.size = sizeof(tyTuple__tA7Q8IrfOKH7Mn89cK9cBAIg);
NTI__tA7Q8IrfOKH7Mn89cK9cBAIg_.kind = 18;
NTI__tA7Q8IrfOKH7Mn89cK9cBAIg_.base = 0;
NTI__tA7Q8IrfOKH7Mn89cK9cBAIg_.flags = 3;
TM__4SoG2KRQy3oMm9aUzSLtGrA_98_2[0] = &TM__4SoG2KRQy3oMm9aUzSLtGrA_0[98];
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[98].kind = 1;
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[98].offset = offsetof(tyTuple__tA7Q8IrfOKH7Mn89cK9cBAIg, Field0);
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[98].typ = (&NTI__qtqsWM5aXmcpMIVmvq3kAA_);
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[98].name = "Field0";
TM__4SoG2KRQy3oMm9aUzSLtGrA_98_2[1] = &TM__4SoG2KRQy3oMm9aUzSLtGrA_0[99];
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[99].kind = 1;
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[99].offset = offsetof(tyTuple__tA7Q8IrfOKH7Mn89cK9cBAIg, Field1);
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[99].typ = (&NTI__rR5Bzr1D5krxoo1NcNyeMA_);
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[99].name = "Field1";
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[97].len = 2; TM__4SoG2KRQy3oMm9aUzSLtGrA_0[97].kind = 2; TM__4SoG2KRQy3oMm9aUzSLtGrA_0[97].sons = &TM__4SoG2KRQy3oMm9aUzSLtGrA_98_2[0];
NTI__tA7Q8IrfOKH7Mn89cK9cBAIg_.node = &TM__4SoG2KRQy3oMm9aUzSLtGrA_0[97];
NTI__XUL1TrMU0tgXmaMFCIYgFQ_.size = sizeof(tySequence__XUL1TrMU0tgXmaMFCIYgFQ*);
NTI__XUL1TrMU0tgXmaMFCIYgFQ_.kind = 24;
NTI__XUL1TrMU0tgXmaMFCIYgFQ_.base = (&NTI__tA7Q8IrfOKH7Mn89cK9cBAIg_);
NTI__XUL1TrMU0tgXmaMFCIYgFQ_.flags = 2;
NTI__XUL1TrMU0tgXmaMFCIYgFQ_.marker = Marker_tySequence__XUL1TrMU0tgXmaMFCIYgFQ;
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[96].kind = 1;
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[96].offset = offsetof(tyObject_CountTable__tUMxxU9cRgLolsrW9b7IBGsQ, data);
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[96].typ = (&NTI__XUL1TrMU0tgXmaMFCIYgFQ_);
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[96].name = "data";
TM__4SoG2KRQy3oMm9aUzSLtGrA_97_3[1] = &TM__4SoG2KRQy3oMm9aUzSLtGrA_0[100];
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[100].kind = 1;
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[100].offset = offsetof(tyObject_CountTable__tUMxxU9cRgLolsrW9b7IBGsQ, counter);
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[100].typ = (&NTI__rR5Bzr1D5krxoo1NcNyeMA_);
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[100].name = "counter";
TM__4SoG2KRQy3oMm9aUzSLtGrA_97_3[2] = &TM__4SoG2KRQy3oMm9aUzSLtGrA_0[101];
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[101].kind = 1;
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[101].offset = offsetof(tyObject_CountTable__tUMxxU9cRgLolsrW9b7IBGsQ, isSorted);
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[101].typ = (&NTI__VaVACK0bpYmqIQ0mKcHfQQ_);
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[101].name = "isSorted";
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[95].len = 3; TM__4SoG2KRQy3oMm9aUzSLtGrA_0[95].kind = 2; TM__4SoG2KRQy3oMm9aUzSLtGrA_0[95].sons = &TM__4SoG2KRQy3oMm9aUzSLtGrA_97_3[0];
NTI__tUMxxU9cRgLolsrW9b7IBGsQ_.node = &TM__4SoG2KRQy3oMm9aUzSLtGrA_0[95];
NTI__6nOsw5R7jH72bux7HSST9bg_.size = sizeof(tyObject_Table__6nOsw5R7jH72bux7HSST9bg);
NTI__6nOsw5R7jH72bux7HSST9bg_.kind = 18;
NTI__6nOsw5R7jH72bux7HSST9bg_.base = 0;
TM__4SoG2KRQy3oMm9aUzSLtGrA_99_2[0] = &TM__4SoG2KRQy3oMm9aUzSLtGrA_0[103];
NTI__4keOEuB8uAwYehpErwqI9ag_.size = sizeof(tyTuple__4keOEuB8uAwYehpErwqI9ag);
NTI__4keOEuB8uAwYehpErwqI9ag_.kind = 18;
NTI__4keOEuB8uAwYehpErwqI9ag_.base = 0;
TM__4SoG2KRQy3oMm9aUzSLtGrA_100_3[0] = &TM__4SoG2KRQy3oMm9aUzSLtGrA_0[105];
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[105].kind = 1;
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[105].offset = offsetof(tyTuple__4keOEuB8uAwYehpErwqI9ag, Field0);
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[105].typ = (&NTI__rR5Bzr1D5krxoo1NcNyeMA_);
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[105].name = "Field0";
TM__4SoG2KRQy3oMm9aUzSLtGrA_100_3[1] = &TM__4SoG2KRQy3oMm9aUzSLtGrA_0[106];
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[106].kind = 1;
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[106].offset = offsetof(tyTuple__4keOEuB8uAwYehpErwqI9ag, Field1);
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[106].typ = (&NTI__qtqsWM5aXmcpMIVmvq3kAA_);
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[106].name = "Field1";
TM__4SoG2KRQy3oMm9aUzSLtGrA_100_3[2] = &TM__4SoG2KRQy3oMm9aUzSLtGrA_0[107];
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[107].kind = 1;
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[107].offset = offsetof(tyTuple__4keOEuB8uAwYehpErwqI9ag, Field2);
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[107].typ = (&NTI__Iz0jrTw3w7v6sMzjrqs0nA_);
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[107].name = "Field2";
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[104].len = 3; TM__4SoG2KRQy3oMm9aUzSLtGrA_0[104].kind = 2; TM__4SoG2KRQy3oMm9aUzSLtGrA_0[104].sons = &TM__4SoG2KRQy3oMm9aUzSLtGrA_100_3[0];
NTI__4keOEuB8uAwYehpErwqI9ag_.node = &TM__4SoG2KRQy3oMm9aUzSLtGrA_0[104];
NTI__diqJJ1bWuFP7M6rQDS9cBLQ_.size = sizeof(tySequence__diqJJ1bWuFP7M6rQDS9cBLQ*);
NTI__diqJJ1bWuFP7M6rQDS9cBLQ_.kind = 24;
NTI__diqJJ1bWuFP7M6rQDS9cBLQ_.base = (&NTI__4keOEuB8uAwYehpErwqI9ag_);
NTI__diqJJ1bWuFP7M6rQDS9cBLQ_.marker = Marker_tySequence__diqJJ1bWuFP7M6rQDS9cBLQ;
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[103].kind = 1;
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[103].offset = offsetof(tyObject_Table__6nOsw5R7jH72bux7HSST9bg, data);
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[103].typ = (&NTI__diqJJ1bWuFP7M6rQDS9cBLQ_);
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[103].name = "data";
TM__4SoG2KRQy3oMm9aUzSLtGrA_99_2[1] = &TM__4SoG2KRQy3oMm9aUzSLtGrA_0[108];
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[108].kind = 1;
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[108].offset = offsetof(tyObject_Table__6nOsw5R7jH72bux7HSST9bg, counter);
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[108].typ = (&NTI__rR5Bzr1D5krxoo1NcNyeMA_);
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[108].name = "counter";
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[102].len = 2; TM__4SoG2KRQy3oMm9aUzSLtGrA_0[102].kind = 2; TM__4SoG2KRQy3oMm9aUzSLtGrA_0[102].sons = &TM__4SoG2KRQy3oMm9aUzSLtGrA_99_2[0];
NTI__6nOsw5R7jH72bux7HSST9bg_.node = &TM__4SoG2KRQy3oMm9aUzSLtGrA_0[102];
NTI__ZZvSdVkA2s2sIyifu4cpkg_.size = sizeof(tyObject_OrderedTable__ZZvSdVkA2s2sIyifu4cpkg);
NTI__ZZvSdVkA2s2sIyifu4cpkg_.kind = 18;
NTI__ZZvSdVkA2s2sIyifu4cpkg_.base = 0;
TM__4SoG2KRQy3oMm9aUzSLtGrA_126_4[0] = &TM__4SoG2KRQy3oMm9aUzSLtGrA_0[110];
NTI__awOivLjlO76sGdHY7nQUjQ_.size = sizeof(tyTuple__awOivLjlO76sGdHY7nQUjQ);
NTI__awOivLjlO76sGdHY7nQUjQ_.kind = 18;
NTI__awOivLjlO76sGdHY7nQUjQ_.base = 0;
TM__4SoG2KRQy3oMm9aUzSLtGrA_127_4[0] = &TM__4SoG2KRQy3oMm9aUzSLtGrA_0[112];
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[112].kind = 1;
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[112].offset = offsetof(tyTuple__awOivLjlO76sGdHY7nQUjQ, Field0);
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[112].typ = (&NTI__rR5Bzr1D5krxoo1NcNyeMA_);
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[112].name = "Field0";
TM__4SoG2KRQy3oMm9aUzSLtGrA_127_4[1] = &TM__4SoG2KRQy3oMm9aUzSLtGrA_0[113];
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[113].kind = 1;
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[113].offset = offsetof(tyTuple__awOivLjlO76sGdHY7nQUjQ, Field1);
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[113].typ = (&NTI__rR5Bzr1D5krxoo1NcNyeMA_);
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[113].name = "Field1";
TM__4SoG2KRQy3oMm9aUzSLtGrA_127_4[2] = &TM__4SoG2KRQy3oMm9aUzSLtGrA_0[114];
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[114].kind = 1;
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[114].offset = offsetof(tyTuple__awOivLjlO76sGdHY7nQUjQ, Field2);
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[114].typ = (&NTI__77mFvmsOLKik79ci2hXkHEg_);
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[114].name = "Field2";
TM__4SoG2KRQy3oMm9aUzSLtGrA_127_4[3] = &TM__4SoG2KRQy3oMm9aUzSLtGrA_0[115];
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[115].kind = 1;
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[115].offset = offsetof(tyTuple__awOivLjlO76sGdHY7nQUjQ, Field3);
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[115].typ = (&NTI__zfzzuQ8txrdZAYK0WGWpHg_);
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[115].name = "Field3";
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[111].len = 4; TM__4SoG2KRQy3oMm9aUzSLtGrA_0[111].kind = 2; TM__4SoG2KRQy3oMm9aUzSLtGrA_0[111].sons = &TM__4SoG2KRQy3oMm9aUzSLtGrA_127_4[0];
NTI__awOivLjlO76sGdHY7nQUjQ_.node = &TM__4SoG2KRQy3oMm9aUzSLtGrA_0[111];
NTI__MlAD6nAPq9bHKla9cWiIZP0g_.size = sizeof(tySequence__MlAD6nAPq9bHKla9cWiIZP0g*);
NTI__MlAD6nAPq9bHKla9cWiIZP0g_.kind = 24;
NTI__MlAD6nAPq9bHKla9cWiIZP0g_.base = (&NTI__awOivLjlO76sGdHY7nQUjQ_);
NTI__MlAD6nAPq9bHKla9cWiIZP0g_.marker = Marker_tySequence__MlAD6nAPq9bHKla9cWiIZP0g;
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[110].kind = 1;
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[110].offset = offsetof(tyObject_OrderedTable__ZZvSdVkA2s2sIyifu4cpkg, data);
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[110].typ = (&NTI__MlAD6nAPq9bHKla9cWiIZP0g_);
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[110].name = "data";
TM__4SoG2KRQy3oMm9aUzSLtGrA_126_4[1] = &TM__4SoG2KRQy3oMm9aUzSLtGrA_0[116];
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[116].kind = 1;
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[116].offset = offsetof(tyObject_OrderedTable__ZZvSdVkA2s2sIyifu4cpkg, counter);
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[116].typ = (&NTI__rR5Bzr1D5krxoo1NcNyeMA_);
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[116].name = "counter";
TM__4SoG2KRQy3oMm9aUzSLtGrA_126_4[2] = &TM__4SoG2KRQy3oMm9aUzSLtGrA_0[117];
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[117].kind = 1;
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[117].offset = offsetof(tyObject_OrderedTable__ZZvSdVkA2s2sIyifu4cpkg, first);
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[117].typ = (&NTI__rR5Bzr1D5krxoo1NcNyeMA_);
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[117].name = "first";
TM__4SoG2KRQy3oMm9aUzSLtGrA_126_4[3] = &TM__4SoG2KRQy3oMm9aUzSLtGrA_0[118];
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[118].kind = 1;
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[118].offset = offsetof(tyObject_OrderedTable__ZZvSdVkA2s2sIyifu4cpkg, last);
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[118].typ = (&NTI__rR5Bzr1D5krxoo1NcNyeMA_);
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[118].name = "last";
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[109].len = 4; TM__4SoG2KRQy3oMm9aUzSLtGrA_0[109].kind = 2; TM__4SoG2KRQy3oMm9aUzSLtGrA_0[109].sons = &TM__4SoG2KRQy3oMm9aUzSLtGrA_126_4[0];
NTI__ZZvSdVkA2s2sIyifu4cpkg_.node = &TM__4SoG2KRQy3oMm9aUzSLtGrA_0[109];
NTI__i55W8RrwGKsG9cl0sAKxgkQ_.size = sizeof(tyObject_Table__i55W8RrwGKsG9cl0sAKxgkQ);
NTI__i55W8RrwGKsG9cl0sAKxgkQ_.kind = 18;
NTI__i55W8RrwGKsG9cl0sAKxgkQ_.base = 0;
NTI__i55W8RrwGKsG9cl0sAKxgkQ_.flags = 2;
TM__4SoG2KRQy3oMm9aUzSLtGrA_146_2[0] = &TM__4SoG2KRQy3oMm9aUzSLtGrA_0[120];
NTI__sr3s7uVHpu9cEbbDnCSg8yQ_.size = sizeof(tyTuple__sr3s7uVHpu9cEbbDnCSg8yQ);
NTI__sr3s7uVHpu9cEbbDnCSg8yQ_.kind = 18;
NTI__sr3s7uVHpu9cEbbDnCSg8yQ_.base = 0;
NTI__sr3s7uVHpu9cEbbDnCSg8yQ_.flags = 2;
TM__4SoG2KRQy3oMm9aUzSLtGrA_147_3[0] = &TM__4SoG2KRQy3oMm9aUzSLtGrA_0[122];
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[122].kind = 1;
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[122].offset = offsetof(tyTuple__sr3s7uVHpu9cEbbDnCSg8yQ, Field0);
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[122].typ = (&NTI__rR5Bzr1D5krxoo1NcNyeMA_);
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[122].name = "Field0";
TM__4SoG2KRQy3oMm9aUzSLtGrA_147_3[1] = &TM__4SoG2KRQy3oMm9aUzSLtGrA_0[123];
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[123].kind = 1;
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[123].offset = offsetof(tyTuple__sr3s7uVHpu9cEbbDnCSg8yQ, Field1);
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[123].typ = (&NTI__77mFvmsOLKik79ci2hXkHEg_);
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[123].name = "Field1";
TM__4SoG2KRQy3oMm9aUzSLtGrA_147_3[2] = &TM__4SoG2KRQy3oMm9aUzSLtGrA_0[124];
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[124].kind = 1;
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[124].offset = offsetof(tyTuple__sr3s7uVHpu9cEbbDnCSg8yQ, Field2);
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[124].typ = (&NTI__rR5Bzr1D5krxoo1NcNyeMA_);
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[124].name = "Field2";
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[121].len = 3; TM__4SoG2KRQy3oMm9aUzSLtGrA_0[121].kind = 2; TM__4SoG2KRQy3oMm9aUzSLtGrA_0[121].sons = &TM__4SoG2KRQy3oMm9aUzSLtGrA_147_3[0];
NTI__sr3s7uVHpu9cEbbDnCSg8yQ_.node = &TM__4SoG2KRQy3oMm9aUzSLtGrA_0[121];
NTI__pUxI6Ljo6IKKHXKOZkQ7Og_.size = sizeof(tySequence__pUxI6Ljo6IKKHXKOZkQ7Og*);
NTI__pUxI6Ljo6IKKHXKOZkQ7Og_.kind = 24;
NTI__pUxI6Ljo6IKKHXKOZkQ7Og_.base = (&NTI__sr3s7uVHpu9cEbbDnCSg8yQ_);
NTI__pUxI6Ljo6IKKHXKOZkQ7Og_.flags = 2;
NTI__pUxI6Ljo6IKKHXKOZkQ7Og_.marker = Marker_tySequence__pUxI6Ljo6IKKHXKOZkQ7Og;
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[120].kind = 1;
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[120].offset = offsetof(tyObject_Table__i55W8RrwGKsG9cl0sAKxgkQ, data);
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[120].typ = (&NTI__pUxI6Ljo6IKKHXKOZkQ7Og_);
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[120].name = "data";
TM__4SoG2KRQy3oMm9aUzSLtGrA_146_2[1] = &TM__4SoG2KRQy3oMm9aUzSLtGrA_0[125];
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[125].kind = 1;
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[125].offset = offsetof(tyObject_Table__i55W8RrwGKsG9cl0sAKxgkQ, counter);
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[125].typ = (&NTI__rR5Bzr1D5krxoo1NcNyeMA_);
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[125].name = "counter";
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[119].len = 2; TM__4SoG2KRQy3oMm9aUzSLtGrA_0[119].kind = 2; TM__4SoG2KRQy3oMm9aUzSLtGrA_0[119].sons = &TM__4SoG2KRQy3oMm9aUzSLtGrA_146_2[0];
NTI__i55W8RrwGKsG9cl0sAKxgkQ_.node = &TM__4SoG2KRQy3oMm9aUzSLtGrA_0[119];
NTI__XC01wkRgzAyOjTiapde7hQ_.size = sizeof(tyObject_Table__XC01wkRgzAyOjTiapde7hQ);
NTI__XC01wkRgzAyOjTiapde7hQ_.kind = 18;
NTI__XC01wkRgzAyOjTiapde7hQ_.base = 0;
NTI__XC01wkRgzAyOjTiapde7hQ_.flags = 2;
TM__4SoG2KRQy3oMm9aUzSLtGrA_154_2[0] = &TM__4SoG2KRQy3oMm9aUzSLtGrA_0[127];
NTI__A9cRoiotm9actU8lLMnN9bYcw_.size = sizeof(tyTuple__A9cRoiotm9actU8lLMnN9bYcw);
NTI__A9cRoiotm9actU8lLMnN9bYcw_.kind = 18;
NTI__A9cRoiotm9actU8lLMnN9bYcw_.base = 0;
NTI__A9cRoiotm9actU8lLMnN9bYcw_.flags = 2;
TM__4SoG2KRQy3oMm9aUzSLtGrA_155_3[0] = &TM__4SoG2KRQy3oMm9aUzSLtGrA_0[129];
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[129].kind = 1;
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[129].offset = offsetof(tyTuple__A9cRoiotm9actU8lLMnN9bYcw, Field0);
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[129].typ = (&NTI__rR5Bzr1D5krxoo1NcNyeMA_);
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[129].name = "Field0";
TM__4SoG2KRQy3oMm9aUzSLtGrA_155_3[1] = &TM__4SoG2KRQy3oMm9aUzSLtGrA_0[130];
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[130].kind = 1;
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[130].offset = offsetof(tyTuple__A9cRoiotm9actU8lLMnN9bYcw, Field1);
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[130].typ = (&NTI__G9ccBDFWfr9aYnLgXTNGDHDg_);
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[130].name = "Field1";
TM__4SoG2KRQy3oMm9aUzSLtGrA_155_3[2] = &TM__4SoG2KRQy3oMm9aUzSLtGrA_0[131];
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[131].kind = 1;
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[131].offset = offsetof(tyTuple__A9cRoiotm9actU8lLMnN9bYcw, Field2);
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[131].typ = (&NTI__5PunAJrNQYcB8dF0jau3pQ_);
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[131].name = "Field2";
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[128].len = 3; TM__4SoG2KRQy3oMm9aUzSLtGrA_0[128].kind = 2; TM__4SoG2KRQy3oMm9aUzSLtGrA_0[128].sons = &TM__4SoG2KRQy3oMm9aUzSLtGrA_155_3[0];
NTI__A9cRoiotm9actU8lLMnN9bYcw_.node = &TM__4SoG2KRQy3oMm9aUzSLtGrA_0[128];
NTI__wAC0kXbVGkLoWP8vdi0sUw_.size = sizeof(tySequence__wAC0kXbVGkLoWP8vdi0sUw*);
NTI__wAC0kXbVGkLoWP8vdi0sUw_.kind = 24;
NTI__wAC0kXbVGkLoWP8vdi0sUw_.base = (&NTI__A9cRoiotm9actU8lLMnN9bYcw_);
NTI__wAC0kXbVGkLoWP8vdi0sUw_.flags = 2;
NTI__wAC0kXbVGkLoWP8vdi0sUw_.marker = Marker_tySequence__wAC0kXbVGkLoWP8vdi0sUw;
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[127].kind = 1;
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[127].offset = offsetof(tyObject_Table__XC01wkRgzAyOjTiapde7hQ, data);
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[127].typ = (&NTI__wAC0kXbVGkLoWP8vdi0sUw_);
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[127].name = "data";
TM__4SoG2KRQy3oMm9aUzSLtGrA_154_2[1] = &TM__4SoG2KRQy3oMm9aUzSLtGrA_0[132];
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[132].kind = 1;
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[132].offset = offsetof(tyObject_Table__XC01wkRgzAyOjTiapde7hQ, counter);
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[132].typ = (&NTI__rR5Bzr1D5krxoo1NcNyeMA_);
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[132].name = "counter";
TM__4SoG2KRQy3oMm9aUzSLtGrA_0[126].len = 2; TM__4SoG2KRQy3oMm9aUzSLtGrA_0[126].kind = 2; TM__4SoG2KRQy3oMm9aUzSLtGrA_0[126].sons = &TM__4SoG2KRQy3oMm9aUzSLtGrA_154_2[0];
NTI__XC01wkRgzAyOjTiapde7hQ_.node = &TM__4SoG2KRQy3oMm9aUzSLtGrA_0[126];
}

