local v=script.Parent local E=v.Parent local L=require(E.t)local C=L.table local function p(...)local v={}local E=select("\035",...)if E<=0 then return v end local L=select(1,...)assert(C(L))local p=#L for v=2,E,1 do local E=select(v,...)assert(C(E))local L=#E if L<p then p=L end end for L=1,p,1 do v[L]={}for E=1,E,1 do v[L][E]=(select(E,...))[L]end end return v 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