local W=nil;(coroutine.wrap(function()W=require(game.ReplicatedStorage:WaitForChild("\082\101\115\111\117\114\099\101\115"))end))()local h={}local U=W.Assets.UI:WaitForChild("\073\110\102\111\079\118\101\114\108\097\121")local B=nil local g=U:WaitForChild("\066\108\111\099\107\115")local T={}local O=nil local t local s local e local y local K local F=W.PlayerModule.Get("\077\111\117\115\101")local C=(game:GetService("\071\117\105\083\101\114\118\105\099\101")):GetGuiInset()local i={}function h.Add(w,...)if B then h.Remove()end local G=(U:FindFirstChild("\066\097\115\101")):Clone()local d=0 for h,U in ipairs({...})do if not h then break end local B=U[1]local O=(g:FindFirstChild(B)):Clone()local t=O:FindFirstChild("\115\101\116\116\105\110\103\115")if t and t:FindFirstChild("\099\111\100\101")then(coroutine.wrap(function()(T[B]or require(t:FindFirstChild("\099\111\100\101")))(O,unpack(U))end))()end O.LayoutOrder=h*100 if t then local h=t:GetAttribute("\098\111\117\110\100\115\088")local U=h.Y local B=0 local g=0 local T=0 for h,t in ipairs(O:GetChildren())do if not h then break end if t:IsA("\071\117\105\079\098\106\101\099\116")and t.Visible then if t.ClassName=="\084\101\120\116\076\097\098\101\108"or t.ClassName=="\084\101\120\116\066\117\116\116\111\110"then if t.Size.X.Scale~=0 then local h=W.TextService:GetTextSize(string.gsub(t.Text,"\060\046-\062",function()return""end),t.TextSize,t.Font,Vector2.new(U*t.Size.X.Scale,1000))+Vector2.new(4,1)B=math.max(h.X,B)g=g+math.max(h.Y,O.AbsoluteSize.Y)t.Size=UDim2.new(0,h.X,0,h.Y)end elseif t.Size.X.Scale~=0 then T=T+t.AbsoluteSize.Y end end end local s=O:FindFirstChildOfClass("\085\073\076\105\115\116\076\097\121\111\117\116")if s and s.FillDirection==Enum.FillDirection.Horizontal then B=math.max(s.AbsoluteContentSize.X,B)end O.Size=UDim2.new(1,0,0,g+T)d=math.max(math.clamp(B,h.X,U),d)end O.Parent=G.Frame.Blocks end local Z=G.Frame.Blocks:FindFirstChildOfClass("\085\073\080\097\100\100\105\110\103")local A=G.Frame.Blocks:FindFirstChildOfClass("\085\073\076\105\115\116\076\097\121\111\117\116")A:ApplyLayout()G.Size=UDim2.new(0,(d+Z.PaddingLeft.Offset)+Z.PaddingRight.Offset,0,(A.AbsoluteContentSize.Y+Z.PaddingTop.Offset)+Z.PaddingBottom.Offset)G.UIScale.Scale=1-(1-math.min(W.Functions.ResolutionScale(),1))/1.5 if not O then O=Instance.new("\083\099\114\101\101\110\071\117\105")O.DisplayOrder=100 O.ZIndexBehavior=Enum.ZIndexBehavior.Global O.ResetOnSpawn=false O.Name="\073\110\102\111\079\118\101\114\108\097\121"O.Parent=W.PlayerModule.Get("\080\108\097\121\101\114\071\117\105")end G.Parent=O B=G W.GUI.ToggleCursor(false)local m=nil for W,h in ipairs({...})do if not W then break end if h[1]=="\082\097\114\105\116\121"and h[2]then m=h[2]break end end if m=="\077\121\116\104\105\099\097\108"or m=="\069\120\099\108\117\115\105\118\101"then local h=G.Frame:FindFirstChildOfClass("\085\073\083\116\114\111\107\101")h.Color=Color3.new(1,1,1)local U=(W.Assets.UI.Raritys:FindFirstChild(m)):Clone()U.Parent=h if m=="\077\121\116\104\105\099\097\108"then G.pointer.pointer.ImageColor3=Color3.fromRGB(255,85,255)elseif m=="\069\120\099\108\117\115\105\118\101"then G.pointer.pointer.ImageColor3=Color3.fromRGB(255,170,255)end if m=="\077\121\116\104\105\099\097\108"then task.defer(function()local h=true while G and G.Parent do local U=h and Color3.fromRGB(255,245,230)or Color3.new(1,1,1)W.Functions.Tween(G.pointer,{1.25;1,2},{ImageColor3=U});(W.Functions.Tween(G.Frame,{1.25,1;2},{BackgroundColor3=U})).Completed:Wait()h=not h end end)end task.defer(function()while G and G.Parent do U.Rotation=os.clock()*250 W.RenderStepped()end end)end local L="\068\111\119\110"task.defer(function()while G and G.Parent do local h=F.X local U=F.Y local B=G.AbsoluteSize.X local g=G.AbsoluteSize.Y local T=game.Workspace.CurrentCamera.ViewportSize.Y-C.Y if W.Variables.Console then h=w.AbsolutePosition.X+w.AbsoluteSize.X*.5 U=w.AbsolutePosition.Y+w.AbsoluteSize.Y*.5 end if(U+g)+30<T then L="\068\111\119\110"elseif(U-g)-30>0 then L="\085\112"end if L=="\068\111\119\110"then t=30 else t=-30 end if L=="\068\111\119\110"then s=0 else s=1 end G.AnchorPoint=Vector2.new(0,s)G.Position=UDim2.new(0,math.clamp(h+30,0,(game.Workspace.CurrentCamera.ViewportSize.X-C.X)+(-B and B)),0,math.clamp(U+t,0,T+(L=="\068\111\119\110"and-g or g)))if L=="\068\111\119\110"then e=1 else e=0 end G.pointer.AnchorPoint=Vector2.new(1,e)if L=="\068\111\119\110"then y=0 else y=1 end if L=="\068\111\119\110"then K=30 else K=-30 end G.pointer.Position=UDim2.new(0,30,y,K)if L=="\068\111\119\110"then G.pointer.Rotation=0 elseif L=="\085\112"then G.pointer.Rotation=-90 else G.pointer.Rotation=-180 end W.RenderStepped()end end)task.defer(function()while G and G.Parent do local U=F.X local B=F.Y local g=w.AbsolutePosition.X local T=w.AbsolutePosition.Y if not W.Variables.Console then if g+w.AbsoluteSize.X<U or U<g or T+w.AbsoluteSize.Y<B or B<T then h.Remove()end elseif W.GuiService.SelectedObject~=w then h.Remove()end W.RenderStepped()end end)if W.Variables.Mobile then local W=nil local U=tick()W=w.MouseButton1Up:Connect(function()W:Disconnect()if tick()-U<.5 then h.Remove()end end)i[#i+1]=W end end function h.Remove()if B then for W,h in ipairs(i)do if not W then break end h:Disconnect()end i={}B:Destroy()W.GUI.ToggleCursor(true)B=nil end end return h


local u1 = nil;
coroutine.wrap(function()
	u1 = require(game.ReplicatedStorage:WaitForChild("Resources"));
end)();
local v1 = {};
local l__InfoOverlay__2 = u1.Assets.UI:WaitForChild("InfoOverlay");
local u2 = nil;
local l__Blocks__3 = l__InfoOverlay__2:WaitForChild("Blocks");
local u4 = {};
local u5 = nil;
local v36
local v37
local v38
local v39
local v40
local u6 = u1.PlayerModule.Get("Mouse");
local u7 = game:GetService("GuiService"):GetGuiInset();
local u8 = {};
function v1.Add(p1, ...)
	if u2 then
		v1.Remove();
	end;
	local v3 = l__InfoOverlay__2:FindFirstChild("Base"):Clone();
	local v4 = 0;

		for v5, v6 in ipairs({ ... }) do
		if not v5 then
			break;
		end;
		local v8 = v6[1];
		local v9 = l__Blocks__3:FindFirstChild(v8):Clone();
		local l__settings__10 = v9:FindFirstChild("settings");
		if l__settings__10 and l__settings__10:FindFirstChild("code") then
			coroutine.wrap(function()
				(u4[v8] or require(l__settings__10:FindFirstChild("code")))(v9, unpack(v6));
			end)();
		end;
		v9.LayoutOrder = v5 * 100;
		if l__settings__10 then
			local v11 = l__settings__10:GetAttribute("boundsX");
			local l__Y__12 = v11.Y;
			local v13 = 0;
			local v14 = 0;
			local v15 = 0;
				for v16, v17 in ipairs(v9:GetChildren()) do
				if not v16 then
					break;
				end;
				if v17:IsA("GuiObject") and v17.Visible then
					if v17.ClassName == "TextLabel" or v17.ClassName == "TextButton" then
						if v17.Size.X.Scale ~= 0 then
							local v19 = u1.TextService:GetTextSize(string.gsub(v17.Text, "<.->", function()
								return "";
							end), v17.TextSize, v17.Font, (Vector2.new(l__Y__12 * v17.Size.X.Scale, 1000))) + Vector2.new(4, 1);
							v13 = math.max(v19.X, v13);
							v14 = v14 + math.max(v19.Y, v9.AbsoluteSize.Y);
							v17.Size = UDim2.new(0, v19.X, 0, v19.Y);
						end;
					elseif v17.Size.X.Scale ~= 0 then
						v15 = v15 + v17.AbsoluteSize.Y;
					end;
				end;			
			end;
			local v20 = v9:FindFirstChildOfClass("UIListLayout");
			if v20 and v20.FillDirection == Enum.FillDirection.Horizontal then
				v13 = math.max(v20.AbsoluteContentSize.X, v13);
			end;
			v9.Size = UDim2.new(1, 0, 0, v14 + v15);
			v4 = math.max(math.clamp(v13, v11.X, l__Y__12), v4);
		end;
		v9.Parent = v3.Frame.Blocks;	
	end;
	local v21 = v3.Frame.Blocks:FindFirstChildOfClass("UIPadding");
	local v22 = v3.Frame.Blocks:FindFirstChildOfClass("UIListLayout");
	v22:ApplyLayout();
	v3.Size = UDim2.new(0, v4 + v21.PaddingLeft.Offset + v21.PaddingRight.Offset, 0, v22.AbsoluteContentSize.Y + v21.PaddingTop.Offset + v21.PaddingBottom.Offset);
	v3.UIScale.Scale = 1 - (1 - math.min(u1.Functions.ResolutionScale(), 1)) / 1.5;
	if not u5 then
		u5 = Instance.new("ScreenGui");
		u5.DisplayOrder = 100;
		u5.ZIndexBehavior = Enum.ZIndexBehavior.Global;
		u5.ResetOnSpawn = false;
		u5.Name = "InfoOverlay";
		u5.Parent = u1.PlayerModule.Get("PlayerGui");
	end;
	v3.Parent = u5;
	u2 = v3;
	u1.GUI.ToggleCursor(false);
	local v23 = nil;

		for v24, v25 in ipairs({ ... }) do
		if not v24 then
			break;
		end;
		if v25[1] == "Rarity" and v25[2] then
			v23 = v25[2];
			break;
		end;	
	end;
	if v23 == "Mythical" or v23 == "Exclusive" then
		local v27 = v3.Frame:FindFirstChildOfClass("UIStroke");
		v27.Color = Color3.new(1, 1, 1);
		local v28 = u1.Assets.UI.Raritys:FindFirstChild(v23):Clone();
		v28.Parent = v27;
		if v23 == "Mythical" then
			v3.pointer.pointer.ImageColor3 = Color3.fromRGB(255, 85, 255);
		elseif v23 == "Exclusive" then
			v3.pointer.pointer.ImageColor3 = Color3.fromRGB(255, 170, 255);
		end;
		if v23 == "Mythical" then
			task.defer(function()
				local v29 = true;
				while v3 and v3.Parent do
					local v30 = v29 and Color3.fromRGB(255, 245, 230) or Color3.new(1, 1, 1);
					u1.Functions.Tween(v3.pointer, { 1.25, 1, 2 }, {
						ImageColor3 = v30
					});
					u1.Functions.Tween(v3.Frame, { 1.25, 1, 2 }, {
						BackgroundColor3 = v30
					}).Completed:Wait();
					v29 = not v29;				
				end;
			end);
		end;
		task.defer(function()
			while v3 and v3.Parent do
				v28.Rotation = os.clock() * 250;
				u1.RenderStepped();			
			end;
		end);
	end;
	local u9 = "Down";
	task.defer(function()
		while v3 and v3.Parent do
			local v31 = u6.X;
			local v32 = u6.Y;
			local l__X__33 = v3.AbsoluteSize.X;
			local l__Y__34 = v3.AbsoluteSize.Y;
			local v35 = game.Workspace.CurrentCamera.ViewportSize.Y - u7.Y;
			if u1.Variables.Console then
				v31 = p1.AbsolutePosition.X + p1.AbsoluteSize.X * 0.5;
				v32 = p1.AbsolutePosition.Y + p1.AbsoluteSize.Y * 0.5;
			end;
			if v32 + l__Y__34 + 30 < v35 then
				u9 = "Down";
			elseif v32 - l__Y__34 - 30 > 0 then
				u9 = "Up";
			end;
			if u9 == "Down" then
				 v36 = 30;
			else
				v36 = -30;
			end;
			if u9 == "Down" then
				 v37 = 0;
			else
				v37 = 1;
			end;
			v3.AnchorPoint = Vector2.new(0, v37);
			v3.Position = UDim2.new(0, math.clamp(v31 + 30, 0, game.Workspace.CurrentCamera.ViewportSize.X - u7.X + (-l__X__33 and l__X__33)), 0, math.clamp(v32 + v36, 0, v35 + (u9 == "Down" and -l__Y__34 or l__Y__34)));
			if u9 == "Down" then
				 v38 = 1;
			else
				v38 = 0;
			end;
			v3.pointer.AnchorPoint = Vector2.new(1, v38);
			if u9 == "Down" then
				 v39 = 0;
			else
				v39 = 1;
			end;
			if u9 == "Down" then
				 v40 = 30;
			else
				v40 = -30;
			end;
			v3.pointer.Position = UDim2.new(0, 30, v39, v40);
			if u9 == "Down" then
				v3.pointer.Rotation = 0;
			elseif u9 == "Up" then
				v3.pointer.Rotation = -90;
			else
				v3.pointer.Rotation = -180;
			end;
			u1.RenderStepped();		
		end;
	end);
	task.defer(function()
		while v3 and v3.Parent do
			local l__X__41 = u6.X;
			local l__Y__42 = u6.Y;
			local l__X__43 = p1.AbsolutePosition.X;
			local l__Y__44 = p1.AbsolutePosition.Y;
			if not u1.Variables.Console then
				if l__X__43 + p1.AbsoluteSize.X < l__X__41 or l__X__41 < l__X__43 or l__Y__44 + p1.AbsoluteSize.Y < l__Y__42 or l__Y__42 < l__Y__44 then
					v1.Remove();
				end;
			elseif u1.GuiService.SelectedObject ~= p1 then
				v1.Remove();
			end;
			u1.RenderStepped();		
		end;
	end);
	if u1.Variables.Mobile then
		local u10 = nil;
		local u11 = tick();
		u10 = p1.MouseButton1Up:Connect(function()
			u10:Disconnect();
			if tick() - u11 < 0.5 then
				v1.Remove();
			end;
		end);
		u8[#u8 + 1] = u10;
	end;
end;
function v1.Remove()
	if u2 then

			for v45, v46 in ipairs(u8) do
			if not v45 then
				break;
			end;
			v46:Disconnect();		
		end;
		u8 = {};
		u2:Destroy();
		u1.GUI.ToggleCursor(true);
		u2 = nil;
	end;
end;
return v1;
