SRL Archive - Research & Development Lounge

Obfuscator for Pascal-like scripts.


CynicRus

2013-02-15 06:47:18

Hey. Present to you the Obfuscator for scripts with pascal-like syntax(Pascal scripts, Lape, Fast script also can obfuscate Lazarus, Delphi code. If it code was simple). Now he can obfuscate unpretentious Pascal scripts, but does it quickly and generates truly unreadable code. It does not support OOP and has some drawbacks, though I doubt that he ever will grow into a serious project. Code is cross-platform and should easily compile in Linux. Actually this code I am sharing with the community.

Examples

Before:
 program new;

Procedure Twiddle();
var
i: integer;
TSA: TStringArray;
begin
TSA:=['|', '/', '-', '\'];
i:=0;
for i :=0 to length(TSA)-1 do
begin
ClearDebug;
WriteLn(TSA[i]);
Wait(100);
end;
end;
begin
repeat
Twiddle;
until(false);
end.

After:

program new;Procedure TAKTLWKvUIxbhXrNgxmGJWmRxVKrkt();var wzKBGiZZNmHHnQGOuSURiWBFQycmgpGDnsR:integer;qkYiYsYxBX:TStringArray;begin qkYiYsYxBX:=[#124,#47,#45,#92];wzKBGiZZNmHHnQGOuSURiWBFQycmgpGDnsR:=((((((((-1+(0*2+1)))))))));for wzKBGiZZNmHHnQGOuSURiWBFQycmgpGDnsR:=((((((((-1+(0*2+1)))))))))to length(qkYiYsYxBX)-((((((((0+(0*2+1)))))))))do begin ClearDebug;WriteLn(qkYiYsYxBX[wzKBGiZZNmHHnQGOuSURiWBFQycmgpGDnsR]);Wait(((((((((89+(5*2+1))))))))));end;end;begin repeat TAKTLWKvUIxbhXrNgxmGJWmRxVKrkt;until(false);end.

Before:

program TStack;
Type TElement = record//element in stack
color,dtm: integer;
end;
type TStack = record
elements: array of TElement;//elements in stack
size: Integer;//stack current size
end;
//Procedures for stack working
procedure stack_init(var st: TStack);
begin
st.size := 0;
end;

function stack_size(const st: TStack): Integer;
begin
result := st.size;
end;

function stack_empty(const st: TStack): Boolean;
begin
if (st.size = 0) then result:= true else result:=false;
end;

procedure stack_push(var st: TStack; const value: Telement);
begin
SetLength(st.elements,Length(st.elements)+1);
//move(value, st.elements[st.size], sizeof(value));
//WriteLn(ToStr(st.size));
// WriteLn(ToStr(length(st.elements)));
st.elements[st.size]:=value;
Inc(st.size);
end;

procedure stack_pop(var st: TStack; var value: Telement);
begin
if st.size > 0 then
begin
st.elements[st.size]:=value;
Dec(st.size);
end else WriteLn('Cannot pop element');
end;

//end working with stack
var
CustomStack: TStack;

Procedure Input(count: integer);
var
e: TElement;
i: Integer;
begin
for i:=1 to count do
begin
e.color:=random(10);
e.dtm:=random(20);
stack_push(CustomStack,e)
end;
end;
Procedure Output();
var
i: integer;
begin
WriteLn('Array stack realisation in SIMBA');
for i := 1 to CustomStack.size-1 do
begin
WriteLn('Element color field');
WriteLn(ToStr(CustomStack.elements[i].color));
WriteLn('Element dtm field');
WriteLn(ToStr(CustomStack.elements[i].dtm));
end;
end;


begin
stack_init(CustomStack);
input(5);
output;

end.

After:

program TStack;Type TElement=record color,dtm:integer;end;type TStack=record elements:array of TElement;size:Integer;end;procedure qkYiYsYxBX(var ShBvfFRxTXRUsXBPbbKNAuhFJccOZfRjZNPTS:TStack);begin ShBvfFRxTXRUsXBPbbKNAuhFJccOZfRjZNPTS.size:=(((((((((((-1+(1*1+0))))))))))));end;function TAKTLWKvUIxbhXrNgxmGJWmRxVKrkt(const ShBvfFRxTXRUsXBPbbKNAuhFJccOZfRjZNPTS:TStack):Integer;begin result:=ShBvfFRxTXRUsXBPbbKNAuhFJccOZfRjZNPTS.size;end;function wzKBGiZZNmHHnQGOuSURiWBFQycmgpGDnsR(const ShBvfFRxTXRUsXBPbbKNAuhFJccOZfRjZNPTS:TStack):Boolean;begin if(ShBvfFRxTXRUsXBPbbKNAuhFJccOZfRjZNPTS.size=(((((((((((-1+(1*1+0)))))))))))))then result:=true else result:=false;end;procedure bzYbXPyrNOIOpsluDjYzkRebUMByIsUoMIRf(var ShBvfFRxTXRUsXBPbbKNAuhFJccOZfRjZNPTS:TStack;const vsXizybMXfHWAbyyClA:Telement);begin SetLength(ShBvfFRxTXRUsXBPbbKNAuhFJccOZfRjZNPTS.elements,Length(ShBvfFRxTXRUsXBPbbKNAuhFJccOZfRjZNPTS.elements)+(((((((((((0+(1*1+0)))))))))))));ShBvfFRxTXRUsXBPbbKNAuhFJccOZfRjZNPTS.elements[ShBvfFRxTXRUsXBPbbKNAuhFJccOZfRjZNPTS.size]:=vsXizybMXfHWAbyyClA;Inc(ShBvfFRxTXRUsXBPbbKNAuhFJccOZfRjZNPTS.size);end;procedure nmdUokyOIjiGaBzOJqyUKOy(var ShBvfFRxTXRUsXBPbbKNAuhFJccOZfRjZNPTS:TStack;var vsXizybMXfHWAbyyClA:Telement);begin if ShBvfFRxTXRUsXBPbbKNAuhFJccOZfRjZNPTS.size>(((((((((((-1+(1*1+0))))))))))))then begin ShBvfFRxTXRUsXBPbbKNAuhFJccOZfRjZNPTS.elements[ShBvfFRxTXRUsXBPbbKNAuhFJccOZfRjZNPTS.size]:=vsXizybMXfHWAbyyClA;Dec(ShBvfFRxTXRUsXBPbbKNAuhFJccOZfRjZNPTS.size);end else WriteLn(#67#97#110#110#111#116#32#112#111#112#32#101#108#101#109#101#110#116);end;var YpWwLrDPmnOWYXAMnsnOCf:TStack;Procedure NZnQNeYbDwebgNuzhmuPjZcCrsPERLg_QCtCRtVgjqOKuIAKhg(count:integer);var wdFZjXxITk:TElement;QUqZjgvHZpPBnPmsGBdSZfjsBQmwAaovSzInsgpTHLD:Integer;begin for QUqZjgvHZpPBnPmsGBdSZfjsBQmwAaovSzInsgpTHLD:=(((((((((((0+(1*1+0))))))))))))to count do begin wdFZjXxITk.color:=random((((((((((((5+(5*1+0)))))))))))));wdFZjXxITk.dtm:=random((((((((((((11+(9*1+0)))))))))))));bzYbXPyrNOIOpsluDjYzkRebUMByIsUoMIRf(YpWwLrDPmnOWYXAMnsnOCf,wdFZjXxITk)end;end;Procedure cTEwoJzqiORg();var QUqZjgvHZpPBnPmsGBdSZfjsBQmwAaovSzInsgpTHLD:integer;begin WriteLn(#65#114#114#97#121#32#115#116#97#99#107#32#114#101#97#108#105#115#97#116#105#111#110#32#105#110#32#83#73#77#66#65);for QUqZjgvHZpPBnPmsGBdSZfjsBQmwAaovSzInsgpTHLD:=(((((((((((0+(1*1+0))))))))))))to YpWwLrDPmnOWYXAMnsnOCf.size-(((((((((((0+(1*1+0))))))))))))do begin WriteLn(#69#108#101#109#101#110#116#32#99#111#108#111#114#32#102#105#101#108#100);WriteLn(ToStr(YpWwLrDPmnOWYXAMnsnOCf.elements[QUqZjgvHZpPBnPmsGBdSZfjsBQmwAaovSzInsgpTHLD].color));WriteLn(#69#108#101#109#101#110#116#32#100#116#109#32#102#105#101#108#100);WriteLn(ToStr(YpWwLrDPmnOWYXAMnsnOCf.elements[QUqZjgvHZpPBnPmsGBdSZfjsBQmwAaovSzInsgpTHLD].dtm));end;end;begin qkYiYsYxBX(YpWwLrDPmnOWYXAMnsnOCf);NZnQNeYbDwebgNuzhmuPjZcCrsPERLg_QCtCRtVgjqOKuIAKhg((((((((((((2+(3*1+0)))))))))))));cTEwoJzqiORg;end.


Freepascal:

Before:

program setColors;
type
color = (red, blue, yellow, green, white, black, orange);
colors = set of color;

procedure displayColors(c : colors);
const
names : array [color] of String[7]
= ('red', 'blue', 'yellow', 'green', 'white', 'black', 'orange');
var
cl : color;
s : String;
begin
s:= ' ';
for cl:=red to orange do
if cl in c then
begin
if (s<>' ') then s :=s +' , ';
s:=s+names[cl];
end;
writeln('[',s,']');
end;

var
c : colors;

begin
c:= [red, blue, yellow, green, white, black, orange];
displayColors(c);

c:=[red, blue]+[yellow, green];
displayColors(c);

c:=[red, blue, yellow, green, white, black, orange] - [green, white];
displayColors(c);

c:= [red, blue, yellow, green, white, black, orange]*[green, white];
displayColors(c);

c:= [red, blue, yellow, green]><[yellow, green, white, black];
displayColors(c);
end.


After:

program setColors;type color=(red,blue,yellow,green,white,black,orange);colors=set of color;procedure TAKTLWKvUIxbhXrNgxmGJWmRxVKrkt(nmdUokyOIjiGaBzOJqyUKOy:colors);const wzKBGiZZNmHHnQGOuSURiWBFQycmgpGDnsR:array[color]of String[(((6+(1*1+0))))]=(#114#101#100,#98#108#117#101,#121#101#108#108#111#119,#103#114#101#101#110,#119#104#105#116#101,#98#108#97#99#107,#111#114#97#110#103#101);var qkYiYsYxBX:color;bzYbXPyrNOIOpsluDjYzkRebUMByIsUoMIRf:String;begin bzYbXPyrNOIOpsluDjYzkRebUMByIsUoMIRf:=#32;for qkYiYsYxBX:=red to orange do if qkYiYsYxBX in nmdUokyOIjiGaBzOJqyUKOy then begin if(bzYbXPyrNOIOpsluDjYzkRebUMByIsUoMIRf<>#32)then bzYbXPyrNOIOpsluDjYzkRebUMByIsUoMIRf:=bzYbXPyrNOIOpsluDjYzkRebUMByIsUoMIRf+#32#44#32;bzYbXPyrNOIOpsluDjYzkRebUMByIsUoMIRf:=bzYbXPyrNOIOpsluDjYzkRebUMByIsUoMIRf+wzKBGiZZNmHHnQGOuSURiWBFQycmgpGDnsR[qkYiYsYxBX];end;writeln(#91,bzYbXPyrNOIOpsluDjYzkRebUMByIsUoMIRf,#93);end;var nmdUokyOIjiGaBzOJqyUKOy:colors;begin nmdUokyOIjiGaBzOJqyUKOy:=[red,blue,yellow,green,white,black,orange];TAKTLWKvUIxbhXrNgxmGJWmRxVKrkt(nmdUokyOIjiGaBzOJqyUKOy);nmdUokyOIjiGaBzOJqyUKOy:=[red,blue]+[yellow,green];TAKTLWKvUIxbhXrNgxmGJWmRxVKrkt(nmdUokyOIjiGaBzOJqyUKOy);nmdUokyOIjiGaBzOJqyUKOy:=[red,blue,yellow,green,white,black,orange]-[green,white];TAKTLWKvUIxbhXrNgxmGJWmRxVKrkt(nmdUokyOIjiGaBzOJqyUKOy);nmdUokyOIjiGaBzOJqyUKOy:=[red,blue,yellow,green,white,black,orange]*[green,white];TAKTLWKvUIxbhXrNgxmGJWmRxVKrkt(nmdUokyOIjiGaBzOJqyUKOy);nmdUokyOIjiGaBzOJqyUKOy:=[red,blue,yellow,green]><[yellow,green,white,black];TAKTLWKvUIxbhXrNgxmGJWmRxVKrkt(nmdUokyOIjiGaBzOJqyUKOy);end.

Fresh source code can always be found here: https://github.com/CynicRus/Obfuscator

For compile you need Lazarus 1.0.4 or Greather and FPC 2.0.6

Thanks for you attention!

Cheers,
Cynic!

PS: For those who can not compile their own - see in attachment.

Justin

2013-02-15 06:48:38

Wow amazing work, keep it up :)

Sirenia

2013-02-15 12:47:38

I think this should only be used by people who turn to the darkside and sell scripts, I learned almost everything I know from observing others code.

Kevin

2013-02-15 13:11:00

I agree with Sirenia. I'd probably never use an obfuscated script simply because I couldn't read it and tell for sure if it was working or not - not to mention I'd never be able to debug it or fix anything that breaks.

But if someone were to go about selling a script then that's their business to obfuscate whatever they want. Personal preferences I suppose.

CynicRus

2013-02-15 13:18:17

This is natural, obfuscated code can not be spread in the public.

Chris

2013-02-15 13:51:05

Nice work!
Though the obfuscated code doesn't compile for one of my scripts, because of this:
Result:=;

CynicRus

2013-02-15 14:04:17

From: Chris
Nice work!
Though the obfuscated code doesn't compile for one of my scripts, because of this:
Result:=;


Weird, show the problem code.

Justin

2013-02-15 17:29:58

Just tried to compile a test script of around 1,000 lines, but the program was just hanging after I clicked on Obfuscate :\

Echo_

2013-02-15 17:49:54

This is wierd, the past couple days I've been writing a Pascal obfuscator in Clojure just for fun

CynicRus

2013-02-16 03:01:33

From: Echo_
This is wierd, the past couple days I've been writing a Pascal obfuscator in Clojure just for fun


I wrote this on Lazarus for the same reasons:p

tealc

2013-02-16 05:30:17

How is it truly unreadable? It still looks easy enough to figure out.

CynicRus

2013-02-16 06:16:57

From: bob_saget
How is it truly unreadable? It still looks easy enough to figure out.


Well, I wish you success in the reading of the code-)

Benny

2013-02-16 06:22:08

From: CynicRus
Well, I wish you success in the reading of the code-)


Looks impressive! could this provide the reverse of deobfuscating it?

CynicRus

2013-02-16 06:29:24

From: Benny
Looks impressive! could this provide the reverse of deobfuscating it?

Hardly. Is that the only return the formatting.

tristen8878

2013-02-16 08:59:21

Very nice work I like to read through people scripts but would this be good to stop jagex trying to see how the bots works?

Also what is this useful for?

Olly

2013-02-16 11:38:17

From: tristen8878
Very nice work I like to read through people scripts but would this be good to stop jagex trying to see how the bots works?

Also what is this useful for?


You wont see any obfuscated public scripts.

CynicRus

2013-02-16 12:08:22

Obfuscation should be used only for personal purposes. And obfuscated scripts should not disclose to the community.

inferno

2013-02-16 15:18:00

From: CynicRus
From: bob_saget
How is it truly unreadable? It still looks easy enough to figure out.

Well, I wish you success in the reading of the code-)


