/* Generated by Nim Compiler v0.13.0 */
/*   (c) 2015 Andreas Rumpf */
/* The generated code is subject to the original license. */
#define NIM_INTBITS 32

#include "nimbase.h"
#include <string.h>
typedef struct Table182428 Table182428;
typedef struct Keyvaluepairseq182431 Keyvaluepairseq182431;
typedef struct Keyvaluepair182434 Keyvaluepair182434;
typedef struct NimStringDesc NimStringDesc;
typedef struct TGenericSeq TGenericSeq;
typedef struct TNimType TNimType;
typedef struct TNimNode TNimNode;
typedef struct Table252054 Table252054;
typedef struct Keyvaluepairseq252057 Keyvaluepairseq252057;
typedef struct Keyvaluepair252060 Keyvaluepair252060;
typedef struct Tsym214822 Tsym214822;
typedef struct Cell47505 Cell47505;
typedef struct Cellseq47521 Cellseq47521;
typedef struct Gcheap49818 Gcheap49818;
typedef struct Gcstack49816 Gcstack49816;
typedef struct Cellset47517 Cellset47517;
typedef struct Pagedesc47513 Pagedesc47513;
typedef struct Memregion29687 Memregion29687;
typedef struct Smallchunk29639 Smallchunk29639;
typedef struct Llchunk29681 Llchunk29681;
typedef struct Bigchunk29641 Bigchunk29641;
typedef struct Intset29614 Intset29614;
typedef struct Trunk29610 Trunk29610;
typedef struct Avlnode29685 Avlnode29685;
typedef struct Gcstat49814 Gcstat49814;
typedef struct Table380256 Table380256;
typedef struct Keyvaluepairseq380259 Keyvaluepairseq380259;
typedef struct Keyvaluepair380262 Keyvaluepair380262;
typedef struct Ttype214828 Ttype214828;
typedef struct Table381057 Table381057;
typedef struct Keyvaluepairseq381060 Keyvaluepairseq381060;
typedef struct Keyvaluepair381063 Keyvaluepair381063;
typedef struct Tnode214790 Tnode214790;
typedef struct Keyerror3648 Keyerror3648;
typedef struct Valueerror3646 Valueerror3646;
typedef struct Exception Exception;
typedef struct TNimObject TNimObject;
typedef struct Table326047 Table326047;
typedef struct Keyvaluepairseq326050 Keyvaluepairseq326050;
typedef struct Keyvaluepair326053 Keyvaluepair326053;
typedef struct Table398590 Table398590;
typedef struct Keyvaluepairseq398593 Keyvaluepairseq398593;
typedef struct Keyvaluepair398596 Keyvaluepair398596;
typedef struct Table327139 Table327139;
typedef struct Keyvaluepairseq327142 Keyvaluepairseq327142;
typedef struct Keyvaluepair327145 Keyvaluepair327145;
typedef struct Indexentry327126 Indexentry327126;
typedef struct TY329853 TY329853;
typedef struct Tidobj189006 Tidobj189006;
typedef struct Ttypeseq214824 Ttypeseq214824;
typedef struct Tscope214816 Tscope214816;
typedef struct TY214925 TY214925;
typedef struct Tstrtable214794 Tstrtable214794;
typedef struct Tsymseq214792 Tsymseq214792;
typedef struct Tident189012 Tident189012;
typedef struct Tlineinfo182337 Tlineinfo182337;
typedef struct Tloc214804 Tloc214804;
typedef struct Ropeobj169006 Ropeobj169006;
typedef struct Tlib214808 Tlib214808;
typedef struct Basechunk29637 Basechunk29637;
typedef struct Freecell29629 Freecell29629;
typedef struct Tnodeseq214784 Tnodeseq214784;
typedef struct Tinstantiation214812 Tinstantiation214812;
typedef struct Tlistentry135010 Tlistentry135010;
typedef struct TY214913 TY214913;
struct  Table182428  {
Keyvaluepairseq182431* data;
NI counter;
};
struct  TGenericSeq  {
NI len;
NI reserved;
};
struct  NimStringDesc  {
  TGenericSeq Sup;
NIM_CHAR data[SEQ_DECL_SIZE];
};
struct Keyvaluepair182434 {
NI Field0;
NimStringDesc* Field1;
NI32 Field2;
};
typedef N_NIMCALL_PTR(void, TY3489) (void* p, NI op);
typedef N_NIMCALL_PTR(void*, TY3494) (void* p);
struct  TNimType  {
NI size;
NU8 kind;
NU8 flags;
TNimType* base;
TNimNode* node;
void* finalizer;
TY3489 marker;
TY3494 deepcopy;
};
struct  TNimNode  {
NU8 kind;
NI offset;
TNimType* typ;
NCSTRING name;
NI len;
TNimNode** sons;
};
struct  Table252054  {
Keyvaluepairseq252057* data;
NI counter;
};
struct Keyvaluepair252060 {
NI Field0;
NI Field1;
Tsym214822* Field2;
};
struct  Cell47505  {
NI refcount;
TNimType* typ;
};
struct  Cellseq47521  {
NI len;
NI cap;
Cell47505** d;
};
struct  Cellset47517  {
NI counter;
NI max;
Pagedesc47513* head;
Pagedesc47513** data;
};
typedef Smallchunk29639* TY29702[512];
typedef Trunk29610* Trunkbuckets29612[256];
struct  Intset29614  {
Trunkbuckets29612 data;
};
struct  Memregion29687  {
NI minlargeobj;
NI maxlargeobj;
TY29702 freesmallchunks;
Llchunk29681* llmem;
NI currmem;
NI maxmem;
NI freemem;
NI lastsize;
Bigchunk29641* freechunkslist;
Intset29614 chunkstarts;
Avlnode29685* root;
Avlnode29685* deleted;
Avlnode29685* last;
Avlnode29685* freeavlnodes;
};
struct  Gcstat49814  {
NI stackscans;
NI cyclecollections;
NI maxthreshold;
NI maxstacksize;
NI maxstackcells;
NI cycletablesize;
NI64 maxpause;
};
struct  Gcheap49818  {
Gcstack49816* stack;
void* stackbottom;
NI cyclethreshold;
Cellseq47521 zct;
Cellseq47521 decstack;
Cellset47517 cycleroots;
Cellseq47521 tempstack;
NI recgclock;
Memregion29687 region;
Gcstat49814 stat;
};
struct  Table380256  {
Keyvaluepairseq380259* data;
NI counter;
};
struct Keyvaluepair380262 {
NI Field0;
NI Field1;
Ttype214828* Field2;
};
struct  Table381057  {
Keyvaluepairseq381060* data;
NI counter;
};
struct Keyvaluepair381063 {
NI Field0;
NI Field1;
Tnode214790* Field2;
};
struct  TNimObject  {
TNimType* m_type;
};
struct  Exception  {
  TNimObject Sup;
Exception* parent;
NCSTRING name;
NimStringDesc* message;
NimStringDesc* trace;
};
struct  Valueerror3646  {
  Exception Sup;
};
struct  Keyerror3648  {
  Valueerror3646 Sup;
};
struct  Table326047  {
Keyvaluepairseq326050* data;
NI counter;
};
struct Keyvaluepair326053 {
NI Field0;
NimStringDesc* Field1;
NI Field2;
};
struct  Table398590  {
Keyvaluepairseq398593* data;
NI counter;
};
struct Keyvaluepair398596 {
NI Field0;
NI64 Field1;
Tnode214790* Field2;
};
struct  Table327139  {
Keyvaluepairseq327142* data;
NI counter;
};
struct  Indexentry327126  {
NimStringDesc* keyword;
NimStringDesc* link;
NimStringDesc* linktitle;
NimStringDesc* linkdesc;
};
struct Keyvaluepair327145 {
NI Field0;
Indexentry327126 Field1;
TY329853* Field2;
};
struct  Tidobj189006  {
  TNimObject Sup;
NI id;
};
struct  Tstrtable214794  {
NI counter;
Tsymseq214792* data;
};
struct  Tlineinfo182337  {
NI16 line;
NI16 col;
NI32 fileindex;
};
struct  Tloc214804  {
NU8 k;
NU8 s;
NU16 flags;
Ttype214828* t;
Ropeobj169006* r;
Ropeobj169006* heaproot;
};
struct  Tsym214822  {
  Tidobj189006 Sup;
NU8 kind;
union{
struct {Ttypeseq214824* typeinstcache;
Tscope214816* typscope;
} S1;
struct {TY214925* procinstcache;
Tsym214822* gcunsafetyreason;
} S2;
struct {TY214925* usedgenerics;
Tstrtable214794 tab;
} S3;
struct {Tsym214822* guard;
NI bitsize;
} S4;
} kindU;
NU8 magic;
Ttype214828* typ;
Tident189012* name;
Tlineinfo182337 info;
Tsym214822* owner;
NU32 flags;
Tnode214790* ast;
NU32 options;
NI position;
NI offset;
Tloc214804 loc;
Tlib214808* annex;
Tnode214790* constraint;
};
struct  Gcstack49816  {
Gcstack49816* prev;
Gcstack49816* next;
void* starts;
void* pos;
NI maxstacksize;
};
typedef NI TY29618[16];
struct  Pagedesc47513  {
Pagedesc47513* next;
NI key;
TY29618 bits;
};
struct  Basechunk29637  {
NI prevsize;
NI size;
NIM_BOOL used;
};
struct  Smallchunk29639  {
  Basechunk29637 Sup;
Smallchunk29639* next;
Smallchunk29639* prev;
Freecell29629* freelist;
NI free;
NI acc;
NF data;
};
struct  Llchunk29681  {
NI size;
NI acc;
Llchunk29681* next;
};
struct  Bigchunk29641  {
  Basechunk29637 Sup;
Bigchunk29641* next;
Bigchunk29641* prev;
NI align;
NF data;
};
struct  Trunk29610  {
Trunk29610* next;
NI key;
TY29618 bits;
};
typedef Avlnode29685* TY29692[2];
struct  Avlnode29685  {
TY29692 link;
NI key;
NI upperbound;
NI level;
};
struct  Ttype214828  {
  Tidobj189006 Sup;
NU8 kind;
NU8 callconv;
NU32 flags;
Ttypeseq214824* sons;
Tnode214790* n;
Tsym214822* owner;
Tsym214822* sym;
Tsym214822* destructor;
Tsym214822* deepcopy;
Tsym214822* assignment;
NI64 size;
NI16 align;
NI16 locklevel;
Tloc214804 loc;
};
struct  Tnode214790  {
Ttype214828* typ;
Tlineinfo182337 info;
NU16 flags;
NU8 kind;
union{
struct {NI64 intval;
} S1;
struct {NF floatval;
} S2;
struct {NimStringDesc* strval;
} S3;
struct {Tsym214822* sym;
} S4;
struct {Tident189012* ident;
} S5;
struct {Tnodeseq214784* sons;
} S6;
} kindU;
NimStringDesc* comment;
};
struct  Tscope214816  {
NI depthlevel;
Tstrtable214794 symbols;
Tnodeseq214784* usingsyms;
Tscope214816* parent;
};
struct  Tident189012  {
  Tidobj189006 Sup;
NimStringDesc* s;
Tident189012* next;
NI h;
};
struct  Ropeobj169006  {
  TNimObject Sup;
Ropeobj169006* left;
Ropeobj169006* right;
NI length;
NimStringDesc* data;
};
struct  Tlistentry135010  {
  TNimObject Sup;
Tlistentry135010* prev;
Tlistentry135010* next;
};
struct  Tlib214808  {
  Tlistentry135010 Sup;
NU8 kind;
NIM_BOOL generated;
NIM_BOOL isoverriden;
Ropeobj169006* name;
Tnode214790* path;
};
struct  Freecell29629  {
Freecell29629* next;
NI zerofield;
};
struct  Tinstantiation214812  {
Tsym214822* sym;
Ttypeseq214824* concretetypes;
TY214913* usedby;
NI compilesid;
};
struct Keyvaluepairseq182431 {
  TGenericSeq Sup;
  Keyvaluepair182434 data[SEQ_DECL_SIZE];
};
struct Keyvaluepairseq252057 {
  TGenericSeq Sup;
  Keyvaluepair252060 data[SEQ_DECL_SIZE];
};
struct Keyvaluepairseq380259 {
  TGenericSeq Sup;
  Keyvaluepair380262 data[SEQ_DECL_SIZE];
};
struct Keyvaluepairseq381060 {
  TGenericSeq Sup;
  Keyvaluepair381063 data[SEQ_DECL_SIZE];
};
struct Keyvaluepairseq326050 {
  TGenericSeq Sup;
  Keyvaluepair326053 data[SEQ_DECL_SIZE];
};
struct Keyvaluepairseq398593 {
  TGenericSeq Sup;
  Keyvaluepair398596 data[SEQ_DECL_SIZE];
};
struct TY329853 {
  TGenericSeq Sup;
  Indexentry327126 data[SEQ_DECL_SIZE];
};
struct Keyvaluepairseq327142 {
  TGenericSeq Sup;
  Keyvaluepair327145 data[SEQ_DECL_SIZE];
};
struct Ttypeseq214824 {
  TGenericSeq Sup;
  Ttype214828* data[SEQ_DECL_SIZE];
};
struct TY214925 {
  TGenericSeq Sup;
  Tinstantiation214812* data[SEQ_DECL_SIZE];
};
struct Tsymseq214792 {
  TGenericSeq Sup;
  Tsym214822* data[SEQ_DECL_SIZE];
};
struct Tnodeseq214784 {
  TGenericSeq Sup;
  Tnode214790* data[SEQ_DECL_SIZE];
};
struct TY214913 {
  TGenericSeq Sup;
  NI32 data[SEQ_DECL_SIZE];
};
N_NIMCALL(void, nimGCvisit)(void* d, NI op);
N_NIMCALL(void, TMP139)(void* p, NI op);
N_NIMCALL(void*, newSeq)(TNimType* typ, NI len);
N_NIMCALL(void, unsureAsgnRef)(void** dest, void* src);
N_NIMCALL(void, TMP911)(void* p, NI op);
static N_INLINE(NI, rawget_252698)(Table252054 t, NI key, NI* hc);
static N_INLINE(NI, hash_137801)(NI x);
static N_INLINE(NIM_BOOL, isfilled_163263)(NI hcode);
static N_INLINE(NI, nexttry_163401)(NI h, NI maxhash);
static N_INLINE(void, asgnRefNoCycle)(void** dest, void* src);
static N_INLINE(Cell47505*, usrtocell_51440)(void* usr);
static N_INLINE(void, rtladdzct_53001)(Cell47505* c);
N_NOINLINE(void, addzct_51417)(Cellseq47521* s, Cell47505* c);
static N_INLINE(NIM_BOOL, mustrehash_163268)(NI length, NI counter);
N_NIMCALL(void, enlarge_252774)(Table252054* t);
static N_INLINE(NI, rawgetknownhc_252827)(Table252054 t, NI key, NI hc);
N_NIMCALL(void, rawinsert_252843)(Table252054* t, Keyvaluepairseq252057** data, NI key, Tsym214822* val, NI hc, NI h);
N_NIMCALL(void, TMP1125)(void* p, NI op);
N_NIMCALL(void, TMP1127)(void* p, NI op);
static N_INLINE(NI, rawget_380436)(Table380256 t, NI key, NI* hc);
N_NIMCALL(void, enlarge_380500)(Table380256* t);
static N_INLINE(NI, rawgetknownhc_380553)(Table380256 t, NI key, NI hc);
N_NIMCALL(void, rawinsert_380569)(Table380256* t, Keyvaluepairseq380259** data, NI key, Ttype214828* val, NI hc, NI h);
static N_INLINE(NI, rawget_381646)(Table381057 t, NI key, NI* hc);
N_NIMCALL(void, enlarge_381732)(Table381057* t);
static N_INLINE(NI, rawgetknownhc_381785)(Table381057 t, NI key, NI hc);
N_NIMCALL(void, rawinsert_381801)(Table381057* t, Keyvaluepairseq381060** data, NI key, Tnode214790* val, NI hc, NI h);
static N_INLINE(NI, rawget_182720)(Table182428 t, NimStringDesc* key, NI* hc);
N_NIMCALL(NI, hash_137827)(NimStringDesc* x);
static N_INLINE(NIM_BOOL, eqStrings)(NimStringDesc* a, NimStringDesc* b);
N_NIMCALL(void*, newObj)(TNimType* typ, NI size);
static N_INLINE(void, appendString)(NimStringDesc* dest, NimStringDesc* src);
N_NIMCALL(NimStringDesc*, rawNewString)(NI space);
N_NIMCALL(void, raiseException)(Exception* e, NCSTRING ename);
N_NIMCALL(void, enlarge_182871)(Table182428* t);
static N_INLINE(NI, rawgetknownhc_182924)(Table182428 t, NimStringDesc* key, NI hc);
N_NIMCALL(void, rawinsert_182940)(Table182428* t, Keyvaluepairseq182431** 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, rawget_326866)(Table326047 t, NimStringDesc* key, NI* hc);
N_NIMCALL(void, enlarge_326951)(Table326047* t);
N_NIMCALL(void, TMP2582)(void* p, NI op);
static N_INLINE(NI, rawgetknownhc_327004)(Table326047 t, NimStringDesc* key, NI hc);
N_NIMCALL(void, rawinsert_327020)(Table326047* t, Keyvaluepairseq326050** data, NimStringDesc* key, NI val, NI hc, NI h);
N_NIMCALL(void, TMP3083)(void* p, NI op);
static N_INLINE(NI, rawget_399113)(Table398590 t, NI64 key, NI* hc);
static N_INLINE(NI, hash_137805)(NI64 x);
N_NIMCALL(void, enlarge_399186)(Table398590* t);
static N_INLINE(NI, rawgetknownhc_399239)(Table398590 t, NI64 key, NI hc);
N_NIMCALL(void, rawinsert_399255)(Table398590* t, Keyvaluepairseq398593** data, NI64 key, Tnode214790* val, NI hc, NI h);
N_NIMCALL(void, TMP5192)(void* p, NI op);
static N_INLINE(NI, rawget_329261)(Table327139 t, Indexentry327126 key, NI* hc);
N_NIMCALL(NI, hash_327164)(Indexentry327126 x);
N_NIMCALL(NIM_BOOL, HEX3DHEX3D_329275)(Indexentry327126 x, Indexentry327126 y);
N_NIMCALL(void, genericSeqAssign)(void* dest, void* src_84004, TNimType* mt);
N_NIMCALL(void, enlarge_330304)(Table327139* t);
static N_INLINE(NI, rawgetknownhc_330357)(Table327139 t, Indexentry327126 key, NI hc);
N_NIMCALL(void, rawinsert_330382)(Table327139* t, Keyvaluepairseq327142** data, Indexentry327126 key, TY329853* val, NI hc, NI h);
STRING_LITERAL(TMP1230, "key not found: ", 15);
TNimType NTI182434; /* KeyValuePair */
extern TNimType NTI137002; /* Hash */
extern TNimType NTI138; /* string */
extern TNimType NTI110; /* int32 */
TNimType NTI182431; /* KeyValuePairSeq */
TNimType NTI182428; /* Table */
extern TNimType NTI104; /* int */
TNimType NTI252054; /* Table */
TNimType NTI252060; /* KeyValuePair */
extern TNimType NTI214788; /* PSym */
TNimType NTI252057; /* KeyValuePairSeq */
extern Gcheap49818 gch_49859;
TNimType NTI380262; /* KeyValuePair */
extern TNimType NTI214786; /* PType */
TNimType NTI380259; /* KeyValuePairSeq */
TNimType NTI381063; /* KeyValuePair */
extern TNimType NTI214782; /* PNode */
TNimType NTI381060; /* KeyValuePairSeq */
extern TNimType NTI182804; /* ref KeyError */
extern TNimType NTI3648; /* KeyError */
TNimType NTI326053; /* KeyValuePair */
TNimType NTI326050; /* KeyValuePairSeq */
TNimType NTI398596; /* KeyValuePair */
extern TNimType NTI7088; /* BiggestInt */
TNimType NTI398593; /* KeyValuePairSeq */
TNimType NTI326047; /* Table */
TNimType NTI327145; /* KeyValuePair */
extern TNimType NTI327126; /* IndexEntry */
extern TNimType NTI329853; /* seq[IndexEntry] */
TNimType NTI327142; /* KeyValuePairSeq */
N_NIMCALL(void, TMP139)(void* p, NI op) {
	Keyvaluepairseq182431* a;
	NI LOC1;
	a = (Keyvaluepairseq182431*)p;
	LOC1 = 0;
	for (LOC1 = 0; LOC1 < a->Sup.len; LOC1++) {
	nimGCvisit((void*)a->data[LOC1].Field1, op);
	}
}

