local q=script.Parent local O=q.Parent local S=require(O.equalObjects)local function Y(q,O)if type(q)~="\116\097\098\108\101"or type(O)~="\116\097\098\108\101"then return q==O end for q,S in pairs(q)do if not Y(O[q],S)then return false end end for O,S in pairs(O)do if not Y(q[O],S)then return false end end return true end local function u(...)if S(...)then return true end local q=select("\035",...)local O=select(1,...)for q=2,q,1 do local S=select(q,...)if not Y(O,S)then return false end end return true end return u
local Dictionary = script.Parent

local Llama = Dictionary.Parent
local equalObjects = require(Llama.equalObjects)

local function compareDeep(a, b)
	if type(a) ~= "table" or type(b) ~= "table" then
		return a == b
	end

	for key, value in pairs(a) do
		if not compareDeep(b[key], value) then
			return false
		end
	end

	for key, value in pairs(b) do
		if not compareDeep(a[key], value) then
			return false
		end
	end

	return true
end

local function equalsDeep(...)
	if equalObjects(...) then
		return true
	end

	local argCount = select('#', ...)
	local firstObject = select(1, ...)

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

		if not compareDeep(firstObject, object) then
			return false
		end
	end

	return true
end

return equalsDeep