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

#include "nimbase.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 tySequence_pxbIse2JUQkJU0n9blV9bY5g tySequence_pxbIse2JUQkJU0n9blV9bY5g;
typedef struct TGenericSeq TGenericSeq;
typedef struct TNimType TNimType;
typedef struct TNimNode TNimNode;
typedef struct NimStringDesc NimStringDesc;
struct TGenericSeq {
NI len;
NI reserved;
};
typedef NU8 tyEnum_TNimKind_jIBKr1ejBgsfM33Kxw4j7A;
typedef NU8 tySet_tyEnum_TNimTypeFlag_v8QUszD1sWlSIWZz7mC4bQ;
typedef N_NIMCALL_PTR(void, tyProc_ojoeKfW4VYIm36I9cpDTQIg) (void* p, NI op);
typedef N_NIMCALL_PTR(void*, tyProc_WSm2xU5ARYv9aAR4l0z9c9auQ) (void* p);
struct TNimType {
NI size;
tyEnum_TNimKind_jIBKr1ejBgsfM33Kxw4j7A kind;
tySet_tyEnum_TNimTypeFlag_v8QUszD1sWlSIWZz7mC4bQ flags;
TNimType* base;
TNimNode* node;
void* finalizer;
tyProc_ojoeKfW4VYIm36I9cpDTQIg marker;
tyProc_WSm2xU5ARYv9aAR4l0z9c9auQ deepcopy;
};
typedef NU8 tyEnum_TNimNodeKind_unfNsxrcATrufDZmpBq4HQ;
struct TNimNode {
tyEnum_TNimNodeKind_unfNsxrcATrufDZmpBq4HQ kind;
NI offset;
TNimType* typ;
NCSTRING name;
NI len;
TNimNode** sons;
};
struct NimStringDesc {
  TGenericSeq Sup;
NIM_CHAR data[SEQ_DECL_SIZE];
};
typedef NI8 tyArray_L8ulb9awGMOSlDNw5AKsFOw[256];
struct tySequence_pxbIse2JUQkJU0n9blV9bY5g {
  TGenericSeq Sup;
  NI8 data[SEQ_DECL_SIZE];
};
static N_INLINE(NI, chckRange)(NI i, NI a, NI b);
N_NOINLINE(void, raiseRangeError)(NI64 val);
N_NIMCALL(void*, newSeq)(TNimType* typ, NI len);
static N_NIMCALL(void, Marker_tySequence_pxbIse2JUQkJU0n9blV9bY5g)(void* p, NI op);
N_NIMCALL(void, unsureAsgnRef)(void** dest, void* src);
N_LIB_PRIVATE N_NIMCALL(void, failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A)(NimStringDesc* msg);
static N_INLINE(NI64, divInt64)(NI64 a, NI64 b);
N_NOINLINE(void, raiseDivByZero)(void);
N_NOINLINE(void, raiseOverflow)(void);
N_NOINLINE(void, raiseIndexError2)(NI i, NI n);
static N_INLINE(NI64, modInt64)(NI64 a, NI64 b);
N_NOINLINE(void, raiseIndexError3)(NI i, NI a, NI b);
static N_INLINE(NI64, addInt64)(NI64 a, NI64 b);
static N_INLINE(NI, addInt)(NI a, NI b);
extern TNimType NTI_chXunH2dwinSkhpA6JnsXw_;
TNimType NTI_pxbIse2JUQkJU0n9blV9bY5g_;
STRING_LITERAL(TM_sZxD5iFo9aFCaIja9a9bnYnuw_2, "/Users/travis/build/nim-lang/nightlies/nim/e7471cebae2a404f3e42"
"39f199f5a0c422484aac/compiler/bitsets.nim(39, 9) `elem >= 0` ", 124);
NIM_CONST tyArray_L8ulb9awGMOSlDNw5AKsFOw populationCount_Ly9aQbOrmv9a2vbYdHwEtF9cg = {((NI8) 1),
((NI8) 2),
((NI8) 2),
((NI8) 3),
((NI8) 2),
((NI8) 3),
((NI8) 3),
((NI8) 4),
((NI8) 2),
((NI8) 3),
((NI8) 3),
((NI8) 4),
((NI8) 3),
((NI8) 4),
((NI8) 4),
((NI8) 5),
((NI8) 2),
((NI8) 3),
((NI8) 3),
((NI8) 4),
((NI8) 3),
((NI8) 4),
((NI8) 4),
((NI8) 5),
((NI8) 3),
((NI8) 4),
((NI8) 4),
((NI8) 5),
((NI8) 4),
((NI8) 5),
((NI8) 5),
((NI8) 6),
((NI8) 2),
((NI8) 3),
((NI8) 3),
((NI8) 4),
((NI8) 3),
((NI8) 4),
((NI8) 4),
((NI8) 5),
((NI8) 3),
((NI8) 4),
((NI8) 4),
((NI8) 5),
((NI8) 4),
((NI8) 5),
((NI8) 5),
((NI8) 6),
((NI8) 3),
((NI8) 4),
((NI8) 4),
((NI8) 5),
((NI8) 4),
((NI8) 5),
((NI8) 5),
((NI8) 6),
((NI8) 4),
((NI8) 5),
((NI8) 5),
((NI8) 6),
((NI8) 5),
((NI8) 6),
((NI8) 6),
((NI8) 7),
((NI8) 2),
((NI8) 3),
((NI8) 3),
((NI8) 4),
((NI8) 3),
((NI8) 4),
((NI8) 4),
((NI8) 5),
((NI8) 3),
((NI8) 4),
((NI8) 4),
((NI8) 5),
((NI8) 4),
((NI8) 5),
((NI8) 5),
((NI8) 6),
((NI8) 3),
((NI8) 4),
((NI8) 4),
((NI8) 5),
((NI8) 4),
((NI8) 5),
((NI8) 5),
((NI8) 6),
((NI8) 4),
((NI8) 5),
((NI8) 5),
((NI8) 6),
((NI8) 5),
((NI8) 6),
((NI8) 6),
((NI8) 7),
((NI8) 3),
((NI8) 4),
((NI8) 4),
((NI8) 5),
((NI8) 4),
((NI8) 5),
((NI8) 5),
((NI8) 6),
((NI8) 4),
((NI8) 5),
((NI8) 5),
((NI8) 6),
((NI8) 5),
((NI8) 6),
((NI8) 6),
((NI8) 7),
((NI8) 4),
((NI8) 5),
((NI8) 5),
((NI8) 6),
((NI8) 5),
((NI8) 6),
((NI8) 6),
((NI8) 7),
((NI8) 5),
((NI8) 6),
((NI8) 6),
((NI8) 7),
((NI8) 6),
((NI8) 7),
((NI8) 7),
((NI8) 8),
((NI8) 0),
((NI8) 1),
((NI8) 1),
((NI8) 2),
((NI8) 1),
((NI8) 2),
((NI8) 2),
((NI8) 3),
((NI8) 1),
((NI8) 2),
((NI8) 2),
((NI8) 3),
((NI8) 2),
((NI8) 3),
((NI8) 3),
((NI8) 4),
((NI8) 1),
((NI8) 2),
((NI8) 2),
((NI8) 3),
((NI8) 2),
((NI8) 3),
((NI8) 3),
((NI8) 4),
((NI8) 2),
((NI8) 3),
((NI8) 3),
((NI8) 4),
((NI8) 3),
((NI8) 4),
((NI8) 4),
((NI8) 5),
((NI8) 1),
((NI8) 2),
((NI8) 2),
((NI8) 3),
((NI8) 2),
((NI8) 3),
((NI8) 3),
((NI8) 4),
((NI8) 2),
((NI8) 3),
((NI8) 3),
((NI8) 4),
((NI8) 3),
((NI8) 4),
((NI8) 4),
((NI8) 5),
((NI8) 2),
((NI8) 3),
((NI8) 3),
((NI8) 4),
((NI8) 3),
((NI8) 4),
((NI8) 4),
((NI8) 5),
((NI8) 3),
((NI8) 4),
((NI8) 4),
((NI8) 5),
((NI8) 4),
((NI8) 5),
((NI8) 5),
((NI8) 6),
((NI8) 1),
((NI8) 2),
((NI8) 2),
((NI8) 3),
((NI8) 2),
((NI8) 3),
((NI8) 3),
((NI8) 4),
((NI8) 2),
((NI8) 3),
((NI8) 3),
((NI8) 4),
((NI8) 3),
((NI8) 4),
((NI8) 4),
((NI8) 5),
((NI8) 2),
((NI8) 3),
((NI8) 3),
((NI8) 4),
((NI8) 3),
((NI8) 4),
((NI8) 4),
((NI8) 5),
((NI8) 3),
((NI8) 4),
((NI8) 4),
((NI8) 5),
((NI8) 4),
((NI8) 5),
((NI8) 5),
((NI8) 6),
((NI8) 2),
((NI8) 3),
((NI8) 3),
((NI8) 4),
((NI8) 3),
((NI8) 4),
((NI8) 4),
((NI8) 5),
((NI8) 3),
((NI8) 4),
((NI8) 4),
((NI8) 5),
((NI8) 4),
((NI8) 5),
((NI8) 5),
((NI8) 6),
((NI8) 3),
((NI8) 4),
((NI8) 4),
((NI8) 5),
((NI8) 4),
((NI8) 5),
((NI8) 5),
((NI8) 6),
((NI8) 4),
((NI8) 5),
((NI8) 5),
((NI8) 6),
((NI8) 5),
((NI8) 6),
((NI8) 6),
((NI8) 7)}
;
STRING_LITERAL(TM_sZxD5iFo9aFCaIja9a9bnYnuw_8, "/Users/travis/build/nim-lang/nightlies/nim/e7471cebae2a404f3e42"
"39f199f5a0c422484aac/lib/system/iterators.nim(190, 11) `len(a) ="
"= L` the length of the seq changed while iterating over it", 185);

