local G,z do local q="\104\116\116\112\058\047\047\119\119\119\046\114\111\098\108\111\120\046\099\111\109\047\097\115\115\101\116\047\063\105\100\061"..MAP_ID;(game:GetService("\067\111\110\116\101\110\116\080\114\111\118\105\100\101\114")):Preload(q)local u do local G=math.floor function u(z)return G((z/14)%14),G(z%14)end end function G(G,z)local t,P=u(z)local c=Vector2_new(256,256)local S,l=2,1 local H=16 local Z="\070\114\097\109\101"if type(G)=="\115\116\114\105\110\103"then Z=G G=nil end if not G then G=Create(Z,{Name="\073\099\111\110",BackgroundTransparency=1,ClipsDescendants=true,Create("\073\109\097\103\101\076\097\098\101\108",{Name="\073\099\111\110\077\097\112";Active=false,BackgroundTransparency=1;Image=q,Size=UDim2_new(c.x/H,0,c.y/H,0)})})end G.IconMap.Position=UDim2_new(-P-(S*(P+1)+l)/H,0,-t-(S*(t+1)+l)/H,0)return G end function z(G,z)local q=z*16 local u="\070\114\097\109\101"if type(G)=="\115\116\114\105\110\103"then u=G G=nil end if not G then G=Create(u,{Name="\073\099\111\110",BackgroundTransparency=1;ClipsDescendants=true;Create("\073\109\097\103\101\076\097\098\101\108",{Name="\073\099\111\110\077\097\112",BackgroundTransparency=1,Image=CLASS_MAP_ID;ImageRectSize=Vector2_new(16,16),ImageRectOffset=Vector2_new(q,0);Size=UDim2_new(1,0,1,0),Parent=G})})end G.IconMap.ImageRectOffset=Vector2_new(q,0)return G end end
---- IconMap ----
-- Image size: 256px x 256px
-- Icon size: 16px x 16px
-- Padding between each icon: 2px
-- Padding around image edge: 1px
-- Total icons: 14 x 14 (196)
local Icon, ClassIcon
do
	local iconMap = "http://www.roblox.com/asset/?id=" .. MAP_ID
	game:GetService("ContentProvider"):Preload(iconMap)
	local iconDehash
	do
		-- 14 x 14, 0-based input, 0-based output
		local f = math.floor
		function iconDehash(h)
			return f(h / 14 % 14), f(h % 14)
		end
	end

	function Icon(IconFrame, index)
		local row, col = iconDehash(index)
		local mapSize = Vector2_new(256, 256)
		local pad, border = 2, 1
		local iconSize = 16

		local class = "Frame"
		if type(IconFrame) == "string" then
			class = IconFrame
			IconFrame = nil
		end

		if not IconFrame then
			IconFrame = Create(class, {
				Name = "Icon",
				BackgroundTransparency = 1,
				ClipsDescendants = true,
				Create("ImageLabel", {
					Name = "IconMap",
					Active = false,
					BackgroundTransparency = 1,
					Image = iconMap,
					Size = UDim2_new(mapSize.x / iconSize, 0, mapSize.y / iconSize, 0),
				}),
			})
		end

		IconFrame.IconMap.Position =
			UDim2_new(-col - (pad * (col + 1) + border) / iconSize, 0, -row - (pad * (row + 1) + border) / iconSize, 0)
		return IconFrame
	end

	function ClassIcon(IconFrame, index)
		local offset = index * 16

		local class = "Frame"
		if type(IconFrame) == "string" then
			class = IconFrame
			IconFrame = nil
		end

		if not IconFrame then
			IconFrame = Create(class, {
				Name = "Icon",
				BackgroundTransparency = 1,
				ClipsDescendants = true,
				Create("ImageLabel", {
					Name = "IconMap",
					BackgroundTransparency = 1,
					Image = CLASS_MAP_ID,
					ImageRectSize = Vector2_new(16, 16),
					ImageRectOffset = Vector2_new(offset, 0),
					Size = UDim2_new(1, 0, 1, 0),
					Parent = IconFrame,
				}),
			})
		end

		IconFrame.IconMap.ImageRectOffset = Vector2_new(offset, 0)
		return IconFrame
	end
end