N_NIMCALL(void, inittable_182420)(NI initialsize, Table182428* Result) {
	(*Result).counter = ((NI) 0);
	unsureAsgnRef((void**) (&(*Result).data), (Keyvaluepairseq182431*) newSeq((&NTI182431), ((NI) (initialsize))));
}
N_NIMCALL(void, TMP911)(void* p, NI op) {
	Keyvaluepairseq252057* a;
	NI LOC1;
	a = (Keyvaluepairseq252057*)p;
	LOC1 = 0;
	for (LOC1 = 0; LOC1 < a->Sup.len; LOC1++) {
	nimGCvisit((void*)a->data[LOC1].Field2, op);
	}
}

static N_INLINE(NI, hash_137801)(NI x) {
	NI result;
	result = 0;
	result = x;
	return result;
}

static N_INLINE(NIM_BOOL, isfilled_163263)(NI hcode) {
	NIM_BOOL result;
	result = 0;
	result = !((hcode == ((NI) 0)));
	return result;
}

static N_INLINE(NI, nexttry_163401)(NI h, NI maxhash) {
	NI result;
	result = 0;
	result = (NI)((NI)(h + ((NI) 1)) & maxhash);
	return result;
}

static N_INLINE(NI, rawget_252698)(Table252054 t, NI key, NI* hc) {
	NI result;
	NI h;
{	result = 0;
	(*hc) = hash_137801(key);
	{
		if (!((*hc) == ((NI) 0))) goto LA3;
		(*hc) = ((NI) 314159265);
	}
	LA3: ;
	h = (NI)((*hc) & (t.data ? (t.data->Sup.len-1) : -1));
	{
		while (1) {
			NIM_BOOL LOC7;
			LOC7 = 0;
			LOC7 = isfilled_163263(t.data->data[h].Field0);
			if (!LOC7) goto LA6;
			{
				NIM_BOOL LOC10;
				LOC10 = 0;
				LOC10 = (t.data->data[h].Field0 == (*hc));
				if (!(LOC10)) goto LA11;
				LOC10 = (t.data->data[h].Field1 == key);
				LA11: ;
				if (!LOC10) goto LA12;
				result = h;
				goto BeforeRet;
			}
			LA12: ;
			h = nexttry_163401(h, (t.data ? (t.data->Sup.len-1) : -1));
		} LA6: ;
	}
	result = (NI)(((NI) -1) - h);
	}BeforeRet: ;
	return result;
}