As bob_saget says, it would still be pretty easy to reverse the obfuscation. From the looks of it, it removes unneeded white space, renames variables/procedure names, adds in excess parentheses, substitutes numbers for equations and replaces characters in strings for their respective ascii codes.

Still, it certainly does make it less readable and may well dissuade people from taking your code due to the effort needed to reverse it. Nice work.

CynicRus

2013-02-17 09:59:27

Version 0.2 released.

Fixed bugs:
1) Bug with empty string has been fixed now
2) Bug with string converting fixed;
3) Add forward directive support;

Example script:

Before:

program new;
function MyStr():string; forward;
procedure mat();
begin
MyStr;
end;

function MyStr():string;
var
s: string;
begin
s:='MyString';
result:='';
end;

begin
Mat;
end.

After:

program new;function TAKTLWKvUIxbhXrNgxmGJWmRxVKrkt():string;forward;procedure qkYiYsYxBX();begin TAKTLWKvUIxbhXrNgxmGJWmRxVKrkt;end;function TAKTLWKvUIxbhXrNgxmGJWmRxVKrkt():string;var bzYbXPyrNOIOpsluDjYzkRebUMByIsUoMIRf:string;begin bzYbXPyrNOIOpsluDjYzkRebUMByIsUoMIRf:=#77#121#83#116#114#105#110#103;result:='';end;begin qkYiYsYxBX;end.

CynicRus

2013-02-18 04:03:47

Version 0.2.1 has been released now.

Fixes:
1) Fully string values fixes.
2) Long lines has been fixes now(in DTMFromStr, BitmapFromStr);

A lot of minor fixes.

CynicRus

2013-02-19 02:02:54

Version 0.2.2 has been released now.

Fixed an bug with the definition of a class method or type property as variable.

Example:


program new;

var
pt: TPoint;
x,y: integer;
begin
pt.x:=x;
pt.y:=y;
end.

after:

program new;var TAKTLWKvUIxbhXrNgxmGJWmRxVKrkt:TPoint;wzKBGiZZNmHHnQGOuSURiWBFQycmgpGDnsR,qkYiYsYxBX:integer;begin TAKTLWKvUIxbhXrNgxmGJWmRxVKrkt.x:=wzKBGiZZNmHHnQGOuSURiWBFQycmgpGDnsR;TAKTLWKvUIxbhXrNgxmGJWmRxVKrkt.y:=qkYiYsYxBX;end.

after formatting:

program new;

var
TAKTLWKvUIxbhXrNgxmGJWmRxVKrkt: TPoint;
wzKBGiZZNmHHnQGOuSURiWBFQycmgpGDnsR, qkYiYsYxBX: integer;
begin
TAKTLWKvUIxbhXrNgxmGJWmRxVKrkt.x := wzKBGiZZNmHHnQGOuSURiWBFQycmgpGDnsR;
TAKTLWKvUIxbhXrNgxmGJWmRxVKrkt.y := qkYiYsYxBX;
end.

CynicRus

2013-02-19 06:03:43

If you mess up the code, and it does not compile - obfuscate it again, as shown by tests obfuscation large scripts is not successful on the first attempt. Also just try to format the code using a formatter by Nielsie95 and show me the problem area code (original and obfuscate version)

