/* Generated by Nim Compiler v1.6.8 */
#define NIM_INTBITS 32

#include "nimbase.h"
#include <string.h>
#include <math.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_Int128__9a9axPfb75jdWY25AamJewkA tyObject_Int128__9a9axPfb75jdWY25AamJewkA;
typedef struct NimStringDesc NimStringDesc;
typedef struct TGenericSeq TGenericSeq;
typedef struct tyTuple__0titlMXgFgzRLN6v28f9azA tyTuple__0titlMXgFgzRLN6v28f9azA;
typedef NU32 tyArray__FleBT9cC2nxhgiXmSYYnEKA[4];
struct tyObject_Int128__9a9axPfb75jdWY25AamJewkA {
tyArray__FleBT9cC2nxhgiXmSYYnEKA udata;
};
struct TGenericSeq {
NI len;
NI reserved;
};
struct NimStringDesc {
  TGenericSeq Sup;
NIM_CHAR data[SEQ_DECL_SIZE];
};
struct tyTuple__0titlMXgFgzRLN6v28f9azA {
tyObject_Int128__9a9axPfb75jdWY25AamJewkA Field0;
tyObject_Int128__9a9axPfb75jdWY25AamJewkA Field1;
};
static N_INLINE(void, nimZeroMem)(void* p, NI size);
static N_INLINE(void, nimSetMem__systemZmemory_7)(void* a, int v, NI size);
N_LIB_PRIVATE N_NIMCALL(NI, cmp__int495056_279)(tyObject_Int128__9a9axPfb75jdWY25AamJewkA a, tyObject_Int128__9a9axPfb75jdWY25AamJewkA b);
N_LIB_PRIVATE N_NIMCALL(NI, cmp__int495056_283)(NI32 x, NI32 y);
N_LIB_PRIVATE N_NIMCALL(NI, cmp__int495056_289)(NU32 x, NU32 y);
N_LIB_PRIVATE N_NIMCALL(tyObject_Int128__9a9axPfb75jdWY25AamJewkA, toInt128__int495056_734)(NI64 arg);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, eqeq___int495056_313)(tyObject_Int128__9a9axPfb75jdWY25AamJewkA a, tyObject_Int128__9a9axPfb75jdWY25AamJewkA b);
N_LIB_PRIVATE N_NIMCALL(tyObject_Int128__9a9axPfb75jdWY25AamJewkA, plus___int495056_448)(tyObject_Int128__9a9axPfb75jdWY25AamJewkA a, tyObject_Int128__9a9axPfb75jdWY25AamJewkA b);
N_LIB_PRIVATE N_NIMCALL(tyObject_Int128__9a9axPfb75jdWY25AamJewkA, minus___int495056_471)(tyObject_Int128__9a9axPfb75jdWY25AamJewkA a);
N_LIB_PRIVATE N_NIMCALL(tyObject_Int128__9a9axPfb75jdWY25AamJewkA, bitnot__int495056_319)(tyObject_Int128__9a9axPfb75jdWY25AamJewkA a);
N_LIB_PRIVATE N_NIMCALL(void, inc__int495056_251)(tyObject_Int128__9a9axPfb75jdWY25AamJewkA* a, NU32 y);
N_LIB_PRIVATE N_NIMCALL(void, failedAssertImpl__systemZassertions_56)(NimStringDesc* msg);
N_LIB_PRIVATE N_NIMCALL(tyObject_Int128__9a9axPfb75jdWY25AamJewkA, minus___int495056_474)(tyObject_Int128__9a9axPfb75jdWY25AamJewkA a, tyObject_Int128__9a9axPfb75jdWY25AamJewkA b);
N_LIB_PRIVATE N_NIMCALL(NU64, bitconcat__int495056_64)(NU32 a, NU32 b);
N_LIB_PRIVATE N_NIMCALL(tyObject_Int128__9a9axPfb75jdWY25AamJewkA, star___int495056_487)(tyObject_Int128__9a9axPfb75jdWY25AamJewkA a, NU32 b);
N_LIB_PRIVATE N_NIMCALL(NI, abs__int495056_484)(NI32 a);
static N_INLINE(tyObject_Int128__9a9axPfb75jdWY25AamJewkA, maskUInt8__int495056_856)(tyObject_Int128__9a9axPfb75jdWY25AamJewkA arg);
static N_INLINE(tyObject_Int128__9a9axPfb75jdWY25AamJewkA, maskUInt16__int495056_853)(tyObject_Int128__9a9axPfb75jdWY25AamJewkA arg);
static N_INLINE(tyObject_Int128__9a9axPfb75jdWY25AamJewkA, maskUInt32__int495056_850)(tyObject_Int128__9a9axPfb75jdWY25AamJewkA arg);
static N_INLINE(tyObject_Int128__9a9axPfb75jdWY25AamJewkA, maskUInt64__int495056_847)(tyObject_Int128__9a9axPfb75jdWY25AamJewkA arg);
N_LIB_PRIVATE N_NIMCALL(tyObject_Int128__9a9axPfb75jdWY25AamJewkA, makeInt128__int495056_522)(NU64 high, NU64 low);
N_LIB_PRIVATE N_NIMCALL(NU64, high64__int495056_534)(tyObject_Int128__9a9axPfb75jdWY25AamJewkA a);
N_LIB_PRIVATE N_NIMCALL(NU64, low64__int495056_537)(tyObject_Int128__9a9axPfb75jdWY25AamJewkA a);
N_LIB_PRIVATE N_NIMCALL(void, pluseq___int495056_468)(tyObject_Int128__9a9axPfb75jdWY25AamJewkA* a, tyObject_Int128__9a9axPfb75jdWY25AamJewkA b);
N_LIB_PRIVATE N_NIMCALL(tyObject_Int128__9a9axPfb75jdWY25AamJewkA, shl__int495056_379)(tyObject_Int128__9a9axPfb75jdWY25AamJewkA a, NI b);
N_LIB_PRIVATE N_NIMCALL(tyObject_Int128__9a9axPfb75jdWY25AamJewkA, toInt128__int495056_556)(NU64 arg);
N_LIB_PRIVATE N_NIMCALL(void, divMod__int495056_601)(tyObject_Int128__9a9axPfb75jdWY25AamJewkA dividend, tyObject_Int128__9a9axPfb75jdWY25AamJewkA divisor, tyTuple__0titlMXgFgzRLN6v28f9azA* Result);
N_LIB_PRIVATE N_NIMCALL(tyObject_Int128__9a9axPfb75jdWY25AamJewkA, abs__int495056_481)(tyObject_Int128__9a9axPfb75jdWY25AamJewkA a);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, lt___int495056_305)(tyObject_Int128__9a9axPfb75jdWY25AamJewkA a, tyObject_Int128__9a9axPfb75jdWY25AamJewkA b);
N_LIB_PRIVATE N_NIMCALL(NI, fastLog2__int495056_575)(tyObject_Int128__9a9axPfb75jdWY25AamJewkA a);
static N_INLINE(NI, fastLog2__int495056_578)(NU32 x);
N_CDECL(int, __builtin_clz)(unsigned int x);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, lteq___int495056_309)(tyObject_Int128__9a9axPfb75jdWY25AamJewkA a, tyObject_Int128__9a9axPfb75jdWY25AamJewkA b);
N_LIB_PRIVATE N_NIMCALL(void, minuseq___int495056_478)(tyObject_Int128__9a9axPfb75jdWY25AamJewkA* a, tyObject_Int128__9a9axPfb75jdWY25AamJewkA b);
N_LIB_PRIVATE N_NIMCALL(tyObject_Int128__9a9axPfb75jdWY25AamJewkA, bitor__int495056_326)(tyObject_Int128__9a9axPfb75jdWY25AamJewkA a, tyObject_Int128__9a9axPfb75jdWY25AamJewkA b);
N_LIB_PRIVATE N_NIMCALL(tyObject_Int128__9a9axPfb75jdWY25AamJewkA, shr__int495056_334)(tyObject_Int128__9a9axPfb75jdWY25AamJewkA a, NI b);
N_LIB_PRIVATE N_NIMCALL(void, addInt128__int495056_643)(NimStringDesc** result, tyObject_Int128__9a9axPfb75jdWY25AamJewkA value);
static N_INLINE(void, appendString)(NimStringDesc* dest, NimStringDesc* src);
static N_INLINE(void, copyMem__system_1727)(void* dest, void* source, NI size);
static N_INLINE(void, nimCopyMem)(void* dest, void* source, NI size);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, resizeString)(NimStringDesc* dest, NI addlen);
N_LIB_PRIVATE N_NIMCALL(void, unsureAsgnRef)(void** dest, void* src);
N_LIB_PRIVATE N_NIMCALL(NI64, toInt64__int495056_88)(tyObject_Int128__9a9axPfb75jdWY25AamJewkA arg);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, addChar)(NimStringDesc* s, NIM_CHAR c);
static N_INLINE(NF, abs__pureZmath_150)(NF x);
N_LIB_PRIVATE N_NIMCALL(NI32, toInt32__int495056_107)(tyObject_Int128__9a9axPfb75jdWY25AamJewkA arg);
N_LIB_PRIVATE NIM_CONST tyObject_Int128__9a9axPfb75jdWY25AamJewkA Zero__int495056_7 = {{((NU32) 0),
((NU32) 0),
((NU32) 0),
((NU32) 0)}
}
;
N_LIB_PRIVATE NIM_CONST tyObject_Int128__9a9axPfb75jdWY25AamJewkA Max__int495056_27 = {{((NU32) IL64(4294967295)),
((NU32) IL64(4294967295)),
((NU32) IL64(4294967295)),
((NU32) 2147483647)}
}
;
STRING_LITERAL(TM__nQVdjfHleOuOqvMTepKJUw_2, "int128.nim(186, 17) `a.sdata(3) != low(int32)` overflow", 55);
N_LIB_PRIVATE NIM_CONST tyObject_Int128__9a9axPfb75jdWY25AamJewkA One__int495056_8 = {{((NU32) 1),
((NU32) 0),
((NU32) 0),
((NU32) 0)}
}
;
N_LIB_PRIVATE NIM_CONST tyObject_Int128__9a9axPfb75jdWY25AamJewkA NegOne__int495056_28 = {{((NU32) IL64(4294967295)),
((NU32) IL64(4294967295)),
((NU32) IL64(4294967295)),
((NU32) IL64(4294967295))}
}
;
STRING_LITERAL(TM__nQVdjfHleOuOqvMTepKJUw_3, "0", 1);
N_LIB_PRIVATE NIM_CONST tyObject_Int128__9a9axPfb75jdWY25AamJewkA Min__int495056_10 = {{((NU32) 0),
((NU32) 0),
((NU32) 0),
((NU32) IL64(2147483648))}
}
;
STRING_LITERAL(TM__nQVdjfHleOuOqvMTepKJUw_4, "-170141183460469231731687303715884105728", 40);
N_LIB_PRIVATE NIM_CONST tyObject_Int128__9a9axPfb75jdWY25AamJewkA Ten__int495056_9 = {{((NU32) 10),
((NU32) 0),
((NU32) 0),
((NU32) 0)}
}
;
STRING_LITERAL(TM__nQVdjfHleOuOqvMTepKJUw_5, "0123456789", 10);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, eqeq___int495056_313)(tyObject_Int128__9a9axPfb75jdWY25AamJewkA a, tyObject_Int128__9a9axPfb75jdWY25AamJewkA b) {
	NIM_BOOL result;
{	result = (NIM_BOOL)0;
	{
		if (!!((a.udata[(((NI) 0))- 0] == b.udata[(((NI) 0))- 0]))) goto LA3_;
		result = NIM_FALSE;
		goto BeforeRet_;
	}
	LA3_: ;
	{
		if (!!((a.udata[(((NI) 1))- 0] == b.udata[(((NI) 1))- 0]))) goto LA7_;
		result = NIM_FALSE;
		goto BeforeRet_;
	}
	LA7_: ;
	{
		if (!!((a.udata[(((NI) 2))- 0] == b.udata[(((NI) 2))- 0]))) goto LA11_;
		result = NIM_FALSE;
		goto BeforeRet_;
	}
	LA11_: ;
	{
		if (!!((a.udata[(((NI) 3))- 0] == b.udata[(((NI) 3))- 0]))) goto LA15_;
		result = NIM_FALSE;
		goto BeforeRet_;
	}
	LA15_: ;
	result = NIM_TRUE;
	goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
static N_INLINE(void, nimSetMem__systemZmemory_7)(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__systemZmemory_7(p, ((int) 0), size);
}
N_LIB_PRIVATE N_NIMCALL(tyObject_Int128__9a9axPfb75jdWY25AamJewkA, toInt128__int495056_556)(NU64 arg) {
	tyObject_Int128__9a9axPfb75jdWY25AamJewkA result;
	nimZeroMem((void*)(&result), sizeof(tyObject_Int128__9a9axPfb75jdWY25AamJewkA));
	result.udata[(((NI) 0))- 0] = ((NU32) ((NU64)(arg & 4294967295ULL)));
	result.udata[(((NI) 1))- 0] = ((NU32) ((NU64)((NU64)(arg) >> (NU64)(((NI) 32)))));
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_Int128__9a9axPfb75jdWY25AamJewkA, toInt128__int495056_734)(NI64 arg) {
	tyObject_Int128__9a9axPfb75jdWY25AamJewkA result;
	NI64 tmp;
	nimZeroMem((void*)(&result), sizeof(tyObject_Int128__9a9axPfb75jdWY25AamJewkA));
	tmp = arg;
	result.udata[(((NI) 0))- 0] = ((NU32) ((NI64)(tmp & IL64(4294967295))));
	(*((NI32*) ((&result.udata[(((NI) 1))- 0])))) = ((NI32) ((NI64)((NI64)(tmp) >> (NU64)(((NI) 32)))));
	{
		if (!(arg < IL64(0))) goto LA3_;
		(*((NI32*) ((&result.udata[(((NI) 2))- 0])))) = ((NI32) -1);
		(*((NI32*) ((&result.udata[(((NI) 3))- 0])))) = ((NI32) -1);
	}
	LA3_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_Int128__9a9axPfb75jdWY25AamJewkA, toInt128__types_1378)(NI arg) {
	tyObject_Int128__9a9axPfb75jdWY25AamJewkA result;
	nimZeroMem((void*)(&result), sizeof(tyObject_Int128__9a9axPfb75jdWY25AamJewkA));
	(*((NI32*) ((&result.udata[(((NI) 0))- 0])))) = ((NI32) (arg));
	{
		if (!(arg < ((NI) 0))) goto LA3_;
		(*((NI32*) ((&result.udata[(((NI) 1))- 0])))) = ((NI32) -1);
		(*((NI32*) ((&result.udata[(((NI) 2))- 0])))) = ((NI32) -1);
		(*((NI32*) ((&result.udata[(((NI) 3))- 0])))) = ((NI32) -1);
	}
	LA3_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_Int128__9a9axPfb75jdWY25AamJewkA, toInt128__types_1469)(NU arg) {
	tyObject_Int128__9a9axPfb75jdWY25AamJewkA result;
	nimZeroMem((void*)(&result), sizeof(tyObject_Int128__9a9axPfb75jdWY25AamJewkA));
	result.udata[(((NI) 0))- 0] = ((NU32) (arg));
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NI, cmp__int495056_279)(tyObject_Int128__9a9axPfb75jdWY25AamJewkA a, tyObject_Int128__9a9axPfb75jdWY25AamJewkA b) {
	NI result;
	NI tmp1;
	NI tmp2;
	NI tmp3;
	NI tmp4;
{	result = (NI)0;
	tmp1 = cmp__int495056_283((*((NI32*) ((&a.udata[(((NI) 3))- 0])))), (*((NI32*) ((&b.udata[(((NI) 3))- 0])))));
	{
		if (!!((tmp1 == ((NI) 0)))) goto LA3_;
		result = tmp1;
		goto BeforeRet_;
	}
	LA3_: ;
	tmp2 = cmp__int495056_289(a.udata[(((NI) 2))- 0], b.udata[(((NI) 2))- 0]);
	{
		if (!!((tmp2 == ((NI) 0)))) goto LA7_;
		result = tmp2;
		goto BeforeRet_;
	}
	LA7_: ;
	tmp3 = cmp__int495056_289(a.udata[(((NI) 1))- 0], b.udata[(((NI) 1))- 0]);
	{
		if (!!((tmp3 == ((NI) 0)))) goto LA11_;
		result = tmp3;
		goto BeforeRet_;
	}
	LA11_: ;
	tmp4 = cmp__int495056_289(a.udata[(((NI) 0))- 0], b.udata[(((NI) 0))- 0]);
	result = tmp4;
	goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, lteq___int495056_309)(tyObject_Int128__9a9axPfb75jdWY25AamJewkA a, tyObject_Int128__9a9axPfb75jdWY25AamJewkA b) {
	NIM_BOOL result;
	NI T1_;
	result = (NIM_BOOL)0;
	T1_ = (NI)0;
	T1_ = cmp__int495056_279(a, b);
	result = (T1_ <= ((NI) 0));
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, lteq___int495056_754)(tyObject_Int128__9a9axPfb75jdWY25AamJewkA a, NI64 b) {
	NIM_BOOL result;
	tyObject_Int128__9a9axPfb75jdWY25AamJewkA T1_;
	NI T2_;
	result = (NIM_BOOL)0;
	T1_ = toInt128__int495056_734(b);
	T2_ = (NI)0;
	T2_ = cmp__int495056_279(a, T1_);
	result = (T2_ <= ((NI) 0));
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, lteq___int495056_761)(NI64 a, tyObject_Int128__9a9axPfb75jdWY25AamJewkA b) {
	NIM_BOOL result;
	tyObject_Int128__9a9axPfb75jdWY25AamJewkA T1_;
	NI T2_;
	result = (NIM_BOOL)0;
	T1_ = toInt128__int495056_734(a);
	T2_ = (NI)0;
	T2_ = cmp__int495056_279(T1_, b);
	result = (T2_ <= ((NI) 0));
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, eqeq___int495056_768)(tyObject_Int128__9a9axPfb75jdWY25AamJewkA a, NI64 b) {
	NIM_BOOL result;
	tyObject_Int128__9a9axPfb75jdWY25AamJewkA T1_;
	result = (NIM_BOOL)0;
	T1_ = toInt128__int495056_734(b);
	result = eqeq___int495056_313(a, T1_);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_Int128__9a9axPfb75jdWY25AamJewkA, plus___int495056_448)(tyObject_Int128__9a9axPfb75jdWY25AamJewkA a, tyObject_Int128__9a9axPfb75jdWY25AamJewkA b) {
	tyObject_Int128__9a9axPfb75jdWY25AamJewkA result;
	NU64 tmp0;
	NU64 tmp1;
	NU64 tmp2;
	NU64 tmp3;
	nimZeroMem((void*)(&result), sizeof(tyObject_Int128__9a9axPfb75jdWY25AamJewkA));
	tmp0 = (NU64)((NU64)(((NU64) (a.udata[(((NI) 0))- 0]))) + (NU64)(((NU64) (b.udata[(((NI) 0))- 0]))));
	result.udata[(((NI) 0))- 0] = ((NU32) (tmp0));
	tmp1 = (NU64)((NU64)((NU64)((NU64)(((NU64) (a.udata[(((NI) 1))- 0]))) + (NU64)(((NU64) (b.udata[(((NI) 1))- 0]))))) + (NU64)((NU64)((NU64)(tmp0) >> (NU64)(((NI) 32)))));
	result.udata[(((NI) 1))- 0] = ((NU32) (tmp1));
	tmp2 = (NU64)((NU64)((NU64)((NU64)(((NU64) (a.udata[(((NI) 2))- 0]))) + (NU64)(((NU64) (b.udata[(((NI) 2))- 0]))))) + (NU64)((NU64)((NU64)(tmp1) >> (NU64)(((NI) 32)))));
	result.udata[(((NI) 2))- 0] = ((NU32) (tmp2));
	tmp3 = (NU64)((NU64)((NU64)((NU64)(((NU64) (a.udata[(((NI) 3))- 0]))) + (NU64)(((NU64) (b.udata[(((NI) 3))- 0]))))) + (NU64)((NU64)((NU64)(tmp2) >> (NU64)(((NI) 32)))));
	result.udata[(((NI) 3))- 0] = ((NU32) (tmp3));
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_Int128__9a9axPfb75jdWY25AamJewkA, bitnot__int495056_319)(tyObject_Int128__9a9axPfb75jdWY25AamJewkA a) {
	tyObject_Int128__9a9axPfb75jdWY25AamJewkA result;
	nimZeroMem((void*)(&result), sizeof(tyObject_Int128__9a9axPfb75jdWY25AamJewkA));
	result.udata[(((NI) 0))- 0] = (NU32)((NU32) ~(a.udata[(((NI) 0))- 0]));
	result.udata[(((NI) 1))- 0] = (NU32)((NU32) ~(a.udata[(((NI) 1))- 0]));
	result.udata[(((NI) 2))- 0] = (NU32)((NU32) ~(a.udata[(((NI) 2))- 0]));
	result.udata[(((NI) 3))- 0] = (NU32)((NU32) ~(a.udata[(((NI) 3))- 0]));
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, inc__int495056_251)(tyObject_Int128__9a9axPfb75jdWY25AamJewkA* a, NU32 y) {
	(*a).udata[(((NI) 0))- 0] += y;
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = NIM_UNLIKELY(((NU32)((*a).udata[(((NI) 0))- 0]) < (NU32)(y)));
		if (!T3_) goto LA4_;
		(*a).udata[(((NI) 1))- 0] += ((NI) 1);
		{
			NIM_BOOL T8_;
			T8_ = (NIM_BOOL)0;
			T8_ = NIM_UNLIKELY(((*a).udata[(((NI) 1))- 0] == ((NU32) 0)));
			if (!T8_) goto LA9_;
			(*a).udata[(((NI) 2))- 0] += ((NI) 1);
			{
				NIM_BOOL T13_;
				T13_ = (NIM_BOOL)0;
				T13_ = NIM_UNLIKELY(((*a).udata[(((NI) 2))- 0] == ((NU32) 0)));
				if (!T13_) goto LA14_;
				(*a).udata[(((NI) 3))- 0] += ((NI) 1);
				{
					if (!!(!(((*((NI32*) ((&(*a).udata[(((NI) 3))- 0])))) == ((NI32) (-2147483647 -1)))))) goto LA18_;
					failedAssertImpl__systemZassertions_56(((NimStringDesc*) &TM__nQVdjfHleOuOqvMTepKJUw_2));
				}
				LA18_: ;
			}
			LA14_: ;
		}
		LA9_: ;
	}
	LA4_: ;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_Int128__9a9axPfb75jdWY25AamJewkA, minus___int495056_471)(tyObject_Int128__9a9axPfb75jdWY25AamJewkA a) {
	tyObject_Int128__9a9axPfb75jdWY25AamJewkA result;
	nimZeroMem((void*)(&result), sizeof(tyObject_Int128__9a9axPfb75jdWY25AamJewkA));
	result = bitnot__int495056_319(a);
	inc__int495056_251((&result), ((NU32) 1));
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_Int128__9a9axPfb75jdWY25AamJewkA, minus___int495056_474)(tyObject_Int128__9a9axPfb75jdWY25AamJewkA a, tyObject_Int128__9a9axPfb75jdWY25AamJewkA b) {
	tyObject_Int128__9a9axPfb75jdWY25AamJewkA result;
	tyObject_Int128__9a9axPfb75jdWY25AamJewkA T1_;
	nimZeroMem((void*)(&result), sizeof(tyObject_Int128__9a9axPfb75jdWY25AamJewkA));
	T1_ = minus___int495056_471(b);
	result = plus___int495056_448(a, T1_);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_Int128__9a9axPfb75jdWY25AamJewkA, minus___int495056_789)(tyObject_Int128__9a9axPfb75jdWY25AamJewkA a, NI64 b) {
	tyObject_Int128__9a9axPfb75jdWY25AamJewkA result;
	tyObject_Int128__9a9axPfb75jdWY25AamJewkA T1_;
	nimZeroMem((void*)(&result), sizeof(tyObject_Int128__9a9axPfb75jdWY25AamJewkA));
	T1_ = toInt128__int495056_734(b);
	result = minus___int495056_474(a, T1_);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_Int128__9a9axPfb75jdWY25AamJewkA, plus___int495056_803)(tyObject_Int128__9a9axPfb75jdWY25AamJewkA a, NI64 b) {
	tyObject_Int128__9a9axPfb75jdWY25AamJewkA result;
	tyObject_Int128__9a9axPfb75jdWY25AamJewkA T1_;
	nimZeroMem((void*)(&result), sizeof(tyObject_Int128__9a9axPfb75jdWY25AamJewkA));
	T1_ = toInt128__int495056_734(b);
	result = plus___int495056_448(a, T1_);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NU64, bitconcat__int495056_64)(NU32 a, NU32 b) {
	NU64 result;
	result = (NU64)0;
	result = (NU64)((NU64)((NU64)(((NU64) (a))) << (NU64)(((NI) 32))) | ((NU64) (b)));
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NI64, toInt64__int495056_88)(tyObject_Int128__9a9axPfb75jdWY25AamJewkA arg) {
	NI64 result;
	NU64 T6_;
	result = (NI64)0;
	{
		if (!((*((NI32*) ((&arg.udata[(((NI) 3))- 0])))) < ((NI32) 0))) goto LA3_;
	}
	goto LA1_;
	LA3_: ;
	{
	}
	LA1_: ;
	T6_ = (NU64)0;
	T6_ = bitconcat__int495056_64(arg.udata[(((NI) 1))- 0], arg.udata[(((NI) 0))- 0]);
	result = ((NI64) (T6_));
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, lt___int495056_730)(tyObject_Int128__9a9axPfb75jdWY25AamJewkA a, NI64 b) {
	NIM_BOOL result;
	tyObject_Int128__9a9axPfb75jdWY25AamJewkA T1_;
	NI T2_;
	result = (NIM_BOOL)0;
	T1_ = toInt128__int495056_734(b);
	T2_ = (NI)0;
	T2_ = cmp__int495056_279(a, T1_);
	result = (T2_ < ((NI) 0));
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NI64, toInt64Checked__int495056_103)(tyObject_Int128__9a9axPfb75jdWY25AamJewkA arg, NI64 onError) {
	NI64 result;
	NU64 T18_;
{	result = (NI64)0;
	{
		if (!((*((NI32*) ((&arg.udata[(((NI) 3))- 0])))) < ((NI32) 0))) goto LA3_;
		{
			NIM_BOOL T7_;
			T7_ = (NIM_BOOL)0;
			T7_ = !(((*((NI32*) ((&arg.udata[(((NI) 3))- 0])))) == ((NI32) -1)));
			if (T7_) goto LA8_;
			T7_ = !(((*((NI32*) ((&arg.udata[(((NI) 2))- 0])))) == ((NI32) -1)));
			LA8_: ;
			if (!T7_) goto LA9_;
			result = onError;
			goto BeforeRet_;
		}
		LA9_: ;
	}
	goto LA1_;
	LA3_: ;
	{
		{
			NIM_BOOL T14_;
			T14_ = (NIM_BOOL)0;
			T14_ = !(((*((NI32*) ((&arg.udata[(((NI) 3))- 0])))) == ((NI32) 0)));
			if (T14_) goto LA15_;
			T14_ = !(((*((NI32*) ((&arg.udata[(((NI) 2))- 0])))) == ((NI32) 0)));
			LA15_: ;
			if (!T14_) goto LA16_;
			result = onError;
			goto BeforeRet_;
		}
		LA16_: ;
	}
	LA1_: ;
	T18_ = (NU64)0;
	T18_ = bitconcat__int495056_64(arg.udata[(((NI) 1))- 0], arg.udata[(((NI) 0))- 0]);
	result = ((NI64) (T18_));
	goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_Int128__9a9axPfb75jdWY25AamJewkA, star___int495056_487)(tyObject_Int128__9a9axPfb75jdWY25AamJewkA a, NU32 b) {
	tyObject_Int128__9a9axPfb75jdWY25AamJewkA result;
	NU64 tmp0;
	NU64 tmp1;
	NU64 tmp2;
	NU64 tmp3;
	nimZeroMem((void*)(&result), sizeof(tyObject_Int128__9a9axPfb75jdWY25AamJewkA));
	tmp0 = (NU64)((NU64)(((NU64) (a.udata[(((NI) 0))- 0]))) * (NU64)(((NU64) (b))));
	tmp1 = (NU64)((NU64)(((NU64) (a.udata[(((NI) 1))- 0]))) * (NU64)(((NU64) (b))));
	tmp2 = (NU64)((NU64)(((NU64) (a.udata[(((NI) 2))- 0]))) * (NU64)(((NU64) (b))));
	tmp3 = (NU64)((NU64)(((NU64) (a.udata[(((NI) 3))- 0]))) * (NU64)(((NU64) (b))));
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = NIM_UNLIKELY(((NU64)(2147483647ULL) < (NU64)(tmp3)));
		if (!T3_) goto LA4_;
	}
	LA4_: ;
	result.udata[(((NI) 0))- 0] = ((NU32) (tmp0));
	result.udata[(((NI) 1))- 0] = (NU32)((NU32)(((NU32) (tmp1))) + (NU32)(((NU32) ((NU64)((NU64)(tmp0) >> (NU64)(((NI) 32)))))));
	result.udata[(((NI) 2))- 0] = (NU32)((NU32)(((NU32) (tmp2))) + (NU32)(((NU32) ((NU64)((NU64)(tmp1) >> (NU64)(((NI) 32)))))));
	result.udata[(((NI) 3))- 0] = (NU32)((NU32)(((NU32) (tmp3))) + (NU32)(((NU32) ((NU64)((NU64)(tmp2) >> (NU64)(((NI) 32)))))));
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NI, abs__int495056_484)(NI32 a) {
	NI result;
	NI32 T1_;
	result = (NI)0;
	T1_ = (NI32)0;
	{
		if (!(a < ((NI32) 0))) goto LA4_;
		T1_ = ((NI32)-(a));
	}
	goto LA2_;
	LA4_: ;
	{
		T1_ = a;
	}
	LA2_: ;
	result = ((NI) (T1_));
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_Int128__9a9axPfb75jdWY25AamJewkA, star___int495056_514)(tyObject_Int128__9a9axPfb75jdWY25AamJewkA a, NI32 b) {
	tyObject_Int128__9a9axPfb75jdWY25AamJewkA result;
	NI T1_;
	nimZeroMem((void*)(&result), sizeof(tyObject_Int128__9a9axPfb75jdWY25AamJewkA));
	T1_ = (NI)0;
	T1_ = abs__int495056_484(b);
	result = star___int495056_487(a, ((NU32) (T1_)));
	{
		if (!(b < ((NI32) 0))) goto LA4_;
		result = minus___int495056_471(result);
	}
	LA4_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, lt___int495056_305)(tyObject_Int128__9a9axPfb75jdWY25AamJewkA a, tyObject_Int128__9a9axPfb75jdWY25AamJewkA b) {
	NIM_BOOL result;
	NI T1_;
	result = (NIM_BOOL)0;
	T1_ = (NI)0;
	T1_ = cmp__int495056_279(a, b);
	result = (T1_ < ((NI) 0));
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NI64, castToInt64__int495056_221)(tyObject_Int128__9a9axPfb75jdWY25AamJewkA arg) {
	NI64 result;
	NU64 T1_;
	result = (NI64)0;
	T1_ = (NU64)0;
	T1_ = bitconcat__int495056_64(arg.udata[(((NI) 1))- 0], arg.udata[(((NI) 0))- 0]);
	result = ((NI64) (T1_));
	return result;
}
static N_INLINE(tyObject_Int128__9a9axPfb75jdWY25AamJewkA, maskUInt8__int495056_856)(tyObject_Int128__9a9axPfb75jdWY25AamJewkA arg) {
	tyObject_Int128__9a9axPfb75jdWY25AamJewkA result;
	result.udata[(((NI) 0))- 0] = (NU32)(arg.udata[(((NI) 0))- 0] & ((NU32) 255));
	result.udata[(((NI) 1))- 0] = ((NU32) 0);
	result.udata[(((NI) 2))- 0] = ((NU32) 0);
	result.udata[(((NI) 3))- 0] = ((NU32) 0);
	return result;
}
static N_INLINE(tyObject_Int128__9a9axPfb75jdWY25AamJewkA, maskUInt16__int495056_853)(tyObject_Int128__9a9axPfb75jdWY25AamJewkA arg) {
	tyObject_Int128__9a9axPfb75jdWY25AamJewkA result;
	result.udata[(((NI) 0))- 0] = (NU32)(arg.udata[(((NI) 0))- 0] & ((NU32) 65535));
	result.udata[(((NI) 1))- 0] = ((NU32) 0);
	result.udata[(((NI) 2))- 0] = ((NU32) 0);
	result.udata[(((NI) 3))- 0] = ((NU32) 0);
	return result;
}
static N_INLINE(tyObject_Int128__9a9axPfb75jdWY25AamJewkA, maskUInt32__int495056_850)(tyObject_Int128__9a9axPfb75jdWY25AamJewkA arg) {
	tyObject_Int128__9a9axPfb75jdWY25AamJewkA result;
	result.udata[(((NI) 0))- 0] = arg.udata[(((NI) 0))- 0];
	result.udata[(((NI) 1))- 0] = ((NU32) 0);
	result.udata[(((NI) 2))- 0] = ((NU32) 0);
	result.udata[(((NI) 3))- 0] = ((NU32) 0);
	return result;
}
static N_INLINE(tyObject_Int128__9a9axPfb75jdWY25AamJewkA, maskUInt64__int495056_847)(tyObject_Int128__9a9axPfb75jdWY25AamJewkA arg) {
	tyObject_Int128__9a9axPfb75jdWY25AamJewkA result;
	result.udata[(((NI) 0))- 0] = arg.udata[(((NI) 0))- 0];
	result.udata[(((NI) 1))- 0] = arg.udata[(((NI) 1))- 0];
	result.udata[(((NI) 2))- 0] = ((NU32) 0);
	result.udata[(((NI) 3))- 0] = ((NU32) 0);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_Int128__9a9axPfb75jdWY25AamJewkA, maskBytes__int495056_859)(tyObject_Int128__9a9axPfb75jdWY25AamJewkA arg, NI numbytes) {
	tyObject_Int128__9a9axPfb75jdWY25AamJewkA result;
{	switch (numbytes) {
	case ((NI) 1):
	{
		result = maskUInt8__int495056_856(arg);
		goto BeforeRet_;
	}
	break;
	case ((NI) 2):
	{
		result = maskUInt16__int495056_853(arg);
		goto BeforeRet_;
	}
	break;
	case ((NI) 4):
	{
		result = maskUInt32__int495056_850(arg);
		goto BeforeRet_;
	}
	break;
	case ((NI) 8):
	{
		result = maskUInt64__int495056_847(arg);
		goto BeforeRet_;
	}
	break;
	default:
	{
	}
	break;
	}
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_Int128__9a9axPfb75jdWY25AamJewkA, abs__int495056_481)(tyObject_Int128__9a9axPfb75jdWY25AamJewkA a) {
	tyObject_Int128__9a9axPfb75jdWY25AamJewkA result;
	nimZeroMem((void*)(&result), sizeof(tyObject_Int128__9a9axPfb75jdWY25AamJewkA));
	{
		if (!((*((NI32*) ((&a.udata[(((NI) 3))- 0])))) < ((NI32) 0))) goto LA3_;
		result = minus___int495056_471(a);
	}
	goto LA1_;
	LA3_: ;
	{
		result = a;
	}
	LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_Int128__9a9axPfb75jdWY25AamJewkA, makeInt128__int495056_522)(NU64 high, NU64 low) {
	tyObject_Int128__9a9axPfb75jdWY25AamJewkA result;
	nimZeroMem((void*)(&result), sizeof(tyObject_Int128__9a9axPfb75jdWY25AamJewkA));
	result.udata[(((NI) 0))- 0] = ((NU32) (low));
	result.udata[(((NI) 1))- 0] = ((NU32) ((NU64)((NU64)(low) >> (NU64)(((NI) 32)))));
	result.udata[(((NI) 2))- 0] = ((NU32) (high));
	result.udata[(((NI) 3))- 0] = ((NU32) ((NU64)((NU64)(high) >> (NU64)(((NI) 32)))));
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NU64, high64__int495056_534)(tyObject_Int128__9a9axPfb75jdWY25AamJewkA a) {
	NU64 result;
	result = (NU64)0;
	result = bitconcat__int495056_64(a.udata[(((NI) 3))- 0], a.udata[(((NI) 2))- 0]);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NU64, low64__int495056_537)(tyObject_Int128__9a9axPfb75jdWY25AamJewkA a) {
	NU64 result;
	result = (NU64)0;
	result = bitconcat__int495056_64(a.udata[(((NI) 1))- 0], a.udata[(((NI) 0))- 0]);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, pluseq___int495056_468)(tyObject_Int128__9a9axPfb75jdWY25AamJewkA* a, tyObject_Int128__9a9axPfb75jdWY25AamJewkA b) {
	(*a) = plus___int495056_448((*a), b);
}
N_LIB_PRIVATE N_NIMCALL(tyObject_Int128__9a9axPfb75jdWY25AamJewkA, shl__int495056_379)(tyObject_Int128__9a9axPfb75jdWY25AamJewkA a, NI b) {
	tyObject_Int128__9a9axPfb75jdWY25AamJewkA result;
	NI b_2;
	nimZeroMem((void*)(&result), sizeof(tyObject_Int128__9a9axPfb75jdWY25AamJewkA));
	b_2 = (NI)(b & ((NI) 127));
	{
		NU64 T5_;
		NU64 T6_;
		NU64 T7_;
		if (!(b_2 < ((NI) 32))) goto LA3_;
		result.udata[(((NI) 0))- 0] = (NU32)((NU32)(a.udata[(((NI) 0))- 0]) << (NU32)(b_2));
		T5_ = (NU64)0;
		T5_ = bitconcat__int495056_64(a.udata[(((NI) 1))- 0], a.udata[(((NI) 0))- 0]);
		result.udata[(((NI) 1))- 0] = ((NU32) ((NU64)((NU64)((NU64)((NU64)(T5_) << (NU64)(b_2))) >> (NU64)(((NI) 32)))));
		T6_ = (NU64)0;
		T6_ = bitconcat__int495056_64(a.udata[(((NI) 2))- 0], a.udata[(((NI) 1))- 0]);
		result.udata[(((NI) 2))- 0] = ((NU32) ((NU64)((NU64)((NU64)((NU64)(T6_) << (NU64)(b_2))) >> (NU64)(((NI) 32)))));
		T7_ = (NU64)0;
		T7_ = bitconcat__int495056_64(a.udata[(((NI) 3))- 0], a.udata[(((NI) 2))- 0]);
		result.udata[(((NI) 3))- 0] = ((NU32) ((NU64)((NU64)((NU64)((NU64)(T7_) << (NU64)(b_2))) >> (NU64)(((NI) 32)))));
	}
	goto LA1_;
	LA3_: ;
	{
		NU64 T11_;
		NU64 T12_;
		if (!(b_2 < ((NI) 64))) goto LA9_;
		result.udata[(((NI) 0))- 0] = ((NU32) 0);
		result.udata[(((NI) 1))- 0] = (NU32)((NU32)(a.udata[(((NI) 0))- 0]) << (NU32)((NI)(b_2 & ((NI) 31))));
		T11_ = (NU64)0;
		T11_ = bitconcat__int495056_64(a.udata[(((NI) 1))- 0], a.udata[(((NI) 0))- 0]);
		result.udata[(((NI) 2))- 0] = ((NU32) ((NU64)((NU64)((NU64)((NU64)(T11_) << (NU64)((NI)(b_2 & ((NI) 31))))) >> (NU64)(((NI) 32)))));
		T12_ = (NU64)0;
		T12_ = bitconcat__int495056_64(a.udata[(((NI) 2))- 0], a.udata[(((NI) 1))- 0]);
		result.udata[(((NI) 3))- 0] = ((NU32) ((NU64)((NU64)((NU64)((NU64)(T12_) << (NU64)((NI)(b_2 & ((NI) 31))))) >> (NU64)(((NI) 32)))));
	}
	goto LA1_;
	LA9_: ;
	{
		NU64 T16_;
		if (!(b_2 < ((NI) 96))) goto LA14_;
		result.udata[(((NI) 0))- 0] = ((NU32) 0);
		result.udata[(((NI) 1))- 0] = ((NU32) 0);
		result.udata[(((NI) 2))- 0] = (NU32)((NU32)(a.udata[(((NI) 0))- 0]) << (NU32)((NI)(b_2 & ((NI) 31))));
		T16_ = (NU64)0;
		T16_ = bitconcat__int495056_64(a.udata[(((NI) 1))- 0], a.udata[(((NI) 0))- 0]);
		result.udata[(((NI) 3))- 0] = ((NU32) ((NU64)((NU64)((NU64)((NU64)(T16_) << (NU64)((NI)(b_2 & ((NI) 31))))) >> (NU64)(((NI) 32)))));
	}
	goto LA1_;
	LA14_: ;
	{
		result.udata[(((NI) 0))- 0] = ((NU32) 0);
		result.udata[(((NI) 1))- 0] = ((NU32) 0);
		result.udata[(((NI) 2))- 0] = ((NU32) 0);
		result.udata[(((NI) 3))- 0] = (NU32)((NU32)(a.udata[(((NI) 0))- 0]) << (NU32)((NI)(b_2 & ((NI) 31))));
	}
	LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_Int128__9a9axPfb75jdWY25AamJewkA, star___int495056_540)(tyObject_Int128__9a9axPfb75jdWY25AamJewkA lhs, tyObject_Int128__9a9axPfb75jdWY25AamJewkA rhs) {
	tyObject_Int128__9a9axPfb75jdWY25AamJewkA result;
	NU64 a;
	NU64 b;
	NU64 c;
	NU64 d;
	NU64 e;
	NU64 f;
	NU64 g;
	NU64 h;
	NU64 a32;
	NU64 a00;
	NU64 b32;
	NU64 b00;
	NU64 T1_;
	NU64 T2_;
	NU64 T3_;
	NU64 T4_;
	tyObject_Int128__9a9axPfb75jdWY25AamJewkA T5_;
	tyObject_Int128__9a9axPfb75jdWY25AamJewkA T6_;
	tyObject_Int128__9a9axPfb75jdWY25AamJewkA T7_;
	tyObject_Int128__9a9axPfb75jdWY25AamJewkA T8_;
	nimZeroMem((void*)(&result), sizeof(tyObject_Int128__9a9axPfb75jdWY25AamJewkA));
	a = ((NU64) (lhs.udata[(((NI) 0))- 0]));
	b = ((NU64) (lhs.udata[(((NI) 1))- 0]));
	c = ((NU64) (lhs.udata[(((NI) 2))- 0]));
	d = ((NU64) (lhs.udata[(((NI) 3))- 0]));
	e = ((NU64) (rhs.udata[(((NI) 0))- 0]));
	f = ((NU64) (rhs.udata[(((NI) 1))- 0]));
	g = ((NU64) (rhs.udata[(((NI) 2))- 0]));
	h = ((NU64) (rhs.udata[(((NI) 3))- 0]));
	a32 = ((NU64) (lhs.udata[(((NI) 1))- 0]));
	a00 = ((NU64) (lhs.udata[(((NI) 0))- 0]));
	b32 = ((NU64) (rhs.udata[(((NI) 1))- 0]));
	b00 = ((NU64) (rhs.udata[(((NI) 0))- 0]));
	T1_ = (NU64)0;
	T1_ = high64__int495056_534(lhs);
	T2_ = (NU64)0;
	T2_ = low64__int495056_537(rhs);
	T3_ = (NU64)0;
	T3_ = low64__int495056_537(lhs);
	T4_ = (NU64)0;
	T4_ = high64__int495056_534(rhs);
	result = makeInt128__int495056_522((NU64)((NU64)((NU64)((NU64)((NU64)((NU64)(T1_) * (NU64)(T2_))) + (NU64)((NU64)((NU64)(T3_) * (NU64)(T4_))))) + (NU64)((NU64)((NU64)(a32) * (NU64)(b32)))), (NU64)((NU64)(a00) * (NU64)(b00)));
	T5_ = toInt128__int495056_556((NU64)((NU64)(a32) * (NU64)(b00)));
	T6_ = shl__int495056_379(T5_, ((NI) 32));
	pluseq___int495056_468((&result), T6_);
	T7_ = toInt128__int495056_556((NU64)((NU64)(a00) * (NU64)(b32)));
	T8_ = shl__int495056_379(T7_, ((NI) 32));
	pluseq___int495056_468((&result), T8_);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_Int128__9a9axPfb75jdWY25AamJewkA, toInt128__semfold_268)(NI8 arg) {
	tyObject_Int128__9a9axPfb75jdWY25AamJewkA result;
	nimZeroMem((void*)(&result), sizeof(tyObject_Int128__9a9axPfb75jdWY25AamJewkA));
	(*((NI32*) ((&result.udata[(((NI) 0))- 0])))) = ((NI32) (arg));
	{
		if (!(arg < ((NI8) 0))) goto LA3_;
		(*((NI32*) ((&result.udata[(((NI) 1))- 0])))) = ((NI32) -1);
		(*((NI32*) ((&result.udata[(((NI) 2))- 0])))) = ((NI32) -1);
		(*((NI32*) ((&result.udata[(((NI) 3))- 0])))) = ((NI32) -1);
	}
	LA3_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NI8, toInt8__int495056_149)(tyObject_Int128__9a9axPfb75jdWY25AamJewkA arg) {
	NI8 result;
	result = (NI8)0;
	{
		if (!((*((NI32*) ((&arg.udata[(((NI) 3))- 0])))) < ((NI32) 0))) goto LA3_;
	}
	goto LA1_;
	LA3_: ;
	{
	}
	LA1_: ;
	result = ((NI8) ((*((NI32*) ((&arg.udata[(((NI) 0))- 0]))))));
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_Int128__9a9axPfb75jdWY25AamJewkA, toInt128__semfold_280)(NI16 arg) {
	tyObject_Int128__9a9axPfb75jdWY25AamJewkA result;
	nimZeroMem((void*)(&result), sizeof(tyObject_Int128__9a9axPfb75jdWY25AamJewkA));
	(*((NI32*) ((&result.udata[(((NI) 0))- 0])))) = ((NI32) (arg));
	{
		if (!(arg < ((NI16) 0))) goto LA3_;
		(*((NI32*) ((&result.udata[(((NI) 1))- 0])))) = ((NI32) -1);
		(*((NI32*) ((&result.udata[(((NI) 2))- 0])))) = ((NI32) -1);
		(*((NI32*) ((&result.udata[(((NI) 3))- 0])))) = ((NI32) -1);
	}
	LA3_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NI16, toInt16__int495056_128)(tyObject_Int128__9a9axPfb75jdWY25AamJewkA arg) {
	NI16 result;
	result = (NI16)0;
	{
		if (!((*((NI32*) ((&arg.udata[(((NI) 3))- 0])))) < ((NI32) 0))) goto LA3_;
	}
	goto LA1_;
	LA3_: ;
	{
	}
	LA1_: ;
	result = ((NI16) ((*((NI32*) ((&arg.udata[(((NI) 0))- 0]))))));
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_Int128__9a9axPfb75jdWY25AamJewkA, toInt128__semfold_292)(NI32 arg) {
	tyObject_Int128__9a9axPfb75jdWY25AamJewkA result;
	nimZeroMem((void*)(&result), sizeof(tyObject_Int128__9a9axPfb75jdWY25AamJewkA));
	(*((NI32*) ((&result.udata[(((NI) 0))- 0])))) = arg;
	{
		if (!(arg < ((NI32) 0))) goto LA3_;
		(*((NI32*) ((&result.udata[(((NI) 1))- 0])))) = ((NI32) -1);
		(*((NI32*) ((&result.udata[(((NI) 2))- 0])))) = ((NI32) -1);
		(*((NI32*) ((&result.udata[(((NI) 3))- 0])))) = ((NI32) -1);
	}
	LA3_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NI32, toInt32__int495056_107)(tyObject_Int128__9a9axPfb75jdWY25AamJewkA arg) {
	NI32 result;
	result = (NI32)0;
	{
		if (!((*((NI32*) ((&arg.udata[(((NI) 3))- 0])))) < ((NI32) 0))) goto LA3_;
	}
	goto LA1_;
	LA3_: ;
	{
	}
	LA1_: ;
	result = (*((NI32*) ((&arg.udata[(((NI) 0))- 0]))));
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_Int128__9a9axPfb75jdWY25AamJewkA, toInt128__semfold_325)(NU8 arg) {
	tyObject_Int128__9a9axPfb75jdWY25AamJewkA result;
	nimZeroMem((void*)(&result), sizeof(tyObject_Int128__9a9axPfb75jdWY25AamJewkA));
	result.udata[(((NI) 0))- 0] = ((NU32) (arg));
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NU8, toUInt8__int495056_206)(tyObject_Int128__9a9axPfb75jdWY25AamJewkA arg) {
	NU8 result;
	result = (NU8)0;
	result = ((NU8) (arg.udata[(((NI) 0))- 0]));
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_Int128__9a9axPfb75jdWY25AamJewkA, toInt128__semfold_337)(NU16 arg) {
	tyObject_Int128__9a9axPfb75jdWY25AamJewkA result;
	nimZeroMem((void*)(&result), sizeof(tyObject_Int128__9a9axPfb75jdWY25AamJewkA));
	result.udata[(((NI) 0))- 0] = ((NU32) (arg));
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NU16, toUInt16__int495056_194)(tyObject_Int128__9a9axPfb75jdWY25AamJewkA arg) {
	NU16 result;
	result = (NU16)0;
	result = ((NU16) (arg.udata[(((NI) 0))- 0]));
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_Int128__9a9axPfb75jdWY25AamJewkA, toInt128__semfold_349)(NU32 arg) {
	tyObject_Int128__9a9axPfb75jdWY25AamJewkA result;
	nimZeroMem((void*)(&result), sizeof(tyObject_Int128__9a9axPfb75jdWY25AamJewkA));
	result.udata[(((NI) 0))- 0] = arg;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NU32, toUInt32__int495056_182)(tyObject_Int128__9a9axPfb75jdWY25AamJewkA arg) {
	NU32 result;
	result = (NU32)0;
	result = arg.udata[(((NI) 0))- 0];
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NU64, toUInt64__int495056_173)(tyObject_Int128__9a9axPfb75jdWY25AamJewkA arg) {
	NU64 result;
	result = (NU64)0;
	result = bitconcat__int495056_64(arg.udata[(((NI) 1))- 0], arg.udata[(((NI) 0))- 0]);
	return result;
}
static N_INLINE(NI, fastLog2__int495056_578)(NU32 x) {
	NI result;
	int T1_;
	result = (NI)0;
	T1_ = (int)0;
	T1_ = __builtin_clz(x);
	result = (NI)(((NI) 31) - ((NI) (T1_)));
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NI, fastLog2__int495056_575)(tyObject_Int128__9a9axPfb75jdWY25AamJewkA a) {
	NI result;
{	result = (NI)0;
	{
		NI T5_;
		if (!!((a.udata[(((NI) 3))- 0] == ((NU32) 0)))) goto LA3_;
		T5_ = (NI)0;
		T5_ = fastLog2__int495056_578(a.udata[(((NI) 3))- 0]);
		result = (NI)(((NI) 96) + T5_);
		goto BeforeRet_;
	}
	LA3_: ;
	{
		NI T10_;
		if (!!((a.udata[(((NI) 2))- 0] == ((NU32) 0)))) goto LA8_;
		T10_ = (NI)0;
		T10_ = fastLog2__int495056_578(a.udata[(((NI) 2))- 0]);
		result = (NI)(((NI) 64) + T10_);
		goto BeforeRet_;
	}
	LA8_: ;
	{
		NI T15_;
		if (!!((a.udata[(((NI) 1))- 0] == ((NU32) 0)))) goto LA13_;
		T15_ = (NI)0;
		T15_ = fastLog2__int495056_578(a.udata[(((NI) 1))- 0]);
		result = (NI)(((NI) 32) + T15_);
		goto BeforeRet_;
	}
	LA13_: ;
	{
		if (!!((a.udata[(((NI) 0))- 0] == ((NU32) 0)))) goto LA18_;
		result = fastLog2__int495056_578(a.udata[(((NI) 0))- 0]);
		goto BeforeRet_;
	}
	LA18_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, minuseq___int495056_478)(tyObject_Int128__9a9axPfb75jdWY25AamJewkA* a, tyObject_Int128__9a9axPfb75jdWY25AamJewkA b) {
	(*a) = minus___int495056_474((*a), b);
}
N_LIB_PRIVATE N_NIMCALL(tyObject_Int128__9a9axPfb75jdWY25AamJewkA, bitor__int495056_326)(tyObject_Int128__9a9axPfb75jdWY25AamJewkA a, tyObject_Int128__9a9axPfb75jdWY25AamJewkA b) {
	tyObject_Int128__9a9axPfb75jdWY25AamJewkA result;
	nimZeroMem((void*)(&result), sizeof(tyObject_Int128__9a9axPfb75jdWY25AamJewkA));
	result.udata[(((NI) 0))- 0] = (NU32)(a.udata[(((NI) 0))- 0] | b.udata[(((NI) 0))- 0]);
	result.udata[(((NI) 1))- 0] = (NU32)(a.udata[(((NI) 1))- 0] | b.udata[(((NI) 1))- 0]);
	result.udata[(((NI) 2))- 0] = (NU32)(a.udata[(((NI) 2))- 0] | b.udata[(((NI) 2))- 0]);
	result.udata[(((NI) 3))- 0] = (NU32)(a.udata[(((NI) 3))- 0] | b.udata[(((NI) 3))- 0]);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_Int128__9a9axPfb75jdWY25AamJewkA, shr__int495056_334)(tyObject_Int128__9a9axPfb75jdWY25AamJewkA a, NI b) {
	tyObject_Int128__9a9axPfb75jdWY25AamJewkA result;
	NI b_2;
	nimZeroMem((void*)(&result), sizeof(tyObject_Int128__9a9axPfb75jdWY25AamJewkA));
	b_2 = (NI)(b & ((NI) 127));
	{
		NU64 T5_;
		NU64 T6_;
		NU64 T7_;
		if (!(b_2 < ((NI) 32))) goto LA3_;
		(*((NI32*) ((&result.udata[(((NI) 3))- 0])))) = (NI32)((NI32)((*((NI32*) ((&a.udata[(((NI) 3))- 0]))))) >> (NU32)(b_2));
		T5_ = (NU64)0;
		T5_ = bitconcat__int495056_64(a.udata[(((NI) 3))- 0], a.udata[(((NI) 2))- 0]);
		result.udata[(((NI) 2))- 0] = ((NU32) ((NU64)((NU64)(T5_) >> (NU64)(b_2))));
		T6_ = (NU64)0;
		T6_ = bitconcat__int495056_64(a.udata[(((NI) 2))- 0], a.udata[(((NI) 1))- 0]);
		result.udata[(((NI) 1))- 0] = ((NU32) ((NU64)((NU64)(T6_) >> (NU64)(b_2))));
		T7_ = (NU64)0;
		T7_ = bitconcat__int495056_64(a.udata[(((NI) 1))- 0], a.udata[(((NI) 0))- 0]);
		result.udata[(((NI) 0))- 0] = ((NU32) ((NU64)((NU64)(T7_) >> (NU64)(b_2))));
	}
	goto LA1_;
	LA3_: ;
	{
		NU64 T15_;
		NU64 T16_;
		if (!(b_2 < ((NI) 64))) goto LA9_;
		{
			if (!((*((NI32*) ((&a.udata[(((NI) 3))- 0])))) < ((NI32) 0))) goto LA13_;
			(*((NI32*) ((&result.udata[(((NI) 3))- 0])))) = ((NI32) -1);
		}
		LA13_: ;
		(*((NI32*) ((&result.udata[(((NI) 2))- 0])))) = (NI32)((NI32)((*((NI32*) ((&a.udata[(((NI) 3))- 0]))))) >> (NU32)((NI)(b_2 & ((NI) 31))));
		T15_ = (NU64)0;
		T15_ = bitconcat__int495056_64(a.udata[(((NI) 3))- 0], a.udata[(((NI) 2))- 0]);
		result.udata[(((NI) 1))- 0] = ((NU32) ((NU64)((NU64)(T15_) >> (NU64)((NI)(b_2 & ((NI) 31))))));
		T16_ = (NU64)0;
		T16_ = bitconcat__int495056_64(a.udata[(((NI) 2))- 0], a.udata[(((NI) 1))- 0]);
		result.udata[(((NI) 0))- 0] = ((NU32) ((NU64)((NU64)(T16_) >> (NU64)((NI)(b_2 & ((NI) 31))))));
	}
	goto LA1_;
	LA9_: ;
	{
		NU64 T24_;
		if (!(b_2 < ((NI) 96))) goto LA18_;
		{
			if (!((*((NI32*) ((&a.udata[(((NI) 3))- 0])))) < ((NI32) 0))) goto LA22_;
			(*((NI32*) ((&result.udata[(((NI) 3))- 0])))) = ((NI32) -1);
			(*((NI32*) ((&result.udata[(((NI) 2))- 0])))) = ((NI32) -1);
		}
		LA22_: ;
		(*((NI32*) ((&result.udata[(((NI) 1))- 0])))) = (NI32)((NI32)((*((NI32*) ((&a.udata[(((NI) 3))- 0]))))) >> (NU32)((NI)(b_2 & ((NI) 31))));
		T24_ = (NU64)0;
		T24_ = bitconcat__int495056_64(a.udata[(((NI) 3))- 0], a.udata[(((NI) 2))- 0]);
		result.udata[(((NI) 0))- 0] = ((NU32) ((NU64)((NU64)(T24_) >> (NU64)((NI)(b_2 & ((NI) 31))))));
	}
	goto LA1_;
	LA18_: ;
	{
		{
			if (!((*((NI32*) ((&a.udata[(((NI) 3))- 0])))) < ((NI32) 0))) goto LA28_;
			(*((NI32*) ((&result.udata[(((NI) 3))- 0])))) = ((NI32) -1);
			(*((NI32*) ((&result.udata[(((NI) 2))- 0])))) = ((NI32) -1);
			(*((NI32*) ((&result.udata[(((NI) 1))- 0])))) = ((NI32) -1);
		}
		LA28_: ;
		(*((NI32*) ((&result.udata[(((NI) 0))- 0])))) = (NI32)((NI32)((*((NI32*) ((&a.udata[(((NI) 3))- 0]))))) >> (NU32)((NI)(b_2 & ((NI) 31))));
	}
	LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, divMod__int495056_601)(tyObject_Int128__9a9axPfb75jdWY25AamJewkA dividend, tyObject_Int128__9a9axPfb75jdWY25AamJewkA divisor, tyTuple__0titlMXgFgzRLN6v28f9azA* Result) {
	NIM_BOOL isNegativeA;
	NIM_BOOL isNegativeB;
	tyObject_Int128__9a9axPfb75jdWY25AamJewkA dividend_2;
	tyObject_Int128__9a9axPfb75jdWY25AamJewkA divisor_2;
	tyObject_Int128__9a9axPfb75jdWY25AamJewkA denominator;
	tyObject_Int128__9a9axPfb75jdWY25AamJewkA quotient;
	NI shift;
	NI T21_;
	NI T22_;
{	nimZeroMem((void*)Result, sizeof(tyTuple__0titlMXgFgzRLN6v28f9azA));
	isNegativeA = ((*((NI32*) ((&dividend.udata[(((NI) 3))- 0])))) < ((NI32) 0));
	isNegativeB = ((*((NI32*) ((&divisor.udata[(((NI) 3))- 0])))) < ((NI32) 0));
	dividend_2 = abs__int495056_481(dividend);
	divisor_2 = abs__int495056_481(divisor);
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = lt___int495056_305(dividend_2, divisor_2);
		if (!T3_) goto LA4_;
		(*Result).Field0 = Zero__int495056_7;
		{
			if (!isNegativeA) goto LA8_;
			(*Result).Field1 = minus___int495056_471(dividend_2);
		}
		goto LA6_;
		LA8_: ;
		{
			(*Result).Field1 = dividend_2;
		}
		LA6_: ;
		goto BeforeRet_;
	}
	LA4_: ;
	{
		NIM_BOOL T13_;
		T13_ = (NIM_BOOL)0;
		T13_ = eqeq___int495056_313(divisor_2, dividend_2);
		if (!T13_) goto LA14_;
		{
			if (!(isNegativeA != isNegativeB)) goto LA18_;
			(*Result).Field0 = NegOne__int495056_28;
		}
		goto LA16_;
		LA18_: ;
		{
			(*Result).Field0 = One__int495056_8;
		}
		LA16_: ;
		(*Result).Field1 = Zero__int495056_7;
		goto BeforeRet_;
	}
	LA14_: ;
	denominator = divisor_2;
	quotient = Zero__int495056_7;
	T21_ = (NI)0;
	T21_ = fastLog2__int495056_575(dividend_2);
	T22_ = (NI)0;
	T22_ = fastLog2__int495056_575(denominator);
	shift = (NI)(T21_ - T22_);
	denominator = shl__int495056_379(denominator, shift);
	{
		NI i;
		NI res;
		i = (NI)0;
		res = ((NI) 0);
		{
			while (1) {
				if (!(res <= shift)) goto LA25;
				i = res;
				quotient = shl__int495056_379(quotient, ((NI) 1));
				{
					NIM_BOOL T28_;
					T28_ = (NIM_BOOL)0;
					T28_ = lteq___int495056_309(denominator, dividend_2);
					if (!T28_) goto LA29_;
					minuseq___int495056_478((&dividend_2), denominator);
					quotient = bitor__int495056_326(quotient, One__int495056_8);
				}
				LA29_: ;
				denominator = shr__int495056_334(denominator, ((NI) 1));
				res += ((NI) 1);
			} LA25: ;
		}
	}
	{
		if (!(isNegativeA != isNegativeB)) goto LA33_;
		(*Result).Field0 = minus___int495056_471(quotient);
	}
	goto LA31_;
	LA33_: ;
	{
		(*Result).Field0 = quotient;
	}
	LA31_: ;
	{
		if (!isNegativeA) goto LA38_;
		(*Result).Field1 = minus___int495056_471(dividend_2);
	}
	goto LA36_;
	LA38_: ;
	{
		(*Result).Field1 = dividend_2;
	}
	LA36_: ;
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_Int128__9a9axPfb75jdWY25AamJewkA, div__int495056_622)(tyObject_Int128__9a9axPfb75jdWY25AamJewkA a, tyObject_Int128__9a9axPfb75jdWY25AamJewkA b) {
	tyObject_Int128__9a9axPfb75jdWY25AamJewkA result;
	tyTuple__0titlMXgFgzRLN6v28f9azA T1_;
	tyObject_Int128__9a9axPfb75jdWY25AamJewkA a_2;
	tyObject_Int128__9a9axPfb75jdWY25AamJewkA b_2;
{	nimZeroMem((void*)(&result), sizeof(tyObject_Int128__9a9axPfb75jdWY25AamJewkA));
	nimZeroMem((void*)(&T1_), sizeof(tyTuple__0titlMXgFgzRLN6v28f9azA));
	divMod__int495056_601(a, b, (&T1_));
	nimZeroMem((void*)(&a_2), sizeof(tyObject_Int128__9a9axPfb75jdWY25AamJewkA));
	a_2 = T1_.Field0;
	nimZeroMem((void*)(&b_2), sizeof(tyObject_Int128__9a9axPfb75jdWY25AamJewkA));
	b_2 = T1_.Field1;
	result = a_2;
	goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_Int128__9a9axPfb75jdWY25AamJewkA, mod__int495056_637)(tyObject_Int128__9a9axPfb75jdWY25AamJewkA a, tyObject_Int128__9a9axPfb75jdWY25AamJewkA b) {
	tyObject_Int128__9a9axPfb75jdWY25AamJewkA result;
	tyTuple__0titlMXgFgzRLN6v28f9azA T1_;
	tyObject_Int128__9a9axPfb75jdWY25AamJewkA a_2;
	tyObject_Int128__9a9axPfb75jdWY25AamJewkA b_2;
{	nimZeroMem((void*)(&result), sizeof(tyObject_Int128__9a9axPfb75jdWY25AamJewkA));
	nimZeroMem((void*)(&T1_), sizeof(tyTuple__0titlMXgFgzRLN6v28f9azA));
	divMod__int495056_601(a, b, (&T1_));
	nimZeroMem((void*)(&a_2), sizeof(tyObject_Int128__9a9axPfb75jdWY25AamJewkA));
	a_2 = T1_.Field0;
	nimZeroMem((void*)(&b_2), sizeof(tyObject_Int128__9a9axPfb75jdWY25AamJewkA));
	b_2 = T1_.Field1;
	result = b_2;
	goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_Int128__9a9axPfb75jdWY25AamJewkA, bitand__int495056_322)(tyObject_Int128__9a9axPfb75jdWY25AamJewkA a, tyObject_Int128__9a9axPfb75jdWY25AamJewkA b) {
	tyObject_Int128__9a9axPfb75jdWY25AamJewkA result;
	nimZeroMem((void*)(&result), sizeof(tyObject_Int128__9a9axPfb75jdWY25AamJewkA));
	result.udata[(((NI) 0))- 0] = (NU32)(a.udata[(((NI) 0))- 0] & b.udata[(((NI) 0))- 0]);
	result.udata[(((NI) 1))- 0] = (NU32)(a.udata[(((NI) 1))- 0] & b.udata[(((NI) 1))- 0]);
	result.udata[(((NI) 2))- 0] = (NU32)(a.udata[(((NI) 2))- 0] & b.udata[(((NI) 2))- 0]);
	result.udata[(((NI) 3))- 0] = (NU32)(a.udata[(((NI) 3))- 0] & b.udata[(((NI) 3))- 0]);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_Int128__9a9axPfb75jdWY25AamJewkA, bitxor__int495056_330)(tyObject_Int128__9a9axPfb75jdWY25AamJewkA a, tyObject_Int128__9a9axPfb75jdWY25AamJewkA b) {
	tyObject_Int128__9a9axPfb75jdWY25AamJewkA result;
	nimZeroMem((void*)(&result), sizeof(tyObject_Int128__9a9axPfb75jdWY25AamJewkA));
	result.udata[(((NI) 0))- 0] = (NU32)(a.udata[(((NI) 0))- 0] ^ b.udata[(((NI) 0))- 0]);
	result.udata[(((NI) 1))- 0] = (NU32)(a.udata[(((NI) 1))- 0] ^ b.udata[(((NI) 1))- 0]);
	result.udata[(((NI) 2))- 0] = (NU32)(a.udata[(((NI) 2))- 0] ^ b.udata[(((NI) 2))- 0]);
	result.udata[(((NI) 3))- 0] = (NU32)(a.udata[(((NI) 3))- 0] ^ b.udata[(((NI) 3))- 0]);
	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__system_1727)(void* dest, void* source, NI size) {
	nimCopyMem(dest, source, size);
}
static N_INLINE(void, appendString)(NimStringDesc* dest, NimStringDesc* src) {
	{
		if (!!((src == ((NimStringDesc*) NIM_NIL)))) goto LA3_;
		copyMem__system_1727(((void*) ((&(*dest).data[(*dest).Sup.len]))), ((void*) ((*src).data)), ((NI) ((NI)((*src).Sup.len + ((NI) 1)))));
		(*dest).Sup.len += (*src).Sup.len;
	}
	LA3_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, addInt128__int495056_643)(NimStringDesc** result, tyObject_Int128__9a9axPfb75jdWY25AamJewkA value) {
	NI initialSize;
	initialSize = ((*result) ? (*result)->Sup.len : 0);
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = eqeq___int495056_313(value, Zero__int495056_7);
		if (!T3_) goto LA4_;
		unsureAsgnRef((void**) (&(*result)), resizeString((*result), 1));
appendString((*result), ((NimStringDesc*) &TM__nQVdjfHleOuOqvMTepKJUw_3));
	}
	goto LA1_;
	LA4_: ;
	{
		NIM_BOOL T7_;
		T7_ = (NIM_BOOL)0;
		T7_ = eqeq___int495056_313(value, Min__int495056_10);
		if (!T7_) goto LA8_;
		unsureAsgnRef((void**) (&(*result)), resizeString((*result), 40));
appendString((*result), ((NimStringDesc*) &TM__nQVdjfHleOuOqvMTepKJUw_4));
	}
	goto LA1_;
	LA8_: ;
	{
		NIM_BOOL isNegative;
		tyObject_Int128__9a9axPfb75jdWY25AamJewkA value_2;
		NI i;
		NI j;
		isNegative = ((*((NI32*) ((&value.udata[(((NI) 3))- 0])))) < ((NI32) 0));
		value_2 = abs__int495056_481(value);
		{
			while (1) {
				NIM_BOOL T13_;
				tyTuple__0titlMXgFgzRLN6v28f9azA T14_;
				tyObject_Int128__9a9axPfb75jdWY25AamJewkA quot;
				tyObject_Int128__9a9axPfb75jdWY25AamJewkA rem;
				NI64 T15_;
				T13_ = (NIM_BOOL)0;
				T13_ = lt___int495056_305(Zero__int495056_7, value_2);
				if (!T13_) goto LA12;
				nimZeroMem((void*)(&T14_), sizeof(tyTuple__0titlMXgFgzRLN6v28f9azA));
				divMod__int495056_601(value_2, Ten__int495056_9, (&T14_));
				nimZeroMem((void*)(&quot), sizeof(tyObject_Int128__9a9axPfb75jdWY25AamJewkA));
				quot = T14_.Field0;
				nimZeroMem((void*)(&rem), sizeof(tyObject_Int128__9a9axPfb75jdWY25AamJewkA));
				rem = T14_.Field1;
				T15_ = (NI64)0;
				T15_ = toInt64__int495056_88(rem);
				unsureAsgnRef((void**) (&(*result)), addChar((*result), ((NimStringDesc*) &TM__nQVdjfHleOuOqvMTepKJUw_5)->data[T15_]));
				value_2 = quot;
			} LA12: ;
		}
		{
			if (!isNegative) goto LA18_;
			unsureAsgnRef((void**) (&(*result)), addChar((*result), 45));
		}
		LA18_: ;
		i = initialSize;
		j = (((*result) ? (*result)->Sup.len : 0)-1);
		{
			while (1) {
				NIM_CHAR T22_;
				if (!(i < j)) goto LA21;
				T22_ = (NIM_CHAR)0;
				T22_ = (*result)->data[i];
				(*result)->data[i] = (*result)->data[j];
				(*result)->data[j] = T22_;
				i += ((NI) 1);
				j -= ((NI) 1);
			} LA21: ;
		}
	}
	LA1_: ;
}
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, dollar___int495056_53)(tyObject_Int128__9a9axPfb75jdWY25AamJewkA a) {
	NimStringDesc* result;
	result = NIM_NIL;
	addInt128__int495056_643((&result), a);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, eqeq___int495056_775)(NI64 a, tyObject_Int128__9a9axPfb75jdWY25AamJewkA b) {
	NIM_BOOL result;
	tyObject_Int128__9a9axPfb75jdWY25AamJewkA T1_;
	result = (NIM_BOOL)0;
	T1_ = toInt128__int495056_734(a);
	result = eqeq___int495056_313(T1_, b);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NF, toFloat64__int495056_810)(tyObject_Int128__9a9axPfb75jdWY25AamJewkA arg) {
	NF result;
	NIM_BOOL isNegative;
	tyObject_Int128__9a9axPfb75jdWY25AamJewkA arg_2;
	NF a;
	NU64 T1_;
	NF b;
	NU64 T2_;
	result = (NF)0;
	isNegative = ((*((NI32*) ((&arg.udata[(((NI) 3))- 0])))) < ((NI32) 0));
	arg_2 = abs__int495056_481(arg);
	T1_ = (NU64)0;
	T1_ = bitconcat__int495056_64(arg_2.udata[(((NI) 1))- 0], arg_2.udata[(((NI) 0))- 0]);
	a = ((NF) (T1_));
	T2_ = (NU64)0;
	T2_ = bitconcat__int495056_64(arg_2.udata[(((NI) 3))- 0], arg_2.udata[(((NI) 2))- 0]);
	b = ((NF) (T2_));
	result = ((NF)(a) + (NF)(((NF)(1.8446744073709552e+19) * (NF)(b))));
	{
		if (!isNegative) goto LA5_;
		result = -(result);
	}
	LA5_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_Int128__9a9axPfb75jdWY25AamJewkA, toInt128__semfold_675)(NIM_BOOL arg) {
	tyObject_Int128__9a9axPfb75jdWY25AamJewkA result;
	nimZeroMem((void*)(&result), sizeof(tyObject_Int128__9a9axPfb75jdWY25AamJewkA));
	(*((NI32*) ((&result.udata[(((NI) 0))- 0])))) = ((NI32) (arg));
	return result;
}
static N_INLINE(NF, abs__pureZmath_150)(NF x) {
	NF result;
	result = (NF)0;
	result = fabs(x);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_Int128__9a9axPfb75jdWY25AamJewkA, toInt128__int495056_824)(NF arg) {
	tyObject_Int128__9a9axPfb75jdWY25AamJewkA result;
	NIM_BOOL isNegative;
	NF v0;
	NF T1_;
	NU64 w0;
	NF T2_;
	NF v1;
	NU64 w1;
	NF T3_;
	NF v2;
	NU64 w2;
	NF T4_;
	tyObject_Int128__9a9axPfb75jdWY25AamJewkA res;
	tyObject_Int128__9a9axPfb75jdWY25AamJewkA T5_;
	tyObject_Int128__9a9axPfb75jdWY25AamJewkA T6_;
	tyObject_Int128__9a9axPfb75jdWY25AamJewkA T7_;
	tyObject_Int128__9a9axPfb75jdWY25AamJewkA T8_;
	tyObject_Int128__9a9axPfb75jdWY25AamJewkA T9_;
	tyObject_Int128__9a9axPfb75jdWY25AamJewkA T10_;
{	nimZeroMem((void*)(&result), sizeof(tyObject_Int128__9a9axPfb75jdWY25AamJewkA));
	isNegative = (arg < 0.0);
	T1_ = (NF)0;
	T1_ = abs__pureZmath_150(arg);
	v0 = ldexp(T1_, ((int) -100));
	T2_ = (NF)0;
	T2_ = trunc(v0);
	w0 = ((NU64) (T2_));
	v1 = ldexp(((NF)(v0) - (NF)(((NF) (w0)))), ((int) 50));
	T3_ = (NF)0;
	T3_ = trunc(v1);
	w1 = ((NU64) (T3_));
	v2 = ldexp(((NF)(v1) - (NF)(((NF) (w1)))), ((int) 50));
	T4_ = (NF)0;
	T4_ = trunc(v2);
	w2 = ((NU64) (T4_));
	T5_ = toInt128__int495056_556(w0);
	T6_ = shl__int495056_379(T5_, ((NI) 100));
	T7_ = toInt128__int495056_556(w1);
	T8_ = shl__int495056_379(T7_, ((NI) 50));
	T9_ = bitor__int495056_326(T6_, T8_);
	T10_ = toInt128__int495056_556(w2);
	res = bitor__int495056_326(T9_, T10_);
	{
		if (!isNegative) goto LA13_;
		result = minus___int495056_471(res);
		goto BeforeRet_;
	}
	goto LA11_;
	LA13_: ;
	{
		result = res;
		goto BeforeRet_;
	}
	LA11_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NI, toInt__int495056_170)(tyObject_Int128__9a9axPfb75jdWY25AamJewkA arg) {
	NI result;
	NI32 T1_;
	result = (NI)0;
	T1_ = (NI32)0;
	T1_ = toInt32__int495056_107(arg);
	result = ((NI) (T1_));
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, lt___int495056_747)(NI64 a, tyObject_Int128__9a9axPfb75jdWY25AamJewkA b) {
	NIM_BOOL result;
	tyObject_Int128__9a9axPfb75jdWY25AamJewkA T1_;
	NI T2_;
	result = (NIM_BOOL)0;
	T1_ = toInt128__int495056_734(a);
	T2_ = (NI)0;
	T2_ = cmp__int495056_279(T1_, b);
	result = (T2_ < ((NI) 0));
	return result;
}
