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

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

local validate = t.table

local function zipAll(...)
	local new = {}
	local argCount = select('#', ...)
	local maxLen = 0

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

		assert(validate(list))

		local len = #list

		if len > maxLen then
			maxLen = len
		end
	end

	for i = 1, maxLen do
		new[i] = {}
		
		for j = 1, argCount do
			local value = select(j, ...)[i]

			if value == nil then
				new[i][j] = None
			else
				new[i][j] = select(j, ...)[i]
			end
		end
	end

	return new
end

return zipAll