PS: Construction with do end; is not supported now:(

Example:
before:

program ArdougneGuard;
//code generated with Custom path generator for SPS by Cynic
{$DEFINE SMART8}
{$DEFINE SRL5}
{$i srl\srl.simba}
{$i SPS\SPS.simba}
{$IFDEF SMART}
{$i SRL/SRL/Misc/SmartGraphics.Simba}
{$ENDIF}

type TObjects = record
Name : String;
UpText : TStringArray;
Color : Integer;
Hue : Extended;
Sat : Extended;
Tol : Integer;
end;

const
SmartDrawing = true;
HowManyFood = 15;
MinHP = 300;
Break_In = 35;
Break_For = 10;
R_Break_In = 5;
R_Break_For = 2;
var
//place your variables here
Status: string;
TotalSucc,TotalUnsuc,TotalAttempts,TotalB,Food,FoodHeals,FoodLeft,StartXP,StartTime,startMoney: integer;
BreakRounds, TotalBreaks,Start,PlayerBreaked: integer;
RBI, RBF, BI, BF: integer;
Banker,Guard: TObjects;

procedure DeclarePlayers;
begin
HowManyPlayers:=1;
NumberOfPlayers(HowManyPlayers);
CurrentPlayer:=0;
with Players[0] do
begin
Name:='';
Pass:='';
LampSkill:=SKILL_THIEVING;
Pin:='';
Active:=true;
end;
end;

{******************************************************************************
function BreakHandler(Break_In, Break_For, R_Break_In, R_Break_For: Integer): Boolean;
By: Echo_
Edited by: Jakkle.
Description: Takes brakes according to the minute values entered.
*******************************************************************************}
function BreakHandler(Break_In, Break_For, R_Break_In, R_Break_For: Integer): Boolean;
var
h, m, s,
TheBTime, StartBTime, WorkedFor: integer;
begin
if not LoggedIn then Exit;
if (Break_In < 1) then Exit;

if (HowManyPlayers = 1) then
begin
if (GetTimeRunning < ((BI) + (RBI) + BreakRounds)) then Exit
else
if (GetTimeRunning > ((BI) + (RBI) + BreakRounds)) then
begin
TheBTime := (BF + RBF);
WorkedFor := (BI + RBI)
Writeln('Taking a break for about ' + IntToStr((TheBTime) / 60000) + ' minutes.');
Logout;
MarkTime(StartBTime);
repeat
ConvertTime(((BF + RBF) - TimeFromMark(StartBTime)), h, m, s);
ClearDebug;
Writeln('Breaktime left: ' + IntToStr(h) + ':' + IntToStr(m) + ':' + IntToStr(s));
Wait(990);
until(TimeFromMark(StartBTime)>=(TheBTime));
Writeln('Break time over.');
Writeln('Logging in.');
LoginPlayer;
Result := LoggedIn;
MarkTime(Start);
FindNormalRandoms;
IncEx(BreakRounds, (WorkedFor + TheBTime));
IncEx(PlayerBreaked, (TheBTime / 60000));
IncEx(TotalBreaks, 1);
Writeln('The next break will occur in about ' + IntToStr(Break_In) + ' minutes.');
end;
end;
end;

procedure FillObjects;
begin
if (not LoggedIn) then
Exit;
with Guard do
begin
Name := 'Guard';
UpText := ['Guard','uard','uar'];
Color := 6498078;
Hue := 0.1;
Sat := 0.2;
Tol := 6;
end;

with Banker do
begin
Name := 'Banker';
UpText := ['Banker', 'anker', 'anke'];
Color := 4877190;
Hue := 0.5;
Sat := 0.91;
Tol := 4;
end;
end;

procedure Antiban;
begin
FindNormalRandoms;
if (not LoggedIn) then
Exit;
case Random(200) of
150..155:
begin
GameTab(RandomRange(tab_Combat, tab_Logout));
Wait(1500 + Random(1000));
end;
110..112: PickUpMouse;
70..80:
begin
HoverSkill('Random', FALSE);
Wait(1500 + Random(1000));
end;
1..40: SleepAndMoveMouse(1000 + Random(500));
end;
end;

procedure LoadFood;
begin
Food := DTMFromString('mggAAAHicY2NgYPjPxMDAzczAwMcMYX8E4p9ALMbIwMAKxNxArMAI4fMC8f4EGaAuJgwsAiSxYUYcGAIAcgoGSA==');
FoodHeals := 12;
end;


procedure ProgressReport;
var
CurrXp: integer;
XPGained: integer;
XPHour: integer;
TimeRun: integer;
money: integer;
begin
CurrXP:=GetXPBarTotal;
XPGained:=CurrXP - StartXP;
money := TotalSucc*30;
XPHour:= (3600*XPGained) / ((Getsystemtime-StartTime)/1000);
WriteLn(' ');
WriteLn('<============== - Report ===============>');
writeln('Worked for '+ TimeRunning);
writeln('Attempts '+ IntToStr(TotalAttempts));
writeln('Successfully '+ IntToStr(TotalSucc));
writeln('Unsuccessfully '+ IntToStr(TotalUnsuc));
writeln('Banked '+ IntToStr(TotalB)+ ' Times');
writeln('XP Gain '+ ToStr(XPGained));
writeln('XP Hour '+ ToStr(XPHour));
writeln('Money Gain '+ ToStr(Money));
Writeln(' ');
end;

function FindBanker: Boolean;
var
CTS: Integer;
TheArray: TPointArray;
begin
FindNormalRandoms;
if (not LoggedIn) or (BankScreen) then
Exit;
Result := False;
CTS := GetColorToleranceSpeed;
ColorToleranceSpeed(2);
SetColorSpeed2Modifiers(Banker.Hue, Banker.Sat);
FindColorsSpiralTolerance(MSCX, MSCY, TheArray, Banker.Color, MSX1, MSY1, MSX2, MSY2, Banker.Tol);
{$IFDEF SMART}
if (SmartDrawing) then
begin
SMART_DrawDots(TheArray);
end;
{$ENDIF}
if (Length(TheArray) >= 10) then
Result := True;
ColorToleranceSpeed(CTS);
SetColorSpeed2Modifiers(0.2, 0.2);
end;

function ClickBanker: Boolean;
var
CTS, HBT, x, y, i: Integer;
TheArray: TPointArray;
MSPoint: TPoint;
BankATPA: T2DPointArray;
Bounds: TBox;
begin
FindNormalRandoms;
if (not LoggedIn) or (not FindBanker) or (BankScreen) then
Exit;

Result := False;
CTS := GetColorToleranceSpeed;
ColorToleranceSpeed(2);
SetColorSpeed2Modifiers(Banker.Hue, Banker.Sat);
FindColorsSpiralTolerance(MSCX, MSCY, TheArray, Banker.Color, MSX1, MSY1, MSX2, MSY2, Banker.Tol);
if (Length(TheArray) < 10) then
begin
Writeln('Did not find enough ' + Banker.Name + ' colours.');
ColorToleranceSpeed(CTS);
SetColorSpeed2Modifiers(0.2, 0.2);
Exit;
end;
{$IFDEF SMART}
if (SmartDrawing) then
begin
SMART_DrawDots(TheArray);
end;
{$ENDIF}
SortTPAFrom(TheArray, Point(MSCX, MSCY));
BankATPA := TPAToATPAEx(TheArray, 20, 50);
SortATPAFromSize(BankATPA, 100, True);
HBT := High(BankATPA);
for i := 0 to HBT do
begin
Bounds := GetTPABounds(BankATPA[i])
{$IFDEF SMART}
if (SmartDrawing) then
begin
SMART_DrawBox(Bounds);
end;
{$ENDIF}
MSPoint := MiddleTPA(BankATPA[i]);
MMouse(MSPoint.x, MSPoint.y, 2, 2);
if (WaitUpTextMulti(Banker.UpText, 1000)) then
begin
GetMousePos(x, y);
Mouse(x, y, 0, 0, False);
if (WaitOption('Bank Bank', 1000)) then
begin
Writeln('Clicked banker');
{$IFDEF SMART}
if (SmartDrawing) then
begin
SMART_ClearCanvas;
end;
{$ENDIF}
ColorToleranceSpeed(CTS);
SetColorSpeed2Modifiers(0.2, 0.2);
Result := True;
Exit;
end;
end;
end;
ColorToleranceSpeed(CTS);
SetColorSpeed2Modifiers(0.2, 0.2);
end;

function FindGuard: Boolean;
var
CTS: Integer;
TheArray: TPointArray;
begin
if (not LoggedIn) then
Exit;
SleepAndMoveMouse(1000 + Random(500));
FindNormalRandoms;
Result := False;
CTS := GetColorToleranceSpeed;
ColorToleranceSpeed(2);
SetColorSpeed2Modifiers(Guard.Hue, Guard.Sat);
FindColorsSpiralTolerance(MSCX, MSCY, TheArray, Guard.Color, MSX1, MSY1, MSX2, MSY2, Guard.Tol);
{$IFDEF SMART}
if (SmartDrawing) then
begin
SMART_DrawDots(TheArray);
end;
{$ENDIF}
if (Length(TheArray) >= 20) then
Result := True;
ColorToleranceSpeed(CTS);
SetColorSpeed2Modifiers(0.2, 0.2);
end;

Function ClickGuard: boolean;
var
HP, CTS, x, y, i: Integer;
TheArray: TPointArray;
MSPoint: TPoint;
GuardATPA: T2DPointArray;
Bounds: TBox;
begin
if (not LoggedIn) then
Exit;
CTS := GetColorToleranceSpeed;
FindNormalRandoms;
Result := False;
ColorToleranceSpeed(2);
SetColorSpeed2Modifiers(Guard.Hue, Guard.Sat);
FindColorsSpiralTolerance(MSCX, MSCY, TheArray, Guard.Color, MSX1, MSY1, MSX2, MSY2, Guard.Tol);
if (Length(TheArray) < 10) then
begin
Writeln('Failed to find the color, no result.');
ColorToleranceSpeed(CTS);
SetColorSpeed2Modifiers(0.2, 0.2);
Exit;
end;
{$IFDEF SMART}
if (SmartDrawing) then
begin
SMART_DrawDots(TheArray);
end;
{$ENDIF}
SortTPAFrom(TheArray, Point(MSCX, MSCY));
GuardATPA := TPAToATPAEx(TheArray, 50, 50);
SortATPAFromSize(GuardATPA, 100, True);
HP := High(GuardATPA)
for i := 0 to HP do
begin
Bounds := GetTPABounds(GuardATPA[i])
{$IFDEF SMART}
if (SmartDrawing) then
begin

SMART_ClearCanvas;
SMART_DrawBox(Bounds);
end;
{$ENDIF}
MSPoint := MiddleTPA(GuardATPA[i]);
MMouse(MSPoint.x, MSPoint.y, 10, 10);
if (WaitUpTextMulti(Guard.UpText, 1000)) then
begin
GetMousePos(x, y);
Mouse(x,y,0,0,false);
if ChooseOption('Pick') then
begin
Wait(RandomRange(500,1000));
if pos('stunned', GetBlackChatMessage) <> 0 then
begin
Wait(RandomRange(1500,2000));
Inc(TotalUnsuc);
inc(TotalAttempts);
end;
if pos('coins', GetBlackChatMessage) <> 0 then
begin
Wait(RandomRange(1500,2000));
Inc(TotalSucc);
inc(TotalAttempts);
end;
SPS_BlindWalk(Point(241,270));
// Writeln('yes!');
end;
if (DidRedClick) then
begin
{$IFDEF SMART}
if (SmartDrawing) then
begin
SMART_ClearCanvas;
end;
{$ENDIF}
Result := True;
Exit;
end;
end;
end;
ColorToleranceSpeed(CTS);
SetColorSpeed2Modifiers(0.2, 0.2);
end;
procedure ToBank;
var
ToBankPath: TPointArray;
begin
ToBankPath:=[Point(259,244),Point(252,252),Point(246,258),Point(245,266),Point(230,277),Point(217,293),Point(212,301),Point(199,311),Point(191,321),Point(183,326),Point(172,335),Point(156,343),Point(146,350),Point(147,361),Point(151,369),Point(164,370),Point(178,371),Point(190,370),Point(199,364)];
if SPS_WalkPath(ToBankPath) then
Status := 'ToBank'
else begin
Status :='Failed ToBank';
WriteLn(status + '#Time Running:' +TimeRunning);
Logout;
TerminateScript;
end;
WriteLn(status + '#Time Running:' +TimeRunning);
end;

procedure OutBank;
var
OutBankPath: TPointArray;
begin
OutBankPath:=[Point(199,364),Point(194,367),Point(181,371),Point(170,371),Point(159,371),Point(152,371),Point(148,354),Point(151,340),Point(161,334),Point(170,328),Point(180,326),Point(190,320),Point(199,310),Point(208,304),Point(212,298),Point(221,287),Point(232,277),Point(241,270)];
ClickNorth(SRL_ANGLE_HIGH);
if SPS_WalkPath(OutBankPath) then
Status := 'OutBank'
else begin
Status :='Failed OutBank';
WriteLn(status + '#Time Running:' +TimeRunning);
Logout;
TerminateScript;
end;
WriteLn(status + '#Time Running:' +TimeRunning);
end;
procedure Bank;
var
PinTries, Tries, WithdrawTries, EmptyCount, FindBankTries,Dx,Dy: Integer;
begin
FindNormalRandoms;
if (not LoggedIn) then
Exit;
PinTries := 0;
Tries := 0;
FindBankTries := 0;
if (FindBanker) then
repeat
Wait(RandomRange(1500, 2000));
if (not FindBanker) then
Break;
Writeln('Found banker.');
Writeln('Click the banker.');
if (ClickBanker) then
begin
repeat
while (IsMoving) do
Wait(100);
if (BankScreen) then
Break;
FindNormalRandoms;
if (not LoggedIn) then
Exit;
if (PinScreen) then
begin
InPin(Players[CurrentPlayer].Pin);
Inc(PinTries);
Writeln('Tried bank pin ' + inttostr(PinTries) + ' times.');
end;
Writeln('Pin screen not found.');
until (BankScreen) Or (PinTries > 3);
end;
if (BankScreen) then
Break;
if (PinTries > 3) then
begin
Writeln('Tried bank pin ' + inttostr(PinTries) + ' times but its not working, logging out.');
NextPlayer(False);
Exit;
end;
Inc(Tries);
Writeln('Tried clicking banker ' + inttostr(Tries) + ' times.');
until (Tries > 10);
Wait(300 + Random(200));
FindNormalRandoms;
if (Tries > 10) then
begin
Writeln('Could not click the banker, logging out.');
NextPlayer(False);
Exit;
end;
if (BankScreen) then
begin
Wait(100 + Random(100));
Wait(200 + Random(300));
DepositAll;
Wait(200 + Random(500));
if FindDTM(food, Dx, Dy, MBX1, MBY1, MBX2, MBY2) then
begin
Mouse(Dx, Dy, 4, 4, False);
if ChooseOption('X') then
begin
Wait(1000+random(500));
TypeSend(IntToStr((HowManyFood - 1 ) + Random(2)));
end;
end;
case Random(10) of
0..3 : CloseWindow;
end;
FindNormalRandoms;
Inc(TotalB);
end;
OutBank;
end;

Function HaveFood(): Boolean;
var Dx, Dy:integer;
begin
GameTab(tab_Inv);
FoodLeft := CountItems('dtm', Food, []);
if FindDTM(food, Dx, Dy, MIX1, MIY1, MIX2, MIY2) then
begin
Result := True;
end
end;

function EatLob: Boolean;
var
lx,ly: Integer;
Dx,Dy: integer;
begin
if not (GetCurrentTab = tab_Inv) then
GameTab(tab_Inv);
if FindDTM(food, Dx, Dy, MIX1, MIY1, MIX2, MIY2) then
begin
MultiMouse(Dx,Dy,80,2,true);
// writeln('Lobster Found');
Result := True;
end
else
begin
Result := False;
end;
end;

procedure SetupWalker;
begin
SRL_SIXHOURFIX := TRUE;
SMART_FIXSPEED := TRUE;
SetupSRL;
DeclarePlayers;
LoginPlayer;
Wait(888+ Random(147));
ClickNorth(SRL_ANGLE_HIGH);
SPS_Setup(RUNESCAPE_OTHER,['ArdougneSteal']);
ToggleXPBar(True);
ToggleMoneyPouch(True);
StartXP := getXPBarTotal;
MarkTime(StartTime);
startMoney:=GetMoneyPouchAmount;
end;


Function CheckAndRestoreHealth: Boolean;
var
MM_HP,SC_HP:integer;
HPColor: String;
begin
Result := True;
GameTab(tab_Inv);
SC_HP:= GetMMLevels('hp', HPColor);
if SC_HP < MinHP then
if not EatLob then Result := False;
WriteLn(toStr(SC_HP));

end;
Procedure MainLoop;
begin
FindNormalRandoms;
if (not LoggedIn) then
LoginPlayer;

Wait(200);
BreakRounds := 0;
begin
MakeCompass('N');
SetAngle(0);
MarkTime(Start);
repeat
begin
if (TimeFromMark(Start) < 2000) then
begin
BI := (Break_In * 60000);
BF := (Break_For * 60000);
RBI := RandomRange(-R_Break_In * 60000, R_Break_In * 60000);
RBF := RandomRange(-R_Break_For * 60000, R_Break_For * 60000);
end;
Writeln('Taking a break in (' + IntToStr(((BI + RBI) - TimeFromMark(Start)) / 60000) + ' Mins)');
end;
repeat
AntiBan;
if (not HaveFood) then
begin
ClickNorth(SRL_ANGLE_HIGH);
toBank;
FindBanker;
ClickBanker;
Bank;
end else
begin
FindGuard;
ClickGuard;
CheckAndRestoreHealth;
WriteLn(toStr(HPPercent));
end;
ProgressReport;
BreakHandler(Break_In, Break_For, R_Break_In, R_Break_For);
Until (Not LoggedIn);
if (not LoggedIn) then
LoginPlayer;
until(AllPlayersInActive);
end;
end;

begin
SetupWalker;
LoadFood;
FillObjects;
MainLoop;
end.


after:

program
ArdougneGuard;{$DEFINE SMART8}{$DEFINE SRL5}{$i srl\srl.simba}{$i SPS\SPS.simba}{$IFDEF SMART}{$i SRL/SRL/Misc/SmartGraphics.Simba}{$ENDIF}type
TObjects=record
Name:String;UpText:TStringArray;Color:Integer;Hue:Extended;Sat:Extended;Tol:Integer;end;const
KpaiomulSVwFDDtXstDESReBshhdOyr=true;EVqO=(((((((((((((((((((((((((((((((((4+(2*5+1))))))))))))))))))))))))))))))))));GMgATprQmRNGZYksBndZB_VAHmUAZ_hKKaYFqNlLiGM=(((((((((((((((((((((((((((((((((85+(43*5+0))))))))))))))))))))))))))))))))));mD_qUgzcivJhacQusNycLRNlBGCcGzkcthcGdVikeBSqqWFjiZt=(((((((((((((((((((((((((((((((((9+(5*5+1))))))))))))))))))))))))))))))))));tOOHfvvDEJLxSygf=(((((((((((((((((((((((((((((((((2+(1*5+3))))))))))))))))))))))))))))))))));TemhmfnnQP=(((((((((((((((((((((((((((((((((1+(0*5+4))))))))))))))))))))))))))))))))));PLhvxJp_GtrIPaGKGPfpzrTqg=(((((((((((((((((((((((((((((((((0+(0*5+2))))))))))))))))))))))))))))))))));var
ziaGnVeAH_tnQZjmRcBpImwGvEQoWiPIgWukxiBopuXRWt:string;CZtnHSZctXvPmARkAFwUSdFoq,jBdn_TBLEnyBYRLJoCMJtoyUUcBrVvbfSKDwjBulbl,qWpKcWVPyYByZtnektddYK,QqQvI,WfwsRfF,zq_uMYdNzM,cjoKUH,UMzrjGHhrdPOxfUOVQLv_EvhJAD,bzNJzVceDdblVJfMxNPXXhu,dfdymBXdlPxrCSuZUgixzzkDPdHp_bhjZKldD_EVaUELQVlDwAi:integer;uMAbArYhOobvPuxYyxBXrNwWNgiTfXscRENggnNcwfX_AjgzXQ,DUkkC,LoeXfkbXyQlQDxPWYBAXaOlUOEZgWigLwUAhqnzwWECzt_cowv,CYqgNsPuyRhPWOSBxqdI:integer;TNTKNCqOPbJPQIkwGCyWbMQxP,tndJcWUXXZYkicNWZY_xCWWuCPJhNeCuwypjxfBEhC,RZTbdCRoiOk,UtzPCfZebrQrmCpDbXpOAWQjj:integer;qzTnIxqNNpOkhParVYjmchUdXQvzVnTkvNTilyIlITJIccwMMlb,VUOJgNEXBFuAgktiFrwdivfQZFpBvukyRTVDVK:TObjects;procedure
_WBdIxvYYmwnhAIhhxYDvZiyhtRlTERwINI;begin
HowManyPlayers:=(((((((((((((((((((((((((((((((((0+(0*5+1))))))))))))))))))))))))))))))))));NumberOfPlayers(HowManyPlayers);CurrentPlayer:=(((((((((((((((((((((((((((((((((-1+(0*5+1))))))))))))))))))))))))))))))))));with
Players[(((((((((((((((((((((((((((((((((-1+(0*5+1))))))))))))))))))))))))))))))))))]do
begin
Name:='';Pass:='';LampSkill:=SKILL_THIEVING;Pin:='';Active:=true;end;end;function
TAKTLWKvUIxbhXrNgxmGJWmRxVKrkt(mD_qUgzcivJhacQusNycLRNlBGCcGzkcthcGdVikeBSqqWFjiZt,tOOHfvvDEJLxSygf,TemhmfnnQP,PLhvxJp_GtrIPaGKGPfpzrTqg:Integer):Boolean;var
VTMXcG,siFPaIXLqyt_YRxdyoMLXr,nmumn_NNvyLeumgnc,crOulLAcUxcwvzY,rUJCIOSkWjyKcGcgkAwEDcyWYtAOUwBXyPL,wqWVcBQHzMalwKQFKSzUsjtWtgsqywgirQrsLzoeECFZnX:integer;begin
if
not
LoggedIn
then
Exit;if(mD_qUgzcivJhacQusNycLRNlBGCcGzkcthcGdVikeBSqqWFjiZt<(((((((((((((((((((((((((((((((((0+(0*5+1)))))))))))))))))))))))))))))))))))then
Exit;if(HowManyPlayers=(((((((((((((((((((((((((((((((((0+(0*5+1)))))))))))))))))))))))))))))))))))then
begin
if(GetTimeRunning<((RZTbdCRoiOk)+(TNTKNCqOPbJPQIkwGCyWbMQxP)+uMAbArYhOobvPuxYyxBXrNwWNgiTfXscRENggnNcwfX_AjgzXQ))then
Exit
else
if(GetTimeRunning>((RZTbdCRoiOk)+(TNTKNCqOPbJPQIkwGCyWbMQxP)+uMAbArYhOobvPuxYyxBXrNwWNgiTfXscRENggnNcwfX_AjgzXQ))then
begin
crOulLAcUxcwvzY:=(UtzPCfZebrQrmCpDbXpOAWQjj+tndJcWUXXZYkicNWZY_xCWWuCPJhNeCuwypjxfBEhC);wqWVcBQHzMalwKQFKSzUsjtWtgsqywgirQrsLzoeECFZnX:=(RZTbdCRoiOk+TNTKNCqOPbJPQIkwGCyWbMQxP)Writeln(#84#97#107#105#110#103#32#97#32#98#114#101#97#107#32#102#111#114#32#97#98#111#117#116#32+IntToStr((crOulLAcUxcwvzY)/(((((((((((((((((((((((((((((((((17092+(8581*5+3)))))))))))))))))))))))))))))))))))+#32#109#105#110#117#116#101#115#46);Logout;MarkTime(rUJCIOSkWjyKcGcgkAwEDcyWYtAOUwBXyPL);repeat
ConvertTime(((UtzPCfZebrQrmCpDbXpOAWQjj+tndJcWUXXZYkicNWZY_xCWWuCPJhNeCuwypjxfBEhC)-TimeFromMark(rUJCIOSkWjyKcGcgkAwEDcyWYtAOUwBXyPL)),VTMXcG,siFPaIXLqyt_YRxdyoMLXr,nmumn_NNvyLeumgnc);ClearDebug;Writeln(#66#114#101#97#107#116#105#109#101#32#108#101#102#116#58#32+IntToStr(VTMXcG)+#58+IntToStr(siFPaIXLqyt_YRxdyoMLXr)+#58+IntToStr(nmumn_NNvyLeumgnc));Wait((((((((((((((((((((((((((((((((((282+(141*5+3)))))))))))))))))))))))))))))))))));until(TimeFromMark(rUJCIOSkWjyKcGcgkAwEDcyWYtAOUwBXyPL)>=(crOulLAcUxcwvzY));Writeln(#66#114#101#97#107#32#116#105#109#101#32#111#118#101#114#46);Writeln(#76#111#103#103#105#110#103#32#105#110#46);LoginPlayer;Result:=LoggedIn;MarkTime(LoeXfkbXyQlQDxPWYBAXaOlUOEZgWigLwUAhqnzwWECzt_cowv);FindNormalRandoms;IncEx(uMAbArYhOobvPuxYyxBXrNwWNgiTfXscRENggnNcwfX_AjgzXQ,(wqWVcBQHzMalwKQFKSzUsjtWtgsqywgirQrsLzoeECFZnX+crOulLAcUxcwvzY));IncEx(CYqgNsPuyRhPWOSBxqdI,(crOulLAcUxcwvzY/(((((((((((((((((((((((((((((((((17092+(8581*5+3))))))))))))))))))))))))))))))))))));IncEx(DUkkC,(((((((((((((((((((((((((((((((((0+(0*5+1)))))))))))))))))))))))))))))))))));Writeln(#84#104#101#32#110#101#120#116#32#98#114#101#97#107#32#119#105#108#108#32#111#99#99#117#114#32#105#110#32#97#98#111#117#116#32+IntToStr(mD_qUgzcivJhacQusNycLRNlBGCcGzkcthcGdVikeBSqqWFjiZt)+#32#109#105#110#117#116#101#115#46);end;end;end;procedure
vsXizybMXfHWAbyyClA;begin
if(not
LoggedIn)then
Exit;with
VUOJgNEXBFuAgktiFrwdivfQZFpBvukyRTVDVK
do
begin
Name:=#71#117#97#114#100;UpText:=[#71#117#97#114#100,#117#97#114#100,#117#97#114];Color:=(((((((((((((((((((((((((((((((((1851183+(929379*5+0))))))))))))))))))))))))))))))))));Hue:=(((((((((((((((((((((((((((((((((0.1)))))))))))))))))))))))))))))))));Sat:=(((((((((((((((((((((((((((((((((0.2)))))))))))))))))))))))))))))))));Tol:=(((((((((((((((((((((((((((((((((1+(1*5+0))))))))))))))))))))))))))))))))));end;with
qzTnIxqNNpOkhParVYjmchUdXQvzVnTkvNTilyIlITJIccwMMlb
do
begin
Name:=#66#97#110#107#101#114;UpText:=[#66#97#110#107#101#114,#97#110#107#101#114,#97#110#107#101];Color:=(((((((((((((((((((((((((((((((((1389422+(697553*5+3))))))))))))))))))))))))))))))))));Hue:=(((((((((((((((((((((((((((((((((0.5)))))))))))))))))))))))))))))))));Sat:=(((((((((((((((((((((((((((((((((0.91)))))))))))))))))))))))))))))))));Tol:=(((((((((((((((((((((((((((((((((1+(0*5+3))))))))))))))))))))))))))))))))));end;end;procedure
MKiXZwo_YouGKLHcRicwrMPznv;begin
FindNormalRandoms;if(not
LoggedIn)then
Exit;case
Random((((((((((((((((((((((((((((((((((56+(28*5+4)))))))))))))))))))))))))))))))))))of
(((((((((((((((((((((((((((((((((42+(21*5+3))))))))))))))))))))))))))))))))))..(((((((((((((((((((((((((((((((((44+(22*5+1)))))))))))))))))))))))))))))))))):begin
GameTab(RandomRange(tab_Combat,tab_Logout));Wait((((((((((((((((((((((((((((((((((427+(214*5+3))))))))))))))))))))))))))))))))))+Random((((((((((((((((((((((((((((((((((284+(143*5+1))))))))))))))))))))))))))))))))))));end;(((((((((((((((((((((((((((((((((31+(15*5+4))))))))))))))))))))))))))))))))))..(((((((((((((((((((((((((((((((((31+(16*5+1)))))))))))))))))))))))))))))))))):PickUpMouse;(((((((((((((((((((((((((((((((((19+(10*5+1))))))))))))))))))))))))))))))))))..(((((((((((((((((((((((((((((((((22+(11*5+3)))))))))))))))))))))))))))))))))):begin
HoverSkill(#82#97#110#100#111#109,FALSE);Wait((((((((((((((((((((((((((((((((((427+(214*5+3))))))))))))))))))))))))))))))))))+Random((((((((((((((((((((((((((((((((((284+(143*5+1))))))))))))))))))))))))))))))))))));end;(((((((((((((((((((((((((((((((((0+(0*5+1))))))))))))))))))))))))))))))))))..(((((((((((((((((((((((((((((((((11+(5*5+4)))))))))))))))))))))))))))))))))):SleepAndMoveMouse((((((((((((((((((((((((((((((((((284+(143*5+1))))))))))))))))))))))))))))))))))+Random((((((((((((((((((((((((((((((((((142+(71*5+3))))))))))))))))))))))))))))))))))));end;end;procedure
eLzNqLdqFzBSDpkQmekapqpHnsZlBVYATwGo_Y;begin
WfwsRfF:=DTMFromString(#109#103#103#65#65#65#72#105#99#89#50#78#103#89#80#106#80#120#77#68#65#122#99#122#65#119#77#99#77#89#88#56#69#52#112#57#65#76#77#98#73#119#77#65#75#120#78#120#65#114#77#65#73#52#102#77#67#56#102#52#69#71#97#65#117#74#103#119#115#65#105#83#120#89#85#89#99#71#65#73#65#99#103#111#71#83#65#61#61);zq_uMYdNzM:=(((((((((((((((((((((((((((((((((3+(1*5+4))))))))))))))))))))))))))))))))));end;procedure
RAdMVg;var
kaAvvQhlrGv:integer;xVowlXyxZZOPaMCFRzn_IzfzEfu_aPQgyQLuxode:integer;NDqYpRYptPZNSYNk_HhKEvVvQVgSZwzv:integer;tfNj:integer;LInzbOkRZGBXMczXNrGPOddWsFoDCSh:integer;begin
kaAvvQhlrGv:=GetXPBarTotal;xVowlXyxZZOPaMCFRzn_IzfzEfu_aPQgyQLuxode:=kaAvvQhlrGv-UMzrjGHhrdPOxfUOVQLv_EvhJAD;LInzbOkRZGBXMczXNrGPOddWsFoDCSh:=CZtnHSZctXvPmARkAFwUSdFoq*(((((((((((((((((((((((((((((((((8+(4*5+2))))))))))))))))))))))))))))))))));NDqYpRYptPZNSYNk_HhKEvVvQVgSZwzv:=((((((((((((((((((((((((((((((((((1025+(515*5+0))))))))))))))))))))))))))))))))))*xVowlXyxZZOPaMCFRzn_IzfzEfu_aPQgyQLuxode)/((Getsystemtime-bzNJzVceDdblVJfMxNPXXhu)/(((((((((((((((((((((((((((((((((284+(143*5+1)))))))))))))))))))))))))))))))))));WriteLn('');WriteLn(#60#61#61#61#61#61#61#61#61#61#61#61#61#61#61#32#45#32#82#101#112#111#114#116#32#61#61#61#61#61#61#61#61#61#61#61#61#61#61#61#62);writeln(#87#111#114#107#101#100#32#102#111#114#32+TimeRunning);writeln(#65#116#116#101#109#112#116#115#32#32+IntToStr(qWpKcWVPyYByZtnektddYK));writeln(#83#117#99#99#101#115#115#102#117#108#108#121#32#32+IntToStr(CZtnHSZctXvPmARkAFwUSdFoq));writeln(#85#110#115#117#99#99#101#115#115#102#117#108#108#121#32#32+IntToStr(jBdn_TBLEnyBYRLJoCMJtoyUUcBrVvbfSKDwjBulbl));writeln(#66#97#110#107#101#100#32#32+IntToStr(QqQvI)+#32#84#105#109#101#115);writeln(#88#80#32#71#97#105#110#32+ToStr(xVowlXyxZZOPaMCFRzn_IzfzEfu_aPQgyQLuxode));writeln(#88#80#32#72#111#117#114#32+ToStr(NDqYpRYptPZNSYNk_HhKEvVvQVgSZwzv));writeln(#77#111#110#101#121#32#71#97#105#110#32+ToStr(LInzbOkRZGBXMczXNrGPOddWsFoDCSh));Writeln('');end;function
wzKBGiZZNmHHnQGOuSURiWBFQycmgpGDnsR:Boolean;var
na_aGWKbiNvhKtJSyNoGjfrwvcy:Integer;RvfhTVuFNYVqxVdOfsmweqUVcPxAHTAWBnlTXIFzlOYnht:TPointArray;begin
FindNormalRandoms;if(not
LoggedIn)or(BankScreen)then
Exit;Result:=False;na_aGWKbiNvhKtJSyNoGjfrwvcy:=GetColorToleranceSpeed;ColorToleranceSpeed((((((((((((((((((((((((((((((((((0+(0*5+2)))))))))))))))))))))))))))))))))));SetColorSpeed2Modifiers(qzTnIxqNNpOkhParVYjmchUdXQvzVnTkvNTilyIlITJIccwMMlb.Hue,qzTnIxqNNpOkhParVYjmchUdXQvzVnTkvNTilyIlITJIccwMMlb.Sat);FindColorsSpiralTolerance(MSCX,MSCY,RvfhTVuFNYVqxVdOfsmweqUVcPxAHTAWBnlTXIFzlOYnht,qzTnIxqNNpOkhParVYjmchUdXQvzVnTkvNTilyIlITJIccwMMlb.Color,MSX1,MSY1,MSX2,MSY2,qzTnIxqNNpOkhParVYjmchUdXQvzVnTkvNTilyIlITJIccwMMlb.Tol);{$IFDEF SMART}if(KpaiomulSVwFDDtXstDESReBshhdOyr)then
begin
SMART_DrawDots(RvfhTVuFNYVqxVdOfsmweqUVcPxAHTAWBnlTXIFzlOYnht);end;{$ENDIF}if(Length(RvfhTVuFNYVqxVdOfsmweqUVcPxAHTAWBnlTXIFzlOYnht)>=(((((((((((((((((((((((((((((((((2+(1*5+3)))))))))))))))))))))))))))))))))))then
Result:=True;ColorToleranceSpeed(na_aGWKbiNvhKtJSyNoGjfrwvcy);SetColorSpeed2Modifiers((((((((((((((((((((((((((((((((((0.2))))))))))))))))))))))))))))))))),(((((((((((((((((((((((((((((((((0.2))))))))))))))))))))))))))))))))));end;function
qkYiYsYxBX:Boolean;var
na_aGWKbiNvhKtJSyNoGjfrwvcy,teQhFAwvnpJyOJWmTZXSRcvzAQlXNDZqoPPCwAZpKmQiuzY,dCUgPlyTmNTiffaZU_FXzpAWTkHjabHvglhCNSeSahQRzGdH,lOFNDZiMLzbemkb_RpYt_bLVUFcjvXHPlnsg,RZaCDu:Integer;RvfhTVuFNYVqxVdOfsmweqUVcPxAHTAWBnlTXIFzlOYnht:TPointArray;lkSyRm:TPoint;JfhViMkoJQiLdlrdASxNj_SxkxSHJAsjNNoXhApb:T2DPointArray;amOQDLYX_suUGy_nLkij:TBox;begin
FindNormalRandoms;if(not
LoggedIn)or(not
wzKBGiZZNmHHnQGOuSURiWBFQycmgpGDnsR)or(BankScreen)then
Exit;Result:=False;na_aGWKbiNvhKtJSyNoGjfrwvcy:=GetColorToleranceSpeed;ColorToleranceSpeed((((((((((((((((((((((((((((((((((0+(0*5+2)))))))))))))))))))))))))))))))))));SetColorSpeed2Modifiers(qzTnIxqNNpOkhParVYjmchUdXQvzVnTkvNTilyIlITJIccwMMlb.Hue,qzTnIxqNNpOkhParVYjmchUdXQvzVnTkvNTilyIlITJIccwMMlb.Sat);FindColorsSpiralTolerance(MSCX,MSCY,RvfhTVuFNYVqxVdOfsmweqUVcPxAHTAWBnlTXIFzlOYnht,qzTnIxqNNpOkhParVYjmchUdXQvzVnTkvNTilyIlITJIccwMMlb.Color,MSX1,MSY1,MSX2,MSY2,qzTnIxqNNpOkhParVYjmchUdXQvzVnTkvNTilyIlITJIccwMMlb.Tol);if(Length(RvfhTVuFNYVqxVdOfsmweqUVcPxAHTAWBnlTXIFzlOYnht)<(((((((((((((((((((((((((((((((((2+(1*5+3)))))))))))))))))))))))))))))))))))then
begin
Writeln(#68#105#100#32#110#111#116#32#102#105#110#100#32#101#110#111#117#103#104#32+qzTnIxqNNpOkhParVYjmchUdXQvzVnTkvNTilyIlITJIccwMMlb.Name+#32#99#111#108#111#117#114#115#46);ColorToleranceSpeed(na_aGWKbiNvhKtJSyNoGjfrwvcy);SetColorSpeed2Modifiers((((((((((((((((((((((((((((((((((0.2))))))))))))))))))))))))))))))))),(((((((((((((((((((((((((((((((((0.2))))))))))))))))))))))))))))))))));Exit;end;{$IFDEF SMART}if(KpaiomulSVwFDDtXstDESReBshhdOyr)then
begin
SMART_DrawDots(RvfhTVuFNYVqxVdOfsmweqUVcPxAHTAWBnlTXIFzlOYnht);end;{$ENDIF}SortTPAFrom(RvfhTVuFNYVqxVdOfsmweqUVcPxAHTAWBnlTXIFzlOYnht,Point(MSCX,MSCY));JfhViMkoJQiLdlrdASxNj_SxkxSHJAsjNNoXhApb:=TPAToATPAEx(RvfhTVuFNYVqxVdOfsmweqUVcPxAHTAWBnlTXIFzlOYnht,(((((((((((((((((((((((((((((((((5+(3*5+0)))))))))))))))))))))))))))))))))),(((((((((((((((((((((((((((((((((14+(7*5+1)))))))))))))))))))))))))))))))))));SortATPAFromSize(JfhViMkoJQiLdlrdASxNj_SxkxSHJAsjNNoXhApb,(((((((((((((((((((((((((((((((((28+(14*5+2)))))))))))))))))))))))))))))))))),True);teQhFAwvnpJyOJWmTZXSRcvzAQlXNDZqoPPCwAZpKmQiuzY:=High(JfhViMkoJQiLdlrdASxNj_SxkxSHJAsjNNoXhApb);for
RZaCDu:=(((((((((((((((((((((((((((((((((-1+(0*5+1))))))))))))))))))))))))))))))))))to
teQhFAwvnpJyOJWmTZXSRcvzAQlXNDZqoPPCwAZpKmQiuzY
do
begin
amOQDLYX_suUGy_nLkij:=GetTPABounds(JfhViMkoJQiLdlrdASxNj_SxkxSHJAsjNNoXhApb[RZaCDu]){$IFDEF SMART}if(KpaiomulSVwFDDtXstDESReBshhdOyr)then
begin
SMART_DrawBox(amOQDLYX_suUGy_nLkij);end;{$ENDIF}lkSyRm:=MiddleTPA(JfhViMkoJQiLdlrdASxNj_SxkxSHJAsjNNoXhApb[RZaCDu]);MMouse(lkSyRm.x,lkSyRm.y,(((((((((((((((((((((((((((((((((0+(0*5+2)))))))))))))))))))))))))))))))))),(((((((((((((((((((((((((((((((((0+(0*5+2)))))))))))))))))))))))))))))))))));if(WaitUpTextMulti(qzTnIxqNNpOkhParVYjmchUdXQvzVnTkvNTilyIlITJIccwMMlb.UpText,(((((((((((((((((((((((((((((((((284+(143*5+1))))))))))))))))))))))))))))))))))))then
begin
GetMousePos(dCUgPlyTmNTiffaZU_FXzpAWTkHjabHvglhCNSeSahQRzGdH,lOFNDZiMLzbemkb_RpYt_bLVUFcjvXHPlnsg);Mouse(dCUgPlyTmNTiffaZU_FXzpAWTkHjabHvglhCNSeSahQRzGdH,lOFNDZiMLzbemkb_RpYt_bLVUFcjvXHPlnsg,(((((((((((((((((((((((((((((((((-1+(0*5+1)))))))))))))))))))))))))))))))))),(((((((((((((((((((((((((((((((((-1+(0*5+1)))))))))))))))))))))))))))))))))),False);if(WaitOption(#66#97#110#107#32#66#97#110#107,(((((((((((((((((((((((((((((((((284+(143*5+1))))))))))))))))))))))))))))))))))))then
begin
Writeln(#67#108#105#99#107#101#100#32#98#97#110#107#101#114);{$IFDEF SMART}if(KpaiomulSVwFDDtXstDESReBshhdOyr)then
begin
SMART_ClearCanvas;end;{$ENDIF}ColorToleranceSpeed(na_aGWKbiNvhKtJSyNoGjfrwvcy);SetColorSpeed2Modifiers((((((((((((((((((((((((((((((((((0.2))))))))))))))))))))))))))))))))),(((((((((((((((((((((((((((((((((0.2))))))))))))))))))))))))))))))))));Result:=True;Exit;end;end;end;ColorToleranceSpeed(na_aGWKbiNvhKtJSyNoGjfrwvcy);SetColorSpeed2Modifiers((((((((((((((((((((((((((((((((((0.2))))))))))))))))))))))))))))))))),(((((((((((((((((((((((((((((((((0.2))))))))))))))))))))))))))))))))));end;function
bzYbXPyrNOIOpsluDjYzkRebUMByIsUoMIRf:Boolean;var
na_aGWKbiNvhKtJSyNoGjfrwvcy:Integer;RvfhTVuFNYVqxVdOfsmweqUVcPxAHTAWBnlTXIFzlOYnht:TPointArray;begin
if(not
LoggedIn)then
Exit;SleepAndMoveMouse((((((((((((((((((((((((((((((((((284+(143*5+1))))))))))))))))))))))))))))))))))+Random((((((((((((((((((((((((((((((((((142+(71*5+3))))))))))))))))))))))))))))))))))));FindNormalRandoms;Result:=False;na_aGWKbiNvhKtJSyNoGjfrwvcy:=GetColorToleranceSpeed;ColorToleranceSpeed((((((((((((((((((((((((((((((((((0+(0*5+2)))))))))))))))))))))))))))))))))));SetColorSpeed2Modifiers(VUOJgNEXBFuAgktiFrwdivfQZFpBvukyRTVDVK.Hue,VUOJgNEXBFuAgktiFrwdivfQZFpBvukyRTVDVK.Sat);FindColorsSpiralTolerance(MSCX,MSCY,RvfhTVuFNYVqxVdOfsmweqUVcPxAHTAWBnlTXIFzlOYnht,VUOJgNEXBFuAgktiFrwdivfQZFpBvukyRTVDVK.Color,MSX1,MSY1,MSX2,MSY2,VUOJgNEXBFuAgktiFrwdivfQZFpBvukyRTVDVK.Tol);{$IFDEF SMART}if(KpaiomulSVwFDDtXstDESReBshhdOyr)then
begin
SMART_DrawDots(RvfhTVuFNYVqxVdOfsmweqUVcPxAHTAWBnlTXIFzlOYnht);end;{$ENDIF}if(Length(RvfhTVuFNYVqxVdOfsmweqUVcPxAHTAWBnlTXIFzlOYnht)>=(((((((((((((((((((((((((((((((((5+(3*5+0)))))))))))))))))))))))))))))))))))then
Result:=True;ColorToleranceSpeed(na_aGWKbiNvhKtJSyNoGjfrwvcy);SetColorSpeed2Modifiers((((((((((((((((((((((((((((((((((0.2))))))))))))))))))))))))))))))))),(((((((((((((((((((((((((((((((((0.2))))))))))))))))))))))))))))))))));end;Function
nmdUokyOIjiGaBzOJqyUKOy:boolean;var
zmVA,na_aGWKbiNvhKtJSyNoGjfrwvcy,dCUgPlyTmNTiffaZU_FXzpAWTkHjabHvglhCNSeSahQRzGdH,lOFNDZiMLzbemkb_RpYt_bLVUFcjvXHPlnsg,RZaCDu:Integer;RvfhTVuFNYVqxVdOfsmweqUVcPxAHTAWBnlTXIFzlOYnht:TPointArray;lkSyRm:TPoint;yjFQqANB:T2DPointArray;amOQDLYX_suUGy_nLkij:TBox;begin
if(not
LoggedIn)then
Exit;na_aGWKbiNvhKtJSyNoGjfrwvcy:=GetColorToleranceSpeed;FindNormalRandoms;Result:=False;ColorToleranceSpeed((((((((((((((((((((((((((((((((((0+(0*5+2)))))))))))))))))))))))))))))))))));SetColorSpeed2Modifiers(VUOJgNEXBFuAgktiFrwdivfQZFpBvukyRTVDVK.Hue,VUOJgNEXBFuAgktiFrwdivfQZFpBvukyRTVDVK.Sat);FindColorsSpiralTolerance(MSCX,MSCY,RvfhTVuFNYVqxVdOfsmweqUVcPxAHTAWBnlTXIFzlOYnht,VUOJgNEXBFuAgktiFrwdivfQZFpBvukyRTVDVK.Color,MSX1,MSY1,MSX2,MSY2,VUOJgNEXBFuAgktiFrwdivfQZFpBvukyRTVDVK.Tol);if(Length(RvfhTVuFNYVqxVdOfsmweqUVcPxAHTAWBnlTXIFzlOYnht)<(((((((((((((((((((((((((((((((((2+(1*5+3)))))))))))))))))))))))))))))))))))then
begin
Writeln(#70#97#105#108#101#100#32#116#111#32#102#105#110#100#32#116#104#101#32#99#111#108#111#114#44#32#110#111#32#114#101#115#117#108#116#46);ColorToleranceSpeed(na_aGWKbiNvhKtJSyNoGjfrwvcy);SetColorSpeed2Modifiers((((((((((((((((((((((((((((((((((0.2))))))))))))))))))))))))))))))))),(((((((((((((((((((((((((((((((((0.2))))))))))))))))))))))))))))))))));Exit;end;{$IFDEF SMART}if(KpaiomulSVwFDDtXstDESReBshhdOyr)then
begin
SMART_DrawDots(RvfhTVuFNYVqxVdOfsmweqUVcPxAHTAWBnlTXIFzlOYnht);end;{$ENDIF}SortTPAFrom(RvfhTVuFNYVqxVdOfsmweqUVcPxAHTAWBnlTXIFzlOYnht,Point(MSCX,MSCY));yjFQqANB:=TPAToATPAEx(RvfhTVuFNYVqxVdOfsmweqUVcPxAHTAWBnlTXIFzlOYnht,(((((((((((((((((((((((((((((((((14+(7*5+1)))))))))))))))))))))))))))))))))),(((((((((((((((((((((((((((((((((14+(7*5+1)))))))))))))))))))))))))))))))))));SortATPAFromSize(yjFQqANB,(((((((((((((((((((((((((((((((((28+(14*5+2)))))))))))))))))))))))))))))))))),True);zmVA:=High(yjFQqANB)for
RZaCDu:=(((((((((((((((((((((((((((((((((-1+(0*5+1))))))))))))))))))))))))))))))))))to
zmVA
do
begin
amOQDLYX_suUGy_nLkij:=GetTPABounds(yjFQqANB[RZaCDu]){$IFDEF SMART}if(KpaiomulSVwFDDtXstDESReBshhdOyr)then
begin
SMART_ClearCanvas;SMART_DrawBox(amOQDLYX_suUGy_nLkij);end;{$ENDIF}lkSyRm:=MiddleTPA(yjFQqANB[RZaCDu]);MMouse(lkSyRm.x,lkSyRm.y,(((((((((((((((((((((((((((((((((2+(1*5+3)))))))))))))))))))))))))))))))))),(((((((((((((((((((((((((((((((((2+(1*5+3)))))))))))))))))))))))))))))))))));if(WaitUpTextMulti(VUOJgNEXBFuAgktiFrwdivfQZFpBvukyRTVDVK.UpText,(((((((((((((((((((((((((((((((((284+(143*5+1))))))))))))))))))))))))))))))))))))then
begin
GetMousePos(dCUgPlyTmNTiffaZU_FXzpAWTkHjabHvglhCNSeSahQRzGdH,lOFNDZiMLzbemkb_RpYt_bLVUFcjvXHPlnsg);Mouse(dCUgPlyTmNTiffaZU_FXzpAWTkHjabHvglhCNSeSahQRzGdH,lOFNDZiMLzbemkb_RpYt_bLVUFcjvXHPlnsg,(((((((((((((((((((((((((((((((((-1+(0*5+1)))))))))))))))))))))))))))))))))),(((((((((((((((((((((((((((((((((-1+(0*5+1)))))))))))))))))))))))))))))))))),false);if
ChooseOption(#80#105#99#107)then
begin
Wait(RandomRange((((((((((((((((((((((((((((((((((142+(71*5+3)))))))))))))))))))))))))))))))))),(((((((((((((((((((((((((((((((((284+(143*5+1))))))))))))))))))))))))))))))))))));if
pos(#115#116#117#110#110#101#100,GetBlackChatMessage)<>(((((((((((((((((((((((((((((((((-1+(0*5+1))))))))))))))))))))))))))))))))))then
begin
Wait(RandomRange((((((((((((((((((((((((((((((((((427+(214*5+3)))))))))))))))))))))))))))))))))),(((((((((((((((((((((((((((((((((569+(286*5+1))))))))))))))))))))))))))))))))))));Inc(jBdn_TBLEnyBYRLJoCMJtoyUUcBrVvbfSKDwjBulbl);inc(qWpKcWVPyYByZtnektddYK);end;if
pos(#99#111#105#110#115,GetBlackChatMessage)<>(((((((((((((((((((((((((((((((((-1+(0*5+1))))))))))))))))))))))))))))))))))then
begin
Wait(RandomRange((((((((((((((((((((((((((((((((((427+(214*5+3)))))))))))))))))))))))))))))))))),(((((((((((((((((((((((((((((((((569+(286*5+1))))))))))))))))))))))))))))))))))));Inc(CZtnHSZctXvPmARkAFwUSdFoq);inc(qWpKcWVPyYByZtnektddYK);end;SPS_BlindWalk(Point((((((((((((((((((((((((((((((((((68+(34*5+3)))))))))))))))))))))))))))))))))),(((((((((((((((((((((((((((((((((76+(38*5+4))))))))))))))))))))))))))))))))))));end;if(DidRedClick)then
begin{$IFDEF SMART}if(KpaiomulSVwFDDtXstDESReBshhdOyr)then
begin
SMART_ClearCanvas;end;{$ENDIF}Result:=True;Exit;end;end;end;ColorToleranceSpeed(na_aGWKbiNvhKtJSyNoGjfrwvcy);SetColorSpeed2Modifiers((((((((((((((((((((((((((((((((((0.2))))))))))))))))))))))))))))))))),(((((((((((((((((((((((((((((((((0.2))))))))))))))))))))))))))))))))));end;procedure
OWLTDSNjEcssspsBRDbmNdPftrebmjZPN;var
eQNwkCaJjEMLONdy:TPointArray;begin
eQNwkCaJjEMLONdy:=[Point((((((((((((((((((((((((((((((((((73+(37*5+1)))))))))))))))))))))))))))))))))),(((((((((((((((((((((((((((((((((69+(35*5+0))))))))))))))))))))))))))))))))))),Point((((((((((((((((((((((((((((((((((71+(36*5+1)))))))))))))))))))))))))))))))))),(((((((((((((((((((((((((((((((((71+(36*5+1))))))))))))))))))))))))))))))))))),Point((((((((((((((((((((((((((((((((((70+(35*5+1)))))))))))))))))))))))))))))))))),(((((((((((((((((((((((((((((((((73+(37*5+0))))))))))))))))))))))))))))))))))),Point((((((((((((((((((((((((((((((((((69+(35*5+1)))))))))))))))))))))))))))))))))),(((((((((((((((((((((((((((((((((75+(38*5+1))))))))))))))))))))))))))))))))))),Point((((((((((((((((((((((((((((((((((65+(33*5+0)))))))))))))))))))))))))))))))))),(((((((((((((((((((((((((((((((((78+(39*5+4))))))))))))))))))))))))))))))))))),Point((((((((((((((((((((((((((((((((((61+(31*5+1)))))))))))))))))))))))))))))))))),(((((((((((((((((((((((((((((((((83+(42*5+0))))))))))))))))))))))))))))))))))),Point((((((((((((((((((((((((((((((((((60+(30*5+2)))))))))))))))))))))))))))))))))),(((((((((((((((((((((((((((((((((85+(43*5+1))))))))))))))))))))))))))))))))))),Point((((((((((((((((((((((((((((((((((56+(28*5+3)))))))))))))))))))))))))))))))))),(((((((((((((((((((((((((((((((((88+(44*5+3))))))))))))))))))))))))))))))))))),Point((((((((((((((((((((((((((((((((((54+(27*5+2)))))))))))))))))))))))))))))))))),(((((((((((((((((((((((((((((((((91+(46*5+0))))))))))))))))))))))))))))))))))),Point((((((((((((((((((((((((((((((((((52+(26*5+1)))))))))))))))))))))))))))))))))),(((((((((((((((((((((((((((((((((92+(46*5+4))))))))))))))))))))))))))))))))))),Point((((((((((((((((((((((((((((((((((48+(24*5+4)))))))))))))))))))))))))))))))))),(((((((((((((((((((((((((((((((((95+(48*5+0))))))))))))))))))))))))))))))))))),Point((((((((((((((((((((((((((((((((((44+(22*5+2)))))))))))))))))))))))))))))))))),(((((((((((((((((((((((((((((((((97+(49*5+1))))))))))))))))))))))))))))))))))),Point((((((((((((((((((((((((((((((((((41+(21*5+0)))))))))))))))))))))))))))))))))),(((((((((((((((((((((((((((((((((99+(50*5+1))))))))))))))))))))))))))))))))))),Point((((((((((((((((((((((((((((((((((41+(21*5+1)))))))))))))))))))))))))))))))))),(((((((((((((((((((((((((((((((((102+(51*5+4))))))))))))))))))))))))))))))))))),Point((((((((((((((((((((((((((((((((((43+(21*5+3)))))))))))))))))))))))))))))))))),(((((((((((((((((((((((((((((((((105+(52*5+4))))))))))))))))))))))))))))))))))),Point((((((((((((((((((((((((((((((((((46+(23*5+3)))))))))))))))))))))))))))))))))),(((((((((((((((((((((((((((((((((105+(53*5+0))))))))))))))))))))))))))))))))))),Point((((((((((((((((((((((((((((((((((50+(25*5+3)))))))))))))))))))))))))))))))))),(((((((((((((((((((((((((((((((((105+(53*5+1))))))))))))))))))))))))))))))))))),Point((((((((((((((((((((((((((((((((((54+(27*5+1)))))))))))))))))))))))))))))))))),(((((((((((((((((((((((((((((((((105+(53*5+0))))))))))))))))))))))))))))))))))),Point((((((((((((((((((((((((((((((((((56+(28*5+3)))))))))))))))))))))))))))))))))),(((((((((((((((((((((((((((((((((103+(52*5+1)))))))))))))))))))))))))))))))))))];if
SPS_WalkPath(eQNwkCaJjEMLONdy)then
ziaGnVeAH_tnQZjmRcBpImwGvEQoWiPIgWukxiBopuXRWt:=#84#111#66#97#110#107 else
begin
ziaGnVeAH_tnQZjmRcBpImwGvEQoWiPIgWukxiBopuXRWt:=#70#97#105#108#101#100#32#84#111#66#97#110#107;WriteLn(ziaGnVeAH_tnQZjmRcBpImwGvEQoWiPIgWukxiBopuXRWt+#35#84#105#109#101#32#82#117#110#110#105#110#103#58+TimeRunning);Logout;TerminateScript;end;WriteLn(ziaGnVeAH_tnQZjmRcBpImwGvEQoWiPIgWukxiBopuXRWt+#35#84#105#109#101#32#82#117#110#110#105#110#103#58+TimeRunning);end;procedure
YpWwLrDPmnOWYXAMnsnOCf;var
UrMzMJTguzRFq:TPointArray;begin
UrMzMJTguzRFq:=[Point((((((((((((((((((((((((((((((((((56+(28*5+3)))))))))))))))))))))))))))))))))),(((((((((((((((((((((((((((((((((103+(52*5+1))))))))))))))))))))))))))))))))))),Point((((((((((((((((((((((((((((((((((55+(27*5+4)))))))))))))))))))))))))))))))))),(((((((((((((((((((((((((((((((((104+(52*5+3))))))))))))))))))))))))))))))))))),Point((((((((((((((((((((((((((((((((((51+(26*5+0)))))))))))))))))))))))))))))))))),(((((((((((((((((((((((((((((((((105+(53*5+1))))))))))))))))))))))))))))))))))),Point((((((((((((((((((((((((((((((((((48+(24*5+2)))))))))))))))))))))))))))))))))),(((((((((((((((((((((((((((((((((105+(53*5+1))))))))))))))))))))))))))))))))))),Point((((((((((((((((((((((((((((((((((45+(22*5+4)))))))))))))))))))))))))))))))))),(((((((((((((((((((((((((((((((((105+(53*5+1))))))))))))))))))))))))))))))))))),Point((((((((((((((((((((((((((((((((((43+(21*5+4)))))))))))))))))))))))))))))))))),(((((((((((((((((((((((((((((((((105+(53*5+1))))))))))))))))))))))))))))))))))),Point((((((((((((((((((((((((((((((((((42+(21*5+1)))))))))))))))))))))))))))))))))),(((((((((((((((((((((((((((((((((100+(50*5+4))))))))))))))))))))))))))))))))))),Point((((((((((((((((((((((((((((((((((43+(21*5+3)))))))))))))))))))))))))))))))))),(((((((((((((((((((((((((((((((((96+(48*5+4))))))))))))))))))))))))))))))))))),Point((((((((((((((((((((((((((((((((((45+(23*5+1)))))))))))))))))))))))))))))))))),(((((((((((((((((((((((((((((((((95+(47*5+4))))))))))))))))))))))))))))))))))),Point((((((((((((((((((((((((((((((((((48+(24*5+2)))))))))))))))))))))))))))))))))),(((((((((((((((((((((((((((((((((93+(47*5+0))))))))))))))))))))))))))))))))))),Point((((((((((((((((((((((((((((((((((51+(25*5+4)))))))))))))))))))))))))))))))))),(((((((((((((((((((((((((((((((((92+(46*5+4))))))))))))))))))))))))))))))))))),Point((((((((((((((((((((((((((((((((((54+(27*5+1)))))))))))))))))))))))))))))))))),(((((((((((((((((((((((((((((((((91+(45*5+4))))))))))))))))))))))))))))))))))),Point((((((((((((((((((((((((((((((((((56+(28*5+3)))))))))))))))))))))))))))))))))),(((((((((((((((((((((((((((((((((88+(44*5+2))))))))))))))))))))))))))))))))))),Point((((((((((((((((((((((((((((((((((59+(29*5+4)))))))))))))))))))))))))))))))))),(((((((((((((((((((((((((((((((((86+(43*5+3))))))))))))))))))))))))))))))))))),Point((((((((((((((((((((((((((((((((((60+(30*5+2)))))))))))))))))))))))))))))))))),(((((((((((((((((((((((((((((((((84+(42*5+4))))))))))))))))))))))))))))))))))),Point((((((((((((((((((((((((((((((((((62+(31*5+4)))))))))))))))))))))))))))))))))),(((((((((((((((((((((((((((((((((81+(41*5+1))))))))))))))))))))))))))))))))))),Point((((((((((((((((((((((((((((((((((66+(33*5+1)))))))))))))))))))))))))))))))))),(((((((((((((((((((((((((((((((((78+(39*5+4))))))))))))))))))))))))))))))))))),Point((((((((((((((((((((((((((((((((((68+(34*5+3)))))))))))))))))))))))))))))))))),(((((((((((((((((((((((((((((((((76+(38*5+4)))))))))))))))))))))))))))))))))))];ClickNorth(SRL_ANGLE_HIGH);if
SPS_WalkPath(UrMzMJTguzRFq)then
ziaGnVeAH_tnQZjmRcBpImwGvEQoWiPIgWukxiBopuXRWt:=#79#117#116#66#97#110#107 else
begin
ziaGnVeAH_tnQZjmRcBpImwGvEQoWiPIgWukxiBopuXRWt:=#70#97#105#108#101#100#32#79#117#116#66#97#110#107;WriteLn(ziaGnVeAH_tnQZjmRcBpImwGvEQoWiPIgWukxiBopuXRWt+#35#84#105#109#101#32#82#117#110#110#105#110#103#58+TimeRunning);Logout;TerminateScript;end;WriteLn(ziaGnVeAH_tnQZjmRcBpImwGvEQoWiPIgWukxiBopuXRWt+#35#84#105#109#101#32#82#117#110#110#105#110#103#58+TimeRunning);end;procedure
wdFZjXxITk;var
acBokXURgfBdSbkcGryVxGs_Pkypcogd_slAA,wzUodIgkHVBGjMJXyqUrDXouvTXlywqtTFbKHzCf,_xomYTDMAPVxTfTBDi,SgVHOXvGaLzKAfIJVSLkJOCOgHzqxIEOORhGwi,hjFVlXTLYIhlnEPJGyIHxew,XHqeyUG_rpZiXFeRBMQMqMQuxVMdfnbFyaZRwpFygui,AqUvwOxcEtlrUgnoINYoa:Integer;begin
FindNormalRandoms;if(not
LoggedIn)then
Exit;acBokXURgfBdSbkcGryVxGs_Pkypcogd_slAA:=(((((((((((((((((((((((((((((((((-1+(0*5+1))))))))))))))))))))))))))))))))));wzUodIgkHVBGjMJXyqUrDXouvTXlywqtTFbKHzCf:=(((((((((((((((((((((((((((((((((-1+(0*5+1))))))))))))))))))))))))))))))))));hjFVlXTLYIhlnEPJGyIHxew:=(((((((((((((((((((((((((((((((((-1+(0*5+1))))))))))))))))))))))))))))))))));if(wzKBGiZZNmHHnQGOuSURiWBFQycmgpGDnsR)then
repeat
Wait(RandomRange((((((((((((((((((((((((((((((((((427+(214*5+3)))))))))))))))))))))))))))))))))),(((((((((((((((((((((((((((((((((569+(286*5+1))))))))))))))))))))))))))))))))))));if(not
wzKBGiZZNmHHnQGOuSURiWBFQycmgpGDnsR)then
Break;Writeln(#70#111#117#110#100#32#98#97#110#107#101#114#46);Writeln(#67#108#105#99#107#32#116#104#101#32#98#97#110#107#101#114#46);if(qkYiYsYxBX)then
begin
repeat
while(IsMoving)do
Wait((((((((((((((((((((((((((((((((((28+(14*5+2)))))))))))))))))))))))))))))))))));if(BankScreen)then
Break;FindNormalRandoms;if(not
LoggedIn)then
Exit;if(PinScreen)then
begin
InPin(Players[CurrentPlayer].Pin);Inc(acBokXURgfBdSbkcGryVxGs_Pkypcogd_slAA);Writeln(#84#114#105#101#100#32#98#97#110#107#32#112#105#110#32+inttostr(acBokXURgfBdSbkcGryVxGs_Pkypcogd_slAA)+#32#116#105#109#101#115#46);end;Writeln(#80#105#110#32#115#99#114#101#101#110#32#110#111#116#32#102#111#117#110#100#46);until(BankScreen)Or(acBokXURgfBdSbkcGryVxGs_Pkypcogd_slAA>(((((((((((((((((((((((((((((((((0+(0*5+3)))))))))))))))))))))))))))))))))));end;if(BankScreen)then
Break;if(acBokXURgfBdSbkcGryVxGs_Pkypcogd_slAA>(((((((((((((((((((((((((((((((((0+(0*5+3)))))))))))))))))))))))))))))))))))then
begin
Writeln(#84#114#105#101#100#32#98#97#110#107#32#112#105#110#32+inttostr(acBokXURgfBdSbkcGryVxGs_Pkypcogd_slAA)+#32#116#105#109#101#115#32#98#117#116#32#105#116#115#32#110#111#116#32#119#111#114#107#105#110#103#44#32#108#111#103#103#105#110#103#32#111#117#116#46);NextPlayer(False);Exit;end;Inc(wzUodIgkHVBGjMJXyqUrDXouvTXlywqtTFbKHzCf);Writeln(#84#114#105#101#100#32#99#108#105#99#107#105#110#103#32#98#97#110#107#101#114#32+inttostr(wzUodIgkHVBGjMJXyqUrDXouvTXlywqtTFbKHzCf)+#32#116#105#109#101#115#46);until(wzUodIgkHVBGjMJXyqUrDXouvTXlywqtTFbKHzCf>(((((((((((((((((((((((((((((((((2+(1*5+3)))))))))))))))))))))))))))))))))));Wait((((((((((((((((((((((((((((((((((85+(43*5+0))))))))))))))))))))))))))))))))))+Random((((((((((((((((((((((((((((((((((56+(28*5+4))))))))))))))))))))))))))))))))))));FindNormalRandoms;if(wzUodIgkHVBGjMJXyqUrDXouvTXlywqtTFbKHzCf>(((((((((((((((((((((((((((((((((2+(1*5+3)))))))))))))))))))))))))))))))))))then
begin
Writeln(#67#111#117#108#100#32#110#111#116#32#99#108#105#99#107#32#116#104#101#32#98#97#110#107#101#114#44#32#108#111#103#103#105#110#103#32#111#117#116#46);NextPlayer(False);Exit;end;if(BankScreen)then
begin
Wait((((((((((((((((((((((((((((((((((28+(14*5+2))))))))))))))))))))))))))))))))))+Random((((((((((((((((((((((((((((((((((28+(14*5+2))))))))))))))))))))))))))))))))))));Wait((((((((((((((((((((((((((((((((((56+(28*5+4))))))))))))))))))))))))))))))))))+Random((((((((((((((((((((((((((((((((((85+(43*5+0))))))))))))))))))))))))))))))))))));DepositAll;Wait((((((((((((((((((((((((((((((((((56+(28*5+4))))))))))))))))))))))))))))))))))+Random((((((((((((((((((((((((((((((((((142+(71*5+3))))))))))))))))))))))))))))))))))));if
FindDTM(WfwsRfF,XHqeyUG_rpZiXFeRBMQMqMQuxVMdfnbFyaZRwpFygui,AqUvwOxcEtlrUgnoINYoa,MBX1,MBY1,MBX2,MBY2)then
begin
Mouse(XHqeyUG_rpZiXFeRBMQMqMQuxVMdfnbFyaZRwpFygui,AqUvwOxcEtlrUgnoINYoa,(((((((((((((((((((((((((((((((((1+(0*5+3)))))))))))))))))))))))))))))))))),(((((((((((((((((((((((((((((((((1+(0*5+3)))))))))))))))))))))))))))))))))),False);if
ChooseOption(#88)then
begin
Wait((((((((((((((((((((((((((((((((((284+(143*5+1))))))))))))))))))))))))))))))))))+random((((((((((((((((((((((((((((((((((142+(71*5+3))))))))))))))))))))))))))))))))))));TypeSend(IntToStr((EVqO-(((((((((((((((((((((((((((((((((0+(0*5+1)))))))))))))))))))))))))))))))))))+Random((((((((((((((((((((((((((((((((((0+(0*5+2)))))))))))))))))))))))))))))))))))));end;end;case
Random((((((((((((((((((((((((((((((((((2+(1*5+3)))))))))))))))))))))))))))))))))))of
(((((((((((((((((((((((((((((((((-1+(0*5+1))))))))))))))))))))))))))))))))))..(((((((((((((((((((((((((((((((((0+(0*5+3)))))))))))))))))))))))))))))))))):CloseWindow;end;FindNormalRandoms;Inc(QqQvI);end;YpWwLrDPmnOWYXAMnsnOCf;end;Function
NZnQNeYbDwebgNuzhmuPjZcCrsPERLg_QCtCRtVgjqOKuIAKhg():Boolean;var
XHqeyUG_rpZiXFeRBMQMqMQuxVMdfnbFyaZRwpFygui,AqUvwOxcEtlrUgnoINYoa:integer;begin
GameTab(tab_Inv);cjoKUH:=CountItems(#100#116#109,WfwsRfF,[]);if
FindDTM(WfwsRfF,XHqeyUG_rpZiXFeRBMQMqMQuxVMdfnbFyaZRwpFygui,AqUvwOxcEtlrUgnoINYoa,MIX1,MIY1,MIX2,MIY2)then
begin
Result:=True;end
end;function
cTEwoJzqiORg:Boolean;var
xBkKzxLwPKqOBoJMCyd,PhNbuHDOdVQYfyIZPFeAEeIxRogJsAoZFNHGEMWYzwtqM:Integer;XHqeyUG_rpZiXFeRBMQMqMQuxVMdfnbFyaZRwpFygui,AqUvwOxcEtlrUgnoINYoa:integer;begin
if
not(GetCurrentTab=tab_Inv)then
GameTab(tab_Inv);if
FindDTM(WfwsRfF,XHqeyUG_rpZiXFeRBMQMqMQuxVMdfnbFyaZRwpFygui,AqUvwOxcEtlrUgnoINYoa,MIX1,MIY1,MIX2,MIY2)then
begin
MultiMouse(XHqeyUG_rpZiXFeRBMQMqMQuxVMdfnbFyaZRwpFygui,AqUvwOxcEtlrUgnoINYoa,(((((((((((((((((((((((((((((((((22+(11*5+3)))))))))))))))))))))))))))))))))),(((((((((((((((((((((((((((((((((0+(0*5+2)))))))))))))))))))))))))))))))))),true);Result:=True;end
else
begin
Result:=False;end;end;procedure
QUqZjgvHZpPBnPmsGBdSZfjsBQmwAaovSzInsgpTHLD;begin
SRL_SIXHOURFIX:=TRUE;SMART_FIXSPEED:=TRUE;SetupSRL;_WBdIxvYYmwnhAIhhxYDvZiyhtRlTERwINI;LoginPlayer;Wait((((((((((((((((((((((((((((((((((252+(127*5+1))))))))))))))))))))))))))))))))))+Random((((((((((((((((((((((((((((((((((41+(21*5+1))))))))))))))))))))))))))))))))))));ClickNorth(SRL_ANGLE_HIGH);SPS_Setup(RUNESCAPE_OTHER,[#65#114#100#111#117#103#110#101#83#116#101#97#108]);ToggleXPBar(True);ToggleMoneyPouch(True);UMzrjGHhrdPOxfUOVQLv_EvhJAD:=getXPBarTotal;MarkTime(bzNJzVceDdblVJfMxNPXXhu);dfdymBXdlPxrCSuZUgixzzkDPdHp_bhjZKldD_EVaUELQVlDwAi:=GetMoneyPouchAmount;end;Function
ShBvfFRxTXRUsXBPbbKNAuhFJccOZfRjZNPTS:Boolean;var
qPqhHjYlFHxRTrntSzyFuPJ,yFNhAEQWZDLBGgHHGIRRSGnBHwDiLFVtqQmsC:integer;pAewvZvbW_nWPIWlW:String;begin
Result:=True;GameTab(tab_Inv);yFNhAEQWZDLBGgHHGIRRSGnBHwDiLFVtqQmsC:=GetMMLevels(#104#112,pAewvZvbW_nWPIWlW);if
yFNhAEQWZDLBGgHHGIRRSGnBHwDiLFVtqQmsC<GMgATprQmRNGZYksBndZB_VAHmUAZ_hKKaYFqNlLiGM
then
if
not
cTEwoJzqiORg
then
Result:=False;WriteLn(toStr(yFNhAEQWZDLBGgHHGIRRSGnBHwDiLFVtqQmsC));end;Procedure
OQgupAAxn;begin
FindNormalRandoms;if(not
LoggedIn)then
LoginPlayer;Wait((((((((((((((((((((((((((((((((((56+(28*5+4)))))))))))))))))))))))))))))))))));uMAbArYhOobvPuxYyxBXrNwWNgiTfXscRENggnNcwfX_AjgzXQ:=(((((((((((((((((((((((((((((((((-1+(0*5+1))))))))))))))))))))))))))))))))));begin
MakeCompass(#78);SetAngle((((((((((((((((((((((((((((((((((-1+(0*5+1)))))))))))))))))))))))))))))))))));MarkTime(LoeXfkbXyQlQDxPWYBAXaOlUOEZgWigLwUAhqnzwWECzt_cowv);repeat
begin
if(TimeFromMark(LoeXfkbXyQlQDxPWYBAXaOlUOEZgWigLwUAhqnzwWECzt_cowv)<(((((((((((((((((((((((((((((((((569+(286*5+1)))))))))))))))))))))))))))))))))))then
begin
RZTbdCRoiOk:=(mD_qUgzcivJhacQusNycLRNlBGCcGzkcthcGdVikeBSqqWFjiZt*(((((((((((((((((((((((((((((((((17092+(8581*5+3)))))))))))))))))))))))))))))))))));UtzPCfZebrQrmCpDbXpOAWQjj:=(tOOHfvvDEJLxSygf*(((((((((((((((((((((((((((((((((17092+(8581*5+3)))))))))))))))))))))))))))))))))));TNTKNCqOPbJPQIkwGCyWbMQxP:=RandomRange(-TemhmfnnQP*(((((((((((((((((((((((((((((((((17092+(8581*5+3)))))))))))))))))))))))))))))))))),TemhmfnnQP*(((((((((((((((((((((((((((((((((17092+(8581*5+3)))))))))))))))))))))))))))))))))));tndJcWUXXZYkicNWZY_xCWWuCPJhNeCuwypjxfBEhC:=RandomRange(-PLhvxJp_GtrIPaGKGPfpzrTqg*(((((((((((((((((((((((((((((((((17092+(8581*5+3)))))))))))))))))))))))))))))))))),PLhvxJp_GtrIPaGKGPfpzrTqg*(((((((((((((((((((((((((((((((((17092+(8581*5+3)))))))))))))))))))))))))))))))))));end;Writeln(#84#97#107#105#110#103#32#97#32#98#114#101#97#107#32#105#110#32#40+IntToStr(((RZTbdCRoiOk+TNTKNCqOPbJPQIkwGCyWbMQxP)-TimeFromMark(LoeXfkbXyQlQDxPWYBAXaOlUOEZgWigLwUAhqnzwWECzt_cowv))/(((((((((((((((((((((((((((((((((17092+(8581*5+3)))))))))))))))))))))))))))))))))))+#32#77#105#110#115#41);end;repeat
MKiXZwo_YouGKLHcRicwrMPznv;if(not
NZnQNeYbDwebgNuzhmuPjZcCrsPERLg_QCtCRtVgjqOKuIAKhg)then
begin
ClickNorth(SRL_ANGLE_HIGH);OWLTDSNjEcssspsBRDbmNdPftrebmjZPN;wzKBGiZZNmHHnQGOuSURiWBFQycmgpGDnsR;qkYiYsYxBX;wdFZjXxITk;end
else
begin
bzYbXPyrNOIOpsluDjYzkRebUMByIsUoMIRf;nmdUokyOIjiGaBzOJqyUKOy;ShBvfFRxTXRUsXBPbbKNAuhFJccOZfRjZNPTS;WriteLn(toStr(HPPercent));end;RAdMVg;TAKTLWKvUIxbhXrNgxmGJWmRxVKrkt(mD_qUgzcivJhacQusNycLRNlBGCcGzkcthcGdVikeBSqqWFjiZt,tOOHfvvDEJLxSygf,TemhmfnnQP,PLhvxJp_GtrIPaGKGPfpzrTqg);Until(Not
LoggedIn);if(not
LoggedIn)then
LoginPlayer;until(AllPlayersInActive);end;end;begin
QUqZjgvHZpPBnPmsGBdSZfjsBQmwAaovSzInsgpTHLD;eLzNqLdqFzBSDpkQmekapqpHnsZlBVYATwGo_Y;vsXizybMXfHWAbyyClA;OQgupAAxn;end.