local A=script.Parent local Z=A.Parent local T=require(Z.t)local j=T.table local function o(...)local A={}local Z=select("\035",...)local T=select(1,...)assert(j(T))for T,o in pairs(T)do local W=true for A=2,Z,1 do local Z=select(A,...)assert(j(Z))if Z[T]==nil then W=false break end end if W then A[T]=true end end return A end return o
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