N_NIMCALL(Tsym214822*, getordefault_252683)(Table252054 t, NI key) {
	Tsym214822* result;
	NI hc_252694;
	NI index_252696;
	result = 0;
	hc_252694 = 0;
	index_252696 = rawget_252698(t, key, (&hc_252694));
	{
		if (!(((NI) 0) <= index_252696)) goto LA3;
		result = t.data->data[index_252696].Field2;
	}
	LA3: ;
	return result;
}

static N_INLINE(Cell47505*, usrtocell_51440)(void* usr) {
	Cell47505* result;
	result = 0;
	result = ((Cell47505*) ((NI)((NU32)(((NI) (usr))) - (NU32)(((NI)sizeof(Cell47505))))));
	return result;
}

static N_INLINE(void, rtladdzct_53001)(Cell47505* c) {
	addzct_51417((&gch_49859.zct), c);
}

static N_INLINE(void, asgnRefNoCycle)(void** dest, void* src) {
	{
		Cell47505* c;
		if (!!((src == NIM_NIL))) goto LA3;
		c = usrtocell_51440(src);
		(*c).refcount += ((NI) 8);
	}
	LA3: ;
	{
		Cell47505* c;
		if (!!(((*dest) == NIM_NIL))) goto LA7;
		c = usrtocell_51440((*dest));
		{
			(*c).refcount -= ((NI) 8);
			if (!((NU32)((*c).refcount) < (NU32)(((NI) 8)))) goto LA11;
			rtladdzct_53001(c);
		}
		LA11: ;
	}
	LA7: ;
	(*dest) = src;
}

static N_INLINE(NIM_BOOL, mustrehash_163268)(NI length, NI counter) {
	NIM_BOOL result;
	NIM_BOOL LOC1;
	result = 0;
	LOC1 = 0;
	LOC1 = ((NI)(length * ((NI) 2)) < (NI)(counter * ((NI) 3)));
	if (LOC1) goto LA2;
	LOC1 = ((NI)(length - counter) < ((NI) 4));
	LA2: ;
	result = LOC1;
	return result;
}

static N_INLINE(NI, rawgetknownhc_252827)(Table252054 t, NI key, NI hc) {
	NI result;
	NI h;
{	result = 0;
	h = (NI)(hc & (t.data ? (t.data->Sup.len-1) : -1));
	{
		while (1) {
			NIM_BOOL LOC3;
			LOC3 = 0;
			LOC3 = isfilled_163263(t.data->data[h].Field0);
			if (!LOC3) goto LA2;
			{
				NIM_BOOL LOC6;
				LOC6 = 0;
				LOC6 = (t.data->data[h].Field0 == hc);
				if (!(LOC6)) goto LA7;
				LOC6 = (t.data->data[h].Field1 == key);
				LA7: ;
				if (!LOC6) goto LA8;
				result = h;
				goto BeforeRet;
			}
			LA8: ;
			h = nexttry_163401(h, (t.data ? (t.data->Sup.len-1) : -1));
		} LA2: ;
	}
	result = (NI)(((NI) -1) - h);
	}BeforeRet: ;
	return result;
}

N_NIMCALL(void, rawinsert_252843)(Table252054* t, Keyvaluepairseq252057** data, NI key, Tsym214822* val, NI hc, NI h) {
	(*data)->data[h].Field1 = key;
	asgnRefNoCycle((void**) (&(*data)->data[h].Field2), val);
	(*data)->data[h].Field0 = hc;
}

N_NIMCALL(void, enlarge_252774)(Table252054* t) {
	Keyvaluepairseq252057* n;
	Keyvaluepairseq252057* LOC1;
	n = 0;
	n = (Keyvaluepairseq252057*) newSeq((&NTI252057), ((NI) ((NI)(((*t).data ? (*t).data->Sup.len : 0) * ((NI) 2)))));
	LOC1 = 0;
	LOC1 = (*t).data;
	unsureAsgnRef((void**) (&(*t).data), n);
	n = LOC1;
	{
		NI i_252825;
		NI HEX3Atmp_252866;
		NI res_252869;
		i_252825 = 0;
		HEX3Atmp_252866 = 0;
		HEX3Atmp_252866 = (n ? (n->Sup.len-1) : -1);
		res_252869 = ((NI) 0);
		{
			while (1) {
				if (!(res_252869 <= HEX3Atmp_252866)) goto LA4;
				i_252825 = res_252869;
				{
					NIM_BOOL LOC7;
					NI j;
					NI LOC10;
					LOC7 = 0;
					LOC7 = isfilled_163263(n->data[i_252825].Field0);
					if (!LOC7) goto LA8;
					LOC10 = 0;
					LOC10 = rawgetknownhc_252827((*t), n->data[i_252825].Field1, n->data[i_252825].Field0);
					j = (NI)(((NI) -1) - LOC10);
					rawinsert_252843(t, (&(*t).data), n->data[i_252825].Field1, n->data[i_252825].Field2, n->data[i_252825].Field0, j);
				}
				LA8: ;
				res_252869 += ((NI) 1);
			} LA4: ;
		}
	}
}

N_NIMCALL(void, HEX5BHEX5DHEX3D_252738)(Table252054* t, NI key, Tsym214822* val) {
	NI hc;
	NI index;
	hc = 0;
	index = rawget_252698((*t), key, (&hc));
	{
		if (!(((NI) 0) <= index)) goto LA3;
		asgnRefNoCycle((void**) (&(*t).data->data[index].Field2), val);
	}
	goto LA1;
	LA3: ;
	{
		{
			NIM_BOOL LOC8;
			LOC8 = 0;
			LOC8 = mustrehash_163268(((*t).data ? (*t).data->Sup.len : 0), (*t).counter);
			if (!LOC8) goto LA9;
			enlarge_252774(t);
			index = rawgetknownhc_252827((*t), key, hc);
		}
		LA9: ;
		index = (NI)(((NI) -1) - index);
		rawinsert_252843(t, (&(*t).data), key, val, hc, index);
		(*t).counter += ((NI) 1);
	}
	LA1: ;
}
N_NIMCALL(void, TMP1125)(void* p, NI op) {
	Keyvaluepairseq380259* a;
	NI LOC1;
	a = (Keyvaluepairseq380259*)p;
	LOC1 = 0;
	for (LOC1 = 0; LOC1 < a->Sup.len; LOC1++) {
	nimGCvisit((void*)a->data[LOC1].Field2, op);
	}
}

N_NIMCALL(void, inittable_380281)(NI initialsize, Table380256* Result) {
	(*Result).counter = ((NI) 0);
	unsureAsgnRef((void**) (&(*Result).data), (Keyvaluepairseq380259*) newSeq((&NTI380259), ((NI) (initialsize))));
}
N_NIMCALL(void, TMP1127)(void* p, NI op) {
	Keyvaluepairseq381060* a;
	NI LOC1;
	a = (Keyvaluepairseq381060*)p;
	LOC1 = 0;
	for (LOC1 = 0; LOC1 < a->Sup.len; LOC1++) {
	nimGCvisit((void*)a->data[LOC1].Field2, op);
	}
}

N_NIMCALL(void, inittable_381083)(NI initialsize, Table381057* Result) {
	(*Result).counter = ((NI) 0);
	unsureAsgnRef((void**) (&(*Result).data), (Keyvaluepairseq381060*) newSeq((&NTI381060), ((NI) (initialsize))));
}

static N_INLINE(NI, rawget_380436)(Table380256 t, NI key, NI* hc) {
	NI result;
	NI h;
{	result = 0;
	(*hc) = hash_137801(key);
	{
		if (!((*hc) == ((NI) 0))) goto LA3;
		(*hc) = ((NI) 314159265);
	}
	LA3: ;
	h = (NI)((*hc) & (t.data ? (t.data->Sup.len-1) : -1));
	{
		while (1) {
			NIM_BOOL LOC7;
			LOC7 = 0;
			LOC7 = isfilled_163263(t.data->data[h].Field0);
			if (!LOC7) goto LA6;
			{
				NIM_BOOL LOC10;
				LOC10 = 0;
				LOC10 = (t.data->data[h].Field0 == (*hc));
				if (!(LOC10)) goto LA11;
				LOC10 = (t.data->data[h].Field1 == key);
				LA11: ;
				if (!LOC10) goto LA12;
				result = h;
				goto BeforeRet;
			}
			LA12: ;
			h = nexttry_163401(h, (t.data ? (t.data->Sup.len-1) : -1));
		} LA6: ;
	}
	result = (NI)(((NI) -1) - h);
	}BeforeRet: ;
	return result;
}