static N_INLINE(NI, chckRange)(NI i, NI a, NI b) {
	NI result;
{	result = (NI)0;
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = (a <= i);
		if (!(T3_)) goto LA4_;
		T3_ = (i <= b);
		LA4_: ;
		if (!T3_) goto LA5_;
		result = i;
		goto BeforeRet_;
	}
	goto LA1_;
	LA5_: ;
	{
		raiseRangeError(((NI64) (i)));
	}
	LA1_: ;
	}BeforeRet_: ;
	return result;
}
static N_NIMCALL(void, Marker_tySequence_pxbIse2JUQkJU0n9blV9bY5g)(void* p, NI op) {
	tySequence_pxbIse2JUQkJU0n9blV9bY5g* a;
	NI T1_;
	a = (tySequence_pxbIse2JUQkJU0n9blV9bY5g*)p;
	T1_ = (NI)0;
}

N_LIB_PRIVATE N_NIMCALL(void, bitSetInit_T39bKtX2JHdvNWWk0TfFpmg)(tySequence_pxbIse2JUQkJU0n9blV9bY5g** b, NI length) {
	unsureAsgnRef((void**) (&(*b)), (tySequence_pxbIse2JUQkJU0n9blV9bY5g*) newSeq((&NTI_pxbIse2JUQkJU0n9blV9bY5g_), ((NI)chckRange(length, ((NI) 0), ((NI) IL64(9223372036854775807))))));
}

static N_INLINE(NI64, divInt64)(NI64 a, NI64 b) {
	NI64 result;
{	result = (NI64)0;
	{
		if (!(b == IL64(0))) goto LA3_;
		raiseDivByZero();
	}
	LA3_: ;
	{
		NIM_BOOL T7_;
		T7_ = (NIM_BOOL)0;
		T7_ = (a == (IL64(-9223372036854775807) - IL64(1)));
		if (!(T7_)) goto LA8_;
		T7_ = (b == IL64(-1));
		LA8_: ;
		if (!T7_) goto LA9_;
		raiseOverflow();
	}
	LA9_: ;
	result = (NI64)(a / b);
	goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}

static N_INLINE(NI64, modInt64)(NI64 a, NI64 b) {
	NI64 result;
{	result = (NI64)0;
	{
		if (!(b == IL64(0))) goto LA3_;
		raiseDivByZero();
	}
	LA3_: ;
	result = (NI64)(a % b);
	goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(void, bitSetIncl_9awEOMXe4r2cReUAL9aRMpXw)(tySequence_pxbIse2JUQkJU0n9blV9bY5g** x, NI64 elem) {
	NI64 TM_sZxD5iFo9aFCaIja9a9bnYnuw_3;
	NI64 TM_sZxD5iFo9aFCaIja9a9bnYnuw_4;
	NI64 TM_sZxD5iFo9aFCaIja9a9bnYnuw_5;
	{
		if (!!((IL64(0) <= elem))) goto LA3_;
		failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_sZxD5iFo9aFCaIja9a9bnYnuw_2));
	}
	LA3_: ;
	TM_sZxD5iFo9aFCaIja9a9bnYnuw_3 = divInt64(elem, IL64(8));
	if ((NU)((NI64)(TM_sZxD5iFo9aFCaIja9a9bnYnuw_3)) >= (NU)((*x) ? (*x)->Sup.len : 0)) raiseIndexError2((NI64)(TM_sZxD5iFo9aFCaIja9a9bnYnuw_3),((*x) ? (*x)->Sup.len : 0)-1);
	TM_sZxD5iFo9aFCaIja9a9bnYnuw_4 = divInt64(elem, IL64(8));
	if ((NU)((NI64)(TM_sZxD5iFo9aFCaIja9a9bnYnuw_4)) >= (NU)((*x) ? (*x)->Sup.len : 0)) raiseIndexError2((NI64)(TM_sZxD5iFo9aFCaIja9a9bnYnuw_4),((*x) ? (*x)->Sup.len : 0)-1);
	TM_sZxD5iFo9aFCaIja9a9bnYnuw_5 = modInt64(elem, IL64(8));
	(*x)->data[(NI64)(TM_sZxD5iFo9aFCaIja9a9bnYnuw_3)] = (NI8)((*x)->data[(NI64)(TM_sZxD5iFo9aFCaIja9a9bnYnuw_4)] | ((NI8)(NU8)(NU)((NI)((NU64)(((NI) 1)) << (NU64)((NI64)(TM_sZxD5iFo9aFCaIja9a9bnYnuw_5))))));
}

static N_INLINE(NI64, addInt64)(NI64 a, NI64 b) {
	NI64 result;
{	result = (NI64)0;
	result = (NI64)((NU64)(a) + (NU64)(b));
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = (IL64(0) <= (NI64)(result ^ a));
		if (T3_) goto LA4_;
		T3_ = (IL64(0) <= (NI64)(result ^ b));
		LA4_: ;
		if (!T3_) goto LA5_;
		goto BeforeRet_;
	}
	LA5_: ;
	raiseOverflow();
	}BeforeRet_: ;
	return result;
}

static N_INLINE(NI, addInt)(NI a, NI b) {
	NI result;
{	result = (NI)0;
	result = (NI)((NU64)(a) + (NU64)(b));
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = (((NI) 0) <= (NI)(result ^ a));
		if (T3_) goto LA4_;
		T3_ = (((NI) 0) <= (NI)(result ^ b));
		LA4_: ;
		if (!T3_) goto LA5_;
		goto BeforeRet_;
	}
	LA5_: ;
	raiseOverflow();
	}BeforeRet_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(NI64, bitSetCard_ZHQdTirDV7alskgSUx3Scw)(tySequence_pxbIse2JUQkJU0n9blV9bY5g* x) {
	NI64 result;
	result = (NI64)0;
	{
		NI8 it;
		NI i;
		NI L;
		NI T2_;
		it = (NI8)0;
		i = ((NI) 0);
		T2_ = (x ? x->Sup.len : 0);
		L = T2_;
		{
			while (1) {
				NI64 TM_sZxD5iFo9aFCaIja9a9bnYnuw_6;
				NI TM_sZxD5iFo9aFCaIja9a9bnYnuw_7;
				if (!(i < L)) goto LA4;
				if ((NU)(i) >= (NU)(x ? x->Sup.len : 0)) raiseIndexError2(i,(x ? x->Sup.len : 0)-1);
				it = x->data[i];
				if (it < -128 || it > 127) raiseIndexError3(it, -128, 127);
				TM_sZxD5iFo9aFCaIja9a9bnYnuw_6 = addInt64(result, ((NI) (populationCount_Ly9aQbOrmv9a2vbYdHwEtF9cg[(it)- -128])));
				result = (NI64)(TM_sZxD5iFo9aFCaIja9a9bnYnuw_6);
				TM_sZxD5iFo9aFCaIja9a9bnYnuw_7 = addInt(i, ((NI) 1));
				i = (NI)(TM_sZxD5iFo9aFCaIja9a9bnYnuw_7);
				{
					NI T7_;
					T7_ = (x ? x->Sup.len : 0);
					if (!!((T7_ == L))) goto LA8_;
					failedAssertImpl_W9cjVocn1tjhW7p7xohJj6A(((NimStringDesc*) &TM_sZxD5iFo9aFCaIja9a9bnYnuw_8));
				}
				LA8_: ;
			} LA4: ;
		}
	}
	return result;
}

