cursors.io hack --Bots-- 12/09/2019

cursorsio hack - drawing, texting, bots, players ids, Wall Hack Right Click - spam clicking more & new SUPER HACK +500 BOTS in description

Stan na 13-09-2019. Zobacz najnowsza wersja.

Aby zainstalować ten skrypt, wymagana jest instalacje jednego z następujących rozszerzeń: Tampermonkey, Greasemonkey lub Violentmonkey.

You will need to install an extension such as Tampermonkey to install this script.

Aby zainstalować ten skrypt, wymagana jest instalacje jednego z następujących rozszerzeń: Tampermonkey, Violentmonkey.

Aby zainstalować ten skrypt, wymagana będzie instalacja rozszerzenia Tampermonkey lub Userscripts.

You will need to install an extension such as Tampermonkey to install this script.

Aby zainstalować ten skrypt, musisz zainstalować rozszerzenie menedżera skryptów użytkownika.

(Mam już menedżera skryptów użytkownika, pozwól mi to zainstalować!)

You will need to install an extension such as Stylus to install this style.

You will need to install an extension such as Stylus to install this style.

You will need to install an extension such as Stylus to install this style.

Będziesz musiał zainstalować rozszerzenie menedżera stylów użytkownika, aby zainstalować ten styl.

Będziesz musiał zainstalować rozszerzenie menedżera stylów użytkownika, aby zainstalować ten styl.

Musisz zainstalować rozszerzenie menedżera stylów użytkownika, aby zainstalować ten styl.

(Mam już menedżera stylów użytkownika, pozwól mi to zainstalować!)

// ==UserScript==
// @name         cursors.io hack --Bots-- 12/09/2019
// @namespace    ZursOr
// @version      1.1.7
// @description  cursorsio hack - drawing, texting, bots, players ids, Wall Hack Right Click - spam clicking more & new SUPER HACK +500 BOTS in description
// @author       ZursOr
// @match        http://cursors.io/
// @grant        none
// @run-at       document-idle
// ==/UserScript==









 // To get all 3 bots connected, you can try pasting in the script at cursors.io/?editor . You don't even have to block anything!

// I am currently NOT working on yet another hack that will be again, much better- don't stay tuned!                               
//		__________ _________  _________________ 
//		\___   /  |  \_  __ \/  ___/  _ \_  __ \
//		 /    /|  |  /|  | \/\___ (  <_> )  | \/
//		/_____ \____/ |__|  /____  >____/|__|   
//		      \/                 \/             
//		___.                                    
//		\_ |__ ___.__. ___  ______ ___  ___     
//		 | __ <   |  | \  \/ /    \\  \/  /     
//		 | \_\ \___  |  \   /   |  \>    <      
//		 |___  / ____|   \_/|___|  /__/\_ \     
//		     \/\/                \/      \/     
//                                               

// Latest update was on Apr. 06, 2019
// This script is my biggest so far! I hope you like it :)
// Like my other script, this one could be a bit buggy. But, I did fix some very, VERY tedious bugs that were left in my old bot script.

