Skip to content

A powerful Lua obfuscator designed to make your Lua code nearly impossible to reverse-engineer, with multiple layers of advanced obfuscation techniques

License

Notifications You must be signed in to change notification settings

Nexus-Scripts/hercules-obfuscator

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Banner Image

                                _            
  /\  /\ ___  _ __  ___  _   _ | |  ___  ___ 
 / /_/ // _ \| '__|/ __|| | | || | / _ \/ __|
/ __  /|  __/| |  | (__ | |_| || ||  __/\__ \
\/ /_/  \___||_|   \___| \__,_||_| \___||___/

Stars Forks Issues License Last Commit
Bot Invite TopGG Bot Repo Hercules Website


Hercules is a powerful Lua obfuscator designed to make your Lua code nearly impossible to reverse-engineer. With multiple layers of advanced obfuscation techniques, Hercules ensures your scripts are secure from prying eyes.

If you decide to use/fork Hercules, please do star it to show support. It helps out a ton!

Contact either zeusssz_ on Discord for queries, or join the Discord, to use the Herucles Bot.

You may also use the Website to obfuscate your code

Caution

Obfuscation is not a foolproof method for protecting your code! Always consider additional security measures depending on your use case.

Note

Hercules is very much still in development and may not be the best yet, but we are committed to making it one of the best. Hercules is currently on version: 1.6.2


Features

  • String Encoding: Transform strings into seemingly indecipherable formats using an advanced Caesar Cipher, making reverse engineering a daunting task.

  • Variable Renaming: Elevates your code's security by replacing original variable names with a unique set of randomly generated identifiers, effectively masking their true intent.

  • Control Flow Obfuscation: Introduces intricate, deceptive control flow structures to mislead static analysis tools, ensuring your logic remains obscured from prying eyes.

  • Garbage Code Insertion: Strategically inject meaningless code snippets that bloat your scripts, complicating the analysis and deterring attackers.

  • Bytecode Encoding: Seamlessly convert critical sections of your script into bytecode, adding an additional layer of complexity that hinders comprehension.

  • Function Inlining: Enhances obfuscation by embedding function bodies directly into their calls, effectively disguising the original flow and logic of the code.

  • Opaque Predicates: Utilizes constructed conditions that always evaluate to true or false, creating confusion about the actual functionality of your code.

  • Dynamic Code Generator: Generates code blocks dynamically from the script itself, complicating static analysis and enhancing security.

  • String to Expressions: Transform string literals into complex mathematical expressions, making it nearly impossible to deduce their original meaning.

  • Virtual Machinery: Employs a virtual machine environment to execute obfuscated code, adding a layer of execution complexity that challenges traditional analysis techniques.

  • Wrap In Function: Encapsulates entire scripts within a function, further obscuring the code's entry points and enhancing overall security.

  • Anti Tamper: Implements runtime integrity checks to detect and block unauthorized overrides or manipulations of core functions and bytecode.

Tip

You can customize your obfuscation settings through the config.lua file.


Installation

Important

It is recommended to use the Lua 5.4 compiler to run Hercules

  1. Clone this repository (alternatively, install the ZIP file):

    git clone https://github.com/zeusssz/hercules-obfuscator.git
    cd hercules-obfuscator/src
  2. Run the obfuscator:

    lua hercules.lua path/to/your/script.lua

Note

Ensure you are in the working directory of hercules.lua, i.e., src by default.


Usage

To obfuscate a Lua script using Hercules, simply run:

lua hercules.lua path/to/your/script.lua

This will generate an obfuscated version of the script in the same directory, with the filename *_obfuscated.lua.

Example

lua hercules.lua my_script.lua

Output: my_script_obfuscated.lua – the obfuscated version of your script.


Original Script : file.lua

-- Function to print a greeting message
function Greet(name)
    print("Hello, " .. name .. "!")
end

-- Function to add two numbers
function Add(a, b)
    return a + b
end

-- Function to test a basic conditional statement
function CheckNumber(num)
    if num > 0 then
        print(num .. " is positive.")
    elseif num < 0 then
        print(num .. " is negative.")
    else
        print(num .. " is zero.")
    end
end

Greet("You")

local sum = Add(5, 10)
print("The sum of 5 and 10 is: " .. sum)

CheckNumber(5)   -- Output: 5 is positive.
CheckNumber(-3)  -- Output: -3 is negative.
CheckNumber(0)   -- Output: 0 is zero.

Obfuscated Script : file_obfuscated.lua (obfuscation was done under Hercules v1.6.2)

--[Obfuscated by Hercules v1.6.2 | hercules-obfuscator.xyz/discord | hercules-obfuscator.xyz/source]
return (function(...) local HgAZmGdyL,AFHMtEgsAgNw,NuZRJhrWZK,atlfseKQxNqH,teBrrQaw,kiNePLfEfRYs,nRUczexVmCp,KXbpLMjzxX,xKYJMrSLO,YrExaiVyi HgAZmGdyL=ipairs;AFHMtEgsAgNw=pairs;NuZRJhrWZK=tostring;atlfseKQxNqH=type;teBrrQaw=math.floor;kiNePLfEfRYs=math.ldexp;nRUczexVmCp=string.char;KXbpLMjzxX=string.format;xKYJMrSLO=table.concat;YrExaiVyi=table.unpack;hercules,v1,alpha,__,IfjzDwdCcfn='Protected By Hercules V1.6 | github.com/zeusssz/hercules-obfuscator',function()end,true,1,0 local LuaFunc,WrapState,BcToState,gChunk;local FyixtHaSOe=50 local CeqRqxbxg=select;local function CdDaQDEpsbj(IfjzDwdCcfn)return{}end;local SPywDMBhzL=unpack or table.unpack local function Pack(...)return{APRqHdWKaRbS=CeqRqxbxg('#',...),...}end local function pXTWcTfMUboP(LilcJyLhfW,UKacSbaNq,JDkPVPBs,VZVVHwbtkOR,GBSUECNeuiK)for i=IfjzDwdCcfn,JDkPVPBs-UKacSbaNq do GBSUECNeuiK[VZVVHwbtkOR+i]=LilcJyLhfW[UKacSbaNq+i]end end local function QdZZjshZTb(yQhlBzUaJBSv,vRnQypcU)local BWlPTMxAz=IfjzDwdCcfn local SxEAuMjwEuZ=__ while yQhlBzUaJBSv>IfjzDwdCcfn and vRnQypcU>IfjzDwdCcfn do if(yQhlBzUaJBSv%2==__)and(vRnQypcU%2==__)then BWlPTMxAz=BWlPTMxAz+SxEAuMjwEuZ end SxEAuMjwEuZ=SxEAuMjwEuZ*2 yQhlBzUaJBSv=teBrrQaw(yQhlBzUaJBSv/2)vRnQypcU=teBrrQaw(vRnQypcU/2)end return BWlPTMxAz end local function JWDNzuvB(ELzwVbETR,APRqHdWKaRbS)return ELzwVbETR*2^APRqHdWKaRbS end local function XxyzbuhWOaU(ELzwVbETR,APRqHdWKaRbS)return teBrrQaw(ELzwVbETR/2^APRqHdWKaRbS)end local function hNeWPSzdbhB(yQhlBzUaJBSv,vRnQypcU)local BWlPTMxAz=IfjzDwdCcfn local khJNnbcC=__ while yQhlBzUaJBSv>IfjzDwdCcfn or vRnQypcU>IfjzDwdCcfn do local VnEMWUPmeLdT=yQhlBzUaJBSv%2 local njaPCBoqh=vRnQypcU%2 if VnEMWUPmeLdT==__ or njaPCBoqh==__ then BWlPTMxAz=BWlPTMxAz+khJNnbcC end yQhlBzUaJBSv=teBrrQaw(yQhlBzUaJBSv/2)vRnQypcU=teBrrQaw(vRnQypcU/2)khJNnbcC=khJNnbcC*2 end return BWlPTMxAz end local function GLLNcdFxYVJ(qnUYJsuyX,GQOmOsDHkI)for i,uv in AFHMtEgsAgNw(qnUYJsuyX)do if uv.GQOmOsDHkI>=GQOmOsDHkI then uv.m=uv.M[uv.GQOmOsDHkI];uv.M=uv;uv.GQOmOsDHkI='m' qnUYJsuyX[i]=nil;end;end;end;local function WPICdwUZxgbt(qnUYJsuyX,GQOmOsDHkI,QQAaOjXCMaLA)local xPLciRbgln=qnUYJsuyX[GQOmOsDHkI]if not xPLciRbgln then xPLciRbgln={GQOmOsDHkI=GQOmOsDHkI,M=QQAaOjXCMaLA}qnUYJsuyX[GQOmOsDHkI]=xPLciRbgln;end;return xPLciRbgln end;local function bLqnkagzTIc(bRCqtPHqtquO)if bRCqtPHqtquO%1==0 then return bRCqtPHqtquO end return bRCqtPHqtquO end local fkxfZUtwl=tostring function jIFCHNDD(jPrTZABJDgi)if atlfseKQxNqH(jPrTZABJDgi)=='number' then local s=fkxfZUtwl(jPrTZABJDgi)if not s:find('[%.eE]')then return s..'.0' end return s end return fkxfZUtwl(jPrTZABJDgi)end local PJuzYePkazn={}for i=0,255 do PJuzYePkazn[nRUczexVmCp(i)]=i end local function xOMcYoIUcD(MHGiKRCM,YhpgfymXSL)YhpgfymXSL=YhpgfymXSL or 1 local HudtFvjNj=MHGiKRCM:sub(YhpgfymXSL,YhpgfymXSL)return PJuzYePkazn[HudtFvjNj]end function aWjLRCpRweh(cALQUXiLFVqS,hIjTTUGKBMOB)local GLalASmrkxE,xZbNSkeVds=#hIjTTUGKBMOB,{}local SCIclNKeBI={}for i=1,GLalASmrkxE do SCIclNKeBI[hIjTTUGKBMOB:sub(i,i)]=i-1 end for encoded_char in cALQUXiLFVqS:gmatch("([^_]+)")do local APRqHdWKaRbS=0 for i=1,#encoded_char do APRqHdWKaRbS=APRqHdWKaRbS*GLalASmrkxE+SCIclNKeBI[encoded_char:sub(i,i)]end xZbNSkeVds[#xZbNSkeVds+1]=nRUczexVmCp(APRqHdWKaRbS)end local nZEiursjBw={}for char in xKYJMrSLO(xZbNSkeVds):gmatch("(.?)\\")do if#char>0 then nZEiursjBw[#nZEiursjBw+1]=xOMcYoIUcD(char)end end local xQfKMikL=1 local function JheryVwxQ()local yplSwGXaELH=nZEiursjBw[xQfKMikL]xQfKMikL=xQfKMikL+1 return yplSwGXaELH end local function tZZcNSkmPDmv()local euAegrkfpwKq,CyFqArjHK=nZEiursjBw[xQfKMikL],nZEiursjBw[xQfKMikL+1]xQfKMikL=xQfKMikL+2 return(CyFqArjHK*256)+euAegrkfpwKq end local function oWuoFUoqLXqc()local euAegrkfpwKq,CyFqArjHK,zFlQtRGM,QlpYHNoZjP=nZEiursjBw[xQfKMikL],nZEiursjBw[xQfKMikL+1],nZEiursjBw[xQfKMikL+2],nZEiursjBw[xQfKMikL+3]xQfKMikL=xQfKMikL+4 return(QlpYHNoZjP*16777216)+(zFlQtRGM*65536)+(CyFqArjHK*256)+euAegrkfpwKq end function vbKnUjZYo()local fNoAZrlUAqqI={APRqHdWKaRbS=JheryVwxQ(),c=JheryVwxQ(),d=JheryVwxQ(),ELzwVbETR={},D={},HrfzkAJl={}}for i=__,oWuoFUoqLXqc()do local SdGCXGydY=oWuoFUoqLXqc()local KspcLDOAiQjM=JheryVwxQ()local FbiHlfYKMkNx=JheryVwxQ()local khKGGbOAxHO={m=SdGCXGydY,S=KspcLDOAiQjM,A=tZZcNSkmPDmv()}local qlWkRwanED={vRnQypcU=JheryVwxQ(),c=JheryVwxQ()}if(FbiHlfYKMkNx==__)then khKGGbOAxHO.qnUYJsuyX=tZZcNSkmPDmv()khKGGbOAxHO.C=tZZcNSkmPDmv()khKGGbOAxHO.s=qlWkRwanED.vRnQypcU==__ and khKGGbOAxHO.qnUYJsuyX>0xFF khKGGbOAxHO.yQhlBzUaJBSv=qlWkRwanED.c==__ and khKGGbOAxHO.C>0xFF elseif(FbiHlfYKMkNx==2)then khKGGbOAxHO.F=oWuoFUoqLXqc()khKGGbOAxHO.g=qlWkRwanED.vRnQypcU==__ elseif(FbiHlfYKMkNx==3)then khKGGbOAxHO.f=oWuoFUoqLXqc()-131071 end fNoAZrlUAqqI.ELzwVbETR[i]=khKGGbOAxHO end for i=__,oWuoFUoqLXqc()do local FbiHlfYKMkNx=JheryVwxQ()if(FbiHlfYKMkNx==__)then fNoAZrlUAqqI.D[i-__]=(JheryVwxQ()~=IfjzDwdCcfn)elseif(FbiHlfYKMkNx==3)then fNoAZrlUAqqI.D[i-__]=(function()local rWdpnEyhp=oWuoFUoqLXqc()local aDfuSgTw=oWuoFUoqLXqc()local azudfWvMLH=__ local HswvPgZvAsq=hNeWPSzdbhB(JWDNzuvB(QdZZjshZTb(aDfuSgTw,0xFFFFF),32),rWdpnEyhp)local zQgchiSAPlOk=QdZZjshZTb(XxyzbuhWOaU(aDfuSgTw,20),0x7FF)local lodImkyW=(-__)^XxyzbuhWOaU(aDfuSgTw,31)if zQgchiSAPlOk==IfjzDwdCcfn then if HswvPgZvAsq==IfjzDwdCcfn then return lodImkyW*IfjzDwdCcfn else zQgchiSAPlOk=__ azudfWvMLH=IfjzDwdCcfn end elseif zQgchiSAPlOk==2047 then if HswvPgZvAsq==IfjzDwdCcfn then return lodImkyW*(__/IfjzDwdCcfn)else return lodImkyW*(IfjzDwdCcfn/IfjzDwdCcfn)end end local yPYVLLUTb=kiNePLfEfRYs(lodImkyW,zQgchiSAPlOk-1023)*(azudfWvMLH+(HswvPgZvAsq/(2^52)))return bLqnkagzTIc(yPYVLLUTb)end)()elseif(FbiHlfYKMkNx==4)then fNoAZrlUAqqI.D[i-__]=(function()local jvNUpzGp local FIYvGlzIpPW=oWuoFUoqLXqc()if(FIYvGlzIpPW==IfjzDwdCcfn)then return end local UIwlIOsClN={}for j=1,FIYvGlzIpPW do UIwlIOsClN[#UIwlIOsClN+1]=nRUczexVmCp(JheryVwxQ())end return xKYJMrSLO(UIwlIOsClN)end)()end end for i=__,oWuoFUoqLXqc()do fNoAZrlUAqqI.HrfzkAJl[i-__]=vbKnUjZYo()end for IfjzDwdCcfn,jPrTZABJDgi in HgAZmGdyL(fNoAZrlUAqqI.ELzwVbETR)do if jPrTZABJDgi.g then jPrTZABJDgi.D=fNoAZrlUAqqI.D[jPrTZABJDgi.F]else if jPrTZABJDgi.s then jPrTZABJDgi.A=fNoAZrlUAqqI.D[jPrTZABJDgi.qnUYJsuyX-256]end if jPrTZABJDgi.yQhlBzUaJBSv then jPrTZABJDgi.C=fNoAZrlUAqqI.D[jPrTZABJDgi.C-256]end end end return fNoAZrlUAqqI end return vbKnUjZYo()end function JTWSvqahdXm(BOTKhGOvSRk,OoKmfgEPPI,APRqHdWKaRbS)local ELzwVbETR=BOTKhGOvSRk.ELzwVbETR;local HrfzkAJl=BOTKhGOvSRk.Z;local jPrTZABJDgi=BOTKhGOvSRk.jPrTZABJDgi;local FpGNJDak=-__;local egEbQOuPOzrm={}local QQAaOjXCMaLA=BOTKhGOvSRk.QQAaOjXCMaLA;local z=BOTKhGOvSRk.z;while alpha do local khKGGbOAxHO=ELzwVbETR[z]local S=khKGGbOAxHO.S;local C=khKGGbOAxHO.C;local A=khKGGbOAxHO.A;local qnUYJsuyX=khKGGbOAxHO.qnUYJsuyX;local D=khKGGbOAxHO.D;local F=khKGGbOAxHO.F;z=z+__;if(S==1)then QQAaOjXCMaLA[khKGGbOAxHO.A]=(atlfseKQxNqH(khKGGbOAxHO.D)=="number" and khKGGbOAxHO.D%1==0)and teBrrQaw(khKGGbOAxHO.D)or khKGGbOAxHO.D elseif(S==2)then QQAaOjXCMaLA[khKGGbOAxHO.A]=khKGGbOAxHO.qnUYJsuyX~=0 if khKGGbOAxHO.C~=0 then z=z+1 end;elseif(S==4)then local tdEcecZPqVF=APRqHdWKaRbS[khKGGbOAxHO.qnUYJsuyX]QQAaOjXCMaLA[khKGGbOAxHO.A]=tdEcecZPqVF.M[tdEcecZPqVF.GQOmOsDHkI]elseif(S==5)then QQAaOjXCMaLA[khKGGbOAxHO.A]=OoKmfgEPPI[khKGGbOAxHO.D]elseif(S==6)then local GQOmOsDHkI if khKGGbOAxHO.yQhlBzUaJBSv then GQOmOsDHkI=khKGGbOAxHO.C;else GQOmOsDHkI=QQAaOjXCMaLA[khKGGbOAxHO.C]end QQAaOjXCMaLA[khKGGbOAxHO.A]=QQAaOjXCMaLA[khKGGbOAxHO.qnUYJsuyX][GQOmOsDHkI]elseif(S==7)then OoKmfgEPPI[khKGGbOAxHO.D]=QQAaOjXCMaLA[khKGGbOAxHO.A]elseif(S==0)then QQAaOjXCMaLA[khKGGbOAxHO.A]=QQAaOjXCMaLA[khKGGbOAxHO.qnUYJsuyX];elseif(S==33)then local A=khKGGbOAxHO.A;local WkTcyUQcwtsc=A+3;local GnvUtaDf={QQAaOjXCMaLA[A](QQAaOjXCMaLA[A+1],QQAaOjXCMaLA[A+2])}pXTWcTfMUboP(GnvUtaDf,1,khKGGbOAxHO.C,WkTcyUQcwtsc,QQAaOjXCMaLA)if QQAaOjXCMaLA[WkTcyUQcwtsc]~=nil then QQAaOjXCMaLA[A+2]=QQAaOjXCMaLA[WkTcyUQcwtsc]z=z+ELzwVbETR[z].f;end;z=z+1 elseif(S==34)then local A=khKGGbOAxHO.A local C=khKGGbOAxHO.C local vRnQypcU=khKGGbOAxHO.qnUYJsuyX;local QRFtTdIXQ=QQAaOjXCMaLA[A]local VZVVHwbtkOR;if vRnQypcU==0 then vRnQypcU=FpGNJDak-A end if C==0 then C=ELzwVbETR[z].m;z=z+1 end;VZVVHwbtkOR=(C-1)*FyixtHaSOe pXTWcTfMUboP(QQAaOjXCMaLA,A+1,A+vRnQypcU,VZVVHwbtkOR+1,QRFtTdIXQ)elseif(S==36)then local OIycrauGcH=HrfzkAJl[khKGGbOAxHO.F]local ZvRhNXsSHyCz=OIycrauGcH.APRqHdWKaRbS;local UvB;if ZvRhNXsSHyCz~=0 then UvB=CdDaQDEpsbj(ZvRhNXsSHyCz-1)for i=1,ZvRhNXsSHyCz do local FiDUulsQIkvU=ELzwVbETR[z+i-1]if(FiDUulsQIkvU.S==0)then UvB[i-1]=WPICdwUZxgbt(egEbQOuPOzrm,FiDUulsQIkvU.qnUYJsuyX,QQAaOjXCMaLA)elseif(FiDUulsQIkvU.S==4)then UvB[i-1]=APRqHdWKaRbS[FiDUulsQIkvU.qnUYJsuyX]end;end;z=z+ZvRhNXsSHyCz end;QQAaOjXCMaLA[khKGGbOAxHO.A]=kvZMBsrLWFE(OIycrauGcH,OoKmfgEPPI,UvB)elseif(S==22)then z=z+khKGGbOAxHO.f elseif(S==23)then local Lhs,Rhs;if khKGGbOAxHO.s then Lhs=khKGGbOAxHO.A else Lhs=QQAaOjXCMaLA[khKGGbOAxHO.qnUYJsuyX]end if khKGGbOAxHO.yQhlBzUaJBSv then Rhs=khKGGbOAxHO.C else Rhs=QQAaOjXCMaLA[khKGGbOAxHO.C]end if(Lhs==Rhs)==(khKGGbOAxHO.A~=0)then z=z+ELzwVbETR[z].f end;z=z+1 elseif(S==24)then local Lhs,Rhs;if khKGGbOAxHO.s then Lhs=khKGGbOAxHO.A else Lhs=QQAaOjXCMaLA[khKGGbOAxHO.qnUYJsuyX]end if khKGGbOAxHO.yQhlBzUaJBSv then Rhs=khKGGbOAxHO.C else Rhs=QQAaOjXCMaLA[khKGGbOAxHO.C]end if(Lhs<Rhs)==(khKGGbOAxHO.A~=0)then z=z+ELzwVbETR[z].f end;z=z+1 elseif(S==10)then QQAaOjXCMaLA[khKGGbOAxHO.A]={}elseif(S==26)then if(not QQAaOjXCMaLA[khKGGbOAxHO.A])~=(khKGGbOAxHO.C~=0)then z=z+ELzwVbETR[z].f end z=z+1 elseif(S==12)then local Lhs,Rhs;if khKGGbOAxHO.s then Lhs=khKGGbOAxHO.A else Lhs=QQAaOjXCMaLA[khKGGbOAxHO.qnUYJsuyX]end if khKGGbOAxHO.yQhlBzUaJBSv then Rhs=khKGGbOAxHO.C else Rhs=QQAaOjXCMaLA[khKGGbOAxHO.C]end QQAaOjXCMaLA[khKGGbOAxHO.A]=bLqnkagzTIc(Lhs+Rhs)elseif(S==28)then local A=khKGGbOAxHO.A;local qnUYJsuyX=khKGGbOAxHO.qnUYJsuyX;local Params;if qnUYJsuyX==0 then Params=FpGNJDak-A;else Params=qnUYJsuyX-1;end;local VtqnUXcXzTrL=Pack(QQAaOjXCMaLA[A](SPywDMBhzL(QQAaOjXCMaLA,A+1,A+Params)))local YfUlwZYZVPw=VtqnUXcXzTrL.APRqHdWKaRbS;if C==0 then FpGNJDak=A+YfUlwZYZVPw-1;else YfUlwZYZVPw=C-1;end;pXTWcTfMUboP(VtqnUXcXzTrL,1,YfUlwZYZVPw,A,QQAaOjXCMaLA)elseif(S==21)then local qnUYJsuyX,C=khKGGbOAxHO.qnUYJsuyX,khKGGbOAxHO.C;local jvNUpzGp="";for i=qnUYJsuyX,C do local jPrTZABJDgi=QQAaOjXCMaLA[i];if atlfseKQxNqH(jPrTZABJDgi)=="number" then if jPrTZABJDgi%1==0 then jvNUpzGp=jvNUpzGp..KXbpLMjzxX("%d",jPrTZABJDgi)else jvNUpzGp=jvNUpzGp..KXbpLMjzxX("%g",jPrTZABJDgi)end else jvNUpzGp=jvNUpzGp..jIFCHNDD(jPrTZABJDgi)end end QQAaOjXCMaLA[khKGGbOAxHO.A]=jvNUpzGp;elseif(S==30)then local A=khKGGbOAxHO.A;local vRnQypcU=khKGGbOAxHO.qnUYJsuyX;if qnUYJsuyX==0 then vRnQypcU=FpGNJDak-A+1;else vRnQypcU=qnUYJsuyX-1;end;GLLNcdFxYVJ(egEbQOuPOzrm,0)return SPywDMBhzL(QQAaOjXCMaLA,A,A+vRnQypcU-1)end BOTKhGOvSRk.z=z;end;end;function kvZMBsrLWFE(HrfzkAJl,OoKmfgEPPI,eXLWcbgP)local function Wrapped(...)local jCwVcDhvweV=Pack(...)local QQAaOjXCMaLA=CdDaQDEpsbj(HrfzkAJl.d)local jPrTZABJDgi={vRnQypcU=IfjzDwdCcfn,qnUYJsuyX={}}pXTWcTfMUboP(jCwVcDhvweV,__,HrfzkAJl.c,IfjzDwdCcfn,QQAaOjXCMaLA)if(HrfzkAJl.c<jCwVcDhvweV.APRqHdWKaRbS)then local PfauOCErc=HrfzkAJl.c+__ local vRnQypcU=jCwVcDhvweV.APRqHdWKaRbS-HrfzkAJl.c;jPrTZABJDgi.vRnQypcU=vRnQypcU;pXTWcTfMUboP(jCwVcDhvweV,PfauOCErc,PfauOCErc+vRnQypcU-__,__,jPrTZABJDgi.qnUYJsuyX)end;local BOTKhGOvSRk={jPrTZABJDgi=jPrTZABJDgi,QQAaOjXCMaLA=QQAaOjXCMaLA,ELzwVbETR=HrfzkAJl.ELzwVbETR,Z=HrfzkAJl.HrfzkAJl,z=__}return JTWSvqahdXm(BOTKhGOvSRk,OoKmfgEPPI,eXLWcbgP)end;return Wrapped;end;kvZMBsrLWFE(aWjLRCpRweh('\29\95\67\95\29\95\67\95\37\95\67\95\77\64\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\2\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\2\95\67\95\63\95\67\95\29\95\67\95\29\95\67\95\77\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\77\85\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\28\95\67\95\63\95\67\95\77\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\67\95\67\95\29\95\67\95\77\17\95\67\95\29\95\67\95\37\95\67\95\77\95\67\95\77\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\77\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\37\95\67\95\80\95\67\95\29\95\67\95\29\95\67\95\37\95\67\95\77\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\77\95\67\95\29\95\67\95\2\95\67\95\80\95\67\95\29\95\67\95\29\95\67\95\2\95\67\95\63\95\67\95\29\95\67\95\29\95\67\95\77\95\67\95\29\95\67\95\77\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\77\85\95\67\95\80\95\67\95\29\95\67\95\29\95\67\95\28\95\67\95\63\95\67\95\77\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\77\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\77\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\77\52\95\67\95\77\17\95\67\95\29\95\67\95\29\95\67\95\28\95\67\95\63\95\67\95\63\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\63\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\77\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\63\43\95\67\95\29\95\67\95\29\95\67\95\77\95\67\95\29\95\67\95\77\95\67\95\69\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\63\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\63\13\95\67\95\77\17\95\67\95\77\17\95\67\95\29\95\67\95\37\95\67\95\77\95\67\95\69\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\77\95\67\95\29\95\67\95\63\95\67\95\29\95\67\95\63\44\95\67\95\80\95\67\95\29\95\67\95\29\95\67\95\36\95\67\95\77\95\67\95\69\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\77\95\67\95\29\95\67\95\40\95\67\95\63\43\95\67\95\29\95\67\95\77\17\95\67\95\40\95\67\95\69\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\69\95\67\95\29\95\67\95\63\95\67\95\29\95\67\95\63\43\95\67\95\29\95\67\95\77\17\95\67\95\29\95\67\95\29\95\67\95\77\95\67\95\69\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\77\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\63\13\95\67\95\77\17\95\67\95\77\17\95\67\95\29\95\67\95\37\95\67\95\77\95\67\95\69\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\77\95\67\95\29\95\67\95\63\95\67\95\29\95\67\95\63\44\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\36\95\67\95\77\95\67\95\69\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\40\95\67\95\63\43\95\67\95\29\95\67\95\77\17\95\67\95\40\95\67\95\69\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\69\95\67\95\29\95\67\95\63\95\67\95\29\95\67\95\63\84\95\67\95\77\17\95\67\95\29\95\67\95\29\95\67\95\2\95\67\95\63\95\67\95\69\95\67\95\29\95\67\95\77\95\67\95\29\95\67\95\63\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\77\95\67\95\63\2\95\67\95\29\95\67\95\29\95\67\95\77\95\67\95\63\95\67\95\43\95\67\95\29\95\67\95\77\95\67\95\29\95\67\95\69\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\63\13\95\67\95\80\95\67\95\29\95\67\95\77\95\67\95\37\95\67\95\77\95\67\95\69\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\63\95\67\95\29\95\67\95\77\95\67\95\29\95\67\95\44\95\67\95\29\95\67\95\77\17\95\67\95\29\95\67\95\44\95\67\95\77\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\77\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\63\2\95\67\95\29\95\67\95\77\95\67\95\29\95\67\95\77\95\67\95\63\95\67\95\69\95\67\95\29\95\67\95\77\95\67\95\29\95\67\95\43\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\63\26\95\67\95\63\43\95\67\95\29\95\67\95\29\95\67\95\28\95\67\95\63\95\67\95\69\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\69\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\77\95\67\95\79\95\67\95\77\95\67\95\29\95\67\95\77\95\67\95\63\95\67\95\43\95\67\95\29\95\67\95\77\95\67\95\29\95\67\95\2\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\79\95\67\95\77\61\95\67\95\77\95\67\95\29\95\67\95\77\95\67\95\63\95\67\95\2\95\67\95\29\95\67\95\77\95\67\95\29\95\67\95\85\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\77\52\95\67\95\77\95\67\95\77\95\67\95\29\95\67\95\28\95\67\95\63\95\67\95\85\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\43\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\63\2\95\67\95\63\2\95\67\95\77\95\67\95\29\95\67\95\77\95\67\95\63\95\67\95\89\95\67\95\29\95\67\95\77\95\67\95\29\95\67\95\89\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\40\95\67\95\77\17\95\67\95\29\95\67\95\77\17\95\67\95\40\95\67\95\69\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\63\95\67\95\29\95\67\95\63\95\67\95\29\95\67\95\63\2\95\67\95\77\95\67\95\63\95\67\95\29\95\67\95\77\95\67\95\63\95\67\95\89\95\67\95\29\95\67\95\77\95\67\95\29\95\67\95\41\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\40\95\67\95\29\95\67\95\29\95\67\95\77\17\95\67\95\40\95\67\95\69\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\63\95\67\95\29\95\67\95\40\95\67\95\63\43\95\67\95\63\72\95\67\95\77\50\95\67\95\40\95\67\95\69\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\63\9\95\67\95\63\6\95\67\95\77\95\67\95\29\95\67\95\63\2\95\67\95\79\95\67\95\63\95\67\95\29\95\67\95\77\95\67\95\63\95\67\95\89\95\67\95\29\95\67\95\77\95\67\95\29\95\67\95\84\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\77\95\67\95\77\28\95\67\95\63\95\67\95\29\95\67\95\77\95\67\95\63\95\67\95\41\95\67\95\29\95\67\95\77\95\67\95\29\95\67\95\7\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\77\85\95\67\95\72\95\67\95\77\95\67\95\29\95\67\95\28\95\67\95\63\95\67\95\84\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\2\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\77\61\95\67\95\63\85\95\67\95\63\95\67\95\29\95\67\95\77\95\67\95\63\95\67\95\7\95\67\95\29\95\67\95\77\95\67\95\29\95\67\95\10\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\63\26\95\67\95\77\28\95\67\95\77\95\67\95\29\95\67\95\28\95\67\95\63\95\67\95\10\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\85\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\28\95\67\95\63\89\95\67\95\77\95\67\95\29\95\67\95\28\95\67\95\63\95\67\95\15\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\89\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\79\95\67\95\69\95\67\95\69\95\67\95\29\95\67\95\77\95\67\95\63\95\67\95\65\95\67\95\29\95\67\95\77\95\67\95\29\95\67\95\15\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\40\95\67\95\77\17\95\67\95\77\95\67\95\77\17\95\67\95\40\95\67\95\69\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\85\95\67\95\29\95\67\95\63\95\67\95\29\95\67\95\77\61\95\67\95\6\95\67\95\69\95\67\95\29\95\67\95\77\95\67\95\63\95\67\95\31\95\67\95\29\95\67\95\77\95\67\95\29\95\67\95\65\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\40\95\67\95\29\95\67\95\77\95\67\95\77\17\95\67\95\40\95\67\95\69\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\43\95\67\95\29\95\67\95\63\95\67\95\29\95\67\95\77\61\95\67\95\77\20\95\67\95\69\95\67\95\29\95\67\95\77\95\67\95\63\95\67\95\31\95\67\95\29\95\67\95\77\95\67\95\29\95\67\95\31\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\40\95\67\95\77\17\95\67\95\29\95\67\95\77\17\95\67\95\40\95\67\95\69\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\63\95\67\95\29\95\67\95\63\95\67\95\29\95\67\95\40\95\67\95\63\43\95\67\95\63\72\95\67\95\77\50\95\67\95\40\95\67\95\69\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\63\9\95\67\95\63\6\95\67\95\77\95\67\95\29\95\67\95\40\95\67\95\29\95\67\95\29\95\67\95\77\17\95\67\95\40\95\67\95\69\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\63\95\67\95\29\95\67\95\77\61\95\67\95\63\89\95\67\95\69\95\67\95\29\95\67\95\77\95\67\95\63\95\67\95\31\95\67\95\29\95\67\95\77\95\67\95\29\95\67\95\88\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\77\28\95\67\95\69\95\67\95\29\95\67\95\29\95\67\95\63\95\67\95\77\95\67\95\31\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\77\93\95\67\95\6\95\67\95\29\95\67\95\29\95\67\95\36\95\67\95\77\95\67\95\31\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\77\95\67\95\29\95\67\95\40\95\67\95\77\17\95\67\95\63\95\67\95\77\17\95\67\95\40\95\67\95\69\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\7\95\67\95\29\95\67\95\63\95\67\95\29\95\67\95\63\84\95\67\95\69\95\67\95\43\95\67\95\29\95\67\95\2\95\67\95\63\95\67\95\88\95\67\95\29\95\67\95\77\95\67\95\29\95\67\95\68\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\63\7\95\67\95\6\95\67\95\63\41\95\67\95\89\95\67\95\85\95\67\95\77\95\67\95\88\95\67\95\29\95\67\95\29\95\67\95\77\95\67\95\88\95\67\95\29\95\67\95\25\95\67\95\77\95\67\95\77\95\67\95\77\94\95\67\95\43\95\67\95\29\95\67\95\77\95\67\95\63\95\67\95\68\95\67\95\29\95\67\95\77\95\67\95\29\95\67\95\82\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\79\95\67\95\63\41\95\67\95\43\95\67\95\29\95\67\95\77\95\67\95\63\95\67\95\25\95\67\95\29\95\67\95\77\95\67\95\29\95\67\95\21\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\63\13\95\67\95\77\20\95\67\95\77\17\95\67\95\77\95\67\95\37\95\67\95\77\95\67\95\88\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\69\95\67\95\29\95\67\95\63\95\67\95\29\95\67\95\24\95\67\95\77\17\95\67\95\63\41\95\67\95\89\95\67\95\24\95\67\95\77\95\67\95\29\95\67\95\29\95\67\95\77\95\67\95\77\95\67\95\88\95\67\95\29\95\67\95\82\95\67\95\77\95\67\95\40\95\67\95\80\95\67\95\29\95\67\95\77\17\95\67\95\40\95\67\95\69\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\77\95\67\95\29\95\67\95\63\95\67\95\29\95\67\95\63\2\95\67\95\69\95\67\95\2\95\67\95\29\95\67\95\77\95\67\95\63\95\67\95\88\95\67\95\29\95\67\95\77\95\67\95\29\95\67\95\1\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\40\95\67\95\29\95\67\95\63\79\95\67\95\77\50\95\67\95\40\95\67\95\69\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\63\46\95\67\95\63\6\95\67\95\77\95\67\95\29\95\67\95\77\28\95\67\95\69\95\67\95\77\17\95\67\95\29\95\67\95\63\95\67\95\77\95\67\95\31\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\77\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\40\95\67\95\77\17\95\67\95\63\80\95\67\95\77\50\95\67\95\40\95\67\95\69\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\63\53\95\67\95\63\6\95\67\95\77\95\67\95\29\95\67\95\63\85\95\67\95\69\95\67\95\29\95\67\95\29\95\67\95\63\95\67\95\77\95\67\95\88\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\63\44\95\67\95\6\95\67\95\29\95\67\95\29\95\67\95\36\95\67\95\77\95\67\95\88\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\77\95\67\95\29\95\67\95\40\95\67\95\77\17\95\67\95\63\95\67\95\77\17\95\67\95\40\95\67\95\69\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\7\95\67\95\29\95\67\95\63\95\67\95\29\95\67\95\2\95\67\95\43\95\67\95\43\95\67\95\29\95\67\95\2\95\67\95\63\95\67\95\68\95\67\95\29\95\67\95\77\95\67\95\29\95\67\95\68\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\85\95\67\95\59\95\67\95\59\95\67\95\41\95\67\95\85\95\67\95\77\95\67\95\68\95\67\95\29\95\67\95\29\95\67\95\77\95\67\95\68\95\67\95\29\95\67\95\25\95\67\95\77\95\67\95\79\95\67\95\77\94\95\67\95\43\95\67\95\29\95\67\95\77\95\67\95\63\95\67\95\25\95\67\95\29\95\67\95\77\95\67\95\29\95\67\95\82\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\77\61\95\67\95\63\41\95\67\95\43\95\67\95\29\95\67\95\77\95\67\95\63\95\67\95\82\95\67\95\29\95\67\95\77\95\67\95\29\95\67\95\21\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\37\95\67\95\77\94\95\67\95\77\17\95\67\95\77\95\67\95\37\95\67\95\77\95\67\95\68\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\69\95\67\95\29\95\67\95\63\95\67\95\29\95\67\95\24\95\67\95\77\17\95\67\95\59\95\67\95\41\95\67\95\24\95\67\95\77\95\67\95\29\95\67\95\29\95\67\95\77\95\67\95\77\95\67\95\68\95\67\95\29\95\67\95\82\95\67\95\77\95\67\95\40\95\67\95\80\95\67\95\29\95\67\95\77\17\95\67\95\40\95\67\95\69\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\77\95\67\95\29\95\67\95\63\95\67\95\29\95\67\95\77\95\67\95\59\95\67\95\2\95\67\95\29\95\67\95\77\95\67\95\63\95\67\95\68\95\67\95\29\95\67\95\77\95\67\95\29\95\67\95\58\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\40\95\67\95\29\95\67\95\63\79\95\67\95\77\50\95\67\95\40\95\67\95\69\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\63\46\95\67\95\63\6\95\67\95\77\95\67\95\29\95\67\95\63\85\95\67\95\69\95\67\95\77\17\95\67\95\29\95\67\95\63\95\67\95\77\95\67\95\88\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\77\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\40\95\67\95\77\17\95\67\95\63\80\95\67\95\77\50\95\67\95\40\95\67\95\69\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\63\53\95\67\95\63\6\95\67\95\77\95\67\95\29\95\67\95\63\95\67\95\43\95\67\95\29\95\67\95\29\95\67\95\63\95\67\95\77\95\67\95\68\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\36\95\67\95\59\95\67\95\29\95\67\95\29\95\67\95\36\95\67\95\77\95\67\95\68\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\77\95\67\95\29\95\67\95\40\95\67\95\77\17\95\67\95\63\95\67\95\77\17\95\67\95\40\95\67\95\69\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\7\95\67\95\29\95\67\95\63\95\67\95\29\95\67\95\3\95\67\95\43\95\67\95\43\95\67\95\29\95\67\95\2\95\67\95\63\95\67\95\25\95\67\95\29\95\67\95\77\95\67\95\29\95\67\95\68\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\52\95\67\95\59\95\67\95\63\41\95\67\95\41\95\67\95\85\95\67\95\77\95\67\95\25\95\67\95\29\95\67\95\29\95\67\95\77\95\67\95\25\95\67\95\29\95\67\95\25\95\67\95\77\95\67\95\77\61\95\67\95\77\94\95\67\95\43\95\67\95\29\95\67\95\77\95\67\95\63\95\67\95\82\95\67\95\29\95\67\95\77\95\67\95\29\95\67\95\82\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\63\2\95\67\95\63\41\95\67\95\43\95\67\95\29\95\67\95\77\95\67\95\63\95\67\95\21\95\67\95\29\95\67\95\77\95\67\95\29\95\67\95\21\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\67\95\67\95\77\94\95\67\95\77\17\95\67\95\77\95\67\95\37\95\67\95\77\95\67\95\25\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\69\95\67\95\29\95\67\95\63\95\67\95\29\95\67\95\24\95\67\95\77\17\95\67\95\63\41\95\67\95\41\95\67\95\24\95\67\95\77\95\67\95\29\95\67\95\29\95\67\95\77\95\67\95\77\95\67\95\25\95\67\95\29\95\67\95\82\95\67\95\77\95\67\95\40\95\67\95\80\95\67\95\29\95\67\95\77\17\95\67\95\40\95\67\95\69\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\77\95\67\95\29\95\67\95\63\95\67\95\29\95\67\95\79\95\67\95\77\94\95\67\95\2\95\67\95\29\95\67\95\77\95\67\95\63\95\67\95\25\95\67\95\29\95\67\95\77\95\67\95\29\95\67\95\40\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\40\95\67\95\29\95\67\95\63\79\95\67\95\77\50\95\67\95\40\95\67\95\69\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\63\46\95\67\95\63\6\95\67\95\77\95\67\95\29\95\67\95\63\95\67\95\43\95\67\95\77\17\95\67\95\29\95\67\95\63\95\67\95\77\95\67\95\68\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\77\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\40\95\67\95\77\17\95\67\95\63\80\95\67\95\77\50\95\67\95\40\95\67\95\69\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\63\53\95\67\95\63\6\95\67\95\77\95\67\95\29\95\67\95\72\95\67\95\43\95\67\95\29\95\67\95\29\95\67\95\63\95\67\95\77\95\67\95\25\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\38\95\67\95\59\95\67\95\29\95\67\95\29\95\67\95\36\95\67\95\77\95\67\95\25\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\77\95\67\95\29\95\67\95\40\95\67\95\77\17\95\67\95\63\95\67\95\77\17\95\67\95\40\95\67\95\69\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\7\95\67\95\29\95\67\95\63\95\67\95\29\95\67\95\77\56\95\67\95\43\95\67\95\43\95\67\95\29\95\67\95\2\95\67\95\63\95\67\95\82\95\67\95\29\95\67\95\77\95\67\95\29\95\67\95\68\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\77\26\95\67\95\59\95\67\95\59\95\67\95\84\95\67\95\85\95\67\95\77\95\67\95\82\95\67\95\29\95\67\95\29\95\67\95\77\95\67\95\82\95\67\95\29\95\67\95\25\95\67\95\77\95\67\95\63\2\95\67\95\77\94\95\67\95\43\95\67\95\29\95\67\95\77\95\67\95\63\95\67\95\21\95\67\95\29\95\67\95\77\95\67\95\29\95\67\95\82\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\77\95\67\95\63\84\95\67\95\43\95\67\95\29\95\67\95\77\95\67\95\63\95\67\95\1\95\67\95\29\95\67\95\77\95\67\95\29\95\67\95\21\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\77\86\95\67\95\77\94\95\67\95\77\17\95\67\95\77\95\67\95\37\95\67\95\77\95\67\95\82\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\69\95\67\95\29\95\67\95\63\95\67\95\29\95\67\95\24\95\67\95\77\17\95\67\95\59\95\67\95\84\95\67\95\24\95\67\95\77\95\67\95\29\95\67\95\29\95\67\95\77\95\67\95\77\95\67\95\82\95\67\95\29\95\67\95\82\95\67\95\77\95\67\95\40\95\67\95\80\95\67\95\29\95\67\95\77\17\95\67\95\40\95\67\95\69\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\77\95\67\95\29\95\67\95\63\95\67\95\29\95\67\95\77\61\95\67\95\63\41\95\67\95\2\95\67\95\29\95\67\95\77\95\67\95\63\95\67\95\82\95\67\95\29\95\67\95\77\95\67\95\29\95\67\95\24\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\40\95\67\95\29\95\67\95\63\79\95\67\95\77\50\95\67\95\40\95\67\95\69\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\63\46\95\67\95\63\6\95\67\95\77\95\67\95\29\95\67\95\72\95\67\95\43\95\67\95\77\17\95\67\95\29\95\67\95\63\95\67\95\77\95\67\95\25\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\77\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\40\95\67\95\77\17\95\67\95\63\80\95\67\95\77\50\95\67\95\40\95\67\95\69\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\63\53\95\67\95\63\6\95\67\95\77\95\67\95\29\95\67\95\77\28\95\67\95\43\95\67\95\29\95\67\95\29\95\67\95\63\95\67\95\77\95\67\95\82\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\77\93\95\67\95\59\95\67\95\29\95\67\95\29\95\67\95\36\95\67\95\77\95\67\95\82\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\77\95\67\95\29\95\67\95\40\95\67\95\77\17\95\67\95\63\95\67\95\77\17\95\67\95\40\95\67\95\69\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\7\95\67\95\29\95\67\95\63\95\67\95\29\95\67\95\63\84\95\67\95\43\95\67\95\43\95\67\95\29\95\67\95\2\95\67\95\63\95\67\95\21\95\67\95\29\95\67\95\77\95\67\95\29\95\67\95\68\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\63\7\95\67\95\59\95\67\95\63\41\95\67\95\84\95\67\95\85\95\67\95\77\95\67\95\21\95\67\95\29\95\67\95\29\95\67\95\77\95\67\95\21\95\67\95\29\95\67\95\25\95\67\95\77\95\67\95\77\95\67\95\77\56\95\67\95\43\95\67\95\29\95\67\95\77\95\67\95\63\95\67\95\1\95\67\95\29\95\67\95\77\95\67\95\29\95\67\95\82\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\79\95\67\95\63\84\95\67\95\43\95\67\95\29\95\67\95\77\95\67\95\63\95\67\95\58\95\67\95\29\95\67\95\77\95\67\95\29\95\67\95\21\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\63\13\95\67\95\77\94\95\67\95\77\17\95\67\95\77\95\67\95\37\95\67\95\77\95\67\95\21\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\69\95\67\95\29\95\67\95\63\95\67\95\29\95\67\95\24\95\67\95\77\17\95\67\95\63\41\95\67\95\84\95\67\95\24\95\67\95\77\95\67\95\29\95\67\95\29\95\67\95\77\95\67\95\77\95\67\95\21\95\67\95\29\95\67\95\82\95\67\95\77\95\67\95\40\95\67\95\80\95\67\95\29\95\67\95\77\17\95\67\95\40\95\67\95\69\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\77\95\67\95\29\95\67\95\63\95\67\95\29\95\67\95\63\2\95\67\95\43\95\67\95\85\95\67\95\29\95\67\95\77\95\67\95\63\95\67\95\21\95\67\95\29\95\67\95\77\95\67\95\29\95\67\95\78\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\40\95\67\95\29\95\67\95\63\79\95\67\95\77\50\95\67\95\40\95\67\95\69\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\63\46\95\67\95\63\6\95\67\95\77\95\67\95\29\95\67\95\77\28\95\67\95\43\95\67\95\77\17\95\67\95\29\95\67\95\63\95\67\95\77\95\67\95\82\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\77\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\40\95\67\95\77\17\95\67\95\63\80\95\67\95\77\50\95\67\95\40\95\67\95\69\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\63\53\95\67\95\63\6\95\67\95\77\95\67\95\29\95\67\95\63\85\95\67\95\43\95\67\95\29\95\67\95\29\95\67\95\63\95\67\95\77\95\67\95\21\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\63\44\95\67\95\59\95\67\95\29\95\67\95\29\95\67\95\36\95\67\95\77\95\67\95\21\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\77\95\67\95\29\95\67\95\40\95\67\95\77\17\95\67\95\63\95\67\95\77\17\95\67\95\40\95\67\95\69\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\7\95\67\95\29\95\67\95\63\95\67\95\29\95\67\95\2\95\67\95\2\95\67\95\43\95\67\95\29\95\67\95\2\95\67\95\63\95\67\95\1\95\67\95\29\95\67\95\77\95\67\95\29\95\67\95\68\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\85\95\67\95\3\95\67\95\59\95\67\95\7\95\67\95\85\95\67\95\77\95\67\95\1\95\67\95\29\95\67\95\29\95\67\95\77\95\67\95\1\95\67\95\29\95\67\95\25\95\67\95\77\95\67\95\79\95\67\95\77\56\95\67\95\43\95\67\95\29\95\67\95\77\95\67\95\63\95\67\95\58\95\67\95\29\95\67\95\77\95\67\95\29\95\67\95\82\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\77\61\95\67\95\63\84\95\67\95\43\95\67\95\29\95\67\95\77\95\67\95\63\95\67\95\40\95\67\95\29\95\67\95\77\95\67\95\29\95\67\95\21\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\37\95\67\95\77\56\95\67\95\77\17\95\67\95\77\95\67\95\37\95\67\95\77\95\67\95\1\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\69\95\67\95\29\95\67\95\63\95\67\95\29\95\67\95\24\95\67\95\77\17\95\67\95\59\95\67\95\7\95\67\95\24\95\67\95\77\95\67\95\29\95\67\95\29\95\67\95\77\95\67\95\77\95\67\95\1\95\67\95\29\95\67\95\82\95\67\95\77\95\67\95\40\95\67\95\80\95\67\95\29\95\67\95\77\17\95\67\95\40\95\67\95\69\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\77\95\67\95\29\95\67\95\63\95\67\95\29\95\67\95\77\95\67\95\3\95\67\95\85\95\67\95\29\95\67\95\77\95\67\95\63\95\67\95\1\95\67\95\29\95\67\95\77\95\67\95\29\95\67\95\70\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\40\95\67\95\29\95\67\95\63\79\95\67\95\77\50\95\67\95\40\95\67\95\69\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\63\46\95\67\95\63\6\95\67\95\77\95\67\95\29\95\67\95\63\85\95\67\95\43\95\67\95\77\17\95\67\95\29\95\67\95\63\95\67\95\77\95\67\95\21\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\77\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\40\95\67\95\77\17\95\67\95\63\80\95\67\95\77\50\95\67\95\40\95\67\95\69\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\63\53\95\67\95\63\6\95\67\95\77\95\67\95\29\95\67\95\28\95\67\95\2\95\67\95\63\95\67\95\29\95\67\95\28\95\67\95\63\95\67\95\1\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\41\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\89\95\67\95\77\56\95\67\95\85\95\67\95\29\95\67\95\89\95\67\95\63\95\67\95\1\95\67\95\29\95\67\95\77\95\67\95\29\95\67\95\36\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\28\95\67\95\3\95\67\95\63\95\67\95\29\95\67\95\28\95\67\95\63\95\67\95\1\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\84\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\89\95\67\95\63\84\95\67\95\85\95\67\95\29\95\67\95\89\95\67\95\63\95\67\95\1\95\67\95\29\95\67\95\77\95\67\95\29\95\67\95\49\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\28\95\67\95\77\56\95\67\95\63\95\67\95\29\95\67\95\28\95\67\95\63\95\67\95\1\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\7\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\89\95\67\95\2\95\67\95\89\95\67\95\29\95\67\95\89\95\67\95\63\95\67\95\1\95\67\95\29\95\67\95\77\95\67\95\29\95\67\95\37\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\2\95\67\95\77\56\95\67\95\85\95\67\95\29\95\67\95\2\95\67\95\63\95\67\95\1\95\67\95\29\95\67\95\77\95\67\95\29\95\67\95\36\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\79\95\67\95\3\95\67\95\89\95\67\95\29\95\67\95\77\95\67\95\63\95\67\95\58\95\67\95\29\95\67\95\77\95\67\95\29\95\67\95\47\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\37\95\67\95\3\95\67\95\29\95\67\95\77\95\67\95\37\95\67\95\77\95\67\95\1\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\63\95\67\95\29\95\67\95\77\95\67\95\29\95\67\95\2\95\67\95\63\84\95\67\95\85\95\67\95\29\95\67\95\2\95\67\95\63\95\67\95\1\95\67\95\29\95\67\95\77\95\67\95\29\95\67\95\49\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\79\95\67\95\77\56\95\67\95\89\95\67\95\29\95\67\95\77\95\67\95\63\95\67\95\58\95\67\95\29\95\67\95\77\95\67\95\29\95\67\95\44\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\77\61\95\67\95\2\95\67\95\77\95\67\95\29\95\67\95\77\95\67\95\63\95\67\95\40\95\67\95\29\95\67\95\77\95\67\95\29\95\67\95\43\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\37\95\67\95\77\56\95\67\95\77\17\95\67\95\77\95\67\95\37\95\67\95\77\95\67\95\1\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\69\95\67\95\29\95\67\95\63\95\67\95\29\95\67\95\3\95\67\95\77\56\95\67\95\29\95\67\95\29\95\67\95\2\95\67\95\63\95\67\95\58\95\67\95\29\95\67\95\77\95\67\95\29\95\67\95\63\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\77\61\95\67\95\63\84\95\67\95\89\95\67\95\29\95\67\95\77\95\67\95\63\95\67\95\40\95\67\95\29\95\67\95\77\95\67\95\29\95\67\95\73\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\63\43\95\67\95\2\95\67\95\29\95\67\95\7\95\67\95\29\95\67\95\77\95\67\95\24\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\1\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\77\91\95\67\95\63\84\95\67\95\2\95\67\95\10\95\67\95\58\95\67\95\77\95\67\95\40\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\40\95\67\95\29\95\67\95\24\95\67\95\29\95\67\95\67\95\67\95\3\95\67\95\29\95\67\95\77\95\67\95\37\95\67\95\77\95\67\95\58\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\63\95\67\95\29\95\67\95\77\95\67\95\29\95\67\95\3\95\67\95\2\95\67\95\89\95\67\95\29\95\67\95\2\95\67\95\63\95\67\95\58\95\67\95\29\95\67\95\77\95\67\95\29\95\67\95\37\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\77\61\95\67\95\77\56\95\67\95\89\95\67\95\29\95\67\95\77\95\67\95\63\95\67\95\40\95\67\95\29\95\67\95\77\95\67\95\29\95\67\95\44\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\67\95\67\95\3\95\67\95\29\95\67\95\77\95\67\95\37\95\67\95\77\95\67\95\58\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\63\95\67\95\29\95\67\95\77\95\67\95\29\95\67\95\3\95\67\95\2\95\67\95\89\95\67\95\29\95\67\95\2\95\67\95\63\95\67\95\58\95\67\95\29\95\67\95\77\95\67\95\29\95\67\95\37\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\77\61\95\67\95\2\95\67\95\41\95\67\95\29\95\67\95\77\95\67\95\63\95\67\95\40\95\67\95\29\95\67\95\77\95\67\95\29\95\67\95\13\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\67\95\67\95\3\95\67\95\29\95\67\95\77\95\67\95\37\95\67\95\77\95\67\95\58\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\63\95\67\95\29\95\67\95\77\95\67\95\29\95\67\95\3\95\67\95\2\95\67\95\89\95\67\95\29\95\67\95\2\95\67\95\63\95\67\95\58\95\67\95\29\95\67\95\77\95\67\95\29\95\67\95\37\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\77\61\95\67\95\77\56\95\67\95\43\95\67\95\29\95\67\95\77\95\67\95\63\95\67\95\40\95\67\95\29\95\67\95\77\95\67\95\29\95\67\95\82\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\67\95\67\95\3\95\67\95\29\95\67\95\77\95\67\95\37\95\67\95\77\95\67\95\58\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\63\95\67\95\29\95\67\95\77\95\67\95\29\95\67\95\77\85\95\67\95\63\84\95\67\95\63\95\67\95\29\95\67\95\28\95\67\95\63\95\67\95\58\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\10\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\77\61\95\67\95\3\95\67\95\41\95\67\95\29\95\67\95\77\95\67\95\63\95\67\95\40\95\67\95\29\95\67\95\77\95\67\95\29\95\67\95\50\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\40\95\67\95\77\17\95\67\95\29\95\67\95\77\17\95\67\95\40\95\67\95\69\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\63\95\67\95\29\95\67\95\63\95\67\95\29\95\67\95\63\2\95\67\95\77\56\95\67\95\41\95\67\95\29\95\67\95\77\95\67\95\63\95\67\95\24\95\67\95\29\95\67\95\77\95\67\95\29\95\67\95\17\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\40\95\67\95\29\95\67\95\29\95\67\95\77\17\95\67\95\40\95\67\95\69\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\63\95\67\95\29\95\67\95\63\2\95\67\95\63\84\95\67\95\41\95\67\95\29\95\67\95\77\95\67\95\63\95\67\95\24\95\67\95\29\95\67\95\77\95\67\95\29\95\67\95\61\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\63\26\95\67\95\2\95\67\95\69\95\67\95\29\95\67\95\28\95\67\95\63\95\67\95\24\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\15\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\77\95\67\95\85\95\67\95\84\95\67\95\29\95\67\95\77\95\67\95\63\95\67\95\78\95\67\95\29\95\67\95\77\95\67\95\29\95\67\95\28\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\28\95\67\95\52\95\67\95\69\95\67\95\29\95\67\95\28\95\67\95\63\95\67\95\78\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\65\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\40\95\67\95\29\95\67\95\29\95\67\95\77\17\95\67\95\40\95\67\95\69\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\63\95\67\95\29\95\67\95\79\95\67\95\52\95\67\95\84\95\67\95\29\95\67\95\77\95\67\95\63\95\67\95\70\95\67\95\29\95\67\95\77\95\67\95\29\95\67\95\20\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\79\95\67\95\77\26\95\67\95\84\95\67\95\29\95\67\95\77\95\67\95\63\95\67\95\70\95\67\95\29\95\67\95\77\95\67\95\29\95\67\95\94\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\40\95\67\95\29\95\67\95\29\95\67\95\77\17\95\67\95\40\95\67\95\69\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\63\95\67\95\29\95\67\95\77\61\95\67\95\63\7\95\67\95\84\95\67\95\29\95\67\95\77\95\67\95\63\95\67\95\36\95\67\95\29\95\67\95\77\95\67\95\29\95\67\95\56\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\77\61\95\67\95\63\7\95\67\95\84\95\67\95\29\95\67\95\77\95\67\95\63\95\67\95\36\95\67\95\29\95\67\95\77\95\67\95\29\95\67\95\56\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\40\95\67\95\29\95\67\95\29\95\67\95\77\17\95\67\95\40\95\67\95\69\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\63\95\67\95\29\95\67\95\77\61\95\67\95\85\95\67\95\69\95\67\95\29\95\67\95\77\95\67\95\63\95\67\95\36\95\67\95\29\95\67\95\77\95\67\95\29\95\67\95\15\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\77\61\95\67\95\85\95\67\95\7\95\67\95\29\95\67\95\77\95\67\95\63\95\67\95\36\95\67\95\29\95\67\95\77\95\67\95\29\95\67\95\26\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\63\26\95\67\95\77\26\95\67\95\69\95\67\95\29\95\67\95\28\95\67\95\63\95\67\95\49\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\31\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\44\95\67\95\29\95\67\95\77\17\95\67\95\29\95\67\95\44\95\67\95\77\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\77\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\19\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\43\95\67\95\2\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\77\82\95\67\95\77\2\95\67\95\77\69\95\67\95\77\31\95\67\95\77\31\95\67\95\43\95\67\95\2\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\77\85\95\67\95\77\89\95\67\95\77\43\95\67\95\77\24\95\67\95\77\84\95\67\95\43\95\67\95\2\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\77\82\95\67\95\77\1\95\67\95\77\10\95\67\95\77\68\95\67\95\77\40\95\67\95\43\95\67\95\36\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\18\95\67\95\3\95\67\95\33\95\67\95\6\95\67\95\22\95\67\95\83\95\67\95\3\95\67\95\64\95\67\95\8\95\67\95\13\95\67\95\66\95\67\95\77\69\95\67\95\77\88\95\67\95\77\82\95\67\95\77\89\95\67\95\77\1\95\67\95\13\95\67\95\59\95\67\95\77\89\95\67\95\77\40\95\67\95\77\89\95\67\95\77\2\95\67\95\77\40\95\67\95\77\89\95\67\95\77\85\95\67\95\50\95\67\95\69\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\28\95\67\95\80\95\67\95\69\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\41\95\67\95\80\95\67\95\69\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\74\95\67\95\80\95\67\95\69\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\64\95\67\95\80\95\67\95\69\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\63\43\95\67\95\23\95\67\95\80\95\67\95\69\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\77\17\95\67\95\52\95\67\95\80\95\67\95\69\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\80\95\67\95\80\95\67\95\69\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\66\95\67\95\80\95\67\95\69\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\78\95\67\95\80\95\67\95\69\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\22\95\67\95\80\95\67\95\69\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\91\95\67\95\80\95\67\95\69\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\57\95\67\95\80\95\67\95\43\95\67\95\43\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\77\88\95\67\95\77\69\95\67\95\77\40\95\67\95\77\7\95\67\95\43\95\67\95\85\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\77\1\95\67\95\77\69\95\67\95\77\68\95\67\95\77\85\95\67\95\77\25\95\67\95\77\88\95\67\95\69\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\69\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\63\30\95\67\95\9\95\67\95\69\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\77\34\95\67\95\80\95\67\95\69\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\63\28\95\67\95\77\31\95\67\95\80\95\67\95\69\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\26\95\67\95\77\26\95\67\95\80\95\67\95\69\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\77\17\95\67\95\79\95\67\95\80\95\67\95\69\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\77\24\95\67\95\80\95\67\95\69\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\41\95\67\95\77\35\95\67\95\80\95\67\95\43\95\67\95\2\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\81\95\67\95\77\1\95\67\95\77\89\95\67\95\77\89\95\67\95\77\40\95\67\95\43\95\67\95\69\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\79\95\67\95\77\85\95\67\95\77\85\95\67\95\43\95\67\95\10\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\6\95\67\95\77\7\95\67\95\77\89\95\67\95\77\2\95\67\95\77\65\95\67\95\90\95\67\95\77\24\95\67\95\77\88\95\67\95\77\43\95\67\95\77\89\95\67\95\77\1\95\67\95\43\95\67\95\69\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\74\95\67\95\77\25\95\67\95\77\24\95\67\95\69\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\1\95\67\95\80\95\67\95\43\95\67\95\78\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\66\95\67\95\77\7\95\67\95\77\89\95\67\95\13\95\67\95\77\58\95\67\95\77\24\95\67\95\77\88\95\67\95\13\95\67\95\77\25\95\67\95\77\41\95\67\95\13\95\67\95\45\95\67\95\13\95\67\95\77\69\95\67\95\77\68\95\67\95\77\85\95\67\95\13\95\67\95\54\95\67\95\27\95\67\95\13\95\67\95\77\10\95\67\95\77\58\95\67\95\8\95\67\95\13\95\67\95\69\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\41\95\67\95\63\43\95\67\95\69\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\77\17\95\67\95\80\95\67\95\80\95\67\95\69\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\63\43\95\67\95\64\95\67\95\80\95\67\95\69\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\72\95\67\95\80\95\67\95\69\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\6\95\67\95\80\95\67\95\69\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\77\17\95\67\95\83\95\67\95\80\95\67\95\69\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\18\95\67\95\80\95\67\95\69\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\53\95\67\95\80\95\67\95\69\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\80\95\67\95\88\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\63\95\67\95\69\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\28\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\28\95\67\95\63\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\44\95\67\95\29\95\67\95\29\95\67\95\77\95\67\95\44\95\67\95\77\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\63\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\44\95\67\95\29\95\67\95\77\17\95\67\95\29\95\67\95\44\95\67\95\77\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\77\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\77\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\63\95\67\95\43\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\2\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\2\95\67\95\63\95\67\95\29\95\67\95\29\95\67\95\77\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\37\95\67\95\80\95\67\95\77\17\95\67\95\29\95\67\95\37\95\67\95\77\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\77\95\67\95\29\95\67\95\77\95\67\95\29\95\67\95\40\95\67\95\29\95\67\95\63\6\95\67\95\77\50\95\67\95\40\95\67\95\69\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\63\80\95\67\95\63\6\95\67\95\77\95\67\95\29\95\67\95\44\95\67\95\29\95\67\95\77\17\95\67\95\29\95\67\95\44\95\67\95\77\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\77\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\77\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\43\95\67\95\2\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\77\89\95\67\95\77\1\95\67\95\77\1\95\67\95\77\25\95\67\95\77\1\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\77\95\67\95\29\95\67\95\84\95\67\95\79\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\2\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\2\95\67\95\63\95\67\95\29\95\67\95\29\95\67\95\77\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\59\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\43\95\67\95\77\95\67\95\77\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\52\95\67\95\80\95\67\95\63\43\95\67\95\29\95\67\95\85\95\67\95\77\95\67\95\77\95\67\95\29\95\67\95\29\95\67\95\77\95\67\95\77\95\67\95\29\95\67\95\77\95\67\95\77\95\67\95\37\95\67\95\77\17\95\67\95\29\95\67\95\77\95\67\95\37\95\67\95\77\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\63\95\67\95\29\95\67\95\63\95\67\95\29\95\67\95\24\95\67\95\77\17\95\67\95\80\95\67\95\29\95\67\95\24\95\67\95\77\95\67\95\29\95\67\95\29\95\67\95\77\95\67\95\77\95\67\95\29\95\67\95\29\95\67\95\63\95\67\95\77\95\67\95\40\95\67\95\63\43\95\67\95\77\95\67\95\77\17\95\67\95\40\95\67\95\69\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\89\95\67\95\29\95\67\95\63\95\67\95\29\95\67\95\2\95\67\95\63\43\95\67\95\29\95\67\95\29\95\67\95\2\95\67\95\63\95\67\95\29\95\67\95\29\95\67\95\77\95\67\95\29\95\67\95\69\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\3\95\67\95\29\95\67\95\77\95\67\95\29\95\67\95\2\95\67\95\63\95\67\95\77\95\67\95\29\95\67\95\77\95\67\95\29\95\67\95\43\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\52\95\67\95\80\95\67\95\63\2\95\67\95\29\95\67\95\85\95\67\95\77\95\67\95\77\95\67\95\29\95\67\95\29\95\67\95\77\95\67\95\77\95\67\95\29\95\67\95\2\95\67\95\77\95\67\95\77\94\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\43\95\67\95\77\95\67\95\63\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\77\26\95\67\95\80\95\67\95\80\95\67\95\77\95\67\95\85\95\67\95\77\95\67\95\63\95\67\95\29\95\67\95\29\95\67\95\77\95\67\95\63\95\67\95\29\95\67\95\77\95\67\95\77\95\67\95\37\95\67\95\77\17\95\67\95\77\17\95\67\95\77\95\67\95\37\95\67\95\77\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\69\95\67\95\29\95\67\95\63\95\67\95\29\95\67\95\36\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\36\95\67\95\77\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\40\95\67\95\80\95\67\95\29\95\67\95\77\17\95\67\95\40\95\67\95\69\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\77\95\67\95\29\95\67\95\63\95\67\95\29\95\67\95\63\95\67\95\29\95\67\95\77\17\95\67\95\29\95\67\95\63\95\67\95\77\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\77\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\44\95\67\95\29\95\67\95\29\95\67\95\77\95\67\95\44\95\67\95\77\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\63\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\2\95\67\95\77\17\95\67\95\77\95\67\95\29\95\67\95\2\95\67\95\63\95\67\95\29\95\67\95\29\95\67\95\77\95\67\95\29\95\67\95\85\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\48\95\67\95\29\95\67\95\77\17\95\67\95\63\95\67\95\7\95\67\95\77\95\67\95\77\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\2\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\77\56\95\67\95\63\43\95\67\95\29\95\67\95\29\95\67\95\2\95\67\95\63\95\67\95\63\95\67\95\29\95\67\95\77\95\67\95\29\95\67\95\69\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\63\84\95\67\95\29\95\67\95\77\95\67\95\29\95\67\95\2\95\67\95\63\95\67\95\69\95\67\95\29\95\67\95\77\95\67\95\29\95\67\95\43\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\63\7\95\67\95\80\95\67\95\63\2\95\67\95\77\95\67\95\85\95\67\95\77\95\67\95\69\95\67\95\29\95\67\95\29\95\67\95\77\95\67\95\69\95\67\95\29\95\67\95\2\95\67\95\77\95\67\95\43\95\67\95\77\95\67\95\29\95\67\95\29\95\67\95\43\95\67\95\77\95\67\95\43\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\85\95\67\95\79\95\67\95\80\95\67\95\63\95\67\95\85\95\67\95\77\95\67\95\43\95\67\95\29\95\67\95\29\95\67\95\77\95\67\95\43\95\67\95\29\95\67\95\77\95\67\95\77\95\67\95\59\95\67\95\77\95\67\95\29\95\67\95\29\95\67\95\43\95\67\95\77\95\67\95\2\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\52\95\67\95\63\2\95\67\95\63\2\95\67\95\63\95\67\95\85\95\67\95\77\95\67\95\2\95\67\95\29\95\67\95\29\95\67\95\77\95\67\95\2\95\67\95\29\95\67\95\89\95\67\95\77\95\67\95\77\94\95\67\95\77\95\67\95\29\95\67\95\29\95\67\95\43\95\67\95\77\95\67\95\85\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\77\26\95\67\95\77\95\67\95\72\95\67\95\69\95\67\95\85\95\67\95\77\95\67\95\85\95\67\95\29\95\67\95\29\95\67\95\77\95\67\95\85\95\67\95\29\95\67\95\41\95\67\95\77\95\67\95\77\43\95\67\95\80\95\67\95\77\17\95\67\95\63\95\67\95\17\95\67\95\77\95\67\95\77\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\2\95\67\95\29\95\67\95\77\95\67\95\29\95\67\95\37\95\67\95\29\95\67\95\77\95\67\95\77\95\67\95\37\95\67\95\77\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\63\95\67\95\29\95\67\95\43\95\67\95\29\95\67\95\40\95\67\95\63\43\95\67\95\89\95\67\95\77\17\95\67\95\40\95\67\95\69\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\73\95\67\95\29\95\67\95\63\95\67\95\29\95\67\95\59\95\67\95\77\95\67\95\29\95\67\95\29\95\67\95\43\95\67\95\77\95\67\95\2\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\52\95\67\95\79\95\67\95\63\43\95\67\95\63\95\67\95\85\95\67\95\77\95\67\95\2\95\67\95\29\95\67\95\29\95\67\95\77\95\67\95\2\95\67\95\29\95\67\95\77\95\67\95\77\95\67\95\77\17\95\67\95\77\95\67\95\29\95\67\95\63\95\67\95\29\95\67\95\77\95\67\95\85\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\43\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\67\95\67\95\77\61\95\67\95\29\95\67\95\77\95\67\95\37\95\67\95\77\95\67\95\2\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\63\95\67\95\29\95\67\95\63\95\67\95\29\95\67\95\38\95\67\95\77\95\67\95\29\95\67\95\29\95\67\95\36\95\67\95\77\95\67\95\2\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\40\95\67\95\63\43\95\67\95\2\95\67\95\77\17\95\67\95\40\95\67\95\69\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\24\95\67\95\29\95\67\95\63\95\67\95\29\95\67\95\77\26\95\67\95\79\95\67\95\63\85\95\67\95\63\95\67\95\85\95\67\95\77\95\67\95\85\95\67\95\29\95\67\95\29\95\67\95\77\95\67\95\2\95\67\95\29\95\67\95\84\95\67\95\77\95\67\95\24\95\67\95\77\17\95\67\95\72\95\67\95\69\95\67\95\24\95\67\95\77\95\67\95\29\95\67\95\29\95\67\95\77\95\67\95\77\95\67\95\85\95\67\95\29\95\67\95\7\95\67\95\77\95\67\95\40\95\67\95\29\95\67\95\2\95\67\95\77\17\95\67\95\40\95\67\95\69\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\1\95\67\95\29\95\67\95\63\95\67\95\29\95\67\95\77\56\95\67\95\63\2\95\67\95\29\95\67\95\29\95\67\95\2\95\67\95\63\95\67\95\85\95\67\95\29\95\67\95\77\95\67\95\29\95\67\95\69\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\63\84\95\67\95\77\95\67\95\77\95\67\95\29\95\67\95\2\95\67\95\63\95\67\95\89\95\67\95\29\95\67\95\77\95\67\95\29\95\67\95\43\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\63\7\95\67\95\79\95\67\95\63\2\95\67\95\69\95\67\95\85\95\67\95\77\95\67\95\89\95\67\95\29\95\67\95\29\95\67\95\77\95\67\95\89\95\67\95\29\95\67\95\2\95\67\95\77\95\67\95\29\95\67\95\63\95\67\95\29\95\67\95\63\95\67\95\29\95\67\95\77\95\67\95\41\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\43\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\77\86\95\67\95\77\61\95\67\95\77\17\95\67\95\77\95\67\95\37\95\67\95\77\95\67\95\85\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\69\95\67\95\29\95\67\95\63\95\67\95\29\95\67\95\77\93\95\67\95\79\95\67\95\29\95\67\95\29\95\67\95\36\95\67\95\77\95\67\95\85\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\77\95\67\95\29\95\67\95\40\95\67\95\80\95\67\95\69\95\67\95\77\17\95\67\95\40\95\67\95\69\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\65\95\67\95\29\95\67\95\63\95\67\95\29\95\67\95\77\94\95\67\95\77\95\67\95\29\95\67\95\29\95\67\95\43\95\67\95\77\95\67\95\85\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\77\26\95\67\95\63\2\95\67\95\79\95\67\95\69\95\67\95\85\95\67\95\77\95\67\95\85\95\67\95\29\95\67\95\29\95\67\95\77\95\67\95\85\95\67\95\29\95\67\95\89\95\67\95\77\95\67\95\63\43\95\67\95\77\95\67\95\29\95\67\95\63\95\67\95\29\95\67\95\77\95\67\95\89\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\43\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\77\95\67\95\63\85\95\67\95\63\95\67\95\29\95\67\95\77\95\67\95\63\95\67\95\41\95\67\95\29\95\67\95\77\95\67\95\29\95\67\95\10\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\77\86\95\67\95\77\61\95\67\95\77\17\95\67\95\77\95\67\95\37\95\67\95\77\95\67\95\85\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\69\95\67\95\29\95\67\95\63\95\67\95\29\95\67\95\77\93\95\67\95\79\95\67\95\29\95\67\95\29\95\67\95\36\95\67\95\77\95\67\95\85\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\77\95\67\95\29\95\67\95\40\95\67\95\77\17\95\67\95\77\95\67\95\77\17\95\67\95\40\95\67\95\69\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\85\95\67\95\29\95\67\95\63\95\67\95\29\95\67\95\77\94\95\67\95\77\95\67\95\29\95\67\95\29\95\67\95\43\95\67\95\77\95\67\95\85\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\77\26\95\67\95\77\95\67\95\72\95\67\95\69\95\67\95\85\95\67\95\77\95\67\95\85\95\67\95\29\95\67\95\29\95\67\95\77\95\67\95\85\95\67\95\29\95\67\95\41\95\67\95\77\95\67\95\63\43\95\67\95\77\95\67\95\29\95\67\95\63\95\67\95\29\95\67\95\77\95\67\95\89\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\43\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\77\95\67\95\63\85\95\67\95\63\95\67\95\29\95\67\95\77\95\67\95\63\95\67\95\41\95\67\95\29\95\67\95\77\95\67\95\29\95\67\95\10\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\77\86\95\67\95\77\61\95\67\95\77\17\95\67\95\77\95\67\95\37\95\67\95\77\95\67\95\85\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\69\95\67\95\29\95\67\95\63\95\67\95\29\95\67\95\77\93\95\67\95\77\95\67\95\29\95\67\95\29\95\67\95\36\95\67\95\77\95\67\95\85\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\40\95\67\95\80\95\67\95\29\95\67\95\77\17\95\67\95\40\95\67\95\69\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\77\95\67\95\29\95\67\95\63\95\67\95\29\95\67\95\77\28\95\67\95\77\95\67\95\77\17\95\67\95\29\95\67\95\63\95\67\95\77\95\67\95\85\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\77\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\77\80\95\67\95\77\95\67\95\29\95\67\95\77\95\67\95\44\95\67\95\77\95\67\95\85\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\63\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\50\95\67\95\77\17\95\67\95\29\95\67\95\29\95\67\95\50\95\67\95\77\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\63\95\67\95\29\95\67\95\40\95\67\95\80\95\67\95\63\60\95\67\95\77\50\95\67\95\40\95\67\95\69\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\63\50\95\67\95\63\6\95\67\95\77\95\67\95\29\95\67\95\44\95\67\95\29\95\67\95\77\17\95\67\95\29\95\67\95\44\95\67\95\77\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\77\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\15\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\43\95\67\95\43\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\77\40\95\67\95\77\49\95\67\95\77\82\95\67\95\77\89\95\67\95\43\95\67\95\89\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\77\84\95\67\95\77\89\95\67\95\77\40\95\67\95\77\10\95\67\95\77\68\95\67\95\77\41\95\67\95\77\25\95\67\95\43\95\67\95\41\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\77\41\95\67\95\77\24\95\67\95\77\68\95\67\95\77\2\95\67\95\77\40\95\67\95\77\10\95\67\95\77\25\95\67\95\77\68\95\67\95\43\95\67\95\2\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\77\82\95\67\95\77\2\95\67\95\77\69\95\67\95\77\31\95\67\95\77\31\95\67\95\43\95\67\95\85\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\77\58\95\67\95\77\40\95\67\95\77\1\95\67\95\77\10\95\67\95\77\68\95\67\95\77\84\95\67\95\43\95\67\95\43\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\77\85\95\67\95\77\24\95\67\95\77\88\95\67\95\77\82\95\67\95\43\95\67\95\85\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\77\10\95\67\95\77\82\95\67\95\77\69\95\67\95\77\10\95\67\95\77\1\95\67\95\77\58\95\67\95\43\95\67\95\41\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\77\84\95\67\95\77\89\95\67\95\77\40\95\67\95\77\31\95\67\95\77\25\95\67\95\77\2\95\67\95\77\69\95\67\95\77\31\95\67\95\43\95\67\95\7\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\77\84\95\67\95\77\89\95\67\95\77\40\95\67\95\77\24\95\67\95\77\82\95\67\95\77\78\95\67\95\77\69\95\67\95\77\31\95\67\95\77\24\95\67\95\77\89\95\67\95\43\95\67\95\43\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\77\70\95\67\95\77\7\95\67\95\77\69\95\67\95\77\40\95\67\95\43\95\67\95\77\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\6\95\67\95\69\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\63\30\95\67\95\9\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\77\95\67\95\29\95\67\95\69\95\67\95\25\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\43\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\43\95\67\95\77\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\85\95\67\95\29\95\67\95\80\95\67\95\29\95\67\95\85\95\67\95\77\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\77\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\77\95\67\95\79\95\67\95\80\95\67\95\29\95\67\95\29\95\67\95\77\95\67\95\63\95\67\95\77\95\67\95\29\95\67\95\77\95\67\95\29\95\67\95\77\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\77\61\95\67\95\77\17\95\67\95\29\95\67\95\29\95\67\95\77\95\67\95\63\95\67\95\63\95\67\95\29\95\67\95\77\95\67\95\29\95\67\95\63\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\37\95\67\95\77\17\95\67\95\77\17\95\67\95\77\95\67\95\37\95\67\95\77\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\69\95\67\95\29\95\67\95\63\95\67\95\29\95\67\95\36\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\36\95\67\95\77\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\40\95\67\95\77\17\95\67\95\77\95\67\95\77\17\95\67\95\40\95\67\95\69\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\85\95\67\95\29\95\67\95\63\95\67\95\29\95\67\95\52\95\67\95\63\43\95\67\95\80\95\67\95\29\95\67\95\85\95\67\95\77\95\67\95\77\95\67\95\29\95\67\95\29\95\67\95\77\95\67\95\29\95\67\95\29\95\67\95\69\95\67\95\77\95\67\95\24\95\67\95\80\95\67\95\63\43\95\67\95\29\95\67\95\24\95\67\95\77\95\67\95\29\95\67\95\29\95\67\95\77\95\67\95\77\95\67\95\77\95\67\95\29\95\67\95\77\95\67\95\77\95\67\95\40\95\67\95\63\43\95\67\95\29\95\67\95\77\17\95\67\95\40\95\67\95\69\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\69\95\67\95\29\95\67\95\63\95\67\95\29\95\67\95\52\95\67\95\29\95\67\95\79\95\67\95\29\95\67\95\85\95\67\95\77\95\67\95\77\95\67\95\29\95\67\95\29\95\67\95\77\95\67\95\29\95\67\95\29\95\67\95\43\95\67\95\77\95\67\95\24\95\67\95\80\95\67\95\63\43\95\67\95\29\95\67\95\24\95\67\95\77\95\67\95\29\95\67\95\29\95\67\95\77\95\67\95\77\95\67\95\77\95\67\95\29\95\67\95\77\95\67\95\77\95\67\95\40\95\67\95\29\95\67\95\29\95\67\95\77\17\95\67\95\40\95\67\95\69\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\63\95\67\95\29\95\67\95\72\95\67\95\80\95\67\95\29\95\67\95\29\95\67\95\63\95\67\95\77\95\67\95\77\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\77\95\67\95\29\95\67\95\72\95\67\95\29\95\67\95\77\17\95\67\95\29\95\67\95\63\95\67\95\77\95\67\95\77\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\77\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\77\29\95\67\95\29\95\67\95\29\95\67\95\77\95\67\95\44\95\67\95\77\95\67\95\77\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\63\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\44\95\67\95\29\95\67\95\77\17\95\67\95\29\95\67\95\44\95\67\95\77\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\77\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\2\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\43\95\67\95\89\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\77\84\95\67\95\77\89\95\67\95\77\40\95\67\95\77\10\95\67\95\77\68\95\67\95\77\41\95\67\95\77\25\95\67\95\69\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\80\95\67\95\43\95\67\95\63\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\64\95\67\95\77\31\95\67\95\43\95\67\95\10\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\77\31\95\67\95\77\10\95\67\95\77\68\95\67\95\77\89\95\67\95\77\85\95\67\95\77\89\95\67\95\77\41\95\67\95\77\10\95\67\95\77\68\95\67\95\77\89\95\67\95\77\85\95\67\95\43\95\67\95\10\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\77\2\95\67\95\77\24\95\67\95\77\1\95\67\95\77\1\95\67\95\77\89\95\67\95\77\68\95\67\95\77\40\95\67\95\77\31\95\67\95\77\10\95\67\95\77\68\95\67\95\77\89\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\77\95\67\95\63\95\67\95\63\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\79\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\77\95\67\95\63\95\67\95\77\95\67\95\29\95\67\95\77\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\44\95\67\95\29\95\67\95\77\17\95\67\95\29\95\67\95\44\95\67\95\77\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\77\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\77\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\69\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\93\95\67\95\80\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\77\95\67\95\63\95\67\95\63\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\79\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\77\95\67\95\63\95\67\95\77\95\67\95\29\95\67\95\77\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\44\95\67\95\29\95\67\95\77\17\95\67\95\29\95\67\95\44\95\67\95\77\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\77\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\77\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\69\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\11\95\67\95\80\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\77\95\67\95\63\95\67\95\63\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\79\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\77\95\67\95\63\95\67\95\77\95\67\95\29\95\67\95\77\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\44\95\67\95\29\95\67\95\77\17\95\67\95\29\95\67\95\44\95\67\95\77\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\77\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\77\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\69\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\64\95\67\95\80\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\77\95\67\95\63\95\67\95\63\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\79\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\77\95\67\95\63\95\67\95\77\95\67\95\29\95\67\95\77\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\44\95\67\95\29\95\67\95\77\17\95\67\95\29\95\67\95\44\95\67\95\77\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\77\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\77\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\69\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\80\95\67\95\80\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\77\95\67\95\63\95\67\95\63\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\79\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\77\95\67\95\63\95\67\95\77\95\67\95\29\95\67\95\77\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\44\95\67\95\29\95\67\95\77\17\95\67\95\29\95\67\95\44\95\67\95\77\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\77\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\77\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\69\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\41\95\67\95\80\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\77\95\67\95\2\95\67\95\89\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\3\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\2\95\67\95\63\95\67\95\77\95\67\95\29\95\67\95\77\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\77\61\95\67\95\80\95\67\95\29\95\67\95\29\95\67\95\77\95\67\95\63\95\67\95\63\95\67\95\29\95\67\95\77\95\67\95\29\95\67\95\77\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\63\43\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\77\95\67\95\69\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\77\95\67\95\77\61\95\67\95\29\95\67\95\29\95\67\95\77\95\67\95\63\95\67\95\43\95\67\95\29\95\67\95\77\95\67\95\29\95\67\95\63\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\77\91\95\67\95\29\95\67\95\77\95\67\95\77\95\67\95\58\95\67\95\77\95\67\95\63\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\63\95\67\95\29\95\67\95\43\95\67\95\29\95\67\95\67\95\67\95\80\95\67\95\29\95\67\95\77\95\67\95\37\95\67\95\77\95\67\95\77\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\63\95\67\95\29\95\67\95\77\95\67\95\29\95\67\95\44\95\67\95\29\95\67\95\77\17\95\67\95\29\95\67\95\44\95\67\95\77\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\77\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\69\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\43\95\67\95\2\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\77\82\95\67\95\77\1\95\67\95\77\10\95\67\95\77\68\95\67\95\77\40\95\67\95\43\95\67\95\89\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\18\95\67\95\77\89\95\67\95\77\31\95\67\95\77\31\95\67\95\77\25\95\67\95\39\95\67\95\13\95\67\95\43\95\67\95\77\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\50\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\63\95\67\95\69\95\67\95\69\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\77\75\95\67\95\80\95\67\95\29\95\67\95\29\95\67\95\15\95\67\95\77\95\67\95\63\95\67\95\29\95\67\95\77\95\67\95\77\95\67\95\29\95\67\95\29\95\67\95\77\95\67\95\29\95\67\95\77\80\95\67\95\29\95\67\95\29\95\67\95\77\95\67\95\44\95\67\95\77\95\67\95\63\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\63\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\44\95\67\95\29\95\67\95\77\17\95\67\95\29\95\67\95\44\95\67\95\77\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\77\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\77\95\67\95\43\95\67\95\40\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\78\95\67\95\29\95\67\95\29\95\67\95\77\17\95\67\95\78\95\67\95\77\95\67\95\29\95\67\95\29\95\67\95\77\95\67\95\77\95\67\95\29\95\67\95\77\95\67\95\29\95\67\95\29\95\67\95\40\95\67\95\80\95\67\95\77\95\67\95\77\17\95\67\95\40\95\67\95\69\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\2\95\67\95\29\95\67\95\63\95\67\95\29\95\67\95\3\95\67\95\80\95\67\95\29\95\67\95\29\95\67\95\2\95\67\95\63\95\67\95\77\95\67\95\29\95\67\95\77\95\67\95\29\95\67\95\77\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\77\17\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\77\95\67\95\63\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\63\2\95\67\95\77\17\95\67\95\29\95\67\95\29\95\67\95\77\95\67\95\63\95\67\95\69\95\67\95\29\95\67\95\77\95\67\95\29\95\67\95\63\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\77\91\95\67\95\63\43\95\67\95\29\95\67\95\77\95\67\95\58\95\67\95\77\95\67\95\63\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\63\95\67\95\29\95\67\95\69\95\67\95\29\95\67\95\67\95\67\95\80\95\67\95\29\95\67\95\77\95\67\95\37\95\67\95\77\95\67\95\77\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\63\95\67\95\29\95\67\95\77\95\67\95\29\95\67\95\40\95\67\95\29\95\67\95\69\95\67\95\77\17\95\67\95\40\95\67\95\69\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\15\95\67\95\29\95\67\95\63\95\67\95\29\95\67\95\78\95\67\95\29\95\67\95\80\95\67\95\29\95\67\95\78\95\67\95\77\95\67\95\29\95\67\95\29\95\67\95\77\95\67\95\77\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\77\95\67\95\40\95\67\95\80\95\67\95\77\95\67\95\77\17\95\67\95\40\95\67\95\69\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\2\95\67\95\29\95\67\95\63\95\67\95\29\95\67\95\3\95\67\95\80\95\67\95\29\95\67\95\29\95\67\95\2\95\67\95\63\95\67\95\77\95\67\95\29\95\67\95\77\95\67\95\29\95\67\95\77\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\77\17\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\77\95\67\95\63\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\63\2\95\67\95\63\43\95\67\95\29\95\67\95\29\95\67\95\77\95\67\95\63\95\67\95\69\95\67\95\29\95\67\95\77\95\67\95\29\95\67\95\69\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\77\91\95\67\95\63\43\95\67\95\29\95\67\95\77\95\67\95\58\95\67\95\77\95\67\95\63\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\63\95\67\95\29\95\67\95\69\95\67\95\29\95\67\95\67\95\67\95\80\95\67\95\29\95\67\95\77\95\67\95\37\95\67\95\77\95\67\95\77\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\63\95\67\95\29\95\67\95\77\95\67\95\29\95\67\95\40\95\67\95\29\95\67\95\77\95\67\95\77\17\95\67\95\40\95\67\95\69\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\43\95\67\95\29\95\67\95\63\95\67\95\29\95\67\95\3\95\67\95\80\95\67\95\29\95\67\95\29\95\67\95\2\95\67\95\63\95\67\95\77\95\67\95\29\95\67\95\77\95\67\95\29\95\67\95\77\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\77\17\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\77\95\67\95\63\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\63\2\95\67\95\29\95\67\95\77\95\67\95\29\95\67\95\77\95\67\95\63\95\67\95\69\95\67\95\29\95\67\95\77\95\67\95\29\95\67\95\43\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\77\91\95\67\95\63\43\95\67\95\29\95\67\95\77\95\67\95\58\95\67\95\77\95\67\95\63\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\63\95\67\95\29\95\67\95\69\95\67\95\29\95\67\95\67\95\67\95\80\95\67\95\29\95\67\95\77\95\67\95\37\95\67\95\77\95\67\95\77\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\63\95\67\95\29\95\67\95\77\95\67\95\29\95\67\95\44\95\67\95\29\95\67\95\77\17\95\67\95\29\95\67\95\44\95\67\95\77\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\77\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\2\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\69\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\43\95\67\95\2\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\77\82\95\67\95\77\1\95\67\95\77\10\95\67\95\77\68\95\67\95\77\40\95\67\95\43\95\67\95\65\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\13\95\67\95\77\10\95\67\95\77\58\95\67\95\13\95\67\95\77\82\95\67\95\77\25\95\67\95\77\58\95\67\95\77\10\95\67\95\77\40\95\67\95\77\10\95\67\95\77\78\95\67\95\77\89\95\67\95\75\95\67\95\43\95\67\95\65\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\13\95\67\95\77\10\95\67\95\77\58\95\67\95\13\95\67\95\77\68\95\67\95\77\89\95\67\95\77\84\95\67\95\77\69\95\67\95\77\40\95\67\95\77\10\95\67\95\77\78\95\67\95\77\89\95\67\95\75\95\67\95\43\95\67\95\84\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\13\95\67\95\77\10\95\67\95\77\58\95\67\95\13\95\67\95\77\37\95\67\95\77\89\95\67\95\77\1\95\67\95\77\25\95\67\95\75\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\77\95\67\95\63\95\67\95\63\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\79\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\77\95\67\95\63\95\67\95\77\95\67\95\29\95\67\95\77\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\44\95\67\95\29\95\67\95\77\17\95\67\95\29\95\67\95\44\95\67\95\77\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\77\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\77\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\69\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\35\95\67\95\80\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\77\95\67\95\63\95\67\95\63\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\79\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\77\95\67\95\63\95\67\95\77\95\67\95\29\95\67\95\77\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\44\95\67\95\29\95\67\95\77\17\95\67\95\29\95\67\95\44\95\67\95\77\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\77\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\77\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\69\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\77\17\95\67\95\18\95\67\95\80\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\77\95\67\95\63\95\67\95\63\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\79\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\77\95\67\95\63\95\67\95\77\95\67\95\29\95\67\95\77\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\44\95\67\95\29\95\67\95\77\17\95\67\95\29\95\67\95\44\95\67\95\77\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\77\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\77\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\69\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\77\17\95\67\95\66\95\67\95\80\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\77\95\67\95\63\95\67\95\63\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\79\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\77\95\67\95\63\95\67\95\77\95\67\95\29\95\67\95\77\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\44\95\67\95\29\95\67\95\77\17\95\67\95\29\95\67\95\44\95\67\95\77\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\77\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\77\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\69\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\77\17\95\67\95\79\95\67\95\80\95\67\95\29\95\67\95\29\95\67\95\29\95\67\95\29\95\67','\29\77\63\69\43\2\85\89\41\84\7\10\15\65\31\88\68\25\82\21\1\58\40\24\78\70\36\49\37\47\44\73\13\50\17\61\28\20\94\56\26\19\35\62\39\34\75\87\27\54\76\71\30\45\53\91\46\11\8\60\93\4\86\9\80\79\72\6\59\3\52\81\18\42\48\92\83\55\90\5\14\32\33\64\66\22\23\16\57\74\38\51\67\12'),(getfenv and getfenv(0))or _ENV)() end)(...)

If you specify the overwrite option with the --overwrite flag, it will write over to the specified script, instead of creating a new file.
You may also specify a preset using --min, --mid, or --max. eg.

lua hercules.lua my_script.lua --max

You may also choose modules through the command line by using the flags, such as --compressor/-c. eg.

lua hercules.lua my_script.lua -c --antitamper
above enables compressor and antitamper

Customization

You can modify or add new modules to the modules/ directory to create additional layers of obfuscation. The pipeline.lua file controls the order of obfuscation steps.

Important

When adding more modules to the modules/ directory, ensure you maintain proper order in the pipeline file, to prevent any issues relating to the sanity of the code, and remember to add your module to the pipeline.lua file.
If you wish for it to be configurable, add it to the config.lua file, along with the necessary logic.


Credits

VM based on deoxy's VM


image

About

A powerful Lua obfuscator designed to make your Lua code nearly impossible to reverse-engineer, with multiple layers of advanced obfuscation techniques

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Lua 100.0%