local h={}for k,W in pairs(table)do h[k]=W end function h.contains(k,W)return h.indexOf(k,W)~=nil end function h.indexOf(k,W)local w=table.find(k,W)if w then return w end return h.keyOf(k,W)end function h.keyOf(h,k)for h,W in pairs(h)do if W==k then return h end end return nil end function h.skip(h,k)return table.move(h,k+1,#h,1,table.create(#h-k))end function h.take(h,k)return table.move(h,1,k,1,table.create(k))end function h.range(h,k,W)return table.move(h,k,W,1,table.create((W-k)+1))end function h.skipAndTake(h,k,W)return table.move(h,k+1,k+W,1,table.create(W))end local k=Random.new()function h.random(h)return h[k:NextInteger(1,#h)]end function h.join(h,k)local W=table.create(#h+#k)local w=table.move(h,1,#h,1,W)return table.move(k,1,#k,#h+1,W)end function h.removeObject(k,W)local w=h.indexOf(k,W)if w then table.remove(k,w)end end function h.expand(h,k)if k<0 then error("\067\097\110\110\111\116 \101\120\112\097\110\100 \097 \116\097\098\108\101 \098\121 \097 \110\101\103\097\116\105\118\101 \097\109\111\117\110\116 \111\102 \111\098\106\101\099\116\115\046")end local W=table.create(#h+k)for k=1,#h,1 do W[k]=h[k]end return W end return h


local v1 = {};
for v2, v3 in pairs(table) do
	v1[v2] = v3;
end;
function v1.contains(p1, p2)
	return v1.indexOf(p1, p2) ~= nil;
end;
function v1.indexOf(p3, p4)
	local v4 = table.find(p3, p4);
	if v4 then
		return v4;
	end;
	return v1.keyOf(p3, p4);
end;
function v1.keyOf(p5, p6)
	for v5, v6 in pairs(p5) do
		if v6 == p6 then
			return v5;
		end;
	end;
	return nil;
end;
function v1.skip(p7, p8)
	return table.move(p7, p8 + 1, #p7, 1, table.create(#p7 - p8));
end;
function v1.take(p9, p10)
	return table.move(p9, 1, p10, 1, table.create(p10));
end;
function v1.range(p11, p12, p13)
	return table.move(p11, p12, p13, 1, table.create(p13 - p12 + 1));
end;
function v1.skipAndTake(p14, p15, p16)
	return table.move(p14, p15 + 1, p15 + p16, 1, table.create(p16));
end;
local u1 = Random.new();
function v1.random(p17)
	return p17[u1:NextInteger(1, #p17)];
end;
function v1.join(p18, p19)
	local v7 = table.create(#p18 + #p19);
	local v8 = table.move(p18, 1, #p18, 1, v7);
	return table.move(p19, 1, #p19, #p18 + 1, v7);
end;
function v1.removeObject(p20, p21)
	local v9 = v1.indexOf(p20, p21);
	if v9 then
		table.remove(p20, v9);
	end;
end;
function v1.expand(p22, p23)
	if p23 < 0 then
		error("Cannot expand a table by a negative amount of objects.");
	end;
	local v10 = table.create(#p22 + p23);
	for v11 = 1, #p22 do
		v10[v11] = p22[v11];
	end;
	return v10;
end;
return v1;