/*
>>> FEATURES <<<
Wallhack (Like the old cursor jesus script!)
Multicursor (Now you've got bots!)
Individual Bot Tabs (So you can see the level from your bot's perspective)
TONS of configurable settings (Including themes! Devs, the settings are in the object named a)
Quite a few bugs I probably left in! (sorry :> )
Support for almost every letter on the US keyboard! (Now you can make cool ASCII art! Like /\/ / /\/ _/ /\ )
Support for custom themes! (Yeah you heard me right)
All button clicking! (On just a bare few levels you CAN get disconnected.)
Texting! (Kinda fast I guess?)
Deployable and Retreivable Bots! (Now you can leave them behind)
Anti-Disconnection! (So now you won't get disconnected when you go AFK! Be careful though)
A working level counter! (Now you know exactly which level you're really on.)
Spam Clicking! (Get through that annoying 300 clicks level easily)
Shows all Cursor IDs! (Now you know where your friend is)
Easy to reconnect! (So you don't have to paste the script in again)


>>> HOW TO INSTALL <<<
Step 1. Copy this entire script. For convenience, there's a little copy-box at the bottom of the page.
Step 2. Open up inspect element, and block client_out.js from cursors.
Step 3. On the same tab that you just opened inspect element on, keep the tab open and go to cursors.io.
Step 4. Paste in this entire script, then hit enter. And just like that, you can play cursors.io with hacks!



>>> CONTROLS <<<
F1 - Toggles Movement
F2 - Toggles WallHack
F3 - Deploys a bot
F4 - Returns a bot
F5 - Returns all deployed bots
F6 - Toggles spam clicking
F7 - Toggles all button clicking
F8 - Switches your current view
Right Click - Toggles spam clicking
F11 - Show the help menu that pretty much displays the same thing here!


If you've got any questions, bugs, or anything that you'd like to tell or ask me, you can ask me on discord: xnv#3928

Below is the real stuff. This is all the code down here. It's minimized to greatly improve the load time of the script (Normally it takes several seconds for it to paste) AND so it's harder to read. sry :>


*/
var ip='ws://159.65.78.102:2828';
var e,t,a,n,l,o,r,s,c,h,p,d,F,T,f,u,m,g,S=document.getElementById("canvas"),y=S.getContext("2d"),C={},W={},B=[],w=[],x=[],v=new Image,U=400,V=300,Y=400,X=300,b=400,I=300,k=[],A=[],O=0,H=!1,D={},M=0,P=[],E=[],L=[],J={},R=["​"],N=-1,q=[],z="Main",j=!1,K=0,G=1e3,$=0,_=0,Q=[],Z={},ee=0,te=!1;function ae(e,t){this.ID=e,this.Action=t,this.Show=function(){return MenuMan.currentMenu=this.ID,!0},this.Hide=function(){return MenuMan.currentMenu="main",!0}}function ne(){if(y.CLS(),e&&(2!=e.readyState&&3!=e.readyState||(y.filter="blur(20px) grayscale(100%)")),y.lineWidth=C.Themes[C.ThemeSelected].Misc.LineWidth,1e3==G){function t(e,t,a){return y.lineWidth=2.5,y.globalAlpha=.5,y.strokeText(e,t,a),y.globalAlpha=1,y.fillText(e,t,a),!0}B.forEach(function(e){return"Text"==e.Type?(y.fillStyle=C.Themes[C.ThemeSelected].Fill.Text[e.Variant][0],y.shadowColor=-1==C.Themes[C.ThemeSelected].Shadow.Text[e.Variant][0]?C.Themes[C.ThemeSelected].Fill.Text[e.Variant][0]:C.Themes[C.ThemeSelected].Shadow.Text[e.Variant][0],y.shadowBlur=C.Themes[C.ThemeSelected].Shadow.Text[e.Variant][1],y.font=e.Size+"px NovaSquare",y.fillText(e.Text,e.X-(e.Centered?y.measureText(e.Text).width/2:0),e.Y),!0):"Wall"!=e.Type&&("Exit"==e.Type?(y.fillStyle=C.Themes[C.ThemeSelected].Fill.Exit[e.Variant][0],y.shadowColor=-1==C.Themes[C.ThemeSelected].Shadow.Exit[e.Variant][0]?C.Themes[C.ThemeSelected].Fill.Exit[e.Variant][0]:C.Themes[C.ThemeSelected].Shadow.Exit[e.Variant][0],y.shadowBlur=C.Themes[C.ThemeSelected].Shadow.Exit[e.Variant][1],y.fillRect(e.X,e.Y,e.W,e.H),!0):"Plate"==e.Type?(y.fillStyle=C.Themes[C.ThemeSelected].Fill.Plate[e.Variant][0],y.strokeStyle=C.Themes[C.ThemeSelected].Fill.Plate[e.Variant][1],y.shadowColor=-1==C.Themes[C.ThemeSelected].Shadow.Plate[e.Variant][0]?C.Themes[C.ThemeSelected].Fill.Plate[e.Variant][0]:C.Themes[C.ThemeSelected].Shadow.Plate[e.Variant][0],y.shadowBlur=C.Themes[C.ThemeSelected].Shadow.Plate[e.Variant][1],y.fillRect(e.X,e.Y,e.W,e.H),y.shadowBlur=0,y.strokeRect(e.X+y.lineWidth/2,e.Y+y.lineWidth/2,e.W-y.lineWidth,e.H-y.lineWidth),y.font="30px NovaSquare",y.fillStyle="#000000",y.globalAlpha=C.Themes[C.ThemeSelected].Misc.PlateTextAlpha,y.fillText(e.C,e.X+e.W/2-y.measureText(e.C).width/2,e.Y+e.H/2+10),y.globalAlpha=1,!0):"Button"!=e.Type?(console.warn("An invalid type of object was given."),y.fillStyle="#999999",y.shadowColor="#000",y.shadowBlur="#000",y.globalAlpha=1,y.fillRect(e.X,e.Y,e.W,e.H),y.fillStyle="#000",y.font="30px NovaSquare",y.fillText("?",e.X+e.W/2-y.measureText("?").width/2,e.Y+e.H/2+15),!1):(y.fillStyle=C.Themes[C.ThemeSelected].Fill.Button[e.Variant][0],y.shadowColor=-1==C.Themes[C.ThemeSelected].Shadow.Button[e.Variant][0]?C.Themes[C.ThemeSelected].Fill.Button[e.Variant][0]:C.Themes[C.ThemeSelected].Shadow.Button[e.Variant][0],y.shadowBlur=C.Themes[C.ThemeSelected].Shadow.Button[e.Variant][1],y.fillRect(e.X,e.Y,e.W,e.H),y.shadowBlur=0,y.fillStyle=C.Themes[C.ThemeSelected].Fill.Button[e.Variant][1],y.shadowColor=-1==C.Themes[C.ThemeSelected].Shadow.Button[e.Variant][1]?C.Themes[C.ThemeSelected].Fill.Button[e.Variant][1]:C.Themes[C.ThemeSelected].Shadow.Button[e.Variant][1],y.beginPath(),y.moveTo(e.X,e.Y),y.lineTo(e.X+e.W,e.Y),y.lineTo(e.X+e.W-e.W/6,e.Y+e.H/6),y.lineTo(e.X+e.W/6,e.Y+e.H/6),y.lineTo(e.X,e.Y),y.fill(),y.fillStyle=C.Themes[C.ThemeSelected].Fill.Button[e.Variant][2],y.shadowColor=-1==C.Themes[C.ThemeSelected].Shadow.Button[e.Variant][2]?C.Themes[C.ThemeSelected].Fill.Button[e.Variant][2]:C.Themes[C.ThemeSelected].Shadow.Button[e.Variant][2],y.beginPath(),y.moveTo(e.X+e.W,e.Y),y.lineTo(e.X+e.W,e.Y+e.H),y.lineTo(e.X+e.W-e.W/6,e.Y+e.H-e.H/6),y.lineTo(e.X+e.W-e.W/6,e.Y+e.H/6),y.lineTo(e.X+e.W,e.Y),y.fill(),y.fillStyle=C.Themes[C.ThemeSelected].Fill.Button[e.Variant][3],y.shadowColor=-1==C.Themes[C.ThemeSelected].Shadow.Button[e.Variant][3]?C.Themes[C.ThemeSelected].Fill.Button[e.Variant][3]:C.Themes[C.ThemeSelected].Shadow.Button[e.Variant][3],y.beginPath(),y.moveTo(e.X+e.W,e.Y+e.H),y.lineTo(e.X,e.Y+e.H),y.lineTo(e.X+e.W/6,e.Y+e.H-e.H/6),y.lineTo(e.X+e.W-e.W/6,e.Y+e.H-e.H/6),y.lineTo(e.X+e.W,e.Y+e.H),y.fill(),y.fillStyle=C.Themes[C.ThemeSelected].Fill.Button[e.Variant][4],y.shadowColor=-1==C.Themes[C.ThemeSelected].Shadow.Button[e.Variant][4]?C.Themes[C.ThemeSelected].Fill.Button[e.Variant][4]:C.Themes[C.ThemeSelected].Shadow.Button[e.Variant][4],y.beginPath(),y.moveTo(e.X,e.Y+e.H),y.lineTo(e.X,e.Y),y.lineTo(e.X+e.W/6,e.Y+e.H/6),y.lineTo(e.X+e.W/6,e.Y+e.H-e.H/6),y.lineTo(e.X,e.Y+e.H),y.fill(),y.font="30px NovaSquare",y.fillStyle="#000000",y.globalAlpha=C.Themes[C.ThemeSelected].Misc.ButtonTextAlpha,y.fillText(e.C,e.X+e.W/2-y.measureText(e.C).width/2,e.Y+e.W/2+15),void(y.globalAlpha=1)))}),B.forEach(function(e){return"Wall"==e.Type&&(y.fillStyle=C.Themes[C.ThemeSelected].Fill.Wall[e.Variant][0],y.strokeStyle=C.Themes[C.ThemeSelected].Fill.Wall[e.Variant][1],y.shadowColor=-1==C.Themes[C.ThemeSelected].Shadow.Wall[e.Variant][0]?C.Themes[C.ThemeSelected].Fill.Wall[e.Variant][0]:C.Themes[C.ThemeSelected].Shadow.Wall[e.Variant][0],y.shadowBlur=C.Themes[C.ThemeSelected].Shadow.Wall[e.Variant][1],y.fillRect(e.X,e.Y,e.W,e.H),y.shadowBlur=0,y.strokeRect(e.X+y.lineWidth/2,e.Y+y.lineWidth/2,e.W-y.lineWidth,e.H-y.lineWidth),!0)}),k.forEach(function(e){y.globalAlpha=1-((new Date).getTime()-e.T.getTime())/C.Click.Expiration,y.lineWidth=3,y.strokeStyle=C.Themes[C.ThemeSelected].Misc.ClickColor,y.beginPath(),y.arc(e.X+10,e.Y,Math.abs(e.T.getTime()-(new Date).getTime())/(C.Click.Expiration/20),0,2*Math.PI),y.stroke(),y.globalAlpha=1}),A.forEach(function(e){y.globalAlpha=C.Themes[C.ThemeSelected].Misc.DrawAlpha/(M>30?3:1),y.lineWidth=C.Themes[C.ThemeSelected].Misc.DrawWidth,y.strokeStyle=C.Themes[C.ThemeSelected].Misc.DrawColor,y.beginPath(),y.moveTo(e.X[0],e.Y[0]),y.lineTo(e.X[1],e.Y[1]),y.stroke(),y.globalAlpha=1}),y.fillStyle=C.Themes[C.ThemeSelected].Misc.CursorOutline[0],y.globalAlpha=C.Themes[C.ThemeSelected].Misc.CursorOutline[3],y.beginPath(),y.arc(U+3,V+7,20,0,2*Math.PI),y.fill(),1==L[0].readyState&&(y.beginPath(),y.globalAlpha=.4,y.lineWidth=1,y.strokeStyle=C.Themes[C.ThemeSelected].Misc.CursorOutline[C.Misc.AllButtons?4:!C.Movement||L[0].Deployed?2:1],y.moveTo(L[0].X-6,L[0].Y),y.lineTo(U,V),y.stroke()),1==L[1].readyState&&(y.beginPath(),y.strokeStyle=C.Themes[C.ThemeSelected].Misc.CursorOutline[C.Misc.AllButtons?4:!C.Movement||L[1].Deployed?2:1],y.moveTo(L[1].X-6,L[1].Y),y.lineTo(U,V),y.stroke()),y.beginPath(),y.lineWidth=2.5,y.strokeStyle=C.Themes[C.ThemeSelected].Misc.CursorOutline[C.Movement?1:2],y.moveTo(b-6,I),y.lineTo(U,V),y.stroke(),y.globalAlpha=1,y.fillStyle="#fff",y.strokeStyle="#000",y.font="12px NovaSquare",x.forEach(function(e){e&&(y.drawImage(v,Z.CursorDrawPos(e.OX,e.X,e.T)-10,Z.CursorDrawPos(e.OY,e.Y,e.T)-5),C.Cursor.IDs&&t(e.I,Z.CursorDrawPos(e.OX,e.X,e.T)-10+C.Cursor.Offset[0],Z.CursorDrawPos(e.OY,e.Y,e.T)-5+C.Cursor.Offset[1]))}),y.globalAlpha=.3,N!=L[0].Level&&L[0].CUR.forEach(function(e){e&&y.drawImage(v,Z.CursorDrawPos(e.OX,e.X,e.T)-10,Z.CursorDrawPos(e.OY,e.Y,e.T)-5)}),N!=L[1].Level&&N!=L[0].Level&&L[1].CUR.forEach(function(e){e&&y.drawImage(v,Z.CursorDrawPos(e.OX,e.X,e.T)-10,Z.CursorDrawPos(e.OY,e.Y,e.T)-5)}),t("View: Client",10,590)}else{function t(e,t,a){return y.lineWidth=2.5,y.globalAlpha=.5,y.strokeText(e,t,a),y.globalAlpha=1,y.fillText(e,t,a),!0}L[G].OBJ.forEach(function(e){return"Text"==e.Type?(y.fillStyle=C.Themes[C.ThemeSelected].Fill.Text[e.Variant][0],y.shadowColor=-1==C.Themes[C.ThemeSelected].Shadow.Text[e.Variant][0]?C.Themes[C.ThemeSelected].Fill.Text[e.Variant][0]:C.Themes[C.ThemeSelected].Shadow.Text[e.Variant][0],y.shadowBlur=C.Themes[C.ThemeSelected].Shadow.Text[e.Variant][1],y.font=e.Size+"px NovaSquare",y.fillText(e.Text,e.X-(e.Centered?y.measureText(e.Text).width/2:0),e.Y),!0):"Wall"!=e.Type&&("Exit"==e.Type?(y.fillStyle=C.Themes[C.ThemeSelected].Fill.Exit[e.Variant][0],y.shadowColor=-1==C.Themes[C.ThemeSelected].Shadow.Exit[e.Variant][0]?C.Themes[C.ThemeSelected].Fill.Exit[e.Variant][0]:C.Themes[C.ThemeSelected].Shadow.Exit[e.Variant][0],y.shadowBlur=C.Themes[C.ThemeSelected].Shadow.Exit[e.Variant][1],y.fillRect(e.X,e.Y,e.W,e.H),!0):"Plate"==e.Type?(y.fillStyle=C.Themes[C.ThemeSelected].Fill.Plate[e.Variant][0],y.strokeStyle=C.Themes[C.ThemeSelected].Fill.Plate[e.Variant][1],y.shadowColor=-1==C.Themes[C.ThemeSelected].Shadow.Plate[e.Variant][0]?C.Themes[C.ThemeSelected].Fill.Plate[e.Variant][0]:C.Themes[C.ThemeSelected].Shadow.Plate[e.Variant][0],y.shadowBlur=C.Themes[C.ThemeSelected].Shadow.Plate[e.Variant][1],y.fillRect(e.X,e.Y,e.W,e.H),y.shadowBlur=0,y.strokeRect(e.X+y.lineWidth/2,e.Y+y.lineWidth/2,e.W-y.lineWidth,e.H-y.lineWidth),y.font="30px NovaSquare",y.fillStyle="#000000",y.globalAlpha=C.Themes[C.ThemeSelected].Misc.PlateTextAlpha,y.fillText(e.C,e.X+e.W/2-y.measureText(e.C).width/2,e.Y+e.H/2+10),y.globalAlpha=1,!0):"Button"!=e.Type?(console.warn("An invalid type of object was given."),y.fillStyle="#999999",y.shadowColor="#000",y.shadowBlur="#000",y.globalAlpha=1,y.fillRect(e.X,e.Y,e.W,e.H),y.fillStyle="#000",y.font="30px NovaSquare",y.fillText("?",e.X+e.W/2-y.measureText("?").width/2,e.Y+e.H/2+15),!1):(y.fillStyle=C.Themes[C.ThemeSelected].Fill.Button[e.Variant][0],y.shadowColor=-1==C.Themes[C.ThemeSelected].Shadow.Button[e.Variant][0]?C.Themes[C.ThemeSelected].Fill.Button[e.Variant][0]:C.Themes[C.ThemeSelected].Shadow.Button[e.Variant][0],y.shadowBlur=C.Themes[C.ThemeSelected].Shadow.Button[e.Variant][1],y.fillRect(e.X,e.Y,e.W,e.H),y.shadowBlur=0,y.fillStyle=C.Themes[C.ThemeSelected].Fill.Button[e.Variant][1],y.shadowColor=-1==C.Themes[C.ThemeSelected].Shadow.Button[e.Variant][1]?C.Themes[C.ThemeSelected].Fill.Button[e.Variant][1]:C.Themes[C.ThemeSelected].Shadow.Button[e.Variant][1],y.beginPath(),y.moveTo(e.X,e.Y),y.lineTo(e.X+e.W,e.Y),y.lineTo(e.X+e.W-e.W/6,e.Y+e.H/6),y.lineTo(e.X+e.W/6,e.Y+e.H/6),y.lineTo(e.X,e.Y),y.fill(),y.fillStyle=C.Themes[C.ThemeSelected].Fill.Button[e.Variant][2],y.shadowColor=-1==C.Themes[C.ThemeSelected].Shadow.Button[e.Variant][2]?C.Themes[C.ThemeSelected].Fill.Button[e.Variant][2]:C.Themes[C.ThemeSelected].Shadow.Button[e.Variant][2],y.beginPath(),y.moveTo(e.X+e.W,e.Y),y.lineTo(e.X+e.W,e.Y+e.H),y.lineTo(e.X+e.W-e.W/6,e.Y+e.H-e.H/6),y.lineTo(e.X+e.W-e.W/6,e.Y+e.H/6),y.lineTo(e.X+e.W,e.Y),y.fill(),y.fillStyle=C.Themes[C.ThemeSelected].Fill.Button[e.Variant][3],y.shadowColor=-1==C.Themes[C.ThemeSelected].Shadow.Button[e.Variant][3]?C.Themes[C.ThemeSelected].Fill.Button[e.Variant][3]:C.Themes[C.ThemeSelected].Shadow.Button[e.Variant][3],y.beginPath(),y.moveTo(e.X+e.W,e.Y+e.H),y.lineTo(e.X,e.Y+e.H),y.lineTo(e.X+e.W/6,e.Y+e.H-e.H/6),y.lineTo(e.X+e.W-e.W/6,e.Y+e.H-e.H/6),y.lineTo(e.X+e.W,e.Y+e.H),y.fill(),y.fillStyle=C.Themes[C.ThemeSelected].Fill.Button[e.Variant][4],y.shadowColor=-1==C.Themes[C.ThemeSelected].Shadow.Button[e.Variant][4]?C.Themes[C.ThemeSelected].Fill.Button[e.Variant][4]:C.Themes[C.ThemeSelected].Shadow.Button[e.Variant][4],y.beginPath(),y.moveTo(e.X,e.Y+e.H),y.lineTo(e.X,e.Y),y.lineTo(e.X+e.W/6,e.Y+e.H/6),y.lineTo(e.X+e.W/6,e.Y+e.H-e.H/6),y.lineTo(e.X,e.Y+e.H),y.fill(),y.font="30px NovaSquare",y.fillStyle="#000000",y.globalAlpha=C.Themes[C.ThemeSelected].Misc.ButtonTextAlpha,y.fillText(e.C,e.X+e.W/2-y.measureText(e.C).width/2,e.Y+e.W/2+15),void(y.globalAlpha=1)))}),L[G].OBJ.forEach(function(e){return"Wall"==e.Type&&(y.fillStyle=C.Themes[C.ThemeSelected].Fill.Wall[e.Variant][0],y.strokeStyle=C.Themes[C.ThemeSelected].Fill.Wall[e.Variant][1],y.shadowColor=-1==C.Themes[C.ThemeSelected].Shadow.Wall[e.Variant][0]?C.Themes[C.ThemeSelected].Fill.Wall[e.Variant][0]:C.Themes[C.ThemeSelected].Shadow.Wall[e.Variant][0],y.shadowBlur=C.Themes[C.ThemeSelected].Shadow.Wall[e.Variant][1],y.fillRect(e.X,e.Y,e.W,e.H),y.shadowBlur=0,y.strokeRect(e.X+y.lineWidth/2,e.Y+y.lineWidth/2,e.W-y.lineWidth,e.H-y.lineWidth),!0)}),L[G].CLI.forEach(function(e){y.globalAlpha=1-((new Date).getTime()-e.T.getTime())/C.Click.Expiration,y.lineWidth=3,y.strokeStyle=C.Themes[C.ThemeSelected].Misc.ClickColor,y.beginPath(),y.arc(e.X+10,e.Y,Math.abs(e.T.getTime()-(new Date).getTime())/(C.Click.Expiration/20),0,2*Math.PI),y.stroke(),y.globalAlpha=1}),L[G].DRA.forEach(function(e){y.globalAlpha=C.Themes[C.ThemeSelected].Misc.DrawAlpha/(L[G].LocalPlayers>30?3:1),y.lineWidth=C.Themes[C.ThemeSelected].Misc.DrawWidth,y.strokeStyle=C.Themes[C.ThemeSelected].Misc.DrawColor,y.beginPath(),y.moveTo(e.X[0],e.Y[0]),y.lineTo(e.X[1],e.Y[1]),y.stroke(),y.globalAlpha=1}),y.fillStyle=C.Themes[C.ThemeSelected].Misc.CursorOutline[0],y.globalAlpha=C.Themes[C.ThemeSelected].Misc.CursorOutline[3],y.beginPath(),y.arc(U+3,V+7,20,0,2*Math.PI),y.fill(),1==L[0].readyState&&(y.lineWidth=0==G?2.5:1,y.beginPath(),y.globalAlpha=.4,y.strokeStyle=C.Themes[C.ThemeSelected].Misc.CursorOutline[C.Misc.AllButtons?4:!C.Movement||L[0].Deployed?2:1],y.moveTo(L[0].X-6,L[0].Y),y.lineTo(U,V),y.stroke()),1==L[1].readyState&&(y.lineWidth=1==G?2.5:1,y.beginPath(),y.strokeStyle=C.Themes[C.ThemeSelected].Misc.CursorOutline[C.Misc.AllButtons?4:!C.Movement||L[1].Deployed?2:1],y.moveTo(L[1].X-6,L[1].Y),y.lineTo(U,V),y.stroke()),y.beginPath(),y.lineWidth=1,y.strokeStyle=C.Themes[C.ThemeSelected].Misc.CursorOutline[C.Movement?1:2],y.moveTo(b-6,I),y.lineTo(U,V),y.stroke(),y.globalAlpha=1,y.fillStyle="#fff",y.strokeStyle="#000",y.font="12px NovaSquare",L[G].CUR.forEach(function(e){e&&(y.drawImage(v,Z.CursorDrawPos(e.OX,e.X,e.T)-10,Z.CursorDrawPos(e.OY,e.Y,e.T)-5),C.Cursor.IDs&&t(e.I,Z.CursorDrawPos(e.OX,e.X,e.T)-10+C.Cursor.Offset[0],Z.CursorDrawPos(e.OY,e.Y,e.T)-5+C.Cursor.Offset[1]))}),y.globalAlpha=.3,L[(G+1)%2].Level!=L[G].Level&&L[(G+1)%2].CUR.forEach(function(e){e&&y.drawImage(v,Z.CursorDrawPos(e.OX,e.X,e.T)-10,Z.CursorDrawPos(e.OY,e.Y,e.T)-5)}),N!=L[G].Level&&N!=L[(G+1)%2].Level&&x.forEach(function(e){e&&y.drawImage(v,Z.CursorDrawPos(e.OX,e.X,e.T)-10,Z.CursorDrawPos(e.OY,e.Y,e.T)-5)}),t("View: Bot #"+(G+1),10,590)}function t(e,t,a){return y.lineWidth=2.5,y.globalAlpha=.5,y.strokeText(e,t,a),y.globalAlpha=1,y.fillText(e,t,a),!0}if(y.drawImage(v,U-5,V-5),e&&(2==e.readyState||3==e.readyState))return y.filter="none",y.fillStyle="#000",y.shadowBlur=0,y.globalAlpha=.2,y.fillRect(0,0,800,600),y.fillStyle="#FFF",y.shadowColor="#FFF",y.globalAlpha=.5,y.shadowBlur=20,y.font="60px NovaSquare",y.fillText("Disconnected",400-y.measureText("Disconnected").width/2,330),y.font="30px NovaSquare",void y.fillText("[ Reconnect? ]",400-y.measureText("[ Reconnect? ]").width/2,370);y.font="12px NovaSquare",y.fillStyle="#FFFFFF",y.strokeStyle="#000000",t("Game Time: "+Math.floor(W.Seconds/3600)+";"+Math.floor(W.Seconds%3600/60)+";"+Math.floor(W.Seconds%60%60)+" seconds",790-y.measureText("Game Time: "+Math.floor(W.Seconds/3600)+";"+Math.floor(W.Seconds%3600/60)+";"+Math.floor(W.Seconds%60%60)+" seconds").width,22),t("FPS: "+W.FPS,10,24),t("Level "+N,10,40),t("Cursors: "+M+" / "+O,400-y.measureText("Cursors: "+M+" / "+O).width/2,590),y.fillStyle=M>30?"#FF9999":"#FFFFFF",t(M>30?"Drawing is not available":"Drawing is available.",400-y.measureText(M>30?"Drawing is not available":"Drawing is available.").width/2,574),C.Misc.Help?(y.fillStyle="#000",y.shadowColor="#000",y.globalAlpha=.1,y.shadowBlur=20,y.fillRect(50,50,700,500),y.globalAlpha=1,y.fillStyle="#FFF",y.strokeStyle="#000",y.shadowBlur=0,y.font="24px NovaSquare",t("Help",400-y.measureText("Help").width/2,94),y.font="12px NovaSquare",t("(Press F11 to hide)",400-y.measureText("(Press F11 to hide)").width/2,110),y.font="24px NovaSquare",t("Keybinds",250-y.measureText("Keybinds").width/2,160),t("Images",550-y.measureText("Images").width/2,160),y.font="12px NovaSquare",t("F1 - Toggles Movement",100,180),t("F2 - Toggles WallHack",100,202),t("F3 - Deploys a minion",100,224),t("F4 - Returns a minion",100,246),t("F5 - Returns all deployed minions",100,268),t("F6 - Toggles Spam Clicking",100,290),t("F7 - Toggles Clicking All Buttons",100,312),t("F8 - Switches views",100,334),t("Right Click - Toggles Spam Clicking",100,400)):t("Press F11 to get help",400-y.measureText("Press F11 to get help").width/2,22),W.Frames++,W.FPS++,setTimeout(function(){W.FPS--},1e3),requestAnimationFrame(ne)}function le(){if(location.href!='http://cursors.io/?editor')alert("Please consider going to cursors.io/?editor to get all 3 bots.");return"Thanks for using my script! :)"}v.src="img/cursor.png",y.CLS=function(){return y.clearRect(0,0,800,800),!0},requestAnimationFrame(ne);var ie=[];function oe(){var t=new ArrayBuffer(9),a=new DataView(t);a.setUint8(0,1),a.setUint16(1,Y/2,!0),a.setUint16(3,X/2,!0),a.setUint32(5,-1,!0),L.forEach(function(e){1==e.readyState&&!e.Deployed&&!C.Misc.AllButtons&&e.send(t)}),e&&1==e.readyState&&e.send(t),setTimeout(function(){oe()},Math.floor(86400*Math.random()+43200))}Z={Log:function(e,t=0){Q.length>=24&&Q.shift(),Q.push([e,t]),u.clearRect(0,0,getComputedStyle(f).width.substring(0,getComputedStyle(f).width.length-2),304),f.width=parseInt(getComputedStyle(f).width.substring(0,getComputedStyle(f).width.length-2)),f.height=304,u.font="12px NovaSquare";for(var a=0;a<Q.length;a++)u.fillStyle=0==Q[a][1]?"#ccc":1==Q[a][1]?"#ee0":3==Q[a][1]?"#9f9":"#f99",u.fillText(Q[a][0],5,17+12*a)},AllButtons:function(){var e=[],t=0,a=1;B.forEach(function(t){"Button"==t.Type&&e.push(t)}),0!=e.length&&(a=Math.floor(e.length/2),function n(){if(!C.Misc.AllButtons)return Z.Pathfinder([parseInt(L[0].RX/2-3),parseInt(L[0].RY/2)],[parseInt(b/2),parseInt(I/2)],!0,0),Z.Pathfinder([parseInt(L[1].RX/2-3),parseInt(L[1].RY/2)],[parseInt(b/2),parseInt(I/2)],!0,1),void clearTimeout();Z.Pathfinder([parseInt(L[0].RX/2-3),parseInt(L[0].RY/2)],[parseInt((e[t].X+e[t].W/2)/2),parseInt((e[t].Y+e[t].H/2)/2)],!0,0),Z.Pathfinder([parseInt(L[1].RX/2-3),parseInt(L[1].RY/2)],[parseInt((e[a].X+e[a].W/2)/2),parseInt((e[a].Y+e[a].H/2)/2)],!0,1);var l=new ArrayBuffer(9),i=new DataView(l),o=0;for(i.setUint8(0,2),i.setUint16(1,parseInt((e[t].X+e[t].W/2)/2),!0),i.setUint16(3,parseInt((e[t].Y+e[t].H/2)/2),!0),i.setInt32(5,-1,!0);o<10;o++)L[0].send(l);for(i.setUint16(1,parseInt((e[a].X+e[a].W/2)/2),!0),i.setUint16(3,parseInt((e[a].Y+e[a].H/2)/2),!0),o=0;o<10;o++)L[1].send(l);t++,++a>e.length-1&&(a=Math.floor(e.length/2),t=0),setTimeout(function(){n()},C.Misc.AllButtonsInterval)}())},DOS:function(e,t){var a=[];ie=[];for(var n=0;n<300;n++){a[n]=[],ie[n]=[];for(var l=0;l<400;l++)a[n][l]=0,ie[n][l]=0}-1==t?B.forEach(function(e){if("Wall"==e.Type||"Exit"==e.Type&&1==e.Variant)for(var t=0;t<e.H/2;t++)for(var n=0;n<e.W/2;n++)a[e.Y/2+t][e.X/2+n]=3}):L[t].OBJ.forEach(function(e){if("Wall"==e.Type||"Exit"==e.Type&&1==e.Variant)for(var t=0;t<e.H/2;t++)for(var n=0;n<e.W/2;n++)a[e.Y/2+t][e.X/2+n]=3});for(var i=[e],o=[];i.length;)i.forEach(function(e){var t=e[0],n=e[1];if(n&&t&&3!=a[n][t]){a[n][t]=3;for(var l=t+C.Pathfinder.Speed["X+"];l<400&&!(1&a[n][l]);l+=C.Pathfinder.Speed["X+"])a[n][l]|=1,ie[n][l]||(ie[n][l]=[t,n],o.push([l,n]));for(l=t-C.Pathfinder.Speed["X-"];l>=0&&!(1&a[n][l]);l-=C.Pathfinder.Speed["X-"])a[n][l]|=1,ie[n][l]||(ie[n][l]=[t,n],o.push([l,n]));for(var i=n+C.Pathfinder.Speed["Y+"];i<300&&!(2&a[i][t]);i+=C.Pathfinder.Speed["Y+"])a[i][t]|=2,ie[i][t]||(ie[i][t]=[t,n],o.push([t,i]));for(i=n-C.Pathfinder.Speed["Y-"];i>=0&&!(2&a[i][t]);i-=C.Pathfinder.Speed["Y-"])a[i][t]|=2,ie[i][t]||(ie[i][t]=[t,n],o.push([t,i]))}}),i=o,o=[]},MOVE:function(t,a,n){if(!a.length)return 0;t.Available=!1;var l=new ArrayBuffer(9),i=new DataView(l);i.setUint8(0,C.Pathfinder.Variant),i.setUint16(1,a[0][0],!0),i.setUint16(3,a[0][1],!0),i.setInt32(5,-1,!0),t.send(l);for(var o=0;o<a.length;o++)i.setUint16(1,a[o][0],!0),i.setUint16(3,a[o][1],!0),t.send(l);return t!=e&&(t.Available=!0),a.length},Pathfinder:function(t,a,n=!1,l=-1,i=!0){var o=[];if(-1==l){if(!n&&1!=e.readyState)return!1;Z.DOS(t,l);for(var r=a.slice(0);ie[r[1]][r[0]];)o.push(r),r=ie[r[1]][r[0]];return o=o.reverse(),1!=i||C.Misc.AllButtons||L.forEach(function(e){1!=e.readyState||e.Deployed||Z.MOVE(e,o,n)}),Z.MOVE(e,o,n)}if(!n&&(1!=L[l].readyState||0==L[l].Available||1==L[l].Deployed||C[""]))return!1;Z.DOS(t,l);for(r=a.slice(0);ie[r[1]][r[0]];)o.push(r),r=ie[r[1]][r[0]];return o=o.reverse(),Z.MOVE(L[l],o,n)},SendMessage:function(a){Z.Log('Writing message "'+a.join("")+'"...');var n=0,l=0,i=b,o=I;!function r(){if(!(n>a.length-1)){var s=new ArrayBuffer(9),c=new DataView(s),h=a[n];if(h.length>1)return n++,void r();if(c.setUint8(0,3),!J[C.Fonts.Selected][h])return console.warn("Unsupported letter "+h+" in font "+C.Fonts.Selected),t.parentElement.style.borderColor="#f99",t.style.color="#f99",void setTimeout(function(){t.parentElement.style.borderColor="#ccc",t.style.color="#ccc"},250);J[C.Fonts.Selected][h].forEach(function(t){console.log(t),c.setUint16(1,i/2+n*C.Fonts.Spacing+t[0]*C.Fonts.Width,!0),c.setUint16(3,o/2-t[1]*C.Fonts.Height,!0),c.setUint16(5,i/2+n*C.Fonts.Spacing+t[2]*C.Fonts.Width,!0),c.setUint16(7,o/2-t[3]*C.Fonts.Height,!0),l%(1+L.length-_)?(L[l%(L.length-_)].send(s),console.log("Clients "+l%(L.length-_))):(e.send(s),console.log("Client")),l++,C.Misc.AllButtons&&(l=0)}),n++," "==h?r():setTimeout(function(){r()},C.Fonts.Interval)}}(),Z.Log("Finished writing message.",3)},Keypress:function(e){if(e.keyCode>=65&&e.keyCode<=90||32==e.keyCode||e.keyCode>=48&&e.keyCode<=57&&!e.shiftKey){if(R.length>=64)return;e.shiftKey?R.push(String.fromCharCode(e.keyCode).toUpperCase()):R.push(String.fromCharCode(e.keyCode).toLowerCase()),t.innerText=R.join(""),t.style.fontSize=R.length>30?24-(R.length-30)/6+"px":"24px"}else if(e.keyCode>=48&&e.keyCode<=57){if(R.length>=64)return;switch(e.keyCode){case 49:R.push("!");break;case 50:R.push("@");break;case 51:R.push("#");break;case 52:R.push("$");break;case 53:R.push("%");break;case 54:R.push("^");break;case 55:R.push("&");break;case 56:R.push("*");break;case 57:R.push("(");break;case 48:R.push(")");break;default:console.warn("Somehow, you got this hidden error message. Congrats! Anyways, you got this because you typed a number with the shift key down, BUT for some reason its character code wasn't supported. Send this spammy thing below to vnx#6389 on discord:\n"+e)}t.innerText=R.join(""),t.style.fontSize=R.length>30?24-(R.length-30)/6+"px":"24px"}else if(13==e.keyCode)R.shift(),Z.SendMessage(R),R=["​"],t.style.fontSize=R.length>30?24-(R.length-30)/6+"px":"24px",t.innerText=R.join("");else if(8==e.keyCode){if(R.length<=1)return;e.shiftKey?R.splice(1,1):e.ctrlKey?R=["​"]:R.pop(),R==[]&&(R=["​"]),t.innerText=R.join(""),t.style.fontSize=R.length>30?24-(R.length-30)/6+"px":"24px"}else if(e.keyCode>=219&&e.keyCode<=222||e.keyCode>=186&&e.keyCode<=191){if(e.shiftKey)switch(e.keyCode){case 219:R.push("{");break;case 220:R.push("\\");break;case 221:R.push("}");break;case 190:R.push(">");break;case 188:R.push("<");break;case 189:R.push("_");break;case 187:R.push("+");break;case 191:R.push("?");break;case 186:R.push(":");break;case 222:R.push('"')}else switch(e.keyCode){case 219:R.push("[");break;case 220:R.push("\\");break;case 221:R.push("]");break;case 190:R.push(".");break;case 188:R.push(",");break;case 189:R.push("-");break;case 187:R.push("=");break;case 191:R.push("/");break;case 186:R.push(";");break;case 222:R.push("'")}t.innerText=R.join(""),t.style.fontSize=R.length>30?24-(R.length-30)/6+"px":"24px"}else if(e.keyCode>=112&&e.keyCode<=122)switch(e.preventDefault(),e.keyCode){case 112:C.Movement=!C.Movement,Z.Log(C.Movement?"Enabled movement.":"Disabled movement.");break;case 113:C.Misc.WallHack=!C.Misc.WallHack,Z.Log(C.Misc.WallHack?"Enabled wallhack.":"Disabled wallhack.");break;case 114:$>=L.length&&($=0),L[$].Deployed=!0,Z.Log("Deployed bot #"+($+1)),$++;break;case 115:--$<0&&($=L.length-1),L[$].Deployed=!1,Z.Pathfinder([parseInt(L[$].X/2),parseInt(L[$].Y/2)],[parseInt(U/2),parseInt(V/2)],!1,$),Z.Log("Returned bot #"+($+1));break;case 116:$=0;var a=0;for(Z.Log("Returning all bots...");a<L.length;a++)1==L[a].Deployed&&(L[a].Deployed=!1,Z.Pathfinder([parseInt(L[a].X/2),parseInt(L[a].Y/2)],[parseInt(U/2),parseInt(V/2)],!1,a));Z.Log("Returned all bots.",3);break;case 117:C.Click.SpamClicking=!C.Click.SpamClicking,Z.Log(C.Click.SpamClicking?"Enabled spam clicking.":"Disabled spam clicking.");break;case 118:if(C.Misc.AllButtons=!C.Misc.AllButtons,Z.Log(C.Misc.AllButtons?"Enabled all button clicking.":"Disabled all button clicking."),C.Misc.AllButtons)Z.AllButtons();else for(a=0;a<L.length;a++)Z.Pathfinder([parseInt(L[a].RX/2),parseInt(L[a].RY/2)],[parseInt(U/2),parseInt(V/2)],!1,a);break;case 122:C.Misc.Help=!C.Misc.Help}},Mouse:function(t){if(U=t.layerX,V=t.layerY,1!=e.readyState&&(y.font="30px NovaSquare",V>=340&&U>=400-y.measureText("[ Reconnect ]").width/2&&V<=370&&U<=400+y.measureText("[ Reconnect ]").width/2?S.style.cursor="pointer":S.style.cursor="auto"),C.Movement&&1==e.readyState&&!function(e,t,a,n){for(var l=0;l<B.length;l++)if("Exit"==B[l].Type&&1==B[l].Variant&&e>B[l].X&&t>B[l].Y&&a<B[l].X+B[l].W&&n<B[l].Y+B[l].H)return!0;return!1}(U,V,U+1,V+1)&&!H){var a=new ArrayBuffer(9),n=new DataView(a);if(n.setUint8(0,1),n.setUint16(1,U/2,!0),n.setUint16(3,V/2,!0),n.setUint32(5,-1,!0),1==e.readyState&&e.send(a),C.Misc.AllButtons)return;for(var l=0;l<L.length;l++)1!=L[l].readyState||L[l].Deployed||L[l].send(a)}},Click:function(t){if(U=t.layerX,V=t.layerY,Y=U,X=V,1!=e.readyState){if(y.font="30px NovaSquare",V>=340&&U>=400-y.measureText("[ Reconnect ]").width/2&&V<=370&&U<=400+y.measureText("[ Reconnect ]").width/2){function a(e){L[e].onopen=function(t){Z.WSBOpen(t,e)},L[e].onclose=function(t){Z.WSBClose(t,e)},L[e].onmessage=function(t){Z.WSBMessageSplitter(t,e)}}e=new WebSocket(ip),L=[];for(var n=0;n<C.Connections;n++){var l=n;L.push(new WebSocket(ip)),L[l].binaryType="arraybuffer",L[l].OBJ=[],L[l].CUR=[],L[l].DRA=[],L[l].CLI=[],L[l].X=400,L[l].Y=300,L[l].Level=-1,L[l].LocalPlayers=0,a(l)}e.binaryType="arraybuffer",e.onopen=Z.WSOpen,e.onmessage=Z.WSMessageSplitter,e.onclose=Z.WSClose,S.style.cursor="none",Z.Log("Reconnecting...",3)}requestAnimationFrame(ne),W.Seconds=0}if(1==e.readyState){if(t.shiftKey)H=!0;else{Z.Pathfinder([parseInt(b/2),parseInt(I/2)],[parseInt(U/2),parseInt(V/2)],!1,-1),setTimeout(function(){e.Available=!0},C.Pathfinder.Cooldown);var i=new ArrayBuffer(9),o=new DataView(i);o.setUint8(0,2),o.setUint16(1,U/2,!0),o.setUint16(3,V/2,!0),o.setUint32(5,-1,!0);n=0;if(C.Misc.AllButtons)for(;n<C.Click.Weight;n++)e.send(i);else setInterval(function(){++n<=C.Click.Weight?n%(1+L.length-K)?L[n%(L.length-K)].Deployed||1!=L[n%(L.length-K)].readyState||L[n%(L.length-K)].send(i):e.send(i):clearInterval()},C.Click.Interval.Normal)}j=!0}},Unclick:function(e){U=e.layerX,V=e.layerY,H=!1,j=!1},NewObjects:function(e,t,a){switch(BinType=e.getUint8(t),console.log(BinType),BinType){case 0:B[a].Type="Text";break;case 1:B[a].Type="Wall";break;case 2:B[a].Type="Exit";break;case 3:B[a].Type="Plate";break;case 4:B[a].Type="Button";break;default:B[a].Type="Unknown"}if("Text"==B[a].Type){B[a].X=2*e.getUint16(t+1,!0),B[a].Y=2*e.getUint16(t+3,!0),B[a].Size=e.getUint8(t+5),B[a].Centered=!!e.getUint8(t+6),t+=7;var n="";for(i=0,i2=0;0!=(i2=e.getUint8(t));++t)i<<=8,i|=i2,128&i||(n+=String.fromCharCode(i),i=0),0!=i&&(n+=String.fromCharCode(i));return B[a].Text=n,B[a].Variant=0,t+1}if("Wall"==B[a].Type){B[a].X=2*e.getUint16(t+1,!0),B[a].Y=2*e.getUint16(t+3,!0),B[a].W=2*e.getUint16(t+5,!0),B[a].H=2*e.getUint16(t+7,!0);for(n=e.getUint32(t+9,!0).toString(16);n.length<6;)n="0"+n;return"000000"==n?B[a].Variant=0:"FF9999"==n.toUpperCase()?B[a].Variant=1:"FFFF99"==n.toUpperCase()?B[a].Variant=2:"99FFFF"==n.toUpperCase()?B[a].Variant=3:"9999FF"==n.toUpperCase()?B[a].Variant=4:"3333FF"==n.toUpperCase()?B[a].Variant=5:"FF99FF"==n.toUpperCase()?B[a].Variant=6:"FF0000"==n.toUpperCase()?B[a].Variant=2:B[a].Variant=0,t+13}if("Exit"==B[a].Type)return B[a].X=2*e.getUint16(t+1,!0),B[a].Y=2*e.getUint16(t+3,!0),B[a].W=2*e.getUint16(t+5,!0),B[a].H=2*e.getUint16(t+7,!0),B[a].Variant=0==e.getUint8(t+9)?0:1,t+10;if("Plate"==B[a].Type){B[a].X=2*e.getUint16(t+1,!0),B[a].Y=2*e.getUint16(t+3,!0),B[a].W=2*e.getUint16(t+5,!0),B[a].H=2*e.getUint16(t+7,!0),B[a].C=e.getUint16(t+9,!0);for(n=e.getUint32(t+11,!0).toString(16);n.length<6;)n="0"+n;return"000000"==n?B[a].Variant=0:"FF9999"==n.toUpperCase()||"FF0000"==n.toUpperCase()?B[a].Variant=1:"FFFF99"==n.toUpperCase()||"FFFF00"==n.toUpperCase()?B[a].Variant=2:"99FFFF"==n.toUpperCase()||"00FFFF"==n.toUpperCase()?B[a].Variant=3:"9999FF"==n.toUpperCase()?B[a].Variant=4:"3333FF"==n.toUpperCase()||"0000FF"==n.toUpperCase()?B[a].Variant=5:"FF99FF"==n.toUpperCase()||"FF00FF"==n.toUpperCase()?B[a].Variant=6:B[a].Variant=7,t+15}if("Button"==B[a].Type){B[a].X=2*e.getUint16(t+1,!0),B[a].Y=2*e.getUint16(t+3,!0),B[a].W=2*e.getUint16(t+5,!0),B[a].H=2*e.getUint16(t+7,!0),B[a].C=e.getUint16(t+9,!0);for(n=e.getUint32(t+11,!0).toString(16);n.length<6;)n="0"+n;return"000000"==n?B[a].Variant=0:"FF9999"==n.toUpperCase()?B[a].Variant=1:"FFFF99"==n.toUpperCase()?B[a].Variant=2:"99FFFF"==n.toUpperCase()?B[a].Variant=3:"9999FF"==n.toUpperCase()?B[a].Variant=4:"3333FF"==n.toUpperCase()?B[a].Variant=5:"FF99FF"==n.toUpperCase()?B[a].Variant=6:B[a].Variant=0,t+15}console.log("unknown object thing"),B[a].X=e.getUint16(t+1,!0)||0,B[a].Y=e.getUint16(t+3,!0)||0,B[a].W=e.getUint16(t+5,!0)||100,B[a].H=e.getUint16(t+7,!0)||100},BNewObjects:function(e,t,a,n){switch(BinType=e.getUint8(t),BinType){case 0:L[n].OBJ[a].Type="Text";break;case 1:L[n].OBJ[a].Type="Wall";break;case 2:L[n].OBJ[a].Type="Exit";break;case 3:L[n].OBJ[a].Type="Plate";break;case 4:L[n].OBJ[a].Type="Button";break;default:L[n].OBJ[a].Type="Unknown"}if("Text"==L[n].OBJ[a].Type){L[n].OBJ[a].X=2*e.getUint16(t+1,!0),L[n].OBJ[a].Y=2*e.getUint16(t+3,!0),L[n].OBJ[a].Size=e.getUint8(t+5),L[n].OBJ[a].Centered=!!e.getUint8(t+6),t+=7;var l="";for(i=0,i2=0;0!=(i2=e.getUint8(t));++t)i<<=8,i|=i2,128&i||(l+=String.fromCharCode(i),i=0),0!=i&&(l+=String.fromCharCode(i));return L[n].OBJ[a].Text=l,L[n].OBJ[a].Variant=0,t+1}if("Wall"==L[n].OBJ[a].Type){L[n].OBJ[a].X=2*e.getUint16(t+1,!0),L[n].OBJ[a].Y=2*e.getUint16(t+3,!0),L[n].OBJ[a].W=2*e.getUint16(t+5,!0),L[n].OBJ[a].H=2*e.getUint16(t+7,!0);for(l=e.getUint32(t+9,!0).toString(16);l.length<6;)l="0"+l;return"000000"==l?L[n].OBJ[a].Variant=0:"FF9999"==l.toUpperCase()?L[n].OBJ[a].Variant=1:"FFFF99"==l.toUpperCase()?L[n].OBJ[a].Variant=2:"99FFFF"==l.toUpperCase()?L[n].OBJ[a].Variant=3:"9999FF"==l.toUpperCase()?L[n].OBJ[a].Variant=4:"3333FF"==l.toUpperCase()?L[n].OBJ[a].Variant=5:"FF99FF"==l.toUpperCase()?L[n].OBJ[a].Variant=6:"FF0000"==l.toUpperCase()?L[n].OBJ[a].Variant=2:L[n].OBJ[a].Variant=0,t+13}if("Exit"==L[n].OBJ[a].Type)return L[n].OBJ[a].X=2*e.getUint16(t+1,!0),L[n].OBJ[a].Y=2*e.getUint16(t+3,!0),L[n].OBJ[a].W=2*e.getUint16(t+5,!0),L[n].OBJ[a].H=2*e.getUint16(t+7,!0),L[n].OBJ[a].Variant=0==e.getUint8(t+9)?0:1,t+10;if("Plate"==L[n].OBJ[a].Type){L[n].OBJ[a].X=2*e.getUint16(t+1,!0),L[n].OBJ[a].Y=2*e.getUint16(t+3,!0),L[n].OBJ[a].W=2*e.getUint16(t+5,!0),L[n].OBJ[a].H=2*e.getUint16(t+7,!0),L[n].OBJ[a].C=e.getUint16(t+9,!0);for(l=e.getUint32(t+11,!0).toString(16);l.length<6;)l="0"+l;return"000000"==l?L[n].OBJ[a].Variant=0:"FF9999"==l.toUpperCase()||"FF0000"==l.toUpperCase()?L[n].OBJ[a].Variant=1:"FFFF99"==l.toUpperCase()||"FFFF00"==l.toUpperCase()?L[n].OBJ[a].Variant=2:"99FFFF"==l.toUpperCase()||"00FFFF"==l.toUpperCase()?L[n].OBJ[a].Variant=3:"9999FF"==l.toUpperCase()?L[n].OBJ[a].Variant=4:"3333FF"==l.toUpperCase()||"0000FF"==l.toUpperCase()?L[n].OBJ[a].Variant=5:"FF99FF"==l.toUpperCase()||"FF00FF"==l.toUpperCase()?L[n].OBJ[a].Variant=6:L[n].OBJ[a].Variant=7,t+15}if("Button"==L[n].OBJ[a].Type){L[n].OBJ[a].X=2*e.getUint16(t+1,!0),L[n].OBJ[a].Y=2*e.getUint16(t+3,!0),L[n].OBJ[a].W=2*e.getUint16(t+5,!0),L[n].OBJ[a].H=2*e.getUint16(t+7,!0),L[n].OBJ[a].C=e.getUint16(t+9,!0);for(l=e.getUint32(t+11,!0).toString(16);l.length<6;)l="0"+l;return"000000"==l?L[n].OBJ[a].Variant=0:"FF9999"==l.toUpperCase()?L[n].OBJ[a].Variant=1:"FFFF99"==l.toUpperCase()?L[n].OBJ[a].Variant=2:"99FFFF"==l.toUpperCase()?L[n].OBJ[a].Variant=3:"9999FF"==l.toUpperCase()?L[n].OBJ[a].Variant=4:"3333FF"==l.toUpperCase()?L[n].OBJ[a].Variant=5:"FF99FF"==l.toUpperCase()?L[n].OBJ[a].Variant=6:L[n].OBJ[a].Variant=0,t+15}L[n].OBJ[a].X=e.getUint16(t+1,!0)||0,L[n].OBJ[a].Y=e.getUint16(t+3,!0)||0,L[n].OBJ[a].W=e.getUint16(t+5,!0)||100,L[n].OBJ[a].H=e.getUint16(t+7,!0)||100},WSMessageS00:function(e){return ee=e.getUint32(1,!0),Z.Log("Your ID is "+ee+"."),!0},CursorDrawPos:function(e,t,a){var n=t-e,l=(new Date-a)/C.Cursor.AnimationDelay,i=0>=l?0:1<=l?1:l;return e+i*i*(3-2*i)*n},WSMessageS01:function(t,a){H&&!C.Click.HoldToSpam&&function(){var t=new ArrayBuffer(9),a=new DataView(t);if(a.setUint8(0,3),a.setUint16(1,parseInt(Y/2),!0),a.setUint16(3,parseInt(X/2),!0),a.setUint16(5,parseInt(U/2),!0),a.setUint16(7,parseInt(V/2),!0),e.send(t),1e3==G)for(var n=0;n<L.length;n++)1!=L[n].readyState||L[n].Deployed||L[n].Level!=N||C.Misc.AllButtons||L[n].send(t)}(),C.Movement&&(Y=U,X=V);var n=t.getUint16(1,!0),l=new Array(512);M=t.getUint16(1,!0);for(var i=0;i<n;i++){var o=t.getUint32(3+8*i,!0),r=t.getUint16(7+8*i,!0),s=t.getUint16(9+8*i,!0);x[o]||(x[o]={I:o,OX:2*r+6,OY:2*s,X:2*r+6,Y:2*s+6,T:new Date}),x[o]={I:o,OX:Z.CursorDrawPos(x[o].OX,x[o].X,x[o].T),OY:Z.CursorDrawPos(x[o].OY,x[o].Y,x[o].T),X:2*r+6,Y:2*s,T:new Date},l[o]=!0,o==ee&&(b=x[o].OX,I=x[o].OY,RX=2*r+6,RY=2*s)}for(i=0;i<x.length;i++)x[i]&&!l[i]&&(x[i]=void 0);var c=3+8*n,h=t.getUint16(c,!0);for(i=0;i<h;i++){r=t.getUint16(c+2+4*i,!0),s=t.getUint16(c+4+4*i,!0);setTimeout(function(){k.push({X:2*r-10,Y:2*s,T:new Date,L:N})},C.Click.Delay),setTimeout(function(){k.shift()},C.Click.Expiration)}c=c+4+4*h;var p=t.getUint16(c-2,!0);p>0&&console.log("wallupdates:"+p);for(i=0;i<p;i++){o=t.getUint32(c,!0);for(var d=0;d<B.length;d++)B[d].I==o&&"Wall"==B[d].Type&&B.splice(d,1);c+=4}c+=2;var F=t.getUint16(c-2,!0);F>0&&console.log("mapupdates:"+F);for(i=0;i<F;i++){o=t.getUint32(c,!0);function T(){for(var e=0;e<B.length;e++)if(B[e].I==o)return e;return B.push({I:o}),B.length-1}var f=T();c+=4,c=Z.NewObjects(t,c,f)}var u=t.getUint16(c,!0);for(i=0;i<u;i++){var m=t.getUint16(c+2+8*i,!0),g=t.getUint16(c+4+8*i,!0),S=t.getUint16(c+6+8*i,!0),y=t.getUint16(c+8+8*i,!0);A.push({X:[2*m,2*S],Y:[2*g,2*y],T:new Date,L:N}),setTimeout(function(){A.shift()},C.Drawing.Expiration)}return c=c+2+8*u,a.data.byteLength>=c+4&&(O=t.getUint32(c,!0)),!0},WSMessageS04:function(t){if(C.Bots.NewLevelReturn){C.Misc.AllButtons&&Z.Log("Disabled all button clicking."),C.Misc.AllButtons=!1;for(var a=0;a<L.length;a++)1==L[a].readyState&&Z.Pathfinder([parseInt(L[a].X/2),parseInt(L[a].Y/2)],[parseInt(U/2),parseInt(V/2)],!0,a)}B=[],x=[],U=2*t.getUint16(1,!0),V=2*t.getUint16(3,!0),Y=U,X=V,A.forEach(function(e){e.X=[0,0],e.Y=[0,0]}),k.forEach(function(e){e.X=0,e.Y=0}),Objects=t.getUint16(5,!0),OFF=7;for(a=0;a<Objects;a++)B.push({I:t.getUint32(OFF,!0)}),OFF+=4,OFF=Z.NewObjects(t,OFF,B.length-1);e.Available=!1,L[0].Available=!1,L[1].Available=!1,setTimeout(function(){e.Available=!0,L[0].Available=!0,L[1].Available=!0},1e3),P=[],B.forEach(function(e){("Wall"==e.Type&&0==e.Variant||"Text"==e.Type||"Exit"==e.Type)&&P.push(e)});var l=N;if(N>62)N++;else{N="??";for(a=0;a<E.length;a++)JSON.stringify(E[a])===JSON.stringify(P)&&(N=a);"??"==N&&(N=l+1)}return n.innerText="Level "+N,Z.Log(l>N?"You went back a level.":l==N?"You teleported back to the spawn.":"You advanced a level",l<N?3:0),!0},WSMessageS05:function(t){if(C.Misc.WallHack&&e.Available&&!(e.bufferedAmount>0)&&(e.Available=!1,setTimeout(function(){e.Available=!0},C.Pathfinder.Cooldown),Z.Pathfinder([parseInt(RX/2-3),parseInt(RY/2)],[parseInt(U/2),parseInt(V/2)],!1,-1,!C.Pathfinder.CalculateAll),C.Pathfinder.CalculateAll)){for(var a=0;a<L.length;a++)L[a].Level==N&&0==L[a].Deployed&&Z.Pathfinder([parseInt(L[a].X),parseInt(L[a].Y)],[parseInt(U/2),parseInt(V/2)],!1,a);return!1}},WSMessageSplitter:function(e){ABC=new DataView(e.data),0==ABC.getUint8(0)?Z.WSMessageS00(ABC):1==ABC.getUint8(0)?Z.WSMessageS01(ABC,e):4==ABC.getUint8(0)?Z.WSMessageS04(ABC):5==ABC.getUint8(0)&&Z.WSMessageS05(ABC)},WSOpen:function(e){Z.Log("Client connected!",3),o.style.color="#9f9",o.innerText="Connected",console.log("%cWS: %cClient Opened","font-family: Monospace; color: #cccccc; font-size: 18px;","font-family: monospace; color: #77ff77; font-size: 18px;")},WSClose:function(e){Z.Log("Client disconnected.",2),o.style.color="#f99",o.innerText="Disconnected",S.style.cursor="auto",console.log("%cWS: %cClient Closed","font-family: Monospace; color: #cccccc; font-size: 18px;","font-family: monospace; color: #ff7777; font-size: 18px;"),L.forEach(function(e){e.close()})},WSBOpen:function(e,t){Z.Log("Bot #"+t+" connected!",3),0==t?(h.style.color="#9f9",h.innerText="Connected"):1==t&&(BotStateDisplay2.style.color="#9f9",BotStateDisplay2.innerText="Connected"),console.log("%cWS: %cNew Bot Client Opened","font-family: Monospace; color: #cccccc; font-size: 18px;","font-family: monospace; color: #77ff77; font-size: 18px;")},WSBClose:function(e,t){Z.Log("Bot #"+t+" disconnected.",2),0==t?(h.style.color="#f99",h.innerText="Disconnected"):1==t&&(BotStateDisplay2.style.color="#f99",BotStateDisplay2.innerText="Disconnected"),_++,console.log("%cWS: %cA Bot Client Closed","font-family: Monospace; color: #cccccc; font-size: 18px;","font-family: monospace; color: #ff7777; font-size: 18px;")},WSBMessageS00:function(e,t){return L[t].I=e.getUint32(1,!0),q.push(e.getUint32(1,!0)),Z.Log("Bot #"+(t+1)+"'s ID is "+e.getUint32(1,!0)),!0},WSBMessageS01:function(e,t){var a,n,l=e.getUint16(1,!0),i=new Array(512);M=e.getUint16(1,!0),H&&!C.Click.HoldToSpam&&(a=new ArrayBuffer(9),(n=new DataView(a)).setUint8(0,3),n.setUint16(1,parseInt(Y/2),!0),n.setUint16(3,parseInt(X/2),!0),n.setUint16(5,parseInt(U/2),!0),n.setUint16(7,parseInt(V/2),!0),1e3!=G&&1==L[t].readyState&&!L[t].Deployed&&L[t].Level==L[G].Level&&!C.Misc.AllButtons&&L[t].send(a)),C.Movement&&(L[t].OX=U,L[t].OY=V);for(var o=0;o<l;o++){var r=e.getUint32(3+8*o,!0),s=e.getUint16(7+8*o,!0),c=e.getUint16(9+8*o,!0);L[t].CUR[r]||(L[t].CUR[r]={I:r,OX:2*s+6,OY:2*c,X:2*s+6,Y:2*c+6,T:new Date}),L[t].CUR[r]={I:r,OX:Z.CursorDrawPos(L[t].CUR[r].OX,L[t].CUR[r].X,L[t].CUR[r].T),OY:Z.CursorDrawPos(L[t].CUR[r].OY,L[t].CUR[r].Y,L[t].CUR[r].T),X:2*s+6,Y:2*c,T:new Date},i[r]=!0,r==L[t].I&&(L[t].X=L[t].CUR[r].OX,L[t].Y=L[t].CUR[r].OY,L[t].RX=2*s+6,L[t].RY=2*c)}for(o=0;o<L[t].CUR.length;o++)L[t].CUR[o]&&!i[o]&&(L[t].CUR[o]=void 0);var h=3+8*l,p=e.getUint16(h,!0);for(o=0;o<p;o++){s=e.getUint16(h+2+4*o,!0),c=e.getUint16(h+4+4*o,!0);setTimeout(function(){L[t].CLI.push({X:2*s-10,Y:2*c,T:new Date,L:N})},C.Click.Delay),setTimeout(function(){L[t].CLI.shift()},C.Click.Expiration)}h=h+4+4*p;var d=e.getUint16(h-2,!0);for(o=0;o<d;o++){r=e.getUint32(h,!0);for(var F=0;F<L[t].OBJ.length;F++)L[t].OBJ[F].I==r&&L[t].OBJ.splice(F,1);h+=4}h+=2;var T=e.getUint16(h-2,!0);for(o=0;o<T;o++){r=e.getUint32(h,!0);function f(){for(var e=0;e<L[t].OBJ.length;e++)if(L[t].OBJ[e].I==r)return e;return L[t].OBJ.push({I:r}),L[t].OBJ.length-1}var u=f();h+=4,h=Z.BNewObjects(e,h,u,t)}var m=e.getUint16(h,!0);for(o=0;o<m;o++){var g=e.getUint16(h+2+8*o,!0),S=e.getUint16(h+4+8*o,!0),y=e.getUint16(h+6+8*o,!0),W=e.getUint16(h+8+8*o,!0);L[t].DRA.push({X:[2*g,2*y],Y:[2*S,2*W],T:new Date,L:N}),setTimeout(function(){L[t].DRA.shift()},C.Drawing.Expiration)}return!0},WSBMessageS04:function(e,t){L[t].OBJ=[],L[t].CUR=[],L[t].X=2*e.getUint16(1,!0),L[t].Y=2*e.getUint16(3,!0),L[t].OX=2*e.getUint16(1,!0),L[t].OY=2*e.getUint16(3,!0),A.forEach(function(e){e.X=[0,0],e.Y=[0,0]}),k.forEach(function(e){e.X=0,e.Y=0}),Objects=e.getUint16(5,!0),OFF=7;for(var a=0;a<Objects;a++)L[t].OBJ.push({I:e.getUint32(OFF,!0)}),OFF+=4,OFF=Z.BNewObjects(e,OFF,L[t].OBJ.length-1,t);L[t].OBJLAYOUT=[],L[t].OBJ.forEach(function(e){("Wall"==e.Type&&0==e.Variant||"Text"==e.Type||"Exit"==e.Type)&&L[t].OBJLAYOUT.push(e)});var n=L[t].Level;if(L[t].Level>62)L[t].Level++;else{L[t].Level="??";for(a=0;a<E.length;a++)JSON.stringify(E[a])===JSON.stringify(L[t].OBJLAYOUT)&&(L[t].Level=a);"??"==L[t].Level&&(L[t].Level=n+1)}return 0==t?s.innerText="Level "+L[t].Level:1==t&&(d.innerText="Level "+L[t].Level),Z.Log(n>L[t].Level?"Bot #"+(t+1)+" went back a level.":n==L[t].Level?"Bot #"+(t+1)+" teleported back to the spawn.":"Bot #"+(t+1)+" advanced a level",n<L[t].Level?3:0),!0},WSBMessageSplitter:function(e,t){ABC=new DataView(e.data),0==ABC.getUint8(0)?Z.WSBMessageS00(ABC,t):1==ABC.getUint8(0)?Z.WSBMessageS01(ABC,t):4==ABC.getUint8(0)&&Z.WSBMessageS04(ABC,t)}},FixCanvas=function(){S.style.width="800px",S.style.height="600px",S.width=800,S.height=600,S.style.backgroundColor="#fefefe"},FixCanvas(),CheckForHost=function(){"http://cursors.io"!=window.origin&&alert("The script has detected you're not playing on cursors.io. Please do not try using any other sites with this script. Nothing is stopping you, but be warned, the script will be VERY BUGGY, and very likely not even work at all.")},CheckForHost(),CreateGUI=function(){var e=document.getElementsByTagName("div");e[3].style.display="none",e[4].style.display="none",e[1].style.border="2px solid #ccc",e[1].style.marginBottom="5px",e[1].style.borderRadius="10px",S.style.borderRadius="7px",S.style.cursor="none",ae=document.createElement("div"),document.body.appendChild(ae),ae.style.cssText="border: 2px solid #ccc; border-radius: 10px; width: 800px; margin: 5px auto;";var i=document.createElement("div");t=document.createElement("p"),i.style.cssText="width: 750px; margin-left: 25px; transition: 0.25s;",ae.appendChild(i),t.style.cssText="font-family: NovaSquare; color: #ccc; margin-left: 10px; transition: 0.25s; font-size: "+(R.length>20?24-(R.length-20)+"px;":"24px;"),i.appendChild(t),t.innerText="​",BotView=document.createElement("div"),BotView.style.cssText="border: 2px solid #ccc; border-radius: 10px; width: calc(50% - 425px); height: 304px; position: absolute; top: 20px; left: 5px;",document.body.appendChild(BotView),(a=document.createElement("div")).style.cssText="height: 100px; border: 0px solid #ccc; border-bottom-width: 2px;",BotView.appendChild(a),(r=document.createElement("div")).style.cssText="height: 100px; border: 0px solid #ccc; border-bottom-width: 2px;",BotView.appendChild(r),(p=document.createElement("div")).style.cssText="height: 100px;",BotView.appendChild(p),(l=document.createElement("div")).innerText="You",l.style.cssText="font-family: NovaSquare; font-size: 18px; margin-top: 5px; margin-left: 5px; color: #ccc; text-align: center;",a.appendChild(l),(n=document.createElement("div")).innerText="Level 0",n.style.cssText="font-family: NovaSquare; font-size: 18px; margin-top: 2px; margin-left: 5px; color: #ccc; text-align: center;",a.appendChild(n),(o=document.createElement("div")).innerText="Connecting",o.style.cssText="font-family: NovaSquare; font-size: 18px; margin-top: 2px; margin-left: 5px; color: #ff9; text-align: center;",a.appendChild(o),(c=document.createElement("div")).innerText="Bot #1",c.style.cssText="font-family: NovaSquare; font-size: 18px; margin-top: 5px; margin-left: 5px; color: #ccc; text-align: center;",r.appendChild(c),(s=document.createElement("div")).innerText="Level 0",s.style.cssText="font-family: NovaSquare; font-size: 18px; margin-top: 2px; margin-left: 5px; color: #ccc; text-align: center;",r.appendChild(s),(h=document.createElement("div")).innerText="Connecting",h.style.cssText="font-family: NovaSquare; font-size: 18px; margin-top: 2px; margin-left: 5px; color: #ff9; text-align: center;",r.appendChild(h),(F=document.createElement("div")).innerText="Bot #2",F.style.cssText="font-family: NovaSquare; font-size: 18px; margin-top: 5px; margin-left: 5px; color: #ccc; text-align: center;",p.appendChild(F),(d=document.createElement("div")).innerText="Level 0",d.style.cssText="font-family: NovaSquare; font-size: 18px; margin-top: 2px; margin-left: 5px; color: #ccc; text-align: center;",p.appendChild(d),BotStateDisplay2=document.createElement("div"),BotStateDisplay2.innerText="Connecting",BotStateDisplay2.style.cssText="font-family: NovaSquare; font-size: 18px; margin-top: 2px; margin-left: 5px; color: #ff9; text-align: center;",p.appendChild(BotStateDisplay2),r.style.cursor="pointer",a.style.cursor="pointer",p.style.cursor="pointer",r.onclick=function(){G=0},p.onclick=function(){G=1},a.onclick=function(){G=1e3},(T=document.createElement("div")).style.cssText="border: 2px solid #ccc; border-radius: 10px; width: calc(50% - 425px); height: 304px; position: absolute; top: 20px; left: calc(50% + 415px);",document.body.appendChild(T),(f=document.createElement("canvas")).style.cssText="height: 304px; width: calc(50vw - 425px); border-radius: 7px;",T.appendChild(f),u=f.getContext("2d")},CreateGUI(),PredefineSettings=function(){C={Themes:{Basic:{Fill:{Text:[["#000000"]],Wall:[["#000000","#000000"],["#FF9999","#FF7777"],["#FFFF99","#FFFF77"],["#99FFFF","#77FFFF"],["#9999FF","#7777FF"],["#3333FF","#1111FF"],["#FF99FF","#FF77FF"]],Exit:[["#CCFFCC","#AAFFAA"],["#FFCCCC","#FFAAAA"]],Plate:[["#000000","#000000"],["#FFDDDD","#FFCCCC"],["#FFFFDD","#FFFFCC"],["#DDFFFF","#CCFFFF"],["#DDDDFF","#CCCCFF"],["#AAAAFF","#9999FF"],["#FFDDFF","#FFCCFF"]],Button:[["#000000","#000000","#000000","#000000","#000000"],["#FF9999","#FFAAAA","#FF8888","#FF7777","#FF9999"],["#FFFF99","#FFFFAA","#FFFF88","#FFFF77","#FFFF99"],["#99FFFF","#AAFFFF","#88FFFF","#77FFFF","#99FFFF"],["#9999FF","#AAAAFF","#8888FF","#7777FF","#99AAFF"],["#3333FF","#5555FF","#3333FF","#2222FF","#4444FF"],["#FF99FF","#FFAAFF","#FF88FF","#FF77FF","#FF99FF"]]},Shadow:{Text:[[-1,0]],Wall:[[-1,0],[-1,0],[-1,0],[-1,0],[-1,0],[-1,0],[-1,0]],Exit:[[-1,0],[-1,0]],Plate:[[-1,0],[-1,0],[-1,0],[-1,0],[-1,0],[-1,0],[-1,0]],Button:[[-1,0],[-1,0],[-1,0],[-1,0],[-1,0],[-1,0],[-1,0]]},Misc:{LineWidth:2,PlateTextAlpha:.5,ButtonTextAlpha:.5,CursorOutline:["#ffff00","#0000ff","#ff0000",.3,"#ff9900"],ClickColor:"#000",DrawColor:"#000",DrawAlpha:.3,DrawWidth:1}},Shaded:{Fill:{Text:[["#000000"]],Wall:[["#000000","#000000"],["#FF9999","#FF7777"],["#FFFF99","#FFFF77"],["#99FFFF","#77FFFF"],["#9999FF","#7777FF"],["#3333FF","#1111FF"],["#FF99FF","#FF77FF"]],Exit:[["#CCFFCC","#AAFFAA"],["#FFCCCC","#FFAAAA"]],Plate:[["#000000","#000000"],["#FFDDDD","#FFCCCC"],["#FFFFDD","#FFFFCC"],["#DDFFFF","#CCFFFF"],["#DDDDFF","#CCCCFF"],["#AAAAFF","#9999FF"],["#FFDDFF","#FFCCFF"]],Button:[["#000000","#000000","#000000","#000000","#000000"],["#FF9999","#FFBBBB","#FF7777","#FF7777","#FFBBBB"],["#FFFF99","#FFFFBB","#FFFF77","#FFFF77","#FFFFBB"],["#99FFFF","#BBFFFF","#77FFFF","#77FFFF","#BBFFFF"],["#9999FF","#BBBBFF","#7777FF","#7777FF","#BBBBFF"],["#3333FF","#5555FF","#1111FF","#1111FF","#5555FF"],["#FF99FF","#FFAAFF","#FF77FF","#FF77FF","#FFAAFF"]]},Shadow:{Text:[["#000000",10]],Wall:[["#000000",10],["#000000",10],["#000000",10],["#000000",10],["#000000",10],["#000000",10],["#000000",10]],Exit:[["#000000",10],["#000000",10]],Plate:[["#000000",10],["#000000",10],["#000000",10],["#000000",10],["#000000",10],["#000000",10],["#000000",10]],Button:[["#000000",10],["#000000",10],["#000000",10],["#000000",10],["#000000",10],["#000000",10],["#000000",10]]},Misc:{LineWidth:2,PlateTextAlpha:.5,ButtonTextAlpha:.5,CursorOutline:["#ffff00","#0000ff","#ff0000",.3],ClickColor:"#000"}}},ThemeSelected:"Basic",Movement:!0,Connections:2,PageSelected:"Fonts",PageHelp:!1,Fonts:{Selected:"Basic",Width:1,Height:1,Spacing:3,Interval:150,Weight:1},Pathfinder:{Cooldown:200,Variant:1,CalculateAll:!1,Speed:{"X+":1,"X-":1,"Y+":1,"Y-":1}},Click:{Delay:0,Weight:10,SpamClicking:!1,Interval:{Normal:5,Spam:25},HoldToSpam:!1,Expiration:300},Drawing:{Expiration:1e4},Cursor:{IDs:!0,Offset:[0,0],AnimationDelay:100},Bots:{NewLevelReturn:!0},Misc:{WallHack:!0,Help:!1,Debug:!0,RightClickGUI:!0,AllButtons:!1,AllButtonsInterval:333}}},PredefineSettings(),PredefineStats=function(){W={Frames:0,Seconds:0,FPS:0}},PredefineStats(),setInterval(function(){W.Seconds++},1e3),setInterval(function(){if(C.Click.SpamClicking||C.Click.HoldToSpam&&j&&!H){var t=new ArrayBuffer(9),a=new DataView(t);a.setUint8(0,2),a.setUint16(1,Y/2,!0),a.setUint16(3,X/2,!0),a.setInt32(5,-1,!0),L.forEach(function(e){1==e.readyState&&!e.Deployed&&e.Available&&e.Level==N&&e.send(t)}),1==e.readyState&&e.Available&&e.send(t)}},C.Click.Interval.Spam),setInterval(function(){"​"!=R[0]&&R.unshift("​")},50),setInterval(function(){s.style.color=L[0].Level<N||L[0].Level<L[1].Level?"#ee0":"#ccc",d.style.color=L[1].Level<N||L[1].Level<L[0].Level?"#ee0":"#ccc",n.style.color=L[0].Level>N||L[1].Level>N?"#f99":"#ccc"},100),oe(),PredefineLevels=function(){E=[[{I:0,Type:"Text",X:400,Y:100,Size:68,Centered:!0,Text:"Welcome",Variant:0},{I:1,Type:"Text",X:400,Y:150,Size:20,Centered:!0,Text:"You participate in this experiment with your mouse cursor",Variant:0},{I:2,Type:"Text",X:400,Y:184,Size:20,Centered:!0,Text:"Move to the next level by putting your mouse on the green area",Variant:0},{I:3,Type:"Exit",X:600,Y:350,W:100,H:100,Variant:0}],[{I:0,Type:"Exit",X:0,Y:280,W:40,H:40,Variant:0},{I:3,Type:"Wall",X:0,Y:0,W:520,H:40,Variant:0},{I:4,Type:"Wall",X:560,Y:40,W:240,H:40,Variant:0},{I:5,Type:"Wall",X:40,Y:80,W:160,H:40,Variant:0},{I:6,Type:"Wall",X:240,Y:80,W:280,H:40,Variant:0},{I:7,Type:"Wall",X:560,Y:80,W:40,H:40,Variant:0},{I:8,Type:"Wall",X:40,Y:120,W:40,H:40,Variant:0},{I:9,Type:"Wall",X:160,Y:120,W:120,H:40,Variant:0},{I:10,Type:"Wall",X:400,Y:120,W:40,H:40,Variant:0},{I:11,Type:"Wall",X:480,Y:120,W:40,H:40,Variant:0},{I:12,Type:"Wall",X:640,Y:120,W:120,H:40,Variant:0},{I:13,Type:"Wall",X:40,Y:160,W:80,H:40,Variant:0},{I:14,Type:"Wall",X:320,Y:160,W:40,H:40,Variant:0},{I:15,Type:"Wall",X:400,Y:160,W:40,H:40,Variant:0},{I:16,Type:"Wall",X:480,Y:160,W:40,H:40,Variant:0},{I:17,Type:"Wall",X:560,Y:160,W:120,H:40,Variant:0},{I:18,Type:"Wall",X:720,Y:160,W:40,H:40,Variant:0},{I:19,Type:"Wall",X:80,Y:200,W:280,H:40,Variant:0},{I:20,Type:"Wall",X:560,Y:200,W:40,H:40,Variant:0},{I:21,Type:"Wall",X:720,Y:200,W:40,H:40,Variant:0},{I:22,Type:"Wall",X:0,Y:240,W:40,H:40,Variant:0},{I:23,Type:"Wall",X:80,Y:240,W:40,H:40,Variant:0},{I:24,Type:"Wall",X:240,Y:240,W:40,H:40,Variant:0},{I:25,Type:"Wall",X:320,Y:240,W:280,H:40,Variant:0},{I:26,Type:"Wall",X:640,Y:240,W:120,H:40,Variant:0},{I:27,Type:"Wall",X:80,Y:280,W:120,H:40,Variant:0},{I:28,Type:"Wall",X:240,Y:280,W:40,H:40,Variant:0},{I:29,Type:"Wall",X:320,Y:280,W:40,H:40,Variant:0},{I:30,Type:"Wall",X:560,Y:280,W:40,H:40,Variant:0},{I:31,Type:"Wall",X:680,Y:280,W:80,H:40,Variant:0},{I:32,Type:"Wall",X:0,Y:320,W:120,H:40,Variant:0},{I:33,Type:"Wall",X:240,Y:320,W:40,H:40,Variant:0},{I:34,Type:"Wall",X:320,Y:320,W:40,H:40,Variant:0},{I:35,Type:"Wall",X:400,Y:320,W:240,H:40,Variant:0},{I:36,Type:"Wall",X:160,Y:360,W:120,H:40,Variant:0},{I:37,Type:"Wall",X:320,Y:360,W:40,H:40,Variant:0},{I:38,Type:"Wall",X:600,Y:360,W:120,H:40,Variant:0},{I:39,Type:"Wall",X:0,Y:400,W:120,H:40,Variant:0},{I:40,Type:"Wall",X:160,Y:400,W:40,H:40,Variant:0},{I:41,Type:"Wall",X:240,Y:400,W:40,H:40,Variant:0},{I:42,Type:"Wall",X:320,Y:400,W:240,H:40,Variant:0},{I:43,Type:"Wall",X:680,Y:400,W:80,H:40,Variant:0},{I:44,Type:"Wall",X:160,Y:440,W:40,H:40,Variant:0},{I:45,Type:"Wall",X:240,Y:440,W:40,H:40,Variant:0},{I:46,Type:"Wall",X:520,Y:440,W:40,H:40,Variant:0},{I:47,Type:"Wall",X:600,Y:440,W:40,H:40,Variant:0},{I:48,Type:"Wall",X:720,Y:440,W:40,H:40,Variant:0},{I:49,Type:"Wall",X:40,Y:480,W:160,H:40,Variant:0},{I:50,Type:"Wall",X:240,Y:480,W:160,H:40,Variant:0},{I:51,Type:"Wall",X:440,Y:480,W:40,H:40,Variant:0},{I:52,Type:"Wall",X:520,Y:480,W:40,H:40,Variant:0},{I:53,Type:"Wall",X:600,Y:480,W:40,H:40,Variant:0},{I:54,Type:"Wall",X:680,Y:480,W:80,H:40,Variant:0},{I:55,Type:"Wall",X:40,Y:520,W:40,H:40,Variant:0},{I:56,Type:"Wall",X:360,Y:520,W:40,H:40,Variant:0},{I:57,Type:"Wall",X:440,Y:520,W:40,H:40,Variant:0},{I:58,Type:"Wall",X:520,Y:520,W:40,H:40,Variant:0},{I:59,Type:"Wall",X:600,Y:520,W:40,H:40,Variant:0},{I:60,Type:"Wall",X:680,Y:520,W:40,H:40,Variant:0},{I:61,Type:"Wall",X:120,Y:560,W:200,H:40,Variant:0},{I:62,Type:"Wall",X:440,Y:560,W:40,H:40,Variant:0},{I:63,Type:"Wall",X:600,Y:560,W:40,H:40,Variant:0}],[],[][{I:28,Type:"Exit",X:700,Y:550,W:50,H:50,Variant:0}]]},PredefineLevels(),PredefineAlphabet=function(){J={Basic:{A:[[0,0,0,4],[0,4,2,4],[2,4,2,0],[0,2,2,2]],a:[[0,2,2,2],[2,2,2,0],[2,0,0,0],[0,0,0,1],[0,1,2,1]],B:[[0,0,0,4],[0,4,2,3],[2,3,2,1],[2,1,0,0],[0,2,2,2]],b:[[0,4,0,0],[0,0,2,0],[2,0,2,2],[2,2,0,2]],C:[[2,4,0,4],[0,4,0,0],[0,0,2,0]],c:[[2,2,0,2],[0,2,0,0],[0,0,2,0]],D:[[0,0,0,4],[0,4,2,3],[2,3,2,1],[2,1,0,0]],d:[[2,4,2,0],[2,0,0,0],[0,0,0,2],[0,2,2,2]],E:[[2,4,0,4],[0,4,0,0],[0,0,2,0],[0,2,2,2]],e:[[0,1,2,1],[2,1,2,2],[2,2,0,2],[0,2,0,0],[0,0,2,0]],F:[[2,4,0,4],[0,4,0,0],[0,2,1,2]],f:[[2,4,1,4],[1,4,1,0],[0,2,2,2]],G:[[2,4,0,4],[0,4,0,0],[0,0,2,0],[2,0,2,2],[1,2,2,2]],g:[[0,-2,2,-2],[2,-2,2,2],[2,2,0,2],[0,2,0,0],[0,0,2,0]],H:[[0,0,0,4],[0,2,2,2],[2,0,2,4]],h:[[0,4,0,0],[0,2,2,2],[2,2,2,0]],I:[[0,0,2,0],[0,4,2,4],[1,0,1,4]],i:[[1,0,0,0],[0,0,0,2]],J:[[0,4,2,4],[2,4,2,1],[2,1,1,0],[1,0,0,1]],j:[[0,-1,1,-2],[1,-2,2,-1],[2,-1,2,2]],K:[[0,0,0,4],[0,2,2,4],[0,2,2,0]],k:[[0,0,0,4],[0,1,2,2],[0,1,2,0]],L:[[0,4,0,0],[0,0,2,0]],l:[[0,4,0,0],[0,0,1,0]],M:[[0,0,0,4],[0,4,1,3],[1,3,2,4],[2,4,2,0]],m:[[0,0,0,2],[0,2,2,2],[2,2,2,0],[1,2,1,0]],N:[[0,0,0,4],[0,4,2,0],[2,0,2,4]],n:[[0,0,0,2],[0,2,2,2],[2,2,2,0]],O:[[0,0,2,0],[2,0,2,4],[2,4,0,4],[0,4,0,0]],o:[[0,0,2,0],[2,0,2,2],[2,2,0,2],[0,2,0,0]],P:[[0,0,0,4],[0,4,2,4],[2,4,2,2],[2,2,0,2]],p:[[0,-2,0,2],[0,2,2,2],[2,2,2,0],[2,0,0,0]],Q:[[0,0,2,0],[2,0,2,4],[2,4,0,4],[0,4,0,0],[1,1,3,-1]],q:[[2,-2,2,2],[2,2,0,2],[0,2,0,0],[0,0,2,0]],R:[[0,0,0,4],[0,4,2,3],[2,3,0,2],[0,2,2,0]],r:[[0,0,0,2],[0,2,2,2]],S:[[2,4,0,4],[0,4,0,2],[0,2,2,2],[2,2,2,0],[2,0,0,0]],s:[[2,2,0,2],[0,2,0,1],[0,1,2,1],[2,1,2,0],[2,0,0,0]],T:[[0,4,2,4],[1,4,1,0]],t:[[0,3,2,3],[1,4,1,0]],U:[[0,4,0,0],[0,0,2,0],[2,0,2,4]],u:[[0,2,0,0],[0,0,2,0],[2,0,2,2]],V:[[0,4,1,0],[1,0,2,4]],v:[[0,2,1,0],[1,0,2,2]],W:[[0,4,0,0],[0,0,1,2],[1,2,2,0],[2,0,2,4]],w:[[0,2,0,0],[0,0,1,1],[1,1,2,0],[2,0,2,2]],X:[[0,0,2,4],[0,4,2,0]],x:[[0,0,2,2],[0,2,2,0]],Y:[[0,4,1,2],[1,2,2,4],[1,2,1,0]],y:[[0,2,1,0],[2,2,0,-2]],Z:[[0,4,2,4],[2,4,0,0],[0,0,2,0]],z:[[0,2,2,2],[2,2,0,0],[0,0,2,0]],1:[[0,4,1,4],[1,4,1,0],[0,0,2,0]],2:[[2,4,0,4],[2,4,2,2],[0,2,2,2],[0,2,0,0],[2,0,0,0]],3:[[0,4,2,3],[2,3,2,1],[2,1,0,0],[0,2,2,2]],4:[[2,0,2,4],[2,4,0,2],[0,2,2,2]],5:[[2,4,0,4],[0,4,0,2],[0,2,2,2],[2,2,2,0],[2,0,0,0]],6:[[2,4,0,4],[0,4,0,0],[0,0,2,0],[2,0,2,2],[2,2,0,2]],7:[[0,4,2,4],[2,4,0,0]],8:[[0,0,2,0],[2,0,2,4],[2,4,0,4],[0,4,0,0],[0,2,2,2]],9:[[0,0,2,0],[2,0,2,4],[2,4,0,4],[0,4,0,2],[0,2,2,2]],0:[[0,0,2,0],[2,0,2,4],[2,4,0,4],[0,4,0,0],[0,0,2,4]],"!":[[0,0,0,1],[0,2,0,4]],"@":[[2,0,0,0],[0,0,0,4],[0,4,2,4],[2,4,2,1],[2,1,1,1],[1,1,1,3]],"#":[[.5,0,.5,4],[1.5,0,1.5,4],[0,1,2,1],[0,3,2,3]],$:[[2,4,0,4],[0,4,0,2],[0,2,2,2],[2,2,2,0],[2,0,0,0],[1,4.5,1,-.5]],"%":[[0,0,2,4],[1,0,2,0],[2,0,2,1],[2,1,1,1],[1,1,1,0],[0,3,1,3],[1,3,1,4],[1,4,0,4],[0,4,0,3]],"^":[[0,3,1,4],[1,4,2,3]],"&":[[0,1,2,1],[2,1,2,3],[2,3,0,3],[0,2,2,2],[1,0,1,4]],"*":[[0,1,2,3],[1,1,1,3],[2,1,0,3],[2,2,1,3]],"(":[[2,4,0,3],[0,3,0,1],[0,1,2,0]],")":[[0,4,2,3],[2,3,2,1],[2,1,0,0]],".":[[0,0,1,0],[1,0,1,1],[1,1,0,1],[0,1,0,0]],",":[[0,0,-1,-1]],"<":[[2,3,0,2],[0,2,2,1]],">":[[0,3,2,2],[2,2,0,1]],"/":[[0,0,2,4]],"\\":[[0,4,2,0]],"[":[[2,4,0,4],[0,4,0,0],[0,0,2,0]],"]":[[0,4,2,4],[2,4,2,0],[2,0,0,0]],"{":[[2,4,0,4],[0,4,0,0],[0,0,2,0],[-1,2,1,2]],"}":[[0,4,2,4],[2,4,2,0],[2,0,0,0],[1,2,3,2]],"-":[[0,2,2,2]],_:[[0,0,2,0]],":":[[1,0,1,1],[1,3,1,4]],";":[[1,0,0,-1],[1,3,1,4]],"'":[[1,3,1,4]],'"':[[.5,3,.5,4],[1.5,3,1.5,4]],"`":[[.5,4,1.5,3]],"~":[[0,1.5,.5,2.5],[.5,2.5,1.5,.5],[1.5,.5,2,1.5]],"|":[[1,0,1,4]],"?":[[0,4,2,4],[2,4,2,3],[2,3,0,3],[0,3,0,2],[0,2,2,2],[1,0,1,1]]," ":[[0,0,0,0]]}}},PredefineAlphabet(),CreateConnection=function(){function t(e){L[e].onopen=function(t){Z.WSBOpen(t,e)},L[e].onclose=function(t){Z.WSBClose(t,e)},L[e].onmessage=function(t){Z.WSBMessageSplitter(t,e)}}e=new WebSocket(ip);for(var a=0;a<C.Connections;a++){var n=a;L.push(new WebSocket(ip)),L[n].binaryType="arraybuffer",L[n].OBJ=[],L[n].CUR=[],L[n].DRA=[],L[n].CLI=[],L[n].X=400,L[n].Y=300,L[n].Level=-1,L[n].LocalPlayers=0,t(n)}e.binaryType="arraybuffer",e.onopen=Z.WSOpen,e.onmessage=Z.WSMessageSplitter,e.onclose=Z.WSClose},CreateConnection(),document.onkeydown=Z.Keypress,canvas.onmousemove=Z.Mouse,canvas.onmousedown=Z.Click,canvas.onmouseup=Z.Unclick,document.oncontextmenu=function(e){e.preventDefault(),C.Click.SpamClicking=!C.Click.SpamClicking,Z.Log(C.Click.SpamClicking?"Enabled spam clicking.":"Disabled spam clicking.")},le();


// this changes the font size, you can remove this part if you prefer smaller text. Or change "z" to whatever number you'd like. You can't change this in-game.

var z = 2;

// this is needed to update the font size

C.Fonts.Spacing=z*3,C.Fonts.Width=z,C.Fonts.Height=z;