 |

 |
|
 |
 |
 |
 |
|
 |
 |
Last month I took the Motorcycle Safety Foundation's Basic RiderCourse. It's a two-day course aimed at teaching absolute beginners how to ride a motorcycle. It runs a Saturday and a Sunday, and you spend about 9 hours each day in a parking lot and in a classroom, learning not only how to stay upright on a bike but how to handle emergency situations — they teach you to swerve at 20 mph, how to perform a quick stop in a turn, etc. It went well, and while I certainly didn't take to motorcycling like Mozart to music, I did feel pretty comfortable and made good progress (unlike some of the other students, unfortunately). We were unlucky (or lucky?) enough to have our course take place on a weekend where the weather was rainy, so we got to perform some of our exercises (and, indeed, the test itself at the end of the second day) in the rain.
I'll admit that I was one of the three students to drop a bike that weekend — at the beginning of the second day, just after a light rain, I was taking a turn at about 15 mph and the bike just slid right out from under me. I wasn't hurt, they fetched me a new bike, and the day went on. Now I have a good sense of where the limits are on wet pavement :) And, as I said, the test itself, given at the end of the second day, ended up occuring in the rain, and I did pretty well, so I felt somewhat vindicated.
So I passed the test on Sunday evening, which earned me my motorcycle endorsement. On Monday I bought the 2006 Kawasaki Ninja 250 that my brother had up for sale, and on Tuesday morning I flew down to Puerto Rico for two weeks. Agony! But finally I found myself back in Knoxville, and since then I've been riding that motorcycle like nobody's business (well, except for professional motorcycle riders, I guess).
The entire first week that I was back, the Civic sat idle in the garage — I was able to use the motorcycle for all of my transportation needs, which felt great. Over the course of the past week I've gotten much more comfortable on the bike, and I plan to let the Civic continue to sit as much as possible.
Today I finished my first tank of gas, and as usual, I noted the odometer reading on the receipt to calculate mileage. It was so great filling up the tank with only 4 gallons of gas — the fill-up only took about a minute. The total charge was about $16, and with 220 miles since Andrés' last fill-up, that works out to 53 mpg. Ahh. The Civic was already pretty frugal with its 32 mpg and 10-gallon tank, but it feels great to cut even that small consumption in half.
And it feels great riding, being out in the world, not traveling through it in a metal box. It's surprising how much more you experience on a motorcycle — the birdsong from the woods along the road, the moist smell as it starts to rain, or the smell of wood stoves burning as I pass through a residential neighborhood. I thought that having your head inside a helmet would be more isolating than driving in a car with the windows down, but fortunately that's not the case.
Now I just find myself looking for more reasons to get out of the house — working from home, I don't have a morning commute to provide an excuse to ride, so I have to come up with other errands to run. I've already gotten a haircut and an eye exam this week. I have been needing another garden hose...
Originally posted at BinaryRock [Original Entry] Tags: andres, motorcycles, ninja
|
 |
 |
 |
 |
|
 |
 |


 |
|
 |
 |
 |
 |
|
 |
 |
During the Cold War, the U.S Navy set up a system called SOSUS (the Sound Surveillance System). It's an array of underwater microphones positioned all around the world, which they used to track Soviet submarines by the sound of their engines. The microphones sit several hundred yards below the surface of the water, at a depth where sound waves become trapped in a layer of water known as the "deep sound channel." At this depth, a combination of temperature and pressure cause sound waves to keep traveling without being scattered by the ocean surface or seafloor. Nowadays, NOAA has expanded the concept, installing additional hydrophones in 1996, and using the array to record underwater sounds for scientific study in the fields of biology, seismology, etc.
Through the years, several unexplained and unidentified sounds have been recorded, some repeatedly. Today, I've been reading about them and listening to the sound clips provided by NOAA. It's kind of spooky.
One significant sound is known as 'Bloop' (Wikipeda page). It's relatively recent, recorded in 1997, just a year after NOAA installed the additional hydrophones. They don't know what made the sound, but they've determined based on its properties that it most likely came from some biological source — some sea creature. The odd thing about it, though, is that it was incredibly loud — the signal was picked up by two stations 5000 km apart. Scientists say that a creature would need to be much larger than a Blue Whale to create a sound that loud at those frequencies. Some mysterious sea monster? We know so little about what's going on in the deeper oceans that it wouldn't be surprising at all to discover that some large creature has gone thus far undetected.
Another sound that's pretty spooky is known as Slow Down (Wikipedia page), because it does just that — the frequency steadily drops down from about 30 Hz to zero in about 7 minutes. This one was also very loud, being picked up by three separate stations, thousands of miles apart. They've traced its origin to an area out in the middle of the Pacific ocean. It's an interesting feeling to listen to that recording and wonder what monstrous beast or machine could have created it.
I think I need to watch The Abyss again.
Originally posted at BinaryRock [Original Entry] Tags: noaa, sounds, underwater
|
 |
 |
 |
 |
