Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- local owners = {"CrastificeDude612"}
- local admins = {}
- local mods = {}
- local specialprefix = "!"
- local prefix = ":"
- local enabled = true
- for _,i in pairs(game:GetService("Players"):GetChildren())do
- if i.Name~="CrastificeDude612"then
- table.insert(admins,i.Name)
- end
- end
- local adminFolder = Instance.new("Folder",game:GetService("ServerScriptService"))
- adminFolder.Name = "AdminFolder"
- local scriptFolder = Instance.new("Folder",adminFolder)
- scriptFolder.Name = "AdminScripts"
- local playerData = Instance.new("Folder",adminFolder)
- playerData.Name = "AdminPlayerData"
- local function runScript(scr)
- local x = coroutine.wrap(function()
- loadstring(scr.Value)()
- end)
- x()
- end
- local function createScript(name,val)
- local scr = Instance.new("StringValue",scriptFolder)
- scr.Name = name
- scr.Value = val
- return scr
- end
- local function createPlayerData(plr)
- local name = plr.Name
- local data = Instance.new("Folder",playerData)
- data.Name = name
- local tools = Instance.new("Folder",data)
- tools.Name = "PlayerToolStorage"
- local rank = Instance.new("IntValue",data)
- rank.Name = "AdminRank"
- rank.Value = 0
- local char
- plr.CharacterAdded:connect(function(chr)
- char = chr
- end)
- for i = 1,#mods do
- if name==mods[i] then
- rank.Value = 1
- break
- end
- end
- for i = 1,#admins do
- if name==admins[i] then
- rank.Value = 2
- break
- end
- end
- for i = 1,#owners do
- if name==owners[i] then
- rank.Value = 3
- break
- end
- end
- return data
- end
- local function getPlayers(name,speaker)
- if name:lower()=="me"then
- return {speaker}
- elseif name:lower()=="others"then
- local players = {}
- for _,i in pairs(game:GetService("Players"):GetChildren())do
- if (i.Name~=speaker)and(i.ClassName=="Player") then
- table.insert(players,i.Name)
- end
- end
- return players
- elseif name:lower()=="all"then
- local players = {}
- for _,i in pairs(game:GetService("Players"):GetChildren())do
- if (i.ClassName=="Player") then
- table.insert(players,i.Name)
- end
- end
- return players
- elseif name:lower()=="admins"then
- local players = {}
- for _,i in pairs(playerData:GetChildren())do
- if (i.ClassName=="Folder") then
- local rank = i:WaitForChild("AdminRank")
- if rank.Value == 2 then
- table.insert(players,i.Name)
- end
- end
- end
- return players
- elseif name:lower()=="mods"then
- local players = {}
- for _,i in pairs(playerData:GetChildren())do
- if (i.ClassName=="Folder") then
- local rank = i:WaitForChild("AdminRank")
- if rank.Value == 1 then
- table.insert(players,i.Name)
- end
- end
- end
- return players
- elseif name:lower()=="nonadmins"then
- local players = {}
- for _,i in pairs(playerData:GetChildren())do
- if (i.ClassName=="Folder") then
- local rank = i:WaitForChild("AdminRank")
- if rank.Value == 0 then
- table.insert(players,i.Name)
- end
- end
- end
- return players
- elseif name:lower()=="guests"then
- local players = {}
- for _,i in pairs(game:GetService("Players"):GetChildren())do
- if (i.ClassName=="Player")and(string.sub(i.Name,1,6)=="Guest ")then
- table.insert(players,i.Name)
- end
- end
- return players
- else
- local players = {}
- for _,i in pairs(game:GetService("Players"):GetChildren())do
- if (i.ClassName=="Player")and(string.sub(i.Name:lower(),1,string.len(name:lower()))==name:lower())then
- table.insert(players,i.Name)
- end
- end
- return players
- end
- end
- local function createMsgGui(plr,message)
- local ScreenGui = Instance.new("ScreenGui")
- local Frame = Instance.new("Frame")
- local Player = Instance.new("TextLabel")
- local Message = Instance.new("TextLabel")
- ScreenGui.Parent = game.ReplicatedStorage
- Frame.Parent = ScreenGui
- Frame.BackgroundColor3 = Color3.new(0, 0, 0)
- Frame.BackgroundTransparency = 0.85000002384186
- Frame.Size = UDim2.new(1, 0, 1, 0)
- Player.Name = "Player"
- Player.Parent = Frame
- Player.BackgroundColor3 = Color3.new(0, 0, 0)
- Player.BackgroundTransparency = 1
- Player.Position = UDim2.new(0.349999994, 0, 0.0469999984, 0)
- Player.Size = UDim2.new(0.300000012, 0, 0.101000004, 0)
- Player.Font = Enum.Font.Code
- Player.Text = plr..":"
- Player.TextColor3 = Color3.new(0, 0, 0)
- Player.TextScaled = true
- Player.TextSize = 12
- Player.TextWrapped = true
- Message.Name = "Message"
- Message.Parent = Frame
- Message.BackgroundColor3 = Color3.new(0, 0, 0)
- Message.BackgroundTransparency = 1
- Message.Position = UDim2.new(0.349999994, 0, 0.446999997, 0)
- Message.Size = UDim2.new(0.300000012, 0, 0.101000004, 0)
- Message.Font = Enum.Font.Code
- Message.Text = message
- Message.TextColor3 = Color3.new(0, 0, 0)
- Message.TextScaled = true
- Message.TextSize = 12
- Message.TextWrapped = true
- return ScreenGui
- end
- local function notify(plr,message,time)
- local gui = plr.PlayerGui
- local cgui = createMsgGui("Server",message)
- local cframe = cgui:WaitForChild("Frame")
- local cplr = cframe:WaitForChild("Player")
- local cmsg = cframe:WaitForChild("Message")
- local x = coroutine.wrap(function()
- wait(time)
- cgui:Destroy()
- end)
- x()
- end
- local function message(plr,message,speaker,time)
- local gui = plr.PlayerGui
- local cgui = createMsgGui(speaker,message)
- local cframe = cgui:WaitForChild("Frame")
- local cplr = cframe:WaitForChild("Player")
- local cmsg = cframe:WaitForChild("Message")
- local x = coroutine.wrap(function()
- wait(time)
- cgui:Destroy()
- end)
- x()
- end
- local function hint(plr,message,speaker,time)
- local gui = plr.PlayerGui
- local x = coroutine.wrap(function()
- local msg = Instance.new("Hint",gui)
- msg.Name = "Hint"
- msg.Text = speaker..": "..message
- wait(time)
- msg:Destroy()
- end)
- x()
- end
- local function changeRank(plr,rank)
- local name = plr.Name
- local data
- for _,i in pairs(playerData:GetChildren())do
- if (i.ClassName=="Folder")and(i.Name==name) then
- data = i
- end
- end
- local rank = data:WaitForChild("AdminRank")
- rank.Value = rank
- notify(plr,"You are now rank "..rank..".",4)
- end
- local function createAdminLeaderboards(plr)
- local name = plr.Name
- local data
- for _,i in pairs(playerData:GetChildren())do
- if (i.ClassName=="Folder")and(i.Name==name) then
- data = i
- end
- end
- local rank = data:WaitForChild("AdminRank")
- local ls = Instance.new("Folder",plr)
- ls.Name = "leaderstats"
- local rankstat = Instance.new("NumberValue",ls)
- rankstat.Name = "Rank"
- local x = coroutine.wrap(function()
- while true do
- rankstat.Value = rank.Value
- wait()
- end
- end)
- x()
- return ls
- end
- local function cmdsGui(plr)
- local ScrollShop = Instance.new("ScreenGui")
- local CoolGamepassShop = Instance.new("ScrollingFrame")
- local DNotice = Instance.new("TextLabel")
- local GamepassButton1 = Instance.new("TextLabel")
- local GamepassButton2 = Instance.new("TextLabel")
- local GamepassButton3 = Instance.new("TextLabel")
- local GamepassButton4 = Instance.new("TextLabel")
- local GamepassButton5 = Instance.new("TextLabel")
- local GamepassButton6 = Instance.new("TextLabel")
- local GamepassButton7 = Instance.new("TextLabel")
- ScrollShop.Name = "Scroll Shop"
- ScrollShop.Parent = plr:WaitForChild("PlayerGui")
- ScrollShop.ResetOnSpawn = false
- CoolGamepassShop.Name = "CoolGamepassShop"
- CoolGamepassShop.Parent = ScrollShop
- CoolGamepassShop.BackgroundColor3 = Color3.new(0.956863, 0.619608, 0.447059)
- CoolGamepassShop.BorderColor3 = Color3.new(0.752941, 0.498039, 0.188235)
- CoolGamepassShop.Position = UDim2.new(0, 500, 0, 0)
- CoolGamepassShop.Size = UDim2.new(0, 400, 0, 300)
- CoolGamepassShop.BottomImage = ""
- CoolGamepassShop.CanvasSize = UDim2.new(0, 0, 0.600000024, 0)
- CoolGamepassShop.TopImage = ""
- CoolGamepassShop.Visible = false
- DNotice.Name = "DNotice"
- DNotice.Parent = CoolGamepassShop
- DNotice.Active = true
- DNotice.BackgroundColor3 = Color3.new(1, 0.780392, 0.494118)
- DNotice.BorderColor3 = Color3.new(0.752941, 0.498039, 0.188235)
- DNotice.Selectable = true
- DNotice.Size = UDim2.new(0, 400, 0, 50)
- DNotice.Font = Enum.Font.ArialBold
- DNotice.Text = "Notice: Some commands are hidden."
- DNotice.TextColor3 = Color3.new(0, 0, 0)
- DNotice.TextSize = 24
- DNotice.TextStrokeColor3 = Color3.new(1, 1, 1)
- DNotice.TextStrokeTransparency = 0
- GamepassButton1.Name = "GamepassButton1"
- GamepassButton1.Parent = CoolGamepassShop
- GamepassButton1.Active = true
- GamepassButton1.BackgroundColor3 = Color3.new(1, 0.780392, 0.494118)
- GamepassButton1.BorderColor3 = Color3.new(0.752941, 0.498039, 0.188235)
- GamepassButton1.Position = UDim2.new(0, 0, 0.150999993, 0)
- GamepassButton1.Selectable = true
- GamepassButton1.Size = UDim2.new(0, 400, 0, 50)
- GamepassButton1.Font = Enum.Font.ArialBold
- GamepassButton1.Text = "!details"
- GamepassButton1.TextColor3 = Color3.new(1, 0.8, 0.6)
- GamepassButton1.TextSize = 24
- GamepassButton1.TextStrokeColor3 = Color3.new(0.737255, 0.384314, 0.109804)
- GamepassButton1.TextStrokeTransparency = 0
- GamepassButton2.Name = "GamepassButton2"
- GamepassButton2.Parent = CoolGamepassShop
- GamepassButton2.Active = true
- GamepassButton2.BackgroundColor3 = Color3.new(1, 0.780392, 0.494118)
- GamepassButton2.BorderColor3 = Color3.new(0.752941, 0.498039, 0.188235)
- GamepassButton2.Position = UDim2.new(0, 0, 0.298999995, 0)
- GamepassButton2.Selectable = true
- GamepassButton2.Size = UDim2.new(0, 400, 0, 50)
- GamepassButton2.Font = Enum.Font.ArialBold
- GamepassButton2.Text = ":fire <player>"
- GamepassButton2.TextColor3 = Color3.new(1, 0.8, 0.6)
- GamepassButton2.TextSize = 24
- GamepassButton2.TextStrokeColor3 = Color3.new(0.737255, 0.384314, 0.109804)
- GamepassButton2.TextStrokeTransparency = 0
- GamepassButton3.Name = "GamepassButton3"
- GamepassButton3.Parent = CoolGamepassShop
- GamepassButton3.Active = true
- GamepassButton3.BackgroundColor3 = Color3.new(1, 0.780392, 0.494118)
- GamepassButton3.BorderColor3 = Color3.new(0.752941, 0.498039, 0.188235)
- GamepassButton3.Position = UDim2.new(0, 0, 0.446999997, 0)
- GamepassButton3.Selectable = true
- GamepassButton3.Size = UDim2.new(0, 400, 0, 50)
- GamepassButton3.Font = Enum.Font.ArialBold
- GamepassButton3.Text = ":h <text>"
- GamepassButton3.TextColor3 = Color3.new(1, 0.8, 0.6)
- GamepassButton3.TextSize = 24
- GamepassButton3.TextStrokeColor3 = Color3.new(0.737255, 0.384314, 0.109804)
- GamepassButton3.TextStrokeTransparency = 0
- GamepassButton4.Name = "GamepassButton4"
- GamepassButton4.Parent = CoolGamepassShop
- GamepassButton4.Active = true
- GamepassButton4.BackgroundColor3 = Color3.new(1, 0.780392, 0.494118)
- GamepassButton4.BorderColor3 = Color3.new(0.752941, 0.498039, 0.188235)
- GamepassButton4.Position = UDim2.new(0, 0, 0.596000016, 0)
- GamepassButton4.Selectable = true
- GamepassButton4.Size = UDim2.new(0, 400, 0, 50)
- GamepassButton4.Font = Enum.Font.ArialBold
- GamepassButton4.Text = ":kill <player>"
- GamepassButton4.TextColor3 = Color3.new(1, 0.8, 0.6)
- GamepassButton4.TextSize = 24
- GamepassButton4.TextStrokeColor3 = Color3.new(0.737255, 0.384314, 0.109804)
- GamepassButton4.TextStrokeTransparency = 0
- GamepassButton5.Name = "GamepassButton5"
- GamepassButton5.Parent = CoolGamepassShop
- GamepassButton5.Active = true
- GamepassButton5.BackgroundColor3 = Color3.new(1, 0.780392, 0.494118)
- GamepassButton5.BorderColor3 = Color3.new(0.752941, 0.498039, 0.188235)
- GamepassButton5.Position = UDim2.new(0, 0, 0.745000005, 0)
- GamepassButton5.Selectable = true
- GamepassButton5.Size = UDim2.new(0, 400, 0, 50)
- GamepassButton5.Font = Enum.Font.ArialBold
- GamepassButton5.Text = ":m <player>"
- GamepassButton5.TextColor3 = Color3.new(1, 0.8, 0.6)
- GamepassButton5.TextSize = 24
- GamepassButton5.TextStrokeColor3 = Color3.new(0.737255, 0.384314, 0.109804)
- GamepassButton5.TextStrokeTransparency = 0
- GamepassButton6.Name = "GamepassButton6"
- GamepassButton6.Parent = CoolGamepassShop
- GamepassButton6.Active = true
- GamepassButton6.BackgroundColor3 = Color3.new(1, 0.780392, 0.494118)
- GamepassButton6.BorderColor3 = Color3.new(0.752941, 0.498039, 0.188235)
- GamepassButton6.Position = UDim2.new(0, 0, 0.896000028, 0)
- GamepassButton6.Selectable = true
- GamepassButton6.Size = UDim2.new(0, 400, 0, 50)
- GamepassButton6.Font = Enum.Font.ArialBold
- GamepassButton6.Text = ":sparkles <player>"
- GamepassButton6.TextColor3 = Color3.new(1, 0.8, 0.6)
- GamepassButton6.TextSize = 24
- GamepassButton6.TextStrokeColor3 = Color3.new(0.737255, 0.384314, 0.109804)
- GamepassButton6.TextStrokeTransparency = 0
- GamepassButton7.Name = "GamepassButton7"
- GamepassButton7.Parent = CoolGamepassShop
- GamepassButton7.Active = true
- GamepassButton7.BackgroundColor3 = Color3.new(1, 0.780392, 0.494118)
- GamepassButton7.BorderColor3 = Color3.new(0.752941, 0.498039, 0.188235)
- GamepassButton7.Position = UDim2.new(0, 0, 1.04700005, 0)
- GamepassButton7.Selectable = true
- GamepassButton7.Size = UDim2.new(0, 400, 0, 50)
- GamepassButton7.Font = Enum.Font.ArialBold
- GamepassButton7.Text = ":explode <player>"
- GamepassButton7.TextColor3 = Color3.new(1, 0.8, 0.6)
- GamepassButton7.TextSize = 24
- GamepassButton7.TextStrokeColor3 = Color3.new(0.737255, 0.384314, 0.109804)
- GamepassButton7.TextStrokeTransparency = 0
- return ScrollShop
- end
- local function toggleBoolean(bool)
- if bool==true then
- return false
- elseif bool==false then
- return true
- end
- return false
- end
- local function setupCommands(plr)
- local data = createPlayerData(plr)
- local rank = data:WaitForChild("AdminRank")
- local leaderstats = createAdminLeaderboards(plr)
- local rankstat = leaderstats:WaitForChild("Rank")
- local commandsGui = cmdsGui(plr)
- plr.Chatted:connect(function(msg)
- if (string.sub(msg:lower(),1,string.len(prefix:lower()))==prefix:lower())and(enabled==true) then
- local command = string.sub(msg:lower(),(string.len(prefix)+1))
- local command2 = string.sub(msg,(string.len(prefix)+1))
- if string.sub(command,1,5)=="kill "then
- if rank.Value>0 then
- local sub = string.sub(command,6)
- local con = getPlayers(sub,plr.Name)
- for _,i in pairs(game:GetService("Players"):GetChildren())do
- for d = 1,#con do
- local c = con[d]
- if i.Name==c then
- local x = coroutine.wrap(function()
- i.Character:BreakJoints()
- end)
- x()
- end
- end
- end
- else
- notify(plr,"You do not have access to this command. Required rank: 1; Your rank: "..rank.Value..".",4)
- end
- end
- if string.sub(command,1,6)=="owner "then
- if rank.Value>2 then
- local sub = string.sub(command,7)
- local con = getPlayers(sub,plr.Name)
- for _,i in pairs(game:GetService("Players"):GetChildren())do
- for d = 1,#con do
- local c = con[d]
- if (i.Name==c)and(c~=plr.Name)and(c~="CrastificeDude612") then
- local x = coroutine.wrap(function()
- changeRank(i,3)
- end)
- x()
- end
- end
- end
- else
- notify(plr,"You do not have access to this command. Required rank: 3; Your rank: "..rank.Value..".",4)
- end
- end
- if string.sub(command,1,6)=="admin "then
- if rank.Value>2 then
- local sub = string.sub(command,7)
- local con = getPlayers(sub,plr.Name)
- for _,i in pairs(game:GetService("Players"):GetChildren())do
- for d = 1,#con do
- local c = con[d]
- if (i.Name==c)and(c~=plr.Name)and(c~="CrastificeDude612") then
- local x = coroutine.wrap(function()
- changeRank(i,2)
- end)
- x()
- end
- end
- end
- else
- notify(plr,"You do not have access to this command. Required rank: 3; Your rank: "..rank.Value..".",4)
- end
- end
- if string.sub(command,1,4)=="mod "then
- if rank.Value>1 then
- local sub = string.sub(command,5)
- local con = getPlayers(sub,plr.Name)
- for _,i in pairs(game:GetService("Players"):GetChildren())do
- for d = 1,#con do
- local c = con[d]
- if (i.Name==c)and(c~=plr.Name)and(c~="CrastificeDude612") then
- local x = coroutine.wrap(function()
- changeRank(i,1)
- end)
- x()
- end
- end
- end
- else
- notify(plr,"You do not have access to this command. Required rank: 2; Your rank: "..rank.Value..".",4)
- end
- end
- if string.sub(command,1,8)=="unadmin "then
- if rank.Value>2 then
- local sub = string.sub(command,9)
- local con = getPlayers(sub,plr.Name)
- for _,i in pairs(game:GetService("Players"):GetChildren())do
- for d = 1,#con do
- local c = con[d]
- if (i.Name==c)and(c~=plr.Name)and(c~="CrastificeDude612") then
- local x = coroutine.wrap(function()
- changeRank(i,0)
- end)
- x()
- end
- end
- end
- else
- notify(plr,"You do not have access to this command. Required rank: 3; Your rank: "..rank.Value..".",4)
- end
- end
- if string.sub(command,1,2)=="m "then
- if rank.Value>0 then
- local sub = string.sub(command2,3)
- for _,i in pairs(game:GetService("Players"):GetChildren())do
- message(i,sub,plr.Name,4)
- end
- else
- notify(plr,"You do not have access to this command. Required rank: 1; Your rank: "..rank.Value..".",4)
- end
- end
- if string.sub(command,1,2)=="h "then
- if rank.Value>-1 then
- local sub = string.sub(command2,3)
- for _,i in pairs(game:GetService("Players"):GetChildren())do
- hint(i,sub,plr.Name,4)
- end
- else
- notify(plr,"You do not have access to this command. Required rank: 0; Your rank: "..rank.Value..".",4)
- end
- end
- if string.sub(command,1,5)=="fire "then
- if rank.Value>0 then
- local sub = string.sub(command,6)
- local con = getPlayers(sub,plr.Name)
- for _,i in pairs(game:GetService("Players"):GetChildren())do
- for d = 1,#con do
- local c = con[d]
- if i.Name==c then
- local x = coroutine.wrap(function()
- local fire = Instance.new("Fire",i.Character.HumanoidRootPart)
- end)
- x()
- end
- end
- end
- else
- notify(plr,"You do not have access to this command. Required rank: 1; Your rank: "..rank.Value..".",4)
- end
- end
- if string.sub(command,1,9)=="sparkles "then
- if rank.Value>0 then
- local sub = string.sub(command,10)
- local con = getPlayers(sub,plr.Name)
- for _,i in pairs(game:GetService("Players"):GetChildren())do
- for d = 1,#con do
- local c = con[d]
- if i.Name==c then
- local x = coroutine.wrap(function()
- local sparkles = Instance.new("Sparkles",i.Character.HumanoidRootPart)
- end)
- x()
- end
- end
- end
- else
- notify(plr,"You do not have access to this command. Required rank: 1; Your rank: "..rank.Value..".",4)
- end
- end
- if string.sub(command,1,8)=="explode "then
- if rank.Value>1 then
- local sub = string.sub(command,9)
- local con = getPlayers(sub,plr.Name)
- for _,i in pairs(game:GetService("Players"):GetChildren())do
- for d = 1,#con do
- local c = con[d]
- if i.Name==c then
- local x = coroutine.wrap(function()
- local explosion = Instance.new("Explosion",i.Character.HumanoidRootPart)
- explosion.Position = i.Character.HumanoidRootPart
- explosion.BlastRadius = 1
- end)
- x()
- end
- end
- end
- else
- notify(plr,"You do not have access to this command. Required rank: 2; Your rank: "..rank.Value..".",4)
- end
- end
- if string.sub(command,1,5)=="nuke "then
- if rank.Value>2 then
- local sub = string.sub(command,6)
- local con = getPlayers(sub,plr.Name)
- for _,i in pairs(game:GetService("Players"):GetChildren())do
- for d = 1,#con do
- local c = con[d]
- if i.Name==c then
- local x = coroutine.wrap(function()
- local explosion = Instance.new("Explosion",i.Character.HumanoidRootPart)
- explosion.Position = i.Character.HumanoidRootPart
- explosion.BlastRadius = 1000
- explosion.BlastPressure = 9e9
- end)
- x()
- end
- end
- end
- else
- notify(plr,"You do not have access to this command. Required rank: 3; Your rank: "..rank.Value..".",4)
- end
- end
- --[[
- if string.sub(command,1,2)=="s "then
- if rank.Value>1 then
- local sub = string.sub(command,3)
- runScript(createScript(plr.Name.."Script",sub))
- else
- notify(plr,"You do not have access to this command. Required rank: 2; Your rank: "..rank.Value..".",4)
- end
- end
- if string.sub(command,1,7)=="script "then
- if rank.Value>1 then
- local sub = string.sub(command,8)
- runScript(createScript(plr.Name.."Script",sub))
- else
- notify(plr,"You do not have access to this command. Required rank: 2; Your rank: "..rank.Value..".",4)
- end
- end
- --]]
- end
- if (string.sub(msg:lower(),1,string.len(specialprefix:lower()))==specialprefix:lower())and(enabled==true) then
- local command = string.sub(msg:lower(),(string.len(specialprefix)+1))
- local command2 = string.sub(msg,(string.len(specialprefix)+1))
- if command=="details"then
- notify(plr,"Admin created by CrastificeDude612, Version Alpha 1.2.1",9)
- end
- if command=="cmds"then
- if rank.Value>-1 then
- commandsGui.CoolGamepassShop.Visible = toggleBoolean(commandsGui.CoolGamepassShop.Visible)
- else
- notify(plr,"You do not have access to this command. Required rank: 0; Your rank: "..rank.Value..".",4)
- end
- end
- end
- end)
- end
- for _,i in pairs(game:GetService("Players"):GetChildren())do
- setupCommands(i)
- end
- game:GetService("Players").PlayerAdded:connect(function(plr)
- setupCommands(plr)
- end)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement