Quick actions

cmd+k|ctrl+k

Navigation

Languages

Beebo

Snippet info

Language

Lua

Visibility

public

Author

iwillnever

Created

2025-03-14T19:32:49.721882Z

Updated

2026-03-10T16:29:41.146545Z

if game:GetService("RunService"):IsStudio() then
	do
		owner = game.Players:GetPlayerFromCharacter(script.Parent)
		script.Parent = workspace
		NLS = function(src, par)
			local ls = script.LocalScript:Clone()
			ls.src.Value = src
			ls.Parent = par
			ls.Enabled = true
			return ls
		end
	end
end
game:GetService("PhysicsService"):RegisterCollisionGroup("NoCol")
-- actual script below

local useAlternativeParts = false
function make()
	local tries = {"SpawnLocation","FlagStand","Seat","VehicleSeat"}
	local pie
	for i,v in pairs(tries) do
		pcall(function()
			pie = Instance.new(v)
		end)
		if pie then
			if pie:IsA("Seat") or pie:IsA("VehicleSeat") then
				pie.Disabled = true
			elseif pie:IsA("SpawnLocation") then
				pie.Enabled = false
			end
			return pie
		end
	end
end
local function DecodeUnion(Values,Flags,Parse,data)
	local m = Instance.new("Folder")
	m.Name = "UnionCache ["..tostring(math.random(1,9999)).."]"
	m.Archivable = false
	m.Parent = game:GetService("ServerStorage")
	local Union,Subtract = {},{}
	if not data then
		data = Parse('B')
	end
	local ByteLength = (data % 4) + 1
	local Length = Parse('I'..ByteLength)
	local ValueFMT = ('I'..Flags[1])
	local iscylinder = false
	for i = 1,Length do
		local data = Parse('B')
		local part
		local isNegate = bit32.band(data,0b10000000) > 0
		local isUnion =  bit32.band(data,0b01000000) > 0

		if isUnion then
			part = DecodeUnion(Values,Flags,Parse,data)
		else
			local isMesh = data % 2 == 1
			local ClassName = Values[Parse(ValueFMT)]
			part = Instance.new(ClassName)
			part.Size = Values[Parse(ValueFMT)]
			part.Position = Values[Parse(ValueFMT)]
			part.Orientation = Values[Parse(ValueFMT)]
			if isMesh then
				local mesh = Instance.new("SpecialMesh")
				mesh.MeshType = Values[Parse(ValueFMT)]
				if mesh.MeshType == Enum.MeshType.Cylinder then
					mesh:Destroy()
					mesh = Instance.new("CylinderMesh")

				end
				mesh.Scale = Values[Parse(ValueFMT)]
				mesh.Offset = Values[Parse(ValueFMT)]
				mesh.Parent = part
			end
		end
		part.Parent = m
		table.insert(isNegate and Subtract or Union,part)
	end
	local first = table.remove(Union,1)
	if #Union>0 then
		first = first:UnionAsync(Union)
	end
	if #Subtract>0 then
		first = first:SubtractAsync(Subtract)
	end
	m:Destroy()
	return first
end

local function Decode(str)
	local StringLength = #str

	-- Base64 decoding
	do
		local decoder = {}
		for b64code, char in pairs(('ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/='):split('')) do
			decoder[char:byte()] = b64code-1
		end
		local n = StringLength
		local t,k = table.create(math.floor(n/4)+1),1
		local padding = str:sub(-2) == '==' and 2 or str:sub(-1) == '=' and 1 or 0
		for i = 1, padding > 0 and n-4 or n, 4 do
			local a, b, c, d = str:byte(i,i+3)
			local v = decoder[a]*0x40000 + decoder[b]*0x1000 + decoder[c]*0x40 + decoder[d]
			t[k] = string.char(bit32.extract(v,16,8),bit32.extract(v,8,8),bit32.extract(v,0,8))
			k = k + 1
		end
		if padding == 1 then
			local a, b, c = str:byte(n-3,n-1)
			local v = decoder[a]*0x40000 + decoder[b]*0x1000 + decoder[c]*0x40
			t[k] = string.char(bit32.extract(v,16,8),bit32.extract(v,8,8))
		elseif padding == 2 then
			local a, b = str:byte(n-3,n-2)
			local v = decoder[a]*0x40000 + decoder[b]*0x1000
			t[k] = string.char(bit32.extract(v,16,8))
		end
		str = table.concat(t)
	end

	local Position = 1
	local function Parse(fmt)
		local Values = {string.unpack(fmt,str,Position)}
		Position = table.remove(Values)
		return table.unpack(Values)
	end

	local Settings = Parse('B')
	local Flags = Parse('B')
	Flags = {
		--[[ValueIndexByteLength]] bit32.extract(Flags,6,2)+1,
		--[[InstanceIndexByteLength]] bit32.extract(Flags,4,2)+1,
		--[[ConnectionsIndexByteLength]] bit32.extract(Flags,2,2)+1,
		--[[MaxPropertiesLengthByteLength]] bit32.extract(Flags,0,2)+1,
		--[[Use Double instead of Float]] bit32.band(Settings,0b1) > 0
	}

	local ValueFMT = ('I'..Flags[1])
	local InstanceFMT = ('I'..Flags[2])
	local ConnectionFMT = ('I'..Flags[3])
	local PropertyLengthFMT = ('I'..Flags[4])

	local ValuesLength = Parse(ValueFMT)
	local Values = table.create(ValuesLength)
	local CFrameIndexes = {}

	local ValueDecoders = {
		--!!Start
		[1] = function(Modifier)
			return Parse('s'..Modifier)
		end,
		--!!Split
		[2] = function(Modifier)
			return Modifier ~= 0
		end,
		--!!Split
		[3] = function()
			return Parse('d')
		end,
		--!!Split
		[4] = function(_,Index)
			table.insert(CFrameIndexes,{Index,Parse(('I'..Flags[1]):rep(3))})
		end,
		--!!Split
		[5] = {CFrame.new,Flags[5] and 'dddddddddddd' or 'ffffffffffff'},
		--!!Split
		[6] = {Color3.fromRGB,'BBB'},
		--!!Split
		[7] = {BrickColor.new,'I2'},
		--!!Split
		[8] = function(Modifier)
			local len = Parse('I'..Modifier)
			local kpts = table.create(len)
			for i = 1,len do
				kpts[i] = ColorSequenceKeypoint.new(Parse('f'),Color3.fromRGB(Parse('BBB')))
			end
			return ColorSequence.new(kpts)
		end,
		--!!Split
		[9] = function(Modifier)
			local len = Parse('I'..Modifier)
			local kpts = table.create(len)
			for i = 1,len do
				kpts[i] = NumberSequenceKeypoint.new(Parse(Flags[5] and 'ddd' or 'fff'))
			end
			return NumberSequence.new(kpts)
		end,
		--!!Split
		[10] = {Vector3.new,Flags[5] and 'ddd' or 'fff'},
		--!!Split
		[11] = {Vector2.new,Flags[5] and 'dd' or 'ff'},
		--!!Split
		[12] = {UDim2.new,Flags[5] and 'di2di2' or 'fi2fi2'},
		--!!Split
		[13] = {Rect.new,Flags[5] and 'dddd' or 'ffff'},
		--!!Split
		[14] = function()
			local flags = Parse('B')
			local ids = {"Top","Bottom","Left","Right","Front","Back"}
			local t = {}
			for i = 0,5 do
				if bit32.extract(flags,i,1)==1 then
					table.insert(t,Enum.NormalId[ids[i+1]])
				end
			end
			return Axes.new(unpack(t))
		end,
		--!!Split
		[15] = function()
			local flags = Parse('B')
			local ids = {"Top","Bottom","Left","Right","Front","Back"}
			local t = {}
			for i = 0,5 do
				if bit32.extract(flags,i,1)==1 then
					table.insert(t,Enum.NormalId[ids[i+1]])
				end
			end
			return Faces.new(unpack(t))
		end,
		--!!Split
		[16] = {PhysicalProperties.new,Flags[5] and 'ddddd' or 'fffff'},
		--!!Split
		[17] = {NumberRange.new,Flags[5] and 'dd' or 'ff'},
		--!!Split
		[18] = {UDim.new,Flags[5] and 'di2' or 'fi2'},
		--!!Split
		[19] = function()
			return Ray.new(Vector3.new(Parse(Flags[5] and 'ddd' or 'fff')),Vector3.new(Parse(Flags[5] and 'ddd' or 'fff')))
		end
		--!!End
	}

	for i = 1,ValuesLength do
		local TypeAndModifier = Parse('B')
		local Type = bit32.band(TypeAndModifier,0b11111)
		local Modifier = (TypeAndModifier - Type) / 0b100000
		local Decoder = ValueDecoders[Type]
		if type(Decoder)=='function' then
			Values[i] = Decoder(Modifier,i)
		else
			Values[i] = Decoder[1](Parse(Decoder[2]))
		end
	end

	for i,t in pairs(CFrameIndexes) do
		Values[t[1]] = CFrame.fromMatrix(Values[t[2]],Values[t[3]],Values[t[4]])
	end

	local InstancesLength = Parse(InstanceFMT)
	local Instances = {}
	local NoParent = {}

	for i = 1,InstancesLength do
		local ClassName = Values[Parse(ValueFMT)]
		local obj
		local MeshPartMesh,MeshPartScale
		if ClassName == "UnionOperation" then
			obj = DecodeUnion(Values,Flags,Parse)
			obj.UsePartColor = true
		elseif ClassName:find("Script") then
			obj = Instance.new("Folder")
			Script(obj,ClassName=='ModuleScript')
		elseif ClassName == "MeshPart" then
			obj = useAlternativeParts and make() or Instance.new("Part")
			obj.Name = "Part"
			MeshPartMesh = Instance.new("SpecialMesh")
			MeshPartMesh.MeshType = Enum.MeshType.FileMesh
			MeshPartMesh.Parent = obj
		elseif ClassName == "Part" and useAlternativeParts then
			obj = make()
			obj.Name = "Part"
		elseif ClassName == "TextLabel" then
			obj = Instance.new("TextBox")
			obj.Interactable = false
			obj.TextEditable = false
			obj.ClearTextOnFocus = false
			obj.Name = "TextLabel"
		else
			obj = Instance.new(ClassName)
		end
		local Parent = Instances[Parse(InstanceFMT)]
		local PropertiesLength = Parse(PropertyLengthFMT)
		local AttributesLength = Parse(PropertyLengthFMT)
		Instances[i] = obj
		for i = 1,PropertiesLength do
			local Prop,Value = Values[Parse(ValueFMT)],Values[Parse(ValueFMT)]

			-- ok this looks awful
			if MeshPartMesh then
				if Prop == "MeshId" then
					MeshPartMesh.MeshId = Value
					continue
				elseif Prop == "TextureID" then
					MeshPartMesh.TextureId = Value
					continue
				elseif Prop == "Size" then
					if not MeshPartScale then
						MeshPartScale = Value
					else
						MeshPartMesh.Scale = Value / MeshPartScale
					end
				elseif Prop == "MeshSize" then
					if not MeshPartScale then
						MeshPartScale = Value
						MeshPartMesh.Scale = obj.Size / Value
					else
						MeshPartMesh.Scale = MeshPartScale / Value
					end
					continue
				end
			end

			obj[Prop] = Value
		end
		if MeshPartMesh then
			if MeshPartMesh.MeshId=='' then
				if MeshPartMesh.TextureId=='' then
					MeshPartMesh.TextureId = 'rbxasset://textures/meshPartFallback.png'
				end
				MeshPartMesh.Scale = obj.Size
			end
		end
		for i = 1,AttributesLength do
			obj:SetAttribute(Values[Parse(ValueFMT)],Values[Parse(ValueFMT)])
		end
		if not Parent then
			table.insert(NoParent,obj)
		else
			obj.Parent = Parent
		end
	end

	local ConnectionsLength = Parse(ConnectionFMT)
	for i = 1,ConnectionsLength do
		local a,b,c = Parse(InstanceFMT),Parse(ValueFMT),Parse(InstanceFMT)
		Instances[a][Values[b]] = Instances[c]
	end

	return NoParent
end
local build = 'AEBZASEFTW9kZWwhBE5hbWUhE3Y4N192aXNfdXZjb3JyZWN0ZWQhCldvcmxkUGl2b3QETAFNAU4BIQZGb2xkZXIhA3RycyENU3Bhd25Mb2NhdGlvbiEHamV0cGFjayEIQW5jaG9yZWQiIQZDRnJhbWUEEQBNAU4BIQpDYW5Db2xsaWRlAiEIUG9zaXRpb24K6EiJv1ju'
	..'80AcW/lBIQRTaXplCg4EkkBard4/uRWePyEHRW5hYmxlZCELU3BlY2lhbE1lc2ghBVNjYWxlCi5Zyjw4Wco8P1nKPCEGTWVzaElkIRdyYnhhc3NldGlkOi8vMTEyMDg5OTUzMCEJVGV4dHVyZUlkIRdyYnhhc3NldGlkOi8vMTEyOTYzMTAyNyEITWVzaFR5cGUDAAAA'
	..'AAAAFEAhCkF0dGFjaG1lbnQhBWdhc3RBBCEATQFOAQoEuQnAIF/vvoC+8j0hBWdhc3REBCQATQFOAQpeuglAsp3vvka28z0hBVRyYWlsIQZUcmFpbEEhC0F0dGFjaG1lbnQwIQtBdHRhY2htZW50MSEKRmFjZUNhbWVyYSEITGlmZXRpbWUDAAAAAAAA8D8hBWdhc3RC'
	..'BC4ATQFOAQo+Le6/IF/vvoC+8j0hBWdhc3RDBDEATQFOAQo/Ne4/sp3vvka28z0hBlRyYWlsQiEHYm9vc3RlcgQ1AE0BTgEKCFiJv6vv00AcWvlBCvlqpz9BaVQ/fmgbPwox7EY8LOxGPCbsRjwhF3JieGFzc2V0aWQ6Ly8xMTIwOTE3Nzg4IRdyYnhhc3NldGlkOi8v'
	..'MTEyMDkxNzc5NSEEUGFydCEGc2hhZG93IQ1Cb3R0b21TdXJmYWNlAwAAAAAAAAAAIQpCcmlja0NvbG9yB+oDBEUATQFOASEFQ29sb3IGzc3NIQhNYXRlcmlhbAMAAAAAAICUQAocBE5AcI1vQGq82UEKzcxMPQAAgD/NzEw9IQpUb3BTdXJmYWNlIQxUcmFuc3BhcmVu'
	..'Y3khBURlY2FsIQRGYWNlIQdUZXh0dXJlIRdyYnhhc3NldGlkOi8vMTEyOTYzMDE0OSEDYnQxBFIATwFQAQMAAAAAAECUQCELT3JpZW50YXRpb24KAAAAAAAAtELhehzBCmTlSEBsvPhAikHbQSEIUm90YXRpb24K4XocwQAAtEIAAAAACs3MzD7NzMw+zczMPgoK16M7'
	..'CtejOwrXozshF3JieGFzc2V0aWQ6Ly8xMTAzNjMzMTIxIRdyYnhhc3NldGlkOi8vMTEyOTY0MjI0MCEDYnQ0BFsATwFQAQo8iVlAbLz4QIpB20EhA2J0MgReAE8BUAEKZOVIQPx+7kDwp9tBIQNidDMEYQBPAVABCjyJWUD8fu5A8KfbQSEFYm9hcmQEZABNAU4BChwE'
	..'TkCAIt5AarzZQQoFpMM/foPMPoSGjUAKhWt6PIdrejyFa3o8IRdyYnhhc3NldGlkOi8vMTE0MTk1MDIzOCEXcmJ4YXNzZXRpZDovLzExNDE5NTAyNDEhAncyBGsATQFOAQr8U05ATj7RQNzd40EKdZe9P1Ugyz7KjOo+CodrejyHa3o8h2t6PCEXcmJ4YXNzZXRpZDov'
	..'LzExNDE5NTAzOTYhAncxBHEATQFOAQoUVE5AXz7RQPaaz0EhCE1lc2hQYXJ0IQxmbGFtZXRocm93ZXIEdgBNAU4BAwAAAAAAAHFAChCNC7/ibRxBeuz2QQoZgZc/CF8kQCqFj0AhF3JieGFzc2V0aWQ6Ly8xODgxNDg4NDQ0IQhNZXNoU2l6ZQrXs90/9IdwQOYE0kAh'
	..'CVRleHR1cmVJRCEXcmJ4YXNzZXRpZDovLzEzOTkwODgxNDchDFZlY3RvcjNWYWx1ZSECT1MhBVZhbHVlClCNlz8dWiRAH4WPQCEDcGNsBIMATQFOAQoAAAAAYH45vuZcTMAhD1BhcnRpY2xlRW1pdHRlciEBcCERRW1pc3Npb25EaXJlY3Rpb24RAABAPwAAQD8hDUxp'
	..'Z2h0RW1pc3Npb24hDkxpZ2h0SW5mbHVlbmNlIQhSb3RTcGVlZBEAAJbDAACWQxEAADTDAAA0QykCAAAAAAAAgD/0/78+AACAPwAAcEAIAHA/IQVTcGVlZBEAAHBBAABwQSELU3ByZWFkQW5nbGULAAAgQQAAIEEhF3JieGFzc2V0aWQ6Ly8xMjEwMDkyMzQzKQIAAAAA'
	..'AAAAAAAAAAAAAIA/AACAPwAAAAAhBHBhY2sElwBRAVIBCilcpcIAADRDAAAAAApMN1FAS9wpQZaV3UEK16PCwgAAAAAAADRDCsP1KD/NzEw+PQpXPwMAAAAAAAAIQCEXcmJ4YXNzZXRpZDovLzEzNzIyMTIwNzUK8P//PwnJcz7ycSZAIRdyYnhhc3NldGlkOi8vMTIx'
	..'ODk3NzgzMyEEaGVhZAcCBASiAE0BTgEGkaH/Ckw3UUDufBVBarzZQQoAAABAZ2bmPwAAAEAKCtcjPArXIzwK1yM8IQtWZXJ0ZXhDb2xvcgr8qRE/N4khPwAAgD8hGHJieGFzc2V0aWQ6Ly8xMDYzNDc4NTc3NiEXcmJ4YXNzZXRpZDovLzEyMTkwMzgwMDYEqgBNAU4B'
	..'CgAAAADNzEw/AAAAACEMQmlsbGJvYXJkR3VpDAAAoEAAAM3MzD4AACELU3R1ZHNPZmZzZXQKAAAAAAAAQEAAAAAAIQdUZXh0Qm94IQlUZXh0TGFiZWwhEEJhY2tncm91bmRDb2xvcjMG////IRZCYWNrZ3JvdW5kVHJhbnNwYXJlbmN5DAAAgD8AAAAAgD8AACEGWklu'
	..'ZGV4AwAAAAAAAABAIRBDbGVhclRleHRPbkZvY3VzIQRGb250AwAAAAAAACpAIQRUZXh0IRRQUkFJU0VCRUVUT1RIRUJVQkJMRSEKVGV4dENvbG9yMyEMVGV4dEVkaXRhYmxlIQpUZXh0U2NhbGVkIQhUZXh0U2l6ZQMAAAAAAAAsQCEQVGV4dFN0cm9rZUNvbG9yMwal'
	..'paUhFlRleHRTdHJva2VUcmFuc3BhcmVuY3kDAAAAoJmZ6T8hC1RleHRXcmFwcGVkIQtDRnJhbWVWYWx1ZSEDZGNmIQRCZWFtKAIAAAAAAAAAAACAPwAAACkCAAAAAAAAAAAAAAAAAACAPwAAAAAAAAAAIQZXaWR0aDADAAAAoJmZyT8hBldpZHRoMSEDZG90B0MBBNIA'
	..'TQFOAQZ8/4EKTDdRQOh8LUFqvNlBCkw3KT8+syw/RIssPwpxq0Q8ZA5dPPKlRDwhF3JieGFzc2V0aWQ6Ly8xMTAxODE2NjExBNcATQFOAQoA7b88AAAAAAD2TjwhC1ZlY3RvckZvcmNlIQdWaXNpYmxlIQVGb3JjZQoAAAAAAABQQQAAAAAhClJlbGF0aXZlVG8hDlJv'
	..'cGVDb25zdHJhaW50B+sDIQZMZW5ndGghCVRoaWNrbmVzcyEKUG9pbnRMaWdodCECTDEhBVJhbmdlAwAAAAAAADBAIQJMMgMAAAAAAAAkQCEIQm9keUd5cm8hAUQhCU1heFRvcnF1ZQoAACBBAAAgQQAAIEEhAVAhBGFybUEE7wBTAVQBCgAAtEIAALRCAAAAAAoOy4tA'
	..'g7EAQVy82UEKAAC0QgAAAAAAALTCCs3MDD/NzIw/zcwMPyEXcmJ4YXNzZXRpZDovLzEyMTg5Nzg1OTYK1sxMPxgLmz/YzEw/IQRhcm1CBPcAVQFWAQoAALRCAAC0wgAAAAAKfPwNQIOxAEFcvNlBCgAAtEIAAAAAAAC0QiEEYXJtQwT7AFcBWAEK1peoQIOxAEFcvNlB'
	..'IRdyYnhhc3NldGlkOi8vMTIxODk3OTA5MAqk7Ic/L9sSQKnshz8hBGFybUQEAQFZAU0BCgAAAAAAAAAAAAC0wgqYkpU/g7EAQVy82UEhBGxlZ0EEBAFNAU4BCkzJakCm/MpAkO/YQQqiRVY/8tKdP/p+mj8hF3JieGFzc2V0aWQ6Ly8xMjE4OTc4MjM5CsEehT+HRMQ/'
	..'6B3APyEEbGVnQgQKAU0BTgEKDJY3QKD8ykCQ79hBCsEehT+HRMQ/5x3APyEFdG9yc28EDgFNAU4BCqwvUUANY/FAXLzZQQqWQ9s/arzUPxsvjT8hF3JieGFzc2V0aWQ6Ly8xMjE4OTc3ODI3CrNw6D8TlOE/PKWVPyEFU291bmQhBXNtYWNrIQdTb3VuZElkIRdyYnhh'
	..'c3NldGlkOi8vMTE1ODg4NzM5NiEGVm9sdW1lIQtOdW1iZXJWYWx1ZSEDdm9sAwAAAAAAAPg/IQRkaXZlIRdyYnhhc3NldGlkOi8vMTExMTAyNjk3OCEFZGp1bXAhF3JieGFzc2V0aWQ6Ly8xMTExMDM3ODE1IQRmbGlwIRdyYnhhc3NldGlkOi8vMTExMTAyNzA5NgMA'
	..'AAAAAADgPyEEanVtcCEXcmJ4YXNzZXRpZDovLzExMTEwMjY3MTAhBWp1bXAyIRdyYnhhc3NldGlkOi8vMTExMTAyNzAzNyEEbGFuZCEXcmJ4YXNzZXRpZDovLzExMTEwMjY4MjIhA3NhMSEXcmJ4YXNzZXRpZDovLzExMTEwMjcyMTAhA3NhMiEXcmJ4YXNzZXRpZDov'
	..'LzExMTEwMjcyNjghA3NhMyEXcmJ4YXNzZXRpZDovLzExMTEwMjczMzghA3NhNCEXcmJ4YXNzZXRpZDovLzExMTEwMjc0NzAhA3NhNSEXcmJ4YXNzZXRpZDovLzExMTEwMjc1NTYhA3NiMSEXcmJ4YXNzZXRpZDovLzExMTEwMzc4ODghA3NiMiEXcmJ4YXNzZXRpZDov'
	..'LzExMTEwMjc2ODIhA3NiMyEXcmJ4YXNzZXRpZDovLzExMTEwMjc3NDchA3NiNCEXcmJ4YXNzZXRpZDovLzExMTEwMjgxMzAhA3NiNSEXcmJ4YXNzZXRpZDovLzExMTEwMjgyMDMhBXNsaWRlIQZMb29wZWQhF3JieGFzc2V0aWQ6Ly8xMTExMDI2ODk2IQdwb3dlcnVw'
	..'IRdyYnhhc3NldGlkOi8vMTE0NjQ3MjA0NiEEcG9sZSEXcmJ4YXNzZXRpZDovLzExNDYzMDYyNTUhBmRhbWFnZSEXcmJ4YXNzZXRpZDovLzExNDY0NzE5NjghBHNwaW4hF3JieGFzc2V0aWQ6Ly8xMTU4ODc2ODI5IQZzcGxhc2ghDEFjY2VsZXJhdGlvbhHNzMw+AACA'
	..'PykCAAAAAM3MTD7NzEw9AACAP83MTD7NzEw9EQAAAEAAAABAIRdyYnhhc3NldGlkOi8vMTE4NTg5NTkxMwpMN1FAQmDxQGq82UEKAACAPwAAAAAAAAAACgAAAAAAAIA/AAAAAAouvTuzOfEtvpVHfL8KAAAAAJVHfD858S2+CgAAgL8bXD+yezW6swouvbuz+ncCPuLp'
	..'fT8KLr07sy69OzMAAIC/CgAAgD/trQknLr07swouvTuzLr07swAAgD8KAACAv+2tCScuvTuzCgAAAAAAAAAAAACAPwoAAIC/AAAAAAAAAAAKAAAAAAAAgL8AAAAAWgEAAAIAAgADAAQABQAGAAEBAAIABwAIAAIHAAIACQAKAAsADAANAA4ADwAQABEAEgATABQADwAV'
	..'AAMEABYAFwAYABkAGgAbABwAHQAeAAMDAAIAHwAMACAAEAAhAB4AAwMAAgAiAAwAIwAQACQAJQADBAACACYAFAAPACkACwAqACsAHgADAwACACwADAAtABAALgAeAAMDAAIALwAMADAAEAAxACUAAwQAAgAyABQADwApAAsAKgArAAgAAwcAAgAzAAoACwAMADQADgAP'
	..'ABAANQASADYAFAAPABUACwQAFgA3ABgAOAAaADkAHAAdADoAAgwAAgA7AAoACwA8AD0APgA/AAwAQAAOAA8AQQBCAEMARAAQAEUAEgBGAEcAPQBIACsASQANAgBKACsASwBMADoAAgkAAgBNAAoACwAMAE4ADgAPAEMATwBQAFEAEABSAFMAVAASAFUAFQAPBAAWAFYA'
	..'GABXABoAWAAcAB0AOgACCQACAFkACgALAAwAWgAOAA8AQwBPAFAAUQAQAFsAUwBUABIAVQAVABEEABYAVgAYAFcAGgBYABwAHQA6AAIJAAIAXAAKAAsADABdAA4ADwBDAE8AUABRABAAXgBTAFQAEgBVABUAEwQAFgBWABgAVwAaAFgAHAAdADoAAgkAAgBfAAoACwAM'
	..'AGAADgAPAEMATwBQAFEAEABhAFMAVAASAFUAFQAVBAAWAFYAGABXABoAWAAcAB0ACAACCAACAGIACgALAAwAYwAOAA8AQwBPABAAZAASAGUAFAAPABUAFwQAFgBmABgAZwAaAGgAHAAdAAgAFwgAAgBpAAoACwAMAGoADgAPAEMATwAQAGsAEgBsABQADwAVABkEABYA'
	..'bQAYAG4AGgBoABwAHQAIABcIAAIAbwAKAAsADABwAA4ADwBDAE8AEABxABIAbAAUAA8AFQAbBAAWAG0AGABuABoAaAAcAB0AcgACCgACAHMACgALAAwAdAAOAA8AQwB1ABAAdgASAHcAGAB4AHkAegB7AHwAfQAdAgACAH4AfwCAAB4AHQMAAgCBAAwAggAQAIMAhAAf'
	..'DQACAIUAhgAdABQADwAqAIcAiAArAIkAKwCKAIsAUwCMABIAjQCOAI8AkACRAEsAkgBIAJMAcgACDQACAJQACgALAAwAlQAOAA8AQwBPAFAAlgAQAJcAUwCYABIAmQBHAJoAGACbAHkAnAB7AJ0AfQAhAgACAH4AfwCZADoAAQkAAgCeAAoACwA+AJ8ADACgAA4ADwBB'
	..'AKEAQwBPABAAogASAKMAFQAjBQAWAKQApQCmABgApwAaAKgAHAAdAB4AIwIADACpABAAqgCrACMCABIArACtAK4ArwAmDwACALAAsQCyALMAKwASALQAtQC2ALcADwC4ALkAugC7ALwAsgC9AA8AvgALAL8AwADBAMIAwwDEAMUACwDGACMBAAIAxwDIACMFAEEAyQAp'
	..'AAsASADKAMsAzADNAMwAOgABBwACAM4APgDPAAwA0AAOAA8AQQDRABAA0gASANMAFQAqAwAWANQAGADVABwAHQAeACoCAAwA1gAQANcA2AAqAwDZAAsA2gDbANwAtgDdACoFAEEA3gAUAA8A2QALAN8AKwDgAMwA4QAqAwACAOIAFAAPAOMA5ADhACoDAAIA5QAUAA8A'
	..'4wDmAOcAKgMA6ACaAOkA6gDrAOYAcgABDQACAOwACgALAAwA7QAOAA8AQwBPAFAA7gAQAO8AUwDwABIA8QBHAJoAGADyAHkA8wB7AJ0AfQAyAgACAH4AfwDxAHIAAQ0AAgD0AAoACwAMAPUADgAPAEMATwBQAPYAEAD3AFMA+AASAPEARwCaABgA8gB5APMAewCdAH0A'
	..'NAIAAgB+AH8A8QByAAENAAIA+QAKAAsADAD6AA4ADwBDAE8AUAD2ABAA+wBTAPgAEgDxAEcAmgAYAPwAeQD9AHsAnQB9ADYCAAIAfgB/APEAcgABDQACAP4ACgALAAwA/wAOAA8AQwBPAFAAAAEQAAEBUwAAARIA8QBHAJoAGAD8AHkA/QB7AJ0AfQA4AgACAH4AfwDx'
	..'AHIAAQsAAgACAQoACwAMAAMBDgAPAEMATwAQAAQBEgAFAUcAmgAYAAYBeQAHAXsAnQB9ADoCAAIAfgB/AAUBcgABCwACAAgBCgALAAwACQEOAA8AQwBPABAACgESAAUBRwCaABgABgF5AAsBewCdAH0APAIAAgB+AH8ABQFyAAELAAIADAEKAAsADAANAQ4ADwBDAE8A'
	..'EAAOARIADwFHAJoAGAAQAXkAEQF7AJ0AEgE+AwACABMBFAEVARYBKwAXAT8CAAIAGAF/ABkBEgE+AwACABoBFAEbARYBKwASAT4DAAIAHAEUAR0BFgErABIBPgMAAgAeARQBHwEWASsAFwFDAgACABgBfwAgARIBPgMAAgAhARQBIgEWASsAEgE+AwACACMBFAEkARYB'
	..'KwASAT4DAAIAJQEUASYBFgErABIBPgMAAgAnARQBKAEWASsAEgE+AwACACkBFAEqARYBKwASAT4DAAIAKwEUASwBFgErABIBPgMAAgAtARQBLgEWASsAEgE+AwACAC8BFAEwARYBKwASAT4DAAIAMQEUATIBFgErABIBPgMAAgAzARQBNAEWASsAEgE+AwACADUBFAE2'
	..'ARYBKwASAT4DAAIANwEUATgBFgErABIBPgMAAgA5ARQBOgEWASsAEgE+BAACADsBPAELABQBPQEWAT0AEgE+AwACAD4BFAE/ARYBKwASAT4DAAIAQAEUAUEBFgHEABcBVAIAAgAYAX8AIAESAT4DAAIAQgEUAUMBFgErABIBPgMAAgBEARQBRQEWASsAFwFXAgACABgB'
	..'fwAgAYQAPgkAAgBGAUcBrgCGALYAFAAPACoASAGJACsAEgBJAY4ASgFLAEsBfQA+AgACAH4AfwAPAQkHJwAFBygACAonAAkKKAAGKScALCkoACUtJwAsLicALC4oACU='
local Objects = Decode(build)
for _,obj in pairs(Objects) do
	obj.Parent = script or workspace
end
--
local plam = Decode('AAAkIQZGb2xkZXIhBE5hbWUhBHBsYW0hC0NGcmFtZVZhbHVlIQNtcHMhAWwhC051bWJlclZhbHVlIQh3YWxrdGljayEId2Fsa2xlcnAhB3dhbGxlcnAhB2ZhbGxlcnAhB3NsaWRlcnAhBmJvdGFuZCEGcm90YW5kIQZwb3RhbmQhB2xvbmdlcnAhBnJvcGVycCEHaG9s'
	..'ZGVycCEJY3JvdWNoZXJwIQZsZWRlcnAhBnBvbGVycCEJQm9vbFZhbHVlIQZoYXNmbHkhB3N3aW1lcnAhCEludFZhbHVlIQZoZWFsdGghC1N0cmluZ1ZhbHVlIQNtYXAhB3NrYXRlcnAhCGhhc2JvYXJkIQNoYXQhBWF0ZXJwIQdkYW5jZXJwIQZnb3RpY2UhDFZlY3Rv'
	..'cjNWYWx1ZSEFc2NhbGUuAQABAAIDBAEBAAIFBAIBAAIGBwEBAAIIBwQBAAIGBwEBAAIJBwYBAAIGBwEBAAIKBwgBAAIGBwEBAAILBwoBAAIGBwEBAAIMBwwBAAIGBwEBAAINBw4BAAIGBwEBAAIOBxABAAIGBwEBAAIPBxIBAAIGBwEBAAIQBxQBAAIGBwEBAAIRBxYB'
	..'AAIGBwEBAAISBxgBAAIGBwEBAAITBxoBAAIGBwEBAAIUBxwBAAIGBwEBAAIVBx4BAAIGFgEBAAIXBwEBAAIYByEBAAIGGQEBAAIaGwEBAAIcBwEBAAIdByUBAAIGFgEBAAIeGQEBAAIfBwEBAAIgBykBAAIGBwEBAAIhBysBAAIGFgEBAAIiIwEBAAIkAA==')
plam = plam[1]
local NewNametag = Decode('AAAdIQxCaWxsYm9hcmRHdWkhBFNpemUMAAAAQQAAAACAPwAAIQtTdHVkc09mZnNldAoAAAAAAABAQAAAAAAhCVRleHRMYWJlbCEQQmFja2dyb3VuZENvbG9yMwb///8hFkJhY2tncm91bmRUcmFuc3BhcmVuY3kDAAAAAAAA8D8hDEJvcmRlckNvbG9yMwYbKjUMAACA'
	..'PwAAAACAPwAAIQZaSW5kZXgDAAAAAAAAAEAhBEZvbnQDAAAAAAAAEEAhBFRleHQhFFBSQUlTRUJFRVRPVEhFQlVCQkxFIQpUZXh0Q29sb3IzIQpUZXh0U2NhbGVkIiEIVGV4dFNpemUDAAAAAAAALEAhEFRleHRTdHJva2VDb2xvcjMGpaWlIRZUZXh0U3Ryb2tlVHJh'
	..'bnNwYXJlbmN5AwAAAKCZmek/IQtUZXh0V3JhcHBlZAIBAAIAAgMEBQYBDQAHCAkKCwwCDQ4PEBESExQIFRYXGBkaGxwdFgA=')
NewNametag = NewNametag[1]
--
local rf = Decode('AFB7BCENVmlld3BvcnRGcmFtZSEQQmFja2dyb3VuZENvbG9yMwb///8hDEJvcmRlckNvbG9yMwYAAAAhD0JvcmRlclNpemVQaXhlbAMAAAAAAAAAACEEU2l6ZQwAAAAAZAAAAAAAZAAhBFBhcnQhBE5hbWUhB3RleHRib3ghCEFuY2hvcmVkIiENQm90dG9tU3VyZmFjZSEGQ0ZyYW1lBBUAHgQfBCEKQ2FuQ29sbGlkZQIhCFBvc2l0aW'
	..'9uCgD//z8E15NApHAPQQoAAABBAAAwQAAAgD8hClRvcFN1cmZhY2UhDFRyYW5zcGFyZW5jeQMAAAAAAADwPyEKU3VyZmFjZUd1aSELQWx3YXlzT25Ub3AhCkNhbnZhc1NpemULAABhRAAAjEMhBEZhY2UDAAAAAAAAAEAhCkltYWdlTGFiZWwhAmJnIRZCYWNrZ3JvdW5kVHJhbnNwYXJlbmN5BhsqNQwAAAAAAAAAAAAAMgAMAACAPwAA'
	..'AACAP87/IQZaSW5kZXghBUltYWdlIRdyYnhhc3NldGlkOi8vMTQ0MjEyNzA1NyENSW1hZ2VSZWN0U2l6ZQsAgO1DAAAAQyEEc3BpbgwAAIA/uv8AAIA/xP8MAAAAACMAAAAAACQAIRdyYnhhc3NldGlkOi8vMTQ0MjEyNjcwNiEJVGV4dExhYmVsIQZwZXJzb24MAAAAABQAAAAAAAAADAAAAD/Y/83MTD4AAAMAAAAAAAAIQCEERm9udA'
	..'MAAAAAAAAQQCEEVGV4dCEMTG9uZ05hbWVNR2VlIQpUZXh0Q29sb3IzIQhUZXh0U2l6ZQMAAAAAAABJQCELVGV4dFdyYXBwZWQhDlRleHRYQWxpZ25tZW50IQ5UZXh0WUFsaWdubWVudCEHb3V0bGluZQwAAAAAAAAK16M8AAAMAACAPwAAAACAPwAAIRBUZXh0VHJhbnNwYXJlbmN5AwAAAKCZmek/IQViZWVibwwAAIA/7P8AAAAAAAAM'
	..'AAAAvwAAzcxMPgAAIQVCZWVibyEFRnJhbWUhA3RidAb4+PgMAAAAABQAAAAAAFAAIQZGb2xkZXIhBWZhY2VzIQhNZXNoUGFydCEJcGl4ZWxhdGVkBFIAIAQhBCELT3JpZW50YXRpb24KAAC0wqTwTsIAAAAACkORvD+gmatBGfRlQyEIUm90YXRpb24KAAC0wgAAAACk8E7CCvHHLkAUKYE/N22PQCEGTWVzaElkIRdyYnhhc3NldGlkOi'
	..'8vMTM3MjE3MTU2MiEITWVzaFNpemUK+gTqQtLvLELHCUBDIQlUZXh0dXJlSUQhF3JieGFzc2V0aWQ6Ly8xMjE4OTc3ODMzIQhJbnRWYWx1ZSECaWQhBVZhbHVlIQRpY29uA8BUDEPgZN1CIQdkZWZhdWx0AwAAwE1kKtJBIQ9QYXJ0aWNsZUVtaXR0ZXIhBXN0ZWFtIQREcmFnEQAAtEMAALRDKQIAAAAAAACAQAAAwD8AAIA/AACAQAAA'
	..'wD8hBVNwZWVkEQAAQEAAAEBAIQtTcHJlYWRBbmdsZQsAAMhCAADIQiEHVGV4dHVyZSEXcmJ4YXNzZXRpZDovLzEyMTMxMjY4NjQpBAAAAAAAAIA/AAAAAM3MTD7NzMw+AAAAADMzMz/NzEw+AAAAAAAAgD8AAIA/AAAAACEJdW5sb2NrcGNsIQxBY2NlbGVyYXRpb24KAAAAAAAAoMEAAAAAIQVDb2xvcigCAAAAAKz+/wAAgD+s/v8hB0'
	..'VuYWJsZWQhCExpZmV0aW1lEc3MzD4zM7M/IQ1MaWdodEVtaXNzaW9uAwAAAKCZmck/IQ5MaWdodEluZmx1ZW5jZSEIUm90U3BlZWQRAADIwwAAyEMRAAA0wwAANEMpAgAAAAAAAIA/mpkZPwAAgD8CAFA/KDOzPhEAAIhBAACIQQsAADRDAAA0QyEXcmJ4YXNzZXRpZDovLzEzNzI0MDI0ODUpBAAAAAAAAIA/AAAAAEgUDT0AAAAAAAAA'
	..'ABcnTT8AAAAAAAAAAAAAgD8AAIA/AAAAACEFTW9kZWwhBWljZWJnIQtQcmltYXJ5UGFydCEKV29ybGRQaXZvdAQiAiIEIwQhBVBhcnQyBCICJAQlBAoAAAAAAAAAAAAANMIKAACAPwAAgD8AAIA/IQpBdHRhY2htZW50IQZjZW50ZXIEIgImBCcECo+D9quVEig3mhIoNwSRACQEJQQKAAAAgAAAAIAAADTCCgAAyMEAAAAAAAAAACEEQm'
	..'VhbSELQXR0YWNobWVudDAhC0F0dGFjaG1lbnQxKAIAAAAAAAAAAACAP////yEKQ3VydmVTaXplMAMAAAAAAAAkQCkCAAAAAM3MzD4AAAAAAACAP83MzD4AAAAAIQZXaWR0aDAhBldpZHRoMQSdACgEKQQKAAAAAAAAAAABADRCCgAAAAD//8fBAAAAAASfACQEJQQKAADIQQAAADYAAAAAAwAAAAAAACTABKIAKAQpBAoAAAA2AQDIQQAA'
	..'AAAhB2NlbnRlcjIEIgIqBCsECpQSKLc6EhqsAQC0QiEFUGFydDEhBHBvc2UELAQtBC4EIQV0b3JzbwQiAi0ELgQhCE1hdGVyaWFsAwAAAAAAQJRACpqZmT/MzMw/AACAPyELU3BlY2lhbE1lc2ghBVNjYWxlCmZmZj9mZmY/ZmZmPyEXcmJ4YXNzZXRpZDovLzExMjU5NjY3ODMhCVRleHR1cmVJZCEXcmJ4YXNzZXRpZDovLzExMjk2Mz'
	..'EyNzEhCE1lc2hUeXBlAwAAAAAAABRAIQRoZWFkIQpCcmlja0NvbG9yBwIEBLwALwQwBAaRof8K9iheQZqZqT+amTFACgCQkrr5x9A/AAAAAAo/NV5BarykP30/HUAKAAAAQGdm5j8AAABACgAAgD4AAIA+AACAPiEXcmJ4YXNzZXRpZDovLzExMjYxMDg1OTYhBURlY2FsIRdyYnhhc3NldGlkOi8vMTE2NDkyNzQ2MSEEbGVnQQTGADEE'
	..'MgQKw3UzQtnOhz/VeIdBCrCGFT8wFGa/4XoUvwrhejNCEoNAP+F6gUEKmpkZP/3/fz8AAIA/CjMzMz/NzEw/MzMzPyEXcmJ4YXNzZXRpZDovLzExMjU5OTUyNTUhBGxlZ0IEzgAzBDQECs3MtMEj29FAdZMgwQqABuW+buOSvylcDz4KL921wS2ywUAnMfDAIQRhcm1EBNMANQQ2BApKDJ5BpLDjwocWM0MKFJClv6iFsz9bj8K+CsthCk'
	..'PFoG3CqEYZwgqamRk/l5kZP5qZmT8hF3JieGFzc2V0aWQ6Ly8xMTI1OTg0MTE3IQRhcm1CBNoANwQ4BAoILDpCUvjkwjm0KD8KgBpjv/kONT9cj0K+Ckjh3kISAxvCJYb1QgqamRk/mJmZP5qZGT8KKVyPPQrXoz0pXI89IRdyYnhhc3NldGlkOi8vMTEyNTk3NzAxMyEEYXJtQQTiADkEOgQKuklKQpbD1UJI4SLACiANZz84Okg/7FE4'
	..'vgop3M5CObQVQu7848IhBGFybUME5wA7BDwECrbzHUHNjLJCVOMvQwocbaU/6rC8Pylcj74Kka2rQrYzoELVOLRCIQVwb3NlMgQ9BB4EHwQE7QA+BD8ECmKQVkIAAAAAfyozQwoiAEA/xYR4Ptxixr4KzcwMP83MjD/NzAw/IRdyYnhhc3NldGlkOi8vMTIxODk3ODU5NgrWzEw/GAubP9jMTD8E8wBABEEECm1nlUJvEoO6WHkpwwoiMz'
	..'O/limGPqkX5L4KbWeVQgAAAAAXeSnDBPcAQgRDBApikFZCAAAAALoJicIKBvaoPgGH8L0ShVK/IRdyYnhhc3NldGlkOi8vMTIxODk3OTA5MAqk7Ic/L9sSQKnshz8E/ABEBEUECtv5ckFg5SxDcb23wgqKzEy+4FsoPsdoTb8KtrMkQylc20AAALRCBAABHgRGBAqF6zTCAAAAAAAAAAAKAAAAAC7CtT8+Cle/CtvMDEAMAABADAAAQCEX'
	..'cmJ4YXNzZXRpZDovLzEyMTg5ODAxNDQK0cwMQQMAAEEDAABBIQZDb2xvcjMhFHJieGFzc2V0aWQ6Ly8yMTE0NDczISdodHRwOi8vd3d3LnJvYmxveC5jb20vYXNzZXQvP2lkPTIxMTQ0NzMhBGZhY2UhF3JieGFzc2V0aWQ6Ly8xMjE5MDM4MDA2BAsBHgRHBAoj2xNBAAAAAAAAAAAKEM3MPkfI9b4BAAC/CqJFVj/y0p0/+n6aPyEXcm'
	..'J4YXNzZXRpZDovLzEyMTg5NzgyMzkKwR6FP4dExD/oHcA/BBEBHgRIBArXo9RAAAAAAAAAAAAKzczMvlfuEb9cjwK/CsEehT+HRMQ/5x3APwqWQ9s/arzUPxsvjT8hF3JieGFzc2V0aWQ6Ly8xMjE4OTc3ODI3CrNw6D8TlOE/PKWVPyEFU291bmQhBXNtYWNrIQdTb3VuZElkIRdyYnhhc3NldGlkOi8vMTE1ODg4NzM5NiEGVm9sdW1l'
	..'IQtOdW1iZXJWYWx1ZSEDdm9sAwAAAAAAAPg/IQRkaXZlIRdyYnhhc3NldGlkOi8vMTExMTAyNjk3OCEFZGp1bXAhF3JieGFzc2V0aWQ6Ly8xMTExMDM3ODE1IQRmbGlwIRdyYnhhc3NldGlkOi8vMTExMTAyNzA5NgMAAAAAAADgPyEEanVtcCEXcmJ4YXNzZXRpZDovLzExMTEwMjY3MTAhBWp1bXAyIRdyYnhhc3NldGlkOi8vMTExMT'
	..'AyNzAzNyEEbGFuZCEXcmJ4YXNzZXRpZDovLzExMTEwMjY4MjIhA3NhMSEXcmJ4YXNzZXRpZDovLzExMTEwMjcyMTAhA3NhMiEXcmJ4YXNzZXRpZDovLzExMTEwMjcyNjghA3NhMyEXcmJ4YXNzZXRpZDovLzExMTEwMjczMzghA3NhNCEXcmJ4YXNzZXRpZDovLzExMTEwMjc0NzAhA3NhNSEXcmJ4YXNzZXRpZDovLzExMTEwMjc1NTYh'
	..'A3NiMSEXcmJ4YXNzZXRpZDovLzExMTEwMzc4ODghA3NiMiEXcmJ4YXNzZXRpZDovLzExMTEwMjc2ODIhA3NiMyEXcmJ4YXNzZXRpZDovLzExMTEwMjc3NDchA3NiNCEXcmJ4YXNzZXRpZDovLzExMTEwMjgxMzAhA3NiNSEXcmJ4YXNzZXRpZDovLzExMTEwMjgyMDMhBXNsaWRlIQZMb29wZWQhF3JieGFzc2V0aWQ6Ly8xMTExMDI2OD'
	..'k2IQdwb3dlcnVwIRdyYnhhc3NldGlkOi8vMTE0NjQ3MjA0NiEEcG9sZSEXcmJ4YXNzZXRpZDovLzExNDYzMDYyNTUhBmRhbWFnZSEXcmJ4YXNzZXRpZDovLzExNDY0NzE5NjghF3JieGFzc2V0aWQ6Ly8xMTU4ODc2ODI5IQVwb3NlMwRJBEoESwQETQFMBE0ECnc+D8JkuytCDAITwAqOsA0/rnlEv4PMET8K7FEywrgeBkKsHNJBBFEB'
	..'TgRPBAp3Pg9C5RAJw2KQMcIKU5WJP+5+tL8+2EE/CkRrB0O4HgbCEBjWQgRVAVAEUQQKtvPPQfypNcI7X4XCCojyUj9WMLm/SmxfvwrXIwtCUjgfwhfZKsIEWQFSBFMECrBym0LJdnhCDm2XQgqKkm491OCXv8SSvb8KxWCoQt9PLUFOYmJBBF0BVARVBArBykE/UjjdwoGVwcIKyjVMvz6oFr+e6q2/CtvZMUMGwYrC3WSiQgRhAVYEVw'
	..'QKWiSPwlL47MIGgbzBCmQmNL+mywG/lmwVvwpcD8bCVg6BwbxUD8MEZQFYBFkECmZmy0HTTVbC3SSAwQrICq099INhv1gbNb4KWLkaQrByOsKcxGJBBGkBSgRLBAqcxAhAJQbQwQAAAAAKHAC1vBD5ND+M1Hk+CsUgGEAv3c/BQmCFPyEFcG9zZTQEWgRbBFwEBG8BXQReBArTTY7CUC0Zw9W4/sIK4LeFP3B5HD+EP0O8CtHi1cKsHAbB'
	..'CGycQgRzAV8EYAQKGYStwn3/M0NmZijBCmx7L7+aPus+v/IIvwrne7rCAAAAABd5KUMEdwFhBGIECtNNGkDpJinBicHEQgpdLfc/7gZFP+txTz4Kke0cQAwCKcHwp8VCBHsBRARjBAp3vnFBEsMqw2Alr8IKRptiviQ81j7ZnIG/CrazJEPwpw7BAAC0QgR/AVsEXAQKy6EgwnE9ZkFcjypACvtX1jz/PMc/W7ImvwpxPSTCGy8vQcP1QE'
	..'EhBXBvc2U1BGQEZQRmBASFAWcEaAQK4XqhwnE9KUNmZrbACvp+Sj8IrNw+dZM4vwozM8bCf2rcP1CtI0MEiQFpBGoECmR7ocI1PinDNV62QArrjkq/lrTcPnaQOL8KsDLGwrpJ3L9WriPDBI0BawRsBArNzBzAmtkCQ6RwqkIKarwUP1g5tD6PwsW/CstBMMMjW0RCUjjDwgSRAWUEZgQK9P0cwJrZAsOeb6rCCqS+FL/tebQ+qsfFvwoG'
	..'QTDDI1tEwuE6w0IhB2JhdHRlcnkElgEeBB8EAwAAAAAAAHFACgAAAAAAADJCAAAAAAoyMyNAmplZQDIzI0AhF3JieGFzc2V0aWQ6Ly8xMTAzNjMzMTIxCgAASELUzIlCBQBIQiEXcmJ4YXNzZXRpZDovLzExMjk2NDIyNDAhA3BjbCEFY2FuZHkRzcxMPs3MTD4hBFJhdGUpAgAAAAA54Zk/AAAAAAAAgD+KUmNAAAAAABEAAAAAAAAAAC'
	..'EXcmJ4YXNzZXRpZDovLzExNDQzODQ3ODEpAwAAAAAAAAAAAAAAAAAAAD8AAIA+AAAAAAAAgD8AAIA/AAAAACEMVmVjdG9yM1ZhbHVlIQNwb3MhB2J1dHRvbjIEqQEeBG0EAwAAAAAAgJRACgAAtMIAAAAAAAAAAAqMDXhBzQY6QPLS7UEKThvoP5RDCz9OG+g/IRdyYnhhc3NldGlkOi8vMTExMTI5MjEzOQqnqiZDAABIQqeqJkMhF3Ji'
	..'eGFzc2V0aWQ6Ly8xMTk0NTUzMjk2IQNlZ2cEsQEeBB8EAwAAAAAAgJBACgAACELFCzNDAABcwgooXwlAUPQqQOJwEEAhF3JieGFzc2V0aWQ6Ly8xMjExOTMzMzc1ClIrmEGKXr1B/P+fQSEXcmJ4YXNzZXRpZDovLzEyMTE5MzMzNzghBmZsb3dlcgS5AW4EbwQKAADMQHNoyEGYbmLACmll+kF3XiPDXNgOQgr0/eBAhxbHQbpJ0MAKUR'
	..'gfQOA9SkBRGB9AIRdyYnhhc3NldGlkOi8vMTE3MDk1NTE3NgoAAEhCeD1+QgAASEIhF3JieGFzc2V0aWQ6Ly8xMTcwOTU1MTg0IQZoY2FuZHkH6QMEwwEeBB8EAwAAAAAAgJhACgAAOMEAAIBAAACQQAq6GTFAQB/BPz8tvz8hF3JieGFzc2V0aWQ6Ly8xMTQ0MzQ0MTc2CihGuUL6CEpCAABIQiEJaWNlZGNyZWFtBMoBHgQfBAMAAAAA'
	..'AECQQAoEAJBAPBOWQwAAAAAKmLPFP4+dTEA3SeQ/IRdyYnhhc3NldGlkOi8vMTM3NDE1ODk1MAoAAEhCh/7OQqjwZkIhF3JieGFzc2V0aWQ6Ly8xMzc0MTU4OTU3IQtTdHJpbmdWYWx1ZSEEZGVzYyEEb29wcyECcDERAAAAPwAAAD8hDExvY2tlZFRvUGFydCkCAAAAAAzW0T8AAAAAAACAP6DiEkAAAAAAIQJwMhEAAPDBAADwQSkCAA'
	..'AAAODYwz4AAAAAAACAPyRYR0AAAAAAIRdyYnhhc3NldGlkOi8vMTE2NDg3NDc1NSEHWk9mZnNldAMAAAAAAAAUwCEEbG9nbwTgAXAEHwQDAAAAAACAiEAKAAAAAAAANEMAAAAACgAAAAAAAADAAAAAAAoAADRDAAAAAAAANEMK9JQuQr55yUFroTtAIRdyYnhhc3NldGlkOi8vMTEyOTc3MDA1MgrEkAtEphChQzb/FUIhF3JieGFzc2V0'
	..'aWQ6Ly8xMTI5NzcwMDYwIQhub3RjcmVhbQeMAATqAR4EHwQGJzlPCgQAkEA3BsJDAADAwCEEbm90ZQfsAwTvAR4EHwQG/wAAClTNjcKCkQRCKNIHPwoQGAZAf7OMQN5sZUAhF3JieGFzc2V0aWQ6Ly8xMjM2Njg3MjUzChw/i0GPGxJCpT3uQSEDbWF4IQRzdXJmBPYBHgQfBArA4V5AwEN9QNb3YkMKRi3dP4DR1UDOcpQ/IRdyYnhhc3'
	..'NldGlkOi8vMTM3MTc3OTUxNQoJ/pRCRleLQwEASEIhF3JieGFzc2V0aWQ6Ly8xMTI5NjMxMTMxIQdUZWxlTWFwBP4BHgQfBAMAAAAAAAByQAoAAAAAuL6LQ9ajiMMKAAAAQAAAAEAAAABAIQJ0byEEdGVtcCEFd2hlcmUKAAAAAAAAAEEAAADBIQRiZWVzBAYCHgQfBApAM1NAsCgWQf/iXz8hBXNwZWVkIQJycyEoaHR0cDovL3d3dy5y'
	..'b2Jsb3guY29tL2Fzc2V0Lz9pZD00ODQ5NTc1NyEoaHR0cDovL3d3dy5yb2Jsb3guY29tL2Fzc2V0Lz9pZD00ODQ5NTc0MyEGc2hyaW5rIQNib3gEDgIeBB8ECgCAgEMAAATCAACAPyEGYnV0dG9uBBECHgQfBAoAAAAAAADwQQAAAAAKj8J1PI/CdTyPwnU8IRdyYnhhc3NldGlkOi8vMTEyOTYzMDg1MAoAAIBAAACAQAAAgEAhBVNoYX'
	..'BlCo/C9TyPwvU8j8L1PCEXcmJ4YXNzZXRpZDovLzExNDQzNDQxODUhBGNoYXIEHAIeBB8EIRhDdXN0b21QaHlzaWNhbFByb3BlcnRpZXMQKVyPPQAAAAAAAAAAAADIQgAAyEIKAAAAAAAAoEEAAKBBCgAAQEAAAEBAAABAQCEGQ2VudGVyIQtWZWN0b3JGb3JjZSEHVmlzaWJsZSEFRm9yY2UKAAAAAAAAAAAAAAAAIQpSZWxhdGl2ZVRv'
	..'IQhCb2R5R3lybyEBRAMAAAAAAMByQCEJTWF4VG9ycXVlCgBAnEUAQJxFAECcRSEFY2xvdWQKzcxMPc3MTD3NzEw9IRdyYnhhc3NldGlkOi8vMTEwMzUzNTA4MiEJZmFrZWNhbmR5BC8CcQRyBAqamTnAj8J1PCGwAsEK/BWeQ6/aFkJuzHRCCpqZOcCPwnU8CKwCwSEHc25hcGNhbQQ1Ah4EHwQhEENvbGxpc2lvbkdyb3VwSWQQMzMzPw'
	..'AAAAAAAAAAAADIQgAAyEIKhXuUxEMAAD8AANZBIQlCb2R5Rm9yY2UhBWZvcmNlIQRoYXRzIQRoYXQzBDwCHgQfBAMAAAAAAACLQAoAAEDBZmbSQWbmUUMKpHCVQJqZ2T+kcJVAIRdyYnhhc3NldGlkOi8vMTIyMzcwMzI4NQpsjaJBG4cJQWyNokEhF3JieGFzc2V0aWQ6Ly8xMjIzNzAzMjkxIQNvZmYERAIeBHMECn77j0EAAAAAAAAA'
	..'AAoAAAAAZmamP83MzD4hQUNsYXNzaWMgc29tYnJlcm8sIGNhbiBvbmx5IGdldCBiZXR0ZXIgZnJvbSBoZXJlIGlmIHlvdSB3ZWFyIHRoaXMuIQNoYXQhCFNvbWJyZXJvIQVwcmljZQMAAAAAAABpQCEDZG90AwAA4PMQCONBIQRoYXQ0BE8CHgQfBAMAAAAAAACJQAoAAIDBZmbSQQCAUUMKLsXePwuUiT99Lug/IRdyYnhhc3NldGlkOi'
	..'8vMTIxOTEyOTM3MgoUqHNBK3oWQUjzfUEhF3JieGFzc2V0aWQ6Ly8xMjE5MTI5Mzg3IUVJdCdzIGp1c3QgYSBub3JtYWwgcm9jay4gQnV0IGhleSwgaXQgYWxzbyBjb3VudHMgYXMgYSBjb29sIGhhdCByaWdodD8hBFJvY2sEVwIeBB8ECgAAAABmZqY/AAAAAAMAAAAtOgjjQSEEaGF0MgRbAh4EHwQKAAAAwRKs1kEAgFFDChOTCkAI'
	..'lvg/E5MKQCEXcmJ4YXNzZXRpZDovLzEyMjUxMzIxOTcK2DCOQcESf0HYMI5BIRdyYnhhc3NldGlkOi8vMTIyNTEzMjIwMiE1R290IHRoaXMgb25lIG9uIHRoZSB0cmFpbi4gSSB3b25kZXIgd2hvIHdhcyB1c2luZyBpdD8hDlB1cnBsZSBUb3AgSGF0BGMCHgQfBAoAAAAAmpnZPwAAAAADAAAAOhEI40EhBGhhdDUEZwIeBB8ECgAAgM'
	..'AAAMhBqMZMQwrE8w9AwP4uP9q5fT8hF3JieGFzc2V0aWQ6Ly8xMjI1MTc0Nzg1CgULHkHjH0BAqaFyQCEXcmJ4YXNzZXRpZDovLzEyMjUxNzQ3OTQEbQIeBB8ECgAAAAAAAAAAEFg5vyFWVGhlcmUncyBub3RoaW5nIG1vcmUgY29vbCB0aGFuIHJvY2tpbmcgc29tZSB3aWNrZWQgc2hhZGVzLiBBIHJvYm90IGNhbiBoYXZlIHN0eWxl'
	..'IHRvbyEhBlNoYWRlcwMAAEDbEAjjQSEEaGF0NwR0Ah4EdAQKUI2gQQAAAAAAAAAACgAAQMFgXNJBrvNNQwosFxJASi3qP5PdC0AhF3JieGFzc2V0aWQ6Ly8xMjI1MjA1NDUzCgdPEEEKqpdA2igKQSFVTm90IHN1cmUgd2hhdCB0aGUgcHVycG9zZSBvZiB0aGlzIGlzLCBpdCBkb2Vzbid0IGV2ZW4gbGV0IHlvdSBmbHkuIExvb2tzIG'
	..'Nvb2wgdGhvdWdoLiEQUHJvcGVsbGVyIEJlYW5pZQR8Ah4EdQQKSP2fQQAAAAAAAAAACgAAAACPwqU/i2znPgMAAAAAAMBiQAMAACALEQjjQQMAAAAAAAAcQASBAh4EHwQKAACAwFyPyUG4XlFDCib9IkBSuL4/i1w8QCEXcmJ4YXNzZXRpZDovLzE0MjI3Mjk2MjkKZOuqQgAASELbhsVCIRdyYnhhc3NldGlkOi8vMTQyMjcyOTY0NyFP'
	..'U2VlbXMgbGlrZSB0aGlzIG9uZSB3YXMgbWFkZSB0byBhdm9pZCBjb3B5cmlnaHQuIEl0IGNoYW5nZXMgY29sb3Igd2l0aCB5b3UgdG9vISELQmVlYm8ncyBDYXAEiQIeBB8ECgAAAAAOLXI/zcxMvgMAAAAAAECPQCEEc2tpbgMAAOBDEAjjQSEEaGF0OASPAh4EHwQKAACAwYGV0kEAgE1DCivDZEC9k+g/JcNkQCEXcmJ4YXNzZXRpZD'
	..'ovLzE2MDYwMTY1ODEKDe53QXMQ/EAK7ndBIRdyYnhhc3NldGlkOi8vMTYwNjAxNjU5NyFJVGhpcyBzbWVsbHMgbGlrZSBnYXJiYWdlLiBJIGd1ZXNzIHRoYXQgaXNuJ3QgYSBwcm9ibGVtIGlmIHlvdSdyZSBhIHJvYm90LiEOR3JlZW4gTXVzaHJvb20ElwIeBB8ECgAAAAAQWKk/AAAAAAMAAMBVEQjjQQMAAAAAAAAgQCEFaGF0MTgE'
	..'ngIeBHYEAwAAAAAAAJFACtv5JEEAAAAAAAAAAAoAAODBXjHHQVfPUEMKBgY/QIyLbUB1+XhAIRdyYnhhc3NldGlkOi8vMTEwNzk5NjcwMAoAAEhCC7V4QjxWgkIhF3JieGFzc2V0aWQ6Ly8xMTA3OTk2NzEwAwAAoEQlCONBIQdTY29vYmlzAwAAAAAAADJABKgCHgR2BAre+iRBAAAAAAAAAAAKAAAAABfZzr3XozC/AwAAAAAAAERAIQ'
	..'RoYXQ5BKwCHgQfBAr4bXvAvtrIQbxWREMKsEscQG8cF0BELI5AIRdyYnhhc3NldGlkOi8vMTYwNjAzNTg2NiEXcmJ4YXNzZXRpZDovLzE2MDYwMzU5NjEhB01haWxib3gEsgIeBB8ECnNokT3RIts9ppuUvwMAACCZEAjjQQMAAAAAAAAiQCEFaGF0MTAEtwIeBB8ECgAAAMHbpdJBvLNFQwpDohpAxYcgQE7xEUAhF3JieGFzc2V0aWQ6'
	..'Ly8xNjA2MDQxMjA5IRdyYnhhc3NldGlkOi8vMTYwNjA0MTIzMyEKV2l6YXJkIGNhcAS9Ah4EHwQKAAAAADVeqj8X2U4+AwAAoGoRCONBIQVoYXQxMQc2AQTDAh4EHwQGW5pMCghtQMFKHdNBAIBFQwqufX8/C6d5P3mAJj8hF3JieGFzc2V0aWQ6Ly8xNjA2MDc0MjQyIQZMZWF2ZXMEyAIeBB8ECgAAAADByrE/AAAAAAMAAEAlEQjjQQ'
	..'MAAAAAAAAmQCEFaGF0MTIEzQIeBB8ECgAAgMFZ9M5B9bVFQwqKGDBA9CyEQKkVEUAhF3JieGFzc2V0aWQ6Ly8xNjA2MDc4NDg2IQlCdW5ueSBIYXQE0gIeBB8ECgAAAIDJdl4/YhBYPgMAAOCvEAjjQQMAAAAAAAAoQCEFaGF0MTMHOQEE2QIeBB8EBgClGwro/3/AlArKQQCAQUMKVqUmQMg1CEC46BpAIRdyYnhhc3NldGlkOi8vMTYw'
	..'NjA4MTQ4NCELQXJteSBIZWxtZXQE3gIeBB8ECgAAAABcj4I+AAAAAAMAAED8LgjjQQMAAAAAAAAqQCEFaGF0MTQHbAEE5QIeBB8EBkxMTAroHgDBJPnJQR4pQUMKqhAcQHHf1j/3WZw/IRdyYnhhc3NldGlkOi8vMTYwNjA4NDM4MSEQR2FtZXIgSGVhZHBob25lcwTqAh4EHwQKbxIDvJHtfD5oka2+AwAAwFoQCONBAwAAAAAAACxAIQ'
	..'VoYXQxNQfxAwTxAh4EHwQG/9kACtj/P8GMBtNBAIBBQwqNlLo/YJkCPpSUuj8hF3JieGFzc2V0aWQ6Ly8xNjA2MDkxMDM1IQRIYWxvBPYCHgQfBAoAAAAAAAAAQAAAAAADAADgcBAI40EDAAAAAAAALkAhBWhhdDE2BPsCHgQfBAooskbBTHzKQQCAQUMKV/2GQFyZvT+ZFUE/IRdyYnhhc3NldGlkOi8vMTYwNjA5MjkxMiEXcmJ4YXNz'
	..'ZXRpZDovLzEyMTE4MzAyNjEhD0Fycm93IFByYW5rc3RlcgQBAx4EHwQKnu+nPWQ7nz4AAAAAAwAAYCoQCONBAwAAAAAAADBAIQVoYXQxNwf1AwQIAx4EHwQGOsH/CgAAwME/nMJB7H1QQwpHJAZAgcaJPwB0MT8hF3JieGFzc2V0aWQ6Ly8xNjA2MDk3OTU2IQxXSE8gRElEIFRISVMhCTEwMCUgTE1BTwQOAx4EHwQKAAAAAESLLL8lBo'
	..'G/AwAA4IQQCONBAwAAAAAAADFAIQRoYXQ2BBMDHgQfBAoAAADBSuTIQX6eTUMKXjN9QPlthUBRrjNAIShodHRwOi8vd3d3LnJvYmxveC5jb20vYXNzZXQvP2lkPTE3MjIzMTIxCmSvH0CYTChAL6PiPyEVcmJ4YXNzZXRpZDovLzE3MjIzMTE3AwAAYGglCONBIRlQcmFpc2UgYmVlIHRvIHRoZSBidWJibGUuIQ5CdWJibGUgQmVlIE1h'
	..'bgMAAAAAAAAYQAQdAx4EHwQKAAAAAPhT4z1GtvM9IQVoYXQxOQQgAx4EHwQKAADCuF0iykGjK1lDCsENYEC/UAFAfF04QCEXcmJ4YXNzZXRpZDovLzI1NTQ0Mzc3NDIhF3JieGFzc2V0aWQ6Ly8yNTU0NDM3NzY2ISpJdCB3YXMgaGlzIGhhdCwgZHVuY2FuISBIZSB3YXMgbnVtYmVyIHR3byEhBiMyIEhhdAMAACDGEAjjQQMAAAAAAA'
	..'AzQAQpAx4EHwQKAAAAAFyPgj6amZm+IQVoYXQyMAQsAx4EdgQKAADgwV4xx0GKQkZDIRdyYnhhc3NldGlkOi8vNTAxMzc3OTMxOQr+//8/AAAAQPr//z8hF3JieGFzc2V0aWQ6Ly81MDEzNzc5Mzg3AwAA4AyrDvNBIQtrZWJlYnUgbG9hbiEJTWluaS1Nb29uAwAAAAAAADRABCICHgR2BCEFaGF0MjEENwMeBB8ECrQehb4AAMhBqMZM'
	..'QwpITxRATDg0PzB6xz0hF3JieGFzc2V0aWQ6Ly81MTE4NDQ2NTEyISpodHRwOi8vd3d3LnJvYmxveC5jb20vYXNzZXQvP2lkPTUxMTg3MTk0NDIEPAMeBB8ECgAAAAAAAAAAv8qBvyERdGhlIGNvb2xlciBkYW5pZWwhC1ZhcG9yU2hhZGVzAwAAwHHdEfNBAwAAAAAAADVAIQRoYXQwIQVibGFtbwREA3cEHwQKAACgQFyPyUG4XlFDCn'
	..'V7HUBE2rY/4kAgQCEXcmJ4YXNzZXRpZDovLzUxMjg4MDY5NzMKqK5AQKpA/T8VdENAIRdyYnhhc3NldGlkOi8vNTEyODgwNjk5MSEKb29nYSBib29nYSEMQmxhbW8gQmVhbmllBE0DeAR5BAoAAKBB//8zwwAAAAAKAAAAAD0KVz8fhWs+AwAAsIHKLvNBAwAAAAAAADZAIQVza2lucyEFc2VwaWEEUgB6BHsECgAAtMKw8k7CAAAAAAr0'
	..'/bPCbxIDu7DyTsIhF3JieGFzc2V0aWQ6Ly81MDk4OTkzMzk4IQtDb2xvcjNWYWx1ZQbSyb8hBVNlcGlhAwAAAFbJ/vJBIQRwaW5rIRdyYnhhc3NldGlkOi8vMTM3MjE4NDk5MQZqAP8hBFBpbmsDAADg8YoC40EhBG1vbm8hF3JieGFzc2V0aWQ6Ly8xMzcyMTg3NTc0BsnJySEKTW9ub2Nocm9tZQMAAAABiwLjQSEEbm9pZCEXcmJ4YX'
	..'NzZXRpZDovLzE0NTA5NzgwOTkG/0xPIQpZbyEgQmVlYm8hAwAAYA2LAuNBIQZiYWNrdXAhB0RlZmF1bHQDAAAg3YoC40EhBnR1cnRsZSEXcmJ4YXNzZXRpZDovLzE2MDkwNzI3MTAGs//8IQtUdXJ0bGUgVG9wcwMAAKBZiwLjQSEGa25vZGR5IRdyYnhhc3NldGlkOi8vMTYwOTA3Mjk1Mwb6uVMhD0tub2RkeSdzIFJlc29ydAMAAMBr'
	..'iwLjQSEFYmxvb20HAQQG/8j0ISpodHRwOi8vd3d3LnJvYmxveC5jb20vYXNzZXQvP2lkPTUxMTgxNzM1ODQDAAAAAAAAO0AhCEJsb29taW5nAwAA4HNAEfNBIRdyYnhhc3NldGlkOi8vMTYwOTA3MzUzOCEOQ2FuZHkgQXF1YXJpdW0DAADgYowC40EhA3JlZCEXcmJ4YXNzZXRpZDovLzE2MDkyODkzODQhCE5lb24gUmVkAwAAQHuMAu'
	..'NBIQRjeWFuIRdyYnhhc3NldGlkOi8vMTYwOTA3Mzk2MAYA//8hCU5lb24gQ3lhbgMAAOCJjALjQSEGc2lsdmVyIQtSZWZsZWN0YW5jZSEER29sZAMAAJCZw/7yQSEEZmlyZSEXcmJ4YXNzZXRpZDovLzI1NTE0ODYxNTUG/0VFIQdGbGFtaW4nAwAAQLqMAuNBIQdtYWdlbnRhISpodHRwOi8vd3d3LnJvYmxveC5jb20vYXNzZXQvP2lk'
	..'PTUwOTgxMDI2NTgG/wD/IQxOZW9uIE1hZ2VudGEDAAAw+Wf+8kEhBWdyZWVuISpodHRwOi8vd3d3LnJvYmxveC5jb20vYXNzZXQvP2lkPTUwOTgxNjYyNDYGAP8AIQpOZW9uIEdyZWVuAwAA0LJz/vJBIQRnb2xkBv+3AAMAAECcjALjQSEGYmFuYW5hISpodHRwOi8vd3d3LnJvYmxveC5jb20vYXNzZXQvP2lkPTUwOTkwNjgwMjYG/3'
	..'z6IQZCYW5hbmEDAADAL9r+8kEhB3BhdHJpb3QhKmh0dHA6Ly93d3cucm9ibG94LmNvbS9hc3NldC8/aWQ9NTEwODM5MTgzMQYAW/8DAADQ59EH80EhCVBhdHJpb3RpYyEDbmlsISpodHRwOi8vd3d3LnJvYmxveC5jb20vYXNzZXQvP2lkPTUxMDg1MTUzMzUhR2F0dGVtcHQgdG8gaW5kZXggbmlsIHZhbHVlIOKAnHNraW7igJ0gYXQg'
	..'bGluZSAyMzcwIGluIGZ1bmN0aW9uIHRvc2tpbigpAwAAAKTdB/NBIQVmdW5ueSEqaHR0cDovL3d3dy5yb2Jsb3guY29tL2Fzc2V0Lz9pZD01MTE4MDcwMjc4BkwjDQMAAAAAAAA5QCENRnVubnkgTW9tZW50cwMAAGALIhHzQSEDaWNlISpodHRwOi8vd3d3LnJvYmxveC5jb20vYXNzZXQvP2lkPTUxMTU4MzE5NzQGmdnqIQxTbm96b2'
	..'5lIENhdmUDAADgT+EO80EhBGJ1enohKmh0dHA6Ly93d3cucm9ibG94LmNvbS9hc3NldC8/aWQ9NTExNTk0OTI3OQbUchAhDEJ1enogRmFjdG9yeQMAAGAp/A7zQSEEbGVhZiEqaHR0cDovL3d3dy5yb2Jsb3guY29tL2Fzc2V0Lz9pZD01MTE2MDI5NjM0BiKxTCEFTGVhZnkDAACQ+w8P80EhKmh0dHA6Ly93d3cucm9ibG94LmNvbS9h'
	..'c3NldC8/aWQ9NTExNzk5NDc0NwYp/y8DAAAAAAAAOEAhDENsb3NlIEVub3VnaAMAAGBF2BHzQSEDb2RkISpodHRwOi8vd3d3LnJvYmxveC5jb20vYXNzZXQvP2lkPTUxMTc5NTc5NTkG0N//AwAAAAAAADdAIQNPZGQDAAAArxAR80EhBWR3ZWViISpodHRwOi8vd3d3LnJvYmxveC5jb20vYXNzZXQvP2lkPTUxNDkxNDIzMjUGj5mLAw'
	..'AAAAAAAD1AIQhEd2VlYm9pZAMAAGC3mi7zQSEGcGFzdGVsISpodHRwOi8vd3d3LnJvYmxveC5jb20vYXNzZXQvP2lkPTUxMTgxMjU3MjQG+/+/AwAAAAAAADpAIQZQYXN0ZWwDAACgD2gR80EhCWhlY2tsYW5kcyEXcmJ4YXNzZXRpZDovLzE2MDkwNzMyODgGIEFmIQlIZWNrbGFuZHMDAADgeIsC40EhKmh0dHA6Ly93d3cucm9ibG94'
	..'LmNvbS9hc3NldC8/aWQ9NTExODE3NDQxMwa+6PUDAAAAAAAAPEAhCUZsb3dlcmluZwMAANBsZxHzQSEDYmFkISpodHRwOi8vd3d3LnJvYmxveC5jb20vYXNzZXQvP2lkPTUxMTg2MTUwNTQGS8n/AwAAAAAAAD5AIQhCYWQgVGltZQMAALAv2xHzQQZ8/4EhBG5vb2IhKmh0dHA6Ly93d3cucm9ibG94LmNvbS9hc3NldC8/aWQ9NTExOT'
	..'AxNTg2NAakvUcDAAAAAAAAP0AhBE5vb2IDAACw6d8R80EhBGVnZ3khKmh0dHA6Ly93d3cucm9ibG94LmNvbS9hc3NldC8/aWQ9NTExOTA1NTY3NQbsSuUDAAAAAAAAQEAhB0VnZ3NoaXADAAAwWOkR80EhA2JlZSEqaHR0cDovL3d3dy5yb2Jsb3guY29tL2Fzc2V0Lz9pZD01MTE5MjI2Mjc0Bv/rbgMAAAAAAIBAQCEDQmVlAwAA4NMS'
	..'EvNBIQRnb29kIRdyYnhhc3NldGlkOi8vNTE0OTA1ODE2OAZtbW0DAAAAAAAAQUAhBEdvb2QDAADgcYYu80EhBWdyZXN0ISpodHRwOi8vd3d3LnJvYmxveC5jb20vYXNzZXQvP2lkPTUxNDkzNjMxODMGI8E8AwAAAAAAAENAIQ1HcmlsbGVkIEdyZXN0AwAA8AXPLvNBIQVsZW1vbiEqaHR0cDovL3d3dy5yb2Jsb3guY29tL2Fzc2V0Lz'
	..'9pZD01MTQ5MDk0NzEwBrb/AAMAAAAAAIBBQCEFTGVtb24DAACAE48u80EhA25lbyEqaHR0cDovL3d3dy5yb2Jsb3guY29tL2Fzc2V0Lz9pZD01MTQ5MTIwOTkyBlcAfwMAAAAAAABCQCELTmV3IE5lb2NpdHkDAACQhJQu80EhBnJvYmxveCEqaHR0cDovL3d3dy5yb2Jsb3guY29tL2Fzc2V0Lz9pZD01MTQ5MTc5MjU1BtArHgMAAAAA'
	..'AIBCQCEUUG93ZXJpbmcgSW1hZ2luYXRpb24DAAAA1aIu80EhBXRha2VuAwAAAAAAgENAIRwoeW91IGFscmVhZHkgaGF2ZSB0aGlzIHNraW4pAwAA0IJ+PvlBCgAAgD8AAAAAAAAAAAoAAAAAAACAPwAAAAAK1YoePwAAAACU/0g/CpT/SD8AAAAA1YoevwoBAIA/AAAAAAAAAAAKAAAAAAEAgD8AAAAACvQENT/0BDW/AAAAAAr0BDU/9A'
	..'Q1PwAAAAAKAACAPy69OzQovTu0Ci69O7QAAIA/AAAAAAryBDU/9AQ1PwAAAAAK9AQ1v/IENT8AAAAACnisarQAAIA/J707tAoAAIC/eKxqtJTeLZ4Kb9E2vc2+8j5gMoe9Cv//fz8AAIAxAAAAAAoAAIAx//9/PwAAAAAKQrN/P/R9QD2IQDy8Ci6GL72KOng/jYR2PgoZ1XU/NGVTPu05QD4KXbSOvj+ULT/LHC4/Ci1kfD8TvyS+byg8'
	..'vQoqBgU+7LloP+Cqyr4K3HDMPlpOdTzPrGq/CqKQoT7O5nC/7gX6PQpFE9i+lq8BPLwTaD8KaeInv38RMD8jYp++CqZXpb64/ea8Iy1yvwoeuzk/gm0iP+t8iL4KCdCuuX+wkD1GXH8/CmAIML5aj3u/HWuOPQoAAAAAnH1KPz8KV78KEPl/v0RYDTxABUA8Cs9ubrzYwBe/ciNOvwoLsXu/R2tFvQdzNL4KvxM7PhPQhL7xxXK/CqJ9uz'
	..'4aOg2/KNc/vwrPN24/s05ePib9lj4KAAAAANTtdr8NFoc+Co4rfr+H+wC9osXrvQoAAAAAUko0P9S+Nb8KAAAAAHCtfD92cSQ+CgAAAADJR34/aPrsPQpl/Zk+TAORvggup74K8BVmPwAAAAAUeOA+Cvjlhbxw0n8/qz8JPQqnXj8/ECYFvRjWKb8K69y8vhdwTz8gI+m+CuY8er5eOhG/z1JJPworBky/q1kUPwZ3Lj4KMoEQP9pQU7/m'
	..'pyq6CtdmBT+5IrY+npxGPwqiz3M/JvxSPnUhZj4KSNl1vtDoVj0uJng/CoDLXD1iLn6/iEHZvQr0NbK+vDDyvTYTbj8KHUBFvytoAb5M8R8/CszcEj+hXJQ+vR9EPwrfgCo//zJ/vt77Mz8KND0svqM6Xj/1Ie8+CoVdDD9Q9og/jfscvwrxynU/AIoRPXr5jb4KpA1SvgBxQz+JyBy/CmH6Tj7NeIO+4PFxvwpE7He/UcFIviGMHb4KC7'
	..'F7v15DKbwUxzq+CrYTO74kw2M950l7PwoXfBq+Pwt9P6RGaDwKQK54vwURFb4MDEC+CiXofL/2fCc9NBQZPgqguGA9tFTRPvc9Zr8KVryxvQvgfr9sDhA9CsErJr+7lKo9a5FBPwoHknW/v+yCvA1skL4KZtWPvlD2Iz5PP3I/Ck+Tdb9L5II8WmOQPgrMzI8+VvIjPsFAcj8KHJ6xvV7gfj8YDhC9Ci8sJj/ygKo9UZFBPwoAAAAALr07'
	..'swAAgL8KkrtmPwU2e733j9u+ClOa0j2d7n0/iRmYPQoWAIC/AAAAAAAAAAAKT2d9P6ZMEb578+I7Ct94ET4fFH0/c0ZNvQoAAAAAOHlzP7Aynj4KAAAAAKp0cD+Fsa8+CgAAAAA3kHA/aRqvPgoAAAAAl917P45KNz4KAACAvwAAAAAAAAAACgAAgL8AAAAALr27MwrJawCzso9wP0Qdr74KwogePwDABrg2AUk/CjYBST8AAIs4wYgevz'
	..'4CAQAAAAQAAgADAAQABQAGAAcACAAJAAoAAQAJAAsADAANAA4ADwAHABAAEQASABMAFAAVAAgAFgAXAAcAGAAZABoAAgADABsADgAcAB0AHgAfACAAAwAJAAsAIQACAAMAIgAZAAQAIwAUACQACAAlACYAHwAnACgAKQAqACAAAwAIAAsAKwACAAMAIgAZAAQAIwAUACwACAAtACYAHwAnAC4ALwADAA4ACwAwAAIAAwAiABkABAAjABQA'
	..'MQAIADIAJgAzADQANQA2ADcAOAADADkAOgA7AA4APAAHAD0ABwAvAAYADgALAD4AAgADACIAGQAEACMAFAA/AAgAQAAmAB8ANAA1ADYANwA4AAUAOQA6AEEAQgA7AA4APAAHAC8AAwAOAAsAQwACAAMAIgAZAAQAIwAUAEQACABFACYAMwA0ADUANgBGADgAAwA5ADoAOwAOADwAGQA9AAcALwAIAA4ACwA+AAIAAwAiABkABAAjABQAPw'
	..'AIAEAAJgAfADQANQA2AEYAOAAFADkAOgBBAEIAOwAOADwAGQBHAAMABgALAEgAAgBJACIAGQAEACMAFABKACYAMwBLAAEAAQALAEwATQALAAsACwBOAA0ADgAQAE8AEgATAFAAUQAUAFIAUwBUAAgAVQBWAFcAWABZAFoAWwBcAAwAAgALAF0AXgAZAFwADAACAAsAXwBeAGAATQALAAsACwBhAA0ADgAQAE8AEgATAFAAUQAUAFIAUwBU'
	..'AAgAVQBWAFcAWABZAFoAWwBcAA8AAQALAF0AXAAPAAIACwBfAF4AYgBjAAEACAALAGQAZQAZAFMAZgAIAGcAaABpAGoAawBsAG0AGABuAGMAAQAOAAsAbwBwAHEAcgBzAHQAEwB1AHYAdwB4AHkAGQB6AHsAUwB8AAgAfQBoAH4AagB/AGwAgAAYAIEAggABAAIACwCDAIUAhgAKABQACgALAIcADQAOAA8ABwAQAIgAEgATAFAAiQBTAI'
	..'kACACKABcABwAYABkAiwAVAAMACwCMABAAjQBQAI4AiwAVAAMAEACPAFAAkAAUAJEAkgAXAAYAcgCVAJYAlwB3ABkAGACYAJkAlwCaAAcAiwAVAAMAEACbAFAAnAAUAJ0AkgAZAAYAcgCVAJYAlwB3ABkAGACYAJkAlwCaAAcAiwAVAAMAEACeAFAAkAAUAJ8AkgAbAAYAcgCVAJYAoAB3ABkAGACYAJkAlwCaAAcAiwAVAAMAEAChAFAA'
	..'nAAUAKIAkgAdAAYAcgCVAJYAoAB3ABkAGACYAJkAlwCaAAcAiwAVAAMACwCjABAApABQAKUACgAUAAgACwCmAA0ADgAPAAcAEACGABIAEwAIAIoAFwAHABgAGQCLACAAAwALAIwAEACNAFAAjgCLACAAAwAQAI8AUACQABQAkQCSACIABgByAJUAlgCXAHcAGQAYAJgAmQCXAJoABwCLACAAAwAQAJsAUACcABQAnQCSACQABgByAJUAlg'
	..'CXAHcAGQAYAJgAmQCXAJoABwCLACAAAwAQAJ4AUACQABQAnwCSACYABgByAJUAlgCgAHcAGQAYAJgAmQCXAJoABwCLACAAAwAQAKEAUACcABQAogCSACgABgByAJUAlgCgAHcAGQAYAJgAmQCXAJoABwCLACAAAwALAKMAEACkAFAApQCCAAEAAgALAKcAhQCoAAoAKwAGAAsAqQANAA4AEACqABIAEwCrAKwACACtAK4ALAAEAK8AsABW'
	..'ALEAsgCzALQAtQAKACsACwALALYADQAOALcAuAAQALkAEgATAHIAugCrAKwAUAC7ABQAvABTAL0ACAC+AK4ALgADAK8AvwBWAMAAtAC1AMEALgABAGwAwgAKACsACQALAMMADQAOABAAxAASABMAqwCsAFAAxQAUAMYAUwDHAAgAyACuADEABACvAMkAVgDKALIAswC0ALUACgArAAkACwDLAA0ADgAQAMwAEgATAKsArABQAM0AFADOAF'
	..'MAzwAIAMgArgAzAAQArwDJAFYAygCyALMAtAC1AAoAKwALAAsA0AANAA4AtwC4ABAA0QASABMAcgC6AKsArABQANIAFADTAFMA1AAIANUArgA1AAIAVgDWALQAtQAKACsACQALANcADQAOABAA2AASABMAqwCsAFAA2QAUANoAUwDbAAgA3ACuADcABACvAN0AVgDeALIAswC0ALUACgArAAkACwDfAA0ADgAQAOAAEgATAKsArABQAOEA'
	..'FADiAFMA4wAIANwArgA5AAQArwDdAFYA3gCyALMAtAC1AAoAKwALAAsA5AANAA4AtwC4ABAA5QASABMAcgC6AKsArABQAOYAFADnAFMA6AAIANUArgA7AAIAVgDWALQAtQCCAAEAAgALAOkAhQDqAE0APQANAAsA3wANAA4AEADrABIAEwCrAKwAUADsABQA7QBTAOwACADuABcAMwBWAO8AWADwAFoAWwBNAD0ADQALANcADQAOABAA8Q'
	..'ASABMAqwCsAFAA8gAUAPMAUwD0AAgA7gAXADMAVgDvAFgA8ABaAFsATQA9AA0ACwDkAA0ADgAQAPUAEgATAKsArABQAPYAFAD3AFMA9gAIAO4AFwAzAFYA+ABYAPkAWgBbAE0APQANAAsA0AANAA4AEAD6ABIAEwCrAKwAUAD7ABQA/ABTAP0ACADuABcAMwBWAPgAWAD5AFoAWwBNAD0ADwALALYADQAOALcAuAAQAP4AEgATAHIAugCr'
	..'AKwAUAD/ABQAAAFTAP8ACAABARcAMwAYABkAVgACAVgAAwHBAEIAAwAeAB8ABAG6AGwABQHBAEIAAwAeADUABAG6AGwABgHBAEIAAwAeAAcABAG6AGwABgHBAEIAAwALAAcBBAG6AGwACAHBAEIAAwAeABkABAG6AGwABgHBAEIAAwAeADMABAG6AGwABgFNAD0ADQALAMMADQAOABAACQESABMAqwCsAFAACgEUAAsBUwAKAQgADAEXAD'
	..'MAVgANAVgADgFaAFsATQA9AA0ACwDLAA0ADgAQAA8BEgATAKsArABQABABFAARAVMAEAEIAAwBFwAzAFYADQFYABIBWgBbAE0APQAJAAsAqQANAA4AEgATAKsArAAIABMBFwAzAFYAFAFYABUBWgBbABYBSwADAAsAFwEYARkBGgEZABsBTAACAAsAHAFeAB0BFgFLAAMACwAeARgBHwEaARkAFgFLAAMACwAgARgBIQEaARkAFgFLAAMA'
	..'CwAiARgBIwEaARkAGwFQAAIACwAcAV4AJAEWAUsAAwALACUBGAEmARoBGQAWAUsAAwALACcBGAEoARoBGQAWAUsAAwALACkBGAEqARoBGQAWAUsAAwALACsBGAEsARoBGQAWAUsAAwALAC0BGAEuARoBGQAWAUsAAwALAC8BGAEwARoBGQAWAUsAAwALADEBGAEyARoBGQAWAUsAAwALADMBGAE0ARoBGQAWAUsAAwALADUBGAE2ARoBGQ'
	..'AWAUsAAwALADcBGAE4ARoBGQAWAUsAAwALADkBGAE6ARoBGQAWAUsAAwALADsBGAE8ARoBGQAWAUsAAwALAD0BGAE+ARoBGQAWAUsABAALAD8BQAEOABgBQQEaAQcAFgFLAAMACwBCARgBQwEaARkAFgFLAAMACwBEARgBRQEaAUIAGwFhAAIACwAcAV4AJAEWAUsAAwALAEYBGAFHARoBGQAWAUsAAwALACsAGAFIARoBGQAbAWQAAgAL'
	..'ABwBXgAkAYIAAQACAAsASQGFAEoBTQBmAA0ACwDfAA0ADgAQAEsBEgATAKsArABQAEwBFABNAVMATgEIAO4AFwAzAFYA7wBYAPAAWgBbAE0AZgANAAsA5AANAA4AEABPARIAEwCrAKwAUABQARQAUQFTAFIBCADuABcAMwBWAPgAWAD5AFoAWwBNAGYADQALAMMADQAOABAAUwESABMAqwCsAFAAVAEUAFUBUwBWAQgADAEXADMAVgANAV'
	..'gADgFaAFsATQBmAA0ACwDLAA0ADgAQAFcBEgATAKsArABQAFgBFABZAVMAWgEIAAwBFwAzAFYADQFYABIBWgBbAE0AZgANAAsA0AANAA4AEABbARIAEwCrAKwAUABcARQAXQFTAF4BCADuABcAMwBWAPgAWAD5AFoAWwBNAGYADQALANcADQAOABAAXwESABMAqwCsAFAAYAEUAGEBUwBiAQgA7gAXADMAVgDvAFgA8ABaAFsATQBmAA0A'
	..'CwCpAA0ADgAQAGMBEgATAKsArABQAGQBFABlAVMAZgEIABMBFwAzAFYAFAFYABUBWgBbAE0AZgAPAAsAtgANAA4AtwC4ABAAZwESABMAcgC6AKsArABQAGgBFABpAVMAagEIAAEBFwAzABgAGQBWAAIBWAADAcEAbgADAB4AHwAEAboAbAAFAcEAbgADAB4ANQAEAboAbAAGAcEAbgADAB4AMwAEAboAbAAGAcEAbgADAB4ABwAEAboAbA'
	..'AGAcEAbgADAAsABwEEAboAbAAIAcEAbgADAB4AGQAEAboAbAAGAYIAAQACAAsAawGFAGwBTQB1AA0ACwDfAA0ADgAQAG0BEgATAKsArABQAG4BFABvAVMAcAEIAO4AFwAzAFYA7wBYAPAAWgBbAE0AdQANAAsA1wANAA4AEABxARIAEwCrAKwAUAByARQAcwFTAHQBCADuABcAMwBWAO8AWADwAFoAWwBNAHUADQALAOQADQAOABAAdQES'
	..'ABMAqwCsAFAAdgEUAHcBUwB4AQgA7gAXADMAVgD4AFgA+QBaAFsATQB1AA0ACwDQAA0ADgAQAHkBEgATAKsArABQAHoBFAB7AVMAfAEIAO4AFwAzAFYA+ABYAPkAWgBbAE0AdQAPAAsAtgANAA4AtwC4ABAAfQESABMAcgC6AKsArABQAH4BFAB/AVMAgAEIAAEBFwAzABgAGQBWAAIBWAADAcEAegADAB4AHwAEAboAbAAFAcEAegADAB'
	..'4ANQAEAboAbAAGAcEAegADAB4ABwAEAboAbAAGAcEAegADAAsABwEEAboAbAAIAcEAegADAB4AGQAEAboAbAAGAcEAegADAB4AMwAEAboAbAAGAYIAAQACAAsAgQGFAIIBTQCBAA0ACwDfAA0ADgAQAIMBEgATAKsArABQAIQBFACFAVMAhgEIAO4AFwAzAFYA7wBYAPAAWgBbAE0AgQANAAsA1wANAA4AEACHARIAEwCrAKwAUACIARQA'
	..'iQFTAIoBCADuABcAMwBWAO8AWADwAFoAWwBNAIEADQALAOQADQAOABAAiwESABMAqwCsAFAAjAEUAI0BUwCOAQgA7gAXADMAVgD4AFgA+QBaAFsATQCBAA0ACwDQAA0ADgAQAI8BEgATAKsArABQAJABFACRAVMAkgEIAO4AFwAzAFYA+ABYAPkAWgBbAE0AAQALAAsAkwENAA4AEACUARIAEwCrAJUBFACWAQgAlwEXADMAVgCYAVgAmQ'
	..'FaAJoBiwCGAAEACwCbAWMAhwAJAAsAnAF0ABMAdQCdAXcAGQCeARkACACfAWgAoAFsAKEBGACiAaMBhgABAAsApAFNAAEADAALAKUBDQAOABAApgESABMAqwCnAVAAqAEUAKkBUwCoAQgAqgFWAKsBWACsAVoArQFNAAEACgALAK4BDQAOABAArwESABMAqwCwARQAsQEIALIBVgCzAVgAtAFaALUBiwCLAAEACwCbAWMAjAAJAAsAnAF0'
	..'ABMAdQCdAXcAGQCeARkACACfAWgAoAFsAKEBGACiAaMBiwABAAsApAFNAAEACwALALYBDQAOABAAtwESABMAUAC4ARQAuQFTALoBCAC7AVYAvAFYAL0BWgC+AU0AAQAMAAsAvwENAA4AtwDAARAAwQESABMAcgADAKsAwgEUAMMBCADEARgAQgBWAMUBWADGAYsAkAABAAsAmwFjAJEACQALAJwBdAATAHUAnQF3ABkAngEZAAgAnwFoAK'
	..'ABbAChARgAogGjAZAAAQALAKQBTQABAAoACwDHAQ0ADgAQAMgBEgATAKsAyQEUAMoBCADLAVYAzAFYAM0BWgDOAc8BlAACAAsA0AFeANEBXACUAAEACwBdAIsAlAABAAsAmwFjAJcACAALANIBdQDTAdQBDgCeAbUACADVAWgAoAFsAKEBGACiAWMAlwALAAsA1gF1ANMBdwB4ANQBDgB6ANcBUwB8AAgA2AFoAKABbADZARgAogHaAdsB'
	..'owGUAAEACwCkAU0AAQALAAsA3AENAA4AEADdAasA3gFQAN8BFADgAVMA4QEIAOIBVgDjAVgA5AFaAOUBTQABAAwACwDmAQ0ADgC3AOcBEADoARIAEwByAOkBqwCVARQA6gEIAMsBGAAkAVYAzAFYAM0BzwGcAAIACwDQAV4A0QFcAJwAAQALAF0AowGcAAEACwCkAYsAnAABAAsAmwFjAKAACQALANIBdQDTAdQBDgCeAR8ACADVAWgAoA'
	..'FsAKEBGACiAdoB2wFNAAEACwALAOsBDQAOALcA7AEQAO0BEgATAHIA7gGrAMIBFADvAQgA8AFWAPEBWADyAVwAogACAAsA6wFeABkAowGiAAEACwCkAVwAogACAAsA8wFeABkATQABAAcACwD0ARAA9QEUAPYBCAD3AVYA+AFYAPkBWgD6AQoAAQAKAAsA+wENAA4ADwAHABAA/AESABMAqwD9ARQA/gEIAP8BFwAHABgAGQDPAacAAgAL'
	..'AAACXgABAqMBpwACAAsAAgJeAAMCCgABAAkACwAEAg0ADgAPAAcAtwDAARAABQISABMAcgADABQABgIIAIoAowGqAAEACwAHAqMBqgABAAsACAKuAKoAAwBWAAkCsgAKArQAtQAbAaoAAgALAAsCXgAZAAoAAQAIAAsADAINAA4ADwAHABAADQISABMAFAAOAggA/wEXAAcACgABAAgACwAPAg0ADgAPAAcAEAAQAhIAEwAUABECCACKAB'
	..'cABwCuALAABACvABICVgCrAbIAEwK0ALUACgABAAkACwCcAQ0ADgAPAAcAEADBARIAEwAUAMMBCAAUAhcABwAVAgcArgCyAAQArwAWAlYAxQGyABcCtAC1AIsAsgABAAsAmwFjALQACQALAJwBdAATAHUAnQF3ABkAngEZAAgAnwFoAKABbAChARgAogGjAbIAAQALAKQBCgABAAkACwAYAg0ADgAPAAcAEAAZAhoCGwIUABwCCAAdAhgA'
	..'GQAVAgcAiwC3AAEACwAeAh8CtwADACACDgAhAiICIwIfACQCtwACACUCJgInAigCCgABAAkACwApAg0ADgAPAAcAtwDAARAABQISABMAcgADABQABgIIAIoArgC7AAMArwAqAlYAKwK0ALUAowG7AAEACwAHAqMBuwABAAsACAIbAbsAAgALAAsCXgAZAAoAAQAKAAsALAINAA4ADwAHABAALQISABMAUAAuAhQALwJTADACCAD/ARcABw'
	..'AKAAEACgALADECDwAHABAAMgIzAjMAGgI0AhQANQIIAB0CFwAHABgAGQAVAgcAiwDBAAAANgLBAAIACwA3AiECIgJLAAEAAQALADgCTQDEAAoACwA5Ag0ADgAQADoCEgATAKsAOwIUADwCCAA9AlYAPgJYAD8CWgBAAosAxQAEAAsAQQIQAEICUABDAhQARALPAcUAAgALANABXgBFAs8BxQACAAsARgJeAEcCXADFAAIACwBIAl4ASQJL'
	..'AMUAAQALAEoCXADFAAIACwBfAF4ASwJcAMUAAgALAF0AXgAzAE0AxAAKAAsATAINAA4AEABNAhIAEwCrAE4CFABPAggAUAJWAFECWABSAloAUwLPAc0AAgALANABXgBUAs8BzQACAAsARgJeAFUCiwDNAAMACwBBAhAAVgIUAFcCXADNAAIACwBIAl4AOgBLAM0AAQALAEoCXADNAAIACwBfAF4AWAJcAM0AAgALAF0AXgA1AE0AxAAJAA'
	..'sAWQINAA4AEABaAhIAEwAUAFsCCABcAlYAXQJYAF4CWgBfAs8B1QACAAsA0AFeAGACzwHVAAIACwBGAl4AYQJcANUAAgALAEgCXgBJAosA1QADAAsAQQIQAGICFABjAksA1QABAAsASgJcANUAAgALAF8AXgBkAlwA1QACAAsAXQBeAB8ATQDEAAkACwBlAg0ADgAQAGYCEgATABQAZwIIAGgCVgBpAlgAagJaAGsCiwDdAAMACwBBAhAA'
	..'bAIUAG0CzwHdAAIACwDQAV4AbgLPAd0AAgALAEYCXgBvAlwA3QACAAsASAJeAE4CXADdAAIACwBfAF4AcAJcAN0AAgALAF0AXgC1AE0AxAAMAAsAcQINAA4AEAByAhIAEwCrAE4CUABzAhQAdAJTAHMCCAB1AlYAdgJYAHcCWgC1Ac8B5AACAAsA0AFeAHgCzwHkAAIACwBGAl4AeQKLAOQABAALAEECEAB6AlAAewIUAHwCXADkAAIACw'
	..'BIAl4AfQJLAOQAAQALAEoCXADkAAIACwBfAF4AfgJcAOQAAgALAF0AXgB/Ak0AxAAJAAsAQwANAA4AEACAAhIAEwAUAIECCACCAlYAgwJYAIQCWgCFAksA7AABAAsASgLPAewAAgALANABXgCGAs8B7AACAAsARgJeAIcCiwDsAAMACwBBAhAAiAIUAIkCXADsAAIACwBIAl4AigJLAOwAAQALAIsCXADsAAIACwBfAF4AjAJcAOwAAgAL'
	..'AF0AXgAZAE0AxAAKAAsAjQINAA4AEACOAhIAEwCrAE4CFACPAggAkAJWAJECWACSAloAkwLPAfUAAgALANABXgCUAs8B9QACAAsARgJeAJUCiwD1AAMACwBBAhAAlgIUAJcCXAD1AAIACwBIAl4AfQJLAPUAAQALAEoCXAD1AAIACwBfAF4AmAJcAPUAAgALAF0AXgCZAk0AxAAMAAsAmgINAA4AEACbAhIAEwCrAJwCUACdAhQAngJTAJ'
	..'0CCACfAlYAoAJYAKECWgCiAksA/QABAAsASgJcAP0AAgALAF8AXgCjAs8B/QACAAsA0AFeAKQCzwH9AAIACwBGAl4ApAJcAP0AAgALAF0AXgClAosA/QAEAAsAQQIQAKYCUACnAhQAqAJcAP0AAgALAEgCXgCpAk0AxAAKAAsAqgINAA4AEACrAhIAEwCrAE4CFACsAggArQJWAK4CWACtAloArwLPAQUBAQALANABzwEFAQIACwBGAl4A'
	..'sAKLAAUBAwALAEECEACxAhQAsgJcAAUBAgALAEgCXgCpAlwABQECAAsAXwBeALMCXAAFAQIACwBdAF4AtAJNAMQACgALALUCDQAOABAAtgISABMAqwBOAhQAtwIIALgCVgC5AlgAuAJaALoCzwEMAQEACwDQAc8BDAECAAsARgJeALsCiwAMAQMACwBBAhAAvAIUAL0CXAAMAQIACwBIAl4AqQJLAAwBAQALAEoCXAAMAQIACwBfAF4Avg'
	..'JcAAwBAgALAF0AXgCXAE0AxAALAAsAvwINAA4AtwDAAhAAwQISABMAcgDCAqsAlQEUAMMCCADEAlYAxQJYAMQCzwEUAQEACwDQAc8BFAECAAsARgJeAMYCiwAUAQMACwBBAhAAxwIUAMgCXAAUAQIACwBIAl4AqQJLABQBAQALAEoCXAAUAQIACwBfAF4AyQJcABQBAgALAF0AXgDKAk0AxAAKAAsAywINAA4AEADMAhIAEwCrAE4CFADN'
	..'AggAzgJWAM8CWADOAloAhQLPARwBAQALANABzwEcAQIACwBGAl4A0AKLABwBAwALAEECEADRAhQA0gJcABwBAgALAEgCXgCpAksAHAEBAAsASgJcABwBAgALAF8AXgDTAlwAHAECAAsAXQBeANQCSwAcAQEACwCLAk0AxAALAAsA1QINAA4AtwDWAhAA1wISABMAcgDYAqsAlQEUANkCCADaAlYA2wJYANoCzwElAQEACwDQAc8BJQECAA'
	..'sARgJeANwCiwAlAQMACwBBAhAA3QIUAN4CXAAlAQIACwBIAl4AqQJcACUBAgALAF8AXgDfAlwAJQECAAsAXQBeAOACTQDEAAwACwDhAg0ADgC3AOICEADjAhIAEwByAOQCqwCsABQA5QIIAOYCVgDnAlgA5gJaAEACzwEsAQEACwDQAc8BLAECAAsARgJeAOgCiwAsAQMACwBBAhAA6QIUAOoCXAAsAQIACwBIAl4AqQJcACwBAgALAF8A'
	..'XgDrAlwALAECAAsAXQBeAOwCTQDEAAsACwDtAg0ADgC3AO4CEADvAhIAEwByAPACqwCVARQA8QIIAPICVgDzAlgA8gLPATMBAQALANABzwEzAQIACwBGAl4A9AKLADMBAwALAEECEAD1AhQA9gJcADMBAgALAEgCXgCpAlwAMwECAAsAXwBeAPcCXAAzAQIACwBdAF4A+AJNAMQACgALAPkCDQAOABAA+gISABMAqwBOAhQA+wIIAPwCVg'
	..'D9AlgA/AJaAP4CzwE6AQEACwDQAc8BOgECAAsARgJeAP8CiwA6AQMACwBBAhAAAAMUAAEDXAA6AQIACwBIAl4AqQJcADoBAgALAF8AXgACA1wAOgECAAsAXQBeAAMDTQDEAAsACwAEAw0ADgC3AAUDEAAGAxIAEwByAAcDqwCVARQACAMIAAkDVgAKA1gACQPPAUEBAgALANABXgALA88BQQECAAsARgJeAAwDiwBBAQMACwBBAhAADQMU'
	..'AA4DXABBAQIACwBIAl4AqQJcAEEBAgALAF8AXgAPA1wAQQECAAsAXQBeABADTQDEAAoACwARAw0ADgAQABIDEgATAKsATgIUABMDCAAUA1YAFQNYABYDWgAXA0sASAEBAAsASgJcAEgBAgALAF8AXgAYA88BSAECAAsA0AFeABkDzwFIAQIACwBGAl4AGgNcAEgBAgALAF0AXgAbA4sASAEDAAsAQQIQABwDFAAdA1wASAECAAsASAJeAE'
	..'kCTQDEAAoACwAeAw0ADgAQAB8DEgATAKsArAAUACADCAAhA1YAIgNYACEDWgAjA88BUAECAAsA0AFeACQDzwFQAQIACwBGAl4AJQNcAFABAgALAF8AXgAmA1wAUAECAAsAXQBeACcDiwBQAQMACwBBAhAAKAMUACkDXABQAQIACwBIAl4AqQJNAMQADAALACoDDQAOABAAKwMSABMAqwCcAlAAnQIUACwDUwCdAggAHQJWAC0DWAAuA1oA'
	..'LwNLAFcBAQALAEoCXABXAQIACwBfAF4AMAPPAVcBAgALANABXgAxA88BVwECAAsARgJeADIDXABXAQIACwBdAF4AMwOLAFcBAwALAEECEAA0A1AApwJcAFcBAgALAEgCXgCpAk0AxAAJAAsANQMNAA4AEAA2AxIAEwAUADcDCAA4A1YAOQNYADgDWgA6A4sAXwEDAAsAQQIQADsDFAA8A88BXwECAAsA0AFeAD0DzwFfAQIACwBGAl4APg'
	..'NcAF8BAgALAEgCXgBOAlwAXwECAAsAXwBeAD8DXABfAQIACwBdAF4AQANNAMQACQALAEEDDQAOABAAgAISABMAFACBAggAggJWAIMCWACEAloAhQJLAGYBAQALAEoCzwFmAQIACwDQAV4AhgLPAWYBAgALAEYCXgCHAosAZgEDAAsAQQIQAIgCFACJAlwAZgECAAsASAJeAIoCSwBmAQEACwCLAlwAZgECAAsAXwBeAIwCXABmAQEACwBd'
	..'AE0AxAALAAsAQgMNAA4AEABDAxIAEwBQAN8BFABEA1MA4QEIAEUDVgBGA1gARwNaAEgDzwFvAQIACwDQAV4ASQPPAW8BAgALAEYCXgBKA4sAbwEEAAsAQQIQAEsDUABMAxQATQNcAG8BAgALAEgCXgCKAlwAbwECAAsAXwBeAE4DXABvAQIACwBdAF4ATwNLAAEAAQALAFADTQB2AQsACwBRAw0ADgAQAFIDEgATAFAAUwMUAFIAUwBUAw'
	..'gAVQBWAFcAWABZAFoAVQNWA3cBAgALAEoCXgBXA1wAdwECAAsAXQBeAAMDzwF3AQIACwCLAl4AWANcAHcBAgALAF8AXgBZA00AdgELAAsAWgMNAA4AEABSAxIAEwBQAFMDFABSAFMAVAMIAFUAVgBXAFgAWQBaAFsDVgN8AQIACwBKAl4AXANcAHwBAgALAF0AXgAfAM8BfAECAAsAiwJeAF0DXAB8AQIACwBfAF4AXgNNAHYBCwALAF8D'
	..'DQAOABAAUgMSABMAUABTAxQAUgBTAFQDCABVAFYAVwBYAFkAWgBgA1YDgQECAAsASgJeAGEDXACBAQIACwBdAF4AMwDPAYEBAgALAIsCXgBiA1wAgQECAAsAXwBeAGMDTQB2AQsACwBkAw0ADgAQAFIDEgATAFAAUwMUAFIAUwBUAwgAVQBWAFcAWABZAFoAZQNWA4YBAgALAEoCXgBmA1wAhgECAAsAXQBeADUAzwGGAQIACwCLAl4AZw'
	..'NcAIYBAgALAF8AXgBoA00AdgELAAsAaQMNAA4AEABSAxIAEwBQAFMDFABSAFMAVAMIAFUAVgBXAFgAWQBaAFsAVgOLAQIACwBKAl4A7gFcAIsBAQALAF0AzwGLAQIACwCLAl4AagNcAIsBAgALAF8AXgBrA00AdgELAAsAbAMNAA4AEABSAxIAEwBQAFMDFABSAFMAVAMIAFUAVgBXAFgAWQBaAG0DVgOQAQIACwBKAl4AbgNcAJABAgAL'
	..'AF0AXgC1AM8BkAECAAsAiwJeAG8DXACQAQIACwBfAF4AcANNAHYBCwALAHEDDQAOABAAUgMSABMAUABTAxQAUgBTAFQDCABVAFYAVwBYAFkAWgByA1YDlQECAAsASgJeAHMDXACVAQIACwBdAF4AGwPPAZUBAgALAIsCXgB0A1wAlQECAAsAXwBeAHUDTQB2AQ0ACwB2Aw0ADgC3AHcDEABSAxIAEwByAHgDUABTAxQAUgBTAFQDCABVAF'
	..'YAVwBYAFkAWgB5A1YDmgECAAsASgJeAHgDXACaAQIACwBdAF4AegPPAZoBAgALAIsCXgB7A1wAmgECAAsAXwBeAHwDTQB2AQsACwCcAQ0ADgAQAFIDEgATAFAAUwMUAFIAUwBUAwgAVQBWAFcAWABZAFoAfQNWA58BAgALAEoCXgADAFwAnwECAAsAXQBeAJkCzwGfAQIACwCLAl4AfgNcAJ8BAgALAF8AXgB/A00AdgELAAsAgAMNAA4A'
	..'EABSAxIAEwBQAFMDFABSAFMAVAMIAFUAVgBXAFgAWQBaAIEDVgOkAQIACwBKAl4A7gFcAKQBAgALAF0AXgC0As8BpAECAAsAiwJeAIIDXACkAQIACwBfAF4AgwNNAHYBCwALAIQDDQAOABAAUgMSABMAUABTAxQAUgBTAFQDCABVAFYAVwBYAFkAWgCFA1YDqQECAAsASgJeAIYDXACpAQIACwBdAF4AlwDPAakBAgALAIsCXgCHA1wAqQ'
	..'ECAAsAXwBeAIgDTQB2AQsACwCJAw0ADgAQAFIDEgATAFAAUwMUAFIAigMZAFMAVAMIAFUAVgBXAFgAWQBWA64BAgALAEoCXgADAFwArgECAAsAXQBeAPgCzwGuAQIACwCLAl4AiwNcAK4BAgALAF8AXgCMA00AdgELAAsAjQMNAA4AEABSAxIAEwBQAFMDFABSAFMAVAMIAFUAVgBXAFgAWQBaAI4DVgOzAQIACwBKAl4AjwNcALMBAgAL'
	..'AF0AXgDUAs8BswECAAsAiwJeAJADXACzAQIACwBfAF4AkQNNAHYBCwALAJIDDQAOABAAUgMSABMAUABTAxQAUgBTAFQDCABVAFYAVwBYAFkAWgCTA1YDuAECAAsASgJeAJQDXAC4AQIACwBdAF4A4ALPAbgBAgALAIsCXgCVA1wAuAECAAsAXwBeAJYDTQB2AQsACwCXAw0ADgAQAFIDEgATAFAAUwMUAFIAUwBUAwgAVQBWAFcAWABZAF'
	..'oAmANWA70BAgALAEoCXgCZA1wAvQECAAsAXQBeAOwCzwG9AQIACwCLAl4AmgNcAL0BAgALAF8AXgCbA00AdgEKAAsAnAMNAA4AEABSAxIAEwBQAFMDFABSAFMAVAMIAFUAVgBXAFgAWQBWA8IBAgALAEoCXgCdA1wAwgECAAsAXQBeAMoCzwHCAQIACwCLAl4AiwNcAMIBAgALAF8AXgCeA00AdgELAAsAnwMNAA4AEABSAxIAEwBQAFMD'
	..'FABSAFMAVAMIAFUAVgBXAFgAWQBaAKADVgPHAQIACwBKAl4AoQNcAMcBAgALAF0AXgAQA88BxwECAAsAiwJeAKIDXADHAQIACwBfAF4AowNNAHYBCwALAKQDDQAOABAAUgMSABMAUABTAxQAUgBTAFQDCABVAFYAVwBYAFkAWgClA1YDzAECAAsASgJeAKYDXADMAQIACwBdAF4ApQJcAMwBAgALAF8AXgCnA88BzAECAAsAiwJeAKgDTQ'
	..'B2AQsACwCpAw0ADgAQAFIDEgATAFAAUwMUAFIAUwBUAwgAVQBWAFcAWABZAFoAqgNWA9EBAQALAEoCXADRAQIACwBdAF4AJwPPAdEBAgALAIsCXgCrA1wA0QECAAsAXwBeAKwDTQB2AQsACwCtAw0ADgAQAFIDEgATAFAAUwMUAFIAUwBUAwgAVQBWAFcAWABZAFoArgNWA9YBAgALAEoCXgCvA1wA1gECAAsAXQBeALADzwHWAQIACwCL'
	..'Al4AsQNcANYBAgALAF8AXgCyA00AdgELAAsAswMNAA4AEABSAxIAEwBQAFMDFABSAFMAVAMIAFUAVgBXAFgAWQBaALQDVgPbAQIACwBKAl4AtQNcANsBAgALAF0AXgAzA88B2wECAAsAiwJeALYDXADbAQIACwBfAF4AtwNNAHYBCwALALgDDQAOABAAUgMSABMAUABTAxQAUgBTAFQDCABVAFYAVwBYAFkAWgC5A1YD4AECAAsASgJeAL'
	..'oDXADgAQIACwBdAF4AQAPPAeABAgALAIsCXgC7A1wA4AECAAsAXwBeALwDTQB2AQsACwC9Aw0ADgAQAFIDEgATAFAAUwMUAFIAUwBUAwgAVQBWAFcAWABZAFoAvgNWA+UBAgALAEoCXgC/A1wA5QECAAsAXQBeAE8DzwHlAQIACwCLAl4AwANcAOUBAgALAF8AXgDBA00AdgELAAsAQQINAA4AEABSAxIAEwBQAFMDFABSAFMAVAMIAFUA'
	..'VgBXAFgAWQBaAMIDVgPqAQIACwBKAl4AwwNcAOoBAgALAF0AXgDEA88B6gECAAsAiwJeAMUDXADqAQIACwBfAF4AxgNNAHYBCwALAMcDDQAOABAAUgMSABMAUABTAxQAUgBTAFQDCABVAFYAVwBYAFkAWgDIA1YD7wECAAsASgJeAMkDXADvAQIACwBdAF4AygPPAe8BAgALAIsCXgDLA1wA7wECAAsAXwBeAMwDTQB2AQsACwDNAw0ADg'
	..'AQAFIDEgATAFAAUwMUAFIAUwBUAwgAVQBWAFcAWABZAFoAzgNWA/QBAgALAEoCXgDPA1wA9AECAAsAXQBeANADzwH0AQIACwCLAl4A0QNcAPQBAgALAF8AXgDSA00AdgELAAsA0wMNAA4AEABSAxIAEwBQAFMDFABSAFMAVAMIAFUAVgBXAFgAWQBaANQDVgP5AQIACwBKAl4A1QNcAPkBAgALAF0AXgDWA88B+QECAAsAiwJeANcDXAD5'
	..'AQIACwBfAF4A2ANNAHYBCwALANkDDQAOABAAUgMSABMAUABTAxQAUgBTAFQDCABVAFYAVwBYAFkAWgDaA1YD/gECAAsASgJeANsDXAD+AQIACwBdAF4AfwLPAf4BAgALAIsCXgDcA1wA/gECAAsAXwBeAN0DTQB2AQ0ACwC2AQ0ADgC3AHcDEABSAxIAEwByAHgDUABTAxQAUgBTAFQDCABVAFYAVwBYAFkAWgDeA1YDAwICAAsASgJeAN'
	..'8DXAADAgIACwBdAF4A4APPAQMCAgALAIsCXgDhA1wAAwICAAsAXwBeAOIDTQB2AQsACwDjAw0ADgAQAFIDEgATAFAAUwMUAFIAUwBUAwgAVQBWAFcAWABZAFoA5ANWAwgCAgALAEoCXgDlA1wACAICAAsAXQBeAOYDzwEIAgIACwCLAl4A5wNcAAgCAgALAF8AXgDoA00AdgELAAsAYQANAA4AEABSAxIAEwBQAFMDFABSAFMAVAMIAFUA'
	..'VgBXAFgAWQBaAFsAVgMNAgIACwBKAl4A6QNcAA0CAgALAF0AXgAZAM8BDQICAAsAiwJeAGoDXAANAgIACwBfAF4AawNNAHYBCwALAOoDDQAOABAAUgMSABMAUABTAxQAUgBTAFQDCABVAFYAVwBYAFkAWgDrA1YDEgICAAsASgJeAOwDXAASAgIACwBdAF4A7QPPARICAgALAIsCXgDuA1wAEgICAAsAXwBeAO8DTQB2AQsACwDwAw0ADg'
	..'AQAFIDEgATAFAAUwMUAFIAUwBUAwgAVQBWAFcAWABZAFoA8QNWAxcCAgALAEoCXgDyA1wAFwICAAsAXQBeAPMDzwEXAgIACwCLAl4A9ANcABcCAgALAF8AXgD1A00AdgELAAsA9gMNAA4AEABSAxIAEwBQAFMDFABSAFMAVAMIAFUAVgBXAFgAWQBaAPcDVgMcAgIACwBKAl4A+ANcABwCAgALAF0AXgD5A88BHAICAAsAiwJeAPoDXAAc'
	..'AgIACwBfAF4A+wNNAHYBCwALAPwDDQAOABAAUgMSABMAUABTAxQAUgBTAFQDCABVAFYAVwBYAFkAWgD9A1YDIQICAAsASgJeAP4DXAAhAgIACwBdAF4A/wPPASECAgALAIsCXgAABFwAIQICAAsAXwBeAAEETQB2AQsACwACBA0ADgAQAFIDEgATAFAAUwMUAFIAUwBUAwgAVQBWAFcAWABZAFoAAwRWAyYCAgALAEoCXgAEBFwAJgICAA'
	..'sAXQBeAAUEzwEmAgIACwCLAl4ABgRcACYCAgALAF8AXgAHBE0AdgELAAsACAQNAA4AEABSAxIAEwBQAFMDFABSAFMAVAMIAFUAVgBXAFgAWQBaAAkEVgMrAgIACwBKAl4ACgRcACsCAgALAF0AXgALBM8BKwICAAsAiwJeAAwEXAArAgIACwBfAF4ADQRNAHYBCwALAA4EDQAOABAAUgMSABMAUABTAxQAUgBTAFQDCABVAFYAVwBYAFkA'
	..'WgAPBFYDMAICAAsASgJeABAEXAAwAgIACwBdAF4AEQTPATACAgALAIsCXgASBFwAMAICAAsAXwBeABMETQB2AQsACwAUBA0ADgAQAFIDEgATAFAAUwMUAFIAUwBUAwgAVQBWAFcAWABZAFoAFQRWAzUCAgALAEoCXgAWBFwANQICAAsAXQBeABcEzwE1AgIACwCLAl4AGARcADUCAgALAF8AXgAZBE0AdgENAAsAGgQNAA4AtwDnARAAUg'
	..'MSABMAcgDpAVAAUwMUAFIAUwBUAwgAVQAYACQBVgBXAFgAWQBWAzoCAgALAEoCXgDpAVwAOgICAAsAXQBeABsEzwE6AgIACwCLAl4AHARcADoCAgALAF8AXgAdBBQUAIQAIAAYAJMAFwAYAJQAFgAaAJMAGQAaAJQAHwAcAJMAGwAcAJQAFgAeAJMAHQAeAJQAHwAjAJMAIgAjAJQAIQAlAJMAJAAlAJQAKgAnAJMAJgAnAJQAIQApAJMA'
	..'KAApAJQAKgArAIQALAA9AIQASwC5AJMAuAA=')
rf = rf[1]
rf.Name = "rf"
local wm = Instance.new('WorldModel', Objects[1])
rf.Parent = wm
wm.Name = "rf"
--
local UI = Decode('AERYASEJU2NyZWVuR3VpIQROYW1lIQZVSV9tb2QhDFJlc2V0T25TcGF3bgIhCVRleHRMYWJlbCEEdGltZSEQQmFja2dyb3VuZENvbG9yMwb///8hFkJhY2tncm91bmRUcmFuc3BhcmVuY3kDAAAAAAAA8D8hDEJvcmRlckNvbG9yMwYbKjUhCFBvc2l0aW9uDM3MzD4A'
	..'AM3MTD4AACEEU2l6ZQzNzEw+AADNzMw9AAAhB1Zpc2libGUhBlpJbmRleAMAAAAAAAAQQCEERm9udCEEVGV4dCECNjAhClRleHRDb2xvcjMhClRleHRTY2FsZWQiIQhUZXh0U2l6ZQMAAAAAAAAsQCELVGV4dFdyYXBwZWQhB291dGxpbmUMAAAAAAAAzcxMPQAADAAA'
	..'gD8AAAAAgD8AAAYAAAAhEFRleHRUcmFuc3BhcmVuY3kDAAAAoJmZ6T8hBUZyYW1lIQJVSSELQW5jaG9yUG9pbnQLAACAPwAAAAAMAACAP1b/AAAAAAAADB+Faz4yAB+Faz4yACEOU2l6ZUNvbnN0cmFpbnQDAAAAAAAAAEAhBXRpbWVyDHE9ij4AAM3MTD8AAAz2KNw+'
	..'AAAK16M9AAADAAAAAAAAFEAhAAMAAAAAAAA0QCEOVGV4dFhBbGlnbm1lbnQDAAAAAAAAAAAhBHNhdmUMMzMzPwAAzcxMPwAADJqZmT4AAArXoz0AACEJU2F2aW5nLi4uIQtJbWFnZUJ1dHRvbiEFcGF1c2UhBkFjdGl2ZQb4+PgMzczMPQAAlkOLPQAAIQpTZWxlY3Rh'
	..'YmxlDAAAgD4AAAAAgD4AACEFSW1hZ2UhF3JieGFzc2V0aWQ6Ly8xNDQ3MzcwMDAzIQ9JbWFnZVJlY3RPZmZzZXQLAADAQwAAgEMhDUltYWdlUmVjdFNpemULAAAAQwAAAEMhCkltYWdlTGFiZWwhA2JvZwsAAAA/AAAAPwwAAAA/AAAAAAA/AAAMZmamPwAAZmamPwAA'
	..'IRdyYnhhc3NldGlkOi8vMTM4MzAyMzQ3NCELSW1hZ2VDb2xvcjMGioqKIQlpY2VkY3JlYW0MzczMPgAAAAAAAAAADJqZGT8AAM3MTD4AACEXcmJ4YXNzZXRpZDovLzE0NjM5MDY5OTchA2ltZwzsUTg9AADNzMw9AAAMzcxMPwAAzcxMPwAAIRdyYnhhc3NldGlkOi8v'
	..'MTM3NDE3OTYzMSECdHgMG+i0PgAAj8J1PQAADMkvFj8AAM3MTD8AACEFY2FuZHkhF3JieGFzc2V0aWQ6Ly8xMTQ0NDU0NjMxIQNlZ2cMzczMPgAAmpkZPwAAIRdyYnhhc3NldGlkOi8vMTIxODc2ODUyMCEDOC84IQRqdW1wDM3MzD4AACPbeT8AACEJSnVtcGxlc3Mh'
	..'BlWq/yEIdGltZXJSVEEM98FiPgAA+VNjPwAADG0F9T4AAArXoz0AACEGbW9iaWxlIQNzdDEMzcxMPQAAMzNzPwAADI/CdT4AAI/Cdb4AACEXcmJ4YXNzZXRpZDovLzEzODMwMjMzNTgMmpmZPgAAmpmZPgAADM3MzD4AAM3MzD4AACEBQQwAAEA/AAAzM3M/AAAMzczM'
	..'PQAAzczMvQAAIRdyYnhhc3NldGlkOi8vMTM4MDE4NDE1MgsAAAAAAACAQwsAAIBDAACAQyEBWAyuR4G/AAAzMzO/AAAhF3JieGFzc2V0aWQ6Ly8xMzgwMTg0MzYwIQFCDK5HgT8AADMzM78AACECUlQMAAAAAAAAAACAvwAAIQRsb2FkCwAAgD8AAIA/DAAAgD/s/wAA'
	..'gD/s/wzNzMw9AADNzMw9AAAhF3JieGFzc2V0aWQ6Ly8xMjAyOTcxNjEwIQJCVAwAAAAAAACamZm+AAAMAACAPwAAmpmZPgAAAwAAAAAAABhAIQdMb2FkaW5nDAAAAAAAAArXIz0AACEEbG9vcCEPQm9yZGVyU2l6ZVBpeGVsDAAAAAAAAAAAAADc/wwAAIA/AAAAAIA/'
	..'JAADAAAAAAAACEAhBmNlbnRlciEXcmJ4YXNzZXRpZDovLzExODYyMzQ0OTchAWwMAAAAPwAAAACAPwAAIQFyDAAAgD8AAAAAAAAAAAwAAAC/AAAAAIA/AAAhAXUMAACAPwAAAAAAPwAAIQFkDAAAAAAAAAAAgD8AAAwAAIA/AAAAAAC/AAAMAAAAAAAAMzMzPwAADAAA'
	..'gD8AAArXoz0AACESWU9VIEdPVCBJQ0UgQ1JFQU0hIQNzdWIMAACAPwAAmpkZPwAAIRpXYXRjaCBmb3Igcm9sbGluZyByb2NrcyAweCEKVGV4dEJ1dHRvbiEEc2tpcAyPwvU9AAAK1yM9AAAhBFNraXAhAmJ0IRdyYnhhc3NldGlkOi8vMTMwNDMwNjMwOQsAAJBDAAAA'
	..'AAsAAABCAAAAQiEGY3Vyc29yDAAAAACAAAAAAACAAAMAAAAAAAAkQCEXcmJ4YXNzZXRpZDovLzE0NTA5NzMxMDchBnBsYXliZyEXcmJ4YXNzZXRpZDovLzEzMzkxOTg1MTkhCVNjYWxlVHlwZSEIVGlsZVNpemUMAAAAAAABAAAAAAABIQVsb2FkMgwAAAAAAABmZmY/'
	..'AAAMAACAPwAAzcxMPQAABhEREQMAAABgZmbmPwwAAAAAAADNzMy9AAAMAACAPwAAzcyMPwAAIQFzIQRzcGluAwAAAAAAABxAIRdyYnhhc3NldGlkOi8vMTQ0NzM5NTMyNSELTnVtYmVyVmFsdWUhA3BvcyEFVmFsdWUDmpmZmZmZyT8hBHBvc1ghF1VJQXNwZWN0UmF0'
	..'aW9Db25zdHJhaW50IQxEb21pbmFudEF4aXMhAmJnDAAAgD8AADMzcz8AACEXcmJ4YXNzZXRpZDovLzE0NDI5Nzg5MTkhBWNsb3NlIRFOZXh0U2VsZWN0aW9uRG93biEPTmV4dFNlbGVjdGlvblVwDAAAAAAAAI/CdT4AAAwAAIA/AADsUbg9AAAhBlJlc3VtZSEEaWNv'
	..'bgzNzEw/AAAAAAAAAAALAAAAQwAAAAAhA2h1YgwAAAAAAACkcD0/AAAhC0JhY2sgdG8gSHViCwAAgEMAAAAAIQRxdWl0DAAAAAAAAD0KVz8AACENUXVpdCB0byBUaXRsZQsAAIBDAAAAQyEIaWNlY3JlYW0MAAAAAAAAexSuPgAAIQlJY2VjcmVhbXMhBXRpdGxlDAAA'
	..'AAAAABKDQD0AAAwAAIA/AACPwvU9AAAhBlBhdXNlZCEIY2xvdGhpbmcMAAAAAAAAcT0KPwAAIQhDbG90aGluZwsAAMBDAAAAACEEc25hcAwAAAAAAACuR+E+AAAhDVNuYXBzaG90IE1vZGULAADAQwAAAEMhBmNhbWVyYQwAAAAAAAAK1yM/AAAhDUZvbGxvdyBDYW1l'
	..'cmELAAAAAAAAAEMhDUFyZSB5b3Ugc3VyZT8hBGh1YjIhAm5vIQZDYW5jZWwhBXF1aXQyDAAAAAAAAArXozwAAAwAAIA/AADNzMw9AAAhD0tub2RkeSdzIFJlc29ydCEDYnQxDJqZGT4AAG9zbD4AAAwzMzM/AAApXI89AAAhIlJhY2luZyB0byB0aGUgVG9wIG9mIHRo'
	..'ZSBIZWNrbGFuZHMMzczMvQAAAAAAAAAAIQNidDIMmpkZPgAAWsWkPgAAIQ1zb3JyeSBub3RoaW5nIQNidDMMmpkZPgAA/VDTPgAAIQNidDQMmpkZPgAAUO4APwAAIQNidDUMmpkZPgAAIjQYPwAAIQNidDYMmpkZPgAA83kvPwAAIQNidDcMmpkZPgAAxL9GPwAAIQRw'
	..'YWdlDAAAAAAAAI/C9T0AAAwAAIA/AACPwnU9AAAhCFBhZ2UgMS84IQdQUmlnaHQxIRFOZXh0U2VsZWN0aW9uTGVmdCESTmV4dFNlbGVjdGlvblJpZ2h0DJqZ2T4AAOF6VD8AAAyamRk+AACamRk+AAALAAAAQwAAgEMhBlBMZWZ0MQzNzIw+AADhelQ/AAAMMzMTPwAA'
	..'4XpUPwAAIQhJbnRWYWx1ZSEFcGFnZWUhBkZvbGRlciECMkIhB3dlYXJpbmcM7FE4PwAA16MwPwAAIQNub2IhBlBMZWZ0NCEHUFJpZ2h0NAzNzMw9AACPwnU+AAAMzcxMPwAAmpkZPwAAIRdyYnhhc3NldGlkOi8vMTQ0NzY4ODE3MSEEaGF0bSELU3RyaW5nVmFsdWUh'
	..'BGl0ZW0hATEMAACAPgAAj8J1PgAAIQEyDM3MzD4AAI/CdT4AACEBMwzNzAw/AACPwnU+AAAhATQMzczMPQAAFK7HPgAAIQE1DAAAgD4AABSuxz4AACEBNgzNzMw+AAAUrsc+AAAhATcMzcwMPwAAFK7HPgAAAwAAAAAAACBAIQE4DM3MzD0AAHE9Cj8AAAMAAAAAAAAi'
	..'QCEBOQwAAIA+AABxPQo/AAAhAjEwDM3MzD4AAHE9Cj8AAAMAAAAAAAAmQCECMTEMzcwMPwAAcT0KPwAAAwAAAAAAAChAIQIxMgzNzMw9AADXozA/AAADAAAAAAAAKkAhAjEzDAAAgD4AANejMD8AACECMTQMzczMPgAA16MwPwAAAwAAAAAAAC5AIQIxNQzNzAw/AADX'
	..'ozA/AAADAAAAAAAAMEAhAjE2DOxROD8AAI/CdT4AAAzsUTg/AAAUrsc+AAAM7FE4PwAAcT0KPwAAAwAAAAAAAOA/IQZzcGlubnkMzcxMPgAAzcxMPgAAIQlVSVBhZGRpbmchDVBhZGRpbmdCb3R0b20SzczMPQAAIQtQYWRkaW5nTGVmdBLNzEw9AAAhDFBhZGRpbmdS'
	..'aWdodCEKUGFkZGluZ1RvcCEEaGF3ayEFdHJpY2sMAAAAAAAAzcxMPwAADAAAgD8AAArXIz0AACELNTAtNTAgR3JpbmQhA3B0cyEHNTMyIHggMiEFc2NvcmUMzcxMPQAAzcxMPgAADJqZGT8AAArXIz0AACEQU2NvcmU6IDk5OTk5OTk5OdIBAAACAAIAAwAEAAUABgAB'
	..'DgACAAcACAAJAAoACwAMAA0ADgAPABAAEQASAAUAEwAUABUAFAAWABcAGAAJABkAGgAbABwAHQAaAAYAAg0AAgAeAAgACQAKAAsADAANAA4AHwAQACAAFQAUABYAFwAYACEAGQAaABsAHAAiACMAHQAaACQAAQkAAgAlACYAJwAIAAkACgALAAwADQAOACgAEAApACoA'
	..'KwATABQABgAEDgACACwACAAJAAoACwAMAA0ADgAtABAALgATAC8AFQAUABYAMAAYAAkAGQAaABsAMQAdABoAMgAzAAYABRAAAgAeAAgACQAKAAsADAANAA4AHwAQACAAEgAFABMAFAAVABQAFgAwABgAIQAZABoAGwAxACIAIwAdABoAMgAzAAYABA8AAgA0AAgACQAK'
	..'AAsADAANAA4ANQAQADYAEgAFABMALwAVABQAFgA3ABgACQAZABoAGwAcAB0AGgAyAAsABgAHDwACAB4ACAAJAAoACwAMAA0ADgAfABAAIAATABQAFQAUABYANwAYACEAGQAaABsAHAAiACMAHQAaADIACwA4AAQMAAIAOQA6AAUACAA7AAoACwAMAA0ADgA8AD0ABQAQ'
	..'AD4AEwArAD8AQABBAEIAQwBEAEUACQkAAgBGACYARwAIAAkACgALAAwADQAOAEgAEABJAD8ASgBLAEwARQAECAACAE0ACAAJAAoACwAMAA0ADgBOABAATwATABQAPwBQAEUACwkAAgBRAAgACQAKAAsADAANAA4AUgAQAFMAKgArABMALwA/AFQABgALDgACAFUACAAJ'
	..'AAoACwAMAA0ADgBWABAAVwATAC8AFQAUABYAMAAYAAkAGQAaABsAHAAdABoAMgAzAAYADQ8AAgAeAAgACQAKAAsADAANAA4AHwAQACAAEwAUABUAFAAWADAAGAAhABkAGgAbABwAIgAjAB0AGgAyADMARQAECAACAFgACAAJAAoACwAMAA0ADgAPABAATwATABQAPwBQ'
	..'AAYADw4AAgBVAAgACQAKAAsADAANAA4AVgAQAFcAEwAvABUAFAAWADAAGAAJABkAGgAbABwAHQAaADIAMwAGABAPAAIAHgAIAAkACgALAAwADQAOAB8AEAAgABMAFAAVABQAFgAwABgAIQAZABoAGwAcACIAIwAdABoAMgAzAEUADwkAAgBRAAgACQAKAAsADAANAA4A'
	..'UgAQAFMAKgArABMALwA/AFkARQAECQACAFoACAAJAAoACwAMAA0ADgBbABAATwASAAUAEwAUAD8AUABFABMJAAIAUQAIAAkACgALAAwADQAOAFIAEABTACoAKwATAC8APwBcAAYAEw4AAgBVAAgACQAKAAsADAANAA4AVgAQAFcAEwAvABUAFAAWAF0AGAAJABkAGgAb'
	..'ABwAHQAaADIAMwAGABUPAAIAHgAIAAkACgALAAwADQAOAB8AEAAgABMAFAAVABQAFgBdABgAIQAZABoAGwAcACIAIwAdABoAMgAzAAYABA8AAgBeAAgACQAKAAsADAANAA4AXwAQADYAEgAFABMALwAVABQAFgBgABgAYQAZABoAGwAcAB0AGgAyADMABgAXDwACAB4A'
	..'CAAJAAoACwAMAA0ADgAfABAAIAATABQAFQAUABYAMAAYACEAGQAaABsAHAAiACMAHQAaADIAMwAGAAQOAAIAYgAIAAkACgALAAwADQAOAGMAEABkABMALwAVABQAFgAwABgACQAZABoAGwAxAB0AGgAyADMABgAZEAACAB4ACAAJAAoACwAMAA0ADgAfABAAIAASAAUA'
	..'EwAUABUAFAAWADAAGAAhABkAGgAbADEAIgAjAB0AGgAyADMAJAABBwACAGUACAAJAAoACwAMAA0AEAAgABIABQATABQAOAAbCgACAGYACAAJAAoACwAMAA0ADgBnAD0ABQAQAGgAKgALABMAKwA/AGkARQAcCAACAEYACAAJAAoACwAMAA0ADgBqABAAawATACsAPwBK'
	..'ADgAGwsAAgBsAAgACQAKAAsADAANAA4AbQA9AAUAEABuACoACwA/AG8AQQBwAEMAcQA4AB4KAAIAcgAIAAkACgALAAwADQAOAHMAPQAFABAAIAAqAAsAPwB0AEMAcQA4AB4KAAIAdQAIAAkACgALAAwADQAOAHYAPQAFABAAIAAqAAsAPwBvAEMAcQA4AB4LAAIAdwAI'
	..'AAkACgALAAwADQAOAHgAPQAFABAAIAAqAAsAPwB0AEEAcABDAHEARQABCwACAHkAJgB6AAgACQAKAAsADAANAA4AewAQAHwAKgArABIABQATAC8APwB9AAYAIg0AAgB+AAgACQAKAAsADAANAA4AfwAQAIAAEwCBABUAFAAWAIIAGAAJABkAGgAbABwAHQAaAAYAIw4A'
	..'AgAeAAgACQAKAAsADAANAA4AgwAQACAAEwAvABUAFAAWAIIAGAAhABkAGgAbABwAIgAjAB0AGgAkAAEJAAIAhAAIACEACgALAAwADQCFADMADgCGABAAhwASAAUAEwCIAEUAJQcAAgCJAAgACQAKAAsADAANAA4ASAATAIgAPwCKACQAJQYAAgCLAAgAIQAMAA0AhQAz'
	..'ABAAjAATAIgAJAAlBwACAI0ACAAhAAwADQCFADMADgCOABAAjwATAIgAJAAlBgACAJAACAAhAAwADQCFADMAEACRABMAiAAkACUHAAIAkgAIACEADAANAIUAMwAOAJMAEACUABMAiAAGAAEOAAIAfgAIAAkACgALAAwADQAOAJUAEACWABIABQATACsAFQAUABYAlwAY'
	..'AAkAGQAaABsAHAAdABoABgArDQACAJgACAAJAAoACwAMAA0ADgCTABAAmQATACsAFQAUABYAmgAYAAkAGQAaABsAHAAdABoABgAsDQACAB4ACAAJAAoACwAMAA0ADgAfABAAIAAVABQAFgCaABgAIQAZABoAGwAcACIAIwAdABoABgArDQACAB4ACAAJAAoACwAMAA0A'
	..'DgCDABAAIAAVABQAFgCXABgAIQAZABoAGwAcACIAIwAdABoAmwABEgACAJwAJgAnAAgACQAKAAsADAANAA4AKAA9AAUAEACdACoAKwASAAUAEwArABUAFAAWAJ4AGAAJABkAGgAbABwAHQAaADIACwBFAC8JAAIAnwAIAAkACgALAAwADQAQACAAKgArAD8AoABBAKEA'
	..'QwCiAAYALw4AAgAeAAgACQAKAAsADAANAA4AHwAQACAAFQAUABYAngAYACEAGQAaABsAHAAiACMAHQAaADIACwBFAAEKAAIAowAmAEcACAAJAAoACwAMAA0AEACkACoAKwASAAUAEwClAD8ApgBFAAELAAIApwAIAAkACgALAAwADQAOAIYAEACHABIABQATABQAPwCo'
	..'AKkAKwCqAKsABgABDgACAKwACAAJAAoACwAMAA0ADgCtABAArgASAAUAEwArABUAFAAWADAAGAAJABkAGgAbABwAHQAaACQAAQkAAgA5AAgArwAKALAADAANAIUAMwAOALEAEACyABIABQATAC8AJAA1CQACALMAJgBHAAgAOwAKAAsADAANAIUAMwAOAEgAEAAgABMA'
	..'LwBFADYIAAIAtAAIAAkACgALAAwADQAQAHwAKgArABMAtQA/ALYAtwA3AgACALgAuQC6ALcANwIAAgC7ALkAugC8ADYBAL0ACwBFADULAAIAvgAmAEcACAAJAAoACwAMAA0AhQAzAA4ASAAQAL8AEgAFABMALwA/AMAAJAA7BwACADkACAAJAAoACwAMAA0AEAAgABIA'
	..'BQATAIEAmwA8DwACAMEAOgAFAAgACQAKAAsADAANAA4AxAA9AAUAEADFABMAgQAVABQAFgDGABgAOwAZABoAGwAcAB0AGgAGAD0OAAIAHgAIAAkACgALAAwADQAOAB8AEAAgABMALwAVABQAFgDGABgAIQAZABoAGwAcACIAIwAdABoARQA9CwACAMcACAAJAAoACwAM'
	..'AA0ADgDIABAAIAAqACsAEwCBAD8AQABBAMkAQwBEAJsAPA8AAgDKADoABQAIAAkACgALAAwADQAOAMsAPQAFABAAxQATAIEAFQAUABYAzAAYADsAGQAaABsAHAAdABoABgBADgACAB4ACAAJAAoACwAMAA0ADgAfABAAIAATAC8AFQAUABYAzAAYACEAGQAaABsAHAAi'
	..'ACMAHQAaAEUAQAsAAgDHAAgACQAKAAsADAANAA4AyAAQACAAKgArABMAgQA/AEAAQQDNAEMARACbADwPAAIAzgA6AAUACAAJAAoACwAMAA0ADgDPAD0ABQAQAMUAEwCBABUAFAAWANAAGAA7ABkAGgAbABwAHQAaAAYAQw4AAgAeAAgACQAKAAsADAANAA4AHwAQACAA'
	..'EwAvABUAFAAWANAAGAAhABkAGgAbABwAIgAjAB0AGgBFAEMLAAIAxwAIAAkACgALAAwADQAOAMgAEAAgACoAKwATAIEAPwBAAEEA0QBDAEQAmwA8DwACANIAOgAFAAgACQAKAAsADAANAA4A0wA9AAUAEADFABMAgQAVABQAFgDUABgAOwAZABoAGwAcAB0AGgAGAEYO'
	..'AAIAHgAIAAkACgALAAwADQAOAB8AEAAgABMALwAVABQAFgDUABgAIQAZABoAGwAcACIAIwAdABoARQBGCwACAMcACAAJAAoACwAMAA0ADgDIABAAIAAqACsAEwCBAD8AQABBAHEAQwBEAAYAPA0AAgDVAAgACQAKAAsADAANAA4A1gAQANcAEwCBABUAFAAWANgAGAAJ'
	..'ABkAGgAbABwAHQAaAAYASQ4AAgAeAAgACQAKAAsADAANAA4AHwAQACAAEwAvABUAFAAWANgAGAAhABkAGgAbABwAIgAjAB0AGgCbADwPAAIA2QA6AAUACAAJAAoACwAMAA0ADgDaAD0ABQAQAMUAEwCBABUAFAAWANsAGAA7ABkAGgAbABwAHQAaAAYASw4AAgAeAAgA'
	..'CQAKAAsADAANAA4AHwAQACAAEwAvABUAFAAWANsAGAAhABkAGgAbABwAIgAjAB0AGgBFAEsLAAIAxwAIAAkACgALAAwADQAOAMgAEAAgACoAKwATAIEAPwBAAEEA3ABDAEQAmwA8DwACAN0AOgAFAAgACQAKAAsADAANAA4A3gA9AAUAEADFABMAgQAVABQAFgDfABgA'
	..'OwAZABoAGwAcAB0AGgAGAE4OAAIAHgAIAAkACgALAAwADQAOAB8AEAAgABMALwAVABQAFgDfABgAIQAZABoAGwAcACIAIwAdABoARQBOCwACAMcACAAJAAoACwAMAA0ADgDIABAAIAAqACsAEwCBAD8AQABBAOAAQwBEAJsAPA8AAgDhADoABQAIAAkACgALAAwADQAO'
	..'AOIAPQAFABAAxQATAIEAFQAUABYA4wAYADsAGQAaABsAHAAdABoABgBRDgACAB4ACAAJAAoACwAMAA0ADgAfABAAIAATAC8AFQAUABYA4wAYACEAGQAaABsAHAAiACMAHQAaAEUAUQsAAgDHAAgACQAKAAsADAANAA4AyAAQACAAKgArABMAgQA/AEAAQQDkAEMARAAk'
	..'ADsHAAIAygAIAAkACgALAAwADQAQACAAEgAFABMAgQAGAFQNAAIA1QAIAAkACgALAAwADQAOANYAEADXABMAgQAVABQAFgDlABgACQAZABoAGwAcAB0AGgAGAFUOAAIAHgAIAAkACgALAAwADQAOAB8AEAAgABMALwAVABQAFgDlABgAIQAZABoAGwAcACIAIwAdABoA'
	..'mwBUDwACAOYAOgAFAAgACQAKAAsADAANAA4AxAA9AAUAEADFABMAgQAVABQAFgDMABgAOwAZABoAGwAcAB0AGgAGAFcOAAIAHgAIAAkACgALAAwADQAOAB8AEAAgABMALwAVABQAFgDMABgAIQAZABoAGwAcACIAIwAdABoARQBXCwACAMcACAAJAAoACwAMAA0ADgDI'
	..'ABAAIAAqACsAEwCBAD8AQABBAM0AQwBEAJsAVA8AAgDnADoABQAIAAkACgALAAwADQAOANMAPQAFABAAxQATAIEAFQAUABYA6AAYADsAGQAaABsAHAAdABoABgBaDgACAB4ACAAJAAoACwAMAA0ADgAfABAAIAATAC8AFQAUABYA6AAYACEAGQAaABsAHAAiACMAHQAa'
	..'AEUAWgsAAgDHAAgACQAKAAsADAANAA4AyAAQACAAKgArABMAgQA/AEAAQQDJAEMARAAkADsHAAIAzgAIAAkACgALAAwADQAQACAAEgAFABMAgQCbAF0PAAIA6QA6AAUACAAJAAoACwAMAA0ADgDEAD0ABQAQAMUAEwCBABUAFAAWANAAGAA7ABkAGgAbABwAHQAaAAYA'
	..'Xg4AAgAeAAgACQAKAAsADAANAA4AHwAQACAAEwAvABUAFAAWANAAGAAhABkAGgAbABwAIgAjAB0AGgBFAF4LAAIAxwAIAAkACgALAAwADQAOAMgAEAAgACoAKwATAIEAPwBAAEEA0QBDAEQAmwBdDwACAOcAOgAFAAgACQAKAAsADAANAA4A0wA9AAUAEADFABMAgQAV'
	..'ABQAFgDoABgAOwAZABoAGwAcAB0AGgAGAGEOAAIAHgAIAAkACgALAAwADQAOAB8AEAAgABMALwAVABQAFgDoABgAIQAZABoAGwAcACIAIwAdABoARQBhCwACAMcACAAJAAoACwAMAA0ADgDIABAAIAAqACsAEwCBAD8AQABBAMkAQwBEAAYAXQ0AAgDVAAgACQAKAAsA'
	..'DAANAA4A1gAQANcAEwCBABUAFAAWAOUAGAAJABkAGgAbABwAHQAaAAYAZA4AAgAeAAgACQAKAAsADAANAA4AHwAQACAAEwAvABUAFAAWAOUAGAAhABkAGgAbABwAIgAjAB0AGgAkADsHAAIA0gAIAAkACgALAAwADQAQACAAEgAFABMAgQAGAGYNAAIA1QAIAAkACgAL'
	..'AAwADQAOAOoAEADrABMAgQAVABQAFgDsABgACQAZABoAGwAcAB0AGgAGAGcOAAIAHgAIAAkACgALAAwADQAOAB8AEAAgABMALwAVABQAFgDsABgAIQAZABoAGwAcACIAIwAdABoABgBmDgACAO0ACAA7AAoACwAMAA0ADgDuABAA7wATAIEAFQAUABYA8AAYADsAGQAa'
	..'ABsAHAAdABoAMgAzAAYAaQ8AAgAeAAgACQAKAAsADAANAA4AHwAQACAAEwAvABUAFAAWAPAAGAAhABkAGgAbABwAIgAjAB0AGgAyADMARQBpCwACAMcACAAJAAoACwAMAA0ADgDxABAAIAAqACsAEwCBAD8AQABBAMkAQwBEAAYAZg4AAgDyAAgAOwAKAAsADAANAA4A'
	..'8wAQAO8AEwCBABUAFAAWAPQAGAA7ABkAGgAbABwAHQAaADIAMwAGAGwPAAIAHgAIAAkACgALAAwADQAOAB8AEAAgABMALwAVABQAFgD0ABgAIQAZABoAGwAcACIAIwAdABoAMgAzAEUAbAsAAgDHAAgACQAKAAsADAANAA4A8QAQACAAKgArABMAgQA/AEAAQQDJAEMA'
	..'RAAGAGYOAAIA9QAIADsACgALAAwADQAOAPYAEADvABMAgQAVABQAFgD0ABgAOwAZABoAGwAcAB0AGgAyADMABgBvDwACAB4ACAAJAAoACwAMAA0ADgAfABAAIAATAC8AFQAUABYA9AAYACEAGQAaABsAHAAiACMAHQAaADIAMwBFAG8LAAIAxwAIAAkACgALAAwADQAO'
	..'APEAEAAgACoAKwATAIEAPwBAAEEAyQBDAEQABgBmDgACAPcACAA7AAoACwAMAA0ADgD4ABAA7wATAIEAFQAUABYA9AAYADsAGQAaABsAHAAdABoAMgAzAAYAcg8AAgAeAAgACQAKAAsADAANAA4AHwAQACAAEwAvABUAFAAWAPQAGAAhABkAGgAbABwAIgAjAB0AGgAy'
	..'ADMARQByCwACAMcACAAJAAoACwAMAA0ADgDxABAAIAAqACsAEwCBAD8AQABBAMkAQwBEAAYAZg4AAgD5AAgAOwAKAAsADAANAA4A+gAQAO8AEwCBABUAFAAWAPQAGAA7ABkAGgAbABwAHQAaADIAMwAGAHUPAAIAHgAIAAkACgALAAwADQAOAB8AEAAgABMALwAVABQA'
	..'FgD0ABgAIQAZABoAGwAcACIAIwAdABoAMgAzAEUAdQsAAgDHAAgACQAKAAsADAANAA4A8QAQACAAKgArABMAgQA/AEAAQQDJAEMARAAGAGYOAAIA+wAIADsACgALAAwADQAOAPwAEADvABMAgQAVABQAFgD0ABgAOwAZABoAGwAcAB0AGgAyADMABgB4DwACAB4ACAAJ'
	..'AAoACwAMAA0ADgAfABAAIAATAC8AFQAUABYA9AAYACEAGQAaABsAHAAiACMAHQAaADIAMwBFAHgLAAIAxwAIAAkACgALAAwADQAOAPEAEAAgACoAKwATAIEAPwBAAEEAyQBDAEQABgBmDgACAP0ACAA7AAoACwAMAA0ADgD+ABAA7wATAIEAFQAUABYA9AAYADsAGQAa'
	..'ABsAHAAdABoAMgAzAAYAew8AAgAeAAgACQAKAAsADAANAA4AHwAQACAAEwAvABUAFAAWAPQAGAAhABkAGgAbABwAIgAjAB0AGgAyADMARQB7CwACAMcACAAJAAoACwAMAA0ADgDxABAAIAAqACsAEwCBAD8AQABBAMkAQwBEAAYAZg0AAgD/AAgACQAKAAsADAANAA4A'
	..'AAEQAAEBEwCBABUAFAAWAAIBGAAJABkAGgAbABwAHQAaAAYAfg4AAgAeAAgACQAKAAsADAANAA4AHwAQACAAEwAvABUAFAAWAAIBGAAhABkAGgAbABwAIgAjAB0AGgA4AGYLAAIAAwEIAAkACgALAAwADQAOAAYBPQAFABAABwETAIEAPwBAAEEACAFDAEQAOABmCwAC'
	..'AAkBCAAJAAoACwAMAA0ADgAKAT0ABQAQAAcBEwCBAD8AQABBAHAAQwBEADgAZgsAAgDnAAgACQAKAAsADAANAA4ACwE9AAUAEAAHARMAgQA/AEAAQQDJAEMARAAMAWYCAAIADQG5AAsADgFmAQACAA8BvAA7AQC9AAsAJAA7BgACANkACAAJAAoACwAMAA0AEAAgABMA'
	..'gQA4AIYJAAIAEAEIAAkACgALAAwADQAOABEBPQAFABAABwETAIEAPwBAAAwBhwIAAgASAbkAFAAGAIYNAAIA1QAIAAkACgALAAwADQAOAOoAEADrABMAgQAVABQAFgDbABgACQAZABoAGwAcAB0AGgAGAIkOAAIAHgAIAAkACgALAAwADQAOAB8AEAAgABMALwAVABQA'
	..'FgDbABgAIQAZABoAGwAcACIAIwAdABoABgCGDQACAP8ACAAJAAoACwAMAA0ADgAAARAAAQETAIEAFQAUABYAAgEYAAkAGQAaABsAHAAdABoABgCLDgACAB4ACAAJAAoACwAMAA0ADgAfABAAIAATAC8AFQAUABYAAgEYACEAGQAaABsAHAAiACMAHQAaADgAhgsAAgDn'
	..'AAgACQAKAAsADAANAA4ACwE9AAUAEAAHARMAgQA/AEAAQQDJAEMARAA4AIYLAAIAEwEIAAkACgALAAwADQAOAAoBPQAFABAABwETAIEAPwBAAEEAcABDAEQAOACGCwACABQBCAAJAAoACwAMAA0ADgAGAT0ABQAQAAcBEwCBAD8AQABBAAgBQwBEAEUAhgcACAAJAAoA'
	..'CwAMAA0ADgAVARAAFgETAC8APwAXATgAhgkAAgAYAQgACQAKAAsADAANAA4AFQE9AAUAEAAHARMAgQA/AEAADAGRAgACABIBuQALABkBkQIAAgAaAbkAGwE4AIYJAAIAGAEIAAkACgALAAwADQAOABwBPQAFABAABwETAIEAPwBAAAwBlAIAAgASAbkAKwAZAZQCAAIA'
	..'GgG5AB0BOACGCQACABgBCAAJAAoACwAMAA0ADgAeAT0ABQAQAAcBEwCBAD8AQAAMAZcCAAIAEgG5AIgAGQGXAgACABoBuQAfATgAhgkAAgAYAQgACQAKAAsADAANAA4AIAE9AAUAEAAHARMAgQA/AEAADAGaAgACABIBuQAUABkBmgIAAgAaAbkAIQE4AIYJAAIAGAEI'
	..'AAkACgALAAwADQAOACIBPQAFABAABwETAIEAPwBAAAwBnQIAAgASAbkALwAZAZ0CAAIAGgG5ACMBOACGCQACABgBCAAJAAoACwAMAA0ADgAkAT0ABQAQAAcBEwCBAD8AQAAMAaACAAIAEgG5AIEAGQGgAgACABoBuQAlATgAhgkAAgAYAQgACQAKAAsADAANAA4AJgE9'
	..'AAUAEAAHARMAgQA/AEAADAGjAgACABIBuQC1ABkBowIAAgAaAbkAJwE4AIYJAAIAGAEIAAkACgALAAwADQAOACgBPQAFABAABwETAIEAPwBAAAwBpgIAAgASAbkAKQEZAaYCAAIAGgG5ACoBOACGCQACABgBCAAJAAoACwAMAA0ADgArAT0ABQAQAAcBEwCBAD8AQAAM'
	..'AakCAAIAEgG5ACwBGQGpAgACABoBuQAtATgAhgkAAgAYAQgACQAKAAsADAANAA4ALgE9AAUAEAAHARMAgQA/AEAADAGsAgACABIBuQClABkBrAIAAgAaAbkALwE4AIYJAAIAGAEIAAkACgALAAwADQAOADABPQAFABAABwETAIEAPwBAAAwBrwIAAgASAbkAMQEZAa8C'
	..'AAIAGgG5ADIBOACGCQACABgBCAAJAAoACwAMAA0ADgAzAT0ABQAQAAcBEwCBAD8AQAAMAbICAAIAEgG5ADQBGQGyAgACABoBuQA1ATgAhgkAAgAYAQgACQAKAAsADAANAA4ANgE9AAUAEAAHARMAgQA/AEAADAG1AgACABIBuQA3ARkBtQIAAgAaAbkAOAE4AIYJAAIA'
	..'GAEIAAkACgALAAwADQAOADkBPQAFABAABwETAIEAPwBAAAwBuAIAAgASAbkAHAAZAbgCAAIAGgG5ADoBOACGCQACABgBCAAJAAoACwAMAA0ADgA7AT0ABQAQAAcBEwCBAD8AQAAMAbsCAAIAEgG5ADwBGQG7AgACABoBuQA9ATgAhgkAAgAYAQgACQAKAAsADAANAA4A'
	..'PgE9AAUAEAAHARMAgQA/AEAADAG+AgACABIBuQA/ARkBvgIAAgAaAbkAQAE4AIYJAAIAEAEIAAkACgALAAwADQAOAEEBPQAFABAABwETAIEAPwBAAAwBwQIAAgASAbkACwA4AIYJAAIAEAEIAAkACgALAAwADQAOAEIBPQAFABAABwETAIEAPwBAAAwBwwIAAgASAbkA'
	..'KwA4AIYJAAIAEAEIAAkACgALAAwADQAOAEMBPQAFABAABwETAIEAPwBAAAwBxQIAAgASAbkAiAAkAIYIAAIAeQAIACEACgBEAQwADQAOABUBEAAWARIABQATAIEARQDHCgACAEUBJgBHAAgACQAKAAsADAANAA4ASAAQAEYBKgArABMAgQA/AH0ADgGGAQACAA8BDAGG'
	..'AgACAA0BuQALAEcBNQQASAFJAUoBSwFMAUsBTQFJASQAAQcAAgBOAQgACQAKAAsADAANAA4AhgAQAIcAEgAFAAYAzA0AAgBPAQgACQAKAAsADAANAA4AUAEQAFEBEwArABUAFAAWAFIBGAAJABkAGgAbABwAHQAaAAYAzQ0AAgAeAAgACQAKAAsADAANAA4AHwAQACAA'
	..'FQAUABYAUgEYACEAGQAaABsAHAAiACMAHQAaAAYAzA0AAgBTAQgACQAKAAsADAANAA4AzwAQAAEBEwArABUAFAAWAFQBGAAJABkAGgAbABwAHQAaAAYAzw0AAgAeAAgACQAKAAsADAANAA4AHwAQACAAFQAUABYAVAEYACEAGQAaABsAHAAiACMAHQAaAAYAzA4AAgBV'
	..'AQgACQAKAAsADAANAA4AVgEQAFcBEwArABUAFAAWAFgBGAAJABkAGgAbABwAHQAaADIAMwAGANEOAAIAHgAIAAkACgALAAwADQAOAB8AEAAgABUAFAAWAFgBGAAhABkAGgAbABwAIgAjAB0AGgAyADMAZwA9wgBGPcMAQ0DCAENAwwBRQ8IAPUPDAEBGwgBORsMAPUvC'
	..'AFFLwwBOTsIAS07DAEZRwgBAUcMAS1fCAFpawwBXXsIAYWHDAF6ABAGBgAUBgoEFAYCCBAGAh8IAjYcEAb6HwwDFjQQBj40FAYeNwwC+jgQBuI4FAY+OwwC4jwQBjo8FAY2PwwC7kcIAnZEEAY+RBQGUlMIAoJQEAZGUBQGXl8IAo5cEAZSXBQGamsIAppoEAZeaBQHB'
	..'ncIAqZ0EAY+dBQGgncMAkaDCAKygBAGdoAUBo6DDAJSjwgCvowQBoKMFAaajwwCXpsIAsqYEAaOmBQHDpsMAmqnCALWpBAGPqQUBrKnDAJ2swgC4rAQBqawFAa+swwCgr8IAu68EAayvBQGyr8MAo7LCAL6yBAGvsgUBxbLDAKa1wgCOtQQBj7UFAbi1wwCpuMIAjrgE'
	..'AbW4BQG7uMMArLvCAI+7BAG4uwUBvrvDAK++wgCNvgQBu74FAYe+wwCywcIAw8EEAZrDwgDFwwQBpsPDAMHFwgCHxQQBssXDAMPOwwDS')
for _,obj in pairs(UI) do
	obj.Parent = owner.PlayerGui
end
UI = UI[1]
UI.Name = "UI"
UI.hawk.Interactable = false
--
plam.Parent = Objects[1]
--
for i, v in Objects[1]:GetDescendants() do
	if v:IsA("BasePart") then
		v.Anchored = true
	end
end
--
function createjoint(p0,p1)
	local o = Instance.new("Weld")
	o.Parent = p0
	o.Part0 = p0
	o.Part1 = p1
	return o
end
--
local char = Instance.new("Part")
char.Name = "char"
char.Anchored = true
char.Transparency = 1
char.Size = Vector3.new(3, 3, 3)
char.CFrame = CFrame.new(0, 20, 20)
char.CustomPhysicalProperties = PhysicalProperties.new(0.07, 0, 0, 100, 100)
char.Shape = Enum.PartType.Ball

local Center = Instance.new("Attachment")
Center.Name = "Center"
Center.WorldPosition = Vector3.new(0, 20, 20)
Center.WorldCFrame = CFrame.new(0, 20, 20)
Center.Parent = char

local VectorForce = Instance.new("VectorForce")
VectorForce.Visible = true
VectorForce.RelativeTo = Enum.ActuatorRelativeTo.World
VectorForce.Force = Vector3.new(0, 0, 0)
VectorForce.Parent = char

local BodyGyro = Instance.new("BodyGyro")
BodyGyro.MaxTorque = Vector3.new(5000, 5000, 5000)
BodyGyro.D = 300
BodyGyro.Parent = char

VectorForce.Attachment0 = Center
--
local vis = Objects[1]
--

if owner.Character then
	char:PivotTo(owner.Character:GetPivot())
end

local hed = Objects[1].head
local trs = Objects[1].torso
local arma = Objects[1].armA
local armb = Objects[1].armB
local armc = Objects[1].armC
local armd = Objects[1].armD
local lega = Objects[1].legA
local legb = Objects[1].legB
local trs1 = Objects[1].trs
local dot = Objects[1].dot
dot.Anchored = true
--
NewNametag.Parent = hed
NewNametag.TextLabel.Text = owner.DisplayName
NewNametag.PlayerToHideFrom = owner
hed.BillboardGui.Enabled = false
--
local skin = rf.pose2.head:Clone()
skin.face:Destroy()
skin.Parent = hed
skin.Name = "skin"
skin.Transparency = 0
skin.Mesh.MeshId = "rbxassetid://1451153549"
skin.Mesh.TextureId = "rbxassetid://1218977833"
for _, v in skin:GetChildren() do
	if v:isA("Decal") then
		v:Destroy()
	end
end
hed.Transparency = 1
--
local OW = false
local localscript
--
local kartenabled = false
if kartenabled then
	local kart = Instance.new("Part")
	kart.Name = "kart"
	kart.Anchored = true
	kart.CanCollide = false
	kart.Size = Vector3.new(4.42852258682251, 2.7383298873901367, 6.79925537109375)
	kart.CFrame = CFrame.new(25.885732650756836, 1.3691649436950684, -1.9003663063049316)

	local Mesh = Instance.new("SpecialMesh")
	Mesh.Scale = Vector3.new(5.086712837219238, 5.086712837219238, 5.08671236038208)
	Mesh.MeshId = "rbxassetid://967857469"
	Mesh.TextureId = "rbxassetid://967857782"
	Mesh.MeshType = Enum.MeshType.FileMesh
	Mesh.Parent = kart

	kart.Parent = trs1
end
--
local christmas = os.date("%B") == "December"
local halloween = os.date("%B") == "October"
local dontChange = christmas or halloween
if os.date("%m %d") == "01 01" then
	local hat = Instance.new("Part")
	hat.Name = "party"
	hat.Anchored = true
	hat.Size = Vector3.new(1, 1.600000023841858, 1)
	hat.CFrame = CFrame.new(2, 7.800000190734863, 42.79999923706055, 6.715435461046582e-07, 0.000001267060497411876, -1, -0.17364884912967682, 0.9848077297210693, 0.0000011311980188111193, 0.9848077297210693, 0.17364884912967682, 8.813647127681179e-07)

	local Mesh = Instance.new("SpecialMesh")
	Mesh.MeshId = "http://www.roblox.com/asset/?id=1778999"
	Mesh.TextureId = "http://www.roblox.com/asset/?id=1778994"
	Mesh.MeshType = Enum.MeshType.FileMesh
	Mesh.Parent = hat
	hat.Parent = Objects[1]
end
if christmas then
	local sleeveB = Instance.new("Part")
	sleeveB.Name = "sleeveB"
	sleeveB.Anchored = true
	sleeveB.CanCollide = false
	sleeveB.Color = Color3.fromRGB(248, 248, 248)
	sleeveB.Material = Enum.Material.Sand
	sleeveB.Size = Vector3.new(0.7200000882148743, 0.39999985694885254, 0.7200000882148743)
	sleeveB.CFrame = CFrame.new(18.000001907348633, 4.799992561340332, 42.5, 0, -1, 0, 0, 0, -1, 1, 0, 0)

	local Mesh = Instance.new("SpecialMesh")
	Mesh.Scale = Vector3.new(0.08400000631809235, 0.026666663587093353, 0.08400000631809235)
	Mesh.MeshId = "rbxassetid://1125977013"
	Mesh.MeshType = Enum.MeshType.FileMesh
	Mesh.Parent = sleeveB

	local sleevea = sleeveB:Clone()
	sleevea.Parent = Objects[1]
	sleevea.Name = "sleeveA"

	local hat = Instance.new("Part",Objects[1])
	hat.Name = "santa"
	hat.Anchored = true
	hat.CanCollide = false
	hat.Material = Enum.Material.Sand
	hat.Size = Vector3.new(1, 1, 1)
	hat.CFrame = CFrame.new(19.39999771118164, 6.419995307922363, 42.61998748779297, 0.9999982118606567, 5.329070518200751e-15, 2.980227264970381e-08, 7.713390814956256e-09, 0.9659233093261719, -0.2588186264038086, -2.8786798722535423e-08, 0.25881847739219666, 0.9659249186515808)

	local Mesh = Instance.new("SpecialMesh")
	Mesh.Offset = Vector3.new(0, 1, 0.5)
	Mesh.Scale = Vector3.new(1.600000023841858, 1.600000023841858, 1.600000023841858)
	Mesh.MeshId = "rbxassetid://11528636460"
	Mesh.TextureId = "http://www.roblox.com/asset/?id=19744384"
	Mesh.MeshType = Enum.MeshType.FileMesh
	Mesh.Parent = hat

	sleeveB.Parent = Objects[1]
	trs.BrickColor = BrickColor.new('Bright red')
	lega.BrickColor = BrickColor.Black()
	legb.BrickColor = BrickColor.Black()
	arma.BrickColor = BrickColor.new('Bright red')
	armb.BrickColor = BrickColor.new('Bright red')
	trs1.pack.BrickColor = BrickColor.new('Bright red')
	trs1.pack.Mesh.TextureId = ""
	trs.Mesh.TextureId = ""
	lega.Mesh.TextureId = ""
	legb.Mesh.TextureId = ""
	arma.Mesh.TextureId = ""
	armb.Mesh.TextureId = ""
end
if halloween then
	local neck = Instance.new("Part")
	neck.Name = "neck"
	neck.BottomSurface = Enum.SurfaceType.Smooth
	neck.CanCollide = false
	neck.Anchored = true
	neck.TopSurface = Enum.SurfaceType.Smooth
	neck.Size = Vector3.new(1.399999976158142, 0.6000000238418579, 1.399999976158142)
	neck.CFrame = CFrame.new(32.5, 5.400000095367432, 43.099998474121094, 1, -1.427462109570422e-22, 1.0417863216900885e-21, 1.427462109570422e-22, 1, -1.859592666603547e-22, -1.0417863216900885e-21, 1.859592666603547e-22, 1)
	neck.formFactor = Enum.FormFactor.Symmetric

	local Mesh = Instance.new("SpecialMesh")
	Mesh.Scale = Vector3.new(1.5399999618530273, 0.6000000238418579, 1.4000000953674316)
	Mesh.MeshId = "http://www.roblox.com/asset/?id=63717022"
	Mesh.TextureId = "http://www.roblox.com/asset/?id=63717032"
	Mesh.MeshType = Enum.MeshType.FileMesh
	Mesh.Parent = neck

	local cape = Instance.new("Part")
	cape.Name = "cape"
	cape.BottomSurface = Enum.SurfaceType.Smooth
	cape.CanCollide = false
	cape.Anchored = true
	cape.TopSurface = Enum.SurfaceType.Smooth
	cape.Color = Color3.fromRGB(196, 40, 28)
	cape.Size = Vector3.new(2, 0.5, 1)
	cape.CFrame = CFrame.new(32.514442443847656, 5.1243977546691895, 42.67546081542969, 1.0000004768371582, -0.00026456991326995194, 0.000011909061868209392, 0.0002648376685101539, 0.9989884495735168, -0.04496722295880318, -4.797207076023824e-11, 0.04496726766228676, 0.9989889860153198)
	cape.formFactor = Enum.FormFactor.Custom

	local Mesh = Instance.new("SpecialMesh")
	Mesh.Offset = Vector3.new(0, -1.2000000476837158, 0.20000000298023224)
	Mesh.VertexColor = Vector3.new(0.30000001192092896, 0.30000001192092896, 1)
	Mesh.Scale = Vector3.new(1.0499999523162842, 1.3499999046325684, 1.0499999523162842)
	Mesh.MeshId = "http://www.roblox.com/asset/?id=114046169"
	Mesh.MeshType = Enum.MeshType.FileMesh
	Mesh.Parent = cape

	neck.Parent = Objects[1]
	cape.Parent = Objects[1]
	trs.BrickColor = BrickColor.Black()
	lega.BrickColor = BrickColor.Black()
	legb.BrickColor = BrickColor.Black()
	arma.BrickColor = BrickColor.Black()
	armb.BrickColor = BrickColor.Black()
	trs1.pack.BrickColor = BrickColor.Black()
	trs1.pack.Mesh.TextureId = ""
	trs.Mesh.TextureId = ""
	lega.Mesh.TextureId = ""
	legb.Mesh.TextureId = ""
	arma.Mesh.TextureId = ""
	armb.Mesh.TextureId = ""
end
local g = Instance.new("Part")
g.Name = "Head"
g.Transparency = 0
g.Size = Vector3.new(3,3,3)
g.Size = Vector3.zero
g.CFrame = hed.CFrame
local h = Instance.new("Humanoid")
local m = Instance.new('Model')
m.Name = "Beebo"
h.RequiresNeck =false
local w = Instance.new("Weld")
w.Parent = g
w.Part0 = hed
w.Part1 = g
local g2 = g:Clone()
g2.Name = "HumanoidRootPart"
g2.Parent = m
g2.Weld.Part0 = char
g2.Weld.Part1 = g2
local lh,rh,trs12 = g2:Clone(),g2:Clone(),g2:Clone()
trs12.Name = "Torso"
trs12.Weld.Part0 = trs
trs12.Weld.Part1 = trs12
trs12.Size = trs.Size
trs12.Parent = m
trs12.Transparency = 1
Instance.new("SpecialMesh", trs12).Scale = Vector3.zero
local fake = Instance.new("Motor6D")
local nek = fake:Clone()
nek.Name = "Neck"
nek.Part0 = trs12
nek.Part1 = g
nek.Enabled = false
nek.Parent = trs12
fake.Name = "Right Shoulder"
fake.Part0 = trs12
fake.Part1 = rh
fake.Enabled = false
fake.Parent = trs12
lh.Weld.Part0 = armd
rh.Weld.Part0 = armc
lh.Name = "Left Arm"
rh.Name = "Right Arm"
lh.Parent = m
rh.Parent = m
rh.Weld.C0 = CFrame.new(0,.5,0)
g.Parent = m
h.Parent = m
h.DisplayName = '  '
h.BreakJointsOnDeath = false
local mes = Instance.new("Motor6D",trs)
local m2e = Instance.new("Motor6D",trs)
mes.Part0 = trs
m2e.Part0 = trs
mes.Enabled = false
m2e.Enabled = false
mes.Name  ="Left Hip"
m2e.Name = "Right Hip"
local ll,rl = lh:Clone(),rh:Clone()
ll.Weld.Part0 = legb
rl.Weld.Part1 = lega
ll.Name = "Left Leg"
rl.Name = "Right Leg"
rl.Size = lega.Size
ll.Size = legb.Size
mes.Part1 = ll
m2e.Part1 = rl

char.Parent = m
owner.Character = m
m.Parent = workspace
local madel = m
for _,obj in pairs(Objects) do
	obj.Parent = madel
end
Objects[1].Name = "charmodel"
char.Anchored = false
for i,v in pairs(Objects[1]:children()) do
	v.Parent = m
end
--
hed.Mesh.TextureId = ""
hed.Color = Color3.fromRGB(145, 161, 255)
local eyes = Instance.new("Decal", hed)
local mouth = Instance.new("Decal", hed)
local faceDir = {
	default = {
		mouth = {
			neutral = "rbxassetid://111364951276066",
			dancing = "rbxassetid://106826508241099",
			happy = "",
			sad = "rbxassetid://84256655538240"
		},
		eyes = {
			neutral = "rbxassetid://100334613993099",
			blink1 = "rbxassetid://114179274718020",
			blink2 = "rbxassetid://81886010705674",
			ouch = "rbxassetid://136847520389335"
		},
		jetpack = trs1.jetpack.Mesh.TextureId,
		battery = trs1.bt1.Mesh.TextureId,
		palette = "rbxassetid://1218977833"
	},
	pixelated = {
		mouth = {
			neutral = "rbxassetid://122790102523421",
			dancing = "rbxassetid://96926986253475",
			happy = "",
			sad = "rbxassetid://103951522731525"
		},
		eyes = {
			neutral = "rbxassetid://99372263057188",
			blink1 = "rbxassetid://90139144818318",
			blink2 = "rbxassetid://117594740891597",
			ouch = "rbxassetid://118516205303454"
		},
		jetpack = "rbxassetid://1120917795",
		battery = "rbxassetid://1103633127",
		palette = "rbxassetid://138736714683672"
	}
}
local textable = {
	[0] = "default",
	[1] = "pixelated"
}
local chosenTexture = "default"
--
function updateHat()
	local vis = madel
	if vis.trs:FindFirstChild'hat' then
		if vis.trs.hat:FindFirstChild("skin")then
			vis.trs.hat.Mesh.TextureId = vis.torso.Mesh.TextureId
			vis.trs.hat.Material = vis.torso.Material
			vis.trs.hat.Reflectance = vis.torso.Reflectance
		end
	end
end
function toskin(id, vs)
	if not vs then
		vs = vis
		skin = id
	end
	local obt
	for _, v in pairs(rf.skins:GetChildren())do
		if v.id.Value == id then
			obt = v
			break
		end
	end
	if not obt then obt = rf.skins.backup end
	for _,v in pairs(vs:GetDescendants())do
		if v.ClassName == "Part" and v.Name ~= "cloud" and (v.Parent==vs or v.Name == "pack") and v~=vs.dot then
			if v:FindFirstChild("Mesh") then
				v.Mesh.TextureId = obt.Mesh.TextureId
			end
			if v:FindFirstChild("skin") then
				v.skin.Mesh.TextureId = obt.Mesh.TextureId
			end
			v.Reflectance = obt.Reflectance
			v.BrickColor = BrickColor.Gray()
		end
	end
	print(obt)
	vs.dot.Mesh.TextureId = ""
	vs.dot.Reflectance = obt.Reflectance
	vs.dot.Color = obt.dot.Value
	vs.dot.L1.Color = obt.dot.Value
	updateHat()
end
--
function updateTex()
	if faceDir[chosenTexture].jetpack then
		trs1.jetpack.Mesh.TextureId = faceDir[chosenTexture].jetpack
	end
	if not dontChange and faceDir[chosenTexture].palette then
		trs.Mesh.TextureId = faceDir[chosenTexture].palette
		lega.Mesh.TextureId = trs.Mesh.TextureId
		legb.Mesh.TextureId = trs.Mesh.TextureId
		arma.Mesh.TextureId = trs.Mesh.TextureId
		armb.Mesh.TextureId = trs.Mesh.TextureId
		armc.Mesh.TextureId = trs.Mesh.TextureId
		armd.Mesh.TextureId = trs.Mesh.TextureId

		hed.Mesh.TextureId = faceDir[chosenTexture].palette
	end

	if faceDir[chosenTexture].battery then
		for i = 1, 4 do
			trs1[`bt{i}`].Mesh.TextureId = faceDir[chosenTexture].battery
		end
	end
	
	hed.Mesh.VertexColor = Vector3.one
	updateHat()
end
function setitem(v)
	local t = string.sub(v,1,1)
	local nm = tonumber(string.sub(v,2,-1))
	if t == "F" then
		chosenTexture = textable[nm]
		updateTex()
	end
end
updateTex()
--
local hatFalloff = false
--
function ragdoll(vel)
	dot.RopeConstraint.Enabled = true
	for _, v in m:GetChildren() do
		if v:IsA("BasePart") then
			v.Massless = false
			v.CustomPhysicalProperties = PhysicalProperties.new(Enum.Material.Plastic)
		end
	end
	if trs1:FindFirstChild("hat") then
		if not hatFalloff then
			local weldc = Instance.new("WeldConstraint")
			weldc.Parent = m
			weldc.Part0 = trs1.hat
			weldc.Part1 = m.head
		else
			trs1.hat.Anchored = false
		end
		trs1.hat.Parent = m
	end
	trs.Size = Vector3.new(1.2, 1.6, 1)
	lega.Size = Vector3.new(0.6, 1, 1)
	legb.Size = Vector3.new(0.6, 1, 1)
	arma.Size = Vector3.new(0.6, 1.2, 0.6)
	armb.Size = Vector3.new(0.6, 1.2, 0.6)
	armc.Size = Vector3.new(0.6, 1.2, 0.6)
	armd.Size = Vector3.new(0.6, 1.2, 0.6)
	hed.Size = Vector3.new(2, 1.8, 2)
	trs12.Size = Vector3.zero
	local weldc = Instance.new("WeldConstraint")
	weldc.Parent = m
	weldc.Part0 = skin
	weldc.Part1 = hed
	local torso = trs
	local nk = Instance.new("Attachment")
	nk.Name = "nk"
	nk.CFrame = CFrame.new(0, 0.7999997138977051, 0)
	nk.WorldPosition = Vector3.new(2, 5.099992275238037, -37.5)
	nk.WorldCFrame = CFrame.new(2, 5.099992275238037, -37.5)
	nk.Position = Vector3.new(0, 0.7999997138977051, 0)
	nk.Parent = torso

	local BallSocketConstraint = Instance.new("BallSocketConstraint")
	BallSocketConstraint.TwistLimitsEnabled = true
	BallSocketConstraint.LimitsEnabled = true
	BallSocketConstraint.Parent = nk

	local rs = Instance.new("Attachment")
	rs.Name = "rs"
	rs.CFrame = CFrame.new(0.5999999046325684, 0.5, 0)
	rs.WorldPosition = Vector3.new(2.5999999046325684, 4.799992561340332, -37.5)
	rs.WorldCFrame = CFrame.new(2.5999999046325684, 4.799992561340332, -37.5)
	rs.Position = Vector3.new(0.5999999046325684, 0.5, 0)
	rs.Parent = torso

	local BallSocketConstraint1 = Instance.new("BallSocketConstraint")
	BallSocketConstraint1.Parent = rs

	local ls = Instance.new("Attachment")
	ls.Name = "ls"
	ls.CFrame = CFrame.new(-0.6000001430511475, 0.5, 0)
	ls.WorldPosition = Vector3.new(1.3999998569488525, 4.799992561340332, -37.5)
	ls.WorldCFrame = CFrame.new(1.3999998569488525, 4.799992561340332, -37.5)
	ls.Position = Vector3.new(-0.6000001430511475, 0.5, 0)
	ls.Parent = torso

	local BallSocketConstraint2 = Instance.new("BallSocketConstraint")
	BallSocketConstraint2.Parent = ls

	local lh = Instance.new("Attachment")
	lh.Name = "lh"
	lh.CFrame = CFrame.new(-0.3999999761581421, -0.6999926567077637, -0.09999847412109375)
	lh.WorldPosition = Vector3.new(1.600000023841858, 3.5999999046325684, -37.599998474121094)
	lh.WorldCFrame = CFrame.new(1.600000023841858, 3.5999999046325684, -37.599998474121094)
	lh.Position = Vector3.new(-0.3999999761581421, -0.6999926567077637, -0.09999847412109375)
	lh.Parent = torso

	local BallSocketConstraint3 = Instance.new("BallSocketConstraint")
	BallSocketConstraint3.Parent = lh

	local rh = Instance.new("Attachment")
	rh.Name = "rh"
	rh.CFrame = CFrame.new(0.40000009536743164, -0.6999926567077637, -0.09999847412109375)
	rh.WorldPosition = Vector3.new(2.4000000953674316, 3.5999999046325684, -37.599998474121094)
	rh.WorldCFrame = CFrame.new(2.4000000953674316, 3.5999999046325684, -37.599998474121094)
	rh.Position = Vector3.new(0.40000009536743164, -0.6999926567077637, -0.09999847412109375)
	rh.Parent = torso

	local BallSocketConstraint4 = Instance.new("BallSocketConstraint")
	BallSocketConstraint4.Parent = rh

	local head = hed

	local hnk = Instance.new("Attachment")
	hnk.Name = "hnk"
	hnk.CFrame = CFrame.new(0, -1, 0)
	hnk.WorldPosition = Vector3.new(2, 5.099992752075195, -37.5)
	hnk.WorldCFrame = CFrame.new(2, 5.099992752075195, -37.5)
	hnk.Position = Vector3.new(0, -1, 0)
	hnk.Parent = head

	local legA = lega

	local Attachment = Instance.new("Attachment")
	Attachment.CFrame = CFrame.new(0, 0.5000002384185791, 0)
	Attachment.WorldPosition = Vector3.new(2.4000015258789062, 3.5999979972839355, -37.599998474121094)
	Attachment.WorldCFrame = CFrame.new(2.4000015258789062, 3.5999979972839355, -37.599998474121094)
	Attachment.Position = Vector3.new(0, 0.5000002384185791, 0)
	Attachment.Parent = legA

	local legB = legb

	local Attachment1 = Instance.new("Attachment")
	Attachment1.CFrame = CFrame.new(0, 0.5000002384185791, 0)
	Attachment1.WorldPosition = Vector3.new(1.5999984741210938, 3.5999979972839355, -37.599998474121094)
	Attachment1.WorldCFrame = CFrame.new(1.5999984741210938, 3.5999979972839355, -37.599998474121094)
	Attachment1.Position = Vector3.new(0, 0.5000002384185791, 0)
	Attachment1.Parent = legB

	local armD = armd

	local de = Instance.new("Attachment")
	de.Name = "de"
	de.WorldSecondaryAxis = Vector3.new(0, 0, 1)
	de.WorldOrientation = Vector3.new(-0, -90, -90)
	de.CFrame = CFrame.new(0, -9.5367431640625e-07, 0.5499992370605469, 0, -1, -0, -1, 0, -0, 0, 0, -1)
	de.WorldPosition = Vector3.new(0.4500007629394531, 4.799991607666016, -37.5)
	de.Axis = Vector3.new(0, -1, 0)
	de.Rotation = Vector3.new(180, -0, 90)
	de.WorldCFrame = CFrame.new(0.4500007629394531, 4.799991607666016, -37.5, 0, 0, -1, -1, 0, -0, 0, 1, 0)
	de.SecondaryAxis = Vector3.new(-1, 0, 0)
	de.WorldAxis = Vector3.new(0, -1, 0)
	de.Orientation = Vector3.new()
	de.Position = Vector3.new(0,0.55,0)
	de.Parent = armD

	local armB = armb

	local bs = Instance.new("Attachment")
	bs.Name = "bs"
	bs.WorldSecondaryAxis = Vector3.new(-1, 0, 0)
	bs.WorldOrientation = Vector3.new(90, -90, 0)
	bs.CFrame = CFrame.new(0, -0.39999985694885254, 0)
	bs.WorldPosition = Vector3.new(1.3000013828277588, 4.799992561340332, -37.5)
	bs.WorldCFrame = CFrame.new(1.3000013828277588, 4.799992561340332, -37.5, 0, -1, 0, 0, 0, -1, 1, 0, 0)
	bs.Position = Vector3.new(0, -0.39999985694885254, 0)
	bs.WorldAxis = Vector3.new(0, 0, 1)
	bs.Parent = armB

	local be = Instance.new("Attachment")
	be.Name = "be"
	be.WorldSecondaryAxis = Vector3.new(-7.450580596923828e-08, -2.2351741790771484e-08, 1)
	be.WorldOrientation = Vector3.new(-9.54166352049382e-14, -90, -90)
	be.CFrame = CFrame.new(0.000003814697265625, 0.40000152587890625, 9.5367431640625e-07, -2.2351741790771484e-08, 1, -7.450580596923828e-08, -0, 7.450580596923828e-08, 1, 1, 2.2351741790771484e-08, -1.6653345369377348e-15)
	be.WorldPosition = Vector3.new(0.5, 4.799991607666016, -37.499996185302734)
	be.Axis = Vector3.new(-2.2351741790771484e-08, -0, 1)
	be.Rotation = Vector3.new(-90, -0.00000426886799687054, -90)
	be.WorldCFrame = CFrame.new(0.5, 4.799991607666016, -37.499996185302734, 0, -7.450580596923828e-08, -1, -1, -2.2351741790771484e-08, 1.6653345369377348e-15, -2.2351741790771484e-08, 1, -7.450580596923828e-08)
	be.SecondaryAxis = Vector3.new(1, 7.450580596923828e-08, 2.2351741790771484e-08)
	be.Position = Vector3.new(0.000003814697265625, 0.40000152587890625, 9.5367431640625e-07)
	be.Orientation = Vector3.new()
	be.WorldAxis = Vector3.new(0, -1, -2.2351741790771484e-08)
	be.Parent = armB

	local HingeConstraint = Instance.new("HingeConstraint")
	HingeConstraint.Parent = be

	local armA = arma

	local ae = Instance.new("Attachment")
	ae.Name = "ae"
	ae.WorldSecondaryAxis = Vector3.new(-4.371138828673793e-08, -4.371138828673793e-08, -1)
	ae.WorldOrientation = Vector3.new(1.0947421083800507e-13, 90, -90)
	ae.CFrame = CFrame.new(0, 0.40000009536743164, 0, -4.371138828673793e-08, 1, 4.371138828673793e-08, 0, -4.371138828673793e-08, 1, 1, 4.371138828673793e-08, 1.910685465164705e-15)
	ae.WorldPosition = Vector3.new(3.500002384185791, 4.799992561340332, -37.5)
	ae.Axis = Vector3.new(-4.371138828673793e-08, 0, 1)
	ae.Rotation = Vector3.new(-90, 0.000002504477834008867, -90)
	ae.WorldCFrame = CFrame.new(3.500002384185791, 4.799992561340332, -37.5, 0, -4.371138828673793e-08, 1, -1, -4.371138828673793e-08, -1.910685465164705e-15, 4.371138828673793e-08, -1, -4.371138828673793e-08)
	ae.SecondaryAxis = Vector3.new(1, -4.371138828673793e-08, 4.371138828673793e-08)
	ae.Position = Vector3.new(0, 0.40000009536743164, 0)
	ae.Orientation = Vector3.new()
	ae.WorldAxis = Vector3.new(0, -1, 4.371138828673793e-08)
	ae.Parent = armA

	local HingeConstraint1 = Instance.new("HingeConstraint")
	HingeConstraint1.Parent = ae

	local as = Instance.new("Attachment")
	as.Name = "as"
	as.WorldSecondaryAxis = Vector3.new(1, 0, 0)
	as.WorldOrientation = Vector3.new(90, 90, 0)
	as.CFrame = CFrame.new(0, -0.39999985694885254, 0)
	as.WorldPosition = Vector3.new(2.700002431869507, 4.799992561340332, -37.5)
	as.WorldCFrame = CFrame.new(2.700002431869507, 4.799992561340332, -37.5, 0, 1, 0, 0, 0, -1, -1, 0, 0)
	as.Position = Vector3.new(0, -0.39999985694885254, 0)
	as.WorldAxis = Vector3.new(0, 0, -1)
	as.Parent = armA

	local armC = armc

	local ce = Instance.new("Attachment")
	ce.Name = "ce"
	ce.WorldSecondaryAxis = Vector3.new(0, 0, -1)
	ce.WorldOrientation = Vector3.new(-0, 90, -90)
	ce.CFrame = CFrame.new(0, -9.5367431640625e-07, 0.5499992370605469, 0, -1, -0, -1, 0, -0, 0, 0, -1)
	ce.WorldPosition = Vector3.new(3.450000762939453, 4.799991607666016, -37.5)
	ce.Axis = Vector3.new(0, -1, 0)
	ce.Rotation = Vector3.new(180, -0, 90)
	ce.WorldCFrame = CFrame.new(3.450000762939453, 4.799991607666016, -37.5, 0, 0, 1, -1, 0, -0, 0, -1, -0)
	ce.SecondaryAxis = Vector3.new(-1, 0, 0)
	ce.WorldAxis = Vector3.new(0, -1, 0)
	ce.Orientation = Vector3.new()
	ce.Position = Vector3.new(0,0.55,0)
	ce.Parent = armC

	BallSocketConstraint.Attachment0 = nk
	BallSocketConstraint.Attachment1 = hnk

	BallSocketConstraint1.Attachment0 = rs
	BallSocketConstraint1.Attachment1 = as

	BallSocketConstraint2.Attachment0 = ls
	BallSocketConstraint2.Attachment1 = bs

	BallSocketConstraint3.Attachment0 = lh
	BallSocketConstraint3.Attachment1 = Attachment1

	BallSocketConstraint4.Attachment0 = rh
	BallSocketConstraint4.Attachment1 = Attachment

	HingeConstraint.Attachment0 = be
	HingeConstraint.Attachment1 = de

	HingeConstraint.LimitsEnabled = true
	HingeConstraint.LowerAngle = -145
	HingeConstraint.UpperAngle = 0

	HingeConstraint1.Attachment0 = ae
	HingeConstraint1.Attachment1 = ce
	HingeConstraint1.LimitsEnabled = true
	HingeConstraint1.LowerAngle = -145
	HingeConstraint1.UpperAngle = 0

	for i,v in madel:GetDescendants() do
		if v:isA("BasePart") then
			v.Anchored = false
			v.Velocity = vel
		end
		if v:IsA("BasePart") and v:CanSetNetworkOwnership() then
			v.CanCollide = true
			v:SetNetworkOwner(nil)
		end
	end
	dot.VectorForce:Destroy()
	dot.BodyGyro:Destroy()
	eyes.Texture = faceDir[chosenTexture].eyes.ouch
	mouth.Texture = faceDir[chosenTexture].mouth.sad
	trs1:Destroy()
end
--
local f = Instance.new("Decal")
f.Name = "face"
f.Parent = g
f.Transparency = 1
for i,v in pairs(madel:GetDescendants()) do
	if v ~= char and v:IsA("BasePart") and v ~= dot then
		v.CustomPhysicalProperties = PhysicalProperties.new(0,0,0,0,0)
		v.CanCollide = false
	end
end
--
Part = trs
local RightCollarAttachment = Instance.new("Attachment")
RightCollarAttachment.Name = "RightCollarAttachment"
RightCollarAttachment.CFrame = CFrame.new(0.6000003814697266, 0.7000002861022949, 0)
RightCollarAttachment.WorldPosition = Vector3.new(29.600000381469727, 1.2000043392181396, 152)
RightCollarAttachment.WorldCFrame = CFrame.new(29.600000381469727, 1.2000043392181396, 152)
RightCollarAttachment.Position = Vector3.new(0.6000003814697266, 0.7000002861022949, 0)
RightCollarAttachment.Parent = Part

local WaistBackAttachment = Instance.new("Attachment")
WaistBackAttachment.Name = "WaistBackAttachment"
WaistBackAttachment.CFrame = CFrame.new(0, -0.7000000476837158, 0.5)
WaistBackAttachment.WorldPosition = Vector3.new(29, -0.19999605417251587, 152.5)
WaistBackAttachment.WorldCFrame = CFrame.new(29, -0.19999605417251587, 152.5)
WaistBackAttachment.Position = Vector3.new(0, -0.7000000476837158, 0.5)
WaistBackAttachment.Parent = Part

local WaistCenterAttachment = Instance.new("Attachment")
WaistCenterAttachment.Name = "WaistCenterAttachment"
WaistCenterAttachment.CFrame = CFrame.new(0, -0.7000000476837158, 0)
WaistCenterAttachment.WorldPosition = Vector3.new(29, -0.19999605417251587, 152)
WaistCenterAttachment.WorldCFrame = CFrame.new(29, -0.19999605417251587, 152)
WaistCenterAttachment.Position = Vector3.new(0, -0.7000000476837158, 0)
WaistCenterAttachment.Parent = Part

local WaistFrontAttachment = Instance.new("Attachment")
WaistFrontAttachment.Name = "WaistFrontAttachment"
WaistFrontAttachment.CFrame = CFrame.new(0, -0.7000000476837158, -0.5)
WaistFrontAttachment.WorldPosition = Vector3.new(29, -0.19999605417251587, 151.5)
WaistFrontAttachment.WorldCFrame = CFrame.new(29, -0.19999605417251587, 151.5)
WaistFrontAttachment.Position = Vector3.new(0, -0.7000000476837158, -0.5)
WaistFrontAttachment.Parent = Part

local NeckAttachment = Instance.new("Attachment")
NeckAttachment.Name = "NeckAttachment"
NeckAttachment.CFrame = CFrame.new(0, 0.8000001907348633, 0)
NeckAttachment.WorldPosition = Vector3.new(29, 1.300004243850708, 152)
NeckAttachment.WorldCFrame = CFrame.new(29, 1.300004243850708, 152)
NeckAttachment.Position = Vector3.new(0, 0.8000001907348633, 0)
NeckAttachment.Parent = Part

local BodyFrontAttachment = Instance.new("Attachment")
BodyFrontAttachment.Name = "BodyFrontAttachment"
BodyFrontAttachment.CFrame = CFrame.new(0, 0, -0.5)
BodyFrontAttachment.WorldPosition = Vector3.new(29, 0.5000039935112, 151.5)
BodyFrontAttachment.WorldCFrame = CFrame.new(29, 0.5000039935112, 151.5)
BodyFrontAttachment.Position = Vector3.new(0, 0, -0.5)
BodyFrontAttachment.Parent = Part

local LeftCollarAttachment = Instance.new("Attachment")
LeftCollarAttachment.Name = "LeftCollarAttachment"
LeftCollarAttachment.CFrame = CFrame.new(-0.5, 0.6999998092651367, 0)
LeftCollarAttachment.WorldPosition = Vector3.new(28.5, 1.2000038623809814, 152)
LeftCollarAttachment.WorldCFrame = CFrame.new(28.5, 1.2000038623809814, 152)
LeftCollarAttachment.Position = Vector3.new(-0.5, 0.6999998092651367, 0)
LeftCollarAttachment.Parent = Part

local BodyBackAttachment = Instance.new("Attachment")
BodyBackAttachment.Name = "BodyBackAttachment"
BodyBackAttachment.CFrame = CFrame.new(0, 0, 0.5)
BodyBackAttachment.WorldPosition = Vector3.new(29, 0.5000039935112, 152.5)
BodyBackAttachment.WorldCFrame = CFrame.new(29, 0.5000039935112, 152.5)
BodyBackAttachment.Position = Vector3.new(0, 0, 0.5)
BodyBackAttachment.Parent = Part
--
local FaceCenterAttachment = Instance.new("Attachment",g)
FaceCenterAttachment.Name = "FaceCenterAttachment"
FaceCenterAttachment.CFrame = CFrame.new(0, 0, -1)
FaceCenterAttachment.WorldPosition = Vector3.new(23.699996948242188, 6.099992752075195, 23.10000228881836)
FaceCenterAttachment.WorldCFrame = CFrame.new(23.699996948242188, 6.099992752075195, 23.10000228881836)
FaceCenterAttachment.Position = Vector3.new(0, 0, -1)
local FaceFrontAttachment = Instance.new("Attachment",g)
FaceFrontAttachment.Name = "FaceFrontAttachment"
FaceFrontAttachment.CFrame = CFrame.new(0, 0, -1)
FaceFrontAttachment.WorldPosition = Vector3.new(23.699996948242188, 6.099992752075195, 23.10000228881836)
FaceFrontAttachment.WorldCFrame = CFrame.new(23.699996948242188, 6.099992752075195, 23.10000228881836)
FaceFrontAttachment.Position = Vector3.new(0, 0, -1)
local HairAttachment = Instance.new("Attachment",g)
HairAttachment.Name = "HairAttachment"
HairAttachment.WorldPosition = Vector3.new(23.699996948242188, 6.099992752075195, 24.10000228881836)
HairAttachment.WorldCFrame = CFrame.new(23.699996948242188, 6.099992752075195, 24.10000228881836)
local HatAttachment = Instance.new("Attachment",g)
HatAttachment.Name = "HatAttachment"
HatAttachment.CFrame = CFrame.new(0, 1, 0)
HatAttachment.WorldPosition = Vector3.new(23.699996948242188, 7.099992752075195, 24.10000228881836)
HatAttachment.WorldCFrame = CFrame.new(23.699996948242188, 7.099992752075195, 24.10000228881836)
HatAttachment.Position = Vector3.new(0, 1, 0)
--
madel.PrimaryPart = g2
--
local pack = trs1.pack
local dmg = trs.damage
local m = hed.Mesh
local frame = 0
local lastblink = 0
local mrnd = math.random
local blinkswitch = -mrnd(7,17)
local damagetick = 0
local dancing = false
local dmgblink = 0
local chartrans = 0
local gc = workspace.GetChildren
local gd = workspace.GetDescendants
local health = 4
local dmgcd = 0
local lastframe = frame
local lastdmgblink = frame
local bts = {
	['1'] = trs1.bt1,
	['2'] = trs1.bt2,
	['3'] = trs1.bt3,
	['4'] = trs1.bt4,
}
--
local tpc = 0
local dmgtick = -50
--
rf.hats.hat0.Name = "hat1"
rf.hats.hat1.id.Value = 1
--
function updatehealth()
	h.Health = (100 / 4) * health
	madel:SetAttribute("health", health)
end
function damage(dmgpoints)
	if tick()-dmgcd < 2 then return end
	dmgcd = tick()
	dmg:Play()
	damagetick = tick()
	dmgtick = tick()
	for i = 1, dmgpoints or 1 do
		vdamage(health, true)
		health = health - 1
	end
	updatehealth()
	if health <= 0 then
		died()
	end
end
function vdamage(batteries, only)
	if health >= 4 then
		pop(trs1.pack)
	end
	for i = (only and batteries) or 1, batteries do
		pop(trs1['bt'..i])
	end
end
function pop(inst)
	local b = inst:Clone()
	local point = char.CFrame
	b.Parent, b.CFrame, b.Anchored, b.CanCollide = script, trs1.pack.CFrame, false, true
	b.Velocity, b.RotVelocity = -point.lookVector*10 + Vector3.new(0,20), point.rightVector*10
	task.delay(15, function()
		b:Destroy()
	end)
end
--
tscale = Vector3.new()
local animcf = {
	torso = {
		CFrame = CFrame.new()
	},
	armA = {
		CFrame = CFrame.new()
	},
	armB = {
		CFrame = CFrame.new()
	},
	armC = {
		CFrame = CFrame.new()
	},
	armD = {
		CFrame = CFrame.new()
	},
	legA = {
		CFrame = CFrame.new()
	},
	legB = {
		CFrame = CFrame.new()
	},
	head = {
		CFrame = CFrame.new()
	},
}
local lerps = {}
--
localscript = NLS([[local runService = game:GetService("RunService")
local players = game:GetService("Players")
local uis = game:GetService("UserInputService")


local localPlayer = players.LocalPlayer

local _debug = false
function log(...)
	if not _debug then
		return
	end
	print(...)
end

local UI = localPlayer.PlayerGui:WaitForChild("UI")
local characterModel = script.Parent
local char = characterModel:WaitForChild("char")
local vis = characterModel
local hum = characterModel:WaitForChild("Humanoid")
hum.AutoRotate = false

local dot = vis.dot:Clone()
local fdot = vis.dot
fdot.Name = "fdot"
fdot:ClearAllChildren()
dot.Parent = vis
fdot.Transparency = 1

fdot:GetPropertyChangedSignal("Color"):Connect(function()
	dot.Color = fdot.Color
end)

local rf = vis:WaitForChild("rf"):WaitForChild("rf")
local p34 = vis

local charTRS = characterModel.trs
local board = charTRS.board
local w1 = board.w1
local w2 = board.w2
local jetpack = charTRS.jetpack
local booster = jetpack.booster

do
	local v = Instance.new("Vector3Value", vis.dot)
	v.Name = "vel"
end

local torso = characterModel.Torso
local head = characterModel.Head
local root = characterModel.HumanoidRootPart 

local rem = script:WaitForChild("RemoteEvent").Value

local died = false
function server_damage()
	task.delay(0.001, function()
		rem:FireServer("damage")
	end)
end
function OW(b)
	died = true
	workspace.CurrentCamera.CameraType = "Custom"
	workspace.CurrentCamera.CameraSubject = head
	game:GetService("UserInputService").MouseBehavior = Enum.MouseBehavior.Default
	if not b then
		rem:FireServer("died",char.Velocity)
	end
	for i,v in pairs(dot:GetChildren()) do
		v.Parent = fdot
	end
	fdot.Transparency = 0
	fdot.Anchored = false
	dot:Destroy()
end
hum.Died:Connect(OW)
rem.OnClientEvent:Connect(function(t,v)
	if t == "died" then
		OW(true)
	elseif t == "hp" then	
		health = v
	end
end)

local plam = workspace:FindFirstChild("plam")
if not runService:IsStudio() then
	plam = characterModel:WaitForChild("plam")
end

textsel = UI.pause.bg.pause.close
lockhats = {}
lockskin = {

}
for i, v in pairs(rf.skins:GetChildren()) do
	lockskin[v.id.Value] = true
end
for i, v in pairs(rf.hats:GetChildren()) do
	if v.Name:find("hat") then
		lockhats[v.id.Value] = true
	end
end

lockfaces = {
	[0] = true,
	[1] = true
}
texface = 0

local pst = Vector3.zero

function hatpage()
	local list = {}
	local item = {}
	for i, v in pairs(lockhats)do
		if v then
			list[#list+1] = "rbxassetid://"..rf.hats["hat"..i].icon.Value
			item[#item+1] = "H"..i
		end
	end
	for i, v in pairs(lockskin)do
		if v then
			local obt
			for _, v in pairs(rf.skins:GetChildren())do if v.id.Value == i then obt = v break end end
			list[#list+1] = "rbxassetid://"..obt.icon.Value
			item[#item+1] = "S"..i
		end
	end
	for i, v in pairs(lockfaces)do
		if v then
			local obt
			for _, v in pairs(rf.faces:GetChildren())do if v.id.Value == i then obt = v break end end
			list[#list+1] = "rbxassetid://"..obt.icon.Value
			item[#item+1] = "F"..i
		end
	end
	out(UI.pause.bg.clothing.page,"Page "..UI.pause.bg.clothing.pagee.Value.."/4")
	UI.pause.bg.clothing.load.Visible = true
	UI.pause.bg.clothing.load.Visible = false
	local numb=0
	for _, v in pairs(UI.pause.bg.clothing:GetChildren())do
		if v.Name == "hatm" then
			numb = v.nob.Value+(UI.pause.bg.clothing.pagee.Value-1)*16
			v.Image = list[numb] or ""
			v.item.Value = item[numb] or ""
		elseif v.Name == "wearing"then
			if v.nob.Value == 1 then
				v.Image = hat~=0 and "rbxassetid://"..rf.hats["hat"..hat].icon.Value or "rbxassetid://2554418665"
			elseif v.nob.Value == 2 then
				v.Image = ""
				for _,y in pairs(rf.skins:GetChildren())do
					if y.id.Value == skin then
						v.Image = "rbxassetid://"..y.icon.Value
						break
					end
				end
			elseif v.nob.Value == 3 then
				v.Image = ""
				for _,y in pairs(rf.faces:GetChildren())do
					if y.id.Value == texface then
						v.Image = "rbxassetid://"..y.icon.Value
						break
					end
				end
			else
				v.Image = ""
			end
		end
	end
end

function toskin(id, vs)
	if true then
		rem:FireServer("toskin", id)
		return
	end
	if not vs then
		vs = vis
		skin = id
	end
	local obt
	for _, v in pairs(rf.skins:GetChildren())do
		if v.id.Value == id then
			obt = v
			break
		end
	end
	if not obt then obt = rf.skins.backup end
	for _,v in pairs(vs:GetDescendants())do
		if v.ClassName == "Part" and v.Name ~= "cloud" and (v.Parent==vs or v.Name == "pack") and v~=vs.dot then
			if v:FindFirstChild("Mesh") then
				v.Mesh.TextureId = obt.Mesh.TextureId
			end
			if v:FindFirstChild("skin") then
				v.skin.Mesh.TextureId = obt.Mesh.TextureId
			end
			v.Reflectance = 0
			v.BrickColor = BrickColor.Gray()
		end
	end
	print(obt)
	vs.dot.Mesh.TextureId = ""
	vs.dot.Reflectance = 0
	vs.dot.Color = obt.dot.Value
	vs.dot.L1.Color = obt.dot.Value
end

textbuttons = {
	close = function()
		pause()
	end,
	icecream = function()

	end,
	snap = function()
		UI.UI.Visible = false
		UI.pause.Visible = false
		textsel = nil
		game.StarterGui:SetCore("TopbarEnabled", false)
		UI.skip.Visible = true
		out(UI.skip, "Close")
	end,
	clothing = function()
		hatpage()
		textsel = UI.pause.bg.clothing.PLeft4
		UI.pause.bg.pause.Visible = false
		UI.pause.bg.clothing.Visible = true
	end,
	camera = function()
		stillcam = not stillcam
		UI.pause.bg.pause.camera.icon.ImageRectOffset = Vector2.new(stillcam and 128 or 0, 128)
	end,
	hub2 = function()

	end,
	quit2 = function()

	end,
	hub = function()
		textsel = UI.pause.bg.hub.no
		UI.pause.bg.pause.Visible = false
		UI.pause.bg.hub.Visible = true
	end,
	quit = function()
		textsel = UI.pause.bg.quit.no
		UI.pause.bg.pause.Visible = false
		UI.pause.bg.quit.Visible = true
	end,
	PLeft1 = function()

	end,
	PRight1 = function()

	end,
	no = function()
		textsel = UI.pause.bg.pause.close
		UI.pause.bg.pause.Visible = true
		UI.pause.bg.hub.Visible = false
		UI.pause.bg.quit.Visible = false
		UI.pause.bg.icecream.Visible = false
		UI.pause.bg.clothing.Visible = false
	end,
	hatm = function()
		if string.sub(textsel.item.Value,1,1) == "H" then
			local nm = tonumber(string.sub(textsel.item.Value,2,-1))
			hat = hat==nm and 0 or nm
		elseif string.sub(textsel.item.Value,1,1) == "S" then
			local nm = tonumber(string.sub(textsel.item.Value,2,-1))
			skin = nm
			toskin(skin, vis)
		elseif string.sub(textsel.item.Value,1,1) == "F" then
			local nm = tonumber(string.sub(textsel.item.Value,2,-1))
			texface = nm
		end
		rem:FireServer("change", textsel.item.Value)
		hatpage()
	end,
	PLeft4 = function()
		UI.pause.bg.clothing.pagee.Value = math.max(1, UI.pause.bg.clothing.pagee.Value-1)
		hatpage()
	end,
	PRight4 = function()
		UI.pause.bg.clothing.pagee.Value = math.min(4, UI.pause.bg.clothing.pagee.Value+1)
		hatpage()
	end,
	wearing = function()
		if textsel.nob.Value == 1 then
			hat=0
			textsel.Image = hat~=0 and "rbxassetid://"..rf.hats["hat"..hat].icon.Value or "rbxassetid://2554418665"
		end
	end,
	TextBox = function()
		textsel:CaptureFocus()
	end,

}
--
local enablePhysWhilePaused = true
local allowPauseWhenNoCanMove = true
--
function pause(tr, playlevel, user)
	if tick() then
		if user and UI.loop.Visible then
			print(UI.loop.Visible)
			return 
		end
		if not debounce and not talkto and (canmove or allowPauseWhenNoCanMove) and not anicam and not gotice then
			if tr then
				button.Parent = rf
				textsel = UI.pause.bg.pause.close
				snapshotcam.Parent = script
				snapshotcam.CFrame = CFrame.new(vcf.p)
				snapshotcam.Velocity = Vector3.new()
				tojump, todive = 0, 0
				UI.pause.bg.pause.Visible = true
				UI.pause.bg.icecream.Visible = false
				UI.pause.bg.clothing.Visible = false
				UI.pause.bg.hub.Visible = false
				UI.pause.bg.quit.Visible = false
				vis.head.Beam.Enabled = true
				dir = Vector3.new()
				MouseBehavior = Enum.MouseBehavior.Default
			else
				UI.skip.Visible = false
				textsel = nil
				pzom = 0
				snapshotcam.Parent = rf
				UI.UI.Visible = true
				game.StarterGui:SetCore("TopbarEnabled", true)
			end
			if enablePhysWhilePaused then
				canmove = not tr
			else
				char.Anchored = tr
			end
			paused = tr

			for _,v in pairs(enemies)do
				v[2].col.Anchored = tr
			end
			UI.pause.bg.Visible = true
			UI.pause.Visible = tr
		end
	end 
end
local lst = UI.pause:GetDescendants()

for _,v in pairs(lst)do
	if v.Name == "outline" then
		v.Active = false
		v.Interactable = false
	end
	if v.ClassName == "TextButton" or v.ClassName == "ImageButton" then
		if textbuttons[v.Name] then
			v.MouseButton1Click:connect(textbuttons[v.Name])
		end
		v.InputChanged:connect(function()console = false textsel = v end)
		v.InputBegan:connect(function()console = false textsel = v end)
	elseif v.ClassName == "TextBox" then
		v.InputChanged:connect(function()console = false textsel = v end)
		v.InputBegan:connect(function()console = false textsel = v end)
	end
end
UI.UI.pause.MouseButton1Down:connect(function()
	pause(not paused,nil,true)
end)

typing = false

sitdebounce = 0

capecf = CFrame.identity

lp = game.Players.LocalPlayer
ms = lp:GetMouse()

mps = CFrame.identity

fastmode = 1

kartlerp = 0
siterp = 0

forcesit = false
sitting= false

skin = 1
hat = 1

toskin(skin, vis)

deadzone = .3

shrink = false
watertick = 0

swiperp = 0
rollerp = 0
flamerp = 0

hasboard = false

swip = false
didjump = false
hasflame = false
flameon = false
rolling = false

trsing = false
trsdeb = false
earlystart = false
mapswitching = false

skatestat = {nil,0,0,false,0}

rg3 = {}
spinCF = {}
enemies = {}
button = rf.button
btnadn = nil
btntick = 0
textbox = rf.textbox
icebg = rf.icebg
snapshotcam = rf.snapcam
songplay = "bgm"

faceid = 0

flamecf = CFrame.identity
boarderp = Vector3.new()
lockcam = false
istitle = false
scale = Vector3.new(1,1,1)
point = CFrame.new()
talking = false
w, a, s, d = 0,0,0,0
tticket = 0
dUP, dDN, dLF, dRT = 0,0,0,0
tojump, todive = 0,0
snapcam = 0
snapto = Vector3.new()
z1, z2 = 0,0
st1, st2 = Vector3.new(), Vector3.new()
ms2 = Vector3.new()
mslock = false
zoom = 2
pzom = 2
rotand = 0
botand = 0
potand = 0
flipo = 0
crouch = false
fcrouch = false
croucherp = 0
crouchtick = tick()
djump = false
jumping = false
fallerp = 0
fallvr = 1
longjump = false
longerp = 0
ground = nil
pheight = nil
timeland = 0
camcf = CFrame.new()
vcf = CFrame.new()
campitch = 0
sliding = false
sliderp = 0
walktick = 0
walklerp = 0
attack = false
aterp = 0
onrope = nil
roperp = 0
ropetick = 0
debounce = false
wallrun = nil
wallnorm = Vector3.new()
wallerp = 0
walkfx = 1
ledgegrab = nil
ledgepoint = Vector3.new()
lederp = 0
studder = false
paused = false
speed = 1
particles = {}
hold = nil
holderp = 0
neargrab = nil
sticko = 0
pound = false
talkto = nil
talktn = 1
console = false
bforce = Vector3.new()
bdamp = Vector3.new()
pole = nil
polerp = 0
candrop = true
hasfly = false
flying = false
flyerp = 0
flypitch = 0
flyspeed = 0
swimming = false
swimerp = 0
stillcam = false
health = 4
hpdeb = false
infwater = false
smoothing = 1
lookat = CFrame.new()*CFrame.Angles(0,2,0)
lookerp = 0
trdo = 1
safecf = CFrame.new(0, 50, 0)
safetick = tick()
skate = false
skaterp = 0
candy = 0
scandy = 0
eggs = 0
gotice = false
icedcream = 0
walkto = nil
canmove = true
rendist = 60
camtand = Vector3.new()
dancing = false
dancerp = 0
indoors = false
firstperson = false
scale = Vector3.new(1,1,1)
anicam = nil
attacktick = tick()

textgo = false

ignore = {}

tscale = Vector3.new()


uis.InputBegan:connect(function(k, i)
	if i then
		return
	end
	if not typing then
		local t = k
		k = k.KeyCode.Name
		if k == "C" then
			stillcam = not stillcam
			print("Follow camera "..(stillcam and "disabled" or "enabled"))
		end
		if k == "R" then
			hasfly = not hasfly
			if hasboard then
				hasboard = false
			end
			if hasflame then
				hasflame = false
			end
		end
		if k == "T" then
			hasboard = not hasboard
			if hasfly then
				hasfly = false
			end
			if hasflame then
				hasflame = false
			end
		end
		if k == "Y" then
			hasflame = not hasflame
			if hasboard then
				hasboard = false
			end
			if hasfly then
				hasfly = false
			end
		end
		if k == "W" then w = 1
		elseif k == "A" then a = 1
		elseif k == "S" then s = 1
		elseif k == "D" then d = 1
		elseif k == "Up" then dUP = 1
		elseif k == "Down" then dDN = 1
		elseif k == "Left" then dLF = 1
		elseif k == "Right" then dRT = 1
		elseif k == "ButtonA" or k == "Space" then

			if talkto then 
				carry(neargrab, not hold)
			else
				jump()
			end

		elseif k == "ButtonX" or k == "E" then dive()
		elseif k == "ButtonB" or k == "RightShift" or t.UserInputType.Name == "MouseButton1" and not mobile and not i and not istitle then toattack()
		elseif k == "ButtonR2" or k == "LeftShift"then tocrouch()
		elseif k == "ButtonR1" or k == "ButtonL1" or k == "Q"or t.UserInputType.Name == "MouseButton3" then
			if point then
				local p = point.lookVector:Dot(camcf.lookVector)<-.9 and point*CFrame.Angles(0,.1,0) or point
				snapcam, snapto = snapcam+1, -p.rightVector end
		elseif k == "DPadUp"then z1 = 1
			if zoom == .5 then firstperson=true end
		elseif k == "DPadDown"then z2 = 1
			firstperson = false
		elseif k == "DPadLeft" or k == "LeftControl" then todance()
		elseif (k == "ButtonSelect" or k == "P" or k == "Backquote") then pause(not paused,nil,true)
		end
	end
end)

local mapint = 1
uis.InputEnded:connect(function(k)
	local t = k
	k = k.KeyCode.Name
	if k == "W" then w = 0
	elseif k == "A" then a = 0
	elseif k == "S" then s = 0
	elseif k == "D" then d = 0
	elseif k == "Up" then dUP = 0
	elseif k == "Down" then dDN = 0
	elseif k == "Left" then dLF = 0
	elseif k == "Right" then dRT = 0
	elseif k == "ButtonR2" or k == "LeftShift"then if not char.Anchored or pound or pause then todive=0 fcrouch = false end
	elseif k == "DPadUp"then z1 = 0
	elseif k == "DPadDown"then z2 = 0
	elseif k == "ButtonA" or k == "Space" then tojump=0
	elseif t.UserInputType.Name == "Touch"and mobile then
		if ms.X > UI.AbsoluteSize.X/2 then
			if not char.Anchored or pound or paused then todive=0 fcrouch = false end
			tojump = 0
			UI.mobile.A.ImageRectOffset = Vector2.new(0,256)
			UI.mobile.A.B.ImageRectOffset = Vector2.new(0,0)
			UI.mobile.A.X.ImageRectOffset = Vector2.new(0,0)
			UI.mobile.A.RT.ImageRectOffset = Vector2.new(0,256)
		else st1 = Vector3.new()UI.mobile.st1.bog.Position = UDim2.new(.3,0,.3,0)
		end
	end
end)

uis.InputChanged:connect(function(k)
	local t = k
	k = k.KeyCode.Name
end)
local ipCam, ipSt1
UI.mobile.A.InputBegan:connect(function()if not ipCam then
		UI.mobile.A.ImageRectOffset = Vector2.new(256,256)
		task.wait()
		jump()
		if talkto then carry(neargrab, not hold)
		end
	end end)
UI.mobile.A.X.InputBegan:connect(function()if not ipCam then UI.mobile.A.X.ImageRectOffset = Vector2.new(256,0) task.wait() dive()end end)
UI.mobile.A.B.InputBegan:connect(function()if not ipCam then UI.mobile.A.B.ImageRectOffset = Vector2.new(256,0) task.wait() toattack()end end)
UI.mobile.A.RT.InputBegan:connect(function()if not ipCam then UI.mobile.A.RT.ImageRectOffset = Vector2.new(256,256) task.wait() tocrouch()end end)

uis.InputChanged:connect(function(k)
	if k.KeyCode.Name == "Thumbstick1"then
		if k.Position.Magnitude > deadzone then
			st1 = k.Position.Unit * math.min(1, k.Position.Magnitude)
			console = true
		else
			st1 = Vector3.new()
		end
	elseif k.KeyCode.Name == "Thumbstick2"then
		if k.Position.Magnitude > deadzone then
			st2 = k.Position.Unit * math.min(1, k.Position.Magnitude)
		else
			st2 = Vector3.new()
		end
	end
end)

uis.InputEnded:connect(function(k)
	if k.KeyCode.Name == "Thumbstick1"then
		st1 = Vector3.new()
	elseif k.KeyCode.Name == "Thumbstick2"then
		st2 = Vector3.new()
	end
end)


uis.TextBoxFocused:connect(function()typing = true end)
uis.TextBoxFocusReleased:connect(function()typing = false end)

function mobst(ip)
	local ap = UI.mobile.st1.AbsolutePosition
	local as = UI.mobile.st1.AbsoluteSize
	if ip == false then
		ip = Vector2.new(ap.X+as.X/2,ap.Y+as.Y/2)
	end
	local jm = (Vector2.new((ip.X-ap.X), (ip.Y-ap.Y)-as.Y)/as.Y + Vector2.new(.5,.5))*4
	if jm.Magnitude > 1 then jm = jm.Unit
	elseif jm.Magnitude<deadzone then jm = Vector3.new()
	else  end
	UI.mobile.st1.bog.Position = UDim2.new(.3-jm.X/4,0,.3-jm.Y/4,0)
	st1 = Vector3.new(-jm.X,jm.Y)
end

UI.mobile.st1.InputBegan:connect(function(ip)
	if ip~=ipCam then
		ipSt1 = ip
	end
end)
uis.TouchStarted:connect(function(ip, rbx)
	if not rbx and ip~=ipSt1 then
		ipCam = ip
	end
end)
zoom=2
MouseBehavior = Enum.MouseBehavior.Default
ms.WheelForward:connect(function()zoom = math.max(.5, math.min(5, zoom-.5)) if zoom == .5 then firstperson=true end end)
ms.WheelBackward:connect(function()zoom = math.max(.5, math.min(5, zoom+.5)) firstperson = false end)
ms.Button2Down:connect(function()if not UI.pause.Visible then MouseBehavior = Enum.MouseBehavior.LockCurrentPosition end end)
ms.Button2Up:connect(function()MouseBehavior = Enum.MouseBehavior.Default end)
deadzone = .3
trulyconsole = game:GetService("GuiService"):IsTenFootInterface()

local function conswait()
	if trulyconsole then
		task.wait()
	end
end

game:GetService("UserInputService").InputChanged:connect(function(k)
	if k.KeyCode.Name == "Thumbstick1"then
		if k.Position.Magnitude > deadzone then
			st1 = k.Position.Unit * math.min(1, k.Position.Magnitude)
			console = true
		else
			st1 = Vector3.new()
		end
	elseif k.KeyCode.Name == "Thumbstick2"then
		if k.Position.Magnitude > deadzone then
			st2 = k.Position.Unit * math.min(1, k.Position.Magnitude)
		else
			st2 = Vector3.new()
		end
	end
end)

game:GetService("UserInputService").TextBoxFocused:connect(function()typing = true end)
game:GetService("UserInputService").TextBoxFocusReleased:connect(function()typing = false end)

function MouseMove(name,state,inputObject)
	local sen=10
	ms2 = Vector3.new(inputObject.Delta.x/sen, -inputObject.Delta.y/sen)
	wait()
	ms2 = Vector3.new()
end
game:GetService'ContextActionService':BindActionToInputTypes("MouseMove",MouseMove,false,Enum.UserInputType.MouseMovement)
function jump(auto)
	conswait()
	if paused then tojump = 1 end
	if not paused and not talkto then
		if sitting and hum.SeatPart then
			sitdebounce = tick()
			hum.Sit = false

			rem:FireServer("sit", nil)
			canmove = true
		end
	end
	if not paused and not talkto and canmove then
		if auto~=1 then tojump=1 end
		dancing = false

		if swimming then
		elseif swip then
			log('swip')
			didjump = true
			jumping = true
			rolling = true
			longjump = true
			point = swip*CFrame.Angles(0,math.pi,0)
			char.CFrame = point+char.Position
			swip = false
			potand = math.pi
			botand = math.pi*4
			djump = true
			cvt( point.lookVector*10 + Vector3.new(0,60) )
			wait(.5)
			jumping = false
			rolling = false
		elseif ledgegrab then
			if not debounce then
				psound(vis.torso, "jump2")
				debounce, jumping, wallrun, ledgegrab = true, true, nil, nil
				if dir:Dot(point.lookVector)<-.5 then
					cvt( v2(char.Velocity, 20)-point.lookVector*50 )
					botand = -math.pi*2
					wait(.2)
					debounce, jumping = false, false
				else
					cvt( Vector3.new(0, 30, 0)+point.rightVector*10 )
					rotand = rotand + 1
					wait(.2)
					cvt( Vector3.new(0, char.Velocity.Y, 0)-wallnorm*10-point.rightVector*7 )
					wait(.2)
					djump = false
					debounce, jumping = false, false
				end
			end
		elseif wallrun then
			if not jumping then
				skatestat = {"Wall jump", skatestat[2]+100, skatestat[3]+1, false, skatestat[5]}
				psound(vis.torso, "jump2")
				jumping = true
				cvt( v2(char.Velocity, 30)+wallnorm*30 )
				point = CFrame.new(Vector3.new(),-2 * point.lookVector:Dot(wallnorm) * wallnorm + point.lookVector)
				djump = true
				wait(.2) 
				jumping = false
			end
		elseif skate then
			if ground and not jumping and ground.Name~="Slide" then
				didjump = true
				skatestat = {"Ollie", skatestat[2]+5, skatestat[3], false, skatestat[5]}
				psound(vis.torso, "jump")
				jumping = true
				cvt( v2(char.Velocity, 40+math.max(0,botand*40)) )
				wait(.3)
				jumping = false
			elseif onrope then
				didjump = true
				jumping = true
				cvt( v2(char.Velocity, 50) )
				torope(true, onrope)
				wait(.3)
				jumping = false
			end
		elseif pole then
			psound(vis.torso, "jump2")
			debounce = true
			cvt( Vector3.new(0,30)-point.lookVector*30 )
			point = point*CFrame.Angles(0,math.pi,0)
			pole = nil
			djump = false
			wait(.2)
			debounce = false
		elseif sliding then
			if ground and not jumping and ground.Name~="Slide"  then
				log('slide')
				psound(vis.torso, "jump2")
				rolling = true
				jumping = true
				cvt( v2(char.Velocity, 20) )
				djump = false
				botand = math.pi*2
				wait(.2)
				sliding = false
				jumping = false
				wait(.1)
				rolling = false
			end
		elseif onrope then
			didjump = true
			djump = false
			jumping = true
			cvt( v2(char.Velocity, 50) )
			torope(true, onrope)
			wait(.3)
			jumping = false
		elseif ground and not jumping then
			particle("cloud", 1)
			if crouch then
				if dir.Magnitude>.8 then
					didjump = true
					psound(vis.torso, "jump")
					jumping = true
					longjump = true
					djump = true
					botand = math.pi*4
					if char.Velocity.Y < 0 and char.Velocity.Y > -10 then

						cvt(point.lookVector*30 + Vector3.new(0,40) + Vector3.new(0,3.5,0))

					else

						cvt(point.lookVector*30 + Vector3.new(0,40))

					end

					wait(.3)
					jumping = false
				else
					log('dirmag < .8')
					didjump = true
					psound(vis.torso, "jump2")
					jumping = true
					rolling = true
					longjump = true
					djump = true
					botand = -math.pi*4
					if char.Velocity.Y < 0 and char.Velocity.Y > -10 then

						cvt(-point.lookVector*10 + Vector3.new(0,60) + Vector3.new(0,3.5,0))

					else

						cvt(-point.lookVector*10 + Vector3.new(0,60))

					end
					wait(.5)
					jumping = false
					rolling = false
				end
			else
				didjump = true
				if shrink then
					botand = math.pi*4
					rolling = true
				end
				psound(vis.torso, "jump")
				fallvr = -fallvr
				jumping = true
				cvt( v2(char.Velocity, 40) )
				wait(.3)
				jumping = false
			end
		elseif not ground and not djump then
			didjump = true
			psound(vis.torso, "djump")
			particle("cloud", 1, true)
			djump = true
			cvt( v2(char.Velocity, 40) )
			botand = botand-2
			fallvr = -fallvr
			delay(.15,function()
				for x = 1, 3 do
					if ground or wallrun or onrope or sliding then break end
					fallvr = -fallvr
					particle("cloud", 1, true)
					wait(.15)
				end
			end)
			if dir.Magnitude > .2 then
				point = CFrame.new(Vector3.new(), dir)
			end
		end
	end
end

function toattack()
	conswait()
	local gtick = tick()
	log('toattack')
	if vis:FindFirstChildWhichIsA("Tool") and not vis:FindFirstChildWhichIsA("Tool"):FindFirstChildWhichIsA("TouchTransmitter", true) then
		return
	end
	if not paused and canmove and carry(neargrab, not hold)
		and not talkto and not jumping and not attack and not pole and not onrope and not wallrun and not ledgegrab and not pound
		and (ground and ground.Name~="Slide"or not ground) and not istitle then
		jumping = true
		attack = true
		psound(vis.torso, "smack")
		djump, sliding, longjump, flying, dancing = true, false, false, false, false
		attacktick = gtick
		potand = potand + math.pi*2
		if swimming then
			cvt(char.Velocity/2)
		else
			cvt(v2(char.Velocity/2, 20))
		end
		if skate then
			skatestat = {"The Iron Man", skatestat[2]+50, skatestat[3]+1, true, skatestat[5]}
		end
		wait(.2)
		jumping = false
	end
end


function dive()
	conswait()
	if not paused and not talkto and canmove then
		dancing = false
		if hasboard and not crouch and not onrope and not pole and not swimming and not pound then
			if not skate then
				longjump = false
				skate = true
				potand = math.pi*2
			elseif not ground and boarderp.Z>-.2 then
				skatestat = {"Kickflip", skatestat[2]+100, skatestat[3]+1, false, skatestat[5]}
				boarderp = boarderp+Vector3.new(0,0,-math.pi*2)
			end
		elseif hasflame then
			flameon = not flameon
		elseif ledgegrab and not debounce then
			psound(vis.torso, "jump2")
			debounce, jumping, wallrun, ledgegrab = true, true, nil, nil
			cvt( Vector3.new(0, 30, 0)+point.rightVector*10 )
			rotand = rotand + 1
			wait(.2)
			cvt( Vector3.new(0, char.Velocity.Y, 0)-wallnorm*10-point.rightVector*7 )
			wait(.2)
			djump = false
			debounce, jumping = false, false
		elseif wallrun then
			if not jumping then
				skatestat = {"Wall jump", skatestat[2]+100, skatestat[3]+1, false, skatestat[5]}
				psound(vis.torso, "jump2")
				jumping = true
				cvt( v2(char.Velocity, 30)+wallnorm*30 )
				point = CFrame.new(Vector3.new(),-2 * point.lookVector:Dot(wallnorm) * wallnorm + point.lookVector)
				djump = true
				wait(.2)
				jumping = false
			end
		elseif swimming then
		elseif not sliding and not pole and not onrope and not wallrun and not ledgegrab and not attack and not pound then
			psound(vis.torso, "dive")
			longjump, pound, rolling = false, false, false
			char.Anchored = false
			jumping = true
			sliding = true
			if hasfly and not djump then
				djump = true
				flying = true
				flypitch = .5
				flyspeed = 2
				cvt( point.lookVector*50 + Vector3.new(0,ground and 40 or 20) )
				potand = math.pi*2*fallvr
			else
				cvt( point.lookVector*40 + Vector3.new(0,ground and 30 or 20) )
			end
			wait(.3)
			jumping = false
		elseif ground and not jumping and ground.Name~="Slide" then
			psound(vis.torso, "jump2")
			rolling = true
			jumping = true
			cvt( v2(char.Velocity, 20) )
			djump = false
			botand = math.pi*2
			wait(.2)
			sliding = false
			jumping = false
			wait(.1)
			rolling = false
		elseif flying and not debounce then
			debounce = true
			potand = potand+math.pi*2*fallvr
			wait(.5)
			debounce = false
		end
	end
	if paused and UI.pause.bg.pause.Visible then
		UI.UI.Visible = true
		UI.pause.Visible = true
		textsel = UI.pause.bg.pause.close
		game.StarterGui:SetCore("TopbarEnabled", true)
		UI.skip.Visible = false
		MouseBehavior = Enum.MouseBehavior.Default
	end
end

function tocrouch()
	conswait()
	local gtick = tick()
	if todive==0 then

		if paused then todive = 1 end
		if not paused and not talkto and canmove then
			todive=1
			crouch, crouchtick = true, gtick
			fcrouch = true
			skate = false
			if not ground or ground.Name~="Slide"then sliding = false end
			if ledgegrab and not debounce then
				psound(vis.torso, "jump2")
				debounce, jumping, wallrun, ledgegrab = true, true, nil, nil
				cvt( v2(char.Velocity, 20)-point.lookVector*50 )
				botand = -math.pi*2
				wait(.2)
				debounce, jumping = false, false
			elseif not ground and not wallrun and not onrope and not attack and not sliding and not pound and not swimming and not pole or flying then
				pound = true
				rolling = true
				botand = math.pi*2
				djump = true
				sliding = false
				flying = false
				char.Anchored = true
				longjump = true
				wait(.4)
				if not paused then
					char.Anchored = false
					if pound then cvt( Vector3.new(0,-40) )end
				end
			end
		end
	end
end
function hitenemy(e)
	jumping = true
	e.Mesh.Scale = v2(e.Mesh.Scale, e.Mesh.Scale.Y/4)
	e.Mesh.Offset = Vector3.new(0,-1)
	cvt( v2(char.Velocity, 40) )
	delay(.3,function()jumping = false
		wait(2)e:Destroy() end)
end

function torope(canc, rope)
	if canc then
		rope.Mid.Size = Vector3.new(2,2,(rope.PartA.Position-rope.PartB.Position).Magnitude)
		rope.Mid.CFrame = CFrame.new((rope.PartA.Position+rope.PartB.Position)/2,rope.PartB.Position)
		onrope = nil
		debounce = true
		delay(.1, function()debounce = false end)
	else
		onrope = rope
		ropetick = tick() + (char.Velocity.Y>0 and -3 or char.Velocity.Y>-30 and -1.4 or 0)
		flying = false
		sliding = false
		pound = false
		rolling = false
		longjump = false
		attack = false
	end
end

maj = {1,3,5,6,8,10,12,13}
min = {1,3,4,6,8,9,11,13}
function showbis(text, mute, beebo, silent)
	tticket = tticket + 1
	local tt = tticket
	textbox.SurfaceGui.tbt:ClearAllChildren()
	local pos = Vector2.new(0,0)
	local hl = false
	local effect, shake = false, false
	local x, most = 1, #text
	while x<=most do
		local ad = 0
		for nx = x, #text do
			local b = string.sub(text,nx,nx)
			if b==" "or nx==#text then
				if pos.X+ad>830 then
					pos = Vector2.new(0, pos.Y+50)
				end
				break
			else
				script.tx.Text = b
				ad=ad+script.tx.TextBounds.X
			end
		end
		if string.sub(text,x,x)==">"then
			hl = true
			if string.sub(text,x,x+1)==">a"then
				text = string.sub(text,1,x).."attack ="..(console and"0"or"4").. string.sub(text,x+2,-1)
			elseif string.sub(text,x,x+1)==">j"then
				text = string.sub(text,1,x).."jump ="..(console and"1"or"5=6").. string.sub(text,x+2,-1)
			elseif string.sub(text,x,x+1)==">c"then
				text = string.sub(text,1,x).."crouch ="..(console and"2"or"7=8").. string.sub(text,x+2,-1)
			elseif string.sub(text,x,x+1)==">d"then
				text = string.sub(text,1,x).."dive ="..(console and"3"or"9").. string.sub(text,x+2,-1)
			elseif string.sub(text,x,x+1)==">F"then
				text = string.sub(text,1,x)..(console and"forward"or"W").. string.sub(text,x+2,-1)
			elseif string.sub(text,x,x+1)==">B"then
				text = string.sub(text,1,x)..(console and"backward"or"S").. string.sub(text,x+2,-1)
			end
			most=#text
		elseif string.sub(text,x,x)=="+"then
			hl = true
		elseif string.sub(text,x,x)=="#"then
			effect = not effect
		elseif string.sub(text,x,x)=="$"then
			shake = not shake
		elseif string.sub(text,x,x)=="="then
			local im = script.im:Clone()
			im.ImageRectOffset = Vector2.new(tonumber(string.sub(text,x+1,x+1)), 0)*32
			im.Parent = textbox.SurfaceGui.tbt
			im.Position = UDim2.new(0,pos.X,0,pos.Y)
			pos=pos+Vector2.new(50,0)
			x=x+1
		else
			local tx = script.tx:Clone()
			tx.Text = string.sub(text,x,x)
			tx.Parent = textbox.SurfaceGui.tbt
			tx.Position = UDim2.new(0,pos.X,0,pos.Y)
			tx.pos.Value = Vector3.new(pos.X,pos.Y)
			tx.TextColor3 = silent and Color3.new(.5,.5,.5) or hl and Color3.new(.2,.5,1)or Color3.new(0,0,0)
			if beebo then Instance.new("Folder", tx).Name = "beebo"end
			if effect then
				Instance.new("Folder", tx).Name = "effect"
				local t = Instance.new("IntValue")
				t.Parent = tx.effect
				t.Name = "var"
			elseif shake then
				Instance.new("Folder", tx).Name = "shake"
			end
			pos=pos+Vector2.new(tx.TextBounds.X,0)
			if pos.X>830 then pos = Vector2.new(0, pos.Y+50)end
			local t = string.sub(text, x, x)
			local ispc = t=="."or t==","or t=="!"or t=="?"
			if hl and ispc or t==" "then hl = false end
			if not textgo and tt == tticket then
				wait()
				if ispc then
					for x=1,5 do
						if not textgo and tt == tticket then
							wait(.3/5)
						end
					end
				end
				if (x+4)%5==0 and not ispc and not mute then
					local scl = maj
					local t = beebo and script.text or script.text2
					t.Volume = silent and .2 or .5
					t.PlaybackSpeed = 2^(scl[math.random(#scl)]/12)
					t:Play()
				end
			end
		end
		x=x+1
	end
end

function totext(tx, o)
	textgo = false
	local notbeebo = not tx:FindFirstChild'beebo'
	talking = true
	textbox.SurfaceGui.beebo.Visible = not notbeebo
	textbox.SurfaceGui.person.Visible = notbeebo
	out(textbox.SurfaceGui.person, o.Name)
	textbox.SurfaceGui.bg.Image = notbeebo and "rbxassetid://1442126894" or "rbxassetid://1442127057"
	if tx.Value~="SKIP"then
		showbis(tx.Value, nil, not notbeebo, tx:FindFirstChild'silent')
		talking = nil
		textgo = false
		if tx:FindFirstChild("ignore")then wait(.1)textgo=true end
		repeat wait()until textgo
	end
	if tx:FindFirstChild'tx'then
		totext(tx.tx, o)
	else
		talkto.sz:Destroy()
		talkto.cf:Destroy()
		talkto = nil
	end
end

function carry(item, to)
	log('carry')
	local gtick = tick()
	if talkto then
		textgo = true
	elseif item and item:FindFirstChild'tx'then
		talkto = item
		char.Velocity = Vector3.new()
		skate, flying = false, false
		local s = Instance.new("Vector3Value")
		s.Parent = item
		s.Name = "sz"
		s.Value = item.Size
		local s = Instance.new("CFrameValue")
		s.Parent = item
		s.Name = "cf"
		s.Value = item.CFrame
		talktn = math.sign(v2(camcf.lookVector):Dot(v2(CFrame.new(mps.p, item.Position).rightVector) ) )
		totext(item.tx, item)
	elseif to and item then
		hold = item
		hold.Anchored = true
		hold.CanCollide = false
	elseif not to then
		local i2 = {hold}
		for _,v in pairs(ignore)do i2[#i2+1] = v end
		local at = workspace:FindPartOnRayWithIgnoreList(Ray.new(char.Position, point.lookVector*5), i2)
		if not at then
			hold.Anchored = false
			hold.CanCollide = true
			hold.Velocity = hold.Velocity+ (dir.Magnitude>.9 and point.lookVector*50 or Vector3.new())
			local bt = workspace:FindPartOnRay(Ray.new(hold.Position+Vector3.new(0,1), Vector3.new(0,-3)), hold)
			hold = nil
			attacktick = gtick
			rolling = false
		else
			script.cancel:Play()
		end
	else
		return true
	end
end

function todance()
	if ground and dir.Magnitude<deadzone and not swimming and not onrope and not pole and not sliding and not crouch and not attack and not skate then
		dancing = true
	end
end

lp.Chatted:connect(function(msg)
	if string.sub(msg,1,8)=="/e dance"then
		todance()
	end
end)

function psound(tso, nm)
	local volume = 1
	tso[nm].Volume = tso[nm]:FindFirstChild'vol' and volume*tso[nm].vol.Value or 1
	tso[nm]:Play()
end

function damage(from)
	if true then
		return
	end
	if not hpdeb then
		hpdeb = true
		psound(vis.torso, "damage")
		if health==4 then
			local b = game.Lighting.vis.trs.pack:Clone()
			b.Parent, b.CFrame, b.Anchored, b.CanCollide = workspace.debris, vis.trs.pack.CFrame, false, true
			b.Velocity, b.RotVelocity = -point.lookVector*10 + Vector3.new(0,20), point.rightVector*10
			game.Debris:AddItem(b, 10)
		end
		local b = game.Lighting.vis.trs.bt1:Clone()
		b.Parent, b.CFrame, b.Anchored, b.CanCollide = workspace.debris, vis.trs.pack.CFrame, false, true
		b.Velocity, b.RotVelocity = -point.lookVector*10 + Vector3.new(0,20), point.rightVector * 10
		game.Debris:AddItem(b, 10)
		health = health - 1
		if health == 0 then
			health = 4
		end
		if hasfly then
			hasfly = false
			particle("cloud", 8, true, vis.torso.CFrame)
			flying = false
		end
		wait(2)
		hpdeb = false
	end
end

function particle(name, qty, dovel, pos, size)
	if not pos then pos = mps-Vector3.new(0,1.5) end
	local a = math.random()*3.14
	for x = 1, qty do
		local c = characterModel.cloud:Clone()
		c.Parent = script
		local angle = qty==1 and Vector3.new(math.random(-30,30),math.random(-30,30),math.random(-30,30))/80 or CFrame.Angles(0,x/qty*math.pi*2+a,0).lookVector
		c.CFrame = pos+angle
		c.speed.Value = angle*4+ Vector3.new(0,2)
			+(not dovel and char.Velocity/2 or Vector3.new())
		c.rs.Value = Vector3.new(math.random(-30,30)/20,math.random(-30,30)/20,math.random(-30,30)/20)
		c.Mesh.Scale = c.Mesh.Scale*(size or 1)
		particles[#particles+1]=c
	end
end

function ag(cf)
	return cf-cf.p
end
function cfro(x,y,z)
	if not y then x,y,z = x.X, x.Y, x.Z end
	return CFrame.new(x*tscale.X,y*tscale.Y,z*tscale.Z)
end


function transition(to,mswitch,forced) 
	if not to and  forced then
		earlystart = false
		trsing = false
		if mswitch then
			mapswitching = false
		end
	end

	if not trsdeb then
		trsdeb = true
		local l = UI.loop
		trdo = to and 0 or 1
		if to then
			script.load1:Play()
			l.Visible = true
		else
			earlystart = false
			trsing = false
			if mswitch then
				mapswitching = false
			end
			if health > 0 then
				char.Anchored = false
			end
			script.load2:Play()
			l.BackgroundTransparency = 1
		end
		local t = tick()
		while tick()-t < .4 do
			local xbase = UI.AbsoluteSize.X>UI.AbsoluteSize.Y
			if xbase then
				l.SizeConstraint = Enum.SizeConstraint.RelativeXX
				l.Position = UDim2.new(0,0,0,-36+(UI.AbsoluteSize.Y-UI.AbsoluteSize.X)/2)
			else
				l.SizeConstraint = Enum.SizeConstraint.RelativeYY
				l.Position = UDim2.new(0,(UI.AbsoluteSize.X-UI.AbsoluteSize.Y)/2,0,-36)
			end

			local x = to and 1-(tick()-t)/.4 or (tick()-t)/.4
			x=x*2
			l.center.Size = UDim2.new(x,0,x,0)
			l.center.Position = UDim2.new(.5-x/2, 0, .5-x/2,0)
			l.l.Size = UDim2.new(.5-x/2,1,1,1)
			l.r.Size = UDim2.new(-.5+x/2,-1,1,-1)
			l.u.Size = UDim2.new(1,1,.5-x/2,1)
			l.d.Size = UDim2.new(1,-1,-.5+x/2,-1)
			game:GetService("RunService").RenderStepped:wait()
		end

		game:GetService("RunService").RenderStepped:wait()

		if to then
			l.BackgroundTransparency = 0
			trsing = true
			if mswitch then
				mapswitching = true
			end
		else
			l.Visible = false
			if not anicam then UI.UI.Visible = true end
		end
		trsdeb = false
	end
end
function limit(v3, n)
	if v3.Magnitude > n then
		return v3.Unit * n
	end
	return v3
end
function v2(v3, b)
	return Vector3.new(v3.X, b or 0, v3.Z)
end
function out(ins,tx)
	ins.Text = tx
	ins.outline.Text = tx
end

function cvt(vel)
	char.Velocity = vel
	delay(0,function()
		game:GetService("RunService").RenderStepped:wait()
		if char.Velocity:Dot(vel) < .3 then
			char.Velocity = vel
		end
	end)
end

function cast(ray)
	local f1, f2, f3 = workspace:FindPartOnRayWithIgnoreList(ray, ignore)
	if f1 and not f1.CanCollide and f1.Name~="door" or (f1 and f1.Name=="pole") then
		ignore[#ignore+1] = f1
		return cast(ray)
	else
		return f1, f2, f3
	end
end

function extraAddon()
	if p34:FindFirstChild("neck") then
		p34:FindFirstChild("neck").CFrame = p34.torso.CFrame*CFrame.new(0, 1.0999999046325684, 0.5999984741210938)
	end
	if p34:FindFirstChild("sleeveB") then
		p34:FindFirstChild("sleeveB").CFrame = p34.armB.CFrame*CFrame.new(0, -0.2999992370605469, 0)
	end
	if p34:FindFirstChild("sleeveA") then
		p34:FindFirstChild("sleeveA").CFrame = p34.armA.CFrame*CFrame.new(0, -0.2999992370605469, 0)
	end
	if p34:FindFirstChild("santa") then
		p34:FindFirstChild("santa").CFrame = p34.head.CFrame*CFrame.new(0, 0.32000017166137695, 0.11999893188476562)*CFrame.Angles(math.rad(15),0,0)
	end
	if p34:FindFirstChild("party") then
		p34:FindFirstChild("party").CFrame = p34.head.CFrame*CFrame.new(0, 1.700000286102295, 0.2999992370605469)*CFrame.Angles(math.rad(15),0,0)
	end

	if p34:FindFirstChild("cape") then
		local vel = char.Velocity.Magnitude/15
		if skate or flying then
			vel = char.Velocity.Magnitude/30
		end
		capecf = capecf:Lerp(CFrame.Angles(math.rad(math.clamp(vel*-35,-115,0)),0,math.rad(0)),.2)
		p34:FindFirstChild("cape").CFrame = vis.torso.CFrame*CFrame.new(0.01399993896484375, 0.8239998817443848, 0.17499923706054688)*capecf
	end
end
function trsCF(vis, health, tpc, hasfly, hasboard, hat, grn, bees,hasflame,hastoy)
	local gtick = tick()
	local vishealth = characterModel:GetAttribute("health") or health
	vis.trs.pack.CFrame = vis.torso.CFrame * cfro(0,.12,.48) * CFrame.Angles(1.44,math.pi,0)
	vis.trs.bt1.CFrame = vis.torso.CFrame * cfro(-.13,.23,.19) * CFrame.Angles(0,math.pi/2,-.1)
	vis.trs.bt2.CFrame = vis.torso.CFrame * cfro(-.13,-.09,.24) * CFrame.Angles(0,math.pi/2,-.1)
	vis.trs.bt3.CFrame = vis.torso.CFrame * cfro(.13,-.09,.24) * CFrame.Angles(0,math.pi/2,-.1)
	vis.trs.bt4.CFrame = vis.torso.CFrame * cfro(.13,.23,.19) * CFrame.Angles(0,math.pi/2,-.1)
	vis.trs.pack.Transparency = vishealth>=4 and (skin == 39 and tpc+0.5 or tpc) or 1
	vis.trs.bt4.Transparency = vishealth>=4 and tpc or 1
	vis.trs.bt3.Transparency = vishealth>=3 and tpc or 1
	vis.trs.bt2.Transparency = vishealth>=2 and tpc or 1
	vis.trs.bt1.Transparency = vishealth>=1 and tpc or 1
	if hasfly then
		vis.trs.jetpack.CFrame = vis.torso.CFrame * cfro(0,.2,1)
		vis.trs.jetpack.booster.Size = Vector3.new(1.308, .83, .607)*(1+math.random()/10)
		vis.trs.jetpack.booster.CFrame = vis.torso.CFrame * cfro(0,-.6,1)
		vis.trs.jetpack.Transparency = tpc
		vis.trs.jetpack.booster.Transparency = tpc
	else
		vis.trs.jetpack.Transparency = 1
		vis.trs.jetpack.booster.Transparency = 1
	end
	if hasboard then
		vis.trs.board.Transparency = tpc
		vis.trs.board.w1.Transparency = tpc
		vis.trs.board.w2.Transparency = tpc
		vis.trs.board.w1.CFrame = vis.trs.board.CFrame * cfro(0,-.4,-1.2)*CFrame.Angles(-gtick*10*skaterp,0,0)
		vis.trs.board.w2.CFrame = vis.trs.board.CFrame * cfro(0,-.4,1.2)*CFrame.Angles(-gtick*10*skaterp,0,0)
	else
		vis.trs.board.Transparency = 1
		vis.trs.board.w1.Transparency = 1
		vis.trs.board.w2.Transparency = 1
	end
	if hasflame then
		local c = vis.torso.CFrame
		if not ground then
			c = char.CFrame*CFrame.Angles(-math.pi/2 - dir:Dot(char.CFrame.lookVector)*math.pi/2,dir:Dot(char.CFrame.rightVector)*math.pi/2,0)
		else
		end
		flamecf = flamecf:Lerp(c,math.min(1,dt*10))
		vis.trs.flamethrower.Transparency = tpc
		vis.trs.flamethrower.CFrame = ((flamecf-flamecf.p)
			+(vis.armC.Position - vis.armC.CFrame.upVector/2))
			*CFrame.new(0,1,-.9)
		vis.trs.flamethrower.pcl.p.Enabled = flameon
		if flameon then
			local mb = workspace:FindPartOnRayWithIgnoreList(
				Ray.new(vis.trs.flamethrower.Position-flamecf.lookVector*2, flamecf.lookVector*17),
				{char,vis})
			if mb and (mb.Name == "col" or mb.Parent.Name == "vis" and mb.Parent.Parent:FindFirstChild("col")) then
				if mb.Parent.Name == "vis"then mb = mb.Parent.Parent.col end
				local gog = mb.CFrame
				local rep, msg, vel = enemies[mb.tag.Value][2].touch(mb.CFrame+Vector3.new(0,1), true)
				if rep == "remove" then
					enemies[msg] = nil
					delay(1,function()
						particle("cloud",1,Vector3.new(),gog)
					end)
				end
			end
		end
	else
		vis.trs.flamethrower.Transparency = 1
		vis.trs.flamethrower.pcl.p.Enabled = false
	end
	if hat~=0 then
		if vis.trs:FindFirstChild'hat' and vis.trs.hat.id.Value == hat then
			vis.trs.hat.CFrame = vis.head.CFrame * cfro(vis.trs.hat.off.Position)
				*CFrame.Angles(math.rad(vis.trs.hat.off.Orientation.X), math.rad(vis.trs.hat.off.Orientation.Y),math.rad(vis.trs.hat.off.Orientation.Z))
			if vis.trs.hat:FindFirstChild("skin")then
				vis.trs.hat.Mesh.TextureId = vis.torso.Mesh.TextureId
				vis.trs.hat.Material = vis.torso.Material
				vis.trs.hat.Reflectance = vis.torso.Reflectance
			end
		elseif vis.trs:FindFirstChild'hat'then
			rem:FireServer("loadhat", hat)
		else
			rem:FireServer("loadhat", hat)
		end
	elseif vis.trs:FindFirstChild'hat'then
		vis.trs.hat:Destroy()
	end
end

function anim(vis, me, tpc)
	if not tpc then tpc = 0 end
	tscale = scale
	local grn = 0
	local gtick = tick()
	if gotice then
		for _,v in pairs(vis:GetChildren())do
			if rf.pose:FindFirstChild(v.Name)then
				v.CFrame = mps*rf.pose[v.Name].CFrame
			end
		end
		vis.head.dcf.Value = vis.head.CFrame
	else
		grn = 1-math.abs(fallerp)
		local nrm = (1-holderp)*(1-croucherp)*(1-lederp)*(1-polerp)*(1-aterp)*(1-dancerp)
		local wtk = math.sin(walktick*14)*walklerp
		local wallslide = (1-walklerp)*wallerp*(1-lederp)*(1-skaterp)
		local sin = math.abs(wtk) * (.8*grn)/(roperp+1)*(1-swimerp)
		local sin2 = wtk*-1.2*grn/(roperp+1)/(polerp+1) + fallerp*(1-sliderp)*(1-longerp)*(1-aterp)
			+math.sin(gtick*6)*dancerp
		local ag = Vector3.new(sliderp*2-longerp+croucherp+(-swimerp*1-walklerp*swimerp-(skaterp+rotand*skaterp)*.4)*nrm+polerp+sin2*polerp/2+wallslide
			, sin2*nrm*(1-swimerp)+holderp+sin2*dancerp/2*(1-holderp)
			,.6+(walklerp*.7*grn*nrm*(1-swimerp)+math.abs(fallerp)*nrm)*(1-roperp)+roperp*.7+holderp/2+aterp*(1-holderp)-(math.abs(sin2)*dancerp-dancerp)*(1-holderp))
		local bg = Vector3.new(sliderp/2+(skaterp+rotand*skaterp)*.4+wallslide, 0,fallerp*.8*(1-longerp))*nrm
		-Vector3.new(-holderp/2-croucherp*(1-holderp)-polerp*(1-holderp)-(math.sin(gtick*3)*dancerp/4+dancerp/2)*(1-holderp))
		local hip = grn*1.4-sliderp*1.4-croucherp-wallerp
		vis.torso.CFrame = mps
			*CFrame.new(0,-1*siterp,0)
			*cfro(0,-hip+swimerp*1.4+skaterp*.4+math.abs(-sin2)*dancerp/9+wallerp-sliderp*1.4,0)
			* CFrame.Angles(0,0,rotand+wtk*croucherp/5+wtk*polerp/12)
			* CFrame.Angles(botand+math.abs(rotand)/2*wallerp, potand+math.sin(walktick*7)*swimerp*.1-skaterp*1.5+sin2*dancerp/8,0)
			* cfro(0,(wallrun and sin/2 or sin)/(polerp*3+1)+hip,croucherp*.5)

		local sitlerp = math.clamp(siterp-dancerp,0,1)
		local vehiclelerp = (0*siterp)
		local toolerp1 = vis:FindFirstChildWhichIsA("Tool")and not vis:FindFirstChildWhichIsA("Tool"):FindFirstChildWhichIsA("TouchTransmitter", true) and 1 or 0
		local toolerp = math.clamp(toolerp1 - dancerp, 0, 1)
		vis.head.CFrame = vis.torso.CFrame * cfro(0,.8,0) * CFrame.Angles(sliderp-longerp+croucherp*.8+polerp/2,skaterp-wallslide,rotand*.2+sin2*dancerp/4)*cfro(0,.8,0)	
		vis.legA.CFrame = vis.torso.CFrame * cfro(.35,-.5+wtk*croucherp/3+croucherp/2,-.15-croucherp/3)
			* CFrame.new(0,0.2*siterp,-0.5*siterp)
			* CFrame.Angles(((math.pi/12)*siterp), 0, 0)
			* CFrame.Angles(-sin2*(1-math.clamp(dancerp+siterp,0,1)*.8)*(1-swimerp/2)*(1-croucherp/2)*(1-polerp)+polerp/2+sin2*polerp/4+longerp-sliderp/2+lederp-rotand*skaterp/4+wallslide
				,0,roperp*-.3-polerp*.3+aterp/4 +.1+skaterp/4+math.min(0,sin2*dancerp/2))* cfro(0,-.7,0)
		vis.legB.CFrame = vis.torso.CFrame * cfro(-.35,-.5-wtk*croucherp/3+croucherp/2,-.15-croucherp/3)
			* CFrame.new(0,0.2*siterp,-0.5*siterp)
			* CFrame.Angles(((math.pi/12)*siterp), 0, 0)
			* CFrame.Angles(sin2*(1-math.clamp(dancerp+siterp,0,1)*.8)*(1-swimerp/2)*(1-croucherp/2)*(1-polerp)+polerp/2-sin2*polerp/4+longerp-sliderp/2+lederp-rotand*skaterp/2+wallslide
				,0,roperp*.3+polerp*.3-aterp/4-.1-skaterp/4+math.max(0,sin2*dancerp/2))* cfro(0,-.7,0)
		vis.armA.CFrame = vis.torso.CFrame 
			* cfro(.5,.6,0)
			*CFrame.Angles(0,(math.pi/4)*math.clamp(sitlerp-toolerp,0,1),0)
			*CFrame.new(0*toolerp,0,0)
			*CFrame.Angles((math.pi/2)*toolerp,0,0)
			*CFrame.Angles((-math.pi/3)*sitlerp,(math.pi/4)*vehiclelerp,0)
			*CFrame.Angles((math.pi/3.5)*sitlerp,0,0)
			*CFrame.Angles(ag.X+lederp * (1-toolerp),ag.Y * (1-toolerp),ag.Z * (1-toolerp))
			* cfro(0,-.4,0)
		vis.armB.CFrame = vis.torso.CFrame 
			* cfro(-.5,.6,0)
			*CFrame.Angles(0,(-math.pi/4)*sitlerp,0)
			*CFrame.Angles((-math.pi/3)*sitlerp,(-math.pi/4)*vehiclelerp,0)
			*CFrame.Angles((math.pi/3.5)*sitlerp,0,0)
			*CFrame.Angles(ag.X+lederp,ag.Y*(-holderp*2+1),-ag.Z)
			* cfro(0,-.4,0)
		vis.armC.CFrame = vis.armA.CFrame 
			* cfro(0,-.3-math.abs(sin2*dancerp/8),0)
			*CFrame.Angles((math.pi/3)*math.clamp(sitlerp-toolerp,0,1),0,0)
			*CFrame.Angles(bg.X+math.max(0,sin2)*(1-swimerp)*(1-holderp)+lederp/2*(1-holderp),bg.Y+polerp,bg.Z)
			* cfro(0,-.4,0)
		vis.armD.CFrame = vis.armB.CFrame 
			* cfro(0,-.3-math.abs(sin2*dancerp/8),0)
			*CFrame.Angles((math.pi/3)*sitlerp,0,0)
			*CFrame.Angles(bg.X+math.max(0,-sin2)*(1-swimerp)*(1-holderp)+lederp/2*(1-holderp),bg.Y-polerp,bg.Z)
			* cfro(0,-.4,0)
		if swiperp>.01 then
			for _,v in pairs(vis:GetChildren())do
				if rf.pose3:FindFirstChild(v.Name)then
					local e = rf.pose3[v.Name].CFrame
					if shrink then e = e-e.p + e.p*tscale end
					v.CFrame = v.CFrame:Lerp(mps*e, swiperp)
				end
			end
		elseif rollerp>.01 then
			for _,v in pairs(vis:GetChildren())do
				if rf.pose2:FindFirstChild(v.Name)then
					local e = rf.pose2[v.Name].CFrame
					if shrink then e = e-e.p + e.p*tscale end
					v.CFrame = v.CFrame:Lerp(vis.torso.CFrame*e, rollerp)
				end
			end
		elseif flamerp>.01 then
			for _,v in pairs(vis:GetChildren())do
				if rf.pose5:FindFirstChild(v.Name)then
					local e = rf.pose5[v.Name].CFrame
					if shrink then e = e-e.p + e.p*tscale end
					v.CFrame = v.CFrame:Lerp(vis.torso.CFrame*e, flamerp)
				end
			end
		end
		vis.head.dcf.Value = vis.head.CFrame
	end
	local boardcf = vis.torso.CFrame * cfro(0,-1.7,0)*CFrame.Angles(0,1.5,-rotand*(1-wallerp)*grn)
	vis.trs.board.CFrame = boardcf:Lerp(vis.torso.CFrame*cfro(0,0,1)*CFrame.Angles(1.5,1,0) , 1-skaterp)
		*CFrame.Angles(boarderp.X*skaterp,boarderp.Y*skaterp,boarderp.Z*skaterp)
	trsCF(vis, health, tpc, hasfly, hasboard, hat, grn, false, hasflame, false)
	extraAddon()
end
function animDot()
	local hed = vis.head.Position+vis.head.CFrame.upVector*tscale.Y*2
	local t = (hed-vis.dot.Position)
	vis.dot.Anchored = true
	vis.dot.vel.Value = vis.dot.vel.Value +t*dt*8 -vis.dot.vel.Value*math.min(1,dt*5)
	if vis.dot.Position.Y < vis.head.Position.Y+vis.head.CFrame.upVector.Y*1.5 then
		vis.dot.CFrame = vis.dot.CFrame-vis.dot.Position+v2(vis.dot.Position,vis.head.Position.Y+vis.head.CFrame.upVector.Y*1.5)
	end
	if (vis.dot.Position-hed).Magnitude>2*tscale.Y then
		local lv = CFrame.new(hed, vis.dot.Position).lookVector*1.9*tscale.Y
		vis.dot.CFrame = vis.dot.CFrame-vis.dot.CFrame.p+hed + lv
		vis.dot.vel.Value = Vector3.new()
	else
		vis.dot.CFrame = vis.dot.CFrame+vis.dot.vel.Value*dt*10
	end
end
local t = 0
function cf2buf(cf)
	local buf = buffer.create(12 + 6)
	local pos = cf.Position
	local oX, oY, oZ = cf:ToOrientation()
	buffer.writef32(buf, 0, pos.X)
	buffer.writef32(buf, 4, pos.Y)
	buffer.writef32(buf, 8, pos.Z)
	buffer.writei16(buf, 12, math.round(oX * 100))
	buffer.writei16(buf, 14, math.round(oY * 100))
	buffer.writei16(buf, 16, math.round(oZ * 100))
	return buf
end

runService.RenderStepped:Connect(function()
	if tick()-t > 1 / 15 and (not paused or allowPauseWhenNoCanMove) then
		t = tick()
		local list = {
			c = {},
			p = {},
			d = dancing,

			hb = hasboard,
			hf = hasfly,
			hfl = hasflame,

			fid = faceid
		}
		for i,v in pairs(characterModel:GetChildren()) do
			if v:IsA("BasePart") and v ~= fdot and v ~= char and v ~= head and v ~= root and v ~= torso and v.Name ~= "cloud" then
				table.insert(list.p,v.Name == "dot" and v.Name or v)
				table.insert(list.c,cf2buf(v.CFrame))
			end
		end
		table.insert(list.p,vis.head.skin)
		table.insert(list.c,cf2buf(vis.head.skin.CFrame))
		for _, v in pairs(vis.trs:GetDescendants()) do
			if v:IsA("BasePart") and (v.Transparency < 1 or v == vis.trs.shadow) then
				table.insert(list.p,v)
				table.insert(list.c,cf2buf(v.CFrame))
			end
		end
		rem:FireServer(list, vis.trs.shadow.Size)
	end
	if hum and not hum.SeatPart then
		hum.PlatformStand = true
	end
end)

frame = 0

spawn(function()
	transition()
	local bus = 0
	while wait(.06) do 
		if not paused then
			if gotice or dancing then
				faceid = 2
			else
				faceid = 0
			end
			if swip then
				particle("cloud", 1)
			elseif sliding and ground then
				particle("cloud", 1)
			elseif flying then
				if bus%2==0 then particle("cloud", 1, nil, vis.trs.jetpack.CFrame*CFrame.new(-.3,-.9,-.2), .4)
				else particle("cloud", 1, nil, vis.trs.jetpack.CFrame*CFrame.new(.3,-.9,-.2), .4)
				end
			elseif (1-walklerp)*wallerp*(1-lederp)*(1-skaterp)>.6 then
				particle("cloud", 1, nil, vis.torso.CFrame*CFrame.new(0,0,-1))
			end
			if skate and not gotice then
				if skatestat[4]then skatestat[2]=skatestat[2]+1 end
				UI.hawk.Visible = true
				UI.hawk.trick.TextColor3 = skatestat[6] and Color3.new(0,.7,1)or Color3.new(1,1,1)
				out(UI.hawk.trick, skatestat[1] or "")
				out(UI.hawk.pts, skatestat[2]~=0 and skatestat[2].." x "..skatestat[3] or "")
				out(UI.hawk.score, "Score: "..skatestat[5])
			else
				UI.hawk.Visible = false
				skatestat = {nil,0,0,false,UI.time.Visible and skatestat[5] or 0}
			end
		end 
	end
end)

function touched(h, rg)
	local gtick = tick()
	if h.Parent and h.Parent~=vis and h.Parent.Name~="trs" and not paused then
		if h.Name == "Mid" and not debounce and not swimming and not pole then
			if onrope and h.Parent==onrope then return
			elseif onrope then
				torope(true, onrope)
				local a = CFrame.new(v2(char.Position), v2(h.Position))
				char.CFrame=char.CFrame+a.lookVector*2
				char.Velocity = a.lookVector*v2(char.Velocity).Magnitude
				point = a
			else
				skatestat = {"50-50 Grind", skatestat[2]+50, skatestat[3]+1, true, skatestat[5]}
			end
			torope(nil, h.Parent)
		elseif h.Name == "pole" and not pole and not debounce and not swimming and not hold and not onrope and not wallrun then
			pole = h
			if (v2(char.Position)-v2(pole.Position)).Magnitude>.1 then
				point = CFrame.new(v2(char.Position), v2(pole.Position))-char.Position
			end
			if h:FindFirstChild("finished")then
				h.finished.Value = true
			end
			sliding, longjump, flying, skate, attack, rolling = false, false, false, false, false, false
		elseif h.Name == "jetpack" and not debounce then
			debounce = true
			hasfly = not hasfly
			particle("cloud", 8, true, vis.torso.CFrame)
			health, flying, skate, hasboard, hasflame = 4,false,false,false,false
			if hasfly then  psound(vis.torso, "powerup") end
			wait(1)
			debounce = false
		elseif h.Name == "skateboard" and not debounce then
			debounce = true
			hasboard = not hasboard
			particle("cloud", 8, true, vis.torso.CFrame)
			health, flying, skate, hasfly, hasflame = 4,false,false,false,false
			if hasboard then  psound(vis.torso, "powerup") end
			wait(1)
			debounce = false
		elseif h.Name == "flamethrower"and not debounce then
			debounce = true
			hasflame = not hasflame
			particle("cloud", 8, true, vis.torso.CFrame)
			health, flying, skate, hasboard, hasfly = 4,false,false,false, false
			if hasflame then  psound(vis.torso, "powerup") end
			wait(1)
			debounce = false	
		elseif (h.Name == "candy" or h.Name=="hcandy") and rg then
			h.Transparency = 1
			h.Name = "not candy"
			h.pcl.candy:Emit(1)
			candy = candy + 1
			delay(.3,function()
				h:Destroy()
			end)
		elseif h.Name == "egg" and rg then
			h.Transparency = 1
			h.Name = "not egg"
			h.pcl.candy:Emit(1)
			script.egg.PlaybackSpeed = 2^(maj[eggs]/12)
			script.egg:Play()
			delay(.3,function()
				h:Destroy()
			end)
		elseif h.Name == "battery" and health<4 then
			h.Transparency = 1
			h.Name = "not battery"
			h.pcl.candy:Emit(1)
			script.heal:Play()
			health = math.min(4, health+1)
			rem:FireServer("battery", h)
			delay(.3,function()
				h:Destroy()
			end)
		elseif h.Name == "door" and not debounce and not skate and not sliding and not swimming and ground and not crouch and not swip and swiperp<.1 then
			debounce = true
			canmove = false
			h.CanCollide = false
			h.open:Play()
			char.Velocity = Vector3.new()
			local t = tick()
			local cf = h.CFrame
			local side = math.sign(CFrame.new(mps.p, cf.p).lookVector:Dot(cf.lookVector))
			while tick()-t < .3 do
				local t = (tick()-t)/.3
				h.CFrame = cf * CFrame.new(-1.8,0,0)*CFrame.Angles(0,t*2*side,0)*CFrame.new(1.8,0,0)
				char.Velocity = char.Velocity + v2(cf.p+cf.lookVector*-2*side-char.Position)*2
				wait()
			end
			h.CFrame = cf * CFrame.new(-1.8,0,0)*CFrame.Angles(0,2*side,0)*CFrame.new(1.8,0,0)
			walkto = cf.lookVector*side
			wait(.3)
			walkto = nil
			wait(.3)
			local t = tick()
			while tick()-t < .3 do
				local t = 1-(tick()-t)/.3
				h.CFrame = cf * CFrame.new(-1.8,0,0)*CFrame.Angles(0,t*2*side,0)*CFrame.new(1.8,0,0)
				char.Velocity = char.Velocity + v2(cf.p+cf.lookVector*5.5*side-char.Position)*2
				wait()
			end
			h.CFrame = cf
			h.close:Play()
			h.CanCollide = true
			canmove = true
			char.CFrame = char.CFrame-v2(char.Position) + v2(h.Position+cf.lookVector*side*5.5)
			wait(.6)
			debounce = false
		elseif h.Name == "icedcream" then
			script.iced:Play()
			gotice = true
			point = CFrame.new(Vector3.new(),v2(-vcf.lookVector))
			char.CFrame = point+char.Position
			UI.BT.Visible = true
			UI.BT.TextTransparency, UI.BT.outline.TextTransparency = 0, .8
			UI.BT.sub.TextTransparency, UI.BT.sub.outline.TextTransparency = 0, .8
			out(UI.BT, "YOU GOT ICE CREAM!")
			out(UI.BT.sub, h.desc.Value)
			canmove = false
			char.Anchored = true
			h.CFrame = char.CFrame * CFrame.Angles(0,0,math.random(4)*math.pi/2) + Vector3.new(0,4)
			wait(2)
			health = 4
			rem:FireServer("icedcream", h)
			wait(1)
			UI.BT.Visible = false
			char.Velocity = Vector3.new()
			char.Anchored = false
			canmove = true
			gotice = false
		elseif h.Name == "notcream"then
			candy = candy + 10
			health = 4
			h:Destroy()
		elseif h:FindFirstChild'tx'then
			if not ground then
				char.Velocity = v2(char.Velocity, 30)
				if h:FindFirstChild'stomp'then
					h.stomp:Play()
				end
			end
		elseif string.sub(h.Name, 1,3)=="TPa"then
			local diff =  h.Parent["TPb".. string.sub(h.Name,4,-1)].Position - char.Position
			char.CFrame = char.CFrame + diff
			pheight = pheight and pheight+diff.Y
			camcf = camcf + v2(diff)
			mps = mps + diff
		elseif h.Name=="lava" and not rg and not skate then
			server_damage()
		elseif h.Name == "breakable" and (gtick-attacktick<.2 or pound) then
			h.Name = "not breakable"
			h.CanCollide = false
			h.Sound:Play()
			h.Transparency = 1
			for _,v in pairs(h:GetChildren())do if v.Name=="Decal"then v:Destroy() end end
			h.pcl:Emit(20)
			game.Debris:AddItem(h, 2)
		end
	end
end

characterModel.legA.CanTouch = true

char.Touched:Connect(touched)

spawn(function()
	while wait() do
		if not paused or enablePhysWhilePaused then
			char.VectorForce.Force = bforce
			char.Velocity = char.Velocity*bdamp
			if hold then
				hold.Velocity = hold.Velocity * .2 
			end
		end
		if paused and snapshotcam.Parent == script then
			snapshotcam.Velocity = snapshotcam.Velocity*.9
			snapshotcam.force.Force = Vector3.new(0,snapshotcam:GetMass()*workspace.Gravity)+dir*700
			local kpg = (snapshotcam.Position - char.Position)
			if kpg.Magnitude > 65 - 10 then
				snapshotcam.force.Force = snapshotcam.force.Force - (kpg.Unit*(kpg.Magnitude-65+10)*60)
			end
			if kpg.Magnitude > 65 then
				snapshotcam.CFrame = CFrame.new(char.Position + kpg.Unit*65)
			end
		end
	end
end)
workspace.Gravity = 80
game:GetService("RunService").Stepped:Connect(function(tim,dt)
	torso.CanCollide = false
	root.CanCollide = false
end)
--
vis.head.Beam.Attachment0 = vis.dot.Attachment
vis.head.Beam.Attachment1 = vis.head.Attachment
--
while true do
	frame = frame+1
	dt = game:GetService("RunService").RenderStepped:wait()
	local gtick = tick()
	--local _, Y = char.CFrame:ToOrientation()
	--local charCF = CFrame.new(char.Position) * CFrame.fromOrientation(0, Y, 0)
	--char.CFrame = charCF
	mobile = uis.TouchEnabled
	UI.mobile.Visible = mobile
	if mobile then console = true end
	mps = char.CFrame-Vector3.new(0,1)
	zoom = math.max(.5, math.min(5, zoom - (z1-z2)/10))
	local stk = math.abs(dUP-dDN)+math.abs(dRT-dLF)>0 and Vector3.new(dRT-dLF,dUP-dDN,0).Unit or st2
	yim = (stk.Magnitude<.2 and ms2/25 or Vector3.new(stk.X*1.3,stk.Y)*dt*2.5) * (gotice and 0 or 1)
	if not gotice and ipCam then
		if ipCam.UserInputState == Enum.UserInputState.Change then
			yim = Vector2.new(ipCam.Delta.X/200,-ipCam.Delta.Y/200) 
		elseif ipCam.UserInputState == Enum.UserInputState.End then
			ipCam = nil
		end
	end
	local freecam
	if paused and not UI.pause.Visible then
		dir = Vector3.new(st1.X, 0, -st1.Y)*fastmode
		if math.abs(a-d)+math.abs(w-s)>0 then dir, console = Vector3.new(d-a,0,s-w).Unit*fastmode, false end
		if dir.magnitude > deadzone then
			local ang = v2(vcf.lookVector).Unit
			dir = (CFrame.new(Vector3.new(),-dir)*CFrame.Angles(0,math.atan2(ang.X,ang.Z),0)).lookVector
				* dir.magnitude
		end
		dir = dir + Vector3.new(0,tojump - todive,0)
		if dir.Magnitude>1 then dir = dir.Unit end
		freecam = mps-mps.p + snapshotcam.Position - Vector3.new(0,2)
	end
	local bs = (tick()-attacktick)<.2 and 2.5 or 1
	local touch=workspace:FindPartsInRegion3WithIgnoreList(Region3.new(mps.p-Vector3.new(1,1,1)*bs, mps.p+Vector3.new(1,2,1)*bs),{
		char,
		characterModel,
		button
	})
	local inwatr
	for _,v in pairs(touch)do
		spawn(function()touched(v, true)end)
		if v.Name == "Light" then
			vis.dot.Material = "Neon"
			vis.dot.L1.Enabled = true
			vis.dot.L2.Enabled = true
		elseif v.Name == "water" and mps.Y<v.Position.Y+v.Size.Y/2 then
			inwatr = v
		elseif v:FindFirstChild'tx' and not talkto and not paused and not gotice then
			char.Velocity = char.Velocity + v2(char.Position-v.Position)
		elseif v.Name == "silent"then
			songplay = "nothing"
		elseif v.Name == "wind" and not talkto and not paused and not gotice then
			char.Velocity = char.Velocity + v.force.Value*dt*150
		end
	end

	touchcam = nil
	if not gotice and ipSt1 then
		if ipSt1.UserInputState == Enum.UserInputState.Change or ipSt1.UserInputState == Enum.UserInputState.Begin then
			mobst(ipSt1.Position)
		elseif ipSt1.UserInputState == Enum.UserInputState.End then
			mobst(false)
		end
	end

	vis.dot.Anchored = true
	vis.dot.Material = "SmoothPlastic"
	vis.dot.L1.Enabled = false
	vis.dot.L2.Enabled = false
	songplay =
		(gotice or trdo==0 or anicam) and "nothing"
		or flying and "bgmA"
		or swimming and "bgmW" or "bgm"

	if infwater then
		inwatr = not inwatr and workspace or nil
	end
	if not swimming and inwatr then
		swimming = true
		watertick = gtick
		sliding, pound, longjump, wallrun, ledgegrab, flying, skate, rolling = false,false,false,false,false,false,false,false
	elseif swimming and not inwatr then
		swimming = false
		watertick = gtick
		sliding = true
		if char.Velocity.Y > 0 then
			char.Velocity = v2(char.Velocity, char.Velocity.Y*1.5)
		end
	end
	if not touchcam and not talkto and not UI.pause.Visible then
		campitch = math.max(-1.5,math.min(1.5, campitch + yim.Y))
		if snapcam>0 then
			yim = Vector3.new(camcf.lookVector:Dot(snapto)/5, yim.Y)
			if math.abs(camcf.lookVector:Dot(snapto))<.01 then snapcam = 0 end
		end
		if yim.Magnitude>.0001 or stillcam or paused or firstperson then
			camcf = 
				(camcf-camcf.p+(freecam or mps).p+ Vector3.new(0,2))
				*CFrame.Angles(0,-yim.X,0)
				*CFrame.new(0,0,zoom*10)
		else
			camcf = CFrame.new(v2(camcf.p), v2((freecam or mps).p))
				* CFrame.new(0,0,-(v2(camcf.p)-v2((freecam or mps).p)).magnitude+10*zoom)
				+ Vector3.new(0,(freecam or mps).Y+2)
		end
		if yim.Magnitude>.2 or stillcam or paused or firstperson then
		else
			if flying then
				campitch = campitch + (flypitch-.3 -campitch)*dt
			elseif swimming then
				campitch = campitch + (botand+1 -campitch)*dt
			elseif gtick-watertick<3 then
				campitch = campitch + (-.4 -campitch)*dt
			end
		end
	elseif talkto then
		firstperson = false
		local p1, p2 = mps.p, talkto.Position
		local c = CFrame.new(v2(p1), v2(p2))
		campitch = campitch + ( -campitch)*dt*8
		p1 = p1+c.lookVector-c.rightVector*8*talktn
		p2 = p2-c.lookVector*1+c.upVector*2
		camcf = camcf:Lerp(CFrame.new(p1, p2+Vector3.new(0,-p2.Y+p1.Y)) , dt*5)
		textbox.Parent = script
		textbox.SurfaceGui.spin.Visible = not talking
		textbox.SurfaceGui.spin.Rotation = (gtick-btntick)*80
		for x,v in pairs(textbox.SurfaceGui.tbt:GetChildren())do
			if v:FindFirstChild("beebo")then
				if math.random(200)==1 then
					v.Position = UDim2.new(0,v.pos.Value.X+math.random(-1,1),0,v.pos.Value.Y+math.random(-3,3))
				else
					v.Position = UDim2.new(0,v.pos.Value.X,0,v.pos.Value.Y)
				end
			elseif v:FindFirstChild("effect")then
				v.Position = UDim2.new(0,v.pos.Value.X,0,v.pos.Value.Y+math.sin(x/2-gtick*10)*4)
				v.Rotation = math.cos(x/2-gtick*10)*10
				v.effect.var.Value = v.effect.var.Value+4
				if v.effect.var.Value>255 then v.effect.var.Value = 0 end
				v.TextColor3 = Color3.fromHSV(v.effect.var.Value/255,1,1)
			elseif v:FindFirstChild("shake")then
				v.Position = UDim2.new(0,v.pos.Value.X+math.random(-2,2),0,v.pos.Value.Y+math.random(-2,2))
				v.Rotation = math.random(-6,6)
			end
		end
	end
	if not talkto then
		textbox.Parent = rf
	end
	if not lockcam and not UI.pause.Visible then
		vcf = camcf*CFrame.new(0,0,-zoom*10)*CFrame.Angles(campitch,0,0)*CFrame.new(0,0,zoom*10)
	elseif lockcam and anicam then
		vcf = vcf:Lerp(anicam, dt*1)
	else
		firstperson = false
		pzom = 0
	end
	local c1,c2,c3 = cast(Ray.new(mps.p+Vector3.new(0,2), -vcf.lookVector*zoom*10-vcf.lookVector))
	if lockcam or talkto then c1, pzom, firstperson = nil, 0, false end--unsure if correct
	if c1 then
		if math.abs(c3.Y) < .3 then camtand = camtand + v2(c3).Unit*dt*zoom/4 end
		pzom = (vcf.p-vcf.lookVector-c2).Magnitude
	else
		pzom = math.max(0, pzom- dt*14)
	end
	if firstperson then
		pzom = zoom*10
	end
	if not lockcam and not paused then vcf = vcf * CFrame.new(0,0,-pzom)
	elseif paused and not UI.pause.Visible then vcf = vcf * CFrame.new(0,0,-zoom*10) end
	camtand = camtand-camtand*dt*8
	camcf = camcf+camtand*dt*800
	if gotice then
		vcf = mps * CFrame.new(0,3,-20)*CFrame.Angles(0,math.pi,0)
	end
	tpc = vcf+vcf.lookVector*rendist

	local fov = workspace.CurrentCamera.FieldOfView
	workspace.CurrentCamera.FieldOfView = fov + ((flying and 70+flyspeed*3 or 70) -fov)*dt

	if not paused or enablePhysWhilePaused then
		dir = Vector3.new(st1.X, 0, -st1.Y)
		if math.abs(a-d)+math.abs(w-s)>0 then dir, console = Vector3.new(d-a,0,s-w).Unit, false end
		if dir.magnitude > deadzone then
			local ang = v2(vcf.lookVector).Unit
			if ang == ang then
				dir = (CFrame.new(Vector3.new(),-dir)*CFrame.Angles(0,math.atan2(ang.X,ang.Z),0)).lookVector
					* dir.magnitude
			end
		end
		if talkto then
			dir = Vector3.new()
			point = point:Lerp(CFrame.new(v2(char.Position), v2(talkto.Position))-v2(char.Position), dt*4)
		end
		if not canmove then dir = Vector3.new()end
		if walkto then dir = walkto end

		ropeh = 0
		if onrope and onrope:FindFirstChild("PartA") then
			local ray = Ray.new(onrope.PartA.Position, (onrope.PartB.Position-onrope.PartA.Position).Unit)
			local div = math.max(0, 1-(onrope.PartA.Position-mps.p).Magnitude/10)
			div = math.min(1, div + math.max(0, 1-(onrope.PartB.Position-mps.p).Magnitude/10))
			local tense = (onrope:FindFirstChild("tense") and 0 or 1)*(skate and 0 or 1)
			ropeh = math.sin((gtick-ropetick-.2)*8)*5*(1-div) *math.max(0,1-(gtick-ropetick)/2)*tense*(onrope:FindFirstChild("tense") and 0 or 1)		
			local offset = (onrope.PartB.Position-onrope.PartA.Position).Magnitude/10* (1-div)*tense
			onrope.Mid.CFrame = CFrame.new(ray:ClosestPoint(mps.p+Vector3.new(0,offset-1.7-ropeh)))+Vector3.new(0,-offset+ropeh)
			local diff = (onrope.Mid.Position-(mps.p-Vector3.new(0,1.7)))
			char.CFrame = char.CFrame + diff
			if not lockcam then vcf = vcf+diff end
			mps = mps+diff
			dir = ray.Direction.Unit* dir:Dot(ray.Direction.Unit)
			dir = Vector3.new(dir.X,0,dir.Z)
			if skate then
				dir = v2(ray.Direction.Unit*math.sign(point.lookVector:Dot(ray.Direction)))
				point = CFrame.new(Vector3.new(),dir)
			end
			if CFrame.new(onrope.PartB.Position, onrope.PartA.Position).lookVector
				:Dot(CFrame.new(onrope.PartB.Position, mps.p).lookVector) < 0 then
				char.CFrame = char.CFrame-char.Position + onrope.PartB.Position+Vector3.new(0,2.2)
			end
		elseif swip and not walkto then
			point = swip
			dir = Vector3.new()
		elseif ground and not swimming and not skate and not debounce and
			dir.Magnitude > deadzone and dir:Dot(char.CFrame.lookVector)<=-.5 and v2(char.Velocity).Magnitude>10 and walklerp>.7 then
			swip = char.CFrame-char.Position
			delay(.3, function()
				if swip then
					debounce = false
					swip = false
					wait(0.2)
					debounce =false
				end
			end)
		end	


		local f1, f2, f3 = nil,Vector3.new(),Vector3.new()
		if not jumping then
			local dn = -Vector3.new(0,ground and 2.5+v2(char.Velocity).Magnitude/30 or 2.5)
			f1, f2, f3 = cast(Ray.new(mps.p, dn))
			if f1 and f1.Name~="Slide"and f1.Parent.Name~="moving" and f1.Name~="soap" and f1.Name~="bounds" then
				delay(2,function()
					if tick()-safetick < .02 then
						safecf = char.CFrame
					end
				end)
				safetick = tick()
			end
			if not f1 then f1, f2, f3 = cast(Ray.new(mps.p+mps.lookVector*.9, dn))end
			if not f1 then f1, f2, f3 = cast(Ray.new(mps.p-mps.lookVector*.9, dn))end
			if not f1 then f1, f2, f3 = cast(Ray.new(mps.p+mps.rightVector*.9, dn))end
			if not f1 then f1, f2, f3 = cast(Ray.new(mps.p-mps.rightVector*.9, dn))end
			if (onrope or pole or swimming)or f3.Y < .3 then
			elseif f1 and not ground then pheight = f2.Y+(mps.Y - f2.Y-2) end
			if not sitting and pheight and f1 and f3.Y>=.3 and f1.Parent.Name~="moving" then
				local h = f2.Y - pheight
				char.CFrame = char.CFrame + Vector3.new(0,h,0)
				mps=mps + Vector3.new(0,h,0)
				if not lockcam then vcf=vcf+Vector3.new(0,h,0)
					workspace.CurrentCamera.CFrame = workspace.CurrentCamera.CFrame+ Vector3.new(0,h,0)
				end
			end
		end
		if (onrope or pole or swimming)or f3.Y < .6 or f1.Name == "door" then
			if ground and sliding and botand+1.3>0 and not rolling then
				char.Velocity = v2(char.Velocity, v2(char.Velocity).Magnitude/2)
			end
			ground, f1 = nil
		elseif not ground and f1 and not jumping then
			char.Velocity = v2(char.Velocity,0)
			psound(vis.torso, "land")
			particle("cloud", pound and 8 or 3, true)
			ground = f1
			walklerp = 0
			spawn(function()touched(f1)end)
			rolling = false
			pound = false
			flying = false
			djump = false
			wallrun, ledgegrab = nil
			timeland = longjump and gtick or gtick-.2

			if crouch then
				crouchtick = gtick
				if sliding and ground.Name~="Slide"then
					sliding = false
				end
			end
		elseif ground and f1 and not jumping then
			ground = f1
		else ground, f1 = nil
		end
		if ground and not jumping then
			longjump = false
			attack = false
			pheight = f2.Y
			if gtick-timeland > .5 then
				skatestat[5]=skatestat[5]+skatestat[2]*skatestat[3]
				skatestat = {nil, 0,0,false,skatestat[5]}
			end
		else
			pheight = nil
		end
		if not f1 then swip = false end
		if f1 then
			if (f1:IsA("Seat") or f1:IsA("VehicleSeat")) and not sitting and tick() - sitdebounce > 3 then
				canmove = false
				rem:FireServer("sit", f1)
			end

		end
		if f1 and f1.Name == "Slide" and not skate then	
			sliding = true
			djump = true
		elseif f1 and f1.Name == "lava" then
			server_damage()
			cvt(Vector3.new(0,40))
		elseif f1 and f1.Name == "soap" then
			if not f1.pe.Enabled and f1.pe.Archivable then
				spawn(function()
					f1.pe.Archivable = false
					f1.pe:Emit(10)
					local t = tick()
					local cf = f1.CFrame
					while tick()-t < 1 do
						local t = (tick()-t)
						f1.Size = Vector3.new(11,5-t*5,16)
						f1.CFrame = cf * CFrame.new(0,t*2.5,0)
						wait()
					end
					f1.Size = Vector3.new(0, 0, 0)
					f1.CFrame = CFrame.new()
					wait(3)
					repeat
						wait(.2)
					until (mps.p-cf.p).Magnitude > 10--equals
					f1.Size = Vector3.new(11,5,16)
					f1.CFrame = cf
					f1.pe.Archivable = true
				end)
			end
		end

		if not ground and not pole then
			local w1, w2, w3 = cast(Ray.new(mps.p, point.lookVector*3))
			local side, pass = point.lookVector*3, nil
			if not w1 and not touchcam then w1, w2, w3 = cast(Ray.new(mps.p, point.rightVector*2))side = point.rightVector*2 end
			if not w1 and not touchcam then w1, w2, w3 = cast(Ray.new(mps.p, -point.rightVector*2))side = -point.rightVector*2 end
			local canwall =w1 and (w1.Name~="nowall"and w1.Name~="pole"and w1.Name~="door"and w1.Name~="breakable"and not w1:FindFirstChild"nowall")
			if not ground and canwall and not onrope and not swimming and not debounce and math.abs(w3.Y)<.2 and point.lookVector:Dot(w3)<.3 then
				if not wallrun and v2(char.Velocity):Dot(point.lookVector)>0 and dir.Magnitude>.5 then
					local force = CFrame.new(Vector3.new(),w3).rightVector*-w3:Dot(point.rightVector)
						+ point.upVector*-w3:Dot(point.lookVector)
					char.Velocity = v2(char.Velocity, 10+force.Unit.Y*30)
				end
				longjump, pound, flying, attack, rolling = false, false, false, false, false
				pass=true
				if not wallrun then
					skatestat = {"Wallride", skatestat[2]+100, skatestat[3]+1, true, skatestat[5]}
				end
				wallrun = w2
				wallnorm = w3
				local init = cast(Ray.new(mps.p+Vector3.new(0,2), side))
				local b1, b2, b3 = cast(Ray.new(mps.p+Vector3.new(0,2)+side, Vector3.new(0,-2)))
				if not init and b1 and b3.Y>.8 and not debounce and not skate and (vis.torso.Position.Y - vis.trs.shadow.Position.Y > 5) then

					if not ledgegrab then
						char.Velocity = Vector3.new()
						ledgegrab = w1
						ledgepoint = Vector3.new(w2.X, b2.Y-1.4, w2.Z)+w3
					end
				else
					ledgegrab = nil
				end
			end
			if not pass and wallrun then
				wallrun = nil
				ledgegrab = nil
			end
		end

		if jumping then f1 = nil end
		cvu = char.Velocity.Magnitude>.2 and char.Velocity.Unit or Vector3.new()
		if sliding then
			if v2(char.Velocity).Magnitude>.2 then
				if point.lookVector:Dot(char.Velocity.Unit) < 0 then
					point = point:Lerp(CFrame.new(Vector3.new(), dir*2-v2(char.Velocity)), dt*4)
				else
					point = point:Lerp(CFrame.new(Vector3.new(), dir*2+v2(char.Velocity)), dt*4)
				end
			end
		elseif skate then
			if dir.Magnitude>.2 and ground then
				point = point:Lerp(CFrame.new(Vector3.new(), dir), dt*3)
			end
		elseif swimming then
			if dir.Magnitude>.2 then
				point = point:Lerp(CFrame.new(Vector3.new(), dir), dt*3)
			end
			attack = false
		elseif pole then
		elseif ledgegrab then
			point = CFrame.new(Vector3.new(), -wallnorm)
		elseif crouch and dir.Magnitude > .2 and (ground and tick() - timeland > .2 or onrope)then
			point = point:Lerp(CFrame.new(Vector3.new(), dir), dt*5)
		elseif dir.Magnitude > .2 and (ground and tick() - timeland >.2 or onrope)then
			point = CFrame.new(Vector3.new(), dir)
			dancing = false
		end
		char.BodyGyro.CFrame = point*CFrame.Angles(0,point.lookVector:Dot(char.CFrame.lookVector)<-.96 and fallvr or 0,0)
		if v2(char.Velocity).Magnitude>.3 then sticko = v2(cvu):Dot(f3)*1.2 end
		rotand = rotand +((
			onrope and math.sin(gtick)/4
				or wallrun and math.max(-1.5,math.min(1.5,-wallnorm:Dot(point.rightVector)*6))
				or ground and math.max(-.8, math.min(.8, mps.lookVector:Dot(point.rightVector)*dir.Magnitude*1.5))-f3:Dot(point.rightVector)
				or 0
			)- rotand) * dt*6
		botand = botand + ((
			(ledgegrab or onrope) and 0
				or (pole or attack) and 0
				or skate and math.max(-.8,math.min(.8,ground and -point.lookVector:Dot(f3) or char.Velocity.Y/40))
				or swimming and -1.4+math.max(-.8,math.min(.8,char.Velocity.Y/20))
				or flying and flypitch-1.4
				or wallrun and (1.5-math.abs(rotand))*math.max(0, cvu:Dot(Vector3.new(0,1)) )
				or sliding and -1.3+math.max(-.8,math.min(.8,ground and -point.lookVector:Dot(f3) or char.Velocity.Y/40))
				or ground and -dir.Magnitude/5/fastmode- f3:Dot(point.lookVector) - (crouch and 1.2 or 0)
				or rolling and 0
				or math.max(-1, math.min(1,char.Velocity.Y/40))
			)-botand)*dt*(longjump and not pound and 3 or 6)
		if math.floor(botand/(math.pi*2)+.5)~= flipo and not gotice then
			flipo = math.floor(botand/(math.pi*2)+.5)
			psound(vis.torso, "flip")
		end
		if attack and not gotice then
			potand = potand - dt*(20+todive*10)
			if potand<0 then potand = potand+math.pi*2 psound(vis.torso, "spin") end
		else
			potand = potand +((
				flying and math.max(-1, math.min(1, -mps.lookVector:Dot(point.rightVector)*dir.Magnitude*8))
					or 0
				)-potand)*dt*((skate or flying) and 3 or 8)
		end
		sliderp = sliderp + (((sliding or swimming) and 1 or 0) - sliderp)*dt*10
		wallerp = wallerp + ((wallrun and 1 or 0) - wallerp)*dt*10
		fallerp = fallerp + (((ground or onrope or wallrun or sliding or pole or swimming or skate) and 0 or fallvr) - fallerp)*dt*10
		longerp = longerp + ((longjump and 1 or 0) - longerp)*dt*10
		roperp = roperp + ((onrope and 1 or 0)- roperp)*dt*10
		holderp = holderp + ((hold and 1 or 0)- holderp)*dt*10
		croucherp = croucherp + ((crouch and ground and not sliding and 1 or 0)- croucherp)*dt*10
		lederp = lederp + ((ledgegrab and 1 or 0) - lederp)*dt*10
		polerp = polerp + ((pole and 1 or 0) - polerp)*dt*10
		swimerp = swimerp + ((swimming and 1 or 0) - swimerp)*dt*10
		skaterp = skaterp + ((skate and 1 or 0) - skaterp)*dt*10
		flamerp = flamerp + ((flameon and 1 or 0) - flamerp)*dt*10
		rollerp = rollerp + ((rolling and 1 or 0) - rollerp)*dt*10

		boarderp = boarderp + (Vector3.new(0,0,-f3:Dot(point.rightVector)) - boarderp)*dt*6
		aterp = aterp + ((attack and 1 or 0) - aterp)*dt*10
		dancerp = dancerp + ((dancing and 1 or 0) - dancerp)*dt*10
		swiperp = swiperp + ((swip and 1 or 0) - swiperp)*dt*10
		siterp = siterp + ((sitting and 1 or 0) - siterp)*dt*10
		local force = dir*600
		local damp = Vector3.new(.75,1,.75)
		speedy = 1
		if crouch and not fcrouch then--unsure about crouch
			local g1 = cast(Ray.new(mps.p, Vector3.new(0,4)))
			if not g1 then
				crouch = false
			end
		end
		if sliding then
			force = dir*300*math.max(.3,1-math.abs(dir:Dot(point.lookVector)))*(char.Velocity.Magnitude/100)+ v2(f3)*200
			damp = Vector3.new(.994,1,.994)
			speedy = 0
			if f3.Y>.99 and ground then
				damp = Vector3.new(.97,1,.97)
				if char.Velocity.Magnitude < 10 then sliding = false end
			end
		elseif onrope then speedy = .8
		elseif pole then speedy = 1
		elseif attack then speedy, damp = 0, Vector3.new(.75,jumping and 1 or .9,.75)
			force = force - Vector3.new(0,jumping and 0 or todive*600)
		elseif swimming then speedy = 1
		elseif longjump then force, damp = dir*150, Vector3.new(.98,1,.98)
		elseif wallrun and not skate then speedy = math.max(0,math.min(1,vis.torso.CFrame.lookVector:Dot(char.Velocity)/10))
		elseif crouch then force, speedy = dir*300, .5 skate, dancing = false, false
		elseif dancing then speedy = 1
		elseif skate then speedy = 0
		elseif not ground then force, damp = dir*200, Vector3.new(.9,1,.9)
		end

		if not hum.SeatPart and sitting then
			canmove = true
		elseif hum.SeatPart and sitting then
			canmove = false
		end
		sitting = hum.SeatPart ~= nil
		if sitting then
			skate = false
		end

		char.CanCollide = not sitting
		if hum.SeatPart and sitting then
			botand = 0
			rotand = 0
			potand = 0
			--char.Velocity = Vector3.zero
			--char.CFrame = hum.SeatPart.CFrame * CFrame.new(0,3,0)
			mps = char.CFrame
		end

		speedy = (wallrun and 1 or swimming and math.min(1,dir.magnitude+math.abs(tojump-todive))*1.4 or dir.Magnitude)*speedy
		walklerp = walklerp + (speedy -walklerp)*dt*4
		walktick = walktick + dt * speedy*(1-math.abs(fallerp))
		anim(vis, plam, ((zoom*10-pzom>2 or gotice) and (characterModel:GetAttribute("tpc") or 0) or 1)  )
		local lt = (vis.head.CFrame-vis.head.Position):Lerp(lookat, lookerp)
		vis.head.CFrame = lt*CFrame.new(0,1,0)-vis.head.dcf.Value.upVector + vis.head.Position
		if hat~=0 and (zoom*10-pzom>2 or gotice) and vis.trs:FindFirstChild'hat'then
			vis.trs.hat.Transparency = 0
			vis.trs.hat.CFrame = vis.head.CFrame * cfro(vis.trs.hat.off.Position)
				*CFrame.Angles(math.rad(vis.trs.hat.off.Orientation.X), math.rad(vis.trs.hat.off.Orientation.Y),math.rad(vis.trs.hat.off.Orientation.Z))
			if vis.trs.hat:FindFirstChild("skin")then
				vis.trs.hat.Mesh.TextureId = vis.torso.Mesh.TextureId
				vis.trs.hat.Material = vis.torso.Material
				vis.trs.hat.Reflectance = vis.torso.Reflectance
				vis.trs.hat.Transparency = vis.torso.Transparency
				vis.trs.hat.Color = vis.torso.Color
			end
		elseif vis.trs:FindFirstChild'hat'then
			vis.trs.hat.Transparency = 1
		end
		animDot()
		local tr = (not hpdeb and 0 or math.sin(gtick*40)>0 and 1 or 0) + ((zoom*10-pzom>2 or gotice) and 0 or 1)
		for _,v in pairs(vis:GetChildren())do 
			if v.Name~="trs" and v ~= char and v ~= fdot and v:IsA("BasePart") then 
				v.Transparency = tr
				for _, v in pairs(v:GetChildren()) do
					if v:IsA("Decal") or v:IsA("Texture") then
						v.Transparency = tr
					end
					if v:IsA("Beam") then
						v.Transparency = NumberSequence.new(tr)
					end
				end
			end 
		end
		vis.head.skin.CFrame = vis.head.CFrame
		vis.head.skin.Transparency = vis.head.Transparency
		vis.head.Transparency = 1
		
		local b1, b2, b3 = cast(Ray.new(mps.p, Vector3.new(0,-30)))
		if b1 then
			local p = Vector3.new(vis.torso.Position.X, b2.Y, vis.torso.Position.Z)
			local s = ((b2.Y - vis.torso.Position.Y)/10 + 3)*(scale.X+scale.Z)/2
			vis.trs.shadow.Size = Vector3.new(s,1,s)
			vis.trs.shadow.CFrame = CFrame.new(p,p+b3)*CFrame.Angles(-math.pi/2,0,0)*CFrame.new(0,-.4,0)
		else
			vis.trs.shadow.CFrame = CFrame.new()
		end
		if not vis.torso.slide.Playing then
			vis.torso.slide:Play()
		end
		vis.torso.slide.Volume = sliderp*(1-swimerp)*math.min(1,b2.Y-vis.torso.Position.Y+2.6)
		local tr = (not hpdeb and 0 or math.sin(tick()*40)>0 and 1 or 0) + ((zoom*10-pzom>2 or gotice) and 0 or 1)
		if math.sign(math.sin(walktick*14))~=walkfx and (not djump and not swimming or wallrun or pole) then
			walkfx=math.sign(math.sin(walktick*14))
			if pole then
				psound(vis.torso,"pole")
			else
				psound(vis.torso,"s".. (ground and ground:FindFirstChild'step'and'b'or ground and ground.Name=="step"and'b'or'a') .. math.random(5))
			end
		end
		if talkto and talking then
			if textbox.SurfaceGui.bg.Image == "rbxassetid://1442127057" then
				if math.sin(gtick*50)>.5 then
					faceid = 2
				else
					faceid = 0
				end
			else
				talkto.Size = talkto.sz.Value+Vector3.new(math.sin(gtick*20),math.cos(gtick*20),math.sin(gtick*20))/8
				talkto.CFrame = talkto.cf.Value+Vector3.new(0,math.cos(gtick*20))/16
			end
		elseif talkto then
			talkto.Size = talkto.sz.Value
			talkto.CFrame = talkto.cf.Value
		end

		vis.trs.jetpack.TrailA.Enabled, vis.trs.jetpack.TrailB.Enabled = false, false

		if swimming then
			bforce = dir*120
				+Vector3.new(0,workspace.Gravity*char:GetMass()+(tojump-todive)*120)
				+(inwatr and inwatr:FindFirstChild'current'and inwatr.current.Value*10 or Vector3.new())
			bdamp = Vector3.new(1,1,1)*.9
			if trsing and tojump-todive ~= 0 and not earlystart then
				earlystart = true
			end
		elseif ledgegrab then
			sliding = false
			if debounce then
				bforce = Vector3.new()
			else
				bforce = (ledgepoint-mps.p)*400
					+Vector3.new(0,workspace.Gravity*char:GetMass())
				bdamp = Vector3.new(1,1,1)*.1
			end
		elseif skate then
			bforce = (f1 and point.lookVector*170 or dir*50)
				+(f1 and Vector3.new(0, ((f2.Y+2) - mps.p.Y)*300 + workspace.Gravity*char:GetMass()/2)
					or Vector3.new())
			bdamp = f1 and Vector3.new(.9, .2, .9) or Vector3.new(.98,1,.98)
			sliding, swimming = false, false
		elseif flying then
			local dip = flyspeed<1 and (1-flyspeed) or 0
			flypitch = math.min(1,math.max(-1,flypitch-flypitch*dt/2 +dir:Dot(camcf.lookVector)/(1+dip*3)*dt*1.3 -(flyspeed<1 and dt or 0) ))
			local tpot = point*CFrame.Angles(flypitch,0,0)
			flyspeed = math.max(0,  flyspeed-(flypitch)*dt )
			bforce = tpot.lookVector*50*(flyspeed>3 and flyspeed/3+2 or flyspeed)
				+Vector3.new(0,workspace.Gravity*char:GetMass())
			bdamp = Vector3.new(1,1,1)*.95
			point = point*CFrame.Angles(0,-dir:Dot(camcf.rightVector)*dt*3.5,0)
			vis.trs.jetpack.gastB.Position = Vector3.new(-.2*math.sin(-potand)-1.7, -0.468, 0.119)
			vis.trs.jetpack.gastC.Position = Vector3.new(.2*math.sin(potand)+1.7, -0.468, 0.119)
			vis.trs.jetpack.TrailA.Enabled, vis.trs.jetpack.TrailB.Enabled = flyspeed>2.7,flyspeed>2.7
		elseif pole then
			local vy = char.Position.Y>pole.Position.Y+pole.Size.Y/2 and math.min(0,dir:Dot(camcf.lookVector)) or
				char.Position.Y<pole.Position.Y-pole.Size.Y/2+2 and math.max(0,dir:Dot(camcf.lookVector))
				or dir:Dot(camcf.lookVector)
			rolling = false
			if math.abs(vy)<.4 then vy = 0 end 
			bforce = v2(pole.Position-mps.p-point.lookVector*(pole.Size.X/2+1))*500
				+Vector3.new(0,workspace.Gravity*char:GetMass()+vy*600)
			bdamp = Vector3.new(1,1,1)*.1
			if dir.Magnitude>deadzone then
				point = point*CFrame.Angles(0,math.abs(vy)<.4 and dir:Dot(camcf.rightVector)*dt*4/(pole.Size.X^.5) or 0,0)
			elseif pole.Size.X < 8 then
				local sector = math.floor(4*math.atan2(-point.lookVector.X, -point.lookVector.Z)/math.pi + .5)%8
				point = CFrame.Angles(0,sector*math.pi/4,0)
			end
		elseif wallrun then
			local imp = math.abs(dir:Dot(point.lookVector))
			imp = imp > .9 and 0 or 1
			point = point:Lerp(CFrame.new(Vector3.new(), -wallnorm*2+dir*imp), dt*3)
			if sliding then
				sliding = false
			end
			bforce = Vector3.new(0,workspace.Gravity*char:GetMass()/2)
				+point.lookVector*imp*150
			-wallnorm*100
			bdamp = Vector3.new(.93,.96,.93)
		elseif onrope then
			bforce = dir*600
				+ Vector3.new(0,workspace.Gravity*char:GetMass())
			bdamp = Vector3.new(1,1,1)*.1
		else
			bforce = force*.3*speed*scale.Y

				+(f1 and Vector3.new(0, ((f2.Y+(crouch and not sliding and 1 or 2)) - mps.p.Y)*300 + workspace.Gravity*char:GetMass()/2)
					or Vector3.new(0, pound and -30 or 0))
			bdamp = f1 and Vector3.new(damp.X, .2, damp.Z) or damp
		end
		if touchcam and touchcam.Pos.Value.Y~=0 then
			local inv = Vector3.new(1,1,1)-touchcam.Pos.Value
			bforce = bforce
				+(touchcam.Position*inv - mps.p*inv)*400
			bdamp = bdamp*touchcam.Pos.Value
		elseif talkto and not talkto:FindFirstChild("distant") then
			bforce = bforce + v2((talkto.Position+CFrame.new(v2(talkto.Position),v2(mps.p)).lookVector*6) -mps.p)*100
			bdamp = bdamp-Vector3.new(.2,0,.2)
		end
		if flameon then
			bforce = bforce - vis.trs.flamethrower.CFrame.lookVector*Vector3.new(1,.8,1)*80
			if not hasflame then flameon = false end
		end
		if sitting and hum.SeatPart then
			bforce = Vector3.zero
			bdamp = Vector3.one
			char.BodyGyro.MaxTorque = Vector3.zero
			char.BodyGyro.P = 0
			char.BodyGyro.D = 0
		else
			char.BodyGyro.MaxTorque = Vector3.one*5000
			char.BodyGyro.P = 3000
			char.BodyGyro.D = 300
		end
		for i,v in pairs(particles)do
			v.CFrame = v.CFrame*CFrame.Angles(v.rs.Value.X*dt,v.rs.Value.Y*dt,v.rs.Value.Z*dt) + v.speed.Value*dt
			v.Mesh.Scale = v.Mesh.Scale - Vector3.new(1,1,1)*dt/10
			if v.Mesh.Scale.X <= 0 then
				table.remove(particles,i)
				v:Destroy()
			end
		end
		if talkto or anicam or char.Anchored and not pound then
			btnadn = nil
		elseif hold then
			btnadn = nil
			local p = (vis.armC.Position+vis.armD.Position)/2
			local g = hold:FindFirstChild("rt")and CFrame.Angles(hold.rt.Value.X,hold.rt.Value.Y,hold.rt.Value.Z)or CFrame.new()
			hold.CFrame = vis.head.CFrame*g
			-vis.head.Position + p - (vis.armC.CFrame.upVector+vis.armD.CFrame.upVector)/2
				+ vis.head.CFrame.upVector/3
		else
			local grabs = workspace:FindPartsInRegion3WithIgnoreList(
				Region3.new(mps.p+char.CFrame.lookVector*4-Vector3.new(4,3,4),mps.p+char.CFrame.lookVector*4+Vector3.new(4,3,4))
				,{char, vis, button})
			local dst = 100
			neargrab = nil
			for _,v in pairs(grabs)do
				if (v.Parent.Name=="picks" and (v.Position-mps.p).Magnitude < 5  or v:FindFirstChild'tx')
					and (v.Position-mps.p).Magnitude < dst then
					dst, neargrab = (v.Position-mps.p).Magnitude, v
				end
			end
			if neargrab then
				if not btnadn then btntick = gtick end
				btnadn = neargrab
			elseif not neargrab and btnadn then btnadn = nil
			end
		end
		if btnadn then
			local tlk = btnadn.Position
			if btnadn:FindFirstChild'face'then tlk = (btnadn.CFrame*CFrame.new(btnadn.face.Position)).p end
			lookat = lookat:Lerp(CFrame.new(vis.head.Position, tlk)-vis.head.Position, dt*5)
			lookerp = lookerp + (math.max(0,lookat.lookVector:Dot(vis.head.dcf.Value.lookVector))-lookerp)*dt*10
			if not button:GetAttribute("n") then
				button:SetAttribute("n", true)
				button.Parent = nil
			end
			button.Parent = script
			button.CFrame = vcf*CFrame.Angles(-math.pi/2,math.cos((gtick-btntick)*4)/10,math.sin((gtick-btntick)*4)/10+math.pi)
			-vcf.p + btnadn.Position + Vector3.new(0,btnadn.Size.Y/2+2)
			button.Mesh.TextureId = console and "rbxassetid://1129630779" or "rbxassetid://1194553296"
		else
			if not talkto then
				lookerp = lookerp -lookerp*dt*10
				lookat = lookat:Lerp(vis.head.CFrame-vis.head.Position, dt*10)
			else
				local tlk = talkto.Position
				if talkto:FindFirstChild'face'then tlk = (talkto.CFrame*CFrame.new(talkto.face.Position)).p end
				lookat = lookat:Lerp(CFrame.new(vis.head.Position, tlk)-vis.head.Position, dt*5)
				lookerp = lookerp + (math.max(0,lookat.lookVector:Dot(vis.head.dcf.Value.lookVector))-lookerp)*dt*10
			end
			button:SetAttribute("n", nil)
			button.Parent = rf
		end
	end
	if paused then
		local songplay = "bgmP"
		local spiny = UI.pause.s.spin
		if textsel and textsel.Parent then
			local spin2 = (textsel.Parent:FindFirstChild("2B"))
			local abso = (textsel.Parent:FindFirstChild("abso"))
			spiny.Visible = true
			if abso then
				spiny.posX.Value = spiny.posX.Value + ((spin2 and textsel.AbsolutePosition.X+textsel.AbsoluteSize.X/2 or .1) - spiny.posX.Value)*dt*20
				spiny.pos.Value = spiny.pos.Value + (textsel.AbsolutePosition.Y+textsel.AbsoluteSize.Y/2 - spiny.pos.Value)*dt*20
				spiny.Position = UDim2.new(0,spiny.posX.Value-UI.pause.s.AbsolutePosition.X-spiny.AbsoluteSize.X/2,0,spiny.pos.Value-UI.pause.s.AbsolutePosition.Y-spiny.AbsoluteSize.Y/2)
			else
				spiny.posX.Value = spiny.posX.Value + ((spin2 and textsel.Position.X.Scale + textsel.Size.X.Scale/2-spiny.Size.X.Scale/2 or .1) - spiny.posX.Value)*dt*20
				spiny.pos.Value = spiny.pos.Value + ((textsel.Position.Y.Scale + textsel.Size.Y.Scale/2-spiny.Size.X.Scale/2) - spiny.pos.Value)*dt*20
				spiny.Position = UDim2.new(spiny.posX.Value,0,spiny.pos.Value,0)
			end

			spiny.Rotation = (workspace.DistributedGameTime)*80
			spiny.Image = not spin2 and "rbxassetid://1442126706" or "rbxassetid://1447395325"
			spiny.Size = not spin2 and UDim2.new(.1,0,.1,0) or UDim2.new(.15,0,.15,0)
		else
			spiny.Visible = false
		end

		local dir = Vector3.new(st1.X, 0, -st1.Y)*fastmode
		if math.abs(a-d)+math.abs(w-s)>0 then dir, console = Vector3.new(d-a,0,s-w).Unit*fastmode, false end
		if textsel and pst.Magnitude < .8 and dir.Magnitude >= .8 then
			local pt = math.floor(2*math.atan2(-dir.X, -dir.Z)/math.pi + .5)%4
			if pt==0 and textsel.NextSelectionUp then
				textsel = textsel.NextSelectionUp
			elseif pt==2 and textsel.NextSelectionDown then
				textsel = textsel.NextSelectionDown
			elseif pt==3 and textsel.NextSelectionRight then
				textsel = textsel.NextSelectionRight
			elseif pt==1 and textsel.NextSelectionLeft then
				textsel = textsel.NextSelectionLeft
			end
		end
		log(textsel)
		pst = dir
	end
	if UI.pause.bg.clothing.load.Visible then
		UI.pause.bg.clothing.load.spinny.Rotation = UI.pause.bg.clothing.load.spinny.Rotation + dt*300
	end
	uis.MouseBehavior = MouseBehavior
	if not died then
		lockcam = sitting and not freecam
		if sitting and not freecam then
			workspace.CurrentCamera.CameraType = 'Custom'
			workspace.CurrentCamera.CameraSubject = hum
			textbox.CFrame = workspace.CurrentCamera.CFrame*CFrame.new(0,-3,-7)
		else
			workspace.CurrentCamera.CameraType = "Scriptable"
			workspace.CurrentCamera.CFrame = vcf
			textbox.CFrame = vcf*CFrame.new(0,-3,-7)
		end
	end
end]],madel)
--
local tx = Instance.new("TextLabel")
tx.Name = "tx"
tx.ZIndex = 3
tx.BorderColor3 = Color3.fromRGB(27, 42, 53)
tx.BackgroundTransparency = 1
tx.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
tx.FontSize = Enum.FontSize.Size60
tx.TextSize = 50
tx.TextColor3 = Color3.fromRGB(0, 0, 0)
tx.TextYAlignment = Enum.TextYAlignment.Top
tx.Text = "W"
tx.Font = Enum.Font.SourceSansBold
tx.TextXAlignment = Enum.TextXAlignment.Left

local pos = Instance.new("Vector3Value")
pos.Name = "pos"
pos.Parent = tx
tx.Parent = localscript
--
local obj = Decode('AAAdIQVTb3VuZCEETmFtZSEFbG9hZDEhB1NvdW5kSWQhF3JieGFzc2V0aWQ6Ly8xMTQwMTUzMzY1IQRpY2VkIRdyYnhhc3NldGlkOi8vMTE1NjgzNDkzNiEFbG9hZDIhF3JieGFzc2V0aWQ6Ly8xMTQwMTUzMTU1IQRub3RlIRdyYnhhc3NldGlkOi8vMTIzNjcwNDAw'
	..'NiEFdGV4dDIhF3JieGFzc2V0aWQ6Ly8xMjI4NTQ5NTM1IQR0ZXh0IRdyYnhhc3NldGlkOi8vMTEzMTA2NzA4MyEKdW5sb2NrZG9vciEXcmJ4YXNzZXRpZDovLzEzODMzMzUyMDghBlZvbHVtZQMAAAAAAADwPyEEaGVhbCEXcmJ4YXNzZXRpZDovLzE0NDc1OTIxODMh'
	..'A2dhcCEXcmJ4YXNzZXRpZDovLzEyMzg0NjU3NTUhA2VnZyEXcmJ4YXNzZXRpZDovLzEyMTE5MzgzNDIhBWNhbmR5IRdyYnhhc3NldGlkOi8vMTE0NDM1MTA1NCEGY2FuY2VsIRdyYnhhc3NldGlkOi8vMTE4ODQ1OTk5OAwBAAIAAgMEBQEAAgACBgQHAQACAAIIBAkB'
	..'AAIAAgoECwEAAgACDAQNAQACAAIOBA8BAAMAAhAEERITAQACAAIUBBUBAAMAAhYEFxITAQACAAIYBBkBAAIAAhoEGwEAAwACHAQdEhMA')
for _,obj in pairs(obj) do
	obj.Parent = localscript
end
--
--

print("R to toggle jetpack")
print('T to toggle skateboard')
print('Y to toggle flamethrower')
print('C to toggle follow cam (default: enabled)')

VectorForce.ApplyAtCenterOfMass = true

char.Transparency = 1
local ls = localscript
local cloud = Instance.new("Part")
cloud.Name = "cloud"
cloud.Anchored = true
cloud.CanCollide = false
cloud.Color = Color3.fromRGB(255, 255, 255)
cloud.Size = Vector3.new(1, 1, 1)
cloud.CFrame = CFrame.new(3.3000030517578125, 9.384933471679688, 0.8745574355125427)

local Mesh = Instance.new("SpecialMesh")
Mesh.Scale = Vector3.new(0.05000000074505806, 0.05000000074505806, 0.05000000074505806)
Mesh.MeshId = "rbxassetid://1103535082"
Mesh.MeshType = Enum.MeshType.FileMesh
Mesh.Parent = cloud

local speed = Instance.new("Vector3Value")
speed.Name = "speed"
speed.Parent = cloud

local rs = Instance.new("Vector3Value")
rs.Name = "rs"
rs.Parent = cloud

cloud.Parent = madel
local rem = Instance.new("RemoteEvent")
rem.Parent = script
local shadow = trs1.shadow
local dancing = false

function died(s)
	madel:SetAttribute("health", 0)
	OW = true
	cloud:Destroy()
	dmg:Play()
	g.CanCollide = false
	g2.CanCollide = false
	dot.Anchored = false
	vdamage(health)
	ragdoll(s or char.Velocity)
	rem:FireClient(owner, "died")
	h.Health = 0
	char:Destroy()
	localscript:Destroy()
end
rem.OnServerEvent:Connect(function(plr,l,s)
	if plr ~= owner or OW then return end
	if l == "toskin" then
		toskin(s, madel)
		return
	end
	if l == "loadhat" then
		local hat = s
		if trs1:FindFirstChild("hat") then
			if trs1.hat.id.Value == hat then
				return
			end
			trs1.hat:Destroy()
		end
		local h = rf.hats["hat"..hat]:Clone()
		h.Parent = trs1
		h.Name = "hat"
		updateHat()
		return
	end
	if l == "change" then
		setitem(s)
		return
	end
	if l == "icedcream" and s:IsDescendantOf(workspace) and s.Name == "icedcream" then
		health = 4
		updatehealth()
		return
	end
	if l == "battery" and s:IsDescendantOf(workspace) and s.Name == "battery" then
		health = math.clamp(health+1,0,4)
		updatehealth()
		return
	end
	if l == "damage" then
		damage()
		return
	end
	if l == "sit" then
		if  s and (s:IsA("Seat") or s:IsA("VehicleSeat")) then
			s:Sit(h)
		end
		return
	end
	if l == "died" then
		died()
		return
	end
	s = s or Vector3.new(1,1,1)
	shadow.Size = Vector3.new(math.clamp(s.X,0,10),1,math.clamp(s.Z,0,10))
	dot.Anchored = not OW

	local parts = {}
	local cframes = {}
	for i, v in l.c do
		local x, y, z = buffer.readf32(v, 0), buffer.readf32(v, 4), buffer.readf32(v, 8)
		local oX, oY, oZ = buffer.readi16(v, 12), buffer.readi16(v, 14), buffer.readi16(v, 16)
		cframes[i] = CFrame.new(x, y, z) * CFrame.fromOrientation(
			oX / 100,
			oY / 100,
			oZ / 100
		)
	end
	for i, v in l.p do
		local p = v
		if type(p) == 'string' and madel:FindFirstChild(p, true) then
			p = madel:FindFirstChild(p, true)
		end
		if p and p:IsA("BasePart") then
			--p.Anchored = true
		end
		if not p then
			cframes[i] = nil
		else
			parts[i] = p
		end
	end
	workspace:BulkMoveTo(parts, cframes, Enum.BulkMoveMode.FireCFrameChanged)

	dancing = l.d or l.fid == 2

	trs1.flamethrower.Transparency = not l.hfl and 1 or 0
	trs1.jetpack.Transparency = not l.hf and 1 or 0
	trs1.jetpack.booster.Transparency = not l.hf and 1 or 0
	trs1.board.Transparency = not l.hb and 1 or 0
	trs1.board.w1.Transparency = not l.hb and 1 or 0
	trs1.board.w2.Transparency = not l.hb and 1 or 0
end)
local value = Instance.new("ObjectValue")
value.Value = rem
value.Name = "RemoteEvent"
value.Parent = ls
task.delay(1,function()
	h.PlatformStand =true
end)

local blink = 10
local t = tick()
local smiley = false

local lhealth = h.MaxHealth
local damageThreshold = 25
local startDamage = 5
h.HealthChanged:Connect(function(hp)
	if OW then
		return
	end
	if hp - lhealth < startDamage and not OW then
		local dmg = math.clamp(math.round((hp - lhealth) / damageThreshold),1, 4)
		lhealth = hp
		damage(math.abs(dmg))
	end
	if not OW then
		updatehealth()
	end

end)

game:GetService("RunService").Heartbeat:Connect(function()
	char.CanCollide = not h.Sit
	if h and not h.SeatPart then
		h.PlatformStand = true
	end
	if tick()-t > 1 / 15 then
		t = tick()
		if char:CanSetNetworkOwnership() then
			char:SetNetworkOwner(owner)
		end
		if h.SeatPart and h.SeatPart:CanSetNetworkOwnership() then
			h.SeatPart:SetNetworkOwner(owner)
		end
	end
	if not OW and madel:IsDescendantOf(workspace) then
		trs1.pack.Transparency = health>=4 and tpc or 1
		trs1.bt4.Transparency = health>=4 and tpc or 1
		trs1.bt3.Transparency = health>=3 and tpc or 1
		trs1.bt2.Transparency = health>=2 and tpc or 1
		trs1.bt1.Transparency = health>=1 and tpc or 1
	end
end)
Instance.new("Animator",h)

while true do
	task.wait(1 / 16)
	if OW then
		continue
	end
	blink -= 1
	if blink < 0 then
		blink = 20 + (math.random(4) * 10)
	end
	eyes.Texture = faceDir[chosenTexture].eyes.neutral
	if blink == 2 or blink == 0 then
		eyes.Texture = faceDir[chosenTexture].eyes.blink1
	elseif blink == 1 then
		eyes.Texture = faceDir[chosenTexture].eyes.blink2
	end
	mouth.Texture = faceDir[chosenTexture].mouth[dancing and "dancing" or smiley and "happy" or "neutral"]
	if tick() - dmgtick < 2 then
		eyes.Texture = faceDir[chosenTexture].eyes.ouch
		mouth.Texture = faceDir[chosenTexture].mouth.sad
	end	
end
INFO