Skip to content
Anthony Groce - Sound Art Portfolio
Share
Explore
Anthony Groce

The Klaxophone

klax3.jpg
Instrument Summary
The Klaxophone is a hacked Megaphone that uses an Arduino Uno to process input from 2 digital buttons and an accelerometer all contained within its body. The data from the Arduino is then sent to Max/MSP via USB. The original Electret microphones from the Megaphone have been rerouted to an XLR cable that runs into an interface. Finally, a quarter inch cable has been soldered into the place where the electrets were originally connected on the megaphone’s IC.
Max then uses the data from the Arduino and the sound from the microphone to process the sound. It’s doing a variety of things to the input from the microphones:
The Accelerometer’s Y-axis is controlling pitch-bending.
The Accelerometer’s X-axis is controlling a wet/dry effect panning function
Currently this only contains a reverb effect that increases as you tilt the handle to the player’s left side.
The Accelerometer’s Z-axis is presently unused :(
Digital Button 1 is used to switch through 4 presets:
Off
Pitch-bent vox
Vocoder
Clean vox
Digital Button 2 is used to activate a loop function and executes three different functions:
First press activates Record for a duration up to 4.5 seconds and rewrites this into a buffer
Second press stops the recording and automatically loops the recording from the buffer
Third press stops the loop.

As for power, the megaphone originally required 8 C-batteries to operate. I removed this compartment and wired the contacts to a small 12v wall-wart. While this maybe limits the mobility of the device, it doesn’t require me to find C-batteries.

I kept most of the original functions of the megaphone as well. The trigger activates the speaker. The volume wheel behind the handle is the final gain stage to outputting signal from the megaphone speaker. Just behind the volume control is a knob that switches between various tones and this still functions as well. I was also able to put the original microphones back where they were - if anything I actually improved them with tape and foam insulation to help combat feedback.

Finally, to achieve some structural integrity I used cardboard internally to hold the Arduino and the accelerometer. The two digital buttons on top are simply sitting on top holes I drilled into the plastic. They actually hold pretty well without the tape, but I felt the tap would quickly ensure they don’t move during usage.


klax9.jpg
klax2.jpg

klax4.jpg
Yes, that’s a bit of solder on near the edge of the cone...

The Name
The Klaxophone gets its name from the Klaxon - defined as “a type of an electromechanical horn or alerting device,” by Wikipedia - and “ophone” denoting an instrument and referring to the original megaphone that this was built from and continues to be.


klax8.jpg


Performing with the Klaxophone


Challenges
You might’ve noticed all of the Gaff tape covering this device. This almost wasn’t necessary, but when it was finally all put together the one tiny thing I didn’t account for was the rigidity of a USB type B cable end. Everything but this port fit with the microphone compartment attached. Seeing as this is a vital part of the instrument and with due date looming, I opted for one of the most valuable resources in the world and didn’t look back.

In terms of performing with this I was struck with the problem of this megaphone and what it represents. This device, originally named “Street Thunder” by the manufacturer, has a memory bank of tones that you can switch through with a potentiometer just behind the handle, near the volume knob. These stored tones are all very typical police/emergency siren songs. Given the current strife in the world, I found this triggering, disturbing, and incredibly ironic, as I had started working with this instrument before the protests started. I feel that there’s an opportunity or perhaps a necessity to make a relevant and striking performance with this, but at the current moment I don’t feel I have the capacity to explore this. I hope to keep trying over the summer of 2020.

Another challenge was gain structure.


Next Steps
There are quite a few things to improve upon this instrument.

It could use additional effects in the opposite pan direction with the X-axis effects. I do have hesitations though as the fidelity of the speaker is limited, so ensuring that the effects are efficacious is a concern.

The Z-axis is currently unused, so there is room there for further functionality, however, in terms of considering playing the Klaxaphone as an instrument, rotating the thing too far in any direction wouldn’t make sense as the speaker is directional and at some point the performer would end up pointing the speaker back at herself - but perhaps this could be a desirable effect? More thought on this is needed.

I feel that the loop function could be explored further for quicker implementation. If it had several buffers and could somehow access them in an easily controlled way, many interesting possibilities would arise.


The Code
Arduino Code
**Note that there are several lines commented out that are original to the code provided from Sparkfun - I left these for personal convenience but they aren’t necessary for the Klax-code.**
//This code is for the Klaxophone project by Anthony Groce 6-9-2020
//This is code for the Arduino Duo using the sparkfun ADXL337 Accelerometer and 2x digital buttons

// Make sure these two variables are correct for your setup
int scale = 3; // 3 (±3g) for ADXL337
boolean micro_is_5V = true; // Set to true if using a 5V microcontroller such as the Arduino Uno
//int xread; //variable to store scaled x
//int yread; //variable to store scaled y
//int zread; //variable to store scaled z
const int buttonPin = 2; // the number of the pushbutton pin
const int buttonPin2 = 4; // the number of the pushbutton pin
int buttonState = 0; // variable for reading the pushbutton status
int buttonState2 = 0;

void setup()
{
// Initialize serial communication at 115200 baud
Serial.begin(115200);
// initialize the pushbutton pin as an input:
pinMode(buttonPin, INPUT);
}

// Read, scale, and print accelerometer data
void loop()
{
// read the state of the pushbutton value:
buttonState = digitalRead(buttonPin);
buttonState2 = digitalRead(buttonPin2);

//float xread, yread, zread; // Scaled values for each axis
//if (micro_is_5V); // Microcontroller runs off 5V

// Get raw accelerometer data for each axis
int rawX = analogRead(A0);
//xread = mapf(rawX, 0, 675, -scale, scale);
//int a1 = xread >> 3;
//int a2 = xread & 7;
int a1 = rawX >> 3;
int a2 = rawX & 7;
int rawY = analogRead(A1);
//yread = mapf(rawY, 0, 675, -scale, scale);
//int b1 = yread >> 3;
//int b2 = yread & 7;
int b1 = rawY >> 3;
int b2 = rawY & 7;
int rawZ = analogRead(A2);
//zread = mapf(rawZ, 0, 675, -scale, scale);
//int c1 = zread >> 3;
//int c2 = zread & 7;
int c1 = rawZ >> 3;
int c2 = rawZ & 7;

Serial.write(255); //clear the sensor input
Serial.write(a1); //first part of xread
Serial.write(a2); //second part of xread
Serial.write(b1); //first part of yread
Serial.write(b2); //second part of yread
Serial.write(c1); //first part of zread
Serial.write(c2); //second part of zread

// check if the pushbutton is pressed. If it is, the buttonState is HIGH:
if (buttonState == HIGH) {
Serial.write(1);
} else {
Serial.write(0);
}
if (buttonState2 == HIGH) {
Serial.write(1);
} else {
Serial.write(0);
}
delay(20); // Minimum delay of 2 milliseconds between sensor reads (500 Hz)
}



Max/MSP Code
<pre><code>
----------begin_max5_patcher----------
9745.3oc48s1aijjbfetmeE0IX3O3smxYDQ9bgOCauFvmguEvmm0F12NKFvV
hsZtKEKcjT8L8X3929EQVjTTjYQlEqrnD7zpU2TrJwrhHiLd+3+7ad2Men4m
lt5lpec0uu5cu6+7ad26huk7FuayO+tadXxOc67Iqh21M217vCSWr9l22ds0
S+o0w2+u6o0qaVTAUea0uq496mOsZ6sr3oGlsX9z0weeXyaN6t3uUyG9ieKA
18t0lmVu8dUad2Gmr91OMaw8+vxo2tt8Y05C0Tv48JqI.JRqbuuB.SnVEP.B
7a3CVGX420npUuuB4+s5OHef+Wey2H+y6GH.+iSW+Wd2xuT8vreJeH0zaHEr
DUSjxBZR6zFm25YfxZz0FMQj1qHiGPmd7.0mV7zpo2kOTp6MTR7SNZ7VkWaQ
OnLf.NJGTC1fwvPoN.VOQuuxf0VL3XfGofIPVXDf3aaVrdYy7UU+KS+7zkeX
60mOawzaadZQ7lvrwGTuwGnroidsGbNdWVAXPvGLryTAgc+QaX7gV1y46urX
f0ylutZ4r6+z5722wRsuqCuR66Qnd9zO1CfFJ0lKR0Zl0kS1XMZj73UBn+6m
8wONcIekpebxWpV2TMuo4w2W8gmVW0dxuZ1hpaeZY7VhvyvNOn78FkwnjZfY
9QNcvGBdqlQNAplwHAm04Yt8fF86XAV7iC+ll6lVsZxCONmQGebYyC+5uew2
u36VO8wOMYQ0usoY4zuewe92u3+fgmm9vzp+0USWt5WWU8a+W+teGnT32u3t
oSV9Ga9zhkSmdm76lDG5yFG55ONjwIJKir3yWZ9UjQPWXMeZy5sFVHpbvSHE
QSsyve4XYn.3AqbnDcWHJ8CQMCx9.kZmziGmrbxCSWOc4OLcwjOLe59v2Kg5
seNsu05u73zVP9lOLYw82T8GNg3UJ.0LsiEcDyOk+SPnhbdFYYXYqdLvmD8N
V8BLxnU92KBMrX5Oxv2QDVyalbW7oLa7SGLbF.NPCtLwAFeDGfkEGvGPT0IQ
.XJDfpmHfOx330WBFfOoTqMpm+iHukBiAJ3VQMiulKN.CgdhCVM69ESletiB
gZj.mR4zh3XOJm68rR0hlmrbXQfbfkV+9JsYPHgSnSctmCvvEnKsCC0NEqPF
yti04PYEYrfmo9r.ZUJxYLVkyF2ka0vhk85B7EGfb2N1xebxBbU963cnDIdl
c72m4dOuWx1LgHxj99.4BBlInXJB9kNjQUdugs0f26gAs2+vzUqlb+ziPG+Y
PkQkK5v0Wd.mF5YaHqUjUasjE0NqVfSfEJ1B8JQZnmU9xOVG+Ek.x9zu0ewj
BmWVPGnBV4gHpfuNpzr9WLqAROFnhdcrvZG2SELxP3Wvj.L0u15itYXLNUzA
xX0sSlOsRIZeU8sPcEjVLoMECC803HB0dDwxpjSFFeoEOtnfQQ5vcK+RtRGL
82DCvXYMA8ZsIv.GaFlGgNDNnYdknFM.qxfB0jgFfzgUymc2zkYq9WnfZGet
cbUsWEXKRcLMNaBZPG0Jz2hOHSPi.XbhlRjs1x+wo.MYUZljfYO.shPEKNX8
F.OdQ3GV6MFbxWs.r+HnN4VbLKyO1r7gIq2+LWJuSxpG4XbDQjK9EiMXTXsC
ADBDDDRGQMpM9q6ROnzWTi50G03MPM+sCX9HN13RzwpTGTtZ9kjGLFuFD6MF
LtoK8rmO6wJUcknVeZdoTBLm2WRdoIwAdMU6E2coLrJ1fyXY5CGMF3f0ydnC
FNoT7za5oH1Vysd+EgD.wguL6C98QhE7ZYBAxLJ5apxGCTVIorDiZh.P4HTw
rVMhg0Igb1ZEyH.4P9PNURHOHBTXcGM..rxBJPXAdMA7drkiEEvMl5.nTh8y
rMnr40g2p63tPQAbDpMFkVYAQgAV4wQBv6R84oy4mkJnBqnjn.cBTfoCaJzm
zAau+3+u+nFmEqM1fSEBfQIQ.gQMtwQPn3x4oKYbSZLiIElwzSLyrEsBB17s
7i8GmHjFdKxmeXKObNmlU3zNLqv6mKoQyU0kzIwBLsvwTFiiGo2dnIadFl95
ZpK+.hk4jZYlFnN3HuMLlZJ9I9obZ9zHc3QJ5TJPu47wYOWv5GqNBU.Diezd
EZbJRiQCJz9q44Bc3ZdtPC5TwJFBGG1zAdvnm1Uocu91Ug9PMZYKmXFD7gDX
CxgOCcbLkupFcpMu9HmNxxfQ.4zEK0GmOacEoECO6icmZ5Rs857w7JIRgEvT
KQIwiVGYYijIVXqmFObBxKXEaGTOvI30FmvJf3Ydc.xbfXIRtfYrvIQuSDQI
8iLAJoR6IQB9.V6AuDfHlxfQFJAIbc4j7Fv8U5fu15rJsyqzjwXg2Ft16RbK
7UgK6XfaNYrRHvImfZiYR1AKA82bEbcNq.CwhYrZIeU8LJQbcN3tlDJ3a.Bk
tPOFrVBfTPbFn0yJwDFWREKUEoSrJU9DJtRRn3HEqBhk2U7xgFca5WwV3VKQ
TyoYCdCrHm17CjFkfpI45W0Oy+S9jP8Ocs4MTeMKRyEXFmN1Nlfriya70rlW
rAsdxgdmWhShyTSL.6XaZbhQMCIgG4muOjen0PTOpmMR4Dbd+2vFwYn.eN.f
XZr6Hrl4NXCpnsc5w6XPOMwEgwyD2jXh2.l3hpqoItdMKgXufhP9Qx0OmoJN
vp+26wQ3hxxW7Bppij94fUin13Al+WPhX.ojDOvDFTV91SFCf4ZyXHMlvwXB
xErLqROvBJ0vf4LbhrwBT4GuDnrgHijbNzHH.J3IsEjfCZXYHVF3MjxYTHKc
TO3DQbcrTkxmPnjbCNGKwNvBoDZNRolrjTZ8vOvpwLuzRhLRKfXTRKs6W1z7
YFcHpJU82D0ZBx1.8txV+RklZIwMrfRPTxljr4UpcDIe+o8XWr4Sb0jOO8te
feN4OveXx50KmwxHaKJv2sCGwXsIqlc65mVLS1o90LVdC4tnz+74M+38ya9v
j4qm9viM6cXXiIAKVeayR4IdFK6c+qJHxoKtaGfDe7t4gU6.31aY05IK2.sI
tiGZtaZqvc4Y7lsucyxY2OiQdymt390eZ+e60yt8Os+Gv16b2SOH5bt8pO9o
Iqldpe8Gmw6Ic.f++dZx7Yq+RhGOIMLVsd4TodZZ+vaoWaIXKpkNnWUQ9dZT
LzUFVeYL0s5PMdXRQkxqRC0h3tDowGLpd9a8du1wea17+1jZ8XxjGHDrE09P
.qAuijvkyVO4IRhGbHjvkJQ4fNaYY58yyqDJzIOTAYqK.aU+M8WinSS5HIh8
AjNNq5XrfaTX8+W1KnuuIPw4TCH44FzcLvONoPgPBzg+kRpCfp3a9If+jGAz
Czk78ylfmKCqqkMAVOdTVkFDfVAZ9cUFmS4JP7v6WBIiJ7ZkQxonDRh.Xg2A
qyoUfTrid19Mw+Yhq1jTvxxZD4.xhWExD5pSlXs0NWfBVj7jT4BfjDML2Rm1
PZx4UFvg1QyzwVYo5MxTM6Imc+WSCSNqun9gUy1QfrvUwAKAI14F6ae4rdeo
Y0RLoyQQv4JKnsNeIskuNPSGBqTBaIbLP.8SXKDfhSAjBA75KsEBWcWySVWs
GMDKo.YIIJTLMYLXidZC2rJIU.5oga9hZ3V5XdeMsbiEjWQgPk7+B1n8aXuu
iu2fjnXJp.EoVxrFkiTdwk81Xoi9lWfBVZ1Ihu6eAoiT8buYEn3Kt7jzGcdy
JOoqBc4xI.Rh.FC4IcEPqniCiMzlrk03U8OvUNrlMpPyfHyPDzRX6.JTqkX3
5YSQXdjj2rq+YnJNT17X+.xtpyidBjnSTbl0ZlYzwBJY0xiApo1Kle38fgYB
Jg5u3PL+X0r7t7A29WOvNitVd9YH1wfGafYrGPPx65DgdAumzf3Uc1tTSvnU
LANJVXZBC.h6W.pAm8p1tbhslqCaDSIoBFXLo5IZv5txnAcsPQf7K7Roqprc
bhebBM2+CQxVOZZNfUW9llSK7xGzCr1w1.a4LqjCxZ9v1QymC3mOuiOEEOeL
JpEZ5CFvTTOyCPvV6.k0pBjlIBPcrTU0079tViLFg4M.EvcbcVLi8.zMks.V
SwCf.KKomDmtw66Vks.ImPGD+yV7wlu1qbVC5pDkBmMowmOa0dIOdluHmLdJ
8wGv4pYiKUBUjgUHiHX349Wqw165uLerYw5ELOx309aWNSBzblTRDs+GxGmb
aF1euZVLfwjcaDUOU3tyhsis1njtXGgRlzZBDS948hG71cxiD6Qkxt0SL4JI
MwGEHItOB6E5aAHVM6miOF.HBwAucW20byMsM5xX4nf+K9ZkvdLezNNBs6qj
zeiAGr9khx.AuARQ4zx1BLhHDvfgHEaSiUZ7KiCONImCZVlcKgB5cBre4THr
lsFo.Lk1mlWELdWrOkNFx3VMccaB2jcRHAPYk0Y8pZMuUyhzjdfnETdwV0PM
ZDVJjxYC7YFsjuMWw7RE.7ppuqfFLnVRjHiOXhQTik0Wy7h0HYjd+iwA30pI
YloDrDHNW46dlovMZEaRnS5VZJzDXMDYo31VmiRcI+guvEfw9wIedpvRaGqh
6WN6taal2rbaFKIoSur97qHGZLxqjmRIkR2WX3Gt+E+ZFVdoM9q4XiL0t3q3
+OZoyd+ZmqqA31ox.eZ9oEyVuO5tsVym0r3kOw.E8rNezi4xHg4UpWDGqMj7
pWrz6sEtkc9VLxK9HUdL1ltjvanjl6I+YKKC8Rf4bEOXxWrUEwKfLwFpYvRI
sSMI2lAI2lo1bzCHCqPBqdyt98s64spmjN17tS.QUgG8reEJZj9OaAA.55fw
DaGR.aTIauQWteYf7blO6ySquexrE6NB84IOiaO9pmCOENY1hCmrCZHUjwho
yyRz8F6LdIY3yTxKmMcw5IayGwcG39TyOtE11tiwXh0aV3cgMQ02zM0SXMqt
HqYfBbAmNd.FhJ8WQpiR2zc4Y5Ix3zOOY9SSa9312d66uOdcKVYa5Vt+0DdM
qV+kVztNwM7.uOJW6acOmrm6ecVs066lN3E25LdsXoPGuOevBNIRHZStba9L
ZQxeKsCi8hah2+VtN0CU6s1l5nEMCReb9ju7RqsubouHMhYHdRsU0h7VVSUV
ec1nPzFhQwcLDD2UyVqZl7UtXHqqm0X0d0WUFNcPZvPZizeFQskhMeI4TJDX
M4XUmkpyiOQqjNeoV85110.sproRanNbToVhZywP93jHk+0+OqzY2disENIR
6Xe2B0NMqhgT.EfiMxgZKppqVhc3bW675HMl.8zwzAiThczy1qjyOFcWoNHH
7tZbOBBw4ilQoSW7qxGA3UWkCCiAqfA2O97EsydzAfqzrwdgfLwOD6R.830O
91qcVS1JOkaJMYKZ+XjgPwhPmVlbVr1qdkF5Z7JUFeuObUmrW8ZSOUsHy59K
IA.nBjB87+3bO6BzBqP0xI2Mq49kMO8rhmymb+VuwCmBu07wOtZZa4JGRjpW
WsdncZbHBtiwgXqQ+feOj3r0Se3.KbtYKRUuyVU1Ho80P7tYqDPYSI0wela9
aQKFxIqm90JZ3ATx12tl2QEFYdkHYGDy9DaDAr1g7W7e8AozBrkmztqrZ4eq
41ldT6EF7B5x8xfCjh0CpyXApsO9ml0myEuUOKVfL7sKwTqzSAkeUkK+Yfh6
lRWh0Zuz35AuL2abh+Qisjm.DmpAhOlPxwhM0CWhX+pajvUmeeGBEiCyAswa
kNtox57xv.afZFeZOt8OvW32i+g7aYw996uss9oVZ3Z+vtCy8goyIb8FyAVb
ZxOrL1cUZcmSaS78ENBqCOz0WuwgZn1G7VvHgiyaLRsqvFOaqs6oMKJcMWPE
8Tp18lzcbyms3OIDAq518Y8vecujJZ.NqiTm2ac43qN4AZ77R2hlYqllsKpQ
maLleXJUBJQzZNVH6.6QCYv.A5ACDyunYf.VesyozR+EB7NUHtsIweQw1Dqj
1OljZqslH8KLFHvuXXfrZxO9Uoodj+oFZDXgjVGDVGzZGqTF+tJVo7f3fB6n
3btGVyzmYyDUeEbJAQ1ZGIScMSH30FIa5GmhEo+T.3UiB.kdvKKVQEPOfRlU
.uMHAfq.IPRGzMPZf+zIpx+j60kr46lYvp5xhDMVaAslHoeAxzB1XTKhQZ1P
WI7gM7lAev5uHUpZf4QXPTLW2Lb7QWAC9ieb8WqV17glO2L61o4itFC8MSq3
hCkYlNC+ZBCDwRLh8v6Z.8nzhHrXqKcFkv5zr7qUXOZLXV6HfWRaQXxf84Fk
447upOcMtdWYJC.E.pZP9WT632B7x4GZThu0e8Wq74iBnqFJnClEiRwmNcYy
OkuIoV0n1i75.cPQzg1SRZ14kbDYv8TxAm4C5hFrKxIMOqfQx8S1nNosiKl2
w.YfPuwA9fLp2GuDenuS39dm2GmuWNHMUZlVWzcxYHF1ii8aoaET14a+YZqt
P1S409WtpBzbTCT9D8N2qTS0lt9wsLIhXDZctcPt2lataZTnRIJlMGP+kNXS
xHG0E326HVmHPlauTLSePaMezHNj6APZ9Qwg2rYLvJs0q8IpZuTZGMBJM58g
MoULRVEqOHDqUaKJi8FKwVXyFYJ5VKsofQgWv+Q0+VTQwpaaVrdYy7UU+yR6
Cs569zrOttGQHxz+JZmpMRujzRNlg.KBHFn.uq16kdsuvgjrgHuwhF4utvD+
Sym7SMO9olESSFH4eSyiONc4iymrN+Fzrt+c0.o+wYkYTshUNVYIIWls0w5X
MvLLLHqxrXuMargVxT+f0gTf4kDZaZEIiKrX8032Ujt5MEICaOoL3NIjUh1G
GQTuE5Agf8ZkPGI6mIIQ.5M8fPj00Ty5bp2Llzcx.cfLng.o3duJCGH6qeAU
1wjNwqqYTnTQkN97lUKCS9gJVteAZmt5MnQLXYRCRKtvRIodfz9a.ixWGbFq
xy1iXY6QB5qcm77RJ71LNFskmHJyzrSvIFkVgEaUpAXkwYywhyEafITD04TJ
sgY43XFuvtjkRqFuzSDUJUkzOaye1.QEMg0SiNjVgr2pLJ1RFkLC.hDOjtfE
n8kmihfFdqNILY9uxgNV4WwC5rTdiX.f9JVHHRWoqRUW8be6HSDMkBQeIsps
yyYJMpCXV2R6JX6ejbCyRWQT2iSt8OcQntjkURQmo8oQYNY7PdfqEhIRU4QY
wTg3t8P.uHSHDA.auvDVcZ9T4haOe9y9B7kt+YGwIICynMr5fTH0TiOu1ivj
8UOgDvKIgDl9SOxV+zlhFTFojvdamCHgDjNGUoxIg3SzvSJgSRE+6Xh1U42q
ezlqNAaGbARRvFiKm1+pSvFtDB13mPqQ8qu4TYXy9J60MA8K1YG.EcmqVuIn
27DMZoYy5p4EnIVDJpHLVxi3qCilIVCF13TIpxdD1m3k0YZSdve8xF9+OaFc
NEPuzKXjUF7IvJNzeLVYSExAkEqzUXj1LPgp9yfRnLja7ojRoLj0OZ5BwjRO
kRJxATSmml4BRq7SNILyr8lkltSGRP20ZErYrEkbQp17B97uD2OjborD73Ow
SyTwN3sQULNrtpt49ll6hlOw6nh2TjWEyV2gKjnqy3wAJ1JIf.2xLFKzQ8v3
a2iWFQiJEZQMY8Rg0DqfxqY+V3YT2WqvBXosoDUn1KSu6TQgfOE6LjFPs2.H
iYgtRkIe3nI32Kvl3Nerk4f8q8j21Qv2AS0tHl749xjzOljcWGahlO0sd6Fq
Y98s9N64ao64f2xoOxmNkv7r31u7hYm2SqlJedshpGnwEmrZAxuSpB+RtTAR
SklTSweoUo.+2txDX5Oe2jayu+SdAYrBKWPZ6LJk0XktyJgJIlPLitZ1RYKI
QoFzJ.jhxkU+wJ8QOlQXvacAH06cQN+d5OO4ta+Z9cmTawRSs4M21twB88Hm
LdRIR6sFefPGRRWoLH48hTjDDJiC2HJ5v2pnwu+6ltXUyxp+wEO9z57we8lN
QhWl2P.Xo.CnALNPAHWsGhRhzxbdiokh0ZVcDT0BUgL7aoQHsE9+tIANxFj6
eUZai4skCTrTVfgFkSBoNSv60hkANotrPCgCNYtNWRp78K9m+G+c+l+WCZRv
CPugeouHpQoCiyBVbVUvKMXU0KsizGeygMH36B9+266drpLj0F15uiySM2f1
iOvHiywJunlIPfzBtiwoLHroiM3Rs3WTo.CACYcR47niNx2IwCW5AAFuJlfZ
EOuzyNirK8LbM0LYTBkqv81pkVtjTYOiVe24u5uphxE1oqBry5LdDurqZmGS
+lXtbNJ4kZuvClqdCXS5e3BFHXU.xvsTMau93A+UuSzY.aMpkorn05CZgW3U
cBClM2PuuvrDRB4uQYGBJ5p.8u5LDYK1eSbB30mU.nt5LEMheFXyXXJeBBJK
H8gnw.SzoGmaVtt5tr4HTzJe2nj7sdOx.op7j7mMNEZ0jmUejh0773LGotcd
yprUOFbkcxSKEwtmU7k2dUjETH0Ev6FotQZU9sjWmdL5EoIwAnmwALRfT.+M
FhMYbR+pJHDbk1vfjSY32pRB6cyN3xf9WeIgEsYGj2zl1Xp4i56gI7uIjDVz
1bPVXBMP0lCYFbEKeumVzlsou7q7QXc3dXe98u8L9uSRJ4gDjRwJeGkYziC8
R1iKkihgpEeoYEeyvxXLhOTKulEKmsXc9yoxhN9lXLPMcnO1RKccrl+xwFXa
EluLVawmB2IoHzVaaoAK9iHnBJIT8V+XoiA9hYP4Yv.vXnkQZrPJWQpGllV8
bp5XbWwopSRj.xFe3HmiU0hYuRXPlR6iyf7hAukMUt7oEL9h2L.RgBjIfw9U
YjNNrtsiyoAI+SptqB.Cp5gjk91eL1Hu3BPFtXaQ16rda.ULGII5hok1F+vi
wEZU6m3VbSbwj2+kXnUMOs71sOgQ2MKtc34.aeycSWsd1hcYpvt6RcS28v57
WK3JtVpLVKLvJXUACbsPIMNO+ZIMXf8tqGlc2iMy1jdMR7n70tixnK9fPcPy
7FYEws.qBlzmPXZQUMoBPv4XInFME53dGJfcvibW.Vn.aXx4qmS+otVJ6Kwz
MKkBrTNwNn0VFYXmELi4XQ26efTg59CGKWfRC0R8dHtZmMzlOl2NPg801iR8
hD26qHjB8ERacOD.P6+G+4ie9UC542mCAo2U.5QeNmoAOVhkJGVvQAPcS9kz
Wtj3VSoplkLVIvRSjJfg01r1erLmitygBT4vq2WBV89b3z6JAMgKjyFk4jaT
njToGkf4RdFI8WRCa0Me1mZS0TqTzrhr.lctQ5ZJ99cqVVlRPlpk.x7RXiNk
ANS.M03QozThacnHqbNpFmxXcirbNnNbzDyQyz59f2DrxnNzI4d16qb7ax3R
KaEMJcBBRFMk84VQlmbvfdV3pHBlhAF0ggD8MgD25PQV4vswVDZXaNmV7kXk
xgCPbfQO7kJGV.1R.T1bnpEuPcB4mh5aLCZs0RRFzYamAHAxVymGgfQR8LiG
iuqVGc854tZaWiBjwsHJmgcJooEX8Ry2p8pkVRbVHBLPWBlfO06kvuqTRZlw
m5r6Cqm7p9fcyz6kDuLwba07QWoeAgauZo0oJdrDxQRWmHBmO43fyH4Opzbv
XcrDd8dFFjz8V6HQaelQsNN6y6wchxD78vwrV5kOwsNzCO4vkaKCpguR3YVI
S3jxdBXBYOx.3RIQFg0wJvFOKBO8nHNP6IlH15zrhUPutSvGoY8h+fOZHIEu
3PwF1LnPOm8McvaQBCf3+RFz7LyIqONAeZmdom6pa5iLosFJbhLtLa.GyhIk
sT1uhY4ugNwwAjOFKcXeJvZm.hSQkxPR4ZYo0RlbzOyZeroc73q4i6LJzw7D
Qg031qVbl+4Arz..VBRv+Nd0hy+NKfwcwvB+1L20C54gcAJ30vIJmTmaOaeH
qgAaEA5bJKKQAiZVvRcsnxoHj4BvLun3bAvtQuiScUjf1+2.0Thd.LLRDnCz
Rsz7iYwnh5GdVZH+cPgR1Aj1lpD25nP6lGbB8DNai4evpRAYDMB6Y4nYcIbX
fIGy3KgLgbb1FdR8BkpR6vj0kMyul0X1XTrJYVYmwJgNLUZde7cNPHRiYYTO
bpyUr4xx3j4vNhMqVuh0xRgNKasszxFeeEYD2Zve4Pxo.sK58z9bqZVG38Z1
etXKmuc7Wc9KpdQW2Rx+mjNoOwsNTzbNGq0kv2iYE8mRDOlPVZhoKwRYyJnE
PIVpLOfOz04P8FOgaGF9RkUvrrgSGLD9zHbzf8DsrtnH5IuSIS.AUHZ5tjac
GOVUN9dGLjkEgQvcFyfR8zBjqNDzdoPHY6EcR7q6.Ib7sVZkBxDPOvoYERJ9
tyvm1HeUQHUoRD2tjVZDZyHomsU8vedzscECYIqMTB+mh977lmZLh9ZlKt5k
tz4PkXsvKlvznDSRwxqVIxZwqXRHuhcqU8Vyx57hrZtsM2mXiM6nebqE2tvw
AB0NFFbi9rzkz6KBwPNmfQ3jFOwGLXqJHfQs7YBlIWr+4FTaFy5PzxvC9QC5
as8OU7kiWbvPFUBHSx9Bo3+4maljSlrGuAfLL6yPc6ECKat.CdFwdOGeyZo6
pqZCm+lCFG7iaOIjDvFoSBYwVTgW.jdxsPSLDKdTuwYNA1bXKnMtMWq3rEyK
ZymAPEmqHl+YAqLDYs1R.nCDtxhc+1npLv0JOkYsshVF3ZYxNiy5l4B3703w
SC3198LHoFnJ0OuI2a5vEviQl3jK3RWB3tMHdIUMaTBhWlfiq+PCpzgNcCb6
EKsafaAFXf.iz4+wKAXF3ydVZe3JgSI18ojA6AnmVDRdeBacIRwTHLLp8AsB
acRUetUsMwsJEqWhws3w26fwW3nguR6a.Vj0wHgdbqu13KHKZ4h3hnrxAlcO
QCasrY4MOmtHqUVhvcEwLXadNNoHVYY0YeVZ3qUd74Jy9UVzg1hv+1j090A1
NWJMFL4jUEsKNTbI7FaNAs1qKFV97.JMJtSLyEGGus3yyOHLNPdVZjZJBCBS
VLiLEgIqIKlQlxP5lUBQXJByHMkyZoCEasNKNTWj8qrh46g0.0gw70DpYU8r
w590CpXfSCaF.ToBpZ7ZE4I+76HmzDUIs255ImrQOmbvOYiFulFhs1B.UYoT
YQhNLlUfnAeQnyxKDw5hn.KkENjNIkAquDaf7QSHNwJhiyafVWrcxKZZShaR
YeQVIrc9DNB4vctngwIrOTVzVZyErGDGwi6xEDChcl6FIt0AWzj4PGSEQL.l
ksQTQTQ.08nft5HHcRvSOb1fCXr0a2Qs9fTAhjJlEY9A.XoHyybwGmfwC4oC
YQhFOjkNjphX7LjkQlPQzgT46Sn0F3ZkyA5xDxeUVIOQnLfUdQm7joMn0v7u
AjYMPt3WskLcT0KmwTKLwklstSRAaq4LWLzxzwFvZ7fOzPIX4jU6G.BEQJPV
31RXhCDxKK9vhrVYIaSMJ5lj2hCAaZe6nF3hmESaUYvxYU64EIuRfPVEDZPU
j0JKADEQKLHq7W5PnuTTp4s3d2nPolUVIA1hfjyiPsHKUNbTMiDFMqrawqGG
ZorL.uHmOyJwLNSOuPFSEG0qBeM64EPVEWOTD2nFaFrmuri0mDA50IPfXzMD
oanH3vy+GHq.7CEogc.t7xgVcQVqrDuUjf8BYErWnHA6ExJXusvEbJundTOF
NYgLQ9TMk1hWHSPVgUFLmN8kTFp1I8t.1TCOHNqP7Yg0VCfOPfmAYG3jLmC.
CTqCR1+K4lfVokNQRetUGl5V095PHXkpKTwn1Prwhd7sNXrkvXybNQhEgZSV
I84J8ohsR1y4mNawVJ2YcWQ4Pfm+3ppXq0Yar.1PwVK5roCa4vg3YWqxPFZF
tlPDkXXVQtXRh1gtOzvEjmUFr.TYDBkkfbaYNslkfbKVr0BtRqUNJMbxzSNI
sjtM+wEcC0GMqwTpxmqt4AHGtMVJKzxh85IU61n70roBrbcuRSF1.jXidQA0
Fqzucbdx4QqSZb3r7c1vj.ircNI9T19cqRYqgVCqCfyPJznTRma2h0AT1CIP
4sNxpSdmCkdy36CmsAtVYoNmS2apaRlnyRN0KMFAVWOsTDm5ChiqRTFK+6j+
ziSm2T1uFuVwIZyC8bvFVoNtZxqoiVDdbQE1smkl6jzA.BvwZUirILg.qNs0
gwp4M1qxRp.dhaszI.Xl.p4zohcR.kjr32o4sMRROZlSPaOOzUihy.TARyV6
fw11+w2Z4IcyBPI7R.Tmz847ZVuAoLSZaLOfKj0sV9iI4nJv45fTL6Fi5nQD
taS4GFZqVui9YCbpxGx.iAGIX3kOT51tyEU8PWEnw0af4hJdnqBcnq2jguJv
Rd8GohXhRV4Z5gX2iJL0TsaIuxVyZGXkdci1vF2EYTofLu2gBX5bb.nKz+ta
Oygs1nku.VjBqHqzccYnYSOM8DWzCtDIRWxVqbhacvHDeN6z5h3A6rls.th3
gEcV5ooKRlDn0YuVC1NjrRVZnHILKzuFj0.Wqr7SgtLzFpby9utalYo6k1NV
yJ1vSEQDqtrLMfjT1gp0r5VrwsFYJQoi8I09bquls41rRDN6Iqa+jlny18qp
CLDvlVfr1MAOZ5r+Ik3dKtVOYkveDze.UFkIRkAjL6diWr3ZJPY29AGL4AkU
FaMJkSUdqMPzn3HfrR2b.KRRbj0nqoPNcHqrrsHUrN.4r+Ul39pxAp7mbTwX
XaoMGNWkSF1W135DSk6xG12rF2UPYxVxrxv1xjZc4kfsmzlsjM7ETwxbsxeL
Pf2A7Noa.62vd9zWz3Og0dFexIY1jGe7ySWtZyycDdu4gI+wlk6Fhm7i8h1e
LNk1tY4zOOa68Sw2Yxxa+zr0Suc8SKi3na9Ia6bS9lGZX9XKdZ1FVYLllWxU
q+x7CmdZKl7P6u5e6S2Mq46VOY8Sq9ge6zEO0NC3X76Gm7z70ubW4C2+wYym
eay71Gu2s6Ju6lsiEtaZu562716t2eeEaJGapl3pIUMAjCswWI8HUydGv176
.a+kDA7JTtUViJm1DekGICs2N8leI74URAg1OeUfUWn8U7aAuXklr391gfH5
TaeuGW1Hip7M3a9WKr6teZcy8Kmb2roKVuSNU6laKhtcBKxWMhviXiMXyGXT
4rs+NaoDhCxOYeX0iSZo0iy6uu4+5a9+Cwwtr1A
-----------end_max5_patcher-----------
</code></pre>


Want to print your doc?
This is not the way.
Try clicking the ⋯ next to your doc name or using a keyboard shortcut (
CtrlP
) instead.