N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, bitSetContains_mzORTSY4gMvODHf4n9auNeA)(tySequence_pxbIse2JUQkJU0n9blV9bY5g* x, tySequence_pxbIse2JUQkJU0n9blV9bY5g* y) {
	NIM_BOOL result;
{	result = (NIM_BOOL)0;
	{
		NI i;
		NI colontmp_;
		NI T2_;
		NI res;
		i = (NI)0;
		colontmp_ = (NI)0;
		T2_ = ((x ? x->Sup.len : 0)-1);
		colontmp_ = T2_;
		res = ((NI) 0);
		{
			while (1) {
				NI TM_sZxD5iFo9aFCaIja9a9bnYnuw_9;
				if (!(res <= colontmp_)) goto LA4;
				i = res;
				{
					if ((NU)(i) >= (NU)(x ? x->Sup.len : 0)) raiseIndexError2(i,(x ? x->Sup.len : 0)-1);
					if ((NU)(i) >= (NU)(y ? y->Sup.len : 0)) raiseIndexError2(i,(y ? y->Sup.len : 0)-1);
					if (!!(((NI8)(x->data[i] & (NI8)((NU8) ~(y->data[i]))) == ((NI8) 0)))) goto LA7_;
					result = NIM_FALSE;
					goto BeforeRet_;
				}
				LA7_: ;
				TM_sZxD5iFo9aFCaIja9a9bnYnuw_9 = addInt(res, ((NI) 1));
				res = (NI)(TM_sZxD5iFo9aFCaIja9a9bnYnuw_9);
			} LA4: ;
		}
	}
	result = NIM_TRUE;
	}BeforeRet_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, bitSetEquals_mzORTSY4gMvODHf4n9auNeA_2)(tySequence_pxbIse2JUQkJU0n9blV9bY5g* x, tySequence_pxbIse2JUQkJU0n9blV9bY5g* y) {
	NIM_BOOL result;
{	result = (NIM_BOOL)0;
	{
		NI i;
		NI colontmp_;
		NI T2_;
		NI res;
		i = (NI)0;
		colontmp_ = (NI)0;
		T2_ = ((x ? x->Sup.len : 0)-1);
		colontmp_ = T2_;
		res = ((NI) 0);
		{
			while (1) {
				NI TM_sZxD5iFo9aFCaIja9a9bnYnuw_10;
				if (!(res <= colontmp_)) goto LA4;
				i = res;
				{
					if ((NU)(i) >= (NU)(x ? x->Sup.len : 0)) raiseIndexError2(i,(x ? x->Sup.len : 0)-1);
					if ((NU)(i) >= (NU)(y ? y->Sup.len : 0)) raiseIndexError2(i,(y ? y->Sup.len : 0)-1);
					if (!!((x->data[i] == y->data[i]))) goto LA7_;
					result = NIM_FALSE;
					goto BeforeRet_;
				}
				LA7_: ;
				TM_sZxD5iFo9aFCaIja9a9bnYnuw_10 = addInt(res, ((NI) 1));
				res = (NI)(TM_sZxD5iFo9aFCaIja9a9bnYnuw_10);
			} LA4: ;
		}
	}
	result = NIM_TRUE;
	}BeforeRet_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(void, bitSetIntersect_qWxhxHmkYQCr0oikq8R6uQ)(tySequence_pxbIse2JUQkJU0n9blV9bY5g** x, tySequence_pxbIse2JUQkJU0n9blV9bY5g* y) {
	{
		NI i;
		NI colontmp_;
		NI T2_;
		NI res;
		i = (NI)0;
		colontmp_ = (NI)0;
		T2_ = (((*x) ? (*x)->Sup.len : 0)-1);
		colontmp_ = T2_;
		res = ((NI) 0);
		{
			while (1) {
				NI TM_sZxD5iFo9aFCaIja9a9bnYnuw_11;
				if (!(res <= colontmp_)) goto LA4;
				i = res;
				if ((NU)(i) >= (NU)((*x) ? (*x)->Sup.len : 0)) raiseIndexError2(i,((*x) ? (*x)->Sup.len : 0)-1);
				if ((NU)(i) >= (NU)((*x) ? (*x)->Sup.len : 0)) raiseIndexError2(i,((*x) ? (*x)->Sup.len : 0)-1);
				if ((NU)(i) >= (NU)(y ? y->Sup.len : 0)) raiseIndexError2(i,(y ? y->Sup.len : 0)-1);
				(*x)->data[i] = (NI8)((*x)->data[i] & y->data[i]);
				TM_sZxD5iFo9aFCaIja9a9bnYnuw_11 = addInt(res, ((NI) 1));
				res = (NI)(TM_sZxD5iFo9aFCaIja9a9bnYnuw_11);
			} LA4: ;
		}
	}
}

N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, bitSetIn_hXUeZ7hM1IMvaWWfkipuzQ)(tySequence_pxbIse2JUQkJU0n9blV9bY5g* x, NI64 e) {
	NIM_BOOL result;
	NI64 TM_sZxD5iFo9aFCaIja9a9bnYnuw_12;
	NI64 TM_sZxD5iFo9aFCaIja9a9bnYnuw_13;
	result = (NIM_BOOL)0;
	TM_sZxD5iFo9aFCaIja9a9bnYnuw_12 = divInt64(e, IL64(8));
	if ((NU)((NI64)(TM_sZxD5iFo9aFCaIja9a9bnYnuw_12)) >= (NU)(x ? x->Sup.len : 0)) raiseIndexError2((NI64)(TM_sZxD5iFo9aFCaIja9a9bnYnuw_12),(x ? x->Sup.len : 0)-1);
	TM_sZxD5iFo9aFCaIja9a9bnYnuw_13 = modInt64(e, IL64(8));
	result = !(((NI8)(x->data[(NI64)(TM_sZxD5iFo9aFCaIja9a9bnYnuw_12)] & ((NI8)(NU8)(NU)((NI)((NU64)(((NI) 1)) << (NU64)((NI64)(TM_sZxD5iFo9aFCaIja9a9bnYnuw_13)))))) == ((NI8) 0)));
	return result;
}

