How to compile/make roblox.lua unreadable?

Hello, everyone!
I’m currently working to open source an automatic quiz & rank claiming centre.
I’ve tried to search on different platforms, how I do compile/make roblox.lua unreadable. I’ve not found a solution yet, but I don’t want to leak my source code. How do I do it, If I would like to compile example?

local text = “Hello World!”
print(text)

I would like to thank everyone who tries to help me!

The closest thing I could get is obfuscating, it’s not useful except for exploiters and virus makers

But they can anyways beatify it to make it readable so it’s pointless.


  1. Trying to make your code unreadable is basically going against what the values of open source mean.

  2. You can’t “compile” LuaU (RBXLua) into binary, the closest thing you can do is obfuscate the code which, again, completely goes against the value of open source.

  3. Even if you do obfuscate your code, it can be easily unobfuscated by an experienced programmer.

TL;DR You shouldn’t obfuscate open source code because it goes completely against open source and you can’t fully hide your code.


Obfuscation

Normal:

print('Lua Obfuscator by Pyan')

Obfuscated:

return (function(a,b)local c=select;local d=string.byte;local e=string.sub;local f=string.char;local g={{b="OpArgR",c="OpArgN"},{b="OpArgK",c="OpArgN"},{b="OpArgU",c="OpArgU"},{b="OpArgR",c="OpArgN"},{b="OpArgU",c="OpArgN"},{b="OpArgK",c="OpArgN"},{b="OpArgR",c="OpArgK"},{b="OpArgK",c="OpArgN"},{b="OpArgU",c="OpArgN"},{b="OpArgK",c="OpArgK"},{b="OpArgU",c="OpArgU"},{b="OpArgR",c="OpArgK"},{b="OpArgK",c="OpArgK"},{b="OpArgK",c="OpArgK"},{b="OpArgK",c="OpArgK"},{b="OpArgK",c="OpArgK"},{b="OpArgK",c="OpArgK"},{b="OpArgK",c="OpArgK"},{b="OpArgR",c="OpArgN"},{b="OpArgR",c="OpArgN"},{b="OpArgR",c="OpArgN"},{b="OpArgR",c="OpArgR"},{b="OpArgR",c="OpArgN"},{b="OpArgK",c="OpArgK"},{b="OpArgK",c="OpArgK"},{b="OpArgK",c="OpArgK"},{b="OpArgR",c="OpArgU"},{b="OpArgR",c="OpArgU"},{b="OpArgU",c="OpArgU"},{b="OpArgU",c="OpArgU"},{b="OpArgU",c="OpArgN"},{b="OpArgR",c="OpArgN"},{b="OpArgR",c="OpArgN"},{b="OpArgN",c="OpArgU"},{b="OpArgU",c="OpArgU"},{b="OpArgN",c="OpArgN"},{b="OpArgU",c="OpArgN"},{b="OpArgU",c="OpArgN"}}local h={"ABC","ABx","ABC","ABC","ABC","ABx","ABC","ABx","ABC","ABC","ABC","ABC","ABC","ABC","ABC","ABC","ABC","ABC","ABC","ABC","ABC","ABC","AsBx","ABC","ABC","ABC","ABC","ABC","ABC","ABC","ABC","AsBx","AsBx","ABC","ABC","ABC","ABx","ABC"}local i=""for j,k in pairs(a)do i=i..f(k)end;a=i;local function l(m,n,o)if o then local p=m/2^(n-1)%2^(o-1-(n-1)+1)return p-p%1 else local q=2^(n-1)if m%(q+q)>=q then return 1 else return 0 end end end;local function r(s)local t=1;local u;local v;local function w()local x=d(s,t,t)t=t+1;return x end;local function y()local k,z,A,B=d(s,t,t+3)t=t+4;return B*16777216+A*65536+z*256+k end;local function C()return y()*4294967296+y()end;local function D()local E=y()local F=y()local G=1;local H=l(F,1,20)*2^32+E;local I=l(F,21,31)local J=(-1)^l(F,32)if I==0 then if H==0 then return J*0 else I=1;G=0 end elseif I==2047 then if H==0 then return J*1/0 else return J*0/0 end end;return math.ldexp(J,I-1023)*(G+H/2^52)end;local function K(L)local M;if L then M=e(s,t,t+L-1)t=t+L else L=u()if L==0 then return end;M=e(s,t,t+L-1)t=t+L end;return M end;local function N()local O={}local P={}local Q={}local R={Instr=O,Const=P,Proto=Q,Lines={},Name=K(),FirstL=v(),LastL=v(),Upvals=w(),Args=w(),Vargs=w(),Stack=w()}local S={}if R.Name then R.Name=e(R.Name,1,-2)end;for T=1,v()do local U=y()local V=l(U,1,6)local W=h[V+1]local X=g[V+1]local Y={Enum=V,Value=U,l(U,7,14)}if W=="ABC"then Y[2]=l(U,24,32)Y[3]=l(U,15,23)elseif W=="ABx"then Y[2]=l(U,15,32)elseif W=="AsBx"then Y[2]=l(U,15,32)-131071 end;do if V==26 or V==27 then Y[3]=Y[3]==0 end;if V>=23 and V<=25 then Y[1]=Y[1]~=0 end;if X.b=="OpArgK"then Y[3]=Y[3]or false;if Y[2]>=256 then local Z=Y[2]-256;Y[4]=Z;local _=S[Z]if not _ then _={}S[Z]=_ end;_[#_+1]={Inst=Y,Register=4}end end;if X.c=="OpArgK"then Y[4]=Y[4]or false;if Y[3]>=256 then local Z=Y[3]-256;Y[5]=Z;local _=S[Z]if not _ then _={}S[Z]=_ end;_[#_+1]={Inst=Y,Register=5}end end end;O[T]=Y end;for T=1,v()do local W=w()local Z;if W==1 then Z=w()~=0 elseif W==3 then Z=D()elseif W==4 then Z=e(K(),1,-2)end;local a0=S[T-1]if a0 then for a1=1,#a0 do a0[a1].Inst[a0[a1].Register]=Z end end;P[T-1]=Z end;for T=1,v()do Q[T-1]=N()end;do local j=R.Lines;for T=1,v()do j[T]=y()end;for a2=1,v()do K()y()y()end;for a2=1,v()do K()end end;return R end;do assert(K(4)=="\27Lua","Lua bytecode expected.")assert(w()==0x51,"Only Lua 5.1 is supported.")w()w()local a3=w()local a4=w()if a3==4 then v=y elseif a3==8 then v=C else error("Integer size not supported",2)end;if a4==4 then u=y elseif a4==8 then u=C else error("Sizet size not supported",2)end;assert(K(3)=="\4\8\0","Unsupported bytecode target platform")end;return N()end;local function a5(...)return c("#",...),{...}end;local function a6(R,b,a7)local O=R.Instr;local P=R.Const;local Q=R.Proto;local function a8(a9,aa)local ab=R.Name or"Code"local ac=R.Lines[aa]or"?"error(string.format("%s:%s: %s",ab,ac,tostring(a9)),0)end;return function(...)local ad,ae=1,-1;local af,ag={},c("#",...)-1;local ah={}local ai={}local aj=setmetatable({},{__index=ah,__newindex=function(a2,ak,al)if ak>ae then ae=ak end;ah[ak]=al end})local function am()local Y,an;while true do Y=O[ad]an=Y.Enum;ad=ad+1;if an==0 then aj[Y[1]]=aj[Y[2]]elseif an==1 then aj[Y[1]]=P[Y[2]]elseif an==2 then aj[Y[1]]=Y[2]~=0;if Y[3]~=0 then ad=ad+1 end elseif an==3 then local ao=aj;for T=Y[1],Y[2]do ao[T]=nil end elseif an==4 then aj[Y[1]]=a7[Y[2]]elseif an==5 then aj[Y[1]]=b[P[Y[2]]]elseif an==6 then local ao=aj;ao[Y[1]]=ao[Y[2]][Y[5]or ao[Y[3]]]elseif an==7 then b[P[Y[2]]]=aj[Y[1]]elseif an==8 then a7[Y[2]]=aj[Y[1]]elseif an==9 then local ao=aj;ao[Y[1]][Y[4]or ao[Y[2]]]=Y[5]or ao[Y[3]]elseif an==10 then aj[Y[1]]={}elseif an==11 then local ao=aj;local ap=Y[1]local aq=ao[Y[2]]local ar=Y[5]or ao[Y[3]]ao[ap+1]=aq;ao[ap]=aq[ar]elseif an==12 then local ao=aj;ao[Y[1]]=(Y[4]or ao[Y[2]])+(Y[5]or ao[Y[3]])elseif an==13 then local ao=aj;ao[Y[1]]=(Y[4]or ao[Y[2]])-(Y[5]or ao[Y[3]])elseif an==14 then local ao=aj;ao[Y[1]]=(Y[4]or ao[Y[2]])*(Y[5]or ao[Y[3]])elseif an==15 then local ao=aj;ao[Y[1]]=(Y[4]or ao[Y[2]])/(Y[5]or ao[Y[3]])elseif an==16 then local ao=aj;ao[Y[1]]=(Y[4]or ao[Y[2]])%(Y[5]or ao[Y[3]])elseif an==17 then local ao=aj;ao[Y[1]]=(Y[4]or ao[Y[2]])^(Y[5]or ao[Y[3]])elseif an==18 then aj[Y[1]]=-aj[Y[2]]elseif an==19 then aj[Y[1]]=not aj[Y[2]]elseif an==20 then aj[Y[1]]=#aj[Y[2]]elseif an==21 then local ao=aj;local aq=Y[2]local as=ao[aq]for T=aq+1,Y[3]do as=as..ao[T]end;aj[Y[1]]=as elseif an==22 then ad=ad+Y[2]elseif an==23 then local ao=aj;local aq=Y[4]or ao[Y[2]]local ar=Y[5]or ao[Y[3]]if aq==ar~=Y[1]then ad=ad+1 end elseif an==24 then local ao=aj;local aq=Y[4]or ao[Y[2]]local ar=Y[5]or ao[Y[3]]if aq<ar~=Y[1]then ad=ad+1 end elseif an==25 then local ao=aj;local aq=Y[4]or ao[Y[2]]local ar=Y[5]or ao[Y[3]]if aq<=ar~=Y[1]then ad=ad+1 end elseif an==26 then if Y[3]then if aj[Y[1]]then ad=ad+1 end elseif aj[Y[1]]then else ad=ad+1 end elseif an==27 then local aq=aj[Y[2]]if Y[3]then if aq then ad=ad+1 else aj[Y[1]]=aq end elseif aq then aj[Y[1]]=aq else ad=ad+1 end elseif an==28 then local ap=Y[1]local aq=Y[2]local ar=Y[3]local ao=aj;local at,au;local av,aw;at={}if aq~=1 then if aq~=0 then av=ap+aq-1 else av=ae end;aw=0;for T=ap+1,av do aw=aw+1;at[aw]=ao[T]end;av,au=a5(ao[ap](unpack(at,1,av-ap)))else av,au=a5(ao[ap]())end;ae=ap-1;if ar~=1 then if ar~=0 then av=ap+ar-2 else av=av+ap-1 end;aw=0;for T=ap,av do aw=aw+1;ao[T]=au[aw]end end elseif an==29 then local ap=Y[1]local aq=Y[2]local ao=aj;local at,au;local av;local ax=0;at={}if aq~=1 then if aq~=0 then av=ap+aq-1 else av=ae end;for T=ap+1,av do at[#at+1]=ao[T]end;au={ao[ap](unpack(at,1,av-ap))}else au={ao[ap]()}end;for ay in pairs(au)do if ay>ax then ax=ay end end;return au,ax elseif an==30 then local ap=Y[1]local aq=Y[2]local ao=aj;local aw,az;local av;if aq==1 then return elseif aq==0 then av=ae else av=ap+aq-2 end;az={}aw=0;for T=ap,av do aw=aw+1;az[aw]=ao[T]end;return az,aw elseif an==31 then local ap=Y[1]local ao=aj;local aA=ao[ap+2]local ay=ao[ap]+aA;ao[ap]=ay;if aA>0 then if ay<=ao[ap+1]then ad=ad+Y[2]ao[ap+3]=ay end else if ay>=ao[ap+1]then ad=ad+Y[2]ao[ap+3]=ay end end elseif an==32 then local ap=Y[1]local ao=aj;ao[ap]=assert(tonumber(ao[ap]),"`for` initial value must be a number")ao[ap+1]=assert(tonumber(ao[ap+1]),"`for` limit must be a number")ao[ap+2]=assert(tonumber(ao[ap+2]),"`for` step must be a number")ao[ap]=ao[ap]-ao[ap+2]ad=ad+Y[2]elseif an==33 then local ap=Y[1]local ar=Y[3]local ao=aj;local aB=ap+2;local aC={ao[ap](ao[ap+1],ao[ap+2])}for T=1,ar do aj[aB+T]=aC[T]end;if ao[ap+3]~=nil then ao[ap+2]=ao[ap+3]else ad=ad+1 end elseif an==34 then local ap=Y[1]local aq=Y[2]local ar=Y[3]local ao=aj;if ar==0 then ad=ad+1;ar=O[ad].Value end;local aB=(ar-1)*50;local aD=ao[ap]if aq==0 then aq=ae-ap end;for T=1,aq do aD[aB+T]=ao[ap+T]end elseif an==35 then local ap=Y[1]local aE={}for T=1,#ai do local aF=ai[T]for aG=0,#aF do local aH=aF[aG]local ao=aH[1]local t=aH[2]if ao==aj and t>=ap then aE[t]=ao[t]aH[1]=aE end end end elseif an==36 then local aI=Q[Y[2]]local ao=aj;local aJ;local aK;if aI.Upvals~=0 then aJ={}aK=setmetatable({},{__index=function(a2,ak)local aL=aJ[ak]return aL[1][aL[2]]end,__newindex=function(a2,ak,al)local aL=aJ[ak]aL[1][aL[2]]=al end})for T=1,aI.Upvals do local aM=O[ad]if aM.Enum==0 then aJ[T-1]={ao,aM[2]}elseif aM.Enum==4 then aJ[T-1]={a7,aM[2]}end;ad=ad+1 end;ai[#ai+1]=aJ end;ao[Y[1]]=a6(aI,b,aK)elseif an==37 then local ap=Y[1]local aq=Y[2]local ao,aN=aj,af;ae=ap-1;for T=ap,ap+(aq>0 and aq-1 or ag)do ao[T]=aN[T-ap]end end end end;local at={...}for T=0,ag do if T>=R.Args then af[T-R.Args]=at[T+1]else aj[T]=at[T+1]end end;local ap,aq,ar=pcall(am)if ap then if aq and ar>0 then return unpack(aq,1,ar)end;return else a8(aq,ad-1)end end end;local aO=r(a)return a6(aO,b or getfenv(0)),aO end)({27,76,117,97,81,0,1,4,4,4,8,0,32,0,0,0,64,73,114,111,110,98,114,101,119,47,110,101,116,99,111,114,101,97,112,112,50,46,48,47,111,117,116,46,108,117,97,0,0,0,0,0,0,0,0,0,0,0,2,28,84,0,0,0,5,0,0,0,6,64,64,0,69,0,0,0,70,128,192,0,133,0,0,0,134,192,64,1,197,0,1,0,198,64,193,1,5,129,1,0,6,193,65,2,69,1,2,0,90,65,0,0,22,0,0,128,100,1,0,0,133,65,2,0,197,129,2,0,5,194,2,0,69,2,3,0,164,66,0,0,0,0,128,0,0,0,128,4,0,0,0,1,192,2,0,5,1,67,3,0,220,130,0,1,5,131,3,0,26,3,0,0,22,192,0,128,5,131,3,0,6,195,67,6,26,67,0,0,22,0,0,128,36,131,0,0,100,195,0,0,129,3,4,0,228,3,1,0,0,0,0,0,0,0,128,5,0,0,0,7,0,0,0,6,36,68,1,0,0,0,0,6,0,0,0,0,0,0,128,5,0,0,0,7,100,132,1,0,0,0,128,7,0,0,128,6,0,0,0,2,128,4,128,7,228,196,1,0,0,0,0,9,0,0,0,1,0,0,128,5,0,0,0,7,0,0,128,0,0,0,0,6,0,0,0,0,0,0,128,1,0,5,128,7,100,5,2,0,0,0,128,3,164,69,2,0,0,0,128,7,0,0,0,6,0,0,128,6,0,0,0,11,0,0,0,8,0,0,128,8,0,0,128,9,228,133,2,0,0,0,128,10,0,0,128,3,0,0,0,4,0,6,128,11,64,6,0,11,92,134,128,0,138,6,0,0,192,6,128,2,220,6,128,0,28,134,0,0,29,6,128,0,30,6,0,0,30,0,128,0,17,0,0,0,4,7,0,0,0,115,116,114,105,110,103,0,4,5,0,0,0,98,121,116,101,0,4,5,0,0,0,99,104,97,114,0,4,4,0,0,0,115,117,98,0,4,6,0,0,0,116,97,98,108,101,0,4,7,0,0,0,99,111,110,99,97,116,0,4,5,0,0,0,109,97,116,104,0,4,6,0,0,0,108,100,101,120,112,0,4,8,0,0,0,103,101,116,102,101,110,118,0,4,13,0,0,0,115,101,116,109,101,116,97,116,97,98,108,101,0,4,7,0,0,0,115,101,108,101,99,116,0,4,7,0,0,0,117,110,112,97,99,107,0,4,9,0,0,0,116,111,110,117,109,98,101,114,0,4,189,0,0,0,50,49,86,50,49,90,50,55,53,50,52,71,50,50,55,50,53,51,50,53,52,50,54,72,50,50,55,50,55,53,50,52,75,50,50,70,50,55,57,50,54,71,50,50,70,50,55,53,50,52,72,50,50,70,50,55,73,50,54,75,50,55,73,50,49,90,50,52,72,50,55,67,50,49,90,50,54,77,50,55,82,50,55,53,50,55,86,50,49,88,50,55,86,50,49,90,50,49,85,50,55,86,50,49,74,50,49,72,50,49,65,50,49,53,50,49,70,50,49,90,50,50,57,50,55,86,49,66,50,49,69,50,49,50,50,50,86,49,56,50,49,49,49,88,50,49,69,50,49,71,50,49,48,50,49,50,50,49,70,50,49,52,50,49,72,50,50,86,50,49,49,50,49,81,50,50,86,49,78,50,49,81,50,49,50,50,49,53,0,4,4,0,0,0,98,105,116,0,4,5,0,0,0,98,120,111,114,0,3,0,0,0,0,0,0,240,63,11,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,2,3,0,0,0,5,0,0,0,30,0,0,1,30,0,128,0,1,0,0,0,4,5,0,0,0,95,69,78,86,0,0,0,0,0,3,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,3,1,0,14,65,0,0,0,65,0,0,0,129,0,0,0,202,0,0,0,1,65,0,0,74,1,0,0,129,129,0,0,205,193,64,2,1,194,0,0,160,193,0,128,132,2,0,0,192,2,128,4,156,130,0,1,73,129,130,4,159,129,254,127,129,193,0,0,228,1,0,0,4,0,128,0,4,0,0,1,0,0,0,0,0,0,0,3,4,2,0,0,64,2,128,3,92,2,128,0,28,130,0,0,64,0,0,4,201,64,128,129,20,2,0,0,24,0,2,3,22,64,7,128,0,2,128,3,28,130,128,0,70,2,130,2,90,2,0,0,22,64,0,128,134,0,130,2,22,128,1,128,64,2,128,0,132,2,0,1,192,2,128,0,1,195,0,0,65,195,0,0,156,130,0,2,149,128,130,4,64,2,128,0,132,2,0,1,192,2,0,1,1,195,0,0,65,195,0,0,156,130,0,2,85,130,130,4,73,65,2,2,84,2,128,1,76,194,192,4,128,2,0,1,192,2,0,1,12,193,64,2,64,0,128,5,201,128,130,4,22,128,247,127,5,2,1,0,6,66,65,4,64,2,128,1,29,2,0,1,30,2,0,0,30,0,128,0,6,0,0,0,4,1,0,0,0,0,3,0,0,0,0,0,0,112,64,3,0,0,0,0,0,0,0,0,3,0,0,0,0,0,0,240,63,4,6,0,0,0,116,97,98,108,101,0,4,7,0,0,0,99,111,110,99,97,116,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,4,0,0,6,26,0,0,0,4,0,0,0,68,0,128,0,132,0,0,1,196,0,128,1,4,1,128,1,92,128,0,2,129,0,0,0,28,128,128,1,68,0,128,1,76,64,192,0,72,0,128,1,68,0,0,0,132,0,128,0,196,0,0,1,4,1,128,1,68,1,128,1,76,1,128,2,77,65,192,2,156,128,0,2,193,0,0,0,92,128,128,1,132,0,128,1,140,0,0,1,136,0,128,1,94,0,0,1,30,0,128,0,2,0,0,0,3,0,0,0,0,0,0,66,64,3,0,0,0,0,0,0,240,63,0,0,0,0,26,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,2,0,0,0,2,0,0,0,101,0,8,0,0,0,25,0,0,0,2,0,0,0,111,0,21,0,0,0,25,0,0,0,4,0,0,0,2,0,0,0,104,0,2,0,0,0,99,0,2,0,0,0,100,0,2,0,0,0,108,0,65,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,13,0,0,0,2,0,0,0,100,0,0,0,0,0,64,0,0,0,2,0,0,0,101,0,3,0,0,0,64,0,0,0,2,0,0,0,111,0,3,0,0,0,64,0,0,0,2,0,0,0,116,0,3,0,0,0,64,0,0,0,2,0,0,0,97,0,4,0,0,0,64,0,0,0,2,0,0,0,110,0,5,0,0,0,64,0,0,0,12,0,0,0,40,102,111,114,32,105,110,100,101,120,41,0,8,0,0,0,14,0,0,0,12,0,0,0,40,102,111,114,32,108,105,109,105,116,41,0,8,0,0,0,14,0,0,0,11,0,0,0,40,102,111,114,32,115,116,101,112,41,0,8,0,0,0,14,0,0,0,2,0,0,0,108,0,9,0,0,0,13,0,0,0,2,0,0,0,108,0,15,0,0,0,64,0,0,0,2,0,0,0,114,0,20,0,0,0,64,0,0,0,2,0,0,0,108,0,31,0,0,0,58,0,0,0,3,0,0,0,2,0,0,0,105,0,2,0,0,0,104,0,2,0,0,0,99,0,0,0,0,0,1,0,0,0,1,0,0,0,0,2,0,8,35,0,0,0,129,0,0,0,193,64,0,0,24,0,128,128,22,128,3,128,24,64,128,128,22,0,3,128,16,129,64,0,80,129,192,0,87,64,1,2,22,0,0,128,204,128,128,1,141,1,1,0,143,129,64,3,205,65,129,0,207,129,192,3,142,128,64,1,64,0,128,3,0,0,0,3,22,128,251,127,24,64,0,0,22,0,0,128,0,0,128,0,24,0,128,128,22,0,2,128,16,129,64,0,24,0,129,128,22,0,0,128,204,128,128,1,77,1,1,0,79,129,192,2,142,128,64,1,0,0,128,2,22,0,253,127,222,0,0,1,30,0,128,0,3,0,0,0,3,0,0,0,0,0,0,240,63,3,0,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,64,0,0,0,0,35,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,7,0,0,0,2,0,0,0,108,0,0,0,0,0,34,0,0,0,2,0,0,0,101,0,0,0,0,0,34,0,0,0,2,0,0,0,111,0,2,0,0,0,34,0,0,0,2,0,0,0,110,0,2,0,0,0,34,0,0,0,2,0,0,0,99,0,8,0,0,0,18,0,0,0,2,0,0,0,97,0,8,0,0,0,18,0,0,0,2,0,0,0,101,0,25,0,0,0,32,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,3,0,6,27,0,0,0,154,0,0,0,22,0,3,128,205,0,192,0,209,192,128,128,207,192,0,0,13,1,64,1,77,1,192,0,13,65,1,2,12,1,64,2,17,1,129,128,208,0,129,1,16,1,192,1,13,1,129,1,30,1,0,1,22,128,2,128,205,0,192,0,209,192,128,128,12,193,128,1,16,1,1,0,25,0,129,1,22,128,0,128,1,1,0,0,26,65,0,0,22,0,0,128,1,129,0,0,30,1,0,1,30,0,128,0,3,0,0,0,3,0,0,0,0,0,0,240,63,3,0,0,0,0,0,0,0,64,3,0,0,0,0,0,0,0,0,0,0,0,0,27,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,5,0,0,0,2,0,0,0,101,0,0,0,0,0,26,0,0,0,2,0,0,0,108,0,0,0,0,0,26,0,0,0,2,0,0,0,111,0,0,0,0,0,26,0,0,0,2,0,0,0,108,0,11,0,0,0,14,0,0,0,2,0,0,0,108,0,17,0,0,0,26,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,4,0,0,7,37,0,0,0,4,0,0,0,68,0,128,0,132,0,0,1,196,0,0,1,204,0,192,1,28,64,1,2,4,1,128,1,64,1,0,0,129,65,0,0,28,129,128,1,0,0,0,2,4,1,128,1,64,1,128,0,129,65,0,0,28,129,128,1,64,0,0,2,4,1,128,1,64,1,0,1,129,65,0,0,28,129,128,1,128,0,0,2,4,1,128,1,64,1,128,1,129,65,0,0,28,129,128,1,192,0,0,2,4,1,0,1,12,129,64,2,8,1,0,1,14,193,192,1,78,1,65,1,12,65,1,2,78,65,193,0,12,65,1,2,12,1,0,2,30,1,0,1,30,0,128,0,6,0,0,0,3,0,0,0,0,0,0,8,64,3,0,0,0,0,0,192,81,64,3,0,0,0,0,0,0,16,64,3,0,0,0,0,0,0,112,65,3,0,0,0,0,0,0,240,64,3,0,0,0,0,0,0,112,64,0,0,0,0,37,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,4,0,0,0,2,0,0,0,97,0,6,0,0,0,36,0,0,0,2,0,0,0,111,0,6,0,0,0,36,0,0,0,2,0,0,0,99,0,6,0,0,0,36,0,0,0,2,0,0,0,101,0,6,0,0,0,36,0,0,0,4,0,0,0,2,0,0,0,100,0,2,0,0,0,114,0,2,0,0,0,108,0,2,0,0,0,110,0,0,0,0,0,1,0,0,0,1,0,0,0,4,0,0,5,13,0,0,0,4,0,0,0,68,0,128,0,132,0,0,1,196,0,128,1,4,1,128,1,92,128,0,2,129,0,0,0,28,128,128,1,68,0,128,1,76,64,192,0,72,0,128,1,30,0,0,1,30,0,128,0,2,0,0,0,3,0,0,0,0,0,192,81,64,3,0,0,0,0,0,0,240,63,0,0,0,0,13,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,2,0,0,0,101,0,8,0,0,0,12,0,0,0,4,0,0,0,2,0,0,0,110,0,2,0,0,0,100,0,2,0,0,0,114,0,2,0,0,0,108,0,0,0,0,0,1,0,0,0,1,0,0,0,3,0,0,9,52,0,0,0,4,0,0,0,28,128,128,0,68,0,0,0,92,128,128,0,129,0,0,0,196,0,128,0,0,1,128,0,65,1,0,0,129,65,0,0,220,128,0,2,206,128,192,1,204,0,128,1,4,1,128,0,64,1,128,0,129,193,0,0,193,1,1,0,28,129,0,2,68,1,128,0,128,1,128,0,193,65,1,0,92,129,128,1,81,65,1,131,23,192,65,2,22,192,1,128,23,192,193,1,22,128,0,128,142,193,193,2,158,1,0,1,22,64,3,128,1,1,0,0,129,192,1,0,22,128,2,128,23,0,66,2,22,0,2,128,23,192,193,1,22,192,0,128,143,193,65,128,142,129,129,2,154,65,0,0,22,64,0,128,143,193,193,131,142,129,129,2,158,1,0,1,132,1,0,1,192,1,128,2,13,66,66,2,156,129,128,1,207,129,194,1,204,193,1,1,142,193,1,3,158,1,0,1,30,0,128,0,11,0,0,0,3,0,0,0,0,0,0,240,63,3,0,0,0,0,0,0,52,64,3,0,0,0,0,0,0,240,65,3,0,0,0,0,0,0,53,64,3,0,0,0,0,0,0,63,64,3,0,0,0,0,0,0,64,64,3,0,0,0,0,0,0,240,191,3,0,0,0,0,0,0,0,0,3,0,0,0,0,0,252,159,64,3,0,0,0,0,0,248,143,64,3,0,0,0,0,0,0,48,67,0,0,0,0,52,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,6,0,0,0,2,0,0,0,110,0,2,0,0,0,51,0,0,0,2,0,0,0,108,0,4,0,0,0,51,0,0,0,2,0,0,0,99,0,5,0,0,0,51,0,0,0,2,0,0,0,110,0,12,0,0,0,51,0,0,0,2,0,0,0,111,0,17,0,0,0,51,0,0,0,2,0,0,0,108,0,22,0,0,0,51,0,0,0,3,0,0,0,2,0,0,0,111,0,2,0,0,0,101,0,2,0,0,0,86,0,0,0,0,0,1,0,0,0,1,0,0,0,8,1,0,14,44,0,0,0,26,64,0,0,22,128,1,128,132,0,0,0,156,128,128,0,0,0,0,1,23,0,64,0,22,64,0,128,129,64,0,0,158,0,0,1,132,0,128,0,196,0,0,1,4,1,128,1,68,1,128,1,76,1,128,2,77,129,192,2,156,128,0,2,64,0,0,1,132,0,128,1,140,0,0,1,136,0,128,1,138,0,0,0,193,128,0,0,20,1,128,0,65,129,0,0,224,0,3,128,196,1,0,2,4,2,128,2,68,2,0,3,132,2,128,0,192,2,128,0,0,3,0,3,64,3,0,3,156,2,0,2,92,130,0,0,129,194,0,0,28,2,128,1,220,129,0,0,137,192,1,3,223,64,252,127,196,0,128,3,0,1,0,1,221,0,0,1,222,0,0,0,30,0,128,0,4,0,0,0,3,0,0,0,0,0,0,0,0,4,1,0,0,0,0,3,0,0,0,0,0,0,240,63,3,0,0,0,0,0,192,81,64,0,0,0,0,44,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,7,0,0,0,2,0,0,0,101,0,0,0,0,0,43,0,0,0,2,0,0,0,111,0,0,0,0,0,43,0,0,0,2,0,0,0,101,0,21,0,0,0,43,0,0,0,12,0,0,0,40,102,111,114,32,105,110,100,101,120,41,0,24,0,0,0,39,0,0,0,12,0,0,0,40,102,111,114,32,108,105,109,105,116,41,0,24,0,0,0,39,0,0,0,11,0,0,0,40,102,111,114,32,115,116,101,112,41,0,24,0,0,0,39,0,0,0,2,0,0,0,108,0,25,0,0,0,38,0,0,0,8,0,0,0,2,0,0,0,97,0,2,0,0,0,99,0,2,0,0,0,114,0,2,0,0,0,108,0,2,0,0,0,105,0,2,0,0,0,110,0,2,0,0,0,100,0,2,0,0,0,98,0,0,0,0,0,1,0,0,0,1,0,0,0,1,0,3,5,9,0,0,0,74,0,0,0,165,0,0,0,98,64,0,0,132,0,0,0,193,0,0,0,37,1,0,0,156,0,0,0,94,0,0,0,30,0,128,0,1,0,0,0,4,2,0,0,0,35,0,0,0,0,0,9,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,4,0,0,0,97,114,103,0,0,0,0,0,8,0,0,0,1,0,0,0,2,0,0,0,117,0,0,0,0,0,1,0,0,0,1,0,0,0,7,0,0,18,152,0,0,0,10,0,0,2,65,0,0,0,129,0,0,0,193,0,0,0,1,1,0,0,34,64,0,2,74,0,0,0,138,0,0,0,202,0,128,2,0,1,0,0,67,1,128,2,128,1,128,0,195,1,128,3,0,2,0,1,226,64,128,2,1,65,0,0,68,1,0,0,92,129,128,0,129,65,0,0,32,193,19,128,4,2,128,0,68,2,0,0,92,130,128,0,129,130,0,0,28,130,128,1,68,2,128,0,132,2,0,0,156,130,128,0,193,194,0,0,92,130,128,1,132,2,0,1,192,2,0,4,1,67,0,0,65,3,1,0,156,130,0,2,196,2,0,1,0,3,128,4,65,67,0,0,129,67,1,0,220,130,0,2,10,3,128,2,64,3,128,5,132,3,0,1,192,3,0,4,1,132,1,0,65,68,1,0,156,131,0,2,195,3,0,8,64,4,128,4,34,67,128,2,23,0,64,5,22,0,3,128,68,3,0,1,128,3,0,4,193,195,1,0,1,4,2,0,92,131,0,2,9,67,3,131,68,3,0,1,128,3,0,4,193,131,2,0,1,196,2,0,92,131,0,2,9,67,131,132,22,64,8,128,23,64,64,5,22,128,1,128,68,3,0,1,128,3,128,4,193,195,1,0,1,4,3,0,92,131,0,2,9,67,3,131,22,0,6,128,23,0,65,5,22,192,1,128,68,3,0,1,128,3,128,4,193,195,1,0,1,68,3,0,92,131,0,2,77,131,195,6,9,67,3,131,22,128,3,128,23,128,65,5,22,0,3,128,68,3,0,1,128,3,128,4,193,195,1,0,1,68,3,0,92,131,0,2,77,131,195,6,9,67,3,131,68,3,0,1,128,3,0,4,193,131,2,0,1,196,2,0,92,131,0,2,9,67,131,132,9,0,131,3,31,129,235,127,1,65,0,0,68,1,0,0,92,129,128,0,129,65,0,0,32,193,0,128,13,66,192,3,68,2,128,1,92,130,128,0,73,64,2,4,31,129,254,127,4,1,0,2,28,129,128,0,201,0,129,135,4,1,0,0,28,129,128,0,74,1,0,1,129,1,0,0,193,1,0,0,98,65,0,1,129,65,0,0,192,1,0,2,1,66,0,0,160,193,5,128,132,2,0,2,156,130,128,0,195,2,128,5,23,64,64,5,22,128,1,128,4,3,0,2,28,131,128,0,23,0,64,6,22,0,0,128,194,66,0,0,194,2,128,0,22,128,2,128,23,128,65,5,22,192,0,128,4,3,128,2,28,131,128,0,192,2,0,6,22,0,1,128,23,0,64,5,22,128,0,128,4,3,0,3,28,131,128,0,192,2,0,6,73,193,130,4,159,129,249,127,201,64,1,130,222,0,0,1,30,0,128,0,16,0,0,0,3,0,0,0,0,0,0,0,0,3,0,0,0,0,0,0,240,63,3,0,0,0,0,0,192,108,64,3,0,0,0,0,0,128,101,64,3,0,0,0,0,0,0,0,64,3,0,0,0,0,0,0,38,64,3,0,0,0,0,0,0,8,64,3,0,0,0,0,0,0,40,64,3,0,0,0,0,0,0,52,64,3,0,0,0,0,0,0,20,64,3,0,0,0,0,0,0,53,64,3,0,0,0,0,0,0,61,64,3,0,0,0,0,0,128,64,64,3,0,0,0,0,0,0,64,64,3,0,0,0,0,254,255,47,65,3,0,0,0,0,0,0,16,64,0,0,0,0,152,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,25,0,0,0,2,0,0,0,100,0,6,0,0,0,151,0,0,0,2,0,0,0,114,0,7,0,0,0,151,0,0,0,2,0,0,0,108,0,8,0,0,0,151,0,0,0,2,0,0,0,97,0,15,0,0,0,151,0,0,0,12,0,0,0,40,102,111,114,32,105,110,100,101,120,41,0,19,0,0,0,101,0,0,0,12,0,0,0,40,102,111,114,32,108,105,109,105,116,41,0,19,0,0,0,101,0,0,0,11,0,0,0,40,102,111,114,32,115,116,101,112,41,0,19,0,0,0,101,0,0,0,2,0,0,0,97,0,20,0,0,0,100,0,0,0,2,0,0,0,99,0,25,0,0,0,100,0,0,0,2,0,0,0,111,0,30,0,0,0,100,0,0,0,2,0,0,0,110,0,35,0,0,0,100,0,0,0,2,0,0,0,108,0,40,0,0,0,100,0,0,0,2,0,0,0,108,0,50,0,0,0,100,0,0,0,12,0,0,0,40,102,111,114,32,105,110,100,101,120,41,0,105,0,0,0,111,0,0,0,12,0,0,0,40,102,111,114,32,108,105,109,105,116,41,0,105,0,0,0,111,0,0,0,11,0,0,0,40,102,111,114,32,115,116,101,112,41,0,105,0,0,0,111,0,0,0,2,0,0,0,108,0,106,0,0,0,110,0,0,0,2,0,0,0,108,0,116,0,0,0,151,0,0,0,2,0,0,0,111,0,120,0,0,0,151,0,0,0,12,0,0,0,40,102,111,114,32,105,110,100,101,120,41,0,123,0,0,0,149,0,0,0,12,0,0,0,40,102,111,114,32,108,105,109,105,116,41,0,123,0,0,0,149,0,0,0,11,0,0,0,40,102,111,114,32,115,116,101,112,41,0,123,0,0,0,149,0,0,0,2,0,0,0,110,0,124,0,0,0,148,0,0,0,2,0,0,0,101,0,126,0,0,0,148,0,0,0,2,0,0,0,108,0,127,0,0,0,148,0,0,0,7,0,0,0,2,0,0,0,111,0,2,0,0,0,110,0,2,0,0,0,101,0,2,0,0,0,105,0,2,0,0,0,116,0,2,0,0,0,104,0,2,0,0,0,115,0,0,0,0,0,1,0,0,0,1,0,0,0,3,3,0,8,15,0,0,0,198,0,64,0,6,65,64,0,70,129,64,0,134,193,64,0,228,1,0,0,0,0,128,1,0,0,0,2,0,0,128,2,0,0,0,3,4,0,0,0,4,0,128,0,4,0,0,1,0,0,0,1,222,1,0,1,30,0,128,0,4,0,0,0,3,0,0,0,0,0,0,240,63,3,0,0,0,0,0,0,0,64,3,0,0,0,0,0,0,8,64,3,0,0,0,0,0,0,16,64,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,8,0,3,25,128,0,0,0,68,0,0,0,132,0,128,0,196,0,0,1,4,1,128,1,68,1,0,2,129,1,0,0,193,65,0,0,10,2,0,0,74,2,0,0,165,2,0,0,98,66,0,0,132,2,128,2,193,130,0,0,37,3,0,0,156,130,0,0,141,2,64,5,202,2,0,0,10,3,0,0,65,195,0,0,128,3,0,5,193,3,0,0,96,67,2,128,25,0,4,2,22,0,1,128,77,4,1,8,140,4,64,8,134,132,132,4,9,130,132,8,22,128,0,128,76,4,64,8,70,68,132,4,9,67,4,8,95,3,253,127,77,3,1,5,76,3,192,6,131,3,128,7,134,131,129,0,198,3,64,7,25,0,193,7,22,64,11,128,25,0,192,7,22,64,7,128,24,192,131,129,22,128,5,128,6,68,65,7,74,4,0,0,129,196,0,0,198,4,65,7,204,196,4,8,205,4,192,9,12,5,64,8,64,5,128,9,129,5,0,0,32,133,0,128,140,4,64,9,6,198,5,6,73,4,6,9,31,197,254,127,6,5,4,6,68,5,0,3,128,5,128,8,193,5,0,0,13,6,132,9,92,5,0,2,28,69,0,0,192,1,0,8,22,64,14,128,6,68,65,7,70,4,65,7,70,68,4,1,9,67,4,8,22,0,13,128,24,192,131,130,22,0,1,128,6,68,65,7,70,4,65,7,70,68,4,1,9,67,4,8,22,64,11,128,6,68,65,7,68,4,128,3,134,4,65,7,134,132,4,1,70,132,132,8,9,67,4,8,22,128,9,128,25,128,193,7,22,64,1,128,24,192,131,131,22,64,0,128,30,0,128,0,22,0,8,128,30,0,128,0,22,128,7,128,24,192,3,132,22,128,5,128,6,68,65,7,74,4,0,0,129,196,0,0,198,4,65,7,204,196,4,8,205,4,192,9,12,5,64,8,64,5,128,9,129,5,0,0,32,133,0,128,140,4,64,9,6,198,5,6,73,4,6,9,31,197,254,127,6,5,4,6,68,5,0,3,128,5,128,8,193,5,0,0,13,6,132,9,92,5,0,2,28,69,0,0,192,1,0,8,22,64,1,128,6,68,65,7,68,4,128,3,134,4,65,7,134,132,4,1,70,132,132,8,9,67,4,8,140,1,64,3,22,0,233,127,30,0,128,0,9,0,0,0,3,0,0,0,0,0,0,240,63,3,0,0,0,0,0,0,240,191,4,2,0,0,0,35,0,3,0,0,0,0,0,0,0,0,3,0,0,0,0,0,0,8,64,3,0,0,0,0,0,0,0,64,3,0,0,0,0,0,0,20,64,3,0,0,0,0,0,0,16,64,3,0,0,0,0,0,0,24,64,0,0,0,0,128,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,36,0,0,0,4,0,0,0,97,114,103,0,0,0,0,0,127,0,0,0,2,0,0,0,104,0,1,0,0,0,127,0,0,0,2,0,0,0,110,0,2,0,0,0,127,0,0,0,2,0,0,0,101,0,3,0,0,0,127,0,0,0,2,0,0,0,111,0,4,0,0,0,127,0,0,0,2,0,0,0,108,0,5,0,0,0,127,0,0,0,2,0,0,0,99,0,6,0,0,0,127,0,0,0,2,0,0,0,116,0,7,0,0,0,127,0,0,0,2,0,0,0,105,0,8,0,0,0,127,0,0,0,2,0,0,0,100,0,11,0,0,0,127,0,0,0,2,0,0,0,114,0,16,0,0,0,127,0,0,0,2,0,0,0,108,0,17,0,0,0,127,0,0,0,2,0,0,0,101,0,18,0,0,0,127,0,0,0,12,0,0,0,40,102,111,114,32,105,110,100,101,120,41,0,21,0,0,0,33,0,0,0,12,0,0,0,40,102,111,114,32,108,105,109,105,116,41,0,21,0,0,0,33,0,0,0,11,0,0,0,40,102,111,114,32,115,116,101,112,41,0,21,0,0,0,33,0,0,0,2,0,0,0,108,0,22,0,0,0,32,0,0,0,2,0,0,0,108,0,35,0,0,0,127,0,0,0,2,0,0,0,108,0,36,0,0,0,127,0,0,0,2,0,0,0,111,0,36,0,0,0,127,0,0,0,2,0,0,0,111,0,45,0,0,0,66,0,0,0,2,0,0,0,99,0,46,0,0,0,66,0,0,0,2,0,0,0,110,0,47,0,0,0,66,0,0,0,2,0,0,0,108,0,50,0,0,0,66,0,0,0,12,0,0,0,40,102,111,114,32,105,110,100,101,120,41,0,53,0,0,0,58,0,0,0,12,0,0,0,40,102,111,114,32,108,105,109,105,116,41,0,53,0,0,0,58,0,0,0,11,0,0,0,40,102,111,114,32,115,116,101,112,41,0,53,0,0,0,58,0,0,0,2,0,0,0,108,0,54,0,0,0,57,0,0,0,2,0,0,0,111,0,97,0,0,0,118,0,0,0,2,0,0,0,99,0,98,0,0,0,118,0,0,0,2,0,0,0,110,0,99,0,0,0,118,0,0,0,2,0,0,0,108,0,102,0,0,0,118,0,0,0,12,0,0,0,40,102,111,114,32,105,110,100,101,120,41,0,105,0,0,0,110,0,0,0,12,0,0,0,40,102,111,114,32,108,105,109,105,116,41,0,105,0,0,0,110,0,0,0,11,0,0,0,40,102,111,114,32,115,116,101,112,41,0,105,0,0,0,110,0,0,0,2,0,0,0,108,0,106,0,0,0,109,0,0,0,8,0,0,0,2,0,0,0,101,0,2,0,0,0,111,0,2,0,0,0,99,0,2,0,0,0,108,0,2,0,0,0,86,0,2,0,0,0,117,0,2,0,0,0,102,0,2,0,0,0,97,0,15,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,7,0,0,0,2,0,0,0,108,0,0,0,0,0,14,0,0,0,2,0,0,0,101,0,0,0,0,0,14,0,0,0,2,0,0,0,97,0,0,0,0,0,14,0,0,0,2,0,0,0,101,0,1,0,0,0,14,0,0,0,2,0,0,0,111,0,2,0,0,0,14,0,0,0,2,0,0,0,99,0,3,0,0,0,14,0,0,0,2,0,0,0,108,0,4,0,0,0,14,0,0,0,3,0,0,0,2,0,0,0,86,0,2,0,0,0,117,0,2,0,0,0,102,0,84,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,24,0,0,0,2,0,0,0,100,0,2,0,0,0,83,0,0,0,2,0,0,0,105,0,4,0,0,0,83,0,0,0,2,0,0,0,99,0,6,0,0,0,83,0,0,0,2,0,0,0,98,0,8,0,0,0,83,0,0,0,2,0,0,0,86,0,10,0,0,0,83,0,0,0,2,0,0,0,72,0,14,0,0,0,83,0,0,0,2,0,0,0,108,0,15,0,0,0,83,0,0,0,2,0,0,0,117,0,16,0,0,0,83,0,0,0,2,0,0,0,102,0,17,0,0,0,83,0,0,0,2,0,0,0,104,0,18,0,0,0,83,0,0,0,2,0,0,0,115,0,22,0,0,0,83,0,0,0,2,0,0,0,114,0,25,0,0,0,83,0,0,0,2,0,0,0,110,0,33,0,0,0,83,0,0,0,2,0,0,0,101,0,34,0,0,0,83,0,0,0,2,0,0,0,108,0,35,0,0,0,83,0,0,0,2,0,0,0,111,0,40,0,0,0,83,0,0,0,2,0,0,0,116,0,45,0,0,0,83,0,0,0,2,0,0,0,104,0,49,0,0,0,83,0,0,0,2,0,0,0,97,0,50,0,0,0,83,0,0,0,2,0,0,0,115,0,59,0,0,0,83,0,0,0,2,0,0,0,108,0,60,0,0,0,83,0,0,0,2,0,0,0,86,0,62,0,0,0,83,0,0,0,2,0,0,0,105,0,70,0,0,0,83,0,0,0,2,0,0,0,104,0,74,0,0,0,83,0,0,0,0,0,0,0})()

Source:

Thanks you so much, I appreciate it!

I’d like to add to this post; considering that @rq_9s is creating a quiz game — I understand why they would want to hide the code so that users can not figure out the answers to the quiz.

Although there is a much easier way to do this, don’t handle the code for answers on the client, and instead handle it on the server (via remote events.)

Something to consider! :slight_smile:

1 Like

Questions would be configured by a config file.

How is this open-source?
Please, if you’re gonna make something open-source, don’t obfuscate it.

Open-source means that the original ‘source’ is ‘open’ to the public. That’s clearly not what you’re trying to do here.

It’s open source as long it’s free to use. By obfuscating the source code, it’s still open source. The code is not, but the application centre is.