local function O(O,w,V)local W=V.X*V.Y local q=O.ImageRectSize w=math.clamp(w,1,W)local D=math.ceil((w/W)*V.Y)O.ImageRectOffset=Vector2.new(q.X*(-1+(w-V.X*(D-1))),q.Y*(-1+D))end local w=game:GetService("\082\117\110\083\101\114\118\105\099\101")return function(V,W,q,D,c,B)local a=Vector2.new(W,q)local U=tick()O(V,W*q,a)V.Visible=true local r=U local F=D and 60 local H=0 local t=a.X*a.Y local u=c task.defer(function()while V and V.Parent do if 1/F<=tick()-r then r=tick()H=H+1 if t<H then H=0 if not u then if B then B()return else break end end end O(V,H,a)end w.RenderStepped:Wait()end end)return function()u=false end end
-- Decompiled with the Synapse X Luau decompiler.

local function u1(p1, p2, p3)
	local v1 = p3.X * p3.Y
	local l__ImageRectSize__2 = p1.ImageRectSize
	p2 = math.clamp(p2, 1, v1)
	local v3 = math.ceil(p2 / v1 * p3.Y)
	p1.ImageRectOffset =
		Vector2.new(l__ImageRectSize__2.X * (-1 + (p2 - p3.X * (v3 - 1))), l__ImageRectSize__2.Y * (-1 + v3))
end
local l__RunService__2 = game:GetService("RunService")
return function(p4, p5, p6, p7, p8, p9)
	local v4 = Vector2.new(p5, p6)
	local v5 = tick()
	u1(p4, p5 * p6, v4)
	p4.Visible = true
	local u3 = v5
	local u4 = p7 and 60
	local u5 = 0
	local u6 = v4.X * v4.Y
	local u7 = p8
	task.defer(function()
		while p4 and p4.Parent do
			if 1 / u4 <= tick() - u3 then
				u3 = tick()
				u5 = u5 + 1
				if u6 < u5 then
					u5 = 0
					if not u7 then
						if p9 then
							p9()
							return
						else
							break
						end
					end
				end
				u1(p4, u5, v4)
			end
			l__RunService__2.RenderStepped:Wait()
		end
	end)
	return function()
		u7 = false
	end
end