static N_INLINE(NI, rawgetknownhc_380553)(Table380256 t, NI key, NI hc) {
	NI result;
	NI h;
{	result = 0;
	h = (NI)(hc & (t.data ? (t.data->Sup.len-1) : -1));
	{
		while (1) {
			NIM_BOOL LOC3;
			LOC3 = 0;
			LOC3 = isfilled_163263(t.data->data[h].Field0);
			if (!LOC3) goto LA2;
			{
				NIM_BOOL LOC6;
				LOC6 = 0;
				LOC6 = (t.data->data[h].Field0 == hc);
				if (!(LOC6)) goto LA7;
				LOC6 = (t.data->data[h].Field1 == key);
				LA7: ;
				if (!LOC6) goto LA8;
				result = h;
				goto BeforeRet;
			}
			LA8: ;
			h = nexttry_163401(h, (t.data ? (t.data->Sup.len-1) : -1));
		} LA2: ;
	}
	result = (NI)(((NI) -1) - h);
	}BeforeRet: ;
	return result;
}

N_NIMCALL(void, rawinsert_380569)(Table380256* t, Keyvaluepairseq380259** data, NI key, Ttype214828* val, NI hc, NI h) {
	(*data)->data[h].Field1 = key;
	asgnRefNoCycle((void**) (&(*data)->data[h].Field2), val);
	(*data)->data[h].Field0 = hc;
}

N_NIMCALL(void, enlarge_380500)(Table380256* t) {
	Keyvaluepairseq380259* n;
	Keyvaluepairseq380259* LOC1;
	n = 0;
	n = (Keyvaluepairseq380259*) newSeq((&NTI380259), ((NI) ((NI)(((*t).data ? (*t).data->Sup.len : 0) * ((NI) 2)))));
	LOC1 = 0;
	LOC1 = (*t).data;
	unsureAsgnRef((void**) (&(*t).data), n);
	n = LOC1;
	{
		NI i_380551;
		NI HEX3Atmp_380592;
		NI res_380595;
		i_380551 = 0;
		HEX3Atmp_380592 = 0;
		HEX3Atmp_380592 = (n ? (n->Sup.len-1) : -1);
		res_380595 = ((NI) 0);
		{
			while (1) {
				if (!(res_380595 <= HEX3Atmp_380592)) goto LA4;
				i_380551 = res_380595;
				{
					NIM_BOOL LOC7;
					NI j;
					NI LOC10;
					LOC7 = 0;
					LOC7 = isfilled_163263(n->data[i_380551].Field0);
					if (!LOC7) goto LA8;
					LOC10 = 0;
					LOC10 = rawgetknownhc_380553((*t), n->data[i_380551].Field1, n->data[i_380551].Field0);
					j = (NI)(((NI) -1) - LOC10);
					rawinsert_380569(t, (&(*t).data), n->data[i_380551].Field1, n->data[i_380551].Field2, n->data[i_380551].Field0, j);
				}
				LA8: ;
				res_380595 += ((NI) 1);
			} LA4: ;
		}
	}
}

N_NIMCALL(void, HEX5BHEX5DHEX3D_380464)(Table380256* t, NI key, Ttype214828* val) {
	NI hc;
	NI index;
	hc = 0;
	index = rawget_380436((*t), key, (&hc));
	{
		if (!(((NI) 0) <= index)) goto LA3;
		asgnRefNoCycle((void**) (&(*t).data->data[index].Field2), val);
	}
	goto LA1;
	LA3: ;
	{
		{
			NIM_BOOL LOC8;
			LOC8 = 0;
			LOC8 = mustrehash_163268(((*t).data ? (*t).data->Sup.len : 0), (*t).counter);
			if (!LOC8) goto LA9;
			enlarge_380500(t);
			index = rawgetknownhc_380553((*t), key, hc);
		}
		LA9: ;
		index = (NI)(((NI) -1) - index);
		rawinsert_380569(t, (&(*t).data), key, val, hc, index);
		(*t).counter += ((NI) 1);
	}
	LA1: ;
}

N_NIMCALL(Ttype214828*, getordefault_380421)(Table380256 t, NI key) {
	Ttype214828* result;
	NI hc_380432;
	NI index_380434;
	result = 0;
	hc_380432 = 0;
	index_380434 = rawget_380436(t, key, (&hc_380432));
	{
		if (!(((NI) 0) <= index_380434)) goto LA3;
		result = t.data->data[index_380434].Field2;
	}
	LA3: ;
	return result;
}

static N_INLINE(NI, rawget_381646)(Table381057 t, NI key, NI* hc) {
	NI result;
	NI h;
{	result = 0;
	(*hc) = hash_137801(key);
	{
		if (!((*hc) == ((NI) 0))) goto LA3;
		(*hc) = ((NI) 314159265);
	}
	LA3: ;
	h = (NI)((*hc) & (t.data ? (t.data->Sup.len-1) : -1));
	{
		while (1) {
			NIM_BOOL LOC7;
			LOC7 = 0;
			LOC7 = isfilled_163263(t.data->data[h].Field0);
			if (!LOC7) goto LA6;
			{
				NIM_BOOL LOC10;
				LOC10 = 0;
				LOC10 = (t.data->data[h].Field0 == (*hc));
				if (!(LOC10)) goto LA11;
				LOC10 = (t.data->data[h].Field1 == key);
				LA11: ;
				if (!LOC10) goto LA12;
				result = h;
				goto BeforeRet;
			}
			LA12: ;
			h = nexttry_163401(h, (t.data ? (t.data->Sup.len-1) : -1));
		} LA6: ;
	}
	result = (NI)(((NI) -1) - h);
	}BeforeRet: ;
	return result;
}

N_NIMCALL(Tnode214790*, getordefault_381631)(Table381057 t, NI key) {
	Tnode214790* result;
	NI hc_381642;
	NI index_381644;
	result = 0;
	hc_381642 = 0;
	index_381644 = rawget_381646(t, key, (&hc_381642));
	{
		if (!(((NI) 0) <= index_381644)) goto LA3;
		result = t.data->data[index_381644].Field2;
	}
	LA3: ;
	return result;
}

static N_INLINE(NI, rawgetknownhc_381785)(Table381057 t, NI key, NI hc) {
	NI result;
	NI h;
{	result = 0;
	h = (NI)(hc & (t.data ? (t.data->Sup.len-1) : -1));
	{
		while (1) {
			NIM_BOOL LOC3;
			LOC3 = 0;
			LOC3 = isfilled_163263(t.data->data[h].Field0);
			if (!LOC3) goto LA2;
			{
				NIM_BOOL LOC6;
				LOC6 = 0;
				LOC6 = (t.data->data[h].Field0 == hc);
				if (!(LOC6)) goto LA7;
				LOC6 = (t.data->data[h].Field1 == key);
				LA7: ;
				if (!LOC6) goto LA8;
				result = h;
				goto BeforeRet;
			}
			LA8: ;
			h = nexttry_163401(h, (t.data ? (t.data->Sup.len-1) : -1));
		} LA2: ;
	}
	result = (NI)(((NI) -1) - h);
	}BeforeRet: ;
	return result;
}

N_NIMCALL(void, rawinsert_381801)(Table381057* t, Keyvaluepairseq381060** data, NI key, Tnode214790* val, NI hc, NI h) {
	(*data)->data[h].Field1 = key;
	asgnRefNoCycle((void**) (&(*data)->data[h].Field2), val);
	(*data)->data[h].Field0 = hc;
}

N_NIMCALL(void, enlarge_381732)(Table381057* t) {
	Keyvaluepairseq381060* n;
	Keyvaluepairseq381060* LOC1;
	n = 0;
	n = (Keyvaluepairseq381060*) newSeq((&NTI381060), ((NI) ((NI)(((*t).data ? (*t).data->Sup.len : 0) * ((NI) 2)))));
	LOC1 = 0;
	LOC1 = (*t).data;
	unsureAsgnRef((void**) (&(*t).data), n);
	n = LOC1;
	{
		NI i_381783;
		NI HEX3Atmp_381824;
		NI res_381827;
		i_381783 = 0;
		HEX3Atmp_381824 = 0;
		HEX3Atmp_381824 = (n ? (n->Sup.len-1) : -1);
		res_381827 = ((NI) 0);
		{
			while (1) {
				if (!(res_381827 <= HEX3Atmp_381824)) goto LA4;
				i_381783 = res_381827;
				{
					NIM_BOOL LOC7;
					NI j;
					NI LOC10;
					LOC7 = 0;
					LOC7 = isfilled_163263(n->data[i_381783].Field0);
					if (!LOC7) goto LA8;
					LOC10 = 0;
					LOC10 = rawgetknownhc_381785((*t), n->data[i_381783].Field1, n->data[i_381783].Field0);
					j = (NI)(((NI) -1) - LOC10);
					rawinsert_381801(t, (&(*t).data), n->data[i_381783].Field1, n->data[i_381783].Field2, n->data[i_381783].Field0, j);
				}
				LA8: ;
				res_381827 += ((NI) 1);
			} LA4: ;
		}
	}
}

N_NIMCALL(void, HEX5BHEX5DHEX3D_381696)(Table381057* t, NI key, Tnode214790* val) {
	NI hc;
	NI index;
	hc = 0;
	index = rawget_381646((*t), key, (&hc));
	{
		if (!(((NI) 0) <= index)) goto LA3;
		asgnRefNoCycle((void**) (&(*t).data->data[index].Field2), val);
	}
	goto LA1;
	LA3: ;
	{
		{
			NIM_BOOL LOC8;
			LOC8 = 0;
			LOC8 = mustrehash_163268(((*t).data ? (*t).data->Sup.len : 0), (*t).counter);
			if (!LOC8) goto LA9;
			enlarge_381732(t);
			index = rawgetknownhc_381785((*t), key, hc);
		}
		LA9: ;
		index = (NI)(((NI) -1) - index);
		rawinsert_381801(t, (&(*t).data), key, val, hc, index);
		(*t).counter += ((NI) 1);
	}
	LA1: ;
}