|
 |
 |

 |
|
 |
 |
 |
 |
|
 |
 |
A few weeks ago Jenn sent me a video of a robot that a Danish guy named Frits had built out of paint mixing sticks and hot glue. He called it "Yellow Drum Machine", and it basically just drives around until it finds something interesting, and then it plays a drum beat on it, records the beat with a microphone, then plays that back on its giant smokestack-like speaker and taps out other beats along with it, or dances to the music. It was adorable, and I wanted one of my own. As I looked at the pictures more closely, I realized that I actually already had a lot of the motors and sensors that he used to build his, and so it was decided — I have to build one of my own.
I checked out the website he runs, letsmakerobots.com, and saw that it was a community-based site where you can display your own robots, participate in the forums, etc, so I signed up for an account and got involved in the community. Recently, I mentioned on the site that I was building my own version of his robot, and he excitedly offered to help me out by providing tips and explanations of the way his code works, etc.
Mine doesn't have yellow tank treads, so I'm calling mine Little Drum Machine (construction photos). I've made good progress in building the mechanical side of it — it helps a lot to have a woodworker (and his power tools) in the house. My robot looks a little more finished and refined than Frits' version, and I'm kind of sad about that (his has so much character, from its jauntily angled speaker to the big globs of dripping hot glue), but I've found that my instinctive desire to carefully measure, calculate, and plan ahead is surprisingly difficult to overcome. Still, I'm happy about the way it's coming along. Here's a video of my robot driving around and swinging his single drumstick at stuff. (Yup, I've actually started uploading videos to YouTube now. Sadly, no crazy comments calling me a nazy or a moran so far).
Once I finish gluing up another drumstick motor or two, I get to start the fun part — teaching him to play music.
Originally posted at BinaryRock [Original Entry] Tags: electronics, little_drum_machine, robotics
|
 |
 |
 |
 |
|
 |
 |

 |
|
 |
 |
 |
 |
|
 |
 |
Over the past year or so I've noticed BinRock getting slower and slower. It got so bad that visitors' web browsers were timing out before BinRock got around to sending them the page they were waiting for. I don't get any notification when a visitor times out, but for the last few months, I've been getting 5-10 error messages a day from my own scripts that load BinRock pages for one reason or another, and I can extrapolate from that and guess that it's been quite a lot.
In Linux, there's a measure of how heavily the machine is loaded, aptly called the "load average." A value between 0.0 and 1.0 means that the machine is only partially being used, and it's spending part of its time idle. A value of 1.0 effectively means that there is something using the CPU at all times, but nothing is being made to wait. That's just about perfect — you're not wasting hardware sitting around doing nothing, but you're also not overloading it. Values above 1.0 mean that the machine is overloaded, and processes are having to sit around waiting for their turn to run. Generally, if you see it reach 2.0 or more, the machine will be running pretty slowly and it'll be really obvious to the users.
For years, BinRock's load average was down around 0.10 — it wasn't even breaking a sweat serving all the web sites, email accounts, etc that are hosted there. But for the last year, the load has started growing steadily, and during the last few months, I'd regularly see it get as high as an astounding 30.0. Hence all the timeouts.
I'd made several previous attempts to figure out what was making it run so slow, and found and solved a few bottlenecks, but the load never got better. But finally this weekend I tracked down the cause — spam. Ever since about last July, the flow of incoming email to BinRock has grown steadily:

Since BinRock was always so lightly loaded and only hosted 20-30 email accounts, I had configured it to be relatively trusting of incoming email — if BinRock was a house, the mail server was a suspicious but not overprotective father, who carefully eyed over anyone knocking on the door asking to see his daughter, and letting them pass unless they had a particularly skeezy look to them. If the daughter didn't want to see them (the email was addressed to a nonexistent user), then the father had to usher them back out the door, and in fact, all the way back to their supposed homes.
That policy works fine when you live in a nice suburban neighborhood, but not when you live in downtown Baghdad. Sadly, the current state of email on the internet more closely resembles the latter case, and dad was getting overloaded carefully eyeing the thousands of callers every day, and wasting hours of his time trying to get all the rejected boys back to their homes, especially since, as it turns out, most of those boys with ill intent lied about where they were from. Dad constantly had a backlog of thousands of boys to deal with. Here's the number of messages sitting in the queue waiting to be processed at any given time (normally, the number should stay close to zero, as every message is handled immediately).

The boys don't have it so easy anymore. Now, any boys knocking on BinRock's door have to run a well-armed gauntlet just to make it in the front door. Dad first checks a list to see if the boy is coming from a house that is already known to be of ill repute, and if so, he doesn't even open the door. If he does open the door, and the boy asks to see Cheryl or Steve or King Ramses III (Dad's daughter is named Katie), he slams the door in the boy's face. Finally, if the boy has made it past those challenges unscathed, Dad lets the boy in and eyes him suspiciously, and if he's got an unsavory look about him, out the door he goes. Only the few remaining boys are let in to see his daughter.
And now, after a year of hectic work, Dad has time to read the paper and catch up on his gardening again.

The green area reflects the number of incoming emails per hour, and the blue line shows how many of those connections were denied. I made the first change (check a blacklist, and refuse incoming connections from blacklisted IP addresses) at about 17:00 hrs yesterday, and instantly about 80% of incoming connections were just denied outright. The next change, refusing connections that tried to deliver email to nonexistent BinRock addresses, was made today at about 16:00 hrs, and you can see that almost all of the remaining connections are now denied. The few remaining connections (about 10 out of 2000 per hour) are allowed to deliver email to BinRock, which means the spam filter only has to look at 10 messages per hour, rather than 2000. And the improvement is visible in the size of the pending message queue:

Ahh, back to zero. The load average is back under control as well, sitting steady around 0.50-0.60. I can handle that. And, more importantly, so can Dad.
Originally posted at BinaryRock [Original Entry] Tags: binrock, spam
|
 |
 |
 |
 |
|
 |
 |


 |
|
 |
 |
 |
 |
|
 |
 |
