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",...)local L=select(1,...)assert(C(L))for L,p in pairs(L)do local s=true for v=2,E,1 do local E=select(v,...)assert(C(E))if E[L]==nil then s=false break end end if s then v[L]=true end end return v end return p
local Set = script.Parent

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

local validate = t.table

local function intersection(...)
	local new = {}
	local argCount = select('#', ...)
	local firstSet = select(1, ...)

	assert(validate(firstSet))

	for key, _ in pairs(firstSet) do
		local intersects = true

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

			assert(validate(set))

			if set[key] == nil then
				intersects = false
				break
			end
		end

		if intersects then
			new[key] = true
		end
	end

	return new
end

return intersection