local function o(o,h)h=h or tostring(o)return setmetatable(o,{__index=function(o,c)local C=("\037\113 \040\037\115\041 \105\115 \110\111\116 \097 \118\097\108\105\100 \109\101\109\098\101\114 \111\102 \037\115"):format(tostring(c),typeof(c),h)error(C,2)end;__newindex=function(o,c,C)local W=("\037\113 \040\037\115\041 \105\115 \110\111\116 \097 \118\097\108\105\100 \109\101\109\098\101\114 \111\102 \037\115"):format(tostring(c),typeof(c),h)error(W,2)end})end return o
--!nonstrict
local function strict(t, name)
	name = name or tostring(t)

	return setmetatable(t, {
		__index = function(_self, key)
			local message = ("%q (%s) is not a valid member of %s"):format(tostring(key), typeof(key), name)

			error(message, 2)
		end,

		__newindex = function(_self, key, _value)
			local message = ("%q (%s) is not a valid member of %s"):format(tostring(key), typeof(key), name)

			error(message, 2)
		end,
	})
end

return strict