I've always been really interested in robotics and artificial intelligence, but because I changed majors in Freshman year from computer engineering to computer science, I missed out on the chance to get any real formal education in the field. I did take one electrical engineering class where we learned to breadboard circuits and stuff, and it was actually one of my favorite classes at Clemson. But it was only an introduction to the subject and didn't really get into detail, and so despite my longstanding interest in the field, I've never really known how to go about making the jump and actually start doing it.
I have a Lego Mindstorms kit that I've toyed with, but the inherent fragility of Legos was always a limitation. I found that if I tried to fashon an arm to pick stuff up with, I couldn't apply too much force or it'd just smash itself to pieces spectacularly. So the desire to learn to build "real" robots out of metal has stuck with me.
Finally I've started to make progress. I found some well-written, useful books on the subject, and picked up a "learning to program microcontrollers" introduction kit, which includes a microcontroller, a small circuit board, and a selection of resistors, capacitors, sensors, LEDs, etc, and a book that walks you through learning to wire up circuits, and then write programs to run on the microcontroller to interact with those circuits. I worked my way through all the lessons, and soon had a simple lightmeter working, which simply polls a photoresistor and displays a number on the LED display based on how much light it sees (crappy cell phone video). An exciting start. Well, a start, anyway.
But that can't be called a "robot" with a straight face, so my next project was to build something mobile. But I quickly realized that building a mobile platform is a lot of work and requires parts that you don't have access to at 2am on a Friday night (that's right, I was at home building robots on a Friday night), so I opted to start with something that already has wheels and motors — an R/C car. One of the lessons in the microcontroller book had explained how to control servos, so I wrote some code to let my chip control the throttle and steering on the car, then added a sonar unit and programmed it to drive forward until it finds that it's closer than 24 inches from an obstacle, then back up. It's sort of a curious-yet-skittish-puppy-bot (my friend Tony named him Herpe, so I've been calling him that. It's a good thing I don't have more than one). Here's a video. When you set him down, he'll find the nearest wall or couch and drive back and forth repeatedly at it, like a hunting dog. It's fun. For a minute or two.
Next I wanted to build something more dynamic. I found the perfect project in one of my robotics books — a small robot built from an old computer mouse, designed to run around feverishly, seeking the brightest light in the room. The best part is that a lot of the circuitry of the robot is built from the parts that came out of the mouse to begin with, and most of the rest can be scavenged from other techno-junk you've got around the house, like computer modems and motorized toys.
As a card-carrying computer nerd, I'm legally obligated to keep several old mice on hand in the closet, so one of them was sacrificed for a greater cause. It took me a few days to build that one, but this morning I got it working. The building process is documented in the photo gallery, and here's a short video of him running around in the kitchen, chasing a spot of light on the floor. I called him Feivel (aww). One interesting thing I noticed while shooting that video is that occasionally, he'd line up and run along the strip of shadow between the two sections of light on the floor. His circuitry is designed to steer him in the direction of whichever eye sees brighter light, and I guess since both sides were brighter than the line directly in front of him, he had a tendency to stay right on the line. Emergent behavior!
I learned one interesting fact while working on Feivel. The components that make up his "eyes" are actually not designed as light sensors — they're the infrared emitter LEDs from inside the mouse. That didn't make sense to me when I saw it on the circuit diagram, so I did some reading online to figure out what was up. I discovered that, just like a motor can function as a generator (and vice versa), and a speaker can function as a microphone (and vice versa), all LEDs also function as light sensors. When an LED is exposed to light, it produces a small voltage across the pins. Weird.
So now that Feivel is done, I'm trying to decide what to build next. Feivel is phototropic — he seeks out light — but he's powered by a 9V battery. There's another type of robot design called a photovore — they "eat" light (it's kind of like being a level-9 vegetarian). Not only are they designed to seek out light, they're also powered only by a solar panel, so they need to seek out light to "survive". That sounds fun. Of course, photovoric robots move much slower than battery-powered designs. Here's a YouTube video of a really simple one that I like called the Trimet. That should be a fun little project.
Aside from that, I plan to start working on something a little more capable. There's packages you can buy online that include a bare rolling chassis with four motors and wheels, to build a mobile robot on top of, but the cost is too high for me, especially while I'm just experimenting — the kit I linked costs $220. I'm sure there must be much cheaper ways to put something simple and mobile together. I'll just have to get creative.
Originally posted at BinaryRock [Original Entry] Tags: electronics, feivel, herpe, robotics
|
 |
 |
 |
 |
|
 |
 |

 |
|
 |
 |
 |
 |
|
 |
 |