static N_INLINE(NIM_BOOL, eqStrings)(NimStringDesc* a, NimStringDesc* b) {
	NIM_BOOL result;
	NIM_BOOL LOC11;
	int LOC13;
{	result = 0;
	{
		if (!(a == b)) goto LA3;
		result = NIM_TRUE;
		goto BeforeRet;
	}
	LA3: ;
	{
		NIM_BOOL LOC7;
		LOC7 = 0;
		LOC7 = (a == NIM_NIL);
		if (LOC7) goto LA8;
		LOC7 = (b == NIM_NIL);
		LA8: ;
		if (!LOC7) goto LA9;
		result = NIM_FALSE;
		goto BeforeRet;
	}
	LA9: ;
	LOC11 = 0;
	LOC11 = ((*a).Sup.len == (*b).Sup.len);
	if (!(LOC11)) goto LA12;
	LOC13 = 0;
	LOC13 = memcmp(((NCSTRING) ((*a).data)), ((NCSTRING) ((*b).data)), (*a).Sup.len);
	LOC11 = (LOC13 == ((NI32) 0));
	LA12: ;
	result = LOC11;
	goto BeforeRet;
	}BeforeRet: ;
	return result;
}

static N_INLINE(NI, rawget_182720)(Table182428 t, NimStringDesc* key, NI* hc) {
	NI result;
	NI h;
{	result = 0;
	(*hc) = hash_137827(key);
	{
		if (!((*hc) == ((NI) 0))) goto LA3;
		(*hc) = ((NI) 314159265);
	}
	LA3: ;
	h = (NI)((*hc) & (t.data ? (t.data->Sup.len-1) : -1));
	{
		while (1) {
			NIM_BOOL LOC7;
			LOC7 = 0;
			LOC7 = isfilled_163263(t.data->data[h].Field0);
			if (!LOC7) goto LA6;
			{
				NIM_BOOL LOC10;
				LOC10 = 0;
				LOC10 = (t.data->data[h].Field0 == (*hc));
				if (!(LOC10)) goto LA11;
				LOC10 = eqStrings(t.data->data[h].Field1, key);
				LA11: ;
				if (!LOC10) goto LA12;
				result = h;
				goto BeforeRet;
			}
			LA12: ;
			h = nexttry_163401(h, (t.data ? (t.data->Sup.len-1) : -1));
		} LA6: ;
	}
	result = (NI)(((NI) -1) - h);
	}BeforeRet: ;
	return result;
}

N_NIMCALL(NIM_BOOL, haskey_182708)(Table182428 t, NimStringDesc* key) {
	NIM_BOOL result;
	NI hc;
	NI LOC1;
	result = 0;
	hc = 0;
	LOC1 = 0;
	LOC1 = rawget_182720(t, key, (&hc));
	result = (((NI) 0) <= LOC1);
	return result;
}

static N_INLINE(void, appendString)(NimStringDesc* dest, NimStringDesc* src) {
	memcpy(((NCSTRING) ((&(*dest).data[((*dest).Sup.len)- 0]))), ((NCSTRING) ((*src).data)), (NI)((*src).Sup.len + ((NI) 1)));
	(*dest).Sup.len += (*src).Sup.len;
}

N_NIMCALL(NI32*, HEX5BHEX5D_182740)(Table182428* t, NimStringDesc* key) {
	NI32* result;
	NI hc_182753;
	NI index_182755;
	result = 0;
	hc_182753 = 0;
	index_182755 = rawget_182720((*t), key, (&hc_182753));
	{
		if (!(((NI) 0) <= index_182755)) goto LA3;
		result = (&(*t).data->data[index_182755].Field2);
	}
	goto LA1;
	LA3: ;
	{
		Keyerror3648* e_182803;
		NimStringDesc* LOC6;
		e_182803 = 0;
		e_182803 = (Keyerror3648*) newObj((&NTI182804), sizeof(Keyerror3648));
		(*e_182803).Sup.Sup.Sup.m_type = (&NTI3648);
		LOC6 = 0;
		LOC6 = rawNewString(key->Sup.len + 15);
appendString(LOC6, ((NimStringDesc*) &TMP1230));
appendString(LOC6, key);
		asgnRefNoCycle((void**) (&(*e_182803).Sup.Sup.message), LOC6);
		raiseException((Exception*)e_182803, "KeyError");
	}
	LA1: ;
	return result;
}

static N_INLINE(NI, rawgetknownhc_182924)(Table182428 t, NimStringDesc* key, NI hc) {
	NI result;
	NI h;
{	result = 0;
	h = (NI)(hc & (t.data ? (t.data->Sup.len-1) : -1));
	{
		while (1) {
			NIM_BOOL LOC3;
			LOC3 = 0;
			LOC3 = isfilled_163263(t.data->data[h].Field0);
			if (!LOC3) goto LA2;
			{
				NIM_BOOL LOC6;
				LOC6 = 0;
				LOC6 = (t.data->data[h].Field0 == hc);
				if (!(LOC6)) goto LA7;
				LOC6 = eqStrings(t.data->data[h].Field1, key);
				LA7: ;
				if (!LOC6) goto LA8;
				result = h;
				goto BeforeRet;
			}
			LA8: ;
			h = nexttry_163401(h, (t.data ? (t.data->Sup.len-1) : -1));
		} LA2: ;
	}
	result = (NI)(((NI) -1) - h);
	}BeforeRet: ;
	return result;
}

static N_INLINE(void, nimGCunrefNoCycle)(void* p) {
	Cell47505* c;
	c = usrtocell_51440(p);
	{
		(*c).refcount -= ((NI) 8);
		if (!((NU32)((*c).refcount) < (NU32)(((NI) 8)))) goto LA3;
		rtladdzct_53001(c);
	}
	LA3: ;
}

N_NIMCALL(void, rawinsert_182940)(Table182428* t, Keyvaluepairseq182431** data, NimStringDesc* key, NI32 val, NI hc, NI h) {
	NimStringDesc* LOC1;
	LOC1 = 0;
	LOC1 = (*data)->data[h].Field1; (*data)->data[h].Field1 = copyStringRC1(key);
	if (LOC1) nimGCunrefNoCycle(LOC1);
	(*data)->data[h].Field2 = val;
	(*data)->data[h].Field0 = hc;
}

N_NIMCALL(void, enlarge_182871)(Table182428* t) {
	Keyvaluepairseq182431* n;
	Keyvaluepairseq182431* LOC1;
	n = 0;
	n = (Keyvaluepairseq182431*) newSeq((&NTI182431), ((NI) ((NI)(((*t).data ? (*t).data->Sup.len : 0) * ((NI) 2)))));
	LOC1 = 0;
	LOC1 = (*t).data;
	unsureAsgnRef((void**) (&(*t).data), n);
	n = LOC1;
	{
		NI i_182922;
		NI HEX3Atmp_182963;
		NI res_182966;
		i_182922 = 0;
		HEX3Atmp_182963 = 0;
		HEX3Atmp_182963 = (n ? (n->Sup.len-1) : -1);
		res_182966 = ((NI) 0);
		{
			while (1) {
				if (!(res_182966 <= HEX3Atmp_182963)) goto LA4;
				i_182922 = res_182966;
				{
					NIM_BOOL LOC7;
					NI j;
					NI LOC10;
					LOC7 = 0;
					LOC7 = isfilled_163263(n->data[i_182922].Field0);
					if (!LOC7) goto LA8;
					LOC10 = 0;
					LOC10 = rawgetknownhc_182924((*t), n->data[i_182922].Field1, n->data[i_182922].Field0);
					j = (NI)(((NI) -1) - LOC10);
					rawinsert_182940(t, (&(*t).data), n->data[i_182922].Field1, n->data[i_182922].Field2, n->data[i_182922].Field0, j);
				}
				LA8: ;
				res_182966 += ((NI) 1);
			} LA4: ;
		}
	}
}

N_NIMCALL(void, HEX5BHEX5DHEX3D_182835)(Table182428* t, NimStringDesc* key, NI32 val) {
	NI hc;
	NI index;
	hc = 0;
	index = rawget_182720((*t), key, (&hc));
	{
		if (!(((NI) 0) <= index)) goto LA3;
		(*t).data->data[index].Field2 = val;
	}
	goto LA1;
	LA3: ;
	{
		{
			NIM_BOOL LOC8;
			LOC8 = 0;
			LOC8 = mustrehash_163268(((*t).data ? (*t).data->Sup.len : 0), (*t).counter);
			if (!LOC8) goto LA9;
			enlarge_182871(t);
			index = rawgetknownhc_182924((*t), key, hc);
		}
		LA9: ;
		index = (NI)(((NI) -1) - index);
		rawinsert_182940(t, (&(*t).data), key, val, hc, index);
		(*t).counter += ((NI) 1);
	}
	LA1: ;
}

N_NIMCALL(void, inittable_253806)(NI initialsize, Table252054* Result) {
	(*Result).counter = ((NI) 0);
	unsureAsgnRef((void**) (&(*Result).data), (Keyvaluepairseq252057*) newSeq((&NTI252057), ((NI) (initialsize))));
}

static N_INLINE(NI, rawget_326866)(Table326047 t, NimStringDesc* key, NI* hc) {
	NI result;
	NI h;
{	result = 0;
	(*hc) = hash_137827(key);
	{
		if (!((*hc) == ((NI) 0))) goto LA3;
		(*hc) = ((NI) 314159265);
	}
	LA3: ;
	h = (NI)((*hc) & (t.data ? (t.data->Sup.len-1) : -1));
	{
		while (1) {
			NIM_BOOL LOC7;
			LOC7 = 0;
			LOC7 = isfilled_163263(t.data->data[h].Field0);
			if (!LOC7) goto LA6;
			{
				NIM_BOOL LOC10;
				LOC10 = 0;
				LOC10 = (t.data->data[h].Field0 == (*hc));
				if (!(LOC10)) goto LA11;
				LOC10 = eqStrings(t.data->data[h].Field1, key);
				LA11: ;
				if (!LOC10) goto LA12;
				result = h;
				goto BeforeRet;
			}
			LA12: ;
			h = nexttry_163401(h, (t.data ? (t.data->Sup.len-1) : -1));
		} LA6: ;
	}
	result = (NI)(((NI) -1) - h);
	}BeforeRet: ;
	return result;
}

