Porting Shadertoy tutorials to jit.gl.pix

From WikiName
Jump to: navigation, search


Shadertoy has some incredible pieces of work that can be translated into jit.gl.pix. This page has 28 tutorials that start from the very bottom up with creating and understanding how to build shaders.

https://www.shadertoy.com/view/Md23DV

These start from showing how to fill in a screen with a colour to creating basic grids and geometry all with jit.gl.pix.

All the examples with jit.gl.pix use codebox (Genexpr) due to some code being difficult to build with standard objects with patch cords. The Max file uses a simple Gswitch to swap between tuts.

If you open the jit.gl.pix object you'll find a comment box with the original code from the Shadertoy page, this will allow you to see how certain things get translated from glsl into codebox.

I kept all the tutorials in one max patch so that its easier for people to compare code from other examples.

There are some minor conversion problems such as origin of the co-ordinate system etc etc.. These are highlighted with comment boxes coloured red. Please feel free to edit the max patch and fix any errors you find, just include clear comments so its clear what was changed for people.

If we as a community can convert all the tutorials on this shadertoy page then I think it would make a great starting point for people to learn how to use jit.gl.pix and the jit.gen objects.

Heres the Max patch with tutorials 3-13 (1 and 2 aren't included as they just show nothing useful)

<code>
----------begin_max5_patcher----------
10414.3oc68s2caajju+symh9p68rQJCMMdCv33YiGmjY7t4wbh8LyNmHu9.
RBQgwf.L.fVhYN969sdz.nAIAHndvPYiDKQQf9UUc2UU8utqp+2e1iNYbx0A
YmH9RwuHdzi92e1idD8H7AOR98Gcxb+qmD4mQI6jIIymGDmex.9c4AWmSO+q
9JweKKPjeYXl3OmcUX9jKE4Ihrq7WHFGjeUPPrHeYd1vhbFEFGLIYYLkcC4C
W3C4KLd1aSCljyMKcMGigZCD1NN3G51zGllC0DuQlqvoTSHY7+5wVZEkeV9p
n.54EOId47v3nfbhPzqdXxx7hmpgO7Ce1mg+Zvsmi7eElObVzvEgWKhCBllg
bDfxBCdefvW7C94ovafmkrHH0OOPLIIEI7nUCDgW.7x.Q3b+YvuyDWr729sU
3ihEgwSRC7IlcfXZ3bQBm14kk2bjMJxfjAIOMHKIZYdXR7148NMy6MrFMzdf
vvyYnkmommKv+crP9um614+ldGM7+WuLWHzMOO973mms.nIAviCSDwI4hI9Q
SVFAr7ohUA46MeQ2xPC4BttlCs0cz0MGHb7Ziu3XWTGimMIIJIkKHsgtFZNi
7F.+ktiqgI9GZdZZ5V3eYaUVVGL1YbvUPCdCt4+pbn7IswWzItfqo6PaSCCC
b.iFwpLLZfw3dqFvTH3feT9pEAbKAauucVzaw1+xzfSF.kZY0Ss7fTISPxEd
zIWDFASLSyfYJJU3iNwewBkG+Hkrfrt+E2W5Nn7Qgw7izJeTZv6CKxuU4S8S
A9WNv7vFHR2W64bRUwjLMHMdYH0T3GBcheVQAVvxert8Hhman6RxG00zwOgA
SUL7GcRvzvbruZsQeiFn7Kc0LLdVTxj2ELUkPNAjSEGFu.jn.S3vISw0d8zf
K7WFk+1KRhyyB+MhnzQg2a48W3OInwLG6Om4HOOMzOpfmbxrzvoIwXinV+C9
3hpCFCZypITIFJEw9K1Rlgwf.urgWlAD4xrw9oX22XdzoQwKySRhp+px7EEb
Qt70KBiiWiKlmrn4WlFN6xVx63D3kyaqro2j81kw7aeKLwN+sY9uuN2N2OJR
NSudweseLnyIOHOj6BLzJeYPrOPnWBpURhhpQu7ad+VdyTXj+jfqBmleIUQp
CFfjGtnXPzIk8xSCmEjkW+Y49yxp+jMjV.OZ4X4LaXZ+7En385InlwNpSiUk
IV64sppot.x+1hoj9DpIHtHMYt3mSFK9Y+4goA+1.wzjfr3OOWj6+NP4uhBI
TgNny1eBo4QDEBuGrTJAG5iSeTqsZJnrTdwVMbhjKXyppzsoObzTlWrtnX0Z
ZS9aSRjaRuyiJz8HEccOvy++FDA1I85+1q+oe9kO+6EO6Yj99m7Dw2829wW7
5W9S+3qvuwOYY7DjYmI7SCDy.CnxEWjjBlbMM.LQZYVvPw2Gj+4YhEfcCn4T
zavjLML6cYTgvcTfsXbYI7imJVJMDq7gTVR8uB5MFR450vHx.pZyPSyhWAk3
EW.OC5suxeUFZ+1Uoj7Y0BGpJrXfGkco+hfgkjxeAKtqBDW5SlQ99jvoJ45R
fvvwZjcNoAfxErctJGGcLT7x3r7.+oCnB57S.04AQmeBZfINtDRIvehgW.5v
VlCuH3ZTZOp6ZnxSgj6KVFG9qKCnB5cAqtJIcJRH+4u+UeOS1+IfNYY5BPXC
P+yVhcjbG.VVPAU9vgh+wkgStjx37.+3rADS889QKCJru889vTBPNCV8yBee
.whpw5yl.hvoxfl+guidT8TAYGr+KJXJPRXZeNRvLgUVEX4m0RSnr7KJUpjj
sGtNCiEWgzTSUdUcWvVK3Fb+GHp+xghuKLMKuUdAUNnB4MXGPmYHwu4hcHNR
Ld.ODY8BXQZxDniFDfEFmENsNKC6cP1sZgGDOUsShJjszQsTJV7JZRPKrhxg
1bgVM1rrzn1MjovXXtheDnwGJ1vblAO1ex6lkBhFmREDYkC1Evk0beZ3VE8v
bhZS.pMj57SvY8meBOXZS1.H1YRRLZTESHYfj7rKBgVzFcUkUBKBAH5K8imo
11O+Dp4pLB.lndAz2goFmFikNV3DqYyotn4Fvzw7jkfxuojTo2EDr.68g9UP
CbxxLYa5TdH4U9YJE03Yufq+g3hkH4IH0e56ClXHRGHnOm.Mq.3KWDk3iZtl
FtLidkIyrgkrhCi4mPMtyfoW+anDg19oPaLdV9kml9XtbNS7Uxx3LAklyyo7
HdFWZOEe1GNO9CksHrK7k3pgOUHqFKXVnO2zwJmal7iPgQmIqclJfBV.lh9E
32NsLQCudk3w3Bs9hvetZYxWu5rmn98UTqQVVlBhcAkG9kS0FZd1SKeEz10q
digtCZZskqN9ArLuydp.X3iooKU4vnHGfA3ZXJMMHSxMJxPZvT0zaVUCdNtj
w65T9Lrb4LrJHJJ4Jj0IyUAukZ5kTC0IK6egBiZklmQK7b.UQCjcjOciT+Xn
tGHfe6bFtvAN85MmdJ4fsGPpGpyo1nVpweJ6NYBz5T58zBSvD8AVhYlXUxRP
fmTPwXnaDVcVwrMRYMqZ77S9W9yfIZvjjIKSA44CXoPRU4SCee3zkfMVTsfx
hhEiCvBljOfBZJDPAEEHuwOCTgBSRDuLWjLAJRVx43fI9nQ.xhgp5KPYTPYA
xnnoif15q7YIzRc5fzCPg+RXlIK+FUwKPY1HET8RAtzEUyHHUuyCxuLYJilz
zkSX4pEsPp8AICVpDvcVIlGdMZYQwzco3cV.I11fYSUOAJ8bE1JvHPKSujPr
Bw1iJhBaOf5OJvGruHKYNjikgQ4OFlGVHtLiDmPJ4.IW9yfIvCPwYbykJerW
C6wpTJfL7LpccYxUXBWg1KPECx4hEjkQKvLF.MLAnjDaleK920KIvRqvEDHO
bqFqTddPgFERJqu7g.GqJGSIFGX5R3hHdLUMEAay5DbcVBjkiZCjZiKGPWvI
dYLiP5D+L4v25xmYii.SdgpMOHZkH48Aonsg4vfxhQA3nK+nhZONBsyZApNt
P4E0TpaQnBoUmYLTw7z3DbvBBGQVIlsQ9qfYWPc23xPbbaecH11lzBPHTbsr
I3CGoY275PrORWGxz.LksSrVD3KLQZ4PK4xxxsYZ0Ps7ZF5il4DaCKkV4PM.
NylLO0LsA7ZmTifPdC0xjx7k1JHMRfMOfk0edJpUNG+377TXHLHpmdyS4G0M
SEjYT0RghhjWvCl.pD+.+X72UFPTY1P5YbyARhhVcTo9fhezY8SUZ12lhcLU
pp1qzpuEk5EIVpVuRi91TnWjXUU5aWadwSUz6tak5aKScP291qqNnhW1+H6x
kcOvOv.Lj8V0GEFC0XVbR5bHy4mbGNQtF.20wS.Tdo2oI3FDHitFqir85Su0
2SQY27YiGFFDZ4c23PRXmLc2EKx5dUZeEFvnNqF.+iHB78am4jkrLcRAqVJz
VTmdlFjAFrUhH9uTRZqktKCmNMHd8dZXVDZNxztqxZeaw5crEabG0hkiG4mb
WsedngSYgyYS59RTT3x3vK.ID7hAC+F34jrxSWAVkNPLGzzc4.wT+UfoVgyI
DYxBvksmc1V2wO6V1YKaOZemscQ4gRvTcsZXSPsO4HYW6Rkax7i+qgW+Mgya
Yq6FY4fTlsAY5xN1zNSilIvZ6ujskttKoqzS21wyg0sY5ZXWa6l1pPvsK.rQ
ge2MLrrNyvzM8PFlocmXX52mLr68gQYBbt0qwsDpMFhCI42zoKbjQZGKyQV3
+NfIW9utPgFdcfB855NaacHFu2jT0IQgSdGtn5OGwo8yoUd+44vyx9b5jorL
G2Oj89P6XqoUbZcvQtlDCyRqgwBEEeiK.5jwKGWeSV65vlZK2wbn1c2nokyG
Gj15ggvkrRzvgNDMV7WZ3bKoatadvB+T34vJhdKueqpxJuK4FMdlJvSQwX+3
Y2PIt6lgw1L1IFlscOCCjG08QX1te7yv1t.9kwK7AYbZ3+2EtoIaimwn1XmN
F6lcdWxxLahkEhB0q8wcp9geHLdYdqp8kVFaLxlFDxbsFjz6XtIu4xfnE3Qu
5sQ9iCh9c5vB9JZcAsQlNxU9yjIa0Wijo0QJY9OgEF0EUVLQJW7dSDo2QJQ9
M9q5hVFIMZzJMN5HkF+AbsscQXlbVoSaToq1QJU9ZzNz1nRWMWUpr09RWiem
oxcqOufbX84dZso.xs2hwJgxcw.HWqdFVox5Nwv5MwFXXl6wHLmdSra2D6Bt
Iic1NLw108iKSraf2g3tzEM4ZVLdisqUv6HgmEElQbqhOuq4ZvbnzDDBtVGu
YoMp.oNf245zJqazsl0YrOrtFA36lO6LOY1rnfNvP3swfw52ngcwvS6NTlkp
OiTq8vJv08ZpA0Qd1c95deUteZ9SdEdTiN+jInuvb9IsxXYHNsYuOwrbWh2J
mU+gHfmyCxx7mEbSkeoaORYMkMLGzy3HYN3MavTSrn7cryIEhojrnVES4Y9Q
JKZGK0yRdLxj7HuV4QVOn4QiWlmmD2kALlFcPN99taz6PVsgiwsSV8MW+VSB
q+KIK6jQ7RHe7ZClfRev7nCLDxelMZiNMX5zCLUTqlaI2H9VZ2H2R9AlWIKY
KpdqsmcaacqsWuSIe6bJYmQj.JFsAcMN1MLxvs2mj68I4deR9P4Sx+bvTwjv
zIQAhrKSVFMEcvEoSwEkbUPpf5Zw3NRb.5tbjygV3QC3ZeTeeid.f4NbDYN.
tvHnIieKscl3cUqn8QujkSsh7gpKLaPdnw27xW8eW5WjrmIStNTo2HSu3UIj
qugdcK5VNfnnOOm7jQxEilOmbvmKP2YDyK46IjWxP97gzAD8yqbYRx8ljCCf
xC8qI+XxYov9yxhLa4jKQ2K87SjwoF9.gKKmjzo3QKMfcVSo2jJq4AR+q1OW
5BRn6RWVBRmjDcxk0qS10X7EiCwGsD8L.zerWB5P.pE9dXD5XXT9mEjiM8or
Cw3StYMOpNL9creY+otOEV5OA6gaExNrP69TH16U2w0wwQRoOuKl8oKXLkez
JXIePOUBhjW3D+HYtq73btGC58J7+c58OuPhVH6e1YPeMjvEIgnukSo+Re4q
.U13ftb+3IrKaKKCzyZgDy9WB4ATUIqxo+XmNondqknR2+VYvNWZj6e8qo4m
d8Wbs3OHV8EqNSV.eGFalTKDYqjqFXxXTDOykbR5jT7fNieJyteAc6mu8ZVl
t0pbnChq.ExPxqTbzatnGT5AkCpbHZ+rFJ3updA+pecoeJ5ngneqKvRVgljo
oL2kY9KpJCUGKFZ0vnvmV3QPoCu9Kfef7lNbE7Wajew17hX8BmHtZjYkKTBi
HSgAKfrLkAbnrHhLeOTgumpv2CUH7SQmXB5vfLiAlDjCo+7Sd+4mLP5p+gnH
Qo+K89yPoY0coIjqgyt2Rq0biVqbRDIuFCQDTMTMJCcLbfgcp1.syJFj9J+U
b+YYpP4reo3zICudfXBPGXLOXywyHYEuhGXHRgzmhoGXzmghPmPzkxn.70OF
Jxy9eM9Cveu5wXI++ZTvj.ylAyC3lNW9Rd0TtjAwiSjkO8mkb2BMYSKbFWk3
zEnBCGKiYfcTcLC+WKyxovbPr.cmWrSb.nbZbVdpO68inLjqRjMfrB+hUlcz
QKguAz73UUeQYFOTZxttomwwkBlA.B4ARe5vUUDc4.fZywKlGeE6gkQIIn9G
7wCK0iH6rdVgmROhb9JqRU.FhRJmR4SWaT0TdTky1FUYTMphnHT5zkgWPwZD
oYdxpW9MoH6jz2kQSGfgExLCMbxVBVZL55rneXKCBIEzIZbYP5bxcrKjHcAN
tGlPOfCecWfd12YOSqXhWfhv5R0AbsHKfwKkxqqYYAQGrm5NY3d4B4+H5CxR
2KVPdSRNOKiJ0jq3.6Rom4BCJXiOvkPIc46KQlQXdguVW3C3kdeas3CAGvGx
TLyAKD1+ckRyChkd48KuXMo6Dqj6Qu.YBkdkrZUHcHYrp4PnRg69hUOIENM.
M1gHrJdD4px4kVIADZaN5qqd61465PX6yGgrBG8016iSG8kAoW2jipRiXedy
7SGO88uh6IXg1ZzjwydZgubpZW7omNALzjD4iVDOMbNn03I3GqFH32sR4cqj
uqpvV2sbEU+RenPfSp2gq4hoS0H418MWH00MPdGtmaY5kFGulUwRp31aDSoa
LW62E+7Pw3Fk1eM0dqq0aMMdvpmtIJ81fmI8xX16iOd7oXVVhmQuOE2NGxwS
u2mh68o3av1G4mmmtLrK6QjU0dDI8x2F2jnQ2pMIp3oXSi8UWRIvIGF296E7
yED7yr0enEtfRL4xbvvpCZ1qHJLGZIX7gC5blWEzxnviHtFTbsB3xIThZMvJ
x.EO.yMX5v81Sq0boCq0HN7UtCWs114f6Foy3nadaaDKe7pjQr7QddEwDlsR
Al2AGyJkcbbwRIA2vvN81NXnc5m6zAh7tZqextGPz8c01V+Fsq1dOv1VaYfw
eO1Vai9s091ss1VNxySJGqs0XucycjW+9Z2uu186q8gZesIbLICPJhp1nQHz
d3EbsOdAZTAonOhomOL+NOYU0dah3XhaXACuVvuhwAxBDjELVZXPUEWBMsGM
z1fSaWRANo7kqAA+IJgvOdVTPVyAq6cDj7z4CNr8HaEidn.LQiKCT6AW359e
.lYlIlkPfOGuik74vxXsTid4FerG8x0Iza+gm+e+xe7OKd8e4aEO+U+0u8Eu
V7yO+0u7mD+z2QO6E+zO8yeyK+wm+5uU7p+4qd829Cn1jxSDvyyJiOmXnLsZ
qJKwyFlhfVpigCUbBDsa4UCgKBRnqOM4JD6dHCKhR1XCHyVAIedlDAaUDwo5
.XFgy.4i7DRfYGPa3Kt88AXj5af3WzFn+FJ5nVDYz4fR8kqxnTVreJYCEOGz
gCBT4Y3jvthojWflOS0c3rYAoBYftzm1DHD57KCvowCKO3DP8gwIYdGoUhH+
CT1xZbENy8kogp5pFCUPPSWTai9eCI0X8Gu5MkQGbpUJI8a6IQP8rHPaejXm
mCAByTJV7A4AsT7KPnIWIdhXiymPwtxUNXfhYt3zWDHSfdpUxDci3Zt1KJ1.
IJyA79CycYy2HoCU2oJ7TafkGsAF7IW5WdL6uHC0dSw9hSU50bh3.gJEiXKG
Pflq.B9EyVFjw6ASbR7iuXIjbVHtrflS2D.Wuds4RXB658lATUQw21xrRYpX
atRREyWIh7AKNVL.OiAqURNXA47Fwo5VfTsmLBjt+L3AmU+ffTFGyU1FK5Xb
nbjP7Acq0dMIcTSxYTRHZL1ZIztn6u9g3nd0pdbN9FbanwBRPvcwgrxXLByR
aXOdv8+GzzPbO6Y3pAVwo7aCe1iggXOUD9U7G+gmUl9RjaoXPdn7VH.07had
bkzEdu8Pre8GmI293vy9JfZ0rNqj.JozmtVxW0gj+AURkloeMSnHfyxZkKBG
QUYT1K7z5IcEmT2FSZW1nxlu0O1wosyl2KJ4NSI2FNaOyOA1FNaKNt6ZX9I1
1vUMGDi3q02INb2UJ1CN7n6+EBZS3FHT27M4SWUOq0TNPuu70O4IxxVbpPcG
9Zu3EUke496sM4cmVHju5WjVq0j6UWrGuUbmGulLuSIviveQ+AkFYc2nvuzB
gXUxuDekP9G+gmINNkgotYfGBIYMswZEMj9MX6g1FrYOpOn81uAae1cN79s4
i9iX2Ir6n6a5dxCIX5GwVf0cT5s5c9raIJ8dR34ML5QouGk9dT5+8Dk9B.5o
CyNiydAhhnnkU78Bmx8BTERjhXnjJPMCO6drU0Rvc9mfongY23aGSSYHI1PS
4VE+iqaGSDI4e5uWfjrBpwu3a+wW+s+r30+D+B9aRvk+te94+v2VBlrx1kLG
D5iH+sIdmWuErNSClw2gkEXjpSIS+M3ApGOEy9KPDxfN2e4w5zKoOFVA7WcH
lohgb0AFUMDV1wkmdZ1WFocrQ5Ji01klA7IHOt7NvZNXeTzZakycmOgsW3vl
ucHje7eDXLajmAaVLuogxXUCkwpMKiUuYmnAKO+kX8zsVEW40vp82AHNQ+UA
iiOnOBjAFCIuGzTZArSHRdy.s30OOq35rjg9lcyFkagKxeARGHuFun5s.lWv
95E30k0zg6M7pXipNDq70rF4Di30CILO77SJcyfnjjEk2hY7MWGcOfAMhZWz
Wr2Sft1RLtkE4JGGX1u11Kfb0Yfb06Ax8NAHWS2aBPtZ8.49oKPt2DvV2JPt
WWgj6AD.VQmQfUTAlYALrOHj9n3tG2ufstNVqs8SONr83v1iCaONrhQs.Som
yddHqMtQgNrpPzxCCza8r2yyXsoYO5s8n21idaO5sOvQuELm9u+xW82d92+x
WsEHD4Cd5ZwmJJZQQmCNBfB9RbOM72fY.9QzWA4N4zA5jLnfNvmvJ0ohvmA.
I4hlhtM2enysNVWhydZOfUO7ArR69aEiF62JFMt83UY28UP5bOgW0NB+GNxa
BUS4ZWj6uhwmD3UQeyD2EoO4wqZsCcnDvoARHpdx5Gzvth+zgD9oMPe5Agnj
xil4ZhSnm8hjGul6ZPwBqB2sf8ShRGkhyS0JjXsRYUNSBFaPU1uMN8kYeijy
l4UKZhxY4BnrIETh+OaA1rQMHIaCQdiZFzL3msd5D6QM6iNTyz6QMqG0r6bT
y7ZAdHW6Q6GpY51OnN7ht16YjyW2sG9qd3u5g+pG9qG3vecvQaBg9ACaefov
RwSkmOMzKVU.DKO0ONCC3pzT1BOl86fE7H8raXoH9+cJ.9AEOulDeAL7fasy
8qhhAWDllkSAH20iHtYbXiWVNUQb2mGOc.6K3kgKAXdVpeNGNQAgqQgXPYMH
+pfx3HX1fhf6sOFBiKi5t0ZExPNHspDzQgoH6JiEXJHhZAFqSimsQj6sfIQW
f2xBoLbHmLPV37IG8BFEr7kPZBQGPOqVbhnpsfIuJnHVy64Kx7v8GhPRVc6w
x85os0n3d8j1dzaW1Veffvn7NEXxxTZooEshqWK..WLFCRaV.2FKGnQQZX7l
FfaO50ih67hdmDTVDZCssI.pg+vRLECBWyU.1jC0.UQZ.b3wvpXVNpefm++L
p.dpR3LGk+q7Na0XZNF.Pqd++w+A8r+nRwUsnVdniJSxWYw6z4kMo.rTJnsE
GLnVvXtJd2SzIIBWkDfL7hJtK1VUIC70UPspoYVPFUvYTuDN6qJyxZDgQchP
YCBJlzUC1CLDehKwWeshwTsXxBphmyvnvTFVZwrDL7t.CTWSVGstrhQDEPTG
lWhcCF.mAgKxKeffb9wb7ZVNB37Sj2WEC4oU6NtSeicn6shqp8HmdbU+3EW0
JQ.Hvp1TTwUFwkqDXPuxtBMSYVqOS9TYL0s5kk30BSiazUwuqPssH.MWp2qo
PzbY51UrYVlrcFSl6JFu2bYwkfDeSkCtYAvR7LaRhWWvyrG2xdbK6wsrG2R2
Vf0ywdzPGcccq8B6RKmGTXW5XqOTWRj6g2W2CfYO.l8.X1CfYO.lU.Xpfe45
vWNfOpB3+KTv4bivIXIHmLLgT4h2dRYx0kWAnG7Z1t2qerBdOUXBpfICGf+X
rLPjIKPArVgUc8Tt5wpNTrRLIrDpQt.KiSjXR1Dd0AnKnqDo+nLpDS.qB6fP
0KyNFx+DWKvX9GeQsbQBdYsTwgvVJGX.wPFOF3WOSEyJ5xa5hkw7kZV0k4Z5
xXpr+BHKOS2Xjilll.mqjQ9dMk+YAwH.szYyDaZEkqZuJAXGEzPYbzpPFifK
R2xbDE+C2Hqq1UV8FMh.LNMn7lDLUIVQ1XtIuEuNHqqiepmkNG31MnOFY0H9
oPZ8H+OvylVkniUa.nZZQtufssMmVckzJWzkB1SKm4mJxVAJftlN6q3ch54m
Tc2b4GQ2RXY9qJn+xaM0ZHZR29N7.U7xWD3W4DxU9b7N3R+nKfzTCQRkfeZg
mtS.eh3YwLKXrJdSNbUXFc1LKQOGYNCqtBe3E.CJbehILvaKWoNEfO9AQPDB
VVYdL37H1dlLTyz1Rf5sdXdIOsHIq0vfJ4+rXP.eSB9UFEMY4KL9R0xE6d3M
OYJLqMKDCqDUf2d6NMjd6GpcF7J85Qs6iRT6Z.8LQSvmsFhXaHHavV.DaKxv
FrU.w1P7kLYEypvTAuPLP4WpHlcTHPXcXt5g0pGVqdXs5g0xosqcIMy86z3Y
Y9fBQKI845LpqfYY2Cl0sCLKWcFLKq9K7mdvr5Ay5AKXVaBdfKaysiosbyna
A7.8QFJaEsk4nOpADnZ02pHD8GW6x93ITTEp1JxW678biWast0ds1ZVGu9Hq
90V+w6IhgFa+SW7pbPrl3T7lwhWv5ZqjdiY0CzUSX0Zo2XJcYBUWlr5pjkWj
3zJjiwBBVS+FmxDJHcIQA3Oxn.vyT15Dk1NOGGQK3UmtMSs5Wva+Bd6Wv6gb
AuoUaOzyD+BHM4MmGCq656JsvAdJJrYsGydYPZMmL.RIrxo4uYqWGylsbJJz
z4gy7BM43jLtZnstdSiC95oah08m7yBmT4Py3YiNxm67wSr6x3PzCJHC7TMr
4oBvZn2GFb0hjzbEVn3TPPIIfN6rpbKizD+4njw9QuFLpmxNWoB7fuiG5PZ6
3n7y6N4VJfW.1zEGPkvuX8FpPlvOpSkBSDxBohVVun1E0PFTG9CIfYgT9li+
kz.TxrzrghqW8kkmK+SAiV+gu+OIllbU7YCD+1UvqhBm7tpRLi1uzz+m+mxV
m1vglTgCqzEOc97SGJfj7Lgw27jWrbbv5snuAr6kxyoqB7AC8mCVab4.wT+U
CXthBSYqCuGsyg2dVJwXUciFFdaL5XBtHXgjogWi8OOFjLHr3ASlFBSCMggk
19NSW2zC0ya34LzxyzyyUdAjB7kQMvOtGuoJXp6949F2tEL1L8X386dbv6g0
0QhoGXcL7eX2a2ART2oGHwdfD6ARrGHwG..I1xh4.Ek6ZobZ7Z4rJu.taesb
lODWt68GTqj4lIIfcini1QRwxZ97a4QNBjsK8gWK9+JjHSxKej36Xo40FDra
CM00gPUGOnbjWhhWn0bSqvKkwCmP0iMp7CxZnP8Ld7QoGcVGszZI8FdXHzUN
cT2J.U8tA.pZX40Cn5m7.ptwbzl.TciIn2N.UgovU3np1VO6ey9L21blNY.x
+C3DJYx1bFk7wen3OJ9rGE1dTX6QgsGE1sBYfYaGKGW5TGYZNTyxyzZmg.L8
CNfAyCxx.i41fxPuVP5zB++zagBML3UsxSp73oVlMPdUtIXipJ2EkanT.kpA
MKTCtcATMJbZO4U4IylEEzAlAKmwPq09ZKknGG56Ef4mukWGlxH6a1.gFo6P
znu2b2gqzBArHv1XHVTPvSxPrLZezwna8nCs6jQGi8im8wIXS7V03P.L4vNT
jkmVOrQ8vF0CaTKVexRH1gMlF7NEYXveXW76lLxz6tyHyZKkisTgJpCiA3Yv
ZnJ2picvcj1IXYttpw67EVuMqF1uEPaz1xaHcDCNfKy4cAq5HKlU1xge11Xw
52orXsaBK1pMVLZrxfs8wVY4+ttpJuOgWUUkkCfIQQDTJusnWDz.6OMTAO4Z
ohgcoXqrrLsMFIuIvLbs3So2HOMyM2Yq0JBihhvXjl9HBMJSMHmV7eAOReWE
wspDn6jbRhgqhhN0TrHMAO0HEFNMzbzmoZh1Ind5ouksI4s944ogiWlyChUs
4buzcNiN5IRMikSsaSQZk11a9JkaYCnuJLdZxUhulvKGCtj5hulbE9a3oRnX
0VtlCG0wSkv8yVUultf8jigc2fg6sru7ZVrU65UzosVa6IuwsaO4KdJ1xn7N
NZYvymScI2sqndmztA6LkXTIpqzt8cKsOCw.4dg3aCTIq13I6ajk2P+A04PQ
Rec+HnXXzeDT5OBJ8XIzikvCbeYKMXJqooXOIGlR2ZUkZfJe9L34UZkKe7X7
lvJZwk9q8b+m1bLFt8EUZyhBrc3v1Jq60osUUpcjt++My1kgO2Rl+oXjktLv
3px9wPTa0aT5.fWLp5ETWfnHDuukdUgXi90hNVQC8rhht1pNUQy8pi51QYxz
ToWs1ga9dDspGJmVI770yw1cNLxCjwXPG9WpDB2U5YgwLzIQ2mePxE3aiCxx
pRd8NbXnzZYfde8rTaj.LFasbfutHC0OeTJW0nm8TQY.9+uDjFfWFmzUrIeP
68Kh9Q9oyVhbSxEToHwFGvzwPHeoyjNATsltbBs9M4M3vvRWUkpwqOiuWIB9
0kgu2OhtA4R3Fy0CD3+JC3auFuV.ptbGBiACL7i.0vSEkQDLdr90bzkef7qq
3u9T4W+M4W4qAzhzW16n77UzkiWY2fxavxnhaW4opT2PwDOcYkPiiTN7JVmN
gGPQIDnuMNTVEGDslOIVFF2fShkold+Iw5i2ShUMcRl2LcR0BA7pFGHucg2z
MUOsrZGnTQCpJ5ApEyYs3rpGqge79CLU+Al5.efotMG+ncCQnNCYhoQIjI5r
LyFwLw7tElLEIB2wvjcqBKRz4uBwwvlO+Ua4X6WaptWORR2NjjbLFwa7MuPQ
K9.mn61CjTOPR8.Ic2BjTWriV2fMj1gzgit3IYHs1mXFRWCQlBOTP8phu7pI
pXEba4d+VZeKk2mJ5Mm8gi4rxYAEqir2d1iyiS+yuJHKYdfXg+L4spnLfYfg
oi7k3MB.Lq0eLErJvqnwYnZEzMB22yNfEavrsB7mME4RzsNZhbIfx3EYe4Sd
xUWc0vx3WxPH0OAiKIO4GlZX9M+8sxJL1MqfLUVxKLa5LZabjsSx3UzPBF9V
BDec4ke6aQaByEFhuFF.GOUdp5KERTmyXuqUOLRySwgeccZfynM53MhWzNOb
BneO0W70W3m91IQgKDvX.wWuHIiBIgnK4A+y.dTbPQJzGtUdo0t3kV7tII4k
NMrJLW8C3pvtO7CDlXK7U1heuUR8guOf7qPyNMADYrSFh7joti0faumdBz94
TG2czclHObx6Zy2njgMGc9zqzNdLVGKBVyEiEf3fLP85t6Ps75PG5sCoIycc
p6nFK9G248vR4iofNDvFjulpH93hJEJB+qAIgl6h0YXnx5Z5.Kp+f7.KJk0q
yHAYXzJha2RedbCfHKzacnOohLQa5oti5MRzV2wGRwRMy+9P0tN1k.rtCJez
8.ryG7CkJe.Ec3MmbWmGUq6VJtbu4NzTstlCewlXUcgYtCZ29Nl1QEtzEl7u
OCy83KX8cPzN520G95p0vzQ5lZV0AWfYCqCpfjYrAXBdtpnDz.RBizpknMfQ
XSHD1naoysG6Nzd7L2Q6Yd3zEIf4uRlhtkNaelMunD0uVUU2czfUGnAWu8kF
fIkjMllR2qyp7q2Gzf48BMHY7GHZv39fFTazG.ZPqKyGLNbyO6R6wczMabgz
sFU918.GcsFWCbT6a3Ha4lvn906CZ.GzpuqdA28jFrsjp6jJ+fuVr9k6KZvX
Wzv9Jo2UylZz1Lfut5Nke89hF10XIGialDlh9A0udePCcwB.WmavXIrQ6XUa
rji08GMry4C66bZ6Q10nAkudeQC6b9f0dRCN105GT+58AMzEKeHSNMOHZq5x
Pa6CltSmtzbnsW3P0f5hAR1t2PwWRGIQ8q2CC4HZXWS8s2a04FiToA0udeQC
6Zpu9dunGuZ8Cpe89fFzOxFba2E67r8NbsGuiMFjaWEVqeXZO1cs8XbXZOcQ
Yl8gaoW1n..8cZso6gsAM5HZFF1d7Nx5vb2Q6w5.yer1U64.O9wbWsG6Ca6w
YGsGSyC7D9czdLNvim2oFrC73Y6c0dNvim2oYbNGt1iwwlEGcn8b3ldYcrYP
l0w15CsrOxZPllGaMnNsBZyClMzcQBj0gi6zgVig2As4ryAOGzVi9QSqwnKB
CMOfsGmNzdNf19XXej0drNxZOlGYsmiMaezGcbY7r9wl0O5GaV+n6br0fr5z
XnCHhB5cyFZKmCXKpSJNNfsmtn3v8voXU2rqnrdfZO552mLH9.xslqzisk0b
g90be9Mcc9lca90cYdnl+vm8+Gudo.nB
-----------end_max5_patcher-----------
</code>