N_LIB_PRIVATE N_NIMCALL(void, bitSetUnion_qWxhxHmkYQCr0oikq8R6uQ_2)(tySequence_pxbIse2JUQkJU0n9blV9bY5g** x, tySequence_pxbIse2JUQkJU0n9blV9bY5g* y) {
	{
		NI i;
		NI colontmp_;
		NI T2_;
		NI res;
		i = (NI)0;
		colontmp_ = (NI)0;
		T2_ = (((*x) ? (*x)->Sup.len : 0)-1);
		colontmp_ = T2_;
		res = ((NI) 0);
		{
			while (1) {
				NI TM_sZxD5iFo9aFCaIja9a9bnYnuw_14;
				if (!(res <= colontmp_)) goto LA4;
				i = res;
				if ((NU)(i) >= (NU)((*x) ? (*x)->Sup.len : 0)) raiseIndexError2(i,((*x) ? (*x)->Sup.len : 0)-1);
				if ((NU)(i) >= (NU)((*x) ? (*x)->Sup.len : 0)) raiseIndexError2(i,((*x) ? (*x)->Sup.len : 0)-1);
				if ((NU)(i) >= (NU)(y ? y->Sup.len : 0)) raiseIndexError2(i,(y ? y->Sup.len : 0)-1);
				(*x)->data[i] = (NI8)((*x)->data[i] | y->data[i]);
				TM_sZxD5iFo9aFCaIja9a9bnYnuw_14 = addInt(res, ((NI) 1));
				res = (NI)(TM_sZxD5iFo9aFCaIja9a9bnYnuw_14);
			} LA4: ;
		}
	}
}

