local O=script.Parent local n=O.Parent local t=require(n.t)local U=t.table local function P(...)local O={}local n=select("\035",...)if n<=0 then return O end local t=select(1,...)assert(U(t))local P=#t for O=2,n,1 do local n=select(O,...)assert(U(n))local t=#n if t<P then P=t end end for t=1,P,1 do O[t]={}for n=1,n,1 do O[t][n]=(select(n,...))[t]end end return O end return P
local List = script.Parent

local Llama = List.Parent
local t = require(Llama.t)

local validate = t.table

local function zip(...)
	local new = {}
	local argCount = select('#', ...)

	if argCount <= 0 then
		return new
	end

	local firstList = select(1, ...)

	assert(validate(firstList))

	local minLen = #firstList

	for i = 2, argCount do
		local list = select(i, ...)

		assert(validate(list))

		local len = #list

		if len < minLen then
			minLen = len
		end
	end

	for i = 1, minLen do
		new[i] = {}
		
		for j = 1, argCount do
			new[i][j] = select(j, ...)[i]
		end
	end

	return new
end

return zip