N_NIMCALL(NIM_BOOL, haskey_326854)(Table326047 t, NimStringDesc* key) {
	NIM_BOOL result;
	NI hc;
	NI LOC1;
	result = 0;
	hc = 0;
	LOC1 = 0;
	LOC1 = rawget_326866(t, key, (&hc));
	result = (((NI) 0) <= LOC1);
	return result;
}
N_NIMCALL(void, TMP2582)(void* p, NI op) {
	Keyvaluepairseq326050* a;
	NI LOC1;
	a = (Keyvaluepairseq326050*)p;
	LOC1 = 0;
	for (LOC1 = 0; LOC1 < a->Sup.len; LOC1++) {
	nimGCvisit((void*)a->data[LOC1].Field1, op);
	}
}

static N_INLINE(NI, rawgetknownhc_327004)(Table326047 t, NimStringDesc* key, NI hc) {
	NI result;
	NI h;
{	result = 0;
	h = (NI)(hc & (t.data ? (t.data->Sup.len-1) : -1));
	{
		while (1) {
			NIM_BOOL LOC3;
			LOC3 = 0;
			LOC3 = isfilled_163263(t.data->data[h].Field0);
			if (!LOC3) goto LA2;
			{
				NIM_BOOL LOC6;
				LOC6 = 0;
				LOC6 = (t.data->data[h].Field0 == hc);
				if (!(LOC6)) goto LA7;
				LOC6 = eqStrings(t.data->data[h].Field1, key);
				LA7: ;
				if (!LOC6) goto LA8;
				result = h;
				goto BeforeRet;
			}
			LA8: ;
			h = nexttry_163401(h, (t.data ? (t.data->Sup.len-1) : -1));
		} LA2: ;
	}
	result = (NI)(((NI) -1) - h);
	}BeforeRet: ;
	return result;
}

N_NIMCALL(void, rawinsert_327020)(Table326047* t, Keyvaluepairseq326050** data, NimStringDesc* key, NI val, NI hc, NI h) {
	NimStringDesc* LOC1;
	LOC1 = 0;
	LOC1 = (*data)->data[h].Field1; (*data)->data[h].Field1 = copyStringRC1(key);
	if (LOC1) nimGCunrefNoCycle(LOC1);
	(*data)->data[h].Field2 = val;
	(*data)->data[h].Field0 = hc;
}

N_NIMCALL(void, enlarge_326951)(Table326047* t) {
	Keyvaluepairseq326050* n;
	Keyvaluepairseq326050* LOC1;
	n = 0;
	n = (Keyvaluepairseq326050*) newSeq((&NTI326050), ((NI) ((NI)(((*t).data ? (*t).data->Sup.len : 0) * ((NI) 2)))));
	LOC1 = 0;
	LOC1 = (*t).data;
	unsureAsgnRef((void**) (&(*t).data), n);
	n = LOC1;
	{
		NI i_327002;
		NI HEX3Atmp_327043;
		NI res_327046;
		i_327002 = 0;
		HEX3Atmp_327043 = 0;
		HEX3Atmp_327043 = (n ? (n->Sup.len-1) : -1);
		res_327046 = ((NI) 0);
		{
			while (1) {
				if (!(res_327046 <= HEX3Atmp_327043)) goto LA4;
				i_327002 = res_327046;
				{
					NIM_BOOL LOC7;
					NI j;
					NI LOC10;
					LOC7 = 0;
					LOC7 = isfilled_163263(n->data[i_327002].Field0);
					if (!LOC7) goto LA8;
					LOC10 = 0;
					LOC10 = rawgetknownhc_327004((*t), n->data[i_327002].Field1, n->data[i_327002].Field0);
					j = (NI)(((NI) -1) - LOC10);
					rawinsert_327020(t, (&(*t).data), n->data[i_327002].Field1, n->data[i_327002].Field2, n->data[i_327002].Field0, j);
				}
				LA8: ;
				res_327046 += ((NI) 1);
			} LA4: ;
		}
	}
}

N_NIMCALL(void, HEX5BHEX5DHEX3D_326915)(Table326047* t, NimStringDesc* key, NI val) {
	NI hc;
	NI index;
	hc = 0;
	index = rawget_326866((*t), key, (&hc));
	{
		if (!(((NI) 0) <= index)) goto LA3;
		(*t).data->data[index].Field2 = val;
	}
	goto LA1;
	LA3: ;
	{
		{
			NIM_BOOL LOC8;
			LOC8 = 0;
			LOC8 = mustrehash_163268(((*t).data ? (*t).data->Sup.len : 0), (*t).counter);
			if (!LOC8) goto LA9;
			enlarge_326951(t);
			index = rawgetknownhc_327004((*t), key, hc);
		}
		LA9: ;
		index = (NI)(((NI) -1) - index);
		rawinsert_327020(t, (&(*t).data), key, val, hc, index);
		(*t).counter += ((NI) 1);
	}
	LA1: ;
}

N_NIMCALL(NI, getordefault_326886)(Table326047 t, NimStringDesc* key) {
	NI result;
	NI hc_326897;
	NI index_326899;
	result = 0;
	hc_326897 = 0;
	index_326899 = rawget_326866(t, key, (&hc_326897));
	{
		if (!(((NI) 0) <= index_326899)) goto LA3;
		result = t.data->data[index_326899].Field2;
	}
	LA3: ;
	return result;
}
N_NIMCALL(void, TMP3083)(void* p, NI op) {
	Keyvaluepairseq398593* a;
	NI LOC1;
	a = (Keyvaluepairseq398593*)p;
	LOC1 = 0;
	for (LOC1 = 0; LOC1 < a->Sup.len; LOC1++) {
	nimGCvisit((void*)a->data[LOC1].Field2, op);
	}
}

N_NIMCALL(void, inittable_399379)(NI initialsize, Table398590* Result) {
	(*Result).counter = ((NI) 0);
	unsureAsgnRef((void**) (&(*Result).data), (Keyvaluepairseq398593*) newSeq((&NTI398593), ((NI) (initialsize))));
}

static N_INLINE(NI, hash_137805)(NI64 x) {
	NI result;
	result = 0;
	result = ((NI) (((NI32)(NU32)(NU64)(x))));
	return result;
}

static N_INLINE(NI, rawget_399113)(Table398590 t, NI64 key, NI* hc) {
	NI result;
	NI h;
{	result = 0;
	(*hc) = hash_137805(key);
	{
		if (!((*hc) == ((NI) 0))) goto LA3;
		(*hc) = ((NI) 314159265);
	}
	LA3: ;
	h = (NI)((*hc) & (t.data ? (t.data->Sup.len-1) : -1));
	{
		while (1) {
			NIM_BOOL LOC7;
			LOC7 = 0;
			LOC7 = isfilled_163263(t.data->data[h].Field0);
			if (!LOC7) goto LA6;
			{
				NIM_BOOL LOC10;
				LOC10 = 0;
				LOC10 = (t.data->data[h].Field0 == (*hc));
				if (!(LOC10)) goto LA11;
				LOC10 = (t.data->data[h].Field1 == key);
				LA11: ;
				if (!LOC10) goto LA12;
				result = h;
				goto BeforeRet;
			}
			LA12: ;
			h = nexttry_163401(h, (t.data ? (t.data->Sup.len-1) : -1));
		} LA6: ;
	}
	result = (NI)(((NI) -1) - h);
	}BeforeRet: ;
	return result;
}

N_NIMCALL(Tnode214790*, getordefault_399098)(Table398590 t, NI64 key) {
	Tnode214790* result;
	NI hc_399109;
	NI index_399111;
	result = 0;
	hc_399109 = 0;
	index_399111 = rawget_399113(t, key, (&hc_399109));
	{
		if (!(((NI) 0) <= index_399111)) goto LA3;
		result = t.data->data[index_399111].Field2;
	}
	LA3: ;
	return result;
}

static N_INLINE(NI, rawgetknownhc_399239)(Table398590 t, NI64 key, NI hc) {
	NI result;
	NI h;
{	result = 0;
	h = (NI)(hc & (t.data ? (t.data->Sup.len-1) : -1));
	{
		while (1) {
			NIM_BOOL LOC3;
			LOC3 = 0;
			LOC3 = isfilled_163263(t.data->data[h].Field0);
			if (!LOC3) goto LA2;
			{
				NIM_BOOL LOC6;
				LOC6 = 0;
				LOC6 = (t.data->data[h].Field0 == hc);
				if (!(LOC6)) goto LA7;
				LOC6 = (t.data->data[h].Field1 == key);
				LA7: ;
				if (!LOC6) goto LA8;
				result = h;
				goto BeforeRet;
			}
			LA8: ;
			h = nexttry_163401(h, (t.data ? (t.data->Sup.len-1) : -1));
		} LA2: ;
	}
	result = (NI)(((NI) -1) - h);
	}BeforeRet: ;
	return result;
}

N_NIMCALL(void, rawinsert_399255)(Table398590* t, Keyvaluepairseq398593** data, NI64 key, Tnode214790* val, NI hc, NI h) {
	(*data)->data[h].Field1 = key;
	asgnRefNoCycle((void**) (&(*data)->data[h].Field2), val);
	(*data)->data[h].Field0 = hc;
}

N_NIMCALL(void, enlarge_399186)(Table398590* t) {
	Keyvaluepairseq398593* n;
	Keyvaluepairseq398593* LOC1;
	n = 0;
	n = (Keyvaluepairseq398593*) newSeq((&NTI398593), ((NI) ((NI)(((*t).data ? (*t).data->Sup.len : 0) * ((NI) 2)))));
	LOC1 = 0;
	LOC1 = (*t).data;
	unsureAsgnRef((void**) (&(*t).data), n);
	n = LOC1;
	{
		NI i_399237;
		NI HEX3Atmp_399278;
		NI res_399281;
		i_399237 = 0;
		HEX3Atmp_399278 = 0;
		HEX3Atmp_399278 = (n ? (n->Sup.len-1) : -1);
		res_399281 = ((NI) 0);
		{
			while (1) {
				if (!(res_399281 <= HEX3Atmp_399278)) goto LA4;
				i_399237 = res_399281;
				{
					NIM_BOOL LOC7;
					NI j;
					NI LOC10;
					LOC7 = 0;
					LOC7 = isfilled_163263(n->data[i_399237].Field0);
					if (!LOC7) goto LA8;
					LOC10 = 0;
					LOC10 = rawgetknownhc_399239((*t), n->data[i_399237].Field1, n->data[i_399237].Field0);
					j = (NI)(((NI) -1) - LOC10);
					rawinsert_399255(t, (&(*t).data), n->data[i_399237].Field1, n->data[i_399237].Field2, n->data[i_399237].Field0, j);
				}
				LA8: ;
				res_399281 += ((NI) 1);
			} LA4: ;
		}
	}
}

