I need to convert head tracking orientation coming from HTC Vive trackers (returning quat, in openGL) to /quat or /ypr messages to drive spat5.hoa.rotate~.
I’m facing several problems :
Spat5 and openGL do not use the same coordinate convention.
When it’s about position xyz : I can deal with it, but when it’s about orientation / quat : I’m lost in translation :-s
- I’m confused by spat5.quat.toeuler / jit.quat2euler rotate_order …
these 2 externals return different values with the same rotate order, I don’t know which one I should prefer…
Here is a basic patch showing my problem.
It contains 3 different attempts to do what I want… they ‘kindof’ work… but not in all orientations, so there must be something wrong…
I’m using a spat5.hoa.scope~ to visualize source position (because binaural rendering can be confusing in some orientations
All the examples I could find in the doc or in this forum about head tracking apparently already receive data from the head tracker in the spat5 orientation format, so no need to mess with orientation translation…
Any help would be much appreciated :-/
Mathieu
----------begin_max5_patcher----------
12482.3oc68k9jihjjuetWy1+GjU1Xu0dq5gl6i8SsNP22RfNlYrxP.BPBAH
NkXsW+29yCHuqLUQVsT1YOspiTJ4JhvC+3m6dfG+u+m+G+zWV6dTO3Kk9eJ8
OJ8S+z+KbjeJ6Xni7S2efe5K6UNpZqDjcgewQOwc81u7y2ctP8igYG2qjoth
1CG2IZukisdX1Mg+ji5FEd+gIt+v4GK7jmdde4Keoz+59yYZooo67rK2RKqE
gtwemf5gVzSIT0zxw3q95pg4OGBBAFLNletDAOGF9OWhlA8SRRL7Ge9Y2lt+
cC46Gy+zW1XYqGq6GX49rF+m9hhm2SN9O8zaBQp15l8r3+4GOlkS9wXd7X95
wV2+HdxgU7ggPHz+i7yHEe4HK8WdxSxUS22IxJqCc2Q++8e9e7PWKaVxQYud
fmhZ9C.Ma9v4eBkghKmhvwi9fkFO623weBoAXELrcU2oq8z4PX1xS2wxwyWO
P2ITI7tQwimWSeiRjc3W235DFXkl0OH.Z9qdAatqi95mEMVxFFU7sTrebfX3
ao45f5HOetAc76aRXPlMci94SFSYWhih2qc6.GEPgdqyF.C1nf0J9not01YM
B4CmMz0094m6w6zVeS3cm2yxw4kDzPWuybVeKCyyc2qcgyt+rO9rSE70Hm7S
+UfMI7qAJwufxGpXaem38KZgiJNV6UB0CsxmOHwe7r5NJv.1LP020194i67S
E+ZmRCD.T0SrzBMyZrmwd.2fk28LVe4wocMKC8fvWbvPEifWbnfvS4SAO8XQ
quST+qg568rgQyKtBP1wJHLvzMI3tq7d1umQJdTg4yD8ephymehyp.84JQsc
UzVq3X7ry9LUoDu3Luh5zWWkZ1i8Q4fWpG8Ys3qnJkmJSAARLtDC+ipQe3t.
8P2+cjJoeXxip698fdkWm9XsozI2nRfr++UXISfAtjZL1VqvRf9tcJF5+bI3
6IV11khBzKEZpWRKQweSo+m+9+2m8.ssbzUcibxdpTO8LqiV+Rw22yb.9aPe
o4+dDXBd1bMwY5rx0NybcHwf8g.fX85jXjcuLS4XujK8Yz.xeT9v2lGjltXL
g4DJNpqHS32mBkwWQhslR6ikFQ9c4ivy4fnxnR43dtRTo798WtjxIDjEiGff
OSSDE98+74Tr6Uh7LE7YMkil9wmBe5kTimfT.oj3sz0m0wPWvaPmBbi7Uue5
7dl6RunWBF5Bsbd.A0+3QRPo20z06uyP9IpyPTz9x8jv2blK+WdDP7WPPbz9
ZNptupDF5asNJLeN8YX8emHN.TwqUreAFgWEQxC8nrub2m2Q2984tEBo.RKU
IhW2kKheGtb8T8Mbm0+JNB760u.Zjwegtlejw6KL++3.Nz+To.285k9u77cA
Sz.bTK0+qRt9V26ERoLWRBCPlzK8+ozCVSdt096UJ+JV5KDED+0nRLmkJgSK
fgbBkK+mTnOn3+cQl9Clsfh+bCXA1L9A5KFSQ9D66ZDw7lin6eX.ZRmrO9lC
7FhBDEXLSlAM9NaTbOKNCYsxW0TBUdhMkGib.z8WmGFhGMa9kGuZfkIWao.p
GZaEqiok4RLfGAlzQ86LJ88WGIUwtNBlyccOnr8Qc8uVOl7J2iATL7bz3DL7
37D3LzrBW3A.0Ud.H.x7zTT3zzvOYDnPwj5hN.n+AG.+cFVLVARABJbFFZBA
ARxhMf9AYhtBp7LzCQl1K46Bepe7T56ROA0aq46mu6+utFvypMfmIi9PPmoH
Pf4BnC7Etj7DCiQ9N.rHhR3ObtmE4MJL7WkfP9zq90Cz1uWqD3EJ3rrY5Ly8
3kj5pXVbqUHFJDVXZ9.S56hAg77LHu5.mjtPCbg7AN6Ef636IbbHRI7CQtf3
rCcNVgmHWj+KWoQ9+8uA5ddCTPjuW96.KCGPr30GwmUS.IN+SFwz3WwQrWoD
KmKeBXdxPk+7vbYyf4xhmotih6VtVtivvRmQKDny32oYyoO3D2x0xsbsbKWK
Wybsb1339KZtINAJP+CTjU54Y.4YxSDX3EKFumQL5xEBX1uaDRyflmgpPfHS
ILwGePx+EPkkqcTVbYrcS9yBwkoPD27npyI7GFwEYbpjmtxtetzu3CRWfhWn
q7Kf8efmFH8NfsKne+K5NFVN5k9meYHngsYuRSxNit++7KELcXW87YfWHBNA
AeVryxwOwf+G.I+NZKhuEf3fC1uw+yBS82MuZD4ISif8NhM8Ujw9SY5uoJHE
hj3pm+6BwElEck+TY0hrfTXA1G+4eHpVuiBC3DQHIAvzfrN+edj0IJprN0ce
f+GMkNC7+eVntjLEj9l6jG20jO9pj9c1BqIj6OWIfms3o7l8pmyalOScFDFr
OQ8lOScFph1YdEtKWes7Pcw9YnCxblNHymgN3qwE9POj9SQO7LcP7OCcPxyz
AI+LzAyLe9lcQpOEcwyzAIthcPxOSp8d04o+.6NWpNyesVhXW+7Ac1b8wRSk
mNHgaoC5YoChiKaoBIb2afyszAcKcP2RGzszAcKcP2RGzszAcKcP2RGzszAc
KcPeRSGD6+dmMHR5aYC5V1ftkMnaYC5V1ftkMnaYC5V1ftkMnaYC5V1ftkMn
BjMHBxyVr.n.3unW6UAta4C5o4ChOO7gr7z2RGzszAcKcP2RGzszAcKcP2RG
zszAcKcP2RGzszA8o9sC5eqyFDA+srAcKaP2xFzsrAcKaP2xFzsrAcKaP2xF
zsrAcKaP+aP1fPwUkAyzUAKPE.Y+ak90LN4RTk9UMK.cFJgHknpW5W2q9NKk
v+H0KQBxyWoHwo3xqTjz4Qrjm+aSdTQmr7T7ARdnt+WyiI9SzPecIz40mzOD
J89H6PKUSEGGc66Jcgmg1SWHZOycadR7r+Ij1+ofIm3rL4rj32wiieiG+Ryi
e9Zz48jdFZ5+rwh6CzE8RVNnzfq+tJ1o+Prv3EIC+TLznO33uh05zvRF5g2M
rKY+9J7wDu6Be7OFs5raJ.TTYDIRAlrTWfiekq9wOq..ekpOzuMYx1JH7bjJ
1BPpnHy1+DXIthTpbMYHZE1YkotjlEvIKj8WZfEIiSg6JJV8jw+Fe285Q1f2
MWeJ.Ugn.TbDYT.Bgq49LxxRiJM4K+d2QPHvINeI.GOiMlhNaRMOfvj3WmBD
+eirzeipze6RUKre8IQAghMGRkUinYXtl0AaecOcGsR+xaqyi3hYZ3cSmJFu
NMU9VpyKy.yOBc5I6KC2c5XkG867gy9OHv+WeG99WCbyOjhf7cGhWk.wITDn
Zz4auY4.1n4eJRsMtpQAqy.fp5Zmub+9GkvwnHn3HY9423aeCTuGv3cNzduV
a8hkgn9Qz5yK3gXC7JqUvXE6Hc2MuxM+HA210w30lyn9WOYQI93kuG3.xlc3
ex5454WfUVG5u+lWQfoq+ix.YqarW6xtel8UeFQNVgOrDvdxxj72Of3ByTS7
Yfol+rt9wQQbio9oyYzePL0dVvbweJ4pI+TvUedupAuAIuwU+vbFyGDS8Ikj
OSrzuEJsHGzd1KLcl+uKzlSy8a6Tu7KuN+KYgfZjuelbekx8JsKN8KHCrOEj
dgvqd82Cm3oJDMhOCVe91C8uS3puMIJSc8mQZDagrtmSiXvupzHP5+yHEhqP
VJtiKh8BPg9DEgGN9hHBQwjEQfOr36D59wDcGNlBM5y8zk.+RDXfhhhh8Sg+
t3EHj5zTB2vPAyXz2718rbz7eJ3nOqaAz4acn23n+l3SbyW2WkmV3SAO8YcU
flj8FO8qFchat594vUWVghfxff3Iu9GWIHn2mLZxKI7yymeYV9hrpExe+643
9qnW9zEBDp.4egcxmRnHnZxIQ+kzGeJ1hXh7NdH1Ox7Z9Y..AwYcCVfMSnhE
+F9gmMgcyKO+y5E7ejLzemE7Q9xX8FGc1LF4Mm7NOKMymAVZxuyZyIeMacik
NaFi5ul93swyR8QtD36OFV8Sd9XptNw5Nn2DHLuGqTEvrkuptRf2cLSDuGud
dabXfqTecuBvhb7MPj8P6qDE5twJ7ERTeKKNIdNvLNFLNRZFZNFBBJBRRB3X
r4mBgskgDmhkPP.WfAmj+J3jHpTefv+9NeaAJDjUSKMsmWPwdluhm8sgglIa
4Zm+96eIxGbVsaK7cMHYdyA48OrRewxI6iu4.EmLPU.x.ov8KaUT0g4YUxur
F9qZJgJO4cz+QsKvHZ8cu2jOJ993UCO67WLYg6zXCW+SizweOuPqb+Uw85WE
9ytHl27hd3UB7w2BvKagWrYuuR9UjNhKOy7SmxNaHJoXy1MtHHYdYTN9K9tw
ENdVzt3uyCrbXqz732J+h2J+h2J+hWyxu3KdELdtVyZO.jpTTftVoPSe2HCS
PWH7U8RSgNVIaq09J9md6BDD4yKPPqiV+RNxGObfkl9qUF6d+0LmmJMS7iVJ
lPuXXH0R4ghOG6EJ8RO+UcGQt1FEDZswR8AEPDW7pIzSA8lyOClu09lw28vg
6qnB3MbCLK0p9+yuHE.FI9kPUPlDlP+k55A6.47e4QjxYlF+ZnuhC7Ee3XOE
574fOeAK.buFT5uIGfOqO8JPpe64x7E2B4cSl2AbjFiCmPfmkigVfkE97Ekw
fGfCAnvQvXxnJk9R6p6l1DeS0UNXveFUqsQ8wSpfgUgpJFV8QUZsH63yO3rI
.8s581Op8Xwps1fUky.aYK3xTaMdRcw5RTIKYU22TcljV4FXkoGr73VwIXls
8iT2pVqdGy5xC3pEW8n4h9Sb8aI0wbDuSvd4URxcBmTUVjoxDwUc6Drd0T2Q
dclzd2H2Uiqua2zJ0pJ1Yxh190ZWst71Q1sOwvySpOJpFI8.R1dF6pS0ml9D
cu8aoUCOs0XIsQTjdTzIUrVl+N+qmr4QUPvgrKybgtk2YVa8lZ0Ot3jh1oZp
dSUYrER5JIIk3um2er6N4UwI9JjCjSMkquR9zpF5b6awLvplpSs1SFPuUDqE
kqVpkVq0zG2QYySzg0+zfsJMwZIGWUNtOePsw0EkNnFbnuO191CoaqOUjhan
Pyx0LLMmzhrg0xdVFFx0Giu19zZ6oKLlGwxJDJcXydK3o2Y0ZKk0slSFltKr
kmiYmEwhim0uYYA9tZaaROtZatDiZMMM634zpg.Up6zwCYFOrJMytYSZ2tSH
k4RGz8Dcraz5wJvep0ttW.7GytZIcWsrU5T9YCkVH4EvHEspALkIw5Bs0j5y
WmHNYTZbSgXwJUq2xO1Ym+1c0kcv6smtW1CNHZWD2tlxaROvuJRtUkIn1XZc
E+jFGI3hGxUqKGK4vZgsLCYWrZpxJi5cbcbZQD2fXCFli+wNSS4rI4FExISx
H2cPY5gCqEft9j.ERSMRVslSnl0wcqIEpyXVo2lJ0kmxg3dZmekry1yLyLcR
2fQUcWMp1p3.ti1aZY5Iw0V+39V9KOIuvPZ0d6iyrqlcSjmT3ki14ZHOjplv
FSOOuNMVOttZTSfaXr7xcRsLj6GlzWds4z0UAZyr98THChp05.77rO1pQRqp
K8G.cDK1xBQ5Z0023rZQOJyVSXh2z0rkaMzPe6fKwgds+ZgZ78Tq2ytlSgro
o2tEkC4U2vTUlp5bJfwuZ8wyvQjJ55ssWXZVeZuwx3hiwmXRCWI1x8iZcT6f
h5g38C0G0p9hlrKZRulTPn935KaG3EDWlU43praZvBw4jMR8HlT6.iYKFsUM
NPT02qqoGdbmvPwk9q51G86NrsWJgKuQREXSpJmfGfc39aaRCGo.D6ClV8Q6
tFzpaG51gtbRYO7W+X2A3t0mB1Mj1JuxsMXnHrUP5joboC4m1cPR6AFi.0GH
wmlfIfsfVkLSMlamNXInrdPcjwiEV8kGC1H2t.Twa0iCII0Dr73Z1.TL1Xxl
cISaue8QSTKk.cKuJ0OgrhcrEn8eO+bNQcjN4Q0ICQFYLTi.C3SCRUgKkbTt
f8F8xBh.vhlBbz0Pex6zjGC0JiFOt81oUMvplf283DIIw9ts6WQDT4GGpx1h
XgkDac8d6cTlx0erbqQ.nAxP0Zv+spoSUyBbHQcCxNhAOX1Dad3ZiYS6Kk5a
i2a65issPpYpqykTanF2lNG7mLCzmZhLCs1sqZapS6GllLfXbu3JCF0yoR+V
aWZuLiJkcaMGrNtY41LxX5VVUfd+7rGvTcloVU65Oxm.OTFYwa63FK2jNcnZ
JdHgzZcRRdCLf1brst.G5aXRR3iZPtq6bpz8BoNamzoB749FyAMjXVKpagMc
Q0oXPya2xc6jps2NpJGcEyv1wjwbkoHizSjhXjRpLjpRhN0PtlwHSUiKypWN
YSizMiXb2O.ryoCF.WUYViZdo5ZmB86pS20hOjj2zra3hsfMYC2g7tVM4GqO
KuqRYMTSfqxXoZb86fAFd8Fsdq0559ThQKlMarnw39diMZxln0a6By1fI6Y3
s2No7PdFbkEJjiGbbb7bgc5sAaRMz1MmVJdTSlQi8bs6fvwnqY3zxQiWYDzC
iPFbqcXkzgpGVHdHe3iPhTIAl8qPZYP5KI61eWhhcmSfM2IwCHRFDSxnvGD2
s7wndLfE4AHari3Y1qzpyDORA6Z6Gn1QHpLY4tZ7yKianxRjbRveX2UHDA0q
sZljjAvPZsBWRZemTf.AyOUPbGHNnMHDOl.HJENpgBVV1391RQ7z.3l5rHSt
qIiQyAhHtcwxd53QUsVMypJR9oVmNcLpOxc35JXfALCN1UcYqvumzaJC4f.E
c9x8wvPzBMmlLFi5prraBByQbHvEE2FjZqG.O3ZD9Ksprnt6TXNazLM5ccko
6LusbRG4JZFyoDG0X41J0qNNdT8f3FAi5FzwOb49iKvCX5dJrGPELADrplHv
iaDinDsPn21.Sb1LpCmOdqj2bd7oxz6lGtnc2kso30hHqQC78NrfPrQ8Itdd
MlzB.kZIiKupbnjkBA9IekgfZEpXiZokEH0WmzUaLWugmNsgOHhuh.s1VGEG
sow3RgGkp2U0sqHn1QoQ1iFOHD2PhuFV0twSrDv5yarjzcnahceEm47dyAcV
hCKepLG0llbavYFZONk2yad80zfLFL9S5DyLuLSRW9IQ0mzGeVsCymN1KR1V
zdozt4qjBVtd8oAQBI35KWYcvwYSuispQgeXNW0n3talpcb5QuvVUwqUMDzc
sgRWXX48KnAojE.LaYG29AtF3SaGno3NbwQpTwJgiGME28X2C1qbFyT6fOCg
K.UQISTdAPoCo5LmtCnA0i7vfxZRqQBkT80OQVG.aNsFRGU+ENVHL27oUwrI
12M3jh7t4LGhmnuStAqh8RV2ImBWiUmqlePCiQXJD9FfXanEzi5afnnUiz36
Ps+zXOAelzJygFc93d6b6Ih5IMQ+X+FiZLr61J3YkRtuKekw1Rh6D5rsmbhs
vFeOEK59x36RNb.TuMBzf.pW1WlaLvWG4QqGa4vZHsW0CAE0DAJEa1J2clIC
ERTXRqUCz2iqUYmrpmP0Vo3r6Rb4Vhm1ouF6BYLa.+JHQrZVLNs39isjzkUI
5DNft8v1Z6IoUiyjGAw.sXO2TaSmF77oSJGcX3FfPLuwgFm75Nsbjhe0dAGH
6exbgDH6JcXkHHlPHJC7Ip8oqoOiu0x8pDlHKAMAOo.NdQPrTkmvSsNHaoL1
2eWf+nFJKporXA3ikGIQ.syfk5S.0.fXQWASJDj8ELfB8J0B.wViVkiB.Oq7
GpXBb8fphZZzM1K6l3ElVkt2Au9mXR.qtiNzn47x6zM5ttBRF0B3+CNMTdTZ
P.pG0kQQmsqfcDsR0Ax.v38IYlKAysyB2owimIuiz1SYNmyrRyCHcJKPWnSB
.2mjHxNX.8LwgHJmbYl4COBFvpJXnQDoW1nWPrS+f9mHT.sTTZV7fmZSqUOl
w6.V33gjoykbjOwfuZsNRE7ZVh9GGVl6.ud7NuStHIyN5TMELZYuHLY7QdKP
g+l8feJS.SMkUXjyrU1IqQam1AbkqhH37B43pAXdVhqAEDcPyptTjbJB8opn
soIVfiXPKpjwcsXWN7vfkqoG4LjqBlw50zSzi7881OGyn7xY8lXXKKh4UlXb
q5NvzzNJUf8nB.5mcDEQfBQTWFhif6Ywyj4LmutkEejv7xc6cXY+CJdJHuiR
FR0jqVr.ILKMvFoqGTq4MFQCir5ytgoWk4.m894yFUQbiN5AXUNUmYngwPNi
Zfl+kq1raY2wUNUMFIrbRvMACDY5tRhdIwLvqCR4U6mKI0eqkAeiZI0qVAwb
WuSD2wD.kgeLRtOA4u6RJQUE58BSK61YH4I90F8HTJSD0GPav4QDQzAPRUQD
5JFpJ87M56y5Dj5LXb4wDfh9.mMU6fk45cr6z8fmIdRKF2c0Xi.aGrvjYIoN
5sG4nRC7cJp5KkjV1nFkemQm7DLWJOLv2a9RFRgLrIYSlH3cY5F5A3AGyUlG
9axvQDoA8PpQ.2FaTAjEYOALnfW1MI.iQ8ZDi0XTccUbTLGpirq0cKoN+ZXH
AFNASq5MKiaMob23xnasNxA9F5o.Vh3CyiP31VzY5xNKPp.rC4YTlMLteUuz
UUifINRe9YNI7lNIBlhtMnTjs35STNvAeSY.jzFj2u9fj7TDbGju+F8N0aJx
Q+l87F2uilSrQ3NUD1swv3TOF.uk.cePu8oLyniP146yiKgLiIAtn2CCfmcZ
iEvfNbQlW3yr31U0ZVz5VDveroly0UPbA3eOIZDfQAz2C8ZLBj32zEXW76D2
KbeS7gRCr3IO5InsbMy1FQp8BaDh4qk31PwOwDve0XyAM7CUQfIP5gLPvgVB
n3ZudOmwROMaD1zcHLXiAw4xiDklUACKKRCM.Pw8Wyj5FSMdOYVXR.nzQ0Zm
5gLrtnOv0iuPepb6.dJFjuwlz8inMh35VdBUh09MVjNMvaAnJcWrbneJ4gVV
MODXRLi1eUOdIsJ00hargtoZaSBFhNSpnuZORWT0ApKP8XTXkLP9maBOh5Dm
5xHKC3ICOhBovP+krMFWGjoYqf7En+1fS.sxLhjjk0.cDw09HPy9g3ACR2Zm
tckumvtia5BO6VG6StNQl3nbUYWwX7gyh2pw3prbz1jHWsdZBdmzVm5IrZIX
PuuRmsXwoch7WE0eE9QGLJlJ3LrV6mGoMdrnT8rPhwQkTqVjmkRiSKZXhT9K
YwwwADAmYnfNr.TXTQOt4FRp9ZVaJyaClFGP.V6VE2kD.bzpL2olKAb63NAd
i5vV63dAWcuEo.FPpUyYWYzKDLPFOy93rXrlT.ZEFvLWc.WAy9ANB3fuWqji
HnXNjdzSaknqv7kxT6WJU1s7QN5SM634XVkVuKFIUYbkV0V1ZB8ojY31sRpO
sdYG8zgUQLtUgYx9kGHbhD.Rw0yjCl+2re93wUxfYpiPxR0rrU4DC+ftKpzE
6zxAmbaTFe8Dxtd0PfXX4TEFr.g0.E+Di0KSZpysf3jFgChAxPEPcrJMp4vd
colzEaL3wfV.lXP24kWX2OHzAmSyp6vpVRmDCb2tpW8o5CERQgPyDorLyamP
v5rRWptNGbqFCS.VKb.1lErfkNv9Uk9NUPRPFbZwsAO4LPpvjNvspuqhmIJT
fYWog3pJq446s..UX6F4NuLYZpL97tVRhK6sHYwBqkk0vUGNXkjteuCjyaD0
yZ+PAvGE+lcQDVBABxACDRFpEjLsaJO1Z5ihHlrwnFHxZf3QJytC1AvEvMy.
MrFgItwQ1JnKnqrvw4BplkWK0cx7Xbjyt85CnxpnO0eojc8.gkhAX8OY6YKU
YnrD8NoozS0WHh0imYAt1ZD7gDPr2Vfxn4PsXjmToAGqcpp1jUCDsWYh4aSj
Z64KfGog73RjXGNh2KyRT8IsLVEzgcW3tZIMHoZTaYTKu8.2V0CyG1PwNPig
kdGQzg9hi4sVJqGA1R5FnS56NbkrnLixfnkGFCnQ3N56NXEYH8v9LIVM8QPG
73sBpK1FDnUwxbn.Xda1ZaBalKSHckAL7htcoVgPoZ2nJLeHvrPtFUeE19Mr
ECZfq.nnqdJcfqtROkNFLkYUHlnF6aypzCaZYZ7xFV3TkaPRJPLelVc7Y96W
bzJVKIHQScmRHslR4liAiz8Bg9TL.Z.S.4SUxAAuHl.dcPxcB4LwHtcQqqGs
NvpZcAN5tl73LDK8rr62ezI6ItfYNv3FUOk0GXR1sT5zRQd8p7tLDS5kTOom
cRuXDzzwgz1GNpdrQ5PR5Ay4HETJ2Gr7ROrLsE2ogkWErS2JEvsvO9TBfvjc
VZ0sdgVJRwaS.mi.qSCWwKdxuQrRuE8lLkMkJUtuUBOQKIxo8WtQDKlE7SZO
RgBIPO0NBvkRF033npK8y7Z.EB7U6h6hX3GrlJ9XLx0LuA.Ib2pxyNTsg0To
Te2dq3Xb0YLAub0WtNwElTX6OfehjDdqF1JDo6cYFXiFbpot0WA9eKscAxWW
idxHydi..mMyX5Ayi0B2e.v9zOyFRmfzIhfbWfWi.0ZSlKNGESkjicmBrrfw
4AdRSbKawXQnv0GjSZIUQN0qAf2to6HvNQzRYI.gVzJ59GnEjClKWAC4mUzI
g5XpC2sxrie5ZPuhbxTt5Cq.3JUiSVgPmKvB3KF.r10mgtCoN9wUGer890wc
iPt6qSFwRJBbDR3NRZsUqLOKh2FpNdis5qPDibvwjYVk9rVBSw66bjJX+xCD
7sB50tmhp5R+8Kavd.72vbkOS2CDcOfgohhYrMiaUfJi79GgWMFTXpCcKDGx
XCQ4Vq.uAVFShg.ZotCwMLRnWeYTbMxBjhrkV4oLUC0P3X5C8rpq42cLNi2Y
UjuorzTPKv1k8slyVeC9gxddS2A9b1SLPyvcHEdOTzZnFqssoaCV5pdgsQvS
mVNcXejN3owIylMKNy+0Z7iFNaAfnTRdoKGx+fFGWPuWWXgvIcA7ERpHRCB.
WcDKTZ2S.beprrB4Oo8IAlVGXlotSp4IlfNsl1MNwC6n2zM6DR52vzCeHBb2
JZMoTvHGUhNWyn7tjKJtFHLq1wMTPI0Qdvtz4L6zZuCEwDVvGpniG353DC55
azlaBPPPoJolleS1jd84PQnqYYplC86.DpQTm1GEi7ExtiSh1.WQ6ExirSvZ
a00pxAO+tq56MuLwg91DDLG20cZsPTvOP9u2LCBSepSMlo1OpL.wHCNi3wEY
w.Kh3.+pw7LBHidiSQ5s1fPgKNDeJ+rEHsVjI0h1Fx64.LNyPjXqQrsz7Fua
tFc7ttyMD8c44cWjJWAvs2LE.1GHoOxV..YPLteUdKENlkqY86r8jWmnT8Xk
oQY.lAaqYYN5n3zNRAnXe0tA2llfCH3PGQYKz.RACLYrAfcNYRBiAm3VFqYg
.80GDJRltAgJtyjtAod5k2sKKcXwCKuu7ow.P64KlKuAqRLXDeYu.ytV503c
7ZHzTX0AlfcKI0Fyrmo1xzP8kDA6S53gbcugkzNPQc7I.irWrVuVfAwlYwLq
AYeh5K2ADgScPJATaEo4gboZAR3.A1veUSpTj4mcU63rYjVDMRkYBZRv.PUE
YAl3RkRDw1.JRjxRliCXAsAR1p6V04G.X4DHM8wCayxr+3tkGNtl2nFlwb9c
B.4KhuwAtiKvmtRhxUm0LUaHnlaYC2NQfKSflJoVj5UB01ImYUJhArBDSYrX
tYOqtyCqmkMzcfDQklcMpOAC0v0H6bn4Av.pfKGJmohIa2yss1.h8ko0Gffy
InZyFOZxAppXNH9mNn3Ar.4sug+7FRRQBjB8gG5tJrU1IHMMRhW3nu1ZQnaY
N6DUehCcNsp0Prd8qeZgytDuSoC2kfvsMppY.vrtBD.5jgrXNyj4d35CL1Nb
EakDTjtattmnnHGLqVdIJrwZcKqy0GbIdonk99dg96B54mtKLksEHTGTYNF1
v3ZbXc.47SMQAhpAJbmFq8mWFAvrRYtNZmV2Z0fUUVwnzIJI3jehOyoTmkJV
Kk14ppOur21gi1fkAzZlrNWRygHvpMQvqa.lhZTsrrfgmblhWv8dcDPXlHgC
Vs6YzdsRYl8h9aDqSPRHW1WmXXMcF.3KIgwb71ZI7Ygk.TZTNA.ZtnBJ8cUi
ARgCJ.vK7sT8QHhbE8bkLLEpo2eUOMMq9pfj9h0dlLkY5eZwNoF6a3lzH3P+
Poo5fOTYoOtdHiTTGPS3FDv5VMoakY+dDxaHuDAaICGVoY6oEoj.wtrnUyQq
KrGY+VeMv3zJKpiYgXGaFesvzHUFRkMq50X1RBskyX4rEO5NbyI+McBJqIvy
NzGGemriyPcgQKgtUlFHfuuUl6.HA6dLy1yTeXu9Sw6NaOqHMZldBJY3M3Pg
FrYlFgdGGOXBJk.5SatFF8KVy1qQikRw.6xgThFVUluR4PxNtMIASKG..JR2
MhElYhyzbiBXKynlLXqPbmpg6619XmIfR5dSxrUhg4AlHEQQsJChZMTzn64G
LsaqXevhqNsLOKLTMs4mdfPwbkk6vEmV.rvx31BG1CxPf5nsXYwHlAZ1Nf65
y3mfSWMLEg+zE9+tVBD.739fExiUYG0UIENY0toyS1hByq3blgQIch5IWAvY
osT9DCO.1FE4HsCjLAiFB9+QmV0kIXKCO3nTJ.CWC3k7w7I4Cmm4mckZ.HtS
.LKOIV7gmjaTerRzP.tiBGGFoypdahqEziMBfiHI1.HIc.eEsqWKvgA26jLn
BZDXz1xb59AhHxWUTv6v38lyWEzi0y.Wo6lQkElUmpgzfk3MoaZAB3DZSlUF
L01BbHnGKYeEiCfuzSSiaPLxOVLbTJUCxEMVMF+fz9AH0EHmU5fR8xHNIc74
FHEPaP7nXhh6hWIquELbX2Wbh0z9oT6DC3IbH5bfbQ4nz461QP.lijP40YCZ
oGnvLmHntj9Td6x6YyV1DMPFJQo5vMhlzGOVbCtz5kD6TjWHskQzVhmdRYJ.
QVCDhnVQbGqA7mxsBoLOnc5zRPgNS+n1YYwKtl1ndDICjAJPxFjC4k2L2VHd
uBAXATHIs7zfciMjlZj5soKOax3fQGfYZdRSj3r7AAwv1iI6dPCWodVLuQxd
KlLc0jLOcQdwUKFfKToVGrvDixM5OVY2oZ0E53OWGP5to6IOrS9XClGttBJg
VnAsEvwdPwangPco4yAjU8p2ZDFZoqzA46SiATUF1JyP+BcQhChTNrLKVlIv
zSQIsoyRhliaYMcZJndYD3saY7xL5hC4pUNFYbKRi7zTvOF7t50L.adTJB1Q
Uh3UJSPQxyJn5fBKdkxD0NtXX.lI2Lw9xtR3sacxOtCnYFEzevI0lozCHWhr
aaL.2cPxPRi5KMYvibQAZyDrSFrAYRQqU8pYFIQo2XJqN3+USWsMKwm0vZ1v
nzFm.bEH8tT64lJzN24Zj+VqCVMdqnGY4FnPJ1ND7noWVHONBJkGAt41.gDn
5.9Dm.svdMFsjXX+CG6h5hjQ5T.1HzmnXhXgzaXhxiHQcMSypBM1VtIYnZWT
5uZXWla+Pv.d0QnP5lE8F5EyAOAW18z.hTEhUmPYji9D3TqsjBX6Zz.5sSii
H.Xkx0EU452lwArkibhF.eLnl7wIxUkw8jEQJFAEtTi.8S0PYHtmZkCMbcq6
0Ojn4xlAthCPQSiyLhpqowfTiprDA0f+eZe2VdqLiVlTGlkphxODP3QND01G
bDoiOXZdIJjtYhiPyitQKDVKD6LFV8iZ8mw5r0C7jtZHWGD9lLcMI02SUOgB
fbNF3TmtAf5sPTttZ2MQts6f7AGatdGCTjEnxBMIEx2xpnH+kgSsIxJhCpOo
wQUA5.MQAEIK3Kn3TigB9iCncdeVtmbh3ChfY9l.qnQS4csK7h6xSPnbkzH2
5ilVUfSdLZctgsc13Ai2dnZE6Me4OGaohe2MTw7EAJEC90Y+T7Zs6cluKM8K
D+xwSok9aDkxp.4e4ibmil46t.aEtaOpjN+0hP3Jto8dtM03+azKyxUfz7hW
yw28NYN.VMivju.joH9Ch73o7s0MkukJQ8GvthcN+CIivS1r2+3oOuQok4co
chp.LRmoLy7t2sryobDjYuvM7bWQJW1v+soI3+ArQVmO34n+y0FjKCw6byN8
yv9iKZO4j3yw9Q68zuq7tXI46X2d8Sztl5UtqPTztB4UsqT3cwSpa6Skeyd4
hmafUV+9p9Fzd9BWY91ZFAQltagqYY580P875Hd98NhwKvHl+t5eN8EXDe+K
f8i0Eg8JYsF66u7ef+iT9OVq3X75zBlyVPaXXyqd2YuIWL3+aNo3rkqaFBx+
BQJXJfDxEjT7l6KY41SdPQXIKmRn2L6l8Jo555qgLi.p7u+1PFlTcixAQ9vX
+aeAXewK+J0u288LlyV2HnHvuq73gTjRkGbC9qC8JeqHsDpxPp6n6WZwxUue
pyOJYfl87URH9LIH16p44jW.5v6xTRg1+Got5ULPN1BTS7HHxJ9j2Yuk55TR
EePph.82q5FkG04KxTzD2sgfl6cL9UtRrZXigJmAubR8wQM+kam.f77FXYDd
J7pLAjq6.Oq.XXp3oW5Wy+HvC.5h9MUEacTkXf4BUdZexaW9aScJhgFB57MD
PZ5+Mhu376K1DjTDY6NH2M1+H3LPkWF6R+Jpx2TRKQweCI1ZJsGYLH+.4KDJ
hNx6ihF00msHXmNp.89qJG0C.kk2QSdxb3UaiD4rbIT2EUQ1b0mbBWYJApNv
fo4aEC5Khr9ZNLCD8PWI.whfnLd55ZeeJyi0nk6J3OWxMgZ9hPz3xEo39.Tp
nB3H7UJ8q.OumqFhdgJrR1tt6PeuHlgufzMj3mg8WQ8QTYl5sohEi0iJmLxy
bkIiIt91ZkL0Uzl4qntC5M.WWl+OHZXVz4QGi3BUm4etRpLOkdSJESQHTTY6
i2jLDW.5jdplh5u8t.r8paWymseyQfem+cnRWc1zKMyUb+YxzUAKPE7t62J8
qYU3yRTk9UMKvOGTkRqDU8R+5d02476Oj1iyWPTIwyLHydWxA44+1ZJWQiL4
q5H+Ep5yBsX3SBb32T+Yew4+cW9Ye2wf6rdAgRPMR4Bsv8kvsWTH2dOEM1hT
tW0QQh4tfQuYCh4.Es3+0OWnJCaNs7ePv+cJNre+x95qL07pk+UxOhMvCT4H
MWw2eTal3uc.pHNuMdJ7Gp6inHubE1Z8dp.Ut9qXK8jmr0d7Bsa4mszuZ4XE
lXEZV5e9vBFIurfVh3e9kKjsqLcaus9syWCyumzwkSzd5thxmD8auE+piqUf
9ucgxURfEHja+VTPtBXgfHKFSktpNstWECsRH9sKVECdOfnzR0TwwQ297j.5
hPBxYh3vu5atiHvC5NpnBj5ugDx7hBy7SqH.ItRp0HeOD4yHsxT.BMIdlgRJ
RtG0z8IWZ8w4s7XV+gf568P4IwK.gmIux4Rxy9oSMInaHCNgghkyu81.AyN8
S2bM70sAWohKRJAdG3CoefpX5l7xBq5WPUj16lV91LTTzYwmtZsx1Zrd8Mk2
ui2ZYypDD4a8S45wIuh.OQ3AP5PxZ8+NE9qi47tq5UHyuMzzmM++81CQY+Na
aAbEZWKn0vJkBB80U1+6byKf9i.e6iZfVa4nD4qXWPcPudhz93zLwS+8Ygoy
yNKAalapTr+Ivh.vv91g03cjFRB1uO44N22YtDfydOJZ+nzx9ZJTIXuNZTIK
B.kbev3xn577WQEpmQGH2ec0AhHpQVe4hsvRd2I89QUVntxSVqBGOkVjb8bW
J.YItlaTknza70yr2jboRF94irNIGeVp+xWnDr7WfQ7ezS+zTe6z+cMRQxTS
drbd60dXda97E+8cDlWtfUum77MKTUAgmsRUeiUoJA9SWmpu5TQwaQpB0hjz
WrVjmqPsHAwkqEY+vaQlB0hrWtFjtHMHOykqAo9voojOaAk+VCwKbCR9caP7
KaC9coobBWtFjnPbMbWtFDuPM3ETtnXZ2tbygbERCN+kSANWgFhbWNIetBoM
k6xYvfqPJSuW34RzfERY5kSLjqPx8TWNoBtBI2ScAGgERtm9xIFxJTDiEbjW
1F76Zrfi3x1feewvKHIsPJZXubLMrED11ErEKjfO6Kf97jsywKQenP.qXDdy
9vCdEgBh3iQK6CoWwU7d0GHsho38JxKQuh7CmusP5yIubX.XKj97WRH1ao44
Z4Ddm6wzr4qul77bPwQ8vu83sbYYWJVu9EDyKpbDSgzZm0QIuHyTLbEtAItL
MHSgavKCuHcwhmvkq8JlRmKW6ULgap2fqk3CqKPHbEEbJXWf4M5BWB85zER8
wEzWR5hYG4x0fTBeviPpBgoj9xI7RUHkEWvncRw9QSRKVf4tbwzgpPRlBBW1
Fj3iy8bJ7OXdFRg2Cbt2.cE5slOKmU4qhj6vZQmgt5RzG+fiQBYgXqyhM0kA
GCYwBUI8Uzraw5BDuoo+KgcWx2i5qqhYWx2UBpdCoARhr72wjWIMHvo4xxtY
1u+GIk6gDj7852YqgbVJ7651LWMmjHDJrf1kwCEB9OXCVDLEdDdgZP5OVCVD
ER27KSbvEk4uXcABblqn5SBp2gIpqSv7HH4dWpvuHMI8GcNuHJlNCBBlKXSV
rnQeAEhIJ35V3B1hERQE4ErAo+3mGI9ncxsns3kCOOAdwBBG+ErEYKhImG5X
WjlrXq4Eb1KbSRT3l7shCMYd0PhL6kHmJ+ckJ62tP8xh4QN9ETPFuPfOEtfV
cv+Ar09h4AvxENFWVkOlHuN+cWcPl3sWscJddw59A20L48uurWYqq+iUJEnc
bx+cl7e2WO159a4tCo3qZZEpqlUMBPKLvir2sXQ+Bphj36DYcOlf6p9ieIag
MhVwsAdJ4zhrE.4+4+AbA++8VSDQO
-----------end_max5_patcher-----------