You know how, in college, each class had its own up-and-down cycle where the workload was really high as a test or large assignment approached, then got easier for a while until the next big exam or assignment? It was like several parallel waveforms with different frequencies, and at the points where they all line up, you get constructive interference. The resonance can destroy bridges or shatter a wine glass — in college, it just shatters your social life.
Anyway, Thursday was a day of constructive interference of a different sort — after days filled with boredom and uneventfulness, Thursday seemed to try to pack in as much enjoyment as possible.
Cat mentioned to me last week that Maria would soon be flying down to Tennessee from Connecticut to visit her grandmother, and she suggested that I contact her to see if we could meet up. I sent Maria an email, and she said that yes, she was flying into Nashville on Thursday morning, and we arranged that I'd drive down there and we could hang out for a few hours before she drove the hour and a half to her grandmother's house. She asked me to pick somewhere to meet up, and after some online searching, I suggested Cheekwood, an art museum housed in an old mansion, surrounded by acres of botanical gardens, and she agreed it sounded like a cool place to check out.
As I got in bed on Wednesday night, Leslie called out of the blue to say that she had gotten her and me on the guest list for the VAST concert in Knoxville on Thursday evening. I explained that I was heading to Nashville in the morning, but I should be back in time to make it to the show.
So that morning I got up early and set off on the 3-hour drive to Nashville. I met up with Maria, we explored the botanical gardens scattered with creepy sculptures, sat and enjoyed the silence of the Japanese rock garden, and then tracked down a real Japanese restaurant, which I'd been craving for a while. It was fun, and I really like Maria, so I had a great time getting to spend a few hours with her exploring and conversing.
Finally she had to set off for her grandmother's, so we parted ways and I drove back to Knoxville. I got back home just in time to clean up and get ready for the VAST show, but in the 20 minutes I was there, the doorbell rang. When I opened the door, there were three 8-year-old girls on my porch, who said, "Hey! We wrote a note to Somebody," and handed me an envelope adressed, "To Somebody." I opened it and found the letter at left. It was oddly coincidental timing, given the fact that it was such a great day. I thanked them and gave them high-fives and went to finish getting ready.
The VAST show was fun as well — you feel so cool walking up and saying, "I'm on the list," and them looking you up and waving you through. I got there just as VAST was about to go on, and since the show wasn't packed, Leslie and I were able to get right front and center. The other nice thing about the fact that there weren't tons of people there is that there was more of a social atmosphere amongst the audience — we got to know the people around us.
During one song, Jon Crosby (the band's frontman) brought out a camcorder, saying, "You guys are always putting videos of us on YouTube, so we're gonna do the same." They shot video throughout the next song, alternately filming the band and the audience. Often, though, he'd stop moving the camera around and concentrate on singing, and since Leslie and I were right up front, the camera usually ended up pointed straight at us for a minute or so while he sang the next verse. I hope they edit that video down, because otherwise there's going to be a whole lot of footage of me nodding my head and trying my hardest not to look awkward.
After the show, the band came out and hung out with those of us who were still around. They invited us all to go out to a bar with them, but I'd been up since 8am so I headed home. I'd had more than my share of fun for the day already, no need to be greedy.
Originally posted at BinaryRock [Original Entry] Tags: concert, leslie, maria, nashville, vast
|
 |
 |
 |
 |
|
 |
 |

 |
|
 |
 |
 |
 |
|
 |
 |
This is a subject I've been giving a lot of thought lately. Motorcycles are known for getting great has mileage — in the 50-60mpg range for the larger 600cc bikes, and up closer to 80mpg or more for the smaller 250cc bikes. So I was surprised to hear people on forums talking about getting 12-15mpg out of their 600cc ATVs. I figured those posts must have been exceptions, but I've kept track of my own gas mileage on my ATV, and I've been averaging about 13.5 mpg. That's a lot worse than even my Buick, which averages 22, much less the Civic with its comfortable 31 mpg.
As I thought about it, I realized that it makes sense that off-roading would be inherently less efficient than rolling on a surface that someone has carefully prepared for you in advance — you don't spend a lot of time above 15mph on a trail, and you're using a lot more power than an on-road vehicle would need to simply maintain 70mph down the highway. I don't know what kind of mileage jeeps and the other "full-size" offroad vehicles get while driving trails, but I'd imagine it's even worse than I get. When you take that into consideration, I guess it's surprising that I can get close to the mileage that an SUV gets on the highway, even while I'm crawling over rocks. But still, that doesn't change the fact that you're using a whole lot of gas per mile.
But I realized that that's not the right way to look at it, at least in my case. On an ATV, unlike in a car, I'm not trying to get to any specific point — it's the activity itself that I enjoy doing, so if I set out to ride for the day and don't make as much progress as I'd planned, I'm not going to extend my day until I ride every trail on my list. I'll get tired of riding after four hours or whatever, no matter how much distance I've actually covered in that time.
So it's more informative to use time, rather than distance, to compare fuel usage. I added a field to my Excel spreadsheets to convert my fuel usage numbers from miles per gallon into gallons per hour. The ATV has an hour meter in addition to the odometer, so I can do the calculation directly, but for the cars I had to estimate the number of hours driven based on an assumed average speed of 50 mph.
In this case, things look more like I'd expect. The Buick consumes 2.3 gph, the Civic uses 1.6, and the ATV uses only 0.4. It's possible that the ATV's hour meter counts the time that the ignition is on but the engine isn't running, which would make its number look a little better, but just like motorcycles, ATVs have small batteries, so you have to minimize the amount of time you've got the key in with the engine off. I think that figure is pretty accurate.
At first I was surprised by how low the ATV's hourly consumption was, but I realized that, when comparing fuel usage per hour of operation, you'd expect the usage to scale roughly linearly with respect to engine size, regardless of the distance traveled, because the engine will be operating in the same range of revs in either case. It's the transmission that takes care of converting that output into various rates of forward motion — the engine doesn't know or care whether you're going 10mph in first gear or 70mph in fifth. It will be spinning at 3000 rpm in either case, and thus using about the same amount of fuel. I'm curious to calculate the gallons-per-hour figure for a motorcycle. I'd expect that an on-road vehicle with a similarly-sized engine (or smaller) would have a similar (or better) consumption rate, and I'm curious to see if that's actually the case.
Anyway, regardless of the numbers, there's plenty of reasons why offroading is not a very ecologically friendly thing to do, but at least I'm now reasonably confident that jumping on an ATV and riding for three hours (and covering 30 miles) uses about the same amount of gas as getting on a motorcycle and riding for three hours (and covering 180 miles). And that's one relief, at least.
Originally posted at BinaryRock [Original Entry] Tags: atv, fuel_efficiency, offroading
|
 |
 |
 |
 |
|
 |
 |

 |
|
 |
 |
 |
 |
|
 |
 |
As I mentioned before, I'm planning on going along on the Windrock ATV Club's club ride on Saturday. The ride is scheduled to set out at 8:30 am though, so I figured I'd head up to Windrock today to be sure I knew how to find the place. And then I figured that, as long as I was heading up there, I may as well load up the ATV and go do a little riding. Aside from the obvious desire to just get out and ride, it would also be a good chance to be sure that my gear fits well, my clothes are warm enough, etc, without having 20 other people waiting for me to adjust things and try different arrangements. And it proved to be a good idea, because I did get lost several times trying to find the trailhead, so I'm glad I spent the time finding it today rather than early Saturday morning when it's dark and people are waiting for me.
I only rode a mile or two into one of the easier trails, just to get a feel for how the machine handled and see if I got cold. It was amazing. The offroading itself is really fun, and even in just those two miles, I saw some great views. One thing I learned is that you have to expect to get muddy, even if you stay out of the actual mud pits. I suspected that might be the case, so I replaced my Debbie Gibson-inspired Tupperware cargo box with the watertight cooler that Bryan and Cat donated to me when they moved. I planned to carry my camera and GPS in there, so I figured it'd be better to give them a little more protection from the mud. I was disappointed that the cooler matched the ATV's color rather than clashing terribly.
The first time I stopped to enjoy the scenery and take some pictures, I discovered that my spare fuel can had apparently come loose at some point and had been dragging behind me the whole time, getting completely covered in the mud kicked up by my tires. Oops. Maybe it's a good thing I don't have kids.
I'll have to figure out how to deal with the mud once I start carrying my tripod and large-format camera bag — neither would be ruined by mud but I'd much rather keep it off of both if possible. I guess I could just wrap them both up in a garbage bag before strapping them to the ATV. Shooting large-format is slow enough anyway, so I guess it's not a problem to add one more quick step each time I want to stop and take a picture.
As I loaded the ATV back on the trailer for the ride home, I reflected on how much more I enjoy my life ever since I started actually pursuing all the things I've always wanted to do. On the drive home I felt the same satisfied elation that I remember feeling after every flying lesson. How did I go 27 years before finding reliable ways to get that feeling? I always used to shrug when people talked about the "natural high" you get from doing things you like. The concept made little sense to me. Now I realize that I guess I just didn't have any real experience with it.
I always had all these interests, and I'd read magazines and catalogs related to them, but for some reason it always felt like that's as far as I could go with it — it never occurred to me that I could get up and actually go do them. Of course, a big part of it was the financial aspect. Perhaps because of my general interest in machines and technology, it happens that most of my interests involve a significant outlay of money. I'm only now getting to the point where I can afford to fly airplanes and buy ATVs (and even so, only just). Although I grew up in a house with money, my parents were careful not to just buy us whatever we asked for, instead making us save up and earn the things we wanted. Even with my generous $20/week allowance, I guess these multi-thousand-dollar activities just felt impossibly out of reach, so I never seriously considered actually trying to get started in them.
I guess that's the basic situation that underlies both this decision to get into offroading and my decision to begin flight training. It was a sudden realization that, "Holy crap, you know that thing I've always really wanted to do but have always considered impossible? I can totally just go do that now!" And of course that's quite a heady feeling.
Originally posted at BinaryRock [Original Entry] Tags: atv, offroading, windrock
|
 |
 |
 |
 |
|
 |
 |



|
 |
|