N_NIMCALL(void, HEX5BHEX5DHEX3D_399150)(Table398590* t, NI64 key, Tnode214790* val) {
	NI hc;
	NI index;
	hc = 0;
	index = rawget_399113((*t), key, (&hc));
	{
		if (!(((NI) 0) <= index)) goto LA3;
		asgnRefNoCycle((void**) (&(*t).data->data[index].Field2), val);
	}
	goto LA1;
	LA3: ;
	{
		{
			NIM_BOOL LOC8;
			LOC8 = 0;
			LOC8 = mustrehash_163268(((*t).data ? (*t).data->Sup.len : 0), (*t).counter);
			if (!LOC8) goto LA9;
			enlarge_399186(t);
			index = rawgetknownhc_399239((*t), key, hc);
		}
		LA9: ;
		index = (NI)(((NI) -1) - index);
		rawinsert_399255(t, (&(*t).data), key, val, hc, index);
		(*t).counter += ((NI) 1);
	}
	LA1: ;
}

N_NIMCALL(void, inittable_326106)(NI initialsize, Table326047* Result) {
	(*Result).counter = ((NI) 0);
	unsureAsgnRef((void**) (&(*Result).data), (Keyvaluepairseq326050*) newSeq((&NTI326050), ((NI) (initialsize))));
}
N_NIMCALL(void, TMP5192)(void* p, NI op) {
	Keyvaluepairseq327142* a;
	NI LOC1;
	a = (Keyvaluepairseq327142*)p;
	LOC1 = 0;
	for (LOC1 = 0; LOC1 < a->Sup.len; LOC1++) {
	nimGCvisit((void*)a->data[LOC1].Field1.keyword, op);
	nimGCvisit((void*)a->data[LOC1].Field1.link, op);
	nimGCvisit((void*)a->data[LOC1].Field1.linktitle, op);
	nimGCvisit((void*)a->data[LOC1].Field1.linkdesc, op);
	nimGCvisit((void*)a->data[LOC1].Field2, op);
	}
}

N_NIMCALL(void, inittable_329875)(NI initialsize, Table327139* Result) {
	(*Result).counter = ((NI) 0);
	unsureAsgnRef((void**) (&(*Result).data), (Keyvaluepairseq327142*) newSeq((&NTI327142), ((NI) (initialsize))));
}

N_NIMCALL(NI, len_330259)(Table327139 t) {
	NI result;
	result = 0;
	result = t.counter;
	return result;
}

static N_INLINE(NI, rawget_329261)(Table327139 t, Indexentry327126 key, NI* hc) {
	NI result;
	NI h;
{	result = 0;
	(*hc) = hash_327164(key);
	{
		if (!((*hc) == ((NI) 0))) goto LA3;
		(*hc) = ((NI) 314159265);
	}
	LA3: ;
	h = (NI)((*hc) & (t.data ? (t.data->Sup.len-1) : -1));
	{
		while (1) {
			NIM_BOOL LOC7;
			LOC7 = 0;
			LOC7 = isfilled_163263(t.data->data[h].Field0);
			if (!LOC7) goto LA6;
			{
				NIM_BOOL LOC10;
				LOC10 = 0;
				LOC10 = (t.data->data[h].Field0 == (*hc));
				if (!(LOC10)) goto LA11;
				LOC10 = HEX3DHEX3D_329275(t.data->data[h].Field1, key);
				LA11: ;
				if (!LOC10) goto LA12;
				result = h;
				goto BeforeRet;
			}
			LA12: ;
			h = nexttry_163401(h, (t.data ? (t.data->Sup.len-1) : -1));
		} LA6: ;
	}
	result = (NI)(((NI) -1) - h);
	}BeforeRet: ;
	return result;
}

static N_INLINE(NI, rawgetknownhc_330357)(Table327139 t, Indexentry327126 key, NI hc) {
	NI result;
	NI h;
{	result = 0;
	h = (NI)(hc & (t.data ? (t.data->Sup.len-1) : -1));
	{
		while (1) {
			NIM_BOOL LOC3;
			LOC3 = 0;
			LOC3 = isfilled_163263(t.data->data[h].Field0);
			if (!LOC3) goto LA2;
			{
				NIM_BOOL LOC6;
				LOC6 = 0;
				LOC6 = (t.data->data[h].Field0 == hc);
				if (!(LOC6)) goto LA7;
				LOC6 = HEX3DHEX3D_329275(t.data->data[h].Field1, key);
				LA7: ;
				if (!LOC6) goto LA8;
				result = h;
				goto BeforeRet;
			}
			LA8: ;
			h = nexttry_163401(h, (t.data ? (t.data->Sup.len-1) : -1));
		} LA2: ;
	}
	result = (NI)(((NI) -1) - h);
	}BeforeRet: ;
	return result;
}

N_NIMCALL(void, rawinsert_330382)(Table327139* t, Keyvaluepairseq327142** data, Indexentry327126 key, TY329853* val, NI hc, NI h) {
	NimStringDesc* LOC1;
	NimStringDesc* LOC2;
	NimStringDesc* LOC3;
	NimStringDesc* LOC4;
	LOC1 = 0;
	LOC1 = (*data)->data[h].Field1.keyword; (*data)->data[h].Field1.keyword = copyStringRC1(key.keyword);
	if (LOC1) nimGCunrefNoCycle(LOC1);
	LOC2 = 0;
	LOC2 = (*data)->data[h].Field1.link; (*data)->data[h].Field1.link = copyStringRC1(key.link);
	if (LOC2) nimGCunrefNoCycle(LOC2);
	LOC3 = 0;
	LOC3 = (*data)->data[h].Field1.linktitle; (*data)->data[h].Field1.linktitle = copyStringRC1(key.linktitle);
	if (LOC3) nimGCunrefNoCycle(LOC3);
	LOC4 = 0;
	LOC4 = (*data)->data[h].Field1.linkdesc; (*data)->data[h].Field1.linkdesc = copyStringRC1(key.linkdesc);
	if (LOC4) nimGCunrefNoCycle(LOC4);
	genericSeqAssign((&(*data)->data[h].Field2), val, (&NTI329853));
	(*data)->data[h].Field0 = hc;
}

N_NIMCALL(void, enlarge_330304)(Table327139* t) {
	Keyvaluepairseq327142* n;
	Keyvaluepairseq327142* LOC1;
	n = 0;
	n = (Keyvaluepairseq327142*) newSeq((&NTI327142), ((NI) ((NI)(((*t).data ? (*t).data->Sup.len : 0) * ((NI) 2)))));
	LOC1 = 0;
	LOC1 = (*t).data;
	unsureAsgnRef((void**) (&(*t).data), n);
	n = LOC1;
	{
		NI i_330355;
		NI HEX3Atmp_330405;
		NI res_330408;
		i_330355 = 0;
		HEX3Atmp_330405 = 0;
		HEX3Atmp_330405 = (n ? (n->Sup.len-1) : -1);
		res_330408 = ((NI) 0);
		{
			while (1) {
				if (!(res_330408 <= HEX3Atmp_330405)) goto LA4;
				i_330355 = res_330408;
				{
					NIM_BOOL LOC7;
					NI j;
					NI LOC10;
					LOC7 = 0;
					LOC7 = isfilled_163263(n->data[i_330355].Field0);
					if (!LOC7) goto LA8;
					LOC10 = 0;
					LOC10 = rawgetknownhc_330357((*t), n->data[i_330355].Field1, n->data[i_330355].Field0);
					j = (NI)(((NI) -1) - LOC10);
					rawinsert_330382(t, (&(*t).data), n->data[i_330355].Field1, n->data[i_330355].Field2, n->data[i_330355].Field0, j);
				}
				LA8: ;
				res_330408 += ((NI) 1);
			} LA4: ;
		}
	}
}

N_NIMCALL(void, HEX5BHEX5DHEX3D_330268)(Table327139* t, Indexentry327126 key, TY329853* val) {
	NI hc;
	NI index;
	hc = 0;
	index = rawget_329261((*t), key, (&hc));
	{
		if (!(((NI) 0) <= index)) goto LA3;
		genericSeqAssign((&(*t).data->data[index].Field2), val, (&NTI329853));
	}
	goto LA1;
	LA3: ;
	{
		{
			NIM_BOOL LOC8;
			LOC8 = 0;
			LOC8 = mustrehash_163268(((*t).data ? (*t).data->Sup.len : 0), (*t).counter);
			if (!LOC8) goto LA9;
			enlarge_330304(t);
			index = rawgetknownhc_330357((*t), key, hc);
		}
		LA9: ;
		index = (NI)(((NI) -1) - index);
		rawinsert_330382(t, (&(*t).data), key, val, hc, index);
		(*t).counter += ((NI) 1);
	}
	LA1: ;
}

N_NIMCALL(TY329853*, getordefault_329246)(Table327139 t, Indexentry327126 key) {
	TY329853* result;
	NI hc_329257;
	NI index_329259;
	result = 0;
	hc_329257 = 0;
	index_329259 = rawget_329261(t, key, (&hc_329257));
	{
		if (!(((NI) 0) <= index_329259)) goto LA3;
		genericSeqAssign((&result), t.data->data[index_329259].Field2, (&NTI329853));
	}
	LA3: ;
	return result;
}
NIM_EXTERNC N_NOINLINE(void, stdlib_tablesInit000)(void) {
}