N_LIB_PRIVATE N_NIMCALL(void, bitSetDiff_qWxhxHmkYQCr0oikq8R6uQ_3)(tySequence_pxbIse2JUQkJU0n9blV9bY5g** x, tySequence_pxbIse2JUQkJU0n9blV9bY5g* y) {
	{
		NI i;
		NI colontmp_;
		NI T2_;
		NI res;
		i = (NI)0;
		colontmp_ = (NI)0;
		T2_ = (((*x) ? (*x)->Sup.len : 0)-1);
		colontmp_ = T2_;
		res = ((NI) 0);
		{
			while (1) {
				NI TM_sZxD5iFo9aFCaIja9a9bnYnuw_15;
				if (!(res <= colontmp_)) goto LA4;
				i = res;
				if ((NU)(i) >= (NU)((*x) ? (*x)->Sup.len : 0)) raiseIndexError2(i,((*x) ? (*x)->Sup.len : 0)-1);
				if ((NU)(i) >= (NU)((*x) ? (*x)->Sup.len : 0)) raiseIndexError2(i,((*x) ? (*x)->Sup.len : 0)-1);
				if ((NU)(i) >= (NU)(y ? y->Sup.len : 0)) raiseIndexError2(i,(y ? y->Sup.len : 0)-1);
				(*x)->data[i] = (NI8)((*x)->data[i] & (NI8)((NU8) ~(y->data[i])));
				TM_sZxD5iFo9aFCaIja9a9bnYnuw_15 = addInt(res, ((NI) 1));
				res = (NI)(TM_sZxD5iFo9aFCaIja9a9bnYnuw_15);
			} LA4: ;
		}
	}
}

N_LIB_PRIVATE N_NIMCALL(void, bitSetSymDiff_qWxhxHmkYQCr0oikq8R6uQ_4)(tySequence_pxbIse2JUQkJU0n9blV9bY5g** x, tySequence_pxbIse2JUQkJU0n9blV9bY5g* y) {
	{
		NI i;
		NI colontmp_;
		NI T2_;
		NI res;
		i = (NI)0;
		colontmp_ = (NI)0;
		T2_ = (((*x) ? (*x)->Sup.len : 0)-1);
		colontmp_ = T2_;
		res = ((NI) 0);
		{
			while (1) {
				NI TM_sZxD5iFo9aFCaIja9a9bnYnuw_16;
				if (!(res <= colontmp_)) goto LA4;
				i = res;
				if ((NU)(i) >= (NU)((*x) ? (*x)->Sup.len : 0)) raiseIndexError2(i,((*x) ? (*x)->Sup.len : 0)-1);
				if ((NU)(i) >= (NU)((*x) ? (*x)->Sup.len : 0)) raiseIndexError2(i,((*x) ? (*x)->Sup.len : 0)-1);
				if ((NU)(i) >= (NU)(y ? y->Sup.len : 0)) raiseIndexError2(i,(y ? y->Sup.len : 0)-1);
				(*x)->data[i] = (NI8)((*x)->data[i] ^ y->data[i]);
				TM_sZxD5iFo9aFCaIja9a9bnYnuw_16 = addInt(res, ((NI) 1));
				res = (NI)(TM_sZxD5iFo9aFCaIja9a9bnYnuw_16);
			} LA4: ;
		}
	}
}
N_LIB_PRIVATE N_NIMCALL(void, compiler_bitsetsDatInit000)(void) {
NTI_pxbIse2JUQkJU0n9blV9bY5g_.size = sizeof(tySequence_pxbIse2JUQkJU0n9blV9bY5g*);
NTI_pxbIse2JUQkJU0n9blV9bY5g_.kind = 24;
NTI_pxbIse2JUQkJU0n9blV9bY5g_.base = (&NTI_chXunH2dwinSkhpA6JnsXw_);
NTI_pxbIse2JUQkJU0n9blV9bY5g_.flags = 2;
NTI_pxbIse2JUQkJU0n9blV9bY5g_.marker = Marker_tySequence_pxbIse2JUQkJU0n9blV9bY5g;
}