NIM_EXTERNC N_NOINLINE(void, stdlib_tablesDatInit000)(void) {
static TNimNode* TMP138[3];
static TNimNode* TMP142[2];
static TNimNode* TMP909[2];
static TNimNode* TMP910[3];
static TNimNode* TMP1124[3];
static TNimNode* TMP1126[3];
static TNimNode* TMP2581[3];
static TNimNode* TMP3082[3];
static TNimNode* TMP5035[2];
static TNimNode* TMP5189[3];
static TNimNode TMP55[37];
NTI182434.size = sizeof(Keyvaluepair182434);
NTI182434.kind = 18;
NTI182434.base = 0;
NTI182434.flags = 2;
TMP138[0] = &TMP55[1];
TMP55[1].kind = 1;
TMP55[1].offset = offsetof(Keyvaluepair182434, Field0);
TMP55[1].typ = (&NTI137002);
TMP55[1].name = "Field0";
TMP138[1] = &TMP55[2];
TMP55[2].kind = 1;
TMP55[2].offset = offsetof(Keyvaluepair182434, Field1);
TMP55[2].typ = (&NTI138);
TMP55[2].name = "Field1";
TMP138[2] = &TMP55[3];
TMP55[3].kind = 1;
TMP55[3].offset = offsetof(Keyvaluepair182434, Field2);
TMP55[3].typ = (&NTI110);
TMP55[3].name = "Field2";
TMP55[0].len = 3; TMP55[0].kind = 2; TMP55[0].sons = &TMP138[0];
NTI182434.node = &TMP55[0];
NTI182431.size = sizeof(Keyvaluepairseq182431*);
NTI182431.kind = 24;
NTI182431.base = (&NTI182434);
NTI182431.flags = 2;
NTI182431.marker = TMP139;
NTI182428.size = sizeof(Table182428);
NTI182428.kind = 18;
NTI182428.base = 0;
NTI182428.flags = 2;
TMP142[0] = &TMP55[5];
TMP55[5].kind = 1;
TMP55[5].offset = offsetof(Table182428, data);
TMP55[5].typ = (&NTI182431);
TMP55[5].name = "data";
TMP142[1] = &TMP55[6];
TMP55[6].kind = 1;
TMP55[6].offset = offsetof(Table182428, counter);
TMP55[6].typ = (&NTI104);
TMP55[6].name = "counter";
TMP55[4].len = 2; TMP55[4].kind = 2; TMP55[4].sons = &TMP142[0];
NTI182428.node = &TMP55[4];
NTI252054.size = sizeof(Table252054);
NTI252054.kind = 18;
NTI252054.base = 0;
NTI252054.flags = 2;
TMP909[0] = &TMP55[8];
NTI252060.size = sizeof(Keyvaluepair252060);
NTI252060.kind = 18;
NTI252060.base = 0;
NTI252060.flags = 2;
TMP910[0] = &TMP55[10];
TMP55[10].kind = 1;
TMP55[10].offset = offsetof(Keyvaluepair252060, Field0);
TMP55[10].typ = (&NTI137002);
TMP55[10].name = "Field0";
TMP910[1] = &TMP55[11];
TMP55[11].kind = 1;
TMP55[11].offset = offsetof(Keyvaluepair252060, Field1);
TMP55[11].typ = (&NTI104);
TMP55[11].name = "Field1";
TMP910[2] = &TMP55[12];
TMP55[12].kind = 1;
TMP55[12].offset = offsetof(Keyvaluepair252060, Field2);
TMP55[12].typ = (&NTI214788);
TMP55[12].name = "Field2";
TMP55[9].len = 3; TMP55[9].kind = 2; TMP55[9].sons = &TMP910[0];
NTI252060.node = &TMP55[9];
NTI252057.size = sizeof(Keyvaluepairseq252057*);
NTI252057.kind = 24;
NTI252057.base = (&NTI252060);
NTI252057.flags = 2;
NTI252057.marker = TMP911;
TMP55[8].kind = 1;
TMP55[8].offset = offsetof(Table252054, data);
TMP55[8].typ = (&NTI252057);
TMP55[8].name = "data";
TMP909[1] = &TMP55[13];
TMP55[13].kind = 1;
TMP55[13].offset = offsetof(Table252054, counter);
TMP55[13].typ = (&NTI104);
TMP55[13].name = "counter";
TMP55[7].len = 2; TMP55[7].kind = 2; TMP55[7].sons = &TMP909[0];
NTI252054.node = &TMP55[7];
NTI380262.size = sizeof(Keyvaluepair380262);
NTI380262.kind = 18;
NTI380262.base = 0;
NTI380262.flags = 2;
TMP1124[0] = &TMP55[15];
TMP55[15].kind = 1;
TMP55[15].offset = offsetof(Keyvaluepair380262, Field0);
TMP55[15].typ = (&NTI137002);
TMP55[15].name = "Field0";
TMP1124[1] = &TMP55[16];
TMP55[16].kind = 1;
TMP55[16].offset = offsetof(Keyvaluepair380262, Field1);
TMP55[16].typ = (&NTI104);
TMP55[16].name = "Field1";
TMP1124[2] = &TMP55[17];
TMP55[17].kind = 1;
TMP55[17].offset = offsetof(Keyvaluepair380262, Field2);
TMP55[17].typ = (&NTI214786);
TMP55[17].name = "Field2";
TMP55[14].len = 3; TMP55[14].kind = 2; TMP55[14].sons = &TMP1124[0];
NTI380262.node = &TMP55[14];
NTI380259.size = sizeof(Keyvaluepairseq380259*);
NTI380259.kind = 24;
NTI380259.base = (&NTI380262);
NTI380259.flags = 2;
NTI380259.marker = TMP1125;
NTI381063.size = sizeof(Keyvaluepair381063);
NTI381063.kind = 18;
NTI381063.base = 0;
NTI381063.flags = 2;
TMP1126[0] = &TMP55[19];
TMP55[19].kind = 1;
TMP55[19].offset = offsetof(Keyvaluepair381063, Field0);
TMP55[19].typ = (&NTI137002);
TMP55[19].name = "Field0";
TMP1126[1] = &TMP55[20];
TMP55[20].kind = 1;
TMP55[20].offset = offsetof(Keyvaluepair381063, Field1);
TMP55[20].typ = (&NTI104);
TMP55[20].name = "Field1";
TMP1126[2] = &TMP55[21];
TMP55[21].kind = 1;
TMP55[21].offset = offsetof(Keyvaluepair381063, Field2);
TMP55[21].typ = (&NTI214782);
TMP55[21].name = "Field2";
TMP55[18].len = 3; TMP55[18].kind = 2; TMP55[18].sons = &TMP1126[0];
NTI381063.node = &TMP55[18];
NTI381060.size = sizeof(Keyvaluepairseq381060*);
NTI381060.kind = 24;
NTI381060.base = (&NTI381063);
NTI381060.flags = 2;
NTI381060.marker = TMP1127;
NTI326053.size = sizeof(Keyvaluepair326053);
NTI326053.kind = 18;
NTI326053.base = 0;
NTI326053.flags = 2;
TMP2581[0] = &TMP55[23];
TMP55[23].kind = 1;
TMP55[23].offset = offsetof(Keyvaluepair326053, Field0);
TMP55[23].typ = (&NTI137002);
TMP55[23].name = "Field0";
TMP2581[1] = &TMP55[24];
TMP55[24].kind = 1;
TMP55[24].offset = offsetof(Keyvaluepair326053, Field1);
TMP55[24].typ = (&NTI138);
TMP55[24].name = "Field1";
TMP2581[2] = &TMP55[25];
TMP55[25].kind = 1;
TMP55[25].offset = offsetof(Keyvaluepair326053, Field2);
TMP55[25].typ = (&NTI104);
TMP55[25].name = "Field2";
TMP55[22].len = 3; TMP55[22].kind = 2; TMP55[22].sons = &TMP2581[0];
NTI326053.node = &TMP55[22];
NTI326050.size = sizeof(Keyvaluepairseq326050*);
NTI326050.kind = 24;
NTI326050.base = (&NTI326053);
NTI326050.flags = 2;
NTI326050.marker = TMP2582;
NTI398596.size = sizeof(Keyvaluepair398596);
NTI398596.kind = 18;
NTI398596.base = 0;
NTI398596.flags = 2;
TMP3082[0] = &TMP55[27];
TMP55[27].kind = 1;
TMP55[27].offset = offsetof(Keyvaluepair398596, Field0);
TMP55[27].typ = (&NTI137002);
TMP55[27].name = "Field0";
TMP3082[1] = &TMP55[28];
TMP55[28].kind = 1;
TMP55[28].offset = offsetof(Keyvaluepair398596, Field1);
TMP55[28].typ = (&NTI7088);
TMP55[28].name = "Field1";
TMP3082[2] = &TMP55[29];
TMP55[29].kind = 1;
TMP55[29].offset = offsetof(Keyvaluepair398596, Field2);
TMP55[29].typ = (&NTI214782);
TMP55[29].name = "Field2";
TMP55[26].len = 3; TMP55[26].kind = 2; TMP55[26].sons = &TMP3082[0];
NTI398596.node = &TMP55[26];
NTI398593.size = sizeof(Keyvaluepairseq398593*);
NTI398593.kind = 24;
NTI398593.base = (&NTI398596);
NTI398593.flags = 2;
NTI398593.marker = TMP3083;
NTI326047.size = sizeof(Table326047);
NTI326047.kind = 18;
NTI326047.base = 0;
NTI326047.flags = 2;
TMP5035[0] = &TMP55[31];
TMP55[31].kind = 1;
TMP55[31].offset = offsetof(Table326047, data);
TMP55[31].typ = (&NTI326050);
TMP55[31].name = "data";
TMP5035[1] = &TMP55[32];
TMP55[32].kind = 1;
TMP55[32].offset = offsetof(Table326047, counter);
TMP55[32].typ = (&NTI104);
TMP55[32].name = "counter";
TMP55[30].len = 2; TMP55[30].kind = 2; TMP55[30].sons = &TMP5035[0];
NTI326047.node = &TMP55[30];
NTI327145.size = sizeof(Keyvaluepair327145);
NTI327145.kind = 18;
NTI327145.base = 0;
NTI327145.flags = 2;
TMP5189[0] = &TMP55[34];
TMP55[34].kind = 1;
TMP55[34].offset = offsetof(Keyvaluepair327145, Field0);
TMP55[34].typ = (&NTI137002);
TMP55[34].name = "Field0";
TMP5189[1] = &TMP55[35];
TMP55[35].kind = 1;
TMP55[35].offset = offsetof(Keyvaluepair327145, Field1);
TMP55[35].typ = (&NTI327126);
TMP55[35].name = "Field1";
TMP5189[2] = &TMP55[36];
TMP55[36].kind = 1;
TMP55[36].offset = offsetof(Keyvaluepair327145, Field2);
TMP55[36].typ = (&NTI329853);
TMP55[36].name = "Field2";
TMP55[33].len = 3; TMP55[33].kind = 2; TMP55[33].sons = &TMP5189[0];
NTI327145.node = &TMP55[33];
NTI327142.size = sizeof(Keyvaluepairseq327142*);
NTI327142.kind = 24;
NTI327142.base = (&NTI327145);
NTI327142.flags = 2;
NTI327142.marker = TMP5192;
}

