Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlan Aguiar <alanjas@hotmail.com>2012-01-21 02:47:36 (GMT)
committer Alan Aguiar <alanjas@hotmail.com>2012-01-21 02:47:36 (GMT)
commit829e76f24e3f3d4dcefafda1b5facc6c659b9dd5 (patch)
tree7ac216638e3f4a94423bfc0c92c7f21c4ca35696
parent987045f0af674cd3b12897207bcf048b584b6df4 (diff)
version 4
-rw-r--r--MANIFEST450
-rw-r--r--NEWS14
-rwxr-xr-xactivity.py169
-rw-r--r--[-rwxr-xr-x]activity/activity.info6
-rwxr-xr-xbutiaAPI.py8
-rwxr-xr-xfollowme.py273
-rw-r--r--locale/de/LC_MESSAGES/uy.edu.fing.followme.mobin1279 -> 1291 bytes
-rw-r--r--locale/de/activity.linfo2
-rw-r--r--locale/en/LC_MESSAGES/uy.edu.fing.followme.mobin1228 -> 1240 bytes
-rw-r--r--locale/en/activity.linfo2
-rw-r--r--locale/es/LC_MESSAGES/uy.edu.fing.followme.mobin1270 -> 1282 bytes
-rw-r--r--locale/es/activity.linfo2
-rw-r--r--locale/fr/LC_MESSAGES/uy.edu.fing.followme.mobin1255 -> 1267 bytes
-rw-r--r--locale/fr/activity.linfo2
-rw-r--r--locale/it/LC_MESSAGES/uy.edu.fing.followme.mobin1282 -> 1294 bytes
-rw-r--r--locale/it/activity.linfo2
-rwxr-xr-x[-rw-r--r--]lua/bobot-server.lua0
-rwxr-xr-x[-rw-r--r--]lua/bobot.lua0
-rwxr-xr-x[-rw-r--r--]lua/bobot_baseboard.lua0
-rwxr-xr-x[-rw-r--r--]lua/bobot_device.lua0
-rwxr-xr-x[-rw-r--r--]lua/comms_serial.lua0
-rwxr-xr-x[-rw-r--r--]lua/comms_usb.lua0
-rwxr-xr-x[-rw-r--r--]lua/drivers/boot.lua0
-rwxr-xr-x[-rw-r--r--]lua/drivers/boton.lua0
-rwxr-xr-x[-rw-r--r--]lua/drivers/butia.lua0
-rwxr-xr-x[-rw-r--r--]lua/drivers/dist.lua0
-rwxr-xr-x[-rw-r--r--]lua/drivers/grises.lua0
-rwxr-xr-x[-rw-r--r--]lua/drivers/lback.lua0
-rwxr-xr-x[-rw-r--r--]lua/drivers/led.lua0
-rwxr-xr-x[-rw-r--r--]lua/drivers/luz.lua0
-rwxr-xr-x[-rw-r--r--]lua/drivers/magnet.lua0
-rwxr-xr-x[-rw-r--r--]lua/drivers/motor.lua0
-rwxr-xr-x[-rw-r--r--]lua/drivers/motorTm.lua0
-rwxr-xr-x[-rw-r--r--]lua/drivers/motores.lua0
-rwxr-xr-x[-rw-r--r--]lua/drivers/motorin.lua0
-rwxr-xr-x[-rw-r--r--]lua/drivers/move.lua0
-rwxr-xr-x[-rw-r--r--]lua/drivers/pote.lua0
-rwxr-xr-x[-rw-r--r--]lua/drivers/puerta.lua0
-rwxr-xr-x[-rw-r--r--]lua/drivers/sensor.lua0
-rwxr-xr-x[-rw-r--r--]lua/drivers/stmtr.lua0
-rwxr-xr-x[-rw-r--r--]lua/drivers/temp.lua0
-rwxr-xr-x[-rw-r--r--]lua/drivers/temp_lubot.lua0
-rwxr-xr-x[-rw-r--r--]lua/drivers/tilt.lua0
-rwxr-xr-x[-rw-r--r--]lua/lubot-client-testMotorTm.lua0
-rwxr-xr-x[-rw-r--r--]lua/lubot-client-testPote.lua0
-rwxr-xr-x[-rw-r--r--]lua/lubot-client-testT0.lua0
-rwxr-xr-x[-rw-r--r--]lua/lubot-client-tiempos.lua0
-rwxr-xr-x[-rw-r--r--]lua/lubot-client.lua0
-rwxr-xr-x[-rw-r--r--]lua/test-reset.lua0
-rwxr-xr-x[-rw-r--r--]lua/test.lua0
-rwxr-xr-x[-rw-r--r--]lua/test_boton.lua0
-rwxr-xr-x[-rw-r--r--]lua/test_butia.lua0
-rwxr-xr-x[-rw-r--r--]lua/test_buzzer.lua0
-rwxr-xr-x[-rw-r--r--]lua/test_display.lua0
-rwxr-xr-x[-rw-r--r--]lua/test_grises.lua0
-rwxr-xr-x[-rw-r--r--]lua/test_l1.lua0
-rwxr-xr-x[-rw-r--r--]lua/test_l2.lua0
-rwxr-xr-x[-rw-r--r--]lua/test_l3.lua0
-rwxr-xr-x[-rw-r--r--]lua/test_lback.lua0
-rwxr-xr-x[-rw-r--r--]lua/test_led.lua0
-rwxr-xr-x[-rw-r--r--]lua/test_led_luz.lua0
-rwxr-xr-x[-rw-r--r--]lua/test_luz.lua0
-rwxr-xr-x[-rw-r--r--]lua/test_magnet.lua0
-rwxr-xr-x[-rw-r--r--]lua/test_motores.lua0
-rwxr-xr-x[-rw-r--r--]lua/test_sensor.lua0
-rwxr-xr-x[-rw-r--r--]lua/test_sensor_dig.lua0
-rwxr-xr-x[-rw-r--r--]lua/test_sensor_grises_motor.lua0
-rwxr-xr-x[-rw-r--r--]lua/test_temp.lua0
-rwxr-xr-x[-rw-r--r--]lua/test_tilt.lua0
-rw-r--r--po/FollowMeButia.pot (renamed from po/FollowMe.pot)16
-rw-r--r--po/de.po16
-rw-r--r--po/en.po16
-rw-r--r--po/es.po14
-rw-r--r--po/fr.po16
-rw-r--r--po/it.po16
-rwxr-xr-xpygame/docs/__init__.py12
-rwxr-xr-xpygame/docs/__main__.py22
-rwxr-xr-xpygame/docs/index.html158
-rwxr-xr-xpygame/docs/logos.html44
-rwxr-xr-xpygame/docs/pygame_logo.gifbin25116 -> 0 bytes
-rwxr-xr-xpygame/docs/pygame_powered.gifbin10171 -> 0 bytes
-rwxr-xr-xpygame/docs/pygame_small.gifbin10286 -> 0 bytes
-rwxr-xr-xpygame/docs/pygame_tiny.gifbin5485 -> 0 bytes
-rwxr-xr-xpygame/docs/ref/camera.html203
-rwxr-xr-xpygame/docs/ref/cdrom.html317
-rwxr-xr-xpygame/docs/ref/color.html179
-rwxr-xr-xpygame/docs/ref/cursors.html135
-rwxr-xr-xpygame/docs/ref/display.html353
-rwxr-xr-xpygame/docs/ref/draw.html158
-rwxr-xr-xpygame/docs/ref/event.html245
-rwxr-xr-xpygame/docs/ref/examples.html392
-rwxr-xr-xpygame/docs/ref/font.html294
-rwxr-xr-xpygame/docs/ref/gfxdraw.html287
-rwxr-xr-xpygame/docs/ref/image.html166
-rwxr-xr-xpygame/docs/ref/index.html692
-rwxr-xr-xpygame/docs/ref/joystick.html261
-rwxr-xr-xpygame/docs/ref/key.html279
-rwxr-xr-xpygame/docs/ref/locals.html61
-rwxr-xr-xpygame/docs/ref/mask.html309
-rwxr-xr-xpygame/docs/ref/midi.html351
-rwxr-xr-xpygame/docs/ref/mixer.html466
-rwxr-xr-xpygame/docs/ref/mouse.html153
-rwxr-xr-xpygame/docs/ref/movie.html232
-rwxr-xr-xpygame/docs/ref/music.html215
-rwxr-xr-xpygame/docs/ref/overlay.html101
-rwxr-xr-xpygame/docs/ref/pixelarray.html152
-rwxr-xr-xpygame/docs/ref/pygame.html186
-rwxr-xr-xpygame/docs/ref/pygame_cursor.html89
-rwxr-xr-xpygame/docs/ref/rect.html296
-rwxr-xr-xpygame/docs/ref/scrap.html187
-rwxr-xr-xpygame/docs/ref/sndarray.html137
-rwxr-xr-xpygame/docs/ref/sprite.html714
-rwxr-xr-xpygame/docs/ref/surface.html604
-rwxr-xr-xpygame/docs/ref/surfarray.html220
-rwxr-xr-xpygame/docs/ref/tests.html108
-rwxr-xr-xpygame/docs/ref/time.html175
-rwxr-xr-xpygame/docs/ref/transform.html212
-rwxr-xr-xpygame/docs/tut/DisplayModes.html174
-rwxr-xr-xpygame/docs/tut/ImportInit.html63
-rwxr-xr-xpygame/docs/tut/MoveIt.html436
-rwxr-xr-xpygame/docs/tut/SpriteIntro.html375
-rwxr-xr-xpygame/docs/tut/chimp/ChimpLineByLine.html644
-rwxr-xr-xpygame/docs/tut/chimp/chimp.py.html196
-rwxr-xr-xpygame/docs/tut/chimp/chimpshot.gifbin11062 -> 0 bytes
-rwxr-xr-xpygame/docs/tut/intro/ball.gifbin5015 -> 0 bytes
-rwxr-xr-xpygame/docs/tut/intro/blade.jpgbin2631 -> 0 bytes
-rwxr-xr-xpygame/docs/tut/intro/freedom.jpgbin7050 -> 0 bytes
-rwxr-xr-xpygame/docs/tut/intro/intro.html351
-rwxr-xr-xpygame/docs/tut/newbieguide.html210
-rwxr-xr-xpygame/docs/tut/surfarray/SurfarrayIntro.html483
-rwxr-xr-xpygame/docs/tut/surfarray/allblack.jpgbin380 -> 0 bytes
-rwxr-xr-xpygame/docs/tut/surfarray/flipped.jpgbin12053 -> 0 bytes
-rwxr-xr-xpygame/docs/tut/surfarray/imgarray.jpgbin12075 -> 0 bytes
-rwxr-xr-xpygame/docs/tut/surfarray/redimg.jpgbin8160 -> 0 bytes
-rwxr-xr-xpygame/docs/tut/surfarray/scaledown.jpgbin4724 -> 0 bytes
-rwxr-xr-xpygame/docs/tut/surfarray/scaleup.jpgbin31368 -> 0 bytes
-rwxr-xr-xpygame/docs/tut/surfarray/soften.jpgbin9410 -> 0 bytes
-rwxr-xr-xpygame/docs/tut/surfarray/striped.jpgbin2754 -> 0 bytes
-rwxr-xr-xpygame/docs/tut/surfarray/xfade.jpgbin8576 -> 0 bytes
-rwxr-xr-xpygame/docs/tut/tom/MakeGames.html455
-rwxr-xr-xpygame/docs/tut/tom/basic.pngbin5139 -> 0 bytes
-rwxr-xr-xpygame/docs/tut/tom/event-flowchart.pngbin5528 -> 0 bytes
-rwxr-xr-xpygame/docs/tut/tom/formulae.pngbin6763 -> 0 bytes
-rwxr-xr-xpygame/docs/tut/tom/games2.html315
-rwxr-xr-xpygame/docs/tut/tom/games3.html275
-rwxr-xr-xpygame/docs/tut/tom/games4.html368
-rwxr-xr-xpygame/docs/tut/tom/games5.html325
-rwxr-xr-xpygame/docs/tut/tom/games6.html515
-rwxr-xr-xpygame/docs/tut/tom/radians.pngbin17409 -> 0 bytes
-rwxr-xr-xpygame/examples/__init__.py0
-rwxr-xr-xpygame/examples/aacircle.py29
-rwxr-xr-xpygame/examples/aliens.py322
-rwxr-xr-xpygame/examples/arraydemo.py164
-rwxr-xr-xpygame/examples/blend_fill.py102
-rwxr-xr-xpygame/examples/blit_blends.py192
-rwxr-xr-xpygame/examples/camera.py71
-rwxr-xr-xpygame/examples/chimp.py194
-rwxr-xr-xpygame/examples/cursors.py99
-rwxr-xr-xpygame/examples/data/alien1.gifbin3826 -> 0 bytes
-rwxr-xr-xpygame/examples/data/alien1.jpgbin3103 -> 0 bytes
-rwxr-xr-xpygame/examples/data/alien1.pngbin3522 -> 0 bytes
-rwxr-xr-xpygame/examples/data/alien2.gifbin3834 -> 0 bytes
-rwxr-xr-xpygame/examples/data/alien2.pngbin3526 -> 0 bytes
-rwxr-xr-xpygame/examples/data/alien3.gifbin3829 -> 0 bytes
-rwxr-xr-xpygame/examples/data/alien3.pngbin3518 -> 0 bytes
-rwxr-xr-xpygame/examples/data/arraydemo.bmpbin76854 -> 0 bytes
-rwxr-xr-xpygame/examples/data/asprite.bmpbin578 -> 0 bytes
-rwxr-xr-xpygame/examples/data/background.gifbin9133 -> 0 bytes
-rwxr-xr-xpygame/examples/data/blue.mpgbin6144 -> 0 bytes
-rwxr-xr-xpygame/examples/data/bomb.gifbin1162 -> 0 bytes
-rwxr-xr-xpygame/examples/data/boom.wavbin12562 -> 0 bytes
-rwxr-xr-xpygame/examples/data/car_door.wavbin3910 -> 0 bytes
-rwxr-xr-xpygame/examples/data/chimp.bmpbin5498 -> 0 bytes
-rwxr-xr-xpygame/examples/data/danger.gifbin2761 -> 0 bytes
-rwxr-xr-xpygame/examples/data/explosion1.gifbin6513 -> 0 bytes
-rwxr-xr-xpygame/examples/data/fist.bmpbin4378 -> 0 bytes
-rwxr-xr-xpygame/examples/data/house_lo.mp3bin116320 -> 0 bytes
-rwxr-xr-xpygame/examples/data/house_lo.oggbin31334 -> 0 bytes
-rwxr-xr-xpygame/examples/data/house_lo.wavbin78464 -> 0 bytes
-rwxr-xr-xpygame/examples/data/liquid.bmpbin11734 -> 0 bytes
-rwxr-xr-xpygame/examples/data/midikeys.pngbin19666 -> 0 bytes
-rwxr-xr-xpygame/examples/data/oldplayer.gifbin1075 -> 0 bytes
-rwxr-xr-xpygame/examples/data/player1.gifbin3470 -> 0 bytes
-rwxr-xr-xpygame/examples/data/punch.wavbin4176 -> 0 bytes
-rwxr-xr-xpygame/examples/data/secosmic_lo.wavbin18700 -> 0 bytes
-rwxr-xr-xpygame/examples/data/shot.gifbin129 -> 0 bytes
-rwxr-xr-xpygame/examples/data/static.pngbin1202 -> 0 bytes
-rwxr-xr-xpygame/examples/data/whiff.wavbin5850 -> 0 bytes
-rwxr-xr-xpygame/examples/data/yuv_1.pgm6
-rwxr-xr-xpygame/examples/eventlist.py123
-rwxr-xr-xpygame/examples/fastevents.py130
-rwxr-xr-xpygame/examples/fonty.py101
-rwxr-xr-xpygame/examples/glcube.py109
-rwxr-xr-xpygame/examples/headless_no_windows_needed.py55
-rwxr-xr-xpygame/examples/liquid.py83
-rwxr-xr-xpygame/examples/mask.py176
-rwxr-xr-xpygame/examples/midi.py822
-rwxr-xr-xpygame/examples/moveit.py73
-rwxr-xr-xpygame/examples/movieplayer.py57
-rwxr-xr-xpygame/examples/oldalien.py237
-rwxr-xr-xpygame/examples/overlay.py62
-rwxr-xr-xpygame/examples/pixelarray.py114
-rwxr-xr-xpygame/examples/readme.txt65
-rwxr-xr-xpygame/examples/scaletest.py121
-rwxr-xr-xpygame/examples/scrap_clipboard.py82
-rwxr-xr-xpygame/examples/scroll.py195
-rwxr-xr-xpygame/examples/sound.py57
-rwxr-xr-xpygame/examples/sound_array_demos.py300
-rwxr-xr-xpygame/examples/stars.py95
-rwxr-xr-xpygame/examples/testsprite.py267
-rwxr-xr-xpygame/examples/vgrade.py98
-rwxr-xr-x[-rw-r--r--]pythonAPI/butiaAPI.py0
-rwxr-xr-x[-rw-r--r--]pythonAPI/butiaRemoto.py0
-rwxr-xr-x[-rw-r--r--]pythonAPI/butiaRemotoAccelOpenMoko.py0
-rwxr-xr-x[-rw-r--r--]pythonAPI/python_socket.py0
-rwxr-xr-x[-rw-r--r--]pythonAPI/test_boton4.py0
-rwxr-xr-x[-rw-r--r--]pythonAPI/test_butiaAPI.py0
-rwxr-xr-x[-rw-r--r--]pythonAPI/test_butiaAPI_modulos.py0
-rwxr-xr-x[-rw-r--r--]pythonAPI/test_comunic.py0
-rwxr-xr-x[-rw-r--r--]pythonAPI/test_inclinacion.py0
-rwxr-xr-x[-rw-r--r--]pythonAPI/test_luchador_sumo_aleatorio.py0
-rwxr-xr-x[-rw-r--r--]pythonAPI/test_seguidor_linea.py0
-rwxr-xr-x[-rw-r--r--]pythonAPI/test_seguidor_linea_2.py0
-rwxr-xr-x[-rw-r--r--]pythonAPI/test_sensor_grises.py0
-rwxr-xr-xsetup.py2
225 files changed, 446 insertions, 19531 deletions
diff --git a/MANIFEST b/MANIFEST
index 9e787e3..6fc14fb 100644
--- a/MANIFEST
+++ b/MANIFEST
@@ -1,321 +1,185 @@
-NEWS
-followme.py
activity.py
AUTHORS
-setup.py
-COPYING
butiaAPI.py
+COPYING
+followme.py
+NEWS
+setup.py
+locale/it/activity.linfo
+locale/it/LC_MESSAGES/uy.edu.fing.followme.mo
+locale/fr/activity.linfo
+locale/fr/LC_MESSAGES/uy.edu.fing.followme.mo
+locale/es/activity.linfo
+locale/es/LC_MESSAGES/uy.edu.fing.followme.mo
+locale/en/activity.linfo
+locale/en/LC_MESSAGES/uy.edu.fing.followme.mo
+locale/de/activity.linfo
+locale/de/LC_MESSAGES/uy.edu.fing.followme.mo
+activity/activity.info
+activity/followme.svg
+activity/permissions.info
+bin/activity-followme
+icons/grid-icon.svg
po/de.po
po/en.po
po/es.po
po/fr.po
po/it.po
-po/FollowMe.pot
-bin/activity-followme
-lua/lua
+po/FollowMeButia.pot
+sugargame/canvas.py
+sugargame/event.py
+sugargame/__init__.py
+pythonAPI/butiaAPI.py
+pythonAPI/butiaRemoto.py
+pythonAPI/butiaRemotoAccelG1.py
+pythonAPI/butiaRemotoAccelOpenMoko.py
+pythonAPI/butiaRemotoJoystick.py
+pythonAPI/python_socket.py
+pythonAPI/test_boton4.py
+pythonAPI/test_butiaAPI.py
+pythonAPI/test_butiaAPI_modulos.py
+pythonAPI/test_comunic.py
+pythonAPI/test_inclinacion.py
+pythonAPI/test_luchador_sumo_aleatorio.py
+pythonAPI/test_seguidor_linea.py
+pythonAPI/test_seguidor_linea_2.py
+pythonAPI/test_sensor_grises.py
+pythonAPI/waitforbobot.py
+pygame/base.so
+pygame/bufferproxy.so
+pygame/camera.py
+pygame/cdrom.so
+pygame/color.so
+pygame/colordict.py
+pygame/compat.py
+pygame/constants.so
+pygame/cursors.py
+pygame/display.so
+pygame/draw.so
+pygame/event.so
+pygame/fastevent.so
+pygame/font.so
+pygame/freesansbold.ttf
+pygame/gfxdraw.so
+pygame/image.so
+pygame/imageext.so
+pygame/install.html
+pygame/joystick.so
+pygame/key.so
+pygame/lgpl
+pygame/locals.py
+pygame/macosx.py
+pygame/mac_scrap.py
+pygame/mask.so
+pygame/midi.py
+pygame/mixer.so
+pygame/mixer_music.so
+pygame/mouse.so
+pygame/movie.so
+pygame/overlay.so
+pygame/pixelarray.so
+pygame/pkgdata.py
+pygame/pygame.ico
+pygame/pygame_icon.bmp
+pygame/pygame_icon.icns
+pygame/pygame_icon.svg
+pygame/pygame_icon.tiff
+pygame/pypm.so
+pygame/readme.html
+pygame/rect.so
+pygame/rwobject.so
+pygame/scrap.so
+pygame/sndarray.py
+pygame/sprite.py
+pygame/surface.so
+pygame/surfarray.py
+pygame/surflock.so
+pygame/sysfont.py
+pygame/time.so
+pygame/transform.so
+pygame/version.py
+pygame/_arraysurfarray.so
+pygame/_camera.so
+pygame/_camera_opencv_highgui.py
+pygame/_camera_vidcapture.py
+pygame/_numericsndarray.so
+pygame/_numericsurfarray.so
+pygame/_numpysndarray.py
+pygame/_numpysurfarray.py
+pygame/__init__.py
+pygame/gp2x/constants.py
+pygame/gp2x/locals.py
+pygame/gp2x/__init__.py
+pygame/threads/Py25Queue.py
+pygame/threads/__init__.py
+lua/bobot-server.lua
lua/bobot.lua
-lua/test_motores.lua
-lua/lubot-client.lua
-lua/lua_serialcomm.so
-lua/test_display.lua
-lua/test_grises.lua
-lua/test.lua
-lua/comms_usb.lua
+lua/bobot_baseboard.lua
+lua/bobot_device.lua
lua/comms_serial.lua
-lua/bobot-server.lua
+lua/comms_usb.lua
lua/libluausb.so
-lua/bobot_baseboard.lua
-lua/test-reset.lua
-lua/test_buzzer.lua
+lua/lua
+lua/lua_serialcomm.so
+lua/lubot-client-testMotorTm.lua
+lua/lubot-client-testPote.lua
+lua/lubot-client-testT0.lua
lua/lubot-client-tiempos.lua
-lua/test_led.lua
+lua/lubot-client.lua
+lua/test-reset.lua
+lua/test.lua
+lua/test_boton.lua
lua/test_butia.lua
-lua/test_sensor_grises_motor.lua
-lua/test_temp.lua
-lua/lubot-client-testMotorTm.lua
-lua/test_led_luz.lua
-lua/test_luz.lua
-lua/test_sensor_dig.lua
+lua/test_buzzer.lua
+lua/test_display.lua
+lua/test_grises.lua
lua/test_l1.lua
lua/test_l2.lua
lua/test_l3.lua
-lua/lubot-client-testPote.lua
lua/test_lback.lua
-lua/test_boton.lua
-lua/lubot-client-testT0.lua
-lua/bobot_device.lua
-lua/test_tilt.lua
-lua/test_sensor.lua
+lua/test_led.lua
+lua/test_led_luz.lua
+lua/test_luz.lua
lua/test_magnet.lua
-lua/lib/mime/core.so
-lua/lib/socket/core.so
-lua/share/socket.lua
-lua/share/ltn12.lua
-lua/share/mime.lua
-lua/share/socket/ftp.lua
-lua/share/socket/url.lua
-lua/share/socket/http.lua
-lua/share/socket/tp.lua
-lua/share/socket/smtp.lua
-lua/drivers/grises.lua
-lua/drivers/butia.lua
-lua/drivers/temp.lua
-lua/drivers/move.lua
-lua/drivers/lback.lua
+lua/test_motores.lua
+lua/test_sensor.lua
+lua/test_sensor_dig.lua
+lua/test_sensor_grises_motor.lua
+lua/test_temp.lua
+lua/test_tilt.lua
+lua/drivers/boot.lua
lua/drivers/boton.lua
+lua/drivers/butia.lua
lua/drivers/buzzer.lua
-lua/drivers/tilt.lua
-lua/drivers/boot.lua
-lua/drivers/motorTm.lua
+lua/drivers/display.lua
+lua/drivers/dist.lua
+lua/drivers/grises.lua
+lua/drivers/lback.lua
lua/drivers/led.lua
-lua/drivers/motores.lua
lua/drivers/ledA.lua
lua/drivers/ledR.lua
-lua/drivers/temp_lubot.lua
lua/drivers/ledV.lua
+lua/drivers/luz.lua
+lua/drivers/magnet.lua
+lua/drivers/motor.lua
+lua/drivers/motores.lua
lua/drivers/motorin.lua
-lua/drivers/display.lua
-lua/drivers/dist.lua
+lua/drivers/motorTm.lua
+lua/drivers/move.lua
lua/drivers/pote.lua
-lua/drivers/luz.lua
-lua/drivers/stmtr.lua
lua/drivers/puerta.lua
lua/drivers/sensor.lua
-lua/drivers/magnet.lua
-lua/drivers/motor.lua
-sugargame/event.py
-sugargame/__init__.py
-sugargame/canvas.py
-icons/grid-icon.svg
-locale/de/activity.linfo
-locale/de/LC_MESSAGES/uy.edu.fing.followme.mo
-locale/en/activity.linfo
-locale/en/LC_MESSAGES/uy.edu.fing.followme.mo
-locale/es/activity.linfo
-locale/es/LC_MESSAGES/uy.edu.fing.followme.mo
-locale/fr/activity.linfo
-locale/fr/LC_MESSAGES/uy.edu.fing.followme.mo
-locale/it/activity.linfo
-locale/it/LC_MESSAGES/uy.edu.fing.followme.mo
-activity/followme.svg
-activity/permissions.info
-activity/activity.info
-pygame/lgpl
-pygame/pypm.so
-pygame/rect.so
-pygame/_camera_opencv_highgui.py
-pygame/pygame_icon.bmp
-pygame/pygame_icon.svg
-pygame/gfxdraw.so
-pygame/imageext.so
-pygame/draw.so
-pygame/_camera_vidcapture.py
-pygame/fastevent.so
-pygame/mixer_music.so
-pygame/surface.so
-pygame/install.html
-pygame/cursors.py
-pygame/scrap.so
-pygame/sysfont.py
-pygame/time.so
-pygame/color.so
-pygame/font.so
-pygame/constants.so
-pygame/mouse.so
-pygame/movie.so
-pygame/_numericsndarray.so
-pygame/event.so
-pygame/_numpysurfarray.py
-pygame/joystick.so
-pygame/pygame.ico
-pygame/surfarray.py
-pygame/camera.py
-pygame/mac_scrap.py
-pygame/display.so
-pygame/sndarray.py
-pygame/__init__.py
-pygame/transform.so
-pygame/cdrom.so
-pygame/readme.html
-pygame/macosx.py
-pygame/compat.py
-pygame/mask.so
-pygame/bufferproxy.so
-pygame/midi.py
-pygame/freesansbold.ttf
-pygame/key.so
-pygame/pixelarray.so
-pygame/image.so
-pygame/locals.py
-pygame/mixer.so
-pygame/base.so
-pygame/_camera.so
-pygame/sprite.py
-pygame/_numericsurfarray.so
-pygame/surflock.so
-pygame/colordict.py
-pygame/pygame_icon.icns
-pygame/pygame_icon.tiff
-pygame/overlay.so
-pygame/pkgdata.py
-pygame/_numpysndarray.py
-pygame/rwobject.so
-pygame/version.py
-pygame/_arraysurfarray.so
-pygame/docs/__main__.py
-pygame/docs/pygame_powered.gif
-pygame/docs/pygame_small.gif
-pygame/docs/pygame_logo.gif
-pygame/docs/pygame_tiny.gif
-pygame/docs/logos.html
-pygame/docs/__init__.py
-pygame/docs/index.html
-pygame/docs/ref/font.html
-pygame/docs/ref/gfxdraw.html
-pygame/docs/ref/camera.html
-pygame/docs/ref/joystick.html
-pygame/docs/ref/surface.html
-pygame/docs/ref/rect.html
-pygame/docs/ref/scrap.html
-pygame/docs/ref/mixer.html
-pygame/docs/ref/locals.html
-pygame/docs/ref/sndarray.html
-pygame/docs/ref/music.html
-pygame/docs/ref/event.html
-pygame/docs/ref/pygame_cursor.html
-pygame/docs/ref/transform.html
-pygame/docs/ref/mouse.html
-pygame/docs/ref/image.html
-pygame/docs/ref/movie.html
-pygame/docs/ref/time.html
-pygame/docs/ref/pygame.html
-pygame/docs/ref/cursors.html
-pygame/docs/ref/tests.html
-pygame/docs/ref/examples.html
-pygame/docs/ref/overlay.html
-pygame/docs/ref/mask.html
-pygame/docs/ref/sprite.html
-pygame/docs/ref/surfarray.html
-pygame/docs/ref/index.html
-pygame/docs/ref/pixelarray.html
-pygame/docs/ref/color.html
-pygame/docs/ref/midi.html
-pygame/docs/ref/key.html
-pygame/docs/ref/draw.html
-pygame/docs/ref/cdrom.html
-pygame/docs/ref/display.html
-pygame/docs/tut/newbieguide.html
-pygame/docs/tut/DisplayModes.html
-pygame/docs/tut/SpriteIntro.html
-pygame/docs/tut/MoveIt.html
-pygame/docs/tut/ImportInit.html
-pygame/docs/tut/tom/basic.png
-pygame/docs/tut/tom/games2.html
-pygame/docs/tut/tom/games3.html
-pygame/docs/tut/tom/games4.html
-pygame/docs/tut/tom/games5.html
-pygame/docs/tut/tom/games6.html
-pygame/docs/tut/tom/MakeGames.html
-pygame/docs/tut/tom/radians.png
-pygame/docs/tut/tom/formulae.png
-pygame/docs/tut/tom/event-flowchart.png
-pygame/docs/tut/chimp/chimpshot.gif
-pygame/docs/tut/chimp/chimp.py.html
-pygame/docs/tut/chimp/ChimpLineByLine.html
-pygame/docs/tut/intro/freedom.jpg
-pygame/docs/tut/intro/intro.html
-pygame/docs/tut/intro/ball.gif
-pygame/docs/tut/intro/blade.jpg
-pygame/docs/tut/surfarray/scaleup.jpg
-pygame/docs/tut/surfarray/flipped.jpg
-pygame/docs/tut/surfarray/SurfarrayIntro.html
-pygame/docs/tut/surfarray/soften.jpg
-pygame/docs/tut/surfarray/imgarray.jpg
-pygame/docs/tut/surfarray/xfade.jpg
-pygame/docs/tut/surfarray/scaledown.jpg
-pygame/docs/tut/surfarray/redimg.jpg
-pygame/docs/tut/surfarray/allblack.jpg
-pygame/docs/tut/surfarray/striped.jpg
-pygame/gp2x/constants.py
-pygame/gp2x/__init__.py
-pygame/gp2x/locals.py
-pygame/threads/Py25Queue.py
-pygame/threads/__init__.py
-pygame/examples/moveit.py
-pygame/examples/sound.py
-pygame/examples/testsprite.py
-pygame/examples/arraydemo.py
-pygame/examples/liquid.py
-pygame/examples/cursors.py
-pygame/examples/aliens.py
-pygame/examples/scrap_clipboard.py
-pygame/examples/movieplayer.py
-pygame/examples/stars.py
-pygame/examples/camera.py
-pygame/examples/__init__.py
-pygame/examples/scroll.py
-pygame/examples/eventlist.py
-pygame/examples/fastevents.py
-pygame/examples/scaletest.py
-pygame/examples/blend_fill.py
-pygame/examples/fonty.py
-pygame/examples/glcube.py
-pygame/examples/mask.py
-pygame/examples/headless_no_windows_needed.py
-pygame/examples/chimp.py
-pygame/examples/midi.py
-pygame/examples/aacircle.py
-pygame/examples/readme.txt
-pygame/examples/oldalien.py
-pygame/examples/sound_array_demos.py
-pygame/examples/pixelarray.py
-pygame/examples/blit_blends.py
-pygame/examples/vgrade.py
-pygame/examples/overlay.py
-pygame/examples/data/car_door.wav
-pygame/examples/data/alien1.gif
-pygame/examples/data/alien1.jpg
-pygame/examples/data/alien1.png
-pygame/examples/data/alien2.gif
-pygame/examples/data/alien2.png
-pygame/examples/data/alien3.gif
-pygame/examples/data/alien3.png
-pygame/examples/data/midikeys.png
-pygame/examples/data/arraydemo.bmp
-pygame/examples/data/liquid.bmp
-pygame/examples/data/punch.wav
-pygame/examples/data/fist.bmp
-pygame/examples/data/house_lo.mp3
-pygame/examples/data/house_lo.ogg
-pygame/examples/data/house_lo.wav
-pygame/examples/data/blue.mpg
-pygame/examples/data/danger.gif
-pygame/examples/data/bomb.gif
-pygame/examples/data/boom.wav
-pygame/examples/data/player1.gif
-pygame/examples/data/asprite.bmp
-pygame/examples/data/background.gif
-pygame/examples/data/shot.gif
-pygame/examples/data/chimp.bmp
-pygame/examples/data/secosmic_lo.wav
-pygame/examples/data/yuv_1.pgm
-pygame/examples/data/explosion1.gif
-pygame/examples/data/static.png
-pygame/examples/data/whiff.wav
-pygame/examples/data/oldplayer.gif
-pythonAPI/test_luchador_sumo_aleatorio.py
-pythonAPI/test_seguidor_linea.py
-pythonAPI/python_socket.py
-pythonAPI/test_comunic.py
-pythonAPI/test_butiaAPI_modulos.py
-pythonAPI/test_sensor_grises.py
-pythonAPI/test_inclinacion.py
-pythonAPI/waitforbobot.py
-pythonAPI/test_seguidor_linea_2.py
-pythonAPI/butiaRemotoAccelOpenMoko.py
-pythonAPI/butiaAPI.py
-pythonAPI/butiaRemotoAccelG1.py
-pythonAPI/butiaRemotoJoystick.py
-pythonAPI/test_boton4.py
-pythonAPI/butiaRemoto.py
-pythonAPI/test_butiaAPI.py
+lua/drivers/stmtr.lua
+lua/drivers/temp.lua
+lua/drivers/temp_lubot.lua
+lua/drivers/tilt.lua
+lua/lib/mime/core.so
+lua/lib/socket/core.so
+lua/share/ltn12.lua
+lua/share/mime.lua
+lua/share/socket.lua
+lua/share/socket/ftp.lua
+lua/share/socket/http.lua
+lua/share/socket/smtp.lua
+lua/share/socket/tp.lua
+lua/share/socket/url.lua
diff --git a/NEWS b/NEWS
index 90bc591..b27cd71 100644
--- a/NEWS
+++ b/NEWS
@@ -1,5 +1,12 @@
-3
+4
+* Se cambia el nombre de la actividad a: FollowMe Butia, para diferenciarlo
+de otra actividad llamada igual.
+* Se depura la libreria Pygame. Se quitan ejemplos innecesarios.
+* Se corrige la tabulaciones del codigo, en algunos casos habia espacios.
+* Se pasa de una ruta estatica a una dinamica para poder ejecutar el codigo
+en cualquier directorio.
+3
* Se agrega internacionalizacion del codigo. Ademas de Español, se traduce al Ingles,
Frances, Aleman e Italiano. Se deja el archivo FollowMe.pot para agregar mas
traducciones.
@@ -12,16 +19,13 @@ de deteccion. En el modo calibrar no se oculta la captura.
de muestra de captura en pantalla.
2
-
* Se agrega un sh para levantar el servidor LUA automaticamente con la actividad.
* Se reduce el tiempo de espera del servidor de 20 segundos a 10 para que la actividad
se inicie mas rapido.
1
-
* Version sugarizada con ayuda de sugargame
* Se agregan opciones para modificar parametros en tiempo de ejecución
0
-
-* Version inicial de prueba
+* Version inicial de prueba \ No newline at end of file
diff --git a/activity.py b/activity.py
index 4af70c3..23b430f 100755
--- a/activity.py
+++ b/activity.py
@@ -1,8 +1,8 @@
#! /usr/bin/env python
# -*- coding: utf-8 -*-
#
-# FollowMe
-# Copyright (C) 2010
+# FollowMe Butia
+# Copyright (C) 2010, 2011
# This program was created to use with the robot Butia.
# Butia is a project from Facultad de Ingenieria - Uruguay
# Facultad de Ingenieria web site: <http://www.fing.edu.uy/>
@@ -27,8 +27,9 @@
# Rodrigo Dearmas <piegrande46@hotmail.com>
+import os
import sys
-sys.path.insert(0, '/home/olpc/Activities/FollowMe.activity')
+sys.path.insert(0, os.curdir)
import re
import gtk
import pygame
@@ -79,13 +80,13 @@ class Activity(activity.Activity):
# creamos el primer item
item1 = gtk.ToolItem()
# creamos la etiqueta para calibrar
- self.etiqueta1 = gtk.Label()
+ self.etiqueta1 = gtk.Label()
# le ponemos el texto Calibrar
- self.etiqueta1.set_text(_(' Calibrar '))
+ self.etiqueta1.set_text(_(' Calibrar '))
# agrego la etiqueta al item
item1.add(self.etiqueta1)
# inserto el item en la barra
- barra.insert(item1, 0)
+ barra.insert(item1, 0)
# insertamos el boton parar
barra.insert(parar, 1)
# creamos el segundo item
@@ -103,15 +104,15 @@ class Activity(activity.Activity):
# creo un cuadro de entrada
self.pixeles = gtk.Entry()
# colocamos 10 al comienzo
- self.pixeles.set_text('10')
+ self.pixeles.set_text('10')
# ponemos alineacion derecha
- self.pixeles.set_alignment(1)
+ self.pixeles.set_alignment(1)
# ponemos ancho de 3 caracteres
- self.pixeles.set_width_chars(3)
+ self.pixeles.set_width_chars(3)
# conectamos el cuadro con el evento insertar
self.pixeles.connect('insert-text', self.pixeles_insertar)
# conectamos el cuadro con el elemento activar
- self.pixeles.connect('activate', self.pixeles_activar)
+ self.pixeles.connect('activate', self.pixeles_activar)
# agrego el cuadro al item
item3.add(self.pixeles)
# inserto el item en la barra
@@ -119,19 +120,19 @@ class Activity(activity.Activity):
# creo un separador
separador = gtk.SeparatorToolItem()
# que tenga una linea
- separador.props.draw = True
+ separador.props.draw = True
# inserto el separador
- barra.insert(separador, 4)
+ barra.insert(separador, 4)
# creo el item 5
item5 = gtk.ToolItem()
# creo la etiqueta para umbral
- self.etiqueta5 = gtk.Label()
+ self.etiqueta5 = gtk.Label()
# le coloco el texto Umbral
- self.etiqueta5.set_text(_(' Umbral: Rojo '))
+ self.etiqueta5.set_text(_(' Umbral: Rojo '))
# agrego la etiqueta al item
- item5.add(self.etiqueta5)
+ item5.add(self.etiqueta5)
# inserto el item en la barra
- barra.insert(item5, 5)
+ barra.insert(item5, 5)
# creo el sexto item
item6 = gtk.ToolItem()
# creo un cuadro para el Rojo
@@ -151,21 +152,21 @@ class Activity(activity.Activity):
# creo el septimo item
item7 = gtk.ToolItem()
# creo la etiqueta para el verde
- self.etiqueta7 = gtk.Label()
+ self.etiqueta7 = gtk.Label()
# le coloco G de verde
self.etiqueta7.set_text(_(' Verde '))
# coloco la etiqueta en el item
item7.add(self.etiqueta7)
# coloco el item en la barra
- barra.insert(item7, 7)
+ barra.insert(item7, 7)
# creo el octavo item
item8 = gtk.ToolItem()
# creo el cuadro para el verde
- self.cverde = gtk.SpinButton()
+ self.cverde = gtk.SpinButton()
# coloco el rango 0 a 255
- self.cverde.set_range(0, 255)
+ self.cverde.set_range(0, 255)
# coloco el incremento de a 1
- self.cverde.set_increments(1, 10)
+ self.cverde.set_increments(1, 10)
# pongo al comienzo el valor del verde del umbral
self.cverde.props.value = self.umbral[1]
# conecto el cuadro con el evento verde_valor
@@ -177,21 +178,21 @@ class Activity(activity.Activity):
# creo el noveno item
item9 = gtk.ToolItem()
# creo la etiqueta para el azul
- self.etiqueta9 = gtk.Label()
+ self.etiqueta9 = gtk.Label()
# coloco el texto B
- self.etiqueta9.set_text(_(' Azul '))
- # inserto la etiqueta en el item
+ self.etiqueta9.set_text(_(' Azul '))
+ # inserto la etiqueta en el item
item9.add(self.etiqueta9)
# inserto el item en la barra
- barra.insert(item9, 9)
+ barra.insert(item9, 9)
# creo el decimo item
item10 = gtk.ToolItem()
# creo un cuadro para el azul
- self.cazul = gtk.SpinButton()
+ self.cazul = gtk.SpinButton()
# coloco el rango 0 a 255
- self.cazul.set_range(0, 255)
+ self.cazul.set_range(0, 255)
# coloco el incremento en 1
- self.cazul.set_increments(1, 10)
+ self.cazul.set_increments(1, 10)
# al comienzo coloco azul del umbral
self.cazul.props.value = self.umbral[2]
# conecto el cuadro al evento cazul_valor
@@ -199,7 +200,7 @@ class Activity(activity.Activity):
# agrego el cuadro al item
item10.add(self.cazul)
# inserto el item en la barra
- barra.insert(item10, 10)
+ barra.insert(item10, 10)
# obtengo la caja de la actividad
caja = activity.ActivityToolbox(self)
# obtengo la barra de Actividad
@@ -212,62 +213,62 @@ class Activity(activity.Activity):
barra_actividad.remove(barra_actividad.share)
# le coloco none
barra_actividad.share = None
- # alacaja le agregamos nuestra barra de Opciones
- caja.add_toolbar(_('Opciones'), barra)
+ # a la caja le agregamos nuestra barra de Opciones
+ caja.add_toolbar(_('Opciones'), barra)
# obteenmos la barra
- barra2 = gtk.Toolbar()
- # creamos el primer item
- it1 = gtk.ToolItem()
- # creamos la etiqueta para calibrar
- self.et1 = gtk.Label()
- # le ponemos el texto Calibrar
- self.et1.set_text(_(' Tamanio de muestra '))
- # agrego la etiqueta al item
- it1.add(self.et1)
- # inserto el item en la barra
- barra2.insert(it1, 0)
- # creo el decimo item
- it2 = gtk.ToolItem()
- # creo un cuadro para el azul
- self.tmx = gtk.SpinButton()
- # coloco el rango 0 a 255
- self.tmx.set_range(160, 1200)
- # coloco el incremento en 1
- self.tmx.set_increments(1, 10)
- # al comienzo coloco azul del umbral
- self.tmx.props.value = 960
- # conecto el cuadro al evento cazul_valor
- self.tamx = self.tmx.connect('notify::value', self.tmx_mod)
- # agrego el cuadro al item
- it2.add(self.tmx)
+ barra2 = gtk.Toolbar()
+ # creamos el primer item
+ it1 = gtk.ToolItem()
+ # creamos la etiqueta para calibrar
+ self.et1 = gtk.Label()
+ # le ponemos el texto Calibrar
+ self.et1.set_text(_(' Tamanio de muestra '))
+ # agrego la etiqueta al item
+ it1.add(self.et1)
+ # inserto el item en la barra
+ barra2.insert(it1, 0)
+ # creo el decimo item
+ it2 = gtk.ToolItem()
+ # creo un cuadro para el azul
+ self.tmx = gtk.SpinButton()
+ # coloco el rango 0 a 255
+ self.tmx.set_range(160, 1200)
+ # coloco el incremento en 1
+ self.tmx.set_increments(1, 10)
+ # al comienzo coloco azul del umbral
+ self.tmx.props.value = 960
+ # conecto el cuadro al evento cazul_valor
+ self.tamx = self.tmx.connect('notify::value', self.tmx_mod)
+ # agrego el cuadro al item
+ it2.add(self.tmx)
# inserto el item a la barra
barra2.insert(it2, 1)
# creamos el primer item
- it3 = gtk.ToolItem()
- # creamos la etiqueta para calibrar
- self.et2 = gtk.Label()
- # le ponemos el texto Calibrar
- self.et2.set_text(' X ')
- # agrego la etiqueta al item
- it3.add(self.et2)
- # inserto el item en la barra
- barra2.insert(it3, 2)
+ it3 = gtk.ToolItem()
+ # creamos la etiqueta para calibrar
+ self.et2 = gtk.Label()
+ # le ponemos el texto Calibrar
+ self.et2.set_text(' X ')
+ # agrego la etiqueta al item
+ it3.add(self.et2)
+ # inserto el item en la barra
+ barra2.insert(it3, 2)
# creo el decimo item
- it4 = gtk.ToolItem()
- # creo un cuadro para el azul
- self.tmy = gtk.SpinButton()
- # coloco el rango 0 a 255
- self.tmy.set_range(120, 900)
- # coloco el incremento en 1
- self.tmy.set_increments(1, 10)
- # al comienzo coloco azul del umbral
- self.tmy.props.value = 720
- # conecto el cuadro al evento cazul_valor
- self.tamy = self.tmy.connect('notify::value', self.tmy_mod)
- # agrego el cuadro al item
- it4.add(self.tmy)
- # inserto el item a la barra
- barra2.insert(it4, 3)
+ it4 = gtk.ToolItem()
+ # creo un cuadro para el azul
+ self.tmy = gtk.SpinButton()
+ # coloco el rango 0 a 255
+ self.tmy.set_range(120, 900)
+ # coloco el incremento en 1
+ self.tmy.set_increments(1, 10)
+ # al comienzo coloco azul del umbral
+ self.tmy.props.value = 720
+ # conecto el cuadro al evento cazul_valor
+ self.tamy = self.tmy.connect('notify::value', self.tmy_mod)
+ # agrego el cuadro al item
+ it4.add(self.tmy)
+ # inserto el item a la barra
+ barra2.insert(it4, 3)
# creamos el quinto item
it5 = gtk.ToolItem()
# creamos la etiqueta para mostrar lineas
@@ -305,9 +306,9 @@ class Activity(activity.Activity):
# agrego la barra2 a la caja (toolbar)
caja.add_toolbar(_('Resolucion'), barra2)
# la mostramos
- caja.show_all()
- # le ponemos la caja
- self.set_toolbox(caja)
+ caja.show_all()
+ # le ponemos la caja
+ self.set_toolbox(caja)
def pixeles_insertar(self, entry, text, length, position):
# si no es un numero
@@ -403,4 +404,4 @@ class Activity(activity.Activity):
boton.set_icon('media-playback-stop')
# ponemos como mensaje Ocultar
boton.set_tooltip(_('Ocultar'))
- self.actividad.poner_muestra(self.mostrar)
+ self.actividad.poner_muestra(self.mostrar) \ No newline at end of file
diff --git a/activity/activity.info b/activity/activity.info
index a102ac6..5cfad8d 100755..100644
--- a/activity/activity.info
+++ b/activity/activity.info
@@ -1,11 +1,9 @@
[Activity]
-name = FollowMe
-activity_version = 3
-host_version = 3
+name = FollowMe Butia
+activity_version = 4
bundle_id = uy.edu.fing.followme
service_name = uy.edu.fing.followme
exec = activity-followme
-update_url =
show_launcher = yes
icon = followme
license = GPLv2+
diff --git a/butiaAPI.py b/butiaAPI.py
index ec18d3a..33f7932 100755
--- a/butiaAPI.py
+++ b/butiaAPI.py
@@ -1,7 +1,7 @@
#! /usr/bin/env python
# -*- coding: utf-8 -*-
#
-# Butia 2010
+# Butia 2010, 2011
# This is a part of program to use with the robot Butia.
# Butia is a project from Facultad de Ingenieria - Uruguay
# Facultad de Ingenieria web site: <http://www.fing.edu.uy/>
@@ -19,7 +19,7 @@
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
-#version 2_0 //agrega funcionalidades para manejar nuevos drivers
+# version 2_0 //agrega funcionalidades para manejar nuevos drivers
import socket
@@ -273,6 +273,4 @@ class robot:
except:
print "Operation error"
finally:
- return ret
-
-
+ return ret \ No newline at end of file
diff --git a/followme.py b/followme.py
index e29f346..ae1e500 100755
--- a/followme.py
+++ b/followme.py
@@ -1,8 +1,8 @@
#! /usr/bin/env python
# -*- coding: utf-8 -*-
#
-# FollowMe
-# Copyright (C) 2010
+# FollowMe Butia
+# Copyright (C) 2010, 2011
# This program was created to use with the robot Butia.
# Butia is a project from Facultad de Ingenieria - Uruguay
# Facultad de Ingenieria web site: <http://www.fing.edu.uy/>
@@ -38,23 +38,23 @@ tamanioc = (320, 240)
class Captura(object):
- def __init__(self, tamanio):
- # creamos una superfcie para usarla de pantalla
+ def __init__(self, tamanio):
+ # creamos una superfcie para usarla de pantalla
self.pantalla = pygame.display.get_surface()
# creamos una superficie para la captura
self.captura = pygame.surface.Surface(tamanioc, 0, self.pantalla)
- # inicializamos el modulo pygame de la camara
- pygame.camera.init()
- # obtenemos la lista de camaras
- self.lcamaras = pygame.camera.list_cameras()
- # si no hay ninguna camara
- if not self.lcamaras:
- # mandamos el error correspondiente
- print _('No se encontro ninguna camara.')
- else:
- # creamos la camara, con tamanio y modo color RGB
- self.cam = pygame.camera.Camera(self.lcamaras[0], tamanioc, 'RGB')
- # iniciamos la camara
+ # inicializamos el modulo pygame de la camara
+ pygame.camera.init()
+ # obtenemos la lista de camaras
+ self.lcamaras = pygame.camera.list_cameras()
+ # si no hay ninguna camara
+ if not self.lcamaras:
+ # mandamos el error correspondiente
+ print _('No se encontro ninguna camara.')
+ else:
+ # creamos la camara, con tamanio y modo color RGB
+ self.cam = pygame.camera.Camera(self.lcamaras[0], tamanioc, 'RGB')
+ # iniciamos la camara
self.cam.start()
# calculamos las proporciones
self.calc(tamanio)
@@ -82,44 +82,44 @@ class Captura(object):
self.tyd = self.tamaniom[1] / 3
def calibrar(self):
- # guardamos una captura
- self.captura = self.cam.get_image(self.captura)
- # giramos la captura, en el horizontal
- self.captura = pygame.transform.flip(self.captura,True,False)
+ # guardamos una captura
+ self.captura = self.cam.get_image(self.captura)
+ # giramos la captura, en el horizontal
+ self.captura = pygame.transform.flip(self.captura,True,False)
# colocamos la captura en la pantalla
- self.pantalla.blit(self.captura, (0,0))
- # dibujamos un rectangulo en el centro de la pantalla
- rect = pygame.draw.rect(self.pantalla, (255,0,0), (self.xc,self.yc,50,50), 4)
- # obtenemos el color promedio dentro del rectangulo
- self.color = pygame.transform.average_color(self.captura, rect)
- # rellenamos la pantalla con un color homogeneo
- self.pantalla.fill((84,185,72))
+ self.pantalla.blit(self.captura, (0,0))
+ # dibujamos un rectangulo en el centro de la pantalla
+ rect = pygame.draw.rect(self.pantalla, (255,0,0), (self.xc,self.yc,50,50), 4)
+ # obtenemos el color promedio dentro del rectangulo
+ self.color = pygame.transform.average_color(self.captura, rect)
+ # rellenamos la pantalla con un color homogeneo
+ self.pantalla.fill((84,185,72))
# escalamos captura al tamanio tamaniom
self.captura2 = pygame.transform.scale(self.captura, (int(self.tamaniom[0]), int(self.tamaniom[1])))
- # colocamos la captura 2 en la pantalla
- self.pantalla.blit(self.captura2, (self.xblit, self.yblit))
- # dibujamos un rectangulo en el centro de la pantalla
- rect = pygame.draw.rect(self.pantalla, (255,0,0), (575,355,50,50), 4)
+ # colocamos la captura 2 en la pantalla
+ self.pantalla.blit(self.captura2, (self.xblit, self.yblit))
+ # dibujamos un rectangulo en el centro de la pantalla
+ rect = pygame.draw.rect(self.pantalla, (255,0,0), (575,355,50,50), 4)
# rellenamos la esquina superior con el color calibrado
- self.pantalla.fill(self.color, (0,0,120,120))
+ self.pantalla.fill(self.color, (0,0,120,120))
# recuadramos el color para resaltarlo
rect = pygame.draw.rect(self.pantalla, (0,0,0), (0,0,120,120), 4)
def obtener_posicion(self, umbral, pixeles):
- # guardamos una captura
- self.captura = self.cam.get_image(self.captura)
+ # guardamos una captura
+ self.captura = self.cam.get_image(self.captura)
# giro la captura en el horizontal
- self.captura = pygame.transform.flip(self.captura,True,False)
- # creamos una mascara con la captura con color y umbral especificados
- mascara = pygame.mask.from_threshold(self.captura, self.color, umbral)
- # dejamos la mancha conexa mas grande
- conexa = mascara.connected_component()
- # si la mancha tiene al menos tantos pixeles
- if (conexa.count() > pixeles):
- # devolvemos el centro de la mancha
- return mascara.centroid()
- else:
- # sino devolvemos un centro ficticio
+ self.captura = pygame.transform.flip(self.captura,True,False)
+ # creamos una mascara con la captura con color y umbral especificados
+ mascara = pygame.mask.from_threshold(self.captura, self.color, umbral)
+ # dejamos la mancha conexa mas grande
+ conexa = mascara.connected_component()
+ # si la mancha tiene al menos tantos pixeles
+ if (conexa.count() > pixeles):
+ # devolvemos el centro de la mancha
+ return mascara.centroid()
+ else:
+ # sino devolvemos un centro ficticio
return (-1,-1)
def mostrar_posicion(self, pos):
@@ -127,10 +127,10 @@ class Captura(object):
x, y = pos
# escalo la captura para mostrar
self.captura2 = pygame.transform.scale(self.captura, (int(self.tamaniom[0]), int(self.tamaniom[1])))
- # si es una posicion valida
- if (x != -1):
- # creo un punto para mostrar la posicion
- rect = pygame.draw.rect(self.captura2, (255,0,0), (x*self.c1, y*self.c2, 20, 20), 16)
+ # si es una posicion valida
+ if (x != -1):
+ # creo un punto para mostrar la posicion
+ rect = pygame.draw.rect(self.captura2, (255,0,0), (x*self.c1, y*self.c2, 20, 20), 16)
# rellenamos la pantalla con un color homogeneo
self.pantalla.fill((84,185,72))
# si hay que mostrar la grilla
@@ -140,9 +140,9 @@ class Captura(object):
# muestro la captura en pantalla
self.pantalla.blit(self.captura2, (self.xblit, self.yblit))
# rellenamos la esquina superior con el color calibrado
- self.pantalla.fill(self.color, (0,0,120,120))
+ self.pantalla.fill(self.color, (0,0,120,120))
# recuadramos el color para resaltarlo
- rect = pygame.draw.rect(self.pantalla, (0,0,0), (0,0,120,120), 4)
+ rect = pygame.draw.rect(self.pantalla, (0,0,0), (0,0,120,120), 4)
def dibujar_grilla(self):
# dibujo las zonas verticales
@@ -170,18 +170,18 @@ class Robot(object):
self.z2 = tamanioc[1] / 3
# obtenemos el robot
self.butiabot = butiaAPI.robot()
- # listamos los modulos
- self.modulos = self.butiabot.listarModulos()
- # si hay modulos
- if (self.modulos != -1):
- # imprimimos la lista de modulos
- print self.modulos
- # abrimos los sensores
- self.butiabot.abrirSensor()
- # abrimos los motores
- self.butiabot.abrirMotores()
- else:
- # sino se encuentra
+ # listamos los modulos
+ self.modulos = self.butiabot.listarModulos()
+ # si hay modulos
+ if (self.modulos != -1):
+ # imprimimos la lista de modulos
+ print self.modulos
+ # abrimos los sensores
+ self.butiabot.abrirSensor()
+ # abrimos los motores
+ self.butiabot.abrirMotores()
+ else:
+ # sino se encuentra
print _('No se detecto al robot Butia.')
def mover_robot(self, pos):
@@ -245,86 +245,87 @@ class Robot(object):
class FollowMe:
- def __init__(self):
- # para manejar la tasa de refresco
- self.clock = pygame.time.Clock()
- # comienzo calibrando
- self.calibrando = True
+ def __init__(self):
+ # para manejar la tasa de refresco
+ self.clock = pygame.time.Clock()
+ # comienzo calibrando
+ self.calibrando = True
- def modocalibrando(self, calibrando):
- # seteo el calibrando local
- self.calibrando = calibrando
- # si no hay que mostrar
- if (self.mostrar == False):
- # limpio la pantalla
- self.c.limpiar()
+ def modocalibrando(self, calibrando):
+ # seteo el calibrando local
+ self.calibrando = calibrando
+ # si no hay que mostrar
+ if (self.mostrar == False):
+ # limpio la pantalla
+ self.c.limpiar()
- def poner_umbral(self, umbral):
- # guardo el umbral en el local
- self.umbral = umbral
-
- def poner_pixeles(self, pixeles):
- # seteo la cantidad de pixeles local
- self.pixeles = pixeles
+ def poner_umbral(self, umbral):
+ # guardo el umbral en el local
+ self.umbral = umbral
- def poner_tamaniom(self, tam):
- # seteo el tamanio local con tam
- self.tamaniom = tam
- self.c.calc(tam)
+ def poner_pixeles(self, pixeles):
+ # seteo la cantidad de pixeles local
+ self.pixeles = pixeles
- def poner_grilla(self, grilla):
- # seteo la variable local
- self.c.mostrar_grilla = grilla
+ def poner_tamaniom(self, tam):
+ # seteo el tamanio local con tam
+ self.tamaniom = tam
+ self.c.calc(tam)
- def poner_muestra(self, muestra):
- # seteo la variable local
- self.mostrar = muestra
- # si no hay que mostrar
- if (self.mostrar == False):
- # limpio la pantalla
- self.c.limpiar()
+ def poner_grilla(self, grilla):
+ # seteo la variable local
+ self.c.mostrar_grilla = grilla
- def run(self):
- # creamos el robot
- r = Robot()
- # establecemos un valor de umbral de color
- self.umbral = (25, 25, 25)
- # establezco un numero de pixeles inicial
- self.pixeles = 10
- # establezco un tamaño incial
- self.tamanioi = (960.0, 720.0)
- self.mostrar = True
- # creamos una captura
- self.c = Captura(self.tamanioi)
- # obligamos a que se ejecute el while
- ejecutar = True
- # mientras ejecutar
- while ejecutar:
- # Pump GTK messages.
- while gtk.events_pending():
- gtk.main_iteration()
- # Pump PyGame messages.
- for event in pygame.event.get():
- if event.type == pygame.QUIT:
- # salgo
- return
- elif event.type == pygame.VIDEORESIZE:
- pygame.display.set_mode(event.size, pygame.RESIZABLE)
- # si es calibrar
- if (self.calibrando):
- # calibro la camara
- self.c.calibrar()
- else:
- # obtengo la posicion
- pos = self.c.obtener_posicion(self.umbral, self.pixeles)
- if self.mostrar:
- # muestro la posicion en pantalla
- self.c.mostrar_posicion(pos)
+ def poner_muestra(self, muestra):
+ # seteo la variable local
+ self.mostrar = muestra
+ # si no hay que mostrar
+ if (self.mostrar == False):
+ # limpio la pantalla
+ self.c.limpiar()
+
+ def run(self):
+ # creamos el robot
+ r = Robot()
+ # establecemos un valor de umbral de color
+ self.umbral = (25, 25, 25)
+ # establezco un numero de pixeles inicial
+ self.pixeles = 10
+ # establezco un tamaño incial
+ self.tamanioi = (960.0, 720.0)
+ self.mostrar = True
+ # creamos una captura
+ self.c = Captura(self.tamanioi)
+ # obligamos a que se ejecute el while
+ ejecutar = True
+ # mientras ejecutar
+ while ejecutar:
+ # Pump GTK messages.
+ while gtk.events_pending():
+ gtk.main_iteration()
+ # Pump PyGame messages.
+ for event in pygame.event.get():
+ if event.type == pygame.QUIT:
+ # salgo
+ return
+ elif event.type == pygame.VIDEORESIZE:
+ pygame.display.set_mode(event.size, pygame.RESIZABLE)
+ # si es calibrar
+ if (self.calibrando):
+ # calibro la camara
+ self.c.calibrar()
+ else:
+ # obtengo la posicion
+ pos = self.c.obtener_posicion(self.umbral, self.pixeles)
+ # si hay que mostrar la captura en pantalla
+ if self.mostrar:
+ # muestro la posicion en pantalla
+ self.c.mostrar_posicion(pos)
# si esta el butia conectado
if (r.modulos != -1):
# movemos el robot
r.mover_robot(pos)
- # actualizo la pantalla
- pygame.display.flip()
- # seteo a 10 CPS (CuadrosPorSegundo)
- self.clock.tick(10)
+ # actualizo la pantalla
+ pygame.display.flip()
+ # seteo a 10 CPS (CuadrosPorSegundo)
+ self.clock.tick(10)
diff --git a/locale/de/LC_MESSAGES/uy.edu.fing.followme.mo b/locale/de/LC_MESSAGES/uy.edu.fing.followme.mo
index 3e8aa24..d185cf3 100644
--- a/locale/de/LC_MESSAGES/uy.edu.fing.followme.mo
+++ b/locale/de/LC_MESSAGES/uy.edu.fing.followme.mo
Binary files differ
diff --git a/locale/de/activity.linfo b/locale/de/activity.linfo
index 310ab1a..496cbb1 100644
--- a/locale/de/activity.linfo
+++ b/locale/de/activity.linfo
@@ -1,2 +1,2 @@
[Activity]
-name = FollowMe
+name = FollowMe Butia
diff --git a/locale/en/LC_MESSAGES/uy.edu.fing.followme.mo b/locale/en/LC_MESSAGES/uy.edu.fing.followme.mo
index 1ac899c..b40dd5a 100644
--- a/locale/en/LC_MESSAGES/uy.edu.fing.followme.mo
+++ b/locale/en/LC_MESSAGES/uy.edu.fing.followme.mo
Binary files differ
diff --git a/locale/en/activity.linfo b/locale/en/activity.linfo
index 310ab1a..496cbb1 100644
--- a/locale/en/activity.linfo
+++ b/locale/en/activity.linfo
@@ -1,2 +1,2 @@
[Activity]
-name = FollowMe
+name = FollowMe Butia
diff --git a/locale/es/LC_MESSAGES/uy.edu.fing.followme.mo b/locale/es/LC_MESSAGES/uy.edu.fing.followme.mo
index a3571e7..da71202 100644
--- a/locale/es/LC_MESSAGES/uy.edu.fing.followme.mo
+++ b/locale/es/LC_MESSAGES/uy.edu.fing.followme.mo
Binary files differ
diff --git a/locale/es/activity.linfo b/locale/es/activity.linfo
index 310ab1a..496cbb1 100644
--- a/locale/es/activity.linfo
+++ b/locale/es/activity.linfo
@@ -1,2 +1,2 @@
[Activity]
-name = FollowMe
+name = FollowMe Butia
diff --git a/locale/fr/LC_MESSAGES/uy.edu.fing.followme.mo b/locale/fr/LC_MESSAGES/uy.edu.fing.followme.mo
index e10e522..b68ea66 100644
--- a/locale/fr/LC_MESSAGES/uy.edu.fing.followme.mo
+++ b/locale/fr/LC_MESSAGES/uy.edu.fing.followme.mo
Binary files differ
diff --git a/locale/fr/activity.linfo b/locale/fr/activity.linfo
index 310ab1a..496cbb1 100644
--- a/locale/fr/activity.linfo
+++ b/locale/fr/activity.linfo
@@ -1,2 +1,2 @@
[Activity]
-name = FollowMe
+name = FollowMe Butia
diff --git a/locale/it/LC_MESSAGES/uy.edu.fing.followme.mo b/locale/it/LC_MESSAGES/uy.edu.fing.followme.mo
index 301fbbd..56d765f 100644
--- a/locale/it/LC_MESSAGES/uy.edu.fing.followme.mo
+++ b/locale/it/LC_MESSAGES/uy.edu.fing.followme.mo
Binary files differ
diff --git a/locale/it/activity.linfo b/locale/it/activity.linfo
index 310ab1a..496cbb1 100644
--- a/locale/it/activity.linfo
+++ b/locale/it/activity.linfo
@@ -1,2 +1,2 @@
[Activity]
-name = FollowMe
+name = FollowMe Butia
diff --git a/lua/bobot-server.lua b/lua/bobot-server.lua
index 0a51177..0a51177 100644..100755
--- a/lua/bobot-server.lua
+++ b/lua/bobot-server.lua
diff --git a/lua/bobot.lua b/lua/bobot.lua
index 26775ee..26775ee 100644..100755
--- a/lua/bobot.lua
+++ b/lua/bobot.lua
diff --git a/lua/bobot_baseboard.lua b/lua/bobot_baseboard.lua
index 792c04a..792c04a 100644..100755
--- a/lua/bobot_baseboard.lua
+++ b/lua/bobot_baseboard.lua
diff --git a/lua/bobot_device.lua b/lua/bobot_device.lua
index 531d6b9..531d6b9 100644..100755
--- a/lua/bobot_device.lua
+++ b/lua/bobot_device.lua
diff --git a/lua/comms_serial.lua b/lua/comms_serial.lua
index 4b61302..4b61302 100644..100755
--- a/lua/comms_serial.lua
+++ b/lua/comms_serial.lua
diff --git a/lua/comms_usb.lua b/lua/comms_usb.lua
index 8a4790f..8a4790f 100644..100755
--- a/lua/comms_usb.lua
+++ b/lua/comms_usb.lua
diff --git a/lua/drivers/boot.lua b/lua/drivers/boot.lua
index 2471ab9..2471ab9 100644..100755
--- a/lua/drivers/boot.lua
+++ b/lua/drivers/boot.lua
diff --git a/lua/drivers/boton.lua b/lua/drivers/boton.lua
index af90ee6..af90ee6 100644..100755
--- a/lua/drivers/boton.lua
+++ b/lua/drivers/boton.lua
diff --git a/lua/drivers/butia.lua b/lua/drivers/butia.lua
index 8e8916f..8e8916f 100644..100755
--- a/lua/drivers/butia.lua
+++ b/lua/drivers/butia.lua
diff --git a/lua/drivers/dist.lua b/lua/drivers/dist.lua
index 7c25fe1..7c25fe1 100644..100755
--- a/lua/drivers/dist.lua
+++ b/lua/drivers/dist.lua
diff --git a/lua/drivers/grises.lua b/lua/drivers/grises.lua
index 48bcda1..48bcda1 100644..100755
--- a/lua/drivers/grises.lua
+++ b/lua/drivers/grises.lua
diff --git a/lua/drivers/lback.lua b/lua/drivers/lback.lua
index 9f903b1..9f903b1 100644..100755
--- a/lua/drivers/lback.lua
+++ b/lua/drivers/lback.lua
diff --git a/lua/drivers/led.lua b/lua/drivers/led.lua
index eea73a5..eea73a5 100644..100755
--- a/lua/drivers/led.lua
+++ b/lua/drivers/led.lua
diff --git a/lua/drivers/luz.lua b/lua/drivers/luz.lua
index ed14e26..ed14e26 100644..100755
--- a/lua/drivers/luz.lua
+++ b/lua/drivers/luz.lua
diff --git a/lua/drivers/magnet.lua b/lua/drivers/magnet.lua
index e70b69c..e70b69c 100644..100755
--- a/lua/drivers/magnet.lua
+++ b/lua/drivers/magnet.lua
diff --git a/lua/drivers/motor.lua b/lua/drivers/motor.lua
index c1a86d6..c1a86d6 100644..100755
--- a/lua/drivers/motor.lua
+++ b/lua/drivers/motor.lua
diff --git a/lua/drivers/motorTm.lua b/lua/drivers/motorTm.lua
index 9343855..9343855 100644..100755
--- a/lua/drivers/motorTm.lua
+++ b/lua/drivers/motorTm.lua
diff --git a/lua/drivers/motores.lua b/lua/drivers/motores.lua
index 48103fc..48103fc 100644..100755
--- a/lua/drivers/motores.lua
+++ b/lua/drivers/motores.lua
diff --git a/lua/drivers/motorin.lua b/lua/drivers/motorin.lua
index 042f3cc..042f3cc 100644..100755
--- a/lua/drivers/motorin.lua
+++ b/lua/drivers/motorin.lua
diff --git a/lua/drivers/move.lua b/lua/drivers/move.lua
index 7c361e3..7c361e3 100644..100755
--- a/lua/drivers/move.lua
+++ b/lua/drivers/move.lua
diff --git a/lua/drivers/pote.lua b/lua/drivers/pote.lua
index 9800e5a..9800e5a 100644..100755
--- a/lua/drivers/pote.lua
+++ b/lua/drivers/pote.lua
diff --git a/lua/drivers/puerta.lua b/lua/drivers/puerta.lua
index 1d3e726..1d3e726 100644..100755
--- a/lua/drivers/puerta.lua
+++ b/lua/drivers/puerta.lua
diff --git a/lua/drivers/sensor.lua b/lua/drivers/sensor.lua
index d4df8d4..d4df8d4 100644..100755
--- a/lua/drivers/sensor.lua
+++ b/lua/drivers/sensor.lua
diff --git a/lua/drivers/stmtr.lua b/lua/drivers/stmtr.lua
index 9bd9b40..9bd9b40 100644..100755
--- a/lua/drivers/stmtr.lua
+++ b/lua/drivers/stmtr.lua
diff --git a/lua/drivers/temp.lua b/lua/drivers/temp.lua
index 09ffe9f..09ffe9f 100644..100755
--- a/lua/drivers/temp.lua
+++ b/lua/drivers/temp.lua
diff --git a/lua/drivers/temp_lubot.lua b/lua/drivers/temp_lubot.lua
index 7c3d0ee..7c3d0ee 100644..100755
--- a/lua/drivers/temp_lubot.lua
+++ b/lua/drivers/temp_lubot.lua
diff --git a/lua/drivers/tilt.lua b/lua/drivers/tilt.lua
index 1076479..1076479 100644..100755
--- a/lua/drivers/tilt.lua
+++ b/lua/drivers/tilt.lua
diff --git a/lua/lubot-client-testMotorTm.lua b/lua/lubot-client-testMotorTm.lua
index fd1a74f..fd1a74f 100644..100755
--- a/lua/lubot-client-testMotorTm.lua
+++ b/lua/lubot-client-testMotorTm.lua
diff --git a/lua/lubot-client-testPote.lua b/lua/lubot-client-testPote.lua
index 56919ea..56919ea 100644..100755
--- a/lua/lubot-client-testPote.lua
+++ b/lua/lubot-client-testPote.lua
diff --git a/lua/lubot-client-testT0.lua b/lua/lubot-client-testT0.lua
index 7e94248..7e94248 100644..100755
--- a/lua/lubot-client-testT0.lua
+++ b/lua/lubot-client-testT0.lua
diff --git a/lua/lubot-client-tiempos.lua b/lua/lubot-client-tiempos.lua
index 643532b..643532b 100644..100755
--- a/lua/lubot-client-tiempos.lua
+++ b/lua/lubot-client-tiempos.lua
diff --git a/lua/lubot-client.lua b/lua/lubot-client.lua
index 407a257..407a257 100644..100755
--- a/lua/lubot-client.lua
+++ b/lua/lubot-client.lua
diff --git a/lua/test-reset.lua b/lua/test-reset.lua
index e8ac0cb..e8ac0cb 100644..100755
--- a/lua/test-reset.lua
+++ b/lua/test-reset.lua
diff --git a/lua/test.lua b/lua/test.lua
index d0c586d..d0c586d 100644..100755
--- a/lua/test.lua
+++ b/lua/test.lua
diff --git a/lua/test_boton.lua b/lua/test_boton.lua
index 61d7932..61d7932 100644..100755
--- a/lua/test_boton.lua
+++ b/lua/test_boton.lua
diff --git a/lua/test_butia.lua b/lua/test_butia.lua
index a7c663f..a7c663f 100644..100755
--- a/lua/test_butia.lua
+++ b/lua/test_butia.lua
diff --git a/lua/test_buzzer.lua b/lua/test_buzzer.lua
index c6f7ac4..c6f7ac4 100644..100755
--- a/lua/test_buzzer.lua
+++ b/lua/test_buzzer.lua
diff --git a/lua/test_display.lua b/lua/test_display.lua
index 6104103..6104103 100644..100755
--- a/lua/test_display.lua
+++ b/lua/test_display.lua
diff --git a/lua/test_grises.lua b/lua/test_grises.lua
index 0190394..0190394 100644..100755
--- a/lua/test_grises.lua
+++ b/lua/test_grises.lua
diff --git a/lua/test_l1.lua b/lua/test_l1.lua
index 4aa1cb0..4aa1cb0 100644..100755
--- a/lua/test_l1.lua
+++ b/lua/test_l1.lua
diff --git a/lua/test_l2.lua b/lua/test_l2.lua
index 4d626d9..4d626d9 100644..100755
--- a/lua/test_l2.lua
+++ b/lua/test_l2.lua
diff --git a/lua/test_l3.lua b/lua/test_l3.lua
index 1f3bb79..1f3bb79 100644..100755
--- a/lua/test_l3.lua
+++ b/lua/test_l3.lua
diff --git a/lua/test_lback.lua b/lua/test_lback.lua
index 4a0cd37..4a0cd37 100644..100755
--- a/lua/test_lback.lua
+++ b/lua/test_lback.lua
diff --git a/lua/test_led.lua b/lua/test_led.lua
index 6ebe915..6ebe915 100644..100755
--- a/lua/test_led.lua
+++ b/lua/test_led.lua
diff --git a/lua/test_led_luz.lua b/lua/test_led_luz.lua
index 01ee205..01ee205 100644..100755
--- a/lua/test_led_luz.lua
+++ b/lua/test_led_luz.lua
diff --git a/lua/test_luz.lua b/lua/test_luz.lua
index 151fe0d..151fe0d 100644..100755
--- a/lua/test_luz.lua
+++ b/lua/test_luz.lua
diff --git a/lua/test_magnet.lua b/lua/test_magnet.lua
index 81d4dbf..81d4dbf 100644..100755
--- a/lua/test_magnet.lua
+++ b/lua/test_magnet.lua
diff --git a/lua/test_motores.lua b/lua/test_motores.lua
index eba531a..eba531a 100644..100755
--- a/lua/test_motores.lua
+++ b/lua/test_motores.lua
diff --git a/lua/test_sensor.lua b/lua/test_sensor.lua
index f11e922..f11e922 100644..100755
--- a/lua/test_sensor.lua
+++ b/lua/test_sensor.lua
diff --git a/lua/test_sensor_dig.lua b/lua/test_sensor_dig.lua
index 079b484..079b484 100644..100755
--- a/lua/test_sensor_dig.lua
+++ b/lua/test_sensor_dig.lua
diff --git a/lua/test_sensor_grises_motor.lua b/lua/test_sensor_grises_motor.lua
index 2b0f939..2b0f939 100644..100755
--- a/lua/test_sensor_grises_motor.lua
+++ b/lua/test_sensor_grises_motor.lua
diff --git a/lua/test_temp.lua b/lua/test_temp.lua
index 519e640..519e640 100644..100755
--- a/lua/test_temp.lua
+++ b/lua/test_temp.lua
diff --git a/lua/test_tilt.lua b/lua/test_tilt.lua
index 7be6590..7be6590 100644..100755
--- a/lua/test_tilt.lua
+++ b/lua/test_tilt.lua
diff --git a/po/FollowMe.pot b/po/FollowMeButia.pot
index 341f6b5..78c08d4 100644
--- a/po/FollowMe.pot
+++ b/po/FollowMeButia.pot
@@ -1,14 +1,14 @@
-# FollowMe translation
-# Copyright (C) 2010, Alan Aguiar, Ayleen Ricca, Rodrigo Dearmas
+# FollowMe Butia translation
+# Copyright (C) 2010, 2011 Alan Aguiar, Ayleen Ricca, Rodrigo Dearmas
# This file is distributed under GPL license.
-# Alan Aguiar <alanjas@gmail.com>, 2010.
-# Aylen Ricca <ar18_90@hotmail.com>, 2010.
-# Rodrigo Dearmas <piegrande46@hotmail.com>, 2010.
+# Alan Aguiar <alanjas@gmail.com>, 2010, 2011.
+# Aylen Ricca <ar18_90@hotmail.com>, 2010, 2011.
+# Rodrigo Dearmas <piegrande46@hotmail.com>, 2010, 2011.
#
#, fuzzy
msgid ""
msgstr ""
-"Project-Id-Version: 3\n"
+"Project-Id-Version: 4\n"
"Report-Msgid-Bugs-To: alanjas@gmail.com\n"
"POT-Creation-Date: 2010-11-25 19:55-0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
@@ -19,8 +19,8 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
#: activity/activity.info:2
-msgid "FollowMe"
-msgstr "FollowMe"
+msgid "FollowMe Butia"
+msgstr "FollowMe Butia"
#: followme.py:53
msgid "No se encontro ninguna camara."
diff --git a/po/de.po b/po/de.po
index 074b6b2..d40ccfd 100644
--- a/po/de.po
+++ b/po/de.po
@@ -1,13 +1,13 @@
-# FollowMe translation
-# Copyright (C) 2010, Alan Aguiar, Ayleen Ricca, Rodrigo Dearmas
+# FollowMe Butia translation
+# Copyright (C) 2010, 2011 Alan Aguiar, Ayleen Ricca, Rodrigo Dearmas
# This file is distributed under GPL license.
-# Alan Aguiar <alanjas@gmail.com>, 2010.
-# Aylen Ricca <ar18_90@hotmail.com>, 2010.
-# Rodrigo Dearmas <piegrande46@hotmail.com>, 2010.
+# Alan Aguiar <alanjas@gmail.com>, 2010, 2011.
+# Aylen Ricca <ar18_90@hotmail.com>, 2010, 2011.
+# Rodrigo Dearmas <piegrande46@hotmail.com>, 2010, 2011.
#
msgid ""
msgstr ""
-"Project-Id-Version: 3\n"
+"Project-Id-Version: 4\n"
"Report-Msgid-Bugs-To: alanjas@gmail.com\n"
"POT-Creation-Date: 2010-11-25 19:55-0200\n"
"PO-Revision-Date: 2010-11-25 20:01-0200\n"
@@ -19,8 +19,8 @@ msgstr ""
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: activity/activity.info:2
-msgid "FollowMe"
-msgstr "FollowMe"
+msgid "FollowMe Butia"
+msgstr "FollowMe Butia"
#: followme.py:53
msgid "No se encontro ninguna camara."
diff --git a/po/en.po b/po/en.po
index 42aea97..7c34773 100644
--- a/po/en.po
+++ b/po/en.po
@@ -1,13 +1,13 @@
-# FollowMe translation
-# Copyright (C) 2010, Alan Aguiar, Ayleen Ricca, Rodrigo Dearmas
+# FollowMe Butia translation
+# Copyright (C) 2010, 2011 Alan Aguiar, Ayleen Ricca, Rodrigo Dearmas
# This file is distributed under GPL license.
-# Alan Aguiar <alanjas@gmail.com>, 2010.
-# Aylen Ricca <ar18_90@hotmail.com>, 2010.
-# Rodrigo Dearmas <piegrande46@hotmail.com>, 2010.
+# Alan Aguiar <alanjas@gmail.com>, 2010, 2011.
+# Aylen Ricca <ar18_90@hotmail.com>, 2010, 2011.
+# Rodrigo Dearmas <piegrande46@hotmail.com>, 2010, 2011.
#
msgid ""
msgstr ""
-"Project-Id-Version: 3\n"
+"Project-Id-Version: 4\n"
"Report-Msgid-Bugs-To: alanjas@gmail.com\n"
"POT-Creation-Date: 2010-11-25 19:55-0200\n"
"PO-Revision-Date: 2010-11-25 20:02-0200\n"
@@ -19,8 +19,8 @@ msgstr ""
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: activity/activity.info:2
-msgid "FollowMe"
-msgstr "FollowMe"
+msgid "FollowMe Butia"
+msgstr "FollowMe Butia"
#: followme.py:53
msgid "No se encontro ninguna camara."
diff --git a/po/es.po b/po/es.po
index 09f3755..153ed20 100644
--- a/po/es.po
+++ b/po/es.po
@@ -1,9 +1,9 @@
-# FollowMe translation
-# Copyright (C) 2010, Alan Aguiar, Ayleen Ricca, Rodrigo Dearmas
+# FollowMe Butia translation
+# Copyright (C) 2010, 2011 Alan Aguiar, Ayleen Ricca, Rodrigo Dearmas
# This file is distributed under GPL license.
-# Alan Aguiar <alanjas@gmail.com>, 2010.
-# Aylen Ricca <ar18_90@hotmail.com>, 2010.
-# Rodrigo Dearmas <piegrande46@hotmail.com>, 2010.
+# Alan Aguiar <alanjas@gmail.com>, 2010, 2011.
+# Aylen Ricca <ar18_90@hotmail.com>, 2010, 2011.
+# Rodrigo Dearmas <piegrande46@hotmail.com>, 2010, 2011.
#
msgid ""
msgstr ""
@@ -19,8 +19,8 @@ msgstr ""
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: activity/activity.info:2
-msgid "FollowMe"
-msgstr "FollowMe"
+msgid "FollowMe Butia"
+msgstr "FollowMe Butia"
#: followme.py:53
msgid "No se encontro ninguna camara."
diff --git a/po/fr.po b/po/fr.po
index e1732c3..5b1fb06 100644
--- a/po/fr.po
+++ b/po/fr.po
@@ -1,13 +1,13 @@
-# FollowMe translation
-# Copyright (C) 2010, Alan Aguiar, Ayleen Ricca, Rodrigo Dearmas
+# FollowMe Butia translation
+# Copyright (C) 2010, 2011 Alan Aguiar, Ayleen Ricca, Rodrigo Dearmas
# This file is distributed under GPL license.
-# Alan Aguiar <alanjas@gmail.com>, 2010.
-# Aylen Ricca <ar18_90@hotmail.com>, 2010.
-# Rodrigo Dearmas <piegrande46@hotmail.com>, 2010.
+# Alan Aguiar <alanjas@gmail.com>, 2010, 2011.
+# Aylen Ricca <ar18_90@hotmail.com>, 2010, 2011.
+# Rodrigo Dearmas <piegrande46@hotmail.com>, 2010, 2011.
#
msgid ""
msgstr ""
-"Project-Id-Version: 3\n"
+"Project-Id-Version: 4\n"
"Report-Msgid-Bugs-To: alanjas@gmail.com\n"
"POT-Creation-Date: 2010-11-25 19:55-0200\n"
"PO-Revision-Date: 2010-11-25 20:02-0200\n"
@@ -19,8 +19,8 @@ msgstr ""
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
#: activity/activity.info:2
-msgid "FollowMe"
-msgstr "FollowMe"
+msgid "FollowMe Butia"
+msgstr "FollowMe Butia"
#: followme.py:53
msgid "No se encontro ninguna camara."
diff --git a/po/it.po b/po/it.po
index 06286a9..6dd635a 100644
--- a/po/it.po
+++ b/po/it.po
@@ -1,13 +1,13 @@
-# FollowMe translation
-# Copyright (C) 2010, Alan Aguiar, Ayleen Ricca, Rodrigo Dearmas
+# FollowMe Butia translation
+# Copyright (C) 2010, 2011 Alan Aguiar, Ayleen Ricca, Rodrigo Dearmas
# This file is distributed under GPL license.
-# Alan Aguiar <alanjas@gmail.com>, 2010.
-# Aylen Ricca <ar18_90@hotmail.com>, 2010.
-# Rodrigo Dearmas <piegrande46@hotmail.com>, 2010.
+# Alan Aguiar <alanjas@gmail.com>, 2010, 2011.
+# Aylen Ricca <ar18_90@hotmail.com>, 2010, 2011.
+# Rodrigo Dearmas <piegrande46@hotmail.com>, 2010, 2011.
#
msgid ""
msgstr ""
-"Project-Id-Version: 3\n"
+"Project-Id-Version: 4\n"
"Report-Msgid-Bugs-To: alanjas@gmail.com\n"
"POT-Creation-Date: 2010-11-25 19:55-0200\n"
"PO-Revision-Date: 2010-11-25 20:02-0200\n"
@@ -19,8 +19,8 @@ msgstr ""
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: activity/activity.info:2
-msgid "FollowMe"
-msgstr "FollowMe"
+msgid "FollowMe Butia"
+msgstr "FollowMe Butia"
#: followme.py:53
msgid "No se encontro ninguna camara."
diff --git a/pygame/docs/__init__.py b/pygame/docs/__init__.py
deleted file mode 100755
index d15632f..0000000
--- a/pygame/docs/__init__.py
+++ /dev/null
@@ -1,12 +0,0 @@
-# Make docs a package that brings up the main page in a web brower when
-# executed.
-#
-# python -m pygame.docs
-
-if __name__ == '__main__':
- import os
- pkg_dir = os.path.dirname(os.path.abspath(__file__))
- main = os.path.join(pkg_dir, '__main__.py')
- execfile(main)
-
-
diff --git a/pygame/docs/__main__.py b/pygame/docs/__main__.py
deleted file mode 100755
index 7b16f47..0000000
--- a/pygame/docs/__main__.py
+++ /dev/null
@@ -1,22 +0,0 @@
-# python -m pygame.docs
-
-import os
-import webbrowser
-try:
- from urllib.parse import urlunparse, quote
-except ImportError:
- from urlparse import urlunparse
- from urllib import quote
-
-def iterpath(path):
- path, last = os.path.split(path)
- if last:
- for p in iterpath(path):
- yield p
- yield last
-
-pkg_dir = os.path.dirname(os.path.abspath(__file__))
-main_page = os.path.join(pkg_dir, 'index.html')
-url_path = quote('/'.join(iterpath(main_page)))
-url = urlunparse(('file', '', url_path, '', '', ''))
-webbrowser.open(url)
diff --git a/pygame/docs/index.html b/pygame/docs/index.html
deleted file mode 100755
index 932ceca..0000000
--- a/pygame/docs/index.html
+++ /dev/null
@@ -1,158 +0,0 @@
-<html>
-<title>Pygame Documentation</title>
-<body bgcolor="#aaeebb" text="#000000" link="#331111" vlink="#331111">
-
- <table cellpadding="0" cellspacing="0" border="0" style="border: 3px solid black;" width="100%">
- <tr><td bgcolor="#c2fc20" style="padding: 6px;" align="center"
- valign="center">
- <a href="http://www.pygame.org/"><img src="pygame_tiny.gif" border="0"
- width="200" height="60"></a><br>
- <b>pygame documentation</b>
- </td>
- <td bgcolor="#6aee28" style="border-left: 3px solid black; padding: 6px;"
- align="center" valign="center">
- ||&nbsp;
- <a href="http://www.pygame.org">Pygame Home</a> &nbsp;||&nbsp;
- <a href="index.html">Help Contents</a> &nbsp;||
- <a href="ref/index.html">Reference Index</a> &nbsp;||
- <br>&nbsp;<br>
-
- <a href="ref/cdrom.html">Cdrom</a>&nbsp;||&nbsp;
- <a href="ref/color.html">Color</a>&nbsp;||&nbsp;
- <a href="ref/cursors.html">Cursors</a>&nbsp;||&nbsp;
- <a href="ref/display.html">Display</a>&nbsp;||&nbsp;
- <a href="ref/draw.html">Draw</a>&nbsp;||&nbsp;
- <a href="ref/event.html">Event</a>&nbsp;||&nbsp;
- <a href="ref/examples.html">Examples</a>&nbsp;||&nbsp;
- <a href="ref/font.html">Font</a>&nbsp;||&nbsp;
- <a href="ref/gfxdraw.html">Gfxdraw</a>&nbsp;||&nbsp;
- <a href="ref/image.html">Image</a>&nbsp;||&nbsp;
- <a href="ref/joystick.html">Joystick</a>&nbsp;||&nbsp;
- <a href="ref/key.html">Key</a>&nbsp;||&nbsp;
- <a href="ref/locals.html">Locals</a>&nbsp;||&nbsp;
- <a href="ref/mask.html">Mask</a>&nbsp;||&nbsp;
- <a href="ref/mixer.html">Mixer</a>&nbsp;||&nbsp;
- <a href="ref/mouse.html">Mouse</a>&nbsp;||&nbsp;
- <a href="ref/movie.html">Movie</a>&nbsp;||&nbsp;
- <a href="ref/music.html">Music</a>&nbsp;||&nbsp;
- <a href="ref/overlay.html">Overlay</a>&nbsp;||&nbsp;
- <a href="ref/pygame.html">Pygame</a>&nbsp;||&nbsp;
- <a href="ref/pixelarray.html">Pixelarray</a>&nbsp;||&nbsp;
- <a href="ref/rect.html">Rect</a>&nbsp;||&nbsp;
- <a href="ref/scrap.html">Scrap</a>&nbsp;||&nbsp;
- <a href="ref/sndarray.html">Sndarray</a>&nbsp;||&nbsp;
- <a href="ref/sprite.html">Sprite</a>&nbsp;||&nbsp;
- <a href="ref/surface.html">Surface</a>&nbsp;||&nbsp;
- <a href="ref/surfarray.html">Surfarray</a>&nbsp;||&nbsp;
- <a href="ref/tests.html">Tests</a>&nbsp;||&nbsp;
- <a href="ref/time.html">Time</a>&nbsp;||&nbsp;
- <a href="ref/transform.html">Transform</a>
-
- </td>
- </tr>
-</table>
-<br>
-
-<h2>Documents</h2>
-<dl>
-<dt><a href="../readme.html">Readme</a></dt><dd> Basic information about
-Pygame, what it is, who is involved, and and where to find it.</dd>
-
-<dt><a href="../install.html">Install</a></dt><dd> Steps needed to compile
-Pygame on several platforms. Also help on finding and installing
-prebuilt binaries for your systems.</dd>
-
-<dt><a href="../LGPL">LGPL License</a></dt><dd> This is the license Pygame is
-distributed under. It provides for Pygame to be distributed with open
-source and commercial software. Generally, if Pygame is not changed, it
-can be used with any type of program.</dd>
-
-</dl><br>
-
-
-<h2>Tutorials</h2>
-<dl>
-
-<dt><a href="tut/intro/intro.html">Introduction to Pygame</a></dt><dd> An
-introduction to the basics of Pygame. This is written for users of
-Python and appeared in volume two of the Py magazine.</dd>
-
-<dt><a href="tut/ImportInit.html">Import and Initialize</a></dt><dd> The
-beginning steps on importing and initializing Pygame. The Pygame package
-is made of several modules. Some modules are not included on all
-platforms.</dd>
-
-<dt><a href="tut/MoveIt.html">How do I move an Image?</a></dt><dd> A basic
-tutorial that covers the concepts behind 2D computer
-animation. Information about drawing and clearing objects to make them
-appear animated.</dd>
-
-<dt><a href="tut/chimp/ChimpLineByLine.html">Chimp Tutorial, Line by
-Line</a></dt><dd> The pygame examples includes a simple program with an
-interactive fist and a monkey. This was insprired by the annoying flash
-banner of the early 2000's. This tutorial examines every line of code
-used in the example.</dd>
-
-<dt><a href="tut/SpriteIntro.html">Sprite Module Introduction</a></dt><dd>
-Pygame includes a higher level sprite module to help organize games. The
-sprite module includes several classes that help manage details found in
-almost all game types. The Sprite classes are a bit more advanced than
-the regular Pygame modules, and need more understanding to be properly
-used.</dd>
-
-
-<dt><a href="tut/surfarray/SurfarrayIntro.html">Surfarray
-Introduction</a></dt><dd> Pygame uses the Numeric python module to allow
-efficient per pixel effects on images. Using the surface arrays is an
-advanced feature that allows custom effects and filters. This also
-examines some of the simple effects from the Pygame example,
-arraydemo.py.</dd>
-
-<dt><a href="tut/camera/CameraIntro.html">Camera Module Introduction</a>
-</dt><dd>Pygame, as of 1.9, has a camera module that allows you to capture
-images, watch live streams, and do some basic computer vision. This tutorial
-covers those use cases.</dd>
-
-<dt><a href="tut/newbieguide.html">Newbie Guide</a></dt><dd> A list of
-thirteen helpful tips for people to get comfortable using Pygame.</dd>
-
-<dt><a href="tut/tom/MakeGames.html">Making Games Tutorial</a></dt><dd> A
-larger tutorial that covers the bigger topics needed to create an entire
-game.</dd>
-
-</dl><br>
-
-<h2>Reference</h2>
-<dl>
- <dt><a href="ref/index.html">Index</a></dt><dd> A list of all functions, classes, and methods in the Pygame package.</dd>
- <dt><a href="ref/cdrom.html">Cdrom</a></dt><dd> How to access and control the CD audio devices.</dd>
- <dt><a href="ref/color.html">Color</a></dt><dd> Color representation.</dd>
- <dt><a href="ref/cursors.html">Cursors</a></dt><dd> Loading and compiling cursor images.</dd>
- <dt><a href="ref/display.html">Display</a></dt><dd> Configuring the display surface.</dd>
- <dt><a href="ref/draw.html">Draw</a></dt><dd> Drawing simple shapes like lines and ellipses to surfaces.</dd>
- <dt><a href="ref/event.html">Event</a></dt><dd> Manage the incoming events from various input devices and the windowing platform.</dd>
- <dt><a href="ref/examples.html">Examples</a></dt><dd> Various programs demonstrating the use of individual pygame modules.</dd>
- <dt><a href="ref/font.html">Font</a></dt><dd> Loading and rendering Truetype fonts.</dd>
- <dt><a href="ref/gfxdraw.html">Gfxdraw</a></dt><dd> Anti-aliasing draw functions.</dd>
- <dt><a href="ref/image.html">Image</a></dt><dd> Loading, saving, and transferring of surfaces.</dd>
- <dt><a href="ref/joystick.html">Joystick</a></dt><dd> Manage the joystick devices.</dd>
- <dt><a href="ref/key.html">Key</a></dt><dd> Manage the keyboard device.</dd>
- <dt><a href="ref/locals.html">Locals</a></dt><dd> Pygame constants.</dd>
- <dt><a href="ref/mixer.html">Mixer</a></dt><dd> Load and play sounds.</dd>
- <dt><a href="ref/mouse.html">Mouse</a></dt><dd> Manage the mouse device and display.</dd>
- <dt><a href="ref/movie.html">Movie</a></dt><dd> Video playback from MPEG movies.</dd>
- <dt><a href="ref/music.html">Music</a></dt><dd> Play streaming music tracks.</dd>
- <dt><a href="ref/overlay.html">Overlay</a></dt><dd> Access advanced video overlays</dd>
- <dt><a href="ref/pygame.html">Pygame</a></dt><dd> Top level functions to manage Pygame.</dd>
- <dt><a href="ref/pixelarray.html">PixelArray</a></dt><dd>Manipulate image pixel data.</dd>
- <dt><a href="ref/rect.html">Rect</a></dt><dd> Flexible container for a rectangle.</dd>
- <dt><a href="ref/scrap.html">Scrap</a></dt><dd> Native clipboard access.</dd>
- <dt><a href="ref/sndarray.html">Sndarray</a></dt><dd> Manipulate sound sample data.</dd>
- <dt><a href="ref/sprite.html">Sprite</a></dt><dd> Higher level objects to represent game images.</dd>
- <dt><a href="ref/surface.html">Surface</a></dt><dd> Objects for images and the screen.</dd>
- <dt><a href="ref/surfarray.html">Surfarray</a></dt><dd> Manipulate image pixel data.</dd>
- <dt><a href="ref/tests.html">Tests</a></dt><dd> Test Pygame.</dd>
- <dt><a href="ref/time.html">Time</a></dt><dd> Manage timing and framerate.</dd>
- <dt><a href="ref/transform.html">Transform</a></dt><dd> Resize and move images.</dd>
-</dl>
-</body></html>
diff --git a/pygame/docs/logos.html b/pygame/docs/logos.html
deleted file mode 100755
index 211af40..0000000
--- a/pygame/docs/logos.html
+++ /dev/null
@@ -1,44 +0,0 @@
-<html> <title>Pygame Logos</title><!--
-Pygame Logos
---><body bgcolor=#aaeebb text=#000000 link=#331111 vlink=#331111>
-
-
-<table cellpadding=0 cellspacing=0 border=0 style='border: 3px solid black;' width='100%'>
-<tr>
-<td bgcolor='#c2fc20' style='padding: 6px;' align=center valign=center><a href='http://www.pygame.org/'><img src='../pygame_tiny.gif' border=0 width=200 height=60></a><br><b>pygame logos</b></td>
-<td bgcolor='#6aee28' style='border-left: 3px solid black; padding: 6px;' align=center valign=center>
-
-These logos are available for use in your own game projects.
-Please put them up wherever you see fit. The logo was created
-by TheCorruptor on July 29, 2001.
-
-
-</td></tr></table>
-
-<p align=center>
-There is a higher resolution layered photoshop image
-available <a href=http://www.pygame.org/ftp/pygame_logo.psd>here</a>.
-<i>(1.3 MB)</i></p>
-
-<table width=100%><tr><td colspan=2 align=center>
- <img src=pygame_logo.gif width=676 height=200><br>
- <b><a href=pygame_logo.gif>pygame_logo.gif</a></b> - 676 x 200<br>
-</td></tr><tr><td align=center><br>
- <img src=pygame_small.gif width=338 height=100><br>
- <b><a href=pygame_small.gif>pygame_small.gif</a></b> - 338 x 100<br>
-</td><td align=center><br>
- <img src=pygame_tiny.gif width=200 height=60><br>
- <b><a href=pygame_tiny.gif>pygame_tiny.gif</a></b> - 200 x 60<br>
-</td></tr></table>
-
-<p align=center>
-<img src=pygame_powered.gif width=250 height=100><br>
-<b><a href=pygame_powered.gif>pygame_powered.gif</a></b> - 250 x 100<br>
-</p><br>&nbsp;<br>
-
-
-
-
-
-
-</body></html>
diff --git a/pygame/docs/pygame_logo.gif b/pygame/docs/pygame_logo.gif
deleted file mode 100755
index 63d2e77..0000000
--- a/pygame/docs/pygame_logo.gif
+++ /dev/null
Binary files differ
diff --git a/pygame/docs/pygame_powered.gif b/pygame/docs/pygame_powered.gif
deleted file mode 100755
index 5a2bb5f..0000000
--- a/pygame/docs/pygame_powered.gif
+++ /dev/null
Binary files differ
diff --git a/pygame/docs/pygame_small.gif b/pygame/docs/pygame_small.gif
deleted file mode 100755
index 4916dbf..0000000
--- a/pygame/docs/pygame_small.gif
+++ /dev/null
Binary files differ
diff --git a/pygame/docs/pygame_tiny.gif b/pygame/docs/pygame_tiny.gif
deleted file mode 100755
index f9aa517..0000000
--- a/pygame/docs/pygame_tiny.gif
+++ /dev/null
Binary files differ
diff --git a/pygame/docs/ref/camera.html b/pygame/docs/ref/camera.html
deleted file mode 100755
index 29678d7..0000000
--- a/pygame/docs/ref/camera.html
+++ /dev/null
@@ -1,203 +0,0 @@
-
-<html>
-<title>camera - Pygame Documentation</title>
-<body bgcolor=#aaeebb text=#000000 link=#331111 vlink=#331111>
-
-
-<table cellpadding=0 cellspacing=0 border=0 style='border: 3px solid black;' width='100%'>
-<tr>
-<td bgcolor='#c2fc20' style='padding: 6px;' align=center valign=center><a href='http://www.pygame.org/'><img src='../pygame_tiny.gif' border=0 width=200 height=60></a><br><b>pygame documentation</b></td>
-<td bgcolor='#6aee28' style='border-left: 3px solid black; padding: 6px;' align=center valign=center>
- ||&nbsp;
- <a href=http://www.pygame.org>Pygame Home</a> &nbsp;||&nbsp;
- <a href=../index.html>Help Contents</a> &nbsp;||
- <a href=index.html>Reference Index</a> &nbsp;||
- <br>&nbsp;<br>
-
-<a href="camera.html">Camera</a>&nbsp;||&nbsp;
-<a href="cdrom.html">Cdrom</a>&nbsp;||&nbsp;
-<a href="color.html">Color</a>&nbsp;||&nbsp;
-<a href="cursors.html">Cursors</a>&nbsp;||&nbsp;
-<a href="display.html">Display</a>&nbsp;||&nbsp;
-<a href="draw.html">Draw</a>&nbsp;||&nbsp;
-<a href="event.html">Event</a>&nbsp;||&nbsp;
-<a href="examples.html">Examples</a>&nbsp;||&nbsp;
-<a href="font.html">Font</a>&nbsp;||&nbsp;
-<a href="gfxdraw.html">Gfxdraw</a>&nbsp;||&nbsp;
-<a href="image.html">Image</a>&nbsp;||&nbsp;
-<a href="joystick.html">Joystick</a>&nbsp;||&nbsp;
-<a href="key.html">Key</a>&nbsp;||&nbsp;
-<a href="locals.html">Locals</a>&nbsp;||&nbsp;
-<a href="mask.html">Mask</a>&nbsp;||&nbsp;
-<a href="midi.html">Midi</a>&nbsp;||&nbsp;
-<a href="mixer.html">Mixer</a>&nbsp;||&nbsp;
-<a href="mouse.html">Mouse</a>&nbsp;||&nbsp;
-<a href="movie.html">Movie</a>&nbsp;||&nbsp;
-<a href="music.html">Music</a>&nbsp;||&nbsp;
-<a href="overlay.html">Overlay</a>&nbsp;||&nbsp;
-<a href="pixelarray.html">Pixelarray</a>&nbsp;||&nbsp;
-<a href="pygame.html">Pygame</a>&nbsp;||&nbsp;
-<a href="rect.html">Rect</a>&nbsp;||&nbsp;
-<a href="scrap.html">Scrap</a>&nbsp;||&nbsp;
-<a href="sndarray.html">Sndarray</a>&nbsp;||&nbsp;
-<a href="sprite.html">Sprite</a>&nbsp;||&nbsp;
-<a href="surface.html">Surface</a>&nbsp;||&nbsp;
-<a href="surfarray.html">Surfarray</a>&nbsp;||&nbsp;
-<a href="tests.html">Tests</a>&nbsp;||&nbsp;
-<a href="time.html">Time</a>&nbsp;||&nbsp;
-<a href="transform.html">Transform</a>
-</td></tr></table>
-<br>
-
-
-<a name="pygame.camera">
-<big><b>pygame.camera</big></b><br><ul>
- <i>pygame module for camera use</i><br>
-<ul><small><table>
- <tr><td><a href="camera.html#pygame.camera.colorspace">pygame.camera.colorspace</a> - <font size=-1>Surface colorspace conversion</font></td><td>Surface colorspace conversion</td></tr>
- <tr><td><a href="camera.html#pygame.camera.list_cameras">pygame.camera.list_cameras</a> - <font size=-1>returns a list of available cameras</font></td><td>returns a list of available cameras</td></tr>
- <tr><td><a href="camera.html#pygame.camera.Camera">pygame.camera.Camera</a> - <font size=-1>load a camera</font></td><td>load a camera</td></tr>
-</table></small></ul>
-<p>Pygame currently supports only Linux and v4l2 cameras. </p>
-<p><tt>EXPERIMENTAL!:</tt> This api may change or disappear in later pygame releases. If you use this, your code will very likely break with the next pygame release. </p>
-<p>The Bayer to <tt>RGB</tt> function is based on: </p>
-<pre> Sonix SN9C101 based webcam basic I/F routines
- Copyright (C) 2004 Takafumi Mizuno <taka-qce@ls-a.jp>
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions
- are met:
- 1. Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
- 2. Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in the
- documentation and/or other materials provided with the distribution.
- THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
- ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
- FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- SUCH DAMAGE.
-</pre><p>New in pygame <tt>1.9.0</tt>. </p>
-<!--COMMENTS:pygame.camera--> &nbsp;<br>
-
-
-<a name="pygame.camera.colorspace">
-<big><b>pygame.camera.colorspace</big></b><br><ul>
- <i>Surface colorspace conversion</i><br>
- <tt>pygame.camera.colorspace(Surface, format, DestSurface = None): return Surface</tt><br>
-<p>Allows for conversion from <tt>"RGB"</tt> to a destination colorspace of <tt>"HSV"</tt> or <tt>"YUV"</tt>. The source and destination surfaces must be the same size and pixel depth. This is useful for computer vision on devices with limited processing power. Capture as small of an image as possible, <tt>transform.scale()</tt> it even smaller, and then convert the colorspace to <tt>YUV</tt> or <tt>HSV</tt> before doing any processing on it. </p>
-<!--COMMENTS:pygame.camera.colorspace--> &nbsp;<br>
-<br></ul>
-
-
-<a name="pygame.camera.list_cameras">
-<big><b>pygame.camera.list_cameras</big></b><br><ul>
- <i>returns a list of available cameras</i><br>
- <tt>pygame.camera.list_cameras(): return [cameras]</tt><br>
-<p>Checks the computer for available cameras and returns a list of strings of camera names, ready to be fed into <tt>pygame.camera.Camera</tt>. </p>
-<!--COMMENTS:pygame.camera.list_cameras--> &nbsp;<br>
-<br></ul>
-
-
-<a name="pygame.camera.Camera">
-<big><b>pygame.camera.Camera</big></b><br><ul>
- <i>load a camera</i><br>
- <tt>pygame.camera.Camera(device, (width, height), format): return Camera</tt><br>
-<ul><small><table>
- <tr><td><a href="camera.html#Camera.start">Camera.start</a> - <font size=-1>opens, initializes, and starts capturing</font></td><td>opens, initializes, and starts capturing</td></tr>
- <tr><td><a href="camera.html#Camera.stop">Camera.stop</a> - <font size=-1>stops, uninitializes, and closes the camera</font></td><td>stops, uninitializes, and closes the camera</td></tr>
- <tr><td><a href="camera.html#Camera.get_controls">Camera.get_controls</a> - <font size=-1>gets current values of user controls</font></td><td>gets current values of user controls</td></tr>
- <tr><td><a href="camera.html#Camera.set_controls">Camera.set_controls</a> - <font size=-1>changes camera settings if supported by the camera</font></td><td>changes camera settings if supported by the camera</td></tr>
- <tr><td><a href="camera.html#Camera.get_size">Camera.get_size</a> - <font size=-1>returns the dimensions of the images being recorded</font></td><td>returns the dimensions of the images being recorded</td></tr>
- <tr><td><a href="camera.html#Camera.query_image">Camera.query_image</a> - <font size=-1>checks if a frame is ready</font></td><td>checks if a frame is ready</td></tr>
- <tr><td><a href="camera.html#Camera.get_image">Camera.get_image</a> - <font size=-1>captures an image as a Surface</font></td><td>captures an image as a Surface</td></tr>
- <tr><td><a href="camera.html#Camera.get_raw">Camera.get_raw</a> - <font size=-1>returns an unmodified image as a string</font></td><td>returns an unmodified image as a string</td></tr>
-</table></small></ul>
-<p>Loads a v4l2 camera. The device is typically something like "/dev/video0". Default width and height are 640 by 480. Format is the desired colorspace of the output. This is useful for computer vision purposes. The default is <tt>RGB</tt>. The following are supported: </p>
-<ul>
- <li> RGB - Red, Green, Blue </li>
- <li> YUV - Luma, Blue Chrominance, Red Chrominance </li>
- <li> HSV - Hue, Saturation, Value </li>
-</ul>
-<!--COMMENTS:pygame.camera.Camera--> &nbsp;<br>
-
-
-<a name="Camera.start">
-<big><b>Camera.start</big></b><br><ul>
- <i>opens, initializes, and starts capturing</i><br>
- <tt>Camera.start(): return None</tt><br>
-<p>Opens the camera device, attempts to initialize it, and begins recording images to a buffer. The camera must be started before any of the below functions can be used. </p>
-<!--COMMENTS:Camera.start--> &nbsp;<br>
-<br></ul>
-
-
-<a name="Camera.stop">
-<big><b>Camera.stop</big></b><br><ul>
- <i>stops, uninitializes, and closes the camera</i><br>
- <tt>Camera.stop(): return None</tt><br>
-<p>Stops recording, uninitializes the camera, and closes it. Once a camera is stopped, the below functions cannot be used until it is started again. </p>
-<!--COMMENTS:Camera.stop--> &nbsp;<br>
-<br></ul>
-
-
-<a name="Camera.get_controls">
-<big><b>Camera.get_controls</big></b><br><ul>
- <i>gets current values of user controls</i><br>
- <tt>Camera.get_controls(): return (hflip = bool, vflip = bool, brightness)</tt><br>
-<p>If the camera supports it, get_controls will return the current settings for horizontal and vertical image flip as bools and brightness as an int. If unsupported, it will return the default values of (0, 0, 0). Note that the return values here may be different than those returned by set_controls, though these are more likely to be correct. </p>
-<!--COMMENTS:Camera.get_controls--> &nbsp;<br>
-<br></ul>
-
-
-<a name="Camera.set_controls">
-<big><b>Camera.set_controls</big></b><br><ul>
- <i>changes camera settings if supported by the camera</i><br>
- <tt>Camera.set_controls(hflip = bool, vflip = bool, brightness): return (hflip = bool, vflip = bool, brightness)</tt><br>
-<p>Allows you to change camera settings if the camera supports it. The return values will be the input values if the camera claims it succeeded or the values previously in use if not. Each argument is optional, and the desired one can be chosen by supplying the keyword, like hflip. Note that the actual settings being used by the camera may not be the same as those returned by set_controls. </p>
-<!--COMMENTS:Camera.set_controls--> &nbsp;<br>
-<br></ul>
-
-
-<a name="Camera.get_size">
-<big><b>Camera.get_size</big></b><br><ul>
- <i>returns the dimensions of the images being recorded</i><br>
- <tt>Camera.get_size(): return (width, height)</tt><br>
-<p>Returns the current dimensions of the images being captured by the camera. This will return the actual size, which may be different than the one specified during initialization if the camera did not support that size. </p>
-<!--COMMENTS:Camera.get_size--> &nbsp;<br>
-<br></ul>
-
-
-<a name="Camera.query_image">
-<big><b>Camera.query_image</big></b><br><ul>
- <i>checks if a frame is ready</i><br>
- <tt>Camera.query_image(): return bool</tt><br>
-<p>If an image is ready to get, it returns true. Otherwise it returns false. Note that some webcams will always return False and will only queue a frame when called with a blocking function like get_image(). This is useful to separate the framerate of the game from that of the camera without having to use threading. </p>
-<!--COMMENTS:Camera.query_image--> &nbsp;<br>
-<br></ul>
-
-
-<a name="Camera.get_image">
-<big><b>Camera.get_image</big></b><br><ul>
- <i>captures an image as a Surface</i><br>
- <tt>Camera.get_image(Surface = None): return Surface</tt><br>
-<p>Pulls an image off of the buffer as an <tt>RGB</tt> Surface. It can optionally reuse an existing Surface to save time. The bit depth of the surface is either 24bits or the same as the optionally supplied Surface. </p>
-<!--COMMENTS:Camera.get_image--> &nbsp;<br>
-<br></ul>
-
-
-<a name="Camera.get_raw">
-<big><b>Camera.get_raw</big></b><br><ul>
- <i>returns an unmodified image as a string</i><br>
- <tt>Camera.get_raw(): return string</tt><br>
-<p>Gets an image from a camera as a string in the native pixelformat of the camera. Useful for integration with other libraries. </p>
-<!--COMMENTS:Camera.get_raw--> &nbsp;<br>
-<br></ul>
-<br></ul>
-<br></ul>
-
-</body></html>
diff --git a/pygame/docs/ref/cdrom.html b/pygame/docs/ref/cdrom.html
deleted file mode 100755
index 0dc1e95..0000000
--- a/pygame/docs/ref/cdrom.html
+++ /dev/null
@@ -1,317 +0,0 @@
-
-<html>
-<title>cdrom - Pygame Documentation</title>
-<body bgcolor=#aaeebb text=#000000 link=#331111 vlink=#331111>
-
-
-<table cellpadding=0 cellspacing=0 border=0 style='border: 3px solid black;' width='100%'>
-<tr>
-<td bgcolor='#c2fc20' style='padding: 6px;' align=center valign=center><a href='http://www.pygame.org/'><img src='../pygame_tiny.gif' border=0 width=200 height=60></a><br><b>pygame documentation</b></td>
-<td bgcolor='#6aee28' style='border-left: 3px solid black; padding: 6px;' align=center valign=center>
- ||&nbsp;
- <a href=http://www.pygame.org>Pygame Home</a> &nbsp;||&nbsp;
- <a href=../index.html>Help Contents</a> &nbsp;||
- <a href=index.html>Reference Index</a> &nbsp;||
- <br>&nbsp;<br>
-
-<a href="camera.html">Camera</a>&nbsp;||&nbsp;
-<a href="cdrom.html">Cdrom</a>&nbsp;||&nbsp;
-<a href="color.html">Color</a>&nbsp;||&nbsp;
-<a href="cursors.html">Cursors</a>&nbsp;||&nbsp;
-<a href="display.html">Display</a>&nbsp;||&nbsp;
-<a href="draw.html">Draw</a>&nbsp;||&nbsp;
-<a href="event.html">Event</a>&nbsp;||&nbsp;
-<a href="examples.html">Examples</a>&nbsp;||&nbsp;
-<a href="font.html">Font</a>&nbsp;||&nbsp;
-<a href="gfxdraw.html">Gfxdraw</a>&nbsp;||&nbsp;
-<a href="image.html">Image</a>&nbsp;||&nbsp;
-<a href="joystick.html">Joystick</a>&nbsp;||&nbsp;
-<a href="key.html">Key</a>&nbsp;||&nbsp;
-<a href="locals.html">Locals</a>&nbsp;||&nbsp;
-<a href="mask.html">Mask</a>&nbsp;||&nbsp;
-<a href="midi.html">Midi</a>&nbsp;||&nbsp;
-<a href="mixer.html">Mixer</a>&nbsp;||&nbsp;
-<a href="mouse.html">Mouse</a>&nbsp;||&nbsp;
-<a href="movie.html">Movie</a>&nbsp;||&nbsp;
-<a href="music.html">Music</a>&nbsp;||&nbsp;
-<a href="overlay.html">Overlay</a>&nbsp;||&nbsp;
-<a href="pixelarray.html">Pixelarray</a>&nbsp;||&nbsp;
-<a href="pygame.html">Pygame</a>&nbsp;||&nbsp;
-<a href="rect.html">Rect</a>&nbsp;||&nbsp;
-<a href="scrap.html">Scrap</a>&nbsp;||&nbsp;
-<a href="sndarray.html">Sndarray</a>&nbsp;||&nbsp;
-<a href="sprite.html">Sprite</a>&nbsp;||&nbsp;
-<a href="surface.html">Surface</a>&nbsp;||&nbsp;
-<a href="surfarray.html">Surfarray</a>&nbsp;||&nbsp;
-<a href="tests.html">Tests</a>&nbsp;||&nbsp;
-<a href="time.html">Time</a>&nbsp;||&nbsp;
-<a href="transform.html">Transform</a>
-</td></tr></table>
-<br>
-
-
-<a name="pygame.cdrom">
-<big><b>pygame.cdrom</big></b><br><ul>
- <i>pygame module for audio cdrom control</i><br>
-<ul><small><table>
- <tr><td><a href="cdrom.html#pygame.cdrom.init">pygame.cdrom.init</a> - <font size=-1>initialize the cdrom module</font></td><td>initialize the cdrom module</td></tr>
- <tr><td><a href="cdrom.html#pygame.cdrom.quit">pygame.cdrom.quit</a> - <font size=-1>uninitialize the cdrom module</font></td><td>uninitialize the cdrom module</td></tr>
- <tr><td><a href="cdrom.html#pygame.cdrom.get_init">pygame.cdrom.get_init</a> - <font size=-1>true if the cdrom module is initialized</font></td><td>true if the cdrom module is initialized</td></tr>
- <tr><td><a href="cdrom.html#pygame.cdrom.get_count">pygame.cdrom.get_count</a> - <font size=-1>number of cd drives on the system</font></td><td>number of cd drives on the system</td></tr>
- <tr><td><a href="cdrom.html#pygame.cdrom.CD">pygame.cdrom.CD</a> - <font size=-1>class to manage a cdrom drive</font></td><td>class to manage a cdrom drive</td></tr>
-</table></small></ul>
-<p>The cdrom module manages the <tt>CD</tt> and <tt>DVD</tt> drives on a computer. It can also control the playback of audio cd's. This module needs to be initialized before it can do anything. Each <tt>CD</tt> object you create represents a cdrom drive and must also be initialized individually before it can do most things. </p>
-<!--COMMENTS:pygame.cdrom--> &nbsp;<br>
-
-
-<a name="pygame.cdrom.init">
-<big><b>pygame.cdrom.init</big></b><br><ul>
- <i>initialize the cdrom module</i><br>
- <tt>pygame.cdrom.init(): return None</tt><br>
-<p>Initialize the cdrom module. This will scan the system for all <tt>CD</tt> devices. The module must be initialized before any other functions will work. This automatically happens when you call <tt><a href="pygame.html#pygame.init">pygame.init</a> - <font size=-1>initialize all imported pygame modules</font></tt>. </p>
-<p>It is safe to call this function more than once. </p>
-<!--COMMENTS:pygame.cdrom.init--> &nbsp;<br>
-<br></ul>
-
-
-<a name="pygame.cdrom.quit">
-<big><b>pygame.cdrom.quit</big></b><br><ul>
- <i>uninitialize the cdrom module</i><br>
- <tt>pygame.cdrom.quit(): return None</tt><br>
-<p>Uninitialize the cdrom module. After you call this any existing <tt>CD</tt> objects will no longer work. </p>
-<p>It is safe to call this function more than once. </p>
-<!--COMMENTS:pygame.cdrom.quit--> &nbsp;<br>
-<br></ul>
-
-
-<a name="pygame.cdrom.get_init">
-<big><b>pygame.cdrom.get_init</big></b><br><ul>
- <i>true if the cdrom module is initialized</i><br>
- <tt>pygame.cdrom.get_init(): return bool</tt><br>
-<p>Test if the cdrom module is initialized or not. This is different than the <tt><a href="cdrom.html#CD.init">CD.init</a> - <font size=-1>initialize a cdrom drive for use</font></tt> since each drive must also be initialized individually. </p>
-<!--COMMENTS:pygame.cdrom.get_init--> &nbsp;<br>
-<br></ul>
-
-
-<a name="pygame.cdrom.get_count">
-<big><b>pygame.cdrom.get_count</big></b><br><ul>
- <i>number of cd drives on the system</i><br>
- <tt>pygame.cdrom.get_count(): return count</tt><br>
-<p>Return the number of cd drives on the system. When you create <tt>CD</tt> objects you need to pass an integer id that must be lower than this count. The count will be 0 if there are no drives on the system. </p>
-<!--COMMENTS:pygame.cdrom.get_count--> &nbsp;<br>
-<br></ul>
-
-
-<a name="pygame.cdrom.CD">
-<big><b>pygame.cdrom.CD</big></b><br><ul>
- <i>class to manage a cdrom drive</i><br>
- <tt>pygame.cdrom.CD(id): return CD</tt><br>
-<ul><small><table>
- <tr><td><a href="cdrom.html#CD.init">CD.init</a> - <font size=-1>initialize a cdrom drive for use</font></td><td>initialize a cdrom drive for use</td></tr>
- <tr><td><a href="cdrom.html#CD.quit">CD.quit</a> - <font size=-1>uninitialize a cdrom drive for use</font></td><td>uninitialize a cdrom drive for use</td></tr>
- <tr><td><a href="cdrom.html#CD.get_init">CD.get_init</a> - <font size=-1>true if this cd device initialized</font></td><td>true if this cd device initialized</td></tr>
- <tr><td><a href="cdrom.html#CD.play">CD.play</a> - <font size=-1>start playing audio</font></td><td>start playing audio</td></tr>
- <tr><td><a href="cdrom.html#CD.stop">CD.stop</a> - <font size=-1>stop audio playback</font></td><td>stop audio playback</td></tr>
- <tr><td><a href="cdrom.html#CD.pause">CD.pause</a> - <font size=-1>temporarily stop audio playback</font></td><td>temporarily stop audio playback</td></tr>
- <tr><td><a href="cdrom.html#CD.resume">CD.resume</a> - <font size=-1>unpause audio playback</font></td><td>unpause audio playback</td></tr>
- <tr><td><a href="cdrom.html#CD.eject">CD.eject</a> - <font size=-1>eject or open the cdrom drive</font></td><td>eject or open the cdrom drive</td></tr>
- <tr><td><a href="cdrom.html#CD.get_id">CD.get_id</a> - <font size=-1>the index of the cdrom drive</font></td><td>the index of the cdrom drive</td></tr>
- <tr><td><a href="cdrom.html#CD.get_name">CD.get_name</a> - <font size=-1>the system name of the cdrom drive</font></td><td>the system name of the cdrom drive</td></tr>
- <tr><td><a href="cdrom.html#CD.get_busy">CD.get_busy</a> - <font size=-1>true if the drive is playing audio</font></td><td>true if the drive is playing audio</td></tr>
- <tr><td><a href="cdrom.html#CD.get_paused">CD.get_paused</a> - <font size=-1>true if the drive is paused</font></td><td>true if the drive is paused</td></tr>
- <tr><td><a href="cdrom.html#CD.get_current">CD.get_current</a> - <font size=-1>the current audio playback position</font></td><td>the current audio playback position</td></tr>
- <tr><td><a href="cdrom.html#CD.get_empty">CD.get_empty</a> - <font size=-1>False if a cdrom is in the drive</font></td><td>False if a cdrom is in the drive</td></tr>
- <tr><td><a href="cdrom.html#CD.get_numtracks">CD.get_numtracks</a> - <font size=-1>the number of tracks on the cdrom</font></td><td>the number of tracks on the cdrom</td></tr>
- <tr><td><a href="cdrom.html#CD.get_track_audio">CD.get_track_audio</a> - <font size=-1>true if the cdrom track has audio data</font></td><td>true if the cdrom track has audio data</td></tr>
- <tr><td><a href="cdrom.html#CD.get_all">CD.get_all</a> - <font size=-1>get all track information</font></td><td>get all track information</td></tr>
- <tr><td><a href="cdrom.html#CD.get_track_start">CD.get_track_start</a> - <font size=-1>start time of a cdrom track</font></td><td>start time of a cdrom track</td></tr>
- <tr><td><a href="cdrom.html#CD.get_track_length">CD.get_track_length</a> - <font size=-1>length of a cdrom track</font></td><td>length of a cdrom track</td></tr>
-</table></small></ul>
-<p>You can create a <tt>CD</tt> object for each cdrom on the system. Use <tt><a href="cdrom.html#pygame.cdrom.get_count">pygame.cdrom.get_count</a> - <font size=-1>number of cd drives on the system</font></tt> to determine how many drives actually exist. The id argument is an integer of the drive, starting at zero. </p>
-<p>The <tt>CD</tt> object is not initialized, you can only call <tt><a href="cdrom.html#CD.get_id">CD.get_id</a> - <font size=-1>the index of the cdrom drive</font></tt> and <tt><a href="cdrom.html#CD.get_name">CD.get_name</a> - <font size=-1>the system name of the cdrom drive</font></tt> on an uninitialized drive. </p>
-<p>It is safe to create multiple <tt>CD</tt> objects for the same drive, they will all cooperate normally. </p>
-<!--COMMENTS:pygame.cdrom.CD--> &nbsp;<br>
-
-
-<a name="CD.init">
-<big><b>CD.init</big></b><br><ul>
- <i>initialize a cdrom drive for use</i><br>
- <tt>CD.init(): return None</tt><br>
-<p>Initialize the cdrom drive for use. The drive must be initialized for most <tt>CD</tt> methods to work. Even if the rest of pygame has been initialized. </p>
-<p>There may be a brief pause while the drive is initialized. Avoid <tt><a href="cdrom.html#CD.init">CD.init</a> - <font size=-1>initialize a cdrom drive for use</font></tt> if the program should not stop for a second or two. </p>
-<!--COMMENTS:CD.init--> &nbsp;<br>
-<br></ul>
-
-
-<a name="CD.quit">
-<big><b>CD.quit</big></b><br><ul>
- <i>uninitialize a cdrom drive for use</i><br>
- <tt>CD.quit(): return None</tt><br>
-<p>Uninitialize a drive for use. Call this when your program will not be accessing the drive for awhile. </p>
-<!--COMMENTS:CD.quit--> &nbsp;<br>
-<br></ul>
-
-
-<a name="CD.get_init">
-<big><b>CD.get_init</big></b><br><ul>
- <i>true if this cd device initialized</i><br>
- <tt>CD.get_init(): return bool</tt><br>
-<p>Test if this <tt>CDROM</tt> device is initialized. This is different than the <tt><a href="cdrom.html#pygame.cdrom.init">pygame.cdrom.init</a> - <font size=-1>initialize the cdrom module</font></tt> since each drive must also be initialized individually. </p>
-<!--COMMENTS:CD.get_init--> &nbsp;<br>
-<br></ul>
-
-
-<a name="CD.play">
-<big><b>CD.play</big></b><br><ul>
- <i>start playing audio</i><br>
- <tt>CD.play(track, start=None, end=None): return None</tt><br>
-<p>Playback audio from an audio cdrom in the drive. Besides the track number argument, you can also pass a starting and ending time for playback. The start and end time are in seconds, and can limit the section of an audio track played. </p>
-<p>If you pass a start time but no end, the audio will play to the end of the track. If you pass a start time and 'None' for the end time, the audio will play to the end of the entire disc. </p>
-<p>See the <tt><a href="cdrom.html#CD.get_numtracks">CD.get_numtracks</a> - <font size=-1>the number of tracks on the cdrom</font></tt> and <tt><a href="cdrom.html#CD.get_track_audio">CD.get_track_audio</a> - <font size=-1>true if the cdrom track has audio data</font></tt> to find tracks to playback. </p>
-<p>Note, track 0 is the first track on the <tt>CD</tt>. Track numbers start at zero. </p>
-<!--COMMENTS:CD.play--> &nbsp;<br>
-<br></ul>
-
-
-<a name="CD.stop">
-<big><b>CD.stop</big></b><br><ul>
- <i>stop audio playback</i><br>
- <tt>CD.stop(): return None</tt><br>
-<p>Stops playback of audio from the cdrom. This will also lose the current playback position. This method does nothing if the drive isn't already playing audio. </p>
-<!--COMMENTS:CD.stop--> &nbsp;<br>
-<br></ul>
-
-
-<a name="CD.pause">
-<big><b>CD.pause</big></b><br><ul>
- <i>temporarily stop audio playback</i><br>
- <tt>CD.pause(): return None</tt><br>
-<p>Temporarily stop audio playback on the <tt>CD</tt>. The playback can be resumed at the same point with the <tt><a href="cdrom.html#CD.resume">CD.resume</a> - <font size=-1>unpause audio playback</font></tt> method. If the <tt>CD</tt> is not playing this method does nothing. </p>
-<p>Note, track 0 is the first track on the <tt>CD</tt>. Track numbers start at zero. </p>
-<!--COMMENTS:CD.pause--> &nbsp;<br>
-<br></ul>
-
-
-<a name="CD.resume">
-<big><b>CD.resume</big></b><br><ul>
- <i>unpause audio playback</i><br>
- <tt>CD.resume(): return None</tt><br>
-<p>Unpause a paused <tt>CD</tt>. If the <tt>CD</tt> is not paused or already playing, this method does nothing. </p>
-<!--COMMENTS:CD.resume--> &nbsp;<br>
-<br></ul>
-
-
-<a name="CD.eject">
-<big><b>CD.eject</big></b><br><ul>
- <i>eject or open the cdrom drive</i><br>
- <tt>CD.eject(): return None</tt><br>
-<p>This will open the cdrom drive and eject the cdrom. If the drive is playing or paused it will be stopped. </p>
-<!--COMMENTS:CD.eject--> &nbsp;<br>
-<br></ul>
-
-
-<a name="CD.get_id">
-<big><b>CD.get_id</big></b><br><ul>
- <i>the index of the cdrom drive</i><br>
- <tt>CD.get_id(): return id</tt><br>
-<p>Returns the integer id that was used to create the <tt>CD</tt> instance. This method can work on an uninitialized <tt>CD</tt>. </p>
-<!--COMMENTS:CD.get_id--> &nbsp;<br>
-<br></ul>
-
-
-<a name="CD.get_name">
-<big><b>CD.get_name</big></b><br><ul>
- <i>the system name of the cdrom drive</i><br>
- <tt>CD.get_name(): return name</tt><br>
-<p>Return the string name of the drive. This is the system name used to represent the drive. It is often the drive letter or device name. This method can work on an uninitialized <tt>CD</tt>. </p>
-<!--COMMENTS:CD.get_name--> &nbsp;<br>
-<br></ul>
-
-
-<a name="CD.get_busy">
-<big><b>CD.get_busy</big></b><br><ul>
- <i>true if the drive is playing audio</i><br>
- <tt>CD.get_busy(): return bool</tt><br>
-<p>Returns True if the drive busy playing back audio. </p>
-<!--COMMENTS:CD.get_busy--> &nbsp;<br>
-<br></ul>
-
-
-<a name="CD.get_paused">
-<big><b>CD.get_paused</big></b><br><ul>
- <i>true if the drive is paused</i><br>
- <tt>CD.get_paused(): return bool</tt><br>
-<p>Returns True if the drive is currently paused. </p>
-<!--COMMENTS:CD.get_paused--> &nbsp;<br>
-<br></ul>
-
-
-<a name="CD.get_current">
-<big><b>CD.get_current</big></b><br><ul>
- <i>the current audio playback position</i><br>
- <tt>CD.get_current(): return track, seconds</tt><br>
-<p>Returns both the current track and time of that track. This method works when the drive is either playing or paused. </p>
-<p>Note, track 0 is the first track on the <tt>CD</tt>. Track numbers start at zero. </p>
-<!--COMMENTS:CD.get_current--> &nbsp;<br>
-<br></ul>
-
-
-<a name="CD.get_empty">
-<big><b>CD.get_empty</big></b><br><ul>
- <i>False if a cdrom is in the drive</i><br>
- <tt>CD.get_empty(): return bool</tt><br>
-<p>Return False if there is a cdrom currently in the drive. If the drive is empty this will return True. </p>
-<!--COMMENTS:CD.get_empty--> &nbsp;<br>
-<br></ul>
-
-
-<a name="CD.get_numtracks">
-<big><b>CD.get_numtracks</big></b><br><ul>
- <i>the number of tracks on the cdrom</i><br>
- <tt>CD.get_numtracks(): return count</tt><br>
-<p>Return the number of tracks on the cdrom in the drive. This will return zero of the drive is empty or has no tracks. </p>
-<!--COMMENTS:CD.get_numtracks--> &nbsp;<br>
-<br></ul>
-
-
-<a name="CD.get_track_audio">
-<big><b>CD.get_track_audio</big></b><br><ul>
- <i>true if the cdrom track has audio data</i><br>
- <tt>CD.get_track_audio(track): return bool</tt><br>
-<p>Determine if a track on a cdrom contains audio data. You can also call <tt>CD.num_tracks()</tt> and <tt><a href="cdrom.html#CD.get_all">CD.get_all</a> - <font size=-1>get all track information</font></tt> to determine more information about the cdrom. </p>
-<p>Note, track 0 is the first track on the <tt>CD</tt>. Track numbers start at zero. </p>
-<!--COMMENTS:CD.get_track_audio--> &nbsp;<br>
-<br></ul>
-
-
-<a name="CD.get_all">
-<big><b>CD.get_all</big></b><br><ul>
- <i>get all track information</i><br>
- <tt>CD.get_all(): return [(audio, start, end, lenth), ...]</tt><br>
-<p>Return a list with information for every track on the cdrom. The information consists of a tuple with four values. The audio value is True if the track contains audio data. The start, end, and length values are floating point numbers in seconds. Start and end represent absolute times on the entire disc. </p>
-<!--COMMENTS:CD.get_all--> &nbsp;<br>
-<br></ul>
-
-
-<a name="CD.get_track_start">
-<big><b>CD.get_track_start</big></b><br><ul>
- <i>start time of a cdrom track</i><br>
- <tt>CD.get_track_start(track): return seconds</tt><br>
-<p>Return the absolute time in seconds where at start of the cdrom track. </p>
-<p>Note, track 0 is the first track on the <tt>CD</tt>. Track numbers start at zero. </p>
-<!--COMMENTS:CD.get_track_start--> &nbsp;<br>
-<br></ul>
-
-
-<a name="CD.get_track_length">
-<big><b>CD.get_track_length</big></b><br><ul>
- <i>length of a cdrom track</i><br>
- <tt>CD.get_track_length(track): return seconds</tt><br>
-<p>Return a floating point value in seconds of the length of the cdrom track. </p>
-<p>Note, track 0 is the first track on the <tt>CD</tt>. Track numbers start at zero. </p>
-<!--COMMENTS:CD.get_track_length--> &nbsp;<br>
-<br></ul>
-<br></ul>
-<br></ul>
-
-</body></html>
diff --git a/pygame/docs/ref/color.html b/pygame/docs/ref/color.html
deleted file mode 100755
index d83160d..0000000
--- a/pygame/docs/ref/color.html
+++ /dev/null
@@ -1,179 +0,0 @@
-
-<html>
-<title>color - Pygame Documentation</title>
-<body bgcolor=#aaeebb text=#000000 link=#331111 vlink=#331111>
-
-
-<table cellpadding=0 cellspacing=0 border=0 style='border: 3px solid black;' width='100%'>
-<tr>
-<td bgcolor='#c2fc20' style='padding: 6px;' align=center valign=center><a href='http://www.pygame.org/'><img src='../pygame_tiny.gif' border=0 width=200 height=60></a><br><b>pygame documentation</b></td>
-<td bgcolor='#6aee28' style='border-left: 3px solid black; padding: 6px;' align=center valign=center>
- ||&nbsp;
- <a href=http://www.pygame.org>Pygame Home</a> &nbsp;||&nbsp;
- <a href=../index.html>Help Contents</a> &nbsp;||
- <a href=index.html>Reference Index</a> &nbsp;||
- <br>&nbsp;<br>
-
-<a href="camera.html">Camera</a>&nbsp;||&nbsp;
-<a href="cdrom.html">Cdrom</a>&nbsp;||&nbsp;
-<a href="color.html">Color</a>&nbsp;||&nbsp;
-<a href="cursors.html">Cursors</a>&nbsp;||&nbsp;
-<a href="display.html">Display</a>&nbsp;||&nbsp;
-<a href="draw.html">Draw</a>&nbsp;||&nbsp;
-<a href="event.html">Event</a>&nbsp;||&nbsp;
-<a href="examples.html">Examples</a>&nbsp;||&nbsp;
-<a href="font.html">Font</a>&nbsp;||&nbsp;
-<a href="gfxdraw.html">Gfxdraw</a>&nbsp;||&nbsp;
-<a href="image.html">Image</a>&nbsp;||&nbsp;
-<a href="joystick.html">Joystick</a>&nbsp;||&nbsp;
-<a href="key.html">Key</a>&nbsp;||&nbsp;
-<a href="locals.html">Locals</a>&nbsp;||&nbsp;
-<a href="mask.html">Mask</a>&nbsp;||&nbsp;
-<a href="midi.html">Midi</a>&nbsp;||&nbsp;
-<a href="mixer.html">Mixer</a>&nbsp;||&nbsp;
-<a href="mouse.html">Mouse</a>&nbsp;||&nbsp;
-<a href="movie.html">Movie</a>&nbsp;||&nbsp;
-<a href="music.html">Music</a>&nbsp;||&nbsp;
-<a href="overlay.html">Overlay</a>&nbsp;||&nbsp;
-<a href="pixelarray.html">Pixelarray</a>&nbsp;||&nbsp;
-<a href="pygame.html">Pygame</a>&nbsp;||&nbsp;
-<a href="rect.html">Rect</a>&nbsp;||&nbsp;
-<a href="scrap.html">Scrap</a>&nbsp;||&nbsp;
-<a href="sndarray.html">Sndarray</a>&nbsp;||&nbsp;
-<a href="sprite.html">Sprite</a>&nbsp;||&nbsp;
-<a href="surface.html">Surface</a>&nbsp;||&nbsp;
-<a href="surfarray.html">Surfarray</a>&nbsp;||&nbsp;
-<a href="tests.html">Tests</a>&nbsp;||&nbsp;
-<a href="time.html">Time</a>&nbsp;||&nbsp;
-<a href="transform.html">Transform</a>
-</td></tr></table>
-<br>
-
-
-<a name="pygame.Color">
-<big><b>pygame.Color</big></b><br><ul>
- <i>pygame object for color representations</i><br>
- <tt>pygame.Color(name): Return Color</tt><br>
- <tt>pygame.Color(r, g, b, a): Return Color</tt><br>
- <tt>pygame.Color(rgbvalue): Return Color</tt><br>
-<ul><small><table>
- <tr><td><a href="color.html#Color.r">Color.r</a> - <font size=-1>Gets or sets the red value of the Color.</font></td><td>Gets or sets the red value of the Color.</td></tr>
- <tr><td><a href="color.html#Color.g">Color.g</a> - <font size=-1>Gets or sets the green value of the Color.</font></td><td>Gets or sets the green value of the Color.</td></tr>
- <tr><td><a href="color.html#Color.b">Color.b</a> - <font size=-1>Gets or sets the blue value of the Color.</font></td><td>Gets or sets the blue value of the Color.</td></tr>
- <tr><td><a href="color.html#Color.a">Color.a</a> - <font size=-1>Gets or sets the alpha value of the Color.</font></td><td>Gets or sets the alpha value of the Color.</td></tr>
- <tr><td><a href="color.html#Color.cmy">Color.cmy</a> - <font size=-1>Gets or sets the CMY representation of the Color.</font></td><td>Gets or sets the CMY representation of the Color.</td></tr>
- <tr><td><a href="color.html#Color.hsva">Color.hsva</a> - <font size=-1>Gets or sets the HSVA representation of the Color.</font></td><td>Gets or sets the HSVA representation of the Color.</td></tr>
- <tr><td><a href="color.html#Color.hsla">Color.hsla</a> - <font size=-1>Gets or sets the HSLA representation of the Color.</font></td><td>Gets or sets the HSLA representation of the Color.</td></tr>
- <tr><td><a href="color.html#Color.i1i2i3">Color.i1i2i3</a> - <font size=-1>Gets or sets the I1I2I3 representation of the Color.</font></td><td>Gets or sets the I1I2I3 representation of the Color.</td></tr>
- <tr><td><a href="color.html#Color.normalize">Color.normalize</a> - <font size=-1>Returns the normalized RGBA values of the Color.</font></td><td>Returns the normalized RGBA values of the Color.</td></tr>
- <tr><td><a href="color.html#Color.correct_gamma">Color.correct_gamma</a> - <font size=-1>Applies a certain gamma value to the Color.</font></td><td>Applies a certain gamma value to the Color.</td></tr>
- <tr><td><a href="color.html#Color.set_length">Color.set_length</a> - <font size=-1>Set the number of elements in the Color to 1,2,3, or 4.</font></td><td>Set the number of elements in the Color to 1,2,3, or 4.</td></tr>
-</table></small></ul>
-<p>The Color class represents <tt>RGBA</tt> color values using a value range of 0-255. It allows basic arithmetic operations to create new colors, supports conversions to other color spaces such as <tt>HSV</tt> or <tt>HSL</tt> and lets you adjust single color channels. Alpha defaults to 255 when not given. </p>
-<p>'rgbvalue' can be either a color name, an <tt>HTML</tt> color format string, a hex number string, or an integer pixel value. The <tt>HTML</tt> format is '#rrggbbaa', where rr, gg, bb, and aa are 2 digit hex numbers. The alpha aa is optional. <tt>A</tt> hex number string has the form '0xrrggbbaa', where aa is optional. </p>
-<p>Color objects support equality comparison with other color objects and 3 or 4 element tuples of integers (New in <tt>1.9.0)</tt>. There was a bug in pygame <tt>1.8.1</tt> where the default alpha was 0, not 255 like previously. </p>
-<p>New implementation of Color was done in pygame <tt>1.8.1</tt>. </p>
-<!--COMMENTS:pygame.Color--> &nbsp;<br>
-
-
-<a name="Color.r">
-<big><b>Color.r</big></b><br><ul>
- <i>Gets or sets the red value of the Color.</i><br>
- <tt>Color.r: Return int</tt><br>
-<p>The red value of the Color. </p>
-<!--COMMENTS:Color.r--> &nbsp;<br>
-<br></ul>
-
-
-<a name="Color.g">
-<big><b>Color.g</big></b><br><ul>
- <i>Gets or sets the green value of the Color.</i><br>
- <tt>Color.g: Return int</tt><br>
-<p>The green value of the Color. </p>
-<!--COMMENTS:Color.g--> &nbsp;<br>
-<br></ul>
-
-
-<a name="Color.b">
-<big><b>Color.b</big></b><br><ul>
- <i>Gets or sets the blue value of the Color.</i><br>
- <tt>Color.b: Return int</tt><br>
-<p>The blue value of the Color. </p>
-<!--COMMENTS:Color.b--> &nbsp;<br>
-<br></ul>
-
-
-<a name="Color.a">
-<big><b>Color.a</big></b><br><ul>
- <i>Gets or sets the alpha value of the Color.</i><br>
- <tt>Color.a: Return int</tt><br>
-<p>The alpha value of the Color. </p>
-<!--COMMENTS:Color.a--> &nbsp;<br>
-<br></ul>
-
-
-<a name="Color.cmy">
-<big><b>Color.cmy</big></b><br><ul>
- <i>Gets or sets the CMY representation of the Color.</i><br>
- <tt>Color.cmy: Return tuple</tt><br>
-<p>The <tt>CMY</tt> representation of the Color. The <tt>CMY</tt> components are in the ranges <tt>C</tt> = [0, 1], <tt>M</tt> = [0, 1], <tt>Y</tt> = [0, 1]. Note that this will not return the absolutely exact <tt>CMY</tt> values for the set <tt>RGB</tt> values in all cases. Due to the <tt>RGB</tt> mapping from 0-255 and the <tt>CMY</tt> mapping from 0-1 rounding errors may cause the <tt>CMY</tt> values to differ slightly from what you might expect. </p>
-<!--COMMENTS:Color.cmy--> &nbsp;<br>
-<br></ul>
-
-
-<a name="Color.hsva">
-<big><b>Color.hsva</big></b><br><ul>
- <i>Gets or sets the HSVA representation of the Color.</i><br>
- <tt>Color.hsva: Return tuple</tt><br>
-<p>The <tt>HSVA</tt> representation of the Color. The <tt>HSVA</tt> components are in the ranges <tt>H</tt> = [0, 360], <tt>S</tt> = [0, 100], <tt>V</tt> = [0, 100], <tt>A</tt> = [0, 100]. Note that this will not return the absolutely exact <tt>HSV</tt> values for the set <tt>RGB</tt> values in all cases. Due to the <tt>RGB</tt> mapping from 0-255 and the <tt>HSV</tt> mapping from 0-100 and 0-360 rounding errors may cause the <tt>HSV</tt> values to differ slightly from what you might expect. </p>
-<!--COMMENTS:Color.hsva--> &nbsp;<br>
-<br></ul>
-
-
-<a name="Color.hsla">
-<big><b>Color.hsla</big></b><br><ul>
- <i>Gets or sets the HSLA representation of the Color.</i><br>
- <tt>Color.hsla: Return tuple</tt><br>
-<p>The <tt>HSLA</tt> representation of the Color. The <tt>HSLA</tt> components are in the ranges <tt>H</tt> = [0, 360], <tt>S</tt> = [0, 100], <tt>V</tt> = [0, 100], <tt>A</tt> = [0, 100]. Note that this will not return the absolutely exact <tt>HSL</tt> values for the set <tt>RGB</tt> values in all cases. Due to the <tt>RGB</tt> mapping from 0-255 and the <tt>HSL</tt> mapping from 0-100 and 0-360 rounding errors may cause the <tt>HSL</tt> values to differ slightly from what you might expect. </p>
-<!--COMMENTS:Color.hsla--> &nbsp;<br>
-<br></ul>
-
-
-<a name="Color.i1i2i3">
-<big><b>Color.i1i2i3</big></b><br><ul>
- <i>Gets or sets the I1I2I3 representation of the Color.</i><br>
- <tt>Color.i1i2i3: Return tuple</tt><br>
-<p>The <tt>I1I2I3</tt> representation of the Color. The <tt>I1I2I3</tt> components are in the ranges <tt>I1</tt> = [0, 1], <tt>I2</tt> = <tt>[-0.5</tt>, <tt>0.5]</tt>, <tt>I3</tt> = <tt>[-0.5</tt>, <tt>0.5]</tt>. Note that this will not return the absolutely exact <tt>I1I2I3</tt> values for the set <tt>RGB</tt> values in all cases. Due to the <tt>RGB</tt> mapping from 0-255 and the <tt>I1I2I3</tt> mapping from 0-1 rounding errors may cause the <tt>I1I2I3</tt> values to differ slightly from what you might expect. </p>
-<!--COMMENTS:Color.i1i2i3--> &nbsp;<br>
-<br></ul>
-
-
-<a name="Color.normalize">
-<big><b>Color.normalize</big></b><br><ul>
- <i>Returns the normalized RGBA values of the Color.</i><br>
- <tt>Color.normalize(): Return tuple</tt><br>
-<p>Returns the normalized <tt>RGBA</tt> values of the Color as floating point values. </p>
-<!--COMMENTS:Color.normalize--> &nbsp;<br>
-<br></ul>
-
-
-<a name="Color.correct_gamma">
-<big><b>Color.correct_gamma</big></b><br><ul>
- <i>Applies a certain gamma value to the Color.</i><br>
- <tt>Color.correct_gamma (gamma): Return Color</tt><br>
-<p>Applies a certain gamma value to the Color and returns a new Color with the adjusted <tt>RGBA</tt> values. </p>
-<!--COMMENTS:Color.correct_gamma--> &nbsp;<br>
-<br></ul>
-
-
-<a name="Color.set_length">
-<big><b>Color.set_length</big></b><br><ul>
- <i>Set the number of elements in the Color to 1,2,3, or 4.</i><br>
- <tt>Color.set_length(len)</tt><br>
-<p>The default Color length is 4. Colors can have lengths 1,2,3 or 4. This is useful if you want to unpack to r,g,b and not r,g,b,a. If you want to get the length of a Color do len(acolor). </p>
-<p>New in pygame <tt>1.9.0</tt>. </p>
-<!--COMMENTS:Color.set_length--> &nbsp;<br>
-<br></ul>
-<br></ul>
-
-</body></html>
diff --git a/pygame/docs/ref/cursors.html b/pygame/docs/ref/cursors.html
deleted file mode 100755
index bb3152b..0000000
--- a/pygame/docs/ref/cursors.html
+++ /dev/null
@@ -1,135 +0,0 @@
-
-<html>
-<title>cursors - Pygame Documentation</title>
-<body bgcolor=#aaeebb text=#000000 link=#331111 vlink=#331111>
-
-
-<table cellpadding=0 cellspacing=0 border=0 style='border: 3px solid black;' width='100%'>
-<tr>
-<td bgcolor='#c2fc20' style='padding: 6px;' align=center valign=center><a href='http://www.pygame.org/'><img src='../pygame_tiny.gif' border=0 width=200 height=60></a><br><b>pygame documentation</b></td>
-<td bgcolor='#6aee28' style='border-left: 3px solid black; padding: 6px;' align=center valign=center>
- ||&nbsp;
- <a href=http://www.pygame.org>Pygame Home</a> &nbsp;||&nbsp;
- <a href=../index.html>Help Contents</a> &nbsp;||
- <a href=index.html>Reference Index</a> &nbsp;||
- <br>&nbsp;<br>
-
-<a href="camera.html">Camera</a>&nbsp;||&nbsp;
-<a href="cdrom.html">Cdrom</a>&nbsp;||&nbsp;
-<a href="color.html">Color</a>&nbsp;||&nbsp;
-<a href="cursors.html">Cursors</a>&nbsp;||&nbsp;
-<a href="display.html">Display</a>&nbsp;||&nbsp;
-<a href="draw.html">Draw</a>&nbsp;||&nbsp;
-<a href="event.html">Event</a>&nbsp;||&nbsp;
-<a href="examples.html">Examples</a>&nbsp;||&nbsp;
-<a href="font.html">Font</a>&nbsp;||&nbsp;
-<a href="gfxdraw.html">Gfxdraw</a>&nbsp;||&nbsp;
-<a href="image.html">Image</a>&nbsp;||&nbsp;
-<a href="joystick.html">Joystick</a>&nbsp;||&nbsp;
-<a href="key.html">Key</a>&nbsp;||&nbsp;
-<a href="locals.html">Locals</a>&nbsp;||&nbsp;
-<a href="mask.html">Mask</a>&nbsp;||&nbsp;
-<a href="midi.html">Midi</a>&nbsp;||&nbsp;
-<a href="mixer.html">Mixer</a>&nbsp;||&nbsp;
-<a href="mouse.html">Mouse</a>&nbsp;||&nbsp;
-<a href="movie.html">Movie</a>&nbsp;||&nbsp;
-<a href="music.html">Music</a>&nbsp;||&nbsp;
-<a href="overlay.html">Overlay</a>&nbsp;||&nbsp;
-<a href="pixelarray.html">Pixelarray</a>&nbsp;||&nbsp;
-<a href="pygame.html">Pygame</a>&nbsp;||&nbsp;
-<a href="rect.html">Rect</a>&nbsp;||&nbsp;
-<a href="scrap.html">Scrap</a>&nbsp;||&nbsp;
-<a href="sndarray.html">Sndarray</a>&nbsp;||&nbsp;
-<a href="sprite.html">Sprite</a>&nbsp;||&nbsp;
-<a href="surface.html">Surface</a>&nbsp;||&nbsp;
-<a href="surfarray.html">Surfarray</a>&nbsp;||&nbsp;
-<a href="tests.html">Tests</a>&nbsp;||&nbsp;
-<a href="time.html">Time</a>&nbsp;||&nbsp;
-<a href="transform.html">Transform</a>
-</td></tr></table>
-<br>
-
-
-<a name="pygame.cursors">
-<big><b>pygame.cursors</big></b><br><ul>
- <i>pygame module for cursor resources</i><br>
-<ul><small><table>
- <tr><td><a href="cursors.html#pygame.cursors.compile">pygame.cursors.compile</a> - <font size=-1>create binary cursor data from simple strings</font></td><td>create binary cursor data from simple strings</td></tr>
- <tr><td><a href="cursors.html#pygame.cursors.load_xbm">pygame.cursors.load_xbm</a> - <font size=-1>load cursor data from an xbm file</font></td><td>load cursor data from an xbm file</td></tr>
-</table></small></ul>
-<p>Pygame offers control over the system hardware cursor. Pygame only supports black and white cursors for the system. You control the cursor with functions inside <tt>pygame.mouse</tt>. </p>
-<p>This cursors module contains functions for loading and unencoding various cursor formats. These allow you to easily store your cursors in external files or directly as encoded python strings. </p>
-<p>The module includes several standard cursors. The <tt><a href="mouse.html#pygame.mouse.set_cursor">pygame.mouse.set_cursor</a> - <font size=-1>set the image for the system mouse cursor</font></tt> function takes several arguments. All those arguments have been stored in a single tuple you can call like this: </p>
-<pre> >>> pygame.mouse.set_cursor(*pygame.cursors.arrow)
-</pre><p>This module also contains a few cursors as formatted strings. You'll need to pass these to <tt><a href="cursors.html#pygame.cursors.compile">pygame.cursors.compile</a> - <font size=-1>create binary cursor data from simple strings</font></tt> function before you can use them. The example call would look like this: </p>
-<pre> >>> cursor = pygame.cursors.compile(pygame.cursors.textmarker_strings)
- >>> pygame.mouse.set_cursor(*cursor)
-</pre><p>The following variables are cursor bitmaps that can be used as cursor: </p>
-<ul>
- <li><tt> pygame.cursors.arrow </tt></li>
- <li><tt> pygame.cursors.diamond </tt></li>
- <li><tt> pygame.cursors.broken_x </tt></li>
- <li><tt> pygame.cursors.tri_left </tt></li>
- <li><tt> pygame.cursors.tri_right </tt></li>
-</ul>
-<p>The following strings can be converted into cursor bitmaps with <tt><a href="cursors.html#pygame.cursors.compile">pygame.cursors.compile</a> - <font size=-1>create binary cursor data from simple strings</font></tt> : </p>
-<ul>
- <li><tt> pygame.cursors.thickarrow_strings </tt></li>
- <li><tt> pygame.cursors.sizer_x_strings </tt></li>
- <li><tt> pygame.cursors.sizer_y_strings </tt></li>
- <li><tt> pygame.cursors.sizer_xy_strings </tt></li>
-</ul>
-<!--COMMENTS:pygame.cursors--> &nbsp;<br>
-
-
-<a name="pygame.cursors.compile">
-<big><b>pygame.cursors.compile</big></b><br><ul>
- <i>create binary cursor data from simple strings</i><br>
- <tt>pygame.cursor.compile(strings, black='X', white='.', xor='o'): return data, mask</tt><br>
-<p><tt>A</tt> sequence of strings can be used to create binary cursor data for the system cursor. The return values are the same format needed by <tt><a href="mouse.html#pygame.mouse.set_cursor">pygame.mouse.set_cursor</a> - <font size=-1>set the image for the system mouse cursor</font></tt>. </p>
-<p>If you are creating your own cursor strings, you can use any value represent the black and white pixels. Some system allow you to set a special toggle color for the system color, this is also called the xor color. If the system does not support xor cursors, that color will simply be black. </p>
-<p>The width of the strings must all be equal and be divisible by 8. An example set of cursor strings looks like this </p>
-<pre> thickarrow_strings = ( #sized 24x24
- "XX ",
- "XXX ",
- "XXXX ",
- "XX.XX ",
- "XX..XX ",
- "XX...XX ",
- "XX....XX ",
- "XX.....XX ",
- "XX......XX ",
- "XX.......XX ",
- "XX........XX ",
- "XX........XXX ",
- "XX......XXXXX ",
- "XX.XXX..XX ",
- "XXXX XX..XX ",
- "XX XX..XX ",
- " XX..XX ",
- " XX..XX ",
- " XX..XX ",
- " XXXX ",
- " XX ",
- " ",
- " ",
- " ")
-</pre>
-<!--COMMENTS:pygame.cursors.compile--> &nbsp;<br>
-<br></ul>
-
-
-<a name="pygame.cursors.load_xbm">
-<big><b>pygame.cursors.load_xbm</big></b><br><ul>
- <i>load cursor data from an xbm file</i><br>
- <tt>pygame.cursors.load_xbm(cursorfile): return cursor_args</tt><br>
- <tt>pygame.cursors.load_xbm(cursorfile, maskfile): return cursor_args</tt><br>
-<p>This loads cursors for a simple subset of <tt>XBM</tt> files. <tt>XBM</tt> files are traditionally used to store cursors on unix systems, they are an ascii format used to represent simple images. </p>
-<p>Sometimes the black and white color values will be split into two separate <tt>XBM</tt> files. You can pass a second maskfile argument to load the two images into a single cursor. </p>
-<p>The cursorfile and maskfile arguments can either be filenames or filelike object with the readlines method. </p>
-<p>The return value cursor_args can be passed directly to the <tt><a href="mouse.html#pygame.mouse.set_cursor">pygame.mouse.set_cursor</a> - <font size=-1>set the image for the system mouse cursor</font></tt> function. </p>
-<!--COMMENTS:pygame.cursors.load_xbm--> &nbsp;<br>
-<br></ul>
-<br></ul>
-
-</body></html>
diff --git a/pygame/docs/ref/display.html b/pygame/docs/ref/display.html
deleted file mode 100755
index 1a03ec0..0000000
--- a/pygame/docs/ref/display.html
+++ /dev/null
@@ -1,353 +0,0 @@
-
-<html>
-<title>display - Pygame Documentation</title>
-<body bgcolor=#aaeebb text=#000000 link=#331111 vlink=#331111>
-
-
-<table cellpadding=0 cellspacing=0 border=0 style='border: 3px solid black;' width='100%'>
-<tr>
-<td bgcolor='#c2fc20' style='padding: 6px;' align=center valign=center><a href='http://www.pygame.org/'><img src='../pygame_tiny.gif' border=0 width=200 height=60></a><br><b>pygame documentation</b></td>
-<td bgcolor='#6aee28' style='border-left: 3px solid black; padding: 6px;' align=center valign=center>
- ||&nbsp;
- <a href=http://www.pygame.org>Pygame Home</a> &nbsp;||&nbsp;
- <a href=../index.html>Help Contents</a> &nbsp;||
- <a href=index.html>Reference Index</a> &nbsp;||
- <br>&nbsp;<br>
-
-<a href="camera.html">Camera</a>&nbsp;||&nbsp;
-<a href="cdrom.html">Cdrom</a>&nbsp;||&nbsp;
-<a href="color.html">Color</a>&nbsp;||&nbsp;
-<a href="cursors.html">Cursors</a>&nbsp;||&nbsp;
-<a href="display.html">Display</a>&nbsp;||&nbsp;
-<a href="draw.html">Draw</a>&nbsp;||&nbsp;
-<a href="event.html">Event</a>&nbsp;||&nbsp;
-<a href="examples.html">Examples</a>&nbsp;||&nbsp;
-<a href="font.html">Font</a>&nbsp;||&nbsp;
-<a href="gfxdraw.html">Gfxdraw</a>&nbsp;||&nbsp;
-<a href="image.html">Image</a>&nbsp;||&nbsp;
-<a href="joystick.html">Joystick</a>&nbsp;||&nbsp;
-<a href="key.html">Key</a>&nbsp;||&nbsp;
-<a href="locals.html">Locals</a>&nbsp;||&nbsp;
-<a href="mask.html">Mask</a>&nbsp;||&nbsp;
-<a href="midi.html">Midi</a>&nbsp;||&nbsp;
-<a href="mixer.html">Mixer</a>&nbsp;||&nbsp;
-<a href="mouse.html">Mouse</a>&nbsp;||&nbsp;
-<a href="movie.html">Movie</a>&nbsp;||&nbsp;
-<a href="music.html">Music</a>&nbsp;||&nbsp;
-<a href="overlay.html">Overlay</a>&nbsp;||&nbsp;
-<a href="pixelarray.html">Pixelarray</a>&nbsp;||&nbsp;
-<a href="pygame.html">Pygame</a>&nbsp;||&nbsp;
-<a href="rect.html">Rect</a>&nbsp;||&nbsp;
-<a href="scrap.html">Scrap</a>&nbsp;||&nbsp;
-<a href="sndarray.html">Sndarray</a>&nbsp;||&nbsp;
-<a href="sprite.html">Sprite</a>&nbsp;||&nbsp;
-<a href="surface.html">Surface</a>&nbsp;||&nbsp;
-<a href="surfarray.html">Surfarray</a>&nbsp;||&nbsp;
-<a href="tests.html">Tests</a>&nbsp;||&nbsp;
-<a href="time.html">Time</a>&nbsp;||&nbsp;
-<a href="transform.html">Transform</a>
-</td></tr></table>
-<br>
-
-
-<a name="pygame.display">
-<big><b>pygame.display</big></b><br><ul>
- <i>pygame module to control the display window and screen</i><br>
-<ul><small><table>
- <tr><td><a href="display.html#pygame.display.init">pygame.display.init</a> - <font size=-1>initialize the display module</font></td><td>initialize the display module</td></tr>
- <tr><td><a href="display.html#pygame.display.quit">pygame.display.quit</a> - <font size=-1>uninitialize the display module</font></td><td>uninitialize the display module</td></tr>
- <tr><td><a href="display.html#pygame.display.get_init">pygame.display.get_init</a> - <font size=-1>true if the display module is initialized</font></td><td>true if the display module is initialized</td></tr>
- <tr><td><a href="display.html#pygame.display.set_mode">pygame.display.set_mode</a> - <font size=-1>initialize a window or screen for display</font></td><td>initialize a window or screen for display</td></tr>
- <tr><td><a href="display.html#pygame.display.get_surface">pygame.display.get_surface</a> - <font size=-1>get a reference to the currently set display surface</font></td><td>get a reference to the currently set display surface</td></tr>
- <tr><td><a href="display.html#pygame.display.flip">pygame.display.flip</a> - <font size=-1>update the full display Surface to the screen</font></td><td>update the full display Surface to the screen</td></tr>
- <tr><td><a href="display.html#pygame.display.update">pygame.display.update</a> - <font size=-1>update portions of the screen for software displays</font></td><td>update portions of the screen for software displays</td></tr>
- <tr><td><a href="display.html#pygame.display.get_driver">pygame.display.get_driver</a> - <font size=-1>get the name of the pygame display backend</font></td><td>get the name of the pygame display backend</td></tr>
- <tr><td><a href="display.html#pygame.display.Info">pygame.display.Info</a> - <font size=-1>Create a video display information object</font></td><td>Create a video display information object</td></tr>
- <tr><td><a href="display.html#pygame.display.get_wm_info">pygame.display.get_wm_info</a> - <font size=-1>Get information about the current windowing system</font></td><td>Get information about the current windowing system</td></tr>
- <tr><td><a href="display.html#pygame.display.list_modes">pygame.display.list_modes</a> - <font size=-1>get list of available fullscreen modes</font></td><td>get list of available fullscreen modes</td></tr>
- <tr><td><a href="display.html#pygame.display.mode_ok">pygame.display.mode_ok</a> - <font size=-1>pick the best color depth for a display mode</font></td><td>pick the best color depth for a display mode</td></tr>
- <tr><td><a href="display.html#pygame.display.gl_get_attribute">pygame.display.gl_get_attribute</a> - <font size=-1>get the value for an opengl flag for the current display</font></td><td>get the value for an opengl flag for the current display</td></tr>
- <tr><td><a href="display.html#pygame.display.gl_set_attribute">pygame.display.gl_set_attribute</a> - <font size=-1>request an opengl display attribute for the display mode</font></td><td>request an opengl display attribute for the display mode</td></tr>
- <tr><td><a href="display.html#pygame.display.get_active">pygame.display.get_active</a> - <font size=-1>true when the display is active on the display</font></td><td>true when the display is active on the display</td></tr>
- <tr><td><a href="display.html#pygame.display.iconify">pygame.display.iconify</a> - <font size=-1>iconify the display surface</font></td><td>iconify the display surface</td></tr>
- <tr><td><a href="display.html#pygame.display.toggle_fullscreen">pygame.display.toggle_fullscreen</a> - <font size=-1>switch between fullscreen and windowed displays</font></td><td>switch between fullscreen and windowed displays</td></tr>
- <tr><td><a href="display.html#pygame.display.set_gamma">pygame.display.set_gamma</a> - <font size=-1>change the hardware gamma ramps</font></td><td>change the hardware gamma ramps</td></tr>
- <tr><td><a href="display.html#pygame.display.set_gamma_ramp">pygame.display.set_gamma_ramp</a> - <font size=-1>set_gamma_ramp(red, green, blue): return bool</font></td><td>set_gamma_ramp(red, green, blue): return bool</td></tr>
- <tr><td><a href="display.html#pygame.display.set_icon">pygame.display.set_icon</a> - <font size=-1>change the system image for the display window</font></td><td>change the system image for the display window</td></tr>
- <tr><td><a href="display.html#pygame.display.set_caption">pygame.display.set_caption</a> - <font size=-1>set the current window caption</font></td><td>set the current window caption</td></tr>
- <tr><td><a href="display.html#pygame.display.get_caption">pygame.display.get_caption</a> - <font size=-1>get the current window caption</font></td><td>get the current window caption</td></tr>
- <tr><td><a href="display.html#pygame.display.set_palette">pygame.display.set_palette</a> - <font size=-1>set the display color palette for indexed displays</font></td><td>set the display color palette for indexed displays</td></tr>
-</table></small></ul>
-<p>This module offers control over the pygame display. Pygame has a single display Surface that is either contained in a window or runs full screen. Once you create the display you treat it as a regular Surface. Changes are not immediately visible onscreen, you must choose one of the two flipping functions to update the actual display. </p>
-<p>The origin of the display, where x = 0, and y = 0 is the top left of the screen. Both axis increase positively towards the botom right of the screen. </p>
-<p>The pygame display can actually be initialized in one of several modes. By default the display is a basic software driven framebuffer. You can request special modules like hardware acceleration and OpenGL support. These are controlled by flags passed to <tt><a href="display.html#pygame.display.set_mode">pygame.display.set_mode</a> - <font size=-1>initialize a window or screen for display</font></tt>. </p>
-<p>Pygame can only have a single display active at any time. Creating a new one with <tt><a href="display.html#pygame.display.set_mode">pygame.display.set_mode</a> - <font size=-1>initialize a window or screen for display</font></tt> will close the previous display. If precise control is needed over the pixel format or display resolutions, use the functions <tt><a href="display.html#pygame.display.mode_ok">pygame.display.mode_ok</a> - <font size=-1>pick the best color depth for a display mode</font></tt>, <tt><a href="display.html#pygame.display.list_modes">pygame.display.list_modes</a> - <font size=-1>get list of available fullscreen modes</font></tt>, and <tt><a href="display.html#pygame.display.Info">pygame.display.Info</a> - <font size=-1>Create a video display information object</font></tt> to query information about the display. </p>
-<p>Once the display Surface is created, the functions from this module effect the single existing display. The Surface becomes invalid if the module is uninitialized. If a new display mode is set, the existing Surface will automatically switch to operate on the new display. </p>
-<p>Then the display mode is set, several events are placed on the pygame event queue. <tt>pygame.QUIT</tt> is sent when the user has requested the program to shutdown. The window will receive <tt>pygame.ACTIVEEVENT</tt> events as the display gains and loses input focus. If the display is set with the <tt>pygame.RESIZABLE</tt> flag, <tt>pygame.VIDEORESIZE</tt> events will be sent when the user adjusts the window dimensions. Hardware displays that draw direct to the screen will get <tt>pygame.VIDEOEXPOSE</tt> events when portions of the window must be redrawn. </p>
-<!--COMMENTS:pygame.display--> &nbsp;<br>
-
-
-<a name="pygame.display.init">
-<big><b>pygame.display.init</big></b><br><ul>
- <i>initialize the display module</i><br>
- <tt>pygame.display.init(): return None</tt><br>
-<p>Initializes the pygame display module. The display module cannot do anything until it is initialized. This is usually handled for you automatically when you call the higher level <tt><a href="pygame.html#pygame.init">pygame.init</a> - <font size=-1>initialize all imported pygame modules</font></tt>. </p>
-<p>Pygame will select from one of several internal display backends when it is initialized. The display mode will be chosen depending on the platform and permissions of current user. Before the display module is initialized the environment variable <tt>SDL_VIDEODRIVER</tt> can be set to control which backend is used. The systems with multiple choices are listed here. </p>
-<pre> Windows : windib, directx
- Unix : x11, dga, fbcon, directfb, ggi, vgl, svgalib, aalib
-</pre><p>On some platforms it is possible to embed the pygame display into an already existing window. To do this, the environment variable <tt>SDL_WINDOWID</tt> must be set to a string containing the window id or handle. The environment variable is checked when the pygame display is initialized. Be aware that there can be many strange side effects when running in an embedded display. </p>
-<p>It is harmless to call this more than once, repeated calls have no effect. </p>
-<!--COMMENTS:pygame.display.init--> &nbsp;<br>
-<br></ul>
-
-
-<a name="pygame.display.quit">
-<big><b>pygame.display.quit</big></b><br><ul>
- <i>uninitialize the display module</i><br>
- <tt>pygame.display.quit(): return None</tt><br>
-<p>This will shut down the entire display module. This means any active displays will be closed. This will also be handled automatically when the program exits. </p>
-<p>It is harmless to call this more than once, repeated calls have no effect. </p>
-<!--COMMENTS:pygame.display.quit--> &nbsp;<br>
-<br></ul>
-
-
-<a name="pygame.display.get_init">
-<big><b>pygame.display.get_init</big></b><br><ul>
- <i>true if the display module is initialized</i><br>
- <tt>pygame.display.get_init(): return bool</tt><br>
-<p>Returns True if the <tt>pygame.display</tt> module is currently initialized. </p>
-<!--COMMENTS:pygame.display.get_init--> &nbsp;<br>
-<br></ul>
-
-
-<a name="pygame.display.set_mode">
-<big><b>pygame.display.set_mode</big></b><br><ul>
- <i>initialize a window or screen for display</i><br>
- <tt>pygame.display.set_mode(resolution=(0,0), flags=0, depth=0): return Surface</tt><br>
-<p>This function will create a display Surface. The arguments passed in are requests for a display type. The actual created display will be the best possible match supported by the system. </p>
-<p>The resolution argument is a pair of numbers representing the width and height. The flags argument is a collection of additional options. The depth argument represents the number of bits to use for color. </p>
-<p>The Surface that gets returned can be drawn to like a regular Surface but changes will eventually be seen on the monitor. </p>
-<p>If no resolution is passed or is set to (0, 0) and pygame uses <tt>SDL</tt> version <tt>1.2.10</tt> or above, the created Surface will have the same size as the current screen resolution. If only the width or height are set to 0, the Surface will have the same width or height as the screen resolution. Using a <tt>SDL</tt> version prior to <tt>1.2.10</tt> will raise an exception. </p>
-<p>It is usually best to not pass the depth argument. It will default to the best and fastest color depth for the system. If your game requires a specific color format you can control the depth with this argument. Pygame will emulate an unavailable color depth which can be slow. </p>
-<p>When requesting fullscreen display modes, sometimes an exact match for the requested resolution cannot be made. In these situations pygame will select the closest compatable match. The returned surface will still always match the requested resolution. </p>
-<p>The flags argument controls which type of display you want. There are several to choose from, and you can even combine multiple types using the bitwise or operator, (the pipe "|" character). If you pass 0 or no flags argument it will default to a software driven window. Here are the display flags you will want to choose from: </p>
-<pre> pygame.FULLSCREEN create a fullscreen display
- pygame.DOUBLEBUF recommended for HWSURFACE or OPENGL
- pygame.HWSURFACE hardware accelerated, only in FULLSCREEN
- pygame.OPENGL create an opengl renderable display
- pygame.RESIZABLE display window should be sizeable
- pygame.NOFRAME display window will have no border or controls
-</pre>
-<!--COMMENTS:pygame.display.set_mode--> &nbsp;<br>
-<br></ul>
-
-
-<a name="pygame.display.get_surface">
-<big><b>pygame.display.get_surface</big></b><br><ul>
- <i>get a reference to the currently set display surface</i><br>
- <tt>pygame.display.get_surface(): return Surface</tt><br>
-<p>Return a reference to the currently set display Surface. If no display mode has been set this will return None. </p>
-<!--COMMENTS:pygame.display.get_surface--> &nbsp;<br>
-<br></ul>
-
-
-<a name="pygame.display.flip">
-<big><b>pygame.display.flip</big></b><br><ul>
- <i>update the full display Surface to the screen</i><br>
- <tt>pygame.display.flip(): return None</tt><br>
-<p>This will update the contents of the entire display. If your display mode is using the flags <tt>pygame.HWSURFACE</tt> and <tt>pygame.DOUBLEBUF</tt>, this will wait for a vertical retrace and swap the surfaces. If you are using a different type of display mode, it will simply update the entire contents of the surface. </p>
-<p>When using an <tt>pygame.OPENGL</tt> display mode this will perform a gl buffer swap. </p>
-<!--COMMENTS:pygame.display.flip--> &nbsp;<br>
-<br></ul>
-
-
-<a name="pygame.display.update">
-<big><b>pygame.display.update</big></b><br><ul>
- <i>update portions of the screen for software displays</i><br>
- <tt>pygame.display.update(rectangle=None): return None</tt><br>
- <tt>pygame.display.update(rectangle_list): return None</tt><br>
-<p>This function is like an optimized version of <tt><a href="display.html#pygame.display.flip">pygame.display.flip</a> - <font size=-1>update the full display Surface to the screen</font></tt> for software displays. It allows only a portion of the screen to updated, instead of the entire area. If no argument is passed it updates the entire Surface area like <tt><a href="display.html#pygame.display.flip">pygame.display.flip</a> - <font size=-1>update the full display Surface to the screen</font></tt>. </p>
-<p>You can pass the function a single rectangle, or a sequence of rectangles. It is more efficient to pass many rectangles at once than to call update multiple times with single or a partial list of rectangles. If passing a sequence of rectangles it is safe to include None values in the list, which will be skipped. </p>
-<p>This call cannot be used on <tt>pygame.OPENGL</tt> displays and will generate an exception. </p>
-<!--COMMENTS:pygame.display.update--> &nbsp;<br>
-<br></ul>
-
-
-<a name="pygame.display.get_driver">
-<big><b>pygame.display.get_driver</big></b><br><ul>
- <i>get the name of the pygame display backend</i><br>
- <tt>pygame.display.get_driver(): return name</tt><br>
-<p>Pygame chooses one of many available display backends when it is initialized. This returns the internal name used for the display backend. This can be used to provide limited information about what display capabilities might be accelerated. See the <tt>SDL_VIDEODRIVER</tt> flags in <tt><a href="display.html#pygame.display.set_mode">pygame.display.set_mode</a> - <font size=-1>initialize a window or screen for display</font></tt> to see some of the common options. </p>
-<!--COMMENTS:pygame.display.get_driver--> &nbsp;<br>
-<br></ul>
-
-
-<a name="pygame.display.Info">
-<big><b>pygame.display.Info</big></b><br><ul>
- <i>Create a video display information object</i><br>
- <tt>pygame.display.Info(): return VideoInfo</tt><br>
-<p>Creates a simple object containing several attributes to describe the current graphics environment. If this is called before <tt><a href="display.html#pygame.display.set_mode">pygame.display.set_mode</a> - <font size=-1>initialize a window or screen for display</font></tt> some platforms can provide information about the default display mode. This can also be called after setting the display mode to verify specific display options were satisfied. The VidInfo object has several attributes: </p>
-<pre> hw: True if the display is hardware accelerated
- wm: True if windowed display modes can be used
- video_mem: The megabytes of video memory on the display. This is 0 if unknown
- bitsize: Number of bits used to store each pixel
- bytesize: Number of bytes used to store each pixel
- masks: Four values used to pack RGBA values into pixels
- shifts: Four values used to pack RGBA values into pixels
- losses: Four values used to pack RGBA values into pixels
- blit_hw: True if hardware Surface blitting is accelerated
- blit_hw_CC: True if hardware Surface colorkey blitting is accelerated
- blit_hw_A: True if hardware Surface pixel alpha blitting is accelerated
- blit_sw: True if software Surface blitting is accelerated
- blit_sw_CC: True if software Surface colorkey blitting is accelerated
- blit_sw_A: True if software Surface pixel alpha blitting is acclerated
- current_h, current_h: Width and height of the current video mode, or of the
- desktop mode if called before the display.set_mode is called.
- (current_h, current_w are available since SDL 1.2.10, and pygame 1.8.0)
- They are -1 on error, or if an old SDL is being used.
-</pre>
-<!--COMMENTS:pygame.display.Info--> &nbsp;<br>
-<br></ul>
-
-
-<a name="pygame.display.get_wm_info">
-<big><b>pygame.display.get_wm_info</big></b><br><ul>
- <i>Get information about the current windowing system</i><br>
- <tt>pygame.display.get_wm_info(): return dict</tt><br>
-<p>Creates a dictionary filled with string keys. The strings and values are arbitrarily created by the system. Some systems may have no information and an empty dictionary will be returned. Most platforms will return a "window" key with the value set to the system id for the current display. </p>
-<p>New with pygame <tt>1.7.1</tt> </p>
-<!--COMMENTS:pygame.display.get_wm_info--> &nbsp;<br>
-<br></ul>
-
-
-<a name="pygame.display.list_modes">
-<big><b>pygame.display.list_modes</big></b><br><ul>
- <i>get list of available fullscreen modes</i><br>
- <tt>pygame.display.list_modes(depth=0, flags=pygame.FULLSCREEN): return list</tt><br>
-<p>This function returns a list of possible dimensions for a specified color depth. The return value will be an empty list if no display modes are available with the given arguments. <tt>A</tt> return value of -1 means that any requested resolution should work (this is likely the case for windowed modes). Mode sizes are sorted from biggest to smallest. </p>
-<p>If depth is 0, <tt>SDL</tt> will choose the current/best color depth for the display. The flags defaults to <tt>pygame.FULLSCREEN</tt>, but you may need to add additional flags for specific fullscreen modes. </p>
-<!--COMMENTS:pygame.display.list_modes--> &nbsp;<br>
-<br></ul>
-
-
-<a name="pygame.display.mode_ok">
-<big><b>pygame.display.mode_ok</big></b><br><ul>
- <i>pick the best color depth for a display mode</i><br>
- <tt>pygame.display.mode_ok(size, flags=0, depth=0): return depth</tt><br>
-<p>This function uses the same arguments as <tt><a href="display.html#pygame.display.set_mode">pygame.display.set_mode</a> - <font size=-1>initialize a window or screen for display</font></tt>. It is used to depermine if a requested display mode is available. It will return 0 if the display mode cannot be set. Otherwise it will return a pixel depth that best matches the display asked for. </p>
-<p>Usually the depth argument is not passed, but some platforms can support multiple display depths. If passed it will hint to which depth is a better match. </p>
-<p>The most useful flags to pass will be <tt>pygame.HWSURFACE</tt>, <tt>pygame.DOUBLEBUF</tt>, and maybe <tt>pygame.FULLSCREEN</tt>. The function will return 0 if these display flags cannot be set. </p>
-<!--COMMENTS:pygame.display.mode_ok--> &nbsp;<br>
-<br></ul>
-
-
-<a name="pygame.display.gl_get_attribute">
-<big><b>pygame.display.gl_get_attribute</big></b><br><ul>
- <i>get the value for an opengl flag for the current display</i><br>
- <tt>pygame.display.gl_get_attribute(flag): return value</tt><br>
-<p>After calling <tt><a href="display.html#pygame.display.set_mode">pygame.display.set_mode</a> - <font size=-1>initialize a window or screen for display</font></tt> with the <tt>pygame.OPENGL</tt> flag, it is a good idea to check the value of any requested OpenGL attributes. See <tt><a href="display.html#pygame.display.gl_set_attribute">pygame.display.gl_set_attribute</a> - <font size=-1>request an opengl display attribute for the display mode</font></tt> for a list of valid flags. </p>
-<!--COMMENTS:pygame.display.gl_get_attribute--> &nbsp;<br>
-<br></ul>
-
-
-<a name="pygame.display.gl_set_attribute">
-<big><b>pygame.display.gl_set_attribute</big></b><br><ul>
- <i>request an opengl display attribute for the display mode</i><br>
- <tt>pygame.display.gl_set_attribute(flag, value): return None</tt><br>
-<p>When calling <tt><a href="display.html#pygame.display.set_mode">pygame.display.set_mode</a> - <font size=-1>initialize a window or screen for display</font></tt> with the <tt>pygame.OPENGL</tt> flag, Pygame automatically handles setting the OpenGL attributes like color and doublebuffering. OpenGL offers several other attributes you may want control over. Pass one of these attributes as the flag, and its appropriate value. This must be called before <tt><a href="display.html#pygame.display.set_mode">pygame.display.set_mode</a> - <font size=-1>initialize a window or screen for display</font></tt> </p>
-<p>The <tt>OPENGL</tt> flags are; </p>
-<pre> GL_ALPHA_SIZE, GL_DEPTH_SIZE, GL_STENCIL_SIZE, GL_ACCUM_RED_SIZE,
- GL_ACCUM_GREEN_SIZE, GL_ACCUM_BLUE_SIZE, GL_ACCUM_ALPHA_SIZE,
- GL_MULTISAMPLEBUFFERS, GL_MULTISAMPLESAMPLES, GL_STEREO
-</pre>
-<!--COMMENTS:pygame.display.gl_set_attribute--> &nbsp;<br>
-<br></ul>
-
-
-<a name="pygame.display.get_active">
-<big><b>pygame.display.get_active</big></b><br><ul>
- <i>true when the display is active on the display</i><br>
- <tt>pygame.display.get_active(): return bool</tt><br>
-<p>After <tt><a href="display.html#pygame.display.set_mode">pygame.display.set_mode</a> - <font size=-1>initialize a window or screen for display</font></tt> is called the display Surface will be visible on the screen. Most windowed displays can be hidden by the user. If the display Surface is hidden or iconified this will return False. </p>
-<!--COMMENTS:pygame.display.get_active--> &nbsp;<br>
-<br></ul>
-
-
-<a name="pygame.display.iconify">
-<big><b>pygame.display.iconify</big></b><br><ul>
- <i>iconify the display surface</i><br>
- <tt>pygame.display.iconify(): return bool</tt><br>
-<p>Request the window for the display surface be iconified or hidden. Not all systems and displays support an iconified display. The function will return True if successfull. </p>
-<p>When the display is iconified <tt><a href="display.html#pygame.display.get_active">pygame.display.get_active</a> - <font size=-1>true when the display is active on the display</font></tt> will return False. The event queue should receive a <tt>ACTIVEEVENT</tt> event when the window has been iconified. </p>
-<!--COMMENTS:pygame.display.iconify--> &nbsp;<br>
-<br></ul>
-
-
-<a name="pygame.display.toggle_fullscreen">
-<big><b>pygame.display.toggle_fullscreen</big></b><br><ul>
- <i>switch between fullscreen and windowed displays</i><br>
- <tt>pygame.display.toggle_fullscreen(): return bool</tt><br>
-<p>Switches the display window between windowed and fullscreen modes. This function only works under the unix x11 video driver. For most situations it is better to call <tt><a href="display.html#pygame.display.set_mode">pygame.display.set_mode</a> - <font size=-1>initialize a window or screen for display</font></tt> with new display flags. </p>
-<!--COMMENTS:pygame.display.toggle_fullscreen--> &nbsp;<br>
-<br></ul>
-
-
-<a name="pygame.display.set_gamma">
-<big><b>pygame.display.set_gamma</big></b><br><ul>
- <i>change the hardware gamma ramps</i><br>
- <tt>pygame.display.set_gamma(red, green=None, blue=None): return bool</tt><br>
-<p>Set the red, green, and blue gamma values on the display hardware. If the green and blue arguments are not passed, they will both be the same as red. Not all systems and hardware support gamma ramps, if the function succeeds it will return True. </p>
-<p><tt>A</tt> gamma value of <tt>1.0</tt> creates a linear color table. Lower values will darken the display and higher values will brighten. </p>
-<!--COMMENTS:pygame.display.set_gamma--> &nbsp;<br>
-<br></ul>
-
-
-<a name="pygame.display.set_gamma_ramp">
-<big><b>pygame.display.set_gamma_ramp</big></b><br><ul>
- <i>set_gamma_ramp(red, green, blue): return bool</i><br>
- <tt>change the hardware gamma ramps with a custom lookup</tt><br>
- <tt>pygame.display.set_gamma_ramp(red, green, blue): return bool</tt><br>
-<p>Set the red, green, and blue gamma ramps with an explicit lookup table. Each argument should be sequence of 256 integers. The integers should range between 0 and 0xffff. Not all systems and hardware support gamma ramps, if the function succeeds it will return True. </p>
-<!--COMMENTS:pygame.display.set_gamma_ramp--> &nbsp;<br>
-<br></ul>
-
-
-<a name="pygame.display.set_icon">
-<big><b>pygame.display.set_icon</big></b><br><ul>
- <i>change the system image for the display window</i><br>
- <tt>pygame.display.set_icon(Surface): return None</tt><br>
-<p>Sets the runtime icon the system will use to represent the display window. All windows default to a simple pygame logo for the window icon. </p>
-<p>You can pass any surface, but most systems want a smaller image around 32x32. The image can have colorkey transparency which will be passed to the system. </p>
-<p>Some systems do not allow the window icon to change after it has been shown. This function can be called before <tt><a href="display.html#pygame.display.set_mode">pygame.display.set_mode</a> - <font size=-1>initialize a window or screen for display</font></tt> to create the icon before the display mode is set. </p>
-<!--COMMENTS:pygame.display.set_icon--> &nbsp;<br>
-<br></ul>
-
-
-<a name="pygame.display.set_caption">
-<big><b>pygame.display.set_caption</big></b><br><ul>
- <i>set the current window caption</i><br>
- <tt>pygame.display.set_caption(title, icontitle=None): return None</tt><br>
-<p>If the display has a window title, this function will change the name on the window. Some systems support an alternate shorter title to be used for minimized displays. </p>
-<!--COMMENTS:pygame.display.set_caption--> &nbsp;<br>
-<br></ul>
-
-
-<a name="pygame.display.get_caption">
-<big><b>pygame.display.get_caption</big></b><br><ul>
- <i>get the current window caption</i><br>
- <tt>pygame.display.get_caption(): return (title, icontitle)</tt><br>
-<p>Returns the title and icontitle for the display Surface. These will often be the same value. </p>
-<!--COMMENTS:pygame.display.get_caption--> &nbsp;<br>
-<br></ul>
-
-
-<a name="pygame.display.set_palette">
-<big><b>pygame.display.set_palette</big></b><br><ul>
- <i>set the display color palette for indexed displays</i><br>
- <tt>pygame.display.set_palette(palette=None): return None</tt><br>
-<p>This will change the video display color palette for 8bit displays. This does not change the palette for the actual display Surface, only the palette that is used to display the Surface. If no palette argument is passed, the system default palette will be restored. The palette is a sequence of <tt>RGB</tt> triplets. </p>
-<!--COMMENTS:pygame.display.set_palette--> &nbsp;<br>
-<br></ul>
-<br></ul>
-
-</body></html>
diff --git a/pygame/docs/ref/draw.html b/pygame/docs/ref/draw.html
deleted file mode 100755
index a802146..0000000
--- a/pygame/docs/ref/draw.html
+++ /dev/null
@@ -1,158 +0,0 @@
-
-<html>
-<title>draw - Pygame Documentation</title>
-<body bgcolor=#aaeebb text=#000000 link=#331111 vlink=#331111>
-
-
-<table cellpadding=0 cellspacing=0 border=0 style='border: 3px solid black;' width='100%'>
-<tr>
-<td bgcolor='#c2fc20' style='padding: 6px;' align=center valign=center><a href='http://www.pygame.org/'><img src='../pygame_tiny.gif' border=0 width=200 height=60></a><br><b>pygame documentation</b></td>
-<td bgcolor='#6aee28' style='border-left: 3px solid black; padding: 6px;' align=center valign=center>
- ||&nbsp;
- <a href=http://www.pygame.org>Pygame Home</a> &nbsp;||&nbsp;
- <a href=../index.html>Help Contents</a> &nbsp;||
- <a href=index.html>Reference Index</a> &nbsp;||
- <br>&nbsp;<br>
-
-<a href="camera.html">Camera</a>&nbsp;||&nbsp;
-<a href="cdrom.html">Cdrom</a>&nbsp;||&nbsp;
-<a href="color.html">Color</a>&nbsp;||&nbsp;
-<a href="cursors.html">Cursors</a>&nbsp;||&nbsp;
-<a href="display.html">Display</a>&nbsp;||&nbsp;
-<a href="draw.html">Draw</a>&nbsp;||&nbsp;
-<a href="event.html">Event</a>&nbsp;||&nbsp;
-<a href="examples.html">Examples</a>&nbsp;||&nbsp;
-<a href="font.html">Font</a>&nbsp;||&nbsp;
-<a href="gfxdraw.html">Gfxdraw</a>&nbsp;||&nbsp;
-<a href="image.html">Image</a>&nbsp;||&nbsp;
-<a href="joystick.html">Joystick</a>&nbsp;||&nbsp;
-<a href="key.html">Key</a>&nbsp;||&nbsp;
-<a href="locals.html">Locals</a>&nbsp;||&nbsp;
-<a href="mask.html">Mask</a>&nbsp;||&nbsp;
-<a href="midi.html">Midi</a>&nbsp;||&nbsp;
-<a href="mixer.html">Mixer</a>&nbsp;||&nbsp;
-<a href="mouse.html">Mouse</a>&nbsp;||&nbsp;
-<a href="movie.html">Movie</a>&nbsp;||&nbsp;
-<a href="music.html">Music</a>&nbsp;||&nbsp;
-<a href="overlay.html">Overlay</a>&nbsp;||&nbsp;
-<a href="pixelarray.html">Pixelarray</a>&nbsp;||&nbsp;
-<a href="pygame.html">Pygame</a>&nbsp;||&nbsp;
-<a href="rect.html">Rect</a>&nbsp;||&nbsp;
-<a href="scrap.html">Scrap</a>&nbsp;||&nbsp;
-<a href="sndarray.html">Sndarray</a>&nbsp;||&nbsp;
-<a href="sprite.html">Sprite</a>&nbsp;||&nbsp;
-<a href="surface.html">Surface</a>&nbsp;||&nbsp;
-<a href="surfarray.html">Surfarray</a>&nbsp;||&nbsp;
-<a href="tests.html">Tests</a>&nbsp;||&nbsp;
-<a href="time.html">Time</a>&nbsp;||&nbsp;
-<a href="transform.html">Transform</a>
-</td></tr></table>
-<br>
-
-
-<a name="pygame.draw">
-<big><b>pygame.draw</big></b><br><ul>
- <i>pygame module for drawing shapes</i><br>
-<ul><small><table>
- <tr><td><a href="draw.html#pygame.draw.rect">pygame.draw.rect</a> - <font size=-1>draw a rectangle shape</font></td><td>draw a rectangle shape</td></tr>
- <tr><td><a href="draw.html#pygame.draw.polygon">pygame.draw.polygon</a> - <font size=-1>draw a shape with any number of sides</font></td><td>draw a shape with any number of sides</td></tr>
- <tr><td><a href="draw.html#pygame.draw.circle">pygame.draw.circle</a> - <font size=-1>draw a circle around a point</font></td><td>draw a circle around a point</td></tr>
- <tr><td><a href="draw.html#pygame.draw.ellipse">pygame.draw.ellipse</a> - <font size=-1>draw a round shape inside a rectangle</font></td><td>draw a round shape inside a rectangle</td></tr>
- <tr><td><a href="draw.html#pygame.draw.arc">pygame.draw.arc</a> - <font size=-1>draw a partial section of an ellipse</font></td><td>draw a partial section of an ellipse</td></tr>
- <tr><td><a href="draw.html#pygame.draw.line">pygame.draw.line</a> - <font size=-1>draw a straight line segment</font></td><td>draw a straight line segment</td></tr>
- <tr><td><a href="draw.html#pygame.draw.lines">pygame.draw.lines</a> - <font size=-1>draw multiple contiguous line segments</font></td><td>draw multiple contiguous line segments</td></tr>
- <tr><td><a href="draw.html#pygame.draw.aaline">pygame.draw.aaline</a> - <font size=-1>draw fine antialiased lines</font></td><td>draw fine antialiased lines</td></tr>
- <tr><td><a href="draw.html#pygame.draw.aalines">pygame.draw.aalines</a> - <font size=-1>pygame.draw.aalines(Surface, color, closed, pointlist, blend=1): return Rect</font></td><td>pygame.draw.aalines(Surface, color, closed, pointlist, blend=1): return Rect</td></tr>
-</table></small></ul>
-<p>Draw several simple shapes to a Surface. These functions will work for rendering to any format of Surface. Rendering to hardware Surfaces will be slower than regular software Surfaces. </p>
-<p>Most of the functions take a width argument to represent the size of stroke around the edge of the shape. If a width of 0 is passed the function will actually solid fill the entire shape. </p>
-<p>All the drawing functions respect the clip area for the Surface, and will be constrained to that area. The functions return a rectangle representing the bounding area of changed pixels. </p>
-<p>Most of the arguments accept a color argument that is an <tt>RGB</tt> triplet. These can also accept an <tt>RGBA</tt> quadruplet. The alpha value will be written directly into the Surface if it contains pixel alphas, but the draw function will not draw transparently. The color argument can also be an integer pixel value that is already mapped to the Surface's pixel format. </p>
-<p>These functions must temporarily lock the Surface they are operating on. Many sequential drawing calls can be sped up by locking and unlocking the Surface object around the draw calls. </p>
-<!--COMMENTS:pygame.draw--> &nbsp;<br>
-
-
-<a name="pygame.draw.rect">
-<big><b>pygame.draw.rect</big></b><br><ul>
- <i>draw a rectangle shape</i><br>
- <tt>pygame.draw.rect(Surface, color, Rect, width=0): return Rect</tt><br>
-<p>Draws a rectangular shape on the Surface. The given Rect is the area of the rectangle. The width argument is the thickness to draw the outer edge. If width is zero then the rectangle will be filled. </p>
-<p>Keep in mind the <tt><a href="surface.html#Surface.fill">Surface.fill</a> - <font size=-1>fill Surface with a solid color</font></tt> method works just as well for drawing filled rectangles. In fact the <tt><a href="surface.html#Surface.fill">Surface.fill</a> - <font size=-1>fill Surface with a solid color</font></tt> can be hardware accelerated on some platforms with both software and hardware display modes. </p>
-<!--COMMENTS:pygame.draw.rect--> &nbsp;<br>
-<br></ul>
-
-
-<a name="pygame.draw.polygon">
-<big><b>pygame.draw.polygon</big></b><br><ul>
- <i>draw a shape with any number of sides</i><br>
- <tt>pygame.draw.polygon(Surface, color, pointlist, width=0): return Rect</tt><br>
-<p>Draws a polygonal shape on the Surface. The pointlist argument is the vertices of the polygon. The width argument is the thickness to draw the outer edge. If width is zero then the polygon will be filled. </p>
-<p>For aapolygon, use aalines with the 'closed' parameter. </p>
-<!--COMMENTS:pygame.draw.polygon--> &nbsp;<br>
-<br></ul>
-
-
-<a name="pygame.draw.circle">
-<big><b>pygame.draw.circle</big></b><br><ul>
- <i>draw a circle around a point</i><br>
- <tt>pygame.draw.circle(Surface, color, pos, radius, width=0): return Rect</tt><br>
-<p>Draws a circular shape on the Surface. The pos argument is the center of the circle, and radius is the size. The width argument is the thickness to draw the outer edge. If width is zero then the circle will be filled. </p>
-<!--COMMENTS:pygame.draw.circle--> &nbsp;<br>
-<br></ul>
-
-
-<a name="pygame.draw.ellipse">
-<big><b>pygame.draw.ellipse</big></b><br><ul>
- <i>draw a round shape inside a rectangle</i><br>
- <tt>pygame.draw.ellipse(Surface, color, Rect, width=0): return Rect</tt><br>
-<p>Draws an elliptical shape on the Surface. The given rectangle is the area that the circle will fill. The width argument is the thickness to draw the outer edge. If width is zero then the ellipse will be filled. </p>
-<!--COMMENTS:pygame.draw.ellipse--> &nbsp;<br>
-<br></ul>
-
-
-<a name="pygame.draw.arc">
-<big><b>pygame.draw.arc</big></b><br><ul>
- <i>draw a partial section of an ellipse</i><br>
- <tt>pygame.draw.arc(Surface, color, Rect, start_angle, stop_angle, width=1): return Rect</tt><br>
-<p>Draws an elliptical arc on the Surface. The rect argument is the area that the ellipse will fill. The two angle arguments are the initial and final angle in radians, with the zero on the right. The width argument is the thickness to draw the outer edge. </p>
-<!--COMMENTS:pygame.draw.arc--> &nbsp;<br>
-<br></ul>
-
-
-<a name="pygame.draw.line">
-<big><b>pygame.draw.line</big></b><br><ul>
- <i>draw a straight line segment</i><br>
- <tt>pygame.draw.line(Surface, color, start_pos, end_pos, width=1): return Rect</tt><br>
-<p>Draw a straight line segment on a Surface. There are no endcaps, the ends are squared off for thick lines. </p>
-<!--COMMENTS:pygame.draw.line--> &nbsp;<br>
-<br></ul>
-
-
-<a name="pygame.draw.lines">
-<big><b>pygame.draw.lines</big></b><br><ul>
- <i>draw multiple contiguous line segments</i><br>
- <tt>pygame.draw.lines(Surface, color, closed, pointlist, width=1): return Rect</tt><br>
-<p>Draw a sequence of lines on a Surface. The pointlist argument is a series of points that are connected by a line. If the closed argument is true an additional line segment is drawn between the first and last points. </p>
-<p>This does not draw any endcaps or miter joints. Lines with sharp corners and wide line widths can have improper looking corners. </p>
-<!--COMMENTS:pygame.draw.lines--> &nbsp;<br>
-<br></ul>
-
-
-<a name="pygame.draw.aaline">
-<big><b>pygame.draw.aaline</big></b><br><ul>
- <i>draw fine antialiased lines</i><br>
- <tt>pygame.draw.aaline(Surface, color, startpos, endpos, blend=1): return Rect</tt><br>
-<p>Draws an anti-aliased line on a surface. This will respect the clipping rectangle. <tt>A</tt> bounding box of the affected area is returned returned as a rectangle. If blend is true, the shades will be be blended with existing pixel shades instead of overwriting them. This function accepts floating point values for the end points. </p>
-<!--COMMENTS:pygame.draw.aaline--> &nbsp;<br>
-<br></ul>
-
-
-<a name="pygame.draw.aalines">
-<big><b>pygame.draw.aalines</big></b><br><ul>
- <i>pygame.draw.aalines(Surface, color, closed, pointlist, blend=1): return Rect</i><br>
-<p>Draws a sequence on a surface. You must pass at least two points in the sequence of points. The closed argument is a simple boolean and if true, a line will be draw between the first and last points. The boolean blend argument set to true will blend the shades with existing shades instead of overwriting them. This function accepts floating point values for the end points. </p>
-<!--COMMENTS:pygame.draw.aalines--> &nbsp;<br>
-<br></ul>
-<br></ul>
-
-</body></html>
diff --git a/pygame/docs/ref/event.html b/pygame/docs/ref/event.html
deleted file mode 100755
index fbaa7d1..0000000
--- a/pygame/docs/ref/event.html
+++ /dev/null
@@ -1,245 +0,0 @@
-
-<html>
-<title>event - Pygame Documentation</title>
-<body bgcolor=#aaeebb text=#000000 link=#331111 vlink=#331111>
-
-
-<table cellpadding=0 cellspacing=0 border=0 style='border: 3px solid black;' width='100%'>
-<tr>
-<td bgcolor='#c2fc20' style='padding: 6px;' align=center valign=center><a href='http://www.pygame.org/'><img src='../pygame_tiny.gif' border=0 width=200 height=60></a><br><b>pygame documentation</b></td>
-<td bgcolor='#6aee28' style='border-left: 3px solid black; padding: 6px;' align=center valign=center>
- ||&nbsp;
- <a href=http://www.pygame.org>Pygame Home</a> &nbsp;||&nbsp;
- <a href=../index.html>Help Contents</a> &nbsp;||
- <a href=index.html>Reference Index</a> &nbsp;||
- <br>&nbsp;<br>
-
-<a href="camera.html">Camera</a>&nbsp;||&nbsp;
-<a href="cdrom.html">Cdrom</a>&nbsp;||&nbsp;
-<a href="color.html">Color</a>&nbsp;||&nbsp;
-<a href="cursors.html">Cursors</a>&nbsp;||&nbsp;
-<a href="display.html">Display</a>&nbsp;||&nbsp;
-<a href="draw.html">Draw</a>&nbsp;||&nbsp;
-<a href="event.html">Event</a>&nbsp;||&nbsp;
-<a href="examples.html">Examples</a>&nbsp;||&nbsp;
-<a href="font.html">Font</a>&nbsp;||&nbsp;
-<a href="gfxdraw.html">Gfxdraw</a>&nbsp;||&nbsp;
-<a href="image.html">Image</a>&nbsp;||&nbsp;
-<a href="joystick.html">Joystick</a>&nbsp;||&nbsp;
-<a href="key.html">Key</a>&nbsp;||&nbsp;
-<a href="locals.html">Locals</a>&nbsp;||&nbsp;
-<a href="mask.html">Mask</a>&nbsp;||&nbsp;
-<a href="midi.html">Midi</a>&nbsp;||&nbsp;
-<a href="mixer.html">Mixer</a>&nbsp;||&nbsp;
-<a href="mouse.html">Mouse</a>&nbsp;||&nbsp;
-<a href="movie.html">Movie</a>&nbsp;||&nbsp;
-<a href="music.html">Music</a>&nbsp;||&nbsp;
-<a href="overlay.html">Overlay</a>&nbsp;||&nbsp;
-<a href="pixelarray.html">Pixelarray</a>&nbsp;||&nbsp;
-<a href="pygame.html">Pygame</a>&nbsp;||&nbsp;
-<a href="rect.html">Rect</a>&nbsp;||&nbsp;
-<a href="scrap.html">Scrap</a>&nbsp;||&nbsp;
-<a href="sndarray.html">Sndarray</a>&nbsp;||&nbsp;
-<a href="sprite.html">Sprite</a>&nbsp;||&nbsp;
-<a href="surface.html">Surface</a>&nbsp;||&nbsp;
-<a href="surfarray.html">Surfarray</a>&nbsp;||&nbsp;
-<a href="tests.html">Tests</a>&nbsp;||&nbsp;
-<a href="time.html">Time</a>&nbsp;||&nbsp;
-<a href="transform.html">Transform</a>
-</td></tr></table>
-<br>
-
-
-<a name="pygame.event">
-<big><b>pygame.event</big></b><br><ul>
- <i>pygame module for interacting with events and queues</i><br>
-<ul><small><table>
- <tr><td><a href="event.html#pygame.event.pump">pygame.event.pump</a> - <font size=-1>internally process pygame event handlers</font></td><td>internally process pygame event handlers</td></tr>
- <tr><td><a href="event.html#pygame.event.get">pygame.event.get</a> - <font size=-1>get events from the queue</font></td><td>get events from the queue</td></tr>
- <tr><td><a href="event.html#pygame.event.poll">pygame.event.poll</a> - <font size=-1>get a single event from the queue</font></td><td>get a single event from the queue</td></tr>
- <tr><td><a href="event.html#pygame.event.wait">pygame.event.wait</a> - <font size=-1>wait for a single event from the queue</font></td><td>wait for a single event from the queue</td></tr>
- <tr><td><a href="event.html#pygame.event.peek">pygame.event.peek</a> - <font size=-1>test if event types are waiting on the queue</font></td><td>test if event types are waiting on the queue</td></tr>
- <tr><td><a href="event.html#pygame.event.clear">pygame.event.clear</a> - <font size=-1>remove all events from the queue</font></td><td>remove all events from the queue</td></tr>
- <tr><td><a href="event.html#pygame.event.event_name">pygame.event.event_name</a> - <font size=-1>get the string name from and event id</font></td><td>get the string name from and event id</td></tr>
- <tr><td><a href="event.html#pygame.event.set_blocked">pygame.event.set_blocked</a> - <font size=-1>control which events are allowed on the queue</font></td><td>control which events are allowed on the queue</td></tr>
- <tr><td><a href="event.html#pygame.event.set_allowed">pygame.event.set_allowed</a> - <font size=-1>control which events are allowed on the queue</font></td><td>control which events are allowed on the queue</td></tr>
- <tr><td><a href="event.html#pygame.event.get_blocked">pygame.event.get_blocked</a> - <font size=-1>test if a type of event is blocked from the queue</font></td><td>test if a type of event is blocked from the queue</td></tr>
- <tr><td><a href="event.html#pygame.event.set_grab">pygame.event.set_grab</a> - <font size=-1>control the sharing of input devices with other applications</font></td><td>control the sharing of input devices with other applications</td></tr>
- <tr><td><a href="event.html#pygame.event.get_grab">pygame.event.get_grab</a> - <font size=-1>test if the program is sharing input devices</font></td><td>test if the program is sharing input devices</td></tr>
- <tr><td><a href="event.html#pygame.event.post">pygame.event.post</a> - <font size=-1>place a new event on the queue</font></td><td>place a new event on the queue</td></tr>
- <tr><td><a href="event.html#pygame.event.Event">pygame.event.Event</a> - <font size=-1>create a new event object</font></td><td>create a new event object</td></tr>
-</table></small></ul>
-<p>Pygame handles all it's event messaging through an event queue. The routines in this module help you manage that event queue. The input queue is heavily dependent on the pygame display module. If the display has not been initialized and a video mode not set, the event queue will not really work. </p>
-<p>The queue is a regular queue of Event objects, there are a variety of ways to access the events it contains. From simply checking for the existance of events, to grabbing them directly off the stack. </p>
-<p>All events have a type identifier. This event type is in between the values of <tt>NOEVENT</tt> and <tt>NUMEVENTS</tt>. All user defined events can have the value of <tt>USEREVENT</tt> or higher. It is recommended make sure your event id's follow this system. </p>
-<p>To get the state of various input devices, you can forego the event queue and access the input devices directly with their appropriate modules; mouse, key, and joystick. If you use this method, remember that pygame requires some form of communication with the system window manager and other parts of the platform. To keep pygame in synch with the system, you will need to call <tt><a href="event.html#pygame.event.pump">pygame.event.pump</a> - <font size=-1>internally process pygame event handlers</font></tt> to keep everything current. You'll want to call this function usually once per game loop. </p>
-<p>The event queue offers some simple filtering. This can help performance slightly by blocking certain event types from the queue, use the <tt><a href="event.html#pygame.event.set_allowed">pygame.event.set_allowed</a> - <font size=-1>control which events are allowed on the queue</font></tt> and <tt><a href="event.html#pygame.event.set_blocked">pygame.event.set_blocked</a> - <font size=-1>control which events are allowed on the queue</font></tt> to work with this filtering. All events default to allowed. </p>
-<p>Joysticks will not send any events until the device has been initialized. </p>
-<p>An Event object contains an event type and a readonly set of member data. The Event object contains no method functions, just member data. Event objects are retrieved from the pygame event queue. You can create your own new events with the <tt><a href="event.html#pygame.event.Event">pygame.event.Event</a> - <font size=-1>create a new event object</font></tt> function. </p>
-<p>Your program must take steps to keep the event queue from overflowing. If the program is not clearing or getting all events off the queue at regular intervals, it can overflow. When the queue overflows an exception is thrown. </p>
-<p>All Event objects contain an event type identifier in the <tt>Event.type</tt> member. You may also get full access to the Event's member data through the <tt>Event.dict</tt> method. All other member lookups will be passed through to the Event's dictionary values. </p>
-<p>While debugging and experimenting, you can print the Event objects for a quick display of its type and members. Events that come from the system will have a guaranteed set of member items based on the type. Here is a list of the Event members that are defined with each type. </p>
-<pre> QUIT none
- ACTIVEEVENT gain, state
- KEYDOWN unicode, key, mod
- KEYUP key, mod
- MOUSEMOTION pos, rel, buttons
- MOUSEBUTTONUP pos, button
- MOUSEBUTTONDOWN pos, button
- JOYAXISMOTION joy, axis, value
- JOYBALLMOTION joy, ball, rel
- JOYHATMOTION joy, hat, value
- JOYBUTTONUP joy, button
- JOYBUTTONDOWN joy, button
- VIDEORESIZE size, w, h
- VIDEOEXPOSE none
- USEREVENT code
-</pre><p>Events support equality comparison. Two events are equal if they are the same type and have identical attribute values. Inequality checks also work. </p>
-<!--COMMENTS:pygame.event--> &nbsp;<br>
-
-
-<a name="pygame.event.pump">
-<big><b>pygame.event.pump</big></b><br><ul>
- <i>internally process pygame event handlers</i><br>
- <tt>pygame.event.pump(): return None</tt><br>
-<p>For each frame of your game, you will need to make some sort of call to the event queue. This ensures your program can internally interact with the rest of the operating system. If you are not using other event functions in your game, you should call <tt><a href="event.html#pygame.event.pump">pygame.event.pump</a> - <font size=-1>internally process pygame event handlers</font></tt> to allow pygame to handle internal actions. </p>
-<p>This function is not necessary if your program is consistently processing events on the queue through the other <tt>pygame.event</tt> functions. </p>
-<p>There are important things that must be dealt with internally in the event queue. The main window may need to be repainted or respond to the system. If you fail to make a call to the event queue for too long, the system may decide your program has locked up. </p>
-<!--COMMENTS:pygame.event.pump--> &nbsp;<br>
-<br></ul>
-
-
-<a name="pygame.event.get">
-<big><b>pygame.event.get</big></b><br><ul>
- <i>get events from the queue</i><br>
- <tt>pygame.event.get(): return Eventlist</tt><br>
- <tt>pygame.event.get(type): return Eventlist</tt><br>
- <tt>pygame.event.get(typelist): return Eventlist</tt><br>
-<p>This will get all the messages and remove them from the queue. If a type or sequence of types is given only those messages will be removed from the queue. </p>
-<p>If you are only taking specific events from the queue, be aware that the queue could eventually fill up with the events you are not interested. </p>
-<!--COMMENTS:pygame.event.get--> &nbsp;<br>
-<br></ul>
-
-
-<a name="pygame.event.poll">
-<big><b>pygame.event.poll</big></b><br><ul>
- <i>get a single event from the queue</i><br>
- <tt>pygame.event.poll(): return Event</tt><br>
-<p>Returns a single event from the queue. If the event queue is empty an event of type <tt>pygame.NOEVENT</tt> will be returned immediately. The returned event is removed from the queue. </p>
-<!--COMMENTS:pygame.event.poll--> &nbsp;<br>
-<br></ul>
-
-
-<a name="pygame.event.wait">
-<big><b>pygame.event.wait</big></b><br><ul>
- <i>wait for a single event from the queue</i><br>
- <tt>pygame.event.wait(): return Event</tt><br>
-<p>Returns a single event from the queue. If the queue is empty this function will wait until one is created. The event is removed from the queue once it has been returned. While the program is waiting it will sleep in an idle state. This is important for programs that want to share the system with other applications. </p>
-<!--COMMENTS:pygame.event.wait--> &nbsp;<br>
-<br></ul>
-
-
-<a name="pygame.event.peek">
-<big><b>pygame.event.peek</big></b><br><ul>
- <i>test if event types are waiting on the queue</i><br>
- <tt>pygame.event.peek(type): return bool</tt><br>
- <tt>pygame.event.peek(typelist): return bool</tt><br>
-<p>Returns true if there are any events of the given type waiting on the queue. If a sequence of event types is passed, this will return True if any of those events are on the queue. </p>
-<!--COMMENTS:pygame.event.peek--> &nbsp;<br>
-<br></ul>
-
-
-<a name="pygame.event.clear">
-<big><b>pygame.event.clear</big></b><br><ul>
- <i>remove all events from the queue</i><br>
- <tt>pygame.event.clear(): return None</tt><br>
- <tt>pygame.event.clear(type): return None</tt><br>
- <tt>pygame.event.clear(typelist): return None</tt><br>
-<p>Remove all events or events of a specific type from the queue. This has the same effect as <tt><a href="event.html#pygame.event.get">pygame.event.get</a> - <font size=-1>get events from the queue</font></tt> except nothing is returned. This can be slightly more effecient when clearing a full event queue. </p>
-<!--COMMENTS:pygame.event.clear--> &nbsp;<br>
-<br></ul>
-
-
-<a name="pygame.event.event_name">
-<big><b>pygame.event.event_name</big></b><br><ul>
- <i>get the string name from and event id</i><br>
- <tt>pygame.event.event_name(type): return string</tt><br>
-<p>Pygame uses integer ids to represent the event types. If you want to report these types to the user they should be converted to strings. This will return a the simple name for an event type. The string is in the WordCap style. </p>
-<!--COMMENTS:pygame.event.event_name--> &nbsp;<br>
-<br></ul>
-
-
-<a name="pygame.event.set_blocked">
-<big><b>pygame.event.set_blocked</big></b><br><ul>
- <i>control which events are allowed on the queue</i><br>
- <tt>pygame.event.set_blocked(type): return None</tt><br>
- <tt>pygame.event.set_blocked(typelist): return None</tt><br>
- <tt>pygame.event.set_blocked(None): return None</tt><br>
-<p>The given event types are not allowed to appear on the event queue. By default all events can be placed on the queue. It is safe to disable an event type multiple times. </p>
-<p>If None is passed as the argument, this has the opposite effect and <tt>ALL</tt> of the event types are allowed to be placed on the queue. </p>
-<!--COMMENTS:pygame.event.set_blocked--> &nbsp;<br>
-<br></ul>
-
-
-<a name="pygame.event.set_allowed">
-<big><b>pygame.event.set_allowed</big></b><br><ul>
- <i>control which events are allowed on the queue</i><br>
- <tt>pygame.event.set_allowed(type): return None</tt><br>
- <tt>pygame.event.set_allowed(typelist): return None</tt><br>
- <tt>pygame.event.set_allowed(None): return None</tt><br>
-<p>The given event types are allowed to appear on the event queue. By default all events can be placed on the queue. It is safe to enable an event type multiple times. </p>
-<p>If None is passed as the argument, <tt>NONE</tt> of the event types are allowed to be placed on the queue. </p>
-<!--COMMENTS:pygame.event.set_allowed--> &nbsp;<br>
-<br></ul>
-
-
-<a name="pygame.event.get_blocked">
-<big><b>pygame.event.get_blocked</big></b><br><ul>
- <i>test if a type of event is blocked from the queue</i><br>
- <tt>pygame.event.get_blocked(type): return bool</tt><br>
-<p>Returns true if the given event type is blocked from the queue. </p>
-<!--COMMENTS:pygame.event.get_blocked--> &nbsp;<br>
-<br></ul>
-
-
-<a name="pygame.event.set_grab">
-<big><b>pygame.event.set_grab</big></b><br><ul>
- <i>control the sharing of input devices with other applications</i><br>
- <tt>pygame.event.set_grab(bool): return None</tt><br>
-<p>When your program runs in a windowed environment, it will share the mouse and keyboard devices with other applications that have focus. If your program sets the event grab to True, it will lock all input into your program. </p>
-<p>It is best to not always grab the input, since it prevents the user from doing other things on their system. </p>
-<!--COMMENTS:pygame.event.set_grab--> &nbsp;<br>
-<br></ul>
-
-
-<a name="pygame.event.get_grab">
-<big><b>pygame.event.get_grab</big></b><br><ul>
- <i>test if the program is sharing input devices</i><br>
- <tt>pygame.event.get_grab(): return bool</tt><br>
-<p>Returns true when the input events are grabbed for this application. Use <tt><a href="event.html#pygame.event.set_grab">pygame.event.set_grab</a> - <font size=-1>control the sharing of input devices with other applications</font></tt> to control this state. </p>
-<!--COMMENTS:pygame.event.get_grab--> &nbsp;<br>
-<br></ul>
-
-
-<a name="pygame.event.post">
-<big><b>pygame.event.post</big></b><br><ul>
- <i>place a new event on the queue</i><br>
- <tt>pygame.event.post(Event): return None</tt><br>
-<p>This places a new event at the end of the event queue. These Events will later be retrieved from the other queue functions. </p>
-<p>This is usually used for placing <tt>pygame.USEREVENT</tt> events on the queue. Although any type of event can be placed, if using the sytem event types your program should be sure to create the standard attributes with appropriate values. </p>
-<!--COMMENTS:pygame.event.post--> &nbsp;<br>
-<br></ul>
-
-
-<a name="pygame.event.Event">
-<big><b>pygame.event.Event</big></b><br><ul>
- <i>create a new event object</i><br>
- <tt>pygame.event.Event(type, dict): return Event</tt><br>
- <tt>pygame.event.Event(type, **attributes): return Event</tt><br>
-<p>Creates a new event with the given type. The event is created with the given attributes and values. The attributes can come from a dictionary argument, or as string keys from a dictionary. </p>
-<p>The given attributes will be readonly attributes on the new event object itself. These are the only attributes on the Event object, there are no methods attached to Event objects. </p>
-<!--COMMENTS:pygame.event.Event--> &nbsp;<br>
-<br></ul>
-<br></ul>
-
-</body></html>
diff --git a/pygame/docs/ref/examples.html b/pygame/docs/ref/examples.html
deleted file mode 100755
index 85fb19a..0000000
--- a/pygame/docs/ref/examples.html
+++ /dev/null
@@ -1,392 +0,0 @@
-
-<html>
-<title>examples - Pygame Documentation</title>
-<body bgcolor=#aaeebb text=#000000 link=#331111 vlink=#331111>
-
-
-<table cellpadding=0 cellspacing=0 border=0 style='border: 3px solid black;' width='100%'>
-<tr>
-<td bgcolor='#c2fc20' style='padding: 6px;' align=center valign=center><a href='http://www.pygame.org/'><img src='../pygame_tiny.gif' border=0 width=200 height=60></a><br><b>pygame documentation</b></td>
-<td bgcolor='#6aee28' style='border-left: 3px solid black; padding: 6px;' align=center valign=center>
- ||&nbsp;
- <a href=http://www.pygame.org>Pygame Home</a> &nbsp;||&nbsp;
- <a href=../index.html>Help Contents</a> &nbsp;||
- <a href=index.html>Reference Index</a> &nbsp;||
- <br>&nbsp;<br>
-
-<a href="camera.html">Camera</a>&nbsp;||&nbsp;
-<a href="cdrom.html">Cdrom</a>&nbsp;||&nbsp;
-<a href="color.html">Color</a>&nbsp;||&nbsp;
-<a href="cursors.html">Cursors</a>&nbsp;||&nbsp;
-<a href="display.html">Display</a>&nbsp;||&nbsp;
-<a href="draw.html">Draw</a>&nbsp;||&nbsp;
-<a href="event.html">Event</a>&nbsp;||&nbsp;
-<a href="examples.html">Examples</a>&nbsp;||&nbsp;
-<a href="font.html">Font</a>&nbsp;||&nbsp;
-<a href="gfxdraw.html">Gfxdraw</a>&nbsp;||&nbsp;
-<a href="image.html">Image</a>&nbsp;||&nbsp;
-<a href="joystick.html">Joystick</a>&nbsp;||&nbsp;
-<a href="key.html">Key</a>&nbsp;||&nbsp;
-<a href="locals.html">Locals</a>&nbsp;||&nbsp;
-<a href="mask.html">Mask</a>&nbsp;||&nbsp;
-<a href="midi.html">Midi</a>&nbsp;||&nbsp;
-<a href="mixer.html">Mixer</a>&nbsp;||&nbsp;
-<a href="mouse.html">Mouse</a>&nbsp;||&nbsp;
-<a href="movie.html">Movie</a>&nbsp;||&nbsp;
-<a href="music.html">Music</a>&nbsp;||&nbsp;
-<a href="overlay.html">Overlay</a>&nbsp;||&nbsp;
-<a href="pixelarray.html">Pixelarray</a>&nbsp;||&nbsp;
-<a href="pygame.html">Pygame</a>&nbsp;||&nbsp;
-<a href="rect.html">Rect</a>&nbsp;||&nbsp;
-<a href="scrap.html">Scrap</a>&nbsp;||&nbsp;
-<a href="sndarray.html">Sndarray</a>&nbsp;||&nbsp;
-<a href="sprite.html">Sprite</a>&nbsp;||&nbsp;
-<a href="surface.html">Surface</a>&nbsp;||&nbsp;
-<a href="surfarray.html">Surfarray</a>&nbsp;||&nbsp;
-<a href="tests.html">Tests</a>&nbsp;||&nbsp;
-<a href="time.html">Time</a>&nbsp;||&nbsp;
-<a href="transform.html">Transform</a>
-</td></tr></table>
-<br>
-
-
-<a name="pygame.examples">
-<big><b>pygame.examples</big></b><br><ul>
- <i>module of example programs</i><br>
-<ul><small><table>
- <tr><td><a href="examples.html#pygame.examples.aliens.main">pygame.examples.aliens.main</a> - <font size=-1>play the full aliens example</font></td><td>play the full aliens example</td></tr>
- <tr><td><a href="examples.html#pygame.examples.oldalien.main">pygame.examples.oldalien.main</a> - <font size=-1>play the original aliens example</font></td><td>play the original aliens example</td></tr>
- <tr><td><a href="examples.html#pygame.examples.stars.main">pygame.examples.stars.main</a> - <font size=-1>run a simple starfield example</font></td><td>run a simple starfield example</td></tr>
- <tr><td><a href="examples.html#pygame.examples.chimp.main">pygame.examples.chimp.main</a> - <font size=-1>hit the moving chimp</font></td><td>hit the moving chimp</td></tr>
- <tr><td><a href="examples.html#pygame.examples.moveit.main">pygame.examples.moveit.main</a> - <font size=-1>display animated objects on the screen</font></td><td>display animated objects on the screen</td></tr>
- <tr><td><a href="examples.html#pygame.examples.fonty.main">pygame.examples.fonty.main</a> - <font size=-1>run a font rendering example</font></td><td>run a font rendering example</td></tr>
- <tr><td><a href="examples.html#pygame.examples.vgrade.main">pygame.examples.vgrade.main</a> - <font size=-1>display a vertical gradient</font></td><td>display a vertical gradient</td></tr>
- <tr><td><a href="examples.html#pygame.examples.eventlist.main">pygame.examples.eventlist.main</a> - <font size=-1>display pygame events</font></td><td>display pygame events</td></tr>
- <tr><td><a href="examples.html#pygame.examples.arraydemo.main">pygame.examples.arraydemo.main</a> - <font size=-1>show various surfarray effects</font></td><td>show various surfarray effects</td></tr>
- <tr><td><a href="examples.html#pygame.examples.sound.main">pygame.examples.sound.main</a> - <font size=-1>load and play a sound</font></td><td>load and play a sound</td></tr>
- <tr><td><a href="examples.html#pygame.examples.sound_array_demos.main">pygame.examples.sound_array_demos.main</a> - <font size=-1>play various sndarray effects</font></td><td>play various sndarray effects</td></tr>
- <tr><td><a href="examples.html#pygame.examples.liquid.main">pygame.examples.liquid.main</a> - <font size=-1>display an animated liquid effect</font></td><td>display an animated liquid effect</td></tr>
- <tr><td><a href="examples.html#pygame.examples.glcube.main">pygame.examples.glcube.main</a> - <font size=-1>display an animated 3D cube using OpenGL</font></td><td>display an animated 3D cube using OpenGL</td></tr>
- <tr><td><a href="examples.html#pygame.examples.scrap_clipboard.main">pygame.examples.scrap_clipboard.main</a> - <font size=-1>access the clipboard</font></td><td>access the clipboard</td></tr>
- <tr><td><a href="examples.html#pygame.examples.mask.main">pygame.examples.mask.main</a> - <font size=-1>display multiple images bounce off each other using collision detection</font></td><td>display multiple images bounce off each other using collision detection</td></tr>
- <tr><td><a href="examples.html#pygame.examples.testsprite.main">pygame.examples.testsprite.main</a> - <font size=-1>show lots of sprites moving around</font></td><td>show lots of sprites moving around</td></tr>
- <tr><td><a href="examples.html#pygame.examples.headless_no_windows_needed.main">pygame.examples.headless_no_windows_needed.main</a> - <font size=-1>write an image file that is smoothscaled copy of an input file</font></td><td>write an image file that is smoothscaled copy of an input file</td></tr>
- <tr><td><a href="examples.html#pygame.examples.fastevents.main">pygame.examples.fastevents.main</a> - <font size=-1>stress test the fastevents module</font></td><td>stress test the fastevents module</td></tr>
- <tr><td><a href="examples.html#pygame.examples.overlay.main">pygame.examples.overlay.main</a> - <font size=-1>play a .pgm video using overlays</font></td><td>play a .pgm video using overlays</td></tr>
- <tr><td><a href="examples.html#pygame.examples.blend_fill.main">pygame.examples.blend_fill.main</a> - <font size=-1>demonstrate the various surface.fill method blend options</font></td><td>demonstrate the various surface.fill method blend options</td></tr>
- <tr><td><a href="examples.html#pygame.examples.cursors.main">pygame.examples.cursors.main</a> - <font size=-1>display two different custom cursors</font></td><td>display two different custom cursors</td></tr>
- <tr><td><a href="examples.html#pygame.examples.pixelarray.main">pygame.examples.pixelarray.main</a> - <font size=-1>display various pixelarray generated effects</font></td><td>display various pixelarray generated effects</td></tr>
- <tr><td><a href="examples.html#pygame.examples.scaletest.main">pygame.examples.scaletest.main</a> - <font size=-1>interactively scale an image using smoothscale</font></td><td>interactively scale an image using smoothscale</td></tr>
- <tr><td><a href="examples.html#pygame.examples.midi.main">pygame.examples.midi.main</a> - <font size=-1>run a midi example</font></td><td>run a midi example</td></tr>
- <tr><td><a href="examples.html#pygame.examples.scroll.main">pygame.examples.scroll.main</a> - <font size=-1>run a Surface.scroll example that shows a magnified image</font></td><td>run a Surface.scroll example that shows a magnified image</td></tr>
- <tr><td><a href="examples.html#pygame.examples.movieplayer.main">pygame.examples.movieplayer.main</a> - <font size=-1>play an MPEG movie</font></td><td>play an MPEG movie</td></tr>
-</table></small></ul>
-<p>These examples should help get you started with pygame. Here is a brief rundown of what you get. The source code for these examples is in the public domain. Feel free to use for your own projects. </p>
-<p>There are several ways to run the examples. First they can be run as stand-alone programs. Second they can be imported and their main() methods called (see below). Finally, the easiest way is to use the python -m option: </p>
-<pre> python -m pygame.examples.&lt;example name&gt; &lt;example arguments&gt;
-</pre><p>eg: </p>
-<pre> python -m pygame.examples.scaletest someimage.png
-</pre><p>Resources for the examples are found in the pygame/examples/data subdirectory. </p>
-<p>We're always on the lookout for more examples and/or example requests. Code like this is probably the best way to start getting involved with python gaming. </p>
-<p>This page is adapted from the original examples <tt>readme.txt</tt> by: </p>
-<pre> Pete Shinners
- shredwheat@mediaone.net
-</pre><p>Further references </p>
-<pre> pySDL : <a href="http://pysdl.sourceforge.net">http://pysdl.sourceforge.net<a/>
- SDL : <a href="http://www.libsdl.org">http://www.libsdl.org<a/>
- aliens.c : <a href="http://www.libsdl.org/projects/aliens">http://www.libsdl.org/projects/aliens<a/>
-</pre><p>examples as a package is new to pygame <tt>1.9.0</tt>. </p>
-<!--COMMENTS:pygame.examples--> &nbsp;<br>
-
-
-<a name="pygame.examples.aliens.main">
-<big><b>pygame.examples.aliens.main</big></b><br><ul>
- <i>play the full aliens example</i><br>
- <tt>pygame.aliens.main(): return None</tt><br>
-<p>This started off as a port of the <tt>SDL</tt> demonstration, Aliens. Now it has evolved into something sort of resembling fun. This demonstrates a lot of different uses of sprites and optimized blitting. Also transparency, colorkeys, fonts, sound, music, joystick, and more. <tt>(PS</tt>, my high score is 117! goodluck) </p>
-<!--COMMENTS:pygame.examples.aliens.main--> &nbsp;<br>
-<br></ul>
-
-
-<a name="pygame.examples.oldalien.main">
-<big><b>pygame.examples.oldalien.main</big></b><br><ul>
- <i>play the original aliens example</i><br>
- <tt>pygame.examples.oldalien.main(): return None</tt><br>
-<p>This more closely resembles a port of the <tt>SDL</tt> Aliens demo. The code is a lot simpler, so it makes a better starting point for people looking at code for the first times. These blitting routines are not as optimized as they should/could be, but the code is easier to follow, and it plays quick enough. </p>
-<!--COMMENTS:pygame.examples.oldalien.main--> &nbsp;<br>
-<br></ul>
-
-
-<a name="pygame.examples.stars.main">
-<big><b>pygame.examples.stars.main</big></b><br><ul>
- <i>run a simple starfield example</i><br>
- <tt>pygame.examples.stars.main(): return None</tt><br>
-<p><tt>A</tt> simple starfield example. You can change the center of perspective by leftclicking the mouse on the screen. </p>
-<!--COMMENTS:pygame.examples.stars.main--> &nbsp;<br>
-<br></ul>
-
-
-<a name="pygame.examples.chimp.main">
-<big><b>pygame.examples.chimp.main</big></b><br><ul>
- <i>hit the moving chimp</i><br>
- <tt>pygame.examples.chimp.main(): return None</tt><br>
-<p>This simple example is derived from the line-by-line tutorial that comes with pygame. It is based on a 'popular' web banner. Note there are comments here, but for the full explanation, follow along in the tutorial. </p>
-<!--COMMENTS:pygame.examples.chimp.main--> &nbsp;<br>
-<br></ul>
-
-
-<a name="pygame.examples.moveit.main">
-<big><b>pygame.examples.moveit.main</big></b><br><ul>
- <i>display animated objects on the screen</i><br>
- <tt>pygame.examples.moveit.main(): return None</tt><br>
-<p>This is the full and final example from the Pygame Tutorial, "How Do <tt>I</tt> Make It Move". It creates 10 objects and animates them on the screen. </p>
-<p>Note it's a bit scant on error checking, but it's easy to read. :] Fortunately, this is python, and we needn't wrestle with a pile of error codes. </p>
-<!--COMMENTS:pygame.examples.moveit.main--> &nbsp;<br>
-<br></ul>
-
-
-<a name="pygame.examples.fonty.main">
-<big><b>pygame.examples.fonty.main</big></b><br><ul>
- <i>run a font rendering example</i><br>
- <tt>pygame.examples.fonty.main(): return None</tt><br>
-<p>Super quick, super simple application demonstrating the different ways to render fonts with the font module </p>
-<!--COMMENTS:pygame.examples.fonty.main--> &nbsp;<br>
-<br></ul>
-
-
-<a name="pygame.examples.vgrade.main">
-<big><b>pygame.examples.vgrade.main</big></b><br><ul>
- <i>display a vertical gradient</i><br>
- <tt>pygame.examples.vgrade.main(): return None</tt><br>
-<p>Demonstrates creating a vertical gradient with NumPy python. The app will create a new gradient every half second and report the time needed to create and display the image. If you're not prepared to start working with the NumPy arrays, don't worry about the source for this one :] </p>
-<!--COMMENTS:pygame.examples.vgrade.main--> &nbsp;<br>
-<br></ul>
-
-
-<a name="pygame.examples.eventlist.main">
-<big><b>pygame.examples.eventlist.main</big></b><br><ul>
- <i>display pygame events</i><br>
- <tt>pygame.examples.eventlist.main(): return None</tt><br>
-<p>Eventlist is a sloppy style of pygame, but is a handy tool for learning about pygame events and input. At the top of the screen are the state of several device values, and a scrolling list of events are displayed on the bottom. </p>
-<p>This is not quality 'ui' code at all, but you can see how to implement very non-interactive status displays, or even a crude text output control. </p>
-<!--COMMENTS:pygame.examples.eventlist.main--> &nbsp;<br>
-<br></ul>
-
-
-<a name="pygame.examples.arraydemo.main">
-<big><b>pygame.examples.arraydemo.main</big></b><br><ul>
- <i>show various surfarray effects</i><br>
- <tt>pygame.examples.arraydemo.main(arraytype=None): return None</tt><br>
-<p>Another example filled with various surfarray effects. It requires the surfarray and image modules to be installed. This little demo can also make a good starting point for any of your own tests with surfarray </p>
-<p>If arraytype is provided then use that array package. Valid values are 'numeric' or 'numpy'. Otherwise default to NumPy, or fall back on Numeric if NumPy is not installed. As a program <tt>surfarray.py</tt> accepts an optional --numeric or --numpy flag. (New pygame <tt>1.9.0)</tt> </p>
-<!--COMMENTS:pygame.examples.arraydemo.main--> &nbsp;<br>
-<br></ul>
-
-
-<a name="pygame.examples.sound.main">
-<big><b>pygame.examples.sound.main</big></b><br><ul>
- <i>load and play a sound</i><br>
- <tt>pygame.examples.sound.main(file_path=None): return None</tt><br>
-<p>Extremely basic testing of the mixer module. Load a sound and play it. All from the command shell, no graphics. </p>
-<p>If provided, use the audio file 'file_path', otherwise use a default file. </p>
-<p><tt>sound.py</tt> optional command line argument: an audio file </p>
-<!--COMMENTS:pygame.examples.sound.main--> &nbsp;<br>
-<br></ul>
-
-
-<a name="pygame.examples.sound_array_demos.main">
-<big><b>pygame.examples.sound_array_demos.main</big></b><br><ul>
- <i>play various sndarray effects</i><br>
- <tt>pygame.examples.sound_array_demos.main(arraytype=None): return None</tt><br>
-<p>If arraytype is provided then use that array package. Valid values are 'numeric' or 'numpy'. Otherwise default to NumPy, or fall back on Numeric if NumPy is not installed. </p>
-<p>Uses sndarray and NumPy ( or Numeric) to create offset faded copies of the original sound. Currently it just uses hardcoded values for the number of echos and the delay. Easy for you to recreate as needed. Run as a program <tt>sound_array_demos.py</tt> takes an optional command line option, --numpy or --numeric, specifying which array package to use. </p>
-<!--COMMENTS:pygame.examples.sound_array_demos.main--> &nbsp;<br>
-<br></ul>
-
-
-<a name="pygame.examples.liquid.main">
-<big><b>pygame.examples.liquid.main</big></b><br><ul>
- <i>display an animated liquid effect</i><br>
- <tt>pygame.examples.liquid.main(): return None</tt><br>
-<p>This example was created in a quick comparison with the BlitzBasic gaming language. Nonetheless, it demonstrates a quick 8-bit setup (with colormap). </p>
-<!--COMMENTS:pygame.examples.liquid.main--> &nbsp;<br>
-<br></ul>
-
-
-<a name="pygame.examples.glcube.main">
-<big><b>pygame.examples.glcube.main</big></b><br><ul>
- <i>display an animated 3D cube using OpenGL</i><br>
- <tt>pygame.examples.glcube.main(): return None</tt><br>
-<p>Using PyOpenGL and pygame, this creates a spinning <tt>3D</tt> multicolored cube. </p>
-<!--COMMENTS:pygame.examples.glcube.main--> &nbsp;<br>
-<br></ul>
-
-
-<a name="pygame.examples.scrap_clipboard.main">
-<big><b>pygame.examples.scrap_clipboard.main</big></b><br><ul>
- <i>access the clipboard</i><br>
- <tt>pygame.examples.scrap_clipboard.main(): return None</tt><br>
-<p><tt>A</tt> simple demonstration example for the clipboard support. </p>
-<!--COMMENTS:pygame.examples.scrap_clipboard.main--> &nbsp;<br>
-<br></ul>
-
-
-<a name="pygame.examples.mask.main">
-<big><b>pygame.examples.mask.main</big></b><br><ul>
- <i>display multiple images bounce off each other using collision detection</i><br>
- <tt>pygame.examples.mask.main(*args): return None</tt><br>
-<p>Positional arguments: </p>
-<pre> one or more image file names.
-</pre><p>This <tt>pygame.masks</tt> demo will display multiple moving sprites bouncing off each other. More than one sprite image can be provided. </p>
-<p>If run as a program then <tt>mask.py</tt> takes one or more image files as command line arguments. </p>
-<!--COMMENTS:pygame.examples.mask.main--> &nbsp;<br>
-<br></ul>
-
-
-<a name="pygame.examples.testsprite.main">
-<big><b>pygame.examples.testsprite.main</big></b><br><ul>
- <i>show lots of sprites moving around</i><br>
- <tt>pygame.examples.testsprite.main(update_rects = True, use_static = False, use_FastRenderGroup = False, screen_dims = [640, 480], use_alpha = False, flags = 0): return None</tt><br>
-<p>Optional keyword arguments: </p>
-<pre> update_rects - use the RenderUpdate sprite group class
- use_static - include non-moving images
- use_FastRenderGroup - Use the FastRenderGroup sprite group
- screen_dims - pygame window dimensions
- use_alpha - use alpha blending
- flags - additional display mode flags
-</pre><p>Like the <tt>testsprite.c</tt> that comes with sdl, this pygame version shows lots of sprites moving around. </p>
-<p>If run as a stand-alone program then no command line arguments are taken. </p>
-<!--COMMENTS:pygame.examples.testsprite.main--> &nbsp;<br>
-<br></ul>
-
-
-<a name="pygame.examples.headless_no_windows_needed.main">
-<big><b>pygame.examples.headless_no_windows_needed.main</big></b><br><ul>
- <i>write an image file that is smoothscaled copy of an input file</i><br>
- <tt>pygame.examples.headless_no_windows_needed.main(fin, fout, w, h): return None</tt><br>
-<p>arguments: </p>
-<pre> fin - name of an input image file
- fout - name of the output file to create/overwrite
- w, h - size of the rescaled image, as integer width and height
-</pre><p>How to use pygame with no windowing system, like on headless servers. </p>
-<p>Thumbnail generation with scaling is an example of what you can do with pygame. </p>
-<p><tt>NOTE:</tt> the pygame scale function uses mmx/sse if available, and can be run in multiple threads. </p>
-<p>If <tt>headless_no_windows_needed.py</tt> is run as a program it takes the following command line arguments: </p>
-<pre> -scale inputimage outputimage new_width new_height
- eg. -scale in.png outpng 50 50
-</pre>
-<!--COMMENTS:pygame.examples.headless_no_windows_needed.main--> &nbsp;<br>
-<br></ul>
-
-
-<a name="pygame.examples.fastevents.main">
-<big><b>pygame.examples.fastevents.main</big></b><br><ul>
- <i>stress test the fastevents module</i><br>
- <tt>pygame.examples.fastevents.main(): return None</tt><br>
-<p>This is a stress test for the fastevents module. </p>
-<ul>
- <li>Fast events does not appear faster!</li>
- <li> </li>
-</ul>
-<p>So far it looks like normal <tt>pygame.event</tt> is faster by up to two times. So maybe fastevent isn't fast at all. </p>
-<p>Tested on windowsXP sp2 athlon, and freebsd. </p>
-<p><tt>However..</tt>. on my debian duron 850 machine fastevents is faster. </p>
-<!--COMMENTS:pygame.examples.fastevents.main--> &nbsp;<br>
-<br></ul>
-
-
-<a name="pygame.examples.overlay.main">
-<big><b>pygame.examples.overlay.main</big></b><br><ul>
- <i>play a .pgm video using overlays</i><br>
- <tt>pygame.examples.overlay.main(fname): return None</tt><br>
-<p>Play the .pgm video fila a path fname. </p>
-<p>If run as a program <tt>overlay.py</tt> takes the file name as a command line argument. </p>
-<!--COMMENTS:pygame.examples.overlay.main--> &nbsp;<br>
-<br></ul>
-
-
-<a name="pygame.examples.blend_fill.main">
-<big><b>pygame.examples.blend_fill.main</big></b><br><ul>
- <i>demonstrate the various surface.fill method blend options</i><br>
- <tt>pygame.examples.blend_fill.main(): return None</tt><br>
-<p><tt>A</tt> interactive demo that lets one choose which BLEND_xxx option to apply to a surface. </p>
-<!--COMMENTS:pygame.examples.blend_fill.main--> &nbsp;<br>
-<br></ul>
-
-
-<a name="pygame.examples.cursors.main">
-<big><b>pygame.examples.cursors.main</big></b><br><ul>
- <i>display two different custom cursors</i><br>
- <tt>pygame.examples.cursors.main(): return None</tt><br>
-<p>Display an arrow or circle with crossbar cursor. </p>
-<!--COMMENTS:pygame.examples.cursors.main--> &nbsp;<br>
-<br></ul>
-
-
-<a name="pygame.examples.pixelarray.main">
-<big><b>pygame.examples.pixelarray.main</big></b><br><ul>
- <i>display various pixelarray generated effects</i><br>
- <tt>pygame.examples.pixelarray.main(): return None</tt><br>
-<p>Display various pixelarray generated effects. </p>
-<!--COMMENTS:pygame.examples.pixelarray.main--> &nbsp;<br>
-<br></ul>
-
-
-<a name="pygame.examples.scaletest.main">
-<big><b>pygame.examples.scaletest.main</big></b><br><ul>
- <i>interactively scale an image using smoothscale</i><br>
- <tt>pygame.examples.scaletest.main(imagefile, convert_alpha=False, run_speed_test=True): return None</tt><br>
-<p>arguments: </p>
-<pre> imagefile - file name of source image (required)
- convert_alpha - use convert_alpha() on the surf (default False)
- run_speed_test - (default False)
-</pre><p><tt>A</tt> smoothscale example that resized an image on the screen. Vertical and horizontal arrow keys are used to change the width and height of the displayed image. If the convert_alpha option is True then the source image is forced to have source alpha, whether or not the original images does. If run_speed_test is True then a background timing test is performed instead of the interactive scaler. </p>
-<p>If <tt>scaletest.py</tt> is run as a program then the command line options are: </p>
-<pre> ImageFile [-t] [-convert_alpha]
- [-t] = Run Speed Test
- [-convert_alpha] = Use convert_alpha() on the surf.
-</pre>
-<!--COMMENTS:pygame.examples.scaletest.main--> &nbsp;<br>
-<br></ul>
-
-
-<a name="pygame.examples.midi.main">
-<big><b>pygame.examples.midi.main</big></b><br><ul>
- <i>run a midi example</i><br>
- <tt>pygame.examples.midi.main(mode='output', device_id=None): return None</tt><br>
-<p>Arguments: </p>
-<pre> mode - if 'output' run a midi keyboard output example
- 'input' run a midi event logger input example
- 'list' list available midi devices
- (default 'output')
- device_id - midi device number; if None then use the default midi input or
- output device for the system
-</pre><p>The output example shows how to translate mouse clicks or computer keyboard events into midi notes. It implements a rudimentary button widget and state machine. </p>
-<p>The input example shows how to translate midi input to pygame events. </p>
-<p>With the use of a virtual midi patch cord the output and input examples can be run as separate processes and connected so the keyboard output is displayed on a console. </p>
-<p>new to pygame <tt>1.9.0</tt> </p>
-<!--COMMENTS:pygame.examples.midi.main--> &nbsp;<br>
-<br></ul>
-
-
-<a name="pygame.examples.scroll.main">
-<big><b>pygame.examples.scroll.main</big></b><br><ul>
- <i>run a Surface.scroll example that shows a magnified image</i><br>
- <tt>pygame.examples.scroll.main(image_file=None): return None</tt><br>
-<p>This example shows a scrollable image that has a zoom factor of eight. It uses the <tt>Surface.scroll</tt> function to shift the image on the display surface. <tt>A</tt> clip rectangle protects a margin area. If called as a function, the example accepts an optional image file path. If run as a program it takes an optional file path command line argument. If no file is provided a default image file is used. </p>
-<p>When running click on a black triangle to move one pixel in the direction the triangle points. Or use the arrow keys. Close the window or press <tt>ESC</tt> to quit. </p>
-<!--COMMENTS:pygame.examples.scroll.main--> &nbsp;<br>
-<br></ul>
-
-
-<a name="pygame.examples.movieplayer.main">
-<big><b>pygame.examples.movieplayer.main</big></b><br><ul>
- <i>play an MPEG movie</i><br>
- <tt>pygame.examples.moveplayer.main(filepath): return None</tt><br>
-<p><tt>A</tt> simple movie player that plays an <tt>MPEG</tt> movie in a Pygame window. It showcases the <tt>pygame.movie</tt> module. The window adjusts to the size of the movie image. It is given a boarder to demonstrate that a movie can play autonomously in a sub- window. Also, the file is copied to a file like object to show that not just Python files can be used as a movie source. </p>
-<p>The <tt>pygame.movie</tt> module is problematic and may not work on all systems. It is intended to replace it with an ffmpeg based version. </p>
-<!--COMMENTS:pygame.examples.movieplayer.main--> &nbsp;<br>
-<br></ul>
-<br></ul>
-
-</body></html>
diff --git a/pygame/docs/ref/font.html b/pygame/docs/ref/font.html
deleted file mode 100755
index d12863b..0000000
--- a/pygame/docs/ref/font.html
+++ /dev/null
@@ -1,294 +0,0 @@
-
-<html>
-<title>font - Pygame Documentation</title>
-<body bgcolor=#aaeebb text=#000000 link=#331111 vlink=#331111>
-
-
-<table cellpadding=0 cellspacing=0 border=0 style='border: 3px solid black;' width='100%'>
-<tr>
-<td bgcolor='#c2fc20' style='padding: 6px;' align=center valign=center><a href='http://www.pygame.org/'><img src='../pygame_tiny.gif' border=0 width=200 height=60></a><br><b>pygame documentation</b></td>
-<td bgcolor='#6aee28' style='border-left: 3px solid black; padding: 6px;' align=center valign=center>
- ||&nbsp;
- <a href=http://www.pygame.org>Pygame Home</a> &nbsp;||&nbsp;
- <a href=../index.html>Help Contents</a> &nbsp;||
- <a href=index.html>Reference Index</a> &nbsp;||
- <br>&nbsp;<br>
-
-<a href="camera.html">Camera</a>&nbsp;||&nbsp;
-<a href="cdrom.html">Cdrom</a>&nbsp;||&nbsp;
-<a href="color.html">Color</a>&nbsp;||&nbsp;
-<a href="cursors.html">Cursors</a>&nbsp;||&nbsp;
-<a href="display.html">Display</a>&nbsp;||&nbsp;
-<a href="draw.html">Draw</a>&nbsp;||&nbsp;
-<a href="event.html">Event</a>&nbsp;||&nbsp;
-<a href="examples.html">Examples</a>&nbsp;||&nbsp;
-<a href="font.html">Font</a>&nbsp;||&nbsp;
-<a href="gfxdraw.html">Gfxdraw</a>&nbsp;||&nbsp;
-<a href="image.html">Image</a>&nbsp;||&nbsp;
-<a href="joystick.html">Joystick</a>&nbsp;||&nbsp;
-<a href="key.html">Key</a>&nbsp;||&nbsp;
-<a href="locals.html">Locals</a>&nbsp;||&nbsp;
-<a href="mask.html">Mask</a>&nbsp;||&nbsp;
-<a href="midi.html">Midi</a>&nbsp;||&nbsp;
-<a href="mixer.html">Mixer</a>&nbsp;||&nbsp;
-<a href="mouse.html">Mouse</a>&nbsp;||&nbsp;
-<a href="movie.html">Movie</a>&nbsp;||&nbsp;
-<a href="music.html">Music</a>&nbsp;||&nbsp;
-<a href="overlay.html">Overlay</a>&nbsp;||&nbsp;
-<a href="pixelarray.html">Pixelarray</a>&nbsp;||&nbsp;
-<a href="pygame.html">Pygame</a>&nbsp;||&nbsp;
-<a href="rect.html">Rect</a>&nbsp;||&nbsp;
-<a href="scrap.html">Scrap</a>&nbsp;||&nbsp;
-<a href="sndarray.html">Sndarray</a>&nbsp;||&nbsp;
-<a href="sprite.html">Sprite</a>&nbsp;||&nbsp;
-<a href="surface.html">Surface</a>&nbsp;||&nbsp;
-<a href="surfarray.html">Surfarray</a>&nbsp;||&nbsp;
-<a href="tests.html">Tests</a>&nbsp;||&nbsp;
-<a href="time.html">Time</a>&nbsp;||&nbsp;
-<a href="transform.html">Transform</a>
-</td></tr></table>
-<br>
-
-
-<a name="pygame.font">
-<big><b>pygame.font</big></b><br><ul>
- <i>pygame module for loading and rendering fonts</i><br>
-<ul><small><table>
- <tr><td><a href="font.html#pygame.font.init">pygame.font.init</a> - <font size=-1>initialize the font module</font></td><td>initialize the font module</td></tr>
- <tr><td><a href="font.html#pygame.font.quit">pygame.font.quit</a> - <font size=-1>uninitialize the font module</font></td><td>uninitialize the font module</td></tr>
- <tr><td><a href="font.html#pygame.font.get_init">pygame.font.get_init</a> - <font size=-1>true if the font module is initialized</font></td><td>true if the font module is initialized</td></tr>
- <tr><td><a href="font.html#pygame.font.get_default_font">pygame.font.get_default_font</a> - <font size=-1>get the filename of the default font</font></td><td>get the filename of the default font</td></tr>
- <tr><td><a href="font.html#pygame.font.get_fonts">pygame.font.get_fonts</a> - <font size=-1>get all available fonts</font></td><td>get all available fonts</td></tr>
- <tr><td><a href="font.html#pygame.font.match_font">pygame.font.match_font</a> - <font size=-1>find a specific font on the system</font></td><td>find a specific font on the system</td></tr>
- <tr><td><a href="font.html#pygame.font.SysFont">pygame.font.SysFont</a> - <font size=-1>create a Font object from the system fonts</font></td><td>create a Font object from the system fonts</td></tr>
- <tr><td><a href="font.html#pygame.font.Font">pygame.font.Font</a> - <font size=-1>create a new Font object from a file</font></td><td>create a new Font object from a file</td></tr>
-</table></small></ul>
-<p>The font module allows for rendering TrueType fonts into a new Surface object. This module is optional and requires SDL_ttf as a dependency. You should test that <tt>pygame.font</tt> is available and initialized before attempting to use the module. </p>
-<p>Most of the work done with fonts are done by using the actual Font objects. The module by itself only has routines to initialize the module and create Font objects with <tt><a href="font.html#pygame.font.Font">pygame.font.Font</a> - <font size=-1>create a new Font object from a file</font></tt>. </p>
-<p>You can load fonts from the system by using the <tt><a href="font.html#pygame.font.SysFont">pygame.font.SysFont</a> - <font size=-1>create a Font object from the system fonts</font></tt> function. There are a few other functions to help lookup the system fonts. </p>
-<p>Pygame comes with a builtin default font. This can always be accessed by passing None as the font name. </p>
-<!--COMMENTS:pygame.font--> &nbsp;<br>
-
-
-<a name="pygame.font.init">
-<big><b>pygame.font.init</big></b><br><ul>
- <i>initialize the font module</i><br>
- <tt>pygame.font.init(): return None</tt><br>
-<p>This method is called automatically by <tt><a href="pygame.html#pygame.init">pygame.init</a> - <font size=-1>initialize all imported pygame modules</font></tt>. It initializes the font module. The module must be initialized before any other functions will work. </p>
-<p>It is safe to call this function more than once. </p>
-<!--COMMENTS:pygame.font.init--> &nbsp;<br>
-<br></ul>
-
-
-<a name="pygame.font.quit">
-<big><b>pygame.font.quit</big></b><br><ul>
- <i>uninitialize the font module</i><br>
- <tt>pygame.font.quit(): return None</tt><br>
-<p>Manually uninitialize SDL_ttf's font system. This is called automatically by <tt><a href="pygame.html#pygame.quit">pygame.quit</a> - <font size=-1>uninitialize all pygame modules</font></tt>. </p>
-<p>It is safe to call this function even if font is currently not initialized. </p>
-<!--COMMENTS:pygame.font.quit--> &nbsp;<br>
-<br></ul>
-
-
-<a name="pygame.font.get_init">
-<big><b>pygame.font.get_init</big></b><br><ul>
- <i>true if the font module is initialized</i><br>
- <tt>pygame.font.get_init(): return bool</tt><br>
-<p>Test if the font module is initialized or not. </p>
-<!--COMMENTS:pygame.font.get_init--> &nbsp;<br>
-<br></ul>
-
-
-<a name="pygame.font.get_default_font">
-<big><b>pygame.font.get_default_font</big></b><br><ul>
- <i>get the filename of the default font</i><br>
- <tt>pygame.font.get_default_font(): return string</tt><br>
-<p>Return the filename of the system font. This is not the full path to the file. This file can usually be found in the same directory as the font module, but it can also be bundled in separate archives. </p>
-<!--COMMENTS:pygame.font.get_default_font--> &nbsp;<br>
-<br></ul>
-
-
-<a name="pygame.font.get_fonts">
-<big><b>pygame.font.get_fonts</big></b><br><ul>
- <i>get all available fonts</i><br>
- <tt>pygame.font.get_fonts(): return list of strings</tt><br>
-<p>Returns a list of all the fonts available on the system. The names of the fonts will be set to lowercase with all spaces and punctuation removed. This works on most systems, but some will return an empty list if they cannot find fonts. </p>
-<!--COMMENTS:pygame.font.get_fonts--> &nbsp;<br>
-<br></ul>
-
-
-<a name="pygame.font.match_font">
-<big><b>pygame.font.match_font</big></b><br><ul>
- <i>find a specific font on the system</i><br>
- <tt>pygame.font.match_font(name, bold=False, italic=False): return path</tt><br>
-<p>Returns the full path to a font file on the system. If bold or italic are set to true, this will attempt to find the correct family of font. </p>
-<p>The font name can actually be a comma separated list of font names to try. If none of the given names are found, None is returned. </p>
-<p>Example: </p>
-<pre> print pygame.font.match_font('bitstreamverasans')
- # output is: /usr/share/fonts/truetype/ttf-bitstream-vera/Vera.ttf
- # (but only if you have Vera on your system)
-</pre>
-<!--COMMENTS:pygame.font.match_font--> &nbsp;<br>
-<br></ul>
-
-
-<a name="pygame.font.SysFont">
-<big><b>pygame.font.SysFont</big></b><br><ul>
- <i>create a Font object from the system fonts</i><br>
- <tt>pygame.font.SysFont(name, size, bold=False, italic=False): return Font</tt><br>
-<p>Return a new Font object that is loaded from the system fonts. The font will match the requested bold and italic flags. If a suitable system font is not found this will fallback on loading the default pygame font. The font name can be a comma separated list of font names to look for. </p>
-<!--COMMENTS:pygame.font.SysFont--> &nbsp;<br>
-<br></ul>
-
-
-<a name="pygame.font.Font">
-<big><b>pygame.font.Font</big></b><br><ul>
- <i>create a new Font object from a file</i><br>
- <tt>pygame.font.Font(filename, size): return Font</tt><br>
- <tt>pygame.font.Font(object, size): return Font</tt><br>
-<ul><small><table>
- <tr><td><a href="font.html#Font.render">Font.render</a> - <font size=-1>draw text on a new Surface</font></td><td>draw text on a new Surface</td></tr>
- <tr><td><a href="font.html#Font.size">Font.size</a> - <font size=-1>determine the amount of space needed to render text</font></td><td>determine the amount of space needed to render text</td></tr>
- <tr><td><a href="font.html#Font.set_underline">Font.set_underline</a> - <font size=-1>control if text is rendered with an underline</font></td><td>control if text is rendered with an underline</td></tr>
- <tr><td><a href="font.html#Font.get_underline">Font.get_underline</a> - <font size=-1>check if text will be rendered with an underline</font></td><td>check if text will be rendered with an underline</td></tr>
- <tr><td><a href="font.html#Font.set_bold">Font.set_bold</a> - <font size=-1>enable fake rendering of bold text</font></td><td>enable fake rendering of bold text</td></tr>
- <tr><td><a href="font.html#Font.get_bold">Font.get_bold</a> - <font size=-1>check if text will be rendered bold</font></td><td>check if text will be rendered bold</td></tr>
- <tr><td><a href="font.html#Font.set_italic">Font.set_italic</a> - <font size=-1>enable fake rendering of italic text</font></td><td>enable fake rendering of italic text</td></tr>
- <tr><td><a href="font.html#Font.metrics">Font.metrics</a> - <font size=-1>Gets the metrics for each character in the pased string.</font></td><td>Gets the metrics for each character in the pased string.</td></tr>
- <tr><td><a href="font.html#Font.get_italic">Font.get_italic</a> - <font size=-1>check if the text will be rendered italic</font></td><td>check if the text will be rendered italic</td></tr>
- <tr><td><a href="font.html#Font.get_linesize">Font.get_linesize</a> - <font size=-1>get the line space of the font text</font></td><td>get the line space of the font text</td></tr>
- <tr><td><a href="font.html#Font.get_height">Font.get_height</a> - <font size=-1>get the height of the font</font></td><td>get the height of the font</td></tr>
- <tr><td><a href="font.html#Font.get_ascent">Font.get_ascent</a> - <font size=-1>get the ascent of the font</font></td><td>get the ascent of the font</td></tr>
- <tr><td><a href="font.html#Font.get_descent">Font.get_descent</a> - <font size=-1>get the descent of the font</font></td><td>get the descent of the font</td></tr>
-</table></small></ul>
-<p>Load a new font from a given filename or a python file object. The size is the height of the font in pixels. If the filename is None the Pygame default font will be loaded. If a font cannot be loaded from the arguments given an exception will be raised. Once the font is created the size cannot be changed. </p>
-<p>Font objects are mainly used to render text into new Surface objects. The render can emulate bold or italic features, but it is better to load from a font with actual italic or bold glyphs. The rendered text can be regular strings or unicode. </p>
-<!--COMMENTS:pygame.font.Font--> &nbsp;<br>
-
-
-<a name="Font.render">
-<big><b>Font.render</big></b><br><ul>
- <i>draw text on a new Surface</i><br>
- <tt>Font.render(text, antialias, color, background=None): return Surface</tt><br>
-<p>This creates a new Surface with the specified text rendered on it. Pygame provides no way to directly draw text on an existing Surface: instead you must use <tt><a href="font.html#Font.render">Font.render</a> - <font size=-1>draw text on a new Surface</font></tt> to create an image (Surface) of the text, then blit this image onto another Surface. </p>
-<p>The text can only be a single line: newline characters are not rendered. The antialias argument is a boolean: if true the characters will have smooth edges. The color argument is the color of the text <tt>[e.g.:</tt> (0,0,255) for blue]. The optional background argument is a color to use for the text background. If no background is passed the area outside the text will be transparent. </p>
-<p>The Surface returned will be of the dimensions required to hold the text. (the same as those returned by <tt>Font.size())</tt>. If an empty string is passed for the text, a blank surface will be returned that is one pixel wide and the height of the font. </p>
-<p>Depending on the type of background and antialiasing used, this returns different types of Surfaces. For performance reasons, it is good to know what type of image will be used. If antialiasing is not used, the return image will always be an 8bit image with a two color palette. If the background is transparent a colorkey will be set. Antialiased images are rendered to 24-bit <tt>RGB</tt> images. If the background is transparent a pixel alpha will be included. </p>
-<p>Optimization: if you know that the final destination for the text (on the screen) will always have a solid background, and the text is antialiased, you can improve performance by specifying the background color. This will cause the resulting image to maintain transparency information by colorkey rather than (much less efficient) alpha values. </p>
-<p>If you render '\n' a unknown char will be rendered. Usually a rectangle. Instead you need to handle new lines yourself. </p>
-<p>Font rendering is not thread safe: only a single thread can render text any time. </p>
-<!--COMMENTS:Font.render--> &nbsp;<br>
-<br></ul>
-
-
-<a name="Font.size">
-<big><b>Font.size</big></b><br><ul>
- <i>determine the amount of space needed to render text</i><br>
- <tt>Font.size(text): return (width, height)</tt><br>
-<p>Returns the dimensions needed to render the text. This can be used to help determine the positioning needed for text before it is rendered. It can also be used for wordwrapping and other layout effects. </p>
-<p>Be aware that most fonts use kerning which adjusts the widths for specific letter pairs. For example, the width for "ae" will not always match the width for "a" + "e". </p>
-<!--COMMENTS:Font.size--> &nbsp;<br>
-<br></ul>
-
-
-<a name="Font.set_underline">
-<big><b>Font.set_underline</big></b><br><ul>
- <i>control if text is rendered with an underline</i><br>
- <tt>Font.set_underline(bool): return None</tt><br>
-<p>When enabled, all rendered fonts will include an underline. The underline is always one pixel thick, regardless of font size. This can be mixed with the bold and italic modes. </p>
-<!--COMMENTS:Font.set_underline--> &nbsp;<br>
-<br></ul>
-
-
-<a name="Font.get_underline">
-<big><b>Font.get_underline</big></b><br><ul>
- <i>check if text will be rendered with an underline</i><br>
- <tt>Font.get_underline(): return bool</tt><br>
-<p>Return True when the font underline is enabled. </p>
-<!--COMMENTS:Font.get_underline--> &nbsp;<br>
-<br></ul>
-
-
-<a name="Font.set_bold">
-<big><b>Font.set_bold</big></b><br><ul>
- <i>enable fake rendering of bold text</i><br>
- <tt>Font.set_bold(bool): return None</tt><br>
-<p>Enables the bold rendering of text. This is a fake stretching of the font that doesn't look good on many font types. If possible load the font from a real bold font file. While bold, the font will have a different width than when normal. This can be mixed with the italic and underline modes. </p>
-<!--COMMENTS:Font.set_bold--> &nbsp;<br>
-<br></ul>
-
-
-<a name="Font.get_bold">
-<big><b>Font.get_bold</big></b><br><ul>
- <i>check if text will be rendered bold</i><br>
- <tt>Font.get_bold(): return bool</tt><br>
-<p>Return True when the font bold rendering mode is enabled. </p>
-<!--COMMENTS:Font.get_bold--> &nbsp;<br>
-<br></ul>
-
-
-<a name="Font.set_italic">
-<big><b>Font.set_italic</big></b><br><ul>
- <i>enable fake rendering of italic text</i><br>
- <tt>Font.set_bold(bool): return None</tt><br>
-<p>Enables fake rendering of italic text. This is a fake skewing of the font that doesn't look good on many font types. If possible load the font from a real italic font file. While italic the font will have a different width than when normal. This can be mixed with the bold and underline modes. </p>
-<!--COMMENTS:Font.set_italic--> &nbsp;<br>
-<br></ul>
-
-
-<a name="Font.metrics">
-<big><b>Font.metrics</big></b><br><ul>
- <i>Gets the metrics for each character in the pased string.</i><br>
- <tt>Font.metrics(text): return list</tt><br>
-<p>The list contains tuples for each character, which contain the minimum <tt>X</tt> offset, the maximum <tt>X</tt> offset, the minimum <tt>Y</tt> offset, the maximum <tt>Y</tt> offset and the advance offset (bearing plus width) of the character. [(minx, maxx, miny, maxy, advance), (minx, maxx, miny, maxy, advance), <tt>...]</tt> </p>
-<!--COMMENTS:Font.metrics--> &nbsp;<br>
-<br></ul>
-
-
-<a name="Font.get_italic">
-<big><b>Font.get_italic</big></b><br><ul>
- <i>check if the text will be rendered italic</i><br>
- <tt>Font.get_italic(): return bool</tt><br>
-<p>Return True when the font italic rendering mode is enabled. </p>
-<!--COMMENTS:Font.get_italic--> &nbsp;<br>
-<br></ul>
-
-
-<a name="Font.get_linesize">
-<big><b>Font.get_linesize</big></b><br><ul>
- <i>get the line space of the font text</i><br>
- <tt>Font.get_linesize(): return int</tt><br>
-<p>Return the height in pixels for a line of text with the font. When rendering multiple lines of text this is the recommended amount of space between lines. </p>
-<!--COMMENTS:Font.get_linesize--> &nbsp;<br>
-<br></ul>
-
-
-<a name="Font.get_height">
-<big><b>Font.get_height</big></b><br><ul>
- <i>get the height of the font</i><br>
- <tt>Font.get_height(): return int</tt><br>
-<p>Return the height in pixels of the actual rendered text. This is the average size for each glyph in the font. </p>
-<!--COMMENTS:Font.get_height--> &nbsp;<br>
-<br></ul>
-
-
-<a name="Font.get_ascent">
-<big><b>Font.get_ascent</big></b><br><ul>
- <i>get the ascent of the font</i><br>
- <tt>Font.get_ascent(): return int</tt><br>
-<p>Return the height in pixels for the font ascent. The ascent is the number of pixels from the font baseline to the top of the font. </p>
-<!--COMMENTS:Font.get_ascent--> &nbsp;<br>
-<br></ul>
-
-
-<a name="Font.get_descent">
-<big><b>Font.get_descent</big></b><br><ul>
- <i>get the descent of the font</i><br>
- <tt>Font.get_descent(): return int</tt><br>
-<p>Return the height in pixels for the font descent. The descent is the number of pixels from the font baseline to the bottom of the font. </p>
-<!--COMMENTS:Font.get_descent--> &nbsp;<br>
-<br></ul>
-<br></ul>
-<br></ul>
-
-</body></html>
diff --git a/pygame/docs/ref/gfxdraw.html b/pygame/docs/ref/gfxdraw.html
deleted file mode 100755
index dbcc43e..0000000
--- a/pygame/docs/ref/gfxdraw.html
+++ /dev/null
@@ -1,287 +0,0 @@
-
-<html>
-<title>gfxdraw - Pygame Documentation</title>
-<body bgcolor=#aaeebb text=#000000 link=#331111 vlink=#331111>
-
-
-<table cellpadding=0 cellspacing=0 border=0 style='border: 3px solid black;' width='100%'>
-<tr>
-<td bgcolor='#c2fc20' style='padding: 6px;' align=center valign=center><a href='http://www.pygame.org/'><img src='../pygame_tiny.gif' border=0 width=200 height=60></a><br><b>pygame documentation</b></td>
-<td bgcolor='#6aee28' style='border-left: 3px solid black; padding: 6px;' align=center valign=center>
- ||&nbsp;
- <a href=http://www.pygame.org>Pygame Home</a> &nbsp;||&nbsp;
- <a href=../index.html>Help Contents</a> &nbsp;||
- <a href=index.html>Reference Index</a> &nbsp;||
- <br>&nbsp;<br>
-
-<a href="camera.html">Camera</a>&nbsp;||&nbsp;
-<a href="cdrom.html">Cdrom</a>&nbsp;||&nbsp;
-<a href="color.html">Color</a>&nbsp;||&nbsp;
-<a href="cursors.html">Cursors</a>&nbsp;||&nbsp;
-<a href="display.html">Display</a>&nbsp;||&nbsp;
-<a href="draw.html">Draw</a>&nbsp;||&nbsp;
-<a href="event.html">Event</a>&nbsp;||&nbsp;
-<a href="examples.html">Examples</a>&nbsp;||&nbsp;
-<a href="font.html">Font</a>&nbsp;||&nbsp;
-<a href="gfxdraw.html">Gfxdraw</a>&nbsp;||&nbsp;
-<a href="image.html">Image</a>&nbsp;||&nbsp;
-<a href="joystick.html">Joystick</a>&nbsp;||&nbsp;
-<a href="key.html">Key</a>&nbsp;||&nbsp;
-<a href="locals.html">Locals</a>&nbsp;||&nbsp;
-<a href="mask.html">Mask</a>&nbsp;||&nbsp;
-<a href="midi.html">Midi</a>&nbsp;||&nbsp;
-<a href="mixer.html">Mixer</a>&nbsp;||&nbsp;
-<a href="mouse.html">Mouse</a>&nbsp;||&nbsp;
-<a href="movie.html">Movie</a>&nbsp;||&nbsp;
-<a href="music.html">Music</a>&nbsp;||&nbsp;
-<a href="overlay.html">Overlay</a>&nbsp;||&nbsp;
-<a href="pixelarray.html">Pixelarray</a>&nbsp;||&nbsp;
-<a href="pygame.html">Pygame</a>&nbsp;||&nbsp;
-<a href="rect.html">Rect</a>&nbsp;||&nbsp;
-<a href="scrap.html">Scrap</a>&nbsp;||&nbsp;
-<a href="sndarray.html">Sndarray</a>&nbsp;||&nbsp;
-<a href="sprite.html">Sprite</a>&nbsp;||&nbsp;
-<a href="surface.html">Surface</a>&nbsp;||&nbsp;
-<a href="surfarray.html">Surfarray</a>&nbsp;||&nbsp;
-<a href="tests.html">Tests</a>&nbsp;||&nbsp;
-<a href="time.html">Time</a>&nbsp;||&nbsp;
-<a href="transform.html">Transform</a>
-</td></tr></table>
-<br>
-
-
-<a name="pygame.gfxdraw">
-<big><b>pygame.gfxdraw</big></b><br><ul>
- <i>pygame module for drawing shapes</i><br>
-<ul><small><table>
- <tr><td><a href="gfxdraw.html#pygame.gfxdraw.pixel">pygame.gfxdraw.pixel</a> - <font size=-1>place a pixel</font></td><td>place a pixel</td></tr>
- <tr><td><a href="gfxdraw.html#pygame.gfxdraw.hline">pygame.gfxdraw.hline</a> - <font size=-1>draw a horizontal line</font></td><td>draw a horizontal line</td></tr>
- <tr><td><a href="gfxdraw.html#pygame.gfxdraw.vline">pygame.gfxdraw.vline</a> - <font size=-1>draw a vertical line</font></td><td>draw a vertical line</td></tr>
- <tr><td><a href="gfxdraw.html#pygame.gfxdraw.rectangle">pygame.gfxdraw.rectangle</a> - <font size=-1>draw a rectangle</font></td><td>draw a rectangle</td></tr>
- <tr><td><a href="gfxdraw.html#pygame.gfxdraw.box">pygame.gfxdraw.box</a> - <font size=-1>draw a box</font></td><td>draw a box</td></tr>
- <tr><td><a href="gfxdraw.html#pygame.gfxdraw.line">pygame.gfxdraw.line</a> - <font size=-1>draw a line</font></td><td>draw a line</td></tr>
- <tr><td><a href="gfxdraw.html#pygame.gfxdraw.circle">pygame.gfxdraw.circle</a> - <font size=-1>draw a circle</font></td><td>draw a circle</td></tr>
- <tr><td><a href="gfxdraw.html#pygame.gfxdraw.arc">pygame.gfxdraw.arc</a> - <font size=-1>draw an arc</font></td><td>draw an arc</td></tr>
- <tr><td><a href="gfxdraw.html#pygame.gfxdraw.aacircle">pygame.gfxdraw.aacircle</a> - <font size=-1>draw an anti-aliased circle</font></td><td>draw an anti-aliased circle</td></tr>
- <tr><td><a href="gfxdraw.html#pygame.gfxdraw.filled_circle">pygame.gfxdraw.filled_circle</a> - <font size=-1>draw a filled circle</font></td><td>draw a filled circle</td></tr>
- <tr><td><a href="gfxdraw.html#pygame.gfxdraw.ellipse">pygame.gfxdraw.ellipse</a> - <font size=-1>draw an ellipse</font></td><td>draw an ellipse</td></tr>
- <tr><td><a href="gfxdraw.html#pygame.gfxdraw.aaellipse">pygame.gfxdraw.aaellipse</a> - <font size=-1>draw an anti-aliased ellipse</font></td><td>draw an anti-aliased ellipse</td></tr>
- <tr><td><a href="gfxdraw.html#pygame.gfxdraw.filled_ellipse">pygame.gfxdraw.filled_ellipse</a> - <font size=-1>draw a filled ellipse</font></td><td>draw a filled ellipse</td></tr>
- <tr><td><a href="gfxdraw.html#pygame.gfxdraw.pie">pygame.gfxdraw.pie</a> - <font size=-1>draw a pie</font></td><td>draw a pie</td></tr>
- <tr><td><a href="gfxdraw.html#pygame.gfxdraw.trigon">pygame.gfxdraw.trigon</a> - <font size=-1>draw a triangle</font></td><td>draw a triangle</td></tr>
- <tr><td><a href="gfxdraw.html#pygame.gfxdraw.aatrigon">pygame.gfxdraw.aatrigon</a> - <font size=-1>draw an anti-aliased triangle</font></td><td>draw an anti-aliased triangle</td></tr>
- <tr><td><a href="gfxdraw.html#pygame.gfxdraw.filled_trigon">pygame.gfxdraw.filled_trigon</a> - <font size=-1>draw a filled trigon</font></td><td>draw a filled trigon</td></tr>
- <tr><td><a href="gfxdraw.html#pygame.gfxdraw.polygon">pygame.gfxdraw.polygon</a> - <font size=-1>draw a polygon</font></td><td>draw a polygon</td></tr>
- <tr><td><a href="gfxdraw.html#pygame.gfxdraw.aapolygon">pygame.gfxdraw.aapolygon</a> - <font size=-1>draw an anti-aliased polygon</font></td><td>draw an anti-aliased polygon</td></tr>
- <tr><td><a href="gfxdraw.html#pygame.gfxdraw.filled_polygon">pygame.gfxdraw.filled_polygon</a> - <font size=-1>draw a filled polygon</font></td><td>draw a filled polygon</td></tr>
- <tr><td><a href="gfxdraw.html#pygame.gfxdraw.textured_polygon">pygame.gfxdraw.textured_polygon</a> - <font size=-1>draw a textured polygon</font></td><td>draw a textured polygon</td></tr>
- <tr><td><a href="gfxdraw.html#pygame.gfxdraw.bezier">pygame.gfxdraw.bezier</a> - <font size=-1>draw a bezier curve</font></td><td>draw a bezier curve</td></tr>
-</table></small></ul>
-<p>Wraps SDL_gfx primatives. </p>
-<p><tt>EXPERIMENTAL!:</tt> meaning this api may change, or dissapear in later pygame releases. If you use this, your code will break with the next pygame release. </p>
-<p>Most of the functions accept a color argument that is an <tt>RGB</tt> triplet. These can also accept an <tt>RGBA</tt> quadruplet. The color argument can also be an integer pixel value that is already mapped to the Surface's pixel format. </p>
-<p>For all functions the arguments are strictly positional. Only integers are accepted for coordinates and radii. </p>
-<p>For functions like rectangle that accept a rect argument any (x, y, w, h) sequence is accepted, though <tt>pygame.Rect</tt> instances are prefered. Note that for a <tt>pygame.Rect</tt> the drawing will not include <tt>Rect.bottomright</tt>. The right and bottom attributes of a Rect lie one pixel outside of the Rect's boarder. </p>
-<p>New in pygame <tt>1.9.0</tt>. </p>
-<!--COMMENTS:pygame.gfxdraw--> &nbsp;<br>
-
-
-<a name="pygame.gfxdraw.pixel">
-<big><b>pygame.gfxdraw.pixel</big></b><br><ul>
- <i>place a pixel</i><br>
- <tt>pygame.gfxdraw.pixel(surface, x, y, color): return None</tt><br>
- &nbsp;<br>
-<!--COMMENTS:pygame.gfxdraw.pixel--> &nbsp;<br>
-<br></ul>
-
-
-<a name="pygame.gfxdraw.hline">
-<big><b>pygame.gfxdraw.hline</big></b><br><ul>
- <i>draw a horizontal line</i><br>
- <tt>pygame.gfxdraw.hline(surface, x1, x2, y, color): return None</tt><br>
- &nbsp;<br>
-<!--COMMENTS:pygame.gfxdraw.hline--> &nbsp;<br>
-<br></ul>
-
-
-<a name="pygame.gfxdraw.vline">
-<big><b>pygame.gfxdraw.vline</big></b><br><ul>
- <i>draw a vertical line</i><br>
- <tt>pgyame.gfxdraw.vline(surface, x, y1, y2, color): return None</tt><br>
- &nbsp;<br>
-<!--COMMENTS:pygame.gfxdraw.vline--> &nbsp;<br>
-<br></ul>
-
-
-<a name="pygame.gfxdraw.rectangle">
-<big><b>pygame.gfxdraw.rectangle</big></b><br><ul>
- <i>draw a rectangle</i><br>
- <tt>pgyame.gfxdraw.rectangle(surface, rect, color): return None</tt><br>
- &nbsp;<br>
-<!--COMMENTS:pygame.gfxdraw.rectangle--> &nbsp;<br>
-<br></ul>
-
-
-<a name="pygame.gfxdraw.box">
-<big><b>pygame.gfxdraw.box</big></b><br><ul>
- <i>draw a box</i><br>
- <tt>pgyame.gfxdraw.box(surface, rect, color): return None</tt><br>
- &nbsp;<br>
-<!--COMMENTS:pygame.gfxdraw.box--> &nbsp;<br>
-<br></ul>
-
-
-<a name="pygame.gfxdraw.line">
-<big><b>pygame.gfxdraw.line</big></b><br><ul>
- <i>draw a line</i><br>
- <tt>pgyame.gfxdraw.line(surface, x1, y1, x2, y2, color): return None</tt><br>
- &nbsp;<br>
-<!--COMMENTS:pygame.gfxdraw.line--> &nbsp;<br>
-<br></ul>
-
-
-<a name="pygame.gfxdraw.circle">
-<big><b>pygame.gfxdraw.circle</big></b><br><ul>
- <i>draw a circle</i><br>
- <tt>pgyame.gfxdraw.circle(surface, x, y, r, color): return None</tt><br>
- &nbsp;<br>
-<!--COMMENTS:pygame.gfxdraw.circle--> &nbsp;<br>
-<br></ul>
-
-
-<a name="pygame.gfxdraw.arc">
-<big><b>pygame.gfxdraw.arc</big></b><br><ul>
- <i>draw an arc</i><br>
- <tt>pgyame.gfxdraw.arc(surface, x, y, r, start, end, color): return None</tt><br>
- &nbsp;<br>
-<!--COMMENTS:pygame.gfxdraw.arc--> &nbsp;<br>
-<br></ul>
-
-
-<a name="pygame.gfxdraw.aacircle">
-<big><b>pygame.gfxdraw.aacircle</big></b><br><ul>
- <i>draw an anti-aliased circle</i><br>
- <tt>pgyame.gfxdraw.aacircle(surface, x, y, r, color): return None</tt><br>
- &nbsp;<br>
-<!--COMMENTS:pygame.gfxdraw.aacircle--> &nbsp;<br>
-<br></ul>
-
-
-<a name="pygame.gfxdraw.filled_circle">
-<big><b>pygame.gfxdraw.filled_circle</big></b><br><ul>
- <i>draw a filled circle</i><br>
- <tt>pgyame.gfxdraw.filled_circle(surface, x, y, r, color): return None</tt><br>
- &nbsp;<br>
-<!--COMMENTS:pygame.gfxdraw.filled_circle--> &nbsp;<br>
-<br></ul>
-
-
-<a name="pygame.gfxdraw.ellipse">
-<big><b>pygame.gfxdraw.ellipse</big></b><br><ul>
- <i>draw an ellipse</i><br>
- <tt>pgyame.gfxdraw.ellipse(surface, x, y, rx, ry, color): return None</tt><br>
- &nbsp;<br>
-<!--COMMENTS:pygame.gfxdraw.ellipse--> &nbsp;<br>
-<br></ul>
-
-
-<a name="pygame.gfxdraw.aaellipse">
-<big><b>pygame.gfxdraw.aaellipse</big></b><br><ul>
- <i>draw an anti-aliased ellipse</i><br>
- <tt>pgyame.gfxdraw.aaellipse(surface, x, y, rx, ry, color): return None</tt><br>
- &nbsp;<br>
-<!--COMMENTS:pygame.gfxdraw.aaellipse--> &nbsp;<br>
-<br></ul>
-
-
-<a name="pygame.gfxdraw.filled_ellipse">
-<big><b>pygame.gfxdraw.filled_ellipse</big></b><br><ul>
- <i>draw a filled ellipse</i><br>
- <tt>pgyame.gfxdraw.filled_ellipse(surface, x, y, rx, ry, color): return None</tt><br>
- &nbsp;<br>
-<!--COMMENTS:pygame.gfxdraw.filled_ellipse--> &nbsp;<br>
-<br></ul>
-
-
-<a name="pygame.gfxdraw.pie">
-<big><b>pygame.gfxdraw.pie</big></b><br><ul>
- <i>draw a pie</i><br>
- <tt>pgyame.gfxdraw.pie(surface, x, y, r, start, end, color): return None</tt><br>
- &nbsp;<br>
-<!--COMMENTS:pygame.gfxdraw.pie--> &nbsp;<br>
-<br></ul>
-
-
-<a name="pygame.gfxdraw.trigon">
-<big><b>pygame.gfxdraw.trigon</big></b><br><ul>
- <i>draw a triangle</i><br>
- <tt>pgyame.gfxdraw.trigon(surface, x1, y1, x2, y2, x3, y3, color): return None</tt><br>
- &nbsp;<br>
-<!--COMMENTS:pygame.gfxdraw.trigon--> &nbsp;<br>
-<br></ul>
-
-
-<a name="pygame.gfxdraw.aatrigon">
-<big><b>pygame.gfxdraw.aatrigon</big></b><br><ul>
- <i>draw an anti-aliased triangle</i><br>
- <tt>pgyame.gfxdraw.aatrigon(surface, x1, y1, x2, y2, x3, y3, color): return None</tt><br>
- &nbsp;<br>
-<!--COMMENTS:pygame.gfxdraw.aatrigon--> &nbsp;<br>
-<br></ul>
-
-
-<a name="pygame.gfxdraw.filled_trigon">
-<big><b>pygame.gfxdraw.filled_trigon</big></b><br><ul>
- <i>draw a filled trigon</i><br>
- <tt>pgyame.gfxdraw.filled_trigon(surface, x1, y1, x3, y2, x3, y3, color): return None</tt><br>
- &nbsp;<br>
-<!--COMMENTS:pygame.gfxdraw.filled_trigon--> &nbsp;<br>
-<br></ul>
-
-
-<a name="pygame.gfxdraw.polygon">
-<big><b>pygame.gfxdraw.polygon</big></b><br><ul>
- <i>draw a polygon</i><br>
- <tt>pgyame.gfxdraw.polygon(surface, points, color): return None</tt><br>
- &nbsp;<br>
-<!--COMMENTS:pygame.gfxdraw.polygon--> &nbsp;<br>
-<br></ul>
-
-
-<a name="pygame.gfxdraw.aapolygon">
-<big><b>pygame.gfxdraw.aapolygon</big></b><br><ul>
- <i>draw an anti-aliased polygon</i><br>
- <tt>pgyame.gfxdraw.aapolygon(surface, points, color): return None</tt><br>
- &nbsp;<br>
-<!--COMMENTS:pygame.gfxdraw.aapolygon--> &nbsp;<br>
-<br></ul>
-
-
-<a name="pygame.gfxdraw.filled_polygon">
-<big><b>pygame.gfxdraw.filled_polygon</big></b><br><ul>
- <i>draw a filled polygon</i><br>
- <tt>pgyame.gfxdraw.filled_polygon(surface, points, color): return None</tt><br>
- &nbsp;<br>
-<!--COMMENTS:pygame.gfxdraw.filled_polygon--> &nbsp;<br>
-<br></ul>
-
-
-<a name="pygame.gfxdraw.textured_polygon">
-<big><b>pygame.gfxdraw.textured_polygon</big></b><br><ul>
- <i>draw a textured polygon</i><br>
- <tt>pgyame.gfxdraw.textured_polygon(surface, points, texture, tx, ty): return None</tt><br>
-<p><tt>A</tt> per-pixel alpha texture blit to a per-pixel alpha surface will differ from a <tt><a href="surface.html#Surface.blit">Surface.blit</a> - <font size=-1>draw one image onto another</font></tt> blit. Also, a per-pixel alpha texture cannot be used with an 8-bit per pixel destination. </p>
-<!--COMMENTS:pygame.gfxdraw.textured_polygon--> &nbsp;<br>
-<br></ul>
-
-
-<a name="pygame.gfxdraw.bezier">
-<big><b>pygame.gfxdraw.bezier</big></b><br><ul>
- <i>draw a bezier curve</i><br>
- <tt>pgyame.gfxdraw.bezier(surface, points, steps, color): return None</tt><br>
- &nbsp;<br>
-<!--COMMENTS:pygame.gfxdraw.bezier--> &nbsp;<br>
-<br></ul>
-<br></ul>
-
-</body></html>
diff --git a/pygame/docs/ref/image.html b/pygame/docs/ref/image.html
deleted file mode 100755
index 6a5848b..0000000
--- a/pygame/docs/ref/image.html
+++ /dev/null
@@ -1,166 +0,0 @@
-
-<html>
-<title>image - Pygame Documentation</title>
-<body bgcolor=#aaeebb text=#000000 link=#331111 vlink=#331111>
-
-
-<table cellpadding=0 cellspacing=0 border=0 style='border: 3px solid black;' width='100%'>
-<tr>
-<td bgcolor='#c2fc20' style='padding: 6px;' align=center valign=center><a href='http://www.pygame.org/'><img src='../pygame_tiny.gif' border=0 width=200 height=60></a><br><b>pygame documentation</b></td>
-<td bgcolor='#6aee28' style='border-left: 3px solid black; padding: 6px;' align=center valign=center>
- ||&nbsp;
- <a href=http://www.pygame.org>Pygame Home</a> &nbsp;||&nbsp;
- <a href=../index.html>Help Contents</a> &nbsp;||
- <a href=index.html>Reference Index</a> &nbsp;||
- <br>&nbsp;<br>
-
-<a href="camera.html">Camera</a>&nbsp;||&nbsp;
-<a href="cdrom.html">Cdrom</a>&nbsp;||&nbsp;
-<a href="color.html">Color</a>&nbsp;||&nbsp;
-<a href="cursors.html">Cursors</a>&nbsp;||&nbsp;
-<a href="display.html">Display</a>&nbsp;||&nbsp;
-<a href="draw.html">Draw</a>&nbsp;||&nbsp;
-<a href="event.html">Event</a>&nbsp;||&nbsp;
-<a href="examples.html">Examples</a>&nbsp;||&nbsp;
-<a href="font.html">Font</a>&nbsp;||&nbsp;
-<a href="gfxdraw.html">Gfxdraw</a>&nbsp;||&nbsp;
-<a href="image.html">Image</a>&nbsp;||&nbsp;
-<a href="joystick.html">Joystick</a>&nbsp;||&nbsp;
-<a href="key.html">Key</a>&nbsp;||&nbsp;
-<a href="locals.html">Locals</a>&nbsp;||&nbsp;
-<a href="mask.html">Mask</a>&nbsp;||&nbsp;
-<a href="midi.html">Midi</a>&nbsp;||&nbsp;
-<a href="mixer.html">Mixer</a>&nbsp;||&nbsp;
-<a href="mouse.html">Mouse</a>&nbsp;||&nbsp;
-<a href="movie.html">Movie</a>&nbsp;||&nbsp;
-<a href="music.html">Music</a>&nbsp;||&nbsp;
-<a href="overlay.html">Overlay</a>&nbsp;||&nbsp;
-<a href="pixelarray.html">Pixelarray</a>&nbsp;||&nbsp;
-<a href="pygame.html">Pygame</a>&nbsp;||&nbsp;
-<a href="rect.html">Rect</a>&nbsp;||&nbsp;
-<a href="scrap.html">Scrap</a>&nbsp;||&nbsp;
-<a href="sndarray.html">Sndarray</a>&nbsp;||&nbsp;
-<a href="sprite.html">Sprite</a>&nbsp;||&nbsp;
-<a href="surface.html">Surface</a>&nbsp;||&nbsp;
-<a href="surfarray.html">Surfarray</a>&nbsp;||&nbsp;
-<a href="tests.html">Tests</a>&nbsp;||&nbsp;
-<a href="time.html">Time</a>&nbsp;||&nbsp;
-<a href="transform.html">Transform</a>
-</td></tr></table>
-<br>
-
-
-<a name="pygame.image">
-<big><b>pygame.image</big></b><br><ul>
- <i>pygame module for image transfer</i><br>
-<ul><small><table>
- <tr><td><a href="image.html#pygame.image.load">pygame.image.load</a> - <font size=-1>load new image from a file</font></td><td>load new image from a file</td></tr>
- <tr><td><a href="image.html#pygame.image.save">pygame.image.save</a> - <font size=-1>save an image to disk</font></td><td>save an image to disk</td></tr>
- <tr><td><a href="image.html#pygame.image.get_extended">pygame.image.get_extended</a> - <font size=-1>test if extended image formats can be loaded</font></td><td>test if extended image formats can be loaded</td></tr>
- <tr><td><a href="image.html#pygame.image.tostring">pygame.image.tostring</a> - <font size=-1>transfer image to string buffer</font></td><td>transfer image to string buffer</td></tr>
- <tr><td><a href="image.html#pygame.image.fromstring">pygame.image.fromstring</a> - <font size=-1>create new Surface from a string buffer</font></td><td>create new Surface from a string buffer</td></tr>
- <tr><td><a href="image.html#pygame.image.frombuffer">pygame.image.frombuffer</a> - <font size=-1>create a new Surface that shares data inside a string buffer</font></td><td>create a new Surface that shares data inside a string buffer</td></tr>
-</table></small></ul>
-<p>The image module contains functions for loading and saving pictures, as well as transferring Surfaces to formats usable by other packages. </p>
-<p>Note that there is no Image class; an image is loaded as a Surface object. The Surface class allows manipulation (drawing lines, setting pixels, capturing regions, <tt>etc.)</tt>. </p>
-<p>The image module is a required dependency of Pygame, but it only optionally supports any extended file formats. By default it can only load uncompressed <tt>BMP</tt> images. When built with full image support, the <tt><a href="image.html#pygame.image.load">pygame.image.load</a> - <font size=-1>load new image from a file</font></tt> function can support the following formats. </p>
-<ul>
- <li><tt> JPG </tt></li>
- <li><tt> PNG </tt></li>
- <li> GIF (non animated) </li>
- <li><tt> BMP </tt></li>
- <li><tt> PCX </tt></li>
- <li> TGA (uncompressed) </li>
- <li><tt> TIF </tt></li>
- <li> LBM (and PBM) </li>
- <li> PBM (and PGM, PPM) </li>
- <li><tt> XPM </tt></li>
-</ul>
-<p>Saving images only supports a limited set of formats. You can save to the following formats. </p>
-<ul>
- <li><tt> BMP </tt></li>
- <li><tt> TGA </tt></li>
- <li><tt> PNG </tt></li>
- <li><tt> JPEG </tt></li>
-</ul>
-<p><tt>PNG</tt>, <tt>JPEG</tt> saving new in pygame <tt>1.8</tt>. </p>
-<!--COMMENTS:pygame.image--> &nbsp;<br>
-
-
-<a name="pygame.image.load">
-<big><b>pygame.image.load</big></b><br><ul>
- <i>load new image from a file</i><br>
- <tt>pygame.image.load(filename): return Surface</tt><br>
- <tt>pygame.image.load(fileobj, namehint=""): return Surface</tt><br>
-<p>Load an image from a file source. You can pass either a filename or a Python file-like object. </p>
-<p>Pygame will automatically determine the image type <tt>(e.g.</tt>, <tt>GIF</tt> or bitmap) and create a new Surface object from the data. In some cases it will need to know the file extension <tt>(e.g.</tt>, <tt>GIF</tt> images should end in <tt>".gif")</tt>. If you pass a raw file-like object, you may also want to pass the original filename as the namehint argument. </p>
-<p>The returned Surface will contain the same color format, colorkey and alpha transparency as the file it came from. You will often want to call <tt><a href="surface.html#Surface.convert">Surface.convert</a> - <font size=-1>change the pixel format of an image</font></tt> with no arguments, to create a copy that will draw more quickly on the screen. </p>
-<p>For alpha transparency, like in .png images use the convert_alpha() method after loading so that the image has per pixel transparency. </p>
-<p>Pygame may not always be built to support all image formats. At minimum it will support uncompressed <tt>BMP</tt>. If <tt><a href="image.html#pygame.image.get_extended">pygame.image.get_extended</a> - <font size=-1>test if extended image formats can be loaded</font></tt> returns 'True', you should be able to load most images( including png, jpg and gif ). </p>
-<p>You should use <tt>os.path.join()</tt> for compatibility. </p>
-<pre> eg. asurf = pygame.image.load(os.path.join('data', 'bla.png'))
-</pre>
-<!--COMMENTS:pygame.image.load--> &nbsp;<br>
-<br></ul>
-
-
-<a name="pygame.image.save">
-<big><b>pygame.image.save</big></b><br><ul>
- <i>save an image to disk</i><br>
- <tt>pygame.image.save(Surface, filename): return None</tt><br>
-<p>This will save your Surface as either a <tt>BMP</tt>, <tt>TGA</tt>, <tt>PNG</tt>, or <tt>JPEG</tt> image. If the filename extension is unrecognized it will default to <tt>TGA</tt>. Both <tt>TGA</tt>, and <tt>BMP</tt> file formats create uncompressed files. </p>
-<p><tt>PNG</tt>, <tt>JPEG</tt> saving new in pygame <tt>1.8</tt>. </p>
-<!--COMMENTS:pygame.image.save--> &nbsp;<br>
-<br></ul>
-
-
-<a name="pygame.image.get_extended">
-<big><b>pygame.image.get_extended</big></b><br><ul>
- <i>test if extended image formats can be loaded</i><br>
- <tt>pygame.image.get_extended(): return bool</tt><br>
-<p>If pygame is built with extended image formats this function will return True. It is still not possible to determine which formats will be available, but generally you will be able to load them all. </p>
-<!--COMMENTS:pygame.image.get_extended--> &nbsp;<br>
-<br></ul>
-
-
-<a name="pygame.image.tostring">
-<big><b>pygame.image.tostring</big></b><br><ul>
- <i>transfer image to string buffer</i><br>
- <tt>pygame.image.tostring(Surface, format, flipped=False): return string</tt><br>
-<p>Creates a string that can be transferred with the 'fromstring' method in other Python imaging packages. Some Python image packages prefer their images in bottom-to-top format (PyOpenGL for example). If you pass True for the flipped argument, the string buffer will be vertically flipped. </p>
-<p>The format argument is a string of one of the following values. Note that only 8bit Surfaces can use the <tt>"P"</tt> format. The other formats will work for any Surface. Also note that other Python image packages support more formats than Pygame. </p>
-<ul>
- <li> P, 8bit palettized Surfaces </li>
- <li> RGB, 24bit image </li>
- <li> RGBX, 32bit image with unused space </li>
- <li> RGBA, 32bit image with an alpha channel </li>
- <li> ARGB, 32bit image with alpha channel first </li>
- <li> RGBA_PREMULT, 32bit image with colors scaled by alpha channel </li>
- <li> ARGB_PREMULT, 32bit image with colors scaled by alpha channel, alpha channel first </li>
-</ul>
-<!--COMMENTS:pygame.image.tostring--> &nbsp;<br>
-<br></ul>
-
-
-<a name="pygame.image.fromstring">
-<big><b>pygame.image.fromstring</big></b><br><ul>
- <i>create new Surface from a string buffer</i><br>
- <tt>pygame.image.fromstring(string, size, format, flipped=False): return Surface</tt><br>
-<p>This function takes arguments similar to <tt><a href="image.html#pygame.image.tostring">pygame.image.tostring</a> - <font size=-1>transfer image to string buffer</font></tt>. The size argument is a pair of numbers representing the width and height. Once the new Surface is created you can destroy the string buffer. </p>
-<p>The size and format image must compute the exact same size as the passed string buffer. Otherwise an exception will be raised. </p>
-<p>See the <tt><a href="image.html#pygame.image.frombuffer">pygame.image.frombuffer</a> - <font size=-1>create a new Surface that shares data inside a string buffer</font></tt> method for a potentially faster way to transfer images into Pygame. </p>
-<!--COMMENTS:pygame.image.fromstring--> &nbsp;<br>
-<br></ul>
-
-
-<a name="pygame.image.frombuffer">
-<big><b>pygame.image.frombuffer</big></b><br><ul>
- <i>create a new Surface that shares data inside a string buffer</i><br>
- <tt>pygame.image.frombuffer(string, size, format): return Surface</tt><br>
-<p>Create a new Surface that shares pixel data directly from the string buffer. This method takes the same arguments as <tt><a href="image.html#pygame.image.fromstring">pygame.image.fromstring</a> - <font size=-1>create new Surface from a string buffer</font></tt>, but is unable to vertically flip the source data. </p>
-<p>This will run much faster than <tt>pygame.image.fromstring</tt>, since no pixel data must be allocated and copied. </p>
-<!--COMMENTS:pygame.image.frombuffer--> &nbsp;<br>
-<br></ul>
-<br></ul>
-
-</body></html>
diff --git a/pygame/docs/ref/index.html b/pygame/docs/ref/index.html
deleted file mode 100755
index 2075d0c..0000000
--- a/pygame/docs/ref/index.html
+++ /dev/null
@@ -1,692 +0,0 @@
-
-<html>
-<title>Index - Pygame Documentation</title>
-<body bgcolor=#aaeebb text=#000000 link=#331111 vlink=#331111>
-
-
-<table cellpadding=0 cellspacing=0 border=0 style='border: 3px solid black;' width='100%'>
-<tr>
-<td bgcolor='#c2fc20' style='padding: 6px;' align=center valign=center><a href='http://www.pygame.org/'><img src='../pygame_tiny.gif' border=0 width=200 height=60></a><br><b>pygame documentation</b></td>
-<td bgcolor='#6aee28' style='border-left: 3px solid black; padding: 6px;' align=center valign=center>
- ||&nbsp;
- <a href=http://www.pygame.org>Pygame Home</a> &nbsp;||&nbsp;
- <a href=../index.html>Help Contents</a> &nbsp;||
- <a href=index.html>Reference Index</a> &nbsp;||
- <br>&nbsp;<br>
-
-<a href="camera.html">Camera</a>&nbsp;||&nbsp;
-<a href="cdrom.html">Cdrom</a>&nbsp;||&nbsp;
-<a href="color.html">Color</a>&nbsp;||&nbsp;
-<a href="cursors.html">Cursors</a>&nbsp;||&nbsp;
-<a href="display.html">Display</a>&nbsp;||&nbsp;
-<a href="draw.html">Draw</a>&nbsp;||&nbsp;
-<a href="event.html">Event</a>&nbsp;||&nbsp;
-<a href="examples.html">Examples</a>&nbsp;||&nbsp;
-<a href="font.html">Font</a>&nbsp;||&nbsp;
-<a href="gfxdraw.html">Gfxdraw</a>&nbsp;||&nbsp;
-<a href="image.html">Image</a>&nbsp;||&nbsp;
-<a href="joystick.html">Joystick</a>&nbsp;||&nbsp;
-<a href="key.html">Key</a>&nbsp;||&nbsp;
-<a href="locals.html">Locals</a>&nbsp;||&nbsp;
-<a href="mask.html">Mask</a>&nbsp;||&nbsp;
-<a href="midi.html">Midi</a>&nbsp;||&nbsp;
-<a href="mixer.html">Mixer</a>&nbsp;||&nbsp;
-<a href="mouse.html">Mouse</a>&nbsp;||&nbsp;
-<a href="movie.html">Movie</a>&nbsp;||&nbsp;
-<a href="music.html">Music</a>&nbsp;||&nbsp;
-<a href="overlay.html">Overlay</a>&nbsp;||&nbsp;
-<a href="pixelarray.html">Pixelarray</a>&nbsp;||&nbsp;
-<a href="pygame.html">Pygame</a>&nbsp;||&nbsp;
-<a href="rect.html">Rect</a>&nbsp;||&nbsp;
-<a href="scrap.html">Scrap</a>&nbsp;||&nbsp;
-<a href="sndarray.html">Sndarray</a>&nbsp;||&nbsp;
-<a href="sprite.html">Sprite</a>&nbsp;||&nbsp;
-<a href="surface.html">Surface</a>&nbsp;||&nbsp;
-<a href="surfarray.html">Surfarray</a>&nbsp;||&nbsp;
-<a href="tests.html">Tests</a>&nbsp;||&nbsp;
-<a href="time.html">Time</a>&nbsp;||&nbsp;
-<a href="transform.html">Transform</a>
-</td></tr></table>
-<br>
-<ul>
-
-<li><a href="pygame.html#pygame">pygame</a> - <font size=-1>the top level pygame package</font></li>
-<ul>
-<li><a href="color.html#pygame.Color">pygame.Color</a> - <font size=-1>pygame object for color representations</font></li>
-<ul>
-<li><a href="color.html#Color.a">Color.a</a> - <font size=-1>Gets or sets the alpha value of the Color.</font></li>
-<li><a href="color.html#Color.b">Color.b</a> - <font size=-1>Gets or sets the blue value of the Color.</font></li>
-<li><a href="color.html#Color.cmy">Color.cmy</a> - <font size=-1>Gets or sets the CMY representation of the Color.</font></li>
-<li><a href="color.html#Color.correct_gamma">Color.correct_gamma</a> - <font size=-1>Applies a certain gamma value to the Color.</font></li>
-<li><a href="color.html#Color.g">Color.g</a> - <font size=-1>Gets or sets the green value of the Color.</font></li>
-<li><a href="color.html#Color.hsla">Color.hsla</a> - <font size=-1>Gets or sets the HSLA representation of the Color.</font></li>
-<li><a href="color.html#Color.hsva">Color.hsva</a> - <font size=-1>Gets or sets the HSVA representation of the Color.</font></li>
-<li><a href="color.html#Color.i1i2i3">Color.i1i2i3</a> - <font size=-1>Gets or sets the I1I2I3 representation of the Color.</font></li>
-<li><a href="color.html#Color.normalize">Color.normalize</a> - <font size=-1>Returns the normalized RGBA values of the Color.</font></li>
-<li><a href="color.html#Color.r">Color.r</a> - <font size=-1>Gets or sets the red value of the Color.</font></li>
-<li><a href="color.html#Color.set_length">Color.set_length</a> - <font size=-1>Set the number of elements in the Color to 1,2,3, or 4.</font></li>
-</ul>
-<li><a href="overlay.html#pygame.Overlay">pygame.Overlay</a> - <font size=-1>pygame object for video overlay graphics</font></li>
-<ul>
-<li><a href="overlay.html#Overlay.display">Overlay.display</a> - <font size=-1>set the overlay pixel data</font></li>
-<li><a href="overlay.html#Overlay.get_hardware">Overlay.get_hardware</a> - <font size=-1>test if the Overlay is hardware accelerated</font></li>
-<li><a href="overlay.html#Overlay.set_location">Overlay.set_location</a> - <font size=-1>control where the overlay is displayed</font></li>
-</ul>
-<li><a href="pixelarray.html#pygame.PixelArray">pygame.PixelArray</a> - <font size=-1>pygame object for direct pixel access of surfaces</font></li>
-<ul>
-<li><a href="pixelarray.html#PixelArray.compare">PixelArray.compare</a> - <font size=-1>Compares the PixelArray with another one.</font></li>
-<li><a href="pixelarray.html#PixelArray.extract">PixelArray.extract</a> - <font size=-1>Extracts the passed color from the PixelArray.</font></li>
-<li><a href="pixelarray.html#PixelArray.make_surface">PixelArray.make_surface</a> - <font size=-1>Creates a new Surface from the current PixelArray.</font></li>
-<li><a href="pixelarray.html#PixelArray.replace">PixelArray.replace</a> - <font size=-1>Replaces the passed color in the PixelArray with another one.</font></li>
-<li><a href="pixelarray.html#PixelArray.surface">PixelArray.surface</a> - <font size=-1>Gets the Surface the PixelArray uses.</font></li>
-</ul>
-<li><a href="rect.html#pygame.Rect">pygame.Rect</a> - <font size=-1>pygame object for storing rectangular coordinates</font></li>
-<ul>
-<li><a href="rect.html#Rect.clamp">Rect.clamp</a> - <font size=-1>moves the rectangle inside another</font></li>
-<li><a href="rect.html#Rect.clamp_ip">Rect.clamp_ip</a> - <font size=-1>moves the rectangle inside another, in place</font></li>
-<li><a href="rect.html#Rect.clip">Rect.clip</a> - <font size=-1>crops a rectangle inside another</font></li>
-<li><a href="rect.html#Rect.collidedict">Rect.collidedict</a> - <font size=-1>test if one rectangle in a dictionary intersects</font></li>
-<li><a href="rect.html#Rect.collidedictall">Rect.collidedictall</a> - <font size=-1>test if all rectangles in a dictionary intersect</font></li>
-<li><a href="rect.html#Rect.collidelist">Rect.collidelist</a> - <font size=-1>test if one rectangle in a list intersects</font></li>
-<li><a href="rect.html#Rect.collidelistall">Rect.collidelistall</a> - <font size=-1>test if all rectangles in a list intersect</font></li>
-<li><a href="rect.html#Rect.collidepoint">Rect.collidepoint</a> - <font size=-1>test if a point is inside a rectangle</font></li>
-<li><a href="rect.html#Rect.colliderect">Rect.colliderect</a> - <font size=-1>test if two rectangles overlap</font></li>
-<li><a href="rect.html#Rect.contains">Rect.contains</a> - <font size=-1>test if one rectangle is inside another</font></li>
-<li><a href="rect.html#Rect.copy">Rect.copy</a> - <font size=-1>copy the rectangle</font></li>
-<li><a href="rect.html#Rect.fit">Rect.fit</a> - <font size=-1>resize and move a rectangle with aspect ratio</font></li>
-<li><a href="rect.html#Rect.inflate">Rect.inflate</a> - <font size=-1>grow or shrink the rectangle size</font></li>
-<li><a href="rect.html#Rect.inflate_ip">Rect.inflate_ip</a> - <font size=-1>grow or shrink the rectangle size, in place</font></li>
-<li><a href="rect.html#Rect.move">Rect.move</a> - <font size=-1>moves the rectangle</font></li>
-<li><a href="rect.html#Rect.move_ip">Rect.move_ip</a> - <font size=-1>moves the rectangle, in place</font></li>
-<li><a href="rect.html#Rect.normalize">Rect.normalize</a> - <font size=-1>correct negative sizes</font></li>
-<li><a href="rect.html#Rect.union">Rect.union</a> - <font size=-1>joins two rectangles into one</font></li>
-<li><a href="rect.html#Rect.union_ip">Rect.union_ip</a> - <font size=-1>joins two rectangles into one, in place</font></li>
-<li><a href="rect.html#Rect.unionall">Rect.unionall</a> - <font size=-1>the union of many rectangles</font></li>
-<li><a href="rect.html#Rect.unionall_ip">Rect.unionall_ip</a> - <font size=-1>the union of many rectangles, in place</font></li>
-</ul>
-<li><a href="surface.html#pygame.Surface">pygame.Surface</a> - <font size=-1>pygame object for representing images</font></li>
-<ul>
-<li><a href="surface.html#Surface.blit">Surface.blit</a> - <font size=-1>draw one image onto another</font></li>
-<li><a href="surface.html#Surface.convert">Surface.convert</a> - <font size=-1>change the pixel format of an image</font></li>
-<li><a href="surface.html#Surface.convert_alpha">Surface.convert_alpha</a> - <font size=-1>change the pixel format of an image including per pixel alphas</font></li>
-<li><a href="surface.html#Surface.copy">Surface.copy</a> - <font size=-1>create a new copy of a Surface</font></li>
-<li><a href="surface.html#Surface.fill">Surface.fill</a> - <font size=-1>fill Surface with a solid color</font></li>
-<li><a href="surface.html#Surface.get_abs_offset">Surface.get_abs_offset</a> - <font size=-1>find the absolute position of a child subsurface inside its top level parent</font></li>
-<li><a href="surface.html#Surface.get_abs_parent">Surface.get_abs_parent</a> - <font size=-1>find the top level parent of a subsurface</font></li>
-<li><a href="surface.html#Surface.get_alpha">Surface.get_alpha</a> - <font size=-1>get the current Surface transparency value</font></li>
-<li><a href="surface.html#Surface.get_at">Surface.get_at</a> - <font size=-1>get the color value at a single pixel</font></li>
-<li><a href="surface.html#Surface.get_bitsize">Surface.get_bitsize</a> - <font size=-1>get the bit depth of the Surface pixel format</font></li>
-<li><a href="surface.html#Surface.get_bounding_rect">Surface.get_bounding_rect</a> - <font size=-1>find the smallest rect containing data</font></li>
-<li><a href="surface.html#Surface.get_buffer">Surface.get_buffer</a> - <font size=-1>acquires a buffer object for the pixels of the Surface.</font></li>
-<li><a href="surface.html#Surface.get_bytesize">Surface.get_bytesize</a> - <font size=-1>get the bytes used per Surface pixel</font></li>
-<li><a href="surface.html#Surface.get_clip">Surface.get_clip</a> - <font size=-1>get the current clipping area of the Surface</font></li>
-<li><a href="surface.html#Surface.get_colorkey">Surface.get_colorkey</a> - <font size=-1>Get the current transparent colorkey</font></li>
-<li><a href="surface.html#Surface.get_flags">Surface.get_flags</a> - <font size=-1>get the additional flags used for the Surface</font></li>
-<li><a href="surface.html#Surface.get_height">Surface.get_height</a> - <font size=-1>get the height of the Surface</font></li>
-<li><a href="surface.html#Surface.get_locked">Surface.get_locked</a> - <font size=-1>test if the Surface is current locked</font></li>
-<li><a href="surface.html#Surface.get_locks">Surface.get_locks</a> - <font size=-1>Gets the locks for the Surface</font></li>
-<li><a href="surface.html#Surface.get_losses">Surface.get_losses</a> - <font size=-1>the significant bits used to convert between a color and a mapped integer</font></li>
-<li><a href="surface.html#Surface.get_masks">Surface.get_masks</a> - <font size=-1>the bitmasks needed to convert between a color and a mapped integer</font></li>
-<li><a href="surface.html#Surface.get_offset">Surface.get_offset</a> - <font size=-1>find the position of a child subsurface inside a parent</font></li>
-<li><a href="surface.html#Surface.get_palette">Surface.get_palette</a> - <font size=-1>get the color index palette for an 8bit Surface</font></li>
-<li><a href="surface.html#Surface.get_palette_at">Surface.get_palette_at</a> - <font size=-1>get the color for a single entry in a palette</font></li>
-<li><a href="surface.html#Surface.get_parent">Surface.get_parent</a> - <font size=-1>find the parent of a subsurface</font></li>
-<li><a href="surface.html#Surface.get_pitch">Surface.get_pitch</a> - <font size=-1>get the number of bytes used per Surface row</font></li>
-<li><a href="surface.html#Surface.get_rect">Surface.get_rect</a> - <font size=-1>get the rectangular area of the Surface</font></li>
-<li><a href="surface.html#Surface.get_shifts">Surface.get_shifts</a> - <font size=-1>the bit shifts needed to convert between a color and a mapped integer</font></li>
-<li><a href="surface.html#Surface.get_size">Surface.get_size</a> - <font size=-1>get the dimensions of the Surface</font></li>
-<li><a href="surface.html#Surface.get_width">Surface.get_width</a> - <font size=-1>get the width of the Surface</font></li>
-<li><a href="surface.html#Surface.lock">Surface.lock</a> - <font size=-1>lock the Surface memory for pixel access</font></li>
-<li><a href="surface.html#Surface.map_rgb">Surface.map_rgb</a> - <font size=-1>convert a color into a mapped color value</font></li>
-<li><a href="surface.html#Surface.mustlock">Surface.mustlock</a> - <font size=-1>test if the Surface requires locking</font></li>
-<li><a href="surface.html#Surface.scroll">Surface.scroll</a> - <font size=-1>Shift the surface image in place</font></li>
-<li><a href="surface.html#Surface.set_alpha">Surface.set_alpha</a> - <font size=-1>set the alpha value for the full Surface image</font></li>
-<li><a href="surface.html#Surface.set_at">Surface.set_at</a> - <font size=-1>set the color value for a single pixel</font></li>
-<li><a href="surface.html#Surface.set_clip">Surface.set_clip</a> - <font size=-1>set the current clipping area of the Surface</font></li>
-<li><a href="surface.html#Surface.set_colorkey">Surface.set_colorkey</a> - <font size=-1>Set the transparent colorkey</font></li>
-<li><a href="surface.html#Surface.set_masks">Surface.set_masks</a> - <font size=-1>set the bitmasks needed to convert between a color and a mapped integer</font></li>
-<li><a href="surface.html#Surface.set_palette">Surface.set_palette</a> - <font size=-1>set the color palette for an 8bit Surface</font></li>
-<li><a href="surface.html#Surface.set_palette_at">Surface.set_palette_at</a> - <font size=-1>set the color for a single index in an 8bit Surface palette</font></li>
-<li><a href="surface.html#Surface.set_shifts">Surface.set_shifts</a> - <font size=-1>sets the bit shifts needed to convert between a color and a mapped integer</font></li>
-<li><a href="surface.html#Surface.subsurface">Surface.subsurface</a> - <font size=-1>create a new surface that references its parent</font></li>
-<li><a href="surface.html#Surface.unlock">Surface.unlock</a> - <font size=-1>unlock the Surface memory from pixel access</font></li>
-<li><a href="surface.html#Surface.unmap_rgb">Surface.unmap_rgb</a> - <font size=-1>convert a mapped integer color value into a Color</font></li>
-</ul>
-<li><a href="camera.html#pygame.camera">pygame.camera</a> - <font size=-1>pygame module for camera use</font></li>
-<ul>
-<li><a href="camera.html#pygame.camera.Camera">pygame.camera.Camera</a> - <font size=-1>load a camera</font></li>
-<ul>
-<li><a href="camera.html#Camera.get_controls">Camera.get_controls</a> - <font size=-1>gets current values of user controls</font></li>
-<li><a href="camera.html#Camera.get_image">Camera.get_image</a> - <font size=-1>captures an image as a Surface</font></li>
-<li><a href="camera.html#Camera.get_raw">Camera.get_raw</a> - <font size=-1>returns an unmodified image as a string</font></li>
-<li><a href="camera.html#Camera.get_size">Camera.get_size</a> - <font size=-1>returns the dimensions of the images being recorded</font></li>
-<li><a href="camera.html#Camera.query_image">Camera.query_image</a> - <font size=-1>checks if a frame is ready</font></li>
-<li><a href="camera.html#Camera.set_controls">Camera.set_controls</a> - <font size=-1>changes camera settings if supported by the camera</font></li>
-<li><a href="camera.html#Camera.start">Camera.start</a> - <font size=-1>opens, initializes, and starts capturing</font></li>
-<li><a href="camera.html#Camera.stop">Camera.stop</a> - <font size=-1>stops, uninitializes, and closes the camera</font></li>
-</ul>
-<li><a href="camera.html#pygame.camera.colorspace">pygame.camera.colorspace</a> - <font size=-1>Surface colorspace conversion</font></li>
-<li><a href="camera.html#pygame.camera.list_cameras">pygame.camera.list_cameras</a> - <font size=-1>returns a list of available cameras</font></li>
-</ul>
-<li><a href="cdrom.html#pygame.cdrom">pygame.cdrom</a> - <font size=-1>pygame module for audio cdrom control</font></li>
-<ul>
-<li><a href="cdrom.html#pygame.cdrom.CD">pygame.cdrom.CD</a> - <font size=-1>class to manage a cdrom drive</font></li>
-<ul>
-<li><a href="cdrom.html#CD.eject">CD.eject</a> - <font size=-1>eject or open the cdrom drive</font></li>
-<li><a href="cdrom.html#CD.get_all">CD.get_all</a> - <font size=-1>get all track information</font></li>
-<li><a href="cdrom.html#CD.get_busy">CD.get_busy</a> - <font size=-1>true if the drive is playing audio</font></li>
-<li><a href="cdrom.html#CD.get_current">CD.get_current</a> - <font size=-1>the current audio playback position</font></li>
-<li><a href="cdrom.html#CD.get_empty">CD.get_empty</a> - <font size=-1>False if a cdrom is in the drive</font></li>
-<li><a href="cdrom.html#CD.get_id">CD.get_id</a> - <font size=-1>the index of the cdrom drive</font></li>
-<li><a href="cdrom.html#CD.get_init">CD.get_init</a> - <font size=-1>true if this cd device initialized</font></li>
-<li><a href="cdrom.html#CD.get_name">CD.get_name</a> - <font size=-1>the system name of the cdrom drive</font></li>
-<li><a href="cdrom.html#CD.get_numtracks">CD.get_numtracks</a> - <font size=-1>the number of tracks on the cdrom</font></li>
-<li><a href="cdrom.html#CD.get_paused">CD.get_paused</a> - <font size=-1>true if the drive is paused</font></li>
-<li><a href="cdrom.html#CD.get_track_audio">CD.get_track_audio</a> - <font size=-1>true if the cdrom track has audio data</font></li>
-<li><a href="cdrom.html#CD.get_track_length">CD.get_track_length</a> - <font size=-1>length of a cdrom track</font></li>
-<li><a href="cdrom.html#CD.get_track_start">CD.get_track_start</a> - <font size=-1>start time of a cdrom track</font></li>
-<li><a href="cdrom.html#CD.init">CD.init</a> - <font size=-1>initialize a cdrom drive for use</font></li>
-<li><a href="cdrom.html#CD.pause">CD.pause</a> - <font size=-1>temporarily stop audio playback</font></li>
-<li><a href="cdrom.html#CD.play">CD.play</a> - <font size=-1>start playing audio</font></li>
-<li><a href="cdrom.html#CD.quit">CD.quit</a> - <font size=-1>uninitialize a cdrom drive for use</font></li>
-<li><a href="cdrom.html#CD.resume">CD.resume</a> - <font size=-1>unpause audio playback</font></li>
-<li><a href="cdrom.html#CD.stop">CD.stop</a> - <font size=-1>stop audio playback</font></li>
-</ul>
-<li><a href="cdrom.html#pygame.cdrom.get_count">pygame.cdrom.get_count</a> - <font size=-1>number of cd drives on the system</font></li>
-<li><a href="cdrom.html#pygame.cdrom.get_init">pygame.cdrom.get_init</a> - <font size=-1>true if the cdrom module is initialized</font></li>
-<li><a href="cdrom.html#pygame.cdrom.init">pygame.cdrom.init</a> - <font size=-1>initialize the cdrom module</font></li>
-<li><a href="cdrom.html#pygame.cdrom.quit">pygame.cdrom.quit</a> - <font size=-1>uninitialize the cdrom module</font></li>
-</ul>
-<li><a href="cursors.html#pygame.cursors">pygame.cursors</a> - <font size=-1>pygame module for cursor resources</font></li>
-<ul>
-<li><a href="cursors.html#pygame.cursors.compile">pygame.cursors.compile</a> - <font size=-1>create binary cursor data from simple strings</font></li>
-<li><a href="cursors.html#pygame.cursors.load_xbm">pygame.cursors.load_xbm</a> - <font size=-1>load cursor data from an xbm file</font></li>
-</ul>
-<li><a href="display.html#pygame.display">pygame.display</a> - <font size=-1>pygame module to control the display window and screen</font></li>
-<ul>
-<li><a href="display.html#pygame.display.Info">pygame.display.Info</a> - <font size=-1>Create a video display information object</font></li>
-<li><a href="display.html#pygame.display.flip">pygame.display.flip</a> - <font size=-1>update the full display Surface to the screen</font></li>
-<li><a href="display.html#pygame.display.get_active">pygame.display.get_active</a> - <font size=-1>true when the display is active on the display</font></li>
-<li><a href="display.html#pygame.display.get_caption">pygame.display.get_caption</a> - <font size=-1>get the current window caption</font></li>
-<li><a href="display.html#pygame.display.get_driver">pygame.display.get_driver</a> - <font size=-1>get the name of the pygame display backend</font></li>
-<li><a href="display.html#pygame.display.get_init">pygame.display.get_init</a> - <font size=-1>true if the display module is initialized</font></li>
-<li><a href="display.html#pygame.display.get_surface">pygame.display.get_surface</a> - <font size=-1>get a reference to the currently set display surface</font></li>
-<li><a href="display.html#pygame.display.get_wm_info">pygame.display.get_wm_info</a> - <font size=-1>Get information about the current windowing system</font></li>
-<li><a href="display.html#pygame.display.gl_get_attribute">pygame.display.gl_get_attribute</a> - <font size=-1>get the value for an opengl flag for the current display</font></li>
-<li><a href="display.html#pygame.display.gl_set_attribute">pygame.display.gl_set_attribute</a> - <font size=-1>request an opengl display attribute for the display mode</font></li>
-<li><a href="display.html#pygame.display.iconify">pygame.display.iconify</a> - <font size=-1>iconify the display surface</font></li>
-<li><a href="display.html#pygame.display.init">pygame.display.init</a> - <font size=-1>initialize the display module</font></li>
-<li><a href="display.html#pygame.display.list_modes">pygame.display.list_modes</a> - <font size=-1>get list of available fullscreen modes</font></li>
-<li><a href="display.html#pygame.display.mode_ok">pygame.display.mode_ok</a> - <font size=-1>pick the best color depth for a display mode</font></li>
-<li><a href="display.html#pygame.display.quit">pygame.display.quit</a> - <font size=-1>uninitialize the display module</font></li>
-<li><a href="display.html#pygame.display.set_caption">pygame.display.set_caption</a> - <font size=-1>set the current window caption</font></li>
-<li><a href="display.html#pygame.display.set_gamma">pygame.display.set_gamma</a> - <font size=-1>change the hardware gamma ramps</font></li>
-<li><a href="display.html#pygame.display.set_gamma_ramp">pygame.display.set_gamma_ramp</a> - <font size=-1>set_gamma_ramp(red, green, blue): return bool</font></li>
-<li><a href="display.html#pygame.display.set_icon">pygame.display.set_icon</a> - <font size=-1>change the system image for the display window</font></li>
-<li><a href="display.html#pygame.display.set_mode">pygame.display.set_mode</a> - <font size=-1>initialize a window or screen for display</font></li>
-<li><a href="display.html#pygame.display.set_palette">pygame.display.set_palette</a> - <font size=-1>set the display color palette for indexed displays</font></li>
-<li><a href="display.html#pygame.display.toggle_fullscreen">pygame.display.toggle_fullscreen</a> - <font size=-1>switch between fullscreen and windowed displays</font></li>
-<li><a href="display.html#pygame.display.update">pygame.display.update</a> - <font size=-1>update portions of the screen for software displays</font></li>
-</ul>
-<li><a href="draw.html#pygame.draw">pygame.draw</a> - <font size=-1>pygame module for drawing shapes</font></li>
-<ul>
-<li><a href="draw.html#pygame.draw.aaline">pygame.draw.aaline</a> - <font size=-1>draw fine antialiased lines</font></li>
-<li><a href="draw.html#pygame.draw.aalines">pygame.draw.aalines</a> - <font size=-1>pygame.draw.aalines(Surface, color, closed, pointlist, blend=1): return Rect</font></li>
-<li><a href="draw.html#pygame.draw.arc">pygame.draw.arc</a> - <font size=-1>draw a partial section of an ellipse</font></li>
-<li><a href="draw.html#pygame.draw.circle">pygame.draw.circle</a> - <font size=-1>draw a circle around a point</font></li>
-<li><a href="draw.html#pygame.draw.ellipse">pygame.draw.ellipse</a> - <font size=-1>draw a round shape inside a rectangle</font></li>
-<li><a href="draw.html#pygame.draw.line">pygame.draw.line</a> - <font size=-1>draw a straight line segment</font></li>
-<li><a href="draw.html#pygame.draw.lines">pygame.draw.lines</a> - <font size=-1>draw multiple contiguous line segments</font></li>
-<li><a href="draw.html#pygame.draw.polygon">pygame.draw.polygon</a> - <font size=-1>draw a shape with any number of sides</font></li>
-<li><a href="draw.html#pygame.draw.rect">pygame.draw.rect</a> - <font size=-1>draw a rectangle shape</font></li>
-</ul>
-<li><a href="pygame.html#pygame.error">pygame.error</a> - <font size=-1>standard pygame exception</font></li>
-<li><a href="event.html#pygame.event">pygame.event</a> - <font size=-1>pygame module for interacting with events and queues</font></li>
-<ul>
-<li><a href="event.html#pygame.event.Event">pygame.event.Event</a> - <font size=-1>create a new event object</font></li>
-<li><a href="event.html#pygame.event.clear">pygame.event.clear</a> - <font size=-1>remove all events from the queue</font></li>
-<li><a href="event.html#pygame.event.event_name">pygame.event.event_name</a> - <font size=-1>get the string name from and event id</font></li>
-<li><a href="event.html#pygame.event.get">pygame.event.get</a> - <font size=-1>get events from the queue</font></li>
-<li><a href="event.html#pygame.event.get_blocked">pygame.event.get_blocked</a> - <font size=-1>test if a type of event is blocked from the queue</font></li>
-<li><a href="event.html#pygame.event.get_grab">pygame.event.get_grab</a> - <font size=-1>test if the program is sharing input devices</font></li>
-<li><a href="event.html#pygame.event.peek">pygame.event.peek</a> - <font size=-1>test if event types are waiting on the queue</font></li>
-<li><a href="event.html#pygame.event.poll">pygame.event.poll</a> - <font size=-1>get a single event from the queue</font></li>
-<li><a href="event.html#pygame.event.post">pygame.event.post</a> - <font size=-1>place a new event on the queue</font></li>
-<li><a href="event.html#pygame.event.pump">pygame.event.pump</a> - <font size=-1>internally process pygame event handlers</font></li>
-<li><a href="event.html#pygame.event.set_allowed">pygame.event.set_allowed</a> - <font size=-1>control which events are allowed on the queue</font></li>
-<li><a href="event.html#pygame.event.set_blocked">pygame.event.set_blocked</a> - <font size=-1>control which events are allowed on the queue</font></li>
-<li><a href="event.html#pygame.event.set_grab">pygame.event.set_grab</a> - <font size=-1>control the sharing of input devices with other applications</font></li>
-<li><a href="event.html#pygame.event.wait">pygame.event.wait</a> - <font size=-1>wait for a single event from the queue</font></li>
-</ul>
-<li><a href="examples.html#pygame.examples">pygame.examples</a> - <font size=-1>module of example programs</font></li>
-<ul>
-<li><a href="examples.html#pygame.examples.aliens.main">pygame.examples.aliens.main</a> - <font size=-1>play the full aliens example</font></li>
-<li><a href="examples.html#pygame.examples.arraydemo.main">pygame.examples.arraydemo.main</a> - <font size=-1>show various surfarray effects</font></li>
-<li><a href="examples.html#pygame.examples.blend_fill.main">pygame.examples.blend_fill.main</a> - <font size=-1>demonstrate the various surface.fill method blend options</font></li>
-<li><a href="examples.html#pygame.examples.chimp.main">pygame.examples.chimp.main</a> - <font size=-1>hit the moving chimp</font></li>
-<li><a href="examples.html#pygame.examples.cursors.main">pygame.examples.cursors.main</a> - <font size=-1>display two different custom cursors</font></li>
-<li><a href="examples.html#pygame.examples.eventlist.main">pygame.examples.eventlist.main</a> - <font size=-1>display pygame events</font></li>
-<li><a href="examples.html#pygame.examples.fastevents.main">pygame.examples.fastevents.main</a> - <font size=-1>stress test the fastevents module</font></li>
-<li><a href="examples.html#pygame.examples.fonty.main">pygame.examples.fonty.main</a> - <font size=-1>run a font rendering example</font></li>
-<li><a href="examples.html#pygame.examples.glcube.main">pygame.examples.glcube.main</a> - <font size=-1>display an animated 3D cube using OpenGL</font></li>
-<li><a href="examples.html#pygame.examples.headless_no_windows_needed.main">pygame.examples.headless_no_windows_needed.main</a> - <font size=-1>write an image file that is smoothscaled copy of an input file</font></li>
-<li><a href="examples.html#pygame.examples.liquid.main">pygame.examples.liquid.main</a> - <font size=-1>display an animated liquid effect</font></li>
-<li><a href="examples.html#pygame.examples.mask.main">pygame.examples.mask.main</a> - <font size=-1>display multiple images bounce off each other using collision detection</font></li>
-<li><a href="examples.html#pygame.examples.midi.main">pygame.examples.midi.main</a> - <font size=-1>run a midi example</font></li>
-<li><a href="examples.html#pygame.examples.moveit.main">pygame.examples.moveit.main</a> - <font size=-1>display animated objects on the screen</font></li>
-<li><a href="examples.html#pygame.examples.movieplayer.main">pygame.examples.movieplayer.main</a> - <font size=-1>play an MPEG movie</font></li>
-<li><a href="examples.html#pygame.examples.oldalien.main">pygame.examples.oldalien.main</a> - <font size=-1>play the original aliens example</font></li>
-<li><a href="examples.html#pygame.examples.overlay.main">pygame.examples.overlay.main</a> - <font size=-1>play a .pgm video using overlays</font></li>
-<li><a href="examples.html#pygame.examples.pixelarray.main">pygame.examples.pixelarray.main</a> - <font size=-1>display various pixelarray generated effects</font></li>
-<li><a href="examples.html#pygame.examples.scaletest.main">pygame.examples.scaletest.main</a> - <font size=-1>interactively scale an image using smoothscale</font></li>
-<li><a href="examples.html#pygame.examples.scrap_clipboard.main">pygame.examples.scrap_clipboard.main</a> - <font size=-1>access the clipboard</font></li>
-<li><a href="examples.html#pygame.examples.scroll.main">pygame.examples.scroll.main</a> - <font size=-1>run a Surface.scroll example that shows a magnified image</font></li>
-<li><a href="examples.html#pygame.examples.sound.main">pygame.examples.sound.main</a> - <font size=-1>load and play a sound</font></li>
-<li><a href="examples.html#pygame.examples.sound_array_demos.main">pygame.examples.sound_array_demos.main</a> - <font size=-1>play various sndarray effects</font></li>
-<li><a href="examples.html#pygame.examples.stars.main">pygame.examples.stars.main</a> - <font size=-1>run a simple starfield example</font></li>
-<li><a href="examples.html#pygame.examples.testsprite.main">pygame.examples.testsprite.main</a> - <font size=-1>show lots of sprites moving around</font></li>
-<li><a href="examples.html#pygame.examples.vgrade.main">pygame.examples.vgrade.main</a> - <font size=-1>display a vertical gradient</font></li>
-</ul>
-<li><a href="font.html#pygame.font">pygame.font</a> - <font size=-1>pygame module for loading and rendering fonts</font></li>
-<ul>
-<li><a href="font.html#pygame.font.Font">pygame.font.Font</a> - <font size=-1>create a new Font object from a file</font></li>
-<ul>
-<li><a href="font.html#Font.get_ascent">Font.get_ascent</a> - <font size=-1>get the ascent of the font</font></li>
-<li><a href="font.html#Font.get_bold">Font.get_bold</a> - <font size=-1>check if text will be rendered bold</font></li>
-<li><a href="font.html#Font.get_descent">Font.get_descent</a> - <font size=-1>get the descent of the font</font></li>
-<li><a href="font.html#Font.get_height">Font.get_height</a> - <font size=-1>get the height of the font</font></li>
-<li><a href="font.html#Font.get_italic">Font.get_italic</a> - <font size=-1>check if the text will be rendered italic</font></li>
-<li><a href="font.html#Font.get_linesize">Font.get_linesize</a> - <font size=-1>get the line space of the font text</font></li>
-<li><a href="font.html#Font.get_underline">Font.get_underline</a> - <font size=-1>check if text will be rendered with an underline</font></li>
-<li><a href="font.html#Font.metrics">Font.metrics</a> - <font size=-1>Gets the metrics for each character in the pased string.</font></li>
-<li><a href="font.html#Font.render">Font.render</a> - <font size=-1>draw text on a new Surface</font></li>
-<li><a href="font.html#Font.set_bold">Font.set_bold</a> - <font size=-1>enable fake rendering of bold text</font></li>
-<li><a href="font.html#Font.set_italic">Font.set_italic</a> - <font size=-1>enable fake rendering of italic text</font></li>
-<li><a href="font.html#Font.set_underline">Font.set_underline</a> - <font size=-1>control if text is rendered with an underline</font></li>
-<li><a href="font.html#Font.size">Font.size</a> - <font size=-1>determine the amount of space needed to render text</font></li>
-</ul>
-<li><a href="font.html#pygame.font.SysFont">pygame.font.SysFont</a> - <font size=-1>create a Font object from the system fonts</font></li>
-<li><a href="font.html#pygame.font.get_default_font">pygame.font.get_default_font</a> - <font size=-1>get the filename of the default font</font></li>
-<li><a href="font.html#pygame.font.get_fonts">pygame.font.get_fonts</a> - <font size=-1>get all available fonts</font></li>
-<li><a href="font.html#pygame.font.get_init">pygame.font.get_init</a> - <font size=-1>true if the font module is initialized</font></li>
-<li><a href="font.html#pygame.font.init">pygame.font.init</a> - <font size=-1>initialize the font module</font></li>
-<li><a href="font.html#pygame.font.match_font">pygame.font.match_font</a> - <font size=-1>find a specific font on the system</font></li>
-<li><a href="font.html#pygame.font.quit">pygame.font.quit</a> - <font size=-1>uninitialize the font module</font></li>
-</ul>
-<li><a href="pygame.html#pygame.get_error">pygame.get_error</a> - <font size=-1>get the current error message</font></li>
-<li><a href="pygame.html#pygame.get_sdl_byteorder">pygame.get_sdl_byteorder</a> - <font size=-1>get the byte order of SDL</font></li>
-<li><a href="pygame.html#pygame.get_sdl_version">pygame.get_sdl_version</a> - <font size=-1>get the version number of SDL</font></li>
-<li><a href="gfxdraw.html#pygame.gfxdraw">pygame.gfxdraw</a> - <font size=-1>pygame module for drawing shapes</font></li>
-<ul>
-<li><a href="gfxdraw.html#pygame.gfxdraw.aacircle">pygame.gfxdraw.aacircle</a> - <font size=-1>draw an anti-aliased circle</font></li>
-<li><a href="gfxdraw.html#pygame.gfxdraw.aaellipse">pygame.gfxdraw.aaellipse</a> - <font size=-1>draw an anti-aliased ellipse</font></li>
-<li><a href="gfxdraw.html#pygame.gfxdraw.aapolygon">pygame.gfxdraw.aapolygon</a> - <font size=-1>draw an anti-aliased polygon</font></li>
-<li><a href="gfxdraw.html#pygame.gfxdraw.aatrigon">pygame.gfxdraw.aatrigon</a> - <font size=-1>draw an anti-aliased triangle</font></li>
-<li><a href="gfxdraw.html#pygame.gfxdraw.arc">pygame.gfxdraw.arc</a> - <font size=-1>draw an arc</font></li>
-<li><a href="gfxdraw.html#pygame.gfxdraw.bezier">pygame.gfxdraw.bezier</a> - <font size=-1>draw a bezier curve</font></li>
-<li><a href="gfxdraw.html#pygame.gfxdraw.box">pygame.gfxdraw.box</a> - <font size=-1>draw a box</font></li>
-<li><a href="gfxdraw.html#pygame.gfxdraw.circle">pygame.gfxdraw.circle</a> - <font size=-1>draw a circle</font></li>
-<li><a href="gfxdraw.html#pygame.gfxdraw.ellipse">pygame.gfxdraw.ellipse</a> - <font size=-1>draw an ellipse</font></li>
-<li><a href="gfxdraw.html#pygame.gfxdraw.filled_circle">pygame.gfxdraw.filled_circle</a> - <font size=-1>draw a filled circle</font></li>
-<li><a href="gfxdraw.html#pygame.gfxdraw.filled_ellipse">pygame.gfxdraw.filled_ellipse</a> - <font size=-1>draw a filled ellipse</font></li>
-<li><a href="gfxdraw.html#pygame.gfxdraw.filled_polygon">pygame.gfxdraw.filled_polygon</a> - <font size=-1>draw a filled polygon</font></li>
-<li><a href="gfxdraw.html#pygame.gfxdraw.filled_trigon">pygame.gfxdraw.filled_trigon</a> - <font size=-1>draw a filled trigon</font></li>
-<li><a href="gfxdraw.html#pygame.gfxdraw.hline">pygame.gfxdraw.hline</a> - <font size=-1>draw a horizontal line</font></li>
-<li><a href="gfxdraw.html#pygame.gfxdraw.line">pygame.gfxdraw.line</a> - <font size=-1>draw a line</font></li>
-<li><a href="gfxdraw.html#pygame.gfxdraw.pie">pygame.gfxdraw.pie</a> - <font size=-1>draw a pie</font></li>
-<li><a href="gfxdraw.html#pygame.gfxdraw.pixel">pygame.gfxdraw.pixel</a> - <font size=-1>place a pixel</font></li>
-<li><a href="gfxdraw.html#pygame.gfxdraw.polygon">pygame.gfxdraw.polygon</a> - <font size=-1>draw a polygon</font></li>
-<li><a href="gfxdraw.html#pygame.gfxdraw.rectangle">pygame.gfxdraw.rectangle</a> - <font size=-1>draw a rectangle</font></li>
-<li><a href="gfxdraw.html#pygame.gfxdraw.textured_polygon">pygame.gfxdraw.textured_polygon</a> - <font size=-1>draw a textured polygon</font></li>
-<li><a href="gfxdraw.html#pygame.gfxdraw.trigon">pygame.gfxdraw.trigon</a> - <font size=-1>draw a triangle</font></li>
-<li><a href="gfxdraw.html#pygame.gfxdraw.vline">pygame.gfxdraw.vline</a> - <font size=-1>draw a vertical line</font></li>
-</ul>
-<li><a href="image.html#pygame.image">pygame.image</a> - <font size=-1>pygame module for image transfer</font></li>
-<ul>
-<li><a href="image.html#pygame.image.frombuffer">pygame.image.frombuffer</a> - <font size=-1>create a new Surface that shares data inside a string buffer</font></li>
-<li><a href="image.html#pygame.image.fromstring">pygame.image.fromstring</a> - <font size=-1>create new Surface from a string buffer</font></li>
-<li><a href="image.html#pygame.image.get_extended">pygame.image.get_extended</a> - <font size=-1>test if extended image formats can be loaded</font></li>
-<li><a href="image.html#pygame.image.load">pygame.image.load</a> - <font size=-1>load new image from a file</font></li>
-<li><a href="image.html#pygame.image.save">pygame.image.save</a> - <font size=-1>save an image to disk</font></li>
-<li><a href="image.html#pygame.image.tostring">pygame.image.tostring</a> - <font size=-1>transfer image to string buffer</font></li>
-</ul>
-<li><a href="pygame.html#pygame.init">pygame.init</a> - <font size=-1>initialize all imported pygame modules</font></li>
-<li><a href="joystick.html#pygame.joystick">pygame.joystick</a> - <font size=-1>pygame module for interacting with joystick devices</font></li>
-<ul>
-<li><a href="joystick.html#pygame.joystick.Joystick">pygame.joystick.Joystick</a> - <font size=-1>create a new Joystick object</font></li>
-<ul>
-<li><a href="joystick.html#Joystick.get_axis">Joystick.get_axis</a> - <font size=-1>get the current position of an axis</font></li>
-<li><a href="joystick.html#Joystick.get_ball">Joystick.get_ball</a> - <font size=-1>get the relative position of a trackball</font></li>
-<li><a href="joystick.html#Joystick.get_button">Joystick.get_button</a> - <font size=-1>get the current button state</font></li>
-<li><a href="joystick.html#Joystick.get_hat">Joystick.get_hat</a> - <font size=-1>get the position of a joystick hat</font></li>
-<li><a href="joystick.html#Joystick.get_id">Joystick.get_id</a> - <font size=-1>get the Joystick ID</font></li>
-<li><a href="joystick.html#Joystick.get_init">Joystick.get_init</a> - <font size=-1>check if the Joystick is initialized</font></li>
-<li><a href="joystick.html#Joystick.get_name">Joystick.get_name</a> - <font size=-1>get the Joystick system name</font></li>
-<li><a href="joystick.html#Joystick.get_numaxes">Joystick.get_numaxes</a> - <font size=-1>get the number of axes on a Joystick</font></li>
-<li><a href="joystick.html#Joystick.get_numballs">Joystick.get_numballs</a> - <font size=-1>get the number of trackballs on a Joystick</font></li>
-<li><a href="joystick.html#Joystick.get_numbuttons">Joystick.get_numbuttons</a> - <font size=-1>get the number of buttons on a Joystick</font></li>
-<li><a href="joystick.html#Joystick.get_numhats">Joystick.get_numhats</a> - <font size=-1>get the number of hat controls on a Joystick</font></li>
-<li><a href="joystick.html#Joystick.init">Joystick.init</a> - <font size=-1>initialize the Joystick</font></li>
-<li><a href="joystick.html#Joystick.quit">Joystick.quit</a> - <font size=-1>uninitialize the Joystick</font></li>
-</ul>
-<li><a href="joystick.html#pygame.joystick.get_count">pygame.joystick.get_count</a> - <font size=-1>number of joysticks on the system</font></li>
-<li><a href="joystick.html#pygame.joystick.get_init">pygame.joystick.get_init</a> - <font size=-1>true if the joystick module is initialized</font></li>
-<li><a href="joystick.html#pygame.joystick.init">pygame.joystick.init</a> - <font size=-1>initialize the joystick module</font></li>
-<li><a href="joystick.html#pygame.joystick.quit">pygame.joystick.quit</a> - <font size=-1>uninitialize the joystick module</font></li>
-</ul>
-<li><a href="key.html#pygame.key">pygame.key</a> - <font size=-1>pygame module to work with the keyboard</font></li>
-<ul>
-<li><a href="key.html#pygame.key.get_focused">pygame.key.get_focused</a> - <font size=-1>true if the display is receiving keyboard input from the system</font></li>
-<li><a href="key.html#pygame.key.get_mods">pygame.key.get_mods</a> - <font size=-1>determine which modifier keys are being held</font></li>
-<li><a href="key.html#pygame.key.get_pressed">pygame.key.get_pressed</a> - <font size=-1>get the state of all keyboard buttons</font></li>
-<li><a href="key.html#pygame.key.get_repeat">pygame.key.get_repeat</a> - <font size=-1>see how held keys are repeated</font></li>
-<li><a href="key.html#pygame.key.name">pygame.key.name</a> - <font size=-1>get the name of a key identifier</font></li>
-<li><a href="key.html#pygame.key.set_mods">pygame.key.set_mods</a> - <font size=-1>temporarily set which modifier keys are pressed</font></li>
-<li><a href="key.html#pygame.key.set_repeat">pygame.key.set_repeat</a> - <font size=-1>control how held keys are repeated</font></li>
-</ul>
-<li><a href="locals.html#pygame.locals">pygame.locals</a> - <font size=-1>pygame constants</font></li>
-<li><a href="mask.html#pygame.mask">pygame.mask</a> - <font size=-1>pygame module for image masks.</font></li>
-<ul>
-<li><a href="mask.html#pygame.mask.Mask">pygame.mask.Mask</a> - <font size=-1>pygame object for representing 2d bitmasks</font></li>
-<ul>
-<li><a href="mask.html#Mask.angle">Mask.angle</a> - <font size=-1>Returns the orientation of the pixels</font></li>
-<li><a href="mask.html#Mask.centroid">Mask.centroid</a> - <font size=-1>Returns the centroid of the pixels in a Mask</font></li>
-<li><a href="mask.html#Mask.clear">Mask.clear</a> - <font size=-1>Sets all bits to 0</font></li>
-<li><a href="mask.html#Mask.connected_component">Mask.connected_component</a> - <font size=-1>Returns a mask of a connected region of pixels.</font></li>
-<li><a href="mask.html#Mask.connected_components">Mask.connected_components</a> - <font size=-1>Returns a list of masks of connected regions of pixels.</font></li>
-<li><a href="mask.html#Mask.convolve">Mask.convolve</a> - <font size=-1>Return the convolution of self with another mask.</font></li>
-<li><a href="mask.html#Mask.count">Mask.count</a> - <font size=-1>Returns the number of set pixels</font></li>
-<li><a href="mask.html#Mask.draw">Mask.draw</a> - <font size=-1>Draws a mask onto another</font></li>
-<li><a href="mask.html#Mask.erase">Mask.erase</a> - <font size=-1>Erases a mask from another</font></li>
-<li><a href="mask.html#Mask.fill">Mask.fill</a> - <font size=-1>Sets all bits to 1</font></li>
-<li><a href="mask.html#Mask.get_at">Mask.get_at</a> - <font size=-1>Returns nonzero if the bit at (x,y) is set.</font></li>
-<li><a href="mask.html#Mask.get_bounding_rects">Mask.get_bounding_rects</a> - <font size=-1>Returns a list of bounding rects of regions of set pixels.</font></li>
-<li><a href="mask.html#Mask.get_size">Mask.get_size</a> - <font size=-1>Returns the size of the mask.</font></li>
-<li><a href="mask.html#Mask.invert">Mask.invert</a> - <font size=-1>Flips the bits in a Mask</font></li>
-<li><a href="mask.html#Mask.outline">Mask.outline</a> - <font size=-1>list of points outlining an object</font></li>
-<li><a href="mask.html#Mask.overlap">Mask.overlap</a> - <font size=-1>Returns the point of intersection if the masks overlap with the given offset - or None if it does not overlap.</font></li>
-<li><a href="mask.html#Mask.overlap_area">Mask.overlap_area</a> - <font size=-1>Returns the number of overlapping 'pixels'.</font></li>
-<li><a href="mask.html#Mask.overlap_mask">Mask.overlap_mask</a> - <font size=-1>Returns a mask of the overlapping pixels</font></li>
-<li><a href="mask.html#Mask.scale">Mask.scale</a> - <font size=-1>Resizes a mask</font></li>
-<li><a href="mask.html#Mask.set_at">Mask.set_at</a> - <font size=-1>Sets the position in the mask given by x and y.</font></li>
-</ul>
-<li><a href="mask.html#pygame.mask.from_surface">pygame.mask.from_surface</a> - <font size=-1>Returns a Mask from the given surface.</font></li>
-<li><a href="mask.html#pygame.mask.from_threshold">pygame.mask.from_threshold</a> - <font size=-1>Creates a mask by thresholding Surfaces</font></li>
-</ul>
-<li><a href="midi.html#pygame.midi">pygame.midi</a> - <font size=-1>pygame module for interacting with midi input and output.</font></li>
-<ul>
-<li><a href="midi.html#pygame.midi.Input">pygame.midi.Input</a> - <font size=-1>Input is used to get midi input from midi devices.</font></li>
-<ul>
-<li><a href="midi.html#Input.close">Input.close</a> - <font size=-1> closes a midi stream, flushing any pending buffers.</font></li>
-<li><a href="midi.html#Input.poll">Input.poll</a> - <font size=-1>returns true if there's data, or false if not.</font></li>
-<li><a href="midi.html#Input.read">Input.read</a> - <font size=-1>reads num_events midi events from the buffer.</font></li>
-</ul>
-<li><a href="midi.html#pygame.midi.MidiException">pygame.midi.MidiException</a> - <font size=-1>exception that pygame.midi functions and classes can raise</font></li>
-<li><a href="midi.html#pygame.midi.Output">pygame.midi.Output</a> - <font size=-1>Output is used to send midi to an output device</font></li>
-<ul>
-<li><a href="midi.html#Output.abort">Output.abort</a> - <font size=-1> terminates outgoing messages immediately</font></li>
-<li><a href="midi.html#Output.close">Output.close</a> - <font size=-1> closes a midi stream, flushing any pending buffers.</font></li>
-<li><a href="midi.html#Output.note_off">Output.note_off</a> - <font size=-1>turns a midi note off. Note must be on.</font></li>
-<li><a href="midi.html#Output.note_on">Output.note_on</a> - <font size=-1>turns a midi note on. Note must be off.</font></li>
-<li><a href="midi.html#Output.set_instrument">Output.set_instrument</a> - <font size=-1>select an instrument, with a value between 0 and 127</font></li>
-<li><a href="midi.html#Output.write">Output.write</a> - <font size=-1>writes a list of midi data to the Output</font></li>
-<li><a href="midi.html#Output.write_short">Output.write_short</a> - <font size=-1>write_short(status <, data1><, data2>)</font></li>
-<li><a href="midi.html#Output.write_sys_ex">Output.write_sys_ex</a> - <font size=-1>writes a timestamped system-exclusive midi message.</font></li>
-</ul>
-<li><a href="midi.html#pygame.midi.get_count">pygame.midi.get_count</a> - <font size=-1>gets the number of devices.</font></li>
-<li><a href="midi.html#pygame.midi.get_default_input_id">pygame.midi.get_default_input_id</a> - <font size=-1>gets default input device number</font></li>
-<li><a href="midi.html#pygame.midi.get_default_output_id">pygame.midi.get_default_output_id</a> - <font size=-1>gets default output device number</font></li>
-<li><a href="midi.html#pygame.midi.get_device_info">pygame.midi.get_device_info</a> - <font size=-1> returns information about a midi device</font></li>
-<li><a href="midi.html#pygame.midi.init">pygame.midi.init</a> - <font size=-1>initialize the midi module</font></li>
-<li><a href="midi.html#pygame.midi.midis2events">pygame.midi.midis2events</a> - <font size=-1>converts midi events to pygame events</font></li>
-<li><a href="midi.html#pygame.midi.quit">pygame.midi.quit</a> - <font size=-1>uninitialize the midi module</font></li>
-<li><a href="midi.html#pygame.midi.time">pygame.midi.time</a> - <font size=-1>returns the current time in ms of the PortMidi timer</font></li>
-</ul>
-<li><a href="mixer.html#pygame.mixer">pygame.mixer</a> - <font size=-1>pygame module for loading and playing sounds</font></li>
-<ul>
-<li><a href="mixer.html#pygame.mixer.Channel">pygame.mixer.Channel</a> - <font size=-1>Create a Channel object for controlling playback</font></li>
-<ul>
-<li><a href="mixer.html#Channel.fadeout">Channel.fadeout</a> - <font size=-1>stop playback after fading channel out</font></li>
-<li><a href="mixer.html#Channel.get_busy">Channel.get_busy</a> - <font size=-1>check if the channel is active</font></li>
-<li><a href="mixer.html#Channel.get_endevent">Channel.get_endevent</a> - <font size=-1>get the event a channel sends when playback stops</font></li>
-<li><a href="mixer.html#Channel.get_queue">Channel.get_queue</a> - <font size=-1>return any Sound that is queued</font></li>
-<li><a href="mixer.html#Channel.get_sound">Channel.get_sound</a> - <font size=-1>get the currently playing Sound</font></li>
-<li><a href="mixer.html#Channel.get_volume">Channel.get_volume</a> - <font size=-1>get the volume of the playing channel</font></li>
-<li><a href="mixer.html#Channel.pause">Channel.pause</a> - <font size=-1>temporarily stop playback of a channel</font></li>
-<li><a href="mixer.html#Channel.play">Channel.play</a> - <font size=-1>play a Sound on a specific Channel</font></li>
-<li><a href="mixer.html#Channel.queue">Channel.queue</a> - <font size=-1>queue a Sound object to follow the current</font></li>
-<li><a href="mixer.html#Channel.set_endevent">Channel.set_endevent</a> - <font size=-1>have the channel send an event when playback stops</font></li>
-<li><a href="mixer.html#Channel.set_volume">Channel.set_volume</a> - <font size=-1>set the volume of a playing channel</font></li>
-<li><a href="mixer.html#Channel.stop">Channel.stop</a> - <font size=-1>stop playback on a Channel</font></li>
-<li><a href="mixer.html#Channel.unpause">Channel.unpause</a> - <font size=-1>resume pause playback of a channel</font></li>
-</ul>
-<li><a href="mixer.html#pygame.mixer.Sound">pygame.mixer.Sound</a> - <font size=-1>Create a new Sound object from a file</font></li>
-<ul>
-<li><a href="mixer.html#Sound.fadeout">Sound.fadeout</a> - <font size=-1>stop sound playback after fading out</font></li>
-<li><a href="mixer.html#Sound.get_buffer">Sound.get_buffer</a> - <font size=-1>acquires a buffer object for the sameples of the Sound.</font></li>
-<li><a href="mixer.html#Sound.get_length">Sound.get_length</a> - <font size=-1>get the length of the Sound</font></li>
-<li><a href="mixer.html#Sound.get_num_channels">Sound.get_num_channels</a> - <font size=-1>count how many times this Sound is playing</font></li>
-<li><a href="mixer.html#Sound.get_volume">Sound.get_volume</a> - <font size=-1>get the playback volume</font></li>
-<li><a href="mixer.html#Sound.play">Sound.play</a> - <font size=-1>begin sound playback</font></li>
-<li><a href="mixer.html#Sound.set_volume">Sound.set_volume</a> - <font size=-1>set the playback volume for this Sound</font></li>
-<li><a href="mixer.html#Sound.stop">Sound.stop</a> - <font size=-1>stop sound playback</font></li>
-</ul>
-<li><a href="mixer.html#pygame.mixer.fadeout">pygame.mixer.fadeout</a> - <font size=-1>fade out the volume on all sounds before stopping</font></li>
-<li><a href="mixer.html#pygame.mixer.find_channel">pygame.mixer.find_channel</a> - <font size=-1>find an unused channel</font></li>
-<li><a href="mixer.html#pygame.mixer.get_busy">pygame.mixer.get_busy</a> - <font size=-1>test if any sound is being mixed</font></li>
-<li><a href="mixer.html#pygame.mixer.get_init">pygame.mixer.get_init</a> - <font size=-1>test if the mixer is initialized</font></li>
-<li><a href="mixer.html#pygame.mixer.get_num_channels">pygame.mixer.get_num_channels</a> - <font size=-1>get the total number of playback channels</font></li>
-<li><a href="mixer.html#pygame.mixer.init">pygame.mixer.init</a> - <font size=-1>initialize the mixer module</font></li>
-<li><a href="music.html#pygame.mixer.music">pygame.mixer.music</a> - <font size=-1>pygame module for controlling streamed audio</font></li>
-<ul>
-<li><a href="music.html#pygame.mixer.music.fadeout">pygame.mixer.music.fadeout</a> - <font size=-1>stop music playback after fading out</font></li>
-<li><a href="music.html#pygame.mixer.music.get_busy">pygame.mixer.music.get_busy</a> - <font size=-1>check if the music stream is playing</font></li>
-<li><a href="music.html#pygame.mixer.music.get_endevent">pygame.mixer.music.get_endevent</a> - <font size=-1>get the event a channel sends when playback stops</font></li>
-<li><a href="music.html#pygame.mixer.music.get_pos">pygame.mixer.music.get_pos</a> - <font size=-1>get the music play time</font></li>
-<li><a href="music.html#pygame.mixer.music.get_volume">pygame.mixer.music.get_volume</a> - <font size=-1>get the music volume</font></li>
-<li><a href="music.html#pygame.mixer.music.load">pygame.mixer.music.load</a> - <font size=-1>Load a music file for playback</font></li>
-<li><a href="music.html#pygame.mixer.music.pause">pygame.mixer.music.pause</a> - <font size=-1>temporarily stop music playback</font></li>
-<li><a href="music.html#pygame.mixer.music.play">pygame.mixer.music.play</a> - <font size=-1>Start the playback of the music stream</font></li>
-<li><a href="music.html#pygame.mixer.music.queue">pygame.mixer.music.queue</a> - <font size=-1>queue a music file to follow the current</font></li>
-<li><a href="music.html#pygame.mixer.music.rewind">pygame.mixer.music.rewind</a> - <font size=-1>restart music</font></li>
-<li><a href="music.html#pygame.mixer.music.set_endevent">pygame.mixer.music.set_endevent</a> - <font size=-1>have the music send an event when playback stops</font></li>
-<li><a href="music.html#pygame.mixer.music.set_volume">pygame.mixer.music.set_volume</a> - <font size=-1>set the music volume</font></li>
-<li><a href="music.html#pygame.mixer.music.stop">pygame.mixer.music.stop</a> - <font size=-1>stop the music playback</font></li>
-<li><a href="music.html#pygame.mixer.music.unpause">pygame.mixer.music.unpause</a> - <font size=-1>resume paused music</font></li>
-</ul>
-<li><a href="mixer.html#pygame.mixer.pause">pygame.mixer.pause</a> - <font size=-1>temporarily stop playback of all sound channels</font></li>
-<li><a href="mixer.html#pygame.mixer.pre_init">pygame.mixer.pre_init</a> - <font size=-1>preset the mixer init arguments</font></li>
-<li><a href="mixer.html#pygame.mixer.quit">pygame.mixer.quit</a> - <font size=-1>uninitialize the mixer</font></li>
-<li><a href="mixer.html#pygame.mixer.set_num_channels">pygame.mixer.set_num_channels</a> - <font size=-1>set the total number of playback channels</font></li>
-<li><a href="mixer.html#pygame.mixer.set_reserved">pygame.mixer.set_reserved</a> - <font size=-1>reserve channels from being automatically used</font></li>
-<li><a href="mixer.html#pygame.mixer.stop">pygame.mixer.stop</a> - <font size=-1>stop playback of all sound channels</font></li>
-<li><a href="mixer.html#pygame.mixer.unpause">pygame.mixer.unpause</a> - <font size=-1>resume paused playback of sound channels</font></li>
-</ul>
-<li><a href="mouse.html#pygame.mouse">pygame.mouse</a> - <font size=-1>pygame module to work with the mouse</font></li>
-<ul>
-<li><a href="mouse.html#pygame.mouse.get_cursor">pygame.mouse.get_cursor</a> - <font size=-1>get the image for the system mouse cursor</font></li>
-<li><a href="mouse.html#pygame.mouse.get_focused">pygame.mouse.get_focused</a> - <font size=-1>check if the display is receiving mouse input</font></li>
-<li><a href="mouse.html#pygame.mouse.get_pos">pygame.mouse.get_pos</a> - <font size=-1>get the mouse cursor position</font></li>
-<li><a href="mouse.html#pygame.mouse.get_pressed">pygame.mouse.get_pressed</a> - <font size=-1>get the state of the mouse buttons</font></li>
-<li><a href="mouse.html#pygame.mouse.get_rel">pygame.mouse.get_rel</a> - <font size=-1>get the amount of mouse movement</font></li>
-<li><a href="mouse.html#pygame.mouse.set_cursor">pygame.mouse.set_cursor</a> - <font size=-1>set the image for the system mouse cursor</font></li>
-<li><a href="mouse.html#pygame.mouse.set_pos">pygame.mouse.set_pos</a> - <font size=-1>set the mouse cursor position</font></li>
-<li><a href="mouse.html#pygame.mouse.set_visible">pygame.mouse.set_visible</a> - <font size=-1>hide or show the mouse cursor</font></li>
-</ul>
-<li><a href="movie.html#pygame.movie">pygame.movie</a> - <font size=-1>pygame module for playback of mpeg video</font></li>
-<ul>
-<li><a href="movie.html#pygame.movie.Movie">pygame.movie.Movie</a> - <font size=-1>load an mpeg movie file</font></li>
-<ul>
-<li><a href="movie.html#Movie.get_busy">Movie.get_busy</a> - <font size=-1>check if the movie is currently playing</font></li>
-<li><a href="movie.html#Movie.get_frame">Movie.get_frame</a> - <font size=-1>get the current video frame</font></li>
-<li><a href="movie.html#Movie.get_length">Movie.get_length</a> - <font size=-1>the total length of the movie in seconds</font></li>
-<li><a href="movie.html#Movie.get_size">Movie.get_size</a> - <font size=-1>get the resolution of the video</font></li>
-<li><a href="movie.html#Movie.get_time">Movie.get_time</a> - <font size=-1>get the current vide playback time</font></li>
-<li><a href="movie.html#Movie.has_audio">Movie.has_audio</a> - <font size=-1>check if the movie file contains audio</font></li>
-<li><a href="movie.html#Movie.has_video">Movie.has_video</a> - <font size=-1>check if the movie file contains video</font></li>
-<li><a href="movie.html#Movie.pause">Movie.pause</a> - <font size=-1>temporarily stop and resume playback</font></li>
-<li><a href="movie.html#Movie.play">Movie.play</a> - <font size=-1>start playback of a movie</font></li>
-<li><a href="movie.html#Movie.render_frame">Movie.render_frame</a> - <font size=-1>set the current video frame</font></li>
-<li><a href="movie.html#Movie.rewind">Movie.rewind</a> - <font size=-1>restart the movie playback</font></li>
-<li><a href="movie.html#Movie.set_display">Movie.set_display</a> - <font size=-1>set the video target Surface</font></li>
-<li><a href="movie.html#Movie.set_volume">Movie.set_volume</a> - <font size=-1>set the audio playback volume</font></li>
-<li><a href="movie.html#Movie.skip">Movie.skip</a> - <font size=-1>advance the movie playback position</font></li>
-<li><a href="movie.html#Movie.stop">Movie.stop</a> - <font size=-1>stop movie playback</font></li>
-</ul>
-</ul>
-<li><a href="pygame.html#pygame.quit">pygame.quit</a> - <font size=-1>uninitialize all pygame modules</font></li>
-<li><a href="pygame.html#pygame.register_quit">pygame.register_quit</a> - <font size=-1>register a function to be called when pygame quits</font></li>
-<li><a href="scrap.html#pygame.scrap">pygame.scrap</a> - <font size=-1>pygame module for clipboard support.</font></li>
-<ul>
-<li><a href="scrap.html#pygame.scrap.contains">pygame.scrap.contains</a> - <font size=-1>Checks, whether a certain type is available in the clipboard.</font></li>
-<li><a href="scrap.html#pygame.scrap.get">pygame.scrap.get</a> - <font size=-1>Gets the data for the specified type from the clipboard.</font></li>
-<li><a href="scrap.html#pygame.scrap.get_types">pygame.scrap.get_types</a> - <font size=-1>Gets a list of the available clipboard types.</font></li>
-<li><a href="scrap.html#pygame.scrap.init">pygame.scrap.init</a> - <font size=-1>Initializes the scrap module.</font></li>
-<li><a href="scrap.html#pygame.scrap.lost">pygame.scrap.lost</a> - <font size=-1>Checks whether the clipboard is currently owned by the application.</font></li>
-<li><a href="scrap.html#pygame.scrap.put">pygame.scrap.put</a> - <font size=-1>Places data into the clipboard.</font></li>
-<li><a href="scrap.html#pygame.scrap.set_mode">pygame.scrap.set_mode</a> - <font size=-1>Sets the clipboard access mode.</font></li>
-</ul>
-<li><a href="pygame.html#pygame.set_error">pygame.set_error</a> - <font size=-1>set the current error message</font></li>
-<li><a href="sndarray.html#pygame.sndarray">pygame.sndarray</a> - <font size=-1>pygame module for accessing sound sample data</font></li>
-<ul>
-<li><a href="sndarray.html#pygame.sndarray.array">pygame.sndarray.array</a> - <font size=-1>copy Sound samples into an array</font></li>
-<li><a href="sndarray.html#pygame.sndarray.get_arraytype">pygame.sndarray.get_arraytype</a> - <font size=-1>Gets the currently active array type.</font></li>
-<li><a href="sndarray.html#pygame.sndarray.get_arraytypes">pygame.sndarray.get_arraytypes</a> - <font size=-1>Gets the array system types currently supported.</font></li>
-<li><a href="sndarray.html#pygame.sndarray.make_sound">pygame.sndarray.make_sound</a> - <font size=-1>convert an array into a Sound object</font></li>
-<li><a href="sndarray.html#pygame.sndarray.samples">pygame.sndarray.samples</a> - <font size=-1>reference Sound samples into an array</font></li>
-<li><a href="sndarray.html#pygame.sndarray.use_arraytype">pygame.sndarray.use_arraytype</a> - <font size=-1>Sets the array system to be used for sound arrays</font></li>
-</ul>
-<li><a href="sprite.html#pygame.sprite">pygame.sprite</a> - <font size=-1>pygame module with basic game object classes</font></li>
-<ul>
-<li></li>
-<li><a href="sprite.html#pygame.sprite.DirtySprite">pygame.sprite.DirtySprite</a> - <font size=-1>a more featureful subclass of Sprite with more attributes</font></li>
-<ul>
-<li></li>
-</ul>
-<li><a href="sprite.html#pygame.sprite.Group">pygame.sprite.Group</a> - <font size=-1>container class for many Sprites</font></li>
-<ul>
-<li><a href="sprite.html#Group.add">Group.add</a> - <font size=-1>add Sprites to this Group</font></li>
-<li><a href="sprite.html#Group.clear">Group.clear</a> - <font size=-1>draw a background over the Sprites</font></li>
-<li><a href="sprite.html#Group.copy">Group.copy</a> - <font size=-1>duplicate the Group</font></li>
-<li><a href="sprite.html#Group.draw">Group.draw</a> - <font size=-1>blit the Sprite images</font></li>
-<li><a href="sprite.html#Group.empty">Group.empty</a> - <font size=-1>remove all Sprites</font></li>
-<li><a href="sprite.html#Group.has">Group.has</a> - <font size=-1>test if a Group contains Sprites</font></li>
-<li><a href="sprite.html#Group.remove">Group.remove</a> - <font size=-1>remove Sprites from the Group</font></li>
-<li><a href="sprite.html#Group.sprites">Group.sprites</a> - <font size=-1>list of the Sprites this Group contains</font></li>
-<li><a href="sprite.html#Group.update">Group.update</a> - <font size=-1>call the update method on contained Sprites</font></li>
-</ul>
-<li><a href="sprite.html#pygame.sprite.GroupSingle">pygame.sprite.GroupSingle</a> - <font size=-1>Group container that holds a single Sprite</font></li>
-<li><a href="sprite.html#pygame.sprite.LayeredDirty">pygame.sprite.LayeredDirty</a> - <font size=-1>LayeredDirty Group is for DirtySprites. Subclasses LayeredUpdates.</font></li>
-<ul>
-<li><a href="sprite.html#LayeredDirty.change_layer">LayeredDirty.change_layer</a> - <font size=-1>changes the layer of the sprite</font></li>
-<li><a href="sprite.html#LayeredDirty.clear">LayeredDirty.clear</a> - <font size=-1>used to set background</font></li>
-<li><a href="sprite.html#LayeredDirty.draw">LayeredDirty.draw</a> - <font size=-1>draw all sprites in the right order onto the passed surface.</font></li>
-<li><a href="sprite.html#LayeredDirty.get_clip">LayeredDirty.get_clip</a> - <font size=-1>clip the area where to draw. Just pass None (default) to reset the clip</font></li>
-<li><a href="sprite.html#LayeredDirty.repaint_rect">LayeredDirty.repaint_rect</a> - <font size=-1>repaints the given area</font></li>
-<li><a href="sprite.html#LayeredDirty.set_clip">LayeredDirty.set_clip</a> - <font size=-1>clip the area where to draw. Just pass None (default) to reset the clip</font></li>
-<li><a href="sprite.html#LayeredDirty.set_timing_treshold">LayeredDirty.set_timing_treshold</a> - <font size=-1>sets the treshold in milliseconds</font></li>
-</ul>
-<li><a href="sprite.html#pygame.sprite.LayeredUpdates">pygame.sprite.LayeredUpdates</a> - <font size=-1>LayeredUpdates Group handles layers, that draws like OrderedUpdates.</font></li>
-<ul>
-<li><a href="sprite.html#LayeredUpdates.add">LayeredUpdates.add</a> - <font size=-1>add a sprite or sequence of sprites to a group</font></li>
-<li><a href="sprite.html#LayeredUpdates.change_layer">LayeredUpdates.change_layer</a> - <font size=-1>changes the layer of the sprite</font></li>
-<li><a href="sprite.html#LayeredUpdates.draw">LayeredUpdates.draw</a> - <font size=-1>draw all sprites in the right order onto the passed surface.</font></li>
-<li><a href="sprite.html#LayeredUpdates.get_bottom_layer">LayeredUpdates.get_bottom_layer</a> - <font size=-1>returns the bottom layer</font></li>
-<li><a href="sprite.html#LayeredUpdates.get_layer_of_sprite">LayeredUpdates.get_layer_of_sprite</a> - <font size=-1>returns the layer that sprite is currently in.</font></li>
-<li><a href="sprite.html#LayeredUpdates.get_sprite">LayeredUpdates.get_sprite</a> - <font size=-1>returns the sprite at the index idx from the groups sprites</font></li>
-<li><a href="sprite.html#LayeredUpdates.get_sprites_at">LayeredUpdates.get_sprites_at</a> - <font size=-1>returns a list with all sprites at that position.</font></li>
-<li><a href="sprite.html#LayeredUpdates.get_sprites_from_layer">LayeredUpdates.get_sprites_from_layer</a> - <font size=-1>returns all sprites from a layer, ordered by how they where added</font></li>
-<li><a href="sprite.html#LayeredUpdates.get_top_layer">LayeredUpdates.get_top_layer</a> - <font size=-1>returns the top layer</font></li>
-<li><a href="sprite.html#LayeredUpdates.get_top_sprite">LayeredUpdates.get_top_sprite</a> - <font size=-1>returns the topmost sprite</font></li>
-<li><a href="sprite.html#LayeredUpdates.layers">LayeredUpdates.layers</a> - <font size=-1>returns a list of layers defined (unique), sorted from botton up.</font></li>
-<li><a href="sprite.html#LayeredUpdates.move_to_back">LayeredUpdates.move_to_back</a> - <font size=-1>moves the sprite to the bottom layer</font></li>
-<li><a href="sprite.html#LayeredUpdates.move_to_front">LayeredUpdates.move_to_front</a> - <font size=-1>brings the sprite to front layer</font></li>
-<li><a href="sprite.html#LayeredUpdates.remove_sprites_of_layer">LayeredUpdates.remove_sprites_of_layer</a> - <font size=-1>removes all sprites from a layer and returns them as a list.</font></li>
-<li><a href="sprite.html#LayeredUpdates.sprites">LayeredUpdates.sprites</a> - <font size=-1>returns a ordered list of sprites (first back, last top).</font></li>
-<li><a href="sprite.html#LayeredUpdates.switch_layer">LayeredUpdates.switch_layer</a> - <font size=-1>switches the sprites from layer1 to layer2</font></li>
-</ul>
-<li><a href="sprite.html#pygame.sprite.OrderedUpdates">pygame.sprite.OrderedUpdates</a> - <font size=-1>RenderUpdates class that draws Sprites in order of addition</font></li>
-<li><a href="sprite.html#pygame.sprite.RenderUpdates">pygame.sprite.RenderUpdates</a> - <font size=-1>Group class that tracks dirty updates</font></li>
-<ul>
-<li><a href="sprite.html#RenderUpdates.draw">RenderUpdates.draw</a> - <font size=-1>blit the Sprite images and track changed areas</font></li>
-</ul>
-<li><a href="sprite.html#pygame.sprite.Sprite">pygame.sprite.Sprite</a> - <font size=-1>simple base class for visible game objects</font></li>
-<ul>
-<li><a href="sprite.html#Sprite.add">Sprite.add</a> - <font size=-1>add the sprite to groups</font></li>
-<li><a href="sprite.html#Sprite.alive">Sprite.alive</a> - <font size=-1>does the sprite belong to any groups</font></li>
-<li><a href="sprite.html#Sprite.groups">Sprite.groups</a> - <font size=-1>list of Groups that contain this Sprite</font></li>
-<li><a href="sprite.html#Sprite.kill">Sprite.kill</a> - <font size=-1>remove the Sprite from all Groups</font></li>
-<li><a href="sprite.html#Sprite.remove">Sprite.remove</a> - <font size=-1>remove the sprite from groups</font></li>
-<li><a href="sprite.html#Sprite.update">Sprite.update</a> - <font size=-1>method to control sprite behavior</font></li>
-</ul>
-<li><a href="sprite.html#pygame.sprite.collide_circle">pygame.sprite.collide_circle</a> - <font size=-1>collision detection between two sprites, using circles.</font></li>
-<li><a href="sprite.html#pygame.sprite.collide_circle_ratio">pygame.sprite.collide_circle_ratio</a> - <font size=-1>collision detection between two sprites, using circles scaled to a ratio.</font></li>
-<li><a href="sprite.html#pygame.sprite.collide_mask">pygame.sprite.collide_mask</a> - <font size=-1>collision detection between two sprites, using masks.</font></li>
-<li><a href="sprite.html#pygame.sprite.collide_rect">pygame.sprite.collide_rect</a> - <font size=-1>collision detection between two sprites, using rects.</font></li>
-<li><a href="sprite.html#pygame.sprite.collide_rect_ratio">pygame.sprite.collide_rect_ratio</a> - <font size=-1>collision detection between two sprites, using rects scaled to a ratio.</font></li>
-<li><a href="sprite.html#pygame.sprite.groupcollide">pygame.sprite.groupcollide</a> - <font size=-1>find all Sprites that collide between two Groups</font></li>
-<li><a href="sprite.html#pygame.sprite.spritecollide">pygame.sprite.spritecollide</a> - <font size=-1>find Sprites in a Group that intersect another Sprite</font></li>
-<li><a href="sprite.html#pygame.sprite.spritecollideany">pygame.sprite.spritecollideany</a> - <font size=-1>simple test if a Sprite intersects anything in a Group</font></li>
-</ul>
-<li><a href="surfarray.html#pygame.surfarray">pygame.surfarray</a> - <font size=-1>pygame module for accessing surface pixel data using array interfaces</font></li>
-<ul>
-<li><a href="surfarray.html#pygame.surfarray.array2d">pygame.surfarray.array2d</a> - <font size=-1>Copy pixels into a 2d array</font></li>
-<li><a href="surfarray.html#pygame.surfarray.array3d">pygame.surfarray.array3d</a> - <font size=-1>Copy pixels into a 3d array</font></li>
-<li><a href="surfarray.html#pygame.surfarray.array_alpha">pygame.surfarray.array_alpha</a> - <font size=-1>Copy pixel alphas into a 2d array</font></li>
-<li><a href="surfarray.html#pygame.surfarray.array_colorkey">pygame.surfarray.array_colorkey</a> - <font size=-1>Copy the colorkey values into a 2d array</font></li>
-<li><a href="surfarray.html#pygame.surfarray.blit_array">pygame.surfarray.blit_array</a> - <font size=-1>Blit directly from a array values</font></li>
-<li><a href="surfarray.html#pygame.surfarray.get_arraytype">pygame.surfarray.get_arraytype</a> - <font size=-1>Gets the currently active array type.</font></li>
-<li><a href="surfarray.html#pygame.surfarray.get_arraytypes">pygame.surfarray.get_arraytypes</a> - <font size=-1>Gets the array system types currently supported.</font></li>
-<li><a href="surfarray.html#pygame.surfarray.make_surface">pygame.surfarray.make_surface</a> - <font size=-1>Copy an array to a new surface</font></li>
-<li><a href="surfarray.html#pygame.surfarray.map_array">pygame.surfarray.map_array</a> - <font size=-1>Map a 3d array into a 2d array</font></li>
-<li><a href="surfarray.html#pygame.surfarray.pixels2d">pygame.surfarray.pixels2d</a> - <font size=-1>Reference pixels into a 2d array</font></li>
-<li><a href="surfarray.html#pygame.surfarray.pixels3d">pygame.surfarray.pixels3d</a> - <font size=-1>Reference pixels into a 3d array</font></li>
-<li><a href="surfarray.html#pygame.surfarray.pixels_alpha">pygame.surfarray.pixels_alpha</a> - <font size=-1>Reference pixel alphas into a 2d array</font></li>
-<li><a href="surfarray.html#pygame.surfarray.use_arraytype">pygame.surfarray.use_arraytype</a> - <font size=-1>Sets the array system to be used for surface arrays</font></li>
-</ul>
-<li><a href="tests.html#pygame.tests">pygame.tests</a> - <font size=-1>Pygame unit test suite package</font></li>
-<ul>
-<li><a href="tests.html#pygame.tests.run">pygame.tests.run</a> - <font size=-1>Run the Pygame unit test suite</font></li>
-</ul>
-<li><a href="time.html#pygame.time">pygame.time</a> - <font size=-1>pygame module for monitoring time</font></li>
-<ul>
-<li><a href="time.html#pygame.time.Clock">pygame.time.Clock</a> - <font size=-1>create an object to help track time</font></li>
-<ul>
-<li><a href="time.html#Clock.get_fps">Clock.get_fps</a> - <font size=-1>compute the clock framerate</font></li>
-<li><a href="time.html#Clock.get_rawtime">Clock.get_rawtime</a> - <font size=-1>actual time used in the previous tick</font></li>
-<li><a href="time.html#Clock.get_time">Clock.get_time</a> - <font size=-1>time used in the previous tick</font></li>
-<li><a href="time.html#Clock.tick">Clock.tick</a> - <font size=-1>update the clock</font></li>
-<li><a href="time.html#Clock.tick_busy_loop">Clock.tick_busy_loop</a> - <font size=-1>update the clock</font></li>
-</ul>
-<li><a href="time.html#pygame.time.delay">pygame.time.delay</a> - <font size=-1>pause the program for an amount of time</font></li>
-<li><a href="time.html#pygame.time.get_ticks">pygame.time.get_ticks</a> - <font size=-1>get the time in milliseconds</font></li>
-<li><a href="time.html#pygame.time.set_timer">pygame.time.set_timer</a> - <font size=-1>repeatedly create an event on the event queue</font></li>
-<li><a href="time.html#pygame.time.wait">pygame.time.wait</a> - <font size=-1>pause the program for an amount of time</font></li>
-</ul>
-<li><a href="transform.html#pygame.transform">pygame.transform</a> - <font size=-1>pygame module to transform surfaces</font></li>
-<ul>
-<li><a href="transform.html#pygame.transform.average_color">pygame.transform.average_color</a> - <font size=-1>finds the average color of a surface</font></li>
-<li><a href="transform.html#pygame.transform.average_surfaces">pygame.transform.average_surfaces</a> - <font size=-1>find the average surface from many surfaces.</font></li>
-<li><a href="transform.html#pygame.transform.chop">pygame.transform.chop</a> - <font size=-1>gets a copy of an image with an interior area removed</font></li>
-<li><a href="transform.html#pygame.transform.flip">pygame.transform.flip</a> - <font size=-1>flip vertically and horizontally</font></li>
-<li><a href="transform.html#pygame.transform.get_smoothscale_backend">pygame.transform.get_smoothscale_backend</a> - <font size=-1>return smoothscale filter version in use: 'GENERIC', 'MMX', or 'SSE'</font></li>
-<li><a href="transform.html#pygame.transform.laplacian">pygame.transform.laplacian</a> - <font size=-1>find edges in a surface</font></li>
-<li><a href="transform.html#pygame.transform.rotate">pygame.transform.rotate</a> - <font size=-1>rotate an image</font></li>
-<li><a href="transform.html#pygame.transform.rotozoom">pygame.transform.rotozoom</a> - <font size=-1>filtered scale and rotation</font></li>
-<li><a href="transform.html#pygame.transform.scale">pygame.transform.scale</a> - <font size=-1>resize to new resolution</font></li>
-<li><a href="transform.html#pygame.transform.scale2x">pygame.transform.scale2x</a> - <font size=-1>specialized image doubler</font></li>
-<li><a href="transform.html#pygame.transform.set_smoothscale_backend">pygame.transform.set_smoothscale_backend</a> - <font size=-1>set smoothscale filter version to one of: 'GENERIC', 'MMX', or 'SSE'</font></li>
-<li><a href="transform.html#pygame.transform.smoothscale">pygame.transform.smoothscale</a> - <font size=-1>scale a surface to an arbitrary size smoothly</font></li>
-<li><a href="transform.html#pygame.transform.threshold">pygame.transform.threshold</a> - <font size=-1>finds which, and how many pixels in a surface are within a threshold of a color.</font></li>
-</ul>
-<li><a href="pygame.html#pygame.version">pygame.version</a> - <font size=-1>small module containing version information</font></li>
-<ul>
-<li><a href="pygame.html#pygame.version.ver">pygame.version.ver</a> - <font size=-1>version number as a string</font></li>
-<li><a href="pygame.html#pygame.version.vernum">pygame.version.vernum</a> - <font size=-1>tupled integers of the version</font></li>
-</ul>
-</ul>
-
-
-</ul>
-
-</body></html>
diff --git a/pygame/docs/ref/joystick.html b/pygame/docs/ref/joystick.html
deleted file mode 100755
index 7a29e0c..0000000
--- a/pygame/docs/ref/joystick.html
+++ /dev/null
@@ -1,261 +0,0 @@
-
-<html>
-<title>joystick - Pygame Documentation</title>
-<body bgcolor=#aaeebb text=#000000 link=#331111 vlink=#331111>
-
-
-<table cellpadding=0 cellspacing=0 border=0 style='border: 3px solid black;' width='100%'>
-<tr>
-<td bgcolor='#c2fc20' style='padding: 6px;' align=center valign=center><a href='http://www.pygame.org/'><img src='../pygame_tiny.gif' border=0 width=200 height=60></a><br><b>pygame documentation</b></td>
-<td bgcolor='#6aee28' style='border-left: 3px solid black; padding: 6px;' align=center valign=center>
- ||&nbsp;
- <a href=http://www.pygame.org>Pygame Home</a> &nbsp;||&nbsp;
- <a href=../index.html>Help Contents</a> &nbsp;||
- <a href=index.html>Reference Index</a> &nbsp;||
- <br>&nbsp;<br>
-
-<a href="camera.html">Camera</a>&nbsp;||&nbsp;
-<a href="cdrom.html">Cdrom</a>&nbsp;||&nbsp;
-<a href="color.html">Color</a>&nbsp;||&nbsp;
-<a href="cursors.html">Cursors</a>&nbsp;||&nbsp;
-<a href="display.html">Display</a>&nbsp;||&nbsp;
-<a href="draw.html">Draw</a>&nbsp;||&nbsp;
-<a href="event.html">Event</a>&nbsp;||&nbsp;
-<a href="examples.html">Examples</a>&nbsp;||&nbsp;
-<a href="font.html">Font</a>&nbsp;||&nbsp;
-<a href="gfxdraw.html">Gfxdraw</a>&nbsp;||&nbsp;
-<a href="image.html">Image</a>&nbsp;||&nbsp;
-<a href="joystick.html">Joystick</a>&nbsp;||&nbsp;
-<a href="key.html">Key</a>&nbsp;||&nbsp;
-<a href="locals.html">Locals</a>&nbsp;||&nbsp;
-<a href="mask.html">Mask</a>&nbsp;||&nbsp;
-<a href="midi.html">Midi</a>&nbsp;||&nbsp;
-<a href="mixer.html">Mixer</a>&nbsp;||&nbsp;
-<a href="mouse.html">Mouse</a>&nbsp;||&nbsp;
-<a href="movie.html">Movie</a>&nbsp;||&nbsp;
-<a href="music.html">Music</a>&nbsp;||&nbsp;
-<a href="overlay.html">Overlay</a>&nbsp;||&nbsp;
-<a href="pixelarray.html">Pixelarray</a>&nbsp;||&nbsp;
-<a href="pygame.html">Pygame</a>&nbsp;||&nbsp;
-<a href="rect.html">Rect</a>&nbsp;||&nbsp;
-<a href="scrap.html">Scrap</a>&nbsp;||&nbsp;
-<a href="sndarray.html">Sndarray</a>&nbsp;||&nbsp;
-<a href="sprite.html">Sprite</a>&nbsp;||&nbsp;
-<a href="surface.html">Surface</a>&nbsp;||&nbsp;
-<a href="surfarray.html">Surfarray</a>&nbsp;||&nbsp;
-<a href="tests.html">Tests</a>&nbsp;||&nbsp;
-<a href="time.html">Time</a>&nbsp;||&nbsp;
-<a href="transform.html">Transform</a>
-</td></tr></table>
-<br>
-
-
-<a name="pygame.joystick">
-<big><b>pygame.joystick</big></b><br><ul>
- <i>pygame module for interacting with joystick devices</i><br>
-<ul><small><table>
- <tr><td><a href="joystick.html#pygame.joystick.init">pygame.joystick.init</a> - <font size=-1>initialize the joystick module</font></td><td>initialize the joystick module</td></tr>
- <tr><td><a href="joystick.html#pygame.joystick.quit">pygame.joystick.quit</a> - <font size=-1>uninitialize the joystick module</font></td><td>uninitialize the joystick module</td></tr>
- <tr><td><a href="joystick.html#pygame.joystick.get_init">pygame.joystick.get_init</a> - <font size=-1>true if the joystick module is initialized</font></td><td>true if the joystick module is initialized</td></tr>
- <tr><td><a href="joystick.html#pygame.joystick.get_count">pygame.joystick.get_count</a> - <font size=-1>number of joysticks on the system</font></td><td>number of joysticks on the system</td></tr>
- <tr><td><a href="joystick.html#pygame.joystick.Joystick">pygame.joystick.Joystick</a> - <font size=-1>create a new Joystick object</font></td><td>create a new Joystick object</td></tr>
-</table></small></ul>
-<p>The joystick module manages the joystick devices on a computer (there can be more than one). Joystick devices include trackballs and video-game-style gamepads, and the module allows the use of multiple buttons and "hats". </p>
-<!--COMMENTS:pygame.joystick--> &nbsp;<br>
-
-
-<a name="pygame.joystick.init">
-<big><b>pygame.joystick.init</big></b><br><ul>
- <i>initialize the joystick module</i><br>
- <tt>pygame.joystick.init(): return None</tt><br>
-<p>This function is called automatically by <tt><a href="pygame.html#pygame.init">pygame.init</a> - <font size=-1>initialize all imported pygame modules</font></tt>. </p>
-<p>It initializes the joystick module. This will scan the system for all joystick devices. The module must be initialized before any other functions will work. </p>
-<p>It is safe to call this function more than once. </p>
-<!--COMMENTS:pygame.joystick.init--> &nbsp;<br>
-<br></ul>
-
-
-<a name="pygame.joystick.quit">
-<big><b>pygame.joystick.quit</big></b><br><ul>
- <i>uninitialize the joystick module</i><br>
- <tt>pygame.joystick.quit(): return None</tt><br>
-<p>Uninitialize the joystick module. After you call this any existing joystick objects will no longer work. </p>
-<p>It is safe to call this function more than once. </p>
-<!--COMMENTS:pygame.joystick.quit--> &nbsp;<br>
-<br></ul>
-
-
-<a name="pygame.joystick.get_init">
-<big><b>pygame.joystick.get_init</big></b><br><ul>
- <i>true if the joystick module is initialized</i><br>
- <tt>pygame.joystick.get_init(): return bool</tt><br>
-<p>Test if the <tt><a href="joystick.html#pygame.joystick.init">pygame.joystick.init</a> - <font size=-1>initialize the joystick module</font></tt> function has been called. </p>
-<!--COMMENTS:pygame.joystick.get_init--> &nbsp;<br>
-<br></ul>
-
-
-<a name="pygame.joystick.get_count">
-<big><b>pygame.joystick.get_count</big></b><br><ul>
- <i>number of joysticks on the system</i><br>
- <tt>pygame.joystick.get_count(): return count</tt><br>
-<p>Return the number of joystick devices on the system. The count will be 0 if there are no joysticks on the system. </p>
-<p>When you create Joystick objects using Joystick(id), you pass an integer that must be lower than this count. </p>
-<!--COMMENTS:pygame.joystick.get_count--> &nbsp;<br>
-<br></ul>
-
-
-<a name="pygame.joystick.Joystick">
-<big><b>pygame.joystick.Joystick</big></b><br><ul>
- <i>create a new Joystick object</i><br>
- <tt>pygame.joystick.Joystick(id): return Joystick</tt><br>
-<ul><small><table>
- <tr><td><a href="joystick.html#Joystick.init">Joystick.init</a> - <font size=-1>initialize the Joystick</font></td><td>initialize the Joystick</td></tr>
- <tr><td><a href="joystick.html#Joystick.quit">Joystick.quit</a> - <font size=-1>uninitialize the Joystick</font></td><td>uninitialize the Joystick</td></tr>
- <tr><td><a href="joystick.html#Joystick.get_init">Joystick.get_init</a> - <font size=-1>check if the Joystick is initialized</font></td><td>check if the Joystick is initialized</td></tr>
- <tr><td><a href="joystick.html#Joystick.get_id">Joystick.get_id</a> - <font size=-1>get the Joystick ID</font></td><td>get the Joystick ID</td></tr>
- <tr><td><a href="joystick.html#Joystick.get_name">Joystick.get_name</a> - <font size=-1>get the Joystick system name</font></td><td>get the Joystick system name</td></tr>
- <tr><td><a href="joystick.html#Joystick.get_numaxes">Joystick.get_numaxes</a> - <font size=-1>get the number of axes on a Joystick</font></td><td>get the number of axes on a Joystick</td></tr>
- <tr><td><a href="joystick.html#Joystick.get_axis">Joystick.get_axis</a> - <font size=-1>get the current position of an axis</font></td><td>get the current position of an axis</td></tr>
- <tr><td><a href="joystick.html#Joystick.get_numballs">Joystick.get_numballs</a> - <font size=-1>get the number of trackballs on a Joystick</font></td><td>get the number of trackballs on a Joystick</td></tr>
- <tr><td><a href="joystick.html#Joystick.get_ball">Joystick.get_ball</a> - <font size=-1>get the relative position of a trackball</font></td><td>get the relative position of a trackball</td></tr>
- <tr><td><a href="joystick.html#Joystick.get_numbuttons">Joystick.get_numbuttons</a> - <font size=-1>get the number of buttons on a Joystick</font></td><td>get the number of buttons on a Joystick</td></tr>
- <tr><td><a href="joystick.html#Joystick.get_button">Joystick.get_button</a> - <font size=-1>get the current button state</font></td><td>get the current button state</td></tr>
- <tr><td><a href="joystick.html#Joystick.get_numhats">Joystick.get_numhats</a> - <font size=-1>get the number of hat controls on a Joystick</font></td><td>get the number of hat controls on a Joystick</td></tr>
- <tr><td><a href="joystick.html#Joystick.get_hat">Joystick.get_hat</a> - <font size=-1>get the position of a joystick hat</font></td><td>get the position of a joystick hat</td></tr>
-</table></small></ul>
-<p>Create a new joystick to access a physical device. The id argument must be a value from 0 to <tt>pygame.joystick.get_count()-1</tt>. </p>
-<p>To access most of the Joystick methods, you'll need to init() the Joystick. This is separate from making sure the joystick module is initialized. When multiple Joysticks objects are created for the same physical joystick device <tt>(i.e.</tt>, they have the same <tt>ID</tt> number), the state and values for those Joystick objects will be shared. </p>
-<p>The Joystick object allows you to get information about the types of controls on a joystick device. Once the device is initialized the Pygame event queue will start receiving events about its input. </p>
-<p>You can call the <tt><a href="joystick.html#Joystick.get_name">Joystick.get_name</a> - <font size=-1>get the Joystick system name</font></tt> and <tt><a href="joystick.html#Joystick.get_id">Joystick.get_id</a> - <font size=-1>get the Joystick ID</font></tt> functions without initializing the Joystick object. </p>
-<!--COMMENTS:pygame.joystick.Joystick--> &nbsp;<br>
-
-
-<a name="Joystick.init">
-<big><b>Joystick.init</big></b><br><ul>
- <i>initialize the Joystick</i><br>
- <tt>Joystick.init(): return None</tt><br>
-<p>The Joystick must be initialized to get most of the information about the controls. While the Joystick is initialized the Pygame event queue will receive events from the Joystick input. </p>
-<p>It is safe to call this more than once. </p>
-<!--COMMENTS:Joystick.init--> &nbsp;<br>
-<br></ul>
-
-
-<a name="Joystick.quit">
-<big><b>Joystick.quit</big></b><br><ul>
- <i>uninitialize the Joystick</i><br>
- <tt>Joystick.quit(): return None</tt><br>
-<p>This will unitialize a Joystick. After this the Pygame event queue will no longer receive events from the device. </p>
-<p>It is safe to call this more than once. </p>
-<!--COMMENTS:Joystick.quit--> &nbsp;<br>
-<br></ul>
-
-
-<a name="Joystick.get_init">
-<big><b>Joystick.get_init</big></b><br><ul>
- <i>check if the Joystick is initialized</i><br>
- <tt>Joystick.get_init(): return bool</tt><br>
-<p>Returns True if the init() method has already been called on this Joystick object. </p>
-<!--COMMENTS:Joystick.get_init--> &nbsp;<br>
-<br></ul>
-
-
-<a name="Joystick.get_id">
-<big><b>Joystick.get_id</big></b><br><ul>
- <i>get the Joystick ID</i><br>
- <tt>Joystick.get_id(): return int</tt><br>
-<p>Returns the integer <tt>ID</tt> that represents this device. This is the same value that was passed to the Joystick() constructor. This method can safely be called while the Joystick is not initialized. </p>
-<!--COMMENTS:Joystick.get_id--> &nbsp;<br>
-<br></ul>
-
-
-<a name="Joystick.get_name">
-<big><b>Joystick.get_name</big></b><br><ul>
- <i>get the Joystick system name</i><br>
- <tt>Joystick.get_name(): return string</tt><br>
-<p>Returns the system name for this joystick device. It is unknown what name the system will give to the Joystick, but it should be a unique name that identifies the device. This method can safely be called while the Joystick is not initialized. </p>
-<!--COMMENTS:Joystick.get_name--> &nbsp;<br>
-<br></ul>
-
-
-<a name="Joystick.get_numaxes">
-<big><b>Joystick.get_numaxes</big></b><br><ul>
- <i>get the number of axes on a Joystick</i><br>
- <tt>Joystick.get_numaxes(): return int</tt><br>
-<p>Returns the number of input axes are on a Joystick. There will usually be two for the position. Controls like rudders and throttles are treated as additional axes. </p>
-<p>The <tt>pygame.JOYAXISMOTION</tt> events will be in the range from <tt>-1.0</tt> to <tt>1.0</tt>. <tt>A</tt> value of <tt>0.0</tt> means the axis is centered. Gamepad devices will usually be -1, 0, or 1 with no values in between. Older analog joystick axes will not always use the full -1 to 1 range, and the centered value will be some area around 0. Analog joysticks usually have a bit of noise in their axis, which will generate a lot of rapid small motion events. </p>
-<!--COMMENTS:Joystick.get_numaxes--> &nbsp;<br>
-<br></ul>
-
-
-<a name="Joystick.get_axis">
-<big><b>Joystick.get_axis</big></b><br><ul>
- <i>get the current position of an axis</i><br>
- <tt>Joystick.get_axis(axis_number): return float</tt><br>
-<p>Returns the current position of a joystick axis. The value will range from -1 to 1 with a value of 0 being centered. You may want to take into account some tolerance to handle jitter, and joystick drift may keep the joystick from centering at 0 or using the full range of position values. </p>
-<p>The axis number must be an integer from zero to get_numaxes()-1. </p>
-<!--COMMENTS:Joystick.get_axis--> &nbsp;<br>
-<br></ul>
-
-
-<a name="Joystick.get_numballs">
-<big><b>Joystick.get_numballs</big></b><br><ul>
- <i>get the number of trackballs on a Joystick</i><br>
- <tt>Joystick.get_numballs(): return int</tt><br>
-<p>Returns the number of trackball devices on a Joystick. These devices work similar to a mouse but they have no absolute position; they only have relative amounts of movement. </p>
-<p>The <tt>pygame.JOYBALLMOTION</tt> event will be sent when the trackball is rolled. It will report the amount of movement on the trackball. </p>
-<!--COMMENTS:Joystick.get_numballs--> &nbsp;<br>
-<br></ul>
-
-
-<a name="Joystick.get_ball">
-<big><b>Joystick.get_ball</big></b><br><ul>
- <i>get the relative position of a trackball</i><br>
- <tt>Joystick.get_ball(ball_number): return x, y</tt><br>
-<p>Returns the relative movement of a joystick button. The value is a x, y pair holding the relative movement since the last call to get_ball. </p>
-<p>The ball number must be an integer from zero to get_numballs()-1. </p>
-<!--COMMENTS:Joystick.get_ball--> &nbsp;<br>
-<br></ul>
-
-
-<a name="Joystick.get_numbuttons">
-<big><b>Joystick.get_numbuttons</big></b><br><ul>
- <i>get the number of buttons on a Joystick</i><br>
- <tt>Joystick.get_numbuttons(): return int</tt><br>
-<p>Returns the number of pushable buttons on the joystick. These buttons have a boolean (on or off) state. </p>
-<p>Buttons generate a <tt>pygame.JOYBUTTONDOWN</tt> and <tt>pygame.JOYBUTTONUP</tt> event when they are pressed and released. </p>
-<!--COMMENTS:Joystick.get_numbuttons--> &nbsp;<br>
-<br></ul>
-
-
-<a name="Joystick.get_button">
-<big><b>Joystick.get_button</big></b><br><ul>
- <i>get the current button state</i><br>
- <tt>Joystick.get_button(button): return bool</tt><br>
-<p>Returns the current state of a joystick button. </p>
-<!--COMMENTS:Joystick.get_button--> &nbsp;<br>
-<br></ul>
-
-
-<a name="Joystick.get_numhats">
-<big><b>Joystick.get_numhats</big></b><br><ul>
- <i>get the number of hat controls on a Joystick</i><br>
- <tt>Joystick.get_numhats(): return int</tt><br>
-<p>Returns the number of joystick hats on a Joystick. Hat devices are like miniature digital joysticks on a joystick. Each hat has two axes of input. </p>
-<p>The <tt>pygame.JOYHATMOTION</tt> event is generated when the hat changes position. The position attribute for the event contains a pair of values that are either -1, 0, or 1. <tt>A</tt> position of (0, 0) means the hat is centered. </p>
-<!--COMMENTS:Joystick.get_numhats--> &nbsp;<br>
-<br></ul>
-
-
-<a name="Joystick.get_hat">
-<big><b>Joystick.get_hat</big></b><br><ul>
- <i>get the position of a joystick hat</i><br>
- <tt>Joystick.get_hat(hat_number): return x, y</tt><br>
-<p>Returns the current position of a position hat. The position is given as two values representing the <tt>X</tt> and <tt>Y</tt> position for the hat. (0, 0) means centered. <tt>A</tt> value of -1 means left/down and a value of 1 means right/up: so (-1, 0) means left; (1, 0) means right; (0, 1) means up; (1, 1) means upper-right; etc. </p>
-<p>This value is digital, <tt>i.e.</tt>, each coordinate can be -1, 0 or 1 but never in-between. </p>
-<p>The hat number must be between 0 and get_numhats()-1. </p>
-<!--COMMENTS:Joystick.get_hat--> &nbsp;<br>
-<br></ul>
-<br></ul>
-<br></ul>
-
-</body></html>
diff --git a/pygame/docs/ref/key.html b/pygame/docs/ref/key.html
deleted file mode 100755
index 3687eb1..0000000
--- a/pygame/docs/ref/key.html
+++ /dev/null
@@ -1,279 +0,0 @@
-
-<html>
-<title>key - Pygame Documentation</title>
-<body bgcolor=#aaeebb text=#000000 link=#331111 vlink=#331111>
-
-
-<table cellpadding=0 cellspacing=0 border=0 style='border: 3px solid black;' width='100%'>
-<tr>
-<td bgcolor='#c2fc20' style='padding: 6px;' align=center valign=center><a href='http://www.pygame.org/'><img src='../pygame_tiny.gif' border=0 width=200 height=60></a><br><b>pygame documentation</b></td>
-<td bgcolor='#6aee28' style='border-left: 3px solid black; padding: 6px;' align=center valign=center>
- ||&nbsp;
- <a href=http://www.pygame.org>Pygame Home</a> &nbsp;||&nbsp;
- <a href=../index.html>Help Contents</a> &nbsp;||
- <a href=index.html>Reference Index</a> &nbsp;||
- <br>&nbsp;<br>
-
-<a href="camera.html">Camera</a>&nbsp;||&nbsp;
-<a href="cdrom.html">Cdrom</a>&nbsp;||&nbsp;
-<a href="color.html">Color</a>&nbsp;||&nbsp;
-<a href="cursors.html">Cursors</a>&nbsp;||&nbsp;
-<a href="display.html">Display</a>&nbsp;||&nbsp;
-<a href="draw.html">Draw</a>&nbsp;||&nbsp;
-<a href="event.html">Event</a>&nbsp;||&nbsp;
-<a href="examples.html">Examples</a>&nbsp;||&nbsp;
-<a href="font.html">Font</a>&nbsp;||&nbsp;
-<a href="gfxdraw.html">Gfxdraw</a>&nbsp;||&nbsp;
-<a href="image.html">Image</a>&nbsp;||&nbsp;
-<a href="joystick.html">Joystick</a>&nbsp;||&nbsp;
-<a href="key.html">Key</a>&nbsp;||&nbsp;
-<a href="locals.html">Locals</a>&nbsp;||&nbsp;
-<a href="mask.html">Mask</a>&nbsp;||&nbsp;
-<a href="midi.html">Midi</a>&nbsp;||&nbsp;
-<a href="mixer.html">Mixer</a>&nbsp;||&nbsp;
-<a href="mouse.html">Mouse</a>&nbsp;||&nbsp;
-<a href="movie.html">Movie</a>&nbsp;||&nbsp;
-<a href="music.html">Music</a>&nbsp;||&nbsp;
-<a href="overlay.html">Overlay</a>&nbsp;||&nbsp;
-<a href="pixelarray.html">Pixelarray</a>&nbsp;||&nbsp;
-<a href="pygame.html">Pygame</a>&nbsp;||&nbsp;
-<a href="rect.html">Rect</a>&nbsp;||&nbsp;
-<a href="scrap.html">Scrap</a>&nbsp;||&nbsp;
-<a href="sndarray.html">Sndarray</a>&nbsp;||&nbsp;
-<a href="sprite.html">Sprite</a>&nbsp;||&nbsp;
-<a href="surface.html">Surface</a>&nbsp;||&nbsp;
-<a href="surfarray.html">Surfarray</a>&nbsp;||&nbsp;
-<a href="tests.html">Tests</a>&nbsp;||&nbsp;
-<a href="time.html">Time</a>&nbsp;||&nbsp;
-<a href="transform.html">Transform</a>
-</td></tr></table>
-<br>
-
-
-<a name="pygame.key">
-<big><b>pygame.key</big></b><br><ul>
- <i>pygame module to work with the keyboard</i><br>
-<ul><small><table>
- <tr><td><a href="key.html#pygame.key.get_focused">pygame.key.get_focused</a> - <font size=-1>true if the display is receiving keyboard input from the system</font></td><td>true if the display is receiving keyboard input from the system</td></tr>
- <tr><td><a href="key.html#pygame.key.get_pressed">pygame.key.get_pressed</a> - <font size=-1>get the state of all keyboard buttons</font></td><td>get the state of all keyboard buttons</td></tr>
- <tr><td><a href="key.html#pygame.key.get_mods">pygame.key.get_mods</a> - <font size=-1>determine which modifier keys are being held</font></td><td>determine which modifier keys are being held</td></tr>
- <tr><td><a href="key.html#pygame.key.set_mods">pygame.key.set_mods</a> - <font size=-1>temporarily set which modifier keys are pressed</font></td><td>temporarily set which modifier keys are pressed</td></tr>
- <tr><td><a href="key.html#pygame.key.set_repeat">pygame.key.set_repeat</a> - <font size=-1>control how held keys are repeated</font></td><td>control how held keys are repeated</td></tr>
- <tr><td><a href="key.html#pygame.key.get_repeat">pygame.key.get_repeat</a> - <font size=-1>see how held keys are repeated</font></td><td>see how held keys are repeated</td></tr>
- <tr><td><a href="key.html#pygame.key.name">pygame.key.name</a> - <font size=-1>get the name of a key identifier</font></td><td>get the name of a key identifier</td></tr>
-</table></small></ul>
-<p>This module contains functions for dealing with the keyboard. </p>
-<p>The event queue gets <tt>pygame.KEYDOWN</tt> and <tt>pygame.KEYUP</tt> events when the keyboard buttons are pressed and released. Both events have a key attribute that is a integer id representing every key on the keyboard. </p>
-<p>The <tt>pygame.KEYDOWN</tt> event has an additional attributes unicode, and scancode. unicode represents a single character string that is the fully translated character entered. This takes into account the shift and composition keys. scancode represents the platform specific key code. This could be different from keyboard to keyboard, but is useful for key selection of weird keys like the multimedia keys. </p>
-<p>There are many keyboard constants, they are used to represent keys on the keyboard. The following is a list of all keyboard constants </p>
-<pre> KeyASCII ASCII Common Name
- K_BACKSPACE \b backspace
- K_TAB \t tab
- K_CLEAR clear
- K_RETURN \r return
- K_PAUSE pause
- K_ESCAPE ^[ escape
- K_SPACE space
- K_EXCLAIM ! exclaim
- K_QUOTEDBL " quotedbl
- K_HASH # hash
- K_DOLLAR $ dollar
- K_AMPERSAND & ampersand
- K_QUOTE quote
- K_LEFTPAREN ( left parenthesis
- K_RIGHTPAREN ) right parenthesis
- K_ASTERISK * asterisk
- K_PLUS + plus sign
- K_COMMA , comma
- K_MINUS - minus sign
- K_PERIOD . period
- K_SLASH / forward slash
- K_0 0 0
- K_1 1 1
- K_2 2 2
- K_3 3 3
- K_4 4 4
- K_5 5 5
- K_6 6 6
- K_7 7 7
- K_8 8 8
- K_9 9 9
- K_COLON : colon
- K_SEMICOLON ; semicolon
- K_LESS < less-than sign
- K_EQUALS = equals sign
- K_GREATER > greater-than sign
- K_QUESTION ? question mark
- K_AT @ at
- K_LEFTBRACKET [ left bracket
- K_BACKSLASH \ backslash
- K_RIGHTBRACKET ] right bracket
- K_CARET ^ caret
- K_UNDERSCORE _ underscore
- K_BACKQUOTE ` grave
- K_a a a
- K_b b b
- K_c c c
- K_d d d
- K_e e e
- K_f f f
- K_g g g
- K_h h h
- K_i i i
- K_j j j
- K_k k k
- K_l l l
- K_m m m
- K_n n n
- K_o o o
- K_p p p
- K_q q q
- K_r r r
- K_s s s
- K_t t t
- K_u u u
- K_v v v
- K_w w w
- K_x x x
- K_y y y
- K_z z z
- K_DELETE delete
- K_KP0 keypad 0
- K_KP1 keypad 1
- K_KP2 keypad 2
- K_KP3 keypad 3
- K_KP4 keypad 4
- K_KP5 keypad 5
- K_KP6 keypad 6
- K_KP7 keypad 7
- K_KP8 keypad 8
- K_KP9 keypad 9
- K_KP_PERIOD . keypad period
- K_KP_DIVIDE / keypad divide
- K_KP_MULTIPLY * keypad multiply
- K_KP_MINUS - keypad minus
- K_KP_PLUS + keypad plus
- K_KP_ENTER \r keypad enter
- K_KP_EQUALS = keypad equals
- K_UP up arrow
- K_DOWN down arrow
- K_RIGHT right arrow
- K_LEFT left arrow
- K_INSERT insert
- K_HOME home
- K_END end
- K_PAGEUP page up
- K_PAGEDOWN page down
- K_F1 F1
- K_F2 F2
- K_F3 F3
- K_F4 F4
- K_F5 F5
- K_F6 F6
- K_F7 F7
- K_F8 F8
- K_F9 F9
- K_F10 F10
- K_F11 F11
- K_F12 F12
- K_F13 F13
- K_F14 F14
- K_F15 F15
- K_NUMLOCK numlock
- K_CAPSLOCK capslock
- K_SCROLLOCK scrollock
- K_RSHIFT right shift
- K_LSHIFT left shift
- K_RCTRL right ctrl
- K_LCTRL left ctrl
- K_RALT right alt
- K_LALT left alt
- K_RMETA right meta
- K_LMETA left meta
- K_LSUPER left windows key
- K_RSUPER right windows key
- K_MODE mode shift
- K_HELP help
- K_PRINT print screen
- K_SYSREQ sysrq
- K_BREAK break
- K_MENU menu
- K_POWER power
- K_EURO euro
-</pre><p>The keyboard also has a list of modifier states that can be assembled bit bitwise ORing them together. </p>
-<pre> KMOD_NONE, KMOD_LSHIFT, KMOD_RSHIFT, KMOD_SHIFT, KMOD_CAPS,
- KMOD_LCTRL, KMOD_RCTRL, KMOD_CTRL, KMOD_LALT, KMOD_RALT,
- KMOD_ALT, KMOD_LMETA, KMOD_RMETA, KMOD_META, KMOD_NUM, KMOD_MODE
-</pre>
-<!--COMMENTS:pygame.key--> &nbsp;<br>
-
-
-<a name="pygame.key.get_focused">
-<big><b>pygame.key.get_focused</big></b><br><ul>
- <i>true if the display is receiving keyboard input from the system</i><br>
- <tt>pygame.key.get_focused(): return bool</tt><br>
-<p>This is true when the display window has keyboard focus from the system. If the display needs to ensure it does not lose keyboard focus, it can use <tt><a href="event.html#pygame.event.set_grab">pygame.event.set_grab</a> - <font size=-1>control the sharing of input devices with other applications</font></tt> to grab all input. </p>
-<!--COMMENTS:pygame.key.get_focused--> &nbsp;<br>
-<br></ul>
-
-
-<a name="pygame.key.get_pressed">
-<big><b>pygame.key.get_pressed</big></b><br><ul>
- <i>get the state of all keyboard buttons</i><br>
- <tt>pygame.key.get_pressed(): return bools</tt><br>
-<p>Returns a sequence of boolean values representing the state of every key on the keyboard. Use the key constant values to index the array. <tt>A</tt> True value means the that button is pressed. </p>
-<p>Getting the list of pushed buttons with this function is not the proper way to handle text entry from the user. You have no way to know the order of keys pressed, and rapidly pushed keys can be completely unnoticed between two calls to <tt><a href="key.html#pygame.key.get_pressed">pygame.key.get_pressed</a> - <font size=-1>get the state of all keyboard buttons</font></tt>. There is also no way to translate these pushed keys into a fully translated character value. See the <tt>pygame.KEYDOWN</tt> events on the event queue for this functionality. </p>
-<!--COMMENTS:pygame.key.get_pressed--> &nbsp;<br>
-<br></ul>
-
-
-<a name="pygame.key.get_mods">
-<big><b>pygame.key.get_mods</big></b><br><ul>
- <i>determine which modifier keys are being held</i><br>
- <tt>pygame.key.get_mods(): return int</tt><br>
-<p>Returns a single integer representing a bitmask of all the modifier keys being held. Using bitwise operators you can test if specific shift keys are pressed, the state of the capslock button, and more. </p>
-<!--COMMENTS:pygame.key.get_mods--> &nbsp;<br>
-<br></ul>
-
-
-<a name="pygame.key.set_mods">
-<big><b>pygame.key.set_mods</big></b><br><ul>
- <i>temporarily set which modifier keys are pressed</i><br>
- <tt>pygame.key.set_mods(int): return None</tt><br>
-<p>Create a bitmask of the modifier constants you want to impose on your program. </p>
-<!--COMMENTS:pygame.key.set_mods--> &nbsp;<br>
-<br></ul>
-
-
-<a name="pygame.key.set_repeat">
-<big><b>pygame.key.set_repeat</big></b><br><ul>
- <i>control how held keys are repeated</i><br>
- <tt>pygame.key.set_repeat(): return None</tt><br>
- <tt>pygame.key.set_repeat(delay, interval): return None</tt><br>
-<p>When the keyboard repeat is enabled, keys that are held down will generate multiple <tt>pygame.KEYDOWN</tt> events. The delay is the number of milliseconds before the first repeated <tt>pygame.KEYDOWN</tt> will be sent. After that another <tt>pygame.KEYDOWN</tt> will be sent every interval milliseconds. If no arguments are passed the key repeat is disabled. </p>
-<p>When pygame is initialized the key repeat is disabled. </p>
-<!--COMMENTS:pygame.key.set_repeat--> &nbsp;<br>
-<br></ul>
-
-
-<a name="pygame.key.get_repeat">
-<big><b>pygame.key.get_repeat</big></b><br><ul>
- <i>see how held keys are repeated</i><br>
- <tt>pygame.key.get_repeat(): return (delay, interval)</tt><br>
-<p>When the keyboard repeat is enabled, keys that are held down will generate multiple <tt>pygame.KEYDOWN</tt> events. The delay is the number of milliseconds before the first repeated <tt>pygame.KEYDOWN</tt> will be sent. After that another <tt>pygame.KEYDOWN</tt> will be sent every interval milliseconds. </p>
-<p>When pygame is initialized the key repeat is disabled. </p>
-<p>New in pygame <tt>1.8</tt>. </p>
-<!--COMMENTS:pygame.key.get_repeat--> &nbsp;<br>
-<br></ul>
-
-
-<a name="pygame.key.name">
-<big><b>pygame.key.name</big></b><br><ul>
- <i>get the name of a key identifier</i><br>
- <tt>pygame.key.name(key): return string</tt><br>
-<p>Get the descriptive name of the button from a keyboard button id constant. </p>
-<!--COMMENTS:pygame.key.name--> &nbsp;<br>
-<br></ul>
-<br></ul>
-
-</body></html>
diff --git a/pygame/docs/ref/locals.html b/pygame/docs/ref/locals.html
deleted file mode 100755
index acf651e..0000000
--- a/pygame/docs/ref/locals.html
+++ /dev/null
@@ -1,61 +0,0 @@
-
-<html>
-<title>locals - Pygame Documentation</title>
-<body bgcolor=#aaeebb text=#000000 link=#331111 vlink=#331111>
-
-
-<table cellpadding=0 cellspacing=0 border=0 style='border: 3px solid black;' width='100%'>
-<tr>
-<td bgcolor='#c2fc20' style='padding: 6px;' align=center valign=center><a href='http://www.pygame.org/'><img src='../pygame_tiny.gif' border=0 width=200 height=60></a><br><b>pygame documentation</b></td>
-<td bgcolor='#6aee28' style='border-left: 3px solid black; padding: 6px;' align=center valign=center>
- ||&nbsp;
- <a href=http://www.pygame.org>Pygame Home</a> &nbsp;||&nbsp;
- <a href=../index.html>Help Contents</a> &nbsp;||
- <a href=index.html>Reference Index</a> &nbsp;||
- <br>&nbsp;<br>
-
-<a href="camera.html">Camera</a>&nbsp;||&nbsp;
-<a href="cdrom.html">Cdrom</a>&nbsp;||&nbsp;
-<a href="color.html">Color</a>&nbsp;||&nbsp;
-<a href="cursors.html">Cursors</a>&nbsp;||&nbsp;
-<a href="display.html">Display</a>&nbsp;||&nbsp;
-<a href="draw.html">Draw</a>&nbsp;||&nbsp;
-<a href="event.html">Event</a>&nbsp;||&nbsp;
-<a href="examples.html">Examples</a>&nbsp;||&nbsp;
-<a href="font.html">Font</a>&nbsp;||&nbsp;
-<a href="gfxdraw.html">Gfxdraw</a>&nbsp;||&nbsp;
-<a href="image.html">Image</a>&nbsp;||&nbsp;
-<a href="joystick.html">Joystick</a>&nbsp;||&nbsp;
-<a href="key.html">Key</a>&nbsp;||&nbsp;
-<a href="locals.html">Locals</a>&nbsp;||&nbsp;
-<a href="mask.html">Mask</a>&nbsp;||&nbsp;
-<a href="midi.html">Midi</a>&nbsp;||&nbsp;
-<a href="mixer.html">Mixer</a>&nbsp;||&nbsp;
-<a href="mouse.html">Mouse</a>&nbsp;||&nbsp;
-<a href="movie.html">Movie</a>&nbsp;||&nbsp;
-<a href="music.html">Music</a>&nbsp;||&nbsp;
-<a href="overlay.html">Overlay</a>&nbsp;||&nbsp;
-<a href="pixelarray.html">Pixelarray</a>&nbsp;||&nbsp;
-<a href="pygame.html">Pygame</a>&nbsp;||&nbsp;
-<a href="rect.html">Rect</a>&nbsp;||&nbsp;
-<a href="scrap.html">Scrap</a>&nbsp;||&nbsp;
-<a href="sndarray.html">Sndarray</a>&nbsp;||&nbsp;
-<a href="sprite.html">Sprite</a>&nbsp;||&nbsp;
-<a href="surface.html">Surface</a>&nbsp;||&nbsp;
-<a href="surfarray.html">Surfarray</a>&nbsp;||&nbsp;
-<a href="tests.html">Tests</a>&nbsp;||&nbsp;
-<a href="time.html">Time</a>&nbsp;||&nbsp;
-<a href="transform.html">Transform</a>
-</td></tr></table>
-<br>
-
-
-<a name="pygame.locals">
-<big><b>pygame.locals</big></b><br><ul>
- <i>pygame constants</i><br>
-<p>This module contains various constants used by Pygame. It's contents are automatically placed in the pygame module namespace. However, an application can use <tt>pygame.locals</tt> to include only the Pygame constants with a 'from <tt>pygame.locals</tt> import *'. </p>
-<p>Detailed descriptions of the various constants are found throughout the Pygame documentation. <tt>pygame.display.set_mode</tt> flags like <tt>HWSURFACE</tt> are found in the Display section. Event types are explained in the Event section. Keyboard <tt>K_</tt> constants relating to the key attribute of a <tt>KEYDOWN</tt> or <tt>KEYUP</tt> event are listed in the Key section. Also found there are the various <tt>MOD_</tt> key modifiers. Finally, <tt>TIMER_RESOLUTION</tt> is defined in Time. </p>
-<!--COMMENTS:pygame.locals--> &nbsp;<br>
-<br></ul>
-
-</body></html>
diff --git a/pygame/docs/ref/mask.html b/pygame/docs/ref/mask.html
deleted file mode 100755
index d102513..0000000
--- a/pygame/docs/ref/mask.html
+++ /dev/null
@@ -1,309 +0,0 @@
-
-<html>
-<title>mask - Pygame Documentation</title>
-<body bgcolor=#aaeebb text=#000000 link=#331111 vlink=#331111>
-
-
-<table cellpadding=0 cellspacing=0 border=0 style='border: 3px solid black;' width='100%'>
-<tr>
-<td bgcolor='#c2fc20' style='padding: 6px;' align=center valign=center><a href='http://www.pygame.org/'><img src='../pygame_tiny.gif' border=0 width=200 height=60></a><br><b>pygame documentation</b></td>
-<td bgcolor='#6aee28' style='border-left: 3px solid black; padding: 6px;' align=center valign=center>
- ||&nbsp;
- <a href=http://www.pygame.org>Pygame Home</a> &nbsp;||&nbsp;
- <a href=../index.html>Help Contents</a> &nbsp;||
- <a href=index.html>Reference Index</a> &nbsp;||
- <br>&nbsp;<br>
-
-<a href="camera.html">Camera</a>&nbsp;||&nbsp;
-<a href="cdrom.html">Cdrom</a>&nbsp;||&nbsp;
-<a href="color.html">Color</a>&nbsp;||&nbsp;
-<a href="cursors.html">Cursors</a>&nbsp;||&nbsp;
-<a href="display.html">Display</a>&nbsp;||&nbsp;
-<a href="draw.html">Draw</a>&nbsp;||&nbsp;
-<a href="event.html">Event</a>&nbsp;||&nbsp;
-<a href="examples.html">Examples</a>&nbsp;||&nbsp;
-<a href="font.html">Font</a>&nbsp;||&nbsp;
-<a href="gfxdraw.html">Gfxdraw</a>&nbsp;||&nbsp;
-<a href="image.html">Image</a>&nbsp;||&nbsp;
-<a href="joystick.html">Joystick</a>&nbsp;||&nbsp;
-<a href="key.html">Key</a>&nbsp;||&nbsp;
-<a href="locals.html">Locals</a>&nbsp;||&nbsp;
-<a href="mask.html">Mask</a>&nbsp;||&nbsp;
-<a href="midi.html">Midi</a>&nbsp;||&nbsp;
-<a href="mixer.html">Mixer</a>&nbsp;||&nbsp;
-<a href="mouse.html">Mouse</a>&nbsp;||&nbsp;
-<a href="movie.html">Movie</a>&nbsp;||&nbsp;
-<a href="music.html">Music</a>&nbsp;||&nbsp;
-<a href="overlay.html">Overlay</a>&nbsp;||&nbsp;
-<a href="pixelarray.html">Pixelarray</a>&nbsp;||&nbsp;
-<a href="pygame.html">Pygame</a>&nbsp;||&nbsp;
-<a href="rect.html">Rect</a>&nbsp;||&nbsp;
-<a href="scrap.html">Scrap</a>&nbsp;||&nbsp;
-<a href="sndarray.html">Sndarray</a>&nbsp;||&nbsp;
-<a href="sprite.html">Sprite</a>&nbsp;||&nbsp;
-<a href="surface.html">Surface</a>&nbsp;||&nbsp;
-<a href="surfarray.html">Surfarray</a>&nbsp;||&nbsp;
-<a href="tests.html">Tests</a>&nbsp;||&nbsp;
-<a href="time.html">Time</a>&nbsp;||&nbsp;
-<a href="transform.html">Transform</a>
-</td></tr></table>
-<br>
-
-
-<a name="pygame.mask">
-<big><b>pygame.mask</big></b><br><ul>
- <i>pygame module for image masks.</i><br>
-<ul><small><table>
- <tr><td><a href="mask.html#pygame.mask.from_surface">pygame.mask.from_surface</a> - <font size=-1>Returns a Mask from the given surface.</font></td><td>Returns a Mask from the given surface.</td></tr>
- <tr><td><a href="mask.html#pygame.mask.from_threshold">pygame.mask.from_threshold</a> - <font size=-1>Creates a mask by thresholding Surfaces</font></td><td>Creates a mask by thresholding Surfaces</td></tr>
- <tr><td><a href="mask.html#pygame.mask.Mask">pygame.mask.Mask</a> - <font size=-1>pygame object for representing 2d bitmasks</font></td><td>pygame object for representing 2d bitmasks</td></tr>
-</table></small></ul>
-<p>Useful for fast pixel perfect collision detection. <tt>A</tt> Mask uses 1bit per pixel to store which parts collide. </p>
-<p>New in pygame <tt>1.8</tt>. </p>
-<!--COMMENTS:pygame.mask--> &nbsp;<br>
-
-
-<a name="pygame.mask.from_surface">
-<big><b>pygame.mask.from_surface</big></b><br><ul>
- <i>Returns a Mask from the given surface.</i><br>
- <tt>pygame.mask.from_surface(Surface, threshold = 127) -> Mask</tt><br>
-<p>Makes the transparent parts of the Surface not set, and the opaque parts set. </p>
-<p>The alpha of each pixel is checked to see if it is greater than the given threshold. </p>
-<p>If the Surface is color keyed, then threshold is not used. </p>
-<!--COMMENTS:pygame.mask.from_surface--> &nbsp;<br>
-<br></ul>
-
-
-<a name="pygame.mask.from_threshold">
-<big><b>pygame.mask.from_threshold</big></b><br><ul>
- <i>Creates a mask by thresholding Surfaces</i><br>
- <tt>pygame.mask.from_surface(Surface, color, threshold = (0,0,0,255), othersurface = None, palette_colors = 1) -> Mask</tt><br>
-<p>This is a more featureful method of getting a Mask from a Surface. If supplied with only one Surface, all pixels within the threshold of the supplied color are set in the Mask. If given the optional othersurface, all pixels in Surface that are within the threshold of the corresponding pixel in othersurface are set in the Mask. </p>
-<!--COMMENTS:pygame.mask.from_threshold--> &nbsp;<br>
-<br></ul>
-
-
-<a name="pygame.mask.Mask">
-<big><b>pygame.mask.Mask</big></b><br><ul>
- <i>pygame object for representing 2d bitmasks</i><br>
- <tt>pygame.Mask((width, height)): return Mask</tt><br>
-<ul><small><table>
- <tr><td><a href="mask.html#Mask.get_size">Mask.get_size</a> - <font size=-1>Returns the size of the mask.</font></td><td>Returns the size of the mask.</td></tr>
- <tr><td><a href="mask.html#Mask.get_at">Mask.get_at</a> - <font size=-1>Returns nonzero if the bit at (x,y) is set.</font></td><td>Returns nonzero if the bit at (x,y) is set.</td></tr>
- <tr><td><a href="mask.html#Mask.set_at">Mask.set_at</a> - <font size=-1>Sets the position in the mask given by x and y.</font></td><td>Sets the position in the mask given by x and y.</td></tr>
- <tr><td><a href="mask.html#Mask.overlap">Mask.overlap</a> - <font size=-1>Returns the point of intersection if the masks overlap with the given offset - or None if it does not overlap.</font></td><td>Returns the point of intersection if the masks overlap with the given offset - or None if it does not overlap.</td></tr>
- <tr><td><a href="mask.html#Mask.overlap_area">Mask.overlap_area</a> - <font size=-1>Returns the number of overlapping 'pixels'.</font></td><td>Returns the number of overlapping 'pixels'.</td></tr>
- <tr><td><a href="mask.html#Mask.overlap_mask">Mask.overlap_mask</a> - <font size=-1>Returns a mask of the overlapping pixels</font></td><td>Returns a mask of the overlapping pixels</td></tr>
- <tr><td><a href="mask.html#Mask.fill">Mask.fill</a> - <font size=-1>Sets all bits to 1</font></td><td>Sets all bits to 1</td></tr>
- <tr><td><a href="mask.html#Mask.clear">Mask.clear</a> - <font size=-1>Sets all bits to 0</font></td><td>Sets all bits to 0</td></tr>
- <tr><td><a href="mask.html#Mask.invert">Mask.invert</a> - <font size=-1>Flips the bits in a Mask</font></td><td>Flips the bits in a Mask</td></tr>
- <tr><td><a href="mask.html#Mask.scale">Mask.scale</a> - <font size=-1>Resizes a mask</font></td><td>Resizes a mask</td></tr>
- <tr><td><a href="mask.html#Mask.draw">Mask.draw</a> - <font size=-1>Draws a mask onto another</font></td><td>Draws a mask onto another</td></tr>
- <tr><td><a href="mask.html#Mask.erase">Mask.erase</a> - <font size=-1>Erases a mask from another</font></td><td>Erases a mask from another</td></tr>
- <tr><td><a href="mask.html#Mask.count">Mask.count</a> - <font size=-1>Returns the number of set pixels</font></td><td>Returns the number of set pixels</td></tr>
- <tr><td><a href="mask.html#Mask.centroid">Mask.centroid</a> - <font size=-1>Returns the centroid of the pixels in a Mask</font></td><td>Returns the centroid of the pixels in a Mask</td></tr>
- <tr><td><a href="mask.html#Mask.angle">Mask.angle</a> - <font size=-1>Returns the orientation of the pixels</font></td><td>Returns the orientation of the pixels</td></tr>
- <tr><td><a href="mask.html#Mask.outline">Mask.outline</a> - <font size=-1>list of points outlining an object</font></td><td>list of points outlining an object</td></tr>
- <tr><td><a href="mask.html#Mask.convolve">Mask.convolve</a> - <font size=-1>Return the convolution of self with another mask.</font></td><td>Return the convolution of self with another mask.</td></tr>
- <tr><td><a href="mask.html#Mask.connected_component">Mask.connected_component</a> - <font size=-1>Returns a mask of a connected region of pixels.</font></td><td>Returns a mask of a connected region of pixels.</td></tr>
- <tr><td><a href="mask.html#Mask.connected_components">Mask.connected_components</a> - <font size=-1>Returns a list of masks of connected regions of pixels.</font></td><td>Returns a list of masks of connected regions of pixels.</td></tr>
- <tr><td><a href="mask.html#Mask.get_bounding_rects">Mask.get_bounding_rects</a> - <font size=-1>Returns a list of bounding rects of regions of set pixels.</font></td><td>Returns a list of bounding rects of regions of set pixels.</td></tr>
-</table></small></ul>
- &nbsp;<br>
-<!--COMMENTS:pygame.mask.Mask--> &nbsp;<br>
-
-
-<a name="Mask.get_size">
-<big><b>Mask.get_size</big></b><br><ul>
- <i>Returns the size of the mask.</i><br>
- <tt>Mask.get_size() -> width,height</tt><br>
- &nbsp;<br>
-<!--COMMENTS:Mask.get_size--> &nbsp;<br>
-<br></ul>
-
-
-<a name="Mask.get_at">
-<big><b>Mask.get_at</big></b><br><ul>
- <i>Returns nonzero if the bit at (x,y) is set.</i><br>
- <tt>Mask.get_at((x,y)) -> int</tt><br>
-<p>Coordinates start at (0,0) is top left - just like Surfaces. </p>
-<!--COMMENTS:Mask.get_at--> &nbsp;<br>
-<br></ul>
-
-
-<a name="Mask.set_at">
-<big><b>Mask.set_at</big></b><br><ul>
- <i>Sets the position in the mask given by x and y.</i><br>
- <tt>Mask.set_at((x,y),value)</tt><br>
- &nbsp;<br>
-<!--COMMENTS:Mask.set_at--> &nbsp;<br>
-<br></ul>
-
-
-<a name="Mask.overlap">
-<big><b>Mask.overlap</big></b><br><ul>
- <i>Returns the point of intersection if the masks overlap with the given offset - or None if it does not overlap.</i><br>
- <tt>Mask.overlap(othermask, offset) -> x,y</tt><br>
-<p>The overlap tests uses the following offsets (which may be negative): </p>
-<pre> +----+----------..
- |A | yoffset
- | +-+----------..
- +--|B
- |xoffset
- | |
- : :
-</pre>
-<!--COMMENTS:Mask.overlap--> &nbsp;<br>
-<br></ul>
-
-
-<a name="Mask.overlap_area">
-<big><b>Mask.overlap_area</big></b><br><ul>
- <i>Returns the number of overlapping 'pixels'.</i><br>
- <tt>Mask.overlap_area(othermask, offset) -> numpixels</tt><br>
-<p>You can see how many pixels overlap with the other mask given. This can be used to see in which direction things collide, or to see how much the two masks collide. An approximate collision normal can be found by calculating the gradient of the overlap area through the finite difference. </p>
-<pre> dx = Mask.overlap_area(othermask,(x+1,y)) - Mask.overlap_area(othermask,(x-1,y))
- dy = Mask.overlap_area(othermask,(x,y+1)) - Mask.overlap_area(othermask,(x,y-1))
-</pre>
-<!--COMMENTS:Mask.overlap_area--> &nbsp;<br>
-<br></ul>
-
-
-<a name="Mask.overlap_mask">
-<big><b>Mask.overlap_mask</big></b><br><ul>
- <i>Returns a mask of the overlapping pixels</i><br>
- <tt>Mask.overlap_mask(othermask, offset) -> Mask</tt><br>
-<p>Returns a Mask the size of the original Mask containing only the overlapping pixels between Mask and othermask. </p>
-<!--COMMENTS:Mask.overlap_mask--> &nbsp;<br>
-<br></ul>
-
-
-<a name="Mask.fill">
-<big><b>Mask.fill</big></b><br><ul>
- <i>Sets all bits to 1</i><br>
- <tt>Mask.fill()</tt><br>
-<p>Sets all bits in a Mask to 1. </p>
-<!--COMMENTS:Mask.fill--> &nbsp;<br>
-<br></ul>
-
-
-<a name="Mask.clear">
-<big><b>Mask.clear</big></b><br><ul>
- <i>Sets all bits to 0</i><br>
- <tt>Mask.clear()</tt><br>
-<p>Sets all bits in a Mask to 0. </p>
-<!--COMMENTS:Mask.clear--> &nbsp;<br>
-<br></ul>
-
-
-<a name="Mask.invert">
-<big><b>Mask.invert</big></b><br><ul>
- <i>Flips the bits in a Mask</i><br>
- <tt>Mask.invert()</tt><br>
-<p>Flips all of the bits in a Mask, so that the set pixels turn to unset pixels and the unset pixels turn to set pixels. </p>
-<!--COMMENTS:Mask.invert--> &nbsp;<br>
-<br></ul>
-
-
-<a name="Mask.scale">
-<big><b>Mask.scale</big></b><br><ul>
- <i>Resizes a mask</i><br>
- <tt>Mask.scale((x, y)) -> Mask</tt><br>
-<p>Returns a new Mask of the Mask scaled to the requested size. </p>
-<!--COMMENTS:Mask.scale--> &nbsp;<br>
-<br></ul>
-
-
-<a name="Mask.draw">
-<big><b>Mask.draw</big></b><br><ul>
- <i>Draws a mask onto another</i><br>
- <tt>Mask.draw(othermask, offset)</tt><br>
-<p>Performs a bitwise <tt>OR</tt>, drawing othermask onto Mask. </p>
-<!--COMMENTS:Mask.draw--> &nbsp;<br>
-<br></ul>
-
-
-<a name="Mask.erase">
-<big><b>Mask.erase</big></b><br><ul>
- <i>Erases a mask from another</i><br>
- <tt>Mask.erase(othermask, offset)</tt><br>
-<p>Erases all pixels set in othermask from Mask. </p>
-<!--COMMENTS:Mask.erase--> &nbsp;<br>
-<br></ul>
-
-
-<a name="Mask.count">
-<big><b>Mask.count</big></b><br><ul>
- <i>Returns the number of set pixels</i><br>
- <tt>Mask.count() -> pixels</tt><br>
-<p>Returns the number of set pixels in the Mask. </p>
-<!--COMMENTS:Mask.count--> &nbsp;<br>
-<br></ul>
-
-
-<a name="Mask.centroid">
-<big><b>Mask.centroid</big></b><br><ul>
- <i>Returns the centroid of the pixels in a Mask</i><br>
- <tt>Mask.centroid() -> (x, y)</tt><br>
-<p>Finds the centroid, the center of pixel mass, of a Mask. Returns a coordinate tuple for the centroid of the Mask. In the event the Mask is empty, it will return (0,0). </p>
-<!--COMMENTS:Mask.centroid--> &nbsp;<br>
-<br></ul>
-
-
-<a name="Mask.angle">
-<big><b>Mask.angle</big></b><br><ul>
- <i>Returns the orientation of the pixels</i><br>
- <tt>Mask.angle() -> theta</tt><br>
-<p>Finds the approximate orientation of the pixels in the image from -90 to 90 degrees. This works best if performed on one connected component of pixels. It will return <tt>0.0</tt> on an empty Mask. </p>
-<!--COMMENTS:Mask.angle--> &nbsp;<br>
-<br></ul>
-
-
-<a name="Mask.outline">
-<big><b>Mask.outline</big></b><br><ul>
- <i>list of points outlining an object</i><br>
- <tt>Mask.outline(every = 1) -> [(x,y), (x,y) ...]</tt><br>
-<p>Returns a list of points of the outline of the first object it comes across in a Mask. For this to be useful, there should probably only be one connected component of pixels in the Mask. The every option allows you to skip pixels in the outline. For example, setting it to 10 would return a list of every 10th pixel in the outline. </p>
-<!--COMMENTS:Mask.outline--> &nbsp;<br>
-<br></ul>
-
-
-<a name="Mask.convolve">
-<big><b>Mask.convolve</big></b><br><ul>
- <i>Return the convolution of self with another mask.</i><br>
- <tt>Mask.convolve(othermask, outputmask = None, offset = (0,0)) -> Mask</tt><br>
-<p>Returns a mask with the (i-offset[0],j-offset[1]) bit set if shifting othermask so that it's lower right corner pixel is at (i,j) would cause it to overlap with self. </p>
-<p>If an outputmask is specified, the output is drawn onto outputmask and outputmask is returned. Otherwise a mask of size <tt>self.get_size()</tt> + <tt>othermask.get_size()</tt> - (1,1) is created. </p>
-<!--COMMENTS:Mask.convolve--> &nbsp;<br>
-<br></ul>
-
-
-<a name="Mask.connected_component">
-<big><b>Mask.connected_component</big></b><br><ul>
- <i>Returns a mask of a connected region of pixels.</i><br>
- <tt>Mask.connected_component((x,y) = None) -> Mask</tt><br>
-<p>This uses the <tt>SAUF</tt> algorithm to find a connected component in the Mask. It checks 8 point connectivity. By default, it will return the largest connected component in the image. Optionally, a coordinate pair of a pixel can be specified, and the connected component containing it will be returned. In the event the pixel at that location is not set, the returned Mask will be empty. The Mask returned is the same size as the original Mask. </p>
-<!--COMMENTS:Mask.connected_component--> &nbsp;<br>
-<br></ul>
-
-
-<a name="Mask.connected_components">
-<big><b>Mask.connected_components</big></b><br><ul>
- <i>Returns a list of masks of connected regions of pixels.</i><br>
- <tt>Mask.connected_components(min = 0) -> [Masks]</tt><br>
-<p>Returns a list of masks of connected regions of pixels. An optional minimum number of pixels per connected region can be specified to filter out noise. </p>
-<!--COMMENTS:Mask.connected_components--> &nbsp;<br>
-<br></ul>
-
-
-<a name="Mask.get_bounding_rects">
-<big><b>Mask.get_bounding_rects</big></b><br><ul>
- <i>Returns a list of bounding rects of regions of set pixels.</i><br>
- <tt>Mask.get_bounding_rects() -> Rects</tt><br>
-<p>This gets a bounding rect of connected regions of set pixels. <tt>A</tt> bounding rect is one for which each of the connected pixels is inside the rect. </p>
-<!--COMMENTS:Mask.get_bounding_rects--> &nbsp;<br>
-<br></ul>
-<br></ul>
-<br></ul>
-
-</body></html>
diff --git a/pygame/docs/ref/midi.html b/pygame/docs/ref/midi.html
deleted file mode 100755
index 92c0283..0000000
--- a/pygame/docs/ref/midi.html
+++ /dev/null
@@ -1,351 +0,0 @@
-
-<html>
-<title>midi - Pygame Documentation</title>
-<body bgcolor=#aaeebb text=#000000 link=#331111 vlink=#331111>
-
-
-<table cellpadding=0 cellspacing=0 border=0 style='border: 3px solid black;' width='100%'>
-<tr>
-<td bgcolor='#c2fc20' style='padding: 6px;' align=center valign=center><a href='http://www.pygame.org/'><img src='../pygame_tiny.gif' border=0 width=200 height=60></a><br><b>pygame documentation</b></td>
-<td bgcolor='#6aee28' style='border-left: 3px solid black; padding: 6px;' align=center valign=center>
- ||&nbsp;
- <a href=http://www.pygame.org>Pygame Home</a> &nbsp;||&nbsp;
- <a href=../index.html>Help Contents</a> &nbsp;||
- <a href=index.html>Reference Index</a> &nbsp;||
- <br>&nbsp;<br>
-
-<a href="camera.html">Camera</a>&nbsp;||&nbsp;
-<a href="cdrom.html">Cdrom</a>&nbsp;||&nbsp;
-<a href="color.html">Color</a>&nbsp;||&nbsp;
-<a href="cursors.html">Cursors</a>&nbsp;||&nbsp;
-<a href="display.html">Display</a>&nbsp;||&nbsp;
-<a href="draw.html">Draw</a>&nbsp;||&nbsp;
-<a href="event.html">Event</a>&nbsp;||&nbsp;
-<a href="examples.html">Examples</a>&nbsp;||&nbsp;
-<a href="font.html">Font</a>&nbsp;||&nbsp;
-<a href="gfxdraw.html">Gfxdraw</a>&nbsp;||&nbsp;
-<a href="image.html">Image</a>&nbsp;||&nbsp;
-<a href="joystick.html">Joystick</a>&nbsp;||&nbsp;
-<a href="key.html">Key</a>&nbsp;||&nbsp;
-<a href="locals.html">Locals</a>&nbsp;||&nbsp;
-<a href="mask.html">Mask</a>&nbsp;||&nbsp;
-<a href="midi.html">Midi</a>&nbsp;||&nbsp;
-<a href="mixer.html">Mixer</a>&nbsp;||&nbsp;
-<a href="mouse.html">Mouse</a>&nbsp;||&nbsp;
-<a href="movie.html">Movie</a>&nbsp;||&nbsp;
-<a href="music.html">Music</a>&nbsp;||&nbsp;
-<a href="overlay.html">Overlay</a>&nbsp;||&nbsp;
-<a href="pixelarray.html">Pixelarray</a>&nbsp;||&nbsp;
-<a href="pygame.html">Pygame</a>&nbsp;||&nbsp;
-<a href="rect.html">Rect</a>&nbsp;||&nbsp;
-<a href="scrap.html">Scrap</a>&nbsp;||&nbsp;
-<a href="sndarray.html">Sndarray</a>&nbsp;||&nbsp;
-<a href="sprite.html">Sprite</a>&nbsp;||&nbsp;
-<a href="surface.html">Surface</a>&nbsp;||&nbsp;
-<a href="surfarray.html">Surfarray</a>&nbsp;||&nbsp;
-<a href="tests.html">Tests</a>&nbsp;||&nbsp;
-<a href="time.html">Time</a>&nbsp;||&nbsp;
-<a href="transform.html">Transform</a>
-</td></tr></table>
-<br>
-
-
-<a name="pygame.midi">
-<big><b>pygame.midi</big></b><br><ul>
- <i>pygame module for interacting with midi input and output.</i><br>
-<ul><small><table>
- <tr><td><a href="midi.html#pygame.midi.Input">pygame.midi.Input</a> - <font size=-1>Input is used to get midi input from midi devices.</font></td><td>Input is used to get midi input from midi devices.</td></tr>
- <tr><td><a href="midi.html#pygame.midi.MidiException">pygame.midi.MidiException</a> - <font size=-1>exception that pygame.midi functions and classes can raise</font></td><td>exception that pygame.midi functions and classes can raise</td></tr>
- <tr><td><a href="midi.html#pygame.midi.Output">pygame.midi.Output</a> - <font size=-1>Output is used to send midi to an output device</font></td><td>Output is used to send midi to an output device</td></tr>
- <tr><td><a href="midi.html#pygame.midi.get_count">pygame.midi.get_count</a> - <font size=-1>gets the number of devices.</font></td><td>gets the number of devices.</td></tr>
- <tr><td><a href="midi.html#pygame.midi.get_default_input_id">pygame.midi.get_default_input_id</a> - <font size=-1>gets default input device number</font></td><td>gets default input device number</td></tr>
- <tr><td><a href="midi.html#pygame.midi.get_default_output_id">pygame.midi.get_default_output_id</a> - <font size=-1>gets default output device number</font></td><td>gets default output device number</td></tr>
- <tr><td><a href="midi.html#pygame.midi.get_device_info">pygame.midi.get_device_info</a> - <font size=-1> returns information about a midi device</font></td><td> returns information about a midi device</td></tr>
- <tr><td><a href="midi.html#pygame.midi.init">pygame.midi.init</a> - <font size=-1>initialize the midi module</font></td><td>initialize the midi module</td></tr>
- <tr><td><a href="midi.html#pygame.midi.midis2events">pygame.midi.midis2events</a> - <font size=-1>converts midi events to pygame events</font></td><td>converts midi events to pygame events</td></tr>
- <tr><td><a href="midi.html#pygame.midi.quit">pygame.midi.quit</a> - <font size=-1>uninitialize the midi module</font></td><td>uninitialize the midi module</td></tr>
- <tr><td><a href="midi.html#pygame.midi.time">pygame.midi.time</a> - <font size=-1>returns the current time in ms of the PortMidi timer</font></td><td>returns the current time in ms of the PortMidi timer</td></tr>
-</table></small></ul>
-<p>The midi module can send output to midi devices, and get input from midi devices. It can also list midi devices on the system. </p>
-<p>Including real midi devices, and virtual ones. </p>
-<p>It uses the portmidi library. Is portable to which ever platforms portmidi supports (currently windows, <tt>OSX</tt>, and linux). </p>
-<p>This uses pyportmidi for now, but may use its own bindings at some point in the future. The pyportmidi bindings are included with pygame. </p>
-<p>New in pygame <tt>1.9.0</tt>. </p>
-<!--COMMENTS:pygame.midi--> &nbsp;<br>
-
-
-<a name="pygame.midi.Input">
-<big><b>pygame.midi.Input</big></b><br><ul>
- <i>Input is used to get midi input from midi devices.</i><br>
- <tt>Input(device_id)</tt><br>
- <tt>Input(device_id, buffer_size)</tt><br>
-<ul><small><table>
- <tr><td><a href="midi.html#Input.close">Input.close</a> - <font size=-1> closes a midi stream, flushing any pending buffers.</font></td><td> closes a midi stream, flushing any pending buffers.</td></tr>
- <tr><td><a href="midi.html#Input.poll">Input.poll</a> - <font size=-1>returns true if there's data, or false if not.</font></td><td>returns true if there's data, or false if not.</td></tr>
- <tr><td><a href="midi.html#Input.read">Input.read</a> - <font size=-1>reads num_events midi events from the buffer.</font></td><td>reads num_events midi events from the buffer.</td></tr>
-</table></small></ul>
-<p>buffer_size -the number of input events to be buffered waiting to </p>
-<pre> be read using Input.read()
-</pre>
-<!--COMMENTS:pygame.midi.Input--> &nbsp;<br>
-
-
-<a name="Input.close">
-<big><b>Input.close</big></b><br><ul>
- <i> closes a midi stream, flushing any pending buffers.</i><br>
- <tt>Input.close(): return None</tt><br>
-<p>PortMidi attempts to close open streams when the application exits -- this is particularly difficult under Windows. </p>
-<!--COMMENTS:Input.close--> &nbsp;<br>
-<br></ul>
-
-
-<a name="Input.poll">
-<big><b>Input.poll</big></b><br><ul>
- <i>returns true if there's data, or false if not.</i><br>
- <tt>Input.poll(): return Bool</tt><br>
-<p>raises a MidiException on error. </p>
-<!--COMMENTS:Input.poll--> &nbsp;<br>
-<br></ul>
-
-
-<a name="Input.read">
-<big><b>Input.read</big></b><br><ul>
- <i>reads num_events midi events from the buffer.</i><br>
- <tt>Input.read(num_events): return midi_event_list</tt><br>
-<p>Reads from the Input buffer and gives back midi events. [[[status,data1,data2,data3],timestamp], </p>
-<pre> [[status,data1,data2,data3],timestamp],...]
-</pre>
-<!--COMMENTS:Input.read--> &nbsp;<br>
-<br></ul>
-<br></ul>
-
-
-<a name="pygame.midi.MidiException">
-<big><b>pygame.midi.MidiException</big></b><br><ul>
- <i>exception that pygame.midi functions and classes can raise</i><br>
- <tt>MidiException(errno)</tt><br>
- &nbsp;<br>
-<!--COMMENTS:pygame.midi.MidiException--> &nbsp;<br>
-<br></ul>
-
-
-<a name="pygame.midi.Output">
-<big><b>pygame.midi.Output</big></b><br><ul>
- <i>Output is used to send midi to an output device</i><br>
- <tt>Output(device_id)</tt><br>
- <tt>Output(device_id, latency = 0)</tt><br>
- <tt>Output(device_id, buffer_size = 4096)</tt><br>
- <tt>Output(device_id, latency, buffer_size)</tt><br>
-<ul><small><table>
- <tr><td><a href="midi.html#Output.abort">Output.abort</a> - <font size=-1> terminates outgoing messages immediately</font></td><td> terminates outgoing messages immediately</td></tr>
- <tr><td><a href="midi.html#Output.close">Output.close</a> - <font size=-1> closes a midi stream, flushing any pending buffers.</font></td><td> closes a midi stream, flushing any pending buffers.</td></tr>
- <tr><td><a href="midi.html#Output.note_off">Output.note_off</a> - <font size=-1>turns a midi note off. Note must be on.</font></td><td>turns a midi note off. Note must be on.</td></tr>
- <tr><td><a href="midi.html#Output.note_on">Output.note_on</a> - <font size=-1>turns a midi note on. Note must be off.</font></td><td>turns a midi note on. Note must be off.</td></tr>
- <tr><td><a href="midi.html#Output.set_instrument">Output.set_instrument</a> - <font size=-1>select an instrument, with a value between 0 and 127</font></td><td>select an instrument, with a value between 0 and 127</td></tr>
- <tr><td><a href="midi.html#Output.write">Output.write</a> - <font size=-1>writes a list of midi data to the Output</font></td><td>writes a list of midi data to the Output</td></tr>
- <tr><td><a href="midi.html#Output.write_short">Output.write_short</a> - <font size=-1>write_short(status <, data1><, data2>)</font></td><td>write_short(status <, data1><, data2>)</td></tr>
- <tr><td><a href="midi.html#Output.write_sys_ex">Output.write_sys_ex</a> - <font size=-1>writes a timestamped system-exclusive midi message.</font></td><td>writes a timestamped system-exclusive midi message.</td></tr>
-</table></small></ul>
-<p>The buffer_size specifies the number of output events to be buffered waiting for output. (In some cases -- see below -- PortMidi does not buffer output at all and merely passes data to a lower-level <tt>API</tt>, in which case buffersize is <tt>ignored.)</tt> </p>
-<p>latency is the delay in milliseconds applied to timestamps to determine when the output should actually occur. (If latency is < 0, 0 is <tt>assumed.)</tt> </p>
-<p>If latency is zero, timestamps are ignored and all output is delivered immediately. If latency is greater than zero, output is delayed until the message timestamp plus the latency. <tt>(NOTE:</tt> time is measured relative to the time source indicated by time_proc. Timestamps are absolute, not relative delays or <tt>offsets.)</tt> In some cases, PortMidi can obtain better timing than your application by passing timestamps along to the device driver or hardware. Latency may also help you to synchronize midi data to audio data by matching midi latency to the audio buffer latency. </p>
-<!--COMMENTS:pygame.midi.Output--> &nbsp;<br>
-
-
-<a name="Output.abort">
-<big><b>Output.abort</big></b><br><ul>
- <i> terminates outgoing messages immediately</i><br>
- <tt>Output.abort(): return None</tt><br>
-<p>The caller should immediately close the output port; this call may result in transmission of a partial midi message. There is no abort for Midi input because the user can simply ignore messages in the buffer and close an input device at any time. </p>
-<!--COMMENTS:Output.abort--> &nbsp;<br>
-<br></ul>
-
-
-<a name="Output.close">
-<big><b>Output.close</big></b><br><ul>
- <i> closes a midi stream, flushing any pending buffers.</i><br>
- <tt>Output.close(): return None</tt><br>
-<p>PortMidi attempts to close open streams when the application exits -- this is particularly difficult under Windows. </p>
-<!--COMMENTS:Output.close--> &nbsp;<br>
-<br></ul>
-
-
-<a name="Output.note_off">
-<big><b>Output.note_off</big></b><br><ul>
- <i>turns a midi note off. Note must be on.</i><br>
- <tt>Output.note_off(note, velocity=None, channel = 0)</tt><br>
-<p>Turn a note off in the output stream. The note must already be on for this to work correctly. </p>
-<!--COMMENTS:Output.note_off--> &nbsp;<br>
-<br></ul>
-
-
-<a name="Output.note_on">
-<big><b>Output.note_on</big></b><br><ul>
- <i>turns a midi note on. Note must be off.</i><br>
- <tt>Output.note_on(note, velocity=None, channel = 0)</tt><br>
-<p>Turn a note on in the output stream. The note must already be off for this to work correctly. </p>
-<!--COMMENTS:Output.note_on--> &nbsp;<br>
-<br></ul>
-
-
-<a name="Output.set_instrument">
-<big><b>Output.set_instrument</big></b><br><ul>
- <i>select an instrument, with a value between 0 and 127</i><br>
- <tt>Output.set_instrument(instrument_id, channel = 0)</tt><br>
- &nbsp;<br>
-<!--COMMENTS:Output.set_instrument--> &nbsp;<br>
-<br></ul>
-
-
-<a name="Output.write">
-<big><b>Output.write</big></b><br><ul>
- <i>writes a list of midi data to the Output</i><br>
- <tt>Output.write(data)</tt><br>
-<p>writes series of <tt>MIDI</tt> information in the form of a list: </p>
-<pre> write([[[status <,data1><,data2><,data3>],timestamp],
- [[status <,data1><,data2><,data3>],timestamp],...])
-</pre><p><data> fields are optional example: choose program change 1 at time 20000 and send note 65 with velocity 100 500 ms later. </p>
-<pre> write([[[0xc0,0,0],20000],[[0x90,60,100],20500]])
-</pre><p>notes: </p>
-<pre> 1. timestamps will be ignored if latency = 0.
- 2. To get a note to play immediately, send MIDI info with
- timestamp read from function Time.
- 3. understanding optional data fields:
- write([[[0xc0,0,0],20000]]) is equivalent to
- write([[[0xc0],20000]])
-</pre><p>Can send up to 1024 elements in your data list, otherwise an </p>
-<pre> IndexError exception is raised.
-</pre>
-<!--COMMENTS:Output.write--> &nbsp;<br>
-<br></ul>
-
-
-<a name="Output.write_short">
-<big><b>Output.write_short</big></b><br><ul>
- <i>write_short(status <, data1><, data2>)</i><br>
- <tt>Output.write_short(status)</tt><br>
- <tt>Output.write_short(status, data1 = 0, data2 = 0)</tt><br>
-<p>output <tt>MIDI</tt> information of 3 bytes or less. data fields are optional status byte could be: </p>
-<pre> 0xc0 = program change
- 0x90 = note on
- etc.
- data bytes are optional and assumed 0 if omitted
-</pre><p>example: note 65 on with velocity 100 </p>
-<pre> write_short(0x90,65,100)
-</pre>
-<!--COMMENTS:Output.write_short--> &nbsp;<br>
-<br></ul>
-
-
-<a name="Output.write_sys_ex">
-<big><b>Output.write_sys_ex</big></b><br><ul>
- <i>writes a timestamped system-exclusive midi message.</i><br>
- <tt>Output.write_sys_ex(when, msg)</tt><br>
-<p>msg - can be a *list* or a *string* when - a timestamp in miliseconds example: </p>
-<pre> (assuming o is an onput MIDI stream)
- o.write_sys_ex(0,'\xF0\x7D\x10\x11\x12\x13\xF7')
- is equivalent to
- o.write_sys_ex(pygame.midi.time(),
- [0xF0,0x7D,0x10,0x11,0x12,0x13,0xF7])
-</pre>
-<!--COMMENTS:Output.write_sys_ex--> &nbsp;<br>
-<br></ul>
-<br></ul>
-
-
-<a name="pygame.midi.get_count">
-<big><b>pygame.midi.get_count</big></b><br><ul>
- <i>gets the number of devices.</i><br>
- <tt>pygame.midi.get_count(): return num_devices</tt><br>
-<p>Device ids range from 0 to get_count() -1 </p>
-<!--COMMENTS:pygame.midi.get_count--> &nbsp;<br>
-<br></ul>
-
-
-<a name="pygame.midi.get_default_input_id">
-<big><b>pygame.midi.get_default_input_id</big></b><br><ul>
- <i>gets default input device number</i><br>
- <tt>pygame.midi.get_default_input_id(): return default_id</tt><br>
-<p>Return the default device <tt>ID</tt> or -1 if there are no devices. The result can be passed to the Input()/Ouput() class. </p>
-<p>On the <tt>PC</tt>, the user can specify a default device by setting an environment variable. For example, to use device #1. </p>
-<pre> set PM_RECOMMENDED_INPUT_DEVICE=1
-</pre><p>The user should first determine the available device <tt>ID</tt> by using the supplied application "testin" or "testout". </p>
-<p>In general, the registry is a better place for this kind of info, and with <tt>USB</tt> devices that can come and go, using integers is not very reliable for device identification. Under Windows, if <tt>PM_RECOMMENDED_OUTPUT_DEVICE</tt> (or <tt>PM_RECOMMENDED_INPUT_DEVICE)</tt> is <tt>*NOT*</tt> found in the environment, then the default device is obtained by looking for a string in the registry under: </p>
-<pre> HKEY_LOCAL_MACHINE/SOFTWARE/PortMidi/Recommended_Input_Device
-</pre><p>and HKEY_LOCAL_MACHINE/SOFTWARE/PortMidi/Recommended_Output_Device for a string. The number of the first device with a substring that matches the string exactly is returned. For example, if the string in the registry is <tt>"USB"</tt>, and device 1 is named "In <tt>USB</tt> MidiSport 1x1", then that will be the default input because it contains the string <tt>"USB"</tt>. </p>
-<p>In addition to the name, get_device_info() returns "interf", which is the interface name. (The "interface" is the underlying software system or <tt>API</tt> used by PortMidi to access devices. Examples are MMSystem, DirectX (not implemented), <tt>ALSA</tt>, <tt>OSS</tt> (not implemented), <tt>etc.)</tt> At present, the only Win32 interface is "MMSystem", the only Linux interface is <tt>"ALSA"</tt>, and the only Max <tt>OS</tt> <tt>X</tt> interface is "CoreMIDI". To specify both the interface and the device name in the registry, separate the two with a comma and a space, <tt>e.g.:</tt> </p>
-<pre> MMSystem, In USB MidiSport 1x1
-</pre><p>In this case, the string before the comma must be a substring of the "interf" string, and the string after the space must be a substring of the "name" name string in order to match the device. </p>
-<p>Note: in the current release, the default is simply the first device (the input or output device with the lowest PmDeviceID). </p>
-<!--COMMENTS:pygame.midi.get_default_input_id--> &nbsp;<br>
-<br></ul>
-
-
-<a name="pygame.midi.get_default_output_id">
-<big><b>pygame.midi.get_default_output_id</big></b><br><ul>
- <i>gets default output device number</i><br>
- <tt>pygame.midi.get_default_output_id(): return default_id</tt><br>
-<p>Return the default device <tt>ID</tt> or -1 if there are no devices. The result can be passed to the Input()/Ouput() class. </p>
-<p>On the <tt>PC</tt>, the user can specify a default device by setting an environment variable. For example, to use device #1. </p>
-<pre> set PM_RECOMMENDED_OUTPUT_DEVICE=1
-</pre><p>The user should first determine the available device <tt>ID</tt> by using the supplied application "testin" or "testout". </p>
-<p>In general, the registry is a better place for this kind of info, and with <tt>USB</tt> devices that can come and go, using integers is not very reliable for device identification. Under Windows, if <tt>PM_RECOMMENDED_OUTPUT_DEVICE</tt> (or <tt>PM_RECOMMENDED_INPUT_DEVICE)</tt> is <tt>*NOT*</tt> found in the environment, then the default device is obtained by looking for a string in the registry under: </p>
-<pre> HKEY_LOCAL_MACHINE/SOFTWARE/PortMidi/Recommended_Input_Device
-</pre><p>and HKEY_LOCAL_MACHINE/SOFTWARE/PortMidi/Recommended_Output_Device for a string. The number of the first device with a substring that matches the string exactly is returned. For example, if the string in the registry is <tt>"USB"</tt>, and device 1 is named "In <tt>USB</tt> MidiSport 1x1", then that will be the default input because it contains the string <tt>"USB"</tt>. </p>
-<p>In addition to the name, get_device_info() returns "interf", which is the interface name. (The "interface" is the underlying software system or <tt>API</tt> used by PortMidi to access devices. Examples are MMSystem, DirectX (not implemented), <tt>ALSA</tt>, <tt>OSS</tt> (not implemented), <tt>etc.)</tt> At present, the only Win32 interface is "MMSystem", the only Linux interface is <tt>"ALSA"</tt>, and the only Max <tt>OS</tt> <tt>X</tt> interface is "CoreMIDI". To specify both the interface and the device name in the registry, separate the two with a comma and a space, <tt>e.g.:</tt> </p>
-<pre> MMSystem, In USB MidiSport 1x1
-</pre><p>In this case, the string before the comma must be a substring of the "interf" string, and the string after the space must be a substring of the "name" name string in order to match the device. </p>
-<p>Note: in the current release, the default is simply the first device (the input or output device with the lowest PmDeviceID). </p>
-<!--COMMENTS:pygame.midi.get_default_output_id--> &nbsp;<br>
-<br></ul>
-
-
-<a name="pygame.midi.get_device_info">
-<big><b>pygame.midi.get_device_info</big></b><br><ul>
- <i> returns information about a midi device</i><br>
- <tt>pygame.midi.get_device_info(an_id): return (interf, name, input, output, opened)</tt><br>
-<p>interf - a text string describing the device interface, eg <tt>'ALSA'</tt>. name - a text string for the name of the device, eg 'Midi Through Port-0' input - 0, or 1 if the device is an input device. output - 0, or 1 if the device is an output device. opened - 0, or 1 if the device is opened. </p>
-<p>If the id is out of range, the function returns None. </p>
-<!--COMMENTS:pygame.midi.get_device_info--> &nbsp;<br>
-<br></ul>
-
-
-<a name="pygame.midi.init">
-<big><b>pygame.midi.init</big></b><br><ul>
- <i>initialize the midi module</i><br>
- <tt>pygame.midi.init(): return None</tt><br>
-<p>Call the initialisation function before using the midi module. </p>
-<p>It is safe to call this more than once. </p>
-<!--COMMENTS:pygame.midi.init--> &nbsp;<br>
-<br></ul>
-
-
-<a name="pygame.midi.midis2events">
-<big><b>pygame.midi.midis2events</big></b><br><ul>
- <i>converts midi events to pygame events</i><br>
- <tt>pygame.midi.midis2events(midis, device_id): return [Event, ...]</tt><br>
-<p>Takes a sequence of midi events and returns list of pygame events. </p>
-<!--COMMENTS:pygame.midi.midis2events--> &nbsp;<br>
-<br></ul>
-
-
-<a name="pygame.midi.quit">
-<big><b>pygame.midi.quit</big></b><br><ul>
- <i>uninitialize the midi module</i><br>
- <tt>pygame.midi.quit(): return None</tt><br>
-<p>Called automatically atexit if you don't call it. </p>
-<p>It is safe to call this function more than once. </p>
-<!--COMMENTS:pygame.midi.quit--> &nbsp;<br>
-<br></ul>
-
-
-<a name="pygame.midi.time">
-<big><b>pygame.midi.time</big></b><br><ul>
- <i>returns the current time in ms of the PortMidi timer</i><br>
- <tt>pygame.midi.time(): return time</tt><br>
-<p>The time is reset to 0, when the module is inited. </p>
-<!--COMMENTS:pygame.midi.time--> &nbsp;<br>
-<br></ul>
-<br></ul>
-
-</body></html>
diff --git a/pygame/docs/ref/mixer.html b/pygame/docs/ref/mixer.html
deleted file mode 100755
index 01cb3f1..0000000
--- a/pygame/docs/ref/mixer.html
+++ /dev/null
@@ -1,466 +0,0 @@
-
-<html>
-<title>mixer - Pygame Documentation</title>
-<body bgcolor=#aaeebb text=#000000 link=#331111 vlink=#331111>
-
-
-<table cellpadding=0 cellspacing=0 border=0 style='border: 3px solid black;' width='100%'>
-<tr>
-<td bgcolor='#c2fc20' style='padding: 6px;' align=center valign=center><a href='http://www.pygame.org/'><img src='../pygame_tiny.gif' border=0 width=200 height=60></a><br><b>pygame documentation</b></td>
-<td bgcolor='#6aee28' style='border-left: 3px solid black; padding: 6px;' align=center valign=center>
- ||&nbsp;
- <a href=http://www.pygame.org>Pygame Home</a> &nbsp;||&nbsp;
- <a href=../index.html>Help Contents</a> &nbsp;||
- <a href=index.html>Reference Index</a> &nbsp;||
- <br>&nbsp;<br>
-
-<a href="camera.html">Camera</a>&nbsp;||&nbsp;
-<a href="cdrom.html">Cdrom</a>&nbsp;||&nbsp;
-<a href="color.html">Color</a>&nbsp;||&nbsp;
-<a href="cursors.html">Cursors</a>&nbsp;||&nbsp;
-<a href="display.html">Display</a>&nbsp;||&nbsp;
-<a href="draw.html">Draw</a>&nbsp;||&nbsp;
-<a href="event.html">Event</a>&nbsp;||&nbsp;
-<a href="examples.html">Examples</a>&nbsp;||&nbsp;
-<a href="font.html">Font</a>&nbsp;||&nbsp;
-<a href="gfxdraw.html">Gfxdraw</a>&nbsp;||&nbsp;
-<a href="image.html">Image</a>&nbsp;||&nbsp;
-<a href="joystick.html">Joystick</a>&nbsp;||&nbsp;
-<a href="key.html">Key</a>&nbsp;||&nbsp;
-<a href="locals.html">Locals</a>&nbsp;||&nbsp;
-<a href="mask.html">Mask</a>&nbsp;||&nbsp;
-<a href="midi.html">Midi</a>&nbsp;||&nbsp;
-<a href="mixer.html">Mixer</a>&nbsp;||&nbsp;
-<a href="mouse.html">Mouse</a>&nbsp;||&nbsp;
-<a href="movie.html">Movie</a>&nbsp;||&nbsp;
-<a href="music.html">Music</a>&nbsp;||&nbsp;
-<a href="overlay.html">Overlay</a>&nbsp;||&nbsp;
-<a href="pixelarray.html">Pixelarray</a>&nbsp;||&nbsp;
-<a href="pygame.html">Pygame</a>&nbsp;||&nbsp;
-<a href="rect.html">Rect</a>&nbsp;||&nbsp;
-<a href="scrap.html">Scrap</a>&nbsp;||&nbsp;
-<a href="sndarray.html">Sndarray</a>&nbsp;||&nbsp;
-<a href="sprite.html">Sprite</a>&nbsp;||&nbsp;
-<a href="surface.html">Surface</a>&nbsp;||&nbsp;
-<a href="surfarray.html">Surfarray</a>&nbsp;||&nbsp;
-<a href="tests.html">Tests</a>&nbsp;||&nbsp;
-<a href="time.html">Time</a>&nbsp;||&nbsp;
-<a href="transform.html">Transform</a>
-</td></tr></table>
-<br>
-
-
-<a name="pygame.mixer">
-<big><b>pygame.mixer</big></b><br><ul>
- <i>pygame module for loading and playing sounds</i><br>
-<ul><small><table>
- <tr><td><a href="mixer.html#pygame.mixer.init">pygame.mixer.init</a> - <font size=-1>initialize the mixer module</font></td><td>initialize the mixer module</td></tr>
- <tr><td><a href="mixer.html#pygame.mixer.pre_init">pygame.mixer.pre_init</a> - <font size=-1>preset the mixer init arguments</font></td><td>preset the mixer init arguments</td></tr>
- <tr><td><a href="mixer.html#pygame.mixer.quit">pygame.mixer.quit</a> - <font size=-1>uninitialize the mixer</font></td><td>uninitialize the mixer</td></tr>
- <tr><td><a href="mixer.html#pygame.mixer.get_init">pygame.mixer.get_init</a> - <font size=-1>test if the mixer is initialized</font></td><td>test if the mixer is initialized</td></tr>
- <tr><td><a href="mixer.html#pygame.mixer.stop">pygame.mixer.stop</a> - <font size=-1>stop playback of all sound channels</font></td><td>stop playback of all sound channels</td></tr>
- <tr><td><a href="mixer.html#pygame.mixer.pause">pygame.mixer.pause</a> - <font size=-1>temporarily stop playback of all sound channels</font></td><td>temporarily stop playback of all sound channels</td></tr>
- <tr><td><a href="mixer.html#pygame.mixer.unpause">pygame.mixer.unpause</a> - <font size=-1>resume paused playback of sound channels</font></td><td>resume paused playback of sound channels</td></tr>
- <tr><td><a href="mixer.html#pygame.mixer.fadeout">pygame.mixer.fadeout</a> - <font size=-1>fade out the volume on all sounds before stopping</font></td><td>fade out the volume on all sounds before stopping</td></tr>
- <tr><td><a href="mixer.html#pygame.mixer.set_num_channels">pygame.mixer.set_num_channels</a> - <font size=-1>set the total number of playback channels</font></td><td>set the total number of playback channels</td></tr>
- <tr><td><a href="mixer.html#pygame.mixer.get_num_channels">pygame.mixer.get_num_channels</a> - <font size=-1>get the total number of playback channels</font></td><td>get the total number of playback channels</td></tr>
- <tr><td><a href="mixer.html#pygame.mixer.set_reserved">pygame.mixer.set_reserved</a> - <font size=-1>reserve channels from being automatically used</font></td><td>reserve channels from being automatically used</td></tr>
- <tr><td><a href="mixer.html#pygame.mixer.find_channel">pygame.mixer.find_channel</a> - <font size=-1>find an unused channel</font></td><td>find an unused channel</td></tr>
- <tr><td><a href="mixer.html#pygame.mixer.get_busy">pygame.mixer.get_busy</a> - <font size=-1>test if any sound is being mixed</font></td><td>test if any sound is being mixed</td></tr>
- <tr><td><a href="mixer.html#pygame.mixer.Sound">pygame.mixer.Sound</a> - <font size=-1>Create a new Sound object from a file</font></td><td>Create a new Sound object from a file</td></tr>
- <tr><td><a href="mixer.html#pygame.mixer.Channel">pygame.mixer.Channel</a> - <font size=-1>Create a Channel object for controlling playback</font></td><td>Create a Channel object for controlling playback</td></tr>
-</table></small></ul>
-<p>This module contains classes for loading Sound objects and controlling playback. The mixer module is optional and depends on SDL_mixer. Your program should test that <tt>pygame.mixer</tt> is available and intialized before using it. </p>
-<p>The mixer module has a limited number of channels for playback of sounds. Usually programs tell pygame to start playing audio and it selects an available channel automatically. The default is 8 simultaneous channels, but complex programs can get more precise control over the number of channels and their use. </p>
-<p>All sound playback is mixed in background threads. When you begin to play a Sound object, it will return immediately while the sound continues to play. <tt>A</tt> single Sound object can also be actively played back multiple times. </p>
-<p>The mixer also has a special streaming channel. This is for music playback and is accessed through the <tt>pygame.mixer.music</tt> module. </p>
-<p>The mixer module must be initialized like other pygame modules, but it has some extra conditions. The <tt><a href="mixer.html#pygame.mixer.init">pygame.mixer.init</a> - <font size=-1>initialize the mixer module</font></tt> function takes several optional arguments to control the playback rate and sample size. Pygame will default to reasonable values, but pygame cannot perform Sound resampling, so the mixer should be initialized to match the values of your audio resources. </p>
-<p><tt>NOTE:</tt> Not to get less laggy sound, use a smaller buffer size. The default is set to reduce the chance of scratchy sounds on some computers. You can change the default buffer by calling <tt>pygame.mixer.pre_init</tt> before <tt>pygame.mixer.init</tt> or <tt>pygame.init</tt> is called. For example: <tt>pygame.mixer.pre_init(44100,-16,2</tt>, 1024) The default size was changed from 1024 to 3072 in pygame <tt>1.8</tt>. </p>
-<!--COMMENTS:pygame.mixer--> &nbsp;<br>
-
-
-<a name="pygame.mixer.init">
-<big><b>pygame.mixer.init</big></b><br><ul>
- <i>initialize the mixer module</i><br>
- <tt>pygame.mixer.init(frequency=22050, size=-16, channels=2, buffer=4096): return None</tt><br>
-<p>Initialize the mixer module for Sound loading and playback. The default arguments can be overridden to provide specific audio mixing. Keyword arguments are accepted. For backward compatibility where an argument is set zero the default value is used (possible changed by a pre_init call). </p>
-<p>The size argument represents how many bits are used for each audio sample. If the value is negative then signed sample values will be used. Positive values mean unsigned audio samples will be used. An invalid value raises an exception. </p>
-<p>The channels argument is used to specify whether to use mono or stereo. 1 for mono and 2 for stereo. No other values are supported (negative values are treated as 1, values greater than 2 as 2). </p>
-<p>The buffer argument controls the number of internal samples used in the sound mixer. The default value should work for most cases. It can be lowered to reduce latency, but sound dropout may occur. It can be raised to larger values to ensure playback never skips, but it will impose latency on sound playback. The buffer size must be a power of two (if not it is rounded up to the next nearest power of 2). </p>
-<p>Some platforms require the <tt>pygame.mixer</tt> module to be initialized after the display modules have initialized. The top level <tt><a href="pygame.html#pygame.init">pygame.init</a> - <font size=-1>initialize all imported pygame modules</font></tt> takes care of this automatically, but cannot pass any arguments to the mixer init. To solve this, mixer has a function <tt><a href="mixer.html#pygame.mixer.pre_init">pygame.mixer.pre_init</a> - <font size=-1>preset the mixer init arguments</font></tt> to set the proper defaults before the toplevel init is used. </p>
-<p>It is safe to call this more than once, but after the mixer is initialized you cannot change the playback arguments without first calling <tt><a href="mixer.html#pygame.mixer.quit">pygame.mixer.quit</a> - <font size=-1>uninitialize the mixer</font></tt>. </p>
-<!--COMMENTS:pygame.mixer.init--> &nbsp;<br>
-<br></ul>
-
-
-<a name="pygame.mixer.pre_init">
-<big><b>pygame.mixer.pre_init</big></b><br><ul>
- <i>preset the mixer init arguments</i><br>
- <tt>pygame.mixer.pre_init(frequency=22050, size=-16, channels=2, buffersize=4096): return None</tt><br>
-<p>Call pre_init to change the defaults used when the real <tt><a href="mixer.html#pygame.mixer.init">pygame.mixer.init</a> - <font size=-1>initialize the mixer module</font></tt> is called. Keyword arguments are accepted. The best way to set custom mixer playback values is to call <tt><a href="mixer.html#pygame.mixer.pre_init">pygame.mixer.pre_init</a> - <font size=-1>preset the mixer init arguments</font></tt> before calling the top level <tt><a href="pygame.html#pygame.init">pygame.init</a> - <font size=-1>initialize all imported pygame modules</font></tt>. For backward compatibility argument values of zero is replaced with the startup defaults. </p>
-<!--COMMENTS:pygame.mixer.pre_init--> &nbsp;<br>
-<br></ul>
-
-
-<a name="pygame.mixer.quit">
-<big><b>pygame.mixer.quit</big></b><br><ul>
- <i>uninitialize the mixer</i><br>
- <tt>pygame.mixer.quit(): return None</tt><br>
-<p>This will uninitialize <tt>pygame.mixer</tt>. All playback will stop and any loaded Sound objects may not be compatible with the mixer if it is reinitialized later. </p>
-<!--COMMENTS:pygame.mixer.quit--> &nbsp;<br>
-<br></ul>
-
-
-<a name="pygame.mixer.get_init">
-<big><b>pygame.mixer.get_init</big></b><br><ul>
- <i>test if the mixer is initialized</i><br>
- <tt>pygame.mixer.get_init(): return (frequency, format, channels)</tt><br>
-<p>If the mixer is initialized, this returns the playback arguments it is using. If the mixer has not been initialized this returns None </p>
-<!--COMMENTS:pygame.mixer.get_init--> &nbsp;<br>
-<br></ul>
-
-
-<a name="pygame.mixer.stop">
-<big><b>pygame.mixer.stop</big></b><br><ul>
- <i>stop playback of all sound channels</i><br>
- <tt>pygame.mixer.stop(): return None</tt><br>
-<p>This will stop all playback of all active mixer channels. </p>
-<!--COMMENTS:pygame.mixer.stop--> &nbsp;<br>
-<br></ul>
-
-
-<a name="pygame.mixer.pause">
-<big><b>pygame.mixer.pause</big></b><br><ul>
- <i>temporarily stop playback of all sound channels</i><br>
- <tt>pygame.mixer.pause(): return None</tt><br>
-<p>This will temporarily stop all playback on the active mixer channels. The playback can later be resumed with <tt><a href="mixer.html#pygame.mixer.unpause">pygame.mixer.unpause</a> - <font size=-1>resume paused playback of sound channels</font></tt> </p>
-<!--COMMENTS:pygame.mixer.pause--> &nbsp;<br>
-<br></ul>
-
-
-<a name="pygame.mixer.unpause">
-<big><b>pygame.mixer.unpause</big></b><br><ul>
- <i>resume paused playback of sound channels</i><br>
- <tt>pygame.mixer.unpause(): return None</tt><br>
-<p>This will resume all active sound channels after they have been paused. </p>
-<!--COMMENTS:pygame.mixer.unpause--> &nbsp;<br>
-<br></ul>
-
-
-<a name="pygame.mixer.fadeout">
-<big><b>pygame.mixer.fadeout</big></b><br><ul>
- <i>fade out the volume on all sounds before stopping</i><br>
- <tt>pygame.mixer.fadeout(time): return None</tt><br>
-<p>This will fade out the volume on all active channels over the time argument in milliseconds. After the sound is muted the playback will stop. </p>
-<!--COMMENTS:pygame.mixer.fadeout--> &nbsp;<br>
-<br></ul>
-
-
-<a name="pygame.mixer.set_num_channels">
-<big><b>pygame.mixer.set_num_channels</big></b><br><ul>
- <i>set the total number of playback channels</i><br>
- <tt>pygame.mixer.set_num_channels(count): return None</tt><br>
-<p>Sets the number of available channels for the mixer. The default value is 8. The value can be increased or decreased. If the value is decreased, sounds playing on the truncated channels are stopped. </p>
-<!--COMMENTS:pygame.mixer.set_num_channels--> &nbsp;<br>
-<br></ul>
-
-
-<a name="pygame.mixer.get_num_channels">
-<big><b>pygame.mixer.get_num_channels</big></b><br><ul>
- <i>get the total number of playback channels</i><br>
-<p>Returns the number of currently active playback channels. </p>
-<!--COMMENTS:pygame.mixer.get_num_channels--> &nbsp;<br>
-<br></ul>
-
-
-<a name="pygame.mixer.set_reserved">
-<big><b>pygame.mixer.set_reserved</big></b><br><ul>
- <i>reserve channels from being automatically used</i><br>
- <tt>pygame.mixer.set_reserved(count): return None</tt><br>
-<p>The mixer can reserve any number of channels that will not be automatically selected for playback by Sounds. If sounds are currently playing on the reserved channels they will not be stopped. </p>
-<p>This allows the application to reserve a specific number of channels for important sounds that must not be dropped or have a guaranteed channel to play on. </p>
-<!--COMMENTS:pygame.mixer.set_reserved--> &nbsp;<br>
-<br></ul>
-
-
-<a name="pygame.mixer.find_channel">
-<big><b>pygame.mixer.find_channel</big></b><br><ul>
- <i>find an unused channel</i><br>
- <tt>pygame.mixer.find_channel(force=False): return Channel</tt><br>
-<p>This will find and return an inactive Channel object. If there are no inactive Channels this function will return None. If there are no inactive channels and the force argument is True, this will find the Channel with the longest running Sound and return it. </p>
-<p>If the mixer has reserved channels from <tt><a href="mixer.html#pygame.mixer.set_reserved">pygame.mixer.set_reserved</a> - <font size=-1>reserve channels from being automatically used</font></tt> then those channels will not be returned here. </p>
-<!--COMMENTS:pygame.mixer.find_channel--> &nbsp;<br>
-<br></ul>
-
-
-<a name="pygame.mixer.get_busy">
-<big><b>pygame.mixer.get_busy</big></b><br><ul>
- <i>test if any sound is being mixed</i><br>
- <tt>pygame.mixer.get_busy(): return bool</tt><br>
-<p>Returns True if the mixer is busy mixing any channels. If the mixer is idle then this return False. </p>
-<!--COMMENTS:pygame.mixer.get_busy--> &nbsp;<br>
-<br></ul>
-
-
-<a name="pygame.mixer.Sound">
-<big><b>pygame.mixer.Sound</big></b><br><ul>
- <i>Create a new Sound object from a file</i><br>
- <tt>pygame.mixer.Sound(filename): return Sound</tt><br>
- <tt>pygame.mixer.Sound(buffer): return Sound</tt><br>
- <tt>pygame.mixer.Sound(object): return Sound</tt><br>
-<ul><small><table>
- <tr><td><a href="mixer.html#Sound.play">Sound.play</a> - <font size=-1>begin sound playback</font></td><td>begin sound playback</td></tr>
- <tr><td><a href="mixer.html#Sound.stop">Sound.stop</a> - <font size=-1>stop sound playback</font></td><td>stop sound playback</td></tr>
- <tr><td><a href="mixer.html#Sound.fadeout">Sound.fadeout</a> - <font size=-1>stop sound playback after fading out</font></td><td>stop sound playback after fading out</td></tr>
- <tr><td><a href="mixer.html#Sound.set_volume">Sound.set_volume</a> - <font size=-1>set the playback volume for this Sound</font></td><td>set the playback volume for this Sound</td></tr>
- <tr><td><a href="mixer.html#Sound.get_volume">Sound.get_volume</a> - <font size=-1>get the playback volume</font></td><td>get the playback volume</td></tr>
- <tr><td><a href="mixer.html#Sound.get_num_channels">Sound.get_num_channels</a> - <font size=-1>count how many times this Sound is playing</font></td><td>count how many times this Sound is playing</td></tr>
- <tr><td><a href="mixer.html#Sound.get_length">Sound.get_length</a> - <font size=-1>get the length of the Sound</font></td><td>get the length of the Sound</td></tr>
- <tr><td><a href="mixer.html#Sound.get_buffer">Sound.get_buffer</a> - <font size=-1>acquires a buffer object for the sameples of the Sound.</font></td><td>acquires a buffer object for the sameples of the Sound.</td></tr>
-</table></small></ul>
-<p>Load a new sound buffer from a filename, a python file object or a readable buffer object. Limited resampling will be performed to help the sample match the initialize arguments for the mixer. </p>
-<p>The Sound object represents actual sound sample data. Methods that change the state of the Sound object will the all instances of the Sound playback. </p>
-<p>The Sound can be loaded from an <tt>OGG</tt> audio file or from an uncompressed <tt>WAV</tt>. </p>
-<p>Note: The buffer will be copied internally, no data will be shared between it and the Sound object. </p>
-<p><tt>pygame.mixer.Sound(buffer)</tt> is new in pygame <tt>1.8</tt> </p>
-<!--COMMENTS:pygame.mixer.Sound--> &nbsp;<br>
-
-
-<a name="Sound.play">
-<big><b>Sound.play</big></b><br><ul>
- <i>begin sound playback</i><br>
- <tt>Sound.play(loops=0, maxtime=0, fade_ms=0): return Channel</tt><br>
-<p>Begin playback of the Sound <tt>(i.e.</tt>, on the computer's speakers) on an available Channel. This will forcibly select a Channel, so playback may cut off a currently playing sound if necessary. </p>
-<p>The loops argument controls how many times the sample will be repeated after being played the first time. <tt>A</tt> value of 5 means that the sound will be played once, then repeated five times, and so is played a total of six times. The default value (zero) means the Sound is not repeated, and so is only played once. If loops is set to -1 the Sound will loop indefinitely (though you can still call stop() to stop it). </p>
-<p>The maxtime argument can be used to stop playback after a given number of milliseconds. </p>
-<p>The fade_ms argument will make the sound start playing at 0 volume and fade up to full volume over the time given. The sample may end before the fade-in is complete. </p>
-<p>This returns the Channel object for the channel that was selected. </p>
-<!--COMMENTS:Sound.play--> &nbsp;<br>
-<br></ul>
-
-
-<a name="Sound.stop">
-<big><b>Sound.stop</big></b><br><ul>
- <i>stop sound playback</i><br>
- <tt>Sound.stop(): return None</tt><br>
-<p>This will stop the playback of this Sound on any active Channels. </p>
-<!--COMMENTS:Sound.stop--> &nbsp;<br>
-<br></ul>
-
-
-<a name="Sound.fadeout">
-<big><b>Sound.fadeout</big></b><br><ul>
- <i>stop sound playback after fading out</i><br>
- <tt>Sound.fadeout(time): return None</tt><br>
-<p>This will stop playback of the sound after fading it out over the time argument in milliseconds. The Sound will fade and stop on all actively playing channels. </p>
-<!--COMMENTS:Sound.fadeout--> &nbsp;<br>
-<br></ul>
-
-
-<a name="Sound.set_volume">
-<big><b>Sound.set_volume</big></b><br><ul>
- <i>set the playback volume for this Sound</i><br>
- <tt>Sound.set_volume(value): return None</tt><br>
-<p>This will set the playback volume (loudness) for this Sound. This will immediately affect the Sound if it is playing. It will also affect any future playback of this Sound. The argument is a value from <tt>0.0</tt> to <tt>1.0</tt>. </p>
-<!--COMMENTS:Sound.set_volume--> &nbsp;<br>
-<br></ul>
-
-
-<a name="Sound.get_volume">
-<big><b>Sound.get_volume</big></b><br><ul>
- <i>get the playback volume</i><br>
- <tt>Sound.get_volume(): return value</tt><br>
-<p>Return a value from <tt>0.0</tt> to <tt>1.0</tt> representing the volume for this Sound. </p>
-<!--COMMENTS:Sound.get_volume--> &nbsp;<br>
-<br></ul>
-
-
-<a name="Sound.get_num_channels">
-<big><b>Sound.get_num_channels</big></b><br><ul>
- <i>count how many times this Sound is playing</i><br>
- <tt>Sound.get_num_channels(): return count</tt><br>
-<p>Return the number of active channels this sound is playing on. </p>
-<!--COMMENTS:Sound.get_num_channels--> &nbsp;<br>
-<br></ul>
-
-
-<a name="Sound.get_length">
-<big><b>Sound.get_length</big></b><br><ul>
- <i>get the length of the Sound</i><br>
- <tt>Sound.get_length(): return seconds</tt><br>
-<p>Return the length of this Sound in seconds. </p>
-<!--COMMENTS:Sound.get_length--> &nbsp;<br>
-<br></ul>
-
-
-<a name="Sound.get_buffer">
-<big><b>Sound.get_buffer</big></b><br><ul>
- <i>acquires a buffer object for the sameples of the Sound.</i><br>
- <tt>Sound.get_buffer(): return BufferProxy</tt><br>
-<p>Return a buffer object for the Sound samples. The buffer can be used for direct access and manipulation. </p>
-<p>New in pygame <tt>1.8</tt>. </p>
-<!--COMMENTS:Sound.get_buffer--> &nbsp;<br>
-<br></ul>
-<br></ul>
-
-
-<a name="pygame.mixer.Channel">
-<big><b>pygame.mixer.Channel</big></b><br><ul>
- <i>Create a Channel object for controlling playback</i><br>
- <tt>pygame.mixer.Channel(id): return Channel</tt><br>
-<ul><small><table>
- <tr><td><a href="mixer.html#Channel.play">Channel.play</a> - <font size=-1>play a Sound on a specific Channel</font></td><td>play a Sound on a specific Channel</td></tr>
- <tr><td><a href="mixer.html#Channel.stop">Channel.stop</a> - <font size=-1>stop playback on a Channel</font></td><td>stop playback on a Channel</td></tr>
- <tr><td><a href="mixer.html#Channel.pause">Channel.pause</a> - <font size=-1>temporarily stop playback of a channel</font></td><td>temporarily stop playback of a channel</td></tr>
- <tr><td><a href="mixer.html#Channel.unpause">Channel.unpause</a> - <font size=-1>resume pause playback of a channel</font></td><td>resume pause playback of a channel</td></tr>
- <tr><td><a href="mixer.html#Channel.fadeout">Channel.fadeout</a> - <font size=-1>stop playback after fading channel out</font></td><td>stop playback after fading channel out</td></tr>
- <tr><td><a href="mixer.html#Channel.set_volume">Channel.set_volume</a> - <font size=-1>set the volume of a playing channel</font></td><td>set the volume of a playing channel</td></tr>
- <tr><td><a href="mixer.html#Channel.get_volume">Channel.get_volume</a> - <font size=-1>get the volume of the playing channel</font></td><td>get the volume of the playing channel</td></tr>
- <tr><td><a href="mixer.html#Channel.get_busy">Channel.get_busy</a> - <font size=-1>check if the channel is active</font></td><td>check if the channel is active</td></tr>
- <tr><td><a href="mixer.html#Channel.get_sound">Channel.get_sound</a> - <font size=-1>get the currently playing Sound</font></td><td>get the currently playing Sound</td></tr>
- <tr><td><a href="mixer.html#Channel.queue">Channel.queue</a> - <font size=-1>queue a Sound object to follow the current</font></td><td>queue a Sound object to follow the current</td></tr>
- <tr><td><a href="mixer.html#Channel.get_queue">Channel.get_queue</a> - <font size=-1>return any Sound that is queued</font></td><td>return any Sound that is queued</td></tr>
- <tr><td><a href="mixer.html#Channel.set_endevent">Channel.set_endevent</a> - <font size=-1>have the channel send an event when playback stops</font></td><td>have the channel send an event when playback stops</td></tr>
- <tr><td><a href="mixer.html#Channel.get_endevent">Channel.get_endevent</a> - <font size=-1>get the event a channel sends when playback stops</font></td><td>get the event a channel sends when playback stops</td></tr>
-</table></small></ul>
-<p>Return a Channel object for one of the current channels. The id must be a value from 0 to the value of <tt><a href="mixer.html#pygame.mixer.get_num_channels">pygame.mixer.get_num_channels</a> - <font size=-1>get the total number of playback channels</font></tt>. </p>
-<p>The Channel object can be used to get fine control over the playback of Sounds. <tt>A</tt> channel can only playback a single Sound at time. Using channels is entirely optional since pygame can manage them by default. </p>
-<!--COMMENTS:pygame.mixer.Channel--> &nbsp;<br>
-
-
-<a name="Channel.play">
-<big><b>Channel.play</big></b><br><ul>
- <i>play a Sound on a specific Channel</i><br>
- <tt>Channel.play(Sound, loops=0, maxtime=0, fade_ms=0): return None</tt><br>
-<p>This will begin playback of a Sound on a specific Channel. If the Channel is currently playing any other Sound it will be stopped. </p>
-<p>The loops argument has the same meaning as in <tt>Sound.play():</tt> it is the number of times to repeat the sound after the first time. If it is 3, the sound will be played 4 times (the first time, then three more). If loops is -1 then the playback will repeat indefinitely. </p>
-<p>As in <tt><a href="mixer.html#Sound.play">Sound.play</a> - <font size=-1>begin sound playback</font></tt>, the maxtime argument can be used to stop playback of the Sound after a given number of milliseconds. </p>
-<p>As in <tt><a href="mixer.html#Sound.play">Sound.play</a> - <font size=-1>begin sound playback</font></tt>, the fade_ms argument can be used fade in the sound. </p>
-<!--COMMENTS:Channel.play--> &nbsp;<br>
-<br></ul>
-
-
-<a name="Channel.stop">
-<big><b>Channel.stop</big></b><br><ul>
- <i>stop playback on a Channel</i><br>
- <tt>Channel.stop(): return None</tt><br>
-<p>Stop sound playback on a channel. After playback is stopped the channel becomes available for new Sounds to play on it. </p>
-<!--COMMENTS:Channel.stop--> &nbsp;<br>
-<br></ul>
-
-
-<a name="Channel.pause">
-<big><b>Channel.pause</big></b><br><ul>
- <i>temporarily stop playback of a channel</i><br>
- <tt>Channel.pause(): return None</tt><br>
-<p>Temporarily stop the playback of sound on a channel. It can be resumed at a later time with <tt><a href="mixer.html#Channel.unpause">Channel.unpause</a> - <font size=-1>resume pause playback of a channel</font></tt> </p>
-<!--COMMENTS:Channel.pause--> &nbsp;<br>
-<br></ul>
-
-
-<a name="Channel.unpause">
-<big><b>Channel.unpause</big></b><br><ul>
- <i>resume pause playback of a channel</i><br>
- <tt>Channel.unpause(): return None</tt><br>
-<p>Resume the playback on a paused channel. </p>
-<!--COMMENTS:Channel.unpause--> &nbsp;<br>
-<br></ul>
-
-
-<a name="Channel.fadeout">
-<big><b>Channel.fadeout</big></b><br><ul>
- <i>stop playback after fading channel out</i><br>
- <tt>Channel.fadeout(time): return None</tt><br>
-<p>Stop playback of a channel after fading out the sound over the given time argument in milliseconds. </p>
-<!--COMMENTS:Channel.fadeout--> &nbsp;<br>
-<br></ul>
-
-
-<a name="Channel.set_volume">
-<big><b>Channel.set_volume</big></b><br><ul>
- <i>set the volume of a playing channel</i><br>
- <tt>Channel.set_volume(value): return None</tt><br>
- <tt>Channel.set_volume(left, right): return None</tt><br>
-<p>Set the volume (loudness) of a playing sound. When a channel starts to play its volume value is reset. This only affects the current sound. The value argument is between <tt>0.0</tt> and <tt>1.0</tt>. </p>
-<p>If one argument is passed, it will be the volume of both speakers. If two arguments are passed and the mixer is in stereo mode, the first argument will be the volume of the left speaker and the second will be the volume of the right speaker. (If the second argument is None, the first argument will be the volume of both <tt>speakers.)</tt> </p>
-<p>If the channel is playing a Sound on which set_volume() has also been called, both calls are taken into account. For example: </p>
-<pre> sound = pygame.mixer.Sound("s.wav")
- channel = s.play() # Sound plays at full volume by default
- sound.set_volume(0.9) # Now plays at 90% of full volume.
- sound.set_volume(0.6) # Now plays at 60% (previous value replaced).
- channel.set_volume(0.5) # Now plays at 30% (0.6 * 0.5).
-</pre>
-<!--COMMENTS:Channel.set_volume--> &nbsp;<br>
-<br></ul>
-
-
-<a name="Channel.get_volume">
-<big><b>Channel.get_volume</big></b><br><ul>
- <i>get the volume of the playing channel</i><br>
- <tt>Channel.get_volume(): return value</tt><br>
-<p>Return the volume of the channel for the current playing sound. This does not take into account stereo separation used by <tt>Channel.set_volume</tt>. The Sound object also has its own volume which is mixed with the channel. </p>
-<!--COMMENTS:Channel.get_volume--> &nbsp;<br>
-<br></ul>
-
-
-<a name="Channel.get_busy">
-<big><b>Channel.get_busy</big></b><br><ul>
- <i>check if the channel is active</i><br>
- <tt>Channel.get_busy(): return bool</tt><br>
-<p>Returns true if the channel is activily mixing sound. If the channel is idle this returns False. </p>
-<!--COMMENTS:Channel.get_busy--> &nbsp;<br>
-<br></ul>
-
-
-<a name="Channel.get_sound">
-<big><b>Channel.get_sound</big></b><br><ul>
- <i>get the currently playing Sound</i><br>
- <tt>Channel.get_sound(): return Sound</tt><br>
-<p>Return the actual Sound object currently playing on this channel. If the channel is idle None is returned. </p>
-<!--COMMENTS:Channel.get_sound--> &nbsp;<br>
-<br></ul>
-
-
-<a name="Channel.queue">
-<big><b>Channel.queue</big></b><br><ul>
- <i>queue a Sound object to follow the current</i><br>
- <tt>Channel.queue(Sound): return None</tt><br>
-<p>When a Sound is queued on a Channel, it will begin playing immediately after the current Sound is finished. Each channel can only have a single Sound queued at a time. The queued Sound will only play if the current playback finished automatically. It is cleared on any other call to <tt><a href="mixer.html#Channel.stop">Channel.stop</a> - <font size=-1>stop playback on a Channel</font></tt> or <tt><a href="mixer.html#Channel.play">Channel.play</a> - <font size=-1>play a Sound on a specific Channel</font></tt>. </p>
-<p>If there is no sound actively playing on the Channel then the Sound will begin playing immediately. </p>
-<!--COMMENTS:Channel.queue--> &nbsp;<br>
-<br></ul>
-
-
-<a name="Channel.get_queue">
-<big><b>Channel.get_queue</big></b><br><ul>
- <i>return any Sound that is queued</i><br>
- <tt>Channel.get_queue(): return Sound</tt><br>
-<p>If a Sound is already queued on this channel it will be returned. Once the queued sound begins playback it will no longer be on the queue. </p>
-<!--COMMENTS:Channel.get_queue--> &nbsp;<br>
-<br></ul>
-
-
-<a name="Channel.set_endevent">
-<big><b>Channel.set_endevent</big></b><br><ul>
- <i>have the channel send an event when playback stops</i><br>
- <tt>Channel.set_endevent(): return None</tt><br>
- <tt>Channel.set_endevent(type): return None</tt><br>
-<p>When an endevent is set for a channel, it will send an event to the pygame queue every time a sound finishes playing on that channel (not just the first time). Use <tt><a href="event.html#pygame.event.get">pygame.event.get</a> - <font size=-1>get events from the queue</font></tt> to retrieve the endevent once it's sent. </p>
-<p>Note that if you called <tt>Sound.play(n)</tt> or <tt>Channel.play(sound,n)</tt>, the end event is sent only once: after the sound has been played "n+1" times (see the documentation of <tt>Sound.play)</tt>. </p>
-<p>If <tt><a href="mixer.html#Channel.stop">Channel.stop</a> - <font size=-1>stop playback on a Channel</font></tt> or <tt><a href="mixer.html#Channel.play">Channel.play</a> - <font size=-1>play a Sound on a specific Channel</font></tt> is called while the sound was still playing, the event will be posted immediately. </p>
-<p>The type argument will be the event id sent to the queue. This can be any valid event type, but a good choice would be a value between <tt>pygame.locals.USEREVENT</tt> and <tt>pygame.locals.NUMEVENTS</tt>. If no type argument is given then the Channel will stop sending endevents. </p>
-<!--COMMENTS:Channel.set_endevent--> &nbsp;<br>
-<br></ul>
-
-
-<a name="Channel.get_endevent">
-<big><b>Channel.get_endevent</big></b><br><ul>
- <i>get the event a channel sends when playback stops</i><br>
- <tt>Channel.get_endevent(): return type</tt><br>
-<p>Returns the event type to be sent every time the Channel finishes playback of a Sound. If there is no endevent the function returns <tt>pygame.NOEVENT</tt>. </p>
-<!--COMMENTS:Channel.get_endevent--> &nbsp;<br>
-<br></ul>
-<br></ul>
-<br></ul>
-
-</body></html>
diff --git a/pygame/docs/ref/mouse.html b/pygame/docs/ref/mouse.html
deleted file mode 100755
index 353f1a3..0000000
--- a/pygame/docs/ref/mouse.html
+++ /dev/null
@@ -1,153 +0,0 @@
-
-<html>
-<title>mouse - Pygame Documentation</title>
-<body bgcolor=#aaeebb text=#000000 link=#331111 vlink=#331111>
-
-
-<table cellpadding=0 cellspacing=0 border=0 style='border: 3px solid black;' width='100%'>
-<tr>
-<td bgcolor='#c2fc20' style='padding: 6px;' align=center valign=center><a href='http://www.pygame.org/'><img src='../pygame_tiny.gif' border=0 width=200 height=60></a><br><b>pygame documentation</b></td>
-<td bgcolor='#6aee28' style='border-left: 3px solid black; padding: 6px;' align=center valign=center>
- ||&nbsp;
- <a href=http://www.pygame.org>Pygame Home</a> &nbsp;||&nbsp;
- <a href=../index.html>Help Contents</a> &nbsp;||
- <a href=index.html>Reference Index</a> &nbsp;||
- <br>&nbsp;<br>
-
-<a href="camera.html">Camera</a>&nbsp;||&nbsp;
-<a href="cdrom.html">Cdrom</a>&nbsp;||&nbsp;
-<a href="color.html">Color</a>&nbsp;||&nbsp;
-<a href="cursors.html">Cursors</a>&nbsp;||&nbsp;
-<a href="display.html">Display</a>&nbsp;||&nbsp;
-<a href="draw.html">Draw</a>&nbsp;||&nbsp;
-<a href="event.html">Event</a>&nbsp;||&nbsp;
-<a href="examples.html">Examples</a>&nbsp;||&nbsp;
-<a href="font.html">Font</a>&nbsp;||&nbsp;
-<a href="gfxdraw.html">Gfxdraw</a>&nbsp;||&nbsp;
-<a href="image.html">Image</a>&nbsp;||&nbsp;
-<a href="joystick.html">Joystick</a>&nbsp;||&nbsp;
-<a href="key.html">Key</a>&nbsp;||&nbsp;
-<a href="locals.html">Locals</a>&nbsp;||&nbsp;
-<a href="mask.html">Mask</a>&nbsp;||&nbsp;
-<a href="midi.html">Midi</a>&nbsp;||&nbsp;
-<a href="mixer.html">Mixer</a>&nbsp;||&nbsp;
-<a href="mouse.html">Mouse</a>&nbsp;||&nbsp;
-<a href="movie.html">Movie</a>&nbsp;||&nbsp;
-<a href="music.html">Music</a>&nbsp;||&nbsp;
-<a href="overlay.html">Overlay</a>&nbsp;||&nbsp;
-<a href="pixelarray.html">Pixelarray</a>&nbsp;||&nbsp;
-<a href="pygame.html">Pygame</a>&nbsp;||&nbsp;
-<a href="rect.html">Rect</a>&nbsp;||&nbsp;
-<a href="scrap.html">Scrap</a>&nbsp;||&nbsp;
-<a href="sndarray.html">Sndarray</a>&nbsp;||&nbsp;
-<a href="sprite.html">Sprite</a>&nbsp;||&nbsp;
-<a href="surface.html">Surface</a>&nbsp;||&nbsp;
-<a href="surfarray.html">Surfarray</a>&nbsp;||&nbsp;
-<a href="tests.html">Tests</a>&nbsp;||&nbsp;
-<a href="time.html">Time</a>&nbsp;||&nbsp;
-<a href="transform.html">Transform</a>
-</td></tr></table>
-<br>
-
-
-<a name="pygame.mouse">
-<big><b>pygame.mouse</big></b><br><ul>
- <i>pygame module to work with the mouse</i><br>
-<ul><small><table>
- <tr><td><a href="mouse.html#pygame.mouse.get_pressed">pygame.mouse.get_pressed</a> - <font size=-1>get the state of the mouse buttons</font></td><td>get the state of the mouse buttons</td></tr>
- <tr><td><a href="mouse.html#pygame.mouse.get_pos">pygame.mouse.get_pos</a> - <font size=-1>get the mouse cursor position</font></td><td>get the mouse cursor position</td></tr>
- <tr><td><a href="mouse.html#pygame.mouse.get_rel">pygame.mouse.get_rel</a> - <font size=-1>get the amount of mouse movement</font></td><td>get the amount of mouse movement</td></tr>
- <tr><td><a href="mouse.html#pygame.mouse.set_pos">pygame.mouse.set_pos</a> - <font size=-1>set the mouse cursor position</font></td><td>set the mouse cursor position</td></tr>
- <tr><td><a href="mouse.html#pygame.mouse.set_visible">pygame.mouse.set_visible</a> - <font size=-1>hide or show the mouse cursor</font></td><td>hide or show the mouse cursor</td></tr>
- <tr><td><a href="mouse.html#pygame.mouse.get_focused">pygame.mouse.get_focused</a> - <font size=-1>check if the display is receiving mouse input</font></td><td>check if the display is receiving mouse input</td></tr>
- <tr><td><a href="mouse.html#pygame.mouse.set_cursor">pygame.mouse.set_cursor</a> - <font size=-1>set the image for the system mouse cursor</font></td><td>set the image for the system mouse cursor</td></tr>
- <tr><td><a href="mouse.html#pygame.mouse.get_cursor">pygame.mouse.get_cursor</a> - <font size=-1>get the image for the system mouse cursor</font></td><td>get the image for the system mouse cursor</td></tr>
-</table></small></ul>
-<p>The mouse functions can be used to get the current state of the mouse device. These functions can also alter the system cursor for the mouse. </p>
-<p>When the display mode is set, the event queue will start receiving mouse events. The mouse buttons generate <tt>pygame.MOUSEBUTTONDOWN</tt> and <tt>pygame.MOUSEBUTTONUP</tt> events when they are pressed and released. These events contain a button attribute representing which button was pressed. The mouse wheel will generate <tt>pygame.MOUSEBUTTONDOWN</tt> events when rolled. The button will be set to 4 when the wheel is rolled up, and to button 5 when the wheel is rolled down. Anytime the mouse is moved it generates a <tt>pygame.MOUSEMOTION</tt> event. The mouse movement is broken into small and accurate motion events. As the mouse is moving many motion events will be placed on the queue. Mouse motion events that are not properly cleaned from the event queue are the primary reason the event queue fills up. </p>
-<p>If the mouse cursor is hidden, and input is grabbed to the current display the mouse will enter a virtual input mode, where the relative movements of the mouse will never be stopped by the borders of the screen. See the functions <tt><a href="mouse.html#pygame.mouse.set_visible">pygame.mouse.set_visible</a> - <font size=-1>hide or show the mouse cursor</font></tt> and <tt><a href="event.html#pygame.event.set_grab">pygame.event.set_grab</a> - <font size=-1>control the sharing of input devices with other applications</font></tt> to get this configured. </p>
-<!--COMMENTS:pygame.mouse--> &nbsp;<br>
-
-
-<a name="pygame.mouse.get_pressed">
-<big><b>pygame.mouse.get_pressed</big></b><br><ul>
- <i>get the state of the mouse buttons</i><br>
- <tt>pygame.moouse.get_pressed(): return (button1, button2, button3)</tt><br>
-<p>Returns a sequence of booleans representing the state of all the mouse buttons. <tt>A</tt> true value means the mouse is currently being pressed at the time of the call. </p>
-<p>Note, to get all of the mouse events it is better to use either </p>
-<pre> pygame.event.wait() or pygame.event.get() and check all of those events
-</pre><p>to see if they are <tt>MOUSEBUTTONDOWN</tt>, <tt>MOUSEBUTTONUP</tt>, or <tt>MOUSEMOTION</tt>. </p>
-<p>Note, that on <tt>X11</tt> some XServers use middle button emulation. When you click both buttons 1 and 3 at the same time a 2 button event can be emitted. </p>
-<p>Note, remember to call <tt><a href="event.html#pygame.event.get">pygame.event.get</a> - <font size=-1>get events from the queue</font></tt> before this function. Otherwise it will not work. </p>
-<!--COMMENTS:pygame.mouse.get_pressed--> &nbsp;<br>
-<br></ul>
-
-
-<a name="pygame.mouse.get_pos">
-<big><b>pygame.mouse.get_pos</big></b><br><ul>
- <i>get the mouse cursor position</i><br>
- <tt>pygame.mouse.get_pos(): return (x, y)</tt><br>
-<p>Returns the <tt>X</tt> and <tt>Y</tt> position of the mouse cursor. The position is relative the the top-left corner of the display. The cursor position can be located outside of the display window, but is always constrained to the screen. </p>
-<!--COMMENTS:pygame.mouse.get_pos--> &nbsp;<br>
-<br></ul>
-
-
-<a name="pygame.mouse.get_rel">
-<big><b>pygame.mouse.get_rel</big></b><br><ul>
- <i>get the amount of mouse movement</i><br>
- <tt>pygame.mouse.get_rel(): return (x, y)</tt><br>
-<p>Returns the amount of movement in <tt>X</tt> and <tt>Y</tt> since the previous call to this function. The relative movement of the mouse cursor is constrained to the edges of the screen, but see the virtual input mouse mode for a way around this. Virtual input mode is described at the top of the page. </p>
-<!--COMMENTS:pygame.mouse.get_rel--> &nbsp;<br>
-<br></ul>
-
-
-<a name="pygame.mouse.set_pos">
-<big><b>pygame.mouse.set_pos</big></b><br><ul>
- <i>set the mouse cursor position</i><br>
- <tt>pygame.mouse.set_pos([x, y]): return None</tt><br>
-<p>Set the current mouse position to arguments given. If the mouse cursor is visible it will jump to the new coordinates. Moving the mouse will generate a new <tt>pygaqme.MOUSEMOTION</tt> event. </p>
-<!--COMMENTS:pygame.mouse.set_pos--> &nbsp;<br>
-<br></ul>
-
-
-<a name="pygame.mouse.set_visible">
-<big><b>pygame.mouse.set_visible</big></b><br><ul>
- <i>hide or show the mouse cursor</i><br>
- <tt>pygame.mouse.set_visible(bool): return bool</tt><br>
-<p>If the bool argument is true, the mouse cursor will be visible. This will return the previous visible state of the cursor. </p>
-<!--COMMENTS:pygame.mouse.set_visible--> &nbsp;<br>
-<br></ul>
-
-
-<a name="pygame.mouse.get_focused">
-<big><b>pygame.mouse.get_focused</big></b><br><ul>
- <i>check if the display is receiving mouse input</i><br>
- <tt>pygame.mouse.get_focused(): return bool</tt><br>
-<p>Returns true when pygame is receiving mouse input events (or, in windowing terminology, is "active" or has the "focus"). </p>
-<p>This method is most useful when working in a window. By contrast, in full-screen mode, this method always returns true. </p>
-<p>Note: under <tt>MS</tt> Windows, the window that has the mouse focus also has the keyboard focus. But under X-Windows, one window can receive mouse events and another receive keyboard events. <tt><a href="mouse.html#pygame.mouse.get_focused">pygame.mouse.get_focused</a> - <font size=-1>check if the display is receiving mouse input</font></tt> indicates whether the pygame window receives mouse events. </p>
-<!--COMMENTS:pygame.mouse.get_focused--> &nbsp;<br>
-<br></ul>
-
-
-<a name="pygame.mouse.set_cursor">
-<big><b>pygame.mouse.set_cursor</big></b><br><ul>
- <i>set the image for the system mouse cursor</i><br>
- <tt>pygame.mouse.set_cursor(size, hotspot, xormasks, andmasks): return None</tt><br>
-<p>When the mouse cursor is visible, it will be displayed as a black and white bitmap using the given bitmask arrays. The size is a sequence containing the cursor width and height. Hotspot is a sequence containing the cursor hotspot position. xormasks is a sequence of bytes containing the cursor xor data masks. Lastly is andmasks, a sequence of bytes containting the cursor bitmask data. </p>
-<p>Width must be a multiple of 8, and the mask arrays must be the correct size for the given width and height. Otherwise an exception is raised. </p>
-<p>See the <tt>pygame.cursor</tt> module for help creating default and custom masks for the system cursor. </p>
-<!--COMMENTS:pygame.mouse.set_cursor--> &nbsp;<br>
-<br></ul>
-
-
-<a name="pygame.mouse.get_cursor">
-<big><b>pygame.mouse.get_cursor</big></b><br><ul>
- <i>get the image for the system mouse cursor</i><br>
- <tt>pygame.mouse.get_cursor(): return (size, hotspot, xormasks, andmasks)</tt><br>
-<p>Get the information about the mouse system cursor. The return value is the same data as the arguments passed into <tt><a href="mouse.html#pygame.mouse.set_cursor">pygame.mouse.set_cursor</a> - <font size=-1>set the image for the system mouse cursor</font></tt>. </p>
-<!--COMMENTS:pygame.mouse.get_cursor--> &nbsp;<br>
-<br></ul>
-<br></ul>
-
-</body></html>
diff --git a/pygame/docs/ref/movie.html b/pygame/docs/ref/movie.html
deleted file mode 100755
index 54e2b6a..0000000
--- a/pygame/docs/ref/movie.html
+++ /dev/null
@@ -1,232 +0,0 @@
-
-<html>
-<title>movie - Pygame Documentation</title>
-<body bgcolor=#aaeebb text=#000000 link=#331111 vlink=#331111>
-
-
-<table cellpadding=0 cellspacing=0 border=0 style='border: 3px solid black;' width='100%'>
-<tr>
-<td bgcolor='#c2fc20' style='padding: 6px;' align=center valign=center><a href='http://www.pygame.org/'><img src='../pygame_tiny.gif' border=0 width=200 height=60></a><br><b>pygame documentation</b></td>
-<td bgcolor='#6aee28' style='border-left: 3px solid black; padding: 6px;' align=center valign=center>
- ||&nbsp;
- <a href=http://www.pygame.org>Pygame Home</a> &nbsp;||&nbsp;
- <a href=../index.html>Help Contents</a> &nbsp;||
- <a href=index.html>Reference Index</a> &nbsp;||
- <br>&nbsp;<br>
-
-<a href="camera.html">Camera</a>&nbsp;||&nbsp;
-<a href="cdrom.html">Cdrom</a>&nbsp;||&nbsp;
-<a href="color.html">Color</a>&nbsp;||&nbsp;
-<a href="cursors.html">Cursors</a>&nbsp;||&nbsp;
-<a href="display.html">Display</a>&nbsp;||&nbsp;
-<a href="draw.html">Draw</a>&nbsp;||&nbsp;
-<a href="event.html">Event</a>&nbsp;||&nbsp;
-<a href="examples.html">Examples</a>&nbsp;||&nbsp;
-<a href="font.html">Font</a>&nbsp;||&nbsp;
-<a href="gfxdraw.html">Gfxdraw</a>&nbsp;||&nbsp;
-<a href="image.html">Image</a>&nbsp;||&nbsp;
-<a href="joystick.html">Joystick</a>&nbsp;||&nbsp;
-<a href="key.html">Key</a>&nbsp;||&nbsp;
-<a href="locals.html">Locals</a>&nbsp;||&nbsp;
-<a href="mask.html">Mask</a>&nbsp;||&nbsp;
-<a href="midi.html">Midi</a>&nbsp;||&nbsp;
-<a href="mixer.html">Mixer</a>&nbsp;||&nbsp;
-<a href="mouse.html">Mouse</a>&nbsp;||&nbsp;
-<a href="movie.html">Movie</a>&nbsp;||&nbsp;
-<a href="music.html">Music</a>&nbsp;||&nbsp;
-<a href="overlay.html">Overlay</a>&nbsp;||&nbsp;
-<a href="pixelarray.html">Pixelarray</a>&nbsp;||&nbsp;
-<a href="pygame.html">Pygame</a>&nbsp;||&nbsp;
-<a href="rect.html">Rect</a>&nbsp;||&nbsp;
-<a href="scrap.html">Scrap</a>&nbsp;||&nbsp;
-<a href="sndarray.html">Sndarray</a>&nbsp;||&nbsp;
-<a href="sprite.html">Sprite</a>&nbsp;||&nbsp;
-<a href="surface.html">Surface</a>&nbsp;||&nbsp;
-<a href="surfarray.html">Surfarray</a>&nbsp;||&nbsp;
-<a href="tests.html">Tests</a>&nbsp;||&nbsp;
-<a href="time.html">Time</a>&nbsp;||&nbsp;
-<a href="transform.html">Transform</a>
-</td></tr></table>
-<br>
-
-
-<a name="pygame.movie">
-<big><b>pygame.movie</big></b><br><ul>
- <i>pygame module for playback of mpeg video</i><br>
-<ul><small><table>
- <tr><td><a href="movie.html#pygame.movie.Movie">pygame.movie.Movie</a> - <font size=-1>load an mpeg movie file</font></td><td>load an mpeg movie file</td></tr>
-</table></small></ul>
-<p><tt>NOTE:</tt> <tt>pygame.movie</tt> currently does not work on windows with the latest pygame release. As no one has managed to get smpeg working there. The alternative is to use </p>
-<pre> <a href="http://www.pymedia.org/">pymedia</a>
-</pre><p>Pygame can playback video and audio from basic encoded <tt>MPEG1</tt> video files. Movie playback happens in background threads, which makes playback easy to manage. </p>
-<p>The audio for Movies must have full control over the sound system. This means the <tt>pygame.mixer</tt> module must be uninitialized if the movie's sound is to be played. The common solution is to call <tt><a href="mixer.html#pygame.mixer.quit">pygame.mixer.quit</a> - <font size=-1>uninitialize the mixer</font></tt> before the movie begins. The mixer can be reinitialized after the movie is finished. </p>
-<p>The video overlay planes are drawn on top of everything in the display window. To draw the movie as normal graphics into the display window, create an offscreen Surface and set that as the movie target. Then once per frame blit that surface to the screen. </p>
-<!--COMMENTS:pygame.movie--> &nbsp;<br>
-
-
-<a name="pygame.movie.Movie">
-<big><b>pygame.movie.Movie</big></b><br><ul>
- <i>load an mpeg movie file</i><br>
- <tt>pygame.movie.Movie(filename): return Movie</tt><br>
- <tt>pygame.movie.Movie(object): return Movie</tt><br>
-<ul><small><table>
- <tr><td><a href="movie.html#Movie.play">Movie.play</a> - <font size=-1>start playback of a movie</font></td><td>start playback of a movie</td></tr>
- <tr><td><a href="movie.html#Movie.stop">Movie.stop</a> - <font size=-1>stop movie playback</font></td><td>stop movie playback</td></tr>
- <tr><td><a href="movie.html#Movie.pause">Movie.pause</a> - <font size=-1>temporarily stop and resume playback</font></td><td>temporarily stop and resume playback</td></tr>
- <tr><td><a href="movie.html#Movie.skip">Movie.skip</a> - <font size=-1>advance the movie playback position</font></td><td>advance the movie playback position</td></tr>
- <tr><td><a href="movie.html#Movie.rewind">Movie.rewind</a> - <font size=-1>restart the movie playback</font></td><td>restart the movie playback</td></tr>
- <tr><td><a href="movie.html#Movie.render_frame">Movie.render_frame</a> - <font size=-1>set the current video frame</font></td><td>set the current video frame</td></tr>
- <tr><td><a href="movie.html#Movie.get_frame">Movie.get_frame</a> - <font size=-1>get the current video frame</font></td><td>get the current video frame</td></tr>
- <tr><td><a href="movie.html#Movie.get_time">Movie.get_time</a> - <font size=-1>get the current vide playback time</font></td><td>get the current vide playback time</td></tr>
- <tr><td><a href="movie.html#Movie.get_busy">Movie.get_busy</a> - <font size=-1>check if the movie is currently playing</font></td><td>check if the movie is currently playing</td></tr>
- <tr><td><a href="movie.html#Movie.get_length">Movie.get_length</a> - <font size=-1>the total length of the movie in seconds</font></td><td>the total length of the movie in seconds</td></tr>
- <tr><td><a href="movie.html#Movie.get_size">Movie.get_size</a> - <font size=-1>get the resolution of the video</font></td><td>get the resolution of the video</td></tr>
- <tr><td><a href="movie.html#Movie.has_video">Movie.has_video</a> - <font size=-1>check if the movie file contains video</font></td><td>check if the movie file contains video</td></tr>
- <tr><td><a href="movie.html#Movie.has_audio">Movie.has_audio</a> - <font size=-1>check if the movie file contains audio</font></td><td>check if the movie file contains audio</td></tr>
- <tr><td><a href="movie.html#Movie.set_volume">Movie.set_volume</a> - <font size=-1>set the audio playback volume</font></td><td>set the audio playback volume</td></tr>
- <tr><td><a href="movie.html#Movie.set_display">Movie.set_display</a> - <font size=-1>set the video target Surface</font></td><td>set the video target Surface</td></tr>
-</table></small></ul>
-<p>Load a new <tt>MPEG</tt> movie stream from a file or a python file object. The Movie object operates similar to the Sound objects from <tt>pygame.mixer</tt>. </p>
-<p>Movie objects have a target display Surface. The movie is rendered into this Surface in a background thread. If the target Surface is the display Surface, the movie will try to use the hardware accelerated video overlay. The default target is the display Surface. </p>
-<!--COMMENTS:pygame.movie.Movie--> &nbsp;<br>
-
-
-<a name="Movie.play">
-<big><b>Movie.play</big></b><br><ul>
- <i>start playback of a movie</i><br>
- <tt>Movie.play(loops=0): return None</tt><br>
-<p>Starts playback of the movie. Sound and video will begin playing if they are not disabled. The optional loops argument controls how many times the movie will be repeated. <tt>A</tt> loop value of -1 means the movie will repeat forever. </p>
-<!--COMMENTS:Movie.play--> &nbsp;<br>
-<br></ul>
-
-
-<a name="Movie.stop">
-<big><b>Movie.stop</big></b><br><ul>
- <i>stop movie playback</i><br>
- <tt>Movie.stop(): return None</tt><br>
-<p>Stops the playback of a movie. The video and audio playback will be stopped at their current position. </p>
-<!--COMMENTS:Movie.stop--> &nbsp;<br>
-<br></ul>
-
-
-<a name="Movie.pause">
-<big><b>Movie.pause</big></b><br><ul>
- <i>temporarily stop and resume playback</i><br>
- <tt>Movie.pause(): return None</tt><br>
-<p>This will temporarily stop or restart movie playback. </p>
-<!--COMMENTS:Movie.pause--> &nbsp;<br>
-<br></ul>
-
-
-<a name="Movie.skip">
-<big><b>Movie.skip</big></b><br><ul>
- <i>advance the movie playback position</i><br>
- <tt>Movie.skip(seconds): return None</tt><br>
-<p>Advance the movie playback time in seconds. This can be called before the movie is played to set the starting playback time. This can only skip the movie forward, not backwards. The argument is a floating point number. </p>
-<!--COMMENTS:Movie.skip--> &nbsp;<br>
-<br></ul>
-
-
-<a name="Movie.rewind">
-<big><b>Movie.rewind</big></b><br><ul>
- <i>restart the movie playback</i><br>
- <tt>Movie.rewind(): return None</tt><br>
-<p>Sets the movie playback position to the start of the movie. The movie will automatically begin playing even if it stopped. </p>
-<p>The can raise a ValueError if the movie cannot be rewound. If the rewind fails the movie object is considered invalid. </p>
-<!--COMMENTS:Movie.rewind--> &nbsp;<br>
-<br></ul>
-
-
-<a name="Movie.render_frame">
-<big><b>Movie.render_frame</big></b><br><ul>
- <i>set the current video frame</i><br>
- <tt>Movie.render_frame(frame_number): return frame_number</tt><br>
-<p>This takes an integer frame number to render. It attempts to render the given frame from the movie to the target Surface. It returns the real frame number that got rendered. </p>
-<!--COMMENTS:Movie.render_frame--> &nbsp;<br>
-<br></ul>
-
-
-<a name="Movie.get_frame">
-<big><b>Movie.get_frame</big></b><br><ul>
- <i>get the current video frame</i><br>
- <tt>Movie.get_frame(): return frame_number</tt><br>
-<p>Returns the integer frame number of the current video frame. </p>
-<!--COMMENTS:Movie.get_frame--> &nbsp;<br>
-<br></ul>
-
-
-<a name="Movie.get_time">
-<big><b>Movie.get_time</big></b><br><ul>
- <i>get the current vide playback time</i><br>
- <tt>Movie.get_time(): return seconds</tt><br>
-<p>Return the current playback time as a floating point value in seconds. This method currently seems broken and always returns <tt>0.0</tt>. </p>
-<!--COMMENTS:Movie.get_time--> &nbsp;<br>
-<br></ul>
-
-
-<a name="Movie.get_busy">
-<big><b>Movie.get_busy</big></b><br><ul>
- <i>check if the movie is currently playing</i><br>
- <tt>Movie.get_busy(): return bool</tt><br>
-<p>Returns true if the movie is currently being played. </p>
-<!--COMMENTS:Movie.get_busy--> &nbsp;<br>
-<br></ul>
-
-
-<a name="Movie.get_length">
-<big><b>Movie.get_length</big></b><br><ul>
- <i>the total length of the movie in seconds</i><br>
- <tt>Movie.get_length(): return seconds</tt><br>
-<p>Returns the length of the movie in seconds as a floating point value. </p>
-<!--COMMENTS:Movie.get_length--> &nbsp;<br>
-<br></ul>
-
-
-<a name="Movie.get_size">
-<big><b>Movie.get_size</big></b><br><ul>
- <i>get the resolution of the video</i><br>
- <tt>Movie.get_size(): return (width, height)</tt><br>
-<p>Gets the resolution of the movie video. The movie will be stretched to the size of any Surface, but this will report the natural video size. </p>
-<!--COMMENTS:Movie.get_size--> &nbsp;<br>
-<br></ul>
-
-
-<a name="Movie.has_video">
-<big><b>Movie.has_video</big></b><br><ul>
- <i>check if the movie file contains video</i><br>
- <tt>Movie.get_video(): return bool</tt><br>
-<p>True when the opened movie file contains a video stream. </p>
-<!--COMMENTS:Movie.has_video--> &nbsp;<br>
-<br></ul>
-
-
-<a name="Movie.has_audio">
-<big><b>Movie.has_audio</big></b><br><ul>
- <i>check if the movie file contains audio</i><br>
- <tt>Movie.get_audio(): return bool</tt><br>
-<p>True when the opened movie file contains an audio stream. </p>
-<!--COMMENTS:Movie.has_audio--> &nbsp;<br>
-<br></ul>
-
-
-<a name="Movie.set_volume">
-<big><b>Movie.set_volume</big></b><br><ul>
- <i>set the audio playback volume</i><br>
- <tt>Movie.set_volume(value): return None</tt><br>
-<p>Set the playback volume for this movie. The argument is a value between <tt>0.0</tt> and <tt>1.0</tt>. If the volume is set to 0 the movie audio will not be decoded. </p>
-<!--COMMENTS:Movie.set_volume--> &nbsp;<br>
-<br></ul>
-
-
-<a name="Movie.set_display">
-<big><b>Movie.set_display</big></b><br><ul>
- <i>set the video target Surface</i><br>
- <tt>Movie.set_display(Surface, rect=None): return None</tt><br>
-<p>Set the output target Surface for the movie video. You may also pass a rectangle argument for the position, which will move and stretch the video into the given area. </p>
-<p>If None is passed as the target Surface, the video decoding will be disabled. </p>
-<!--COMMENTS:Movie.set_display--> &nbsp;<br>
-<br></ul>
-<br></ul>
-<br></ul>
-
-</body></html>
diff --git a/pygame/docs/ref/music.html b/pygame/docs/ref/music.html
deleted file mode 100755
index ea20ee3..0000000
--- a/pygame/docs/ref/music.html
+++ /dev/null
@@ -1,215 +0,0 @@
-
-<html>
-<title>music - Pygame Documentation</title>
-<body bgcolor=#aaeebb text=#000000 link=#331111 vlink=#331111>
-
-
-<table cellpadding=0 cellspacing=0 border=0 style='border: 3px solid black;' width='100%'>
-<tr>
-<td bgcolor='#c2fc20' style='padding: 6px;' align=center valign=center><a href='http://www.pygame.org/'><img src='../pygame_tiny.gif' border=0 width=200 height=60></a><br><b>pygame documentation</b></td>
-<td bgcolor='#6aee28' style='border-left: 3px solid black; padding: 6px;' align=center valign=center>
- ||&nbsp;
- <a href=http://www.pygame.org>Pygame Home</a> &nbsp;||&nbsp;
- <a href=../index.html>Help Contents</a> &nbsp;||
- <a href=index.html>Reference Index</a> &nbsp;||
- <br>&nbsp;<br>
-
-<a href="camera.html">Camera</a>&nbsp;||&nbsp;
-<a href="cdrom.html">Cdrom</a>&nbsp;||&nbsp;
-<a href="color.html">Color</a>&nbsp;||&nbsp;
-<a href="cursors.html">Cursors</a>&nbsp;||&nbsp;
-<a href="display.html">Display</a>&nbsp;||&nbsp;
-<a href="draw.html">Draw</a>&nbsp;||&nbsp;
-<a href="event.html">Event</a>&nbsp;||&nbsp;
-<a href="examples.html">Examples</a>&nbsp;||&nbsp;
-<a href="font.html">Font</a>&nbsp;||&nbsp;
-<a href="gfxdraw.html">Gfxdraw</a>&nbsp;||&nbsp;
-<a href="image.html">Image</a>&nbsp;||&nbsp;
-<a href="joystick.html">Joystick</a>&nbsp;||&nbsp;
-<a href="key.html">Key</a>&nbsp;||&nbsp;
-<a href="locals.html">Locals</a>&nbsp;||&nbsp;
-<a href="mask.html">Mask</a>&nbsp;||&nbsp;
-<a href="midi.html">Midi</a>&nbsp;||&nbsp;
-<a href="mixer.html">Mixer</a>&nbsp;||&nbsp;
-<a href="mouse.html">Mouse</a>&nbsp;||&nbsp;
-<a href="movie.html">Movie</a>&nbsp;||&nbsp;
-<a href="music.html">Music</a>&nbsp;||&nbsp;
-<a href="overlay.html">Overlay</a>&nbsp;||&nbsp;
-<a href="pixelarray.html">Pixelarray</a>&nbsp;||&nbsp;
-<a href="pygame.html">Pygame</a>&nbsp;||&nbsp;
-<a href="rect.html">Rect</a>&nbsp;||&nbsp;
-<a href="scrap.html">Scrap</a>&nbsp;||&nbsp;
-<a href="sndarray.html">Sndarray</a>&nbsp;||&nbsp;
-<a href="sprite.html">Sprite</a>&nbsp;||&nbsp;
-<a href="surface.html">Surface</a>&nbsp;||&nbsp;
-<a href="surfarray.html">Surfarray</a>&nbsp;||&nbsp;
-<a href="tests.html">Tests</a>&nbsp;||&nbsp;
-<a href="time.html">Time</a>&nbsp;||&nbsp;
-<a href="transform.html">Transform</a>
-</td></tr></table>
-<br>
-
-
-<a name="pygame.mixer.music">
-<big><b>pygame.mixer.music</big></b><br><ul>
- <i>pygame module for controlling streamed audio</i><br>
-<ul><small><table>
- <tr><td><a href="music.html#pygame.mixer.music.load">pygame.mixer.music.load</a> - <font size=-1>Load a music file for playback</font></td><td>Load a music file for playback</td></tr>
- <tr><td><a href="music.html#pygame.mixer.music.play">pygame.mixer.music.play</a> - <font size=-1>Start the playback of the music stream</font></td><td>Start the playback of the music stream</td></tr>
- <tr><td><a href="music.html#pygame.mixer.music.rewind">pygame.mixer.music.rewind</a> - <font size=-1>restart music</font></td><td>restart music</td></tr>
- <tr><td><a href="music.html#pygame.mixer.music.stop">pygame.mixer.music.stop</a> - <font size=-1>stop the music playback</font></td><td>stop the music playback</td></tr>
- <tr><td><a href="music.html#pygame.mixer.music.pause">pygame.mixer.music.pause</a> - <font size=-1>temporarily stop music playback</font></td><td>temporarily stop music playback</td></tr>
- <tr><td><a href="music.html#pygame.mixer.music.unpause">pygame.mixer.music.unpause</a> - <font size=-1>resume paused music</font></td><td>resume paused music</td></tr>
- <tr><td><a href="music.html#pygame.mixer.music.fadeout">pygame.mixer.music.fadeout</a> - <font size=-1>stop music playback after fading out</font></td><td>stop music playback after fading out</td></tr>
- <tr><td><a href="music.html#pygame.mixer.music.set_volume">pygame.mixer.music.set_volume</a> - <font size=-1>set the music volume</font></td><td>set the music volume</td></tr>
- <tr><td><a href="music.html#pygame.mixer.music.get_volume">pygame.mixer.music.get_volume</a> - <font size=-1>get the music volume</font></td><td>get the music volume</td></tr>
- <tr><td><a href="music.html#pygame.mixer.music.get_busy">pygame.mixer.music.get_busy</a> - <font size=-1>check if the music stream is playing</font></td><td>check if the music stream is playing</td></tr>
- <tr><td><a href="music.html#pygame.mixer.music.get_pos">pygame.mixer.music.get_pos</a> - <font size=-1>get the music play time</font></td><td>get the music play time</td></tr>
- <tr><td><a href="music.html#pygame.mixer.music.queue">pygame.mixer.music.queue</a> - <font size=-1>queue a music file to follow the current</font></td><td>queue a music file to follow the current</td></tr>
- <tr><td><a href="music.html#pygame.mixer.music.set_endevent">pygame.mixer.music.set_endevent</a> - <font size=-1>have the music send an event when playback stops</font></td><td>have the music send an event when playback stops</td></tr>
- <tr><td><a href="music.html#pygame.mixer.music.get_endevent">pygame.mixer.music.get_endevent</a> - <font size=-1>get the event a channel sends when playback stops</font></td><td>get the event a channel sends when playback stops</td></tr>
-</table></small></ul>
-<p>The music module is closely tied to <tt>pygame.mixer</tt>. Use the music module to control the playback of music in the sound mixer. </p>
-<p>The difference between the music playback and regular Sound playback is that the music is streamed, and never actually loaded all at once. The mixer system only supports a single music stream at once. </p>
-<p>Be aware that <tt>MP3</tt> support is limited. On some systems an unsupported format can crash the program, <tt>e.g</tt>. Debian Linux. Consider using <tt>OGG</tt> instead. </p>
-<!--COMMENTS:pygame.mixer.music--> &nbsp;<br>
-
-
-<a name="pygame.mixer.music.load">
-<big><b>pygame.mixer.music.load</big></b><br><ul>
- <i>Load a music file for playback</i><br>
- <tt>pygame.mixer.music.load(filename): return None</tt><br>
- <tt>pygame.mixer.music.load(object): return None</tt><br>
-<p>This will load a music filename/file object and prepare it for playback. If a music stream is already playing it will be stopped. This does not start the music playing. </p>
-<!--COMMENTS:pygame.mixer.music.load--> &nbsp;<br>
-<br></ul>
-
-
-<a name="pygame.mixer.music.play">
-<big><b>pygame.mixer.music.play</big></b><br><ul>
- <i>Start the playback of the music stream</i><br>
- <tt>pygame.mixer.music.play(loops=0, start=0.0): return None</tt><br>
-<p>This will play the loaded music stream. If the music is already playing it will be restarted. </p>
-<p>The loops argument controls the number of repeats a music will play. play(5) will cause the music to played once, then repeated five times, for a total of six. If the loops is -1 then the music will repeat indefinitely. </p>
-<p>The starting position argument controls where in the music the song starts playing. The starting position is dependent on the format of music playing. <tt>MP3</tt> and <tt>OGG</tt> use the position as time (in seconds). <tt>MOD</tt> music it is the pattern order number. Passing a startpos will raise a NotImplementedError if it cannot set the start position </p>
-<!--COMMENTS:pygame.mixer.music.play--> &nbsp;<br>
-<br></ul>
-
-
-<a name="pygame.mixer.music.rewind">
-<big><b>pygame.mixer.music.rewind</big></b><br><ul>
- <i>restart music</i><br>
- <tt>pygame.mixer.music.rewind(): return None</tt><br>
-<p>Resets playback of the current music to the beginning. </p>
-<!--COMMENTS:pygame.mixer.music.rewind--> &nbsp;<br>
-<br></ul>
-
-
-<a name="pygame.mixer.music.stop">
-<big><b>pygame.mixer.music.stop</big></b><br><ul>
- <i>stop the music playback</i><br>
- <tt>pygame.mixer.music.stop(): return None</tt><br>
-<p>Stops the music playback if it is currently playing. </p>
-<!--COMMENTS:pygame.mixer.music.stop--> &nbsp;<br>
-<br></ul>
-
-
-<a name="pygame.mixer.music.pause">
-<big><b>pygame.mixer.music.pause</big></b><br><ul>
- <i>temporarily stop music playback</i><br>
- <tt>pygame.mixer.music.pause(): return None</tt><br>
-<p>Temporarily stop playback of the music stream. It can be resumed with the <tt><a href="music.html#pygame.mixer.music.unpause">pygame.mixer.music.unpause</a> - <font size=-1>resume paused music</font></tt> function. </p>
-<!--COMMENTS:pygame.mixer.music.pause--> &nbsp;<br>
-<br></ul>
-
-
-<a name="pygame.mixer.music.unpause">
-<big><b>pygame.mixer.music.unpause</big></b><br><ul>
- <i>resume paused music</i><br>
- <tt>pygame.mixer.music.unpause(): return None</tt><br>
-<p>This will resume the playback of a music stream after it has been paused. </p>
-<!--COMMENTS:pygame.mixer.music.unpause--> &nbsp;<br>
-<br></ul>
-
-
-<a name="pygame.mixer.music.fadeout">
-<big><b>pygame.mixer.music.fadeout</big></b><br><ul>
- <i>stop music playback after fading out</i><br>
- <tt>pygame.mixer.music.fadeout(time): return None</tt><br>
-<p>This will stop the music playback after it has been faded out over the specified time (measured in milliseconds). </p>
-<p>Note, that this function blocks until the music has faded out. </p>
-<!--COMMENTS:pygame.mixer.music.fadeout--> &nbsp;<br>
-<br></ul>
-
-
-<a name="pygame.mixer.music.set_volume">
-<big><b>pygame.mixer.music.set_volume</big></b><br><ul>
- <i>set the music volume</i><br>
- <tt>pygame.mixer.music.set_volume(value): return None</tt><br>
-<p>Set the volume of the music playback. The value argument is between <tt>0.0</tt> and <tt>1.0</tt>. When new music is loaded the volume is reset. </p>
-<!--COMMENTS:pygame.mixer.music.set_volume--> &nbsp;<br>
-<br></ul>
-
-
-<a name="pygame.mixer.music.get_volume">
-<big><b>pygame.mixer.music.get_volume</big></b><br><ul>
- <i>get the music volume</i><br>
- <tt>pygame.mixer.music.get_volume(): return value</tt><br>
-<p>Returns the current volume for the mixer. The value will be between <tt>0.0</tt> and <tt>1.0</tt>. </p>
-<!--COMMENTS:pygame.mixer.music.get_volume--> &nbsp;<br>
-<br></ul>
-
-
-<a name="pygame.mixer.music.get_busy">
-<big><b>pygame.mixer.music.get_busy</big></b><br><ul>
- <i>check if the music stream is playing</i><br>
- <tt>pygame.mixer.music.get_busy(): return bool</tt><br>
-<p>Returns True when the music stream is actively playing. When the music is idle this returns False. </p>
-<!--COMMENTS:pygame.mixer.music.get_busy--> &nbsp;<br>
-<br></ul>
-
-
-<a name="pygame.mixer.music.get_pos">
-<big><b>pygame.mixer.music.get_pos</big></b><br><ul>
- <i>get the music play time</i><br>
- <tt>pygame.mixer.music.get_pos(): return time</tt><br>
-<p>This gets the number of milliseconds that the music has been playing for. The returned time only represents how long the music has been playing; it does not take into account any starting position offsets. </p>
-<!--COMMENTS:pygame.mixer.music.get_pos--> &nbsp;<br>
-<br></ul>
-
-
-<a name="pygame.mixer.music.queue">
-<big><b>pygame.mixer.music.queue</big></b><br><ul>
- <i>queue a music file to follow the current</i><br>
- <tt>pygame.mixer.music.queue(filename): return None</tt><br>
-<p>This will load a music file and queue it. <tt>A</tt> queued music file will begin as soon as the current music naturally ends. If the current music is ever stopped or changed, the queued song will be lost. </p>
-<p>The following example will play music by Bach six times, then play music by Mozart once: </p>
-<pre> pygame.mixer.music.load('bach.ogg')
- pygame.mixer.music.play(5) # Plays six times, not five!
- pygame.mixer.music.queue('mozart.ogg')
-</pre>
-<!--COMMENTS:pygame.mixer.music.queue--> &nbsp;<br>
-<br></ul>
-
-
-<a name="pygame.mixer.music.set_endevent">
-<big><b>pygame.mixer.music.set_endevent</big></b><br><ul>
- <i>have the music send an event when playback stops</i><br>
- <tt>pygame.mixer.music.set_endevent(): return None</tt><br>
- <tt>pygame.mixer.music.set_endevent(type): return None</tt><br>
-<p>This causes Pygame to signal (by means of the event queue) when the music is done playing. The argument determines the type of event that will be queued. </p>
-<p>The event will be queued every time the music finishes, not just the first time. To stop the event from being queued, call this method with no argument. </p>
-<!--COMMENTS:pygame.mixer.music.set_endevent--> &nbsp;<br>
-<br></ul>
-
-
-<a name="pygame.mixer.music.get_endevent">
-<big><b>pygame.mixer.music.get_endevent</big></b><br><ul>
- <i>get the event a channel sends when playback stops</i><br>
- <tt>pygame.mixer.music.get_endevent(): return type</tt><br>
-<p>Returns the event type to be sent every time the music finishes playback. If there is no endevent the function returns <tt>pygame.NOEVENT</tt>. </p>
-<!--COMMENTS:pygame.mixer.music.get_endevent--> &nbsp;<br>
-<br></ul>
-<br></ul>
-
-</body></html>
diff --git a/pygame/docs/ref/overlay.html b/pygame/docs/ref/overlay.html
deleted file mode 100755
index dee626f..0000000
--- a/pygame/docs/ref/overlay.html
+++ /dev/null
@@ -1,101 +0,0 @@
-
-<html>
-<title>overlay - Pygame Documentation</title>
-<body bgcolor=#aaeebb text=#000000 link=#331111 vlink=#331111>
-
-
-<table cellpadding=0 cellspacing=0 border=0 style='border: 3px solid black;' width='100%'>
-<tr>
-<td bgcolor='#c2fc20' style='padding: 6px;' align=center valign=center><a href='http://www.pygame.org/'><img src='../pygame_tiny.gif' border=0 width=200 height=60></a><br><b>pygame documentation</b></td>
-<td bgcolor='#6aee28' style='border-left: 3px solid black; padding: 6px;' align=center valign=center>
- ||&nbsp;
- <a href=http://www.pygame.org>Pygame Home</a> &nbsp;||&nbsp;
- <a href=../index.html>Help Contents</a> &nbsp;||
- <a href=index.html>Reference Index</a> &nbsp;||
- <br>&nbsp;<br>
-
-<a href="camera.html">Camera</a>&nbsp;||&nbsp;
-<a href="cdrom.html">Cdrom</a>&nbsp;||&nbsp;
-<a href="color.html">Color</a>&nbsp;||&nbsp;
-<a href="cursors.html">Cursors</a>&nbsp;||&nbsp;
-<a href="display.html">Display</a>&nbsp;||&nbsp;
-<a href="draw.html">Draw</a>&nbsp;||&nbsp;
-<a href="event.html">Event</a>&nbsp;||&nbsp;
-<a href="examples.html">Examples</a>&nbsp;||&nbsp;
-<a href="font.html">Font</a>&nbsp;||&nbsp;
-<a href="gfxdraw.html">Gfxdraw</a>&nbsp;||&nbsp;
-<a href="image.html">Image</a>&nbsp;||&nbsp;
-<a href="joystick.html">Joystick</a>&nbsp;||&nbsp;
-<a href="key.html">Key</a>&nbsp;||&nbsp;
-<a href="locals.html">Locals</a>&nbsp;||&nbsp;
-<a href="mask.html">Mask</a>&nbsp;||&nbsp;
-<a href="midi.html">Midi</a>&nbsp;||&nbsp;
-<a href="mixer.html">Mixer</a>&nbsp;||&nbsp;
-<a href="mouse.html">Mouse</a>&nbsp;||&nbsp;
-<a href="movie.html">Movie</a>&nbsp;||&nbsp;
-<a href="music.html">Music</a>&nbsp;||&nbsp;
-<a href="overlay.html">Overlay</a>&nbsp;||&nbsp;
-<a href="pixelarray.html">Pixelarray</a>&nbsp;||&nbsp;
-<a href="pygame.html">Pygame</a>&nbsp;||&nbsp;
-<a href="rect.html">Rect</a>&nbsp;||&nbsp;
-<a href="scrap.html">Scrap</a>&nbsp;||&nbsp;
-<a href="sndarray.html">Sndarray</a>&nbsp;||&nbsp;
-<a href="sprite.html">Sprite</a>&nbsp;||&nbsp;
-<a href="surface.html">Surface</a>&nbsp;||&nbsp;
-<a href="surfarray.html">Surfarray</a>&nbsp;||&nbsp;
-<a href="tests.html">Tests</a>&nbsp;||&nbsp;
-<a href="time.html">Time</a>&nbsp;||&nbsp;
-<a href="transform.html">Transform</a>
-</td></tr></table>
-<br>
-
-
-<a name="pygame.Overlay">
-<big><b>pygame.Overlay</big></b><br><ul>
- <i>pygame object for video overlay graphics</i><br>
- <tt>pygame.Overlay(format, (width, height)): return Overlay</tt><br>
-<ul><small><table>
- <tr><td><a href="overlay.html#Overlay.display">Overlay.display</a> - <font size=-1>set the overlay pixel data</font></td><td>set the overlay pixel data</td></tr>
- <tr><td><a href="overlay.html#Overlay.set_location">Overlay.set_location</a> - <font size=-1>control where the overlay is displayed</font></td><td>control where the overlay is displayed</td></tr>
- <tr><td><a href="overlay.html#Overlay.get_hardware">Overlay.get_hardware</a> - <font size=-1>test if the Overlay is hardware accelerated</font></td><td>test if the Overlay is hardware accelerated</td></tr>
-</table></small></ul>
-<p>The Overlay objects provide support for accessing hardware video overlays. Video overlays do not use standard <tt>RGB</tt> pixel formats, and can use multiple resolutions of data to create a single image. </p>
-<p>The Overlay objects represent lower level access to the display hardware. To use the object you must understand the technical details of video overlays. </p>
-<p>The Overlay format determines the type of pixel data used. Not all hardware will support all types of overlay formats. Here is a list of available format types: </p>
-<pre> YV12_OVERLAY, IYUV_OVERLAY, YUV2_OVERLAY, UYVY_OVERLAY, YVYU_OVERLAY
-</pre><p>The width and height arguments control the size for the overlay image data. The overlay image can be displayed at any size, not just the resolution of the overlay. </p>
-<p>The overlay objects are always visible, and always show above the regular display contents. </p>
-<!--COMMENTS:pygame.Overlay--> &nbsp;<br>
-
-
-<a name="Overlay.display">
-<big><b>Overlay.display</big></b><br><ul>
- <i>set the overlay pixel data</i><br>
- <tt>Overlay.display((y, u, v)): return None</tt><br>
- <tt>Overlay.display(): return None</tt><br>
-<p>Display the yuv data in SDL's overlay planes. The y, u, and v arguments are strings of binary data. The data must be in the correct format used to create the Overlay. </p>
-<p>If no argument is passed in, the Overlay will simply be redrawn with the current data. This can be useful when the Overlay is not really hardware accelerated. </p>
-<p>The strings are not validated, and improperly sized strings could crash the program. </p>
-<!--COMMENTS:Overlay.display--> &nbsp;<br>
-<br></ul>
-
-
-<a name="Overlay.set_location">
-<big><b>Overlay.set_location</big></b><br><ul>
- <i>control where the overlay is displayed</i><br>
- <tt>Overlay.set_location(rect): return None</tt><br>
-<p>Set the location for the overlay. The overlay will always be shown relative to the main display Surface. This does not actually redraw the overlay, it will be updated on the next call to <tt><a href="overlay.html#Overlay.display">Overlay.display</a> - <font size=-1>set the overlay pixel data</font></tt>. </p>
-<!--COMMENTS:Overlay.set_location--> &nbsp;<br>
-<br></ul>
-
-
-<a name="Overlay.get_hardware">
-<big><b>Overlay.get_hardware</big></b><br><ul>
- <i>test if the Overlay is hardware accelerated</i><br>
- <tt>Overlay.get_hardware(rect): return int</tt><br>
-<p>Returns a True value when the Overlay is hardware accelerated. If the platform does not support acceleration, software rendering is used. </p>
-<!--COMMENTS:Overlay.get_hardware--> &nbsp;<br>
-<br></ul>
-<br></ul>
-
-</body></html>
diff --git a/pygame/docs/ref/pixelarray.html b/pygame/docs/ref/pixelarray.html
deleted file mode 100755
index fc2f2d4..0000000
--- a/pygame/docs/ref/pixelarray.html
+++ /dev/null
@@ -1,152 +0,0 @@
-
-<html>
-<title>pixelarray - Pygame Documentation</title>
-<body bgcolor=#aaeebb text=#000000 link=#331111 vlink=#331111>
-
-
-<table cellpadding=0 cellspacing=0 border=0 style='border: 3px solid black;' width='100%'>
-<tr>
-<td bgcolor='#c2fc20' style='padding: 6px;' align=center valign=center><a href='http://www.pygame.org/'><img src='../pygame_tiny.gif' border=0 width=200 height=60></a><br><b>pygame documentation</b></td>
-<td bgcolor='#6aee28' style='border-left: 3px solid black; padding: 6px;' align=center valign=center>
- ||&nbsp;
- <a href=http://www.pygame.org>Pygame Home</a> &nbsp;||&nbsp;
- <a href=../index.html>Help Contents</a> &nbsp;||
- <a href=index.html>Reference Index</a> &nbsp;||
- <br>&nbsp;<br>
-
-<a href="camera.html">Camera</a>&nbsp;||&nbsp;
-<a href="cdrom.html">Cdrom</a>&nbsp;||&nbsp;
-<a href="color.html">Color</a>&nbsp;||&nbsp;
-<a href="cursors.html">Cursors</a>&nbsp;||&nbsp;
-<a href="display.html">Display</a>&nbsp;||&nbsp;
-<a href="draw.html">Draw</a>&nbsp;||&nbsp;
-<a href="event.html">Event</a>&nbsp;||&nbsp;
-<a href="examples.html">Examples</a>&nbsp;||&nbsp;
-<a href="font.html">Font</a>&nbsp;||&nbsp;
-<a href="gfxdraw.html">Gfxdraw</a>&nbsp;||&nbsp;
-<a href="image.html">Image</a>&nbsp;||&nbsp;
-<a href="joystick.html">Joystick</a>&nbsp;||&nbsp;
-<a href="key.html">Key</a>&nbsp;||&nbsp;
-<a href="locals.html">Locals</a>&nbsp;||&nbsp;
-<a href="mask.html">Mask</a>&nbsp;||&nbsp;
-<a href="midi.html">Midi</a>&nbsp;||&nbsp;
-<a href="mixer.html">Mixer</a>&nbsp;||&nbsp;
-<a href="mouse.html">Mouse</a>&nbsp;||&nbsp;
-<a href="movie.html">Movie</a>&nbsp;||&nbsp;
-<a href="music.html">Music</a>&nbsp;||&nbsp;
-<a href="overlay.html">Overlay</a>&nbsp;||&nbsp;
-<a href="pixelarray.html">Pixelarray</a>&nbsp;||&nbsp;
-<a href="pygame.html">Pygame</a>&nbsp;||&nbsp;
-<a href="rect.html">Rect</a>&nbsp;||&nbsp;
-<a href="scrap.html">Scrap</a>&nbsp;||&nbsp;
-<a href="sndarray.html">Sndarray</a>&nbsp;||&nbsp;
-<a href="sprite.html">Sprite</a>&nbsp;||&nbsp;
-<a href="surface.html">Surface</a>&nbsp;||&nbsp;
-<a href="surfarray.html">Surfarray</a>&nbsp;||&nbsp;
-<a href="tests.html">Tests</a>&nbsp;||&nbsp;
-<a href="time.html">Time</a>&nbsp;||&nbsp;
-<a href="transform.html">Transform</a>
-</td></tr></table>
-<br>
-
-
-<a name="pygame.PixelArray">
-<big><b>pygame.PixelArray</big></b><br><ul>
- <i>pygame object for direct pixel access of surfaces</i><br>
- <tt>pygame.PixelArray(Surface): return PixelArray</tt><br>
-<ul><small><table>
- <tr><td><a href="pixelarray.html#PixelArray.surface">PixelArray.surface</a> - <font size=-1>Gets the Surface the PixelArray uses.</font></td><td>Gets the Surface the PixelArray uses.</td></tr>
- <tr><td><a href="pixelarray.html#PixelArray.make_surface">PixelArray.make_surface</a> - <font size=-1>Creates a new Surface from the current PixelArray.</font></td><td>Creates a new Surface from the current PixelArray.</td></tr>
- <tr><td><a href="pixelarray.html#PixelArray.replace">PixelArray.replace</a> - <font size=-1>Replaces the passed color in the PixelArray with another one.</font></td><td>Replaces the passed color in the PixelArray with another one.</td></tr>
- <tr><td><a href="pixelarray.html#PixelArray.extract">PixelArray.extract</a> - <font size=-1>Extracts the passed color from the PixelArray.</font></td><td>Extracts the passed color from the PixelArray.</td></tr>
- <tr><td><a href="pixelarray.html#PixelArray.compare">PixelArray.compare</a> - <font size=-1>Compares the PixelArray with another one.</font></td><td>Compares the PixelArray with another one.</td></tr>
-</table></small></ul>
-<p>The PixelArray wraps up a Surface and provides a direct <tt>2D</tt> array access to its pixels using the surface its rows as first and its columns as second axis. It supports slicing, row and pixel manipluation, slicing and slice assignments while inplace operations such as addition, subtraction, multiplication, division and so forth are not allowed. </p>
-<p>While it is possible to assign both, integer color values and <tt>RGB(A)</tt> color tuples, the PixelArray will only use integers for the color representation. Thus, checking for certain colors has to be done using the <tt><a href="surface.html#Surface.map_rgb">Surface.map_rgb</a> - <font size=-1>convert a color into a mapped color value</font></tt> method of the surface, the PixelArray was created for. </p>
-<pre> pxarray = pygame.PixelArray (surface)
- # Check, if the first pixel at the topleft corner is blue
- if pxarray[0][0] == surface.map_rgb ((0, 0, 255)):
- ...
-</pre><p>Pixels can be manipulated using integer values or color tuples. </p>
-<pre> pxarray[x][y] = 0xFF00FF
- pxarray[x][y] = (255, 0, 255)
-</pre><p>If you operate on a slice, you also can use arbitrary sequences or other PixelArray objects to modify the pixels. They have to match the size of the PixelArray however. </p>
-<pre> pxarray[a:b] = 0xFF00FF # set all pixels to 0xFF00FF
- pxarray[a:b] = (0xFF00FF, 0xAACCEE, ... ) # first pixel = 0xFF00FF,
- # second pixel = 0xAACCEE, ...
- pxarray[a:b] = ((255, 0, 255), (170, 204, 238), ...) # same as above
- pxarray[a:b] = ((255, 0, 255), 0xAACCEE, ...) # same as above
- pxarray[a:b] = otherarray[x:y] # slice sizes must match
-</pre><p>Note, that something like </p>
-<pre> pxarray[2:4][3:5] = ...
-</pre><p>will not cause a rectangular manipulation. Instead it will be first sliced to a two-column array, which then shall be sliced by columns once more, which will fail due an IndexError. This is caused by the slicing mechanisms in python and an absolutely correct behaviour. Create a single columned slice first, which you can manipulate then: </p>
-<pre> pxarray[2][3:5] = ...
- pxarray[3][3:5] = ...
-</pre><p>If you want to make a rectangular manipulation or create a view of a part of the PixelArray, you also can use the subscript abilities. You can easily create different view by creating 'subarrays' using the subscripts. </p>
-<pre> # Create some new PixelArray objects providing a different view
- # of the original array/surface.
- newarray = pxarray[2:4,3:5]
- otherarray = pxarray[::2,::2]
-</pre><p>Subscripts also can be used to do fast rectangular pixel manipulations instead of iterating over the x or y axis as above. </p>
-<pre> pxarray[::2,:] = (0, 0, 0) # Make each second column black.
-</pre><p>During its lifetime, the PixelArray locks the surface, thus you explicitly have to delete it once its not used anymore and the surface should perform operations in the same scope. </p>
-<p>New in pygame <tt>1.8</tt>. Subscript support is new in pygame <tt>1.8.1</tt>. </p>
-<!--COMMENTS:pygame.PixelArray--> &nbsp;<br>
-
-
-<a name="PixelArray.surface">
-<big><b>PixelArray.surface</big></b><br><ul>
- <i>Gets the Surface the PixelArray uses.</i><br>
- <tt>PixelArray.surface: Return Surface</tt><br>
-<p>The Surface, the PixelArray was created for. </p>
-<!--COMMENTS:PixelArray.surface--> &nbsp;<br>
-<br></ul>
-
-
-<a name="PixelArray.make_surface">
-<big><b>PixelArray.make_surface</big></b><br><ul>
- <i>Creates a new Surface from the current PixelArray.</i><br>
- <tt>PixelArray.make_surface (): Return Surface</tt><br>
-<p>Creates a new Surface from the current PixelArray. Depending on the current PixelArray the size, pixel order etc. will be different from the original Surface. </p>
-<pre> # Create a new surface flipped around the vertical axis.
- sf = pxarray[:,::-1].make_surface ()
-</pre><p>New in pygame <tt>1.8.1</tt>. </p>
-<!--COMMENTS:PixelArray.make_surface--> &nbsp;<br>
-<br></ul>
-
-
-<a name="PixelArray.replace">
-<big><b>PixelArray.replace</big></b><br><ul>
- <i>Replaces the passed color in the PixelArray with another one.</i><br>
- <tt>PixelArray.replace (color, repcolor, distance=0, weights=(0.299, 0.587, 0.114)): Return None</tt><br>
-<p>Replaces the pixels with the passed color in the PixelArray by changing them them to the passed replacement color. </p>
-<p>It uses a simple weighted euclidian distance formula to calculate the distance between the colors. The distance space ranges from <tt>0.0</tt> to <tt>1.0</tt> and is used as threshold for the color detection. This causes the replacement to take pixels with a similar, but not exactly identical color, into account as well. </p>
-<p>This is an in place operation that directly affects the pixels of the PixelArray. </p>
-<p>New in pygame <tt>1.8.1</tt>. </p>
-<!--COMMENTS:PixelArray.replace--> &nbsp;<br>
-<br></ul>
-
-
-<a name="PixelArray.extract">
-<big><b>PixelArray.extract</big></b><br><ul>
- <i>Extracts the passed color from the PixelArray.</i><br>
- <tt>PixelArray.extract (color, distance=0, weights=(0.299, 0.587, 0.114)): Return PixelArray</tt><br>
-<p>Extracts the passed color by changing all matching pixels to white, while non-matching pixels are changed to black. This returns a new PixelArray with the black/white color mask. </p>
-<p>It uses a simple weighted euclidian distance formula to calculate the distance between the colors. The distance space ranges from <tt>0.0</tt> to <tt>1.0</tt> and is used as threshold for the color detection. This causes the extraction to take pixels with a similar, but not exactly identical color, into account as well. </p>
-<p>New in pygame <tt>1.8.1</tt>. </p>
-<!--COMMENTS:PixelArray.extract--> &nbsp;<br>
-<br></ul>
-
-
-<a name="PixelArray.compare">
-<big><b>PixelArray.compare</big></b><br><ul>
- <i>Compares the PixelArray with another one.</i><br>
- <tt>PixelArray.compare (array, distance=0, weights=(0.299, 0.587, 0.114)): Return PixelArray</tt><br>
-<p>Compares the contents of the PixelArray with those from the passed PixelArray. It returns a new PixelArray with a black/white color mask that indicates the differences (white) of both arrays. Both PixelArray objects must have indentical bit depths and dimensions. </p>
-<p>It uses a simple weighted euclidian distance formula to calculate the distance between the colors. The distance space ranges from <tt>0.0</tt> to <tt>1.0</tt> and is used as threshold for the color detection. This causes the comparision to mark pixels with a similar, but not exactly identical color, as black. </p>
-<p>New in pygame <tt>1.8.1</tt>. </p>
-<!--COMMENTS:PixelArray.compare--> &nbsp;<br>
-<br></ul>
-<br></ul>
-
-</body></html>
diff --git a/pygame/docs/ref/pygame.html b/pygame/docs/ref/pygame.html
deleted file mode 100755
index 5afc343..0000000
--- a/pygame/docs/ref/pygame.html
+++ /dev/null
@@ -1,186 +0,0 @@
-
-<html>
-<title>pygame - Pygame Documentation</title>
-<body bgcolor=#aaeebb text=#000000 link=#331111 vlink=#331111>
-
-
-<table cellpadding=0 cellspacing=0 border=0 style='border: 3px solid black;' width='100%'>
-<tr>
-<td bgcolor='#c2fc20' style='padding: 6px;' align=center valign=center><a href='http://www.pygame.org/'><img src='../pygame_tiny.gif' border=0 width=200 height=60></a><br><b>pygame documentation</b></td>
-<td bgcolor='#6aee28' style='border-left: 3px solid black; padding: 6px;' align=center valign=center>
- ||&nbsp;
- <a href=http://www.pygame.org>Pygame Home</a> &nbsp;||&nbsp;
- <a href=../index.html>Help Contents</a> &nbsp;||
- <a href=index.html>Reference Index</a> &nbsp;||
- <br>&nbsp;<br>
-
-<a href="camera.html">Camera</a>&nbsp;||&nbsp;
-<a href="cdrom.html">Cdrom</a>&nbsp;||&nbsp;
-<a href="color.html">Color</a>&nbsp;||&nbsp;
-<a href="cursors.html">Cursors</a>&nbsp;||&nbsp;
-<a href="display.html">Display</a>&nbsp;||&nbsp;
-<a href="draw.html">Draw</a>&nbsp;||&nbsp;
-<a href="event.html">Event</a>&nbsp;||&nbsp;
-<a href="examples.html">Examples</a>&nbsp;||&nbsp;
-<a href="font.html">Font</a>&nbsp;||&nbsp;
-<a href="gfxdraw.html">Gfxdraw</a>&nbsp;||&nbsp;
-<a href="image.html">Image</a>&nbsp;||&nbsp;
-<a href="joystick.html">Joystick</a>&nbsp;||&nbsp;
-<a href="key.html">Key</a>&nbsp;||&nbsp;
-<a href="locals.html">Locals</a>&nbsp;||&nbsp;
-<a href="mask.html">Mask</a>&nbsp;||&nbsp;
-<a href="midi.html">Midi</a>&nbsp;||&nbsp;
-<a href="mixer.html">Mixer</a>&nbsp;||&nbsp;
-<a href="mouse.html">Mouse</a>&nbsp;||&nbsp;
-<a href="movie.html">Movie</a>&nbsp;||&nbsp;
-<a href="music.html">Music</a>&nbsp;||&nbsp;
-<a href="overlay.html">Overlay</a>&nbsp;||&nbsp;
-<a href="pixelarray.html">Pixelarray</a>&nbsp;||&nbsp;
-<a href="pygame.html">Pygame</a>&nbsp;||&nbsp;
-<a href="rect.html">Rect</a>&nbsp;||&nbsp;
-<a href="scrap.html">Scrap</a>&nbsp;||&nbsp;
-<a href="sndarray.html">Sndarray</a>&nbsp;||&nbsp;
-<a href="sprite.html">Sprite</a>&nbsp;||&nbsp;
-<a href="surface.html">Surface</a>&nbsp;||&nbsp;
-<a href="surfarray.html">Surfarray</a>&nbsp;||&nbsp;
-<a href="tests.html">Tests</a>&nbsp;||&nbsp;
-<a href="time.html">Time</a>&nbsp;||&nbsp;
-<a href="transform.html">Transform</a>
-</td></tr></table>
-<br>
-
-
-<a name="pygame">
-<big><b>pygame</big></b><br><ul>
- <i>the top level pygame package</i><br>
-<ul><small><table>
- <tr><td><a href="pygame.html#pygame.init">pygame.init</a> - <font size=-1>initialize all imported pygame modules</font></td><td>initialize all imported pygame modules</td></tr>
- <tr><td><a href="pygame.html#pygame.quit">pygame.quit</a> - <font size=-1>uninitialize all pygame modules</font></td><td>uninitialize all pygame modules</td></tr>
- <tr><td><a href="pygame.html#pygame.error">pygame.error</a> - <font size=-1>standard pygame exception</font></td><td>standard pygame exception</td></tr>
- <tr><td><a href="pygame.html#pygame.get_error">pygame.get_error</a> - <font size=-1>get the current error message</font></td><td>get the current error message</td></tr>
- <tr><td><a href="pygame.html#pygame.set_error">pygame.set_error</a> - <font size=-1>set the current error message</font></td><td>set the current error message</td></tr>
- <tr><td><a href="pygame.html#pygame.get_sdl_version">pygame.get_sdl_version</a> - <font size=-1>get the version number of SDL</font></td><td>get the version number of SDL</td></tr>
- <tr><td><a href="pygame.html#pygame.get_sdl_byteorder">pygame.get_sdl_byteorder</a> - <font size=-1>get the byte order of SDL</font></td><td>get the byte order of SDL</td></tr>
- <tr><td><a href="pygame.html#pygame.register_quit">pygame.register_quit</a> - <font size=-1>register a function to be called when pygame quits</font></td><td>register a function to be called when pygame quits</td></tr>
- <tr><td><a href="pygame.html#pygame.version">pygame.version</a> - <font size=-1>small module containing version information</font></td><td>small module containing version information</td></tr>
-</table></small></ul>
-<p>The pygame package represents the top-level package for others to use. Pygame itself is broken into many submodules, but this does not affect programs that use Pygame. </p>
-<p>As a convenience, most of the top-level variables in pygame have been placed inside a module named <tt>'pygame.locals'</tt>. This is meant to be used with 'from <tt>pygame.locals</tt> import *', in addition to 'import pygame'. </p>
-<p>When you 'import pygame' all available pygame submodules are automatically imported. Be aware that some of the pygame modules are considered "optional", and may not be available. In that case, Pygame will provide a placeholder object instead of the module, which can be used to test for availability. </p>
-<!--COMMENTS:pygame--> &nbsp;<br>
-
-
-<a name="pygame.init">
-<big><b>pygame.init</big></b><br><ul>
- <i>initialize all imported pygame modules</i><br>
- <tt>pygame.init(): return (numpass, numfail)</tt><br>
-<p>Initialize all imported Pygame modules. No exceptions will be raised if a module fails, but the total number if successful and failed inits will be returned as a tuple. You can always initialize individual modules manually, but <tt>pygame.init</tt> is a convenient way to get everything started. The init() functions for individual modules will raise exceptions when they fail. </p>
-<p>You may want to initalise the different modules seperately to speed up your program or to not use things your game does not. </p>
-<p>It is safe to call this init() more than once: repeated calls will have no effect. This is true even if you have <tt><a href="pygame.html#pygame.quit">pygame.quit</a> - <font size=-1>uninitialize all pygame modules</font></tt> all the modules. </p>
-<!--COMMENTS:pygame.init--> &nbsp;<br>
-<br></ul>
-
-
-<a name="pygame.quit">
-<big><b>pygame.quit</big></b><br><ul>
- <i>uninitialize all pygame modules</i><br>
- <tt>pygame.quit(): return None</tt><br>
-<p>Uninitialize all pygame modules that have previously been initialized. When the Python interpreter shuts down, this method is called regardless, so your program should not need it, except when it wants to terminate its pygame resources and continue. It is safe to call this function more than once: repeated calls have no effect. </p>
-<p>Note, that <tt>pygame.quit</tt> will not exit your program. Consider letting your program end in the same way a normal python program will end. </p>
-<!--COMMENTS:pygame.quit--> &nbsp;<br>
-<br></ul>
-
-
-<a name="pygame.error">
-<big><b>pygame.error</big></b><br><ul>
- <i>standard pygame exception</i><br>
- <tt>raise pygame.error, message</tt><br>
-<p>This exception is raised whenever a pygame or <tt>SDL</tt> operation fails. You can catch any anticipated problems and deal with the error. The exception is always raised with a descriptive message about the problem. </p>
-<p>Derived from the RuntimeError exception, which can also be used to catch these raised errors. </p>
-<!--COMMENTS:pygame.error--> &nbsp;<br>
-<br></ul>
-
-
-<a name="pygame.get_error">
-<big><b>pygame.get_error</big></b><br><ul>
- <i>get the current error message</i><br>
- <tt>pygame.get_error(): return errorstr</tt><br>
-<p><tt>SDL</tt> maintains an internal error message. This message will usually be given to you when <tt>pygame.error</tt> is raised. You will rarely need to call this function. </p>
-<!--COMMENTS:pygame.get_error--> &nbsp;<br>
-<br></ul>
-
-
-<a name="pygame.set_error">
-<big><b>pygame.set_error</big></b><br><ul>
- <i>set the current error message</i><br>
- <tt>pygame.set_error(error_msg): return None</tt><br>
-<p><tt>SDL</tt> maintains an internal error message. This message will usually be given to you when <tt>pygame.error</tt> is raised. You will rarely need to call this function. </p>
-<!--COMMENTS:pygame.set_error--> &nbsp;<br>
-<br></ul>
-
-
-<a name="pygame.get_sdl_version">
-<big><b>pygame.get_sdl_version</big></b><br><ul>
- <i>get the version number of SDL</i><br>
- <tt>pygame.get_sdl_version(): return major, minor, patch</tt><br>
-<p>Returns the three version numbers of the <tt>SDL</tt> library. This version is built at compile time. It can be used to detect which features may not be available through Pygame. </p>
-<p>get_sdl_version is new in pygame <tt>1.7.0</tt> </p>
-<!--COMMENTS:pygame.get_sdl_version--> &nbsp;<br>
-<br></ul>
-
-
-<a name="pygame.get_sdl_byteorder">
-<big><b>pygame.get_sdl_byteorder</big></b><br><ul>
- <i>get the byte order of SDL</i><br>
- <tt>pygame.get_sdl_byteorder(): return int</tt><br>
-<p>Returns the byte order of the <tt>SDL</tt> library. It returns <tt>LIL_ENDIAN</tt> for little endian byte order and <tt>BIG_ENDIAN</tt> for big endian byte order. </p>
-<p>get_sdl_byteorder is new in pygame <tt>1.8</tt> </p>
-<!--COMMENTS:pygame.get_sdl_byteorder--> &nbsp;<br>
-<br></ul>
-
-
-<a name="pygame.register_quit">
-<big><b>pygame.register_quit</big></b><br><ul>
- <i>register a function to be called when pygame quits</i><br>
- <tt>register_quit(callable): return None</tt><br>
-<p>When <tt>pygame.quit</tt> is called, all registered quit functions are called. Pygame modules do this automatically when they are initializing. This function is not be needed for regular pygame users. </p>
-<!--COMMENTS:pygame.register_quit--> &nbsp;<br>
-<br></ul>
-
-
-<a name="pygame.version">
-<big><b>pygame.version</big></b><br><ul>
- <i>small module containing version information</i><br>
- <tt>module pygame.version</tt><br>
-<ul><small><table>
- <tr><td><a href="pygame.html#pygame.version.ver">pygame.version.ver</a> - <font size=-1>version number as a string</font></td><td>version number as a string</td></tr>
- <tr><td><a href="pygame.html#pygame.version.vernum">pygame.version.vernum</a> - <font size=-1>tupled integers of the version</font></td><td>tupled integers of the version</td></tr>
-</table></small></ul>
-<p>This module is automatically imported into the pygame package and offers a few variables to check with version of pygame has been imported. </p>
-<!--COMMENTS:pygame.version--> &nbsp;<br>
-
-
-<a name="pygame.version.ver">
-<big><b>pygame.version.ver</big></b><br><ul>
- <i>version number as a string</i><br>
- <tt>pygame.version.ver = '1.2'</tt><br>
-<p>This is the version represented as a string. It can contain a micro release number as well, <tt>e.g.</tt>, <tt>'1.5.2'</tt> </p>
-<!--COMMENTS:pygame.version.ver--> &nbsp;<br>
-<br></ul>
-
-
-<a name="pygame.version.vernum">
-<big><b>pygame.version.vernum</big></b><br><ul>
- <i>tupled integers of the version</i><br>
- <tt>pygame.version.vernum = (1, 5, 3)</tt><br>
-<p>This variable for the version can easily be compared with other version numbers of the same format. An example of checking Pygame version numbers would look like this: </p>
-<pre> if pygame.version.vernum < (1, 5):
- print 'Warning, older version of Pygame (%s)' % pygame.version.ver
- disable_advanced_features = True
-</pre>
-<!--COMMENTS:pygame.version.vernum--> &nbsp;<br>
-<br></ul>
-<br></ul>
-<br></ul>
-
-</body></html>
diff --git a/pygame/docs/ref/pygame_cursor.html b/pygame/docs/ref/pygame_cursor.html
deleted file mode 100755
index 0830846..0000000
--- a/pygame/docs/ref/pygame_cursor.html
+++ /dev/null
@@ -1,89 +0,0 @@
-<html>
-<title>pygame.cursor</title>
-<body bgcolor=#aaeebb text=#000000 link=#331111 vlink=#331111>
-
-
-<table cellspacing=3 width=100%><tr><td bgcolor=#00000>
-<table width=100%><tr><td bgcolor=c2fc20 align=center>
- <a href=http://www.pygame.org>
- <img src=../pygame_tiny.gif border=0 width=200 height=60></a><br>
- <b>pygame&nbsp;&nbsp;&nbsp;documentation</b>
-</td><td bgcolor=6aee28 align=center valign=top width=100%>
-
- ||&nbsp;
- <a href=http://www.pygame.org>Home</a> &nbsp;||&nbsp;
- <a href=../index.html>Help Contents</a> &nbsp;||
- <br>&nbsp;<br>
-
-|| <a href=pygame.html>pygame</a> ||
-<a href=pygame_cdrom.html>cdrom</a> ||
-<a href=pygame_constants.html>constants</a> ||
-<a href=pygame_cursor.html>cursor</a> ||
-<a href=pygame_display.html>display</a> ||
-<a href=pygame_draw.html>draw</a> ||<br>
-|| <a href=pygame_event.html>event</a> ||
-<a href=pygame_font.html>font</a> ||
-<a href=pygame_image.html>image</a> ||
-<a href=pygame_joystick.html>joystick</a> ||
-<a href=pygame_key.html>key</a> ||
-<a href=pygame_mixer.html>mixer</a> ||<br>
-|| <a href=pygame_mixer_music.html>mixer_music</a> ||
-<a href=pygame_mouse.html>mouse</a> ||
-<a href=pygame_movie.html>movie</a> ||
-<a href=pygame_sndarray.html>sndarray</a> ||
-<a href=pygame_surfarray.html>surfarray</a> ||
-<a href=pygame_time.html>time</a> ||<br>
-|| <a href=pygame_transform.html>transform</a> ||<br>
-&nbsp;<br>|| <a href=CD.html>CD</a> ||
-<a href=Channel.html>Channel</a> ||
-<a href=Clock.html>Clock</a> ||
-<a href=Font.html>Font</a> ||
-<a href=Joystick.html>Joystick</a> ||
-<a href=Movie.html>Movie</a> ||<br>
-|| <a href=Overlay.html>Overlay</a> ||
-<a href=Rect.html>Rect</a> ||
-<a href=Sound.html>Sound</a> ||
-<a href=Surface.html>Surface</a> ||<br>
-&nbsp;<br>|| <a href=pygame_color.html>color</a> ||
-<a href=pygame_cursors.html>cursors</a> ||
-<a href=pygame_sprite.html>sprite</a> ||<br>
-
-
-</td></tr></table></td></tr></table>
-<br>
-<h2 align=center>pygame.cursor</h2>
-{module}
-
-<hr>
-
-<table>
-<tr><td><a href=#compile>compile</a></td><td> -
-compile cursor strings into cursor data</td></tr>
-
-
-</table>
-
-<hr>
-
-<a name=compile><font size=+2><b>compile
-</b></font><br><font size=+1><tt>
-pygame.cursor.compile(strings, black, white,xor) -> data, mask
-</tt></font><ul>
-This takes a set of strings with equal length and computes
-the binary data for that cursor. The string widths must be
-divisible by 8.
-<br>&nbsp;<br>
-The black and white arguments are single letter strings that
-tells which characters will represent black pixels, and which
-characters represent white pixels. All other characters are
-considered clear.
-<br>&nbsp;<br>
-This returns a tuple containing the cursor data and cursor mask
-data. Both these arguments are used when setting a cursor with
-<a href=pygame_mouse.html#set_cursor>pygame.mouse.set_cursor()</a>.
-<br>&nbsp;<br>
-</ul><br>&nbsp;<br>
-
-
-<hr>
-</body></html>
diff --git a/pygame/docs/ref/rect.html b/pygame/docs/ref/rect.html
deleted file mode 100755
index 779167d..0000000
--- a/pygame/docs/ref/rect.html
+++ /dev/null
@@ -1,296 +0,0 @@
-
-<html>
-<title>rect - Pygame Documentation</title>
-<body bgcolor=#aaeebb text=#000000 link=#331111 vlink=#331111>
-
-
-<table cellpadding=0 cellspacing=0 border=0 style='border: 3px solid black;' width='100%'>
-<tr>
-<td bgcolor='#c2fc20' style='padding: 6px;' align=center valign=center><a href='http://www.pygame.org/'><img src='../pygame_tiny.gif' border=0 width=200 height=60></a><br><b>pygame documentation</b></td>
-<td bgcolor='#6aee28' style='border-left: 3px solid black; padding: 6px;' align=center valign=center>
- ||&nbsp;
- <a href=http://www.pygame.org>Pygame Home</a> &nbsp;||&nbsp;
- <a href=../index.html>Help Contents</a> &nbsp;||
- <a href=index.html>Reference Index</a> &nbsp;||
- <br>&nbsp;<br>
-
-<a href="camera.html">Camera</a>&nbsp;||&nbsp;
-<a href="cdrom.html">Cdrom</a>&nbsp;||&nbsp;
-<a href="color.html">Color</a>&nbsp;||&nbsp;
-<a href="cursors.html">Cursors</a>&nbsp;||&nbsp;
-<a href="display.html">Display</a>&nbsp;||&nbsp;
-<a href="draw.html">Draw</a>&nbsp;||&nbsp;
-<a href="event.html">Event</a>&nbsp;||&nbsp;
-<a href="examples.html">Examples</a>&nbsp;||&nbsp;
-<a href="font.html">Font</a>&nbsp;||&nbsp;
-<a href="gfxdraw.html">Gfxdraw</a>&nbsp;||&nbsp;
-<a href="image.html">Image</a>&nbsp;||&nbsp;
-<a href="joystick.html">Joystick</a>&nbsp;||&nbsp;
-<a href="key.html">Key</a>&nbsp;||&nbsp;
-<a href="locals.html">Locals</a>&nbsp;||&nbsp;
-<a href="mask.html">Mask</a>&nbsp;||&nbsp;
-<a href="midi.html">Midi</a>&nbsp;||&nbsp;
-<a href="mixer.html">Mixer</a>&nbsp;||&nbsp;
-<a href="mouse.html">Mouse</a>&nbsp;||&nbsp;
-<a href="movie.html">Movie</a>&nbsp;||&nbsp;
-<a href="music.html">Music</a>&nbsp;||&nbsp;
-<a href="overlay.html">Overlay</a>&nbsp;||&nbsp;
-<a href="pixelarray.html">Pixelarray</a>&nbsp;||&nbsp;
-<a href="pygame.html">Pygame</a>&nbsp;||&nbsp;
-<a href="rect.html">Rect</a>&nbsp;||&nbsp;
-<a href="scrap.html">Scrap</a>&nbsp;||&nbsp;
-<a href="sndarray.html">Sndarray</a>&nbsp;||&nbsp;
-<a href="sprite.html">Sprite</a>&nbsp;||&nbsp;
-<a href="surface.html">Surface</a>&nbsp;||&nbsp;
-<a href="surfarray.html">Surfarray</a>&nbsp;||&nbsp;
-<a href="tests.html">Tests</a>&nbsp;||&nbsp;
-<a href="time.html">Time</a>&nbsp;||&nbsp;
-<a href="transform.html">Transform</a>
-</td></tr></table>
-<br>
-
-
-<a name="pygame.Rect">
-<big><b>pygame.Rect</big></b><br><ul>
- <i>pygame object for storing rectangular coordinates</i><br>
- <tt>pygame.Rect(left, top, width, height): return Rect</tt><br>
- <tt>pygame.Rect((left, top), (width, height)): return Rect</tt><br>
- <tt>pygame.Rect(object): return Rect</tt><br>
-<ul><small><table>
- <tr><td><a href="rect.html#Rect.copy">Rect.copy</a> - <font size=-1>copy the rectangle</font></td><td>copy the rectangle</td></tr>
- <tr><td><a href="rect.html#Rect.move">Rect.move</a> - <font size=-1>moves the rectangle</font></td><td>moves the rectangle</td></tr>
- <tr><td><a href="rect.html#Rect.move_ip">Rect.move_ip</a> - <font size=-1>moves the rectangle, in place</font></td><td>moves the rectangle, in place</td></tr>
- <tr><td><a href="rect.html#Rect.inflate">Rect.inflate</a> - <font size=-1>grow or shrink the rectangle size</font></td><td>grow or shrink the rectangle size</td></tr>
- <tr><td><a href="rect.html#Rect.inflate_ip">Rect.inflate_ip</a> - <font size=-1>grow or shrink the rectangle size, in place</font></td><td>grow or shrink the rectangle size, in place</td></tr>
- <tr><td><a href="rect.html#Rect.clamp">Rect.clamp</a> - <font size=-1>moves the rectangle inside another</font></td><td>moves the rectangle inside another</td></tr>
- <tr><td><a href="rect.html#Rect.clamp_ip">Rect.clamp_ip</a> - <font size=-1>moves the rectangle inside another, in place</font></td><td>moves the rectangle inside another, in place</td></tr>
- <tr><td><a href="rect.html#Rect.clip">Rect.clip</a> - <font size=-1>crops a rectangle inside another</font></td><td>crops a rectangle inside another</td></tr>
- <tr><td><a href="rect.html#Rect.union">Rect.union</a> - <font size=-1>joins two rectangles into one</font></td><td>joins two rectangles into one</td></tr>
- <tr><td><a href="rect.html#Rect.union_ip">Rect.union_ip</a> - <font size=-1>joins two rectangles into one, in place</font></td><td>joins two rectangles into one, in place</td></tr>
- <tr><td><a href="rect.html#Rect.unionall">Rect.unionall</a> - <font size=-1>the union of many rectangles</font></td><td>the union of many rectangles</td></tr>
- <tr><td><a href="rect.html#Rect.unionall_ip">Rect.unionall_ip</a> - <font size=-1>the union of many rectangles, in place</font></td><td>the union of many rectangles, in place</td></tr>
- <tr><td><a href="rect.html#Rect.fit">Rect.fit</a> - <font size=-1>resize and move a rectangle with aspect ratio</font></td><td>resize and move a rectangle with aspect ratio</td></tr>
- <tr><td><a href="rect.html#Rect.normalize">Rect.normalize</a> - <font size=-1>correct negative sizes</font></td><td>correct negative sizes</td></tr>
- <tr><td><a href="rect.html#Rect.contains">Rect.contains</a> - <font size=-1>test if one rectangle is inside another</font></td><td>test if one rectangle is inside another</td></tr>
- <tr><td><a href="rect.html#Rect.collidepoint">Rect.collidepoint</a> - <font size=-1>test if a point is inside a rectangle</font></td><td>test if a point is inside a rectangle</td></tr>
- <tr><td><a href="rect.html#Rect.colliderect">Rect.colliderect</a> - <font size=-1>test if two rectangles overlap</font></td><td>test if two rectangles overlap</td></tr>
- <tr><td><a href="rect.html#Rect.collidelist">Rect.collidelist</a> - <font size=-1>test if one rectangle in a list intersects</font></td><td>test if one rectangle in a list intersects</td></tr>
- <tr><td><a href="rect.html#Rect.collidelistall">Rect.collidelistall</a> - <font size=-1>test if all rectangles in a list intersect</font></td><td>test if all rectangles in a list intersect</td></tr>
- <tr><td><a href="rect.html#Rect.collidedict">Rect.collidedict</a> - <font size=-1>test if one rectangle in a dictionary intersects</font></td><td>test if one rectangle in a dictionary intersects</td></tr>
- <tr><td><a href="rect.html#Rect.collidedictall">Rect.collidedictall</a> - <font size=-1>test if all rectangles in a dictionary intersect</font></td><td>test if all rectangles in a dictionary intersect</td></tr>
-</table></small></ul>
-<p>Pygame uses Rect objects to store and manipulate rectangular areas. <tt>A</tt> Rect can be created from a combination of left, top, width, and height values. Rects can also be created from python objects that are already a Rect or have an attribute named "rect". </p>
-<p>Any Pygame function that requires a Rect argument also accepts any of these values to construct a Rect. This makes it easier to create Rects on the fly as arguments to functions. </p>
-<p>The Rect functions that change the position or size of a Rect return a new copy of the Rect with the affected changes. The original Rect is not modified. Some methods have an alternate "in-place" version that returns None but effects the original Rect. These "in-place" methods are denoted with the "ip" suffix. </p>
-<p>The Rect object has several virtual attributes which can be used to move and align the Rect: </p>
-<pre> top, left, bottom, right
- topleft, bottomleft, topright, bottomright
- midtop, midleft, midbottom, midright
- center, centerx, centery
- size, width, height
- w,h
-</pre><p>All of these attributes can be assigned to: </p>
-<pre> rect1.right = 10
- rect2.center = (20,30)
-</pre><p>Assigning to size, width or height changes the dimensions of the rectangle; all other assignments move the rectangle without resizing it. Notice that some attributes are integers and others are pairs of integers. </p>
-<p>If a Rect has a nonzero width or height, it will return True for a nonzero test. Some methods return a Rect with 0 size to represent an invalid rectangle. </p>
-<p>The coordinates for Rect objects are all integers. The size values can be programmed to have negative values, but these are considered illegal Rects for most operations. </p>
-<p>There are several collision tests between other rectangles. Most python containers can be searched for collisions against a single Rect. </p>
-<p>The area covered by a Rect does not include the right- and bottom-most edge of pixels. If one Rect's bottom border is another Rect's top border <tt>(i.e.</tt>, <tt>rect1.bottom=rect2.top)</tt>, the two meet exactly on the screen but do not overlap, and <tt>rect1.colliderect(rect2)</tt> returns false. </p>
-<p>Though Rect can be subclassed, methods that return new rectangles are not subclass aware. That is, move or copy return a new <tt>pygame.Rect</tt> instance, not an instance of the subclass. This may change. To make subclass awareness work though, subclasses may have to maintain the same constructor signature as Rect. </p>
-<!--COMMENTS:pygame.Rect--> &nbsp;<br>
-
-
-<a name="Rect.copy">
-<big><b>Rect.copy</big></b><br><ul>
- <i>copy the rectangle</i><br>
- <tt>Rect.copy(): return Rect</tt><br>
-<p>Returns a new rectangle having the same position and size as the orginal. </p>
-<!--COMMENTS:Rect.copy--> &nbsp;<br>
-<br></ul>
-
-
-<a name="Rect.move">
-<big><b>Rect.move</big></b><br><ul>
- <i>moves the rectangle</i><br>
- <tt>Rect.move(x, y): return Rect</tt><br>
-<p>Returns a new rectangle that is moved by the given offset. The x and y arguments can be any integer value, positive or negative. </p>
-<!--COMMENTS:Rect.move--> &nbsp;<br>
-<br></ul>
-
-
-<a name="Rect.move_ip">
-<big><b>Rect.move_ip</big></b><br><ul>
- <i>moves the rectangle, in place</i><br>
- <tt>Rect.move_ip(x, y): return None</tt><br>
-<p>Same as the <tt><a href="rect.html#Rect.move">Rect.move</a> - <font size=-1>moves the rectangle</font></tt> method, but operates in place. </p>
-<!--COMMENTS:Rect.move_ip--> &nbsp;<br>
-<br></ul>
-
-
-<a name="Rect.inflate">
-<big><b>Rect.inflate</big></b><br><ul>
- <i>grow or shrink the rectangle size</i><br>
- <tt>Rect.inflate(x, y): return Rect</tt><br>
-<p>Returns a new rectangle with the size changed by the given offset. The rectangle remains centered around its current center. Negative values will shrink the rectangle. </p>
-<!--COMMENTS:Rect.inflate--> &nbsp;<br>
-<br></ul>
-
-
-<a name="Rect.inflate_ip">
-<big><b>Rect.inflate_ip</big></b><br><ul>
- <i>grow or shrink the rectangle size, in place</i><br>
- <tt>Rect.inflate_ip(x, y): return None</tt><br>
-<p>Same as the <tt><a href="rect.html#Rect.inflate">Rect.inflate</a> - <font size=-1>grow or shrink the rectangle size</font></tt> method, but operates in place. </p>
-<!--COMMENTS:Rect.inflate_ip--> &nbsp;<br>
-<br></ul>
-
-
-<a name="Rect.clamp">
-<big><b>Rect.clamp</big></b><br><ul>
- <i>moves the rectangle inside another</i><br>
- <tt>Rect.clamp(Rect): return Rect</tt><br>
-<p>Returns a new rectangle that is moved to be completely inside the argument Rect. If the rectangle is too large to fit inside, it is centered inside the argument Rect, but its size is not changed. </p>
-<!--COMMENTS:Rect.clamp--> &nbsp;<br>
-<br></ul>
-
-
-<a name="Rect.clamp_ip">
-<big><b>Rect.clamp_ip</big></b><br><ul>
- <i>moves the rectangle inside another, in place</i><br>
- <tt>Rect.clamp_ip(Rect): return None</tt><br>
-<p>Same as the <tt><a href="rect.html#Rect.clamp">Rect.clamp</a> - <font size=-1>moves the rectangle inside another</font></tt> method, but operates in place. </p>
-<!--COMMENTS:Rect.clamp_ip--> &nbsp;<br>
-<br></ul>
-
-
-<a name="Rect.clip">
-<big><b>Rect.clip</big></b><br><ul>
- <i>crops a rectangle inside another</i><br>
- <tt>Rect.clip(Rect): return Rect</tt><br>
-<p>Returns a new rectangle that is cropped to be completely inside the argument Rect. If the two rectangles do not overlap to begin with, a Rect with 0 size is returned. </p>
-<!--COMMENTS:Rect.clip--> &nbsp;<br>
-<br></ul>
-
-
-<a name="Rect.union">
-<big><b>Rect.union</big></b><br><ul>
- <i>joins two rectangles into one</i><br>
- <tt>Rect.union(Rect): return Rect</tt><br>
-<p>Returns a new rectangle that completely covers the area of the two provided rectangles. There may be area inside the new Rect that is not covered by the originals. </p>
-<!--COMMENTS:Rect.union--> &nbsp;<br>
-<br></ul>
-
-
-<a name="Rect.union_ip">
-<big><b>Rect.union_ip</big></b><br><ul>
- <i>joins two rectangles into one, in place</i><br>
- <tt>Rect.union_ip(Rect): return None</tt><br>
-<p>Same as the <tt><a href="rect.html#Rect.union">Rect.union</a> - <font size=-1>joins two rectangles into one</font></tt> method, but operates in place. </p>
-<!--COMMENTS:Rect.union_ip--> &nbsp;<br>
-<br></ul>
-
-
-<a name="Rect.unionall">
-<big><b>Rect.unionall</big></b><br><ul>
- <i>the union of many rectangles</i><br>
- <tt>Rect.unionall(Rect_sequence): return Rect</tt><br>
-<p>Returns the union of one rectangle with a sequence of many rectangles. </p>
-<!--COMMENTS:Rect.unionall--> &nbsp;<br>
-<br></ul>
-
-
-<a name="Rect.unionall_ip">
-<big><b>Rect.unionall_ip</big></b><br><ul>
- <i>the union of many rectangles, in place</i><br>
- <tt>Rect.unionall_ip(Rect_sequence): return None</tt><br>
-<p>The same as the <tt><a href="rect.html#Rect.unionall">Rect.unionall</a> - <font size=-1>the union of many rectangles</font></tt> method, but operates in place. </p>
-<!--COMMENTS:Rect.unionall_ip--> &nbsp;<br>
-<br></ul>
-
-
-<a name="Rect.fit">
-<big><b>Rect.fit</big></b><br><ul>
- <i>resize and move a rectangle with aspect ratio</i><br>
- <tt>Rect.fit(Rect): return Rect</tt><br>
-<p>Returns a new rectangle that is moved and resized to fit another. The aspect ratio of the original Rect is preserved, so the new rectangle may be smaller than the target in either width or height. </p>
-<!--COMMENTS:Rect.fit--> &nbsp;<br>
-<br></ul>
-
-
-<a name="Rect.normalize">
-<big><b>Rect.normalize</big></b><br><ul>
- <i>correct negative sizes</i><br>
- <tt>Rect.normalize(): return None</tt><br>
-<p>This will flip the width or height of a rectangle if it has a negative size. The rectangle will remain in the same place, with only the sides swapped. </p>
-<!--COMMENTS:Rect.normalize--> &nbsp;<br>
-<br></ul>
-
-
-<a name="Rect.contains">
-<big><b>Rect.contains</big></b><br><ul>
- <i>test if one rectangle is inside another</i><br>
- <tt>Rect.contains(Rect): return bool</tt><br>
-<p>Returns true when the argument is completely inside the Rect. </p>
-<!--COMMENTS:Rect.contains--> &nbsp;<br>
-<br></ul>
-
-
-<a name="Rect.collidepoint">
-<big><b>Rect.collidepoint</big></b><br><ul>
- <i>test if a point is inside a rectangle</i><br>
- <tt>Rect.collidepoint(x, y): return bool</tt><br>
- <tt>Rect.collidepoint((x,y)): return bool</tt><br>
-<p>Returns true if the given point is inside the rectangle. <tt>A</tt> point along the right or bottom edge is not considered to be inside the rectangle. </p>
-<!--COMMENTS:Rect.collidepoint--> &nbsp;<br>
-<br></ul>
-
-
-<a name="Rect.colliderect">
-<big><b>Rect.colliderect</big></b><br><ul>
- <i>test if two rectangles overlap</i><br>
- <tt>Rect.colliderect(Rect): return bool</tt><br>
-<p>Returns true if any portion of either rectangle overlap (except the top+bottom or left+right edges). </p>
-<!--COMMENTS:Rect.colliderect--> &nbsp;<br>
-<br></ul>
-
-
-<a name="Rect.collidelist">
-<big><b>Rect.collidelist</big></b><br><ul>
- <i>test if one rectangle in a list intersects</i><br>
- <tt>Rect.collidelist(list): return index</tt><br>
-<p>Test whether the rectangle collides with any in a sequence of rectangles. The index of the first collision found is returned. If no collisions are found an index of -1 is returned. </p>
-<!--COMMENTS:Rect.collidelist--> &nbsp;<br>
-<br></ul>
-
-
-<a name="Rect.collidelistall">
-<big><b>Rect.collidelistall</big></b><br><ul>
- <i>test if all rectangles in a list intersect</i><br>
- <tt>Rect.collidelistall(list): return indices</tt><br>
-<p>Returns a list of all the indices that contain rectangles that collide with the Rect. If no intersecting rectangles are found, an empty list is returned. </p>
-<!--COMMENTS:Rect.collidelistall--> &nbsp;<br>
-<br></ul>
-
-
-<a name="Rect.collidedict">
-<big><b>Rect.collidedict</big></b><br><ul>
- <i>test if one rectangle in a dictionary intersects</i><br>
- <tt>Rect.collidedict(dict): return (key, value)</tt><br>
-<p>Returns the key and value of the first dictionary value that collides with the Rect. If no collisions are found, None is returned. </p>
-<p>Rect objects are not hashable and cannot be used as keys in a dictionary, only as values. </p>
-<!--COMMENTS:Rect.collidedict--> &nbsp;<br>
-<br></ul>
-
-
-<a name="Rect.collidedictall">
-<big><b>Rect.collidedictall</big></b><br><ul>
- <i>test if all rectangles in a dictionary intersect</i><br>
- <tt>Rect.collidedictall(dict): return [(key, value), ...]</tt><br>
-<p>Returns a list of all the key and value pairs that intersect with the Rect. If no collisions are found an empty dictionary is returned. </p>
-<p>Rect objects are not hashable and cannot be used as keys in a dictionary, only as values. </p>
-<!--COMMENTS:Rect.collidedictall--> &nbsp;<br>
-<br></ul>
-<br></ul>
-
-</body></html>
diff --git a/pygame/docs/ref/scrap.html b/pygame/docs/ref/scrap.html
deleted file mode 100755
index da6810d..0000000
--- a/pygame/docs/ref/scrap.html
+++ /dev/null
@@ -1,187 +0,0 @@
-
-<html>
-<title>scrap - Pygame Documentation</title>
-<body bgcolor=#aaeebb text=#000000 link=#331111 vlink=#331111>
-
-
-<table cellpadding=0 cellspacing=0 border=0 style='border: 3px solid black;' width='100%'>
-<tr>
-<td bgcolor='#c2fc20' style='padding: 6px;' align=center valign=center><a href='http://www.pygame.org/'><img src='../pygame_tiny.gif' border=0 width=200 height=60></a><br><b>pygame documentation</b></td>
-<td bgcolor='#6aee28' style='border-left: 3px solid black; padding: 6px;' align=center valign=center>
- ||&nbsp;
- <a href=http://www.pygame.org>Pygame Home</a> &nbsp;||&nbsp;
- <a href=../index.html>Help Contents</a> &nbsp;||
- <a href=index.html>Reference Index</a> &nbsp;||
- <br>&nbsp;<br>
-
-<a href="camera.html">Camera</a>&nbsp;||&nbsp;
-<a href="cdrom.html">Cdrom</a>&nbsp;||&nbsp;
-<a href="color.html">Color</a>&nbsp;||&nbsp;
-<a href="cursors.html">Cursors</a>&nbsp;||&nbsp;
-<a href="display.html">Display</a>&nbsp;||&nbsp;
-<a href="draw.html">Draw</a>&nbsp;||&nbsp;
-<a href="event.html">Event</a>&nbsp;||&nbsp;
-<a href="examples.html">Examples</a>&nbsp;||&nbsp;
-<a href="font.html">Font</a>&nbsp;||&nbsp;
-<a href="gfxdraw.html">Gfxdraw</a>&nbsp;||&nbsp;
-<a href="image.html">Image</a>&nbsp;||&nbsp;
-<a href="joystick.html">Joystick</a>&nbsp;||&nbsp;
-<a href="key.html">Key</a>&nbsp;||&nbsp;
-<a href="locals.html">Locals</a>&nbsp;||&nbsp;
-<a href="mask.html">Mask</a>&nbsp;||&nbsp;
-<a href="midi.html">Midi</a>&nbsp;||&nbsp;
-<a href="mixer.html">Mixer</a>&nbsp;||&nbsp;
-<a href="mouse.html">Mouse</a>&nbsp;||&nbsp;
-<a href="movie.html">Movie</a>&nbsp;||&nbsp;
-<a href="music.html">Music</a>&nbsp;||&nbsp;
-<a href="overlay.html">Overlay</a>&nbsp;||&nbsp;
-<a href="pixelarray.html">Pixelarray</a>&nbsp;||&nbsp;
-<a href="pygame.html">Pygame</a>&nbsp;||&nbsp;
-<a href="rect.html">Rect</a>&nbsp;||&nbsp;
-<a href="scrap.html">Scrap</a>&nbsp;||&nbsp;
-<a href="sndarray.html">Sndarray</a>&nbsp;||&nbsp;
-<a href="sprite.html">Sprite</a>&nbsp;||&nbsp;
-<a href="surface.html">Surface</a>&nbsp;||&nbsp;
-<a href="surfarray.html">Surfarray</a>&nbsp;||&nbsp;
-<a href="tests.html">Tests</a>&nbsp;||&nbsp;
-<a href="time.html">Time</a>&nbsp;||&nbsp;
-<a href="transform.html">Transform</a>
-</td></tr></table>
-<br>
-
-
-<a name="pygame.scrap">
-<big><b>pygame.scrap</big></b><br><ul>
- <i>pygame module for clipboard support.</i><br>
-<ul><small><table>
- <tr><td><a href="scrap.html#pygame.scrap.init">pygame.scrap.init</a> - <font size=-1>Initializes the scrap module.</font></td><td>Initializes the scrap module.</td></tr>
- <tr><td><a href="scrap.html#pygame.scrap.get">pygame.scrap.get</a> - <font size=-1>Gets the data for the specified type from the clipboard.</font></td><td>Gets the data for the specified type from the clipboard.</td></tr>
- <tr><td><a href="scrap.html#pygame.scrap.get_types">pygame.scrap.get_types</a> - <font size=-1>Gets a list of the available clipboard types.</font></td><td>Gets a list of the available clipboard types.</td></tr>
- <tr><td><a href="scrap.html#pygame.scrap.put">pygame.scrap.put</a> - <font size=-1>Places data into the clipboard.</font></td><td>Places data into the clipboard.</td></tr>
- <tr><td><a href="scrap.html#pygame.scrap.contains">pygame.scrap.contains</a> - <font size=-1>Checks, whether a certain type is available in the clipboard.</font></td><td>Checks, whether a certain type is available in the clipboard.</td></tr>
- <tr><td><a href="scrap.html#pygame.scrap.lost">pygame.scrap.lost</a> - <font size=-1>Checks whether the clipboard is currently owned by the application.</font></td><td>Checks whether the clipboard is currently owned by the application.</td></tr>
- <tr><td><a href="scrap.html#pygame.scrap.set_mode">pygame.scrap.set_mode</a> - <font size=-1>Sets the clipboard access mode.</font></td><td>Sets the clipboard access mode.</td></tr>
-</table></small></ul>
-<p><tt>EXPERIMENTAL!:</tt> meaning this api may change, or dissapear in later pygame releases. If you use this, your code will break with the next pygame release. </p>
-<p>The scrap module is for getting and putting stuff from the clipboard. So you can copy and paste things between pygame, and other application types. It defines some basic own data types </p>
-<pre> SCRAP_PPM
- SCRAP_PBM
- SCRAP_BMP
- SCRAP_TEXT
-</pre><p>to be placed into the clipboard and allows to use define own clipboard types. <tt>SCRAP_PPM</tt>, <tt>SCRAP_PBM</tt> and <tt>SCRAP_BMP</tt> are suitable for surface buffers to be shared with other applications, while <tt>SCRAP_TEXT</tt> is an alias for the plain text clipboard type. </p>
-<p>The <tt>SCRAP_*</tt> types refer to the following <tt>MIME</tt> types and register those as well as the default operating system type for this type of data: </p>
-<pre> SCRAP_TEXT text/plain for plain text
- SCRAP_PBM image/pbm for PBM encoded image data
- SCRAP_PPM image/ppm for PPM encoded image data
- SCRAP_BMP image/bmp for BMP encoded image data
-</pre><p>Depending on the platform additional types are automatically registered when data is placed into the clipboard to guarantee a consistent sharing behaviour with other applications. The following listed types can be used as string to be passed to the respective <tt>pygame.scrap</tt> module functions. </p>
-<p>For Windows platforms, the additional types are supported automatically and resolve to their internal definitions: </p>
-<pre> text/plain;charset=utf-8 for UTF-8 encoded text
- audio/wav for WAV encoded audio
- image/tiff for TIFF encoded image data
-</pre><p>For <tt>X11</tt> platforms, the additional types are supported automatically and resolve to their internal definitions: </p>
-<pre> UTF8_STRING for UTF-8 encoded text
- text/plain;charset=utf-8 for UTF-8 encoded text
- COMPOUND_TEXT for COMPOUND text
-</pre><p>As stated before you can define own types for the clipboard, those however might not be usable by other applications. Thus data pasted into the clipboard using </p>
-<pre> pygame.scrap.put ("own_data", data)
-</pre><p>can only be used by applications, which query the clipboard for the "own_data" type. </p>
-<p>New in pygame <tt>1.8</tt>. Only works for Windows, <tt>X11</tt> and Mac <tt>OS</tt> <tt>X</tt> so far. On Mac <tt>OSX</tt> only text works at the moment - other types will be supported in the next release. </p>
-<!--COMMENTS:pygame.scrap--> &nbsp;<br>
-
-
-<a name="pygame.scrap.init">
-<big><b>pygame.scrap.init</big></b><br><ul>
- <i>Initializes the scrap module.</i><br>
- <tt>scrap.init () -> None</tt><br>
-<p>Tries to initialize the scrap module and raises an exception, if it fails. Note that this module requires a set display surface, so you have to make sure, you acquired one earlier using <tt><a href="display.html#pygame.display.set_mode">pygame.display.set_mode</a> - <font size=-1>initialize a window or screen for display</font></tt>. </p>
-<!--COMMENTS:pygame.scrap.init--> &nbsp;<br>
-<br></ul>
-
-
-<a name="pygame.scrap.get">
-<big><b>pygame.scrap.get</big></b><br><ul>
- <i>Gets the data for the specified type from the clipboard.</i><br>
- <tt>scrap.get (type) -> string</tt><br>
-<p>Returns the data for the specified type from the clipboard. The data is returned as string and might need further processing. If no data for the passed type is available, None is returned. </p>
-<pre> text = pygame.scrap.get (SCRAP_TEXT)
- if text:
- # Do stuff with it.
- else:
- print "There does not seem to be text in the clipboard."
-</pre>
-<!--COMMENTS:pygame.scrap.get--> &nbsp;<br>
-<br></ul>
-
-
-<a name="pygame.scrap.get_types">
-<big><b>pygame.scrap.get_types</big></b><br><ul>
- <i>Gets a list of the available clipboard types.</i><br>
- <tt>scrap.get_types () -> list</tt><br>
-<p>Gets a list of strings with the identifiers for the available clipboard types. Each identifier can be used in the <tt>scrap.get()</tt> method to get the clipboard content of the specific type. If there is no data in the clipboard, an empty list is returned. </p>
-<pre> types = pygame.scrap.get_types ()
- for t in types:
- if "text" in t:
- # There is some content with the word "text" in it. It's
- # possibly text, so print it.
- print pygame.scrap.get (t)
-</pre>
-<!--COMMENTS:pygame.scrap.get_types--> &nbsp;<br>
-<br></ul>
-
-
-<a name="pygame.scrap.put">
-<big><b>pygame.scrap.put</big></b><br><ul>
- <i>Places data into the clipboard.</i><br>
- <tt>scrap.put(type, data) -> None</tt><br>
-<p>Places data for a specific clipboard type into the clipboard. The data must be a string buffer. The type is a string identifying the type of data placed into the clipboard. This can be one of the native <tt>SCRAP_PBM</tt>, <tt>SCRAP_PPM</tt>, <tt>SCRAP_BMP</tt> or <tt>SCRAP_TEXT</tt> values or an own string identifier. </p>
-<p>The method raises an exception, if the content could not be placed into the clipboard. </p>
-<pre> fp = open ("example.bmp", "rb")
- pygame.scrap.put (SCRAP_BMP, fp.read ())
- fp.close ()
- # Now you can acquire the image data from the clipboard in other
- # applications.
- pygame.scrap.put (SCRAP_TEXT, "A text to copy")
- pygame.scrap.put ("Plain text", "A text to copy")
-</pre>
-<!--COMMENTS:pygame.scrap.put--> &nbsp;<br>
-<br></ul>
-
-
-<a name="pygame.scrap.contains">
-<big><b>pygame.scrap.contains</big></b><br><ul>
- <i>Checks, whether a certain type is available in the clipboard.</i><br>
- <tt>scrap.contains (type) -> bool</tt><br>
-<p>Returns True, if data for the passed type is available in the clipboard, False otherwise. </p>
-<pre> if pygame.scrap.contains (SCRAP_TEXT):
- print "There is text in the clipboard."
- if pygame.scrap.contains ("own_data_type"):
- print "There is stuff in the clipboard."
-</pre>
-<!--COMMENTS:pygame.scrap.contains--> &nbsp;<br>
-<br></ul>
-
-
-<a name="pygame.scrap.lost">
-<big><b>pygame.scrap.lost</big></b><br><ul>
- <i>Checks whether the clipboard is currently owned by the application.</i><br>
- <tt>scrap.lost() -> bool</tt><br>
-<p>Returns True, if the clipboard is currently owned by the pygame application, False otherwise. </p>
-<pre> if pygame.scrap.lost ():
- print "No content from me anymore. The clipboard is used by someone else."
-</pre>
-<!--COMMENTS:pygame.scrap.lost--> &nbsp;<br>
-<br></ul>
-
-
-<a name="pygame.scrap.set_mode">
-<big><b>pygame.scrap.set_mode</big></b><br><ul>
- <i>Sets the clipboard access mode.</i><br>
- <tt>scrap.set_mode(mode) -> None</tt><br>
-<p>Sets the access mode for the clipboard. This is only of interest for <tt>X11</tt> environments, where clipboard modes for mouse selections <tt>(SRAP_SELECTION)</tt> and the clipboard <tt>(SCRAP_CLIPBOARD)</tt> are available. Setting the mode to <tt>SCRAP_SELECTION</tt> in other environments will not cause any difference. </p>
-<p>If a value different from <tt>SCRAP_CLIPBOARD</tt> or <tt>SCRAP_SELECTION</tt> is passed, a ValueError will be raised. </p>
-<!--COMMENTS:pygame.scrap.set_mode--> &nbsp;<br>
-<br></ul>
-<br></ul>
-
-</body></html>
diff --git a/pygame/docs/ref/sndarray.html b/pygame/docs/ref/sndarray.html
deleted file mode 100755
index 919bf93..0000000
--- a/pygame/docs/ref/sndarray.html
+++ /dev/null
@@ -1,137 +0,0 @@
-
-<html>
-<title>sndarray - Pygame Documentation</title>
-<body bgcolor=#aaeebb text=#000000 link=#331111 vlink=#331111>
-
-
-<table cellpadding=0 cellspacing=0 border=0 style='border: 3px solid black;' width='100%'>
-<tr>
-<td bgcolor='#c2fc20' style='padding: 6px;' align=center valign=center><a href='http://www.pygame.org/'><img src='../pygame_tiny.gif' border=0 width=200 height=60></a><br><b>pygame documentation</b></td>
-<td bgcolor='#6aee28' style='border-left: 3px solid black; padding: 6px;' align=center valign=center>
- ||&nbsp;
- <a href=http://www.pygame.org>Pygame Home</a> &nbsp;||&nbsp;
- <a href=../index.html>Help Contents</a> &nbsp;||
- <a href=index.html>Reference Index</a> &nbsp;||
- <br>&nbsp;<br>
-
-<a href="camera.html">Camera</a>&nbsp;||&nbsp;
-<a href="cdrom.html">Cdrom</a>&nbsp;||&nbsp;
-<a href="color.html">Color</a>&nbsp;||&nbsp;
-<a href="cursors.html">Cursors</a>&nbsp;||&nbsp;
-<a href="display.html">Display</a>&nbsp;||&nbsp;
-<a href="draw.html">Draw</a>&nbsp;||&nbsp;
-<a href="event.html">Event</a>&nbsp;||&nbsp;
-<a href="examples.html">Examples</a>&nbsp;||&nbsp;
-<a href="font.html">Font</a>&nbsp;||&nbsp;
-<a href="gfxdraw.html">Gfxdraw</a>&nbsp;||&nbsp;
-<a href="image.html">Image</a>&nbsp;||&nbsp;
-<a href="joystick.html">Joystick</a>&nbsp;||&nbsp;
-<a href="key.html">Key</a>&nbsp;||&nbsp;
-<a href="locals.html">Locals</a>&nbsp;||&nbsp;
-<a href="mask.html">Mask</a>&nbsp;||&nbsp;
-<a href="midi.html">Midi</a>&nbsp;||&nbsp;
-<a href="mixer.html">Mixer</a>&nbsp;||&nbsp;
-<a href="mouse.html">Mouse</a>&nbsp;||&nbsp;
-<a href="movie.html">Movie</a>&nbsp;||&nbsp;
-<a href="music.html">Music</a>&nbsp;||&nbsp;
-<a href="overlay.html">Overlay</a>&nbsp;||&nbsp;
-<a href="pixelarray.html">Pixelarray</a>&nbsp;||&nbsp;
-<a href="pygame.html">Pygame</a>&nbsp;||&nbsp;
-<a href="rect.html">Rect</a>&nbsp;||&nbsp;
-<a href="scrap.html">Scrap</a>&nbsp;||&nbsp;
-<a href="sndarray.html">Sndarray</a>&nbsp;||&nbsp;
-<a href="sprite.html">Sprite</a>&nbsp;||&nbsp;
-<a href="surface.html">Surface</a>&nbsp;||&nbsp;
-<a href="surfarray.html">Surfarray</a>&nbsp;||&nbsp;
-<a href="tests.html">Tests</a>&nbsp;||&nbsp;
-<a href="time.html">Time</a>&nbsp;||&nbsp;
-<a href="transform.html">Transform</a>
-</td></tr></table>
-<br>
-
-
-<a name="pygame.sndarray">
-<big><b>pygame.sndarray</big></b><br><ul>
- <i>pygame module for accessing sound sample data</i><br>
-<ul><small><table>
- <tr><td><a href="sndarray.html#pygame.sndarray.array">pygame.sndarray.array</a> - <font size=-1>copy Sound samples into an array</font></td><td>copy Sound samples into an array</td></tr>
- <tr><td><a href="sndarray.html#pygame.sndarray.samples">pygame.sndarray.samples</a> - <font size=-1>reference Sound samples into an array</font></td><td>reference Sound samples into an array</td></tr>
- <tr><td><a href="sndarray.html#pygame.sndarray.make_sound">pygame.sndarray.make_sound</a> - <font size=-1>convert an array into a Sound object</font></td><td>convert an array into a Sound object</td></tr>
- <tr><td><a href="sndarray.html#pygame.sndarray.use_arraytype">pygame.sndarray.use_arraytype</a> - <font size=-1>Sets the array system to be used for sound arrays</font></td><td>Sets the array system to be used for sound arrays</td></tr>
- <tr><td><a href="sndarray.html#pygame.sndarray.get_arraytype">pygame.sndarray.get_arraytype</a> - <font size=-1>Gets the currently active array type.</font></td><td>Gets the currently active array type.</td></tr>
- <tr><td><a href="sndarray.html#pygame.sndarray.get_arraytypes">pygame.sndarray.get_arraytypes</a> - <font size=-1>Gets the array system types currently supported.</font></td><td>Gets the array system types currently supported.</td></tr>
-</table></small></ul>
-<p>Functions to convert between Numeric or numpy arrays and Sound objects. This module will only be available when pygame can use the external numpy or Numeric package. </p>
-<p>Sound data is made of thousands of samples per second, and each sample is the amplitude of the wave at a particular moment in time. For example, in 22-kHz format, element number 5 of the array is the amplitude of the wave after 5/22000 seconds. </p>
-<p>Each sample is an 8-bit or 16-bit integer, depending on the data format. <tt>A</tt> stereo sound file has two values per sample, while a mono sound file only has one. </p>
-<p>Supported array systems are </p>
-<pre> numpy
- numeric
-</pre><p>The default will be numpy, if installed. Otherwise, Numeric will be set as default if installed. If neither numpy nor Numeric are installed, the module will raise an ImportError. </p>
-<p>The array type to use can be changed at runtime using the use_arraytype() method, which requires one of the above types as string. </p>
-<p>Note: numpy and Numeric are not completely compatible. Certain array manipulations, which work for one type, might behave differently or even completely break for the other. </p>
-<p>Additionally, in contrast to Numeric numpy can use unsigned 16-bit integers. Sounds with 16-bit data will be treated as unsigned integers, if the sound sample type requests this. Numeric instead always uses signed integers for the representation, which is important to keep in mind, if you use the module's functions and wonder about the values. </p>
-<!--COMMENTS:pygame.sndarray--> &nbsp;<br>
-
-
-<a name="pygame.sndarray.array">
-<big><b>pygame.sndarray.array</big></b><br><ul>
- <i>copy Sound samples into an array</i><br>
- <tt>pygame.sndarray.array(Sound): return array</tt><br>
-<p>Creates a new array for the sound data and copies the samples. The array will always be in the format returned from <tt><a href="mixer.html#pygame.mixer.get_init">pygame.mixer.get_init</a> - <font size=-1>test if the mixer is initialized</font></tt>. </p>
-<!--COMMENTS:pygame.sndarray.array--> &nbsp;<br>
-<br></ul>
-
-
-<a name="pygame.sndarray.samples">
-<big><b>pygame.sndarray.samples</big></b><br><ul>
- <i>reference Sound samples into an array</i><br>
- <tt>pygame.sndarray.samples(Sound): return array</tt><br>
-<p>Creates a new array that directly references the samples in a Sound object. Modifying the array will change the Sound. The array will always be in the format returned from <tt><a href="mixer.html#pygame.mixer.get_init">pygame.mixer.get_init</a> - <font size=-1>test if the mixer is initialized</font></tt>. </p>
-<!--COMMENTS:pygame.sndarray.samples--> &nbsp;<br>
-<br></ul>
-
-
-<a name="pygame.sndarray.make_sound">
-<big><b>pygame.sndarray.make_sound</big></b><br><ul>
- <i>convert an array into a Sound object</i><br>
- <tt>pygame.sndarray.make_sound(array): return Sound</tt><br>
-<p>Create a new playable Sound object from an array. The mixer module must be initialized and the array format must be similar to the mixer audio format. </p>
-<!--COMMENTS:pygame.sndarray.make_sound--> &nbsp;<br>
-<br></ul>
-
-
-<a name="pygame.sndarray.use_arraytype">
-<big><b>pygame.sndarray.use_arraytype</big></b><br><ul>
- <i>Sets the array system to be used for sound arrays</i><br>
- <tt>pygame.sndarray.use_arraytype (arraytype): return None</tt><br>
-<p>Uses the requested array type for the module functions. Currently supported array types are: </p>
-<pre> numeric
- numpy
-</pre><p>If the requested type is not available, a ValueError will be raised. </p>
-<p>New in pygame <tt>1.8</tt>. </p>
-<!--COMMENTS:pygame.sndarray.use_arraytype--> &nbsp;<br>
-<br></ul>
-
-
-<a name="pygame.sndarray.get_arraytype">
-<big><b>pygame.sndarray.get_arraytype</big></b><br><ul>
- <i>Gets the currently active array type.</i><br>
- <tt>pygame.sndarray.get_arraytype (): return str</tt><br>
-<p>Returns the currently active array type. This will be a value of the get_arraytypes() tuple and indicates which type of array module is used for the array creation. </p>
-<p>New in pygame <tt>1.8</tt> </p>
-<!--COMMENTS:pygame.sndarray.get_arraytype--> &nbsp;<br>
-<br></ul>
-
-
-<a name="pygame.sndarray.get_arraytypes">
-<big><b>pygame.sndarray.get_arraytypes</big></b><br><ul>
- <i>Gets the array system types currently supported.</i><br>
- <tt>pygame.sndarray.get_arraytypes (): return tuple</tt><br>
-<p>Checks, which array systems are available and returns them as a tuple of strings. The values of the tuple can be used directly in the <tt>pygame.sndarray.use_arraytype</tt> () method. If no supported array system could be found, None will be returned. </p>
-<p>New in pygame <tt>1.8</tt>. </p>
-<!--COMMENTS:pygame.sndarray.get_arraytypes--> &nbsp;<br>
-<br></ul>
-<br></ul>
-
-</body></html>
diff --git a/pygame/docs/ref/sprite.html b/pygame/docs/ref/sprite.html
deleted file mode 100755
index 97ac34d..0000000
--- a/pygame/docs/ref/sprite.html
+++ /dev/null
@@ -1,714 +0,0 @@
-
-<html>
-<title>sprite - Pygame Documentation</title>
-<body bgcolor=#aaeebb text=#000000 link=#331111 vlink=#331111>
-
-
-<table cellpadding=0 cellspacing=0 border=0 style='border: 3px solid black;' width='100%'>
-<tr>
-<td bgcolor='#c2fc20' style='padding: 6px;' align=center valign=center><a href='http://www.pygame.org/'><img src='../pygame_tiny.gif' border=0 width=200 height=60></a><br><b>pygame documentation</b></td>
-<td bgcolor='#6aee28' style='border-left: 3px solid black; padding: 6px;' align=center valign=center>
- ||&nbsp;
- <a href=http://www.pygame.org>Pygame Home</a> &nbsp;||&nbsp;
- <a href=../index.html>Help Contents</a> &nbsp;||
- <a href=index.html>Reference Index</a> &nbsp;||
- <br>&nbsp;<br>
-
-<a href="camera.html">Camera</a>&nbsp;||&nbsp;
-<a href="cdrom.html">Cdrom</a>&nbsp;||&nbsp;
-<a href="color.html">Color</a>&nbsp;||&nbsp;
-<a href="cursors.html">Cursors</a>&nbsp;||&nbsp;
-<a href="display.html">Display</a>&nbsp;||&nbsp;
-<a href="draw.html">Draw</a>&nbsp;||&nbsp;
-<a href="event.html">Event</a>&nbsp;||&nbsp;
-<a href="examples.html">Examples</a>&nbsp;||&nbsp;
-<a href="font.html">Font</a>&nbsp;||&nbsp;
-<a href="gfxdraw.html">Gfxdraw</a>&nbsp;||&nbsp;
-<a href="image.html">Image</a>&nbsp;||&nbsp;
-<a href="joystick.html">Joystick</a>&nbsp;||&nbsp;
-<a href="key.html">Key</a>&nbsp;||&nbsp;
-<a href="locals.html">Locals</a>&nbsp;||&nbsp;
-<a href="mask.html">Mask</a>&nbsp;||&nbsp;
-<a href="midi.html">Midi</a>&nbsp;||&nbsp;
-<a href="mixer.html">Mixer</a>&nbsp;||&nbsp;
-<a href="mouse.html">Mouse</a>&nbsp;||&nbsp;
-<a href="movie.html">Movie</a>&nbsp;||&nbsp;
-<a href="music.html">Music</a>&nbsp;||&nbsp;
-<a href="overlay.html">Overlay</a>&nbsp;||&nbsp;
-<a href="pixelarray.html">Pixelarray</a>&nbsp;||&nbsp;
-<a href="pygame.html">Pygame</a>&nbsp;||&nbsp;
-<a href="rect.html">Rect</a>&nbsp;||&nbsp;
-<a href="scrap.html">Scrap</a>&nbsp;||&nbsp;
-<a href="sndarray.html">Sndarray</a>&nbsp;||&nbsp;
-<a href="sprite.html">Sprite</a>&nbsp;||&nbsp;
-<a href="surface.html">Surface</a>&nbsp;||&nbsp;
-<a href="surfarray.html">Surfarray</a>&nbsp;||&nbsp;
-<a href="tests.html">Tests</a>&nbsp;||&nbsp;
-<a href="time.html">Time</a>&nbsp;||&nbsp;
-<a href="transform.html">Transform</a>
-</td></tr></table>
-<br>
-
-
-<a name="pygame.sprite">
-<big><b>pygame.sprite</big></b><br><ul>
- <i>pygame module with basic game object classes</i><br>
-<ul><small><table>
- <tr><td><a href="sprite.html#pygame.sprite.Sprite">pygame.sprite.Sprite</a> - <font size=-1>simple base class for visible game objects</font></td><td>simple base class for visible game objects</td></tr>
- <tr><td><a href="sprite.html#pygame.sprite.DirtySprite">pygame.sprite.DirtySprite</a> - <font size=-1>a more featureful subclass of Sprite with more attributes</font></td><td>a more featureful subclass of Sprite with more attributes</td></tr>
- <tr><td><a href="sprite.html#pygame.sprite.Group">pygame.sprite.Group</a> - <font size=-1>container class for many Sprites</font></td><td>container class for many Sprites</td></tr>
- <tr><td><a href="sprite.html#pygame.sprite.RenderUpdates">pygame.sprite.RenderUpdates</a> - <font size=-1>Group class that tracks dirty updates</font></td><td>Group class that tracks dirty updates</td></tr>
- <tr><td><a href="sprite.html#pygame.sprite.OrderedUpdates">pygame.sprite.OrderedUpdates</a> - <font size=-1>RenderUpdates class that draws Sprites in order of addition</font></td><td>RenderUpdates class that draws Sprites in order of addition</td></tr>
- <tr><td><a href="sprite.html#pygame.sprite.LayeredUpdates">pygame.sprite.LayeredUpdates</a> - <font size=-1>LayeredUpdates Group handles layers, that draws like OrderedUpdates.</font></td><td>LayeredUpdates Group handles layers, that draws like OrderedUpdates.</td></tr>
- <tr><td><a href="sprite.html#pygame.sprite.LayeredDirty">pygame.sprite.LayeredDirty</a> - <font size=-1>LayeredDirty Group is for DirtySprites. Subclasses LayeredUpdates.</font></td><td>LayeredDirty Group is for DirtySprites. Subclasses LayeredUpdates.</td></tr>
- <tr><td><a href="sprite.html#pygame.sprite.GroupSingle">pygame.sprite.GroupSingle</a> - <font size=-1>Group container that holds a single Sprite</font></td><td>Group container that holds a single Sprite</td></tr>
- <tr><td><a href="sprite.html#pygame.sprite.spritecollide">pygame.sprite.spritecollide</a> - <font size=-1>find Sprites in a Group that intersect another Sprite</font></td><td>find Sprites in a Group that intersect another Sprite</td></tr>
- <tr><td><a href="sprite.html#pygame.sprite.collide_rect">pygame.sprite.collide_rect</a> - <font size=-1>collision detection between two sprites, using rects.</font></td><td>collision detection between two sprites, using rects.</td></tr>
- <tr><td><a href="sprite.html#pygame.sprite.collide_rect_ratio">pygame.sprite.collide_rect_ratio</a> - <font size=-1>collision detection between two sprites, using rects scaled to a ratio.</font></td><td>collision detection between two sprites, using rects scaled to a ratio.</td></tr>
- <tr><td><a href="sprite.html#pygame.sprite.collide_circle">pygame.sprite.collide_circle</a> - <font size=-1>collision detection between two sprites, using circles.</font></td><td>collision detection between two sprites, using circles.</td></tr>
- <tr><td><a href="sprite.html#pygame.sprite.collide_circle_ratio">pygame.sprite.collide_circle_ratio</a> - <font size=-1>collision detection between two sprites, using circles scaled to a ratio.</font></td><td>collision detection between two sprites, using circles scaled to a ratio.</td></tr>
- <tr><td><a href="sprite.html#pygame.sprite.collide_mask">pygame.sprite.collide_mask</a> - <font size=-1>collision detection between two sprites, using masks.</font></td><td>collision detection between two sprites, using masks.</td></tr>
- <tr><td><a href="sprite.html#pygame.sprite.groupcollide">pygame.sprite.groupcollide</a> - <font size=-1>find all Sprites that collide between two Groups</font></td><td>find all Sprites that collide between two Groups</td></tr>
- <tr><td><a href="sprite.html#pygame.sprite.spritecollideany">pygame.sprite.spritecollideany</a> - <font size=-1>simple test if a Sprite intersects anything in a Group</font></td><td>simple test if a Sprite intersects anything in a Group</td></tr>
- <tr><td>None</td><td></td></tr>
-</table></small></ul>
-<p>This module contains several simple classes to be used within games. There is the main Sprite class and several Group classes that contain Sprites. The use of these classes is entirely optional when using Pygame. The classes are fairly lightweight and only provide a starting place for the code that is common to most games. </p>
-<p>The Sprite class is intended to be used as a base class for the different types of objects in the game. There is also a base Group class that simply stores sprites. <tt>A</tt> game could create new types of Group classes that operate on specially customized Sprite instances they contain. </p>
-<p>The basic Sprite class can draw the Sprites it contains to a Surface. The <tt><a href="sprite.html#Group.draw">Group.draw</a> - <font size=-1>blit the Sprite images</font></tt> method requires that each Sprite have a <tt>Surface.image</tt> attribute and a <tt>Surface.rect</tt>. The <tt><a href="sprite.html#Group.clear">Group.clear</a> - <font size=-1>draw a background over the Sprites</font></tt> method requires these same attributes, and can be used to erase all the Sprites with background. There are also more advanced Groups: <tt><a href="sprite.html#pygame.sprite.RenderUpdates">pygame.sprite.RenderUpdates</a> - <font size=-1>Group class that tracks dirty updates</font></tt> and <tt><a href="sprite.html#pygame.sprite.OrderedUpdates">pygame.sprite.OrderedUpdates</a> - <font size=-1>RenderUpdates class that draws Sprites in order of addition</font></tt>. </p>
-<p>Lastly, this module contains several collision functions. These help find sprites inside multiple groups that have intersecting bounding rectangles. To find the collisions, the Sprites are required to have a <tt>Surface.rect</tt> attribute assigned. </p>
-<p>The groups are designed for high efficiency in removing and adding Sprites to them. They also allow cheap testing to see if a Sprite already exists in a Group. <tt>A</tt> given Sprite can exist in any number of groups. <tt>A</tt> game could use some groups to control object rendering, and a completely separate set of groups to control interaction or player movement. Instead of adding type attributes or bools to a derived Sprite class, consider keeping the Sprites inside organized Groups. This will allow for easier lookup later in the game. </p>
-<p>Sprites and Groups manage their relationships with the add() and remove() methods. These methods can accept a single or multiple targets for membership. The default initializers for these classes also takes a single or list of targets for initial membership. It is safe to repeatedly add and remove the same Sprite from a Group. </p>
-<p>While it is possible to design sprite and group classes that don't derive from the Sprite and AbstractGroup classes below, it is strongly recommended that you extend those when you add a Sprite or Group class. </p>
-<p>Sprites are not thread safe. So lock them yourself if using threads. </p>
-<!--COMMENTS:pygame.sprite--> &nbsp;<br>
-
-
-<a name="pygame.sprite.Sprite">
-<big><b>pygame.sprite.Sprite</big></b><br><ul>
- <i>simple base class for visible game objects</i><br>
- <tt>pygame.sprite.Sprite(*groups): return Sprite</tt><br>
-<ul><small><table>
- <tr><td><a href="sprite.html#Sprite.update">Sprite.update</a> - <font size=-1>method to control sprite behavior</font></td><td>method to control sprite behavior</td></tr>
- <tr><td><a href="sprite.html#Sprite.add">Sprite.add</a> - <font size=-1>add the sprite to groups</font></td><td>add the sprite to groups</td></tr>
- <tr><td><a href="sprite.html#Sprite.remove">Sprite.remove</a> - <font size=-1>remove the sprite from groups</font></td><td>remove the sprite from groups</td></tr>
- <tr><td><a href="sprite.html#Sprite.kill">Sprite.kill</a> - <font size=-1>remove the Sprite from all Groups</font></td><td>remove the Sprite from all Groups</td></tr>
- <tr><td><a href="sprite.html#Sprite.alive">Sprite.alive</a> - <font size=-1>does the sprite belong to any groups</font></td><td>does the sprite belong to any groups</td></tr>
- <tr><td><a href="sprite.html#Sprite.groups">Sprite.groups</a> - <font size=-1>list of Groups that contain this Sprite</font></td><td>list of Groups that contain this Sprite</td></tr>
-</table></small></ul>
-<p>The base class for visible game objects. Derived classes will want to override the <tt><a href="sprite.html#Sprite.update">Sprite.update</a> - <font size=-1>method to control sprite behavior</font></tt> and assign a <tt>Sprite.image</tt> and <tt>Sprite.rect</tt> attributes. The initializer can accept any number of Group instances to be added to. </p>
-<p>When subclassing the Sprite, be sure to call the base initializer before adding the Sprite to Groups. </p>
-<!--COMMENTS:pygame.sprite.Sprite--> &nbsp;<br>
-
-
-<a name="Sprite.update">
-<big><b>Sprite.update</big></b><br><ul>
- <i>method to control sprite behavior</i><br>
- <tt>Sprite.update(*args):</tt><br>
-<p>The default implementation of this method does nothing; it's just a convenient "hook" that you can override. This method is called by <tt><a href="sprite.html#Group.update">Group.update</a> - <font size=-1>call the update method on contained Sprites</font></tt> with whatever arguments you give it. </p>
-<p>There is no need to use this method if not using the convenience method by the same name in the Group class. </p>
-<!--COMMENTS:Sprite.update--> &nbsp;<br>
-<br></ul>
-
-
-<a name="Sprite.add">
-<big><b>Sprite.add</big></b><br><ul>
- <i>add the sprite to groups</i><br>
- <tt>Sprite.add(*groups): return None</tt><br>
-<p>Any number of Group instances can be passed as arguments. The Sprite will be added to the Groups it is not already a member of. </p>
-<!--COMMENTS:Sprite.add--> &nbsp;<br>
-<br></ul>
-
-
-<a name="Sprite.remove">
-<big><b>Sprite.remove</big></b><br><ul>
- <i>remove the sprite from groups</i><br>
- <tt>Sprite.remove(*groups): return None</tt><br>
-<p>Any number of Group instances can be passed as arguments. The Sprite will be removed from the Groups it is currently a member of. </p>
-<!--COMMENTS:Sprite.remove--> &nbsp;<br>
-<br></ul>
-
-
-<a name="Sprite.kill">
-<big><b>Sprite.kill</big></b><br><ul>
- <i>remove the Sprite from all Groups</i><br>
- <tt>Sprite.kill(): return None</tt><br>
-<p>The Sprite is removed from all the Groups that contain it. This won't change anything about the state of the Sprite. It is possible to continue to use the Sprite after this method has been called, including adding it to Groups. </p>
-<!--COMMENTS:Sprite.kill--> &nbsp;<br>
-<br></ul>
-
-
-<a name="Sprite.alive">
-<big><b>Sprite.alive</big></b><br><ul>
- <i>does the sprite belong to any groups</i><br>
- <tt>Sprite.alive(): return bool</tt><br>
-<p>Returns True when the Sprite belongs to one or more Groups. </p>
-<!--COMMENTS:Sprite.alive--> &nbsp;<br>
-<br></ul>
-
-
-<a name="Sprite.groups">
-<big><b>Sprite.groups</big></b><br><ul>
- <i>list of Groups that contain this Sprite</i><br>
- <tt>Sprite.groups(): return group_list</tt><br>
-<p>Return a list of all the Groups that contain this Sprite. </p>
-<!--COMMENTS:Sprite.groups--> &nbsp;<br>
-<br></ul>
-<br></ul>
-
-
-<a name="pygame.sprite.DirtySprite">
-<big><b>pygame.sprite.DirtySprite</big></b><br><ul>
- <i>a more featureful subclass of Sprite with more attributes</i><br>
- <tt>pygame.sprite.DirtySprite(*groups): return DirtySprite</tt><br>
-<ul><small><table>
- <tr><td>None</td><td></td></tr>
-</table></small></ul>
-<p>Extra DirtySprite attributes with their default values: </p>
-<p>dirty = 1 </p>
-<pre> if set to 1, it is repainted and then set to 0 again
- if set to 2 then it is always dirty ( repainted each frame,
- flag is not reset)
- 0 means that it is not dirty and therefor not repainted again
-</pre><p>blendmode = 0 </p>
-<pre> its the special_flags argument of blit, blendmodes
-</pre><p>source_rect = None </p>
-<pre> source rect to use, remember that it is relative to
- topleft (0,0) of self.image
-</pre><p>visible = 1 </p>
-<pre> normally 1, if set to 0 it will not be repainted
- (you must set it dirty too to be erased from screen)
-</pre><p>layer = 0 </p>
-<pre> (READONLY value, it is read when adding it to the
- LayeredRenderGroup, for details see doc of LayeredRenderGroup)
-</pre>
-<!--COMMENTS:pygame.sprite.DirtySprite--> &nbsp;<br>
-
-
-<a name="">
-<big><b></big></b><br><ul>
- &nbsp;<br>
-<!--COMMENTS:--> &nbsp;<br>
-<br></ul>
-<br></ul>
-
-
-<a name="pygame.sprite.Group">
-<big><b>pygame.sprite.Group</big></b><br><ul>
- <i>container class for many Sprites</i><br>
- <tt>pygame.sprite.Group(*sprites): return Group</tt><br>
-<ul><small><table>
- <tr><td><a href="sprite.html#Group.sprites">Group.sprites</a> - <font size=-1>list of the Sprites this Group contains</font></td><td>list of the Sprites this Group contains</td></tr>
- <tr><td><a href="sprite.html#Group.copy">Group.copy</a> - <font size=-1>duplicate the Group</font></td><td>duplicate the Group</td></tr>
- <tr><td><a href="sprite.html#Group.add">Group.add</a> - <font size=-1>add Sprites to this Group</font></td><td>add Sprites to this Group</td></tr>
- <tr><td><a href="sprite.html#Group.remove">Group.remove</a> - <font size=-1>remove Sprites from the Group</font></td><td>remove Sprites from the Group</td></tr>
- <tr><td><a href="sprite.html#Group.has">Group.has</a> - <font size=-1>test if a Group contains Sprites</font></td><td>test if a Group contains Sprites</td></tr>
- <tr><td><a href="sprite.html#Group.update">Group.update</a> - <font size=-1>call the update method on contained Sprites</font></td><td>call the update method on contained Sprites</td></tr>
- <tr><td><a href="sprite.html#Group.draw">Group.draw</a> - <font size=-1>blit the Sprite images</font></td><td>blit the Sprite images</td></tr>
- <tr><td><a href="sprite.html#Group.clear">Group.clear</a> - <font size=-1>draw a background over the Sprites</font></td><td>draw a background over the Sprites</td></tr>
- <tr><td><a href="sprite.html#Group.empty">Group.empty</a> - <font size=-1>remove all Sprites</font></td><td>remove all Sprites</td></tr>
-</table></small></ul>
-<p><tt>A</tt> simple container for Sprite objects. This class can be inherited to create containers with more specific behaviors. The constructor takes any number of Sprite arguments to add to the Group. The group supports the following standard Python operations: </p>
-<pre> in test if a Sprite is contained
- len the number of Sprites contained
- bool test if any Sprites are contained
- iter iterate through all the Sprites
-</pre><p>The Sprites in the Group are not ordered, so drawing and iterating the Sprites is in no particular order. </p>
-<!--COMMENTS:pygame.sprite.Group--> &nbsp;<br>
-
-
-<a name="Group.sprites">
-<big><b>Group.sprites</big></b><br><ul>
- <i>list of the Sprites this Group contains</i><br>
- <tt>Group.sprites(): return sprite_list</tt><br>
-<p>Return a list of all the Sprites this group contains. You can also get an iterator from the group, but you cannot iterator over a Group while modifying it. </p>
-<!--COMMENTS:Group.sprites--> &nbsp;<br>
-<br></ul>
-
-
-<a name="Group.copy">
-<big><b>Group.copy</big></b><br><ul>
- <i>duplicate the Group</i><br>
- <tt>Group.copy(): return Group</tt><br>
-<p>Creates a new Group with all the same Sprites as the original. If you have subclassed Group, the new object will have the same (sub-)class as the original. This only works if the derived class's constructor takes the same arguments as the Group class's. </p>
-<!--COMMENTS:Group.copy--> &nbsp;<br>
-<br></ul>
-
-
-<a name="Group.add">
-<big><b>Group.add</big></b><br><ul>
- <i>add Sprites to this Group</i><br>
- <tt>Group.add(*sprites): return None</tt><br>
-<p>Add any number of Sprites to this Group. This will only add Sprites that are not already members of the Group. </p>
-<p>Each sprite argument can also be a iterator containing Sprites. </p>
-<!--COMMENTS:Group.add--> &nbsp;<br>
-<br></ul>
-
-
-<a name="Group.remove">
-<big><b>Group.remove</big></b><br><ul>
- <i>remove Sprites from the Group</i><br>
- <tt>Group.remove(*sprites): return None</tt><br>
-<p>Remove any number of Sprites from the Group. This will only remove Sprites that are already members of the Group. </p>
-<p>Each sprite argument can also be a iterator containing Sprites. </p>
-<!--COMMENTS:Group.remove--> &nbsp;<br>
-<br></ul>
-
-
-<a name="Group.has">
-<big><b>Group.has</big></b><br><ul>
- <i>test if a Group contains Sprites</i><br>
- <tt>Group.has(*sprites): return None</tt><br>
-<p>Return True if the Group contains all of the given sprites. This is similar to using the "in" operator on the Group ("if sprite in group: <tt>...")</tt>, which tests if a single Sprite belongs to a Group. </p>
-<p>Each sprite argument can also be a iterator containing Sprites. </p>
-<!--COMMENTS:Group.has--> &nbsp;<br>
-<br></ul>
-
-
-<a name="Group.update">
-<big><b>Group.update</big></b><br><ul>
- <i>call the update method on contained Sprites</i><br>
- <tt>Group.update(*args): return None</tt><br>
-<p>Calls the update() method on all Sprites in the Group. The base Sprite class has an update method that takes any number of arguments and does nothing. The arguments passed to <tt><a href="sprite.html#Group.update">Group.update</a> - <font size=-1>call the update method on contained Sprites</font></tt> will be passed to each Sprite. </p>
-<p>There is no way to get the return value from the <tt><a href="sprite.html#Sprite.update">Sprite.update</a> - <font size=-1>method to control sprite behavior</font></tt> methods. </p>
-<!--COMMENTS:Group.update--> &nbsp;<br>
-<br></ul>
-
-
-<a name="Group.draw">
-<big><b>Group.draw</big></b><br><ul>
- <i>blit the Sprite images</i><br>
- <tt>Group.draw(Surface): return None</tt><br>
-<p>Draws the contained Sprites to the Surface argument. This uses the <tt>Sprite.image</tt> attribute for the source surface, and <tt>Sprite.rect</tt> for the position. </p>
-<p>The Group does not keep sprites in any order, so the draw order is arbitrary. </p>
-<!--COMMENTS:Group.draw--> &nbsp;<br>
-<br></ul>
-
-
-<a name="Group.clear">
-<big><b>Group.clear</big></b><br><ul>
- <i>draw a background over the Sprites</i><br>
- <tt>Group.clear(Surface_dest, background): return None</tt><br>
-<p>Erases the Sprites used in the last <tt><a href="sprite.html#Group.draw">Group.draw</a> - <font size=-1>blit the Sprite images</font></tt> call. The destination Surface is cleared by filling the drawn Sprite positions with the background. </p>
-<p>The background is usually a Surface image the same dimensions as the destination Surface. However, it can also be a callback function that takes two arguments; the destination Surface and an area to clear. The background callback function will be called several times each clear. </p>
-<p>Here is an example callback that will clear the Sprites with solid red: </p>
-<pre> def clear_callback(surf, rect):
- color = 255, 0, 0
- surf.fill(color, rect)
-</pre>
-<!--COMMENTS:Group.clear--> &nbsp;<br>
-<br></ul>
-
-
-<a name="Group.empty">
-<big><b>Group.empty</big></b><br><ul>
- <i>remove all Sprites</i><br>
- <tt>Group.empty(): return None</tt><br>
-<p>Removes all Sprites from this Group. </p>
-<!--COMMENTS:Group.empty--> &nbsp;<br>
-<br></ul>
-<br></ul>
-
-
-<a name="pygame.sprite.RenderUpdates">
-<big><b>pygame.sprite.RenderUpdates</big></b><br><ul>
- <i>Group class that tracks dirty updates</i><br>
- <tt>pygame.sprite.RenderUpdates(*sprites): return RenderUpdates</tt><br>
-<ul><small><table>
- <tr><td><a href="sprite.html#RenderUpdates.draw">RenderUpdates.draw</a> - <font size=-1>blit the Sprite images and track changed areas</font></td><td>blit the Sprite images and track changed areas</td></tr>
-</table></small></ul>
-<p>This class is derived from <tt><a href="sprite.html#pygame.sprite.Group">pygame.sprite.Group</a> - <font size=-1>container class for many Sprites</font></tt>. It has an extended draw() method that tracks the changed areas of the screen. </p>
-<!--COMMENTS:pygame.sprite.RenderUpdates--> &nbsp;<br>
-
-
-<a name="RenderUpdates.draw">
-<big><b>RenderUpdates.draw</big></b><br><ul>
- <i>blit the Sprite images and track changed areas</i><br>
- <tt>RenderUpdates.draw(surface): return Rect_list</tt><br>
-<p>Draws all the Sprites to the surface, the same as <tt><a href="sprite.html#Group.draw">Group.draw</a> - <font size=-1>blit the Sprite images</font></tt>. This method also returns a list of Rectangular areas on the screen that have been changed. The returned changes include areas of the screen that have been affected by previous <tt><a href="sprite.html#Group.clear">Group.clear</a> - <font size=-1>draw a background over the Sprites</font></tt> calls. </p>
-<p>The returned Rect list should be passed to <tt><a href="display.html#pygame.display.update">pygame.display.update</a> - <font size=-1>update portions of the screen for software displays</font></tt>. This will help performance on software driven display modes. This type of updating is usually only helpful on destinations with non-animating backgrounds. </p>
-<!--COMMENTS:RenderUpdates.draw--> &nbsp;<br>
-<br></ul>
-<br></ul>
-
-
-<a name="pygame.sprite.OrderedUpdates">
-<big><b>pygame.sprite.OrderedUpdates</big></b><br><ul>
- <i>RenderUpdates class that draws Sprites in order of addition</i><br>
- <tt>pygame.sprite.OrderedUpdates(*spites): return OrderedUpdates</tt><br>
-<p>This class derives from <tt><a href="sprite.html#pygame.sprite.RenderUpdates">pygame.sprite.RenderUpdates</a> - <font size=-1>Group class that tracks dirty updates</font></tt>. It maintains the order in which the Sprites were added to the Group for rendering. This makes adding and removing Sprites from the Group a little slower than regular Groups. </p>
-<!--COMMENTS:pygame.sprite.OrderedUpdates--> &nbsp;<br>
-<br></ul>
-
-
-<a name="pygame.sprite.LayeredUpdates">
-<big><b>pygame.sprite.LayeredUpdates</big></b><br><ul>
- <i>LayeredUpdates Group handles layers, that draws like OrderedUpdates.</i><br>
- <tt>pygame.sprite.LayeredUpdates(*spites, **kwargs): return LayeredUpdates</tt><br>
-<ul><small><table>
- <tr><td><a href="sprite.html#LayeredUpdates.add">LayeredUpdates.add</a> - <font size=-1>add a sprite or sequence of sprites to a group</font></td><td>add a sprite or sequence of sprites to a group</td></tr>
- <tr><td><a href="sprite.html#LayeredUpdates.sprites">LayeredUpdates.sprites</a> - <font size=-1>returns a ordered list of sprites (first back, last top).</font></td><td>returns a ordered list of sprites (first back, last top).</td></tr>
- <tr><td><a href="sprite.html#LayeredUpdates.draw">LayeredUpdates.draw</a> - <font size=-1>draw all sprites in the right order onto the passed surface.</font></td><td>draw all sprites in the right order onto the passed surface.</td></tr>
- <tr><td><a href="sprite.html#LayeredUpdates.get_sprites_at">LayeredUpdates.get_sprites_at</a> - <font size=-1>returns a list with all sprites at that position.</font></td><td>returns a list with all sprites at that position.</td></tr>
- <tr><td><a href="sprite.html#LayeredUpdates.get_sprite">LayeredUpdates.get_sprite</a> - <font size=-1>returns the sprite at the index idx from the groups sprites</font></td><td>returns the sprite at the index idx from the groups sprites</td></tr>
- <tr><td><a href="sprite.html#LayeredUpdates.remove_sprites_of_layer">LayeredUpdates.remove_sprites_of_layer</a> - <font size=-1>removes all sprites from a layer and returns them as a list.</font></td><td>removes all sprites from a layer and returns them as a list.</td></tr>
- <tr><td><a href="sprite.html#LayeredUpdates.layers">LayeredUpdates.layers</a> - <font size=-1>returns a list of layers defined (unique), sorted from botton up.</font></td><td>returns a list of layers defined (unique), sorted from botton up.</td></tr>
- <tr><td><a href="sprite.html#LayeredUpdates.change_layer">LayeredUpdates.change_layer</a> - <font size=-1>changes the layer of the sprite</font></td><td>changes the layer of the sprite</td></tr>
- <tr><td><a href="sprite.html#LayeredUpdates.get_layer_of_sprite">LayeredUpdates.get_layer_of_sprite</a> - <font size=-1>returns the layer that sprite is currently in.</font></td><td>returns the layer that sprite is currently in.</td></tr>
- <tr><td><a href="sprite.html#LayeredUpdates.get_top_layer">LayeredUpdates.get_top_layer</a> - <font size=-1>returns the top layer</font></td><td>returns the top layer</td></tr>
- <tr><td><a href="sprite.html#LayeredUpdates.get_bottom_layer">LayeredUpdates.get_bottom_layer</a> - <font size=-1>returns the bottom layer</font></td><td>returns the bottom layer</td></tr>
- <tr><td><a href="sprite.html#LayeredUpdates.move_to_front">LayeredUpdates.move_to_front</a> - <font size=-1>brings the sprite to front layer</font></td><td>brings the sprite to front layer</td></tr>
- <tr><td><a href="sprite.html#LayeredUpdates.move_to_back">LayeredUpdates.move_to_back</a> - <font size=-1>moves the sprite to the bottom layer</font></td><td>moves the sprite to the bottom layer</td></tr>
- <tr><td><a href="sprite.html#LayeredUpdates.get_top_sprite">LayeredUpdates.get_top_sprite</a> - <font size=-1>returns the topmost sprite</font></td><td>returns the topmost sprite</td></tr>
- <tr><td><a href="sprite.html#LayeredUpdates.get_sprites_from_layer">LayeredUpdates.get_sprites_from_layer</a> - <font size=-1>returns all sprites from a layer, ordered by how they where added</font></td><td>returns all sprites from a layer, ordered by how they where added</td></tr>
- <tr><td><a href="sprite.html#LayeredUpdates.switch_layer">LayeredUpdates.switch_layer</a> - <font size=-1>switches the sprites from layer1 to layer2</font></td><td>switches the sprites from layer1 to layer2</td></tr>
-</table></small></ul>
-<p>This group is fully compatible with <tt>pygame.sprite.Sprite</tt>. </p>
-<p>You can set the default layer through kwargs using 'default_layer' and an integer for the layer. The default layer is 0. </p>
-<p>If the sprite you add has an attribute layer then that layer will be used. If the **kwarg contains 'layer' then the sprites passed will be added to that layer (overriding the <tt>sprite.layer</tt> attribute). If neither sprite has attribute layer nor **kwarg then the default layer is used to add the sprites. </p>
-<p>New in pygame <tt>1.8.0</tt> </p>
-<!--COMMENTS:pygame.sprite.LayeredUpdates--> &nbsp;<br>
-
-
-<a name="LayeredUpdates.add">
-<big><b>LayeredUpdates.add</big></b><br><ul>
- <i>add a sprite or sequence of sprites to a group</i><br>
- <tt>LayeredUpdates.add(*sprites, **kwargs): return None</tt><br>
-<p>If the sprite(s) have an attribute layer then that is used for the layer. If **kwargs contains 'layer' then the sprite(s) will be added to that argument (overriding the sprite layer attribute). If neither is passed then the sprite(s) will be added to the default layer. </p>
-<!--COMMENTS:LayeredUpdates.add--> &nbsp;<br>
-<br></ul>
-
-
-<a name="LayeredUpdates.sprites">
-<big><b>LayeredUpdates.sprites</big></b><br><ul>
- <i>returns a ordered list of sprites (first back, last top).</i><br>
- <tt>LayeredUpdates.sprites(): return sprites</tt><br>
- &nbsp;<br>
-<!--COMMENTS:LayeredUpdates.sprites--> &nbsp;<br>
-<br></ul>
-
-
-<a name="LayeredUpdates.draw">
-<big><b>LayeredUpdates.draw</big></b><br><ul>
- <i>draw all sprites in the right order onto the passed surface.</i><br>
- <tt>LayeredUpdates.draw(surface): return Rect_list</tt><br>
- &nbsp;<br>
-<!--COMMENTS:LayeredUpdates.draw--> &nbsp;<br>
-<br></ul>
-
-
-<a name="LayeredUpdates.get_sprites_at">
-<big><b>LayeredUpdates.get_sprites_at</big></b><br><ul>
- <i>returns a list with all sprites at that position.</i><br>
- <tt>LayeredUpdates.get_sprites_at(pos): return colliding_sprites</tt><br>
-<p>Bottom sprites first, top last. </p>
-<!--COMMENTS:LayeredUpdates.get_sprites_at--> &nbsp;<br>
-<br></ul>
-
-
-<a name="LayeredUpdates.get_sprite">
-<big><b>LayeredUpdates.get_sprite</big></b><br><ul>
- <i>returns the sprite at the index idx from the groups sprites</i><br>
- <tt>LayeredUpdates.get_sprite(idx): return sprite</tt><br>
-<p>Raises IndexOutOfBounds if the idx is not within range. </p>
-<!--COMMENTS:LayeredUpdates.get_sprite--> &nbsp;<br>
-<br></ul>
-
-
-<a name="LayeredUpdates.remove_sprites_of_layer">
-<big><b>LayeredUpdates.remove_sprites_of_layer</big></b><br><ul>
- <i>removes all sprites from a layer and returns them as a list.</i><br>
- <tt>LayeredUpdates.remove_sprites_of_layer(layer_nr): return sprites</tt><br>
- &nbsp;<br>
-<!--COMMENTS:LayeredUpdates.remove_sprites_of_layer--> &nbsp;<br>
-<br></ul>
-
-
-<a name="LayeredUpdates.layers">
-<big><b>LayeredUpdates.layers</big></b><br><ul>
- <i>returns a list of layers defined (unique), sorted from botton up.</i><br>
- <tt>LayeredUpdates.layers(): return layers</tt><br>
- &nbsp;<br>
-<!--COMMENTS:LayeredUpdates.layers--> &nbsp;<br>
-<br></ul>
-
-
-<a name="LayeredUpdates.change_layer">
-<big><b>LayeredUpdates.change_layer</big></b><br><ul>
- <i>changes the layer of the sprite</i><br>
- <tt>LayeredUpdates.change_layer(sprite, new_layer): return None</tt><br>
-<p>sprite must have been added to the renderer. It is not checked. </p>
-<!--COMMENTS:LayeredUpdates.change_layer--> &nbsp;<br>
-<br></ul>
-
-
-<a name="LayeredUpdates.get_layer_of_sprite">
-<big><b>LayeredUpdates.get_layer_of_sprite</big></b><br><ul>
- <i>returns the layer that sprite is currently in.</i><br>
- <tt>LayeredUpdates.get_layer_of_sprite(sprite): return layer</tt><br>
-<p>If the sprite is not found then it will return the default layer. </p>
-<!--COMMENTS:LayeredUpdates.get_layer_of_sprite--> &nbsp;<br>
-<br></ul>
-
-
-<a name="LayeredUpdates.get_top_layer">
-<big><b>LayeredUpdates.get_top_layer</big></b><br><ul>
- <i>returns the top layer</i><br>
- <tt>LayeredUpdates.get_top_layer(): return layer</tt><br>
- &nbsp;<br>
-<!--COMMENTS:LayeredUpdates.get_top_layer--> &nbsp;<br>
-<br></ul>
-
-
-<a name="LayeredUpdates.get_bottom_layer">
-<big><b>LayeredUpdates.get_bottom_layer</big></b><br><ul>
- <i>returns the bottom layer</i><br>
- <tt>LayeredUpdates.get_bottom_layer(): return layer</tt><br>
- &nbsp;<br>
-<!--COMMENTS:LayeredUpdates.get_bottom_layer--> &nbsp;<br>
-<br></ul>
-
-
-<a name="LayeredUpdates.move_to_front">
-<big><b>LayeredUpdates.move_to_front</big></b><br><ul>
- <i>brings the sprite to front layer</i><br>
- <tt>LayeredUpdates.move_to_front(sprite): return None</tt><br>
-<p>Brings the sprite to front, changing sprite layer to topmost layer (added at the end of that layer). </p>
-<!--COMMENTS:LayeredUpdates.move_to_front--> &nbsp;<br>
-<br></ul>
-
-
-<a name="LayeredUpdates.move_to_back">
-<big><b>LayeredUpdates.move_to_back</big></b><br><ul>
- <i>moves the sprite to the bottom layer</i><br>
- <tt>LayeredUpdates.move_to_back(sprite): return None</tt><br>
-<p>Moves the sprite to the bottom layer, moving it behind all other layers and adding one additional layer. </p>
-<!--COMMENTS:LayeredUpdates.move_to_back--> &nbsp;<br>
-<br></ul>
-
-
-<a name="LayeredUpdates.get_top_sprite">
-<big><b>LayeredUpdates.get_top_sprite</big></b><br><ul>
- <i>returns the topmost sprite</i><br>
- <tt>LayeredUpdates.get_top_sprite(): return Sprite</tt><br>
- &nbsp;<br>
-<!--COMMENTS:LayeredUpdates.get_top_sprite--> &nbsp;<br>
-<br></ul>
-
-
-<a name="LayeredUpdates.get_sprites_from_layer">
-<big><b>LayeredUpdates.get_sprites_from_layer</big></b><br><ul>
- <i>returns all sprites from a layer, ordered by how they where added</i><br>
- <tt>LayeredUpdates.get_sprites_from_layer(layer): return sprites</tt><br>
-<p>Returns all sprites from a layer, ordered by how they where added. It uses linear search and the sprites are not removed from layer. </p>
-<!--COMMENTS:LayeredUpdates.get_sprites_from_layer--> &nbsp;<br>
-<br></ul>
-
-
-<a name="LayeredUpdates.switch_layer">
-<big><b>LayeredUpdates.switch_layer</big></b><br><ul>
- <i>switches the sprites from layer1 to layer2</i><br>
- <tt>LayeredUpdates.switch_layer(layer1_nr, layer2_nr): return None</tt><br>
-<p>The layers number must exist, it is not checked. </p>
-<!--COMMENTS:LayeredUpdates.switch_layer--> &nbsp;<br>
-<br></ul>
-<br></ul>
-
-
-<a name="pygame.sprite.LayeredDirty">
-<big><b>pygame.sprite.LayeredDirty</big></b><br><ul>
- <i>LayeredDirty Group is for DirtySprites. Subclasses LayeredUpdates.</i><br>
- <tt>pygame.sprite.LayeredDirty(*spites, **kwargs): return LayeredDirty</tt><br>
-<ul><small><table>
- <tr><td><a href="sprite.html#LayeredDirty.draw">LayeredDirty.draw</a> - <font size=-1>draw all sprites in the right order onto the passed surface.</font></td><td>draw all sprites in the right order onto the passed surface.</td></tr>
- <tr><td><a href="sprite.html#LayeredDirty.clear">LayeredDirty.clear</a> - <font size=-1>used to set background</font></td><td>used to set background</td></tr>
- <tr><td><a href="sprite.html#LayeredDirty.repaint_rect">LayeredDirty.repaint_rect</a> - <font size=-1>repaints the given area</font></td><td>repaints the given area</td></tr>
- <tr><td><a href="sprite.html#LayeredDirty.set_clip">LayeredDirty.set_clip</a> - <font size=-1>clip the area where to draw. Just pass None (default) to reset the clip</font></td><td>clip the area where to draw. Just pass None (default) to reset the clip</td></tr>
- <tr><td><a href="sprite.html#LayeredDirty.get_clip">LayeredDirty.get_clip</a> - <font size=-1>clip the area where to draw. Just pass None (default) to reset the clip</font></td><td>clip the area where to draw. Just pass None (default) to reset the clip</td></tr>
- <tr><td><a href="sprite.html#LayeredDirty.change_layer">LayeredDirty.change_layer</a> - <font size=-1>changes the layer of the sprite</font></td><td>changes the layer of the sprite</td></tr>
- <tr><td><a href="sprite.html#LayeredDirty.set_timing_treshold">LayeredDirty.set_timing_treshold</a> - <font size=-1>sets the treshold in milliseconds</font></td><td>sets the treshold in milliseconds</td></tr>
-</table></small></ul>
-<p>This group requires <tt>pygame.sprite.DirtySprite</tt> or any sprite that has the following attributes: </p>
-<pre> image, rect, dirty, visible, blendmode (see doc of DirtySprite).
-</pre><p>It uses the dirty flag technique and is therefore faster than the <tt>pygame.sprite.RenderUpdates</tt> if you have many static sprites. It also switches automatically between dirty rect update and full screen drawing, so you do no have to worry what would be faster. </p>
-<p>Same as for the <tt>pygame.sprite.Group</tt>. You can specify some additional attributes through kwargs: </p>
-<pre> _use_update: True/False default is False
- _default_layer: default layer where sprites without a layer are added.
- _time_threshold: treshold time for switching between dirty rect mode
- and fullscreen mode, defaults to 1000./80 == 1000./fps
-</pre><p>New in pygame <tt>1.8.0</tt> </p>
-<!--COMMENTS:pygame.sprite.LayeredDirty--> &nbsp;<br>
-
-
-<a name="LayeredDirty.draw">
-<big><b>LayeredDirty.draw</big></b><br><ul>
- <i>draw all sprites in the right order onto the passed surface.</i><br>
- <tt>LayeredDirty.draw(surface, bgd=None): return Rect_list</tt><br>
-<p>You can pass the background too. If a background is already set, then the bgd argument has no effect. </p>
-<!--COMMENTS:LayeredDirty.draw--> &nbsp;<br>
-<br></ul>
-
-
-<a name="LayeredDirty.clear">
-<big><b>LayeredDirty.clear</big></b><br><ul>
- <i>used to set background</i><br>
- <tt>LayeredDirty.clear(surface, bgd): return None</tt><br>
- &nbsp;<br>
-<!--COMMENTS:LayeredDirty.clear--> &nbsp;<br>
-<br></ul>
-
-
-<a name="LayeredDirty.repaint_rect">
-<big><b>LayeredDirty.repaint_rect</big></b><br><ul>
- <i>repaints the given area</i><br>
- <tt>LayeredDirty.repaint_rect(screen_rect): return None</tt><br>
-<p>screen_rect is in screencoordinates. </p>
-<!--COMMENTS:LayeredDirty.repaint_rect--> &nbsp;<br>
-<br></ul>
-
-
-<a name="LayeredDirty.set_clip">
-<big><b>LayeredDirty.set_clip</big></b><br><ul>
- <i>clip the area where to draw. Just pass None (default) to reset the clip</i><br>
- <tt>LayeredDirty.set_clip(screen_rect=None): return None</tt><br>
- &nbsp;<br>
-<!--COMMENTS:LayeredDirty.set_clip--> &nbsp;<br>
-<br></ul>
-
-
-<a name="LayeredDirty.get_clip">
-<big><b>LayeredDirty.get_clip</big></b><br><ul>
- <i>clip the area where to draw. Just pass None (default) to reset the clip</i><br>
- <tt>LayeredDirty.get_clip(): return Rect</tt><br>
- &nbsp;<br>
-<!--COMMENTS:LayeredDirty.get_clip--> &nbsp;<br>
-<br></ul>
-
-
-<a name="LayeredDirty.change_layer">
-<big><b>LayeredDirty.change_layer</big></b><br><ul>
- <i>changes the layer of the sprite</i><br>
- <tt>change_layer(sprite, new_layer): return None</tt><br>
-<p>sprite must have been added to the renderer. It is not checked. </p>
-<!--COMMENTS:LayeredDirty.change_layer--> &nbsp;<br>
-<br></ul>
-
-
-<a name="LayeredDirty.set_timing_treshold">
-<big><b>LayeredDirty.set_timing_treshold</big></b><br><ul>
- <i>sets the treshold in milliseconds</i><br>
- <tt>set_timing_treshold(time_ms): return None</tt><br>
-<p>Default is <tt>1000./80</tt> where 80 is the fps <tt>I</tt> want to switch to full screen mode. </p>
-<!--COMMENTS:LayeredDirty.set_timing_treshold--> &nbsp;<br>
-<br></ul>
-<br></ul>
-
-
-<a name="pygame.sprite.GroupSingle">
-<big><b>pygame.sprite.GroupSingle</big></b><br><ul>
- <i>Group container that holds a single Sprite</i><br>
- <tt>pygame.sprite.GroupSingle(sprite=None): return GroupSingle</tt><br>
-<p>The GroupSingle container only holds a single Sprite. When a new Sprite is added, the old one is removed. </p>
-<p>There is a special property, <tt>GroupSingle.sprite</tt>, that accesses the Sprite that this Group contains. It can be None when the Group is empty. The property can also be assigned to add a Sprite into the GroupSingle container. </p>
-<!--COMMENTS:pygame.sprite.GroupSingle--> &nbsp;<br>
-<br></ul>
-
-
-<a name="pygame.sprite.spritecollide">
-<big><b>pygame.sprite.spritecollide</big></b><br><ul>
- <i>find Sprites in a Group that intersect another Sprite</i><br>
- <tt>pygame.sprite.spritecollide(sprite, group, dokill, collided = None): return Sprite_list</tt><br>
-<p>Return a list containing all Sprites in a Group that intersect with another Sprite. Intersection is determined by comparing the <tt>Sprite.rect</tt> attribute of each Sprite. </p>
-<p>The dokill argument is a bool. If set to True, all Sprites that collide will be removed from the Group. </p>
-<p>The collided argument is a callback function used to calculate if two sprites are colliding. it should take two sprites as values, and return a bool value indicating if they are colliding. If collided is not passed, all sprites must have a "rect" value, which is a rectangle of the sprite area, which will be used to calculate the collision. </p>
-<p>collided callables: </p>
-<pre> collide_rect, collide_rect_ratio, collide_circle,
- collide_circle_ratio, collide_mask
-</pre>
-<!--COMMENTS:pygame.sprite.spritecollide--> &nbsp;<br>
-<br></ul>
-
-
-<a name="pygame.sprite.collide_rect">
-<big><b>pygame.sprite.collide_rect</big></b><br><ul>
- <i>collision detection between two sprites, using rects.</i><br>
- <tt>pygame.sprite.collide_rect(left, right): return bool</tt><br>
-<p>Tests for collision between two sprites. Uses the pygame rect colliderect function to calculate the collision. Intended to be passed as a collided callback function to the *collide functions. Sprites must have a "rect" attributes. </p>
-<p>New in pygame <tt>1.8.0</tt> </p>
-<!--COMMENTS:pygame.sprite.collide_rect--> &nbsp;<br>
-<br></ul>
-
-
-<a name="pygame.sprite.collide_rect_ratio">
-<big><b>pygame.sprite.collide_rect_ratio</big></b><br><ul>
- <i>collision detection between two sprites, using rects scaled to a ratio.</i><br>
- <tt>pygame.sprite.collide_rect_ratio(ratio): return collided_callable</tt><br>
-<p><tt>A</tt> callable class that checks for collisions between two sprites, using a scaled version of the sprites rects. </p>
-<p>Is created with a ratio, the instance is then intended to be passed as a collided callback function to the *collide functions. </p>
-<p><tt>A</tt> ratio is a floating point number - <tt>1.0</tt> is the same size, <tt>2.0</tt> is twice as big, and <tt>0.5</tt> is half the size. </p>
-<p>New in pygame <tt>1.8.1</tt> </p>
-<!--COMMENTS:pygame.sprite.collide_rect_ratio--> &nbsp;<br>
-<br></ul>
-
-
-<a name="pygame.sprite.collide_circle">
-<big><b>pygame.sprite.collide_circle</big></b><br><ul>
- <i>collision detection between two sprites, using circles.</i><br>
- <tt>pygame.sprite.collide_circle(left, right): return bool</tt><br>
-<p>Tests for collision between two sprites, by testing to see if two circles centered on the sprites overlap. If the sprites have a "radius" attribute, that is used to create the circle, otherwise a circle is created that is big enough to completely enclose the sprites rect as given by the "rect" attribute. Intended to be passed as a collided callback function to the *collide functions. Sprites must have a "rect" and an optional "radius" attribute. </p>
-<p>New in pygame <tt>1.8.1</tt> </p>
-<!--COMMENTS:pygame.sprite.collide_circle--> &nbsp;<br>
-<br></ul>
-
-
-<a name="pygame.sprite.collide_circle_ratio">
-<big><b>pygame.sprite.collide_circle_ratio</big></b><br><ul>
- <i>collision detection between two sprites, using circles scaled to a ratio.</i><br>
- <tt>pygame.sprite.collide_circle_ratio(ratio): return collided_callable</tt><br>
-<p><tt>A</tt> callable class that checks for collisions between two sprites, using a scaled version of the sprites radius. </p>
-<p>Is created with a floating point ratio, the instance is then intended to be passed as a collided callback function to the *collide functions. </p>
-<p><tt>A</tt> ratio is a floating point number - <tt>1.0</tt> is the same size, <tt>2.0</tt> is twice as big, and <tt>0.5</tt> is half the size. </p>
-<p>The created callable tests for collision between two sprites, by testing to see if two circles centered on the sprites overlap, after scaling the circles radius by the stored ratio. If the sprites have a "radius" attribute, that is used to create the circle, otherwise a circle is created that is big enough to completely enclose the sprites rect as given by the "rect" attribute. Intended to be passed as a collided callback function to the *collide functions. Sprites must have a "rect" and an optional "radius" attribute. </p>
-<p>New in pygame <tt>1.8.1</tt> </p>
-<!--COMMENTS:pygame.sprite.collide_circle_ratio--> &nbsp;<br>
-<br></ul>
-
-
-<a name="pygame.sprite.collide_mask">
-<big><b>pygame.sprite.collide_mask</big></b><br><ul>
- <i>collision detection between two sprites, using masks.</i><br>
- <tt>pygame.sprite.collide_mask(SpriteLeft, SpriteRight): return bool</tt><br>
-<p>Tests for collision between two sprites, by testing if thier bitmasks overlap. If the sprites have a "mask" attribute, that is used as the mask, otherwise a mask is created from the sprite image. Intended to be passed as a collided callback function to the *collide functions. Sprites must have a "rect" and an optional "mask" attribute. </p>
-<p>New in pygame <tt>1.8.0</tt> </p>
-<!--COMMENTS:pygame.sprite.collide_mask--> &nbsp;<br>
-<br></ul>
-
-
-<a name="pygame.sprite.groupcollide">
-<big><b>pygame.sprite.groupcollide</big></b><br><ul>
- <i>find all Sprites that collide between two Groups</i><br>
- <tt>pygame.sprite.groupcollide(group1, group2, dokill1, dokill2): return Sprite_dict</tt><br>
-<p>This will find intersections between all the Sprites in two groups. Intersection is determined by comparing the <tt>Sprite.rect</tt> attribute of each Sprite. </p>
-<p>Every Sprite inside group1 is added to the return dictionary. The value for each item is the list of Sprites in group2 that intersect. </p>
-<p>If either dokill argument is True, the intersecting Sprites will be removed from their respective Group. </p>
-<!--COMMENTS:pygame.sprite.groupcollide--> &nbsp;<br>
-<br></ul>
-
-
-<a name="pygame.sprite.spritecollideany">
-<big><b>pygame.sprite.spritecollideany</big></b><br><ul>
- <i>simple test if a Sprite intersects anything in a Group</i><br>
- <tt>pygame.sprite.spritecollideany(sprite, group): return bool</tt><br>
-<p>Test if the given Sprite intersects with any Sprites in a Group. Intersection is determined by comparing of the <tt>Sprite.rect</tt> attribute of each Sprite. </p>
-<p>This collision test can be faster than <tt><a href="sprite.html#pygame.sprite.spritecollide">pygame.sprite.spritecollide</a> - <font size=-1>find Sprites in a Group that intersect another Sprite</font></tt> since it has less work to do. </p>
-<!--COMMENTS:pygame.sprite.spritecollideany--> &nbsp;<br>
-<br></ul>
-
-
-<a name="">
-<big><b></big></b><br><ul>
- &nbsp;<br>
-<!--COMMENTS:--> &nbsp;<br>
-<br></ul>
-<br></ul>
-
-</body></html>
diff --git a/pygame/docs/ref/surface.html b/pygame/docs/ref/surface.html
deleted file mode 100755
index 6e240e9..0000000
--- a/pygame/docs/ref/surface.html
+++ /dev/null
@@ -1,604 +0,0 @@
-
-<html>
-<title>surface - Pygame Documentation</title>
-<body bgcolor=#aaeebb text=#000000 link=#331111 vlink=#331111>
-
-
-<table cellpadding=0 cellspacing=0 border=0 style='border: 3px solid black;' width='100%'>
-<tr>
-<td bgcolor='#c2fc20' style='padding: 6px;' align=center valign=center><a href='http://www.pygame.org/'><img src='../pygame_tiny.gif' border=0 width=200 height=60></a><br><b>pygame documentation</b></td>
-<td bgcolor='#6aee28' style='border-left: 3px solid black; padding: 6px;' align=center valign=center>
- ||&nbsp;
- <a href=http://www.pygame.org>Pygame Home</a> &nbsp;||&nbsp;
- <a href=../index.html>Help Contents</a> &nbsp;||
- <a href=index.html>Reference Index</a> &nbsp;||
- <br>&nbsp;<br>
-
-<a href="camera.html">Camera</a>&nbsp;||&nbsp;
-<a href="cdrom.html">Cdrom</a>&nbsp;||&nbsp;
-<a href="color.html">Color</a>&nbsp;||&nbsp;
-<a href="cursors.html">Cursors</a>&nbsp;||&nbsp;
-<a href="display.html">Display</a>&nbsp;||&nbsp;
-<a href="draw.html">Draw</a>&nbsp;||&nbsp;
-<a href="event.html">Event</a>&nbsp;||&nbsp;
-<a href="examples.html">Examples</a>&nbsp;||&nbsp;
-<a href="font.html">Font</a>&nbsp;||&nbsp;
-<a href="gfxdraw.html">Gfxdraw</a>&nbsp;||&nbsp;
-<a href="image.html">Image</a>&nbsp;||&nbsp;
-<a href="joystick.html">Joystick</a>&nbsp;||&nbsp;
-<a href="key.html">Key</a>&nbsp;||&nbsp;
-<a href="locals.html">Locals</a>&nbsp;||&nbsp;
-<a href="mask.html">Mask</a>&nbsp;||&nbsp;
-<a href="midi.html">Midi</a>&nbsp;||&nbsp;
-<a href="mixer.html">Mixer</a>&nbsp;||&nbsp;
-<a href="mouse.html">Mouse</a>&nbsp;||&nbsp;
-<a href="movie.html">Movie</a>&nbsp;||&nbsp;
-<a href="music.html">Music</a>&nbsp;||&nbsp;
-<a href="overlay.html">Overlay</a>&nbsp;||&nbsp;
-<a href="pixelarray.html">Pixelarray</a>&nbsp;||&nbsp;
-<a href="pygame.html">Pygame</a>&nbsp;||&nbsp;
-<a href="rect.html">Rect</a>&nbsp;||&nbsp;
-<a href="scrap.html">Scrap</a>&nbsp;||&nbsp;
-<a href="sndarray.html">Sndarray</a>&nbsp;||&nbsp;
-<a href="sprite.html">Sprite</a>&nbsp;||&nbsp;
-<a href="surface.html">Surface</a>&nbsp;||&nbsp;
-<a href="surfarray.html">Surfarray</a>&nbsp;||&nbsp;
-<a href="tests.html">Tests</a>&nbsp;||&nbsp;
-<a href="time.html">Time</a>&nbsp;||&nbsp;
-<a href="transform.html">Transform</a>
-</td></tr></table>
-<br>
-
-
-<a name="pygame.Surface">
-<big><b>pygame.Surface</big></b><br><ul>
- <i>pygame object for representing images</i><br>
- <tt>pygame.Surface((width, height), flags=0, depth=0, masks=None): return Surface</tt><br>
- <tt>pygame.Surface((width, height), flags=0, Surface): return Surface</tt><br>
-<ul><small><table>
- <tr><td><a href="surface.html#Surface.blit">Surface.blit</a> - <font size=-1>draw one image onto another</font></td><td>draw one image onto another</td></tr>
- <tr><td><a href="surface.html#Surface.convert">Surface.convert</a> - <font size=-1>change the pixel format of an image</font></td><td>change the pixel format of an image</td></tr>
- <tr><td><a href="surface.html#Surface.convert_alpha">Surface.convert_alpha</a> - <font size=-1>change the pixel format of an image including per pixel alphas</font></td><td>change the pixel format of an image including per pixel alphas</td></tr>
- <tr><td><a href="surface.html#Surface.copy">Surface.copy</a> - <font size=-1>create a new copy of a Surface</font></td><td>create a new copy of a Surface</td></tr>
- <tr><td><a href="surface.html#Surface.fill">Surface.fill</a> - <font size=-1>fill Surface with a solid color</font></td><td>fill Surface with a solid color</td></tr>
- <tr><td><a href="surface.html#Surface.scroll">Surface.scroll</a> - <font size=-1>Shift the surface image in place</font></td><td>Shift the surface image in place</td></tr>
- <tr><td><a href="surface.html#Surface.set_colorkey">Surface.set_colorkey</a> - <font size=-1>Set the transparent colorkey</font></td><td>Set the transparent colorkey</td></tr>
- <tr><td><a href="surface.html#Surface.get_colorkey">Surface.get_colorkey</a> - <font size=-1>Get the current transparent colorkey</font></td><td>Get the current transparent colorkey</td></tr>
- <tr><td><a href="surface.html#Surface.set_alpha">Surface.set_alpha</a> - <font size=-1>set the alpha value for the full Surface image</font></td><td>set the alpha value for the full Surface image</td></tr>
- <tr><td><a href="surface.html#Surface.get_alpha">Surface.get_alpha</a> - <font size=-1>get the current Surface transparency value</font></td><td>get the current Surface transparency value</td></tr>
- <tr><td><a href="surface.html#Surface.lock">Surface.lock</a> - <font size=-1>lock the Surface memory for pixel access</font></td><td>lock the Surface memory for pixel access</td></tr>
- <tr><td><a href="surface.html#Surface.unlock">Surface.unlock</a> - <font size=-1>unlock the Surface memory from pixel access</font></td><td>unlock the Surface memory from pixel access</td></tr>
- <tr><td><a href="surface.html#Surface.mustlock">Surface.mustlock</a> - <font size=-1>test if the Surface requires locking</font></td><td>test if the Surface requires locking</td></tr>
- <tr><td><a href="surface.html#Surface.get_locked">Surface.get_locked</a> - <font size=-1>test if the Surface is current locked</font></td><td>test if the Surface is current locked</td></tr>
- <tr><td><a href="surface.html#Surface.get_locks">Surface.get_locks</a> - <font size=-1>Gets the locks for the Surface</font></td><td>Gets the locks for the Surface</td></tr>
- <tr><td><a href="surface.html#Surface.get_at">Surface.get_at</a> - <font size=-1>get the color value at a single pixel</font></td><td>get the color value at a single pixel</td></tr>
- <tr><td><a href="surface.html#Surface.set_at">Surface.set_at</a> - <font size=-1>set the color value for a single pixel</font></td><td>set the color value for a single pixel</td></tr>
- <tr><td><a href="surface.html#Surface.get_palette">Surface.get_palette</a> - <font size=-1>get the color index palette for an 8bit Surface</font></td><td>get the color index palette for an 8bit Surface</td></tr>
- <tr><td><a href="surface.html#Surface.get_palette_at">Surface.get_palette_at</a> - <font size=-1>get the color for a single entry in a palette</font></td><td>get the color for a single entry in a palette</td></tr>
- <tr><td><a href="surface.html#Surface.set_palette">Surface.set_palette</a> - <font size=-1>set the color palette for an 8bit Surface</font></td><td>set the color palette for an 8bit Surface</td></tr>
- <tr><td><a href="surface.html#Surface.set_palette_at">Surface.set_palette_at</a> - <font size=-1>set the color for a single index in an 8bit Surface palette</font></td><td>set the color for a single index in an 8bit Surface palette</td></tr>
- <tr><td><a href="surface.html#Surface.map_rgb">Surface.map_rgb</a> - <font size=-1>convert a color into a mapped color value</font></td><td>convert a color into a mapped color value</td></tr>
- <tr><td><a href="surface.html#Surface.unmap_rgb">Surface.unmap_rgb</a> - <font size=-1>convert a mapped integer color value into a Color</font></td><td>convert a mapped integer color value into a Color</td></tr>
- <tr><td><a href="surface.html#Surface.set_clip">Surface.set_clip</a> - <font size=-1>set the current clipping area of the Surface</font></td><td>set the current clipping area of the Surface</td></tr>
- <tr><td><a href="surface.html#Surface.get_clip">Surface.get_clip</a> - <font size=-1>get the current clipping area of the Surface</font></td><td>get the current clipping area of the Surface</td></tr>
- <tr><td><a href="surface.html#Surface.subsurface">Surface.subsurface</a> - <font size=-1>create a new surface that references its parent</font></td><td>create a new surface that references its parent</td></tr>
- <tr><td><a href="surface.html#Surface.get_parent">Surface.get_parent</a> - <font size=-1>find the parent of a subsurface</font></td><td>find the parent of a subsurface</td></tr>
- <tr><td><a href="surface.html#Surface.get_abs_parent">Surface.get_abs_parent</a> - <font size=-1>find the top level parent of a subsurface</font></td><td>find the top level parent of a subsurface</td></tr>
- <tr><td><a href="surface.html#Surface.get_offset">Surface.get_offset</a> - <font size=-1>find the position of a child subsurface inside a parent</font></td><td>find the position of a child subsurface inside a parent</td></tr>
- <tr><td><a href="surface.html#Surface.get_abs_offset">Surface.get_abs_offset</a> - <font size=-1>find the absolute position of a child subsurface inside its top level parent</font></td><td>find the absolute position of a child subsurface inside its top level parent</td></tr>
- <tr><td><a href="surface.html#Surface.get_size">Surface.get_size</a> - <font size=-1>get the dimensions of the Surface</font></td><td>get the dimensions of the Surface</td></tr>
- <tr><td><a href="surface.html#Surface.get_width">Surface.get_width</a> - <font size=-1>get the width of the Surface</font></td><td>get the width of the Surface</td></tr>
- <tr><td><a href="surface.html#Surface.get_height">Surface.get_height</a> - <font size=-1>get the height of the Surface</font></td><td>get the height of the Surface</td></tr>
- <tr><td><a href="surface.html#Surface.get_rect">Surface.get_rect</a> - <font size=-1>get the rectangular area of the Surface</font></td><td>get the rectangular area of the Surface</td></tr>
- <tr><td><a href="surface.html#Surface.get_bitsize">Surface.get_bitsize</a> - <font size=-1>get the bit depth of the Surface pixel format</font></td><td>get the bit depth of the Surface pixel format</td></tr>
- <tr><td><a href="surface.html#Surface.get_bytesize">Surface.get_bytesize</a> - <font size=-1>get the bytes used per Surface pixel</font></td><td>get the bytes used per Surface pixel</td></tr>
- <tr><td><a href="surface.html#Surface.get_flags">Surface.get_flags</a> - <font size=-1>get the additional flags used for the Surface</font></td><td>get the additional flags used for the Surface</td></tr>
- <tr><td><a href="surface.html#Surface.get_pitch">Surface.get_pitch</a> - <font size=-1>get the number of bytes used per Surface row</font></td><td>get the number of bytes used per Surface row</td></tr>
- <tr><td><a href="surface.html#Surface.get_masks">Surface.get_masks</a> - <font size=-1>the bitmasks needed to convert between a color and a mapped integer</font></td><td>the bitmasks needed to convert between a color and a mapped integer</td></tr>
- <tr><td><a href="surface.html#Surface.set_masks">Surface.set_masks</a> - <font size=-1>set the bitmasks needed to convert between a color and a mapped integer</font></td><td>set the bitmasks needed to convert between a color and a mapped integer</td></tr>
- <tr><td><a href="surface.html#Surface.get_shifts">Surface.get_shifts</a> - <font size=-1>the bit shifts needed to convert between a color and a mapped integer</font></td><td>the bit shifts needed to convert between a color and a mapped integer</td></tr>
- <tr><td><a href="surface.html#Surface.set_shifts">Surface.set_shifts</a> - <font size=-1>sets the bit shifts needed to convert between a color and a mapped integer</font></td><td>sets the bit shifts needed to convert between a color and a mapped integer</td></tr>
- <tr><td><a href="surface.html#Surface.get_losses">Surface.get_losses</a> - <font size=-1>the significant bits used to convert between a color and a mapped integer</font></td><td>the significant bits used to convert between a color and a mapped integer</td></tr>
- <tr><td><a href="surface.html#Surface.get_bounding_rect">Surface.get_bounding_rect</a> - <font size=-1>find the smallest rect containing data</font></td><td>find the smallest rect containing data</td></tr>
- <tr><td><a href="surface.html#Surface.get_buffer">Surface.get_buffer</a> - <font size=-1>acquires a buffer object for the pixels of the Surface.</font></td><td>acquires a buffer object for the pixels of the Surface.</td></tr>
-</table></small></ul>
-<p><tt>A</tt> pygame Surface is used to represent any image. The Surface has a fixed resolution and pixel format. Surfaces with 8bit pixels use a color palette to map to 24bit color. </p>
-<p>Call <tt><a href="surface.html#pygame.Surface">pygame.Surface</a> - <font size=-1>pygame object for representing images</font></tt> to create a new image object. The Surface will be cleared to all black. The only required arguments are the sizes. With no additional arguments, the Surface will be created in a format that best matches the display Surface. </p>
-<p>The pixel format can be controlled by passing the bit depth or an existing Surface. The flags argument is a bitmask of additional features for the surface. You can pass any combination of these flags: </p>
-<pre> HWSURFACE, creates the image in video memory
- SRCALPHA, the pixel format will include a per-pixel alpha
-</pre><p>Both flags are only a request, and may not be possible for all displays and formats. </p>
-<p>Advance users can combine a set of bitmasks with a depth value. The masks are a set of 4 integers representing which bits in a pixel will represent each color. Normal Surfaces should not require the masks argument. </p>
-<p>Surfaces can have many extra attributes like alpha planes, colorkeys, source rectangle clipping. These functions mainly effect how the Surface is blitted to other Surfaces. The blit routines will attempt to use hardware acceleration when possible, otherwise they will use highly optimized software blitting methods. </p>
-<p>There are three types of transparency supported in Pygame: colorkeys, surface alphas, and pixel alphas. Surface alphas can be mixed with colorkeys, but an image with per pixel alphas cannot use the other modes. Colorkey transparency makes a single color value transparent. Any pixels matching the colorkey will not be drawn. The surface alpha value is a single value that changes the transparency for the entire image. <tt>A</tt> surface alpha of 255 is opaque, and a value of 0 is completely transparent. </p>
-<p>Per pixel alphas are different because they store a transparency value for every pixel. This allows for the most precise transparency effects, but it also the slowest. Per pixel alphas cannot be mixed with surface alpha and colorkeys. </p>
-<p>There is support for pixel access for the Surfaces. Pixel access on hardware surfaces is slow and not recommended. Pixels can be accessed using the get_at() and set_at() functions. These methods are fine for simple access, but will be considerably slow when doing of pixel work with them. If you plan on doing a lot of pixel level work, it is recommended to use the <tt>pygame.surfarray</tt> module, which can treat the surfaces like large multidimensional arrays (and it's quite quick). </p>
-<p>Any functions that directly access a surface's pixel data will need that surface to be lock()'ed. These functions can lock() and unlock() the surfaces themselves without assistance. But, if a function will be called many times, there will be a lot of overhead for multiple locking and unlocking of the surface. It is best to lock the surface manually before making the function call many times, and then unlocking when you are finished. All functions that need a locked surface will say so in their docs. Remember to leave the Surface locked only while necessary. </p>
-<p>Surface pixels are stored internally as a single number that has all the colors encoded into it. Use the <tt><a href="surface.html#Surface.map_rgb">Surface.map_rgb</a> - <font size=-1>convert a color into a mapped color value</font></tt> and <tt><a href="surface.html#Surface.unmap_rgb">Surface.unmap_rgb</a> - <font size=-1>convert a mapped integer color value into a Color</font></tt> to convert between individual red, green, and blue values into a packed integer for that Surface. </p>
-<p>Surfaces can also reference sections of other Surfaces. These are created with the <tt><a href="surface.html#Surface.subsurface">Surface.subsurface</a> - <font size=-1>create a new surface that references its parent</font></tt> method. Any change to either Surface will effect the other. </p>
-<p>Each Surface contains a clipping area. By default the clip area covers the entire Surface. If it is changed, all drawing operations will only effect the smaller area. </p>
-<!--COMMENTS:pygame.Surface--> &nbsp;<br>
-
-
-<a name="Surface.blit">
-<big><b>Surface.blit</big></b><br><ul>
- <i>draw one image onto another</i><br>
- <tt>Surface.blit(source, dest, area=None, special_flags = 0): return Rect</tt><br>
-<p>Draws a source Surface onto this Surface. The draw can be positioned with the dest argument. Dest can either be pair of coordinates representing the upper left corner of the source. <tt>A</tt> Rect can also be passed as the destination and the topleft corner of the rectangle will be used as the position for the blit. The size of the destination rectangle does not effect the blit. </p>
-<p>An optional area rectangle can be passed as well. This represents a smaller portion of the source Surface to draw. </p>
-<p>An optional special flags is for passing in new in <tt>1.8.0:</tt> <tt>BLEND_ADD</tt>, <tt>BLEND_SUB</tt>, <tt>BLEND_MULT</tt>, <tt>BLEND_MIN</tt>, <tt>BLEND_MAX</tt> new in <tt>1.8.1:</tt> <tt>BLEND_RGBA_ADD</tt>, <tt>BLEND_RGBA_SUB</tt>, <tt>BLEND_RGBA_MULT</tt>, <tt>BLEND_RGBA_MIN</tt>, <tt>BLEND_RGBA_MAX</tt> <tt>BLEND_RGB_ADD</tt>, <tt>BLEND_RGB_SUB</tt>, <tt>BLEND_RGB_MULT</tt>, <tt>BLEND_RGB_MIN</tt>, <tt>BLEND_RGB_MAX</tt> With other special blitting flags perhaps added in the future. </p>
-<p>The return rectangle is the area of the affected pixels, excluding any pixels outside the destination Surface, or outside the clipping area. </p>
-<p>Pixel alphas will be ignored when blitting to an 8 bit Surface. </p>
-<p>special_flags new in pygame <tt>1.8</tt>. </p>
-<p>For a surface with colorkey or blanket alpha, a blit to self may give slightly different colors than a non self-blit. </p>
-<!--COMMENTS:Surface.blit--> &nbsp;<br>
-<br></ul>
-
-
-<a name="Surface.convert">
-<big><b>Surface.convert</big></b><br><ul>
- <i>change the pixel format of an image</i><br>
- <tt>Surface.convert(Surface): return Surface</tt><br>
- <tt>Surface.convert(depth, flags=0): return Surface</tt><br>
- <tt>Surface.convert(masks, flags=0): return Surface</tt><br>
- <tt>Surface.convert(): return Surface</tt><br>
-<p>Creates a new copy of the Surface with the pixel format changed. The new pixel format can be determined from another existing Surface. Otherwise depth, flags, and masks arguments can be used, similar to the <tt><a href="surface.html#pygame.Surface">pygame.Surface</a> - <font size=-1>pygame object for representing images</font></tt> call. </p>
-<p>If no arguments are passed the new Surface will have the same pixel format as the display Surface. This is always the fastest format for blitting. It is a good idea to convert all Surfaces before they are blitted many times. </p>
-<p>The converted Surface will have no pixel alphas. They will be stripped if the original had them. See <tt><a href="surface.html#Surface.convert_alpha">Surface.convert_alpha</a> - <font size=-1>change the pixel format of an image including per pixel alphas</font></tt> for preserving or creating per-pixel alphas. </p>
-<!--COMMENTS:Surface.convert--> &nbsp;<br>
-<br></ul>
-
-
-<a name="Surface.convert_alpha">
-<big><b>Surface.convert_alpha</big></b><br><ul>
- <i>change the pixel format of an image including per pixel alphas</i><br>
- <tt>Surface.convert_alpha(Surface): return Surface</tt><br>
- <tt>Surface.convert_alpha(): return Surface</tt><br>
-<p>Creates a new copy of the surface with the desired pixel format. The new surface will be in a format suited for quick blitting to the given format with per pixel alpha. If no surface is given, the new surface will be optimized for blitting to the current display. </p>
-<p>Unlike the <tt><a href="surface.html#Surface.convert">Surface.convert</a> - <font size=-1>change the pixel format of an image</font></tt> method, the pixel format for the new image will not be exactly the same as the requested source, but it will be optimized for fast alpha blitting to the destination. </p>
-<!--COMMENTS:Surface.convert_alpha--> &nbsp;<br>
-<br></ul>
-
-
-<a name="Surface.copy">
-<big><b>Surface.copy</big></b><br><ul>
- <i>create a new copy of a Surface</i><br>
- <tt>Surface.copy(): return Surface</tt><br>
-<p>Makes a duplicate copy of a Surface. The new Surface will have the same pixel formats, color palettes, and transparency settings as the original. </p>
-<!--COMMENTS:Surface.copy--> &nbsp;<br>
-<br></ul>
-
-
-<a name="Surface.fill">
-<big><b>Surface.fill</big></b><br><ul>
- <i>fill Surface with a solid color</i><br>
- <tt>Surface.fill(color, rect=None, special_flags=0): return Rect</tt><br>
-<p>Fill the Surface with a solid color. If no rect argument is given the entire Surface will be filled. The rect argument will limit the fill to a specific area. The fill will also be contained by the Surface clip area. </p>
-<p>The color argument can be either a <tt>RGB</tt> sequence, a <tt>RGBA</tt> sequence or a mapped color index. If using <tt>RGBA</tt>, the Alpha <tt>(A</tt> part of <tt>RGBA)</tt> is ignored unless the surface uses per pixel alpha (Surface has the <tt>SRCALPHA</tt> flag). </p>
-<p>An optional special_flags is for passing in new in <tt>1.8.0:</tt> <tt>BLEND_ADD</tt>, <tt>BLEND_SUB</tt>, <tt>BLEND_MULT</tt>, <tt>BLEND_MIN</tt>, <tt>BLEND_MAX</tt> new in <tt>1.8.1:</tt> <tt>BLEND_RGBA_ADD</tt>, <tt>BLEND_RGBA_SUB</tt>, <tt>BLEND_RGBA_MULT</tt>, <tt>BLEND_RGBA_MIN</tt>, <tt>BLEND_RGBA_MAX</tt> <tt>BLEND_RGB_ADD</tt>, <tt>BLEND_RGB_SUB</tt>, <tt>BLEND_RGB_MULT</tt>, <tt>BLEND_RGB_MIN</tt>, <tt>BLEND_RGB_MAX</tt> With other special blitting flags perhaps added in the future. </p>
-<p>This will return the affected Surface area. </p>
-<!--COMMENTS:Surface.fill--> &nbsp;<br>
-<br></ul>
-
-
-<a name="Surface.scroll">
-<big><b>Surface.scroll</big></b><br><ul>
- <i>Shift the surface image in place</i><br>
- <tt>Surface.scroll(dx=0, dy=0): return None</tt><br>
-<p>Move the image by dx pixels right and dy pixels down. dx and dy may be negative for left and up scrolls respectively. Areas of the surface that are not overwritten retain their original pixel values. Scrolling is contained by the Surface clip area. It is safe to have dx and dy values that exceed the surface size. </p>
-<!--COMMENTS:Surface.scroll--> &nbsp;<br>
-<br></ul>
-
-
-<a name="Surface.set_colorkey">
-<big><b>Surface.set_colorkey</big></b><br><ul>
- <i>Set the transparent colorkey</i><br>
- <tt>Surface.set_colorkey(Color, flags=0): return None</tt><br>
- <tt>Surface.set_colorkey(None): return None</tt><br>
-<p>Set the current color key for the Surface. When blitting this Surface onto a destination, and pixels that have the same color as the colorkey will be transparent. The color can be an <tt>RGB</tt> color or a mapped color integer. If None is passed, the colorkey will be unset. </p>
-<p>The colorkey will be ignored if the Surface is formatted to use per pixel alpha values. The colorkey can be mixed with the full Surface alpha value. </p>
-<p>The optional flags argument can be set to <tt>pygame.RLEACCEL</tt> to provide better performance on non accelerated displays. An <tt>RLEACCEL</tt> Surface will be slower to modify, but quicker to blit as a source. </p>
-<!--COMMENTS:Surface.set_colorkey--> &nbsp;<br>
-<br></ul>
-
-
-<a name="Surface.get_colorkey">
-<big><b>Surface.get_colorkey</big></b><br><ul>
- <i>Get the current transparent colorkey</i><br>
- <tt>Surface.get_colorkey(): return RGB or None</tt><br>
-<p>Return the current colorkey value for the Surface. If the colorkey is not set then None is returned. </p>
-<!--COMMENTS:Surface.get_colorkey--> &nbsp;<br>
-<br></ul>
-
-
-<a name="Surface.set_alpha">
-<big><b>Surface.set_alpha</big></b><br><ul>
- <i>set the alpha value for the full Surface image</i><br>
- <tt>Surface.set_alpha(value, flags=0): return None</tt><br>
- <tt>Surface.set_alpha(None): return None</tt><br>
-<p>Set the current alpha value fo r the Surface. When blitting this Surface onto a destination, the pixels will be drawn slightly transparent. The alpha value is an integer from 0 to 255, 0 is fully transparent and 255 is fully opaque. If None is passed for the alpha value, then the Surface alpha will be disabled. </p>
-<p>This value is different than the per pixel Surface alpha. If the Surface format contains per pixel alphas, then this alpha value will be ignored. If the Surface contains per pixel alphas, setting the alpha value to None will disable the per pixel transparency. </p>
-<p>The optional flags argument can be set to <tt>pygame.RLEACCEL</tt> to provide better performance on non accelerated displays. An <tt>RLEACCEL</tt> Surface will be slower to modify, but quicker to blit as a source. </p>
-<!--COMMENTS:Surface.set_alpha--> &nbsp;<br>
-<br></ul>
-
-
-<a name="Surface.get_alpha">
-<big><b>Surface.get_alpha</big></b><br><ul>
- <i>get the current Surface transparency value</i><br>
- <tt>Surface.get_alpha(): return int_value or None</tt><br>
-<p>Return the current alpha value for the Surface. If the alpha value is not set then None is returned. </p>
-<!--COMMENTS:Surface.get_alpha--> &nbsp;<br>
-<br></ul>
-
-
-<a name="Surface.lock">
-<big><b>Surface.lock</big></b><br><ul>
- <i>lock the Surface memory for pixel access</i><br>
- <tt>Surface.lock(): return None</tt><br>
-<p>Lock the pixel data of a Surface for access. On accelerated Surfaces, the pixel data may be stored in volatile video memory or nonlinear compressed forms. When a Surface is locked the pixel memory becomes available to access by regular software. Code that reads or writes pixel values will need the Surface to be locked. </p>
-<p>Surfaces should not remain locked for more than necessary. <tt>A</tt> locked Surface can often not be displayed or managed by Pygame. </p>
-<p>Not all Surfaces require locking. The <tt><a href="surface.html#Surface.mustlock">Surface.mustlock</a> - <font size=-1>test if the Surface requires locking</font></tt> method can determine if it is actually required. There is no performance penalty for locking and unlocking a Surface that does not need it. </p>
-<p>All pygame functions will automatically lock and unlock the Surface data as needed. If a section of code is going to make calls that will repeatedly lock and unlock the Surface many times, it can be helpful to wrap the block inside a lock and unlock pair. </p>
-<p>It is safe to nest locking and unlocking calls. The surface will only be unlocked after the final lock is released. </p>
-<!--COMMENTS:Surface.lock--> &nbsp;<br>
-<br></ul>
-
-
-<a name="Surface.unlock">
-<big><b>Surface.unlock</big></b><br><ul>
- <i>unlock the Surface memory from pixel access</i><br>
- <tt>Surface.unlock(): return None</tt><br>
-<p>Unlock the Surface pixel data after it has been locked. The unlocked Surface can once again be drawn and managed by Pygame. See the <tt><a href="surface.html#Surface.lock">Surface.lock</a> - <font size=-1>lock the Surface memory for pixel access</font></tt> documentation for more details. </p>
-<p>All pygame functions will automatically lock and unlock the Surface data as needed. If a section of code is going to make calls that will repeatedly lock and unlock the Surface many times, it can be helpful to wrap the block inside a lock and unlock pair. </p>
-<p>It is safe to nest locking and unlocking calls. The surface will only be unlocked after the final lock is released. </p>
-<!--COMMENTS:Surface.unlock--> &nbsp;<br>
-<br></ul>
-
-
-<a name="Surface.mustlock">
-<big><b>Surface.mustlock</big></b><br><ul>
- <i>test if the Surface requires locking</i><br>
- <tt>Surface.mustlock(): return bool</tt><br>
-<p>Returns True if the Surface is required to be locked to access pixel data. Usually pure software Surfaces do not require locking. This method is rarely needed, since it is safe and quickest to just lock all Surfaces as needed. </p>
-<p>All pygame functions will automatically lock and unlock the Surface data as needed. If a section of code is going to make calls that will repeatedly lock and unlock the Surface many times, it can be helpful to wrap the block inside a lock and unlock pair. </p>
-<!--COMMENTS:Surface.mustlock--> &nbsp;<br>
-<br></ul>
-
-
-<a name="Surface.get_locked">
-<big><b>Surface.get_locked</big></b><br><ul>
- <i>test if the Surface is current locked</i><br>
- <tt>Surface.get_locked(): return bool</tt><br>
-<p>Returns True when the Surface is locked. It doesn't matter how many times the Surface is locked. </p>
-<!--COMMENTS:Surface.get_locked--> &nbsp;<br>
-<br></ul>
-
-
-<a name="Surface.get_locks">
-<big><b>Surface.get_locks</big></b><br><ul>
- <i>Gets the locks for the Surface</i><br>
- <tt>Surface.get_locks(): return tuple</tt><br>
-<p>Returns the currently existing locks for the Surface. </p>
-<!--COMMENTS:Surface.get_locks--> &nbsp;<br>
-<br></ul>
-
-
-<a name="Surface.get_at">
-<big><b>Surface.get_at</big></b><br><ul>
- <i>get the color value at a single pixel</i><br>
- <tt>Surface.get_at((x, y)): return Color</tt><br>
-<p>Return a copy of the <tt>RGBA</tt> Color value at the given pixel. If the Surface has no per pixel alpha, then the alpha value will always be 255 (opaque). If the pixel position is outside the area of the Surface an IndexError exception will be raised. </p>
-<p>Getting and setting pixels one at a time is generally too slow to be used in a game or realtime situation. It is better to use methods which operate on many pixels at a time like with the blit, fill and draw methods - or by using surfarray/PixelArray. </p>
-<p>This function will temporarily lock and unlock the Surface as needed. </p>
-<p>Returning a Color instead of tuple, New in pygame <tt>1.9.0</tt>. Use <tt>tuple(surf.get_at((x,y)))</tt> if you want a tuple, and not a Color. This should only matter if you want to use the color as a key in a dict. </p>
-<!--COMMENTS:Surface.get_at--> &nbsp;<br>
-<br></ul>
-
-
-<a name="Surface.set_at">
-<big><b>Surface.set_at</big></b><br><ul>
- <i>set the color value for a single pixel</i><br>
- <tt>Surface.set_at((x, y), Color): return None</tt><br>
-<p>Set the <tt>RGBA</tt> or mapped integer color value for a single pixel. If the Surface does not have per pixel alphas, the alpha value is ignored. Settting pixels outside the Surface area or outside the Surface clipping will have no effect. </p>
-<p>Getting and setting pixels one at a time is generally too slow to be used in a game or realtime situation. </p>
-<p>This function will temporarily lock and unlock the Surface as needed. </p>
-<!--COMMENTS:Surface.set_at--> &nbsp;<br>
-<br></ul>
-
-
-<a name="Surface.get_palette">
-<big><b>Surface.get_palette</big></b><br><ul>
- <i>get the color index palette for an 8bit Surface</i><br>
- <tt>Surface.get_palette(): return [RGB, RGB, RGB, ...]</tt><br>
-<p>Return a list of up to 256 color elements that represent the indexed colors used in an 8bit Surface. The returned list is a copy of the palette, and changes will have no effect on the Surface. </p>
-<p>Returning a list of Color(with length 3) instances instead of tuples, New in pygame <tt>1.9.0</tt> </p>
-<!--COMMENTS:Surface.get_palette--> &nbsp;<br>
-<br></ul>
-
-
-<a name="Surface.get_palette_at">
-<big><b>Surface.get_palette_at</big></b><br><ul>
- <i>get the color for a single entry in a palette</i><br>
- <tt>Surface.get_palette_at(index): return RGB</tt><br>
-<p>Returns the red, green, and blue color values for a single index in a Surface palette. The index should be a value from 0 to 255. </p>
-<p>Returning Color(with length 3) instance instead of a tuple, New in pygame <tt>1.9.0</tt> </p>
-<!--COMMENTS:Surface.get_palette_at--> &nbsp;<br>
-<br></ul>
-
-
-<a name="Surface.set_palette">
-<big><b>Surface.set_palette</big></b><br><ul>
- <i>set the color palette for an 8bit Surface</i><br>
- <tt>Surface.set_palette([RGB, RGB, RGB, ...]): return None</tt><br>
-<p>Set the full palette for an 8bit Surface. This will replace the colors in the existing palette. <tt>A</tt> partial palette can be passed and only the first colors in the original palette will be changed. </p>
-<p>This function has no effect on a Surface with more than 8bits per pixel. </p>
-<!--COMMENTS:Surface.set_palette--> &nbsp;<br>
-<br></ul>
-
-
-<a name="Surface.set_palette_at">
-<big><b>Surface.set_palette_at</big></b><br><ul>
- <i>set the color for a single index in an 8bit Surface palette</i><br>
- <tt>Surface.set_at(index, RGB): return None</tt><br>
-<p>Set the palette value for a single entry in a Surface palette. The index should be a value from 0 to 255. </p>
-<p>This function has no effect on a Surface with more than 8bits per pixel. </p>
-<!--COMMENTS:Surface.set_palette_at--> &nbsp;<br>
-<br></ul>
-
-
-<a name="Surface.map_rgb">
-<big><b>Surface.map_rgb</big></b><br><ul>
- <i>convert a color into a mapped color value</i><br>
- <tt>Surface.map_rgb(Color): return mapped_int</tt><br>
-<p>Convert an <tt>RGBA</tt> color into the mapped integer value for this Surface. The returned integer will contain no more bits than the bit depth of the Surface. Mapped color values are not often used inside Pygame, but can be passed to most functions that require a Surface and a color. </p>
-<p>See the Surface object documentation for more information about colors and pixel formats. </p>
-<!--COMMENTS:Surface.map_rgb--> &nbsp;<br>
-<br></ul>
-
-
-<a name="Surface.unmap_rgb">
-<big><b>Surface.unmap_rgb</big></b><br><ul>
- <i>convert a mapped integer color value into a Color</i><br>
- <tt>Surface.map_rgb(mapped_int): return Color</tt><br>
-<p>Convert an mapped integer color into the <tt>RGB</tt> color components for this Surface. Mapped color values are not often used inside Pygame, but can be passed to most functions that require a Surface and a color. </p>
-<p>See the Surface object documentation for more information about colors and pixel formats. </p>
-<!--COMMENTS:Surface.unmap_rgb--> &nbsp;<br>
-<br></ul>
-
-
-<a name="Surface.set_clip">
-<big><b>Surface.set_clip</big></b><br><ul>
- <i>set the current clipping area of the Surface</i><br>
- <tt>Surface.set_clip(rect): return None</tt><br>
- <tt>Surface.set_clip(None): return None</tt><br>
-<p>Each Surface has an active clipping area. This is a rectangle that represents the only pixels on the Surface that can be modified. If None is passed for the rectangle the full Surface will be available for changes. </p>
-<p>The clipping area is always restricted to the area of the Surface itself. If the clip rectangle is too large it will be shrunk to fit inside the Surface. </p>
-<!--COMMENTS:Surface.set_clip--> &nbsp;<br>
-<br></ul>
-
-
-<a name="Surface.get_clip">
-<big><b>Surface.get_clip</big></b><br><ul>
- <i>get the current clipping area of the Surface</i><br>
- <tt>Surface.get_clip(): return Rect</tt><br>
-<p>Return a rectangle of the current clipping area. The Surface will always return a valid rectangle that will never be outside the bounds of the image. If the Surface has had None set for the clipping area, the Surface will return a rectangle with the full area of the Surface. </p>
-<!--COMMENTS:Surface.get_clip--> &nbsp;<br>
-<br></ul>
-
-
-<a name="Surface.subsurface">
-<big><b>Surface.subsurface</big></b><br><ul>
- <i>create a new surface that references its parent</i><br>
- <tt>Surface.subsurface(Rect): return Surface</tt><br>
-<p>Returns a new Surface that shares its pixels with its new parent. The new Surface is considered a child of the original. Modifications to either Surface pixels will effect each other. Surface information like clipping area and color keys are unique to each Surface. </p>
-<p>The new Surface will inherit the palette, color key, and alpha settings from its parent. </p>
-<p>It is possible to have any number of subsurfaces and subsubsurfaces on the parent. It is also possible to subsurface the display Surface if the display mode is not hardware accelerated. </p>
-<p>See the <tt><a href="surface.html#Surface.get_offset">Surface.get_offset</a> - <font size=-1>find the position of a child subsurface inside a parent</font></tt>, <tt><a href="surface.html#Surface.get_parent">Surface.get_parent</a> - <font size=-1>find the parent of a subsurface</font></tt> to learn more about the state of a subsurface. </p>
-<!--COMMENTS:Surface.subsurface--> &nbsp;<br>
-<br></ul>
-
-
-<a name="Surface.get_parent">
-<big><b>Surface.get_parent</big></b><br><ul>
- <i>find the parent of a subsurface</i><br>
- <tt>Surface.get_parent(): return Surface</tt><br>
-<p>Returns the parent Surface of a subsurface. If this is not a subsurface then None will be returned. </p>
-<!--COMMENTS:Surface.get_parent--> &nbsp;<br>
-<br></ul>
-
-
-<a name="Surface.get_abs_parent">
-<big><b>Surface.get_abs_parent</big></b><br><ul>
- <i>find the top level parent of a subsurface</i><br>
- <tt>Surface.get_abs_parent(): return Surface</tt><br>
-<p>Returns the parent Surface of a subsurface. If this is not a subsurface then this surface will be returned. </p>
-<!--COMMENTS:Surface.get_abs_parent--> &nbsp;<br>
-<br></ul>
-
-
-<a name="Surface.get_offset">
-<big><b>Surface.get_offset</big></b><br><ul>
- <i>find the position of a child subsurface inside a parent</i><br>
- <tt>Surface.get_offset(): return (x, y)</tt><br>
-<p>Get the offset position of a child subsurface inside of a parent. If the Surface is not a subsurface this will return (0, 0). </p>
-<!--COMMENTS:Surface.get_offset--> &nbsp;<br>
-<br></ul>
-
-
-<a name="Surface.get_abs_offset">
-<big><b>Surface.get_abs_offset</big></b><br><ul>
- <i>find the absolute position of a child subsurface inside its top level parent</i><br>
- <tt>Surface.get_abs_offset(): return (x, y)</tt><br>
-<p>Get the offset position of a child subsurface inside of its top level parent Surface. If the Surface is not a subsurface this will return (0, 0). </p>
-<!--COMMENTS:Surface.get_abs_offset--> &nbsp;<br>
-<br></ul>
-
-
-<a name="Surface.get_size">
-<big><b>Surface.get_size</big></b><br><ul>
- <i>get the dimensions of the Surface</i><br>
- <tt>Surface.get_size(): return (width, height)</tt><br>
-<p>Return the width and height of the Surface in pixels. </p>
-<!--COMMENTS:Surface.get_size--> &nbsp;<br>
-<br></ul>
-
-
-<a name="Surface.get_width">
-<big><b>Surface.get_width</big></b><br><ul>
- <i>get the width of the Surface</i><br>
- <tt>Surface.get_width(): return width</tt><br>
-<p>Return the width of the Surface in pixels. </p>
-<!--COMMENTS:Surface.get_width--> &nbsp;<br>
-<br></ul>
-
-
-<a name="Surface.get_height">
-<big><b>Surface.get_height</big></b><br><ul>
- <i>get the height of the Surface</i><br>
- <tt>Surface.get_height(): return height</tt><br>
-<p>Return the height of the Surface in pixels. </p>
-<!--COMMENTS:Surface.get_height--> &nbsp;<br>
-<br></ul>
-
-
-<a name="Surface.get_rect">
-<big><b>Surface.get_rect</big></b><br><ul>
- <i>get the rectangular area of the Surface</i><br>
- <tt>Surface.get_rect(**kwargs): return Rect</tt><br>
-<p>Returns a new rectangle covering the entire surface. This rectangle will always start at 0, 0 with a width. and height the same size as the image. </p>
-<p>You can pass keyword argument values to this function. These named values will be applied to the attributes of the Rect before it is returned. An example would be <tt>'mysurf.get_rect(center=(100,100))'</tt> to create a rectangle for the Surface centered at a given position. </p>
-<!--COMMENTS:Surface.get_rect--> &nbsp;<br>
-<br></ul>
-
-
-<a name="Surface.get_bitsize">
-<big><b>Surface.get_bitsize</big></b><br><ul>
- <i>get the bit depth of the Surface pixel format</i><br>
- <tt>Surface.get_bitsize(): return int</tt><br>
-<p>Returns the number of bits used to represent each pixel. This value may not exactly fill the number of bytes used per pixel. For example a 15 bit Surface still requires a full 2 bytes. </p>
-<!--COMMENTS:Surface.get_bitsize--> &nbsp;<br>
-<br></ul>
-
-
-<a name="Surface.get_bytesize">
-<big><b>Surface.get_bytesize</big></b><br><ul>
- <i>get the bytes used per Surface pixel</i><br>
- <tt>Surface.get_bytesize(): return int</tt><br>
-<p>Return the number of bytes used per pixel. </p>
-<!--COMMENTS:Surface.get_bytesize--> &nbsp;<br>
-<br></ul>
-
-
-<a name="Surface.get_flags">
-<big><b>Surface.get_flags</big></b><br><ul>
- <i>get the additional flags used for the Surface</i><br>
- <tt>Surface.get_flags(): return int</tt><br>
-<p>Returns a set of current Surface features. Each feature is a bit in the flags bitmask. Typical flags are <tt>HWSURFACE</tt>, <tt>RLEACCEL</tt>, <tt>SRCALPHA</tt>, and <tt>SRCCOLORKEY</tt>. </p>
-<p>Here is a more complete list of flags. <tt>A</tt> full list can be found in <tt>SDL_video.h</tt> </p>
-<pre> SWSURFACE 0x00000000 # Surface is in system memory
- HWSURFACE 0x00000001 # Surface is in video memory
- ASYNCBLIT 0x00000004 # Use asynchronous blits if possible
-</pre><p>Available for <tt><a href="display.html#pygame.display.set_mode">pygame.display.set_mode</a> - <font size=-1>initialize a window or screen for display</font></tt> </p>
-<pre> ANYFORMAT 0x10000000 # Allow any video depth/pixel-format
- HWPALETTE 0x20000000 # Surface has exclusive palette
- DOUBLEBUF 0x40000000 # Set up double-buffered video mode
- FULLSCREEN 0x80000000 # Surface is a full screen display
- OPENGL 0x00000002 # Create an OpenGL rendering context
- OPENGLBLIT 0x0000000A # Create an OpenGL rendering context
- # and use it for blitting. Obsolete.
- RESIZABLE 0x00000010 # This video mode may be resized
- NOFRAME 0x00000020 # No window caption or edge frame
-</pre><p>Used internally (read-only) </p>
-<pre> HWACCEL 0x00000100 # Blit uses hardware acceleration
- SRCCOLORKEY 0x00001000 # Blit uses a source color key
- RLEACCELOK 0x00002000 # Private flag
- RLEACCEL 0x00004000 # Surface is RLE encoded
- SRCALPHA 0x00010000 # Blit uses source alpha blending
- PREALLOC 0x01000000 # Surface uses preallocated memory
-</pre>
-<!--COMMENTS:Surface.get_flags--> &nbsp;<br>
-<br></ul>
-
-
-<a name="Surface.get_pitch">
-<big><b>Surface.get_pitch</big></b><br><ul>
- <i>get the number of bytes used per Surface row</i><br>
- <tt>Surface.get_pitch(): return int</tt><br>
-<p>Return the number of bytes separating each row in the Surface. Surfaces in video memory are not always linearly packed. Subsurfaces will also have a larger pitch than their real width. </p>
-<p>This value is not needed for normal Pygame usage. </p>
-<!--COMMENTS:Surface.get_pitch--> &nbsp;<br>
-<br></ul>
-
-
-<a name="Surface.get_masks">
-<big><b>Surface.get_masks</big></b><br><ul>
- <i>the bitmasks needed to convert between a color and a mapped integer</i><br>
- <tt>Surface.get_masks(): return (R, G, B, A)</tt><br>
-<p>Returns the bitmasks used to isolate each color in a mapped integer. </p>
-<p>This value is not needed for normal Pygame usage. </p>
-<!--COMMENTS:Surface.get_masks--> &nbsp;<br>
-<br></ul>
-
-
-<a name="Surface.set_masks">
-<big><b>Surface.set_masks</big></b><br><ul>
- <i>set the bitmasks needed to convert between a color and a mapped integer</i><br>
- <tt>Surface.set_masks((r,g,b,a)): return None</tt><br>
-<p>This is not needed for normal Pygame usage. New in pygame <tt>1.8.1</tt> </p>
-<!--COMMENTS:Surface.set_masks--> &nbsp;<br>
-<br></ul>
-
-
-<a name="Surface.get_shifts">
-<big><b>Surface.get_shifts</big></b><br><ul>
- <i>the bit shifts needed to convert between a color and a mapped integer</i><br>
- <tt>Surface.get_shifts(): return (R, G, B, A)</tt><br>
-<p>Returns the pixel shifts need to convert between each color and a mapped integer. </p>
-<p>This value is not needed for normal Pygame usage. </p>
-<!--COMMENTS:Surface.get_shifts--> &nbsp;<br>
-<br></ul>
-
-
-<a name="Surface.set_shifts">
-<big><b>Surface.set_shifts</big></b><br><ul>
- <i>sets the bit shifts needed to convert between a color and a mapped integer</i><br>
- <tt>Surface.get_shifts((r,g,b,a)): return None</tt><br>
-<p>This is not needed for normal Pygame usage. New in pygame <tt>1.8.1</tt> </p>
-<!--COMMENTS:Surface.set_shifts--> &nbsp;<br>
-<br></ul>
-
-
-<a name="Surface.get_losses">
-<big><b>Surface.get_losses</big></b><br><ul>
- <i>the significant bits used to convert between a color and a mapped integer</i><br>
- <tt>Surface.get_losses(): return (R, G, B, A)</tt><br>
-<p>Return the least significant number of bits stripped from each color in a mapped integer. </p>
-<p>This value is not needed for normal Pygame usage. </p>
-<!--COMMENTS:Surface.get_losses--> &nbsp;<br>
-<br></ul>
-
-
-<a name="Surface.get_bounding_rect">
-<big><b>Surface.get_bounding_rect</big></b><br><ul>
- <i>find the smallest rect containing data</i><br>
- <tt>Surface.get_bounding_rect(min_alpha = 1): return Rect</tt><br>
-<p>Returns the smallest rectangular region that contains all the pixels in the surface that have an alpha value greater than or equal to the minimum alpha value. </p>
-<p>This function will temporarily lock and unlock the Surface as needed. </p>
-<p>New in pygame <tt>1.8</tt>. </p>
-<!--COMMENTS:Surface.get_bounding_rect--> &nbsp;<br>
-<br></ul>
-
-
-<a name="Surface.get_buffer">
-<big><b>Surface.get_buffer</big></b><br><ul>
- <i>acquires a buffer object for the pixels of the Surface.</i><br>
- <tt>Surface.get_buffer(): return BufferProxy</tt><br>
-<p>Return a buffer object for the pixels of the Surface. The buffer can be used for direct pixel access and manipulation. </p>
-<p>This method implicitly locks the Surface. The lock will be released, once the returned BufferProxy object is deleted. </p>
-<p>New in pygame <tt>1.8</tt>. </p>
-<!--COMMENTS:Surface.get_buffer--> &nbsp;<br>
-<br></ul>
-<br></ul>
-
-</body></html>
diff --git a/pygame/docs/ref/surfarray.html b/pygame/docs/ref/surfarray.html
deleted file mode 100755
index 67464fc..0000000
--- a/pygame/docs/ref/surfarray.html
+++ /dev/null
@@ -1,220 +0,0 @@
-
-<html>
-<title>surfarray - Pygame Documentation</title>
-<body bgcolor=#aaeebb text=#000000 link=#331111 vlink=#331111>
-
-
-<table cellpadding=0 cellspacing=0 border=0 style='border: 3px solid black;' width='100%'>
-<tr>
-<td bgcolor='#c2fc20' style='padding: 6px;' align=center valign=center><a href='http://www.pygame.org/'><img src='../pygame_tiny.gif' border=0 width=200 height=60></a><br><b>pygame documentation</b></td>
-<td bgcolor='#6aee28' style='border-left: 3px solid black; padding: 6px;' align=center valign=center>
- ||&nbsp;
- <a href=http://www.pygame.org>Pygame Home</a> &nbsp;||&nbsp;
- <a href=../index.html>Help Contents</a> &nbsp;||
- <a href=index.html>Reference Index</a> &nbsp;||
- <br>&nbsp;<br>
-
-<a href="camera.html">Camera</a>&nbsp;||&nbsp;
-<a href="cdrom.html">Cdrom</a>&nbsp;||&nbsp;
-<a href="color.html">Color</a>&nbsp;||&nbsp;
-<a href="cursors.html">Cursors</a>&nbsp;||&nbsp;
-<a href="display.html">Display</a>&nbsp;||&nbsp;
-<a href="draw.html">Draw</a>&nbsp;||&nbsp;
-<a href="event.html">Event</a>&nbsp;||&nbsp;
-<a href="examples.html">Examples</a>&nbsp;||&nbsp;
-<a href="font.html">Font</a>&nbsp;||&nbsp;
-<a href="gfxdraw.html">Gfxdraw</a>&nbsp;||&nbsp;
-<a href="image.html">Image</a>&nbsp;||&nbsp;
-<a href="joystick.html">Joystick</a>&nbsp;||&nbsp;
-<a href="key.html">Key</a>&nbsp;||&nbsp;
-<a href="locals.html">Locals</a>&nbsp;||&nbsp;
-<a href="mask.html">Mask</a>&nbsp;||&nbsp;
-<a href="midi.html">Midi</a>&nbsp;||&nbsp;
-<a href="mixer.html">Mixer</a>&nbsp;||&nbsp;
-<a href="mouse.html">Mouse</a>&nbsp;||&nbsp;
-<a href="movie.html">Movie</a>&nbsp;||&nbsp;
-<a href="music.html">Music</a>&nbsp;||&nbsp;
-<a href="overlay.html">Overlay</a>&nbsp;||&nbsp;
-<a href="pixelarray.html">Pixelarray</a>&nbsp;||&nbsp;
-<a href="pygame.html">Pygame</a>&nbsp;||&nbsp;
-<a href="rect.html">Rect</a>&nbsp;||&nbsp;
-<a href="scrap.html">Scrap</a>&nbsp;||&nbsp;
-<a href="sndarray.html">Sndarray</a>&nbsp;||&nbsp;
-<a href="sprite.html">Sprite</a>&nbsp;||&nbsp;
-<a href="surface.html">Surface</a>&nbsp;||&nbsp;
-<a href="surfarray.html">Surfarray</a>&nbsp;||&nbsp;
-<a href="tests.html">Tests</a>&nbsp;||&nbsp;
-<a href="time.html">Time</a>&nbsp;||&nbsp;
-<a href="transform.html">Transform</a>
-</td></tr></table>
-<br>
-
-
-<a name="pygame.surfarray">
-<big><b>pygame.surfarray</big></b><br><ul>
- <i>pygame module for accessing surface pixel data using array interfaces</i><br>
-<ul><small><table>
- <tr><td><a href="surfarray.html#pygame.surfarray.array2d">pygame.surfarray.array2d</a> - <font size=-1>Copy pixels into a 2d array</font></td><td>Copy pixels into a 2d array</td></tr>
- <tr><td><a href="surfarray.html#pygame.surfarray.pixels2d">pygame.surfarray.pixels2d</a> - <font size=-1>Reference pixels into a 2d array</font></td><td>Reference pixels into a 2d array</td></tr>
- <tr><td><a href="surfarray.html#pygame.surfarray.array3d">pygame.surfarray.array3d</a> - <font size=-1>Copy pixels into a 3d array</font></td><td>Copy pixels into a 3d array</td></tr>
- <tr><td><a href="surfarray.html#pygame.surfarray.pixels3d">pygame.surfarray.pixels3d</a> - <font size=-1>Reference pixels into a 3d array</font></td><td>Reference pixels into a 3d array</td></tr>
- <tr><td><a href="surfarray.html#pygame.surfarray.array_alpha">pygame.surfarray.array_alpha</a> - <font size=-1>Copy pixel alphas into a 2d array</font></td><td>Copy pixel alphas into a 2d array</td></tr>
- <tr><td><a href="surfarray.html#pygame.surfarray.pixels_alpha">pygame.surfarray.pixels_alpha</a> - <font size=-1>Reference pixel alphas into a 2d array</font></td><td>Reference pixel alphas into a 2d array</td></tr>
- <tr><td><a href="surfarray.html#pygame.surfarray.array_colorkey">pygame.surfarray.array_colorkey</a> - <font size=-1>Copy the colorkey values into a 2d array</font></td><td>Copy the colorkey values into a 2d array</td></tr>
- <tr><td><a href="surfarray.html#pygame.surfarray.make_surface">pygame.surfarray.make_surface</a> - <font size=-1>Copy an array to a new surface</font></td><td>Copy an array to a new surface</td></tr>
- <tr><td><a href="surfarray.html#pygame.surfarray.blit_array">pygame.surfarray.blit_array</a> - <font size=-1>Blit directly from a array values</font></td><td>Blit directly from a array values</td></tr>
- <tr><td><a href="surfarray.html#pygame.surfarray.map_array">pygame.surfarray.map_array</a> - <font size=-1>Map a 3d array into a 2d array</font></td><td>Map a 3d array into a 2d array</td></tr>
- <tr><td><a href="surfarray.html#pygame.surfarray.use_arraytype">pygame.surfarray.use_arraytype</a> - <font size=-1>Sets the array system to be used for surface arrays</font></td><td>Sets the array system to be used for surface arrays</td></tr>
- <tr><td><a href="surfarray.html#pygame.surfarray.get_arraytype">pygame.surfarray.get_arraytype</a> - <font size=-1>Gets the currently active array type.</font></td><td>Gets the currently active array type.</td></tr>
- <tr><td><a href="surfarray.html#pygame.surfarray.get_arraytypes">pygame.surfarray.get_arraytypes</a> - <font size=-1>Gets the array system types currently supported.</font></td><td>Gets the array system types currently supported.</td></tr>
-</table></small></ul>
-<p>Functions to convert pixel data between pygame Surfaces and arrays. This module will only be functional when pygame can use the external Numpy or Numeric packages. </p>
-<p>Every pixel is stored as a single integer value to represent the red, green, and blue colors. The 8bit images use a value that looks into a colormap. Pixels with higher depth use a bit packing process to place three or four values into a single number. </p>
-<p>The arrays are indexed by the <tt>X</tt> axis first, followed by the <tt>Y</tt> axis. Arrays that treat the pixels as a single integer are referred to as <tt>2D</tt> arrays. This module can also separate the red, green, and blue color values into separate indices. These types of arrays are referred to as <tt>3D</tt> arrays, and the last index is 0 for red, 1 for green, and 2 for blue. </p>
-<p>Supported array systems are </p>
-<pre> numpy
- numeric
-</pre><p>The default will be numpy, if installed. Otherwise, Numeric will be set as default if installed. If neither numpy nor Numeric are installed, the module will raise an ImportError. </p>
-<p>The array type to use can be changed at runtime using the use_arraytype () method, which requires one of the above types as string. </p>
-<p>Note: numpy and Numeric are not completely compatible. Certain array manipulations, which work for one type, might behave differently or even completely break for the other. </p>
-<p>Additionally, in contrast to Numeric numpy does use unsigned 16-bit integers. Images with 16-bit data will be treated as unsigned integers. Numeric instead uses signed integers for the representation, which is important to keep in mind, if you use the module's functions and wonder about the values. </p>
-<p>The support of numpy is new in pygame <tt>1.8</tt>. </p>
-<!--COMMENTS:pygame.surfarray--> &nbsp;<br>
-
-
-<a name="pygame.surfarray.array2d">
-<big><b>pygame.surfarray.array2d</big></b><br><ul>
- <i>Copy pixels into a 2d array</i><br>
- <tt>pygame.surfarray.array2d(Surface): return array</tt><br>
-<p>Copy the pixels from a Surface into a <tt>2D</tt> array. The bit depth of the surface will control the size of the integer values, and will work for any type of pixel format. </p>
-<p>This function will temporarily lock the Surface as pixels are copied (see the <tt>Surface.lock</tt> - lock the Surface memory for pixel access method). </p>
-<!--COMMENTS:pygame.surfarray.array2d--> &nbsp;<br>
-<br></ul>
-
-
-<a name="pygame.surfarray.pixels2d">
-<big><b>pygame.surfarray.pixels2d</big></b><br><ul>
- <i>Reference pixels into a 2d array</i><br>
- <tt>pygame.surfarray.pixels2d(Surface): return array</tt><br>
-<p>Create a new <tt>2D</tt> array that directly references the pixel values in a Surface. Any changes to the array will affect the pixels in the Surface. This is a fast operation since no data is copied. </p>
-<p>Pixels from a 24-bit Surface cannot be referenced, but all other Surface bit depths can. </p>
-<p>The Surface this references will remain locked for the lifetime of the array (see the <tt>Surface.lock</tt> - lock the Surface memory for pixel access method). </p>
-<!--COMMENTS:pygame.surfarray.pixels2d--> &nbsp;<br>
-<br></ul>
-
-
-<a name="pygame.surfarray.array3d">
-<big><b>pygame.surfarray.array3d</big></b><br><ul>
- <i>Copy pixels into a 3d array</i><br>
- <tt>pygame.surfarray.array3d(Surface): return array</tt><br>
-<p>Copy the pixels from a Surface into a <tt>3D</tt> array. The bit depth of the surface will control the size of the integer values, and will work for any type of pixel format. </p>
-<p>This function will temporarily lock the Surface as pixels are copied (see the <tt>Surface.lock</tt> - lock the Surface memory for pixel access method). </p>
-<!--COMMENTS:pygame.surfarray.array3d--> &nbsp;<br>
-<br></ul>
-
-
-<a name="pygame.surfarray.pixels3d">
-<big><b>pygame.surfarray.pixels3d</big></b><br><ul>
- <i>Reference pixels into a 3d array</i><br>
- <tt>pygame.surfarray.pixels3d(Surface): return array</tt><br>
-<p>Create a new <tt>3D</tt> array that directly references the pixel values in a Surface. Any changes to the array will affect the pixels in the Surface. This is a fast operation since no data is copied. </p>
-<p>This will only work on Surfaces that have 24-bit or 32-bit formats. Lower pixel formats cannot be referenced. </p>
-<p>The Surface this references will remain locked for the lifetime of the array (see the <tt>Surface.lock</tt> - lock the Surface memory for pixel access method). </p>
-<!--COMMENTS:pygame.surfarray.pixels3d--> &nbsp;<br>
-<br></ul>
-
-
-<a name="pygame.surfarray.array_alpha">
-<big><b>pygame.surfarray.array_alpha</big></b><br><ul>
- <i>Copy pixel alphas into a 2d array</i><br>
- <tt>pygame.surfarray.array_alpha(Surface): return array</tt><br>
-<p>Copy the pixel alpha values (degree of transparency) from a Surface into a <tt>2D</tt> array. This will work for any type of Surface format. Surfaces without a pixel alpha will return an array with all opaque values. </p>
-<p>This function will temporarily lock the Surface as pixels are copied (see the <tt>Surface.lock</tt> - lock the Surface memory for pixel access method). </p>
-<!--COMMENTS:pygame.surfarray.array_alpha--> &nbsp;<br>
-<br></ul>
-
-
-<a name="pygame.surfarray.pixels_alpha">
-<big><b>pygame.surfarray.pixels_alpha</big></b><br><ul>
- <i>Reference pixel alphas into a 2d array</i><br>
- <tt>pygame.surfarray.pixels_alpha(Surface): return array</tt><br>
-<p>Create a new <tt>2D</tt> array that directly references the alpha values (degree of transparency) in a Surface. Any changes to the array will affect the pixels in the Surface. This is a fast operation since no data is copied. </p>
-<p>This can only work on 32-bit Surfaces with a per-pixel alpha value. </p>
-<p>The Surface this array references will remain locked for the lifetime of the array. </p>
-<!--COMMENTS:pygame.surfarray.pixels_alpha--> &nbsp;<br>
-<br></ul>
-
-
-<a name="pygame.surfarray.array_colorkey">
-<big><b>pygame.surfarray.array_colorkey</big></b><br><ul>
- <i>Copy the colorkey values into a 2d array</i><br>
- <tt>pygame.surfarray.array_colorkey(Surface): return array</tt><br>
-<p>Create a new array with the colorkey transparency value from each pixel. If the pixel matches the colorkey it will be fully tranparent; otherwise it will be fully opaque. </p>
-<p>This will work on any type of Surface format. If the image has no colorkey a solid opaque array will be returned. </p>
-<p>This function will temporarily lock the Surface as pixels are copied. </p>
-<!--COMMENTS:pygame.surfarray.array_colorkey--> &nbsp;<br>
-<br></ul>
-
-
-<a name="pygame.surfarray.make_surface">
-<big><b>pygame.surfarray.make_surface</big></b><br><ul>
- <i>Copy an array to a new surface</i><br>
- <tt>pygame.surfarray.make_surface(array): return Surface</tt><br>
-<p>Create a new Surface that best resembles the data and format on the array. The array can be <tt>2D</tt> or <tt>3D</tt> with any sized integer values. </p>
-<!--COMMENTS:pygame.surfarray.make_surface--> &nbsp;<br>
-<br></ul>
-
-
-<a name="pygame.surfarray.blit_array">
-<big><b>pygame.surfarray.blit_array</big></b><br><ul>
- <i>Blit directly from a array values</i><br>
- <tt>pygame.surfarray.blit_array(Surface, array): return None</tt><br>
-<p>Directly copy values from an array into a Surface. This is faster than converting the array into a Surface and blitting. The array must be the same dimensions as the Surface and will completely replace all pixel values. Only integer, ascii character and record arrays are accepted. </p>
-<p>This function will temporarily lock the Surface as the new values are copied. </p>
-<!--COMMENTS:pygame.surfarray.blit_array--> &nbsp;<br>
-<br></ul>
-
-
-<a name="pygame.surfarray.map_array">
-<big><b>pygame.surfarray.map_array</big></b><br><ul>
- <i>Map a 3d array into a 2d array</i><br>
- <tt>pygame.surfarray.map_array(Surface, array3d): return array2d</tt><br>
-<p>Convert a <tt>3D</tt> array into a <tt>2D</tt> array. This will use the given Surface format to control the conversion. Palette surface formats are not supported. </p>
-<!--COMMENTS:pygame.surfarray.map_array--> &nbsp;<br>
-<br></ul>
-
-
-<a name="pygame.surfarray.use_arraytype">
-<big><b>pygame.surfarray.use_arraytype</big></b><br><ul>
- <i>Sets the array system to be used for surface arrays</i><br>
- <tt>pygame.surfarray.use_arraytype (arraytype): return None</tt><br>
-<p>Uses the requested array type for the module functions. Currently supported array types are: </p>
-<pre> numeric
- numpy
-</pre><p>If the requested type is not available, a ValueError will be raised. </p>
-<p>New in pygame <tt>1.8</tt>. </p>
-<!--COMMENTS:pygame.surfarray.use_arraytype--> &nbsp;<br>
-<br></ul>
-
-
-<a name="pygame.surfarray.get_arraytype">
-<big><b>pygame.surfarray.get_arraytype</big></b><br><ul>
- <i>Gets the currently active array type.</i><br>
- <tt>pygame.surfarray.get_arraytype (): return str</tt><br>
-<p>Returns the currently active array type. This will be a value of the get_arraytypes() tuple and indicates which type of array module is used for the array creation. </p>
-<p>New in pygame <tt>1.8</tt> </p>
-<!--COMMENTS:pygame.surfarray.get_arraytype--> &nbsp;<br>
-<br></ul>
-
-
-<a name="pygame.surfarray.get_arraytypes">
-<big><b>pygame.surfarray.get_arraytypes</big></b><br><ul>
- <i>Gets the array system types currently supported.</i><br>
- <tt>pygame.surfarray.get_arraytypes (): return tuple</tt><br>
-<p>Checks, which array systems are available and returns them as a tuple of strings. The values of the tuple can be used directly in the <tt>pygame.surfarray.use_arraytype</tt> () method. If no supported array system could be found, None will be returned. </p>
-<p>New in pygame <tt>1.8</tt>. </p>
-<!--COMMENTS:pygame.surfarray.get_arraytypes--> &nbsp;<br>
-<br></ul>
-<br></ul>
-
-</body></html>
diff --git a/pygame/docs/ref/tests.html b/pygame/docs/ref/tests.html
deleted file mode 100755
index 026e733..0000000
--- a/pygame/docs/ref/tests.html
+++ /dev/null
@@ -1,108 +0,0 @@
-
-<html>
-<title>tests - Pygame Documentation</title>
-<body bgcolor=#aaeebb text=#000000 link=#331111 vlink=#331111>
-
-
-<table cellpadding=0 cellspacing=0 border=0 style='border: 3px solid black;' width='100%'>
-<tr>
-<td bgcolor='#c2fc20' style='padding: 6px;' align=center valign=center><a href='http://www.pygame.org/'><img src='../pygame_tiny.gif' border=0 width=200 height=60></a><br><b>pygame documentation</b></td>
-<td bgcolor='#6aee28' style='border-left: 3px solid black; padding: 6px;' align=center valign=center>
- ||&nbsp;
- <a href=http://www.pygame.org>Pygame Home</a> &nbsp;||&nbsp;
- <a href=../index.html>Help Contents</a> &nbsp;||
- <a href=index.html>Reference Index</a> &nbsp;||
- <br>&nbsp;<br>
-
-<a href="camera.html">Camera</a>&nbsp;||&nbsp;
-<a href="cdrom.html">Cdrom</a>&nbsp;||&nbsp;
-<a href="color.html">Color</a>&nbsp;||&nbsp;
-<a href="cursors.html">Cursors</a>&nbsp;||&nbsp;
-<a href="display.html">Display</a>&nbsp;||&nbsp;
-<a href="draw.html">Draw</a>&nbsp;||&nbsp;
-<a href="event.html">Event</a>&nbsp;||&nbsp;
-<a href="examples.html">Examples</a>&nbsp;||&nbsp;
-<a href="font.html">Font</a>&nbsp;||&nbsp;
-<a href="gfxdraw.html">Gfxdraw</a>&nbsp;||&nbsp;
-<a href="image.html">Image</a>&nbsp;||&nbsp;
-<a href="joystick.html">Joystick</a>&nbsp;||&nbsp;
-<a href="key.html">Key</a>&nbsp;||&nbsp;
-<a href="locals.html">Locals</a>&nbsp;||&nbsp;
-<a href="mask.html">Mask</a>&nbsp;||&nbsp;
-<a href="midi.html">Midi</a>&nbsp;||&nbsp;
-<a href="mixer.html">Mixer</a>&nbsp;||&nbsp;
-<a href="mouse.html">Mouse</a>&nbsp;||&nbsp;
-<a href="movie.html">Movie</a>&nbsp;||&nbsp;
-<a href="music.html">Music</a>&nbsp;||&nbsp;
-<a href="overlay.html">Overlay</a>&nbsp;||&nbsp;
-<a href="pixelarray.html">Pixelarray</a>&nbsp;||&nbsp;
-<a href="pygame.html">Pygame</a>&nbsp;||&nbsp;
-<a href="rect.html">Rect</a>&nbsp;||&nbsp;
-<a href="scrap.html">Scrap</a>&nbsp;||&nbsp;
-<a href="sndarray.html">Sndarray</a>&nbsp;||&nbsp;
-<a href="sprite.html">Sprite</a>&nbsp;||&nbsp;
-<a href="surface.html">Surface</a>&nbsp;||&nbsp;
-<a href="surfarray.html">Surfarray</a>&nbsp;||&nbsp;
-<a href="tests.html">Tests</a>&nbsp;||&nbsp;
-<a href="time.html">Time</a>&nbsp;||&nbsp;
-<a href="transform.html">Transform</a>
-</td></tr></table>
-<br>
-
-
-<a name="pygame.tests">
-<big><b>pygame.tests</big></b><br><ul>
- <i>Pygame unit test suite package</i><br>
-<ul><small><table>
- <tr><td><a href="tests.html#pygame.tests.run">pygame.tests.run</a> - <font size=-1>Run the Pygame unit test suite</font></td><td>Run the Pygame unit test suite</td></tr>
-</table></small></ul>
-<p><tt>A</tt> quick way to run the test suite package from the command line is to import the go submodule with the Python -m option: </p>
-<pre> python -m pygame.tests [&lt;test options&gt;]
-</pre><p>Command line option --help displays a usage message. Available options correspond to the <tt>pygame.tests.run</tt> arguments. </p>
-<p>The xxxx_test submodules of the tests package are unit test suites for individual parts of Pygame. Each can also be run as a main program. This is useful if the test, such as cdrom_test, is interactive. </p>
-<p>For Pygame development the test suite can be run from a Pygame distribution root directory. Program <tt>run_tests.py</tt> is provided for convenience, though <tt>test/go.py</tt> can be run directly. </p>
-<p>Module level tags control which modules are included in a unit test run. Tags are assigned to a unit test module with a corresponding <tt>&lt;name&gt;_tags.py</tt> module. The tags module has the global __tags__, a list of tag names. For example, <tt>cdrom_test.py</tt> has a tag file <tt>cdrom_tags.py</tt> containing a tags list that has the 'interactive' string. The 'interactive' tag indicates <tt>cdrom_test.py</tt> expects user input. It is excluded from a <tt>run_tests.py</tt> or <tt>pygame.tests.go</tt> run. Two other tags that are excluded are 'ignore' and 'subprocess_ignore'. These two tags indicate unit tests that will not run on a particular platform, or for which no corresponding Pygame module is available. The test runner will list each excluded module along with the tag responsible. </p>
-<!--COMMENTS:pygame.tests--> &nbsp;<br>
-
-
-<a name="pygame.tests.run">
-<big><b>pygame.tests.run</big></b><br><ul>
- <i>Run the Pygame unit test suite</i><br>
- <tt>pygame.tests.run(*args, **kwds): return tuple</tt><br>
-<p>Positional arguments (optional): </p>
-<pre> The names of tests to include. If omitted then all tests are run. Test names
- need not include the trailing '_test'.
-</pre><p>Keyword arguments: </p>
-<pre> incomplete - fail incomplete tests (default False)
- nosubprocess - run all test suites in the current process
- (default False, use separate subprocesses)
- dump - dump failures/errors as dict ready to eval (default False)
- file - if provided, the name of a file into which to dump failures/errors
- timings - if provided, the number of times to run each individual test to
- get an average run time (default is run each test once)
- exclude - A list of TAG names to exclude from the run
- show_output - show silenced stderr/stdout on errors (default False)
- all - dump all results, not just errors (default False)
- randomize - randomize order of tests (default False)
- seed - if provided, a seed randomizer integer
- multi_thread - if provided, the number of THREADS in which to run
- subprocessed tests
- time_out - if subprocess is True then the time limit in seconds before
- killing a test (default 30)
- fake - if provided, the name of the fake tests package in the
- run_tests__tests subpackage to run instead of the normal
- Pygame tests
- python - the path to a python executable to run subprocessed tests
- (default sys.executable)
-</pre><p>Return value: </p>
-<pre> A tuple of total number of tests run, dictionary of error information.
- The dictionary is empty if no errors were recorded.
-</pre><p>By default individual test modules are run in separate subprocesses. This recreates normal Pygame usage where <tt><a href="pygame.html#pygame.init">pygame.init</a> - <font size=-1>initialize all imported pygame modules</font></tt> and <tt><a href="pygame.html#pygame.quit">pygame.quit</a> - <font size=-1>uninitialize all pygame modules</font></tt> are called only once per program execution, and avoids unfortunate interactions between test modules. Also, a time limit is placed on test execution, so frozen tests are killed when there time allotment expired. Use the single process option if threading is not working properly or if tests are taking too long. It is not guaranteed that all tests will pass in single process mode. </p>
-<p>Tests are run in a randomized order if the randomize argument is True or a seed argument is provided. If no seed integer is provided then the system time is used. </p>
-<p>Individual test modules may have a __tags__ attribute, a list of tag strings used to selectively omit modules from a run. By default only 'interactive' modules such as cdrom_test are ignored. An interactive module must be run from the console as a Python program. </p>
-<p>This function can only be called once per Python session. It is not reentrant. </p>
-<!--COMMENTS:pygame.tests.run--> &nbsp;<br>
-<br></ul>
-<br></ul>
-
-</body></html>
diff --git a/pygame/docs/ref/time.html b/pygame/docs/ref/time.html
deleted file mode 100755
index e278d63..0000000
--- a/pygame/docs/ref/time.html
+++ /dev/null
@@ -1,175 +0,0 @@
-
-<html>
-<title>time - Pygame Documentation</title>
-<body bgcolor=#aaeebb text=#000000 link=#331111 vlink=#331111>
-
-
-<table cellpadding=0 cellspacing=0 border=0 style='border: 3px solid black;' width='100%'>
-<tr>
-<td bgcolor='#c2fc20' style='padding: 6px;' align=center valign=center><a href='http://www.pygame.org/'><img src='../pygame_tiny.gif' border=0 width=200 height=60></a><br><b>pygame documentation</b></td>
-<td bgcolor='#6aee28' style='border-left: 3px solid black; padding: 6px;' align=center valign=center>
- ||&nbsp;
- <a href=http://www.pygame.org>Pygame Home</a> &nbsp;||&nbsp;
- <a href=../index.html>Help Contents</a> &nbsp;||
- <a href=index.html>Reference Index</a> &nbsp;||
- <br>&nbsp;<br>
-
-<a href="camera.html">Camera</a>&nbsp;||&nbsp;
-<a href="cdrom.html">Cdrom</a>&nbsp;||&nbsp;
-<a href="color.html">Color</a>&nbsp;||&nbsp;
-<a href="cursors.html">Cursors</a>&nbsp;||&nbsp;
-<a href="display.html">Display</a>&nbsp;||&nbsp;
-<a href="draw.html">Draw</a>&nbsp;||&nbsp;
-<a href="event.html">Event</a>&nbsp;||&nbsp;
-<a href="examples.html">Examples</a>&nbsp;||&nbsp;
-<a href="font.html">Font</a>&nbsp;||&nbsp;
-<a href="gfxdraw.html">Gfxdraw</a>&nbsp;||&nbsp;
-<a href="image.html">Image</a>&nbsp;||&nbsp;
-<a href="joystick.html">Joystick</a>&nbsp;||&nbsp;
-<a href="key.html">Key</a>&nbsp;||&nbsp;
-<a href="locals.html">Locals</a>&nbsp;||&nbsp;
-<a href="mask.html">Mask</a>&nbsp;||&nbsp;
-<a href="midi.html">Midi</a>&nbsp;||&nbsp;
-<a href="mixer.html">Mixer</a>&nbsp;||&nbsp;
-<a href="mouse.html">Mouse</a>&nbsp;||&nbsp;
-<a href="movie.html">Movie</a>&nbsp;||&nbsp;
-<a href="music.html">Music</a>&nbsp;||&nbsp;
-<a href="overlay.html">Overlay</a>&nbsp;||&nbsp;
-<a href="pixelarray.html">Pixelarray</a>&nbsp;||&nbsp;
-<a href="pygame.html">Pygame</a>&nbsp;||&nbsp;
-<a href="rect.html">Rect</a>&nbsp;||&nbsp;
-<a href="scrap.html">Scrap</a>&nbsp;||&nbsp;
-<a href="sndarray.html">Sndarray</a>&nbsp;||&nbsp;
-<a href="sprite.html">Sprite</a>&nbsp;||&nbsp;
-<a href="surface.html">Surface</a>&nbsp;||&nbsp;
-<a href="surfarray.html">Surfarray</a>&nbsp;||&nbsp;
-<a href="tests.html">Tests</a>&nbsp;||&nbsp;
-<a href="time.html">Time</a>&nbsp;||&nbsp;
-<a href="transform.html">Transform</a>
-</td></tr></table>
-<br>
-
-
-<a name="pygame.time">
-<big><b>pygame.time</big></b><br><ul>
- <i>pygame module for monitoring time</i><br>
-<ul><small><table>
- <tr><td><a href="time.html#pygame.time.get_ticks">pygame.time.get_ticks</a> - <font size=-1>get the time in milliseconds</font></td><td>get the time in milliseconds</td></tr>
- <tr><td><a href="time.html#pygame.time.wait">pygame.time.wait</a> - <font size=-1>pause the program for an amount of time</font></td><td>pause the program for an amount of time</td></tr>
- <tr><td><a href="time.html#pygame.time.delay">pygame.time.delay</a> - <font size=-1>pause the program for an amount of time</font></td><td>pause the program for an amount of time</td></tr>
- <tr><td><a href="time.html#pygame.time.set_timer">pygame.time.set_timer</a> - <font size=-1>repeatedly create an event on the event queue</font></td><td>repeatedly create an event on the event queue</td></tr>
- <tr><td><a href="time.html#pygame.time.Clock">pygame.time.Clock</a> - <font size=-1>create an object to help track time</font></td><td>create an object to help track time</td></tr>
-</table></small></ul>
-<p>Times in pygame are represented in milliseconds (1/1000 seconds). Most platforms have a limited time resolution of around 10 milliseconds. This resolution, in milliseconds, is given in the <tt>TIMER_RESOLUTION</tt> constant. </p>
-<!--COMMENTS:pygame.time--> &nbsp;<br>
-
-
-<a name="pygame.time.get_ticks">
-<big><b>pygame.time.get_ticks</big></b><br><ul>
- <i>get the time in milliseconds</i><br>
- <tt>pygame.time.get_ticks(): return milliseconds</tt><br>
-<p>Return the number of millisconds since <tt><a href="pygame.html#pygame.init">pygame.init</a> - <font size=-1>initialize all imported pygame modules</font></tt> was called. Before pygame is initialized this will always be 0. </p>
-<!--COMMENTS:pygame.time.get_ticks--> &nbsp;<br>
-<br></ul>
-
-
-<a name="pygame.time.wait">
-<big><b>pygame.time.wait</big></b><br><ul>
- <i>pause the program for an amount of time</i><br>
- <tt>pygame.time.wait(milliseconds): return time</tt><br>
-<p>Will pause for a given number of milliseconds. This function sleeps the process to share the processor with other programs. <tt>A</tt> program that waits for even a few milliseconds will consume very little processor time. It is slightly less accurate than the <tt><a href="time.html#pygame.time.delay">pygame.time.delay</a> - <font size=-1>pause the program for an amount of time</font></tt> function. </p>
-<p>This returns the actual number of milliseconds used. </p>
-<!--COMMENTS:pygame.time.wait--> &nbsp;<br>
-<br></ul>
-
-
-<a name="pygame.time.delay">
-<big><b>pygame.time.delay</big></b><br><ul>
- <i>pause the program for an amount of time</i><br>
- <tt>pygame.time.delay(milliseconds): return time</tt><br>
-<p>Will pause for a given number of milliseconds. This function will use the processor (rather than sleeping) in order to make the delay more accurate than <tt><a href="time.html#pygame.time.wait">pygame.time.wait</a> - <font size=-1>pause the program for an amount of time</font></tt>. </p>
-<p>This returns the actual number of milliseconds used. </p>
-<!--COMMENTS:pygame.time.delay--> &nbsp;<br>
-<br></ul>
-
-
-<a name="pygame.time.set_timer">
-<big><b>pygame.time.set_timer</big></b><br><ul>
- <i>repeatedly create an event on the event queue</i><br>
- <tt>pygame.time.set_timer(eventid, milliseconds): return None</tt><br>
-<p>Set an event type to appear on the event queue every given number of milliseconds. The first event will not appear until the amount of time has passed. </p>
-<p>Every event type can have a separate timer attached to it. It is best to use the value between <tt>pygame.USEREVENT</tt> and <tt>pygame.NUMEVENTS</tt>. </p>
-<p>To disable the timer for an event, set the milliseconds argument to 0. </p>
-<!--COMMENTS:pygame.time.set_timer--> &nbsp;<br>
-<br></ul>
-
-
-<a name="pygame.time.Clock">
-<big><b>pygame.time.Clock</big></b><br><ul>
- <i>create an object to help track time</i><br>
- <tt>pygame.time.Clock(): return Clock</tt><br>
-<ul><small><table>
- <tr><td><a href="time.html#Clock.tick">Clock.tick</a> - <font size=-1>update the clock</font></td><td>update the clock</td></tr>
- <tr><td><a href="time.html#Clock.tick_busy_loop">Clock.tick_busy_loop</a> - <font size=-1>update the clock</font></td><td>update the clock</td></tr>
- <tr><td><a href="time.html#Clock.get_time">Clock.get_time</a> - <font size=-1>time used in the previous tick</font></td><td>time used in the previous tick</td></tr>
- <tr><td><a href="time.html#Clock.get_rawtime">Clock.get_rawtime</a> - <font size=-1>actual time used in the previous tick</font></td><td>actual time used in the previous tick</td></tr>
- <tr><td><a href="time.html#Clock.get_fps">Clock.get_fps</a> - <font size=-1>compute the clock framerate</font></td><td>compute the clock framerate</td></tr>
-</table></small></ul>
-<p>Creates a new Clock object that can be used to track an amount of time. The clock also provides several functions to help control a game's framerate. </p>
-<!--COMMENTS:pygame.time.Clock--> &nbsp;<br>
-
-
-<a name="Clock.tick">
-<big><b>Clock.tick</big></b><br><ul>
- <i>update the clock</i><br>
- <tt>Clock.tick(framerate=0): return milliseconds</tt><br>
- <tt>control timer events</tt><br>
-<p>This method should be called once per frame. It will compute how many milliseconds have passed since the previous call. </p>
-<p>If you pass the optional framerate argument the function will delay to keep the game running slower than the given ticks per second. This can be used to help limit the runtime speed of a game. By calling <tt>Clock.tick(40)</tt> once per frame, the program will never run at more than 40 frames per second. </p>
-<p>Note that this function uses SDL_Delay function which is not accurate on every platform, but does not use much cpu. Use tick_busy_loop if you want an accurate timer, and don't mind chewing cpu. </p>
-<!--COMMENTS:Clock.tick--> &nbsp;<br>
-<br></ul>
-
-
-<a name="Clock.tick_busy_loop">
-<big><b>Clock.tick_busy_loop</big></b><br><ul>
- <i>update the clock</i><br>
- <tt>Clock.tick_busy_loop(framerate=0): return milliseconds</tt><br>
- <tt>control timer events</tt><br>
-<p>This method should be called once per frame. It will compute how many milliseconds have passed since the previous call. </p>
-<p>If you pass the optional framerate argument the function will delay to keep the game running slower than the given ticks per second. This can be used to help limit the runtime speed of a game. By calling <tt>Clock.tick(40)</tt> once per frame, the program will never run at more than 40 frames per second. </p>
-<p>Note that this function uses <tt>pygame.time.delay</tt>, which uses lots of cpu in a busy loop to make sure that timing is more acurate. </p>
-<p>New in pygame <tt>1.8.0</tt>. </p>
-<!--COMMENTS:Clock.tick_busy_loop--> &nbsp;<br>
-<br></ul>
-
-
-<a name="Clock.get_time">
-<big><b>Clock.get_time</big></b><br><ul>
- <i>time used in the previous tick</i><br>
- <tt>Clock.get_time(): return milliseconds</tt><br>
-<p>Returns the parameter passed to the last call to <tt><a href="time.html#Clock.tick">Clock.tick</a> - <font size=-1>update the clock</font></tt>. It is the number of milliseconds passed between the previous two calls to <tt>Pygame.tick()</tt>. </p>
-<!--COMMENTS:Clock.get_time--> &nbsp;<br>
-<br></ul>
-
-
-<a name="Clock.get_rawtime">
-<big><b>Clock.get_rawtime</big></b><br><ul>
- <i>actual time used in the previous tick</i><br>
- <tt>Clock.get_rawtime(): return milliseconds</tt><br>
-<p>Similar to <tt><a href="time.html#Clock.get_time">Clock.get_time</a> - <font size=-1>time used in the previous tick</font></tt>, but this does not include any time used while <tt><a href="time.html#Clock.tick">Clock.tick</a> - <font size=-1>update the clock</font></tt> was delaying to limit the framerate. </p>
-<!--COMMENTS:Clock.get_rawtime--> &nbsp;<br>
-<br></ul>
-
-
-<a name="Clock.get_fps">
-<big><b>Clock.get_fps</big></b><br><ul>
- <i>compute the clock framerate</i><br>
- <tt>Clock.get_fps(): return float</tt><br>
-<p>Compute your game's framerate (in frames per second). It is computed by averaging the last few calls to <tt><a href="time.html#Clock.tick">Clock.tick</a> - <font size=-1>update the clock</font></tt>. </p>
-<!--COMMENTS:Clock.get_fps--> &nbsp;<br>
-<br></ul>
-<br></ul>
-<br></ul>
-
-</body></html>
diff --git a/pygame/docs/ref/transform.html b/pygame/docs/ref/transform.html
deleted file mode 100755
index f254d1f..0000000
--- a/pygame/docs/ref/transform.html
+++ /dev/null
@@ -1,212 +0,0 @@
-
-<html>
-<title>transform - Pygame Documentation</title>
-<body bgcolor=#aaeebb text=#000000 link=#331111 vlink=#331111>
-
-
-<table cellpadding=0 cellspacing=0 border=0 style='border: 3px solid black;' width='100%'>
-<tr>
-<td bgcolor='#c2fc20' style='padding: 6px;' align=center valign=center><a href='http://www.pygame.org/'><img src='../pygame_tiny.gif' border=0 width=200 height=60></a><br><b>pygame documentation</b></td>
-<td bgcolor='#6aee28' style='border-left: 3px solid black; padding: 6px;' align=center valign=center>
- ||&nbsp;
- <a href=http://www.pygame.org>Pygame Home</a> &nbsp;||&nbsp;
- <a href=../index.html>Help Contents</a> &nbsp;||
- <a href=index.html>Reference Index</a> &nbsp;||
- <br>&nbsp;<br>
-
-<a href="camera.html">Camera</a>&nbsp;||&nbsp;
-<a href="cdrom.html">Cdrom</a>&nbsp;||&nbsp;
-<a href="color.html">Color</a>&nbsp;||&nbsp;
-<a href="cursors.html">Cursors</a>&nbsp;||&nbsp;
-<a href="display.html">Display</a>&nbsp;||&nbsp;
-<a href="draw.html">Draw</a>&nbsp;||&nbsp;
-<a href="event.html">Event</a>&nbsp;||&nbsp;
-<a href="examples.html">Examples</a>&nbsp;||&nbsp;
-<a href="font.html">Font</a>&nbsp;||&nbsp;
-<a href="gfxdraw.html">Gfxdraw</a>&nbsp;||&nbsp;
-<a href="image.html">Image</a>&nbsp;||&nbsp;
-<a href="joystick.html">Joystick</a>&nbsp;||&nbsp;
-<a href="key.html">Key</a>&nbsp;||&nbsp;
-<a href="locals.html">Locals</a>&nbsp;||&nbsp;
-<a href="mask.html">Mask</a>&nbsp;||&nbsp;
-<a href="midi.html">Midi</a>&nbsp;||&nbsp;
-<a href="mixer.html">Mixer</a>&nbsp;||&nbsp;
-<a href="mouse.html">Mouse</a>&nbsp;||&nbsp;
-<a href="movie.html">Movie</a>&nbsp;||&nbsp;
-<a href="music.html">Music</a>&nbsp;||&nbsp;
-<a href="overlay.html">Overlay</a>&nbsp;||&nbsp;
-<a href="pixelarray.html">Pixelarray</a>&nbsp;||&nbsp;
-<a href="pygame.html">Pygame</a>&nbsp;||&nbsp;
-<a href="rect.html">Rect</a>&nbsp;||&nbsp;
-<a href="scrap.html">Scrap</a>&nbsp;||&nbsp;
-<a href="sndarray.html">Sndarray</a>&nbsp;||&nbsp;
-<a href="sprite.html">Sprite</a>&nbsp;||&nbsp;
-<a href="surface.html">Surface</a>&nbsp;||&nbsp;
-<a href="surfarray.html">Surfarray</a>&nbsp;||&nbsp;
-<a href="tests.html">Tests</a>&nbsp;||&nbsp;
-<a href="time.html">Time</a>&nbsp;||&nbsp;
-<a href="transform.html">Transform</a>
-</td></tr></table>
-<br>
-
-
-<a name="pygame.transform">
-<big><b>pygame.transform</big></b><br><ul>
- <i>pygame module to transform surfaces</i><br>
-<ul><small><table>
- <tr><td><a href="transform.html#pygame.transform.flip">pygame.transform.flip</a> - <font size=-1>flip vertically and horizontally</font></td><td>flip vertically and horizontally</td></tr>
- <tr><td><a href="transform.html#pygame.transform.scale">pygame.transform.scale</a> - <font size=-1>resize to new resolution</font></td><td>resize to new resolution</td></tr>
- <tr><td><a href="transform.html#pygame.transform.rotate">pygame.transform.rotate</a> - <font size=-1>rotate an image</font></td><td>rotate an image</td></tr>
- <tr><td><a href="transform.html#pygame.transform.rotozoom">pygame.transform.rotozoom</a> - <font size=-1>filtered scale and rotation</font></td><td>filtered scale and rotation</td></tr>
- <tr><td><a href="transform.html#pygame.transform.scale2x">pygame.transform.scale2x</a> - <font size=-1>specialized image doubler</font></td><td>specialized image doubler</td></tr>
- <tr><td><a href="transform.html#pygame.transform.smoothscale">pygame.transform.smoothscale</a> - <font size=-1>scale a surface to an arbitrary size smoothly</font></td><td>scale a surface to an arbitrary size smoothly</td></tr>
- <tr><td><a href="transform.html#pygame.transform.get_smoothscale_backend">pygame.transform.get_smoothscale_backend</a> - <font size=-1>return smoothscale filter version in use: 'GENERIC', 'MMX', or 'SSE'</font></td><td>return smoothscale filter version in use: 'GENERIC', 'MMX', or 'SSE'</td></tr>
- <tr><td><a href="transform.html#pygame.transform.set_smoothscale_backend">pygame.transform.set_smoothscale_backend</a> - <font size=-1>set smoothscale filter version to one of: 'GENERIC', 'MMX', or 'SSE'</font></td><td>set smoothscale filter version to one of: 'GENERIC', 'MMX', or 'SSE'</td></tr>
- <tr><td><a href="transform.html#pygame.transform.chop">pygame.transform.chop</a> - <font size=-1>gets a copy of an image with an interior area removed</font></td><td>gets a copy of an image with an interior area removed</td></tr>
- <tr><td><a href="transform.html#pygame.transform.laplacian">pygame.transform.laplacian</a> - <font size=-1>find edges in a surface</font></td><td>find edges in a surface</td></tr>
- <tr><td><a href="transform.html#pygame.transform.average_surfaces">pygame.transform.average_surfaces</a> - <font size=-1>find the average surface from many surfaces.</font></td><td>find the average surface from many surfaces.</td></tr>
- <tr><td><a href="transform.html#pygame.transform.average_color">pygame.transform.average_color</a> - <font size=-1>finds the average color of a surface</font></td><td>finds the average color of a surface</td></tr>
- <tr><td><a href="transform.html#pygame.transform.threshold">pygame.transform.threshold</a> - <font size=-1>finds which, and how many pixels in a surface are within a threshold of a color.</font></td><td>finds which, and how many pixels in a surface are within a threshold of a color.</td></tr>
-</table></small></ul>
-<p><tt>A</tt> Surface transform is an operation that moves or resizes the pixels. All these functions take a Surface to operate on and return a new Surface with the results. </p>
-<p>Some of the transforms are considered destructive. These means every time they are performed they lose pixel data. Common examples of this are resizing and rotating. For this reason, it is better to retransform the original surface than to keep transforming an image multiple times. (For example, suppose you are animating a bouncing spring which expands and contracts. If you applied the size changes incrementally to the previous images, you would lose detail. Instead, always begin with the original image and scale to the desired <tt>size.)</tt> </p>
-<!--COMMENTS:pygame.transform--> &nbsp;<br>
-
-
-<a name="pygame.transform.flip">
-<big><b>pygame.transform.flip</big></b><br><ul>
- <i>flip vertically and horizontally</i><br>
- <tt>pygame.transform.flip(Surface, xbool, ybool): return Surface</tt><br>
-<p>This can flip a Surface either vertically, horizontally, or both. Flipping a Surface is nondestructive and returns a new Surface with the same dimensions. </p>
-<!--COMMENTS:pygame.transform.flip--> &nbsp;<br>
-<br></ul>
-
-
-<a name="pygame.transform.scale">
-<big><b>pygame.transform.scale</big></b><br><ul>
- <i>resize to new resolution</i><br>
- <tt>pygame.transform.scale(Surface, (width, height), DestSurface = None): return Surface</tt><br>
-<p>Resizes the Surface to a new resolution. This is a fast scale operation that does not sample the results. </p>
-<p>An optional destination surface can be used, rather than have it create a new one. This is quicker if you want to repeatedly scale something. However the destination must be the same size as the (width, height) passed in. Also the destination surface must be the same format. </p>
-<!--COMMENTS:pygame.transform.scale--> &nbsp;<br>
-<br></ul>
-
-
-<a name="pygame.transform.rotate">
-<big><b>pygame.transform.rotate</big></b><br><ul>
- <i>rotate an image</i><br>
- <tt>pygame.transform.rotate(Surface, angle): return Surface</tt><br>
-<p>Unfiltered counterclockwise rotation. The angle argument represents degrees and can be any floating point value. Negative angle amounts will rotate clockwise. </p>
-<p>Unless rotating by 90 degree increments, the image will be padded larger to hold the new size. If the image has pixel alphas, the padded area will be transparent. Otherwise pygame will pick a color that matches the Surface colorkey or the topleft pixel value. </p>
-<!--COMMENTS:pygame.transform.rotate--> &nbsp;<br>
-<br></ul>
-
-
-<a name="pygame.transform.rotozoom">
-<big><b>pygame.transform.rotozoom</big></b><br><ul>
- <i>filtered scale and rotation</i><br>
- <tt>pygame.transform.rotozoom(Surface, angle, scale): return Surface</tt><br>
-<p>This is a combined scale and rotation transform. The resulting Surface will be a filtered 32-bit Surface. The scale argument is a floating point value that will be multiplied by the current resolution. The angle argument is a floating point value that represents the counterclockwise degrees to rotate. <tt>A</tt> negative rotation angle will rotate clockwise. </p>
-<!--COMMENTS:pygame.transform.rotozoom--> &nbsp;<br>
-<br></ul>
-
-
-<a name="pygame.transform.scale2x">
-<big><b>pygame.transform.scale2x</big></b><br><ul>
- <i>specialized image doubler</i><br>
- <tt>pygame.transform.scale2x(Surface, DestSurface = None): Surface</tt><br>
-<p>This will return a new image that is double the size of the original. It uses the AdvanceMAME Scale2X algorithm which does a 'jaggie-less' scale of bitmap graphics. </p>
-<p>This really only has an effect on simple images with solid colors. On photographic and antialiased images it will look like a regular unfiltered scale. </p>
-<p>An optional destination surface can be used, rather than have it create a new one. This is quicker if you want to repeatedly scale something. However the destination must be twice the size of the source surface passed in. Also the destination surface must be the same format. </p>
-<!--COMMENTS:pygame.transform.scale2x--> &nbsp;<br>
-<br></ul>
-
-
-<a name="pygame.transform.smoothscale">
-<big><b>pygame.transform.smoothscale</big></b><br><ul>
- <i>scale a surface to an arbitrary size smoothly</i><br>
- <tt>pygame.transform.smoothscale(Surface, (width, height), DestSurface = None): return Surface</tt><br>
-<p>Uses one of two different algorithms for scaling each dimension of the input surface as required. For shrinkage, the output pixels are area averages of the colors they cover. For expansion, a bilinear filter is used. For the amd64 and i686 architectures, optimized <tt>MMX</tt> routines are included and will run much faster than other machine types. The size is a 2 number sequence for (width, height). This function only works for 24-bit or 32-bit surfaces. An exception will be thrown if the input surface bit depth is less than 24. </p>
-<p>New in pygame <tt>1.8</tt> </p>
-<!--COMMENTS:pygame.transform.smoothscale--> &nbsp;<br>
-<br></ul>
-
-
-<a name="pygame.transform.get_smoothscale_backend">
-<big><b>pygame.transform.get_smoothscale_backend</big></b><br><ul>
- <i>return smoothscale filter version in use: 'GENERIC', 'MMX', or 'SSE'</i><br>
- <tt>pygame.transform.get_smoothscale_backend(): return String</tt><br>
-<p>Shows whether or not smoothscale is using <tt>MMX</tt> or <tt>SSE</tt> acceleration. If no acceleration is available then <tt>"GENERIC"</tt> is returned. For a x86 processor the level of acceleration to use is determined at runtime. </p>
-<p>This function is provided for Pygame testing and debugging. </p>
-<!--COMMENTS:pygame.transform.get_smoothscale_backend--> &nbsp;<br>
-<br></ul>
-
-
-<a name="pygame.transform.set_smoothscale_backend">
-<big><b>pygame.transform.set_smoothscale_backend</big></b><br><ul>
- <i>set smoothscale filter version to one of: 'GENERIC', 'MMX', or 'SSE'</i><br>
- <tt>pygame.transform.get_smoothscale_backend(type): return None</tt><br>
-<p>Sets smoothscale acceleration. Takes a string argument. <tt>A</tt> value of <tt>'GENERIC'</tt> turns off acceleration. <tt>'MMX'</tt> uses <tt>MMX</tt> instructions only. <tt>'SSE'</tt> allows <tt>SSE</tt> extensions as well. <tt>A</tt> value error is raised if type is not recognized or not supported by the current processor. </p>
-<p>This function is provided for Pygame testing and debugging. If smoothscale causes an invalid instruction error then it is a Pygame/SDL bug that should be reported. Use this function as a temporary fix only. </p>
-<!--COMMENTS:pygame.transform.set_smoothscale_backend--> &nbsp;<br>
-<br></ul>
-
-
-<a name="pygame.transform.chop">
-<big><b>pygame.transform.chop</big></b><br><ul>
- <i>gets a copy of an image with an interior area removed</i><br>
- <tt>pygame.transform.chop(Surface, rect): return Surface</tt><br>
-<p>Extracts a portion of an image. All vertical and horizontal pixels surrounding the given rectangle area are removed. The corner areas (diagonal to the rect) are then brought together. (The original image is not altered by this <tt>operation.)</tt> </p>
-<p><tt>NOTE:</tt> If you want a "crop" that returns the part of an image within a rect, you can blit with a rect to a new surface or copy a subsurface. </p>
-<!--COMMENTS:pygame.transform.chop--> &nbsp;<br>
-<br></ul>
-
-
-<a name="pygame.transform.laplacian">
-<big><b>pygame.transform.laplacian</big></b><br><ul>
- <i>find edges in a surface</i><br>
- <tt>pygame.transform.laplacian(Surface, DestSurface = None): return Surface</tt><br>
-<p>Finds the edges in a surface using the laplacian algorithm. </p>
-<p>New in pygame <tt>1.8</tt> </p>
-<!--COMMENTS:pygame.transform.laplacian--> &nbsp;<br>
-<br></ul>
-
-
-<a name="pygame.transform.average_surfaces">
-<big><b>pygame.transform.average_surfaces</big></b><br><ul>
- <i>find the average surface from many surfaces.</i><br>
- <tt>pygame.transform.average_surfaces(Surfaces, DestSurface = None, palette_colors = 1): return Surface</tt><br>
-<p>Takes a sequence of surfaces and returns a surface with average colors from each of the surfaces. </p>
-<p>palette_colors - if true we average the colors in palette, otherwise we average the pixel values. This is useful if the surface is actually greyscale colors, and not palette colors. </p>
-<p>Note, this function currently does not handle palette using surfaces correctly. </p>
-<p>New in pygame <tt>1.8</tt> palette_colors argument new in pygame <tt>1.9</tt> </p>
-<!--COMMENTS:pygame.transform.average_surfaces--> &nbsp;<br>
-<br></ul>
-
-
-<a name="pygame.transform.average_color">
-<big><b>pygame.transform.average_color</big></b><br><ul>
- <i>finds the average color of a surface</i><br>
- <tt>pygame.transform.average_color(Surface, Rect = None): return Color</tt><br>
-<p>Finds the average color of a Surface or a region of a surface specified by a Rect, and returns it as a Color. </p>
-<!--COMMENTS:pygame.transform.average_color--> &nbsp;<br>
-<br></ul>
-
-
-<a name="pygame.transform.threshold">
-<big><b>pygame.transform.threshold</big></b><br><ul>
- <i>finds which, and how many pixels in a surface are within a threshold of a color.</i><br>
- <tt>pygame.transform.threshold(DestSurface, Surface, color, threshold = (0,0,0,0), diff_color = (0,0,0,0), change_return = 1, Surface = None, inverse = False): return num_threshold_pixels</tt><br>
-<p>Finds which, and how many pixels in a surface are within a threshold of a color. </p>
-<p>It can set the destination surface where all of the pixels not within the threshold are changed to diff_color. If inverse is optionally set to True, the pixels that are within the threshold are instead changed to diff_color. </p>
-<p>If the optional second surface is given, it is used to threshold against rather than the specified color. That is, it will find each pixel in the first Surface that is within the threshold of the pixel at the same coordinates of the second Surface. </p>
-<p>If change_return is set to 0, it can be used to just count the number of pixels within the threshold if you set </p>
-<p>If change_return is set to 1, the pixels set in DestSurface will be those from the color. </p>
-<p>If change_return is set to 2, the pixels set in DestSurface will be those from the first Surface. </p>
-<p>You can use a threshold of (r,g,b,a) where the r,g,b can have different thresholds. So you could use an r threshold of 40 and a blue threshold of 2 if you like. </p>
-<p>New in pygame <tt>1.8</tt> </p>
-<!--COMMENTS:pygame.transform.threshold--> &nbsp;<br>
-<br></ul>
-<br></ul>
-
-</body></html>
diff --git a/pygame/docs/tut/DisplayModes.html b/pygame/docs/tut/DisplayModes.html
deleted file mode 100755
index f1f1420..0000000
--- a/pygame/docs/tut/DisplayModes.html
+++ /dev/null
@@ -1,174 +0,0 @@
-<!--
-TUTORIAL:Choosing and Configuring Display Modes
---><html><head>
-
-<title>Pygame Tutorials - Setting Display Modes</title>
-</head><body>
-
-<h1 align=center><font size=-1>Pygame Tutorials</font><br>Setting Display Modes</h1>
-<h2 align=center>by Pete Shinners<br><font size=-1>pete@shinners.org</font></h2>
-<h3 align=center>Revision 1.1, May 21, 2002</h3>
-<br><br>
-
-<h2>Introduction</h2>
- Setting the display mode in <i>pygame</i> creates a visible image surface
-on the monitor. This surface can either cover the full screen, or be windowed
-on platforms that support a window manager. The display surface is nothing
-more than a standard <i>pygame</i> surface object. There are special functions
-needed in the <u>pygame.display</u> module to keep the image surface contents
-updated on the monitor.<br>
- <br>
- Setting the display mode in <i>pygame</i> is an easier task than with most
-graphic libraries. The advantage is if your display mode is not available,
-<i>pygame</i> will emulate the display mode that you asked for. <i>Pygame</i>
- will select a display resolution and color depth that best matches the settings
-you have requested, then allow you to access the display with the format
-you have requested. In reality, since the <u>pygame.display</u> module is
-a binding around the SDL library, SDL is really doing all this work.<br>
- <br>
- There are advantages and disadvantages to setting the display mode in this
-manner. The advantage is that if your game requires a specific display mode,
-your game will run on platforms that do not support your requirements. It
-also makes life easier when your getting something started, it is always easy
-to go back later and make the mode selection a little more particular. The
-disadvantage is that what you request is not always what you will get. There
-is also a performance penalty when the display mode must be emulated. This
-tutorial will help you understand the different methods for querying the platforms
-display capabilities, and setting the display mode for your game.<br>
- <br>
- <br>
-
-<h2>Setting Basics</h2>
- The first thing to learn about is how to actually set the current display
-mode. The display mode may be set at anytime after the <u>pygame.display</u>
- module has been initialized. If you have previously set the display mode,
-setting it again will change the current mode. Setting the display mode is
-handled with the function <u><tt>pygame.display.set_mode((width, height), flags, depth)</tt></u>.
-The only required argument in this function is a sequence containing
-the width and height of the new display mode. The depth flag is the requested
-bits per pixel for the surface. If the given depth is 8, <i>pygame</i> will
-create a color-mapped surface. When given a higher bit depth, <i>pygame</i>
- will use a packed color mode. Much more information about depths and color
-modes can be found in the documentation for the display and surface modules.
-The default value for depth is 0. When given an argument of 0, <i>pygame</i>
- will select the best bit depth to use, usually the same as the system's
-current bit depth. The flags argument lets you control extra features for
-the display mode. You can create the display surface in hardware memory with
-the HWSURFACE flag. Again, more information about this is found in the <i>
-pygame</i> reference documents.<br>
- <br>
- <br>
-
-<h2>How to Decide</h2>
- So how do you select a display mode that is going to work best with your
-graphic resources and the platform your game is running on? There are several
-methods for gathering information about the display device. All of these methods
-must be called after the display module has been initialized, but you likely
-want to call them before setting the display mode. First, <u><tt>pygame.display.get_info()</tt></u>
- will return a special object type of VidInfo, which can tell you a lot about
-the graphics driver capabilities. The function <u><tt>pygame.display.list_modes(depth,
-flags)</tt></u> can be used to find the supported graphic modes by the system.
-<u><tt>Pygame.display.mode_ok((width, height), flags, depth)</tt></u> takes the same
-arguments as <u><tt>set_mode()</tt></u>, but returns the closest matching bit depth
-to the one you request. Lastly, <u><tt>pygame.display.get_driver()</tt></u> will return
-the name of the graphics driver selected by <i>pygame</i>.<br>
- <br>
- Just remember the golden rule. <i>Pygame</i> will work with pretty much
-any display mode you request. Some display modes will need to be emulated,
-which will slow your game down, since <i>pygame</i> will need to convert
-every update you make to the "real" display mode. The best bet is to
-always let <i>pygame</i> choose the best bit depth, and convert all
-your graphic resources to that format when they are loaded. You let
-<i>pygame</i> choose it's bit depth by calling set_mode() with no depth argument
-or a depth of 0, or you can call mode_ok() to find a closest matching
-bit depth to what you need.<br>
- <br>
- When your display mode is windowed, you usually must math the same
-bit depth as the desktop. When you are fullscreen, some platforms can switch
-to any bit depth that best suits your needs. You can find the depth of the
-current desktop if you get a VidInfo object before ever setting your display
-mode.<br>
-<br>
- After setting the display mode, you can find out information about it's
-settings by getting a VidInfo object, or by calling any of the Surface.get*
-methods on the display surface.<br>
- <br>
- <br>
-
-<h2>Functions</h2>
- These are the routines you can use to determine the most appropriate display
-mode. You can find more information about these functions in the display module
-documentation. <br>
- <br>
-
-<blockquote><u><tt>pygame.display.mode_ok(size, flags, depth)</tt></u><br>
-
- <blockquote> This function takes the exact same arguments as pygame.display.set_mode().
-It returns the best available bit depth for the mode you have described.
-If this returns zero, then the desired display mode is not available
-without emulation.<br>
- </blockquote>
- <br>
- <u><tt>pygame.display.list_modes(depth, flags)</tt></u><br>
-
- <blockquote> Returns a list of supported display modes with the requested
-depth and flags. An empty list is returned when there are no modes.
-The flags argument defaults to FULLSCREEN. If you specify your own flags
-without FULLSCREEN, you will likely get a return value of -1. This
-means that any display size is fine, since the display will be windowed. Note
-that the listed modes are sorted largest to smallest.<br>
- </blockquote>
- <br>
- <u><tt>pygame.display.get_info()</tt></u><br>
-
- <blockquote> This function returns an object with many members describing
-the display devic. Printing the VidInfo object will quickly show you all the
-members and values for this object. <br>
-
- <blockquote><tt> &gt;&gt;&gt; <b>import pygame.display</b><br>
- &gt;&gt;&gt; <b>pygame.display.init()</b><br>
- &gt;&gt;&gt; <b>info = pygame.display.get_info()</b><br>
- &gt;&gt;&gt; <b>print info</b><br>
- &lt;VideoInfo(hw = 1, wm = 1,video_mem = 27354<br>
- blit_hw = 1, blit_hw_CC = 1, blit_hw_A = 0,<br>
- blit_sw = 1, blit_sw_CC = 1, blit_sw_A = 0,<br>
- bitsize = 32, bytesize = 4,<br>
- masks = (16711680, 65280, 255, 0),<br>
- shifts = (16, 8, 0, 0),<br>
- losses = (0, 0, 0, 8)&gt;</tt><br>
- </blockquote>
- You can test all these flags as simply members of the VidInfo object. The
-different blit flags tell if hardware acceleration is supported when blitting
-from the various types of surfaces to a hardware surface.<br>
- </blockquote>
- </blockquote>
- <br>
- <br>
-
- <h2>Examples</h2>
- Here are some examples of different methods to init the graphics display.
-They should help you get an idea of how to go about setting your display mode.<br>
- <br>
-
- <blockquote><tt> &gt;&gt;&gt; #give me the best depth with a 640
-x 480 windowed display<br>
- &gt;&gt;&gt; <b>pygame.display.set_mode((640, 480))</b><br>
- <br>
- &gt;&gt;&gt; #give me the biggest 16bit display available<br>
- &gt;&gt;&gt; <b>modes = pygame.display.list_modes(16)</b><br>
- &gt;&gt;&gt; <b>if not modes:</b><br>
- ... <b>&nbsp;&nbsp;&nbsp;&nbsp;print '16bit not supported'</b><br>
- ... <b>else:</b><br>
- ... <b>&nbsp;&nbsp;&nbsp;&nbsp;print 'Found Resolution:', modes[0]</b><br>
- ... <b>&nbsp;&nbsp;&nbsp;&nbsp;pygame.display.set_mode(modes[0], FULLSCREEN, 16)</b><br>
- <br>
- &gt;&gt;&gt; #need an 8bit surface, nothing else will do<br>
- &gt;&gt;&gt; <b>if pygame.display.mode_ok((800, 600), 0, 8) != 8:</b><br>
- ... <b>&nbsp;&nbsp;&nbsp;&nbsp;print 'Can only work with an 8bit display, sorry'</b><br>
- ... <b>else:</b><br>
- ... <b>&nbsp;&nbsp;&nbsp;&nbsp;pygame.display.set_mode((800, 600), 0, 8)</b><br>
- <br>
- </tt></blockquote>
-
- </body>
- </html>
diff --git a/pygame/docs/tut/ImportInit.html b/pygame/docs/tut/ImportInit.html
deleted file mode 100755
index 2cbbce2..0000000
--- a/pygame/docs/tut/ImportInit.html
+++ /dev/null
@@ -1,63 +0,0 @@
-<!--
-TUTORIAL:Import and Initialize
---><html><head>
-
-<title>Pygame Tutorials - Import and Initialize</title>
-</head><body>
-
-<h1 align=center><font size=-1>Pygame Tutorials</font><br>Import and Initialize</h1>
-<h2 align=center>by Pete Shinners<br><font size=-1>pete@shinners.org</font></h2>
-<h3 align=center>Revision 1.0, January 28th, 2002</h3>
-<br><br>
-
-
-Getting pygame imported and initialized is a very simple process. It is also
-flexible enough to give you control over what is happening. Pygame is a
-collection of different modules in a single python package. Some of the
-modules are written in C, and some are written in python. Some modules
-are also optional, and might not always be present.
-<br>&nbsp;<br>
-This is just a quick introduction on what is going on when you import pygame.
-For a clearer explanation definitely see the pygame examples.
-
-
-<br>&nbsp;<br>&nbsp;<br>
-<h2>Import</h2>
-First we must import the pygame package. Since pygame version 1.4 this
-has been updated to be much easier. Most games will import all of pygame like this.
-<ul><pre>import pygame
-from pygame.locals import *</pre></ul>
-The first line here is the only necessary one. It imports all the available pygame
-modules into the pygame package. The second line is optional, and puts a limited
-set of constants and functions into the global namespace of your script.
-<br>&nbsp;<br>
-An important thing to keep in mind is that several pygame modules are optional.
-For example, one of these is the font module. When you "import pygame", pygame
-will check to see if the font module is available. If the font module is available
-it will be imported as "pygame.font". If the module is not available, "pygame.font"
-will be set to None. This makes it fairly easy to later on test if the font module is available.
-
-<br>&nbsp;<br>&nbsp;<br>
-<h2>Init</h2>
-Before you can do much with pygame, you will need to initialize it. The most common
-way to do this is just make one call.
-<ul><pre>pygame.init()</pre></ul>
-This will attempt to initialize all the pygame modules for you. Not all pygame modules
-need to be initialized, but this will automatically initialize the ones that do. You can
-also easily initialize each pygame module by hand. For example to only initialize the
-font module you would just call.
-<ul><pre>pygame.font.init()</pre></ul>
-Note that if there is an error when you initialize with "pygame.init()", it will silently fail.
-When hand initializing modules like this, any errors will raise an exception. Any
-modules that must be initialized also have a "get_init()" function, which will return true
-if the module has been initialized.
-<br>&nbsp;<br>
-It is safe to call the init() function for any module more than once.
-
-<br>&nbsp;<br>&nbsp;<br>
-<h2>Quit</h2>
-Modules that are initialized also usually have a quit() function that will clean up.
-There is no need to explicitly call these, as pygame will cleanly quit all the
-initilized modules when python finishes.
-
-</body></html>
diff --git a/pygame/docs/tut/MoveIt.html b/pygame/docs/tut/MoveIt.html
deleted file mode 100755
index 74b8fb7..0000000
--- a/pygame/docs/tut/MoveIt.html
+++ /dev/null
@@ -1,436 +0,0 @@
-<html><head> <!--
-TUTORIAL:Help! How Do I Move An Image?
--->
- <title>Pygame Tutorials - Help! How Do I Move An Image?</title>
-</head>
- <body>
-
-<h1 align="center"><font size="-1">Pygame Tutorials</font><br>
- Help! How Do I Move An Image?</h1>
-
-<h2 align="center">by Pete Shinners<br>
- <font size="-1">pete@shinners.org</font></h2>
-
-<h3 align="center">Revision 1.2, August 20, 2002</h3>
- <br>
- <br>
- Many people new to programming and graphics have a hard time figuring
- out how to make an image move around the screen. Without understanding
-all the concepts, it can be very confusing. You're not the first person
-to be stuck here, I'll do my best to take things step by step. We'll even
-try to end with methods of keeping your animations efficient.<br>
-<br>
-Note that we won't be teaching you to program with python in this article,
-just introduce you to some of the basics with pygame.<br>
-
-<h2>Just Pixels On The Screen</h2>
- Pygame has a display Surface. This is basically an image that is visible
- on the screen, and the image is made up of pixels. The main way you change
- these pixels is by calling the blit() function. This copies the pixels
-from one image onto another.<br>
- <br>
- This is the first thing to understand. When you blit an image onto the
- screen, you are simply changing the color of the pixels on the screen.
-Pixels aren't added or moved, we just change the colors of the pixels aready
-on the screen. These images you blit to the screen are also Surfaces in
-pygame, but they are in no way connected to the display Surface. When they
-are blitted to the screen they are copied into the display, but you still
-have a unique copy of the original.<br>
- <br>
- With this brief description. Perhaps you can already understand what
-is needed to "move" an image. We don't actually move anything at all. We
-simply blit the image in a new position. But before we draw the image in
-the new position, we'll need to "erase" the old one. Otherwise the image
-will be visible in two places on the screen. By rapidly erasing the image
-and redrawing it in a new place, we achieve the "illusion" of movement.<br>
- <br>
- Through the rest of this tutorial we will break this process down into
- simpler steps. Even explaining the best ways to have multiple images moving
- around the screen. You probably already have questions. Like, how do we
-"erase" the image before drawing it in a new position? Perhaps you're still
-totally lost? Well hopefully the rest of this tutorial can straighten things
-out for you.<br>
- <br>
-
-<h2>Let's Go Back A Step</h2>
- Perhaps the concept of pixels and images is still a little foreign to
-you? Well good news, for the next few sections we are going to use code that
-does everything we want, it just doesn't use pixels. We're going to create
-a small python list of 6 numbers, and imagine it represents some fantastic
-graphics we could see on the screen. It might actually be surprising how
-closely this represents exactly what we'll later be doing with real graphics.<br>
- <br>
- So let's begin by creating our screen list and fill it with a beautiful
- landscape of 1s and 2s.<br>
-
-<blockquote><pre>
-<b>&gt;&gt;&gt;</b> screen = [1, 1, 2, 2, 2, 1]
-<b>&gt;&gt;&gt;</b> print screen
-<b>[1, 1, 2, 2, 2, 1]</b>
-</pre></blockquote>
- Now we've created our background. It's not going to be very exciting
-unless we also draw a player on the screen. We'll create a mighty hero
-that looks like the number 8. Let's stick him near the middle of the map
-and see what it looks like.<br>
-
-<blockquote><pre>
-<b>&gt;&gt;&gt;</b> screen[3] = 8
-<b>&gt;&gt;&gt;</b> print screen
-<b>[1, 1, 2, 8, 2, 1]</b>
-</pre></blockquote>
- This might have been as far as you've gotten if you jumped right in doing
- some graphics programming with pygame. You've got some nice looking stuff
- on the screen, but it cannot move anywhere. Perhaps now that our screen
-is just a list of numbers, it's easier to see how to move him?<br>
- <br>
-
-<h2>Making The Hero Move</h2>
- Before we can start moving the character. We need to keep track of some
- sort of position for him. In the last section when we drew him, we just picked
- an arbitrary position. Let's do it a little more officially this time.<br>
-
-<blockquote><pre>
-<b>&gt;&gt;&gt;</b> playerpos = 3
-<b>&gt;&gt;&gt;</b> screen[playerpos] = 8
-<b>&gt;&gt;&gt;</b> print screen
-<b>[1, 1, 2, 8, 2, 1]</b>
-</pre></blockquote>
- Now it is pretty easy to move him to a new position. We simple change
-the value of playerpos, and draw him on the screen again.<br>
-
-<blockquote><pre>
-<b>&gt;&gt;&gt;</b> playerpos = playerpos - 1
-<b>&gt;&gt;&gt;</b> screen[playerpos] = 8
-<b>&gt;&gt;&gt;</b> print screen
-<b>[1, 1, 8, 8, 2, 1]</b>
-</pre></blockquote>
- Whoops. Now we can see two heros. One in the old position, and one
-in his new position. This is exactly the reason we need to "erase" the hero
-in his old position before we draw him in the new position. To erase him,
-we need to change that value in the list back to what it was before the hero
- was there. That means we need to keep track of the values on the screen before
- the hero replaced them. There's several way you could do this, but the easiest
- is usually to keep a separate copy of the screen background. This means
-we need to make some changes to our little game.<br>
- <br>
-
-<h2>Creating A Map</h2>
- What we want to do is create a separate list we will call our background.
- We will create the background so it looks like our original screen did,
-with 1s and 2s. Then we will copy each item from the background to the screen.
- After that we can finally draw our hero back onto the screen.<br>
-
-<blockquote><pre>
-<b>&gt;&gt;&gt;</b> background = [1, 1, 2, 2, 2, 1]
-<b>&gt;&gt;&gt;</b> screen = [0]*6 <i>#a new blank screen</i>
-<b>&gt;&gt;&gt;</b> for i in range(6):
-<b>...</b> screen[i] = background[i]
-<b>&gt;&gt;&gt;</b> print screen
-<b>[1, 1, 2, 2, 2, 1]</b>
-<b>&gt;&gt;&gt;</b> playerpos = 3
-<b>&gt;&gt;&gt;</b> screen[playerpos] = 8
-<b>&gt;&gt;&gt;</b> print screen
-<b>[1, 1, 2, 8, 2, 1]</b>
-</pre></blockquote>
- It may seem like a lot of extra work. We're no farther off than we were
- before the last time we tried to make him move. But this time we have the
- extra information we need to move him properly.<br>
- <br>
-
-<h2>Making The Hero Move (Take 2)</h2>
- This time it will be easy to move the hero around. First we will erase
- the hero from his old position. We do this by copying the correct value
-from the background onto the screen. Then we will draw the character in his
-new position on the screen<br>
-
-<blockquote><pre>
-<b>&gt;&gt;&gt;</b> print screen
-<b>[1, 1, 2, 8, 2, 1]</b>
-<b>&gt;&gt;&gt;</b> screen[playerpos] = background[playerpos]
-<b>&gt;&gt;&gt;</b> playerpos = playerpos - 1
-<b>&gt;&gt;&gt;</b> screen[playerpos] = 8
-<b>&gt;&gt;&gt;</b> print screen
-<b>[1, 1, 8, 2, 2, 1]</b>
-</pre></blockquote>
- There it is. The hero has moved one space to the left. We can use this
- same code to move him to the left again.<br>
-
-<blockquote><pre>
-<b>&gt;&gt;&gt;</b> screen[playerpos] = background[playerpos]
-<b>&gt;&gt;&gt;</b> playerpos = playerpos - 1
-<b>&gt;&gt;&gt;</b> screen[playerpos] = 8
-<b>&gt;&gt;&gt;</b> print screen
-<b>[1, 8, 2, 2, 2, 1]</b>
-</pre></blockquote>
- Excellent! This isn't exactly what you'd call smooth animation. But with
- a couple small changes, we'll make this work directly with graphics on
-the screen.<br>
- <br>
-
-
-<h2>Definition: "blit"</h2>
- In the next sections we will transform our program from using lists to
- using real graphics on the screen. When displaying the graphics we will
- use the term <u>blit</u> frequently. If you are new to doing graphics
- work, you are probably unframiliar with this common term.<br>
- <br>
-<b>BLIT:</b> Basically, blit means to copy graphics from one image
-to another. A more formal definition is to copy an array of data
-to a bitmapped array destination. You can think of blit as just
-<i>"assigning"</i> pixels. Much like setting values in our screen-list
-above, blitting assigns the color of pixels in our image.<br>
- <br>
-Other graphics libraries will use the word <i>bitblt</i>, or just <i>blt</i>,
-but they are talking about the same thing. It is basically copying
-memory from one place to another. Actually, it is a bit more advanced than
-straight copying of memory, since it needs to handle things like pixel
-formats, clipping, and scanline pitches. Advanced blitters can also
-handle things like transparancy and other special effects.<br>
- <br>
-
-
-<h2>Going From The List To The Screen</h2>
- To take the code we see in the above to examples and make them work with
- pygame is very straightforward. We'll pretend we have loaded some pretty
-graphics and named them "terrain1", "terrain2", and "hero". Where before
-we assigned numbers to a list, we now blit graphics to the screen. Another
-big change, instead of using positions as a single index (0 through 5), we
-now need a two dimensional coordinate. We'll pretend each of the graphics
-in our game is 10 pixels wide.<br>
-
-<blockquote><pre>
-<b>&gt;&gt;&gt;</b> background = [terrain1, terrain1, terrain2, terrain2, terrain2, terrain1]
-<b>&gt;&gt;&gt;</b> screen = create_graphics_screen()
-<b>&gt;&gt;&gt;</b> for i in range(6):
-<b>...</b> screen.blit(background[i], (i*10, 0))
-<b>&gt;&gt;&gt;</b> playerpos = 3
-<b>&gt;&gt;&gt;</b> screen.blit(playerimage, (playerpos*10, 0))
-</pre></blockquote>
- Hmm, that code should seem very familiar, and hopefully more importantly;
- the code above should make a little sense. Hopefully my illustration of setting
- simple values in a list shows the similarity of setting pixels on the screen
- (with blit). The only part that's really extra work is converting the player position
-into coordinates on the screen. For now we just use a crude "(playerpos*10,
-0)", but we can certainly do better than that. Now let's move the player
-image over a space. This code should have no surprises.<br>
-
-<blockquote><pre>
-<b>&gt;&gt;&gt;</b> screen.blit(background[playerpos], (playerpos*10, 0))
-<b>&gt;&gt;&gt;</b> playerpos = playerpos - 1
-<b>&gt;&gt;&gt;</b> screen.blit(playerimage, (playerpos*10, 0))
-</pre></blockquote>
- There you have it. With this code we've shown how to display a simple background
- with a hero's image on it. Then we've properly moved that hero one space
-to the left. So where do we go from here? Well for one the code is still
-a little awkward. First thing we'll want to do is find a cleaner way to represent
-the background and player position. Then perhaps a bit of smoother, real
-animation.<br>
- <br>
-
-<h2>Screen Coordinates</h2>
- To position an object on the screen, we need to tell the blit() function
-where to put the image. In pygame we always pass positions as an (X,Y) coordinate.
-This represents the number of pixels to the right, and the number of pixels
-down to place the image. The top-left corner of a Surface is coordinate (0,
-0). Moving to the right a little would be (10, 0), and then moving down just
-as much would be (10, 10). When blitting, the position argument represents
-where the topleft corner of the source should be placed on the destination.<br>
- <br>
- Pygame comes with a convenient container for these coordinates, it is a
-Rect. The Rect basically represents a rectangular area in these coordinates.
-It has topleft corner and a size. The Rect comes with a lot of convenient
-methods which help you move and position them. In our next examples we will
-represent the positions of our objects with the Rects.<br>
- <br>
- Also know that many functions in pygame expect Rect arguments. All of these
-functions can also accept a simple tuple of 4 elements (left, top, width,
-height). You aren't always required to use these Rect objects, but you will
-mainly want to. Also, the blit() function can accept a Rect as it's position
-argument, it simply uses the topleft corner of the Rect as the real position.<br>
- <br>
- <br>
-
-<h2>Changing The Background</h2>
- In all our previous sections, we've been storing the background as a list
-of different types of ground. That is a good way to create a tile-based game,
-but we want smooth scrolling. To make that a little easier, we're going to
-change the background into a single image that covers the whole screen. This
-way, when we want to "erase" our objects (before redrawing them) we only need
-to blit the section of the erased background onto the screen.<br>
- <br>
- By passing an optional third Rect argument to blit, we tell blit to only
-use that subsection of the source image. You'll see that in use below as we
-erase the player image.<br>
- <br>
- Also note, now when we finish drawing to the screen, we call pygame.display.update()
-which will show everything we've drawn onto the screen.<br>
- <br>
-
-<h2>Smooth Movement</h2>
- To make something appear to move smoothly, we only want to move it a couple
-pixels at a time. Here is the code to make an object move smoothly across
-the screen. Based on what we already now know, this should look pretty simple.<br>
- <br>
-
-<blockquote><pre>
-<b>&gt;&gt;&gt;</b> screen = create_screen()
-<b>&gt;&gt;&gt;</b> player = load_player_image()
-<b>&gt;&gt;&gt;</b> background = load_background_image()
-<b>&gt;&gt;&gt;</b> screen.blit(background, (0, 0)) <i>#draw the background</i>
-<b>&gt;&gt;&gt;</b> position = player.get_rect()
-<b>&gt;&gt;&gt;</b> screen.blit(player, position) <i>#draw the player</i>
-<b>&gt;&gt;&gt;</b> pygame.display.update() <i>#and show it all</i>
-<b>&gt;&gt;&gt;</b> for x in range(100): <i>#animate 100 frames</i>
-<b>...</b> screen.blit(background, position, position) <i>#erase</i>
-<b>...</b> position = position.move(2, 0) <i>#move player</i>
-<b>...</b> screen.blit(player, position) <i>#draw new player</i>
-<b>...</b> pygame.display.update() <i>#and show it all</i>
-<b>...</b> pygame.time.delay(100) <i>#stop the program for 1/10 second</i>
-</pre></blockquote>
- There you have it. This is all the code that is needed to smoothly animate
-an object across the screen. We can even use a pretty background character.
-Another benefit of doing the background this way, the image for the player
-can have transparancy or cutout sections and it will still draw correctly
-over the background (a free bonus).<br>
- <br>
- We also throw in a call to pygame.time.delay() at the end of our loop above.
-This slows down our program a little, otherwise it might run so fast you might
-not see it.<br>
- <br>
-
-<h2>So, What Next?</h2>
- Well there we have it. Hopefully this article has done everything it promised
-to do. But, at this point the code really isn't ready for the next bestselling
-game. How do we easily have multiple moving objects? What exactly are those
-mysterious functions like load_player_image()? We also need a way to get simple
-user input, and loop for more than 100 frames. We'll take the example we
-have here, and turn it into an object oriented creation that would make momma
-proud.<br>
- <br>
-
-<h2>First, The Mystery Functions</h2>
- Full information on these types of functions can be found in other tutorials
-and reference. The pygame.image module has a load() function which will do
-what we want. The lines to load the images should become this.<br>
-
-<blockquote><pre>
-<b>&gt;&gt;&gt;</b> player = pygame.image.load('player.bmp').convert()
-<b>&gt;&gt;&gt;</b> background = pygame.image.load('liquid.bmp').convert()
-</pre></blockquote>
-We can see that's pretty simple, the load function just takes a filename
-and returns a new Surface with the loaded image. After loading we make a call
-to the Surface method, convert(). Convert returns us a new Surface of the
-image, but now converted to the same pixel format as our display. Since the
-images will be the same format at the screen, they will blit very quickly.
-If we did not convert, the blit() function is slower, since it has to convert
-from one type of pixel to another as it goes.<br>
- <br>
- You may also have noticed that both the load() and convert() return new
-Surfaces. This means we're really creating two Surfaces on each of these
-lines. In other programming languages, this results in a memory leak (not
-a good thing). Fortunately Python is smart enough to handle this, and pygame
-will properly clean up the Surface we end up not using.<br>
- <br>
- The other mystery function we saw in the above example was create_screen().
-In pygame it is simple to create a new window for graphics. The code to create
-a 640x480 surface is below. By passing no other arguments, pygame will just
-pick the best colordepth and pixel format for us.<br>
- <br>
-
-<blockquote><pre>
-<b>&gt;&gt;&gt;</b> screen = pygame.display.set_mode((640, 480))
-</pre></blockquote>
-<br>
-<h2>Handling Some Input</h2>
-We desparately need to change the main loop to look for any user input, (like
-when the user closes the window). We need to add "event handling" to our
-program. All graphical programs use this Event Based design. The program
-gets events like "keyboard pressed" or "mouse moved" from the computer. Then
-the program responds to the different events. Here's what the code should
-look like. Instead of looping for 100 frames, we'll keep looping until the
-user asks us to stop.<br>
-<blockquote><pre>
-<b>&gt;&gt;&gt;</b> while 1:
-<b>...</b> for event in pygame.event.get():
-<b>...</b> if event.type in (QUIT, KEYDOWN):
-<b>...</b> sys.exit()
-<b>...</b> move_and_draw_all_game_objects()
-</pre></blockquote>
-What this code simply does is, first loop forever, then check if there are
-any events from the user. We exit the program if the user presses the keyboard
-or the close button on the window. After we've checked all the events we
-move and draw our game objects. (We'll also erase them before they move,
-too)<br>
-
-<h2>Moving Multiple Images</h2>
- Here's the part where we're really going to change things around. Let's
-say we want 10 different images moving around on the screen. A good way to
-handle this is to use python's classes. We'll create a class that represents
-our game object. This object will have a function to move itself, and then
-we can create as many as we like. The functions to draw and move the object
-need to work in a way where they only move one frame (or one step) at a time.
-Here's the python code to create our class.<br>
-<blockquote><pre>
-<b>&gt;&gt;&gt;</b> class GameObject:
-<b>...</b> def __init__(self, image, height, speed):
-<b>...</b> self.speed = speed
-<b>...</b> self.image = image
-<b>...</b> self.pos = image.get_rect().move(0, height)
-<b>...</b> def move(self):
-<b>...</b> self.pos = self.pos.move(0, self.speed)
-<b>...</b> if self.pos.right &gt; 600:
-<b>...</b> self.pos.left = 0
-</pre></blockquote>
-So we have two functions in our class. The init function constructs our object.
-It positions the object and sets its speed. The move method moves the object
-one step. If it's gone too far, it moves the object back to the left.<br>
-<br>
-<h2>Putting It All Together</h2>
-Now with our new object class, we can put together the entire game. Here
-is what the main function for our program will look like.<br>
-<blockquote><pre>
-<b>&gt;&gt;&gt;</b> screen = pygame.display.set_mode((640, 480))
-<b>&gt;&gt;&gt;</b> player = pygame.image.load('player.bmp').convert()
-<b>&gt;&gt;&gt;</b> background = pygame.image.load('background.bmp').convert()
-<b>&gt;&gt;&gt;</b> screen.blit(background, (0, 0))
-<b>&gt;&gt;&gt;</b> objects = []
-<b>&gt;&gt;&gt;</b> for x in range(10): <i>#create 10 objects</i>
-<b>...</b> o = GameObject(player, x*40, x)
-<b>...</b> objects.append(o)
-<b>&gt;&gt;&gt;</b> while 1:
-<b>...</b> for event in pygame.event.get():
-<b>...</b> if event.type in (QUIT, KEYDOWN):
-<b>...</b> sys.exit()
-<b>...</b> for o in objects:
-<b>...</b> screen.blit(background, o.pos, o.pos)
-<b>...</b> for o in objects:
-<b>...</b> o.move()
-<b>...</b> screen.draw(o.image, o.pos)
-<b>...</b> pygame.display.update()
-<b>...</b> pygame.time.delay(100)
-</pre></blockquote>
-And there it is. This is the code we need to animate 10 objects on the screen.
-The only point that might need explaining is the two loops we use to clear
-all the objects and draw all the objects. In order to do things properly,
-we need to erase all the objects before drawing any of them. In our sample
-here it may not matter, but when objects are overlapping, using two loops
-like this becomes important.<br>
-<br>
-<h2>Your On Your Own From Here</h2>
-<p>So what would be next on your road to learning? Well first playing around
-with this example a bit. The full running version of this example is available
-in the pygame examples directory. It is the example named "moveit.py". Take
-a look at the code and play with it, run it, learn it.</p>
-<p>Things you may want to work on is maybe having more than one type of object.
-Finding a way to cleanly "delete" objects when you don't want to show them
-anymore. Also updating the display.update() call to pass a list of the areas
-onscreen that have changed.</p>
-<p>There are also other tutorials and examples in pygame that cover these
-issues. So when you're ready to keep learning, keep on reading. :-)</p>
-<p>Lastly, you can feel free to come to the pygame mailing list or chatroom
-with any questions on this stuff. There's always folks on hand who can help
-you out with this sort of business.</p>
-<p>Lastly, have fun, that's what games are for!<br>
-</p>
-</body>
-</html>
diff --git a/pygame/docs/tut/SpriteIntro.html b/pygame/docs/tut/SpriteIntro.html
deleted file mode 100755
index c5e7abd..0000000
--- a/pygame/docs/tut/SpriteIntro.html
+++ /dev/null
@@ -1,375 +0,0 @@
-<html><head><!--
-TUTORIAL:Sprite Module Introduction
--->
- <title>Pygame Tutorials - Sprite Module Intoduction</title>
-</head>
-<body>
-
-<h1 align="center"><font size="-1">Pygame Tutorials</font><br>
- Sprite Module Introduction</h1>
-
-<h2 align="center">by Pete Shinners<br>
- <font size="-1">pete@shinners.org</font></h2>
-
-<h3 align="center">Revision 1.1, April 12th, 2002</h3>
- <br>
- <br>
- Pygame version 1.3 comes with a new module, pygame.sprite. This module
-is written in python and includes some higher level classes to manage your
-game objects. By using this module to its full potential, you can easily
-manage and draw your game objects. The sprite classes are very optimized,
-so it's likely your game will run faster with the sprite module than without.<br>
- <br>
- The sprite module is also meant to be very generic. It turns out you can
-use it with nearly any type of gameplay. All this flexibility comes with a
-slight penalty, it needs a little understanding to properly use it. The <a href="../ref/sprite.html">
-reference documentation</a> for the sprite module can keep you running, but
-you'll probably need a bit more explanation of how to use pygame.sprite in
-your own game.<br>
- <br>
- Several of the pygame examples (like "chimp" and "aliens") have been updated
-to use the sprite module. You may want to look into those first to see what
-this sprite module is all about. The chimp module even has it's own line-by-line
-tutorial, which may help get more an understanding of programming with python
-and pygame.<br>
- <br>
- Note that this introduction will assume you have a bit of experience programming
-with python, and are somewhat framiliar with the different parts of creating
-a simple game. In this tutorial the word "reference" is occasianally used.
-This represents a python variable. Variables in python are references, so
-you can have several variables all pointing to the same object.<br>
- <br>
-
-<h2>History Lesson</h2>
- The term "sprite" is a holdover from older computer and game machines.
-These older boxes were unable to draw and erase normal graphics fast enough
-for them to work as games. These machines had special hardware to handle
-game like objects that needed to animate very quickly. These objects were
-called 'sprites' and had special limitations, but could be drawn and updated
-very fast. They usually existed in special overlay buffers in the video.
-These days computers have become generally fast enough to handle sprite like
-objects without dedicated hardware. The term sprite is still used to represent
-just about anything in a 2D game that is animated.<br>
- <br>
- <br>
-
-<h2>The Classes</h2>
- The sprite module comes with two main classes. The first is Sprite, which
-should be used as a base class for all your game objects. This class doesn't
-really do anything on its own, it just includes several functions to help
-manage the game object. The other type of class is Group. The Group class
-is a container for different Sprite objects. There are actually several different
-types of group classes. Some of the Groups can draw all the elements they
-contain, for example.<br>
- <br>
- This is all there really is to it. We'll start with a description of what
-each type of class does, and then discuss the proper ways to use these two
-classes.<br>
- <br>
-
-<h2>The Sprite Class</h2>
- As mentioned before, the Sprite class is designed to be a base class for
-all your game objects. You cannot really use it on its own, as it only has
-several methods to help it work with the different Group classes. The sprite
-keeps track of which groups it belongs to. The class constructor (__init__
-method) takes an argument of a Group (or list of Groups) the Sprite instance
-should belong to. You can also change the Group membership for the Sprite
-with the add() and remove() methods. There is also a groups() method, which
-returns a list of the current groups containing the sprite.<br>
- <br>
- When using the your Sprite classes it's best to think of them as "valid"
-or "alive" when they are belonging to one or more Groups. When you remove
-the instance from all groups pygame will clean up the object. (Unless you
-have your own references to the instance somewhere else.) The kill() method
-removes the sprite from all groups it belongs to. This will cleanly delete
-the sprite object. If you've put some little games together, you'll know sometimes
-cleanly deleting a game object can be tricky. The sprite also comes with
-an alive() method, which returns true if it is still a member of any groups.<br>
- <br>
- <br>
-
-<h2>The Group Class</h2>
- The Group class is just a simple container. Similar to the sprite, it has
-an add() and remove() method which can change which sprites belong to the
-group. You also can pass a sprite or list of sprites to the contructor (__init__
-method) to create a Group instance that contains some initial sprites.<br>
- <br>
- The Group has a few other methods like empty() to remove all sprites from
-the group and copy() which will return a copy of the group with all the same
-members. Also the has() method will quickly check if the Group contains a
-sprite or list of sprites.<br>
- <br>
- The other function you will use frequently is the sprites() method. This
-returns an object that can be looped on to access every sprite the group contains.
-Currently this is just a list of the sprites, but in later version of python
-this will likely use iterators for better performance.<br>
- <br>
- As a shortcut, the Group also has an update() method, which will call an
-update() method on every sprite in the group. Passing the same arguments to
-each one. Usually in a game you need some function that updates the state
-of a game object. It's very easy to call your own methods using the Group.sprites()
-method, but this is a shortcut that's used enough to be included. Also note
-that the base Sprite class has a "dummy" update() method that takes any sort
-of arguments and does nothing.<br>
- <br>
- Lastly, the Group has a couple other methods that allow you to use it with
-the builtlin len() method, getting the number of sprites it contains. and
-the "truth" operator, which allows you to do "if mygroup:" to check if the
-group has any sprites.<br>
- <br>
-
-<h2>Mixing Them Together</h2>
- At this point the two classes seem pretty basic. Not doing a lot more than
-you can do with a simple list and your own class of game objects. But there
-are some big advantages to using the Sprite and Group together. A sprite can
-belong to as many groups as you want. Remember as soon as it belongs to no
-groups, it will usually be cleared up (unless you have other "non-group" references
-to that object)<br>
- <br>
- The first big thing is a fast simple way to categorize sprites. For example,
-say we had a pacman-like game. We could make separate groups for the different
-types of objects in the game. Ghosts, Pac, and Pellets. When pac eats a power
-pellet, we can change the state for all ghost objects by effecting everything
-in the Ghost group. This is quicker and simpler than looping through a list
-of all the game objects and checking which ones are ghosts.<br>
- <br>
- Adding and removing groups and sprites from each other is a very fast operation,
-quicker than using lists to store everything. Therefore you can very
-efficiently change group memberships. Groups can be used to work
-like simple attributes for each game object. Instead of tracking some attribute
-like "close_to_player" for a bunch of enemy objects, you could add them to
-a separate group. Then when you need to access all the enemies that are near
-the player, you already have a list of them, instead of going through a list
-of all the enemies, checking for the "close_to_player" flag. Later on your
-game could add multiple players, and instead of adding more "close_to_player2",
-"close_to_player3" attributes, you can easily add them to different groups
-for each player.<br>
- <br>
- Another important benefit of using the Sprites and Groups, the groups cleanly
-handle the deleting (or killing) of game objects. In a game where many objects
-are referencing other objects, sometimes deleting an object can be the hardest
-part, since it can't go away until it is not referenced by anyone. Say we
-have an object that is "chasing" another object. The chaser can keep a simple
-Group that references the object (or objects) it is chasing. If the object
-being chased happens to be destroyed, we don't need to worry about notifying
-the chaser to stop chasing. The chaser can see for itself that its group is
-now empty, and perhaps find a new target.<br>
- <br>
- Again, the thing to remember is that adding and removing sprites from groups
-is a very cheap/fast operation. You may be best off by adding many groups
-to contain and organize your game objects. Some could even be empty for large
-portions of the game, there isn't any penalties for managing your game like
-this.<br>
- <br>
-
-<h2>The Many Group Types</h2>
- The above examples and reasons to use Sprites and Groups are only a tip
-of the iceberg. Another advantage is that the sprite module comes with
-several different types of Groups. These groups all work just like a regular
-old Group, but they also have added functionality (or slightly different functionality).
-Here's a list of the Group classes included with the sprite module.<br>
-
-<blockquote><b>Group</b><br>
- This is the standard "no frills" group mainly explained above. Most of the
-other Groups are derived from this one, but not all.<br>
- <br>
- <b>GroupSingle<br>
- </b>This works exactly like the regular Group class, but it only contains
-the most recently added sprite. Therefore when you add a sprite to this group,
-it "forgets" about any previous sprites it had. Therefore it always contains
-only one or zero sprites.<br>
- <br>
- <b>RenderPlain<br>
- </b>This is a standard group derived from Group. It has a draw() method
-that draws all the sprites it contains to the screen (or any Surface). For
-this to work, it requires all sprites it contains to have a "image" and "rect"
-attributes. It uses these to know what to blit, and where to blit it. <br>
- <br>
- <b>RenderClear<br>
- </b>This is derived from the RenderPlain group, and adds a method named
-clear(). This will erase the previous position of all drawn sprites. It uses
-a background image to fill in the areas where the sprite were. It is smart
-enough to handle deleted sprites and properly clear them from the screen when
-the clear() method is called.<br>
- <br>
- <b>RenderUpdates</b><br>
- This is the cadillac of rendering Groups. It is inherited from RenderClear,
-but changes the draw() method to also return a list of pygame Rects, which represent
-all the areas onscreen that have been changed.<br>
- <br>
- </blockquote>
- That is the list of different groups available We'll discuss more about
-these rendering groups in the next section. There's nothing stopping you
-from creating your own Group classes as well. They are just python code,
-so you can inherit from one of these and add/change whatever you want. In
-the future I hope we can add a couple more Groups to this list. A GroupMulti
-which is like the GroupSingle, but can hold up to a given number of sprites
-(in some sort of circular buffer?). Also a super-render group that can clear
-the position of the old sprites without needing a background image to do
-it (by grabbing a copy of the screen before blitting). Who knows really,
-but in the future we can add more useful classes to this list.<br>
- <br>
-
- <h2>The Rendering Groups</h2>
- From above we can see there are three different rendering groups. We could
-probably just get away with the RenderUpdates one, but it adds overhead not
-really needed for something like a scrolling game. So we have a couple tools
-here, pick the right one for the right job.<br>
- <br>
- For a scrolling type game, where the background completely changes every
-frame. We obviously don't need to worry about python's update rectangles in
-the call to display.update(). You should definitely go with the RenderPlain
-group here to manage your rendering.<br>
- <br>
- For games where the background is more stationary, you definitely don't
-want pygame updating the entire screen (since it doesn't need to). This type
-of game usually involves erasing the old position of each object, then drawing
-it in a new place for each frame. This way we are only changing what is necessary.
-Most of the time you will just want to use the RenderUpdates class here. Since
-you will also want to pass this list of changes to the display.update() function.<br>
- <br>
- The RenderUpdates class also does a good job an minimizing
-overlapping areas in the list of updated rectangles. If the previous position
-and current position of an object overlap, it will merge them into a single
-rectangle. Combine this with the fact that is properly handles deleted objects
-and this is one powerful Group class. If you've written a game that manages
-the changed rectangles for the objects in a game, you know this the cause
-for a lot of messy code in your game. Especially once you start to throw in
-objects that can be deleted at anytime. All this work is reduced down to
-a clear() and draw() method with this monster class. Plus with the overlap
-checking, it is likely faster than if you did it yourself.<br>
- <br>
- Also note that there's nothing stopping you from mixing and matching these
-render groups in your game. You should definitely use multiple rendering groups
-when you want to do layering with your sprites. Also if the screen is split into
-multiple sections, perhaps each section of the screen should use an appropriate
-render group?<br>
- <br>
-
-
- <h2>Collision Detection</h2>
- The sprite module also comes with two very generic collision detection functions.
-For more complex games, these really won't work for you, but you can easily
-grab the sourcecode for them, and modify them as needed.<br>
- Here's a summary of what they are, and what they do.<br>
-
- <blockquote><b>spritecollide(sprite, group, dokill) -&gt; list<br>
- </b>This checks for collisions between a single sprite and the sprites
-in a group. It requires a "rect" attribute for all the sprites used. It returns
-a list of all the sprites that overlap with the first sprite. The "dokill"
-argument is a boolean argument. If it is true, the function will call the
-kill() method on all the sprites. This means the last reference to each sprite
-is probably in the returned list. Once the list goes away so do the sprites.
-A quick example of using this in a loop,<br>
-
- <pre> &gt;&gt;&gt; for bomb in sprite.spritecollide(player, bombs, 1):<br> ... boom_sound.play()<br> ... Explosion(bomb, 0)<br></pre>
- This finds all the sprites in the "bomb" group that collide with the player.
-Because of the "dokill" argument it deletes all the crashed bombs. For each
-bomb that did collide, it plays a "boom" sound effect, and creates a new Explosion
-where the bomb was. (Note, the Explosion class here knows to add each instance
-to the appropriate class, so we don't need to store it in a variable, that
-last line might feel a little "funny" to you python programmers.<br>
- <br>
- <b>groupcollide(group1, group2, dokill1, dokill2) -&gt; dictionary</b><br>
- This is similar to the spritecollide function, but a little more complex.
-It checks for collisions for all the sprites in one group, to the sprites
-in another. There is a dokill argument for the sprites in each list. When
-dokill1 is true, the colliding sprites in group1 will be kill()ed. When dokill2
-is true, we get the same results for group2. The dictionary it returns works
-like this; each key in the dictionary is a sprite from group1 that had a collision.
-The value for that key is a list of the sprites that it collided with. Perhaps
-another quick code sample explains it best<br>
-
- <pre> &gt;&gt;&gt; for alien in sprite.groupcollide(aliens, shots, 1, 1).keys()
- ... boom_sound.play()
- ... Explosion(alien, 0)
- ... kills += 1
-</pre>
- This code checks for the collisions between player bullets and all the aliens
-they might intersect. In this case we only loop over the dictionary keys,
-but we could loop over the values() or items() if we wanted to do something
-to the specific shots that collided with aliens. If we did loop over the values()
-we would be looping through lists that contain sprites. The same sprite may
-even appear more than once in these different loops, since the same "shot"
-could have collided against multiple "aliens".<br>
- <br>
- <br>
- </blockquote>
- Those are the basic collision functions that come with pygame. It should
-be easy to roll your own that perhaps use something differen than the "rect"
-attribute. Or maybe try to fine-tweak your code a little more by directly
-effecting the collision object, instead of building a list of the collision?
-The code in the sprite collision functions is very optimized, but you could
-speed it up slightly by taking out some functionality you don't need.<br>
- <br>
-
- <h2>Common Problems</h2>
- <p>Currently there is one main problem that catches new users. When you
-derive your new sprite class with the Sprite base, you <b>must</b> call the
-Sprite.__init__() method from your own class __init__() method. If you forget
-to call the Sprite.__init__() method, you get a cryptic error, like this;
-<tt>AttributeError: 'mysprite' instance has no attribute '_Sprite__g'</tt>.
-</p>
- <br>
-
- <h2>Extending Your Own Classes <i>(Advanced)</i></h2>
-
- <p>Because of speed concerns, the current Group classes try to
-only do exactly what they need, and not handle a lot of general situations. If you
-decide you need extra features, you may want to create your own Group class.</p>
-
- <p>The Sprite and Group classes were designed to be extended, so feel free
-to create your own Group classes to do specialized things. The best place to start
-is probably the actual python source code for the sprite module. Looking at the
-current Sprite groups should be enough example on how to create your own.</p>
-
- <p>For example, here is the source code for a rendering Group that calls a
-render() method for each sprite, instead of just blitting an "image" variable from it.
-Since we want it to also handle updated areas, we will start with a copy of the original
-RenderUpdates group, here is the code:
-<pre>
-class RenderUpdatesDraw(RenderClear):
- """call sprite.draw(screen) to render sprites"""
- def draw(self, surface):
- dirty = self.lostsprites
- self.lostsprites = []
- for s, r in self.spritedict.items():
- newrect = s.draw(screen) #Here's the big change
- if r is 0:
- dirty.append(newrect)
- else:
- dirty.append(newrect.union(r))
- self.spritedict[s] = newrect
- return dirty
-</pre></p>
-
- <p>Following is more information on how you could create your own Sprite
-and Group objects from scratch. </p>
-
- <p>The Sprite objects only "require" two methods. "add_internal()" and "remove_internal()".
-These are called by the Group classes when they are removing a sprite from
-themselves. The add_internal() and remove_internal() have a single argument
-which is a group. Your Sprite will need some way to also keep
-track of the Groups it belongs to. You will likely want to try to match the
-other methods and arguments to the real Sprite class, but if you're not going
-to use those methods, you sure don't need them.</p>
-
- <p>It is almost the same requirements for creating your own Group. In
-fact, if you look at the source you'll see the GroupSingle isn't derived from
-the Group class, it just implements the same methods so you can't really tell
-the difference. Again you need an "add_internal()" and "remove_internal()" method
-that the sprites call when they want to belong or remove themselves from
-the group. The add_internal() and remove_internal() have a single argument
-which is a sprite. The only other requirement for the Group classes is they
-have a dummy attribute named "_spritegroup". It doesn't matter what the value
-is, as long as the attribute is present. The Sprite classes can look for this
-attribute to determine the difference between a "group" and any ordinary python
-container. (This is important, because several sprite methods can take an
-argument of a single group, or a sequence of groups. Since they both look
-similar, this is the most flexible way to "see" the difference.)</p>
-
- <p>You should through the code for the sprite module. While
-the code is a bit "tuned", it's got enough comments to help you follow along.
-There's even a todo section in the source if you feel like contributing.</p>
-
-</body></html>
diff --git a/pygame/docs/tut/chimp/ChimpLineByLine.html b/pygame/docs/tut/chimp/ChimpLineByLine.html
deleted file mode 100755
index 3d7d6ff..0000000
--- a/pygame/docs/tut/chimp/ChimpLineByLine.html
+++ /dev/null
@@ -1,644 +0,0 @@
-<html><head><!--
-TUTORIAL:Line by Line Descriptions of the Chimp Example
--->
- <title>Pygame Tutorials - Line By Line Chimp Example</title>
-</head>
- <body>
-
-<h1 align="center"><font size="-1">Pygame Tutorials</font><br>
- Line By Line Chimp</h1>
-
-<h2 align="center">by Pete Shinners<br>
- <font size="-1">pete@shinners.org</font></h2>
-
-<h3 align="center">Revision 2.2, June 17, 2004</h3>
- <br>
- <br>
-
-<h2>Introduction</h2>
- In the <i>pygame</i> examples there is a simple example named, "chimp".
- This example simulates a punchable monkey moving around a small screen with
- promises of riches and reward. The example itself is very simple, and a
-bit thin on errorchecking code. This example program demonstrates many of
-pygame's abilities, like creating a graphics window, loading images and sound
-files, rendering TTF text, and basic event and mouse handling. <br>
- &nbsp;<br>
- The program and images can be found inside the standard source distribution
- of pygame. For version 1.3 of pygame, this example was completely rewritten
- to add a couple more features and correct error checking. This about doubled
- the size of the original example, but now gives us much more to look at,
- as well as code the I can recommend reusing for your own projects.<br>
- <br>
- This tutorial will go through the code block by block. Explaining how
- the code works. There will also be mention of how the code could be improved
- and what errorchecking could help out. <br>
- &nbsp;<br>
- This is an exellent tutorial for people getting their first look at
-the <i> pygame</i> code. Once <i>pygame</i> is fully installed, you can find
-and run the chimp demo for yourself in the examples directory.
-<p align="center">
-<table border="1" bgcolor="#ddcc88" cellpadding="8">
- <tbody>
- <tr>
- <td align="center"> <font size="-1">(no, this is not a banner
-ad, its the screenshot)</font><br>
- <img src="chimpshot.gif" alt="Chimp Screenshot" width="468" height="60">
- <br>
- <a href="chimp.py.html">Full Source</a> </td>
- </tr>
-
- </tbody>
-</table>
- </p>
- <br>
-
-<h2>Import Modules</h2>
- This is the code that imports all the needed modules into your program.
- It also checks for the availability of some of the optional pygame modules.<br>
- <br>
-
-<table border="1" bgcolor="#ddcc88">
- <tbody>
- <tr>
- <td>
-<pre>import os, sys
-import pygame
-from pygame.locals import *
-
-if not pygame.font: print 'Warning, fonts disabled'
-if not pygame.mixer: print 'Warning, sound disabled'
-</pre>
- </td>
- </tr>
-
- </tbody>
-</table>
- <br>
- First, we import the standard "os" and "sys" python modules. These allow
- us to do things like create platform independent file paths.<br>
- <br>
- In the next line, we import the pygame package. When pygame is imported
-it imports all the modules belonging to pygame. Some pygame modules are optional,
-and if they aren't found, their value is set to "None".<br>
- <br>
- There is a special <i>pygame</i> module named "locals". This module
- contains a subset of <i>pygame</i>. The members of this module are commonly
- used constants and functions that have proven useful to put into your program's
- global namespace. This locals module includes functions like "Rect" to create
- a rectangle object, and many constants like "QUIT, HWSURFACE" that are
-used to interact with the rest of <i>pygame</i>. Importing the locals module
-into the global namespace like this is entirely optional. If you choose
-not to import it, all the members of locals are always available in the
-<i>pygame</i> module.<br>
- <br>
- Lastly, we decide to print a nice warning message if the font or sound
-modules in pygame are not available.<br>
- <br>
-
-<h2>Loading Resources</h2>
- Here we have two functions we can use to load images and sounds. We will
- look at each function individually in this section.<br>
- <br>
-
-<table border="1" bgcolor="#ddcc88">
- <tbody>
- <tr>
- <td>
-<pre>def load_image(name, colorkey=None):
- fullname = os.path.join('data', name)
- try:
- image = pygame.image.load(fullname)
- except pygame.error, message:
- print 'Cannot load image:', name
- raise SystemExit, message
- image = image.convert()
- if colorkey is not None:
- if colorkey is -1:
- colorkey = image.get_at((0,0))
- image.set_colorkey(colorkey, RLEACCEL)
- return image, image.get_rect()
- </td>
- </tr>
-
- </tbody>
-</table>
- <br>
- This function takes the name of an image to load. It also optionally
- takes an argument it can use to set a colorkey for the image. A colorkey
- is used in graphics to represent a color of the image that is transparent.<br>
- <br>
- The first thing this function does is create a full pathname to the file.
- In this example all the resources are in a "data" subdirectory. By using
- the os.path.join function, a pathname will be created that works for whatever
- platform the game is running on.<br>
- <br>
- Next we load the image using the pygame.image.load function. We wrap
-this function in a try/except block, so if there is a problem loading the
-image, we can exit gracefully. After the image is loaded, we make an important
-call to the convert() function. This makes a new copy of a Surface and converts
- its color format and depth to match the display. This means blitting the
- image to the screen will happen as quickly as possible.<br>
- <br>
- Last, we set the colorkey for the image. If the user supplied an argument
- for the colorkey argument we use that value as the colorkey for the image.
- This would usually just be a color RGB value, like (255, 255, 255) for
-white. You can also pass a value of -1 as the colorkey. In this case the
-function will lookup the color at the topleft pixel of the image, and use
-that color for the colorkey.<br>
- <br>
-
-<table border="1" bgcolor="#ddcc88">
- <tbody>
- <tr><td>
-<pre>def load_sound(name):
- class NoneSound:
- def play(self): pass
- if not pygame.mixer:
- return NoneSound()
- fullname = os.path.join('data', name)
- try:
- sound = pygame.mixer.Sound(fullname)
- except pygame.error, message:
- print 'Cannot load sound:', wav
- raise SystemExit, message
- return sound</pre>
- </td>
- </tr>
-
- </tbody>
-</table>
- <br>
- Next is the function to load a sound file. The first thing this function
- does is check to see if the pygame.mixer module was imported correctly.
-If not, it returns a small class instance that has a dummy play method.
-This will act enough like a normal Sound object for this game to run without
-any extra error checking.<br>
- <br>
- This function is similar to the image loading function, but handles some
- different problems. First we create a full path to the sound image, and
-load the sound file inside a try/except block. Then we simply return the
-loaded Sound object.<br>
- <br>
-
-<h2>Game Object Classes</h2>
- Here we create two classes to represent the objects in our game. Almost
- all the logic for the game goes into these two classes. We will look over
- them one at a time here.<br>
- <br>
-
-<table border="1" bgcolor="#ddcc88">
- <tbody>
- <tr>
- <td>
-<pre>class Fist(pygame.sprite.Sprite):
- """moves a clenched fist on the screen, following the mouse"""
- def __init__(self):
- pygame.sprite.Sprite.__init__(self) #call Sprite initializer
- self.image, self.rect = load_image('fist.bmp', -1)
- self.punching = 0
-
- def update(self):
- "move the fist based on the mouse position"
- pos = pygame.mouse.get_pos()
- self.rect.midtop = pos
- if self.punching:
- self.rect.move_ip(5, 10)
-
- def punch(self, target):
- "returns true if the fist collides with the target"
- if not self.punching:
- self.punching = 1
- hitbox = self.rect.inflate(-5, -5)
- return hitbox.colliderect(target.rect)
-
- def unpunch(self):
- "called to pull the fist back"
- self.punching = 0</pre>
- </td>
- </tr>
-
- </tbody>
-</table>
- <br>
- Here we create a class to represent the players fist. It is derived from
- the Sprite class included in the pygame.sprite module. The __init__ function
- is called when new instances of this class are created. The first thing
-we do is be sure to call the __init__ function for our base class. This
-allows the Sprite's __init__ function to prepare our object for use as a
-sprite. This game uses one of the sprite drawing Group classes. These classes
-can draw sprites that have an "image" and "rect" attribute. By simply changing
- these two attributes, the renderer will draw the current image at the current
- position.<br>
- <br>
- All sprites have an update() method. This function is typically called
- once per frame. It is where you should put code that moves and updates
-the variables for the sprite. The update() method for the fist moves the
-fist to the location of the mouse pointer. It also offsets the fist position
-slightly if the fist is in the "punching" state.<br>
- <br>
- The following two functions punch() and unpunch() change the punching
-state for the fist. The punch() method also returns a true value if the fist
-is colliding with the given target sprite.<br>
- <br>
-
-<table border="1" bgcolor="#ddcc88">
- <tbody>
- <tr>
- <td>
-<pre>class Chimp(pygame.sprite.Sprite):
- """moves a monkey critter across the screen. it can spin the
- monkey when it is punched."""
- def __init__(self):
- pygame.sprite.Sprite.__init__(self) #call Sprite intializer
- self.image, self.rect = load_image('chimp.bmp', -1)
- screen = pygame.display.get_surface()
- self.area = screen.get_rect()
- self.rect.topleft = 10, 10
- self.move = 9
- self.dizzy = 0
-
- def update(self):
- "walk or spin, depending on the monkeys state"
- if self.dizzy:
- self._spin()
- else:
- self._walk()
-
- def _walk(self):
- "move the monkey across the screen, and turn at the ends"
- newpos = self.rect.move((self.move, 0))
- if not self.area.contains(newpos):
- if self.rect.left &lt; self.area.left or \
- self.rect.right &gt; self.area.right:
- self.move = -self.move
- newpos = self.rect.move((self.move, 0))
- self.image = pygame.transform.flip(self.image, 1, 0)
- self.rect = newpos
-
- def _spin(self):
- "spin the monkey image"
- center = self.rect.center
- self.dizzy += 12
- if self.dizzy >= 360:
- self.dizzy = 0
- self.image = self.original
- else:
- rotate = pygame.transform.rotate
- self.image = rotate(self.original, self.dizzy)
- self.rect = self.image.get_rect(center=center)
-
- def punched(self):
- "this will cause the monkey to start spinning"
- if not self.dizzy:
- self.dizzy = 1
- self.original = self.image</pre>
- </td>
- </tr>
-
- </tbody>
-</table>
- <br>
- The chimp class is doing a little more work than the fist, but nothing
- more complex. This class will move the chimp back and forth across the
-screen. When the monkey is punched, he will spin around to exciting effect.
-This class is also derived from the base Sprite class, and is initialized
-the same as the fist. While initializing, the class also sets the attribute
-"area" to be the size of the display screen.<br>
- <br>
- The update function for the chimp simply looks at the current "dizzy"
-state, which is true when the monkey is spinning from a punch. It calls either
-the _spin or _walk method. These functions are prefixed with an underscore.
- This is just a standard python idiom which suggests these methods should
- only be used by the Chimp class. We could go so far as to give them a double
- underscore, which would tell python to really try to make them private
-methods, but we don't need such protection. :)<br>
- <br>
- The walk method creates a new position for the monkey by moving the current
- rect by a given offset. If this new position crosses outside the display
- area of the screen, it reverses the movement offset. It also mirrors the
-image using the pygame.transform.flip function. This is a crude effect that
-makes the monkey look like he's turning the direction he is moving.<br>
- <br>
- The spin method is called when the monkey is currently "dizzy". The dizzy
- attribute is used to store the current amount of rotation. When the monkey
- has rotated all the way around (360 degrees) it resets the monkey image
-back to the original unrotated version. Before calling the transform.rotate
-function, you'll see the code makes a local reference to the function simply
-named "rotate". There is no need to do that for this example, it is just
-done here to keep the following line's length a little shorter. Note that
-when calling the rotate function, we are always rotating from the original
-monkey image. When rotating, there is a slight loss of quality. Repeatedly
-rotating the same image and the quality would get worse each time. Also,
-when rotating an image, the size of the image will actually change. This
-is because the corners of the image will be rotated out, making the image
-bigger. We make sure the center of the new image matches the center of the
-old image, so it rotates without moving.<br>
- <br>
- The last method is punched() which tells the sprite to enter its dizzy
- state. This will cause the image to start spinning. It also makes a copy
- of the current image named "original".<br>
-
-<h2>Initialize Everything</h2>
- Before we can do much with pygame, we need to make sure its modules
- are initialized. In this case we will also open a simple graphics window.
- Now we are in the main() function of the program, which actually runs everything.<br>
- <br>
-
-<table border="1" bgcolor="#ddcc88">
- <tbody>
- <tr>
- <td>
- <pre>pygame.init()
-screen = pygame.display.set_mode((468, 60))
-pygame.display.set_caption('Monkey Fever')
-pygame.mouse.set_visible(0)</pre>
- </td>
- </tr>
-
- </tbody>
-</table>
- <br>
- The first line to initialize <i>pygame</i> takes care of a bit of
-work for us. It checks through the imported <i>pygame</i> modules and attempts
- to initialize each one of them. It is possible to go back and check if modules
- failed to initialize, but we won't bother here. It is also possible to
-take a lot more control and initialize each specific module by hand. That
-type of control is generally not needed, but is available if you desire.<br>
- <br>
- Next we set up the display graphics mode. Note that the pygame.display
- module is used to control all the display settings. In this case we are
-asking for a simple skinny window. There is an entire separate tutorial
-on setting up the graphics mode, but if we really don't care, <i>pygame</i>
- will do a good job of getting us something that works. Pygame will pick
-the best color depth, since we haven't provided one.<br>
- <br>
- Last we set the window title and turn off the mouse cursor for our
-window. Very basic to do, and now we have a small black window ready to
-do our bidding. Usually the cursor defaults to visible, so there is no need
-to really set the state unless we want to hide it.<br>
- <br>
- <br>
-
-<h2>Create The Background</h2>
- Our program is going to have text message in the background. It would
- be nice for us to create a single surface to represent the background and
- repeatedly use that. The first step is to create the surface.<br>
- <br>
-
-<table border="1" bgcolor="#ddcc88">
- <tbody>
- <tr>
- <td>
- <pre>background = pygame.Surface(screen.get_size())
-background = background.convert()
-background.fill((250, 250, 250))</pre>
- </td>
- </tr>
-
- </tbody>
-</table>
- <br>
- This creates a new surface for us that is the same size as the display
- window. Note the extra call to convert() after creating the Surface. The
- convert with no arguments will make sure our background is the same format
- as the display window, which will give us the fastest results.<br>
- <br>
- We also fill the entire background with a solid white-ish color. Fill
- takes an RGB triplet as the color argument.<br>
- <br>
- <br>
-
-<h2>Put Text On The Background, Centered</h2>
- Now that we have a background surface, lets get the text rendered
-to it. We only do this if we see the pygame.font module has imported properly.
- If not, we just skip this section.<br>
- <br>
-
-<table border="1" bgcolor="#ddcc88">
- <tbody>
- <tr>
- <td>
-<pre>if pygame.font:
- font = pygame.font.Font(None, 36)
- text = font.render("Pummel The Chimp, And Win $$$", 1, (10, 10, 10))
- textpos = text.get_rect(centerx=background.get_width()/2)
- background.blit(text, textpos)</pre>
-</td>
- </tr>
-
- </tbody>
-</table>
- <br>
- As you see, there are a couple steps to getting this done. First we
- must create the font object and render it into a new surface. We then find
- the center of that new surface and blit (paste) it onto the background.<br>
- <br>
- The font is created with the font module's Font() constructor. Usually
- you will pass the name of a truetype font file to this function, but we
-can also pass None, which will use a default font. The Font constructor
-also needs to know the size of font we want to create.<br>
- <br>
- We then render that font into a new surface. The render function creates
- a new surface that is the appropriate size for our text. In this case
-we are also telling render to create antialiased text (for a nice smooth
-look) and to use a dark grey color.<br>
- <br>
- Next we need to find the centered position of the text on our display.
- We create a "Rect" object from the text dimensions, which allows us to
-easily assign it to the screen center.<br>
- <br>
- Finally we blit (blit is like a copy or paste) the text onto the background
- image.<br>
- <br>
- <br>
-
-<h2>Display The Background While Setup Finishes</h2>
- We still have a black window on the screen. Lets show our background
- while we wait for the other resources to load.<br>
- <br>
-
-<table border="1" bgcolor="#ddcc88">
- <tbody>
- <tr>
- <td>
- <pre>screen.blit(background, (0, 0))
-pygame.display.flip()<br></pre>
- </td>
- </tr>
-
- </tbody>
-</table>
- <br>
- This will blit our entire background onto the display window. The
-blit is self explanatory, but what about this flip routine?<br>
- <br>
- In pygame, changes to the display surface are not immediately visible.
- Normally, a display must be updated in areas that have changed for them
-to be visible to the user. With double buffered displays the display must
-be swapped (or flipped) for the changes to become visible. In this case
-the flip() function works nicely because it simply handles the entire window
-area and handles both singlebuffered and doublebufferes surfaces.<br>
- <br>
- <br>
-
-<h2>Prepare Game Object</h2>
- Here we create all the objects that the game is going to need.<br>
- <br>
-
-<table border="1" bgcolor="#ddcc88">
- <tbody>
- <tr>
- <td>
-<pre>whiff_sound = load_sound('whiff.wav')
-punch_sound = load_sound('punch.wav')
-chimp = Chimp()
-fist = Fist()
-allsprites = pygame.sprite.RenderPlain((fist, chimp))
-clock = pygame.time.Clock()</pre>
- </td>
- </tr>
-
- </tbody>
-</table>
- <br>
- First we load two sound effects using the load_sound function we defined
- above. Then we create an instance of each of our sprite classes. And lastly
- we create a sprite Group which will contain all our sprites.<br>
- <br>
- We actually use a special sprite group named RenderPlain. This sprite
-group can draw all the sprites it contains to the screen. It is called RenderPlain
- because there are actually more advanced Render groups. But for our game,
- we just need simple drawing. We create the group named "allsprites" by
-passing a list with all the sprites that should belong in the group. We
-could later on add or remove sprites from this group, but in this game
-we won't need to.<br>
- <br>
- The clock object we create will be used to help control our game's framerate.
-we will use it in the main loop of our game to make sure it doesn't run too fast.
- <br>
- <br>
-
-<h2>Main Loop</h2>
- Nothing much here, just an infinite loop.<br>
- <br>
-
-<table border="1" bgcolor="#ddcc88">
- <tbody>
- <tr>
- <td>
- <pre>while 1:
- clock.tick(60)</pre>
- </td>
- </tr>
-
- </tbody>
-</table>
- <br>
- All games run in some sort of loop. The usual order of things is to
- check on the state of the computer and user input, move and update the
-state of all the objects, and then draw them to the screen. You'll see
-that this example is no different.<br>
- <br>
- We also make a call to our clock object, which will make sure our game
-doesn't run faster than 60 frames per second.<br>
- <br>
- <br>
-
-<h2>Handle All Input Events</h2>
- This is an extremely simple case of working the event queue.<br>
- <br>
-
-<table border="1" bgcolor="#ddcc88">
- <tbody>
- <tr>
- <td>
-<pre>for event in pygame.event.get():
- if event.type == QUIT:
- return
- elif event.type == KEYDOWN and event.key == K_ESCAPE:
- return
- elif event.type == MOUSEBUTTONDOWN:
- if fist.punch(chimp):
- punch_sound.play() #punch
- chimp.punched()
- else:
- whiff_sound.play() #miss
- elif event.type == MOUSEBUTTONUP:
- fist.unpunch()</pre>
- </td>
- </tr>
-
- </tbody>
-</table>
- <br>
- First we get all the available Events from pygame and loop through each
- of them. The first two tests see if the user has quit our game, or pressed
- the escape key. In these cases we just return from the main() function and
- the program cleanly ends.<br>
- <br>
- Next we just check to see if the mouse button was pressed or released.
-If the button was pressed, we ask the fist object if it has collided with
-the chimp. We play the appropriate sound effect, and if the monkey was hit,
-we tell him to start spinning (by calling his punched() method).<br>
- <br>
- <br>
-
-<h2>Update the Sprites</h2>
- <br>
-
-<table border="1" bgcolor="#ddcc88">
- <tbody>
- <tr>
- <td>
- <pre>allsprites.update()</pre>
- </td>
- </tr>
-
- </tbody>
-</table>
- <br>
- Sprite groups have an update() method, which simply calls the update method
- for all the sprites it contains. Each of the objects will move around, depending
- on which state they are in. This is where the chimp will move one step side
- to side, or spin a little farther if he was recently punched.<br>
- <br>
- <br>
- <br>
-
-<h2>Draw The Entire Scene</h2>
- Now that all the objects are in the right place, time to draw them.<br>
- <br>
-
-<table border="1" bgcolor="#ddcc88">
- <tbody>
- <tr>
- <td>
-<pre>screen.blit(background, (0, 0))
-allsprites.draw(screen)
-pygame.display.flip()</pre>
- </td>
- </tr>
-
- </tbody>
-</table>
- <br>
- The first blit call will draw the background onto the entire screen. This
- erases everything we saw from the previous frame (slightly inefficient, but
- good enough for this game). Next we call the draw() method of the sprite
-container. Since this sprite container is really an instance of the "DrawPlain"
-sprite group, it knows how to draw our sprites. Lastly, we flip() the contents
-of pygame's software double buffer to the screen. This makes everything we've
- drawn visible all at once.<br>
- <br>
- <br>
-
-<h2>Game Over</h2>
- User has quit, time to clean up<br>
- <br>
- Cleaning up the running game in <i>pygame</i> is extremely simple.
-In fact since all variables are automatically destructed, we really don't
-have to do anything.<br>
- <br>
-
-</body>
-</html>
diff --git a/pygame/docs/tut/chimp/chimp.py.html b/pygame/docs/tut/chimp/chimp.py.html
deleted file mode 100755
index 6c98b58..0000000
--- a/pygame/docs/tut/chimp/chimp.py.html
+++ /dev/null
@@ -1,196 +0,0 @@
-<html>
-<head>
-<title>~/src/pygame/examples/chimp.py.html</title>
-<meta name="Generator" content="Vim/6.1">
-</head>
-<body bgcolor="#ffffff" text="#000000">
-<pre>
-<font color="#0000ff">#/usr/bin/env python</font>
-&quot;&quot;&quot;
-<font color="#ff00ff">This simple example is used for the line-by-line tutorial</font>
-<font color="#ff00ff">that comes with pygame. It is based on a 'popular' web banner.</font>
-<font color="#ff00ff">Note there are comments here, but for the full explanation, </font>
-<font color="#ff00ff">follow along in the tutorial.</font>
-&quot;&quot;&quot;
-
-
-<font color="#0000ff">#Import Modules</font>
-<font color="#a020f0">import</font> os, pygame
-<font color="#a020f0">from</font> pygame.locals <font color="#a020f0">import</font> *
-
-<font color="#a52a2a"><b>if</b></font> <font color="#a52a2a"><b>not</b></font> pygame.font: <font color="#a52a2a"><b>print</b></font> '<font color="#ff00ff">Warning, fonts disabled</font>'
-<font color="#a52a2a"><b>if</b></font> <font color="#a52a2a"><b>not</b></font> pygame.mixer: <font color="#a52a2a"><b>print</b></font> '<font color="#ff00ff">Warning, sound disabled</font>'
-
-
-<font color="#0000ff">#functions to create our resources</font>
-<font color="#a52a2a"><b>def</b></font> <font color="#008b8b">load_image</font>(name, colorkey=None):
- fullname = os.path.join('<font color="#ff00ff">data</font>', name)
- <font color="#a52a2a"><b>try</b></font>:
- image = pygame.image.load(fullname)
- <font color="#a52a2a"><b>except</b></font> pygame.error, message:
- <font color="#a52a2a"><b>print</b></font> '<font color="#ff00ff">Cannot load image:</font>', fullname
- <font color="#a52a2a"><b>raise</b></font> SystemExit, message
- image = image.convert()
- <font color="#a52a2a"><b>if</b></font> colorkey <font color="#a52a2a"><b>is</b></font> <font color="#a52a2a"><b>not</b></font> None:
- <font color="#a52a2a"><b>if</b></font> colorkey <font color="#a52a2a"><b>is</b></font> -1:
- colorkey = image.get_at((0,0))
- image.set_colorkey(colorkey, RLEACCEL)
- <font color="#a52a2a"><b>return</b></font> image, image.get_rect()
-
-<font color="#a52a2a"><b>def</b></font> <font color="#008b8b">load_sound</font>(name):
- <font color="#a52a2a"><b>class</b></font> <font color="#008b8b">NoneSound</font>:
- <font color="#a52a2a"><b>def</b></font> <font color="#008b8b">play</font>(self): <font color="#a52a2a"><b>pass</b></font>
- <font color="#a52a2a"><b>if</b></font> <font color="#a52a2a"><b>not</b></font> pygame.mixer <font color="#a52a2a"><b>or</b></font> <font color="#a52a2a"><b>not</b></font> pygame.mixer.get_init():
- <font color="#a52a2a"><b>return</b></font> NoneSound()
- fullname = os.path.join('<font color="#ff00ff">data</font>', name)
- <font color="#a52a2a"><b>try</b></font>:
- sound = pygame.mixer.Sound(fullname)
- <font color="#a52a2a"><b>except</b></font> pygame.error, message:
- <font color="#a52a2a"><b>print</b></font> '<font color="#ff00ff">Cannot load sound:</font>', fullname
- <font color="#a52a2a"><b>raise</b></font> SystemExit, message
- <font color="#a52a2a"><b>return</b></font> sound
-
-
-<font color="#0000ff">#classes for our game objects</font>
-<font color="#a52a2a"><b>class</b></font> <font color="#008b8b">Fist</font>(pygame.sprite.Sprite):
- &quot;&quot;&quot;<font color="#ff00ff">moves a clenched fist on the screen, following the mouse</font>&quot;&quot;&quot;
- <font color="#a52a2a"><b>def</b></font> <font color="#008b8b">__init__</font>(self):
- pygame.sprite.Sprite.__init__(self) <font color="#0000ff">#call Sprite initializer</font>
- self.image, self.rect = load_image('<font color="#ff00ff">fist.bmp</font>', -1)
- self.punching = 0
-
- <font color="#a52a2a"><b>def</b></font> <font color="#008b8b">update</font>(self):
- &quot;<font color="#ff00ff">move the fist based on the mouse position</font>&quot;
- pos = pygame.mouse.get_pos()
- self.rect.midtop = pos
- <font color="#a52a2a"><b>if</b></font> self.punching:
- self.rect.move_ip(5, 10)
-
- <font color="#a52a2a"><b>def</b></font> <font color="#008b8b">punch</font>(self, target):
- &quot;<font color="#ff00ff">returns true if the fist collides with the target</font>&quot;
- <font color="#a52a2a"><b>if</b></font> <font color="#a52a2a"><b>not</b></font> self.punching:
- self.punching = 1
- hitbox = self.rect.inflate(-5, -5)
- <font color="#a52a2a"><b>return</b></font> hitbox.colliderect(target.rect)
-
- <font color="#a52a2a"><b>def</b></font> <font color="#008b8b">unpunch</font>(self):
- &quot;<font color="#ff00ff">called to pull the fist back</font>&quot;
- self.punching = 0
-
-
-<font color="#a52a2a"><b>class</b></font> <font color="#008b8b">Chimp</font>(pygame.sprite.Sprite):
- &quot;&quot;&quot;<font color="#ff00ff">moves a monkey critter across the screen. it can spin the</font>
-<font color="#ff00ff"> monkey when it is punched.</font>&quot;&quot;&quot;
- <font color="#a52a2a"><b>def</b></font> <font color="#008b8b">__init__</font>(self):
- pygame.sprite.Sprite.__init__(self) <font color="#0000ff">#call Sprite intializer</font>
- self.image, self.rect = load_image('<font color="#ff00ff">chimp.bmp</font>', -1)
- screen = pygame.display.get_surface()
- self.area = screen.get_rect()
- self.rect.topleft = 10, 10
- self.move = 9
- self.dizzy = 0
-
- <font color="#a52a2a"><b>def</b></font> <font color="#008b8b">update</font>(self):
- &quot;<font color="#ff00ff">walk or spin, depending on the monkeys state</font>&quot;
- <font color="#a52a2a"><b>if</b></font> self.dizzy:
- self._spin()
- <font color="#a52a2a"><b>else</b></font>:
- self._walk()
-
- <font color="#a52a2a"><b>def</b></font> <font color="#008b8b">_walk</font>(self):
- &quot;<font color="#ff00ff">move the monkey across the screen, and turn at the ends</font>&quot;
- newpos = self.rect.move((self.move, 0))
- <font color="#a52a2a"><b>if</b></font> self.rect.left &lt; self.area.left <font color="#a52a2a"><b>or</b></font> <font color="#6a5acd">\</font>
- self.rect.right &gt; self.area.right:
- self.move = -self.move
- newpos = self.rect.move((self.move, 0))
- self.image = pygame.transform.flip(self.image, 1, 0)
- self.rect = newpos
-
- <font color="#a52a2a"><b>def</b></font> <font color="#008b8b">_spin</font>(self):
- &quot;<font color="#ff00ff">spin the monkey image</font>&quot;
- center = self.rect.center
- self.dizzy = self.dizzy + 12
- <font color="#a52a2a"><b>if</b></font> self.dizzy &gt;= 360:
- self.dizzy = 0
- self.image = self.original
- <font color="#a52a2a"><b>else</b></font>:
- rotate = pygame.transform.rotate
- self.image = rotate(self.original, self.dizzy)
- self.rect = self.image.get_rect(center=center)
-
- <font color="#a52a2a"><b>def</b></font> <font color="#008b8b">punched</font>(self):
- &quot;<font color="#ff00ff">this will cause the monkey to start spinning</font>&quot;
- <font color="#a52a2a"><b>if</b></font> <font color="#a52a2a"><b>not</b></font> self.dizzy:
- self.dizzy = 1
- self.original = self.image
-
-
-<font color="#a52a2a"><b>def</b></font> <font color="#008b8b">main</font>():
- &quot;&quot;&quot;<font color="#ff00ff">this function is called when the program starts.</font>
-<font color="#ff00ff"> it initializes everything it needs, then runs in</font>
-<font color="#ff00ff"> a loop until the function returns.</font>&quot;&quot;&quot;
-<font color="#0000ff">#Initialize Everything</font>
- pygame.init()
- screen = pygame.display.set_mode((468, 60))
- pygame.display.set_caption('<font color="#ff00ff">Monkey Fever</font>')
- pygame.mouse.set_visible(0)
-
-<font color="#0000ff">#Create The Backgound</font>
- background = pygame.Surface(screen.get_size())
- background = background.convert()
- background.fill((250, 250, 250))
-
-<font color="#0000ff">#Put Text On The Background, Centered</font>
- <font color="#a52a2a"><b>if</b></font> pygame.font:
- font = pygame.font.Font(None, 36)
- text = font.render(&quot;<font color="#ff00ff">Pummel The Chimp, And Win $$$</font>&quot;, 1, (10, 10, 10))
- textpos = text.get_rect(centerx=background.get_width()/2)
- background.blit(text, textpos)
-
-<font color="#0000ff">#Display The Background</font>
- screen.blit(background, (0, 0))
- pygame.display.flip()
-
-<font color="#0000ff">#Prepare Game Objects</font>
- clock = pygame.time.Clock()
- whiff_sound = load_sound('<font color="#ff00ff">whiff.wav</font>')
- punch_sound = load_sound('<font color="#ff00ff">punch.wav</font>')
- chimp = Chimp()
- fist = Fist()
- allsprites = pygame.sprite.RenderPlain((fist, chimp))
-
-<font color="#0000ff">#Main Loop</font>
- <font color="#a52a2a"><b>while</b></font> 1:
- clock.tick(60)
-
- <font color="#0000ff">#Handle Input Events</font>
- <font color="#a52a2a"><b>for</b></font> event <font color="#a52a2a"><b>in</b></font> pygame.event.get():
- <font color="#a52a2a"><b>if</b></font> event.type <font color="#a52a2a"><b>==</b></font> QUIT:
- <font color="#a52a2a"><b>return</b></font>
- <font color="#a52a2a"><b>elif</b></font> event.type <font color="#a52a2a"><b>==</b></font> KEYDOWN <font color="#a52a2a"><b>and</b></font> event.key <font color="#a52a2a"><b>==</b></font> K_ESCAPE:
- <font color="#a52a2a"><b>return</b></font>
- <font color="#a52a2a"><b>elif</b></font> event.type <font color="#a52a2a"><b>==</b></font> MOUSEBUTTONDOWN:
- <font color="#a52a2a"><b>if</b></font> fist.punch(chimp):
- punch_sound.play() <font color="#0000ff">#punch</font>
- chimp.punched()
- <font color="#a52a2a"><b>else</b></font>:
- whiff_sound.play() <font color="#0000ff">#miss</font>
- <font color="#a52a2a"><b>elif</b></font> event.type <font color="#a52a2a"><b>is</b></font> MOUSEBUTTONUP:
- fist.unpunch()
-
- allsprites.update()
-
- <font color="#0000ff">#Draw Everything</font>
- screen.blit(background, (0, 0))
- allsprites.draw(screen)
- pygame.display.flip()
-
-<font color="#0000ff">#Game Over</font>
-
-
-<font color="#0000ff">#this calls the 'main' function when this script is executed</font>
-<font color="#a52a2a"><b>if</b></font> __name__ == '<font color="#ff00ff">__main__</font>': main()
-</pre>
-</body>
-</html>
diff --git a/pygame/docs/tut/chimp/chimpshot.gif b/pygame/docs/tut/chimp/chimpshot.gif
deleted file mode 100755
index d3075f9..0000000
--- a/pygame/docs/tut/chimp/chimpshot.gif
+++ /dev/null
Binary files differ
diff --git a/pygame/docs/tut/intro/ball.gif b/pygame/docs/tut/intro/ball.gif
deleted file mode 100755
index bbc4a95..0000000
--- a/pygame/docs/tut/intro/ball.gif
+++ /dev/null
Binary files differ
diff --git a/pygame/docs/tut/intro/blade.jpg b/pygame/docs/tut/intro/blade.jpg
deleted file mode 100755
index 2ed490c..0000000
--- a/pygame/docs/tut/intro/blade.jpg
+++ /dev/null
Binary files differ
diff --git a/pygame/docs/tut/intro/freedom.jpg b/pygame/docs/tut/intro/freedom.jpg
deleted file mode 100755
index 9ed473d..0000000
--- a/pygame/docs/tut/intro/freedom.jpg
+++ /dev/null
Binary files differ
diff --git a/pygame/docs/tut/intro/intro.html b/pygame/docs/tut/intro/intro.html
deleted file mode 100755
index 2b4d64b..0000000
--- a/pygame/docs/tut/intro/intro.html
+++ /dev/null
@@ -1,351 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <!--
-TUTORIAL:Pygame Python Introduction
--->
-<html>
-<head>
- <meta http-equiv="content-type"
- content="text/html; charset=ISO-8859-1">
- <title>Pygame Intro</title>
-</head>
-<body>
-<h1 style="text-align: center;">Python Pygame Introduction</h1>
-<br>
-<h2 style="text-align: center;">by Pete Shinners</h2>
-<h3 style="text-align: center;">pete@shinners.org</h3>
-<br>
-<br>
-This article is an introduction to the <a href="http://www.pygame.org">Pygame
-library</a> for <a href="http://www.python.org">Python programmers</a>.
-The original version appeared in the <a href="http://www.pyzine.com/">Py
-Zine</a>, volume 1 issue 3. This version contains minor revisions, to
-create an all around better article. Pygame is a Python extension
-library that wraps the <a href="http://www.libsdl.org">SDL</a> library
-and it's helpers.<br>
-<br>
-<br>
-<h2>HISTORY</h2>
-Pygame started in the summer of 2000. Being a C programmer of many
-years, I discovered both Python and SDL at about the same time. You are
-already familiar with Python, which was at version 1.5.2. You may need
-an introduction to SDL, which is the Simple Directmedia Library.&nbsp;
-Created by Sam Lantinga, SDL is a cross-platform C library for
-controlling multimedia, comparable to DirectX. It has been used for
-hundreds commercial and open source games. I was impressed at how clean
-and straightforward both projects were and it wasn't long before I
-realized mixing Python and SDL was an interesting proposal.<br>
-<br>
-I discovered a small project already underway with exactly the same
-idea, PySDL. Created by Mark Baker, PySDL was a straightforward
-implementation of SDL as a Python extension. The interface was cleaner
-than a generic SWIG wrapping, but I felt it forced a "C style" of code.
-The sudden death of PySDL prompted me to take on a new project of my
-own.<br>
-<br>
-I wanted to put together a project that really took advantage of
-Python. My goal was to make it easy to do the simple things, and
-straightforward to do the difficult things. Pygame was started in
-October, 2000. Six months later Pygame version 1.0 was released.<br>
-<br>
-<br>
-<h2>TASTE</h2>
-I find the best way to understand a new library is to jump straight
-into an example. In the early days of Pygame, I created a bouncing ball
-animation with 7 lines of code. Let's take a look at a friendlier
-version of that same thing. This should be simple enough to follow
-along, and a complete breakdown follows.<br>
-<br>
-<div style="margin-left: 40px;"><span style="font-family: monospace;">&nbsp;1&nbsp;&nbsp;
-&nbsp;import sys, pygame<img src="ball.gif" title="" alt=""
- style="width: 111px; height: 111px;" align="right"></span><br
- style="font-family: monospace;">
-<span style="font-family: monospace;">&nbsp;2&nbsp;&nbsp;
-&nbsp;pygame.init()</span><br style="font-family: monospace;">
-<span style="font-family: monospace;">&nbsp;3</span><br
- style="font-family: monospace;">
-<span style="font-family: monospace;">&nbsp;4&nbsp;&nbsp; &nbsp;size =
-width, height = 320, 240</span><br style="font-family: monospace;">
-<span style="font-family: monospace;">&nbsp;5&nbsp;&nbsp; &nbsp;speed =
-[2, 2]</span><br style="font-family: monospace;">
-<span style="font-family: monospace;">&nbsp;6&nbsp;&nbsp; &nbsp;black =
-0, 0, 0</span><br style="font-family: monospace;">
-<span style="font-family: monospace;">&nbsp;7</span><br
- style="font-family: monospace;">
-<span style="font-family: monospace;">&nbsp;8&nbsp; &nbsp; screen =
-pygame.display.set_mode(size)</span><br style="font-family: monospace;">
-<span style="font-family: monospace;">&nbsp;9</span><br
- style="font-family: monospace;">
-<span style="font-family: monospace;">10&nbsp;&nbsp; &nbsp;ball =
-pygame.image.load("ball.bmp")</span><br style="font-family: monospace;">
-<span style="font-family: monospace;">11&nbsp;&nbsp; &nbsp;ballrect =
-ball.get_rect()</span><br style="font-family: monospace;">
-<span style="font-family: monospace;">12</span><br
- style="font-family: monospace;">
-<span style="font-family: monospace;">13&nbsp;&nbsp; &nbsp;while 1:</span><br
- style="font-family: monospace;">
-<span style="font-family: monospace;">14&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;
-&nbsp;for event in pygame.event.get():</span><br
- style="font-family: monospace;">
-<span style="font-family: monospace;">15&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;
-&nbsp;&nbsp;&nbsp; &nbsp;if event.type == pygame.QUIT: sys.exit()</span><br
- style="font-family: monospace;">
-<span style="font-family: monospace;">16</span><br
- style="font-family: monospace;">
-<span style="font-family: monospace;">17&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;
-&nbsp;ballrect = ballrect.move(speed)</span><br
- style="font-family: monospace;">
-<span style="font-family: monospace;">18&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;
-&nbsp;if ballrect.left &lt; 0 or ballrect.right &gt; width:</span><br
- style="font-family: monospace;">
-<span style="font-family: monospace;">19&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;
-&nbsp;&nbsp;&nbsp; &nbsp;speed[0] = -speed[0]</span><br
- style="font-family: monospace;">
-<span style="font-family: monospace;">20&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;
-&nbsp;if ballrect.top &lt; 0 or ballrect.bottom &gt; height:</span><br
- style="font-family: monospace;">
-<span style="font-family: monospace;">21&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;
-&nbsp;&nbsp;&nbsp; &nbsp;speed[1] = -speed[1]</span><br
- style="font-family: monospace;">
-<span style="font-family: monospace;">22</span><br
- style="font-family: monospace;">
-<span style="font-family: monospace;">23&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;
-&nbsp;screen.fill(black)</span><br style="font-family: monospace;">
-<span style="font-family: monospace;">24&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;
-&nbsp;screen.blit(ball, ballrect)</span><br
- style="font-family: monospace;">
-<span style="font-family: monospace;">25&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;
-&nbsp;pygame.display.flip()</span><br>
-</div>
-<br>
-This is as simple as you can get for a bouncing animation. First we see
-importing and initializing Pygame is nothing noteworthy. The "<span
- style="font-family: monospace;">import pygame</span>" imports the
-package with all the available Pygame modules. The call to "<span
- style="font-family: monospace;">pygame.init()</span>" initializes each
-of these modules.<br>
-<br>
-On <span style="text-decoration: underline;">line 8</span> we create a
-graphical window with the call to "<span style="font-family: monospace;">pygame.display.set_mode()</span>".
-Pygame and SDL make this easy by defaulting to the best graphics modes
-for the graphics hardware. You can override the mode and SDL will
-compensate for anything the hardware cannot do. Pygame represents
-images as <span style="font-style: italic;">Surface</span> objects.
-The "<span style="font-family: monospace;">display.set_mode()</span>"
-function creates a new <span style="font-style: italic;">Surface</span>
-object that represents the actual displayed graphics. Any drawing you
-do to this Surface will become visible on the monitor.<br>
-<br>
-At <span style="text-decoration: underline;">line 10</span> we load
-our ball image. Pygame supports a variety of image formats through the
-SDL_image library, including JPG, PNG, TGA, and GIF. The "<span
- style="font-family: monospace;">pygame.image.load()</span>" function
-returns us a Surface with the ball data. The Surface will keep any
-colorkey or alpha transparency from the file. After loading the ball
-image we create a variable named ballrect. Pygame comes with a
-convenient utility object type named <span style="font-style: italic;">Rect</span>,
-which represents a rectangular area. Later, in the animation part of
-the code, we will see what the <span style="font-style: italic;">Rect</span>
-objects can do.<br>
-<br>
-At this point, <span style="text-decoration: underline;">line 13</span>,
-our program is initialized and ready to run. Inside an infinite loop we
-check for user input, move the ball, and then draw the ball. If you are
-familiar with GUI programming, you have had experience with events and
-event loops. In Pygame this is no different, we check if a <span
- style="font-style: italic;">QUIT</span> event has happened. If so we
-simply exit the program, Pygame will ensure everything is cleanly
-shutdown.<br>
-<br>
-It is time to update our position for the ball. <span
- style="text-decoration: underline;">Lines 17 to 21</span> move the
-ballrect variable by the current speed. If the ball has moved outside
-the screen, we reverse the speed in that direction. Not exactly
-Newtonian physics, but it is all we need.<br>
-<br>
-On <span style="text-decoration: underline;">line 23</span> we erase
-the the screen by filling it with a black RGB color. If you have never
-worked with animations this may seem strange. You may be asking "Why do
-we need to erase anything, why don't we just move the ball on the
-screen?" That is not quite the way computer animation works. Animation
-is nothing more than a series of single images, when displayed in
-sequence does a very good job of fooling the human eye into seeing
-motion. The screen is just a single image that the user sees. If we did
-not take the time to erase the ball from the screen, we would actually
-see a "trail" of the ball as we continuously draw the ball in its new
-positions.<br>
-<br>
-On <span style="text-decoration: underline;">line 24</span> we draw
-the ball image onto the screen. Drawing of images is handled by the "<span
- style="font-family: monospace;">Surface.blit()</span>" method. A blit
-basically means copying pixel colors from one image to another. We pass
-the blit method a source <span style="font-style: italic;">Surface</span>
-to copy from, and a position to place the source onto the destination.<br>
-<br>
-The last thing we need to do is actually update the visible display.
-Pygame manages the display with a double buffer. When we are finished
-drawing we call the "<span style="font-family: monospace;">pygame.display.flip()</span>"
-method. This makes everything we have drawn on the screen Surface
-become visible. This buffering makes sure we only see completely drawn
-frames on the screen. Without it, the user would see the half completed
-parts of the screen as they are being created.<br>
-<br>
-That concludes this short introduction to Pygame. Pygame also has
-modules to do things like input handling for the keyboard, mouse, and
-joystick. It can mix audio and decode streaming music. With the <span
- style="font-style: italic;">Surfaces</span> you can draw simple
-shapes, rotate, scale, the picture.&nbsp; Even manipulate the pixels of
-an image in realtime as Numeric Python arrays. There is MPEG video
-playback, and audio CD support. Pygame also has the ability to act as a
-cross platform display layer for PyOpenGL. Most of the Pygame modules
-are written in C, few are actually done in Python.<br>
-<br>
-The Pygame website has full reference documentation for every Pygame
-function and tutorials for all ranges of users. The Pygame source comes
-with many examples of things like monkey punching and UFO shooting.<br>
-<br>
-<br>
-<h2>PYTHON AND GAMING</h2>
-"Is Python suitable for gaming?" The answer is, "It depends on the
-game."<br>
-<br>
-Python is actually quite capable at running games. It will likely even
-surprise you how much is possible in under 30 milliseconds. Still, it
-is not hard to reach the ceiling once your game begins to get more
-complex. Any game running in realtime will be making full use of the
-computer.<br>
-<br>
-<img src="blade.jpg" title="" alt=""
- style="width: 200px; height: 150px;" align="right">Over the past
-several years there has been an interesting trend in game development,
-the move towards higher level languages. Usually a game is split into
-two major parts. The game engine, which must be as fast as possible,
-and the game logic, which makes the engine actually do something. It
-wasn't long ago when the engine of game was written in assembly, with
-portions written in C. Nowadays, C has moved to the game engine, while
-often the game itself is written in higher level scripting languages.
-Games like Quake3 and Unreal run these scripts as portable bytecode.<br>
-<br>
-In early 2001, developer Rebel Act Studios finished their game,
-Severance: Blade of Darkness. Using their own custom 3D engine, the
-rest of the game is written with Python. The game is a bloody action
-3rd person perspective fighter. You control medieval warriors into
-intricate decapitating combination attacks while exploring dungeons and
-castles. You can download third party addons for this game, and find
-they are nothing more than Python source files.<br>
-<br>
-More recently, Python has been used a variety of games like Freedom
-Force, and Humungous' Backyard Sports Series.<br>
-<br>
-<img src="freedom.jpg" title="" alt=""
- style="width: 200px; height: 150px;" align="right">Pygame and SDL
-serve as an excellent C engine for 2D games. Games will still find the
-largest part of their runtime is spent inside SDL handling the
-graphics. SDL can take advantage of graphics hardware acceleration.
-Enabling this can change a game from running around 40 frames per
-second to over 200 frames per second. When you see your Python game
-running at 200 frames per second, you realize that Python and games can
-work together.<br>
-<br>
-It is impressive how well both Python and SDL work on multiple
-platforms. For example, in May of 2001 I released my own full Pygame
-project, SolarWolf, an arcade style action game. One thing that has
-surprised me is that one year later there has been no need for any
-patches, bug fixes, or updates. The game was developed entirely on
-windows, but runs on Linux, Mac OSX, and many Unixes without any extra
-work on my end.<br>
-<br>
-Still, there are very clear limitations. The best way to manage
-hardware accelerated graphics is not always the way to get fastest
-results from software rendering. Hardware support is not available on
-all platforms. When a game gets more complex, it often must commit to
-one or the other. SDL has some other design limitations, things like
-full screen scrolling graphics can quickly bring your game down to
-unplayable speeds. While SDL is not suitable all types of games,
-remember companies like Loki have used SDL to run a wide variety of
-retail quality titles.<br>
-<br>
-Pygame is faily low level when it comes to writing games. You'll
-quickly find yourself needing to wrap common functions into your own
-game environment. The great thing abuot this is there is nothing inside
-pygame to get in your way. Your program is in full control of
-everything. The side effect of that is you will find yourself borrowing
-a lot of code to get a more advanced framework put together. You'll
-need a better understanding of what you are doing.<br>
-<br>
-<br>
-<h2>CLOSING</h2>
-<table cellpadding="2" cellspacing="2" border="1"
- style="text-align: left; width: 100%; background-color: rgb(255, 255, 204);">
- <tbody>
- </tbody>
-</table>
-Developing games is very rewarding, there is something exciting about
-being able to see and interact with the code you've written. Pygame
-currently has almost 30 other projects using it. Several of them are
-ready to play now. You may be surprised to visit the Pygame website,
-and see what other users have been able to do with Python.<br>
-<br>
-One thing that has caught my attention is the amount of people coming
-to Python for the first time to try game development. I can see why
-games are a draw for new programmers, but it can be difficult since
-creating games requires a firmer understanding of the language. I've
-tried to support this group of users by writing many examples and
-Pygame tutorials for people new to these concepts.<br>
-<br>
-In the end, my advice is to keep it simple. I cannot stress this
-enough. If you are planning to create your first game, there is a&nbsp;
-lot to learn. Even a simpler game will challenge your designs, and
-complex games don't necessarily mean fun games. When you understand
-Python, you can use Pygame to create a simple game in only one or two
-weeks. From there you'll need a surprising amount of time needed to add
-the polish to make that into a full presentable game.<br>
-<br>
-<br>
-<br>
-<br>
-<h3>Pygame Modules Overview</h3>
-<table cellpadding="2" cellspacing="2" border="1"
- style="text-align: left; width: 100%;">
- <tbody>
- <tr>
- <td style="vertical-align: top;">cdrom<br>
-cursors<br>
-display<br>
-draw<br>
-event<br>
-font<br>
-image<br>
-joystick<br>
-key<br>
-mouse<br>
-movie<br>
-sndarray<br>
-surfarray<br>
-time<br>
-transform</td>
- <td style="vertical-align: top;">manage cdrom devices and audio
-playback<br>
-load cursor images, includes standard cursors<br>
-control the display window or screen<br>
-draw simple shapes onto a Surface<br>
-manage events and the event queue<br>
-create and render Truetype fonts<br>
-save and load images<br>
-manage joystick devices<br>
-manage the keyboard<br>
-manage the mouse<br>
-playback of mpeg movies<br>
-manipulate sounds with Numeric<br>
-manipulate images with Numeric<br>
-control timing<br>
-scale, rotate, and flip images<br>
- </td>
- </tr>
- </tbody>
-</table>
-<br>
-<br>
-<br>
-<br>
-<br>
-</body>
-</html>
diff --git a/pygame/docs/tut/newbieguide.html b/pygame/docs/tut/newbieguide.html
deleted file mode 100755
index 268b187..0000000
--- a/pygame/docs/tut/newbieguide.html
+++ /dev/null
@@ -1,210 +0,0 @@
-<!--
-TUTORIAL:David Clark's Newbie Guide To Pygame
---><html>
-<title>A Newbie Guide to pygame</title>
-
-<body bgcolor="#FFFFFF" text="#000000">
-<div align="center">
-<H2>A Newbie Guide to pygame</H2>
-
-<H4>or</H4>
-
-<H2>Things I learned by trial and error so you don't have to.</H2>
-
-<H4>or</H4>
-
-<H2>How I learned to stop worrying and love the blit.</H2>
-</div>
-
-
-<p><a href="http://www.pygame.org/">Pygame</a> is a python wrapper for <a href="http://www.libsdl.org">SDL</a>, written by Pete Shinners. What this means is that, using pygame, you can write games or other multimedia applications in Python that will run unaltered on any of SDL's supported platforms (Windows, Unix, Mac, beOS and others).</p>
-
-<p>Pygame may be easy to learn, but the world of graphics programming can be pretty confusing to the newcomer. I wrote this to try to distill the practical knowledge I've gained over the past year or so of working with pygame, and it's predecessor, pySDL. I've tried to rank these suggestions in order of importance, but how relevent any particular hint is will depend on your own background and the details of your project.</p>
-
-
-<H3>1. Get comfortable working in Python.</H3>
-
-<p>The most important thing is to feel confident using python. Learning something as potentially complicated as graphics programming will be a real chore if you're also unfamiliar with the language you're using. Write a few sizable non-graphical programs in python - parse some text files, write a guessing game or a journal-entry program or something. Get comfortable with string and list manipulation - know how to split, slice and combine strings and lists. Know how <b>import</b> works - try writing a program that is spread across several source files. Write your own functions, and practice manipulating numbers and characters; know how to convert between the two. Get to the point where the syntax for using lists and dictionaries is second-nature - you don't want to have to run to the documentation every time you need to slice a list or sort a set of keys. Resist the temptation to run to a mailing list, comp.lang.python, or irc when you run into trouble. Instead, fire up the interpreter and play with the problem for a few hours. Print out the <a href="http://www.brunningonline.net/simon/python/quick-ref2_0.html">Python 2.0 Quick Reference</a> and keep it by your computer.</p>
-
-<p>This may sound incredibly dull, but the confidence you'll gain through your familiarity with python will work wonders when it comes time to write your game. The time you spend making python code second-nature will be nothing compared to the time you'll save when you're writing real code.</p>
-
-
-<h3>2. Recognize which parts of pygame you really need.</h3>
-
-<p>Looking at the jumble of classes at the top of the pygame Documentation index may be confusing. The important thing is to realize that you can do a great deal with only a tiny subset of functions. Many classes you'll probably never use - in a year, I haven't touched the Channel, Joystick, cursors, Userrect, surfarray or version functions.</p>
-
-
-<H3>3. Know what a surface is</H3>
-
-<p>The most important part of pygame is the surface. Just think of a surface as a blank piece of paper. You can do a lot of things with a surface - you can draw lines on it, fill parts of it with color, copy images to and from it, and set or read individual pixel colors on it. A surface can be any size (within reason) and you can have as many of them as you like (again, within reason). One surface is special - the one you create with <b>pygame.display.set_mode()</b>. This 'display surface' represents the screen; whatever you do to it will appear on the user's screen. You can only have one of these - that's an SDL limitation, not a pygame one.</p>
-
-<P>So how do you create surfaces? As mentioned above, you create the special 'display surface' with <b>pygame.display.set_mode()</b>. You can create a surface that contains an image by using <b>image.load()</b>, or you can make a surface that contains text with <b>font.render()</b>. You can even create a surface that contains nothing at all with <b>Surface()</b>.</p>
-
-<p>Most of the surface functions are not critical. Just learn <b>blit()</b>, <b>fill()</b>, <b>set_at()</b> and <b>get_at()</b>, and you'll be fine.</p>
-
-
-<H3>4. Use surface.convert()</H3>
-
-<p>When I first read the documentation for <b>surface.convert()</b>, I didn't think it was something I had to worry about. &quot;I only use pngs, therefore everything I do will be in the same format. So I don't need convert()&quot;. It turns out I was very, very wrong.</p>
-
-<p>The 'format' that <b>convert()</b> refers to isn't the <i>file</i> format (ie png, jpeg, gif), it's what's called the 'pixel format'. This refers to the particular way that a surface records individual colors in a specific pixel. If the surface format isn't the same as the display format, SDL will have to convert it on-the-fly for every blit - a fairly time-consuming process. Don't worry too much about the explanation; just note that <b>convert()</b> is necessary if you want to get any kind of speed out of your blits.</p>
-
-<p>How do you use convert? Just call it after creating a surface with the <b>image.load()</b> function. Instead of just doing:</p>
-
-<pre>surface = pygame.image.load('foo.png')</pre>
-
-<p>Do:</p>
-
-<pre>surface = pygame.image.load('foo.png').convert()</pre>
-
-<p>It's that easy. You just need to call it once per surface, when you load an image off the disk. You'll be pleased with the results; I see about a 6x increase in blitting speed by calling <b>convert()</b>.</p>
-
-<p>The only times you don't want to use <b>convert()</b> is when you really need to have absolute control over an image's internal format - say you were writing an image conversion program or something, and you needed to ensure that the output file had the same pixel format as the input file. If you're writing a game, you need speed. Use <b>convert()</b>.</p>
-
-
-<h3>5. Dirty rect animation</H3>
-
-<p>The most common cause of inadequate frame rates in pygame programs results from misunderstanding the <b>pygame.display.update()</b> function. With pygame, merely drawing something to the display surface doesn't cause it to appear on the screen - you need to call <b>pygame.display.update()</b>. There are three ways of calling this function:</p>
-
-<OL>
- <LI><b>pygame.display.update()</b> - This updates the whole window (or the whole screen for fullscreen displays).
- <LI><b>pygame.display.flip()</b> - This does the same thing, and will also do the right thing if you're using doublebuffered hardware acceleration, which you're not, so on to...
- <LI><b>pygame.display.update(a rectangle or some list of rectangles)</b> - This updates just the rectangular areas of the screen you specify.
-</OL>
-
-<p>Most people new to graphics programming use the first option - they update the whole screen every frame. The problem is that this is unacceptably slow for most people. Calling <b>update()</b> takes 35 milliseconds on my machine, which doesn't sound like much, until you realize that 1000 / 35 = 28 frames per second <i>maximum</i>. And that's with no game logic, no blits, no input, no AI, nothing. I'm just sitting there updating the screen, and 28 fps is my maximum framerate. Ugh.</p>
-
-<p>The solution is called 'dirty rect animation'. Instead of updating the whole screen every frame, only the parts that changed since the last frame are updated. I do this by keeping track of those rectangles in a list, then calling <b>update(the_dirty_rectangles)</b> at the end of the frame. In detail for a moving sprite, I:</p>
-
-<OL>
- <LI>Blit a piece of the background over the sprite's current location, erasing it.
- <LI>Append the sprite's current location rectangle to a list called dirty_rects.
- <LI>Move the sprite.
- <LI>Draw the sprite at it's new location.
- <LI>Append the sprite's new location to my dirty_rects list.
- <LI>Call <B>display.update(dirty_rects)</b>
-</OL>
-
-<p>The difference in speed is astonishing. Consider that <a href="http://shredwheat.zopesite.com/solarwolf">Solarwolf</a> has dozens of constantly moving sprites updating smoothly, and still has enough time left over to display a parallax starfield in the background, and update that too.</p>
-
-<p>There are two cases where this technique just won't work. The first is where the whole window or screen really is being updated every frame - think of a smooth-scrolling engine like an overhead real-time strategy game or a side-scroller. So what do you do in this case? Well, the short answer is - don't write this kind of game in pygame. The long answer is to scroll in steps of several pixels at a time; don't try to make scrolling perfectly smooth. Your player will appreciate a game that scrolls quickly, and won't notice the background jumping along too much.</p>
-
-<p>A final note - not every game requires high framerates. A strategic wargame could easily get by on just a few updates per second - in this case, the added complexity of dirty rect animation may not be necessary.</p>
-
-
-<h3>6. There is NO rule six.</h3>
-
-
-<h3>7. Hardware surfaces are more trouble than they're worth.</h3>
-
-<p>If you've been looking at the various flags you can use with <b>pygame.display.set_mode()</b>, you may have thought like this: &quot;Hey, HWSURFACE! Well, I want that - who doesn't like hardware acceleration. Ooo... DOUBLEBUF; well, that sounds fast, I guess I want that too!&quot;. It's not your fault; we've been trained by years of 3-d gaming to believe that hardware acceleration is good, and software rendering is slow.</p>
-
-<p>Unfortunately, hardware rendering comes with a long list of drawbacks:</p>
-
-<UL>
- <LI>It only works on some platforms. Windows machines can usually get hardware surfaces if you ask for them. Most other platforms can't. Linux, for example, may be able to provide a hardware surface if X4 is installed, if DGA2 is working properly, and if the moons are aligned correctly. If a hardware surface is unavailable, sdl will silently give you a software surface instead.
-
- <LI>It only works fullscreen.
-
- <LI>It complicates per-pixel access. If you have a hardware surface, you need to Lock the surface before writing or reading individual pixel values on it. If you don't, Bad Things Happen. Then you need to quickly Unlock the surface again, before the OS gets all confused and starts to panic. Most of this process is automated for you in pygame, but it's something else to take into account.
-
- <LI>You lose the mouse pointer. If you specify HWSURFACE (and actually get it), your pointer will usually just vanish (or worse, hang around in a half-there, half-not flickery state). You'll need to create a sprite to act as a manual mouse pointer, and you'll need to worry about pointer acceleration and sensitivity. What a pain.
-
- <LI>It might be slower anyway. Many drivers are not accelerated for the types of drawing that we do, and since everything has to be blitted across the video bus (unless you can cram your source surface into video memory as well), it might end up being slower than software access anyway.
-</UL>
-
-<p>Hardware rendering has it's place. It works pretty reliably under Windows, so if you're not interested in cross-platform performance, it may provide you with a substantial speed increase. However, it comes at a cost - increased headaches and complexity. It's best to stick with good old reliable SWSURFACEs until you're sure you know what you're doing.</p>
-
-
-<h3>8. Don't get distracted by side issues.</h3>
-
-<p>Sometimes, new game programmers spend too much time worrying about issues that aren't really critical to their game's success. The desire to get secondary issues 'right' is understandable, but early in the process of creating a game, you cannot even know what the important questions are, let alone what answers you should choose. The result can be a lot of needless prevarication.</p>
-
-<p>For example, consider the question of how to organize your graphics files. Should each frame have its own graphics file, or each sprite? Perhaps all the graphics should be zipped up into one archive? A great deal of time has been wasted on a lot of projects, asking these questions on mailing lists, debating the answers, profiling, etc, etc. This is a secondary issue; any time spent discussing it should have been spent coding the actual game.</p>
-
-<p>The insight here is that it is far better to have a 'pretty good' solution that was actually implemented, than a perfect solution that you never got around to writing.</p>
-
-
-<h3>9. Rects are your friends.</h3>
-
-<p>Pete Shinners' wrapper may have cool alpha effects and fast blitting speeds, but I have to admit my favorite part of pygame is the lowly Rect class. A rect is simply a rectangle - defined only by the position of its top left corner, its width, and its height. Many pygame functions take rects as arguments, and they also take 'rectstyles', a sequence that has the same values as a rect. So if I need a rectangle that defines the area between 10, 20 and 40, 50, I can do any of the following:</p>
-
-<pre>
-rect = pygame.Rect(10, 20, 30, 30)
-rect = pygame.Rect((10, 20, 30, 30))
-rect = pygame.Rect((10, 20), (30, 30))
-rect = (10, 20, 30, 30)
-rect = ((10, 20, 30, 30))
-</pre>
-
-<p>If you use any of the first three versions, however, you get access to Rect's utility functions. These include functions to move, shrink and inflate rects, find the union of two rects, and a variety of collision-detection functions.</p>
-
-<p>For example, suppose I'd like to get a list of all the sprites that contain a point (x, y) - maybe the player clicked there, or maybe that's the current location of a bullet. It's simple if each sprite has a .rect member - I just do:</p>
-
-<pre>
-sprites_clicked = [sprite for sprite in all_my_sprites_list if sprite.rect.collidepoint(x, y)]
-</pre>
-
-<p>Rects have no other relation to surfaces or graphics functions, other than the fact that you can use them as arguments. You can also use them in places that have nothing to do with graphics, but still need to be defined as rectangles. Every project I discover a few new places to use rects where I never thought I'd need them.</p>
-
-
-<h3>10. Don't bother with pixel-perfect collision detection.</h3>
-
-<p>So you've got your sprites moving around, and you need to know whether or not they're bumping into one another. It's tempting to write something like the following:
-
-<OL>
- <LI>Check to see if the rects are in collision. If they aren't, ignore them.
- <LI>For each pixel in the overlapping area, see if the corresponding pixels from both sprites are opaque. If so, there's a collision.
-</OL>
-
-<p>There are other ways to do this, with ANDing sprite masks and so on, but any way you do it in pygame, it's probably going to be too slow. For most games, it's probably better just to do 'sub-rect collision' - create a rect for each sprite that's a little smaller than the actual image, and use that for collisions instead. It will be much faster, and in most cases the player won't notice the inprecision.</p>
-
-
-<h3>11. Managing the event subsystem</h3>
-
-<p>Pygame's event system is kind of tricky. There are actually two different ways to find out what an input device (keyboard, mouse or joystick) is doing.</p>
-
-<p>The first is by directly checking the state of the device. You do this by calling, say, <b>pygame.mouse.get_pos()</b> or <b>pygame.key.get_pressed()</b>. This will tell you the state of that device <i>at the moment you call the function</i>.</p>
-
-<p>The second method uses the SDL event queue. This queue is a list of events - events are added to the list as they're detected, and they're deleted from the queue as they're read off.</p>
-
-<p>There are advantages and disadvantages to each system. State-checking (system 1) gives you precision - you know exactly when a given input was made - if <b>mouse.get_pressed([0])</b> is 1, that means that the left mouse button is down <i>right at this moment</i>. The event queue merely reports that the mouse was down at some time in the past; if you check the queue fairly often, that can be ok, but if you're delayed from checking it by other code, input latency can grow. Another advantage of the state-checking system is that it detects "chording" easily; that is, several states at the same time. If you want to know whether the t and f keys are down at the same time, just check:</p>
-
-<pre>
-if (key.get_pressed[K_t] and key.get_pressed[K_f]):
- print "Yup!"
-</pre>
-
-<p>In the queue system, however, each keypress arrives in the queue as a completely separate event, so you'd need to remember that the t key was down, and hadn't come up yet, while checking for the f key. A little more complicated.</p>
-
-<p>The state system has one great weakness, however. It only reports what the state of the device is at the moment it's called; if the user hits a mouse button then releases it just before a call to <b>mouse.get_pressed()</b>, the mouse button will return 0 - <b>get_pressed()</b> missed the mouse button press completely. The two events, MOUSEBUTTONDOWN and MOUSEBUTTONUP, will still be sitting in the event queue, however, waiting to be retrieved and processed.</p>
-
-<p>The lesson is: choose the system that meets your requirements. If you don't have much going on in your loop - say you're just sitting in a '<b>while 1</b>' loop, waiting for input, use <b>get_pressed()</b> or another state function; the latency will be lower. On the other hand, if every keypress is crucial, but latency isn't as important - say your user is typing something in an editbox, use the event queue. Some keypresses may be slightly late, but at least you'll get them all.</p>
-
-<p>A note about <b>event.poll()</b> vs. <b>wait()</b> - <b>poll()</b> may seem better, since it doesn't block your program from doing anything while it's waiting for input - <b>wait()</b> suspends the program until an event is received. However, <b>poll()</b> will consume 100% of available cpu time while it runs, and it will fill the event queue with NOEVENTS. Use <b>set_blocked()</b> to select just those event types you're interested in - your queue will be much more manageable.</p>
-
-
-<h3>12. Colorkey vs. Alpha</h3>
-
-<p>There's a lot of confusion around these two techniques, and much of it comes from the terminology used.</p>
-
-<p>'Colorkey blitting' involves telling pygame that all pixels of a certain color in a certain image are transparent instead of whatever color they happen to be. These transparent pixels are not blitted when the rest of the image is blitted, and so don't obscure the background. This is how we make sprites that aren't rectangular in shape. Simply call <b>surface.set_colorkey(color)</b>, where color is a rgb tuple - say (0,0,0). This would make every pixel in the source image transparent instead of black.</p>
-
-<p>'Alpha' is different, and it comes in two flavors. 'Image alpha' applies to the whole image, and is probably what you want. Properly known as 'translucency', alpha causes each pixel in the source image to be only <i>partially</i> opaque. For example, if you set a surface's alpha to 192 and then blitted it onto a background, 3/4 of each pixel's color would come from the source image, and 1/4 from the background. Alpha is measured from 255 to 0, where 0 is completely transparent, and 255 is completely opaque. Note that colorkey and alpha blitting can be combined - this produces an image that is fully transparent in some spots, and semi-transparent in others.</p>
-
-<p>'Per-pixel alpha' is the other flavor of alpha, and it's more complicated. Basically, each pixel in the source image has its own alpha value, from 0 to 255. Each pixel, therefore, can have a different opacity when blitted onto a background. This type of alpha can't be mixed with colorkey blitting, and it overrides per-image alpha. Per-pixel alpha is rarely used in games, and to use it you have to save your source image in a graphic editor with a special <i>alpha channel</i>. It's complicated - don't use it yet.</p>
-
-
-<h3>13. Do things the pythony way.</h3>
-
-<p>A final note (this isn't the least important one; it just comes at the end). Pygame is a pretty lightweight wrapper around SDL, which is in turn a pretty lightweight wrapper around your native OS graphics calls. Chances are pretty good that if your code is still slow, and you've done the things I've mentioned above, then the problem lies in the way you're addressing your data in python. Certain idioms are just going to be slow in python no matter what you do. Luckily, python is a very clear language - if a piece of code looks awkward or unweildy, chances are its speed can be improved, too. Read over <a href="http://musi-cal.mojam.com/~skip/python/fastpython.html">Python Performance Tips</a> for some great advice on how you can improve the speed of your code. That said, premature optimisation is the root of all evil; if it's just not fast enough, don't torture the code trying to make it faster. Some things are just not meant to be :)</p>
-
-
-<p>There you go. Now you know practically everything I know about using pygame. Now, go write that game!</p>
-
-<hr>
-
-<p>David Clark is an avid pygame user and the editor of the Pygame Code Repository, a showcase for community-submitted python game code. He is also the author of Twitch, an entirely average pygame arcade game.</p>
-
-</body>
-</html>
diff --git a/pygame/docs/tut/surfarray/SurfarrayIntro.html b/pygame/docs/tut/surfarray/SurfarrayIntro.html
deleted file mode 100755
index 8fb7c12..0000000
--- a/pygame/docs/tut/surfarray/SurfarrayIntro.html
+++ /dev/null
@@ -1,483 +0,0 @@
-<!--
-TUTORIAL:Introduction to the surfarray module
---><html><head>
-
-<title>Pygame Tutorials - Surfarray Introduction</title>
-</head><body>
-
-<h1 align=center><font size=-1>Pygame Tutorials</font><br>Surfarray Introduction</h1>
-<h2 align=center>by Pete Shinners<br><font size=-1>pete@shinners.org</font></h2>
-<h3 align=center>Revision 1.02, Sep 7, 2001</h3>
-<br><br>
-
-
-<h2>Introduction</h2>
-
-This tutorial will attempt to introduce users to both Numeric and the pygame
-Surfarray module. To beginners, the code that uses surfarray can be quite
-intimidating. But actually there are only a few concepts to understand and
-you will be up and running. Using the surfarray module, it becomes possible
-to perform pixel level operations from straight python code. The performance
-can become quite close to the level of doing the code in C.
-<br>&nbsp;<br>
-You may just want to jump down to the <i>"Examples"</i> section to get an
-idea of what is possible with this module, then start at the beginning here
-to work your way up.
-<br>&nbsp;<br>
-Now I won't try to fool you into thinking everything is very easy. To get
-more advanced effects by modifying pixel values is very tricky. Just mastering
-Numeric Python takes a lot of learning. In this tutorial I'll be sticking with
-the basics and using a lot of examples in an attempt to plant seeds of wisdom.
-After finishing the tutorial you should have a basic handle on how the surfarray
-works.
-
-
-<br>
-<h2>Numeric Python</h2>
-If you do not have the python Numeric
-package installed, you will need to do that now. You can download the package
-from the <a href=http://sourceforge.net/project/showfiles.php?group_id=1369>
-Numeric Downloads Page</a>. To make sure Numeric is working for you, you should
-get something like this from the interactive python prompt.
-<br><table bgcolor=#ddcc88><tr><td><pre>
->>> <b>from Numeric import *</b> <i>#import numeric</i>
->>> <b>a = array((1,2,3,4,5))</b> <i>#create an array</i>
->>> <b>a</b> <i>#display the array</i>
-array([1, 2, 3, 4, 5])
->>> <b>a[2]</b> <i>#index into the array</i>
-3
->>> <b>a*2</b> <i>#new array with twiced values</i>
-array([ 2, 4, 6, 8, 10])
-</td></tr></table><br>
-
-As you can see, the Numeric module gives us a new data type, the <i>array</i>.
-This object holds an array of fixed size, and all values inside are of the same
-type. The arrays can also be multidimensional, which is how we will use them
-with images. There's a bit more to it than this, but it is enough to get us
-started.
-<br>&nbsp;<br>
-If you look at the last command above, you'll see that mathematical operations
-on Numeric arrays apply to all values in the array. This is called "elementwise
-operations". These arrays can also be sliced like normal lists. The slicing
-syntax is the same as used on standard python objects. <i>(so study up if you
-need to :] )</i>.
-Here are some more examples of working with arrays.
-
-<br><table bgcolor=#ddcc88><tr><td><pre>
->>> <b>len(a)</b> <i>#get array size</i>
-5
->>> <b>a[2:]</b> <i>#elements 2 and up</i>
-array([3, 4, 5])
->>> <b>a[:-2]</b> <i>#all except last 2</i>
-array([1, 2, 3])
->>> <b>a[2:] + a[:-2]</b> <i>#add first and last</i>
-array([4, 6, 8])
->>> <b>array((1,2,3)) + array((3,4))</b> <i>#add arrays of wrong sizes</i>
-Traceback (innermost last):
- File "&lt;interactive input&gt;", line 1, in ?
-ValueError: frames are not aligned
-</td></tr></table><br>
-
-We get an error on the last commend, because we try add together two arrays
-that are different sizes. In order for two arrays two operate with each other,
-including comparisons and assignment, they must have the same dimensions. It is
-very important to know that the new arrays created from slicing the original all
-reference the same values. So changing the values in a slice also changes the
-original values. It is important how this is done.
-<br><table bgcolor=#ddcc88><tr><td><pre>
->>> <b>a</b> <i>#show our starting array</i>
-array([1, 2, 3, 4, 5])
->>> <b>aa = a[1:3]</b> <i>#slice middle 2 elements</i>
->>> <b>aa</b> <i>#show the slice</i>
-array([2, 3])
->>> <b>aa[1] = 13</b> <i>#chance value in slice</i>
->>> <b>a</b> <i>#show change in original</i>
-array([ 1, 2, 13, 4, 5])
->>> <b>aaa = array(a)</b> <i>#make copy of array</i>
->>> <b>aaa</b> <i>#show copy</i>
-array([ 1, 2, 13, 4, 5])
->>> <b>aaa[1:4] = 0</b> <i>#set middle values to 0</i>
->>> <b>aaa</b> <i>#show copy</i>
-array([1, 0, 0, 0, 5])
->>> <b>a</b> <i>#show original again</i>
-array([ 1, 2, 13, 4, 5])
-</td></tr></table><br>
-
-
-Now we will look at small arrays with two
-dimensions. Don't be too worried, getting started it is the same as having a
-two dimensional tuple <i>(a tuple inside a tuple)</i>. Let's get started with
-two dimensional arrays.
-
-<br><table bgcolor=#ddcc88><tr><td><pre>
->>> <b>row1 = (1,2,3)</b> <i>#create a tuple of vals</i>
->>> <b>row2 = (3,4,5)</b> <i>#another tuple</i>
->>> <b>(row1,row2)</b> <i>#show as a 2D tuple</i>
-((1, 2, 3), (3, 4, 5))
->>> <b>b = array((row1, row2))</b> <i>#create a 2D array</i>
->>> <b>b</b> <i>#show the array</i>
-array([[1, 2, 3],
- [3, 4, 5]])
->>> <b>array(((1,2),(3,4),(5,6)))</b> <i>#show a new 2D array</i>
-array([[1, 2],
- [3, 4],
- [5, 6]])
-</td></tr></table><br>
-
-Now with this two
-dimensional array <i>(from now on as "2D")</i> we can index specific values
-and do slicing on both dimensions. Simply using a comma to separate the indices
-allows us to lookup/slice in multiple dimensions. Just using "<b>:</b>" as an
-index <i>(or not supplying enough indices)</i> gives us all the values in
-that dimension. Let's see how this works.
-
-<br><table bgcolor=#ddcc88><tr><td><pre>
->>> <b>b</b> <i>#show our array from above</i>
-array([[1, 2, 3],
- [3, 4, 5]])
->>> <b>b[0,1]</b> <i>#index a single value</i>
-2
->>> <b>b[1,:]</b> <i>#slice second row</i>
-array([3, 4, 5])
->>> <b>b[1]</b> <i>#slice second row (same as above)</i>
-array([3, 4, 5])
->>> <b>b[:,2]</b> <i>#slice last column</i>
-array([3, 5])
->>> <b>b[:,:2]</b> <i>#slice into a 2x2 array</i>
-array([[1, 2],
- [3, 4]])
-</td></tr></table><br>
-
-Ok, stay with me here, this is about as hard as it gets. When using Numeric
-there is one more feature to slicing. Slicing arrays also allow you to specify
-a <i>slice increment</i>. The syntax for a slice with increment is
-<b>start_index : end_index : increment</b>.
-
-<br><table bgcolor=#ddcc88><tr><td><pre>
->>> <b>c = arange(10)</b> #like range, but makes an array
->>> <b>c</b> #show the array
-array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
->>> <b>c[1:6:2]</b> #slice odd values from 1 to 6
-array([1, 3, 5])
->>> <b>c[4::4]</b> #slice every 4th val starting at 4
-array([4, 8])
->>> <b>c[8:1:-1]</b> #slice 1 to 8, reversed
-array([8, 7, 6, 5, 4, 3, 2])
-</td></tr></table><br>
-
-Well that is it. There's enough information there to get you started using
-Numeric with the surfarray module. There's certainly a lot more to Numeric, but
-this is only an introduction. Besides, we want to get on to the fun stuff,
-correct?
-
-
-
-
-
-<br>&nbsp;<br>
-<h2>Import Surfarray</h2>
-
-In order to use the surfarray module we need to import it. Since both surfarray
-and Numeric are optional components for pygame, it is nice to make sure they
-import correctly before using them. In these examples I'm going to import
-Numeric into a variable named <i>N</i>. This will let you know which functions
-I'm using are from the Numeric package. <i>(and is a lot shorter than typing
-Numeric before each function)</i>
-
-
-<br><table bgcolor=#ddcc88><tr><td><pre>
-try:
- import Numeric as N
- import pygame.surfarray as surfarray
-except ImportError:
- raise ImportError, "Numeric and Surfarray are required."
-</td></tr></table><br>
-
-<br>&nbsp;<br>
-<h2>Surfarray Introduction</h2>
-
-There are two main types of functions in surfarray. One set of functions for
-creating an array that is a copy of a surface pixel data. The other functions
-create a referenced copy of the array pixel data, so that changes to the array
-directly affect the original surface. There are other functions that allow you
-to access any per-pixel alpha values as arrays along with a few other helpful
-functions. We will look at these other functions later on.
-<br>&nbsp;<br>
-When working with these surface arrays, there are two ways of representing the
-pixel values. First, they can be represented as mapped integers. This type of
-array is a simple 2D array with a single integer representing the surface's
-mapped color value. This type of array is good for moving parts of an image
-around. The other type of array uses three RGB values to represent each pixel
-color. This type of array makes it extremely simple to do types of effects that
-change the color of each pixel. This type of array is also a little trickier to
-deal with, since it is essentially a 3D numeric array. Still, once you get your
-mind into the right mode, it is not much harder than using the normal 2D arrays.
-<br>&nbsp;<br>
-The Numeric module uses a machine's natural number types to represent the data
-values, so a Numeric array can consist of integers that are 8bits, 16bits, and 32bits.
-<i>(the arrays can also use other types like floats and doubles, but for our image
-manipulation we mainly need to worry about the integer types)</i>.
-Because of this limitation of integer sizes, you must take a little extra care
-that the type of arrays that reference pixel data can be properly mapped to a
-proper type of data. The functions create these arrays from surfaces are:
-<dl>
-<dt><b>surfarray.pixels2d(surface)</b></dt><dd>Creates a 2D array <i>(integer pixel
-values)</i> that reference the original surface data. This will work for all
-surface formats except 24bit.</dd>
-
-<dt><b>surfarray.array2d(surface)</b><dd></dd>Creates a 2D array <i>(integer pixel
-values)</i> that is copied from any type of surface.</dt>
-
-<dt><b>surfarray.pixels3d(surface)</b></dt><dd>Creates a 3D array <i>(RGB pixel
-values)</i> that reference the original surface data. This will only work
-on 24bit and 32bit surfaces that have RGB or BGR formatting.</dd>
-
-<dt><b>surfarray.array3d(surface)</b><dd></dd>Creates a 3D array <i>(RGB pixel
-values)</i> that is copied from any type of surface.</dt>
-
-</dl>
-Here is a small chart that might better illustrate what types of functions
-should be used on which surfaces. As you can see, both the arrayXD functions
-will work with any type of surface.
-<table bgcolor=#ddcc88 cellpadding=8 align=center>
-<tr align=center><td></td><th>32bit</th><th>24bit</th><th>16bit</th><th>8bit(c-map)</th></tr>
-<tr align=center><th>pixel2d</th><td>yes</td><td></td><td>yes</td><td>yes</td></tr>
-<tr align=center><th>array2d</th><td>yes</td><td>yes</td><td>yes</td><td>yes</td></tr>
-<tr align=center><th>pixel3d</th><td>yes</td><td>yes</td><td></td><td></td></tr>
-<tr align=center><th>array3d</th><td>yes</td><td>yes</td><td>yes</td><td>yes</td></tr>
-</table>
-
-
-<br>&nbsp;<br>
-<h2>Examples</h2>
-
-With this information, we are equipped to start trying things with surface
-arrays. The following are short little demonstrations that create a Numeric
-array and display them in pygame. These different tests are found in the
-<i>arraydemo.py</i> example. There is a simple function named <i>surfdemo_show</i>
-that displays an array on the screen.
-
-<br>&nbsp;<br><table border=1 cellpadding=5>
-
-<tr><td><img align=left src=allblack.jpg alt=allblack width=128 height=128>
-<table bgcolor=#ddcc88><tr><td><pre>
-allblack = N.zeros((128, 128))
-surfdemo_show(allblack, 'allblack')
-</td></tr></table>
-Our first example creates an all black array. Whenever you need
-to create a new numeric array of a specific size, it is best to use the
-<b>zeros</b> function. Here we create a 2D array of all zeros and display
-it.
-</td></tr>
-
-<tr><td><img align=left src=striped.jpg alt=striped width=128 height=128>
-<table bgcolor=#ddcc88><tr><td><pre>
-striped = N.zeros((128, 128, 3))
-striped[:] = (255, 0, 0)
-striped[:,::3] = (0, 255, 255)
-surfdemo_show(striped, 'striped')
-</td></tr></table>
-Here we are dealing with a 3D array. We start by creating an all red image.
-Then we slice out every third row and assign it to a blue/green color. As you
-can see, we can treat the 3D arrays almost exactly the same as 2D arrays, just
-be sure to assign them 3 values instead of a single mapped integer.
-<i>(grr, jpg kind of wrecked the colors)</i>
-</td></tr>
-
-<tr><td><img align=left src=imgarray.jpg alt=imgarray width=200 height=128>
-<table bgcolor=#ddcc88><tr><td><pre>
-imgsurface = pygame.image.load('surfarray.jpg')
-imgarray = surfarray.array2d(imgsurface)
-surfdemo_show(imgarray, 'imgarray')
-</td></tr></table>
-Here we load an image with the image module, then convert it to a 2D
-array of integers. We will use this image in the rest of the samples.
-</td></tr>
-
-<tr><td><img align=left src=flipped.jpg alt=flipped width=200 height=128>
-<table bgcolor=#ddcc88><tr><td><pre>
-flipped = imgarray[:,::-1]
-surfdemo_show(flipped, 'flipped')
-</td></tr></table>
-Here we flip the image vertically. All we need to do is take the original
-image array and slice it using a negative increment.
-</td></tr>
-
-<tr><td><img align=left src=scaledown.jpg alt=scaledown width=64 height=64>
-<table bgcolor=#ddcc88><tr><td><pre>
-scaledown = imgarray[::2,::2]
-surfdemo_show(scaledown, 'scaledown')
-</td></tr></table>
-Based on the last example, scaling an image down is pretty logical. We just
-slice out all the pixels using an increment of 2 vertically and horizontally.
-</td></tr>
-
-
-<tr><td><img align=left src=scaleup.jpg alt=scaleup width=400 height=256>
-<table bgcolor=#ddcc88><tr><td><pre>
-size = N.array(imgarray.shape)*2
-scaleup = N.zeros(size)
-scaleup[::2,::2] = imgarray
-scaleup[1::2,::2] = imgarray
-scaleup[:,1::2] = scaleup[:,::2]
-surfdemo_show(scaleup, 'scaleup')
-</td></tr></table>
-Scaling the image up is a little more work, but is similar to the previous
-scaling down, we do it all with slicing. First we create an array that is
-double the size of our original. First we copy the original array into every
-other pixel of the new array. Then we do it again for every other pixel doing
-the odd columns. At this point we have the image scaled properly going across,
-but every other row is black, so we simply need to copy each row to the one
-underneath it. Then we have an image doubled in size.
-</td></tr>
-
-
-<tr><td><img align=left src=redimg.jpg alt=redimg width=200 height=128>
-<table bgcolor=#ddcc88><tr><td><pre>
-rgbarray = surfarray.array3d(imgsurface)
-redimg = N.array(rgbarray)
-redimg[:,:,1:] = 0
-surfdemo_show(redimg, 'redimg')
-</td></tr></table>
-Now we are getting back to using 3D arrays to change the colors. Here we
-simple make a 3D array from the original loaded image and set all the values
-in green and blue to zero. This leaves us with just the red channel.
-</td></tr>
-
-
-<tr><td><img align=left src=soften.jpg alt=soften width=200 height=128>
-<table bgcolor=#ddcc88><tr><td><pre>
-soften = N.array(rgbarray)
-soften[1:,:] += rgbarray[:-1,:]*8
-soften[:-1,:] += rgbarray[1:,:]*8
-soften[:,1:] += rgbarray[:,:-1]*8
-soften[:,:-1] += rgbarray[:,1:]*8
-soften /= 33
-surfdemo_show(soften, 'soften')
-</td></tr></table>
-Here we perform a 3x3 convolution filter that will soften our image.
-It looks like a lot of steps here, but what we are doing is shifting
-the image 1 pixel in each direction and adding them all together (with some
-multiplication for weighting). Then average all the values. It's no gaussian,
-but it's fast.
-</td></tr>
-
-
-<tr><td><img align=left src=xfade.jpg alt=xfade width=200 height=128>
-<table bgcolor=#ddcc88><tr><td><pre>
-src = N.array(rgbarray)
-dest = N.zeros(rgbarray.shape)
-dest[:] = 20, 50, 100
-diff = (dest - src) * 0.50
-xfade = src + diff.astype(N.Int)
-surfdemo_show(xfade, 'xfade')
-</td></tr></table>
-Lastly, we are cross fading between the original image and a solid blue-ish
-image. Not exciting, but the dest image could be anything, and changing the 0.50
-multiplier will let you choose any step in a linear crossfade between two images.
-</td></tr>
-</table><br>
-
-Hopefully by this point you are starting to see how surfarray can be used to
-perform special effects and transformations that are only possible at the pixel
-level. At the very least, you can use the surfarray to do a lot of Surface.set_at()
-Surface.get_at() type operations very quickly. But don't think you are finished
-yet, there is still much to learn.
-
-
-<br>&nbsp;<br>
-<h2>Surface Locking</h2>
-Like the rest of pygame, surfarray will lock any Surfaces it needs to
-automatically when accessing pixel data. There is one extra thing to be aware
-of though. When creating the <i>pixel</i> arrays, the original surface will
-be locked during the lifetime of that pixel array. This is important to remember.
-Be sure to <i>"del"</i> the pixel array or let it go out of scope <i>(ie, when
-the function returns, etc)</i>.
-<br>&nbsp;<br>
-Also be aware that you really don't want to be doing much <i>(if any)</i>
-direct pixel access on hardware surfaces <i>(HWSURFACE)</i>. This is because
-the actual surface data lives on the graphics card, and transferring pixel
-changes over the PCI/AGP bus is not fast.
-
-
-
-<br>&nbsp;<br>
-<h2>Transparency</h2>
-The surfarray module has several methods for accessing a Surface's alpha/colorkey
-values. None of the alpha functions are effected by overal transparency of a
-Surface, just the pixel alpha values. Here's the list of those functions.
-<dl>
-<dt><b>surfarray.pixels_alpha(surface)</b></dt><dd>Creates a 2D array <i>(integer
-pixel values)</i> that references the original surface alpha data. This will only
-work on 32bit images with an 8bit alpha component.</dd>
-
-<dt><b>surfarray.array_alpha(surface)</b><dd></dd>Creates a 2D array <i>(integer pixel
-values)</i> that is copied from any type of surface. If the surface has no alpha
-values, the array will be fully opaque values <i>(255)</i>.</dt>
-
-<dt><b>surfarray.array_colorkey(surface)</b><dd></dd>Creates a 2D array
-<i>(integer pixel values)</i> that is set to transparent <i>(0)</i> wherever
-that pixel color matches the Surface colorkey.</dt>
-
-</dl>
-
-
-<br>&nbsp;<br>
-<h2>Other Surfarray Functions</h2>
-There are only a few other functions available in surfarray. You can get a better
-list with more documentation on the
-<a href="../../ref/surfarray.html">surfarrayreference page</a>.
-There is one very useful function though.
-<dl>
-<dt><b>surfarray.blit_array(surface, array)</b></dt><dd>This will transfer
-any type of 2D or 3D surface array onto a Surface of the same dimensions.
-This surfarray blit will generally be faster than assigning an array to a
-referenced pixel array. Still, it should not be as fast as normal Surface
-blitting, since those are very optimized.
-</dd>
-</dl>
-
-
-
-<br>&nbsp;<br>
-<h2>More Advanced Numeric</h2>
-There's a couple last things you should know about Numeric arrays. When dealing
-with very large arrays, like the kind that are 640x480 big, there are some extra
-things you should be careful about. Mainly, while using the operators like + and
-* on the arrays makes them easy to use, it is also very expensive on big arrays.
-These operators must make new temporary copies of the array, that are then
-usually copied into another array. This can get very time consuming. Fortunately,
-all the Numeric operators come with special functions that can perform the
-operation <i>"in place"</i>. For example, you would want to replace
-<b>screen[:] = screen + brightmap</b> with the much faster <b>add(screen,
-brightmap, screen)</b>. Anyways, you'll want to read up on the Numeric UFunc
-documentation for more about this. It is important when dealing with the arrays.
-<br>&nbsp;<br>
-When dealing with the 16bit pixel arrays, Numeric doesn't offer an unsigned 16bit
-datatype, so some values will be treated as signed. Hopefully this does not
-present a problem.
-<br>&nbsp;<br>
-Another thing to be aware of when working with Numeric arrays is the datatype
-of the array. Some of the arrays (especially the mapped pixel type) often return
-arrays with an unsigned 8bit value. These arrays will easily overflow if you are
-not careful. Numeric will use the same coercion that you find in C programs, so
-mixing an operation with 8bit numbers and 32bit numbers will give a result as
-32bit numbers. You can convert the datatype of an array, but definitely be
-aware of what types of arrays you have, if Numeric gets in a situation where
-precision would be ruined, it will raise an exception.
-<br>&nbsp;<br>
-Lastly, be aware that when assigning values into the 3D arrays, they must be
-between 0 and 255, or you will get some undefined truncating.
-
-
-<br>&nbsp;<br>
-<h2>Graduation</h2>
-Well there you have it. My quick primer on Numeric python and surfarray.
-Hopefully now you see what is possible, and even if you never use them for
-yourself, you do not have to be afraid when you see code that does. Look into
-the vgrade example for more numeric array action. There are also some <i>"flame"</i>
-demos floating around that use surfarray to create a realtime fire effect.
-<br>&nbsp;<br>
-Best of all, try some things on your own. Take it slow at first and build up,
-I've seen some great things with surfarray already like radial gradients and
-more. Good Luck.
diff --git a/pygame/docs/tut/surfarray/allblack.jpg b/pygame/docs/tut/surfarray/allblack.jpg
deleted file mode 100755
index d7d6c79..0000000
--- a/pygame/docs/tut/surfarray/allblack.jpg
+++ /dev/null
Binary files differ
diff --git a/pygame/docs/tut/surfarray/flipped.jpg b/pygame/docs/tut/surfarray/flipped.jpg
deleted file mode 100755
index 8558d01..0000000
--- a/pygame/docs/tut/surfarray/flipped.jpg
+++ /dev/null
Binary files differ
diff --git a/pygame/docs/tut/surfarray/imgarray.jpg b/pygame/docs/tut/surfarray/imgarray.jpg
deleted file mode 100755
index 112b272..0000000
--- a/pygame/docs/tut/surfarray/imgarray.jpg
+++ /dev/null
Binary files differ
diff --git a/pygame/docs/tut/surfarray/redimg.jpg b/pygame/docs/tut/surfarray/redimg.jpg
deleted file mode 100755
index 7d81b24..0000000
--- a/pygame/docs/tut/surfarray/redimg.jpg
+++ /dev/null
Binary files differ
diff --git a/pygame/docs/tut/surfarray/scaledown.jpg b/pygame/docs/tut/surfarray/scaledown.jpg
deleted file mode 100755
index c4cc50b..0000000
--- a/pygame/docs/tut/surfarray/scaledown.jpg
+++ /dev/null
Binary files differ
diff --git a/pygame/docs/tut/surfarray/scaleup.jpg b/pygame/docs/tut/surfarray/scaleup.jpg
deleted file mode 100755
index 58b1385..0000000
--- a/pygame/docs/tut/surfarray/scaleup.jpg
+++ /dev/null
Binary files differ
diff --git a/pygame/docs/tut/surfarray/soften.jpg b/pygame/docs/tut/surfarray/soften.jpg
deleted file mode 100755
index e2fe88b..0000000
--- a/pygame/docs/tut/surfarray/soften.jpg
+++ /dev/null
Binary files differ
diff --git a/pygame/docs/tut/surfarray/striped.jpg b/pygame/docs/tut/surfarray/striped.jpg
deleted file mode 100755
index dbd60a8..0000000
--- a/pygame/docs/tut/surfarray/striped.jpg
+++ /dev/null
Binary files differ
diff --git a/pygame/docs/tut/surfarray/xfade.jpg b/pygame/docs/tut/surfarray/xfade.jpg
deleted file mode 100755
index 5885a0d..0000000
--- a/pygame/docs/tut/surfarray/xfade.jpg
+++ /dev/null
Binary files differ
diff --git a/pygame/docs/tut/tom/MakeGames.html b/pygame/docs/tut/tom/MakeGames.html
deleted file mode 100755
index 67e8e56..0000000
--- a/pygame/docs/tut/tom/MakeGames.html
+++ /dev/null
@@ -1,455 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <!--
-TUTORIAL:Tom Chance's Making Games Tutorial
--->
-<HTML
-><HEAD
-><TITLE
->Making games with Pygame</TITLE
-><META
-NAME="GENERATOR"
-CONTENT="Modular DocBook HTML Stylesheet Version 1.7"><LINK
-REL="NEXT"
-TITLE="Revision: Pygame fundamentals"
-HREF="games2.html"> <style type="text/stylesheet">
- <!--
- PRE.PROGRAMLISTING { background-color: #EEEEEE; border-color: #333333; border-style: solid; border-width: thin } -->
- </style></HEAD
->
-<BODY
-CLASS="ARTICLE"
-BGCOLOR="#FFFFFF"
-TEXT="#000000"
-LINK="#0000FF"
-VLINK="#840084"
-ALINK="#0000FF"
->
-
-<DIV
-CLASS="ARTICLE"
-><DIV
-CLASS="TITLEPAGE"
-><H1
-CLASS="TITLE"
-><A
-NAME="AEN2"
-></A
->Making games with Pygame</H1
-><DIV
-CLASS="REVHISTORY"
-><TABLE
-WIDTH="100%"
-BORDER="0"
-><TR
-><TH
-ALIGN="LEFT"
-VALIGN="TOP"
-COLSPAN="3"
-><B
->Revision History</B
-></TH
-></TR
-><TR
-><TD
-ALIGN="LEFT"
->Revision 1.1</TD
-><TD
-ALIGN="LEFT"
->5th March 2003</TD
-><TD
-ALIGN="LEFT"
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-COLSPAN="3"
->Corrections, included full code in 6.3</TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
->Revision 1.0</TD
-><TD
-ALIGN="LEFT"
->2nd March 2003</TD
-><TD
-ALIGN="LEFT"
-></TD
-></TR
-><TR
-><TD
-ALIGN="LEFT"
-COLSPAN="3"
->First release</TD
-></TR
-></TABLE
-></DIV
-></DIV
->
-
-<DIV>
-<p>The most current version of this document will always be found at <a href="http://tom.acrewoods.net/writing/pygame">http://tom.acrewoods.net/writing/pygame</a>.<br>
-<HR></DIV>
-<DIV
-CLASS="TOC"
-><DL
-><DT
-><B
->Table of Contents</B
-></DT
-><DT
->1. <A
-HREF="MakeGames.html#AEN12"
->Introduction</A
-></DT
-><DD
-><DL
-><DT
->1.1. <A
-HREF="MakeGames.html#AEN44"
->A note on coding styles</A
-></DT
-></DL
-></DD
-><DT
->2. <A
-HREF="games2.html"
->Revision: Pygame fundamentals</A
-></DT
-><DD
-><DL
-><DT
->2.1. <A
-HREF="games2.html#AEN51"
->The basic Pygame game</A
-></DT
-><DT
->2.2. <A
-HREF="games2.html#AEN59"
->Basic Pygame objects</A
-></DT
-><DT
->2.3. <A
-HREF="games2.html#AEN68"
->Blitting</A
-></DT
-><DT
->2.4. <A
-HREF="games2.html#AEN73"
->The event loop</A
-></DT
-><DT
->2.5. <A
-HREF="games2.html#AEN79"
->Ta-da!</A
-></DT
-></DL
-></DD
-><DT
->3. <A
-HREF="games3.html"
->Kicking things off</A
-></DT
-><DD
-><DL
-><DT
->3.1. <A
-HREF="games3.html#AEN87"
->The first lines, and loading modules</A
-></DT
-><DT
->3.2. <A
-HREF="games3.html#AEN91"
->Resource handling functions</A
-></DT
-></DL
-></DD
-><DT
->4. <A
-HREF="games4.html"
->Game object classes</A
-></DT
-><DD
-><DL
-><DT
->4.1. <A
-HREF="games4.html#AEN117"
->A simple ball class</A
-></DT
-><DD
-><DL
-><DT
->4.1.1. <A
-HREF="games4.html#AEN127"
->Diversion 1: Sprites</A
-></DT
-><DT
->4.1.2. <A
-HREF="games4.html#AEN138"
->Diversion 2: Vector physics</A
-></DT
-></DL
-></DD
-></DL
-></DD
-><DT
->5. <A
-HREF="games5.html"
->User-controllable objects</A
-></DT
-><DD
-><DL
-><DT
->5.1. <A
-HREF="games5.html#AEN161"
->A simple bat class</A
-></DT
-><DD
-><DL
-><DT
->5.1.1. <A
-HREF="games5.html#AEN180"
->Diversion 3: Pygame events</A
-></DT
-></DL
-></DD
-></DL
-></DD
-><DT
->6. <A
-HREF="games6.html"
->Putting it all together</A
-></DT
-><DD
-><DL
-><DT
->6.1. <A
-HREF="games6.html#AEN198"
->Let the ball hit sides</A
-></DT
-><DT
->6.2. <A
-HREF="games6.html#AEN210"
->Let the ball hit bats</A
-></DT
-><DT
->6.3. <A
-HREF="games6.html#AEN225"
->The Finished product</A
-></DT
-></DL
-></DD
-></DL
-></DIV
-><DIV
-CLASS="SECT1"
-><H1
-CLASS="SECT1"
-><A
-NAME="AEN12"
-></A
->1. Introduction</H1
-><P
->First of all, I will assume you have read the <A
-HREF="http://www.pygame.org/docs/tut/chimp/ChimpLineByLine.html"
-TARGET="_top"
-><I
-CLASS="CITETITLE"
->Line
-By Line Chimp</I
-></A
-> tutorial, which introduces the basics of Python and Pygame. Give it a read before reading this
-tutorial, as I won't bother repeating what that tutorial says (or at least not in as much detail). This tutorial is aimed at those
-who understand how to make a ridiculously simple little "game", and who would like to make a relatively simple game like Pong.
-It introduces you to some concepts of game design, some simple mathematics to work out ball physics, and some ways to keep your
-game easy to maintain and expand.</P
-><P
->All the code in this tutorial works toward implementing <A
-HREF="http://www.tomchance.uklinux.net/projects/pong.shtml"
-TARGET="_top"
-><I
-CLASS="CITETITLE"
->TomPong</I
-></A
->, a game I've written. By the end of the tutorial, you should not only have a firmer grasp of Pygame, but
-you should also understand how TomPong works, and how to make your own version.</P
-><P
->Now, for a brief recap of the basics of Pygame. A common method of organising the code for a game is to divide it into the following
-six sections:</P
-><P
-></P
-><UL
-><LI
-><P
-><SPAN
-CLASS="bold"
-><B
-CLASS="EMPHASIS"
->Load modules</B
-></SPAN
-> which are required in the game. Standard stuff, except that you should
- remember to import the Pygame local names as well as the Pygame module itself</P
-></LI
-><LI
-><P
-><SPAN
-CLASS="bold"
-><B
-CLASS="EMPHASIS"
->Resource handling classes</B
-></SPAN
->; define some classes to handle your most basic resources,
- which will be loading images and sounds, as well as connecting and disconnecting to and from networks, loading save game
- files, and any other resources you might have.</P
-></LI
-><LI
-><P
-><SPAN
-CLASS="bold"
-><B
-CLASS="EMPHASIS"
->Game object classes</B
-></SPAN
->; define the classes for your game object. In the pong example,
- these will be one for the player's bat (which you can initialise multiple times, one for each player in the game), and one
- for the ball (which can again have multiple instances). If you're going to have a nice in-game menu, it's also a good idea to make a
- menu class.</P
-></LI
-><LI
-><P
-><SPAN
-CLASS="bold"
-><B
-CLASS="EMPHASIS"
->Any other game functions</B
-></SPAN
->; define other necessary functions, such as scoreboards, menu
- handling, etc. Any code that you could put into the main game logic, but that would make understanding said logic harder, should
- be put into its own function. So as plotting a scoreboard isn't game logic, it should be moved into a function.</P
-></LI
-><LI
-><P
-><SPAN
-CLASS="bold"
-><B
-CLASS="EMPHASIS"
->Initialise the game</B
-></SPAN
->, including the Pygame objects themselves, the background, the game
- objects (initialising instances of the classes) and any other little bits of code you might want to add in.</P
-></LI
-><LI
-><P
-><SPAN
-CLASS="bold"
-><B
-CLASS="EMPHASIS"
->The main loop</B
-></SPAN
->, into which you put any input handling (i.e. watching for users hitting
- keys/mouse buttons), the code for updating the game objects, and finally for updating the screen.</P
-></LI
-></UL
-><P
->Every game you make will have some or all of those sections, possibly with more of your own. For the purposes of this tutorial, I will
-write about how TomPong is laid out, and the ideas I write about can be transferred to almopst any kind of game you might make. I will
-also assume that you want to keep all of the code in a single file, but if you're making a reasonably large game, it's often a good
-idea to source certain sections into module files. Putting the game object classes into a file called "<TT
-CLASS="FUNCTION"
->objects.py</TT
->", for
-example, can help you keep game logic separate from game objects. If you have a lot of resource handling code, it can also be handy
-to put that into "<TT
-CLASS="FUNCTION"
->resources.py</TT
->". You can then "<TT
-CLASS="FUNCTION"
->from objects,resources import *</TT
->" to import all of the
- classes and functions.</P
-><DIV
-CLASS="SECT2"
-><H2
-CLASS="SECT2"
-><A
-NAME="AEN44"
-></A
->1.1. A note on coding styles</H2
-><P
->The first thing to remember when approaching any programming project is to decide on a coding style, and stay consistent. Python
-solves a lot of the problems because of its strict interpretation of whitespace and indentation, but you can still choose the size
-of your indentations, whether you put each module import on a new line, how you comment code, etc. You'll see how I do all of this
-in the code examples; you needn't use my style, but whatever style you adopt, use it all the way through the program code. Also try
-to document all of your classes, and comment on any bits of code that seem obscure, though don't start commenting the obvious. I've
-seen plenty of people do the following:</P
-><PRE
-CLASS="PROGRAMLISTING"
->player1.score += scoreup # Add scoreup to player1 score</PRE
-><P
->The worst code is poorly laid out, with seemingly random changes in style, and poor documentation. Poor code is not only annoying
-for other people, but it also makes it difficult for you to maintain.</P
-></DIV
-></DIV
-></DIV
-><DIV
-CLASS="NAVFOOTER"
-><HR
-ALIGN="LEFT"
-WIDTH="100%"><TABLE
-SUMMARY="Footer navigation table"
-WIDTH="100%"
-BORDER="0"
-CELLPADDING="0"
-CELLSPACING="0"
-><TR
-><TD
-WIDTH="33%"
-ALIGN="left"
-VALIGN="top"
->&nbsp;</TD
-><TD
-WIDTH="34%"
-ALIGN="center"
-VALIGN="top"
->&nbsp;</TD
-><TD
-WIDTH="33%"
-ALIGN="right"
-VALIGN="top"
-><A
-HREF="games2.html"
-ACCESSKEY="N"
->Next</A
-></TD
-></TR
-><TR
-><TD
-WIDTH="33%"
-ALIGN="left"
-VALIGN="top"
->&nbsp;</TD
-><TD
-WIDTH="34%"
-ALIGN="center"
-VALIGN="top"
->&nbsp;</TD
-><TD
-WIDTH="33%"
-ALIGN="right"
-VALIGN="top"
->Revision: Pygame fundamentals</TD
-></TR
-></TABLE
->
-
-</body>
-</html>
-
-
-
-</DIV
->
-
-</BODY
-></HTML
->
diff --git a/pygame/docs/tut/tom/basic.png b/pygame/docs/tut/tom/basic.png
deleted file mode 100755
index 849adb5..0000000
--- a/pygame/docs/tut/tom/basic.png
+++ /dev/null
Binary files differ
diff --git a/pygame/docs/tut/tom/event-flowchart.png b/pygame/docs/tut/tom/event-flowchart.png
deleted file mode 100755
index 6a33613..0000000
--- a/pygame/docs/tut/tom/event-flowchart.png
+++ /dev/null
Binary files differ
diff --git a/pygame/docs/tut/tom/formulae.png b/pygame/docs/tut/tom/formulae.png
deleted file mode 100755
index f04b482..0000000
--- a/pygame/docs/tut/tom/formulae.png
+++ /dev/null
Binary files differ
diff --git a/pygame/docs/tut/tom/games2.html b/pygame/docs/tut/tom/games2.html
deleted file mode 100755
index 12f2b9c..0000000
--- a/pygame/docs/tut/tom/games2.html
+++ /dev/null
@@ -1,315 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<HTML
-><HEAD
-><TITLE
->Revision: Pygame fundamentals</TITLE
-><META
-NAME="GENERATOR"
-CONTENT="Modular DocBook HTML Stylesheet Version 1.7"><LINK
-REL="HOME"
-HREF="MakeGames.html"><LINK
-REL="PREVIOUS"
-HREF="MakeGames.html"><LINK
-REL="NEXT"
-TITLE="Kicking things off"
-HREF="games3.html"> <style type="text/stylesheet">
- <!--
- PRE.PROGRAMLISTING { background-color: #EEEEEE; border-color: #333333; border-style: solid; border-width: thin } -->
- </style></HEAD
-><BODY
-CLASS="SECT1"
-BGCOLOR="#FFFFFF"
-TEXT="#000000"
-LINK="#0000FF"
-VLINK="#840084"
-ALINK="#0000FF"
->
-
-<DIV
-CLASS="NAVHEADER"
-><TABLE
-SUMMARY="Header navigation table"
-WIDTH="100%"
-BORDER="0"
-CELLPADDING="0"
-CELLSPACING="0"
-><TR
-><TH
-COLSPAN="3"
-ALIGN="center"
-></TH
-></TR
-><TR
-><TD
-WIDTH="10%"
-ALIGN="left"
-VALIGN="bottom"
-><A
-HREF="MakeGames.html"
-ACCESSKEY="P"
->Prev</A
-></TD
-><TD
-WIDTH="80%"
-ALIGN="center"
-VALIGN="bottom"
-></TD
-><TD
-WIDTH="10%"
-ALIGN="right"
-VALIGN="bottom"
-><A
-HREF="games3.html"
-ACCESSKEY="N"
->Next</A
-></TD
-></TR
-></TABLE
-><HR
-ALIGN="LEFT"
-WIDTH="100%"></DIV
-><DIV
-CLASS="SECT1"
-><H1
-CLASS="SECT1"
-><A
-NAME="AEN49"
-></A
->2. Revision: Pygame fundamentals</H1
-><DIV
-CLASS="SECT2"
-><H2
-CLASS="SECT2"
-><A
-NAME="AEN51"
-></A
->2.1. The basic Pygame game</H2
-><P
->For the sake of revision, and to ensure that you are familiar with the basic structure of a Pygame program, I'll briefly run through
-a basic Pygame program, which will display no more than a window with some text in it, that should, by the end, look something like
-this (though of course the window decoration will probably be different on your system):</P
-><DIV
-CLASS="MEDIAOBJECT"
-><P
-><IMG
-SRC="basic.png"></P
-></DIV
-><P
->The full code for this example looks like this:</P
-><PRE
-CLASS="PROGRAMLISTING"
->#!/usr/bin/python
-
-import pygame
-from pygame.locals import *
-
-def main():
- # Initialise screen
- pygame.init()
- screen = pygame.display.set_mode((150, 50))
- pygame.display.set_caption('Basic Pygame program')
-
- # Fill background
- background = pygame.Surface(screen.get_size())
- background = background.convert()
- background.fill((250, 250, 250))
-
- # Display some text
- font = pygame.font.Font(None, 36)
- text = font.render("Hello There", 1, (10, 10, 10))
- textpos = text.get_rect()
- textpos.centerx = background.get_rect().centerx
- background.blit(text, textpos)
-
- # Blit everything to the screen
- screen.blit(background, (0, 0))
- pygame.display.flip()
-
- # Event loop
- while 1:
- for event in pygame.event.get():
- if event.type == QUIT:
- return
-
- screen.blit(background, (0, 0))
- pygame.display.flip()
-
-
-if __name__ == '__main__': main()</PRE
-></DIV
-><DIV
-CLASS="SECT2"
-><H2
-CLASS="SECT2"
-><A
-NAME="AEN59"
-></A
->2.2. Basic Pygame objects</H2
-><P
->As you can see, the code consists of three main objects: the screen, the background, and the text. Each of these objects is created
-by first calling an instance of an in-built Pygame object, and then modifying it to fit our needs. The screen is a slightly special
-case, because we still modify the display through Pygame calls, rather than calling methods belonging to the screen object. But for
-all other Pygame objects, we first create the object as a copy of a Pygame object, giving it some attributes, and build our game
-objects from them.</P
-><P
->With the background, we first create a Pygame Surface object, and make it the size of the screen. We then perform the convert()
-operation to convert the Surface to a single pixel format. This is more obviously necessary when we have several images and surfaces,
-all of different pixel formats, which makes rendering them quite slow. By converting all the surfaces, we can drastically speed up
-rendering times. Finally, we fill the background surface with white (255, 255, 255). These values are <I
-CLASS="FIRSTTERM"
->RGB</I
-> (Red Green
-Blue), and can be worked out from any good paint program.</P
-><P
->With the text, we require more than one object. First, we create a font object, which defines which font to use, and the size of the
-font. Then we create a text object, by using the <TT
-CLASS="FUNCTION"
->render</TT
-> method that belongs to our font object, supplying three arguments:
-the text to be rendered, whether or not it should be anti-aliased (1=yes, 0=no), and the color of the text (again in RGB format). Next
-we create a third text object, which gets the rectangle for the text. The easiest way to understand this is to imagine drawing a
-rectangle that will surround all of the text; you can then use this rectangle to get/set the position of the text on the screen. So
-in this example we get the rectangle, set its <TT
-CLASS="FUNCTION"
->centerx</TT
-> attribute to be the <TT
-CLASS="FUNCTION"
->centerx</TT
-> attribute of the
-background (so the text's center will be the same as the background's center, i.e. the text will be centered on the screen on the x
-axis). We could also set the y coordinate, but it's not any different so I left the text at the top of the screen. As the screen is
-small anyway, it didn't seem necessary.</P
-></DIV
-><DIV
-CLASS="SECT2"
-><H2
-CLASS="SECT2"
-><A
-NAME="AEN68"
-></A
->2.3. Blitting</H2
-><P
->Now we have created our game objects, we need to actually render them. If we didn't and we ran the program, we'd just see a
-blank window, and the objects would remain invisible. The term used for rendering objects is <I
-CLASS="FIRSTTERM"
->blitting</I
->, which is where
-you copy the pixels belonging to said object onto the destination object. So to render the background object, you blit it onto the
-screen. In this example, to make things simple, we blit the text onto the background (so the background will now have a copy of the
-text on it), and then blit the background onto the screen.</P
-><P
->Blitting is one of the slowest operations in any game, so you need to be careful not to blit too much onto the screen in every frame.
-If you have a background image, and a ball flying around the screen, then you could blit the background and then the ball in every
-frame, which would cover up the ball's previous position and render the new ball, but this would be pretty slow. A better solution is
-to blit the background onto the area that the ball previously occupied, which can be found by the ball's previous rectangle, and then
-blitting the ball, so that you are only blitting two small areas.</P
-></DIV
-><DIV
-CLASS="SECT2"
-><H2
-CLASS="SECT2"
-><A
-NAME="AEN73"
-></A
->2.4. The event loop</H2
-><P
->Once you've set the game up, you need to put it into a loop so that it will continuously run until the user signals that he/she wants
-to exit. So you start an open <TT
-CLASS="FUNCTION"
->while</TT
-> loop, and then for each iteration of the loop, which will be each frame of the game,
-update the game. The first thing is to check for any Pygame events, which will be the user hitting the keyboard, clicking a mouse
-button, moving a joystick, resizing the window, or trying to close it. In this case, we simply want to watch out for for user trying
-to quit the game by closing the window, in which case the game should <TT
-CLASS="FUNCTION"
->return</TT
->, which will end the <TT
-CLASS="FUNCTION"
->while</TT
-> loop.
-Then we simply need to re-blit the background, and flip (update) the display to have everything drawn. OK, as nothing moves or happens
-in this example, we don't strictly speaking need to re-blit the background in every iteration, but I put it in because when things are
-moving around on the screen, you will need to do all your blitting here.</P
-></DIV
-><DIV
-CLASS="SECT2"
-><H2
-CLASS="SECT2"
-><A
-NAME="AEN79"
-></A
->2.5. Ta-da!</H2
-><P
->And that's it - your most basic Pygame game! All games will take a form similar to this, but with lots more code for the actual game
-functions themselves, which are more to do your with programming, and less guided in structure by the workings of Pygame. This is what
-this tutorial is really about, and will now go onto.</P
-></DIV
-></DIV
-><DIV
-CLASS="NAVFOOTER"
-><HR
-ALIGN="LEFT"
-WIDTH="100%"><TABLE
-SUMMARY="Footer navigation table"
-WIDTH="100%"
-BORDER="0"
-CELLPADDING="0"
-CELLSPACING="0"
-><TR
-><TD
-WIDTH="33%"
-ALIGN="left"
-VALIGN="top"
-><A
-HREF="MakeGames.html"
-ACCESSKEY="P"
->Prev</A
-></TD
-><TD
-WIDTH="34%"
-ALIGN="center"
-VALIGN="top"
-><A
-HREF="MakeGames.html"
-ACCESSKEY="H"
->Home</A
-></TD
-><TD
-WIDTH="33%"
-ALIGN="right"
-VALIGN="top"
-><A
-HREF="games3.html"
-ACCESSKEY="N"
->Next</A
-></TD
-></TR
-><TR
-><TD
-WIDTH="33%"
-ALIGN="left"
-VALIGN="top"
-></TD
-><TD
-WIDTH="34%"
-ALIGN="center"
-VALIGN="top"
->&nbsp;</TD
-><TD
-WIDTH="33%"
-ALIGN="right"
-VALIGN="top"
->Kicking things off</TD
-></TR
-></TABLE
->
-
-</body>
-</html>
-
-
-
-</DIV
-></BODY
-></HTML
->
diff --git a/pygame/docs/tut/tom/games3.html b/pygame/docs/tut/tom/games3.html
deleted file mode 100755
index 8c8d7a9..0000000
--- a/pygame/docs/tut/tom/games3.html
+++ /dev/null
@@ -1,275 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<HTML
-><HEAD
-><TITLE
->Kicking things off</TITLE
-><META
-NAME="GENERATOR"
-CONTENT="Modular DocBook HTML Stylesheet Version 1.7"><LINK
-REL="HOME"
-HREF="MakeGames.html"><LINK
-REL="PREVIOUS"
-TITLE="Revision: Pygame fundamentals"
-HREF="games2.html"><LINK
-REL="NEXT"
-TITLE="Game object classes"
-HREF="games4.html"> <style type="text/stylesheet">
- <!--
- PRE.PROGRAMLISTING { background-color: #EEEEEE; border-color: #333333; border-style: solid; border-width: thin } -->
- </style></HEAD
-><BODY
-CLASS="SECT1"
-BGCOLOR="#FFFFFF"
-TEXT="#000000"
-LINK="#0000FF"
-VLINK="#840084"
-ALINK="#0000FF"
->
-
-
-<DIV
-CLASS="NAVHEADER"
-><TABLE
-SUMMARY="Header navigation table"
-WIDTH="100%"
-BORDER="0"
-CELLPADDING="0"
-CELLSPACING="0"
-><TR
-><TH
-COLSPAN="3"
-ALIGN="center"
-></TH
-></TR
-><TR
-><TD
-WIDTH="10%"
-ALIGN="left"
-VALIGN="bottom"
-><A
-HREF="games2.html"
-ACCESSKEY="P"
->Prev</A
-></TD
-><TD
-WIDTH="80%"
-ALIGN="center"
-VALIGN="bottom"
-></TD
-><TD
-WIDTH="10%"
-ALIGN="right"
-VALIGN="bottom"
-><A
-HREF="games4.html"
-ACCESSKEY="N"
->Next</A
-></TD
-></TR
-></TABLE
-><HR
-ALIGN="LEFT"
-WIDTH="100%"></DIV
-><DIV
-CLASS="SECT1"
-><H1
-CLASS="SECT1"
-><A
-NAME="AEN82"
-></A
->3. Kicking things off</H1
-><P
->The first sections of code are relatively simple, and, once written, can usually be reused in every game you consequently make. They
-will do all of the boring, generic tasks like loading modules, loading images, opening networking connections, playing music, and so
-on. They will also include some simple but effective error handling, and any customisation you wish to provide on top of functions
-provided by modules like <TT
-CLASS="FUNCTION"
->sys</TT
-> and <TT
-CLASS="FUNCTION"
->pygame</TT
->.</P
-><DIV
-CLASS="SECT2"
-><H2
-CLASS="SECT2"
-><A
-NAME="AEN87"
-></A
->3.1. The first lines, and loading modules</H2
-><P
->First off, you need to start off your game and load up your modules. It's always a good idea to set a few things straight at the top of
-the main source file, such as the name of the file, what it contains, the license it is under, and any other helpful info you might
-want to give those will will be looking at it. Then you can load modules, with some error checking so that Python doesn't print out
-a nasty traceback, which non-programmers won't understand. The code is fairly simple, so I won't bother explaining any of it:</P
-><PRE
-CLASS="PROGRAMLISTING"
->#!/usr/bin/env python
-#
-# Tom's Pong
-# A simple pong game with realistic physics and AI
-# http://www.tomchance.uklinux.net/projects/pong.shtml
-#
-# Released under the GNU General Public License
-
-VERSION = "0.4"
-
-try:
- import sys
- import random
- import math
- import os
- import getopt
- import pygame
- from socket import *
- from pygame.locals import *
-except ImportError, err:
- print "couldn't load module. %s" % (err)
- sys.exit(2)</PRE
-></DIV
-><DIV
-CLASS="SECT2"
-><H2
-CLASS="SECT2"
-><A
-NAME="AEN91"
-></A
->3.2. Resource handling functions</H2
-><P
->In the <I
-CLASS="CITETITLE"
->Line By Line Chimp</I
-> example, the first code to be written was for loading images and sounds. As these
-were totally independent of any game logic or game objects, they were written as separate functions, and were written first so
-that later code could make use of them. I generally put all my code of this nature first, in their own, classless functions; these
-will, generally speaking, be resource handling functions. You can of course create classes for these, so that you can group them
-together, and maybe have an object with which you can control all of your resources. As with any good programming environment, it's up
-to you to develop your own best practice and style.</P
-><P
->It's always a good idea to write your own resource handling functions,
-because although Pygame has methods for opening images and sounds, and other modules will have their methods of opening other
-resources, those methods can take up more than one line, they can require consistent modification by yourself, and they often don't
-provide satisfactory error handling. Writing resource handling functions gives you sophisticated, reusable code, and gives you more
-control over your resources. Take this example of an image loading function:</P
-><PRE
-CLASS="PROGRAMLISTING"
->def load_png(name):
- """ Load image and return image object"""
- fullname = os.path.join('data', name)
- try:
- image = pygame.image.load(fullname)
- if image.get_alpha() is None:
- image = image.convert()
- else:
- image = image.convert_alpha()
- except pygame.error, message:
- print 'Cannot load image:', fullname
- raise SystemExit, message
- return image, image.get_rect()</PRE
-><P
->Here we make a more sophisticated image loading function than the one provided by Pygame (<TT
-CLASS="FUNCTION"
->image.load</TT
->). Note that
-the first line of the function is a documentation string describing what the function does, and what object(s) it returns. The
-function assumes that all of your images are in a directory called data, and so it takes the filename and creates the full pathname,
-for example <TT
-CLASS="FUNCTION"
->data/ball.png</TT
->, using the <I
-CLASS="CITETITLE"
->os</I
-> module to ensure cross-platform compatibility. Then it
-tries to load the image, and convert any alpha regions so you can achieve transparency, and it returns a more human-readable error
-if there's a problem. Finally it returns the image object, and its <TT
-CLASS="FUNCTION"
->rect</TT
->.</P
-><P
->You can make similar functions for loading any other resources, such as loading sounds. You can also make resource handling classes,
-to give you more flexibility with more complex resources. For example, you could make a music class, with an <TT
-CLASS="FUNCTION"
->__init__</TT
->
-function that loads the sound (perhaps borrowing from a <TT
-CLASS="FUNCTION"
->load_sound()</TT
-> function), a function to pause the music, and a
-function to restart. Another handy resource handling class is for network connections. Functions to open sockets, pass data with
-suitable security and error checking, close sockets, finger addresses, and other network tasks, can make writing a game with network
-capabilities relatively painless.</P
-><P
->Remember the chief task of these functions/classes is to ensure that by the time you get around to writing game object classes,
-and the main loop, there's almost nothing left to do. Class inheritance can make these basic classes especially handy. Don't go
-overboard though; functions which will only be used by one class should be written as part of that class, not as a global
-function.</P
-></DIV
-></DIV
-><DIV
-CLASS="NAVFOOTER"
-><HR
-ALIGN="LEFT"
-WIDTH="100%"><TABLE
-SUMMARY="Footer navigation table"
-WIDTH="100%"
-BORDER="0"
-CELLPADDING="0"
-CELLSPACING="0"
-><TR
-><TD
-WIDTH="33%"
-ALIGN="left"
-VALIGN="top"
-><A
-HREF="games2.html"
-ACCESSKEY="P"
->Prev</A
-></TD
-><TD
-WIDTH="34%"
-ALIGN="center"
-VALIGN="top"
-><A
-HREF="MakeGames.html"
-ACCESSKEY="H"
->Home</A
-></TD
-><TD
-WIDTH="33%"
-ALIGN="right"
-VALIGN="top"
-><A
-HREF="games4.html"
-ACCESSKEY="N"
->Next</A
-></TD
-></TR
-><TR
-><TD
-WIDTH="33%"
-ALIGN="left"
-VALIGN="top"
->Revision: Pygame fundamentals</TD
-><TD
-WIDTH="34%"
-ALIGN="center"
-VALIGN="top"
->&nbsp;</TD
-><TD
-WIDTH="33%"
-ALIGN="right"
-VALIGN="top"
->Game object classes</TD
-></TR
-></TABLE
->
-
-</body>
-</html>
-
-
-
-</DIV
-></BODY
-></HTML
->
diff --git a/pygame/docs/tut/tom/games4.html b/pygame/docs/tut/tom/games4.html
deleted file mode 100755
index 1e014ec..0000000
--- a/pygame/docs/tut/tom/games4.html
+++ /dev/null
@@ -1,368 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<HTML
-><HEAD
-><TITLE
->Game object classes</TITLE
-><META
-NAME="GENERATOR"
-CONTENT="Modular DocBook HTML Stylesheet Version 1.7"><LINK
-REL="HOME"
-HREF="MakeGames.html"><LINK
-REL="PREVIOUS"
-TITLE="Kicking things off"
-HREF="games3.html"><LINK
-REL="NEXT"
-TITLE="User-controllable objects"
-HREF="games5.html"> <style type="text/stylesheet">
- <!--
- PRE.PROGRAMLISTING { background-color: #EEEEEE; border-color: #333333; border-style: solid; border-width: thin } -->
- </style></HEAD
-><BODY
-CLASS="SECT1"
-BGCOLOR="#FFFFFF"
-TEXT="#000000"
-LINK="#0000FF"
-VLINK="#840084"
-ALINK="#0000FF"
->
-
-<DIV
-CLASS="NAVHEADER"
-><TABLE
-SUMMARY="Header navigation table"
-WIDTH="100%"
-BORDER="0"
-CELLPADDING="0"
-CELLSPACING="0"
-><TR
-><TH
-COLSPAN="3"
-ALIGN="center"
-></TH
-></TR
-><TR
-><TD
-WIDTH="10%"
-ALIGN="left"
-VALIGN="bottom"
-><A
-HREF="games3.html"
-ACCESSKEY="P"
->Prev</A
-></TD
-><TD
-WIDTH="80%"
-ALIGN="center"
-VALIGN="bottom"
-></TD
-><TD
-WIDTH="10%"
-ALIGN="right"
-VALIGN="bottom"
-><A
-HREF="games5.html"
-ACCESSKEY="N"
->Next</A
-></TD
-></TR
-></TABLE
-><HR
-ALIGN="LEFT"
-WIDTH="100%"></DIV
-><DIV
-CLASS="SECT1"
-><H1
-CLASS="SECT1"
-><A
-NAME="AEN106"
-></A
->4. Game object classes</H1
-><P
->Once you've loaded your modules, and written your resource handling functions, you'll want to get on to writing some game objects.
-The way this is done is fairly simple, though it can seem complex at first. You write a class for each type of object in the game,
-and then create an instance of those classes for the objects. You can then use those classes' methods to manipulate the objects,
-giving objects some motion and interactive capabilities. So your game, in pseudo-code, will look like this:</P
-><PRE
-CLASS="PROGRAMLISTING"
->#!/usr/bin/python
-
-[load modules here]
-
-[resource handling functions here]
-
-class Ball:
- [ball functions (methods) here]
- [e.g. a function to calculate new position]
- [and a function to check if it hits the side]
-
-def main:
- [initiate game environment here]
-
- [create new object as instance of ball class]
- ball = Ball()
-
- while 1:
- [check for user input]
-
- [call ball's update function]
- ball.update()</PRE
-><P
->This is, of course, a very simple example, and you'd need to put in all the code, instead of those little bracketed comments. But
-you should get the basic idea. You crate a class, into which you put all the functions for a ball, including <TT
-CLASS="FUNCTION"
->__init__</TT
->,
-which would create all the ball's attributes, and <TT
-CLASS="FUNCTION"
->update</TT
->, which would move the ball to its new position, before blitting
-it onto the screen in this position.</P
-><P
->You can then create more classes for all of your other game objects, and then create instances of them so that you can handle them
-easily in the <TT
-CLASS="FUNCTION"
->main</TT
-> function and the main program loop. Contrast this with initiating the ball in the <TT
-CLASS="FUNCTION"
->main</TT
->
-function, and then having lots of classless functions to manipulate a set ball object, and you'll hopefully see why using classes is
-an advantage: It allows you to put all of the code for each object in one place; it makes using objects easier; it makes adding new
-objects, and manipulating them, more flexible. Rather than adding more code for each new ball object, you could simply create new
-instances of the <TT
-CLASS="FUNCTION"
->Ball</TT
-> class for each new ball object. Magic!</P
-><DIV
-CLASS="SECT2"
-><H2
-CLASS="SECT2"
-><A
-NAME="AEN117"
-></A
->4.1. A simple ball class</H2
-><P
->Here is a simple class with the functions necessary for creating a ball object that will, if the <TT
-CLASS="FUNCTION"
->update</TT
-> function is called
-in the main loop, move across the screen:</P
-><PRE
-CLASS="PROGRAMLISTING"
->class Ball(pygame.sprite.Sprite):
- """A ball that will move across the screen
- Returns: ball object
- Functions: update, calcnewpos
- Attributes: area, vector"""
-
- def __init__(self, vector):
- pygame.sprite.Sprite.__init__(self)
- self.image, self.rect = load_png('ball.png')
- screen = pygame.display.get_surface()
- self.area = screen.get_rect()
- self.vector = vector
-
- def update(self):
- newpos = self.calcnewpos(self.rect,self.vector)
- self.rect = newpos
-
- def calcnewpos(self,rect,vector):
- (angle,z) = vector
- (dx,dy) = (z*math.cos(angle),z*math.sin(angle))
- return rect.move(dx,dy)</PRE
-><P
->Here we have the <TT
-CLASS="FUNCTION"
->Ball</TT
-> class, with an <TT
-CLASS="FUNCTION"
->__init__</TT
-> function that sets the ball up, an <TT
-CLASS="FUNCTION"
->update</TT
->
-function that changes the ball's rectangle to be in the new position, and a <TT
-CLASS="FUNCTION"
->calcnewpos</TT
-> function to calculate the ball's
-new position based on its current position, and the vector by which it is moving. I'll explain the physics in a moment. The one other
-thing to note is the documentation string, which is a little bit longer this time, and explains the basics of the class. These strings
-are handy not only to yourself and other programmers looking at the code, but also for tools to parse your code and document it. They
-won't make much of a difference in small programs, but with large ones they're invaluable, so it's a good habit to get into.</P
-><DIV
-CLASS="SECT3"
-><H3
-CLASS="SECT3"
-><A
-NAME="AEN127"
-></A
->4.1.1. Diversion 1: Sprites</H3
-><P
->The other reason for creating a class for each object is sprites. Each image you render in your game will be a sprite object, and so
-to begin with, the class for each object should inherit the <TT
-CLASS="FUNCTION"
->Sprite</TT
-> class. This is a really nice feature of Python - class
-inheritance. Now the <TT
-CLASS="FUNCTION"
->Ball</TT
-> class has all of the functions that come with the <TT
-CLASS="FUNCTION"
->Sprite</TT
-> class, and any object
-instances of the <TT
-CLASS="FUNCTION"
->Ball</TT
-> class will be registered by Pygame as sprites. Whereas with text and the background, which don't
-move, it's OK to blit the object onto the background, Pygame handles sprite objects in a different manner, which you'll see when we
-look at the whole program's code. </P
-><P
->Basically, you create both a ball object, and a sprite object for that ball, and you then call the ball's update function on the
-sprite object, thus updating the sprite. Sprites also give you sophisticated ways of determining if two objects have collided.
-Normally you might just check in the main loop to see if their rectangles overlap, but that would involve a lot of code, which would
-be a waste because the <TT
-CLASS="FUNCTION"
->Sprite</TT
-> class provides two functions (<TT
-CLASS="FUNCTION"
->spritecollide</TT
-> and <TT
-CLASS="FUNCTION"
->groupcollide</TT
->)
-to do this for you.</P
-></DIV
-><DIV
-CLASS="SECT3"
-><H3
-CLASS="SECT3"
-><A
-NAME="AEN138"
-></A
->4.1.2. Diversion 2: Vector physics</H3
-><P
->Other than the structure of the <TT
-CLASS="FUNCTION"
->Ball</TT
-> class, the notable thing about this code is the vector physics, used to calculate
-the ball's movement. With any game involving angular movement, you won't get very far unless you're comfortable with trigonometry, so
-I'll just introduce the basics you need to know to make sense of the <TT
-CLASS="FUNCTION"
->calcnewpos</TT
-> function.</P
-><P
->To begin with, you'll notice that the ball has an attribute <TT
-CLASS="FUNCTION"
->vector</TT
->, which is made up of <TT
-CLASS="FUNCTION"
->angle</TT
-> and <TT
-CLASS="FUNCTION"
->
-z</TT
->. The angle is measured in radians, and will give you the direction in which the ball is moving. Z is the speed at which the ball
-moves. So by using this vector, we can determine the direction and speed of the ball, and therefore how much it will move on the x and
-y axes:</P
-><DIV
-CLASS="MEDIAOBJECT"
-><P
-><IMG
-SRC="radians.png"></P
-></DIV
-><P
->The diagram above illustrates the basic maths behind vectors. In the left hand diagram, you can see the ball's projected movement
-represented by the blue line. The length of that line (<TT
-CLASS="FUNCTION"
->z</TT
->) represents its speed, and the angle is the direction in which
-it will move. The angle for the ball's movement will always be taken from the x axis on the right, and it is measured clockwise from
-that line, as shown in the diagram.</P
-><P
->From the angle and speed of the ball, we can then work out how much it has moved along the x and y axes. We need to do this because
-Pygame doesn't support vectors itself, and we can only move the ball by moving its rectangle along the two axes. So we need to
-<I
-CLASS="FIRSTTERM"
->resolve</I
-> the angle and speed into its movement on the x axis (dx) and on the y axis (dy). This is a simple matter of
-trigonometry, and can be done with the formulae shown in the diagram.</P
-><P
->If you've studied elementary trigonometry before, none of this should be news to you. But just in case you're forgetful, here are some
-useful formulae to remember, that will help you visualise the angles (I find it easier to visualise angles in degrees than in radians!) </P
-><DIV
-CLASS="MEDIAOBJECT"
-><P
-><IMG
-SRC="formulae.png"></P
-></DIV
-></DIV
-></DIV
-></DIV
-><DIV
-CLASS="NAVFOOTER"
-><HR
-ALIGN="LEFT"
-WIDTH="100%"><TABLE
-SUMMARY="Footer navigation table"
-WIDTH="100%"
-BORDER="0"
-CELLPADDING="0"
-CELLSPACING="0"
-><TR
-><TD
-WIDTH="33%"
-ALIGN="left"
-VALIGN="top"
-><A
-HREF="games3.html"
-ACCESSKEY="P"
->Prev</A
-></TD
-><TD
-WIDTH="34%"
-ALIGN="center"
-VALIGN="top"
-><A
-HREF="MakeGames.html"
-ACCESSKEY="H"
->Home</A
-></TD
-><TD
-WIDTH="33%"
-ALIGN="right"
-VALIGN="top"
-><A
-HREF="games5.html"
-ACCESSKEY="N"
->Next</A
-></TD
-></TR
-><TR
-><TD
-WIDTH="33%"
-ALIGN="left"
-VALIGN="top"
->Kicking things off</TD
-><TD
-WIDTH="34%"
-ALIGN="center"
-VALIGN="top"
->&nbsp;</TD
-><TD
-WIDTH="33%"
-ALIGN="right"
-VALIGN="top"
->User-controllable objects</TD
-></TR
-></TABLE
->
-
-</body>
-</html>
-
-
-
-</DIV
-></BODY
-></HTML
->
diff --git a/pygame/docs/tut/tom/games5.html b/pygame/docs/tut/tom/games5.html
deleted file mode 100755
index f4a9984..0000000
--- a/pygame/docs/tut/tom/games5.html
+++ /dev/null
@@ -1,325 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<HTML
-><HEAD
-><TITLE
->User-controllable objects</TITLE
-><META
-NAME="GENERATOR"
-CONTENT="Modular DocBook HTML Stylesheet Version 1.7"><LINK
-REL="HOME"
-HREF="MakeGames.html"><LINK
-REL="PREVIOUS"
-TITLE="Game object classes"
-HREF="games4.html"><LINK
-REL="NEXT"
-TITLE="Putting it all together"
-HREF="games6.html"> <style type="text/stylesheet">
- <!--
- PRE.PROGRAMLISTING { background-color: #EEEEEE; border-color: #333333; border-style: solid; border-width: thin } -->
- </style></HEAD
-><BODY
-CLASS="SECT1"
-BGCOLOR="#FFFFFF"
-TEXT="#000000"
-LINK="#0000FF"
-VLINK="#840084"
-ALINK="#0000FF"
->
-
-<DIV
-CLASS="NAVHEADER"
-><TABLE
-SUMMARY="Header navigation table"
-WIDTH="100%"
-BORDER="0"
-CELLPADDING="0"
-CELLSPACING="0"
-><TR
-><TH
-COLSPAN="3"
-ALIGN="center"
-></TH
-></TR
-><TR
-><TD
-WIDTH="10%"
-ALIGN="left"
-VALIGN="bottom"
-><A
-HREF="games4.html"
-ACCESSKEY="P"
->Prev</A
-></TD
-><TD
-WIDTH="80%"
-ALIGN="center"
-VALIGN="bottom"
-></TD
-><TD
-WIDTH="10%"
-ALIGN="right"
-VALIGN="bottom"
-><A
-HREF="games6.html"
-ACCESSKEY="N"
->Next</A
-></TD
-></TR
-></TABLE
-><HR
-ALIGN="LEFT"
-WIDTH="100%"></DIV
-><DIV
-CLASS="SECT1"
-><H1
-CLASS="SECT1"
-><A
-NAME="AEN158"
-></A
->5. User-controllable objects</H1
-><P
->So far you can create a Pygame window, and render a ball that will fly across the screen. The next step is to make some bats which
-the user can control. This is potentially far more simple than the ball, because it requires no physics (unless your user-controlled
-object will move in ways more complex than up and down, e.g. a platform character like Mario, in which case you'll need more physics).
-User-controllable objects are pretty easy to create, thanks to Pygame's event queue system, as you'll see.</P
-><DIV
-CLASS="SECT2"
-><H2
-CLASS="SECT2"
-><A
-NAME="AEN161"
-></A
->5.1. A simple bat class</H2
-><P
->The principle behind the bat class is similar to that of the ball class. You need an <TT
-CLASS="FUNCTION"
->__init__</TT
-> function to initialise the
-ball (so you can create object instances for each bat), an <TT
-CLASS="FUNCTION"
->update</TT
-> function to perform per-frame changes on the bat before
-it is blitted the bat to the screen, and the functions that will define what this class will actually do. Here's some sample code:</P
-><PRE
-CLASS="PROGRAMLISTING"
->class Bat(pygame.sprite.Sprite):
- """Movable tennis 'bat' with which one hits the ball
- Returns: bat object
- Functions: reinit, update, moveup, movedown
- Attributes: which, speed"""
-
- def __init__(self, side):
- pygame.sprite.Sprite.__init__(self)
- self.image, self.rect = load_png('bat.png')
- screen = pygame.display.get_surface()
- self.area = screen.get_rect()
- self.side = side
- self.speed = 10
- self.state = "still"
- self.reinit()
-
- def reinit(self):
- self.state = "still"
- self.movepos = [0,0]
- if self.side == "left":
- self.rect.midleft = self.area.midleft
- elif self.side == "right":
- self.rect.midright = self.area.midright
-
- def update(self):
- newpos = self.rect.move(self.movepos)
- if self.area.contains(newpos):
- self.rect = newpos
- pygame.event.pump()
-
- def moveup(self):
- self.movepos[1] = self.movepos[1] - (self.speed)
- self.state = "moveup"
-
- def movedown(self):
- self.movepos[1] = self.movepos[1] + (self.speed)
- self.state = "movedown"</PRE
-><P
->As you can see, this class is very similar to the ball class in its structure. But there are differences in what each function does.
-First of all, there is a reinit function, which is used when a round ends, and the bat needs to be set back in its starting place,
-with any attributes set back to their necessary values. Next, the way in which the bat is moved is a little more complex than with the
-ball, because here its movement is simple (up/down), but it relies on the user telling it to move, unlike the ball which just keeps
-moving in every frame. To make sense of how the ball moves, it is helpful to look at a quick diagram to show the sequence of events:</P
-><DIV
-CLASS="MEDIAOBJECT"
-><P
-><IMG
-SRC="event-flowchart.png"></P
-></DIV
-><P
->What happens here is that the person controlling the bat pushes down on the key that moves the bat up. For each iteration of the main
-game loop (for every frame), if the key is still held down, then the <TT
-CLASS="FUNCTION"
->state</TT
-> attribute of that bat object will be set to
-"moving", and the <TT
-CLASS="FUNCTION"
->moveup</TT
-> function will be called, causing the ball's y position to be reduced by the value of the
-<TT
-CLASS="FUNCTION"
->speed</TT
-> attribute (in this example, 10). In other words, so long as the key is held down, the bat will move up the screen
-by 10 pixels per frame. The <TT
-CLASS="FUNCTION"
->state</TT
-> attribute isn't used here yet, but it's useful to know if you're dealing with spin, or
-would like some useful debugging output.</P
-><P
->As soon as the player lets go of that key, the second set of boxes is invoked, and the <TT
-CLASS="FUNCTION"
->state</TT
-> attribute of the bat object
-will be set back to "still", and the <TT
-CLASS="FUNCTION"
->movepos</TT
-> attribute will be set back to [0,0], meaning that when the <TT
-CLASS="FUNCTION"
->update</TT
-> function is called, it won't move the bat any more. So when the player lets go of the key, the bat stops moving. Simple!</P
-><DIV
-CLASS="SECT3"
-><H3
-CLASS="SECT3"
-><A
-NAME="AEN180"
-></A
->5.1.1. Diversion 3: Pygame events</H3
-><P
->So how do we know when the player is pushing keys down, and then releasing them? With the Pygame event queue system, dummy! It's a
-really easy system to use and understand, so this shouldn't take long :) You've already seen the event queue in action in the basic
-Pygame program, where it was used to check if the user was quitting the application. The code for moving the bat is about as simple
-as that:</P
-><PRE
-CLASS="PROGRAMLISTING"
->for event in pygame.event.get():
- if event.type == QUIT:
- return
- elif event.type == KEYDOWN:
- if event.key == K_UP:
- player.moveup()
- if event.key == K_DOWN:
- player.movedown()
- elif event.type == KEYUP:
- if event.key == K_UP or event.key == K_DOWN:
- player.movepos = [0,0]
- player.state = "still"</PRE
-><P
->Here assume that you've already created an instance of a bat, and called the object <TT
-CLASS="FUNCTION"
->player</TT
->. You can see the familiar
-layout of the <TT
-CLASS="FUNCTION"
->for</TT
-> structure, which iterates through each event found in the Pygame event queue, which is retrieved with
-the <TT
-CLASS="FUNCTION"
->event.get()</TT
-> function. As the user hits keys, pushes mouse buttons and moves the joystick about, those actions are
-pumped into the Pygame event queue, and left there until dealt with. So in each iteration of the main game loop, you go through
-these events, checking if they're ones you want to deal with, and then dealing with them appropriately. The <TT
-CLASS="FUNCTION"
->event.pump()</TT
->
-function that was in the <TT
-CLASS="FUNCTION"
->Bat.update</TT
-> function is then called in every iteration to pump out old events, and keep the queue
-current.</P
-><P
->First we check if the user is quitting the program, and quit it if they are. Then we check if any keys are being pushed down, and if
-they are, we check if they're the designated keys for moving the bat up and down. If they are, then we call the appropriate moving
-function, and set the player state appropriately (though the states moveup and movedown and changed in the <TT
-CLASS="FUNCTION"
->moveup()</TT
-> and
-<TT
-CLASS="FUNCTION"
->movedown()</TT
-> functions, which makes for neater code, and doesn't break <SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->encapsulation</I
-></SPAN
->, which means that you
-assign attributes to the object itself, without referring to the name of the instance of that object). Notice here we have three
-states: still, moveup, and movedown. Again, these come in handy if you want to debug or calculate spin. We also check if any keys have
-been "let go" (i.e. are no longer being held down), and again if they're the right keys, we stop the bat from moving.</P
-></DIV
-></DIV
-></DIV
-><DIV
-CLASS="NAVFOOTER"
-><HR
-ALIGN="LEFT"
-WIDTH="100%"><TABLE
-SUMMARY="Footer navigation table"
-WIDTH="100%"
-BORDER="0"
-CELLPADDING="0"
-CELLSPACING="0"
-><TR
-><TD
-WIDTH="33%"
-ALIGN="left"
-VALIGN="top"
-><A
-HREF="games4.html"
-ACCESSKEY="P"
->Prev</A
-></TD
-><TD
-WIDTH="34%"
-ALIGN="center"
-VALIGN="top"
-><A
-HREF="MakeGames.html"
-ACCESSKEY="H"
->Home</A
-></TD
-><TD
-WIDTH="33%"
-ALIGN="right"
-VALIGN="top"
-><A
-HREF="games6.html"
-ACCESSKEY="N"
->Next</A
-></TD
-></TR
-><TR
-><TD
-WIDTH="33%"
-ALIGN="left"
-VALIGN="top"
->Game object classes</TD
-><TD
-WIDTH="34%"
-ALIGN="center"
-VALIGN="top"
->&nbsp;</TD
-><TD
-WIDTH="33%"
-ALIGN="right"
-VALIGN="top"
->Putting it all together</TD
-></TR
-></TABLE
->
-
-</body>
-</html>
-
-
-
-</DIV
-></BODY
-></HTML
->
diff --git a/pygame/docs/tut/tom/games6.html b/pygame/docs/tut/tom/games6.html
deleted file mode 100755
index 445dca9..0000000
--- a/pygame/docs/tut/tom/games6.html
+++ /dev/null
@@ -1,515 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<HTML
-><HEAD
-><TITLE
->Putting it all together</TITLE
-><META
-NAME="GENERATOR"
-CONTENT="Modular DocBook HTML Stylesheet Version 1.7"><LINK
-REL="HOME"
-HREF="MakeGames.html"><LINK
-REL="PREVIOUS"
-TITLE="User-controllable objects"
-HREF="games5.html"> <style type="text/stylesheet">
- <!--
- PRE.PROGRAMLISTING { background-color: #EEEEEE; border-color: #333333; border-style: solid; border-width: thin } -->
- </style></HEAD
-><BODY
-CLASS="SECT1"
-BGCOLOR="#FFFFFF"
-TEXT="#000000"
-LINK="#0000FF"
-VLINK="#840084"
-ALINK="#0000FF"
->
-
-<DIV
-CLASS="NAVHEADER"
-><TABLE
-SUMMARY="Header navigation table"
-WIDTH="100%"
-BORDER="0"
-CELLPADDING="0"
-CELLSPACING="0"
-><TR
-><TH
-COLSPAN="3"
-ALIGN="center"
-></TH
-></TR
-><TR
-><TD
-WIDTH="10%"
-ALIGN="left"
-VALIGN="bottom"
-><A
-HREF="games5.html"
-ACCESSKEY="P"
->Prev</A
-></TD
-><TD
-WIDTH="80%"
-ALIGN="center"
-VALIGN="bottom"
-></TD
-><TD
-WIDTH="10%"
-ALIGN="right"
-VALIGN="bottom"
->&nbsp;</TD
-></TR
-></TABLE
-><HR
-ALIGN="LEFT"
-WIDTH="100%"></DIV
-><DIV
-CLASS="SECT1"
-><H1
-CLASS="SECT1"
-><A
-NAME="AEN194"
-></A
->6. Putting it all together</H1
-><P
->So far you've learnt all the basics necessary to build a simple game. You should understand how to create Pygame objects, how Pygame
-displays objects, how it handles events, and how you can use physics to introduce some motion into your game. Now I'll just show how
-you can take all those chunks of code and put them together into a working game. What we need first is to let the ball hit the sides
-of the screen, and for the bat to be able to hit the ball, otherwise there's not going to be much game play involved. We do this
-using Pygame's <TT
-CLASS="FUNCTION"
->collision</TT
-> methods.</P
-><DIV
-CLASS="SECT2"
-><H2
-CLASS="SECT2"
-><A
-NAME="AEN198"
-></A
->6.1. Let the ball hit sides</H2
-><P
->The basics principle behind making it bounce of the sides is easy to grasp. You grab the coordinates of the four corners of the ball,
-and check to see if they correspond with the x or y coordinate of the edge of the screen. So if the top right and top left corners both
-have a y coordinate of zero, you know that the ball is currently on the top edge of the screen. We do all this in the <TT
-CLASS="FUNCTION"
->update</TT
-> function, after we've worked out the new position of the ball.</P
-><PRE
-CLASS="PROGRAMLISTING"
->if not self.area.contains(newpos):
- tl = not self.area.collidepoint(newpos.topleft)
- tr = not self.area.collidepoint(newpos.topright)
- bl = not self.area.collidepoint(newpos.bottomleft)
- br = not self.area.collidepoint(newpos.bottomright)
- if tr and tl or (br and bl):
- angle = -angle
- if tl and bl:
- self.offcourt(player=2)
- if tr and br:
- self.offcourt(player=1)
-
-self.vector = (angle,z)</PRE
-><P
->Here we check to see if the <TT
-CLASS="FUNCTION"
->area</TT
-> contains the new position of the ball (it always should, so we needn't have an <TT
-CLASS="FUNCTION"
->else</TT
-> clause, though in other circumstances you might want to consider it. We then check if the coordinates for the four corners
-are <SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->colliding</I
-></SPAN
-> with the area's edges, and create objects for each result. If they are, the objects will have a value of 1,
-or TRUE. If they don't, then the value will be <TT
-CLASS="FUNCTION"
->None</TT
->, or FALSE. We then see if it has hit the top or bottom, and if it
-has we change the ball's direction. Handily, using radians we can do this by simply reversing its positive/negative value. We also
-check to see if the ball has gone off the sides, and if it has we call the <TT
-CLASS="FUNCTION"
->offcourt</TT
-> function. This, in my game, resets the
-ball, adds 1 point to the score of the player specified when calling the function, and displays the new score.</P
-><P
->Finally, we recompile the vector based on the new angle. And that is it. The ball will now merrily bounce off the walls and go
-offcourt with good grace.</P
-></DIV
-><DIV
-CLASS="SECT2"
-><H2
-CLASS="SECT2"
-><A
-NAME="AEN210"
-></A
->6.2. Let the ball hit bats</H2
-><P
->Making the ball hit the bats is very similar to making it hit the sides of the screen. We still use the collide method, but this time
-we check to see if the rectangles for the ball and either bat collide. In this code I've also put in some extra code to avoid various
-glitches. You'll find that you'll have to put all sorts of extra code in to avoid glitches and bugs, so it's good to get used to seeing
-it.</P
-><PRE
-CLASS="PROGRAMLISTING"
->else:
- # Deflate the rectangles so you can't catch a ball behind the bat
- player1.rect.inflate(-3, -3)
- player2.rect.inflate(-3, -3)
-
- # Do ball and bat collide?
- # Note I put in an odd rule that sets self.hit to 1 when they collide, and unsets it in the next
- # iteration. this is to stop odd ball behaviour where it finds a collision *inside* the
- # bat, the ball reverses, and is still inside the bat, so bounces around inside.
- # This way, the ball can always escape and bounce away cleanly
- if self.rect.colliderect(player1.rect) == 1 and not self.hit:
- angle = math.pi - angle
- self.hit = not self.hit
- elif self.rect.colliderect(player2.rect) == 1 and not self.hit:
- angle = math.pi - angle
- self.hit = not self.hit
- elif self.hit:
- self.hit = not self.hit
-self.vector = (angle,z)</PRE
-><P
->We start this section with an <TT
-CLASS="FUNCTION"
->else</TT
-> statement, because this carries on from the previous chunk of code to check if the ball
-hits the sides. It makes sense that if it doesn't hit the sides, it might hit a bat, so we carry on the conditional statement. The
-first glitch to fix is to shrink the players' rectangles by 3 pixels in both dimensions, to stop the bat catching a ball that goes
-behind them (if you imagine you just move the bat so that as the ball travels behind it, the rectangles overlap, and so normally the
-ball would then have been "hit" - this prevents that).</P
-><P
->Next we check if the rectangles collide, with one more glitch fix. Notice that I've commented on these odd bits of code - it's always
-good to explain bits of code that are abnormal, both for others who look at your code, and so you understand it when you come back to
-it. The without the fix, the ball might hit a corner of the bat, change direction, and one frame later still find itself inside the
-bat. Then it would again think it has been hit, and change its direction. This can happen several times, making the ball's motion
-completely unrealistic. So we have a variable, <TT
-CLASS="FUNCTION"
->self.hit</TT
->, which we set to TRUE when it has been hit, and FALSE one frame
-later. When we check if the rectangles have collided, we also check if <TT
-CLASS="FUNCTION"
->self.hit</TT
-> is TRUE/FALSE, to stop internal bouncing.</P
-><P
->The important code here is pretty easy to understand. All rectangles have a <TT
-CLASS="FUNCTION"
->colliderect</TT
-> function, into which you feed the
-rectangle of another object, which returns 1 (TRUE) if the rectangles do overlap, and 0 (FALSE) if not. If they do, we can change the
-direction by subtracting the current angle from <TT
-CLASS="FUNCTION"
->pi</TT
-> (again, a handy trick you can do with radians, which will adjust the
-angle by 90 degrees and send it off in the right direction; you might find at this point that a thorough understanding of radians is
-in order!). Just to finish the glitch checking, we switch <TT
-CLASS="FUNCTION"
->self.hit</TT
-> back to FALSE if it's the frame after they were hit.</P
-><P
->We also then recompile the vector. You would of course want to remove the same line in the previous chunk of code, so that you only do
-this once after the <TT
-CLASS="FUNCTION"
->if-else</TT
-> conditional statement. And that's it! The combined code will now allow the ball to hit sides
-and bats.</P
-></DIV
-><DIV
-CLASS="SECT2"
-><H2
-CLASS="SECT2"
-><A
-NAME="AEN225"
-></A
->6.3. The Finished product</H2
-><P
->The final product, with all the bits of code thrown together, as well as some other bits ofcode to glue it all together, will look
-like this:</P
->
-<pre class="PROGRAMLISTING">
-<span style='color=#000000'></span><span style='color:#808080'><i>#!/usr/bin/python
-#
-# Tom's Pong
-# A simple pong game with realistic physics and AI
-# http://www.tomchance.uklinux.net/projects/pong.shtml
-#
-# Released under the GNU General Public License
-
-</i></span><span style='color:#000000'>VERSION </span><span style='color:#ff00ff'>=</span><span style='color:#000000'> </span><span style='color:#ff0000'>"0.4"
-
-</span><span style='color:#000000'><b>try</b></span><span style='color:#ff00ff'>:
-</span><span style='color:#000000'> </span><span style='color:#ff00ff'>import</span><span style='color:#000000'> sys
- </span><span style='color:#ff00ff'>import</span><span style='color:#000000'> random
- </span><span style='color:#ff00ff'>import</span><span style='color:#000000'> math
- </span><span style='color:#ff00ff'>import</span><span style='color:#000000'> os
- </span><span style='color:#ff00ff'>import</span><span style='color:#000000'> getopt
- </span><span style='color:#ff00ff'>import</span><span style='color:#000000'> pygame
- </span><span style='color:#ff00ff'>from</span><span style='color:#000000'> socket </span><span style='color:#ff00ff'>import</span><span style='color:#000000'> </span><span style='color:#ff00ff'>*
-</span><span style='color:#000000'> </span><span style='color:#ff00ff'>from</span><span style='color:#000000'> pygame</span><span style='color:#800080'>.</span><span style='color:#800000'>locals</span><span style='color:#000000'> </span><span style='color:#ff00ff'>import</span><span style='color:#000000'> </span><span style='color:#ff00ff'>*
-</span><span style='color:#000000'><b>except</b> ImportError, err</span><span style='color:#ff00ff'>:
-</span><span style='color:#000000'> <b>print</b> </span><span style='color:#ff0000'>"couldn't load module. </span><span style='color:#ff00ff'>%s</span><span style='color:#ff0000'>"</span><span style='color:#000000'> </span><span style='color:#ff00ff'>%</span><span style='color:#000000'> </span><span style='color:#ff00ff'>(</span><span style='color:#000000'>err</span><span style='color:#ff00ff'>)
-</span><span style='color:#000000'> sys</span><span style='color:#800080'>.</span><span style='color:#800000'>exit</span><span style='color:#ff00ff'>(</span><span style='color:#0000ff'>2</span><span style='color:#ff00ff'>)
-
-</span><span style='color:#000000'><b>def</b> load_png</span><span style='color:#ff00ff'>(</span><span style='color:#000000'>name</span><span style='color:#ff00ff'>):
-</span><span style='color:#808080'><i> """ Load image and return image object"""
-</i></span><span style='color:#000000'> fullname </span><span style='color:#ff00ff'>=</span><span style='color:#000000'> os</span><span style='color:#800080'>.</span><span style='color:#000000'>path</span><span style='color:#008000'>.j</span><span style='color:#000000'>oin</span><span style='color:#ff00ff'>(</span><span style='color:#ff0000'>'data'</span><span style='color:#000000'>, name</span><span style='color:#ff00ff'>)
-</span><span style='color:#000000'> <b>try</b></span><span style='color:#ff00ff'>:
-</span><span style='color:#000000'> image </span><span style='color:#ff00ff'>=</span><span style='color:#000000'> pygame</span><span style='color:#800080'>.</span><span style='color:#000000'>image</span><span style='color:#800080'>.</span><span style='color:#000000'>load</span><span style='color:#ff00ff'>(</span><span style='color:#000000'>fullname</span><span style='color:#ff00ff'>)
-</span><span style='color:#000000'> <b>if</b> image</span><span style='color:#800080'>.</span><span style='color:#000000'>get_alpha <b>is</b> </span><span style='color:#008000'>None</span><span style='color:#ff00ff'>:
-</span><span style='color:#000000'> image </span><span style='color:#ff00ff'>=</span><span style='color:#000000'> image</span><span style='color:#800080'>.</span><span style='color:#000000'>convert</span><span style='color:#ff00ff'>()
-</span><span style='color:#000000'> <b>else</b></span><span style='color:#ff00ff'>:
-</span><span style='color:#000000'> image </span><span style='color:#ff00ff'>=</span><span style='color:#000000'> image</span><span style='color:#800080'>.</span><span style='color:#000000'>convert_alpha</span><span style='color:#ff00ff'>()
-</span><span style='color:#000000'> <b>except</b> pygame</span><span style='color:#800080'>.</span><span style='color:#000000'>error, message</span><span style='color:#ff00ff'>:
-</span><span style='color:#000000'> <b>print</b> </span><span style='color:#ff0000'>'Cannot load image:'</span><span style='color:#000000'>, fullname
- <b>raise</b> SystemExit, message
- <b>return</b> image, image</span><span style='color:#800080'>.</span><span style='color:#000000'>get_rect</span><span style='color:#ff00ff'>()
-</span><span style='color:#000000'>
-<b>class</b> Ball</span><span style='color:#ff00ff'>(</span><span style='color:#000000'>pygame</span><span style='color:#800080'>.</span><span style='color:#000000'>sprite</span><span style='color:#800080'>.</span><span style='color:#000000'>Sprite</span><span style='color:#ff00ff'>):
-</span><span style='color:#808080'><i> """A ball that will move across the screen
- Returns: ball object
- Functions: update, calcnewpos
- Attributes: area, vector"""
-</i></span><span style='color:#000000'>
- <b>def</b> __init__</span><span style='color:#ff00ff'>(</span><span style='color:#008000'>self</span><span style='color:#000000'>, </span><span style='color:#ff00ff'>(</span><span style='color:#000000'>xy</span><span style='color:#ff00ff'>)</span><span style='color:#000000'>, vector</span><span style='color:#ff00ff'>):
-</span><span style='color:#000000'> pygame</span><span style='color:#800080'>.</span><span style='color:#000000'>sprite</span><span style='color:#800080'>.</span><span style='color:#000000'>Sprite</span><span style='color:#800080'>.</span><span style='color:#000000'>__init__</span><span style='color:#ff00ff'>(</span><span style='color:#008000'>self</span><span style='color:#ff00ff'>)
-</span><span style='color:#000000'> </span><span style='color:#008000'>self</span><span style='color:#800080'>.</span><span style='color:#000000'>image, </span><span style='color:#008000'>self</span><span style='color:#800080'>.</span><span style='color:#000000'>rect </span><span style='color:#ff00ff'>=</span><span style='color:#000000'> load_png</span><span style='color:#ff00ff'>(</span><span style='color:#ff0000'>'ball.png'</span><span style='color:#ff00ff'>)
-</span><span style='color:#000000'> screen </span><span style='color:#ff00ff'>=</span><span style='color:#000000'> pygame</span><span style='color:#800080'>.</span><span style='color:#000000'>display</span><span style='color:#800080'>.</span><span style='color:#000000'>get_surface</span><span style='color:#ff00ff'>()
-</span><span style='color:#000000'> </span><span style='color:#008000'>self</span><span style='color:#800080'>.</span><span style='color:#000000'>area </span><span style='color:#ff00ff'>=</span><span style='color:#000000'> screen</span><span style='color:#800080'>.</span><span style='color:#000000'>get_rect</span><span style='color:#ff00ff'>()
-</span><span style='color:#000000'> </span><span style='color:#008000'>self</span><span style='color:#800080'>.</span><span style='color:#000000'>vector </span><span style='color:#ff00ff'>=</span><span style='color:#000000'> vector
- </span><span style='color:#008000'>self</span><span style='color:#800080'>.</span><span style='color:#000000'>hit </span><span style='color:#ff00ff'>=</span><span style='color:#000000'> </span><span style='color:#0000ff'>0
-
-</span><span style='color:#000000'> <b>def</b> update</span><span style='color:#ff00ff'>(</span><span style='color:#008000'>self</span><span style='color:#ff00ff'>):
-</span><span style='color:#000000'> newpos </span><span style='color:#ff00ff'>=</span><span style='color:#000000'> </span><span style='color:#008000'>self</span><span style='color:#800080'>.</span><span style='color:#000000'>calcnewpos</span><span style='color:#ff00ff'>(</span><span style='color:#008000'>self</span><span style='color:#800080'>.</span><span style='color:#000000'>rect,</span><span style='color:#008000'>self</span><span style='color:#800080'>.</span><span style='color:#000000'>vector</span><span style='color:#ff00ff'>)
-</span><span style='color:#000000'> </span><span style='color:#008000'>self</span><span style='color:#800080'>.</span><span style='color:#000000'>rect </span><span style='color:#ff00ff'>=</span><span style='color:#000000'> newpos
- </span><span style='color:#ff00ff'>(</span><span style='color:#000000'>angle,z</span><span style='color:#ff00ff'>)</span><span style='color:#000000'> </span><span style='color:#ff00ff'>=</span><span style='color:#000000'> </span><span style='color:#008000'>self</span><span style='color:#800080'>.</span><span style='color:#000000'>vector
-
- <b>if</b> <b>not</b> </span><span style='color:#008000'>self</span><span style='color:#800080'>.</span><span style='color:#000000'>area</span><span style='color:#800080'>.</span><span style='color:#000000'>contains</span><span style='color:#ff00ff'>(</span><span style='color:#000000'>newpos</span><span style='color:#ff00ff'>):
-</span><span style='color:#000000'> tl </span><span style='color:#ff00ff'>=</span><span style='color:#000000'> <b>not</b> </span><span style='color:#008000'>self</span><span style='color:#800080'>.</span><span style='color:#000000'>area</span><span style='color:#800080'>.</span><span style='color:#000000'>collidepoint</span><span style='color:#ff00ff'>(</span><span style='color:#000000'>newpos</span><span style='color:#800080'>.</span><span style='color:#000000'>topleft</span><span style='color:#ff00ff'>)
-</span><span style='color:#000000'> tr </span><span style='color:#ff00ff'>=</span><span style='color:#000000'> <b>not</b> </span><span style='color:#008000'>self</span><span style='color:#800080'>.</span><span style='color:#000000'>area</span><span style='color:#800080'>.</span><span style='color:#000000'>collidepoint</span><span style='color:#ff00ff'>(</span><span style='color:#000000'>newpos</span><span style='color:#800080'>.</span><span style='color:#000000'>topright</span><span style='color:#ff00ff'>)
-</span><span style='color:#000000'> bl </span><span style='color:#ff00ff'>=</span><span style='color:#000000'> <b>not</b> </span><span style='color:#008000'>self</span><span style='color:#800080'>.</span><span style='color:#000000'>area</span><span style='color:#800080'>.</span><span style='color:#000000'>collidepoint</span><span style='color:#ff00ff'>(</span><span style='color:#000000'>newpos</span><span style='color:#800080'>.</span><span style='color:#000000'>bottomleft</span><span style='color:#ff00ff'>)
-</span><span style='color:#000000'> br </span><span style='color:#ff00ff'>=</span><span style='color:#000000'> <b>not</b> </span><span style='color:#008000'>self</span><span style='color:#800080'>.</span><span style='color:#000000'>area</span><span style='color:#800080'>.</span><span style='color:#000000'>collidepoint</span><span style='color:#ff00ff'>(</span><span style='color:#000000'>newpos</span><span style='color:#800080'>.</span><span style='color:#000000'>bottomright</span><span style='color:#ff00ff'>)
-</span><span style='color:#000000'> <b>if</b> tr and tl <b>or</b> </span><span style='color:#ff00ff'>(</span><span style='color:#000000'>br and bl</span><span style='color:#ff00ff'>):
-</span><span style='color:#000000'> angle </span><span style='color:#ff00ff'>=</span><span style='color:#000000'> </span><span style='color:#ff00ff'>-</span><span style='color:#000000'>angle
- <b>if</b> tl and bl</span><span style='color:#ff00ff'>:
-</span><span style='color:#000000'> </span><span style='color:#808080'><i>#self.offcourt()
-</i></span><span style='color:#000000'> angle </span><span style='color:#ff00ff'>=</span><span style='color:#000000'> math</span><span style='color:#800080'>.</span><span style='color:#000000'>pi </span><span style='color:#ff00ff'>-</span><span style='color:#000000'> angle
- <b>if</b> tr and br</span><span style='color:#ff00ff'>:
-</span><span style='color:#000000'> angle </span><span style='color:#ff00ff'>=</span><span style='color:#000000'> math</span><span style='color:#800080'>.</span><span style='color:#000000'>pi </span><span style='color:#ff00ff'>-</span><span style='color:#000000'> angle
- </span><span style='color:#808080'><i>#self.offcourt()
-</i></span><span style='color:#000000'> <b>else</b></span><span style='color:#ff00ff'>:
-</span><span style='color:#000000'> </span><span style='color:#808080'><i># Deflate the rectangles so you can't catch a ball behind the bat
-</i></span><span style='color:#000000'> player1</span><span style='color:#800080'>.</span><span style='color:#000000'>rect</span><span style='color:#800080'>.</span><span style='color:#000000'>inflate</span><span style='color:#ff00ff'>(-</span><span style='color:#0000ff'>3</span><span style='color:#000000'>, </span><span style='color:#ff00ff'>-</span><span style='color:#0000ff'>3</span><span style='color:#ff00ff'>)
-</span><span style='color:#000000'> player2</span><span style='color:#800080'>.</span><span style='color:#000000'>rect</span><span style='color:#800080'>.</span><span style='color:#000000'>inflate</span><span style='color:#ff00ff'>(-</span><span style='color:#0000ff'>3</span><span style='color:#000000'>, </span><span style='color:#ff00ff'>-</span><span style='color:#0000ff'>3</span><span style='color:#ff00ff'>)
-
-</span><span style='color:#000000'> </span><span style='color:#808080'><i># Do ball and bat collide?
-</i></span><span style='color:#000000'> </span><span style='color:#808080'><i># Note I put in an odd rule that sets self.hit to 1 when they collide, and unsets it in the next
-</i></span><span style='color:#000000'> </span><span style='color:#808080'><i># iteration. this is to stop odd ball behaviour where it finds a collision *inside* the
-</i></span><span style='color:#000000'> </span><span style='color:#808080'><i># bat, the ball reverses, and is still inside the bat, so bounces around inside.
-</i></span><span style='color:#000000'> </span><span style='color:#808080'><i># This way, the ball can always escape and bounce away cleanly
-</i></span><span style='color:#000000'> <b>if</b> </span><span style='color:#008000'>self</span><span style='color:#800080'>.</span><span style='color:#000000'>rect</span><span style='color:#800080'>.</span><span style='color:#000000'>colliderect</span><span style='color:#ff00ff'>(</span><span style='color:#000000'>player1</span><span style='color:#800080'>.</span><span style='color:#000000'>rect</span><span style='color:#ff00ff'>)</span><span style='color:#000000'> </span><span style='color:#ff00ff'>==</span><span style='color:#000000'> </span><span style='color:#0000ff'>1</span><span style='color:#000000'> and <b>not</b> </span><span style='color:#008000'>self</span><span style='color:#800080'>.</span><span style='color:#000000'>hit</span><span style='color:#ff00ff'>:
-</span><span style='color:#000000'> angle </span><span style='color:#ff00ff'>=</span><span style='color:#000000'> math</span><span style='color:#800080'>.</span><span style='color:#000000'>pi </span><span style='color:#ff00ff'>-</span><span style='color:#000000'> angle
- </span><span style='color:#008000'>self</span><span style='color:#800080'>.</span><span style='color:#000000'>hit </span><span style='color:#ff00ff'>=</span><span style='color:#000000'> <b>not</b> </span><span style='color:#008000'>self</span><span style='color:#800080'>.</span><span style='color:#000000'>hit
- <b>elif</b> </span><span style='color:#008000'>self</span><span style='color:#800080'>.</span><span style='color:#000000'>rect</span><span style='color:#800080'>.</span><span style='color:#000000'>colliderect</span><span style='color:#ff00ff'>(</span><span style='color:#000000'>player2</span><span style='color:#800080'>.</span><span style='color:#000000'>rect</span><span style='color:#ff00ff'>)</span><span style='color:#000000'> </span><span style='color:#ff00ff'>==</span><span style='color:#000000'> </span><span style='color:#0000ff'>1</span><span style='color:#000000'> and <b>not</b> </span><span style='color:#008000'>self</span><span style='color:#800080'>.</span><span style='color:#000000'>hit</span><span style='color:#ff00ff'>:
-</span><span style='color:#000000'> angle </span><span style='color:#ff00ff'>=</span><span style='color:#000000'> math</span><span style='color:#800080'>.</span><span style='color:#000000'>pi </span><span style='color:#ff00ff'>-</span><span style='color:#000000'> angle
- </span><span style='color:#008000'>self</span><span style='color:#800080'>.</span><span style='color:#000000'>hit </span><span style='color:#ff00ff'>=</span><span style='color:#000000'> <b>not</b> </span><span style='color:#008000'>self</span><span style='color:#800080'>.</span><span style='color:#000000'>hit
- <b>elif</b> </span><span style='color:#008000'>self</span><span style='color:#800080'>.</span><span style='color:#000000'>hit</span><span style='color:#ff00ff'>:
-</span><span style='color:#000000'> </span><span style='color:#008000'>self</span><span style='color:#800080'>.</span><span style='color:#000000'>hit </span><span style='color:#ff00ff'>=</span><span style='color:#000000'> <b>not</b> </span><span style='color:#008000'>self</span><span style='color:#800080'>.</span><span style='color:#000000'>hit
- </span><span style='color:#008000'>self</span><span style='color:#800080'>.</span><span style='color:#000000'>vector </span><span style='color:#ff00ff'>=</span><span style='color:#000000'> </span><span style='color:#ff00ff'>(</span><span style='color:#000000'>angle,z</span><span style='color:#ff00ff'>)
-
-</span><span style='color:#000000'> <b>def</b> calcnewpos</span><span style='color:#ff00ff'>(</span><span style='color:#008000'>self</span><span style='color:#000000'>,rect,vector</span><span style='color:#ff00ff'>):
-</span><span style='color:#000000'> </span><span style='color:#ff00ff'>(</span><span style='color:#000000'>angle,z</span><span style='color:#ff00ff'>)</span><span style='color:#000000'> </span><span style='color:#ff00ff'>=</span><span style='color:#000000'> vector
- </span><span style='color:#ff00ff'>(</span><span style='color:#000000'>dx,dy</span><span style='color:#ff00ff'>)</span><span style='color:#000000'> </span><span style='color:#ff00ff'>=</span><span style='color:#000000'> </span><span style='color:#ff00ff'>(</span><span style='color:#000000'>z</span><span style='color:#ff00ff'>*</span><span style='color:#000000'>math</span><span style='color:#800080'>.</span><span style='color:#000000'>cos</span><span style='color:#ff00ff'>(</span><span style='color:#000000'>angle</span><span style='color:#ff00ff'>)</span><span style='color:#000000'>,z</span><span style='color:#ff00ff'>*</span><span style='color:#000000'>math</span><span style='color:#800080'>.</span><span style='color:#000000'>sin</span><span style='color:#ff00ff'>(</span><span style='color:#000000'>angle</span><span style='color:#ff00ff'>))
-</span><span style='color:#000000'> <b>return</b> rect</span><span style='color:#800080'>.</span><span style='color:#000000'>move</span><span style='color:#ff00ff'>(</span><span style='color:#000000'>dx,dy</span><span style='color:#ff00ff'>)
-
-</span><span style='color:#000000'><b>class</b> Bat</span><span style='color:#ff00ff'>(</span><span style='color:#000000'>pygame</span><span style='color:#800080'>.</span><span style='color:#000000'>sprite</span><span style='color:#800080'>.</span><span style='color:#000000'>Sprite</span><span style='color:#ff00ff'>):
-</span><span style='color:#808080'><i> """Movable tennis 'bat' with which one hits the ball
- Returns: bat object
- Functions: reinit, update, moveup, movedown
- Attributes: which, speed"""
-</i></span><span style='color:#000000'>
- <b>def</b> __init__</span><span style='color:#ff00ff'>(</span><span style='color:#008000'>self</span><span style='color:#000000'>, side</span><span style='color:#ff00ff'>):
-</span><span style='color:#000000'> pygame</span><span style='color:#800080'>.</span><span style='color:#000000'>sprite</span><span style='color:#800080'>.</span><span style='color:#000000'>Sprite</span><span style='color:#800080'>.</span><span style='color:#000000'>__init__</span><span style='color:#ff00ff'>(</span><span style='color:#008000'>self</span><span style='color:#ff00ff'>)
-</span><span style='color:#000000'> </span><span style='color:#008000'>self</span><span style='color:#800080'>.</span><span style='color:#000000'>image, </span><span style='color:#008000'>self</span><span style='color:#800080'>.</span><span style='color:#000000'>rect </span><span style='color:#ff00ff'>=</span><span style='color:#000000'> load_png</span><span style='color:#ff00ff'>(</span><span style='color:#ff0000'>'bat.png'</span><span style='color:#ff00ff'>)
-</span><span style='color:#000000'> screen </span><span style='color:#ff00ff'>=</span><span style='color:#000000'> pygame</span><span style='color:#800080'>.</span><span style='color:#000000'>display</span><span style='color:#800080'>.</span><span style='color:#000000'>get_surface</span><span style='color:#ff00ff'>()
-</span><span style='color:#000000'> </span><span style='color:#008000'>self</span><span style='color:#800080'>.</span><span style='color:#000000'>area </span><span style='color:#ff00ff'>=</span><span style='color:#000000'> screen</span><span style='color:#800080'>.</span><span style='color:#000000'>get_rect</span><span style='color:#ff00ff'>()
-</span><span style='color:#000000'> </span><span style='color:#008000'>self</span><span style='color:#800080'>.</span><span style='color:#000000'>side </span><span style='color:#ff00ff'>=</span><span style='color:#000000'> side
- </span><span style='color:#008000'>self</span><span style='color:#800080'>.</span><span style='color:#000000'>speed </span><span style='color:#ff00ff'>=</span><span style='color:#000000'> </span><span style='color:#0000ff'>10
-</span><span style='color:#000000'> </span><span style='color:#008000'>self</span><span style='color:#800080'>.</span><span style='color:#000000'>state </span><span style='color:#ff00ff'>=</span><span style='color:#000000'> </span><span style='color:#ff0000'>"still"
-</span><span style='color:#000000'> </span><span style='color:#008000'>self</span><span style='color:#800080'>.</span><span style='color:#000000'>reinit</span><span style='color:#ff00ff'>()
-
-</span><span style='color:#000000'> <b>def</b> reinit</span><span style='color:#ff00ff'>(</span><span style='color:#008000'>self</span><span style='color:#ff00ff'>):
-</span><span style='color:#000000'> </span><span style='color:#008000'>self</span><span style='color:#800080'>.</span><span style='color:#000000'>state </span><span style='color:#ff00ff'>=</span><span style='color:#000000'> </span><span style='color:#ff0000'>"still"
-</span><span style='color:#000000'> </span><span style='color:#008000'>self</span><span style='color:#800080'>.</span><span style='color:#000000'>movepos </span><span style='color:#ff00ff'>=</span><span style='color:#000000'> </span><span style='color:#ff00ff'>[</span><span style='color:#0000ff'>0</span><span style='color:#000000'>,</span><span style='color:#0000ff'>0</span><span style='color:#ff00ff'>]
-</span><span style='color:#000000'> <b>if</b> </span><span style='color:#008000'>self</span><span style='color:#800080'>.</span><span style='color:#000000'>side </span><span style='color:#ff00ff'>==</span><span style='color:#000000'> </span><span style='color:#ff0000'>"left"</span><span style='color:#ff00ff'>:
-</span><span style='color:#000000'> </span><span style='color:#008000'>self</span><span style='color:#800080'>.</span><span style='color:#000000'>rect</span><span style='color:#800080'>.</span><span style='color:#000000'>midleft </span><span style='color:#ff00ff'>=</span><span style='color:#000000'> </span><span style='color:#008000'>self</span><span style='color:#800080'>.</span><span style='color:#000000'>area</span><span style='color:#800080'>.</span><span style='color:#000000'>midleft
- <b>elif</b> </span><span style='color:#008000'>self</span><span style='color:#800080'>.</span><span style='color:#000000'>side </span><span style='color:#ff00ff'>==</span><span style='color:#000000'> </span><span style='color:#ff0000'>"right"</span><span style='color:#ff00ff'>:
-</span><span style='color:#000000'> </span><span style='color:#008000'>self</span><span style='color:#800080'>.</span><span style='color:#000000'>rect</span><span style='color:#800080'>.</span><span style='color:#000000'>midright </span><span style='color:#ff00ff'>=</span><span style='color:#000000'> </span><span style='color:#008000'>self</span><span style='color:#800080'>.</span><span style='color:#000000'>area</span><span style='color:#800080'>.</span><span style='color:#000000'>midright
-
- <b>def</b> update</span><span style='color:#ff00ff'>(</span><span style='color:#008000'>self</span><span style='color:#ff00ff'>):
-</span><span style='color:#000000'> newpos </span><span style='color:#ff00ff'>=</span><span style='color:#000000'> </span><span style='color:#008000'>self</span><span style='color:#800080'>.</span><span style='color:#000000'>rect</span><span style='color:#800080'>.</span><span style='color:#000000'>move</span><span style='color:#ff00ff'>(</span><span style='color:#008000'>self</span><span style='color:#800080'>.</span><span style='color:#000000'>movepos</span><span style='color:#ff00ff'>)
-</span><span style='color:#000000'> <b>if</b> </span><span style='color:#008000'>self</span><span style='color:#800080'>.</span><span style='color:#000000'>area</span><span style='color:#800080'>.</span><span style='color:#000000'>contains</span><span style='color:#ff00ff'>(</span><span style='color:#000000'>newpos</span><span style='color:#ff00ff'>):
-</span><span style='color:#000000'> </span><span style='color:#008000'>self</span><span style='color:#800080'>.</span><span style='color:#000000'>rect </span><span style='color:#ff00ff'>=</span><span style='color:#000000'> newpos
- pygame</span><span style='color:#800080'>.</span><span style='color:#000000'>event</span><span style='color:#800080'>.</span><span style='color:#000000'>pump</span><span style='color:#ff00ff'>()
-
-</span><span style='color:#000000'> <b>def</b> moveup</span><span style='color:#ff00ff'>(</span><span style='color:#008000'>self</span><span style='color:#ff00ff'>):
-</span><span style='color:#000000'> </span><span style='color:#008000'>self</span><span style='color:#800080'>.</span><span style='color:#000000'>movepos</span><span style='color:#ff00ff'>[</span><span style='color:#0000ff'>1</span><span style='color:#ff00ff'>]</span><span style='color:#000000'> </span><span style='color:#ff00ff'>=</span><span style='color:#000000'> </span><span style='color:#008000'>self</span><span style='color:#800080'>.</span><span style='color:#000000'>movepos</span><span style='color:#ff00ff'>[</span><span style='color:#0000ff'>1</span><span style='color:#ff00ff'>]</span><span style='color:#000000'> </span><span style='color:#ff00ff'>-</span><span style='color:#000000'> </span><span style='color:#ff00ff'>(</span><span style='color:#008000'>self</span><span style='color:#800080'>.</span><span style='color:#000000'>speed</span><span style='color:#ff00ff'>)
-</span><span style='color:#000000'> </span><span style='color:#008000'>self</span><span style='color:#800080'>.</span><span style='color:#000000'>state </span><span style='color:#ff00ff'>=</span><span style='color:#000000'> </span><span style='color:#ff0000'>"moveup"
-
-</span><span style='color:#000000'> <b>def</b> movedown</span><span style='color:#ff00ff'>(</span><span style='color:#008000'>self</span><span style='color:#ff00ff'>):
-</span><span style='color:#000000'> </span><span style='color:#008000'>self</span><span style='color:#800080'>.</span><span style='color:#000000'>movepos</span><span style='color:#ff00ff'>[</span><span style='color:#0000ff'>1</span><span style='color:#ff00ff'>]</span><span style='color:#000000'> </span><span style='color:#ff00ff'>=</span><span style='color:#000000'> </span><span style='color:#008000'>self</span><span style='color:#800080'>.</span><span style='color:#000000'>movepos</span><span style='color:#ff00ff'>[</span><span style='color:#0000ff'>1</span><span style='color:#ff00ff'>]</span><span style='color:#000000'> </span><span style='color:#ff00ff'>+</span><span style='color:#000000'> </span><span style='color:#ff00ff'>(</span><span style='color:#008000'>self</span><span style='color:#800080'>.</span><span style='color:#000000'>speed</span><span style='color:#ff00ff'>)
-</span><span style='color:#000000'> </span><span style='color:#008000'>self</span><span style='color:#800080'>.</span><span style='color:#000000'>state </span><span style='color:#ff00ff'>=</span><span style='color:#000000'> </span><span style='color:#ff0000'>"movedown"
-
-
-</span><span style='color:#000000'><b>def</b> main</span><span style='color:#ff00ff'>():
-</span><span style='color:#000000'> </span><span style='color:#808080'><i># Initialise screen
-</i></span><span style='color:#000000'> pygame</span><span style='color:#800080'>.</span><span style='color:#000000'>init</span><span style='color:#ff00ff'>()
-</span><span style='color:#000000'> screen </span><span style='color:#ff00ff'>=</span><span style='color:#000000'> pygame</span><span style='color:#800080'>.</span><span style='color:#000000'>display</span><span style='color:#800080'>.</span><span style='color:#000000'>set_mode</span><span style='color:#ff00ff'>((</span><span style='color:#0000ff'>640</span><span style='color:#000000'>, </span><span style='color:#0000ff'>480</span><span style='color:#ff00ff'>))
-</span><span style='color:#000000'> pygame</span><span style='color:#800080'>.</span><span style='color:#000000'>display</span><span style='color:#800080'>.</span><span style='color:#000000'>set_caption</span><span style='color:#ff00ff'>(</span><span style='color:#ff0000'>'Basic Pong'</span><span style='color:#ff00ff'>)
-
-</span><span style='color:#000000'> </span><span style='color:#808080'><i># Fill background
-</i></span><span style='color:#000000'> background </span><span style='color:#ff00ff'>=</span><span style='color:#000000'> pygame</span><span style='color:#800080'>.</span><span style='color:#000000'>Surface</span><span style='color:#ff00ff'>(</span><span style='color:#000000'>screen</span><span style='color:#800080'>.</span><span style='color:#000000'>get_size</span><span style='color:#ff00ff'>())
-</span><span style='color:#000000'> background </span><span style='color:#ff00ff'>=</span><span style='color:#000000'> background</span><span style='color:#800080'>.</span><span style='color:#000000'>convert</span><span style='color:#ff00ff'>()
-</span><span style='color:#000000'> background</span><span style='color:#800080'>.</span><span style='color:#000000'>fill</span><span style='color:#ff00ff'>((</span><span style='color:#0000ff'>0</span><span style='color:#000000'>, </span><span style='color:#0000ff'>0</span><span style='color:#000000'>, </span><span style='color:#0000ff'>0</span><span style='color:#ff00ff'>))
-</span><span style='color:#000000'>
- </span><span style='color:#808080'><i># Initialise players
-</i></span><span style='color:#000000'> <b>global</b> player1
- <b>global</b> player2
- player1 </span><span style='color:#ff00ff'>=</span><span style='color:#000000'> Bat</span><span style='color:#ff00ff'>(</span><span style='color:#ff0000'>"left"</span><span style='color:#ff00ff'>)
-</span><span style='color:#000000'> player2 </span><span style='color:#ff00ff'>=</span><span style='color:#000000'> Bat</span><span style='color:#ff00ff'>(</span><span style='color:#ff0000'>"right"</span><span style='color:#ff00ff'>)
-</span><span style='color:#000000'>
- </span><span style='color:#808080'><i># Initialise ball
-</i></span><span style='color:#000000'> speed </span><span style='color:#ff00ff'>=</span><span style='color:#000000'> </span><span style='color:#0000ff'>13
-</span><span style='color:#000000'> rand </span><span style='color:#ff00ff'>=</span><span style='color:#000000'> </span><span style='color:#ff00ff'>((</span><span style='color:#0000ff'>0</span><span style='color:#800080'>.1</span><span style='color:#000000'> </span><span style='color:#ff00ff'>*</span><span style='color:#000000'> </span><span style='color:#ff00ff'>(</span><span style='color:#000000'>random</span><span style='color:#800080'>.</span><span style='color:#000000'>randint</span><span style='color:#ff00ff'>(</span><span style='color:#0000ff'>5</span><span style='color:#000000'>,</span><span style='color:#0000ff'>8</span><span style='color:#ff00ff'>))))
-</span><span style='color:#000000'> ball </span><span style='color:#ff00ff'>=</span><span style='color:#000000'> Ball</span><span style='color:#ff00ff'>((</span><span style='color:#0000ff'>0</span><span style='color:#000000'>,</span><span style='color:#0000ff'>0</span><span style='color:#ff00ff'>)</span><span style='color:#000000'>,</span><span style='color:#ff00ff'>(</span><span style='color:#0000ff'>0</span><span style='color:#800080'>.47</span><span style='color:#000000'>,speed</span><span style='color:#ff00ff'>))
-</span><span style='color:#000000'>
- </span><span style='color:#808080'><i># Initialise sprites
-</i></span><span style='color:#000000'> playersprites </span><span style='color:#ff00ff'>=</span><span style='color:#000000'> pygame</span><span style='color:#800080'>.</span><span style='color:#000000'>sprite</span><span style='color:#800080'>.</span><span style='color:#000000'>RenderPlain</span><span style='color:#ff00ff'>((</span><span style='color:#000000'>player1, player2</span><span style='color:#ff00ff'>))
-</span><span style='color:#000000'> ballsprite </span><span style='color:#ff00ff'>=</span><span style='color:#000000'> pygame</span><span style='color:#800080'>.</span><span style='color:#000000'>sprite</span><span style='color:#800080'>.</span><span style='color:#000000'>RenderPlain</span><span style='color:#ff00ff'>(</span><span style='color:#000000'>ball</span><span style='color:#ff00ff'>)
-</span><span style='color:#000000'>
- </span><span style='color:#808080'><i># Blit everything to the screen
-</i></span><span style='color:#000000'> screen</span><span style='color:#800080'>.</span><span style='color:#000000'>blit</span><span style='color:#ff00ff'>(</span><span style='color:#000000'>background, </span><span style='color:#ff00ff'>(</span><span style='color:#0000ff'>0</span><span style='color:#000000'>, </span><span style='color:#0000ff'>0</span><span style='color:#ff00ff'>))
-</span><span style='color:#000000'> pygame</span><span style='color:#800080'>.</span><span style='color:#000000'>display</span><span style='color:#800080'>.</span><span style='color:#000000'>flip</span><span style='color:#ff00ff'>()
-
-</span><span style='color:#000000'> </span><span style='color:#808080'><i># Initialise clock
-</i></span><span style='color:#000000'> clock </span><span style='color:#ff00ff'>=</span><span style='color:#000000'> pygame</span><span style='color:#800080'>.</span><span style='color:#000000'>time</span><span style='color:#800080'>.</span><span style='color:#000000'>Clock</span><span style='color:#ff00ff'>()
-
-</span><span style='color:#000000'> </span><span style='color:#808080'><i># Event loop
-</i></span><span style='color:#000000'> <b>while</b> </span><span style='color:#0000ff'>1</span><span style='color:#ff00ff'>:
-</span><span style='color:#000000'> </span><span style='color:#808080'><i># Make sure game doesn't run at more than 60 frames per second
-</i></span><span style='color:#000000'> clock</span><span style='color:#800080'>.</span><span style='color:#000000'>tick</span><span style='color:#ff00ff'>(</span><span style='color:#0000ff'>60</span><span style='color:#ff00ff'>)
-
-</span><span style='color:#000000'> <b>for</b> event <b>in</b> pygame</span><span style='color:#800080'>.</span><span style='color:#000000'>event</span><span style='color:#800080'>.</span><span style='color:#000000'>get</span><span style='color:#ff00ff'>():
-</span><span style='color:#000000'> <b>if</b> event</span><span style='color:#800080'>.</span><span style='color:#800000'>type</span><span style='color:#000000'> </span><span style='color:#ff00ff'>==</span><span style='color:#000000'> QUIT</span><span style='color:#ff00ff'>:
-</span><span style='color:#000000'> <b>return
-</b> <b>elif</b> event</span><span style='color:#800080'>.</span><span style='color:#800000'>type</span><span style='color:#000000'> </span><span style='color:#ff00ff'>==</span><span style='color:#000000'> KEYDOWN</span><span style='color:#ff00ff'>:
-</span><span style='color:#000000'> <b>if</b> event</span><span style='color:#800080'>.</span><span style='color:#000000'>key </span><span style='color:#ff00ff'>==</span><span style='color:#000000'> K_a</span><span style='color:#ff00ff'>:
-</span><span style='color:#000000'> player1</span><span style='color:#800080'>.</span><span style='color:#000000'>moveup</span><span style='color:#ff00ff'>()
-</span><span style='color:#000000'> <b>if</b> event</span><span style='color:#800080'>.</span><span style='color:#000000'>key </span><span style='color:#ff00ff'>==</span><span style='color:#000000'> K_z</span><span style='color:#ff00ff'>:
-</span><span style='color:#000000'> player1</span><span style='color:#800080'>.</span><span style='color:#000000'>movedown</span><span style='color:#ff00ff'>()
-</span><span style='color:#000000'> <b>if</b> event</span><span style='color:#800080'>.</span><span style='color:#000000'>key </span><span style='color:#ff00ff'>==</span><span style='color:#000000'> K_UP</span><span style='color:#ff00ff'>:
-</span><span style='color:#000000'> player2</span><span style='color:#800080'>.</span><span style='color:#000000'>moveup</span><span style='color:#ff00ff'>()
-</span><span style='color:#000000'> <b>if</b> event</span><span style='color:#800080'>.</span><span style='color:#000000'>key </span><span style='color:#ff00ff'>==</span><span style='color:#000000'> K_DOWN</span><span style='color:#ff00ff'>:
-</span><span style='color:#000000'> player2</span><span style='color:#800080'>.</span><span style='color:#000000'>movedown</span><span style='color:#ff00ff'>()
-</span><span style='color:#000000'> <b>elif</b> event</span><span style='color:#800080'>.</span><span style='color:#800000'>type</span><span style='color:#000000'> </span><span style='color:#ff00ff'>==</span><span style='color:#000000'> KEYUP</span><span style='color:#ff00ff'>:
-</span><span style='color:#000000'> <b>if</b> event</span><span style='color:#800080'>.</span><span style='color:#000000'>key </span><span style='color:#ff00ff'>==</span><span style='color:#000000'> K_a <b>or</b> event</span><span style='color:#800080'>.</span><span style='color:#000000'>key </span><span style='color:#ff00ff'>==</span><span style='color:#000000'> K_z</span><span style='color:#ff00ff'>:
-</span><span style='color:#000000'> player1</span><span style='color:#800080'>.</span><span style='color:#000000'>movepos </span><span style='color:#ff00ff'>=</span><span style='color:#000000'> </span><span style='color:#ff00ff'>[</span><span style='color:#0000ff'>0</span><span style='color:#000000'>,</span><span style='color:#0000ff'>0</span><span style='color:#ff00ff'>]
-</span><span style='color:#000000'> player1</span><span style='color:#800080'>.</span><span style='color:#000000'>state </span><span style='color:#ff00ff'>=</span><span style='color:#000000'> </span><span style='color:#ff0000'>"still"
-</span><span style='color:#000000'> <b>if</b> event</span><span style='color:#800080'>.</span><span style='color:#000000'>key </span><span style='color:#ff00ff'>==</span><span style='color:#000000'> K_UP <b>or</b> event</span><span style='color:#800080'>.</span><span style='color:#000000'>key </span><span style='color:#ff00ff'>==</span><span style='color:#000000'> K_DOWN</span><span style='color:#ff00ff'>:
-</span><span style='color:#000000'> player2</span><span style='color:#800080'>.</span><span style='color:#000000'>movepos </span><span style='color:#ff00ff'>=</span><span style='color:#000000'> </span><span style='color:#ff00ff'>[</span><span style='color:#0000ff'>0</span><span style='color:#000000'>,</span><span style='color:#0000ff'>0</span><span style='color:#ff00ff'>]
-</span><span style='color:#000000'> player2</span><span style='color:#800080'>.</span><span style='color:#000000'>state </span><span style='color:#ff00ff'>=</span><span style='color:#000000'> </span><span style='color:#ff0000'>"still"
-
-</span><span style='color:#000000'> screen</span><span style='color:#800080'>.</span><span style='color:#000000'>blit</span><span style='color:#ff00ff'>(</span><span style='color:#000000'>background, ball</span><span style='color:#800080'>.</span><span style='color:#000000'>rect</span><span style='color:#ff00ff'>,</span><span style='color:#000000'> ball</span><span style='color:#800080'>.</span><span style='color:#000000'>rect</span><span style='color:#ff00ff'>)
-</span><span style='color:#000000'> screen</span><span style='color:#800080'>.</span><span style='color:#000000'>blit</span><span style='color:#ff00ff'>(</span><span style='color:#000000'>background, player1</span><span style='color:#800080'>.</span><span style='color:#000000'>rect</span><span style='color:#ff00ff'>,</span><span style='color:#000000'> player1</span><span style='color:#800080'>.</span><span style='color:#000000'>rect</span><span style='color:#ff00ff'>)
-</span><span style='color:#000000'> screen</span><span style='color:#800080'>.</span><span style='color:#000000'>blit</span><span style='color:#ff00ff'>(</span><span style='color:#000000'>background, player2</span><span style='color:#800080'>.</span><span style='color:#000000'>rect</span><span style='color:#ff00ff'>,</span><span style='color:#000000'> player2</span><span style='color:#800080'>.</span><span style='color:#000000'>rect</span><span style='color:#ff00ff'>)
-</span><span style='color:#000000'> ballsprite</span><span style='color:#800080'>.</span><span style='color:#000000'>update</span><span style='color:#ff00ff'>()
-</span><span style='color:#000000'> playersprites</span><span style='color:#800080'>.</span><span style='color:#000000'>update</span><span style='color:#ff00ff'>()
-</span><span style='color:#000000'> ballsprite</span><span style='color:#800080'>.</span><span style='color:#000000'>draw</span><span style='color:#ff00ff'>(</span><span style='color:#000000'>screen</span><span style='color:#ff00ff'>)
-</span><span style='color:#000000'> playersprites</span><span style='color:#800080'>.</span><span style='color:#000000'>draw</span><span style='color:#ff00ff'>(</span><span style='color:#000000'>screen</span><span style='color:#ff00ff'>)
-</span><span style='color:#000000'> pygame</span><span style='color:#800080'>.</span><span style='color:#000000'>display</span><span style='color:#800080'>.</span><span style='color:#000000'>flip</span><span style='color:#ff00ff'>()
-</span><span style='color:#000000'>
-
-<b>if</b> __name__ </span><span style='color:#ff00ff'>==</span><span style='color:#000000'> </span><span style='color:#ff0000'>'__main__'</span><span style='color:#ff00ff'>:</span><span style='color:#000000'> main</span><span style='color:#ff00ff'>()
-</span></pre>
-
-<P
->As well as showing you the final product, I'll point you back to TomPong, upon which all of this is based. Download it, have a look
-at the source code, and you'll see a full implementation of pong using all of the code you've seen in this tutorial, as well as lots of
-other code I've added in various versions, such as some extra physics for spinning, and various other bug and glitch fixes.</P
-><P
->Oh, find TomPong at <A
-HREF="http://www.tomchance.uklinux.net/projects/pong.shtml"
-TARGET="_top"
-><I
-CLASS="CITETITLE"
->http://www.tomchance.uklinux.net/projects/pong.shtml</I
-></A
->.</P
-></DIV
-></DIV
-><DIV
-CLASS="NAVFOOTER"
-><HR
-ALIGN="LEFT"
-WIDTH="100%"><TABLE
-SUMMARY="Footer navigation table"
-WIDTH="100%"
-BORDER="0"
-CELLPADDING="0"
-CELLSPACING="0"
-><TR
-><TD
-WIDTH="33%"
-ALIGN="left"
-VALIGN="top"
-><A
-HREF="games5.html"
-ACCESSKEY="P"
->Prev</A
-></TD
-><TD
-WIDTH="34%"
-ALIGN="center"
-VALIGN="top"
-><A
-HREF="MakeGames.html"
-ACCESSKEY="H"
->Home</A
-></TD
-><TD
-WIDTH="33%"
-ALIGN="right"
-VALIGN="top"
->&nbsp;</TD
-></TR
-><TR
-><TD
-WIDTH="33%"
-ALIGN="left"
-VALIGN="top"
->User-controllable objects</TD
-><TD
-WIDTH="34%"
-ALIGN="center"
-VALIGN="top"
->&nbsp;</TD
-><TD
-WIDTH="33%"
-ALIGN="right"
-VALIGN="top"
->&nbsp;</TD
-></TR
-></TABLE
->
-
-</body>
-</html>
-
-
-
-</DIV
-></BODY
-></HTML
->
diff --git a/pygame/docs/tut/tom/radians.png b/pygame/docs/tut/tom/radians.png
deleted file mode 100755
index 4569df1..0000000
--- a/pygame/docs/tut/tom/radians.png
+++ /dev/null
Binary files differ
diff --git a/pygame/examples/__init__.py b/pygame/examples/__init__.py
deleted file mode 100755
index e69de29..0000000
--- a/pygame/examples/__init__.py
+++ /dev/null
diff --git a/pygame/examples/aacircle.py b/pygame/examples/aacircle.py
deleted file mode 100755
index a59360c..0000000
--- a/pygame/examples/aacircle.py
+++ /dev/null
@@ -1,29 +0,0 @@
-#!/usr/bin/env python
-
-"""Proof of concept gfxdraw example"""
-
-import pygame
-import pygame.gfxdraw
-
-def main():
- pygame.init()
- screen = pygame.display.set_mode((500,500))
- screen.fill((255, 0, 0))
- s = pygame.Surface(screen.get_size(), pygame.SRCALPHA, 32)
- pygame.gfxdraw.aacircle(s, 250, 250, 200, (0, 0, 0))
- screen.blit(s, (0, 0))
- pygame.display.flip()
- try:
- while 1:
- event = pygame.event.wait()
- if event.type == pygame.QUIT:
- break
- if event.type == pygame.KEYDOWN:
- if event.key == pygame.K_ESCAPE or event.unicode == 'q':
- break
- pygame.display.flip()
- finally:
- pygame.quit()
-
-if __name__ == '__main__':
- main()
diff --git a/pygame/examples/aliens.py b/pygame/examples/aliens.py
deleted file mode 100755
index 4f08e8a..0000000
--- a/pygame/examples/aliens.py
+++ /dev/null
@@ -1,322 +0,0 @@
-#!/usr/bin/env python
-
-import random, os.path
-
-#import basic pygame modules
-import pygame
-from pygame.locals import *
-
-#see if we can load more than standard BMP
-if not pygame.image.get_extended():
- raise SystemExit("Sorry, extended image module required")
-
-
-#game constants
-MAX_SHOTS = 2 #most player bullets onscreen
-ALIEN_ODDS = 22 #chances a new alien appears
-BOMB_ODDS = 60 #chances a new bomb will drop
-ALIEN_RELOAD = 12 #frames between new aliens
-SCREENRECT = Rect(0, 0, 640, 480)
-SCORE = 0
-
-main_dir = os.path.split(os.path.abspath(__file__))[0]
-
-def load_image(file):
- "loads an image, prepares it for play"
- file = os.path.join(main_dir, 'data', file)
- try:
- surface = pygame.image.load(file)
- except pygame.error:
- raise SystemExit('Could not load image "%s" %s'%(file, pygame.get_error()))
- return surface.convert()
-
-def load_images(*files):
- imgs = []
- for file in files:
- imgs.append(load_image(file))
- return imgs
-
-
-class dummysound:
- def play(self): pass
-
-def load_sound(file):
- if not pygame.mixer: return dummysound()
- file = os.path.join(main_dir, 'data', file)
- try:
- sound = pygame.mixer.Sound(file)
- return sound
- except pygame.error:
- print ('Warning, unable to load, %s' % file)
- return dummysound()
-
-
-
-# each type of game object gets an init and an
-# update function. the update function is called
-# once per frame, and it is when each object should
-# change it's current position and state. the Player
-# object actually gets a "move" function instead of
-# update, since it is passed extra information about
-# the keyboard
-
-
-class Player(pygame.sprite.Sprite):
- speed = 10
- bounce = 24
- gun_offset = -11
- images = []
- def __init__(self):
- pygame.sprite.Sprite.__init__(self, self.containers)
- self.image = self.images[0]
- self.rect = self.image.get_rect(midbottom=SCREENRECT.midbottom)
- self.reloading = 0
- self.origtop = self.rect.top
- self.facing = -1
-
- def move(self, direction):
- if direction: self.facing = direction
- self.rect.move_ip(direction*self.speed, 0)
- self.rect = self.rect.clamp(SCREENRECT)
- if direction < 0:
- self.image = self.images[0]
- elif direction > 0:
- self.image = self.images[1]
- self.rect.top = self.origtop - (self.rect.left//self.bounce%2)
-
- def gunpos(self):
- pos = self.facing*self.gun_offset + self.rect.centerx
- return pos, self.rect.top
-
-
-class Alien(pygame.sprite.Sprite):
- speed = 13
- animcycle = 12
- images = []
- def __init__(self):
- pygame.sprite.Sprite.__init__(self, self.containers)
- self.image = self.images[0]
- self.rect = self.image.get_rect()
- self.facing = random.choice((-1,1)) * Alien.speed
- self.frame = 0
- if self.facing < 0:
- self.rect.right = SCREENRECT.right
-
- def update(self):
- self.rect.move_ip(self.facing, 0)
- if not SCREENRECT.contains(self.rect):
- self.facing = -self.facing;
- self.rect.top = self.rect.bottom + 1
- self.rect = self.rect.clamp(SCREENRECT)
- self.frame = self.frame + 1
- self.image = self.images[self.frame//self.animcycle%3]
-
-
-class Explosion(pygame.sprite.Sprite):
- defaultlife = 12
- animcycle = 3
- images = []
- def __init__(self, actor):
- pygame.sprite.Sprite.__init__(self, self.containers)
- self.image = self.images[0]
- self.rect = self.image.get_rect(center=actor.rect.center)
- self.life = self.defaultlife
-
- def update(self):
- self.life = self.life - 1
- self.image = self.images[self.life//self.animcycle%2]
- if self.life <= 0: self.kill()
-
-
-class Shot(pygame.sprite.Sprite):
- speed = -11
- images = []
- def __init__(self, pos):
- pygame.sprite.Sprite.__init__(self, self.containers)
- self.image = self.images[0]
- self.rect = self.image.get_rect(midbottom=pos)
-
- def update(self):
- self.rect.move_ip(0, self.speed)
- if self.rect.top <= 0:
- self.kill()
-
-
-class Bomb(pygame.sprite.Sprite):
- speed = 9
- images = []
- def __init__(self, alien):
- pygame.sprite.Sprite.__init__(self, self.containers)
- self.image = self.images[0]
- self.rect = self.image.get_rect(midbottom=
- alien.rect.move(0,5).midbottom)
-
- def update(self):
- self.rect.move_ip(0, self.speed)
- if self.rect.bottom >= 470:
- Explosion(self)
- self.kill()
-
-
-class Score(pygame.sprite.Sprite):
- def __init__(self):
- pygame.sprite.Sprite.__init__(self)
- self.font = pygame.font.Font(None, 20)
- self.font.set_italic(1)
- self.color = Color('white')
- self.lastscore = -1
- self.update()
- self.rect = self.image.get_rect().move(10, 450)
-
- def update(self):
- if SCORE != self.lastscore:
- self.lastscore = SCORE
- msg = "Score: %d" % SCORE
- self.image = self.font.render(msg, 0, self.color)
-
-
-
-def main(winstyle = 0):
- # Initialize pygame
- pygame.init()
- if pygame.mixer and not pygame.mixer.get_init():
- print ('Warning, no sound')
- pygame.mixer = None
-
- # Set the display mode
- winstyle = 0 # |FULLSCREEN
- bestdepth = pygame.display.mode_ok(SCREENRECT.size, winstyle, 32)
- screen = pygame.display.set_mode(SCREENRECT.size, winstyle, bestdepth)
-
- #Load images, assign to sprite classes
- #(do this before the classes are used, after screen setup)
- img = load_image('player1.gif')
- Player.images = [img, pygame.transform.flip(img, 1, 0)]
- img = load_image('explosion1.gif')
- Explosion.images = [img, pygame.transform.flip(img, 1, 1)]
- Alien.images = load_images('alien1.gif', 'alien2.gif', 'alien3.gif')
- Bomb.images = [load_image('bomb.gif')]
- Shot.images = [load_image('shot.gif')]
-
- #decorate the game window
- icon = pygame.transform.scale(Alien.images[0], (32, 32))
- pygame.display.set_icon(icon)
- pygame.display.set_caption('Pygame Aliens')
- pygame.mouse.set_visible(0)
-
- #create the background, tile the bgd image
- bgdtile = load_image('background.gif')
- background = pygame.Surface(SCREENRECT.size)
- for x in range(0, SCREENRECT.width, bgdtile.get_width()):
- background.blit(bgdtile, (x, 0))
- screen.blit(background, (0,0))
- pygame.display.flip()
-
- #load the sound effects
- boom_sound = load_sound('boom.wav')
- shoot_sound = load_sound('car_door.wav')
- if pygame.mixer:
- music = os.path.join(main_dir, 'data', 'house_lo.wav')
- pygame.mixer.music.load(music)
- pygame.mixer.music.play(-1)
-
- # Initialize Game Groups
- aliens = pygame.sprite.Group()
- shots = pygame.sprite.Group()
- bombs = pygame.sprite.Group()
- all = pygame.sprite.RenderUpdates()
- lastalien = pygame.sprite.GroupSingle()
-
- #assign default groups to each sprite class
- Player.containers = all
- Alien.containers = aliens, all, lastalien
- Shot.containers = shots, all
- Bomb.containers = bombs, all
- Explosion.containers = all
- Score.containers = all
-
- #Create Some Starting Values
- global score
- alienreload = ALIEN_RELOAD
- kills = 0
- clock = pygame.time.Clock()
-
- #initialize our starting sprites
- global SCORE
- player = Player()
- Alien() #note, this 'lives' because it goes into a sprite group
- if pygame.font:
- all.add(Score())
-
-
- while player.alive():
-
- #get input
- for event in pygame.event.get():
- if event.type == QUIT or \
- (event.type == KEYDOWN and event.key == K_ESCAPE):
- return
- keystate = pygame.key.get_pressed()
-
- # clear/erase the last drawn sprites
- all.clear(screen, background)
-
- #update all the sprites
- all.update()
-
- #handle player input
- direction = keystate[K_RIGHT] - keystate[K_LEFT]
- player.move(direction)
- firing = keystate[K_SPACE]
- if not player.reloading and firing and len(shots) < MAX_SHOTS:
- Shot(player.gunpos())
- shoot_sound.play()
- player.reloading = firing
-
- # Create new alien
- if alienreload:
- alienreload = alienreload - 1
- elif not int(random.random() * ALIEN_ODDS):
- Alien()
- alienreload = ALIEN_RELOAD
-
- # Drop bombs
- if lastalien and not int(random.random() * BOMB_ODDS):
- Bomb(lastalien.sprite)
-
- # Detect collisions
- for alien in pygame.sprite.spritecollide(player, aliens, 1):
- boom_sound.play()
- Explosion(alien)
- Explosion(player)
- SCORE = SCORE + 1
- player.kill()
-
- for alien in pygame.sprite.groupcollide(shots, aliens, 1, 1).keys():
- boom_sound.play()
- Explosion(alien)
- SCORE = SCORE + 1
-
- for bomb in pygame.sprite.spritecollide(player, bombs, 1):
- boom_sound.play()
- Explosion(player)
- Explosion(bomb)
- player.kill()
-
- #draw the scene
- dirty = all.draw(screen)
- pygame.display.update(dirty)
-
- #cap the framerate
- clock.tick(40)
-
- if pygame.mixer:
- pygame.mixer.music.fadeout(1000)
- pygame.time.wait(1000)
- pygame.quit()
-
-
-
-#call the "main" function if running this script
-if __name__ == '__main__': main()
-
diff --git a/pygame/examples/arraydemo.py b/pygame/examples/arraydemo.py
deleted file mode 100755
index 2c8fc20..0000000
--- a/pygame/examples/arraydemo.py
+++ /dev/null
@@ -1,164 +0,0 @@
-#!/usr/bin/env python
-
-import sys
-import os
-try:
- import pygame
- from pygame import surfarray
- from pygame.locals import *
-except ImportError:
- raise ImportError('Error Importing Pygame/surfarray')
-
-main_dir = os.path.split(os.path.abspath(__file__))[0]
-
-def main(arraytype=None):
- """show various surfarray effects
-
- If arraytype is provided then use that array package. Valid
- values are 'numeric' or 'numpy'. Otherwise default to NumPy,
- or fall back on Numeric if NumPy is not installed.
-
- """
-
- if arraytype is None:
- if 'numpy' in surfarray.get_arraytypes():
- surfarray.use_arraytype('numpy')
- elif 'numeric' in surfarray.get_arraytype():
- surfarray.use_arraytype('numeric')
- else:
- raise ImportError('No array package is installed')
- else:
- surfarray.use_arraytype(arraytype)
-
- if surfarray.get_arraytype() == 'numpy':
- import numpy as N
- from numpy import int32
- else:
- import Numeric as N
- from Numeric import Int32 as int32
-
- pygame.init()
- print ('Using %s' % surfarray.get_arraytype().capitalize())
- print ('Press the mouse button to advance image.')
- print ('Press the "s" key to save the current image.')
-
- def surfdemo_show(array_img, name):
- "displays a surface, waits for user to continue"
- screen = pygame.display.set_mode(array_img.shape[:2], 0, 32)
- surfarray.blit_array(screen, array_img)
- pygame.display.flip()
- pygame.display.set_caption(name)
- while 1:
- e = pygame.event.wait()
- if e.type == MOUSEBUTTONDOWN: break
- elif e.type == KEYDOWN and e.key == K_s:
- #pygame.image.save(screen, name+'.bmp')
- #s = pygame.Surface(screen.get_size(), 0, 32)
- #s = s.convert_alpha()
- #s.fill((0,0,0,255))
- #s.blit(screen, (0,0))
- #s.fill((222,0,0,50), (0,0,40,40))
- #pygame.image.save_extended(s, name+'.png')
- #pygame.image.save(s, name+'.png')
- #pygame.image.save(screen, name+'_screen.png')
- #pygame.image.save(s, name+'.tga')
- pygame.image.save(screen, name+'.png')
- elif e.type == QUIT:
- raise SystemExit()
-
- #allblack
- allblack = N.zeros((128, 128), int32)
- surfdemo_show(allblack, 'allblack')
-
-
- #striped
- #the element type is required for N.zeros in NumPy else
- #an array of float is returned.
- striped = N.zeros((128, 128, 3), int32)
- striped[:] = (255, 0, 0)
- striped[:,::3] = (0, 255, 255)
- surfdemo_show(striped, 'striped')
-
-
- #imgarray
- imagename = os.path.join(main_dir, 'data', 'arraydemo.bmp')
- imgsurface = pygame.image.load(imagename)
- imgarray = surfarray.array2d(imgsurface)
- surfdemo_show(imgarray, 'imgarray')
-
-
- #flipped
- flipped = imgarray[:,::-1]
- surfdemo_show(flipped, 'flipped')
-
-
- #scaledown
- scaledown = imgarray[::2,::2]
- surfdemo_show(scaledown, 'scaledown')
-
-
- #scaleup
- #the element type is required for N.zeros in NumPy else
- #an #array of floats is returned.
- size = N.array(imgarray.shape)*2
- scaleup = N.zeros(size, int32)
- scaleup[::2,::2] = imgarray
- scaleup[1::2,::2] = imgarray
- scaleup[:,1::2] = scaleup[:,::2]
- surfdemo_show(scaleup, 'scaleup')
-
-
- #redimg
- rgbarray = surfarray.array3d(imgsurface)
- redimg = N.array(rgbarray)
- redimg[:,:,1:] = 0
- surfdemo_show(redimg, 'redimg')
-
-
- #soften
- soften = N.array(rgbarray)*1
- soften[1:,:] += rgbarray[:-1,:]*8
- soften[:-1,:] += rgbarray[1:,:]*8
- soften[:,1:] += rgbarray[:,:-1]*8
- soften[:,:-1] += rgbarray[:,1:]*8
- soften /= 33
- surfdemo_show(soften, 'soften')
-
-
- #crossfade (50%)
- src = N.array(rgbarray)
- dest = N.zeros(rgbarray.shape)
- dest[:] = 20, 50, 100
- diff = (dest - src) * 0.50
- if surfarray.get_arraytype() == 'numpy':
- xfade = src + diff.astype(N.uint)
- else:
- xfade = src + diff.astype(N.Int)
- surfdemo_show(xfade, 'xfade')
-
-
-
-
- #alldone
- pygame.quit()
-
-def usage():
- print ("Usage: command line option [--numpy|--numeric]")
- print (" The default is to use NumPy if installed,")
- print (" otherwise Numeric")
-
-if __name__ == '__main__':
- if len(sys.argv) == 2:
- if '--numpy' in sys.argv:
- main('numpy')
- elif '--numeric' in sys.argv:
- main('numeric')
- else:
- usage()
- elif len(sys.argv) == 1:
- main()
- else:
- usage()
-
-
-
diff --git a/pygame/examples/blend_fill.py b/pygame/examples/blend_fill.py
deleted file mode 100755
index 822fa82..0000000
--- a/pygame/examples/blend_fill.py
+++ /dev/null
@@ -1,102 +0,0 @@
-#!/usr/bin/env python
-import os
-import pygame
-from pygame.locals import *
-
-def usage ():
- print ("Press R, G, B to increase the color channel values,")
- print ("1-9 to set the step range for the increment,")
- print ("A - ADD, S- SUB, M- MULT, - MIN, + MAX")
- print (" to change the blend modes")
-
-
-main_dir = os.path.split(os.path.abspath(__file__))[0]
-data_dir = os.path.join(main_dir, 'data')
-
-def main():
- color = [0, 0, 0]
- changed = False
- blendtype = 0
- step = 5
-
- pygame.init ()
- screen = pygame.display.set_mode ((640, 480), 0, 32)
- screen.fill ((100, 100, 100))
-
- image = pygame.image.load (os.path.join (data_dir, "liquid.bmp")).convert()
- blendimage = pygame.image.load (os.path.join (data_dir, "liquid.bmp")).convert()
- screen.blit (image, (10, 10))
- screen.blit (blendimage, (200, 10))
-
- pygame.display.flip ()
- pygame.key.set_repeat (500, 30)
- usage()
-
- going = True
- while going:
- for event in pygame.event.get ():
- if event.type == QUIT:
- going = False
-
- if event.type == KEYDOWN:
- usage ()
-
- if event.key == K_ESCAPE:
- going = False
-
- if event.key == K_r:
- color[0] += step
- if color[0] > 255:
- color[0] = 0
- changed = True
-
- elif event.key == K_g:
- color[1] += step
- if color[1] > 255:
- color[1] = 0
- changed = True
-
- elif event.key == K_b:
- color[2] += step
- if color[2] > 255:
- color[2] = 0
- changed = True
-
- elif event.key == K_a:
- blendtype = BLEND_ADD
- changed = True
- elif event.key == K_s:
- blendtype = BLEND_SUB
- changed = True
- elif event.key == K_m:
- blendtype = BLEND_MULT
- changed = True
- elif event.key == K_PLUS:
- blendtype = BLEND_MAX
- changed = True
- elif event.key == K_MINUS:
- blendtype = BLEND_MIN
- changed = True
-
- elif event.key in (K_1, K_2, K_3, K_4, K_5, K_6, K_7, K_8, K_9):
- step = int (event.unicode)
-
- if changed:
- screen.fill ((100, 100, 100))
- screen.blit (image, (10, 10))
- blendimage.blit (image, (0, 0))
- #blendimage.fill (color, (0, 0, 20, 20), blendtype)
- blendimage.fill (color, None, blendtype)
- screen.blit (blendimage, (200, 10))
- print ("Color: %s, Pixel (0,0): %s" %
- (tuple(color),
- [blendimage.get_at ((0, 0))]))
- changed = False
- pygame.display.flip ()
-
-
- pygame.quit()
-
-
-if __name__ == '__main__':
- main()
diff --git a/pygame/examples/blit_blends.py b/pygame/examples/blit_blends.py
deleted file mode 100755
index 82c4f8d..0000000
--- a/pygame/examples/blit_blends.py
+++ /dev/null
@@ -1,192 +0,0 @@
-#!/usr/bin/env python
-
-# fake additive blending. Using Numeric. it doesn't clamp.
-# press r,g,b
-
-import os, pygame
-from pygame.locals import *
-
-try:
- import pygame.surfarray
- import Numeric
-except:
- print ("no surfarray for you! install Numeric")
-
-import time
-
-main_dir = os.path.split(os.path.abspath(__file__))[0]
-data_dir = os.path.join(main_dir, 'data')
-
-def main():
- pygame.init()
- screen = pygame.display.set_mode((640, 480))
-
- im1= pygame.Surface(screen.get_size())
- #im1= im1.convert()
- im1.fill((100, 0, 0))
-
-
-
- im2= pygame.Surface(screen.get_size())
- im2.fill((0, 50, 0))
- # we make a srcalpha copy of it.
- #im3= im2.convert(SRCALPHA)
- im3 = im2
- im3.set_alpha(127)
-
- images = {}
- images[K_1] = im2
- images[K_2] = pygame.image.load(os.path.join(data_dir, "chimp.bmp"))
- images[K_3] = pygame.image.load(os.path.join(data_dir, "alien3.gif"))
- images[K_4] = pygame.image.load(os.path.join(data_dir, "liquid.bmp"))
- img_to_blit = im2.convert()
- iaa = img_to_blit.convert_alpha()
-
-
-
- blits = {}
- blits[K_a] = BLEND_ADD
- blits[K_s] = BLEND_SUB
- blits[K_m] = BLEND_MULT
- blits[K_EQUALS] = BLEND_MAX
- blits[K_MINUS] = BLEND_MIN
-
- blitsn = {}
- blitsn[K_a] = "BLEND_ADD"
- blitsn[K_s] = "BLEND_SUB"
- blitsn[K_m] = "BLEND_MULT"
- blitsn[K_EQUALS] = "BLEND_MAX"
- blitsn[K_MINUS] = "BLEND_MIN"
-
-
- screen.blit(im1, (0, 0))
- pygame.display.flip()
- clock = pygame.time.Clock()
- print ("one pixel is:%s:" % [im1.get_at((0,0))])
-
- going = True
- while going:
- clock.tick(60)
-
- for event in pygame.event.get():
- if event.type == QUIT:
- going = False
- if event.type == KEYDOWN:
- usage()
-
- if event.type == KEYDOWN and event.key == K_ESCAPE:
- going = False
-
- elif event.type == KEYDOWN and event.key in images.keys():
- img_to_blit = images[event.key]
- iaa = img_to_blit.convert_alpha()
-
- elif event.type == KEYDOWN and event.key in blits.keys():
- t1 = time.time()
- # blits is a dict keyed with key -> blit flag. eg BLEND_ADD.
- im1.blit(img_to_blit, (0,0), None, blits[event.key])
- t2 = time.time()
- print ("one pixel is:%s:" % [im1.get_at((0,0))])
- print ("time to do:%s:" % (t2-t1))
-
-
- elif event.type == KEYDOWN and event.key in [K_t]:
-
- for bkey in blits.keys():
- t1 = time.time()
-
- for x in range(300):
- im1.blit(img_to_blit, (0,0), None, blits[bkey])
-
- t2 = time.time()
-
- # show which key we're doing...
- onedoing = blitsn[bkey]
- print ("time to do :%s: is :%s:" % (onedoing, t2-t1))
-
-
- elif event.type == KEYDOWN and event.key in [K_o]:
- t1 = time.time()
- # blits is a dict keyed with key -> blit flag. eg BLEND_ADD.
- im1.blit(iaa, (0,0))
- t2 = time.time()
- print ("one pixel is:%s:" % [im1.get_at((0,0))])
- print ("time to do:%s:" % (t2-t1))
-
-
- elif event.type == KEYDOWN and event.key == K_SPACE:
- # this additive blend without clamp two surfaces.
- #im1.set_alpha(127)
- #im1.blit(im1, (0,0))
- #im1.set_alpha(255)
- t1 = time.time()
-
- im1p = pygame.surfarray.pixels2d(im1)
- im2p = pygame.surfarray.pixels2d(im2)
- im1p += im2p
- del im1p
- del im2p
- t2 = time.time()
- print ("one pixel is:%s:" % [im1.get_at((0,0))])
- print ("time to do:%s:" % (t2-t1))
-
- elif event.type == KEYDOWN and event.key in [K_z]:
- t1 = time.time()
- im1p = pygame.surfarray.pixels3d(im1)
- im2p = pygame.surfarray.pixels3d(im2)
- im1p16 = im1p.astype(Numeric.UInt16)
- im2p16 = im1p.astype(Numeric.UInt16)
- im1p16 += im2p16
- im1p16 = Numeric.minimum(im1p16, 255)
- pygame.surfarray.blit_array(im1, im1p16)
-
- del im1p
- del im2p
- t2 = time.time()
- print ("one pixel is:%s:" % [im1.get_at((0,0))])
- print ("time to do:%s:" % (t2-t1))
-
- elif event.type == KEYDOWN and event.key in [K_r, K_g, K_b]:
- # this adds one to each pixel.
- colmap={}
- colmap[K_r] = 0x10000
- colmap[K_g] = 0x00100
- colmap[K_b] = 0x00001
- im1p = pygame.surfarray.pixels2d(im1)
- im1p += colmap[event.key]
- del im1p
- print ("one pixel is:%s:" % [im1.get_at((0,0))])
-
- elif event.type == KEYDOWN and event.key == K_p:
- print ("one pixel is:%s:" % [im1.get_at((0,0))])
-
-
-
-
-
- elif event.type == KEYDOWN and event.key == K_f:
- # this additive blend without clamp two surfaces.
-
- t1 = time.time()
- im1.set_alpha(127)
- im1.blit(im2, (0,0))
- im1.set_alpha(255)
-
- t2 = time.time()
- print ("one pixel is:%s:" % [im1.get_at((0,0))])
- print ("time to do:%s:" % (t2-t1))
-
-
- screen.blit(im1, (0, 0))
- pygame.display.flip()
-
- pygame.quit()
-
-def usage():
- print ("press keys 1-5 to change image to blit.")
- print ("A - ADD, S- SUB, M- MULT, - MIN, + MAX")
- print ("T - timing test for special blend modes.")
-
-if __name__ == '__main__':
- usage()
- main()
diff --git a/pygame/examples/camera.py b/pygame/examples/camera.py
deleted file mode 100755
index 8c8f214..0000000
--- a/pygame/examples/camera.py
+++ /dev/null
@@ -1,71 +0,0 @@
-#!/usr/bin/env python
-
-# 1. Basic image capturing and displaying using the camera module
-
-import pygame
-import pygame.camera
-from pygame.locals import *
-
-
-class VideoCapturePlayer(object):
-
- size = ( 640, 480 )
- def __init__(self, **argd):
- self.__dict__.update(**argd)
- super(VideoCapturePlayer, self).__init__(**argd)
-
- # create a display surface. standard pygame stuff
- self.display = pygame.display.set_mode( self.size, 0 )
-
- # gets a list of available cameras.
- self.clist = pygame.camera.list_cameras()
- if not self.clist:
- raise ValueError("Sorry, no cameras detected.")
-
- # creates the camera of the specified size and in RGB colorspace
- self.camera = pygame.camera.Camera(self.clist[0], self.size, "RGB")
-
- # starts the camera
- self.camera.start()
-
- self.clock = pygame.time.Clock()
-
- # create a surface to capture to. for performance purposes, you want the
- # bit depth to be the same as that of the display surface.
- self.snapshot = pygame.surface.Surface(self.size, 0, self.display)
-
- def get_and_flip(self):
- # if you don't want to tie the framerate to the camera, you can check and
- # see if the camera has an image ready. note that while this works
- # on most cameras, some will never return true.
- if 0 and self.camera.query_image():
- # capture an image
-
- self.snapshot = self.camera.get_image(self.snapshot)
- self.snapshot = self.camera.get_image(self.snapshot)
- #self.snapshot = self.camera.get_image()
-
- # blit it to the display surface. simple!
- self.display.blit(self.snapshot, (0,0))
- pygame.display.flip()
-
- def main(self):
- going = True
- while going:
- events = pygame.event.get()
- for e in events:
- if e.type == QUIT or (e.type == KEYDOWN and e.key == K_ESCAPE):
- going = False
-
- self.get_and_flip()
- self.clock.tick()
- print (self.clock.get_fps())
-
-def main():
- pygame.init()
- pygame.camera.init()
- VideoCapturePlayer().main()
- pygame.quit()
-
-if __name__ == '__main__':
- main()
diff --git a/pygame/examples/chimp.py b/pygame/examples/chimp.py
deleted file mode 100755
index 51b9e0a..0000000
--- a/pygame/examples/chimp.py
+++ /dev/null
@@ -1,194 +0,0 @@
-#!/usr/bin/env python
-"""
-This simple example is used for the line-by-line tutorial
-that comes with pygame. It is based on a 'popular' web banner.
-Note there are comments here, but for the full explanation,
-follow along in the tutorial.
-"""
-
-
-#Import Modules
-import os, pygame
-from pygame.locals import *
-from pygame.compat import geterror
-
-if not pygame.font: print ('Warning, fonts disabled')
-if not pygame.mixer: print ('Warning, sound disabled')
-
-main_dir = os.path.split(os.path.abspath(__file__))[0]
-data_dir = os.path.join(main_dir, 'data')
-
-#functions to create our resources
-def load_image(name, colorkey=None):
- fullname = os.path.join(data_dir, name)
- try:
- image = pygame.image.load(fullname)
- except pygame.error:
- print ('Cannot load image:', fullname)
- raise SystemExit(str(geterror()))
- image = image.convert()
- if colorkey is not None:
- if colorkey is -1:
- colorkey = image.get_at((0,0))
- image.set_colorkey(colorkey, RLEACCEL)
- return image, image.get_rect()
-
-def load_sound(name):
- class NoneSound:
- def play(self): pass
- if not pygame.mixer or not pygame.mixer.get_init():
- return NoneSound()
- fullname = os.path.join(data_dir, name)
- try:
- sound = pygame.mixer.Sound(fullname)
- except pygame.error:
- print ('Cannot load sound: %s' % fullname)
- raise SystemExit(str(geterror()))
- return sound
-
-
-#classes for our game objects
-class Fist(pygame.sprite.Sprite):
- """moves a clenched fist on the screen, following the mouse"""
- def __init__(self):
- pygame.sprite.Sprite.__init__(self) #call Sprite initializer
- self.image, self.rect = load_image('fist.bmp', -1)
- self.punching = 0
-
- def update(self):
- "move the fist based on the mouse position"
- pos = pygame.mouse.get_pos()
- self.rect.midtop = pos
- if self.punching:
- self.rect.move_ip(5, 10)
-
- def punch(self, target):
- "returns true if the fist collides with the target"
- if not self.punching:
- self.punching = 1
- hitbox = self.rect.inflate(-5, -5)
- return hitbox.colliderect(target.rect)
-
- def unpunch(self):
- "called to pull the fist back"
- self.punching = 0
-
-
-class Chimp(pygame.sprite.Sprite):
- """moves a monkey critter across the screen. it can spin the
- monkey when it is punched."""
- def __init__(self):
- pygame.sprite.Sprite.__init__(self) #call Sprite intializer
- self.image, self.rect = load_image('chimp.bmp', -1)
- screen = pygame.display.get_surface()
- self.area = screen.get_rect()
- self.rect.topleft = 10, 10
- self.move = 9
- self.dizzy = 0
-
- def update(self):
- "walk or spin, depending on the monkeys state"
- if self.dizzy:
- self._spin()
- else:
- self._walk()
-
- def _walk(self):
- "move the monkey across the screen, and turn at the ends"
- newpos = self.rect.move((self.move, 0))
- if self.rect.left < self.area.left or \
- self.rect.right > self.area.right:
- self.move = -self.move
- newpos = self.rect.move((self.move, 0))
- self.image = pygame.transform.flip(self.image, 1, 0)
- self.rect = newpos
-
- def _spin(self):
- "spin the monkey image"
- center = self.rect.center
- self.dizzy = self.dizzy + 12
- if self.dizzy >= 360:
- self.dizzy = 0
- self.image = self.original
- else:
- rotate = pygame.transform.rotate
- self.image = rotate(self.original, self.dizzy)
- self.rect = self.image.get_rect(center=center)
-
- def punched(self):
- "this will cause the monkey to start spinning"
- if not self.dizzy:
- self.dizzy = 1
- self.original = self.image
-
-
-def main():
- """this function is called when the program starts.
- it initializes everything it needs, then runs in
- a loop until the function returns."""
-#Initialize Everything
- pygame.init()
- screen = pygame.display.set_mode((468, 60))
- pygame.display.set_caption('Monkey Fever')
- pygame.mouse.set_visible(0)
-
-#Create The Backgound
- background = pygame.Surface(screen.get_size())
- background = background.convert()
- background.fill((250, 250, 250))
-
-#Put Text On The Background, Centered
- if pygame.font:
- font = pygame.font.Font(None, 36)
- text = font.render("Pummel The Chimp, And Win $$$", 1, (10, 10, 10))
- textpos = text.get_rect(centerx=background.get_width()/2)
- background.blit(text, textpos)
-
-#Display The Background
- screen.blit(background, (0, 0))
- pygame.display.flip()
-
-#Prepare Game Objects
- clock = pygame.time.Clock()
- whiff_sound = load_sound('whiff.wav')
- punch_sound = load_sound('punch.wav')
- chimp = Chimp()
- fist = Fist()
- allsprites = pygame.sprite.RenderPlain((fist, chimp))
-
-
-#Main Loop
- going = True
- while going:
- clock.tick(60)
-
- #Handle Input Events
- for event in pygame.event.get():
- if event.type == QUIT:
- going = False
- elif event.type == KEYDOWN and event.key == K_ESCAPE:
- going = False
- elif event.type == MOUSEBUTTONDOWN:
- if fist.punch(chimp):
- punch_sound.play() #punch
- chimp.punched()
- else:
- whiff_sound.play() #miss
- elif event.type == MOUSEBUTTONUP:
- fist.unpunch()
-
- allsprites.update()
-
- #Draw Everything
- screen.blit(background, (0, 0))
- allsprites.draw(screen)
- pygame.display.flip()
-
- pygame.quit()
-
-#Game Over
-
-
-#this calls the 'main' function when this script is executed
-if __name__ == '__main__':
- main()
diff --git a/pygame/examples/cursors.py b/pygame/examples/cursors.py
deleted file mode 100755
index 2bcc9e4..0000000
--- a/pygame/examples/cursors.py
+++ /dev/null
@@ -1,99 +0,0 @@
-#!/usr/bin/env python
-
-import pygame
-
-
-arrow = ( "xX ",
- "X.X ",
- "X..X ",
- "X...X ",
- "X....X ",
- "X.....X ",
- "X......X ",
- "X.......X ",
- "X........X ",
- "X.........X ",
- "X......XXXXX ",
- "X...X..X ",
- "X..XX..X ",
- "X.X XX..X ",
- "XX X..X ",
- "X X..X ",
- " X..X ",
- " X..X ",
- " X..X ",
- " XX ",
- " ",
- " ",
- " ",
- " ")
-
-
-no = (" ",
- " ",
- " XXXXXX ",
- " XX......XX ",
- " X..........X ",
- " X....XXXX....X ",
- " X...XX XX...X ",
- " X.....X X...X ",
- " X..X...X X..X ",
- " X...XX...X X...X ",
- " X..X X...X X..X ",
- " X..X X...X X..X ",
- " X..X X.,.X X..X ",
- " X..X X...X X..X ",
- " X...X X...XX...X ",
- " X..X X...X..X ",
- " X...X X.....X ",
- " X...XX X...X ",
- " X....XXXXX...X ",
- " X..........X ",
- " XX......XX ",
- " XXXXXX ",
- " ",
- " ",
- )
-
-def TestCursor(arrow):
- hotspot = None
- for y in range(len(arrow)):
- for x in range(len(arrow[y])):
- if arrow[y][x] in ['x', ',', 'O']:
- hotspot = x,y
- break
- if hotspot != None:
- break
- if hotspot == None:
- raise Exception("No hotspot specified for cursor '%s'!" %
-cursorname)
- s2 = []
- for line in arrow:
- s2.append(line.replace('x', 'X').replace(',', '.').replace('O',
-'o'))
- cursor, mask = pygame.cursors.compile(s2, 'X', '.', 'o')
- size = len(arrow[0]), len(arrow)
- pygame.mouse.set_cursor(size, hotspot, cursor, mask)
-
-def main():
- pygame.init()
- pygame.font.init()
- font = pygame.font.Font(None, 24)
- bg = pygame.display.set_mode((800, 600), 0, 24)
- bg.fill((255,255,255))
- bg.blit(font.render("Click to advance", 1, (0, 0, 0)), (0, 0))
- pygame.display.update()
- for cursor in [no, arrow]:
- TestCursor(cursor)
- going = True
- while going:
- pygame.event.pump()
- for e in pygame.event.get():
- if e.type == pygame.MOUSEBUTTONDOWN:
- going = False
- pygame.quit()
-
-
-if __name__ == '__main__':
- main()
-
diff --git a/pygame/examples/data/alien1.gif b/pygame/examples/data/alien1.gif
deleted file mode 100755
index c4497e0..0000000
--- a/pygame/examples/data/alien1.gif
+++ /dev/null
Binary files differ
diff --git a/pygame/examples/data/alien1.jpg b/pygame/examples/data/alien1.jpg
deleted file mode 100755
index 6d110a4..0000000
--- a/pygame/examples/data/alien1.jpg
+++ /dev/null
Binary files differ
diff --git a/pygame/examples/data/alien1.png b/pygame/examples/data/alien1.png
deleted file mode 100755
index 471d6a4..0000000
--- a/pygame/examples/data/alien1.png
+++ /dev/null
Binary files differ
diff --git a/pygame/examples/data/alien2.gif b/pygame/examples/data/alien2.gif
deleted file mode 100755
index 8df05a3..0000000
--- a/pygame/examples/data/alien2.gif
+++ /dev/null
Binary files differ
diff --git a/pygame/examples/data/alien2.png b/pygame/examples/data/alien2.png
deleted file mode 100755
index aef5ace..0000000
--- a/pygame/examples/data/alien2.png
+++ /dev/null
Binary files differ
diff --git a/pygame/examples/data/alien3.gif b/pygame/examples/data/alien3.gif
deleted file mode 100755
index 5305d41..0000000
--- a/pygame/examples/data/alien3.gif
+++ /dev/null
Binary files differ
diff --git a/pygame/examples/data/alien3.png b/pygame/examples/data/alien3.png
deleted file mode 100755
index 90d0f7c..0000000
--- a/pygame/examples/data/alien3.png
+++ /dev/null
Binary files differ
diff --git a/pygame/examples/data/arraydemo.bmp b/pygame/examples/data/arraydemo.bmp
deleted file mode 100755
index ad96338..0000000
--- a/pygame/examples/data/arraydemo.bmp
+++ /dev/null
Binary files differ
diff --git a/pygame/examples/data/asprite.bmp b/pygame/examples/data/asprite.bmp
deleted file mode 100755
index cc96356..0000000
--- a/pygame/examples/data/asprite.bmp
+++ /dev/null
Binary files differ
diff --git a/pygame/examples/data/background.gif b/pygame/examples/data/background.gif
deleted file mode 100755
index 5041ce6..0000000
--- a/pygame/examples/data/background.gif
+++ /dev/null
Binary files differ
diff --git a/pygame/examples/data/blue.mpg b/pygame/examples/data/blue.mpg
deleted file mode 100755
index 60dceca..0000000
--- a/pygame/examples/data/blue.mpg
+++ /dev/null
Binary files differ
diff --git a/pygame/examples/data/bomb.gif b/pygame/examples/data/bomb.gif
deleted file mode 100755
index 02271c3..0000000
--- a/pygame/examples/data/bomb.gif
+++ /dev/null
Binary files differ
diff --git a/pygame/examples/data/boom.wav b/pygame/examples/data/boom.wav
deleted file mode 100755
index f19126a..0000000
--- a/pygame/examples/data/boom.wav
+++ /dev/null
Binary files differ
diff --git a/pygame/examples/data/car_door.wav b/pygame/examples/data/car_door.wav
deleted file mode 100755
index 60acf9e..0000000
--- a/pygame/examples/data/car_door.wav
+++ /dev/null
Binary files differ
diff --git a/pygame/examples/data/chimp.bmp b/pygame/examples/data/chimp.bmp
deleted file mode 100755
index ec5f88a..0000000
--- a/pygame/examples/data/chimp.bmp
+++ /dev/null
Binary files differ
diff --git a/pygame/examples/data/danger.gif b/pygame/examples/data/danger.gif
deleted file mode 100755
index 106d69c..0000000
--- a/pygame/examples/data/danger.gif
+++ /dev/null
Binary files differ
diff --git a/pygame/examples/data/explosion1.gif b/pygame/examples/data/explosion1.gif
deleted file mode 100755
index fabec16..0000000
--- a/pygame/examples/data/explosion1.gif
+++ /dev/null
Binary files differ
diff --git a/pygame/examples/data/fist.bmp b/pygame/examples/data/fist.bmp
deleted file mode 100755
index a75f12e..0000000
--- a/pygame/examples/data/fist.bmp
+++ /dev/null
Binary files differ
diff --git a/pygame/examples/data/house_lo.mp3 b/pygame/examples/data/house_lo.mp3
deleted file mode 100755
index 4c26994..0000000
--- a/pygame/examples/data/house_lo.mp3
+++ /dev/null
Binary files differ
diff --git a/pygame/examples/data/house_lo.ogg b/pygame/examples/data/house_lo.ogg
deleted file mode 100755
index e050848..0000000
--- a/pygame/examples/data/house_lo.ogg
+++ /dev/null
Binary files differ
diff --git a/pygame/examples/data/house_lo.wav b/pygame/examples/data/house_lo.wav
deleted file mode 100755
index 68a96b8..0000000
--- a/pygame/examples/data/house_lo.wav
+++ /dev/null
Binary files differ
diff --git a/pygame/examples/data/liquid.bmp b/pygame/examples/data/liquid.bmp
deleted file mode 100755
index c4f12eb..0000000
--- a/pygame/examples/data/liquid.bmp
+++ /dev/null
Binary files differ
diff --git a/pygame/examples/data/midikeys.png b/pygame/examples/data/midikeys.png
deleted file mode 100755
index 74ecb86..0000000
--- a/pygame/examples/data/midikeys.png
+++ /dev/null
Binary files differ
diff --git a/pygame/examples/data/oldplayer.gif b/pygame/examples/data/oldplayer.gif
deleted file mode 100755
index 93906ab..0000000
--- a/pygame/examples/data/oldplayer.gif
+++ /dev/null
Binary files differ
diff --git a/pygame/examples/data/player1.gif b/pygame/examples/data/player1.gif
deleted file mode 100755
index 6c4eda7..0000000
--- a/pygame/examples/data/player1.gif
+++ /dev/null
Binary files differ
diff --git a/pygame/examples/data/punch.wav b/pygame/examples/data/punch.wav
deleted file mode 100755
index aa3f56c..0000000
--- a/pygame/examples/data/punch.wav
+++ /dev/null
Binary files differ
diff --git a/pygame/examples/data/secosmic_lo.wav b/pygame/examples/data/secosmic_lo.wav
deleted file mode 100755
index 867f802..0000000
--- a/pygame/examples/data/secosmic_lo.wav
+++ /dev/null
Binary files differ
diff --git a/pygame/examples/data/shot.gif b/pygame/examples/data/shot.gif
deleted file mode 100755
index 18de528..0000000
--- a/pygame/examples/data/shot.gif
+++ /dev/null
Binary files differ
diff --git a/pygame/examples/data/static.png b/pygame/examples/data/static.png
deleted file mode 100755
index fb3b057..0000000
--- a/pygame/examples/data/static.png
+++ /dev/null
Binary files differ
diff --git a/pygame/examples/data/whiff.wav b/pygame/examples/data/whiff.wav
deleted file mode 100755
index 3954efa..0000000
--- a/pygame/examples/data/whiff.wav
+++ /dev/null
Binary files differ
diff --git a/pygame/examples/data/yuv_1.pgm b/pygame/examples/data/yuv_1.pgm
deleted file mode 100755
index a59b383..0000000
--- a/pygame/examples/data/yuv_1.pgm
+++ /dev/null
@@ -1,6 +0,0 @@
-P5
-752 864
-255
-€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€                                   €€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€    
-              €€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€                             €€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€                                 €€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€>Zideigcgffedcbbeeeeeeeedddddddd_adglortsuy~„ˆŒŽ’”˜£¨¬®º¹º¾ÄÇÉÈÏÙÁ§¸ÏÒÒÈÇÇÅÄÃÂÁ¼¹µ®¨¢ž›˜˜•Š†…‡xwyy{|w}~‚ytvtvrxuw{vwvvwwusrtutnnoligdgkkhhlnnoopppoononkjjd_crxqnrqqlihmnkkmklmnnnmlkghiiigfegggghhhhkgeedbdgeeeeeeeecegfeddeefilpsuwuw|ƒŒ’—™£¥©®³¸¼¾ÂÄÈÊÌÊÉÇÉÆÀ¸±«§¤ ˜”‘‰†€‚€|xvvxwwwz{{y~~|{yxwv{{{{{{{{vvuvvvvvxvuuwwvsstwyyuvwsoorsoquuttrponmusrmhlojflppnlifgmpqrlhioqrokhikstsniegisqmigiospqkcckqqnkd`hrnbQJC3,.,-OU>0444.&0>FO[T<3FRPMTZ[MKILQLDDMLIHHGDCFXZEBY_IAYeO8@Wa]][ZZZ[\^XRK<,*00259<?AB@>=98666=<>=97EW<%$#.@DSgkVKs¥©dC{ªˆ[_eQ<555512369;=?BEABDFHIIIHIJKLLLLPPQQRSSTTTUUVWWXZ[\]_`bbcccddeeegggffeeegghhiijjmmkjiiiikkllnnopnooppqqrpqrqpnljja`aWUcrvnmpxqN25=<<==?79521/--0**+++,,,)07;:89;CCDDGIKLNNNNNMMMRRRRRRRR€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€=ctkhmjekkjigfddddddddddcccbbbbaeeddddcceeddddccbcdgilmnnoqvz‚Š”„{‘ŸŸ¦¬®²¸½ÃÇÉÐÐÐÐÏÏÏÏÊËËÇÂÁÄÇ°ƒjrxtrrtvvnuƒ}}}‚wx{wz{~{yxurtzspmmonifflnjglpqqrrsrrqponihjd`gnypntsrjgfkmhjononmlklmnkklmlkihjjkkklllokggfegkiiiiiiiigffgiigeggffeeddfecdefedhjloruwx~†•ž¥©ººº¼¿ÃÇÉÌÊÆÆÆÆÅÄÂÁ¿¸¯¦¡ž—•’ŽŠ‡„‚}}}}||||{{zzyxxx|{zz||{z|yvvxxurtwyzxwxzuppuursxuututttttstoinqidiorojfdgloqqjehorsohefimoolfdgksqmhehotqsmaakqomlc]fso`RKD2+1-0NY<0940(&1?GOaX60HUNIR[[ZVTVXSNPKIQQDDLJ?JPHFW\NL\d^M?DV]_\XZ\ZYbWNH9))41258;=>>?><:89;><9;?:5?QA''% /=CXacWJo¥¨fIv¡‹`[hT;534;89;>ABCDGJGHIJJIIIJKLNOPPPRRSTVWXXZZ[\]__`abbccddeccddeeffhhhhggggeffhijkkkkjjklmnoooooppplkkjiihh`_\ZVRONH??A;A]vrptswrM//5//.,0*.,*+0588579;>ACDDIOQONOQTSRRQRRRVVWXYZ[[`abcdefg€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€Bgvlkpnmqqponmlliiiiiiiiiihhggffhggggfffffghiijjiiiiiiiieffedcddcd_ahecknprtwz|}‡‰Ž“™Ÿ£¦­±µ¸º¿Èϼ[emhioomgd‡¦œ•œ•yrxvywxqr||vuvwyslopgilkgipspuuuuutssrogeg`\expntqsnjeilhmtrponmlmnnmmoonljimmmmnnnnplkkkkmplllllllljihjkkihllllllllonmllljigghijklljhebbcfhhimqw|€‚Ž’™£¬²µÈÌÒÖ×ØÚÛÐÒÑÊÀ¹¸º­«§¢œ—“‘ˆ‡…ƒ~}|~|z{|}{y}yyzzuqu…‚€‚|urrtutuxuuvvwwxxpptrmrtkfhnsogcfjmnnmgflnpqmhdegmookecgkppokhinrqsnfekolmnhafqpfQJH5/601PV;/61-(&4CHR`T12HTMGQ[^TILSOPWXY[b^QMTWKOPE?LSHGZ_SJGHLN[^XY[[Z_SJE9**302479::9<==<;;=>=77;95?OC*'##1<GXggWKq¥¤fCy§Œ`[eT@>87BAAILMLIHJLMMMMMLKJPQSUVWWWWWXYZZ[[^^_``abbeeddcbbbcccdeeffffghiijjiijjklmmllkkllmnkjihfedcZYVSOLIHHGEBAABCB<??9EcwkmwsxvM+(,+9?;ED@HMNPVYWZ[]`cfhib`^\\\]^^_`acfhikkklmmnnqqqqqqqq€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€Dhxrsuposrrrrqqqrrrrrrrrrrqqppooqpponnmmjjiiiiiieefghiijgiihecdecimhcgjegffeedddeffghijjmpsssv~…}c\gifgfemkaž˜›¯›oeruwqZJEUb^RKMf„yW^{}zts|†„zxxxxxwvusphfic`lxsvossjejpotwqoppqponmnoqqpnljooooppppommpqprtppppppppjlnnlklmpppppppprpoooomlnnnmllkkfhkmmmkihijkjhfejhfgjmooqv†‹“•— ª«¨©³½ÀÀÁÁÂÃÃÃÆÄÁ¾º¶´²«¦ š–‘Š††|{|{wrp…”’‘‡xttttuvxx}|{ywutsvuvqkrvmihmsoedijmoqohflooomigfgprrmgeimrrokhiouvtngfjoopld`hqneVNJ5-5.0MT@.250(%6CHTaS53GURMT[\@09C56@:<B>@LMJPPQVTOY`XSdeNBPQ>>Wc]Y[^bXSPI9((12358998748<>=:9999<=73@SD#() 2@CVgdSLq¤¤fG}¦‰b_fY??=9ADNOQSQMKLOKMNQRTTTSTVXYZ[[\]]]]^^^````aaaabbbbbcccccddefggdefhjlmnjjjkkkllgec`][YYUTROLJHFDDCBA@@?=>?AABAAFEIH@Ldojp{svvL)'.6R[QVVTgwvqqrqtttsssrrtojilnljmmlmmopqssrqponnlmnopqqr€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€Gnxptuqsxusttsrroqsuurrwtrssqsurtqqsuwuqrqqsrppsqpsusmjkppqrolmphmnkhhjjmigihghliffhgdbcdeeeddegc_cgccgecbcfjors|pgghgjo\PKNPNJC<I_Z=?\jd^`ag€Ž‚bWdtvhd}„kgso__t•—xs}wynelnmopqsvnlkmporsrrsutrqtqssmjlrsrknrrtsttrqswuplppllqrppqqppsutssrqrssruropttqpopppqrqopqpnnomjlkjklljhhghjhdeiiikljiowwx{„Š“œž¥«­®¶¿¾ÁÇÊÆÀÀÄ¿»¹²¬®¢‰€’˜•š›Œ{uyyrpw|zx~xxzxwz|}{svsdjnmmkihmoqqolhgmppomgelosqlgdiruonkegorrsnebhnosneagomeUOK4*321JW@052.)&8EDSbP64LUQGL_ZB+FS@EI<4CA45:75><<=>?CFENQQLLJ5.B^`[\\`^TPI8)*0/14789:;<;9:<:9<9=<=;8DU@'&%!.:FTefSLq©¡cEz¦Ša]cVHB=:@GOTTTUTSSTRQSWZZYYWUZ_]\^^]]^_^^`cba`abcefdccdedegeeghhmojjihijhebfb][ZXSOOMJHHHGFBBAAA??DC@ACCDEDJKKMOPRSXX[ZTVesopurwuQ01:I_hghc]ntqstsvvwwwy{{z|xpkjjkmrnlnppprppqponpsqrqpopqr€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€Gmyrvxutqtvtssttvxwtttrrutrrtwusstvvtttuurrtussusttrqpoorqstspquusqqpnnpsolllknrljjnqnjhnljiiihggjmjdgigfedcbcdedddddcddcdec^``[YVUVUSOKOKMNMX^UG@IVXEAb}ZOplKd“˜Œzvzvszpfiw~}yttsswxusqxwvwxxuqwtqqtspmqtqruttvrssrtvvtprsrqrrrquvwxut{vuuvsqtyvqsvtrsuvvvwvuuuwtqqsusqpqqpqsrnqoooommmjiikkjknhgeddfgigghmnnrw€…‹Ž“š¢±¬®²·À¹¤Š––‘˜ž|‹ž”–’Ž˜‹~w{~y{zz|yx||vpmkknleipsqoidgoqpomfdjrrplfdioprphdhmnpoibdlonlke_enj^UNK8-411IWA141.)'7DGVaM67MRNIM[W64MJ?ORLJV?1HJ79SD;745996;78;?@816IW]]XZ`TLE3(+213566777:=<8789;;:8=<4@UA%%&#,9GWhjXPtª dEz¥Šb]cVJIHHNRW\ZY[[ZYYYYXYZ]^^[\[\]^^^`a``^^^__`a`_beggfgiihghggif``b^`\VRPNMKLJHHHHFD??@CEDCDCCCEGFGJNMORSTVWXZ]`aa_^c`_\VXgvvppqywS39JXfklnjhqvy{{{~‚„‚…„€wljomknolmqspnoroorqoostrqrqprv€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€Dn~wwvtwxwvxyyxvyxvwxutwxytrvvsrsuvtropruqortrqquvtpqvxwuttutqqtvtstvvtrpoqttrqqpnnrtspnrpnlllkinmmnnljgklkjhgijkfeggefhdefc``a_ec``c_[]^[\[UQPLQOQNONIOVPL]WHhŒˆzyyzup~x\Yv—£‰_YqŒ|}‰zjpuvtttsxwponqotvwwxwsurrrrsttssssssqsusvvxzvsvywwxwtuwxtvxvz{uvvwxwuwztvxwwwuqswxuuvrlwurprtsptpnqtrnmsqpooprsolklnmmnljjklijmqmoqt{~uyƒƒ{~…€u¨¯±»·´Ä“rrxy‡Ž‘‹‹™•ylonlmheoropiekopoonhflqopmeelpqtpgdflrsphaclrrmnh`frn_WMK9/312IWA141-)(6DJY_I4:NPNNS]V53KB:RTMUR46[Q7FWKLQNKLHDFHHGKPJ906IZ^Z\^QJC3(+0025677889:98:<96=;9<<6@SC$$'$+7HXggSLr¬¤dEz¦Ša]cXOQSW\\\a^\\]]]]Z\]ZZ[\[\^[Y]^\\aa`^_bca`figdddc`__`^ZWVTQQOMLJDFEDDEEDCCCCBBAAAFGIJKKLLNOOSWWWZVY__YX`hcdfgiijie\WUUZemrlnpwrT<EX_fmkkejv}yxzzvxywuwzvohijklmornoomnqpmnprqonoroprqrstt€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€Jusy~zx|}wtvxyzyxyxtsxvwutwyxwsuuuwvstxsquxxvuwvtqrvxwuttvussvsutsuywsvvuvutttssssrqqrrssrqqrssqortropooonllmnpkhkkhgjmheeeffgicbdbba][\\^\YX[YXYVV[XVXXVVY_bdpnqusoor`RQ]jyqTG]xu`lybHS^bba_]_jnŽ‰‡…{qsuwzxx|yxyzzxwwvuvttuxvwwww{|zwzzxx{zvsw|{x{|v}yuvxywuuzzvvzys|~{xuwurtwwvxyvqztqtvtqprssssssstrqqrrrrrnloppoquqqpjkonnuvssxzxusontz„wcellvŠžœ¤™šª²¥~jqqmlljqpookfknonnnhfmqqqmecjpqrpkfgmtnojbaipsrqiagsrfYNJ:/314KW@052.'(8EK[_F29LPNLVaT67QOJNBEVL:F^O<K[IHZ_TIFEJZYFNXI01/2CV]]\OIC2)+.0257899::867:::==;7<<7ARB&$'#+7GVecPJs¯ªbF|§‰_]e]TVX\a^[``_^^_^\[\\ZYZ\]Z]]]`b`_]_`bdeb_`cb[UTSQKJJKJFDDEB?>?AB@@@@BBCBBEGHJJKLNQUWVUYZX]]]`dcabhgihb_beggeddefgbUKMQ[ekqmpqtoS?J]]dnmnngceijjhdfghiijlnlmoomnompoooonmlpnlmqspknqrrstsq€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€F{…wŠƒ~‡€i^gnkquwxz||}|z{zz|~{w{{{€}xxwrpsvurqurqruuuuyvvxxvvwwwvtuvwvsttttuuuuvvtrrstsstsssuwnstpnorutsrrsssrlpqpnnoplmliiknogejh`bif_`^\^\Z\[\ZY`^Y]XY`[\^[ckpppnmrk\UUUQU\YWY_[X`_UTWYZZYTNNQ[ƒ¡žœ ua_bagjjlkknqrrrstvwxyz{{‚€~~€y€ywz|yz|~~|{{}{~{wvx{~}{yz|ys{{{yyxxxw{{xx{}|}xvvvuvxvwz{{xvtuvvtssuutomoqqpqqnossqokroquxyzyodadaacbafijmllqst|tm|„€zoknmiijmopnnjhhoomnledlprqkfchqpqqkehqsqrlcagnpqme`gpnfWMK;1302NW>/64.%(;GJ[`E.9LRNHT`M7HVPQ>)F\B>ZdMEYWIFU^OEKGNbV;EO6,32/5?LW\NIB1)./13678899789;=:9;=74<=5?SA''%",9EUegUPv±©_F©‡\\h`WWWZa_\^`a_`a_Y\]^__^_a^]__][\[XVVVVRNKKKIECEFECAAA@>>?=@BA@?BFGHJLMNPPTVYZZ[^_]`ddcba`cbacfdabgdegecb`cddeffggcWNLP[myuoqpxuV<Qjdajglqndfnpmlkklmmkkmponmnpnllonmoonnomnpqpmnpqooqqoop€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€Ju€}•‡…Š€g[ckimnoty{z{~|~‚ˆ‹ˆ‰’–œ¤¤Ÿ¢˜“’‹‡†|z~~{wwurruvuuvsrtxyvtvsuvuttrpstuttutrusrrstssqtwwsstuxvtssrpnppooopqqnonnomlonmjhgjidbda`ac`_[__^adb_```^`_]enrqporsm^Z\a_\\_`]bb``]bba_^^^\[[YXiwtw}l[Z]XZ_]Y[\]^_ab`cedehjjjprw|zy~}€€~~€~€~~~}}}€||z{~~{z|yyyzxxxyz||ywy}~|zzxvy~svx{{zxvxzyvtuvuytrtutrrpqsvutrqtsw|ywy|qljlljijokmomlkhijkecgd]YgstpjhjjmppliggopoomffooqnjgehqronkcgptwskbckpomjdbiolcSLL=25//NX>/64-$)>HIZ_C.ATWRMW_K/;>8<2*EMFBFLOKEFNLHJIFKDN[N>KK4162112CXZMIC0*///136789:9<;89:::;85;<7ASA)'%!-9DVggTMt­¥_F€©‡[\h`XXUXacaaca^_bb^[[]_^[XYVRRRKJLMJGEFEDDFA@?>>>>>=<=@CDFIIKLNPOPTXY[\\]^`bccb```a`^_cb^]`]]]_cbadfcceefhhghhhhgffcWONR^nytpppxxX<[{mcnmljhkonknnilmlkmpoljpnknmjonoonnpqpopqqppppppprrsrr€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€<^ihrsmnsvshacjmlijpvutw}~„ˆ‘‘“Ÿ«ºÏÕÒÕÕÑÎÌÈ¿¿¸³¯­¬¨¢›•‘‡ƒ‚~~|z{|ysstspqw{{vxxvuvuswvttuuutuqtyxuusssstttttwrosvtpotrpqtoknlonnpmhfedcbacdb`agh`]ccgeabfa]blponprql_[^bb_`acaddaacfbaced_^`ba^^_^\Za]^`^^b__bb_]]]\\^]ZY[\\[\\`hjlqtsuy‚~y}€€€€€€„€}|||~€y|~}}}}z|~€|yy}{zzxvw{yyzzzyxxzzyvwzzv|xuuvuvxvyzwsrstns{|tsy{pollnlikplospmoqurkhjnk_ajqqpkffkprolgdfnpppnfgsqqokfdhnspolggmrqoicempomkfbirncTMK8.410LYA141,'->GJ[\@/EXTRX\]QC?=<8655:9416>=5=FA7;CDBAHLBAH@1.7/,6DU]XLJC/)//.036789:6;=;9878;<9;;9CRC(&&"+8DVeeQJpª¢aF}§ˆ^]f^YYTV`ccgfd_XTVXTRPNMLKJDCBA@ACDBBBA@?@@EBADDDGLMLNQSSUW\VOQZ^]`___^^_cf]^^^]]]^_\\_a`bdabcehhimogcefggehhgghijkaUMOV_krsruqusW=Y{i_rrnjjjjhikkhgklkjkmnmrnilonoqppqpoooprqopsspmopprtsq€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€<[d\]bcb````dfc^abcdhjjllrttwy|€„Ž™®ÊÔÎÎ×Ö×ÙØÖÖÙÛÚ×ÔÖØÕÏÎÉÆÅÄÀ¼»·¸ª•” Ÿ’“ˆ…†…‚}€zvvxyttutsstvwuxxtx|yprttttuvwxwuuvursxvqrsqqlmlmnjilmigeabee]__bcacffijfhf^boxqoqqsl][ckfacfgjbdiedfhcaeea`bb^`b`^^`^c^^`aeb^``^_bb_acdbabba]_ba`bddcdfhmqrqqkmsrtxyxy{~~|wx…“‘†šŸŸœ”Œ‰„€~€€{z{~|{z{}~{zww{€ztux||xuuvxvuwwsonrxxty~zqooqstronsqnrusqopoldjsfajqpmihjlsqmmhdimoookbdppopmdbjptvqhejnptupfcinpmme]dqpcXPI1'244IYE22-+)0>EJ\Z>1ATJK]]WT\ZSRPLOMOKHECBBB?:9;845;87726=3/153CX[[[YLH@+'0224677888:868;:77<;8<;6@RD&%(#*6FQdgVPu¬£cEz¦Ša]c^ZZTS]a`cee^K;9@EECAABA>BDA?BC@@ADEEEIKLKKOUUQSZVVX\]\[\`\WZba]^[^`a`^__`abccdefcfeceiieefeddbcggfhjfddeihhgghij_VQSV_ltsrurvvZCc„mapljmoooonlkkonmnmkmqpnpqpqqmprpllrutoqsqnnqttrpqqppq€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€:]hcgdcjeadeadf^_db_cc_`cffghecffhnx…•—š™œ¡¥¨¬°¼»¾ÃÅÄÇÌÌÐÕ××ÖÖ×ØÝ͸¿ÕÚÏÎÊÆÄÄÁº´¹±ª¤ŸŸž˜‹‰‡ƒ‚~zyywz|vuywuvutvyusuvvywvrvutrmqurnnppooieeefgbbcbbfgfgjkecijg^epsoppqthabcegecddjnhchkhfgededaaa`bb]_cca``begfd_`aaabceedbcfdbedda`cc``a^`eeabhghgfgggklmkknllqhja]ÔÚ»²ÌãæáÝÙÓËÇÀ¸°ª¥£—Œ‹‰…‚|wx}{w}~~}€{z{}~|yw|||}zsnuzyvvxzpsusprtrutuwvssukrytjlogckoopmijiptqojdgpproifillophabjnqppmfhnnrsmcckpqole`emleVQM;*.20IWD166,$,FHI^X;0JWOHPVWUSWYUPQSUUSRSUUUUUVOLRPIIGBGFAA8-16JYa`Y[YOK=+(-/-25589:;988::9:;;;=>;5>RI)&+$)9BVbhVPz±§dFz£ˆa^c`XZZZ]^afeg_E25=?@BDDCB@CEGGGHKNNOQRSTTUWVXZ[XWX^]\Z\_`__^^`_]^baabcddb`fffeeeefdgiihghjffgggfedfiheeiiffghhggggcUPTV^ksxttnszbDe‹t`rrlmkmnmlmmmopqpnnpqqqonooonlqsoorrotqprrqqttrsuurpp€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€=`jfigcfdadd`dheghdbdcbcdfedecabdcbcefedkiimnnpsyz}ƒ…†ŠŽ“™ž¢¦ª­´¹®¢¬ÄÍÊÎÎÏÒÖØØ×ÚßÝØØÕÏËÌÃÀÄÁ¶°³ª‡vƒz||}zwyzwwvxxvstzusrrusoroknolpnbkecjied]afiigcclgjlmjjcenqppsvsk`behgeeihgjllkihbdedcb``_ac`_egabbcdddddbdda`dghhgghhfghffccffccic`dfecddcegedffefdcdefg`ca_xœ¦œžÁåñíëííëììììêéçãßÚÖÑÊÁº´ª”Š‡ƒ‚€}{{}€{wvy}~|x{|{{|yup{‚~|}wzsrutuwuxxwvvvussvwpjqulfmqtvphgjnqpqnghpoqrlegpnonhbcjmrpkedhloqpjechnspmfbgongUQP=*,22IWD166,%4EHQeX:5K_]UX[YSFOVTONOPQPQUVUVYYWV\^XQOVVWVZWB19V_Z\[Y]YOK=,*.013349;87:<<::<<:<::<86BUD%"(")9CUbiWOx¯§dH}¦‡_^g`XYZZ_adhcgeN98?GHIJLMNOTTTRPRUXXWUUWXYYXWVVY\^^\^_]\^``acdcabcecdeeddgigeeigcdjgeccdfghefghgfeehhhigdfidefgghijcXQQS_mstrtrxx]Fb|mdomlmnmmppnnqlkoroopmoonooqqqtpnqsqpprootvtqpssssrssr€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€?hpejlhgjhhgddfghdadhifddfecdedccbbceffeheeffdegfefgfcdfdeffghkmswsnv††Ž‘”™¢§ªª¹¿»ÀÇÈÄËÐÔØÙÒÐÙË”zˆ’’––Œˆ…¢³¡”œ—ƒ‡~uv€z{xvwsttvwsmielhecbfd`chjgehigkkhdd`dsxrptrokgbdmoheijkoljlikfefgfeff`efa_dgbdfgecaabafhfdffdhgiifjnmijklomihlihikjjjljklkkookkjhfhhfonifedgf]sŠ”™Ÿ¥¦©¬²¹ÀÆÉËÖØÝäìîíêðèÝÒÉÿ¼´µ³¯¨¡œ™˜”††‡x‚ƒ}}}wyŠ’‹†‰„yupsxusx~vy{ywv{z{zqiosmcjqqmljdinsqpmhlpssplfgopnongcgmrroiefkorojdejpsqngbgong[QJ;/33-IWE166-'2CGPcW90I`bYY[\WRX\YVUVUSRUXWSTX[TV\ZSSWRUPLYZD9Pc\X`]\]YNJ<,*/004558989789;<<;;878:73=NH)%)$)8BVcjVNv®¥fH}§‰__i`WYZ[`cfgdgaQFGITUVVXXYYWXXWVUWY\YWWY[[Z[]\YZ`dd[_dddddbaeggfgfceffffeddfffffeefeffeddgiegihgefffgihggikffhggghheXQOR_ntuuuqyx^N^fahpjoqlnonnnnnmlnnnoonooppqponpoqsrmmpppqtsqqsttrpqtus€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€Amvlqpjorpoppnmosmjlnonmmmkijjiglkihgfddhfegfefheffgeeegjkkkhgedfigfgfdgjjjiijlnmryzy€†ƒ„–˜œ™š¤ }o}†‹’Ž•Š½ÜÀ­Â¡šŸ}[pŽ—““’““Œ¢ž{r}piozrcbbfiljhjjhmlefih_i†ˆpouqsnebbgijkkolpmlqnomiggfffdffgedfiifhiifffgjfgmldchkhkonkkmmmlmnonmmnnnnqqqmponoooqrpppnookopknnlrsllkjmpmgmmmnprtvwy}†Ž–™š¢ žž §®³·½ÅËÍÌÊÉÎÏËÿ½´¨€u{ƒƒ}zƒ’›š™˜‰uqttw|{wy||{||}{y{z|xqtvpijmoonkiiosqojflruqnlgeloopmfdksnoqmfgoqoqlcblsroleafnmf[QM>/12/JXF256.).>FRbV9-L^`[[\_\\][YYZVQVWX[YVTUWVY^YPPWZ\TLTWMN^^X[\WY^WMH;*+/0.36689:<779<<978;;:<;4;OI,&*%*7BWciVMv¬£hGy¥‰a_g_WZ]]bceffe^QPTUZZZZYYXXWYZ[ZZ[\_^^_bcb`befecdfgcdcbdgfdeecbcffeffggfeb`bbbbfihedfhheefidgiigffgfeeffghhefggghijaYSQSanqswvoyz`Q^YXkrmprmpqolmllptpnpnjmomlmnopqlnqrqoprpopstsrrrqruwvrp€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€Dnynrutxsrqrusrttqqqonpsvsrrrqpooopoonnnpmmnnmnpmnnkigggjhgefghhffffhddkgeccdefge`cigcdfgjhiokgnofbgkkllnirqo¨•„— ŽŠ‡iSt—–š›¡§¢«äÔz~½¼˜io¤‹¡¤l`Œ¡—r^etsmpnftŒroxqplb`ejjhlpooplntpmnhfghgfejhfgjkjiggghihhglihkkihiloooqqnmonnnopppnopoqsqmtwvqrsstpnpttttqpususptrrpnnpqpnmmkjjklljhgfghihhhhhhkorkpw~„‰Ž‘—¡ £¬¯­selokx£Ÿ™•™™Šw‰š•‡‰‡‚ˆ„‚||}|y|z€„{yrimlntqiijmppplehsqooodbkprrkcdkppmmicgmnkqoc^hsrpmfafnmf[QM?001.JYG256/+*+-9E:+,CMQVZZ\\\^_`dd`YZ[\Z[ZWSTY[[\SNRSUVRUWW_]Y^\VX\`VLG8)*/.02249;988:;99:978:8;=4:QC'"&$)7DVdkWLs¬¤fFx¢‡_^e^X]_`bbbgdfcWQW[\[ZYZZ\]^^^^_`bd__``aaaababdca`aedcabcb_dcbbbbdfffffeefgfbaegfedfeeegggfegjihfghlhgjjeeihhhggghiaZTORbpprurmyx]QaXXktklomllmmjijkpomqnmrqonorrsuppqqqpswpoprssrrusqrssst€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€Djzusuutssqrrqqrrrrtuuuvvssutsssstttrrrttqpqpnnqpstsrtutsqmlkllljllmoljopnlkjjigijiiljghhkgcffcehfccefgjddhhcioifhkhiiablrpptsv~w„²ªit°¼¤s`–¨«ÎÄgT¦×Äœ`QŒ¯œsƒ°£„„ƒztvrnx~|||~xkotru{tloojdfifbcgjjjkkjkgfegikigfjljlomhmrokosrpppqsrsrpmqrrrtrnuvvtrvywsqswxwvutuuwxutsvuuuspqsppqqqpnnqqqrqrqqjmprrponjjigeegiejmklrwxmkmqlfm{†‡‰‹wŒ­·¯°®®»­‘yx||†‡‡‹‰}…‰ƒrjmomjfgkpqqkeimnoroeckqonkebhnpqngcdinoold`irqrohchpoh]PJ>210,JYG3560-+'#&,*(../.6;:==AFIKMQSRWZZZ\a_Z^b][`_Z\XX]]ZXX]]Z^]\`^cVLE6'*.-/3336765987679:;6869<5:PE*#'%*6DTenYKr¬§bFz ‚\]e_X\__babfdfcWTZ^_____```_`_``aaaccb`__`afa_beecc]befddca_bgieabfhdacgieaefggffedeghihhgfegijhhghjjjjhfgjkkjhffgheWQSU_mtusqq{v\T^YYjrjioomkmopnllmopmmnpqporromnorrrpqrsoprrqprtsttrqrtv€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€Chxttrsyvuuuwxxuxxuswxvwutvvtssrvwwurpqrvssssqqtpsussuwvstvyzvplpttqsrnmoqrrpoopptpikmjfinnhfhjiigggffhjdgjhghhefbbdfgfhfcbcec^bbciib_gmigZhoqƒ|[T{’ŒiGa™¥Žn|¢žwvxqqqs‡±¼½±µ¾œbw²¬{dbo~ŽˆŠƒtorpllmjimjhghlmkhmlnqpmnppnostpnqtqrrpqtsnrutuvwurrvxwvwuwwuvxxutzuttwyxyxvvyyuttuuvvvussqsuvvutssrrqqpooopqponoppqqomllkknpoqsngjqxzwrqrt{{{‚†Œ——|kmnjvŠ˜™š… ªžxhqqkjiflrsqidimnpqmggkpmlkedkskppjefmttnkfciqqrohchpohWPOB.*-0JZH3561/)--**,+)-+&()&(&'*+)*/477:=>CHKJSWVTY\[[__ddbb_ba_`a`\\bWLF6'*.,.3655667:767879<<:9:==DRI.&('*5CVdkWNu®¦`H{ž€]_d`WZ[\acfhff`UU]```bcb`_]``abba`_eca`````da_`bdddadecceghcegfdcfigc`ciic\_fifeiigdhlligghfgiijihhchiedgihiiihhhjldTPWZ^jsusuw~v]U^YZjrlkqmmmlnqplkkprooqnronopnmooopqsrokppqrrsrptrrssrtw€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€I‡™‡‡†{vxwxz}€}uw~}xxvtvtuyyvwxutvwwutuwwttvvuvytwxtrstrsrrsvvusswsnrxwuotxxtqsuuprusqrrsopssrsuomqsmmqqnklljlkehgfgecedcbfcdfcfc`bc_^aa[[\[]]Y]ZZZZZWTWWXUTU[Zapnllomku„–•¤³ŽNu»¤\BO±ÑÍÅÏáÖ»®±ŸŽ“Š‚„„€}{ywrolqspmmoolptsqvwrxuutrswvssrtx{yvyz{}~xuyyzvtxyvvvx~{yytuzusvxwy|}|zwvuuuwxyywvuusstuvusprsutsrrronmopponoopqonqtnrwxxwtrl`]db\]bdbejjgkttx}yt|‚}wroqrkgijmrtskcftmmqmfglntuldglmnmnkfjrtonng_dorqmfbgongYOMA/+,-JZH356201/.-*')/%((,,++%)*(%$&&$#$&%%&)*,04559?ACGMNRVTW]^[__]a^XMF6'*/,03449;986899:=>>DADIKPX\C*"%&*5D[cfUR|°¢bHyœ€a`a`WWXYaekogebWRY`cccccba`aa`aabbab`_`bba_`deb`adegfcaaccaffedfiheceffffhiefggfedchgfffggggghijjihiiihhijijjjihijldZSOQaptuuwswt`WbZ[jsnlpnmnpommoonnooqrrpmlopoorpmovumlqrrronortrmox{vrs€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€U¤À°©‘y|}tkimqrttvwwwwvwx||vvzvuzxuspsuqptwvuvvxzwqswuqx|xttuuxvwtrxynssttttuurqswywuvwtutqsvsprssroptvsppqnnrpmonjmqmkjmmfehheggdege_a_``]]^[\Z\ZWZ[TWUVSRSRYlvuomoqhWRWZZZVVceaWP\w™šš°É½­»½¨®¸£ž¸º³·¾ºµ±«¢   š””˜†‚…ƒ|xuvuqpsspnquwwtrqx|€€ysx€xy{}yx~|}{}xyxr~wwwy||ywz{zyyyxwxxxyyxvt}xtsuwwvwttvvttvupsqqvtsrvwtruvolt{zwuuskjkljjkijkkjjkkjkfgiedaW[nsrqjhhknrurjfioqommjhkprpkhgioromicelpknldaipnqqfadkpi[QN@0,.1CVI799425332//0,-/.)(+..&)*((*)&'))&%''$(%$')'&'()+-0468??@CHLMLFA92-,-.34579:<<DFIMPSUUXXXWUROM1(*)$$1I`giWOs­§_OvŽ{`^fbUZ^^eihffhdYSZcca_aaa`abdc`aa_^`abbcedbcefdbfiecbcbadgdffedegfdcfdbgifcdggfijhfigghkkifhhgfgghhllighffkikjgfhkkbYSPSbqrvvut{t\Va]Zkvonmmkloppppnooopommqnmllnqqnmprqqrpruustrrvustutuvt€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€]®Í¾³œ…ƒ‚€q\U^dbgghkmoootqqty|}}|{}{‚Ž‹…†‚€}}zwxxvxxsnrsqqtvuurstswxqwwvvvuuusxytrtur{ttvrruvsvwutrqrr{vostsxtnpsromrolouqmkjnlkliffidhjfchia_]_a_][YYZ]XUST_otnghnqi[RTUTWWYWXZ\]\XV\_]hxrgnrljw~rsŒ‹Š“¡¦©§ª¬±¸»¼ÁÈÁ½¸·¹¹´®©¨ž‡‰ˆƒ…†ƒ~……}}||{zwu{|‚wvy|wqvzxxwxz|~~|zyzyxwwxzyxz{{zxxxyvy|{xuuw{vtvyzxwyruttwuusvrorusmlswux~wsonnkjllsmlqpkjpoonhekldeoqttlhijrtolkifmqpnkeelqpmiiikosokgehlnormefknmqqgchoqiYQN?.,./EWH578666344101/..021,+.-,*('())**(&%&&&"$&&%&'()*++*(&$'()*,.02//---0239=BHMPRS]]\[YVTSFEB>93.+("),('0DXdiVNt¬¡fNu“‚c_ibWZ][addggheZT[da``a`_`bbabb``a^bcddddeggbaeeddebdffeffcgdcfgeefghfeghggfigfgihfhghijjhghhefkkggiigghiiijjjjihij`TRXZ`lrtttszt^Y^\Zktmmojnnlnonnpmmnnonkpqnntspqqsqoooorqqqrutrqvwussqqs€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€[¢Â¹°œˆƒ€‚wc[diejijjmnonvuutwz‡†……½Á·µ±¯°¯¬ªª¥Ÿž˜”‹‹‰…€~{yuvxxxywvuuttsssvvvspouzwqtyxrrttwywuuwxvvvuwwurxtyvstsutpqtrpppplklmkkmfiligkldccegha\^_[YVXWT\ormkouvlXQTVUWUVZZZYZ[_a]_]\a_ZZ\^^``VVe]^cdbehekmry~‡ŒŽ’•˜ ª­ª¤¦ž•™”œŸž©³¦“”——’Ž’™’†ˆ„ƒ‡~yƒ‹‡€€‚yy{}|zxxyy{}}{yy{~~~zxwy{sux{}|zxwwwx{|yuztwzxwstvwurqsuwttvxyx{snnpmmopompuuolmlpphejkfmmnstmjiioqomiggqssqmeemsrpjcdkpsspieejpqrlefknonldcinpfXQN>,,/-GYI3689;9458423311475/-./..//-,-*(''('()'++'%&'%'(+-..,,--.,+,15149?EKOR[\^_^\YVNLHB;4/,***)(%$"&!'*)*3GWfkVOx±¤hJq–…a]i`W\_^cgikgfd\W\aaaaa`^_bcabca`a`fcabdccddbddbacdfgecefghfdceffefgfggeegggghijhffghjihgggkhijgiljfikhefhhggilljkmdVQST_nuussqys_Y`]\lvopqtpnnopommllnqqpnrorsoqtsmqsrsporqoortutqotvuusru€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€?n~~wqqqqlc^cillmmmmoqrsvyyxz„‰ˆ…„ŸÆÐÉÊÈÉÌÍÌÍÏÈÈÍÐÉÃÄÆÀ¾¹´°®ª¨§¤¡—•‘ŽŠ‰‡…‚€~}xwwxuqsyvssxvqoquuwwtstvyrrwwyzwppzvpwvsstsqnpssnlkoolkmqllmighgbedef`Z^b[USYXSZosomoqodZRUUUWWYTUVY[\ZYWXZYY]_]^`_bfc_ccgiebehfddefffghcegfhklkmqokksurt€ˆ‰˜“…‹‹•“–¬Æ±œœ›£®•­Õȳ½ºª›˜“Œ‰ƒ€~~{yy{}}|{z{|}z|~}{{}z~~{yzzy~vuxvux|zw{{utuwmtyywwz{qmosrqrssrrtspopsurkfglnnossmhhgkmosqkhmnmkmojgnupmhcfmootrkgekupnmhdhlkmkcekpofXRP?+.1-GYJ67;;><57<946869842331-,-12/.0/-,/.+*,,,*))+)&,,,-./0125:?BFJLVY]a`]YVPNJE>70-))*))'&%%%%&&&&&%#$#(3F[gjUNx³©gIs™…_\i_X]a`filjhhe[V[bebaaa`_`cbbceb`cdccddcdfeddddedddfdcfffheddeffefedfgeefdgigghhghijjjgfffjhklffhehilkfhmnggikkklocWQQUborvtsrws^Xga[kvrstpjnrlmrpjsrpsolssqlloqppqoruqpqrpquupptupswxssvw€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€>^gacdee^aefdaabcdedcdgikiknqpruvwz}’±¾¿ÃÂÅÉÌÌÏÒËÎ×ÛÔÏÔÙØØØ×ÕÑÐÐÏÓÑÊÉÊÈÅÿ»¸´±°¥¨©¥¡ž˜‘ˆƒ€‚ƒvsyzvuvurprwxuswuyuqsrqsvwuutsrtnnrsmlorjjkigkmekicda^`a_ZWZVRajnkjmoqj[TXZYZXYZ[\\\[\\[Z^_[\^]b`_bhfa`aggbadggjjihggfelklmkhikjjkkljjibgifeggdgeeghkwƒs|z~ˆ€€ª×ɹÒÕüÁ¿½½¿¿¾¼¸²¯±°§—•‘ŽŒŒ‰„‚|yxxxyz}}xx|‚€zy}|{…zxzuwzusqvywwyzxsprutsuuxrrwxstzwxvleiqtqjkonmidimonmjiklmmnmffonmooihihoqmhhilromjebgmmpmgiprrjZRR@,/4.DYM:<==??89?<8:<;<:535766323424784221-.030.00.,,57;@EKORTVZ^`]XSROKE@952.,*'&%%%)*))'&$#(''&&%%%% $%%+4DZbeTMt¯¨fLzž†a`l`Z]_`cdgfilgYRZeecbccbbbcbbdeb`dacddddedcddbdedcaddeggegfccghddgeeggfhiefiifhjihjiihhhgggjhglkgijffhhjljkllihiklcUPUZdnpvrsqwr_Ye`\lwpppnkpqmqunrtnmutnpttrrssqrtnptspsutnnqswvrqsxxtsvv€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€:`kbdjkgcfgecefecefecdehgcbeeccfabfgny}ƒˆ”—¢¤¦®´´·¼¿ÂÄÈÎÐÐÑÔÓÝÜÖØÜÜÚ×××××ØØØÙØÖÒÐÍÉÅÈÇÀº¸·µ·¥†v}‚~~|‚…{uwyu|{wuvy{vursvtpotqlnsvqjolkiehkihmlfcbaa`]WUZUQbornnoopiYT[_^]YXW[]^[[^aZX\`_^`a_`aeggffeiigjlmpklkkmpommkloollpnkknmllomifimmkifjjedhhdb]fdafdgt‚up„{y„ˆ–œ  ¢«¶¹·¶¹·´²µ¸¹´¯²¬¥£¤¢œ–””‘‰†}}{{|x{{{vy~srw|‚ƒ~|zsqqrruxxxvvyxwvwsxxlbmyuojpsnheghoqoljhgllikmiflppplechkoolhfgjosqg_bimpomgjmook\RRC-/4/AYO>?@?@@;=A?=?@><<=;78<;99997788533358;77;BDEIOUWY[[[YXUQLID?7242.+(''(+)%"!!#$&''&%#"!&%$$$%%&&!"!#+6EYbgYRu­¦cL}Ÿ„``ja[\_chfhiijfZT[dcbcddcdgd`becabbabbbcedaaefdcedeedddffgjfdeggedffggeeijggggjkhgjihghijihcgffjihkjghkjjiijlkhfjlleYQRWeqrtprswubZca^owonournnpsropqqonorupqwvonrroootwtrwsrtvwxxvostuwvuw€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€9cm`affccghedgfcccdeffgfffggfdfigdfeddadbbdffegjiimprx{yƒ„Œ’•—šŸ©«ª¯´¶º¼¾ÂÆËÏÓÕÚÖÕ××ÖÚàÝÞÝÝßÜÙÝÆœƒ‰Ž‘•’™{oŠ‘Œys‚ƒ‚ƒ|uy}|yux}€{plmkjlmkkmjgikib__^`[TRZUPbvunnqqqj_WY[Z\\]d^YX\`a_ba`ab`^``cfedfgfkmjkpnknnonmotrnpooppppprpooooqsonooljntqrpkijmormoolllijdfhhgdecddcbcfhljmpomu€ƒƒ†—ž Ÿ¦©®°±³¶¸¸¹º¼»¶³²¯­¦£š”˜–ˆ…ƒ~|ttw‰•“’’ˆxttutsy|z|}wuxwsy{}rfsykhnrqmghglppnhdelsuqkdfqnomjihhjlmnjeelrssjadjlkmkfgihki]OPD--4/AYQ?AAACA>@B@ACB@?ACA==@8:<=>>=;>@BCEHJITUWWWVXZRQNJD=841-)%$$%&%'+--*'$$#""#$'(&&'''&%$(&%###$$#!,7F\gkZRw¯¥bHzŸ„_^gb[[_hmjkmjif^Y]ccccdcbcfdabdbaaabdeeddeffcbehdbdfdefffgheggffffdikjhijjkkgfijfgmihghjjjighmnighgdgjjihikfghhijmncZVTVertsostyucZhc_nwprurqonnmovrqrqnosspsqpsrqtqsssusruutssvurpuvssvwvw€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€?hsijigfkjhffgggigefhgdadefgfggglfffghehgghifcdhhggedhidib^bffdefmmmqqqxz|„‰Ž’”˜Ÿ¤¦§«°²¼¼¼ÃÊÈÈÑ¿•‰’“—›žž¡š‹‹—ž¥¤ª¦zm“ž™£›‰‹˜™’š¡¸Å¤wxš–Ž…ysqolrtkddc^_[X[TSj…uqstun^VY[Z\[\X[_`^]]_ab^]bb`caefcagiclkhltpkpuvtrtxvpprqprvvrqsrqqstsmoqtsrsurjkvxolqppqsonspqlwtijmurollmoonsjehhc_`fdbabcccadinrw{~ƒ†Œ“—›¥¯°²°³²´¿¾šsx‚z}‚‡–›œžœŒy{~|zyx{}~~~{{zƒ€qw€uiinoqqgchmppnjghlrrolggnprnhedfmppqmeelqlmjcblqnnmhhgfkk]MOD,,2/BYQ@ABBEA@BCACECAEECACCB@CDDFLONPV[]]]XRTRME@=71,,*('&%%%&&%##$'%%%$$$$$$$$$$$$$%%&%$"! $#"!!#$%$"(+09AL[hjSKt®£fHy¡ˆb`hd[Z^gkeellmi]W]fgdcccbaaddccdb`cfdcddccdehgfffdegdegeeffffghgedeehihhfehhjjhiihikjiiiiihiijkjiihhlkijjikffhkjijmdXVYY`oytptvyubXea_r}urqosusnoqroqrstttuooprqstsprutqsvtturrwwtuzvuvwxxt€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€Ehrospnqpsromjlroliknnlnjijjjijmhglngfhe_dhhffghgfddffdcehkiecfieeffgghhdfhhggikehmqolmrtvx|€„‡‰snsy{{{„ƒ‡‡…Š’—”žœ‚yŽ¢¡ª¤”™¥ ºÆàúÙ‚|ÍÜÊÇÌÉ’s‘t\œº¡¡ž˜‘‰Œ„e]w tqzurv]XYWX\YY[W^\^_Wb^fe\`ecgejhcefgiiknorsrpuqqutprxttssuvusxsquvssvtuwwuvvronquursvnqrrsrqsppttpmopklnpqqrrrnggopljlmmmmnmlhjiffijhghijjihgjoprx{…yploqry„ŽŒ‰ˆŽ”‹x€œ©¤¢Ÿž¤Š~~€‚€}‚‚yy€vpmmrqiigpolmiekpsnkmgbgopolgcgoromjeelrolgcdjnklpkbcghg]UQE/+32>SQBDGCDABCDEEDDCFJMNOQRWY\^^][YUQKGC>950***'((#"$&'&%%%%$##$#"!%#$'%"#'&% !&"&##$%%$$#''(*+-27<>BCNTLJZghYNz°¨fG{¦‹c_ebZZ^gmihghkh[TYbkhbaffb_cddcbbcfddcbbeghcadgdcffgefiifefhffggghgeefggfgieghijhhjdiljgilogikiikllmmmlmlllhjkjhinr`WRU\fptwwwrvvd]he`n|utxsqsvsrsrrwwvvspsutvuprwwtuutttsptvuuwwvxwuvzzvuw€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€Ao|ruzwsstttutrqsqprurprvplotvtrlloommppoomkijlmiklkihikjkkjihhieeeeeeeefeeeefeehecdgjifffeeefghgghfceihhffhgfhlklrvrmpw{uˆ|u~‡Š¢ÅßÀxu¹ÌÁÃÙÂ}‡¹kT¶îÓÎÏ×ÚÎÏàÌŽu‘ž‡rtwsrnRHq„\gstttnid]`]]bfe`febdhfdhmmosssuyrqstsqtyutstwxxvsvwtsuvttopvtpqvwvtssuvutuvutrppsqqstvwvwutuuuroqsppsropmpstsqnmlorqonoomnonmmnojkllkjkjlorpmlmlnrutu{~xx€…‰Œ›ž…mjorx˜ž’€‡›¢•|mmnkecgnnnojehqrokjgionknnfekoponlghmsokgffjmlpmdbilhd^TOD0-30;NOILJDGCDFIKMMNUTTX\\WRSQNID@<://-+)'%%%"#&%'(#&'''&%$# !"#$%$#" "! $!!$! &#$%),1578=??BIOQSZ^WWYNIXgj[Mw¯ªhK¦†]^j`XY_gmjlljkh[SYdgdegfffbcecbddcfgcadeeddebdgdcdcgfeeefggdeggehidfiiffiiegilifkmgghjljhiljjjkjiikmknplkmkgjlkhgilf\VTV_ltuutputc]jhcpzuuvrpruttutwtqquwtrtyxqovyutstvwttusuwyyxyxvwwvvwy{€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€Enyqtutxwwyxvuwvwutwzxtuuvxyxutvuwustuwzwuuttsssqstsrqstrqpoponmooooonnnqnllnnliikjhjlidijjjjiiiiilkgfhghgghiiiicedceedecbdddhkhhs~…~ee€………“…b{ŽiZ’±£¡£³¹´»ÎÁŽx‚pmyxvwj55~´¶Î·]o½Ä¸¼¨•ˆ{xŒxlzupvxxyupomptsqptxtuusrstuwuuvxyxwrwyusvyxqtvvxyyxy{yutwxuttvwwwuszxwvxywuyustxxtouyyxxurtstvusqrtnqturnpsrollnppoqlmnlnspoqrpmlmnls{ytt{}og`_aadhfigfhgiq{…~qx‰qnssmggklnppkghrqpmjgjntmljddlppmliefnsqpkeelqmnhbfppga_RMC1.2.<MPINNJLQRSTUUVUXRKHIF@952.)&$$$"$&$" "#(&'(&%##"""##" ""###! $   ""##'-.06457:@GNROVWQR[_]\hna[ZOIWhl[Lu¯«eF{¦‹caib\^`figjnjkh[RXcgeggeddbbdcbdeeebdedefecebddbbffdffdeghggfhfdhkgjihghihfikjggijjiijkjhgikjklljkmnklnklpojjjhffikcYSSXcovstvsxvc\jhfqxtwutrrqnouysuwwutvwttuvxwwywxxxwwwvvuxyvwzyqtxxxwxy€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€Gy†xwxwyxy||xyzw|zwx{{wuyxxzyxvwy|wtvuswttuxwutvwutuwxwvvuttuutsvvvvvwwwutrrssqpptutrqpnmnpqqpnllhjnnmmmnmmmmkiigjljhjmmomgdglicfieabdegkbcegcgbbffggbaflmmttc]kqiltnouhG9VrŒ½ªSpÎԿñ£Ÿž¸Ê•xš¡–¬¸³°°©¢œœŽt`ey‹”‹‰ˆ†ƒ€}{|}{yywvwyxwvxrxwsv|{wswywtssrusuwvvuqrwwvvwtttsqtwyvsxzywxursttutrpswsqqsqnqvsrppprrrtppqoppmqooqqppqjpy{uty|vlikkigbfkjefhjkecge_ce\Vcrsoifmnlnqokijmnmlkiillnomgdhqqomidgntmmhbblqnljdelnig]RNC0-2-<QSJNVSPTSPLGC?=52.)&$$$)'%#"#%&"#$$""#$ #%&&&$$#"###" !!!  !)'&(*.0268:>ADHMMMNPSX[^\baYV\^[[fk^XWMJYhk[Lv®ªgH{§d`e`[^afjimkjkh\RW_efcbddcefaeiddhhabdefeefccefbcgjehhffhighgghhihgikjggjifiihjlhgllmljjklkkmmllnnmmmkjkkihljgggjklf[TUYdoussvtzwd]hfervswvsstsqquwtruusuxwywtuxwvzwussy}ztwwyxuuwwxwy{zxxz€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€]ŸµŸ†~|zsnottpwzxvy|{{zvvy}}{y{~zx{yux|zzzyuwzxvuvxxwvuuvvuuuvtttuuvvvtuwvutuvyvstttuvstuvwwxxqqsspoqqonoqpmkmrqqpnlkikkjlnljmifhllhghhfmdffdebfbb_Z^\\[WWYRR\koonknqdRMRNPdbK`€uvsuw‰¢°…k‹”¤¼ÊÉÊÍÉÄÊʳyBAÀËÀº½Á¾¹·±«¦¦£˜˜’Œ…ƒ„…„€~xw~|ww{zz|{wuvytuxvxytu{xtxzxxuvwwwvutwywuvvuyuuwzyvvzytruvuuwoswuroqtrrpossqrqstsrrpmlnuyxw|~zlhligjlnjjlkjkjjlof^egY]hqnooiemknqniijmplijgfmqnljhehopoojegmqpkheehmnnnf_elmmZRPE0+1/;KMBBA92/..,+(&%"&)'%#%'$#####$$"!!"%%&% "###! #""!!!! "#$%',2678:<BGLMSTVURSVXZZ[[[[[[_cb\[_a`egg\XVLK[hiZNx¯§gJ~§ˆ_ala\_afjiljklg[UY^ffdbdcbdcaeecdheecbdffeeegjifcddiihfefhjhheeiheeijjihiiiljkkiknnjkljjkmmmnnllmmknonllmkiiijijijklaXVXbpwusspvtc^jeesxrvvvtrqtwxxurtwwyzvwvvx|xtvuvxyxvx}uxyyxvuwzwwxyyyz€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€`®Ìµ¡……‹ƒqcbhkllqropqtwstvxxwvwwxwx||{|{yy~~yvwvxyxvuvwtuvutttuvvvvvvvvtvxwttuxwuvwvsuzxwuuvy|yuvwsprttstwwttvuusrronrstrqqqpptnjnoomlfqqfiinkifhd`cbcXZXWUPPYgonmqvsePNQPQTU\Y^ZTX[[_Wdhlc]edt}‚‡“ž£‹_R‚ÀȾ¼ÈÓÔÔÖ×ÑÐÔÕÑÐÒÔÊ´Ÿœ¦¨¡¥ª§¨³°ž’”ŽŒ’‘‘”‹€€}€‚|‚„zt|€zwxyzzxwvvrwwuuuxwtswwttxxutwzzvsrssuvusqtuqossrvuwxwtqrslow{xwyzrlnqnmnlmntsjhmnkkng\bicdkurjjhfjjmpmiggnsokjedmsmmmhfiioonidfkookfcbglmmmeaiqmgZSQG0+1/*..-,'"$''''&%$#$&''$##$"#$%%%%$%#!"$%$"!!!$"#%''),/68;=?DKQMRUUUX[\_`b_YZ^]^___^]\[`cc]\`cbihd[YXMM]ihZNy®¦dG|§‹ccmd^_bfjgilllf[X^bggiidcdbcedcehfddedcdghfdfghhihghhhhfegijlhehkigjijlkhilkkkjjlnojjknnmmomkkmmlllmloojkonikkiffhkeWMOXenqvttrxuc_niftzrtvosuvwvsrrtwxvutsxvtwywvxwutuvwvvuyyxzyx{xzzy{~|x€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€b³Ð·¥™‰‰‡vfhkkotuuutqqvxuttutuvrppsv{~}|™–‰ŠŠ‰†……†}{{{zxwyxwvtsrqxxxwvuuuuxzzwuvyyxvtttuuxrrwwtvxyxwwxxvuttvwusuwzsqrtsttwwtpoqrputkmvmpjgkoiij`\[[XUTQSYnpkkosrgPQVTRTSXU_[TY[Z`Y_[X_c`\^]\_eedimikplck|{|…“–™ œ «²´·½Ä¾­œž®¶²»ÉÌÐãæÌ´·º¿ÄÇÌÔÚ¼°¬¬¨®²¬¿Âµ©­¨™‘Œ‹‰‡†ƒ€}x|{yxvvz~vqsussvvvuvxyvs{wtv{|yttvwvwvvvrtwxvrqsioxzwvyyuqommoolmqspnoposmomcdjiiksrmkiiikmnnkgfjppmlffmolomdbkqooojegnqnmibbltsmkedoskb[SQG2-2.'$"$%&#$%&''''%%%$$#$$$$%%%#"! "&%%)*-36:>??AHMNRUVTUWZW`ea]\]]^`daY\b```____``ahg]Zac^dfeZYZPL\ikZMw®§hH|¨Žfaec[\`hmjkkkkf]Z`eedghffgfecaeiebfeddfedfihhfeghhffgijiggighjhhjkfjmmjjmmkhkkmplimljkmnnmmmkkmonnoomsvpkmmkkigfgkmgYPT_jpovuww|wc]nkfr{tstsvvsssrswwvuvutusvywvywqtwwuuxzywxxxyzz|yzzwx{yu€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€U–°¤™…wz}}kalspsxtsy}xvz}{y{||||zttwx€‡…‡‡œ°¶³°°®«««ª¨¦©¥¡ ¡¡˜•”’ŒŠ‡†„‚~|y|yuruyyustwxxwtsvxzyvwywwwutwzyu{swztx|tuvwvsuwtxuqquututpnrxqrlloopgbhceZSVWPPYjklqpnmdRPSRRUUWSPQYUT\[\W\\Y]acbgfdgjloklmnnlheijihhijkmggoroosqqppt{}{…Œ›¶¹¢’š¬½ÂÃÌÚåÏÄÅËÏÝéååòïéîêÚÓÐËÄÀ½¸¯©ŸŸ›™š–Ž…€…‡‚~xzxuuxzxuwxvssvzwuwwrswvrxytswunptyxtv{|yojotrqsvsorwtptpnqmdhplfimnpmhjlnmmomiglnookggjmllmmihjkmnkfhmnqokfekqqslcclojg]SOF4/3-#$$&'%$(##$%%%$$"'('$#"!!"""### "%&&'*-7;::>BFNNSVTPPV\VZ_^ZWUVQ\db\\^^`bgbY\b_`_]\\^acblk^[eh`cjj\Z[PIZjm\Lt­©eH}§Šbdng^]ahmhhhgih_[_eggccfgefdggffhgehgfeffedghgefhgfgijjihjkkhlnikpmmmmklnmknkmomlmnpnllnqpmooonorqoomptrjiokhfhlonlaYTUXbnuvtvv{ub\kkdo{vttyxrpvyvtrtsswwvxtqtywvwvvwxxusvzwuxzxyzwuvwxyz{{€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€8_oggf_^^]]]_bdfdghghlljonnqtvvuqv|}}~ƒˆ‚……Š ¹¿µ·¹ºº¹¹»¼»»¼¼¼½½½¾½»¹·µ´³¹µ³²®¨¦§£¢Ÿ›˜”‘Š‡ƒ|{}{zyxwuvvxzzyx}|{zyy{|{uwvqtzxrquvsnp}xrqtrprvqommkjkf`_^ZXOKYloppntveUNQQSYWSS[WQYa\UYY\__`eldgiihhknponorsrqrolmrtspppmijnnjkmlhffebeegmrsmgmpux{€†Š‰ˆ‰™¤­²ÎßØÓáßÔÝÛ×ÖÙÞàÝÙÏÖÝÜÔÎÍÏÇÆþ¹³®¬£¢™™™‘…ˆ†ƒ~~z{{{zywvr‚y{|qsuƒ…€~yxprpnruuvmprrssroqrwobkwpflsrmkkiiklnnjhilqrmigimnrojhfhmlmokeflmpmjcakrmmohdgnrkZRNH:-)) &(#"! ""$$! !!!$$"$  %&&)+/51<?87@EDPQTVTPSXZZ\]YVX]YX^a[WY[X`f_UX^\]cf^V[cbcd`abbhggjh_]cgfcgbW\]OL\llYKv¯§fGy©``ld\]`hnjkkhkla[bjjfgiffjlghggheeikgfdcfifigffghgfhmlhijijinolkklnomllmlkkmponolkqqllnnmmkloonoppqpnnoonmnhfjmhjnlbZSQWequvuurrvg`ohapztuvrsrsvvtuwvtsrsuwvutvxvv{wuwywvwxyzxxzzxy{wwxy{|y€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€4Yf\^a_a``_^\[YX]\\\\\[\\[[]`aa``dghghknnqrt~ž¤¢¤¨ª«­±³¯¶¸µ¸À½ÀÁÂÄÅÇÈÉÎËËÍÍÊÊÍÐÏÍÊÇÄÂÁþ»¼¸°®°©“}ƒ…ƒ}{{|}}{yxxyyz{xxwuuvssvutuvuptutrqqompooonleb__[SROMYkpmlkoodURVTQVXZY[ZY\_^\[[]`_]`dkllkijnrqpopqrqpurppsutrqrrsuvtqorqooqqonljklkfcmljhgffeffgilnml€ˆ„Ž†Œ“”œ£¥¤£­ºÃÇÉÌÏÖ×ÙÛÜÜÜÜÙÝÜÖÒÒÏËÅÄ¿¹´®«¦¤ ›–‘ŽŒ‡}ww}yuz‡‘’‰wqqssuvsstw{zwuvuv|r_etpeinrohegfikmmjgjnonnlgfjoqojhfhnpnjigfkqmkhddmqnmohegmqkaURK8,)"$'%! !% "$""!&''*+-45;=>AABFMRUUSTVWUX\^[VVY[[]^[WY^Z\bb\[][ZbicY]cbfklbXZ`^dd]]^^eechf][cgebifZ\[NMYijXKy±ªdH|«Ž^`na\`bfkinkkni]ZdkiigikifhjgimlhhjiffjihhhfghijiihggfgihgjlljimomjkllknqpknqonolkpqjinponlomnonlmnmnnoppnmqkggfjmkcXRU[dovvuuvxu`^nkfrxqswssrsvutuzvstutuwuqquvwwutxzwuxzw}yzzutx{zxvy}zx}€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€<`j^_cadabcdca`^c__bb^^a\[[\_``_^^____``dbbcdekqlosuwy}€~…‰‰Ž˜œ™—šŸ¥¬²·¹½¼¾ÄÇÇÊÎÏÏÐÒÓÔÕÕ×ÒÒÙÚÕÕÛÔ¬Š†Œ‹‘’‹‰‰ŠŽ‹†„…„……‚„‚}{wyy|vuutzwtyvqtpqxsomghga[XYTNZkqmkmmniSQWWTWX[ZYXUVZ\Y]]_ccbdhhjllmortvtssuutrutrrrssspoosutrrorrpqstrusqoopqqtqoortsrmllmooom`gfchifgje`_cghgmoqtx|€‚‡Š—Ÿ¥©«µ»ÀÀÁÇÍÐÚÜÞáâââáåâßÚ×ÕÔÔ®x‚{v€Ž˜—’–”ˆt{}yxzzxyxvvy|zwxvytimuphlopomkiiloonigjmonjigilrrolhehorqkfhjmrsohcdimmmngehmqk_UVK/#&$! "%&$""%(***/56<?>@@CJKQTVYWTW\Y\baZW[Z\bdaZXZ]]_`\XZ_\afd]_a]]ekd[]dbcgicZ^dbcb[[\^fgeki\Y`c^fnl][XJJ\klYKw¯§bH~«]`ob\`bgjinjknj^\ekjjhhkighggigeilffhiilkiggikkjihigjifjmlikoollkkmrljlnnmmnpnmonmportpmnpnmmmnnmmojnpnlkkjpnlihhklf[UW\dntxzyy~ybajihu{ruxtsrtutsussuxwttvtrtwvuwyxvxzyxz|{yxwtvzz{{ywzzy|€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€9_mcdd_`cdefeecc`__bbabda``acdcb__^^__^^a`aec^\]abca^]]^_]^bdcdghjlorvxy…„†‘’•™¢¤¦©¬¯²³¼º»ÀÂÁÂÆȦ‰†ŒŽŽ‘”˜œ˜–—š£Ÿ›šœœ˜”š›•–žž—˜˜‰‹‰ž†|Ÿ–|Š™Œ„vjtwttihgb]YZSKUmnlmlmrnZQSTUYXW\WVYXZ[W][\_``cghkosttrrxwuvxywvvvuutuvwxsqtvttwuxwutwvtuusrqrtvvsqpqqqpuspqqsrqlnpnnqrntpkijkjijhfghigd\]`cegghkmnptz‚‘”š¢ª°´½½¿ÄÊÒØݯ|wŠt„¡®§ž••ž˜‹°·¦¥£›œŠxuz~€€~xrv}€xqoonnmgimoolfdhnpomjhginmmmjfhoopkggjklppjeeikmmnfehlpk[SSK1!% '3AJQOG=97?GHGLNTWXYVSVWZ[^a]Z]_YZbaYUYZ]ad`[Z]^_aa^Z\a^bgf__a^ainf[]bacfid^afehha``_dddmk_\egaflh\]\NL]mmYJv®¦bI}ªŒ_and\\ahnjklgjkb^elihjlhikkgfhjihfcfjigjkhhijkjhhhihhhjkllmjmmmmnnpopopqrplnonmooopmrsnlopmmrpmqqoqsqnmmpppikjhggild\UTYgswswuruwc_olgt{ttuusstussuuvxxvstwvwvuxzxxusuxyyxvvxwvxyyzz|~~z{zu€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€8`qjlmgggggfghjkdffefghfb`_`bcb``___aaa`Z_b_[Z]`\]__^^_a_[\ab_`d`_`__^_^[Y[_a`behhhijkklpuwx{„ƒshhnpsu}€‚~„‰Œ‰ˆŒ‘”’››•• £¡£¬²¹¯™¬t¼¸¯ÙÌ´yKFT[[RQLMKEEFJ]ojloilujWMPUX[WUXTVZ[\`ca]\^abeiginrvvusvttuwxwvxxyxxy{|{uswyxy{uwwtuvvtrsuuuuvwrsssrsuwvtttusqoqqsqosvqrppprrqookijmomkpppnmjhghfedccehfecbbcefkknry€‡‹qv}z{‚‘ŒŠ‰›—‚•ÀÒÊÏÐÎÕÑ£}tqlwžŸ¤–€ƒœªšxjrphhigknnlgfiplkoohgnomlkfcgnrnmlhgjmloleehlonmeehkol`UNMC2+0>Qkvw|‚k\MP\[UVUXY\b`[Y[[Z]a\Y^]YY^^YWZ[\`a_[]b``bc_[]b``eg`\^_`hnf\]cadehf`bfefgcdb`b`ipna]bb\^^WNWZKEYikXKx±ªdI|¨Žabkd[]`imjkpiii`]emghlmkkliljhiljjljjiikhgkiijjjjjkhgiklkmojlnllklooonllmnnpponoooonoooommomrplnnlmqnmnoonmkkjjnnllf]VTZfrvvvvstwg`smfpyuuuuttutttvvwvttuussxwtvzxtuuuuuyzvvvw{{uu}zvwxxx{|€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€>eskmojllkjjjmoqilkgfhgdhgefghfebcdedeffdgd^\ab``ab`][[\^_^\[[ZXYYYYYYYY][Z]\ZY\YYYYYYYYZ`_XW[[TXXWX[^\XY[]\ZZ\_]]]afihfkjfhotuw“¬¥|x…db““…¡±¡d41LQD784/.//,=drjlqhnud=5;@DINTgtpbeu~xsppponputrsuvvuxwvwxywvyxvvvxxxvtuy{{yxvyyxx{{yrsuxyywvuwxwuuwzwvtvwyyxtuusquwtttuuutrqzupnprrqoppqqqoooopplilqkkmmmkihkjhgghijinslozvqrx~|z}}vy‚ŠŒŒ— ¦…jfeev¦¥±§‡®´žwhtshfijmoomifiopppjdfpomlkffkqpmljdejlnpnfaflonleehjnlbYOPRKLYox††y|†‡†x`U^`ZYYYVY``ZY^\Z_c^[_[Z[^]ZY[]^ac`^`f`acc`\^cb`eha[]_]ekdZ\b`jikjdcecce``^XXTRUQG??=953./HYOJ[kkYKx°¨dI{§ccia\`cfkinolmi]\dikmkjlmiifkihkljiklkkkjikjjlllkkjhjkjgijijigjmnlmmlnpollnnnnljjjjnooopnnqqopqomookmprokikjjkllllkbXRV\fqxyuvxvud_omgrzuuuutuustvvuwwuuwwttuxywwwuwuwxwvy{wuwzyxzzxywwz{{}€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€In{qrtprponmljjjpppnmllkonllmmljfhjiggikefd`bhf`cdeca_`a^^^^_____^][ZXWW[XWYXTTVTTTTTTTSX[[VUYXTPRSQRRPKKMOPPNMLJKLMNNMKOLMNNQTSPQ^bSQXOQVWal]R^YECPSGBGD97;9/9\hcehfnr^2)+,+4BQu’‹¢¾Åü¸µ¶´®¨¦¨£™—–“‘‹‰‡ˆ‡…ƒ‚{z{{ywz{zyyyvrxzzwwyywywvwywsnxxwvvvwxxvutvwwvwzwstwxwwwwwwwxyuvwxxvsprstttsrqsqrusnmprssrqnkipppooooosqqkntomqtttxxttte_`^\dkecbdfhnsxvzkt‚ysjjstkedjlmmlgdfhqtohehnooqohfikopnhehmollmidfmnnkdehjnla[VUY^l{}x}|nkv|ƒ‡rYYa^Z\^\\a`ZY^[[bha[__`dgd^]`^_ceb^_c`acc`\^cbcgha^_^gnsj^_daea`]SNMIGG@=70/+%'&# #=TNJ]mmYKv®¦bJ~§Œbcjb\`bgjinmkmi^]dhmokhklkkljhggefiikmkikljjlmmkjjjojknlijljlnmlijnkmmkknpnoqqolmnnmnlkpqonqmormmpnnnnnonmlljlkginodYSU[cnuxvwwyvc`pojsxrsrtuvtsvxwuvussuvuxstyzyyxstyzwvwvxwwvx~~vy|ytx}}|€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€Bhwnqtprpqstutsrtqqttqqtusrrrrqonqtrnlorjopkfhmnjkljhfghhbagf__e``______]ZY\[XXZ\[ZXVTRQRRRQQQQPOQQONOPOLKJJLMNNHJLNMLKKMIMOIJLHIJLIHHDEGHJJHHFCFMGCIKIIFFDADB<EVWW[_jkXC<@A;;ALax„›ÂÏÅÅËËÏ×ÛÙÔÑÖÓÐÏÐÐÎÌÇÅÂÀ¾¼¹¶¶±«©ªª¥¡ŸŸ™’ˆƒ…ƒ~~}z}zx{€}y}zwvxxwusux{}{vrv{vqtwvxyxvsqruxwwxxwwvvtuwxyyxxwpov{xsqrrqpqrtunnopqpppunqqqussjrtwzvszsi`cfb^afijjjkjhcfd]^ebWRcnqpkfiiklnnkgimpokighkponjcchjnnkhiilrokkicfnonkdfhimla\[\`kvxsq€ˆtfo{zƒ`Xa_XX^`bea[Z[Y[djbZ]^`flg\Z^]_dgc][^`acc`\^cbfkha`b^V]_TFDGC>::7/*(%$$ "!!%,' >TOLZjkXKx±©`K€©Š`cld\]ahnjkogfg`]emjkmliloliklifkokjgikhhklhjlkihjmjhikkmnlnnmnnlknqoopponnmoqomnqqprrqpkkpoopoklmjmoqqppmjidgjhkmic[SRWdpttywtyyeasofntrvwtuwtrwzwtsrtwywtuxvsuz{|wwxwvwyxx|zwy{yvxw{…ŠŒŠ€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€3JRLORSVSSUVXZ[\^]\^`bbaccdfhijkgijlmmmmllmnopqqoqsuuutsqppoonnnkkjhgeddgfdba_]\^^]]]\\\[ZYXVUTSTTTTTTTTLLLLLLMLNMLLKJIIJJJJKKKKHHIIIIIIGGGGGGGGGFEEEDB@F>?AA<9EV]Z^^^g\F=FGBFDAEIQZbimowx~…Š’˜ ¦¬²¶¸¹Â¾ÁËÏÍÐØÝÕÍÐÛáÞÙÐÑÓÐÊÃÀÀ·Àº¢–œ•“—”ª®—…Š‹‡Šˆƒˆ‰ƒz{~~xz~|y{wqqrtw{}{upwwwwwxxxursvwtsvutsqqrtutuuronqtosvtqopsprrttvwlmlv~vrw{tifkkiihgjlkkklkhjle^cg`^hopomhflpnjljfgqmmnkhhjlpqlfekpmkjigimnpnlhffjmrpe]dnolh`X`nppzyku‚sejp{…ƒt]X`Y^`^`iia`d]]fid___]diaXZ_adikhda`bcefaYUVQOJD=73032-$!  !"##&(# (+)*-1%:VPJ]mjVLx­¥dI}ªbbje[cecmqnnpmg_^glklliijlmlmiinnjkkkjjkmmlkljgkpoijljhlnllnjlppoolkmopnlkkpmmpqnmnpmopmmqtonqromnlnsrnopnmjeglkjlng[WXZanuuuupuvf_rlct{vsttuuwyvsvuuuuuuuusvz{{vuxwvuwzyvwyzxuuuwyw‚‹Œ…|xt€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€+AF===;=>>>??@@ACBACEFFECCDEFGHIIJKLMMMMPQQRSTUUWY[^_``_ccdefghhgghijkklonnmmllkkkjigfeeccbba`__\\\]\\\\VVUTSRQQRRQPOONNLLKJIHGGIHGGEEDDFFFFFFFFDCCDEFDCA>>??:9HfkcgigleP>BEAFFD@ACEFFFEFFGJIHINRSW[^acdompy}~‡™–”š£«®®©´»¼¿ÇÊÇÅÊÁ­¦°¸·¾Á½Æáäʳ´¸¹¼¹¶¿Å³¦¨¦ £Ÿ—¥¼¹ž•›—ŠŒŠˆ‡‰‰ˆ‡~|xutvz|urqrsqrvtuwxxwvtruwxvuttvtrsuvspuysnrvqhft|xtuxyunptpmnnrpmlmmlkmmkc[enjelommkgfjnooogcisojmogcjnnmjffimpopmiilnkmlggknlnogagnmjpfYd|{mmsmvwfdkm€‡{gbf]]_]`hg`^_\_gha\]b`gnia_^]^^\UNIGB@?>7/**&%$" !!!!"#$&&'**)(&%$$%%!$,,)+,0$8UNH[ljWN{±ªdI|ªcbje]`dgklqpooma^hkmnlkkljgjjhgjmjghjighkkhmhgkmkkmlmkilooqojjmnoomkmmmnqpnqnmqqnmpmooqtropqoopnmnnrqnmnmklnkkljjmme[WY[erxvtvw{uddrlct|xuvuutuvttvsvyxvttuutvyxxvtvxxy{yutwz{yvvx{…‰upcXV€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€&<B;=@>@???>==<<:98:<==;::;;<<<<9:;<<;;:9::;<<==;<<==<;:DDDEEEFFHIJKMNPPSTTUVVWWUUVWYZ[[^^^^^^^^________``_^^\\[XXXWVUUUTTSRQPPOONNLLJJIJJKJKJJJGFFFFECA??>;<65HflacjeggV<<B>=@AAABCCBAAEDEEC?@DAAABCDFGGFFFFEEFNNOOQTXZZcigjqsow{zrqzƒ…•—¦Âɵ£¥¯¶¿ÂÅ×äÊÆÏÍÅÉÎÑçëåÛ×ÕÐÏÇÈÊÏÒÒÐͽ·­£šš›’ŽŒ‡…†}zwuyxwutqmjsrrrrqqqtwtszwoniuvruvtwuopqmmpnnoprsromlori_grmgjmmjjkiiljhlkghoqpnkedmomljgehlpoomijnpmmlhcchojmjfjmkioibj}shmou}xf_ik{†„tee^[]]ahga_b_agf^WVXTUUNGA:6773/*('!  !!"#%&&'))',++*)(('(((''&&&%$#%)&&++/#7SMG\mkXP|²«dI|ªcbke^_cjjhrsmml^[hkkkkklnmkigikigikjgghihhijmmihlkglmlklmnpnmoqommmjknpnjloooomnppnrrpostqprqppqpoqqomoqnllmkjihjnmd[XWYdquytvw{ufgqjarzwvwvttuutuursuuttuwwwyywvvttvwwyzyxxw{{wy€„|ndb_]^_€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€$8=79<9:==<<;::9;:9:<=<;<<;;;;;;<==>=<;;;;<<===>@@?>=<::99999999:;::9:997889:;;;???@@@AA?@@AABBCFFFGFGFFHIIJJJJKNNMMLLKKKLLLMMNNMNMNNNNNMMMMMMMMMLKJJHFDFFB=>85G]jb`hfglY=9D@<@D@@@@@@@?@?@CA?AECB@??@ACEFEDCDCBDEEDBCEHABCEEDCDDGHIGHIKIORXfkb[[dkvz’Ÿ‘Ž™ž¢°¹¾ÞçâÙßéèãåääçêííëêéçãÞØÒÎÊÈÈȶ­ª°®ª¦£ ŸŸœ—‘ŽŒ‹ˆ…|}}{yxy{xwz|{wmlu€ƒ€€~}tpmlmsvtostqoopppswn`htqbfqtljjbjqqnnkggnoqojhjmknqne`hsrolifhlmlmkedimnimkgjljjikpomxzjjmrwreajoz‚ugebaa`aa^WSRMJKH@851-,*$#""% !#$$&'''(()))++)(()++((''&&&&&&%%$$###&''((+.,1$7TMG_olYNz®§cH|ªccke^_cgjipolmm`\fimnmkiklmlkmnjfhmlhhllhimijjjjlljjmnnnmmnmmnonnopkjlqqonqosqlmssnqomlkproqqooqpnpqqpqrqnlkjiihkmnb[WVXervwutryxhdpkdtzvtwvtvxvwwuvtrruvvtvxvuxywvvxwwwxyzxyww~„~ul_[adhsƒ€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€&:=69;7788889899:878:;:988877666:;;<;;:9<<<=====:::999::6789:<==A@@>=<;:<<<<<;<;9999::;;7889:;<<99:9:9996677889988777766566788999999:9::>>?>?>?>BBAACB@>?>9573/<RjibghhpbD7AD@EHEEEEEEFF@?@BA>@DBA@>>?@A>?@?ABCB?>>>>????>?@BAAAFCBBA>?C?DDBCCBBADBDB?GLGDKLOX]bz‘€•‘šª¿ÒàçéÝÜÚÙÙÚÛÝÞÞâççàÛÚàßÞÝÞàâãØÒÍÉÉÇÅ¿º´°¯­©¥‹y{zx~}zzŽ›”••‡nusoswvwsuurqrrppovqditofiopkijhjnopqjfjnmopjegnolkkigiopmlighlmllgabimmkmjfikjllowshpwmgiqumeehiu|~q[USKHEB=60+)&$#! ! !%##$%$#$')/)%&)(()++*)(''&(&%%$$$&##$$&&''##%&()*+,0348>:0/2&9UNH]mkVMx­¦cH|ªcclf\bcbjmkmookc_hllmmjjkmmkomimolknmlmlkkmkhhmomlnonljikorqommoqpnnpokklljjjiefffdhghfeinmtsqoqonqtsrqommkllkkmlmnf^ZXZesvsturyyg`qokz}utvsqsttuvsvutvxywuuwvtuvuuxwwxwwxyzyv{ƒ|njc^n~‚}{€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€(;?:@DA@;;<==???=;:;==<;==<<<<<<99:;;;:98899999965433334333333440000000033210/../012345623344556::::::::;;::9:99;;;;;;::==<<<<;;;;:9876655555555320100-+.+*)*)'.GdldfgfkmN018789:::;=?AB?>@CA?AEHGGGFGHHEEDEEDCDECABBB@>>B@;<A?9>;:=<:;?9;====>>@@=AA=BCCCGB<>>EDJIFHHINNNRZhv€†}wtty„‘‘•£¦©®¹½ÃÊÐÕØÙÞßàäæèæåææåãààâ丆|ƒ€ƒˆ’–—™“–{{–™Žˆ†Š~tvyxvvuqxxjmxvqnmqtmfgmolkmicdjpqnhbdnlmmkfcholmnmiimosoicbeknmmgeikklpopruwupdhqtlfeeejw‰s>%)&###"#"%&$(*&&)(+++)&%&(*&$&&&&)%%%%%%%%!!#'(%$$)**,-./0:;>BEIKMPPQSY^N504&9UNHYjhVLy¯¨bG{©ddlf\cd`jnilpmia`hmmnlkklkhjolimnklpnmnliillmmmnomkonopmkkjikjhhgeebfgebdefjjiijlkjnpmkkjhhmnopqpoqqopqnkjkijjkmllnaYVX[guzutvuyvfdnlgw{wx~utsstwxvtuwvuuwystwwsuxxvstwwx{|yqy…~pig`^v‡Œ“Šu€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€&8;59=87667899::=;:;<=<:==>>>>>>:;<>>>>>=========<:87778<<;976545566778833210//.00/.,+**//000000000000005444444488888888;;;;;;;;>==;;:98:9:9:9:9;986630.)&,,(((,>ZjgiifjoZ4(.++-210../010025536:78899887=::>?;<@AAABCDCBDGE@BHG@BACEEA>=>==>>>?>@@=BA;<;>9:9?C=<?A>>CC>>A@?AEGHGCCDEFFFFKHHLOOSWY\bhnrtv„‰—¢¦©¯·ÀÂÂÇÔàµz…ˆˆ£¬ ”‘”’ƒpŸÊÐÄʾ¯¼¾˜xrsqzŠ˜•ŽttŽ˜{iosleffproolggkqpkigfknookfdhmmnomigijmniackmholfekljkpnjn{‚zpgorojdadgcmˆy<#'"" " '&%%'*-.,$#(&$$$)*+)'%&'(&&''$&*"#$&(*+,//4:=;;<EFHJMOQRTTUVXYZZ_ZYZ^_M2/3&8TMF[kjVNz°©bG{©ddmf]acchjkklmlb^fijjkjlnmkmnmlkgfknkkmlhimmllnmjiilgfecbcccfebcdehfdehjiijjjjijkjhjihkqpljhjptsqqqmloqpnljgjigjllnbXUX[esyxuutxteetofsxsswvvtrtwvuuwwurruxyuuvwwwtwttvvxzyw|€xjgjh\gy‚˜ˆy€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€*<=6:=7566677888<;9:;<;9899::;;;89;<>>>>========<<::;<>@>>=<<;::========;;;:9998777666556666555511111111.//12344222223330123456756666666555555556544431/+(22(')+4MbfijehnfA03.0675310011101320151234420/5006612713454445;758;<<;::=AB@=;FCCCABEF@BAGF@A?CBCACD>@:@BA?96==<;=?@?=B@>;;<>@?=>BCAACA@???ACDEHJIHJOTTY^`bgqymVXX[ddrt~|z‚ƒte‘ÃÊÁÓͽÎÞ©|spk º·¿²‰ƒ§Ã¶€eoqlkgknmnqkfhmnrqjfjpprrlfehllkjiffggjkjedinookefmnjiqqnktƒklxrhhb^gedctx^LHUKE;-()%(&(4GVZW@0),+(()%'((&$$$$%(++),1568;>ACDEBBED@@B\\\[ZZYYYZZ[\]^^`ZY[[\R?.2$7RKE_pmYOz¯¨aG{©ddmf^_bggenplnna]hklnmjhikkkjjkijjjijkkjkmnnmmmidbcfaacbbdcdda`gjgeghhgffhigcdkliilmdahqvvqikqtpnnnppponqpjkolfhllleZVZ\es{wtutywe`rmfv|vrsuwtruvsrvvvuuuvvvusuwustvvwxxywr|qrŽyqt{¤¾Ì·¢€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€&:@::;;>==>==<::9;;::==;===<<<;;;><;=:79=;99;;97<::<<::<988:967;<:89;<;9;;::9988987666667655557777777777766799758998544555656565887766657996688535899642022//.*%+BelggeiqfD,48103467876586568987;88;:88:876667895555666643333333332124422235668<;<>?@AAADEFEDEGIEEGIHFFIDEEDBABD@A@>>@?>?==?>;<@@=<=@A?<==<;>AA?=?@?><<<;;=:79:7<Sgmmqlalqmtƒ}{›x^][Xl‹ª§´«„ˆ®·§glrjeglljmqkehqommlfekpokfdejnonlkhgimmlhcagmnlhhhkihrkkpvz|xqic\USTUVYWZ]^]agtuvmW;-.'':`~‡……x\:&#'**(-)(2535;<>ACDEEBBBA?;8621.-.&&=VZ[]YVYWW]]UKEFLY^ZZ_ZL9*2*6SOEVplVLx®]Hƒ¬‹bcnc_dd`ciqpnqpb\gmlnonllmnmkikolhjljmolkljkliddeef`acefhihgcdjllmnps{{€‹ƒŠ“™ššœŸ ¢¤—‚wtrmlppkmuoqqopqmgpkhjljijfXSSZhryzzvxxtefmofsyutwtuwyxuvywvvvvxxvtuwwvuuuwqyxxysx„ukšÕÇ ›¨ž±ÕèìèÛ€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€!3:6764645678888;77<<99=;==::<<9;><;=;8:>>===>=<;<;;:;:::;<;::;;9888999899::;;<<;;:999::98776789666666668886558:5677667966666666877766654664355245676532455322.)'AakijhdphI./5211233443334555556655665567899987644567899888999::8::99;<;;9997457;9754689986557:=88888:<=:<?BDDCACBCEGGEDHFGJHDCFFGFEDEEC?@?>>??=<::>?><=:;;83550:UjhbgnooW?<BCAEJC:78<CHQWZ]gljkwolpqmgejnnongeloonnkcbhnonkffjolljjjmmlmkhcagnonhfglkhrock}~sf\YJDMSNJMNNQY^^YUW[hx|mXL3=jˆ~‚’ŒŒ…hF746<DDFDBGICDC@=840.++++*)('*)(),&'?[_WV[\[WZYK8-)(+:Ra^VYS7+1(4QLATqoXKw°¤aI€©Šceokbbcdijmnmjjc^cklmnmkjklhjkmoljjkjlmklophiebcc_ZZgruu{‚…„‰‡‡˜›Ÿ¨¯±³·¹·¼ÀÃÄÂÁÃÅÊÇÍÓʵ¡”ˆ}qklrtqspnnnnmmmljjkmmkdWTW]gkmwxtuwvfcrrhtytqtsuvtsuvuytuyxvuvvwxywvuvxy||}wrxn½çÒ·Ê¿§³Ùëìë退€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€&6<:<96867777765566567767<;76::67998:87889:::9:;:<<99;;87;<879:978887788999::;;;:99899:;::9899::8888888878:987895788889;77777777766665555664455355555444465332/+);VikhjemkS3*143111112330244213545544554889997659998888777889:;;7:;98:<=999;;:<?>>>=====<;::;==>:<<:;<<9<:88:;:9;879:9:<<:;==:;>@AA?BFEADEEDCCCBB>?DFCCEBBCEJMF6:VkibekmiN<:<:84:987764224/<b\;BolmopljiqqonpifknnnnjcdlnljgdchmppnkihkmpnkfejpqpnidkolrieoucRIA@DNXWMHIGHLT]_XP@IPVar||nkrslxŠŠ„Œ…ufM9:5145.,.,$%&'()))'&&%%%&&%%%&+%'@V[OIMLS_^J7*&&&$,9P]Y[U6+1'2NI>WqoXLx³©`G«Žfdji]^_chijmkmne^gkomllnnmkkjjiiknnllmkikopk`]baXTWg~– ¤©«©³»¶´½À½À¾Â¾ÂÉÉÃÇÆÅÅÅÅÅÆÈÆÉÌÊÈÈÈ·}nprrprnnqrnllkmlikopmfXUU[gpvwytuyzicttjuzsqtuvvttuwvrqsvvvvsuvwwwxz{{{y{|vwzy|žÆàÍ´ËÊ©®Õèèê퀀€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€%48676268887643247644774799768867889998835775579688779977::979998:;;989;:::998887777789:::9:9:::;;;;;;;;:99;<<:79:;;99:;::9:9:::777666666766565565332334232001.*06Jhldjkin\;)063432223562344334658866997;:876677899::;;;99::;<<=<>=:89:9667888:=999:9::;?>=>@A@>?@@@BCB?EDCCCCBA>?AB@>?B@>>>=;=?=<::;><9::::;;9798:>?=>CAADJRWH11RkmjkmlhYQTUMFEHB?CDBBGE?9@\Y@Onlkopkedkkhkokfjmlllhbelpomkedhonkjjfcgnmlhcaglklnjeji\Z`^^XJED>4@NV[][XYY\bdaWPMEFPZepw‚„wikpx„…‹‹ˆa:$#&%&'''%%&''&&%+)'&%&'(((&'+%&?USJMRKOZN3).)&)(*':W[XQ<)1)0MKB\rkVLz²¦bIªŒeend]accimsmjmpc]fjikllkklnmkjhglokhklkloniefjfUSnŽ¤®¹¿ÂÆÅÃÇÈÄÆÌÈÃÈÈÿÀÃÅÅÅÆÂÀÂÆÈÆÄÄÆÉÇÁÂÉÍÔ¾—{trptpnossplkklkjknnmg\YXZfoxwxuuyxgcrtjvzutywvuwwvwyuvwutwvqvwwvtsrrxvzyqrxx„œª¿æà¼Ç˪­Ôéìí퀀€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€&594665966766543623562254223310243566554458765797679:9:;8899967:79;:879;8877665598889:;;99999999;;;;;;;;><:9;<=<;<==;;<=<<<<<<<<99::::::87777666764223452320120,05Ihleljhpb?-17365433568765689878;;9:==:<;:998:::::;<<==;;;;;;;;9::9<?@><;;;:9:=;;;::::::86679:9=:99;;<<:<>??=<<>BDCBBDEDDEFECBCBBCA@????>>??>=<;;<;97898:;:@G?+3WpoihjniVKMPLIGDCBBFJMMPNPM[aLIQconomhbfjmmmfdkpnopkefjknpme`emnjijjgjnomidbgkjjjecojUMRNMPOF=:INXekkhfnlntvroneZVZ_ehdkx~{unp|…‰†ƒ€e?"''"$,+$''(((('&('%$$%&'*)((+$%>\SHKNMQQ?35<6+))+&,EZ]P8'1+1NOJ^rkVKv®£`Jƒ«‹cepb]cdbfmtrokje_ellkjkmmmkmmmjgklgikjimpkbaghZUr£ÂÌÆÂÄÇÇÉÌËÆÃÄÅÄÅÈÏÉÇÊÉÃÀÁÅÂÀÀÃÅÅÄÇÅÄÂÀÅËËË˼—wrwsrqomoqqnljjkkikmeWTTZfouttrtuq``tsht|xvytsuwwuvxxwwvuvvspswyzyxx{xztzxx±¬¿ëÙ¹ÊΨªÓëìëꀀ€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€2FLFEGGJEEEDCBA@==<=<<;<:6599448546755645666566753377669:89;:78<::;;:9:;7778899:887778997889998899999999:<<<::;=9;<<<<=?<<<<<<<<<<<<<===<;:<;:9;<;98899:67644752+8Sjjkmdhq_>/45254444566:878:<:89::::<=<;<=>>><<==<<<<;;<<<<<;;;=<:9:=<:<;;<;9;=<<;<;<<=<<;;<<<<=;:<;:9::;<;99:;;<;89<<;;;<=<<<====>>??@=>?@?=>@==<=@CDCCILNU[J.0SjkkmmphPEF@=<688646<=<<;>DZ^B/?^qolmkgjpqqnfcjolnojdfkmoolgegjmnlhdgikpmjechkjloe`szaNMKJPUPOZedefdchorljotuw{sup^VemcY`kw|xuy‚‹‹…‹†pB(")$$)$&&())*))%&%&')**''%'*$&>YWRTURL=/457;8-'+)$8WbO3(2,2PRM\snZJr«¤]I…¯ddne^ab`ehmqnllc]ekmnonkkkmlnnifhkilmkjmlf_f\\gyœ¾ËÅÀ¿ÆÇÃÄÉËÊÈÅÃÆÇÁÃÃÄÅÄÄÃÄÆÆÄÂÂÄÈÌÈÄÃÃÄÈËÉÀÅÒ½…ounoqpopsqmljiljhingVPS^msvyzx{{veeyufs|zuuquwvtvvvwvvutwwtwxyyyyz{tx|qryxˆ«®¤ÂéѸÎש§Õîêè뀀€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€6Q\SRTTTUUUUTRQPORRNNQQMNKKNMJJLHFHIFEGCA@??@@?>:999:99988998789876778764455667788766677889::9888888888869;<:8898:;;::;<;;;;;;;;99::;;;;=;:<<99;;;:9999977645774);^lhmmbjoX6/4423455665588889999878::::<:;<>>>>=::;<=>>????@@@@@>?><=??>@???><=?><:99;>@?ABCBA@@?@BCCBBB>??@????>=<<=<:7??><;;<=;:99;=<:89:;:9;>:88;>@ACKLJISZF%1RgilmiifTNPKEDB@=:9<@DFKD<E^^C0?^rpmjgellkmpjeiolnohdhnoomihjkjlpogbflooliedilklqhatxXAFGKS[]`ebdefgjmokhhmsuvw{{~yqrm]PU`p}ƒ„ˆ‹„„Œi8#,(#()%&'((((($%&'((((&%%&*$%>^WKMRI9+'+,,2=:-%)&2N[P9-2)3SRJ[ro]Nt¬¥bKƒ«‹dfqjbccdhjnolqrc]hlpnlkmlkhglmkjjjjiklnnhcefZo—©°¿ÌÅÁÁþÀÄÄÇÅÂÄÅ¿ÆÇÆÃÃÄÄÂÄÃÂÁÂÄÈËÍÇÃÁ¿ÂÆÇÅ¿ÐÏ¢yponoqrtspljjkkjjlohZWZblprvxvxzwebzvgs{xttswzwttvwwwxwvxxtwwvuttvxp{}rpt„¦¶§ž½ç×·ÁÓ¤¡Ïëèå怀€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€1Q`WTWUSSTUWXYYYZXWYXVVWXXXXWWVWWTVWSSTPVTRRTTRPNPPLKMLIGJKHGIJICA@ACCB@A@@@?>>><<;:999:89:;;:988888888897557887:;;976669999999955666777854763363333221144312541-<amfkkfmoQ/.4233467876556886679866:;99<9989:;=><<<<<===;<<=>??@=@@?>?AB>==>=<=@AAA@?=<;>@@?>=?@ACCA?@AAEDCDDDB@CA@AA??@>@A@@???=@@=<=>=?====<=?;99==;>DCHJJSYE$+Qhhfgipl^NKNF>A>>;8;CGFFHBI\^I3@aurnlhgonjlplgkmkopgaekhnqlgillklkfdfikmkheejnlplcdshI?BDO\bcefbdfhjmnmmmmnqtvwwy||iaX]dfrƒˆƒ‡‰†„†‹c;-*)&!''())(('&'()('%$((&'*#$=\YQVT9(*(#,+ /?4&*!(F_V812%4TPE]qm^Sz¯¥bI‚¬Žgfmf^abbgjnllllc]dlpnmmnnlkdijjmmjkommmi`bn_Z}¯¾¹¿ÈÃÁÀÀÀÁÂÃÈÈÁ¿ÅÁ½ÄÄÄÅÇÈÆÁ½ÆÃÀÁÅÇÆÄĽ¼ÀÃÆÇÆÈÂÅÊ·wvsomqrqpqgkmkjmpqfZWVXdoyuwuvzzgavvjtyutxwxyxtpsxuprxyvuwruxzzzyy{|uty|ª²©«ÃåÖ´ÅÍ¥¤Ïìïë倀€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€-GNGJLIKKKLLMMNNRQPPPQSTRTUSPPSVVYYVVYYVUXWUUYZXWYZXX[\ZXXXXXXXXSSTTUUUVSSRRQPPPOONMLKKJDIKHEEECFCBCB>=?DA?>??><?<;<;:;==:9;:88<:878:;97947;95557777654335653235)4\rkhjfhpV4153831//24438:9559:8;::98766:::99988<<<=====;=>=<;=>=?AA?=<<==;;=<;??<>A><;:<:;>><;<9;=>?>=<?@AA@ABDB?>?AAABEAADFDBABBAACDC@BCCA>=>@A@@A?==?GBFLPSD'(Ihjeeejj]OPMA@@;7349?BBA=9AZ`C,:arnqndclommmieiljmngchmkoqkdchklmkfeikkpkgecgmoloedgTBALW_dd^^gd_`fjpsnnkmstrtzw{‚z|‚‚zi[\ckv‚‡‡†Š„…‘‡pQ9.& (')+)%&,#')(''('%(('*%&<ZZ__G,'(('+**1480'%%=_U8+4*5RMG^qkYPy²¨dN†«Šefni\aeceimplikd^emmkkoolkmnnlkkljghkjng`gj^f™ÂǽüÂÅÅÆÈÆÀ½ÆÆÃÄÁ¿ÄÇÆ¿ÂÆÅÀÆÄÁ¿ÁÂÁ¿¼ÃÆÃÁÃÅÄÁÅÅÏÒ¨wmxroppnmollmmkkmpcZVZ]fqxyvxuy|j_tpftzvuvxxtsvustvwyywwwwzyuuz{wuwzqs|ƒ˜¬¯ª¨ÄèÖ·ÅʤŸÍëêé耀€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€1JPHJKGIIIHGFEDDFGGHHHHHJIGGGHIIHIJIIJIHMOPPPQPNPNOSTSTWWVUVWXWVWWWXXYYYYZZ[\]^^YZZ[[\\]WXYYXYWUXUTUVUTTPRSSRPONMLMPOMKMMJHIHEDGDCBAAA?>?:<@=;;;::::987623553346,/Qllkkjfm^B56786679<=<:9;;88;;9;;;;<<<<>>===<<<>==<;:98;:9:<=<;<:9;>?><>=;:<::=<8:<;;<=>>;77:=<9:;<;;99AA?=;;<=;;<=><<><97:<=<==<;;<=<9>??=;;<?A?>>=<>B@DKMQ[N-)Hkrkkjml_QROEDD=;9:<AEHJFBH^bD/;]pnpnfbkonlmhejnnnmjiklkmomfejolmiecgjjmhfcclrkkkdnvaNPddcbaadi^cc^bqvolllosutryz~~}€ƒ‚vjjkimƒ‡„‚††ŒŠ‰‚pT:,(+&$((&*+'%')'&'%()(*%&>Y\^X?((+#(++4;8<4(%%9ZS6-6+5QLE^qkZPy±¨_H«Žgfli\^caflrpomld_gnikmnnlllmjjmmkjlgknkbiug[­ÂÅÅÃŽ¿ÃÆÄÂÂÄÐÊÀ¼ÀÃÁÀÆþ¼ÁÈÈÄÆÅÄÄÅÅÄÂÂÇÉÆÁÁÄÆÉÉÂÈά~mvrprrommpmlnopopdZWZ^frx}ttu{yifrpgt{yxwsuvwtuwxvvwwwwxx|uotzxtuvzrq{‰ž«¥ªªÁçÙ¹ÃÅ¥¦Óíééꀀ€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€7QXQUVSUUTSRPONNMNOQQPONLKJJKKKLLJIIIIJLGHJLLIGFHFFHHFEHJKKKJJKKMMMMNNNNMNOPRSTUUUVWYYZ[\YX[]][Y[[[[\^^\]^_]Z[]`_]^__[YZ^[ZZYWVXWWXVUSTTTOQRPOQQKKKKKIHGFFGECABB34SnmggkemnW;362333577647898899788888999:::99988<<<<<;;;<::;<=<;===<<;==>=::;:9=;8:<;;<==>=::=>=<<<<<<<<=;:<>>;8=<<<;;>A@=;<====<;;;<>=;;=?><999;:<>?>@DEJOLN[R4$=dogfijobSQMA?>:999;>DHEC@E[^C.:[ponmhclonllgchpoopkcckmmomfcinnmiddgjjliihegigjgcs|eU\fdca_bffcgd^ajqrrolmswuquuxyz€{{„ywoc_q€†…††…ˆ†ƒ†…r[3%$*)'*'&*+'&()(#&'&(#$<Y^\N5%)+-''3@7*49+'%6VU7(2(6SPJ^qkZPy±¨eJ­‘ieke[afdglooqpkb`hmlnnkiklkjlnmkjjjonqi`kp^e™ºÂÆÅÅÆÁ¾ÂÈŽÁËÅÂÃÄÄÅÆÄÆÄÀ¿ÂÆÄÀÂÄÇÉÉÅÀ¼ÃÄÄÄÂÁÄÈÇÈÁÄлstqqstpmknjiknllnd[XZ^gsyyuzyxqflxuhrwwxwusttrswvrrtuvvutvutwyvw}yvqw‚Ž «®°¬ÃèÕµÇ˧¤Ðííì뀀€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€7QYTWYVXWWWXXXXXTUVWWWWVSUWVSRTWWTTVVTTWRPQTTONONPOLKLKIILNMJIKNKLKLLLLLJJJJJJJJMMLLLLKLQNMPQONOOSTQQTUSSUWWVVWW\ZY\]]_ba`____`a_abb``bdd``a^`cb___`_^]\__^^[ZYYSGPahhefejpgRNROMKIHGGGGBDEFFFDBAA@@??>><<<;;;::;;;;<<<<;=>=;:;=8:;<::;><<:;=;9=:8:><;;:878<<:9:::9::;<=<<;<>>=;99:;;9:<;;;=>>=<AA?>>??=;<<<;;<=::=@@@ADGINMOWM1';aoegmoqdUSNECB;::;=AEHEECI\`E29]spmkgfiljkmjgjkpqnjeekllmkdchmmoniefjnlqkabhkloiap|m_b[_ggbdgcbb]^cflwsnmswuqotx{{|€‚€‚„‡…€{lYXn€ƒ{vy€ƒ…ˆ‹Œf='*(&()")+(&))'%&%%*%%:X`XE/&*(*),3?;,,<0*&5XZ9%0&6URM_rkZPy±§hK¬eeoi_cd`ekoqsqmdaimlmljknmihlmjhilmkqp`cqjb£¶ÃÇ¿ÂÅÆÁÂÉÆÀÄÏËÂÁÄÃÅÇÄÂÃÄÅÅÄÀ½¼ÁÅÇÇÈľÅÃÂÁÃÄÄÃÅÈÂÃÏÇ¡}usrssqnlnlmonkmrd\YZ^htyxy|wyvgf|vgrwuuvtrsuuwvsssuwxwuryzxwyxvv~qly‡’¡«¹´ªÀæѱÆͨ¢Íìîíꀀ€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€6PXQUUPQRRSTUVVWSSRRRSTURUWVTRTVTTVZZVTTYVUWWTTVUXXUUXXUUUUUUTUUTTTSTSTSTTTSSRRRQQQOONMMPNOPNJKOLQSOLMOPLKKMOONMNLLNPPRUSSSRRTUUVX[ZYX[]_\]\Z\_]``aaa`_^```abbccdWT[hpjejfgfefhdfeca`_``Z[\^^\[ZYYYXXWWWQQQPPPPOOONMLKJJGHIGECDEA@@BDCA>>?>?@=:<:7:=;998:7687669::989:;<8;?>;:<?<:9;;;:;8899::98==;::;;::::99:<><;:;;:=ABCHHKVL/*=cqijprqeUQMDCA<:8:@DGGLJHL_`E2:atonkegjkijnkgikmlkjfdimnnicchkjjifeeghinh`djjipj^h}zk_X_ikedeabeb^dintqnmoponosxzz|€€‚‡‰‚ƒx^GRk„{{‚{€…ˆˆŠŽ’‹l=&,+&+*$#()$$()(&&-*(;X`T=-)*#',79:920:3*%6[^8(2(6SOJ`rlZOx°§_E}©‹bdqh`ed`eloqpnkc`gkmlkjlmkiojilonkigliZjtgyž§³ÆźÂÆÇÃÂÄÆÃÆÌÑÅÂÃÁÂÆżÀÅÇÅÃÂÃÃÇÅÀÁÇÈÃÁÃÃÂÆÊÉÄÈÌŽÅÈ«„wurpqqpnnlmnnknrc]ZZ]iuxvy{tyyifxpdu|vsuxxwvwvuuzwtrsuwwuxxwxvssymm|™¡§µ¶®ÁèÙ¶ÁĦ¦Ñëêê耀€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€6QYTWYTUTTTUUUUVTSRQQSUVTTTUUUTSVUTTTTUVVTSSSRSUXVUXWTTWWTQSVXURVVUVUUUUVVVVWWWWWXWXWXWWZZZYVTUXSWYVRQSTVSQQTVVURQQSROMNPQPNMNOMNOOOMMMNPOPPMQSPSTTUUUTSUTSUVWVUWSQSbngbabehe_\_`bddcbbbfdeggedfccdeffggddddcccba```__^^`^\\]][ZZZZ[ZYVTSSRSSOLNPLLLIFGFEFC?=?@?@@>=<<<<;<>??>==A=;;<;;<??=;:;;::::99;<<<<;;;;;<999;;;>AFILILZR3&>bpjkllodSMHA?<<97:@FGFGEBH\`C/<bqlpmdenolknidfkjjlhabipqpjcdhijjihfghiokheaejjmlbjƒr^Y_gkjigcgjgbbhlnrsoihmqrquuuz}|{|‚‚~|t\Q[zŠˆ‚€}‚ƒˆ“‘‡Šˆe6$((&+(&&'()+''$%,(&:ZaQ9,+*!+1>;/**/63'%<]\6'2(6TPK`slZOx°¦]F‚¬cdnb^egbhnprpmleagmpnllkjijmnppnlkkqme`pnj”¯­ºÉÀ»ÇÈÄÂÀÁÂÄÅÆÆÁÂÈÇÅÅÆÂÃÅÆÃÁÃÇÉÊľ¿ÅľÁÆÇÃÂÄÿÀÆļÂʲˆwvroorqomljjlnmlb]ZY\iuwvxytywjozobu|uru~|uruvsuwwvvvuttrtwzzuu|{lp…–š«³²±Éëس¼Å¦¤Íéëê怀€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€3NXTYZVWVVVVVVVVTTTTTUUVWWWXYXWVZYVSSVYZUVWVWXWVZWVXWTSUWUTTVWVTWWWVVVUUUUVVWXXYXXXXYYZZ^^][Z[\\[YXYYWVWZ[\]^]\Z^\]``]\]\]\YY[[Y[ZZZ[[ZYWX[ZX[]XTTUUUUTTWUSSTSQOUOFDWgc_imsrcPMTRTWWVUUVXUTVVTUXZZ[\\]^^a```____bbbcccddfdcdffedbdggedeggfdcebbehdcd`^^]_`_\[\[YWVUSRQQPTPLKLMKIIGGGFDBBBCB@?@A@>><9899998655677668;;:;=BFMLMVK-(DfolmkklbRLIDDA<;;>CGIJDA>E^bG1<^oknmeclomlmieijmpmgeimnnmiddilgkmjecioklojcinjongrŠ~f]`djnmkljhheabionrqljnqotzzy|~}~‚€ƒ†„‡rZTey…‡‚ƒ‚„‡ˆ……‡‰‚U*")%)+)'3A=-$''&)$%<[cQ7+*+$*8>/&))*63$(E_W4&0'6TQLaslZOx¯¦bL…®hgme`ec^gpspnmld_gnmllnoljipmhhmrpjoma`mgr£·°ÁËÁÀÇÈÀÁÂÁÁÂÄÆÈ¿ÅËÇÂÃÉÅÄÅÄÂÂÅÆÃÀÀÅÇÅÀ¿ÂÃÁÀÁ¼ÃÄ¿ÅѺŒvvtpqsrmnpnkmrrma]YW[iuvzwur{yjnscrytsvyvrswxusyywvuvwx{wtx{xuy|ls‹—¨¶®®ÈâδÃɦ Éèíì倀€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€7R[VYZUVVVVWWXXYUVWXYXWVSVYYVUUWSWYXXYWSSWZYY[ZVTVWUUXXVVY\ZWVX[XXXWWWVVWWWXXXXXYYYYYYYY[[YWX]]Y^XUY\[XWYZ[ZXXY[_\[\[Z[^[^^[\`a_^]\^acb`Y[^^\_`Z_`aaaa```_]]__]\`_XQ\iimplpqcVW]WXXVSSUWXTSUTSTXQQQQQQQQSSSSRRRRTTTSRQQQTVWXWXY[\[YZ[\\[b`]]``bhb`dhgfgfiggiighjjjjihgffdddcaaabca`_\ZZ]Z\\ZXWVTWWTQOOONLLKJHGEDGEDCA?@CHHNQPSJ5,IgkkmkmkaPIE@@<78:<>BEHGB>E]bD-:[nlkkgckppnlgekqlmoiehlomkicbgklkjihilomihgegkkqg]p“œ‡k^_^aggipvssndclrlmmmlklmq{~{zz{€{ƒ‡€ˆ‡‰r_\ey†…†‡„…Œ‹…‰‹‡rO3)*/',L`N.&,.,,%)C\eR6)(,)5:5+,+%-95#-N`T5*4)5RNHaslZOx¯¥bJ¨kkpebhf`fmnppome`ipqnlmnmjgjijlnlkjon^gtez´º®ÀÊÄÄÃÅ¿ÂÅÆÃÁÄÉÁÄÅÈÉÀ¾ÉÇÂÁÆÉÈÅÄÉ¿ÄÊÊÇÅÃÂÁÁÂÃÄÅÇÉÇÀÆÔ¿tvusstqkiopjinpm`\YWZhtux{|vzvfk{rcrzxwxvtvwuvwuuvwwvuvwyyvsuvvymix–‚y‘¡š˜¨¾·¬¾Ã§¦Îéëë怀€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€9TUOTUUTTUWTXXRVURRVWUTURWXUSVYYUUVVVVVVXVUVXYXUYYXXWWVVVVWWXYZZ]WUVWUUWXVVXXVW[ZVY[Y[\WTWYYWVWX[^_ZVY[VY[\[XWXYZ^_\ZZYV[\]]]]\[`_]]][_ha`_]]]]][afe`]`dZ[]^`bcd`i_RZfikjmnkgeeg``````aaaaa`_^^^^^^^^^^^[[[ZZZZZ[TQRTUUSQQQSUUSQQRRSRRQPSRQQQQRRUUUUUUUUYZZ[\]]^aaaaaaaaedcbbcdejjiihggglllkkkjjiihhggffeedcbbaa_^][YXWVZVTY_^VM@MfmjolimaVPLFBA=>@BDFHHHICFY`K0:Wmolmjcmprsphdfnmmlhfhlrokhhhgflnkffhkoiffc_dlmtk^o— ˆxiebadhjksutohfkpkkmpnhjprz{vw{‚‚ƒ„……‰‚wojjz…„„†‰‹ˆ………ˆˆe7'',*"4YcF 'AC0 "?]bN8.)+,;<.#*)&.;1$6X`O715)4TTL\poZP}°¥aJ¨‹gipibfeaiprrqokc]cnkomknqmhkimpmllgplZlznŠ´¶­ÂÌƼ¾ÅÂÀÃÆľÀÆÇÂÃÊÌÆÂÄÄÁÁÄÆÄÃÃÈÆÃÂÄÆÆÄÄÇÿÄÇÆÅÆÆÃÂÍб†sqppqqpnmmkimstqeWW]WWktv{wxvijyqew€{xyuwywvyzuvvustwwvutquurz~rn}”™„s~„‰‡‹’Žš¼¿œ Éâèë耀€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€Bjwplgin_\`]WTQYWYZZXVW[XWUTUXWUXWWWVVVVWVVWXYYXVVVUUUTTWWWWVVVUTUUWXZXU]YVWY[]_ZWWXUY__]YUUVXXWY_a]XZ[YZZ[[Z[[\Y]^\[]\Y_````__^Z[\]][[]\[[[[\]][_ba]Z[]baaa``__[c^Yaknrkhfec`adccccccccccccbbbbaabcdeef\\]_`bcdba`ce`^edcbbbba`cb`_]\\\WXZ\[[YXTTTTTTTTRRRRRRQQSSSSSSSSXWVUUVWXUVWXYZ[\[\]^`abcfffeedddddeffghhggghijjkjigffgffZWfnmmjmqg__`_^^XXWVVUTTYWMJX`O;AUlrlklhiiijkhdfponnlhgilnlgdfiigkmhchnlkjhecgklokbr—¥•‰nicbdinpkorqmlossrsvrljltyzwy~|€‚ƒ„………ƒ„~ohp|‡ƒƒ‰‡ˆŒ‡ƒ‹zG'#) ;[Z@, )E@*$)9XdX?*'4;=0#%,+*0@,(CZ]Q715)4USK]qpZP}¯¤bI€©‹ghqg`ed`gnpopqmcbilomjjnonookkkhknmpi]otm’¹¶·ÇÆÄÇÇÅÇÅÆÊÈÂÃÈÉÁÄÊÅÁÅÈÀÁÅÆÄÄÅÃÄÅÄÂÄÈÇÂÁÉÅÀÆÉÅÈÆÁÂÅÈͶwusrrqomonlhjnnkcXX[V]p}sx{w|vfj~vhw|vuxtvvuutsruvvwxxwvvvswwt{mh}’’Œ†ˆ“Š†‘Žu±½ž¨Òèëì退€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€Z¢›“Ž•¡‡stxspmnsqmkmpolfgigc`chdcba``abccba^\\\^^^^]]]]YYXVUTSRWXVRUZ[XSUVUSUWYRS[]XVXVWWXZ\[XUV[\ZZ\^_[[[[^^^^[^_]^`_\___^^]]\^___``_\^^_`abbc]^```^^^aa`^]\[[\_[Yafinsnkkhb`a________\\]]]]^^`aabbccc``abdeff^ea]ega_`abccbccacefgfedccccdeffffffffffgffedcba````````]\[ZZ[\]YYYXXXXXQQRTUWXXZZZYYXXWTUVVWXYYXYZ[]_``ba`][\_b[Wellnnsnf`bfgghhggggfffdh`V[cd`\^jqljkelnnpqlhhnnmjhhjjmlkidbfmolifchlkllhdfikmijeoœ’ˆyohghklgmuxvssssrtxzwutvxyyz}~}€€‚ƒ„„…‰…ƒviis‚ˆŽŒƒ…ŽŽˆ‚Œ†`<))/<O`[I=&5I7"&-;]bVA/1>=5)'*))06:&2U\XR904)5TSJ]qpZP|¯¤bH€©Œfhrg`ec_gnpspqlbdmnomiilllnmjkkjlonoi^nrr›¿¼·ÂÃÄÂÁÃÃÀÁÆÆÃÃÇÈÄ¿ÃÆÁ¿ÇÉÄÁÀÁÃÅÂÉÄÁÅÊÉÄÀ¿ÁÅÆÅÃÇËÆÁÆÄÁË»tsrrttsrrqnkknnlb[YWVcu{uxxwydj|sgw~xuwsvuuwurtvuvwxurpwxuxxu|nj…–˜•—”•¡¢“¼¼ ¬Öêëìꀀ€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€Z¡—’š©”tt~{{z‚€{x{}||z|{yy|zywvvx{|}€~}{{{{zzzzxxvvtsrrlmmllnkgdfgfipvxnt~wpnjghhfbabec`VQUYXY[YXYZ\ZYY\[ZZ]ZVXXYZ[]_`a_^]\ab\``abbbaa[\]_aba_______^_e`[^ekmpmopnhb^]aaaa```__``aabbb``__^]]\ccba``__X_^]__]a`bddddegeeedca_]`_^^_acdbbbbbbbbgffeedddgggggggghgfeefghffedcbaabbaaa`````__^^]][ZYYXWVVVVVWWWWWVUSSTUTSCMbebjkkh_YZ[ZXXZZ[\]^__[b_X\dgheagpmjgchmoolhdejlnmiegjqmjjgdfkqoifhiilomhbbfiighcgzƒvilf_[[]_`hmqutuvywusvyyvsyxy{|||~€€‚ƒ„„ˆ„…‰s`fy‚‰‰…„…‡‰ˆ‡ˆva<*4GW^V@3+CP6%%(@\a[H21>:*+-+&*14.,D`\VS;/4)4TRI]qp[P|¯£bHªŒfgrhafdahoqtpqofcilmpomoqomjjkmmnnnmj\kwz Á»ºÄÂÄÆÄÅÄÁÁÅÆÄÃÅÉÃÁÄÆÅÅÆÅÄÅÈÈÄÂÄ¿ÂÈÊÆÄÇÃÅÉÇÂÈÊÁÄÈÉÁ¿ÍºŠwusrsrpnonmlmoqqe]XWXgwyzwvwzeizpcu€|xwvwwwxvst}ywxxvuuuxuxwu{|poŒš’¥œ’–—¢°«¬Á½ž¨Òæéê耀€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€]’ ’‹“¡mtƒ{vzƒ…‚}z}~|{}}z{~}|{}†‰‡ŠŒŒŒŽ‘ŽŽŽŽŽŽŽŽŒ‘Ž‹‰’ˆ‹—©¸À¾¾ÃÀ¶³··±±°«§£¤¥¥“xltuomponmmlkjhhgdefb\a`_^^_ab]Z`d`ab[``aa`][Y\[[\]\ZX^^^^^^^^b\[`gjjfhnqjb__^``__^]]]bbbbcccc``______aa`_^]\\_ab```bbccc`]\\^_acdc`[YXY[]^]\[___________``aab````````cba``abcabcdeffghggggfffiiihhggfihhgfeeddddccbaaa_^^````KUjlhljhd\VWXVSSVVVVUUUTTTOO\aWLSZgpqkggimnkkhgjpnprkcckmomhfiifjomhghkmmkhc_ekijhcdmjXF?<::<?@?NU`iortt{xvuxyxuzyy{|||~€‚ƒ„„†…‚‰~c[cv†‰ˆ‰Š‡„ŠŠ…„xR4"4VbI(".CXH1$#>Z_]P916/(*('+-.06CT^ZZU;.3)5TRH^rp[P|®£bI€©Œfhqhaed`hoqrqpmgdglnqqpqpljkkkkmnopli^oy~¥Â¹½ÉÃÅÈÇÆÆÂÂÅÇÆÄÅÇÆÅÃÂÁÂÄÄÄÁÂÆ¿Å¿ÀÄÈÈÆÄÂÇÉÄÄÇÆ¿ÃÈÇ¿Æ϶Šusqqqqomkjjjkmorj]XXZgvw|www|wgktds|xvwuuwwvvvswttwxwutswuvvtzyip™–›Ÿœ§ š©¼³°Ä¾¥Ðæéé䀀€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€\–¦—’Ž“¡‹kp{uw{‚{y{|{x|~€€{z}‚zyvvy…‰‰Š‹Œ‹ŒŽŠŠ‹‹‹ŒŒŒŠŠ‹ŒŒŽŽ’‘“‘’”’“•›©ÁÖÛØØÕÎÑÙÛÔÔÔÖØ×ÓÐÚÀ™Œ—š‘››–””–šš–”•–‘ŠŒŠˆ††‡‰Š~~Ÿ–Œ…€|xuxyywsolklkjihgfeabimjljcknmicaacddcba``____^^]]]]]^^_`aa]]^^^__`ba_]_hkfbdeda]ZXTVY\`cde]]]^]^]]]]]]]]]]ZZ[\]^__________a`_^^_`a^^____``[[\^_`abccbbaaa`bbbddeffaabccdeeffecbdgj_\jsqqnqleadhgeedddcbbaaa^VVaf]UV^gpsngflonllkhgmoolhfgihlmighihkjkjfgkjihheaiolnifgf[G81/,**(&#.5@MXaehwyyy|€€}z{{{{}}}€‚‚ƒƒ„„‡†„„yeep~†…„‡Œ„‹ˆ†‡‡{a<5_dA"*68WY7!%>Z^\WE50*''&*+).=P[\XX^V:-2(5TQG_rq[P|®¢aJ¨‹hipf_db^fmonsqhdfjnnmlopkilillmoolnmecvu{ªÃº¸ÅÇÅÁÁÆÃÀÁÄÆÅÄÅÆÊÆÄÉÄ¿ÃÃÅÂÂÇÆÀ¿ÄÄÆÈÆÃÄÇÇÄÅÉÉÈÇÅÁÃÁÁËϵ‘rpopqrqonmlmlknrl]WY[gtxzw{xxshm}uhvzttxtsuvtvxutssvywtqrwvvutyvdrŽœ›œ ¨ŸžµÅ³¬Ã¿Ÿ§Óêíê €€€€€€€€€€€€€€€€€€€€€€€€€€€€€€X•¦—•‘“ Žps„„~{~‚ƒ„„€}‚€~|}~~{~|ywz€ˆ………‡ŠŒ‰ŠŠŠ‹‹ŒŒ‹‹ŒŽŽ‹Œ“–“Œ”–’–¯ÍÕÑÒÑÎÐÕÔÏÌÊËÏÓÔÔ×¼•‰™”•œ¡¤ š—šž­¬©§ª¬§Ÿžžž¡¦ª­««ÇÝÑÁ¿½¿ÀÂþº·º½¿½·²²´§¦¦¥¥¤¤¤¤¨¨“uihaidk~‰†„ˆ‚‚€~}}|vutrqonnjjihgfedaabbbbcc]]`fg`\_fgijkiebd`ZVW\dhba_]\\^^^^^^^^^^^^______________dcbaabcdba`_^]\\[\]^`abb___^^]]]]]^_`aab[\]_`bcda```abcc[Vdkkmmrib_beca`ddefghhijjd_chjldaempmhcmqpnomifekokhiigjkmlhdgmnhhkjiihlkidcjnjnhgh_M>72.+)(('%*(')2?LS`hpswz{wy}~zz{~€‚ƒƒˆ‡ˆ‡t\_m€‰†ƒ„„‡‡‰‡ƒ}l9(FcY7$9<-N];!'AV^`_P714*',/),AT`aZWY^T9,1)6TPF_sq[P{­¢_Kƒ¦‰ikof_cb^fmokqslefjklkloqnmrjnnnqoklrfcwsz«Ä·µÅÆÃÃÆÆÅÃÃÅÅÿÀÆÉÆÂÁÀÁÃÃÃÃÄÃÆÂÂÈÊÇÅÇÇÃÃÃÄÉǼÁÃÄÀÄͺ“wurrqqnlqooomknsj\WX[gvywy{vxtfkysiwzstyxvuutttuywtsuwvsryxwvvzvfv”žœžž¡žœ¥ÄÔ½±ÆÁ¡©Ôéëë瀀€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€^™¦––’’œ…px‡„|{„ƒ€‚ƒ~~~‚‚}yz|{~{wux~…ŠŒŠ‰‰Œ‹‰‰‰‰Š‹‹‹ŒŠŠ‹‹ŒŽ‘ˆ”ŒŠ”ªÅ×ÒÑÑÍÏÑÎÒÔÕÔÑÏÏÐØ¿™Ÿ—š˜Ÿ¤¡™–š¡§¦£¢¦©¤œ¤¢ žž £¥¨¦ÃÝμ¾ÁÁÄÇÉÈÅ¿ÇÍÒÑÌÊÍÑÁÂÃÅÇÉÊËÍÔϪ|owwkcy«ÊÊÆÍÉÉÈÇÅÄÃÿ¿½»¸¶µ´³±®©¥ ›™™˜–”“’‘”‰rba_^dliggilmnmliea^[Zffffdb`_^^^^^^^^^^]\[ZZY________`_^]]^_`^^^_``aa`____^^^\\\[[ZZZa``_^]\\^^_`abcdea`fmng^V]nmhoqrslfggc^\]]^_`bcc`b\Y]`_``ZbmliieioolkllmjjnpkdfonoolgfimlmhehjlonmgacjlkleefV@67/+&$%')))&#"%)-/4DU`hpspxyy€€z~~€‚ƒƒ‡ƒ…†ƒ…†~rd^k}‡Š‹ƒƒ‰Œ~~„s=-LcQ/#?7&G^E%#@\\W^\E772+./*=X_`ZVZZYQ9+1(6TPF_sq[P{­¢^L„¦ˆjlng`ec`gnpqptodbjmoqpoolijoqlilllqwi_ru{¨Å¹µÅÅÁÃÆÄÂÂÂÃÃÂÂÂÁÂÁÅɽÅÈÀÂÇÄÄÇÄÁÂÃÅÆÆĽÆÈÃÀÀÁÄÁÉ;¸Ì¿Žutrrstrpmllmlimrg\WWYhwyw{ys|xeh|tgtxsuzwussurqwxwuuwzxts{yyww{whx•œ•š›§Ÿ¨Íݾ¯ÉãªÐãçì쀀€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€bž¯ š”—¢‡ou†ƒzxˆ‚€†‰ƒ~~€€€~y~z{{y}†‰‰‡‰Ž‘Š‹’”’ŽŠ‹ŽŠ…‰‘Š‰‰‘“Ž‘’‘¢ÁÌÏÐÏÎÎÌÈÑÔÔÒÒÔÐÉÔ½–Ž˜•˜ –ž¤¡š—œ¡¥¥£¡£¦¤Ÿ¤¦¡ŸŸ §­©¿ÓÊÀ¼±¹Âü¼Ã¹¿¾ÁÆÈÇĽ¹¼¿¾ÄÌËÈÐȨ†vvzuj~³Ø×ÍÌÖØØÖÙÝÚÓÓÖÖÒÒÖÕÒ×ÙÒÏÕÔÏÓËÈÍÏÌÐØÙÛ©lZbbdggffimlloonkhfdccYe¦³£‘y‰ˆ‰Š‚‡˜‘wmx|wzz|Š‹„‚‚qhtljj_\cad```__^^]^^^^^^^^\\\\\\\\\]]]]\]^Z`c_bb\^fchkgqsZ]flqmlvty€|qlg_\Z_^X\gh_cib`b`aaZXgnkjghikifhjiinmlkiffhkooifhjhjnkeehhjlhgebgmkpmh]J;52**)((())''(('%$##.9FUcmpuz}}~€„„‚‚„‡…ƒƒ†ˆ‡…‚vd_rˆŒ„‰ˆŽ‘‚{wN8LeH%-B0!IcF'&=Z^UV\WK>46516IWT[^YSY\P?03-2RMGatqZNz­¢cI§‹hipi]bd_aisrqsocalsplknpmigknlkmlkmqe]u|}¥Â¸¸ÃÆÆÁÃÈÇÀÁÇÅÁÃÉÄ»ÁÇÀÀÅÄȾÂÈÅÂÅÈÅÂÁÃÇÇÃÁÆÅÀÁÅÇÆ¿ÂĿƽ’uyururnqklllmmnnd][Z[ivutzywytclviuyvvuvvvussvyyyyzxutuvxwxuv{thrŽ™—Ÿ§©­¦§Çܹ¥ÄĤ¦Ìåêêꀀ€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€^žµ©£š˜¡st…‡~„ˆ…ƒ‚‚ƒ~ƒ‚€}}€€}|||z‡Š†ŠŠ†„‡ˆ‡‰ŒŽŽŒŠŠ’Ž‡†Œ‘ŽŠ‡‰“ŒŠ‹‘¦ÇÓÐÏÓÓÐÐÔÍÏÑÔÖ×ÔÏÔ½–˜—›¤›œŸ¡š ª©©§¤¥§¥ £¦£Ÿ ¡£«ª¦½ÕÊ»¹¸¹Á¼¼ÂÁ¹»¿ÂÃÁÂÅÉÀ¼¿ÂÁÇÏÎÆÌʽ­Ÿ’ˆzl´ÕÐÊÒÒÐÐÓÕÔÑÐÍÌÌÍÍÌÌÍÎÐËÊÒÓÐÔÌÑÓÏÎÕØÕ«vW]c`afgjijlnmopnligfeeg\vÅöÞ½¹ÁÏØÖÊÐàÔ±§²··¿ÄÊÝÞÕÑÍ»¯»¾·ªˆwŠ–—‹ˆ†„„€}yuqnmkkjiggeeeb``bb`]]_`]]aaadiilokd\eqsqiemntxtnnlea[]_``chlcljie_cd\_iloqjffloonhdelmnnjfgjnolgcfijqkghiffkhhjidgllnleWF:40*)(((()*(((('&$#$!)9EUgw}~€~{…„ƒ†…‡†„…‰‰†‰€rgl}†…„ˆŠŒ…|bET`<-AF)'K_G($C]\VWW[\M:8997=BBOV][Z_V?.1,3TOI^qoYO|°¥`K„«Œgfjg^df`cjqqpspc_hprnlmpolilnlknmkmud]y€}¤Æ¸·ÅÈÆÅÈÈǾ¿ÉÈÀ¿ÄȾ½ÄÅÄÅÈÇ¿ÁÁÀÁÃËÄÁÀÂÉÌÈÂÊÆÀÄÅÅÊÂÆÈþËÁtwtqsqmpoonmlkkkd\XWYiy{tzzz|wckƒtduzuvxxvuvxwutyvtuvvvvswx{xwzqiw”œ–ž¨®·®¬ËÞ»§Æ¾¢¦Êãêë退€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€c£¸«¦žž©˜uq‡…„…„„‚ƒƒƒ‚‚~zz~}||zy~ˆŠ‹‹‡ˆ‰ŒŽŠ‡Š‰ŠŒ‘‹‹ŽŽ‹Œ‘’–’”‘ ÀÎÕÔÊËÖÙÒÊÊÍÓ×ÕÑÏÕ¾–‹–—œ¤¤ž ŸšŸ©«¬©¦¦§¥ ¢¥¡ž ¡¤«®ªÂØɲ²¹¸¿À»»À¿¸µ¼Â¿¾ÅËÀ¼¿ÂÁÇÏÎÆÈËÌÐÏȾ´¤§¿ÎËÌ×ÑËËÑÓÎÌÍÒÎÎÒÓÎÎÓÏÏÊÉÎÎÌÍÔÍÖÔËÜÖ¤bV`b]bffhlkikmllqomkihggo`[Ýà·²¾ËÙÞÖÛêßƼÅÊÏÚáéçêçêïãÞììéâ·žÀÛÕÐÐÏÏÎÍÍÍÉÈÆÃÀ½»º»¹·²¯«¨§§¡œ¡¢—“ŽŽˆ~vjjgfmrnikojhknuqxysmold`^_`acfkomlgjjee_XbmlmojhjlmnmhgljknnkggjqqojgegiljjheejnkklidejjlkaOA:3-*)(((()*))))(&$#!1ARar‚„}†ƒ~{~„……†€€…‡„ƒƒzg^pƒ…ˆ…ˆŠ„ƒ‚jOXX33PR#+SaE!B]][\ZYVC:3582.49:EW\Y`X=-0+3UPK`sqZN{®£_L„§‡fjqjbeb\dnsrqure`hoqssqnoppmomlonlntc\x|¤Åº¸ÆÅ¿ÀÇÄþÀÿÁÄÄÁÀÃÆÁÀÆÄÁÂÄÄÅûÃÆÁÀÇÅÂÈÈÂÂÆÈÇÅ¿ÄÇÉľÊÀtusqrpnooonmmlkkc\\[]jvvw{yx|xfm~shy{suzruursxyuttuuuvz~uxwxvv{tlz–œ– ¬²´´°ÃÖ¾¬Á¾¥ªÍäêë瀀€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€h¨¹©¦ £´¢{r€†„€„‰††Š‡€}€‚‚}}€}~|zƒŒŽ‹” ¤šŒ‘‹‹Ž–žž•‹Š’˜’ŒŒ‘Ž”Œ“™¸ËÍÌÉÊÎÏÎÕÎÉÍÏÎÐÕ×Á—‰‘’–œ ™—œ›£¦§¦£¢¤£Ÿž——¡¡¥©¬ÄØȳµÀ·¼½ºº½¼·´¸¼¾½¿Ãǽ¹»¾¾ÄËËÒÒÏÌÊËÊÊÈÈÈÉËÍÍÍÒÏÎÒÓÑÎÍÉÇÇÊÊÈÈËÒÐËÊÍÎÌÌÐÒÊÎÞÍštUZdc^`aedfeflonnqpnmkjjjmsdwÈè¿°»ºÄ×ØÜéäÀ¸¿ÅËÕ×àìîéëíßØæãâ亘¿àÖØØØÙÙÙÙÚÝÝÜÜÜÛÛÛÜÝÜÝÜÝÜÝÚÖÒÓÖ×ÔÐÑÍÑÑÂÅÈ´ƒw~}zq]dffdyš¢›—’Œ†††rcbfgmvysrzwoogfhptpkfcjlkmnkhjkkkkigfhjkkjgfhjkllheilhjiifbeiikl_J@<4,)(('()*+***)(&$#'5Nhy{…ƒ‚‚‚€€ƒ„‚‚„…‡ƒiUhƒˆ‚‡…‰Œˆˆ†r_ZM6BXS24W`?$%CQXUZ^RC6-*1:3)*/.6FRX_S8.2,3UPKbuqZNz¬¡`L‚¢„hntebie`hnopptpc`gnjopmijlmmonmonlotiay€‚ªÇ·¸ÇÆ¿½ÂÀ¾½¾¿»»ÀÄÄÅÁÂÆÅÀÁÇÃÁÂÀÁÄÆÈÁ¾ÄÈÆÅÇÈÆÄÈÈÃÁÆÆÃÅÅ¿Å»tussrqppkllmnnoog_[ZZivwy{wv{yfn~wkvwtwysrsvvssvwvvwxyyzwxvwtv|uny’™—¦±³³·²ÁÕÄ´ÆÆ«¯Òçéè怀€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€d©¾¯­¥¥·ªƒx‚ƒ€~„†ƒ…‰ˆ€~‚……ƒ€€ƒƒ€ƒ‚‚~ˆ”•—¢°²§–‘”“’— «¬§Ÿ¢¡«·¹¬š’’“£¤Ÿ›“ˆ–¸ÏÑÒÑÐÐÏÍÊÈÍÕØÑÌÊØ׆ŒŒŽ‘Ž•›žŸ œŸ Ÿ ž¤ ™›ª±°±®´ÈÓų±¸µ¹º¸¸º¹µ²¶º»»¼Àû·º½¼ÂÊÉÈÉÌÌÉÇÉÍÅÌÏÊÇÊÍÌÒÓÒÐÒÔÑËÌÎÏÍÎÑÒÏËÇÇÉËÏÑÏÏÍÊÓË”b]``^ce]^cifdfmmkkqpommlllfuna•Òм¸¸ÂÔÖÛçÞ½ÄÊÕÛÙàëíéêíßØæêä库·àÛÙØ×ÖÔÓÒÑÝÜÚÙ×ÕÔÓÓÓÕÖØÙÚÛØØØÙÚÚÛÛØÕÚÞÓÙãÉ“|‰‹‚™ž„nnpkb…ÀÐÄÉÊÇÇÄÅÌÆhhi`oŽœ›¡¢‹€• œzjonijgknnlmkfenlkjhfgiiiigfehknkkiegklmllhghkklm]HC@5,((''()++***)'%#"" '6Pf‚…†ƒ…„…†…‚…‰…‰‰rTXs‚†‡†‹‹‰Œ‡uf]OCOQ90CbU2!(C\a\[T?40,+4:3)(*-05CW_O804.3TOI^qoYO|°¥_Lƒ§Šjjjjeha[gqspptnb`iooponnpolmonmonlosg`w©Æº»ÇÅÄÁÄƽÂÈÄ»½ÅÃÃÁÁÃÃÂÃƽºÂÊÅÁÄÅÄÆÅÁÄÈÈÃÃÃÃÅÅÆÈÇÄÅÆ¿Å»vtutsrsqjklmnpqqd\ZY[jz{vyww|yel„wgtzxwtvssvwuuwwvtstvxxswx{xwzrjv‘——§³´¶°¬Ãؾ¯Ì˪¬Ôêèæ退€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€d¬Â´³©©»­†z€{y€€‚ƒ††††…}~‚€||Š–—›£¨¨¦£œ•˜šž¤©¬­®°®°±²¾À³¢Ÿ™•”“™¤³»º¯Œ—µÈÎÐÌËÍÊÄÐÍÊÍÐÒÔÖÓÀ—…‹‹‹ŒŒŽ‘”˜œœ›–›š™œž¦£œ¡²»»»ÁÆÑØν´¶´¶····¶´°¶»»¶µ»Á»¸º½¼ÃÊÊÊÉÉÍÌÉÇÉÌËÍÎÉÅËÔÏÓÑÎÏÓÏÇÊÏÐÍÍÓÓÏÉÄÄÇÇËÎÊÊÊÔÈa[X[^]ed_egigdhnolmqponmmmnipxin©Í¿¶ÇÔÙÔßéÔ¿¼ÃÌÛâÝåèêåçéÜÔâèáẔ¶ßá×××ÖÖÖÕÕÛÚÙØÖÔÓÒÙÙØ×ÖÕÔÔÔÖØÙÙÚÜÞÚØÕÖÌÔàÅ’y„ˆ‚”›™”Šyi‰¾ËÃÊÍÎÎÌÑÞÙœojg^už¸·ÂÀ‘³Ê¸‚fssjkgkpojhhhjponlgeglmmlieeghjiihcbipmmjfdfhkmlZIHB3,('''(*+,)))(&$! !(:ewƒ†…~†‚‚†…ƒ‰…ƒˆ_M_z…††‹‰‡Œˆ~e`]HBG?>Zb>'$&?]^\V>,.-/.371/12-/.7Q`S>25.4TNI`spZO{®¤]I‚©Žljjfcie_hooqqtpcajqooonnnmkmomlonlnq`Xv}{¢Å¼»À¾¿¿ÁÄÿÃËÉÂÁÄÂÀÁÆþ¿ÅÂÁ¿ÃÈÆÂÅÇÀ¿ÆÈÀ¾ÄÂÅËÉÄÊÌÃÅÈÊÅ¿ËÂusturrsqmmnnnnnoc]\\]kxwvzwvzxfn…vgy}vstrvvrrwywoswxwwvuuxwyww{sdw”™•¥²µ³®ªÁÕ»¬ÇÊ£¤Ïéçç뀀€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€h±Åµµ­®Ä±‰}„ƒ~|‚ˆ†„ƒ…†…ƒ„„~‚|}~z|‹™š‘œ¤£  £¤¥¦¨ª«­°²¬®¶´«®µ°¦¯®§§©¬±µ¿À¹°¤§ºÃ¹¹Ãù¸ÂÂÂÀ¿ÂÆÆÄɺ”†Ž—•–˜˜—™œ˜Ÿœšœžž—˜£¨©¬­«´ÅÉ»²µ³´µ¶¶µ´³²¶¹¸µ´·º¹µ¸»ºÀÈÇÇÂÂÆÇÃÃÅ¿ÁÉÐÎÇÉÑÑÐÏÎÐÏÌÇÊËÌÌÍÏÐÐÍÆÆÈÅÉÌÆÆÓ·cZW]bYZbbafgiihilkjlpoonmnnooclsg~´Ì½ÑÜÛ×èóÙ¿»¾ÆÙáÝçéìèëïãÝëåãã¹—µ××ÑÑÒÔÕÖ×ØÕÖ××ØÙÚÚÕÕÕÖÖ×××Ø××ØÚÛÛÚÚÝÕÕÏÔàÅ”€‰‹‰†ƒ™·Ç옡ÂÐÂÆÇÈÊÆË×Ëšrje`xž³¯¾Ã¡“±Âº„eqrgjkjnomljikooomifimkmlfdehhijigffghlkheehkmliWJLB0+''''(*+-((('%" +Rwƒ‚‚€ƒ~‚€„…‡ŒvYZo}…„†‡„ˆŠŽo^R:.AY][G'(/+=Y\VG0&.+-+3;:9::@ED@K^X?04.4UPJburZNz¬¡^G§‹jlricgb]forrosre^fonoonkijmlnlknmkmsb[x€}¦È»¼ÇÅÃÂÃÀ¿¾ÀÂÃÂÃÁÇÁÁÇÊÃÀÃÄÃÁÂÇÈÄ¿ÀÂÇÆÁÄÈÅËËÇÃÈËżÄÇÊÅÀÌÃ’sprsoproppoonmmmi`\YZixyx{xuywgr„wjxyrtzsuwxusstyxwuwxxuwyvwtv|ufy˜›—¥±±°²¯Â×óÉË£¡Ëçêê뀀€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€j´È¸¹°±Èº‘„Œˆ…Š‡†ŒŽ‰„„…‡ˆ‡‡ˆ„€‚~’ ¡ £©¯®«®µµµµ¶··µ´¶³º¼±±·´±¿¼±´¾ÁÀÈËÅÁÄÁ¿ÇÆ¿¾ÃÄÀÂÊÈÊÇÃÄÈÆÀÁ´’‡’–—•——››—œ¦¢£ŸœŸžŸ¡›—™™šŸ¦¤¿Ë¾´¹³²´¶¶´²³¸µ²´·¸¶²µ±³¶¶¼ÃÃÄÃÇÎÌÅÄÈÃÉÌÉÇÉÎÒÕÏÎÒÓÎÊËÌÈÉÎÐÍÎÒËÄÆÊÉÏÔÎÚ¿…YXb]WZW]]_ecaaghgikloponnmnoohlnrfl™»»ÃÇËÏãðÙÀ»º¿ÒÛØäçêæèìàÙçäæâ´–¸ØØÖÖÕÕÔÔÔÓÒÒÓÕÖØÙÚØØ××××ÖÖ×ÓÏÑÖØÔÏÕÝÔÕÐÒØ»•€ƒ€€…‚–³ÑÓÉÆÅËÏÄÄÃÆÊÇÊÔΙrnh]tœ¶¬·»˜Ž±Æ¶‡gruiggoooqqlghnmlljhikrrmeafklknlhggjqmlhgikjikfTJNA,)''''(*,-(('&$!#&Bp‰…‡„€‚„ƒ‚ƒ„Œ‚eV\v…€€‡‚ƒ‡vS5(%0EI:2)(%":YbS@<AKKXQT\^_cgbjhTK\Y:.2-5VRM_rpYO|¯¥aJ§ˆeithbfd^fnquoswi^dpspnnmkknknlkmlkmqe^v~€¨Æ´¹ÊÈÁÁÆÁÿÁÄÂÀÁÂÅÂÁÅÈÅÂÇÇÁÁÅÿ¿¿ÃÆÆÇÊÆÄÊÉÃÄÇÅÆÈÇÄÂÄÆÁÈ¿”qmpqmnqmpooonnmmd]\[]lyyv{{y{xhr€wjwzwwvvuuwyxvtvyzyxxwutwxzwwzrk|˜œš©°¬¬ªªÃÛôÎѨ£Éæìë退€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€m°Ä¸»¶¸Í½ˆ††‰‰‰ˆ‰ŒŽ‹‡††ˆŠŠŠˆ„€ˆ…}„–  Ÿ¢§¬¬¦©¶µ¶´±²·ºº¼¼¾½¸µ·½»Á¸¾ÎÌÁÍÊÉÍÏÌÊÊÍÉÉÊÈÊËÉÑÑÎÈËÐËËÒ¼—‰’™›˜™š››•˜¤¥¢¢£¤¢žœ ¢ œ›œ ¡«Ê̺¶»´¸¾¼µ´µ³¬®¶¸·¸µ³²¶»»¸¸»¼ÂÄÄÂÃÆÅÂÃÈËÊÉÉÍÏÖÔÐËÈÊÏÔÓÎÍÑÓÐÏÑÄÇÆÒÏÄÍжy`^]a\Y\ZYZ^`a`gegmpmkksmmnkmpkhqrlrm{¹ÒÌÇÏÐßðÛÄÅÇÈÕÝÙÞèðççëÞÛæäßÞ´’»áÕÎÕßÙÍÏÖÓÒÏÐÕ×ÕÕ×ÙÚÖÔÖÔÒÕÔÖÕÑÑÖÙ×ÖÕÔÒÑÒÛ¿|‚„‚‰‡‹µÐÈÃÇÉÆÇÉÉÊÉÍÇÂ×Ïœqod^pš²²À½‘Ž°Ì½…cotgfhkpnmqlefpklmgcgmqnmjfgiiinohcdilnleehikjjcTHB9-('''(())*(*+'!! ;j„ˆ‡‡…ƒƒ€ˆ…~…tbYi€‚y€…€‡rU@4)'..,&)*(0<[fTJ\lnhmlkjjlnpmsmRCWY9(1+5TUNcso[Px«£_G€ª‹ehtjdhfaiqurqssd\foonnnllljmnopomjiph^tƒ‰«Á·½ÊÈÄ¿ÂÆÄÂÄÈž½ÀÆÄÂÄÅÂÃÊÊÅÀ¿ÂÅÄÂÅÈÃÁÅÁÁÌÆÃÆÇÅÆÉÈÆÇÃÂÆÐÁ“rstspnoqnlnqqnpthYTZ`iswvtw}|terwfs|xttrtussvxxvwvstwxvvvsvwxzpjy–›˜§°¬¦«¬Á×ijÈί®Ðçìê倀€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€h²Ê¾À¹¶É½}„ƒ„…‚†‡ˆ‡†………ƒƒ‚‚ƒ…„‚~†…‚—•– ¥¥§§¨¬«­¯±³¶··º¸¸¹¸´²´¸»¼³¶ÄÉÊÊËÊÉÉËÍÎÊËÐÑÌÊÌËÔÖÔÍÌÍÈÊØ¿–ˆ”™œ¡œžœœžž£¨§¤¡¡£¡¡¢¢ žœŸ¦  ³Ï̶µ¾»µ¶»¹¶´±¨°º·´¹¶°«´¸¹»»·µ¼ÂÅ¿ÂÅÇÄÄÈÌËÈÈÌÙÔÐÏÒÓÒÐÏÌËÌÍÌËÊÅÈÆËÊÌϾw]]bbe_^[YWX\`cdifdfghijljlomkllotrpvjl™ÞèØØâæêâÙØÞÞßåäæçïçèëÝÙäèæá´–ÀæÝÖ×ÙÖÐÒØÚØÖÔÕ×Ø×ÕÑÔÕÖÖÕÔÕÑÔÖÕÔÖÙÛÕÐÏÐÑÑÛÁ‘}ƒ†…‹‰´ÐÉÅÆÄÀÂÃÈÌÊÎÉÂÕÑœola]sžµ²ÃÄ”±Ë½‡eqvjhhmspmnjgllikmhdfiimmjgefklmkfehjhjlfdfhmpqdOA:1'%&''(())*)++(#8bˆ‰„}€ƒ‚~‚†€ƒ†zk\g~€x€ˆ†ˆ„xe^M0%*%*)&'%)<\aLHaljhmljhhijkbloWDUX:*2+5TSMasq\Q}°§dL‚ªhiphbge_gpstrssf^hprpppmllkjknprrqpne[s€…ªÆ¼½ÉÈÃÁÄÄÁÂÄÅ¿ÁÅÅÀ½ÂÇÄÃÈÊÆÃÃÃÃÃÅÇÅÄÃÂÆÈÇÈÈÅÇÆ¿½ÇÈÈÄÂÃ̽ŽsttsqpppoonlmprqeZW[alvwz{yuvvhpŠyfwztutxyupoty|tptxwvxvyxzww|tiy•š—¦¯¬°¬ªÂ×½®ËË««Îçìê怀€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€j¶È·¼¶²Å½Œz€‚ƒ{~ƒ€~€ƒ„ƒƒ€}~€‚…ƒ|‹•—–žŸ¢¨«­¤¦©®±±²³·´³³³¯¯¯´µ·²³¼ÂÈÀÆÈÅÃÅÇÆÌÇÇÈÉËËÇÏÌËÉÒÖÎËÔ¼’…”–— œ ¥¡Ÿ¤¤¥¥¡œœŸ¥¡ž ¢Ÿ ££µÒÒ½¹½¼¶¶·´³µµ±±·¶´´¯ª±·´°µ¸¹¼»¹¹½ÁÂÁÁ¼ÂÈÇÅÇÎÔÊÌÏÑÒÒÑÑÏÏÍËËÌÊÇÎÍÇÄÊØÇ’WYba`c][]ZWVY^bd_aehlonkflnkihkqnoqkb`cg‘ÀÊÈÐÕßßÓÎ×ÚØÞàßäíçéìÛ×âæçÝ®“¼áÜÕÔÑÒ×ÙÕÓ×ÓÑÔÖÔÕ×ÓÓÕ×Ø×ÖÒÔÒÒÕÙÚÙ×ØÔÒÐÑÔÞ‘{‚‡†Šˆ¶ÑËÅÅÂÁÇÉÇÄÀÊÌÇ×Лnka^u ±©¿Æ”Ž°Æ»ˆgqxmkhksqmmhfmlknojffgkljhhgiloomhhklkjojghgikm`L>7,%&&&''())*'((&!2\ƒ„„ƒ‚ƒƒ€zƒƒ€ƒ„u`byw{„‡ˆˆp_l`2#($(*$*,'9Z\EIhnhljjllmmmmknoYCV^A,4- 6SQK_trZP~²¦eL‚¨jjngaec^fnruqrrf_hopnoomnnmjkmnnnmlsg]t€€¦Æ¶µÄü»Ãþ¿ÂÃÁ¿ÁÅÈÀ¼ÃÈÅÂÅÉÂÃÊÉ¿¾ÆÉÁÁÇÈÆÅÁÃÌÈÀÅÈÅÆÄÃÂÁÂÌ¿utsssrqprnmopnkkh_[[^kvvx|zvxyhmƒweqxuuwzwuuvvwwwuuvxwwwvyyzwx|uiy•™˜¦®¬±±­ÀÒº«Äɨ¨Ìçìê怀€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€n¸Å²º»¹Ë¾x€ƒ‚}zz|}||}~}yyyx}}}}Ž–•››—–™œ¡¤¢¤©«ª«®³±¯®«ª®³³³´±³º¼¿ÁÅÇÆÄÄÄÃÆÄÅÅÃÄÈÈÉÉÊÊÏÒËËÍ»“‡—–’™¥˜ž¡šš¤£žŸ¦§£Ÿ ¦Ÿ—˜Ÿ¡¡¤¥«ÀÙѺ·¿»º·±­´¸µ¨°º·¯¯¬ª«²´´··¶»º¸»ÂÁ»¼ÃÁÇÊÉÉÍÎÌÍÑÕÔÑÎÍÍÓÔÑÎÍÏÍÇÅÇÊÇÌÞÀuRac[aic^_\YXX[^`dghikomijsqlmkd`ik\TUOO\S„®À·»ÓÒ¿·¾ÄÉÏÎÎãìæëìÙÔáççÜ®”·ÙÙÔØ×ÒÒÕÕÓÖÕÕÖÔÑÒÖÔÒÓÓÑÓÔÐÒÓÕØØ×ÕÕÖÚØÏÍÓßÁ”}„Š‰‹ˆ¯ÍÊÊÊÆÃÇÎÊÅÂËÊÁÎÍšond`uŸ¶«ÃÌ—‘±Ã¹ˆgqwokggoomnhcghknnjhillihhegjjnmkggjkknoheggjng[I<3*%*%%&'())*))('#0_~ˆˆ…ˆ…€€~‚€‚}d\r}xtyƒ‹r\bQ0(&(#+&)1.:W]KPnodgeda^ZWTSRLMA8R\=.4."7RPJ`vsXL{® _J€¦Škkogaec^fnrvsstg`jqonopnopoppppomkjsg]vƒ†ªÇ¹¶ÀÁ¾¿Á¾ÀÄÆÃÃÅÄÀÉÁ½ÂÅÀ½ÀÃÂÂÃÅÅÄÄÂÄÂÁÃÃÁÁÂÊÌÇÂÂÃÄÂÂÂÃÁÍ“wurrttropkjnommqj`[Y[hvywwvzyfn~uhu{xvttuwxtrtyuvsqt{|xwwtwwy{phz”˜˜¦­¬¬°°ÁÒ¹§½Ë¨§Íèíê瀀€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€m¸É·¿½»ÌÄ‘z‚~{}~~}|zz|y}€}zxyzzvvw~—”—˜•”˜—•–ŸžŸ¤¦¥¦©®¬«««ª®³°²´¬®¹¼¼Ã¿¾ÀÂÃÄÆÃÃÈÊÇÈÉÈÉÈÉÉÎÍÇÉÎÁšœ•˜¥ ŸŸ—™¥£¢¢¢¤¤ œ¡Ÿš™¡¤¨©°ÄÚз´º½¹µ¯°¹¹¯¥«¸·°¬©§§©°·¸´³¶¹º½¾¹µ¹ÁÂÄÈÈÆÄÅÇÏÍÌÍÐÐÍÉÒÓÑÌËÍËžÅÐÊÉ׳iMcbZdlf\[[ZYYZ\]ceedhlmjiolb[RNR^ZNLRNOVMV‡ÀÂÁÝܽ¸¸»ÄÇÂÉãëçëì×ÓáèåÚ°•²ÑÒÍÑÓÐÌÐÖØÒ×ÚÕÔÖÖÒÑÒÕÓÐÓÙØÒÔ×ØÙØ×Ö×ÚÛÖÒÔâÉ’}„‰‡‰…‹©ÈÈÉÌÈÃÄÅÇÊÉÍƾÑÏ›omd`v¡»°ÆÌ—‘±Á¹‡fouljehnlknjcekjijljihllnlgfjlpkgehlkholfffflogXC3.(%($%%'())**(''$ 4h…‰‡Š‚‚‚~~‚„ƒkVhzypqz€yr[?,2D>/(@IFLED[`G<KJDGGEB?>>@A>:AAAWY8/4.$9QOJ`vsXL{® ]Jƒ§‰hkqhbfd_gosrqrqd\hqrqqqooonmnnooonnrh^v†‹«Àµ¶ÂÂÄÂÄÄÅÂÂÆÆÂÀÂÈÂÁÄÿ¿ÄÄÃÀÀÄÉÇÁÆÈÃÁÈÉÄÄÈÃÄÅÃÂÄÄÇÅÇÆÁËÂ’wurrttrolmmlkmopf\WX\ix}zxtx~wdrˆudx€zururqtwwuuttuvxwwvxwtwxy{qh{”—™¦¬­±®®È׶¥ÅЪ¨Ïëîê怀€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€f¯Å·»º»Ì¿’{~}zy€‚€{y{y~{{}~€zvtyœ™“™–“–š˜––—› ¢££¤§¤¤©­­«ª¥­²©ª·º¹º¶¶¼ÁÂÂÄÅÁÂÅÇÊÊÆÇÄÄÆÎÐÊÍÒÃœ›Ÿ››¦©¦¡ž¡£¥¦¥¢ŸœšžŸ ¢¢£«¯À×Ò½¹»¹···µ¶¶°®©®³±¬§¨¯©«´µ²³¶º¸³¯²¹º¶¶¿ÄÁ¼¿ÅÊÄÄÅÈËÍÏÏÌÌÉÇÆÇÄÁËÈÊÂÈÕ¦\Lba[`caWVWXYZ[^`defgilkimh`ZQIN\SEHNMWZMSJk´ÏÎÝÛÀ½¼¼ÄÄÂÐåìçìêÕÒãçãÛ±“±ÑÏÉÈÊÌÊÈÈÉÉËËÌÍÎËÇÊËËÊËÐÑÎÍÎÏÑÓÕÔÓÔÑÓØÕÏÜÊ‘‡Šˆ‰‹«ËÊÉËËÅÅÈÈÉÈÌžÓÔnj`^w¤¶®ÁÄ•–·È»‡dmrigempkimjegknonidejlnlihfgknlighjkkkihidemm\O:..-%!#$%&')***'&'$8l‡‚„†ƒ€€„„‡uW_qyonywr[?<Q_cL9Qjnp`K[`H5:=>>ACFJLNMMPR[ZV`Y;.4.&:ROJ_trZP~²¦aM…«Šgiqicge`hptsrtsd]ispnoommmlkkklmmnnsi^u†‹¨¹°¸ÇÅÁ¼ÀÆž¾Äü½ÆÊÆÆÉÅÁÂÅÈ¿ÃÈÉÆÂÉÆÂÃÈÆÂÁÃÆÅÃÁÂÅÇÅÃÇÇÀÌÅ”utsssrqpnoppmjjle[X[_jwyz|wuzuco†sbrxvwuutrtvwwwyyyzwvx}wzz{xy}vh}•˜›¨¬®¶³²È׸«ËÒª§Ðìïê瀀€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€Y–«¢¨«¯¼¦ˆ|~}{{€€~|{|~z}}{{||}}~y{ šœ˜““’‘‘’•—˜›žŸž Ÿ¥ª¨¤¢ ¦«£¦³´±µ¶¹½ÀÁÁÁ¾¾ÁÁ¾ÀÆÈÂÄÈÇÇÆÆÑÓ½—‹—œžŸ ª«£ ¡¤¨¨¤£¥©¨£ž Ÿ¢£¥¨«³ÇÛÓÀÀƶ¹½º³³¶µª¬±®«®­¬¯«­µ¸²¯²·¶²°´¼½¹·¿Â¿ÁÈÈÁÇÊÎÎÌËÎÒËÇÅÆÆÄÂÁÎÈĺËÙ¡VL\\^cdf]UVWWXZ_cecdgjjkkgZRSUVWVRHFJW[T\SJXœÒØÜÜÁ¹º¼ÁÆÊ×çíçëêÔÒæêæà³’¸ÜÓÏÑÓÔÒÎÍÒÒÌËÏÐËÇÇÌÌÉÆÊÍÊÆÆÉÌÌÊÈÍÓÎÊËÏÎÊÑ·ƒ–“‘ªÎÐËÌÌÈÆÆÅÅÅÍÊÃÕÖŸoj`^v£·µÂÀ˜žÁÔ¿‡cmqfefkplilhdhrmijmjhkookghhhkikkiddinjghgahrjOJ<00/&##$&')**-)')(" !!# Cq†‡|~ƒ€„…|`Xerliv}wlXPc\DXkLOgnl_IT`ZUY\[SORUVTOJFRZ_\X\R=-2-'<SOLasq\Q}°§dLƒªŒgiqibge`gpttrrqd]jromnnlmmlppooooooqf\u†Šª¿´¶ÄÄÂÁÆÇÄÃÃÂÁÁÃÄÃÀÃÇÇÆÆÄÃÄÁ¿ÄËÊÃÄÈÇÂÀÃÅÃÂÂÁÃÈÆÂÄÁ¿ÅÆ¿ÌÇ–sttsqppppkjnnknsg^[[`lvtv|yuzuam|sivvuywuvvtstttsstuxyxvxzz|yy}vi–˜©­°µ·µÇÔ¹«ÉЧ¤Îíïê瀀€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€M~Œ…‹Œ‰Œ‹{{€€~|~||}zv|~~~~|z|}usŒ£¤žŸ’“•—•‘’˜›š››œ¡¢ Ÿ ¦¥¡™Ÿ®¯¬´¸¹·¶¹¼¼¼º½ÀÁÃÄÁÃÂÃÃÅÄÃÍÓ¹•˜œ £¡§¨¤¢¢¥¬¬«¥ ¢©¦œ£¥¥¦¤¡¤­»½ËßÙÆÂú½»²®·»´¬¬²³°¯«©¯°®°³®«²°®°µ¹»»¼»»º»¿Ã¾ÈÈÉËÏÐÎÌÍÈÆÉÊÆÄÆÊÏпÇÏ•RPZ\hnll^YYXVUX^cddhnlcYU]]\UNU\WLOYW^fZ[_HB‡ÐÜÝâʹº¿ÃÌÒÙéîçëéÓÓèåãÞ­Š¹áÒÐÖÔÒ×ÖÐÒØÓÒÕÔÐÎÐÒØÖÐÏÐÏÑÑÏÐÑÏÍÑØÔÖÓÎÎÒÓ«…{†…†“©ÏÏÆÆÊÊÊÆÉÉÄÊÈÃÖÕŸqmb^tŸ¼¼Ãº“›¼Ð‰cmqeehemnkleafrnjihdfokklkeehillljggjnkhkjbjp]NOC2,*% ##$&')**,'&('!!#"O‹€~€€€~‚}~iU[kgepvsjUNiQ&MpYXjgWMAT\[ZZZXLNNMMMNNONX\YZ[P?-1-'=SPMcso[Px«£bG}¨hiqhbgd_gosvsrrf`kstrrqonnlnnmmmmmmwj^x†‡¨Ã·¶ÄÅÀÁÈÇÈ¿¾ÆÇ¿¾ÃÄÀÂÇÉÉžÃÆÅÂÃÆľÂÀ¾ÀÆÉÆÂÈÇÄÄÆÆÆÈÂÀÆƽÈÃ’rstspnoqmlkmoppoh`[Y_pzutzwuztapshyxsuwrvxwvwwvvvvuuuttxxuxyz|ri€—™žª­±´±±Ë׳£ÅÍ£¡Íìïê耀€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€Gr‚}}}„‚{†||}{~‚€z}}}}}{z~{||x}”¤ £¡–‘”›•Œ‘š™•“˜ ¤¢žž¡œ¡¡¯°ª¯³¶¶³³µ¸»½¾½¼¼¾ÁÁÆÉÁÁÉÈÇ燙š›¤ ¦¢ ¤¨©ªª¨§¦£ Ÿ¥¥££¢¤­½ºÇáàÊÄƺ¹Á¾±¶¿·³®±±¬§¢¥«¬®¯®­¬¬®²µ¶¶¶¸¹¶·½¼¸ÀƾÃÆÃÄËÊÆÈËÈÇÊËÆÄÉÍÕËÃÔÑ“JQmj]knce[WW[^\_ecbhhYKJLLMMQX\bmdclljg`fp_MŠÎÙàá˽ÃÎÐÏÐÙæíçëêÔÔèæßÚ®¹àÏÐÖØÕÑÏÐÓÐÏÓÓÐÏÊÉÎÑÓÑÏÒÓÐÑÕÖÓÓÖØ×Ö××ÔÔØß½ˆhxz‚‚¡ËÌÄÅÆÆÌÊÅÁÃÊÇÅÕÒ˜plg`xœ½»¾º™›´ÉÊ‹anyngajooljfeipnjjighgimpjbgomnllkhiklokifbijYV^O9/-)"$%(+'$((#!#((" 2_‰Œ„ƒ€€~z~„oURmtihbhc\\jL'Gna[n_/)D^aZTWVQQTHIOMMOJK]`VXaU=-6/"8UTM_sq[P|®£cK¤‰jnsk`cc`gotqsyteajqtsqpnmorrnlopnlmrl_r…­¼¸¹ÃÃÄÆÈƾ¾ÃÉǾ¾ÇÈÁÁÉÉÄÁÁÀÀÅÈÆÈÉÃÄÀÀÅÇÅÄÄÆÄÅÉËÆÂÄÂÇÊúÆØtqtqqrnojkppkqske]ZZ_n{yxytv~xbm…vfw}wvwxuvz{zyvtwxtsvwvuxwxtuzti|–š—¢¬³µµ·Ê׳œÁƨ¨Ïììç瀀€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€Gt„}}}|}yz„ˆ~{ƒ†|~~|{}€}{}~{{€z~—¨¥¥¥¡  ›––”—•”—–•˜˜˜› Ÿœšš Ÿ ˜™§¬©¨®±°±¶¹ºµ¸»½½½¾¿¿ÀÿÂÈÄÁÏ»”‡“–—›¡¡¨©¡¥¬¤¨ª©ªª¥žžŸ¢¦¢£¬µºÎèáƿûÂÇ»µ·µ´²µ²­ª¦¨¨®³´³²°¯²´·¸¸·µ´µ»½º½ÃÅÁ¾ÄÅÃÄÃÃÊÌÊÌÊÃÉÎÆÖÖÌÅ̼‚JZke[fkde]\ZYZ]`cej_H>AHOMKHQbkmpxonihhchqbU•ÖÜÝØüÅÍÐÓÔÚèîèíëÖÕééÝ×­‹µÞÒÍÖ×ÑÏÒÒÑÑÑÒÑÐËÃÅÏÒÒÎÌÏÐÌÑÒÕ×ÖØÙ×ÒÖØÕÐÐÚ¾†gu{u}z{ÇÊÄÅÅÁÁÌËĽÅÈÊÚÔ™mhb]xŸ¼½Ã½ ·É¾ˆcmskkknpmlmkghjoomifihgkpmdflnjiihghllmkefhijeidL=B:% &+-(%*'&&''%" !>wŽ„‚€€€}{~‚x\UmyvmWVf`[lM&LqaYi\, <[_[WYVOLPMJKNNJERZ]WY`U=,50$9VSK`tr[P{­¡`J£†glsg`ca_iruwqttg^gsrpnmnpomopommpoktmav†®Â¹ÀÊÆÃÀÁÄÁÀÄÈÁ»ÁÈÅÁÂÉÉÃÁÅÆÃÂÆÈÄÂÅÆÄÂÃÇÉÆÃÂÆÇÈÆÃÁÂÁÂÅüƿ“urtpornqqmqrljordZVW\l{|wwy{{ufq…ufw|urrvuuutvvrtyxtrvwuvxvwuw{tn€™œš¤­²³¶¸È×·Ÿ¾Ë©¦Ëéìéꀀ€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€U…’†‡‰†ƒ„}~€}}|}~€€~||v|~}}}}~~y}–«©¤¦¢Ÿ ž™˜˜œ›–”“’”™•”™œš™ž“’¡¨¨ª®¯«¬±³¯²µ¹»¼»»»¼¼ÂÄÇÈ¿ʻ˜‰‘’“™œ ¡œœ¡¤§«ª§©¬ª£¢Ÿ˜š¤¨¥¦³½ÓèÞÆÄÊÂÀÂÁ½½¾º°´¹´°¯©¦®±³²¯®²µ²®­°µµ°ª´·µ±³º¾½½¾¼½ÂÄÅÈÈÇÇÊËÀ°¦˜–‘’’\FW][[gmjh]VW\]Y\bj^H;@FEDPY`juwsprlmlllhji[W˜ÕÛÝÚÀ½ÄÇÊÓ×ÙèíçëëÖÕèåßئ„µàÏÈÑÔÑÓÖÕÒÏÒÐÍÔÔÊÇÎÔÕÏËÎÒÒÐÐÐÑÓÒÓÕÖÓÓÓÒÑÙ½ˆkz€}‡…†¤ÌÎÆÅÈÆÃÈÍÌÉÊÃÂÚÑ—nic]w¿Äɾœ ´À²„gorhhfnpmlmkghjllljgijigkkgfijjiihfgjklnjgeet‚€\:=M7#+0,(**+++*'$!!#T€‰‚~€~|}~~x]Rj€gBKibXpO%NsSShY)>[``^`]UONUOHLMHISW\\\^O5+51%;VSJ_sq[P|®£^J¤…ektidga]hpqtrtpd`ktmopononmmpqnlnomqiax…‰«Ã¸ºÅÃÂÄÉÊÂÂÈƼ»ÃÅ¿ÀÀÄÉÅÂÅÈÉÄÁÇÅÁÃÁÄÃÁÃÈÈÄÅÆÄÁÃÄÅÅÄÁÄÆÃÊÀ“qpvttsmlpkjopmmpk^YZ^jwzwxz|zseqƒufv|vvxvuussvxvxttxzwuvyxuwwy|sl|•šš¥¬°¸¹µÀÓ»¤ÁÏ©¡Ääêéꀀ€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€Y‹–‰Ž–•“’Š†„€‚„‚€€€€}{{|}zx}{wy{—®­¤§£Ÿ ¡œšš›˜”’“–˜™”‘•™ššš”——• ¤¢ £¦¨¬±±®µ¶¸¹¸·µ´¿½ÂÃÁ¿»ÀÁ¶˜Œ““’–ššš›œŸ¡ ¤§©¨§¨¤ ¥¥žœ¥«««°½ÓæÝÍÌÎÇÁ¿ÂÁ¿¾¿·ºº´±±«¨¯¯±³±¯²¸µ¯©«°³³³³²µµ²µ¹¸À½¹º¿ÃÄÄǼ¾Æ°b`YYY\ZMGOXUXaimhabXW`^XZaaOHNQSUU\hpqrrpqsrttqpon`TZœÓÛàßÆÀÁ¾ÃÒ××æêäèéÔÒåâÞئƒ´ÞÎÉÏÑÒÒÑÐÐÏÓÑÍÐÓËÉÐÕÖÒÏÏÐÑÓÓÐÑÓÐÎÖØÒÐÓÕÔÛÀˆnz~{…ƒ¨ÍÎÅÀÇÊÆÉÊÇÉÑÉÃÖИpld]wž¸ÀŹ— µ¿µ„epvnnmjooljfeiljimjcfjllomdbirlkjjghkknnjgaew†mH14:5&'01*(*)'&&&#0h‹}€€}|~~{{bOh…uL(Ko^Ig`A\hBRt`.=W[\\]\VPCNMGHIIMU\`_aaSA-60$9USK]qp[P}¯¤aK‚¥‡hmugaeb]hqtsvyp`_jpnprqonnonnoqnklqngay…Š¬À·¶ÇÇ¿ÃÎ̾¾ÄÈÀ¾ÄÉÉļ¿ÆÅÂÇÈÇÀÂÊÇÁÅÆÆÄÂÃÇÆÃÈÆÄÅÇÇÅÆÄÄÆÆÂÍÕppuutslloqpllnrvk^Z]ajuxy{vv|t`n‹wdtzwvwzwvwuuvxuwxxuvy~zyuwx{}shx‘˜›§®°º¸²¿Ô¾§ÃϨžÂâéç耀€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€T‰”„ˆŽ‹ˆ‡ƒ}€}|„|yz|yv{€}z}„ƒ}~š´³©¬¨£¥¥¢  –“——“”šš•““”’”––˜œ“‘£¢  £¨ª§¤£®¯°±´¶¸¸ºµ··¸¸»ÃÀµ–Š“”’’”—™™š £¡¤§¨¦£¡ ©¨§±ÂËÍÒÍØåéÚÇÅÃÄÁÂÃÄ¿º·¹»¹º·­ªµµ¶¶´²±²¬®³··³±²°°µ¸µ³·»¾¿¿½º»ÀÄ´ý…\[[WWTROHKXXQUaili`b\\]Z\aaTLIJOYcdinnmqsrqttwyurqj_Q`¦ÛãäÝÊÀ¿¿ÆÖÚÚæêãèéÕÒäå×Ô¯‹®×ÒÎÒÓÑÑÒÓÖÓÐÓÒÎÊÉÏÐÐÏÑÓÏÌÎÑÐÒÕÓÎÎÓÒÐÓÔÑÏÜÆŠs€Š†‡§ÉËÅÄÊÊÅÃÇÄÃÎÏÌÛÖœqja\{¤¶¾Ã³“ž·Á¶€`nvkiijooljfeikmoqj`bhmmomheilkjjjhjmnkjhgbar€]1$%)@?##,.+(*)&$$&%!!Q……~€||{}cG_}_2#Tr\8NcZ^M6E\P, <^^][Z[XRTXZVRONONTNEEB9418/ 6STM`sr[P{­¡bK¤‰jnsh`dd_fpvtqute]gtvqnpqonpnmopokmqskbwƒŽ²Â¸¸ÊËÂÃÉÄýÁÉǼ½ÈÏƾ¿Ä¾½ÆËÇÁÁÆÄÁÀÊÅÀÁÅÇÄÀÌÌÈÄÃÃÆÉÀÅÇ¿ºËÅ”vrsonqorospihknph\X[_iuxyztu}wbo‚wjvtms|vstutrttwvusvyzyzyuwx{}sj{”œžª°²¶´³ÅÜÁ§ÀЪ¡Åæëè瀀€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€`˜£‘Œ~~€zz~€}{{{yy‚€ƒ~›¶´­®©¥§¦££¢š˜›š—–•–”’“’–œ›šŒ™Ÿ›š¥¥ ž¢¦¦§«°µ¸¹³®±µ¹»¹½Æ¸•…“’‘”––—œž¢¥¤££¢¡£§¨§¤¬¿ÊËËÊÓÞæØÈÊÏÃÅÆÁ¾Åĸº¹¸¶¸µ®°µ¸¶±°´µ²±¯°µµ±®®ª¯°±´±³¾¹·¹»»¾ÄÄ»¾¼—d\g`]]WUXVTXWQR\ellg_Z\]VVWSKJDH[jjgfknptsnkonpwvwvh[H]¦ÝêèÝɼ¿ÈÑÚÝáêíåêìØÕæäØÖ²Œ¯ØÓÊÓÕÐÑÖØØÓÎÐÑÏÎÍÐÍÎÏÒÔÎËÑÓÍÑ×ÑÐÔÔÑÏÎÏÍÏÚÁ„o{}~‹†ˆ³ÒÎÈÉËľÀÄÈÈÌÊÍàÖslb]{¦¼ÃŶ”ž¶Á¹„dsvhegnpmlmkghjoonidgiflqogcejljjjghkljkhhd_fqS$IP*"""&))++-+'')(%7mŽ‚}{|~d@OfD#(CNA-1=@A0/.14-+@VSPLHIIC>=:6433311-+*'&)39/4SSNdwt\Oy©bI}¢ˆilqjafe^cmusloti_ixtoorrmlolopmmopnvk`r}´Äµ¸ÅÆÇÇÈÅÂÁÀÅÄ¿¿ÇÈÈÅÿ¿ÅÅÿ½ÀÆÆÂÆÃÁÃÄÄÃÃÆËÊÅÄÈÇÄÀÈÉ¿¹ÍÈ–urspnqnqrpnmmooni]XY]jwzyvux{whrƒscu{wuvtuvvvxyvtuuwvuuuyxuwwy|sl}—œ¥ª¬¶´²ÅÛ©ÄÒ®§Ëêîêꀀ€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€_š§•‘‰~}}†Œ‡€~~}}~}}~{}€‚}‚~š¶³±°«©ª§¤¦ ŸŸ™œ˜–””””’•™•–š”’›™’——šžž›ž£¥¤¥§«­­¬±¯´·ºº´´Å¸•„Ž““”šš˜› ž¥¥£¢£¤£¢¢ž¤¡ž¤«¬­¬±ÆàÝÉÉÐÏÄÅÈÀ½À¼»½½º¹³ª®¶¹¹µ²²²°·²°µ·²­««²±±·¶´¹´¯²¸»ÁÄ¿·Ã§q\ee[Z[WV\]Z\YYW[eigcd[ZXNIJF9AJXgkjkiorturqvxtqtsvzlSB_©ÛééÞǸ¿ÎÓÕÙçëíåêíÚÖæäÞÜ®‰²ÞÔÊÒÔÐÑÓÑÎÐÎÎÌÐÓÌÈÒÔÓÔÕÍÊÒÑËÌÏÏÏÒÑÕÒÍËÍÑÙº†s}|}‰‚„®ÎÊÅÈÇÄÆÊÅÇËÌÉÍßÒ›tmc\z£»Áƹ™¡¹Å¹„akpfilnpmlmkghjmjhgfiimnmkihjmnlkiffiilkfdfd_R2! U[2$%!#&(+*,+(()& N…‡{{|~€‚„hEIS;+30/37328;@FEHNQSO610,(+,%(5628=?D@-.8.%(*290 5SSMcvt\Oyªž`I£‡hlre`fd^fqxvqsre`jupopspllpmnnlnqqmrg_t|ˆ²Ä´¼ÉÅÃÀÅÊÃÃÄÿ¿ÂÄÇÇÆÃÃÄÅÅÇÀ½ÀÃÃÄÅÅÇÇÅÅÆÆÄÄÉÇÁÅËÊÅÃÇÈÂÀÒÊ–qpusssmmokmmghorg]XY^n|}ywwyzugs…vhx|ustuuuuvxxtwxuqtyxqvxvwuw{tj}˜™¡¦ª··³¿Ö®ÊÒ¯©Ëèìê쀀€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€aœ©—’‰‚†„€‚€ƒ€|}€€~}~}ƒ€~…ƒ€¸µ¸µ¯®¯«¨«ª¤£¡š—›š™™˜•–˜““–›š“•—™˜—™Ÿ¤žŸ¡¥©«©§§¨®¯±¶¶»¾µ•…•––”™™’–¦¨§¦§©©£¡¦¥¤¦¥¥©­©¼áãËÅËÇ¿ÇËÂÃÇ¿»¿À¼º¶²¹¸·¹»·±²··´³µ²¬¬±µ¶²®±·¸´´²¸»¶·»¹¸¸—hXbcZ[^[VUTU\QXY]imgdc]WLCMWQAK^ihhkkgjkorqs{qrswrqteOEm·àæäÛÈ·¿ÎÎÊÒéêìãéìÙÕäéÞÚ°‰±ÞÙÑÔÓÒÔÔÑÐÎÒÓÑÔÒÊÍ×ÔÎÐ×ÔÍÏÑÑÌÍÕÔÎÏÖØÖÎÊÍؼ…t~}Ž‡Š«ÏÍÆÆÁ¿ÉÇÇÍÍÊËÑÞÔ›qi^Yz¦¿Äɾ›ž²¾¼‰fnskkhjooljfeihkjjeadfkllmljjmmkkjggjjikhb`mkO(6hW,$#!$(()--+*-.&8mŠzz}}€„|dILSKKOLOUYTYaY\TWc]_cJ+(((%*,%8[fahhdmU./?,((080"7TRK^rq[P|®£`K‚¦‡gmvfcic\fptvsvrc^jwtpmmnnprplknqonopfd}ƒ‰±Å¹¾ËÈÁ¾ÂÂýÁÈÁ¼ÃÉÉ¿¼ÃÅÁ¾¾ÆÃÀÂÆÆÄÅÄÆÄÂÇÍÊÁÂÇÉÇÇÉÈÇÂÂÃÂÂÒÆ‘rqusrrmnqlnoikojg_[Z]kvtz|vuzsaothwxpsxwttxyzzywwwvvwxxuxwxtuztj~› œ£ª¯³¹¶¿ÔÄ°ÉÏ­§Èäèç뀀€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€_œ«•Œ„~€ƒ‡…€~~~~~~|||‚‡…€~{¡»¹µ¹¶­­³°§­¥¦¨¤¡££š—–—•’‘’—–’“˜š›•–•“•šžžžž£¤ ¢¨©¦¡¦¬°±²ºÀ²•Š’˜››–›œœ›”˜©­«¨§©¨£Ÿ ££¡¡£¥©ª«ÈëãËËÐÅÄÇÅ»½ÄÂÂÇÉÉǽ¶¹¼½¼»¹¶´³°·²´Âº­´À¹µ··³²µ¹»¿½¸¹»¶¿¯‘q]]`^ZXY\\XVXZTT\fljdaWLA=DKHMallnponklkjmrtswttttwtiIHÎâÝäÝØÎÔÝÝÙÚëéñêëêØ×èåÝܱ‰®ÙÒËÓÑÍÒÔÓÕÏÒÑÒ×ÕÎÎÕÐÒÔÒÔÕÑËÎÏÍÏÔÕÓËÓÔËÈÏÛµ…v}†…ˆ¨ÌÊÃÃÅÆÈÇÅÏÕÏÉÎÞÒ›qjbZyª½¼Å¼š ²Á¸†empjlfnopnjgffijllifhkklolfjmijmmgegklmnedcmoJ$ A`>&($#'('+,..-*&# !Y…ƒxy€ƒ~sYOPPNEOR[YZ`[Z[ZY[X]_K*'+%")'&KjogfjroC0A@').*06-6TQKaws[P{­ bL§Šhoriagd^gqvrsutfanvspllorrrrponoonlte^w„‰«Ã·¿ÏÉÂÁÅ¿ÂÇÄÀÁÅ¿¿ÁÆÇÃÂÃÅÆÅÂÀÃÆÅÇÅÅÆÄÄÄÂÁÅÈÈÉÇÅÇÂÅľ»ÊĘqturqrpmnnknolopg^XY^juyzxwwvsiw‰wftyxywyxursutqtuuwyutyvwvxwx|soz–¡ž£ª²±¶´¿ÙÆ«Àи«Æåíî뀀€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€d¤°“‹Š„ƒƒŠ…|z{~‚ƒƒ‚†„~…ƒ‚…€‚ž··´º¹²°¶¶°¨§ª«¦¤£Ÿžžž™••˜“•–‹”œš••““––žž£¤ ¡§¨¡£§¥¨°±²º¯–Ž”–š˜š¡”›®«¦¦©§¦¥££§§¦£¢¦¯¬²ÌèàÎÎÏÅÄÇÅ¿ÂÆÁÁÉÈÂÁ¾¹·À½¼¾¼¶³µµ·³´º³«±°®®²¶¶¶·ºº´²·»º·±¶œoX\ba][[]]ZYZ^UNXikfg`RKMMMSYhkllonifhklklprrsovvox{hIU‰ÈÐÅÔàÉÇÍÎÑÕÑÕâêåèèÖÕæåÜÚ¯†¬ØÒÃÌÐÏÓÖÕÖÏÔÓÔÕÐÌÐÒÍÍÑÒÑÎËÓÓÑÐÐÒÒÑÙÖÑÌÌÒÞ»‚t‚„€‡ƒ„¨ÊÊÆÇÆÄÆÅÉÎÎÌÇÇÖÖ›nid]y¨··Ãº–Ÿ¸ËÊgoskjfmnonjhggklmmifgjnpnhddhkimmiehjknjcc^joJ#!"*;+  !"&(*--..+*)$ H„zruw{€€y_ORUTQJ?IXXXZ\[[Y\X]_L+(*'(+)0TpjkmhnbEGVB"%,*06,5SPKaws[P{¬ bK§Šhoqiagd^gqvxwvsd^lunnnpqqpopnmnpqpnsf`xƒˆ«Äº»ÇÅÁÁÇÈÀ¿ÃÄÀ½ÂÇÄÃÅÊÊÆÄÅÇÃÃÅÄÀÁÃÆÅÄÇÉÄ¿ÁÀÇÆÂÅÌÊÅÅÅÀ¼¾ÎÅ”quurqrpmllimnkopf^YY_lx|r{yvzwgt‡uewzuvxpquwurswsvwtrvyuvwvxwx{rh{™¡ ¨­®±²¯¾ØĨ¼Î¶©Åãìí退€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€g¡ª’Œ†‡€ˆ†€€„…„‚‚‚ƒƒ„€ƒ‚€~~‚Š…ƒ·¹´¼½¶³·¸´ª®³°ªª¨¢¡¡¢ ›•–š—•–Š–Ÿ•–—˜••–•’ššž›¡¢§¥©§©­­¯»®–Ž”–šŸ£œž¢— ®«¥©®«©ª¨¥©©¦¤£¨°²¸ÏæÞÌÉÇÄÃÿ¿ÈÏÊÃÈÅÁ¿º¹À¿ÀÁ¿¸·¹¸¶¶·µ°°´´µµµ·¸µ±´·±­µ·³²³¼¨vUXc`_]\\[ZZ[Y[U[noc]UNMQSWaijijjjlmkdimkkmpppuysqxtcRV„»¾¸ÎÖµµºº¿ÆÀ½ÜæãçèÖÕææÜØ«„ªØÓÅÌÐÏÐÓÕÕÖÙØÔÓÍËÐÒÎÍÐÔÑÍÍÏÒÔÒÎÌÑÖÝÖÑÏÏÑܽˆv~|…„‡®ÓÑÇÈËÇÂÆÌÎÉËÍÎÚÓ™mie_|«µµÃ»™¢»ÌÆ‹cmtiihkmnmkihiijlkhegjkmmjfdhmilmifgjkmkif_mnD # $%(-.,-,)+,(  3r†{stknrzmWIT][^XCBX]WZ^ZZZ\X\_L-*)'+)&9awhjmhmVJGH7$%*1/5,5RPJaws[P{­ aK€§Šhoqiagd^gqvvtspb[jsqqqpnmllnmmnpqqprfbyƒ†«Æ·¶ÄÇý¿Á¿¾Á¾½ÃÇÇÂÀÁÁÀÃÈËÀ»ÁÆþ¾Èý¿ÈÉÅÃÂÆÆÃÈËÇÀÅÅÁ½¿ÎÅ”qturqrpmkjhlnkopd]Z\bny{u~}y{ucq†wgrtuzyqsvvwwwvvsrrqsxzwxvxwx{rh€ž¡ «®¬µ²«ºÕÅ®Ä͵¨Ãâêë耀€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€e¥‹„z|xv{|}€}}}}}|{{„€€}{|~€‚‡Žˆƒ›µ¸¯µµ¯¬¯®ª¦«­©¤¤£  Ÿž™”“–—“‹ˆ”™’’‘‘’‘“““•˜šŸž¡¡£¨§«²¨’Œ•™›œ¡ž ¢›”š¨©¥©®­««¨ª¬©¥¥§©¬°µÍèàǾ»»½¼¸¸ÃÆ¿½Á¿½¾»µ´¸¼½¹´´¶¸³°¶º³°µ¶²µ´°²µ³­³¸¹¶´·¹»¸£šŠdU^`_][ZYXYZTZX[ee\YNKINT]ejejpoikkdbimmjlmnmvvrtvj[YSg›¾ÑÞغµº¾ÃÇÄÈÝèæëìÙ×çèÝת‚ªÙÖÉÎÓÒÏÑÒÐÒÖÓÒÓÏÉÊÓÔÑÐÓÑÏÔÓÓÒÑÏÏÑÔÔÓÔÒÍË×¹…u‡‚‚¨ÎËÃÆÏÌÈÄÇÉÅÆÎÔÜΗojd]~°º¶ÄÀž§ºÃ¸…amshhjjlmmkiijhiklighlomolcdkllmkhdfjnjoohdl_1"##*""&#&--+,+++-)%! &_…|rm`fmgOBKURW]N?N^YYZY[[]W[_M/*&&,#"@cqgimkiSF=2,,)(1/5+4RPJaxs[P{¬ aK€¦‰gnqiagd^gqvrqrrc\irusqommllonmnpqporgc{‚†«ÇµµÄÈÄ¿ÃȽ»¾ÄÄÂÂÂÇÃÁÿ¿ÃÄÀ¼¾ÃÄÄÅÉÈÅÀ¾ÅÉÆÉÉÿÁÅÆÇÂÆÅÁ¾ËÅ—quurqrpmllinnlope]YZ`mx|wwxzwqevƒwhuxwyvqssruzysuwxxyxvywxvxwxzqj‚  «®¯®±±¿×È­»Íµ¨Ãâêë耀€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€e¦¯“‹|wzwyy{|utxxyyxux{{yz|zvx}{}|{–²µ°²²®¯°®¨¥¨¨¦£¢¡¡¥ ˜–•‘“’‹‰‹‘‡‡‰Œ‹‡‰Š‹‘”‘–‘• ¡Ÿ¡Ÿ‹•›š–Ÿ£žŽ’©«ª©«®®«¨«ª¨§«¬®²¸»ÏèãÌÅÿ¼¾ÆÉúÂÀº¼¾¹´·»½¹µ´µ³±­·½´±µ²¬®­ª¬±°«°¯³®¤ª¸¸ ut‰wWWb^][YXYZZXV[`ZKGLH@BTdfgkggjklpofbinlkkmnmipvtqhTUXPg¦ØäÔ´±·¹½ÃÆÑâìéííÙÖæêßÙ«ƒ«ÛØËÐÓÑÏÒÔÑ×ØÔÏÒÐËÉÒ×ÓÍÐÎËÏÚØÖÓÒÒÒÑÐÒÓÏÊË×·†t~€†€®ÌÉÆÈÈÄÆÆÇÈÅÇÌÏØÑšqkd\|®½¶Ã¾›¤¸¾¼hmtjhgjlnmkiijjkmmjhjmllnkehmjnmjfcdkpjmjgf]C!"! (3)#%!%+-.---,(&&%##%%!"P‚}i`Xgpj\SILWXZZSEP]ZYYY[\]WZ_N-'$'-$(Nh[TRPMHH@C4*/+%'05,5SPJaws[Q{­ aJ€¦‰gnpiagd^gqvwtvug]jssqooqrqoqpnnppnmrgd{ƒ†¬Ç¼»ÈÈþÃÇú»ÃÆÃÃÅÇÅÅÇÆÀ¾¿Êļ¾ÇÊÆÃÈÉÉÄÁÅÉÅÂÇÆÂÅÈÆÂÁÆÆ¿ÌÅ—qturqrplpoloolopi_WV[iw||yy{ztj|‡qcy~tsuruvuuvvtxzxwwvuyxxwxwwzqf|˜ ¢¥¤©°¸·¼ÎƲ¿Î¶©Åãìí退€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€i¬¸¡“‚‚„‚yy|{}}||~~zx{~~{zz{~z}œ»¿µ¶¶¶¸¼¹´­°°¯°®«ª®¨¤¥¦£Ÿ™›˜””””•––“‹ŒŒ‹‡‰‰‰Ž’’’•“•›šœ ¢•”šš•š¢¥¦¡•˜­°¯ªª®¯¬«©¦¦¬®ª­¸½ÀÎâÞÌÆÅÃÅ¿ÁÈÊÇÂÈÆÂÄÄÁÁÅÄÄÃÀ½ºº¼¹ÀÆ¿¹¹µ³´´µ·¹·³®¥¥ – ˜vaZfg[U[\^]ZZ\\[XZ_^PCAC<>I^ifbgiddiklkifkmlkmnnnjlsqgZPPSOPq»èÒ±³¹¶ºÆÍÕåîêìë×ÔäëàÚ¬„¬ÛØÏÒÒÏÏÓÔÓÐÓÐÎÐÎÊÌÍÓÏËÐÑÍÍÒÓÓÒÓÔÕÕ×ÓÏÊËÐܺ‹v||{†‚§ÉÊÈÊÊÆÆÈÎÎËÑÐÌÚÚŸqke]x¦½µÀ¹’ž¸ÃÃ’fismigkmnmkihiklmlhefiejlhhjkioligddjqrkeieJ-"%"""$ "#"&+.+)*.-**-('##-5/ F~ƒhXW_\T]^RP[acd^[`]USQX[]^VY_O,#%*.)5][><@:.&3HF.$+'#%17-6TQKaws[P{¬ `J¦ˆgmpiagd^gqvxttte]kwvrooprrprpoooonlshc{ƒˆ¬Ç¸¸ÅÈÆÃÅÅƼ»ÃÄÀÃÊÆÃÁÃÃÁÂÆÇÿÂÇÃÀÄÈÆÃÅÊÉÅÄÈÈÄÂÄÇÄÂÄÅÃÁÂÑÆ“quurqrpmrqmpplooe]YZ_juwuyutxsctŠsbv{sruwyyusuvtsruwttutxywyvwypf{™¤¢—Œ‘—«µ¸ÅÀ±¾Î¶ªÅãìí退€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€m¯¼¦¡}ƒƒ„ƒ‡†}~†„‡‡ˆŠ……ƒ‚ƒ……ƒ‚‚„}}š¸¼³¶¸¸¹º¹¶²·³¯µ¸´±´¯¬­®«¨§¥¤£  £ ˜—™™–”’‹ŒŽŒŒ’œ•˜š›™—ž¥¥–Ž”™›™œ¥©¥Ÿš ¬°¬«¬­¬«©©ª¬¯®¨«µÁÂÑæäÎÄÃÄÅÃÂÆÉÅ¿ÄÇÇÇÉÃÁÆÌËÉÅÂÀÂÅÇÂÄÉÇÂÀ½ºº¼ÁÀº²­—‹†~rsuj[a[OQWWSY[\[[]]ZX]WIDHKIJYcfigee`bflnjghjlmkloqpookkj[NQOJVWQØÙ¸¶¼½ÃÌÐÙçïéëéÖÕåèÞÙ¬„«ÚÖÎÓÒÐÔÕÑÏÐÒÓÕ×ÎÇËÔÖÓÎÐÏËÊÏËËÏÕ×ÕÓØÑÍÍÎÑÝÀ‡t}€€‡{ŸÈÊÃÅÊÇÃÅÎÍÉÐÏÌÛÛŸrke]x¦Â¶À¸‘žºÅÀagtlhimnomkhggkklkgcdgkmlgdehklkjjgehntigl_=%()$'(! !#'*,/1.-.-)''''#"%!'26#:s…fV]WBO\RIT\clhcb]WQJIW[^^VX_O.#(,*);`hZ`f\J5*IK3''$')28. 7USMaws[P{­ `J¥ˆfmpiagd^gqvwrrrd\jvwtpnoopoqonnppomugbz…Š­Æ¹·ÄÇÇÅÈÈÁ»¿ÇÆÀÁÆÄÁÁÄÅÄÆÉŽ·¿ÊÇÁÅÆÆÅÇÉÅÁÄËÉÅÃÄÃÂÂÄÅÄÂÃÑÆ“qturqrpmpploolopc\Z]bluwtvsszudsŠxhwzuutvvtqrvxvsvvsqvzwyywxwwypj€œ¦¡}€…š¤£«ª©Á͵¨Ãâêë耀€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€k´Â¨£˜‡†„‚€‰‰}{Š‡ˆŒŒ‰‡‰Œ…‚…‰ˆ……††‰~™¶º³·º¹·¶µ´¶»³«²¼ºµ´²°±°¬«¬¤§­¨ž¤¦š™››™˜˜—”‘“‘‘Ž‘’““•™˜œ Ž‹•š›šŸ ¤¤›•¨¯ª®³¯¬«¨¥¬¯¯¯¯²¸ÆÁÌæåÌÄÊÆÿÁÈËÆÁ½ÅÇÆÇÿÁÂËÎÉÃÃÆÇÄ¿½ÁÅÃÁÁ¿¼½¿¶£’‰€vk`Y\^YQZa[PPUUTXZYZ\[X[]M=@DBBWde_biiediihlmjkmnlklqrqnjkj^TQSQNRUHZ›ÉĶ»ÈÐÐÏÜéñêëê××èæÜØ«ƒªØÓÍÓÐÎÕÖÑÏÓÐÏÔÖÌÈÐÔÕÓÐÎÎÏÒÒÏÐÔÔÐÎÐÑÌÎÔÒÌÙŠu{}}†€~§ÌÌÅÅÆÄÄÇÌÌÆÈËÍÚÔsld\{­ÉºÂ¼—¤¼Á¼ŒenwidknopnjgfflmnmifgklknlddkmiikmjfgllejkU5$'("##!" ##%,.-0/-+,--*(()'!"#&#!$6,.d|^Sg]>IP>Ea^Wa_aZNTZOQW[^^VX^O2%*,$#8Y[bgkjk`A:\U9'&.(39/!8VSMaws[P{¬ `I¥ˆfmoiagd^gqvzuvwf[grpqrrqonnommnpqqovg`y†‹­Åº¹ÅÇþÀÃÁ½¿ÄÿÂÆÄÂÂÅÅÃÃÅɺ¿ÉÈÃÇÃÀÃÇÈÉÆÀÂËËÄÃÆÅÁÁÆÈÄÂÎÅ–qturqrpmnnknoloph^XX^lz}vsy{sdq’}kyztw}wttwwtuyxwvwwsrwyzwyvwypi€œ¥¡‚ˆ›§¤¥Ÿ¢Á˳§Âàéê怀€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€l¸È­§š…„‡ƒŠ†{ˆ‡‡‹‹‡‰……‰Š†„†‡‚†‡„‚•³»³´¶···¶µ¸·³²··µ¶¹µ¯¯µ´­«¨««¥¡¡¡  Ÿ›™š™–”˜•Š‹’Š˜›—•›š‹•››žŸ¡¦§ ›¡­««®®ªª®®­­­®¯³µ´¼ÂÕëáÆÂËÊÃÃÆÄÅÇÃÃÈÈÇÍǺ»ÄÈÆÃÆÇÅƾÃÌÊÀÁÉÈÇÈȵš€pula^^XX_a\[ZYWVTT\WW[\[\\WWIBNTRVakkeeedddfikkjjjfkokhnpijmj^SPSUUWRV[Se’¿µ¹ÈÑØÜØæêëîçÔÒçäÛر…¨ÜÕËÐÎËÐÏÌÍÎÏÎÓÔËÉÓÓÏÐÑÌÏ×ØÒÑÑÓÒÑÑÓÐÐÔ×ÔÑÜÁ‹w}{y„„†¨ÍÐÆÅÄÈÉÁÄÌÍÊÇÏãјokcYy®À­»¾™¡ºÈÁˆbowgdhlikpnggmlhlnihjgnlkjkkllkjlkefjkhiplN."%$! &&!%'%##'+--.1-,.,)*.(*(""(*)& #% *.*^u^MPK<DLLXie`cdde\PPQHNPQRLQZK-$((&*+.8.;[mkhgM942%#+)09/5VSJ]wv]Py¬¡cI~¨‹fmrgcgc^dmwxrste[gqstrppqolrpnmlmnoqjfˆ‡¨Ç½¿ÇŽ¾ÄÈþ¾ÄÅÀÁÊƼ¿ÇÆÃÄÃËÇÁÀÄÃÁÁÀÃÅÇÇÇÅÄÇÇÅÄÅÅÃÀ¾ÅËŽÍÉ—orrpoqplmpnomkooj_YZanyzyxvw|wdv}k{wvztsvwusttuptzwuurswxzxwzqe¡ª£›‘œ©¯´·°´Èʺ´Çáêéꀀ€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€o³Àª§™†„~„…ƒ‡ˆ„‡‚‚†‰Šˆƒ†Š‡ƒ…‡…„€ˆ‰‚˜´¶°±²³³³³²¶¶²±´´´¶»·°°³±®²«¬«©¨¦¤ ¢¤¢ŸŸ ŸœœŸœ˜–‘Ž’ŽŠŽ”“‘–›˜•••žžž¢¦¡™žª²°®®¯®«ª©ª««¬°²°³ÁØëáËÇÊÆÁÈÐËÅÈÊÃÀÅÈËÌÆÂÈÇÄÄÆÇÇÇÊÇÈÉÄÁÄÊÉõŽv~sa]\]Z[]^ZZXWUTSRZWVYZXY]QD=BNZ_^cghgfdbfbehjkkllimpmkqqhjcZTQRTVVXUWZTYo¤¿Â½ËÒÓÞçéêìçÔÔéäÚزƒ¢ÑɾÈÊÆÅÄÂÂÆÇÇÈÉÈÅÄÏÎÎÏÐÓÒÎÑÌÌÓÕÐÏÓÐÐÒÓÔÕݸ…s|}{„€€¤ÌÑÈÈÅÅÇÃÇÏÒÐÍÏÜË—qle\{¬Ä²º½œŸ·ÎÆcougejlikpnggmlilmgehghmmhfikkkkmlggklkmm^>'!"!! %)'')'%$'*,.0-//-++*))*)%#'+,)&  '& '/+\t]A766@YYXa[TWda`^ZVPINONLFMWJ0.2*%.-)-)&?fpjo\:'(''++09/5VSJ]wu]Pz¬¡`L¦ˆhopgcgc^dmvyrquiYdurqppqponrrqpooppsic|Š¬Ä¹¾ÄÀ»¾ÁžÁÅƽÀÈÈÃÂÃÁÂÆÅÅÁ¾ÂÆÿÀÄÄÁ¿ÂÇÈÆÃÄÄÄÄÆÅÿÆËļÌÇ•ossqprpmnpllkkqsc[XZ`jstwxxx{ucwŒ|hu{tpruwvvxuqtswutwvsrxwtwwy{qi ©¥£¡¦¬±¯²¼»¸¿Æ»¿Õêî退€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€r¶Ä¯­ ‰„€…ˆˆŠˆ†ˆ‰…ƒ…‡‹Œ‡‹‰†…†‚ˆ‡‡‡‰ˆ˜²¸´³³²³³´µ³µ´²´³³¶»·³´µ°¯¶µ²±²²­¨¤«©¦£££Ÿ››œ›™™“Œ‰‘‹‰Ž‘‘–™”‘‘“˜š™œœ›Ÿ§¨«ª¨«©¦¨£¨¬«®³µ´³½ÕëãËÈÌÇÁÆÏÌÇÇÅÁ½ÄÇÆÊÉÆÉÈÆÄÄÆÉÈÎÈÅÈÈÃÆÏâ‹ur…€fTYZZ]^\\[ZYWVTSRWUXXTWZUNA<CQdkabdfefccghhihhhjljjmnkjkh]UPRVURQTTTUXZXW{¸Ç·ÃÏÐÜèéèêæÖÖìåÚز„¢ÓËÉÎÍÈÇËÊÆÂÄÉËÇÃÄÄÇÉÊÌÏÌÈÆÍÊÉËÍÊÆÅÇÇÆÅÊÎÒ¥‚r‚†€}¢ÌÎÄÇÃÃÇËÊÌËËÌÎÙÌ™qib]±½µ½»Ÿ¢µÈËemtffkljlomghlmkoohehihmnifhklkikidejkjmn_@*$$$!!%+*&)%%'+.---.-./-(')'''&&)+,'#!%-(&0!/L^WK?50<XOAOWW[^[SPWZUOUWWVPU^P1)-+)-)&+, -[mgkg="+((-09/5VSJ^wu]Qz¬ ^N„£†krmfchb]envvwtsi\euzuqppopspqqqqpoosi`xŒ–°À»¾ÄÄÆÇÃÿ¾ÁÅÄÁÂÆÇÅÄÃÂÂÅÇÀ»º¿ÅÁ¾ÂÇÂÀÃÆÆÇÉÇÇÅÁÀÂÃÃÀÆÊûÊÅ’pstqqrqnmoklklrtaZXY_ly}xttw|r_t’€gqyvuvvtuxyxvutyxvwrqyyxsuvx|sl|“›œž›œŸ£  ©«ª­®³¯³Ïìï怀€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€s¿Í±®¤Œ‡†…‰Š†‡…‡‡ˆŠŠ‰Œˆ‡ˆˆƒ…‰Š‰……‹Œ—¯·¶µ³³²´µ¶µ·µ²²²´¹¸¸¶·¹µ±´´°¯±±¬©©¬ª§¦¨¨¥¢žŸŸŸžš”‘Œ‰‘Ž“—“Ž’š™–•›£¦¤¢¨©¨¨¨ª­°¯«®¼ÈÈÁÆÉÛïãËÇÊÇÆËÍÈÈËÈÃÆÉÆÅÄÀÄÈÉÊÅÀÄÈÅÆÃÆÉÇÉÍ̧‚sxƒŠtZOYYX^`[[]\[ZXWUUXX^\T\]MIB?FWfha_decbefefgghhikmmjjkjlh^RPOSUTSR[VUUTYZP]žÆÃÅÓÙ×ééçéæ×ØîèÛÖ°ƒ¤×ÔÉÑ×ÕÑÓÔÒÐÍÎÑÒÏÏÑÑÎÏÖÕÏÌÏÒÑÏÍÍËÈÄÆÅÅÆÈËÍ£|ly}zyw¡ËËÀÈÄÁÅÄÅÈÉËÏÑÚ͘oia\·½¸º®“¨½ÅÈemrggklklolhgkomonhfikmkijjijlomljdfmojsuP/)0)$%),+&&('(+-,-.0-,.,&'+%&&()+,+$""#00+.0FSTN?-#<TJ>N_^Y^aSIS]VOUY\^W[`P.$',5@7+(+#.SlljhD&&-'$.09/5VSJ`xt]Q{«ž]O„£…krmfdib]enuvxvsg]huvsppponnmnoppomlqi`wŽ›´¿¼½ÂÆÈ»Âż»ÃÅÂÂÆÆÂÀÄÆÂÃÊÅÀ¼ÀÃÀ½ÁÅÂÄÉÉÅÅÈÈÇÄÁÁÄÅÅÂÆÉ»ÊÄqttrqsrnlnlnnmqpg`\\_kywxyz|tbv‘}ivywvtzsqrrtvsvssxzxwxvxvxtv{tl{‘˜™›˜šž™—š™˜œ  œ«Ñìë倀€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€tÁί©¡Ž…‰…‚†Œˆ‚ƒ…‰ˆ‡‹Š††‡ˆˆ‰…„††††˜°²²±°®¯¯±±®´¶µ¶³°³¶¹·µ¹¹µ²²¯¯±¯­¯´³°­¬«¨¥£¦¦§¥¢ž›”‘ŽŽ‘Œ”‘ŽŽŽ’’•–—œ¢£Ÿ¤£¥£¢¥¨¦®«¤¦¶ÄÆÄÄÈØèßÍÊÇÆÄÇÉÇÊÎ˽ÅÈÆÊÈÃÊÉÇÉÇÂÂÄÂÁÁÈÇÆÏ̵ˆ~|z‚‚jWS[ZW]_\\]]\ZYWVUVVZZXXRD?8=P[]`e_ababdfecehiiiiinmkjnrfOMQTTTUUSVOSWQUZUS‰ÃÕÏÕàßêéæéçØÙîèÙÔ¯‚¢ÖÔËÒÙØÓÑÑÏÓÓÎÌÑÓÔØÛÐÑØÙÕÔÑØÔÓÔÓÐÐÓÒÐÓÕÔÐ׶€nyzy€|{¡ÊÊÂÍÉÂÂÃÇÌÌÎÎÏØÌ•opg[~¹Ä·¹¬¬ÇÅÃŒckshgillnnlhhjoljiffilmhfgjhhijikiddjkfyŽ…Z2',+%%()**&)))+,+,.-/.,*)))((),-.--$&#%/03,&FZQ=,%'8SYQQSOCT]UMXZPIRUYZTX_O-+..Hi\8+.&/TlliiJ-(,'%.09/5VSJaxt\R{«_M‚¤‡ipoeeia\fouytvxg[hvqrrrsutrlmopponmpjbxŽœ¶À»¿ÆÆÅ¿¿ÌÆ¿ÀÆýÀÅÇÁ¾ÂÆÃÃÈÆÄÂÃÆÃÁÃÄÅÆÄÄÅÅÃÆÅÄÄÈÉÇÃÃÆÈ»ËÄŽqturrsrnnolnnmpnc^\]`itxqz~xwrbuyizysvtquvvvsqvwuxwrtxvtwxzwvzrk~–˜“’“›ž–‘•›™—š§¢›¬Ôëé瀀€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€s¾Î´®¢Œ‰ˆ†ˆŠ†‚……‚†ŒŠ‡ˆ‰ˆ…ƒ‰‹…‚‡†‡ˆ‡‡™²·°°¯®®®®¯«°²³´±­®µ¹µ±µ¹·³¹¸¶´±¯²¶­««¬«©¨ª«©©§ ŸŸœ›•‘ŽŒ’Œ““”•—šœ››ž¢¦¦¨§£¦©¥£§¤¢¥©¬±²³ÈãÝÌÊÊÇ¿ÁÈÉËËƽÁÅÆÉÉÄÇÍÅÃÇÇÂÀÁÆÅÆÅÆʸ—€~x^RW[ZY[]\^\[ZYWUTSUVTX[NAC;;JYZZ`ca]^cbacffggfffghgglpi_VNNRTSTVTQHGRXPNSUHn­ÕÑÉÕãëêçêéÙØëãÕÓ²‡§ÚÙÔÕÔÒÑÑÑÑÐÓÑÐÕÒÒÙÖÑÔØÕ×ØÒÓÑÑÐÐÐÑÔÓÒÖØÓÎÚ¿Šw€~‡„…¦ÌÌÄÍËÇÆÄÆÊÊÊÌÏÜЖopfY~½Ë·¼·™°ÈÈÀ‹cjrigilmnnkihilkkljihjkkhhhjjiijnoihjjjwsS8*#) */*+*))+,,*+-+,./.*()))*--++,'&**+,6*5?6,'&(6R\P?=FIJOMQZUIHNONMHQ]Q1)*6ZlE/0"/[ngkjF)&*(),09/5VSJcys\R|ªœaK€¦‰hnpeeja[gotwuwwe[juqrpnorrooopqqqqppjczœµÀ¸¾ÄÂÁÂÂÇÂÀÄÇ¿ÂÄÅÂÁÃÅÄÃÁÆÄÁÁÃÂÁÄÇÆÄÄÅÆÄÂÁÀ¿ÁÅÈÄ¿ÃÆǽÍÆpstrqsqnrqkkllpoc\YZ_jvyzyy|vbvŽvfxwsxyxsoptvvvvrpruwwvuvuyyzzor’”‘“‘–¡š˜œ›•”™¡¦¢±Øíè倀€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€tÀÑ·³¨’Š‡ŠŠ‰‰†„‰‡ƒƒ†††ˆ‡„…†‰‡†ˆ‡‡ˆˆ‡—³½²²³²²±°°³±«¨«­¯³²·µ±´¶µ´¸¸¶²°°°°¯®¯°¬¨©­°««ª¦¥¥¡ž¢”“’Ž‘Ž‘˜œ™ŸžŸ žœ¢ª§ª¬©¨©¨¥¤¦¤¥«ª©®¯¬ÆçßÅÄÊÅÃÊÎÊÈËʼ½ÃÅÇÈÅÅÍÆÂÄÈÄÁÃÉÊÅÄÈ·šŒ…tyƒnVNXUX[[[]]\[ZYWUTTYYYZUG@C=KY[Y\`_b[]ba`cecddddfhjcdlkWFHRSRPNOQSSMPXXLBBEEW™ÚàÐÙììêèìêÚÖèáÒѲ‰©ÞßËÓÓÏÐÓÕÙÑÏÍÒ×ÔÏÐÎÐÓÓÑÓÖÕÑÓÑÎÎÒÒÏÍÎÑÏËÊÙ½Šw€€‡……©ÍÎÄÉÉÊËÈÇËÌÌÊÌØÔ™qncW€¿ÏÀ¹›­ÆÍÅdiphijlnomkhhhjlnomighlljijjkkiilkffiikkeQ8*$&K\6%,-+))''+0,*-20*(,**+-*''*&$+)(+2*$($&)$ :OOA;@PZMKJRZTKLGGDC?JYO5!":bzeE)&$=epjpb8"),()*09/5VSJdys[R|ªšaK€¦‰hopdfj`[gpttxytd]jtutsrrqnlppoopqrrskc|’´¿»¿ÅÃÀÂÀ½Á½ÂÇÃÂÆÇÄÁÄÇÅÄÄÀÇÃÀÀÁ¾½ÁÊÃÂÈÉÄÂÅÃÂÁÂÇËÉÅÃÅƾÐÈ‘orspprpmqpjjlmqpj`YY_kwz|tsyu^r{gu{utwyuvvrsxxsstxxsquwwtwxy{phuŠ’Ž’•’Ž•–Ÿ ´Þñç €€€€€€€€€€€€€€€€€€€€€€€€€€€€€€wÄЯ­¨’„„‡†…‡…„‡‡‰‰‰Œ‹ˆˆŒ„„Š‰†„ƒ~†‡€~•³¸²²´´´²°¯²±¬ª¯°¯°­´¶¶¶³±´³´³²µ¸·³³³¶·³®±·°©©««¬«¤žŸžœ•’“ŽŽ‘”™Ÿ¢œŸ£¥«­©¨®®¥©©¥¥ª©¨°­¯ÉçÚÂÂÆÁÂÈÊÇÌÏÉ¿ÁÅÆÇÇÄÆÊÊÄÁÅÇÅÅÆÍÅÆȤ…kx…wdWSUPV][Z]\^^\[YXVVSRZU@=A8<RZX[YXaa]^`^adb`cgihfdbflk[GDLPLMPSRMLOQW[TI?=@88ÕäÔÙãìëéíìÚÕæäÓͬ¡ØÚÌÕÓÏÕØÖÖÒÔÔÑÑÔÔÐÑÐÎÐÓÔÕØÕÓÑÓÕÕÓÒÏÓÔÎËÐàÁŒzƒ„‚‹‡‡¥ÊÏÇÇÆÉÉÊÈÌÏÑÎÏÜЛtpdZ»ÆÆ˼ž®¿ÆÊ“fhnhjlloomjihgkmmkhdejnhfjkhhknlkhcelojmmZ7 "#&z•I+,+*)('*/+-..-,,---./+''+"#(&&.-*!*340/.067F@<IPOKCCDLVWQMIJJJGQ_T6#%:_w`>,#2UijiiV+1/%&)09/5VSJdys[R|ªš`L¦ˆhopdfj`[gpttxwtgZewwsoonmmoonmlmnprvja|”ž³½¹¼ÇÆ¿ÀÃÇĽÂÉþÅËÆ¿ÂÈÄÂÆÇÀ½¾ÄÇÃÁÆÆÃÂÅÄÂÂÆÄÄÄÄÆÇÄÀÂÄÆ¿ÒÊ“orrpoqplmmjmoorod[WZboxytz{xzuaqou~xsxyupqwxvwxxwvuttuvxvwtu{uiŸ¡–”““•—”œœš³âòç䀀€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€uÅÔ³°¬•†ƒŠ‹‰‹Š‡‡Ž‹‰Žˆ†Œˆƒ€‚…ƒ‡††˜²¹··¶µ´´³²°¯®°³³±­¬³³­°º¹¯·¶²°²¶·µ··¸¶°¯³¶¯°®­¯«¦§¥¡¡¢œ—˜œš–Š”››˜™œ¥£™¨°¬ª«©¦§«¦¨§§ª««­­µËá×½»ÄÂÅËÈÄÎÓǼÇÉÄÇÌËÊÌÂÃÊÌÈÆÅÃÊÆÕŘwiyˆqYXZXYZYWWY[Z[[YZZVQW[XF8=HJHS\^[[]^^bb`aeebfeddegfehjWCDGFKKJKNPQPNKYZQKC<?07v»Æ»ÁÊÚëêêçÙÚäÝØÒ¨‚ªÞØÑ×ÖÒÒÓÕ×ØØØÖÒÐÑÒÒÑÐÑÔÖÖÖÕÔÓÒÓÔÔÑÐÕÖØÏÕâÈz€~ˆ†‡£ÐÔÇÇÉÍÌÆÎÑÉÇÍÑÚјljfZx²Á¿ÊŧÂÇÏ“ejqffhjnonlecikllllkhfjklkfdgmnljiijkkijjjWB:,#3ˆŽ>3/*))()*&+..--..,1/0+$(+#%)&"&-+' "DJFEEMTA4;@>>GKDEGBJZQGUTMMWWY`V1(*4QkT-1:Xnigjb?+&-+'*,9<0!9XUMdxs]Rw§œ]L€¤Šjoqgcib[frwqswtb[hptqopqonnlpqlilppxi`~•›²Á¼ÀÇž¼½Ä¼¼¿ÃÂÀÃÉÇÂÁÆÇÂÁÃÄÀÁÄÃÃÅÃÂÄÅÄÃÃÅÈÃÂÃÃÂÂÅÅÄÃÃÁ½ÎÈ–rqrsspoovkgnrnnse\[VXn{zuyxtyu_s¡˜qr{xustssuwwtrtuvuuvvvryxwsw}qbÑß¿ÈÄ»¼Ãø´¶´²°¶Íåîê怀€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€sÇÚºµ­–ˆ‹Œˆ‰Š‰Š‰‹‹ŒŒ‰ˆˆ‡‚€„†…ƒ„‡„„›·¿²´³²±³³±¯²´²°°¯­°¯®®±´µ´³µ¶µ¶¸¸¶µ´²²³²°¯®°¯¯²±­®®¨¦¦¤¢ œ›“Š—ššž £œŸ¥ž¢¯®«©«¬¬ªªª«¨¦«±²²³µÉåÚ½»ÇÁÁÇÇÃÈËÁ»ÅÊÊÉÈÆÈÉÃÆÎÌÉÈÈÆËÎÒ´Šˆqr‡oVRXYXXY[[YWZ\]\[XTQWZSFCGNUYXVVVWYZZ]^\]`a^``acb`djkT=9BGFFLOSSPNNORUPKJC<?6C}·»±ºÅÜêéêèÛÛäßÙÓªƒ«ÞØÇÑÕÕÕÕÓÒÕÔÓÓÑÑÐÐÓÒÒÓÔÕÖÖÑÓÓÒÑÒÓÒÌÓÕÙÐÔÝÁ{€~ˆ…†¥ÏÓÊÇÃÄÃÈËÍÇÅÇÌØјljfZx²ÒÂÁ¾œªÆÌΓelsiilnmjjkhfjlmljgghjklkhfghgmljihijljkkgiyk:6ŠC!.*()*')+*//-,-.,(,,/+"$&*/(#&'$'%1GPNJNSQG5.-342;JCAAP\QJV[ROYY[]N3,+):\e`[fmhkxhA/)*.*%&)7:.7VSLdxs^Qx§œ^N‚¥‹kprgcib[frwyy{wdYbgmtunmrqikoqnlnonvja|“œ³À¼ÁÈÅÀÀÀÅÂÁ¿½ÂÉÇËÊÅÂÃÃÁÄÃÃÄÄÁ¾½ÃƾÃÇÅÄÈÃÂÄÇÊËÈÅÇÉùÅÁ‘qrsrrrpnsomnmklpd\[WZnzyuxwu|y^oªŸqmwtrvutstvvtrptwvttwzyvqvxz|ne×êÓ×áÝÞÜÞÞØØÜÚÙÖÙäîîç䀀€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€yÈÖ·µ°˜ˆ‡‹‰…‡ˆ††“’ŽŒ„…†…‡Š‹Š‚„Š†ƒ™¶¾±³³±²³´²¸·³°°°®«±­­¯±±²´¶µ³±³µ´³²´²±¶¶³³°±°°²°¬¬«¨¦¢žžŸžœ”‹Œ•—˜œ¦¬¡Ÿ¤ž ®²±°¯±²®©¨«¨§®´´²¶³ÄÞÙ½ºÁÄÂÇÈÄÅÇÁ½ÂÆÈÊÅÃÆÉÃÅÇÄÁÅÈÆÄËÁ›†ˆ…wyŠ‹mTU\WWXZ\[XTUWZ\\ZXXWTKCDHOW]WTUXXYZ[]^\^`a__`bccdefR=8?CGMKHJMPQPNLTOHFFA?ECNz®Á¾ÀÇÞéæêëÞÝäáÚÓª„ªÝØÍÓÕÑÒÓÔÕ×ÔÒÑÑÑÏÍÑÓÕÕÖÕÕÕÓÓÓÓÖ×ÓÏÍÒÔ×ÎÑÙ¼|ƒ‚‡„…¤ÉÌÅÆÂÈÌÊÊÎÍÎÎÒáÒ™ljfZx²Æ¼ÅÄž§ÆÓÉŽbirhhkijkmpjehjlmkfdgkimnjedffkkkigfilnjk_eˆx5)`}L%+((**&&++(-0.++-/+,.) "-2($**!%%  ';@>78605=1-6?AGPE?FX^PJQYQOXZ[\H/+/*.HbrmlmmiZB-.0/,)&&+58,6URKdxt]Rw§œ`Oƒ¥Œkqsgcib[frwywwtd[gnmqsommmkjnqpoonltkbz‘´¾¸¿ÈÆÃÅÅÆÁÀÂÄÃÁÃÈÇÆÆÄÄÂÀ¿ÀÁ¿ÀÄ¿ÂÁÅÁ¿ÇÊÅÂÃÄÆÄ¿ÀÄÇÄÆÈ·þŽotuppsrmopokjlnmd[[X\oyxzytqzy`qª ojxsqyusstvwwvutstwxwuwutzxuysdÕçÒÙåàßÜßáàááÝâáåëíëé耀€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€tÇظ°¨•†Šˆ†ŠŒŠŠ‘’†‰Šƒ„ƒ„‡‰†‚€‚Š‡—´½·µµ¶¶´´µ³²±³³³²²¯¯¯¯°±±±´³²°¯¯°¯´¸³¯´¶µ¹¹µ´µ´®ªª«««¨¢¡¥§¢Ÿ••››š¡«§¥¢›Ÿª°³³¯¯°®©©ª¦¤©°²´·µÀÕÓÁº¹ÂÀÂÿÁÿÂÂÀÃÉÈÄÅÈÃÄÈÅÅÉÌÇÃÁ¥‹‰„~ŽŒdNUXVXZ[YWVWVWY[ZXY[YOGDDMVYXWWYZZ[]\]^^_`aa`bbbfi_Q02>C=CLJFGJNRQNJQMGCAAFNNNi¦ÐǾÑàéäêíßÜäß×Щ‚§Ú×ÎÓÔÓÓÒÒÖÔÔÔÖÖÔÐÍÏÒÖØÖÔÒÒÚ×ÓÑÑÓÐÍÓÕÒÔÊÐÙ½}…„‡ƒ…¥ËÏÊÊÆÈÊÊÉËÉËÍÓâÓ™mjfYw±ÉÇÑÈš£ÆÕÇ`hpgfihlllkggnjlnmhdfjmjjkjfefikkieehlmgi_m“x2"(>jP%#+)**%%(''*-,,-//.//("! )-+)+)$''#!'86;7/&#4IBFMIHKHIDP_[QLHMJLVX[]K/(.,'/9FV\ZSG4'(-.)&)((/48,6URLdxs^Qx§œ`O¤‰josgcib[frwywwtc[jtwsqtqmnsmnppoonmrldxžµ¼´¾ÇÅÃÆľ¾ÀÆÉÈÆÅÉ¿ÄÄ¿¾ÁÁÀ¿ÀÂÁÀÃÆÆÄÅÈÆÂÂÍËÊÇÅÆÇÅÁÁÂÀ»ÊÃnuvootsllljikppmd\ZY^owwwyvt|z_p”lo|wtxstuwxwspruuttvwvtvwzvsztg“ÖãËÒáÝààâäääãàââæëëëìꀀ€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€uÃÓ¸µ¬“…Š‹†‚‡‹‹ŒŠŒ‡ƒˆŒ†„ƒƒ‚†‰ˆ†}~ˆ‡‚š¼Ã¾¸·»º³³·±´»¼´ª¬´²±°®¯¯²´°²´²¯®°´¶·°«±´³µ¸²²·µ®«­¨§«¯¬¨¨ª¦¢˜•™š™›¢¦¨¢œ¥«¯²±­®²±««ª¨¨ª«¯·º¸ÂÔÑÀ»¹ÀÀÁ½¼ÁÅÁÁÃÂÃÊÌÉÇÀ¾ÄÊËËËÈÊκŒ†’~w~Œ~ZMWXXYZXWVWXUUVUWWZ[YKA@FQYWXZZXVX[][[[\^]^_`_^ac\J918@>=BHGIMQRPMLLOKF@AIOPNJV‘ÌŸÓâèäêíÝÚãÛÒ̦¤ØÖÈÌÑÕ×ÑÐÓÓÒÓÓÕÕÖÖÐÒÕÕÔÒÒÒÕØÙÕÒÒÕ×Ö×ÔÕÍÒÚ½Ž}‡…€‡„†©ÐÓÊËÆÇÇÍËÉÃÃÈÎÛÓšmjfYw°ÒËÍà´ÒÔÊelthgihkllkfgnmmmmifgjmkjlkhggijkhedhlmkk`n„c+!'/UM/&,(('&&($'+-,+,--/0.(!"$&)*+(&%(($$<C:FG4$'>IFY^D=NTJKX^XVSGHKQXVZ_P1%*+('(/,75-.-*,,,))-'$-58-8WTNdxt]Rw§œ`M€¡‡gmqgcib[frwvwzxeZhtvspnnnnnqonnnoopqmdwŽžµ»¶¿ÇÃÀÄÂÀÂÁÂÄÈÇÅÄÈÇÆÃÁ¿ÂÅ¿ÁÄÃÂÁÀÅÂÃÄÂÄÈÉÇÄÂÁÃÇÆÀ¾¿ÂÁ¾ÎÆ“nuvootslkiikmnnoe\ZX`ouwuyyv|w_r•ˆjt~xwtvusrsssspwyvuy||wwsuw{}maÓÝÄÍàßààßÝÝÞàâäáæêêìí怀€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€sÅÙ»²¦“Š‹†ƒ†ˆ…ƒ‹ŠˆŒŠ‚‚†‡†…‡‡‡„Š‰ƒŸÁÈÀ»º½ºµ³·µ¶¸¸±«°º¹²¯±¯­±º³±°±±°°°®³°­°³´¶µ®¯µ´¯­®±¯²µ®§§©¬¥š—››œ¢¡¡¤©¡ž¨¬³³¯¬°µ±©¬­­¯¯¬¯·¸µ¿Ó˶´»¾À¿½½ÃÅüÄÈÊÌËÉÊÄÂÅÉÈÇÆÁÉÒ²|„ƒfoŒnVTWZ[YVVWXWVRTRQSXXUJ@59JVVUVXXUTWZY\[[^_^^ac^^bZG848<<>BEFJIJLNNMLLQIB?DPRIENMj«ÍËÍãéåëëØÖâØÍÈ¥£××ËÏÓÖÕÑÏÓÔÓÑÑÑÔÖ×ÒÓÒÒÑÒÓÔÍÒÖÖÔÕÖÖÔ×ÕÙÒÖÛ»‹|‡‡ˆ†‰§ÍÎÆÈÇÊËÉÊÍÊËÎÏÙÔšmjfYv°ËÄź¹ØÖÊdlshfgikjmojehnlmnlgfhjnokggiijjjhefhkpljmtg@!''&+47/()%$&&))&#)-,*+.0-.,'! "$&),+)''"!&7?4;=+!/GRR\Q58KLIOZ[V\]RPUZ]VZaR/#(-**)/),)(,*&*))*,+&'/48,8XUNdxs^Qx§œ`M~ …flpgcib[frwtuzyeZjxutrppqolsolmoopqqlcwŽžµ»·¿ÆÀ¾ÃÅÆÂÃÃÄÄÄÄÅÃÅÆÆÅÅÄÃÁ¾ÀÄÃÄÅÃÂÁľÄÊÅÁÄÈÆÃÅÈƽÁÇŽÉÄ“otuppsrmlklolhjpg]XW`otxw{ytyv`u™ˆiuzuvrrtuwwvtswxusuxvptyvuuz}nd”ÙãÊÔãÝÕØØ×ÚÛÝâáÞâèçëê߀€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€yÆÕ¸³©•ŠŠˆŒ‹…€ŠŒ‹‰Š‡ƒ€‹ŽŒ‰ˆ‡†‹„Š‰ƒ ÄÈÀÀ¿½¼»º¹½ºµ±°²´µ¸´´µ³¯²¸³¯­°´²­©ª°³±°³¶·´±³¶µ´´±®­°±­ª®±­¥š–™˜š ¥¤¥¨¢›¥®³±®­°²­¥®®¬¬®­°·¸³»ÍDz±¶·¹º»½½½¼ºÁÆÉÉÄÃÉÌÊÌÊÆÅÈÆÊÆ ~Šsd†›ˆ`UWTWZXWWXXVTUXUPRUOD>86ATZY[TUVVVWYZ][[_`^^ada^WG849368<A@BHHFEHLNMLTGACGMK@@MLNy¹ÙÕãêçìéÓÑàÖÊÆ¥¤ÙÚÏÖ×ÔÔÒÑÑÕÓÒÒÔÔÒÏÓÒÑÑÒÓÔÔÕÖÕÓÔÕÕÓÓÕÓØÓ×Ü»ˆz‡‡‚‰ˆ‹¦ÉÍÉÌÆÆÇÃÄÊÎÒÐÏÙÔ›njfXv¯ÒÌʸ¨ÏØÆckthfhnmjikgfjmklnlfegmnmighhgkjigggijref„lB0'#%##*.+(%&&%&)&$&'(-00.-,*%!  $*/0/*(!!*,--+*-));LLSQB=JRJNTZYW]`\Z\]]W[bQ2&*-*($'(-,&&*.0,-14346626+7VTMdxt]Rw§œbO€ …fmqgcib[frwwvyxeYhwurpqpllnsnlorpoprkbxœ´»·¿Æ¾ÂÄǾÁÃÄÄÃÄÄÀ¿ÁÆÉÆÂÀÄÁÁ¾ÀÄÃÀÅÈÃÁÅÈÇÄÅÅÁ¼ÁÇÄ»ÇÁqrsrrrpnkknpmhkqi^WU`ntyvyyw~y_q¢krxrsttuvwwvvuutstvxwurxyytt{sc’ÖãÎÕÚÊÆËËÐÚÞÞáãáçêçéçÙ€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€tÄؼ´¨“Œ‰Š†„‰Š…‚ˆ‰†‡‰„€„ŠŠˆ††‰Š‰ˆ……‚¢ÇËÀÆÅ¿¾Ã¼°¶¸´´¸¸´±·»¹·¶³°±¯®¯°®¯²°±²°°´´¯¯¯³´³·¸²±­­¯°²°ª¯¬Ÿ•–™š›Ÿ¤¥©¤™£³°°°±³³¯©¨ªªª­­­°»¶ºÈƺµ±¶·ºÀÁ¼¹»½¼¾Ãľ½ÅÃÅÊÊÄÅÊËи“Š•…py–’sTRYZ]VX[[XVTTSWVPRVL;C<BQVTTUVVWXVUX]YVW[\YZ]^c[D316879:<>@CEKLLKJJMOSEDIGEC<CCNNP„ÉéãêèíçÏÎßÕÊƦ‚¦ÛÝÎÖÕÍÍÒÔÓÛÕÎÍÐÔÕÓÒÑÒÔÕÖÔÓÑÓÔÒÑÒÔÔÕÕÐÓÎÕݾ†y‡ˆƒŠ‰«ÊËÉÌÄÅÊËÆÈÌÐÍÏßÕ›njfXu¯ÖÐÓÆœ«ÌÕÇŽdnwmkmjnonleciolkkhdejmmnkfbdjlkhghiiisii„‰fMF,($#*-'&(')(##%%%')*+-.-/-(# "% %+-.0/+#*6BAKFGKHOSR\YU\[UZVZ[XWZ^a\\ZZV]cP9,.24745:9>DC?AFKJOQMMD204)5URLdxs^Qw§œcP¡†gnrgcib[frwtsxzi\hsxusrolnsqmmrtqnnrjayœ³¼¸ÁÉÅ¿¾¾ÀÀÁÁÂÃÄÄÃÂÂÃÅÃÁÀÂÃÃÂÂÅÁ¾¿ÂÄÅÅÂÀÂÅÃÅÇÇÆÈƾ»¼ÀÀ¼ÊÁŒrqrsspoojijnonnqk^VT`nszzzvt|zar¦•kpyqqwoqrtuvvvuttwyxy{yuqxyxzqbÖèØÞÛ½¾»ÁÒÜÞãÝÜæêäçæØ€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€tÄÖ¼¸¬”Š‡Šˆ…‡ˆ„‚€…ŠŠ‰ŠŒŒˆˆ‰ˆ‡ŒŒ‰Ž…|›ÄÌÇÀÂÆ¿¾º»»µ²¹¹°¬¯µ»º³­«­³«­³±­®¯±®¬­±´²®®°³³³¸·­°´µ±­°°­°®¡’–› šž§¨¢¢©ª¬²²®³µ¬£«¨¥ª¬­³µ¸ÅÌÀ²¬ª©·¾¹·¼½·µ¸ÂÇÇÀ¼ÆÆÆÂÂÆÅÇÏ˪‡„Œ‚y„‘‡nXVYXWXWXYWSRTURRTPE>>>=FU]YVXYSSYZVW^YY\`a^^adZF1,47457:>ADEEJIJMMKLQOFCBBDD?HHGLLZ•ÔìèçëìÜÑÝÎÊÅ } ÔÚÑÒÔÒÎÓÙØÒÕÓÐÒÓÔÕÕÓÓÕÕÖÖÒÒÔÐÌÏÓÓÓÍÓÔÕÊÏÙ½‡yƒƒƒŒŠ¢ÌÏÇËÊÌËÎÇÈËÌÌÒãØšlkfVr®ÎÌÔɨ°ÆÝÌŒakpghfglmlmigiqmjkkeelnljigefhnnheihgjpkdtzU>IC,&(&(+-)*'%'$"%&)+,++-.1+&#! ## !)+)+,)##/DW^^]\\[ZZ]^`^\Z\]Y\__][\^__]\\\\]KKKJJJJJHGFEDCBB??=:62.,,/'5XXNcws]Qw¦›`N}œ„ipqichaZfsxnwzsa[ittrrqpqqnlnprrqomxqf|’˜­»º¿ÅÃÂÄÁÀýÀÆÅÀÂÇÅ¿ÀÃÃÃÿ¾ÁÃÄÄÁÁÅÄÃÿ½ÂÅÁ¾ÅÃÂÈÆÀÁ¼ÁÄÃÃÏÃousoqqmlnnmklnood[[[`muyy{yv{u^t«žpnyursvpqvwuuwwyvruwvvxvu{yuxpd—×äÝÚÍÎIJ§¸ÉÒßãßÞäæâèçÖ€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€n¼Î²®¥ˆ„…‚‚„}~€~€…‡……„„ˆŠ‰…‚†}¤ÍÏü»»µ¶¸¶µ·´°°®¨£¨®¯ª§©©§©¨¦§«®®­§§¨ª«««ª¨®¯­®²­¦«®µ¯ ¤°¯¬¦›”•—•“˜—™››£«¨©ª­­©¦§©¬¨¦¬¯®¯´²¹ÂÀ¶­¨¨°´±²¹ºµµ¹ÁÃÃÀ¹¾ÁÄÅÅÅÂÃÊÊ¡||ˆ}Š•‚hVQX[VZWVWWTSTSSWXL<6;DLUXXXVUWYWSTYZY]\]^][\`RB30368;569<@CFGIHHJIFHKFCDB<>DEJJEDNNg®âïêêç×ÔÔÌľœ}¡ÔØÎÏÑÒÓÖ×ÓÏÐÒÖ×ÒÏÓÒÐÒÕÓÑÒÒÒÒÕÔÏÑÔÏÎÒÒÕÌÑÚ½‰{………‘Ž‹¥ËÐÌÌÆÉÏÌÊÌÍÍËÍÜØ›mjeUt²ÑËÔа³ÃÖÎŽbjphiginonoliknmllkgeilmmjfefhmnifhggkihimqW8;D7 &&)#&)(()&!"'),-,-./.+&! #&'#%&+/+)/0*"+CX]]\\\\\\^\Z[\]ZXRTUTOLKLGFEDDDDE;;:87543....----.-+*)+,-11) 7UTLdxt^Rx§œaM~¡‰jorhchaYfsxxvuse\jwtomnoqrpmoqrrqnmrkay˜®½¸¹ÂÅÀÀÁÄÃÀ¿À¾¿ÃÆÃÃÂÂÅÅýÁÂÁÂÁÀÁÁÁÅÉÃÀÄÉÇÆÁ¿ÄÉĽÀÃÃÁÀÍ‘ousoqqmlmnopppoofZXYapuvtwut}{`o¦™lkwutvsvywqqsuuwxvsstuwutzxuwod˜Øâ×ÔËÑ׸¦¼ÏÍÖäãáåæâæâÑ€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€lºÌ°ª¡„„‚€ƒ}y|‚‚}~„ƒ€‚††…„‚{¬ÓÐÂÁÁ¿º¹º·´¶¹¶±¯®«©°®¥¥¬¬¥£¨§¥«¯­«¨¨ª¬¬©©ª««ª«¯ª¦¨««°¬¡§²±²¨ž˜•“‰Ž“˜˜˜›Ÿ¡ ¡¡£¥¦§¨¯®¬«°´´±·¹½À¼®¤¤«¬­«®±²¯²¶½½À¿¸¸¿ÃÄÄÁ½¿È¿”t}Œ„|‚Œ}m[NT_`\WTUVTTTTSXWI:<GGNUXWUWYXWWUVVXX]_]YZ^]XA4-1535;567:>BGIKKMNMIHIG@@ABGKHPQOESOK‚ÒõìêëÖÓÔÎû›~¡ÒÕËÎÐÒØÚ×ÕÌÏÑÒÕÕÒÒÏÍÐÔÑÍÐÕÔÒÐÑÓÒÑÑÎÏÎÓÍÒÚ¼Š{………‘ŽŒ«ÏÒÉžÅÌÉÉÍÎÒÑÐÛ×›njcTw¸ØÌÑ˪¯Ã×БciphjjinonokiklmmkkhgiimnjfefglmkggfhmlkkcZchYC:'"%&+'%)(')&""$&()*+,-+)$#)*)').2-,3/' #:NRQPNMKJIB@>>@@?<9::840/./.-,++,,++++++++++,,----000000//11+#:XVNdyt^Sx¨bL~¥jnshchaYesxyutwj^hvyplmoopoopqrqomlpi`x˜¯¿¸»ÅÅ¿ÃÆľ¿ÁÀ¿ÁÄÂÃÇÄÁÿ¿Ã¿¾ÃĽ»ÀÂÃÇÆ¿½ÃÉÈÂÃÆÄÄÅÀÄÅÄ¿¾ËÂ’ousoqqmlnlkjjknpfZWX`ouvtwtpyy`o©po{wtvqsvvvwvqmttsvtt|uusywuwnd™ÙàÒÐËÔìÊ°ÁÓÊÑèçäæåâäÝÊ€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€p¿Ó¸¯£†…ƒ„†ƒ„ŠŒ‰†‰ŒŽŒ††‰‰ˆ‰ˆˆƒ„~¬ÒÏÊÌÍÊÅÄÃÀÀÀ¿¶·¹´³º¸°­²±ª«®¬©ª­®¯®¯°±°°¯¯°­«°±­«±³·³±µ·µ¶º²§™“‘–——••˜ž¡žœ¢¦¤¤¤ž¥¤¤¦§¬®¬«±µ¸µ¥›Ÿ¤¥¦©¬¯°°«°¸»½½¶ºÀÀÀ¿¼º¿Ç¹p{Š…}{…xfXT[^\^WRSUUTTQMOPC9@MSTVYYWWXWTU[[VUYZ\YV\bYI886203675558<BHKOPPPNLMNHBCINTTMLNQHNUM]¦åìãçÔÉÎÍ»¢ÔÙÑÔÒÐÓÒÑÔÔÖÓÑÓÕÐÍÓÐÒÔÐÍÒ×ØÕÐÐÓÐÏÔÏÎËÒÎÓÙ¼‰z……„‘Ž‹¥Ð×ÏËÉÌËÆÈÉËÓÖÒÚלojbTy½ÏÉÑÈ£­ÂÒÑ•dhojkkglmlljgimmkjjhhkilnkgffgkmlieeinjnjl^b‚yP?5!0/&'*'$%&$%$&()+,---*%##'*,.*'+/1131*&%-;65420/.-,./.+*+-*+,,+*)).-,***++*++,--..***++++,.///-*'&'+&5URFcws]Qw¦›aL~£‹jorhcgaXerxvvwvf[hw{qmqqoookmnqqrqqtmcz’™¯¾º¾ÄÁ¾Äÿ¾ÁÃÁ¿ÃÄÁ¼ÀÀ¾¾¾½¾ÇÅÁ¿ÂÂÁÂÃÄ¿¼ÀÅÉ¿ÅÉÂÁÄÃÄÆÄÁ¾ËÀousoqqmlkiikkkklcZYY]ksxwzwrwt]q£™no{wstussurruxunqusw|vstswvuxmc—×àÕÔÎÖîÝÄË×ÏÓçèååäãäÙÅ€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€tÂؽ±¦‘…‡Š‰‡‹‹‰ˆ‡…†‰Š‰‹Šˆ‹Š‰‹ŒˆŠ…„¨ÏÒÐÐÎËÊÈÈÈÆÃÃÀ»¾Á¼º½½·´³´³³³²¬ª¯²®°³³¯¯²³²­¯³²²µ·³®·²®¶³¬±»¸ª•Œ”žœ››œ™˜Ÿª¬¤¨°¬¦¤¡£¢££¥©«§¥§¨±¸¬œ˜œž¢¦©©«­§«µº»µ±º¾»»¼»»Àů‡ox„‡‚z}eQV[XW^WRRUTSTQLPOA7?JXXWUWXWTTVXYZZZX[XX\^WI=5970/6:86557;BHLNNMJIKOQDFOUTUXUNNONPWXQtÀïíå×ÈÉƽ¹œ}œÒÝØÚÖÔÕÔÓØÕÔÔÕ×ÓÒÕÕÑÑÑÎÌÐÓÐÑÕÒÌÏÕÖÒÏÌÕÑÓÚ¾Š|†††’«Ñ×ÎÌÉËÆÉÍÎÌÓÔÓßלojbTy½ÉËÖÄš¬ÉÖÑ—efpjkkglmlmigimlkkkggkkkkkiffgkklieejnkjik\r–xLGE+%<5"&*(#%&%$$%&(*+++*$!$'&').,**.4730..-$%.())*+,,-,-/-+)+,**+-//.-*)('&&'(,++*))((%%%$$###&%$"""$$"*'5VRCauq[Ou¥™`M}…ipqgbg`XdrwtvzyhYfwvoosropqppqppoontlbz‘˜®¾»ÀÄÁÿÁÂÃÆÄÂÃÅÂÀ¿ÂÄÁÀÁÂÀÁ¿½ÁÄÁ¾ÅÃÁÁÂÁÃÅÃÆÇÃÄÈÈÁÁÅÆÃÁÌ¿ousoqqmlmkkmnllodZYX]ktywwwx}t[q¦šnlyvsutpqvwtttssyxpszwqttvuvymb”ÕâÜÜÔÙæáÑÕßÖÕàçäâáäå×€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€s¿Õº¯¦–‹‡ŒŠ‰ŒŒ‹ŒˆŠŽŽ‰‰†¨ÑØÎÍËÏÒÍÇÈÆÃÁÀÁÅÆÁ¿¾¼»·¶¹¾¶·µ®­·¸¬²·¶¯«®°¯©­³µ±µ·°®³²°´³±µ¼»§‘šžœ”—¢«¦œŸ«±®¬­¯®¬¬¥¥¢¢¥¨¥¡ª¨ª´¸¬›“—š¡¢¢£¤¥©²·¶¯ªµ¹µ¸»ºº½¾£~mu}…‡~†sTSXW\[VSTUSSSQMOK<9FQTTTUUUVXTXXTU[\Z]VY`WB7:<60/37657668<BGKHLNNMOPOGGNUVXXRSRKRXUTTQËôäǼÄƽ¸™v“ÇÔÇÈÇÈÊÊÊÍÑÓÑÎÌËÍÓÐÌÌÏÎÍÐÑÏÖÕËÈÐÕÑÓÐÎ×ÐÐ×¾‹}‡‡‡“Ž«ÈËÈÆÄÌÍÆÍÎÌÏÏÑå×›njcTw¸ÊÐÛÕ®ÑÜϘffqkiiinonnliklllmlhfiljjkiffhkjjiefkmkjhby±¹„QMD<CJ<("))&')%"##$&()(''"#*,)(+(,/..6:5//11)%*&&'(()**+)''))'%(''(**(&'&%$##$$ !! !!"$#9ZVIavq[Ou¤š`N}›ƒipqgbg`Xdqwwux}m[evtporpnnnrrqponmmoh_w—®½¸ÃÈÃÄÅÀÄÂÂÄÆÄÅÆÅÁ¾ÂÄÀ¾ÀÀÄÄÂÂÅÄÀ¾½À¿¿ÃÅÅÅÄÈÆÄÇÊÄ¿¿ÄÅÄÂÍÀousoqqmlokhkkjlqgZVV^nuwytqvw]t® olwutxvttusrssrxusy{vvpuuvux{na“ÓâÞàØÛèßÐÖßÚÚáçäßßååÕ¿€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€s¿Ö¼¯§˜ŽˆŠ‰‰ŠŠŽŠ’’ŽŽ‹ˆŠŒ‰Ž‡…«ÔÙËÉÊÕÝÒÆÇÉÊÇÅÈÈÿÿ¾¾½»¼¿ºº³«¯º»²µ¸·±®¯°®­¯²³±°°°³³´µ¶·¸¹¾»¤•™–˜–ž¨§Ÿ©ª®­«­¯«¤¦©¦£§§£¢¤¤«³®¢˜“”•–˜œŸ Ÿ ¤­°²­¨®µ²¶¹´´¸º¡yipqz†„Š’zWT^]ZXVUVURQSKDD?6=OVWWXXWUVZVVUSTWYZZYYTF85;@6027741778:>BGIHNRRRSROQJKQUYXPQNLMUQIRPY”âìĹÆǺ³–u‘ÄÏ¿¾ÂÄÁ¿ÁÃÂÅÁºº¾ÂÅÅÂÅÌËÈÈÉÉËžÄÊÉÉÍÊÉÑÈÅÍ·ˆy„„ƒŒŠ«ËÒÏÊÄÊÉÃÇÇÆÍÊËàØ›mjeUt²ÆÌßÍŸ²ÍÑ͘gfrlgfinonokikknnllifgkkkigfgimiihfhlljsdaŽ©‹qaOBDRT>*"))%')%"&%%'))('#"%*)$%)'(,-.5:76431,#!%&(''&&%%$%#!!##!$"""%$! !"  "$%$#"$$$'@XSLdxs]Rw§œ`M}Ÿ‡jorgag_Xdqv|wvwhZgyxrppnnnkllmnprstpi_w–¬¼´ÂÉÂÂÆÂÁÂÂÃÂÀÂÅÅÀÀÂÂÂÁÂÂÄÈĽ¿ÃÁ½ÀÃÁ½ÁÄÂÀÁÁÁÂŽ½¿ÃÄÂÁÍÂousoqqmlkgimniimh[WV_nvxytpr{u]t¥˜kiwuuxtpqtwxuptvwwwxwtpvvvvz}na”ÔàÙÜ×ÞéàÔÙßÝãæèåÞÞæåÒ¼€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€uÂÜ´ª™Œ‰‰‡‰Š‡ŠˆŠŽŒˆŒŠ‹ŽŠ‰„ƒ­ÕÕÍÆÅÓÞÓÆÉÄÊÉÇÌÉ¿ÄÀ¿ÀÀ¾¹¶¸¸±¬²·¶´´´´²³µ´±±·´­­¯¯°³µ¸·²¯±´º¹ ™ž˜š¡˜–Ÿ£Ÿ¢¯ª­°®°®¦¤¬ª¦©§¤¨¦¤­³ªž™•š˜”“˜œ™š ¨ª®¯¨«´²µµ­­µº›ukvrs~}zŒ\LW^ZVUVWUQQSIA?><HUUTZ[TSWXTUVUSSVVUT\WC7:>;;8569:84889;?CFHMPPLLPTTSPQQORXWQOXORYMSRRiºç̽¾À±«”zšÍØÆÆÍÏÈÆÍÑÒÍÇÆÉÈÅÇÊÆËÔÑÈÆÈËÄÃÇÅÃÄÅÅÃÃʾºÃ®‚t~~~Š‡…¦ÌÖÍÅÄÌÈÒÏÉËÕÑËÜØšlkfVr®ÉÊÛÍ °ÈˢggslfeglmlmigilpnjiiggjmmieehjnhhhfimklkebgoqdEEYPIQ;*$*("$('$%$$%''&$$'+,&!#()$$(+397740/.*""$"!!%%%%%%%%++,-/01155568:<>E<9>R]TQfzv`Tz©žaL~¤Œjnsfaf_WdqvxxwscZhuysonnrrnrrponnnnvodz–ª¹ºÁÈÇÆÇÃÀÂÃÆÄÀ¿½ºÁÅÃÁ¿À½¾¿ÂÅÿ¿ÇÄÀÃÇÄ¿ÁÄ¿¿ÂÅÃÀÀÿ¾ÍÄ”ousoqqmlpkjnnklrg\ZX^lv|tvvuyrYn£™op}yuutrsusrtutwxvvttxqwwwv{~ob•ÕÝÓÖÕááâáäããéåéæÞÝæåϹ€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€tÃ׿¹°›‡†…ˆ‹ŒŠ‡‰ŠŽŒ‹‹ŒŒŽŒ†‡‹ˆ†«×ÙοÃÎÍÍÒÐËÌÈÇËÈÃÄÄÃÃÅÆÄ¿»¼½µ±¸¼µ°´´´´³²°¯®¯²³°­®³²±²²±³¶´¸¶Ÿœ¤œ—¡¢Ÿœ›› ª²¯¬®²°ª¥¦«¬¨¦ª­®«¯±®ª£–Š“”’“˜™—™š›¢«¬©§¦ª´·³«­·µ“pnwpt~}p|nSNZ`YPOSSQQPB<=ACLVWUUVVVWWWWWSNRYXQ[WC5<=8;<=74:;8:<56<=@EDLNQQRSTTYTQQRUXWQOQURNLILQV†ÓÙ³½½³¥Žy—ÌÔÇÊËÎÏÌÌÓÕÚÛÓÐÐÊËËÐÒÒÒÎÌÑÔÑÍÏÓÑÍÎÔÎÎÑÌÈÙņr}}~„¢ÏÐÆÏÏÌÊÊÊÊËÓÎËÞ×—nodVz´ËÉØÍ¥·ÑÙÉ•bhthhfhkmmkihhllkklhefjjjiiijklnkebejlijhg_fviG^jL?H6$$$%&((&$#"""%((%',-+(##&"%),-035355/-/&!&'% " !#$$%%%%&(*+.10--279;989:;=@BA<BILPLOMKKPVWTQTZZ\YPTeyw_Qz¨™dOy›Šlmphagc[dqwwvwvf^lurtrpqpmntqqsroorvg^z‘˜°¿¶ÃÌÄ¿ÄÄÃÁÂÇļ¾Â¾¿À¿¿ÂÂÁÀÁÀÁÅÅÀ¿ÄÇÀ½ÁÅÃÁÁÄÁÁÂÂÄÆÅ¿¾ÁÁ½ÊÀ‹kstpqpmmsjfmrnkkg]XZamxyv{zuzv[kž˜mm}xqrqvxtpruuutrsvtuzxwtwwx{ng‘ÏäÚ×ÝäåÝßäáÜàåäãàÚãèÍ®€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€rÁÖ¾¹¯šŒˆˆˆ‹Œˆ„ŠŽŽŒŒŒ‹‰ŠŽ‰‰Œˆ‹‹‚©××ÊÃÊÒÏÐÒÌËËÊËËÈÆÈÇÉÊÈÄÁ¿¾¾À½µ³º¾ºº¹¶µ³´´µ¶²®¬«¬±·µ³³³¯±²°¶µ ›£œšž›œž¡ª¯´µ¯¬¯®©¡¨­­ªª¬­¬­±´°¥˜‘””—–‘˜Ÿ£¨¥¡£­¨¥«ª©®«rnmhwƒ}rryv_TY^WRSURNKE>9>IMQVWUUUVVVVWUUSRRUXYXF309??>@948;859957;:=DGINQRPPRUSTWWRRVVPRTSMJGBOROj±Ð¹³µ­£z–ÈÎÌÏÎÏÐÍËÏÍÏÐÎÓÖÌÉÍÐÐÐÔÒÌËÐÏÏÔØÔÏÐÕÐÑÔÏÊÙÃy†‡Œ‡ˆ¨ÎÒÊÈÃÅÇÊËÈÆÏÏÎÞÛšmkaU{¹ÍÈ×Ѭ»ÏÓ̘cishgehkmmkihhmnnmjfgllnomjijmlnmieeghmniifgme`th:(31%%$$%''&%#$$$"#%'*.,'%$%'%$$)/3216310.-&&+-*()++*-36533369<@@@@ACEFGIIEEINPNNMMNRUVZZTW\^b`bb_]_decfgjfd^RTexv`Ry§šdP{œ‰knqhagc[epxuuxyh^jtspqpnoqoqrqpppposg_|“˜­º¸½ÆÆÄÅÃÄÄÄÄ¿ÀÀ¾ÁÀ¿¿À¿¿ÃÆ¿ÀÆÄÁÁÂÄÁ¿ÁÃÄÄÄÅÂÀÀÂÆǾÃû¶ÌÅ‹kttqrqmmikoojgjpf]XZ`mwxswwtzu]q¡gmwtvxvussuywtvtutsuxvtxwxttype‘ÉßÜ×ÖãæÜßéæÜÛàåçÛÒâãƳ€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€sÁÕ¼·®šŒˆ‡‡‰‰‰‰ŽŠˆ‰Š‰Š‹ŒŒ‹ŒŽ‹‡‰ˆ…¤ÐÕÉÉÑÔÏÐÒËÑÍÌËÉÊÎÏÍÎÍÉÆľ¾¿¾³­¸Ã¿¹¹¹¸·µ´´»µ¯®­­®±³°±²°±³²´´¡’š¡žœž¡£¡š ¯­®¯ª©¯°¦¢©¬«ª¬®°¬°¶²¡”‘ŒŒ“–’˜ žœ¤¢¡¤¤¨®«¦¨¥‡lkmfr€rn{…sZU[YWXVROKB?;CQUTUVTTTTUUVVSVVQOSY\H3-6:=?9<4389556646:9<CIGKPPNLPTOSZ[URTTSVVMFHLIOVR\™È½®²©ž‰u“ÇÏÊÍÌËÐÐÎÎÑÎÊÇÎÑÉÇËÐÐÎÐÒÐÎÔÓÒÔÕÏÌÎÓÐÔ×ÒÌÙÁ”~†‹‹’Œ¨ÉÑÏÎÊÊÅÇÌÌÊÓÓÏÛØšoneWz·ÒÉǪ̂¹ÎÑÏšeitggehkmmkihhmlkjkjjmlmmjfdgilkjhfeinplgecdrzxW/!(-%&$##%&&& !$%%"%))-,&%&&%#$'),.12720/..*!&1:?A?ACB@DIOONJIKRXTTTTUVXY\^]XW[_`ada\[_`^ed^^_`gfdge`^acbcdf`^ZNMfvuaSw¥›cP}ž‰jnshagc[dqwtuzyg\jtvrqollomorrnnppmwi^wŽ•­»µ½ÆÄÃÆÃÁÁÂÂÁÀ½½ÀÇÇÂÁÅÀ¼Ãù»À¿¿Á¾¿ÁÂÁÂÃÄÃÈÇÅÂÂÆŽ¹ÁÆÀ»ÍÇltuqrqnnjnqolmoqe\WY_lvxuvvuxqZsš‚ew}tvssvwurpsuwstussuvswvwssxoh“ÆÛÞÔÎÞäÞÞàÞÛÚÖßåÜÖèß»¬€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€vÃÕ»¶¯‘ŽŒŠ‰‰‰‰‰ˆ‹Œ‡„†ˆˆ‹‰ˆŠ‹‡‰‹‡¥ÐÖÏÏÑÎÇÊÑÒÐÍÉÇÈÌÍÌËÎÍËÊËÈÅÃľ²°¿Æ¿½½½¾¼º¸¶³±°²²±²´²®¯²°°³³²²¡”™ ž ›ž¡¥Ÿ–šª®¨©¬­³²¦¦©¬­­®°²¶®®¶³¤•‘‘ŒŠŽ‘“˜”›˜”š›™› ª­©¢¤¬¨Šjfmjpy{uvŒbTZ\\[VPQPHBDLSSQRTSTSTTUUUSZWMMWWN/%-988;952572473325:<=BGFILOMKMROQVZWVTQNTUKBFLLGZSOŠÅ¿ª®¥™…q’ÇÐÄÈÇÇÍÒÏÍÔÒÏÉÉÊÄÇÐÓÑËËÏÑÏÏÒÓÓÕÒÐÑÎÏÕÙÔÐÛÁŽ}‰Š‡Ž‹Ž«ÇÊÊÏÌÏÎÌÑÏÌÑÑÏàÖšoohXx¶ÐËÕÇ¢·ÎÏКdishhghkmmkihhkkklniedqpmjghikomjifdhnsolhactŒ|T1&%&%!&%""#&&& !$%%%''*($%'&%"%())+/2233/-2/#':HPTXWWYVSTXY\][VW]caaa`abdecec^\`cdbfd]]ce`ee^]\]egekkd_beecefaa_TSgusbSv¤œbQŸˆinthagc[epxuvywd[jvutpnnljmoppnmonmui_yŽ–«¶±¾ÈÁ½ÁÁ¿¾¾¿ÃÁ½½ÂÐÐýÅÀºÃÈÂÀ¿ÁÁ½ÂÂÁ¾»¾ÂÅÂÃÃÀÀÅÇ¿¿ÂÀºÇÁltuqrqnnnmklpsqnd[VX_kuwwvuuwmYvŸ…evzsvtptxytooqttrsusrwvuqtuvxkl–ÊßÛÏÊÛáßÝÛÚÝÛÒÎÔ×Ýëݶ¥€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€uÄØÀ»³Ÿ’‹‹Š‰‰‰Š‹ˆ‰‰‡……‡‰‡‡ˆŠŒŽŽŒ‰Žƒ«ÚØÌÍÒÑËÇËÎÐÒÌÅÊÍÌËÊÏÒÏËÉÈÇÂƾ±µÁ½À¾¼¹¸·¸¸¶´³²°¯´º·±±³°­¯¯²°¢•™žŸ¡£Ÿž¤§Ÿž§¬ª¯²¯°±§ª¯±­«­±²¸±¯µ¸¯¡—Ž“’‘‘–•—–”•šœ›Ÿ¦¥ž¦¬¡Šhbls|~wy}|€ƒq[Y[ZYQJKKE>KTTQPQSSSTTUUUUUXUPSVJ7&'-36:==87;91054335;@ABDHFGKNLLNONRVVWVSQUUI?CLNUaLEŒÊ¼¢¤Ÿ˜ˆv“ÆÌÃÇÆÅÌÏÍÊÎÐÒÏÎËÅÊÒÐÌÉÌÕÖÑÍÒÒÐÓÕÕÕÊÌÔ×ÔÑÝÁ‰z††ƒŒ‰‹«ÊÉÇÌÃÆÑÏÒÑÏÑËËàÙmidVxºÉÎÞÍ¥ºÏÍΘchtijjhkmmkihhhklkifeilljhfeggmklljfhllljgd`jƒn1$&&#%&$""$%&&%# !$%$'&#!$%&('$$&+./.0242140&"5N[]\a_ab`[[_Z^ca][^baa```abcege`^adecge]]ce`cc]\]^gh`hi`\`eeegf^^^RNgusaSu¤›bP~žˆimthagc[dqwuvzwdZivqqooqmkopnnoomlnti`xŽ–¬¶·ÂËÅ¿ÃÄÆÁ¼ÁÇÄÁÁÁÎÍÄ¿ÂÀ¼¿Ãľ¾¿¿½ÂÁÀ¾¼½ÁÆÃÂÀ½¼ÁľÀÃÁºÆÀktuqrqnnjhiklllmd[VW^kuvtrsuyn[y§hovquwwuuttstvrutrtwvvvuqtuvxkj”Ñå×ÍÑßãÝßããàÜÖÔÙÜâìÙ²¤€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€rÃÛÅÀ¶Ÿ‹‹Šˆ†‡‹ˆ‡‡†……†ˆˆŠŒ‹Š‹‰Ž‡„­ÚØÇÌÒÕÐÊÈÊÎÓÌÅÈÉÈËÌÎÐÐÍÊÆÅÅÍƺ¼ÄÅÅÃÂÁ¿½¼»»½»¹¶°­±··°°´±®°±´¯¡–™žŸ œœ¡£ŸŸ©­¯³³¯±®¥£«°­©­±²¸³±¶º´¥—”“••””’‘’‘‘”˜–›œž¢¦ž…hjz|zxxtxqu…€fWWUSLB@?;;MWUTTSTTTTUUVVVURSXXL6&'-07ENKGC?>>4-/6666;CCBEHDDJMLJLNNQSRTWVUYUG;BMQOD9]°Ð°¡ ›”„s’ÅÍÁÅÅÆËÎÌÍÎÍÏÏÑÏÈËÒÑÑÎÎÒÔÐÒÓÏËÍÏÏÐÇËÒÔÐÏÛ¾‹z‚ƒ„‹‡¦ÑÏÄÍÌÉÈÌÏÏÏÐÈÄÙÖœlieVv¸ËÑàϦ»ÓÔÍ—bgrikkhkmmkihhooljheeihkmlgffhkklkiikomlgjiZ\tQ%#*%%"&%#"#$%%%##" #$#$$""%%%''&%'),./3/2752/+*#)BZa]Y\\^a`\]aZ_cd`^^_bba``abcdfd_]adefhe_]ab_bb\^_ahhajkb^eihhig^_`SNeus`Rv¤šbO|ˆimrhagc[epxtuyyf[hssnpspmnnqnmppllovk_v‹—¯¹´ÀÇ¿½ÆÇÄÀ¾ÅÉÀ¼¿ÁÁ¿Ãý¼¾¹½Â¿¿ÁÂþ¿ÀÂÂÂÃÄÅÃÁÀÁÄľ·ÂÉÁ¹Ê‰jstpqplmkjjllllmd[VX^kuwvttvzoZv§—mpytqstvwxvuttttvvuwywswvwssxoc’ÓæÕÑÚåãßßáßààÛàæâãëÔ«¢€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€sÃÙþµŸ‘†ŠŠ‡††‰ˆ‡…†‡†„‹Ž‹‰‹ŽŒ‰Œ‰¨Ó×ÍÑÑÍËÌÎÐÐÒÐÏÏÌÉËÌÈÈÌÏÌÉÈÄÉƼ»ÁÇÉÂÃÃÂÁ¾»¹¹¹ºº¸´´·¶¯°´²¯²´¶¯ –šžŸž› ££¡¢®²±±³µ´¯¨£¨­­¯²´´´´·¼½´¤—ž˜––”•—”””’’””“—˜—–š™š¢¢‡nrxmltoqor}~qcXROI?:=>FRVTVWUWUUUUVVWWTQSWO<*#$0:DSYRKHC<:6..6;;9;ABDJGCDJMIIMMMPQOQVWQXUC8>GF2-K–ÙÑ¥¡–Ž}mŽÄοÂÃÆÊÉÉÎÍÊËÌÐÎÇÊÏÐÓÒÎÐÕÖÏÎÌÎÑÏÌÍÉÍÑÏËÊ×¹‹{ƒƒ…’ˆ¨ÐÎÂÌÔÒÇÏÏËÇÌÈÆ×ÑšljhVr´ÐÌ×̦¹ÒØϘbeqgiihkmmkihhllklnkggjlnlhfgjnonjghkmnmghhc]N."'("!!#"#$%%$#!#$$#"!"%%%&&%%&()(').25037511//+4L^`\[[[^a`\\__`bba```_^]]]]^_bdb^\`decca``ceffe_bfgkidlmc`hkhghf\^aUOdvu^Pw¥˜bNy›ˆilohagc[dqwuuxwf\hquopspmnopoooonnnqiby›°·´Àƽ¾ÉÈÀ¿¿ÄĽ¹½Á¿Äž¾ÄÄÀÁÃÃÀ¿ÁÁÁÀ¿¾ÂÅÅþÀÁÁÄËËÄ»ÄȽ´ÈÄirropokknnmlnpold[VX_kuwyxvw|qXp¦–loytrtvvustutqusuwuvwvtxwxttypa–ÓàÖÕÙâäáßÛØÝáÞÛßÞßæÓ²©€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€wÄÖ¼¸²¡–‰Œ‹‡„„…‹ŒŠ‡ˆŠˆƒ‡ŠŒŠŠŒŽŽŽ‡‚¦ÓÕÊÓÕÎÎÒÑÍÕÏÎÒÑÎËËÍÉÉÍÌÇÆÈÇÅľ¹ÁËËÈÇÅÃÁÀ¿¿»¹¹»»¸µµº²²¶²®¯²¸¯Ÿ—šžžŸ¢¢ Ÿ ©®ªª°´®ª­ª¨§«°²°®®²»Äø©Ÿ ž™™ ž–’“–‘‘–‘•Ž‘˜™™œ˜‡nilkotvqqtrlqyy]SMH?=DJUXTQVWUYUUVVVWWWSUVO@0('(8GMMJC<DC814414>>;;>@EOFCELLGHNNNPPOQTUY`YA2;C?;RÓïÑ¡••‘ŒoŽÁÇÁÃÄÆÆÂÁÈÄÄÉÎÒÎÅÇÕÐÑÑÎÑÖÖÓÍËÒ×ÒÐÕËÏÑÍÇÇÓ´‡{‡…‚‹¥ÄÌÏÑÊÊÇÍÎÊÇÏÏÈÒÔœjddTs¸ÍÁÏΫ·ËÓЙbeoegfhkmmkihhkmmlkhgkpnlifgikimnkikmlknhcm‰C%$#$#$#""#%&&$"""#%$!$(($$&&%*(&')-./64531340//;Q_`_caacea\Z]db`_`aaaeeccbcddbdc_^bfgifedddfhfd^afgidgoncailgjkg\^aUNcwu]Ox¦—bMw™‡jkmhagc[dqxxvwue\irrpmoroovoqqnnppmsjawŽ›³¼¸¾ÄÁÂÇÄÀÃÁ¾¾ÀÀ¿Á¿¾¾¿¿¼¾ÄÁ¼ÁÅÀ½ÀÀÁÁ¾½ÁÆľÃÆĽ¼ÅÇÁ»¿ÆĻſhqqnonjjipqkinoke\WX_lvwwvvw~uZp¤’kqztttstsqrvvtqvurtutsxwtwwx{ndžÔÛÖÕÒÚçààãÞÜßâàÜàãäÚĸ€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€qÁÙÆ¿²ž–ŒŠ‹Š‡ŠŒ‰†‚†‰‡†‡ŽŠˆŒŒŠŽŒŽŒ†…¦ÌËÄÍÕÓËËÏÒÒÏËÊÌÎÎÍÏÏÐÑÏÏÐÏÍÈÅÄÂÁÈÏÈÄÈËËžÄÀº½Â¾»º·³³³´´³°®¹µ¤—™›› š›œ ¡œ§ª««§©¯¬¢¦«¨§°²¯¯µ½ÀÅù¯¤Ÿ£¢ –’™“ŽŒ““Ž”•“”šŠm_ksnmsqhouki}ŽyVKQG@JT]RVUTWQRTXXRRXYVX]W@65-*+CLG;,*,;B>30246=?88DEEPIBEMLIJJJLNONNQTWVYC/9B?h´Ñá梒•Œ†|nŒ¾ÇÀ¾ÁÆÄ¿Ã˾ÂÉËÊÅÂÌÖÏÏÏËÍÓÓÓÒÍÐØÓÌÒËÍÏÒÍÐѽ‹z‚€Œ‹‰ªÉÎÎÐËËÉÈÊÍÎÎÇÆ×Õ™ljeWy¹ÉÆÐ˯½ËÑǘaipifigllklifhmllkhfgjlpnihddhlnomihkolon_|·™>$#$$ # !""##$$$" !"" &')('&&')&&)++.32454477657;F`bUbdabdb]\_defedcccadgea`ejcikfbcgigikd]ekelg`]^bfheig_\__ZY_[]b[RMg{u\Qv¤›cSz™‰ijsk`b`]hqtstvwh[gutpqqooqqppqqqponvoe|‘–ª¸¸¾ÂÁÅƽ»¿ÁÂÂÂÁ½º¾ÁÀ¿Ã½¼½¿ÁÂÂÂÁÀ¿¼½ÀÀ¿¿ÀÁÂý»¾¾ÂÄÀ¼ÌÃŒkqtqoonkjkllmmll^YZV[lysutx€tYt¥‘gmvssstvspruuuuuwsosxwwwutou}mfšÒÙ×ØÒàáââáÝÛÝàÞààéâÌÅÄ€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€wÅÚü±ž–Ž‹ŒŒˆŠŠ‰‰Š‹‡ƒ†ˆ‡Š‹ˆ‰ŒŽ‡…¥ËÌÅÑÏËÎÌÇËÑÍÌÎÎËÌÏÍÉÌÓÒÎÏÒËÄÅÇÂÁÈÌÆÈËÅÄÆÁ¾ÂÂÄÁ¾ÀÁ»´¶¶µ±¯¯°µ·§””˜—”•› ¦¡¢¨¬©§¦¥«®¬©­·¿Ã½ÄÇÍÉ»±¨­¬¦œšžž™š¢š—ŽŒ”ŽŠŽ“•“ƒjbqxmgmoktxpv‚ƒ~v_JFNTV_USOQSOUVVTSVXVR^YL835-,7DBB@1''29;88975;A@:;DKMHBEMMKLMNNLHINQQQV^M8<CDŽÏÚÜãàˆƒ{n‹½Å¾Áû¹¿ÇÅÄÅÅÊÊÃÆÑÏÏÏÎÏÐÐÒÐÎÌÊÌÏÐÑÓÔ×ÒÔÕÀ‰{…„‚Œ‡ƒ®ÍÐÍÎÉÊÉÈÉÌÏÓÏÎàÕ™ljdVw·ÎËÏÄ«ºÅÊË–\gsmgeimmlkgdflkkmjffjmlihjiggklljggilmmi`z¢~0$ !#$(%$$$#"""!"! !! "%%&((''()&(('(.10255447765:88Vne^a\`lka^e_dijgeegfiie_]_chfb_]\]_]]\VQX\TVRMKKKKKHHGGHIFB=@ES_ZRQexs\Qw¤fRx–†jmvf]b`]isx{xvwj`kwxqnonooonmlllnqrulay‘—ª¶²½Ä¾ÀǼ»ºÁ¼¼ÃÂÀÀ¿¼½Áľ¼ÀÃÂÁ¿º»Á¾¹¾ÁÁÁÀ¾Á¾¿ÂÄÁ¼ÌÄkqtqoonkjjjkklkkbYXX]kv}zytsyoXv¨”kr{vuttqrutttsrpquvxzzvwuuov}mcœ×Û×ÛÒÚâÞÜßàÛØÜÞÛÝèßÉÁ¼€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€wÇÞÈ·£˜‹‡ˆˆ††ˆ‡‰‰‹‹ˆˆ‹‹‹ŒŒŒŒŒ‰…£ÊÎÊÓÐËÏÍÆÈÒÎÍÌÊÇËÑÉÅÈÎÏËÍÏÐÍØÜËÂÈÍÈÍÑÇÁÆÄÃÄÂÀ¾½ÀÀ»¸¸¸¶´³´µ¹¹¦‘“‘’”““˜œ ¡œž¢£¢¢¢¦¥¥¦«³¶±²·¾Éǹ±«¦©©¦¦¨¥žŸ¤¥›˜—ŽŽŽragi``kptypn‚Šyƒ{\ACOTWTRRRXWQWUTTVWUTS[M>145,+AE>BL?0./29>??;65<E@8@JDGADKLKLMLMKFHOSRUVZPEGIG‰ÍÚÙãÇ Œ‰‚€zn‹¼ÄÁÂÀ½½ÀÅÇÂÅÉÇÇÅÀÃÈÇÇËÏÎËÉÎÎÓÔÎÎÑÍÐÑÑÔÏÐлŠ|†…ƒ‹…«ËÏÌÎËÍËÃÅËÏÔÏÎßÖšlicTuµÏÐÏòÄÊÏÉ–`jqighgllklhehljlolfejjklkgfggjjjiijmnnqlbm}gC83*&%#% $$##""!!""!"!!#%&'(('&''%((&(.10355457863<7)Evybcdggc]\^```]YUSSRTURNLOSOF@BDDEG><<9;CE>322355313003750+,3?P]\TScvr\Rv¤ePv–‡koug`fb[epwwwyyj]huokmpnlmnpooonmllti]v‘™ªµ¬¾ÌľÃ»À¿Áý½ÂÁ¾¿ÀÀÃÄ¿Á¿¾¿ÂÄ¿À¾¾ÃÀ¼¾Â½ÁÄÁÂýº½À»·Ç¿ˆkqtqoonkiijjjjkkfXVX_kt{wvsszpZx«”hnywz}yttusqrrpuuqruvvvvvupu}ldŸÚÚÒØÒ×æßÜåìàÕÙçßáèà×н€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€rÃÜÈż§›‹‹‰‰‹Š‰……‰‹‰…‚ˆŒŠˆŒ‰Š‹‹…¢ÊÑËÐÓÐÌËËÈÐÑÐÍÊÌÏÒÍÍÍÍÌÐÑÎÇËäîѼÆÓÑËÌÊÇÈÇÈÊ¿ÂÅÃÀ¾º·´µ·º¹¸»¸£‘•œœœ—›››œ›£ªªª§¤¨«©¢¤¦§§§§§««´Çɽ¶±¬­­ªª«¨£¡¤¤™—’–’”–“Ž‹Ž’‰t`\^[^hqpqtw}}x||fHCT^ZXWUSTTRUQUXWTSUWM>4286)*>E<DTM?=23:AA@=955?B89@@FBCHJIJKHMOLKNQQVVUQPSNFqÃßÞáÄšˆ„zoŒ½Ä¿¾»º¼ÁÃÂÀÀÄÈÊÄ»¿Å¿ÁÊËÈÆÇËÉËÏÎÌÌÎÍÍÌÎÊÌË´Œ|„‚€‹‡…«ÎÒÍÍÉÊÈÆÈÍÏÑÎÐåÖšlibSs³ÎÑÌ¿³ÄÅÈÉ•ampggjchjkmkillklnkffjjkolbahkmmljhhikhpldegkx{^B4'!##!!!""##$#"""#"!!%%&'&&&&'%$(*+.3356458861;9$6r…qMLKJHGILLD;79:74345523695.)*,,+++,+)*/0,)))+++(&('(*.0-))5ELU\TMcvq]Ru¡›aMwšŠnorgbidYanwwwxveYfvvnmstrnkmoprrqpoqh]v‘™¬·´ºÄÂÀÅÄ¿¼ÅÈþ¿À¾¹½ÁÀ¾Á¿¿ÀÀ¿¿ÀÁÁ½¾¿½¼Áľ¼ÀÅÃÂÁ½¸¼¾ºµÆ½†kqsqoonkjjijjkklfXTW_ntxuvtu|r[y¬•ipxssuywssxyuquxvuuttyuvvvqv|lfžØÕÇÍÏÚãÜÛêðÝÏÕàÙÜÜ×äá¿€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€sÂØÂÁ¼ª“ŽŒŠŒŽ‹‰‰‰ˆ†…Š‰‡ŠŠ‡ŒŠŒŽŠ†¢ËÓÈÍÑÏÌÌÍËËÌÏÏÐÏÏÎÍÍÍÊÊÎÐËÃÉçôÓ¸ÃÖ×ÇÄÉÌÎÊÇÈÅÅÈÉÅÁÁ»·´´¸ºº¸¼¸¤“”™Ÿ§£¢ŸŸŸ¢­©¬®ª©®­¥£¦¦¨¬¨§­¯«´ÉÍÁ¹±´³¯«ªª¨¥Ÿ¢¨¥ ˜’š–‘”•‘Ž‡{gZ[]]anmjnupoyx|vgZUY^WZXSQTUQQWXTRUWU=20492(-=E:<PTMG35;ACB@=<67;96<CHFEGJIIJJMPPNKKKMUYVTUQFh»äâÞÁœŒƒ~zp¾Æ¾¿À¿¼º½À¾»ÂÈÇ»¹ÈɶºÊÊÆÌÐÊÈÉÊÊÉËÍÐÏÍÐÍÏ͵‰z„‚Œ‰†§ÊÏÉËËÏÎÇÌÒÒÑÌÐæÖšlicSt³ÑÐȼ³ÅÈÍÎ’\krkhfchjkmkillmmkhghjhhkkffiijlliedgjjmhgjes’˜jI;+!$) !!""####" !"#! "#%&''&$$(++/335655887476#1jˆ€P8+14++480(&),*'))*)((+,)**)*,,)(,-*+-/0644589989>AAEMPN79FLW`WOfws^Ssž˜`Kx›Šmpqd`hcYbq{|xvui^iuxposspppqponoprspi`y‘˜­»¶¸¿¿½Â¾¸¿ÄÂÀÁÀ¾ÄÄÁ½½¼¿ÅÀ¾ÀŽ¾ÄÅÁ¿¼º¿ÅÄ»¿À½½ÁÃÁ½ÀþºÊŠkqtqoonklkkjkkmmcWTT_pwvz{wvzpZy¨foyrsvouvsqoqwvustyvsutvvwrv|ke—ÓÓÁÃÉÚáÜÞêê×ÏÚäÞæßÖç怀€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€wÇÝÆÅÁ¬”ŒŒŒ‰ŠŒŒŒ‹ŠŠ‰††‰‰ˆˆ‰‹‹ŒŠ†¡ÉÑÇÑÏÍÓÒÍÐÎÌÌÑÑÍËÌÎËËÎÎÐÐÎÌÐéôÛÃÉÖÓÊÍÍÊÏÏÌÂÉËÈÆÄÂÁÀ¿½¼»»ººÆ½§–—›¤¤Ÿ›¡Ÿ ª¬©©¬®±¬£¡¥£§¯­©®°¬µËÍ»±®¯°°±¯«§¤©®©¢›–Ÿ£˜’–™•‰p[[`_^hojdgilu|xuzybQVXf^RRVXQTWTPSXSI6/034-'3HJ:6IYVH/47<EHC@=<9;??>BJIGGJJIJJJKMMLJJLUYWRSSG^©ÞåÝÄŸŒ„~}xnŒ¾Æ½¾ÀÀ½¼½À»ºÂƾ³¼Ü⺰ÄÉÆÆÄÈËÑÐÊÍÏÉÏÍËÏÍÐ͵„w…‡…ˆƒ«ÎÐÇÅÆÌËÇÈÉÆþÃÚÖšljcTuµÕÍÇ¿³ÆÐÙÍ‘]nqhhggllklhehkmmifghiiikkhgggfikjfgkooogijcr…T<8*!"&##""!! #!!##" "$%%%#&&%'.1146656897960!2i†„yW5)(%"$&')))(()-../03576<A@AEECDJKKLMNSTSRTX[\]W^`^ajolK:CP]bTQhxtaTs—cMzœ…jptfaidYboxxwwwi^hupmptnimtpponmmllpjbz—¬¼¶¾ÆÁ¾ÃÃÁÀÀ½¼¾ÁÃþÄÂÁý¼¿¿ÁÅÅÁ¿ÀÈþÀÃÂÁÿÃÁ¼»¾¿À½À¾¹ÊÁŠkqsqoonkmlkjjlmoaXUU^qvuwyxw|pZy¬“goxpquxrqtrptwuwtstvtstvvxrw{jcÍÒÁÃÆÓÝÛàæÞÓÖäÔÑäæØåçÏ€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€uÇßÉÊůœ—Ž“ŠŒŽ‹‹Š‰ŠŠ‰ˆ‰‰ˆˆˆ‹ŒŠŒ‹ˆ†ŸÅËÃÎÎËÐÎÊÏÑÍÌÏÏËÊÌÍÆÇÌÎÌÍÎÆÐåïãÔÑÓËÊÓÏÄÈÌÌÅËÊÆÇÇÃÃÃÂÁÀÀ¿¼ºÈ¿¨—œ¡Ÿž¡ŸœŸ£­«¬¬©¨ª©£«¬¨¨ª¬±¯¯½ÑÐŹ²±±²²°¬ª¢«±ª§¤Ÿ¡£Ÿœœš–•—”Žu_`ea^ffjkgbgoyzwx‚ƒnWwŒoMPSSSVTRQTSG:40231)%3NL<6FWVB15./CKDB<>?BGFAAGHDCHIGIEGJKLNNLQSVVOPTIX›ÚêÜÁ›„}{ti‰¼Å·¹¹¶·¹¼¼¿¹¼À¾¹ÆäïÀ­¿ÈÅ¿ÃÈËÊÉÍÎÉËÈÆËÊÎ̳…x†‡†Ž†¦ÌÑÈÇÆÊÇÆÁ½¸º¹À×Õ™ljeVx·×ÉÉƲ½ÆÍË`qodhjimmlkgdfjlljgfghlmkgdcejlmmkhgjmlmihdax‘wF51$ "$#"""! "#" #$$"!!"###!"%&$(-1146656897:903k…ƒŒzZ<4;=86<CFFFHKMMNPTWZ[Y\^^\\]]`ca`c`^aca__`a`_^abbejjfN8BPYZLNgwtbVtž™bN~ž„fosjdidYamtwvvscXhywootsnmnjknoqponqi_x–ª¸²º¾¸¼ÅÄÀ¾ÁÂÃÃÿº¸Áü¹¼¾½ÀÂÁ½¿Äý»»¼ÀÃÄÃÃÁÁÁÀ¾¾¾½º½¿»·Ç¿‡kqtqoonklkjijkmnbWVV_mturuvv{pZz¢‹ftusurnputqsvupprqosxsuwxsw{jgŽÆËÁÊËÍÎÐÛÞÒÎÚãÑÎäæÚäåÒ€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€pÁ×Áïž”‹‹Œ‡ˆ‹Ž‰……‰Œˆ‡ƒ„‰‡…Œ“ŽŠˆ…žÁƹÃËÈÁÀÄÇÃÅÆÇÈÈÈÇÉÂÀÄÅÅÇÈÂÔéðéÝÒÊÈÂÈÈÀÃÄÁÉĽ¿Æý¿À½º½ÀÁ»¶º»©˜š¡  ©ª¥Ÿ §±¯­ª¦¨©¦©®¯©§®°«®²ÃÕÏÅü´³²³³°­«¨±³¦¤§¡ž¦¥£ ›››”w_`c^\gflk`clkqouy}‹‰n‰¨~PWWPUTRSUTK<142541(#/IF<9BRP988'$>KDA?>@FHECEBD@?EFEGCJNMLNOMPRW[OLSIX–ÛîÚ¿„„|xqf†ºÄ¶¿À¶¯³º¼º¹À½»ËìíÈ·ÂÆÀÁȾÂÀÂÎÎÊÌÊÇÆÊËÏÍ´Š|†…‚Œ†‚£ÍÕÎÊÅĽº¹½ÃÌÌÌÜÕ™ljeWy¹ÓÅÎÔ¼ÀÆËÐ\oqhiggllklifhijllifeghkjhjgeglkjighikjmki`c}’c9.-"#$! !!""#!%&$!!"#"!!"$$#"%"#'*+/3467569977>41k„Ž‚jYW[\]^_```aadbaacdeedbbeedeicdabigcefdcdeecacabhmnkgG9JSWZPSfvscXu ›_M£†empgagbZdpwwtssf\huxmjopmoqrqpooopprh\u—¨³±¼Á½ÁÆÂÂÀÀÁÁ¿»»¾¿ÀÃþ¾¿»¾À¾»½ÂÀº¹¼ÃÀ»ÂÉĽ½À¿½Äƽ»¿Á½¹ÉÀ‰kqtqoonkkjihhjlmdWVY_jpuxytptjX{¡Šcq}tswpqqqrppswrqstvxusuwysw{inÀ¾ÒÑËÄÉÚÞÐÑÞã×ÔæäÚêèÑ€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€s¼ÒÃû­ª’ƒ‡Œˆ…~…‡……„€ƒ‡}‚€ƒƒŠ‚ƒ„}—ÃÎÃÅÇÆÂÁÅËÆÂÃÆÇÇÇÅÃÄÃÄÇÈÇÆËÖèíèÞÑÎÄÄÅÃÀÃÆÂÀ¾ÁÁ¼½¿¹»»½¿»³µ¿¾À©–˜ ¤ž¦©¤¢¥žŸ°·®¨ª¬­­­¬ª¯±­¯³°³»ÄÏÎý¸´¸´°¯µ·ª«³²ª«ª¡£§¨¤¢¥¤ž›š—ƒlb[\gggie`fonpq{wx}xz™jUPQSVRQXT:)1565/)')+CHB8@OK:2+$!5F??DABDECDGBA@ADFFEJHGGJMOONRWYSPQLHŠÚíÞÈžƒ€wxte¹Åµ¸Á»µ»½º·»¸½¾¹ÌèéÎÇÄÿ¼ÌùÅÌÇÇÈÊÌÉÅÉÌÐη‹z…‰†‡…¤ÌÓËÁ¸¼¹¼ÅÇÉÒÊÃÚÖ˜lkdSyÀ×ÀÅϾ¾ÒÑ͉boqklbelnljedikmnnlgdgmiffhhijkmkikijpkmhk_e••Y0+%# ! !"#$%%$#""!"###!!##!!#&%%())-39328:648<>13h‚‡‹‹‡„s`a`_abbbccbj`dccjigfecbeghidedcdbdkcmjeeegafejonkhcKEMPY_TXewsaWx¡—dPx–…knoe`gd\epvxtqoe]gpupnmloqommmnooppjh`vœ¯¶´ÁÇ¿¼ÀÀÂÅÁº¼Ã¿¹¼ÃÄ¿¾ÀÀ½¾¿¿½¾Á¼¾¿¿¿ÀÂļÁÄ¿¼¾¾¸»ÂÇÀ¸ÆÀŒhnqonnnkmihiiklhcXUW`ouwxwprym\|ŸŒlqxutvuqnrwuqtrrssrrrswwtvtrukgš¿½ÆÚØÔÉÏÑÐÕàåâÏÚçäßëëÕ€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€yÆÛÇÄ»©Ÿ’ˆ‡ˆ‰„{‡‡†Š‹…‚„‚€€ƒ„…‡†„…€ÊÔÄÊÐÒÏÌÍÏËÌÎÍËËËÉÊÌÌËÊÉÉËËÔåìêâÔÎÊËÍÌÈÌÐÍÊÆÈÉÄÃÃÀÀÇËÈÂÀÆÎÇ號£¤¡Ÿ¤£¤¤››©®­®ª¦¬²¯§§¯²¯°´²µ»ÁÌÎû³¸¹µ±°µ¹¯ª«´²¬¬ª¨­¬­©£¡¢žœŸ’ze]`irihmiacktwxvst{„’…gSRUPKV[E0-0354/(%(,AIA6?PM?4)%&087>C@>>>?ACBA@ACEDDFFGJMNNMSORWRQRJM~ÍñåÇ›€zzwmŠ½Ë·¼À¹¸¾¼½½À»¿½¯ÁèðÓÈÂÀÀ¼ÃÄ¿ÈŽÂÉÍÍÈÈÑËÇÈ»…{‡†ƒ†€„¬Ä½µµ¶ÃÌÌËÈÈɾÁá×–jmfQvÀáÊÐÔÀ½Î×Òbkpijeelnljfdhknmljhefkhjnkeeljjihgfglnjee_d‡Ž_/&&!# %"""! ##!!!""#%" !! "%&%&)*+/4778899889=15kƒ…‹Š€~mdadfffinmjc`bckoeeiccijhghaegfcadibiffecebeckqlhe`FBKMV_TUewsaWx —cPy—„jnpf_c_Wanvzywtf]htupnooppnoonnnnnnmj`t›¯¸±º¿¹¼À¼¸¿Â¿¿Ã¾¿ÂÄþ¼¾¿½º»¼¿À¾¼º½ÀÀ¿ÀÂÁ¿¿ÀÁ¾¾Ã¹»ÀĽµÅÁhnqonnnkliikilnl^WY[amtwtzutyo\v¨nuxrpsrrpquvroqturswwttwtustxkf”»ÄØðëáÐÔÓÐÓÝâàÏÜêåÚàäØ€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€uÆÞÈƯ¡“Œ‡„‰ƒy€„ŒŒ‹‹‰‰…„‡…„ˆ‰ˆ‰ˆ†ˆ† ÍÔÄÊÑÔÒÐÐÐÍÉËÐÏÈÉÏÏÐÑÐÍËÌÍÍÕäëëãÔÍÎÏÑÏÍÏÓÑÓÌÍÏËÇÇÈÌÐÑÉÅÇÉÆÈç”™žžœ ¢¤¥¢šœ¨®«¬­­«©§¤¦®±®¯³³·¼ÁÌͺ±µ¸·¶±²¸²«©¶¸¯­­ª­¯±®¦¥§¤¡¤ ˆkaiqnebjka^hhiloqpv€x‡ŽuZRSNOWM5-1.033.'#'-;HE7;JOJ9)*00.2>@AA??@A@A@@ABCCBFEEFJMOPSOSTNPRJPÒêܺ”†Š…}vnƒ­¹°µ´­±¶²µ¹¼µ¸¶£µæðØÎÆ¿¾»»ÃÁÅÉÐÏÇÏÎÊÍɼÌÕ®||ˆ…„ƒ“Ä´½È¾¿Ç¾ÄÎν¾ÝØ•hngQu¿àÖáØÃÄËÔÖ•bfohhiflmlkfdhjmmijhfekjlmkgfgkiihedgjlijgefrqU,$% # "!! !""'" ! #'&%'*+,05679999988<.7o„…Šˆ€|tk[Y`ec`^][ECXlmc]hvh^]]XZaaVPWej^OQIDQQDCE@D\omhf^GCLKT_UQevs`Vw —bP{˜ƒhnrhaf`Ycpxwxzyl`ispnqrnjmopponnmmlqk`sŒ™®¸³¾Ä¿¾Â¿¾¿ÂÀ¾ÁÀ¾À¾½ÀÀ½»½¾¼¼¾¿½»»¾¼¸·¾Æž¾¿À¿ÂÇż»¿Á¹°Á½‹hnqonnnkjikljlooaXWW]luzqwsrwn_~¦‹jtyqqxrstrpstqwvutuutqqwusqw{kb™ËÔÙåàÛÖÚÜÙÛÞÞÚÓÛåßÑÑÕЀ€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€nÀÙÆÇŵª“‹†ƒ†„|€‡‰…†‰Š……‡…ƒ„††‡ˆ‡Š†¢ÏÔÉÍÏÍÌÎÐÑÐÐÎÍÎÍÌÎÍÊÊÍÎÏÏÏÐØçíêáÑÊÑÐÐÏÌÐÒÍÒËÊÏÍÇÇÌËÍÏÎËÎËÄÊÍ´—–¡£¢¥£¥§¡›Ÿ¨¬¯¨§¯°¨¦§¨«­«­±±µ½ÅÏÍÁºµ¬³¸¹²®³±¯³º¸µ²¬­¯±­©««©ª¨¥£“tgovlkfdjlij`Z_knqwzvn|Ž‰pYWSYJ3.53-.01.&"'/7DG;6FRQ?--83.16>ABA@CB?@@@AAAA@ECBDHMPQPPRQONJJ{¿âáäÊšˆˆ…{tp…©·±±°©­²¯²«¯«¯®¤½éîØÏų¯µ´½½·´³š‹¨ÅÆÁ»·ÄÄ¡tu€‚„‚«ÓÐÅÅü¼½Á»¼½¸±¿à×–ilgSu»ÓÙêÔÄÐÍËÕ˜bdrifkglmkkgdgjlkjjiedkkjhggggnklmggkmiikffii^D-*' !!! !""##!  !!"%"!#"!"%%$&)++.36449;8689;*;t‡‡ˆ†‡€kotWDBAA>;<?05\kQBHSdZB7;78HX=/BalS1427GC45:09WmighbLCLOU_TQdvr`Vw —aQ|™‚gmsgahe\eouvuuujbluvnlpponmoooonnmmql`u˜¬·°»Ã¼¸»½¿À¾»½¿½»¿À»¼Âþ¾Â¿½½¿¿¿¿½ÁÀ½½ÄÄ¿ÄÅý¼ÁþÁÆÈÁ¶Å¿ŒhnqonnnkjilmhjnoaVUXaotustptxj]„Ÿƒdrwrtzsruvssusstuurqrtowurpy}k`šÒÕËÏÔÛ×ÝààßßÛÖÙØÝÞÙÚÝÚ€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€vÃÙÄþ¯¦‘……„‚…€…ˆˆ‹‹‡‡‡‡†…ƒ‚„†ƒƒƒ‡„£ÒØÑÓÑÌËÏÒÒÒÔÐËÎÑÑÑÎÉÉÌÍÍÎÍÎØêîéßÑÍÓÏÎÎÏÔÔÍÍÈÆËÌÇÈÏÉÂÂÅÆÉÎÌÂƳ–“ §§¦¢¥¨¢œŸ¤«¯«©°®©¬ª©ª«¬®°°³»ÃÎÌÀºµ¬±´¶²°³¯¬³µ±µ¶­­®±°¯²±ª§®¤¤ž…pllkmf]akmia]erwvyzwpy•¤Žk\VP6$082/--.-'#(08=E>7DSO=,-:==?6;==:<?A???AAA@@@@@CFKMNMPOOPTIIh¹åèâîЛ‰ˆ†~yy¶ÄÀ»½¹·½¾½½¿»ºµ´ÎëíÔÊŲ³Á½±›‡zp^Wp—ÁÆ·º¾¶¤upy~‚y‚¹ÙÊÃÅÀ½ÅŸ°­²ÀÉÏÜÔ˜kidVw¶ËÑâÍÁÒÐÌÑ—afukfkgllkkhefijjklhddjijjfbfmjgiieejkmkjddfiY>,'% """"""!!!!!  !"##!#&&#"#$$%()),07348=;86:9%AxˆŠŠ„„~kmyeN?4672.0+@^T99=7MU?0=81ES93LipW6-<MTA17;0?^nhde^L<GPX]UTdur`VvŸ–aP}™ƒgmse_fbZalrvutsg_kuyqnoppqommnnoooopj`w˜«µ±·¾º¸¼¼¼¿¾½½½¹·¸·¼À¿¼¼¿Á¾¾¾¾¿À¾¼¾ÃĽ¼À¿ÁýºÀÃÀ·¿Å¿·Ä¼‡hnqonnnkjilkghllaVUXaottuvsx{hX}žƒfquqsusprttvvrprspruvrowurpy}kd½Á¹ÀÇÏËÎÏÎÎÎÍËÓÍÍÑÓÓÔÔ€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€q¾ÔÁÂÀ²ªŽƒ……‚†„ƒ‡††…‚†‹‰†††…†‡‚…ƒ†…¡ÏÖÑÔÓÍÌÐÑÎÏÐÌÊÍÏÏÓÑÌÍÐÌËÎÏÊÖéîêáÕÒÏÌËÌÎÓÔÎËÉÆÉÌÊÊÒÀ­¬½ÈÍÉÀ¶°¥–” ¦©§¤¦¨¡›Ÿ¦®ª«²±­¬®¨¨©¬¯±±°²¸¾ÉËÀ¸°³³°±²¶¹°¯²µ±³µ­¨­¯´·µµ²«³«©©˜j_e_]ZZeomdmt{xs{yqnƒš¢•yY<)-3312.++-*&)14:FE9>LPD85AJQP?79:;;>>==?ABA@@@A@ADHLMMQPPRTFX æëÝäìÅšŽŠƒ~x»ÈÀº¾¼¸¼¾¼¾¿½¼·½ØëçÐÈɺ¾Æ¬y\UVV``Z`—½¸¨¹Ç®„x~„…z„¼áÆÀÍÊ»³°³ÀËÎÓÒÐÜÓšlhcXw²ÑÉÓɼÈÑ×ΔbhvkehhkkjliefijjllgdfjjjjgfgjkijjggjnjgdfgfmeL1"&'%&'#"""""""  "#$"!$(($!"$$&))(*-4899;@<695"N~‡‹Œ‚w|{uz|zkYL=007,@LDHL9/BSB3>93HM34UljS7.6IWE16:1Kgohfd`G4?NV]UVcuq_UvŸ–bP{˜ƒhmribf`Wanvtwxvg\gssrroijoplmmnnoppnh_y’™«¶´¹ÁÀ½ÁÀ½ÁÅÅÁ¾¿¾½·»¿¿¿¾½º¼¿À¿¾¿¾»¼¾»¸ºÁÃÁ¾Á¾½ÁÀº±ºÃÁºÈ¿Šhnqonnnkkikkghkj`WVV\ktytxsuyl[|ƒhuwrsroqrqpsvtttrrsvtqqwusqw{ki‹·¾µ·¹¼½¿ÁÃÃÂÀ¿ÆÂÁÃÂÀÀ€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€uÆÛÃÁ¾­ ‹…†„„‡€}†Šˆ‰Š‡…‚ˆ†…„ƒƒ…‡‹†ˆˆ‚žÌÕÍÑÑËÌÑÑËÏÕÐÉÎÑÎËÍÊÎÑËÊÑÔÊÔæíëã×ÓÍÌÎÌÊÍÏÌËÌÈÇËËËÑÀŸ“¢µÅÍɪš˜——ž¢¤¤¥§§Ÿ—›§¬©ª«¬±²ª¥§¨«®°±±²·½Èɾµ­´µ±°±¸½²¬­¶¸¸»¶²±²µµ²µ¸µµ´¯ª¤‘vcf]bf_jzwiuyyzspxxffu—´¡d9,83-220*(,,)+13:BEB>CLRKCHOUVD78:=?=<<<>ABB@AACA@AEIMNPPSTUGXŸèè×âòѤŽŠƒ}rŒ¾Ë¿¾ÂÀ¼½¼Àý¾»»ÑéæÕÍƳ¸¹ŠTObos‚~eaƒœ“¯Ð´‹~„‡†…±Öƹ³´¶¹ÀÍÒÑÎÒÍÍãÔ˜jieWu±ØÊÑ͸½ÔÝÑ”bhtidehkjjlieejlkjiffhkljghjidjjihgfhmmkfdgclmZ?+-0--+))(''&&%! !#$%#"$''#"#&&(*)'(,09=::==850")]„„ˆ‰szƒ}~u|uaL=79=;>RM2/CJ@563:RN05\oeM4<>KVC01/A_qjdehiH4@MU]URcuq_UvŸ•cPz—„jnpldhbZcpwuwxudYfssqokjnoinnnnnnooog^w‘˜¬¹±·Á¿º½¾½½¿À¼»¿Á¿½½¿ÂÄÁ¾½¿ÀÁÀ½¼½¾»¿Á¾¼¾Âý¾¾»¼Âü²ºÁ½µÃ¼‡hnqonnnkliijikmj]UXZ`lruttnqyn`˜|exzrstlqssrrrsrtvvspswtwtustxkj‹¹Ã·µ¶¸·¹¼¿À¾»¹¼¼½¿À¾¿Ã€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€qÇÞÄ°žŠŠ‡ƒ‡‡{{‰ŠˆŠŠ…„…ƒ‡ˆ‡†ƒ„Œ‹„‡Š… ÎÚÎÒÐËÌÓÔÏÑÐÊËÒÑÊÊÏËÏÑÉÇÍÑÎÕæíìåÖÏÑÓÕÐÈÈÌËÌÏÊÆÊËÊϯ–˜Ÿ«º½¤’—œ™ž Ÿš¡§§ž’”¢ªªª¬¬«¨¤¥¦§§ª¬®±²ºÁÊÈ»´®®¶¶³°¶¼´«­¶¹¸µ®­±¶·¶¸¶²±¶»±¥¦ž…rhall^k{pgpz~{vpmz{gbcz¦¤qE6;1-3/1)&,.+,1::6?NH=ANMCFMUYM:88;<::<;>ABBAAB@@ADGJKJPNQRZNBbµäååñÔ£…Š‚~nŠÁλ¿Â¿¾¼¸ÀÈÅ¿ÃÁ¸ËëéßÔí½Ç“[^m|‹œj[pŽ¾Ô²ƒy‚€}¡±³³¹ËÏÇËÆÉÇÌÖÉÀØÖ–hjgVs±ÙÑØÓµºØÛÔ”chqgcbikjjljeejnlgffhjkjiigeefjkiggeelkojbgejoudQKKKJB642/+(&$!!!!"$%&%##%%##%(()+*((+.5==968<1,"1hˆ‚„„yz|€ƒxsz|z{|o]C>62?B44@>=;55G`H-8`jYC2:Q`U:5=2<apeadehN;ENT]UMcuq_UvŸ•dPx—…knog`gcZblqqsuvh\enstsomrrjppoonmmmpg\u˜®½µ¹Á¿»¿ÁÀÂÀ¿¿¾½»¸¹½¿¼¸»ÀÄ¿ÀÁÀ½¹º½¿À¿½»¼À¾¿À¼¼ÁÁ»½ÃÇ¿µÂ»‡hnqonnnkmhikknolaVTV_ntuvrlw~m[–wby{pprtpnqvspstutrsvtqwwtvtruklƒ¨°¦§ª«®­­®®®®¯°°°±´³²´€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€rÅÙ¿Àij¢Ž„‚„ŠŠ{ƒƒ………ˆ‡…ƒ†‰…€‚†ƒƒ‰ˆžÍ×ÐÐÎÏÔÙÓÊÎÎÉÈÏÎËÏÑÏÌÍÍÊÊÏÌÔåîîæÖÏÌÌÍÍÌÎÌÄÊÈÉÊÉÇËк“——™¢š“•œ›™šššœ¢¥ š› ¡¤¦¨§¡Ÿ¥ª§©¬­¶¾»ºÁÊÎÊÀ·³³´²®°¶·²²µ¹¶¶µ°²·º¼º¹¹¸··´±®­¬›€hadiktzspsxzxxumuuh`nni|a7.-+6,2.+*-/005;;9ANMBCCAIRTVQ=26=@>9:;:<@BA@A>@ABCFKOOQKOPEBHl¡àïèΛ†ˆƒ|rŒ¾ÏÂÂÃÀ»½À½Á¾½ÀÀ¾ÏéõÚÐÈ­·Å›jqxy‡™–‘—˜tSu´Ã®~u~ƒ‚†…ƒ ÀÌÌÌÉÈÇÊËÉÌÓÇÅäÓ“eheVw¸ÒÐÜÕ¶¿ÉÌÔšdgofigglmlmigihlmlkhefkkjhgffglhfijhgjkgfggehntrlffijh[NF?:5-.,+%#!)$%&&&&%$#%()(*..,'-5:9534, "Ktƒ…Švpz€€€~y|you|y€ocN:48;9;=8>G<<UB7>DHMB57AJK49P84UnjbfhdK=FMU]QMbvq]Wx šdQy–‚hnshae`Xbpxpovte^fmnqpllppmnnnnnnnnpjby“§µ³¸¿ÀÂÄ¿»ÃÃÀ¿ÁÀ¼»¾ÂÀ¹¹¿Ã¿»º¼½½¼¹¼À»ºÀÀ¿¿¾¾¾º¹½¿¼·¿ÆÁ¸Å¿‹iqplmljkkjihijklbUOVbmttsvqtxk]€œ{fusorwusrssrqpu|vouvqqsrptutuinŒ®²¬®­²µ¶³­«®®ªª§¨®¯««°€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€rÅÛÁÁÁ­š…ƒ…‰‰~{ƒ†‚‡Œ‡…ŠŠ‰‡††‚„††Œ‹ƒŸÎÙÍÎÍÊËÏÏÌÌÌÉÊÍÌÊÍÎÏÎËÊÍÐÐÎÔäíëßÐÍÓÑÍÆÄÌÐÊÅÆÈÈÄÂÆÍ­Ž–’”šœ–”–˜š›š™™š›š™™˜›¢¥¤¡žŸ¥¥¦¨¨ªµ¾½ÂÁÅÎÎĶ­­´±©«·¸¯¯³¸¶µ³¯³´·¹·¶·¹¹³³³¯­¯¨–zlbdktywtvzyvwwsw{pernW`ˆp;)-*+$10.,,-/15:;:<EMPFHFIHIQVB78<<;;@AABA@ABC?@BFIKLMMPMONFIOO…ÐêäѤˆŠ‡…€tŠ¸Å½ÀÄÀ¼¿ÁÀÁÁ¿¸·Ìêé×Îŵ¼Ã¬ƒsty‚‘’‹¡vT|ª¤ƒ†††Š„€ŸËÓÂÀÇÉÅÉÎËÇÏÐÏäÔ”fheVv¸ÛÕØзÁÆÇÍ•bhpgiefllllifimjghgbbgkkjgdegiillihihekhfeefilqokgglmkd[YUPH;8DA0&#!%%&&'&%$#$),*)+./+-29><60+"(Tw}ƒˆwlo~†‡†„{spmsyuy|q]G:56<@;9=::G>457=E?;6:AD5E^B3MdhccggK>FMU]RNbwr`Yx–aOz™„imph`e`Xcpxxvyue_hppnmmnmmnnnnnnnnnpi`x•¨µ­´¿Á¿¾¹¹¼¿ÁÀ¿¼¹»»¾¿¿ÀÃÂÀ¾½»¼Áƹ¹À¹¹ÃÅ¿½Åú»ÄÄ»µ½Ä¿¶Ä½‰iqplmljkiijkkkkjcYUWZcovrtqv|n\|{fvvrqsrruxuooutoqussusssquuuvia’ÂÁ·½ÀÂÂÄÃÂÄÇÅÁºÁ½»¿¿º€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€zÊÝÁÁÁ°Ÿ’‡……ˆ‡}z††„‡ˆ…ˆŠ‹‹‡„…„ƒ…‡‡Œ‹‚žÍØÉÍÎÊÇÈÌÎÎÍÍÎÏÌËÌÏÉÊÌÊÊÍÍÊ×éëèã×ÏÍÏÏÉÇÎÎÅÅÇÉÉÿÃ˶ˆ’’”•••––™žŸ™”—šž¡ž˜—™ ¢ ¡§ª¦¡¡¦¨¥¥«®¬¶°´ÂÊ·±°¶³©ª²²ª©¯¶µ´³°µµ¹»¹¶µ¶¶³µ·²­²´¬™hgtxtr{wxz~€znr|udmiTby<*,/4122/,,/28:<;99COSOHJNOVWA78:988=9>@??@AA?>?BGJJIQRRRJFNPN€ÕõêÐ¥ˆ…€{r‹»Ê¾¾ÂÃÀÁÂÀºÁÆĽ¼ÐìéÙÎÄ»´¯±š}zu~w~€›¥|WgŠ„ƒ‚~‰’‡¡ÌÓÆÈÊÉÌÌÍËÅÌÑÓáÕ•gheUv·×ÔÔÏÁÊÆÆÈ’ahrgidfkljkhehjlkjjhhkhijigefhjmmhfhjgmliffiklnmjginqoc]^[WN=7W\D-%%&&'''%$$%*-+*,/00--4=>6-)#0^zz‰unt€ƒƒ…†xjjlnqpsx{€t_F6D=6468<?<886=@78::AA4KfI9J`kidcfL>FLU]RObxtaZw›’eQy”gotg`e`Ycpwutyvg`ipnoolkmnmnnnnnnnnph]w‘˜ªµ­´¿¿º¹¹¿À¿º¸»»¼½ÃÂÁÀÀ¿¼¹¼¿À¾¿Á¿º¼Á¼ºÀÃÀ¸¼¿¾½À½»¾´»Â½µÃ¼‡iqplmljkmkihijmn`YWXX`mvuunrzn]} |dsurstqtutrssssqstsuvsturuvwxji¹¿¹½¾ÄÁÀ¾½ÀÅÈÇÂÃÆÈÆÃÅÈ€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€vÈÞÇÇƲ¡“‰††‡†}{‡‹‹Š……ˆ‡‹ˆ‡‡„„††……‹‰€œËÕÆÌÑÐËÊÎÑÍÌÍÐÏÏÑÒÐÇÊÐÎÍÎËÉØêëçãØÒÌÍÍÉÆÌÎÇÉÊÌÌÇÃÆË´’Œ’Ž“–”˜–˜žŸ›š£žž¥¥œ™¡¨©¦¥§ª©¦¤ªª¦¥§ª¬¬«·ÌÑõ±²³°­­°°¯©°µ²²³¯°°¶»»¹····¹»¶¯³¶²®”wuƒrq}||z}}xu{uekfYuŽ~H)++.61110//13989<:69@OKDIRWWO@6699968;=?@@@?>CA@BEJLMMMQSJJUQI€Ö÷èÉŠ‰„{p‰¹È½ÀÅÄÁÃľÃÆÅ¿ÁÒéêßÓ¿»´™‰xoxvmumt’Ÿ~`ct†~‡‚|¤ÉÎÉÑËÅÍÎÈÇÉËÈÊÜÖ–gieUu·Ô××ÐÁÉÇÎÉ“airhieejkjjhegfmomifehjiggffgilkiihhjlmkgddgijllihjpqod]]XTM>9WjZ<* $&''''&%$)**+-/0/40,-473,'!4d|x~…yu|ƒ|€rgllfkmonps|ƒ€lWJ60887875776=>1513=<.IfM3AVfjecfM?FLU]SPbxs`Xv›“bPz—ƒimqg`eaYcowwuzwf_fmmqrmklnmnnnnnnnnpg\v’™«µ¨´Âþ»º½¾À¿¾½¼»¾¿¿¾¾½¾½¼¾½»½ÁÁ½»»»»¼º¿Â¸»ÃÀº¼¾¼¿µ¼Á½µÄ¼‡iqplmljkjjjkklll\UTY^gptvvorwl^€zcstrrtqppsusqprrrvxtqvtvsvuxyji½Ä¹µ¶Á¿À¿½ºººº¶¾Á¾¼¾À¿€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€sÄÛÆÇ‰‡…‡…}}ƒ‹ˆ…†ƒ…‡‰†‡ˆ…„…………Š‰€œËÖÉËÏÐÎÎÑÕÏÌÍÎÎÎÑÓÊÇÌÏÌÐÓÎÎÔæîéÚÎÏÎËÌÌÉËÏÎÎËÊÌÌÉÈÉ°’—’’’’•˜–—œŸ¤£ ¡§¦›™£®¬ª§£¢¤¦¥©«ª©©­²­¯¾ÒÔÁ³²²²°­¬­¯¯«²µ°±´­¨¯´¸¸¶¶¶µ¹·º¸³µµ®²¢ŽˆŠ~ty€~z||zwspvh[xˆsJ/*(+.0/.03565668;;989?EDFLQUN?679898:=:9<?@@@AABBDFKNKINSLMUNHÞòåÈš‰…ƒ‚t‹¹Æ¿ÄÈÅÀÁÁÅÅÂÀÀÃÑäîÚÒÈ»£‚zxw{vuyrpolioŠ¦ZXw†‡‹ƒ„£ÌÏÂÈÇÁÃÊÄÈÌÌÃÅÛÖ–hifVw¸ÜàÝÌ´¼ÆØΖcirhjfejkjkgeghjkkhabjkigfghhhlihjkhhjlifdcehjmmkhjnold^\UQM@:QihQ7$""''(''&%$*)*,./00453.-/.+$ 6f{w|}quˆ‚}}|nhnjdlnknrsrx€vbKA>65<=5687BE<A<?IE9PfQCMZdffffN?FLU]SQcwq]Vv–bPz—ƒhnqf_fbZcovzxzue_hqsoopolmpnnnnnnnnpg\v’™«µ«·Â¿»¼»»ÀÂÁ¾¾½¼¿º¾Á¿¿¾¼¹À¿»»¿½»»º¶·º¹¾Å½¼Ç³·Á¾·¼Á½¸Æ¾‡iqplmljkjjjjkkll]SQYbltuqusvxj\€“uexxqprqsuvusstuprtqqttswutuyzie·µ­³´µ¸»½»¸µ·»»½¾½º¸¸¹€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€xÇÛÆů¡“‰‡†††€ˆŠ……†…†‰………‡‰‡„‡……‹ŠƒŸÎÙÍËËËËÌÑ×ÔÑÏÏÎÍÍÐÐÎÏÎÈÇËÌÌÔæïëÞÏÎÍËÏÔÐÍÎÎÌÈÇËÍËÈdz’””—•‘”—šž ¥¥¨¨¤›™¢­¦¤¨¨¦£¢£¥©«ª¨¬°­­¹Ìο´µ°´²«¨¬­ª©®²¯²¶®©·¹¹·¶·¸·¶³µ¸¶¶´­´±©‹xt}€€~€~w|yy~}g\nsW:,'*--/..158879;<;999:7?>>?EKH528:7769954:@A@@;>ACCDFILIMSMLRKUŸéòæÎ……~zqŒ½ÍÃÂÅÇÃÂÃÂÂÄÅÆÅÅÓçðáÖÀ›|uƒ€vux|vjokkminŠ‘x`v‰…†ˆ†ËÓÅÆÆÂÁÃÆÊÌÍÈÈÜÕ•gjgXxº×ÛÝË­¶ÆÚÏ—djrhjgfkkkkhehkkjjiffjkihhhigfnlihhihhljgeceimmmjhimmj_[[TPL>6QdibM1$!''((''%%(),.,+.328:3-,+(!!9fvu{xtx‚†|}|ojkfgplfqvxvw||x}ul\IIQONMQS[^RQSTZTM]hZ`ehfdeggO@FLT]TRcwp\Uu—eQy•€hote_fc[douvtxte_irupmoqpnmnnnnnnnnph]w‘˜ªµ±»Ã¾»¿¼¹ÀÀ½¾ÁÀ»¸µ»ÀÁÀÁ¿½ÁƼ¼½»¼¾»¶¸¼À¾»Á¼¶ºÁ¾¸¸½À½¸È¾‡iqplmljkkjhggilmaVRX`jsvqvtuvh\ƒ”vewvpptptuqortsuturmrvrrwtssyzhjˆ§¦£ª©¨®®®¯¬¬±¹¸°°¸¸°®µ€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€tÄÝËÌÅ°¡‘‰‡…††€‚‹‰‡‡…ƒ…‚‚††‡‰‰‡‰ƒ„ŠŠƒ ÐÛÐÎÌÌÊÉÎÕÑÑÍÍÑÏÍÐÑÍÌÍËÉËÑÈÕèîìæÕËÐÎÐÐÌÊÍÍÈÆÇËÌÊÈÈ«ŠŽ’““—™šŸ¢¡¥©¦¤¦¢ž¡§£§­«¦§¨¦¥¨©§ª²´¯³ÃÕÕô°¬°°ª©®°¯¦ª¯°´µ®®±±¯®°µ¶µ¶²µ¸µ´³®³·»±˜…~€‚z{~{~~„lefZ@2/+)((//136788;;<;989<77233277--587657:99=AA>;>?BCEFHIJHKRNKSSP†ÒîèÍœ……}si…ºÍÂÄÇÄÁÅÈÃËÊÈÈÅÃÒìêçÄ•vq}‚zmrz{vnphf`WS[juqz‰‡…Œ…{ ÇÓËÉÆÅÅÅËÊÈÏËÉÜÓ“fihY{¼ÏÎÔɬ·ÅÏÊ”cjsijegklklifikmlhhfcblljgffhjnmjeegiihigc`cimkkjgillh_]]VROA8TfdaaL2"'(((('&%((,.-*-32892-,*%%Agqr|x}~ƒyx|{nihdjnff{sptwvw{~ƒ‡smjcg_cfik^UPTXRQ]dcdgieabfhPAFKT]UScwq]Vtš“aO{˜„impe_fc[douvtxue^fnsronnpnlnnnnnnnnpi`x•¨µ¶¼¿¹·¾¾¾À¿»¸ºº»¾¹»¾¿À¿¾¾»¾¹µº¼¸¶¼¼··½Á½¸ÀÁ»¼Â¿µ·»¾»·Ç½„iqplmljkghijjjiiaVQW_jrsuwrrth^…ž{esspswtsrssrqrpstuwsrupvtrrxzfh¸½°ªª´¶³´¶¶²±²®°¯­°µ³«€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€o¾ÖÅÈı¥ˆ‡…††„†Œ‡ƒ…‡ˆˆ„‡‹Š†‡‰ˆ€‡ˆŸÏÚÑÐÑÑÌÈËÒÎÏËËÑÎÉÌÍËÈÈËÍÌÌÊÔæîìâÎÄÑÐÐËÅÇËÊÆÆÉÍÌÉÉÌ­”“–•’—˜™ £›¥©¨©ª¢œ£©§«­¦¢¨®§¥ª«§¬³±²ºËÛØĵ±²±°¯­¬®²ª«°³µ°ª®³²°°²µµ²º¶¸¸²°±®«°½¾­Ÿ’ƒ€~~€}syzu€…xfN8.-)%'0/2565568645:<;<?;8460&*00-25699:67779==;@><=AEFGNMNSMGPVJfµíìǘˆ…zsj†ºÌÄÁÃÆÃÃÇÉÇÄÅÉÇÄÑéðÌy{}~jev{svunfQFHFDGJZl“ŠŒˆ‚©ÈÏÄÂÃÄÁÌÎÈÆÐÊÅÛÒ’fihZ|¾ÖË̦µÁÃÄakujidglmlmigijjjjhcaejlmkfegjjjihggikhlkdaflohihgillh_]\SON@8Sk_XlfA$'(()('&%*'(,.--0474-*-*#(Hinp~zz|ƒƒ}{|xjihfjg_k{oluulq€|z{€ƒ€||hXXYZb\RLTXOLSZeeilkfbcePAFKT]UScxs`Wt—dQy–‚hnse_fc\dotxuxte`kuqopqnijpnnnnnnnnpjby“§µ®´¼ºº½»»¿¼¶·¼¾»¹¾¼¼¿¿¼¹¸¼¿¼º½º¶º¹»º¹º¿Âº¹Àýº¿Àº¶¹¼¹µÅ»‚iqplmljkihggghjk^ROWcmqotvqsxk]£fturrttvuqorssqvtqrrprovtqqxyej•ÁºÀÂÄÇ¿¼ÁÆÇÇÇÇÃÀÁÅÆÁº€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€b¢ÁÁÄÀ¯Ÿ”‰ˆ‡ƒ‚}‰ˆ†‚‚‡ˆ„†‰‡‡Š‡ƒ…‡…‹…žÎÝÌÊÑÒÇÃËÐÎÏÐÍÌÏÏÊÌÎÍÉÉÌÍËÊØèïêÝÑÊÒÍÌÈÂÈÏÊÈÍÍÌÅÄÊĬ“Ž’”•—œ¢£ £¦¨¬®©¢¢©©ªªª«­®¬ª««©ª­¯´ÂÏÛÓ»±´µ´´°­¯¯©¤³º¯­²¯¯¶±¯³¶´³³¶¶µ´³²±°¯·Àº±°«¦•ƒ|yqljnnkm•‡j_ZK2%+,+02454248=8:<<;:;=:;:63310/036765679;:;==<?>>AEHIJKLOQNMS\QRˆÜöÅ’„‚~{tkˆ»ËÀÅÈÆÅÇÇÅÈÃÃÊÊÃÔöášswxw{ubblvwvpcUI@><8:A7M™Š‡‰ƒ¥ÌÌ¿ÃÁÁÈÈÅÇËÐÊÇßÔ‘gmgXÂÖÍÐÁ©¿ÄÎÏŸdhqjeechjjligjhkkiheejnnmjgfhkjhfefhijkjgdehihnlhdejlkc`\SRK:8NgbYcvi3"'&'/+%)%*+,,,/0571,/.*)0Tjkr{xtƒ‡xuwrcac_^\]fnhgjf`iyurt}…‹€fLIWb]SNNSQJP_efrlgfdhkN;EPW^URdun\Xyž”gUy”ƒhkpi`eaZdotxwwqecltimrpklonmmmmmmmmth[u‘šª´³´º½½¹µ¹½¹¸¾Â¼¹¾¿½º¼À¿¼½Á¿¼º»½½¹¸¼½¹¸¼¿¾¹¹½»µºÁ½³¼Å·°È¼hppklljkkmihggie\UUV_ptruwusyi_ƒ—xcpqqrronoqqoqvtstsoqttwtswstvef•½À¶¹ÀÁ¾ÀÁÁÁÁÂÄÊÈÅÆÈÈÆÀ€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€R¨¦®µ±©’†…„ƒ†„ƒ‹Š‡„…‡ˆˆŠˆƒ‚…‡……ˆ‡‹‡~œÍÙÈÆÍÒÍÌÐÒÎÐÎËËÍÎÍÍÌÌÍËÊÌÑÏÖáíîáÐÅÐÎÍÊÈÍÏÊÍÐÍËÆÇÑͨ‘’’‘–œŸ¡£¥¢§¬«¢œ ¥©«ª«­¬©¦®­©«­«¬¶ÀÌÙѹ³»µ¯­®±µµ®ª±´®°¶¯¬ª¯³²¯°´¸º¶²±±°¯¯´²³·´°²¯« ’vqnovy~‘™xRKRG1&+/-.0367557:79:;::999=<7468721475249:<;88;>@==@CCBFMKGELSSQOSLsÆóÊ“…‡‚}vk†¸ÈÃÇÇÃÁÅÈÈÅÆÌÌÄÉÖÜ¡}owxvqeecnxtnh^KB<=;537;7^ˆ‰„…¤ÎÐÄÉÇÀ¿ÆÉÊÆËÍËÜÔ‘fldTz½àÔι¨ÇËÌΟdhqkfffklkkhegglnlgbemjkkigefgkkjgdcehhhfddgjjmkgdekmkeb]VTM=:PcaY\sxP+*('&&(*$+.-*(-1351-//*(#5Wmou{ws€†…|ssr`[]\WW[fa^be`ahjmry~ƒ†„€†oYT^_WSQRRQX_bgnheebfiP=FOU^TMavq^Wv–fTx“ƒhkqi`eaZdotstvrfagnpkjosmknmmmmmmmmti[t”¥¯´ºÁ¾¸¶µ¼º¸¶¹¼»»Á¿À¾½¾½¼¼¾½¸¹½¾º¹¼¿½¹ºÀÀ¼¶»¾¼»ÀÀ¹´½Å·°Ç»hppklljkjmihhhjg_UST]ntuptsrxia†›}hvurqpoqqqqrrqrsrqrpqutpnrptyji”¹½µ·»º¸º»»¹¹»¼¾¿ÀÀ¿¿ÀÀ€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€J“• ¤¢’…‚„‡ˆ„‚„ƒƒˆ‹‡‡ˆˆŠ‰†ˆ‰‹„|žÐÙÉÅÇÍÎÏÏÍÌÍËËÑÒÏÏÉÉÉÉÉÉËÌÈÑãðîÞÑÍÓÕÑÍÐÑËÇÉËÈÈÃÆÐË£Ž”‘“’‘”š  Ÿ¥­¢¤§¬ª ¤£©ª§¨¬«¦£®­©°¯«®¶µºÍн¶½¼³°±²´µ±®°±®³¶­«¬®¯­±µ¶²·±®°²±±±°±­­¯²¹²®±¯¨£ ™š¤¥¨¤zRPVO=-/430147987678899:9867=?:7985332147986:<;::;<>:;ADBDIFFHJJJNSUHX¦ëЕ†Œ…wl„µÅÀÆÊÈÇÈÈÅÄÃÆÉÊʸ›€qjmkjjhidkpgdbXE=87611489<S~Ž„‰£ÎÏÀÆÅÁÁÇÊÊÄÊËËÝÔ‘fjbQv¹ÜÖÓ¼¬ÏÎÅΞdhqkffjnnkkfcdglnnlfcfejnkeadhjlnjedinjkjebdgikjgdfkmlea^VTN?;Raa[[q„kC,$(&%(',*)+,-,+/21-//*((<\pux{uy„‡…ynnlcY]\WX_gVYdgfnrgijs€ˆ†‚†Š‡wd[_ee`XW^cegficegbehO<EMU_TLavq^Wvœ•dRw“ƒilri`ea[dotuvzvibhoqokknllsmmmmmmmmqh\tŒ’¤°¯´¼½¿Àº¶»»¹¹¼»¹º¼À¿¼½¾½½¿À¹µ»¼¹º¼½»¸»ÀÀ»¾ÃÁº¼À¼µ¶½Å¸±Æ¹€hppklljkimiiiili^SSW`mrtstrqxh^˜yfvwsqpsqrtusposvrnrxvqwrnplpvggŽ¯²­³¸¶¸º»¹¸¶¸¹·º½¼ºº½À€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€N€†Š‘†ƒ‚…†€…‹ˆ…ˆ‡„Š‰†ˆˆ…†‰ˆƒ„‡{Ï×ÉÅÅÉÍÏÎÌÊÍÊËÒÑÌÎÐÎÌËÍÏÍËÇÒåòìÛÎÌÔÕÉÂÈÌÈÊÌÏÎÐÌÍÓÊ –’“‘“•—˜—™ ¨­§¤©«£¡©§©§£¤ª«¨¦®­­²²¯µ¸³¸Ñ×À³¶À»¹¸°®²µ³´¶³²¯§ª°±±°±´³²±­­±³±°±°´²²´´´·À¸¸¿·³¼¼²·³·®|U\deXD:<:65689887799898989<?@?>>:586324984689879:9=99=BCCEHFEGIMOQVLGˆàÕ—‡ˆ|xm†¸ËÄÇÈÄÂÆÉÉÅÆÃÄŲ’|qhggcdlic`ZVabQ@956644686<;Lx†¦ÏÏÂÆÅÆÎËÇÆÇÌÇÆàÓejbRw»ÙØÛŲÒÓÍÍždhqkfgjonlkgbegkkijighkjjihggfilmicbfkilkfbdimjjgeglmlc^[VRM?:Pba`etq]4)-(%&.*--***,,00///+(+B`sx|ztzƒ„tmoof[]]X_baS]ghhomagdjz„…†Š„‹‹ze`giaRP[abi`a`hkfggM8AMW`VPcun]Yx›‘cQv’ƒimsiaeaZdotxwytf`hqupjilooommmmmmmmnf\u”¨¶¯µ¾¼·¹¸¹»¹¶»ÁÁ»¸¿À¾½ÀÁÀ¿À»·½Á¹²ºº¹¹»ÀÀ¿Àþ¸ºÀ¾¹·½Å¹±Å¸€hppklljkhliiijnk]QRYbmpsuupoxi]~˜xevvrqswsqstrqrosxvppvyxsqsoptdhŽ«¨Ÿ¤ªª¬®®­ª©©«¬®°°®®°²€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€N~„†ˆ†„‡‚„‰‰‚‹Š†‰ˆ…‡†…‰Š……‡…„ƒ‡…~ËÓÀÃÅÉÎÐÏÍÏÒÎËÎËÈÌÑÌÊÌÏÍËÌÎÔâïïßÌÁÍÑËÅÍÏËÌÍÏÍÍÊÊÏÅ ‘•Ž“•”“–œ ¢®§£§©¢¡«¬©¦¥§ª«ª©®°­¯µ¸·¹¸ÀØؾ¶¿¾¼¾»³¯·¾±³·µ³¯©¯²°°²³±±²´³´µ´±²µ°¸¹°ºÃÀÌãÆÃÕ§¥¦¶´W^hsucPGC=:9767788889877:<=<<==<:87348956;:96569987;><<?CDIFDHPSQKVTCvÖט†Œ‚}xmƒ´ÇÆÉÈÄÃÇÊËÇÆÄƦ‡zwncagecg_^SFOfbF6458;86574DC:Su„¦ËÌÃÉÄÂÈËÆÆÇÌÆÅÞÒfkeU|¿ÕÑÒ½«ÊÐÒÍžchqkggimnllheggoohdeegmljihhiiijjgdcgkjllfbcinkjifimnkc\\VRMA;Nc]aqvwmjE+),'*33)--*+*,,/10..,(-Hdsz|xt|€~shlqdYZYX`_TUbihkjebdfjq{„‰‰ˆŒ‰„|k[j`OIQQQXVY]ilgheO9BOX^TQbun]YxšcPv‘ƒhlri`ea[dotywxrd^gsskmqnmolmmmmmmmmmf\uŽ”©·®´À¼³³¹¿½¹¶»ÂÀ»¹¿¿½½¾½»¼½½»··º½¼¼»º»¾ÀÁÁ»½¾»»¿¿»·¼Ä¹²Å¸‚hppklljkhliiiknk`RQU^kqvprpowh_ƒ¡~hxwqrtuusppsuttpqsstutqpqxuvxgi”··«­´µ²³´²°®¯±²°¯¯°°¯­€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€N}Œ‚ƒ„‚€}€…ƒz{€ˆˆ„‡ˆ…„ƒ„ˆŠˆ†ƒƒ„‚|™Å̺ÂÅÇÊÉÄÂÎÎÉÈÌÌÆÄÅÆÇÆÆÇÇÇÃÐâîíâÒÇÇÍÌÉÊÊÆÄÎÍÆÅÂÅËŸŒ“ŽŽ‘”•—¤¥¡§§¨«ª£¢«¬©§©««ª©¨¯±ª©µº³¸·ÁÚÝżÄÀ¾¾½··»¾³³µ´¶´¬¯±®­±²±°³³µµ³±²µ¸µ½½«¶ÉÁÉÙ¹·×ÄžŸŸŽ•—ž¡Œk^`rƒ~gVKA>;8678986898679<>>?A@<:::77;:65899779;957<=9;ACAEHJJJNPQUXEqÑÕ—†‚|yl€±Å¿ÄÅÂÁÄÅÄÉÄÇÇ·Ÿ…nwpc\agc]SVIAXlZ832146876<9<BFFRtªÎËÀÈÆÁÃÅÉÊÆÊÊÇ×ÑekeV}ÁÑÌν¬ÊÌÊÌchqlghglmlmjgijonhgfdcimnkechnjjihgiknmomfachlmmkijnmjd]]YSPE>NbYbwqmpgV@/#%7J9(*,-1+*-/21,--)1Pjtzzut€‚vcdmcYXXY`ZP[gjlqlfkghlrx|‚††Šˆƒˆ‹{cg\OMNKHKPU\hifhcS?IRV[QM_ur_Wt˜cQv’‚hkqi`eaZdotvuwte]fsolstjkqmmmmmmmmmof[tŒ“¦²©¬¹¾¼¿¿½¼»º½À¼·¸»¼¼¼¼¹¹½»º¼½¸µ·º¾¼¹º½¿¿½½¿Á¾º»»·¶ºÂº³Å¸„hppklljkhkhhijnj^RQU_lqsnturud]… }fwupquqsssttsqqtsqsutsrqt{wwwdd–ÂÈ¿ÀÅÅÃÅÆÅÂÂÃÄÅ¿ÀÂÃÀ½€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€Hv„{{zxwuuwvxsko{}}{}~|€‚€€~||yy{vr•ÃÇÁÇÅÂÅÄ¿½ÆÄÂÃÉËżºÂý¼Âþ¹ÐæíêâÖÊ»¾Â¿º½ÂÁü»º½Äºœ‰ŠŒ“’—ž¢¡ž¢¥¦¨¨£¢©©§¥¤§©¨¤¦¬¬§©¬­¬£¥³Ôá̾¾ÅÂÁ¿»¼½¹º¹¸µ·µ«©¯²µ³¯­°´«¯¯¬«¯²²±±µ®¶¾µ¸Å® º²‰‚‚‡…}ƒŒ~d_o…‰vaSF?<98::8578:::99:=>?@?=:89999:;:8::878996::98=CB>DFFDEJOPUVDsÒÒ”…ˆ|xwm³ÊÉÊÈÂÀÆÌÎÄÅÉ¿¢Š~wtme_^`\SPPCJilJ0740/1577A38AEJNUŸÐÔÂÆÊÉÈÃÈËÈÌÊÅÔÒŽdjcSy½ÔÙàɳÐÐÊÌchqlhhglmlmjgjlkhhkjijkkkjhgijmlkhffhjnomhdgmqppnklnmid[]ZTQG?R_[lwccudUK=)+DY9(./+/,/0130+,.+7Ypuywrt}~rdflcYXY\]XX_cflpicfjgktvt{ˆ‡†„…ˆŠ…fWPSVUUTSZbifflfQFQRR[SK_ur`Xt˜dRw‘fjoi`eaZdotqqurcZcpsnpokorkmmmmmmmmqfZsŽ–§²¨­¼½¹½À½¸»»¼¿½»¼º½¾½¼»¼¿½¸´µº¼»º»½»¸¹¾¾º½ÂÁºº¼»¹´·Àº´Æº‡hppklljkhkhhhiliZRSV_nqprvurve\›xcvvootqpqtvtqorttutqqvustytstae”¾Ä»»¼¹¼¾¿¿¾½¿ÀÅÅÄÄÅÅÄÄ€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€M{Š‚~}{|~}~{u|}yxxy{}||‚‚~yw|x{}utŸÑÓÌÎÆ¿ÅÉÇÈÅÇÇÆÅÉÈÃÃÇÇÃÃÆÅÂÃÖçëêäѼ£¯ÄÍÈÉÌÅÁ¿ÂÂÄȼ™†ŠŒ‡Œ‘–—“”šžŸž ŸŸž¢  £¦¥ ›ž¥¦¡¦§¥¨¬£ž¨¾¾ÅÛßȼ¿ÄÄÃÀ¼¾¾¸µ¶·´¸¹±¯¸·´±²´±¬­²²­­±°¬¯¯°««³°«·«’¢¤tv„|xy}†‚shpƒŠzfXJ=;:;=;729:<==<:8>><=?A@<9:<<978;998667768:<<<=@B=CEDDHKJTQAvÔÏ‘…‘ƒ|xjz©¿¹½¼¸·»¾¾¼¾¾º«z}qc]\URTVTNARuh?/7643465318>?HKEKyÀÓ¿½ÂÃÁÅÄÈÍÑÇÀÕÒŽdh`Ou¸ÏÝåÁ¢ÃÊÈÌchqlhhhmnmmjfinnoqofchjlmljhijoonkiiknttqkhjorqrollnmibY[XQOF=W^`wvV\wgKGK85L[=&+..4.-2241*,/,<`uwxupt€ˆ„widhfbWUY[WU_[Z_jolgefjmnou€‰‚…‰ˆ„ƒˆŽi`cccc_[bhkfhqkLHUPO^WLato^Yw˜‹eSw’fhni`eaZdotsrvte\ftsmospklpmmmmmmmmqfYt’›­·©±À»±¸¾¼ÀÁ¼¸»¿¾½¹¼»¸¹¹¸¸»Â¾¶¸º·¶·¿¿¸¸¿Á½ºÄÀ¸¼¿¼º³¶¿ºµÆ»‰hppklljkhkhgghkh\TSS\msrtsooyl`Ÿ{gzypnqutpmpttoqsurpstorootqsvfl–¹½·º¼¹¸º¼¼»»½¿»¾ÀÀ¾¾ÀÀ€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€K‰ˆ€{ƒ†‰ƒ}…„‚}€„‚„…„€ƒ„‚x{€~{£ÓÖÈÈÊÅÂÌÒÊÆÇÉÈÄÇÊÉÊÌÌËËÍÍÌÊÚæîèÞÓ»“šÄÔÃÉÓÎÈÅÂÍÈÆκ—„Œ“Ž‘’——˜˜–—šœžšž¦¥ ¥¤šœ¡Ÿ¥£§¤Ÿ¥š”¡¹¸ÅßÞŽÂÀÄÆÿ¼½À·±¶¸·¸³®¸³²´³®­±¯µ±­°±®±»¹±«­°© ®¤™›š~q„‚}}|}ˆŽ‡Š‰†‰v]^]B66<:895777:=;78<===?B@<:;<:9:<<98;:67:96779:;<===@AGIEIVJBˆäÎŒ‡ƒ|m}¥°±¯¯²¶¸µ²¹·¸³uxi_`\LISWNOK\nS3852456;=6278;DIIJ\•ÆÊÁÃÉÉÄÆÉÉÎÊÇÚÍ”jncOy·ÌÒÚÁ¬Î˽Ðflnigfiopkkomgorqnmjghjlnmiehlssojimppsurlhlruuvtolmljd[ZYYRDCSUd€rNWqgLDJA?R_>'++-..-,2..0..(<fxvzunt|ˆ…sgfgh]WVXVUXZU]dgghhf^bgmrqsx‚ŠŠ‰‰…ƒŠŠuie_dib[ef__imhUHNKN]XObwtbXp•dSwhlpfbebY`ouwtwsb]hpollmkkmlkikookiklb]tŒ•¤´®­¸»·¼¼·¹¸´µ¿Ä¾··½º¶º¼¹¸½¿¼·º¼¸²º½º·º¾¿¿¾Ä¾·½Ã¿»µ»Ã¸°Å¼‰homjmnkjigjljjjg^VSX`krprqlotb_œqfswqnsurpoooonpsqoststrrutqsrj`”º½¸¹¸·º»½¼»»½¿º¾Â¿¼»»€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€M€’‡ƒƒ„…ƒ‚†Š†„„ƒ‡ˆ†ƒ…‰ˆ††‡‡‡ˆ‰‡ƒ€…}¢ÑÔÅÅÇÅÂÉÍÇÁÉÉÂÄÎÑËÉÍÌÆÆÍÎÊÊÚçîéàÔ½’Œ­ÄÁÇÎÍËÊÇÑÍÍÕ™‡Ž”ŽŽ“–˜˜˜™šš £ Ÿ£ŸŸ©ª¢¡¡¡¥£¥¦¤¦¢’Š”›” ÌàʾÄÄÈÇÂÂÆľ··½¾»µ°¶¶·»¹²´·²°µµ²±²²³¸»»´­­¥•˜–Š›†r‚zy{z‚‹ŒŒš†aT[VL?56<<;>::::<=<<<;<??>>@><98:==<=<:869;;88899::;:9>@?ACLUEU¨ìÏ“‡„€~yj¯Â¹¼ÀÁ¿¾À½¼¹®“vmrc`XNJQTNPIJY\E3976/.9=72/128BHJOOu®ÌÆÃÈÄÊÉÈÅÈÄÁÕÒ˜jm`MwµÒÚÓµªËÈÉΟjqtmiemmnpomlknusnmnljonlkgegklllnoomkouxsmmtzuvuolllj`Z]ZRNKPN[pzbJVnnQ?EHLY_A(+**-/003400*&4ayyvwpty{rhdedZWY\ZZ\[VY\ahkhbafgipwupˆ‰†‡†ƒƒŠ€dECY^NDT[WZfh`SDOTV^VQcvqaYs•ŽfUy‘jnrgbdbZapttrusfahprnmmlllijlllllkjnhatŸ­µ®²¼¼º¾¼µ¼»¸»ÀÀ»¸½¸¸½½¹º½»¶µº»¹¸ºÆļ¸»»·¶¾ÁÀº¹Àþ³ºÃ·¯Ã¹…homjmnkjhfhjhjml]USX`krpnrruwb_ƒŒhevxrpuoruupnqvpsqoqrrsrrutqtrimŠžŸž¡¨§¦§©¬­®­¯°°¯®®¯€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€N{‰…†ˆ„„ƒ„„ƒ†‡‚„ƒ†‰ˆƒ„‡………„„„‚…¢ÑÖÆÆÉÊÈÊÌÈÇÍËÉÍÏËÉÍÌÉÆÈÊÊÇÊÚçïêáÖ¿˜ƒœÃËÅÅÑËÌÅÉÅÄ˶šŠ“Ž•–•’•›žœ ¦¤¢¤  ««§¥££¤¦¥¤¤¨© ‘’—•¿áÖÅÇÆËËÆÃÆÇÿ¼¼¿Ä½±¶¼·¼¿µ´ºº²´··³±¯ª¯³¸°¨­«™•‹Š”r„zuy€…‰€œ¯Œ[U[TWQ;-26369::87:=<??@@><>B>::>>:;?;<:7898899999999;49?A@?ILCuÐóÀ„€€zj|¯Å¶¼ÁÀ½º¾ÂÅÀ·¤‡miqd\OL[bWIOEMWK95721)(272//--5@BFONVÃÇÀÇÅÊÈÇÄÇÄÃØÓ—gi_My¸ÖÙϱ¨ÉÉÎËhovsrropqsspnmrwwrrsrptqpnmjkmmlptustwyyuniltztwvpkklkg\]WOPNLKbypUFPgpU:;HSbc?'//.,..237..*%Hw|syxnwz|zlcaa`TUYZY[\XWXY]did]bjkfnzxju‚ˆƒ„†…ƒ…ˆsPDKNIJHO^ffglS@KVZ\RPduo_Zt–dSwhlphaba[cprxvuqgafoommnmmomkmmiimmkqi`rŸ¬±®µ½»»À½¹º¸¶¸¼¹¹½¹¼À¾¹·º¼¿½¹¸¼º¸¹ÂÁ¹¸¿À»¼·¹¿¾ºÁµ±¹Ã¸°Â¶€homjmnkjkhhhfhlj]URW`kqostrsucbˆ‰gfxxqorrutqqurlptvutsqqsrttrtriqz}|}{|ƒ„ƒ‚‚ƒ…‡ˆ‹‰ˆ‰‹ŽŽ€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€R}’•”‡†„‚„†ƒ„„€„‡‡ˆ‡†‡ˆ†…„†…ƒ|~~ ÎÖÆÆÉÍÌËÊÉÉÇÆËÏÌÊÎÊÈÆÉÍÎÌÉÊÚçðëâ×À•z’Äм´ÆÍÒÉÉÄÅȲ—‹’‘‘’––”˜  šž¤¤¦ª¦£ª¯­ªª©¤žž§¢¢¢˜ŽµÛÒÀÄÊÈÊËÆÃÆÉþ½ÀÇÅ·µ¼¾¿¹´¹½¸³±¯°³µ³°´´²®­´¬˜Š‰„‡wn~su|ƒ€‚†ƒ—°Ž[V]]Z^M2*020668759==>AA><>@@:??=;>?>=>;<?<899999999978::?@@MJf¥èñÁ‘‚‚}~}m~­Ãº½ÀÁ¾¾¿ÁÈÀ°›mjpgRJYd_WWIFQWF962,+,+(-3//**5?<=GTIs´ÇÁÃÅÊÉÊÈËÈÅÙÐ’bf^P~½ÕÎθ§ÊÍÇУknvsrrnuwssvtlrttvuqmpppqrpmlostuupnryzyuoklqvuxwqkkkkh^]VOTMAMjxcRIG^kU73:Mhk?&03/,-,122),)0`zsq|xmty{‚ufgdXTSUXYW[[VY[]]_`^Z_jnhjxykjy„…ƒ…ˆ‰ƒƒyaG=EQQKMYehjmP8@NU[QObuo`Yt•ŽbRuŽ~gjoiaa`\dpqtuuqibfrqnprlilplmkihlmmtg]u™¥²±¶ºµµ¸µ¶¸¹¹¼¾»¹¼¿¿º¸»¹´·¿½¶¶½ºµº¿Á»¸À¾¿·»Á¼²¹Â¼±¹Å»²Ã¶homjmnkjkhiifhjh]URW`kqosrptygb„‘jeuurppsonrusqpsrpprttstrstrurhmrqnmjkslopokiiktrqtx{zx€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€[¨¦¦™”‘„…‰€‚‹‹ƒˆ‹ŒˆŠ‹Š†ƒ‚€}‚~~ÈÒÃÅÇÊËÈÅÅÆÆÇÇÆÇÈÅÈËÌÊÌÐÏÊÊÚçðëâ×ÀwºÌ¿±µÆÑÊÈÉËζ’‰ŽŽ“’““–—•š¡¢œŸ¤¥§«§£ª­©§©«¤ ¢œ–˜—”’‰¹ßκÆÑÇÆÊÉÉÉǼ¾ÆÅÁ½¹¾Ã¿¹¼¾¹´»º´²¶³®¯²´µ²µ·´­œswseckv|}~…‡‡š°Ž]UYZ[_]J4299;:;;:8;<<=<;=@BA@@<8;@A?A?=>B=9<8999:;;;;?;8@?;K{µÜëíĆ|zzn~¬À½¿ÃÂÁ¿ÀÂĹ©–nc`^CJjp]QOCGNLD=7.-/3/&)/.+&(6?86@MC_žÈƾÃÊÌÎÌÎÇÀÑÑ’ad^P}»ÐË˶¦ËÍÃϦorzuompwzwvyvnrtwyyqlnqruurmnrsvyvqmqvrwzwpnrywywqllkj\\bYQSL@PwwURQCSgW:.,AkrF(/1-+//21,+*#@wqy}rmp{|~shcVNTXY[YX[^YY]_]\\\[]fmijvzmis„ƒƒ‡Š„€|hI?IPLKSbifglT<@HRZMB_tq`Wq•eTx€imqiaa`\dpqquvriafrrmpsnhkqnkjjkjlnqf`w˜§¶¯²·¶µµ´¸¼»¹¹¼º¸¹Á¾·µº¹µ¶½¾ºµ¸»¹·º¿º¶¾ÃÀ½¿ÁÀ¶±ºÃ²ºÆ¼³Å¸‚homjmnkjfdhjijli]TRW_jqoqqnrxfaƒfcrssuuqopstrrursuurqqruqrssvsgkwwmiimtpqssrmifnmosxyws€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€b¦¿²«£ž£›Ž‹Š„‰“†‡Š‰‘‘Ž‰…„‚€ƒ‚ÇÓÄÈÉÉËÊÆÆÂÄÈÇÅÊËÄËÎÏÍÉÉËÌÌÛèïêàÕ½xŠ¯ÄÉ·£ºÌÆÃÅÊÉ®Ž‰ŒŒŽ”‘”–—–”—ž¡ ¢¨§¦§¢¡ª³¬¨§¤¡ ¡——™–Ž’—”–¾áÒÀÊÐËËËÈÌÎɺ¾ÊÇ¿ÂÀ¹ÂÄÀÂÉÀ´¶¶»¸·¹³­²³···µ³³·°”Œu^`hw|‚‚‚œ©„\X[W_[b_F358<=<==:8<A=;?BBBBB<:??<=B?>=AA=:<9::;;<<=B=9;A=Jq¾çíè뾇ƒ‹|uti{«Â·½ÁÀ»¹»¿º±¢‘~jXMNDXtmWJB@CA===6/062,+)%&&#'5=74<C?L‚½È¾ÇÃÆËËÎÇ¿ÏÖ–cg^Nv±ÌÑŦ¢ÌÉÇÏ©pq{xrqtvy||xtrtz||{wqpwxyxrnpuuwyyvuvyuwwuomryyyvpnnli^]_YUSGB^„uLQVDGha@/(8euJ(.2-,/.31+1($S…xo~ylnq|~ztcMIU_XXYYWZ\YYZ[Z[^^\^biiiuxlmr|‚~‚ƒ‚€‡}ZGLOELavvigqU@EKT^M>^sqaVp•‘cSv~hkohaba[cprvvvpc]ftrklqolnpnjilljjnfc_qŠš«¶¨«µ¹¹¸·»½º´³·ºº¼»º»½¼º¸¸¸½¾·µÀ÷»¾¹µºÁ¾¶º¾½¹»Á¿·²ºÅ»³Æ»…homjmnkjfehkiijg\TRV_jpopqopsaa‡…dfuqquurttppsrmqprpkkosuqqrswsgjyxkhnswwvtuurkelmquwxur€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€a¤¿®£Ÿ ¡“ŽŽŽ‹‹Œ‰‰˜“‹–‘‹Œ‹‡……‡‡ƒ~šÃÑÅÍÌÈËÍÉÇÉÉÈÆÈÎÏËÉÉËÍÊÇÉÎÍÜèïèÞÒºŒrˆ°ÁËÇÄÈÌÈ«ŠŒ‰’‘‘”—˜™›œœ¢§¥¥§¢ §®ª¨£Ÿ¥©£“•””˜™•—–š»ÙÎÂÉÏÊÌÌÆÈÎË¿ÁÇÅÆǾ·ÂÇÅÂÆÄ»·º»¸¶¶³³º¶±±¶º¸´°¬§±®ˆghty}|{€{|€™ŽhU\d_b^`bVA406;99@>;?D@>ADCA@:>A@?>>>>?AB@??<<<<<<<<<;9;9>V…¸Õäâæ껊Šƒuqshy®É¹¼¿¿¼º»½µ«›ˆveWMQVa_L@EK?:668972374020(&'%'29418>=Cq²ÆÀÉÀÃÇÉÎÉÄÖ×—eh`Ms«ÊÑÂœšËÌÆزuq{xrruwz~}yusuyzyyvrsvwwvsnorzyyzwrsvxwutqorw|ztooplfg_ZWYOER|‰iJTVF>eoJ2*,VrM'-2/-0,.100'9m„ko}tipw}‚tj[MUc`USVZYXZXYYWWZ^^Z]bliepvihq~~tt~}z„‡mMHQAWkrrrqmO=EKUaWL^ro_Wq–aPtŒ}eimgbdbZapttqrnb_jutomnmmmjkkllmkkkgb\n‰™¨±¨ª·ºµµ´µ¸¶¶ºÀ½»½½µ·Áļ¸¹¾º¸¸º¼ºµºº¹¶¸¿¾µ²¼À¼»¾¼·±¸Â¸°Æ¼ˆhomjmnkjigiigghf\TQV_jpnlpptwc`„†ejxrpsqpprsrqqrolmqrrsqvqqrtxsfkvuow‚„~wnhffnqtuvuvv€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€[”°¥™–—”‡„‡ˆ‰ˆ…ˆŒ’Š’—†‰Š‡ƒ}†‡‚|{“¹ÇÃÌÊÄÇËÇÅÌÏÊÆÌÑÍÈÅÇÉÊÉÉÉÇÎÝèîçÜи•s‘Ä̽¦‘©ÄÄÃÊÐÌ®Ž‹ŒˆŒ‘ŒŽ“”•–•–šž ¢ ¤¬¨¡£«««¤ž¨­ŸŽ•›•œš¢ÈÞÊ¿ËÓÄÄËÉÈËÉÂÄÆÅÊȺ¸ÈÃÁĽ½ÁÅÀ½»¸µ·¹µ¯³·³µº¹µµµ¦dgy€}uv}{w~„“x[Y_d\`d`_dYA09@;7@?:>>>>>ACA=<=>?@A><>?@<8=A=>>>=<<;;9>?5L¼Ä×äçé㽎}‚xwxgt¦Â¼¹¸º½½º¶´ª–mc^\g]J;8<?B?317888588;=:;9/-*)/51.4:;Dt³Ç¾ÁÇÈÊÉÍÈÄ×Ó”cibPt¬ÉÊÞ’ËÒ¿Ó°vu~vurz~{{}xpyww{{utzuvwyxtrsxwz~zqpwwxywrpw€~zsoprled^ZYWFHmš‡ZMZTE9_yR5,"FoS)*/,-1/(13)&S„~jv|qgr€€|med`adbTRX_^\\[ZZXVW[ZXYeqk`jsi\p‚|jl}…yv}‰€`JIT]hnqstsUCHKOZTP`rm^Xt–ŽcSwhlpfbebY`ourottfagkooomknpkhlnllnlhuf]t˜¤°¯±½¿·º»¹¶´¶¾Á¹µºº½ºº¿½¹»¾¾´´Âø¶¹¸»º¸½Áº¶¼¿º·½À¼¯¶¿´®Ä¼‰homjmnkjhefgehkj\TQV^jpnqpmqvfb…Šgixttvpnpsuvuuuoosuomqsvqprtxsfqww|žš’•’‚k`eompqqoorv€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€UŒ¥¤¤›’’‡…†‡‡‡ŠŠŠ‚ˆ‡‡Œ†…‡ˆ‡†„ƒ‚€|{…²·ÀÃÅËÉÇËÉÍÊÂÅÐÒÌÈÌËÆÊÒÐÈËÜèíæÞÒ¸ˆs“»ÌË«ž¹¹½ËÒË­Œ‰ŽŽŠ”™›š¡ž› §¥ ¤¬©±ªž¡©£™’šŸ—”œž–¡ÎåÍ¿ÊÒËÊÌÌËÊÇÅÃÊÊÈÄ»¼È¾ÅÊÆÃÀÅÇ»³¸µ¯¶º»¸´µ··¶³·¼¬‚fl~Žœ›’‰ŽŸ”iT^_]^bb_^ccTB28?@=<?@:?CC@>?BA@>?A<9@AA><<=;78?A<:>?;8@8@w²Â¸ÕåÝä縊wrsiw¨Å¼¹½¿º»¼·±§’pdfrdK:3/:C<<37=849<=?DJONHC;2151.01:>Jt«¿¼ÂÌÊÉÆËÈÇÛÒ’agbPt«ÇÒÆ™–ÆÔÂʪvpxsosyzy{zvtw||{|ytvywy}{tswxt|„{pt|z{wppyxxtnkmnld\]\SPo ›uYSYT=3[zb?0!7fa.$86++2.4-&8t˜wmyjiv€ugcfdabbOO\`ZYWVTYYVWZ[\Zhun[bshZhzzff{~|xƒ’†g\gibhplnsoW<>JW]QP`pma[s”cVx‹yfnrjbeb\clovwvnb`hnnnmmnnoommlkjihhnh_wŒ¢¯®³¿¾µµ»¿¼·µ¼Á½··»»»ºº¹¹¹º»¸¸½¾º¸»»¼¹¶º½¹½º½º³¼ÆÁ¶¹Àµ°Å¹jnnigikjilkgehkk]USV\fnnspnruec„hhwrouxoqrssrqqttprxuoqrstsrurgkwq~ž¤œœšš˜ˆm[^imruutuvv€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€S‰ž™ž¡–†€ƒ…ˆˆ…ƒˆ…‡ˆ…ˆŠ‡ƒ€‚„€€€}€›¥®´»ÃÅÆËÅÆÈÊÍÎËÇÈÏÎÈÆÌÌÆÆÕãîç×ǯx–»Ë̯—ªÃ¸¯¸Ä芉Ž‹Œ‹ŒŽ–˜˜ž§¡¢£££¢¢¤­´®£¦ª¤›––™ ¡–’™¢”žËàÎÅÌÈÆÊÍÈÆÉËÁ¿ÇÉÊÊÀ¾ÆÇÄÄÇÉÉÃÄÈÃÀ»±²¼ºº¹·¸º»´´¼«|k…ž«ª¢¨±¡”§~WW_`c_ddccfhaW?58=9<@9=?ABA@@@@@?>=;<A?ACA=98:A@?>=:754><U–À¾¹ÓãÜâå·‰€vprgu¦Â»¸¼¾º»¼·®jioiK90..8@:209@827<ADKTZYTOJ?963476>@Nzª½¾ÆÌÈÅÅÍÌÆ×Ò’agbPt«ÅÇÁ ™ÁÖÐȨvr}xtv||z{ytrvyz}~wqtzy{~zsrx{|~}vsv{{|xqotz|yytmjjjhf\\VRo—«•nXVXTA6UuiF4%0]]5'/.,./.,*8]‹”vhydgy€yrfadb_``TOWZVWVVWWVVWWW[^fqpbdoi_etyhdx€urw‡ŠtcfddoytoppV>?IW^RO`pma[s”ŽbUx}gkmibe_Xanupprnc`hppnnqnhjqklnonmkjof[u•¦°¬¯»½´³·¼º¹¸º¼ºº¾º¹º¾¾»·¶º¹´·À»²³»¼ºµ¶À½¹¿Â»¶ÁŹ±¹Â·®Ã¹†imnjhjjighgfimlj`UOU_lqmlnqvvdc…†cfwrpuwtonrsrrttrvxsprsqrsrrvsinvpƒ¥¨š–šš–†jX\imsupnrtq€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€Ht‚x}‡‚ohmq{ˆ‰‚‚‰ˆ‡‡ˆŠŠˆ…‚…ƒ~~{|‚€„Œ‘˜Ÿ¦²¹ÀÈÉÅÉÓÕÎÈÈÄËÎÈÆËÍËÁËÝðç̸£‰v•ºÉȬ–¹É¾¸¹´°œ‡‰ˆ‰ŒŠ‹‹‘—š˜¥§¥¡¤¨¢ž¥®²®§§§ ™—˜›ž›’‘™¤–¢ÌÞÎÈÍÃÃÉÌÇÄÈËÆÄÉÆÇÈÀ¿ÆËÉÆÇÊÍÉÆÇÄÀÀ½¼¾À¹¹¼º¸¹¶·²»¬v”©³®¤±Ã¨‚}ŽiZfaZcfjjjhijihY9/;>:;:???ABBA@BCDA<<>?==?A?:9;B;785//4;9H{²Á½ÁÏàÚßâ´ˆ€upqgs£¾¹¶º½¹º¼·²œŒ}mojRB8431471,0;@93:CJMSZ`a`][QG@=AB<:Ca®·º¿ÈÆÅÆÎËÅÔÒ’agbPt«ÃÅÇ©›¾ÔËÍ«ytƒ}ytsz{z}|xww~~{|zutwx{~zsu}~{{}{ss|~xqnoruzzvolkkhf_Y[m‹¢¦‹bX[WTH:ImuR:)(Q]=+--+.,0$4Wœ‘rm‚wgp|}yoebcb`aaZTWZZZYW[\XSVXZ[dhigcdmjdalwiat{vpzˆ|d\aeoxvnklU?AHU_SNaqma[r”ŽgUv|ejnd`fbYanvqqvui_dmomlmnmnoijmopnljjaVp‹’¤¯®°¼¾¹¸·µµ¸º»º··º¾¸¶º¼»º¼»º¶¶¼½¶³¸¿½µ¸À¿¶¶¾À··À¼¬°ºÅ¸¬¿·†gloljjjgfghhjmkh]URV_jrrpmkqvge…†dhysorrqqrqpqtwqpuvqtwrnorrrwukkvw‰¤¢˜•˜†xhZZclttmmvyu€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€8[jd`b`UTY^qˆ‰‚‡‰„„ˆ‰‡‡Š†€}€€€€~€ƒˆˆ‹’š§³½ÇÃÆÑÓÍÈËÍÑÑËÈÉÉÆÂÆ×ðå뜂s—¾ËÇ©’³ÈÅÆƼ´ „‰Ž‡‡‘‰Ž“—š›œ§¥ ¥«¢ž«¯°­©§¤—‘•—–”•›¢ š§ÎßÎÅÌÉÅÈÌËÉÈÆÃÅËÈÇÉÂÀÇÊÉËÉÅÇÇËÉÆþ¾Á»·¼À»º¼¸µ³»· ™¨±¶µ¤§¼­‡zsaZbcaehlkjkjklnmS<:B>:??@AAAAABBBFGBBC@;;<><;:;>732.,3>@;gª¾µ·ÁËÝÖÜݱ†wrsgr¡»µ³·º·¹»·®›‡}{u]C6123012..3;?:9BLSTUY]acec^WPNRN@9Ot—©´¾ÄÁÄÉÈËÆÂÖÒ’agbPt«½ÆÇ “ÇàÌΫzv|yrv}}{}{vtw}yzytswx}|ttzy{y{|xuz€ztrppswyzwroqpnf[_—œ §XW`VUM=<dƒbA,!JcD,12))+/'Nt‡›Œkm~pet{urjd`aa__`ZTSWWVTS[\WRTXXWae^[]bgdg`fsi`q€yqw…„qbfilprojjSACHT`TOaqmaZr“bRw’dgmc_fb[bmsvtvrd^fqpnlkmonkijkllkjile\u‹’¦µ±²¸¸´¸¶±¶¸º½½¸³³º·¶º¼¼¼½¼¹º¹¸¾¾µµ¿½µ¸À¿»´½¿º¹¾»µ³¼Æ¸«½´‚flpnkkifgkligghgZTRW]irttniovif„ˆgjzsqsrnsurnnpqqqqrttrquuusqtpejv{Ÿ•”“†woh^[bgotrtyyr€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€6Vc^XUVSUTYpˆ†€‰Š…‡Š†„‡‰†‚…‚€€…‡…†‡‹” §´µºÄËÍÌÌÓÓÐÌÌÌÉÅÇÄÔî㻦œƒvÃÎÉ«–°ÒÏÄÅÉㄉŽ†ˆ‘‰““’’—Ÿœ£©¦£§£¢«±°¯¬§¢—“šœ”—Ÿ šœ¥ÈáÏÂËÐÈÈÍÐÏÍÈÂÄËÈÈÊÄÂÍËÉËÉÄÇÉÊÈÈÅÁÀÄÄ¿ÀÅù¹¿½µ·¹º¹µ´¸½¬…rƒ„ph`][^eighjhhjmnoonr^A:AB@>ACB@?BEIEGJFDB<=AC>97;>=84346<A=V”Ä¿«¬³ÆÙÓØÙ¬…ƒytuhrŸ¸°®³·´¶¹µŸ‰ˆnXC0.///020049=@AGOTUWX\afigeb]\aZJ@a‰¡°¿ÈÄ¿ÃÉÈÊÅÂ×Ò’agbPt«¼ÈÅœ–ÊÞÄÉ¥vt€}}tv}}{}{vty{|~vqtzy|{tu{zywz}vs{~zvtqot{yzxsqqpmf^wŸŸ” ŸtQW`WXQ;1[ŒtK/GjM**1'()(6f‚Š–ƒdk~odu|sjda^^_]]_b[WXXUWX^[XY[YWZ``\agcccg`doh`o}ytsx~‚zilppmppnlSAEIT_UPbrna[r“_Qw’choiab^Xbmsutun`[eqtonpmhgknmkiiiijpi_v’§¶°°¹¹µ¶¶´½º¹½¿¹µ···¹º¼»»º½¸º¾½½¼¶´½¾¹½¿¼¸½Á¿»¾À»µ²¹Â¶¬À¶‚flpnkkifikkfdfhh\QMS_lspnopuvdbƒ†ehvrrwuqqrssppqprqrtonvqrsrrvsipqx’¤›’‘Ž„xqk_]hjnpprttp€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€8ZdZWYZWWSYq…ƒ‡ŠˆŠŠ„…ˆ†ƒƒ„ƒ€€~~€€……„†ˆ†Š‘¤­·ÃÍÏÍÐÍËÌÎÐÍÊÊÅÒîṤƒwœÀÉÅ«™¶ÕÏÅÇÊÁ¡…ˆˆ‰‘Œ‘‘“—›£¦¤£¤Ÿ ª®­¬§¡š”‘™œ”Ž•š•˜¢ÃàÒÃÍÑÊÊÏÐÑÑÏÇÅÉÈÈÊÂÀÁÆÈÍÍÊÊÇÅÃÿÁÃÄÃÁÁ½¹¾Ä¹¼·µ¼º·¼Æ lU_bYXVYbcbehomkjknqokmzvY>;BC?BDB?>BGHDDGGFC?ACC?<?BC;636;=>>Q†°¸³©¥¬ÂÕÏÔÕ©ƒ‚ytugp›´«©®³±³¶²›Œ—•mTN;52/-+,++-37>EHHLPTY^aehkjihdchcVV~¡°¼ÊƸÃÃÅÅËÈÄ×Ò’agbPt«ÊÌ¿š—ÀÎÃɤut~{{rsz{z}|xwz}}~yswzy{~ztu|~ww€spz}}|wokq{yzwrnnkg^x–¥’Š™‘kPW_W\R6'Q†]7"DlT&!.,-))Nr„““wboymjyzohcdaabbacf`Y[YUWZ\ZVVWWX\cZXko``jf`cnh`m{ztx}{}{mkoqojkkkTAEKU^TRbrnaZr’ŒaRu{dkrh`b^Zclqrtwrc]dnsolmmkijspmjijkmrh[sŒ”§³©«¹¿·³´¹¼¹·»½¸¶¼ºº¹¸·¸¹º»»¶µ»¼¶°¹º¶³¶»¼»¹¿½¸ºÁ¼²­µ¿µ­Ãº‡gloljjjgjifceikiZRNT]jqpppptucb„…egtnptrprrrqrrrostqqsttrrtrrushpoz˜¢••Œ‚vso`Ycmnnorvwv€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€3]h^^]XTVU^sƒ…ƒ……†…„„„„„€‚}|€‚}|}ƒ‰„ƒ‡‰…†Šˆ‘–›£°½ÄÅËÊÊËÌËËËÉÃÑíḢ›tœ¿ÆÁ¨—µÊÆÈÎÉ¿¥‡†‹Œ‘Ž“—˜•–š¢œ›¢¢œŸª©¨§¡™˜—Œ“Ž”™•™¢­ÌâÒÆÎÒÌËÍÍÎÐÐÃÁÉËÍÌÂÀÁÅÄÄÄÅÊÊÄÅÄÃÄÁ¾½Çÿ¼»¾ÀÁ¿¿»»ÀÀ»¸¨…dZ`ba`^Z_`bgjropnjlpojpuyqW>;EABBA@@CFGIHGHFA=B@?@DGHG<77=>>HV¦®£¨«¦«¾ÒÍÑÒ¦vrrdk–­¦¥ª¯­°³°ž”žŽX?>-.+(&()((/6:?ILKNRV\`ceilkjjhfig^k–±´¼ÄÀºÄÄÅÄÉÇÆÛÒ’agbPt«Ï͸“•µÆÑÌ¥wu}z{pv||z{ytrw}}y{yuuxzƒ|rqv|z}|wvvyzzuonu|xywromjfg”¨ ŒŠšŽeSY[X`Q/!G‰•rD'>lT$%<63-Afx†–‰peonfmyqfddgecfedghbYZYSVZYZWTVX[^]NRlmWZje`coi^k{€xw|}€‚minohdhhU@DMV\STcrnaZq’ŒbRtŒ}hjjc^ca[clqssvse]guqmiinqnipolkjklmsh\t—«·®°½¿¶´¹¿¹·¶¹»·¶ºº¸·¸¸¸¸¹½Âº´¼Á¹´¼º·µµ·¸´³¿Ã¹³¹»µ¬¶Â¶«¾·‡imnjhjjihhfdfjjgZTSV]hqsronqsdd‡…fiupormnssnlnporttoottmoprrrwuklr}’•—†}sssaV^inprw}|w€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€;dmbb\WZZ\hy…‰‡ƒ„ƒ€ƒˆ†ƒ‰„ƒ†‚~…‚||‚‰„‚†ˆ„†‹‰ŒŠ‰—¥°µ¾ÁÅÉÉËÏÔÆÂÑî⸡˜}v¡ÇÍÅ©—¸ÍÅÂÉÊÀ£‰†ŒŽ‘‘““—“‹›š–—› ¤§©¨§ —˜˜‘•’’‘Ž‘–”›ª¾ÛäÏÆÎÖÍÊËÊËÌËÁÀÉËÌÊÂÅÈËËÊÆÂÅÅÆÈÇÇÊÈÃÂÂÅÅÿ¼¿ÈÆÀ¿Á¿º­›zh[YX\a_[[abjnflknmhjqrnquvzpL7BCB@@ABDECKLIKIB=@?ADEEGJC@DIBA\€©«£ «­§¦¼ÑÌÐФ€|soo`g‘©¤¢¨­«®²®œš˜}P;5)/,((,.,+5<=?INPVXZ]__afjjjlkhig`a–¸»¿¿½ÂÂÆÉÆÆÃÆàÒ’agbPt«ÁÏÄ££³µ½É£vu~}tsyzy{zvtw|}}zuvy{€xpr|y|zv{~zyvrpruxvxwsqqnk…¨›|˜bUYXYcO+@„ŸM+8lP#5P?53_v}‹‘|ninoioxria`db`ccbemdVUUQW\TTUYZVV\XNYur\\hd_cqk]i|€tkov{‡whjqjeikV?DNW[RUcsnaZq’ŒiUq†zjlhb^c_W`nwusvudX`oqljmnkkmjjjjkkkkkdZrŠ’©¹®³½º²µ¹¸¼º··º¹·¸¹µ³·º¹¹º·¹·¶»»¶³»º»¹¶º½º´¸¹³³¼¾¶¯¼É¹§¸±ƒjnnigikjgklhfffd_UPU`lrpinswtacŠdjxssupoooprtttspoqqpppstusquqgkwzy€’œ‘~}yyuaXeqsngkx}z€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€<fodec]Zairz~~ƒƒ~‚„‚‚…†……„~ƒ‚‚‚‚€}ƒ‰‰ˆ…„„ˆ‹ŠŠŠ‹– ¥­¹ÃÈÊËÌÑ×ÝìçÅ®§€u¤ÇË¿ ˜¾ÎÈÃÄÊ™‚‹Œ‰ŒŽŽ’”–“’––™žœ Ÿ¢¥–—˜–—‘‘‘‘‘™˜¢ÊãÏÂÏÎÎÍÈÇÏÑÉÈÅÈËÎÍÿÉËÍÍÉÅÄÅÎÊÄÇÌÆ¿ÁÈÂÃÈÇÄÂÂÀ»ÄÇ°”‚xl_VY_`]\XdebjpnjnnnmllnpqssvyhK9??A@=AEAAEGGIFBAA?AFGFINOGIKA]—­¦£ “™«¨¢»ÐËÏΤƒ„‚vrpjr¨©Ÿ¨±«¬­ –—{UD:0,0()-*,1/89<BJPSSYVX`fggilijifii_Zƒ±½¿ÅÀ¼ÆÁÅÌÏÃÁÞÓŽ_hbU|¯ÇÓÉŸ¡¼»ÃΪvw€yrq||{{ox{{}‚~ww|||~zrqwxz‚}vv{xzxpkqwwv{sntkkšš¨šwx[\ZZYbX. Jz|vT%<sN/Wh>'FmsŽŒwinwmoywkeddc\ZbgfdmbSWXQXZRSWVTVYYVUXim\ZgcXbmi`dtztqpqy…{lisndecT@DKT[QQgwp`Yr…cUvŒ~gjoa]c_X_krvuwrc]eqqnllnonloljjklkjpi]rŠ”©´ª°¹»º·²¶¼·¹¿½·¶¹¸º¸¸½¿»¸¼¼¹´µ»¹¯º½¾¸´»¿¹´Â¿¶·º¼º²¹Á¶®Á´~emmikkijghikgekh[QLQ\iolqoouubdŠ†dhyvttpuooqppqppoqsrqstrprrrsphmyrpŠ¤¢Œ~vu{vb[fokimtxyx€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€Aiqefe_[filu€„‚‚‚‚~‚‡‹ˆ…„ƒƒz‚zz„‰‡…„……„‚‰‡‡„„Š‘›¡©±¶»ÀÃÆÔàîç̸¬~w¥ÆÉÀ ˜¼ÌÆÂÄÊÚ‚‹Œ‰ŒŽŽ“•’Œ’˜œœ¢¤¡š™•–œœ™šŽ‘’‘•Œ’¿àÓÆÍÔÏÎÍËÍÐÏÆÈÏÑÐÌÄÁÉÊÊÈÆÄÄÇÆÅÆÈż½ÆÈÂÀÃÆÈÇļÄ©…rprjjgeilf\Q\cehklnnnmoppnlntutwxdJ=AA@BA>=GIHHHEBC@ABCDIMMDOGD_”¶ª”Ž“—Ÿ—˜¹ËÄÉÊ¡~ƒvqmdk†ž¤¡¥ª«¬ª¤£ŠaC;831,''**+/17<CHJOV[VVY]_`behiljehicYyª¿¾ÁÀ¿ÂÀÃÈÌÅÅàÍel^N{µÔÔÄšÁÇËÐ¥pyƒ|wyu}yx~{sy}{{~{ts||}€}urx~|zvssuvyzslpxz{{tsqjsŽŸ– ˜‡ŽrWYZYXaX-H~}iE$EqSAkf60Vuv…‚ndmsorxqga^_a]\chhhlaRWZU\]YZZWTVXVUX]km_\ddW]if]bx}}wvwrt„qgnmfffU?BJV_TQevo`Yr‘‡aSt‹|ehmc`fcZbmutsurbYbqsokjklmmlkkmnmjgoi]rŠ”©´¯²¸·µ·µ´º¶³¸¾»·¹¼º¹»¼··¾¼½¼¹¹¼¹²º¼¸³¹À¼²º¿¹µ¹½½¶±¹Ã·­À´€emmijkijfffiggmj[QMR\iomqolno`c‡‡fiyussoupkmqsqpptvtprtsrstrqurgiumj„¢Ÿy|xvte[ckoqnlpx€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€Knnafkf`jkls‚‡…ƒ‚ƒƒ‚‚„……‹‡„…†…„ƒ„ƒ|~ƒ„€ˆ††‡‰ˆ†ƒŽŠ‰ˆ†ƒ†‹‡‹’™¡«µ¼ÁÕãæÙƸ¦{{«ÉÎÄ¢–ÀÏÈÃÅËÙŠ‹ˆ‹ŒŒ‘“”“‘’–›žš—ž¥œ’”•—–”””˜ “‘–—’‘•½ßÕÉËÌÈÉÊÈÊÐÒÃÅËÌÌÈ¿»ÇÉÇÆÈÇÄÆÈÄÂÂÃÅÆÄÃÅÅÂÃÉȾ¾Â­ƒlkppjnporsnfY[dlliknonnoqpolqswtuw]?<>DGEB?KJIJKFCFFHEBEJKKKKKd´À©‘Œ™¢¦¡˜¿ÍÃÇÍ¥‚~€uqogm‰¡šŸž §¨¤¥™rO@:62.((')./18=?BGNSVXWY[[^beeegljfgigZn¥Â¾¾ÂÃÄÅÇÅÈÂÁ×ÐŽai`Q{±ÎÌÆŸ›ÂËÆЧrv€|xwr{{{~zps{}yzwtvy{€„€uquƒzw{ztsxyyysjjsy}wuumiœŸ“›™†‹ŒoUX[[Yd\0F‚€_:*PjUS|_/BkwzŒˆt`Uakmtupkif_efehhda[TLV\Y]]Z\\YVXVPNW^kmccgaX^ji]Ygu‚}uxtq{…xfflghjT=?HWaUPctn_Ys“ˆcUv~gjoa^faX^ltrtwob^hqoommlkjjoliijkkknh\r‹”©´¯°·¶²µµ´··³¶À½¶·º·¶º¾º¶¶¾¾»¹ºº¸µ·¼¸´»Á½··º·¶·»¿¸¯¹Å¸¬¾´‚emmikjijkifhffkg\RNS]ipnnonpsfeƒˆfjytqrnqpmmsrqsrprrnknqorsontqdhywjt’›…|{vyzdVblomhgpz€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€Fovilojcgiku~}‚„‚€€‚ƒ…„ƒ„†‡…„ˆ‡„€}}€ƒƒ†‡†‡ˆ‹‰‡†ˆ‡†‡‹‡‰Œ”›£©®ÆÔÒÁ»¸¤x{©ÃÈÁ –ÀÍÅ¿Áǽ‘‡ˆ†ˆŠ‰‹“—™™— ž˜œ£˜Œ˜–‘Ž‘–˜˜•”•——•–™Ÿ•ÂàÕÊÍÇÊÍËÈÍÓÐÇÈËÊÇŽ¹ÇÈÆÇÌÉÃÄÆÅÈÈÄÆÇÃÅÈÈþÂÅÂƺ’oksplmjkopnotcX\jkiiinoonllnqporvw{ypT<;GFFHAEEGLOJGKLMIGMLJOPJg›­´½¯“”žŸ ¢¡ÄÏÂÈЪƒ|tqohn‰¡™›œ¢¦¦¢_MG;20*,/,,201;AAAFLRRQWZ[[^figdgijhhii]h Ä¼¾ÅÃÂÈËÆƾÎÑ_h`R{¯ÂÄÈ¢‘·Å½Ó«tv}{vrqz}|~xow|yvz{tp|}€{qpx~vsz{utz~{ztkku|zrtshoŒ¢˜‡‡‰rUX]^\kf7E…`>7ZiX[}U5Xxs‚~iVCOW\fliiifbfc``]VRPLJUZWXXVWWTT[[SQW^iibcf[X^in`QUruurntƒ}jfnkhiS?@GT_SNarm_Yt“‰aTt‹|ehma`gcY`mvuvuncbhnqomkiijklkjklljhlg\rŠ•¨³¯®º¾·µ·º»»¶µ·µ²¶¸¹¹»¼¼»»º¸µ¶ºº·µ¹¿½··»»¹¸½¾¼·»Á¹­¹Å¹«½´„emmijkijjgcffhmh[SOT]ipotqmored„‡fiyrprprsqoppqupqrroqrqrturqvsgn}{lj„”„xqq€ƒi[hqrlehryy€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€Evpjjjiddit|usz~|z{|}}}}}}~€…||xtyƒ‚ƒ‚‚ƒ‡‹ƒ~€‚€„ƒ……†ˆŒ–­Â²²· uy£¸¿¹›–¸Å½¹½ÄºŽ|…†ƒ†‡‡ˆŠŠ’—™–“Ÿ š™œ’‰’Ž•™˜““––“’–™™‘—ÂàÑÅÉËÍÑÏÊËÍÊÁÆÍÊÇÆÄÄÇÆÅÇÉÅžÄÈ¿ÆÍÃÂÅÆÃÂÈË»£}hnpnqplkljhlsiXXflkmmmnnmkknpilou{xx€pL<CB@B@IHHLNHDHJHHJLMORKg•³¯·Æ´Ÿ¤¡¢¤¡¦ÂÍÁÈѪ€w€uqmcf•’’•“œžŽnZMC403.030.1..8>AFHJKPTSY\Z\bfffffhkjii]b™¾¹¼Ã¾ºÄÊÆÉÆÀÎÊŽfk\JyµÇÅÅ–­Ä½Ô§qxxsuuz|yy{ysw{xu|}vq}|}~{srz~~{ywwwxxutqlnv{xsvqi}œ£žž‡…‡tTUZ\]rp=?y„fFCave`oNGkyvŒnbTAILJNQRV[\]ZPHKMJHPNOWZWY\TVVST[ZRTUYce`dgXUYem]N[z{|{wmlu|qkrmgeUDGJT]SN`ql^Ys”‰aStŠ|dhma^faX_ltyqqod[ampomjihiklkjklkigke\r‹”¨²¬«¸¾¶³µ¸¶¶·¸·¶¸º¹·¹»º¸º½º¶±³¹¸²°¸ºº·µº¼¶´¸º¹¶¾Âµ¬¸Å¸«½µ…emmikjijifcfghlg[SPT]ipolfelsegŠ…eiwrpsrronmmpttopsrqpqoqpqqprofjwzpkz‰‚ys|Š€f\ejoneahoq€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€P|lhkkhigjwztw€}{|}~~~|}}ywy}€„zuyyv|ˆˆ‡‰‹ŒŒ‰ƒ~}}€~€€€‚‚–³¿°°¶žsz§ÂȽ™–¸Å½»ÂË•}…†„†ˆ‡‰ˆŒ‘–—˜——œž›˜–Œˆ’”šŽ’˜š•”™œšž”–ÀáÒÁÆÏÊÌÐÌÈÉËÃÇÌÉÆÆÂÁÇÈËÌÉÅÆȾ¿ÄÅÆÈÊÃÇÊÇÅÈĺ©‹mipppxruslijifocaillnqmmmnopmkirsswww{`B<C?<EEEEHLJJORMONFHNKYŽ²¶°½Çµ£š ¥¦¤¥ÄÒÈÑÙ°ƒxvspfi–‘ˆ‘Ž˜•{eZK<233,(*+-//3<?ADHKNQSPX_`]_dhgfdglkgh]\Ž¸¸¼¿º¼ÅÊÇÉÅ¿ÎËdj\Ky´ÍÉÂ’°Å»Ê¥qv€~xtty|{z{wrr{{z{zwxzz{€€xtxzz{yurrswwxuprwywxzpl©¦Œ——‰‹ˆoRORV[xyB5g{jOKe†uc_M]ss‚’d`\RR\VQKEEHGDC=>ISTURRV\\YZ^UWXWW[XPTRS_bbffZTVelUIa}~}|wrps{ƒwkljhhXILNU_UP`ql^Xs“‰bUuŒ}fin`\a^W_jqsprqc[dsonmlkjjinkhgijjjid[s‹•¨²®¯¹ºµµµ·µ´·¼¹·µ´¹··¶´¶¸·¾¸¯¯¶¸³²º»½»·¹¹²¶»¼¹µ¼¿²­·Ã¸¬¿¶„emmijkijigfhgfidZRPT\gpoqmksub`„„dhwpossmloplorqrqsuqorvtqststqiiuxtow…‡wr‚‘|]\ljprmkpw{€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€Nynorkannnv‚‚|z€€‚……ƒ‚„…~€„†‚‚yv„—œ™–•–—–••Œ…ƒ‚ƒŠ†ƒƒ„vƒ¦½±°¹¤t|¬ÊÒÀššÀÌÃÀÇÐƘ€ˆ‰†Š‹ŠŒŽ‘•—˜™œž›œž˜Œ‰˜’“–“‘’‘‘˜›š›œ›•“¼ãÔÂÌÒÉÈÍÌÉÌÏÆÇÈÅÆÉÄÀÂÄÈÇÁÃÇÄ¿ÅÈÈÊÊÅÀÄËËÂÂȼ£“{kmppqprutnlmicnkhhjiimonoprqomqsroquwxzqTAFEAIFGGHKLLOKFGGBENTn‘¯½¼¾Á³©¢§ª¯±ª«ÆØÓÝ㶈|wutkn†œ›”“•š¡“u]YI941,)""(..1;BECBEJMLILPW_cdgighfhlhej`X…¶Á¿ÀÀÄÇÉÅÆ¿ÑÍŒ`h^Ny°ÁÈÇ™Œ¶Ã¸Â¦us~„}oqw|}}{uov||{}yst{z{~vty{xz|srwxyyslnuvw||nm“°ª‘ŠŠ’ŠhTKLQ[ƒI-Okp]TgˆxbQOntrŠˆlacdh[VY\UMNNHEHHJSYXVWVY]\XUXVVVVWZZVXUU]acf][VUbnYI^zƒ€wyysoz†|leejkWGJKUaVOarl]Xr’‡_Rr‰{cfke_c`[dnrnrvob^itrnjijklljijklkhehc[rŒ•¨²¬¯¶¶³²²·µ²±´¶²²¶¹¹¹¶²µººº·¯®·»¸¹·»¾»¹ºº·²º»·±¶½·®¶Á¶®Á·ƒemmikkijbdfjhgkgYRPT[footqoqrceŠ…eiwpmrsnpsqonnlnqsqosxxqqrqpspfpxurvz‚|w‚ŒwWWmoomnrx}~€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€Dwƒqnqmhlpor}ƒz…†‚ƒˆ‰†ˆ‡…†ˆˆ‰ˆ†‚||ˆ–›ŸŸ›œ˜Ž†„„ƒ…ˆ‰‰‰‡„„‡‰~ƒ¢»­©²Ÿy{¥Àȸ˜ ÄÎÿÄ˾‚‹Œ‰ŒŽ’’’“–šŸ™’–ž—ˆ…‹–š‡‘œ”›žœ™˜—Ÿš”¸ÞλÊÑÉÅÃÁÅÉÇÅÆÈÂÀÄÄÄÆÅǽÇÍÅ¿ÃÃÄÊËÈÈÏÐÏÊú¢‡mglokntrsmlopljkloljoomoqrrqooqttjilmtzy~~hMGHFFFJJJMMKKQNIKOKRho{¡ÆÅÁű¤¥¦Ÿ¦·±©ÂÖÔßã´…zƒyvrgh“–•Œšž†jZZH50)&.'%,2.1<AEGGEBAABDAGWfjhffihjkeckeWºÊÅÂÉÄÄÄÂÅÃÄÜÈfkZHxµ´ÆËŽµÀºÄ¥twynuxzzzyvss{~~}vrwy{{qow~{z{ytuyy|zphmx|v|{kk’±­’ŠŠŠŠ–‹eWLJP]†‹O#)<^vk\gs]HPvruŠy^dgiv^T\]QGNTPKQRSY]\\ZVXYYWVYXXYYWWUQUUU\biiZYWQXmeR\x‚|v}ynns„‚rfdihTBCFSaUKbrm]Wq‘†aSt‹|ehme^a_[dmqsstoaZcnpmjjlnljljhhijihgc[sŒ•¨±«®¶º·±²¾º¸´¶º´³½»±°¹¼º¸´¸ºµ³»»´²·¼¹¶¹º¸··½¼¶²µ¼º¯¶¿µ®Ã·‚emmijkijbeilhehdXQOSZfnoilnprehŠ†fjwolqqqrnmrtqpooqsqpqqpstqpurfhy{wtqvzx{~r^^mvsooqtx{€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€Cu‚rpspkkjfqƒw{ƒ„†‰‰†…‡ˆˆ‡……†Œ‰†ƒ…ŠŽ›žš›–˜š™‘ˆ‡ŒŒ†‚…†ƒ…‰ˆ€†Ÿ°­¯ª”nu—§À·Œ¤ËË¿ÄÇȾ}ƒ‡†ˆŒŽ’–—“’– ˜–œžŽ…Ž“•Œ’–‘†™¡¢š•š™›¿Ý̺½½ÁÅÁ»ÀÇÆÁ¿Â¿ÄÍÐÎÅÉÏÌÍÌÁÁ¾ÇÌÅÆÊÂÈÎȽ¯“thjkmoqqolsqonnmlklkongksqnijopllpoprrrsvxy€y^FADDEEFHKMLKZNJPPMZnxp‚£¸ÈÊ»¬¥ž¡¬·¸²ÑÖÏÛçµ}{‚{rpcd„šœ˜”˜¤ €][aI00*$,*-+*4><FCDDCIRTSL@ATdebe`ckmgcd[V}¸Å¾ÄÃÀÄÇÃÈÉÇ×ËklVLz¦ºÅÇ–‹µÀÁͤow|usq{~{}~wrt{}~}vrxuz}}|wsuv|ztsvwxzyqiluztxyo| ®¨¤—‰„•¢Šh_YSO_…„Y++*@mqW]|whWj|r‹lae`ddSM\aSHNURPTYYWY[ZWVWYYXXXRSVUW]ZNMTVZelcWVXOWjgRYs~z}{wqsy~vf_dkXBDJT\RQ]qo^[tŠƒdStŠycima\a_Ybmsxptr`Yenomjijlmlfjmlgfimkf]tŒ”¦¯¬²»¶¯²·º·±³¸¶³µµ»¶¯´½¸±µÂ»´´¹º´¯³»»²´Á¿¯´Â¾¯²¾¾·³¼Çº®¿µdmmijieeggehgbhkZMLS^lqrqmhmm_f†…ghvspqqnppoopqqqpoopqrqppqruwo_h||uvxxtqtz€u`\kpmmqvz}€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€Cozonnmmmhcr†‚w|ƒƒ„ƒƒ…‡†ƒ…††„„„……‹‹ƒ…‘‡˜››—”—¢Ÿ˜’‘”“‹ˆ††…ƒ€{€•¤¤ª¦swˆ š…ž¿ÆÀÂÆÍÔ{……†Š‹Š’’‘“™Ÿ•’—”†„Š‘”‹‘ŒŠ”˜˜•ž—•»ÝÑ¿ÀÈÅÅÅÃÈÊÇÁ½¿ÈÎØÞÛÊÄÇÉÁÀÄÿÃÂÀÂÅÅÃÃÀ·§‘xijjnpnmnoonlijlopoljiijorprkgkppnnopqqqruxs{„nHAJCEGHHHIKLQKKQQQbxwqs{“¾ÑÀ¤ª¨§³¼µ©ÏÚÓÚ帀{‚{rpdd…š •™£™y]VUB0/,'-+***.;DEFBBDFMTU_\M:>Xe^_bflnihmbV~¼ÇÁÄ¿ÁÅÆÂÇÈÆØËllVKw¢¿ÇÀŠƒ²¾¼Ì¦sy‚~xuq{~{}}wqrz||}xpqyzz{xrpt{}}ztsuzv{{qjpwut€{j}Ÿ¬²ª—ˆ¢›|rg_[VfŽŠV.''4Seafpvdctmoˆ‚f`cWRTLScdSKUYPSUVWYZWTZZZ[[[[[[VTUW\ZRPTTV_d_YUWPWigOPk€|~|xqqv}}qcagT?AHS\RQ_on`]r‰„cSt‹zdhlg_b]V_ksvture]ervpkiijkliijjiiijjf]t–©³®­µ¸¶·µ¶µ®®µº½»´µ¶³¶¼·²¶Á½¶µ¹¶°®´ºº³´¾¿·´ÀÀ³°¾À²³¸Àµ­À³{`ikhkkhiefdijfggWRTRYippnooto^gŠ‚dftqoppoonoruroqqppqttqoooprxsgjyz{|vtwuqqwq`\hsqoqv~‚„€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€Cnymmnopti^l„ƒz€„††ƒ‚ƒ„……††………†‡ˆ‹ˆ™•š—“”–£¦¤™››˜–‡†‡‚|{|€‘››¡œ‡nqvyƒƒ’®½¿¿Å;|†‡‡ˆˆ‡Ž‘•™š˜•˜žšŠ„‹Ž”•‘ŽŒ‡Ž–œ ž˜š˜š¾ÞÐÀÃÎÇÇÊÊËÍʽ»ÄÑÛäæßÑü¾ÀÂÅÄÀÁ¼¶¸¾ÁÂÀ¥Ž€rfdekpqmknpqooooppqqsphchopoomkknprrnoqppqtv|z}{fMDHKJHDBDKPLJMRSWh|rtytqŠ­º¬¦£¯½¸°µÎÞ×Ú廃{‚{rpde…›Ÿ”‘˜š‰seXK<30..0//**3=CFKFFGHKLIFNSH?L\[`efgkgdkdU†ÃǿľÃÅÅÁÆÆÆÙĉgjXO}§½Ê½ÁÍÁŤsu}{wrq{~{}}vps{zwxuoouvx|{rouuvy{xtuyyzysmpvwu}tj†©«§ ‘ƒž‹oincb`n–“[2$',8QdmvwZi{j{”ya\[JFSZ[caTQWWPQWWUWXX[VXYXWVX[_WTWYXTLQTV[aa\ZWZQUgkSNgyy{{wsszzh`eQ;>FS\SQanla]qˆ†bRuŒ{dhjc^c`Z`jousvrd[cntnijkihhlighkljghcZq‹•¨²¢«ºº´´·»µ±´¹ºº·³¶¹¸¹½¸³¶¹¹´´»·³¸º¹¸º¼¼¸´¸¹¹²°¸»´±¶¾³¬¿²{`ikhkkhifechkghe]QPS\imnmlkrq`e„‡hjwtopppppoprssprusoqsptrrootsjg{~{|zxtxtu{xe^hppnlr}„ƒ€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€@pzjkqpkti_m‡‡zy€„„„„…„…‚„…‡††…„ŠŠ‹Š‚‹œ˜”™“’•’š¦ª¢›™›”‰……||y}ŠŒ‘xz}ux€~‚˜¨¯µ¿Ç³…„ˆŠ‰‰‡‡•—’–ššœœ›˜‹„‹‘“‘’ŽŠŽ˜ž¡¡”•™½ÜÐÁÄËÅÇÌÊÊÌÍÄÃÈËËÕãéàϼºÁÅÃÂƼÂÈÁ¾¾µ˜zgghmojopnkjklklprrpopsuslcdlpnmpqnlnqsnpppopsuptvyxeMDFGHIJKLMJGINRWdrwrz~to}‹žª®²¸´²½ÏÞØÝ纄~‚{sqef‡œ˜—–’‡{ttbJ<;630'-/*+9@@DIINPJD=515BMLHRaed_bkgdm\R˹ÂÂÅÄÃÀÅÄÄÙÊgiVP~©¾È·y~»À¯Ã¦vw~}ytq{~z||upu}|wuqnrqpptslktwvxzxwx||zwslnv{{wqq²­š‘…z‰’yeiqcehp”—i9"&..>Yo|q\ntpŽ”sa\WHJ]hcf`WTWTPU[XW^]UTXXZZURU[UQQX\\VRRSW`gaZXWZQSdoYMc~‚xvy|ywtu|zlbeR<=FS]SPaom_\q‰†aRuŽ|egic]a]Wamttosr`^ktrljmomklmjfhkmifmg^t—ªµ©­·¹³³³¶µ´·¼º´´·º·³µ·´±µ»¼µ¶½·®´¾º²±¸½»·¹¼¸´·¼»·¯¸Ã¶«½³€dmmijieeggbeffig[LKR^koqqnkstdi‡‚dfurpqrrrppqrpnmnrsortrrsrpottlly{€yvzwuw}vb[fptspvƒˆ…€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€Eu€qswtmyn^e€‡}zƒ‚„„‚…„„„††‡ˆ…ˆ‰„„˜–“¡˜—›•–£¢Ÿœ˜”š›“‰†{yrszzv|†…ƒ‡}z‰€„Œ“ž¯¸§…ƒ‡‰‰‡‡‡†‘•Ž”™–™›š—•Œ†ˆ’Œ‘–ž¢”“•˜»ÜÒÄÆÉÃÆÌÌÊÍÍÆÆÊÆÀÇÜéçÝǹ¾ÁÁÆÆÈËû¾­†ibfjimrlonnppooportronqtoqpg^epppsspnopmopqpppsusryysk_PMLNRSPMMKLQUYdpurtyywqh‚™®¸¸°²¾ÒÜ×áé·‚‚{sqegˆž•›—„xx~jNAC?<4$#&'0@FDHLLPMB;96999ESPP`h`VWZUT_RO–ÌÀ¸ÁÂÅÃÃÂÆÃÂØÏggVQ‚­ºÁ³~‡º¸«Á¤vw~ztq{}z|{toovvsqjejqonpoggpuvwwursuy|{rjnwz~zuw“®¦™–†{”–i]xuehll‚tB"!/13Ksriqxhzšˆi`]WMS`caicVW]\VY\WU]\TR[WX\\VX_YXY[\XROTQS]d_YZUXQRanXG\|…}zyyuwusuyqecV>?GU^SO`qn]Ys‹…aRu|dgic\a]Xantqmtq`[flojghkklmljjijiignh]rŠ“¦±°§®¹º³°´º·¶¸¹¶´µ·²²º½´°³µ¶±³Àº¯±¾¿³¨°½½¶³¿À¶¶¾»®®·Âµ«½³€dmmijieeegeeecih\VVSWejipposp`j†ghurmnnmnpopqrqpmorsstrssurqtrhnz{}xy}{vuwq^[houvu{…ˆƒ€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€Fq|tuupmrl_gƒŠ|sƒ}‚€‡†„…†ˆŠŠˆ‡††‚ˆ’’”ž¡”‘–•–’”ž ™’•Ÿ”ƒwtxqnjbi~ˆ”ƒ€‹}z~}}‡— –„€ƒ†…„…ˆŠ’”––‘“––•–”‰Š†‰Ž‹‰‡‘–”” ¥˜‰”¡®ÎãÓÃÈËÆÇÌÍÏÎËÀÃÉÉÃÉÙãë߸œ¡¨£¤Ÿ¡¤ª®¡acfjkfhkjhgjnolmpqrssqppqrqrhX\lrkqsqnoqqpqqqppru{vuz|vpqmdZVVVQMLKQWWWduuuursuuqtwˆ¤´¸ºÀÑÛ×âéµ€„{srfh‰Ÿ™ “yr‡~lVJIED>/%(.9FIHJSSSK>9<>?QMDNSU`h\PIB>DOLQ™ÉÀ¾À¿ÄÂÃÄÈÂÀÕÍŒdfWT„¯¯Å¹{„¾º§¾Ÿpv~}wrr|}z{{tntvsqrkfkonnqpihoquxzwttuxy{ulmuzyypt—¤‘—€‚—zZr‰ylmnfozsN'*2/Coto}zo“£z[VSNMYb`af_WY\ZYYZURVXTUWPOVZWUVUWY]]VNMVRS\d_YZZ[SQ]lYFZy„|yxutwsszug`W?>GU_SN`ro[XsŒ…bRt{dhjc^c`Yajonqurf`foonlklmmmjklkhghikdXm„ «¦¤±»¸²±¸¹¹·µ¸¸µ´µ°µÁ¸³·¸¶¬­¸¹°®º½·±¶¹´²ªµ¾¶¯¼Á³®´¼²«¿²{`ikhkkhi`gghedgeYPPRZhmnonjpn`h‹„fhwtrssnrsplmorsrstsppstuutqsnbk~~y{||{ztrwsc]iptvw|„„€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€Gq{qturoqi\e‰}x}}‚„ƒ†‚‚ƒ…‡ˆ‡…‡‡Š…|€Œ‹‰‘•Œ†‰Œ’“—“’Ÿ›–†wt}ofaZ_wŽ‹ƒˆ‡vozxx{…‹…€„„‚†‹‘““”••”†€€ƒ…ˆŒ‹•’ žŽ‡•¦¶ÓåÒÄÉËÊÍÍËÍÍÇÂÂÅÿÉÜèðÝ¢t{„ztuj|¡¢y_dgeacijkoljknpnmnlnprrqppwrqm_Yeskorpnoruqrsrqqsuy€wsƒ„upwrmjgaWOKINXWS^qvpswuuzsmq|‘²Â·ÎÜÙà浂zsrgiŠ œ£•yt…‰{ndXLDEFB76=FIHHGORYXNGDADZYHDITdfZQG>HX\HY£ÉÁÀ½¾ÂÀÃÇ˽ÓÍfiYQ|£«É½y‚ÃƷßpy„€yur|}y{zsmsupllifkkkiihfipmosvsptzzwwvnkszxwnu“•‚‡Ž|wv\i—•vqqldfmmZ1%-0=Xqy{u„¥›lVPMNR\ddge\VYVRT[XTU[[QFEDGNWZYWPPT\`VMNTSV^c]VX_]TPYj\JXu€}yxwtxtt|xiaT;;DU_SNbqm\Yq‹‡cSt‹zchlg_b]V_lsuuul^Ybkjnoljkkikllkhgghng[p‡‘¥°¦ª¶·³±°²³´µ¹»¶µ»»±±¸º´´¹¼·­ª³¹´­¶¹¶¶»¸³µ¶¹¾·°»Â¶®´¼²¬À³|`ikhkkhiafffffhc]MJR]ilnrnjqtekŠ„eguqmnnpqqpqqpnqtsrsppvqpqqsvqdlz||zz|qnqxud`mxyz|€…†…€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€BoximutmldZh„‰|y€†…‚„ƒ€ƒ…ƒ‚‚„‡‰‰‡ˆŠ‰ƒ~‚‹‡‚ˆ––Š‹‰ŽŠ‰ŽŽ‘šœœš‰yzud[\Y\r‹¢•}Œ€xruxx~„}„‚„„„‰‘•–’“Œ‘Ž””‹…€‚…ƒˆ‰„œ‹–›ž¾ÝÖÉÊÈÍÒÎÆÆÈžÁÇÅ¿ÇÚæïâ¥nq€{…•vmnfedagoidnkiimswvsrtutqpprtoqvn_arvrnmoponrssrqqsv|qiowz|ssssrngaXPS_`Zbsyvv{}xv{~rsts­³ËÞÛÝ㶂zsrgiŠ œ¦›v„†ysrdN@AINFAHOJHJHMOVYUTTRKPROICJZj\SF@VkeEa­ÌÀ¾»ÀÀ¿ÄÉͼÑŇdj[RzžºÅ´y|ª°·Â›kw„~wsr|}y{zsmltrljgehklkihefkmmszvoqz{yvpknux~zy}‡†ƒ“™”sfu”¥‹osqjefhib;'$(17>X{yu“ „^XTU[^^_^de[SY]XVWVX[\[RGINRTWZYUWRQ[`UMRQRV\^WRT[YROXi[IRp€ƒƒ|wuwytt}yjeQ88BT_TOdpk]Zp‰‰dStŠycima\a_Ybmssqwr^X`bjppjhlnlllkjihggng[p‰“¨´¨«··¯­¯¶¸±²½À²®»Àµ±·¹¶³²¹·²°·½¶«¶¿»³º½µ¯²ºº±³ÃŶ­·Â·¬¿µ‚dmmijieeegbbdgidXQQQXgmmklmsq`g‰„fhvspqqpqrppqqqtuomttoqsqporvpbf|{}~|wrsw|vgk{xwz~ƒ…€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€Gqz|wolscXd}ˆ€vƒˆƒ€€‚|„†‰Š„„‡ˆ…‚ƒˆ„‚ˆ“™—”–“‹ŽŒˆ‰Ž‘“Ÿjqpb[agit‚›£‘|†“ˆxkrv{€{xƒ…†‡†…„Ž•–”•–’‘–˜’”™˜ˆ€ƒ‚€‚‚™’Š‹•¸áÚÄÊÆÈÌÍÊÇÊоÂÇÈÍÚáëݦ|‡“Ž£§’tlqqojgfhlmiellmprsqostusomorvvqqskgounmsrqvqqpruursvkRFQ`ntrrw{{xtqokklrtjfousrrstrp~urttwˆœÌÝÜâæ´€ƒ|roce†œ¥›œ‰u|wbgk`LCFGENOIHPPIFJLS[]Z[^TPVUKFJXhZ@5.4RbQi³Ò¿¾Á¼»ÇÊÃƾ´ÅȆcg\Ty¬¶Æ¬|²µ¹Ê p{‚zwvr|}y{ztnorpjfdeikjhmoc`mpstsrsuvuwxsmqy|yyqyƒ…’¢²¥„Š£†vy{mjibolE)%)/3-W~~Ž¥’tZWUYYV^gcabWQ\]WXZZXW[[WVYXY\]YVVXQR]`UMLRQW^]YVTZXPMXcZIRm~‚|vzzwuuw}xgN>9BT[QO`pm\Xq‹ŠcRn‹€ehlf^a]YblprqspaWaoprjfoqllllmmlkjipc[qŒ–¤²°¬µ¹³­²¿¸¯±º¹±°³¶°®¶½ºµ¶±µ°°½½²­»¿µ®·¿º«¯¼»®±Áø¶Áų«¾¯zflieijhhgfeihgjd]TPSZenorolpo`i‹‚djwppurssplnrrnqooqrqprqrurosskn~„ƒ„|~€{{€~uty„}{~„†‚€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€Crƒ|zurssdYcz…{z„‚€€€€‚„…†‡ˆ‡†ŠŠ‡ƒ‚…ˆˆ„†Š“•—™•Ž‹‘ŒˆˆŠŽŽyfgm`Zbimv‚Žœ˜Ž}optuy€{}€‚ƒ„…„„‰”‘’—–’’••–œš‘‰…„ŠŒ††ˆ“ŽŒ‡Š•œ·ÜÚÇÈÃÆÌÏÍÈÉÍż¼ÃÇÏ×Úïá©‚“Œ–ª™rure^fhijihghqmnsuropklmoqrssqxtossnmqroqqqtsututqwvhQE@DIU_air|€}zyzqtuyzqlr{yusrrrrpptxxvw{¬ßÝÖå¸}„„|sqdf†¡ Ÿ‡og``caUF????OUQLQRIAIKQY]^afb]_YLDER\TD?98GNQwºÌ½Âļ¾ÅľÆºÌɈdg[Sxª¿Ì®~ˆ»º¹ÃŸqx|vtyywxvqonqpnlgcciliijeclnnquxvspwxytlmrtxuo}›¬­¤¢¡•£„m„…mlnalqR-!*/18g‹Š›¨]SUV[]Z`d_ccVQ[]UU[XRRWYVTZ[ZYZ\[WVRV^]TNOQR\e`WUXRWSOZf[FQm}€ƒxuyvutu|zoT?9BS[SP^pn^WoŠŠfTl„ybimc\`^Zdotusto_Xcrolmmgghfhijkkkjij_XoŠ•¥´®¨¯µ±­®¸¶¯±¹¸³²´·³¯±···º¶º±­¸¼´°´º¶¶¹¹¸´·¿Á¶±¾Ä¸¬¸¿¯ª¿³bjkillfeacehfdjg[SORXdmmspkom`j„fkwonroopqprtsoppnotsqssqqppushp}}‚€„€€€~{zxxw€‚€ƒ‡„€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€Dmytyyrood\g}†yƒ€ƒ€…ƒ†ˆˆ‰ŠŠˆ†ƒ€ƒ‡„‡‰ˆ‰‹”‡„ˆ‹Š‰‹‰ŽŠ„~qgjk^Zcjlw‡’–˜“†qcaovyy||}€€ƒ„†‡ˆ•‘Ž”™••’““’™•“’ŽŠ‹Šƒ…†‹Ž’’Ž—œµÙØÇÉÄÆËÎÌÈÈÌÀ¿ÄÇÂÅÓÝíæ­zˆ‚‰‹{migcbbhmkebejljlqsqprusqprsrqtusswrigouomrststpwxttjRFEFCAHUZ[cpy~}~~vz{zztpqtttsstvxsuwwzytn‚°Õç峄„}usfg‡™œœz[Z_ddWLEA@GNOYYQTWNAJLRX]_ejfa`WKDERZUIEC?CCWŽÄÅ»ÆƼÄÇþǸÈÊŠfh[Sw¦¾Ê¬{„¸¶³Âžqw|uswyz|uoonomjifegklhfhfisnpuywstyxxwpiluxyq‚“—««¡©­™–…htˆ~jjkftb5 /-.I‡—•Ÿ—gQVXY]]\ac^b`TP[]VUSVWVVTSU][XVY]]YTTY^ZRORTRZbZMMTYXPISb^MSmzz‚|vyxwtty{vZ?9DQ[WP`ol\YqŠ‡cUo…ychie^b^Yblqqpsn`Xanpptpgjneffhijjjika[q‰’¢³«¨²·±ª¬·¼µµ¹¸´´µ¸°¯ºÂ¸­¬¼º±¯¸µ­¯´µ±´»»¹µ·¼¾´®¹¾³³¿Ã°¨»¬wekjfjjhhfghjfdheZRORYdmmonlrqah‰divoorpoonnnooopqqpqrrrmnrsuwpbm|{‚ƒ‡‡‡…‚wy~€ƒ†‰Š€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€Gmtoy{sjsg[d|…~z„‚…‡€…„„‚†ŠŒ‡…ˆ†{}‡ˆ‡†…ƒƒ†‰‰…ƒ„„‚„‰…ŽŽ†|roslbcnlhx“—†”±žgQakswyz||}€€€‚…ˆŠˆ‘Ž”•”‘‘“——–•—™’‡‚ƒ„„Š•œœ–”¶ÜÕÂÍÊÉÉÊÈÅÇÌÉÄÅÊÈÌÖÜåæ±m[htŠ~mbcec_ahmkdadikoqqqrsrqqpqrsssrtomrtkbmtpnpqsusmrzscTHFGGFCFMSSV`nz~~}z~yvvtsknqttvy{}zuux|yuov§å沇~„~vuhiˆ™˜—j=RkcVHELHEO]MWXSUZSFJNSX[_bf^\]ULEBM^YOLMKIHg§ÌÁ»ÅüÀÅÅÂÉ¿²ÃÊŒhh[Sv£·È¬x}±±°Æn{zvtqx}€€zplqsrojdchljimkcbkroquvsv{yzztmnux}xq„”Š‘ª®¢§®¡›šh_y‹vikgrm?$1(/c¡›˜—wUW\^][YZacaa_TQY[TTWWUVWUUX\VRUXZYYTVZ]XQPRRS]g`TQU_WOLS\ZPNhz‚ƒ{sy|{wtw{{]<7EQ\XOdngZ\vŠeZs…wdkje_b^W_iorrsoaZcompnjjnlggghjjjiine_tŠ’£´§§³¹±ª¬¸»µ³µ³²³´¸±°¸º°­´½º±²ºµ¬°À¿³±»Â¾±¶½º¯²¾¾´´¿Ä²ª½¯zgliehjhidbafeegb[SPT[fnollmusbf†ƒgjuomomoooponpsrnpqosuointvuunbp„Œ‡‡‡†‰’ŠŽŽŒ‹„xy}ƒšª¡€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€GtwwwtqviZc~‡}w}…„†ƒ~…„…‹ŒŠˆŒ’Œ€ˆŒ†„†‡ƒ‚„„„…††„„…†‹Œˆ‚xqpiep}sbuš‘r‰»©gSmlmrvz{zw}}}}‚…‡Œ”™—–••“‘“—˜Ÿš˜œ™ˆŒŠ”œ –•¹ßÒ¿ÌÍÊÉÈÆÃÅÈþÁÄÁÅÐÖãä±bD]~Œ…jYajhdcehjifcdfknoopsutpprtvuroqqopvsh\irtsolswurprlVINKIHIHDHQVV]jw{~€€xux{xrrrrsuxzzurtxwusrkr§×¶ƒ€ƒ}wuiiˆœš™c,>\WB7AQKAJXLQRORVRFEKRW[^`ac`[NFA>J[ZVU[ZQN»Ð¿¾À½¼¸¿ÃÂǼ³ÉÉihZSv¡ºË®x€´´°Ä›nz‚zusoz}{rjmopnkddjigilja`gllouuqrw{|{umovy|zt…’…¬©–¢²©¡œnid|“yajrqH(*$?„©œ’€_R]^^^ZW\acadaXSWTPQWWWWXUVZ_YVZ^^\[VVZ\XQNPPS[]WRTWZSOQV\YOKcz‚…ytuz}yvw|€_;5DS\WMdmgZ]v‰bYu†xejh`[`\V^jqqqtoc\dmokegnjgljjkkkiihjb]sŠ”¦¸¨¤®¶³¬¬´¶±²··¶··³µ¶¶µ±¯²»¾´¯¹»´±½Àµ¯·¿¼®´½º®²ÁÁ´¯»Á°ª¿²~cjkilkgegedhggicZRPT\fonnmlqq`gˆƒhjtpmnnqppqomorllqrmqwsoprpptqfk‡•““”–š–‘”—––—Š‚||–ÇÙÁ€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€Fxˆ|wutsuiZd‚‰|u~„|‚……‚ƒƒ‚†ˆŠŒŠ‰‰ˆ†„ƒ‡…‡ƒ€ƒƒ€~€ƒ…„‚‚‡Š†}rkj``q‚u`o“”~…“yZ`unntxtqtxwwxyz|~†“˜™–˜š•Ž˜œ›–˜›““‹•–•š›ž»ÜÓ¿ÇËÉÈÉÈÄÃÄÄÅËÍÄÅÔáêêªVQ†œ‹i^]dghkkhhiihfedljikortupooruvspvqovysf]jppsrpsrqxrmk]OSPONOLFIUVX`koqw{|{wrw|zyupprvxyssuwvsqrqwiw¦§…}|vvih†š•˜˜i/-FXH8?QIAKWMNNMPVQB?GPVZ^`_he\KEB?KX[[YbdYX•ÈÏ¿À½º½½ÂÂÀø²ÌÇjh[Uv ¼Ê©u»·­¼šnw~zrp{{wxyrlrqoolfbfgiihfgimimtwsnqw|{yqjmvz{}v…“…±¤‡´¥¢¡€`j•ŒlhrpQ- *^¢ª›}`QU]aX\YY`d`]c_XUUSQSSVXZXST[YYWWZ]ZUWVY]YPLMLV`_USTTTPOPT]^RLbw{xowywvw|„gA5BT\TM`nj\[r‡€\Vt‰zdhea\a\U\homorob]birlhkljinkkkljjhgja[q‰’£´©¦±¸³­­·°¬°¸¸´²±·µ³µ¶²¯±»»²°º¹®ª½¿¶³¹¾º¯¶¾¿³°Áŵ±¼Á¯§º¬wdkjgjkggefghdaeaWQOSZfmmmmkrqag‡€ghtqoprsrrrpnoqortsstvxspnnrwrdi…‘Œ‰‹Œ‘’•”“—ž›”ˆƒzŒ½æèÚ€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€Hy‰}{zuptjYaˆ}}„ƒ„„€‚‡†„ƒ…†…†ˆ‹ˆƒ€‚…„ƒ‚ƒ€€‚…}{}}}ƒ†skjjbbo~ykv•’“~WUrƒ{rtwqkpwstvwxxxxzƒŽ‘‘•™—‘”—“ŒŽ•˜–š—“›Ÿ—ŽŠ‡‘›™“œ ¡¶×ÔÂÅÉÆÅÇÈÅÅÆÈÃÆÊÉÍØÞìë¥`x§˜rc__`bjlcijjjigedqomlmosvwtrrtvvtttrosyrdhqoovurnotojpm_URSPMMHJTTV`ikhmwssxxtw|yxsoossoiepzzutvwqtrp~Ž‹|€zuuig…˜‘‘—o50LaT=CVTOUXNQSRWb[DBIPSW\__bd^PMG>F[^^Ydj`e¢Î̾Á½¼¾ÅÆÄÂǺ²ÊÅŒjh[Vx ·Æ¥qº¶«º˜nw~zrszzvxwqoopqsridgjkmkhgiioqsutstv{{zrjkruuyr”Œ—º¤‚˜¯£¥¤“ˆkcxŒˆmml]6>®¥ˆdMP[_bVZVVae`^a\UTWVTVYVSUYVUZYZYXZ[ZVXVY_ZNHJNV]YRTZZRMORT]^TK`v~‚}tpvvrqqw‚vM7@SZQN_nl][p†€`Vq„ubjle`d^U\gntsrk`]gpnllkijkihhijjihgnbZp‰’¡°¬ª¶»²ª­¹´®²»º³°±±¯²»¼²¯¶»µ¬±¾·©¨¿¾µ²¸¹µ¬³¹¹¯¬¼À±¯»À®§º¬xglidhjijefgjgejgWPOS[fmmlllsraf…‚jjtrooqlmoppnnorqmntsoprpoquyrbl…‰ŠŽŽ‘•–”˜™Ž‰~ªáèÛÞ€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€J}‚€ytng[dˆ…†}}„…ƒ€‚ƒ…†…‡ŠŒ‡ƒƒƒ‚ƒ……†…ƒ€€‚„€€€€€€~vppojqmr~}‡™ŠŠ–†ZVžuiqtrpnstvxxxvuz‚Š‹•˜’’•˜—“–™—™Ÿš’–š˜•Œ…‡”™•”¦£›°ÓÔÄÈÉÅÂÃÅÆÈÌÂÃÊÌÅÈ×ãçä¨~™œtbcXX^`fmkiklkhfeflppiflsvutrqqqrsrrstxzpaautpuspqumdfqvjZWXRMOOOTUV_jlhipqqy~{||wspstm]ONg{{vwxu}lgnuƒŠƒ~ztuhg„—œ‘šr4=`cM8Daf`ZNNTYX`phKHOSRTZ]]ih\IFC>I\ac]hodj¨ÐʼÁ¿¿¿ÂÂÂÆÏöËÄ‹jh[Wy ³Æ©s}¸·¯À˜lzytquy{|}xqqmmllh`_fjggieadikqvuqpsvxxvpimw{y|q}’Œ–µ›}Ž¤£¤›ŒŠ‹t^`‚˜|fhe@!P˜®™oSPXcb\XZSQ]dbbc\TTWWTUVVVYZVU[\ZY[[YXYXUZ`ZKEJRW[XRUWTWMLRTX\XPbrv{„‚wuxtnkkq}W:>SYOPani\\s†}aVr‡xckoc_d_W_ksrqqj^\fnmjjlljiidefhhhhhnaYq˜¦´¯ª²·±ªª³¶­°¹¸²±µµ°¯·¾¸±±»µª®¾½³±¸½¶²¶¼¾¹³¹´¬±¾½³°¼Á°©½¯{ckkhkkgfigfigfhaXQPU]honomjon_g‰€hitsqqtppnmnopqmprrolntrqqqrwsglƒŒ‡Œ’–”•™œš“ŒŽÄïæÒÕ€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€J}{€€}tgY`|Œ„yƒ€|€ƒ‚€„‚€€†…ƒ…‡ƒ|}„„~€~|~~€€~‚|}|ulkmknkrzq}ˆxˆ‹ww‘°fjpmsloqrqrvwttx|‚…Ž”’–™—“•–•˜–—˜˜š  ™‹–š˜˜¢£¸ÚÕÆÄÈÄÄÇÈÅÅÆ»ÊÓÁÀÙèì๕xYV]YWZ\^bggilmhcejnqtpijrwsssrqprupusswyseamtnqvojchnopqpoebgfZWYS_WS`njcgqsutuy{yvnnxv_NOJTdtytrvwoqsoxƒƒ{wtvnj›”›ƒ?+HOB?QljTHINS[[e€wI>MQQVUV`feYKC<?K^b^agf\p£Ìɽ½ÂÄÁÄË·©ÂÊ‹igVSv›¶À¢py´·°Ášoy}yxttvyzyuplmpnjhfeghjkkjggjnmu|wqqqywvskjs{|yt„}”´™v„§«•y…’xh`m‘ŒfguI)o¬¡}`TYZ^c^YXTT\ddcb[UVXURRWVUTSRUYZYYY[[YWS[\\[NEKPY[URRTXUMHPVX[WN]ox|~~vzsjihjszkG7U`MMaog]\pˆ~`Xrƒwchja`b[W`jpplnl`^hpljiihfhlkkjjjiiieaXqŠ£³­«¶¸°®°³««®³´±²µ´³±¶»´­±·±ª®»º°«·¾¶®¹Âº°µº·­±¾¿¶®½Â±­¾®~fnnjlljkdbdddhhbXRQV^honlmlonaj‹‚gjvmhmslmprqnosqooopprsuwzuoql`l}„ƒ‰‹‹‘•‹Ž‘ˆ›ÀåñãÔÏ€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€PŒzw{}~uhZe†|z‚…‚ƒ†……}ƒ……‡‰…†„†ˆ…~†€~‚‚z}ƒƒ}zzzwuvvnhen}xdbvŠ„l‰¬ •™—~lhhhllppmmrvtrvpv€„ƒ‰‘••—••—•’”˜˜›žžž›—™œž¡žºÚÔÈÊÆÄÄÇÆÃÄÇÆÀÈÍÀ¿ÓãäÛ¸zeX\XY[]^\[\ahlhegjklsxumijprrrstrqqzywuqttd^isruuichijmnqtvxuusg\YYZZZ`mrlfilkhlx|xusrtrhacUJRkxtu|wporqpu|zttlh}•ˆ•ˆM+8MWZfseNGHGMTQ^€~SBNPRYWXcdbRD=8?T[cghflaa™Ìʺ»ÅÁ¹»ÃÀ¿Æ»³ËËŽfbYWy¤º¾¡z†º¸³º–lx}xtposx|zumhpqnljhfhfijjjfdgroruqouz{{yrkmtuxsnƒ”„™´•r~™§¬•}~”|idgvinL=‰µdWT]`]\]YXUWagea\UTXWUTRVYUU[XRWZZYXWWWWVXY^^MCLPUVUVTRRSMJRWXYSS^lu{yunid_dqƒxU=S_NLbrj\[qˆ|[Ws…wbhl__c^Yainmkppd^ekligijjjlkkjjiiiijdZqˆŽ¢±ª¥­²­­°´´±²·¹¶´µ¸µ±´¸³¯¶Àµ¬±º¼³«¯½¸«²½·­´¹µ¬±¿Àµ­¼Á²±Â­xdllhiigieehhfijeWQPU\gnmjommlbk‰hluoopmommnpqrtrnmqsqqupsvsptqel‚‹„„ŠŒŒ•™—–šž¿áíèâÝÚ€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€H{‹xuvx„zc_vwx‚~~~~€€€€‚ƒ~~y{€|{z{||{zxzyuvyzxtwtrwtje^dwm\j~ŒsœÅ¥†‡…zkgddlkkihknjhlnt„ƒ…Ž””“‘’”’’–›™™—–˜˜’Ž‘”—š ¥¢ºØÐÄÅÃÃÆÇÄÀÂÈ¿ÃÆÂÄÕèâЪ}^VY^VY\]^`_][cjlkjjihmqspefsuqquwspqssstqtsd]jvtqniluoknstuvwstyveZ\V\]Zcv{potnbgx|snqsvywuwkSK`rpmtwwstxrr}€yrqjfz†‘Œh?2J`fnvdIJLCJPJRqrPDHJOWTVadXFBGBBO`cdggldišÈÉÀÁý»»ÅÄ¿Ç¿µÅÃŒfd_Zy¦Ããz…¶°¦µ’grzurnnqvyxsmhmnnliccijkigfdeipnruqpv}wvtnjmqqzql‚˜‰š­Œu€Ÿ±šu}•zdnlq„€paI]Ÿ§qT\]Z]^ZXUXY]efa\]TTXTTWUUVXZZWWY[XVW\\XTWXX]_NCJTUTUWURRRNLSWWXRT^js{ztuunjow†ƒdCN]RMbtl\Zr‰{WUt‡xahm__c]Yainsnol_\fmnkjjkihhjjjiiiihldYp†£³«¥¯¶°¬­³´°²·º¶µ··µ²µ¸°¬´¿²«¯¶¸³«µ¼´«¶¿·­³¼¹®¯¼¾µ®¼¿°²Ä­taiieggefedefeiibUONS[elkjmlnl`j‰€gjuqrrnsqnmnqqpppnlnqsrqsvsptqck‹šŽ•—”–“‘™£ž®ËàðîéçãÛ€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€DxŠ‡€|‡g[r~xz}zwy||yx{{{z{~€€{yy{yvw{xxxyxxwvuvvttuussytsyte`]Zibi”ˆqw™¶‘hs‚Š†rihflkmoooqrpqwy€……‡“”’Ž’—™—’”ž›‡‹‹Š‘“”›¤ ´ÒÑÄÀÁÃÆǾÁÈ¿ÂÄÄÃÆÖí徑mWW]YTWWW\ba\]chjkkkjmtvwuhaiqsrqqsqnmrqsxyujZgtrlkkpsporuwwxxuqtvqe_Z_aZZmztu~vdhy{popry}zuvwjX]rtlqszuqstsx~ysrjh|’‘Œ…b8DXV^ueDHSOLLHHX^NEEFNURS_dN@EHFEHajghih[j¢ÇÆÄü·¿¿ÅÁ¿Éķ¿‡fdVRx¥¸À q}¹¸«»–fmtollprtutrommmkkhbagklkjheeilmswtqt{{vsqlilowoj‚˜Žœ¨‡tƒŽ˜²šgw™bnsku…ƒaS…©‰^W[ZXZXUWX[[\^_^`bYWZWXZZYWZ[VVY[\YX\``WOUZXZ]RDFSXXTSRPQPNLRUVYTQ]kv}~wswyrvzv~„lGI[UP[qjZ[vWUt‡xbgkc`bZV`jqqmom`\eljkllkiikjjiihihhkaXo…¨·©¦³¼´­°¹´±³¸¶°°´¶µ³¹½´®¶½¶®°µµ¯­¹¶¬¬¸»±¬¶¾º®¯¼¼¯°¾¿¬¬Â®waiieffdfhcacglh^UONTZelkmihpo\fŒ„ehvqnrukorrssplmrtrqusorsusquqcf‹Ÿ—‘˜œ¡Ÿ¦ªœ¦ÍîêèìíéÞ×€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€Bn€…ƒ€€‡z``}ƒ{€|{}~}|{{€‚‚‚€~~|{|~yz|}~}}}xx{}}ywvz|tt€{i^]\eXe†jn…¡¥„p‚ˆ„ƒrhmmmqorrqsrqrux‚ƒ…‡…‰“Œ‘–—“”š–‡Œ‘‹Œ”••§¹·À×ÖËÃÂÃÆÇþÂÈÄÊÌÇÃÄÒçÞ©}j^]^VVYYZ`e^TZchfhppjlttrunffmyzqpyxntvqsxwrfYakhhnoomswussvyvzxps{taZ[`^Zcrvo|vejz{qprsuywtt|}pjvzstsxwompssxvrpgdy“ŽŒ“o9=ODQqd>Ea_MGNNNOKHFIQVRT]\GBB42CLSfhcfkamŸÉżºº¹½ÆÅ¿¾ÇÁ¸ÆÄe_DEy¦¯º¡r»¾µ¸”djtolnoqsttrpnrnkklfdglmljiffjnoruspszxtspifjnnji}–”¤¨„kƒ•™­—`mŸ”hfqom{…gg›škW][[]_^\ZXZZZ^^`d\URUYXVV][WVYWVY[\^_^ZUPVYXZ^RDDPZ[URQNKLMMRUWZUO\lv{~€€}stuqv|uyƒuQJXVPcwn[Yqˆw[Ur†ybfgc`aZU`jrnkonb]ekjlmlkijjjiiiihhglaXp…©·ª¦³¹°ª®¹µ±³¸·¯¯´³°¯¶¼³¯·¾»°®¸³¨©¸·±¯¸·°°·¼¶«±Á½«­Àí©¿­xbjjfghfgkeceimj`VPPT\fmlmihpo\fŒ‚fjwplqwpqommqrqmpssqoopnnqqryugmŸš˜œ ¡¦¢¢­®œ¯åòèæëíãÛØ€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€Glww„ˆƒzp\a}ˆ€€€ƒƒ€€~}~}ƒ…†‡…ƒ€€€~€‚‚~~~|~{{~||sotuliZW`_blkm‚Ÿ³¡„’®ª”yjlmnpprqpssmlqu{„‰‡ˆˆ‡‰‹‰–”ŒŽ“”’•–’‘’“‘“˜–•°ÇÆËÚÖÌÈÃÃÅÇÄÀÂÈÄÈËÉÄÇÔßÕskc]\YY[\^dh`TY]adiopmqolpskbdltzxwxvqpnouvxwi^dmjhpssvyyvuwxwrvwuu{xn`[[^[]lznxqfo{xqnwywwzzy}}xvwuruuvupqvywwtqfbuŠ‘‰†Ža0;G?SnbHTxvVFNQIEFEFKRROPVRBA=))>JT[bhce_j—Èɾ½À½»ÂÃÁÃƼ¶ÊÄ‚hdCCx¡±¹¡z‚²°¬µ”dkuohjjnquurnlppomjedikkjhgdejoopstppwqqpjcfkkmlhx—¦ xk‡“–°˜[m¥›phsuiowo€–~^X_Z[\\``XVWX]cece_XRUYYVXYWWYXXY[ZYY[\\XTWWV]`PAEU]\SRURLGKOUWWZTO\jrv{ƒ€rrywx|zz„aPVSO^qiZZsŠ|\Vq„xcefa_b\Xajpplnl_\emnnkjijhfiiiihhggoc[s…Ž§²«§³¹°ª¬³´®®¶·±¯³·²±ºÀµ­´¼º««º¶§¨º½³®¹¿¶­¯»º­¯¾¾°¨¿Æ°«¿«sckkghighfeffehgaWQPV]hnmjmlnl`j‰|hnwonqqppoopqpmrtsqopruqprqsytdtŸž¤¢Ÿ¥žŸ®¯£¸èëéçêëçÞÖ€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€Hpzu~}yxq`_v…‚}ƒ}}†…~|€€‚ƒ‚‚‡…‚~~~~‚„†„~||~~~~~|{z{{vmiiklZT[knhv—¤®¯š“¦©œ˜xhmklrnnnnqrmlrvzƒˆ…ƒ‡‰†ˆŠˆ‡”‘‹‹Œ‰‹‘’‰ˆŠ‰Š‹‹™©ªºÔÒÉÉÆÄÄÇÆÃÄÇÄ¿ÄÇÄÌÕÑ …ohaYXZVXZ]bfc\^ZY]dinsrnpxxmcaikpvwspossuyvvwmdlywoqtvywuvz|{xyxwyzvuztj_]\Zbptvkerztmr{~zzzyxwxzywwwsrptxtpu{z{xukfwˆŒ‚Œ„R1BAFdmfen†nTPNHFHAFNROKLNPGC@98@FKJTikf\k˜ÉÌÄÂÁ½¼º½ÁÄȾºÎÄkkRNxœ±·žxƒ³¯¨½›giqg^_gjnqroljlppkfabhfhijiedgmnnrvqnsvtpicfjjpngpŒš§•owŠ‘²—Ws¨™xrqvmst~–j__d[\a^\^^ZXVZbddgaXSTVVWXWTZ]VW]\[VTW_`[UVWW]`N@EY]XOQVTPFLQVVWYRP[gou|€|suzwtxzz„nYUPM^ogZZpˆ|[Vqƒvagja`b[Wajpplol`[dklljghkkhiiihhgggnb\v†¨±¤¤²¹²®¯´µ®®´µ­«¯·°®¸À´ª®¼¶¨©ºº®­¹º®¨·¿´¦®½¾®¬º¼°©ÀÅ®«Á¬pbjjfhhfgccedacd_WQPU]gnmjommlbk‰~hmvonpnmllnopqrpqqoprsrvtsqrwp_o•«¨¨°¯©²®´¾½¸ÉæêéèèìëáÔ€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€Cp|pnopr{oaew€€€€}z„{~‚‚†„€}{||{„‡†ƒ€}€€~}~|y||ztnkhbca\fpn€ ›š–¤¢‚wx~oflnrrquusrpoq|zƒ„‹‡…‡Š‹‘“ŠŒ‹‰”“Œ‡‡……‰ŠŽ“‘®ÕÕÉÈÈÄÄÇÈÅÅÆ̾ÁÆÃËÏ¿Š{kb\VUXUY]adgfc][XZ`hlmmrutrqj_jorsvxvpptrrrsxxqqyxqqtwuuvxwtsusyww}ysw}se_b_]dupa_qyoirtuwywvxwxwvz{xtrrvzupqwwwtrjetƒ†~}ŠP;JAStnlƒ’€of]UNIAJTVPLMMSRJGJHGNKNLYgh[lÌ˼¹¼¼¼ÁÁÀÀý¹ËÈ‹kk[X| µ¾ t‚¾»­¹—acmfaeghjkllkkoolhgfccfhiihedhnmlpuqosvnhgdeiknlcjŠ ¬“q‘†’®ŽXq«œƒxfr{uuƒšYY^Z\a`[[^\ZYX[```d]TTXVWZY]ZZ[ZXXY^[Y\`_YRTYZ\]PBCSVSNORPNHMQUTUXSNXepx~}|wopvyw|„u^TNM`of[Zm„{YUrƒt_hndaaYT_ksqmom`[cilnlheghhiihhggggj^[wˆ‘ª³¢¤³¶¬©®µ±¬®¶µ­¬´·®©´¾¶¯¶º²¦§³µ­¬¹º±­¸»²¬·Àº«¯¾¹¥¯ÁÁ©¨Â®qaiieggeffdeedgf_VPOU\gmmlmlonaj‹…fgtolnplloqomnrsnlptssvsqqqsysbr§È¾ÈÌÈÉÍÖÚÒÐÞìèêìíêäÝÙ€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€Bpzpspms|tbe~…|{„„ƒ‚‚€€ƒƒ~|~‚†‚€‚‚}„ˆ†‚€~†~|€yvyz|yuqf_cdiiurh|Œ’‹ˆˆ†wklnknomqppoptusppxz~ƒƒ…’Ž‰†ŠŒ††Ž“”“’“‹‰Žˆ‘”’¤ÇÓÌËÇÈÆÄÇÌÈÁÉÁÇÉÆÒÄ–}wmc\VW\U\bdefe`a\^\`hghsuuuuqidclrrsvwtqpooqrstxvwyumpzvssuvvvwvvvuvwvtuzwkaacaopY[xwhiwxv||w||xxyyywxyrsttsqpprz{vmlx~‚}~ƒ~gSMHStoi}„“ˆ|gSDAMVSLJKLJROINUX[_YOUfebk¡É˼¿À½¿¹ÀÀ¿Ä¼¹ÑljhfVT{¢´½¤x€µ¸´»•^cqkcbhikmnmlknnlkjfdfkmkhgedfkhowunnrrlheadkonf^n«ªrŒ’„”¬Rv±¥…vz{vz{‡ˆnYX\^^]^^^][ZXV\cccg`TUZXST\_YXZXVXZWVX[[WUURRW]]M=CRVRQPNONMPQSVWUVSVemv}}yxvtvzrtziZOO_pj]ZsŒ{]Tu…uaeh_\b[T^lssnol^ZfphhkjefjlgdekmighkaZr†Œ¢®¨¨µ¹­¦©²±©®·±­±´²««·¾¸´¹º±§¯¾·¬¯»º²²¼½±ª·Â³¥°¼»±«½Éµ¨º­u`kihjfgeffefdfibTPMQ_jlghjjonakŒ„ghvtrojplnqnmqsostpnprtuuutswo]s»ãâÞÞßÝàâçêçãçíêëììêãÛÔ€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€Jv}qx{xy|vedx€|€}€‚~€}|€€‚€~‚…€}~|€‚††ƒ‚ƒƒ€~}zz{~|vojdcghcrzeo”–ˆ‘š‚`qŒpsopqnnroorttrrtwz‰‰‡ŠŠ†‰Š……‘’”–•”“•““Š‹‘’‘•‘˜¯¸¶¼»ÀÄÇÉÌËÉÂÁÉÈÉɤuqzp[W_^X\[^dfdcee^YTZghjstuvxuoiigmx|wqqusqqrstvsxzwuvvuyvtuvwy|wsqsttsst{}ukea_kkW^xvmuyywyzy{|v{~|xwxzsrtvtpnozzuqhdq{{z}u`NHbtimusƒŠ|wkXEJTZRKHGCITTNQWZ^bYMN[`epœÉÍ»¼À¼»¼ÅÇÃż»ÓƈgfVU{£²½¢u~¶¶®»—`doiaaghjlmljinnljgccgghhhgddipmoqmijmpnlf^`fjlh_m’­©Ž~‡š«yU³¤‡z€‚€y~€sc_a^]^`^\ab[VWW\ddabaUTXYXVY[XX[ZXVTVVWZ]^ZV[TSZ]M;?LXVPOOPKJNTUTTURTXflrzz„}wvwxvvsw‚€r]KK`nfZWoŠ|ZRs…ucgk_\`[Valpqmmh\\hojghhghjhjhgjlljjmd[s…‹ ¬¥§´¶®¯²·±©­´¯©¬±¶¯¬³µ®¬´¸´±´¸¶°®·º¯ª¹Âµ¦±¿³¤«»»­¦¾Æ¯¦½¬q`lhhifgecdbdcehb\UMNZinmkmlom`iŠ‚hkvqosstpnonnonqsrpoqssrrssswp_zÄçâÞáäâÝßäèæäçîêëëìëåÝ×€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€Gu}ptyvsvqcbu}€}ƒ|€€~€‚€‚zv|„ƒ€ƒ~{~€~{{}}~{wpifgecWbnq}‰‹ˆ‘ “pƒ§‘ktrimpmpssssrooqvw€…‚‰‹ˆƒ…‰††Œ•–™š–“•™”˜–Ž‘”‘”‘˜›Ÿ«¯µ¾ÆÈÈËÏÄÈÎÊÐÀ†cuxjY[\YYb^^ab_dlhc]W]ikhmpstuuohegmrtrppstrmmpsruxywwxxurtxzxrqqrtxyyxvuvy{{ysg\geU]son}yxyxz|ywxz{y{|ytqprwwrpquwxxlbo~||}|tbSTTZhqkjw…~}‚mTDFO[]N<;DLRSS\c`ZaYQNU_jr—ËÕ¿¼¾¾¾ÀžÆÀ¹ÉÆffWU|£²½ p}¸µ¦´’_dojehfgikkjhgjlkieabgijjkhcdkpopokjmngjlgacgfhk_m–°§‰“‹ˆ ¥q\ˆ¶§…‚|y{€ud^a_\bbb_]`_XZYV\gd^cZRUWVVW[YVVWXZYUTVXY]_\WWTZ`ZA4AOUQQTSOHKMRSOQVUMUdlrx{€€~xtsvwtx€{dLMcmdZVm‰]Tt…uafh_Z_[Xbklooqj]\delijkkllhjjhgillii`Yr‡Ž¥±§¨µ¶®­³¸²­®´²«®·¼²¯¸¹­ªµ¼µ±´·²°¶¸¼¯§µ¿³¤³¿¶§®ÀÁ«¦ÁŪ«Ä¯r`kihjfgeggefegjcWTQT`jkflmlom_iŠ„jmwokoqnnmmpqqqponmnpppporqswq`|ÉéÝÙßãàÛÝâçæäçíêêëììçàÛ€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€Gu~ooqppok_bw‚~€€€~|}€~‚€€ƒ‡‘¥ ‘†…„„€x|~}||}}zwwrikkeda[]{…km†“ž¥–›«gnqghqoqrpoprsssur{ƒ‚‡Š„ƒ‰‰ˆ’“—š˜“”˜š›–‰’”Š’’Ž”Ÿ¦¨°º¾¿ÅÎÉËÏËέslƒv`Y]YSX]_cecadifba\[gj`enutrsndajqrrvupsroljlnpxyxvtvvvquyysnnrtzytszztrvxz~~rehhZ_lko~}yytv|xwu|}zwxuqsrsvvsonrwz~sen€|{~€{q`NVKSon_nxqx…†rSCFN^cP4-6AEFJVcc\`\VQScrw˜ÊÒ¿¾À½¼ÁÈÇÁÆ¿¸ÉÁ„efWV|£¶¿kzº·¥µ“`enhcgdfhiihfedgihgcbfijiigbbhmmooifgghjhdainlem`m›±¤Ž’‚ƒ  kb‹²ž‹„}}~|oebZSXecaa`]YYYXXeqg\b^TSVWXUW]ZWVTVXVRVZ\[[YXWV[^ZH8?PTOPTSOHGJQTSRSUNVcmtxyz}wtvvssvz}jPSenf]ZnŠ^Uu†tadg^[`]Xbjknmoi]]egihjkjiifhifcdjjgjaYs†Ž¤°©¨´·ª¤«·´°°µ³©«¶²ªª¶¼´¯´¹³¬³½µ¬³µ¸­¨·¼³­´»²¨®ÁÁ¨¢½¼¥ªÃ©o`lhhifgeggdecdf_VROR\hjgjkjnm`k~eivqnnmgmqtvrlmppoopqrrppqqqvo^}ÍëÜÙàáÝÞßãèçåçìêêëíìéã߀€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€Gpzomnorqndew‚‚ƒ‚€€€}}‚ƒ€€€|}Š¤·¼·¬œŠ†Œ‰€|€~}}~|{{zvtmghkdcliYuxm’—˜‘‰nhnmknptrrqrtvwvvpyˆ‹ŒŠ†……ˆŒŠŠ˜––˜™š –”‘‹‹Ž‘“ŒŒŒ–š˜œ¦®´¾ÈÆÇËÌÁfy†q\V\]ZV^^befdeggab^Wcoc_lyyuvrghgiovxwtwrpqojmsswxsruwuvvwvtrv|wzyuy}xlnw{ww{yrnpebkow€{xzuw|wtrx{xxzytoqstvwtptuswtjo{~yx{iKGQ\oi\n~mjt{„|\EIS[[RD4(07=<ANXY]\WMPey|›ÃƹÀÀ¹´ÀÆÅÁƽ¶È¿ƒefXV|¢ºÀœhyºº¨´“`dngcfdeghhfecdfghhdcehjhgfedgiimpkghifff`]cheel`pŸ± Žˆsy¡¡i`‹¯œ‹„|}{xnhdUOZc^_b`]]\UW\kulac_TUY[ZX[YXYYVUWWQTZ]^[Z[Z[ZV[VE?JWUNNQQJELPSUMIRQV]hsy|{€~xuvvsrsv{‚pSQcmg`\o‰[Rs…ubgj\[b]V^ilnmpk_]eiigijhhheiifbdiifh_Yrˆ§´¥¤²´¨¢©¶¯¬®µ´«®»¯¬­´¹³¬¬¶´¬¯¼¶ª©º½°ª¸»¯«µ»µ«°¾À¬©¾½©±Å«t`kihjfgeefddddhaWRMNZfmmkljml`k~eivqnnmppooqmmrppppqrtvrrsqqum\€ÓñáàäâÞåäçêêæçëëêëìíêåà€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€Cjxuxxvtzyojs}€€}€z}‚€€€€€†€ƒŸÅÓ­¨œ‹‡Œˆ~ƒ|}~|zx~ztmfc_Y^jj\y—†~‡ƒ‡Œ–ž‹ukmpjknompqqpqsstr|‰‡‚‚„†‹ŽŒˆŠ“—”’’•šœœ‘‘’––”’“š•Žˆ‡‰ŒŽŒ”¨´½¿ÁÉѳxhƒaXca]__c][beefjhaa`WdtkZfuzvwulieelqtvytvurnopqnpsuuuvyyvuwxxxzxwvuuwxytyyusxyunshbis|}uvz{||tpuwwx{{urttrtwtosuruump{~{vztaEWr‚m_opf\gu„^JMTYXTLA66<BBAGG?NXWNVlyxšÄɼ½½¸¹¾Á¿¿Ç½´Ç¿ƒfgXUz ¸½šjzºº«³‘]cnidgdefggecbiihggdcejljggfefjgijd`aceikhbdgfgj`u¢­›‹‡zdt¤¦gVŠ² ˆƒ|zxxpf^YZac^ac]`b[W[akrnge^WY\YUU\TUXZWWY[ZZ\a`[VVWWWX[TDBKVSNOQQJFOPQRHAKQSUbox€|€{trtxtsw}„vVJ_kf^Znˆ{\St…ubfi]\b]T]hmmmrn`\dhliijijiekjhfhjigpf]t†Œ¡­¨«¸¸­¬²¸±«¯¸´©¬¸²«¬·»±®·µ­©±¹·®¬¹½®¨»Á³ª¶À¹®°»¾²©º»ª­Á¨q`lhhifgedecffilfSRPT^imloolmk^hŠ„jmwokoqnlkpsqorvtrqonnptstrqum\Òïáââßßèæçëëèçéìëêëëéäà€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€Eo{‚‚}~ulr{~}}|~ƒ‚…„~€€€}‰°ØÚÀ«­›‹‡‰ƒ}{€}||{x~zsmjc]\elf^zˆtp{qsˆ¡²§ˆyrnnkkninruuuwxwsv~„‚~‚Šˆ‘ŒˆŒ•“–˜˜›œ˜‘ŒŒŽ“”œ•Ž‰ˆ‰Š‰…ŠŒŒ™¤«±´½Ê kxŒuU`wfXab]\^cfefigb][Xapl[]kwvsrmdgkosvwvqwxqnqroolouxuv{{wttuuvxrruvtsvz{wtuxxvtprgaht|wvwwyzwvuz{{zxvutrrqqtxwsrxwzynozz€vuxs\r”—tm~y_JSf}|[LRUZ\VKDBFGLOQQE0AUYRauxršÊѾ¼¼¼À»ÂÅÇɺ·ÓÀ„ggXTx±¶˜n}¸¶ªº•_bng_`degggecbijjihedgijigebaehgihddhihhie`bhkjg_z£©—ˆ}m_zª¤bN‡°ž‹„†…†|ysg\\aabbbacb`_baisrjdaZSVXYXWZXXYWTTWVTW\_a^\ZXSSX^S@>NSNNTUPFDNQSWOB@MRTams|{}{zxuuvwtx|ƒ|_I`mg[WoŠ|^Uu…t`dg_\aZS]hmilpiZ[hokhhhfghfjhgijhffkb[sˆ¦²¤¨¶¶ª¨­³¬¦­¸±¦«µ¸¬ª·º­ª¸¿³®·¾´¨§½¾¯«¾¾¬¦´Áµ¥¬¹¹¬­¾Ã¯¬Â®q`kihjfgebcbcceibUSQS]hmlpolmj^hŠ‚hkvqossolmpppqqtqpqsstusstsswp^€ÏéÜßÞÜáæäåéëèçéíëëêêçã߀€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€Is€ts}…„~|smt}|w~‚€}~ƒƒ‚‚‚€”ÀâÝǽ§Ž}}€€{|‚ƒ|y|}yyukhkjipink_gvj\WlŽ¨¾¦~wnrsmnnorsrtvsoxxz~‚‚‚…ˆ‹Œ‹‹Š”™œ›˜˜›˜ŒŽ‘”––’ŽŽŒˆ…Ž’Œ‡–œž¢ª¹ŠaƒgYs€`YeWW^caaeijoi\YZannaZevvpomfeejqvtqutvxuootqpoptyzxwvvvtsw|~zuruxxuztu{{tsxwuidjv|twwtyytwxyvuvyywuurpqtvvtpsqy}ss}|z}|uz{mw•›‚w……YCEOix\KKPUWXVMCGIPSSVO=?XYSf{|vœÊ͹»Á¾»»¾ÁÆ˼·ÓÁ…ghXSw›©°—q€¶²¨¹“\ania`degggecbfjlmkfeighhigcdkegjhehljkgec`bgimd^}£¦•…tea„¬Ÿ]L‚±¢……‚ƒzum_]`]_e^_le]juinypa_cWVZZVWY\XZYURUVQRY__][YW\[XUZVE=ITRNRVQDIMNQXYK=ALSdos{y||~}wrtzzsvy€iPcqiZVq[Ss…ubgjb\^XS_ilfmshXZgkllmkffjkhdeijfccg_Ys‰‘©¶¡¤µ¹«¤«·±¨±½³§«³¸²®²¶²­°Áº®±¾º¬«»º®°À¸§«¸Ä± ­¿º¨«¿Æ¯¦Â°m`lihjfgehhffdeg`VSQRZejjmmjlk_j„ghvtrojllpropqosomorsrsrqsstyra…ÑéÝàÞÞéãáâçêèèéîìêêéæâÞ€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€Lwuy‡†wfdx‚{w~{‚€ƒ{€ƒ||‚ƒ…~žÕëÛź¢Œvr}„ƒ‚„„}y~~ywwtqppoljlpifyƒpX\ˆ“ƒ¨É£|vnpomllsrqqsuusrssuy~€€ƒ‡‹Ž˜˜”“••”–“”—•“™—ŒŠŒ‹Œ‰Š’”Œ•—ŸžzmƒxYl‚v\[ba_\]adddeih_[\cppeZ`kvztrfcfkmqwzttwyxurpppqrtuvvuuxyxyzwxutwzwvzxutvwvtttmcdpxxx~xx{{zyvwxxyywutquutuuw|yqs|{su~€{y}}tz’Žv~›˜yO@BAc‡iGHQSQSROMKJJQYWRRS\\XjzršÉÊÁÀÀ»»½Ã¾¹Á¾ºÎÃeeRPx›¦°—nz°¯§¾”^cmhb^cghhjfa`cghggdcejihhgdceenofbghcgfeddeginec‚¢¡yi`Y„µ¡ZH…­¢‹€‹‰wtzugab_[bdmz}mfw{gisldbZXWVXYXWVTXYVTUWWXY\_]YVUWSVZ\TB;NQNNUTLIKMSTSTOAFJQ[ht|€€{vstvrqqu{}oYbmj^\qƒy[Rqschha[a^V\dioopk_[clgknlllkhiiihhggflaZqƒª³¤£¸¿®¨¯´±¨­¸±¥©´³ª«¹¿´°¸¸³ª®¹³©¬¶·°®»½¯¤¯½³ª¸Ä¼¨ ¿Æ­©¼§s`lihjfge`dfigfg_TQQT[gmijkhmh\m„flvqpoqmmnnnqqolpqppoqurppqtyq^ÏïßÛâççåãåéêççêéììììçßÝ€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€Cmwnortupphjz€~}†‚‚†‡‚|€„}€ƒƒ¥Øíßų®¤‚htˆ†|†€x{|z|xrmllgacnfl‚xmƒ“ˆ„‰ž£ˆztooqpmlrrqrtutstuuz‚|~†ŒŒŽŽ’•““•˜—””‹•—“‘“”“““‘Œ’ŽŒ‰ˆ‹‘ŽŸ“mtƒjg}zia^][`\\bfffhli^[Y^kpj`^cpyrojedimsvtuwvtsutqnquvsprvttttuyytwutvywuwwvvxxvsq{m\[l{}{wxvwzxvwzxwvustwsrtvux{{qpquwuuz}€€zx{kUUXVaŠ˜{PCE@TzlKFNPPRRPOPOKNX[WUT___uwv›ËÌ¿¿½¾ÁÅÁ¾ÅÀ½ÓÃeeRPw›¤®˜r³®¢¹[akga_bijhfbaefijjidaaggggebcegcbeebejiheb_`cfkdd†¥„rf^[ˆ³˜TJƒ«¢Žƒˆqsysgdeb]bs‚‰…o`jsiklcfgYZSPUWUUYVYZWTTTTXY]_\WTUTRUX\YJAIRPLRSKEFLRSPQROWNN\lsx€‚€|xwvvtnlov~wd^jj^Zp…`Wu„tdgg\X_\V_imolkg^]elhihhhjjjiihhggggj[Wv‰Ž§¶¥§¸¹©«²³´¬®µ¯§­¹¹«¨¸Á·®³¼´«±¼²§¬À½®§³º´¯¹Á³¨³½¸«©ÀÀª­Á§k`liijggeegghddf_ROOT\hoknnimi]p‘bhsopprlllorpnqqoqrqsuttrqqsxo\†ÐëÞÝãåãåãæìéãäìéêêêëèá߀€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€8anggdehlngfw|{€|‚ˆ‡†‡…~|‚†}€‚…¦ÔèÜÄ°¼¹fo€|†‚x{~}|xvohhkh`cnin{jo¡¥„y‚ŠŒzyunnrmmqpqsvvtrsqu}‚ƒ‚„ˆ‰ˆ‹Œ‘‘”–˜œ™”’’––—š–‘‘Ž‘Ž‹’’¦’sqmk„…i]a[Z[[Y\beeehkg`][\irlc]]kxtmfdfhlrxwsrtwxtsutpmqtsrswuwwvuvt{yutwxwxwvuuvxxwxj[[o~~wwzzxyxwx|wtvyyxvwtuvuvxvwwttwtsw…ƒ{olqhS<3=CF`q_LCG@DgnRCJLMPRQRQRNKSYYWd_\e}qs˜Èɾ¹º¹½ÃÄÁ¿Ä¼ºÑ‚efRPwš§¯–q€¶® µŽZalhcadiifeaafeggffc`agghhecdgiihggfdbghigddgjide‰¨•vhi`a‘¶”SQ„ª¡…ngqwpghhc_qŠ†}kbprmoj_ei\YWWWYXXWWWWUTUUTUY^`^YXZXVXWYXK@HSTPSSKEHMQRTRPQTNNYhsxx~{xxwuumosx~l`gg]Zo…^Usrafe\Z`[T_ikfkql_Ybkkihhhgijihhhhgggmb\t†¥® ¤·¹®®²±²¬¯´®¨°¹µ¬­º¾°ª²¸²ª±¼´ª®½»°­»¿³ª¸Ãµ¨±¼¸©®Á¿©®Ã¦g`lihjfgeghffccgaVRQT[flhikiok]m‹dktqrrsqspmqolnnorqlloqvsrqswnZˆÒîâããââæãæìéàâìëìêêëåÛÖ€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€4\hdc_afh_S\w„€€|}…‹‰~wz‚‡‚~€„‚žËÞÕöÆÇ”afy|‚€ƒ|}}y{u…„xi[]ceddfz˜—€su‡›’wwxnouronruwvuuuuuwz€„†‚}€†Ž‰‰Ž‘‘””Ž“‘Œ“’Ž’Ž‰Š‘‹ŠŽœ—‡vq‰•u^`_XXZWZ^bddefhhdb_^grkb]^gvxocdfhiqwyruvwwvtqlnqrpmpuuqs{{xvw{ztsvxvvxyyxxwustj[Xhy{vstwxvz|yxvstxzwruvsrtuuxutsx|wvzg]ZYO?757=AIMJEBFB?XhTAFHINPQURWUQRUW\\Zdntxts™ÊË¿¹¹»À¼¼¼¾Ä½½Ö‚fgSQw™¬°“l}µ¯¢µ]dmidbehfefeabefedecabghjiebdgihgeddeehigb^_elideŠ¤ŠjbhZ^“³ŠLRŒ«¢€r\]oumehga`|•‘‚wgfvqkom_`e[PTVVUWWVVVUUVYZZW[ad`\\_YVXVUSE8EPTUVQIINPORVRMPNQX`hryzy|vvvtypqsqz}rhhc\[pƒzZQp€qbfg^]bZS_iiknpj^[bhihhifccghhhhghggkbZp©±§¤²¸®«®´«©°·±«®´²­­µ´ª©´¹±©±¼±¦¬»¹¯¯¿Â²¥¯Ã·¦¯Á½¨«ÂĬ¬À¦k`liijggecedfceidXTRUZejfeiipl]kˆ€dirlnmmoromopmmstsqrqprurrqswn[ƒÒðååãáææâäêèâãëëìëëìãÖ΀€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€5[f``\_dbWO_{‚‰†z{„‹xtuz†„ƒ†|šËßÒÄ¿ÍÆ”hp}~†ƒ~z~‚zv~’ž©¥—‚kZ\]dffxŠŠŽƒnq’ª–oqwonuutrrvvrqtvtyrt…{z|}„Œ‰‹’‹Šˆ‰‘˜˜””‘Ž‘“”•‘‹‰†ˆŽŽ’Ž“™ˆ~“§‰``ga]UV[^`adhhfikib_]blob^`bo{tjedfjpustuvtttsrsrrsttuuvqrwzywrvwvuxwsqzz{yxvtsxp`Xev{wuuxxwz|xvyzvtwxvvwurssuzyvsuvsv€„dPPPIA;>;12BIIJCCDEDMWM@CDFJMPWZ\\[[XY_^alihrsl™Êʾ¹¹º¿½½¾ÁĽ¿ØÁ‚fhTQv˜¬°“k|´® ´^emgbabfgfie``fiihhebbghihc`addgheceghbdfdaafkidgˆš~caeYc˜®JZ—­¢‹veOUntjafd^c„—tcfvmksqcdh^SRSVWUVXXXZ[^^^^\_dfa[Z\\W[[ZVH<?LSTUOHINONOSPQXQPZghjs{v~ƒ~wtuwzvzytxzmga\\oƒz\Sr‚tdii]\aYS_jkloqj_]dhjjllidglgghghhhhn]Vr…‹¦µª§´·­¨«²«©²ºµ­¯³¸®§«±­­´º®§³¾°¥®¸¹°®»¾±¦¯Áµ£®Á¿ª¨ÂÅ­¬¿§o`lihjfgeadegefjcTQQT\gmikmjpk^oŽ€ekqmonmmlnqrnlkprpprrrtrppqsyq^Îå×ÞããéäâãçèåçëèêêìîçÛÓ€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€8]d]]\\]\hhgu€ƒƒ…•‡nuqpzˆŠ……€|ÒäÕÆÃÍ´˜œ§z……|w‚y{¯²³«˜lbabhnuƒ‡~}†xv›‹opvroqsuwptvtsutqsru}}~y}…Œ‹ˆ‰ŒˆŠŽ‹Š”“Ž’ŠŽ‘Ž‰‹Š‹Œ‹‹Š…“†Œ“˜ª¤v\ge_cUX`^\]ciifikh`]]_lug``]gwxkedgimrtvsqrrqsvttsqpqstpuwtsz}xxywxyxuvzxxxwuuxol_Yh|€zz|zxzzwwty|zyz|{zxxvqswyxxurquz}qVIPOC<<A=529CGHEFEGGFFBABACGINV]\[^`\X\_^eimspp—ÇȽ¸¹¸¼ÁÁÁÀÀ¹ºÐÀfhUQv˜¦®•n}²ªœ°]dke`_^fiigb^adhhgfccehiihd`aceikgdcddjhe_[\bhici†sccb]o¡¨vMk«£ˆk]JOksh_db`l‘™‰{l\hwfism`hl[NQUY[\ZW]_beda^^[^cea\Z\YTXZXUG:<MUSTRLHNMLPTSSVNMWabhuzw}ƒ‚{vvyrtyzwx{{nfa_[n…]Urqaee`]aYS]hkhnrl`^ejghiieehnggghhhhik^Yt…¤¯ ¦µ¶­­¯²ª¦¬´­¦ª²¸®§¯µ±®´¶±ª±½¶«®³¸²¯¸º®§´¿±§³¿¹¨«Á¬¯Ä©m`liijggecffheeg`UQQT[glijljoj]n€gmtputsmlnqqqpnnnpqnorsqopptyq_ƒÉÒÀÓåææãâäççåèíêëêëîêáÝ€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€9`h_cda[Yprhr‚…~z‚–}isqov„†ƒ‡‚¡ÐâÕÈïµØݪ‚…„~z}}y‰¥³«¦¢•~jbadjmpx}zy‹ˆŒ”‹ƒ{qrtttsrtstvyywtrrw|}}€€€…‹‹‡ˆ‹”’‘‘ŒŠ’‘‘ŽŽŽ‹ˆŠ‹ˆˆŒŒ†Ž‹Šu„§°«‘majd]`Y^^[Z`egghihga`^^lum`]]bqwjdeiiipwwwtoosvussssqpqsqx|upu|z{zyxyvw|ywx|zsrvtp`T`uzsuwwwyvvytuwyyyxxwuwwuvzyuwyus{{q^TSTK@;;<:955<CDFFFEDC@>CC@AEFKTZZYZ_]ZZZ\numghpšÉÊÁ¾¾»¼½¿Á¿¾¹¼ÐÀfiUQv—£­•nz®¨›­Š\dkeaa`figea_bcfgdb`bgjiihebbdicbfd^`hjigdcdgkfal†ƒlee^^u£¢nOv¦£ˆd[KLirh^dcf{•šŒ€k]nxgflgZ`dUJWbcdgfaabefd^\]Z\`dc_^_\W[ZWWK<>OVSUSLIOLNQTTROMOZabmzzyz~‚€xuxxyvuxz~ƒtga_\n…[Rqp_ccb]`ZS\fkonkd^agiijjihijigggghhiib[Xp„’¬² §³±©«±ºµ¬¯·±¨®º´¬¬¶¹­«¶·³¬²¼µ©ª¹¹¯ªµ¹°ª¸¾¯§µ¿·¥°ÃÁ«°Å¨i`lihjfgeefefcdhbVRRT[fkhgjhnj\lŠ|cjplrqoqsqnoqpnqmmnopqnsqqqsxp]‚È̶Ñéèâçâãçéæèíëìììíéâ߀€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€:clfmpjacjfgwƒ†ƒy~Žƒwoottw~~€‹„…¡Ç×ÒÈÁ¶ÂÛðèÁš‰‚‚~zwz”·¼¨˜•{kgejrpjxŠŒ“‘¨¬Žƒ†umprtvtwvqpturqttty€‚„‹’“Ž‰ˆŒ‘š”“˜š—–•’–—‘Ž‘’ŒŒŠ…ƒŠŽŒ‰ŠŽ‹Žš‚˜¡›žlajl`[[][Y_ijfgmljife^Ziqp_[_bluqebhjimrttuxxwvwurqrrprvrsutruxvxwwxwst{wsuzysu|wtdV`v~yutx{wuxz{yyyuqsyuwvvywuvzwvrpyzlOV\UE??=A<416=>=ECFA@CB@EC?@CDISW]\Z]_^_\^nkZdss˜ÇÈ¿¾¾¹¹¿ÃÆÂÀ½ÁÒ¿giVRv—¥®”juª¨Ÿ«Š]fnheedgdcec`bdikgc__chgffebbchgfffeeejhda`chkc_o‡~igebcz§¤sV~™¡¤‰a[MKgrh^eem†–›Ži^w~zoqpb`cZR_jkd^_ccbcb^Z[_]^aeea^_]Y]YV[R@@LRSUOHIMMRSMOSRNLYfcfptzvyysuzzts{{z|j`_]oƒy[Rqrcgh_X]ZT]iqnome]^dfjkjiiie_fgghhiiii[Tp„¨·¥¨¶·¬¥¨µµ«­¶¯¥«¸¸¬ª¶·©©º¹«¤¶Á°¤±¾¹ª§¸¾²§»À¬Ÿ¯Á¼©²Åì¯Ä¦g`lihjggedeccbelgROOT\hokmmilh]o~ekojonknollpnlpnpooqqqsusrqswn[}ÊÒ»ÔìèßìâßçëèçëçêëìíèáÞ€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€@ivtyytoszj_r€‚‚u}’”ƒywrls~|wy|}ƒ¯ÎÑϼ¹Øëìéس”ƒ}}ytŠ§­¶´›Œ‘~a_mllnƒŠ}‰™·¯|x…qklprurrrrqonnqsoos|ƒ†‡‰‹ŒŽ—š™–”–˜•‘Œ“—˜—“‘“‹‡„Œ‹‹††‹ˆŒ“„Š£¦¢ž`hljd\X]Z[^ejebgknke_\^dmm_[_bnvrffgfghrttussvxussttsqqrusqoptxzuuwyxvuvwwwwwxxxzveV_v}wwvxzzwwx{|wv{zuwyvtwyxwxyttwsuymYUWVTMAA=>;548>BA>BDBCEBC??CC@DMVUVZaebZX\_VRkss™ÁÈ»¹ºººÁÅÁÀº¿Ö½fkUMs˜¤¯•js¨§ž©Œ_dkgdb_befedddbfgeb``cegcaeebeihhgdacfhie`_agnb_pƒ{gadlv ¤kV|œ£ €eXLKasg]_h‚’’˜zlqvushca]\^^XYcfc`^_feeb][\[[`dff_[]]^\YVYUB=HPPTRHIKHNSOLQVSKR_ehotvzƒztqquwvttx}~od]Yo…yZRrp`ef_^_YS_ljkpodZZcljiikkhgikihfffhii[Vs…Œ§¶¡¤»Â«¤²¸µ§¦¯­¥«¶»¯ª´º²­²·¬¦³¼¬£°¼¹«ª¾Â±§·¿³¥²Àµ£«ÀÆ­¯Ä¥l_jfefdfdbhhgdfh^PPQRZinggnllh_o‰}bktmpqpmoonpsropnqpjkrrrotqqxm^ƒÂÎÄØèèçáàäëëççëíìêìíæßÝ€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€Cp}u{{st{j^o~}}€~ˆˆ}zzols{wtw{yxy–¾Ò̸ÊçìçìÞ»¦€xtz–­«­µ¢ˆzhZ_oron~qƒ—…«`krpikmpsqptutpnnnmnot~‰ŒŽ’““’Œ’š›™–˜œ™Ž•šš—’““’‹‡ˆŒ‹Š‹ŠŠŒŠ‰Ž“Œ–¥£¥–l]kogb`\Z\Y^cbegbjmkiheabord]^^iurhfefkmtyrptrpswrqrwvsruuttuuvwxzxwwvutuuxywvwvstviX\q{xxvuwxwxy{zutxyvw|ywvwwxyxrtwps|q[PTXWVNG==<86:><?ACDFECC@>?CB?BGVVUUZ_XM^h[]dlnrÄÊ¿À½¸·½À¾Áø»ÓÁ~ciXRt•¢­”ir§¥œ§‰\djea`dghhda__defgfa_bkjdab_]bliffecdfmkd_^_bggdv‰uTRhzy† z€Ÿ¦mXNVhvokq{‰ˆ~~vjdeech`]_]^aaYYab]]]a]^ab][ZXZ^acd_\^^\Z[YZTA;GQSSMFLJKPSQPRTSLQ_ehntz{{zywuupsvvuvz~|sh]Wn…{\Tsp_cd`]^YT^kkgfki[Yenlifffehkjigfffghi^Zu„‰¥¶¥¥³¶££´·¬©±º´¬±»´¯²½»«¦±¾´«²¼±¤ª»»®«¼¿°¦´½²¢«»¹°¬¼½£§Á£i_jfegdfdafeecgkbSPSWZbiilkhni[mŽ}bkumpqppqpmmppntppronoprotqqxm^‹ÐàÓÞçåäââåëëççêíìêìíçßÝ€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€Bs~pt~tsyi\n€|€Š†}‚{y{xonw{|}z†³ÔÍÂÚòíäïâ¿°‡ur†«º«¥«˜t^WUV_ie_jgl”Ÿvz£kuyoiloswvuwxtoostrsux~ˆ‘’Ž•™™—•œœœ›Ÿš””˜˜–•““—“””Ž……‰Œ‹‰‡‰ŒŠ‰‘Ž©§›}[_lpgda][\\\^cfdaeijklhbalrf\][bpric_cjlqorutsuupostppstrttvwwwvuvuvy{xutxzxsruursxn\[p}{wtstvuvvtwyxvuvxvxxwwxyyxtstos{s_PW]Y\WND?>:58=9:?>?CA=@AAAA@@BELOSUSRW^ik_a`bhnžÈ˼¿¼¸¼¾ÆþÁ½ÂÔÂdjYRu–¡«“ir¥£›¨‡\fmd_`fhihd`^]edcee`^ahihhga^cihijjfdciidbccbdigwcFTtŠz‹ª™‚––•‘rii{…ˆ~trz{gd_\^_]]_d]]_^^_^WV_a]\[^\\`a^\[X__^]]YX[\]\[USTI9GSRTRHGNPOMPRTVSLQ^egmtux|}}ytqwvvuvwxxzym\Vm„}[Ssp_dea\]ZU]ilkkngYZgniijllihhiihfffggk`\v„Š¥µ¢¦¸º¨¨µ´§¨²¹³ª­²³ªª·¹­¬º¿°¦²Áµ¨¯½¼­§µ·ª¤¶¾³¥¯»´§¬¼¾¦­Å£f`kgegdfecfdcbekdUNQY\`gknjfmiYm‘~bltmoqomopnnopnspnpspoqrotpqxm^Œ×îÞáâÞßäãçêëççéíìêëíçßÝ€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€Ar|nr}~vpte\rˆ‡zv†‘‰‰xurj`gw€{zx{Ÿ»¸ÆáðíçîáÀ«ŸŽysŽ·½£‘ŠsYR_`S[c]e{sk‰„Zq¿Ä‘€‚plprtwusssssvxxuwyz}‚Š’Ž•™™–‘šŸœœ  œš›™™•”—˜—˜—•’Œ„„ˆŠ‰ˆŠŒŠŠŠŠŽ¡¯¥ƒ^]cjmlh`[^^\Y^hfab`gkljfbcgog^aaervmb\afjnsssrqsvvqstsrrqqqqqrrsstyvuwyxvuwxxvuutrvyo\[p~|utsuwxwuzwwxwzzytxzwuvvuyyqpsuvsbW^_YYVRPDA?43:<>A@?BBACCC@<;?CCAMPMPY^___ab]a\d˜È̹º»»Á¾ÈÅÁÃÀÄÕ¿€gmVOt™¢«“ku¦£ªˆ]jpe`cbeggecaaeffhgb`cegfec`ahffffc`aecgheddiplSh‡jHb’’z‰¬˜w‰¦§˜†xuoix‰‰~li|jd__a`\]cd^^b`__]YV[]\\[]`^__[[\[Z]^`a[VW]\ZXRTUI;GRRSSJGNQNNSTRTRMP]dfksxz{{|{xtwtqsx{ywz~q[Wo„}WPp€qagia[[ZU\hllqpf^]chhhiiihgfhhggffffn`Ys†¨²¡¦·¸¤¤²·°ª®·²«¬°º«¨¶¹«¨´¿¯£±¿³¦­¾º¬­¼»¬¨¶À´£®½´£«½Á«¯Ç¤g`kgfgegeegeebcgaUKLW_dikjkglg\n~blulopolnonmmmllsqklstprotqqxm^‹ØðáããßáååçëêççéììêëíçßÝ€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€Dq}ssspkrse^s‡ƒwx{•´»ª˜Œ‚~umt…Ž‡„…‡š¢§ÍçéëéæÝŪ£Œ€•¹·—}r`RVebM^gcq…sdss^ŒÙБzmlruwyvtqpruxvutxwz~ƒˆ–‘“”“”—ŸŸ¡Ÿ›œ¡™™˜˜œš•”œš—‡ƒ‡Š‰ŠŒ‹‹Œ‹‹—²¯fTaekmljb]_`Y[cghf_^flmlgcdjrl^[Z]jzqb^cfjpsqtwuqqsprsrrqqpttsstvxyvtux{yvtxvvxwuuvxwm[Xl{{vuuvz|{yvsstuvwvvyzvstvwxxqptuusd^^\[XRTXJGG;05=C@AA?BFEAB@;;?A?AEL[rwhZcd^\^_Ve•ÈÏ»¼¾¼½¹½ÀÇʺºÑ¾glVNt™¥¬•ox¨¥Ÿ«ˆ]ipe`c`cffeccccffdb_`cghgc`_ciihgfcadhiiecghhjO7`uUq–z‡¤“x‹¤—’†xukdu‰Œ‚f_{…sb_\[YX[``[]bb``^ZUZ]^_\Z`]]\ZZ\[`a_^^ZX\W[[XSTUF<CPUQIENNNLMSRPRQMP\eejrz{ywx{zwtsssvxyy|s]Yq„{WPq€qagia[[ZU[hllkhe`]`hiihggghhgggggffel_Wr‡’«³§¨´¶¦¢³½´¨ª´´«­´³©ª¸¹ª©¹»±§­º²§«º²§¯Ä¿®ª²Ãº¤ª¼µ¤¬¾Á¦©À¤lalhfhegfceegecf_SMNU]fkjhihmi\m~cltmopnmnommmopnpronpsrroupqxm^‘ÛñáæçäåæçéêêèèéìëêëíçàÞ€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€@k{vvrnloqjj}ŽŒ„ƒ©ÀÆż¯§¥¨§Ÿ¡ª¯¬§¨¯±©´ÛêåæäÜÚк·º°¢¬Á»¡‹…|~xmismu}ppƒxžÂ¥‚ƒnmsuuwtqtrrvxvux|z{ƒ‰‹‘œ™”•˜–’•¡¢ŸŸ¡¡™œœ››—”•˜˜™”‰„ˆ‰Š‰‰ŠŒŠ‰«¿ŸhV\_dopjhga\\]^agmi_]bfknjb`jsrbXYapxqa^cdkrqstrprtstwwsqttrrrrrsuwxyurstwy{yutwwuvzyxqaXfx|yxutuxxwtwyywvwzuxzywwxyvtrrpsyuf^YX\\SUXPMOG84<D@BC@CHEADEDEGD?IN_~y_ZfcTXXe| ÉÍ»¼Á¿¸¸¼¾ÅǺºÑÀ~biWQs•¦¬–r{©¥ ªˆ[djc`bbeggebaachifdaaddhjgdbcehfdedcceiighjbSI0.d“ze{‘Šx§Šv“¦œžwqlcq~‡_]…rfb]Z[_ceb\]a^]\ZXTZ_``[X][]_^_^[^``^[URVSZ\WORTG8?OVRIBGNMKMPQPQQMO[dehrrvyx{}xpptwvrrvz}vb[q…y[Srp_df`[\YT\hkmihe\]ehgikkjjhefgghgfedh^Yr„«µ¨¨´»¯ª²¹´«°»µ©¬¸¶¬«µµ©©¹¾´ª¯¹®¤ªÀ³£ª½¹©¨µÂ¶£­À¸¤«ÀÅ««Â¥malhghfhf`bchfdgaRQSVZcihhgeok[kŽclulopnmnoopqrsmikqpnnprotqqxm^•ÜíÞãæâáæèéêéééêìëêëíçàÞ€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€@htoporw„‹Ž•¤±µµ¸¼ÆËÉÊËÆÃÀÈÐÍÉÍÐÍÉÆÍËÁËÚâßÝÚØÙÖÍÎÐÌÆÉÏÊÀ»º»¼º´µ¼´°›šŒŠ‰‚|Œ{z~thhnopusqtsvyyxxz}}€„ŠŒŽŽžšš™•—ž££Ÿ ¤¤ ™œ›™™——™˜“‘‹‹‹†ŒŒˆ‰ˆ‰žµ¬}WS^^fpqjjhb]Y_^^hmgd]^`fmle`gotdVX`lusc]acjpqqssqqtvtrsvtonpssrssuvwywvvvttuusuxxuuvxxuhZbu|zywsstutyyusxywxxy{|yvuvxtqqns{vi]ZYZ\WUWUOORE9<FFHJJJJIDGIKMMHB?Sft{oaahaWYZ}Ÿž¨ÅÈ»º¿À¹»Ä¿¾ÂÕ¿|agVOr“¥«•r{§£Ÿ«Š[`gcbcdfhgea```ehihb^`ddfeb`bdkgeeedehaikeYG:62+`›‹fv›{“ª…s•§ ¦“srtgk|‡|Zd‰gfc^[Z\aef_^`^[[YZVZ[Z\[]\[_bba^YY]]ZVQQXVWUSQTSD6?PVSNEBIKOQQRPKPNOZddgqqvxx{~yokossrsy~|{i\o„x\Tsp^cd^\\XS]iijloh\]dcegihghfcefgggfdci_Yqƒ©±£¦²¶¬¨¯´¬¨°·®¢©µ·­«¶¹®©±º®¥¯»°§±Æ¼«ª»º¬©»¾¬Ÿ±Å½««¿Å­±Æ¥jblhgifhfabbfecgcRQSVZcihhheli[mŽcmulnpnooppqponmpporusprotpqxm^’ÚíÝáäààæèéêêéêëëëéëíçàÞ€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€Ajvu£°»ÂÈËÎÑÓ×ÕÎÒÙÖÓÕØÚÔÙãàÙÚÝàß×ÝÜØßÕÕÚÖÓØÙ×ØÔÔÓÖÙÖÔ×ÙÒÍÒÖÐÖèÛ×ÇĽµº·¥¤œ‰‚‡sjinmotusvvvutux{v|€‚…Œ’•”™œš”“š ¡¢¢¥§¤Ÿ•—˜™œ›š››•‘ŒŠ‹Œ‹‘‰ŽŒ«µŠaYUX`imnnmf_`]Y\aeijfa`_dmojgelvi[]ahwyh_bdkottutqqtvppqrqpprutrqrsuwvvvxvtssutttttuvvutj[_pxwxxvvxyxwyttzyuvxwxyxuvx{wonosxul]`_VXXVXZMIUP@?BHIKOLGHDDFIKJGCMSSYhkgijdXOeŸ©–¢¼Å¿»¼¾º½ÃÁÁĽÁ×»|diSKp–£©“qz¦¡­^`gfeeceggebaahfeeea`eieeea_bfcdfgdaadli^N@613+'V“cj••„’¢…z•™¦geohm‚‹{Zp™‡g]]_^[[dod^]a``baWU[\YYZ^\[^a_^ZTX_baZQOTRTVXSRPC:BSWPJGKJLQQNSSKPNOYddfqrwyy}€{pnnoqsvxy{~o\m„yZRrp`ef]\]WR]jhhkke\W^hfijihiheefghgfdcm`Vn„’¨«Ÿ¨¶·ª¨±µ§§°µ¬§°½´­­¸»°©®·¯¥«¸³ª¯¸¹¯®¾¿¯¨»¾±©¶Àµ¦¬»¼£©Ã¢gbmigifhgfdbeb`ebRMNU\fkifkhgc^qdmulnonpnmmnonnrrnnsplqrotqqxm^Ûñãæéæçæèéêéêëìëëéëíèà߀€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€Dx”›µÐ×ØããããããããâââãäåååããããããããããããããããßßßßßßßßàßÞÝÜÛÚÙÜÜÛÙØ×ÖÖãÞÖÐÍÎÑÔËÈ¿´­©¢š†vppswyqtwvttw{zuy†ŒŠŽ—™™œž™””–žŸ¡¢¥¦£ž™–˜™˜š™’–™•ŒŠŽŒ†ŒŽŽ²¦vZY^[`eilopmcYY\Y\gnkie]Zajmifalsk]X^evwhY]dfkswvrqsuxrqqsspopsoquvvvuvwsrtuuyxtsttrswwxwj[as|wxtsxywwx{zyzxuvtz|wuxwswxrlptvzi_a`UY_TU_VMVXKBFKMMPQLH?EGJLHCGQWXX\]alg\PLo¢¬œ¤ÂÍż¹¾À¼¾¿¿¿¶¹ÓÁz]n[Ko¡¢h~¨œ˜¬ŠUajb`]aejgbdd_fhjjgdccekddhbbflcflifgdaS@4131.!%_“‘ja’œ–Žšžª‡esvgi}‹xZ|{Y`_Ya]ZnvfY^b]^__ZRX^Z\`ZW]^YZ^\YX]ba\VRPUUSWWUN?6?RWQNIFJPOJNSRPQKKYffitwuwyy|{ronqtsuwuw}q^mƒx^Tr€rbgg^[]WU^ejmigb[Zbhjihgghikadhhecdei`Zr„‘«³¥¦»¸ª¤®²®£«·°§®·¶®®¶¸±¯µ»¬¥µÁ²¥«¶·ª¦·½±ª²¹¯¥³Á·§­½º¦´Æœg`lhgheecdgfecfi_SOPTX`ijifckg^qŽ{altjlooromnppoomlnprpnosqslpwka•äôâÞèæêçäçèéìëêììììëäÝÜ€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€>ŒËÝåêçåäääåäåääããääåæææææææææææææææææææååååååååäããáàßÞÞßÞÝÜÛÚÙÙàÞÚ×ÔÓÓÔËÐÑÌÆÄÁ¾¯§šŽ…~xupprtuvvvvtzˆŽŒŽ“š›ž œ˜—šž£¥¤¢¢¡Ÿ››š–”—˜•–š“‰‰ŽŽŠŠ‡ŒŠŠ‘¥» jVY`]_eimprof]]_\]hpmida^agllienri\W_hpul`_ackpstuurrvsssssstvtrruvwxwwsqruxywtuuuuuutuz}q[Yl}{vuvtsyyyywuy{wvxwtuyzwuxrlmqv|q^]bYV[ZTV[YSVRBEKNLMRPGEHIKKFFN[_ZUWZ^fc]OO€±¬•«Ãž¿¿ÁÁÀ¾½ÀÇÁ¾Ò¹y`nVIr”ž¨šo© ž¨^ckgc``gifefdbbdfeca``mjdig\^cjijhfjdT;41781++ &^‘•t`~¡œŽ‹Š‹—œ¤¬†cmrirxZ {X_a\`[\pve\`a]`a_XTUWWY[\Z][YZZWUTX]_[VTUUTSWWTN?6@SWQMHGJPOLNQQRSLKWcbcnqqtvwzzssqrqpuywy|zhqƒ{[Ss‚rbik\]bZRYckmkkf\Y`fhghkjgfgbehhfddeg^Xpƒ©²ª§º¸§ž¯¾®¤¬¸±¨­¶´­°ºµ¨©¸²¬¨²½µ¬²º»¯«¸¹«¥ºÂµ¦³Ãº¨¬À½¦²Æžh`lhgheecgfdgece`WONU\diikdbniZn‘cktknnlmoqollmomlkossqqrqsmpwka˜âðáÞåäìåãåéêëêìéêêìêäÝÜ€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€>ŠÕîëçêïçççæçæççæææçççèèééééééééééééééééééééééééèèçæååääãââààÞÞÝÝÞßßÞÛØÖÐÒÑÊÆÈÊʼ»¸³«…|xssvxxvzy{€…‡“•–™™–‘‘”šœœ˜™œš•”–”‘•™—’”””‘ŒŒˆ†ˆŒ‹Ž’§½•bZ_`[[dhmprqjb\^ZYdnledeb_cjmlemsm`X]fovpb]\bnnqsuvrqutuvtrqqpsqrrruwuvtwwstwurvxvvxvrttxrb\l~xwxzztrvzxyxvxzxzxvvwxwvvxtlilt|w`[c]UZ^WR]]PRWJFINLKSTGEFHKIBERZ^\UX\^_`_KL‹¹©”³Éø¼¼ºººÁÇŵ¸Ó½sZmR>j“Ÿi©›”¢Œ\_kcVRYdc`db^aacdca^^_dgchfWW^daflgWC352495)##&5p˜”t_q Ž‡‘”——¦¨Ybigt‚’sV yU^c_^Y]ptaZ^]Y^^ZVXWWYWV[][XZ][XXWZ`d`UONUTRVVTO@7@TXPKGHIOONOOPSOIHS`acmpquxy}~wsqokjqwvvv~~op~x\Vv‚o]dh\Z^XU^flllnh\V\bifgjjeegdfhhfeeff]Xo‚Ž¨±©£¶¸¬£­µ®¥®º³¨­¶¸§§¸¹©¨¶¶±¬²º°ª²¹¸­­½»¬¦·Á³¢¯Ã»¨¬Ä¤¯Å j`lhgheechfdgebd_VNNU\chhigfmfZo€bktostpjmonoppoonponnrurqsmqwk`–Þîåãçãìæãäèëéêìèêìììæáက€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€>uºäìçæêééééééééèèèéééééêêêêêêêêéêéêéêéêççççççççêêééèçççææååäãããßáãäãáÝÛÝÝÙÕÓÓÎÇÇž¹±¨¢—Žywxyy~„…„ˆŽ“’•–—–’’——˜–“•›™“š£¡—“’’•””ššŒŽŒˆ‹‘ŒŒ‘¦ºacc^Y[dimoqqkd__\[dppigea^`fkmflspcX[emwse[[blnssqrttuttpmmrtstttsrvyvuttvvxxtsvwvvxwuzuvueZe{zywuuwy{yxx{}vsxzxwyzwuuxzulfiqxxe^c_ZZ\YX\\TSTRIHMNJRUJBCINJBGUX][VX__[_cNS•¼¥—ªÈÈÀÅÁº¼¿ÃÄÄúºÔ»|_cNS…œ°§w…¯ž«^drdIB]igdkgahghjihghibnknfFFfrsmZA2*&5<=5(&.7/9l’•€df”œ‹Š˜”—¥¤xR\jjq†•qV„¡|Y^b_^X]mrd]`_\_^]\ZRLIGHOXWUWZYWXXY_fcYRTUTQUVTO@7?RXOIFIINOOPNOTNIGQ]acmqrwzz~zwurmkrywrry}qp{vXQqm\cfa]^XT^cghijg][bidcehihhifggggffgg^Xp‚©±£¦¼¹©£°¶®§°½³©­¶¸¥¢¶»®ªµ¿³«µº«¤²»µ¦«ÀÁ¯¨¸Á³¡­¾µ¡¥ÅǪ²ÈŸe`lhgheecdhfdbeg]ROOQU_higihldZp|`hslpqnonmmoqolpnprnorpqqsnqxj_ŽÛïèåèáæçæâæêêêêçëíîìæßÞ€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€Bb˜ÏíëäçêêêêêêêêêêêêêêééèèèèèèèèèèèèèèèèææææææææééèèèçççèèèççæææääåååãâáßßÜØ××ÓÌÐËÆÁ¾º·´®¥—‰zxxw~„ƒ‚…Œ‘‘”–—™–—ž™œœ—–™›˜’œœ”‘’’•Ž…‰‡Œ‹‡‹”¬¼‹aff]Z_eimnooke__]\cnqlle^]_bgkkmpnbVZghuwi_^adpsroqtuvqqqpswvrtturruyvtvutxyvtxuuvwvxzxvzxfTa~|zzz{zxuxwx|~wswwvw{zvvyyxtkehqvyh`cd]YYY[[\]WQPMFKOKOSMEELRLFO^_`[SS[_[`cOU•¶ —¨ÅĹ¼¼¼ÄÁ¼¸»ÅÁÀÔ½z\`KW’¯ ª¢z‰¨™•¢Š`cphK?`khfmgajijjifefhfgcoiEEhtcK5(#*4;70,/488 +b‹“…je‹›‹˜“‘œ§£wScvsp—q[†ž‚e_^^^[]inf]_`_^\_bZQICCINUWVUWVVW_\]`_WVYTSPTUTOA7=PVOHFJIMOOQONSSNKQ\_aiprwyx{}xusrnlpursu{|tv€xZQn}n^ccZ[`YS[fnjhhc\Y`eehjihgd`ggffggggi_Zq„«³¤§¾»¬¦²¸®§±¼³¨®¸´ª¬¹·©ª¸¿¯¦±»¯§³Â¹©ª¾¾®§»Âµ§³¿´¢ªÇÆ¥®Å¡i`lhgheecbedccfi_RQPMQ`jijeeogWm“fovklmlnmmmlklmnnonnopppptosxj^Þñß×ÚÔÖáçåçêéëééììêêçã €€€€€€€€€€€€€€€€€€€€€€€€€€€€€€F_®ÞëæïêêêêêêêêëëëêêéééççççççççççççççççèèèèèèèèççççççççèèèèèèèèèçææååääåèåÞÙÚÛÛÔÐÌÉÆÄÀ½·²©ž’†}xx}‚…‡‹”“—–•–’˜  ž›š›š˜•˜˜—˜–’•”’ˆ‰‡‰‡•²¾bikc[^eimmnnlh_]\]_gnmnf_]^^cilkpqdUXdjtvl`^`brqprtsrvwuqopssrrrssqsvutzxuvvtuyutwwvx}vtuylZa{xvzyvutvvyzxyzwyxxywuw{vvsldhqw{k_dh_WX]\YZ\YSQPIJOLMPOJHLNHGUc[[ZVSZ`]_aV_–¶£”«ÈËÃþ¹¹¼º·¹¾º¼Õ¿nSfJG‹½À¾¨{¸±³¼¬‘’›¤–•›šš–‘™¦¥¢œ–‘’–œ¢’xtwJ5&-513AF6,3:6*"+i“‰od~š–™™˜œ¥tWj~wq’m\|Ži`]^`^agid[\^^[X]^WVUPQVWSWWTVYYY[YZ^]ZXZTRPSTSOB69KTNIFJINNNRROPTPKQ[`cjru{|z}€|ronnklnmrvz{uz‚y^Tp~o^ba_^`YS[cijgfd\\bgcghffjhdhfddfggfi`Zr„‘«´¥ µ¹­¤­´®¦°»±¨°»¶¯²»µ¨©¶º¯¤­ºµ«¯Á¾®¬º»­©¹¿´©µÁµ¥®Æ¤­ÄŸi`lhgheeccbafedgbWRONUdmiheemgZp’}cmthijjnmmnlkmpnsojlmntpptpsxj^–åïÑ¿ÂÀÇÚèèêëéëêëíëêêéãက€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€Dgz›ØòêíêêêêêêêêëëêêééèèèèèèèèèèççèçèçççééééééééççççççççççççèçèèéèèçæäãããèêåàÞÜÙáÜÔÎÊÇļ¸²­¦œ…}|…‘‘˜š—˜’˜§¢Ÿ ¢ šš™š™”’•˜—’Ž’‹‰†…‰ŠŽ’´À’eioh^_dimnopolfabc`dmqnje_\\bgjiosgUUamruobY]dqqprtrpsqpqrrppptsuvttvwvwuswzytwvwxyyz{zuuzt`\l|uvywuutwxywvz|x|zyxwvvxvwwodepu{pa^ebYU]]XVZZWUQMKLMMOONKMMFHVaWW[ZVY_^]ddi’¸¯›«ÄÈÀ¾¼¼»Â¿¼¼Â¼¼Ó·nXgLR˜ÂÀÞ͉›æðçÉ«“—š¦¥§žž ¢ ™—š¢ –‹ŠŠ†„Œ‹‚lG,13499;B;645/#"4mŒ”•w[x’””œ™š¤–p]p}yx–m`q|zl`^aabhhdd^^]^]Y]ZUVWUUXVRVUSVZZY]]`a`ZTQTRORTSPB56FPOJFIJNMLRUQMQNJNZ`dkrv~€~‚…‚yrqtpmoqpswzwz€wZRqo_df^Z\WV_finlmi`\bgfhgdehihhfccegfeh_Yq„ª²¢ ¶¶¥œ«¹­¥®¹¯§±¿¸­­·¸¬«´º®¤­º´©«¼½±­»¼°ª»Âµ¥±¾³¡ªÀÁ«·Æ™``lhgheeccbaedcfaWPOT[djiffdjf_s~cltlnpoqonnonnmopmkprpooptptxj]œçîʲ°´ÃÝêèêíèêééìíììæÚÑ€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€@ks…ËòçäééééééééëëêééèççééééééééééééééééèèèèèèèèèèèèèèééæææçççççèèéèçäâàååâßàäãÞÜÜÛÚÖÏÆÀ»´³´®¡–‘†~‚”–•”š˜—š–•Ÿ¤¡¢¤£Ÿ ›–—™““””—Ž†‹Œ‹Š‡Š‰‹‡¸Å™gekgagdimnprrpgabc]^hplnkaZ[bfmjmpdSTcknvvfWYdorqoqrqpnoqsqoqusqtwtrtvwwxuswytswyyy|{xpsywa[l{y{{wwxuyzxwxxwyxxxyzzxvwz|rbblrywdW`f]RU]YW^]UVPQMJLNNNQORQKMX__[\ZQR[^_daUp¥¶©©ÁÇ¿º¼Ãļ¼»½Á»»Ò»lUhOR’¹´Ë¾‡›ØÔÇ·_icddonknrledeaba`__bec`agX>2(72-3>;5971(  "7q†ˆ’|a~‰‰—’˜¥©•sgw~}…¡–tiqw|s``cbdmja^\[XYZVW[WX[[\\[YZWUY[ZXZ\_`a_[XTRORSSPB54COOKGIJOMKRWRKTPKNW]`fns{~}†„|squqmotprw}{|€xZSslZ`d]]`YS[dkdfjg]Y^eghhggggfhebbdffef]Xo‚Ž©±Ÿ¢ºº­§¯²­¥­·­¦²Áµ¨¨¶¹¯­·ºª¡°½±¦®»½±®½À°¦¹Â´¢®Á¸¥³Â»£°Ã›f`lhgheecbfdcaeg]SLOZ]_ejhb`lj^r“dktmpokkmnnnoonmknpnsvroptqtyi]›åíβ¬°ÆçîåçìçéçèëêêëçÜÔ€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€=`s„ÁîéêéëçìèÝâãâåáÜßáÚÓÒÖÛÙÖ××ÔØÙÓÓÛÚØßâãáàåèæäåæíìäèëãééäæîéçñçéêêèçèêêäãååàÞáåàÞàÜÓÌÊÁ½·±¬©¨¨¡“ˆˆŽ‘”™™œŸœ›”–Ÿ¤¤¤¥¥£›•—™˜›š”˜™“’ˆ‰“Ž‰‹ˆˆ„ŠŠ’¶Ã–hgmbadgdinnqtphfb]]agljomd`^]_ikptiVTblnsreVWbloppstqoqrrrqrsurvtrtustvsvyvtvuvwz|socD:Nr|xhVj{~{vxxuyyxwuv{{u{wttxzzyyuun`bqxuwiZ`h`TU\_\[\[ZVPJIJMOPROONGRdbXV^[STXaaYa^Y©¤ªÅÊÁ½»¾¿»¼¼½¿¹½Ø½kUcST›Ä·Î¸†œÌŹ°„lsrhktuvz|vmmsoooooooorkuuT4.04/'4B<53*("""5n|Š™xfx‡€ƒœ™‹˜¦œ~mw}‚” •rvuja__^`v~h_`]\[Z^^WY\XTX[YW[YYZZXWY\^^]]^[WRTTSPRUJ:4CTOEGJIHOTPNOMLOIKZ]X[owx€€{„†{strsrloqqqvy|}s\Vo}j\_f][^YU]cfefjdXYceejkeeigafffeedddf_Zr‡’«´Ÿ©¼¸ª¥¶¾«¥®¸µ­®¾²¦­¶´­®¹¿«£µ¿­£°¾»®¯¿¾®§·½¯¡²Å½«®¿º£±Ä›e_jfdebcbbcbdcdg`TMLS\fjfgfgjgZs“z`lrommkjorpoppomlorpopooopmuwhcžëñˬ©¯ÂæêæçìëêêèëëêëèáÛ€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€>gty·íèâÜÙÍÊÁ¶´¯²®©¨ªª¨¨¤¡¡¤¥¦©ªª®¬ª¨£ª¾ÊÀµ·¿À¿ÆÂÉ×ÝØÛâàåéåäçâàèåææåäåçêçåæêéäàáâäãÞÜÛÕÌÇýµ®ª§¦®¥ •‡‰“”˜š›—™œ••¡£¢¥§¤ —•”—˜˜š™š˜”“Œ††Œ‡‰ŠŠŠ”®µŠfhngcdghikoqpojc__^\bkmolgb\Y]fhosiWUchlqocXZbnttooqrrquupnqsssussutrttqrvvwwuvvbI60+.>f{}mXdx|wtwwwywtv{yvvxzywwwxzzwwyrccmpxzl[_hcXV^`\[]^]YQJKORTUTPJKN[g`SS^^UTV^a]^`Z_y–³ÅÉü¹¼¼½¹ºÀ¶¸Ù¸jVfUS”º·É¹Žœ½·º©yei_^ifgjmlcYUWVVUUTTSSX]b\G6,'.-&090(# 6q{‚š…p{…}…¢Ÿž¦˜uepvzŠ–“mfc]Z`g`_}„g`[\__[\\WZ^[VWZZ[YSSYZVX^[]]\]^[WQRRURQRJ;3@TQHHJLKMNKOSQIMIKWYV[qxux|y}‡…~{xuplprttwwy~wYTm|i\^dYW[WV`hmkgki]Zcjkiijjigfffeeeeddf^Yq„¨°¥¤³·¯¤®´®§²»²¦§³¹¦©·¹±®·¸±¥¬»¯£°Âºªªº¸¬¬¹½®¢´Ç¾ª°Â¾¥²Äžj`kfeecdbcdcdcdf_SMMS[eifgfhki]w–~clqnmppnlmppmkmqrqqqoorqqqntvf`êïÇ«­·ÌæêæèìêéëíìëíìåÜÚ€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€Erxo«áÒ¾³°¡œ™•˜‘Ž‰‹‘”‘‘”Ž‰‡Š‘˜š˜•’‹‚©·¨’Š‘‘” š§­«¬³´¾ÇËÍÔÛàæâåéêèæåäêçææåââåãæäàßßÚÓÐÌÄ»³«¦£¯««¥˜—™”˜›  ¢”•©§¢£¤¢¤¢™žžšœš—šš˜‘‘‰xs…‹Œ‹‰Š˜¥ yehljfefjhipoloohddb^ckqqolh^Z^gkpriVR^hmqmbY[blpojmrsqmrtrqsspssrstrqtqprstvwtuJ,)#'456ZwzlY]t|yy}zzxvuwxvtwxzzyxwxyzuw|tfdlov{qbbjfZSZ^ZW[^\^ULJNPRRVSIIUag_MO^aYTT[]d`\`[]m©Æɾ»º½¾¾½¼¼Ã¾¼Ï¹iTaPM‘·¯¼¥y¹¸ºªyktjhoijnnifgkmiihhggggckl`K4*-.2-..$ !7wzwš—}‡Ž…£–‡š¨”n]jnr„”•„j^\ZZ]l`bŠŠd\^]^\Y[]YW\\YYZYXZZYWXY[[Z\]\]^\XQPPTSPQJ<1<QTKIJIJLLMQSNMOKMY]Z^svqjlcW]{…‚}zqptuvtvvy~xYTm}k]_d`]^WT]dihhkeZZbfjhijjffhfffeedddh^YqƒŽ§®Ÿ¥¶³§¡²ºª¢³¾±§¬¶¹¦«ºº®«¸Ãµ¤¯Ã¶£ªÃ»­°½¸­°´¿¶©µÃ¹¨¯ÃÁ§±Ãkakgegcecdecdccf^RMNTZchgedfhfYs’y_kpnklkkkmnnllmlnnpqnlosrsntue_œëòʯ²¾ÑåêçèìééëëìëêìçáÝ€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€Esxn¤Ê©‰‰ŒŒ……ƒƒ‡ˆ……Š‰…~€‡‚‡šŸš¢´Å¼¢Œƒ}‹Œ†ƒ†‡ŠŽ‹’•–Ÿ¬´µ¿ÅÏØÞäéìãäåçææçééäâäãÝÙÙÖÒËÁ·­¥¡¦¬¯¬£š––š› ¢“Ž™¤§¤£ Ÿ¤¥˜˜Ÿžœœ—“”›˜’‘†pewŒŽŠ…‹Ÿ¢‹ldggjhhfhghmnmomlgb^_bdoqomia[]flpqiVOZmnqodYZbmpnmqutrqoortsrrrrqrsrqspsutrtvuzg4!#-A;4Uwyl\Zp|wwyvzywvwvtwyw{ywvwxwvy{}ve_hqu{uebig^PW\ZWZ]Z^[SLLQRQUXNMV^`]LM\aYTSZc`\cli^[”Éθº½»À½»ÂǼ¹Ñ²eSeRM‹¯£¸©‘º¾Æ°„u‚|ooqmrqjeeeb``_]\[ZYa^\YJ6*).4/*!!"! % :~~n˜¤‡†‡|Š¦™ˆ›¨“l\fhoˆ˜•f`c`\Yf^m—`Wb][YY]^YXZZWXZYVZWVYYWX[Z\\\]^\XQRNOPQQK>17MTOJJKIHIKNOOSOHL[a][``_WXWB<kŠ†}{xx|zwz}ƒz[Von`aea]]VS]fkgkldZ[beeijhefgfffeeeeddh^Zt„«±¡§¶±¦¤¶½«¡²¼ª ¦°¶¦«¹·¬©¶¼ª¡²Ã¸§¦Å»«°ÃÀ¯ª»Ä¶¥¯¾·¨©Áª²À™fblhfgdfdefdebce]QNOTYaggjhikfYqzalspnmknoonmnmkomoolkmmrrrntve`™éṉ̃²¸ÈäêèéëèéìæêëëëèßØ€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€@lusŸª|igor|~xxpvtrltž””¬°Ÿ‘ˆ…‰†‹¦ËÛÕÒ×áÛи”us€}zy}‚…‚ƒŽ‘Œ•˜ ©¶ÅÕÞáåééèçèéêäâãâÜØØÙÖÐǼ±§¢£ªª ˜———˜š¡ •‘š£¨¦¤¡¡¤¡”˜›–••š–Šzmgm€ŠŒ‚Š¥ yefeafikeceijnpnonjda_abgmnjid][`inpkZQ[lilneVXdoqrqqpqtsportqppqrrqqrrqpuvsrsuvu_1#1+(OzrcZl{ywwryzvuwyxwwwyxwvwwvvvw{wh^iyx|ud\cifTV]_\^_ZZ`]QOV[XSXQPYZ\^PLY_YSRYc_]akqla‹ÈÑ»½¾¹½¾½¿ÂÄ··Ò¶hVeQG„¦¤®Ÿ|Œ¨«¼«xaid_a^[_^WSUTPQQSTVXYZZ\e`J91()*$ !";ƒ‚j‘ªŽykª¡›¥l]camœ‘v_^b^YZ^\yž‰_Y_\\\[^]VWYZWVYYVXWXZ[YYZZ\\[\^[WQUMFJQTL?25GSQLIKGGJLHHLQLFIU[YWSMQJMXK8Z‡†v€{y{zy~ƒ„z^Wooaae]Z[US_hnjijf\X^gfjjeeijefffeedddfZYsƒ‘®²¤§¸¹­¢°º©ž°º¬¥±½·¦ª¶¸°«°®«¨±¼·¬¬¾»®®½»­ª¿Á¯¡²Ä¸¢§ÀÄ®¶Â˜cblhfgdfdeeddcce]QNOTYagfjhijfYq|akomlnnqnmnpomlsqrroopqooqmuwhb¡ëñÏ·´¶ÅäêçèëèéëìêêìíæßÝ€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€Gpzv‚[ftbcb^fgkswvŠ»Î¸»Þæι© £¡©ÇèîæãäèáçÖ˜ebpq€…{z{||€~{‚„†Š›¦®ÆÒÞåæèçæçèåßÞßÜÖÙ×ÓÍø®¨¤§¦™¦œ–› ž  ™™¥©§¦¦¦¤›•šœ˜œŸ™š›™“Ž~nntlo…¦—mded_cileadhhmqntokkf``eemonnjb]_jnpm[QZe_bibUWfppnopoosnqssrrqqqqrqprspqtsrsuuwy[* FvufZfy}{xtwyuwyxuwywvxyxvuvxxwz{m`euvywj^`giYTY_]]]YYbbVPW[YSTNT]\]_UNV]YURX\`[[jvm`ˆ¼ÎÂÀ¿¾¾½½»»À»¸Í²cP`NKŒ²¯µžx±¯·š€˜yo{twxwttwzzyxwvtrqqnv†~T61/*" ;€ƒfŠª—~r„¦›ˆ™¡‹j]`[gŒ¢“u_\^[Za[[‚ _`^^^[X[]ZUY]ZVWYWWZ\[[^\Y[\\[\\ZUQVJAFQUM@63@MQMIGFGNNEBJONKKNRUWVQSNKVO8At‚x{}y}x{}ƒ…~aXn}l__c_[]VS\dihkjd[W]ehgddfigdffeeeeddbVVq€­± ¥··ª¢°¹¨ž¬¶«¦¯¾´¨¯¹·°­µ½º®±½°¢«º»²±¾»­©¶¼±§¸È¹¡«ÃƱ¹Æšcalgffdecdececce^RMNSYafedcegeXr‘y_inljlklnnmlnnnoppprpornopmuxhc¡àáȶ³µÈäéæçêèèêììëëëçàÞ€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€Iu~qwd\‘Í£p`][iruˆ‰¡Ôß»ÇêòÜƲ¥©¦±ÏèéæêëäßëЄ[eku–ˆ€~}€~ƒ“™ƒ||~‚„†Š¡¸ÇÔÞåæççäßßâàÚÙÙ×ÓËÁ¸²§¨¨“¨¤š™—››–›ž££¨ª§¡—’•™–˜žœ›˜•ˆxr~}kju‡ŽšŸ„ddbbcejieccehknmrljjf^]bfloqrlc__kopn]PX`[^e_TXepomnrsqqprsqoptwrprrpqsqrsrrsrrvza0=i{ti\as{xvtuwvwxuswzwuxzzwvxzxuwzsfgrrvzte`ehaRS\\Z\Y[abZUUWVWROZ`[]`ZNU]]VQTa\U]qtg_‚µËÁ¼¼¾¿Ãº¶½Ä¹·Ò¸iWeQI…¨¢º­‚”»¹º kipkwnrqrsqjc`aa`_]\[ZX\eaG1.11#  "9y€d‚ª¢†ˆ|‰¦š‰š£Šh]bXb†§’sa_^]bb[\†ŸxZba_]YUZ^]WY[WRUZYVUW[][\^\]][[[XTQUH@HPSMA939HPNIJJHIICFRPONLKMSVSRRQNSVJG^txz||y{|€„‰‚e[o|k^_c[Y\VS\cghnnc[Z_dgeddeffefffeeddddVVrŽ­¯ž£²°ª©´´­¥¯¸±©®½°§²½·«¬º¹¯¢®Á´¨·Á¹«°ÅÁ¶¨´Ãº©±Åì¸Çœd`kfdfbdbcdcdcdg_SMMRYbfcfdfjg[u•y`msqmmkkopljlmmopmlmllqppqmuvgaŠÂÅ·°®±ÆäèäæêèçéçììëëæÜÔ€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€>ozff\tÉì²sdfer|„Š‹£ÕÞ¶ÈæìÚɱ£ª›ªÍéíììææçïÂpazty“•„„ƒ‚Œ¨µ¤’€€€~}‚†‚‹’—¦ÀÚééãáãäáàâÙÚÚ×ÑÈ¿¹®¢——¡£¥¥œœ¡ •ž¡¡¦©§¦¢˜™ž›™žœ–—˜ƒv}ˆwhpo{—¨—s_e_bghkfefccikimqqojfcbbcgjopg]\[imop`T\`]`c]UXckpqoonlltqqtsopusoqsqqrqrttsqmnv}f07bzxm_]p}|zytuxrrwxwvuwxyzzzzz|wuxtjfmsu{wg_ekjUR\]\_^\^``][[][TS`aX[`]OT__XOP_d_Zeup^|ºÎ»µµ·»½ÀÂÁ¿¶¼Ú·gRaNK³©³ }–¼·¹¨i]xlWaqspqvwqnpmmmnnoookwsZA5346&!7r|b~ª«˜zˆ®¦‹¨Œh_eZ`‚¥Šj]aa`e^\]‡ŸrS^a][ZZ^^XVWYURUYUZ\\[[]][]^^[[[WRPSGBJPQMA;35CONHGKKJIEITPLIHGINOORKNORciQ=EV_ihftrotx~‚zi^p|k_aeYW[WT]cghjhbZUYcfijgefijfffeedddgYYt€®¯›£¹»­ ¬µ®§°¹´ª«¹±£¬¼¸«ª¹»´®·¾µ®´¿¹¬¯¼¶ª­¾Å¸©¶Å¹¥´Ä¾¦³Ä›e_jfdebcbbcbdcdg`TMLRZcfbfdfheXq‘z_inljllpjglppnmomopnoqrrrrntue_|²º¸¸·¸Íäèãåêèççëëêëìçá߀€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€Eiyad‹´Øåºzbku€ƒ‚Š‰„°âÕºÄÛíݼ­®­  ÉêìçæìçèíÅ{cvz€˜’„…„‚‚’°·¢š–Šƒ‡†}||~~…„…“§ºËÞàÝßåçÝÞÞÙÔÔÑÊűŸ‡€•¢š›¦¨—œ•Ž™¡¢££¢¡ ¡––—˜—˜£œ—”‹‚……zgooz˜¡„dcfe`afihheccehlqqqomkhfffglrqng_\bkqq`R\bY]d\W\amopqpoqurutqorrpvspnopqrnstrqssp~k;/Wx~rf_t~{}zuvuutuvyzvtvyxwwxzywxynip{xzzna`ee_QZd\YY[X`f[W^d\SQYa`]][WX`]XWQ_aXYhurax³ÒÁ¼Â»¼Á¼µ¼Ä¹»×­hOaKK‰®§²žy¶³·¦iWljakturv|yldegdcfhcafefgVB6.2<)!7msb{ ­‰o„°§ª‘n^f]]ƒ£Šd^gb][`Vc”œmYbb_ZWX\`b[ZWTUVUTYY\][Y\a_]\\[[YSUSD@JRSOD;58>HLIJHGHKMMLPNMMICADF=AAADOiT2/<;IVTNS[\`mwk^r‚k\b`[[]UR^ehihgbZZ_bhhjhdefcbdffecdek^[p|Ž­­Ÿ¡·º«ž¬³ª¦­¹µ¨©³±«±À½§¨¿·ªª»Â²©±¼½­©¼»«©½À®£·Ã¶©°¾¾©±Ãœ`ahcehcddfdbcfea_PMMQXbgcbdfjfZw{akplhklkkklllmonmmppoopnrppotb`‰»¸·»¹¸ÅÞââêðèçëììêìîéä倀€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€Dmq[}´ÇÓç¸wduˆ†}‡‰»ÞÉ´»ÓãѲ¨¬«Ÿ¡ÊëìçæëåæêÀtZkoy—”………}„˜³µ¡—™–‰˜Œ}xxz|€„‡Ÿ·ÑàáÞàåãÞÙÖÕÕÐɧ’‚„–£ž™ž¬£––š››š›œœšš’•——••––•”…ˆ‡wqqn€ —q\igffebcfjeaacflrqonnlhgjfgkmllh`ZajooaS[\V\cYT]emprqonpqommoqrststqmnstsrvvssvsmwmA)Qt}pcV\agt|wmwvuuuvwyxutvwxyz{|zzxojqvuwyreaggXQ]aYZ_ZV[b_\`c^TPXab^\`\[a_YXQYb^[hxu`t°ÐÀº¿¹»Á¾·½Ä··ÑµmRbLMŠ±©²¡€”²­´¢dQgcW_ipllpmd_a_dbadb_dihhR;4.69' 3gq`v˜¨Ÿw‡¬¤‘¡«‘n`f]]…£Šf`gb][\Ym™•iZb^][Z[\]^YXXXUTUUXZ\]\ZZ\a^\ZXZYSOMA@JQQKE=649FOLNJFEGKNOQRROJFGJI?;:<;8DN3!*'.48349;EXda^r|g]c_^]^UR\ceijjdYV]bbdhhdeebbdffdcdef[Zs­­¡ ³·©Ÿ°»«ž«¹®§±·¸°±¼·¤¤¹À±¤³Ä¶¥­¾·­²À»¬«½½­©¼Â³¨°¿¾©±Ã›`ahcehcddcdbadge`QNNRYchdeccig\wŽ{alpljmmpmlmoppnmomjjnponrppotb`ŒÆÉÉÎÊÅÊÝßÞçëæèìëëêìîçàà€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€Iifh§ÎÅÑë¸ue|‰Šz‡Š—ÈÞ°´ËßÔ¸©ªªž¢Ìììçæëæçê¾pTceu—•ƒƒ…‚{‚–¨©œ“‘’ˆ‚˜{vw|ƒˆ‡Šˆ…ˆ¢¼ÖäàÜåâà×ÐÖÒÀž‰†Œ•¢¦£›¡© ›š—–––˜˜˜–—š›˜˜˜—”•˜’†ŒŸŸ‰{rl†¡ˆc`fa`bb`elhdbbceinkoqoookedinnmnkb[bknodW\ZU[`WS]dinqonprqopollnppptsmnuxtsusoqvwr|rH3N_]UOSNMOVdqwxwvuuuvvxvuwzyxwsx{{zqknrtvzyiahl\TW[ZZa[Y\_^[^d_VQW`da]\YW]^ZYSUb_Xauxcr­Ñ¹½¹½À¾¹¿Æ¸·Ï³nWgRN‚¦¢·ª”·²²¨ws†pr{~|„‚zuvxtpsyxw{qccRA4)67%.`n_n¢¥˜‹©¢”¥¬nah[\‡£‹icga^\Y^}‹c[a_]ZXWY\_YUX[WTVVZ\]]\\[Y\Z\\\\ZSNTPLMORPB>935DONKIHHJLLLLPQKEDGJKEA=@@>GL7#'-+.20/233;ISSTm€o[]dZZ\UR^fhehkeXV_g`adcbfjhbdffeccddXYr€®¯£¤µ´§¡²¸§¡¬¸°¦¬¶·­«´³¥§ºÂ¯¤µÅ²£°Å´¦®¿¾±«ºÂ´¦µÁ·©°À¿©²Ã›aahcehcddced`bhe]ROOSZdieecchg\xŽzampmlookkllmnpqlmoqrpnnnrppotb`£ÞÝ×ÜàßãçããééäéééêêìíåÜÛ€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€Jgj„ÈÌ­Éíºwg|‡…z~ŒŠžÒÞ½­³ÏäÖº¯­¦¤ÐíëçæêééíÁrUcdw—”ƒ‚…„…•Ÿ Ÿ™’“‹‰™}xws…ƒˆˆ‰Ž‘–ªÍÛÜÜßâ×ÎÙÑ®‰ƒ‹’‘™¢©ªš§¯–š••––––˜—–’”””“”‘Ž‘“Š„™º¸†wuŒ’t^hggd`_bhmgdbccdgjnpolnqmgeinonole^cknoi]^_WY^VU\`hnqnmrtsmqsqkhhjpuupotvtrrqppsuuvzW$ %3:FLJDFMNKOPKPevxxwvuuuuxxvxzyvvv{}}{umjrvv|~n_djf\NW_UW^^\]^[]e]WUZbea\^\W[\YWPQ_^V[owfq¬ÓÆ»¾¼À¼½ºÂɼºÑ¯kWfRLv™Ÿ¶ªƒ•º¶¹§m]{€ohipnnoi_WUZPWaXMS`G-5AB4%:;&  ,\m`hƒªŸˆ§¤™¦¬ochZ[ˆ£Œmgg`_]Xcˆž€`\^^]ZWUW[^]UU[XUVV\__]\]]\[XWWWYXSQWSQOPSO?=;76@KNIIJKLKJINRQKFHJKJHDCEEGPF.$-.*-1.26536>CMZr}l[X\\[]UQ\cffjleXT]eegiifhifceffdccdhYWq~¯²›¥¸±¥©¹¶¬¦«³«£­¾¶­ª´¶­®¿¼«¨ºÂ²¨¯»·®°»º®«¸Å¸¦¯À¹«±Â¿©³Ä™aahbehdddbccabgf^RNORYdidcdejdYw‘x`lollongjlkjloplkmpqnlmnrppotb`¤ãâØÝæååãßàëéèïîéêéëìåÜÜ€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€Dk£×ÂœÀë¼|j{„…~‰‹‰¬ÞÓ°©»Ùèϲ¯¯¢›¦ÓïëèæèçéíÃuWefx–•‡‡……††•››ž˜‘Š{…—ztq|€|‚„€ˆ’“”‹‹¨ÎáÕÔÚÛØÛÆ›xƒ“˜—–™¥¯¡ž¬­˜Œ”“˜›™——˜—‘’•˜˜“Ž‹‘„…§ÊĦŽ€ˆ’~b^gdhga^aefjfbaabfjllouumhhhgikklmj`biloj`_`XZ\UU^bkprlkorqqklplbepsuusqqrtrrsvtpqu{\)6CBIHIKKJKNNLQXTOYgxwxwvuutwxwuxxxzxyxwyxsnswwzn\[^caQQZRO_]Y\cb_c_ZX[bca_b`Y[^\ZTNZ^\]ksgo¨ÒǼ¾½Áº½ºÀÈ»¹Í²kU_MHo–™ “xŠ¡Ÿ±]AU^TPPQONNNKKMEF^b;%7J1";D4%7>' .[mbf}—« Š§¨Ÿ¥«‘qcgZ]‰£Œqkg`a^ZfŽšy_][Z[\[XWXZ_VVZYTVX[_b^\\^^`]\YXXWQMSROMNTQ@;::7;GOOLIFFHKNRSPKKLLJHDCIONNM<&'/**0..23115=EO\pwgXZa\[]TQ\cegijdXV]cefigeefccegfdbccjZXq~­±š¥¸±¥©¹·©ž¯¾¬¥µ½¶­«´·«ª¸»­¨µÀ·¬«¼»¯¯¿¹ª«º¿µ«¶¿¶§±ÄÀ¨µÄ˜bahcehcddgccdbcb[PMNQXcgcddeidYx‘v_kmjknlnonllnnllnnlmoolnrppotb`¤åäØÝçæåßÛßéèåëéëêééëåßà€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€Fp›ÃÚ±“Ãé½~l{†ŒŠ‘…‰Áçâ«ÍÛæÙ»©§¦š¨ÖðëèæçãåëÂtVcdu”—‹‡„††–›˜‘‹„u–’†|ppy~{€„‚‹’²ÉÕÌÒààЫ…z‰””™™•¡¤©¡ ®¨”•¡Ÿ›šš™•–˜›™“Ž’‡‘´Ì½¢‰‚p_ee`aa_\^chjfcbbadgmmprojjnjghkmool`^djmj`_[WZ[RTahjnoljmoongfjjdfnrtvuqnpstrrttrsv{lN;DRPHFFHLONKHOOQVUNSdvwwxwvutrwvuxyx{{yvvxwpkqvux{p]TUU`ZHKWY]]\^db_a`\Z_cc`_``WW]^\VSZ^^]itlm£Íƺ½¼¿¼¿»¿Ä¸µÈ´mXaQLl”¢‘t…›–¦˜dKXZQRWTTSTTTUVMRdX(*7%!6=3+44#!1[kbew‘¤œ‹Ž¥¬£¥©”tbe\_ˆ£uph_b_\iŽ”s_\[Z\][WVX[^YXZXST[X]aa][[\^]]\Z[WPLSSPJLTSD<9:68DNRNIDCFLQRQONOQNKJJNWWZ^U,")*&05../.-039BKSiwiZ^iYY[TQ]egefgaXW^cbcddadgedfggdbbchYXuŽ«¯ ¤¶µ¦ ³»­£±»©¢´Áµ¬«·¸©¦µ¿°¦µÁ°¤µÈ»¦­Å½©®¿¾¯§µÃ·£²ÆÁ¨µÄ—bahbehdddf`adbcc]PMMQWbgcgdbge\xv`klhjmjmppmkmnnlnopponlnrppotb`¤äâ×ÛãâáÞÝÞèéåèéìëéêëæàက€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€H}»×Éš‘Èë½}iy…Œ‹ŽƒÎé¿«½ÖÙäàÁ£Ÿ§˜©ÙñëèæçãåëÁsUaaq”˜ŒŠ‡…„Š˜¢¡›”„vƒ–‘ˆroy‚€€†„„ˆˆšÅ³‹Ÿ°ÀÅÒÜÕ»•x~‹Ž‰’–’šŸª«¢¢¬¤—Ÿ¤¢ž›—–˜››™•””‘¤Âǯšˆ…idjdeedc__eligeedbbdgmqpoomjkhhlptrkb[aini`aZVYXPSageillkjkkddfgihfensvsooqsuurqsslcUMFJMFADIMPPNMMNJRRUXML`tuwwxwvuqwvtyzwxywwz{ysmptvwzudSNOafJE]d\\]^_^_c_[]ejd]ZbbWT[[XRW[^][gunm ÊƼ¿½¾¿Â¾¿Åº¸Êµn[dUOk“›¦–r„ —›¤rU]dbbb]]]\[YWUTUWE%$% "7>201( !2[g_cs‰˜—Ž£«§¨§—xac^a‡¤Žxsh^c_]kŽŽo^Z]]^^ZVUY^]\YYZTRZ[]`a_[ZZ\YWVVXXSOOMLKORJC=;;68AIONKHEFJMQQRUWVTTQT\`Y_dK(','(11021/2655=ESmuf^a_\[]TP[bdgggaWU[_egjjgggcdfgfdbbbgVWuƒŽ¬±ž´¸¨±¿©§´½®¡¬»¶«­»¼¬«½¿­¤·Ã­¤ºÁ·¬µÅºª¯À¿¯£±Á¸¢²ÈÁ§·Ä–bahcehcdd`[_bagiaQNNRXchcgdbfe[ywbmlhjmigmplikopnkknnkkmnrppotb`£ãäÝáãÝÛåäáæèâäçììêëìåÞÞ€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€@ÛجŒ•Áï¾zet€†„†‡™ÐãÅÁÔÒÜâϯ¡ Ÿ˜ªÚñëèææåèíÃtU``p•—†„†‡…ˆ’Ÿ›—’zn|Ž‰†…ylx†‚|ƒ…„žàÙ¨±´š»ÓÒÄ®‘|Š’™”—ž ª«£§¬£•œ¡ œ—‘Ž•š›˜—–”’—£½Õͱ ‘†{nceh`bfhfbbeilhdcbacfkjjmpqnklhffktskd[`kojbc^WWUOS^adglnkfddbaabcdhkirvqnqtrtyyuuqZ>6AHGGFFFKPTUTQNKOUOP[QJ\stvxxxwvvzurwyuuzvvxxuqnpswx{{lWGPgqXK_d\YWY]adfd\[chd][bcWU]_\VTZ^^[gsho ÊÈ¿ÂÀ¿ÁÅÀÂÉÀ¿ÒºpY^PNk—œ¤•zŽ¦™žŸu[]_\[\^]YUTUVVVYXN9#&( :D42/$2Zd]ao„Ž”‘¡©¨«¥˜y`a_c†¤Žzth^c`]m‹m\X`Z]`^YVX[]^YX]WQW`__a_[Z[^\\[Z\YSJLMMLOTM@=>=9:@BMMLJGFIKJKPVVSSURV_d^hc6%&($*-(241.2965=GMgte[abZY[SQ\cfdefaVT\aeegfcefdefggdbabhVTr€Ž¯¶™ ¹¼©œ­¸© ³¿¨Ÿ²»²¦§¶¶¤¥ººª£³Áº¯¯À¶«±½»°­½º°«´»²¥²ÉÁ§·Å–cahcehcddfcec^cdWROOSYdieeeehcYx’xdnmikniknokknomnonllnnmnrppotb`¡ÚÖÌÏÓÒÖÜÝØßæãæïëìëììäÛÚ€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€;–Ú⊈Æí»ygw…‰€‚ˆ¦ÚáÊÒàÔäỘ˜£¢±×ïìéëèæéê¾sR]cu–†ƒ‡„ˆ”¡ –”—•‡mu‡ƒymt~~ƒ€€€¨êá±ÃÆ”œÑźͳ{{”‘‘—‘”“™¢ª­£¤“ ™™š›‘–š•”˜•Ÿ»ÄÇÖÓÀ¸©kklf_cefc__`chmlgcb__bjkgfnrrspnkhghlnk^]gkjfa[UWZUW^_aaehfcbdaabdfghjpnorspoqsslu~a?@ACECA@BEMPRRPMMOOPORRFFYuwrr{zuwwxxuty|yxyusw|wmjz{u{€p[K\plTUgb_YY[\affda_bfa]`fbXY_]ZVMU`^Ycomm—ÄƸº¼½¿ÀÂý¸ÁѲlWdQKq”šŸ’v† œ¤ŸtV\`]^XZZYYYXXXPUUPN<&+$)-?E3.7% 0clY`s~~–™š¬®§§œy_e[Z„¥‘‚yk^]aft……k[b_\[[[ZZZYZ^ZWZXSS_]]\Y\^Z\^_\Y[YRMOPMJOQME@>?<7:AIJLKHFGJOQQSYXTSU^idelN)!#%')+/2110//26:EIavhY_`[Z]XT\bgjgg`TU`fgfefgfecffffeca_bVXs«¯š¤¾·¦¤´º¬ ­¾±¤¯¾·«±¿·§ª¹º§¥µÁ·«²Å»ªª»º¬ªºÀ±¦¶Áµ©±Ä¼¢´Çšd`jecdadced`aacf^ONMPYbeciccgfZv˜‚`ipmjjflomhkpngmoljorqqpnpppt^b™ÑÊÀÅËÊÌÊÍÓ×ØÛßãëëéêêãÞက€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€E‘Ì´“ŠÎïºwcr€‡{ˆ¯âáÅËÛÛÜѲ“‘¡©ž³Øïìéêèæéê¾uU`dr’—„€ƒ}‡™¢œ•”‘‡mqŒ“Štgn|„‡„„…|¥äݲÄŠ°ž²å˃•Š‡Ž˜¡¦§¤¢¥¦›—œœ—™›™•’–ž™’›¹É¿¼Õع§}fcccah_fe^\_gojjfdfd``gkjjpsqrnnjghnomo`^ipne[[XURRZabcaacc`^_baabdgiknoppqqpoqrrriQBFBCDCA@BDKPTRPNJECPNHICJcvwvwwtqsvtuuvy|{tyzuruurmquvzv_]mm^S_j_[^^[]acdbeccdc``c_UV]]\YPT_b]eqsmšÆÀ«®´¶Ã¿¹¼À¼ÀϤbQcRLq”™¡”v…¢ž£ŸtV\`\^XVVVUUUTTUSSORS@0-(*;?668) "-_o]\n€}––ž®±©§›y`d\Y¤”ƒxm_\bju‚iZa^\[[[ZZZYW]\ZZVRVZZ]^[[^_]\[XVYYRRPQPNPQNFA?@=9<DIJJIGFHKIMPTZXRQWcgoj8!#%'(+/1110//158@H`sfY_^^ZZTQ[cgggibTR\afcbdghebfedcbcdecWXtŽ¬°› ¶²¥¥²¶«¡®¾±¤®¼·¨¬½¼®¬¶¶®¯·»²ª²À¹«°ÄÄ°§½¿®¥¸Ä·§®Ã½£²Â—d`jecdadcdc`bace]ONMOYbechcbecYxž~_jpkimmiihjkmmllnnmknqplnpllt^^ÑÏÐÕÓÎÕÎÊÍÔ×ØÞæíìëíîçßÞ€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€DˆÁ²u‰Òô¼wdpˆ€w¼êâÁÃÒÒÒʯ“ž¦Ÿ¸Üîìèêéæéé¾w[egn‘•‚‚…‚…Šž¤œ™–€qu‹“‡xpkp}ƒ„„„{¤àÚ´Æ¿…¡†¤åЂ˜Œ—•““’š£¥¤§§¡¥Ÿ”™™œ›š•—¢š•±ÒÓ¹²ÖáǶwc^`aahd_[^efegpmgceda`chjjkkjknmkjkmnmh`ajnkfaVYTNU`b`_\[\_^^^^_`acfhhkopnorqnopvnUDDEBBCAA@CDHPTQPPH=EHGDAAVvvtxztopsyyxrrwysy||wvvqjsqruzubfn^NYmn]W_^Y]defdedbca^\ebUSZZZXTT]b]`kno¡ÔÔÆÈÈ¿½´±´°ºÕ¡_PbQKr•˜£—v†¦¡£ tU\`[]WUTTTTSSSUTXTUZSL5'*?<.37( ,\qaYh€x|Žœ ª±§§›z`e\Z}¢˜†xpa[dqx~zeY`^\[[ZZZZY\\XWZWUY[Z^`]Z[]\]^\Z\ZSPNORQOMIC??A@<=BIIIHGHJKKNPS[]\]\_e|€S$"#%'(+.1110../259D]ndZ`^^XXQQ[cfefiaRQ]edgigdbcdddcbcdfgdXYt€Ž­±ž£»µ¥¢³»©¢±¾±¥®¸±¢§¼À³²¹À¯¬¶»¯§´¾·¨ª¿Á°¨¼Ãµ¨¶¿´ª«Â¾¤°¾”d`jebdadcbb`bbcdZONLOXbecieefbVuœƒbkpjhmmlkllljkmmjlnoqphkoqjjv`\¥ÙÖÔÖÏÆÊÎÐÐÏÐÕÙÚàåéëëâÚÚ€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€B»·’s‹Õø¼{kuŠz”ÆíãÆÁËÇÌÅ«’”Ÿ ¡¾ßïìééêçêé¾{bkinŽ„„Ž‘¦¥ ›”ˆ|s{ˆ…ytsu~‚€~|ƒ‚|¥âݶƾ{‰¦Ž“½´||–”Ž”‘‘—–—œŸ¡ª¬¢Ÿ¢œ™šš›˜’™˜“™—œÀ×̲±Ôèа‹odccd`bea]ad`\_nnjgge`]acgkjgimollpmhiomb]ckkc[UYRNXa`^`^[ZZ[\\_bfhjkkikmonoqpnlptgNBA=@@?@@CEGIORQRQI>54?A4?ewquzrpuxxxvrr{}wwz{yxyvqtvrr|~tjqlTK^pm^\a^Y\cedb`_cdb_`gfWRXYZYRR[a\aknnÎÔÊÔÚÜØÝÓËȸ¸Ñ¬iUcOIr˜—¥šx‡ª¤£ sT]`Z[WWWVVUVUUUOPTSD<LI3-CB/2<'"% /]pbYd{skƒŸž£ª ¦›|cd]YyŸœˆyse\hxzxraX^][[[[ZZYY\[XX[YVW]\\^\[ZZ]]][XYZWUQOOPRRNB?=>=<>BFHIHIJJHILLNUY[`d]^th4!#$&'*-0110.-.035@WkcZ`a\WXTT_bcdejdVT^ceghhfffgbcdefedceYYtŽ®³¡¤¸³¨ª·º©£±¾°¥­¶²¦¬¾»®¯»¼¨©»Ã³§²Á¼«§¶¸¬¨½Á±§¸Ä·©­Â½¦³¿”c`jeccadcaa`cbcbXPNLOXbfdcbeidWvˆcinkjmkkmmlkmmlnmlljmonnqsmmwa_œÖÒÊÍÐÊÉÍÐÎËÎÕÓÊÏÜçêçÝÖØ€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€J€®³œ}‘Öô·{qy‚ˆ}|–ÈèæÕËËÈ¿¯š”Ÿž¤Ääîìèéëèëé¾~jqluŒ}~„‘““¢­¥›”’„on…}opr|€}}…†}¥äߵürw¢Œ“˜‚xŽ“‘”Ž”•‘”˜›£©¥žž š–š™—““–—˜˜¦Èм®±Ëæج}jgfff`^Y`a\\`dfilkhhgcaa_dkia`elilnlgiomd]bjjbZZWNMX^^a`_]ZYZ^`aehikmlikjlopnnplrm[KB=:>=<=ADHJKLMPRRMH94402Uzyqsvqryzzttuusuuvwutw{|yqvtrzztzo[T[hmc^]^\\aedcbcedbbbdfWQY\^^UV^a^dnnh“ÇÑÈÌÖÞâåÛÙâ×ËÖ°mZfQIr˜—¦œz‹¬§¥¡rT]aXZWXXXWWVVVTOX[D!>^H5=B32;'"%!5al`\brrb~ Ÿž¥›¥œ‚gd\Zxœœ‹zuhal}zqj_X^\\[[Z[ZZYY[\YXWXYYZZY[]^]`\[ZZ]\XSQPOOTTNFA<:;<@DBGJJIJIFIMNPVYZ_og]aO$! "$$&(+.110/--/15;OfdZ`c]XYUV`deggicVT\_dfhhfdfgcdefedcbfYYsŽ®³¢¦¹°££¯®©£±½¯¤­¶²§­¼¸ª°À¹¬­º¿³§°¼¹­­¾¾²¯º¿°¦¹Æº¬²Ã¼§¸Ã”b`jebdadcabaccbbXPNLNWbfdbaehdWv…agmklpnkkkjklljlmmmomlnpnppou_a˜ÓÐÉÏÓÎÎÆÊÎÎËÉÌÐÍÝêíéÞÖÖ€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€M}ªªŒ“Îí®vpw†yz—Çáçæ×ÉÁ¦’‘•™™¦Êèîëéèíéë辂qxozŒ‰˜Ž†™¬¥œœ”‰wu‰|jlr~‚€~„‡}¤äàµÁ¹u•¤˜‹u~†“’Ž“‘”˜˜¥ª£šœ™—™—š›’”˜–³ÕÌ´«®¼Ýبuhgdbe`][_^[]abbhmlgggdc_\dqqieedfhhhklmgebfmkb]XRNS\]\_]_][Z^becefdeijhjhjopmmpnscLD?;=><:<@EIJKJKNQQPPLE:5B]puwutspswwtrtwusssxwtsuyyvtuwww|}tfc__]dngZZ^a]_dfcfhe``a]dhYQZ\\]WX^a\bjim·ÄÀÄÈÌÛÝÓÒßÝÑѨhYiSJr—™¦œ~Ž®§¨¢rS^`XXVVVVVUUTTRQcZ-:[\NF?007(;dh^_akra{¡£ ¤ž¤Ÿ‰mc[[x™™Œ~ulgozkd]Y][[[[[ZZYYZ\ZWVXXXTYYXY\^ab\Y\`b^VKNQQQTQIEB???@@AAHMJGHHFFJKMU[ahsom]6 "#$&)+010/..0157F^aZ_d^YYTS_fihee_SS]abgjhb_aegfdcbcddfYXr~®³”·²££²¸ª¢¯¼®£­¹±¤¨¹¸®´ÃÁ«¦´½±§´ºµ©¯Äõ²»Âµ¨¶Àµª´Â»©ºÄ”a`jeccadcccacbbcYQOLNWbfegcceaVu‚akpjhmnljjllkklqnhhmompokmnnr\`ŸÓÐÎÑÊÁÆÇÌÏËÅÅËÒÓáëîëàÓÍ€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€H}œ¨ŒÎë©rnt}‡{zœÌÝæîؽ¨‘ˆ‘™™—”¨Ïëîëèèíéìè¾…v|qv‰Žƒƒ“œ—†“§¤™‘Œ€~Š‹{npwƒƒ€~‚…§åâ¼Çº“‚§”—Œ‡Ž“–—Ž’•˜š›¡ªª£œ˜˜•“—•’“˜˜ÂÛ讬µÒÌœndf`]a]YXYZ[]Z\bfllijic^_\cnpld\_cecdillmh`cnm_USMPZ_^]\aa_\\`cdfihdeikihijmnnnornW@==:;A=:;?DGHFILLMPQQHKNPMIO]jsupqsuusuywtvxvrwzwuuvwytuxxyxqXTZiidgc[\_a^]`daceb`cc]cj[QY[YZURZ`]aikq‡¤¥Ÿ¨±¶ÄÌÌÊÒÖÑΤfYhRIr™›¥œ’­§«£rS]aVWVUUUTTSSSQNXI'!+>LRQA05=) >eg___gm_v›¤¢¥£¢¡rcY\y–•Žunor€xg_][][\[[[ZZZYZYYZZZWRUYYXZYZ^aZUWZ]]XPQSRQRRMDCAABA?=BKNHBEHIJLLMU^hrpqvT!!!"$')/010//0255?T\Y^`\XYSR\ejccf`TS]bbccdeddcedcbcdeffXWp}Œ®³˜›´¶«§³º¬ ¬º®¢®½·§ªº¹­¯»º¡ ·Ã³§¶Ã¸©®¿º«¬À±¥·Â³¤²Á¼ª¹À‘a`jecdadcfeababd[QOLMVafed__cbYyž‚blqjgjiijlllmoojjkmmklommomls]^šÍÊÈÌÇÁÇÐÎÊÇËÏÏÊÕãìíêßÐÈ€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€H‰Š—Úïªqmt~Œ‚~£ÓÝãíѯ“‹Œ”™œ–¨Ñìîëèèîéì辆yrp…}’˜ˆ‚‘¢¥ž—‘Š‚‡“yjs{…}€‚†…ƒ¬æäÄϽ‘‰‡‘ª™Œ–œ„†‡ŒŽ‘––•™—–›§«˜›•”–‹••’Œ¥ÒØÏ¿³¬µÌ¿gae`[_ZTVXVTUWZ_eihfjlfa_\ajooh\^bdcachmig``ii`ZRKOY[^a___]\_dgfdhhddhhefjlklppmtgM:;>95D@;;>CEEAJMJJOPNSMORNKMM[oupqttvsstsopuwvwwvvxxwvqnt}zstiWWptbZY[]\\__`fgaadefd]]gYPY\Z[\U[da`hlb‹¶²œ˜›ž©°°¬µÅÌɪjYfOHsœœ¤œƒ”®§­£qR^`VWVUUUUTTSSNV]K2#!.A;/9A%#>dg`^\ef[o•¢¢¤¥¡£”ubX]{•“Žƒupstwd]^\]Z\[[[ZZZYZYZ[XUUUVWWY\ZX[]YYZZ[\ZPOQRONNLID>:;>@@EMOE>BILILLLQW^fksn? !!#&(/010001334;MXY^\WVZVR[cghhi`QP]ecegfdbcd_acefffffXVp{‹­³™œ¸½¬Ÿ­»­Ÿªº­¡®¿·©­½º¬­¸¸©«¹¼¬£²À·ª°¾¶ª¯·¾°¦¶Â·¬®À½«¶¼Ža`jecdadcgfaa`bd\QOLMVaffe``eeZv™€^gomklhgopjgkljlghllmnlmqsmmxb_–ÎÈ¿ÅÍÌÏËÉÌÑÑÌÎÕÔäïïêßÒÌ€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€J†—„—Öè¥nr‚Šƒ§ÉÚæàÀ ›  Ÿ™°ÓéèçêéçâììÁˆwyltˆžš†€}‹¢§˜‘˜Ž‚~‰’Œ}qt|„†ƒ€‚†‚„¨áÝÈÓÈ’„Ž‰›¦„ˆœ‘€|‡Œ”’“••”™ ¨ª¡““žœŽŠ’•‹‘¶ÓÒ¾²©³½¥|feb_[XWUKPVWUSSTcehknnjg^\_hprlcZ^ccadhgbgecgg_YQFN][Y^ab_`a`cffffeddfikgpslgimmrY@899:=?>:<CDBEECCGLOPPRMNUUMLPOetsqvxvpsvurqtvtxvsw{xtuquzyvwxoc`mna\\\]_`_ZY]abccdedafbYPX^WXYUZ_]dmhcÇ̶·¸¬©¨ ž  °Íªm\eNIs™œ¥¡‡‘ª©®§rTZ\UTVUUUUVVVVUM[fJ& :?38C(Cgd^a_acZk £¦©¢Ÿ’|l^`|““Œƒxu|v|ycY\[[YZ]^\[[YUXW^]SRXVSYVSXXUW[XXYZ][UUQOOOQQMFC>99=AABKLFCDFGKLLLQXYUjwZ( #&)+.--/231/26=HRX[]WW]WRY`ehde`TRZ_^gkfacff_addcdfi`RXwƒ“±°—Ÿ·º«ž®»ª¢°·¢ž±¼²¡­¿¸©¬½»°«µ¼±©­½¸°²½º¯­»¿¯¦·À²¨³Æ¼¦¸¿d`f`bfbeecdbbaad\PONPXac`fgbdfZx›€cnsnhjmjkiilmklifinlloqnssnqx`bÈÆÉÌÊËÔÉÍÔÔÌÊÎÎ×åëëëßÒЀ€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€N…”Œ‡™Øîªx~‰”ƒƒ®ÑÜßØñ»»º²¥šš ­ÍäêëêææàêêÁ†t{xx……„•¡zoq„¡¨›“—…‚Šƒums{ƒ†ƒƒ‡{©çßÉÜÑy™²˜‚–“„‚ˆŒ‘’‘“—”‘’—££›’•Ÿ“Šˆ~Š³Ï̾µ­®·±jjhd_ZWTSPMKNTWURY^ejkjhha^`gmpmf__acbcefghb^ehaZKEP`^Z]^_^`cdefdcdedcejoqsqkfgkneQ=7889<:;:<@DCDLEADGKR[WOLQPJKTN^pvrqrotssssuwywruxsruuxrqvyywqlddg`ceRW\]]`_\\`bca`bcca^WR[_Y\aXX^]dnhfŒÂ;ÁĽ¼À½¸±¦°Ë­o^gPKuš ¢žŒ•¨¦²¦rTZ]VUWUUUUUUUU[LX_>(=<27>)Dfa[cbac[f” ¥¤¦£šƒm^`y–‘†€zz~uuwg]]Z[\Z]][[[YWYVUWVWURPWWTUUUX[YYYY\[VTQQRQRPKEC?;;?@@CLNGCCGMHJLNRXYYgbD! "%)+.--02320407GSV[b\Z\VQ[chb]aaTPZehfgjiecedcccddddcTYw‚®­š¦ºµ§ ®²§¢²º¥Ÿ²¿³¢«»·®¯»´©¨·Á·®±À·©¬»»¯«¼¿¯¥¶¿²¨µÈ¾©ºÁ‘edibce`aaccbcaad\RQOPX`a^dfaceYwš`ipnkkkkjjjkmmnlmnljmnjinmiksZ]šÑÍÅÆÎÍËÈÊÐÒÍÍÓ×ÜèíìèÚÊÇ€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€O‡žŸ¥—£Ûë¢s{€„Œ{ƒ®ÒÚÚ×ÓÒ×ÍŽ©•—¦±Íæïìâáëäçå‹sts{}|…˜™†wlrˆ¢«Ÿ––ˆŠ”‚wsw~„†…ƒ…ˆ‹~œçâÆÝÐ’|•Ž”Ǹ}ƒŸ¤Ž€ƒˆ‹’’•˜•‹Ž’˜œŸ˜—™“‰”¶ÍÊı¥¯¸¨†mnje_ZUSQPNLLNPRSSYbhkkkkga_chmnjb_`bbceeffa_gkaUJFP]\Z^a^]`dfhgdhgd_\_hpklnomgc`SF:7878;9:==?BDABDEEHMSTTMLPPIIONWlxsnontsrrsssrutvyxtu|xrpswzulrtm^ZhjNR]_\``\[_aa^]]^^^\WS\^W[]V]ia]jkfÅϸ´»¼¾¿½Áü¿Ò¯p^hQLvšŸ£ Œ–ª¨²¦qSZ]WVYTTTTTTTTTMW[? $&#-?=16<) 4U]Z^`ec\`o„˜¡Ÿ¥£ ‰m^dy–Ž‚}z|€xsrd\\[[\[\\ZZ[ZYYYWWZYVUQUWVVVXYXXZZY[\YQOQSRPLFCB?<=@A?AJMHA?FPOLJJNS\dfM/!$')../03332657@LV[]ZWXRPY`deaecVP[efdgjgaafheccddb_fVYv€«©˜ µ·¬¢®³© ®¹«¦³¼µ¤¬¸´­¯¹º­¨µ½³ª¯Ä¹ª­¾¿²­¾À¯¦µ¿µª´Ç¿©ºÁ‘dagabfbddbcbcaac[NMMPXadacc_bcWw™|^gnmklklkjhhhjjlkkkkmmjknnjns[_ÕÐÁÀÇÆ¿ÍÆÇÌÌÌÑÒÞéîîëÜÎÌ€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€L‰©°³¤®áç›mzyx†~‚¢»ÂÄÆÉÐ˹­ª Œ–™¬ÇáîèäíæêëÌ•rnqyyx‰ˆvz‡˜›“‹Š†‰…zspy}‚€€†pŽãݺÕÎ…™‹”ÜÒƒr•¥™ŒŠˆ‡ŽŽ‹„ƒ†™¦¨ šœ¡£¦¤Ÿ£²½¿ºª£²½¦mnke_YVTSQSSOJINSTV[bhllkfa`dimlga````dgfgf_[bibVBFT`_\]^`^`cehheec`[Y]goolhfb^VPD>9:9779<<@B>AB><BDCFNOLKKLNMKIIJUnzrottuuvutsrrwyvtvwvyuqpsuvsmnshYZpv^L[_]`a^_\]^_aba^bd`[_aX[[UWd``nji‹ÁÐÀ¾¾¸¿ÃÁÂÀ·¾Õ°p]gQLu˜›¨¥Š”°®°¥qS[^WWYTTTTSSSSSUUVL2!$* *CB25;)+P_Z[^cb\ZcvŒš ¡ ¡‹k_i~’Š}z|‚}rm`WXYY[[[ZYYZZZYZYZ[ZWWTTVWVVURTVZZY[^\USTWUSOIA@=<<@AADJKF@?GTQNMOOQZddD,% #&(-./12433445:GV^_ZWYVT]abidb]TUZZcdcccedcgecccca_fVYu~Œª©›Ÿ±²¦ ²¾© ¬º®¦±¹²£«·®¥©¸º­¨´º¯ª³¾¶«¯¾½¯ª¿¿°§¶Á¹­±Ä¼§¸¿a_e_bfcefacacaacZLKKOXbeccb_cbWw˜y`kokikmmomllllnnllmnmmmlmmknsZ_¤ÔÏÊÈÉÆÉÎÆÇÏÐÑÕØÚäèêèÜÐÒ€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€I‡ª­®£±àß›x‰†}‹‹‡“š› ŸœŸ£–Š…†Š¤ÌëèÛÜÞæçÊ–sq|wzyy€‚‰ŠŠ‹ŽŠ‰‰‰Šˆ„€{ws{}~|zz{xs–Ó½š·¶ƒ‚’‰œÕÉŠsŠ™››–“Œ‡Šœ¤­­¥ ©µµ³±³¶µ·»¸­¥¯·Ÿ{lnjd^ZWWWVTRQPPONSSUY_ehidbbegjjgb`abaaefdd`[_faT@HW`_\^_a_adefgd_^][[]adkh`WVWRJ<:;;:778>;?B?>@>@?@BGIJIFIJFGJJGAWszssywuutsrsuv{wvrrx|vrnpttrqppgc]Yit_R]`^`^[]Z\]]_a_]_dbY\^VWWZX]^dsihŠ½Ë¾À¿µ¾À¾¿¿¸¿Ö¯o[eOKs”š©¨‹–³±°¦rT[^XWYUUTTSSSRVUNNUI1%+$1HC369(7ek[^c_`ZW^m}  ¢¤lbm‚…z{}€…~ojbYUTW][ZZYYYZZXUVXYXVQPPRUTSRPTVZZX[^]WTTUTSPKA?=:<@CBDJMKIGKSWSRQQPW_W@3." "&',.013344722:FQ[bZVYUT\ab`ci`PO[bcffaadgebcdcbabceUWt~­¬›¨º°¡ž±·¤¡±¼«Ÿ¬»³¡«¹²¦¬¾¶««º¾°ª¶½µ«¯¾½°«»»®§µÂº®°Ã¼§¹¾`dibce`ba`bbcaabZONMOW`b_cb_dbXy™{bmokillimmkmjhliklkkllmrrrqtw_eŸËÈÉËÈÈÐÎÊÏÕÒÎÓØÞåççæÙÐÔ€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€Fˆ«««¥­ÏË¢Ž Ÿ‘˜šœ––›—”‘’–—•“””œ³Â»¶À¿¼µ§–ŒŽ””–”–š™”Ž’””˜—’Œ‡ŠŠŠ‰ˆ‡‡†ˆ‰›­“†ž›‡„Œ¡³Ÿ„|„‰’›š–š˜–•˜–•š¡§¬³¹¼¿ÅÌÎÆ¿ÃÌÊÇÊÈ÷¶µšxnokd^YXXYTSRSUUSPTUVWZ_fkfdcccgklf``eb_ae]``]_f^MBMZ^[\`caadfddca^]\[ZYZ[]]XSTWPF9:;<;988<:;?>=>>?>>BFIHEBGGCCGFBA_wxtvwtutrrrsssvuuvvxxxrmnttqpplc]a`chbX[[]_`^^`bb_^^_^\baZ\^Y^bf[aa_mmb‡¾É»ÀÈÅÀ¾º½Âº»Ë°nZdOKr’§¦‘š³¯´¨tV\^WVXVVUUTSRRPNOQTVNAABJO=2::' 6oz`[de_YV^hq‚˜¢¨©‘tho„ryƒˆˆ|nga[XXWZ[ZZZZYXYVVXYVUTQPQSSQOOSUW[[XZ][URQRQQOKCB>;<ACCCIKJJJLQ\YUSPQUYD:96)  #%'+-/112359779BNX^YVWQNX_cfabaVU]bcfgd__ae_bdcaacedTVs~¯¯˜¨¿¹§Ÿ¬°¦¡¯»¬Ÿª»±¦º·­±Á¿±®»¿¯©¶Ã¸©­¾À³®¸¸­§µÁ¹ª°Å¾ª»ÁŽabhacebcc`aacaabYNMLOW`b_c`_daXz™}bknlmmiillkljghjkllmllpnllmoqYa¤ÖÑÌÌÍÌÎÉÄÈÐÓÖÙÚáçèêèÛÑÖ€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€Gˆ¨¤¦£¢±¥œ’›ž–˜˜ ™›Ÿ˜”š”“”•—˜˜—˜™š¡ —œ°»¯ž•˜œ˜“œš•–š•–›ž›•”™›˜šœ›——›š•˜˜—˜™š››š”˜”ˆŽž¡˜”“–ž™ŠŠŠŽ”œœœ¥œœ ¦©©®µº¿ÇÎÕÙÚÙÙÕÊÉÔ×ÓÔÐÒÎÎÅ›rjsmf]XVWWSTVVUTTTTUWXZ_fkgdcefjlkebbcbaba_^\X\e_J@P^a^]_acdgfa_`_Z[\ZXXY[\ZUQPOH?89::::::=<::>>======@FHGFECA@?>?Snystwtsuvvvutssruuvxtptrnptsqpnjg]^d_`e`\\\]^_\\^_^]^__Z[[Y\YVb†~\Ya^knh‡¹È¹»Á¾»¿ÀÁÀ¶ºÎ²pZeQLs“œ¨¨‘œ´±´«vW]^VUVWWVUUSSSQQWWQSXVTV[S:0<;& *e}eZaf_ZV\fit‡›¨ª”}opƒŒ{nz‡‹‰{ob]YZ]XY[ZZ\[XVWV[][YTRUWVQLKGGOTVYZY\^\WSSTTTRNHGC@@BB@EIGABGNTXYZYYWSN98<<4(! #%'),/1113539:8>O\^ZX[TPYageac_SQZ_fcbdfca_`abbbbcceUWt°°›¥º¸ª ¯·«¡©·¯¤¬ºª™£¶´«®¼Á¯¨¶¾±¬¸¾µ¨«»¼±­ºº°«·Á¸§°Ä¾ª»ÀŽ`_e`bfcff_aacbaaXMLKNW`c`b^^c`Wz˜z`ilkmniigjkjkkhkkjkmjhmommnrrZc£×ÒÇÆÉÇÅÑËÊÏÔØÛØÛâæêéÙÎÓ€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€K…œ‘–š–›¡­¦£©ª¬ª¨©©¬¬¤£°ª¤ ¢£¢  ¨¥¤¬±§¢«²±© £¨ª©¯ª£¤§ œ£¡§©¤¢¦£œ˜ž¡žž¢¡œš™™›ž¡££ ™¤¡”“™¬ ¡›—™—–¡™Ÿ¢¤§¥§±®±¹ÃÇÇËÑ×ÜÞÜÛÝÝÚÚàØÏÖÛØ×ÓÖÒÓÆ–mlvqg^WTTUWWVUTSSRSRQUZ`celd`cinojacc`agf]\[[Y_h]CDT_^[\`dgfgd]\_aY]`^YUUWXURQOJA;88889;;;AB<9>?<;;88=@@CJQF><96:Ci}{ntwsvqtutqqtxwuvvtvyxqqstpoomlf]]\[`ba\\\Z^b_\^^^`a`]_[[]_XVh‘—nV[`mhdˆÄÕÀºÄËÆÄÀÂŽ¾Ïµr\fRNt”˜¬¬Ž™¹µ±¬wX]^VTUXXWVUTSSUSSTSPQUNNVV>1:8&*^xf`b[_[V[dekz‘¢§”ƒtpƒ‡yp|ˆŠ‰}l`\WVZY][ZZ]\XUVX^ZX]XPRRPF@DCEOQRVYZ_b_VSSUTTSNKKHDCCA>BIJDDIORX[ZXXYTL8:>B>0! #&')+/001357:;<@JV^UU[UPW^cceg_QS]_cdfhihebca`acdb`gVXt°°™§»µ©§³³ª¡«¸°¤®¿­¡®¼¶­°½½©¢µÀ´«²º¶¯²½»±°¾½µ¯ºÃ¹§­Á»¨¹¾‹]chbceabb_aadbaaXPOMOV^_\`\\b^Uy–u^jlhjmkmfjmgjnghkjhlnmlollnqqYbžÐÌÈÉËËÍËÍÐÎÉÍ×ÛÜäéïíÛÍÑ€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€Fž–“”“–³ÐÛÖØÛÙÚÙÙÙÙÙÙÙÙÛØÕÔÖØ×ÕØÏÒÕËÉÓØÙÙÙÛÝÛØÕÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÏÏÏÏÏÏÏÏÌÌËÉÈÈËÍÍÊÌΟºÇÄÀÀÄÄÀÃÊÇÇÈÉÊÊËËÖØÚÝàãåçæåäãâáààÝÚØÙÛÜÙ×åßÕÜƈkusia^[WUWVXXVWZYVVUSSV]beihfcejmmifb^]ab_Y[\YZc[DCX__`bfdeb_^_`_^ca\WY\YRPWWPH?=CB=9;=88AG=:?A<:><<969AHKQJEC=9CRm}zrz{tvvutssstusqsussvxtpqpmrvrndYX^_`d_]]^]^abaa^^`__d_X]]`^Ta”¥pVbbkhgŠÄÒ¾¿ÇÃÁ¿À¿µ¸Ë¯r_fPMt’šª¨‘ ·°·¬tW^]WYXXWWVUTTSTRPNORWZTPRR?6;6$!&[wi_^YZ\[\chikƒ–§™†~ut~wr~‡ˆ†xi_XXWX\_ZYZXVXYT\[YVVWUQURD<ACBEKTXUU[_^]YUSRPRUQMFBDDCDEGHIIKNQWXZ]\WNF;::;4%$"$%%*))+/3577988>KVZ[XXQO[bceac`TRY]cfifa^adeeddccbbeVVsƒ’®¯˜ž¶µ¦¤´¯ ›°¼§®»¬ž©¼µ¤©¸º¬¥¶Ãµ«µ½¹³´¾¸ª±½Æ·©·Á°œª¾¸¦ºÁ]cfacb^a^c]]abb_XMKJMV_`\abcc_[|Žr^klikmhknjfikhghkkknnkjknomor\d¢ÒÍÉÍÑÐÑÍÌÐÔÒÎÓÜÜéìéåÙÎÏ€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€C~¥¦£§¥¡¬ÎçéèìîïêêêêêêêêëèæéîîçààãåæáÚÛãéçäãåçéêééééééééééééééééêêêêêêêêíëèççèééååéëßÓ×åáßàäçæååãääååææçáâãäåæçèææåäãâáááßÜÝßßÝÛÛßàåÅ‚gswlb^[VUXVXXWVVVVRTUTSX`ghgedfjjigcba`ab`\ZYY]bXDAV_bdehfjd^\^`_]\]ZWX[WPSVSKC<:?C?::<9:AC=:==99=?<:<<>ENJMOOLKMQ`swqsurrttttsssrytrssuxzsnnmkptooja]]\[^_`a_]`a]__\\``]]\X_^a_U^Ž—kW`aloeˆÂѽ¼ÂÀÀÀ¼¾À·¹Ë¯r_fPMt’œ¬«“¢¹³¹¬tW^\WXXXWWVUTTSPQRTUTSSOPVT<099"!" %Wsg`a`caZYaedfv‹£Ÿƒwt~zwŠ‰yi]VY[[[ZZ\ZY[YWZXYYXXXTOURE?IPNNNPTWYZ\^\TQWWRPSRPLGBBBBEHJIGINSWXZ]\WOHA8132(  !$'-,,,-/246888>JUZZXXQO[bcb`b_TQZ^ahic_bcbedddccbbbUWu„‘«ª•Ÿº·¢²¶¡ ³º£¯º¬¨½µ£©º¸¯¨³¿¶­²»²§«¿¿¬ªº½¯¦¶¿³¨±Ã»§ºÀŒ]`c_ccaecb_acaa`\MLKNV_`]_`ac_\}‘v^ikiklinkggigfjlhjnlkkjkmomor\d¥ÓÌÅÈÍÍÏÐÔÔÑÒ××ÒØèîéâÕÎÔ€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€Gz¢£ §«§¢¹ÙëêçéêææææææææéåãåéäÖÊÃÅÀÅÒ˽½Ùáéìéææèççççççççççççççççççççççççéççèçá×ÎÎÍÐÓÍÄÇÑæèéæäååäããääååååéééèèççççççæåäããåäââäãâàßáãå¼zgvuj_YVRSV[[ZWTSTVSUVTQS\ddghfcdhkhcaa``cd_XUX^aTB@S^dgdeccb`\ZY[]``\XX[ZVTSKB>::>CB=9;;<A<;<=<889;;:;?EJMJOPLMRSOTguspqsqrstttsrrxtuwvwxwtmllkpslkjc[YZ]aacb\Z`c^_a_]`a^\_[^Z\_Y`kq^Ya_eheŠÃÒÀ»¿¾¼ÃÆÅ¿´¼Õ®q_fPMt“œ¬«“¢¹³¹¬tW]\VXXXWWVUTTSPRTUUTRQMPWT;.89""Soe`efgaWV_cbcg{˜Ÿ—ˆxt|yx‚ŒŽ‰vg[VZ\\YVXYYYZVV[YYXWWXVSVUJCKRPNMKMTXVWZ`WRTUQQUPPQJAAEDBFJIGIPWWX[\\XQLB5-/1-(&,&! %*,-.-,-145778=HSYYWYQO[abbad_ROX]cefdbbccdddccbcbeVUq€¬­˜Ÿ·µ£±¸« ¬¶§¡®·¬œ§½¶£©¼¹¬¥³¾±¨²»¶­¯Á²°¹¼­¤³½¶°¸È½§¹½‹]dgbdd`dab`bcaa`[NMLNW_a_bbbc^Y{Žu]jpmjiehjihkmllljkllnoljmomnr[c®ÛÑÉËÐÒÕÍÏÐÑÖÚØÔØåëëçØËÌ€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€Fv § ¡£ £¥ÅçìæèêêêêêêêêêçååéëçÝÔ¿»´¶¾¸¦±ÆßëéäåéêêêêêêêêêêêêêêêêççççççççèæåççßÑŹ±­°°«§¨¾ÓçìéééçæææçæçççéèèçæåääèèèççææåççææææåäçààãµugvlaVRPNPU^`a_]\ZVYWTSQRW]cghe`ahojdaa__cf`YSU^aR>BS^gidb`[]_^[YZ\_^[VUVVURNC<;;<?>CB?@@<;:<=<;:986:;;>EKMOPLEFOPLO_szrsvssttuttssrrvwuttsxojihptnficZX]be\`b^]bb\`b`^^````^^XX_]`\^Z[]`gjh‘ÇÔþ¾¿½À¿ÀÀ·¼Ð®q_fPNu”šª¨‘ ·°·¬tV]\VXWXWVVUUTSSSTTTSQPPOUT>396#!Poeaega\UW_ccfam‡—™Žztyts‚Šˆqe[WZ[YXVWVZ[VVYZYZYWWXXWQUOHIOPQMMOTWXXY_]ZWTSRRQQSL@AGDDHKJHINTWY[\\YTQK>40-07=?3&#"#&+),.-+-274578<EPWXWYROZ`b^]a^QOZbdccddccdccccbcbbfVTo¯²•œµºª¡®±ªž¬»ª›ª½¯›£»·¦ª»¹ª£³¼­¤±¹¸±­¸·¨§¾Åµ¥±¼³©ºÈ»§·»‰]gided`c``]\^_a^UNNMOV_b``__c^Z|’y`jnhehjikhdipmekliglomkjmnlnq[c«ÙÐÉËÑÑÔÎÏÓØÜÛÛÛÝçëìéÙÊÉ€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€Bu ¨¤¤ª¯º¸ÌäåâäâçççççççççèêêéæäããâæãØÔÔÎÀÎßèéçéëççççççççççççççççççççççççîèããççâÜØÏÈÇÆÀ¹µ®ÅÚâãæèèçççççæçæååååååååééèèèçççççèçæååæåÝãæ²qhsbXPNOORWY_cegid[[WTSRQV\fedccejmidba`acb_ZRR]`P:CT^fjdc`^\\]__\XYYYWWVTQQK?8:<<?FGA8:=@A@?<99<==89<>==CLPNKILNMJMYq}wsvsttssssttwvwwtvxxtmkjjprkfjf]\`bb__^\[_b`_^^__^_`]^`\[`_\a__\Y`jij—ÊÑÄ¿½¿ÃÃÀÂŽÀÒ­p^fQNu”šª¨‘ ·°·«sV][VWWXWWVUTTSRSUUUSPOSPTTA7;5" Qqh`bb\YWZaabhcez›”uzooƒ‹ynf\WYYWXXXY]\XX\[VXZYXYWUQWVNKNQSNNPTVVX[da\VTTVWWSTLA@FBBEIJKMQTXY\\[YWVQE;40<TbP?,##%&')+--+,164579;BLUVWZROY`b_^a]PNYaceeabfeabbbbcbccaSUt…•°±“·¸©ž­´¥®½¬›©½²œ¡¸·¨«¸·­§¯¹¯§°¼¸¯­½¾­©·¿²§´¿·®¸Ä¸¥·ºˆ^beadebgdebbbcgcYNNNNU^baa^^b^Y|“zalmeahmljhggikkonkkmkjmilnlmqZb§ÖÑÌÐÔÓÔÒÕ×××ØÕÒàéìêäÖÎÔ€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€HŒ¸¹»ÄÍØßæíëåçèâææææææææêììéäãæêæåììâçîéçæçêìëåàééééééééééééééééççççççççïëççêëéæêéèçâßÞßÚÞààáäååéèèèççææåææçèèééèèèèèèèèçèèèåååçäáèß lpy\UPRSTUYQTVX]dgeZVUUSRW`ccddefimjd`__acb^[RQ[^L9@PW]`_^[]\[[ZZXVSSSTTTQNLG=8:<;=@EC??@=<BA><<>??;98:=@CEKHGKMLJIIXp|ursqssrqqrstwtsrruxvnjjkjopiehbZZ^__^]_a`_^]`\]aba`^]^_][_`\Z[^^Y`g`jžÌÌÁÀ»½¾ÁÀÁÀ·»Ð¬p^fQNv•œ¬«“¢¹³¹«sV\[UWWXWWVUTTSUTSRRRRRRQWWB6;7#Psja_^^[Y]a__fecrˆ˜˜„y€pn…‹}tmi]VWXXXXW]\YYZY[VXZXWWVUTVUQNOPRQLLSTRU]_\[_`[VUWSSOEDFEGIJJJKNQXZ\\[ZZ[TKHEANeoXG1#!%%$+,-,+,035579:>HQUVZSOX_adbc]OMV]dedcbedaaaabbcbc`SUt…”°°•ž´´¨ ­³¢Ÿ­¸«¡«¶³ž¢·µ©«¶¹®§²»¯©´º¶­®¾¾®­»¼¯ª¸»¯ªµÁ¶¦¸º‡^cfbddaeb_`b`^a`XNNMNT]abc_^b]Wz’vamogdhjkhikhgjnkjkkhillilmlmpZb§ØÓÐÓØÖ×ÛØ×ÚÛÙÕÔßæéêèÚÑ×€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€RµéÞâíêëãêéäåççèææææææææääåääæéìèèèåæììåççèêíìèäèèèèèèèèèèèèèèèèååååååååççèéèæâßãçêéææéìêçæéêçäãççææåäääççèèééêêèèèèèèèèçéêéæåæèäèêÏq~yYSPTVTTVOLLNPUam`YUVUSV^aceebbgmmc]^_acd^ZQR\ZH9BQTTVWXSUX[YURSUVTRTUTOKA?97<>=?BEB>?><<@@AB@??@?;65<DD?HFEHIFDDD]vyrprprrrrrsssttuuuxxuojihgmrnde_WW[^`a^_`__aa`\^aaa`\_^^^[]a]ZZ[][ajal¥Ðȿ¾¾ÅÿÁÄ»¼Í¬o^fQOv•œ¬«“¢¹³¹«rU\[UWVXWWVUTTSVTRPPQTUOQXWA4:7&Ork`_^d]X[b_^eeajz”ˆ„sp„Š{rjh^XYWVXYY[ZXYXWXY[[XVWXXQOPQPPQRTNLQTTX^_\\^_\XWTSTSNGFIHIJIGJPUXZ\\[[\^^Y[WMScgZM8$$'&++++,.13668:9;DNTV[SOX_ab_`\QPZ`fddddaab`aaabbccaTUr‚««’ž´´«¤­® ¢°µ¦©·±¢§·²§«µ¹ª¤³¼¬§¸¾»µ³»´¥ª¼»­©¹½°ªµÁ¸ª¼»‡^egbdb^a^^`b`^baXMMMMS[ab`[\a^X|–x`kkghkhighhikichikjimpmikmkmpYa§ÖÐÊÍÒÒÓÕÑÒ×Ú×ØÜàäæìíÝÎÏ€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€XÌýàáïçàíæÝãïéâíèèèèèèèèïíêéêëêéßììæêìéíáåéèååêïççççççççççççççççêêêêêêêêçéêêéêìîëìëèçèçåéååéèäæíëëêêéèèçèèççççççççççèèèèèêìêçæçéàêëÈŒ}†mUPOSUQOOQMOTQN[nj^UVXUTVdcbbaaflk_[_bbbc_YPS\WE;LZYTSUUOQUYZXVTTSQQSTOF?6746=@ACCEA>?=;=@ACC@=?DB>::;<>AHIJKID?<Ad}yoqsqrrstttssruxxwyzwjimomprlegc]\\^a^]_bbbcc]]^^Z]^Z\\_c`^`Z[\Y_]^g]p¬ÔÈÀÆÁÀ¿ÄÄÿ³¹Ð¬o]fQOv–šª¨‘ ·°·ªrU\ZUWVXWWVUTTSRRSTTSSROPWV@496&Mqja``g]TYba`gd^cl~ŒŠˆ„up‚†yqge^\[VTW[^ZZ]ZYZXZ^_][ZYXURRTQNNPROJJOVYY\_`^\\XTUVXYSGDIKLLHDFOWX[]\[[]`^\`ZMTipYR>(%**('')-145679:99BLSV[TOX^aa]^[RR\bdggcacc```aabbcc^RVu„Ž¤¡”¤·®ž›¯º©¡¨²¨Ÿ§´¯¤«·¯¤«¶³ª¤®·­¨´¿»µµ½µ§®½¿¯§¸Á´©·Ã»­¿¼†]`c_bb`dabaa_`fcVLMMMR[`bb]\a]Wz”t^jnnok`chmkfhkhihehmnklhkmklpYa®ÜÒÊÌÒÓÖÌÔØÔÔÚààáèëíéÖÉ΀€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€O¼ùèÝäèìéééééééééèæååçéëçççèèèéééèèçèççææèéèæåæççèééèææççæææèèçæèèèèèèèèèèèèèèèèééèèççèèèèèèèèèèèèèçççççççèèéèèèééèèèèçççéêéçæèêëèðÊ‘ƒz_V[PLWTILMVXY_\]iifaZUTWYb_^`_\aik`V[^^ce`SOV^UHLXYTLKPQKPQRSSSSTQRRPKE?<9426;>???A?;=?@@DB>?DEA?<=CC;9@DEFIKG?;<Xquuuopjrutqquvstvvvstxujgmomlkmkfi`W[ZX[\_bdc`]ea]\_ba^]`^\__]]]\[\Y`h[p®ÒÆÃÇÀ½½ÂÁ¿Á½¿Êªq_dOPx”¡«§“¤¹°¶«rRVXXYSQRTUUSRQRSTTTRQPTTSRD467& Lrlbebf`YY]^`d`dhir†…vv‚€tohb_\ZYZZZY[\\ZYYYYVXYXYZWVRUWRLMOLJFIRSQTa]^caYVYVUVXVPNNKJKMMKLPUZ\]^\\``][XPTdhWS?'"(*((()*-/23457756ALOXXOOY`_a`a\QOZeedcbceda]`aaec`beRTv…“© –´µ§¡°´¡œ¨¶­¡¨·­ ¬»³£¦¼º¨£³¸©¨»Â´ªµÃ¹ªª½Á²©¸¿³«µÁ´¤½½…]dfbdd`da_]_`adb[JKLQZaa]^`_`^Y{—y^imifikhghkmljjkjknmighlnlkppXg«ÜÐËÎÑÒÍÌØØÐÔÛÝÜåëëìå×ÐÍ€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€:¢îïâæéæèèèéèéèèéèççæçèèçççèèèèèéèççèççææèéèæåæèçèééççæçççæççèççèèèèèèèèééééééééééèèççèèèèèèèèèèèèèèççççççèèéèèèééèèèèçççééèçæèêåêíÊ–whd_VQUYXWY`e\U[aaehe_YWYZY[ab`\UWbidYY[[`baUSX[QFNVQMLMLMOQPPQSSQORNHECB@>>8469::;<?>=?@?@;:67<=:834:@>?EHFHHD>=@Dizxtttuosnmrroosvwutqqurfahnoonrgda\]]W[_`adhhfe\^aca^^^^^]^a`]\]]]^Z`eXq°Ñþ¿¿ÂÄÁÁÁººÈ¬o]fQNv–œ¨¥‘ µ®¶¬rQWYVVRRTUWWWVUTSRRRSTUSQQTE247' Kpj`eda^ZY[]ae^bfeizˆˆ‚yv~|rmg`\YXYYWUWWWXYYYYZXYZXYYVUQRUQNMLDGCEOUTS[]][[]]\VSV\\UNLOONLGFKSQXZZ[]]``^[YPSbe\WB)!%%$'()+-023568856?INWXPNY`_dba\RQ[dddddcbbc_baacb`bhTSq«¦’œ³³§¤³µ¦™«¼ªœ¬½© «¶°¦©¸¹¤ž²¾°¨²¾´«²»±§­¹»¯«»À²©¹Å¶¥»ºXad_ba^b_]ab]]ecVLLKOW`b_`_\`_Z{–x^hlhfiihhiiijjjfjljhilnlnlkppXg°ÝÍÈÊÊÍËÎÕÓÎÐÖØÚÙçëêåÛÓË€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€&|ÙôæåëäèèèèèèèèèèèççççæèèèèççççéèçççççææçèççæçèççèèèçççæçççççèèéééééééééééééééééèèçççèèèèèèèèèèèèèèèçççççèèèèèèèèèèèçèççèéèçæèéâêêÅ’n]a]YY]_agjfhbWTQVcefc]YYWTZcaYUMN\gi]TUV]b_STZZMFRSMIKLJKNNQTSNJKMJGBAAA?=7447;<;:>><;;98:<92046454138;@FHINME@CLPctxvvsrlpooqsrrswvrsuvxrgaiqrolnnh`XZ\[`he_`jmigbcff`Y[`^\_bb_^]\[\\Z`f\t²ÏÀ»À¾¿ÁÂÀÂú»Ê®n\hSLt——¤¤±¬¶®qPWYSSQQQRRSRQPYXVTTTUVPNQUE247' Hnh_fg\]]YWZaecddbdr„‰z{yqnh`]ZWXY[[XXXXYYZ[[YYZYXXVVRQRQOLGAECBMWWQW]^YUW]`WST\_ZSQONNKGFMUX\]\]\]ab`^\TUbe_YC)!"##'')*-024568965;DLUWOOY`^`^_[SRY_dcdec`adbda_ba_bhTRn{Œ«©•ž´±¦¤²±¥Ÿ¯¸¦¡³½¬¡©µ±¨¨µ·¥¢¶¿°¨²½µ®´»±¨¯½½°«º¾³­´Á´¤»ºƒ[ad`bb^b_`_`_^a_VNLKMV_b`b]Z`aZ{”v]hlhfhhhjifjnmhkjjkjhjmknljppXg¶ÝËÇÇÄÇÉËÕØÓÖÚØÔÜæéìèÙÏË€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€ Y¹òéâëèçèçèçèçèèèçççççæèèèèçççæèççççççæåççèæççéçççèççççæçèèççèéêêéêééééèèèèèèèèéèèççççèèèèéèéèèèèèèèèçççççèèèèèèèçèçèçççèèçææçéäé纂ja]fqmbbddh_`\YVPPYflme]ZZX\`]WQKKS_kaTRTZ^VLQ[YLFRPNKJJKLLQSSPLHFF@ACCBA?=:7578:87>>>?>823:955873283147<AEKOPMJMRUPcszvpnnossopvywtutvvwyshciooolnmklf[_c]dd_`kmheeb`a]X[a]]ce_]``^\\\Z`c[x¶Î¿½À¾¾ÀÁÀÁ»¼Ë­o\gRNu–”¤¥œ°¬·¯oNWXQPPSTTUUUTTQRSTSSQQLNSUC598( Dkh`fg^_`YQU_ehda`cn~‹‹…yuqnkd_^[XUVY]Y[\ZXWZ]ZYYZYYXWWURQQPKEDECENWVPX\a^SKSb]ZWXZZXXTQNLIFGKVWX\]Z\c_^[[UT^b\V?( #%&''(+-0245689648?JTVOOY_^Z[^\TRY]cdddbbbcdea_``_bbRTr}Œ©§– µ±¤¥±­£¤®±¨§²º´¡¨¹¶§¦¶¹«¨¸¾®©µ½´¬´¿¶©ª¼¾°¨²¸¯§±¿³¤¹¹ƒ]cfbdcadaa^^`_`]WMLKNV_a^b\Za_Y{•v^jlhgihhiklhddhifglnmlnknkjopWf¶ÜËÉÊÄÆÊÌ×ØÒÓÝÝÕâêéìè×Î΀€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€">—çðâçêççççççççèææåçèèçèèèçççææèçæççççæææççççèèçççæççççæçèèèçééêêêéêéééèèèèèèèèèèççççççèèèèèèèèèèèèççççæççèèèèçççççèçèçççççææçèæêä°vegkwxnbbededhf`]XQLU_hie_XSXX]]SKKJUgeXSTYZNFNXVJDMNLJKLNOOSSQMGCAA>?@AAA@@87669::9;;;<=85777559:8853358:>BMKLNPOPRNYnyvoqynpssrrtvouxytqtrjgkjjnnohjwuc`g`\aaahllmhdcec]\`^`ec]]a`\[]]]``Yz¼Ò¿¿¿¿ÁÅÃÀÀ»»Æ«q_ePOw”–¦§‘±¬¸®nMVWOOOPPPQSTUVQRSRQOMLMTZVA9@8( @jiaeecbbYLN\eea_`bgtƒŽ‹}trpne^^]YWUWXYZZYWWY\YXXXZYXXVVTRRPMJG@@HQUTQWZ`aVJP_ba^WVX[ZVSPMIDEGSVYZ\[]b\[XYUT\a[R;&!$&'&'(*-0346677536<GQUNOY`]\_b\RQZ`bdd`bdd`dea^a`_b`QTs~©¦’´°¥¥³°£¡«´«£­¹³ ¦¸·©§·¼­ª¸¾°¨±¼²¨°¾·¨¥»¾³©¶À³¡´Â¶¤·´~Xdfbdd`da]`a\\cbUKKLOX__[`\]b]W|•v_kmiijhijkihggggjkkkkjijmkjooWf³ÛÍÎÏÉÉÌÈÍÐÎÑ×ØÓÜëëèæÛÑÌ€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€"/uÐóèáçæçæçæçææèæäåæèèèççççççççççææçççææççççççèççæææçççæççèèèéêêêêêééééééééééééèèççççççèèçèçèèèèèççççççæççèèèçççççççèçèçççæææççåíãªq`m†…h\aadjfbddeec^[OT]fjf]WVS]cTJKJUddXNR\ZKDMUOFAGMHHNQPRVOPNIA=>A><<>AA@=;;:99975;:76889<><647:;?775588<BQKIMONNPOUjwurqxqqsuropsqtvxvuvqhhmlinnnqrxzh[ag^`bcgmolgeefb\Z\abca^_`^[Y\\\a_[|ÂÕÅÀ½¿Â¾Ä¿À½¾Èªr`dOQx“š¨§’ž²¬¶«mLTUPONSSRQQRRSRRPPPRSTU^dY@<D9#  !Alk`ddgbc]MKZdbbbcbbm~ˆ‹|qoqma][XXXYYYZYXXZ[[ZWXWXZZXXVVSRRQPRF::JSSSSSW\^\[\]^`^[Y\]^WVSOGCFLPY\Z[___^\WXVT\b^Q7# $$$&&(*-1357545325;DPSNOZ_]accYMMX`bed_`fd^bda_aa_bdRRp}«©“žµ²£¡°±£Ÿ°¸¤Ÿ®µ«ž¦³³««·µ¬¬º½¬¥¯¾¶«¯»¶ªª·¸©¡²Ä¶ž°Àµ£¶´Zad_ba^b_^_`^^caWJKLPX_^Z^\_bZW}”t_lmiijfekmkghmqihhijihhjmjjnoVe±ÜÏÏÒÍÍÍÇÅÉÑÓÓÓÓÙéêêéØÊÇ€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€"*X¬ìïáçææææææææèæåæèèçåææçççççççæææçççæçççççççæçæååæçèççæççééééêêêééèèèééééééééèèççæçççççççççççççççææææææççèèççææççççèèççææææççãìä©le}”‚aXcb_a^g_]dihdb^VRW[ZYZWQZbYKHJVae[MQ]XGDOQHACJMKKNQRRTMIC?>>>==<<>AA?<@?;76898<=<:;<;<@?;9:;:<;;7588;BNKJIJJJJFQmvstqrtsqnoqstttsuwyzscelljnpsxxx}r\[b__ccahlfggfebaabbccaa_]]_[][[_][ƒÅÑÁÀ¿ÁÁ»À¿¿Â¾Àͬp^eQOw•©¦Ÿ²ª±§lLQSQQMPPONOPRSSSUX\`dgdjl^@:D8!!Fqk]adg^bcRLXbbcbbbaix…Œrsupb[WUTWYYX[YWX[\ZWWYWWZXVWXWSRSQQVH9;KTSRSPVY[cljb_\\^_]]^]\[ULCDHHQWX\^_`^\UVURY`_N2 !$#!%&(*-1457422116<CNSNOY_]`a`WLOY_add``dd__ba`db`bhSPn}®«•Ÿ·´£œ­°¥£²µ¡Ÿ¯´«Ÿ§´²ªª¶²«­¹º«§³¿¹¯²¼·­­¹·©¡²Â¹¤¬½³¢¶´]ad`bb^b_b_`a`a^XLKKNV^^[^]__YYr^kkghidjeeijfiokggjkhhjjljinnVe±ÞÐÌÎÎÐÎÏÉÊÍÏÓØ×ÜèéìëÖÆÈ€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€#+Dáòäêææææææææçææçèèæãæææççççèçæææçççæèèççççææçæååæèèççææçéêêéêêêééèèèèèèèèèèèèèççææçççççççççççççæææææææççèçççææççççèèçæææææææãéç¨ep‘’k_[ce_Z\^chfbdhij`YZYRPSUPVdbPCCQ]hdSS[OCDONB@GQNRQLMRRLGD@;9:=????????@>>;88:;::=<:;<;:==979::<9978=<<@DHHDBBB?@Rswqwvvonmortrptuuurswtkhlidhoxyzx~xd^^^_bYMXlqihfdbb`^`ddcc]Y]\Y]\]a\Z‹ÆʺÁþ¿À¾Áû½Í®n\hRMt—Ÿ©¤ž²¨­¤lLPRRSMNOPTX]bemoprssrrpqqbA8A8%! !KukY_fdZbgWNXaa`[[``eoŠrsvo`]\[ZZYVTZXWXXWURXZWVYXUV]YSRSPOUM>>NUSRPQVY]grrjj_[aaYVY]\[ZTKFFLOU]`\\bc_XXVSZb^K.!&$"%&(*-1458300016=BMRNOZ_]]_`ZRU]`adeb`aba]`abec`biSPn‘®ª‘¶µ£œ®µ­¥«²§ž©¹³¢ªºµ¥¥·¹«¦³»²¬µ»¶®³½·ª¨´µ­§±¼³£¯Àµ£´±}Ydfbddadabdd_^c`TNLJLT]_\^]^]X\Žp\iieggbcghefkljgknmihjmiljinnVe³áÐÇÉÍÐÍËÍÎËÌ×ÚÐØêéçéÛÏ΀€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€&,3qÐðáæíåäèçãåëæçèççæçèæçèèççæåèçæççååçêèçèèææèèèçæææææèèééêéééêêêéèèèçèææèèççèèèçæææåæççèèèççææçççæçèéæççæåäåæéèçæççæååååãåççåæìæ¨eo|\^``][ZZ_efcelmhnmjcYQPRPX\`bXG?JTbeZRRU@BLM@@LRQRQOMKGA==;89=?>9<=>@?=>DB;427978;=<<=?@>><99;<=@98=>:<DBMIA>BD9@`qpuwuvusqqporwuvuvuuwrfbkkeiszyytxp]\`acWJShoiojcda^bfdedb`_\X[[\]b]^ŽÇÌÁÂÅÀ¿ÃÇÅÃý½É¨q^bQPv– ª¡ˆš°©µªkENUPMOJPJCHMPUTTVXYYZ[aYSJBGF8%! !Ryn\agddec`]]^^b`^bbbh{‚|oqzq`ZXXZYUTUYXWY\ZWYYYYYYYXXX\VQTROTSFENSRQMRLQ[akuwqrj_\aa]]ab^XRJCEQWX]`__`^ZZVOXdY=($$%$',/1479752/159;FPSMNY_^a_]WQRY\cedcec`bgd_ae`\_bUTl~˜±¡‹¡¹°Ÿž°µ¬¥¯µ¥«¸«œ¦¹´§¬µ¼©¦µ¿³¨±º¶®¯µ°©ª·¸©£µ¼®¤²¿±£½·|Zce`bcafd[_c``eaRNNIIT]`ae^Z[XY}l^kigiifhiiiiijjkiffkkjmjkijnlVj¹ßÏÈËÎÌÍ××ÑËÎØÚÖ×åìéä×ÌÌ€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€"12]¾ôìâëåçèããçæåæççååææèéèææçèççççççèèééèçèèçæèççççççççèèééêêééééééèèèèèæçèèççèèèæåççåæååæçççççæçççææçèææçæååæçéèææææäãåçèæäæçèàñë©n}‹iY]ab_\YX\_dhklkimjknk_SNPSV^e]K@?I[d]TNG>CNK<=LSSSOIFFB>;>>==???==:;AA>=:=<769:959>><:;>B?<::;=@=978:<=@BC>AB@=5Dgyomvxssqqrqpqtrtttrqtqbdllntuusxzz{wi\^^`aPFYmrkehidbfgeeda_]Y[^\YYa]^ŽËÒÆÂÄÂÄÇž»¿¼¿Ë¨q]bQQv–Ÿ¬¤Ÿ³©µªkFNUPNOLR?! #! !#$&' '<HCGNI' $ #P{qejhjfceffef`a_]_adiv~|qqxp^]ZXVUVY\VVUWZYXZ[ZYXXXYZWXWTSSQNSPMPRMJQQOPTYdpwsuqg`__^cded^UMIIPUY]`_^^[VZXT[dW:%##%''(+2873331/.28=FPSMNY_^ba_WMNYbecaa`aa`aa_`b^\baPRq}‹ª©‘ ´­£¤²±¦¢®³¤ ®·®ž¤º·¤¥¸¶¨ª¸»¬£°¼·¬¬¶´§¡¯¶®©·»­¤²¿°£½·|Zce`cbaec`bb`_ebWKLJLW_^]^[[]WX~’t_ikhdfhiiiiijjkhiiijjiijkijnlVj¸ÜÐÐÔÓÏÓÔÑÎÍÏÑÑÏÎäéçéÚÉË€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€"3.C–ÜéåîææçâãçåæççæååååçèèççççæçéèææææäèççèèæçèåææççççèçèèéêêêêèèèèèèèèèçççççççéèååèçåäçççççæååççççæåæçèèèçæååæææææçççæçæäãåææäÞîé¯wx|`]^^\ZZ\^]\clokiklmlijkdZQMO[c[NJ@DUa[UPE;EOH8;KRPNHA?@@>=>????>;@>:;AC?>:>@=<<:8558==977;88::89<:50025565:;><9BGPcsqjnsqqqstsqqrtsqrttun^bhipurrux{vsyr\]]\e`JNfojhifdfhgefeb`^[\a_[[b][‹ÈÏÁ¾¿¾ÁÄ»»¿»½Ê¨q^bQPv–š¨¢‹°¥®©kGOVPNPQXJ-"%!"!0BBLSG)" !Nxphoghdbdda^]c`_]\_fhpyzrqum\WYZYWVVUWXWXYYY\YXWVVVVWXWYVPRTNQOMPTMGINQPNR[hurvwpf``bc__bb\UREEKU[^_]a]XZXRY`Q3" ""%)('*2750/01/-/7>FPTMNX_]]ZXSMPZ`fbcc^_b_\___`]]dbORr|‡¨¬” ±¬¥¨³¯¢¡®²£ ­´®¢¦¹º¦§¼²¤¨¸¿±§²¾¹±³¼´¨§¶·¨£µ¼°¦²¿°¢½·|Yce`bb`eb\\`aab]RJLKNX_][[Y\^XX’p`mmjhgdjjjhgghikmmkhhjijkijnkVj±ÒÇÊÐÍËÓÎÇÄÈÊÈÇÉÐãææëÝÊÊ€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€/+3fœ·ÅæêèååäåêèèççææååæååææåäåæççååæåãææçèçççèåæçççççèçèèéêêêêèèèèèèèèçççççææçèèææççäãæççèèèçççççæåååæåæççççèèæææçèéééçççæåååæÝìè³uekc_^[WVX^ccadlmihlhmmffmok]UOTadYLB?Qb^UNB:FMC5;IMFE@<<@A@<:8<@CA=@?<=AB??>??=<;72238<933720278547=<6015525<<<;E]mcao{urvtpqstsqqqutqstvvnbckprsrxzvxwsyvc]d_ajYGUikljgfggjiihc`^\Z^^[Z`XVŽÆȽ¿Ä¿½¾À¾¿À¹»Ê¨q]bQQv–™¦Ÿˆ™­¢­§kHQVPNQlh\QLJFC9<;5/--,++8>=OT<% ! Rsjnehkkgcaa`b^``[_feirwsopi[TY[ZWVTRYZYXXWX[YYZZYXWVYX\ZQQURRKKOKE?9EOPMOT^lkottngfjle`ac`YTH?DS[_a``]Y[UQZbJ,! !"&''*-0013////.08@GQTNMX^][YYWSU[^cdffa_``]``_a_^beTSm{®¦’¡´®¤¦³±¤¢¯´¤Ÿ«±©¢§´²¥¦µ¬ž¡³»¯¥±º²«¶¿±¤­º¸¦¡µ¾¯£±¿¯¢¼¶{Yce`ba_daa_`a`a^WKMJLV^]\_Z\`Z[~palhejmjefffefhjggjjgikijkijmlVj¶ÖÇÇÍÎÐØ×ÏËÏÒÑÑÕÚÝßäéÝÍÊ€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€+00Ebw„¾åñçéèäëèççæææååèåäååãäççæææççæääåççççèèæçèçææççèèééêêééççççèèèèççççæææææçææçæååæççèèèçççççæåäåæääåçèèèèææççççèèçççææåææÜíì¶q[cbZ[[ZYZ]`ggikkiggcba`^^dkjkbTT``UG<H^_SG<;EH>6>GF>>=:<@A?<:9=BCA=??=>CC?=?>=;;;975359844651155226695,*02-99<N^gu{e`n|wvxropqqppppqtutrptqcbmroprtwvzzy{zq[ab\igOMhlklokeggfhhdbb`\_^\[_XXŽÄźÀÅÀ¼ÀÀ¾ÀÁ¹¼Ì¨q^bQPv– «¡ˆ™®¦±¦kIRXPOReXOOPMJHFIJJLLE;68A>4>C2((++,+(++(%')''-S}tjspglldafgd`]ab^_dbcksqjig\VY[XXXYXWYXVVVVYYZ[[ZYWVWX\]WRQSSPROC94/8ELMOOR]cekrtqqtvsmgda]XM?AOY\^^a\XXSQ\aB%!!"#%&&+0/+.63/-/239?GQTMNX^\[]`\SQW\cedcda_`bc`_cb_`dUSk{”¯¡‘¡·¯££³³¦¡®¶§Ÿª´­¢«·®£¨²¯¤§´·¨¢´½°¥²Ã´¤ª¹º¬¤³¹¬£±¾¯¡¼¶{Xce`aa^c`b_``_`^WKMJLV]][_Y^b[[o\komihidhljfeiojghjikmljkijnkVjÃç×ÐÖÚÜàßÚ×ØÚÛÚÙ×ÒÐÜçÛËÊ€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€.4-8Ugg…ÆìééêåæææååååääéæåææäåèåååæçèæäáåççæçèèæçèçååçèéééêééèèçççççççççèçææææåâååæççæççççççæååæææåääåæääåæççæåääåæææçèèæäåææååâçëÃzX]_YZYXXZ^beikjiifbba_\ZZZ[bjpgVORSK>BW_RC:<CC;9@C?=?>==@?<@?ACC@<;??<>DD>;???=;;<=>625;:6363243/.02/.-,+-03,6azvstdZgzvoqrqssrqrrrsuuvssurifmnjrvstwzwsvyxe]]]htcT]jmjmjefggigb__^Y[[[[^VWŒÅǼ½Â¾¾ÂÀ½Âƽ»È¨q]bQQv– « †—¬¤±¤kJTXPOSVNKPQOG>HFEKVXG2#!(-(*0/'#')%)/..,'&*-/4-8c…{ptrmpokkmia^^ab``aa`fomdce_XYYYXYXWVXXVWXXYYYYYXXXXXXXZZSORORRQMA2,.7CLOKJP[[`jrtuxtywnc^\[O@<JVZ\_b[VWSS\\:!"!$%%'&*/0-/56/,0238>HRTNMX]\\\]XPPV[dd^]bc^_cea^cd`_aQQn|Ž¨ ‘¡µ®£¤²²¤ž¬µ§ ­¹¨™£¶¬Ÿ¨µ·¨¨¶»®¦µ½·©¯¿µ¤§º»«¥µ»ªž°¾¯¡»µzXde`a`^b_]]__^`[QJLKMW][YZW^cWZ…—takjffhhjgefhifcmgefghiijkijmlVj¿æ×ÐÔÙ×ØÛÛÚÙÛÛÖÐËËÇÔæÚÈÍ€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€ .1*5WlheÅåêçåãæåääææåäçççæææææâãäãæèæâàäççæçèèæççæäåèëêêêêéèççèèçççæææçèèæåææåãååæèçååååæçççççååååääåçââãåççæäâãåååæçèççèèçåçêæàèÊ}TZ]YYXVVY_dbdfefggedlmgehbVWVcqkYJBB?CRZN>8;A@;;@?;@A@>?A?<??ACC?>???=>BB><=>??><<<=:77775321110.,+/*)-.++/,"-Zvqosl_fyzpqwrtusrstsvustuvwpmhjghqutwttrnouxzh\]grn]Rdmieefhffhgb``_Z]]\\a[ZÊÏÀ½¿¿Â¿½ÃǼ¸Å¨q^bQPv–© †—«¢­£jKUYPOSYRQQMIE=JHGMZ\G-*$$*,)*-(""$#'.*&)%"&,,,.Af~{uslnkhgfb_\^``_`__b_bki]]dc\YWVXWWVVYXWYZYXYYYZZZZYZYXYZUQRNOMPVN>4./;KOJILSSV^fkoqqvysi_[YSE=GV\_e_XVXTT[X4"!&($%(+-/1335/-00/4=HRUNMW][_\ZVQTZ]ca_^aaa`^ca]acaa_OSr~‹¥  µ­££²±£Ÿ«²¤Ÿ®¸¨¥µ¯¡©º¶£¢²»¯£¬¶´§©·® ¦¸·ª¨½À©–°½® »µzXde`a`]a^cca]\a`VKMJKU\[ZYU]`TW…˜nanjgihbdfiigfghigfgjkihjkijnkVj¶ÙÊÆÊËËÏÐÑÑÒÔÕÐÊËÑÎÔãÛÎÕ€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€ '-+2M`^b`˜ÞìâäææåååççææçèçââæçææèçååèåÞßãççæçèèæææåäåéìëëëêéèçæèèççææååçèèæåææäææåæèçãâççèèèççæääååäåæçäääåååãáäåææååæççåäæçæçèàâíÅsT^WTVY[[\^```__aehjlpmfeihbZSVagg[J;ABDHB:=9?@<<>=9AA@>?BB?B?>?@>=?>@?=?>=@==@CDB?=<;97652/11/--.//*-,(*0.&$)Vvvqmnffntwuporsrqrrpstrtssupqmnosvu{xmmtrqvx}u][bgpiW]glhehmiikic__^[_\XXa^^Êͽ¹»¹¼ÄÁ½ÀÀ¶¸Ë¨q^bQQv–ž«¤¯¤­¢jLUYQPTWMNRJDEFBEGMWZH2 $%'+($&''$&*+($&&&(,+'(3BRVSVWPRG@>;8?K_b_\__^d_`hgZZde]XVY[[YYWYXVXYVTTVXZZYXVXZ\][WRQUPONLLJB2,8KOLMNNNOSZ`egjmsxuldaVI>DSXZb`]\\SOTP1"!')$"*.+-3633..0-*1=IRUNMW][\\\VMMV\__de``cbX``]^aac_RVs€¨žŽ ¶®¡¡±²¤¢¬¯Ÿž¬´«¨¬²¬ £±¶§§µºª§º° §¼²¢©·¹«¦·¼«ž°½® ºµzWde`a`\`^^aa\[a^QONHHRZ\]]UZ]RV‚’o\hjhfhiefhijihfhifdijgfjkijnlVj¹ÖÄÂÇÇÊÔÔÓÓÕÚÜÚØ×ÜÜÛßÝÙÝ€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€+303BQWRNoµæçÝáåæççæãàÞäææããææãåäåäéëãââêåãèéêåããåèèçèëéðïèêïëäéçèêçãåìëéçæåäåæçàççääâçâæèçååæçâäæççæäâìëêèæäãâåæçèèçæåãåçéêèæåäáæ³gS[XYXWX[afjjjgcekoomlklic]ZSOLLJKLJ=A@>?@AB??@CC@>>=@BA><>AA><<?AA@A?A@<=AA=ABBBDB?A;533234/01220-,-*)--(!"&*Grspnggpxxtssrpqrstupqtuqosvvnmquy{wlrxzwuwz|ypc_fli_U^khehgghjlh`\[X]XY]id_ŒÆϾ½Á½¾ÃÁ¿Á¾½Å¥obdPPs—Ÿ­Ÿ‰š¬¨±¥mMTVNOVWLKPLHD=BNRORUJ:322358;=4310....+++,,---18?B>;:;;82.0).Lab^ab^_`cchdWZeh^^]\ZXWVYXXZYVUVVWWVWYYXTTWYYZYRTUUPJNOH905BHHJLILNOPTZ_cehilmjd]PFHS[\Z^_Z^UPWJ"!###$&*-..///-0.,--3=KUTNPTVZ^\[YRPU[`^cgc__`a_`cc_]_hQSr~§¥“ž¯­¥ ¬³¡°µ§ž°º©Ÿ¥²®¤¦«°ª§´º¥›­·¯¥ª·µ©¥³¸¥¤¸¾§Ÿ°¿¬šµ´ySdd_ab`a]a]\]_a^UKKIKT[]\ZX[\RY†‘nbhhkfdkkeeiifeclkeafkkjkihkojUl½ÚÇÇÒÒÏÕÐÖÚÝáåãßÞâãáãçäÜ€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€*1-0>MRPM[”Õèâéççççæåääèéèçæççæçåèäåéäâæíæâåçèãåãåéêèêîîéæçèæåèæååçåäåéèèççææææãçêãåíæâèæåææææèççææææççæåååååååæçèééèçæçèèèçæäãâêè©`V`]XWXZ^ekojkjghkjhgihc\TLGEDDCACC@C@=@DCBE?@?>==<<@?>>>?>><>AB@?@C=?>=@?=?@@@AEGC<;87886332221/-+).0,&!$&(Ajzronhgpxxtsuplnoorwwuttsrstqnrwvsplosw{|{xwzxe_fmpgY\ikhijggijf_[[\W]rqh^bˆÃͽ¾ÂÄÀ¿ÂÀ¿Â½¼Æ¥m`bOPr”Ÿ­Ÿ‰š¬¨±¢jKTVNMQYOLMJJHBIPRPQRLCGGGE@:4054333445667778887<ACA?>>>IH===;I^caa_Z[]`]a`WYa`\]]ZWVXZWVVXWUTTQPRUVUVYWSSXYYVSRMMPOPQOH<2:INJIHLOOLKMPW\_`befdf\KFRYYYb`X[WTT=##$!!&),...022-/.,-.4?MTRKMRVZ[\[WOOV[dbba_ab^]]^aba`abPSp}¦Ÿ‘¢³¬¢ ®´¤¡²¸­¤°¶ª §³ªž¥²±¥©¸³¡¡°·© ª¶¬ ¢¸¹©¨¸¼¦˜¯¿­›µ²yTdd_bb`a]Z^a``e_RGIJNW\ZX^Z[^SY†“h[fikifejihghihgkihimkhhkihkojTlÂßÌÍÖÕÐÕÐÓÕ×ÚÜÜÚÞàáßàâÞØ€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€)0+,:HMNPNyÉìâßëêèçæåææèççèèçèéêéìæäçäæáëçæéèêçäãäçéèéëïëèèèéèçììëéêëêæåçèèèéèçÝçéßäéàâëæåæäßâèäâàÞÞàâäßßàáãäåæãäåææåäãéçåãâááááêÞ›aY[WXWXY]bgjddccecYN[]XLDDED?CGECEC>BCB@A@@A>@A??@@>B@>=???>@>?BC@?@<;76:;;=DB@CGID>8556531010/--,--4<3$%&:auqmoihowxursnntuppssrrtusrrnmswsonmvtsvz|{xy‚k]dork\V_hhgihghgd][\]Vf„{dV[‰Ãξ½¿Á¾ÀÁ¿À»ºÆ¦l]`ORq’ž¬Ÿˆš¬¨±¢iJTYPLNXQNMKJID?9447740***)&!#"! ####$$$$'(*,,,+*,330333CU`a`^X[_a[^_\]_[Y[\[XVVVWVVWWUUUKOQPQTTSWWVUUSUYTNNRQNOOMKEBEB??;:;AIOOMMRVUVZ]_bcTIQWWZ]]VWXYR3!##&))+,,-023-.-,-.6CSXUMNU[^Z\\UNPX[d`bc_[_d^_`__`_]]PUo|Ž¦›“§·«Ÿ ­¯¥¡¬±© ©¯­£«·­Ÿ§¸¶ª«¸¸¤ ®¹¬¤°º®£§²³ª­¸¼§–­¿¯œ³¯wVdd`ab`a]_`ba``]TMMJJS[]^_Y\`UX‚h\ikijhadhhfigefgllgfhjkkigkojTk³ÏÀÁÈÅÀÂÄÃÄÆÈÈÉËÓÒÑÏÏÐÏÌ€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€+1,,9FKTVKe²èêáâáàßÝÜÛÛÝÛÚÜÜÙØÛÔÖ×ÑÒÐÎÚæçÝÜÜ×ÙÚÚÛØÕÚæîîìçääâáßÙÕ×ÔÐÐÔÏÈËÍÎËÊÊÇľÄÆÂļ·ÎéÔÃÀ¿¹·»¼»¹¸¸¹»¼¹¹»¼¾¿ÀÁÀÁÂÄÃÃÁÁÉÇÄÁÀÁÂû¿°`[VXYXWVWY[]^[XY\WF5?ILE@BB?BDFC@CEC>CC@?@@AED@>=@BCAAA?>>?@CAAC@<=B@;986:=<@@?@AA@?:7554100-,,-048:?J: #$6[ttnokhmuxurrnotuqprnpruvtrswonnjhmqxtprvzzxyyt]aomlcWVajifihggc^\]VPhdV[‰Ãο½½¿½ÁÀ¾Áú¹Æ¨m\`QTs’ž¬žˆ™¬§°¦kJU[SOPVOLPMGBB=&""/N^a_^Z\^_[\a_^]Y][YXWVUTWVVWWUUVRPQTVVUTVYVSUVTVWWWUPLLLJJNOIFB<82.2<EGGJNPOOQSSP\[QOTXZU\YWUVK-!" %'&(*+,-022-.,--/9HSWTMMTZ\\\[UOSZ\^_`aabba^aa^]_^[^QUp|¦œ‘¦·¬¤¨³±¡¡­²­£¨®© ª¹±¢¥°µ¨¦´´£ž¬´­§¯¹²§¨²³¨©³º«¡¬¾°²¬vXdd_bb`a]`^]^^`^YKKHIRY[[YW\`UW~†h`lieghedddfhfeifijiighljhgjniTk­É¼¿Ä½½¼»¼ÀÀ¾ÀÄÈÆÄÅÅÈÊÌ€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€!.3..;HLMTPZ‹½È»¶·¸¸¸·µ´±®­®¬¨§©§¬ª§­§¡·ßͳ­¯§§ªª®«§·×ëíäÍÁ¿´¨¥¤£¥¤¡¤¨¤ž¢£¡¡¥¥¡¦¦¥¤¦›™¶Ù¶˜”ž¡›¥¦¨©©¨¦¥¥¥¦¦¦§§§®®°°±°¯®¶´²°°²´¶±¸§v]]Z\WVUTTTTU]YRNMI>22?HFCC@:BAA@=>AACA?ADA?AGDA?>=>??AB@=<>@B@@@@>>?><=<88:98876557:32120--.3457;AEHHP?$4Xuxoplilsxvqqonopppprsstvtsvqebfhkrwssttwwwwxs|zfckhlm`S[lofkiihd_]^]SiŒ}`T[„¿ÌÀ¿¾ÁÁÁÀ¾Á¹¸Æªo^bTVu”«ž‡™«§°¨lIRYRPRXLGMK>;CH&  Mab__\ZY[X\`_ZYX\ZXWWVUTTSSTUTTUSQRUXXWVXZUOQSUYY[[XSNMNPJJLNQRNGD>969?DHJKJLNLHEQ[TLRYVT\]WSN?%"# %(%(+-.0221--,-./<NSVTONUZY][YUQTZ\\_aabba_\^_]]aa_aPTo|¦ž¢´«¤¦¯®Ÿ¢°´¯¦­´ª¡¨´­£§°©žª¾·£¡©°«¦¬¶²§¥·¸©¦´»ª¢«½°ž²ªuYdd`ac`b]_``\]a\OKLLNW\\ZWX\]SX|€b_hccfghhefgfdedjhfhkkkljhfjniSj¤¾³¸½¼¹·¸¸¼ÁÁ¿ÀÄÊÉÈÆÄÁÀÀ€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€"/5/0=JOHTX\x¦šŸ¡¤§¨¨§¦Ÿžž  Ÿ ¡¤ª©§­¨¢¶Ò½¡¢«§¤£©±²²ÄáðíÓ»­¨¤­¹º³¶¹¼¿ÃÁ¾ÀÅÅÀÂÉËÇÎÍËÆÊËÆÓÝ˽ÀÈËÊËÓÔ×ØØ×ÔÓØ××ÖÖÕÕÔØÙÚÛÚÚØØÞÝÜÜÝÞßàØæÏ…VXXVSSSSSTTTURJ@;<<;8?C@?BDB@?BDA@@>BBAAA@=>BAACB?<=?@@?=<==><;>BC>99<;874364211001431000037BCDEHKNOLOC&#1Rt{oqnjkrxvpnqrppsrmqrprvuruqdclqpqrstuvuvwywux{tjgiingWVfmfjiijf`]^[W_ria\`…ÀÎÂÀ¾ÀÂÀÁ¾ÀÁ¹¸ÄªqadTVv–«‡˜«¦¯¦kHPUONR\J@FD78KJ(F_b^`^[YZZ]b`ZX[UVWXXWVVUSSTUTUWQSSQRVVSTWXZWTTX[ZYZXRNRJMMOTVSTQOKE@@CFEGGHLNLGJOVRIRYQSWYWSK6! ""%&((*,-/10.-,+-/0>SVWVQPW\Y[ZXUQSXZ_abca]]b___^^_```ORnzŒ¤“§º±¦¤¯±£¤²³©¡¬³¬¤ª³ª¡©µ±¥§¶´¤£²µ¬¤­·°¤¥´µ¥¥µ»¦š¬¼®ž³©tYdd_bb`a]\\]]_c\PKKIKSZZZYZ\[QX~c`hdgiffbcfgeijdchjjkkihjgfjmhSj¢º¯µ·¹¸¶³¶»¾¾¾¿ÂÁÅÉÊÇþ»€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€ -3/0=KPQXTa“¿ÇÁÄÅÇÈÊÊÊÉÈÊÌÌÎÑÒÒÍÐÕÒÑÓÐÖÛÖËÏÚØÖÓØÛÛÛâììäξ°¨®ÎèæÚÜâçéèèêîñíãâéëçéêìæèïéçåçëîìéçèèèééééèèííììëëêêèéêëëêéèëìíííìêêéöàŽRPTPPPPPPONMDC=648<<;>@ABCDC??@A@BB?;AB??@@ACBAAAABC@@AA@?=<8>A><<;89:8564243102200120...05;JKLNNONNMNJ1 *Ioznqokjqxwpptsopttonqpqurotmabntsrqsttsssvxwwwzyoijghi_TZfihhijf_\\]_[[X_\X‡ÂÐÄÁ¼¿Á¿Â¿¾Àº¹Â¨pbdRSt—ª‡˜ª¦¯£jJSVMMRYI=@A6;QI&<[b]_][[\[]baZX\VVUUVWYYUTTUVUVXURQSUTUWWTUXYWWVWZZYYTQTPPIDMWZ[VRMIGFECGJJJLOPNQSVQKRWQSRTVTF0"" "$$%&)**+-//,-++-/1@WVTRMKTZWX[\VPRXY`eb]_b`\ca`__]^_]PUn{Ž¦š£µ¬¢¤±µ§§·¸ª¢­°¦ «·¬Ÿ¥±²¨¢­´¢›®¶© ª¶®£¥±°££¯·¨›­»¬ž³ªtXdd`ab`a]a^^__^ZRJLLOW\ZX[Z\\RY‚g`kihigfehifeijhgggigcemigeimhRj¦¼°´µ·¹¶µº¾¾½¿ÃÆÊÑÔÏÊÆÀº€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€+2-/=KPQRGe¸êæÜåäããâââããææããææãââíçßèèàßêèææäæåèãßáçëêèÇ°¥¥¯ÏíñÞßäêèââèÛßÛÓÕàæãàãíêæëåáèèéêíîëæêèæååæèêççççççççèéêëëêéèêëìíëèåãêîݘ[SUSPPOMJGDB9744:@>8??@CCA?><=@@@DC=BBABEC@ACCB??ACBABDDCA?><AA;8:943135320+0/132/-.3223226:HJLNONLKOOR;$Ajxlrpkipxwppsrmnssnrwtrrnnvna_hljklnprtttrrwuxyvqmijflkXTdpffijf_ZY\^Y\^cZV…¿ÎľÁžÃÀ¾¿º¹Á¥obdPPs—œª‡˜ª¦¯¢lNXYONRTG=@B:>SG":]e][XWX[WX^^XUYWVTVYYXUTSRTTTUWSQOPTXYWSSUTQTWTNY\VVWVWSRNHIX_Y\[XRMJJLMPPMLOSTQXYSOSVUVRUXS@(   #'(&,,++-0/.,+*./1AZZVRLJU]ZV]aXPRYY^bb``_^ab^^``_`d[RYq}“¨˜Ÿ®¤¢°²ª¦¶·©¤³µ«¢«¸®Ÿ¦¶¯¥¥±°Ÿž°µ© ¨¶²§¦±°ª«®¶«ž­»«´ªsWdd_bb`a]]`a^]`]SHKLOW\YVZX[^TY}c[jjdeiidhhgfdcfjjhgihfgigeimhRi¯Âµ¸·¹¼¹¸½¿¼»¿ÅÇÖÜÚÑÉÆÁ»€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€&003BMLMMHÜéã×àßãæâáåèêæãäåääåæâäæäãâÝáèèåæåãäèæäêèæëæÅŸ›œ§ÕíæâÜÞÞÙÜáÞÅÂÈÏÑÚããÞèäèëæëéééêêêêëíéééèèçææììëêéçææìëëìììëêêêëëëëìíëôã›PGULIC;64321::::::::<<<<=====;<AA>=@BCDEB?@DADECAA@?B@@@A@<98<><9986.35300/.1/14630/53.1646DIJLOQQPOQRT? &>buropnkmsustsqkhouspuustrrvo\U^efdbfnqqronqox|ulhgekimo`QZqmfifca\bZ[\YX^^W…¾Ë¿Ä¼µ¾ÂÁ¿Äƺ´¿¢racPQx•¡­˜‚°¦®£jJTYQQUWFCF;3@PB$ 7Yb\]ZY\\ZY[]]ZWWSRVZYVSRPSY[WTTSMOSRUYVVWWUTTTTVTRVZTPVWVQKLSXZ[]\XUSPLTQRUVUVZZWWSKLSUOPQTQ;$ "#!#&)*,--,+++)/.-/9UZXUMIU_ZY[\XRTZ]\]ab^]__`__]`^Y_\OQhx¦—¦µ¥“¯³Ÿ§´µ§¢«²¬¢¨±°¨ª¸±¤¢²µ¤£¶º­¥¯¸±§©°±©¨µ¹ª›«Â®š·®rYfd^adcb\\`_\`c\QKLKLUZYXVW\ZOZ‚‚^aqg`ehedhjhedeeiggfehkhflhfkhSl®Â°¶¿»´¶¹¼¾ÂÁ¼¾ÊÌÑÏÊÌȾ¶€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€ '--1=ILMFd»îçæååââãâäåààèèáàçéæççéèæèçÞßææãåæåççæãèèéí俤–£ÖñëíèééäæêçÞÚÞáßäêèèíåæîëçåäêëééìëæêëëëëìììææçèèéêêáâãâááãåßßßÞààÛÔÓÔ‡I=E>;8448<>?::::::::;<<<<===;=>??@?=DDCA?@BDBDCBABA??@@?<;;<7679732342//./12-0343211.224757CKLNQRSRQPQWG" %6[sqnqoklsusvrpolostmqsssrsun`X\_bb`dlpmnqtuwwk[YgolkiilgWUfmfhic^]`[[\YX]^V~½Êº¾½¶ºÃÀ¼¾Á¹¸Å¢racPQx•£®™ƒœ¯¤ª£jJTYRQUPEBB61@RG& 7S_]\[Z[XXY\^\WRUTTWWURPQSVWVSTVXVSRRVVQUVXYWTRRWUSX\WRQUVSLHLU\[_a^[ZXUQPSX[ZZ]ZVXXPLORPQSVN6  "#&&'***+,,,,)+,-63.ASVQKOVY[XYYUNOUW]aa``^[^_^^]`^Y`^PTo~’¦–ˆ¥·¬›¢­­¢¨²°¤¥®²ª¢©³°§¨´± ¡±°Ÿ °µ¨ ¬·«¡·¯£¥¶º­¡¬¶¦œ¹±vUfd^adbb\^^``_a]SOMHIRZ^`ZY\[OZƒ„hbjbbikgehjheeghhghfcfjjglhfkhSl¨Çº¶³²·À´¹½ÁÄÁ¾ÁÄÅÆÇÅÀº¸€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€#(*,3@IM>BŠáîÞåëâäçäßâåáßãäàßãåäæèêçæêéÞÝäæãæçæçæçãæèìîß¼«¦Ÿ¬ÕîìíéêêçèêèåáàÞÙØÙÖÐÖÒÉÌÉÆ×èм»ÃÃÁÁÀ¿¿¾½¼¼¼¸¸¸¶¶µµ´¸¶µ³±¯¬ª°°®«­±¯©¦¬§~J573;855:=?@::::::::::;;<<=====??===FFD@@ACBBA@>@A@>?AC@<888977996441/.01/02021.-156.455768@MNPRTTTTPPYQ,$-Pprmrqjksvqtqssrqrqpquvtrsslb\]^adaegjkotuprrgXZhoijieim`SXjffib[]][[\YW\]U€¿Ï¾Â½ÀÀ¿½¿Âº·Â¢racPQx•©—‚ž±¨¯¤jKTZRQUPE@:11BRI'!$$7J\^\[\Z[YXY[[XUWVVVUTVYVVUTUVWVYWSUYYUSVWXVUUUUTSUWWXYXQSSNGGPZ[_ca`_]ZVVY]^\[[^XWXRKMRPPRTH/ !##%%&%+))),-.-*++-82%+IYUKRXX[XYYTOOUWacb`b`^`^\^]`_[a^PVtƒ’¤”¦µª¤¯¯¦©±­ŸŸ¯ºª¢ª³®¦§³¸£¤³°¢¤°¶¨ž©·©›£¹±¥¥²´¨ ¬·ª¡¸«rUed^acab\_Z^a_a^SLKILUWWXWU[\QX~b_jdbdffcdddefecgeedeghegkgflgRl±É·¶¾Ã¾¶¶»½ÁÇÇÂÀÊÌÈÃÀ¹¶»€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€!((*:IKG.X´ëáÛæéßâæåàáææèåãäååãããäæåâçåÜÜäæåççääèéäåçííÙ¾°«ª­»ÆÇÀ¾½»¹··¶±¯®¬©¨§¦›¢§¡¡žÁÙ±“•š–›™š›žŸ¢£¤¡¡¢£¤¥¦¦²±±µ¹¹µ±ºººº»½¿Á½ÇÀI19=A=989;:9::9:9:9:9::;;<<=?<=??<;=<>>@ACBADDB@@CBA?@??<9535653464/,/241..0/0//14546645756=LNPRRSTUQOXV4$%Howltsjisvqtutpmpstsrtwrrtslb^bdfgegehmmopnlmh`^dggiieflhZQ`gddaZ\Z[[[XV[\T~¹Ê¿À¾ºÁý½¿¸¶À¢racPQx•™¦•ƒŸ´ª²¤kKUZSQURF7.*1@LG'"""*4AYaYZ\[^[YY[\ZXVWWYWVW[XWUUWYYX\WRRVVUVXUTUTSV[RRWXVXZUQPQPKGKQX\^``a]YZ[]`a`___ZXWRKLPNMPO@) % %'%%(*('),.-,.+,01-$ 7V\KMWXXXYYUPSXZa^^_]_a_^[]^__\a]NSs ’¦´«¡§¯®«¥«°§¡ª´«¢ª²¬¦ªµ³  ±²¥¤¯´ªžª¹­ž¨²±¨¦²¶©ª¾¬¸©mXdd_ab`a]]XX\^b\NKJINVZY[ZVY]QYƒ`_kggifcbcddfhhghihfcehkhkgglgQm«Ã¶¸»½º´½¿¾ÀÆÇÆÉÐ×ÓÎÍļÀ€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€*((<KB67„ÙïââçèäàáäãäåãåäãâääâàâßâãâãâÜàææâãããäêëææçëéÔ¿²ª¥›¡ž¡¢£¤¦¦¦§§©ª¬¯°±²±±·¸½¶²Í×ǽÁÆÄÄÇÅÆÇÈÊËÌÌÎÎÏÏÐÑÒÒÓÕ×ØÙÛàäåãäççãâåÞéâŸO;JG=:88;<;:889898888899;;<<<??<<==:==?AB@>>BCC@?@AA=;989864121/020-/230.-///./245448547846>JLOONORUSNUV9#$Cn{mstkjptrsutolmrurnqsqptto`]eifebahnmihlmdgf_\`efgggefkdSTfa]`[ZYYZ[WV[[T{¶É½¾¼»ÀÀÁ¾¾À¹µ½¢racPQx•ª™…¡³¨®¤kLUZSRVTG4''.;FF&  " /07VbYX\\[ZZ[^]YVWVVUTSTVUVWXXWY\WUROPUWTSVWSSVWVQQTVUZZSSPPOLHILUWY\cfc]bbba````[\ZXTNJJJLPN;$#$&$%(('')-.,*/,,00*$!BWPJSYUXXXTPRWX`]__^_a^^Z^^__]a^MRo~ “¥³«¤©®­ª¥¬³¨Ÿ§³¨¡­³ª¥­¹³¤¡°³¢š¤¯ª¢«»®Ÿ¦µ±¦§¶¸§—ª»£’µ¯rWcd_aa_a]__]\cg^QKJILUYZ[ZUY\RY€‚`akcdihefiieacgkhggffegiijfhmfQn°Åº¼·µ¼ÀÁÂÂÅÈÅÇÑÔÎÍÍȾ»½€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€+**:@3*V¯èíêãßåçâäæâàáâäâäéçãäéâßáåããâÞåéäÝÞáãèéêæèèèçÕ·­¤¢¢·ÒÐÌÐÑÓØØ×ÚØÛÛÝááßâßÝÞßßÛÙåçÔÆÅÀµ°µ´³±°­¬ªª¤¤¢¡Ÿžœœ“›¡ Ÿ§»ÌæçççåããäÜæå©[VgR;978:;97776767776779:;<<<>=<;=<;@??AA@@B?AA><===<<;:8743310220/1231.-00.0/144348425:948BHKMMKLPUTNSW@"#>fzossnkmrtqrrsqlmsuqprqpruqa[ce`\[Zhonnkc]_fd\^ikdfehe`hiZOaa\^\YXXXYWU[\T}¾ÒÁ¿ÄÃù¾¾¿Ã»¶»¢racPQx•«™‡£¶ª°¥lLVZSRVXO>315>KE%#" 3-/PbZZZ][YWX[[YVWTRSRRTVSSUWXXXYWUTTSTTRQXXRQVUPMQUTSWZYVTQNJHILRTV[cjifhhfb_`_]\]YSQNJJILSM6! !"$%%&''*,,*),.*04*!+FRPU]ZZYXTORVV`cbbca^_`Z^_]_]`_ORn}£–¦¯§¡§®±¦©²° ›ª·¬£°°°¯¯±¥¡®³¤Ÿ­°¬¥­¸¬Ÿ¥°¨ž¤´³¦žª·£’«¨sSbd`aa]`][`^[_bZPHJJMTYVTVTX\RY}|]aj`agfeggeb`bdeihfimlgdiieinePo²¾°¸¹¸¹¶¼ÀÄÉÈÁÂÍ×À¾Å¸±¹¼€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€*-1;5.7ƒÒæáéßÛáääèçàÞáãâÞáçæßàçáàãäãåäÝâçãÝßâäèåæåêéææÚÁ«š–—·çêæêèæéåàâåêèçêçâääèèçææáί’~|xjgpdefghijjgggffeedchlidiwƒµÒèèãæéèçæë´fi~Z<:878741555555555678::<<=<<<<;;<@@?=<;=?@BB?>>=;<<=;830.1//10-.11111100/.0477544436975;CHKNMJKPVTPU[I$$8[sqqrqmjovtrpqsnmrvtrstqptpb[]\YYYZfjkm_NLcgbY^knefcdeace`SYca\[XXVWXVU[\U}¿ÔÁ¾ÄĽÀ¼º½¹·¿¢racPQx•œª›‰¦¹­³¥lLV[SSV[SHCDBDNA#!5-)I^^]X[^ZVVXZZXSSTVVUUVSSSTWYXVYTPQUUUXUTTUSPPRNTWXXVUVYXTNJIKKMRVX]cggdffcbcb^`]TONKJOIMRG0"%()&'()*))))--42" "/CMX^Z[ZYTQRWW^aa__]\_aZ_`]^]^^PTn}‘¦—¤¯¦¢¥¬¯¦¦­®¤£¬²¥«²©¦¬²®¤¤¯¬ž °²ª¦¯µ¨ ©²ª¡¤°­¡«¹©˜¬¤pTac`a`]`]]_`^^`[QILKIS\]Z\Y[ZQZ|_aichkfdedbcehgdghgfheehjieineOo°Â¹À¼½¾·¾ÆÎÒÐÈÆÍÑÄÆɾ¹ÁÄ€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€'/9?23N§ëå×äàáäããäãáäæáãããâãäâÞÞáãâàæåÛÛãäâäåäåáâãìêåçàÒ¬‘Š§ÞéàæååëéäèáçååêèãæãæâãäãÆŠ^XSROLLOSTVY[^_adca_\ZXW[[[[[[ZYhªäìâäçââàðÄom|N976787414444444455689:;<:==::=>;<??<:<?AAA@?>><899752/-,.11.-.//00231.0423335774:65546<AIMOMJKQWTQW`Q+#4Rlrpqrnhmxstqqtrnnrqoquqotmb[XUW[\_hhh`C8Mcc`\^de`eaadd_^cXTeh[ZYXTVWUU[]V¼ÑÿÀÁþ½º¼¸µ»¢racPQx•¢¯ž‹¦·ª¯¥lLV[TSWXPFHOJDI; !!!6-&D\aaWZ][YZ\\ZWUUVVTSSVRVWTTWYWVWOKSURSPUURPSROVTOR]^XUZYUOMMKHJQUTTX_bcghecc`[_ZRQRJGNKMN@) !"!##&*''(''())(+19)"' ,AUZSXWWSPSWX`__^Z\abb[_`]]\][OTm}“§•Š£®§¢¥ª®§£©®¦£¬µ§¨¯¥¤«±¨¡ª¶¬œŸ¬¬¤¤²µ¦Ÿ¨¸±¥¥³µ¥™¬»¤˜º®qZ`c`a`\_^c^`b_`\PKNJEMY\XZY\[PY{vZ_ledcchfhgfeefehhfffddijhdindOo²Æ»»¶½Âº¸ÂÉËÉÄÁÄÐÖÑÆÀ¾¿Å€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€'49;,8}ÚëäÚãáÙãäåáàåçåâßããÞÞâãàâååãåéåÜÚåçâãäááÜâãåèàÞéÓ«ƒ“ÍìäâãåæçéëææææææææàçåëòΆULLMNPQRRUSRUWY\_VW][T^ieeig_Z[ZWX¾äãâéçàáëÎ’{nI6789863154212343765557898;=:88999>?99=@=9<=;::97522441/1..120,-10/11./3368743664356558?FLKJJKMPRWROYY3!'OsrjnsnjoruttspoooottstomtobYXWZ^_^cdYH>CMZidV\eed\_a_\\`eWL\naUXXSX[TOUYQ¿Ò¿Á»ÂººÂ¼³¶ sf_KQt–¡¬˜‡¨¶¤¯©nOVVTXXQKHKJECG?#+8) 9Z]X\^\ZYY[]\[ZVUUVTRSQSUTSUWYWVSQRQPQTVTOPUTNQPPRW\^]RRTSNKIFFMMLSVUV\`^\aa[YVPOSQIFJJLG4"! !##%%'*)()**(*-))24&"  =X^XYXURRVZa`^_a][`]`^\]\\a[JQn–¥– ®ª¢¦¯²¬¥§­¨ ¦²¨ ¥­ª©¯²ª¡¤²± Ÿ®««¬®³¯¤¥´¬œ£²³¡š­·¤”®©sTbaaabb`^\^b_\c`OJNHFS[XXXVYZT[yrW\heghhdchfdjjeegeggfgigklggkfTn©½±¯µ·±µ­³¹¸½Áº¼Óâκ»¸¹Ã€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€0920)P«äâßàãâßßáäáÞàâáááààââáßÝáäåâáåâÚ×âåäååäçàááäæâÝÝݲ–’ƒˆ¶ÜéâæíéäååææææææææäããèÚŸ^BLMMOPQRRPUYZ[]__^\aio{‡Œ‰„~ytoljZi¡ÜæÙÜèèäëÚ§‚hG67887531/////02354444567876788889;;;:;<=9;;8678722220/.032/,.11.440.12138765545688878=EKLKKLLMPTWUQXX8 &Jnslnrmjosssrqrvskqrqrtsruq_VZ^`dga_TEBJMHXfbVZcbaga]]\[[\TFN^\XXTUUUSRZ^Zs³ÎÀ½¾¹¿»½º¾Åº¯´«s][PYu‘›¨šˆ¢²¤ª¤lPX\[\WYQKIFBFOA$+6(-Q_[Z\_][[[\ZYUUVXVSSUVVUUWXYXVURPPPPRTSSUVVSQNQTVVXZ[WUWWRMNNILQTRRTVSTVXZ^]XRLLPNHFJKME2! ! $('&))*+)')-+.53#":V\UVVTQRVZ\_^]``_a]`^\]\\a\JOk~•¨šŠž¯©œŸ¬±«£§°¨§¹°¦¬·­£ªµ­¢¥´²¡ ®­©¯µ³ª¦¯³°£¦¯®ž™¤²¤˜­¢nWeb_^`aaa^`a][`]NKPNLTYXWXVYZR]xa^efjhecacffcdghgeffdfhglkdcfcTo¦¶¥£®­±°´¶¯±¹¼ÅÊνµ³¬³Æ€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€55//9}ÔëÛßèààåÞáäâÞÞàãèáãäãßÝßâÛßããâäâÙÜäåãåãáâãßàâååÞÑÔµ—‹‡˜ËêâåëçãããååååååååæÝãëÆwGILMNOPQRSOTVSXbgdieerƒˆ‹’˜ƒ}uppf_‰ÒïÞÛíèáä὇X=677764202231002422333445;746889:6:<99;<9898645660010123210-,055266326668955764477678<AFJPLKKKLRYWXUWY> $Cftmnqmjouysonqtqlnprrpoqupd]__ade^LAFLIHKS``X\a^[[XWWYYVRIDIQQORUUTSRU\^Yn°ÖÌÂÃÁÀ¿¿º¼Àµ±¿ŸrkjTPmž¥™Œ¤®¢¬¤nPVYXYVXOIIIFIOC$+4+(Kb_Z]^][[\][ZWUUTSRUYVSPQTUTQTTPMNOPSVXXURRTUQSVVUTWZ[WX\XRQRKGLSOOSSRQUVSVWONIILKFFIKLC.  #" &*)&*+-,)'*.-380 # !7SZVVVSPPTX[`_[_a`_]`^\]\\a_NSn“¡’Šœ«¦œ¡«­¡¤­¯¤Ÿ§±¡›©¸¯¡¥®«ž¡°®Ÿ©¬¤§±¶ª¡ª´¬ ©·´¢ž¬·ªŸ± mZaaabcc`]\_^Y[a]SJLLLQWWUXQVYNW{u[akcbacdfbdfdegehfhhghihjjdafbRmž¯Ÿ˜Ÿ«§¤¡¡¡ ¬¸·ºÅµ¯¨¢²Ç€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€*5213Z¯åæÜåêÝÝåáÚàããâàÞáãäáßàããßÝÝßßÞãäÝØâäáââàâãßáäãèáÏËÁ¢‰Œƒ±ÝååáâåææååååååååèÛåë´aDVMNNPQRSSVXRLRbe^_bcrŠ‰Œ–‰„~wtunazÀïëàèéääéÔ•U:77654200.//0/12401233333755665555:;88<;7677654331/-0463110244101//25358796677568458=AEFFLJKRTRQSY[WY[F"$=_uompmjnutpoppqqpqpprprttnhc``c_SHEFJLIGIMY]Z]^YUXYXWZ\THAHLLHFKSPTUSRURJY«ÁÉÇÂÀ¼¿¼ÀÁ´±Â¥secMOr›¥¥‘Š§«œ±£oQVWQTWaRFGJJKNB$,2*$(A[^Y]ZYY[^`_]XUSUVUUVXSPRVVTRUTPMMOQVVVUTSUWXVUTUTUX\WRUZYUPMPGEKPTSOTTVTQQPJNJIJIEEHLL>*"! $('&()*)'&(+-69,! #6S[XXWSPORV^ca]^`^]]`^\]\\a\LRo€”¡‘ž«¦£¬«ž¥¯«¥¦Ÿ›§´­¨­³¬ž¡±¯Ÿž©­¨¡©¹¯¦³©ž¬¶®›ž°¸©¢ºªoVdb``aaa`^b_[]aZRMJHKQZ]XZTYZLYuXbkcdffefeehgfefccceegijgiefidQi•¥šš ¦›”––™ž¯º²®¹¹®£›¥ÁÑ€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€#84+?†×ìáãæãÞàãàâãâàáààâàßÞßâåâÝáÜÝÝÝââØÑáçàßáâåàßäæãçæ×ÂÁ®‡ÃåîàâçæêääääääääëàéÞ™Q@PNNOPQSST[\VMR`faells‰’ŽŽ’–•‰~xwvq_i§åêÚÛâããéÛ›T7875310//-,,-//000112333266433565878:;988666543332.-142/-12685/.0-.476686898679988:=AEGHHMJKQWVSQZ[XZ`M)$7YsomonikstusnjotttrqpoprqmfbaddWD>IMGEJLIIRVVXYVSZWUWZXMBCIKHJJJMMNRTPF@@HP^y¤É;¾ÂÀ¿À´³Ä¤sfcPSu™§ªŽ¥­š±¦pRY\TU[]PGIMLJK>#/0"#"0LYWYWWY[_`_]ZVUVWUUUYVTVXWWWXWTPQRUZ_VQUYVUVUSSSSSW\YTTY\[VMRNGGRVNGNSSQRRNNQMKJHEEFKJ9$ !!!%&&&((''()*),66(! 8U]WXWTQQTX_b`]__]^]`^\]\\a`MQk|’¢”‰ °¨š ¬®¥£¨¦™™¥«ž˜£¬¤œ£¬ª› °­žž©­©¤©¶ª›§³©©¶°žœ­±”²«uYdb``aaa`^ba^ab[RMIHKRZ]YWV\WL^†vX^hdifdfdbcefdefhgecddfggiggleRj–ž”—››’‘”˜™£«¤¤¡©¨¡›¥¼Â€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€6,)g¿ëçàæáÛáåßÜÛÛÚÝàßÜÞÞÛÜàáÞÞáÝØÛßßãàÔÕäçàßãâáÞàãåãææá¿´«˜Š“¥ÔîéæäãêääääääääéåìЃLGNNOPQRSTTXYUR\sƒ‰„‡w}†ŠŒš›Ž}uqov^\™ßèÔØÛßÞâÔ•O48741/...10./00/.001122235532488687789987764321252/0430/1145323203668<;779;;88;<:===>@CEHOMKMQVVTZ[X\bU1$1Rpnlonhhptuvtpprpruvurrrsmede^SJCFFFHJKJJIMPRSUVWUUY^VG?ACIKIJKKKLGJVR=5@<JOQd‰«¼ÁÈÅÁÁ¹·Ã­ycVAJl¨³™ƒ¤´¤±¨tQW]XW][URSPGBD7"!20!"$?UYXXXY\^^\ZZYXXVUVYWTSVVTTWUURNNORXYUSVXWWYUUWYWVY`VPMPTXTLKNIEJJB>IQPNQQMORPLIGEEFIG4  #" "')&'*))(*-,+.51$!;W^TUUSRSW\\_^]``_a]`^\]\\aaNRl}Ÿ‰ž­¤™ ªª¡¡¨¥™ž«­œ•¢°¡™¬¤–ž®¨š¨®£¤±µ¦š¤¶° ¦¶¸£˜¬±›­§s[aaabcc`]]_``ad]TJJJMRVWWTQWZP[{nU`ibfe`ahddfdegfdeefggfgjkfeieSlŽ”Šˆ‡‡ˆ‹Œ—Ÿ—•”œž šš¨®€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€(.O¥æêáàâÝÛááÜÜÞÝÛÜßÞÞáâÜÚÞàßßâßØÚÝÝáâØÕâäÞáäâàßàßàäââæз§žŒˆ„ŽªÑêêããçääääääääâæîÆsKSTOOPQRTTUURUeœª­˜“Œ€uz‰‘’™–ˆ{spxc[ÜëØÛââáãÎO99730.---.../////00//0122.03676417764688564320/14211221366640021/5756:978;;;:;<===>><;<@DFLQQSVUQX][Zc]9"+Jmmlopgdmvsrrpprroqootvtsnda^PCBFGFEGKMKGKMRWXY[\[^a[L><BEJOKEDHJJFKYYB6=F@>KWXf‚¨¸½»¼±¤£‡ZPQKR\`}xlz„~‡ˆdMQWVWZ\TLG<0-10#41'% 2IUWUVX[^^[YVWZ]\XVWYUTVVRSVVWTPPPSXRVYWUUTSPMNQQNQWWOMPSVUQIIFA>=>@JOQPOONMPNKGEEFGFD/ " !! %&%%()('(**(25,! #=W\TUURPQUY[a`[^b`_]`^\]\\aYIPm€”¢’‰©¡˜¡©¥˜Ÿ¬¨™Ÿ­ª” ¬Œš°¢– ±©š ­²£¥±¶ªŸ¤­« ¤±³£ž«±¢·§mTeb_^`aaaa`a`_`\QKMKNVXWZXSW\V[vjYek`fid_defc``cddghikieehiedicQj…†Š‰Š‡…‰ˆŠ›¤™•ž˜–•–§´€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€%>‡ÒíßäßÞßáÞÙÚàááàááÛÖØÝáåäàÞàãâÛÝàÜàáØÐàæàÞÞàäáàÚÜäàÝæÞ¤£›‹’„ƒ®áêäæåääääääääÜäî¾eCQROOPQSTUUVR]‚¬À¹ª¢˜–wuˆ•Ž”—Ž~trqf[†ÕîÜÚãÞÝßÀG7973/-,,-/010.---0/.../12236752368534655642231//2430..13452012124768969===;:==<=@>ABA=<?BAMURPTURV^\Ycb>!&Ejllopgbjutrompplrupknppum^SLGEGFIFEGHHJMKOX`b`__b`TC<AEEKLOJ@?CDGKQ\^L:6:FD@GLQ_dw}z{raZE2BOIOWZVIQWSOR`SHGPVVVWWOIHB834+$61)&!%8IQQRUZ^_^\XVW[][YXZUSVUQQSRSQMLLNSTQPQSSSSSLHKMMOSVOOUVUUUOGD@9;ELKMSSNPRNMKHEDFGHEC-! #$%"#&''(**('))(65* ! $>WZWWVRNMPT\ecZ\b`[]`^\]\\a^LPj|‘¢“†ž­£–©¨›ªª˜—§­™” «˜¦ž“Ÿ°¥—Ÿ­°§£¥«§¡©´«¦²¯ž°°›·§oZbaaabb`^a]^_\`^SKKEHUZX\XZYSPa~mUcmbb_`gdhdbghdeegeefdbccfdfjcNf™‘’–˜–‘”—–£Ÿ«®£›š›§±€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€)f¾ðìáæåÞÚÛÚ×ÙßáÞÜáåÞ×ÙÛâãàÞÞÞáßÚÛÝÜÛÚØÒâæÞÜÞÞßÜÚÛáâÞÜÞçÖº¡™›—Š~ƒ­Ýíæäçâßááàãçàãï¹`CNRPT[WYXPXUPÀÖÈ»À«¤™–wq„—Ž˜ŸŽ~xpxu`€ÓðÝÜßÞßäÉz;563/./110210...../////023666566663432321241/010/0.*-102773001145358:<?=:9>==>?@@?==>@BDEFDJOU[VSXS[eceeF#%:dqjfrlajtsswuppqrqtsmouukWFBDIHAHEDGIJMQMNYaacd_TLC><<@DKMRSH97?GHFTcS;9C=:BJFGRRU[VMME1/=A?@BEKKFFKKFEIB?AJTXYZRLHGC<9;-%&5-#$##5CMPPRVWY`[TUYYZ[WWVTSRRRROMNNKJNQSQQSTSSUVPLMLKOUTRQSVVSNFED>59EMNORURNOTSGHEEHAEK; !#" "$&''&'&%$),*+12) ## ! -DX^RUWPPRPT^b_Z]_^__``][\^_aOTn|Ž‡ž«¢™œ£§ ¤¬¥—™§¬ž“¤²Ž›¦¡–¢³©—¬®¥¤­¯¤Ÿ§­­£¦¶°žœ¬±–¶§lV`ba_`ca\ba`^ae^ONLHJT[[ZZZZRH`|kXdhbficeiebadggfigeffeefjiikn^Th–Ÿ–“˜“”›žŸ›ž¦£ž¡¡¥¨¦ž˜œ¤€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€ .Z–¾ÊÓàæäÞÛÝàÝ×ÝÞÚØÚÜÜÞÜÜÚÚÝÞÝàÞÛÚÛÜÝÜÚÕÝÞÜÝÞßâßãäáÜÛÝàáæШ“š™Œ…„ˆªÏàåãâåçåáâæâãë°T<OYOT\Y[ZQXg~»æáÒËÅÄ·©¥œt}•’˜•‡{oro[zÊéÖÕÜÛÛáÄw:463//021100/.-+))/0/-.24313456654440022//2/-022/-.,.1235731233576688;@@=<>==?BCCC=>?ACEEFHJKNUVVYX[a_`dM%!$7`oieoj_fpyvrspoqnlpusqtwgL=CEBELEDFIJKKMONS^ecVGA?@DEDCDKNOROB64<@COa\C47ADB@=@IMGHLLJ<&)7<;>ACIICAFKIC?<:=FORUVTSPKF@:7@80-+(')'&'%! !&+/1467/42&&1+!"" !&):GPQRTX\VPNPPPPOSOKKNQRQUNJKJKNNONPSUTSTWRPQOKKOTRSXYUOMH>:921?LQRSTQNMNLGF@@C>EK: !"! !"$%&&&&&'%'*).1.#"$ !0JZZVVSLNTQU\]]_`\]fa^YY\``^aNTqƒ•ŸŒ‹Ÿª¡™ž¥§ §£˜œ©¬¡š¢©™Œ˜ª¡‘˜©¡‘–¥­  ±³ š¦µ«›ž¯«›®®™™»ªjScbbccbaa^]^`abZMNMJLRUUUWY\XK`zjYdlfdfccehhdbeebbhkhccegeeehl^Ti—ž•‘”•œœ §¥ £ ©¨ žŸœ›€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€#&/;Ka~”µÒèãÚÚÞÜÝÙ×ÖØÜßÜØÛÜÝÛÖÕÛÞÛÝßÝÚÚØØÜÝÝÞßßâÚàáÚÖÚßáÛâÛÁ¨›—”‚ˆ†ƒ‰œ»ØèâßâåäãäÞãïµ[F[eNT^\_\RXg¦âñèáÜÑƹ«ª¥Žvo—›œ’}oqo]yÇæ×ÕØÔÖÛ½q9373102321321//.///00-/45234566544652132/.0--031.,.//14335324547998::;>?=>@@@ACEED=?ACEFFFGIJLTXWW[Y^^]eU,"3[mkeni^cruttqlnottqopopsfMCIIABHDFGGHJJJJLMPTNC<<<?CECCDEINNPPH:/7BMZ]O<<?<8;<;=MY_SD=2%276:>@E?ABBDD?987;BHKOS_gmidb_ZYQKJJGGJ69>5'(-(6@FEFJJFIRSIA>7-,(!'4-$!$:NPMRXXSPLMPPOQSPNNPRQPROPOLMQTPOQRRQPQRNLMMKMPPNQVUMIID97<85<EOQRPOOPOMLG?AC@IL8!  #"##$%&&'''$&)*0<</ !0N]VVUSKNSRVX^__`^[]^`ba^]_c^KPj|œŠ‡š§¢›Ÿ¢Ÿ ¡¦¢™¨©š—¡§™›¬ž™­§—›ª¨›¯±›”£µ§™¡²®¡©®žžº¢fVdbbdc__c^\^aa_YOIKKMTWWXTUZXM_}q\ahcbiifib^aghfdeedbdffdbbcgl_VkŽ–”‘•ššœž¦®®­±²¨«²¬£ œ€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€!-017@GhŒ´ÍÜæâ×ÖÚÔÕÝØÒÚÜÝÛÛÛÙÙÝÛÚÞßÙÛÞÚÓÙßàÞÞßÞÚÛÚÙÚÞßÞÚØÜÝɪ—•Ž††ˆƒŽ¦ÄÑãíèàßäÜáì²ZGX]MU^^`_SY{ÎíâèæÔɾ¹±±²¤ƒg˜Ÿœ¢–|pnm^yÂäÙ×áÛÛݹo9474223421220/./01/011133222244677453221/0../11.--02135303423669;99=><;:;?EDCCDDCB?ADGHHGGGKLLQWYXZW]b`gZ/ .Uloink`aupospjmposqnpqptiREJHB@CFGFCDHKJFMKEA;;B@>>???AFGDJNLSYS?57FWd[C7<<:66F_zq]G<</'3649<=@<??:;?<5447<@AEJL[hkijjjjc^__^^`YVXVRUM68JWUU[XNFGHGC?==<BC:0,)&'%%$%-/'(# .HQKNUULNMPUQLNKMNOOOPQWTSROOQQNOPONNPSROLLJHHKLLMPNHFHF><>>?DFLRTROQRQLJB>CCCOL4!##"##%&(&%&&(**/GSL0!)K]VPUVOMPPW[ZSPUXVVXUUY[[[\]OUmzŸ‘ˆœª¤›Ÿ¤¢›ž¦£šžª­—’¢ª—Ÿ§šŽ›°§”›­«›©°¢™ ­¢›¥²¯ ™¦°¢Ÿ¶ŸfYcbbb`^^a^]_^]]ZRILKKRYYXTRWYN`~t[dle`dfhcdccfifaeddggeegddein`Wm—‘’•“˜œœž¢¦¦§«­«­°ª£žœ€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€!(*)*.1;Ha„¬ËÜààÙÖØÜÜÙ×ÚÞÝÙØ××ÙÝàÞØØÝàÞÎÑÚàÝÜÞÝáßßááÝÛÜÜÛÞâÝÅ¥Ž—’‡‚„€†Ž¡¾ÔÛÚÞæäæë¬TBPQNT^\`^U[šèóàìçº¶º¶‘cp•£ ¤–{rgh\s¸ÜÕÒÔÌÏÒ°i;87544653122210.--/02430/021111122010/0/./--.00//0243352/152368;;89==;;:;@EDCCEEDCCDGHJJJJKNOLKS[_ZX^daf]5)Lhqjnka_msnknmnpnqpqsmmulM<AD@BHEGFCCHJIJOLEA<<C<<>@@@CHPHFKLLWdXD;?OdcJ7:96=Os–•i?7?9(-7859;:;==946<91101578;@CLYafhhglfaa`]\]dabdirmXO]bYXekg`\TJB=>A8CLMJHD>@50/.,+(%#  "?PHGPPMONORMHJKLLKJKNPWVVRKJOQRRPMLLLMNMNNMIGFIKNNKIIKE?@EGHGDKT[YURPMJIB?@>GXK/ ##""#%()$%)*,+).G\eN-"'@[YOTWNMOPX^SHJPLJOQLJKLIIKRITm|¡‘‰š§‘˜¤¥—¦£—›©­•£ª”Œ›£Ÿ™¬¡•©¦œ§«Ÿ™ ®¥œ¢¯­Ÿ•ª±Ÿ˜´¢iUcdb_]_`_[]_\Z]ZQGJGENXYTWSXZQ`zmWdlffgbdfgfbadffbcfhfbchfffim^TiŽ’ŽŽ’”—”“•””—šš¢ž› ˜–¦€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€"(+*'&'/08G[z§ÌáßßÛÕØØÑÏØÛÙ××ØÛÝÜÓÒÙÖÓÜÕÍÓßÞÚÜÝØÙÞâÝÖ×ÝÛÙØÜáÙ¾£˜˜€}}~ƒ}|ƒ”§µÀÇÇÔä¬WERNOT[Y\]U^¢åòêíè×»¬¶¹µ¹¿ og¥§¨—|shj^r°ÕÐÌÉÀÄɤc;:765677415433222210154/-/-.01221000-.00.-,+,/2333332331/153589;;99:9:>??ABABDGIIHHIIJKMMNLORPLPZ^[\]a_daA %Aaojjja[dopnnnomnqpnomnvjO>@DFGHCEFFGIIINPMF?:<A==?A@@DJMQHBJOS`eXMBC[bN;;6Aeˆ–˜„_:5<2 19859;884<A;203730/2569=ADKWckjee`\^^\Z\Z][W\ehfclgVQ^ijhlfVLJF?FEEGLOKFKMA,%.1)%#!8QHCLMLMMNOKIJNMMMMMMMQW[VLJOTPOLLNOMJLMMNLIFDGJMMLLLLE?CLMID@DNW[XTNKIID@87JXI*  ##"##&()%'+*)(*5EWmiD$%8WZSURJJPRZXQIJNJFJEFKPMGGMSIQk|•¥“‹œ© ‘˜¦§—§£•—¤©˜—¢©šŽ—¥ Œ•«¤•§¨ž¬¯Ÿ™¤­¥šŸ°®ž“©³ —±¡hVdd`[\`_[Y]`][_[PHJEDNYYUWSUXO`{nXbdaimcac_]`debaffefggffgfegj[Pe‡Š……„‚‡ˆŒˆ‰‹‡‡‹Ž‹…‡‹‰Œ™¤€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€#'&&)-/*).5:C]x¬ÍÜÛÞÕÏÙÛÙÕÔØÙ×ÖÚÕÑÖÛÓÒßÚÊÍÛÛ×ÙØÎÒÖÖÔÒÕÙÕÓÔÙßÜÒȯž‰ƒ~xz~zxy{‰“‹ªÐ¤SBQQPSXTXZV`¤äñííáÓ¶«°´°²¹¦gŠ¥®®œslnbq¨ËÈÁÏÃÆÈŸ]86766798415432234530.131/.001110.-11.-00-,,,.244333113213356:;99<;:;:<ACBBCBCFIKLLMLKKLNPRMLQSOPVXY^\_^beL !"9]pjjkc[bhospmnjmqpmnnorgTGEGHHCCCDGIIJKNNMF;8=ACBBA?>DKHRMAGRWXc^WIDU^P@KTeƒ“‰xw\9.73#/6539;87/9DD8-.60+).368;<@DL[jleb]\_a`_a`_UVdbQI^kpg`cfcT]a[WYVOHGHJJIHJSga?.43%'$ <YMENOCCHLJGECDFIKMMMMSW[XQNOMPOMLLNLJHILNOPONLLLNNMNPPJIKIIGB@BGMPNKICEA?:GacG%!"$###$%'())*(&',:BOgoW6%4TYSTRIJORZaWF<;97895:HSTVYZNThw¡‡—§ “™¤ –œ¥£˜œ¨«•’ «™ª–„©£“¥®š”§±£™ ¨¢—ž¯«™“§±¢›²eWc]WUY[YUXY[ZZ\XNKKHHQUUUURTTK_}sZdibaebdcedacghdcdfggdccgfegjZOdyzutpmrqyvz}vrttwy}wv‘œ…€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€$)$"',-#%+1.+5D_~¬ÐÛÜÙÔÖÓÐÑÔÑÍÍÔÒÔÓÍÍÓØÓÅÈÔÕÕ×ÓÕ×ÔÐÏÓÔÒÏÖÛÚØØÙÙϼ¡‘Œ„ƒ€{wxxx{€ršÉŸL?V]QSVQTYVb§ëîèðâи«¨§¡ “wj‡¤³´¡…skl_j¿»³¸­³¹“V667668:9516555432250,-131-//..----/0.--+*+,.2552122.02025559>?98<>;=>?CCBCFFFHJLLLPNLLLORTQLMPMNTXV_[__bgR$"!6]rlknf]cjkormkknmmopnothPCGFACHFCCFHHKPOKKIA@C@BBCCA@EKPLONFLXXSZ`VEIX[cghmvwomeP85;0! +3218;87748CF;.''!%,1358BGHRdjefa_aa^]^[^TWjbLHO\b\TUWV```_\[]_VMHLPMFBWiiP8001&" ""!CaSJTTICDD??CCCFIIHHKONSXUNMPPLONKIKNPLPTWXWTRUPNPPORXTUTMJNL@D<8=CDDDDECHPoŽ„E#! #$$$$%%&&)(*)))-8=H\g^M6 4RWNTVMJMQ[VB-+0,)/2--6<BO]e^gx‘Ÿ‹˜¥Ÿ“›¥ ž¡¨¦œŸ©©Ÿ’Ÿª–Œ¬—†‘¨ž‰‘¨¬žš¦ªž›§¬¨œ¡°§–˜«®œœ¹¢cQ`UNPUUROURRRSTQJDCCJRSTYSSWUJ^{pW`id`dedadfgfeefecdhfaaehgfhl\Rgtvsuss{zyxˆ‚tƒ|r‰{€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€$'#&*)')('())-2:?^‰§ÀÓÖÏÔÑÉÉÑÑÊÏÎÎÏÒÖÚÝÕÔÒÑÓÕØÚØØ××××ÖÖàÛÚÞÝ×ÖÛÛÖÊ·¡„|~‚€y}……{©ŠMEZUZVWSZ]Vd§ìðçðÛÁ±¨¨˜Š„˜}g‚Ÿ³·¤…ogikw¡œŒ—“ŽW8:><:7667823653441130.10/2+*.0../++****++,/2676544011357889<;9::;>A>@DEACHHGILMLNQQQRRPNPTVRNPQNQ[Z^X^^^fY- ,Yrkhnh\`kpooonmlppmmprvkPDGBADBEDCDHJJJJLJECCCACA?>@DFFLJMVUFGZQT][E@U]lld^bbZTZQ?100+()45-.6947::<DG<+#&#%03BHGFUiihc^^aa]XYZ[^`YNHJOVZUKFFPOUVROOXc`VQTTPOeocS>++(%#!!!!GjYMOOJC;8:?A@GIIFFIJHLGPYSJJKHMOMNTXYQRTQMPSQQUUQSWWUWWSNLLJGFD@=<>CGKMO\e}—„F!%!!!%&$%))%#)&%&)49>;E]^QI3 >XZSQQNINTP;1**,+)*.,**.4;?G[mp|™ ‰‚—¦ž–¤¯¨ž¥«¨¡ž¤«¢˜¥­—ž«‘‡”¨Ÿ”§ª›§«¢ž£®§•›³¨“›¬¬œ¯›mXSTTUUTRRQNOPNNNJIAFNTTQUVSVXN`zjPafba]]d[X[__^^]_`aaaabceecbg[Qg‚’˜¡¦¡ŸœŸ¢¤¦¦¦¥£« ›¡Ž€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€%&"#'&$%)++.560-4:DZ€¬Ì×ØÔÎÑÙÙÓÐÐÐÑÓ×ÛÞàÞÛÙØÙÚÛàààáàáááßÛÚßÞÚÚÞßßÜÕÅ­’w~ˆ…z|y~rXMRVd`b][YS]¡çîäæм°¡œ”Žƒˆ”„e}¢ÀÀ¦…qrjjv|xxrppxtS9==<98677875542221042/00.-0/12-,,*-+)((+.16300220-/255458;9;::;<<@A@BFEBBEFGILMNPSSTSRQRRRROMOPLNW[]X_^]e[0 ,Snlhok\cmrppommnpnlnpppoZMGAAFFDEEFGIJLHKJD??AB?@A@?BFJKFFS]TGELLPWOENW_aZRRQMKKH:-***+-*,028:516:<AFE@8%%-8@HISfkgdaabb_\_`cieUD<ACFNW[RGICEDBABJ[[TPQPLMY^WNC7/&%# !!!IlfWOPJ@758>FLKKJHIKKJEGIMRNJMQSSQQTSPOPQONSYZY^^XUUSOVXWRMLKIEDCCBCEFJRRVWq{A%"""$%&&('&$*()()49>;@LLPS=$+JWQUSQMLPI6##%''%&(''&&'*-/7@JQb‚”Ž…š§ž“ž¦™¡§¤œ™ ¨Ÿš§ª”‹›§“Š—ª¡Ž’£¥–”£©ž—œ¬¥”›³«—«¬˜™¯šiUUTTSSSSSSNOPNNMHA>DJRWTWVSVWM`{j[hkc^VQT[ZXXZXY^ZWX\YUYcddegjZSp•£¡£°¸¸­¸¶³±³¸½ÀÅÓÝÈ›„š€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€&% !#"!('.LhpqrO48Jg‡±ÎáÛÔØÜØÙØ×Ö×ØÚÛÜÛÛÚÛÝßàÛÛÜÜÞÞßßßÛÙÙ×ÑÐÑÖÖÖÓÉ·¢”Œ†ƒ€}v„yfbgVQg~pkc[WSU“Ýôìä˸­¡“Š‡€‹•g~¥Á¼tieeimkkmkiiqpQ79<;97777742474211/2/+,//.,)*+,./,%'+.23339730..131477558;:;::>??AA@AABDHKKKLNOOQSTTRPRSRMRQOQSOOV\\X_`]d_7 *Hhngnn]]ionnonmimlkoqpqpdVKDCFHDFHGGGKNILLD==BEADFB=;BIGIPW\^R?DGPZREKRQPHCFF?<BB9/-+&%!(0-0::79:99;=?CA4#)5>CCLdmkjigfecbfbei`LBBCA>?IUZYPEA@@?=C^XI=;<AJI]n_A.',$" ! 'Qnm^QSQF;732?POKHHIHFFEHEFOROOQQQPRROJQRUVV[`_cd`VPQUVSXYTMJIHHFDBCEIKNWUSUpŒu:$ ##!##$'(&&'&++,**7=>:<B@JXO8#/OYRVSQNLH8$!%'%##%'(()()()(-3;<>Pm~‹”£¤–‘›£š£ª§ž›£«ž©«•Œ›¨œŒ“¤›‰‘¥¨•“§®¡˜ª¢’™²¬šœ¬®—–°šeRWVSRQRSTROPPMLKG>>DHQYWVVSVVM`{jVbfb`XQTPVY\_[X\Y]ZQPXaeddgkmYUw¢«§ª°°µ¶µ´´¸¼¿¾¼ÎáÚª€˜£€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€$#! !)/&H£Ú×ÑáÝ®a1.CWi—ÆÚ×ÓÓÔ×ÖÔÒÏÎÌÌÐÐÎÍËÊÉÉÃÃÁÀ¾½¼»À¾»º¶³±±³´±¬¥¡¡¢“‘™|y|oVT_QU~šmd[ZXQ}ÉïéÚǸª •z”qk–¾ÏÄ }tihdcejjghfdmnR75::98777775551/00*,,++-,++))**,,,*,/23432320,*+05666789::;<:;@A@ABCCCCEHJMNOPPPQSVVUUVVRNQRQSTPOT\[Y_`]bb@ %=dqejo`]hnmmmkjiopnnnnpngZOIDBEEFGHGIKNLOLD>@DH@CEC=<BKMKSVQX^S?BQ\MELIC@7367559>:0*$ ,9;=979:99:>KK9%$+28?<Ebtstspliijfbim[D>EC@?CGNZfYKFFGC>BHB5.26=IDXukJ5)/$" -Znf_XWOB7872;NRLILMKJJOMLLMPRPMNNQSUTRZZ]^^`ca]_^VNNRTQUWSNKHFFEEFGHHHOROU]xŒo2$ ###$"#((&%('++-).@G=9;EEDP\H.$!*JZVSQRQE4)&#$!!$$!$$$$$%%%))+/2=O^t‘¥šŒ™§¤•ž¤¢š˜ž§Ÿœ¨®›Ž›¬ˆŽ¤›ˆ§ª–•ª³¥› ©¢“™®«š™°²™—²œdRZWTQPQTVRPQQLJJHBAGJQXUUUTVULa}k[egdaVLMYZZXVVX]ZYVUUZ`eeefjl[Uu–›•—–Œ–™™šŸ¥¨¨¥ÄÒ¹ˆ˜œŒ€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€!!"""$*.<áÛÆÎÑÌ©oD76H\…±Çú¸¹¸¸¶µ²±°²±°®­ª¨§ŸŸ  ¡¢¢¢Ÿ ¡ ¡¢£¢ª««§£¡£¥“‘¦¿¹œ„xkbSOSSmš¥‰rh_\\SgªÕÒŽ·©™—›‹}‰‡iw²ÖÓÃyrokhggfhkhfckoV:4888887767542011--++,+))*,.0-+)+/001010003/,+.1228889::;:==<<AA@@CDEDEGJLKMNOPQSTVTTTTQPOMPPPRNLP[[Y]_]`dJ" 4`sdenc^ipooomkjpqnonnpmdXPKD@CGEEFIKLLONJC@BEFBABB?=BIRIHOUX[\QFL[ULLB5886742613-()(!!/=9549<97889?F>'+1/2<>D^ovxywspqstovvZ;7A?=@GOVajaQKMOMKRWPD@A=<CQ[yvX<))#!  2ak_bbVI:1:B:8EMIHKNMMOOMOSRPU]VVXXYZ]`b^^_]_aa\_b]ROQPRTURPNKFHGFGIJJHKIIXex„b*#!##$$"#')%%('*)))6NS?:9BJCDYK52-+FWOPTVN:& '()%" !$%"$&)/6>EUpŠŒŒœ§Ÿ“™Ÿ˜—œ¢š•Ÿª–ª”‚«§¢¥”“¦­¡™ž«¤™›«¨™–±³œš³œhT\YVSRSUVUPOPNMKEDAFKRVSTUTVTKa~kXbedcYPSMOW[WY^\]YVVWYahggfej]Tl…xtyzzuy‡‹‹‹“¥ ‘€ŠŸ‘h€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€!#%%$&).##Y¢· «œ ©š|Z<>EUq’ª©ž£¤¦¨¨¨§¦¢££¤¢¡ž›œŸ ¡¢£    žŸ™˜–’Œ‡ox– yjic]WTd‰¨Ÿype\]XX‰·Ãº¸´¨›‘˜–Šƒui‡¾Úη”toekmhdglptpjpt[<3678888666311252+0+*-+*,.+,+,//./,.0210-+210013559;=<:9;=<>=>AA?ACDDEGJNROQRRRSTTXWUVSQRUNQQPQOMPY[Z[]]_eS'/Yrfdjd[gnoppnmkonmoqpqocXPHBBEGECEILKKMMHC@BDCFB@B@>AGOUIDV]W[cNG[[F=>53..3204-33387/*,)$!#5779<;78;85<IG0$+7:66:IWRQSUUSRTW[XdhO89C?BDFM[fldUPRVX]kˆ…|ue[_mtŽŽa4#'#!9dj^gcQC;9CF60>MLKKKJJLKRSWZPPebba`][^b^[[]\\]\^^b^SPTTTUUSRSPKPLGFHKLMMKL`ly{V$!#!"!###$'''&''*(%(@[\C>76BD@LM;6-,HUINXS@."!+.-(#"##! !#%!((&')-5?BYyˆ‘’‘”–—–—šœ“•ž—‰œŽ‚¤ ‘Ÿ“’ž£œ™ž¦£›œ¤¢—”©ª™›­šlW][YVUUVVXOKNQSNC?=CIPVSUTTVSJblV`ddcYSYTQY\V[b\V]YMKYcdfgdch]Rh~tu{}†ŒŒ—¢£›¡©ž‹}‡™’rV€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€#'*'$'&&# @ˆ®Ÿœ§¦œ¡ª‘fAEEKf‹›˜•–˜šš™—–˜˜—•‘Œˆ…ƒ‚€~{ywvtwuomnmhkgb`_]ZWUMR\ZWY\`[[VVo‘Ÿœ“{qj]^\Skš¸¸²®§¡‹‹‘Ž}mv•¶ÔÕ¹tkdmogcgkirngms]=156789765:40/011,-*,/.-/.,,*+22-,0010/-,++.00/16;:=?>;:;>:=>?AA@BEDHLMKLORTUSSTUTUUUTSQQRQTRPQPORW[[X[^_dZ+ +Qnlfga\hononkioqnkmnmnof_UGCFEEDEEGIKKKLKEAACCB>>AB@DLRaR?GRT][ECZX=9C>ADIKC;<CMQKFB@C?6341*('2455129A7;BJE0%,9?914EPA.000/./0-,?OE8<A>DIINWaf]OMQSV`t‰•›’|pv~yŠ•l7''"  >eja`UJ==@IG40BTVWTQQSTV]]_^LGZebbb`\\_\XZ^^]\ZXW]\RPTRSVVSRSSQQMIIKLKIPMM_o~yH "# !""$&%&((&%*($*Hd]H?<47BBFNB1+KTNQUF-"!"# &1:<72/+*)'%"! '%()'*,2APbz…‡……‡ŒŽŽŒ‘‘‰†‰…‚‡‰‰ŽŽ”Ž“”’”š•—”“–”Ž™˜‘–¤”oY^]\ZYWVVWOLORSOF<=CGOXVUTUVRIb€lU_ccaWT][Y]^Y]a[Y\\XWZafeedei[RmŠ‰‚ŠŽ‰–¨¨ª«ª¨©¬¯‡{|‘™|`\€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€ %*-($&$$#-a‹„‹…ˆˆzqePCM]jyˆpqqqnjfcbccc`\XVUUVWXZ[[RVUONQPKJKLKJKOTJNXZTRUROOTSXv”› –vlk___UW€¨­§¦¨Ÿ‹ˆˆ‚rm‹ ¥Áί†rkkedklfejsogls]</4579986551130/00/,-.+,.-*02120.2//001111-,+.4:?A>=====<<7<>?AAADECFLNLNTNQRQQSTSQUWWVUROORPMNMMPU[[VY^^d^."*Jkpid^\hppqqnmkonjjlnqmjh\HEICCDFFFGJLINOIBADFC??BA>BKSXTJDBHSP;B_\KPVY``XLEQfsiVLQSLFJDD@775*&&$ !,563:JG/$/84055:IOFFECA?>=;2<G>6:;A@BJPV]cVLMQQR\q…šš‰pjwzp{k3'&" AgkbTEFA>=FJ:3APVZWUX]`Z^cf_NJVb__ceb``a[[__^^^[Y^^USWUPUVROPSTTNGDFIJJNHBTlw;$$ !!%&$%)(%$+)$+Nh[K>C;2=EHJF-+MRRTM7 %/316BLLIG>>=:5/)%%'$$%+-.4:D_y‚…~‚‰‹†—”‹‹Œ…|v~ƒ}yƒ…x†……„ƒ…Š…ŠŠˆ‰ˆ†‡‹Š‰’œqZ^^^][YWUSPQRPPPL=AGGNZXSTUVRIc€lXbec^SP[XY[[[_`[^XX^^Z]fcbeikXSt‘’ŠŽ––›¤ž›¡ª©œwžy[^a€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€"$%)*''"$$ &?ZgVVVWWXYYX[SEG[jmpdRSb`UTQRSTTSRQFHLOPOLKOOOOONMLKJJLLKLMNTVPLMONVLOSUlŽ£—~rtfTW]Tcƒ•™Ÿ¥–‡{~yivš¨»¹˜{qmlhhllhhlnqjks_?26554332253223111.-,,-.--//00.,,//.-,---,3213;CEB@@>=<<<<9?A??@ACFFHLNNQUTSQOQUWWSVXWVUTRRQPOONNNPYZW[^^^b>"Eklgmb_hrojlllqmjkkijlllbUMGDHDIIDFMOLOIKLD@DFE@AFD?DPX]\ZSBATS<<S]WV\]WTON`w~ƒpfiskRHORMFEB=;7/&  %0/:HB-%,,5;<95>O[NHJLMKF<5JL30:;;;BINU[[QEGNONWlwŽš“…xsvxksc5%/" Fc^ODBFDACGC:=JZ\]YUX]^X\cbVKNX_cb`a`\Z][Z[^_]ZZ\`]USVUTRTVTUWUPJDEGHKNKMRUe|g3"" %&"'&'&'&'&&')'5XfTHRSA.-8>FE2/LNKN;&"*/:KQOKDAENVVUTSQLFA5,%%&$"#))-16BZomd_gomimwyww|~|{}xv‰‰€|‡ŽŒ‹ŽŽŠ‚‹‡€ƒ„‡†ˆv^aed`\[ZWTSWUMORL@@AISTSVTVWNIdyfYacb_UQYXZYWX[`c\[`_XZbegfbblaUkŠ‰Ž‘–’”“š‹z}|‘ˆ]RbW€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€!#$)+'&#"! #1FTLLKLMOPQNW]WKELVcvoYW_ZORSSSQOMKGHKMNNMLRQONLLLMJKMPQPPPNRSOMOPNPJLOQb‚š¡œ‡uqgYU\RWj{‡ŽŽ„}xtpwŠ›ž¯¼®ulimjjmmjjmmpklsaB3444433331563/111/0110/..,,.0/-,-1/../00//5<@DEB=;<>?@?>=;??@AABFGHKOOOOQQSTTTUWWVUSRTWVSPQSTSPMKNY]XY\]`dD"=dlimc\erpkmlkljilmnnpnpk^QIFGFGHHHJLNLJLJA>CEFDDEDAGOXagibOENO?AS^^adeeinrz}ptu|ˆY:DGFEECCGB=950*''+*3?=0.7@?<@DA<?ULHJHGGE>BK@07<:98=DIS[^LBEJKLSdqx„‚rccgew„f7"&'!$$(ANJHGDBLIHHB=CPY[ZY[^\Y[^a_WPQU]ca]]]]^_^\ZYYXY[Z\[TQRQTRTUSTVTTNIIIIJLKOQTfv[+"" !%&#&'&'&'&'&(&&=_gXIU[M5-03<E17SPT@-*:FNTWZQLKC86=P\ikc]]aTH8-))% #&+.,/=MdYMIKMNQNQRRTUVW^^\]ahjikqwxxyz{w‚}„„€}„‰xcjkh`ZXUQJNVWPPNC=>@HQRPSTUVOIcygT^cc`TNU^XW[\[\^\[Z\]\`ifecdk]SkŠ†‚ƒ„~‚~{ysr}‰‘›sW]VU€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€!!#*,'$# "%->QJJKLPSWXW[_^VH=9@_tpeZTTXXXVTPMKKJHGIMRUPPOOQSVXJLOPQRRPMOOLORRMOONPRZw™›xmjd[]YY\fw~tmns}“Ÿ—ž³µœ€oihgeeggeegimikrcE42233444424530.143320.--..,*,--.0../////05>EGECA?>??@?><;===?BBCHHKNOPPQPQSTSSUVWRW[ZXVTRUTSQPOOONX\XX[^`gM!" 4\kileXaqrlmljljkmnmmloroaOGFEJFEIKIJMHJKE<<@AACGHFDEGKWafcRCCJFKXaddcbdhqywrszƒ‰œ‹ZABEFHGCDMJGEDA>=>FBAC@:>HFFEEHC?ATJGHHIKICMXD.3:;;;AFINSSJCEFHLTarŒ‘ŠtcbxqwvX4%'&%3;9<EIIJFBDNKHB;:DPW^\WZ[[_^_^[XVUT\cc_^^_bZ[\\\[ZZ[XY[XUUVTRSURTUSNJHIJIIKLQPTjnK"!"!"%&$'&'&'&'&#++,C]aWGS`X?.*'06.6VSC*7HKEJRRRMJFB:52.;N\dfgglg[K@:1'! #&+6AL_eRCHRSPQSRNKMPMMNNMMQTHJNQRSVZMRVUW\``_ajmjfd_^cbYOLLKEFMONSTI>@CKTVSTTSUQJbyiZbdb_VR[`YU[a`^_]YW[_ZZcgddgiYQm‰voqvvsnplht‡†uŠ˜{[\WYo€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€ "*-'"# !'.AVPPNOPSVXXWTU\`UD4=UszhXW]]]\YVSQGFDDEIMOQQQQQQQQLNMKLOPONNLLPUSNMRPQTSj“—›”}kmoh^ad``o~~towˆ•œ“¢¯¦ŠwlfiffegffefdgegnbG51113344552011015//./010/.++-//..-./.,.48@FIEBABBCA?=<<=>>><>BDFJJMONNRTTQRRQSUUSWWUTSUTSTSRQOOMMPVYWY^_]iV( !.VkiieV^orlmmkmllnnljhrxxiTKJHMFDJMKIKNQOF@BDABBCDEEIMDKPRTPKLOPT[_`_]eeiu{pm{ˆŒŽŠƒd8)1455634:A>=?@ADHGGILJGHLGMOMLKOYRFAEGHF@-9[bKDB<@AGMORUSNKLKNX`jpˆ–€na_c[[YF0&##<TTE;KSPMHEHQNJB9<HPU`\VYZYba^\[ZYVUX_a^^\Z[YXVWXYYXZVWZXTSVUSUVSTVTKHHIJHHJKRNWng= !""#%%%&'&'&'&'$*-5JbcWEO_^F4+!&.)7VG,4KSKGJMOTOGA?>93/,,4ANSU_ipmaUJC4*"#').33K^U>9?CB?CGEDHJHJJJIJLMRRRPPQSTPSTRNNPQLNPPLLPRKNPQUXWSRKKNLOL@;>AIRTQQTPURJazjV`cb`UOW[YWZ]WWb`ZZ^][]bb_cij[Wt—„|~„xv}yxyszšŒe]ZLd…€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€ !*,'""!!&+:NMKJIKOSVTUSQV]]YH?AUmwlYRSSSROMKCDFHHGFEFHLNPONMRSOHHNRPOONLQVUOIQOOSM]ƒ˜›–ƒokqrccecbo…‰’™š’‘š¨¦“}rg`dccdbccdc^`^`f`I600123344110.1440210000.-/,*,.-,-0/..07@GEHHEBB@>@?=<<>@BABA@FIKMLOQOPRUTOQSTUVTQSUWWYYXTTRPMLLMNOUYWX^`]h]1+QkhfeU[lqjlmkklnoqpnlv}{hSLMMIHIJKJKKOROJNWXTRNLLLKNTUYXWZZXX`^]]^]_ce`_gh_nŒƒeG813.1/,./--,+-00.-.-/3565567<<;@BDIC::@B=5+.+@JCCEB87;?AEJIJIIDDKMQgol`YTPPGDIJ<-$.FN@./FPJKOLGPLIB:?JOT\YV_^YZ`\[]\WVX]aa^`_ZYZYXXYZZZ\ZZ[XQPUWUWXUVXUPMMNLHGIJPO[p_5!!"#$$%&'&'&'&'&)%*6JbiZHO``M>3#!1&>L52OPLJLJLSZLBBB;7973-((,49;H\jlfdf[J6)"#)1->QPD<5915;6488:;<<?BB>CDCACGHGKNRQNLPURPNPUUQNYUT]mvl]RDBIMPMC;?AGQTQQSOUSIa{kV`cb`UOWYX\[NEJTZ[\ZYZ`efbfjhZVoŒ†{tx~|tkqkflp|“ŒbgcP_{€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€ !)+&#!!%,,4HRPMLLPTW[ROSSMOWQPPOP]kkbbcca_]\OLIFEFGIFHKORTUVSWTKKTWTQSRPQVUQLSRTXRYt•›˜Šxmnuriffjx†‹‡”–’“’–¤¨—tl`Z\]__]]__][[YY_^M911122223.//1231////.--.00,**++,/..05<CHJHHEBAB@<@???????>BB@DHJKNQSSRRQPQTVUUVVURUWVTTUUTQMJIKNQLT[YV[`_d`;(HhjecTXkqjklkegijlnliu€zeTLJKDJMLIILMLNJIT`b_d`^`_]^bhhgeeedcca_``]]ce\WZWWq–‡hRD=A@<?C@;=>;9768:93//30..,**+'--,/1./1/7A@:1)05;73536--1669<:67<:<BAAQW\bbUIJPQVP:(##$-=9..>BEKRNIKMFD@;BLMRZYW[\Y[^Z[_^WUX\_[WYZWVSVYYWVWX[\[[YSRVYWXYVWXVNLLLJGGJILO`mT-"!!$%$%'&'&'&'&'&%.33EVSJRcbNF>,#+%!184DQNNJABLRQG@@@>;;4542-)'&%(3FT^hrrhZJ8("$("*<Pjtg`UZ_RKPQGDCEEB>=>;:<>=;;:9;>><>B<?>?CDCGIJLQZ_XOJ>>GKOLC=ACGPUTSQNVSGa}lZbdb_VR[ZY^TBGL?>OTQVYY`eaefdZVhqi_Y]cdagaWZt‘{d[[TVw‘€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€!"')%$ *2,3LTQNKKNSV^ROX]Y[blpymJ>YvŒŒŒŠˆ…‚€ƒ|rf\VRQ`\UNJHIIJRTOQZ[TSWXSRTUSRVVY^ZZf†•˜„uovzrnor~‰‰ƒ‡‰‹—›˜ƒrkc\ZZ^aa^^aa^[ZVTZ^R>222211110..11/.0,-/.-,++---//-.105<AEGHHKID>>@A?CBA?>===CGHHKKMQPQSTSPPPSUVTSUWWXXWUVVSOMNPQQONLLS[YU[a_`aD!"=engaRVkrjjkhjlllmonku…j]QGHDHLKKLMMOPIFOVVUZXUUW[_bc`]\]`dh^aaad`\^b\]`\]kz[JC>;=?GCFEDEEDFFDDEEBABDBCGE=873;<:<>==627@A>:41?KA8747018>?@A=;:><?EDDINRTTLLVRU\V;% !"&7<=EIHLUUHFROC??>FQQQXZWUVZ][Y[__ZVUZ^\XYYXYY[[YVUWZUWUTVTQSYWXYVVXUKIIIHEGLIIObgH&# !%&$%('&'&'&'&#+5/"%6@@Nc_KJI6)*1'0CLLLKEAKSPOKD>=><8@;64651-+(&*4CQZfglpeK1"'(*$6s¤§ˆƒ‘™†€Ž—ƒz|‡ƒtsufbliXPV^RKLNHA=CE@;=:694;?>>BDE9;ELMPM@<@?BKRRRONWRFbkT^cc`TNUZ][H<KR>>SYTXVSVXW]^__\htqpuz{{|‰‰–«¯˜qR\hNOo‚Œ€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€ "#'(%%$ )1'/Mbbdiq|‡’‘“˜ž¢¢Ÿ„T?Skffeb_ZVTX^hqvvtrkaRC:78:>KRPT\[QTZ[VRSTTQSTY^\XZvŽ–’Žszuuwut|ƒ€zz‡“‘‘Ž†rhe][^]Z^^ZZ^^Z]ZURX_UB3322100/32.,,//.-,,-.0001//0/038;BIJGEHLHHE@>@A@CA><<>ACBEGJKIJPQPQSRPQUSTTTUWVTUWXVTSRPLNPRRQONNRXXV]b\\`I!#4bri`QUktljjehiihjmli~‹z]SKELHFFINQNKNOIELQRSQTSPPSRNRQTWURQQOSQORPLLKFHGCFHB=?@=HQHAJLLKIDCJFDEGHFFHHDEJG=67=A>=GNNMK>8;=><607LNB>7154685563:6635=?BEOPLMOOQXUXR9$ %.;826O]UKGLUK<799DOOQTWXX[ZVYY[^_]WQRZ]ZYWVWTUWXXYYZVXTSWVQPXVWXUUWTQOMLHEGLJFOca? $ !&'$$)&'&'&'&'&/3.'$(02F`\GJO>+;A'9NNJLFBFGJPTJBA?;;@85236886;91&#+6;NKThulTA% &',U‰œ‚—ž†~“£Ž‚‹£ ‹«¢Œ‹¡¡‰ŸŒ€…ŽŠ}tŠokqgN>GD=77;946?JKHPQE>BABLTUTNOXREckYacb_UQYW_YD9?JOL[a__cdf\Z]YYZUZ``gv…š¤§²¯œ_TejTO`‚‘~t€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€ %#""$)"/65AUp‡ «§š’”š¨´²¨›Œjb]UHAEJEBGK@558.4?LTUPKD>758=><>KVXVWWUPTVUW[YRRSTTSRQP]}’†y~ttvy{|†‰‡Œ‘‹Šˆslkb]d_QXX\Y_c\^RWWQSa[C63+,52*/-11--00-/.'050867424;@CHMLNNHHJIGFHF?>BABA;9?BACCDFILMNNPQQRSSSRSSTUVVWYVSSUURONNPQPPPOMLRXWVX[[bhO$!2Wmh`VReqliihflojhklj}{`EFGAAKNNJIKLKPNJGNX[XQVZZXVVXTUXXURPLRONLJKJFF=9999::<MPXpoS?LMONKFFJNHFIKJIKKKKIB:67;>AGMLJNPB87855873JbRDF;9;;:;?A@C=;<>EJJMZ[]XR\\UQXQ5%%!! )' 5[`PJLTUK>98>JNNMMSVSV[YWW[ZTTUPTZ]ZXXXUWXWVWXWUXWVWYXTQTTVWUTUTMIIKIEFKJFVdO-!" !$%$$'$$&(&##'&/.'&*+-9J_\NOH5<N@#%DTIIKGDGGHNNJHE?;;<6688414;;AKJ:+)+.6?Laqm^S0',#2aƒst}€to|‹ywŒ‡{ƒ—“€“˜‰ˆ˜„¢‘‘£¥‹ŒªWHSPKFCA@@DILKKJGD=AABLTTSORVKBckXbd`]TPWUYWF68ACGMTXZ\_c^hmrogfgd`^`a`adgia[^_^dSO[w…}v{€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€#'%$#%)%"4@HWflt}|rq’ª¶¢€lVFNPHDC???=EADF:+%# '.211473225;><9EPZ[YZYWSWYZ]a_YWWXXWVTSWiƒŒ‹‡zustz‚„†‹ˆ†‚ztkg`S[g^ccgbafelcee``kjY=3,-3872/.-,+,.16BIW[X_^SJEKPOPUMKMMHGIHHFCABA?>?==>>BEFEHKNOPQRQONQUVQMRTUVWWVUVSOLNRROORTRPOLJOTWVUW[]]fV,!.QljaOSfngjmkdgjkkmprl\KCA?@FEIKJJNPPOOKGHNPNPQPOQVWUXYZZXXXXWXVSRSRPQMLLFEO[bjkr~uYGPRMILKIMPJGJLKJJJHFFB>=@?ACHLJGKI=578657:6G\SJOI=>>?DJKHAAEIEEKP[hqkb_]]Thw_0%% "!5Y\NJOTSG?>;<FMQLKQVVVWUTVYYVUSOSY_^YVUUTWYXVTVYVVVVUTSRSRUWUVVUIGILKGGKHH\dF%&%##%%#"$%%&(&##&,0-)-1/.0J^YKLMA<N> ,LSKLNHDDDITKHFCA@>;>>?@;8;A@CO\]UB..,(-B]mohV8*)'Aqwnnsronlmlpvslnx€vt~€yw~‚}v|†x{Œ}œ†UGPONLFAACKNLIJMJD;@BEOTSQQQUNHfiW`cdaTNVVWSE88:59<BFIJKKLLS\YXdnoonlihec\b_]dcVLQXs‹ƒszŒ€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€$($$"#&$(:DIOPJISXXk¦fWMNY^a^_abc^T9.*( !)(&&'())0149<;86JSZ[YXXVTWY[_ca\XXXXWUTRLStŠ‰‹€~wqqv|ƒŠŽŠ‚zrni]VX~¢ˆtouuvwnlmnqrr|‚}Q3+5.&+0*.23.1DXm€Ž—’…~uhZPQRMKMLJKKGFGFEE?>BA==><?A@CHFGJMNMLMORQRRTTSQVXWUUWWURQPORTSOORSQONNLPTXVVW[^Yd_7 (HinbKRhpijjfnjikjhimdKCF@=CGCGIJLORSNPNGDEGEEEHIGCFKOOPSUUSQPSTRSVWVZQPUUSawyvuxwiUIKPPIGLLFIGGKMKHFB??AB?==ADEIMJHKD:2242246+7VVCELAAACIOOKKCEJJKSZWŠ°c^bm‚‰R'!$ 6WYLNSVQC@D?:@KUOJLTWVUTUWVTUURQQV\^[XWYWTTVWWXZWWWVVTTTUTVWUTTQNKIIGDFJGK`a;!(&$$&&$#%'&'(&"#'22-),,'%-RbZIGPE9K?2RPNLOI@CILMKEACECBDIIJJGDGLHGLSZ^XJ94+&+=R_fo\:(%Anƒ|z{ywuouuuuutsqvwvuwyyurvvtuporz{ot†vTIQNMLHCEKMPPNOQJ?;?AEOTRQROSPKg~hScf`]WQRXVRG=;:5359<@@><C?ACBGMJSY\]`fihhfb`[MFKgw}zxt|‘€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€#%"! " *;@FKHDDRYS[f`UWORa_G8:=CCAEE?( "!"')-)%&)+)'558;<::<RW[\ZXXWNOQTWYWSPPPPOMKJEFXv‡…‚‰‚|vsswŠ†ƒ„~vspdle\Q€Á²~~‰„usw„Œ•›™ž§¨ˆP+.51/0129FXpŒ ¢¨¥šˆ}n[TPQQPLHKJJHFEEDBCA>?><>A?@CDGGEHJLMMOQTUSPQTVVUY[YTSVVSQPPSSSSUSRPMLOPOMSWYXY[^Ycc@">dpcOQdnjhggjedhihjobMGIBBHEEHJKLNOPMOMHDDDCEFJKFBISNOPUXQFBFDIMOVZT]fg_WVapt|‰‰v^LAFFFILKHIDFJLKGC@B??CDB?>@BDIMJHKD:0---/20'1SYB<FBDFHLQQNQGDHGFHHDo‡iPbzŠmW?& $$  :XXNRZYP@AHB9>IUULIPUUUVTUUUVVTPUVY[[YXY\WTUXWTRYWUUVVUTWVWXUTRNJIIJIFFIGNaZ2"%$##&'&')(''(%#$(22.*(# #-M^_LFSE5C>#2RNPMNJDCGJLPHCFF?>HLLMNMKMRRPPMHKNKJH@3')9J\hnfJ*3Zjikjgkqpqssrtwuqtz{wy‚|w€zsqqrpsszpTGRNMPOKKOOQQMLPMB>@?CMRRTQMQOId|hUde]ZVRTVSPI?>@?98666:=??==<?@>A@A?>?DHIFHKJDF^|„vtldx€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€"%!"  #'6>;9:788BDBQ\PGY_[U?(!%(*$"(&$!$)))*(%')'&'-1004997<CSTVWVTSTNMNRTROMLLMMMKJIJGDXz†ˆ“ˆ‚{vrqw~|wy{vqomdbaaMg²¿•Ž˜–‹Œ•¡œœ¦¬¦¤¨©¥J))136Pc{¦ªª¥¦Ÿ“•˜ƒgZTRRPNMIJJHGFECCA@BA<<??ACCDHHGHNNMMNPRTRQQPRTVVWZYTRTRNPOPRSRSUWTOKMOOLLQWYYY\`^adE4_pbKPclihhiifefhikmZKEFCDHFFHKMMMNOONLHGFECEIJFGKMJMRW[[ODDI=CMOW\Og—«“€ƒ‹˜ž¨¬Ÿ„^?CMIDHFDLGKOMGBABC=;<?>?@CFGKNKHKH@8455799:>NUG>?AEGDB@>;=;>?>?BADLPW[[ef]d`B% &&"?[ZQX_]QABID;?ISXNIOVUUWVTVWUWWQTWY[[[ZYSVYXWVUUWUTSTTTSUSUWVUSOJIJJHFFHEP_P*##%#$''&')(&&'%#%*0.+*)$$,-4F_TGTL887$3QOMPOMHBBJPKNKE@95;A?ACDCFKLHKNLJKJNPOG:016>O\ikI.7SONOQWZVWXZ[\\\\_dfceikhkrvqnrtpmorxxiVNQOPRQLJKJLPMIMMD>?>CMQQTQOSNFa|lY_`a^QMXRNNKD@BA<==::;AEHEDEG9:axncYQIDBEGHOd€Šqvodv–‹\€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€$%###!!%3:5..39<EFCMSKMV[J,!! !%&$'*''$%%"#&&'&&').38++05418CRPPRQOOQMJKOQMJIIJKLLLKKFKHHYt‰’Šƒ{xvttvvwxuppohdcgiVn¯Å ††–¡ ž›¦«¥£¥¤Ÿž‚]LHSg¢±¯¦¢£¥¥¡—†‘¢Žo]PLPLJMPJJGEFDAAC@BB>?B@?EFFIIINLKJJMPSTNRVVTSUXTUTPOPPNORTUVWTPRQONOQOLNQUXWX\b`adL .Xn`HUikfggghiihhkmmXHADEBDHDFIMNMOQQNKIIIFDHJJHHJHCMW\[TGBMQ@BPRUUJ^”µ°©ª¬²¯«§¬³«‘zUIJNIJKDFJKGCDHKHECFGFGIPRRTVQLOOMJIIJIHMKBCC833-4::7777448=?EJIKRQ[[Vflo|mB###C_]U[a]PCBHD=AHPVPKPWVSUYUWWSVYSPU[]\[[ZUXZVSTVWTVWVTSTUUSUWVURMMLJHEDEGCT\C!#$'%%''%$&'%%&&%(-0*$&(#%06%-RUEMPA2)$9SOINRL>>PP>7MN>::4/1//3457:;56;9:?A@CEFC=3+-9BK[f\KNIJNNOPLNOPSROOSQRSTRQRUPRVVV]^W``_``YSTQOMKJJIGEFMPJKKD;=>FPQOQRQVOEboV^bc`SLUTOOSMFB??AA@=?DIIJHEL??rœƒ~xoe`[]gxˆ~cmxiy¤]Y€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€"#!$$"" *---'-@LHFFGILMU_F&%& &#(,+(&!&&)(#$''(%%(/3310.1421>PPLKNNLMPSPQVXTQQPQSUWXXWQX]WTf{ƒ}{{{wutppqniihaYm€u^t­Ì¯‡ŠŒ™¢¦™š¡¤ £¦¢¢¢¡œ—’˜¢¡¤§§¦¦¥¤¢¦£–¦Œi\NKPMKMMJJFDFDAADBBBBCCBBFHHHHKONNNOOOQRTTUVXXVTRQONNOQRSUVUVWURMOPOPQQPPRUWWVZ__`eT)*Rk]NZjhadfhgjkjijll[IAFEBEIDEINOMNQRNKJKKKJKIIIFDHOU\]XPA?NSDBNUPJH`‡Ÿ¢§¨§­¤ª©©®¯·È£^FUNLVRUXYVVZ]]YXYZXUTVVWWXZTORQQQPQPNLKF;95*)+-4;<===;A?CGFGKKJSWUXboswfM7(!#Da`V[`[NCCIE>BHNTRLMSTRTVVYYVVVRSV[^]YXXXVTSTVWWTVXXVTTVVTUWWUQKHIJIHGFFGWS3$%'%%'&$$&%$$&&&*0/(#%% &8E3(8IHGLH4#ARNKMQB(/QR14KJ97;5.-**,.-.051354574232/39817,/7;IYY>:>EDCFIKKMONLLNONPRPLNSUQSSQSSJKOQSVQNSVSNOYaZMKDHLHHKF<<>FPQORQRVNFe€kRae_\VOQUPSWQGCBGD@<;?FKMOOFLD>f|smpz|wmlsvljv€~f¬œeO[€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€ "# $-*(*#(@SHDP[XRVO+9D2)53,-0,*,-&'+)"#)*&,48854361145:Phkecghfgknjlruropmnqtvwxx|z{|}€{tngbchfabd`\[ZQ[pqgy£Ç½“ˆŒ™›—¡ ¢Ÿ›¡¤ž˜›£¡›¢©¡¢  ¤¤¡¢¥ ¨§Ž¡‹l[OJKJMOIJKFDGE@ADFCADDBEIGIJGILKLORRQPQRTUUUUTTSONOPQRSUTTTUSPQTMQSOLMPRPRWZXUW[\_gZ/(Oi\OWeifeeidgjjiikmXGADADJIFFJOOLLPQNKLMOPQPQQMHGKOLQPONDCQRHBNYNELg•¢Ÿ¤£¢§¤¤¦š˜¬¥wbiiehicddbdeb\[XVSNJLPOQQTVQMOKKIGEEDB8=86433.39>ACDA=@?DF@BTeSNTRYd_aZ[N7%$ "DaaVZ]YLCCJF?AGNUTLHNRRVVYYVUTTUWUW\^ZY[XVVXXUSRSTUVUTSRSQSVWWSMLLKHEEEFMXJ'&$$"#&'%&($##%&',2*'&)'"0IMH.!<QKKI9$FPLPSK68J?EQH886003/-//..087>L\ih\V]\RNRRLBIC>CB@GA63985796789;;;:==@DC@CJJEINMQSLJOOQVSR[\YWc{‡sWKBFOLJIB>=<CMOPTNPTLGg~eVab^[SOUPMRULBBGIIJKKKIHHHPOOFHw•Š{u{{pgfntqsxu\x·µjVgT€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€##"%$$-*!("$ObOKfnomI.+?N?01222110/--/-,,-,)'1357887542896HoŽ‘˜™”—•“”—™šš˜—™œ›˜šž  ¤£—›€}vqy~zuqqokikkm“£«²ª¸Ã­ˆ‰•—Ÿ  žŸ££žœŸ¢¡žš™™¤¤ œž¦¨¤¢§¤˜–šŒubPNKLMFHEIHDCB@AECAACFGHNIGJLLMPNOOOQUURTUTRRSQMPRPPSSSVQTSPQTTRSPNOQQOLPQUZYUW^aYa^9!DfZK]gefkidbcdihglkVID@@EHKHGIOQNLMOQMIKNNPMTSMLNNLTVTMKPVY\W[iqqszƒ™¢“ˆ•’‘Š€zxuqhgda]ZWVYUPNNNMKFEGHGCBEHILPPMJKIHFDCCDE@=97640-)07:9777<:=CFJVe_TOTXVY`jpR)"& !J`ZR[^VF@BII?;CLRSOKOVWSWWWUSUWUSUZ]\\\Z\\ZXWUUUVUUUUTSRRSQPRURNIMNKGDDFLR:! (#(#!$&$$%(#$'&,20) "")ESJUP*(FJLP6#ISIQUA ?DJJD:9=:354/-1.-494Hew—‹}šŠ{•€o~€inyqcfidZYZWSHFGBADCB=;>?;76637?@>?==A:8CECIJIMV`b[S@?DJMOJ@9=@FPSPPPPQKHdxcU```]QNTVOQH<CJLKLNOOPQSMRMLMDMm}rlnsspogknmmtqc€ÂÃ{T]_R€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€##"##+,#,$&UkX]o}vM,(MQ<87/165420//.-//.+*+-55676654.-44:j™ —Ÿ¤£¢§«­§¦¦¨©ª¨¦©¨©«©¦§¬°ª¤¤¨­®­¬Ÿ”—›¡œ’Žˆ~€y‡µÖàÖ¹³Ã¹–‹–’šŸ¢¢ ¡¤£Ÿ˜›ŸŸ››œ£¢ŸžŸ¤¤¢ ¢¦¡˜—“†fLGHGJEEFHD@@A@A?BEFEEFHMLJHIMPPRSSSUVURSUTPLNPQOQVURSUTRTUUUUUSQQQPOONORPRWYWY]`Y``>?bZQ`jieccghhhkigkhWJGFEHGFKHHMRSOLMNKIMONMOQQRUWZ`^`bcgnrrty~ƒ†‡‡†z{xpnpnijje]WWTQRQPONMLLKJIJLNMLMKKKIFGJMEDNSOKMJKLMMKJH=93/-,*)').6989<@DJOPNLLPQX_]\hzƒlE% "I`[TZ]VHCCHH?=ELQRSOKRWTUVXWUVVTUTX[ZY[[YZZYWVVVTTSSTSRPRPPTSNJJKMJFDEEFNK3! &$&$#%&&'(($$&'.2-"#("!>YWDR`D#8PGJ:!%FOIVM18@5FWC/88422.-1//641Fbs†€y†’‡z‹™}‹œ•ƒ‹š—‹Š””…†’–~~ˆ}ry…zjemk\W`cXOPRLEEE>=>;89:<86:@B?;69AHKMI@8;>EPTRSRRSMJfzdXbaa]OLQRUVD7FQOPPQQQRUWU[[[VLPdmdYV]ebZ[aZ`pij‰ÂÏŽQ__Na€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€ #"!""!)2+%-#4rŠ]t¡ŒH"2TF3/563521/-,,,,*)'$%)06987544442230J¶©›ž¡£¦©¨¥£¦«°±­¥žŸž ¢¡ž ¥­¨£¡£¢ œœœšœœ¢œŽ‰ƒ~ƒv‚¨Õíà±¼½¥‹’’‰–Ÿ£¤¢¡£¢ž•˜œœ›œž¡žŸ¢¡¡¡Ÿ¡ª¥–™ž‘bHFHGIGFHIDADECB@ADGIIHGJJLPPNOQSUUVVVURONMKMPSSRRUUQRUUVTVXTSTQPQRQOMNPNPTWVSY``X^bG8[ZTdmidcdfeffihgjfTHGFFGDCEDDHPUSNKNMLPTUVUWVVWUUY^`abdghfeeffa\Z\]YVWYXXY\]\XX[\YWVVUTTSSTUXZ[WRNTQNLHEGKQCBS^WOOPOMID?;820....--.-3@EB@B>EHGHLMISRW^`^epjO6(! $G_]U[[VLFEGF@@HMOQXSFLWTSUYYWWVRUSX^]ZZ[\\\[ZXVTWVUUTSRPPQSTTSSSNLIFFHIINA) !$$#%&$%&()'%$$(01)%&"1VfXCOfY((JID>,1LQKUA.=6RlP8:6<21./2127:6G]k{ƒyqoqk`htrgn{wim{~uu‡}|Ž“ƒŽš‘„‹š—…ˆž ‹‡–œ‘…Š•Š{{…‚oo{d@;B>977998;>DGHLMG<>?DMQPQPPRKHdxbV```]PNTQSS?7ITQ[]``^[XWYVTVWVY^pw}}ƒ…„ƒŠŒ—¹ÞÌ‚W_]L[~€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€!"!! $.5///>™a‡Ã{+WM2-4026,********)&$'-6;>:86424567706_”¤—–—š §ª§£§¥¢¢¢¢ ž–••—”‘•‘“—šš•‘ˆ‡…‡‡ŠŒƒƒ‚~yvvxryŽ»ÙÒ¹´·¬Œ†Š“š £¡Ÿ Ÿœ•˜››šš›ž™š¡¤¢¡£¢¥®¤•¢£…QEHKGHGGDFDBDEBAEDDFJMLLLJMSSPRWUUUTSRPONNMOQTSRUSPQTQPURNQSORURQQQPOONONORVWWY]_X\eP%2S\WdjhghfdcdehghjeQGFD>;5406<CJRSPJMJDBCFKFJIFGHFEJMONLLORWX[`bbeikkkjmprqmolgddb_`^\XUQONMLJHGGFFDB@@>=?DPA?OYRHFCCBA?<989876530///4<>:79<FJHFKPQXRQX^^]_ZL5#'G`^XZZUNIFFEACJNMRYREJTUSUYZWWVSRQW\[XXXXXWXYYUSWVUUUUSRTWWSNMMLKGFGEFGGK7"!###!&&#!$&&'&#$*2/&%"'FcbTEKYV8%5MO>)2JQQS8'@@PnlM83=3101212697DXct~xyjcc``dbbafg`bkm\^kpffpsslnwunp{|os‡‰zw„‹‹”…‹¡¥‰ˆ¤‚D8C@=9779:FGIHGMNG;<=BLQRTOOQKGcv`T__`]QOUWTRB5:BFPSX[^`bdheff__^X[fw„‰“¦ºÄÁÓÙÐÜßÀ€^[bMMrŽ€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€!! ! (:/#.3 E˜‡h˜ACF-34220+(()*++*('$'-4;=<:87533467:26S~•”Œ‡Œ’”‘ŽŽŠ†ƒ„…………ƒ‚‚~xx{||~‡‹Žƒ‚‚†…ƒ†ƒ€‚€|wqlnnq†—• ´¸³´–‹“› žœœœ™™šœš™˜šœ›—š¡¦¥¥§¦¥¬¨¢«™gCEHFFECDBFFCEDDDGHJIJKPSMPSSRSTTVUSQNMLLLOSTTSTUSSRRUTPQTSVURVZTQQQPPNOOLOTWYWXZ^Y\dX-+L]]aeilhdefggiijkdQHG?3*#"!(17AJPPNPKB?>@DADB@EHJKKNTWY\afhmoorurkjlcWZgg[^_\URPMHLLKIHGFECBA?ACGIHFFFDBCFKDCMVSMJEGIJIEA>973/,*++)-268<BGFKOLIHKMPQTUTQUZaU4 $ )J`_Y\XTNIGFDAELNLTWOGJQUTUXXVWWTTUX[ZZ[ZXXYYZXWUTSSTUUTSSRUWSJIMLFGIFDGJC/!&$!#'(#!#%$&&$%,0+$$+6NdbOADIGC.#GX:"1FPSI)7C<^‡l=<B:668755789I[gt|x~lejkgeemeceefhgggebdfffhgfecadkoifgfdgnrpgkyskv|~vy„pI6CB?<;<@CGHIHIMJ=:<=BLQQSQQTMJdxaXbaa]OLRRQSE3-2<DGKOQTWY^dol__kna_____gp‚‘ £¥§hYgfLHi†„€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€ !!.51$),+[žp–s(5G343+)1.')(()(('%%)/6;;965665545665-Fv‘•‹‰‡‡†‚{wwxxxzzxspsrsvtqrwwvtttwyz}}~‚~z}yvxwvtrmhhgdb`a}±Á¶»¨†‡’ŒŒ–žš››š›œœ›˜˜›ž›œ¡¦¨©ª¨£©±³¯‰PCHFADFBBEIGDEFHKIJKLMOPRQRTUTQOORQPONMORPPRUUUVWSTVSQUVQTUWURUUNPQRQNNNPJQXZXVWZ^][b\6&CZbegijeaccfehhjkcRF?5*'&),+()0=IPKLHCEGGGMJHLPNMRUUX^aaaba_]]]ZURLSL:;NUMKOONMONKKKLMOPQQTVWXVUTUWUSQMIHKKMRX[XQLJIGD>940*++***-./6<?ADJNRPNNMMPUTX[\YZ`fsY/%!,Ob^Z]YRKGGHEBFMMJTUMHKPUUVXWUWXVRSXZYYZXVXZYVTTUWVUUUTRQXWXZTMLPPIIKFFKM9(!'$!')(%#$%%&&$(..'$!+=DJafN:=A:A7!4V?(5FNRB#08*1kwG:FHCDGDBCCCDMW\ekjphfkliikslhjnolhrtkgnphehmjfhljijmkcagkjhkgglhbifilqqdN<DB?<=@FJHHHGHOK=;=>CLPOPPQRMIdv^Vaaa]PMSONMA762259=ACDFGJOVTJN]eillkjkf_[accb[X^dYNL`ƒ„d€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€!"215/+",h¢w]‚j/7>0-/0,'*+$'&$$%'*,:;=;9789777765327AdŠ–‡ƒ†|€‚€|{|zyxzzxvonquutw|wxyyyxxx{vwy}ytvtonprq^^d^ZVh ½µ¹µ–†Šˆ”žœžš›œšš›Ÿ¢¤£¡¡¥ª¬ª§§ª°¶¯„LFHC@CFEBDGEBEGHIKJJLPQPNVPNQQMMQNMNPPPRVWSRSUSRQUTTSQUWSRTVUUVURQQQPONOOPRUXYYXW^`[^_<!;UfiheecbcaddfgjjaN>70/5:>?91+).;GMLFBDFEEFDCGLHFJLJJMMJHIMGHQSOPWV^^VVbkkpsspnnkgdcb`_]\[VVUQMKKLIFDB?=?CHKNOMF?:531/.../147899;<:@JSWWWYYXY[\]aeddefkrx{uN%#!.Tc^Z_YPHDFIFBFMLIQUNFIRVUVXXVWXVSTY]\[ZYWXYYXXYZYXWVVTRQVVVTPMMNLFGFCFID1! !"&##)&%%&%%%%%$*1*#%,<IFI[]L;972:9&%IJ30:@KD3/.*+-.790"GjP=LOJLPMKMLJIKLJMSSTTSV\_abbbcelpoloppquuqopsmhqumeiopkhkljlqsrsqnjfnmqwcE<GFDDEGIKJLMHIPNB6:=CNRQQNOQKHas\T__`^QOUVSNB??5/3321149==<?BCDGHLSY[_dfepedlldbfYSFRx€iX€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€!#5=4-0\›vXql75>")')-+&%()&$#'.6;=:8788658999740.LmŠ›¡”„‚…ƒ„‡†ƒ†€€€‚ƒ‚{|{|}{wx|y{|}||}~ƒ‘ˆ‡‰€}€ytuxyncf]^]c™°¯±¹¢†Œ‹†“žŸžŸ¡¡˜š›šš¢§©©¥¡£ª¬©¥®®¦­°ˆRCA@@ACFBEHFFJLJIIKLMLMNPONMNOPOMNNPQQOPTSRSUSPORTQOSXTQTTTSSUTTUSPNOQQOLPTXYWVXZ^bZ\`@!5Plgcee``hfhghhji^I:68>EEEDDB;.',7LKC;;<<>BB?@DFFHKJLOOOU]`dmx~€…Š‡‚…‰‰…€tvslfb\USRPNKIGFACEDB@ABC?:8547=><97545712468:;<>?@@@BFIHIQ^da_bbcda]^djlmkgfkqtwP."!!/We]Z`YOEAFJGBFLLHNWQCHUVTVXXVWXVUSW\[XY[\YWWYZYWUTTTUUTSRNPUSKIMIFGFCIH=-!$$%!%(#!$&$$%%$%-1' '9KH@NULIC:+,75* .J:,01;==<<85:=9844ALHDFJDHMJILJLMPQMMONRPJFMROJFMPORUTRWUZ`]_fjfmhentoknoqqpptxrttpmsskgoqwzcHEEEGIJIFCFMQMJNJ=7;>EOQNNPQSNJcu]Wbaa]PMRUUTJB>9<6654358:>;:<=<<@?<>EJLOTWZVW_\TUJGMftebw€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€ " !+<3-,2)6uk_rgA4,&*(%$$#$&)''+39<<?=:76566::66703B}‹±Ì¨||„„‡ˆ…‚ƒ‡…ƒƒzwzzsuvutuvwxz|~€€ˆ‰Ž’ˆ…‡{{|{ywwwfbaeaZlŽ¦¦²Á¯‰Š‹˜¥¥£¨¦—˜›žŸž¡¤­¨£¥ª¯¯­«§«±ª¯¥wMEAA@DFAGGHHHHHHHKNNLLNQNNOPMJLQQPOPQQQPVSRTTSRSSRRQQRUXWSSVUUTRSTSPPSRPLPTWXXY[[\\cdI" 1Tnnd_``dcfbbfegk_G;=BDJJGKTSI:,+2EKD@EFFFJLMLOPSW]\^chkjhpty|}{ungedc`[YXONKGGGFDCFGDBBDFDEEECAABDC@<::<>:==<=<<?BCDDDDEHHGFFGGGFEDO]`_``b`_```ekmonjinuzpD$ $ 1ZbVU\TNPICFJFDIJONSOCDOSOUYZYYWTVUVVWYZWUVXYZYWVVUUUSQRSRQRTRMLNKIHEEJC2#!!$%""$"$%$##%(&%+.-$&AMQJAEKGAAD8).63,+'#--',5=:6?FA=21123;FOH;5536>?>@GE>CNMJKPPIJOOMHLPLLOOLLJJNNLMNQPPTURQVVY^a``cljkonklqoutswnUBNOKGJIINHHKNNOKA<<=DMNMPPMPKJgu^Raa_ZNMRRPRNF?8:<;9524;BCBDC;6@MWPJIHEDE?@CFHHGECUnud\{¤€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€!$0:50.2-!%6IXe`S:$''()(%$%($)18;<:9;;;:987676;;/2Y„‘ŽŠ›¬š€‚†ƒƒ~{y{zxwurqnkkostwy}ƒ…†‡‰••‘‹…„~~}yuszysqtŽ¨­±ÃÛ‰š¨°´¬•—šž¡¤¦¨¦¦ª°³±­±°²µ¯³±’fQCA>>BBGGHHIJJJKMNNLMPSNQSQONPQQRSSQQRSQPQQPORUUUUTSTVWXUTSQSTSSSRPOOONORVXXXYZ[^\adN'.Rnrh`acc\bfgfdllY@>FIFIHDGQRNJ7'-HJFHNLIFMMLMQSSU[XTSSUUTVUSSQMIFLKKLKIGHGEDFEBBE?ABBBCCBEDCDEFDBHGDCBCCDDDGGBBEECEFHHDBDCDFFFFGHFDM\```_```aabeikkkjgirzoA# " 5\dYX]SJIECFGACKMKLQMACOUPUXYXXWUSUXYVXYWYYXXWWWWWUSTUTRRSSSSPLKKJHFEFI@/"!"$$##$##$&&&$#%%//)/:FLNF?CFB>AB=-$.6/!&)(,/787<??BH<2/.5>@CD?;8/.982266215759<9<@?ADBBEFEFIKKLMMMOLNOPRSQPQQQRQOMMNNOQQQRTTWXXXVOLKMHEHGCBGGIJJKI@9;>FOPLMPMPJJgu^U`^][QMPPPVTKA8:888768>DADFKH8Bf{pfdd_WRTNGCFLQS_qt\S{­Â€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€#&7:66761,$2LQXX7!*%)'! &&!/5;<:778<:7558;==78=Kn“‘Ž‡ˆ‘…„‹ˆ‡‡‡„ƒ„ƒ‚†Š…}zspqtuu|†}‚…‰‹Œ‰‘–“‘‘Ž‰‹‡„†Š‹†ŒŠƒˆŒŽ›¯®´Ê²‰„Ž‹—§ª¥¦§žžž¡¥§¨¨ª§¦¨««§£¢¤¢£ ¡¦›ŒpUE>AFFEFGHIJKLLLMNOOPPNRUSQRRQQRTTTSUVRPPRTSQOSTTTTSTUUUTRQSVUWRNORROLQTXYXWXY\_]]dV0)Mpre[]`dc`eggfljT=<CB?EIHIRTQS?,=]PA?CCEEILLIHGIMHGGGHJKKJFEGHFGHDCCDDBBB@BDCBBCCCEGFHHGEFGHHIIIIJHFEFFEDAADEBCFFBCBBCBBEIGCBCEEEGCKYaa`^bb`]^bhkhgijfcn|m<!" ! ;ZbZZ^RJG?BIIBDLMJILIBDPUPSVWXXXWTUXWVWYX[[ZYXVTSRRTUSQQSRTSPMKIHIEEEFE:)!##"#$$$)&#"$&&%##//-8AFNKC?CB>=?@A5&&/1'!! ##(+.114<BBA=3&(5.6:?HE9311;A>@B=>;<:69932<916844668:=?AAABFIKKLMJLMNNNNLSSSQQQQONMPPMMRTONGFT\WOGEGGGJH@9;>FPOLMOMPJIhv]U`^][QMPRRVOE=9=<=;879>BBCDKI<Mxumotvvwuiaaeikrnfc€°½¥€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€"#*;=35761/),7FaT+#(-$"'&#*7=>><978968:;;9756=Tq‰˜—Œ‰‡…ƒ‚†……†‰‹ˆ„„ˆƒ‚ƒymllsz~||€†…†‡ˆ‰ŠŠŠŠŽŽ‹ŠŒŠŠ‘‰‰‰†‡‹‰‰¨«°Ê½“ŒŒŠ’šˆ’ •’‘““‘ŽŒ‰‡‡‰Š‰ˆŒ“š¦©­ …`B?EDBCDFGIJKJJKNQQMJMQSSRRRQVUTTTTSRPRUVURQPRSTTSTUVSTTTTVVUSQQRQOPSQTWYXWWY\`][c`;$Ffia`b^bjc_aihgdV><AABIKJKMONSH:SjU@?BDHILMJIIHFHBCEFEDBACA@BBA@@CBBDDDDEEHIHFHGEFIJIHHHGGIKKJJKLJIFEDDBADFDDFFDFCEDCDDCCGDBDGHEBGCGWac_]ac`]^eijgfilfami7!" "@X^VX[TOKCDIIBDMPJGFEBGMOPQSUVXXXWUTTSXZXYXVUTUVWSRRUVUSRPSRMJJIFGDBEFA3%!$$!"%&$'&%&&&$#%)5=?=:EPJBAD@<>=@?>5&!+)&($!&(*--7AKJ2 &$%).;RZO5+Dah|Šyqvwkbhh]R^]OGJIC=::=;>>;647;746678;=?@@@CEEEHMLJQOQSQUWSZ[W`v~lZDCFHIKIA;<<DMOMPOMPIHhv\Raa_ZNMRRTSC8;?DEHIGDDCCEAEJB>OixqmlkjmrqmhghjkjladŽÄΠp€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€#"0<<787585,&%$IvW#$)(*(&*5AFB@=<=;8587555689So‹™–‹Šˆ„†…‚…ŠŒŠ„ƒ†‰ˆƒƒ|uw{‡‰ˆŒŠƒŒ‹‹ŠŠ‰‰‰ŽŒ‹‹‰†‰ŽŽŽ‹‡…Šƒ„Š„†“—ª·Á rtvmmpkflqkheeffc`achpzƒˆ‹˜š’—žœŸ¡¢ž€WCBB@ABCFGHIIJLNPOLJNORTTRRSUTSSTTTSOQSSSSTTSTTSSSUWVUUVYWUSSQQRQOORORVWXWXY]`^ZcfE >Yffghbbif^_ijfdX@<@CEIGHNHKLSK>LcQABFDGFABA@A@@ABCCCCCCDDEEDFGFCHFFFFDDEIFGIJGFFGIIGGGHGJHHIKKJHKJIFDCDEEEBBGFDCAEEDFGEBEDCBDFHIGBFTbc_][_ccfhhdhgknhcod2"!$C\^UTVQQNHDHKDCKOOKJHHKOPQQRTVVVVVTSRSVYWSTUVVUTSRPQSUTRQNQQLIIIGFCBDE;,"!$#!"&'%&')(&%%%#4QYOA<EOH@AD?;>@A?>=0#"*! /1& %'%)(.AWV;! %%';Yg[7Ah|”‚ƒ•›‰“…‰”ˆwŠ€sqwsgdih]VZ\QIKKDA@CA;8;<:88;<:7?<::>DFBEGFNbfXI>?EJKMI?<<=CMNMPNMQHHhv[Raa_ZNMRNTR=5BKNFKMKKMLJFDKOG>J\d]VSSU]fec`]\\^`[~¬ÜëµqX€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€#!)7::6:6244/-!#Vƒ[!$8#&+9WsviaZPKIHDA@=<AM`s‡œ –——ŒŒŒ‰ŠŒ‘‹‡†‰†Š‹ŒŒ‰‰Ž‰ˆ’‘‘Ž‘–•”Ž‘“”‘Œ‰ˆ†ƒ€ƒ…‡—˜—«º³„MJYQQUSRSQTSSTVWWVZ_is{ƒ„ƒƒ{€†ƒ‚~„‡— lSFAABDDFGGILONKKMPPOPTUSSUTUUTRQQQSSSSUWUSUUUTSSTUWVTVYWTUVQNOQQNLMQUWWWXZ]`^\cjL4RjmhjgcbebbhhieS>;>@CEGMMJOQPI?D_TGFGEFFCFGEDBCFHGEEEEFFGHFDDGFDDCCEEEFHFEDFGGFEHHFFHKKIJJJJJJIHJJIGDDFHFBBEFHHDBEDCFHHGDDEFGGECECES`b^_\^aegigdiikmihs^/#&HbaVTRNOKGCHLEBHKPPONLLORSRRTTSRRQRTURUVUUUTSRRSSSSTUUTSTOPOKHHHHEDBEB5&"###!"%''()('$$'*BtrL?AAJE==A>:=DA?;8;3"&%&0/,#!'$*3B\[; "*,(9YlZWg|Ž„uŒ–ƒyŠ”‡|„•|‰™…Œš˜‚Ž”‰‰ƒ}‚„zpowtgckd[UVVOIHMH<9><798857>A?A:=CIJKF<9;>FOPLMMMQGGhv[U`^][QMPPUP:4HSWX^`][ZUNKNNRRFPr‰wttstvpomihp~‰´¿ÒæÓŒY^€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€! !/8899798448:#,o’Z"$<,+Fxšžšœš”‹ƒ~}}~vvx|„Ž—””–šš”’—‹Ž’“’‘‘ŽŽŽŠ‰ŠŽ‹’”’‘Ž‘‰‰‰‰’‘‘‘‹Ž”˜™——˜ŽŽ’’Ž‰…‚„zƒ˜”’¨¸·‹NFICGLJHKMKNPRTVY[cgmqsrpnsuu~†Š‰~›½º“gLDDEEFGGGJLNLJILOONOQRSTTQRSSRRSTRVXWUUUUVWWVVUUVUVTTWVTURSRONNNMNQVWXXYZ^_`^dkQ& -PjkejiaYbddffibI9<CEHJJOFLQOMHEFQSLIJHGGJJHGIHFFIHGGIIGFFECBDFGFGFEFFEFGFHHFGJJHGGFFIKJFIKMLJIIKHGFEDCDDECCDCDDACCBCEDBBFDCDEFDBDBER``]``^_bghhhhijjhku~X- "+Na_WVSNOIHFJJA@INLNONLKMORPPSTRPOOQTTSTUSRRSSTTTTVRPRVUSQRPNLIFFHEEDD@/#$$"!"#$')%&())(''#V|H:?<GD=<A?<>C@=98>=1" 1@A%-,/EXX6'#+%+?QfnhqŠ‚~—‰€Ž–Œ„ˆ’Œ‡‘‡y~}~•‰€Œ—‹†“–‡ˆ™™ˆ‡–•‡‚‹Ž…„‡{jlt[???<8:<417=?DHIJE;9;>FPOLMLNQGFhvZU`^][QMPSTM84AJLV`impsnfZ_[[\U]w•–Ÿ­·¼¾À¶¼¾º´¸ÇÕßäçÎYQe€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€"'156;8+1<7366#1‰¦\$!/)Wˆœ™’‰“—šš—•–˜š˜—••–—˜•’”‘‰“–’Œ’ŽŒŽŽ‹‰“’•Ž’“–™ˆ‹ŒŠˆ†…†‡‡‡ŒŽ‹‰Š‹†}u|{~†oy–Žž¶½‹IIWKIQRRVYRVZ\\^bfafnv~…‹Ž–˜–—”•šbt¾¶hOHHHHHHHHIIJJJJJJLNNMORSRRQQRSTTSSSRQRVWURSUVUTTTTWVTUTQRRSQOOQQOOSVXXXYZ^^`_dkS* (Wg_Ybea^`bcede[@6=EFHKGHIPNJJGB=DOMJKHEEGJJIIHHJHFDEGHFCGDCEGGGIIGFGFEFHGFFFEDFIGHIIIJHEJIIIJJIHHFEEDC@>?BBABAADECBEGDBDCEGFDB@@CCEQ_`]a_]^eihghgiiggmu{U,!"  .R[ZUXUQQJDGOMBBKOOQQQRRPQOMNRTSQPQPQRRUURUTRQRSUVWTSTUTSSUQOMIDDGEFEE>,!%%! #$$&+('%&(*)(3k™€M;:<GE?=BC@A?>:;?<;B1  8F=$ #!(58BZM4#%,,;Yqpr‰|†–Ž‰“™‘Œ”‘—›”‰”—‰‹–“„™‰‚‹Ž‘—˜…„˜œŠ†”˜‰¦–„•£v@8D917?95=CCFHHIF<<<=DMNMPLNQFFhvZRaa_ZNMRPOK<4866FLPQZgnmlopkdb^Z_bkx„’¤³ÂÑßàÙ×áìäàÌWYfT€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€$-/-/2-..58464,>ƒ«m-3Ddƒ—•’‹‹Ž‘’‘’”—–””–˜•’’–—“”˜¢›”’”•“–””••““•‘Œ“™“‘–”–—‹Œˆ‚„‚ƒ„ƒ„‡‘š£ „™““ˆƒ~~ymuvŠ‡us”¤”“°¹†QIPQSRRRVXXUUXYXY^ahr{‚„ƒ‚‚‚uwwrvoSk©Ç±˜wOKMKFFIF?BEHJKKLMNLNNKMSTQQTURSWWUWVSRSUUSUSRTSQRVUSSVUVXUSPNOQPMLNTXWXZYZ]`^Zf^.)Ne][b^bc`babg`K98EGDHJHJOSOJLI?9EONLMKIGGHHIIIIIIFFGGDCEEFGHHGFECEGGFEEEFFFIKHDDGIJJIIIJHFIMJFHKGGHFBBEF@CDDEEDABBDGGGEBAACECDGFDFDK]b^`_^`effjonefmcfxsG& # $ =[]VXZTQPHCFOPFBINONQSQRRPQSUTRQRTSRRTUSTWPRUUSPOOUQPSTSSVOQNHDEGFDCFA/""# "%&&'),&!-'#)%)C~˜ŒY4>6<@?=A@=?>==8:<:A9" 3HA5! #$ +=FLC+%#!-6Hcloˆ”€•—Ž‰˜‰‘—‘‰•’‹‹‘’ŒŽ““Œ”šˆ™–ŒŒ–•Œ‹•š‘Š’›”Šš•ˆ‘vB5@???=9<AJFEEEGF>:89COOMQLOSEGktXV_^^ZLJPOPKC=:859;>?@ELRV[SMXgmnnj^Yadbgv€Ž™¡©´¼°’lW[bZK€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€(-+(,0/-,48455.3„ Z@hŠ”¡¡™™š™›’”–™››››Ÿ› ¡ žš›žŸœœ ¡˜—˜˜–“’”–™™˜–•–•š–•—““–’Œˆxy|€}„Š›®¹®—™˜’ˆyyukktƒ‹‰zu¥•Ž®¾„FCOOOLIHJLNJJNPQUZijkhfgkpdebkor{uu‹´Á®œ~WKLF;35=DLIGGIKMMJIKLJMRSQRRTUVUVWWWWVUSSVRPPRTTSVVSRTUUVTSPNORQNNRVXXWWXZ]^\Ye`5%Ea_\^[`a]abbaVC7CKHCEFFKJPMHIJA9BMKHIHIJIJKJGFFFGEEGGEEFDDDEFGHHGGGGFFGHGFDEHGEFHIIJJJIIJGGIHHJJHHIGCBCBCBBBAAABA@BEDCDEDDB@@ADFDFCK[a]__aehhghiogiofj{tC% # &!#Fa[WXWRRPGDGQTGAJSNNRSQQSQQSUUUUVXVSQTVVVVSSTUUTRQRUUQPSUSQOKHGHFDDDE>,!"#!$%&(*-(")*)&#4\‡–a<A7/3>C><=;B?>:;<9A:$!"0F?:5 #'/9GI;(! ,-:Xkr‡‘ƒ•”Œ‰‘—Œ‡–‘‰–“”•Ž•–ˆ…Ž•‡š–ŒŒ––ŒŒ•œ”•ž– šŒ”žvA5??@>:9AKIHHFFKG;99:BMQNOJMSGJnrUV`^^ZLJPNOH=9<:4679;=@ABCACDCKYb`fffifbea`_bfhge`Z]hfXRV€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€$.-'%)/2-*38456,F‘ƒQt¤° ¥¤¢§¦¤¦Ÿ¡£¤¤¤£¢ Ÿ £¥£¡¤¢¢¥¦¤¤¦¡Ÿ›š™˜—–••–——™š™“•š˜˜—’Ž’‹†{qosw{yvw~…³ÖÝÇ«›—Š†|tsqicq„ŒŒy ™Ž§¾ˆGAEFGFEFIKMKNTYZ^chlppoqy}{}††ˆˆƒ¤¾·¤—€_GGE>3.5>@@ACFGGFKKNNLJKJMQQQUTRSTPNPQOOPQORSQRUTRTUTVVTRQRRQRQNJKRTUXVTW[\\ZWdc?!<^e`^[`a^acc`RB<DHGCFFGLLPNIIG?8ALLJKIIJFHJIGEGIFEEFGFFGEEEEEEFFGFEEFFFFGFDEGGFHIHHIKKJHIGHGGHJHGFGHEDDBCED?@CDA@BEDBCC@FFB>?@BGDFDIX^]^_cghhiihmgiogm{o<# ! !% .SfYYYTPSQFEFQTH@JTPPQRPQTTRSTUVWXXSRSTUSTUUUVUUTSRVTRQSTSPPMJJJGEDEFD7' "$$%&&&&'((%'),$%EyŠ“—k7:C2).<?=<:C=<:=<9B<$%()A><=$ /1%'35?A6*$%(#.Pmw‡†”‘ˆˆ•‡…Ž•Š—”Ž–——˜‹ˆ‘˜Š“œ•ŒŒ––ŒŒ–””ž–—Š”ŸwD;E=7;CFHIIKLGFJE58;<AMQONMNQDIntUWa_^ZMKPORL?;>>9;8558;<;B?BA9=EBBJPU]][]fjnnkiiknie\IDd€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€*3-'&(,4-)39567%V~dcž®›¢§¥¤¥¢ §§§¨¨§¥£¢ž¡£¢  ¢¥¤££¥¥¥¥¦£¡ž™–”•–•“”™™–”–”‘“—•••ŽŽ‹‰†~tostspmntz†µåõã¿¡•‹‡‚zpqpjao„‘ƒ|”š”¡´ŽTDKMOPQTW[_^afgdceorvwvwy{xsw{tsvmp¨Â¯˜‹{dJFFHE=9::>BEFFGHHHIKIIIHKOQQRQQTRPMNNNNOPNNPQRRPVVSRSTSSTSPMLNMKKPSTUTSU[[YWVadI3Yfb_^`^___a`TFB@DCEGGHMOONMKF>:@KLJKHFEGHHHFFGHFFFFFFFFDEFGGFDCEEEFHGECIHGHIGEGHHHIJJIHEGJJFGHGGEFGEEEB>BB??CC@ACCA@EFBCEDCCBBDDFCGT]\]`dgfgkmljeglfmxf4!  $!>afX[YQOTQFFGORFBJQQOPRQSTRSSRSTUUUTUVWWVUUQSTTRSTVTUSOQWUNMLLMIDCFEF@0""%$%%&''()&('&*"-[Šˆšq43E:3('4<=A<548=;7C="&/"9?B8"(8.%-6<4$ -,5?<-###+QqzˆƒŒœ˜Œ”™Ž„Œ”‰˜•ŒŽ––ŽŽ–˜‘”š‰™•‹‹•–Œ—š‘Š’›”Š™“†“uD>B==CHHHIBGIGDIG=9;;BMQNNONOBHotVWb`^YMKOMSRH>>??@<87:=??>=?>86@MGD@AFIFEFP[a``di_ZNBEc“·€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€.2,('&'3/,59677-BSl˜³¯¥¢¦¥¥¨¢ž¡¤¤¥¥¥£¢¡ ¢¥¤¢¢¤¦¡¢¢¢£¤¤¤¤¡œ•‘“Žˆ‰Ž…„ˆŽ“•’“”’‹‰‡ƒ}wso{umebbef…¼ëóáÂ¥—‡‚xrssk_k…˜š„z“œ—¦†XFTUVTRRTVRPQVXX[_voga^\[YYUYXPMKFh¬Ã­”„yiQIFKNJED:=ADDCCBEEDDFHJKJKNOLMPQNPRQRRSSUTRQTTTTQQQRUTSSQRQOOONKOQVWTSSRZZVUU]cQ$*M`^]]\W^\ZZZOFDEEEEGGHKKNOLJHC<@MNLKHGHIGFEGGGGGGGFFEEDCDFHHHGGGGGHIIGEFGFHIHGJGHIIIHIIFFIJGEGHJGGFDDCADAADEBBFD@ACBACEDDEDBBCBCEDEQ[^]`ehggklkifhkfou\,! ! &#Pk`Y]YPPTPHGJRPECLOPNOSTUSNSRQQRSTTWSPQVWTORSTSRQSTPTURQSSRLKLLIDCFED:*"%%%%&'(((''%&'"<t‰Š’rA6:7@5-<F2(+4<84A:%5&1AB,6K3 !$$8FC3!&6>1  /Wsy…Ž‡™—‹†Œ•ƒŒ”‰—•‰••‹‹“—‰‘–…•”Š‹•–—š‘‹‘›“Šž•‰”qB>FA@FKJHGBEIFABEB<9:CONLOLMQELpsSVca]XMKNKOQME>>@===>@AAAC@?D=,I…ŸwcUMHCBAABFGGFGIKUtš®¯€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€ .0)(&"#0117:797:.C…«¤¢ªŸ£  ¦¥›—šœž¡£¤¤¤¢Ÿž £¤£¡¡£¤¢¢¥¥£¤ ›•’‘‘‘’‹ˆ‹ˆ€…‚†ŠŠˆ‰Š‰€yibdgvoe_]^^^…ÄððÜÁ£”†~{wzvk]i…œœ‚u£›“œwMCLMLJFEFHGDDJQXaiaXMHHIHE==B?=>:>¹Â¬•‚yiOKHJMMMMBBCDFGGEDFEGKMKMMKMNMORPPSTSQTUUTVTRSRQURQOPSTTWTTQNNQSSNOTWRRTRYYUUTY`U)%E[^]_ZU]]XSOIDFEGIJKKJIIPQJEIE9:ILJHEFHJGEEGHGFGHHFEFEDFFFFGGHHHGFFGGGGEFEFGGGLFHIJHHHJJGGHFGHHHGGGDCDBEA@BB?@DAACEA>@B@>AB@BFEBDCEN[`_bfjkjigejjklhqsS&!"""&.bpZ[_XPRTPLHOWRCCLPSOMOPSTQQQQQRSUVYVRQSWVSVVTSRQQQRQRTSQQSNKHIIGEDE@2% "%('&&'('&*$#)()PˆŽ‰’qB6<;87-/=+ $2;4,83$8/+A>&9B% .IP>-&'35(")5WrvƒŠ…˜—‹„Œ–„Œ”ˆ–“‡Œ••Š‰’—Š‡—Ž‰’›“ŠŠ•–Ž˜œ”•–ž•‰—ŸtFFOD=CKMIEIIKH?>@?<99DONKOMNQEInsUVca\WMJLMLNQNHDDA@??@ACDKLGIE4Q•µ²±«ž“‰€rne\USUXRf›®³§™€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€!./))% #-46::9;7.2fž¬¦¥¬¤©¡—š™–—™œ £¥¦¦¢ Ÿ £¥£¡¡¥¥¢£¦§¤¢Ÿœ›—“ŒŒŒ‰ƒ~z~€€}|~vaX^bkhdaabccˆÆðïáÇ¥‘Šƒ~~€xh`lƒ’’|rŠ¤œ˜žtE>EGGFEFIKLIIMQTY`OKHHJKJGINSNV[Vc—À¼¦Žwp`JJIGHLNMNJDACGKMEHHIOPNOPPQRSTUTYXWUTTVVXVTUWWURVWVVXVTSSTUSRRRQJMRTSRSSWXTUTV]V0#@Z^^^YWYXPGFDCEAEJLNPOJLPSMFGD9=IKJJHHHLJGFFFFEFHGEEFFDGGFFFFFFFFFFEEFGGHHHHEDHGHIIIHIIIHHGFHIGEEHHEDDCCCCBABBA?BDA>@DC?ADEDBA?ACCDM\cabeimkgedjkkkgqnJ#"$""% ?poX^_XRUTOPKPXSDAKPRONMLOSTRRRRQQTVTUURPQSSSSSSSSSSSSRQSURNNLIFFGGDE<+!"!!%%$$&)++*)$'+);iŒˆ’l:2A@13<1 ",+$3;.",)$76$)@@'%A>! )CWTF3/2)$.;9Tq{„‹‚“…‚‹•…”ˆ”‘ˆŽ˜—‹Š”™Š’š‘Œ”ž“‰Š•–ŽŽ™””ž–›’ˆ– uJLIFFHHFHLGHJGDFE><:;CNOLNMORCGltXUc`ZULIKMLNQSQOMMICABDEDBFDEE>V†¢ž ¢Ÿ£©¨©ª¨Ÿ•’˜Ÿ£«³´°­¬¬€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€#02,+%!&*5:<;:<7/L•¯¤›ˆˆ’¤©¡¡¤¢ ›Ÿ¢¤¥¥¥¦©«ª¨¨ª­¡¥¥¢¢¦§£ ŸŸ¤§¥•ŽŽˆ……ƒ…ˆ‡†ˆŠ‡‚„…‡~jbgihiiigffgÆèêæÑ­—…ƒƒxeep…„vr‹ž¡“£}G=BDEEEFILONQVWSRSVWWY[]^__edYabXjœ½´ …icUNLE?BKOMROJDABFIONGDGIHKJOQQSQPSTSSVYYYZZWXXUWXWWZZY[\ZXUWVSQQPNLRTTVSQTVWTUTSZV5:V\ZYUVQNB:>BA?BEHHJPQLNMPQKGE@FLGEIJIGHGFFFHIJEGGEEGGEBCEGGGFEEGIIHGGGBEHJLIGJHGGHIJIGEILIEHIFEFJJEBBA?>@CDA@ABBDEBABA?CCCECBD@CCDL\ecccfjjggjhiihdniB!#%" "$%LxnX``WSWSNRNOTREAIMLMRRNNQRSTTRONQSRUVUSSROPRSTRRSUTSSSSRPOKMKECEGGE9' #"!%'%$&)*)(&',*)L}‹ŠŽˆe>4999:>=, .!&6;*#" %59))>=!$F?! %9S\UG=+(;J=Qt‰…†”††‘™†Ž•‡Œ“Šš™Œ‹•›ŽŠ‘—†–’‰Š•–Ž™š‘Š’›”Š“‡•pDGGCCJNKHFGIKHGMI;:<<BLPMLJNTGIlsVTb`YULIJFJMNPRSRVPJIKKFADCHMD;Xˆ¡™šžŸ¤§ ¡¢¥¨«««ª´°¦ž¢«¬¦€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€'0/*++)**4:::;828zµ¶‹^GDPvœ°¥¨¢©ª¤¥¦¤¥©«©ª®¬£Ÿ¡¨¦ £§¤£ª¡››œ›š›—”“‡ŒŽ‹”•˜•˜—Šrahyxqqrkeio‘ËíêåÖ¶‘†ƒ€yx‰Š„z~Œ™˜˜ \GQSQTVSUVZ\][Z[ZY[[[[[[[[`\^X^^Vp¦´¦›ƒ\SSHEEIJHIMQNNPOICBHKMNLIGFGGGGGHIILPRPQUXXVUUUVWYZXXXY\]\[ZYWUSPMLPPSUSPRWVWUUVRRY82U^SPUQNOI@>ADFBFHILLLOOMLKKID@FIIIJHEGGEGIEDFFDFDDFFEFFFDBDHIHBEGGGHGDCDIJEBFIFFHIHFFGIHIKJGFFGGGFEDCC@?@BDDA>ABDDBCDCCACEA@CDECDEIV``fhgiookjhijegr]. # $)3iwcXd`SQROPNJQSLECHPMNOOPPPPPRRONPRSTQUUPRVTVRPQSSSSSQQSTRPOIJKJGDDF?/$  %&&%$%'('&",-"/cŠ‰ˆ†’€S936;96;;5/$,067&"",130/<<$9. ##3HTUXE4KS;Pw~ƒ††‘Ž†ˆ’–Œ‚•…Ž–‡˜•Œ“˜‹‰—‘‹’”‰ˆ“–ŽŽ–—†ž•Š–’†•sLGG@>??@>8=A@<=@?:9;<ALPMKKKQHLmqSU`_^ZNKOILQRPRSRRQLGJRUSPPLNJ<S‡ž Ÿ›š£§£Ÿ™ž©¥›šœ››šž§€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€&24132--*399:;71F—·‡TA=>>K`“³¨£ª¤¡ ¡¡¢¢¢ž£¤¤«­¨£¥ª§¥ª­«ª¦¦¡›˜šš˜š–’•šš•’˜””—››™ž–‡}‡ƒ‡Šƒ~„Œ™µÚíݽ§¢™——•‘’††‰ŠŠˆ„Š˜ ›˜— bOTVSVXVVXYXWY[[ZY\\\\\\\\^]_Za^Zz±³¦¢ƒRGJIFFJJIJMRPPTVSOMFJJJOUSKGIJIFEFGGJJGFHJIOQSUVVUTY_a^\\ZW[UNKKLKJJPWZVRRUVUPMNLOY?!,GWWZ__mbG5;A><?BBDJLMPOONMLIECHJLJIIHFHHGHGFFHGEFFDDEDFFEDEFFEDIIEEHHDHFFGFHIGGGHJIGGHFJKIFFHIIIGFDCAAAABCCBA@CCCBACDDEB?ADEEDECDEIV`ahifeiihjhjjhlnQ'!#!%&$DuzaShdVTVSROPONNIBDOONNPQPPQOPPPQRSSQRQRTQQWRPPRTTSSTPNQSRNKJJIHECCD;-#!!&&('&')*)('.+%;m‹‰‹‰‘yK65;=:6=<83#&3:4%% #+263/9> ".82*" 5JS\QCRN;Os~ˆŽ€‚‘’ˆ„•†•Ž‡–‹•“Š‰’›‹‘™‘†Š–’‰‰•š’ŒŽ—“”ž“ˆŽ™”†’˜oKJUOMONONGJIECGKE:<<;BLNLLJPVFInqNR__^XJJRSJHMPRRRPSSQSZ^^_^[\UEYŒœ˜”“”–˜šŸ›™™–•šŸš–˜ž¡¤©€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€!/5474.,+168::60RƒN<?=<<<:^’¥¤¢Ÿ ¢ ›Ÿ¤ ¥£ ¦«¨¤§©¨¨®°¯¯¨¨¥™—•’¡œ•šŸœŸ›Ÿ¢žœžžž›•‘’ŠŠ“˜“—¦¨·Ãº§ £žš—•”–”Š‹‰†‡‰ˆŽšŸœš˜ ^IUVTVXTVWZWWYZXWX]]]]]]]]Z\][b[\‡²ª ž{MGKIHHKLKKMLLNRTSRRPNJECEIKNPRQNNQUMONJHIIIHHIJLMOOPUUNLPROJGEGJKJHGOVTNJKMOOKJJEEM?!*JbihihoY?7@C<7;=<?IMNPOPQPMJHGJKNLHIJFHJHEHHFGDDFGDDGFFDCCDCBBDEFHHHGGEEFFGKMKGGHIJHHJEFGGIKJHHGFEDCBBBBBBAAAAD>?DD@AC@CB@BAACDCDDHUacfjihjgdgijhksf@"#"'#/Z‚{^SnjYUXURNPNMMJDFNQNNQROOSRQRSSSSTVWTTWRPWWTSSSQQRURPRSQNLJIGDCBA@3(""!#&&('&')*)(,/(+Nz‹ˆ†Š’vH449?:6<=:9,/=3 ($%-374/63,AICGF4#""!0DWVINI<Qq}‰„‘†„”Ž‡Ž“Œ‡”Œ‰–’‹‘ŽŠŠ“Š——’“™—‘™•”œ“Š—•‹™ŸtQR]WVWVWVQXVRPVXN?@=;BLLJMKLPFMpqQU_]][LBBEEFDDILHGLOMNTY[`a_aZI[š“’•”–š¤•”š——œ››œœž¢¢¢¥€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€!.4475/.+.37993.GZQ;;<8;8;9<X«¤ ¦¤ ¢¦£Ÿ¤¥ ›Ÿ£¢££¥¦¨©ª¬®¦¡Ÿž›—˜¢ž——œœ›œ˜—ššœœ˜–•••“ŠˆŒ’‘•—£««¬¯©¡¡Ÿš–“’ˆŒ‹‰’›š™™˜¡‘`IWYUWXUVXVWYZYXY\[\[\[\[[W[ZZ_U]´¥š‘lJJKJJKMMMLMKMORQQRSVWUPGAADADHJKMORRSSQOOQRMLIGFEEFFD@;;>?<<AGJKIHGCJNKDCCBCFEFIEEMK))QrphgcT;9EDA@8799?JNMNORSRNKJJKLMKHIIFFHGFHIFDCFFEEDDHIFDDDCCEFDEIIEDFEFGHHJJHGGGIIHHJFFGJIGFHGFEEDCBBCA??@AAA?@A@@CC>?CDBCCA@DCDDGTaeekmllhehjjdjs]3#" #&"<k†w]Xtq[RVSPLMMMNJEGPQOOQRPPSNNOQQPSWTTTSRSSSUROQRSSSUSRSQOMMLKGDCD@<,#!#"$'&&%$%'('&/-%3_ƒ‰…ƒŒ‘nB349?94<<:<4$"96 +$'0552.3')CNGCRWPE6'!!,?RUUKATq{‡Ž‚‚ˆ‡“ˆƒŠŒ†•„Œ”‘‹”Š‹‘’‹•ŒŽ”‘Š——“š’‰Œ—•‹šœnKM[VVWUVVQVXWUUULAC>;BKKINLJKEPrqRYb\Z^ZTOMNPPHEGIJJHDFOZ`^`^`WCSƒ˜’’˜™–š¢Ÿ—¤žž¡œ ¡¢¤¡Ÿ €€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€$0436622++/5:71,7DD:9:7554?==a’©žž œ› ¡˜›š˜šžžž£ ¢¦§¤¤¨«¤ žŸŸ›ššž˜˜œœ™˜”“•”“—˜•“–‘‘––‘Ž‘’’”™›˜£««©¡ž£žœ›–’’“Ž‹Ž’”‘›žš— “eOWXTUWTUWTWZYXXZ[YYYYYYYYX\Z[]Qb˜±›†dJLMKMNNOONMNNOOQRRQRWXVVUOFFC??BGKMMMNOPPSVRRRPNKHFIFDFFDCCBDFDA>==8::7:AGHLMKMRTZfc9 JjbZ]T=3<HB>>648;BMOKJOQTRPLLLJLKIIGFGIGFDDGIEBEFEFEEIGDBDDCDEFEEEDDEEHFEFIHFEGFFGHGGHGEFGGFHJIHGEDA@?@?>>?AABAAA??CD@>@DDBCDACCEDFSbffjjhhghmjibgoR,!# "# &Nx†rZ[|y`QTRONPKKPNCERQQPPPQQRQPRRQOQUTQSSPRTPPMMPTTRQSRQQOLKLMLGCEE?7& ###''&%$%'('&/)&?l†…‚‡‘`606<<52:;7<7)+5'"-$(1334/-%!4CDEFKRXYQB2%")"?U]SCRo~‡Œ„ƒ‘‡…“‹ˆ–†‹’†‰”—Œˆ“Œ‰š•‹Œ”‡‰””‹Š“–‘Ž•›’Š–…”™nOV[WXXVWXTQVYUTRKAD>;CLKINKPQCMrqNSc`Y]`b`\YZZXVXXYYYXZ\]\X[[`ZHY‰˜’’—š—™ Ÿ£Ÿœ¡§¥¤¡š˜Ÿž€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€".1/21--+),496/+<>;79=;6;7>@9=bš¡˜œ’–Ÿššš›¢¦¡Ÿ¥£¥©¨¤¥©©¥©§ š™™™Ÿšœž™˜˜”›ž—’“—˜’‘••‘‘–ŒŒ–š›š¡¡”•Ÿ¢ššœš•—˜”’”–•’œ›–Ÿ‘bJUVQSTRSUUXYWVXWVXXXXWXXX[]\^[Rl ®ƒ~cJIOLOQPPQOLNLIJNRPMRRRSW[XRSLDABEFEEDFHHHKNOOPPPOOOQNOSRNPVQOLHFDBAIIGHLTY[^_]^badnf? :[YURC1<CDFD9.17<ENOJINPQRONLKILJHIGEHFEHJGHGCBBEFDFHHFEEGHGFFDCCDEDDEGFDEGFEHGFEFFFFFJIFEFHGDIHGFCBA@=?@?>?ADE@@EDABD@@CC?@DCCCDDESbhcggfhgeijichhI($"#"2aƒqWX}eTVTRSSOLPNEDMQQQOPQQRQQSUUUTUTPORQOOPURQSTSPOTRPPOMKKLKFCEF</##!"&'('&')*)(-&-Nt‚†’‰W1269:31;:6:7%*-,/&(0/3:2&%;B>EKNUSQQURA0*!"'9NRBNn‹‹‚†‘†…“Š‚‹’Ž†Œ”’†‡‘••–Šˆ˜•‘˜–Ž‘›™‹”–‘—˜‹‡œ”‡—œnMS[XYZWXYVTWWUUVMBB?=CLLJMGORDMopTUe`X\^^Y\^`^[^^Y_[XY\^^\\^^a[HY‰Ÿ–‘–š™––•—œ¦¬­«««ª¢œ ¡¢€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€$16574-++')395-*EJB8865:<:99=5E­¤  ¡¤¥¡¤¥¦ª¬¨¥ª¨©«©¨­¯©¦©§Ÿššž££œ—š›Ÿœ  œ™™–—™™•“”ŽŽ’‘Ž•–œ¡°²¤ £—–˜˜•—–Ž’ŠŠ”•—˜•Ÿ’bHUVRTUSUWUVXXWWXXXXXXXXXXYZZ^XTv¤¯|r^KFKMQSQQSPLOMKILOOKOOQTUVWZUTTTSPJFGEDEC@AELKIHHIJKOMMNLHJNMMLKJIIHMMPQQNMMQSRSUPOW`D1P\WI60?DDKF4*.5<CKLJJNNOOPNLJIKJHHHHHIGFEEEGHFEFFDDFDDDEEFGFDGDDGFCBDGIHFECCFIFEEFEEEEGHFFFGFHGGEDCBB>@AA??AD@ACCBCCAECBBBCCCBCECDRcjdgggkhcbjihkcB&"!#!"Cq~~qVUu}hWYUTVRRQOMGFKRQPPPOPRQSTTTSRPSQORUSRUTSSTSQRSTRPPPNMMHHEBEE8'"" !%'('&')*)(,&8^x~€ƒ…’†Q0564:32>=597 ""(0/%+2.2>6#&>GC><ENKGFIMOO;$ # #8@>Ro€‰‹ƒŠ‹’’…ˆŒ†Œ”‘“ˆ˜”ŽŽ‘’”—“Ž‘™–‹——ŽŽ——Šˆ”—Ž‚–žqNRYWYYVVXVUUSQSTK???>CMOKKHKLDQqpW^f]X]^^\WW]a]Z]aa^\]`_[WZ\[_ZI\Ÿ˜”•šš–’žž¢¨¨£¥¬ª¯®¨¦¥¥§€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€.=DEF@62+&(394,)BSG4;>68=:8;D87h¥²¨Ÿ©ª¢§ª¬©¨ªª«¯¬««ª¬´´©­¨£ š›Ÿ¡žœ ¢¡¢§¢¤¦££¥¤¤¡š™™˜–•“”•“”•“«Ê×ŪŸ™–——–—’ˆ‘”“‹ˆ›œš”’cKTUQRTRTVWY[[XUVZYYYYYYYYVUW[TT{¥¨ŽvdWROPMRTRRSQLMONJGHJJEJMMOVZZYYYYYXWVWSQPLFEICDEGGHGGHHILMLHFGIKIGGKOLJIJJKQZVWTUXX[ffP*-G[V?2:<@GH>1+,4:AHJJMNMLNOOLIIJKIFIKHDFEFGDBFFGEDFEDEEFEDDFFDFFFCCEFEFHFEHIEDJGEEFEEEJFCEFFFGJJHFDBA@@AABAABB@@AA?@BB?CDCC?AHBCECDRckllgfjhddijmo`>$ # ,QyyxrWTkxgWZVSVQQQSNEFPSPNPPNOSQTUSQRSSRQPPRSRRLORTQOPSQPPPMKKNDEB@DD4!"!%(&%$%'('&,&?iz{€…Š•‚H*486:44A?698!&.$./#-701?8%,<AC6$&A=<>?AFMKB5%"!$,;Zr{…Šƒƒ“”Š…Œ“…‰ˆ•‘‡š™‰Š–˜Ž‘“’–“ŒŒ“”ŒŠŽ™ŽŽšš‹…¡”„–ŸsRWYXZ[WWYXXYVSSTLA=??DMPLJLOK?QwqMVa_^^WW\Z[]ZVY^^_\[]``]Z^_]_YHZŒ—•““•–•’• ©§¢£¥¢¢£¢¤¤¢ €€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€H†¦¡špA3'.-/4'(CRK<6:A:4::1;?8L’±¥¡¬§©«¨¦¥§©¨¥£¥©§§®²°°«¤¡¤¤ŸŸ¢¢Ÿ ¢£¥¨£ £§§¥£¡¢ ›™›š–“’‘’“’‹’°Ð×Ä­ ž™–””–”†‹‘‘“‘•›š“’žbFPURQQPRRRSUVVVWXZXVWYYWUTZ[`SU„¦¤‹t\NMMRRTVUPLKKMLKKKJGEFEGLOPSV\\[[[Z[[ZZYVSPPQPMKJJJHEGIHFGKNMLKLLNQSUWWXY\_bdfhgdejmlpY,>aV80?@BJL<+**2<BFILNOMMOOLJKFLIEGFCFHBCHGFGHGCBFHECDGHGDDFFEECCEFEEFEHIFCCDEFGFEGIHFGGFFHIGCGGFFFCACA@@ABAAB@AAAAACDB@AECABFBBCBFVfjigffdbdiijksa8$!!!$&!5i€uwmUT]^_^[VPMRSRNKGHMRQPQQPQSOQTTSPQULQUTPPSSSRPQRRQOQPQQOKJKFIIEB</# ###$%%&&(*IoyuŒˆ”{D.438;739<;<0$:/--#0711=;*7B=4'%105<<79@EU[G- "&$+Ny‡Šƒ‚Œ•Ž…‹…ˆ„–ˆŒ”“Œ—•‹Š”‘Ž“˜‘Ž“—’‹’’”•’‹—”ˆ“”iMU[VX[XVXWSTVTXVHBA>?EJKLMQNN>MypEPc_Y]YX\[YX]c^Z\\\^^ZWX]`]\`XH\‰”Œ‹’•—•˜˜œ £¤ —›žž›œ¡¥¤€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€gªÄ»»¿µžR.%0..21FYSFA>;3;==5;=6B{®°¥°³®ª§¨ª¬ª§¥¦§ª««®³³­«¦£¤¡›—˜ žš›¡¤¤¦§  §§¡ ¤¦§¥Ÿš˜•’˜”Ž‘•µÉÉ»­§¥›š˜—˜—‘‰Ž”–––’Ž’–“˜ŠaIQSQRTRTURTUVVWWXYXWWXXWUWYX^SX‡§ ‡nYPTPMRSQNIGGIJMPOJHILFEGKMNORXXYZ[[[[YZ[[ZZ[\XWUUTRNKIKJHHJKIEGIMOQRRWWWXY[\\`cdbceebaS.E`K/3>ADJI9**+0:CHJLOONOQQNMNIHIJIGGJIIHFEFHGEEEFFFEEGFEEFFB=DBACEEB@DCDFECEIGFEFIJHDGGFGIJIEFFFHHDAA@??ACCA=@AAA@ABCDAEF@CGBAACCGWfkhgghecdhihir^4"!##"$#Ht€sxqYRZ[[[YVSQSQQRNDFPURQRRQPPTSVWQORRRNOSSQRSSTTSQPQQTQOONLJJFGFC?7+! ###$$%%%&0Uwzw‡‰“zB-437:62:<;<0$)<3-,"06/0<9("3DA," '-..16:<@PbZ<&#5]ƒŒ…†‘ŠƒŒ•Š‚‡Œƒ–†Š‘“–˜‘‹Œ“–Š’”‹–“ŠŒ”“‹Ž”•’›—‹––jMU[VX[WVWWUUUQUUJED?>ELOMMOOPAMwlBH^^X]]\\[XXYWZ\Y_\[\\[]``^^c[K^‹ŒŠŽ““”’’•—›˜“”—šššœŸ€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€c¬¾©­¶º¹ _+ 'CU<=WSHG@>?<9;9;>9;\œ±¡¨®¦¢­«ªª§£¥©¡£©ª«´¸°®ª¦¡™šœ˜šœ¡¥ œ ž £¥£¢££¥¥¡š˜–”Ž‘’’œ±Äĺ°¦žŸžœššš”Ž”•”•“‘“”™—‘—‡_JRSPRURTUTUVVUTTUWXXWVUVVYWV\R[©’oZOTSOQRSQMIGGCFHHGFGIKHFFGILPSUWYZZYYXY[[ZZ[\Z[\]^\YVRTTQPPNKNNNNPRTU][XVWY]`^aa][YUPTO2>R;(4=AGJE4)*+.8CJKLPPMLORPNNNIKMGFHFEIIFFGGGFHHEDEDABCDDDEEDCEEEEECAACFFEEFFGEEHJJGEGGFGIKJGGFFGFCBBAA?>@CC@CCCBAABBBFEACDCCA@CEIXglffhihddgjfgqZ/ "#$!"(Ry}r{v^UWWWVVUUTRQQSOGFNVQNNPQRRSQSSOOTUSQRRPOPQQRSSSRSTUQNMLJIIGECA;0&  ####$$%%&:c|wv‚…‹’wA,5459529<;</!*=; ,("15-1;5&)7>1" &('&%$&+/1159BQXG0! +5h–†x˜Ž†ƒ‰•Œƒ‹“Œ‚Š”Ž‰‹‘‘•™“’“——ˆš“‹Ž˜•Œ”œŽ“—‰Œš•Š–—jMW[VXZWUWWSTVSXVICC=;BKNLJHKPAOvmFB\_\a`[W_]][YZ_^_\Z\^\YX[YZ`ZJ\‰•‘‘‹‰’’’‘“•’Ž•š™™›žž€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€eµÁ§©®®µ¸¦t3@†17URJJ?;E?8;><?>8G‚ª£¡©¦©¬§¥§¨¦§«¤¦¨¤£«­¦££ ›––™›—›ž¡¡ž›žŸŸŸ¢¤£žš›žž›˜–“ŽŒ—¢±¾¿·®¨¤¢žœœ™”’‘’’’’’‘’“—‘Œ‘ƒZDSTPQSRRQPRSTSTTUUWYWUSUWVTTZO`—¯„si\PSSRPQSSQNKJJJJIHFFEJIHIHHHHPRTVWWVVWWVVTUVYYZ[]^_^]Z\\ZXXURSRQRTX\__]YXX\`cZ\[WTSPKa_A,:2)1<BII>/(*+-6ELLLQPIGLQROLHGIIEHKFFHGEGECEDEDBCFEAEEECBCEGHFDDHJGABEFEDFGFGFFIIGGHGGFGHIIHHFFGDDCB@BCCBCBBCCCA?>??BABCABCBA@DHLXflefhkiedglfhqV+ %!##".[~v|nWPVUTSRSTUSPPRRJGLTPMNOQRSRSSSPMLNOPTSONQSSQPQTVTRRPONKHHJIEA?7+"  #####$#$(Emzot…ˆŒwA,554741:<<;/);>%,(#45-3;2$,5.%-5692/064-,2*/335@MV9'#=|Œ~†˜’ˆˆ‡€Š“ŒƒŒ–’—œ‡“™‘ŠŽ˜šŠ˜“’–‘’š–Šˆ•‘Š”„“•jNYZVWZWUWVRTVUXWHBE?>EMPNMFJOBOvnLPa^X[\\Z]\Z]_[Y^`]Z[]_^][Z\c\L_‹™““”‘ŽŽ‘‘’’”’Ž—›˜–šžž€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€_²¿¦®¯ª¯§º²hl«~)9PNMSE:?F>@C>?@6Ap¦¨›¡¤¥ŸŸ £¢œ˜˜› –™ŸŸž £ šš™ž Ÿž£¥¥¦¢œŸ¢  ¢œ›š››˜“•““’Š“¡¤«µ¸°¦¤¨£œšžœ•’•’’”•”‘Ž‹Ž‘ˆ‚\HRUQORSTPQRTSSRSSTVXVTRTVQQUXMg£³d\XTUTPPONNOPQQKLNMKJLNJKLKJHGEJLORTVVVWVURRSWZZZYXXYZ[Z]^\[\ZVSTUWZ\^_[[\\\[ZZTWVTUZ\ZfgL!  ./-1<BJG9*'(+-8FMKMQNIGKOPNNIIIGFGGDGHECFFEGDCBBDFECHFDDDDCBDEECCEFEFDDEFEGKHFFGGFGIHGFGGGGGFEHHFDD@@ACDCAACDDDBA@ABA@ABBBDBBAEKOYejeehkjeehmgjpP'"'"! #1a{w|hTRWVSQPQRSTNNUTIENSRRSSPOPPQRQQNNPQMOTSQQSVROPSTQMNNNNLHGIKEA<4("" #####"#"*Nrvmt„‡ŠyE,553521:=;;.!,;;!*(%86-5<0#$')4A>;FF;6;@??C>635417CNB8$H|‡„“’‚‚Ž†‹”Œ…Ž˜”…Ž—„‰“’“—’Ž’˜’“—“Ž’˜˜Ž•‰”Žƒ“–hMYZUWYWUVVUUUQVUJEA=>CIKKLLORBOtmOYb^[\Z\^ZXW[a\X[[ZYXY[\[\Z\b\L_Œ•”““”“–’’•–––’“–šš˜—šŸ€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€Z«¹£©­¨«¤¬µ€}¢o@NUINYODB?;;@==D<:cŸ©–š”‹’™›š™›ž¢ž™œžž£¥¥¥¤¡››šŸŸž¡¤¢¢£¡Ÿž››œŸ¡ŸžŸ™–•˜””——•—š ¥°¸²¥ ¤¡œšœš“‘•’‘“•““’Ž’‰€]LOUROQUVRPQSTTUVWUUVUTSSTNPUVKp¬±uZUWPQRROOPRUWVUONMLLLLLMONMKKIGEGIMQTWYZYVROPRUTTSRRTWZY[\[[]]ZZYXXZ]_aaa_^[YWVXZYWY_cb[aO)"./.4=CJE4(%&)/;GKKLQLJJMMMNQJIGHIGEGFGFCFIHFEEDEEEEFDCCDCBCDFDAACFFDFFFGGFFFIFDEFGGHHGFFFFFGFEHHDED@B@?AA@AC@AAA@@AB?EB?DFCDDBGNQXchffhjiffjkhllH$#&! #".b~urxfXWXVTQPPPQPOQTQGFOTSSTSRQSTPPQMNSTQPQSSSRPSQPPRRQONLKMLJGFIE?9/&"" ####""!!0Zvuqw~‚‡Ž~K.562310:=<;-#0@<""&:7,7<-!$6C@9=HTMB;<DMRMTUJ>72-<JJ7%TzŒŽ’‹†Ž‚Ž•‹„Ž•‘‡Œ”‘‡‹—š‘Ž‘—•’”•‘Š›™Ž’•’•ˆ‘›’†——gJWYUVYVUVVTUUSVVIDB@@FKMMOMPPBQunRW^^`b]\]]ZZ]]a`[[^_]\\\[]ZZ^WI]‹–‘”––—›˜–—˜”™››œž€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€]«¼¤¤¦¤¤ŸªºˆzšvHIB24;3-++.,223><4Y•ªž¢˜“› œ ¦¨Ÿ¡¥¨««®²°©¥¥£ Ÿ¢Ÿ Ÿž¢¢¡¢ž¤§¥£¢ žŸ  œ˜™žœ–’”š›™–¥¥ª°¯¨¤¥ŸŸ™–•”“‘‘‘”•‘Œ‹„‰|ZHNTROQSUSSSUTTSTTUTSSTTSRPQUSLy³¨kTUTJLRSPPRWZ[XURPNNOQPPNPRQPOMIFFGILQUW\[YVQNMMKLMMNOSVUWWUVZ[ZYWUTW\bfgd_ZXWWX[]]ZZ^^\ZaU1"+,/7>BIC1&%#'1?HJILPNJHJMMMNKIGHJHFHHHHGFFFCEDDEFFGHDDEDA@CGDDEDCBDGDFGFFFEAGFEDEGGGHGFGGFGIHFHFBDFA>?ABBA@@BBBBAABCCABBBDEBFDIQRWafgfgihfhlggkf? ""!!# '[€xop^TQVUTRQPPPMRSQMHHNURPQRRTVRNPROPTTNRTQPTVQOPPQQQRSOLKKJHFFDC=3)$"! ###""!!!?hxqvyx€ƒŽ„R0462200:><;- 0G@%&;6*8;)!0@A96>FKSXOA;BJTTV\^WI>56:>:&/^Ž”‘‰†ŠŒ„€’ˆ„•ˆ“šŽ„˜’’Œ“™•Œ˜•Œ”‘‹‹•Œ„Žœ“‡——eHVYTVYVTVURTVUYWHAB>=CJLLLJMNATwmQX_\]_]__^Z[\[^_\Z\\ZY]``c_]`XJ_Ž™’’–•“’Ž‘”š›“Ž’——™––šœ™€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€\«À©¢¢¢¡«ª½phQ5.*!'( !" &!$%$125UŒª£ ¤Ÿš¡£žž¤¥¡Ÿ¤«§£¥¥¨ œŸ ›™œ›•–Ÿ¡œ™ Ÿžžœš˜˜—šœ”Ž“œ•——–••–—žœœ ¢¡™¢ —”——‘Ž‹“‘’ŠŒ†‚„`KOTQPPOQQRSTTSRRSVTRRTUSQSSUPM€µ jQNNHPSMQPOQTVVTSUVRMKMQRSRPOQQOKIHHILPRY[\[WSQPHJLLJJKMNOOMNRTTSSRRTWZ\`^[WUTUUTXZYZ\ZW[aW4 "(08?BIB/%%"&3BIHILPQGAEMOKGJJIGHIGEJDEHDADFHECCEEEDFDCDDDEHEDDEDBBEECBCDDEGDFGEDFGFHFFGHGIKFEHHCEE?>BDA?@BBCCCB@?@ACB?AEA>CHEJRSW_dhgghgfindfja9!"%"#!GzzmjZSOTTSSRQQPPPPQNGGNVROOQQPPNNNOPQSVSSSRQSTPPQQQQQRSONLKHEEGAB;/%""  ###"!! Ntxkvyv‚Ž‡V2463100:><:-0I?% %;5)7:'-8<>@98GPMPWSD857<DLSY`eYI>8IF-;w˜‘€…Œƒ’‡ƒŒ‰…‹–—‹“—†Œ—›‘‹’›•‘“–‘Œ–•Œ•šŽ„‘˜ƒ••dHVYTVYVTUUUUURVVIDD><CLOMKLOOCTuhJV_^]^^^Y]\[]_ZY_]__]]``^d^Z\TG]Œ ““˜›™’’‘“Ž‘‘‘‘’•˜›€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€R§´š¡¦¥«±ª‘jG3*& !""#"&*,'I†¤•“—‰””““•—™šœš›ŸŸœž —‘’”“Ž“••””–””–“”••˜™“Ž“Ž’‹ŠŽ”–’Œ”—–•–—–”‘ŒŽ‹Ž’ˆ‡Œ‰‰€_JMSQOQRSOQQPPSVSOQRTTSSTVOSTNSŒ¸›fOQOHKKOPLLQVWVVZWTVVOLRTRNMPSOINPKGHGIPPUZ\_`\VMMMJFDDEEDFKLKKNLRUQNQVXUWWTTWXVXUTVXXY]XXV: (49=EH=,"!$(5CIKMONI=@KLJJGEIKIFFGHCCDEGGGGIEBBEFDBIGECBBCDDCCEECBBDFGEDFGGGGGFFFEEIHFFIMKFIGGJKFCBBBABC??FE@ACAACDCDC@@CCA?HOOQYbffjjfcbejfgjU/!% ! "!1^q`TSSUPTURQTRNPNNPMGHMWTRQPPQSROMOTWVSTQSSNRVRRSSQNMNOQNKKKGEGA;.%%$"# !!!!!$%)&1axvqon}„ƒ“’f5.964,.>>88+0OA%(&*D2'89+%09<@;6EKPRPRVSL>33::AQ]Yc^HLYE*\•–ƒƒŠ~—„Œ’ˆ•’ŠŽ”‘Š‹–šŽŒ“”“š˜‹••Š‘”’”‡—”fLU\WXZVTUUTTTRVUIDB=>EKJJKJLNBVwjRY[X\`^\Y]^[Y^_]\^^_`_\[]^[ZbXHdš’“˜——˜™“Ž‘––“—‘•–’”š€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€R’Ÿ•š™š†gD0(#  !!"""#$%'(())+:g“˜ŠŠ‘ŒŽ’’“”–•‘’“’“‹Š‰‰‹Ž‘‘‘”ŒŽ–”ŠŠ”‘‹…‡Œ‹ŠŒŒˆ‡ŠŽŽ‘“‘š›š˜™™™•“”•“’Ž‡†‹Ž‰‹`JOROPROOONOOORTSPSRQRTUTSOSSMV‘ºiPPPJKKPLLORSTX]YTUWSPRTRRSSQPQROOJFHHFJPPSW[\[Z\WROLIIKGEFIIGFHFJLLLOSVVTQONNOPTSUWWUUXRST> (49>DD8)  *7>CLPLIJ>>FFEGGHKLJHHHGCEGGFFGICEFECCEHGFDDEEDBDCBCFFDACDEFFEDEGFFFFGFEIGEGIJIGIGEEDBAA@B?=AB@@C??B@@BCBDCAACCACKPPQX`e_`ejjeejjmnU."$ ! F[N@DOXTTROOQSRQMKOOHFLQSROORRPMOPQQSVYVTRQQQRSOPPPOMMLJLJGHJHEA7+(&!  !!! "# (#:gwsrrp{‚ƒŽl:.974.0==:9*0M=#)*(=3.4-#,::;;:BMOQSUWTQSF>8.-5<LWj[CLN>J€”‰…†‹Ž„€Œ•‘‡“ˆ”’Ž‹”‘•˜”ŽŽ‘Ž‰Ž—˜’‰‹‹…‹”Ž‡—”fKUZUVZVUWVRUXVXUIDC>>FLLKKJLNCVwjRY^ZZ]]]Y[[Z\__]]_\[]^^]\c`]cWE_‰‘‹’•“•”—••”•˜—“’š˜›  š˜š€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€F€‘†‹|YC2$#%# !!""!#&()(&$'/Ch††‰€„‰‰‰ˆŠŒŽŠ‰ŒŽŽŽŽ‹‰Œ‹‹‹ŠŠŒ‘Œ‹Ž‘ŠŠŽŽ‹‡ƒ†‹ˆˆŠŒ‹ˆ‰Œ——’˜£›š™™—”‘“”“‘’“‘Œ‡Š‰…bJOQNPQNNNRRQNNPQPSQPQSTSRQSRL\—ºiPNQMLJMPNNOPRTXUUZ\XWWUQRTTPLOTTSNKMLHHIHLUZZZ\b]YXWSPONLJIHEEFFEFIJLNPPLIKLKOTVQPUZYTQNOVH#(49<CC4% %*>DDGPOIJH?AGFCEDHIIHFGFDDFHHFEFHFEEDDDDDBEGGFCCDCDCCEHFCFDCDEDEFEFFFFFFGHEEHIFGHEFGFFEDBCA?@CA@BB?@A@@BBABCBBCCBGNRRQW_dhddggfhmemlN+$'!!! 0?;6ARWSRRSRPPQPPLLPLGJQOOQQNOQURPPRSSRUUPOSPMPOPPQRPNLNLKKJIGD;0(%#!  !" !"&%Jotqtuqy„†vB.77303<<<;( 6N9!)(.@4##'<=::<CPONPSTTTXUUQG@=91=TI6MZF:cŽŽ„‘†~Š†„—‘Ž‘Š‘•‹Ž”•’“˜“Ž’—“‘“—‘ŠŒ’Œ‡Ž”†–“eLUXSUYWUXXVWXTUSIEE>>EMNLKILODXxjQX`]Z[\]Z\Z[]\ZZZ[\]]^_aa[[[bWIe”“”’’’‘”–•”‘”š›ž Ÿ›šœ€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€It……~bC.$%  ! ! !!!!! !$&'(''())=cy|~{ƒƒ€€ƒ††…†‰ŠŠ’—’Š‹ˆŠŒŠ††‰Œ‹Ž‘ŽŒŠ‰‹‰††‰‡‰ŒŽŽ‘“›—™›–™¡Ÿ››š˜”‘‘’““““’ˆŠŠ‰dJLRONOPPMNQSSRQPPOQRRPOQRRSOJ`œµ—fPLONMIHKJJKNPSTQWXW[[VTXXWWTQQSUURQQOKJFEHOUX[]Z[[\]^\ZWURPMKJJMHGJKIHJJGFGHIKNMORSOJKPPTaX0'498BB3$'6CLHFKLEDND@ELIFDDIJJHHIGEEEEFFEEDIEBCEGDAADGHEDDECEFEDEFEFDDFGFEECEGFEDFHEEFGFEFHHIFBADC@C@@CB>?EB@ACABDC>@BBBCBBJOSSRV_fhggfegheeqhD% "" ! #%/43CTURPQUTPNPMPLLPLEIQQPOMOPQRRQRQRRRUVSRWTNORQPQRQNLIFFIIHEB7-&# !  ! #%.Ysrrwuov‚…‚‘ƒL,37324<:=<'";P7!*'1D4 ":A869CSQNLMPRSPSWXUTSP?;9.5V`UGMu‹…Ž‘„”‹†•‹–‘‰“ˆ‘˜”Ž•˜‘Œ“š•’“‘‰ˆ’Š•…•’eKUXTUYVUWWRRSSWVICE><EMOLKHLOEYyiP[b]YXY]]_]^^ZZ\\[^_][\]\]^^bVGc•Š‹Ž–•–’•“‘–›œœžŸŸœšš›€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€K{|bN3%)!"  !!!!! ! &%$$%')*(*>]qutu{}€‚……†‰‹ˆ†Š‘‘Œ‹Œ‹‡ŠŒŽŽŽŽŽ’”‘‰ˆŠŠ‰‡†ˆŒŽ‹’•–™™š›š›ž¡ žœœ™–’‘‘ŒŠŠŒŽ•fJKQONPQRNNPSTRPPQOPQQONOQRRNHf ®eTLLMNKGEIMMKLOSWZWUZ^[XZZYWVVUSQRTSPNNMLKGEIPVW[_`ZZ^`^\[YVTRQOQLILMJGGGIJIIKKIDFJJEBGOZ_nh<&4::@=-%1ERJCFLIDHNAAHMKFFGHIIHHIHFEEEEEEDDDDDDEEEEECCCGGECEEFFECDFEEEDFGFCDDEEEFFGCFHFDEGGGGEBDGGC?@A?>?@@@?ABABDB=?ABBACDLORSRV_headgeefcfqc;#""" " +32?SVUQOQPNOSRPMQVLFMRSRONNPPKOSSQPSURSRRTTPNSQONNMKIFGHFEHE:3'#$"!"##""!  %$7erntxsmt„…‚”X..7324;:<;&<O5#.)7B-(?B;8<DSUSNOSSOOQROOPRTL=8<ITSXUDXŽƒƒ†Œ’Œ…”‘‰Œ’‰‹“•Ž—•‘Œ“™”’“‘‘ˆ‰’‹‰Œ•…”‘dKVZUVXUSUTUTUSVTF@C<;CMNLJHLOEYxiPY__^]X[\\[^\YZ^\^____`]YbdccSC^‡•‰‹‹‘“’“™žŸŸ¢£¢ žž€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€Ds_0'+*%%#% ""!! &$"!!#&'*4Tmhdmtrtw{}€€€‚‡‹Šˆ‹‘Œ‘ŒŒ‘‘—™–’‘‘‘‘Ž‹‹ŽŒŒŠŠŽ‘’’”•–——––™ššš™———•’’‘’‘™‘gHLOMOQOPQRQPPNMORQOMNOPNLQQLHl¦¨„gXMKLPPLHKMMLMNMTRTUVZ[UWYYWVXXVSSVVRQSSPPKFFJKIV]^[X\][\]\YWVTQOLKLNLJHEIKIIKJFEBCJQV[_ehtoD &3:??4')<KPFDJOLMMF;AJOLECEFHHGGHGFDFHGEDEFDEEFDDDDFDBCDFEDGEDEEDDEEFDBBEECGDBDGHFCBFGEDFGFJJIIIIEBB?>@?@A@=>@A?BC@>?ABABDIMORSRT^hlbelfadego[5&(&$!! $17FUUSQPQPOOPPMIOTLDHRQRTQNMPNOOQQRQQTSSSSUUQTRPNMLKJKIJHDE@4)&$$#"""!""##"!! &$?kpktxpnt„…‚’”h8,6312<:98%!BQ2#/(<A$.=849:=KQSQSWUMORRSSQOSIASkwwmhhhg}Ž‹‡†Œ‚“‹„‰Œ’•‹ˆ“™‘”’Œ“™•‘‘’‘Œ‡Ž’Š†•„“cKVZUVYTRSSWWXTTQGCB<;DLMKKHLNDWwiPX^^`_ZZ\\^__\^^\Z\^___][\aabSFcŒ”ŒŽˆ‡ƒ„Ž‘“”’”œžžžžŸž€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€8E3%)))'"!!$"""!!  !#%),/0+Ejugemkgiq{„‡ƒ~{|‰ŽŽ‹†„††ƒ‡ŠˆˆŠŽŒŠŽˆ†ŒŽŒŒŽŽŠŒ’”˜˜žš—–”‘‘—•””•”‘Ž‚‚‡ŒŒŠŒ’—”“’”hGLNLNPNOOMMOQQPPRPNMMNNMKOOLIu­§dWMNPPPNIIHHMQPMMOUYXZZVZ[[[[\\\XVXXUUXVPPOONKGCHKQWZ[\]Y\][YXTOMNONOONKIJJJIIHGLQY_aclvnkqlH %4:?<0'0DNJDFLNLMH:9ALPLD@BHJKJHHHHCEGGEDEGGEDEFECACDEDBBCEFEEDDDEFCDEEDDCBFEDDFFECDEFEEEFGFFGGECEGE=>CB?AB<=@@@BC@AABCCCHNQQRSQR[fgdii__d_lqU0&'#" ! ! -;LVRNQRRQQOLNMMORMGFNRTQOPPNNNONOPQRRPQQPQRQRSRQOMLLHCEFB@;/%)(" !  !"#$$$ !&$!Elpgrsnrv€…Š“yG/44.0<:65%&HR. .'79##'-%'/.1<AEINRRNQRPRUQR[HC]zˆ‘‹~…”‡}‡Š‰††’•‹‹•’ŠŽ–•––Œ“•Œ”‘‹Ž–Ž‰…Œ‘ˆ„•„’cKVYTUXUSTTPSVUWTIDA<=ELMLMHKMBVviQ]a\YYY_a[]]\]\[[[]`a_]\]Z`bbSFd‰ŽŽŠŠˆ‰‘‹–••™›™—˜šœœœ€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€)()'$+(#$""(-(#""! #+3:@CE5Nkpggkhdit„‘”„†„‡——’ŽŽŒ‰‡‹ŽŠƒˆŠ‹‡ƒ…‰ˆ†………‡Œ’‹Œ‰ˆ‰‡‚ˆŽ’™Ÿ ™’—˜”•›œšššœ›˜–‘‘•š˜”–›—•”Ÿ–hFJPMLMNOLONORRPPQMOPNLKLMMNLL{³¨_TMQTPNLIJIGHLMLFNSUXVV[]ZY[\[ZZZUTUSVWSQOPTTOJIJEFPUTUZX]^\ZXTNOSSQPQPLQOPSUVX\aeknlilrrjkgH %3:;:1+5IQKDHLMMJA8<ELNIB@EGJKIFFFFCDDEEEEEDDDEFFDCDDDCCCCCBEFDBCFGFEEFDBCFDFHFCBCFFDEGGEEGCGKMHBCG@>@A<>A@=>AAADEADCCEDEJQSRSSPOXc]abRH[jaijL*&($$!"!"+6EOQQSRMMQQNONOTSLHIOPQQONOROOMMMOQSQPQRRPPPMPQQNLJJJHIF@A:)%(&! ! "$%#! "&%#Ilpdnpnvx}…ƒ‘ƒT235,.<:43%&HP*/*#7. "$% '+(1014;BIMOVURUWPO[JAXv‚…„†|†‘…‹’’ˆ…‘•Œ‚Œ•‡‹““Š“˜’Ž’•”‘Ž–”ŒŽš’‰Š””ŠˆŽ•ƒ’ŽcKVVRTWUTVVWUTRTRE?A=>FLMMNIKL@TuiQY`]Z[]`^[\ZZ]\[_]\\_`^]]W^aaSHg—‹ŒŒŽ‘‘’—™—–¡œš››™—€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€%*)'#"& ''$'&%#(% ""(1BQO@77?atqqtuxkt}…Ž–•‘ŒŒ‘“Ž–ˆ‰“’‹‰‰‹ŽŠ†‡Œ‹†Š’”’’–œš¡¯·¶¦¢§ª§ª¯«§§§¦¦¦¥¥¡œž££—“’Œ’„\INQMNQQPNOOONNOQRPPONMMLLJRFSŠ´«†cNKQOLKPSOJHIKKKNLLNPQTW[[\]^]\ZYWTTUWXXXUTUTQQTOKIKKKNSXWXZ\[XU[XXYYWX[``acgkoqqlkopmklqa[`P% !-<85,'4JODELPNONB38ISOHDA@HJIGFFECCDEEEDEEEECCEEDECEB@BBACFFFEEDCBGFDCCDEEDCEHGEDFGFEFGHHGEDDEGFDBB??ABBBC>;=BB@?=@@BA=?DCB?=?FNUXT]X97]menj@"$#"'$ !""'7IRQORRQPRQNRMLRSIEITPMOSROONNLLNMOUSQQQQQRSQQQNLJKLFIKHB:0)$#"!!!"#"##!"%#%$(#&Mpllmoopxˆ„ƒ‹‘c(*2-//+0.!+@F' 0(#/()!" !%(,))-/4<=@IHRUSUSSZJ=YyƒŒŠz‰‘Šƒ†„†Ž”Œ…‘™…Œ’ŽˆŽ“ŽŒ“—•‘‘•˜”Ž’™•’™“Ž•”Œ‡‰•‰ƒ”fNUZYXVUSRRTRNOSPFAC=:DMMMKDJNCWufOX]Y_`\X[[_^ZYYZ]]\]^][[]a^\aTIh”ŠŽ‹‰‰Ž”˜˜–š ¤ž›žŸ˜€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€*+#"&%$!)/(#)++-+'%&+5?EKJ@:>@?^{‰ƒ€‚ƒ†ˆŠŠ‰Ž–˜•‰‰‹Ž’•œ—Ž‘’“Œ‹Œ‘‘‘Œš›¤¤£¢¢¥¨¨§£¦«­®®¬©¦¢¤¥Ÿ ¢ž™˜–”‘Œ‹Š‰‡„~}‡‡…‚‰}VDMPKKMNONNOPQONMMPOONMLLKKQDR‹µª„fPIMNPNNONMLLLMMLKKNPQSVSW[___\[\[ZZZZXWXZZXUTUWTQNMJIIJRUXZZWUS[bfffijjdfilnonnolkllife]TU_S+ ,<>5+)7LOBEPQLLE:4DNQKGECBFHIHGFECHFDEEFCAFFDCEECCDFDCDDBEDDCCCDEFEFFGFFDCFFHIEBCFHGGIHEDEGGGHHGFEC@>>=;:::898679844895687:88?ISVVYVN:=[f`lc:!$!$# ""(8IRQNQRPPRQOOQRQMIHKQMJMPPNPLQQONNMOSUTQQSROTRPOMLKKKGCA?8.&'!!#"!# "" !"#%$(#'Lollmonow‰„‰–s5&0,,-,++(*00!$-&/3&")"#*..**-049=>EOTQORUG@Yx‡Š€y†‰ƒ…ŒŽˆˆ–ˆŽ†‡‘“ŒˆŽ“”‹Ž˜˜Œ•™’˜””’ŠŒ–•Š‡”Œ†–ŽbLUYXWVUTSSSSQTXTJC@<;EMLNLFJJ?VveM[^VZ][Y^]\\\\^^ZY\]]]]]]_]]bTHhŒ‘Ž‹‘‘Ž–™™›Ÿ˜˜™›œ›™˜€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€+) ('#,2.&%*,+).:FNZsŠzI0?C2:W~Ž‘‹Ž••“™šš™šœš–‘”–••™ž¡›œ›™—™œ œœŸ£¥¥¤¦£¥«®«ª­¬¬©¤¥§¦¡Ÿ›œ ”‘‹ˆˆ‡‚~~}{xusqpmmnnnprs|~}y‚wR@LOLLONOMNOPONMMMOONMMLKKMOBSµ©ƒeSMLKNOPMNPOMKLMQNKJKMQTYZZZ[\_b____^[VSSZ^[XXYXWWVRQONLKQW[[YYYU]fkorrnlkkklmoqsrmhd`YSQNQXO. *:;/#(>NKBHROJI<17KOLGFECBDHJIGFECGHIGECDEDEDDGGEFEFFDFDCCEEFFGEEDDDDDEEEEFGHHFDGJIDBDC=<>@ABA@>>>;878988936:97:=;=;:967::646?KQPLLHD9@\gejY2 %"! !")9IRQMPQPQSSPPOOSTMHJSQOQSQORQPMJNPPOURRTUQPPQOLKLKJHGCA?:1($%%#  !#! !"!#$$(%(Mnllmonow€††ƒ‡—ƒG$+*)+,''.(*')+!,?+)--.-1.2:=68:6587?:DQTTVRBB\v„Š†‚““ˆ‰‘ˆ“‹†‹Ž‹Š‘‘‰‰’‘“’‹’™’’”“’ŒŒ‘‰‹“”Š—^JUWWWVVUUTTTRSVQF@@>=GLJKJILL@WwhPY`Z]\YW\]\][YZ^^Y\^^]]]\[[^cSFf‘‰Ž‘’’–˜••˜š–“’”’’–˜•‘€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€%&-CU[cmnhdWKXknr‚”šœsI63Bj•¢Ÿ”“™š—–˜œŸ¡Ÿš”Ÿ££  §¬¬¥¨¬­¬««¬­­­®¯®ª¨®§¢¡Ÿ›˜˜•“ŽŠ‡‡„€ƒ|xzxrrxpooonmmllkkkjjiimjghlopoz}xwTBJOLMONNLLMNNMMMNNNMMKKJJLNBUŽ²¦„eSNMJMOQNPPOLJIIONMMMMNORSTWY\^```__]YTPMTY\[\ZYX[[YWXVRPSWYYXWW[UT[djmpqnjhhjnqfe`XTSOHFEBC>+ (76*.KODDMNJIF5/<JKHEED@?EHJIGGFFFFEEEFEEDEDDFECCBDDFGGFGEEDDDEEFDDEFEEDCGEBBBBBBA:46877845776578;868988989;:8;><667878::;:;@EHD@8?D8=[kkhO*!%! !!+8HQQLOPPQTTQPQQPPONNQQQSTPNPQPOONMMQOQRSSTRPMLJJJJIIFFE?7/)&&$""  """!"###$#)%)Lmllmomnu€ˆˆ†’ŠY'")**,&%/)+&"*')A,&)'>DFJBAKI?:<=>>;;38FMS]dJ>Wx€…y†—“……‘’ƒ†‘…ƒ‹‘“‡ŒŒˆ–‘Š’“’–‘’—’Ž“Ž“‰‰Ž’Œˆ—Œ_JUVVVVUVUVXWSRTOFA=;<GNLLKHNOCWwhS]c[\\ZW[Y\[[[ZXYYZ\^]]]_XZ_dREf“‡Œ’’’’—•–™™”’’Š‰Ž”–€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€(<d“Ÿœ¥§ª±°[ƒ¸¥¢¦¦¤«°©·§t70]ˆ”£¯·³­­®ª¦¤£¦¨¨§¦«¬ª¦©°²°¯¯¯®¬¨¤  ›™–‘ŒˆŠ„}{xtsrnkkljijiggggfgighghiiijkklmnopprolklnnn|‚ywVDJMJIJJLLJLOOOMLKMMMKKJJIJMEY­£†gRKMNONMQPPONKKJIKMOPPPONPTX]^][a`_^\YUQMLNTYZYZX[]ZZ[YUUTRRTUUT_UOQY`glllkigecbZYRJHJID<=::;0$25$%?RLCDMFEG>/3BIHFDDA=>HJJHGGHHFEDCEEEECDCCEDBBEEFFEDCBFFEDEDEECBB@@?>>=;978998952269;;;<<;989:9655755663588897<@@>>?@@AAB@?<;:5@I<:TeieF&#&   !,9GPPLOPPQTTQUPJKRURPNNORSPNQNNQRPMNPLORRRRRPNNNLJHIJGE>4-,)$%  "! !"#"$%###)'*Lkmlmnmmu~ˆˆƒ‹i-)-)*(%+-&!,#,6)"$+?BCH@BNWPC843;GBA=:9;PjYCVx…†ƒƒ‹ˆ…ŒŠ†’‘††‘‡Ž•ˆŽ–“‡‹––Ž—˜Ž‰–•’˜Š•‘††‘‰…•aLVVVVVVUVUUURRTPHDA=;FNKIFEKOCXvgP^bY]``[ZZ[YWYXXZ]^^\[[\\YZ^cREf‘’ŒŽŽ”“•›Ÿžš˜Œ•“€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€3>P³·¡ž«¨³¶sE¼¬©®°­µµ¥rM62;CFVjŠ§·¾·§³­©ªª©©««©¤ ¡¢ ”Šˆ‡…}xvsrpnjhihgggda_d_^bdccfeggffiihfhfehgfhlllmmmnndhkjhhmqy‚x}wWEIMKJKJLLMNOOMLJJMLLKJJIIILE\Žª ‡fQKMMMLMPQQRQPPPLNPPPQPNNNORSUVV`_```]YVSLHMQTUXUWYZ[\\ZWTPPRUVVVWURSZ`bccb_[UPLOMGCBCCA=A@AD9!-,,IKFFDH@CD4-;IKIEDD@>CJKIGGHHGHIHFCCDFCDBBEEDFDCDEBCCA>???=<:9:976679:9;;::<==9<=<;<>?;;:876777447899;<9=CDCA>HOMC@CDCBCC@<99;;@H@>Qbj_?"#$  !,7ENNMPQPQSSPPNNRTQPSRQQRSQPTNOOOMPRQONOSSPNPOPOLHEEFDE>0)*)$""! !"! !""#%##"*(,Ljmlmnlls}‚†ƒ€†“z;)-)'(())#!*%($$!3@@CFAEQPWWQI916CKMMI><IY]n{„‡‚„‰Š‡Š†ˆ†ˆ“’†ˆŠ‹’”’‘”’Œ–˜“ŒŽ•‘‹Ž–‘ŠŠŽ‡‰’ˆ„•aLVWWVVUUUTRTSTUPFB@;9DNMLHFKMCZygNU_\`aa]^XWZ][[[Y[_^ZY]_][[]aQFh“–ŒŽ“‘“—˜•‘—”–”Ž€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€&03Uš»³­»³½½uT–´°¼Ã±–pFB943,"%032?UoŽ¡¢•ŒŒ‡ƒ„}zwvsommmiddegeca_^^`bbabdfecba`db`adeeefgfddghffjgfjifjhhiiiiiibgkjfdgku€u{xZHHNMMMLMLOONLKJKLLLKJJIHHKKC\©Ÿ†dSNKHJMNMPTUTQQRNRTTSRNJIMPQPQUX[]`ceb^ZXSNLMNOONNPSUTUWUSPNMNNOPRRMLRY\\YUPKHED@>>BEEEEDD@>A7 ()*<JF@CFEAD?/3FNJEACFCCIKJHFGHGDJGCBBB@?DC@>@@@A>;<;99:8;:999:;;:;<=>===9:;9:;:868;:7347;;::<=>?A?>?AAABDABBAABAAOPDADDABBB@><;;:@H??VgnX8 !   !,7CMMNQRPPRQOORPMQUTPURPQRPOSNQTQMMPNQRQPQSPKNMLIGFEE??8,%%%"$!!$"!! !"#$#"!)),Lhmlmnlks|ƒƒ‚“ŠR'(*(#%*,%" $(#%:@?CGDHNSONRTL@92:HX`YJ?@Rir‰z‹”‰‹†‡ŒŽ‡…’‡‚ˆ‰‡–—’Ž‘’‘’‘‘”Œ‰Ž–”’—‹Œ‘ŠˆŠŠ‡–‹]JVYXWVUTSSTVVVVPGCB>;DKJJGHMNCZyiPU`\\[\]b^XW[]^^Z]^^[[\]]_\[_QHk”š‹“”“““‘ŽŽŒŠ˜™’’€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€)&>‹Á¼«¶¶Ä¼lV£Â²²»§mC70'.31,)))''.02E^htmijhb_`[Z]`^Z[``^^`bcbaec``acdcbddb_`ceab`^aefbabcdddca^ca`gfdighhijkllgiklkigfr~t{z]LHMKJJILLLMNMLLLMLKKJIIHHMJA\‘«ž„fTKFFMOLJQWXSOOPQTTQQRQNINQOJJOUVZ_ehe_[Z[XQNLJFJGFHHEEHFHHGFEGIKJKOPPRVWUPLHGGGHFIPTPMNMH<8<8'%5JQMI>:FEEF;0<NQD?<BHGHNJIGFGHEAA@><989:<;768::<:89:8:=<;;<<<<;;::::9876899:=A>9A?@C@=>DJHEDEEEDECACCCBC@BDC@BECAQQA=BDACBAAA?<96EN=<ZmoR4  !,6BKLORRQPRQNRTQMORSRSQORTRQSRNORPOOMUQNQTSOLNLJJJKJIG>0'&)'"#" !""!"#"!!#$##"!**-Lhmlmnlkr{€‚„…”f1&&'!,/')&"#+!*A@=BEDJNQNRWSPRP913<H[fcO>G`yŠ„xŠ‘Š‹Œ†‹‘‹ƒŠ‡‰’‹’—‘ŠŠ’•–™’’–’’•‘Š‹”“‡ƒˆŒ‹˜‰ZHVZYXWUTRRPQPPRNGEA>;DJHJJFLMAUugQZ`WY\_[ZZ[[]^[Y\]YZ_^Z\ab]Y]QJl–˜‘‘“™•’”•”’‘ŽŽ‘ŽŽŽ€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€.12e«¸•”¥®–]PŸŽ[;9>822001-'&'%%'()/6LYca[[]^W\ab_^_b_abb_]]^ba`__acddcba_^]\^`ba__accdec`^^_bbbbbcccaceecdhlghc_aca`l}swz_FFMLKKJMNLKJLNNMKJJJIIHHHKLD`•«…gVMKLNJJLTUPNSUQPSSTUQQUPPQQNKNRUZ`cfgeaYXXVQKJMKGEFEA?@=AB@>?@?BDGHIKOQUXXUUZ]]b[TYdaZ\_J=;;;/ (Hb^ME>AILA>95DQJE<:?BCDDB?==>;9;9;949=9;;9<@=;;;=>;:<;898:97:;98;9;AGHGFEEGGJMJLHHHGDAACGIIGFGEAEDBBBCCCCBCEFDDEDNNC@CB>C@@B?:8;=EE>>SlmP+"!! ,4?MHMPQPNNQUOQRPMLNQSRSTQRTSQRPPQOMPPQQPPOOONMJFEGFCF=+!')$ " $#"!!$$ #&'#&+%1Riiioqmlvˆƒ„€ˆ”u?",-!(3)"+%.1%&:B=?FFAFQPRSRQPQSUP>49<Haq^GEXs|ˆˆ„‡Ž‘……Ž†„’‚Ž–Ž†–‘‘“––‘‘”””–‰‹Š†ˆ—ŒŒ]ITZUVYUSTTRRQTZUH?@:<GKHIQHNLAZtaP]`[Z]\\YYZ[[[ZZ[[WZ^^]^_a[\aPGm–—‘“—™”—™š˜˜š•”•‘“–‡‹–€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€(-+Hx‡wnymC>`jbRGFMXZQ52100.*&!"#%%$'*1CV]\]\Z\^^]\^]\\]_bdd`\\]_abba`^^^^___`b`^^__]Z_`bb``ac]]\\\\[[UWYYXZ^abca`chhgoƒw{€dJHOMLKIKKQOLLLMMLJJJIIHHHGHB`”¨™‚hWPMLMKMLNOQRSUVRTTVUQOSVQMKJJLOPSW\bhhea^[ZVRRSROMLKGECEBACB>=>A@CGGFIOOW^beiiggc\^ffbd\K@;9<0 'IdZEA@DKF@=:>OVJGABFC=989<<;;><9<=?==;8?<:;>=<;;;989768;@CDDIKKKOOQV[][WLHMPPNLRJIJID?>AKNOKGFGIDFGFCAABCABGIGDCFNMFCDEG@ACC=78=>FE?>TllK%!" #!-0:KMLORQOOQTRQOOOONMQOOUXURSRSRSTQOPPQQONOPOMMJGFHGDE:*$((#! """ "##""$$"&)#2Tjkikoopv|€‡‚…€…“|B'4;.,+1%$-%67'#(B?<?DEBHQSQPQRSRPOTVO@48CVloXCLm„‘’’‡™Œ†‡Ž……‘Šƒ‹‘Œ‘•”Ž“—“Œ”˜“‘’“Ž‘”‘ˆŠŠˆ‘“ˆˆ™‹[ITZUVYUSTTTTQQTOGBA;=IOJFGFKI?Xs`N]`ZY[[]\[[ZXXZ[[[[\^]ZYZZW\cRFgŒ•”˜•–™–˜š—› žž  ›—“‘‘Ž€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€$03=OZXWYYM8B]ZBAHQSUXY<213//.&#%'&&%%$&(6L\^\[[]\[\^\X[YXY[]]\^^__^\ZXZZYYXXXW\ZXXZZXVXYYWUSSTYYZ[\\]]`abbbcfillkikoolrƒxƒgJBKLMNKLKKJJJLLKJJJJIIHHGFFAa•¦˜‚iXROLLLOMLMPSTUVSVWYZURTPMMOQOLKLMQV_fhfe`\[[\_bVVUTSRPLMIHIIECBCAFMMGFKHNV[afijggb_dghhZNE=9=4#HgX;<AFKC95<HRSLD@BC?;;<>===<;<<;:;9;94787679754428?<<EKPUVTUUUWUUTVZ^\YMIMNLMKIGGILJEDHJLMKGFKPFDAABCCBDDFHJIHHHQRKFDB@C@>??<98>FF??VniF#!#%#" #./6HOKNRSQPQRRRRPNNPQQTSQSQQUUUTTSPNOLNOMMPOMLLJGGIHEB6)&*&!!!%$"" !"#""#%!&'!4Wmkijmopu|‚…‚†€‘‡S+0?B?/)!$.$>;% #9F<<>BCCIQRQPPRSRPUOSWOID87MdqgJHf‚Ž‘ˆ„‹‘ˆ‰Ž‹‚††‡Ž‰‹‘•–Ž•š‘“–Œ‘“‰˜“‰‹“’‰„”‰ˆšŒ]LWYTVXUSTTVURQRNFCC>?GIEFLHKI?Zt`OZ]XVXX\]XZ\Z\][VY\]]`]Z\ZX\bPEgŒŒŽ’Ž–””‹Ž“‘’’——““‘‹€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€$-38COXQPTK7=NH>IVYTQUYF2/61/0)%('$#%%#$%&.BY`\WXZ\\\YWXZ\\ZXXYYXWWWYZ\WWVUUTTSPRUVTUWZ[]^_]]_afgghijkkmnnnoprtsrqoorrmtƒz„gFGLIIIJMMJJKMMMLLIIIIHHGGJGAd–¦™‰lWPOLLLMMONMPUTPPRTXYVRSNMMOOMLLNNNRX`dghd_ZXXZ\\^]ZYXUPQRQPOPMIJFDFEBDIFJMQV]bfdjhbbhifZSLB<B;$ FjY89BDFC62?NRNMHB@?;;>A>;;=<>CF?DGCDJB:KF9222141/;C;<GJMTWURPRVPOOQW]^\LIOPKNNIIHJOMHFHNLKKHFHMCDDDCCDELIFGHJJIPXTHBFEA?@A@=:9:>FG@?Yoe=##""%##"026EMJMQSRQQQSRPQQRQQQSQQSTRRSRRRROMNLNOPRRQNKLJHHJHE>1')*$!"" #"""####$&! &%!8\nfkmomlr„ƒ†€~Žc0(:FE0($#.& C; $$2CA<=?ABCIOPQRRPPQRWNPSQSRG<7BWgdUMaˆ†‰ƒ‰‹‚…ŽŒ…†’‘ˆŠ“•’”››”‘’“•“‘Ž‘–“Œ”‘‡ƒ–Š‰šŒ]LXXTUXTSTTVUSTWSHAB;;EKJIKJLI@Zt_N[`\ZYZ^_\]\ZZ]^^[\[\__\[][^aPIl‘’Ž‰‹ˆ…ˆˆ††‡ƒ€„„ƒ…‡…~€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€!).4?O[ONXL-+<BPSUSOLPWP4.84/0.())%%''$$(($*<R^YUTWZXUTUWXXVUUW\ZXVUTUVTTVWYZ[\Z]`aabeghjllllnpppqpqqqqppqsvy|}ywz{{€‚{y‚ˆ‚‡jGEJHGJJNNMMLJJIKKIIIHHGGFLF@d–£šŽpTLMLMLJNNMMPSSOQSUX[WTUWTRQPNMNONMLOU^eijhc]YXXZ\\Z[\ZVTWXUSRPNOMIGFEEEBDINRTX[bjmgfkle^XRHBHB,Ak`=9?@=>:9CRTOLJC?>=>@?7:>=?JSRKW`VQSK>KE4(+,,243=A69EDMTWUTSTWRPPUZ\[ZNHOQIFGIHIMOKDCFNLKLKHGIHIIHGFFGKKJGFGJLRWO@=BC??@@>=;:9>EG??[p`3" $"#263@JILPRRQQPNOQRSRQPSOQUTQPPSPOONNPQNMNQRPNMJKJHHIHD;-'*)!"#"#! !"###$%%!!&$%@amekmmnkq„†€|Š”h5-;C=.1.%%1+$F?#*6?C==>@BBBGMOQRQPOPRNOQQNPSSJ6?EFcp`N`„Ž–‚ˆ‘‚…Œ‹††••‰‹”˜•‘””Ž‘’–”’’˜ŒŽ‡„Ž–‰‡—ˆXGSWRTWTRTTRSSUYSHA>9;FNLIIIKH?Yp\L[`][[Y\\UX[[ZZ[\XY]\YZ]^[[_cRLo’•ŒŽ‡‡‰‰††ˆ…ƒ‡‚…‰‚tpu€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€ .12<LWOLXJ*,EWRPORQKO]V9-67111*****+(&'%'*$$7P[WSTVWVTWTQQUXZ[XZ\^_`__cdefhijkkjikmpnmnpqqooprtuwy{}€}}}€…ŠŒ’“•’˜š‘z„Œ„„‰nK?FGJNNNKIJJJHHIJHHHHGGFFJC>f—¡—sTJMLMLINIJPRPPTUVW[^\XYYVTUUQNMJKLNMOU[\bggc_\ZVWWX[^_][[\]YSQRQRRQPNIE@ADIKMPT\bhgekkdbZTMHMH3:iiG8;>997=JTPJIHA<>?CD@05=ACNVUPUYRKLC9>?1(/1/7:6<=6=IIOSTTUUSSURRX]^]\TMOPNMKIFLRQKEFKIJKLJHGILIGFHIIIFIJKKMNNNRMEAB@>A?<<>@;6<EG>>]p[/ #$&% #460<KIKMOPQPPMOPQOOPRSQSTONPQPORUSPMKQMLNNLJJJKJHGIFB8+&)%#'$! !  !"""#$$"!%$+Jgjgkhjpop|…€„€|…‘o9->I@,19.(41(JG&5HE?@?>@CCBGNQPOOQRQOMPPPSRRWE=[fJAY{hQ_ƒ‘Šˆ’‚†‹ˆ…‰ˆ–˜Ž””ŽŒ”Ž’”Ž‹“œ”Ž‰„˜‹ˆ—‡YGTVRSWTSTTORSSTNFC@<=DIHHKILJBYp\NY^ZYYWXWXZ\\ZZ\_]WVY[^_[[[]^MIm‘‹†ŠŒŒŒ‰Š…†ˆ…„††‰‹ŽŠ€zx€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€$00/8IVPKWG-6JUROKOUQLQW@028622,)'()'&%&'(&%%,3P[`\[_`]a``beggfefijkkjiklllmnnnsrqswyxwz|€‚ƒ‡‰Š‹ŒŽ’”•›˜––™šš™•““ŒŽ„p{‡€„lIFJGGJJKIGILLLKKLHHHGGFFFGAAm¢–ŽtTLOLLMKNJKQQLNTQQSW]][]ZWTSRONOKKMONLMPW]cdeeca^[YYZZZ[][]^\VSSVRPPQOMMNJIIJKQXVY`bcknhfZSPMPJ74epP77?:;7?NRJCDF?;<?CD?88?A=@ECFDIGFHB:?C5)021;>7896<GHMRTSTTSSVTSUYZYVRMKKPVRMLRVSLHHJHLNLIGGGEHJJHHIKJHHJPRKCCJIB?@AA<@@=;<;9<DF==]pW+!#$'(# 16/;LJJKLNPPPRPNNPQQOPOOPRTSPTQQROOOOSOMNNMLKJKJGGGD@5*&'"!$# "!"!!"###$#"%&1Skgglhhqoo|„€‚€~Œw:)<MC*.>3)63)LL) 9KFAD@=?EEBGQQPOOQQPOSSRRROPXB=a€~eNSypOb‘‘‡‹‰’Œ‰ŒˆˆŽ“’‘—šŽ‘—˜‘‘••’’“”˜š“‘’”Œ†‘˜‹ˆ˜‰[KWVQSVTRUTPRRRRLECC;:BKLHEHLLD[p_T\_ZXZZ\ZY[][YY[\[[]]ZWZ^]\\[IEiŒ‡…ˆ†…†ƒ†‹……†‚„ƒ†ˆŠŒ‹ˆ„€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€ .348BI\OQ<*>PTGNLGKMKLWF2.7:415.)))(),*'%&''')?]qkchmjmmmkiknrooopruxzxyz}ƒ„‚…‰‹ŒŽ’•”–˜™™™œžž›™—•“’•Š†„‚~{uoqpghg[bo}wu{eDFJGGJJKIJKKIGGIJHHGGFFFFFAFu¥§—ŽuVORLLNNNOPPMKLNMNOV^`adba^ZTPRVSPMMKIJNTWYZ^dedc^ZZYWXZWYYYYYUPZTQVXTSVXSOMKKPWWV]bfoupgXQPOQJ80asV54A=@?ENNID?@<;=@ED?6:A@<ELG>BMLHHA:?F9.441;>5499=EHLTXVSQQTSTUW[]ZURMLLNMKOPTUPLJHEIMOMLLMLLKIIIJJJINPMHC>:@LMA;?BA??=;=?<6;CF==^pU&!&& -61;KJIIJMOPQRRRSTSOMNOOQSQPTPMORQPRQPNLMOOMKJKJGFFC>4)&& "%# "%$! "&'$"$#"$&5Yndcmkjokm€„€~ˆv<*;G;'2>3)51(MJ,#7DFEE?;>EFCHSOPQQONPQSMKPRONRD9\z…ŽvSUomXn“Š’‰€Š“‡Š’‹––‘–—•’‘’’Ž–™”Ž’“‰„“”‡„•‡YJWUQSVTSTTSTRSTNE@?;<CJKHGDIJCYo_U\^WVY[]\Y\\ZXYZXYXVY]ZX\Z]a`MEd‚†ƒ„€ƒ‰ƒ€„„€€‚€~„ƒƒ†‰Š‡ˆŠ€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€"*228FDHTO;0@QKKNMKLOLGWR7-48;743.(),,)'())('((-?ezrovtuvuttx…ŠŠŠŠ‹’”•—™š“–™™˜˜›ž—–”‘Ž‹ˆ‡‚{uoiebdb`]ZVTSUUWTQUWQTo‚wtu\ADGKKHHHHLJJJJIIKFFFFGGGGLCGs¤¥‘‘~WJJIOPSQPONNNNONOOQW^a`aaa`\WUVWUOJJNMJPQTX[\_ce_]]ZYZ[USTXZXWW\_dhjhc_fif\WYZWXWW\hrrlh\UQLJF< (Ww[11BBBEKQNFCGGB@GHNSE:@IEANYRFMQFCMK@JP=-571779988=CGLTWUUUSQTOOV^^YSQNNLMIITX\XPLFBDLPOKJNNKLMLJJMOOQKFDA>=>DOJ=?DB>BA:8;;77;GH?=]nH & ($ &+ )11>IHIJKLLLKLORRSTTTRKKRTOOTSNPSOLNPPNMMOOMJLJJHEEA9/+'$#""! !#&! "'$!##(#&?\ijiffijlry~‰ƒ€~„Šs;%9I;(,<-(5,,SJ" <IHDFC>>CDAELOOPQPONNOPPPOOQSF=Yv„Œ†ecpoez„‰„‘‘…„’Œ’”’’”•“Ž”•‘Ž•“‘‘“•‰‹ˆ†“•†ƒ•‡ZLYURTURSTPQRPOROF?@;?GHEHKFLG?]u\M[`^[YX][Z\\ZYXXWY\[[^\XZ]Z[aSHa~…}|ƒ„…‚||~€|…„‚‚€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€ (028D@CUS6/JWNMQTUY\YTdbA*3<:6=91)')+,-+)''()*.0ClŠˆ‚‹ŠŽ”™›ššš———˜™›ž™•’’ŽŠˆ‰ˆƒ}xwxkifc^[XVTTSRQPPOQRRSTUVVUUWURUVQQkwuw_FHJGINLJPJJJIJJHFGGFFFFFFI?Dq¡žŠŒ†_LIGLNQPPONMNNNMOPORX]_aacec_\[VWVQMLMNSPPSVXZ\___^Z[]\ZXUTVXYXY\`dgijjeilljhfdgeccinlfe]XRJHE<""Otb:2?A;FPPH@AJFKNGERSG=COPHLURLORHEMKCGO?.44/5<=<89>DGTUTTUSPQRMMU[ZVTMOOIHLNT[^XOKE??EIKKKLKHNLJJLPOLEB@A@>==CHEA@??BCA<:=<88>HF==]i>#$%%+6'#(/.9EJKLLLLKKGJLOQSRPOLMQPLMSUQRTPMNOONMMMLJIMIGGGHA6,'$&$  $ "%# ! #%#"$'$*E`hgggijiir|~‡‚}ƒ‹v=(>J;)/</)/&2QF$%;EDAA>=@EDBHRSOLLNOOOOPPPOOQSHA^x‚‰ƒ€‘†xokrŠ”Žƒ„‘„…Ž’Ž’“’Œ”–’‘“Ž“˜“Ž……“–ˆ†–…WJWWTTROQUTOOQUUKBAC9:FMMHDELG@^u\MZ\XWXZ]ZZXX\]\YY[[YZ]]\[]]^_OHd€…|z}}~~||}~{z€„€„ƒ€|}‚„„€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€#,07B<=WZ43[dZZZXVX[[XXhU/,88<;83.)%&(+++)'(+.000M…¤¤£ŸŸ ¢¢Ÿ›˜‘‹…}{zupkhifa\TTUSPNNOOONLKIHHPPQQRRSSSSTTUUVVVUVURTVRH`urqs]DEKHDIKHIIJIGGIIGGGFEECCBI>Bt¦ž‡„bOLLNNOOONMMMNNMOQNMPW\`__abaac]YUTSPNLRMKMQUY]VY][XY\ZZ[YXZ\ZVVXYYY\aeifddefggllkiknmilf\NCA?8%!JsmF38:9ELHDBELGOVJGOKG@AJKEIOHHKPHDGB9@I;+01-4>>;78>DFLNPRUTQRUOOV[YWXIIMKHIKO[\UNMICCIHFDCCCD@BEHLKE>>=>@B@?>BKLB=@A>A@<;><76<GF<=\f7!!%%3;("%,,7CLLMMMMLLJKLMPSTSSQQSSQQSSSTSOMNNOOONLKJIKGGHHHA4)$#&% !"!""$%! "%%#$#%'%0Nehdegkkhgq}‚~‚ƒ|ƒŒt;*?H7(/7.+-"6J;#*>ED@=<>CEA=EPOQQOLLNQOPPOOOQSB>_z‚…}ˆ•|rozŽŠ€…“”‰‡ŽŠ‹“–“’–”‘””’‘“”Ž“˜Œ”‡‰“”‰Š˜SIWSSWVQPSSORRQQLDAA9=GLJHFFOMB[nYO]]YZ^]\VTUVVXY[[\YXYZ\]\]_a^KHjˆ†|z{{|~|ƒ‡‡„…ˆ†‰‰‰‰ŒŽŠ€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€%*4@:4LR.9hjcbdfjptts~Šw>(6889765/'%'#(,+)(+/,2.1U‹œ…€zvtromfd`\WTRQNNLKHGFFJKKKKKKLLLLMMMMNNNNNMMMMQRRSSUUUVTVVRTURH[qrqs^FBJMHEJJEIJKKJHEBFDB?;8548+1k§ †ŒmSKKKKNQQPPOPPQOQQOKMQVYZ]abaadea^]YTRSQPPQQRV[VX[[XY\[[\\[[\\Z^_^[WX]bmifgjliegjkiilmkqiXF<>>9)DqtQ:99@HMHCEHECKMCAD>>>?ED@IMCEKQJFJD9=F;-22-0;;735=DFLSTQQTUUWRPV[\ZYLGNPJHIM\\TNQOJHNJECA>>?A@?@ABB@>?@BBB?>BKNE<?A=>>::=;438FF==^g8!"#"$<@)!*+8FLLMNOONNMNNMLOQRRPOPQRQPMQSQMNPRPOONNLKJGGIJFE>3($"$#  ! "%%#" &&'8Wigbfgjkhiq}€zƒ‚{ƒŒp9+@D4(02,++7H6!*?FGDA9=BD@>EOSQONQSQMOPPPOOQS@=]y‡‚€„Œ„{|‡Ž‡„’’ˆŠ‹‹’”Ž‘”“Ž‘‘’‘“•’‘“•‹Ž•ŠŒ‘ˆŒ™~QJXPRYYRPRRRTQORPG@C;<FJIHHGKE>]u^R\[WZ\[YSVZ[ZXZ[Z[[[ZZ[]^]]a_JHq“•ŠŒ’’ŽŽ— š’’–šš–’‘“‘€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€$/?;8EF6[†€ŠŠŒ‘—š›œš “U)085:875.&$&%'))(()+0/205Nc_[WSRRQOLLKJHIHIJIIJJKKLMMLLLLLKJONNMMLLKKKLMOPQQTTTTTTTTWSUVTSUSHVmrqq]EAEIIGHIIKC=??;87321/.,,+3&)f¨¢ƒtUKMKKMONNMNNOORSSQOMNPVW[__^`ddddd^VSTOPSUVTTVYVWYXWZYXXZ\[YZ]XZ[XUTX\afihikhbehiedeedi_N@?BA>-:iu[EA=<GSNCGMGBJC;>AA=7<FF@FMFFNTKHQLAHK;,/1-/57513>FINUURRTTTVQORY]ZVNIMMIIKNWYTSYYRPPJEDC@@B??@BCB@>??@?@?><>GLB;=@===:9=:42<FE=@`j; "%$@F,'*8GJKMNPQQQOPQNNNONOQSQPQRSQRPNOQPMPNMNNNLJGFIHEB;0'&#"""! #%"!&%!!$#'&)?]jeahfgijkrz‚}y‚zƒˆh6,>>0)03,*&8M9"*>EEDC;<?@?>BGNQQOQSRNOPPOOOQSF?\vˆ„‚ŽŒŠ‹Œ‹†ˆŠ…†“•‰ŽŠŒ”–“Ž‘Ž‹Ž”–“’””‘”––”ŠŒ‹…™{PLZSSWVOOSUSRQUXPEAA;>FIGHJFIE?`v^Q\[UVYY\[]ZZ\^\[[\_^\^\\_\Y]`JIw˜‘‘”•”ž˜›žŸŸš’Ž“”€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€!,<:7:5?~®¢›¥Ÿ››››œ”’e0,97:9972*%#-)&%')('73591-9IPNMMNNMLNMKKJJKKMIGIMPMJIHGIKLLJMMMMMNNNLLMOPQRSVVUUUUTTWSTWTSTSHRiqonZCCIFCHIGII8+-2312/00001115+.h¬¤~‹uULQNLNMMLLLMNOTSRSRPNOUTVXYZ^bdfiie^YWSQPSTUUWXTTWUUVWUTVYXVW[VXZYWUUV]gkd_beeadda_``^]UHBED><12`vcK@:BKSL@EKFAC99<<AC<<EJEIPNMU[PLUOBGH8(,/,.38834?HJLOQSVURSTQNQX^ZTMEHLLJIOX[YZ_\QLMGCBB@@A?>>@BA>=?@???@?=?JKA:=?=?>:9<;54DHD=AalA  #'#!?I/ %'4DHJLNPRSSPPNMMNNMMOPOOPQPPUVRNMNPOMLLNNLIJFDDBA8+%'### !""##!$%  "'%,Daicbifeijmryƒ}z~z‚ƒb60>:3/3/,+)8K9%.AD@:677787888<HQQOOPOOPPPOOQSB>\y‚…}x†’„ˆ”“ŠŽŒ…‡ˆŒ‘‘ŠŠ‘•’Ž‘Ž‹“•“——“–”Ž“Ž‰Œ‰ƒ˜yOMYRRWXRQSRQTTUUNFC>:?IJGGIELKF`rYN^]YZZX\]\[YYXYYZWZXW[YUX]V[`JJz¡›••—“‘’’‰ˆŠŽ˜Ÿ˜œš˜™š›€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€"#*97<@4Eƒ£”†€|vmfd`]ZJ.*74466430+&+)'&')*+66541*/?OONMKKLMMLKJJKLLMIFHLMKGNLJJLMKIGGIJKLNNMMMMMNNNLMNOQSTUXRTWTRTTLRjutr_HFLIDHJHHG8-.4432100.-,++..3iª¢||{TGNKLOQQQPQRSSSQQSSQQSRQRW[\\\]bgfb_]\]XSRRQRTVUXYWWYXXUSSTVWXVXYYWTQOV_eb]]`b^``^_aa_UOFEG@9<4 *XxiJ80@IJDCHIF@??B@:=FECJOKNURIPUKFLD8;A7,.0*)4;=65=FIPRRSUTRTTQPSZ]ZUNFFMQLHPW[Z[_\PKHECBB@=;??@CC@>??@@?@AA>EKIB>;;@@>97;955CHE>>\oO$ !"$&% "AL4 "$#$1BIJLNPRRRTTROPQQPPONNOQPNRQNNSTQOONMMMMKILGCA?=5("#!!!!#"$%# $(#'%.Hbfbehfhjjjr{ƒ|{zƒ~O*(0*())+...))8D4'2>;60)+,-/13446:>AKTRJOPPOOOQS<;^z‚yt‡‹ˆŽ‘‹†‰ŽŽˆ‰‹‡’’•’‘“–”‘••’˜—’•Œ’ŽŠ’‹„˜wOMVPQWZVTRMPUTQQNGBB9;FMLHEHIDAcx]O\\Y\[WXX[^^ZWWXWY[ZZ\[Y[^W\_IL{˜”—™”‘ŽŒŠŒ–›˜š›˜˜šš™€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€ &%*74<F5;fp_Y]UPNLHFH@BBB.%$''$!#()&!'+,))-18::72/16HKNNKIJKNMLJJJKKIJJJJJJKMJHILMKILLKKKJJJMNNNOOOOUUTTSSSRXRTXTRTTJNgtsr_HABFIGDEHH>400/..01368;=>>CGsªœtsŠySIQNMPMMLLMNOORPPRRQTXXSQV]a`_c`]]bgd][ZXWTQQTPTYYUVXVWVUUY[WQTTUUUSOLQUZ_`acd``_^_ba^NIBDG>:D6! OxoK4-7GIDHHBA7=IE=85;>ERSILQMEHLD@FB9?D:--.,-6>@84;CEIQUSSSPOSPPTY[XVNJFEKMHLZ\ZX\XNJKGB@AAA?=?BC@<=A>@@@@A?<>LI;:>>=?=758744;EH@9Vr]2 #%'(!'EM6&"%"$1BJKLNPQQQSTUSQPPOQRSQPPPPPRPOQPNOPPOOMLKJKHEA;83)   #%# !!#!&%/Iadafegjkhhq}„}~y{ƒzO..4,/1.-1../1;B3)14,--)+-//023374..=PVQOPPPOOQS@?`y~‚€†ŽŽ‡ˆ‘‘‰„‹ˆˆŽŠ‰‘“‹‘”’‘”“’–—“”•“Ž”–Ž’Š‹…Ž˜vNKSTRTVTTSOQPORUND?B;=FIHHILJB>aw_R]\X\]Z\\\YXYZ[[\Z[^^\\^__Z^^HM{˜’–’‰Œ’“Œ‹‘Œ“’€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€%&'--,458>21IPHJKHGJJFBAEA<:2!!"&!'0+%*2=75784/-9INLMLKNMMMKJIIJJJKKHKNMKMLKLKKNKLKJMNMPMNONMNOPSQRUVSRUSSSSTVUQHN`rvq`KAEGFDEHIFD>25FLMPQSUVWWW[WWy§¤j|ZHNLLNTLIOSPOQSQPPQUVQSRQTY_a``ca_accdb][][VSUPSQOUZYVXUVZZWVXZVRRSSPLOW[\aa__[]`_`daWHIHDFB<C:$ IuuQ86;=@GMIC@=HGA81;C?COJCIIDAHMIBCB;9C@//4/089:54>FDJRVTUUPMQOQUXWUUMEEEEHGHUYWUVWPGFGD@>=<>=?=<AC?<@AA@?@?=AJH?;<>BD=648:71=EE?CTgqF!#'(,)EN6'$$'(%)5>IGMQMPVTQSWVQQSQMORQLKMOSQTUPNPPORQMKMLIIHFB<5-& "!#'$" &%%<Vabbaefhhimqu„y€|ƒoA58677-2,1-)&/>;)+1,..*./111.,*2)&'):MRTNMPJIPMA=\x‚ƒ|€†ŽŠŽ‹‡Œ‰‚‹”‘‹Š‘Œ‹‘•–”–‘‘”‹’•’’“’‘‘Ž’”‡Œ‘”†—vMLVOUUPOSQLRUVWTJA?@;>FIHHHINE?`rZO`_WWZXZ]Y[YWXXY]\[]YY\ZZ\[][ILw—‘Œ“”Œ‘“‘Ž‹Š‰ŠŒ‹ŽŽ€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€1<-$/55892-9JNIJFFFHIIFCBBAA;+!#)0-*.0./59731.9GNJHKLHHIJJJJILJJKKIJNKLJJKKKLMLILPNLNNNNNNNOPQSUUTSTUSUVVVUQNIK^qup]E>CFFEGIJFDA;E[ba]\[Z[]_a[WWy§¥h}_KPQOORMLONIIOVXZVOQWXQPQSWZ]__cdcffdcb`\XUUUUTTSTWUTVTUVUUXZZ[XVVWUPLU\_`aa_`_]^_]ZTMHGFEHD;AA*ArzW8003:FMG=:@JJA45BE?9:;>GKIELPLCBB>EOI525..47833>GDIPROPQOMURQTXYXXLGECEHHN][XYZSHDBCCBA=<>?A@AED?<?AA????=@IG>;<<=9669724;?GE<?ThrW. !""(!&AN:'"*+&"!,>JJOQNOTRSLNUTQPQMMNNKLOPMPSRPRRPNPPMLMLIJHFC<1'"! "&# !'$ %<Wbaabefghimruy„|||‚ƒ`6-/.//',(*'(#',&$.-$)--0/-+)(&&&&%%'+8HRQMNMNRM>=[uƒ|}Š‹ˆŽ‘Š„‹ˆƒ‹‘Œ†ˆŽ”””–•‘”•‘“—˜‘‹Ž—’‘ŠˆŒ…Ž™vLN]LRSPQUUPQSSTRJA?A<?GJJJJILA=`s[NY[WZ]YXXZYZZXY]][ZZWY]\]ZY\\JMw—‘””‘‘”““”Ž‘–“–šš–––”€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€-H<%+39A;&(?LJIIHKLJKLJDFFFD>6' ",0+(,)'*-.--,.CRKEIHLJIIJJJIEKIFIKKLNLKKLMMKMMLMPNLLPONNNOOOOSUSRSTTTVWUTSRPIFUion_HCEFCCEIJGD@;H[_ZYYZZZZYY[VWz§¥gnlNIILQOMNQOKMTSUYXSSUTPNORTTW\`ddcghgfbb`\YWVUUYXTUUTTRPTYYTV[[XUUUTPMQX\^```aa^_`\VOIDBDGMG>BI25j|^;.33:GMB9:FFA;44:6:9=EHFGEEJQRRRNFENH3/1,,15712?HDMSSOQSRQSOOTZZWTMKGCEFFP`]YWTI?>@AA@A?>@BB@ACB><?@@?>?>=ALJ?>?=;<5378314>GF;>Tioc;#" $'"*ENC2%/-(("&;KLPROORQMPUTOMPSSQQPMLMLPPPPRQPQNNNNMLJIHHHF:*! !$!$'#!%>Zc_`cdfghjmrvx€}|{„~O)#%%&'"%#""'%"("$)')363/.,*)'&&!(&&+$';NSMKPRSN?A_v€†€}ŠŽŠŽ‹ˆ’Š„‹Œ‡Š’”Œ”””—”‘‘“‘’’Ž‘–•‘”Ž†Š’‹„’oJMYVXVQORQNQQPQQIA?>:=FIHGFEKDCfv[M[\Y[]WVUZYZZXY\\XXZY[]\\WW\\KMv””’••–‘“˜—““™›Ÿ¢ ›™˜•€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€<A1&,<F=$%ALHHILLIFFJKKJHJIDB8& !),',)%$$%%%'$7NLIKLKJIHIIIIHIIJMLLOMKLMKMOMJOOLLONLNMLMOQQQOQRPPSSQRVVTRSSSMFVlpl^GDFFDBEGHCA><I^`[XYZZZXVU[TWz¦¤€go‚rRJNNPOMMPPOQTSSVYYZYTQMMQRPRW]aabehhigdegc\Y[W[YSTWVTSUVUSSVYYXWXYWRNNRX]abaa^_a_ZWPFDCGKLE;?L8,_zdA212:JK=6>B?AC8.18BGDGHGMNKNQONROFBJF3,1-,05722@HDMSSOPSSRTPPW]^XUJIEBHJHSac\SNG@@CEB?????ECA@BB@?>?@?>?>=COMA>A><::96310/;FH>>UgihH"! (*#.FGB9&/0/-%);IKOQPPQQKMPQNNPRPOQQNMMLLMMPSQNPONMNMKHHGHKI:& !%(!!'A]d]^ddeghjmrv}z~}ƒuF" !"#$"$$""&&&'$"%&&.62*#$%&'&%$$)$%-'"/FTOIPRRP@B`xˆˆŠ‹‹‘”‹…Œ“Š‰’ŽŽ”•‘Œ‘“’“’‘’‘“”‘Œ‘””””‘‹‰Œ‹Š“•rQOPPSTRSVVSQPNOPJB@>:?HKIHFAIEDdqWLZ[X\]ZZYYZXWYYXZZZ[ZYZZ\XX]^KLs‘ŠŠ‹”•“Œ‘‘“’“—•””“”•“€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€*56.+9B?)(>KGFIIHHIIGHJEDIKGD>3&  (,((('((&$% )>KIIKIJKKKJJJKIJLKKLLJHKLJKOMJNOKKNPMNMMMOPPPOPPPPQRQOSWVTSRPKDSimfYF>BFFGHGECBA=GY[V][YXWWXYYRVz¢¢‚jp€xWJNONOMMNMLLOSSXZXX[[UNLOQOORUZ^_egffjghjib`b`]WUWWUWUVWUSSVYVVWXYWSPOPU[`a^ZZ[\[UQKC?@HKJC=AJ;'VxjH7.3BRN82>?:GJ5'1;JPGBIMNEEOWQJIF==FE2*-*)15834@HDLRTQSTSQUQPU\]ZWNKGCJJFM`bZPOIAADDA@A@?AAA@>?BA>>?@>>??=CPN@<>=<88742100;EI>>SgfnV+#(#)==<5&(./("+;EIMPQQQRSQOPSRPNMNQRPPPPRSOKORRSQNMNMJHHHHIH;(""%& )E_c]^dceghjnsw…€||~‚n?"%%%&')(&#''$))%&&))$ !#$%%%$%!!('$&>SQJMOPQ??]v€„~~‰Œ‰‡ŽŠ†Š‘‹ƒŒ•‘ˆ„‘ŽŽ””‘““‘’•”“–•Ž“–‘”“ŽŠ‰‹Œ‘Š’•rOPVQUWWVUQMQPNOQKCA?;>GIIHGHNFCbpYR\[Z]]XXUY[YXYXWXY[][YWY\ZZ_^KJqˆ†‹‡‡‘Ž–’Ž‘ŽŽ’‘‹‹Œ’‘€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€'.:9-2B>0-=JHEJEDFJJIKPMLOPOPPO:." ".&((&&&%#(%#2GKGKFHHHGGGHHGIIGKLGIJKLJKMNMKKLKLNNLLLMOPQRPPQRPPRTQTUTRRQOJCNdkcUH?CEGGHFCDEEAIZ]ZXXWVVUUUWPWyžŸ…qky|aHINNLNOOMLORSSX[ZY[[XRNPQPOOQVWY^cdeefhijjfbhe^Y[[XWVTUYXTU[VUUUVVTSPNQY^_[V^YYYPF@=ACJJE@<?G>$$NvpM6.6GUK3.=>:JF(%59NTF;CMJAEKNICFF@7@C4*.,)24766?FEJRTSTUSQROOV[\XULIEDJLHM]^UQSL@@HB>AB>>DBBA?@DEB>?@??@?>DPNA<==>;4144004?EG=;Qfgn^4" #"4BB91%"'&$+2BHLNQPOROPPPQQPRNNPPMMNNMNMMNNKJQNLMMJIHLGDC;- )'##,I`b]_ccdfhjnswƒ†y}„f6&-+,+,1./.30))% ##&&##"$#"!!#%&%$##$'((;RSLLLNQ??]w€…~~ŠŽŒ‹ˆ†ˆŠ‰–’ˆ‰’•Ž‹‘”’”—“‹Œ’”•”‘••’’Žˆˆ„Ž˜qGL`TUTSSSSSQQPRRKCA@:;BEFHHILB@aoWO[XVZYWZX[YZZYYZXVZ\^ZWY[[[^^JKr‘‹†ˆ†…Œ‹ŠŠ‹ŠŒŽ‹ŒŒ‹‹Ž€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€ *0?C0/A<23AKIGJOMJGHLU[][UNKJJLKKJD;.!'(*($"#" $%!*BMLMGGGGHIJLJGHKLJJJKLKJLKLMNJKNLJLMMNNMMMNOPPQQPPRUQRRPQRROMHPgqdOCDEEDDFECEEE@HY\YVWXYYXVUTOWw™œˆxmp~mQORNLMNNOQSUVRU\_`_[ZVSRQQPORTSRX]adbbcfjkhdilg``b^YZZXUTWYZWWXYZYVURNQX]_^ZVQQSMEBB>AGDABABFC+BptQ4+2@KB-.@;>L?',<DFLE<FLDBEDEGGFC<8CI;141,00467=EGHPSQRTQOPOSZ^]YVPJHEFHFJ\c\TVOCBJD??@<;A@???>AC@>@@??@@>DNMB?><=8436427@@CF?;OdfjfB$!$$ 1FE>>0&+0+',AHKMQNKOSPNRUONUQPRRPPPOMJJMMKLLQNKKLLKKLHD?7+&/-!"0Na`^`abdfhjntx†y‚X/)300..519<;/+(#&&**')$#" !"'&&(((+/=PSOMLOP?B`v€‡~ˆŽŽˆ‡’‹‰”‘‰Ž•”••Ž‘–”‘•Žˆ˜–ŒŒ’‘“’‹‰Œ‹„“ŸyKL\VTRQQRTUOQRSRJA@A;>EHHIIHKDDdqXP^ZVXVUYWZWXZYZ[XXZY[ZW[\[Z]\JLv–“‰‹‰ˆŒŠ‹‹‹‹ˆ„†ˆ„‰†ˆ‹ŠŠ‹‹€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€!)1CI82;;16GMJIJLMJB;::9582+-.**.258@GB7*%*,*('$"$!&:HHEIIHIIIHGJLJILKHGLMIHKJHIKKNOJIKKMNNMLLMNPOOOPPQRLNPQSUSOJCH^maJ@ACDDFGFDCCB=FX[XWWVUUVWXSNWw–›Š}chvQJPPPMJKNRPLSNOV[^`_ZZWTQPQPPSRRW[]`f^\bhiijikjihd``_[XYYVUXYYXWWWWVRMOUXZ\ZUSQNF@=9?AEA?CCAGG07iuS4/4?H>,/BCED518;BGHB<GI:<IDFJIGGG<FL=01+%.,067=EHKSUSTVTSOOQWZZXWPIHECEHMXgbQNLDBAA?>@@>>><?A@@@=>@@??@@?AJHA?<9971-0;EHG>AFB>ObdkpQ%'&&!.?:9?@;<;*#2AILMPMHLMQPNQRRSSRSUTSQMOMMLILOMPMJJKMNMIJG>1%*30$ 1P`__a`bdfhjntx~}~‰yJ-*511/.612;3!%'#(*/,*.)""""""##(&$(,))0AOSQONPO;A_r|†€y…‰ˆŠ‡„’‹ƒŠ’…†’‹Š’•’‘š—Œ’›•‹‰‘˜“’‘’’‡„ˆ“nJLWQRTWVSPOMPRTQH@><9>GJHFDEJDCanYT\YX\ZXZVVWVW[[YZXYX\\YZYYX[[JNz›šŽ‹‹Œ‡…†……‰Ž‰ˆŒŒ‹‰€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€!05?J7)9>59FKJJII:,&$$%&$%&%$$&('(" &,2;H:( &))'"%#%*?MEHGGIIFEEJIHIIIHHKIJMLIJNJKLKKJKLLKNQOMNNQQRPORRLNRTQPQRPLCJ\i_JADEDDFEDGBBCEKUYSWXUPPUXVWLSzšœy\c€rMIPTPOMLMNPRLNRW[_ab\XXWUUTPSPOPRSW\_\^_`ekjgihcchhd\[XVUVWXVVTTWWVVQNKLRYYURRSLA>@=<CE@=?A@EC21i~[64>=?@33@A=@948<B?E?8BD:?LH@IPH@:8HK9+**$*--,3?FEJUTOOSVQNUTRXZX[TKGEBDJJ]aWLMLB;B@<=@?=@B@@CB@?@A@@@A@>=BIF=9;:8346?GMOECBD?9G^gam`- "#$%(.6<3@=<@/!,BGKLNONJMOPPPQRROOPRRQNLKMOONOOOLMMMLKJJKJF:)+4:9'$#2Va\\]achhinpsx…~~‰qA&+*&&+.-.2/#$))&*01/14.-+(&'((&'('(,01LROKKNRL>Ebt|‚~€‡‘Žˆˆ…“Œ„Œ•‰‰‘‘Œ”“Œ”•’‘‘’‘Ž“ŽŒ‘’Œ†…Ž’Œ“•oJNZTSSRQQPPOPPRRJ@=:9?GIHIJFHAEgnUT_ZVVYZZ\ZYUVZVTZ[WX\[[]]\UYYFN –‘•——“Š‹‰‰‰ƒ€†Šˆ‡ŒŒ€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€"+:F@0/=?08KLJH@) !"!**)'&%&&$(('($)8D@.%&$  # $7JFEHJIHJJIIHHIJJJJLJKLKIJLJKKLKKLMOOPPMMNMMONNQRPPSSRQRRPMMHKWfaJ=DC@AEFCCD@=@IVXQWXVTSUVU\PSx–™}^\zvSJNQUTRMJJMPSSTWZ_cf`][ZVVVTTSQOOQSUX[YZbgedbcdehhc]_^[YYWUUUVUUXVSRVLHOVVTTMLJHECABCCA?>ACCAE8)_{`<:@=:978688867=;::;;;BDAINC7GVJ;6:EC3),,&340*0@IIKSSRRSUONRVXZ^^[VNE@@GMNXYPIKH@>BCB?>=<<?@@>=>??C><?@@>??FD;8:979?DKLMNF@EG=7J`dbke9!###'08>?9<?0%1?GMMKLLLNNOONNOPNOPRSROLMOPONNMKNKKNNJJLKIC5#!0;?;(! *-5Yc]^^bbfghloqwƒˆ‚‹p="'%""&)(()&$'!,2300355//,+*+++)++04-.=LPMLLORN;Dar}†~y†Œ‘Žˆ‡ƒŒ”ƒ‹˜”ŠŽ“ŠŽ––“’’•”‹Œ‘’ŒŒ’•“ŒŒŒ‹†“qNMTQQRRRSSSNQSSQH@@?;?HKJIHBICDepUNXXXYWUUXZ^[WXWWZZWY[YXZ[YZ^YEQ€™“•—•’‹“‡ƒ†Š‹†‚†‘‹€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€,==1.7==4;HJI?*%&%%&'%##$& "! 2DC1#'& "-FGDGIHIKLKJJIIJKJIIKMNMKIILMMLKJKKPOPMKLOMNONOSRQRRPPRTSRQIGGRfeL@@DDCCBBFB@?AIW]ZWVWXXVTU]TUw”–fWpuUINSLPSSOMNPOPRTX[^`c`_\XWXWTTRMLOPNNVXTX\`db`adggeda_]ZWXZZ[[XVVURRPLILSVTQOLD@C@AGGDABDCA@?G@%Uzd:*246988325997:?;:9=<?GKON@3DVF57;C@2)++%-1/+0=CAKPPPRTVPQRVZ_`[TYSH@CHIHONIGIE?@B@@@>>AD@@A@><=A>BDAAA@=@A?9648?MOONJJNIBBE?:I_fdhlK"# ")/=936<835>FLLKKLLIJLOOMMOPOONONMLNONLMNONNKKMMKKMMH=.!'7BC:'(+!5<% 6Yc^]_baefgkmpu…ˆ„‹l6 #%'&&"#.588610674101110486596;KLNLMNNRP;A_s€†{v‰‰Š•Ž„„ˆ‘ŒƒŒ•Ž‚‰™˜’‘•”•–Ž•–‹’•Ž‘•ŠŠ‰Œˆ“nLP\TTSSRRRQQQPSTL@;97?KOLIFFIBDemSP]ZZ[\ZXW]^YTX[ZZZ[\ZXY[ZY\a[GR—’’“•”Œ’ŠŠŠ‰‡ƒƒ…‡†‰ŒŠ†€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€.2+*.4<7;AIMD.$%'(&"!#&"" #0;B7*!!'$#" 'BGFDDGIIIIKKJJJKJIHKLJIJJHJKLLLLMNKKLKJMPPPNORQRSQSRSTSOORKGEPgdI>BDDBEEDDDCBBHSZWXUVZZWVYYTWw””Œ„gTkxYIMOMOQQPOPQQQRTW\`bbaba[YYXSTRONNONKMRUTY\Yabdfecccc`b`WVXVXXVTVVUWQKIOSSSTKIA>>@EMIFCDEC@=?HD*N{f4#368;7326;AD<?H@18B=;LSMMC4>OD4:6??4*((%'+.19AECMUSQSRTTPTTZfcUNVQDAGIFFGHFFGC??@=?A?>?=>=?BA=>BBB><?C?8:ED73=FKUSMJGJPLBADA<H^heeq]( """%($"(56,?DHJLNLIJKMONLLLMMNOPQPPQPNMNPONNNMKKLLKME5'"-=GD6#25%@M.#4Va[\^cbgghlnpu„~ƒ‰d."#'*))$!#*576=>99866:;95325777@KSMNKNNMQP>?]wƒ‚x{‹‘……”„†‘”ˆ•‰ŠŽ‹˜—‘”ŠŽ’Ž‹”‰‰‘˜’‰‰‹‘Œ‰”—qKOZUUTSRQQPMPQSRJBA<:?GGFGHLLCGgnTT\XTVWWTSTXYYYWVX^ZWXZ\ZW\Z^^IQ~›’ŒŽ•—ŽŒ’”‘‹ˆŽŠˆ‹Œ€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€%%'.+,;59DNJ3 &*,5FI;.(&$!$-BIOD6.%# ! $>FECBEHHHHIIIIJLLJIKLJIKLKIJLLLLNOLJLMLKMNMLNOPQRORQRTROORIHENffK<@EECDEDDFB@CLY\UWTTXYXY]WTVs‹‰iVivZINONNNPRRPNQRUW\_bdabeea^][XVTTRPOOKJOSSSVVY]`aabcdcb`^ZWVTRTTSTSRTSMJLPQPOGDB@@EJIHGDBABBBAGE.Dvm<7C?8:94,6;613<A2(6F?9HPILE66IG879=>5/,,*+*+/5<BELWTTRFHWVVSVbc]\WMA@GFBDBHIGFD?<;?C>:>C@<=?@ABCBE>;>@=:9<CA;ALOJGIHJIKOI?DG?:Lbefdri8" #%&# $8?6?CHILNMIMNNLLMNOKLMMNNOONOQQRRPMPPNKKLLIGA0&4BJC2!!<= )IX:$3V`\]aediiimoqv}€}…ˆ_,%"'*')-)(%!##.7:?:33335775:@;<@CEHMQOOLNNLPO?A_xz€‡ŠˆŠŠˆ†‘Š„Œ“Š‹‹”•ŽŽ””Œ‰•‘Š”“Ž“ŠŠŒ’Ž†Ž“qLKRRRRRSSSSRSQPNGAA:9@IIFEEDJCCdmRK[ZZZXUVX]\YXZ[YYZZ\]ZVY`\Y]ZGQ‚Ÿ‘’•ŽŽŽ‘“‘Ž’‘Ž““’€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€#*,*,447CKC<?BKIJa„gM5/*+./,'.*(%!!"! #4LYc`A$! "8DCEDDFIJIHIIHILKIHKLKJLLKJKLLKLLMNMNPMLLMMPNNPQOOQOOQSRQPEHGJajR=<EHDBBBDB@@DN\a\WUUWXXZ\YVTk…ˆˆp\dpYINQMLMPTSOJLNRX[^__`bgjgec_^[Z[XTRROPPQRNPZZ[\]_aa`cd[W^[UWVWUSRQPRROJIQWSJGBACDLMFDEECBDEFBFI95mtO;74;AFF;7B:2>NK>>HOE=BFJEE:3AH<9@<60-,*(,)(*1:BFJRPSN?DZZVUY]aefUJ@CGC>?AJMGDDA:==>>?@;30003579;?@AC?:9<>BFJLJFEAFHKGFIC?BFA<LagdfnnJ""!%'+"".9<<DKLKLMMMOONMOQQPPPOMMNOMOPQRSRPRPMMMKJIDB1/<GK@.(BB"/M^C $ 6Xb]_bhejjjnoqv}€‰‡[,#/+01((+&(' ! $1;<1&'(*.0--7EHROKOPKLNQMNMMPM<Edu}„~~‡‹ŒŒŠ‡’‹ƒ‹”†‡‘Ž•–””Œ‰‘Œ’–”Š‹”‘“Š‡†Œ‰“nJLURRRRQQQQRQOQQJ?;?:<DHHJJHLDFfoTOZYXZZXVVVZ\YXYYXWYWUX[ZXX\_UBU†–’’’‘‹Ž—–“’•––”“€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€!%%*/,15<BIV_]RQMTdbSM?;9;@CB?A==<767464432/+($ !0WmM! 1CFFEDFIIGHIIGHJJGHIIHHHIJIJKKKKLMKKMONNPPPPNOQOMORRQPQQOLJKII[hT=?EECDFDB@@@BHU\ZVXYXXXWUZXTg€‚‹t^`oaLKNROLLMNMKPPQSWZ^```eijihda```^[YXVSPRWTPRRSW\_`bdcd`]_ZTSWXURRRSVUKHPYXQLEBAELPNIEEFGGEEGAFQG%+cvXH>>LQLMICGHEIMF?HHA9::7@A@91;E@@@:4111005999BPYY\abdaZ[]LLS]cca_PE@DFDB@DLOGACB;?BDD>53841021-.1.12248:9:LVQJHIJGHGHEFIBA@DD?J_ichgmZ-!! "($ "&-6=ELLLMONNPQQPOOOLNPPONMMPQQOOOPOQOMMNLJHB?.(7@HI;(-GD%3O_J%"%:Zb\]`eeiiimnou~‚ƒŠ„T*(/+23(&+$'(!%(3<7+$"&,-+.5<LNHMPMLLQNLLNRM9Dct~†}yˆ•ˆ‡”ŒƒŠ’Ž†„‹‘Ž”–Š‘“““‘“”““’Š……ŒŠˆ•™rKLVSSRQPONNIMPRQHAA>;?HKHFCJJBEflSS]XUWZZXVYXWWXZ[ZV\ZUX]\YW\`UBT„˜’–‘”‘ŽŒ‘”–—™š˜•—š€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€"&+,11.9MTI@:7-,3/&)./1112573/00-0424467640.-.)/F: " ,CKFCEGGEEEGGFGKKHIKLMLJIILMMLJIIJKLNMKMOMNJKPONOOMQRPOPPOMIFHZfWD>GJFDEEEE@=>HX^ZUZ\YXXTNYYUh~||„|aZjbLJQJJKMNOPPOPQSUY\]_^bgikjf`bdbbb`]\VUTQRTSPOQUVW_ic`dbXW[XVWVSRQPSOIGNTSJCDFGMSOFDMHFHGCDH>FXS+)_rTCDCIG<;@@,073345=9.,>B7=E:0+9GCDCBBFHIKNNURKQbjebimmlodF>BFTef]\TGAAABD@FMOF?AC>?BDDA813:<>=;::;<=<941/.4;=:>DC@HFBEIMPF>BGA<Mbfbjckc4 ()%')*.@EIKNQPMOOPRQOPQNOPPONNNNPQONNOOOPOLMOLG=6#'.:AFE6#1HD' 6O^M( &;ZaYY[`chhhklns}‚ƒ‰M&))%.1&'-'#&!#*6=<5&'**,2;IRQLKMJPMKLPTN:@_v‚†zu‡Žˆ‡…ŽŠ‡“ˆŠŽ‹ˆ“Œ’’‘‘‹Ž”“ŒŽ‹ˆ‡ˆŒ…’pLMTPPPPPPPPSQNMMF?>98?HHFEFDJCDeoTO]ZXWWWZ]YVX\ZVVXYZYY[YX\YZ_ZFP~––’’Ž“š’Œ‡ŒŒ’˜›™——˜€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€"#!!""%&+,14-.$  !""! """!!!#$!).(&12# ,>IDEGEGIHBHIHJKKLIHJLKIIKHIKMLJKNLKMNJJJHIKNMLKMNQNMQRNLMKKIEUgX@>CDBCCBBFB?@HV][WXWTUXWRQTYgvx|Š‚gYfbMKVPMNOKLOLNJJQUWZ^^_abcfikfecbaabb]ZWVVVSPQRTW[^`_acfe`[ZZWWVRRRQMNHCHTUKEGGNWVLFGJHLMIGE@BK]\3YsN0;C6.5:=C=4>A/0HM819NM9@F:/0:A?9CBGJC<::AFKKXkplhdhqmYG@A?CGN[_VL?=BA?CFFMKFJMGA@A>:9=??<99<>==?FCBCA==@<:6322343:7?IGECAGJA=SfabecllD!'* $#+<DHJPRNLOMMOONPTOQSRPOPQPOQRPQRPONKLMKKG>/!,;>GJ@.!";K=% ;R\J)#!5T_]``^`hljkpsp€ˆ€†K&-+(,*(.*&*% *3:?8,  $%(/8HUPJOIONKGKSN<Edw‚„wy‰‹‘‹…Œ•ƒŒ–Š‹ŽˆŒ•–Ž“•‘‹ŒŽŒ‘”Ž‘ŽŽŒ‡„†Š„Ž’jGMXSNQUQOPOVTOMOKB<<>CFFFGD@KCEejSS]YXZYXYXWWXZ[ZXWZZZYY[[Z]^]RAP{†‹Ž‰‡‰‹ŽŽŒŠŠ‘”‘’•”€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€" %"$)+*! ,FJFFGDEJKHHJLJHIKHJKJIJJJIJLLJILQIJKKKLLNHKNPONNPNNOPPONOIIIESfZD<DGEBABEEBACKX]YWVWXVSTWTQRbrru…hWa^KJSPMNNKMOMLLMNNQW]^_`abehjhgfhjkifjhc]Z[YUVVUVY\^`adfeb_\Y][WUSSQQNGEPYSIHLLU]WLHJHIMLDBDDDM^_6Th>/PS73CFHGMHIMGEHPOPLNI75D>22>B>><CHA1+.2044:Nch]H^ohUIHKLEGICEMPB;>DB?CFENTVYTHB<::?EHC<@CFFCA@?@DIJE@@DCDEFEB?=68675387<BF?>VjgbjgeldF..! !" +=DIMPNLONOPPQRRQTSSSSSRQRQLNSRNPRPMNMLKG<+.<AFG;*%<J;$#=S[H'!%:Ya]``^bgifgnsrx‚†|E!'+(,*(-*%+!%',&&1?E@/"!%)0<LZXNLLHLMJLH>Ebs~„z~†ˆ‹ŽŽ‹‡Ž“Ž‡‹‘Ž‰‡‘‘‰Œ˜™Š“Ž’”‘Ž‘•“–˜”’‡ƒ‡Ž‹ƒŽ’jGLVSPSTPNONONNQSLA=:<AFGHHDELABciSR[WWZYY[ZXXWWY\ZVX[ZWVY[[Y\^VDS}Ž†‡‰ŒŒ‹‰ˆŠŽŽŒ‰ŠŠŠŽ‘‘‘‘“€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€&=- #')*+'%$#!".-*%!+CHDEFDFJKHFILIHKKJHILLHHLLKKKKJIJILKJMLKOJLNNNNOQKNPOOOQQIIIFQc[F>CECCCBCDA==ET[XWUVXVSTWWQP_mjo‚†o[^\NMTPNNNLMOMJKLMORTT^]][]`eihfeghhfchie^\]\Y\YWVW[_cfhgcbcb][ZWTSSSQKHJRXQIIKNZ`UIFFJJLLHEDAIRaa=JeJ=JRHDIHGGGDFC>ADNGA@B?86@?30=A=?BH>/18=B:9/18=B:@YgYGEKMFCGHCCFAA>@CAAGL^bb_YK>;<CMRK?<@LOKA:?HOXXVRONMKOLIHIIHELEAFEDF9>BE>>The\ceciqoe]I+#(&!$5>DINPKKRQPOOPRRQPQRQPOPQNORRQOOOOLKLLKMH8&$1?FGC4$*?G7"(BUZF% 7V^[]_bdimkmrusw‚ƒ‰xA!)+',)(,)$&!'.2*" (.=D>1"!'0?WcZOLJNKINF:Cbu…{~Š‰ŠŽŽ‰…ˆŽŒ‡‡’“‰Š–˜’•’ŽŽŽ’‘Ž”‘ŠŠŒŒˆ†‰Ž‡‘”lJPZNOSSOPRQSQPRQF<;><@EGHGCGL@AdiQP\WWYWWXWUUXZZWVW[VUWZXXZX[^VEV‚’‰†‡ŠŠ‡‡Š‹‘ŒŠ‹Œ‹‘’‘’˜€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€2SA!$%',08<=;547=?>855-"!&)&,AFCCGGIJJFGHGGIJGIKKLKKKLIHIJKKJIJMMMMLJLMMMMLMNOOPPPNOOOLJIFN`\F=ABABB@@A@@AIVZTVWUTUXWSVTT_hel‚„r[WULKPPOONMMNNSPMMOQRRSVZ^afilkjigedddcffdccb`a^YVUVZ^adedbc_ZTXYXWXTNIGJQSMGHMR[YJEHIHMQOHDEGNWceE 8VM9BKD=DFE<@?;22<;::;=5-39B@609CC?EM;0@E98MG9BGCLJIRUMFHHFEGEEHKHEC@@CITbkikeWH<<EMI@8:DKLIGC?AFJJ[WQR\ed\TG;APYRHDEFLKKQMCDE>=Rechihebdo{„sE"!"=J=+(6@EIMOLLRROMPPOORPRRQPOPRORVVQSRNQOMOLLNI6#!*5BIG?-0AC1 .GWYC#7U\Y\_ebgjkmrrpyƒ†‰q;$/+'+(&,'##" ##11)&)#"-:IL4  )1BZjdOFLILTH6Bbv…{€ŠˆŽ“‘Š…ŠŽŒŽ‹‰…‡‘–“‹‘“Ž’”“ŽˆŠŽŽŠ’’Šƒ…‹†ŽgGOXKPTQOQSRMMNPNG@A<9<CFIJHDK@DehPO\WVWVUUTYVUWWWWXWZ\[YZ[\YZ]SBX‰™ŽŒŠ‹‹‹ŒŠŒˆŠ”‘Ž’•€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€0N>#&)+05;>>?DHFD>3($)/+/.09954**+-,)3GFDEFHHIHGHFEHJIGFGHHHGHHGJKJHILOIILNLLNLLMNNNMMMPNNOPPPPNIGFL^^F:BEB@?@CDB?=EU[VUVUSUXWSTUU^gek{v_SQKLNPPONNNNOKLORNHEGNPTW[^bdiiiihhhhffgigdce`][ZXW[__aefea]ZRRRRRQOLJDHSSHDIOW]THGMLLOOKFDHNT[chQ%-CD;C@6=?429?EE<<C=1>JMDALRMF=58FKA=D<286/1;71H^`^N>HOKFEFELNHDH>7>GEBAHQZ^d\NDFKLOC83=KOF;5;FNNGA>LLKLSZXQ=AL[gfZNLOIMURPLDCC>>Sfddie_dinv~tM2;:'$7Y`F/,6BHIINPOOPNOQQNOQTRPPRSRQNRRPQOMNNLKKJHKH8%&0:DIG<(4B?+2KYW@"&?Z^[\^efghhlpssw€‡‰k5#.*&+'&*&!$! *:2''-$"*?UN3!"&+Bay^FIMOSL9Car}ƒ~†‘Šˆ”“ˆŒ’Œ†‰‡‰Ž‡ˆ‰•”Œ‹’’Ž†ˆŽ‰„ˆ‘‰„ŽhGMSPUVQOONMMPQPME?=>:>DHGFCBJAEegPQZVVXWWWWUZ[XY[ZTZUUZ]YXZYY]SA[Žœ‘‘ŒŒ‘Ž‘”•ŒŠŠŒŽ‘““€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€1K9$.120//149=BEGCDEFEB=:)($ !+78=>?A??CFEEECCDFIHEFKJHJIGHLKHHLIKLKJKMMJILMJLOMMMMNNOOPPNMOPQQQNGDEJ]bJ=CECCBBC>???GUXPTSTWUSTXTSQ[hhfo}{eRNMOOPQOMONMPPMMPPKKOOOPQTZafhgfhihd`gccffccffcbb_[\`bcfheb^]YRNQOKJNGFLUQHEGNY[QIJKJNNIFFGJNY^aj[06FG83?OM<:KLPUTTVOLMPTVUU[TIB;6?E<57<;0.11./*8MVO81CPMHIJHGME@GC77EHB==<50<84<NQC57=FID:67DBCDCADJEIJC<:>ALT]dbYOHYfc]XPXcJFD?>Sdcfke_dhjr‚uP7;;6>>G_^A25?DIHGMQPOPQRQPQRSRQOOPPPPSRRUSOMQNOKLLKML=,%+5?FGB7%#8C:%6NZU>!(@Y\[]^eghhkorttvŠk5$,*&*'$)% ! "5;/%*2, *DYN5 ,Aiq^KJLOM9Cbs|‚}…ŒŠŒŒˆŠ“‹ƒ’Š„„‘ˆŠ“’†’“‘‹ŽŽŽŽ‹‹ŽŒˆ‹‘…„‘”lKMPRTSQRQNMMPPNKGA?97=HJHFDDKADcfPU]YXZXXXWX]]XUY[ZUYZYWYZ[UW^UB]š‘“‘Œ‘Ž‘•“Ž‘’”””—€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€;P4(0;CGGFFFFFEEEEECDDEA8+! !  !->FCEHE@EEDDDBCEJHGHIIHJHJKJJJKJHIIJLNMJKKLLJJKLNMLKLMOPQRQNNOPNNGEFHZcL?CDCEECBCCA?FV[TTSTVURTXUQP^lf_eu{fNIJMLPROMPOMPNKKORQONNOQQSUY[``bfijgdeaadgfefdcdeb^_c`beffc]XUPOQPJGHEIRTLGGHTYSGEFHLKNKFEFKT]__ke85PXLMRUVSRNOJHINQHDDGDDA?NXLGC7146=:<<=FQTIE91154,:FLGGLJCLRNCFJ@13<=9<<50'%!%-.+,3IO=1<GHHDCFKLGC<=?=:;DN\OCDNURLX[VVXZejNHE@@Sdchfffcbkvyv]A725A<@Z_F9=BFIIILNORQQPOPQSTRRQPOOPRVPQTTRPLPSNLNKKMD5-09CGC;1" *:C6 !8PZT<!)@VZ[^^eccejnponx~Ši4%+*&*&$($"*=:+&,21) "/LZN'!!(Hjq]IGNJ7Cev~‚{ƒ‹‹Ž‹†”Œ…•‰‰“‘†…“‹‹ŽŽŽ‹‹ŽŒŠˆ‰ŒŠŠ‹„…‹„‚‘iHKOQPNOUSOPNONMMGAA<:@GHDCCGLADefPS_ZYZWVVUXXXXXXXVWUUWYYYYUW^UA]‘š’’’‹‹Ž’“——“•š€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€?K+&03@DGHEBBBCCCCCCCCEA;4-'#! !7FGFEDFFFEGIHFGEEGGFIMLJIJLLIJLIJIHHJJHILLLMKIKMMLLLLLLKOPMMRTSOIGGFWbL<CFCBAAD@AA?FVZQSTTRTXWSUQScncZbs}jPILONPROMPOMPQQOMKKMOOPRSUW[]bccccbbaa`adgfc`a`ac_Z[_dedcdd_XTSQMLMMKFIQTIBFLXZNDEDDMRPGBFJPW_`]kj=+@GHFDHE=CNC:?>47?EOR>;DEW[RML=((67<99DJJNOJIGC?=BKIC=?DA97ANOHF@2)5859??>;- $!!"+/+,6DKBINJEFKO@:9?FHJLEA?CJMIDHMWdebbWJDB?BViid`fjdgoosrW3)/7>47VbK=?DFIJKLJMVPMMQRQQSTQONPRQPRVTOOQONLPJHLJIMH;23;EH@5- #/;B3#9Q[S;!1GZ\^`^dgeeimprrwz…ˆa.")*&*&$($3B@.&),/.%#!/LT:% !;MjrUEMG;Fdsz{†Œ‰‰Ž‘†ŽŒ‡‹‘ƒ‡ˆ†Ž’ŽŒ‹‹ŒŽ‘‘‰‰ŒŽ‡†ˆˆ…‡Ž‹‡‘gJPVTQLOVSMOMMNRRH?>>;>EDBEGHLAFhhNO[VVWVUVUTWXTRTVUTXZYZ\[XYX]R=[’œ•’’””’’’’“““’’‘‘‘‘’“–—€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€  F8/ADEKE?>ABA>@ABCCBBB<4-#!#" ,CK@AJHCGHFEGGFCIKHHJJGIHIKKJIJIJLLLLLLMKIJLMMKKNMMONLNMLNLLNPWUKDDFWbN=>DDCC@BBA@?FRUMTWSNQTUXTRTfn_ZbjoiUHJONOOMNQMKPQMNRQLKNMNNMQX]]accabffb\_a__beeda^`a]Z\`bdb`a_YSPMKLMLKEHRRHHPTUPJDCDGIMNNLJLU_`^`muM#/@BJ\R:>KSL=?J=0=D><8@F;5HTKEB+#3/0687DMEED><:7=CEQL>?D@8819EGFD<=?A@>;99;<4*$$$ !&*089579;@=BHKJEA>GLOIAAKVhndTUWNGBBD?=SihcfigcdltusM$#059;BOYMAFIIKMNMLLLSSQOQRPNOQQQRSQMRXUOQSPOSQLKNMJKIF?@ADI?4+  '1?A/&DU_U:";U\Y\_bchifdjttnv~Œ‰[*%.(()%(*  4@?0).1.,/%%9OR4$ !!(6XtgONK8Cdt{x”Š’’…Šˆ‹‹ˆˆ‰‰‹Œ‰ŒŒ‘ˆ”‡‰ˆ‡…‡‰‰ŠŒ‡‹ŽcCMURPOPQPNKRQNOPC;A;6;DGIHBAGAHdePT^VUZXTTWYWYXTWZUSUUUY\[[U[aPCf’—“—™™˜—˜˜™–’–˜’‘”“Ž—€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€*1%*BKGAFC@ACDCA@BDCA=;:.'!" !#"'9FFGIDBFHECEFFFHJJIHGGHJIFEIKKLJHHJKJILKJJKKKKKJLMKLMKRONKLMMSVJCEDR_M<>EDBB@C?<<>FQUOTURSVUQRTQRgp^TZekgUJKOOLOMMPPOQQRPLKOPOMPQPQUZ[b_`fgb_a[\[YY\_`aca^^_^_a`ab`_[UPOOOONLJLLRRKLTVUOIEEFJMOLKKMQX_b`bozX""0?BFJE@B@99EEKXM<LI59XZB7MPLQK1$+/15888BPCCB>57@A@HH@>ED969:=GMC5??<=<<<2;=<91%&" !"$'&$'05:>@@ABKVUJMajdh_PFHHECDCE?=SgecfifcdlsrI''--33?BFJJJHIKMNMLLMPPOPSSQQTSRSSQOMTSTTQMOQPNLLLMMJKIDFEFG;-%%-7>>- ,DS\Q7&@X]YZ\aecilggnsst|‹ˆV% *(()%(*  3@<0)-1/.0-  ):PF."*CfkWNL=Ebu€x„’‘‹Œ‘‘ŽˆŠ‰ˆ‘“Š„‹ŽŒˆŠ‘ŽŒ“”“Žˆ†ˆ‰Ž…‡‰…‰ŽˆƒcEPVQOOPQQOMRSNMMD=A<8?FEFFBBE@JgeOSZXWUSWZXWWUWZWTVZURVYVV\Y[_O@b—ŒŽ‘•–––•˜˜–’‘–˜–“‘–˜’’—š€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€",?EBHHBBAABBA@CA?@A<0''!  #,8CHFBCGIFDEGHFIJHHIIFFGIJJIIIIJJIGGHJIIJKJJJKMKLMKLNMMLMMPPMRYJDGCM\M<?FDBA@C?;;@HRWUTSQUYTOPVQRiwbTVekfVJJKJNSQLNONMMQRNNQQLLPQPOSX[^_bfhfca^\YTUX[[___``^^c`]_bc`]XQPONNNNNLMRTPRVURLGEFHLOPKHLSY^`eehqe.&;GMJ50IYW7<WYSYSSVQHRSCBGCIQVK7-%$9:1569FLDDB9=EA<?D@>EC3,48;EMC3413@CBE?78<?=80(!'!!"#$''(*.0*:LYhqj[OKE>@HI@EEE>>Tfcdfhfcdkr|wO)/>;5679?AFNLIKMMLLLMMORSTPQTROPTURRTUSQQQQOMMNNKINNFKLJLJGE8)!")4;?;,$5ERVJ3,I[\X[]bedijghnsst|ŒˆR&())$()"2<:0),11003''CP@$#/MfcUH8De|ˆ‚uƒ“Ž†Š”’‹ƒ‰‹ˆŽŠˆ‰‰‹‘Œ‰Ž’ŒŽŽŒ‰‰‰‰ŒŒƒˆ‰ƒŠ“‹ƒeFOVPONNPQPPNQPOOF==;8?FFEFBED=IhdNTZXWTTXZVXYVV\YTW[YWWYWWYYY^PA^‰’‰‹‘’‘‘—™•““““›–“–›™˜™€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€%6CAAHBAAA?>==>?AA;2*%$(/5@FDCCFGECDFFDHIGGJJGIHHLLJHIJJJJKJIHIJKKKJIIKMKJLLKNMMMLOOMS[MFHCL[O=?DDAB@C@==@GRXUSWY]_ZUVXQOl~hTW`ebVLKLJMQOMOQOPLMQTTQNLLMMLMQW[\`cehlkhgd^XVWUSYYZ_a]\aa`bda_ZUSQNKJLPSILSXWWXVMIECFJMNMHFMV]`agkos}m7(GVUZRQ[VNLPVLEH@7=BCOQ?9EMDFQME;$=:&.;73AALL<7<CE?603@C;86;=:>D?DCFHD@?D64238A@6.'$#!#""""  #%%+7?@ADBEIFCLPEBED=@VfcdfgecekqupR<DH?=@>;AFJNKJKMMLLLMOONQUURRTQQUTQORSRPQSMJPNNOONPOJKLKMJGF9*! %.7<@9*)<IRQB,!2QZXY_bdbfhhgjorrv~ŠP$&))#)("4@;2++021/23-"!"-DL7#"!%'6TkcD2DhŠƒt‚“‰Ž‹†‹ŽŠ†ˆŠ‰‡‡ŒŒŠ‹‹ŒŽŒ‰Œ‡…†Š‰……‰‹fDLUMNPRSQNLLOPRPF<;:7<EFHHCIF<FedOV]VTXXWUSWWVUUWWUXUUYZVTYWW^TD]ƒŒ†‡‰‹ŒŒ‹‹ŠŽ“˜‘•œ––€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€!5>@ADF;A@?><<=>><7-$ "6BBEGEEEEEDDEFFFEFHIHIJKKIFHJJGJJJKLLKJLLLLKJIHLNLKMMLOKNNLONKS\OGFBKZO@?CBBC@A??>=COUPS^eeda_b^TPo…kSU^b_UMKKJOONORONROMOSTPOQOMJHJNSW[]afjnnlhfa\ZXUPRUVW[\[[^ad`\YWQOOMLKLNPLMRWZZXTJHFEHMOMMKLS\behiourwn?!=H?@COWG;@IKD7=KB0<JA7<GPD4<UVKA-&81!*9951;LKB938D@75?FA:@:>=22;?6=B0,5/5E>746;<9>51/+)("  ! "  !"#!!##!+&+105>?=DD<AXhfeffdcejousYBEE==GN6.GOIIKLLLKKMNLNPORSUVRPQSSPQRRRPPRNKNOMLOPKHKIKIJGFH?-" %+4=?A7)/@NRL:&%9TXW[bcebdhjiilqtv|Ž‰M $)("*($4?=4,,010..89, "!-EH3# %%)@fnN7Edw…†y”Œ‹ŒŠŽŒ‡‡‰‰ˆ‰Œ‰‹‘‹‰‘‘•Š‰Š‡Œ‰†ˆ‹Š‰Š‰„‘bCMTQQQPONNNOMNQOD=>:6=EGGHCIG<EddOU\UUZYTSTXWYXTVZVVYYWYZZYVV^TE]„……†‡ˆˆˆˆ‰Š‡…Š‹ŠŠŠˆŽ”—›š€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€/CGDA>@@?>>===<;5.'##!",AJFDDDGGFDDEFGFGGFGHHHHKIGFGIHGHIJJHIJLJJJKLLLKJIJJIJLJJNOMPNJR]REDBJUOB?AABD@@@A@>BOUPU`b]Y\bjj_[|‘qST`b^TLJJIRQOPRNLPOOPQQRRSTOJHIJMPU\achnmgffd`\ZUPSRPRVXX[[_b^WWUPLLKKKKKKKLOUYWPJKIHJNPOLNOSZ`dhlkqwponH%19?AE?7=ND0:GGPOKERG4J^]MKSb\OD4*0+$,68:7=IHIJ><@A>@HD5.169779;=7=F;<HABGB=<:1.6AB;5570',--*%&&!  !&%'" !"&)(8EF<AXhhffedceimsy`CBE?=JK51EKHMKLLLKKMOPOLMRVTQSSSRQPOPRRQOPSOHKONMONKKIJHIFGLD1%$,1;CC>4''6CQQG3!,CUYY_a`defghhjnqsuy‹†J '&!+)!"(2:>4,-11/.-5<9)!0IE+%2Tl_=C`tƒ‹~}‘‰‹’Ž‰‰‹Œˆ‡ŠŒŒ‰‹Œ’’Ž‘’‹““ŽŽ‰‰†‚‡Œ…‚‰„‹š]CPTRRQOMMNOOKMSOD=>:9AGDDFCEF?HgdNRXVWXTSVYUUWYVTTWXVUZ[VU[XX]PA_Š”ˆˆˆˆˆ‰‰‰ŠŒŠ†…‡‡‰Œ’“’€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€=EBAA=><==<==81+!#$# !!!#!(@DEBABDFEDCCCDEFFGGEGIIGIFFHHGHJKIGGIJJIGHIJJKMNJIKLJKLJOQNJNLHR`UDCFHQPB@BABC@A@@??DQXVTZYSQS\gmddˆwSS]^ZSMLNNNPOORQPSNPQPQSTRTPNLJHJMPY^^cmmfkmkfa\WRTQOQUSV\]^_[URQMLJHHHIIHGKPTUQJFMHHOSPLKLOU[_bfknpulkpR'8HNUQ99UeZBJ_]YYXY\ZVVVUPTOMRTK9//'$-//677HLJJFMJE?;;:;<EIIEGNQOHDGJEFF;473393-67;<:;9,##,40+*)%&'&$""""!! $##'&#6GJ=@Vfhgfecceilqp[JIA9@KE@HMKOQKLLKJKMOOPPOQQPQSTTRQPQQRPQRQNMLFLMJLPPLJLKKHHNG9++36>FB90$!0?FQOA-3NZZY^_\cfggghknqsww‰…J%$ ,* (4=>2*.20/1028;3# $;G8#!)>\fBAax‚‰‚‡Œ‘ŒˆŠŒˆ†ŠŽ‡†‹‹’‹ˆ‘ŒŽŽ‰ŠŽŒ‹Žƒ‚Œ“‰‡Ž†Š˜^BNSKOSUSOLKMKNSOE><:9AGDCFDEE?KhbLSWVWWTUWVVWWXXUTXWZZXYYYYVY^NAc‘™ŽŽŒ‘‘ŽŽ‰‰Ž€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€ =A?>;:=8=<<<:1#!! !#!  (>NE@DHGECFEDDDDFHGDDGIIIJCGJJIIJKIJJJIHHHHIJIHHJMIKKKMLJKLNKIPOJSdXEEIHOQA@CBAB@B<;;>DOXXQUWWVSV`f_c‹ wOO``[RLKLNOSQNPQOOOOPQRSTUQPPPLIJNRTW\cimnjmnkgdb`QSSRSUVZZXWVRONLKHFFHHGEHNTTQMLONFFRVNHIQTZadfjnporjjtY/$NcVMWSPWSMPWSJHIF@<BDKQA>ICBLOG<=0 +$"3.!9MJD>IOKMNHIRVWSTQGGIA:53;29M7+5.+=E?A928@>>9, ,("'/*+,+))*,&$""" !"!!$&6IL>?TdggfdcceiktrT87;9?NH<?GLPOLLLKJKMONNOQRQOPRRSSRRTVQTPNSRMJOMOPMLMLKNNNJJOHB3178>D=4,"#6EIPL>*!9Ua\W\]\bechllhhpxyx‰‡M$# ,*!(4=>0)/4103334660$#-<C4!!#1NbGBdz{†Ž‘‹Š‘ŒŒŒŒ‹‹Šƒ…‰Š‡‰ŠŠŽ‘’Žˆ’Žˆ‰‹‰‰…†ŠŠ‹‘ŒƒŽŽbAIPOPQONNPRNMNOKE@=97>FFFHDGE>Lh`KV[UTXYWTPVXWUUVVVW[YTTY[\RX_PCh”š“’‘‘‘‘™‹“”“’–”“•—€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€(?A=9::9<;84-#!!!" "! !#$" '#"!"5FFDEFGEEFEDGGCFJFHHHHHIIIHHHIJJIGHHIKJGGHLLIIKKJMMJIKMMKKKLLJNMKSeYFFKILL=ADDBAABA<<?CP\\PXXUXZ\`jbi¦‚UJbbWOLHKNOQONQPNQPLNRQRVWVUSRPNLKNQUY]afiqsrnkljf^WQPQSX\^]YTOKKKILJGHGGIGLNPPKIOIKMQRJGOSW_giilrponlkug1!<Q?:F>CUL>=ELE9CJA7;E?67HN@2@RM@C3 '%0'+GME>6EFKSULIRPI>55995011-/@JF@ELEFH><561/7>@A8% *&%) +, $/2.*//++(&& !&%"!!6EH>BYijceecbelqxsM*/<>@L>9@HKLQRMJLONLJNOMOUUONRSRRQQRSSQPNKKNNNLKKMNMLLOOLJJJJE>99>CB;/$ !&:JHPR>%$1@O[YZ^a``adehkoquxu€†L !(# #'2=81-/341/12873;8#$%,=>, $.AXTD^~‚€…‹‘Š‡“Š‹ŒŒˆ…ˆŠ‡ƒ‰ŒˆˆŒŒˆ‘‰‘‹‹†…Ž•‡„ŠŒˆ‰ŠŠ…„“aCMSMQQMMQQLQONQPG>><=ADDEEA?C>Lg_MUVUY\ZWWVQTVVWXVSVUVZZVUV[XZLBf’›’’‘——’‘••‘‘•••™—™š˜—™š€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€*=<;=>76?95,# #"$"!#&'$!$% *;DHGGECBCDEFCBEGECCHGFEEEEFIHFFGHIHJHFHJJIIHJKHFJLHJNKFHOPKJLLKNMIPi\ECJIKJ?@BBABDF@;;=BOZYUVX]^XZei]b‰¤…XM[aWMLLMLORPPRRPRSTRPPRSSWTRQPMLNHKOSX]cgmoponnljg`XSQQU[][VSPNLJIIFFHHFGHMQOGEHLMPONOLKQSYagijmqrpmlkxm=1>34??BA7:G@/8ECHTMGQJ@L[]XPVd^HF>&"(1+,026BE:3DONLJ@2>@<2/598;ACAACHLDGRF8>>5<D;06::AA<60 !&#*$"*(&*+-0//+)*++*))8GI>BXhgfggdacinusT20;?BBAAFMIFMTOKLMMMNIOQOPSROPOOQTUTRQRSQLKNPNMLLMNMMMOOMKLKJLC?CC?:6-!$+:IJPS@)(6HW\ZY[]]_acfijlptwvˆP "'#"%'0:9/),1222*286497.  ''1;7#"!)>NTKa~‡†Š—ŠŠ‹Š„‡ŠŒ‰‡‹Ž‰„Š‹‰‡‰ŽŒ†‹’’Œˆ‡‰Ž‹Œˆ‡‹Ž†„‘Š†ˆŒˆ‚’cAKVPRQOMNMLJLORNB:<89?EEEDADI@JgcNPZVVWUTUTTWXXXWWVWVVYZWWYVY]MBg’˜‘”““–•’”˜•’‘”—šœ›˜™š——˜™€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€.@<9=?96;)&!  #%""""!"$%$#"+>JJHEFECCDDBBFDCEDBEEEGGGFFEJHFEEEFFJIHHGFGHIHIIFGJIKIIKLKLNJLNLNMHNe]GCLKKFBAA@@ABCA=;<CR[YRRW^^UXej^dŽª‹]Obi\MLMPNQSSSUUUVUSOPROOUXTQQOMMPJLNQTZ`ehhkoqooonhaZTQU\^ZVTTRPMOLJKNKJMQPQMILPMRTQMMNOSW^eiknprqolkkwrI4=68FPN</NdW>CZ_ZZ[\YRS[ZQTWOQWO@A4'(*462+-:CB2;@FMH:14=A?BJKE>JMIF?:=5>QNFX_P?IK?0*097@B<+%*"$# *'$# "$ "#!'+*.429HJ?AWfffggdbcintqW83<ABDEFHLKLPQONOOMMNMKMPQQQQQRRRRRSTRQRRONOOQNMLMMKIOONKLMMLLGGJHA92* )2=HJLRG53=KWYY[^`abdbgjhintvw}ŒX #'"%'(2?:/*163//-3676-%###!%4@1#!""5AQRbw…€“—Š…ˆŠ†Œ‰†ŒŒ‡…‹Œ‡‰ŠŽŽ‹ŠŒ‰‡‹Ž‰ˆ…‹‡ƒƒˆˆƒb@LVNNNOOOOPOMLNMC<=65=EFDDCEH>IfcORWSSVVVWUXWWVUUVXZXWXXVVXTX]NFn˜˜‹‘’‘’“˜“‘‘““–™•”—™˜—˜˜€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€1D?87;;5.  "" "$&!"""""#$"#0BIHGFBDDDCEDCBDDEIKGBHHFEDDEFHHIIJJJJJKKKHGGHGLKGIKJHIJJJIKLNLMOMNNKOgdLBHIHD@@???@??C?;:APXUVXWRPValh\c‹¥Š^Ocj]QNJJKNOOQRSSUPQPOQRQSTSSSQONOOOOOQU[_ccgnponpomicZUX_^][YWVTSRPOQQLKRXWTNGIOQVTQOOPRVZdmqstrommkkjsoN3QYTV^bXVYRUWSRMFHEBCACNK?EJ=;FIA@:%&)+540.027??=59IJDFKJFDHKC65@A;>FHGMU`^[eaKIEA>80**29<B?4*!)!3/!*'#!#!'! +%(218FI>AWffbdeecfkpvoT85?B@JF53EMMPNOPQOLLNLKMMLPRNNPPONMPRRPPPOOPNOMKLMNLIOOMMMONLIKLKIG=0'!$/8CJJKRL?<CKTZ\^aaaabahkgfmsux|‰b"$&!")'%0@>2-5:513/563,#&"!*>A*#" +8GR`q{s‰•‹ŠŽ‘Œ†Ž‰†‹‘Žˆ„‡ˆ‡ˆ‹ŽŒŽŠŒ‰Œ‹‰‹„…ŠŠ†‡ˆŠ††’Œ]COTPPPONNNMOMMPPF<;96;DEDDFEE<Jf^LU^XWYYYYVXVVYZXVVVUUWWWXYWXZKEn––‘—˜——–•™—””•””••’‘”—––——€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€1A<7551( !"##$$(%#$''#(2BKIGGEFDCCCCDFFCBFJIFFFHJJIFFEEGIJJIHHIHGGIIHGHKJJMMIGGLMIHKLJLMNLLNMPdfN@ILIE>>>>@@A@A>::CRZYY]]UT^jnn^`‚œ‡`MamaQMJKMMMOPQRTTQPRSSRSQSUUSQPPOONMLMPUY_^bilkknmnplcZ[`_ab^YVVWWUTUUOOUYWQLKLS\YRPSSSV[djoprttqlnnomnkQ#*L\QFIMEOMB@DIMA<DF:3;C@3CSN;9HRK?@2 '+/1/*,.14:B@68EKFQE946:97?GNMP^ea`[WRNVVD7E@=KB14=<69BD6, 4.)(! (/!",'!)5DG=AXhhadfedekovnQ66>@ANK+'GPIMONONLILONPSQMOSRPPPQQQPOOPQPLLOPNMNNONMLLMNNPQOKLOOJIJA0(',4?JNJNRNDCIRXXY[[]_ce`gkgflrtz|†‘l)%&&,&"/A>3/6:537065&'&!#2C5&!#!'4=M`pƒ}u†Ž‹ˆŽ‹Œˆ‘Œ…†‹Š„‡’Œ‡‹Ž‹‰‘Ž‹Ž“ˆ†‰ˆƒˆŽ‡…†‰††’‰[BOSORRMMOOKKMOQMB;=;8=EFCEFIF<Jf\JS]UQRRTVUUTUXZWVVTTUWXXYZZWXJ@d–‘‘“‘’”“••’”•“‘—›œ›œœ€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€/7246-" "##"#*(%!!',=FJIHGFGGDCDCBBDFGCADDEJCEEFDDFGHIJJIHFFJJHGGIJJNGFJJJJIGIKMLJHIKKMJIMLNekP@KOG>A@??>?AB@=:=FPVWUZac`cecaVZ|™ŒeMbuhOIKMNPOQSRTVUSORXVSSSTWWTQRQPMMMMMPTWZ[^befhilorqi`]`cghd\WWZ[YUWYVTW^YNKNQU_[RQVXY^dlmnnopqpnqqsoliW+1A;2?G;CF@DH?7:LHOMBLSDENVWZ_a_RDFA*#*11.*&+25*-@F75@AKE?;8;EOWZbd][\VC<>C>HSF<NMFKLB?:><<GYL!.$1,+(  .9+!),$4CG=AXhhdfhgddhltpQ68>>DOO<;JLMMMNNOMJJMONOPNMOQPQRQONNOONONLMOONPRRONMNMNMMNPPOPNLJIJC8-05<FPQKLONLNTY[Z]_^\^`a_eihhmqs{|‚v2'%#-+"!1CD8.,*)-64,# $&# !'4<4$ #(17E]q€€x’”‹‰Š‰ŒŽ’Ž‰ŒŒ††ŒƒƒŒŽˆ„Ž‘‹“Šƒ„‰†‡ŽŠ‡‡Œ‡ƒˆZ>LULQQLLRRMNNNOMC=>:9@HGEDCHG<IhcNQZTSUUVXXSSTTTTVXVVWXYYYYVV\NBe–£“’’”“‘”‘‘’Œ’•””•–€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€,/,0/"  #! "" #&'%!'7DJLJHGDCGDDDDDBAADEB@CGFDBDHHFDDDEFGHGFFFHJIFEFIKKJGDEJLGHJJIIJKJKKMJILKKdmP=JQKBAAB@?>?@A>;=@BABCCHJHHID>@Ru’ŠiP[tjPHHIKOMOQPQTROQTTTUURSWYXUSQONNOONORTVXYZ]befikpqmedfmoojc][\YXVVYYWYUSOJKQ\g_USWY`jnmnqttpkinqpplhh^5,@=5ANM:29R`F9QZZTVa_WYWXWUSQMIPJHF4!#+0,/.%%18%0MF56@>CILKKPVVUQKFECA<:9>>I\XMW`S:;JNFLNIK]Q*#2+()"/:'(,$5DG=@WffcfhgedhksrP7AC<DQNBDHHOMMMOQPLKKLPOLNRPMPSTRNMPSPMMNOPOMMOQQPNNNMNNKLOQRPLKKKKHB67;CNSRNKLNPUZ[XX]`___aa_cgjlnqs}}}:'%"+("'6D@4&%23*"%%##"&5:-"!(-3:Wnz€‹‘ŽŽŒˆŒ•‘‰‹Ž‰‰‰‹Œ‰†ˆ‡‘ŽŒŒŒŒ‹‹‹Š‰‰ŒŒŒ‹‰†‚Œ†W<KTPRRNMONKNMMQQG<:8:@FFEDAED:JjePSYUVXUTTSTVWVUVWWVVVWXYZ[SV\OFl›¤–—––““˜“‘””“—“‘ŽŽ’”€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€").,,&#*..*& #!# $$""(2?JPFFIIECEDBCB@@BCCC?CFBCHG@CFFEEFGDFHIHGFGGHGFHKLJHJHFIJHHFHIIJKKJKLOLJMKJboT?KQIA;>AB@>>??<:=>9667688587.4@WuˆfQ[rhQJHLUPNPRPRTROPPRURPSXYXVRQRSMMNMKJJKSUVUX`dddgkonjjmvvtpid`^X\\Z\]]`ZTPLMYegaYUVYfruxsopommolokkfcgb<0EHKQTZ[NQW[]SMSTMHID>A?IOG?AB=>HHLB)!%#$..,1)#(>OG::3:CIKIB;HJ>3:CB>IUUX[WWPHITVHDMSLJH@<OM!+" 5-',& 1?"!/)$($7FH=@Ued`cfgffjnusN7JK;AWR56LMMOPOOPOMLNKNNNPONQSSSQOLKKMMPQOOONPONOONKHILOOOPPPPNMLJLKG=;>IRTQQPMKMRXZVY]_\Z\^__afknoqs}~}€?($&/+#!$'$"!&7C4" &($"")67' &*.0RnxˆŽ‡‰ˆ‰Œ‘‹Ž•”‘Š†ˆŠ‰Š‹Š‰ŠŠ‹ŽŽŽ‰ˆ†‰ŒŠŠŒŠ…‹‹ˆ‡…†ƒ„Ž‚S>MQOOOOONNOKLLNK@:<8:?BBDEBEB:Mk_JSXUUVTTVXVWUSTVVTYXVUUVWXVWXICl“‘Š“–”‘—‘•™•”—•”“–™˜—˜˜€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€$%000.&%*/21230+!!# $%"!"$,6?HMJCHGFEEDDDAABCCCCCCCBBBDFGGFEEEEFIFFFFFGGFHHHIIGGFFGHGHJJJIIJKMNLKKKMIHKLNdmX@FQNC:?@?AAAA><<?A>:7<<;:86549BRm~xiXWloYLKHKRPNORROLOQONQSTVSUXXURQQOPOLKMLHNPOMPX^^a`dkomlmuropqng`\XVXZ[^b_WRSW`hjeZT[fnppsojiousnmngadefjG8_^WZMEMJLMH??BNIB?<55>ECLI>AC>1;PME@,!-.#$*/15+5LI@A5+4CHD7-:<=>FQY[a]ZVJ;7<F@ELIGLOLEBELZM$,(,-',/&09'+-!$$4FJ>@UficfgebchmxnN;DG@BKC16JNJJJNPOOONLLMNQRSRQSPPOLLMLMLNRPKLQQQPNLKLMOQNJLMNQOMNMKJJIECGMMPRNKNQRRSVX\]\\^^]_fceknmnrz}}‰…J""*0'$252.*%7VI !"'# %).-%#+/+Fy‚–‹Œ’ˆŒ‹‡ŒŽŽŽŽˆ‰ŒŠ‡ŠŒ‹ŒŠ‰†Œ‘‹ˆˆ‹ŒŠˆŠ‹ƒ„‹Œ„„Šˆ†Ž€Q=MUJMPQOMMNMKMNJA=>87@FDCFDII=Lh]KP^WTTRSVVUWWUUVVTTXXVVVWYUW\L@f‘“‘”—–’‘”—’––”‘’”–”’—˜—˜€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€+#!../-"'/430.05:<83*!!!! "&)+5<BEHJHEHIHGCBCDFECBAAABCCBBCDEFEGGDDGHFHEDHHFEIGGHHGHHGHEDGIIHIIGHMNKIJMIKLKIFJenY@DQPE>A@>?@@A@=<<<;:;;=@?=;<=DGMaqqgYYou[GILPPOOPPRRSPMNPQPRUUVWXYXUROPNMLLKIJLLKMSUUUVZadglrqnkklmlj_][ZXX\bd_XRTakl`[Y]ekllmmllnqplljc_a`ahM 7YI6@=4CA>SX>7EMM?7BH<2HB/0GVN;6F[WHF:',+"%+/9@07QF39B.+4=DA?CDLY`_XUEA?A?;<CDBDHIKMNFHMNQ\P)'(" ((/(/9'/4 5FJ>@UfhfggeccgjtmM9GO=/::/6INLMNPPOPQOLLLMORTTTMNOPQPOONPQRPNNPMMMMMLLKOQNJKMNQQNLKIKNOLHIQTPNRQOMLOTX[[]]]__^_bdinppop|‹ŠR%#  $1AG<970.,"+T[3"''&#&..,.4/?m…‰•”„”•ˆ‰‡„Œ‹ˆ‹‹††‹Œ†ˆŽ‹‹‹ˆŒ‹‰‹‹‡††ˆŠ†‚…Š†ˆ‘yG<OTKNQQPNMNKKNQLC<<:8?GEFGDEI>Lg]LRVSUXWVUSUVWXXWWWUTYZVVYXRTXJ@g“—“–•’‘’’••’“”’“——”•€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€'1!$,02. !/242248;@DC@;5.)%#$'()/:BDEIKIGGHGJHEDEECACCCCBBAACBBBCCDDDBCEFCCEGFGGGGGHFGGFFHIHKJJJIGGHLIHKKIHJKMPLLNIF`m]CDRQC>AA?@?>>A=;;=>?A?ACEEDDDHMS`jiaTQes`JHLPQRSQPOSVSQQNLQVSTUUVWXUPQOOONLKLKMNMNOPNPQUXY[biiknprqpoib\YYZ\][\\Z\dhefc_\_ejkjorqoppnnibacacmV%0TI2684BB<D?7HM7+>LER]HPRFGRZZJBJVSDCD/! )+('+37=,6QA*3@@6/:>=NOQROOLD944:CHDBCBCCDHHJNOLMJIRI,#+.!$)&++/>+2;#5EI>@VghhgfdddfhtoTBHF72=?69JMKIQQPOPRQNLLLLOSSPPRQPRPMOJKNOOOPRQPOOONMKMPPNNOOPMLNONNNLPPNSYSNTPNKMRWYZZ]]^a`_`acefhmrv{~‹ŽZ '&%,,,.6B@:621=A5'FW@ &0* !072++2B`vw–…‰ˆŠŽ…ˆ‹ŽŒŠŒŽ‘Œ…ˆ‹‰‰Ž„‹ŽŒ‹‘‘ˆˆ‹ŒŒ‰Š‡†Š‰ƒƒŠ…‹šyFAPTMOQQPONNLKNQMC==;7=EFFGBCF>Mh[MVXTUWVTTSVVWYXUTUUXWVXUSYSVZK@d’›‘’’‘’‘’’“’’‘”’‘‘””•˜€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€.1&,/2+ (/2005=@??CCCCA?<977:<>BHKLHJJIFGGHHFCDEGECBBCCCCBAEDCBBCDEDEEDEFFDFGHGFHHHFHGEEHHGJIGFHLIDIJIGHKLLHFILMNJJ]l^B@PSD=AA@@?==@<9<@A@?>;9:==848HUadb_VQ\mgOFGKQSTTQQSUROOPNNPPORSSTVWUSQQSQNNQNOONNONNNPRSRRUYdgjllmnpof\YZ\\ZYWY^bgjhffa]aipqkpsqooonle_bfber_, +QU?765=II;-A_\><L[RNVXTQMKIFEA=<=JGEH5$+/'#,/075*9N=*0.&5>31:BAGE<:AD@B?>AA>;<>CEHMKIOK>85=LH4-43,(%#)/+$%%.=-+8%6EH>@WgghfdddfghwrW?=83<HG::HNLGPQPOORRQOKJNSRRSPQQPQPOOLKKNMJJNRQPONNMLKNNMMMMMONNOMNNLOSSRUVRPNMNPTXYYZ]]_bb`aeghihjosw}|‡a$('7@3*/8>A@2"$5<808EA* !,.)(3:2)%,4BV[`x‰‹‘Œ‰†‚‰ŒŠ‰ŠŽŠˆˆˆˆˆ‰Ž‰†ˆ‘Ž‰‡ŠŒ‹Œ††ˆ‹‡€„Ž†›vDDPTOPQQPOONNLMOKB>?86<DCDEACC:OiZKYZVUWUUUTUTUVWVVVTSTVTUXZW[_N?^ŒœŽŽŽ‘“””‘“Ž”“”””““”–€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€(0,'/--#*//676:@CAAD?ACFGGFEFEGIIFFFHFFGIHGFDFGECBDFDDCBABBBDDEEEEEEFFEDEGGEGEGIHEFJHHHEEGGFEIJGGIJHIKKIIKLJKGJJLLIJZkaE?PUE>@@=>??@@;8;?>;86201441-:O]a_^a\SXhcOFJNMORTUUUUPQPQRQPRPRSRSVYZVUVWUQRVQONMMMNPLLMMNOQQTY`cddgilh`ZXY[\^XX\bjoohigehnpnkmljjkkha\Y^dadqe4"HZOGHIHQZKCNRQFNMGF>9?@?@?OQ=BD@7DJEI;!&.)$(,0<7.>M:).*(?937;@ACB?;;<43566457BIGCKMF?91-(6PJ3,3113(")*,+(#!)/&!.&7EH=AWgfedccehjkxrN.0744DA67FOQMJNPNNPSTOLJIMQQONNQSQQPMQONOMIIKOOPOONOOOONLKNQQOMMMLMONNORRRVUNNPQSTVZ]Z]^_bbabcdhlkilrv|…i+%$"<B/$.;BC8'+5;86=@-"3>:73.+)./2AJRcw‡“ˆ‡ˆ„‡‹Š‰Š‹Œ†‚…††‹ŽŒŠŠŠ‹‰…‰‹‹‹Œ‰ˆ‡‰‚†††‡‡ˆ“c;EPRPPPPPONNNLMOKB=>76>ECBEBCC:Mi[LWZUTVVVYYWVTTVYXVSSVWVWYWXYZL?Z„•ˆ‰•—˜—Š‹’ŽŽ’”•”‘“”‘€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€-1)(10+ "/0/6=>@DEDBC@ACDEEEDGDDHHFFJIFEIJIEDFGGFCBCDCBBBBCCCABCDDDCCGCBEFEDFFFGHGEFIHHGGFFFGIHGHIJIHHHIJJKMOLMNIIMJHXjeKBQWG<??>?@?@@<9;=<:977643468F\fd\Z\UMUbZHHLNLNPTUVTRQURNOPNNTTSSSUWYXYZZWUVYWTRSRQRUNNLJKOPOPV^ehikljf_YWYZZ[YXW[flionkijkkilkighkhd\[[`gefof= ?ddPMZN=GFBJC<;BOL:;DB78GBIP=>IJ@DHJRK)!/1/-013-=L7&-'%$)6<7>@@@A?:426421/147@E:-6IE3499'2SI+/3131%"'&&)*())$%$"",- 7EG=AYgfccccdgkmwnJ/4833?=49FNPMFLPOMOSURQLHJPQOQPRROOOLNONMLMMLKMOPONMNLLLJIKONJJMOOPPOOKOTSTUQNRVXWXY[\^]^`a`b`_agiinvw„€…‘p4!<E3&-<G@& #.5768:/ =RM;-')+349CIS`tŠ–‘…‚„‚‡‹ŠŠŠ‹‹†‰‹„†ŒŒ‹‡ŠŒŒ‰ŒŒ†‡‹ŽŒŠ‹Œˆ…ˆˆ‚‚ˆ‰ˆ•‰T;LSMQPOOOONMKJMPLB<<88@GDDFDBF<Kf]MT[VTVUVXYWVTRTWWUV[XUXXUVVSRH@X|‚†‹’“““’Ž’“’‘Ž‹–—‘€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€-3++2.&%,0123=@DEEEB?GDB@@BEGHFEEFFHJJHGIJFFGHFDCEECB@ABCDCCBBBAAABDEDFEDFIGCDGHGEFGHHFGIIFFHCFHGFFHJJJIIHIJMIEHJJIINYjeL@OYK:?@?@@>>?;9<??=;9973015:Hbog[VXQMR[RFFHGMNOQTSRPPOPSTQQSURQSTTTVWZ\ZWVXZ\YXYYUUWSVURPRSQQRUW\agkhd]WWYXUVVUQR\ffhhiiggimjjigijf`[_`dihfjeD6djF4AB*7>;NUE8BNM?<IUA:GD?JHGJJGJECLG-(.;9)$*?H6)++10%,AEA@?><:8650146762//3.$/GI72<A,5UI,(.,/2,.21-,+)++&('+',4,)8EF<BYgecdedcejnsjM:<939?:29HMOKFKPPOPSTQJGKMLNSRQQPPPQQNONKKLMKIJLMNMLKJKNNKMOLKJMOPQRQPPRUVVUSQTWZ[ZZY^_]\__`bccejllnqv†‚ƒs9"?G3'/=D+ +161130&)ARQG8-)170<MLWfxˆ›’ƒˆ‹€†Šˆˆ‰‹Œ‡ˆŽ‰ˆˆ‘“Ž‹‘“ˆ‡†‰Œ‹‰Š‹ŠŠ‹‰……‰‹Ž•zLBPQMRPNNNOMLJJMPKA;;:8@GEEGDDF>MfYJTXTVXWUURRSRRSTVWYUWWTVYVUTUKARuŠƒ…‡‡††‰Œ‘’“’ŽŒ–˜’€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€*5/-2%)53493<AB@@CB>ABDFGGGGFHGDDGHFIGHIGDFKEEDDDDEEEDCBAAAAABDEFFFECBBEGFCBEEFHFDEIHEFJJGGIDIKFDHIGFJKHGJJHHJMJIKJKWhfOANXJ<@?=>??@@;8;??:6/.,,.4;@Vs€s^W\ZQORNIJIJJKMOQSTTSQRQNQSQXTTVUQPRV[]YVWYYZXY\ZURSSZ_\YXXVSSSTX^cfddaYTTVVSRTTRWag_cilhbdicegffe`ZW^`bfe``dH)WhH0351<B>EH9D@:7<CKSJEIKJLMUG<=E;8FH-"$!29+,FF7/'.7.!.815B>@D</,30-**,,'"(-57:ED518@4>VE+'0*+2002.275.()--(-'(3108EF<BYgecfgfbchmliM6<@62;1(5HQRNHLPPQRRRKMMKLOPNPRQPSSQSQNMMLKKLJJKMOPOOJJLLILNLMMOQPQRPPXWRX\WSZWUUX[\\_`][]^_b`bdhkmmls…‹r:  <A-*9<1!*/8002+  1;CKSM<0<H<DMFa…ut”šƒ†Œƒ„ˆ†…‡‰Œ‡…‡ŠŠˆ“”‹“ŒŽŒ‚†‰‡ˆŠŠ‹Šˆ‡†ˆŒ•‘hDDIKQRPMMNNMKLJKMI@<=:7=EEFFBGE=RhSEWVRRTTTVVSSUVTSTWUUTUVTRTV\`SALq‹ˆ‡ƒ}wy€‡‡‹Ž’‘Ž‘‘Œ••€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€!*2'".*%03116;@CCA@@@ACFEEGEAADCCEGGIKEEGIHFDCCDFECBBCAB>=ADCC@BBAADEDEDEIHEEHFEDCEIIFDHHGHIIKIHIIFGIFGHKLKHIKJKLKLMJGXhiWAJ\M<=A>=@>?@<79@<1-/-.5>@EP]u…xaVSNLMMLIGIJJKMQSSTUVSOPSPNPSUUVWTRVSV[]][XV[_^ZZZYZ^\[\[ZY[YWVVXZ]^adc^YVTSRVWPNW``]`cb`bcabegfda]Y^bdcbb`\fT((GaV@=::;CH:2<OGGHKQPLMPPNNNMKGDFFLRMK- " !(5.#0C;-**+4*$2."-B=?E<//..4/'(+*().325DE53>>7FUB*0/+)++)(+/1002.'#(+))/227FJ>=UhgddcbbfkpxoK1:A95.'&4HNLNMNNNNNNORUOJMLKNNPTTOMQSSMLNNNMKLKJJJKLMMMNNLJKNNOONNPSUWSQTZ][XXYZZZZ\^]\]`cdca`cgjlmoqu‚q1 ;E-&50$/5/'-0% +0/04@NM>@OLGF7K…sq™Ÿ„„‚ƒ†…†”Œ’ˆ‹ŠŠ“‹‹Ž‹“˜‘‰‹Ž‹‘”’„‹‰Š…Š™‹Z<MSILROKKMNLJKJLNJ@::89@FECCBDE=NcTIU^UUVSRTZVTUVRQSSUSUXYZZUZU]Z@DoŠ‹‡‰ˆ~…†ˆ‹Ž‘’‘‘‘”•‘Œ€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€ .3$%,"-422556@A??ABA?ABDDBBCCFEEFGGHIJHHJIFEGGECCEEB?CAABADEA@CDCCEDBACEFFGHHCBDGGFFHFGJJFEHIFEGJHFHLHHHIIHHJIKKKKLJGXhjXAHYK>>@<;??A=<89<945138DTYVVe~Ž€cUQLJJJIIHIJJKMQSSTUVSQPPTVSSSSSSRRUVUX]\XX\XY]_\[]_\\]^\Z[^_\YWWXZ\_`^XSQRRTSTQLOZb_]_b``cffffc^[[\`cecbb_[eX,#E`[JHGIGDEGJNLPQKJLMPPLIIKNLILIRSKIEB6*%! "%0/86%"*-.2('-$#5D@3--.21*/-+12+&&.735HH,5;?9@L<$01/--,*+(,/.+***,,++.2317EJ>=ThgbcdddfjmuoN4:=0)$"$2GQNMLLLLMMMMURNMMKLQPNORPNOPMOSSNNOOJMNMIIJMLMNNMLKJIKLMORTTWUSUY\]\ZYXXY[]_^^^^_`abbehijmquv€ƒp/5@2++  $/:1$&)"'7842106==9CBDE14Xˆ…z‹¢£›Ž‹Œ„~†Œ†|„ŠŠ‰ŒŽŽŽŽ‹Ž‹•“ŽŽ‰”’ŽŠ“‰„š«€H?ONMSPQQOMLMNNLMNJA<=88>DDDEFCD>Sj[LV^SV[XROUTTUVVTQRWVTSTVWYVT[ZCBf†“ŠŒ‹‚„…‡Š‹‹‹‹’€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€!02 "''5604889>BBAABBCC?@BBDFCFEFGGEEFHIHGFFECDCBCDDB@CBCCABC@CCCCCCCCBDEEEEFEEFHJHEEFGFIJFDHIGIHEGIHFHGHIJHHHIJKJKKJFTek[CGYM<=A>=@>?<;99<=?DCDKTTFCNl…™ŠhUQMPNLKJIHGLLNRTUUVUQQTTTUTTUWWVVWUUWZYZZYWXZ\[[__YWY]``_`bbb`^][[Zba[SNOTWQPSTMKU^`^adbacdgec_YVZ`befcba^Zd_5>VVONID@?=;;<>E@;DMNMTNHFJJE@?FK;*+4=9.+%$,:8"%.23,-()=??/(043.&'&)12+%"1;55DE4-0;>DM?()+,+-,-/*,.-++/4.+*,.-,,8DI>=SggaceffgikupO354%#$(5JUROKLLLMMMNRQPLJMOLONPRONOPPPPOQUSLLLMLKJJIJMNKIIKKLLOSRNQWTUXZ[\\\YWVVY[\\\^`a`_`aecdfloqpx€„Žm,2?5,"$0:1##'!5C7002-'(),<CGLB33Us}¢¬¨¢¦¥›’Š†„„‚‚ˆŽŒ”’Ž•’‰‹‘ŠŒŒˆŠ‹ƒ–¹¥b;HPLPQOOOONMLLOMMNIA=?::@DCBCCFD>SlZIPUSXWWYUPVVTSWTPRTVSRUUVYTTZXH@[€‘ŠŠŠ††‰ŠŒ‹ŠŒ‘’‘“€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€"0/!&05313448>@??BCA@BBCECEFFEEFGFEDEFHHGFFEBDEEEDCBCBDB@@@?BC??BB?@DFEEFEBBEGGEBBEHHGHFGHGEHIHDFJIFGGHIKJIHJIJIIIKIFUgo`EFVL;=A?>@>><968=CJRPKIPNBAQm‡ž“nYTOKKJIIIIILLNRTTUVWTQSUSQUQSVWUWWRWUUZ][WVUXYYYXX]]\]_``abbddca`][[\ZTOOQRMOSSNMU[Z]`bbefdba_[XX]cdgfcaa^Zdg?5GLIF?<:>A<64=>64@NPFCLHAA:,')68)!"'68/00&+3'$+0104(3@@;-*2550""#*00*&!155==796<ILKL@3//,)((*.//////0210130++/8DH?=SfgbdeeefilxqM,**%&(5GPMKLMMNNOOORPPRPONMLNQPNPQPORQOOSSOMLKKKLJIOMKKLONLNPPPRWVSSVZ\\[ZYXXXZ\]]]]_bcbbbbhecfkonly‚…Žj)2A2!!081##&!,IRB4--'#',>IKHKK>0:Lf{†”žšŒ’«¶¦¤­ªž˜œ““••ˆ”’‘•”‹‹ŽŒŠ‰‹Ž¥§|B?QMPQLLOQPMKKMNLLNI@<=68?FFDDCGE<Rk\LWYSUVVWSPPRRUWURSQSTVYXUUUVXWL@P{‘Š‰ŒŠ‡ˆ‡„…‰„‡‰‹Ž€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€!0.#-74566445=?@ADEDCCEEDFEEFEEGHHFFGGDEIIDCFGECCCA?=ACB@@??BCABEFDDFEEEFEDEGDGHHHHHEHJHFGGEEGHGFIFEHIHHHHHIKIJIHIJIFRdncIHYQ=>A=<@>@?;::;=DIMPNLQTY_p†¡™u^WNGIJIHHJLJJMQSSSUVWURTTRSVUVUTVYVVRSX]\ZYX[]\\Z[ac`^]^^addfgcaa`_[\[VQPQQQOPQNOX_Z[]^_dge_^[XY^bdegfcaa_\ahI/AIE=:BA<?A=9DC@?:=A3+B?250)0---+48245/55-$!&*./*&%+8*#9A@9-)+281!*02/+'--%(:??IONMJOJ7+231..*'')*,.00.+20242++.8BG?>QegeeeccejmxqK'$$*&'4FKKNLLMNNOPPOOPPQNLMLJKMOQQNOSTQOOQRNNNLKKMNKLNNNLNQNOONQVVRWWYYYYWWTUWXYY[[__`aacdeabdeimswy‚†g'.B- ,92# $!!  <NK?3+&#)9FOMLJHE@<8.=[qƒ“ž“†™™¢£Ÿ™£­¦¢ª¯¦§¥Ÿš–”•‘ŽŠŠ„†Œ”‘ ®‘Q:HRLQRNNOQQOMMMLKMOJA<<68?FFDDCGC;PiYLYZSUSTVTQOOSUUSSRXVVVVVXVYXYUQCIs‹Š’”ŽŽŒ‰‡„‡ˆˆ‹Œ€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€1/&*/211214657=@ABBCFDEBBFFBCBCDFDCDGHDDFGDEHGFDDDCA?@?BDA@AA?ABABDECCFFDDGHGFFFGFDEHGHIHEGHFFIHFFHGFIGEGHIHHIJIHHJIGUendJGWQ<=A>>@>>@=<<;DS_Z[XVVUW]u† ž}fZKLMMKHGHJKLNRTTUVVTVXUUUSXVTSRUWVSUWY[][XXY[\[]^[^_`a_^_cfjkhddb``a]VQQTUTMNSQOWa_\^bccdd`]YW[beeegfbaa`^^eO!+AIB;57:7/++-117B94;.76*.02D6/.&&:?5.-3301)"!&/53%8,%9B=;3+)3:-$,0,,-,/14:CJKIHHEENL7.+/022.))$&)*,---/--01/+*8BF?>QdhgfdbadinupM)$#*&'6HMNTJJKLMNOOOSROPRPONIJPQNOQQSRRSSPPRQONNOPPMJIKMMMOOMOTSPRYWWXXYWURUVWXXY[^]^_abcdd`bcegjnqx†e&+?- '61$"&"1IJ@;4379?GKIIJIFEFF>537DRcš™¦°¦šžŸ™šœ–’˜—›¡›œª§¢¥©¤¡Ÿœ•™–”›£‘g?FLPQPRQPNLMOPMJMLNQLB<<::@DCBCCFB:QgVGUTSURRYVQSQTUQPQQOQVXTSSQZXXUTHCe„‘Œ‘‘’“’‘Ž‡„‡‹Œ€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€1.,10121/2578:>@ADDDDBDDCBACEEEGGFEGIHHGFFGHG@CEDA@AC>=@CBABAACB@@DECBFFCBFGFEDFHIHHJGFHHGGIHHCDGIGHHIFEGIIHGJJIHIJJGR`ibJHYT:<B@@A=<=879=Mcrk_UX]Y]kwƒ¡†qbLJJJIGFGHLLOSUUUWXSTWVSUWYWUUWVUVXVW\]YWXVSX^][^a[^bdb^]^ejmifec`^_^XSQQQSOQTPOW``]_deeed][Y[afgfefebabb``dW*&::5<.*6)#+)1-0B<.3,-2.0,-:0.6)(73+*/./42,""-7$)8+(9B@>0'(16-%*1/*/77<BGDBGKGGJLB95.-+--++*+.++,,*)*,-./0341-8AF?>PchefedcehltqO,%###&4FLMPJJKLMNOORNOQPNOPMLORPMORNRRRSQPRTQNNQQPMNOOMKKOSOPPRVYYWUVXYXVSQUUVWXZ[\\_bccbcd_`bejllkv}€‡e&'7( &41&$($0JRNKMEFLMLKGIKIDDHKJ@=;0387DTbdm}Šž ŸŸ£ ˜”ž“‡ˆ‹‚}†‘‰‹“•––“™Ÿ Ÿ¦•c?ANMNQNOOLMMLKKKMMLMOJA<=88>DDDEFE@9Rm[LXXQTVTRPSRQSUUSRRSUWWUUWXWTYVXL>T‘……ŒŽ‘Œ“”‘–’”‰†……‡€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€ /++22252142/39@DCA@ACEBBBACEDDEEEDCEHFEEFEDCDACEDBABC<=<>A@@CCBBDDCBCBCCCCDFGFFEDGJIFIIFGJHFHGGJIDEGFJHGGHHIKKKIHIKJHR_gaIFWR<=A>>@>><8:<:;??FC=98?Wsu™¢zjRJIIIIJJJIJLPRRSTSVUTVTST[[XX[XUXZXWXZ[ZXWVTV]^\\Z[]aba`abghdabbaab`YSRRRSTUPJNY`a``__bb]YWY`fhggdfeaaccadf^4!/%$;1&5(1?.0--?:'.2&)-0/-3=3-;<) *9/*//+-.20% "$)-/'49*,<B?9($***)+2:84;B@<BA>AEFHC92'!),)',.,+)*/-,.1/)')$,0/.10.8AE?>PchdeffeegivsQ-$"#'+7GPNNKLLMOPPQPNRSOQSMMNONMOOLLPPOPPPSQQPPONMLOQQNLMOORSTVXYWUVWWWVUTTWWX[]^]\_bdda`cgbdfijloqu|€‡d'"-!(84% $#!$DTKELJFINJEHLHGEHKJGHIDI;0644-887BFCFWaaf’Š˜ŸŸ ¨¢…œˆzwuw{{‘ªÁ³`9<IMMJJMNKONLLLMMMMKKLG?;<89@FECCBHA7Ql[JTUQTSQSSUUURSUTRTSVVVXVTUSPXWYO:H}Ž’‹‰‹‹ŽŽŽŒ“––’••“”’Š€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€!/, .41123565429@CABCB@CBBCDBBDFFFEEEGHFEDEFFDBBCDCBABC@??@AA@>ADBAEC@CCCDEDDFIHGGGGGFDJKIGIHGHJHGGFEEFIJJGHKKHGKKHGJIESflfPFTO<;?>=@????88>4##3YtrŸ£…pTMLLKIIHFCGMPQRUWVVUTTUWYYTRTUUW[WWYXRRWYXXWVWYZYXY[\]_abefeccddbda]XUUTNWQLMQQV^ac`[^`][YZ^cddehfccffa`bacbA '3$"9/.2&9;)**.?6'10*,%//(5:.*/94%%20(+20-1442+$ "%'(4@7%(9@8..1+(.4=>><989;<BDA<84/+*&#%*-,)..+*+*'/''-/(&*+++))+-.8CEA?McdbdgifdhnrmK*%!#&&+8GMNQNLJIKMNNSQQPMOROMMNMKOQMPQRRQQRSSPNPRONROQQOOQRRUTPPVXTPTWTPSUTUUY[[[]]\_```adffbadhjlljy‚‰‹\% -:/#"#!$! 5LPHGLLKJIIJKLGHHIJKKLIIGEDB@@::998777778:>CHKT\ekw…Ž•¥¢•˜¤§¥¡™yQ:=IMNNMLLMNOMLLMMMLLLNMGA>?99?DCBBBHB8SkVITVRWZVWWQOOUVSSRSRRUURRUUTWWTTUK=lŠ‡ˆ‰ŠŽ‹‰‹Ž‘““˜—•””“€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€"0, .4122222333:@B@@ABCCBBDCBCEEDDEGIIIHFDCDDCACCCBA@@@>@BBAABD@BBBBDCBCBDGGFDCAFJJGFHLIKIHIHEFIFEFGGFEJIGHHHHHGJKHGJIFSaghTHTR>;?@?A?@?;46<0 &A_sq~œŸˆw]PLIIJJIGHJLMNPSVVWXXWWXZTSSVXVUUW^ZSUWWZ[YXXXWX[^\ZZ\_abefgfdcdfc_^]VSTVRUVVTPT`b^]]\\ZTUZ`cddddegihc__b_cdG  ,!1,/3(56*'-180)2*00!*5,.3%)+)%%-5.+-/-/32032*$$&("%28/-9A:48??>><999878:;;7200/+)**'$&*,*(.-*+,)(+%&--&'.0,(&&')+6AC?>LbcbbdfdcgmtpO/)$" #*9JOOQPNLKMOPPRONNNQRONMMKKMONTQOPSTRPPNQTSRQNQPPRQPQTROOTURQRSVURSTTTYXWXZ\_`_`aabdcagddhjkmmv~‡‰Z#):5&#*)4HMLLKIJJJKJKJJJJJJIIIIKKIHGFEDCBBAA@@@<;:9888958;=AFHHQ\hjiuzq^RC=@GKLMMMMLLMNLNPPNLLNGILMHA==67=CCCDDGB8SiVLZYQSVSTXVTUXTRTSQUVSSWWSTSWWTUVMASu‘†Š‘’Ž‘‹‹“Œ‰Œ‹‹’€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€!.)!06444333455:?BBB@@CCCDEEDEGDDDEFGGFEDDFGGEC@AAA@@@A@@@AAAA@@BCAACEBFEDFGFDCGGHIJJHFFGHGIGFGKHFFGFEDFEEFGHHIILMKKMMJW`ejYGPP>8=?>>=?=:6<@/ $''''0B\oq}˜šŽŒhUMGGKLJIIJKMOPRSUWYXUSSTYWUTTTSS\_XV]]Y\]ZYYYXWYZZ[^`a_]ccdedbcgfbb_WSUXUXYXUQU_ebcb]YWSV]defffdafigdcef\bhO!&#!,#0/,;9.,15;/'/+67!%5) '#43 4=3+-/,+14/0671+)(%# %,/8@A?:9::<?=99:::61.-(%$#!%*))(&(++(+/+(..(',&(.,%(31+),-*''6BD@>Ncdda`abbfkytT2,)%)'*.:IMKMNLJIKLMMMNPOMOSSMNMNPONPLORQONQSQSSPOTUOQPQRRPRUSSUTQTWSSTUTQRSSWVX[]\^```_^adfegbcgjkort}~‡‰Z# '43%"+-"-IULJNMIHIKLLKJHJJJJIIIIJJJIIHHHIIIIHHHHDEEEDBA@=;;<;99:8:?>9=@:=;:;AEIJLMMLLKMNNMLJKKLLKLMLF?;<66=CDCEEC@;ViRHUXPPTQPRRTRTTSUSSVVWVUUUUSVWTVWQGFd€‘ŽŽŒ‹Š‰‹ŽŽ’’‘“’€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€!-'"16534454445;?BDB??C@ACDCCDFBEFHGGGIFEDDDDCABBBA@@?????@BCBBBFDABCABGFFEDDEGGHIJIIGFHJJJIIIJIGGGGFFGGIHFGKKHGJJJJLKIWael[GNO>6;@=<;>?=7;=/&/6965:GYkn}•—Žƒm[RHGKKJKJIIJNQRSTWYYVTTTSWYVPOTXTW[\ZX[^^][Z\^\XXYZ\^___dddfggghddc^Y[][YZXVTQS[`b`\ZWSTZ`egffgghkjfdec^]biU)$('*$0)+<7*20-0,*2/3;+*80(.5=?:<B;-+..++12./34112-%%#!!&5?><??=9;<:9620.,($!#"#',(*)(),*').)'/0()0+*/+$'20('/2+%&7EGB@Qgffb^`bdglsoQ2++(*,//7GMLPPNLKMNOOLOPOMPRTQRONOMKMSPNOQRPNRRONQPOPPRSQPSTSRQRRQRQNNNRRORXXSVYZYX[__```cggedbcghkoqt~‰Œ]&!(0/%"#&18ESQHKMJMIJJLKKJIGHHIJKKLGGGHHHHHJJIIIIIICEHJKKIHLGDFB<9<>@:7:;<C8=ELOOLILMMLKLLMNMLMMNLJOOOLF>;<89?EDCDDFA:UfRHUXQPRQSWXSRVVUVUTWTUVUWWTSVVUWYTN<Sz’„‡ŽŒ‰‡ˆ‰ŽŽ‹‹ŽŒ””“€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€#/'#13211211135>@ABB>@EABCCDDEFBDFFEDEFGFFEEEDCCCBBAA@@;>AA?>@B@CCBCDEGEDCDFGFCEHKJGEFGKJJHFEGGGEEEEDDFFGGDFIJGFHIHIJJHR`fl\IPSA8>B>=>??=67:0%)/-'):JWck{’’‘ƒmaYMHIIILJIIKNQQQRUYZXVUTXVRPQTVVTUZZX]_Y]\ZY[_^Z[[[ZY[_bcefghjjigggb\\^ZW[[XUPRXZ\XSUVVV\_cffddfjlkfdda\_biY0!*)&",3,+0,(60#&5;17A<9?>;<>=;:=A<4,-,+,.//,../372)$!!#!#.:<AC=973.*'#!##"! !#(--*)++*+,+')0-*0-(-2,+-+%'.8-).0+(*6EHA@Rhfhc`acdimroU6..*',106FMLPQOMLMNOONMLLOQQNOQOLMLIJLMONNNOQRTRPSUSSPRSQQRTSTTRSUROPRPSSPRWYUY[ZYZ\]aaaaceecffgffjnmr}ŠŽ_'#)32(&$$4GQRJGMJFMKKJIIJKKGHHIJKKLGGHHIIIIHHHHHHHHFGIJJIGEIEFJKGHLDEBBFA=BDFILOMJGLLMLLKLMLNONLJKLJLNNH@<;88>CCBCCG@;WjVNXWSRQPQSRQUYROTSNSUTSWVUWSUVUWXVSEBgŽ‰Œ„Œ‘‹ŒŽ‹ŽŽŒ’€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€".&&2322210/269?AABBA@D@AAABCCCFGGGEEDECCDEEECBCBBBBBBA@BDCA@ABEBDE@AEE=BGFCBDGHHGHHHGFLKJHDEHIKHFGHGFEGFEGHIIIHIIJIJIIRbgj[JQR@8>B<=>=>>77>4"3ESbgxŒ‹ˆ‚me`RIIIHLJJKMPPONRUY\[ZWVQV[\XUTVWY\[X[^^^ZYY[\^a]_`^[Z\_`ehggijjmkki_XWXZ[XVUSRTY[[TNSZ[^`chhfdedikhcaab`ag]7'*&(+02,#%/A=515=@;6:;9:<;62;>9:@;.,,*+-,+0.../11.**#"%# %/881*((#  !"""%((')-.+,-,+,.,()-))//)+1-*+*()-3,(*+'$%3CE>=PfdfcbcddhmvrV5*.-*)116HNJLPNKJKMMMLMKKNPNMLOOOONLLPPOOOOOOPOONNSVSQPPRQPQTTTRRSNMRSRSUSTX[XYYXZ]\Z_``^_bdefhhedkpooz~ŠŽ_'$! (34(!!#2BNPKHLJGJLKIIHJKLJJJJIIIIJJJJJKKKHHHIIIJJKKLLKKJINLKLKIHIJEINLMLGEKPPKIMRLMMMKLLNNNLKJJKKJKMLF>::45;AAABBE>;YjVLTSSTUWWVTQTWRPUWUPTUUSSUXTUUUVWWVL?O|–‡ŽˆŒ‡ˆŠˆ‘Œ‡†‰€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€+$(5444431149>@ABCDCBCCCCBDFECCDEDDDFGGGFEDDCCDCBBBB@?@@AAAAAACADC>@EDCBABEHGDEFGGHIKLHGIHDEIIFDBDFFEEIGFFGFFFGGGHHGFFUdfi\JOQ?8?@:=?;@@86<4# &$':HUedt…‚Œ‚oheVIIJIKMLJKLOQRNORUXYYYSUX\ZWVYZWVXZ[\\^\\]^^`d`aa_[Z[]beijiijlkikjd\ZYZYTRTTQPXXXSNRZ]bbdfhhfefhjhc^^a_^ea@(33:89>:26>><=<:76:99<==<99==95331.,,**-+*/0/01/,**/-'#$%$"&'"!" $$#""#&(*,/-++-/./.+,..*,,*,330/,+)(''((! ! 1BE<;PfcaacdcbfksoX9/54.*437JQMOSQNMNOPOJNOMNNNPSQQQONNNNMMNOOOORKLSSPQTPOOPPOPSQOQWTKLTSTTVWUTWYVSSWZZYZ^```bdecdfffkqqo{‹a(%!(14' "$/<LONJJKJIKJJJJJJKJJJJIIIIJJJJJIIIIIIJJKKKIHHHIJKLIJKIJLLKNIIIHKMFKKLLLKJIMMNMLLMNPNNNPOLIMMLJD<:;66<BA@AAE>;VdOIRVTRRSRRSROSTSTVYUQSUTVXTUUUUUUVXWF6TŽŒŠŠŒŽ‹Š‰‰Œ‹‹‹Œ€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€+$*5321232249=BCAACDCDDDBBDFEBCEGECCFIDEEEEDCCCBAABBA@?BDB?=>@@CC@>ADDCEFEFHHGGHHHGHKMJIKJFFIIHFFFFEEFHJIFGJJGJIIJIHGGUbbg^MQSA:BB;@B<:=87;2$!()#)@NS]bqz}‹ƒrigWIJLKKKJJKMPSTPOOQUY[\USUXXTSUUWYYY]_[Z[\[]__]^__^\[[[cbdhihhijjjhec]TQUWUSPLLXTNNUZ]`ccbadgfdc`affcbe^\ddE ,>CB>888:;3<9637>;:=;??;3.41/(!#*)#+-*)-,*..,-11-,.,1/&""" & #')'&&'.+,020./00.+,//,*,.,)%%'&'&" !"!$*-2CF==Rhd^_ceb_cjoseOGJD87?99IOKNROMLLMNNLPONQQPQSNQTQNNMNOOOOOOONRRPSSPNNPPNNPQQOPTSNOSRNPQUYWSVWUVZ]\[[]ab`_`cfabfhgimnq}‚“d,&")14*'*(2AQOMJIMNKIJKLLKJIGHHIJKKLHHHGGFFEHIIJJKKLMLJHIJLMJNMIIMMILPJFMOJHLJHIKMMMMNNMLLMNNOOMKKKLIKMMG@<<;;@ECAA@@;<YfPJTURPTVSQUYUWVTTRRTUTTVVTVVUUTTTUXROA>b˜ ƒŠ‹Œ‰ˆŒ‰‡†‡Œ‡†€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€!+ *000210/26;>BBCDDCBACDEFFECBFFGFECBAEEEDDDCCCCA@AB@=>@A??ADD?@DDACFDBCDEFGHHJJIGEFIKJHHIIHHIMJHGGFGIFEGGEGIEEJKHHJJGRafj_JHM=9>=<?>>C=7;B1#%(AOW]_nwsw‡„nlm]JFHILLKKKKOQPVPOTXVWZZ[YXZWSSVPU\ZY^`^^__][[^Z\_a`][Z\`bfkkgfohffb]YVUVVTROMLSNMV]\\a_b`_cffhiecdfea^^bdiP$(AIA85;?<:;?@@>:86510/..+'$$!"&)+&()((+./,01/153--/10-#)(%" !%(('(*.-)%-/.*,21*-/-)),+'$"  ! ##"&#)''*-3;=:@H@:Qhfbdfc__dirncZ^f_PWUKGPPHILMNPPPMJRNJLPMLQPNNQRPMKMNONNOOMNQSSRQSTLKLNNMNPOPPPQTTRPOSVVSU[YTWZUW^^^[`d__dcabdgjkkknvyq4" ""()3-'%&'0@OOKIKJIKKJIGGHIKKIHIIIHIDGJIIIJIHIIJJIIHHNMGHKJILMNMLKLMMLJKLLJHHMNJJMNLLLMNLMMJLOOMMLKMKIKLF><<77:@CCBAD?=ZjSHTSTVUQPSSQSUVTSRSRQRTVUUUVRTXWUTSTTN@;_‘ŸŒ†ŒŽ†‰Œ‡ˆŒŽ‹ŠŠ‰€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€!*+100432359=?@@@A@@@@ABDEEEDCADGGFDCCEEDDCCCC@@??@BA?>ABB@A@?AABBBDEBDCBEGIGEHHHIJKJIIJIGGHHEEFDEGFDHGGGIIGFGFGHJKJIHO_be_OMN@<@>;=;;A>89?2#$(BPUW]jrosnhi[LIJIIKNMLMLMRQSQOOTVVY[[[[YWWVSUZYX[_`^^``^\\\]^]]\]]]`beijhhieegd^YTVVUROMMMPPRY_]]a]abbefddifefggd`_bbiV*#=H@=>A?859241)&()'(&$#$%%%'%""#&&&&()(),//.00./11-120/0+"'%$%'))(.241-+++,-,+-/,'&&" "%)-)(+)(*++-1112209AG@;Qgfbdec``dirhVKOUVZdXTWQGFJMOOLLOOMMHIOOKMSUPQTQQQNONPONOPNLOPPPRTUPNMNPQPOQPPRRQQSRQRTUVWY[XTUZ^][^bbbea`fdccceiklnx{€x:!!""*4.%"#%1AMMJJNMIIIIHHHIJKHGGHJJKKLIHIIIHIIIJKJJJJMMKJKJHIJJJKJKKLLLLMMMJIIJLNLIJMKLMMLIINOLLMLKJIIHLOH?:9779=AAAAE?;VfPIVXTSTTUTPSQRUUQPRSUVSRTUUSPRWWVVUWWTMA>_Ÿ‹—–“—‹††Š€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€!)-22255679;=>EDCA@???DDEEEDCCDEGFDBABDDDCCBBB@@@?@@@?=@BBBBA@ABCCABDCCDFFFEFGKLLJGGJLLJIIIHGFHDGHEEGEEGFGJFDGMJHGIIHGTddebTPM>:?=<>>=>>96=3$ANRQVdplirwqde[MJIGGJKHJRQNSTTRONPTVWX[\ZXXVWSRV\\\_][[]`_^\]]\[YYZ[]`bdhhiklhhie_YRVVURNKIIORV[_][]]bccddcchfeegheb`a`h_34?8421,%&,)&" #$"!!$'*+#! $&'&#$$$&*,++,,,,-//--)(.1.*-*'(,/0/-.,)(('#!!!!"!"$%((*,.--.31.,,**--*# %-0.8AG?<QffcdecaaeiqpW>?BAFNOXZQKKHMRPIGMQPOJJMMPTSNLOSRRTRQPPONPQOOOONNPQQOQRQOPQRPOPQRQRSQQPOQTVWZ[YWY\[YZ^`ac``dddddefijny}€‘€B !"!&-0,'%&&.<DLOMKGGMJJJIJIIHIIGFGHIIIIJKJGHIGGHHJJJJMKIJLJIKJJJJKKKKMMLLKKLLLJJLMKJJILKIKMMMLKMNKKMKKILMF>::56:@CB@@G?<WfRKYRQSSQQSRSQRTUSTVUTSTVVUTZUUVVTTUWXXQI?@U€š¢—”•”—ž¡œ•“Ž‹€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€ '/5445679:<<=CBAA@BBCCCCCCBBBFEDDEFFFCCCCBBAA?@@@@AAAABBBAAAAABDC@@BDBEGGEEFIJJIJJKKKLIHJKIHIGDGIEGHEDHHHIJHGLLIEFKJERccfeXQN=9=>;?>>>=86<20MUVWY^ceforlfg\NFFHKHMMMPPORWSPQOMOUUUX[XXXVXVTWZ[Z]^^^^^^]^__`_][ZZ^bdefffhjgghfc^XRRQOMLLMSXZ\^]ZZ]bdcbcdeeeddegea_`_ie;*0+('($!  &!"$')+,,*'##%'&%$$##&*,**+,-,+-/./,*,//1210/-+)'#&%" !"&'&((),/0/0,,-///,+-3/))++-1&(2316AG?<QdebccbabfijpS6:=6:?LRNKLMKNQPKHJPSMMMMOSSMMPQQRPNPQROMNOPQONNPQPNNNPPOOPOLNPQPPRSRQSSSRUWYUVZZWZ^]_`decabbacdffhjkpw|‚“‡J"# ).,,1-&""%.<DGGGJIGIJIIJJJJJKKJHHHHFHJJHEGIJJJJJIIIIIJJIIJKKLKJKKKJIJKMMLKKKKLMNKJKMOLLMMMNMILNMJLNLJILNF=9888;@BBBBB<<XfQJVUTTTRRRPRTTSRSUUSSTVUSTVXUVZYVTTYTX[TG>@Hhˆ§˜œ—›¨©ŸŸ€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€!'!386789;<>>>=CBBAAAAAGGFFFFFFHEBDHJHECCCBBABABBBAA@AAA@@?@@AACBAABBBCCCDEGHHHHIJKLLIHIJIGHJIFEIHFJHDFHGGEEHLKDGHHKOLDO`aefULJ@<@>;=<;><76=09RPORXY^`cjnj``YNGFGGIMONNQRQTTTQONPPQPUXYZ\YUVYYWV[]``_\[[]_[]^^][ZY[_cehgfhecefec^WVSNIGINQW[\\_^\Z\aeecdeedffdegfb]_aihB"$$#$%%""#!"$%%'*+'),/00/.3.(%&&%#%%%$'+,+&(,..,./,..--)(+$$$$" "!!"!)+,-0465224675311/,+,--,&//(),.10,'0></(5AG>>QcdbbbaabfhpkI2<:2=ABEKNJIPNNOOLIMSPRPNOPQSORQPQPPTPSOKNONQQNNQRONOSSQNNPQPPRRPPQQORRTUVVWYZVW[\^_^^bdeeeegefgfggikrrzƒ“ŠS!#!" !!%2:1)-0.&!"%.:CC@AGIGHKIIHJJJJIKLLKKJHJJIFGHIGKJJIIIIIIKLIHJJIKJIIJJIHKKKJIIKMLKLLJHLRKJLMKIJJKLKJKKIILIKLE=::89<@BBBCA;=ZfQJUSQRSSTUSSUVSRTVVTVVSQRTTUSTWYVUVWXSTXVLB?LYkŠ¥«¦¢™…~“‘”€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€"&$7;9;==>@@AAADDEEDDBAGEB?<;:9989>EHGEDDCCBBBBECBCB@?@===?@@@@BBAABABDBCDFGHHIIJLKJIIIKLKJHHGFILHDFFDGFCEIGGHHFFGJLLIGRbaegVJI?;?>;>=<?<77=1AUNLQQW_a]bjl[YSMJJHEJLMLNUVPQVWSOPQPPPQUVYYWWXZ[Y\^]_^\YX[]^\]^^^^_`Z^adggfgcdhjgd\RPNKHHLRWVXYZ]^]]_aeedfhfeiiffhgc]]ahhJ $#%&&%&*.++*))*.1136777775/'%&('%&&%%&)**(+-...-,)'$$# #$$'*.00/..255445413344442010,**,*'(-.+))+/)/04;4&#3BF>>Qada`__`begvpL4<;-/716FNJJONLMQOJKQKOOMPPMLQRSQPPQQPSOKNNMPROMOQOOQORTTRQPPRPOQQPOPSQQTWWVUZYTU[ZVZ_`cc_`baegijhhikqox‚\*$##" (0--471*+--)$%'-6?A??CEGKLJHHIJIIHIJIIJJJIHIKJIHJHHHHHIJJLIIKKKLKJJIJJKKKIJKKKJKKGJLMMMKJJMMLNNLKLKJLMIGLMJJIB<;<58<ACA@@C=>[ePKWTRRSQRRPRQQRRSTUUTSRRSTTWURSUSSWTURVWRQOL>;ETiƒ”©¨¡¡§¦žœ€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€#&&:><=@@@@ABCC?ACDDA><0-*&" #)1:CHEDDDDCCCC@@ACBAA@??@A?>=@BBAA?AGCDFGGFHIJIIKNNKHMLLLJFFIHEECADHFKGFFFFHKKJIIIHHHRb^ah\RN<9>=<???>>95<2'HVNNQSSW[^fhc`YQJJLNLLQQMMPRRQTVTRPPQQRRRTTUVZ[ZY]^[Xa_]YY[]][[\[[\^__aabedbcbchjif^TMMLKKMPSTWY[]]]`ccffegiffkkfehgb_Z_dgQ&(&),.00111.+*((+02478778:71+(*+)&&''%%'))&('$##!"!$&&(./11100025992+,33454320/45311320.//.01.(+,.,*++)*61(,,&%2BF=@Q`c_^]]_adennR9@>+ )*)3DJJMOLMPOLLOOQNKNSQKOQRPOPONRQPNMOPONNMNOQRRROLMNOOORONPRQPPUTSSVYYVX[XW\\[a__cb]afcadhijjmolmy}‰f0$$##  ""09:2/133/)00(!!&/9??=?GJHIIHHHJKJIIHHHGGHJGHIJIGJMKJJIIIJJKGHKKKLMJJKKKKKLKKJJJKLMJMLIHKMLOMJLOMJKKKMNLIJMJHJLE=::89<@@@ACC;=YbMJUWRPRVXVQTTSSSSSSRRUVTQTXTSRTWUTWWTVYTRUVRIED?@LXks~Š•šž€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€#''<@=?A@??@ABCEED@90'!!0<EEEDDDCCC@>ABB@@B@@BBA??AA??BBBFFEDFHIGFJKLNNMJHIKLJGGHIEFGFFGGEEIHEGGDEGKKHGJJGTc[[e]SL?;?>;=<<<@;4;50KTLKLPQUY]eg`[VOJGIJHMQMJPRQTUVWVUVUSRUTSUUUXRZYW[ZWY\\[XY\]]]]]\[[\]]^]_dfefeehgdaZOMLKJKMQTW[^`a^_ccchjiihbejkecfe`aY\afW* +.+)+0541241*)-0/.157778:5/*)*+($"$$! "$$"%# "''"(++,2789>@A<635940154//475453002133026620100241,)+.--44*3D=,/4,%1BF=@Q_c^][\^acdniQAC9#&$,IOGNONLMNNNNPOPQNNOLNSPLPPOQTPRQLOSNLPPNNPPMONOQPNNPSRONQSPLRTSPQVXVXXVTW[\\_fc^abaffghgfgkoinzz„’m3%%#$!-1' )6<8,-41-15./*$$(.68?CEGGHMIHHIKJHFGGJLKIHIGIJIIIHFKJIIHHHIJHJKIIKLIJJJHHHIKJJKKLMMOLIJMMLKKKKKJLNLLLMKHKKFJHJKE=;;79>BCAABD=?ZcNJUTRSTSSTRQUVSQSTSUVUSRTUVUTRUYWVYVTYZWTRWQTSKDBCACDHLOW`d€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€$'#,<A?;B@@AA>=>D<0%+?BEFEDDD?ACCA???BAA@??@AC@=>???ADEDDHKJHHHKMKLNLJKJHHHHFDFIGEEGFFEFHIHHIGGHJLKIHP]XWe`NLA=>?;:<=:=86:2<WTMPQLPUZ]^^]WUPKFEHKJLNOOOQSSYYRQVXUSRRTTRRRWYZ[[[YWZ\^][[[Z^ab^\]___^^bfffiifgheb\RMMMKKNTWV`a]`db`eeghgdcbjmlebehg[[][d_8(21,+48403/,,.00/0023430.*#!%&%! ! "&'*'*/34423347:;97:;@?63671/1564223762112451/1233550.351..,.+.29B=6IZ? ,7/3AE@=Nc_\ZZ[ZY]bumN73/("#FUJGKLOPMJLPLLNOMLNRSNPUQMNPRSQOQPNPOQRRQOMJOOOOPONNROPRPPRQTTSQQRUVUUTUXYY[^_acddddgggefhjikpz‚†“{5)0$ !!,82%!'4980-/035211,&$&-6>CEFHFFIKJIHHFFGJIHGIJIFFHHHJIGHIIIJIHJMJJJJIHHHHKKLNMJKJJKKKKKJJKKJJLLJMJLNMLLLJKLLKJIHKJJLE<<:88AECA?@F=?ZbMLXUSQQRSRRTTTTTTSRSVTSTUTUUSSUVTTVRUWVVVUTUSQRTRLFEEEDCCBB€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€"$".>BB?<BEA?AB@1)+<>ACDCBBC<@DC@?AEA>=?@?@CC@??@ABCBGFEHIHKLKJJLLJIIIJKJIHGDFHGDEGFDGIFDEHIGIJIHIGDM\VQ`aQJA=@CA>=<;=75;3 #@RNMRRLOSWZ[[[TQMJHHIIMNOOPQTVXURTWZYYUUTRPOTYUVXYZZXTY\^]\\[Zaa`_`ba_]cedddddgkgbdbVLJMNMMORS_b_]afd`befedehjkgeedccd_\\\ff?'00+,36323/*((*))-,)&$"!  ####"$" !&-/.0343355531147:98<>EC8146..16863203446521544332/,/230/0/,,++8AADD@9:-"'3AE?=Ma^[YY[ZY\broG()1-!'HSIHKLOPMJKPQONOOMLMROOOOPNKPTUTROMPNJJOSQMJOMMOONORPQONNOOOQRQOOTWXWYXVXZZ[\`cdbbdfbefeegjlmqxƒ‘{7'+"!%"/7.$#)485,*./04551(#$',3@EFFHGFIIIHHJKIEFIKIGHIJHHGFGHIKJHFHJJIJNLKJJJJIJKJIKKJLLKKJJJJJIIIJJKKKLLKMNLJLOLKMMKIHIIILG?<636@CBDCBA:@^cKIVSOPRORURSTTUTTSSRRTTSUUSRUWWVUSRTWURU[ZTXXWWUTTTSRPNKIGF€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€ #3A@@?@<;@FA3'#2AIBCEECBBC@@@??@CDE@>@@>>@ABBCDEECEFEEGHGFJMMLLJIMKJJKJGEFEFHGEEGFEGGDEFGFDIJGGJIEK]WO`gVHC<<>===;<=64<5 +HRNNRMNOQTVWWWRPNKIGGFHJMNOOPQPTWVTSVWVVVWVUVWUUTUWYXUTX\]^_^\]_`___aa]_`agihfjkhfe^SNJLMNPUY[c`_^adc^aefddfjjia^de`]aa]__gkI%..,,00/1/+%""!!#""!#$&'''('%&'&####(.0/06643.-353248<=<A@A?9433-++-.,++00136521/00/133112/,.2/(*6;><7>HG2$2BE?=L_]ZXXYYW[`jpI"')(%DOLMKLOPNJKNMOQQPNPRSRQONLKLMPQQSQOOKNOLKNPOKMPNMQSMOTSQSSPPORTQRUWUXYURX^_^___acdedeghgfilmoqw|{9 #$+& /5-%$(384-.52-.0:3'"$%)3DGHGIGFIJIIJIGHJHGGGJMLIJIIIGHHHJIIJJIJKLJGGIJJIJKJIJHGGKJIIIJKLLIHKMLLLKMKHJMMNMJHKLIHILLKJF@?838ABADB@@8?^eLKZRQUXTSTPQQRRRRRQTSTSQSUSRVYVUVURUVXVSRUXTVXVTTVYUUUUUUTT€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€&9A<<=B??@9*0?DBCEFFDCDEAAA@>?AC@>;:<@B@ABA??BDCD@CFEILFIJJKMLIJJIHIHGGHFFGGDEFFGEDGHFEEFHHGILKFR`TGXgZLC;9;<<<:==44<6 3NSMOOKOPQRSTUUOPNKGEEGJLOQQPONSSVYVRSXVUVWWWUUUUTTVXYXYZ[Z[]__[^`_]]^``aaceefkfdgh_VRNIILPTX\`caaa]acaaddcdiife^]dd][__^cbclS#"&'%%&%$)(%!"#&&&'*.2589;73.'$&'#"%&&(.1003253&!,5335:>??@=95443/20,+*)''+,,/4434430--/001//0/,,-5DFA?:9?D4!1BE>>L\[XWVXWVY_mn@!*&AONNLLNQNKJMPOOPQQPOQSRPPMMRPPNOOONNOLIIJLMOQNPPLLOMMPQPRRPPPSUUUWVVVYWVZ][Z]_ababdfeffegjkkmpv|z7"++(.5/'#$1;3,085/04<8,$#"(7GJHHIHFILGEIJGGJIIHHIKIGHHJLIIIGIIJJIIJKLJIHIJJILLKJJJKKKJJIIIJJIKNNKIKPOJKNLIJKNMKLKIHKIJIIB<<969BCAB@>A9>]dLGQORUVUROORRRSSSSSQTTTVVTTTXXSPUWVTTRQTWVRQRTVUUTTWWWWWVVV€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€)<@;>@AD>."+02369;>?@AEGBBBBCBA@?@?>@B@=ABA??ABBBBGHDGLIKIKONLJHJKJIHIIHGFFFDDFFFFHHGEEGKIFGJKHDR\PBSbXJB<<@A?=9==44<6 9OOLKNOQQQRRSSSLLLIGFHIHJLOSVWXVSSTUSUWVXYXVUWYTWXXXZ[[VZ]^``^[_^^_`_^]dccdfdejcegcYTQJHGLTXWWZbbfeabfdacb`chifa_aca]\`__cabl[+$''&))*.1,(&)-01-28<??@@;5.'$'($"##!&.20-//36,(23225:>>=?B?74552/////.,)*++,//.0310/.-.02..20*+1<?;7==9=>3$0CE>>KYYWUUVVTX]ll=!)DRNHLLNPPKJKONNMNNNLRURNPRPPPQQOMMPRNMMMMMORPKNQLLPOOMMNMNQQQQSUVVX[UXZXYXY\\^aabbdfceeegkmmimw~ƒx3#(,-4.'#$1;8..30,18>>2'&$*:IKIGJIGIGEFHJJIHHJJHGGHGIHIJGGIHIGFGIJHFIIJJJJIIJJJJJKKKJJJJJJJIJKLJJKKKLIJNMJJKMNLJKIIJIHIKD;:846?CBB@AB<A\cNJRPRSRRRRTSRSSSSTTSUSQSUUVVXXSQSUVRUUSRSUTTUVVVUUUXWWVUTSR€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€);?>BB:1##'%"$((+.259>BECABCC@==<=@A@><ACDDCCBAEHHGGHHIIHLPLJKJKMMLKJIFHFEFDDEFGHGEEHHGJFDEIIGDOZPETbVGA;;?><<9<=64<5 !=NONLJMPQRSSSRRMLJIGGGGIIKNQSTSSWXURSUVTVWVUUUUVYZYYZ\][[[[\`aa]]^`_]]^`baafihfggb^[SKIJINW[ZZ\acedbefe`ccaaddb`aba_]_aaa_^an`3)/0/49;=?8.((,02.27::;;=950*&'(' $$"$+/./10044484347<??>=?<654/*010/.-*'*,)'),-.2000/,-/2.,/0..0140%'15<;:-0DE=>JWWUTSUTSV\fl?! (BROIMLNQPLIJLOPONORSRTRQONMNONOOLMOPNOMJKOOLJKOPMOQORNOQNOQQQPQUUTUYZYUTXZ[^]]^adedcdghggilnglv~ƒw1#" '.4,$#'278/.2/,.2?C6))(,:JKHGJJHIFFGIHGHJGGFFHJIGHHHGEEGGHHGGIJIFFHJKKJJJIIKLLKKIIIJKKKJJKMMKJKKJKNMJKKJIKLIHKKHHMJHKF><:34>CCBAC>:>X^LMXTQSTPRUSSSRRRSSSQRTTSTTQTVXWUSQQXUTUUSSUWXWURRUXSSTTUVVV€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€':A@>5%!#%(,15;>AA@>??@>>>?@ABAABBAAACCGEDIJIJKGHKLKJIJKKKKKIHIEEEDCEEGFDCFIHEEFFEFHIGOYOBPaZJ@;:;98;;;=75;3 !?ONPNIIMOQSSRPOLLKJIGFEHHJNQSSRSRSVUQPRWWWVWXWUWYZYXZ\]^]\[]`a`Z\_a^[]`]bcabdefgaZYWMFIMOSX]``^bfd^`dgfbbb```_^ba`_^^`abd`]ald?)12.5>?>>7.(),0225:::9:;84/*$"$% &(%&,/-453113558657<@AA?>98;6.+,./.1330')%!'/22210.,,/1,-//,*.3.0--48@=2/DE=?ITUTRRSSRUZkg;+&# $?PNOMLNQQLIILLLJLOQQOMQTOJMRQNNNLLMJOOPPLHKQONNOMJLPOOPQQQQPRRSUUSSU\ZUTY[WUY]bdcbcedggedfhjhlu|€Žw2"$!-5-#"(262,.4310.;F<+)).;JJGFJJIJKGEGIHGHHHHGHIIGEGHGGGGIHJJIIJJHJJKKLLKJIHHHHJLLKKKJJJJJMLJKMMLJJKKLNLJLMMKJMKGHMJGGB<<946?CBB@A@<B\bMKURORSPPQMQQQPPPQQQQRRQTVTRTVVVTRQTVUSTWWTWVTRQRTVTTTUVVWW€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€':C@5" /1-#!&% ! "&)-2:@BA?><?@>>AA>@@ACCABE@DFEEFHJQPNNOKJOKJIIIGGGIEDEDCEEDCDFGFEGFKKGDGHGJVM?L_YI?<>A=:;;:=86:2$BNIMOJJKMPSSROMGILLJHGGIHHJNQSTRSTUVVUTSWYXVVVVVXYYZ[ZY]\[[]acc]]^bca`aa_]_bbbfd_]YQNMJMSXZ^b^W]hieghebe`\\^`aae_\]^__aahc__hfI+43-3==8;6/+,.//-27:99:<;4.)""%!#!%/1-2025448996459=@@>=;<<406.133330*(*&"(00+231-+,./-)*--+-35/-"&3@G5+"/EE<?ISTSRQSRQUZkd?#%-&"!%AOLPMLNQQMIHLOOMLOSVOMPRONPOPOPPKKNNJLMNNNMKJOPMMNNONQQORSRSSSSSSTVXTYXTTVVWY\`ceecbeffefikjkmsy}Œw4!  *60$&376003431,5GB.''-=JIFEJKIJFHHHHJJHHIHHHJJHFIIHIGGJIIHHJLJFIHGHJKKJKIIJHJLKKKJIJJKLKJJKKJJLMIJLKKMNJKJKMHEIIJJIB<<826@BACA@C;>[bMJURQPPRSRQSSRRQQRRQTSRTUTTRRRSTUUUTTUWVSRRXURTWYVSUUUUVVWW€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€-@?-(:C@=;:975/,'" """%',4;=?C>>>>>?@AB??BBBBBDEFFHIIJKLLLMLLLOMMKGHJJEFFEDEFHFECCDEGGHDFHEHIAMXK=L]YJ?;9;=;:9=?;088)FKJMKKIJMPRRPLHGHIJJIGFIIHHJNTXUVVTVYWRUUTUWUSXUYWX]\X[a^]]^ab_bb`aec````_`dd`]a]ZXSMKLKPW\]]^abegfffeba`^\\^adb`^]^`bab^^ccioN!"/3/2;=;51+)-.---0246:<<=7/'"""%!,1+.25435788315;>=;=9:91/465523411//*%#%*,-/10--..*.-.-)&,500-!$269B<%0EF<;FSUNSTPPTWVgjG((" (AQLLOKHHKMMKKLOQPOPSRPNNNNNONONLKKLLOOOPRRPNKOQPPNMPONOPRTTSTSTVWVTTZYUSVVUW]]]]`efegeeeffjnonux~ŠƒA# #,4*&4850142...2@A4*&.@KHIIEDGJFHIIGEFFFGHIHHIJHHHIJHGIIEFJJKJFIJIGJMLHIKKJLJHIKKKJIHJNJLJIKJIKJKLLKKLMLJJLKHGHCHKJA::799?BCB@BC8=_cJJSSSSRPPQSSRTTPRTOTTSTTTTSTUVWVUSQUUUUTSSURRSUTSSUTWWTSVWV€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€/:,%5>?????@@A>=83/,)%"%%%+4<BA>=>@@@A=@BA?ACCDHIGGKJGIIJLLLLKMNKHHFEGEGHFEFFECEEFEEEFEFEEGIHGNSKELZZJ@=;;<<<;9>;398 -EKMOIIKGNQQPQNIKKKJIGFEIGGIJLQWVTTWYWUVTYYUTUVVZUUZ\[\`^]^_\VYb^^_`]^``\]^_a`^`_[XWRLJLPRV]aca_^fifcdb^]_``^]_ac`aege`][`ccagoV' -313862.)'+.+),,,,.38;;:3,&!#$!" *-',12//34230/38:8775566325751123542+%$&'(*-//-,.-+(+-)%+48/3,#4F8'95"0EF<;FSTQTUQPSUTejB)BRMMOLIJMNMKNMMOPQRRMRSPNPNKKLMMMMMMOPPPPQQQMOOOPONOPQQQRTTSRTVVTSTWVZXTUXXX[\]`bcddfdeikkhfllsx‹‡H#!"+1'+784002111.3<<5-*1?KHHHGHHEIIIIJIHGGHJJIIIJHJJHIJIIMIFFFGJKIJLMKJIJIHJKJJKJJJJJHHJLLKJJJLKIJIIKKKKLLMKIILLILKIJC9:;6;A@@C@?@7<]`IJQQPPQRSSTPQSSPRSPQQQQRTUWTPSUQTWUVTRRSUTSSUVTTUUUUUVVVUSS€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€" -8;>>>=<<>@@AA@?=952-(%%&-8<?AA?>?BBCCABDDBCDGHJJKJJKLLLKJJMLIJKHFIGFFGFCCEDEGFDCEFDGECGGEGKLHDHW\M>>==>?=:9;92840FLLMIKMLLORRMJIKKKJHGHHHFFGHHLRVSSVWSRTVWYYUSVX\YWWWY[\Z]]ZZ^]WWZ__^`cbeb_`ca^^`][XTOMOPSX\_aa`geege`[Z]\\\]_``aeggffb^_abeebi]4).*+.-)$'''*,*(-*()09=>;3-)&'&"" !)*''+,)*-.,-)(+1578469:8448872245861*%%&%&(-/.,,./--('))*+($*07C>*#*,%0EG=;ERSQSSPNOQQ^d=$?OKJNLKLOOMJMNOOOQRSSONQRONPNNNNMKKLLMNOPOPPOMLKNNMMPPQRRRSTSRRSTSTVRWWTTWXX]\_bdcdfddgjkiijiiqw€ŒŒT #!!+4,!!*693/./144/35860,4@JIHHHKIBGHIIHHHIGHIIIHGGGIHGHIHHIHHIJHGHJHHJKIIJJIJJIJLKJIIIHGIKLJKKJMMIJJIIKKKJNMKIKLKHGGHJC:;;79@CEDAA@9?]aKMSPOOQSTSRSTTRPPRSPRTUUTTTUTTSSSTTTSRSUWUQUWWVVVVUTVUTUXWS€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€#*/168:<==>>>@AABB@=<;61.,-08<??AB@;A@>ACCACDCDHHHHIKKKLLMMMKKKIGIHBGDCDCAADEFFFDDEFCFGHHHGHLOICGW[M>>=<=>>;==84831ELNOLIIJMNOPPLIIJKJHGHHHIHGEHJLQSTVVWWWVVYXUWZX[]ZWYZZ[ZY^_[]_W\a`_aeddhfddc`^a]^\XSPOORVZ]`cdd_bca\ZZ[\aed`]^a_egcadebbda``akd9(.,,-)$&&&(*)(*1.*+19>?82*('" $&%!!#'('''(+*)(*,,,-/4673498//4543/147:80+'&%##&,-.,,--,+)(-.)(..6<?A<-"",,/EG=;EQRNOPNLMOP`a6%ASMMMMMOPPMKKMNOPRRPQPPPNKKNPNMMLJLNNNNQRRQQOMIIKNNNLMOQQQRURPOQTTTSSTUUUUVY[\]```cfddfhhilphipw‹_&#"!(3/%#,9=3.,/2551228:1+5CKIIHGIIEDFGGGFHIFGHIHGFEIHGHIHGJIHEFJJILLIGHIJHGKLJHJIIJJIIJIHHJHIKJIKMJILKJJLLJKJIJJIGFGLMJ@9<;77>DGFAC@9>]_JLSQQQRRRQOPRRPOOQTRRRRQRRRUVUTVVUWUTSSTUUVSSTVVTSTWVUVVUUT€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€"&&'*,/4;?A?>==<;<??>>??>>;999:;?BC@;>?@@B?@DCEEDFHJILKKKLLMNMJJKIHFCFGFCCFGEDEFFGEEDCEGGGEEFIKHCFTXG<==<<>=::;7383%3?GMRNKMJLOONMLKHIJIHGGGFHHEEFHHMQTTVYZXVVYZWXZYZ[Z[\ZXZZTX`_^_^adb_cfdbid__b`\\\_^VRQQOTUX\bfd_^^\\]]\[\`ca][^baaaacffdccdb_^ih>'-+,,)&&''())),---.28;<95+)+##38*%('%&&&&(,00.-),,)+0547784036232-,1485,+*'%#$&*,.-,+*))+'&,,1?FILHEG>$"16/EG=;EPQMMNNNNPS_^:!& %BTOMMMNOPOMLIMPONOPQQSQKJNQQOMLLLKMPMJJKMMNORPOMMMNNLLNOPOQSPPQTUTTTVUVWVVWX\^``abeefccfjklmjkqwˆi-#! )2,#%.9:5-,14553328;3,6CNIGHGHIHGFFGIJJIHHIIIHGFIHGGIGGIKKHIKIFFEHLLJHJMKKJHIIIJJJJKJIIJIKKIIIGGIKLKJJKLIKLKJJJJFKMJ@9;917@AAC@?B:@^aJLUQRSSQPOOOQSSSQQSUSPPQRRRRPQQQSVUSRTWWTSUUSSUVUUVRRUWWVVW€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€#&%$%')*,17;==?>;99<>==;;?@<:>=:;?A??A?CA?AB@ADDDEGIKMLLKJJKKKLKIKMHEHCDDCCFECFEEFFFEEGJHGGECHKGFFDSZJ:;====;99<846745?GIIMMIJKLORMHHMGHHIIHGFFGHIHGHJLMOSUWWXXUX][VVYXW[]YZ[XU[\Z[Z\`^_ab`cc^`ca^[ZZ]\a`XRRRPPUZ]`b_ZXY\][XY]Y[_cedb``aaacfgegbacb^fiH&*)*+)(#()'),+*'*-/022130&$(!$9>,'-*'))&))).52)(++''/695862033375.-0341()*(&&'(,..,+*+,,*$%-08HMHLQJJF/"1;'/DG=<DOPNMOPPORV[^A/0##@RLJMMNNONNMMKJKOQQORRPPNNMLONNMLKLMKKKMLKMPPPQQNMMMONNPONNQQPRUWWVUVWXUTWXUX\^_`bb`feehiiiklmrx~†‘s4$ )3.#!)586//565335579407DPHFHHHIHGGFGIJJJHHHHHHGGJKJHIJJJGHIJKIHJKHGJKJIIJHIJIJKJJJJLKIIIMNLKNLHHJIKMJGHMIIIIGFGJEEFKD:8629CC?>=AE=BabJMVPRSSQPPQPPQSRQQQTSRTVVSQRSRSSSRRURRUURRVUTSQRUVVRTUTSSTT€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€$&&&'&)((*/5<?::99;?A@<?><=>>?A<9<@@??=@><BCAAGCDGHGHLIIKKLLLLHNLFFGEBDBBDEDCDFFEDDEGHEEEFGEFHIGFBAOXI<;<==<;<8<7137;>BKNJLOJFHLONKKLMJIHHHIHFGHJIHGHHJILQVWXYTXZZ[[XUVX\[X^b]^_ZX]ZUW_^__]^`^^`_\]^^]^`_YSPPQRY__]]\YW[\Y[``\Z]`ba`ab`cdbbdeccc_[bdjlR##,./-(%'((*,*)+*,.-+)'%,)%&'#'58.*,,+--+0.''-+!&')('(/55652002464.,0462+*)*)'&',,,+)),.)).346CPHDEJGJL9&,7*!".DG><DOONLMONLNSabA*,#$BTMJNNMMLMNNLKKMOPPQPRSQNMNPNONMLLMMMLNPOLMQLLNONOPPPNNPPNNOQPQTVWVVUWXURUXVZ[^`bba`ffhhgfhllmrx…“{9$!&30$ (7=624875304787518HMIHIHIIGFFGGGHIJHGFFGGGGIJIGHIIIHHJLJHHIHHIIHGILIHIJIJKIJJJLLJHIIHGJLKIIJJKLKHJLKIIJHEFIMJGID;:868ADB?>ED>C^^HKSRRRQQQRRSOPRRSUTPOOQTUTRPTSRVSPRTRRVWTRRVVTRSVWVYUTVVTVZ€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€$()))'((),06;<==<<=<9<<<=<99>=>>:;>><@BAACA?EBBCEGHIJJKMNNMKJKHIKGDEFFECCDEEEDEFFDEFHFBFJFFHF@IH@BRYK;;<??<;<7=9348;;ELOLMNJJMKLNNJJLIGEFIKKJIMNJHIHEIIJNRUUTSVWY^]XVYYYXXZ]_Y^]\]ZVWZ]]^a`_a`db]]_][ccb_XRRUW[\YXZYU[]]ZZ\^_\^abcddedaadgd`]\ba`gbdm]) )+,*%"*-,)+,+(+,+)('&%+(*.+),021-*+--,+0/($')'%$%'&'0<;422013163+(+152,('*,)((%')*)'())*243@KFEHKPJHLC/(-$!&.DG><DNNLJJLJGHMbc?','!>PIFNNMLKLNOLKLOQPPPPPQQOMLMOONKJLNOOLKMMKLPQOOOMOQQPMLOPNNOMPRSRQTYWWYXSTY[\ZZ^```aeddhjjiiklqx…•<$ !.70$"+7;5579753.1:;7409MHJMKGHIGHGEFHJJIJIGGHIIIIHGGHGGJLHIJHHIHHKLJIKJHIKJJKJHHJIJLKIHHLHJMKHHIJMMKJLLJHKKIIKJHHJIHB==837>?ADCCD@E^]ILRUSQQQRRQTNPSRSTRQPPPQRRSTTSSSSSTUTTVVTSSUSSUVTSSWUSSSSSS€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€#(*))*,-,-27>=::;<>>=88>?<;>====<=?@A?=?B@?DEEFEDGKLLMKJLKJKKIJKIEEHFFECBDEDCEEEDDFGFGFEEDEHHFFCBJZQ>9=;<?@;<:824;:=DLJKOMKGLOMLNNKIFFGECHKGIHIIGHJJEHHJOQSVTXXX]]YW][\[WX\[[``ZX[XR\^__`bba[]`_\Y[]`cd`WRRUQNMOV[[WY]][[\_ec_bfcadfgcceddb\\becfdbmd6)-,)'&-0.()(&')+.-(*-,--/.+-24*+,,-//.*+/,#!(+)%%%#&4?640//.-,.,)')/2/*+,*('(*%&')***,1//5ALNKOIGJJGFI@3&"#0CE=;ALOLMLLMJKR\\B+$>QIKKKMNNNMLJIIJMOOOQRTSQNLKMONNONMNNMMNOONNRRPPSRPPNQOMQQMKPPNNRSRSX]YTVWWZZYZ^___afeggfhlmnouv|‚…G!"/<." )9:83000-+++/25639FLKIHGFEEFFHHFFHHIEGIHHHFIHGHJHGIIHHJJIIJKIIJJHHIKJHGJKKKKLKIHIKKIJMKGHKKJJJJJJKLGJMKIIIHGGIH@:8858?@AA@BD:C_]KOSPPPPPPQQQRQQRSSQQRSSQOPSURSVVSSVTRRUVTSUUSQTWTQTUUVVSQTX€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€$*),.,)+/3::;<<=<<:<=;<??=@?=<<=>?C?>ACDB@CFDDFDDIKKNMIHKLILKHFFEDEFGFCBDFDEEDCDFHDFGGGGFGLFDDAETO9:@;8<@=:973388=CLKLOLJHKKLLJLLHHIGDDGHHJLIHKJGIKJLMIMTUSRRTX]^\[[ZYX]_\\ac`YVX[[\^`bb`_`\[_^[\`ced_ZWURONNSX[ZY[[`babcb_bbbcefffbadca``cccbebcrl>&.-*)*++*)(%$'++.21./0-*+03114-))/1..2."'1(#*,'%$!&4?<50...+&)*)'(./**)*-,'$%$$'**+/353139AEEIECCB?BHE8(/CE=;BLNKMKLMJKRW]B#=QIKKLMNNNMLMJHJNQPOSRQPOONMPNOPNOOLQOMOPONOPPPPOPONQROOPNLOOMPRQRUWWYYXXXXXX\^^]`dhfddfgkmlmosu~€Œ‡R""!3='$23-)%$$####'+1317EJIIHGGGHIGHIIIGDEEHLHDDGIHGHIHGIIHGHHHIJIIJJJJLOIIHHJKIHIIIKKKJJKJJJHIKKHJKKIHJLKLLKIIIJHFHHA;9737?ABB@AC7Aa]GKTQQPPOOOORQOOPRSSRRQQRSSQQUURSVVSSRPSYVQSRSUVUTTSXVSSUUTT€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€$%(**-00.69;<<;<====<<;<<>=<=?@@?>=AB@BFDDBEHEHLJKKMMJJLLJLLGEFFCDCDEFDEGDFHHGFGIBEFGHGFGGDDCBFTM:6?@?;=>=741588;EKKKMJJJKJLKJJLJIIHGGHIJLJJIIIIGIJJIJKMOQRWYUX]]]YUW_c_Z]``\[^]YUZ_```ab`ba]\]abgjh_WTRPOORX]]\\Z]de`]__aabbddddcbbcda___dfba`bolA$/.)**,)))'&(+-+,24/,.0-*/4/&%,,---,--,"%.+"$+0*'$!&4??951,+)%(,0,(*02++-0/($$%"$)../1110,+-/.2124435:5.&/CF=<ALNKLKKMJKQ[Y;<QJJKLMMNNMMNKIJMPQPTQONOOONMLONMMOOPRRMMPQOOMPPOPRQOPOOQNLOPNQTRQUXWVVVTUWXY\^^`dfehddfhkljmoqu~ˆ‹\&#".,#'" !$#"$)0219HKKJIHGGGGGIJIIIGHJKIHHIJIGHIIHIHIIHGGHIHKKJHHIJKKJHHKLLMKJIIJKJJHJJILMLJKJJJKKKKKJJIHGGGGFGHC=9626?BBB?@F:Eb\EJUPPPPQQRROQTUSQQQQRRQRSTRUTRPRUWVUUTUXTPRRRTTPPTSSVURSVWU€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€&++*.0/37;<::<>;99=<9:?@?==>???A?>??BCABEDBDHJJHIHHJIGHJIGGEDCDDCBDEDCCEDCCDDDDBDDEEEDEGEBA@FUQ:7<;:;><=96445:CILJKLJHIKNMLLLKNLGGHEEIIHHJKHHIGGIGHLMKMQRTUTW]^ZZZ\^[[c____]YXYWZ[\_cc____^\[_deeaVNKLLKMQVZ][Z]`_^__`dc_acadeb`c^[_dbacedbffbepN"/-*+*+*++'*-,+*(,330212+*22)&+*+.,)+0-.((*&#*(%##"*8B8541*)+*-.01..2621.**,,*%#&/5533010-+,-,+)(+-++++*&/CE><BLNKLJKLJJQ`W9' :RLJLLLMMMMMMLJJLNPQRRQQPPNMMNMOQQNMQPOONOPPONOONOOOPQNMORQRQQORTTRUVWWVUVVWY[\^`ccadbcfhlnmloouƒ|…Ža)#" "!"!%%(--.9HHHHHIJKKGGIIGHJJEGFGIHFHIGHIGHIHHIIHGIHGKJHGIKJGJJIIJJHIFIJIJMLHHNMJJLJHIIJJIJKLKJIKKIGGIGGF@<;925>ABB@AB:D_ZIOXQQQQQQPPSPPRTSQPRQQSRRRSQSUUSSTUUSTUSRSTSRUVSQSURVWUSSUW€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€ &(-11..4<>=::<9:;::;=>???>>>?@BA?>@@@BDEDCFGHIHJJJKJHJHEDDDABDBDEDCBCBDEEDCBCDCDDDFECDFABEDBNN88A>==>:<:7545ANPMLMOLIILNNLMKKNIDCDBDJKEIJJLIFGFFJKHIMNKOQSUUW[b[UX`_\]\^ab]VVYZ[\^`a_]a_^^`abbb]VPNMMLLOQSY^]Y[^__`__caacbbgjc`dc`dfc`aacbb^\dmW& +.--+('*,++,((*''/43144+&-0-..,++*((*+,'&)#!*%#$%'/;C;874/./.,.2311442/*(+/.*&(/5744521.))*-,*'&'*+,..-).BF>=BLMJKJJLIJP]Y@, 9RMILLLLMMNNNMLKLNPRRSSRQONMLOONOMNQQNMOQPONQPONPPOOOONLOQRQPOMOTUSSUXTOQSTWYZ]]]]affdefhjkjkmovƒ{„d)$#  !$&$(')**/=KKJIIHHIIJHGGGHIGEHHGIGFIIGIIGHJHIJJHIIIGJJIIKMKGJKJIKIHHFIKJJLKIKMKGIJJLIIJJKLMNKIIJKIHHFGJIB;9936>@AB@B@7B][HMTRRSSSRRQSOMNPQQRTPOQSSQPVSRRSRRTWSRTTUUSTTTTUTSUVSSVVSSW€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€"+43./4:=<::<:==::>?=;=???>?@>BBBB@?DE@BHFEFFIGHJJKJGHFEDDEDDCDDCCEDCBEGFDCBCDFEFGFDCJFCECBOQ>7;;;;<;;:5459GTVNLMNMKMMKLNKJKKHGFGGFGIKKIIIJHHFGIJHIJKORPNPPT[]][[^_\ZZ^``_^[WXY^dc]]a`ba][^^Z\XSPNMLLOSSTYa`[Y]de`]__^```acccddcccbbecbb`bb^ah\-(.-***&',-*(('*)',22-31+),,*-/.*%%'%"#$&$""&%%&((.7<>?=81-,.,131-142+-021.,,./14543353.*(*)'))*)('()*-*-BF?=BKMJKJJLIIPZ[>#7ROIMLLLLMNNNKIIKNNNSTSRONNNPNNOPRSRNOPPNNNNOOKKNOMMOPQRQOPRQNOQQSROPWVRUURTWXZ^_`bgebcfhlljjkpwz†h(&! """""!&'))(2CNHHHHHIJKGFGHGHHGHKHEEHGFHHIIGHIHJJIHGIIIIJKKJIGFKLJJJJIKJIJJIHILKIGIKKKNJIGIKMLKJIHHHHHJFGKJB;9858?@@B@CD8Cc^FHQPPQSSSRRRRSRPOPRQRQPQSRPURRUUSPPRRRRSRQQTVSPSUTSTTTUUUUV€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€ &-1159;::;=<<;:<>???>>===>>BBB@BBA@EFDFJHDHKHHKLMLGIHFCDEEDFDBBDEDBFCABEFDBEEEEHGEECBABBAML@:>;>?>78;8425GVTKKLMLJNMJKMKIIGFGHIJIHHMIHHGILJGIGFKJHJPMKNSTTUV[_^\]^\_`bc`ZXYXX[ceb`aba`^ZVVXUTQLJJJJORTTX^_[`_ab`adccaadebbf^]`dcabc\`c__b`anh:&0+%)/)&*.+()()*+-12/31/-+(&%*%#%&$$'"%'$!"#!! "#$)25=A?:60.330.,-00,',10+(+/4201587400.+***(%'*+****(-,!-BF?=BKLJKJJLHIPXX86RPIMLLKLMNOPNMMOPPPTSQONNNNKLPRPOPNPPQQNJLPPOMMNNNNPPQQPNPRSPQRQPPMOSROQSTUWWY]acccfdeghijgiiqx}z‰Žh("! ! ! $)&&4ELJIIHGGHHEFHIGGIJIGGHHGGEGIIGHHHHJHHHHHIJFGIIHGGHHJJJKIGGJGHKKHHKIIJKKJKKJKKKKKLMLLLIHHJKLIIG?:9:69@BBB@AB8Dc^FKVOOPPPOMLTSRQRSRPORTRPQSSQUWROPSSPRTTSSTUTUTRTWURSWXTSUUS€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€ !$(,05:<<;::>=;::==<=<<>??>=>@B?<@DB@ACBDIKGFIIJKIHIIFCBBBBBCAABBBDFACEEEDDEEEBBEFFGFA@CC?KOB9=>=9;<;=6325DOLEJNNKFJMLKLMJFGIFGGEFHGFHHHIIIKFEEDADIKMHJNPRTRXX[\Y\`a^bd`\[ZWX[^`bdca]]ZVUWVRWTOJLQQMPSWXZ]^^`cc`_]^c_^ac`beddaceccc`a^^_cebdmj>%2+#,.+').-(&*'*,**--%'(%$)+'&&'('&).&)'##%$%$$$$#)/2<?:684.02.-/,()*.22,*-1244202552440+)*++'&%&'))'),*-BF@=CKLIKIJKHIPST9 5RPHMMLKLMNOMNNNNNOPSQONNONMLMLLOOOQSSQMMNNKOMNNLNPPNPQQQRRPSQOQTQNOOOPQQSVWWZ\\\_bdddghfgiihhry{zŒŒf* %$$$" $!'-*)8HKIIHGGGHHJGGGFHIIEHJHDGKJFJIGHHHIHGGIIHHIGGGIIHIKHJJJKKJKMJHIIIIJGKNJFJMJLKJJKLKJJLMJHHHHJHJJC<8569ACCC?@@9E^WDLWPQRSTSRQMNOOQSSQQPQSSRSTUSQQRSRRVSTTQTVSURRRQSTRUUUVUTTU€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€"# "%.59:<<<=:<==;99:===>>>=<<@BA@CDADBABFHHGJIHIJGEHEEDDDEDCA@CFEDDCCDDEEEFFGHEBEFEFIECD@@JOC:9;;=:7;<7/18ISPJIMMKHGLJMPMJJJIIIIHHGFGKKJKLLLHDDEC@CJKMLKLNORSW[ZZ\_`\]``^__[X[]]_aa`X[ZVSTUUTTSQNMMNSVVW[^^]_aec__ba^^bdbbdcaababefb_acccccadjN+/---)%'-/,(++*)*'&('"#&&'))%%$%-31+'+,'&))&'''%*35/6>56A;311/-,*()+,0/)*263101111233.*+./.,)%',)##'&&%-@C=<CLMKGHMLGJRXU=%5ONGIONIJKKMLMNKINSQTSRQPONMMNMMNMOSSQNMMNNNOOMNPNLOROPQOPRQOSWUQQSSQQOOSUTSVYZ[]_bffffefijjhnstx‚Š‹c($($(+()+&(,0./=JLIFHLKEDIGDEIJIHJIFEGHHGHHIHGFGHGJIGHKKIJIGIIGIKIIHJKJKLIIKKIHJIFHIHGHIIJJKKLKJIHJKJGHHGHGDGHA:98<7=@>?@@C;F]UELROQPOMOUPOLNQRRSRRRQOPRTSQRUUQQSRTRRTSQQRQPQSSSTVSSUWURRU€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€ !"#*0:=99;:9::;;<<=<<===>>?>?@@>?AACDDEEFHIJGHJHFFGHECCCBBCDDCDECBCDCBCEFEDECFIFDFHHFCD@@IND99>=<:;<;9117GQPJKKJJGJLLNNLMMKHHHHHHHHKLMKJJJHIHHHFDDEGIHHMRQORUYZZZ]`]\^]ZY[\Y[]`cc_YVWVTRTWXVVURNMNOPUX[_`^]^bfebbcb`acccdb^_baaega[bcdd`]^bjoT#"-0,+,,)&*32,,*))*+))(&%&$%()+%#(.10/01-'&*)#$')*.9<73:59DA6-.,)&&(**-+*-24432235652021/../,(*'&'('()+'$.AC=<CLLMIJONJLTZWA.!3PQKLNMLLKKPQLKLMOQPPQQRRQOLOLJLPQOOSRONMLKKNOMMMLLONPQOMQQMQUSQRRPSUWVRPPQSRX\^^^`eibaghfhnjlpv{€‡Žf*!#',.,*,1767AIHGIJJHGGHFGHHGGGHHHHGGIIHJGEGIHGHHIHJLJIJKJKKIIKKIGHJJHHIJJHGILLJIJIHIIIKILMJHJMMJJHIKJHGHFHIA;9859?BCCADC:Id\JPUOPQNKNPPRRQPQQNLMNQSRQQSURQTVWTPMPSSQQSUNQSRQSVWSUUQSWVR€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€"#%'1:;:;:;:::;<<<=>>=<<=?=;=?>=@CEDCDFGGGIFHJHFFEFEDCBBA@DECCEDCFFECCDDCADEGGCBEDDBABAAJOA;<;;==;969549GOMLMIMRMJKJLOMKJHJIHGGFGGIIKKIJLJKKKJJHGFGHHJKJJMQRVYYX[`ZZ^`\WWX[\^_ba[TUUVWWVXY]XSQRROLSTTV]a`^`egfdbabbffccddcababe_\baaa`aabagmX)*.--+*)(,032-*)**)($&('$%')+-(%&(*.40+)*+(&&%%',5>=35=BFB4.-,+++,---&-1004521134541.,/0-+*& #&'''(*+*".AD=<CLLKHILKHKQYT@1&1ORLNNMMOKKQPMLNLLNPQQRPPQPMMMLMPOMNRQONMLKJNNLLOOMKOPQQPQQOPOSTOOTVQTSRTTSSRX\^__`cigefhkmnmjmx~~…i,!&#"! !"# !)-167:DKKGIKIGGHIHHHHHHHGHIHGGIIHHGFFHIIHIIHGGFFIGIJJKHGGILKJJKJILKJIJJIGJJIHJIIJJKKJKLKINLIJLJHIHEIIB<;919BBBA?CD8D^VEMUTQQMPROPSRONQQPRONRUTOOQTRPQTVUTQSTSRTTTUUTRTVWVRRTVVSSU€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€!%'##0=?:;;;:::;<=;=>=<<>@A>>B@?ACDCBCEFEDGGGIIGDFBDDCCDCAEDCCDCBDDDDDDDDDEIIFGHGHDC@B@?FKB9:=:::<:56239FQLJJLNLHKKKLKKNOLKJHHGHIIJHKMIKMKJGFIIGFIIIJMLHJRQQTWYZ\^[[_a^ZYWV[_`_]ZVVVW[ZXWYZZXSNKMPPTWZ\]^`cggdca_bcggefda`_ca`b_Z[_aababba`k^2&--.*+(',550-)),+*'$'+(%&('(/+''+00.-(',+%#'%%&-7BA97@LJ5$(1/++.-(&*+.475004:840.//.595-(*($#"%*/5</%/BD==CLLIGHJIGJOVO9+%!""/NRKNNLLNLKPQNMNNOOPTTRPOPPNLNNONLLOOOOOONMLPOKJMPOMMPPONQQNSRQRSQPTWVRQTURPVXY[^``bdccdgkmmmjlw„k-#'),.+## "(++.28?HLJIHIHHHJIGFIIIHHHFEFHHGFGHHGGIIHHHHIIHHIIJHGIIGIJKJJKIHJIIJKJHGIJJIHIIHHGJKIHJKJJJIHIGGIJHJJA;8528BB@BDFA7EaXGNTRTTRQQOVUSPQQNOTUPNSUSPORTQPPOORUVTSTVTQTSRRQPQTUSRSUUUT€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€$)%!&5=;9===;98:;:<>>==>?>;=????>ACEDCCDFFGGGIFEFFDCCCABDCBCDCBCCEEEDDDCCBDEFGDBEFDABB?DID;<=:9:<<75026CNLLKIJJJIKLNNMNMHIIHFGGHHKILMJKNLKHHJJHILJJIIMONOQQSUY]^\\\_`__\WPW_bb_][[XXZ[Z[]`YROOOMJPUZ]_^]_`cdcca`cfc^_dc`_aca_aa`_e`_becaaboh:(-,*+,,*,2543-*,-+)'%(&$(($#)++)*,-+*)(%%&'''(*,1<EE=>B8)%**.)'('%)/035400:FGE@:762,043,*,,'% #.106F6(0CE>=CLLJJKLKJMQUO7''((!/PTLKNLILMLLLMNOMLNRTTSQQQPNQOMMNLKLMNOPPPOOLNQONNONNOONOPPPSRQSURPSVXVSSSRQXXWX^``abccceghgllmt~…Žk.#$#&(()+-)  &%(/56;BJHGGIIIHFFHHGFFHKIGHJKIGIGHIIFGHIGGIJJIIHHGGKJHGKKJIKIGJHGHIIHILJJIHJIHHGHKLKHHHIKKJJJHHIGJH@:8439A@?ABDB8F_UFOSOSQQRNQTQORTQNOQRQQQRRSSRTTSVSPPRSSSSTTRSRRRRQSUUUTRSVUR€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€"&'$'5=:9;;;::<>;=>?>==>==>@@BB@ACDEDEEFGFGHFFFEDDCCBBBCB@BDCCDCCBBCEFFDDDGGCBDDEEBDDBEJD??<9;<;975116JSPGGMMIGJLJKLKJLMIIHGFFFFIHJLKLOOJKKJIIIHJJHJMMJIPQRTY^_\]]^__`]WV[_abca^_^^_aaaba]WROOOOTUVZ_`]]^acdca`aa^]aec`___^`ba`aaaaca`bgfqmA$,,,-+()*-2794,*+*((''&(+,(%)&%&)*(&&%$$%''')*+-/9BE?2,(%**&..*&&+/1/1007FQVOMJGIIB9364/-.,((,/57-(0:.!0CE>=CLLHIJJIILOWR9)'($/RVNKNKHKNLKPLJORPNQTRQQQQQQQOLMONLMNOPPPOOOOOONLNPPQPNPQOPSRORWSRTTOSSSTTRRVWXZ^__`cefffhigjnnr~ƒ†Œk.  ""&'*)'% "!$+0.2;FJIEFLKEHKKIHIIGGIHFHKIDIHGHIIGFJFEGHHIHJIEEGIIJIKJGHIIHKIIJJIIJJJIIKKIIMKIHHIIIKLJHJJHFFEHG@<:72;@?A@;AC9IbWGNPOQMORQROLNRRNOQOMQSQNORSPRRSTTRQRRQRTUTRTTRQSUTRTTUVUSST€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€")'$+7<:;<<;;;<;<<=>>??=>@?=>@?AABDFFFEFEEEDDFE?BCBBDDCECCCCBBCDCBBDDCBDEFDAEHFFFBCEACHG<<>;::>:852-9^hPHQPLLHKLMPOKKLKJIJIIIIIIHIKKKMOMNNLLLIFIJKMNKJLNPRUY\]^b_^^]^^[]]^^beebddccdeeba`\UPNQTPTX\^\\__`cedaabc`aba`acee_\``\]bbba``bdekmK!*-.-*$ (24/681)**(+(&&)*)'#&')+)'')'%'**((+347:>EJI9&"$'**+(**)-44.0-0?R[XPPPLHJPQNIC:1-+(%.8;83)(57/&1DF?=CLLFGHGFHJLWQ9'!.QUKMNKIMNLLMKKNPMMQSQPQRPPQLLMNPONPNNOOOOOPPLMOOPPMNRPMNPONRQOPVUQSTTRPRSQPTWY[]^^`a`cghgjokomq„…Œn/#''##)-(!  !%)*0:BJLEEJJEGHGEGIHDFJJGGIIEHHHGHJIEHEGJJIIHIIJJJIJILIIKJIJKIIIJKJIIJJIILLIIDLNHFKLHLKIHJKIIGFIH@<:62;ABEB=EC6E_TFQUNPRQOORPPSSOMOOKPQQOOQRPTSSRQQRRSTSRSVTQRTUSSSSQVTRRSTUU€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€!&*($+;::;<<<;:==<<=>??:<>>:<?A=@CDCCDFEFDBCDCEDCCBA?@BFECBCBBEABBBBBCCDDABECACBB?ADACHD<;;9;<<<986,=nxRBMMIMFLLKMOKHJMHHHHHGFFIIIJJIJNOLKLMKGFGLLIJLLKLNRVXX\`b`aca^\ZYZ[^dhifhgc``cc`c_YSPPQRPTX]`_^a`^beccef`^`baacaaeb`aWQZcaadb^^bafoX*"+,+))'%'.324?9-*)',*&(,+++)'()'&')+&*-.-/4957;;9<AB6)''')&'))*-473+.;HOUYTKHNPKILPPOKGEB;1*,431642951*1DF?=CLLHJKIIJMNUM3!,OQFPNJLPNKOKNNMOONORPQTTOLMOOOPPNKKLMNNNOPQPLLNNNONPSRPQQNNPNNQRTUVTVUTUUSQTWYZ]]^`_egcchkjknlr€„„p0"!%''+*  !"%(.7AHLHEGHGFGHIHHIJFJLJHGHIGGGIIHGHHFGHFEGGGHKKGFHHIHIHFHJHGHIIGGIKIIHHKKIIHGHJJHGIIJIIJGFHGGJHA=;739ADC@>DA4EbWFOSOOTPLQPMNQPPSSPNMQRPMOSVURRSRSSONSUQORSQSQQTVUSSRTUTSSUV€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€ !$$$%$'0<:;=>:9<=>>=>@?=????ACB?A@@CDCDEGB@DECBDDCCDEEDC@ACCDDCC@BCCCDDDDDDDDDEEEEBBA?DGE;;<:;<>;;65-<chKHKNJJLJKKLKKJIIGIIEEHIHKLIHKLLOMLIJMKIJIHIJKJIJKMPRSVZ]dbaa^ZXX[Z]bghjlbefdcddcab^VRRTURPT\a`ad_]`fga`caa`adeb_ba`aa\Z^`_`aa``b]`k`0(/*%&''().539?4()+*()*.++0-*()**,/.024434695487008<-)')(())')-2336;EQSQVUNLTXTLJLLLFGILOMD<8;44@C837/+#/FB<<@MLIIIGFGJMUR/,KPMJLQQIHNOMMKJNQPOSQRTUSRQOMNONLLKLNRPMNPMMQPLNPPPQONMLOQNLMQRQSVVTUVVVVVWTVXYZ^``cbbbdgkmlmmu‚ƒ‚‹p3!""(+' #&)/49<CGHJJFFGGFFHIHFHFDFGGHIEEGGHIIEEHIFFHGHEDEGHHIHJKHGIIHHIJHGHIIGIIHGHHGFFGHJKLLHHGHJHFGEDFE>;:629>=@A?DB7IbUDJOOMPQMNPMNPQPOPQPOPQOOPQQNORSSUVSTSRQRSTTRRTUTRSTTTTTTUUV€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€! !"#"! #!#&''()6=?;:99<>>>>>>>=?ABA?@??BCBACEDBEDCCAABECCBBBBBCABBCBBAABA@BDDCBCEFDBBEHADB@@CHI@9:;:;<;<=2/1:MRLKKKLKLNKLMMMMLKHJJHHJJIMKJLLJKOLMPOJILLJJLMLJIJMMMNPUY]^_adb\WUYZ\^bhkkffdbcffdfa[WUSRSQSV[_bba]difba`^_^_bcabfcbcedc`_b`^`bda^bbkf9'.*&())((,133>A3)+*$&/1)&,20..014421220.,-.0/10-374,*+--*)(,(%+59AO_RJT^VMPQOOOKKJGNHEIIEEIECA@@?:32,*#-DC>=AMJIIIGFGJMUQ/+JPMMKNOKKNMJMMMPQPPPPQRRQPQPPQQOONLLLMNMNOPOPMJLOONKLNNLNQPRRQSSQRWWWXXWWWXYYXWZ^__`aacdghjmmksƒs2$"""!%*'#'%*24:DIHHHGGGFEFHHGGHHGHHGGHFEFFGHHFGJKHHHHJHFGGHHIIIIJJIGFJGFHJIIIHHIJIHFEHIJJJJKLJJJIHIHDGGIG>973/:@=@C@A>8J_TFMPQOMMPPONNOPRRQONORSQPRRQSQQQRTUSPRTUTSRSRRRRRQRTUUTSSSRR€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€! !%&$$&&#%'$$'&1:<:;;:=@=;=??=;>>==?BCB@@??ADCA?FGB@CD@BBCA@@ABDB@??ACD@@BCCBCEABCDDCCBDEA@@BGHB;;:8::8:=3/37AKOPMMMJGIONLKKJKLGIJJJJIIKLMLJKLKLLMLJKMJIJLNMKJJLKKLOSWY_`ced_[YUZ]]aghddddcefecgd^VRRRRQSW[_aa`]^bffb``b^^bdabfg``db_``b`_]`cdbc`hjC&-+)**(%$*/65<F<+*)**67.)+45210000.,,+))*,-,-.,.79-...-,**+(+%#8U`[SNNUZUQQMEINKJKFIFHMKDCGBBEFFCCC91+!-BC@?BLJIIIGFGJMUQ.)HPLMKMNKKNLILMNQRPPPPQQPNOQNNONLMMJKMMMOPONRQNKKNQOLLNNOQRQQQQTVSRUUVWXXXYZZYXXY[\\````cehinnkq}€ƒw2*0$ "#)$ "$)-17CJJGHGEFGGFFGIFEGHGFEEHHGFGHGHHGHHFFHHFGHIIIGFFHHEGJJGLJIHHGHILIIJKIIIGHJIHHIKJGIIGFGDGFHE=9:83:?=@A?C>4HaTFNRNROMQOMRROMNPOPQOQSRRRRQPRUSPQTTTSRRTTTSQQQSTSQQQSUTQPSU€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€!$&()*))(%$&&.8;:<<:<==>?=;;=@><<?BB@@>>@BBBCDCBAABCCACCDBAAADCAAABBBEDCCCCA@FDBCDEEEHE@AA@EHD<;:9<=;<<9426?KLLLMMKIILLLMLLKKHGHHGFGHIHJNKJKLNNLKOPMLJIJLNNLLKLKLMQUX_`aba_\[X[\[^efcbdefdddddc]UORUTSQT\_]]`]^afhfca]`a__bca`bde`_`a``_^_ceed`hoM #++')*)$#'+787?A1&()+65)$+5.-,+((**,*''(+-/12202@D:1/-/32/,)**'0Na\VTTTPOOPLGHIFJLIGIIHGGFF@EDFJFCLLFB6*!0@B?=BLKIIIGFGJMWS0(GOLJLONJJLNLMKLPRPOOPQSRPOPMNOOMMNKNKILOLMTOPQQMOQOQPNMMPPOPOPQQTUTSTVVWWXXZ\]]\\\]ccbcdgjlijhny|‹w3'-"!#'& #)+/5@IIHGGGEEGIIIIIFGJGFFFIKIGIIHIIIIHFGHIHHHGIKJHHIIHGHIJHKKHGHIHJGFGIJIIEFGHHIJLIGGIGGGGEGKI?9855:>?@@>D@3HbSEPSPSNMTRLOQONOOPPQOOPRQPPRPQSSQSTTUSQRTUTRUSQRSSSTSTTTSSTU€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€!$$"((''++(')8=:;==<<<>>=:;==?A@??>=BABCBAACB@@CECAABBCCCBBACBAABCBBABB@CFFC@BEFEDCCGC?AA@GLF=<;:==;<98428@IPNLKLJHIMKJHHIKLJJKLKHHIKHKNKIJJOPONNLKMMKJLNONNMMMKKMU[\_bcc`\YYZ[]`dfeeeeeddfhg_ZVRQRQSPS[_[[^Y_efc```___accbbdb``cb_]`^_accccffluY#!*,''*(##')1327B;)'*-0/''26((*)(()))))),.12/0203<>3464221/10((*'4KY]_^SJIKHLOLEDILJIHFDEFGGFIFFKFBIIJNIB;0-6@B=:BLLIIIGFGJMXT1&FPLJLNLKJKNLMKKOQOMRPPPQPPQONPQONOOKKLMOKKPNNQOMNQPOQQNNPRSQOQQQRTRTUUUTTTTXZ]^\\]^`abcefhhikkq|}€Œv4'* ! "!"%$ %--4@HHGHHEFHIGFGKJFGHFEGFFIHEGGFFFGHIIGGGHGEDGJIFGHIHHHHHHJJIIKIDHGGGJKJGIIIIIIIIIKJHIIIIJIKG=7863;A>AB?A>7K_QFOQRRPORQMMNOPOOOPPOPPNOOQRRRSQOQUUSSSSSSSTSRSUVUSRTTSTUUUU€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€$'%#&'&(-59:=>=<=<;<>><;<>>??@?=?BCB@ABB@BA?@CCABBAAAABBBA@@BCCB@CC@@DDBEEDEEFFFDD@??BJOG=<=;<:8;:7117@KNNKKNLIJMMMMLKJJIIJLKHGHKKLMKLLJLJLOLLNONLKKKKKLKNOMJMSY[_bdca]YXWZ`deeghfeghhhhd`]YQQROPQTY\\\\`\]dfb^_b\[beb_`eecbb_^ba`aba``beikt`,),(()'#%)*+372:D5$(+**(+3/'(+.-.-++-.0//..)(*.3>?4362---,0.)'))*;RV^^VPNHAGMKEDIKKGBBHIDBEJGFHHHGFHHJD@A>?:?B<9AKLIIIGFGJMWT1%EQLLLJJMMKKKMMLNONMRPNOPPPQNMOQOMNNLQPKJMONONOONOPPLNNNOQQRQQQTURPTTUUUUTTUWWXZZ[\^_`abcefgills}}€t4& )2(!%"!))5CIEEHIGGGGGFFFHFFFEEFFHIIHHHGHEFFGGGFFIHGGIIHEHJIGHLKIJJIIHHHGKKJIIKJHIHHIIJJIJLJHHHFHBCGF<7625;@?AA>B>;K]SEKSQRRQNMOPNPPNMOPQNRQMLRSRQSTSOPSSRSSSRSSSTRRSSSSTSTTTSSTU€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€! ")168449<<;9:<>=<<==?><;>A@==@A??@BA@@BCB@?@@ABA@@BCCBBBCCA?CCA?BED@CBBDGGD@CDA?>AJQF::=<;::9>:206ALNMLMNLIHLLLKKKLLKIHGGGILJHHLOMMOQNNOMNNLOMKLLKJJILONLMQUY[^^^_]Z\YY^bceifdehjhgg`aaYOQVTOSVX[^^[]]_ba^]^_abaabba_bc``a`_baa_^^adfjgne5',)(+*'),)*5;45EB+&+0,'+1/))-00121-/2210/0,/8AGLC0-.)(02+((()-+$/GYRMTYPGJIEEFEDGIGBADC?BIJIHFFGFCDDE?<@>?=?C>9AHIIIIGFGJMUQ0%ERMLLIINMJKLMLKNOOOONPQRPONOPRROMNNKLOONNNMLNPPQONNQRPNQQONQQQRTRSXSTUVVVWWVWY[\\]`cccdegijfihmwx}‹s1&49/ ! &5FIEFHGDGIHFEFGGHHFGHGGHGHIHGHHHIGFHHIKIHHHGFGHKIGFGGHHHIJHGHJKKJIGGGHHKKJIHGFFJIHHGDEGGFHF>::78:?@B?=D?9J_SCKTQPOOOOPPNOPOOOPOOQQNNQSRQQRSSTSOQQSTTSRQQQRTTRRSUTSSSTSS€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€ !"$# #&(19995588:<9:<=<<=>=<====?@@A?@AA??ABBBBA@??>ACCA@BDECBBCCCAABAABEFDBCDEEDDCDB?A@?JTJ<9=<:9;49844;GKQKKMJIJFLLMMLKJIGHHIIIJJKKHIMNKLKNMKMNMNRNMOQPNLKLLLKLPTX[]]^`_]][\`bbbdeddfedfijd`YOOSSPSVY\__\\]__``^]_^^`bbceebbb`abaa`^]_cdbjngmj?'-,*,+'+.**1:=9AG8+,1,(045/021//234553/-./35;@CIA/,20+-+')((),,,29FGEINJIURBAHC<?BDED?<>DJDKGAEFBEDEG@>B@@=>D@;AFFIIIGFGJMRO.%ERNIMKJLKIMNNJIMQQQQPPPONPRPRTRNNNMLIKMKKLJMONKKJKPPSQNOPPROPSTRSVVTUVVVVVWTVZ]\Z\`abcefghhmnlpy{‚’s/(162+  %5EIGIICCFHHGIIIDHGFHHFFGEGIGFGGGHFEHIHJEGJLJGGJGIIGFGHGFJKHILJEIIIIIGHIHJKJIIJKHHIHEGIGGFHG?;:65<A@AA=A?6L`NDQQKOQQPNORONNPQPONOOOQQPQSOPRRQTUSQSTRPPRURRSSSQRTQSTTSSUW€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€"$$#+/2599:<99999999========>>>>>>>>????????@@@@@@@@BBBBBBBB>??@ABBC??@ABBCCAABCDDEEEA@@@BMXL=:=;=?:<74535CRMMLLKJIIMMLKKJIIJIGFFGIJKLLLLMMMNNNNNNNNNNNNNNNNNMLKLNQRVX[^___^YZ\^aceedfhjjhfdcdc\TOORQTW[\\[Z\^accb`^bbbbbbbbcccccccc__abdfggdiejpG#/0.+*+++*,)8A9<FE02-(1?@70,-132490/.----.7;::GTL9.(*+&(..01369<?A<55>FIOWHEA><=?@B@=;>BB>GGDBCBBDCHE;9@EC=;AB=@JKJHHHGGIMQS3%ESIONLKKLNOJMOOOOQTTQQSRNNPOOOOOOOOLMOPPOMLNNNOOPPPRQPOOPQRTSRQRTWXUUUUUUUUQRUX[^_`bbcdfghhmhjry|„Žt0!+53)"$)'(CKGFEFEFFGGHGFEEFHIIHFEGGGGGGGGGFGFGFGFHHHHHHHHHIJJJJIHFHIKKIHFJJIIIIJJIIJJKLMMLKJHFECCECHG=9:60<CA=;>C>7K\MDOTNOOOOPPPNPQPNNOPPPPPPPPPQQQQQQQQQQQQQQQQRRRRRRRRRSTUUUTT€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€ !!489:;;:<::::::::<<<<<<<<>>>>>>>>????????AAAAAAAABBBBBBBB??@AABCCAABBCDDEAAABCDDDEB@@AEOYI;:A>;:5:96206CNNNMLLKJJNMMLKKJJJJIIIIJJLLMMMNNNOOOOOOOOOOOOOOOOONLLMOQRUWZ]_`__]^^_`abbcdfhhgdcffc\TQSVQSW[]^]]Z\_abb`_ccccccccaaaaaaaaaabcdffgjh_esV  -1.,+++)(0138;;@K?.,58CIA)(+12/.0,,,--/013CG>?MSM2)*2128:9525<BB@?3*+28?DA@?>=====;:<?@?=?ED?<<?C@@>;>DHH><@B>BHGGHJJGFJPZS0$CQIMLJJIKLMJKLMMNPQSQQQPONOOOOOOOOOJLMNNMLJNNOOOPPPQQPPPPQQRQPOPRTVTTTTTTTTRSUX[\^^bbcefghimhhpv{„p0 !'-133390$#<KLHGDEFFGHGFEFHJIGFEGIJGGGGGGGGFFEFEFEFGGGGGGGGGHHIIHHGGHIKJIHGIIHGGHIIHIIJJKLLHHIIJJKKIGIG<8840;A@?>@E>9P]IESSNNNOOOPPPOMNPPONOOOOOOOOQQPQPQQQRRRRRRRRSSRSRSRSPQRTUUUU€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€!"0478:867::::::::<<<<<<<<>>>>>>>>@@@@@@@@@@@@@@@@AAAAAAAA???@AABBAABBCDDDBCCCDEEEBA?@AEOXQ>8;97<>8<920:EKLLLKKJJILLLKJJIIHHIIIIHHKKKKLLLMMMMMMMMMMMMMMMMMMLLKLMOPVWZ]_`a`]^_`cdefdeghhgedfeaZSQTWOQUX[\]\Z\^abcbadddddddd________eeffggggabafp[*3:8520,(&/316?:9FC/*-2BK?/,+./-/3421/.---3BE=BVa\B55=;7:>5/+/;BC@E9,%&+0388:;>@BCB>>AB=97=EE=88:=<77<CFHHC?@@=AIICFJIECIPWO4 &@PNLKJIIJKLLKLLNOPORSRPPPPOPPPPPPPPKLMNNMLKLLLMMMMMMNNOONNMPPONOPRSSSSSSSSSUVXZ[\]]abceghjjnihntz„q/! #+38=B</)(EKGGIDEIEFGECBFIHGGFGGGHHHIHIHHHFFGFGFGFGGGGGGGGHHIIIIHHHIKKLJIHIIHHHHIIFFGGHHIIJJIIIIIIFEIH>8614<@??>?A=4OcNBOPOOOOPPPPQONOPQPNPPPPPPPPQQQQQQQQPPPPPPPPTTTTTTTTPPRTUUVV€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€  " #"/469::7899999999<<<<<<<<????????>>>>>>>>AAAAAAAAAAAAAAAA@@@AAABBAABBCCCDCCCDDEEEC@<:=EQZJ>9<:9;<9;7./;IOLLLLKKJJLLLKKJJJHIKLLKIHKKKLLLMMMMMMMMMMMMMMMMMMMLKLLMNOWXZ\]_^_\\]_acdeffghhhffgea[TPQRRTVYZ\[\[\^`aa``aaaaaaaabcbcbcbchhhhghggbadhm]2 4CA>:60+(-/29?=:@G<.*6HG8,**+,*+-+++,,./0>C@=GWXL>55;704:;7348;:863-%"$''++*,.379>=?CDC@?>B@:8987438EKJDBDBBA=@FIDGJJECHNRK;(%#! "-AOPKKJJIJJKNMKMOQPNPSRPOQQNPPPPPPPPMMNOONMMLLLLLLLLKLNOONLKPONOOPQRQQQQQQQQWXYZ[[[[\^`dgjlnlijpv{ƒ‹t0#%.5=@>A6'-DGDHJFGIFGHGDEFIEGHJIIFEGGGGGGGGFFFFFFFFGGGGGGGGGGHHHHGGGHIJIIHGIHGGGGHIGHHHHIIJKJIHFDCCEEHG@;836<>>ABAB<5K_RIPROOOPOPPPNPQPONOQPPPPPPPPQQPQPQQQRRRRRRRRSSRSRSRSPPRSSTTS€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€                
-    €€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€        €€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€       €€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€           €€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€ƒ€€~€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€‚€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€‚‚€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€‚€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€‚‚€~~€€‚‚‚€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€‚€~€€~~~~~~~~~~~~~~~~~€€€€€€€€€€€€€€€€€€€€€€€€€€€‚€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€‚‚‚‚‚€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€~~~~~~~~€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€‚€€€€€€€€€€€€€‚‚‚€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€‚‚€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€‚‚‚‚€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€~€€€~~~~€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€~~~~~~~~€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€~~~~~~~~‚‚‚€€€€€€€€€€€~‚€€€€‚€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€~~~~€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€~~~~~~€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€}€‚€‚„ƒ‚~~€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€‚€€€€€€€€€€€€€€€€€€€€€~~~€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€~~~~~~~~€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€‚‚ƒ‚~€€€€€€€€€€~‚~€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€~~~~~~~~~~~~~~~~€€€€€€€€~~~~~€€€€€€€€}~}}€€€€€€~~~~~~~~~~€€€€€€€€~~~~~~€€€€€€€€€~~~~€€€€€€€€€€€€€€€€€€€€€€€€€€~~€€€€€€€€€€€~~~~~~~~€€€€€€€€€€€~~€‚€€€€€€€€€€€€€€€€€€€€‚‚‚‚‚‚‚‚ƒ‚‚‚€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€‚‚‚‚‚‚‚‚‚‚‚‚€€€€€€€€€€€€€€€‚‚‚€‚€€ƒ‚€€ƒƒƒ€€€€‚‚~~}‚ƒ‚ƒƒ‚‚‚€ƒ‚‚‚€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€zzzzzzzz{{{{{{{{yyyyyyyyxwxwxwxwwwwwwwwwuuuuuuuuxxxxxxxxvvvvvvvvxwxwxwxwvvvvvvvv{}}zyyyyyyyyyyyyyyyyyyzz{z{z{zzz{z{z{zxxxxxxxxvuuuttssqqrstuuvttttttttyyyyyyyyxy|}}|yxvvvvvvvv€€€€€€€€€€€€€€€€€€€€€€€€‚€~~yyzyzyyyzz{{{{zzyxyxyxyx}}}}}}}}{{{zyxxwvvvvvvvv|}~€‚ƒƒƒƒ‚‚‚‚‚‚‚‚ƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒ„„„„„„„„†…†…†…††ƒƒƒƒƒƒƒƒ……„ƒ‚€ƒƒƒƒƒƒƒƒ‚‚‚‚‚€€€€€€€€€€€€€€€€‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚„„„„„„„„‡‡ˆ‡ˆ‡ˆ‡ŠŠŠŠŠŠŠŠ‚‚‚‚‚‚‚‚‚‚‚ƒ‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚††††††††ˆˆˆˆˆˆˆˆŠŠŠŠŠŠŠŠ……………………„„„„„„„„ƒƒƒƒƒƒƒƒ‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚€€‚ƒƒƒ‡‹‹ŠŽ‰……‰Œ‹ŽŽˆ‹ŒŠ…‚„†‡ŒŒ‹Ž‘‘‘‘‘Ž……„ƒ‚€‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚ƒƒƒƒƒƒƒƒ‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚€€€€€€€€€€€€€€€€‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚€€€€€€€€€€€€€€€€wwwwwwwwxxxxxxxxyyyyyyyyxxxxxxxxxxxxxxxxwwwwwwww||||||||{{{{{{{{xxxxxxxxwwwwwwwwy|~}zwuuxxxxxxxxxxxxxxxxwwwwwwwwwwwwwwwwyyyyyyyy||{{zyyyrsstuvwwuuuuuuuuqqqqqqqqsvy{{yvswwwwwwww€€€€€€€€€€€€€€€€€€€€€€€€‚‚€~~zzzzzzzz}}~~}}}}}}}}}}}}}}}}}}}|{zyxwwuuuuuuuu{|}‚„„„ƒƒƒ‚‚‚‚‚‚‚‚‚‚„„„„„„„„††††††††ƒƒƒƒƒƒƒƒ††††††††„„„„„„„„‡†…„ƒ‚€„„„„„„„„‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚€€€€€€€€€€€€€€€€ƒƒƒƒƒƒƒƒƒƒ‚ƒ‚ƒ‚ƒ‚‚‚‚‚‚‚‚ƒƒƒƒƒƒƒƒ‚‚‚‚‚‚‚‚„„„„„„„„‚‚‚‚‚‚‚‚‚‚‚ƒƒƒ‚‚‚‚‚‚‚‚„„„„„„„„‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚ˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆ‰‰‰‰‰‰‰‰„„„„„„„„‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚€€‚ƒƒ„„‡‹Ž‹‹Ž“”Œƒ€‚„~………††‡‡‡†‹‰‚…‡ŽŒ“’““““’‘‡†…„ƒ‚€‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚ƒƒƒƒƒƒƒƒ‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚€€€€€€€€€€€€€€€€‚‚‚‚‚‚‚‚ƒƒƒƒƒƒƒƒ‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚€€€€€€€€€€€€€€€€zvtuvvuuvwxxxwwvtuvwxxxxvvvvvvvvyyyyyyyyzzyyyyzzyz{||||{{{{{{{{{zz{|}}}}~}|{zzzzy|~~{xvvuwxxwvvwwxxxxxwwwxxxxxxwvvvvvwwwvwwvvvxyyxwvwxyz{{{zzyyy{{{{{{{{yxvvvutrux{|{xvuvwwvttuv|€€€€‚‚‚‚‚€€€€~}{zyyzzyxy}~‚€€€€€~||{zywvuuvwwvuuvyz|‚ƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒ†…„ƒƒ„……ƒƒ„„„„ƒƒ…„„ƒƒƒƒƒ…„ƒƒƒƒ„…ƒƒ‚‚ƒ„…†‡‡…ƒ‚…†‡‡ˆˆ‡‡††……„ƒƒ‚‚ƒ„…„ƒ‚ƒ€€€€€€€€€€€€€€€€€ƒ†…ƒ‚ƒƒƒƒƒƒƒƒƒ‚€‚ƒƒ‚‚‚‚ƒƒ„„………‚‚‚‚‚‚‚‚‚ƒƒƒƒƒƒ‚‚‚‚‚€‚‚~ƒ‚‚ƒ‚€€‚ƒƒ†„‚‚ƒ„……ƒ‚‚‚‚ƒ„„„„ƒƒƒƒƒƒƒƒƒƒƒƒƒƒ‚ƒ„„ƒ‚‚‚„ƒ‚ƒƒ„ƒ‚„„ƒ‚‚‚‚‚‚‚‚‚‚‚ƒƒƒƒƒƒƒƒƒƒ„…†‡ˆ‰‰………„ƒƒ‚‚…ƒƒ…††ƒ‚€‚‚‚‚‚‚‚‚‚‚‚ƒ„…†Œ‹ˆ…ƒ~‚~~ƒ‚€‚„‚~}€…‰ŒŒ‹‘“”““““””‰ˆ…ƒ‚‚„„„ƒƒƒ‚‚„„„ƒƒ‚‚‚‚‚‚‚‚‚ƒƒƒ‚‚€€€€€€€€€€‚‚‚‚‚‚‚‚‚‚‚‚‚‚€‚„„ƒ‚‚‚‚ƒ‚‚€€‚‚‚‚‚‚‚‚€€€€€€€€€€€€€€€€}zxy{{{{xxyyyyxxxxwwwwvwwwwwwwwwwwwwwwwwvvvvvwxxwwxxxxxxxxxxxxxxwxy{|}~{{{zzz{{{}~~{zz{{|||zyyyxxxyxxxwwxxxxxxwwwwvvvvvvvvuuuvwwwwwvvuuwwwwwwwwyyyyyyyyzyxyz{zy{}~~}{{{yyxxwxxx{€€€€€€€€€~}|{yzzzyxy}~~€€~~~~~}~€{{{zyxvvtuvwvvvwyz|‚ƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒ‚‚‚‚‚‚‚‚„ƒ‚‚‚‚ƒ„‚‚‚ƒƒ‚‚‚ƒƒ‚ƒƒ„„„„„ƒƒƒƒ„„ƒƒ‚‚‚ƒ…†‡‡†„€ƒ……††††††……„„ƒƒ‚‚‚ƒ„„„ƒƒƒ€€€€€€€€€€€€€€€€€„‡†ƒ€€ƒƒ‚‚‚‚ƒ„††„„„„ƒƒƒ‚‚ƒƒƒ„ƒƒƒƒƒƒƒƒ‚„„„ƒƒ‚‚‚ƒƒƒƒ€ƒ„‚€€€‚‚ƒƒƒ‚‚‚„……„‚‚‚€€‚ƒ…††„‚€€‚ƒ„ƒƒƒƒ„ƒƒƒ„„„ƒ‚‚ƒƒƒƒƒƒ‚‚‚ƒƒƒƒƒ~~€‚‚‚‚€€ƒ‚‚€€€€‚ƒ„‚‚€€‚‚‚‚‚‚‚‚ƒ‚‚‚ƒ„…‡ŒŽ’‰„ƒ€€€€‚ƒƒ‚‚„‚}{}€ŠŒ‹‘“”““““•”‰ˆ…ƒ‚‚„„ƒƒƒƒ‚‚„„ƒƒƒ‚‚‚‚‚‚‚‚€‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚ƒ„ƒ‚‚‚‚‚€€€€€‚€€€€€€€€€€€€€€€€|yy{~€‚€~}|{zxvuuuvwwwwwwwwwwwwwwwwuuuuvwxxvvwwwvvuwwwwwwwwwwwxyyzzyyxxxxxy{}}|zxyz{{{|}}||zz{{|{{zz{{{{{{zzzyxxvvuvwwvuuvwvvwvwvvvuuvvwwxxvvvvvvvvwvvvxxxw||}|{z{||zxx{{{z{€‚€€€€€€~}}{zyzyxwx|~}}€€€€€~~~‚€{{zzyxwvtuvvwvwwyz|‚ƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒ‚‚‚‚‚‚‚‚ƒ‚‚‚‚‚ƒƒ‚‚ƒƒ‚‚‚‚‚‚ƒƒƒƒ‚ƒƒƒƒƒƒ‚ƒ‚‚‚ƒ„…†‡‡„€„„„………„„ƒ„„ƒƒƒ‚‚‚‚„„„„ƒƒ€€€€€€€€€€€€€€€€€ˆˆz{~~€‚‚ˆ‰‹‹Š‰‰Š‰ˆˆ‡‡†††„„„„…„„„„„………„ƒƒ„„„ƒƒ€‚ƒ„„„ƒ‚‚ƒ„‚‚€‚‚ƒƒƒ‚‚ƒ‚€€‚‚‚‚€€€€€€€€€€‚‚‚‚ƒƒƒƒ‚‚ƒƒƒ‚‚‚ƒ„„„ƒ‚ƒƒƒƒƒƒƒƒƒƒƒƒ„„„„…„„ƒ‚€„„ƒƒ‚€‚€‚‚€‚€‚‚‚‚‚„ƒƒ‚‚ƒ„…ˆŽŽŽ“†€€~€€€{y{ŠŽŒŽ‘“–•”“““’‰ˆ…ƒ‚‚„ƒƒƒƒ‚‚‚ƒƒ‚‚‚€‚‚‚‚€€€‚‚‚‚‚‚ƒƒƒƒƒƒƒƒ‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚ƒ„ƒ‚‚‚€€€€‚€€€€€€€€€€€€€€€€|zy{}~~‚‚‚‚‚‚}{wuttuvuuuuuuuuvvvvvvvvuuuuuvvwvwxyxwutvvvwvwwwxxwwwwxxzyxwwwww}~~}ywvwxxxy{||z{||}|}|||}}}}}}|||{{zyxwyyyywwwxyxutrrrsuvvvvwwwwwwwwwwwyxvwwwutxz{{yxxyzyxyz{{{{ƒ€€€€€€~}}|zzzzxvx|}}|~~}~~~€€€€€€~zzzzyxxwtuvwvwwwyz|‚ƒƒƒƒƒƒ„„„„ƒƒƒƒƒƒƒƒ‚‚‚‚‚‚‚‚ƒƒƒƒƒ„„„‚ƒƒ„„ƒƒ‚ƒƒƒƒ‚‚‚ƒƒƒƒ‚‚‚‚ƒ„…†‡ˆ…„„„„„„ƒƒ‚ƒƒƒƒƒƒƒƒ‚ƒ„„„„„€€€€€€€€€€€€€€€€…‡„}~€€€ˆŠ‹‹Š‰‰ŠŠŠŠ‹‹ŒŒ‹‹‹‹‹‹‹‹ˆˆˆˆ‡†…„†…„ƒ‚ƒƒƒ‚‚‚‚‚‚‚ƒ‚‚‚ƒƒƒƒƒƒ„„„ƒƒƒ„„ƒƒ€‚€€‚„‚€~€€€€€€€€€€‚‚‚ƒ‚‚‚‚€‚†‹Ž‘‘Ž‹‰ˆ‡†……„ƒ‚€€„„„„ƒ„ƒƒ††…„„ƒƒ‚€‚‚€€€‚‚‚‚ƒƒ‚‚‚‚‚‚‚ƒ„…‰Œ•‘†ƒ„……‚‚€€|y{„‹ŽŽŒŽ’””“’’’”’Ž‰ˆ…ƒ‚‚ƒƒƒƒ‚‚‚‚‚€€€‚‚‚‚„„ƒƒƒ‚‚‚‚‚‚‚‚‚‚‚ƒƒƒƒ‚ƒƒƒ‚‚‚‚‚‚‚‚‚‚‚‚€‚ƒ„„‚€ƒƒƒƒ€€€€€€€€€€€€€€€€€€|yxyyyyz{{{{{{||{ywutuwxvuvuvuvvssssssssuutssssswxz{{ywuwwwwxxxxxxxxxyz{zzyxxxxx}|xvvyxxxzzxwxyzzzzzzz{{{{{{z{{{{{zyxyzzzyxxyyxwvvvxytttttsssttttttttwvuuvvusvy||{ywvvwxwwwyz{€‚ƒ€€€€€‚€€~}}{zyzyxwx{~||}~}{{{{||}}~~~}zzzzyxxwvvvvwvvuyz|‚ƒƒƒƒƒ„„………„ƒ„ƒƒ‚ƒ‚‚‚‚‚‚‚‚‚‚‚‚‚ƒƒƒƒ‚‚ƒƒƒƒ‚‚‚‚ƒ‚ƒ€‚ƒƒƒƒ‚‚‚‚ƒ„…†ˆˆ…‚…„„……„„ƒ‚„„„ƒƒƒƒƒ‚‚ƒ„„„„ƒ€€€€€€€€€€€€€€€€‚ƒ‚‚‚‚‚€€‚„„ƒ‚‚ƒ„„……††‡‡‰‰‰‰‰‰‰‰ŒŒŒŒŒŒ‹Š‡…„‚ƒ„†‡†…„‚‚‚‚ƒƒ…†ƒ‚€ƒƒƒ‚ƒƒƒ„„ƒ‚ƒƒƒ‚‚ƒ‚‚ƒ‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚ƒ…‡ˆˆ‡††‡ˆ‰‹ŽŒ‹Š‰ˆˆ‡‡‡††…†……„„ƒƒ‚„ƒƒƒ„„ƒ€‚€‚‚€‚‚‚‚‚‚‚ƒƒ‚ƒ„…‰ŒŽ”’ˆ„‡‰‹‹ˆˆˆˆˆ‡††††…ƒ€~€„ˆŒŽŒŽ’““’’’“””‰ˆ…ƒ‚‚ƒƒƒ‚‚‚‚‚‚‚‚‚‚‚ƒƒƒƒ„„ƒƒƒƒƒƒƒ‚ƒ‚ƒ‚ƒ‚‚‚‚‚‚‚‚‚‚‚€€‚‚„ƒ‚€‚ƒƒ‚€‚‚‚‚‚‚‚‚‚€€€€€€€€€€€€€€€€zxwwwwwyxxwwwwwwxxvvuwxyxxxxxxxxwwwwwwwwxxvvtutuz{}}{yzzz{{|||yxwvvwxxwwwwwwxx{}~{xvvxxxyyyyxwxxyyyyyxxyyyyxxxyyzyyxwwxyyxwwxxxwwvuttwwvvuutttttttttttsstvwwvtw{|zxutuwwwuuwy{€€‚€€‚€€~}{zyyz{yxx|~}{}}|{|{|||||{z{|~~~}{{zzyxwvvvvvvwuuyz|‚ƒƒƒƒƒ„……††„„ƒƒƒƒ‚‚‚‚‚‚‚‚‚‚€€‚‚‚‚€‚ƒƒƒ‚‚‚‚‚ƒƒ‚‚‚ƒ‚‚‚ƒ„…‡ˆˆ…€‚„„„„„„„ƒƒ„„„„„„„„‚‚ƒ„„„„ƒ€€€€€€€€€€€€€€€€€ƒ„„‚ƒ‚„„„„„ƒƒƒ€‚€€€€‚€€‚ƒ„…††††„ƒ€€‚„……„ƒ‚‚‚ƒƒ…ˆ‰ˆ†‡‡†„„„ƒƒ„„„†„‚‚ƒƒƒ…„ƒƒ‚‚‚‚‚‚‚‚€ƒƒƒƒƒƒƒƒƒƒƒƒ‚ƒ„ƒƒƒ„„„ƒ‚‚ƒ„„ƒ‚ƒƒƒƒƒƒƒƒ‡‡‡‡ˆˆˆˆ‹Š‰ˆ†…„„†……„ƒƒ‚‚…„‚ƒ„†„ƒ‚€‚€€‚‚€€‚‚ƒƒ„‚ƒ„…ˆŽŒŒŒ‘Ž†ƒ†‡‰‰‡‰ŠŠŠˆˆˆ‰ŠŠ‰‡…„…‡ŒŽŒŽ‘“•““““•“‰ˆ…ƒ‚‚ƒƒ‚‚ƒƒƒƒƒƒƒƒ‚ƒƒƒƒƒƒ„‚‚‚‚‚‚‚‚‚ƒ‚ƒ‚ƒ‚‚‚€€‚ƒƒƒ€‚€€€‚‚‚‚‚‚‚‚‚‚€€€€€€€€€€€€€€€€{yxxwvvwxxwwwxyywwwwwwwwyyyyyyyyzzzzzzzzzzyxxxxx{|}}~}}|||||}}~~{ywvuuuvvvvvwwxx{|}|yvuuvvwxxwxxwwxyyyyywxxxxxxwvwxxywvuuvxxwwwwwwwxxxxxxxxxxxxx{{{{{{{{xwwxz{{{vx{{zxwvxxxwwvwx{€€€€€ƒ‚€€€‚€€~}zyxy{{{zy}}|}~|~~~~~~~}{{{|~~}{{{zyxvvvuuvwwvuyz|‚ƒƒƒƒƒ„…†††„„„ƒƒ‚‚‚‚‚‚‚‚‚‚‚~€‚‚€‚‚€€‚ƒ„ƒƒ‚ƒƒ‚‚‚‚ƒƒƒƒ‚‚‚ƒ…†ˆˆ‡„‚‚„‚ƒƒ„„„ƒƒ„„„„„ƒƒƒƒƒƒ„„„ƒ‚€€€€€€€€€€€€€€€€ƒ„„ƒ„„ƒ„„„„ƒƒ‚‚ƒ„„ƒ‚‚ƒ‚‚‚€€€‚‚‚‚‚‚‚‚€€€€€€€~~€€€‚…‡†‡ˆ‰ˆ†††……††††…„…‡‰ŠŠ‡…ƒ„†‡†……„ƒ‚‚‚ƒ„ƒƒƒƒƒƒƒƒƒƒ„ƒ‚‚„……„„„……„„‚‚ƒƒ„„„„ƒƒƒƒƒ‚‚‚€‚ƒƒ…„„‚‚€€†……„„ƒƒ‚ƒ‚‚ƒ„„‚‚€€€‚‚€€‚‚‚ƒ‚ƒ„…‡ŽŠ‰‹„ƒ…„ƒ…„„†‡†„„…†ˆ‰ˆ‡†„„„ŒŽŒŽ‘“’‘‘‘’”“‰ˆ…ƒ‚‚‚‚‚‚ƒƒƒƒƒƒƒƒ‚‚‚‚ƒƒƒƒ‚‚‚‚‚‚‚‚‚‚€€€‚ƒ‚‚€€€‚‚€€€‚‚‚‚‚‚‚‚€€€€€€€€€€€€€€€€xwvwwwxzyywvvvvvwwxxxwvuxxxxxxxxwwwwwwwwyyxxxxyyyxxxxyzzyyyzz{{{|{zyxy{|{zzyyyyy|xutuuvwvtsssuvvwwxxxwwwxxwwwwxxyywvutvwxwwwwxwuuuvwxvvvwwxxxxxxxxxxxxwvwxxwv}~}||}|zxxyyxw|€€€€„ƒ€€€‚€€~}yxxy{|{{z}}|~~}~~~}}||~~€~}||{zywvuuttvwxwvyz|‚ƒƒƒƒƒ„…††‡„„„ƒƒ‚‚‚€‚ƒƒ‚‚‚‚‚ƒƒ‚‚‚‚ƒƒ„„ƒ€„ƒ‚‚‚‚ƒ„ƒƒ‚‚ƒ„…†ˆˆ†„ƒ‚‚ƒ‚‚ƒƒƒƒƒ„„„„ƒƒ‚‚ƒƒƒ„„„ƒ€€€€€€€€€€€€€€€€†ŠŠ†€~€‚€‚‚ƒƒƒ„„ƒ‚‚ƒ‚‚ƒƒ„„‚‚‚‚‚‚‚‚‚‚ƒƒ‚€€‚ƒ„ƒ‚€€ƒ„ƒ}|€€€‚‚‚‚„ƒ„…†‡‡††„ƒ…‰ŒŒŠŠ‰ˆ‡‡‡ˆ‰††††††††ƒƒ„ƒƒ„…‡…„ƒ„„…„ƒ„„ƒƒƒƒ„„ƒ‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚ƒƒƒƒ‚‚€€€~‚…ƒ‚€‚‚€€‚‚‚‚‚ƒ„…‡ŽŠ‡ŠŽˆˆ‰…„……‚„ƒ‚„„„ƒ‚‚‚ƒ„ŒŽŒŽ’’‘‹‰ˆ…ƒ‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚ƒƒƒ‚‚‚‚‚‚‚‚€€ƒƒ‚€‚‚‚‚ƒƒ‚€€€€€€€€€€€€€€€€€€€xnnx}}€~}}}}zywuuuuvxwwwwvvvvvvvvvvvvvvvvvvvywuuvwxxwxxxxwwvxxxyyzzz|||{{{{{€€}zzz~}zxwwxy|{zyxwvvuuuuuuuuwwvvvuuuuuvvwwxxuuttuwz{vvvvvvvvyyxxwwwvvwwuuwvux{~~{xxxxxwwxz|~|€€‚‚€€€€€ƒƒ‚‚€~}{zxvvwxzxxyzz{||{{|}}~€~~}}zzyyxxwwzzzzzzzz{|}~€‚ƒƒ„„„„………†„„„„ƒƒ‚‚‚€€€‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚ƒ„ƒƒ‚‚‚ƒƒƒ‚‚„ƒ‚„‡†‡†ƒ‚ƒƒƒƒƒ„„ƒƒƒ‚‚‚‚ƒƒƒƒ‚ƒ…††…„„€€€€€€€€€€€€€€€€ˆ””†|{~€€€€„…†ˆ‰ˆˆ‡††††††††………„ƒ‚‚‚‚‚‚‚„ƒƒƒ‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚€€€€€‚ƒ„‚‚ƒ„†‡ˆˆ„…†‡ˆ‰Š‹…………………………………………………„„„„„„„„„„„„„‚‚ƒƒ„„„…€‚ƒƒ„ƒƒƒ„…„‚‚‚„ƒƒ‚€€‚‚‚‚ƒ„……Š‘ŽŒŒŽŽŒ‹‹Š‰‰‰ˆ‡††††…………„„„ŠŠ‹ŒŽ‹‹Š‰‡†……ˆ‡…ƒƒ‚‚ƒ„„ƒƒ‚€‚‚€€‚‚‚‚ƒƒ‚‚ƒƒ‚‚‚‚‚‚‚‚‚‚‚‚€‚‚‚‚ƒ„‚‚‚‚€€‚‚„ƒ€‚‚‚‚€€‚‚€€€€€€€€€€€€€€€€€€€xpqy|}……„ƒƒƒƒƒ~|zwussstttsssrrttstststvvvvvvvvvuuvwwwvvvwxxxxwxxxyyyyyxxyyyzzz~|z{|}}{{{}~~~~~~~~~zzzzzzzzzzzzzzzzuuvvwwwxponnoprsssssssssyxxxwwwwwxxwwyywx{~~{yxyvvuuvxyz}ƒ‚‚‚€€€€€‚ƒ‚~}|zxvuuvwuvvwwxyywwxyyzz{yyyzzzzz||{{zzzz~~~~~~~~{|}€‚ƒ„„„………†††……††…„‚‚‚€€€‚‚‚‚‚‚ƒ‚‚ƒƒƒ‚‚‚‚‚‚ƒƒ‚„‡†‡†ƒ‚ƒƒƒƒƒ„„„ƒƒƒƒ‚‚‚ƒ„„‚‚ƒƒƒƒƒƒ€€€€€€€€€€€€€€€€„Œ‹‚}~~€€€€€€€…†ˆŠ‹‹‹‹ŒŒŒŒŒŒŒŒŠŠŠŠ‰‰‰‰‰‰ˆ‡†…„ƒƒƒƒƒƒƒƒƒ‚‚‚‚‚‚‚‚ƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒ‚‚€€€€€‚|}}~~€€~€‚‚„„„……†††††††††††Œ‰ˆ†…††††††††‚ƒƒƒ„„„„ƒƒ„„„ƒ‚‚ƒ„„ƒ………„„ƒƒƒ‚‚‚‚ƒ„…‡‹‘’‘‘‘ŽŽŽŽŽ‹‹Š‰ˆˆ‡‡………†††††ˆˆ‡‡†…„„‡†…ƒ‚‚‚ƒ„„ƒƒ‚‚‚€€‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚ƒ‚‚‚‚‚‚€€‚‚„ƒ€‚‚‚‚‚‚‚‚‚‚€€€€€€€€€€€€€€€€€€€}wwzzyzz~~~~~~|{zxwwwwwvvvvuuuttttttttttttttttuwy{zyxwvvwwwwvvwwwvwvvvvwwxyz{{}}~}{z{||{zyyyyzxxyyyyzz{{{{{{{{wxxyyz{{zzz{{{||vvuuuuvwrrrrrrrrtttttsssrttstuvtx{~}{xxxxwvuvwxy}€ƒ‚‚‚ƒƒ€€€€‚‚‚‚‚€~~}{zxvutuussttuuvvuuvvwxxxyzzz{|||~~~}}}}|||}‚ƒ„…………††‡‡……††…„‚‚‚‚‚‚‚‚‚‚€ƒƒƒ‚‚‚‚‚‚ƒƒ‚‚‚‚‚‚‚ƒ‚ƒ††‡†ƒ‚‚ƒƒƒƒ„„„ƒƒƒ„ƒ‚‚‚„…‚‚‚‚‚ƒƒƒ€€€€€€€€€€€€€€€€„ƒ€‚ƒ‚‚€€€€‚ƒ„…‡‡‡‡ˆˆˆˆˆˆˆˆŒŒŒŒŒŒ……………………††…„„…††ƒƒƒƒƒƒƒƒƒ‚€€‚€€€‚ƒ‚‚‚‚‚‚‚‚‚‚ƒƒ‚„„„„…„……‡‡‡‡‡‡‡‡‡‡‡‡‡ˆˆˆˆˆˆ‡†…„ƒ……†…ƒ‚ƒƒƒƒƒ‚ƒ‚‚‚‚‚‚‚ƒ„…†‹‘‘’’’’’“’““’‘‘ŽŠŠ‰ˆ‡……„………„„ƒƒƒ…„…„…„…„†…„ƒ‚‚ƒƒ„„ƒ‚‚€‚‚€€‚‚‚‚‚‚‚‚‚‚‚‚‚ƒƒ‚‚‚‚‚‚‚‚‚‚ƒ‚‚‚‚‚‚‚‚‚‚‚‚‚€‚‚„ƒ€‚‚‚‚ƒ‚‚‚‚‚‚‚‚€€€€€€€€€€€€€€€€€€|xyzyxyxyyxxxyyyyyyyyyzz{{zzzyyyxxxxxxxxuuuuuuuuy|~~|{{||{{zywvvvuuttssuuvvwxxx{}~~|zyy}}|{zzyyzzzyxwwwxxxxxxxxuuvwxyzzxxxxxyyyzzyyxxxxyyyyyyyywwwwwwwwtvvuvxxwuxz{xutuwvttsuuv{~€‚‚€‚‚‚€~}}zywvuuuvuuuvvwwwxyyzzzz{}}}~~~~~~~~~~~}}}}}}}}|}}ƒƒ„…††††‡‡‡……„„ƒ‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚ƒƒ‚€‚„ƒƒ‚‚ƒ‚ƒ‚ƒƒƒ‚‚ƒ††‡†ƒ‚ƒƒƒ„„„„„ƒƒƒƒ‚ƒ‚ƒ„„„ƒƒƒ„…„„€€€€€€€€€€€€€€€€ƒ…‚ƒ„‚‚‚‚€€‚‚‚‚‚‚‚‚‚‚‚‚ƒƒ„„…†††‡‡‡‡ˆˆˆ„„„…………†‡†„ƒƒ„†‡‰‰‰‰‰‰‰‰‡‡‡‡‡‡‡‡„ƒ€€‚„…€€€€‚„„„ƒ‚‚……„„ƒƒ‚‚„„ƒƒƒƒ‚‚‚ƒ‚ƒ‚ƒ‚ƒ€€€‚‚ƒ‚‚‚‚‚‚‚‚„„„„„„„„ˆˆˆ‡†…„ƒ…††…ƒƒƒ„ƒƒƒƒƒ„„„‚‚‚‚ƒ„…ˆ‹‘’‘Ž‹Šˆ‡…………„„ƒƒ‚‚††††…………ƒƒƒ„„…††……ƒƒ‚‚‚ƒ„„ƒƒ‚‚‚‚‚ƒ‚‚‚ƒ‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚ƒ‚‚‚‚‚‚‚‚ƒ‚‚‚‚„ƒ€‚‚‚‚‚‚‚‚‚‚€€€€€€€€€€€€€€€€{xxzxxxwwwwwwwxxxxxxxwwvzzzyyyxxzzzzzzzz{z{z{z{{|}~|{{{€€€}|{xwwvvuuutttttttt{}€~zwvwwxyzz{{zzzyyxxxwwwwwwwwvvwxyz{{wwwvvvvvyyyyxxwwyyyyyyyyyyyzzzzzxz{y{|}|x{~}{xxxzywvvvxxz}€€€‚‚€€€€€€‚}}|xxwwwxxxyyzzzz{z||}|}}}}~~~}}}||}}}}~}~~|||{|{|||}~ƒ„………††‡‡‡‡†…„‚‚‚‚ƒ‚‚‚€€€€‚‚‚‚‚€ƒƒ„ƒ‚‚‚ƒƒƒƒƒƒ‚‚ƒ††‡†ƒ‚‚ƒƒƒƒ„„…„„ƒ‚‚„„„„„ƒ„„„…††…ƒ€€€€€€€€€€€€€€€€„ƒ€‚‚‚ƒ‚‚‚‚ƒ‚ƒƒƒ‚‚‚‚‚‚‚ƒƒƒƒƒƒƒƒ€€‚‚ƒƒ„ƒƒ‚€€€‚‚‚ƒ‚€€‚ƒ‡‡‡‡‡‡‡‡‰‰‰‰‰‰‰‰„ƒ‚‚„‡‰ˆ‡‡†††‡ˆ†……„„‚‚‚……„ƒƒ‚…„„‚€€ƒƒƒƒƒƒƒƒ‚‚ƒƒ„„‚‚‚‚‚‚‚‚‚‚ƒƒƒƒ‚‚€‚ƒƒ‚€€‚‚‚‚‚‚ƒ‚‚‚‚‚ƒ„…‹ŒŽŽ‹ŠŠ‰ˆ‡‡†„ƒ„ƒƒƒƒƒ„„„„…„…„ƒƒƒƒ„„„„ƒƒ„„††‡‡…„ƒ‚‚‚ƒƒ„„ƒ‚‚€‚ƒ‚‚ƒ‚ƒ‚‚‚ƒ‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚ƒ‚‚‚ƒ‚‚‚‚‚‚ƒ‚ƒ‚€‚‚„ƒ€‚‚‚‚€€€€€€€€€€€€€€€€€€€€€€{vw{zyyxwwvvvvvwuuvwwwvvyyyxxxwwyyyyyyyy{{{{{{{{zzzyxxxx||}}}}||zzzzyyyyyyxxxxxx|~~zwvuvwxxyxwsttuvwxxttttttttuuvwwxxyxxwwwvvvxxyzzzyxwwwwwwwwxxxxxyyyxzzyy{{z{~€~{z{}}{zz{|}{~€‚‚‚€€€€‚€~}||xyyyzz{{}}}}}}}}}}}~}~}~~~~}||||||}}~~~}~}~}~}}}}~€ƒ„…………††††‡‡†…„ƒƒƒ„‚‚‚€€€€‚‚€€€‚‚‚‚‚‚‚ƒ€‚‚ƒ‚‚‚‚ƒ‚ƒ††‡†ƒ‚ƒƒƒ„„…„„„„‚ƒ„………ƒƒƒƒƒ…††„‚€€€€€€€€€€€€€€€€„Š‰ƒ€€‚…‚‚ƒƒƒ„ƒ‚‚‚‚ƒƒƒƒƒƒƒƒƒƒ‚‚‚‚ƒƒƒƒƒ‚‚€€€€€€€€€€€€„ƒ‚‚ƒ…†ˆŠ‰ˆ‡‡‡ˆˆ‰‰‰ˆ‡‡††‹‹ŠŠ‰ˆˆˆ‡†……ƒƒ‚‚ƒ‚ƒ‚ƒ‚ƒƒƒƒ„ƒ„ƒ„ƒƒƒƒƒƒƒƒƒƒƒƒƒ‚‚‚‚‚‚‚ƒƒƒƒ€€€€€€€€€€‚‚‚‚ƒ„…†‡ˆˆˆ‡††ƒƒƒ„ƒ„„„„„ƒ„ƒƒƒƒƒ„„……†††ƒƒƒ„„………ƒ„„……††‡„ƒ‚‚‚‚ƒ„„ƒƒ‚‚ƒ‚‚ƒ‚‚‚‚‚‚‚‚ƒƒ‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚ƒ‚‚‚‚‚‚‚‚‚‚€‚‚„ƒ€‚‚‚‚€€€€€€‚€€€€€€€€€€€€€€€€€€wpr{€}||{{{{{wxyzzzyyyyxxxwwwxxxwxxxxwwwwwwwwwwvwwxwwwwxyyyyxzzzz{{{{{{|||||}~€~|zzz||}~~|{zvvwxyz{{ttttttttvvvvvvvvuuuttsssrsuwwwvvxxxxxxxxwxxxyyyyxyyxxyzxxz~}{xxxzyxwxxz{|‚€€€€€€€€ƒ‚€~}||{{||||||~~~~~~~~}}}}}}}}~~~~~~}}}}~~}~€‚ƒ……„„………†††……†……„‚‚‚‚‚‚€€€‚‚€€€ƒ‚‚ƒƒ€€‚‚ƒƒ‚‚‚‚‚ƒƒ‚„‡†‡†ƒ‚ƒƒ„„„……„„„‚ƒ„„…„„ƒ„ƒ‚„…†„‚€€€€€€€€€€€€€€€€Ž”‘…~}€€€‚„…ƒƒƒƒƒƒƒƒ‚‚‚€€€€‚‚‚‚ƒƒƒƒƒƒƒƒ‚‚‚‚‚‚‚‚€€€€€€€€ƒƒƒƒƒƒƒƒ‚€€…„„„„„„„‹‹‹ŠŠŠŠŠˆˆˆˆ‰‰‰‰‡‡ˆ‡ˆ‡ˆ‡ŽŒŠˆ…„ƒ‚‚‚‚‚‚‚‚„ƒƒƒ‚‚‚‚ƒƒ„„„„ƒƒ……†„ƒ‚ƒƒ„ƒƒƒ‚‚‚‚‚‚‚ƒ„…‚‚‚ƒ„„ƒ‚‚‚ƒƒƒƒƒƒ†††……„„„„„„„„„……‡††††………ƒƒƒƒƒƒ„„ƒ‚‚‚ƒƒ„„ƒ‚‚€‚ƒƒƒƒ‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚ƒ‚‚‚‚‚‚‚‚‚‚‚€€‚‚„ƒ€‚‚‚‚€€€€‚‚‚€€€€€€€€€€€€€€€€€€ypr}‚‚„„ƒ‚€~|zxvvvuuuttxxxxxxxxwwwwwwwwwvvwyzyxxxyyyxwwxxxyyzzzxxyyz{||€€~|zz}xy{}~~~}{{{{{{{{zzzzzzzz{{zzzzyyxxxwvvvupqtvwwvussssssssssssttuuvxxvvwwvy||yyyxwvvvwyz|€€€€€‚ƒƒ€~€~}||~~~~~}||}}}}}}}}}}}}}|||{|||}}~~~~~€€€~~~~~~~}~‚„……„„„…………†‚„…†…ƒ‚‚‚‚‚‚‚‚ƒ‚‚€€‚‚‚‚‚ƒ‚‚‚‚‚‚‚‚‚ƒ‚ƒ„„ƒƒƒ‚‚„ƒ‚„‡†‡†ƒ‚ƒƒ„„„……„„„ƒƒƒ„„„„„…ƒ‚ƒ…†…„€€€€€€€€€€€€€€€€Š’{}€‚€€€€€€€ƒ…‡‰‰‰‰‰‰‰‰‰ŠŠ‰‰ˆ‡‡†ˆˆ‡††…„„„„„ƒƒƒƒ‚‚‚‚ƒƒ‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚ƒƒƒƒ‚€~ƒ‚€€€€€€€~~€‚ƒ„…‡‡‡‡‡‡‡‡‹‹‹‹ŠŠŠŠŠŠ‰Š‰ŠŠŠˆˆˆ‡‡‡††ƒƒ„„„ƒ‚‚„……„‚‚‚‚„ƒƒ‚€€‚‚‚‚ƒ„…ƒƒ„…†‡‡†‡††…„ƒƒ‚‚‚ƒ„…†‡ˆ‡‡‡‡†††…ˆ‡†…„ƒ‚‚‚‚‚‚ƒ‚‚ƒƒ„„ƒƒ‚‚ƒƒƒƒ‚‚‚ƒƒ‚‚‚‚‚‚ƒƒ‚‚‚‚‚‚‚‚ƒƒƒƒ‚‚‚‚€‚‚„ƒ€‚‚‚‚‚‚‚‚‚€€€€€€€€€€€€€€€€€€wxyz{|~~~~~~~~~~€€~~}wwwwwwwwwwvusrqqsssssssswwwwwwwwwwxxxyyyyyyyxxwwyyyzzz{{}~~}}{zyzzzzzzzzyyyxxwww{{{{{{{{{|}|zyz{||||||||xy{}~~~~ttttttttrrrqqqpptrqrtutsvwyzzywvtuvvvwy{|€€€€€€€€€€€€€‚ƒ‚‚‚‚‚}|{||}}~~~}}}}}}}}}}}}}}}}~~~~~~~~~~~~~~~~~~~~~}ƒ„‚ƒƒƒ„„„„†„„……‚‚‚‚ƒƒƒƒƒƒ‚ƒƒ‚‚ƒ‚‚‚‚‚ƒƒ‚‚ƒ‚ƒ„„ƒƒ„ƒ‚‚ƒ„†††„‚‚‚„„…†…„ƒ‚„„ƒ„………„‡„……ƒƒ…ƒ€€€€€€€€€€€€€€€€„„ƒƒ‚‚€€€€€€€€……†††‡‡‡ŠŠŠŠŠŠŠŠŒŒŒŒŒŒŒŒ……………………………„„ƒƒƒ‚‚‚‚‚‚‚‚ƒƒ‚‚ƒƒ„„ƒ‚‚€„„ƒ‚€~}€€€€€€€€€€€‚‚‚€€€€€€€€……†‡‰Š‹ŒŒŒŒŒŒŒŒŒŒ‹‰‡…ƒ‚…†‡†ƒ‚ƒ„„ƒƒƒƒ„…†‚‚‚‚‚‚‚‚‚‚‚‚‚€€€‚‚ƒ„…††‡‡†„‚†††……„„ƒ††††††††„„„„„„„„…„„ƒƒ‚‚ƒƒƒƒƒ‚‚‚„…†„€‚…„„ƒ‚‚€€ƒ‚‚‚‚‚‚‚‚‚€€€ƒƒƒƒƒƒ„„‚‚€‚€‚‚‚‚‚ƒƒƒƒ‚€‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚ƒ„€€€€€€€€€€€€€€€€xyyyyyyyzzzzzzzzzzzzz{{{xxxxxxxxzzyxwwvvuuuuuuuuzzzzzzzzvwwwxxxxwwvvuuuuxxxyyyyz~~}}{{zzzzzzzz{{{zzzyyxxxxxxxxyz{zxwwyzzzzzzzzwxz||}}|{{{{{{{{{zyywvuuwvuwz|{zuvxyyxvuuvvutuvx|€€€€€€€‚‚‚‚‚‚}|zz{{{||}||||||||~~~~~~~~€€€€€€€€~~~~~~~~~~~ƒ…ƒƒƒ„„„„…†„„…„‚‚‚‚‚‚‚‚‚€€‚‚‚‚‚€€€‚ƒƒ‚‚ƒ‚€‚ƒƒƒƒƒƒ‚‚ƒ„‡‡‡…ƒ‚ƒƒ„„„„„„„„„„ƒ„„…„„‚‚„‚ƒ„‚€€€€€€€€€€€€€€€€…„„„ƒƒ‚‚‚ƒ‚ƒ‚ƒ‚ƒ‚‚‚‚€€€‚‚‚„„„„„„„„††††††††‡‡‡‡‡‡‡‡…………„„ƒƒ††††††††€€€„„ƒƒ‚ƒƒƒƒ‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚ƒƒƒ€€€€€€€€‚‚‚€€ˆ‡‡†…„ƒƒ„†‡‡††‡‰……„„„…†‡‚‚‚€‚€‚‚‚ƒ„…‰ŠŠŠ‰ˆ†…‡‡††……„„„„„„„„„„‚‚‚‚‚‚‚‚‚ƒƒ„……„„ƒ„ƒƒƒƒ‚ƒ‚€€‚…„„ƒƒ€€ƒ‚‚‚‚‚‚‚‚‚‚‚ƒ‚ƒƒƒƒƒƒƒƒƒƒƒ‚‚‚‚‚‚‚‚‚‚‚ƒƒƒƒ‚‚€‚‚‚‚‚‚‚‚‚€€€€€€€€€€€€€€€€zzyxwvuuvvvvvvvvttuuvwxxwwwwwwwwzyzyyyyyyyyyyyyy{{{{{{{{zzz{{|||zzzyyyxx{{{{||||~}|{vuvuvuvuwwwvvuuuyxyxyxyyyz{zxwxyyyyyyyyyxyz{}|||zzzz{zzzwxyy{|}}}|{}€€{|~~|{{||zyyz{|~€€€€‚€€€‚‚‚~}{{||}}}}~~~~~~~~~~~~~~~~{|}~€‚€€€~~‚„…ƒƒƒƒ„„……†„„……‚‚‚‚‚‚‚‚€€‚€ƒƒƒ‚‚‚‚€€‚‚ƒƒƒ‚‚‚ƒ„‡‡‡…ƒ‚ƒƒ„ƒƒƒƒ„„„„ƒƒƒ„„„„ƒ…„ƒ‚€€€€€€€€€€€€€€€€€„„„ƒƒƒƒ‚„„„ƒ„ƒ„„ƒƒƒ‚ƒ‚ƒƒ‚‚‚ƒƒ€€€€€€€€‚‚‚‚‚€€€€€€€€€€€ƒƒƒƒƒƒƒƒ€~€€„„ƒƒ‚‚…†‡‡‰‰Š‹……………………„ƒ„ƒ„ƒ„„€€‚‚‚‚‚‚‚‚‚‚‚‚‚€€‚‚‚‚‚‚‚‚€€€€€€ƒ„…ƒ€~€€€‚‚‚‚€‚‚‚ƒ‚‚ƒ„…ŠŠŠŠŠˆ‡†„„„ƒƒ‚‚‚ƒƒƒ‚ƒƒƒƒ‚‚‚‚‚‚‚‚‚‚‚€€€€€€€€€ƒ…„„ƒ‚‚€€‚‚‚‚‚‚‚‚‚‚‚‚ƒƒ‚‚‚‚‚„„„ƒƒƒƒƒ‚‚‚‚‚‚‚‚‚‚‚‚ƒƒƒ‚‚‚‚‚‚‚€‚ƒƒ€€€€€€€€€€€€€€€€{{zywwvuwwwwwwwwtuuuuvvwuuuuuuuuvvvwwxwxyyyyyyyyxyxyxyxx{{|||}}}}}}}|||{{||||}}}}~~~}}|{uututututtstssrrtttuttttuvwvtssuvvvvvvvvtuvxxxwwzzzzzzzzyyyzz{{{|zyyzzxw{|~~|{{||{yyz||€€€€€€€€€€€€€‚‚€~~€€€~~~~~~~~~~~~~~~~~~~~~€€‚‚€€€}~~€ƒ„…ƒ„ƒ„„………†…„…„ƒ‚‚‚‚‚‚‚ƒƒ‚‚ƒ‚‚€€‚‚‚‚ƒ‚‚‚‚ƒƒƒ‚‚ƒ„†††„‚‚‚‚ƒ„„……„„ƒƒƒƒƒ„„„ƒ††…„‚€€€€€€€€€€€€€€€€‚‚‚‚‚‚‚‚‚‚‚‚‚‚ƒƒƒ„„„……‚‚‚‚‚‚‚‚€€€€€€€€€€~~~‚‚€‚‚…„„ƒ‚‚††‡ˆ‰‹‹Œ‹‹‹‹‹‹‹‹ŠŠŠŠŠŠŠŠ…††††‡‡ˆ„„„„„„„„‚‚‚ƒ‚ƒ‚‚€‚‚‚‚‚‚‚‚€‚‚‚€‚‚‚€€€‚€€‚‚‚‚‚‚‚ƒ‚‚ƒ„…†‡††……„„‚‚‚‚‚‚‚‚ƒƒ‚ƒ‚ƒ‚ƒ€€€€€‚‚‚‚‚‚ƒ„„„ƒƒ€€‚‚‚‚‚‚‚‚‚‚ƒƒƒƒƒ‚‚‚‚‚‚„„ƒ„ƒƒƒƒ‚‚‚‚‚‚‚ƒƒ‚‚‚‚‚‚…„‚‚‚ƒƒƒ€€€€€€€€€€€€€€€€{{{{{zzzzzzzzzzzzzzyyxxxvvvvvvvvvvvvwwwwuuvuvuuuxxxwxwxxxxxyyyzzzzzyyxxxxxyyzyzz{||||{{zzzzyzyzzyyyxxwwwvvvvvvvvwxywvuvwttttttttopqrsrrqutututuuwwwwxxyyzxvwxxwuz{}~~}{zyzzyxyz||~€€€€€€€‚‚~‚‚€€€€€~~}}}|‚‚‚~}|{~}}||{{{||~€‚ƒ„…„„„„……†††„„……‚‚‚„ƒƒ‚‚‚ƒƒ‚‚ƒƒ‚‚€€€‚‚‚‚‚‚ƒƒƒ‚‚‚‚‚ƒ‚‚‚ƒ„†††„‚‚‚ƒ„„…………„ƒƒƒƒƒƒƒƒ‚ƒ…†‡†„ƒ€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚„ƒ„ƒ„ƒ„„„„ƒƒ‚‚‚‚„ƒƒ‚‚‚ƒ„……„„ƒ‚‚‚‚‚‚ƒƒƒƒ‚‚‚‚‚‚‚‚††††††††……††‡‡‡‡‡‡‡‡‡‡‡‡ŒŒŒŒŒŒŒŒ‹Š‰‡†„ƒ‚„„„„„„„„ƒƒ‚‚€ƒ„ƒ‚‚ƒ€€€‚ƒ‚‚‚‚‚ƒ‚‚‚‚ƒ„…„„„ƒƒ‚ƒƒƒƒƒƒƒƒ„ƒ‚‚‚€‚ƒ„…†‡††‡‡ˆˆ‰‰ˆ†…ƒƒƒ‚‚„„ƒ‚‚€€‚‚‚‚‚‚‚‚‚‚„„„ƒ‚ƒƒƒƒƒƒ„„„ƒ„ƒƒƒƒƒ‚‚‚‚‚‚‚‚‚‚ƒ‚‚‚‚‚‚ƒƒƒ‚‚‚ƒƒ€€€€€€€€€€€€€€€€{||}}}~~}}}}}}}}~~}}||{{{{{{{{{{z{zzzzzzyzyzyzyzzzz{z{zzyyyzz{{{yyyxxxwwyyyzz{{{z{{|{{zz{{{{{{{{}}||{{{{}}|}|}|}}~~|{|}yyyyyyyytuvwwvuuqqpqpqqqnooqrstussstxzyyxy{||{yxxxyxwxy{|€€€‚€‚‚‚~‚€€€€€ƒƒ‚€€€€€€€€€{{zzyzyy||{{zzyyz{}€ƒƒ„„„„……††††„„…„ƒ‚„„ƒƒ‚‚‚‚€€‚ƒƒ‚‚‚‚‚€€‚ƒƒ‚‚ƒƒ‚‚‚‚‚ƒ„‡‡‡…ƒ‚ƒƒ…„„ƒƒ„…†‚ƒƒƒ‚ƒƒƒ„…„ƒƒ‚€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€ƒƒƒƒ‚‚‚ƒƒƒƒƒƒƒƒƒƒ‚‚‚‚ƒ……„„ƒ‚‚‚‚‚€€€€€€€€€€€€€€€‚‚‚ƒƒƒƒƒƒƒƒ……………………ŒŒ‹‹‹Š‹‹‹‹‹‹‹‹ˆˆ‡†„ƒ‚‚…††…€€‚‚‚‚ƒ„‚‚‚‚‚ƒ‚€€‚‚ƒ„……„ƒƒ‚ƒ„…€€€‚……………………‡‡‡‰‰Š‹‹‰‰Š‹‹ŒŒ‹ˆ…„„„‚„„ƒƒ€€‚‚‚‚‚‚‚‚‚‚ƒƒ„ƒƒ€‚‚‚‚‚‚‚‚‚ƒ‚‚‚‚ƒ‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚€‚ƒƒ„„†€€€€€€€€€€€€€€€€|||}}}~~}}}}}}}}~~~}}}}}~~~~~~~~~}||{~~~~~~~~}}}}}}}}|}}}~~~}}|||{{{||||}}}}z{||||{{{{{z{z{{|||{{zzz{z{z{z{{{|}|zyz{}}}}}}}}{|}}}|{{yyyyyyyyuutsrpooooorvxyxtuwxxwutvvvutsuv|~€€€€€€€€€€~‚€€‚‚€€„ƒƒ‚€}}}}}}}}zyzyzyzzzzzzzyyyxwwvuttsxy|‚‚‚„„……†††††„„……‚‚‚‚‚‚‚‚‚‚‚‚‚€€‚ƒ‚ƒ‚‚‚‚‚„„…ƒƒ‚„…‚ƒ‚‚ƒƒ‚‚‚‚‚ƒ„‡‡‡…ƒ‚ƒƒ…„ƒ‚‚ƒ„„‚‚ƒƒ‚‚ƒƒ‡‡„‚ƒ‚‚€€€€€€€€€€€€€€€€€€€‚‚‚‚‚‚‚‚‚‚‚‚‚ƒƒƒƒ€€€€€€€€€€ƒ‚‚‚………„ƒƒ‚‚„„ƒƒƒ‚‚‚ƒƒ„ƒ„ƒƒƒ‚‚ƒƒƒƒ€€€€€€€€ƒƒƒƒƒƒƒƒ‚ƒ„†‡ˆˆ‡‡‡‡‡‡‡‡Œ‹Š‰ˆ‡†ƒ…††…„†‡………„…†‡‡‚‚‚‚€‚‚ƒ„…†…„‚ƒ„…†‚‚ƒƒ……………………‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‰‰Š‹ŒŽ‰†ƒƒ„„ƒ„„ƒ‚‚€€‚‚ƒ‚‚‚‚‚ƒ‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚ƒ‚‚‚ƒƒƒ‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚€ƒ††…„…‡€€€€€€€€€€€€€€€€|||||}}}||||||||{{{|}}~~}}}}}}}}€}|{{{{{{{{{{}}}}}}}}|||}}}~~~~~}}}||{{{||||}{||}}}||}}}}}}}}}}||{{{{{{{{{{{{{|}|zyz{{{{{{{{{zz{|{{yy||||||||}}||{{{{yyyz~€yz|}}|zy{{{ywvwx|€€€€€€€€€€€~~~€€‚€€…„„ƒƒ‚‚‚}}|{zzyxxxxxxxxxyyyyyyyy~}{xtqomnnmmkkjjvx{~‚‚‚„………†††‡†„„…„‚‚€€€‚‚ƒƒ‚ƒƒ‚‚ƒ…„„ƒ‚‚€€~€‚€‚‚ƒ‚‚‚‚ƒ„†††„‚‚‚ƒƒƒƒ‚‚‚‚‚ƒƒ‚‚‚ƒ†…}|{z|€€€€€€€€€€€€€€€€‚‚ƒƒ„„„‚‚‚‚‚‚‚‚‚‚ƒƒƒƒƒƒƒƒƒƒƒƒ‚‚‚‚‚‚‚‚€€€€€€€€‚‚‚‚€€‚‚‚‚‚‚‚‚ƒƒ‚‚ƒƒ†……„ƒƒ‚‚‚‚‚‚‚‚‚‚ƒƒƒƒƒƒƒƒ€€€€€€€€€€€‚‚‚ƒƒƒƒƒƒƒƒ„„„„„„„„‚‚‚‚‚ƒƒƒ‚‚‚‚‚‚‚‚„ƒƒ‚€‚ƒ~~‚‚‚ƒ„‚‚‚‚‚‚‚‚‚‚‚€‚‚‚ƒ„……„‚‚ƒ„†‡ˆˆ‰‰ŠŠŠ‹‹‹‹‹‹‹‹‰‰‰‰‰‰‰‰…†‡ˆŠ‹ŒŒŒŽ‘‘‡„ƒ„ƒ„„ƒ‚‚€€‚‚ƒ‚‚‚‚‚ƒ‚€‚ƒ„ƒƒ„„„„„„†††……………‚‚‚‚‚‚‚‚‚‚‚‚ƒ‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚€„‰Šˆˆ‰Œ€€€€€€€€€€€€€€€€}}}}}}}}}}}}}}}}}}}|}}}}}}}}}}}}~~~~~~~~||||{{{{}}}}}}}}||||||||}}}}}}}}||||||||||}}}}|{{{{|||}}}}}}}}}}}}}}}}}}~~}|||}||{zyxx{{{{{{{{zzzzzzzz}}||||||~}}|||}}~~~}}~~~~~~~~~€€€€€€€~~€‚ƒ‚‚‚‚††††††††‚~|zzzzzyxxyz}~{{||}}~~‚~zpjgdgosqlghnu}‚ƒ‚ƒ…………††††„„…†…ƒ‚‚€‚‚‚ƒ‚‚‚€~|{~~}|{zyyxxyz{zxu|‚ƒ‚„‚‚‚ƒ……‡ˆ…‚†„„„„…………‚ƒƒƒ‚‚ƒ…„|xuv{~€€€€€€€€€€€€€€€€‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚ƒƒƒƒƒƒƒƒ€€‚‚‚‚‚‚‚‚‚‚‚†‡‡†„ƒƒ„‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚€‚ƒ„„„„„„„„ƒƒƒƒƒƒƒƒ‚‚‚‚‚‚‚‚‚ƒƒƒ„„„„‚€‚‚‚ƒ‚€€€€€€€€€€‚‚‚€‚€€‚‚€ƒ‚€‚„…‚‚‚‚ƒƒ†ˆŠ‹Œ‹Š‰ŽŒ‰ˆˆ‰‰ƒƒ„„„„„ƒƒ„…‡ŠŒŒ‰†‡‹Œ†ƒƒƒ‚‚ƒƒƒƒ‚‚‚‚‚‚‚‚‚‚‚‚‚ƒƒ‚‚ƒ‚‚‚„†‰‹‰‰‰‰‰‰‰‰‹ŠŠ‰‰‰Š‹‡‡†ƒ€ƒƒ‚‚‚‚‚‚ƒƒ‚‚ƒ‚‚€€‚‚‚‚ƒƒˆˆ„„€€€€€€€€€€€€€€€€||||||||||||||||}}}}}}}}}}|}|}|}}}}}}}}}}}}}||||}}}~}~}}||||||||}}}}}}}}||||||||z{|}}~}}{{|||}}}}}}}}}}}}}}~}}}}~~~}|||~~}}||{{||||||||||||||||}}|{{{||{{zzzz{{|}}~~}}|||||||||€€€€€€€€€€ƒ‚‚‚…††………………………ƒƒ‚‚€~~~}||~€~~~~~€}{wtutllv||xpkmu}‚ƒ‚ƒ…………††††…„„……ƒ‚‚‚‚‚‚ƒ„ƒ|zxwzzzzz{{{zzz{|{yw{~‚ƒ…‚‚‚ƒ…†‡†„ƒ…„„„„„„„„„‚‚ƒ……„„‚}xuw{€€€€€€€€€€€€€€€€‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚ƒƒƒƒƒƒƒƒ‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚ƒƒƒƒƒƒƒƒƒ…††…ƒ‚‚ƒƒƒ‚‚‚ƒƒƒƒƒƒƒƒ€€€‚‚ƒƒƒƒƒƒƒƒ‚‚‚‚‚‚‚‚‚‚‚ƒƒƒƒƒ„„ƒƒƒƒ„„‚„…„‚€€‚‚‚‚‚‚‚€‚€€€ƒ‚‚‚‚ƒ„ƒƒ…†††„„‡‡………†‡ˆ‰‰‰‰‡…ƒ‚ƒƒƒ„„„ƒƒƒƒ„†ˆ‰‰ˆ‰‡……ˆ‹ŽŒ†ƒƒƒ‚‚ƒƒƒƒ‚‚‚‚‚‚‚‚‚‚‚‚‚ƒƒ‚‚‚‚ƒƒ…†ˆ‰‰‰‰‰‰‰‰‰‰‰ˆˆ‡ˆ‰‰‡‡†„€ƒƒ‚‚‚‚‚‚ƒ‚‚‚‚‚‚€€€€‚‚ƒƒƒ‚‚…‹‰„€€€€€€€€€€€€€€€€{{{{{{{{||||||||}}}}}}}}|||{|{||||||||||~~~}}|||~~~~~~~~}|}|}|}}}|}|}|}|||||||||yz|}~~~~||||}}}}~}~}~}~~~~~~~~~~~~}}|||~~~~~~~~}}}}}}}}}}}}}}}}}}||{{||||{{{{||{||}}}||{{{{{{{{€€€‚€€€€€„‚€‚ƒ‚ƒ€‚†‡†„€€€€‚ƒ…††…„ƒ‚€€€€€€~~}~}{ury{tx~€wpou}‚ƒ‚ƒ„„……†††††„„„„‚‚‚‚‚ƒ‚€~|{z{|yzz{||}}|||}}}{yz|‚ƒ„†‚ƒ‚ƒ…‡‡…ƒ‚‚ƒ„„„„ƒƒƒƒ‚„‚‚„…†……‚~yvw|€€€€€€€€€€€€€€€€€ƒ‚ƒ‚ƒ‚ƒƒƒ‚ƒ‚ƒ‚ƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒ‚‚‚‚‚‚‚‚‚‚‚‚ƒƒƒƒƒƒƒƒƒƒƒƒ„„…„‚‚‚ƒƒƒ‚‚‚‚‚‚ƒ‚ƒ‚ƒ‚€€€‚‚‚‚‚‚‚‚‚‚‚‚‚‚ƒ‚‚‚‚‚‚‚‚‚‚‚ƒƒƒƒƒ‚‚‚ƒƒ‚‚‚‚ƒƒ„…††„‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚ƒ‚‚€€€€€‚‚ƒƒƒƒƒ††…„……‡ˆ‡…„ƒƒƒ……„†ˆ‰‰…~ƒƒƒƒƒƒƒƒ„ƒ„…ˆˆ‡……„„ƒ„†ŠŒ†ƒƒ„‚‚ƒƒƒƒ‚‚‚ƒƒƒƒƒƒƒƒ‚‚‚ƒƒ‚‚‚‚ƒ„…†‡‡‡‡‡‡‡‡‡‡‡‡‡††††‡‡‡‡‡„‚€‚ƒƒ‚‚‚‚‚‚‚ƒ‚‚€€‚‚ƒƒƒƒŠŽŠƒ€€€€€€€€€€€€€€€€{{{{{{{{{{{{{{{{||{|{|||{{{{{{{{{{{|{|{{}}}}||{{}}|}|}}}}}}}|}}}||||||||||||||||z{|}}~}}|||}}}}~~~~~}~~~~~~~~~~~~~~~}}~~~~~~~~||||||||||||||||~}}||||}}}|||}~~{|}}~}}|{{{{{{{{€‚€€€€€…ƒ€€‚‚ƒ€ƒƒ‚€€€€€ƒ…††††€}}||~~}}|||vlowy~zrpu}‚ƒ‚ƒ„„„……††††…„„ƒ‚‚ƒ‚€‚ƒ‚~|{}~~}~}~}~~}}~~}{y{~€‚„…†‚‚‚‚ƒ…‡‡†„‚‚ƒ………„„ƒƒ‚‚‚ƒ„„ƒ„†ˆ…ƒ~yvx|€€€€€€€€€€€€€€€€€ƒƒƒƒ‚ƒƒƒƒƒƒƒ‚ƒƒƒ„„„„„„„„ƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒ„„„„„„„„ƒƒƒƒƒƒƒƒ‚‚‚‚‚‚‚‚ƒƒƒƒ„„„„ƒƒƒƒƒƒƒƒ„……„‚‚‚ƒ„„ƒƒƒ‚‚‚€€‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚„„„„ƒƒ‚‚‚‚…†‡†„ƒ‚ƒƒƒ‚ƒ‚ƒƒƒ‚‚‚‚‚‚‚‚€€€€‚ƒ„…„ƒ‚ƒ„„……………„…‡ˆ‡†ƒƒ…ˆ‹Š‰…„„„ƒƒ‚ƒƒƒ…„„‡‰‹ˆ†‚ƒ„ƒƒˆŒ†‚ƒƒ‚ƒƒƒƒ‚‚‚‚‚‚‚‚‚‚‚‚‚‚ƒƒ‚‚‚‚ƒ…‡ˆ‡†…††††††††††…†…†††‡‡‡†‚ƒƒ‚‚‚‚‚‚ƒ‚‚‚€€‚‚‚‚‚‚‚‚„Š‰ƒ€€€€€€€€€€€€€€€€€{{{{{{{{{{{{{{{{zzzzzzzz{z{z{z{z{{{{{{{{|{{{{zzz{{{{{{{{||}|}|}|{{{{{{{{{{{{{{{{||}}~}||||||}}}}}}~}~}~}~~~}~}~~~~~~~~}}}|}}}}}}}}||||||||~~}}}}}}||{{||}~|}~~~~||||||||€€€€€€€€ƒ€€€€€€€€€€€‚ƒ…†‡€€~|{{}}}}}}}}}€xihs|}~}~|snu}‚ƒ‚ƒ„„„„…………‡……„„‚‚‚€‚‚…‚|{{}~~~~~~~~~~~~~|yz|‚„…„‚ƒ‚ƒ…†‡ˆ„€ƒ†††……„„ƒƒ‚ƒ„„ƒ„†‡…ƒ~ywx}€€€€€€€€€€€€€€€€€‚‚ƒ‚ƒ‚ƒ‚‚‚ƒ‚ƒ‚ƒ‚„ƒ„ƒ„ƒ„„ƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒ„„„„„„„„…„…„…„……ƒƒƒƒƒƒƒƒƒƒƒ„„„„…ƒƒƒƒƒƒƒƒ„…†…„ƒ„…„„„„ƒƒƒƒ‚‚ƒƒƒ‚ƒ‚ƒ‚ƒƒ‚‚‚‚‚‚‚‚„ƒ„ƒƒ‚‚‚„ƒƒ‚‚‚‚‚„…†…„‚‚‚ƒƒƒƒƒƒƒƒ‚‚‚‚‚€€‚‚‚€‚„……„ƒ‚‚ƒ„„„„„„‚…‰‹Š‡ƒ„„†‡‰Š‹‹†…„ƒƒƒ„„„‚ƒ†‹Œ‰†„…ƒ‚ˆŽŒ†ƒƒ„‚‚ƒƒƒƒ‚‚‚ƒƒƒ‚‚ƒƒƒ„…†ˆˆ‡†„†††††††††††††††††‡ˆ†„‚‚ƒ‚‚‚‚‚‚‚ƒ‚‚€€€‚‚‚ƒƒƒ‚‚€†‹‹‡‚€€€€€€€€€€€€€€€€{{{{{{{{||||||||zzzzzzzz{{z{z{{{{{{{{{{{{{zzzzyyzzzzzzzz||{|{|{|z{z{z{z{zzzzzzzz|}}~}}|{{{{{||||}}|}|}|}}}}}}}}}~~}~}}}}~~~}}||~~~~~~~~||||||||~}}|||}}||||}}~|}~}}}}}}}}~€€€€€€€€€€€€€€€‚€€€€€€€€ƒ‚‚ƒ…‡‚ƒ‚‚€~}~~~~~~~~~~xlku~~||€|uqu}‚ƒ‚ƒƒ„„„„………‡………„‚‚€€‚}{zz{|}z{{|}~~~~~~~~~}{{|‚„ƒ‚‚‚‚‚ƒ……‡ˆ…€‚††………„„„„…ƒ‚‚„……„…‚}yvx|€€€€€€€€€€€€€€€€€‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚ƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒ……………………„„„„„„„„ƒƒƒƒ„„„„„„„„„„„„„†††„„…†………„„„ƒƒƒ„ƒ„ƒ„ƒƒ‚‚‚‚‚‚‚‚‚‚‚‚‚ƒƒ„ƒƒƒƒƒƒƒƒ„„„„„„„„ƒƒƒƒƒƒƒƒƒƒƒƒ‚‚‚‚„ƒ‚‚ƒ„……ƒƒƒƒƒƒƒƒƒ‚‚‚‚‚€€‚ƒƒƒ‚‚„………ƒ‚…„ƒƒƒ„…†ƒ„…‡†…ƒ‚ƒƒ‚ƒ„‡ŠŒˆ‡…„ƒ„„…‚†ŠŒˆ„‚„…„‚ƒ‰ŽŒ†‚ƒƒ‚‚ƒƒƒƒ‚‚‚ƒƒƒ‚‚ƒƒƒ††‡‡‡†……………………………††‡†††…†ˆˆˆ„ƒ‚‚ƒ‚‚‚‚‚‚ƒ‚‚‚€€‚‚ƒƒ‚‚‚‡Œ‹†ƒƒ€€€€€€€€€€€€€€€€||||||||||||||||{{{{{{{{{{{{{{{{|||{|{||{{{{zzzzzzzzzzzz{{{{{{{{zzzzzzzzyyyyyyyy{|}}~}}|zzzz{{{|||||||||||||||||{{{{{{{{|{{{{{{{||||||||{{{{{{{{||{{{{{{||||}~~{|}~}}}}}}}}~€€€€€€€€€€€€€€€€€‚‚‚‚‚‚‚‚‚‚ƒ‚‚‚‚‚‚‚ƒƒ„„„‚€~~}}||{|}}vmpy}€}||uru}‚ƒ‚ƒƒƒ„„„„……†…………‚€€€ƒ‚yyz{|}~~{{||||}}~}}}~}||{|~‚ƒ‚€‚ƒ‚ƒ…†‡‡„€ƒ…„„„„„„„„…„‚‚ƒ„ƒ‚„}xvw{€€€€€€€€€€€€€€€€€€€€‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚ƒƒƒƒƒƒƒƒ„„„ƒ„ƒ„„ƒƒƒƒƒƒƒƒ‚‚ƒƒƒ„„„„„„„„„„„ƒ„……„ƒ„…†…………„„„„„„„„„„„ƒƒƒƒƒƒƒƒƒƒƒƒƒƒ„…††††††††…………………………………………„„„„„„…„„„ƒ‚ƒ…†…ƒ‚‚‚‚‚‚ƒ‚‚‚ƒ‚‚‚‚€‚‚‚€€ƒƒƒ‚ƒ„……„„ƒ‚ƒ„…†…„„„„ƒƒƒ„……„ƒ‚€‚„‡‰Š‰‡…„„††…ƒƒ‡ŒŒ‡‚ƒ„„ƒ‚„‰Œ†ƒƒ„‚‚ƒƒƒƒ‚‚‚„ƒƒ‚‚ƒƒ„‰ˆ‡††…††††††††††„…†††……„†ˆ‰ˆ†ƒ‚‚ƒ‚‚‚‚‚‚‚ƒ‚‚‚‚ƒƒ‚†Œˆ„‚€€€€€€€€€€€€€€€€}}}}}}}}}}}}}}}}}}}}}}}}{{{{{{{{||||||||||||{{{{{{{{{{{{zzzzzzzzzzzzzzzzxxxxxxxxzz|}~~~~yyzzz{{{{{{{{{{{{{{{{{{{yyyyyyyyxxxyyzzzzzzzzzzzyyyyyyyy{{zzyyzzyyyyz{||yz|}~~~~||||||||}€€€~€€€€€€€€€€ƒ‚€}€€€€€€€€€‚‚€~}‚„…„ƒ€~~}|zyxxy}~ulqz{{~ƒ|qmu}‚ƒ‚ƒƒƒƒ„„„……†……†…‚€€€‚ƒƒ}}~~~}|€~||{z}||}}}|}||~‚ƒ~‚‚‚ƒ…‡‡…„‚‚ƒ„ƒƒƒƒƒ„„„„„„ƒ‚ƒ„|xuv{~€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚ƒƒƒ„„„„„„„„„„‚ƒ„„ƒ‚ƒ„††………„„„ƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒ„„ƒƒƒ„…………………………††††††††‡‡‡‡‡‡‡‡††††‡‡‡ˆ‡‡†…„„„„„†‡†„‚‚ƒ‚‚‚‚‚‚‚‚ƒƒ‚‚‚‚€ƒƒ‚‚ƒ€‚ƒ‚‚ƒ„„„„„„ƒƒƒƒƒ„„…„„ƒƒ„…†‡‡…ƒ‚‚ƒ„…‹Š‡…„…†‡ˆ††‰ŽŽˆ‚ƒƒƒ‚‚…‰ŒŒ†ƒƒƒ‚‚ƒƒƒƒ‚‚‚‚‚‚‚‚‚‚‚„ƒƒ‚‚ƒƒ„‹‰‡………†‡††††††††ƒ„…†……„ƒ†ˆ‰‰†ƒ‚‚ƒ‚‚‚‚‚‚ƒƒ‚‚€‚ƒ„…„‚…‹‹…€€€€€€€€€€€€€€€€|ywwz}€}€€~~}}}}}}}|}}}}}}}}}}|{{{|}}}}}}}}}}~€}|~}}}~~€}zz|~}|||||||||x{‚‚~|zzzzzzzz}|zyxxyyzz{{{{{{{ywvvx{}zzzzzzzzzzzzzzzzyyyyyyyyzyzyzyzzuwxyyz{}yz{|}||{yyzz{{||}€€‚~€€€€€€€€‚‚€€€ƒ‚€€€ƒƒ‚‚€‚‚‚‚‚‚‚‚ƒ…‡†ƒ‚ƒ€}|~vorvzymmx~vmmu{€„…„ƒƒ„„…††‡ƒ„……„ƒ‚‚€ƒ‚||}}}}}|}}}}}~}}}~~}~~|{|~ƒƒ‚‚‚ƒ„…‰ˆ‡„‚‚ƒ…ƒƒ„……„ƒƒƒ‚ƒ…ƒ‚ƒ‚~yuvz€€€€€€€€€€€€€€€€€„‡‡‚€€€€€‚€~~‚€€€€€€€€‚‚€~~€€€€€~~~€€€€€€€€€€€€ƒƒƒƒƒƒƒƒ‚‚ƒƒƒƒƒƒ‚ƒ„„ƒ‚‚……„„…†‡ˆƒƒƒƒƒƒƒƒƒƒƒƒƒ„„„„„„„„„„„†††††††††††………„„ˆ‡†„„„„„……„„„„„„…„ƒ‚€€€‚‚€€€€€€‚‚‚‚€~‚„„ƒƒ……†††‡‡‡ƒƒ„„……††………………………Š‹‡…‰ŠŠ‰‰ŒŽŠƒ……„ƒ‚†’Œ†‚‚‚„„„ƒƒ‚ƒ‚‚‚‚‚‚ƒƒ‚ƒ‚ƒ‚ƒ‚……………„„„†††……………„……††…„ƒ‡†‡ˆ†ƒ‚‚‚‚€‚ƒ‚€ƒ‚„††ƒ…‡ŠŒŠ„€€€€€€€€€€€€€€€€€|yvvy}€~€‚€€€€€€€€~}}~~|{xxxxxxxx{}~}{{|~{|||}}~~‚|}€}}}}}}}}xz~€}{||||||||€}|{||}~~||{||}||zzzz{|zzzzzzzz}}|{yxww{{{{{{{{xxxxxxxxyyyyyxyyz{{||{zyyyyzz{{{|€€‚~€€€€€€€€~€€‚‚€~€‚‚‚‚‚‚‚‚ƒ…‡…ƒ‚‚}{yqkovx|xnmw€~|slnu{€„…„ƒƒƒ„……††„„………„‚‚‚€ƒ‚|}}~~~~~}}}~~~~~~~}}~||{~ƒƒ‚‚‚ƒ„…‡‡…„ƒ‚ƒƒ„„„ƒ‚ƒ‚ƒ…ƒƒƒ‚~yuvz€€€€€€€€€€€€€€€€„ˆ‹Š†‚‚ƒ€€€€‚€€€ƒ„‚‚‚‚‚‚‚‚€‚ƒ„ƒ„†ˆˆˆˆˆˆˆˆˆƒƒƒƒƒƒƒƒ„ƒƒ‚‚€€€€€€€€€~‚‚~€€€€€€€€€€‚ƒ„„…„ƒ†††††††††††…………………„…„………††††††††‚‚‚ƒƒƒ„„ˆ‡†…„……†††††…†……„„ƒ‚‚‚€€€€€‚‚‚€€ƒ„„„„‚ƒƒ„„…††…………„„„„……………………†‰‹‹ˆ‡‰Œˆˆ‡‡‹Š„‚ƒ„…†‰ŒŒ†‚‚‚„„„ƒƒ‚‚ƒ‚‚‚‚‚‚ƒ‚ƒ‚ƒ‚ƒ‚ƒ………………„„††…†…†…………†††…„„‡†‡ˆ†ƒ‚‚‚‚‚ƒƒƒ‚€‚ƒ€‚………ƒ„‡‹ŒŠ„€€€€€€€€€€€€€€€€€{xvvy}€€‚„ƒ‚‚‚‚ƒƒƒ„……†ƒƒƒƒƒƒƒƒƒƒ}zuuuuuuuuz{}|zy{|{{{{||}}~{yx{||{xxxxxxxxwy|~}{z{{{{{{{{~}{{{|}~~~~~~~~}|{z}}}}}}}}~}}||{{{zzzzzzzzyyyyyyyy}}|{zzyx}}~}}{zyzzzz{{|||~€€€€€€€€€€~‚€€~}}}~~~€‚ƒƒ‚‚‚‚‚‚‚‚€„†‡†ƒ€‚‚{vnlrtquvomv€€|wskiou{€€ƒ…„‚‚ƒƒ„………„……†…„ƒ‚‚ƒƒ}}~€€~~~~~}~~}}||}|{|}ƒƒ‚‚‚ƒ„…†††„ƒ‚‚‚ƒƒƒƒ‚‚ƒ‚ƒ…ƒ€„…‚}xuvz~€€€€€€€€€€€€€€€€†ŠŒ‡ƒƒ„€€€€‚€‚„„‚‚‚‚‚ƒƒƒ…‰Œ††††††††‰ˆˆ†…„ƒ‚‡‡‡‡‡‡‡‡††††††††‡…‚€€‚…‡…„…„…„…„‚‚‚‚€€€ƒ„†„ƒ‚€€„„ƒƒ‚€€……………………ƒ„„……††‡„„ƒƒƒ„…†……………………„ƒ‚‚‚‚€‚‚‚€ƒ„…………‚‚‚‚ƒƒƒ†……„„ƒ‚‚……………………‡ˆ‰‰‰‰ŠŠ‡‡††ŠŽ‹†‚…‰ŽŽŒ†‚‚‚„„„„ƒ‚ƒ‚‚‚‚‚‚ƒ‚ƒ‚ƒ‚ƒ‚…………………………†…†…††††††††……‡†‡ˆ†ƒ‚‚‚‚‚‚ƒ„„ƒ€‚‚‚‚‚‚‚‚ƒ€€ƒ„…„‚„‡‹Š…€€€€€€€€€€€€€€€€€ywtvy~‚‚„……„ƒƒ„ƒ„„……‡‡‡††††††††‡…„†‡…€{vvvvvvvvz|}}{z{}|||}}~~~|yvwxzzywwwwwwwwxy{||{zxwwwwwwwwzywvvwxyz|‚ƒ‚€~€|ywyzyzyzyytuvxyz{|{{{{{{{{zzzzzzzz~||}}|z€€€~|zy{|{|||||{~€€€‚€€€€€€€€~}|{{|}||}€‚ƒ„‚‚‚‚‚‚‚‚€€„†‡„‚‚€}vqryuprumhow~~wpjdeou{€„…„‚‚ƒ„„…………††…„ƒ‚‚€ƒ‚}}~€€€~}}}~}}}}}}~~||{~ƒƒ‚‚‚ƒ„…†‡‡‡„ƒ‚‚ƒƒƒƒƒƒƒƒ„‚ƒ„‚€…‡ƒ}wuvz~€€€€€€€€€€€€€€€€„ˆ‹Š…€€€€€€‚~~~~~~~~€€~~€„‡‹Œ‹Œ‹Œ‹‹†††‡‡‡‡ˆ‰‰ˆ‡†……„ŠŠŠŠŠŠŠŠŒŒŒŒŒŒŒŒŠ‡……‡Š‹‹‹‹‹‹‹‹ˆˆˆˆ‡‡††„ƒƒ‚ƒƒ„„ƒƒƒƒ„…‡ˆ††††††††ˆˆ‡†…ƒƒ‚„„„„„„„„€€€€€€€€‚‚€€ƒ„…‚‚‚‚ƒƒƒƒ‚‚‚‚‚‚‚‚‚„††‡††……„ƒ‚€„„ƒ„ƒƒƒƒ……………………ˆ‡†‡‰‹Š‰‡‡†‡‹ˆƒ„†Š’‘ŽŒ†‚‚‚„„„ƒƒ‚‚‚‚‚‚‚‚‚ƒ‚ƒ‚ƒ‚ƒ……………………………†…††††††††††…‡†‡ˆ†ƒ‚‚‚‚‚ƒ„…„ƒ‚‚‚‚‚‚‚ƒ€ƒ…„ƒƒ‡Œ‹…€€€€€€€€€€€€€€€€€xutty~‚ƒƒ„††…ƒ„„‚‚ƒƒ„„……††††††††ˆ‡ˆˆ‰†‚}xxxxxxxx|~~}|}~~~€€€€}zz}~~|}}}}}}}}yyz{zzyxwwwwwwwwwvuuuvwx{}€‚ƒ‚€~|xvssssssssnnpprsttrrrrrrrrwwwvwwwwzxwy|~}{~~~~|zxwzzzzzyzyz~€€€€€€€€€€~}|{zz{|z{|~€ƒ„‚‚‚‚‚‚‚‚‚€€„……„ƒ~vqtyxrstkcgn{|xrmeelu{€€ƒ…„‚‚ƒ„„………†††…„‚‚ƒƒ||~~€~}{{|}}}}~€|{|}ƒƒ‚‚‚ƒ„…†‡ˆ†…‚‚‚„„„ƒ„ƒ„„„ƒƒ„‚€ƒ‡‰ƒ|vtvz}€€€€€€€€€€€€€€€€„‡Šˆ„€€€€€€€~~~~~~~~~~~~|{}‚…ˆˆˆˆˆˆˆˆ„………‡‡‡‡††††††††…„…„…„…„†††††††††ˆŒŽŽŒˆ†ˆˆˆ‡ˆ‡ˆˆŒ‹‹ŠŠ‰‰ˆ‚ƒ„„„„ƒƒ„„„…†‡‰ŠŒŒŒŒŒŒŒŒ‘‘ŽŽŽŽŽŽŠŠŠŠŠŠŠŠˆˆ†…ƒ€€‚‚‚‚ƒ„…†‚‚ƒƒ„„ƒ‚‚‚‚‚‚‚‚ƒ„†‡ˆˆˆ‡‹Š‰†„€€‚‚„„…†……………………ˆ…„†ŠŒ‹ˆŠ‰ˆ‡Œ‹…ƒƒ‡ŒŒ†‚‚‚„„„„ƒ‚‚‚‚‚‚ƒ‚ƒ‚ƒ‚ƒ‚…………†…†……………††††‡‡‡†††††‡†‡ˆ†ƒ‚‚‚‚ƒƒ„……ƒ‚ƒ‚„„ƒ‚‚‡Œ‹…€€€€€€€€€€€€€€€€€vtrty~‚„‚„…†„ƒƒ„ƒƒƒƒƒƒƒƒ…†‡‡…ƒ€xxxxxxxx}€}}~€€€€|yz{~}|~~~~~~~~{{zzzyyy{{{{{{{{{zyyyz|}€€~€€}ywwwvwvwwwxxvusrqqoooooooorrrrrrrrsqpty||zzzzzzxwvxxwwvvvvy~€€€‚~~}|zzz{{zz{}~€‚‚‚‚‚‚‚‚‚ƒ€„…†…€~uopqqostkflsx|}}yohku{€„…„‚‚ƒƒ„…………†††…ƒ‚‚€ƒ‚|}}~~~}}~~|{{||{zz|}~~||{~ƒƒ‚‚‚ƒ„…†††…‚‚„„„„ƒ„„„…ƒƒƒ‚„‰‹„{utwz|€€€€€€€€€€€€€€€€†ŠŒŠ…€€€€€€‚€~‚‚‚‚‚‚‚‚~€€€‚†‰ˆˆˆˆˆˆˆˆƒ„„…†‡‡ˆƒƒƒ„„„……„„„„„„„„ƒƒƒƒƒƒƒƒƒ…ˆŠŠˆ…ƒ……………………‰‰ˆ‡††…„€‚ƒ„„„„†……„„…††……………………ƒƒƒƒƒƒƒƒŽŽŽŽ‘‘‘‘‘‘‘‘‘ŒŠ‡…„†……„…†‡ˆƒƒ„……††‡„ƒ‚‚‚‚‚‚‚‚‚‚„…†ˆ‰Š‰‰Ž‹ˆ…ƒ~€‚ƒ…†‡……………………†…„†‰ŒŠ‰‹‹ˆ‡‹Š„ƒ‚ƒ†‰ŒŒ†‚‚‚„„„ƒƒ‚‚‚‚‚‚‚ƒ‚ƒ‚ƒ‚ƒ………†…†††……………†††‡‡††††††‡†‡ˆ†ƒ‚‚‚‚‚ƒ„…„ƒ‚€€€‚‚ƒ„…‚~‚‡Œ…€€€€€€€€€€€€€€€€€usrsy~‚„ƒ„„ƒ‚‚ƒ‚€~~~~ƒ~|~€yyyyyyyy|}~|{}~~~€€€~{xxz||z{{{{{{{{}|{zzyzz||||||||~~}}}‚„ƒ‚€€€‚‚}{||||||||~}zxutsyyyyyyyysssssssssposz~}zyz{{{zyyyyxxwwwvy~€€‚‚€€‚€€~~}|{zz{|z{||~€€‚‚‚‚‚‚‚‚‚‚ƒ…†€€wrqnlowwnlu{y}vmmu{€„…„ƒƒƒ„……††……†…„ƒ€‚€ƒƒ}~~~~}}|}€}{}~}{zyz{{{|{|}ƒƒ‚‚‚ƒ„…‡‡†ƒ‚‚ƒ„„ƒ‚ƒƒ„„…ƒ‚ƒ‚…ŠŒ„zttwz|€€€€€€€€€€€€€€€€ˆ‹ŽŒ‡‚‚€€€€~€‚ƒ……„„‡‡‡‡‡‡‡‡‚„††††ˆŠ‰‰‰‰‰‰‰‰„„…†‡ˆ‰‰„„„„ƒƒƒƒ††††††††……………………‡†„‚‚„†‡††††††††††…„ƒ€€‚ƒ„………„„ƒ„„…†……………………‚‚ƒ„…††‰‰‰‰‰‰‰‰‡‡‡‡‡‡‡‡‹‰‡„ƒ‚†…„ƒƒƒ„„ƒ„„…†‡ˆˆ„„ƒ‚‚‚‚ƒ‚€‚‚…†ˆ‰ŠŠŠŠŒ‹Šˆ†„ƒ‚€ƒ„……………………………„…†‰ŠŠŠŒŠ‡…ˆŒ‡………„…‡ŠŒ†‚‚‚„„„„ƒ‚‚‚‚ƒ‚ƒ‚ƒ‚ƒ‚…………††††„„……††‡‡‡‡†………††‡†‡ˆ†ƒ‚‚‚‚‚ƒ„„„ƒ‚‚‚‚ƒ…„‚€}‡Œ…€€€€€€€€€€€€€€€€tsqsx~ƒ„€‚„„‚‚‚‚‚‚€~}||}}}}}}}}y}€}xw{€{{{{{{{{z|}|zz{}}}}~~‚||€€~~~~~~~~~}|{zzzzzzzzzzzz~~€‚ƒƒƒƒ‚‚€‚ƒƒƒ‚€xxxxxxxxyxwvtsrrwwwwwwwwwwwwwwwwwsrv}||}~~~|||{{zzyx~€‚‚€€€€€‚‚~}|{{{{|{{||}~‚‚‚‚‚‚‚‚„„‚‚ƒ…~€‚|wvqpv~zomvz{}}€xppu{€„…„ƒƒ„„…††‡…………„ƒ€‚€ƒ‚~~}}||~€}}~€|{|||||{{~ƒƒ‚‚‚ƒ„…‰ˆ†„‚‚ƒ…„ƒ‚‚‚‚ƒ„…ƒ‚ƒ‚…‹…zttwz|€€€€€€€€€€€€€€€€ˆ‹ŽŒ†‚€€€€}‚…ˆ‰‰‰‰‰‰‰‰‰‰‰ˆŠ‹‹ˆ‡‡‡‰‰‰‰‰‰‰‰……†‡ˆŠŠ‹‡††„ƒ‚ƒƒƒƒƒƒƒƒ……………………‡‡†……†‡‡„„ƒ„ƒ„„„†…„ƒ‚€…„ƒƒƒ„…†‚‚‚ƒ…‡‰Š……………………}~ƒ„††ˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆ‹‹Šˆ‡…„ƒƒ‚~‚‚ƒ„…††‡…„ƒ‚€€€‚‚ƒƒ‚‚€€‚‚†‡ˆŠ‹‹‹Šˆˆ‡††…„„‚‚ƒƒƒ……………………„„…†ˆ‰Š‹‹‰…ƒ†Š‰…‡‰Š‰ˆˆ‹ŽŒ†‚‚‚„„„ƒƒ‚‚‚‚‚ƒ‚ƒ‚ƒ‚ƒ………†††††„„……††‡‡‡‡†………††‡†‡ˆ†ƒ‚‚‚‚‚ƒ„„„ƒ€‚‚‚‚‚‚‚‚‚‚‚„…„‚}‡Ž…€€€€€€€€€€€€€€€€wursx~ƒ‡†…„ƒƒƒƒ€€€€~~}|{{{|}|{zyyz{|zzzzzyyy}}xuvwwzzzz|~~zx|€€~~~~}}~~~}|z|~~{wx{~~|{{|wz~ƒ‚€€‚ƒƒ‚€ƒƒ„„ƒ~yxwvuvxzy||wuvxwvwxyyxwvtuuuvvvwvutvz|}}}~€€}|}~}{yxy{€‚€€‚ƒ‚€€€€€€}}|{{zzy{{|}~€€€€‚ƒƒƒƒƒ‚‚ƒƒ‚‚€~€}vpqz‚€€€{smtyƒ„ƒƒƒ„„„„…………†……††ƒ€€€€€€~~}|||||}}~~~~~}}||||{{}ƒƒ‚‚…‡ˆˆ‡†„ƒ„…ƒƒƒƒƒƒƒƒ††…„…ˆ‹…}vtv{~€€€€€€€€€€€€€€€€„ˆ‹Š†‚ƒ€€~~‚ƒ„„………‡‡‡‡‡‡‡‡ˆˆˆˆˆˆˆˆ‡‡ˆˆˆ‰‰‰ˆ‡ˆ‹ŒŠŠŒ‹ŒŠ‡……„ƒ†††……„„„„„„„„„…………………………„„ƒ‚ƒ„†‡‡…„‚€€‚ƒƒ„„ƒƒ†„‚‚„†„‡‡ƒƒ…„‚‚„ƒ„‰‡‡‡‡‡‡‡‡‡‡ˆ‡ˆ‡ˆ‡ˆ‰Š‰†„ƒ„‚~{|}}~€„‚€ƒ„„„ƒƒ‚‚‚ƒ‚‚‚‚‚‚‚ƒ†††‡‡ˆˆ‰‹‰‡††…ƒ‚‚‚€€…††††…„ƒƒƒ„„…††‡~€„‰Œ‹‡„…„ƒ„†‰Œˆƒ‚ƒƒ„„ƒƒ‚€‚‚‚‚‚ƒƒƒƒ„……†‡‡‡‡†………†††††„„…††…„„…†ˆ‡…ƒƒƒ‚‚‚‚€‚‚ƒƒƒƒ‚‚€€€€€€€€‚‚‚‚‡ˆ‚}ˆŒŠ…‚€€€€€€€€€€€€€€€€wsopv†Šˆ‡†……………ƒƒƒ„ƒƒ‚‚€~}|}}~||{zz{|}||||{{{{{~~{z|}}z{}~€€€|z{~~}~€~}||}~}|z{}~|yz{|}}|zyx{~‚‚€€‚‚‚‚‚ƒƒ„„„ƒƒ}|zywxz{y||wuvxwwwxxxwwvvvvvwwwwvutvz}~~}~€€~}{}~~{yyy{€‚€€€‚‚‚€€€€€€€}}||{zzz{{|}~€€€€‚‚ƒƒƒƒ‚‚‚ƒ„„ƒ‚€~~~|wsu|‚ƒ‚€}xqmty‚ƒƒƒƒ„„„„…………†……†…‚€€€€~~||{z||}}~~~~~||}}~|{{~€ƒƒ‚‚„‡†‡†…ƒ‚ƒ„ƒƒƒƒƒƒƒƒ…†„„„€‡‹…}vtv{~€€€€€€€€€€€€€€€€†Š‹†~~~~}}‚ƒ„„„„†††††‡‡‡ˆˆˆˆˆˆˆˆ‡‡‡ˆˆ‰‰‰†…†‰ŠˆˆŠ‹‹‰…ƒƒ‚€†††……„„„„„ƒ„ƒ„……………………………„ƒƒƒ…†‡†…„‚‚‚ƒ„„„„ƒ‚‚ƒƒƒƒ‚‚ƒ††‚€‚„ƒ‚‚„ƒ„‰‡‡‡‡‡‡‡‡ˆˆˆˆˆˆˆˆˆ‰Š‰†„ƒ„~{|}}~€„‚€ƒ„„„ƒƒ‚€‚‚ƒ‚‚‚‚‚‚‚ƒ…†ˆ‰ŠŠ‰ˆ‹‰‡††…ƒ‚‚‚€€„„…††…„„ƒƒƒ„„„„…†††‰‹Š„€€„‡‰Œˆƒ‚ƒƒ„„ƒƒ‚‚‚‚‚‚‚‚‚‚ƒƒƒƒ„††‡‡‡††…………†††††…††‡‡‡†……‡ˆ‡…ƒƒƒ‚‚‚€€‚‚ƒƒƒƒ‚‚‚‚‚‚‡ˆ‚}‚‡ŒŠ…‚€€€€€€€€€€€€€€€€yvrrx€‰ˆ‡‡††††††††……„„„ƒ‚€}}||||}}{{{zzyyy{~€~€}~€€€€|{{~~|}|}}}~}}|~|zz}~}|}{z{}}zvz{‚‚€‚‚ƒ„…„„ƒ„„…†€~|yxxyzy||wuvxwxxwvvvvvwwwwwvvvvutvz}~}~€€~}{}~}{yyz{€‚€€‚‚€€€€€€€€}}||{{zz{{|}~€€€€‚‚ƒƒ‚‚‚ƒ„ƒ‚€~}}{|{wsty}xxxvspnmuy~‚ƒƒƒƒ„„„„……………„…†…‚€€€€€~~~}}||{}}}}~~~~~~}}}|{{}ƒƒ‚‚‚„†………ƒ‚‚‚ƒƒƒƒƒƒƒƒ„…ƒ‚ƒ†‹…}vtv{~€€€€€€€€€€€€€€€€„ˆ‹‹†}|~~~~~~~~€‚ƒ„„„ƒ„„„……†††‡‡‡‡‡‡‡‡‡‡‡‡ˆˆ‰‰…„…ˆ‰‡‡‰‰‰ˆ†………ƒ††…………„„„ƒƒƒ„„„……………………………„„„…†‡†…ƒ‚‚‚ƒ„„„„ƒ€‚…‡‡…‚€„‡‡ƒƒ…„‚‚„ƒ„‰ˆˆˆˆˆˆˆˆˆˆ‰ˆ‰ˆ‰ˆˆ‰Š‰‡„„„}{|}}~€„‚ƒ„„„ƒ‚‚€‚ƒ‚€‚‚‚‚‚‚ƒ„†‰‹Œ‹‰ˆ‹‰ˆ††„ƒ‚‚‚€€‚‚„…††††………„„„„„ˆ…„†‹Œ‰…ˆˆ‡‡‰‹ŽŒˆƒ€‚ƒƒ„„ƒ‚‚€ƒƒ‚‚‚‚ƒƒ‚‚‚ƒƒƒƒ„†‡‡‡††……………†††††††‡‡‡‡‡†…‡ˆ‡…ƒ‚ƒ‚‚‚€‚‚ƒƒƒƒ‚‚‚‚‚‚‚‚‚‚‚‚‚‚†ˆ‚}ˆŒŠ…‚€€€€€€€€€€€€€€€€~|yy|†Š†††††††‡†…„„ƒƒƒƒ……„ƒ‚€~~~~~~{{zzyxxx|€‚€€}~~~~€{y|~||{|~€}|~|z{|~~~~|{{|{yx{}‚‚€€ƒ…†ˆ†„ƒ‚‚ƒ~zxwwvvy||wuvxwyxvvuvvwwwwvvuuuvutwz~~€€~}z|~~{zyz{€‚€€€€€€€~}}|{{zzz{{}}€€€€€‚‚‚‚€‚‚…„„ƒ‚€€xnijmmnnmihikuy~‚‚ƒ„„„„„……………„„†…‚€€€€€€}~}~}~~~||}}}}}~}~~~~}|||{{~€ƒƒ‚‚€‚„†………„‚ƒƒ‚ƒ‚ƒƒƒƒ„‚‚‚~…‹…}vtv{~€€€€€€€€€€€€€€€€ƒ‡ˆ†~|€‚„„„ƒƒ‚‚ƒƒ„„…………††††‡‡†‡‡‡‡ˆˆˆ…„…‰‰ˆ‡‰…†…ƒƒ„…ƒ……………………„„ƒƒƒ„„„……„…„…„……………………†…„ƒ‚‚‚‚ƒƒƒƒƒ‚„‡‰‰‡„‚‡ŠŠ†„†ˆ‡‚‚„ƒ„‰ˆ‰ˆ‰ˆ‰ˆˆ‰‰‰‰‰‰‰‰ˆ‰Š‰†„ƒ„}{|}}~€„‚€ƒ„„„ƒƒ€‚‚‚‚‚‚‚‚ƒ„…‡‰ŠŠ‰‰‹Šˆ‡…„‚‚‚‚€€€‚…†‡‡‡‡‡††……„„†ƒ…‹ŒŒŒŽ‘’Œˆƒ‚ƒƒ„„ƒƒ‚ƒ‚‚‚‚‚‚ƒ‚‚‚ƒƒƒƒ„††††††……………††††††††‡†††††‡ˆˆ„ƒ‚‚‚‚ƒ‚‚‚‚ƒƒƒƒ‚‚‚‚‚‚‚‚‚‚‚‚‚‚‡ˆ‚}‚‡ŒŠ…‚€€€€€€€€€€€€€€€€€}|}€„‡††‡‡‡‡‡‡…„ƒ††……„ƒ‚‚€€~~~}||{{z|€ƒ€€~~~€‚ƒƒ€{y|~}{{}}~~~~~}|{}~}~~}{z{|}~€€‚‚‚‚‚€ƒ…††„ƒ€€€‚~zwxwvuy||wuvxwyxvuuuwwxwwvvuuuvtuw{~€€~‚€~|z|~}|zz{{€‚€€€€€€€~~}}|{{zzz{|~~€€€€€€‚€€€‚‚€€€€‚xlddhmnnjgegivy~‚„…„„„„……………„„†…‚€€€€€€~~~}}}}}||||||||}}|{|{|||{{}ƒƒ‚‚‚‚„††††„ƒ‚ƒƒƒƒƒƒƒƒƒƒ‚ƒ‚‚~~„‹…}vtv{~€€€€€€€€€€€€€€€€‚†‡†‚}ƒ………ƒ‚‚‚ƒƒƒ„„„„……†††††‡‡‡‡ˆˆ…ƒ…ˆ‰†‡ˆ†‡†ƒ‚ƒƒ‚………………………„„ƒ„ƒ„„„„…„…„„„…………………„„„ƒ‚‚‚ƒ€€‚‚‚‚„…‡‡‡‡…„‡ŠŠ‡…†ˆˆ‚‚„ƒ„‰‰ˆ‰ˆ‰ˆ‰‰‰‰‰‰‰‰‰‰ˆ‰Š‰‡„„„}{{}}„‚ƒ„„„ƒ‚‚€‚‚€‚‚‚‚‚ƒ……„…†ˆ‰‹‹‹Šˆ†ƒ‚‚‚‚‚€€€‚„††‡‡†††…„ƒƒƒ†ƒ‚„‹ŽŒˆƒ€‚ƒƒ„„ƒ‚‚€‚‚‚‚‚‚‚ƒƒƒƒ„…………††††………†††††‡†††††‡††ˆ‰‡…‚‚‚‚‚ƒ‚‚‚‚ƒƒƒƒ‚‚‚‚‚‚‚‚‚‚‚‚‚‚†ˆ‚}ˆŒŠ…€€€€€€€€€€€€€€€€~}||€…‰‡ˆˆ‰ˆˆˆˆ†…‚€€€„…………„ƒƒ‚‚ƒƒ‚€~}|{zz|€‚ƒ„ƒ€ƒ„„‚€~||}|zz|}}}~~~~~}}}~~|~}{{}€€€‚‚‚‚‚‚‚ƒ„…€€€€€‚„zxyzxvy||wuvxwxwvvuvwxyxxxwwvvuutw{~‚}|y{}}{zz{{€‚€€€€€€€€~~}}|{{{zz{|}~€€€€€€€€‚€€€‚€€€xmghlmmmlkklnwz~€‚„†„„„„……………„…†…‚€€€€€~}{{zz||||||||{|{|||{{|{{~€ƒƒ‚‚‚‚€ƒ…‡‡†…ƒƒƒ„ƒƒƒ„ƒƒƒƒƒ„‚‚~~…‹…}vtv{~€€€€€€€€€€€€€€€€…†‡‡…‚}~~~~~~~~„†‡†„ƒ‚‚‚‚‚‚‚‚‚ƒƒ„„……††††‡‡‡‡ˆƒ‚ƒ†‡……‡†‡†„„……ƒ„„…………††……„„„„„„„„„„„„„„„„……„„ƒ‚„ƒ‚‚ƒƒ€€‚‚‚‚…„„„„„„……ˆˆ„‚„†…‚‚„ƒ„‰ˆ‰ˆ‰ˆ‰ˆ‰‰‰‰‰‰‰‰‰ˆ‰Š‰†„ƒ„€}z|}~„‚€ƒ„„„ƒƒ€‚‚‚€€€‚‚‚‚‚ƒ…„ƒ‚„†ŠŒŒŒ‹‰…ƒ‚‚‚‚‚€€€‚„…†††„„ƒƒ‚ƒ‚‚‚‚ƒ†ŠŽ‘ŽŽŒˆƒ‚ƒƒ„„ƒƒ‚‚‚‚‚‚ƒƒƒƒ„……………††‡………†††††ˆˆ‡‡‡‡‡ˆ‡ˆ‰ˆ„‚‚ƒƒƒ‚‚‚‚ƒƒƒƒ‚‚‚‚‚‚‡ˆ‚}‚‡ŒŠ…‚€€€€€€€€€€€€€€€€€€‚†‰‡ˆˆˆ‰ˆ‡‡†„‚€€‚ƒ„………„ƒƒ„„„ƒ‚€~~|{zzy~ƒƒ‚ƒ„…„‚~~||}|yy{{{|}~~}}~~~~}~~}}}ƒ€€€‚ƒ‚‚ƒƒ„ƒƒƒ€€€€€ƒ}xwyzyvy||wuvxwwwvvwwxyxxxxwwwwutuw|€‚‚€‚}|y{}}|z{|{€‚€€€€~~~~}||{{zz{|}~€€€€€€€€€€€†…„‚€}}}ysomlmpppruvwvwz}€‚„†„„„„…………†……†…‚€€€€~}}||{{z}}}}}}}}z{|}~|{z|{{}ƒƒ‚‚‚‚ƒ…‡‡‡…ƒ‚ƒ„„„„„„„„„ƒ„‚‚ƒ…‹…}vtv{~€€€€€€€€€€€€€€€€……„ƒ‚€~}}}~~~~€‚…‡ˆ‡…ƒƒƒƒ‚‚€‚‚ƒ„„……††††‡‡‡‡ƒ‚ƒ†‡……‡ƒ„„‚‚„„ƒ„„„……†††††…„„„……„„„„„„„„‚ƒ„„„ƒ€ƒƒ‚‚ƒ„‚ƒ„„„ƒƒ„„„„„„„„…ˆˆ„‚„……‚‚„ƒ„‰ˆˆˆˆˆˆˆˆ‰‰‰‰‰‰‰‰ˆ‰Š‰†„ƒ„€|{{}~„‚€ƒ„„„ƒ‚‚‚€€€‚‚‚‚‚ƒ„„„„…ˆŠ‹ŒŒŒ‰…ƒ‚‚‚‚‚€€€€‚ƒ…………„„…………††‚„‡ˆ‰‰ŒŽ‡ˆˆˆˆˆ‡‡Œˆƒ€‚ƒƒ„„ƒ‚‚€‚‚‚‚‚‚‚ƒƒƒƒ„†……„……††………†††††ˆ‡‡††‡‡ˆ‡ˆ‰‡„‚ƒƒƒƒ‚‚‚ƒƒƒƒ‚‚‚‚‚‚‡ˆ‚}ˆŒŠ…‚€€€€€€€€€€€€€€€€ƒ‡ˆ‡††‡†‡‡ˆ‡‡†……ƒ€~}}~€ƒ„……„„„………„ƒ€‚€~}||€‚}{}€€‚‚‚‚‚|y{}{yx|{zzz|}~€€~}|€}{|‚ƒƒ€€€‚ƒ‚ƒ„……„‚‚‚ƒ‚€~|zutwywty||wuvxwvvvwwxyywwwwvvvvutux|€‚‚€‚}{y{}}{{{|{€‚~€‚€€~~~}||{{zz{|}~€€€€€€€€|yvsqpqmikqwyy}{{}€|xz}€„†„„„„…………†……††ƒ€€€€|||}}~~~~~~~~~~~|||}}}|||{{}ƒƒ‚ƒƒ‚€ƒ…†††„ƒ‚‚ƒ„„„„„„„„„„ƒ‚ƒ†‹…}vtv{~€€€€€€€€€€€€€€€€€~~~~~~~€€€‚…ˆ‰‡…„…„ƒ‚€‚‚ƒ„………††††‡‡‡…„…ˆ‰‡‡ˆ‡‡†„ƒ„ƒ‚„„„……†††††………………„„„„„„„„‚‚ƒ„ƒ‚€ƒƒ‚‚ƒ„ƒƒ„…………„„……††……„†‰‰…ƒ…‡‡‚‚„ƒ„‰ˆˆˆˆˆˆˆˆ‰‰ˆ‰ˆ‰ˆ‰ˆ‰Š‰†„ƒ„€|z|}~‚„‚€ƒ„„„ƒƒ‚€‚€€€‚‚‚‚‚ƒƒ„…‡ˆ‰Š‹ŒŒŒ‰…‚‚ƒ‚‚‚€€€‚„„„„„‡ˆˆ‰ŠŠ‹‹‰ŒŽŒ†ƒƒ„…††††…„„Œˆƒ‚ƒƒ„„ƒƒ‚ƒƒ‚‚‚‚ƒƒ‚‚‚ƒƒƒƒ„‡†…„„„……………†††††‡†…………†‡‡‰‰ˆ„€‚ƒƒƒƒƒ‚‚ƒƒƒƒ‚‚‚‚‚‚‚‚‚‚‚‚‚‚‡ˆ‚}‚‡ŒŠ…‚€€€€€€€€€€€€€€€€€€ƒˆŠˆ‡ˆˆˆˆˆ‡‡‡‡‡„~||}~€ƒ„…………………„„ƒ„‚‚ƒ‚€}‚„}|zz~~~€‚€~zy}}yxzz}}{{}€‚‚~||~€‚ƒ‚€€‚ƒ†‡‡„€~€‚€€{ttwzywz|{vsuxxyxwvvwyzvvwwxwvvvutw{~€€‚‚{x}}}|yz}€€€€€€€€€€€€€€}}}€~|||yz{|}~€€€€€€€€€€€€‚|yvqichfflu|~~€€~~}}z{~€‚ƒ„„‚ƒƒƒ„„„„†„ƒ„„‚‚„ƒ‚€‚‚~}}||{{zz{||}~~~}}~~~~}}~|{|€‚ƒƒ‚‚‚‚ƒ„„‡ˆ‡ƒ‚ƒƒ‚ƒ„„ƒ‚……}‡Š…~xwy}€€€€€€€€€€€€€€€€€‚€|{}~}~~~~~~~~~…‡‡‡††††…„ƒƒ‚‚€€€‚‚‚ƒƒ…†ˆ‰„„†Š‹‰ˆ‰Š‹Š†„ƒ‚…„ƒ„…†……†………†††………………………„„ƒƒ‚‚ƒƒƒƒƒƒƒƒ€‚„†‡‡…„…ƒ‚„††„…‡ˆ‡…„…‡ƒ‚‚„‚€ƒ‡‰ˆˆˆˆˆˆ‡ˆˆˆˆ‰‰‰‰ˆŠ‹Š‡„ƒ„€~||||~€ƒ‚€„…†…„ƒ‚€€€€ƒ…†…ƒ‚„‡Š‹‰†ƒ‚€€‚ƒ‚‚‚ƒƒƒƒ„……†‰ŽŒˆ„ƒƒƒƒ„„……††‰‡„‚‚ƒ„„„ƒƒ‚€‚ƒƒƒƒ‚‚„…„‚‚„††……††‡‡†††††‡‡‡‡††………………‡ˆ‡…‚‚ƒ‚‚‚‚‚„……ƒ‚‚ƒƒ‚‚‚ƒ„‚‚‚‚‡ˆ‚‡ŒŽŒ†‚€€€€€€€€€€€€€€€€€€ƒˆŠˆ‡ˆˆˆˆˆˆˆ‡‡‡…~||}~}~€‚ƒƒ„„…†……„„„ƒ‚‚ƒ‚}€‚~}}€€€‚‚€~zy|}zy|~}|||||}}€€~}|}}€‚ƒ€€‚ƒ„†…„‚€€€€€€€{utwyxvz|zvsvxxwvuuuvwxwwvvvvvwvutw{~€€‚‚‚€{x}€}}{y{}€€€€€€€€€€€€€€}}}~}{{|yzz|}~~~~€€€€€€€€€€~vkchfflu|~~€€~~}}z{~€‚ƒ„„ƒƒƒ„„„„……„„†…ƒ‚ƒ‚€‚‚}~}}||{{}}}}}|||}}~~~~}}~|{|€‚ƒƒ‚‚‚‚‚ƒƒ„‡ˆ†ƒ‚ƒƒ‚ƒ„„ƒ‚ƒ„…}€†Š…~xvw{~€€€€€€€€€€€€€€€€‚‚€|{}~}~~~~~~~~~…‡‡‡†‡††……„ƒƒƒ‚‚€€‚‚ƒ…†‡ƒ„†Š‹‰ˆ‰‡ˆˆ…ƒ„„ƒ…„ƒ„…†………†††………†……………………„„ƒƒ‚‚ƒƒƒƒƒƒƒƒ„„„………„„„„ƒƒ„…„„‹‹‰‡„„†‰ƒ‚‚„ƒƒ‡‰‰ˆ‰ˆˆˆˆˆˆˆ‰‰‰‰‰ˆŠ‹Š‡„ƒ„~||||~ƒ‚€ƒ††…ƒƒ‚€‚€€„†‡…„ƒ…‡‹ŒŒŒ‹ˆ…‚€„„ƒƒ‚‚‚‚‚‚‚ƒƒƒ…„ƒ‚ƒ‡‘ŽŒˆ„ƒƒƒƒ„„……††‰‡„‚‚ƒ„„„ƒƒ‚€€‚ƒƒƒƒ‚‚ƒ„„‚‚‚„††……††‡‡†††††‡‡‡‡††………………‡ˆˆ…ƒ‚ƒ‚‚‚‚‚„……ƒ‚‚‚‚„‚‚‚‚‡ˆ‚…ŠŒŠ„€€€€€€€€€€€€€€€€ƒˆŠˆ‡ˆ‰‰‰ˆˆˆˆˆ‡…‚~}|~~|}}~€€‚ƒ„…†††……„ƒƒƒ‚€~€‚€€€‚„„‚zy{}{|~|z|}|{||}~~~}|}}~€‚‚‚ƒ„……‚€€‚‚€€‚‚‚€~}zvuwyxvz|{usuxxwwwwwwxxwwvuuvwwvutw{~€€~‚ƒ‚‚€zy~€~||{y{}€€€€€€€€€€€€€€}}|}~}|{z{yz{{|}~~~}}}}~€€€€€€€€€€‚„ƒ{ofigglv|~}€€~~}}z{~€‚ƒ„„ƒƒƒƒ„„……„ƒ…‡†ƒƒ‚€‚‚}}~~~}|{~~}}|||{}}~~~~}}~|{|€‚ƒƒ‚‚‚‚‚„„†‡†‚€‚‚‚ƒ…†„‚‚‚„„}„ˆ„~xvvy{€€€€€€€€€€€€€€€€‚ƒ}{}~}~~~~~~~~~…‡ˆ‡††‡‡†……„„„„ƒ‚€€€‚ƒ„ƒƒ…‰Š‰ˆˆ†ˆ‡…„„…„…„ƒ„…†……„…‡†…„…†……………………ƒƒƒ‚ƒ‚‚‚‚‚‚‚‚‚‚‚ˆ†„‚‚‚„„„„„ƒƒ„†ˆ‘Œˆ„ƒ†‰ƒ‚„ƒƒˆ‰‰‰‰‰ˆˆˆˆˆ‰ˆ‰‰‰‰ˆŠ‹Š‡„ƒ„~||||~ƒ€„…†…„ƒ‚€‚‚‚‚…‡ˆ‡††‡‰‹Š‹ŒŒ‹ˆ…‚†‡ˆ‡‡„‚‚‚‚ƒƒƒ‚ƒƒƒ„†‹ŽŒŽŽŒˆ…ƒƒƒƒ„„……††‰‡„‚‚ƒ„„„„‚‚€‚ƒƒƒƒ‚‚ƒ„„‚‚ƒ„††………††‡†…††††‡‡‡††………††…‡‰‡…‚‚ƒ‚‚‚‚‚ƒ…„ƒ€‚€‚ƒ‚‚‚‡Š„ƒ†ŠŒ‰„€€€€€€€€€€€€€€€€~‚ˆ‰ˆ‡ˆ‰‰‰‰ˆˆˆˆ‡…}}~}}}~€€ƒ……††††††……ƒ‚€‚„‚€€}ƒ……„ƒ€|y{{{|~|zz{}||}{{{||}||}~~€‚€‚ƒ„……ƒ~€‚ƒ€‚ƒ€}{{xuuwyyxz|zvsvxxvwwyxxxwwvvvuvvwvutw{~€€}~‚ƒ‚‚yz~€}{{zy{~€€€€‚€€€€€€}}{{|{{zzzyzz{{|}}|||||}~€€€€€€€€‚‚|smjhgmu}~}€€~~}}z{~€‚ƒ„„ƒ„ƒ„„…………„„‡…ƒƒ‚€‚‚|}~~~||~}}}|}}}}~~~~}}}~|{|€‚ƒƒ‚‚‚‚ƒƒ„†‡…‚€‚‚ƒ‚‚ƒ……„ƒƒƒ„…~}ƒ€{xvwy{€€€€€€€€€€€€€€€€ƒ„}|}~}~~~~~~~~~…‡‡‡†‡‡‡‡‡††……†…„‚~€‚„ˆ‰‡†‡ˆ‰ˆ…ƒ„„„…„ƒ„…†……„…††„……†……………………ƒƒ‚ƒ‚ƒ‚‚‚‚‚‚‚‚‚‚ˆ†„‚‚ƒ„„……„‚„ˆŒ““Œ‡…†‡‚‚„ƒ„ˆ‰Š‰‰‰‰ˆˆˆ‰ˆ‰‰‰‰‰ˆŠ‹Š‡„ƒ„~|}}|~ƒ‚€ƒ††…ƒƒ€‚ƒƒ‚‚ƒ†‰‰‰ˆˆ‰ŠŒŠ‹‹Œ‹Šˆ‡‰Š‹ŒŠ‡‚€‚‚‚ƒƒƒ€ƒƒ„†‰‹ŒŽŒˆ…„„ƒƒ„„……††‰‡„‚‚ƒ„„„ƒƒ‚€€‚ƒƒƒƒ‚ƒ„„‚‚ƒ…††…………††…†…†††††‡††……†††…‡ˆˆ…ƒ‚ƒ‚‚‚‚‚„……ƒ‚‚‚‚ƒ‚‚‚‡‹‡†‡ŠŽ‹†€€€€€€€€€€€€€€€€~~‚‡‰ˆ‡ˆ‰‰‰ˆ‰ˆˆˆˆ…‚}}~€‚ƒ……†††‡‡‡†…„„……ƒ‚€€€€‚„……ƒ‚}{z{{||z|}|{|}|zzzz{{|}~~€€€‚‚ƒ„„„€€€€‚‚‚€‚~{yuttuxz{{z|{utuxxtuvwwwvuuuvvwvvuvutw{~€€}~‚‚y{~|zzzx|~€‚€€€€€€€}}{zzzzzzyzzzz{{||{{{{|}~€€€€€€€€ƒ€€{upkiimv|~}€€~~}}z{~€‚ƒ„„„„„„……††‡…„…„‚ƒ‚€‚‚|}~~~~}~~}}||}}~~~~~}}|~|{|€‚ƒƒ‚‚‚‚‚„„†‡†‚€‚‚ƒƒƒƒ„ƒƒƒ„ƒ„…‚}|~}{ywxy{|€€€€€€€€€€€€€€€€„„‚}|~~}~~~~~~~~~…‡ˆ‡‡†‡‡‡†‡†††‡†…ƒ‚‚‚‚€~€€€ƒ†ˆ†…†‡ˆ‡ƒ‚‚„ƒ…„ƒ„…†……†…„„†……„……………………‚‚ƒ‚ƒ‚ƒƒ‚‚‚‚‚‚‚‚…„„ƒƒƒ„„„…†……‡Œ’””‘Œ‡„„‚‚ƒƒ„‰Š‰‰‰‰ˆ‰ˆ‰‰‰‰‰‰ŠŠˆŠ‹Š‡„ƒ„}}}}ƒ€„…†…„ƒ‚€€‚ƒƒ‚‚„‡‰ŠŠŠŠ‹‹ŒŒ‹‹‹Š‹Š‹‹‹ŒŽŽŒ‡ƒ€‚‚‚ƒƒƒƒ‚€ƒ‰‹ŽŒˆ…„…ƒƒ„„……††‰‡„‚‚ƒ„„„„‚‚€‚ƒƒƒƒ‚‚„ƒƒ‚„…††……………†……†…†††††††††††‡…‡‰‡…‚‚ƒ‚‚‚‚‚ƒ…„ƒ‚‚ƒ‚‚‚ƒ‚ƒ‡ŒŠ‰Š‹‹…€€€€€€€€€€€€€€€€}}‡‰ˆ‡‰‰‰ˆˆˆˆˆˆˆ†‚}~~€€€€€~€‚ƒ„„„„…‡‡†………††‚€‚‚‚‚ƒ„…„€~{{{{{{{~}{{{zzyyyz|}~~€€€‚ƒƒƒ‚‚€‚‚€€€€~|yxsstvxyz{z|zvsvxxuvvwwwvvuuvwwvuuvutw{~€€~~€€€z|{xyyx|‚ƒ€€€€€€€€}}{zyxyzzyzzzzz{z{zzz{|}~€€€€€€€€€€€€|tmljinv}~}€€~~}}z{~€‚ƒ„„„„„……†††ˆ†„…ƒƒƒ‚€‚‚}}}}}~~€€~}||||~~~~~}||~|{|€‚ƒƒ‚‚‚‚ƒƒ„†‡†‚€‚‚ƒƒƒƒƒ‚ƒƒ„ƒƒ…ƒ~{{yxxxy{|}€€€€€€€€€€€€€€€€……‚~|~~|~~~~~~~~~…‡‡‡†‡†‡†‡††††‡†…„„„„„‚‚€‚€€ƒ‡ˆ†…†„†„‚€‚„„…„ƒ„…†……†…ƒ„…†…„……………………‚‚‚ƒ‚ƒƒƒ‚‚‚‚‚‚‚‚‚‚ƒ„„„„ƒ…††‡ˆ‹Ž‘‘”–”ˆ„‚€ƒƒ‚„‰‰‰‰‰ˆ‰ˆˆ‰‰‰‰‰ŠŠŠˆŠ‹Š‡„ƒ„}}}}ƒ‚€ƒ††…ƒƒ€‚‚‚‚„‡ŠŠ‹‹ŒŒŒ‹‹Œ‹ŠŠŠ‹Œ‹Ž‹ˆƒ‚‚‚ƒƒƒ‚‚ƒˆ‹ŠŒŒˆ†……ƒƒ„„……††‰‡„‚‚ƒ„„„ƒƒ‚€€‚ƒƒƒƒ‚€‚ƒ„‚ƒ„†††………………………†…†††††††††‡‡…‡ˆˆ…ƒ‚ƒ‚‚‚‚‚„……ƒ‚ƒƒƒ‚‚‚ƒƒ‚€‡ŽŠŠŠ‹‹ˆƒ€€€€€€€€€€€€€€€€|}†‰‡‡‰ˆˆˆˆˆ‡‡‡ˆ†ƒ~~€€€€~~}~€‚‚‚‚€‚„…„ƒ„†‡†€}€€‚„„ƒ~}|{{{|{z}~~}}|{zzyyyz|~€€€€‚‚ƒ‚€€€‚‚‚€€~}{yxwtuwwwwwwz|{vsuxxvwwwxwxwuuvvvvvuvutw{~€€€€~€€{|zwxyx|‚‚ƒ€€€€€€}}{zxxyzzzzzzzzzzzzzz{|}€€€€€€€€€‚‚|skmjjnw}~}€€~~}}z{~€‚ƒ„„„„……††††‡………„€ƒ‚‚‚}||||}€€~|||}}~~~~~}||~|{|€‚ƒƒ‚‚‚‚ƒ„„‡ˆ‡ƒ‚ƒƒƒ‚‚‚ƒƒƒƒ…ƒƒ…ƒ}zyxxyyz{||€€€€€€€€€€€€€€€€…†ƒ~|~~|~~~~~~~~~…‡ˆ‡††††††††††‡†…………††……„ƒ‚‚ƒƒ‚‚…ˆŠˆ‡‡†‡†‚‚„……„ƒ„…†………„„„………„……………………‚‚ƒƒ„„ƒƒƒƒƒƒƒƒ‚‚ƒ„„„ƒƒ††‡‰‘‘’”•’ˆ†…€ƒƒ‚…Š‰‰‰ˆˆˆˆˆ‰‰‰‰ŠŠŠŠˆŠ‹Š‡„ƒ„‚}}}}‚ƒ‚€„…†…„ƒ‚€€‚‚„‡ŠŠ‹ŒŒ‹Š‹‹‹Š‹‹ŒŒ‹ŒŒŠ‡„‚‚‚ƒƒƒ€‚ƒƒƒ„‡‰ŠŒŒ‰†…†ƒƒ„„……††‰‡„‚‚ƒ„„„„ƒ‚€‚ƒƒƒƒ‚€ƒƒƒƒ…†††……„„………………†…†††††††‡‡ˆ…‡‰‡…‚‚ƒ‚‚‚‚‚ƒ…„ƒ‚ƒ‚‚‚‚ƒ€†ŒŒŒ‹ˆƒ€€€€€€€€€€€€€€€€||€†‰ˆ‡‰ˆˆˆˆ‡‡‡‡ˆ†ƒ€~~€€€~~}}}~€€€€|‚ƒ‚‚ƒ…‰…~z{{z{|}€ƒ…„‚€zzz{||{z}{{~}||zzyyz|~€€€€€‚‚ƒ‚~€‚ƒ‚‚}{yxwwwxyxvuttz|{vsuxxuuuvvvvvvvuutuvvvutw{~€€€~}€€||zwxyx}‚‚ƒ€€€€€€}}|zxxy{{zzzzzyyyyzzz{|~€€€€€€€€€‚|slmkjow}~}€€~~}}z{~€‚ƒ„„„………†††‡†……‡†‚€€ƒ‚€‚‚}|{{{}~~}||}~~~~~}||~|{|€‚ƒƒ‚‚‚‚‚ƒ„„‡ˆ‡ƒ‚ƒƒƒ€ƒ„„ƒ…ƒƒ…ƒ~yxyyzz{{zz€€€€€€€€€€€€€€€€††ƒ~|~~|~~~~~~~~~…‡‡‡††………†††††††………†‡‡‡‡…„„„„„„„†Š‹‰ˆ‰Š‹ˆ…‚ƒ„……„ƒ„…†……„………„ƒ„………………………‚‚ƒƒ„„ƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒ††‡‹“’‘””“‹ˆ‡‡€€ƒƒ‚…Š‰ˆˆˆˆˆˆ‡‰‰‰‰ŠŠŠŠˆŠ‹Š‡„ƒ„‚}~~}‚ƒ‚€ƒ…†…ƒƒ‚€€ƒ‡‰Š‹ŽŒŠ‰ŠŠ‹ŒŒŒ‹‹‹‹‹‹‰†„‚‚‚‚ƒƒƒ„ƒ‚€€ƒˆŒŠ‹Œ‰†††ƒƒ„„……††‰‡„‚‚ƒ„„„ƒƒ‚€€‚ƒƒƒƒ‚ƒƒƒƒ…‡††……„„…………………††††††††‡‡ˆ…‡ˆˆ…ƒ‚ƒ‚‚‚‚‚„……ƒ‚‚€‚€ƒ‚‡ŽŽŠ…€€€€€€€€€€€€€€€€{}€„‡ˆ‰ˆ†ˆ‰‰‡…†‡ˆˆ„~{||z}}~~€€€€€€€‚„„€€‚‚ƒƒƒ‚~~~zy||||}}~~~{x{~~~~€€€‚ƒ„ƒ€‚€‚ƒƒ‚‚€|zxwvvwxxxxvutx{{ustvuxussuwxxwwvsstututtvz~~~€~{zwxxwy~€€€€‚|}zxxz{{zyyyxyzz{yyyz{}~‚‚€€}‚ƒ€xpkokhlt{~}|}€€}|yz}€ƒ…††„„„……†††††…„„ƒ‚‚€ƒ„‚}||~~{~~~~~~~~~}||~ƒƒ‚‚ƒƒƒ‚‚„†…††‚~}‚ƒ„„„„„…†…ƒƒ…‚{xxvyytty}~€€€€€€€€€€€€€€€€‚„ƒ|}~}~~~|„†††‡ˆ………………………†‡‡ˆ‡†…†††……„„„‚ƒ†ˆ‰‰‰ˆ‰ˆ‡…„„ƒƒ„„„……„„„……………………‡‡‡†…„ƒ‚…„ƒƒ‚ƒƒƒ‚ƒ„„………„‚‚‚ƒƒ…†‰Œ‘’“”Ž‘‘Œ‡„„…‚ƒ†Š‰‰ˆˆˆˆˆˆˆ‰ŠŠŠŠŠŠ‹‹‰†„„…€}|~~~€ƒƒ‚ƒ…‡†……ƒ€‚‚€‚‚‚‚‚‚‚‚€€ƒ‡‰ˆ‰Š‹Œ‹‹ŠŠ‹‹‹‹ŒŒŒŒŒŒ‰…‚‚……„‚ƒ‚€‚†ŠŒŒŽŽŒ‰…„„†††…„„ƒƒŠˆ†„‚‚ƒƒƒ‚‚‚‚‚ƒ„ƒƒ„‚ƒ…††……„„……ƒƒ„……†‡‡††††††††ˆ‰‹‰†ƒƒƒ‚ƒƒ‚‚„†…ƒ‚‚‚‚‚‚‚‚‚‚‚ƒ„‡‰ŠŽŽ‹†‚€€€€€€€€€€€€€€€€{}€„‡ˆ‰‰†‡ˆˆ‡‡†‡ˆˆ…}~~|€€€}}~€‚€€€€€€€€ƒƒ€€€~€‚‚‚‚~~{z|||||}}}~~yvy|}~€€€€ƒ„„ƒ‚‚‚‚€‚ƒ‚‚~}{yxwvvwxxxwwutx{zustvuxxvvuuvwutttssttuttvz~€€}}{zwxxwy~€€€€‚~|}{yyz{{zyyyyyzz{yyyz{}~|||||}}€|vokliglu}€€}~€€~}y{}ƒ……†„„„……††††‡‡‡…ƒ€~€€ƒ„‚€~}|~~~~~~~~~~~~~~~~~}||~ƒƒ‚‚ƒƒƒ‚‚„††‡†ƒ~€ƒƒƒƒƒ‚ƒ„……ƒƒ…‚|xxuyyvv{€€€€€€€€€€€€€€€€€‚„ƒ|}~}~~~|€„†††‡ˆ†††††††††††‡†††††††………„„ƒ…‡‰‰‰ˆˆ……„ƒƒƒ„„„„„„„„„„……………………‡‡‡†…„ƒ‚…„ƒ‚‚‚‚‚‚ƒ„„……„„‚‚‚ƒ„†ˆŠ‘’’“Ž‘‘Œ‡„„…ƒ„ˆ‰‰ˆˆ‡ˆˆˆˆˆ‰ŠŠŠŠŠŠ‹‹‰†„„…€~|~~~ƒƒ‚ƒ…‡†……ƒ€€‚€ƒ†‰‡ˆ‰‹‹‹‹ŠŠ‹‹‹‹ŒŒŒŒŒŒŒŒ‰…‚„„‚‡†……†ŠŽŽŒ‡ƒ‚„„„„„„„„‰ˆ†„‚‚‚ƒƒ‚‚‚‚‚‚‚ƒƒƒƒ„ƒƒ…††……„………ƒ„„……†‡‡††††††††‡‰Š‰†ƒ‚ƒ‚ƒƒ‚‚„……ƒ‚‚‚ƒ„†ˆŠ†‡ˆ‰‡„€€€€€€€€€€€€€€€€{}„‡ˆ‰‰‡‡‡ˆˆˆ‡‡‡ˆ…~€€~€€€~~€€€€€€€~‚€~€€‚ƒ„…†††~~{{|{||||}}}{wvx{|~€€€€‚‚ƒƒ‚‚ƒƒ‚€‚‚‚€€|{zxwwvvwwxxxwvuwzzusuvuwxywvtvwwuvwwttuuttvz~€€€~}|{zwxxwy~‚€€€€€~{~|{z{{{zzyyyyyz{zyzz{|~~€~€€}}}|ytpmjhhmv}~~€~}z{~€ƒ„……„„…………††‡‡†…„‚€€€ƒƒ‚€€~}|}|~}}~}~}~~~~~}}}||}ƒƒ‚‚ƒƒ‚‚‚„†‡ˆ‡„€~„ƒƒ„ƒƒ‚„……‚ƒ…ƒ|yyy||yy|€€€€€€€€€€€€€€€€€‚„ƒ|}~}~~~~~~}€„‡‡†‡‡†††††††††††…†…†††††………………†ˆ‰Š‰ˆ‡ˆ‡†„„ƒƒƒ„ƒƒƒƒƒƒ„……………………††‡‡†…ƒ‚…„ƒ‚€‚ƒ„„…„„ƒƒ‚‚‚ƒ„…‰ŠŒŽ‘’’‘ŽŒˆ„€ƒ„ƒ…‰‰‰ˆ‡‡‡ˆˆ‡ˆ‰‰Š‰‰‰Š‹‹‰†„„…~}~~}‚ƒ‚ƒ…‡†……ƒ€‚‚‚€‚‚‚‚…‡†‡ˆŠŠ‹ŠŠŠŠ‹‹‹‹ŒŒ‹‹‹Œ‹‰…ƒ‚‚„††…ƒ†…„„…ˆ‹ŒŽŽ‹†‚€€‚‚ƒƒ……††ˆ‡…ƒ‚‚‚‚ƒƒƒ‚‚‚‚‚‚‚ƒƒƒƒ„‚ƒ…††…„…„……„„……††‡‡††††††††‡‰Šˆ†ƒ‚‚‚ƒƒ‚‚„†…ƒ‚‚‚‚„†ˆ‰‚„……„‚€€€€€€€€€€€€€€€€{~…‡‰‰‰‡‡†‡‰Šˆ†…†ƒ}€€€€€€~~‚€‚‚ƒ„…………€~}|}||||||||zxwxz}‚‚‚‚‚€‚€‚€~zyxwvvwwvwwxxwvuvzzusuwvuwxxwwwxxxxyxvttuttvz~€€€€~}|{zwxxwy~€€€€€}{~}|{{{zzzzyyyzz{zzzz{|}~}zwutsqppomkjilkkpv}€€}}}~}}}}z|~‚„„…„„„……††††…„„ƒƒƒƒ€€‚ƒƒ|{}}{|~~~~~~}~€~}|}|{~ƒƒ‚‚ƒƒƒ‚‚„†ˆ‰ˆ…€€‚…„…„„ƒ„„……ƒƒ†ƒ}zz€€}{{}~€€€€€€€€€€€€€€€€‚„ƒ|}~}~~~~~~~…‡‡†‡‡††††††††‡†……„…†‡††††…†……„†‡ˆˆˆ†…‰ˆ†…ƒ‚ƒƒƒ‚‚ƒƒƒ„„„„„„„„…†‡‡‡…ƒ‚…„ƒ‚€€€€‚ƒƒ„„„ƒƒƒƒ‚‚ƒ„…†‹Œ‘‘‘ŽŠ…€ƒ„„†Š‰‰ˆ‡‡‡‡ˆ‡ˆˆ‰‰‰‰‰Š‹‹‰†„„…~}~~}‚ƒ‚ƒ…‡†……ƒ€€‚‚ƒ‚‚€‚„‡‡‡ˆ‰‰ŠŠŠŠŠŠ‹‹‹‹‹‹‹‹Œ‹‰…‚„„…‡Š‹‹‰‹Š‰‰Š‹ŽŒŽŒˆ„ƒƒ„…………††‡‡†…ƒ‚‚‚ƒƒ‚‚‚‚‚‚‚‚‚ƒ‚„„ƒƒ…††……„………„……††‡‡‡††††††††‡‰‰ˆ…ƒ‚‚ƒƒ‚‚„……ƒ‚‚‚‚ƒ…‡ˆƒ„…‡††…„€€€€€€€€€€€€€€€€|~…ˆ‰Š‰ˆ‡‡ˆ‰Šˆ†ƒ„|{}~}}}~~€€€€€~~~‚ƒ€‚ƒ‚‚ƒ„…………€€~}}||||||{{{z{~ƒ‚‚‚ƒƒ€‚€€€€~}yxwwvvwwuvwxxwwvvyyusuwwwvwwyxwvuvwvvvusuttvz~~~€~~{zwxxwy~‚€€€€€€€€|z||}|{{zz{zzyzzz{{zzz{|}~}yuqnlkmmmmnnnoqqrtx{}}{{{z{{{{{|€ƒƒ„„„„…………††ƒ„…††„ƒ‚ƒƒ}{|~||}~~}}}}}~}|}||}ƒƒ‚‚ƒƒ‚‚‚„†ˆ‰ˆ…€‚…„……„„ƒ„…„‚ƒ…„~{{€€|{|~€€€€€€€€€€€€€€€€‚„ƒ|}~}}}~}~~‚†ˆ‡††‡††††††††‡†…„……†‡††††††††ƒ„†‡‡†…„„„ƒƒƒ‚‚ƒƒ„„„„„„„„„…‡ˆˆ†„‚…„ƒ€€€ƒƒ„„„ƒƒ‚ƒƒƒƒ„…‡ˆŒŽ‘‘‘‘‘ŽŒˆƒƒ„ƒ†Š‰‰ˆ‡‡‡ˆˆˆˆ‰‰‰‰‰ˆŠ‹‹‰†„„…‚}~~}~ƒ‚ƒ…‡†……ƒ€‚‚‚€‚‚ƒ„‡ˆˆˆˆ‰‰ŠŠŠŠŠŠ‹‹‹‹‹‹‹ŒŒ‰…‚‚‚„‡‹Œ‹‹ŠŠŠ‹ŒŒ‰‹ŒŠˆˆˆ‰ˆˆ‡‡‡‡††…„‚‚‚ƒƒƒ‚‚ƒ‚‚‚‚‚ƒƒ„‚ƒ…††…„…„……„„……††††……………………†ˆ‰ˆ…‚‚ƒƒ‚‚„†…ƒ‚‚‚‚ƒ„…†‡‡ˆ‡‡††…€€€€€€€€€€€€€€€€|~…ˆŠŠŠ‰ˆˆ‰‰‰‡†ƒ„|z||{{{|}~€€€€€€€€€€~~~~€ƒƒ‚‚ƒ„…†††‚ƒƒ€‚€~~~}}}}||~}{z}‚‚‚‚ƒƒ€€€‚€€€~||zyxwvvwwuvwxxxwwuyyusvxwzyvvwwussuvuvxxvuttvz~}~€€{zwxxwy~€€€€€€€€€€|yy{||{{{{|{zzyzz{{{zzz||}}zxvuuwwxyz{{{wwwyy{{{|{zzyz{|{}‚ƒƒƒ„„„……†††††††„ƒ‚‚ƒƒ€~}}~€€}~~~}}}}||}~~~~||}|{~ƒƒ‚‚ƒƒƒ‚‚„†ˆ‰ˆ…€‚…„„„ƒ‚‚ƒ„„‚ƒ†„||||}~|}€€€€€€€€€€€€€€€€€‚„ƒ|}~}|}}~~~€ƒ‡ˆ‡††‡‡‡‡‡‡‡‡‡††…†…††††††††‡†‡‚„…‡‡‡……‡†…„‚‚ƒ‚€€‚ƒ„„„„„„„„‚„‡ˆˆ†„‚„ƒ‚‚‚‚‚ƒƒƒ„ƒƒ‚‚ƒƒƒ„…‡ˆ‰‹ŒŽ‘‘‘‘’’‘‹†ƒƒƒ‚„‰ŠŠ‰ˆˆˆˆ‰ˆ‰‰‰‰‰‰ˆŠ‹‹‰†„„…‚}~~}~ƒ‚ƒ…‡†……ƒ€€‚‚‚‚‚…‡‹Š‰‰ˆˆ‰‰‰ŠŠŠŠ‹‹‹‹‹ŒŒŠ‡„€„ˆ‹‹Šˆˆ‡‡‡‡†††‰‹‹Šˆ‰ŠŠŠ‰ˆ‡‡††…„ƒ‚‚‚ƒƒ‚‚‚‚ƒƒ‚‚‚‚‚ƒ„„ƒƒ…††……„………„„„……†…†……………………†ˆˆˆ„‚‚ƒƒ‚‚„……ƒ‚‚‚ƒ……ˆˆ‡‡……„„€€€€€€€€€€€€€€€€|~‚…ˆŠŠŠ‰ŠŠŠˆ‡††††ƒ}{||z{{||}}}}€€~~~}€€~~~‚‚~~~€‚‚‚‚ƒ……‚‚„„~~}}}{~zx{~‚‚‚‚€€€‚€}|{{zywwvvvtuwwxxxwuxyusvxxzywuutuuvvvvvwxxuttvz~€€€~}{zwxxwy~‚€€€€€€€€€€€~{yvy{|{z{||{{zzzzz{{{z{{|}~|{{{{{yz|}}|{zz{|||{{{~}|{{{}~|}‚ƒƒƒ„„…………††‡†…„ƒ‚‚‚ƒ‚‚ƒ‚€~}~€€~|||}}}~~~~~}}}}}}||}ƒƒ‚‚ƒƒ‚‚‚„†ˆˆˆ„‚„„„„ƒ‚‚ƒ„„‚ƒ†…}}yy{~}z|€€€€€€€€€€€€€€€€€‚„ƒ|}~}||}}~~„‡ˆˆ††‡‡‡‡‡‡‡‡‡††††‡†††††††‡‡‡‡ƒ„†ˆ‰‰ˆ‡‹‰‡…„ƒ‚ƒ‚€€‚ƒ„„„„„„„„„‡‰‰‡„‚ƒ‚‚‚‚ƒ„„ƒƒƒƒƒ‚‚ƒƒ„„†‡‰ŠŠ‹‘’’‘’“”“’’’‰…ƒ‚€ƒ‡‹ŠŠ‰‰‰‰‰‰‰ŠŠŠ‰‰‰Š‹‹‰†„„…ƒ~~~|~€ƒ‚ƒ…‡†……ƒ€‚‚€ƒ†‰Ž‹‰ˆˆˆˆ‰‰ŠŠŠŠ‹‹ŒŒŒŽŒˆ…€€ƒ†ˆ‡†ŠŠŠ‰‰ˆ‡†…‡‰‰‡††‡‡†‡†††††„„‚‚‚ƒƒƒ‚‚ƒƒ‚‚‚ƒƒ„‚ƒ…††…„…„……„„„„…………………………………‡ˆ‡„€‚ƒƒ‚‚„†…ƒƒ‚‚ƒ„…ˆ‡‡……„„„€€€€€€€€€€€€€€€€|‚†ˆŠŠŠ‰‹ŒŠˆ†††ˆˆ„~{||z||||{{{{}}}~~~~~€€~~~~||}{‚‚ƒƒƒƒ††ƒƒ……‚€€~~~}{~yvy||€€‚‚‚}~€€~~€~}{z|{yxwvvvtuvxxxxwtxyusvxxwwwussvxxvuutssuuttvz~€€€€~}|{zwxxwy~€€€€€€€€€~{xux{|{z{}||{zzzzz|{{zz{|}~~}|{||}}~€}zx{|~~}||}€}||}€|}‚ƒƒƒ„„„……†††ƒƒ…………ƒ‚ƒ‚‚ƒ‚€~}}}€€~{||}~€€~~}}|}}}}||~ƒƒ‚‚ƒƒƒ‚‚„†‡ˆ‡„€„………„ƒƒ„…„‚ƒ†…€}~zy{~|xx|€€€€€€€€€€€€€€€€‚„ƒ|}~}|||}~~„‡‰ˆ††‡‡‡‡‡‡‡‡‡…†‡ˆ‡‡†……†††‡‡‡‡„…‡Š‹‹ŠŠ‹Šˆ‡†………ƒ‚€€‚ƒƒƒƒƒƒƒƒƒƒ‡‰‰‡„‚‚‚‚‚ƒ„…†ƒƒƒƒƒ‚„„„„†ˆ‰‹‰ŠŒŽ‘’’‘“”•”“““‘‹†„‚‚†‹‹Š‰‰‰‰Š‰‰ŠŠŠŠ‰‰Š‹‹‰†„„…ƒ€~~~|}€ƒ‚ƒ…‡†……ƒ€€‚‚‚‚‚‚‚‚‚‚€€ƒ‡‰ŽŒŠˆˆˆˆ‰‰‰ŠŠŠŠŠŒŒŽŽŒ‰†„ƒƒ…‡‡…„††††…„‚„†ˆ‡„‚‚‚ƒƒƒ„……††„ƒ‚‚‚ƒƒƒ‚‚„ƒ‚‚‚ƒƒ„ƒƒ…††……„………ƒ„„„„„„„………………………‡ˆ‡„€‚ƒƒ‚‚„……ƒ‚‚‚‚‚‚‚‚ƒ‚‚ƒ„ˆˆ‡††††‡€€€€€€€€€€€€€€€€||„ˆŠ‰ˆŠŠŠŠŠ‰ˆˆ‰ˆ„}z{|{{{zyyyyy||~€€€~~~||~€€‚„…„ƒ…„ƒƒ…†††‚‚€|}~|zy|€‚„„‚€€‚€€}{{|||{zyyxvuttuuvvvvvvyxvvwxxxuuuuuuuvttstuutstssvz}~}€€‚}{z~€|yzzwx|€‚€€€€€€€~}{{{{{{||{{{{{{{{zzzz{{{{|}~~~~}|~~~~~~~~}|{zz{|}}}}~~€|}‚ƒ„……„„„ƒ„…††…„…‡†ƒ‚ƒ‚€~}}}}}~~~~~~~~||}~~}||€~‚ƒƒ‚‚‚‚ƒ„„ˆˆˆ„‚„ƒƒ„„„ƒ‚‚„„„„ƒ€z{{zz|‚€€€€€€€€€€€€€€€€ƒ…„|}}}}}}}}~~}†‰‰ˆ‡ˆ‡‡‡‡‡‡‡‡††††‡‡‡†††††††††…‡ˆŠŠ‰ˆ‡‰ˆ‡…„ƒƒƒ€€€€‚‚ƒƒ„„ƒ…‡‡†…„…„‚‚„†††€‚„„ƒ‚‚ƒƒ‡‰‡†ˆ‰ˆŒŒŽ‘“””••••””“•’Œ……ŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠ‰ˆˆ‡††‚~|}}|‚ƒ‚‚ƒ†‡‡†„ƒ‚€€€ƒ„ƒƒ…ŒŠ‰ˆˆ‰‰Š‰‰‰‰ŠŠ‹‹ŒŒŒŒ‹Š‰‡†…„ƒƒ„„…………………………………………†††……………†…„‚ƒƒƒ‚‚‚‚‚‚‚„ƒ‚‚ƒ…†……„………………††††……††††††††††††…„‚‚‚‚‚€€ƒ„„‚€ƒƒ‚‚€€‚‚‚ƒ„†‡††††††††€€€€€€€€€€€€€€€€||„ˆŠ‰ˆŠŠŠŠ‰‰ˆˆ‰ˆ„}z{|zzzzzzz{{{{|}~~€~€€€€€€€€ƒƒ‚‚„…†…„…„‚ƒ„††…‚ƒƒƒ‚€€€}zyz|€‚ƒƒ€€€€€~|ywxzz{zyyxvuutuuuvvvvvxwuvxyyyvvvvvuuuvuttuvutsssvz}~}}~€~|zy~|yzywy|€‚€€€€€€€€~}||{{{{{{{{{{{{{{zzzz{{{{}}~~}}||||||||~}||}~||}}~~~}~€‚ƒ„„„„„ƒƒ„…†‡…„…‡†ƒ‚€‚‚‚€~}}}~~}|}€~}}}|}~~€~~‚ƒƒ‚‚‚‚‚ƒƒ„ˆˆˆ…€‚…ƒƒ„„„ƒ‚‚ƒƒƒƒ‚~z{zzz|€€€€€€€€€€€€€€€€ƒ…„|}}}}}}}}~~~}†‰‰ˆ‡ˆ‡ˆ‡ˆ‡ˆ‡ˆ‡‡ˆ‡†††‡††††††††…†ˆ‰Š‰ˆ‡…„ƒƒ‚‚‚‚€€‚‚‚ƒƒ€‚…†††‡ˆ„ƒ‚ƒ………€‚„„‚‚ƒ„…‰ŒŒ‹Œ‹‰ŒŒŒ‘’“””•••••”—”…€€ƒ‡ŠŠŠŠŠŠŠŠ‰‰‰‰‰‰‰‰ŠŠ‰‰‡‡††ƒ}}}|~‚ƒ‚‚ƒ†‡‡†ƒƒ‚€€€ƒƒƒƒ…‹‹‰‰ˆ‰‰Š‰‰‰‰‰ŠŠ‹‹ŒŒŒ‹‹Š‰‡†„ƒƒƒ„„„„„„„„„„……………………„„„„„„„„…„ƒ‚‚ƒƒ‚‚‚‚‚‚‚‚€‚ƒƒ‚‚ƒ……………„………………†††……††………………††††…„‚‚‚‚‚‚ƒ……ƒ‚‚‚‚‚‚‚ƒ„†‡‡‡‡‡‡‡‡‡€€€€€€€€€€€€€€€€||„ˆŠ‰ˆ‰‰Š‰‰ˆˆ‡‰ˆƒ|y{|zzzzzz{{|{zzz{}}}~€€€€€‚‚‚~|}~ƒ…ˆ‰‰ˆ…ƒ‚‚„……„„„…„„‚€‚€~|||{z~€‚‚€€€€€}zvtuwyzyyxwvvuuuuuvvvvvvutvz|{zxxwwvvuuwuuuvvvutssv{}~}|}~~|{y~{yyywy|€€€€€€€€€€~}}}||{{zz{{{{{{{{zzzz{{{{}~€€~}}}}}}}}}€~~€€}}~~~~€ƒƒƒƒ„„„ƒ„„††…„…‡†ƒ‚ƒ‚€~|}~€~~|{|€}|||||}~}}‚ƒƒ‚‚‚‚‚„„ˆˆˆ„‚„ƒƒ„„„ƒƒ‚‚‚ƒ‚‚€~}zz{zz{~€€€€€€€€€€€€€€€€€ƒ…„|}}}}}}}}}~~}†‰‰ˆ‡ˆˆˆˆˆˆˆˆˆ‡‰Š‰†…†ˆ††††††††„…‡‰‰ˆ‡†‡†…ƒ‚€€€€€‚„…††‡ˆ…‚ƒ„„ƒ€‚„ƒƒ‚„…ˆ‘‘Ž‹ŒŒŒŽ’’“””•–––•˜”„~‚…‰‰‰‰‰‰‰‰ˆˆˆˆˆˆˆˆŠŠŠˆˆ†††„€~}}|~ƒ‚‚ƒ†‡‡†„ƒ‚€‚€€‚‚„†‰‰ˆˆ‰‰ŠŠ‰‰‰‰‰‰ŠŠ‹‹ŒŒŒ‹Š‰†…„ƒƒƒƒ„„ƒ„ƒ„ƒ„„„ƒ„ƒ„ƒ„„ƒƒƒƒ„ƒ„ƒ„ƒ‚‚‚ƒƒƒ‚‚‚‚‚‚‚„ƒ‚‚ƒ…………„„„………………†……………………………††††…„‚‚‚‚‚‚„†…ƒ‚‚‚‚‚‚‚ƒ„†‡‡‡‡‡‡‡‡‡€€€€€€€€€€€€€€€€||„ˆŠ‰ˆ‰‰‰‰‰‰ˆ‡ˆˆƒ|y{{zzzzyzz{{zyxxy|}}~~‚‚|{|}€‚…‡ŠŠ‰„ƒƒ„ƒƒ…†…†…„‚‚~||}{|~€€€€€€€~zxutuwxxyyxwwvuuuuuuuvvwussw|}{zyyxwvvuuuuvwwussssvz}~}|~€€~}y}{xyxvz}€€€€€€€€€€}~~}|{{zz{{{{{{{{zzzz{{{{}~€€~}~~€€~€‚‚‚‚‚„„ƒ„ƒ…†‡…„…‡†ƒ‚€‚‚‚€~~~€€€~}}||}€~|}~~~~}|~ƒƒ‚‚‚‚‚ƒƒ„ˆˆˆ…€…„„„„ƒƒƒƒ‚‚‚}}z{zzy{}€€€€€€€€€€€€€€€€€ƒ…„|}}}}}}}}}~~}†‰‰ˆ‡ˆˆˆˆˆˆˆˆˆˆŠ‹Š‡…†ˆ‡‡‡‡‡‡‡‡„…‡ˆˆˆ†…ˆ‡†ƒ‚€€‚€€‚€€€€€€€€‚„……„„…†…ƒ‚„ƒ‚‚ƒƒ‚ƒ…‡‘“’‘‘ŽŒŒŒŽ‘’’“”•––––•’‹„~~‚†ˆˆˆˆˆˆˆˆ‰‰‰‰‰‰‰‰ŠŠ‰‰‡‡††„~~}|~ƒ‚‚ƒ†‡‡†ƒƒ€ƒƒ†‡‡‡ˆˆŠŠ‹‰ˆˆˆˆ‰‰ŠŠ‹‹ŒŒ‹ŠŠ††„ƒƒƒ„„ƒƒƒ„ƒ„ƒƒ‚‚‚‚‚‚‚‚ƒ„„„„………ƒ‚‚‚ƒƒƒ‚‚‚‚‚‚‚‚€‚ƒ„‚‚ƒ………„„„……………………………„„………………††††…„‚‚‚‚‚‚‚ƒ…††„‚‚‚‚‚‚‚‚ƒ„†‡‡‡‡‡‡‡‡‡€€€€€€€€€€€€€€€€||„ˆŠ‰ˆˆˆ‰‰‰ˆˆˆˆ‡‚|yz{yzzzyyyyyzyxwx{~€~~~~~}|€€€€‚„‚‚ƒ„††…„„‚€€‚‚„…………„ƒƒ‚|}€~zy|~€€€€€~}wvvwxxwvxxxwwvvuvvuuuvwwurrw~~zzzyxwvvursuvxvsqtssv{}~}|}€€~}x}~zxxxv{}~€€€€€€€€€~~~~||{zz{{{{{{{{zzzz{{{{}~~}||}}}}}|~}~}}}}}}~€‚‚‚‚„„„ƒ„„††…„…‡†ƒ‚ƒ‚€~€€}|{}~~~~€€€€~}{|}ƒƒ‚‚‚‚‚‚„„ˆˆˆ„‚„„„ƒƒƒƒƒƒ‚‚~|{{{zzz~€€€€€€€€€€€€€€€€€ƒ…„|}}}}}|||}~~}†ˆ‰ˆˆˆˆ‡ˆ‡ˆ‡ˆˆˆ‰Š‰‡†‡ˆ‡‡‡‡‡‡‡‡„…‡ˆˆˆ†……„ƒ‚€€€‚‚‚‚€~‚ƒ„„ƒ„…‡‡…ƒ‚ƒƒƒ‚‚ƒ‚‚ƒ†‰‘””‘‘Ž‘’’’“”••••‘Ž‰‚~„ˆˆˆˆˆˆˆˆˆŠŠŠŠŠŠŠŠŠŠŠˆˆ†††„€~~~|‚ƒ‚‚ƒ†‡‡†„ƒ‚€€ƒ€€ƒ………‡‡‰‰ŠŠˆˆˆˆˆˆ‰‰ŠŠ‹ŒŒ‹‹Š‡‡…„„„……„„„„„„„„„„„„„„„„……††‡‡‡ˆ„ƒ‚‚ƒƒƒƒ‚‚‚‚‚‚‚„ƒ‚‚ƒ……„„„„„……†……„„„…†„„„……………††††…„‚‚‚‚‚‚‚ƒ…††„‚€‚‚‚ƒ‚‚‚ƒ„†‡‡‡‡‡‡‡‡‡€€€€€€€€€€€€€€€€||„ˆŠ‰ˆˆ‰‰‰‰‰ˆˆˆ‡‚{xzzy{{zyyyyyzyyxyz|}~~~~~}{{~}~€‚€€€‚„…„ƒƒ€€€‚‚ƒ„„„ƒƒ…‚€{wwz|~~~€€€€~}|uvvxyywuxxxwwvvvvvutuvwxvssx‚~yyyxxwwvvrstvwvsqsssvz}~}{|}~~}{zx|~zwxwu{}~~€‚€€€€€€€~~~}}||{{||||||||zzzz{{{{|}}~~}}|{{{{{{{{z{{|||{z{{{{zzyy{|~€‚ƒƒƒ„„ƒ„„…†‡…„…‡†ƒ‚€‚‚‚€~€€€€€~}|{~€€~}~€~}}}}}{{z}€ƒƒ‚‚‚‚‚ƒƒ„ˆˆˆ…€…„„ƒƒƒƒƒƒ‚‚‚ƒ€~}|}|{z{~€€€€€€€€€€€€€€€€€ƒ…„|}}}}||||}}~}†‰‰ˆ‡ˆ‡‡‡‡‡‡‡‡ˆ‡‡‡ˆˆˆˆ‡‡‡‡‡‡‡‡„…‡‰‰ˆ‡†ˆ‡…„‚€ƒƒ‚‚ƒƒ‚‚€~~€‚ƒƒ…ˆŠ‰‡„ƒƒ„‚‚ƒƒ‚‚„‡Š”•”Ž‘‘ŽŽŽŽ‘’‘’“”””””Œ†}„‰‰‰‰‰‰‰‰‰‹‹‹‹‹‹‹‹ŠŠ‰‰‡‡††ƒ€}~~~€ƒƒ‚‚ƒ†‡‡†ƒƒ€‚€‚„„…†ˆˆ‰ˆˆˆˆ‡‡‡ˆˆ‰‰Š‹ŒŒŒ‹‹‰ˆ‡†……†‡……………………ˆˆ‡ˆ‡ˆ‡ˆ…††‡‡ˆ‰‰†…„ƒ‚‚‚‚ƒƒ‚‚‚‚‚‚‚‚€‚ƒ„‚‚ƒ……„„„ƒ„„…†…„„ƒ„…†„„………†††††††…„‚‚‚‚‚‚„†…ƒ‚‚‚‚‚‚‚ƒ„†‡††††††††€€€€€€€€€€€€€€€€||„ˆŠ‰ˆ‰‰‰ŠŠ‰‰‰‡‡‚{xzzy{{{zzz{{zzzzzz{{||}}}}|{~|zyz{||~€„…†…ƒ€€€~‚ƒƒ„„…ƒ{xux{}}~€€€€~|{uuuvxxwuxxwwwwvvwvuttuwxwtsy€ƒ}wwwwwwwwwutttvuustssvz}~}|}~~~|zyw|~zwxwu|}~~~€‚€€€€€€€~}}}}}|}|||||||||zzzz{{{{{{|}}|{{zzzzzzzzzz|}}|{z|||{{zzzxz}‚ƒ„…„„„ƒ„…††…„…‡†ƒ‚ƒ‚€~~~~}~~~~~}||||}{zz|€ƒƒ‚‚‚‚‚ƒ„„ˆˆˆ„‚„…„ƒƒ‚ƒƒƒƒƒ„ƒƒ~~~}|{|€€€€€€€€€€€€€€€€ƒ…„|}}}}||||}}~}†‰‰ˆ‡ˆ‡‡‡†‡†‡‡‡…„…ˆŠ‰‡‡‡‡‡‡‡‡‡…†ˆ‰Š‰ˆ‡‹‰‡„ƒ‚„ƒ‚‚‚‚ƒ„ƒƒ‚€~}€‚ƒ…ˆ‹‹ˆ†„…„ƒ‚‚ƒƒ‚‚„ˆ‹”––’‘‘’“‘’’“““’’Œ‡€|}‚‡ŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠ‰ˆˆ†††‚}~…ƒ‚‚ƒ†‡‡†„ƒ‚€€€€‚‚ƒ„…†‡ˆˆ‡‡‡‡‡‡‡ˆˆˆ‰Š‹‹ŒŒŒ‹‹Šˆ‡‡‡ˆˆ††††††††ˆ‡ˆ‡ˆ‡ˆˆ„„…†‡ˆˆ‰‰ˆ†„ƒƒƒƒ‚‚‚‚‚‚‚„ƒ‚‚ƒ……„„ƒ„„„…†…„ƒƒ„…†„„……†††‡††††…„‚‚‚‚‚‚ƒ……ƒ‚‚‚‚‚‚‚ƒ„†‡……………………€€€€€€€€€€€€€€€€||„ˆŠ‰ˆ‰‰ŠŠŠŠ‰‰‡†‚{xyzy|{{{||}}z{{|{zyyz{|}}}}}~||}}}~€ƒ……„ƒ~€~|}‚ƒ„„‚€}{tw{|}}€€€€}|{vtssuvwvxwwwwwwvwvuttuwxxutyƒ}uvvwwwwwwxvtstvvwsssvz}~}~€€}{zw|}zwwwu|}~~}~€ƒ€€€€€€€~||}}}}}}||||||||zzzz{{{{zz{||{zz||||||||z{}~~}{z€€~~}}wy|‚„…†„„ƒƒ„…†‡…„…‡†ƒ‚‚‚€~~~~~~€€€€~}~~€€~zyz|€ƒƒ‚‚‚‚‚‚ƒ„„ˆˆˆ„€‚„…„ƒ‚‚ƒƒ„„„„„ƒ‚€~~~}||€€€€€€€€€€€€€€€€ƒ…„|}}}|||||}}}}†‰‰ˆ‡ˆ††††††††‡„„‰‹‰†ˆˆˆˆˆˆˆˆ…‡ˆŠŠ‰ˆ‡Š‰‡†„ƒƒƒ„ƒƒ‚‚ƒƒ„„ƒƒ€~}‚‚‚‚ƒ†ˆŒ‰†………ƒ‚ƒƒƒ‚‚„ˆŒ”—˜”’’‘‘’“‘’’’’’‘‘‘Ž‡€||€…ŠŠŠŠŠŠŠŠ‰‰‰‰‰‰‰‰ŠŠ‰‰‡‡††~}~€‚†ƒ‚‚ƒ†‡‡†ƒƒ‚€€€‚‚€‚„…†ˆˆ‡††‡‡‡‡‡‡ˆˆ‰Š‹ŒŒŒŒ‹Œ‹Šˆˆˆ‰‰‡‡‡‡‡‡‡‡……………………ƒƒ„…†‡‡ˆ‹Šˆ…ƒ‚ƒƒƒ‚‚‚‚‚‚‚„ƒ‚‚ƒ…„„„„ƒ„„„†…„ƒƒ„…†„………††‡‡††††…„‚‚‚‚‚€€ƒ„„‚€‚‚‚‚‚‚‚ƒ„†‡……………………€€€€€€€€€€€€€€€€~}‚‡‹ŒŒ‹‹Œ‹ŠŠŠ‹‹ˆƒ~{yzz{||yz|}|{}}zy{||}|{{}}|{}€€}{~€€„‰Šˆ†‚~}|}€~~€€……„ƒ€wwwwy|~~~}|{utsuxyywuuvvvvvvvvvvwwwwrsw{|yxxxvuvwyyywtrrsurrsw|~}|}~~~|zyz{vvxxz}€€€€‚€€€€~€€€~}{{{}}||||||||{{{zzzyyz{}~€~~~~~~~~}wy{~‚ƒ„…„…„…„…„……†…‚€€€‚ƒ‚€~~}||||~~~~}}~~€~}~€~~|{|‚ƒ‚ƒƒƒ‚ƒƒ„…†††…ƒ‚ƒ„ƒƒƒƒƒƒ‚‚ƒƒ‚‚€€€~~}}}}€€€€€€€€€€€€€€€€ƒ†…}}|{||||||}}|~ƒ‰‰‡†‰‡‡‡†‡‡ˆˆˆƒ„ˆˆ‡ˆˆ‰Š‰ˆ‡ˆ‰†…†ˆŠ‰†„†††…ƒƒƒƒƒƒƒƒ‚‚‚‚‚‚‚‚‚‚‚ƒƒ„„……‰ŠŠ‰†„ƒƒ‚ƒƒ„‡Š”–—”Ž“Ž‘“’‘‘‘‘’“ˆƒ}{€ˆŠ‰‰Š‹Šˆ‡„†‰Š‰‰Š‹ŠŠŠŠˆ†…ƒ‡„ƒ„ƒ‚ƒ…ƒ‚‚ƒ†‡‡†ƒƒ‚‚‚€‚‚‚‚‚‚††††‡‡‡ˆ†††‡‡‡‡‡ˆ‰ŠŒŽŽŽŠ‡†‡‡†…‚‚‚‚ƒƒƒƒ€€‚„„ƒ‚‚‚ƒ„ˆ‡…„‚‚‚‚ƒƒ‚‚‚‚‚‚‚‚ƒ„„‚‚‚ƒƒƒ„‡†„„……ƒ‚„„„……††††………………†…‡ˆ‡…‚‚ƒ‚‚‚€€‚‚ƒƒ‚‚ƒ‚‚‚‚ƒ„ƒ‚‚ƒ„†‡‡‡†…„ƒ€€€€€€€€€€€€€€€€||}†‰ŠŠŠ‹‹‹Š‰ŠŠ‹ˆƒ~zzzz|}|zy{{z{~}zxz{{|zyz|}|z}€}€€ƒ„ƒƒ…†††‚€}~€~~€€€~~}}yxwxy{}€€€~|zyutstwxwvvvvvvvvvvvvvwwwwrsw{|yuwyyxwwwzxwvwxyywsqu{}zxyz{{zxwy{vvxxz}€€€€‚€€€€~€€€€~}|{|}}||||||||{{zzzzyyz{}~€~~~~~~~~~~~~~~~~~~yz}€‚„……„…„…„…„…„………‚€€‚€‚‚‚€~{|}~~~~~~~~~}}~~}~~~~}~|{|‚ƒ‚ƒƒ‚‚ƒƒ„…†††…ƒ‚ƒ„„„„„ƒƒ‚‚„ƒƒƒ‚€~~~~€€€€€€€€€€€€€€€€ƒ†…}}|{||||||}}|~ƒ‰‰‡†‰‡‡†‡†‡ˆˆˆƒ…ˆˆ‡ˆ‡‰‰‰‡†‡ˆ……†ˆŠ‰‡„…†…„‚€ƒƒƒƒƒƒƒƒ‚‚‚‚‚‚‚‚‚ƒƒ„„„……‰ŠŠ‰†„ƒ„€‚ƒƒ…ˆŠ“•—•‘‘“’“’‘‘‘‘’Ž‰„}{‰ŠŠ‰ŠŠŠˆ‡…‡ŠŠ‰ˆˆŠ‰ŠŠŠˆ‡…„‡„‚ƒƒ‚…ƒ‚‚ƒ†‡‡†ƒƒ‚‚€‚‚‚‚‚……†††‡‡‡†††‡‡‡ˆˆˆ‰‹ŒŽŽŽŠ‡†‡ˆ†…‚€‚ƒ„€€€‚ƒˆ‡…„‚‚‚‚ƒƒ‚‚‚‚‚‚ƒƒ„‚‚‚ƒƒƒ„„„……„„……„„„……††††………………†…‡ˆˆ…ƒ‚ƒ‚‚‚€€‚‚ƒƒ‚‚‚‚€‚‚ƒ‚€‚ƒƒ„„…„ƒ‚‚€€€€€€€€€€€€€€€€{{|…ˆŠ‰‰Š‹Š‰‰‰Š‹ˆƒ~{yzz}}|zzzzy|~~zxyzzzyyz|}}{~€‚€€„…„„…†‡…‚‚‚‚~€€€}}}}}}}}zyxwyz|}}zywvuttuvutvvvvvuvvvvvvwwwwstw|€}zuwyyxwwwzwux|€€~wqsz}xvwyzzyxwy{vvwwz}€€€€‚€€€€~€€€€€~}|||}}||||||||{zzzzyyyz{}~€~~~~~~~~~~~~|}}~€€z{~€ƒ…††…„…„…„…„ƒ„…„ƒ‚‚ƒ‚€~}~€€~|{}~€€~}|}}~~}}}~~|{|‚ƒ‚ƒƒ‚‚‚ƒ„…†††…ƒ‚ƒ„………„ƒ‚‚‚„„„„ƒƒƒƒ†……„„„„ƒ€€€€€€€€€€€€€€€€ƒ†…}}|{|||{||}}|~ƒ‰‰‡†‰‡‡‡†‡‡ˆˆˆƒ‚„ˆˆ‡ˆ‡ˆ‰‡…„…†ƒ„…‡‰ˆ†„…††…ƒ‚‚‚‚‚‚ƒƒ„„„ƒƒƒƒƒƒƒƒƒƒ„„„………‰Š‹‰‡„„„€‚ƒƒ„…ˆ‹“––”’“”‘‘’““’‘‘‘‘’Š„€~}}ƒ‹Š‰‰‰‹Šˆ‡†ˆŠŠˆ††‡ˆˆ‰‰ˆ‡…„†ƒ‚‚‚€‚…ƒ‚‚ƒ†‡‡†ƒƒ‚‚‚€‚‚€…………††‡‡††‡‡ˆˆˆˆ‰Š‹ŒŽŽŽŠ‡†‡‡‡…ƒ‚‚€~€€‚ƒ€‚ˆ‡†ƒƒ‚‚‚ƒƒ‚‚‚‚‚‚‚‚ƒƒ‚‚ƒƒƒƒƒ„……„„…†„„„………†††………………†…‡‰‡…‚‚ƒ‚‚‚€€‚‚ƒƒ‚‚€€€‚€€€‚€‚‚‚€€€€€€€€€€€€€€€€|{|€…‰ŠŠŠŠ‹Š‰‰‰Š‹ˆƒ~zzzz|}|{zzzyx{{yx{}}zzy{~€€‚€€€€‚„……†‡‡ˆƒƒ‚~€€€€}}}~~~~yxwwxz|~€€}{yxvuuttttsvvvvuvuuvvvvwwwwstw|€€}zxxxwuvxzxutx€……‚ƒ}wvz}}{wyz|||{zy~€{uuwwz}€€€€€€€€€€€€€~~}}}}}}||||{{zzzzyyyyz{}~€~~~~}}}}}}}}{||~€y{}€‚„…†„…„…„…„…ƒ„……ƒ‚‚ƒ‚€‚‚‚€~€€~}|}~€~}}~~}|}~|{|‚ƒ‚ƒ‚‚‚‚ƒ„„†††…ƒ‚ƒ„„„ƒƒ‚‚‚‚……………„„„‰‰ˆˆ‡‡‡‡€€€€€€€€€€€€€€€€ƒ†…}}|{|||||}}}|~ƒ‰‰‡†‰‡‡†‡†‡ˆˆˆ„…ˆˆ‡ˆ†‡ˆ†ƒ‚‚„‚„†‡‡…„………„‚‚‚ƒ‚ƒƒ„……ƒƒƒƒƒƒƒƒƒ„„„„……†‰Š‹Š‡…„„ƒ„…„†‰ŒŽ‘•—–”””’‘’”““’‘‘‘‘’‹…€~„‹ŠŠ‰ŠŠŠˆ‡‡‰Š‰†„ƒ„†‡ˆˆˆ‡†…†ƒ€€„ƒ‚‚ƒ†‡‡†ƒƒ‚‚€‚€€€„„„……††††††‡ˆ‰‰‰ŠŠŒŽŽŽŠ‡†‡ˆ†………„ƒ€€~~~€€~~}~~€‚ˆ‡…„‚‚‚‚ƒƒ‚‚‚‚‚‚ƒ‚‚ƒ‚ƒƒ„……†…„ƒ„„„„„„…………†………………†…‡ˆˆ…ƒ‚ƒ‚‚‚€€‚‚ƒƒ‚‚€€~€‚‚‚‚‚€€€€€€€€€€€€€€€€}}~‚‡ŠŒ‹‹‹Œ‹ŠŠŠ‹‹ˆƒ~{yzz{{{{{zzz{}}yxyzy|{{}ƒ„ƒ…ƒ€~~~€ƒƒƒ…††……€‚~}~€€||||}}~~wvvvx{~}}~}}{zyvvvutssswvvvvuuuvvvvwwwwsux}€~zwwwvuuwyussx†…‚…ƒ|z{~€yz}~~}|x~€zuuwvz}€€€€€€€€€€€€€€~~}}|}}}||{{{zzzyyxxxz{}~€~~~~}}}}}}}}{|}}€xy|~‚„„…„…„…„…„ƒ„†…„‚ƒƒ‚ƒ‚€~|}~€€€~~~}€~}~~|{|‚ƒ‚‚‚‚‚ƒ„†††…ƒ‚ƒ„ƒ‚‚‚‚ƒƒ……………………†††……„„„€€€€€€€€€€€€€€€€ƒ†…}}|{|||{||}}|~ƒ‰‰‡†‰‡‡‡†‡‡ˆˆˆƒ‚„ˆˆ‡ˆ‡‡ˆ…ƒ€‚ƒ†ˆ‰ˆ‡‡„„„‚€‚‚ƒƒ„……„„„„„„„„„„„„……††Š‹‹Šˆ……„‚ƒ………‡ŠŒŽ”––•””’‘“””“’‘‘‘‘’ˆ‚€€€„‰Š‰‰‰‹Šˆ‡‡‰Šˆ…ƒ‚‚……‡‡ˆ‡‡††‚~€„ƒ‚‚ƒ†‡‡†ƒ‚ƒ‚‚€‚€€€ƒƒ„„…„……††‡‡‰‰ŠŠŠ‹ŒŽŽŽŠ‡†‡‡‡…ˆˆ‡†„ƒ‚‚~}|||}~~~~~€‚ƒˆ‡†ƒƒ‚‚‚ƒ‚ƒ‚‚‚‚‚‚‚‚‚ƒƒƒƒ†…„„……„ƒ„„„„„………†………………†…‡‰‡…‚‚ƒ‚‚‚€€‚‚ƒƒ‚‚‚‚‚‚‚‚‚‚€€€‚ƒƒƒƒ€€€€€€€€€€€€€€€€~~ƒ‡‹ŒŒ‹ŒŒ‹ŠŠŠ‹‹ˆƒ~zzzz{zz|{zyz|~}zwxyx|{|ƒ†‡‡ˆƒ~}~€€ƒ††…„€€~}~~~~~~~~{{z{zzzzvuuvx{~|}}}||zzuvwvtsttwwvvuuuuvvvvwwwwtux}~{suwwvuuuutuz„ƒ„…„€|{}z{}~~~|{x~zttvvz}€€€€€€€€€€€€€~€~}|~~}}{{zzzzyyxxxxz{}~€~~~~~~~~~~~~|}}~~€€wy{~€‚ƒƒ„…„…„…„…„…††„ƒ‚‚‚€‚‚‚€~|}~€€€~~~~€~~~~|{|‚ƒ‚‚‚‚ƒ„†††…ƒ‚ƒ„‚‚‚ƒ„„„„………††‡‡††…………€€€€€€€€€€€€€€€€ƒ†…}}|{||||||}}|~ƒ‰‰‡†‰‡‡†‡†‡ˆˆˆ„…ˆˆ‡ˆ‡ˆˆ†‚€€‚…ˆŠ‹ŠŠŠ‡‡…„‚‚ƒ„‚‚‚ƒƒ„„„„„„„„„„„„…………††‡Š‹‹‹ˆ†……ƒ„…††ˆŠŽ’”••””’‘‘’“““’‘‘‘‘’“‹ƒ€€ƒ‡ŠŠ‰ŠŠŠˆ‡…‡‰‡…‚‚‚ƒ„…‡‡ˆ‡‡…~~}}ƒƒ‚‚ƒ†‡‡†ƒƒ‚‚€‚€‚‚ƒƒƒƒ„„„…†‡ˆ‰Š‹‹‹ŒŽŽŽŽŠ‡†‡ˆ†…ˆˆˆ‡†……„€~}|}}~‚„…ˆ‡…„‚‚‚‚ƒƒ‚‚‚‚€‚‚‚‚ƒƒ„„ƒƒ„…††…„„„„„„„„†………………†…‡ˆˆ…ƒ‚ƒ‚‚‚€€‚‚ƒƒ‚‚‚‚‚ƒ‚ƒ‚‚‚€€€‚‚‚„„„ƒ‚€€€€€€€€€€€€€€€€}|~†Š‹‹Š‹‹‹Š‰ŠŠ‹ˆƒ~{yzz|{{||yxyvyzxx{}}zz{~ƒ‡ˆˆˆƒ~~}~€~}€„†……‡ƒ€€~‚}}}}}}}}}||{zyyxwvvvxz|~}}~}|zyxuvwvutuvwwwvvuutvvvvwwwwtvy}~{rtvvutttvxz~‚‚‚‚‚€}|||||~}|zw}yttvvz}€€€€€€€€€€~€€€}|~~}||{zzyyyyxxxxz{}~€~~~~~~~~~~~~~~~~~~~xy|‚ƒ„„…„…„…„…„…†‡†„‚‚‚‚ƒ‚€~~~}|~~~~~~~~~|{|‚ƒ‚‚‚ƒƒ†††…ƒ‚ƒ„„ƒ‚‚‚ƒ„…ƒƒƒ„……††‰‰‰ˆˆ‡‡‡€€€€€€€€€€€€€€€€ƒ†…}}|{||||||}}|~ƒ‰‰‡†‰‡‡‡†‡‡ˆˆˆƒ‚„ˆˆ‡ˆ‰‰‰†‚€‚…ˆŠ‹ŠŠ‹‰‰ˆ…„ƒ„…ƒƒƒƒƒƒƒƒ………………………………††‡‡Š‹ŒŠˆ†……ƒ…††‡ˆ‹Ž‘’“””‘‘‘‘‘“”’‘‘‘‘’“‰€‚…Š‰‰‰‹Šˆ‡„†‡‡„‚‚ƒ‚ƒ…†ˆˆˆ‡…€}|||ƒƒ‚‚ƒ†‡‡†ƒƒ‚‚‚€‚‚‚‚‚‚‚‚‚ƒƒ„„…†‡ˆ‰Š‹ŒŒŒŽŽŽŠ‡†‡‡‡…†††††††…„ƒ‚€€€ƒ„†‡ˆ‡…ƒƒ‚‚‚ƒƒ‚‚‚ƒ‚€€‚‚‚ƒƒƒƒƒƒƒ„…†††„„„„„„„„†………………†…‡‰‡…‚‚ƒ‚‚‚€€‚‚ƒƒ‚‚‚‚ƒ‚ƒ‚€‚ƒ‚‚ƒƒƒ‚€€€€€€€€€€€€€€€€€{{|€…ˆŠ‰ŠŠ‹Š‰‰‰Š‹ˆƒ~{yzz}{{}{xww{}}ywxyxyxz}‚†‡‡‡‚~}~€ƒ††„„‡…‚€„}}}}}}||€€~|{zzxwvvwy{|}{ywvtvxwutvxwwwvuuttvvvvwwwwtvy~‚{tttsrrtvx{‚€~~}zx}~€~|{w}~yttuvz}€€€€€€€€€€€€~€€}|~~}}{{zzyyyyxxxxz{}~€~~~~~~~~}y{}€ƒ…††„…„…„…„…†‡‡†„‚‚‚‚€~€}}}}~}~€€~~}|}~~|~|{|‚ƒ‚‚‚ƒƒ†††…ƒ‚ƒ„†…„ƒƒƒ„…‚‚ƒƒ„……†ˆ‡‡‡††††€€€€€€€€€€€€€€€€ƒ†…}}|{||||||}}|~ƒ‰‰‡†‰‡‡††‡‡ˆˆˆƒ…ˆˆ‡ˆ‰Š‰†‚€€ƒ‡‰‰ˆ‰Šˆ‡†ƒ‚ƒƒƒƒƒƒƒ‚……………………………††‡‡‡Š‹Œ‹ˆ†……ƒ…†‡‡ˆ‹Ž‘‘’““‘’‘’”’‘‘‘‘’‡~}~…Š‰‰ŠŠŠˆ‡‚„††„‚‚ƒ‚„†‡ˆˆˆ„€||{|ƒƒ‚‚ƒ†‡‡†ƒƒ‚‚€‚‚‚‚‚‚‚‚‚ƒƒƒƒ…†‡ˆ‰‹ŒŒŒŽŽŽŠ‡†‡‡†…„„„„…………‡†…ƒƒƒƒ„‚‚‚ƒ„†ˆ‰ˆ‡…„‚‚‚‚ƒƒ‚‚ƒ‚€€€‚‚‚ƒƒƒ„„…†…„ƒ„…„„„„„„„„†………………†…‡ˆˆ…ƒ‚ƒ‚‚‚€€‚‚ƒƒ‚‚€‚‚€„ƒ‚‚ƒ„‚‚‚‚‚€~€€€€€€€€€€€€€€€€€‚‡‹‹ŠŠ‰‰ˆˆ‡ˆ‡‚|yz{y{{{zyxxx|}}{yxy{|yxy„ˆŠ…„‚€€€‚ƒ…†‡‡ˆ‡~~‚€€|}~~}|€~}|}}}|||{{{{{{~}|{yxwvuuuuvvwxwvvuuuvvvvvvvvvvttv{‚}yuvvussux~„„~zz{{{{||{}~~|zxz{|zwuvxy~‚€€€€€€€ƒ€~€€~€€€€}{}{zyz{||{zxxwww{|}€€€€€‚‚‚€€~€{{|~ƒ…††………………………………„ƒ‚€€‚}~~~~~~~~|}~~}|~}}}~~}|}|}€ƒ„ƒ‚‚ƒ‚‚ƒ…‡‡†„‚‚ƒ‚‚‚‚‚‚‚‚€‚„…†††ˆ‡‡††……„€€€€€€€€€€€€€€€€‚ƒ‚€|z{}||||||||}„‰‰……‡‡‡‡‡ˆˆ‰‰ˆ†……‡‰‰ˆˆ‰ˆ„€ƒ„†ˆŠ‰‰ˆ†…„‚€€€‚‚ƒƒƒ„„„„„„„„„„„……„„„…††„…‡ˆˆ†„ƒ………‡‰‹‘‘‘‘‘‡}~ƒ‡‹Šˆ‰‹ŒŠ‰…„ƒ‚‚ƒ…†‡‡‡‡‡‡‡‡„‚~||~€ƒ…ƒ‚ƒ†‡†„„ƒ‚‚‚‚‚‚‚€€€€‚‚€€‚ƒ‚ƒ…„…†‡‰Š‹ŒŠ‹ŒŠ‰ˆ‡†††††…„„ƒƒ„„†…………„„„‚‚ƒ„…†ˆ‡…„‚‚‚‚„„ƒƒƒ‚‚‚‚‚‚‚‚ƒ‚ƒ………………„„„…„ƒ„………„…………††††„†ˆ‡„‚‚‚€‚‚‚‚€‚‚ƒƒ‚‚€€€‚~€‚„„„ƒ‚€€€€€€€€€€€€€€€€†††ˆŠ‹‹‹‹‹ŠŠ‰ˆˆˆ‰‰„}z||{z{{{zzzz{||{xxy{{yx{€…ˆ‰ˆ†ƒ~~~ƒ„…†††ƒ|~‚€€€€}}}}|{zz{{|||}|{zywvuuuuuuvvwxwvvuuuuvvvvvvvvvttv{‚}yuvvussux€‚‚€~zzzzyyyy{}~~}zxz{|zwuvxy~€€€€€‚€~€~€€€€}{~}{zyz{|{{yxxwwx{|}€€€€€‚‚‚‚€€€~€€{z{~‚………………………………………„ƒ‚ƒƒ‚ƒ„„|||}~€~~}}}}~~~~~}|}~}|}€ƒ„ƒ‚‚ƒ‚‚ƒ…‡‡†…‚‚ƒ„„„ƒƒƒ‚‚€ƒ„†††…ˆ‡‡††………€€€€€€€€€€€€€€€€€~|{{|||||||||}„‰‰†…‡‡‡‡‡‡ˆ‰‰ˆ†„…‡‰‰ˆˆ‰‡…€ƒ…‡ˆˆ‡†ˆ‡…ƒ‚‚ƒƒƒƒ„„„„„„„„„„„……„„„…††‡††…„………‡‡‡‰Š‘‘‘‘‘‘‘‘‘Žˆ‚}~‚‡‹Šˆ‰‹ŒŠ‰„„‚‚ƒ„†‡‰‰‰‰‰‰‰‰„‚||~€‚…ƒ‚ƒ†‡†„„ƒ‚€‚‚‚‚‚‚€€€‚‚‚‚€‚ƒ‚ƒ………†‡‰Š‹‹Š‹ŒŒŠ‰ˆ‡†††††…„„ƒ„„„„…„……………‚‚‚„…‡ˆ‡…„‚‚‚‚„„ƒƒ‚‚‚‚‚‚‚‚‚ƒ‚ƒ……………„„„„…„ƒ„………„……………†††„†ˆ‡„‚‚‚€‚‚‚‚€‚‚ƒƒ‚‚‚‚€€€~€‚ƒ„ƒ‚€€€€€€€€€€€€€€€€ˆ‰ŒŒŒ‹‹‹‹ŠŠ‰‰ˆˆˆ‹Š…~{}}|zzzzzzzzy{|zywyzyyz}‚†ˆ‡ˆ†ƒ~~~€‚„…………‚~{|~}~€‚€~~‚~~~}{yxyz{}~€{zyxwutsuuuuvvwwwvvuuuvvvvvvvvvvttv{‚~yuvvussvx€‚~}}zzzyxwww{|~}{yz{|zwuvxy~€€€€€€€€~€}{}|{zzz{{{zyxxxxx||~€€€€€€€‚‚‚€€€€zyz}„…„………………………………„ƒ‚„‚‚‚„ƒ}}~}~~~~}}~~~~}}}}~~}}€}|}€ƒ„ƒ‚‚ƒ‚ƒ…‡‡‡„ƒ‚ƒ……„„ƒƒƒ‚‚„…†††…‡‡‡††………€€€€€€€€€€€€€€€€}|}||{||||||||}„‰‰†…ˆ‡‡‡‡‡ˆ‰‰ˆ†„„‡ˆ‰ˆˆ‰ˆ„€€ƒ…†††…‡†…ƒ€€ƒƒƒƒ„„„„„„„„„„„„…„„„„…††‰‡…‚‚ƒ…†ˆˆ‰ŠŒŽ‘’‘‘‘‘‘‘‘‘‘“Š‚~~‚†‹Šˆ‰‹ŒŠ‰ƒ‚ƒƒ„†‡ˆŠŠŠŠŠŠŠŠ…ƒ}|~€‚…ƒ‚ƒ†‡†„„ƒ‚‚‚‚‚‚€‚‚‚‚‚ƒ‚ƒ………‡‡‰‰‹‹‹‹ŒŒŠ‰ˆ††…†††……ƒƒƒ„„ƒƒ„„…†††„ƒƒ†ˆˆ‡†ƒƒ‚‚‚ƒƒƒ‚‚‚‚‚‚‚‚‚ƒ‚ƒ…………„„„„ƒ…„ƒ„………„„„…„…………„†ˆ‡„‚‚‚€‚‚‚‚€‚‚ƒƒ‚‚„ƒ‚€€€€€‚ƒ‚‚€€€€€€€€€€€€€€€€…‰ŒŽŒ‹‹ŒŠŠŠŠ‰‰‰‰Š‰„~{|}{{zyyyyxwxz{{yxxzxx{„‡ˆ†…„‚€€€‚ƒ……†††|{~}{|~~}~€~zxwxy|~‚ƒ||zyxwuuuuuuuvvwwwvvuuuvvvvvvvvvttv{‚}yuvvussux€‚€}z{||{zzxxvvz|}~}{yz{|zwuvxx~€€€€~€€€~~€€€€}{||{{{{{{{zyxxxxx|}~€€€€€€€€‚‚‚‚€€€~€€yyy}€„„„………………………………„ƒ‚€‚‚}~~~~}~}}|}~~}||}}€~}}|}€ƒ„ƒ‚‚ƒ‚‚ƒ…‡‡†…‚‚‚ƒ„„„„ƒƒƒƒƒ„…††……„†††……………€€€€€€€€€€€€€€€€€}{{|}|z|||||||||~ƒ‰‰††ˆˆ‡‡‡‡ˆ‰‰‡…ƒ„†ˆˆ‡ˆ‰‡…€€ƒ…†††…†…ƒ€ƒƒƒ„„„„…„„„„„„„„„„„„„……†‡†„ƒ‚‚‚ƒˆˆˆ‰‹Ž‘‘‘‘‘‘‘‘‘Ž”‘Šƒ~~‚†‹Šˆ‰‹ŒŠ‰‚‚ƒ„†ˆ‰ŠŠŠŠŠŠŠŠŠ†„€}|~€‚…ƒ‚ƒ†‡†„„ƒ‚€‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚€ƒ…†††ˆˆŠŠŠ‹ŒŒŒŒ‰‰‡†…†…††…„„ƒ„„„‚‚ƒ„…‡‡ˆ†„€‚†ˆˆ‡…„‚‚‚‚ƒƒ‚‚‚‚‚‚‚‚‚‚€ƒ………„„„„ƒƒ…„ƒ„………„„„„…„………„‡ˆ‡„‚‚‚€‚‚‚‚€‚‚ƒƒ‚‚…„‚€€€€‚‚‚‚‚‚€€€€€€€€€€€€€€€€…ˆŽ‹‹ŒŠŠŠŠŠ‰Š‰ˆˆƒ|y{{z{zyyzyxwwy||{yyzyy{€…ˆˆ‡…„‚€€€€ƒ„……†…|{}~|{{}~~~}~~}{xvxz|‚„†~|{yyxvuuuuuvvwvvuuuvvvvvvvvvvttv{‚~xuvwussvx€~{xy{}}|{zyxxy{}~}|zz{|zwuvxx}€€~€€~~~~~€€}{{{{{|{{{zzyxxxyy|}~€€€€€€€‚‚‚€€€€yyz|ƒ„„………………………………„ƒ‚‚€€€‚}||}}~€~~}}}}~~}}~€€}}|}€ƒ„ƒ‚‚ƒ‚ƒ…‡‡‡„ƒ‚ƒ‚‚‚‚ƒƒƒƒ„„………„ƒ‚„„„„„„„„€€€€€€€€€€€€€€€€€}{z|}|z|||||||||~ƒ‰‰††‰ˆˆ‡‡‡ˆˆ‰‡…ƒƒ†‡ˆ‡ˆ‰ˆ„€‚…‡ˆ‡‡††…ƒ€ƒƒ„„…„……„„„„„„„„„„„ƒ„„……„„…„„‚€………†ˆ‹‘‘‘‘‘‘‘‘ŽŽ“‰‚}~‚†‹Šˆ‰‹ŒŠ‰‚ƒ„…ˆˆ‰Š‰‰‰ˆ‰ˆ‰‰‡…~}~€‚…ƒ‚ƒ†‡†„„ƒ‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚ƒ‚ƒ…††‡‡‰‰ŠŠŒŒŒŒ‹‰ˆ‡†…………†……ƒƒƒ„„‚‚ƒ„††‡ˆ†„‚…ˆˆ‡†ƒƒ‚‚‚ƒ‚‚‚€‚‚‚‚‚ƒ‚ƒ…………„„„„ƒ…„ƒ„………„„„„„…………„†ˆ‡„‚‚‚€‚‚‚‚€‚‚ƒƒ‚‚…„ƒ€ƒƒƒ‚‚‚‚ƒ€€€€€€€€€€€€€€€€ˆŠŒŒ‹‹‹ŠŠŠŠŠŠŠŠˆ‡‚{yz{y{zyz{}{zvz}~|{z{zz{„ˆ‰‰ˆ†ƒ~~~~€‚ƒƒƒƒ‚}z{{{{}}~€€~}~~}~~~|zwx{}€ƒ…†‚‚€}|{{vuuuuuuvwvvvuuuvvvvvvvvvttv{‚}yuvvussux€~|yxyz}}||{zyyy{}~|{z{|zwuvxw}€~€€~€~~~~~}~€€€€}{yz{|||{{zyyxxxyy}~~€€€€€€€‚‚‚‚€€€~€€zzz}„…„………………………………„ƒ‚ƒƒ‚ƒ„„}}}~~~~}}}~~~}}~}|}~€}|}€ƒ„ƒ‚‚ƒ‚‚ƒ…‡‡†…‚‚‚ƒ‚‚ƒƒƒ„„„……„‚€‚‚‚ƒƒ€€€€€€€€€€€€€€€€€~||{|{z||||||||{}ƒˆ‰‡‡Šˆˆ‡‡‡ˆˆˆ‡…‚ƒ…‡‡†ˆ‰‡…€‚ƒ…‡‰ˆˆ‡ˆ‡†„‚‚„„„„„………„„„„„„„„„„ƒƒƒ„……ƒ„……ƒ~|ƒƒƒ„†‰‹Œ‘‘‘‘‘‘’’‘‘ŽŽŽ‡}}‚‡‹Šˆ‰‹ŒŠ‰ƒ„†ˆˆ‰‰‰ˆ‰ˆ‰ˆ‰ˆˆ‰†‚~}~€‚…ƒ‚ƒ†‡†„„ƒ‚€‚€‚‚‚‚‚‚‚‚‚‚‚€ƒ…‡‡‡ˆˆ‰‰‰ŒŒ‹‹‰ˆ††…………†…„„ƒ„„„ƒƒ„……††‡†„€€‚„†ˆ‡…„‚‚‚‚‚‚‚‚€€‚‚‚‚‚‚‚€ƒ…††…………„„…„ƒ„………„„„„……………„†ˆ‡„‚‚‚€‚‚‚‚€‚‚ƒƒ‚‚ƒƒ‚‚ƒ„†…„ƒƒƒ„„€€€€€€€€€€€€€€€€†††ˆŠ‹Œ‹ŠŠŠŠŠŠ‹Š‰ˆƒ}z{|z|zyz|}|{wz~€}||}{{}‚‡Š‹ˆ†ƒ~~~~~€‚ƒƒƒ‚~{{|z{}~~~~~~~~~}}}~~}|yz|~ƒ…†ƒ‚€}|{vuutuuuuwvvuuuvvvvvvvvvvttv{‚~yuvvussux€}{yyzyyzzzzzzzzxz}~~}{z{|zwuvxw|€~~€~~}~~}~~}}€€}{yy{|}||{yyxxxxyz}~€€€€€‚‚‚€€~€{z{~‚…†…………………………………„ƒ‚„‚‚‚„ƒ~~~~}}}|}~~}|€€~|z{~€}|}€ƒ„ƒ‚‚ƒ‚ƒ…‡‡‡„‚‚ƒ‚‚‚ƒƒƒ„„ƒ„„ƒ‚~~€€€€€€€€€€€€€€€€€€€€}{zz{||||||||{}‚ˆ‰‡‡Šˆˆˆ‡‡‡ˆˆ†„‚ƒ…‡‡†ˆ‰ˆ„€‚ƒ…‡ˆˆ‡‡‰ˆ†…ƒƒ‚‚„„„„……††„„„„„„„„„ƒƒƒƒ„………„„‚~}‚‚ƒ„†ˆŠŒ‘‘‘‘‘’‘‘‘ŽŽŽŽŠ…|}ƒˆ‹Šˆ‰‹ŒŠ‰…†‡‰‰‰ˆ‡ŠŠŠŠŠŠŠŠ‰‡‚}~€‚…ƒ‚ƒ†‡†„„ƒ‚‚€€‚‚‚‚‚‚‚€€‚‚‚ƒ‚ƒ…‡‡ˆˆˆˆ‰‰ŒŒ‹Šˆ‡‡……„……†…„ƒƒƒ„„„„…………………„ƒ‚‚‚ƒ„ˆ‡…ƒƒ‚‚‚‚‚‚€€€‚‚‚‚‚ƒ‚ƒ…†††††…………„ƒ„………„………………††„†ˆ‡„‚‚‚€‚‚‚‚€‚‚ƒƒ‚‚‚‚ƒ…†‰ˆ†„„„…†€€€€€€€€€€€€€€€€€‚‡ŒŠŠŠŠŠ‹‹‹ŠŠ…~{}}|}{yz{|zxw{€~}}~|z|‡‹…„‚€€€€ƒ„„„„€}|~~|zz}|{zz{|}~}||}~~~z{|ƒ…†‚‚~}|{vuuutuuuwvvuuuuvvvvvvvvvttv{‚}yuvvussux€|yxy{zyxxxxyyyyxz|~~}{z{|zwuvxw|€~}€~~}}~}~~}}€€€€}{xy{}}}|{yyxxxyyz}~€~€€€€‚‚‚€€~€€{{{~‚…††………………………………„ƒ‚€€‚}||}}~~~}}}}~~}{|}}}}|}€ƒ„ƒ‚‚ƒ‚‚ƒ…‡‡†…‚‚ƒ„„„„„„ƒƒƒƒƒƒ~|}}~~€€€€€€€€€€€€€€€€€€€€~zyz{||||||||{}‚ˆ‰‡‡Šˆˆˆ‡‡‡ˆˆ†„‚ƒ…‡‡†ˆ‰ˆ„€‚…‡ˆˆ‡†ˆ‡†„‚‚„„„………††„„„„„„„„ƒƒƒƒƒ„„…‡…‚€~~~ƒƒƒ„†‰‹Œ‘‘‘‘‘‘‘‘ŽŽŽŠˆƒ~{}ƒˆ‹Šˆ‰‹ŒŠ‰†‡ˆŠŠ‰‡†‹‹‹Œ‹‹‹‹Š‡ƒ}~€‚…ƒ‚ƒ†‡†„„ƒ‚‚€€‚‚‚‚‚‚€€€€‚‚ƒ‚ƒ…‡‡ˆˆˆˆ‰‰Œ‹Šˆ‡†…„„„…†…„„ƒƒ„„†…………„„„„ƒƒƒƒƒƒƒˆ‡…„‚‚‚‚‚‚€€€€‚‚‚‚‚ƒ‚ƒ…‡‡††††………„ƒ„………„…………††††„†ˆ‡„‚‚‚€‚‚‚‚€‚‚ƒƒ‚‚€€€‚…‡ˆ‹‰‡…„…†‡€€€€€€€€€€€€€€€€‚„‡ŠŒŒ‹ŠŠ‹ŒŠ‰‡†„|xyyyzzzzzvux~€}}~{{}€…ˆˆ‡‡†„‚€€€€‚ƒ„…zwxzz|{{{{{|}}{||{~€}z{|}~€€xwutttvwxwvutuuvyxxwvvuuttw{€|vutsstuvzzzzzxwvttuuwwxxzyy|€€|xy~~yvwxvx{€~~}}~~}}}}~~€€€€‚ƒ}yz{}~~}{zyyxxyz{|€€‚‚‚‚‚‚‚‚‚‚‚€{z{~‚…†……„„„„…††‡…………‚‚ƒƒ‚‚‚€|}~~~~€~~€€~}~€~|{|‚ƒ‚‚‚‚€„†ˆ‡…„ƒ‚‚‚‚ƒ„„ƒƒƒ…‚ƒ„…„{www{}~€€€€€€€€€€€€€€€€‚~~}|z{{{{{{{{}}ƒ…†‡‡‡‡‡ˆˆˆˆ„„‚€ƒ‰‹ˆ‡Šˆƒ€‚ƒ…‡‡‡†…‡†…ƒ‚‚‚‚„„…………„„……………………ƒƒƒƒ„…†‡………„ƒƒ‚‚ƒƒƒ„…††‡‹’““““‘‘ŽŽŽŽŽ‡†ƒ|}‚†‰Š‹ŒŒ‹Š‰‹‰‡††ˆ‹‘’““‘‹†}|…„ƒ‚ƒ†‡†„„ƒ‚€€‚‚€€‚ƒƒ„‰ˆ‡††ˆŠ‹‹ŒŽŽ‹‡…………………………„„„„„„ƒƒƒ„…………„„…†…„ƒ„„†‡†„€ƒ‚‚‚€€ƒ‚‚‚‚‚ƒ‚„ƒ‚ƒ„………„ƒ‚ƒƒƒ„„………„„„……††††…‡‰†„‚‚‚‚‚€€‚ƒƒ‚‚‚‚‚„ˆŒŠŒ‹†„†ˆˆ€€€€€€€€€€€€€€€€‚‚‚„‡Š‹ŒŒŒŠŠŠŠŒŒ‹‰ˆ‡†ƒ|zzzzzzzzwvy~|{}{{|…ˆˆ‡‡†…ƒ‚€€€€‚ƒ„……€{xyyz{~||||||{{z{{{}€|{{|}~€€zywuttuuwwvvuuuuxxwwvuuuttw{€|vvtsstvvzzzzyxwvsstuvwwxzyz}|yy~~yvwxvx{€~~}~~~~}}}~~€€€€€‚‚}yz{}~~}{zzyyyyz|}€€‚‚‚‚‚‚‚‚‚‚€{z{~‚…………„„„„…††‡…„…„‚‚‚‚‚‚€}~€€~~~}}}~~€~~€~|{|‚ƒ‚‚ƒ‚€ƒ†ˆ‡…„ƒƒ‚‚‚ƒ„„ƒƒ„„‚ƒ„…„|xyy|‚€€€€€€€€€€€€€€€€€€‚€~~~}|z{{{{{{{{|}~€ƒ„…†††‡ˆˆ‰‰††ƒ€ƒ‰Š‡‡Šˆƒ€‚ƒ…‡ˆ‡†…‡†…„‚‚‚‚„„…………„„……………………„„„„„……†………„ƒƒƒ‚ƒƒ„„…††‡‹ŒŽ‘’“““ŽŽŽŽ‡†ƒ|}†‰Š‹ŒŒ‹Š‰‰ˆ‡†‡‰ŒŽ‘’“”“’ŽŒ†}|…„ƒ‚ƒ†‡†„ƒƒ‚€‚‚€€‚‚ƒ„„‰ˆ‡†‡ˆŠ‹‹ŒŽ‹‡…………………………„„„„„„ƒƒƒ„…………„„…†…„ƒ„„†‡†„€ƒ‚‚‚€€ƒ‚‚‚‚‚ƒƒ„ƒ‚ƒ……„„ƒƒƒƒƒƒƒ„„………„„„……††††…‡‰†„‚‚‚ƒ‚€€‚ƒƒ‚‚‚‚‚„ˆ‹Œ‹†ƒ†ˆˆ€€€€€€€€€€€€€€€€ƒƒ„…‡‰‹ŒŒ‹ŠŠŠŠ‹Œ‹Šˆˆˆ‡„}}||{zyyxwy~{z{{{}€…ˆˆ‡‡†…ƒ€€€€‚ƒ„„…|yyzyz|}}}}|{zy{||{}~||}}~€€|{ywutttvvvvvuuuvvvvuuttttw{€|wvuttuvwzz{zzxwvrrstuuvvyy{}~|yy}yvwxvx{€~~~~~}}~~€€€€€‚€}z{|}}~}|{{zzyz{|}€€‚‚‚‚€{z{~‚…†……„„„„…†††„„„„‚ƒ‚‚€~€€€~~~~}}}}}}€€€~|{|‚ƒ‚‚‚‚€„†ˆ‡†„ƒ‚‚‚‚ƒƒƒƒƒ„„‚ƒƒ„„|xzz}‚ƒ€€€€€€€€€€€€€€€€€~}~}|{|||||||||}}~€€„„…†ˆ‰ŠŠˆˆ…ƒˆ‰†‡Šˆƒ€‚„†‡†……†…„‚‚„„…………„„……………………†††…………………„„„ƒƒƒƒ„„……††‡Š‹‘’““‘‘‘ŽŒ‹Š‰ˆ‡„||…ˆ‰Š‹‹Š‰ˆ‡‡††ˆ‹Ž‘’”••“‘Œ†~|€…„ƒ‚ƒ†‡†„„ƒ‚€‚€€‚ƒƒ„„ˆ‡††‡ˆ‰ŠŠ‹ŒŒŠ‡†………………………„„„„„„ƒƒƒ„…………„„…†…„ƒ„„†‡†„€‚‚‚‚€€ƒ‚‚‚‚‚„ƒ‚‚ƒ…„ƒƒƒƒ„…ƒƒ„„„………„„…………†††…‡‰†„‚‚‚‚‚€‚ƒƒ‚‚‚‚‚„ˆ‹‹„‚„‡ˆ€€€€€€€€€€€€€€€€„„…††ˆŠŒ‹‹ŠŠŠŠ‹‹ŒŠ‰‰ŠŠˆ†„ƒ~|zxwwvy~|{}{{|…ˆˆ‡†…ƒ‚€€‚ƒƒ€|yz{z{}||}~}{zy{{z{{}}}}}}~€€~}{yvussuvvwwvutuuuuuuuuttw{€|xwvuuvwx{{{{yxvurrrssttuxy{~~~{zy~~yvxxvx{€~~€~~~~€~€€€}{|}}}}}||||{{z{|}€€€‚‚‚€{{{~‚…………„„„„…†††„ƒ„ƒ€‚‚‚‚‚€€€€~~~~~~~}}~€€~~~~|{|‚ƒ‚‚ƒ‚€ƒ†ˆ‡…„ƒƒ‚‚ƒƒƒƒƒƒ„„‚‚ƒ„ƒ}yzz}‚ƒ€€€€€€€€€€€€€€€€€€~}}}~|{|||||||||||}}}}}‚ƒ…†‰ŠŠŠ‰†‚ƒˆˆ…‡Šˆƒ€€ƒ…†…„„……ƒ‚€€€€„„…………„„……………………††††††……„„„„„„ƒƒ„„……††††‰Š‹Ž‘’“’‘Ž“’Ž‹‰‡†‰ˆ„€||€„ˆ‰Š‹‹Š‰ˆ…††ˆ‰‘’“•––”’‘†~~€„„ƒ‚ƒ†‡†„ƒƒ€€‚€€‚ƒ„„…†††‡‡ˆˆ‰‰Š‹‹Š‰‡†………………………„„„„„„ƒƒƒ„…………„„…†…„ƒ„„†‡†„€ƒ‚‚‚€€‚‚‚‚‚ƒƒƒ‚ƒ„„ƒƒ„„…†„„„„…………„…„……†…††…‡‰†„‚‚ƒ‚‚€€‚ƒƒ‚‚‚‚‚‚‚ƒˆ‹‘‹„€ƒ†ˆ€€€€€€€€€€€€€€€€…†‡‡†‡‰‹‹‹‹‹‹‹‹‹Œ‹‰‰Š‹ŠˆŠˆ…‚~{xwwvy}}{{}€…ˆˆ‡„ƒ‚€~~~~~€€{yz||}~z{}}}|{zyyyyyy{|~~~€~}{yvtstuvwwvvuuuuuvvvvttw{€|yxwvvwxy{{|zzwvurrsrssttwy|~~}|{y}yvwxvx{€~~€€€~~~~€~~~€~|~}}}}}~~~}|{{|}}€€‚‚‚‚€{z{~‚…†……„„„„…†††„ƒ„ƒ€ƒ‚‚‚€€~}}}~~~~~~~}}}~~~}}}}}~|{|‚ƒ‚‚‚‚€„†ˆ‡†„ƒ‚‚‚ƒƒƒƒƒ„„„ƒ‚‚ƒƒ}zyy|‚€€€€€€€€€€€€€€€€€€~}||~~}|||||||||||||||||€‚ƒ…†ˆˆ‰‰…ƒ‡ˆ…‡Šˆƒ€ƒ…†‡‡†…‡…„ƒ‚„„…………„„……………………„…††‡††…ƒƒ„„„„„„………†††††ˆˆŠ‹Ž’““‘‘‘‘’‘Š‡…„‰ˆ…|{€ƒ‡ˆ‰ŠŠ‰ˆ‡……‡ˆ‹‘’“•––•“’Ž…~~€ƒ„ƒ‚ƒ†‡†„„ƒ‚€€€€€€€€‚‚„„………††‡‡ˆˆˆˆ‰‰‰‰ˆ‡‡………………………„„„„„„ƒƒƒ„…………„„…†…„ƒ„„†‡†„€‚‚‚‚€€‚€‚‚‚„ƒ‚‚ƒƒƒ„……………„„„…………………………………†…‡‰†„‚‚ƒ‚‚€‚ƒƒ‚‚‚‚‚‚‚‚ƒ‡Š’‘Œƒ€‚†‡€€€€€€€€€€€€€€€€†ˆ‰ˆ†…ˆ‹‹‹‹‹‹‹‹‹ŒŠˆˆ‰ŠŠ‰Œ‹ˆ…‚|{zy|}{{|…ˆˆ‡„ƒ€~~}}~~€€€~zy|}}}z{||}}|||{{|{z|~}zxutuuuvvvvvvvvwwxxxttw{€|zyxwwxyz||{{ywutsssssssswz}}|{{y~~yvxxvx{€~~~€€~~~~~~|}~~}~}}|}~}}|}}~€€€‚‚€{{{~‚…………„„„„…†††„ƒ…ƒ‚‚‚‚‚€€~}}}~~}}}}}}||}}}}}}||~|{|‚ƒ‚‚ƒ‚€ƒ†ˆ‡…„ƒƒ‚‚ƒƒ‚ƒ„„„ƒƒ‚‚ƒƒ~{yy|‚€€€€€€€€€€€€€€€€€€}|{|}~}|||||||||}}}}}~~~~‚ƒ„…‡‡ƒ€‚‡ˆ…‡Šˆƒ€ƒ…‡ˆ‰‰ˆ‡ˆˆ†…ƒƒƒƒ„„…………„„……………………ƒ„…‡††……ƒƒƒ„„„……††††††††‡‡ˆŠŒ‘“““’‘‘‘‘’Ž‹‰‡…„Š‰…€{{ƒ‡ˆ‰ŠŠ‰ˆ‡…†‡ŠŒŽ‘’”––•”’Ž…}~€€‚„ƒ‚ƒ†‡†„ƒƒ€€€€€€€€€€€€‚‚ƒ„………„…†‡ˆ‡‡†ˆˆ‡ˆ‡‡‡‡………………………„„„„„„ƒƒƒ„…………„„…†…„ƒ„„†‡†„€ƒ‚‚‚€€‚€‚ƒƒƒ‚ƒƒƒ…††……„…………………………………………†…‡‰†„‚‚‚ƒ‚‚€€‚ƒƒ‚‚‚‚‚‚‚‚ƒ‡Š‹…ƒ†‡€€€€€€€€€€€€€€€€‡‰Šˆ……‡ŠŒŒŒŒŒŒŒŒŒŠ‡†‡ˆˆ‡ŠŠˆ‡†„ƒƒ€~€ƒƒ}{|{{}€…ˆˆ‡…„ƒ€~€€€€{z|~||}{{{|||}}~}}}|{}€€€€~|ywuuuuuvvwwwwxxyyzzttw{€|{zyxxyz{|||{ywuttttstsssvz~}{{|y~~yvwxvx{€~~~~~€~~~~}||~~}€}||}€€~}}}}~€€€€€€€€€€‚‚‚€{z{~‚…†……„„„„…††‡…„…„‚‚ƒ‚‚‚€}~~~~}}~~~}||}}}}}}}|~|{|‚ƒ‚‚‚‚€„†ˆ‡…„ƒ‚‚‚ƒƒ‚ƒ„„„ƒƒ‚‚‚‚~|zz}‚ƒ€€€€€€€€€€€€€€€€€|{{|}~~}{{{{{{{{}}~~€€€~~~€€„„~‡ˆ…‡Šˆƒ€‚„†‡ˆˆ‡†ˆ‡…„ƒ‚‚‚„„…………„„……………………„„†††…„‚‚ƒƒƒ„………††††††††††‡ˆ‹Ž‘““““““’’’ŽŒŠˆ‡……‹‰…€{{‚†‡ˆ‰‰ˆ‡††‡‰ŠŒŽ‘“•–•“’…}}€€€‚„ƒ‚ƒ†‡†„„ƒ‚€€€€€€€€€€€€€€€‚‚ƒƒ„……†ƒ„†‡ˆ‡†…‡‡††††‡‡………………………„„„„„„ƒƒƒ„…………„„…†…„ƒ„„†‡†„€‚‚‚‚€€‚€€‚‚„ƒ‚‚ƒ„„…………………………………………………………†…‡‰†„‚‚‚‚‚€€‚ƒƒ‚‚‚‚‚ƒƒ‚ƒ†‰ŽŒ†ƒ„††€€€€€€€€€€€€€€€€‡Š‹‰…„‡ŠŒŒŒŒŒŒŒŠ†…†‡‡†‡‡ˆˆˆ‰‰‰…ƒƒ…ƒ|yy{{|…ˆˆ‡‡†„‚€€€‚‚‚‚‚‚€}{}}|{|{{{{{|}}|zz{yxz€€€€€~~~}zxvvuutuvwxxxyyz{{|ttw{€|{{yyyy{{}||{ywusttttttttvz~}{{|y~~yvwxvx{€~~~~~~~€~~~~}{|}~~€}||}€€~}}}~€€€€€€€€€€‚‚‚€{z{~‚…†……„„„„…††‡………„‚‚ƒƒ‚‚‚€|}€‚}~~~}}~~~~~}}}~|{|‚ƒ‚‚‚‚€ƒ†ˆ‡…„ƒ‚‚‚„ƒ‚ƒ„„„ƒƒ‚‚‚‚~|{{~ƒ„‚‚€€€€€€€€€€€€€€€€|{z|}~~}{{{{{{{{}~~€‚‚}}}~~~~~‚‚€}€†ˆ†‡Šˆƒ€€ƒ…†…„ƒ…„ƒ€€€€„„…………„„…………………………†‡†„‚‚‚ƒƒ„………‡‡‡††††††…†‡Š‘““””••”’‘Œ‹Šˆ‡†…‹‰…€{{~‚†‡ˆ‰‰ˆ‡††‡‰‹ŽŽŽ‘“••”“’…}}€€€„ƒ‚ƒ†‡†„ƒƒ‚€€€€€€€€€€€€€€€‚‚ƒƒ„…††ƒ„†ˆˆ‡†…‡††……†‡ˆ………………………„„„„„„ƒƒƒ„…………„„…†…„ƒ„„†‡†„€ƒ‚‚‚€€€€€ƒ„ƒ‚ƒ†…„„„„…†…………………………………………†…‡‰†„‚‚‚ƒ‚€€‚ƒƒ‚‚‚‚‚ƒƒ‚ƒ†‰ŒŽŒ‡„…††€€€€€€€€€€€€€€€€†‡‰‰ˆˆ‰ŠŒ‹‹‹‹‹Š‹‰†…„„…ƒ…†…‡Šˆ…ƒ…†…ƒ€vvx~†ŠŠ‡‡‡…ƒ€€ƒ‚‚‚‚ƒ„……€|}~}}~~|z{}{}€€~~~€~}{yxwqsuvuvxz|{xwvwyzyxy|}|zwuuw{}~}zxvvvwwvusssstwy{}}|{yy}~zxyzyy|~~~€~~}~€~~~~~~~~~~~}}|~}}}}€‚€~|||}~€€ƒ‚‚€€‚‚‚‚‚€{z{~‚…†……………ƒƒ…†††……„‚€‚€€€y{~€€~|~|z|€|||}~~}||~|{|‚ƒ‚‚ƒƒƒ‚‚„††††„‚‚ƒ„ƒƒ‚ƒƒ„„ƒƒƒƒƒ‚€‚€„…‚‚ƒ€€€€€€€€€€€€€€€€~z{|{~}{{||||{{~~€€€€}}~~}}~‚‰ŠŠ†€‚€‚…‡†ƒ€‚‚€~€…‡…„…†…†…„ƒ„„‚‚‚‚‚††††††††††‡‡‡‡††„„…†Š‘”•””••”‘ŽŒ‹‰‡††††ˆ‡„{{ƒ†‡‰ŠŠˆ†„…‡‹ŽŽŽŽ’””’Ž†~~€ƒ„‚‚ƒ…†…„ƒ‚€€€€€€€€€€€€€‚‚€€€€‚„…†‡‡‡‡‡††††„„……††‡‡‡††……„„ƒ„ƒƒ‚‚ƒ…………„„„…††……………………‡†…ƒ‚‚‚‚‚€€€€€€‚‚ƒƒƒ„„„ƒƒƒƒ‚„„„„„„„„†……„„………†ˆ‰ˆ…‚‚‚‚ƒƒ‚‚‚‚ƒ‚‚‚‚‚ƒƒ…„„ƒƒ„……€€€€€€€€€€€€€€€€‰Š‹Šˆ‡‡ˆŒ‹‹‹‹ŠŠŒ‹‰‡†…„„„††…†‡…y|~~}|~€{{}‚…ˆ‡†„„„ƒ‚‚ƒƒ……„„„…†‡„{}}||~}{|~|~‚€€€€~~€~}|{zzvvvtssvy}|{yyyyywvw{}|zwuuxz}|{ywvvvwwvuttttuxz|~~}|zx|}ywyzxy|~~~~€~~~€€€~~~~~~~~~~}}}}~}}}}~€€~}|}}~~€ƒ„‚‚ƒ‚€€€€‚‚‚‚€{z{~‚…………………ƒƒ…†ƒ„„„„„ƒ‚€€€|}~~~~}}|||}~~}|~~|{|‚ƒ‚‚ƒƒƒ‚‚„††‡†„‚‚ƒƒƒƒƒ„„ƒƒƒƒƒƒ‚€‚€„„‚€€€€€€€€€€€€€€€€~z{|{~}||{{{{||}}€€€€€~}}}}~€†††ƒ}~€€ƒ……‚€€€€€€…‡…„…†…†…„ƒƒ‚€‚‚‚‚‚……………………†††‡‡‡†††††‡ˆ‹Ž‘‘‘“••“‘Œ‹‰‡††††ˆ‡„{|ƒ‡ˆ‰‹Š‰‡††ˆ‹ŽŽŽ‘””’Ž†~~~€ƒ„‚ƒ…†…„ƒƒ€€€€€€€€€€€€‚‚€€€ƒ„…†‡‡‡†‡††††„„……††‡‡††……„„ƒƒƒƒƒƒƒ„„…„„„„„……†……………………‡†„ƒ‚‚‚‚€€‚€€‚‚‚ƒƒƒ„„„„ƒƒƒƒ„„„…„„„„†……„„……††ˆ‰ˆ…‚‚‚‚ƒƒ‚‚€‚ƒ‚‚‚‚ƒƒ‚‚ƒ„…€€€€€€€€€€€€€€€€Š‹‹Šˆˆˆ‰Œ‹‹Š‹‹Š‰ŠŠŠ‰ˆ†…„…††„…„}uwxuqpuz|„†‡‡‡ˆ„„ƒƒƒ„„„……„„……†‡ƒ~{{|{{}€~||€~€‚€€€€~€~~~}}|||{zxursux~~~}|zyxttvz€€~|zxvvwz{yxwvvvvwxwvuuuvvyz}~|{x|}ywxyxy{~~~€€~€€€~~~~}}}~}}|}~€€~}}}~~€‚ƒ„€ƒƒƒ€~€€€‚‚‚€€{z{~‚…†……………ƒƒ…†………„„‚€‚€€€€~}||}~~|}~~~||}~~|}}~|{|‚ƒ‚‚ƒƒ‚‚„…†††„‚‚ƒƒƒƒƒ„„ƒƒƒƒƒƒ€ƒ‚„„€‚€€€€€€€€€€€€€€€€~{{|{}|}|{zz{|}||~€€€€~}{|€‚€}|~€€ƒƒ‚~~~€…‡…„…†…††…ƒ~~€€‚‚ƒ„„……………………††‡‡‡††…ˆ‡‡†‡ˆŠŠŒ“”“‘‹Š‰‡††‡‡ˆ‡„{{€ƒˆˆŠ‹‹ŠŠ‰ˆŠŽŽŽ‘““‘Ž…~~~€ƒ„‚‚‚…†…„ƒ‚‚€€€€€€€€€€€€€€€€‚‚„…††††††‡†‡‡…………††††………„„ƒƒƒ‚ƒƒ„„„„„„„ƒƒ„„…………………………‡†…ƒ‚‚‚‚‚€€‚‚‚‚‚‚‚‚ƒƒ………„„„„„……………………†……„………††ˆ‰ˆ…‚‚‚‚ƒƒ‚‚€€€‚‚‚‚‚‚ƒƒ‚„…€€€€€€€€€€€€€€€€‡ˆŠŠŠŠ‹‹ŠŠ‹‹Œ‹Š‰ŠŠ‹‰ˆ†…„††„ƒƒzwywogejpz€‡ŠˆˆŠŒ‡…„ƒ‚‚‚ƒƒ‚‚‚ƒƒ„‚}y{{zz|~|{}€ƒ„ƒ€‚€€€€~€€€~}}|||||ywvxz~€€|ywssuy~€~|{xwvxyzwvvvuvvvxxwvvwwxxy|~~}{zw||yvxyxy|~~~~€€€‚€€€€€~~~~}~}}~}}||}~~~}~~~‚‚€‚ƒ‚€€€‚‚‚‚€{{{~‚…………………ƒƒ…†††……ƒ‚€€€€~}||}~€€€~}}~~}}|}~~~|{|‚ƒ‚‚ƒ‚‚ƒ…†‡†„‚‚ƒ„ƒ‚ƒ„„ƒ‚ƒƒ„„„ƒƒ…ƒƒ†…‚€‚€€€€€€€€€€€€€€€€{{|{}~|}|{{z{|}{{}~€€€€€€€~~z|€ƒƒ‚€~~~}}}€€ƒƒƒ€€€€…‡…„…†…†‡…ƒ}|}€‚ƒ„…†………………………††‡††……‡‡†‡†‡‡ˆŠ‰‰‹ŽŽ‹Šˆ‡‡‡‡ˆˆ‡„{|ƒˆ‰‰‹‹ŒŒŒŠŒ‘’‘Ž‹Œ„~}~~€„„ƒƒ…†…„ƒƒ€€€€€€€€‚ƒƒ……††††‡†‡‡‡…………††††„„„„ƒƒ‚‚‚ƒ………ƒƒƒƒƒƒƒ„„………………………‡†„ƒ‚‚‚‚€€‚‚‚‚ƒ‚‚ƒƒƒ††…………„„††††††††……„„„…†††ˆ‰ˆ…‚‚‚‚ƒƒ‚‚€€€‚‚‚‚ƒƒ€„…‡€€€€€€€€€€€€€€€€†ˆ‰ŠŠŠŒ‰‰Š‹ŒŒ‹‰‰‹‹‹‰‡†„††„„ƒy{zwmc`fmz‰‹ŠˆŠŒˆ†ƒ‚‚€~ƒ‚‚‚‚|yz{yz{{yy|…††‚‚€€€€€€€‚€~}{zyz|~}}~€€}{yutvz€~|{zxxwxxuuvvvuuuxwwvwwxywx{|}|zyx|}ywxyxy{~~}€€€‚€€€€€€€€€}}~}~~~~~~||||}~}}~~~~~€€€€€€€€€‚‚‚‚{z{~‚…†……………ƒƒ…†„„„„„ƒƒ‚‚€€€||}}~~€€~}~~€~~|{|‚ƒ‚‚‚‚ƒ…†††„‚‚ƒ„ƒ‚‚‚ƒ‚‚‚„…††††‡„…††€€€€€€€€€€€€€€€€€{||{}~{{{|{|{|{z{|~~~~€€€~}y|„…ƒ€~~~}}~€€‚‚‚‚‚„…ƒ‚‚€€€…‡…„…†……†‡ƒ||}€€‚„…††…………………………††††……„„††ˆˆˆˆ‰‡†‡ˆ‰‰‡Š‰ˆ‡‡‡ˆˆˆ‡„{{€ƒ‡ˆˆ‰‹ŒŽŽ‹ŒŽ‘‘”“’’’Œˆ‹ƒ}}~~€„„‚‚‚…†…„ƒ‚‚€€€€€‚‚ƒ„„…………††‡‡ˆˆ††††…………ƒƒƒƒƒ‚ƒ‚‚‚„„…„„ƒ„ƒƒƒƒ„…………………………‡†…ƒ‚‚‚‚‚€€ƒ‚‚‚‚‚‚‚‚ƒƒ†††……………††††††††…„„„……†††ˆ‰ˆ…‚‚‚‚ƒƒ‚‚€€€‚‚‚‚ƒƒ‚‚„†ˆ‰€€€€€€€€€€€€€€€€ˆ‰ŠŠ‰ˆ‰Š‰‰ŠŒŽŒ‹‰ŠŠ‹ŠŠ‰‰†ˆˆ‡…„~yyxtledjp|ƒŠŒ‰‡‡ˆ‡…‚‚ƒƒ€…„ƒ‚‚‚ƒƒ‚}yz{zz|zxx{€„††ƒ‚€€€€€€€‚‚€~|zyxx|€‚‚€€~€~}|xxx|}{{zyxwwvvwwwvvtswwvvvwxywy{}}|{yy}~zxzzyy|~~~~€€€€‚€€€€€€€}}}~~~~~~|{{{|||}~~~~~€‚‚ƒƒ‚€€€€€€€€€‚‚‚{{{~‚…………………ƒƒ…†…………„ƒ‚€€z{}~~}}}~~~|||}~~}|~|{|‚ƒ‚‚‚ƒ„†‡†„‚‚ƒ„„ƒ‚‚ƒ‚ƒ…†‡‡‡†„„…ƒ€~€€€€€€€€€€€€€€€€€||}{}~{{{||||{{{||}}}}|}~~~~}}z}„„ƒ€~}|}~€€€‚ƒƒ‚ƒ„…„„ƒ‚€€…‡…„…†…„‡‡…}~€‚‚ƒ„……………………………………†††……‚ƒ…‡ˆ‰‰‰Šˆ……††…„‰‰ˆ‡‡‡ˆ‰ˆ‡„{|ƒ†††‡‰ŒŽ‹Œ’“”–•””“Œ‰Š‚||}~€„„ƒƒ…†…„ƒƒ€€€€€€‚‚‚ƒƒ„„…„……†‡ˆˆ‰††††…………ƒƒƒƒƒƒƒƒ‚ƒƒ„„„„„„„ƒƒƒ„…………………………‡†„ƒ‚‚‚‚€€‚‚‚‚‚‚ƒƒƒ††…………„„††††††††„„„„„††‡†ˆ‰ˆ…‚‚‚‚ƒƒ‚‚€‚‚‚‚‚ƒƒ„„„…†ˆ‰Š€€€€€€€€€€€€€€€€‡ˆ‰‰ˆˆ‰Š‹‹ŒŽŒŠ‹ŠŠ‰ŠŠ‹‹‰‹‹‰‡„~wwuqlhinsz€‡‹Š‡‡‡ˆ…ƒƒ„…„‚††…„„„„„ƒ}z{|zz||zy{~‚‚ƒ€~}~€€€€€€€€€~}|zyyx{€~~}}}~€|{|~|{{{zywvuxxyxwusrvvvuvwxyz{}€}|z~{y{|zy|~~~€€€}}}}~~~|{{{{|{|~€~}~‚‚‚‚€€€€€€‚‚‚‚{z{~‚…†……………ƒƒ…††††…„‚€‚€€€{|~~}{|~~}|}}{{|||||{~|{|‚ƒ‚‚€‚„†††„‚‚ƒƒ„„ƒ€‚‚ƒ„„…„„ƒ„‚€{zz€€€€€€€€€€€€€€€€€|||{|~{||{{{{||||}}}|{z||}}~}}||~ƒ„ƒ€}{{}}€ƒƒ‚‚ƒ„‚‚‚€€€€…‡…„…†…ƒ†ˆ…~€ƒƒƒ„„„„„„…………………………†††……„ƒ„†ˆŠŠ‰‰ŒŠ‡…†‡†…‰ˆ‡‡‡ˆ‰‰ˆ‡„{{ƒ„„„…ˆ‹Ž‘Š‹ŒŽ‘“•—””””•“Œ‰{|}}€„„‚‚‚…†…„ƒ‚‚€€€‚€€€€‚‚‚ƒƒ„„„„„„…†‡ˆ‰‰‡‡††……„„ƒƒƒƒ„ƒ„„ƒƒƒƒƒ„„…„„„„„……†……………………‡†…ƒ‚‚‚‚‚€€‚€€‚‚‚‚‚ƒƒ†…………„„„†…†…†…††„„„„……‡‡†ˆ‰ˆ…‚‚‚‚ƒƒ‚‚‚‚‚‚‚‚‚ƒƒ††……†‡ˆ‰€€€€€€€€€€€€€€€€„…‡ˆˆ‰‹ŒŒŒŽŽ‹‰‹‹‰‰‰ŠŒŒŽ‹‡„}vxupljkorv|ƒ‰ŠŠ‰‰Š‡„„††…‚‡†…„„„„„ƒ~z{|{{|~|z{}~ƒ}|}~€€€€€€€}}}|{{zzz|}~}~~}{{|~ƒ~~~|{{{zywutyyzyxusqvvuuvwxy|~€‚‚€~{€|z|}{y|~~~€€€€|}}~~~|{zz{{z|~€€€~~€€€‚‚€~€€€‚‚‚‚‚{z{~‚…†……………ƒƒ…†„„„„„ƒ‚‚‚€€€}}~~~~}|y}€}|~€~}||||}~~|{|‚ƒ‚€‚€€‚„†‡†„‚‚ƒƒ…„‚€€‚ƒƒƒƒƒ‚€~}xvw€€€€€€€€€€€€€€€€€||}{|}z}|{zz{|}}}}}|{zy{{|}}||{}~€‚ƒƒ‚|yz|~}{~€‚ƒ‚ƒ€€€€€€€€…‡…„…†…‚†ˆ†………„„„ƒƒƒ††††††††„……††……„„…‡‰ŠŠˆˆŽ‹ˆ‡ˆ‰‰ˆ‰ˆ‡‡‡ˆ‰Šˆ‡„{{ƒƒƒƒ„†ŠŽ‘ŠŠŒŽ‘”—™“’“”–•’ˆ{{}}€„„‚ƒ…†…„ƒƒ€€‚€€€€‚ƒƒƒƒƒ„„„„„…†‡ˆ‰‰‡‡††……„„ƒƒ„„„„„„„ƒƒ‚‚ƒ…………„„„…††……………………‡†…ƒ‚‚‚‚‚€€€€€€‚‚ƒƒƒ…………„„„„……………………„„„„…†‡‡†ˆ‰ˆ…‚‚‚‚ƒƒ‚‚‚‚ƒ‚‚‚‚‚ƒƒ‡†………††‡€€€€€€€€€€€€€€€€…‡ˆ‡……ˆ‹ŒŒ‹‹ŠŠ‹‹Œ‹‰ŠŒŒ‰ŒŒ‰ˆ†€ywtoljjkkn}‡‰ŠŠ‰‰‰ˆ‡…„„„ƒ†‡‡†„ƒ„†„€|z|}|zyyz{}~~~€€€€€€€€‚€~~~~~~}}}{|}~}~~}{yz|}}}}}‚~|{{|}|xvyyywtrrsuuvtsrtvw{~~}yz~zxyyxw}€€€~€€€€€€€~~€€~~~}}|||{{~~~€‚‚‚€€‚‚ƒƒƒ‚€€€€€€€‚‚ƒƒ}||~‚†‡‡……„„„„……„ƒƒ„ƒ€€‚€‚‚€~~~}}}}~~}}}~€|||||||||{{}€‚‚ƒ‚€‚„…‡†…„ƒƒƒƒ„ƒƒƒƒƒƒ‚„ƒ„„ƒ€|yz{|}}||{€€€€€€€€€€€€€€€€~{|}}~||{{zz{{|{~~zy{|{}||||{{{}~ƒ„……~||}}}||ƒƒ‚‚‚‚€~€~€ƒ…††…„‚‡Š‡€}„„„„…………………………………„„„……………‡‡‡ˆˆˆ‰‰Š‰ˆ‡††‡‡‰‰‰‰‰ˆˆˆˆ†…„~y}††…„„‡Œ‘•‹Œ“–—”•”’“•”†‚~~~}€„†‚…‡†…†„‚€€€€€€ƒ„ƒ‚‚ƒ„„„„……††††……„„ƒƒ„„„„ƒƒƒƒƒƒƒƒ„„„„„„…………„„„„„„„ƒ‚…††„‚€€‚‚‚‚‚€€‚‚‚‚€‚ƒƒ‚ƒ„……„„„„ƒƒƒƒƒ„……†††…†…†…†…†ˆ‰ˆ…‚‚‚‚‚€€‚ƒƒ‚‚‚‚‚‚‚„†‡…††„‚‚„†€€€€€€€€€€€€€€€€…‡‰ˆ†…ˆ‹ŒŒ‹‹Š‹‹‹‹ŠŠŠ‹‹‹‹‰‹Œ‰ˆ†€yxvrnjgggn|†ˆŠŠ‰‰ˆˆ†…„ƒƒƒ‡‡ˆ‡‡††‡€}zy{}}{yzz|}~€~€€€€€€€€€€€~~~~}}|{{}€}}}|{z{}}~}}~|{z{|{xuyzzxusssvwwvttvxy|~}}~{z~~zwyyxx}€€€€~€€€€€€~€€~~~}}|||||~~€€‚‚€‚‚ƒƒ‚‚€€€€€€‚ƒƒ~}}‚…††……„„„„………„„…„€‚€‚‚€~~~~~}}}}~~~~~~|||||||||{{}€‚‚ƒ‚€€‚„…‡†…„ƒƒƒƒ„ƒƒƒƒƒƒ‚‚ƒƒ„ƒ~|z{|}}}|{€€€€€€€€€€€€€€€€}z{}|~||{{zz{{|z|}}|}{z}||||{{{|}€‚ƒ…„„~||}}}|}‚‚‚‚ƒ€€€}}}~‚ƒ…†††„„ƒ‡‰†€}€„„„„…………………………………†††††‡‡‡‡‡‡‡‡ˆˆˆ‰‰ˆ‡†‡‡‡‰‰‰‰ˆˆˆˆ‰ˆ‡…y|ƒ†…„„†‹’ŽŒŠ‹“•–“”“’“–”†‚~~}}€„†‚…‡…„†„‚€€€€€€€ƒ„‚‚‚„„„„„……††††……„„ƒƒ„„„„ƒƒƒƒƒƒƒƒƒ„„„„„„………„„„„……„ƒ‚‚…††…€€‚‚‚ƒ‚€€‚‚‚‚€‚ƒƒ‚‚ƒ„……„„„„ƒƒƒƒƒ„……††…†…†…†…††ˆ‰ˆ…‚‚‚‚‚€€‚ƒƒ‚‚‚‚‚‚‚„†‡…††„‚‚ƒ†€€€€€€€€€€€€€€€€‡‰Š‰††‰ŒŒŒ‹Š‹Š‹‹‰Š‹‹ŠŠ‰Š‰‹‹‰ˆ…zyyuogccdn|†ˆ‰Š‰‰ˆ‡†„ƒ‚‚‚……†‡ˆˆ‡…}{yy{}}|zz{|}~€€€€€€€~€~~~|zy|€‚€}|||{{|~€}~~}~€~|{zz|zxv{{{yvttuvwxvuuwy{}}||~~|z~zxyyxx}€€€~~€€€€€€~~€€~~~~}}||||~~€€‚€‚‚ƒ‚‚€€€€€€€€‚‚ƒƒ~‚„…………„„„„……†„„†…‚‚‚‚‚€~}}}}}~~~~~€€~}||||||||||{{}‚‚ƒ‚€‚„…‡†…„ƒƒƒƒ„ƒƒƒƒƒƒ‚€‚ƒ„ƒ€~}yz{|}}}|€€€€€€€€€€€€€€€€}y{||}~{|{{{{{{||z{|~|{{}||||{{{z}ƒ……„ƒ~||}}}|~ƒ„€€€}}~††‡‡‡†…„ƒ†ˆ†~€„„„…„………………†…†………†††‡‡‡‡ˆ††††‡‡‡‡‰ˆˆ‡‡‡‡ˆ‰ˆ‰ˆˆ‡ˆ‡‰‡ˆ‡‚|}‚†…„ƒ…ˆŒŒŠ‰ŠŽ’””’““’”–•…~}}}€„†„‡…„…„‚€€€€€„„ƒ‚ƒƒ„„„„……†††………„„„ƒ„„„„ƒƒƒƒƒƒƒƒ„„„„„„………„„ƒ„…………„ƒƒ…††„‚€€‚‚‚‚‚€‚‚‚‚€‚ƒƒ‚ƒ„………„„„„„ƒƒ„„……†††…†…†…†…†ˆ‰ˆ…‚‚‚‚‚€€‚ƒƒ‚‚‚‚‚‚‚„†‡…††„‚ƒ…€€€€€€€€€€€€€€€€ˆŠ‹Š‡‡‰ŒŒŒ‹‹Š‹‹‹‰‹Œ‹Š‰‰Š‰ŠŠŠˆ„zzzumd`bfqˆ‰ŠŠ‰‰‡†…„‚‚‚‚‚„‡‡„‚|{zz{{{{{||}}~€€€€€€~}~€€€€}|{}€}|}}|||~~~}~€€~}{|||zx{||zwuuvuvwvtuwy{~~}}~|z~~zwyyxx~€€€ƒ‚‚€€€€€€€~€€}~~}}||}~€€€€€‚‚‚€€‚‚‚€€€€€€‚ƒƒƒ€‚„„ƒ……„„„„……†„„……‚‚‚€‚‚€~|||}}~~~}}}~}}|{|||||||||{{}€ƒ‚ƒ‚€€‚„…‡†…„ƒƒƒƒ„ƒƒƒƒƒƒ‚‚ƒƒ|zyxyz}}~~~€€€€€€€€€€€€€€€€|yz|{}~{|{{{{{{|{xz{{{~}||||{{{y|…††ƒ‚~||}}}|€€€€ƒ„ƒƒƒ€€†††‡‡‡††ƒ…‡…€„„„„……………††…†…†…†……††††‡‡††††††††ˆˆ‡‡†‡‡ˆˆˆˆˆ‡‡‡‡…†‡ˆ…€‚†…ƒƒ„†‰‹‹‰ˆ‹Ž‘““‘“““”—”…}}}}ƒ…€„†…„…„‚€€€€€€€ƒ„‚‚‚„„„„„……††…………„„„„„„„„ƒƒƒƒƒƒƒ„ƒ„„„ƒ„„…„„ƒƒ„……††…„„…††…€€‚‚ƒ‚‚€€‚‚‚‚€‚ƒƒ‚ƒ„…………„„„„„„„……†…†…†…†…†…††ˆ‰ˆ…‚‚‚‚‚€€‚ƒƒ‚‚‚‚‚‚‚„†‡„……„‚…€€€€€€€€€€€€€€€€‰ŠŒŠ‡‡‰ŒŒŒ‹Š‹Š‹‹ŠŠŠ‰‰‰‰ŠŠ‰‰Šˆƒ~z{ytjb`eju‚ŠŠŠŠ‰‰‡†…ƒ‚€ƒ……ƒ~~|{zz}}}}~~€€€€€~~~€€€}~~€€€€~€~|{|~~~~||}~~}}€}|~}|{|}}zxuuvstutssvxz}€}yz~zxxyxy~‚€€€€‚‚ƒ€€€‚€~€€}~~}}}~~€€€‚‚‚€€‚‚‚€€€€€€€€‚‚ƒƒ„‚€€ƒ„„ƒ……„„„„………„„…„€‚ƒ‚€}|||}}}~~{{{z{{|}|||||||||{{}‚‚ƒ‚€‚„…‡†…„ƒƒƒƒ„ƒƒƒƒƒƒ‚€‚„|vtsvwz|~~€€€€€€€€€€€€€€€€|yz|{|~{{||||||{{{|}zz}}||||{{{y|„‡…ƒ‚~||}}}|€€€€ƒ„„„„ƒ‚ƒƒƒ„„††ˆˆƒ„…„‚‚ƒ„„…„…………††††††††……††††‡‡†††††…†…ˆ‡‡†‡‡ˆˆˆ‡ˆ‡‡†‡†……‡ˆˆ„‚…„ƒƒ„†ˆ‰Šˆ‰ŠŽ‘’’’”•”•–“Ž…€~}}|ƒ…€€ƒ†„ƒ„„‚€€€€€„„ƒ‚ƒƒ„„„„……††………„…„„„„„„„ƒƒƒƒƒƒƒƒ„„„„ƒƒ„„„„ƒƒ„„…††……„…††„‚€€‚‚ƒ‚‚€‚‚‚‚€‚ƒƒ‚ƒ„†…………„„„………………†††…†…†…†…†ˆ‰ˆ…‚‚‚‚‚€€‚ƒƒ‚‚‚‚‚‚‚„†‡„……ƒ€‚„€€€€€€€€€€€€€€€€‰‹ŒŠ‡†‰‹ŒŒ‹‹Š‹‹‹Š‡„„…ˆŠŠŠˆˆŠˆƒ}z{xrjcbfku‚ŠŠŠŠ‰‰‡†…„‚‚€€ƒ„„ƒ‚€‚ƒ‚|||~~~~~~€€€€€~}~~€€€€~€€€€‚{y{~~€}|}~~€}|~€€‚€}}}~}||}|{wuuvrsttstvxz~€€€}xz~~zwyyxy~‚€‚€€€€€~€€€€‚€~|€€~~}}€€‚‚€€€€€€€€‚ƒƒƒ‚€ƒ……„……„„„„………„ƒ…„€‚€‚‚€~|||}}}}}{zyyy{|}|||||||||{{}€ƒ‚ƒ‚€€‚„…‡†…„ƒƒƒƒ„ƒƒƒƒƒƒ‚€ƒ…ztqquwy|~€€€€€€€€€€€€€€€€€€€}zz}{}~{{||||||{|‚…‚}zz}||||{{{z}€„……„ƒ~||}}}|~ƒ„ƒ„ƒ‚€‚‚…†ˆƒ„„ƒƒƒƒƒ„„„……………†††††††††††‡‡‡‡ˆ††††††……ˆ‡‡‡‡ˆˆ‰‡‡‡‡††††‡‡‡ˆ‡…ƒƒƒƒ„†ˆ‰‰‰‰Œ’’‘“•–••–‘‹„€}}||ƒ„€ƒ…„ƒ„„‚€€€€€€€€€€€€€€€ƒ„‚‚‚„„„„„……††……„…„…„„„„„„ƒƒƒƒƒƒƒ„ƒ„„„ƒƒƒ„„„ƒƒƒƒ„…………„…††…€€‚‚‚ƒ‚‚€€‚‚‚‚€‚ƒƒ‚ƒ„††…………„„………†…†…†…†…†…†…††ˆ‰ˆ…‚‚‚‚‚€€‚ƒƒ‚‚‚‚‚‚‚„†‡„„„ƒ€€‚„€€€€€€€€€€€€€€€€‰‹‹Š‡†ˆ‹ŒŒ‹Š‹Š‹‹‰ƒ}|†‰ˆŠˆˆŠˆ‚|z{xsmhfffs€ˆˆ‰ŠŠŠ‡†…„ƒ‚‚‚‚ƒƒƒƒ„„ƒ††ƒ€€~~€€€~~}}~~€€€€€€€€€€€€~{z|~~€~~~~€€}{}€€~{z{|{z{||zwttustuttuwz|€}zz~zxyyxy‚‚‚€€€€€€ƒ€~|€€€~~~€€‚‚€€€€€€€€€€‚‚ƒƒƒ€„…††……„„„„……†„„……‚‚‚€‚‚€~}}}||||||||{|||||||||||||{{}€‚‚ƒ‚€‚„…‡†…„ƒƒƒƒ„ƒƒƒƒƒƒ‚€„‡ƒ{usttvy{~€€€€€€€€€€€€€€€€€}z{}|~|{||}}||{~…Œ‹†€|z}||||{{{|}€‚„„…„~||}}}|}‚‚‚‚ƒ‚ƒƒ€€€~ƒ„ƒƒƒƒ„„„ƒ„„„„…………†††††††††††††‡‡‡‡‡‡††††…‡‡‡†‡ˆ‰‰‡‡‡††††…‡††‡‡†‚~‚‚ƒ„…‡‰‰‰‰ŠŒ’’‘•—˜––”ˆ„€}|||‚„€ƒ…ƒ‚„„‚€€€€€€€€€€€€€€„„ƒ‚ƒƒ„„„„……††„„…„…„……„„„„ƒƒƒƒƒƒƒƒ„„„„ƒƒ„„„ƒƒ‚‚‚ƒ„……„„…††„‚€€‚‚‚‚‚€€‚‚‚‚€‚ƒƒ‚ƒ„†††……………†††…†…†…†…†…†…†…†ˆ‰ˆ…‚‚‚‚‚€€‚ƒƒ‚‚‚‚‚‚‚„†‡ƒ„„‚€ƒ€€€€€€€€€€€€€€€€‰Š‹‰†…‡ŠŒŒ‹‹Š‹‹‹ˆ€xw~…‡‡Š‡‡Š‰‚|zzxtqmhdbp}†‡ˆ‰Š‹ˆ‡…„ƒ‚‚‚‚ƒƒƒƒ…€ƒ‡ˆ…ƒ„…~~€€€€~~}}}~€€€€‚€~€€~~€~|||}~|~€€€}{}€}yxyzzy{|{yvttutuvvuvy{~€€~}~|z~zwyyxz‚‚‚€€€€€€€ƒ}|€€€~~~‚‚~€€‚‚‚€€€€€€€€‚‚ƒƒ‚€„†‡‡……„„„„……‡……††ƒ‚ƒ‚€‚‚€~}}}}||{{}}~~~}{{|||||||||{{}€‚‚ƒ‚€‚„…‡†…„ƒƒƒƒ„ƒƒƒƒƒƒ‚€…ˆ…}wvxtux|~€‚€€€€€€€€€€€€€€€€~{|~}~|{||}}||{‹‘Ž†‚€~}||||{{{}~‚„……~||}}}||ƒƒ‚‚‚ƒƒƒ€€€~}|}€„ƒ‚ƒ„…„ƒ„„„……………††††††††„„„……………‡‡‡‡††††‡‡††‡ˆ‰Š‡††††…………„„…‡ˆ„€‚ƒ„†ˆ‰Š‰‰Š‘“’‘–˜˜—•”†„€}|||~‚„€ƒ…ƒ‚„„‚€€€€€€€€€€€€€€ƒ„ƒ‚‚ƒ„„„„……††„„„„„………„„„„ƒƒƒƒƒƒƒƒ„„„„‚ƒƒ„„ƒƒ‚‚ƒ„„„„„…††„‚€€‚‚‚ƒ‚€€‚‚‚‚€‚ƒƒ‚ƒ„††††…………††††††………†…†…†…††ˆ‰ˆ…‚‚‚‚‚€€‚ƒƒ‚‚‚‚‚‚‚„†‡ƒ„„‚€ƒ€€€€€€€€€€€€€€€€‰ˆ‡…ƒ„‡Š‰ˆ†…‡ŠŠ‰Š‚xsv~†‹‰†„…ˆ…{syvtsmedfr}†‡‡†‡ŠŠ‡„ƒ„†…„ƒ‚‚ƒ„…„……†ˆ‰‡†‡‡„€~~€€€€€€€~}|~~~~~‚€€€€~€€€~€€€€~||€€€€~~~}}}~~}{yxxw{{zywvutwvutuwz|z}~~~{z€|zzzx{~‚€€€€€€€~~~€~~~}€€€€€€€€€€€‚ƒ„ƒ‚€~€}~‚‚‚ƒƒ‚‚‚ƒ„…‡ˆ‡†……„„……„………„„ƒ‚‚‚ƒ…ƒ}}}}}}}}~~}|{{{{{|||}}~~zzz|€‚‚‚‚‚‚‚ƒ„…†…‚ƒƒ‚‚‚ƒƒƒ„‚}yvuuwxz~}}€€€€€€€€€€€€€€€€||||{}€|{|ƒ‡‹Š†„‚z}|yy{€‚„…„‚€€~~}||}~€‚€ƒƒ‚‚‚~}}}~}€ƒƒ‚‚„„„„…………………††‡‡††„…††……†‡††††††††……………†‡ˆ†††……†††ˆ‡‡‡ˆˆ‡…}~„ŠŒŒŠŽŽ“•“–•˜š–‘‹…ƒ~{}~ƒ€„†…„‚€€€€€‚‚‚‚‚ƒƒ„„ƒƒ„„„………ƒƒƒƒƒƒƒƒ„„„„„„„„ƒƒƒƒƒ„……„„„„„„„„„„„„…………ƒƒƒƒƒ€€€‚‚‚‚€ƒƒ‚‚‚‚€ƒ………………………‡††……„……………†††‡‡†ˆ‰ˆ…‚‚‚ƒƒ‚‚‚€€‚‚‚ƒ„……ƒƒ‚€„€€€€€€€€€€€€€€€€ƒ„ƒ‚‚ƒ‡Š‰…‚‚„†ˆ‰ˆtoqzƒˆ‹Šˆ†ƒ€|zzwtqkeeis~†ˆ‡†‡ŠŒ‰…„„……„„ƒ‚‚ƒ„„ƒ„ƒ„‡‡†††‡ƒ~~€€€€€€€~}}~~~~~€€€€€€€~€€€€~}|€€€€~~}~~ƒƒ‚}{zzzyxwvvuvuttuxz|z}~}}~|yz€|zzzx{~‚€€€€€€€€€€~~~}€€€€€€€€€€€€‚ƒƒ€€~~€‚‚‚„„ƒƒƒ„……‡†…„„„„…„………„ƒ‚‚€€„‚~}}}}}}}}|}}~}|zy{{{||}}}zzz|€‚‚‚‚‚‚ƒ„…†…‚ƒƒ‚„ƒ‚‚‚‚‚ƒ„‚}yvuuwxz~}}€€€€€€€€€€€€€€€€~~~€‚‚}~‚…„‚€‡‰‘‘Œ„~{|}€ƒƒ}}|}€‚„‚€€~}}||}~€‚‚‚‚€€€€~~~~€}€ƒƒ‚ƒ„„„„…………………†‡‡‡††…†††………†††††††††…………†‡ˆˆ†††……†††‡‡†‡‡‡†…€~|~ƒ‰ŒŒŒŽ‘““”“–˜–“„ƒ~|}~€ƒ€„†…„‚‚€€€€€€‚‚‚‚ƒƒƒ„„ƒƒ„„„………ƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒ„„…„„„„„„„„„„„„…………ƒƒƒ„ƒ‚€€€‚‚‚‚€ƒƒ‚‚‚‚€ƒ………………………‡‡†…………†………†††‡‡†ˆ‰ˆ…‚‚‚ƒƒ‚‚‚‚€‚‚ƒ„……ƒ‚‚€„€€€€€€€€€€€€€€€€„„…„ƒ…ˆ‹Š}‚„Š‡}rknw€†‹ŒŠƒ|x|€{wsojeglt†ˆˆ‡‡Š‹‰…ƒ‚‚‚ƒ‚€‚‚‚ƒ†‡……†…‚~€€€€€€~~~~~~~€€‚€€€~€€€€~}|€€€~~~…†‡‡„€|zxxxxwwwwttttvx{|{~}}}{xz€|zzzx{~‚€€€€~€€€€€€€~~~~}€€€€€€€€€€€€‚‚‚€€‚€€€€€„„ƒƒƒƒ„…†…„ƒƒƒ„„………„„ƒ‚€€€‚€|}}}}}}}}||~~~|zy{{{{||||zzz|€‚‚‚‚‚‚‚‚ƒ„…†…‚ƒƒ‚„„ƒ‚‚‚ƒƒƒ„‚~xvuuwxz}}€€€€€€€€€€€€€€€€~}~€€}{‡‰…ƒ…„‰‹‘—˜‘„y|{|ƒ‹Œ†||}ƒ„ƒ‚€~~}}|}~ƒ…„„ƒƒ‚‚€€€€~~~~€~€‚ƒƒ‚ƒ„„„…„………………††‡†††††‡†…„……††††††††††††‡‡ˆ‰†††……†††‡†††‡‡†„~|{}‚‡‹ŽŒŒŽ“——™˜–—’‡ƒ|}~€ƒ‚€€„……ƒ‚€€€€‚‚‚‚‚ƒƒ„„ƒƒ„„„………ƒƒ„ƒ„ƒ„ƒ„„„„„„„„„ƒƒƒƒƒ„…„„„„„„„„„„„„…………ƒ„„ƒƒ‚€€‚‚‚‚€ƒ‚‚‚‚ƒƒ………………………‡‡††††††………†††‡‡†ˆ‰ˆ…‚‚‚ƒƒ‚‚‚ƒ‚‚‚‚‚ƒ„…„ƒ‚‚…€€€€€€€€€€€€€€€€†‡‡†……ˆŠ‹y~~‚‹‰tmox†Œ‹†~uu{‚|wrnifiow€‡ˆˆˆˆŠ‰‡ƒ€~}}}~}}~€€€ƒ†††…†„~€€€€€€~}~~~~€€€€€€€~~€€€€~}}€~€€ƒ…‡ˆ†€{wwwwwwwwwtttuvy{|}€~~~|xz€|zzzx{~‚€€€€€€€€€€~~}}~~~~~~~~€€€€€€€€€€€€€€€€€€‚ƒ…†‡……„ƒƒƒƒ„…………ƒƒ€ƒ|}}}}}}}}}}||{|{{{{{{{{{{zzz|€‚‚‚‚‚ƒƒ„…†…‚ƒƒ‚‚‚‚ƒ‚ƒƒ„ƒ„‚}yvuvxx{}~€€€€€€€€€€€€€€€€€~~~|€‰Œ…‚†…~…Œ”š˜Ž€w||‡ŽŽ‡€ƒ…‡†„~}}}}}„†‡††††……ƒƒ‚‚‚~}}}~€‚ƒƒƒ„„„„„…………………†‡‡‡††…†††………†††††††††††††‡ˆˆ‰†††……†††††…†††…„}zy|„‰Ž’Ž‹ŒŒ‹’™š›–“–•‹ƒ|}~~€‚‚€„…„ƒ‚‚€€€€€€‚‚‚‚ƒƒ„ƒ„ƒƒ„„„………„„„„„„„„……………………„„ƒƒƒ„„„„„„„„„„„„„„„…………„„„„ƒ‚€€‚‚‚‚€‚‚‚‚‚‚€ƒ………………………‡‡††††‡‡………†††‡‡†ˆ‰ˆ…‚‚‚ƒƒ‚‚ƒƒƒ‚‚‚ƒ„…„‚‚€€…€€€€€€€€€€€€€€€€…†‡‡…†ˆŠ‰}x{~|€‰‹‚xrt{ƒ‡Ž‰‚zvw|€{vrojgjqx‡ˆ‰ˆˆŠˆ†ƒ€|{z{|{{|~€‚‚„†‡†…†‚€~~€€€~€€€€~~~~~~}~~~€€€~€~~}~€~€€€‚…ˆ‰†{wvvvwwwwxttuvxy{|~€}yz€|zzzx{~‚€€€€€€€€€~~~}~~~~~~~~€€€€€€€€€€€€€~€€€ƒ„†‡……„ƒƒƒƒ„………„„‚€‚ƒƒ‚„‚}}}}}}}}}}||||{||{{{{{{{{zzz|€‚‚‚‚‚‚‚‚ƒ„…†…‚ƒƒ‚‚‚‚‚‚‚ƒ„‚~xvuvxyz~~€€€€€€€€€€€€€€€€‚€~€€~ƒŒŽˆ…ˆ‡€Š–™’†}y{…‰‹‰…€ƒ†‡†ƒ~~}}}}‚…‡ˆˆˆˆˆˆ††…„„‚~}}}~€€ƒ„…„ƒ„„…„………………††‡†††„…††……†‡††††††††††††‡‡‰‰†††……††††………††…„~yxz}†’ŽŒ‹Œ”–˜“–™“„|}~~‚ƒ€„…„‚‚€€€€‚‚‚‚‚ƒƒ„„ƒƒ„„„………„„„„„„„„„„„„„„„„„„„ƒƒƒ„„„„„„„„„„„„„„…………„„…„„‚€‚‚‚‚€‚‚‚‚ƒƒ………………………‡‡††††‡‡………†††‡‡†ˆ‰ˆ…‚‚‚ƒƒ‚‚‚ƒ‚‚‚‚‚‚‚‚ƒ„…ƒ‚…€€€€€€€€€€€€€€€€‡ˆŠŠ‰‰ŠŒƒ{vy{{}ƒˆzvx|€‚‹…~yy{}~yurplikqz‚‡ˆ‰ˆˆŠ‰‡…}{{|||{}€‚ƒƒƒƒ„‡‡†…†€~€~€€€€~~~~~}}|}~~€€€~~€~}~~~€€€~ƒ†‰Š‰„{vvvvwwwwvwwxyz{{}€}zz€|zzzx{~‚€€‚€€€€€€€€~~}}~~~~~~~~~~~~~~€€€€€€€‚€€€€€ƒƒ‚‚‚ƒƒ„†…„ƒƒƒ„„……„„ƒ‚€€ƒ„„‚ƒ„‚}}}}}}}}}z|}~}}{z||||{{{{zzz|€‚‚‚‚‚ƒƒ„…†…‚ƒƒ‚‚‚‚‚‚‚€ƒ„‚}yvuvxy{€~~€€€€€€€€€€€€€€€€~|{{}~ˆ‘‰‹‰„~‰””Š€~|‚‰‹ˆ„ƒ„‚€‚ƒ„~~~~}}~€ƒ†‡ˆˆˆˆˆ‡‡…„ƒƒ€€~~~~€ƒ…†…ƒ„„„…………………†‡‡‡††„……†……†‡†††††††††††††‡ˆ‰†††……†††††…†††…„zwzz{‚ŒŽŽŽŽ‘”•– ›„€|}~~„‚‚ƒ„ƒ‚‚€€€€€€‚‚‚‚ƒƒƒ„„ƒƒ„„„……………„…„…„…‚‚‚‚‚‚‚‚…„ƒƒƒƒƒ„„„„„„„„„„„„„…………„………„ƒ‚€‚‚‚‚€‚‚‚ƒ‚‚‚€ƒ………………………††††††‡‡………†††‡‡†ˆ‰ˆ…‚‚‚ƒƒ‚‚‚ƒ‚‚‚‚ƒ„…‚€€€…€€€€€€€€€€€€€€€€‰‹‹‰†ƒƒƒ{wttwxz{{vuvxyy€|ywxyyxvtsrojlp{‚‡ˆˆˆˆ‰‡‡…€|z{|}||~€‚„„„„…†‡…„…~~~€€}~€~~~~~~~~~€€€~~}~~~~€€€~}~~„†‰Š‰†‚€wwvvvvvvxyyzzz{zz}~~~}zz€|zzzx{~‚€€€€€€€€€€€~~~}}}}}}}}}~~~~~~~~~~€€‚‚‚~~€€€€ƒ‚‚‚‚ƒ„‡†…„„„„…………„ƒ€ƒ„ƒƒ€|}}}}}}}}z{}}~}{z}}}||{{{zzz|€‚‚‚‚‚‚‚‚ƒ„…†…‚ƒƒ‚‚‚ƒƒƒ‚ƒ„‚}xvuvxy{€€~~€€€€€€€€€€€€€€€€}{z{}€‹‘Œ‰‡†ƒ‰†‚……‹‹‡„†ˆ…ƒ‚ƒ„‚€}~~~~~~}ƒ†ˆˆˆ‡ˆˆ‡†…„ƒ‚€€~~~~€‚ƒ†‡…ƒ„„„„………………††‡‡††……††……†††††††††††………†‡ˆˆ†††……†††††††‡†…„€zxyyw‰ŽŽŒ‹˜ž¢Ÿ—…€}}~~„‚‚ƒ„ƒ‚€€€€‚‚‚‚‚ƒƒ„„ƒƒ„„„……………………………ƒƒƒƒƒƒƒƒ…„„ƒƒƒƒƒ„„„„„„„„„„„„……………………„ƒ‚€‚‚‚‚€‚ƒƒ‚‚ƒ………………………†…………†‡‡………†††‡‡†ˆ‰ˆ…‚‚‚ƒƒ‚‚‚‚€‚‚‚ƒ„…‚€€€‚…€€€€€€€€€€€€€€€€ˆˆ‡‚|vsrutrqswwuxurrstsqttttttsrusstpllp{‚‡‡ˆˆ‡‰……ƒ{yz|}}|}‚‚„„„††„ƒƒ~}€}~~~~~~~~~}€€€€~~€~~~~~~€€~}}}ƒ…‡‰ˆ†ƒwwwvvvuuzz{{{{zzx{}||}|yz€|zzzx{~‚€€€€€€€~~~€~~~}}}}}}}}}~~~~~~~~~~~€€‚ƒƒ~}€~€€€€€€‚„…†‡†……„„…………„„ƒ€‚€z}}}}}}}}|||||||}~~}}|||{zzz|€‚‚‚‚‚‚‚ƒ„…†…‚ƒƒ‚‚ƒ„„„ƒƒƒ„‚}yvuvyy{€€~~€€€€€€€€€€€€€€€€ƒ€„‡‰‰ŠŒŽŽ‹†„…ˆŠŠˆ…„†ˆ‚†Š‹ˆ‡‰‹‰‡†……„~~~~~~~~}€„†‡‡‡†‰ˆ‡†…„ƒƒ‚~}}}~‚ƒ†‡…ƒ„„„…………………†‡‡‡††††‡†…„……††††††††……………†‡ˆ†††……†††‡†††‡‡…„{xywu}ˆŒ’‘Œ‰„‰•žŸ–‰…€}}~~„ƒ‚ƒ„‚‚‚€€€€€€‚‚‚‚ƒƒƒ„„ƒƒ„„„………………………………………………………„ƒƒƒƒƒ„„„„„„„„„„„„……………………„ƒ‚€‚‚‚‚€‚ƒƒ‚‚‚€ƒ……………………………„……††‡………†††‡‡†ˆ‰ˆ…‚‚‚ƒƒ‚‚‚‚€€€‚‚‚ƒ„…‚€€€‚…€€€€€€€€€€€€€€€€ˆ~rnqtsomortutsrqqrrqpontrpnmnpqopqrsuuv~‚…ˆŠ‹ŒŠˆƒ|zzz|}}~‚ƒ€ƒ†ˆ†ƒ€~~€€€€€€€€€€€~~}}}}~€€€~~}||}~~€€€€~~}…ˆˆˆˆ†‚}wsuwwwx€„…€|{yvy}~}|~|x|€€|y{{z|‚€€}‚‚~~}||~€~~~~~~~~~~~~€€€‚‚€€€€€€€€€€‚‚ƒƒ€€‚ƒƒ„…„…„…„…„ƒ„…„‚€‚ƒ‚€~}}}}}}}}{|}}}}|{}||||{{{|{z{‚ƒƒ‚‚‚‚ƒ„‡†…ƒ‚„ƒƒ‚‚ƒƒ„‚ƒƒ‚{wuvxy{€~€€€€€€€€€€€€€€€€……………………ˆ‡…„ƒƒ„„ƒƒ„„…††‡…„„…†‰‹Œ‰‰‰ˆ‡††…‚‚€~~~~}~‚…‡ˆˆˆ‡ˆˆˆ†„„„€}}}‚‚ƒ„………………………………††††††††‡‡‡‡‡†††„…………†††ƒ†‰ˆ†…†ˆ‡‡‡‡‡‡‡‡†…………†‡‡‚|xwxxy|ŠŽ‘‘‘Ž‹…|™œ–Œƒ}€‚€€€ƒ…„ƒ‚‚€€‚‚‚‚‚‚ƒƒƒ‚ƒ‚ƒ‚ƒ‚„„„„„„„„‚ƒ„……………ƒƒƒƒƒ„……„„ƒƒƒƒ„„……„„„ƒƒƒƒ„„„………†…………„„„„ƒ‚‚‚‚‚ƒ‚‚ƒ„†…†…†…†…††††††††……†††‡‡‡†ˆ‰‡„‚€€€€€‚ƒƒ‚‚‚€‚‚‚‚‚„„„‚€„€€€€€€€€€€€€€€€€‚ypnrwwuoprssrqptttttsrqrqnmlmnommnpqrstyz}€ƒ†ˆˆ‡†ƒ€~}}~}~~€‚ƒ„‚‚‚„††„‚~~€€€€€€€€€€€~~}}}}~~€€€€~~~~||~~€€~~~}…ˆˆˆˆ†‚}wstvvvw€…‡„|xty~~{{zxz~{xyzx{}€~€~‚‚~~}|}~€~~~~~~~~~~~~€€€€€‚‚€€€€€€€€€€€‚‚ƒ‚‚‚‚‚‚„…„…„…„…ƒ„…„‚€‚€‚‚‚€~||||||||{|}}}}|{}||||{{{|{z|‚ƒƒ‚‚‚ƒ„‡†…ƒ‚‚‚ƒƒ‚‚‚‚ƒƒ€€~zvtwyy{€~€€€€€€€€€€€€€€€€ƒƒƒƒƒƒƒƒ„ƒ‚€€€€‚ƒƒ„„„‚‚‚‚„†‡‡‡‡‡††††„ƒ‚€~~~€‚……†…„„…†…ƒ‚‚‚€~}}‚‚ƒ„………………………………††††††††‡‡‡‡††††……………………ƒ†ˆˆ†…†ˆ††††††‡‡†…………†‡‡‚}xxxxy|ˆ‘‘‘‘Œ„zz„‘ˆ„|~€€‚ƒ‚ƒ…‡†…ƒƒƒƒƒƒƒƒ„„ƒ‚‚ƒ„„ƒƒƒƒ‚‚‚‚‚ƒ‚ƒ‚ƒ‚ƒ„„„„„„„„‚ƒ„…………„ƒ‚‚‚‚ƒ„„„„ƒƒƒƒ„„……„„„ƒƒƒƒ„„„………†………„„„ƒƒƒ‚‚‚‚‚ƒ‚‚ƒ„…†…†…†…†††††††††……†††‡‡‡†ˆ‰‡„‚€€€‚ƒƒ‚‚‚€‚‚‚‚‚‚ƒ„ƒ‚€„€€€€€€€€€€€€€€€€„}vtx{|zvwxxxwvuwvvuuttttsqpopqqlmnopqrsrsvy}€ƒ„…„}||}zz{{}€‚‚ƒ…‡†„‚€€€€€€€€€€€~~}}}}~~~~~~~~}|~€~~}…‡‡ˆˆ‡ƒxstuuuv†Š‡ƒztz‚{yyyz}~zwxywz}€€}~€‚ƒƒ‚€~~~~}~~€€~~~~~~~~~~~~~€€€€‚€€€€€€€€ƒƒƒ‚‚‚‚‚…„…„…„…„„……„ƒ‚ƒ‚€~||||||||{|}}}}|{}||||{{{|zz{‚ƒƒ‚‚‚‚‚ƒ„‡†…ƒ‚‚‚‚ƒƒ‚‚‚‚ƒƒ‚‚|xvxzz|~~€€€€€€€€€€€€€€€€‚€€€€‚‚‚‚ƒ‚‚‚ƒ„„„………†††††„ƒ€~~ƒ…‡††…‡‡ˆ‡†„ƒ„„|}~‚‚ƒ„………………………………††††††††‡‡‡†‡†††††††………„„…‡‡††‡ˆ†††††††††…………†‡‡ƒ}yxxwy{†Œ‘‘‘‘„zw|…‡…„€||}~ƒ…ƒƒ„‡ˆˆ‡……………………†……„„„…†…„„ƒƒ‚‚ƒ‚ƒ‚ƒ‚ƒ‚„„„„„„„„ƒƒ„…………„ƒƒ‚‚ƒƒƒ„„„ƒƒƒƒ„„……„„„ƒƒƒƒƒ„„……………„„„ƒƒƒƒƒ‚‚‚‚‚€‚ƒ„†…†…†…†…††††††††……†††‡‡‡†ˆ‰‡„‚€€€€€‚‚ƒ‚‚‚‚€‚‚‚‚€‚„„ƒ‚€€‚…€€€€€€€€€€€€€€€€‡‚zwxyxwttuuuuuusrqpooppssrqpppptsrqpnmmnoqtx|„‚€}zyxxwwxyz|}~„ˆ‰‡ƒ€€€€€€€€~}}}}}~~~~~~€}}€~~~€~}€„†‡‡‰ˆ…ztsttst†Šˆ…‚~z|€~|zzz{{xyzx|‚€€€ƒ„„‚€~~~~~€€~~~~~~~~~~~~~€€€€€€‚€€€€€€€€€€€€€‚‚‚‚‚‚ƒƒ„…„…„…„…„………ƒ‚€‚‚‚€~{{{{{{{{{|}}}}|{}||||{{{|{z|ƒƒƒ‚‚ƒƒ„††„ƒ‚‚‚‚ƒƒƒƒƒƒƒƒ„………ƒ|zy{{|}~€€€€€€€€€€€€€€€€‚ƒƒ„„ƒ‚‚‚‚‚‚‚‚‚ƒ‡†„ƒ‚ƒ„…‚‚ƒ„„…††ˆ‡‡…ƒ~„‡‰‹ŠŠ‰Š‹Šˆ†††…ƒ€~}€‚‚ƒ„………………………………††††††††‡‡†‡†††††††††………„…………†‡ˆ††††††……††………††‡„~yyxwx{‚‰‘‘’‘†|y{{~‚‚‚}|}~ƒ„ƒ‚„†ˆ‡†…………………………„„ƒ„……††…„‚‚€‚ƒ‚ƒ‚ƒ‚ƒ„„„„„„„„ƒ„„………„„„„„„„„„…„„ƒƒƒƒ„„……„„„ƒƒƒƒ„„…„……†„„„„ƒƒƒƒ‚‚‚‚‚‚‚ƒ„…†…†…†…†††††††††……†††‡‡‡†ˆ‰‡„‚‚‚€€€‚ƒ‚‚‚€‚‚‚‚‚‚ƒ„ƒ‚€€€‚…€€€€€€€€€€€€€€€€ƒzwwwwvxxxxyz{{{zxvvvwxrrrqqpooqqpppooomnoquy}‚}zyxwzzz{}~€€ƒ…‡†ƒ€~}|}}}~~~€€€€€€€~}€€~~~}€ƒ†…‡‰‰†„|uttsrs€…ˆ†………ƒ}|}~~|z}‚}{{|{„„ƒ‚ƒ„‚ƒ„…„ƒ€~~€€€€~~~~~~~~~~~~~€€€€€€€‚€€~~~€€€‚‚ƒ„„…„…„…„…„„…†…ƒ‚‚ƒ‚€~{{{{{{{{{|}}}}|{}||||{{{|zz{‚„ƒ‚‚‚‚‚ƒ„†…„ƒƒ‚ƒƒ„„„„„„„„„………ƒ€}{z{{|}}€€€€€€€€€€€€€€€€ƒƒƒƒƒƒƒƒ‚„…†„ƒ‚………„„„„„‡†„ƒƒƒ„„‚‚‚ƒ„……†‡‡ˆ‡…ƒ€„‡Š‹‹‹ˆ‰Šˆ‡„„„„ƒ‚‚ƒ„………………………………††††††††‡†‡†††††……††††††…„ƒƒ…†ˆ‰†††††………†…………†‡‡…{yxwxz~‡‘‘’’‘‡~z{zz}}~~~~€‚€…†…„‚‚‚‚‚‚‚‚ƒƒ‚‚‚ƒƒ†……ƒ‚€€ƒ‚ƒ‚ƒ‚ƒ‚„„„„„„„„„„………„„ƒ……„„„„„…„„ƒƒƒƒ„„……„„„ƒƒƒƒƒ„„………………„„„ƒƒƒ‚€‚‚‚€‚ƒ„†…†…†…†…††††††††……†††‡‡‡†ˆ‰‡„‚‚‚‚€€‚‚ƒ‚‚€‚‚‚‚€‚„„ƒ€€€‚…€€€€€€€€€€€€€€€€‚‚ƒ‚€€‚‚}zz{}zz{{{yxwrrqqppoonnnprwz}~~}|||{||}~€‚ƒ‚€€ƒƒƒ€€€€~}||}}~~~€€€€€€€€€~}~€~~}€ƒ……†ŠŠˆ‡~wttrrs„‡†…ˆ‰ˆ€|z||{~‚‚~{}}|€ƒ…†„„„…ƒ„…†…ƒ}~€€~~~~~~~~~~~~}€€€€‚€}}~~€€~~~~€‚ƒƒ„„…„…„…„…„…†…ƒ‚‚‚€‚‚‚€~||||||||{|}}}}|{}||||{{{|{z|‚ƒƒ‚‚ƒƒ„……„ƒ‚ƒƒƒƒ„„„„„„ƒ‚‚ƒ~{yy{{|}}€€€€€€€€€€€€€€€€ƒƒƒƒƒƒƒƒ~€‚……„‚€†††………„„ƒƒ‚ƒ„ƒƒƒ„„„………†‡ˆ‡„‚€€‚„†‡ˆ‡†ˆ‰‰ˆ…„ƒƒ‚‚‚‚‚‚‚ƒ„………………………………††††††††††††††……………††‡‡‡…ƒ‚„‡ˆ‰‡‡‡†††……††………††‡‡{zxwwz{…Ž’’“““†}yzxxyx{~~~€€€~€‚„ƒ‚€€€€€€€€‚€€€‚„ƒƒ‚€€‚ƒ‚ƒ‚ƒ‚ƒ„„„„„„„„„…………„ƒƒ„„„ƒƒƒƒ„„„ƒƒƒƒ„„……„„„ƒƒƒƒ„„„„……††………„„„„‚€‚‚‚ƒ„…†…†…†…†††††††††……†††‡‡‡†ˆ‰‡„‚‚‚‚‚‚‚‚ƒ‚‚€‚€‚‚‚‚‚‚ƒ„‚€€€‚…€€€€€€€€€€€€€€€€………„„…‡ˆƒ~zxxxxywsqprtv€ƒ„ƒ~€|xtpmlonmmpswy~~~~~}}|z{{|}€„~|~ƒ„€€€~~€~}||||~~~~€€€€€€€€€~~~~€€€~~}‚„„†ŠŠ‰‰xutrrs~„ˆˆˆ‰‰†‚}{}}{|}‚}{||{€‚……„ƒ„…„…††…ƒ}~€‚€~~~~~~~~~~~~}‚‚€€|}}~€€~~}}|€€‚…„…„…„…„……†…„‚‚‚‚ƒ‚€~||||||||{|}}}}|{}||||{{{|zz{‚ƒƒ‚‚‚‚‚ƒ„…„„ƒƒƒƒ„‚ƒƒ„„ƒƒ‚€‚‚€~{yxzz|}~€€€€€€€€€€€€€€€€~„‡ˆ†„‚………„ƒƒ‚‚ƒ‚‚ƒ„†‡…………„„„„‚„†‡‡†ƒ‚€„†‡‡††‰ŠŠ‰‡„„ƒƒ„…ƒ‚€‚ƒ„………………………………†††††††††††††………††††††††…‚€€„‡‰‰ˆ‡‡‡††……†…………†‡‡ˆ|zywwyxƒŽ’’“”•‰}xxwwxv{|{~‚€~€ƒ„„‚€€€€€€€€‚€€€‚€€ƒ‚ƒ‚ƒ‚ƒ‚„„„„„„„„„…………„ƒ‚…„„ƒƒƒƒ„„„ƒƒƒƒ„„……„„„ƒƒƒƒ„„„…………††††…………‚€€‚‚€‚ƒ„†…†…†…†…††††††††……†††‡‡‡†ˆ‰‡„‚ƒ‚‚‚‚‚‚ƒƒ‚€‚€‚‚‚‚€‚„„‚€€€€ƒ†€€€€€€€€€€€€€€€€‚ƒ‚€}||}†ƒ~yusrr{xurqsvx}~€€~|z€€}|zyyonllmptv~~|{yx{{{|~‚‚€}}~€‚‚€€€~~€€~}||||}~~€€€€€€€€€~~}~~€€€€~~}‚„„†Š‹‰‹‚yvtrrs}„ŠŠŠ‰‡ƒ‚}~zz||€€|yz{y~ƒ„ƒ‚‚ƒ„…†‡†„}~€‚‚€~~~~~~~~~~~~}€€‚‚€||}~€€~~}}||€€€€€€€„…„…„…„……††…„‚‚‚‚‚‚€~}}}}}}}}{|}}}}|{}||||{{{|{z|‚ƒƒ‚‚‚‚ƒ„…„ƒƒƒƒƒ„‚‚ƒƒ‚‚‚ƒ„‚€}{xyz{}~€€€€€€€€€€€€€€€€~~~~~~~~‚„ˆ‹ŒŠ‡…„ƒƒ‚€€…„„…†‰‹Œ‡‡†……„ƒƒ€‚…‡ˆ†„‚~€ƒ†‰ŠŠŠ‰‰Šˆ†„ƒƒ}€ƒ†‡…‚€‚ƒ„………………………………†††††††††††††………‡‡‡††††…†‚€„‡‰‰ˆˆ‡‡†††…†…………†‡‡ˆ‚|zxwwyw‚’’“••€xxwyzx}zy~‚„€ƒ…„ƒƒ‚‚ƒ€€€‚ƒ‚ƒ‚ƒ‚ƒ„„„„„„„„……………„ƒ‚††…„„„„…„„ƒƒƒƒ„„……„„„ƒƒƒƒ„„„………†‡‡‡†††……€€€‚‚ƒ„…†…†…†…†††††††††……†††‡‡‡†ˆ‰‡„‚ƒƒ‚‚‚‚‚ƒƒ‚€€‚€‚‚‚‚‚ƒ„‚€€€€‚†€€€€€€€€€€€€€€€€„ƒ€„†„{uqrvyuxyvrrx~~€ƒƒ}tqstvy}€€~|yrnoqppq‚€~}|||{|}€‚ƒƒƒ}~~~~||}~€€€€€€€~~}}|{{{|~€€€~}}~€€}€}{yyyz~€€€€€€}}€…‡†ˆ‹ˆ„|tqrsryˆŠ‰Š‰ˆƒ€~~€}yz~€|yzzw~„†…„„„††…„ƒ‚‚€€€€€€€€€~~~€€€‚‚‚}~~~€€€€€€€€€€€€€€}}}}~€~~~€€~{~}}}~~€€‚„……„„„„……„ƒ‚‚‚€‚‚€~}||{{||}{{{z{||}{{|||}}}}||~ƒƒ‚‚ƒƒ‚‚„†…„ƒ‚‚‚‚„„ƒƒƒƒ„„‚ƒ}yxxuwz}~~}€€€€€€€€€€€€€€€€~ƒƒ€~~‚…ŠŒ‹Š‰‰…€‡„€‰“•’‘Œ‡„ƒ…†„…„…Šˆ~€ƒ…†††…‰‡„ƒ‚‚‚‡ˆ‡…ƒƒƒ…††…„……„„„………††……†††‡‡‡†††††………‡‡†………†‡„‚€€ƒ‡‰‹Œ‹‰†ƒƒ„††††††††‰ˆ„}yyxvy~‰’““••xyyvvy|}}|{|‚~‚†ˆ‡†…ƒ€‚‚‚‚‚ƒƒƒ‚€€‚‚‚‚‚‚‚‚‚‚‚‚‚‚ƒƒ„………ƒƒƒƒ„„……„„ƒƒƒƒ„„…„ƒƒ‚ƒƒƒ„„„„„„„„„„ƒƒƒ„„…‡ˆˆˆˆ‡†…‚‚‚‚€€ƒƒƒ„†…†…†…†…†††††††††††††††††‡‰‡„€‚‚‚‚€‚ƒƒƒƒ‚€‚‚‚‚‚‚‚‚ƒ‚‚ƒ„„‚‚‚…€€€€€€€€€€€€€€€€„‚€„†„{uqruxwyyuqry€ƒƒ}tqstux|€€{vsnknu„ƒ€~~}}{{|}~€‚ƒzy|~~}|}}~€€€€€€€€~~}}||{{|~€€€~~€}~~|zxxyxxz}€€€€€~}€…‡‡ˆ‹‰†~vrrsrx€ˆ‰‰Š‰ˆ€}{|~|xz€|yzzx~„†…„„„„„ƒ‚€€€€€€€€€€€~~~€€€}~~€€€€€€€€€€€€€}}}}~€€~€€~|}}}}}~‚ƒ……„„„………„ƒ‚‚‚€‚‚€~{{{{{|}~{{{{{|}}{{|||}}}}|{}ƒ‚‚ƒƒ‚‚„†…„ƒ‚‚‚‚„„ƒƒƒƒ„„ƒ„„|xvvvxz}~~}€€€€€€€€€€€€€€€€~ƒƒ€~~‚†ŠŒ‹‰‰‰…€‡„€€ˆ’•“’‰…‚ƒ„„…„…‰Œ‡}„………„‡†…„‚‚†‹‹‡…„„…††…„ƒ„„…………†††……†††‡‡‡††††…………‡‡†……††‡…„ƒ„†‰ŒŽŽŽ‹ˆ……†††††††††‡†‚|yzywx|†”•––Ž‚xxywvy|}}}|}€‚„†…„ƒ€€€‚ƒ‚‚‚‚‚‚‚‚‚‚‚‚‚ƒƒƒ„………ƒƒƒ„„„……„„ƒƒƒƒ„„…„ƒƒ‚ƒƒƒ„„„„„„„„„ƒƒƒƒ„……ˆˆ‰‰ˆ‡††‚‚‚‚‚€€ƒƒƒ„…†…†…†…††††††††††††††††††‡‰‡„€‚‚‚‚€‚ƒƒƒ‚‚€‚‚‚‚‚‚‚‚ƒ‚‚ƒ„…†ƒ‚‚€‚†€€€€€€€€€€€€€€€€ƒ€~„†…zurrtuxyxtprz‚€„ƒ}tqsuuwz‚ƒƒ‚€}xpls~†…ƒ€{{{{}~€‚‚{tty~~}||}~€€€€€€€~~~}||{{|~€€€€€}~}{xwuutxwxz}€€~~}€„‡†ˆŠŠ‡xsssrx€‡‰‰Š‰ˆ|z{~}yz|zzzx}€„……ƒƒ„€~~~€€€€€€€€€~~~~~~€€€~~~~€€€€€€€€~}}}~€€€€€€}}||{|}~~ƒ„…„„„………„ƒƒ‚‚‚‚€~{z{{|}~|{{{{|}}|||||}}}|{z|€‚€‚ƒƒ‚ƒ„†…„ƒ‚‚‚‚„ƒƒƒƒƒƒ„…†…‚}xvuwx{}~~~}€€€€€€€€€€€€€€€€‚„ƒ~~‚†Š‹Š‰‰Š…€‚‡„ˆ’–“‘‘‹†‚€„……„ˆŠ†~|~€‚„„„ƒ‡‰Šˆ†„„……Š’Š†„…†‡†„‚‚‚……†…††††……†††‡‡‡†††††………‡††…††‡ˆ‡‡‰‹‘’Š‡‡‡††††††††††ƒ~|||zyzƒŽ”•–•Žƒyxywvx|}~}}~ƒ€~‚ƒ‚€€~||}~}|~€ƒ‚‚‚€€€‚‚‚‚‚‚‚‚ƒƒƒ„„„……ƒƒƒƒ„„……„„ƒƒƒƒ„„…„„ƒƒ‚ƒƒ„„„„„„„„„ƒƒƒƒ„…†‰‰ŠŠŠ‰ˆ‡ƒƒ‚‚€ƒ‚‚ƒ„†…†…†…†…†††††††††††††††††‡‰‡„€‚‚‚‚€‚‚ƒƒƒ‚€‚‚‚ƒ……‡„‚€‚‡€€€€€€€€€€€€€€€€‚€~~~„†„€ytssssyyxtps|„‚ƒƒ{tqsxwwz}‚„…~~~}xv}‡‡†„‚€€||{||~€‚ypow}~||}}~~€€€€€€€€~}}||{}~€€€€€€€€}|zwutttuwwwz}€~~~}„†‡‡ˆŠˆƒztrrrw‡‰‰Š‰ˆ~{||{}z{zx}€„…„ƒƒ„€€€€~~€€€€€€€€€~~~~}}}~~~~€€€€€€~}}}}~€€€€~||{{{||}€„„„„…†……„„ƒ‚‚€‚‚€~||{{{|}~||{{{|}~||||||||{zz|€‚‚ƒ‚ƒ…†…„ƒ‚‚‚‚ƒƒƒƒƒƒƒƒ„……‚}ywwyz{}}~}}€€€€€€€€€€€€€€€€€ƒ…„~ƒ†‰ŠŠ‰Š‹…€‡ƒˆ“–”ˆƒ€…†…„…‡„~|~€ƒ„„„ƒ†‰‹Š‡……†‡Œ‘”‹…ƒ„…††„ƒ‚ƒ††††††††……†††‡‡‡††††…†……‡‡†††‡ˆ‰‰‹Ž’““’‘’‘ŽŠ‡‡‡†††††††††‡…€|zŒ“””’„zwxwwx{}~ƒ}}€~~{yyz{zy|}~‚ƒƒƒ€€€€‚‚‚‚‚‚‚‚ƒƒ„„„„„„ƒƒƒ„„…„…„„„„„„„„…„ƒƒ‚ƒƒƒ„„„„„„„„„ƒƒƒ„…†‡‰ŠŠ‹‹Š‰‰„„ƒ‚€‚ƒƒ‚„…†…†…†…††††††††††††††††††‡‰‡„€‚‚‚‚€‚‚ƒƒ‚‚‚‚‚ƒ„…†‰†ƒ‚€ƒˆ€€€€€€€€€€€€€€€€€~}~„‡ƒ~wttttswyyurt}„ƒzrpsyxxy}€ƒ„|{|€‚„ˆ‡†„‚€~~~~}~‚xoov}~|||}~€€€€€€€~~}|||}}~€€€€~{yxwuuuwxwvvy}€~~~}~ƒ‡††‡ˆˆ„{tqqrv~†ˆ‰ŠŠˆ‚~{z~~|{€}{{{y}€ƒ…„ƒƒƒ€€€€€€€€€€€€€€~~~||}}~~~~~€€€€~}}|}}€€}|{z{{||~€ƒ„„„…††……„ƒ‚‚‚ƒ‚€}~}|{{{|||||{|}}~||||||||{zz|€‚‚‚ƒ…†…„ƒ‚‚‚‚ƒƒƒƒƒƒƒƒ‚„‚{{{{{||}}}}€€€€€€€€€€€€€€€€‚„†…‚~~„†‰Š‰‰Š‹…€‚…ƒ€Š”—”Ž‰„€…‡†‚ƒ„‚}}ƒ………„‚…ˆ‡„‚ƒ„†Š‘Žˆ„‚ƒ„†……„„„††††††††……†††‡‡‡†††††………‡†††‡‡‰‰ŒŽ’“’‘‘‰†……†††††††††‡†ƒ‚ƒƒ}y~Š’””’†{wwxxx{}€€€€‚„‚||}~~}|zxwxyyxz{~‚ƒ‚€€€€‚‚‚‚‚‚‚‚„„„„„„ƒƒƒƒƒƒ„„……„„„„„„„„…„„‚ƒ‚ƒƒ„„„„„„„„„ƒƒƒ„…‡‡ŠŠ‹‹Œ‹‹Š……ƒ‚‚€ƒ‚‚ƒ„†…†…†…†…†††††††††††††††††‡‰‡„€‚‚‚‚€‚ƒƒ‚‚‚‚‚‚ƒ…‡ˆŠ†„ƒ€ƒ‡€€€€€€€€€€€€€€€€~||~„‡€{usuvusuxyxuv}ƒxpnqxxwy|€‚ƒ{{‚‡‡……ˆ‡…ƒ€~~€€€€zsrw|}{|}}~~€€€€€€€€~}}||~}}€€€~|zxwwwwxxyvuuy|€€€~€}}ƒ†‡††‡ˆ…}tqqru~…ˆˆ‰Šˆ‚}yxz|{y{€‚~{|{y|ƒ„ƒ‚‚ƒ€€€€€€€€€~~~|}}}~~€€~~~~~~€€€€€‚~~}}|}~~€~}}|{z{{|}‚ƒ„„†‡††…„ƒƒ‚‚‚€‚‚€~~}|{{z{}||||}~~}}}||||||{z|€‚€‚‚‚„…†…„ƒ‚‚‚‚‚‚ƒƒƒƒ‚‚€‚ƒ‚}|}|}|}}}}}€€€€€€€€€€€€€€€€ƒ…‡†‚~…‡‰‰ˆˆŠŒ…€„ƒ‚…Ž—˜“ŽŒˆ„€…‡†‚€‚€}}„………„‚„……ƒ‚ƒ„…ˆ‹Š†„ƒƒ…††………†††††…†…………†††‡‡‡††††…†……‡‡††‡ˆ‰ŠŽ‘‘ŽŒˆ…„„††††††††„†…ƒ‚ƒƒ{v{ˆ‘”””‘‡|vvxxxz}€‚‚ƒ…‚{{|~~~|zwwxyxwz{}€€€€‚‚‚‚‚‚‚‚……„„„ƒƒƒƒƒƒ„„„……„„„……„„„…„ƒƒ‚ƒƒƒ„„„„„„„„ƒƒƒ„…†‡ˆ‰Š‹‹ŒŒ‹‹‡…ƒ‚‚€ƒƒ‚„…†…†…†…††††††††††††††††††‡‰‡„€‚‚‚‚€€‚ƒƒƒ‚‚‚‚‚‚„†ˆ‰‰‡……ƒ‚†€€€€€€€€€€€€€€€€~}||~…‡}xssvywtqv{{yx|€€}vnmpuuvy}ƒƒ‚|z€‡ˆ††Š‰‡„‚€~€€}xwz||{||}~€€€€€€€~~}||~}}€~}}~}{xwwxxxwwvutux|€€€€}}‚‡‡……†‰‡vrrtu}…ˆˆ‰Š‰„ywyzyw|€‚~|||z|‚„ƒ‚‚‚€€€€€€€€€€€€~~~}}}~~€€€~~}~~€€~€€€‚‚‚ƒ~}}|||}~~}~~~}|{{{|||~ƒ„„†‡††…„„ƒ‚‚‚€‚‚€~~}|{{{{{}}|||}~}}}|||{{}|{}ƒ‚€‚‚‚„††…„ƒ‚‚‚‚‚‚ƒƒƒƒ‚‚‚ƒ„‚|{|~}}}}}}}€€€€€€€€€€€€€€€€„†ˆ†‚~~…‡ˆˆ‡ˆŠ…€‚‚ƒ„‰’š˜’‘‘Œ‡ƒ€€†ˆ†||~€‚„„„ƒ„„„„„„………‡‰‰‡…†‡…†‡‡†………†††…………„……†††‡‡‡†††††………‡†††‡‰Š‹Ž‘‘‰…„„††††††††„††ƒƒ„ƒ€{vzˆ’”•‘ˆ|uvxyxz}ƒƒƒ„…~{z|€€|zxxyyyxz{}~€€€€‚‚‚‚‚‚‚‚‚‚………„ƒƒƒ‚ƒƒƒƒ„„……„„…………„„…„ƒƒƒ‚ƒƒ„„„„„„„„ƒƒƒ„…†ˆ‰‰‰Š‹ŒŒ‹‹ˆ†„‚€‚€ƒ‚‚ƒ„†…†…†…†…†††††††††††††††††‡‰‡„€‚‚‚‚€€‚‚ƒƒƒ‚‚‚‚‚‚‚‚‚‚‚‚ƒ„†ˆŠˆ‡‡ˆ†‚‚„€€€€€€€€€€€€€€€€~}{|}…‡{vqrwzxuou|}{y|€|umlorsuy~‚ƒƒ€{y~„‡‰ŒŒ‹ˆ†„‚}~€‚‚€~}|{{|{{|}}~€€€€€€€€€~~}}|~}}‚€~}}}}zxwxyyxvtrttux|€€€€€€}}‚†‡…„†‰ˆ€wssuu}…‡ˆ‰Š‰‡‚|yz{zx|‚|||z|‚„ƒ‚‚‚€€€€€€€€€€€€€~~~}~~~€€€€€~~~}~~€€~€€‚ƒƒƒ~~}|||}}}€~}}~~~}|{{|||~ƒ„…†‡††……„ƒ‚‚‚€‚‚€~}||{{||}}}|||}~}}}|||{{}||~ƒƒ‚€‚‚‚„††…„ƒ‚‚‚‚‚‚ƒƒƒƒ‚‚„……ƒ{zz~~}}|}}}€€€€€€€€€€€€€€€€„‡ˆ†‚~~†‡ˆˆ‡ˆ‹…€ƒ†Œ•›™’“’‹††ˆ†}~~|{}ƒƒ‚‚„‚‚ƒ„„…‡ˆ‡…†‡Š‡ˆˆˆ†…„…††………„„„……†††‡‡‡†††††………‡††‡‡‰‹ŒŒŽ‘’“’“‘Ž‰†……†††††††††ˆˆ…„…„‚|w{ˆ‘’“‘‰}uuxyxz}ƒƒ„„…~zz|‚}{xxyzzx{|}~~‚‚‚‚‚‚‚‚‚‚‚‚………„ƒƒ‚‚ƒƒƒ„„„……„„…………„„…„ƒƒ‚ƒƒƒ„„„„„„„„ƒƒƒ„…‡ˆ‰ˆ‰Š‹‹‹‹‹ˆ†„€‚‚€ƒƒƒ„…†…†…†…††††††††††††††††††‡‰‡„€‚‚‚‚€€‚ƒƒƒƒ‚‚‚‚‚‚‚‚‚‚‚‚ƒ„‡‰Š‡‡ˆ‰‡ƒƒ€€€€€€€€€€€€€€€€ƒ€}{|ƒ…ywuttuwysuwwvwz}}|zwtqontux{‚„†{yx|‚†…ƒŠ†ƒ€|{{…†€{ƒ~{yyz{}}~~~~}}~~~€€€~~}}}}~~~~€€€€€€~|{zwyzywvvwuuvwz|~€}~~~~}€~~ƒ‡‡…Š‰‡…‚|{|ƒ‡‰Š‰ˆ‚|x{}|{z{}€|yww|…ƒ‚‚‚€€€€€€€€€€€€€~}~€}~~~~~~~~~~~~~~~~‚€~~€~‚€€€}}|||}}~€~~~}}}|{{{{|}~€‚„…………………„ƒ‚ƒ‚€~~~}}}|||~~~~~~~~€}|||~~{zz}ƒƒ‚‚‚‚ƒ„„†…ƒƒƒƒƒ‚‚ƒ‚„…ƒ|{{zz{}|z{~€€€€€€€€€€€€€€€€€ƒ…„‚…ŠŠŠŠŠŠŠŠ‰‡„€~~€ˆ‰‹Ž‘”–—”’‹‡ƒ~‰ˆ‡…ƒ~}}~€‚‚‚‚ƒƒƒ„…††‡‡ˆˆˆ†††††††††…†…†…†………†‡ˆ‡‡‡‡‡‡‡†††…†††‡ˆŠ‹Œ‘ŽŒŒŽ‘‘‘’’‘Ž‹‡…†††††††††ˆ‡…„…„‚zzz|€„‰ŒŽˆ~wuvy{|~€‚~{{~‚‚zwxzyy{y|‚ƒ‚€€€‚‚ƒ„„ƒ‚‚„„„ƒ„ƒ„„ƒƒ„„„„……‚ƒ„„……„„„„ƒƒƒƒ„„„………††††„ƒƒ„‡ˆˆ‡ˆ‰Š‹‹ŠŠŠ‰ˆ†„‚€‚‚‚‚‚‚‚‚‚‚‚€ƒ………………………††††††††…………†††††‡‰‡„‚‚ƒƒ‚‚€‚ƒƒ‚‚‚‚„†ˆ‰ˆ‡ˆˆ…‚„ˆ€€€€€€€€€€€€€€€€~}{{{~‚yxvuuvxy{ytpot}„~~|zwvtsz{}€‚…‡ˆ‚€„†…‚ŽŒ‹‰ˆ‡‡‡‚}~€}y~|zyz{|}}~~~}}~~~€€€~~}}}}~~~~€€€€€~|{yywyzywvvwuvvxy|~€~~~~~~~~€~ƒˆˆ†‰Š‰‰ˆ‡††‚ƒ†ˆ‰‰‰ˆƒ}y{}|zy{~€€|yww|„ƒ‚ƒ‚€€€€€€€€€€€€~}~€}~~~~~~~~~~~~~~~~}}~~}‚€€€€€~}}|||}}~~~}}}}}|{{{{|}~€‚ƒ………„„„ƒƒ€€‚€‚‚‚€~~~}}}|||~~~~~~~~~~}|||||{zz}ƒƒ‚‚‚‚ƒ„„†…ƒƒƒƒƒƒ‚‚‚ƒ‚„„ƒ|{{zz{}|z{~€€€€€€€€€€€€€€€€ƒ…ƒ€~€‚‰‰‰‰‰‰‰‰‡…ƒ~~~‚ƒ†ˆŠ‹ŒŒ‹‰†‚|{„„ƒƒ€{{{||}}}‚‚‚ƒƒ„„„…††‡‡ˆˆˆ††††††††…†…†…†…†……†‡‡‡‡‡‡‡††††………††ˆ‰‹ŒŽŒ‘‘‘‘‘‘ŽŠ†„††††††††…††„ƒ„ƒwvvvwz|}€}ywwyyz|~€ƒ~{{~‚‚zwyyyy{z{}€€€€‚‚ƒ„„ƒ‚‚ƒƒƒ„ƒƒƒƒƒƒƒ„„„„…„„………„„ƒ„„ƒƒƒ„„„„…………†††…„ƒ…‡‰ˆ‡ˆ‰ŠŠ‹ŠŠŠ‰ˆ†„‚€‚‚‚‚‚‚‚‚‚€ƒ………………………††††††††…………†††††‡‰‡„‚‚ƒƒ‚‚€‚ƒƒ‚‚‚ƒ†‡‰ˆˆˆˆ…‚„ˆ€€€€€€€€€€€€€€€€‚‚‚‚ƒƒ††„„„„††}xrqw‰ŠŠŠˆˆ††…‚ƒ„†‡ˆ‰‰‡…„……ƒ‹‹‹‹ŒŒˆzvxyzxyyxxyz|}}~~~~}~~€€~~}}}}~~~~€~|{yxwwxyywvvvuuvwz|~€~}}~~~ƒˆŠˆˆˆˆˆˆ‡††ˆˆ‰‰‰‰‰‰„~z{}{yx|~€€|ywv|„ƒ‚ƒƒ€€€€€€€€€€€€€~~€€~~~~~~~~~~~€~}}}~}}€€€~}}|||}~~~}}|||}}|{{{{||}ƒ„……„„„ƒƒ‚€€‚ƒ‚€~~~}}}|||}}}}}}}}|||}|{{z{zz}ƒƒ‚‚‚‚ƒ„„†…ƒƒƒ„„ƒ‚‚ƒƒ‚„…ƒ|{{zz{}|z{~€€€€€€€€€€€€€€€€ƒƒ‚€~€€€€€€€„„„ƒ‚}|}~‚‚„ƒ‚€~|{z~}}||||{ƒƒƒ„„„…………††‡‡ˆˆ†††††††††…†…†…†………‡‡ˆ‡‡‡†††…†…………†‡‰ŠŒŽŽŽŽ‰†ƒ†††††††††‡†ƒ‚}yxxwwwwwvvwy{{yw|~€‚€}{{~ƒƒ€zwxzxy{{{||~~€€€‚‚ƒ„„ƒ‚‚ƒƒƒƒƒƒƒƒƒƒ„„„„…………††…„„ƒ„„„ƒƒƒ„„………………††…„ƒ„‡ˆˆ†ˆˆ‰Š‹ŠŠŠŠˆ‡„‚€€‚‚‚ƒƒ………………………††††††††…………†††††‡‰‡„‚‚ƒƒ‚‚‚‚‚‚‚‚„…ˆ‰ˆ‡ˆˆ…„ˆ€€€€€€€€€€€€€€€€…†††„ƒ€‚‚‚‚‚}„ˆƒƒƒ„ƒ„„„………††‡‡‡ˆ‡†…„ƒ€€€‚ƒƒ„{vpnptvvttuwy{}}~~~~~~€€~~}}}}~~~~~€|{xwvuxxxxwwuuuvvxy|~€€~}}~€~‚ˆ‹ŠŠŠŠ‰ˆ‡……‹Š‰ˆ‡ˆ‰Š…z|}zxw|€|xvv{„ƒ‚ƒƒ‚‚€€€€€€€€€€€€~€~~~~€~}}~~~€‚‚€€~}||||~~}}||{|}}|{{{{||}ƒ„„……………„ƒ‚‚€‚‚‚€~~~}}}|||}}}}}}}}{|}~~|{z{zz}ƒƒ‚‚‚‚ƒ„„†…ƒƒƒƒƒƒ‚‚ƒ‚„„ƒ|{{zz{}|z{~€€€€€€€€€€€€€€€€€€€‚‚‚‚„…†‡…ƒ€}€€~~‚‚‚‚‚‚‚‚„„ƒƒ€€ƒ„„……†††„……††‡‡‡††††††††…†…†…†…†…††‡‡ˆ‡‡………………………†ˆŠŒŽŽŽ‘Œ‰…ƒ††††††††‡ˆˆ†‚}xuxxxyxxxxuwy|}|xv|~€ƒ}z{~‚ƒƒ€{wyyyxz{{zz{}€€€‚‚ƒ„ƒƒ‚‚ƒƒƒƒ‚ƒƒƒƒ„ƒ„„…„………†††……„„„ƒƒƒ„„„……………………†„ƒ…‡ˆ‡†‡ˆ‰ŠŠŠŠŠŠ‰†…‚€€‚‚‚€ƒ………………………††††††††…………†††††‡‰‡„‚‚ƒƒ‚‚‚‚‚‚ƒ†‡‰ˆˆˆˆ…‚„ˆ€€€€€€€€€€€€€€€€ƒƒ‚€}yvtuuuvvuuuoruutrstssttvvwwtttttsssrssrqppqqqqqqqqqpnllnprrpqtwz}~~~€~~~~}}}}~~~~~~~}{xwvvuxxxwxvvuuuvwz|~€€~}}~€~‚‡‹‹ŠŠŠŠŠ‰‰ˆŠ‰‡††‡‰Š…z|}zxw}€|xvu{€„ƒ‚ƒ„‚‚‚‚€€€€€€€€€€€~€€~~~€€~~€‚‚€€~}}|||~}}|}||{}}|{{{{||}‚„„„„„…„„ƒ‚‚‚ƒ‚€~~~}}}|||}}}}}}}}|}~|{{zz}ƒƒ‚‚‚‚ƒ„„†…ƒƒ‚ƒƒ‚‚‚‚„…‚|{{zz{}|z{~€€€€€€€€€€€€€€€€~~~€‚„……ƒ‚ƒ‚ƒ‚ƒ‚†‡‰‰ˆ†ƒ†……„„ƒ‚‚‚‚ƒƒ„ƒ„„‡‡†……ƒƒ‚ˆ‡‡……„ƒƒƒƒ„„……††„„……††‡‡†††††††††…†…†…†………‡‡ˆ‡‡†……………………†‡‰ŒŒ‰…ƒ†††††††††‡ˆˆ„}uquvwxyxxxxxyz|{yw|~€‚|z{~‚„„{xxzxxz{zyyz|~€€€‚‚ƒƒ„ƒ‚‚‚‚‚‚ƒ‚‚‚ƒƒ„„„„……ƒ„……††††„„„ƒƒƒ„„………„…„…„†…„…‡‡‡…†‡ˆ‰ŠŠŠŠŠ‰‡„ƒ€€‚ƒƒ………………………††††††††…………†††††‡‰‡„‚‚ƒƒ‚‚‚€‚‚‚„…ˆ‰ˆ‡ˆˆ…„ˆ€€€€€€€€€€€€€€€€‚~{wurqqrsttsrqopqpnnpspppqrsssrrrqqqqqnoqponpqppoonmllqqpqppoonqtx{~~€€~~~}}}}~~~~~~~~}|zxvvvwxwwwwwutuvvxy|~€€~~~~€€~†Š‹ˆˆˆ‰‰‰ˆˆ‰ˆ‡††‡ˆ‰„~z{}{yx~€€|xuuz€ƒƒ‚„„‚‚‚‚‚€€€€€€€€€‚€€€€€€€€€€~~€€€~~€€€€€€€~}}}}}~~}}}}||}}|{{{{|{|~€‚ƒ„„ƒƒƒƒƒ‚‚€‚‚‚€~~~}}}|||}}}}}}}}~~~~}|{zz}ƒƒ‚‚‚‚ƒ„„†…ƒƒƒƒƒ‚‚ƒ‚„„ƒ|{{zz{}|z{~€€€€€€€€€€€€€€€€€„††…‡‡ˆˆ‡†…„……„ƒ‚‚„„„……††‡‰‰ˆ‡……„ƒ„„„„ƒƒ‚‚ƒƒƒ„„………ƒ„„……†††††††††††…†…†…†…†…††‡‡‡‡‡………†…†††ˆ‰‹ŽŽŽ‘‰†ƒ††††††††ƒ„‡‰†~wsvwwxxyxxxwvwxzzy|~€ƒ~|z{~‚„…|xyyxwyzzyyz|~€€‚‚ƒ„„ƒ‚‚‚‚‚‚‚‚‚‚ƒ„ƒ„„…„…‚‚„…††‡‡„„ƒƒƒ„„„……„…„„„„‡…„…†‡†……†‡‰ŠŠŠŠ‹Š‡…ƒ‚€€€€‚‚‚€ƒ………………………††††††††…………†††††‡‰‡„‚‚ƒƒ‚‚€‚‚€‚ƒ†‡‰ˆˆˆˆ…‚„ˆ€€€€€€€€€€€€€€€€|yusrstnoqrrqonpppmklorpppqqqrrppppqqqqmprqnmoqtsssrrqqtuusrpppoqvz}~€€€~~~}}}}~~~~~}}}|{ywvvxxxwvvxwusuuvwz|~€€€~€„‰Š‰‰ŠŠŠ‰ˆˆ‰ˆˆˆ‡ˆˆˆƒ}y{}|zy~€‚€|wutzƒ‚‚„„ƒƒ‚‚‚‚€€€€€€€€‚€‚€€€€€€€€€~~~€€}}~€~€€~}}~~~~~}}}}}|{{{{|{|~€‚ƒ„„‚ƒƒƒƒ‚‚‚ƒ‚€~~~}}}|||||||||||~}||||}{zz}ƒƒ‚‚‚‚ƒ„„†…ƒƒ„„„ƒ‚‚ƒ„‚„…ƒ|{{zz{}|z{~€€€€€€€€€€€€€€€€‡„‚ƒ…†„……………………††„ƒƒƒ„„‚‚‚€€€‚‚‚ƒƒƒ„„……………………€‚‚‚‚‚‚‚ƒƒ„„„ƒƒ„„……†††††††††††…†…†…†………†‡ˆ‡‡‡……††††‡‡‰‹ŽŽŽŽŽŽ“‘‘‘ŽŠ†„††††††††„„‡‰†ywwwwvwwwwywuuwxyy|~€‚~{z{‚……‚|yyywwyyyzz|}~~€€‚‚ƒ„„ƒ‚‚‚‚‚‚‚‚ƒƒ„„„„……‚‚„……………„„„ƒƒƒ„„………„„„„ƒ‡†……‡‡†„…†‡‰ŠŠŠŠ‹Šˆ…ƒ‚€€€€€€‚‚ƒ………………………††††††††…………†††††‡‰‡„‚‚ƒƒ‚‚€€‚‚€‚‚‚„…ˆ‰ˆ‡ˆˆ…‚„ˆ€€€€€€€€€€€€€€€€usolkmprpqsuusqpqrsqonpsuuuuuuuuppqqrrsspsusomorpppqqqqqtttsqqrsprw{~€€€€~~}}}}~~~~~}}}|zxvvwyzxwvvwwusuvvxy|~€~€€~€€~ƒˆŠˆˆˆ‰‰‰‰ˆŠŠŠ‰‰ˆ‡‡‚|x{}|{z~€‚€|wutzƒƒ‚„„ƒƒƒ‚‚‚€€€€€€€€‚€€‚€€€€€€€€€€~~~~||}~~}~€~~~}~~~~~}}}|{{{{|{|~€‚ƒƒ„ƒ„„„„„ƒƒ‚‚‚€~~~}}}|||||||||||~}|zz{|}{zz}ƒƒ‚‚‚‚ƒ„„†…ƒƒ………„ƒƒ„…‚„„ƒ|{{zz{}|z{~€€€€€€€€€€€€€€€€Œ‰…„†…‚~‚‚‚‚‚‚‚‚…ƒ€‚ƒ€€€€€€‚ƒ„…††€€‚ƒ„„‚‚ƒƒƒ„ƒƒƒ„„………††††††††…†…†…†…†……†‡‡‡‡‡…†††‡‡‡‡‹ŒŽŒŽŽŒŽ‘”‘’’‘Ž‹‡…††††††††ˆ‡‡ˆ…~zyxxwwwxxy|zwwwxxw|~€ƒ}{y{~ƒ……‚|yyywwyyyz{|}~~€€‚‚ƒ„„ƒ‚‚ƒƒ„„„„……ƒƒ„„…„„„„„ƒƒƒƒ„„………„„„ƒƒ‡†……†‡†„„…‡ˆŠŠŠŠ‹Šˆ…ƒ‚€€€€€€€€‚‚‚€ƒ………………………††††††††…………†††††‡‰‡„‚‚ƒƒ‚‚€€‚‚‚„†ˆ‰ˆˆˆˆ…‚„ˆ€€€€€€€€€€€€€€€€zwsonoqrurppsutrsrppqrrqrtspnopqqrstuuuuvurqrrrrqqqrrsstssssssrrrvz||||}~~~~~~~}~€€}}}}}}}}~~}{ywxxxxxxxxxyyxxwvuwvuuw{~€~~~~}ƒ†ŠŠˆ‡†††††‡ˆ‰ŠŠŠ‰ˆ€|z|}{{|€{wuuy~‚‚‚„„ƒƒƒƒƒƒƒƒƒ~€€~€‚‚‚‚€€€€€€€€~~~~~~~~}}}€€€}}}}}}}}}}~~~€~|{zzz}{{}„……„„„„ƒ‚€€‚€€‚‚€~}}}||{{}}}}}}}}~~~~}}}}{zz}ƒƒ‚ƒƒ‚‚ƒƒ……ƒ‚ƒ„…„ƒƒ„…€‚ƒ~{zz~|xxzz{€€€€€€€€€€€€€€€€ˆ†ƒ€‚ƒ‚‚‚‚‚‚‚‚ƒƒƒƒƒ‚‚‚‚‚‚‚‚‚‚‚ƒƒƒƒƒƒƒƒ‚‚‚ƒƒ‚‚‚‚‚ƒƒ‚‚‚„…†‡††…………††††††‡‡‡‡††ˆ‡‡‡‡‡‡‡‰ˆ‡†‡‰‹ŽŽŒŒŽŽŽ‘Œ‰‡††††††††‡‡‡†„€{wwxy{||zxzyxwwxyy~~~€‚€~{{~‚ƒ€{xyzyy{xwwwy{~€€€€ƒ„„„ƒ‚€ƒ‚‚‚‚ƒ„„„„„„„„ƒ„„„„„„…†…„‚‚ƒƒ„…„…„…„…„ˆ‡………†……~‚‡Š‹ŠŠŠŠŠŠ‡„‚‚‚‚‚‚€ƒ…„„„………††††††††††……„„„…†‡…‡ˆ‡„€‚‚ƒƒ‚‚€€€€‚„‡‰Šˆ‰Š‰„€„‹€€€€€€€€€€€€€€€€ywtrpppqsqnortrqqqpppppqqqqpnnpsuvwxxwvvtsqqrtuussssrrqqqrrrqqppruz}||}~~~~~~~}}}~€}}}}}}}}|}}|{yxvwwwwwwwwxxxxwwvuwvuvwz~€~~~€~}‚†‰ŠŠˆ‡………††‡ˆ‰‰‰ˆ‡€|z||{{|{wvvy‚‚ƒƒ‚‚‚‚‚‚‚‚‚‚€€€€€€€€€€~~~~~~~~~€€€€€€~~~~~~~~}~~~~€}|{zzz}|{}€„……„„„„ƒ‚€€‚€‚‚€}}}}||||}}}}}}}}~~~~}}}}{zz}ƒƒ‚ƒƒ‚‚ƒƒ…„ƒ‚ƒƒƒƒƒƒƒƒƒ„‚~{z{||yz|{z€€€€€€€€€€€€€€€€‰‡„‚€‚‚‚‚‚‚‚‚‚ƒƒƒƒƒ‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚ƒƒƒ‚‚‚‚ƒƒ‚‚‚„…†‡††………††††‡††‡ˆˆ‡††‡‡‡‡‡‡‡‡†††‡‰ŒŽŽŽŽŒŽŽ‘‘Œˆ†††††††††‡‡‡†…|xvwy{|}}|zzxwwxxy~~€‚€}{{~‚‚€{wxxwwywwwxy|~€€€€‚ƒƒ„ƒƒƒ‚‚‚‚ƒ„„„„„„„„ƒ„„„„„„…†…„ƒ‚ƒƒ„„…„…„…„…‡†……††…„‚‡Š‹ŠŠŠ‰ŠŠ‡„‚‚€‚‚‚‚€ƒ…„„„………††††††††††……„„„…†‡…‡ˆ‡„€‚‚ƒƒ‚‚€€‚„‡‰Š‡ˆŠ‰„€„Š€€€€€€€€€€€€€€€€xwusqppoqomnpqqonoqppopponooonrv}|{yxvtsrqpprsttsrqppqrsqrsrqoopquz|}|}~~~~~}~}}}}~}}}}}}}}{{zyxwwvwwwwwwwwwwxxwvvuwvvvxz}~~~~€€„‰‹Š‰†„„…†…†‡ˆˆ‡‡†€|z|}{{|‚{xvv{€ƒ‚‚‚€‚‚€‚€€€€€€€€~~~~~~~~€€~~~€}|{z{{}{{}ƒ……„„„ƒƒ€‚€€‚‚€}}}}}|||}}}}}}}}~~~~}}}}{zz}ƒƒ‚ƒƒ‚‚ƒƒ…„ƒ‚‚‚ƒ‚‚ƒ‚‚„…‚{{{z{y{}{y~€€€€€€€€€€€€€€€€Šˆ†ƒ‚€€€ƒƒƒƒƒƒƒƒƒƒƒƒƒ‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚ƒƒƒ‚‚‚‚‚‚ƒƒ‚‚‚‚„…†‡††……††††‡‡†‡ˆˆˆˆ‡†‡‡‡‡‡‡‡‡††ˆŠŒŽŽŽŽŽŽŽŽ‘‘‘Ž‹ˆ………………………‡‡‡‡…‚}zwxzz{|}~{zyxwwxx€~~€‚€}z{}€‚‚zwwywwyxxyz{}€€€‚ƒ„„„ƒƒƒ‚‚‚‚ƒ„„„„„„„„ƒ„„„„„„…†…„ƒƒƒ„„…„…„…„…„………†‡†…ƒ€ƒ‡ŠŠŠŠŠŠŠŠ‡„‚€‚‚‚ƒƒ…„„„……………………………………„„„……†‡…‡ˆ‡„€‚‚ƒƒ‚‚‚‚‚„‡‰Š‡ˆ‰‰„„‰€€€€€€€€€€€€€€€€zwsommnopnmnoqonnopqppopnnnooqty}{xutsssqpoooppprqommnopprsronnppuy||}}~~}~}}}}|||}~|||}|}||zzyxwwwwwwwwwwwwwwwxwwvuwwvwxz|~~~~~~€~~‚‡ŠŠ‡…ƒ…††…†‡ˆˆˆ‡†€|z||{{|€{ywx{€ƒ‚€€~€€€‚€€€€€~~€€}~}~€‚€€€€€€€€~~}|{{{{}|{}€„……„„„„‚‚€€‚€‚ƒ€}}}}}}}}}}}}}}}}~~~~}}}}{zz}ƒƒ‚ƒƒ‚‚ƒƒ„„ƒ‚‚‚‚‚‚‚‚‚‚ƒ……ƒ|zzzzxy|zy~€€€€€€€€€€€€€€€€Š‰‡…‚€ƒƒƒƒƒƒƒƒƒƒƒƒƒ‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚ƒƒƒƒƒ‚‚‚‚‚ƒƒ‚‚‚‚„…†‡††…††††‡‡‡‡ˆˆ‰‰ˆˆ‡‡‡‡ˆˆˆˆˆ‰Š‹ŽŽŽŽŽŽŽŽ‘‘ŒŠ‡………………………‡‡‡‡†„€}zzz{zyz}{zyxwwxx€€~~}zz}€‚~yvyzzz}}}}~~€€€€€€‚„„…„„ƒ‚‚‚‚ƒ„„„„„„„„ƒ„„„„„„………„„„„„„„…„…„…„…„„…‡ˆ‡„‚„ˆŠŠŠŠŠ‰ŠŠˆƒ‚‚‚€‚‚‚‚€ƒ…………………………………………………„„„…†‡…‡ˆ‡„€‚‚ƒƒ‚‚‚‚‚‚‚„‡‰Š‡ˆ‰‰…‚„ˆ€€€€€€€€€€€€€€€€|xqljkmponnnpppnooppqqponopoqtxyzwtqqqqqqponoonmmnnoonnmnoqpnlmnpty|}}~~~~~~}}}|||{||~~{{{{|{{{zyxxwwxxwwwwwwwwwwxwxwvvxwxxz{|}~~~~~€~}€…‰ˆ…‚ƒ†ˆ†††ˆˆ‰ˆ‡‡€|z|}{{|‚€}yxy|„‚€€€€€€€‚‚ƒ‚‚€€€€€€}}}}~‚~~~~~}{{{{|}{{}ƒ……„„„ƒƒ€‚€€‚‚€}}}}~}~~}}}}}}}}~~~~}}}}{zz}ƒƒ‚ƒƒ‚‚ƒƒ„ƒ‚‚‚‚‚ƒ‚ƒƒƒ‚‚ƒƒƒ……‚zyy{zvvxwx~€€€€€€€€€€€€€€€€‰‰ˆ†…‚‚‚‚‚‚‚‚‚ƒƒƒƒƒ‚‚‚ƒ‚ƒ‚‚‚‚‚‚‚‚‚‚‚ƒƒƒƒƒƒƒƒ‚ƒƒƒ„ƒƒ‚ƒƒƒ‚‚ƒƒƒ‚„…†‡††††††‡‡ˆ‡ˆˆ‰‰‰‰ˆˆˆˆˆˆ‰‰ŠŠŒŽŽŒŽŽŽŽŽŽŽŽŽŽ‹ˆ†………………………‡‡‡‡‡…‚€{yyzzxy{{zyxwwxx€€~~|zz|}xwy|}‚‚‚‚€€€€€‚ƒ„………„ƒ‚‚‚‚ƒ„„„„„„„„ƒ„„„„„„………………„„ƒ…„…„…„…„ƒ„…†‡‡„‚ƒ…ˆŠŠŠŠ‹ŠŠŠ‡„‚€‚‚‚ƒƒ………………………………………………„„„……†‡…‡ˆ‡„€‚‚ƒƒ‚‚‚‚‚‚‚„‡‰Šˆˆ‰Š‡ƒ„ˆ€€€€€€€€€€€€€€€€}ztommnponnopqonoonpqrqpoppqtxyywtrqqpompooooponllnoopppmoppnmmnosx|}~€~~~~}}|||{{{{|}}zzzzzzzzxxxxxxxxwwwwwwwwwxxxxxwwyyz{{}}}~~~~~~|~‚†‡„€…‡††‡ˆ‰‰‰ˆ‡€|z||{{|‚€}zyz|„ƒ‚ƒ‚‚‚€€€€€‚‚‚€‚‚€€€€€~}|||~€~~~~~~}}~~||{{||}|{}€„……„„„„ƒ‚€€‚€‚ƒ€}}}~~~~~}}}}}}}}~~~~}}}}{zz}ƒƒ‚ƒƒ‚‚ƒƒƒƒ‚‚‚‚ƒƒ‚ƒ„„ƒ‚ƒ„ƒ„„‚}ywwzxtsvuw}€€€€€€€€€€€€€€€€‡‡‡‡†„‚‚‚‚‚‚‚‚‚ƒƒƒƒƒ‚‚‚ƒƒ‚‚‚‚‚‚‚‚‚‚‚‚ƒƒƒƒƒƒƒƒ‚ƒƒ„ƒƒƒƒƒƒƒ‚‚ƒƒƒ‚„…†‡†††††‡‡ˆˆˆˆ‰ŠŠŠŠ‰ˆ‰‰‰ŠŠ‹‹ŒŒŽŽŽŽŽŽŽŽŽŽŽŽŽŒ‹‰‡††……………………‡‡‡ˆˆ‡…ƒzwvz|{z|zyxwwxyy€€€}~€~|yy|€}xvy|}‚ƒƒƒ‚€€€€‚ƒ„………„„ƒ‚‚‚‚ƒ„„„„„„„„ƒ„„„„„„……†††……„ƒ„…„…„…„…„ƒ„…††…ƒ„†ˆŠ‰‰Š‹‰ŠŠˆƒ‚‚€‚‚‚‚€ƒ………………„„„…………………………„„„…†‡…‡ˆ‡„€‚‚ƒƒ‚‚‚‚‚„‡‰Š‰‰Š‹‰……ˆ€€€€€€€€€€€€€€€€}}{zwsponnoopponnnnnopppqporvyywrpoopqpnonnopponponmmmnonnooooooosx|}~€~~~}}|||{{{z{{|}xxyxyxyxvwxyyxwvwwwwwwwwxxyyyyxxzz||}~~~~~~~~~~|}ƒ‡†€}†‡††ˆˆ‰ˆ‡‡€|z|}{{|€‚€}{zz{„„ƒ……ƒ‚‚‚‚‚‚‚‚€€~€€~‚‚‚€~~|{{}~€~~~}}}}|~}|{{{||}{{}„……„„„ƒƒ€‚€€‚‚€}}~~~~}}}}}}}}~~~~}}}}{zz}ƒƒ‚ƒƒ‚‚ƒƒƒƒ‚‚‚‚ƒƒƒƒƒƒƒƒƒƒ‚ƒƒ€|xvvwvssvtuz€€€€€€€€€€€€€€€€„…‡ˆˆ†…ƒƒƒƒƒƒƒƒƒƒƒƒƒƒ‚‚‚ƒƒƒ‚‚‚‚‚‚‚‚‚‚ƒƒƒƒƒƒƒƒƒƒƒ„„ƒƒƒ„ƒƒ‚‚ƒƒ„‚„…†‡††††‡‡ˆˆˆˆ‰‰Š‹‹Š‰‰ŠŠ‹‹ŒŒŽŽŽŽŽŽŒŒ‹Š‰ˆ‡†††††††††††‡‡‡ˆ‰ˆ‡…|ww|€}{{yyxwwxyz€~}€~{yy|€€}yvxzz{}}~€‚€€€€„…………„ƒƒƒ‚‚‚‚ƒ„„„„„„„„ƒ„„„„„„………†††…„ƒ…„…„…„…„„ƒƒ„…†…„…‡‰‰‰‰Š‹ŠŠŠ‡„‚€‚‚‚‚ƒ…††………„„„„„„„„„„„……„„„…†‡…‡ˆ‡„€‚‚ƒƒ‚‚€€‚„‡‰ŠŠŠ‹‹‡†ˆ€€€€€€€€€€€€€€€€|‚ƒ€yrmnnnopponmnnnmnoqronsxywuspmmnoomnmmnnonmnnmlllmmlmmnoonnnsx|}~~~}}}|||{{zzz{|}xxxxxxxxtuwxyxvuxxxxxxxxxxyyzyyx{|}~~~~~~~€~}~~}|~‚ˆ‰{~„‡…†‡ˆˆˆ‡†€|z|}{{|€‚~{z{{„„„††…ƒƒƒƒƒƒƒƒ‚€€‚‚€||}~~}||‚‚‚‚€~~~€~|{{|}~}}}||||~}||{||}}{{}„……„„„„ƒ‚€€‚€€‚‚€}}}~~}}}}}}}}~~~~}}}}{zz}ƒƒ‚ƒƒ‚‚ƒƒƒƒ‚‚‚‚ƒ„ƒ‚‚‚ƒƒƒ‚ƒƒ€{wuuttstwtsw€€€€€€€€€€€€€€€€‚ƒ†ˆ‰ˆ†…„„„„„„„„ƒƒƒƒƒ‚‚‚ƒƒƒ‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚ƒƒƒ„„ƒƒƒ„ƒƒ‚‚ƒƒ„‚„…†‡†††‡‡‡‡ˆˆˆ‰ŠŠ‹‹ŠŠ‰Š‹‹ŒŽŽŽŽŽŽŽŽŽŽŽŽŽŽŒŒŒŒŒŒŒŒŒŒ‰ˆ‡††††‡††††††††‡‡‡ˆ‰‰ˆ†€zx~‚zyyxwwxyz{€~}~€~{yy{~€€~yvwwvvxxy|€€€€€€€…†††…„ƒ‚ƒ‚‚‚‚ƒ„„„„„„„„ƒ„„„„„„……††‡†…„ƒ„…„…„…„……„ƒƒ„…†……‡‰‰‰‰ŠŒ‰ŠŠ‡„‚‚‚‚‚‚€ƒ…††………„„„„„„„„„„„……„„„…†‡…‡ˆ‡„€‚‚ƒƒ‚‚€€€€‚„‡‰Š‹Š‹Œˆ‡‰€€€€€€€€€€€€€€€€‚†…}uroooooooonmmmlllkhkpw||yvssrqppoonnnmllkkppoonmmlmmmnnnnnkqy~}|~~~}|{{{zzyyxwwwwwwwxxxxwwxxxxwwvvvwwwwwwxyyxy|~€~||~~}~~~~~~~~}}~~}}‚‡†}ƒ†…†‰ˆ„…ˆ‚|{}|{|{|€}zxx}‚…„„‡‰ˆ…„„ƒ‚€€€€€€{|||}}~~€€~~~}|||||€€€€€~}||||}||{{{{{z{}~‚„……„„ƒ‚€€‚€‚‚€~~€~}}~€~}|~}}}}|z|{{}€‚ƒ‚„ƒƒ‚‚‚ƒƒƒ„ƒ€ƒ„ƒƒƒƒƒƒƒƒ‚ƒ„|xvvwvvxxvx|€€€€€€€€€€€€€€€€‡…{{†Š…ƒƒƒƒƒƒƒƒ„„„„„„„„†„‚‚‚‚‚‚‚‚‚„„„„„„„„„„„„„„„„‚‚‚‚‚‚‚‚ƒƒ„„…†‡‡…††‡ˆˆ‰‰ŽŽŽŽŽŽŽŽŒ‹Œ‹ŠŠŠ‰…‚„ˆ‰‡………‡††††††…‡‡‡‡‡‡‡‡†€{z‚{xxyyyz{|~~~}~|yy{~}xuvxwxz}~‚„ƒƒ‚‚‚‚‚‚‚‚‚ˆ‡‡‡††……ƒ‚ƒ‚ƒ‚ƒ‚ƒ„„„„„„ƒ„„„……„„„„„…†‡‡‡‡……………………„„………………ˆ‰‰‰‰‰‰Š‹Š‰…‚€€€€‚‚‚ƒ†……„„„„„„„„„……………………††††…‡ˆ‡„‚‚€€€‚‚ƒ…„‚€‚ƒƒˆŠ‰‰‰‰‰‰‰‰‰€€€€€€€€€€€€€€€€|~†ˆxtppppppppttssrrrrpquz|{vrssrrrqqqsssssrrrtttsrrqquuuttssspv|€€~~~|{zxxwwwwwwwwwwwwxxxxwwxxxxwwvwwwwwwxxyzzyz}€~||~~~~~~~~}}~~}~€…ˆ„}}‚††‡ˆ‡…†ˆ‚|{~|{|{~ƒ‚|zy|„ƒƒ…†…ƒƒ‚€~€€€€}~~~~~~~}|||}{{|~€€~}||||||{{{{{{{|}ƒ„………„ƒ‚€‚€‚‚€~~}~€€~}||}~~}}}}|{|{{}€ƒ‚‚ƒƒ‚‚‚‚ƒ„…„€‚„„ƒƒƒƒƒƒƒƒƒ„„}xwvxwwxwvw{€€€€€€€€€€€€€€€€ˆ‡}zƒ‰‡…………………………………………‡…ƒ€ƒ„„„„„„„„„ƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒ……„…„…„…‚‚ƒ„…†‡‡…†‡ˆŠ‹ŒŽŽŽŽŽŽŽŽŽ‹ŠŒŠ‰‰‰ˆ„‚„‡‰‡†……††††…†……‡‡‡‡‡‡‡‡…ƒ}z}‚|zxvwz|{y~~~}~|yy{~}xuxyyz|}€‚ƒƒ‚‚‚‚‚‚‚‚‚‚……„„„„ƒƒ‚ƒ‚ƒ‚ƒ‚ƒƒ„„„„„„ƒƒƒ„„„„ƒƒƒ„…††‡††……………………„„„……†††ˆ‰‰‰‰‰‰Š‹Š‰†‚€€€€€‚‚‚ƒ†…„„ƒ„„„„„„„„……………………†††…‡ˆ‡„‚‚€‚€€‚‚ƒ„„€‚ƒƒˆŠ‰‰‰‰‰‰‰‰‰€€€€€€€€€€€€€€€€{x{…‹…zsrrrrrrrrsssrrrqqsux|~|wszzzz{{{{zzzzz{{{}||{{{{zyyyxwvvvw{€~€~}{ywvuwwxwxxxxwwwwxxxxwwxxxxwwwwwwxxxxy{|{{{~€~||~~~~~}|}~~}~‚ˆ‡|…‡‰ˆ‡‡‡†‚||~|{|{‚„ƒ€}{z{€ƒ‚ƒ„ƒ€~~}€€€€€€€€€€€€€€€€~~~~~€~}}}}zz{|~~€€~}||||}||{{{{{{|~‚ƒ…………„„ƒ‚‚€€‚‚‚€€~}~~€~|zz|~}}}}|{|{{}‚ƒ‚‚‚‚‚‚…†…‚ƒ„„‚‚‚‚ƒ‚‚‚ƒ„…‚~zxxyxxyxuwz€€€€€€€€€€€€€€€€~‡‰€{ˆ‰††††††††††††††††ˆ†„‚‚ƒ„†„„…„…„…„…„…„…„…………………………„„„„„„„„‚ƒ…†‡‡‡ˆ‰‹ŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŒ‹Š‰Š‰‡‡ˆ†ƒ€€„‡‰‡†…††††……………‡‡‡‡‡‡‡‡……€yzƒ€{xvvy{zx}~~~}}|yy{~}xvx{z|~~‚ƒƒ‚‚‚‚‚‚‚‚‚‚‚‚‚€ƒ‚ƒ‚ƒ‚ƒ‚ƒ„„„„„„ƒƒ„„„„„„ƒƒƒ„…†…†………………………„„……††††ˆ‰‰‰‰‰‰ŠŠŠ‰…‚€€€€€€‚‚‚ƒ†…„ƒ„ƒ„„„„„„…………„„…………††…‡ˆ‡„‚‚€‚€€€‚‚„ƒ‚€‚ƒƒˆ‹‰ŠŠŠŠŠŠŠŠ€€€€€€€€€€€€€€€€{wz…Š„xpmmmmmmmmoooonnmmprw}}zyzz{{|}}{{zzyyyx{|{{{{{{{{{{{{{{z|~~|{}|{zywvuuyyxyxxwwwwwwxxxxwxxyxxwwwwwxxyyz{|}}|}€ƒ€~||}~€€€~}|}~~}|~~‚‡ˆƒ~|ƒˆŠˆ‡ˆˆ†‚||~||||~ƒƒ|zzz‚‚„†…€€~~€€€€€€€€€€€€€€€€~~~~~~~€~~~~}~}}}}}}€~}||||||{{{{{|{|}€„…†………„ƒƒ‚‚‚€‚‚€}~€~~~~~~~~~}}~~}||{{}€ƒ‚‚‚‚ƒ„†…ƒ‚ƒƒ‚‚‚‚‚‚‚‚ƒ……ƒ~{yyywxyxvx|€€€€€€€€€€€€€€€€€†‡„ˆ‡††††††††…†…†…†…††…ƒ‚„†ƒƒ‚ƒ‚ƒ‚ƒƒƒƒ„ƒ„ƒƒƒƒƒƒƒƒƒƒ€€€€‚ƒ…†‡ˆ‹‹Œ‘‘ŽŽŽŽŽŽŽŽŽŽŽŽŽŒŒŒ‹Š‰ˆˆ‰ˆ††‡…‚€ƒ‡ˆ‡†††…†…………„…‡‡‡‡‡‡‡‡†…{y~‚ƒ{zyxvwxy}~~~}}€|yy{~}yvxzzz}€€€‚‚‚‚‚€€€€€€€€‚ƒ‚ƒ‚ƒ‚ƒƒ„„„„„„ƒ„………………„‚ƒ„………„„……………………„„……†‡‡‡ˆ‰‰‰‰‰‰ŠŠŠˆ†‚€€€€€‚‚‚ƒ……„„ƒƒƒ„„„„…„………„„„…………†…‡ˆ‡„‚‚‚€€€‚ƒƒ€‚‚ƒˆŠ‰ŠŠŠŠŠŠŠŠ€€€€€€€€€€€€€€€€}y{ƒ†}rknnnnnnnnpooonnnnmpv|‚ƒ~yyzz{||}~~}|{yyx{{{{{{||{{|}~~xz{{xwy{xwwwwvvvwwwvwvvvwwwwxxxxxxyyyxxwxxxyzz{{|}~~}~„€~||~~€€€€~}||}~}||€„†‡‡{†‰ˆ‡‰‰†ƒ||~}|}|}‚~zyxz‚‚ƒ†ˆˆ€€€€€€€€€€€€€€€€€€€€€€~~~~~~~€€~~~~~~~~€~}||||}||{{{{{{|}ƒ……………„„ƒ‚‚‚€€‚‚‚€~~€~}€€€€}|~}}~~}||{{}‚ƒ‚€‚ƒƒ……‚‚‚‚‚‚‚‚ƒ„…ƒ~{zzwvwyyxz~€€€€€€€€€€€€€€€€…„‚„ˆˆ„……………………„„„„„„„„„ƒƒ…ƒƒƒƒƒƒƒƒ€€€€€€€€€€€ƒ„†ˆ‰ŠŽŽŽŽŽŽŽŽŽŽŽŒ‹‹Š‰ˆˆ‡‡‰‡†††…‚‚†ˆˆ‡†‡†………………„ˆˆˆˆˆˆˆˆ†‚~|zz…}|zwvvxy}}~}|}~€|yy{~~yvwyxy{€‚‚€€€€ƒ‚ƒ‚ƒ‚ƒ‚ƒ„„„„„„ƒ„„…………„„ƒƒ„„…„„ƒ……………………„„……‡‡ˆˆˆ‰‰‰‰‰‰Š‰‰ˆ…‚€€€€‚‚‚ƒ…„„ƒƒƒƒ„„„„„…………„„„„……………‡ˆ‡„‚‚‚‚€€‚ƒ‚€‚ƒƒˆ‹‰ŠŠŠŠŠŠŠŠ€€€€€€€€€€€€€€€€~{|€~ulilllllllloonnmmmmnqv|~zxxxyyzzzzzyxxwvvuuuvvwwwstttuuvvsvyywvvwvvvvvwwwuvvwwxxxwwwwxxxxxxxyyyxxxxyzz{{||~~}~„€~||~~€€€€}|{|}~}|}ƒ†…†ˆ„}~‚†ˆˆ‰‰ˆƒ}|}|}||€}zxw{€ƒƒƒ†ˆ‡€€€€€€€~~€€€€€€€€~~~~~€~~~~~€€‚€~}||||||{{{{{{z{|~€‚„………„„ƒƒƒ‚‚€‚‚€~~}~€€€~~~~}}~~}|{{}€ƒ‚‚‚ƒ„ƒ……‚€€‚‚‚‚‚‚‚‚ƒ„‚~{zzvuvyyy{€€€€€€€€€€€€€€€€€‡ƒ€‚ˆ‹ˆ‚„„„„„„„„ƒƒƒ„ƒ„ƒƒƒ€ƒ…††††††††……………………††††††††……………………‚ƒ„†ˆŠŒŒŽŽŽŽŽŽŽŽŽŽŽŽŽŒŒ‹‹‹Š‰ˆ‡‡‡‡‰‡†††…‚~‚†ˆˆ‡‡ˆ††…†…………ˆˆˆˆˆˆˆˆ…~{|zx{ƒ‚~xwwyxv|}}}||~€|yy{~}yvxzz{}‚‚€€‚ƒ‚‚‚‚ƒ‚ƒ‚ƒ‚ƒƒ„„„„„„ƒƒƒƒ„„ƒƒƒƒ„„…„„„ƒ……………………„„…†‡ˆˆ‰ˆ‰‰‰‰‰‰Š‰‰ˆ…‚‚€€€‚‚‚ƒ…„ƒƒ‚ƒƒƒ„„„…„………„„„„„…………‡ˆ‡„‚‚‚‚€€€‚€‚€‚‚ƒˆŠ‰ŠŠŠŠŠŠŠŠ€€€€€€€€€€€€€€€€}{||vmiknnnnnnnnmlllkkkjnpu{{wqppppooolmmnnoppmnnoppqqrrqonmlknsy{zwvvwwwvvvvvvvwwxxyywwwwxxxxxxyyyyxxxyyz{||}|}~~}~ƒ€~||~~€€€}|{|}}|{„‡††‡…|~ƒˆ‰ˆˆŠƒ}}}|~|}€‚~{yy}„‚ƒƒ‚€€€€€€€€€€€~~~~€~~}~~€€€~}||||}||{{{{{yz|}€ƒ„…„„„ƒƒƒ‚‚€‚‚‚€€~}~~~~}|}~€~}~~}|{{}€‚ƒ‚‚ƒ„„ƒ…†ƒ‚€‚‚‚‚‚‚‚‚€‚‚}zyywvwyyy{€€€€€€€€€€€€€€€€†ƒ‚„ˆ‰‡„„„„„„„„„„„…„…„…„ƒ‚€€‚…†††††††††‰‰‰‰‰‰‰‰ŠŠŠŠŠŠŠŠ‡‡‡‡‡‡‡‡ƒ„†ˆŠŒŽŽŽŽŽŽŽŽŽŽŽŽŽŽŒŒ‹‹Š‹Šˆ‡††††‰ˆ‡‡‡†‚€~‚†ˆˆ‡‡ˆ†††††………ˆˆˆˆˆˆˆˆ|yzyxy}„zwxyxw|}}}||~€|yy{~|xvy}~ƒƒ‚€€€‚ƒ€‚‚‚‚ƒ‚ƒ‚ƒ‚ƒ‚ƒ„„„„„„ƒ‚‚ƒƒƒƒ‚‚„„………„„ƒ……………………„„…†‡ˆ‰‰ˆ‰‰‰‰‰‰Š‰‰ˆ…‚‚€€€‚‚‚ƒ…„ƒƒ‚‚ƒƒ„„„„…………ƒƒ„„„„………‡ˆ‡„‚‚‚‚‚‚€€‚€€‚€‚ƒƒˆ‹‰‰‰‰‰‰‰‰‰€€€€€€€€€€€€€€€€{z{zqhhnllllllllnmmmlllkkmsy~{xppponmmllmnpsuvwxxyzz{||{zxuromklry}|ywvyxxwvuttvvvvvvvvwwwwxxxxxxyyyyxxxyyz{|}}|}~~}~€ƒ€~||~~~€}|{|}}|{„‡‡††……z|ˆŠˆˆ‹ƒ}}}}~}„ƒ€|{z‚„}}}}~~~~~€€€€€€€€€~~€€~}}}~€€~~€~}|||||||{{{{{yy{}‚ƒ„„„ƒƒƒ‚‚‚€‚‚€}~€~~zz{{|~€~}~~|{{}€ƒƒ‚‚‚‚‚ƒ„…„†‡„‚‚‚‚‚‚‚‚‚‚‚‚€|zyyywxzyxz~€€€€€€€€€€€€€€€€„ƒ„‡ˆ†††……………………††††††††…„‚‚„†ˆ„„„„„„„„„„„„„„„„…………………………………………„…‡‰ŒŽ‘‹ŒŒŽŽŽŽŽŽŽŽŽŽŒŒ‹ŠŠŠ‹Šˆ‡††††Šˆ‡‡‡†ƒ€~†ˆˆ‡ˆˆ†††††††…ˆˆˆˆˆˆˆˆ~{xxxyyyƒ}ywwxy|}}|||~|yy{~{ww{€ƒ†‰ƒ‚€€‚ƒ€€€€€€€€€€€‚‚‚‚ƒ‚ƒ‚ƒ‚ƒƒ„„„„„„ƒƒƒƒ„„ƒƒƒ„„…………„„……………………„„…†‡ˆ‰Šˆ‰‰‰‰‰‰Šˆˆ‡…‚‚€€€‚‚‚ƒ„„ƒƒ‚‚ƒƒ„„„„…………ƒƒ„„„„………‡ˆ‡„‚‚‚‚ƒ‚€€‚€€‚ƒƒˆŠ‰‰‰‰‰‰‰‰‰€€€€€€€€€€€€€€€€}xtqonkhnnnmmkkjlmonmllmmqsuz}upppoonnmlnrv{‚ƒ€~|}€€~|~€|upmhmuyyyxyxxyyxxwwvvwwwwwwxxxwwxxxxxxyyyyyzzzz{{{{~~~€€€~~~~{|~~}€}}}zwwy€‡Š†…ˆ‡‚}z|…‹ˆ€zxz|}~}|{‚‚€~}|||†…zyz{~‚€~€‚~~~~~~~~~}~€€€€~~~~~~~}}}}}~}~~~~}|{{{||||{{{{{{yz|||}€‚……„„ƒ‚‚‚‚‚‚‚~~~~~~~~~~~~}~|{{}|{}€‚€‚‚€€‚ƒ……†…ƒ‚ƒƒƒƒƒ‚‚ƒ„„ƒƒ}{yyvtvwwz~€€€€€€€€€€€€€€€€†„ˆŒ‹……‹‡‡††††‡‡†††……„„„†…ƒ‚ƒ„ƒ„†††„€‚ƒƒƒƒ‚€‡†„‚‚‚‚‚}ˆˆƒ„‚„ˆŒŽŒŒŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŒŒŒ‹‹‹ŠŠ††††††††††††…„ƒ‚‚„…‡‡‡‡††………††‡†‡‡†‰ŽŽ…|x|}yvxƒˆ‡}uw‚‹‡„}||~xyz|}€€}wtw€Š‘‡ƒ€€‚ƒ‚€€€€€€€€‚ƒƒ€‚ƒ‡†„‚‚ƒ„…„„„„„„„„ƒƒƒ„„„„„†…………„„„†††……„„„„……†‡ˆˆ‰ˆˆ‰‰ŠŠ‰‰‰ˆ‡…ƒ‚€€€€€‚‚‚‚ƒ…„„„„„„„„…„…„…„…„ƒƒ„„……††…†ˆ†„€‚‚€€€‚€€‚‚‚‚‚„†‰‹ŒŒŒ‹‹ŠŠŠ€€€€€€€€€€€€€€€€|xronnmkhjklkkkkijlmlkjjloqsx~ynnmmnoppmpsx}€ƒ„ƒ}|~}vplhmtyyyxyxxxxxxwwvwwwwwwxxxxwwxxxxxxxyyyyzzz{{{||~~~€€€~}~~|}~€~~}{{yvvx|„ˆ†…ˆ‡‚{wx}‚€|yyz|}~}|{‚€~}||{†…~yy{{~~€€€€€€€€€~€€€€~~~~~~~}}}~€}~~~~~~||{{||||{{z{{{y{|||}€‚……„„ƒ‚‚€€€€~~~~€€€€|~€€~}}~}|{}€‚€€‚„„………ƒ‚‚ƒƒƒƒ‚‚‚ƒ„ƒ‚€}{xwyvuvwwz~€€€€€€€€€€€€€€€€ƒ„‡Šˆ……‰‡‡††††‡‡ˆ‡†…„„……†…ƒ‚‚ƒ„†……„ƒƒƒƒƒƒƒƒ‚€€ƒ‚€€‚‚‚|€‡ˆ„…ƒ‚„ˆŒŒŒŒŽŽŽŽŽŽŽŽŽŽŽŽŒŒŒ‹‹Š‰‰††††††††††††…„ƒ‚‚ƒ…†‡‡‡††………………†ˆ‰‰‹Žˆyzxuw}Š‰‚ƒŠŠ‡ƒ€}}}~yzz{|}~~|vruˆ‹‹†ƒ€€‚ƒ‚€€€€€€€€€€‚ƒƒ€ƒ‡†„ƒ‚ƒ„…„„„„„„„„ƒƒƒ„„„„„…………„„„„†††……„„„„……†‡ˆˆ‰ˆˆ‰‰‰Š‰‰ˆˆ†…ƒ‚€€€€€‚‚‚‚€ƒ…„„„„„„„„„…„…„…„…ƒƒ„„……††…‡‡‡ƒ€‚€€€‚‚€€€‚„…ˆŠŒŒŒŒ‹‹‹ŠŠ€€€€€€€€€€€€€€€€|wpllmmlhijjiikmiikmnmkjklnov}€~sqolllmnoqv{‚„„ƒ€~~€€~||~~xpkhmuyzxyywwxxxwwvwwwwwwxxxxxwwxxxwwwxyzzzz{{{{|||~~~€€€~~~~}}~€€~{yyxuuw{‚‡…„…ƒ~yutwyxxzyz||}}||€€~~||{{€„‚}yz}|~€€‚€€~~~~€€~~~~~~~}~~€}}~~~~~}}{{{||||{{{{{{z{}||}€‚…„„ƒƒ‚€€€€€€€€~~~~€€€€€~|}}}||}‚‚€€ƒ…„……„ƒ‚‚ƒ‚ƒƒ‚‚‚ƒ„„ƒƒ€~{xwzwvwxxz~€€€€€€€€€€€€€€€€€…ˆ‡††‡‡‡‡‡†††‡‡‰ˆ†…„…†‡†…„‚‚‚ƒƒˆ†„‚‚ƒ…†„ƒƒ‚‚‚€€ƒ„‚‚|†ˆ…†„ƒ„‰ŒŒŒŒŽŽŽŽŽŒŒŒŒŽŒ‹‹Š‰ˆˆ††††††††††††…„ƒƒƒ…†‡‡‡‡†……„„„„†‰ŒŒŽŽ‰zxvv~‡Ž‘’ŒŽŽŒŠ†‚€€€zvy€†ˆ‡…ƒ€‚‚‚€‚ƒ‚€ƒ‡†…ƒƒƒ„„„„„„„„„„ƒƒ„„„„„„…„…„„„„„††…………„„„……†‡‡ˆ‰ˆˆ‰‰Š‰‰‰ˆ‡†„ƒ€€€€‚€‚€€ƒ…„„„„„„„„…„…„…„…„ƒƒ„„……††…†ˆ†„€‚€€‚ƒ€€€€€€€€‚ƒ…‡Š‹Œ‹‹‹‹ŠŠŠ€€€€€€€€€€€€€€€€}wojijiiklkiggjmiiikmnljijjmrywuqmkkklptx~„„„~}{}€~}~€‚€zqjhntyyyxywwwxwwwvwwwxwxxxxxxwwxxxvwwxyz{{{{{|||}}~~~€€€~}~~}~€€€€}yvwvutv|‚†„‚€|wxutuuuw{z{{||}|}~~}||{{z{}~}}~}~€€€€€€€€€€€‚€€}~~~~~~~~€~~~~~~}}}~~~~~~||{{||||{{z{{|{|}}|}€‚„„„ƒ‚‚‚‚‚ƒƒƒ‚‚~~~~~~~~~~~~}}}}}||~€ƒ‚€€‚„…„……„ƒ‚‚ƒ‚ƒƒƒ‚‚‚ƒ‡†…„~{z{xxyzy{~€€€€€€€€€€€€€€€€‡Š‡…‰Š‡ˆˆ‡‡†‡‡‡ˆˆ‡†††‡‡……„„ƒƒƒƒ††„ƒƒ„…†…„‚‚‡†„ƒ‚ƒƒ„‚ƒ€|~„ˆ‡‡…ƒ…‰ŒŒŒŒŒ‹‹‹‹ŒŒ‹Šˆ‡††††††††††…††††…„ƒ€ƒ…†‡††‡††……„……†‹‘‘’‘Žˆ{y{ˆ‘‘‘“ŠŒŠˆ…ƒƒƒƒ‡‡‡††………†…ƒƒ…†††„ƒ‚‚‚ƒƒƒƒƒƒƒƒ€‚ƒƒ€ƒ††……„„„„„„„…„…„„„„„„„…„…„„„„„„„„……………………„……†‡ˆˆ‰ˆ‰‰Š‰‰‰‰‡†…„ƒ‚€€€€€‚€€‚„„„„„„„„„„…„…„…„…„„„…„…………‡‡‡ƒ€‚€€ƒƒ€‚€€€€ƒ„†ˆŠŠŠŠŠŠŠ‰Š€€€€€€€€€€€€€€€€~xqkihgejkjihgikigggjjjiihhjnszzxtpnlllqtzƒ„„ƒ|{|„‡ˆ‡}~€ƒ‚|qhhmuyzxyyvwwwxwwwwwwwxxxxxxxwwxxxwxxyz{||||||}}}}~~~€€€~~~~~~€€€€}xtuvttv{‚~|xuwuuvutvz{{{{||}}}||||{{{ywvy~‚‚€€€~~}~}~}~}~~€€}~~~~~~~~~~}~~~~~}~~~||}}~~~~~}}{{{|||{{z{{|||}~}}}€‚„„ƒƒ‚‚ƒ„„ƒ‚~~~~~~~~~~~~~~}€€~}}~ƒƒ‚€‚„…„„…„‚‚‚‚ƒƒ‚‚‚ƒ†††„‚}{}{z|}{|€€€€€€€€€€€€€€€€€ˆŒˆ‡‹‰‰‰ˆ‡‡‡‡‡ˆˆ‰‰‰ˆ‡‡†††††…„„ƒ„†‡‡†…„†„‚€€€‚ƒ‹‰†ƒ~~‚„{|ƒˆ‰ˆ†……ŠŒŒŒŒŒŒŒŒŒŒŒŒŒŒ‹‹‹‹ŒŒ‹‹Š‰‡†………………………………†††…„„€ƒ„††††‡††††††‡‡’’““’Œ…ƒˆŽ’““’’•“Ž‰ˆˆ‡‡‡ˆˆŠŠŠ‰‰‰ˆˆŒŽˆ„„…‚‚‚ƒ„„„„„„„„„ƒ„ƒ‚‚„†††††…„„…„…„…„……„„„„…„……„„„„…„…„……………………„……†‡‡ˆ‰‰‰‰‰Š‰‰ˆ†……ƒƒ€€€€‚€€€‚„ƒƒƒƒƒƒƒƒ…„…„…„…„„„„„……………†ˆ†„€‚€‚€ƒƒ€‚‚‚‚€€ƒ…‡ˆˆˆˆˆˆˆ‰ˆ€€€€€€€€€€€€€€€€}ytqomjggghiiihgjigghjjkhggjkmry|xrnjhptz€ƒ„‚€~}~ƒ‰Ž~~€„„~qghntyyyxyvwwxxxwwwwwxxxxxxxxwwxxxyyz{{||}||}}}~~~~~~€€€~}~~~~€€€}wstuutvwz|}{yxwvttvustw|{z{{|}~{{{{z{zzxusv|‚„ƒƒ‚‚ƒƒ~{{{{{{{{}|{}~€}}~}~}~}}~}}}}~~~~~}}}}}~|||}}~~~~~||{{||{{{{{{||}~~~}}‚„ƒƒ‚‚€€‚ƒƒ‚€~~~~€€€€~€~~}}ƒƒ‚€€‚ƒ…ƒ„„„‚‚‚ƒƒ‚‚‚ƒƒƒƒ}|}}€€~~€€€€€€€€€€€€€€€€€€†‰‰ˆŠ‹‹‹Š‰‰ˆˆˆˆ‡ˆŠ‹Š‰ˆ‡‡ˆˆ‰ˆ‡†…‚„†ˆˆ‡…„‡…‚€‚„‰‡ƒ{yww‚„‚{zˆ‹Š‡…‡ŠŒŒŒŒŒŒŒŒŒŒŒ‹‹‹‹‹‹‹‹‹‹‹‹‰‰ˆ‡†……„……………………„……††…„„€‚„…†††‡‡†††‡‡ˆˆŽ“”’“’‘‹††ŠŽŽ“”‘‘’’‡ˆˆ‰‰ŠŠ‹ˆˆˆ‰‰‰‰‰‘“‘‹…‚‚‚‚‚€ƒ………………………ƒ„……ƒƒƒ…†††‡††„„……………………„„„…„………„…„……………„„…………††„……†‡ˆˆ‰‰‰‰Š‰‰ˆˆ……„ƒ‚‚€€€€‚€€„ƒƒƒƒƒƒƒƒ„…„…„…„…„„„…„…„……‡‡‡ƒ€‚€€€ƒ‚€‚‚‚‚€€€‚„†‡………††‡‡‡€€€€€€€€€€€€€€€€|zyyzwsokiggiihfjjjiiijkighjifjq}zupmosz€ƒƒ€~}}~‚ˆŽ~~€„†rfhmuyzxxywwxxxxxxwwxxxxxxxxxwwxxx{{{||}}}}}}~~~~~~~€€€~~~~~~~~€€}wrruuuvvwyyxwwxxustuttw|{zzz|~zzzzzzzzwvvvy}‚„…„ƒ„……‚{{{{{{{{zyy{~~}}}}}}}}|||||}~~~~~~}|||}}||||}}~~~}}{{{||{{{z{{||~~~}}€‚ƒƒƒ‚€€€ƒ„„‚€~~~~€€€€€€€~{~}}‚ƒƒ‚€‚‚„ƒ„„ƒ‚‚€‚ƒƒ‚‚‚‚‚‚€‚€€ƒ‚€€€€€€€€€€€€€€€€€~€„‡‡…‡ŠŒ‹‹Š‰‰‰‰ˆ‰Š‹‹Š‰‰‰Š‹‹‹‰ˆ†„……†‡‡‡‡‡…~~‚„†„€|ywvv‚…‚{y€ˆŒŠˆ†‡ŠŒŒŒŒŒŒ‹Œ‹‹‹‹‹‹ŠŠ‹ŒŒ‹Šˆ‡‡††……………………………„……††……„€‚ƒ…………‡‡††††††‰”“‘’“’‘Œ‹ŒŽŽŽ‘’‘‘ˆˆ‰ŠŠŠŠŠ‡ˆˆ‰Š‹ŒŒ‘’Š„€‚ƒ‚€€ƒ†††††††††„…‡†„„…†…†‡‡‡†„ƒ……………………„„„„……………………††††„„„……†††„……†‡ˆˆ‰‰‰Š‰‰‰ˆˆ„„„ƒ‚€€€€‚€€ƒƒƒƒƒƒƒƒƒ…„…„…„…„………„…„„„…†ˆ†„€‚€€‚‚€€‚‚€€€€‚ƒ…†ƒƒƒ„„………€€€€€€€€€€€€€€€€{{|€€{wtngegiiggijjhghiighjgcelpty~€~}nsz€ƒ‚}{z{~„‡ˆ‡~~€…‡€rfhmuyyyxywwxxyyxxwxxxxxxyxxxwwxxx||}}}}}}}}}~~~~~~€€€~~~~~~~~€€~wqruuuvxxxwustv{vstuuvy}|zzz|~yyyyzzzzwyyxvx…‡…ƒ„††ƒ{|{|{|{|xwwz}~}}}}}}}}|{{{{|}~~~~~}|{|||||||}}}}~~||{{||{{{{{{||~}}‚ƒƒƒ‚€€‚…††…‚~~~~~~~~~~~~}}~€‚‚€}~}‚„ƒ‚‚‚€‚ƒƒ„„ƒ‚‚€ƒƒ‚‚ƒ„„…„„ƒƒ‚„„€‚€€€€€€€€€€€€€€€€|{†…‚‰Œ‹ŠŠŠŠŠŠŠŠŠŠŠŠŠŠ‹ŒŒ‹‰‡‡†„„„†‰Šˆ…~}‚……ƒ€~{zzz‚…‚{y€ˆ‹ˆ†‡ŠŒŒŒŒŒ‹‹‹‹‹‹‹ŠŠŠŠ‹ŒŒ‹Š‡‡†††……………………………„„…†††…„€‚ƒ„………‡‡†……………Š”’‘““ŽŽŽŒŒŽ’’‘–˜”‰ŠŠ‹Š‰ˆˆ‰Š‹ŒŽ‘ŽŽ’”‘ˆ‚ƒ‚€€ƒ‡‡‡‡‡‡‡‡‡…†‡‡……†‡…†‡ˆˆ†„ƒ……………………„„„…………………†††‡‡‡„„„……†††„……†‡ˆˆ‰‰‰ŠŠ‰‰ˆˆ„„ƒƒ‚€€€‚€€€~ƒƒƒƒƒƒƒƒƒ„…„…„…„……………„„„„…‡‡†„€‚‚€€€‚€€€€€€€€€€ƒ„…‚‚ƒƒ„„„€€€€€€€€€€€€€€€€}{zz{|{zyxtnhegiggggggggcddefgghbgov}€€z|}~‚†„~~|{}€ƒ„„€~}‚ƒ€}}~~|zxxzxxxxxxxxxxxxxxxxwwxxyzzz{{{{||}~~~~€€€€€~}~~~~~|yvuuuuuwxxxxwvuuuuttuvvzzzyz{|}{{zyxwvvw}xvz€‚„†‡†‚~{{zyz{{{z~xv|€|z~~}}}~€|{}~|{||||||||||||{|}€€€€~~}}~~}}||{{{|}|z{}€€~~€‚…„ƒ‚€~}}„…„ƒ‚€}}~„†€€€~~}‚‚ƒƒƒ‚‚‚‚€€‚ƒƒ„…„ƒ‚ƒƒ„ƒƒ‚ƒ„…†………„‚€~}||||}‚€€€€€€€€€€€€€€€€~~~€‚…‡„†‰ŒŒ‹ŠŠŠŠŠŠŠŠ‰‰ˆ‡†…………„„„~ˆ‚€€€€~}€~{|€ƒ‚‚ƒ‡‹ŽŒŒŒŒŒ‹‹‹‹‹‹‹‹‹‹‹‹Œ‹Š‰ˆˆ‡††††………………†……„„„„„„…………€€‚†‡†…‡‡††††‡‡ŠŒ‘’‘’’ŽŽ‘‘Ž’’‹‰‰‰ŠŠ‡……†‰‹‘Œ‡‰’Žˆƒ‚‚‚‚ƒ„…†‡‰‰‡††‡‡ˆˆ†„ƒ…‡ˆˆ‡††…„„‡††††………††††††††……††††……„„„„„„„„„…†ˆ‰‰‰‰ˆˆ‰ŠŒ‹ˆ…„„ƒ‚‚€€‚‚€~}}~~~~~~‚‚‚ƒƒ„„„……………………„„„„„„„„ƒ„…„‚‚ƒ‚‚€€€€€‚‚‚€€‚„…†‹‡„„‡‰ˆ‡€€€€€€€€€€€€€€€€~~~~|wojptwwsnkijjjjjjjjmnnoppqqrtwyzywv{}}|€…„€zyx{~‚ƒƒ~~€ƒ„‚~}zwwyxxxxxxxxxxxxxxxxwwxxyzzz{{{{|}}~~~~€€€€~}~~~~~~|yvuuvuuwwxxwwvuvvuttuuv{{{{|~€~}|zywvvvz}|wux}ƒ…†…‚~{xwvvxxwv{vu|~}~}}}}~€€~zz|}|{||}|}|}|}}}||}~€€€€~~}}~~}}||{{{|||z{}€€~~€‚‚‚€~}}~€ƒ†‡ˆƒ‚€€‚~~}}}|}~€‚ƒ„‚‚‚‚€€‚ƒƒ„…„ƒ‚ƒƒ„„ƒƒƒ„……ƒ„„„ƒ‚€}zxy}…€€€€€€€€€€€€€€€€€€€ƒ‡ŠŒ††‡ˆ‰Š‹Œ‹‹‹‹‹‹‹‹‰‰‰‰‰‰‰‰†††††‡‡‡…„…†ƒ€…††…ƒ~~~{{~€€‚†‹ŽŒŒŒŒŒŒ‹‹‹‹‹‹‹‹‹‹‹ŒŒ‹Š‰ˆˆ††††††……………†……„„„„„„…………€€€‚…‡†…‡††……††‡ŠŒ’‘‘’’ŽŒŽŽ‘’‘Ž‹Š‰‰Š‰†„ƒ…‡Š‘‘ŠŒ’Šƒƒ‚‚‚„„…‡ˆŠŠˆˆ‡ˆˆ‰‰†ƒ‚„†ˆˆ‡‡……„„‡††††………††††††††……††††……„„„„„„„„„…†ˆ‰‰‰‰‰ˆ‰ŠŒ‹ˆ…‚‚‚‚ƒ‚‚€~~}||||||||€‚‚ƒƒ„„„„„„„„………………………††…‚€€‚‚€€€€€‚‚‚€‚ƒ…†„…‡ˆˆ†……€€€€€€€€€€€€€€€€{|}~~xqkpv}€}yusyyyyyyyyyzzz{{||~{yvtr~~|z}ƒ…‚xwvx}€‚‚~~~„…„‚€€~zwvwxxxxxxxxwwwwxwwwwxxyyzz{|{|{|}~~~~~~€€~}~~~~~|zwuuvvuwwwxwwvuvvuuuuvv}}}}~‚€~|zywwvxyxvuwy‚„„ƒ€}zvuttuvutuqrz€€€~}}|}~€}zy{}{z{}}}}}}}}~~}~~€€€€€~}}~~}}||{{{{|{{{}€€~€‚€€€~~}€~€ƒ†ˆ…………ƒ‚€€€€€€€€€~~}}|{{}~€ƒƒ‚‚‚‚€€‚ƒƒ„…„ƒ‚ƒƒƒ„……………„‚‚ƒ„„ƒ‚€~{y{}‚„€€€€€€€€€€€€€€€€€€€„‡‹‡…„ƒ„†ŠŒˆˆˆˆˆˆˆˆ„„„„„„„„ƒƒ„…†‡ˆˆ„„†ˆ†€~€‰‹‹‡‚}~‚‚€}zz|~}}€„ŠŽŒŒŒŒŒŒ‹‹‹Œ‹Œ‹Œ‹ŒŒ‹Š‰ˆˆ‡†††††………………………„„„„„„…………€€…‡‡†††…………††‰Œ‘’‘’’ŽŒ‹‹ŽŽ’’‘‘’‹ˆ‡††‡†„‚ƒ†‰ŒŽ‘Ž‘„ƒƒ‚ƒ„…†ˆ‰‹‹Š‰‰Š‹Œ‹ˆ„‚ƒ…ˆˆˆ††„„„‡††††……………………………„………†……„„„„„„„„„„…†ˆ‰‰‰‰‰‰‰Š‹Š‡„~~€ƒ„……‚€€~~||||||||~€€ƒƒƒƒƒƒƒƒ…„…„…„……†‡‡„€‚‚€€€€€‚‚‚€€€ƒ„…€„ˆˆ…‚ƒ…€€€€€€€€€€€€€€€€}||}~~|z|~~€ƒƒƒƒƒƒƒƒ€€€€€€€€‚~|zzzz€€}yz……{zxz|€€}~‚„………‚‚~zwvvxxwxwxxxwwwwwwwwxxxyzz{{|||||~~~~~~~€€~}~~~~~}zwuvvvvvwwxxwvvuuuuvwxy~~}~€€~|{zyxxwxxxxx€ƒƒ‚|zvuttuutsnlnw}}}|||}€}zy|}|{|~~}~}~~~€€€€€€~~}}~~}}||{{z{||z{~€‚‚~€‚€€€€€€„ƒ€€„…‡‡†„‚‚‚‚‚‚‚‚€€}~~€€‚‚ƒ‚‚‚‚€€‚ƒƒ„…„ƒ‚ƒƒƒ„…†††„„€‚„„…„„€‚‚‚€€€€€€€€€€€€€€€€~~~€ƒ†ˆ„ƒ‚‚‚„†‡ƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒ„„……††ƒƒ†Šˆ}}‡‹Œˆ€}~„‚|yyz{z{~ƒ‰ŒŒŒŒŒŒ‹Œ‹Œ‹Œ‹ŒŒ‹‹Š‰ˆ‡†††††…………………………„„„„„„…………‚€„‡‡††………„……†‰Œ‘‘‘‘’Ž‹‹ŒŽŽ‘““‘‘Œ‡ƒ‚‚ƒ……ƒƒ…ˆŠ‹Œ„„ƒƒƒ„…†ˆŠŒŒ‹‹‹ŒŽŠ†„…†ˆˆ‡‡……„„‡††††……………………………„„…………„„„„„„„„„„„…†ˆ‰‰‰‰Š‰‰Š‹‰…‚}~‚„„…‚‚€€~~~}}|}}~~‚ƒ‚ƒ‚ƒ‚‚„……„€‚‚€€€€€‚‚‚€€€‚ƒ„ƒ„„‚€ƒ†€€€€€€€€€€€€€€€€ƒ€}|~€‚‚||‚~~}~~yy„†‚}|~}|~€‚„„…†‚ƒ‚zwvwxxxxxxxxxwxwxwxwxxyyz{{{}|}|}~€~~~€€~}~~~~~}zwvvvvvvwxxxxwwttuvxz{}€~||{||€€~~}}{zyz{|{z‚‚€~|zvuttttsrjhltz|}€}||{|}~~{{}~}~~~~~~~€€€€€€€€~}}~~}}||{{y{|{{{~€‚ƒƒ~€‚‚‚‚‚‚‚ƒ„…„„ƒ€‚„†ˆ‡†ƒ‚……………………„„„ƒƒ‚‚‚‚‚‚‚‚‚‚€€‚ƒƒ„…„ƒ‚ƒƒ„„†††…„ƒ€ƒ„…………‚ƒ„………„„€€€€€€€€€€€€€€€€~}|}‚€‚ƒ„ƒ‚ƒƒƒƒƒƒƒƒ……„„ƒƒ‚‚ƒ‚…ŠŠƒ}|‚…ˆ…€}€ƒ„‚~{zzz{zz}‚‰ŒŒŒŒŒŒŒŒ‹‹‹‹‹‹‹‹‹‹‹‹Š‰ˆ‡†††††…………„„…………„„ƒ„„„„…………ƒ€€„†‡‡†……„………†‰‹‘‘‘Ž‹ŠŒŽŽ‘“’Žˆ‚€ƒ‡‡‡…‚ƒ…†ˆˆˆˆŒŽŒŽƒƒƒ‚ƒƒ……ˆŠŒŒ‹‹‹Œ‘‘‰‡‡‰ˆˆˆ††„„„‡††††……………………………ƒ„„„…„„ƒ„„„„„„„„„…†ˆ‰‰‰‰‹Š‰ŠŠˆ„€€‚‚‚€€€€~~}}}{|||}~~~€€€€€€€‚ƒƒ€‚ƒ‚‚€€€€€‚‚‚€€‚ƒ…‚€ƒƒ‚€€€€€€€€€€€€€€€€€~|}~~}}€~{xyz||||||||~~~}}|||~€€€‚zy~ƒ…‡„€~||~‚‚‚ƒ„‚‚{xxyxxxyxxxxxxxxxxxxxxyzz{{|}}}}}€€€~}~~~~~}{xvvwwvwxyyzyyxvvwxy|}~~|{z{{{€€€~}}}~~~}‚‚‚€~|{vussttsqkjnuyz{||{{{}~~{{~€€€€€€€€€€~~}}~~}}||{{yz{{{|~ƒ„ƒ‚€‚„„ƒƒ‚‚€‚…ˆ‰Šˆ‡ƒ„…††…„ƒ„„„„„„„„……„„ƒƒ‚‚„„ƒƒ‚€‚‚‚‚€€‚ƒƒ„…„ƒ‚ƒƒ„……………„ƒ‚ƒ……†……‡†„„ƒ…†‡€€€€€€€€€€€€€€€€‚}}~€~€‚…„ƒ€ƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒ……„ƒ‚€€‚ƒ‰Š„~~ƒƒ€„…}{{|||{|~ƒˆŒŒ‹ŒŒŒ‹‹‹‹‹‹‹Š‹Š‹‹‹ŠŠ‰ˆ‡††……†…………„„„„………„„ƒ„„„„…………ƒ~€‚†‡ˆ††…………††ˆ‹Ž‘‘‹ŠŠ‹ŒŒŽŒŠŠ†ƒƒƒ†‰Š‰ˆ‚ƒ„…††……‰‰ŠŠ‰‰‰Š‚‚‚‚ƒ„…†ˆŠ‹ŠŠŠ‹Œ‰‡ˆ‰ˆˆ‡‡……„„‡††††……………………………ƒƒ„„„„ƒƒ„„„„„„„„„…†ˆ‰‰‰‰‹ŠŠŠ‰‡ƒ€€€€€€~~}|{{zz{{||}}~~~€‚‚ƒ…‚‚€€€€€‚‚‚€€€‚‚€€‚……~€€€€€€€€€€€€€€€€|{{|~~|z}€€}zxx€€€€€€€€~~}|||}ƒƒ‚€~~|z~‚„†ƒ€~}|‚‚€‚€|yz{yyyyyyyyyyyyyyyyxyyz{{||~}}}~€€€€€€€€€€€~}~~~~~}{xvvwwwxyzz{{zzyyyz{|}~|{{{{|~~€€~~ƒ‚‚€~}|xwvuvvtsppsy{z{|{{{{|}~}{z}~€€€€€€€€€~}}~~}}||{{yz{{{|„„„‚€~€…„„‚€€€ƒ…‡ˆŠŠ‡†„ƒ‚‚‚‚€€€€€€€€‚‚‚€€€‚‚‚€‚‚‚‚€€‚ƒƒ„…„ƒ‚ƒƒ……„ƒƒƒ„„ƒƒ……†…„„†…„ƒƒƒ……€€€€€€€€€€€€€€€€‚~~‚‚‚‚‚ƒƒƒƒƒƒƒƒ‚‚‚‚‚‚‚‚‚‚‚‚‚‚†‰†‚€‚‚ƒ„„}{}~~~€„‰‹ŒŠ‹‹‹‹‹‹ŠŠŠŠŠŠŠŠŠŠŠ‰‰ˆ‡†…………………„„„„„……„„ƒƒ„„„„…………„‚†ˆˆ‡††……††‡ˆ‹Ž‘‘ŽŠ‡‡ˆˆˆŠ‹‰‡‡ˆ†ƒ…„„…‡ˆ†„€ƒ„………………………………€‚ƒƒ…†‰‰‰ˆ‰Š‹Œ‹‰†…†ˆˆˆ‡††„„„‡††††………„„„„„„„„‚ƒƒ„„ƒƒ‚„„„„„„„„„…†ˆ‰‰‰‰Œ‹ŠŠ‰†‚~€€€€€€€€‚‚‚~}|{zzy|||}}~~~‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚€€ƒ‚‚€€€€€‚‚‚‚€‚ƒ„ƒ€€€€€€€€€€€€€€€€€}{{}~}|}€‚‚€}}~‚€~~}z}„…ƒ€~}‚}{~‚ƒ„~€}|‚‚~€|z{|yyyyyyyyyyyyyyyyyyyz{{||~~~~~€€€€€€€€€€€~}~~~~~~{xvwwwwyyz{||{{}||{{|}}yzz{}‚‚‚€~}}~€€~€ƒƒ‚€~}{zyxyxwvutw|}{||{{z{|}~|zy|~~}€€€€€€€€€€~€€€~~}}~~}}||{{xz{{{|‚„…„‚€„„ƒ€~}}€€‚…†‹‰…€||||||||€~~}}~~€€‚‚‚‚€€‚ƒƒ„…„ƒ‚ƒƒ†…„ƒ‚ƒƒ„„„…†……„ƒ€‚„……ƒ€€€€€€€€€€€€€€€€~}}}‚ƒ…ƒ‚„€€€€€€€€€€€€€€€€€‚‚ƒƒ‚~…‰‡„ƒ‚‚ƒ„„ƒ„€||~…‰‹‹Š‹‹‹‹ŠŠŠŠ‰‰‰‰‰‰‰‰Š‰ˆˆ††…„…………„„„„„„„…„„ƒƒ„„„„…………„~~‚†ˆ‰‡‡††††‡‡ˆ‹Ž‘‘ˆ…„…†††‡…ƒ„ˆˆ…„ƒ‚ƒ„ƒ€~€ƒ„………ƒ‚‚ƒ„‚€€€€‚ƒƒ…‡ˆˆˆˆ‰‡ˆˆ†ƒƒ„‡ˆˆ‡‡……„„‡††††………„„„„„„„„‚ƒƒ„ƒƒƒ‚„„„„„„„„„…†ˆ‰‰‰‰Œ‹Š‰‰†~€€€‚‚‚‚‚€~||{||}}~~ƒƒƒƒƒƒƒƒ„„„„„„„„‚ƒ‚€~‚‚€€€€€‚‚‚‚€€‚ƒ„‚ƒ†€€€€€€€€€€€€€€€€|}}~€„‚€~}~€ƒ}}}~~}{xvwz~€€‚ƒ€~~}}|€€€€€€€€‚‚‚‚ƒ…‡ˆ„ƒ‚~}|yz|}~~}}|{zyyyyyzzzzz{|}~}}}}~€€€€€~}}}}~‚€~|||}~|yvuvwxxxz}~~|||yzz{||}}~~~~~~~~€€€~€‚„„ƒ‚€~{{{zzyyyuwy{|}}}}}}}|||}}}}~€€€€~€~~}||||{{{{{{|||||€‚‚€€‚ƒ„„„„‚€€€€€‚‚†‡‰Šˆ…~€€}}~~€€‚‚‚‚€€‚ƒ„…†…ƒƒƒ„‚‚‚ƒ„„†††……………………‚‚…€€€€€€€€€€€€€€€€€€~}ƒƒ„……„„ƒ~~~}}}}}ƒ€}}}z€‚ƒ……ƒ‚€ƒƒ„„…†††€€‚‚‚|~€~|{|~~~„ˆ‹ŠŠ‰ˆ‡†……„†ˆ‰‰ˆˆˆ‰‰ˆ‡†……„„„„„„„„„††……„„ƒƒ„„ƒƒ„„……„‚€€ƒ†‰ˆ‡††…†††ŠŒŽŽŽŒˆ……††‡‡‡‡††………ƒƒƒƒƒƒƒƒ‚‚‚‚ƒ„††ˆ…ƒ„††ƒ~€‚‚‚„„……†‡‡ˆˆ‡†………†††‡ˆ†„‚ƒ„†††………„„ƒƒƒƒƒƒƒƒ„„„„„„„„„„„„„„„„…†‡ˆ‰‰‰‰‡ŠŒ‹ˆƒ}{}€ƒ„ƒ€€€€‚€€€€‚}|{{{|}~‚‚‚‚‚‚‚‚ƒƒƒƒƒƒƒƒ„„ƒƒ‚‚‚‚€€„†…€€€€€€€€€€€€€€€€}~~~€‚~}~€~}{zz{||||}}|zxwx{~€€‚€~}}}€€€€€€€€€„…‡„ƒ‚€}}{|}~~~}||zzyyyy{{{{|}~~~~}~~~€€€€~}}}~~‚€~||}}~{yvuvwxxxz|~}{zzyyzz{||}}}}}}}}}€€~€€‚ƒƒ‚€~~|||{{zzzz{}~}}}}|||}}}}~€€€€€€€€€€€€€~}}||||{{{{{{|||}}€‚‚€€‚ƒƒ„„ƒ‚€€€€‚‚ƒ†††…„‚‚‚ƒƒ„„„‚‚‚‚‚‚‚‚€€€‚‚‚‚€€‚ƒ„………ƒƒƒ„ƒ‚‚‚€‚‚ƒƒƒ‚€ƒ„‚€€€€€€€€€€€€€€€€€~~‚€€‚‚€€€€~|{€ƒ„„ƒ€‚ƒƒ„„………‚‚‚‚‚‚‚‚~€€}|}€€€ƒ‡‰‹‰‰ˆ‡†…„„„†ˆ‰ˆˆ‡ˆˆˆ‡‡†…„„„„„„„„„„†………„„ƒƒ„„ƒƒƒ„……„ƒ€€ƒ†‰ˆ‡††…†††‹ŽŽŽŒˆ……††‡ˆˆˆˆ‡‡††‚‚‚‚ƒ„…†‡…ƒ„††‚~~€€‚ƒ„„„„………†…„ƒƒ„„…†‡ˆ†„‚ƒ„†††………„„ƒƒƒƒƒƒƒƒ„„„„„„„„„„„„„„„„…†‡ˆ‰‰‰‰ˆŠŒ‹†‚~}|~€ƒƒƒ€€€€‚€€€€‚~|{zz{{€€€€€‚‚‚€€€€€‚„€€€€€€€€€€€€€€€€~~}}}€€~}}}~||{{{|}~z{{{zywvy|~}~~~~}}|||€€€€€€€€~~€„…ƒ‚‚€~}~€€€}|{zzyzz|||||}~~~~~€€€€€€~~~~~~‚€~||}~~{ywvwxxxxz}}|zyyzzz{||}}~}~}~}~}€€€€€‚‚€~~}}}}|||||€€‚‚‚€}}}}|||}}}}~€€€€€€€€€€€€€€~}}}||||{{{{{||}}}}€ƒ‚€‚‚ƒƒƒƒ‚€€€€€‚‚}~ƒ„……‚‚ƒƒ„„„„………………………„„ƒ‚‚‚‚‚€€‚ƒ„……„ƒ‚ƒ„„ƒ‚€~~€‚ƒ„‚‚ƒ…„€|€€€€€€€€€€€€€€€€~‚‚€€~~‚‚‚€€€~€~}~~‚ƒƒƒƒ‚ƒƒ„„„„……„„ƒƒ‚‚„‚}€‚‚„†‡‡††…„ƒƒ‚ƒ…ˆˆˆ‡‡ˆ‡‡‡†…„„ƒ„„„„„„„„………„„„ƒƒ„„ƒƒ„„……„ƒ€ƒ†ˆˆ‡‡††…††‹‘ŽŽŒˆ……††‡‰‰‰ˆˆˆˆˆ€€€€€ƒ‚‚‚ƒ„………ƒ‚ƒ…„‚€‚ƒƒƒ‚‚‚‚‚ƒ‚‚‚ƒ„†‡ˆ†„‚ƒ„†††………„„„„„„„„„„„„„„„„„„„„„„„„„„…†‡ˆ‰‰‰‰Š‹Œ‰…€}|}~€‚ƒ‚€€€€‚€€€‚ƒ‚€~}|||€€€€€€€€~~€‚‚‚‚‚€€}}€ƒ†‡€€€€€€€€€€€€€€€€€€~|{zz~}}}|}}}zz{{|}}~{{zyxvuty{}}{yyz{{z{zzzz~~~~~}}|}}€ƒ‚‚‚€€€‚€€}}{{zzzz{{{{{|}~~€€€€~~‚€~||}~~~{ywwxxxxxz}~}|{{||}}~~~~€€€€€€€€€€€€€€€€€~~}}~~~~~~~~ƒƒ„„ƒ‚€€}}}}|||}}}}~€€€€€€€€€~~||}||||{{{{{{|}~~~€‚‚€€‚‚‚ƒƒ‚€€€‚‚~€€€€€€€€€ƒƒƒƒƒƒƒƒ„„ƒƒ‚‚‚‚‚‚€€‚ƒƒ„…„‚‚‚ƒ„„‚‚‚‚ƒ‚‚ƒƒ………ƒ…‡†‚€€€€€€€€€€€€€€€€€~~~†…ƒ€~}}}~~~~~~~}z|€…„„…………„„…†…†††††…„„ƒ€€ƒ……„€‚„ƒ€‚ƒ„„ƒƒ‚‚‚„†ˆ‡‡‡‡††……„„ƒƒ„„„„„„„„……„„„„„ƒ„„ƒƒƒ„………ƒ€€ƒ…ˆˆ‡††…†††‹Ž‘ŽŒ‡…„…††ˆˆˆˆ‡ˆ‡ˆ€€€€„ƒƒ‚ƒƒ„…ƒƒƒƒƒ€€€‚‚‚„ƒƒ‚€€€ƒ„…†‡ˆ†„‚ƒ„†††………„„„„„„„„„„„„„„„„„„„„„„„„„„…†‡ˆ‰‰‰‰‹‹Šˆ‚||~€‚‚‚€€€‚‚€€€‚‡†„‚‚‚ƒ‚ƒ‚ƒ‚‚€€€€€€€€€€€€‚‚‚‚€€‚€~€„‡‡…€€€€€€€€€€€€€€€€€}|zyx{{{||||{vwwxyyzz}|zxutrrwy{zyvwwxxxxxxyx{|||}}}~||{{}~‚‚‚‚ƒ‚‚ƒ‚‚€~}|{{z{{|{{{|}~~€€€€€€€€€~‚€~|}}~~~~~{yxxyyxwxz~€€€€€€ƒ‚ƒ‚ƒ‚ƒ‚€€‚‚€€€€€€€~~}}‚‚ƒ‚‚€}}}}}|||}}}}~€€€€€€€€€~~~~}||}||||{{{{{||~~€ƒ‚€‚€‚‚ƒ‚‚€€€€‚‚ƒ‚~}}}}~~~~€€€€€€€€€€€‚‚‚‚‚‚€€‚ƒƒ„…„ƒ‚ƒ„ƒƒ‚ƒ„…………………………‚ƒ€~ƒ€€€€€€€€€€€€€€€€}~}}€ƒ‰‡„~}}xyzz|}~~~|xw{„Šˆ‡‡‡‡‡‡ˆˆˆˆˆˆˆˆˆ‡†…„ƒ‚€…†‡…‚€‚„ƒ‚€€€‚‚€€€ƒ†‡‡‡‡‡†……„„„„ƒ„„„„„„„„„„„„„„„ƒ„„„ƒ„„……†„€‚…‡ˆ‡‡…†…††‹ŽŽŽŽ‹‡„„„……††††††††ƒƒƒƒƒƒƒƒ…„ƒƒ‚ƒƒ„‚‚‚‚ƒ‚€‚‚ƒ‚ƒƒƒƒ„ƒƒ‚€ƒ„†‡†‡ˆ†„‚ƒ„†††………„„„„„„„„„„ƒƒƒƒƒƒƒƒ„„„„„„„„…†‡ˆ‰‰‰‰‹Š‰…}}}‚€€€‚€€€‚……„ƒƒ„……„„„„„„„„‚‚‚‚‚‚‚‚ƒƒƒ‚‚‚‚‚€€„ƒ„†Š‰…€€€€€€€€€€€€€€€€€~}zyxwxyz{|{{zwxyzzzyy|{yvutsswy{{ywwxwxxxxyyyz{{||}}}||{{|~€‚€‚ƒ„„„‚ƒƒƒ‚€~~||{{{{}}}}~€€€€~€€€€€~€~‚€~|}~~~~~{zxyyzxwx{‚‚‚‚‚‚‚‚‚‚‚‚ƒ„ƒ„ƒ„ƒƒ€€‚‚‚€€€€~~~~€€€€€}|}}}}|||}}}}~€€€€€€€€€€€€€~}||}||||{{{z{|}~€€€‚‚€€‚€‚‚‚€€€‚‚€€€€€€€€€€€€~~~~~~~~~~€€‚‚‚‚‚€€‚ƒƒ„„„‚‚ƒƒƒ‚ƒƒ„…†„„„„ƒƒƒƒ~{yz~‚„…€€€€€€€€€€€€€€€€}~||…Š‡ƒ|{zzyzz||~~}yww}…Œ‰‰ˆ‡‡ˆ‰‰‰‰‰‰ˆˆˆˆˆˆ‡†…„ƒ‚†‡ˆ†‚€€ƒ‚€~~€€€€€€€€€ƒ…‡‡‡‡‡…………„„„„„„„„„„„„„„„„„„„„„„ƒƒƒ„……†„€€‚„‡ˆ‡††…†††ŠŒŽŽŠ…ƒ‚ƒ„„„„„„„…………†…†…†…………„ƒ‚‚‚ƒ‚‚ƒƒ‚ƒƒƒƒƒƒƒƒƒ‚‚€€~€€‚…‡ˆ†‡ˆ†„‚ƒ„†††………„„„„„„„„„„ƒƒƒƒƒƒƒƒ„„„„„„„„…†‡ˆ‰‰‰‰Š‰†ƒ~}~€€€€€€€€‚€€€‚€€€ƒƒ‚‚‚‚‚‚‚‚ƒƒƒƒƒƒƒƒ…„„ƒ‚‚‚‚‚€€„†ˆ‹Šˆ‚~€€€€€€€€€€€€€€€€~}|zyxwvwy{{{zyz{|}}{zyyxwuuvwxy{}}|{{|zz{{||}}{{|}}~||||}‚€‚ƒ„††‚‚ƒƒ‚€~~}||{||~~}~~€€€~~~€€€~~~~~‚€~|}~~~~}{zyyzzywy|€‚ƒ‚‚ƒƒƒƒƒƒƒ‚‚‚‚‚‚‚‚‚‚€€‚‚‚‚‚‚€€€€~~~~€€€€~€€€~}}}}}|||}}}}~€€€€€€€€~}|}||||{{{z{|}~€€‚‚€‚‚‚‚€€€€‚‚~€‚ƒ„ƒ‚„ƒƒ‚‚‚€€€€€€€€‚‚‚‚€€‚ƒƒƒ„ƒ‚‚‚ƒ‚‚‚ƒƒ‚‚‚‚ƒƒƒƒ}}~‚……ƒ€€€€€€€€€€€€€€€€|€~{|†Š…€|zz{}}}|}||||zxx}†ˆˆ‡†……†‡ˆˆˆˆ‡††……††……„ƒ‚‚†‡ˆ…€€~~~€€€€€€€€€€‚…†‡†‡‡†…………„…„„„„„„„„„ƒƒƒ„„„„„„„ƒƒ„„……†„‚€€„†ˆ‡†††…††‰‹ŽŽŒˆ„‚‚ƒƒƒƒ„„„„……†††††††††…„ƒ‚‚‚‚‚ƒƒƒ‚‚‚‚‚‚‚‚‚‚‚€€€~~}}}}~ƒ†‡†‡ˆ†„‚ƒ„†††………„„ƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒ„„„„„„„„…†‡ˆ‰‰‰‰ˆ‡…€}}‚€€€€€€€‚€€€€‚‚€€€€€€€€€€€‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚€€‚…ˆˆ†ƒ€€€€€€€€€€€€€€€€€~}|{zyxxuvxz{zyxyz{{zywuvuuuvx{|{}€€~€}}}~€€||}~€€}|||}‚€‚„…†‡‚‚‚‚‚~~}|||||}}|}}~€€€~~~~€€€~~~}}~~‚€~|~~~~}}{zyyzzywz}€‚‚‚‚ƒ‚‚‚‚‚‚‚€€€€€€€€€€‚ƒƒ‚‚‚€€€€€~~€€€€~€€€}}}}|||}}}}~€€€€~~}|}||||{{{z{|}~€€‚‚€€‚~€‚‚€€€‚‚€‚„‡†„„„ƒƒ‚‚„„„„„„„„ƒ‚‚€€‚‚‚‚€€‚ƒ‚ƒ„ƒ‚‚ƒ‚€€€€€‚ƒ„……„‡‰‰†ƒ‚ƒ€€€€€€€€€€€€€€€€|~€}z{‡‘ˆƒ}}}}|{zyxyww{……„‡†„ƒƒ„†‡††……„„ƒƒƒƒ‚€€€†‡‡…~~€€~}}~€€€€€€‚„††††‡††………………„„„„„„„„ƒƒƒƒ„„„„„„ƒƒƒ„……‡…‚€€„†ˆ‡††…†††‰‹ŽŒŒŒ‹ˆ„‚‚ƒƒ„„………†……………………††„ƒ‚‚‚‚‚ƒ„ƒƒ‚ƒ€€€€~~}}}}||zz{|‚„††‡ˆ†„‚ƒ„†††………„„ƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒ„„„„„„„„…†‡ˆ‰‰‰‰‡†ƒ}}€ƒ‚€€€€€€€€‚€€€€‚…„‚€€€€€€€€€€€€€€€€~€€‚‚‚‚€€€ƒ†…€€€€€€€€€€€€€€€€€~ysrw|tvy{}|{zzzyyxxwwttuvwxxyz{|}}}}}}}|||}~~xyz{}€€|}}{z|€ƒ€€€~~~~~}||}~~~~~~~€~€~~€€€€€~€~}€~|}~}ywvvvy|€‚‚‚‚€€€‚ƒƒ€€€€€€€~€€€€€€€€€~~~€€‚€~}}}||~}||}}~~€€€€€€€~~~~~}}}}~}|{zz{{|}‚ƒƒƒ€€~~€€ƒ€€~|‚‚‚‚‚‚‚‚„„„„„„„„ƒƒƒƒƒƒƒƒ‚‚ƒ„…ƒ„ƒ‚€€ƒ„……„ƒ‚ƒ„€€€|}~‚ƒ„ƒ†‡„€€€€€€€€€€€€€€€€€}|yw{€’•‹~{{|€~}}|{{vx{‚„†‡†††……„„„ƒƒ„………„„…†††…„‚‚„ƒ‚ƒ…„‚€‚‚‚‚€€‚„„‚€€€‚…†…ƒ…„…„…„…„††……„„ƒƒ„„„……„„„ƒ„„„„„„…‡†„~~‚…‰‡……‡ˆ‡†ˆ‹ŽŒ‡†„‚€‚………††‡ˆ‰‰‡‡‡††………‚‚€€~~~~~~~~}}}}}}}}|||{{{zz|zxy~ƒ‡ˆˆ‡…„„„…………„„„…††„ƒ„ƒ„ƒ„ƒƒƒ„„„„ƒƒ„………………†‡‡ˆ‰ŠŠ‰‰ˆ„€€}~~€‚€‚‚‚‚‚‚‚‚‚‚‚‚€€€€€€€€€‚ƒƒ€‚„€~~~€€€‚‚‚€€€€€€€€€€€€€€€€~~|wssvytuxz{{zzzzyyxxwwtuuvwxyyxyz||}||~}}|||||{|||}}~~|}}{z{‚€€~~}}~~}}}}}~~~~~~~€~~€€€€€~€~}€€~}}~|yvvvvx|€€€€€€€€‚€€€€€€€€€€€€€€€€€€€€€€‚€~}}}||~}||}}~~€€€€€€€€~~~~}}}}}}|{z{{{|}‚ƒ‚‚€€€~‚€€€€€€€€‚‚‚‚‚‚‚‚€€€‚ƒ„ƒƒƒ‚€€‚ƒ„…„ƒ‚‚„‚‚‚‚‚ƒƒƒ„„„„ƒ…†„€|{|€€€€€€€€€€€€€€€€€~|{xvx}Œˆ|z{|€||{{zyyy€‚…†‡ˆˆ………„„ƒƒƒ„„„………„„††……„ƒ‚„ƒ‚ƒ…„‚‚ƒ„„„„ƒ‚‚ƒ…††…ƒ‚€€‚„†…ƒ„…„…„…„…………„„„ƒƒ„„„……„„„ƒ„„„„„„…‡†„~‚…‰‡……‡ˆ‡†‰ŒŽ‘Œˆ‚‚‚ƒƒ€€ƒƒƒƒƒƒƒƒ€€~~~~~~~~~~~~~}}}}}}}}|||{{{zz|zxz~„‡ˆ‡‡…„„„„…†……„„„……ƒ„ƒ„ƒ„ƒ„ƒƒ„„„„ƒƒ„„…………††‡ˆˆ‰ŠŠ‰‰ˆ…€€€~~~€€€~€‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚€‚ƒƒ‚„‚‚€€€‚~‚„„…€€€€€€€€€€€€€€€€~|yvttuvstvxyyyxzyyyxwwwtuuvwxyyyy{{||||}}||{{{z~~~}}||}}}{zz~€€€€€€€€~~~}}}|}}}}}}}}~~~~~~~€~€€€€~€~|}~~~{xvuvux{~~~~~€€€€€€€€€€€€€€€€€€€€€€€€‚€~}}}||~}||}}~~€€€€€€€€€€~~~~}}}}}||{{{{||}€‚‚‚‚€€€~€ƒ„ƒ‚~~~~~~~~€€€€€€€€€€€€‚ƒ‚‚‚€‚ƒ„…„ƒ‚‚ƒƒƒƒ‚‚‚‚ƒƒ‚‚‚}ywyz€€€€€€€€€€€€€€€€}{zwtuy…Š„{z|}}}}}||{{†‡ˆˆ‰ˆ‡‡„„„„„ƒƒƒ……………………††…„ƒ‚„ƒ‚ƒ…„‚‚‚ƒ„„ƒ‚‚ƒ„…††…„ƒ‚€€„……ƒ…„…„…„…„……„„„ƒƒƒ„„„……„„„ƒ„„„„„„…††…‚„ˆ‡††‡ˆˆ‡Š‘‘Ž‰ƒ€€€~}}~~~}}}}|}}}}||||}}}}~}}}}}}}}}}}|||{{{zz|zyz€„‡ˆ‡†…„ƒ„„…††…„„„„„„ƒ„ƒ„ƒ„ƒƒƒ„„„„ƒƒ„„„……†††‡ˆ‰‰Š‰‰‰ˆ…€€€€€€~~~~}~~~€€€‚‚‚‚‚‚‚‚ƒƒƒƒƒƒƒƒ‚‚‚‚‚‚‚‚ƒ„ƒ‚€‚ƒƒƒ‚‚‚ƒ„€€‚ƒ†‡‰Š€€€€€€€€€€€€€€€€|xwvwutsstuvvvvxxxwwvvvtuuvwxyyz{{|{{zzyzz|||||~~~~~~~~}{yz|€€€€€€€€~~}}|||||}}~~~}}~~~~~~~€€€€~€~{|~~~~~ywuuuuwz~~~~~~€€€€€€€€€€€€€€€€€€€€€€€‚€€~}}}||~}||}}~~€€€€€€€€€€‚~~~~}}}}||{{z{{||}~€€€€‚€ƒ„ƒ‚~~~~~~~~~~~€€€‚ƒ„„„‚‚‚ƒƒƒ‚‚‚‚‚€€€{|{ywx|€€€€€€€€€€€€€€€€}{{yutv€‡„}‚…„„„„„„„ƒ‡‡ˆˆ‡‡…„……………………‡†……„………††„ƒ€€€„ƒ‚ƒ…„‚€€‚‚‚‚‚‚‚‚ƒ€ƒ…„ƒ„…„…„…„…„„„„ƒƒƒƒ„„„……„„„ƒ„„„„„„……†…ƒ€ƒˆ‡††‡ˆˆˆŒŽ‘’’ŽŠ…‚~~}~~~||{{~~}}}}||}}}}}}}}}}}}}}}}}}}}}}}}|||{{{zz{zy|€…‡‡‡†„ƒƒƒ„„‡†…„ƒƒƒƒƒ„ƒ„ƒ„ƒ„ƒ„ƒ„ƒ„ƒƒƒ„„……†††ˆˆ‰Š‰‰ˆˆˆ†‚€€€€€€€€€€~}||}}}}}~€‚‚‚‚‚‚‚‚„„„„„„„„„„„„„„„„‚„…„‚ƒƒ‚‚„„……†‡ˆŠ‹‹€€€€€€€€€€€€€€€€€}zyzyvsrrrrssttvvvuuttssttuvwxxzzzyywvuuvy{~~||}€‚ƒ~zxx{~~~~}}|||||~~}|}}~}~~~~~~~€€€€~€~{|}~~~xvuuvuwz~~€€€€€€€€€€€€€€€€€€€€€€€€€€€‚~}}}||~}||}}~~€€€€€€€€€€‚~~~~}}}}|{{z{{|||}€€€€€„ƒƒƒ€€€€€€€€~~~~~~~~~~}~€€€‚ƒƒ„ƒ‚‚ƒ‚€€€€ƒƒƒƒ„„„„}{|„€€€€€€€€€€€€€€€€€}|}{wuvˆ‡‚…‡‡Š‰‰‰‰‰ŠŠŠ††‡‡ˆ††…††‡‡‡‡‡‡‡†…ƒƒƒ„…‡…ƒ~„ƒ‚ƒ…„‚~€€~„‚€€‚„„„…„…„…„…„„„„„ƒƒƒƒ„„„……„„„ƒ„„„„„„…………ƒ‚‡‡‡‡‡ˆ‰Š‘‘’’‹ƒ€~~~~~~~~~}~}}|||||||}}}}}}}}}}}|}|}}}}}}}}}}|||{{{zz{zz}‚…‡‡†…„ƒ‚ƒƒ„‡†…„ƒƒƒƒ„ƒ„ƒ„ƒ„ƒ„ƒ„ƒ„ƒ„„ƒƒ„……†‡‡ˆˆ‰‰Š‰ˆˆˆ†„€~}€€€€€€€€‚~}||~}|||}€‚‚‚‚‚‚‚‚„„„„„„„„„„„„„„„„ƒ…†„‚‚ƒ€€€€ƒ„‡‡‡†††††€€€€€€€€€€€€€€€€}{{{zvsrqpooprssssrrqqqrrstuuvwwwwwutrrrux|yz|„†‡}{wwy|~~}}||{|~€~|{|||}}~}~~~~}~~~€€€€€~€~|||}~}|xutvvvwz}~€€€€€€€€€€€€€€€€€€€€€€€~€€‚€€~}}}||~}||}}~~€€€€€€€€€~~~~}}}}|{{{{||}|}~€€€€€~~~€…ƒ‚‚€~‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚~}~~€€€€‚ƒ‚ƒ„ƒ‚€€€€€€‚‚‚†‡‡„€‚„€€€€€€€€€€€€€€€€€}|~~zwv‰Š‡ŠŒ‹‰‰‰‰ŠŠ‹‹‡ˆ‰ŠŠŠ‰ˆ‡‡‡ˆˆˆˆˆˆ†„‚‚ƒ„‡†‚}}~~„ƒ‚ƒ…„‚€‚ƒƒ‚€ƒ‚‚ƒ†ƒ€ƒ„„„…„…„…„…„„„„„„„„„„„……„„„ƒ„„„„„„…„…†„€€‚†‡ˆ‡‡ˆ‰‹‘‘’Œƒ€~€~}|~~~~}}}}|}|}||||}}}}}}}}}}}}}}}}}}}}|||{{{zz{z{ƒ‡‡‡†…„‚‚‚ƒƒ†…„ƒƒƒƒƒƒ„ƒ„ƒ„ƒ„„„ƒƒƒƒ„„ƒƒ„„…†‡‡‰‰‰Š‰‰ˆ‡ˆ‡„}}~€€€€‚‚€~}}}|{|}€‚‚‚‚‚‚‚‚ƒƒƒƒƒƒƒƒ„„„„„„„„„††…‚ƒ€€‚ƒ„…„„ƒ‚€€€€€€€€€€€€€€€€€€|||{zxurrpommnpqqppoonnnppqrstuuuuvvvutssuy}€‚yz|‚…‡‰€€~zwvx{~~~~~~~~€~~~}z|€€~|z{{||||}}~~}~~~~€€~€€€€~€~~}|}~~|zwuuvwvxz~~€€€€€€€€€€€€€€€~~~~~€€€€‚€~}}}||~}||}}~~€€€€€€€~~~~}}}}{{{z{|}}}}~€~~~}}}~‚€‚€‚‚‚‚€€€€€€€€~~€‚€‚€ƒ„‚ƒ„ƒ€‚‚‚‚€€~~~}}}}„†…‚€€€€€€€€€€€€€€€€€€~{|{wv~‰Œ‰‹Œˆˆˆ‰ŠŠ‹‹‰Š‹‹‹Š‰ˆ†‡‡‡ˆˆˆˆˆ†ƒ€€‚ƒˆ…‚~||}~„ƒ‚ƒ…„‚€‚‚‚‚€‚~~‚‡„€€ƒ„„…„…„…„…„„„„„„„„„„„„……„„„ƒ„„„„„„…ƒ…†…‚€€†‡ˆˆ‡ˆŠŒ‘’Œ…€}}~~}}}}~~~~~~~~~~~~~~||||}}}}}}}}}}}}}}}}}}}}|||{{{zzzz|„‡‡†…„ƒ‚‚‚‚ƒ…„„ƒƒƒ„„„ƒ„ƒ„ƒ„ƒ„„ƒƒƒƒ„„‚ƒƒ„†‡‡ˆ‰‰ŠŠ‰ˆˆ‡‡‡†}|~€‚‚‚€€€~|{|~€‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚ƒƒƒƒƒƒƒƒ…†‡…ƒ‚ƒ€‚ƒ…†„„„ƒƒƒ‚‚€€€€€€€€€€€€€€€€z{{{yvsqqpnllmopoonnmmlloopqrsstuuvxxxxwtw{€z{}€ƒ…‡ˆ€€~zvvxz~~~~~~~~€€€~~~z|€€|z{{{{||||~~~~}~~~~€€~€€€€~€~}|}~~{ywuuwwwx{~~~~~~~~~€€€€€~€€€€€~~~~~~~~~~€€‚€~}}}||~}||}}~~€€€€€~~~~}}}}{{zz{|}~}}~~~~~}||}~~~}~‚€€€€€€€€€€€€€€€€€€€‚‚‚‚ƒ…‚ƒƒƒ€‚ƒƒƒ‚‚‚ƒƒ‚€~}|uy~€}}~€€€€€€€€€€€€€€€€|zz~{wu}‰ŒŠŠ‹ˆ‰‰Š‹‹ŒŒŠŠ‹‹Š‰‡†…†††‡‡ˆˆ‡…‚€‚ˆ…}{{|}„ƒ‚ƒ…„‚}~€€~}~|{{|~‡„€~€‚„„„…„…„…„…„„„„…………„„„……„„„ƒ„„„„„„…ƒ…†…‚€€†‡‰ˆ‡ˆŠ‘’Œ…€}}~}}|||}}}}}|}}}}}}}}}}}}~~~}}}}}}}}}}}}}}}}|||{{{zzzz|€„‡‡†…„ƒ‚‚‚ƒ„ƒƒƒƒ„„…ƒ„ƒ„ƒ„ƒ„„„ƒƒƒƒ„„‚‚ƒ„†‡‡ˆ‰‰ŠŠ‰ˆ‡‡‡ˆ†‚}{}€‚‚‚‚}{|~ƒ‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚†‡‡†ƒƒƒ‚‚ƒ„…‡ˆ…††‡‡ˆ‰‰€€€€€€€€€€€€€€€€|zwwvtpmlmpqqoljkoollnolllmnopqquuttssrrrtw{}~~~yyz|€~}}|wtx}~€€}||}}~~}}|~~}}||}}}}}}}}~~~~~~~~}}}}~‚|||{zxwvvvvuvwxx€€~~~€€€€€€€€€€€~~~~~~€~~~€€‚~}}}}~~‚‚€~}}}~~~~~~€~~€€€€€€€~}|{{zzzzz{}~|}~€€}}~~~~€€~|z}~€‚‚}€€€‚‚‚‚‚€€‚……„ƒ€€€~€€‚ƒ„ƒ„…ƒ‚€‚…ƒ‚‚ƒƒ‚„ƒƒ€~}~~€€€€€€€€€€€€€€€€€|ww{{wvz„ˆ„|€Œ…‹‰ˆŠŒ‹Š‰Œ‹Š‰‰‰‰‰ˆ‡‡††‡‡‡†…„ƒƒƒƒˆ‡…~}~€„‚€‚…†ƒ||||||||yz{{z{}€‚‚‚ƒƒƒ…………„„„„ƒƒƒ„„………††††††††„„………††††††…„‚€„‡‰ˆŠŽŽŒŽŽŽŽ‹ƒ~|~}}~~~}}~}}}}}|||}}}}}~~~~~~~~~~~~}}}}~}}|||{{{xz~‚„……„…ƒ€‚‚€„„ƒƒƒƒ„„„ƒ„ƒ„ƒ„ƒ„ƒ„ƒ„ƒ„ƒ‚‚ƒ…†‡ˆ‰ŠŠ‹Š‰ˆ†…ˆ†ƒ€€€€€€€€~€ƒ„ƒƒ‚‚‚‚ƒƒ‚ƒ„ƒ‚‚ƒ„ƒƒ‚…††…ƒ‚ƒƒ€ƒ………††††‡‡‡‡€€€€€€€€€€€€€€€€zxwwyyvtqrtutrommopmmoomoopqrsttttssrrqqqsvyz{zzxwwy{|zy}}|{wux}~€€}||}}~~~}}~~~}}}|}}}}}}}}}}}}}}}}}}}}~‚|||{zxwvvvvvvwwx~€~~~~€€€€€€€€€€€~~~~~~~~€€€‚~}}}}~~€‚€~}}}~~~~~~~~€€€€€€~}||{z{zzz{}~€|}~€€€}}~~~~€€~|{|}€€‚‚ƒ‚‚€€€€€‚ƒ„ƒ‚€~€€€€€ƒƒƒ„„„‚‚‚‚‚ƒƒ‚€€€€€€€€€€€€€€€€€€€€€}urwzywxƒz}‡‹ˆŒŠˆ‰‹Œ‹ŠŒ‹Š‰ˆˆˆˆŠŠ‰‰ˆˆ‰‰‡†…„ƒƒƒ„‰ˆ‡ƒ€ƒ„‚‚„…‚||||||||y{{{z{}€‚‚‚ƒƒƒ…………„„„„ƒƒƒ„„……………………………„„„……………†††…„‚€ƒ‡‰‰‹ŽŒŽŽŽ‘ŽŠƒ~€€~}~~}}}~~~~~~}}}}}}}}~~~~~~~~~~~~~}}}}~~}}||{{{{x{~‚„……„„‚€€ƒ‚‚„„ƒƒƒƒ„„ƒ„ƒ„ƒ„ƒ„ƒ„ƒ„ƒ„ƒ„‚ƒ„…†ˆˆ‰ŠŠŠŠ‰ˆ†…‡…‚~~€€€€€‚‚‚€‚ƒ‚‚‚‚ƒ‚ƒ„ƒ‚‚ƒ„ƒƒ‚‚‚„††…‚‚ƒƒ€ƒ…………††††‡‡‡€€€€€€€€€€€€€€€€|yxyxuswxyyxvsqnoonnoonppqrstuurrstuvwwrsvwyyxw|{{|~~|z|{{zxux}€€€~~}}}~~~}}}~~~~}}}}}}}}}}}}||||||||}}}}~‚}||zyxwvvvvuvvxx|}~~~~~€€€€€€€€€€€~~~~~~~~€€‚~}}}}~~‚‚€~}}~~~~~~~~~~~€€€€€~~}}|{{{{{z|}€|}~€}}~~~~€€€~}~}}~‚ƒ‚‚ƒ‚‚~€€‚€€‚‚€€€€€€‚ƒƒ„…ƒ‚€‚€€‚€€€€€€€€€€€€€€€€€€vqsyzxw~}zxy~…ŠŒŠ‰Š‹Œ‹‹Š‰ˆ‡‡‡‡‰‰ˆ‡‡‡ˆˆˆ‡†…„„„„‡‡†ƒƒ…„‚‚„„~||||||||z{|{{{~€‚‚ƒƒƒƒ………„„„„ƒƒƒ„„„„……„„…„…„…„ƒƒ„„„„……†††…„‚€ƒ†‰‰‹‹Ž‘‘Ž‰‚~€~~~}}}}~~~~~}}}}}}}}}~~~~~~~~~~~~}}}}~~}}|||{{{y{‚…………‚€‚ƒ„ƒ„„ƒƒƒƒ„„„ƒ„ƒ„ƒ„ƒ„ƒ„ƒ„ƒ„ƒƒƒ„…‡‡ˆ‰‰ŠŠŠ‰‡†…†„}}~€€€€‚ƒƒ„„ƒ‚€€€‚‚‚‚‚ƒƒƒ‚‚‚ƒ„ƒƒ‚‚‚‚ƒ„…†„‚‚ƒ€€ƒ……„……†…††††€€€€€€€€€€€€€€€€|yvuvwut{{|{zwutnnmmnonmnooqqsstqqrrrrssstvwxyyy{zz|~~}{zyy{ywy}€€~~}}}~~~~}}~~~~}}}}~~~~~~~~}}}}}}}}}}}}~‚~}{zxwwwvvuvvwwx|}~~~€€€€~~~~~~~€€€€‚~}}}}~~€‚€~~~~~~~~~~~~€€€€~~~}}||{{{{{{|~€|}~€€€}}~~~€€€€€‚~~€‚ƒ€€~€‚‚‚‚ƒ€‚‚€€ƒ€€€€€€‚ƒƒ„„„‚‚‚€€ƒ€€€‚ƒƒƒ€€€€€€€€€€€€€€€€€€„~yxyzyy~zwwuv~ˆ‹‰‰Œ‹Š‰ˆ‡‡ˆˆ‰ˆ‡‡†‡‡‡ˆ‡†…„„…………„€‚…„ƒ‚ƒƒƒ€~||||||||z{||{|~‚‚ƒƒƒ……„„„„ƒƒ„„„„„„„„„„ƒ„ƒ„ƒ„ƒƒƒƒƒ„„„††††„‚€†‰ŠŒŠŽ’““Ž‰€~~~}}}~}||}}}}}}|||}}}}}}}}}}}}}}}}~}}}}}}~}}||{{{{y{ƒ…††…~}„…„„„ƒƒƒƒ„„ƒ„ƒ„ƒ„ƒ„ƒ„ƒ„ƒ„ƒ„„„…†‡ˆˆ‰‰‰‰Šˆ‡…„†„~|}~~€€€€‚‚€€‚ƒ‚€‚‚ƒƒƒ‚‚‚ƒ„ƒƒƒ‚ƒƒƒ„……„‚‚‚€‚……„……………†††€€€€€€€€€€€€€€€€nllnswzz{{{zyxvunlkmnnmlnnooqqrsrrqqqpppqrtvwyyzxxx{~~|zxyz{y{~€€~~~~~}}~~~~}}}}}~~~~~~~~~~~~}}}}~‚€~|yxvwwvvvuvvxx|}€€€€€~~~~~~~€€€€‚~}}}}~~‚‚€~~~~~~~~~€€€~~~}}}}||||||{}~€|}~€}}~~~€‚‚‡…‚€€€€€€‚‚ƒƒ„ƒ‚€‚ƒƒ€‚ƒ‚€€€‚‚ƒ„…ƒ‚€‚‚ƒ„ƒ€‚€€ƒƒ„„‚ƒƒƒƒ‚€€€€€€€€€€€€€€€€ˆ‰‡|z|~€zwwtrxƒ‹‰‰ŒŒŒŒŠ‰‰‰‰‰‹ŠŠ‰‰‰‰‰‰ˆ‡†………………„‚€€‚…„„ƒ‚‚}||||||||z{}|||‚‚ƒƒƒƒ„„„ƒ„ƒƒƒ„„„„„„„„ƒƒƒƒƒƒƒƒƒƒƒƒ„„„„†††…„‚€€…‰Š‹Ž’’”“‰~~~}}}~}||}}}}}}|||}}}}}}}}}}}}}}}}}}}}}}}}}|}||{{{y|€ƒ††††}}~„…„„„ƒƒƒƒ„„„ƒ„ƒ„ƒ„ƒ„ƒ„ƒ„ƒ„ƒ……††‡ˆˆˆ‰‰‰‰ˆ†…„†„~|}~~€€€€‚‚~}}}}}}€„…‚€‚‚ƒƒ‚‚ƒƒƒƒ‚ƒƒƒ„ƒ„…ƒ‚€‚‚€‚„„„„„…„…………€€€€€€€€€€€€€€€€mjhjnsuvzzyyxxxxplkmoomloopqrsttsrrrrrqqpqrtuwxyvvwy}~}|yxx||||€~}~~}~~~~}}}}~~~~~~~~~~~~€€€€€€€€}}}}~‚|ywvvwvvuvvwwx}~€€€€€€€€€€€€€€€€~~~€€€‚~}}}}~~€‚€~~~~~€~€€~~}}}}|}|}||||}€|}~€€€}}~~~€€‚„…Šˆ†„‚€€‚ƒƒƒ‚‚‚ƒƒ„ƒƒ€€ƒƒ‚€€‚„ƒ‚€€€‚ƒ„„„‚„„„„‚‚‚‚‚‚ƒ„„ƒ„„……………€€€€€€€€€€€€€€€€ˆ‘Š€‚|yzwtw~ˆŽŠ‰ŒŠŒ‹Š‰‰‰‰ŠŠ‰‰ˆ‰‰‰Š‰ˆ†††††‰ˆ‡„‚‚„†„„„ƒ€}|||||||||{|}}|}‚‚ƒƒƒ„„„„ƒƒƒƒ……„„„„ƒƒƒ„ƒ„ƒ„ƒƒƒƒƒ„„………††††„‚€„ˆ‹‘‘’“”‹ƒ}~~~~~~}}}}~~~~~}}}~~}}}}}}}}}}}}}}|}}}}}}|}}||{{{{z|€„†‡‡†}|~€ƒ„„„„ƒƒƒƒ„„ƒ„ƒ„ƒ„ƒ„ƒ„ƒ„ƒ„ƒ„†††‡‡ˆˆˆˆˆˆ‰‡†„ƒ†„}}~€€€‚‚‚‚‚€}|{{zzz|~ƒ…‚‚‚‚‚ƒ‚‚ƒƒ‚‚‚‚ƒƒ„ƒ„…„€€€~„„ƒƒ„„„„………€€€€€€€€€€€€€€€€sojikmooyyxxyzz{rmkorpnnppqrstuuutsrponmrrstuvwxsssuxyxvywx|~}~€€}}}~~~~~|}}}~~~~~~~~~~~}}}}~‚‚|xvvvwvvvuvwxx}~€€€€€€€€€€€€€~~~€€‚~}}}}~~‚‚€~~~~~€€€€~~}}}}}}}}}|||}‚|}~€€}}~~~€ƒ…‡‰‰ˆ‡†ƒ€€€‚ƒƒƒƒ‚ƒƒƒƒ‚‚‚‚ƒƒ‚€ƒ„„ƒ‚€€€€ƒ„…ƒ‚€‚„ƒƒƒƒƒƒ‚‚‚‚‚ƒƒƒƒ‚ƒ„„…„„„€€€€€€€€€€€€€€€€…‘Œˆ‡…‚}{||{z{…Œ‹‰ŒŒˆŒ‹Š‰ˆˆˆ‰‰‰ˆ‡‡‡ˆˆŠ‰ˆ‡†††‡ŠŠˆ…‚ƒ………„ƒ~}|||||||||{|}}|}‚‚‚ƒƒƒƒ„„„ƒƒƒƒ‚………„„ƒƒƒ„„„„„„„„„„„„…………†††…„‚€~ƒ‰‹Ž‘‘’‘’“‘„|}}~~}~~}}}~~~~~~}}}~~~}}}}}}}}}}}}}||}~~}||}}|||{{{z}€„†‡‡†~}}€‚ƒ‚„„ƒƒƒƒ„„„ƒ„ƒ„ƒ„ƒ„ƒ„ƒ„ƒ„ƒ‡‡‡‡ˆˆˆˆˆˆˆˆ‡…„ƒ‡…‚~~€€€‚‚‚‚‚}}|yyzz|~‚ƒ‚‚‚‚ƒ‚ƒ‚‚‚‚‚ƒƒƒ„…ƒ€~ƒ„ƒƒƒ„„„„„„€€€€€€€€€€€€€€€€rnihknpqyxxyz{}~uomqtrppppqrsttuuuttsssrvvuvvwwxyxxy{{ywywx}‚€}}}€~~~~||}}~~~~~~~~~~}}}}~‚‚€|xvuvwvvvvvwxx|~~~~~€€€€€€€€€€€€€€€~~~€€€‚~}}}}~~€‚€~~~~€€€€~~|||}}}}}}}|}}‚|}~€€}}~~~€€€„†ˆ‡ˆ‰Š‰†ƒ‚~€‚‚‚‚‚‚‚‚‚€ƒƒ‚ƒ„ƒ€ƒ…„ƒ‚€€€ƒ„„ƒ‚€‚ƒ‚‚„…„‚ƒƒƒƒƒƒ‚‚€‚‚‚‚‚€€€€€€€€€€€€€€€€‰ŽŒŒ‰‚€}|}€€~{ƒ‹ŒŠŒ‹†‹Š‰ˆ‡‡‡‡‹‹Š‰‰‰‰ŠŠŠˆ‡‡†‡‡Š‰‡ƒ€€‚„……ƒ€~||||||||||{|}}|}‚‚‚‚ƒƒƒ„„ƒƒƒƒ‚‚………„„ƒƒƒ„„„„„„„„„„………††††††…„‚€}ƒ‰Œ‘‘‘‘“’Ž„~z{|}~}}~~~}}~}}}}}|||~~~}}}}}}}}}}}}}||}~~}||}}||{{{{z}„‡‡‡‡€~}~€‚‚„„ƒƒƒƒ„„ƒ„ƒ„ƒ„ƒ„ƒ„ƒ„ƒ„ƒ„‡‡‡‡ˆˆˆˆˆˆˆˆ‡…„ƒˆ†ƒ€€€‚‚‚€€€€zzzz{|~ƒƒ‚‚‚‚ƒƒ‚‚‚‚‚ƒƒƒ„„ƒ€€~ƒƒƒƒƒƒ„„„„„€€€€€€€€€€€€€€€€wrljmrvx}}}|{zzzutsrrstuqqrsuuvwxwuttuvwvvwxyz{{{{{||}}}xyz|€‚ƒ~~~~~€~~~}~~}}}~~~~~~~~~~~}}}}}}}}}}}}}}}}}}}}||{|}~€€}xuux{{wuvxxxy~~~~~€€€~€€€€€€€€€}~~}~~€€€€€€ƒ‚€~}||||}~€€~~}}}~€€€~€€€€~~~}|||||||}}€€~€€~~~~€€€€€ƒ„†ˆ‰‰ˆˆƒ€‚‚ƒƒƒƒ„ƒ‚‚‚€€‚ƒ‚€‚€€‚‚ƒ„ƒ‚€€€‚ƒƒ‚ƒ„„…„ƒ‚‚€‚ƒ‚‚‚ƒ€€€€€€€€€€€€€€€€‰‹‹‡‚{zzz|}|{ƒˆŠ‡†‰‹‹‹‹‹Š‰ˆˆˆˆˆˆ‡‡†††‡‡‡††………††……„„„ƒ…„‚€~|zy||||||||||||~‚€‚ƒ„ƒƒ„„„„„„„„„„„ƒ„ƒ„ƒ„ƒ‚‚‚ƒƒ„„„„………†††ˆ‡†…†„~ƒ‰‘‘‘…|||}~~}~}~}~}}}}}}}}}||}}}~~~}}}}}}}}||||||||{{{zyyyxw|‚†‡‡‡ˆ…‚€€‚€„„ƒ‚‚ƒ„„ƒƒƒƒƒƒƒƒ„ƒƒƒƒƒ„…„…‡ˆ‰ˆ‡‡ˆˆ‡††…„„‡†ƒ||‚‚€€}~€‚€~~}|{zyxƒ„ƒ‚‚‚‚ƒ‚‚‚‚ƒƒƒ„…ƒ€€€€‚‚‚‚‚‚€€€€ƒƒ„…………„„„€€€€€€€€€€€€€€€€~yutw{}~}||{{zzyxxxxwwvvwwxyyzz{yxwvvvxyzzzz{{{{yzzz{{{|yyz|}€€~~~~~~~~}~~}~~~€€€~~}}}}~~~~~~~~}}}}}}}}}||}}€€}yuux{{wuvwwwx}~~~€€€~€€€€€€€€€~~€€‚~|||||}~€€€~~~~~~~~~~€€~~~~}|||||||}~~€€~€~~~~€€€€ƒƒ‚‚ƒ…†ˆ‡„€€€€‚ƒ‚€€‚ƒ‚ƒƒ‚‚‚‚€‚ƒ€‚€€‚‚ƒ„„‚€ƒƒ‚‚ƒƒƒ‚‚ƒ„…„„ƒƒ‚‚ƒ‚‚€€€€€€€€€€€€€€€€ƒƒƒƒƒ€|x|{zzzzyy€„‡„„‡‰‰††††…………‡‡‡††………††………„„„†………„„ƒƒ„„‚€~|{z|||||||||||}}‚€ƒƒƒƒƒ„„„„„„„„„ƒ„ƒ„ƒ„ƒ„„„„„„„ƒƒƒƒ„„„………ˆ‡…………~‚‡ŒŒ‰‰‘‘“’†|||}~}}~}~}~}~}}}}}}}}}}}|||||}~}~}~}~}}}}}}}}||{{zzyyx}‚†‡‡‡ˆ…ƒ€€‚€„ƒƒ‚‚ƒƒ„ƒ„ƒ„ƒ„ƒ„„„ƒƒƒ„„……†‡ˆ‰ˆˆ‡ˆˆ‡‡……„„††„€}|‚€€€€€~~}|||ƒƒƒ‚ƒ‚‚ƒ‚‚‚‚ƒƒ„…„€€€€‚‚‚‚‚€€€€€€‚‚ƒƒƒ„……………€€€€€€€€€€€€€€€€~{xx{}~}~}}}|||{}~}{zyyyyyyyyyyxxxxyz|{{{{zzzyyyzz{{{||||}}~~~~~~€~~~~}€~~~~~€€€€~~}}}~~~~~~~~~}}}~€}yvvx{{xvvwvvx}~€€€€€€€€€€€€€€€~~~€€~~~}€€€‚}|||||}€€~~~~}}~~~~€~~~~}}||{||||}}€€€~~€€~~~~~€€€€€€€ƒ„‡„‚€ƒƒ‚€ƒƒƒƒ‚‚‚‚€€‚‚‚€ƒ‚€€‚ƒƒ„…„ƒ‚„„ƒƒƒƒ‚‚ƒ„………„„„ƒ€€€€€€€€€€€€€€€€€€€ƒ€}}~{w}|{{{z€ƒ…………††††‡‡†††………„„……„„„ƒƒƒ……„„ƒƒƒ‚ƒƒ‚€~|{{||||||||||||~‚‚ƒ‚‚ƒƒ„„„ƒ„ƒ„„„ƒ„ƒ„ƒ„ƒ†††…„„ƒƒ‚‚ƒƒƒ„„„ˆ†……†„‚~€…‹Žˆ„‡’’“’’†||}~~|~}~}~}~}}}}}}}}}~~~}}||}}}}}}}}~~~~~~~~|||||{{{z~ƒ‡ˆ‡‡‡…ƒ€‚‚‚„ƒƒƒƒƒƒ„„„„„„„„„„ƒƒƒ„„………†‡ˆ‰ˆˆ‡ˆˆˆ††„„„††„~}‚€€€€€€€‚‚ƒƒ‚€€€|~‚‚‚‚‚€‚‚‚‚‚‚ƒƒƒ„…ƒ€€€€€‚‚€€ƒƒ‚‚ƒ„…†††€€€€€€€€€€€€€€€€}{yz|}|z~~~~~~}}ƒ…„‚~|xxxxwwwwyyyyyzz{zzzzzzzz{{{||}}~€€€€~~~~~~~}}‚€~~~~€€€€~~}}~~~~~~~~~~~€‚€~zwwx{{xvvvuvx}~€€€€€€€€€€€€€€€€€€~}}~~~~~€€€~}|||||}~€€€€~}}~€€€}}~~€€~~~~}}||{||||||~~€€€€~}~€}}~}~~~€€€}~€€‚‚‚ƒƒƒ‚‚‚‚‚‚‚ƒƒ‚‚‚‚‚‚€‚ƒ€ƒ‚‚ƒƒ„…„ƒ‚‚‚„„ƒƒ‚‚€‚„…†……„„ƒ€‚€€€€€€€€€€€€€€€€}xx{}zw|}~}{{{|x}}}ƒ‚……††‡ˆˆˆ†††………„„„„„„ƒƒ‚‚ƒƒƒ‚‚€~}|{|||||||||||}}€‚€‚‚‚‚‚ƒƒ„ƒ„ƒ„ƒƒƒ„ƒ„ƒ„ƒ„……„„„„ƒƒƒƒƒƒ„„„…‡†……†…‚€€€ƒŒ‘Ž‡Š““‘‘Ž‡||}~~{}~}~}~}~}}}}}}}}~~~~~}}}|}|}|}||~~~~~~~~}}|}|}||{€„ˆˆ‡‡‡…ƒ‚ƒ‚ƒƒƒƒƒƒƒƒ„„„„„„„„„ƒƒƒƒ……††‡ˆˆ‰ˆˆˆˆˆ‡‡……„„††…‚~€€€~€€~~~‚ƒƒƒ‚‚‚‚‚€‚€€€€€‚‚‚‚‚ƒ‚ƒƒ„…„€€€€€‚€€€€€€‚‚ƒ‚ƒ„…†††€€€€€€€€€€€€€€€€|{{}~}{zzzzzzzzz||zzyzyyxxxyyz{{|||{{|}}~€€‚‚†……ƒƒ€~~€~~~}‚‚~~~~~~€~~~~~~~~~~~~€€€|xwyzzwvvvtvx}~€€€€€€€€€€€€€€€€~~~~~~~~€}|}~~~~€€€€~||{|||}€€~}~€€~~~€€€€~~~~~}||{|{||||}}€€~}}~}}}~}~~€€€€€‚ƒ‚€‚ƒƒƒ‚ƒƒ‚‚ƒ‚‚‚‚‚‚ƒƒ‚€€‚‚‚€‚‚‚‚‚ƒ…„ƒ‚‚ƒƒƒƒ‚€€€€‚„……†…ƒƒ‚€ƒ„€€€€€€€€€€€€€€€€|xuuxyxvxz|{yxz}}‚„„†…‚‚ƒƒ„……††………„„„„ƒƒƒƒ‚‚‚€€~~~}}||{||||||||||||~‚€‚‚‚‚‚ƒƒƒƒƒƒƒƒƒ„ƒ„ƒ„ƒ„ƒ‚‚ƒƒƒƒ„„„„„………††‡………†…ƒ€ƒ€ƒŒ’Ž‡„“‘Ž†|}}~~{~}~}~}~}}}}}}}}}|||}}}}~}}}}}}}}~~~~~~~~}}}}}}}}}†ˆ‰‡‡‡†„‚ƒƒƒ‚ƒƒƒƒƒƒ‚„ƒ„ƒ„ƒ„„ƒƒƒƒ„…†‡ˆˆˆˆ‰‰ˆˆˆˆˆ††„„„†††ƒ€€€€€~~~}|}~€€‚‚€‚€€€‚‚‚‚‚‚ƒƒƒ„…ƒ€€€€€€€‚‚€€ƒƒƒƒ„„…„„„€€€€€€€€€€€€€€€€|xutvxwvsssttuuutuwzzzyxzzzzzzzz{|}€€€‚„……†ƒƒƒ„„………ˆˆ‡†…„ƒƒ€€~~~}}€}~~~~€€~~~~~~~~~~~~~€€€}yxyzxvvvutvy}~€€~€€€€€€€€€€€~~~~~~~~~~~~~~€€€€€~}|{||||}~€€€€€€€€~€€€€~~~~}}||{{{||||||~~€€€}|}~~|}}}~}~~~€€€€„ƒ‚‚ƒ„„„ƒ€ƒ‚„„‚€‚‚‚ƒƒ‚€‚ƒ€‚ƒ„„ƒ‚‚ƒ‚‚‚€€€‚ƒ„……„„‚ƒƒ‚‚‚„…€€€€€€€€€€€€€€€€}}~~~~~ƒ…ƒ~}‚…‰Š‡…‡‰‡ƒƒƒƒ„„„„ƒƒƒ‚‚€€€~~~}}}|||{{{{{{zz|||||||||||}}€‚‚ƒ‚‚ƒƒƒƒƒƒƒƒƒƒƒ„ƒ„ƒ„ƒ„‚ƒƒ„„„…………††††…„…††ƒƒ‚‹Œˆˆ‘Žƒ~}~}}~}}~}~}~}~}}}}}}}}~~~€€~~~~~~~~|||||||||||}}}}~ƒ‡Š‰ˆ‡‡†„‚‚‚„ƒ‚‚‚ƒƒƒƒ‚‚ƒƒƒƒƒƒƒƒƒƒƒ„„††‡ˆˆ‰‰‰‰‰‰ˆˆ‡‡……„„…†‡…€€€€€~~~~}~~€~~€€€€ƒ‚‚‚‚ƒ‚‚‚ƒ‚ƒƒ„…„€€€€€€‚€€€‚‚ƒ„„„„„„ƒƒ€€€€€€€€€€€€€€€€yuomoqssqrrssttustuwy{|}||}}~~€‚„……„„…†††‡ˆˆˆ„„……††‡‡‡‡‡†…„„ƒ€€€€~~~}€€€~~~€€€€~~~~~~~~~~~}}}~€€€}zxyzvuuvutw{}~~~~~~€€€€€€€€€€€€€€~}}{{{|||}€€€€€€€€€~~€~~~~~}}}||{{{{||||}}€€}||~~|||}}~~~~€‚‚‚„ƒ‚‚ƒ„ƒƒƒƒ‚‚ƒ„‚‚‚ƒƒ‚€€‚ƒ‚€€€‚ƒƒ‚‚‚‚‚‚‚€‚‚ƒ„„…„ƒƒ‚ƒ„„„„…†€€€€€€€€€€€€€€€€€…‹Œˆ†‡Š‰ŒŽ‰‚~ƒ‡‹‹‡„…†„ƒƒƒ‚‚‚‚~~~}}}||{{{zzz{{{zzyyyyxyyyyyy||||||||||||~‚€ƒƒƒƒƒ„ƒƒƒƒƒƒƒƒ„ƒ„ƒ„ƒ„ƒƒƒƒƒƒƒ„„„„„„…………†„„…††„}€‰ŒˆˆŒ‘‘‘’’Š~~}}~~}~}~}~}}}}}}}}}}}}}}}}}{{{{{{{{{{||}}}}„‰ŠŠˆ‡†‡„‚‚ƒ„ƒ‚‚‚ƒƒƒƒ‚‚ƒƒƒ‚ƒ‚ƒƒƒƒƒ„…†‡ˆ‰‰‰‰‰‰‰‰ˆˆ‡††„„„…†‡…‚€€€€€€~}~€€€€}}~€‚€‚‚ƒ‚‚‚‚‚‚ƒƒ‚‚‚‚ƒƒƒ„…ƒ€€€€ƒƒ„„„„„ƒƒ‚€€€€€€€€€€€€€€€€~xqnpsvwtuuvwwxxvwwy|‚ƒ‚‚ƒ„…†‡ˆƒ„†ˆ‰‰ˆ‡ˆˆ‡‡‡‡‡‡„„……†††‡††……„„ƒƒ€€€€~~~}~~€€€€€€€€€€€~}}}}}}}}~}||}}~€€€~{yyzutuvutw|~~~~~~}}~~~~~~~~~~€€‚ƒƒ‚‚€€€€€€~}|{{{|}|}~€€€€€~}~~}~~~~~}}}||{{{{||||}~~€€~}{|~}|||}}}~~~‚‚‚ƒƒ‚ƒ„„ƒ~€‚‚‚ƒƒƒƒƒ‚‚ƒ„‚€€‚ƒ€€€€€€ƒƒ‚‚‚‚ƒƒ‚‚ƒƒ„„…„ƒ‚‚‚ƒ………„„…€€€€€€€€€€€€€€€€}†ŽŠ†‡‹ˆŒŒ†|vvz„ˆˆƒ€€~~}}||{{{{zzzyyxxxwwwvvzzyyxxwwwwwxxxxy||||||||||||~‚€‚ƒ„ƒƒ„„ƒƒƒƒƒƒƒƒƒ„ƒ„ƒ„ƒ„†………„„ƒƒ‚ƒƒƒ„„„„…„„…††„‚~{~†ˆ…‡Ž““’’“’‹„€}~}|€}~}~}~}~}}}}}}}}||{{zzzzzzzzzzzzzzzzzzzzz{{||}}}…‰‹Šˆ††‡…‚‚ƒ„ƒ‚‚ƒƒƒƒ‚‚‚‚‚‚‚‚‚ƒƒƒ„…†‡ˆŠ‰‰‰‰‰‰‰ˆˆ‡‡……„„…†‡†ƒ€€€€€€~}€‚ƒƒƒ}}~€‚‚ƒƒƒ‚€€‚ƒƒ‚‚‚ƒƒ„‚‚‚‚ƒƒƒ„…ƒ€€€€€€€‚ƒƒ„„„„„ƒƒ€€€€€€€€€€€€€€€€}{yy{||{€{wuwzwy{|~€ƒ……„ƒ…ˆ‰‡„‡‡‡‡‡‡‡‡††††††††ƒƒƒƒƒƒƒƒ……††…ƒ‚‚}}~€€~~~~~€€€€€€€~~}~}}~~}||||}}~~~~~€~}€~{yyzxwvuuwz}~€€€€€~~€€€€€‚ƒƒ‚‚‚‚„‚€€€}‚ƒ}€~~€}|{{|||{}}~~€€€€€€€~~~~~€~~~}||{{{{{{{{{{{{|}~€€~||~~|||}~~‚‚ƒƒ€~€‚ƒ„ƒƒ‚ƒƒƒƒƒƒƒƒƒ‚‚‚‚‚‚ƒƒƒ‚‚‚ƒ„„ƒ‚€€‚‚€€€‚ƒƒƒ‚ƒ‚€‚‚‚ƒƒƒ„„………†…„„„…‡ˆ€€€€€€€€€€€€€€€€~~€‚€}„€~{ywvvyy{~zv{zyxxy{|yyyyyyyyyyyyyyyy{{{zzzyyyyyxwvvv{||}}||{{|zy|‚‚€‚ƒƒƒƒ„„„ƒƒ‚‚‚‚ƒƒƒƒƒƒ„ƒƒƒƒƒƒƒƒ„„„„…………††………„„„€„„„‰‘’‘‰€~~~~~~~~~~}zzzyzz{{yyyyzyxwxyyzzzyyyyzzz{{{z{|}}}||€…‰‰‰Šˆ…„‚ƒƒƒƒ„ƒƒƒƒ‚‚‚„„„ƒƒƒƒ‚ƒ„……‡‡ˆ‰‰‰‰‰‰‰‰‰Š‰ˆ†…………ƒ„††…ƒ€~€€€€€€€€ƒƒ‚‚€‚‚‚‚‚‚‚‚‚ƒ„ƒ€‚€€€€‚€‚‚€~€‚ƒ„…„„„„„„„„€€€€€€€€€€€€€€€€|{{}€€}€€}yvwxxz{||~€‚…„„………ƒƒƒƒƒƒƒƒƒ„„„„„„„„‡‡‡‡‡‡‡‡‹‹Š‰‡…ƒ€~~~€~~~~€€€€€€€~~}}~~}~}}}}}~~~}~€~~€€|z{|yxvuux|€€€€€€€€€‚ƒƒ‚‚„‚€€€€€€€€€~~€}|z{|}||}}}~€€€€€€€€€€€~~~}||{{{{{{{{{{}}~€€€~||~~||}~~€‚‚ƒ‚‚€€€‚ƒƒƒƒƒƒƒƒƒƒƒƒƒ‚‚‚‚‚‚ƒ‚‚‚ƒ„ƒ‚€‚€€€‚ƒ„ƒ‚‚ƒƒ‚‚‚‚‚ƒƒƒ‚ƒƒ„…†‡‡……†‡‡‡‡‡€€€€€€€€€€€€€€€€{{}}z|~|ywvutwwx{}~}||{zyxyz{||||||||zzzzzzzzxwwwvvuuuuuvvwww{||}|||{{|{z}‚ƒ€€‚ƒƒƒƒ„„ƒƒƒƒ‚‚‚‚‚ƒƒ„„„ƒƒƒƒƒƒƒƒƒƒƒƒ„„„„††……„„„„‚„„„‡‘’ˆ}||||{{{€€€€~}zyyyyzz{yxxyyzyxyyyzzzzz{{{{{{{|{{|}}}}|‚‡ŠŠ‰‰ˆ‡„ƒ‚„ƒƒƒƒƒƒƒƒ‚‚ƒƒƒƒƒƒƒƒƒ„……‡‡ˆ‰‰‰‰‰‰‰‰‰Š‰‡†…………ƒ„††…ƒ€~€€€€€€€€€€€‚ƒ„ƒ€‚€€€€‚€‚‚€€‚‚ƒ€€€€€€€€€€€€€€€€€€€€€€€€yz{‚‚€}‚ƒ|xvuyz{{{z|}‚„…†…„„„‡‡‡‡‡‡‡‡ˆˆˆˆˆˆˆˆ‰‰‰‰‰‰‰‰‹‹‹Šˆ†„‚€~€~~~~€€€€€€~~}}}~€€~}~~~~~~}}}~~€~}€~|}yxuuvz‚€€‚‚‚‚€€€€€‚€€‚‚ƒƒ‚„‚€€€€€~~€|{zz|}}}||}}~€€€€€€€€~~~}}|{{{{{{{{{{~~€‚‚ƒ€~||~~}}~~€€€‚‚ƒƒƒ€€€‚‚„„ƒƒƒƒƒƒƒƒƒ‚‚‚‚‚‚ƒ‚‚‚‚‚ƒƒ€€‚‚€€€‚ƒ„„‚‚ƒƒ‚‚‚‚‚‚‚ƒƒ‚‚ƒ„†‡‰‰†‡‰Š‹Š‰ˆ€€€€€€€€€€€€€€€€zy{}|y{}|{ywutswwwwxy||{zxxxxyxxxxxxxxwvwvwvwwvvvuutttuuvwwxxy{|||}||{|}|{~ƒ„€‚ƒƒƒƒ„ƒƒƒƒƒƒ‚‚‚ƒƒ„„…„ƒ„ƒ„ƒ„ƒ‚‚‚ƒƒƒƒ„††………„„„‚……ƒ„‡ŠŽ‘‘‡€€€€€€€€€~}|yyyxyyzzyxxxzzzyyyyzz{{{||||||||{|}~~~}}„ˆŒŠˆ‡ˆˆ…ƒ‚ƒƒƒƒ‚‚ƒ‚ƒƒƒƒ‚‚ƒƒ„„„„ƒ„……‡‡ˆ‰‰‰‰‰‰‰‰‰Š‰‡……„……ƒ„††…ƒ€~€€€€€€€€€€€€€€€€‚ƒ„ƒ€‚€€€€‚€‚€€€€€€€€€€€€€€€€€€€€€€€€xwx{~€€~‚ƒ„ƒzurwyzzyyyz~‚…‡†‡‰‹ŠŠŠŠŠŠŠŠ‰‰‰‰‰‰‰‰††††††††„……†…„ƒƒ~€~~€~~~€€€~~}}€€~€€€~~}}}~€~~~€€€€zxuux}„‚‚ƒƒƒ‚‚€€€‚‚‚€‚‚ƒ‚€€€ƒƒ‚‚€€‚€€‚€~~€|{z{|}}}{||}~~~€€€€€~€€~~~}||{{{{{{{{{{}~~€‚‚€~||}~}~~€‚‚‚‚‚€€€‚„…ƒƒƒƒƒƒƒƒƒ‚‚‚‚‚‚ƒ‚‚‚‚‚‚‚ƒƒ‚€‚€€€‚ƒ……ƒ‚ƒƒ‚‚ƒ…‡‰Š‹‰ŠŠŒŒŒ‹Š€€€€€€€€€€€€€€€€|z{~~{|||{zxvtsxyxwuux{zzyxwwvvttttttttvvvvvvvvyyyxxwwwzzzzyyyy{||}|||{}~}{~„…€‚ƒƒƒƒƒƒƒƒƒƒƒƒ‚ƒƒ„……„„„„„„„„‚‚ƒƒƒ„„„††……„„„„……‚ƒ‰Ž’‘‰„€}~~€‚ƒƒ€}}{zyxxxxyyzzyxyz{zzyyzz{{||}}||{{{{||}~~~~…‰Œ‹†…†ˆ†„‚‚ƒ„ƒƒ‚‚‚ƒƒƒƒ„ƒƒƒƒƒ„„„ƒ„……‡‡ˆ‰‰‰‰‰‰‰‰‰‰ˆ†…„„„„ƒ„††…ƒ€~€€€€€€€€€€€€€€‚‚ƒ„ƒ€‚€€€€€€~~€€€€€€€€€€€€€€€€|ywx{‚‚‚ƒ„„|uqtvxyyxyyz~‚„…†ˆ‹„„„„„„„„ƒƒƒƒƒƒƒƒ„„„„„„„„‚ƒƒƒ‚~~€~€~~~€€€~~~~€€€€~€€€~~~~~€~}~€€‚zxuvyƒ…‚‚ƒƒ„ƒ‚‚‚€‚‚‚‚€‚‚‚€~~‚€€€€€€~~€|{zz|}}}{||}~~~€€€€€~€€~~}}|{{{{{{{{{{{||}~€€€~||~~}~~€‚‚‚€€€‚€‚„…ƒƒƒƒƒƒƒƒƒ‚‚‚‚‚‚ƒƒƒ„ƒ„ƒƒƒƒ€€‚‚€€‚‚…†ƒ‚ƒƒƒ‚ƒ…‡‰Š‹Š‰‰ˆ‰‰‹‹€€€€€€€€€€€€€€€€}yy}~||~yzzywusruwxxvuwxzzzzzxxwyyyyyyyy{{{{{{{{{{zzzyyyzzzzyyyy{|||}||{}~}{~„…€‚ƒƒƒƒƒƒƒƒƒƒƒƒ‚‚ƒƒ„„…„„„„„„„„ƒ„„„…………†…†……„„„€€„…‚Š”Š…||}~‚~~~~||{xxxxxxyy|{zy{{{{zzzzz{|}|{{{{zzz||}~~~~„‡‹‰†‚„‡‡…ƒ‚ƒ„ƒ‚‚‚‚‚ƒƒ„„„„„ƒƒƒƒƒƒ„……‡‡ˆ‰‰‰‰‰‰‰‰‰‰ˆ†„„ƒ„„ƒ„††…ƒ€~€€€€€‚‚€€€€€‚‚ƒƒ‚ƒ„ƒ€‚€€€€€€‚€~~}~~~~~~~~€€€€€€€€€€€€€€€€‚~zy|€„†‚‚‚‚}vrrtwyxxxyxz}€‚ƒ€€€€‚‚‚‚‚‚‚‚„„„…„…„„………„ƒ€~€€~~~€€€€€~‚€~€~€€€€€}~€~~~€€zwuw{€ƒ„ƒƒƒ„ƒƒ‚‚‚€€€‚‚€€€}||€‚€€‚‚€€€~~€}|z{{|||||}}~€€€€€€€~~~~~}||{{{{{{{{{{{{|}~€€~||~~}}~~€€€€€€ƒƒ„ƒƒƒƒƒƒƒƒƒ‚‚‚‚‚‚ƒ„„„…„„ƒƒƒ‚€‚€€€‚‚…†ƒ‚ƒƒƒƒ‚‚‚‚‚‚‚ƒ…†ˆ‰‰‡‡………†ˆ‰€€€€€€€€€€€€€€€€{wwz|{z{wwxxwtrppsvxxxxx{||}}}{{||{|{|{|z{z{z{zzyyyxxwwwstuvxyzz{||}|||{|}|{~ƒ„€‚ƒƒƒƒ‚ƒƒƒƒƒƒ„‚‚ƒƒƒƒ„„ƒ„ƒ„ƒ„ƒ„„„„………††††……„„„„‚ƒ…ƒ‚ƒ’”ˆƒ€~~}|xxxxxyyz}|z{{}}}{{zzz{||zzzzzzzz{|}~~~}}„†‰Š†ƒƒ†‡†ƒƒƒ„ƒ‚‚ƒ‚ƒƒƒƒƒ„„„„ƒƒ‚‚ƒ„……‡‡ˆ‰‰‰‰‰‰‰‰‰ˆ‡†„ƒƒƒ„ƒ„††…ƒ€~€€‚‚€‚‚‚€€€‚‚‚‚‚‚ƒ„ƒ€‚€€€€€€€€‚‚€€€€€€€€€€€€€€€€€‚|{}€‚ƒ€€€€}xsqtwyyxxxuuwz~€€€‚‚ƒ‚ƒ‚ƒ‚„„„„„„„„„„„„„„„„…………„‚€~~~€€~~~€€€€€~€€€€€€€€€€€~€€€€€€~~€~}€€~}€ywvx}‚‚ƒƒƒƒƒ‚‚€€€€€€€€}|{{}~€‚€€‚‚‚€€~~€~}{{{|{z}}}~€€€€€€€€€€~~~~~~}}|{{{{{{{{{{||}~€€€~||~~||}~~€€~}~~€‚ƒƒƒƒƒƒƒƒƒƒƒƒƒ‚‚‚‚‚‚ƒƒƒ„„„ƒƒ‚ƒ‚€€‚‚€€€‚„†ƒ€‚ƒƒƒƒ‚‚‚‚‚‚‚ƒ„…†‡‡…………††‡‡€€€€€€€€€€€€€€€€|xv{}|{{yz{{zxusrstwyyxwwxz|}||{yyyyyyyywwwwwwwwxxxwwvvvrstuwxyz{|||}||{{|{z}‚ƒ€€‚ƒƒƒƒ‚‚ƒƒƒƒ„„„ƒƒƒƒƒ‚‚ƒƒƒƒƒƒƒƒƒƒƒ„„„……††………„„„ƒ}„„„…’“†‚€€€€€€€€~}|{yxxxxyyz|{z{}€€|{zyyz{{zzzzzzzz{{|}}}}|„…ˆŠ‰…„…ˆ†„ƒ„„ƒ‚ƒƒƒƒƒ‚‚‚ƒƒƒƒƒƒƒƒƒ„……‡‡ˆ‰‰‰‰‰‰‰‰‰ˆ‡…„ƒ‚ƒƒƒ„††…ƒ€~€€‚‚ƒ€€‚‚€€€‚€‚ƒ„ƒ€‚€€€€€€€€€ƒƒƒƒƒƒƒƒ€€€€€€€€€€€€€€€€}{{}~}~~}yuruxyxwwwrrtyƒ„ƒ‚‚‚‚‚‚‚‚ƒƒƒƒƒƒƒƒ€‚ƒƒƒƒ‚€~}}‚€~~~€€€€€~~€€€€€€€~}~€€‚‚}~€~~€€~}}ywvy~€ƒƒƒƒƒ‚€€€€€€€€€€€}{zz{}€€€‚€‚‚€€~~€~|{{{zz}}~~€€€€€€€~€€~~~}||{{{{{{{{{{~~€‚‚€~||~~|||}~~€~}|}~~~€ƒ„ƒ‚‚ƒƒƒƒƒƒƒƒƒ‚‚‚‚‚‚ƒ‚ƒƒ„ƒƒ‚ƒ‚€€‚‚€€€‚€„†ƒ€€‚ƒ‚‚‚ƒƒƒ„„…………†‡‰‰ˆ‡‡€€€€€€€€€€€€€€€€zy}€}~}~€€}zxvuuvxyvtrtvyzzyyyyyyyyyyxxxxxxxxyyxxwwwvwwwwxxxx{||}}||{{|zy|‚‚€‚ƒƒƒƒ‚‚‚ƒƒ„„„„„„ƒƒ‚‚‚ƒƒƒƒƒƒƒƒ‚‚‚ƒƒƒ„„††……„„„„„}€„…†‡’‘‹…ƒ‚‚€€€€€€€~|{yxyyxxyyzz{zz{~€‚ƒ}|zyyyz{yzzzz{{{z{|}}}||„…ˆŒ‹‡……ˆ†„ƒ„„ƒ‚„„ƒƒƒ‚‚‚‚ƒƒƒƒ„„„ƒ„……‡‡ˆ‰‰‰‰‰‰‰‰‰ˆ‡…„ƒ‚ƒƒƒ„††…ƒ€~€€‚ƒƒ~€‚‚ƒ€€€€€‚‚‚‚‚‚‚‚‚ƒ„ƒ€‚€€€€€€€‚‚‚‚€€€€€€€€€€€€€€€€{z{|~}€€€€{||{zyxwutuvy}„‚‚‚ƒ„‚ƒƒƒƒƒ‚ƒƒƒƒƒ‚‚‚ƒƒ„„„ƒ‚‚€„ƒ„……„‚}€€€~~~€€€~~€€}}}}~~€€€€~~~~€‚‚€}{{zvwƒ‚€€€‚ƒƒƒƒ‚€€€€€€€~‚}zyz~€€‚‚€€€~~~}}}|||||z{|}~€€€€€€}~~~}}}}}}}}{{{{{{{{|}~€€€€~{z|~~~~}||~~|~~~~~~~~‚ƒ„…‚ƒƒƒƒ‚‚ƒ„„‚‚ƒƒ‚€‚ƒƒƒ‚‚‚‚‚€€€€€‚„„‚‚ƒ‚ƒ‚‚‚ƒ‚‚ƒ†‰ŠŠˆ††ˆ‰ˆŠ‰…€€€€€€€€€€€€€€€€{ywwy{||{zyxxyyy{zzzzyyyxvtuwyyxwxyyyyxwwwwwwwwwwwwwwwwwwvvvwxyy{}~|{{ywwuttvz~€‚ƒƒƒ‚‚‚‚ƒƒ„„„††…„„ƒ‚‚ƒƒƒ„„„„„‚‚‚‚ƒƒ„…………„„ƒƒƒ‚€~‚…‡‡”’‰‚€€€~~}~~~~}|yyxxwwwxz{{{ƒ……}zzzzyy{{{zzzzzz{||}}||€…‹Œ‰†…Š‰‡„ƒƒƒƒƒƒ‚‚‚„„…„ƒ‚‚ƒ††††††††ŠŠŠŠŠŠŠŠˆ‡†„ƒƒƒ„‚…ˆ‡ƒ|{~~ƒƒ~€€€€€€€‚‚‚‚‚‚‚‚ƒƒ‚€‚‚‚‚‚‚ƒ‚€‚‚‚€€~€€€€€€€€€€€€€€€€€€€€€{zyz{}}}€€€€€€€€~~~~|{zyvvvwz}€‚‚ƒ‚‚‚ƒ‚ƒƒƒƒƒ‚ƒƒƒƒƒƒ‚‚ƒƒ„„ƒƒ‚‚€€„„„……„‚}€€€~~~€€~€€‚€~€€€€€~~~~~€‚‚€}||{wx„‚‚‚‚ƒƒƒƒƒ‚‚‚‚‚‚€|zz{~€‚‚€€‚‚€€€~~}}}}||||z{|}~€€€€€€~~~~~}}}}}}}}{{{{{{{{|}~€€€€€~{{|~~~}|}~}|~~~~~~~~‚ƒ„…ƒƒ„„„ƒƒ‚ƒ…„ƒ‚„ƒ‚‚‚ƒƒƒƒ‚‚‚‚‚€€€‚‚‚„…ƒ‚‚‚‚‚‚‚‚‚‚‚‚ƒ†‰ŠŠˆ‹‰‰ˆ‡ˆˆ…€€€€€€€€€€€€€€€€}{xxy{||zyxxwxxxzzzzzzzzyxvwyzzyvwwxxxwvwwwwwwwwwwwwwwwwvvvvwxyy{}~|{{ywwvttvz~€‚ƒƒƒ‚ƒƒƒƒƒƒƒƒ………„„ƒƒƒ‚‚‚‚ƒƒƒƒ‚‚‚‚ƒƒ„……………„„„„ƒ‚…‡‡”‘ˆ‚€€ƒ‚€~~}€€€€~}zyxwwxyyz{{|~ƒƒ‚|{yxyyyx{{{{{{{{z{{}}}||~ƒˆ‹Šˆ…„Š‰‡…„ƒ‚ƒƒƒƒƒƒ‚‚‚ƒ„„„ƒ‚ƒƒ††††††††‰‰‰‰‰‰‰‰ˆ‡…„ƒƒƒ„ƒ…‡‡ƒ||~}~€}€€€€€€€€‚‚‚‚‚‚€‚ƒƒ‚€‚€‚€‚‚ƒ‚€€‚‚€€€€~€€€€€€€€€€€€€€€€€€€€€€€€|yxz{}}€€€€€€€€€€€}|{xxxxz|€ƒƒƒ‚€‚‚‚ƒƒƒƒ‚ƒƒƒƒƒƒƒƒƒƒ„„„ƒ‚‚€~„„…††„‚~€€€~~~~€€€€€€‚‚‚‚€€€€€€€€~~~~~}}}}€‚‚€}||{xyƒ‚ƒƒ„ƒ„ƒ‚‚‚‚‚€€€€€|z{}€‚‚‚€‚‚‚€€€~~~~}}||{z{|}~€€€€€€€€€~~~}}}}}}}}||||||||||~€€€€€}{{}~~}~}}}~~~}‚ƒ„…„„„„„„ƒƒ„……ƒƒ„„ƒƒ‚‚‚‚ƒƒ„‚‚‚‚€‚‚ƒ……‚€‚‚‚‚ƒ‚‚‚‚‚ƒ…‰ŠŠˆ‹ŠŠ‰ˆ‹‹ˆ€€€€€€€€€€€€€€€€~|yxzz{{zzyxwwxxyyzz{{||{yxxz{{zwwxxxwwwwwwwwwwwwwwwwwwwwvvvwxyy{}~|{{ywwuttvz~€‚ƒƒƒ‚ƒƒƒƒƒƒƒƒ„„„„„„„„‚‚‚‚ƒ‚‚‚ƒƒ„„……………„„„ƒ‚…†‡Œ‘‡‚€€€€~|{z|zyxxy{|y{{|~~{zyyyzyyzz{{{{||z{||}||||†‰ˆ†„„‰ˆ‡…„„„„ƒƒƒƒƒƒ‚‚‚ƒ„ƒƒƒ„„††††††††ˆˆˆˆˆˆˆˆˆ‡†„„ƒƒ„ƒ…‡†‚}|€€€~|~~~~~~~~€€€€€€€€€€‚‚‚‚€€‚ƒƒ‚€‚€€€€‚ƒ‚€€‚€€€~€€~~€€€€€€€€€€€€€€€€ƒ{yz}€~~}}||}~~~~}|{zzz{|~~‚ƒƒƒ‚‚‚‚ƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒ„ƒƒ‚‚€€„„…††…‚€~€€€~~~~€€€€€‚‚‚€€€€€~~}}}}||}‚‚€}|||zz~€€€‚ƒƒƒ‚‚€€€€€€€|{}€€‚‚€€€€~~||{{z{|}~€€€€€€€€€€~~}~~}}}}}}}}|||||||||}~€€€€}{|}~||}|~~€€€€€€€€‚ƒ„…„„„„„„ƒƒ„……„ƒ……„„ƒ‚‚‚ƒ„…‚‚‚‚€‚‚ƒƒ……ƒ€€€‚ƒƒƒ‚‚‚‚ƒ†‰‹Šˆ‰‰‹ŒŒŽŽŠ€€€€€€€€€€€€€€€€~|yxxyyy{{zxxxxxxxyz{|}~{zyyyz{{xxxyxyxxwwwwwwwwwwwwwwwvvvvwwxyy{}~|{{ywwvttvz~€‚ƒƒƒ‚„„„ƒƒ‚‚‚‚ƒƒƒ„„„„‚‚‚‚‚ƒƒ‚‚ƒƒ„„………………„…„‚…††ŠŽ‹…‚€‚~€‚ƒ~~}{yxzywvvxz{yz{|}~{{zzz{{{{yzzzz{{{z{{}|}|||€…ˆ‡†……‡†…„ƒ„„„ƒƒƒƒƒƒƒƒ‚ƒ„ƒƒ„…††††††††‡‡‡ˆ‡ˆ‡‡ˆ‡…„ƒƒƒ„„†‡…‚~}}€~}}}}}}}}}€€€€€€€€€€‚€€‚ƒƒ‚€‚€€€‚ƒ‚€€‚€€€€~€~~~~~~}}€€€€€€€€€€€€€€€€„€{xz|~}}{zyxxzz||~}}}|||{||}}ƒ‚‚‚ƒ‚‚‚‚‚ƒƒƒƒƒƒƒ„ƒ„ƒƒƒ„„„ƒ‚‚€~„……††…ƒ€~€€€~~~~~~€€€€€€€€€~€€}}}}}||||‚€~}}|{{}~~~€€‚‚‚‚‚‚€€€€€~~€||~€ƒ‚‚€‚‚‚€€€~}||{z{|}~€€€€€€€~~~~}}}}}}}}||||||||||~€€€€~}|}~{{{}}€‚€€€€€€€€‚ƒ„…ƒƒ„„„ƒƒ‚„……„„……„„ƒ‚‚‚ƒ„…‚‚‚‚€‚‚ƒ……‚€€€‚‚ƒƒ‚‚‚‚ƒ…‰ŠŠˆŠŠ‹Œ‹Œˆ€€€€€€€€€€€€€€€€}zxvwxyx{zywwvvwwxxz{|}~zzzyxyzzxxxxxxxxwwwwwwwwwwwwvvvvwvvvwxyy{}~|{{ywwuttvz~€‚ƒƒƒ‚„„„ƒƒ‚‚‚‚‚‚ƒƒ„„„‚‚ƒƒƒƒ„„ƒƒƒ‚ƒƒ„„„„…„…„……„‚‚„……†ˆ†‚ƒ‚‚†„‚~~€~|{zyxwwxz{yz{{}~}zyyzzzzzzyyyyzzzzz{||}||||€…‡ˆ‡ˆˆ…„„‚‚‚‚ƒƒƒƒƒƒƒƒƒ‚ƒƒƒƒ……††††††††‡‡‡‡‡‡‡‡ˆ‡†„„ƒ„„…†‡…~}~‚‚€~~}}}}}}}}€€€€€€€€€€€€€€€€€‚ƒƒ‚€‚€€€‚ƒ‚€‚‚€€€~€€~~~~~}}}€€€€€€€€€€€€€€€€~yxy|€~~}|{zyyz{|}~~~~}}}}}}}}€‚ƒ‚‚‚ƒ‚‚‚‚‚ƒƒ„ƒƒƒ„ƒ„„„ƒƒƒ„ƒƒ‚‚€€„…†‡‡†ƒ€€€~~~€€€€€€€€€€~~~€}~}}|}|||~‚€~}~}|}}~~~|}~€‚‚‚ƒƒƒ‚‚‚‚‚€€€‚€~}„ƒ‚ƒƒ‚€€€}|{{z{|}~€€€€€€€~~~~}}}}}}}}|||||||||}~€€€€€}}|~}{z|}~~€ƒ€€€€€€€€‚ƒ„…ƒƒ„„ƒƒ‚‚ƒ……„„……„ƒ‚‚‚‚ƒƒ„‚‚‚‚€€€€€‚‚„„‚€€€‚‚ƒƒƒ‚‚ƒ†‰‹Šˆ‰ˆˆˆˆ‹Œ‰€€€€€€€€€€€€€€€€|zwwwyyyzywvuuuuwwxyz{|}z{{zxxy{xxwwwwwxwwwwwwwwwwwwvvvvvvvwwxyy{}~|{{ywwvttvz~€‚ƒƒƒ‚ƒƒƒƒƒƒƒƒ‚‚‚ƒƒƒ„„ƒƒ„„„„……ƒƒƒ‚ƒƒƒ„ƒ„ƒ„„„„„…‚€€‚„……ƒ„ƒƒ‚ƒ…„‚€€€~}|zzyyxxyyyzzz{}|zwxyyyxxyzzyzyzyzz{{}}}||{„‡‡ˆˆ‰†…„ƒ‚‚‚ƒƒƒƒƒƒ‚ƒ„ƒƒ„…††††††††‡‡‡‡‡‡‡‡ˆ‡…„ƒƒƒ„†††„€~~~€€€~}}~~~~~~~~~€€€€€€€€€€€€€€€€‚‚ƒƒ‚€‚€€€€‚ƒ‚€‚‚‚€€€€~€€~~~~~€€€€€€€€€€€€€€€€}zy{}€€€€€€€}}}~~}}}€‚ƒƒƒ‚‚‚ƒ‚‚‚‚‚ƒ„ƒƒƒƒ„„„„ƒƒ„„„ƒ‚‚€~„…†‡‡†ƒ€€€~~€€€€€€€€€€€€€€~~~€€~~~}}}}|{~‚€~~~~~€}}€‚‚€€€€€€€€~€‚‚~€€ƒ‚‚‚€€€€€~|{{z{|}~€€€€~}}}}}}}}}}}}}}}}}}||~€€€€}|}~€}z|}~~€‚€€€€€€€€‚ƒ„…„„„„„„ƒƒƒ„…ƒ„……„‚‚ƒƒƒƒ‚‚‚‚‚€€ƒ„€€‚‚ƒƒ‚‚ƒ…‰ŠŠˆ‰ˆˆˆˆŠ‹ˆ€€€€€€€€€€€€€€€€|zxwy{||{{yxwvvvvwwxyz{{||}{yyz|xwwvwwxxwwwwwwwwwwwwvvuuwvvvwxyy{}~|{{ywwuttvz~€‚ƒƒƒ‚ƒƒƒƒƒƒƒƒ‚‚‚ƒƒƒƒƒƒƒ„„„„……„ƒƒƒ‚ƒƒƒ‚‚ƒƒƒƒ„„…ƒ€€‚„……ƒ‚ƒƒ‚~}|zz{zzxwvzzzyz}}{z|}}|{{{|{{{zzzzz{||}|||z}„…†ˆ‰Šˆ‡…ƒ‚‚‚‚‚‚ƒƒƒƒƒ‚ƒ„ƒƒƒ„…††††††††ˆˆˆ‡ˆ‡ˆˆˆ‡†„ƒƒƒ„†‡†ƒ€}~€~}~€€€€€€€€€€€€€€‚‚‚‚‚ƒƒ‚€‚€‚€‚‚ƒ‚€€‚‚€€€€€~€€€~€€€€€€€€€€€€€€€€}{{}€‚‚‚‚ƒ„„……………„ƒ‚€}}}~~~~}‚ƒ„‚ƒ‚‚‚‚ƒ„ƒƒƒ„„„„„ƒƒ„„ƒƒ‚‚€€„††‡‡†„€€€~~€€‚€€€€€€€~~~~€€~~~~}}}}{~‚€~~~€€€€‚~~~}}}||{{|||}}}}€ƒƒ€€}|{|~€€€‚‚ƒƒ€€€€‚€~|{{z{|}~€€€€€~}|}}}}}}}}}}}}}}}}|}~€€€€}||~€€}z}€€~}€‚ƒ„…………………„„ƒ„„ƒƒ……„€‚ƒƒƒ‚‚‚‚‚~~€€€‚ƒ€‚‚‚ƒ„‚‚ƒ†‰ŠŠˆ‹‹Œ‹ŠŠ‰…€€€€€€€€€€€€€€€€}{yy{}~~~|{zyyywwwxxyyz}~~}zz{}yyxwwxyywwwwwwwwwwwvvvuuvvvvwxyy{}~|{{ywwuttvz~€‚ƒƒƒ‚‚‚‚ƒƒ„„„ƒƒƒƒƒ‚‚‚ƒƒƒƒ„„„„„ƒƒƒ‚ƒƒƒ‚‚‚‚ƒƒƒ„…ƒ€€‚„„„ƒ‚~ƒƒ€‚‚‚‚‚€€‚‚€€‚‚ƒƒ‚€}|zzyxz}~}‚‚€}}||{{zzz{||}}||x{‚ƒ„†ˆŒ‰‡…„ƒƒ‚‚‚ƒƒƒƒƒ‚ƒ„„ƒƒƒ„††††††††ˆˆˆˆˆˆˆˆˆ‡…„ƒƒƒ„†‡†ƒ}~€‚~€€€€€€€€€€€€€ƒƒƒ‚‚€€‚ƒƒ‚€‚‚‚‚‚‚ƒ‚€€‚€€€~€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€~~~}}|}}~€‚‚‚‚ƒ„‚‚‚ƒƒƒ„„„ƒƒƒƒƒ„…„ƒƒƒƒƒƒ‚€~€€€‚†††‡‡†„‚‚€~~~~€€€€€€€€€€~~~~}}~~~~}~~€€€€€€€~~~~~~~xxy|~}zwxyz||}}}~€‚|{{}}}}}}}|||}~€‚‚‚‚‚‚€€€€~~}||}}}~~~€€€€€€€€~}}}||||||||{|||}}}~€€€€€|{~€~}~~~~~~~~~‚€€ƒ„‚€ƒ…†„„………………ƒƒƒ„„„„„ƒƒ‚‚‚‚ƒƒ‚‚€€‚‚€€€‚ƒ„…ƒ‚ƒƒ‚‚‚‚‚‚„†ˆ‰‰‰ŠŒŽŽ‹‰‰Š€€€€€€€€€€€€€€€€~~~~}}}}||}|}||||||||||||||}|{{zzxxxyyxwxxxwwwwwwvvvwwwvvvvvwwxxz|}|}}zvutstvy}€‚ƒƒƒƒ‚‚‚ƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒ„„ƒ‚…€€‚‚‚„…†‡‡‡†…††…„‚€}{z{~€‚‚…„‚€€€~}}||{z{{||{zz{{|~€ƒ…‡††…„„ƒ‚‚ƒ‚ƒ‚ƒ‚ƒ‚‚‚‚ƒƒ„„„……††‡‡‡‡…‡‰ˆ…„†ˆ††………„„„„††~€€~~}|}}~‚‚€~}€€€€€€€€€‚‚‚€‚„…‚€€‚‚‚€€€~}~~€€€€€€€€€€€€€€€€€€€€€€€€€€€~~~}}}}~~‚ƒ‚‚‚ƒ‚‚‚ƒƒƒƒƒƒƒ‚‚‚ƒ„„„ƒ‚‚ƒƒ‚‚€€€€‚††‡‡‡†„‚‚€~~~~€€€€€€€€€€~~~~~~~~}~€€€€€€~~€€~~~~{zz|}}zxyz{|}}||}~~~{zyz}~~€‚‚‚‚€€€€~~€€€€}}}~~~~~€€€€€~~}||||||||{|||}}}~€€€€€|{~€~}~~~~~~~~~€€‚ƒ‚ƒ…†„„………………ƒƒƒ„„„„„ƒƒ‚‚‚‚ƒƒ‚‚€€‚‚€€€€‚‚„…ƒ‚‚‚‚‚‚‚‚„…ˆ‰ŠŠ‹‹ŠŠ‹ŒŒŠˆ€€€€€€€€€€€€€€€€~~~~}}}}|||||||||||||||||||||{zzyyxxxyxwxxxwwwwwwvvvwwwvvvvvvwxxz||||}zvutstvy}€‚ƒƒƒƒ‚‚‚ƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒ„„ƒ‚„€€‚‚‚ƒ„…†††…………„ƒ‚€~}}‚………€€€‚ƒ€€€€~~}|{{{}~ƒ„……„„ƒƒ‚‚‚ƒ‚ƒ‚ƒ‚ƒ‚‚‚ƒƒ„„„………††‡‡‡…‡ˆˆ……†ˆ††……„„„„„††~€€€€€€€€€€~}|||}}~‚€~~€€€€€€€€€€€€€€€€€€‚„…‚€€‚‚‚€€€€€~~€~~~~~€€€€€€€€€€€€€€€€€€€€€€€€€€€~~~~}}}}~€‚‚ƒ‚‚‚ƒƒƒƒƒ‚ƒ‚ƒƒƒ‚ƒƒ„„„ƒ‚‚ƒƒ‚€€€‚…††‡‡†„‚‚€~~~€€€€€€€€€~~~}~~~~~~€€€€€€€€€€€~~~~}||}}{z{||}}}||z{{{zz|~€€‚‚ƒƒ„ƒƒ‚€€~~~~}€€€€€€}}~~~~~€€€~~||}|}|}|{{||}}}}€€€€€|{~€~}~~~~~~~~~€‚‚‚ƒ…†„„„……………ƒƒ„„„„„„ƒƒƒ‚‚‚ƒƒ‚‚€€‚‚€€€€€‚ƒ„ƒ‚‚‚‚‚ƒ…‡‰‰ŠŠ‹‰‰‹Ž‹ˆ€€€€€€€€€€€€€€€€~~~}}}|{{{{{{{{||||||||{||||{zzyxxxxxxwxxxwwwwwwvvvwwwvvvvvwwxxz|}|}}zvutttvz}€€‚ƒƒƒƒ‚‚ƒ‚ƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒ„„ƒ‚„‚‚‚ƒ„…………ƒƒƒƒ‚‚‚‚„…„ƒ€€€€€€€€€€€‚‚‚€}|zzz{|~€ƒƒƒƒƒƒƒƒƒ‚ƒ‚ƒ‚ƒ‚‚‚ƒƒƒƒ„„…………††‡‡…‡ˆ‡†…†ˆ………„„„„„„††~€€€€€€€€€€}}|{{{|}€€~€€€€€€€€€€€€€‚€€€‚„…€€‚‚‚€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€~~~~}}}}~€€‚‚‚‚‚‚‚‚„„ƒƒ‚‚‚‚ƒƒƒ„ƒ„„„„„‚ƒƒ„ƒ‚€€…†‡‡ˆ†„‚€~~€€€€€€€€€€}~~~~~€€€€€€€€€€€€€~~€~}}}||}}~~~}||yz{||‚…€€€€€€€€€€€€€€€€€‚‚~~~€~€€€€~~}}}}}}}}{||}|}}~€€€€€|{~€~}~~~~~~~~~}‚ƒ‚€‚‚„„…ƒ„„…………„„„„„„„„„ƒƒ‚ƒ‚ƒƒƒ‚‚€€‚‚€€€€€ƒ„‚€‚ƒ‚‚€‚„†‡‡‡‡ˆ‰ŠŠ‰‰ˆ€€€€€€€€€€€€€€€€~~}}||z{z{z{z{||||||||{{|||{zyxxxxxxwwxxxwwwwwwvvvwwvvvvvvvwxxz||||}zvuuttvz~€€‚ƒƒƒƒ‚‚‚ƒƒƒƒƒ„„ƒ„ƒƒƒƒ„„„„„„„„ƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒ……„ƒ€€‚ƒ„……‚‚‚‚‚‚‚‚„ƒ‚ƒƒ~{€€€€€€€€‚‚‚}{zyyyyz|}~‚‚‚ƒ‚ƒƒƒ‚ƒ‚ƒ‚ƒ‚ƒ‚‚‚ƒƒ„„„„…………††‡†‡‡‡†††‡……„…„„ƒƒ„††~€€}}{{z{{|~€€€€€€€€€€€€€€€€€€‚€€€‚‚……‚€€€‚‚€€‚€€€€€€€€ƒƒ‚€€€€€€€€€€€€€€€€€€€€€€€€~~}}}}}}}~€‚‚ƒƒƒ„ƒƒƒƒ‚‚‚„„„„……………„„ƒ„„„ƒ€€€…††‡‡†„‚€~€€€€€€€€€}}~~~~~€€€€€€€€€€€€€€€€‚€}}}~~~~~}|}~}~ƒ…€€€€€€€€€€€€‚€€€€€€~~~€€€€€€€~~~~}}}}}}}}{{||}}}}€€€€€|{~€~}~}~€‚‚€€€‚‚ƒ„„„ƒƒ„………„„„„„„„„„„„ƒƒ‚ƒƒƒ„‚‚€€‚‚€€€€€€ƒ„‚€‚‚ƒ‚€‚„†‡‡‡„†ˆˆ†……†€€€€€€€€€€€€€€€€€~}||{{z{z{z{z||||||||{{{|{zyyxxxxxwwwxxxwwwwwwvvvwwwvvvvvwwxxz|}|}}zvvutuwz~€€‚ƒƒƒƒ‚‚ƒ‚ƒƒƒƒ„„„ƒƒƒƒ‚„„„„„„„„ƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒ……„~ƒ~€‚ƒ„„‚‚‚‚ƒƒ‚‚‚‚|z{|}~€‚ƒƒƒ„‚‚‚}{zyyyyz{}~‚‚‚‚ƒƒƒƒƒ‚ƒ‚ƒ‚ƒ‚‚‚ƒƒƒƒ„„„„…………††‡†††‡‡‡†…„„„„ƒƒƒ„††~€€~}|{{z{{|}€€€€€€€€€€€€€‚€€€‚‚„…€€€‚€‚€€€€€€€€€€€ƒ‚‚€€€€€€€€€€€€€€€€€€€€€€€€€€€€€~~}}}}}}}}~€‚ƒƒƒƒƒƒƒƒ‚ƒ‚‚ƒ„„…………„…„ƒ„„„ƒƒ€€„†‡‡ˆ†„‚€€~~€~€€€€€€€€~~~|}~~€€€€€€€€€€€€~~~€€€€€€||}~€‚ƒƒ……„ƒ‚€€€€€}~~~~€€€€€~~~~~~~}~}~}~{||||}}~€€€€€|{~€~}~~~€€€€‚ƒ„„„„ƒƒ„„…„„„„„„„„„ƒƒ„„ƒƒƒƒƒ„‚‚€€‚‚€€€€ƒ„ƒ‚‚‚‚‚ƒ„‡ˆŠŠŠ‡ˆ‰‰‰ˆ‡†€€€€€€€€€€€€€€€€€€~}|{{{{{{{{{{||||||||z{{{{zyywxxxwwwwxxxwwwwwwvvvwwwvvvvvvwxxz||||}zvvuuuw{~€‚ƒƒƒƒ‚‚‚ƒƒƒƒƒ„„„„ƒƒ‚‚ƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒ††„~€‚‚‚‚€€‚ƒ„‚‚‚‚€€‚‚||}~~~~~{|}€‚ƒ„‚‚‚€}|yyyz{}€ƒƒƒƒƒƒƒƒ‚ƒ‚ƒ‚ƒ‚ƒ‚‚‚ƒƒ„„„„„„…………†ˆ†…†‡ˆ‡…„„„„ƒƒƒƒ„††~€€€€€€€€€€~}|{{{{{|}€€€€€€€€€€€€€€‚‚……‚€€€‚€‚€€€€€€€€€€€‚€€€€€€€€€€€€€€€€€€€€€€€€~~~~}}}}}}}~€‚ƒ‚ƒƒƒ‚‚‚ƒƒƒƒƒƒ‚ƒ„„„„„ƒ„ƒƒ‚ƒƒƒ‚€€€€~„††‡‡†„‚€~~€€~~€€€€€€€€~~~~|}~~~~€€€€€€€€‚‚€€€€}‚‚€~~~~€€}{{{}~~€‚„„ƒƒƒ‚‚‚‚‚€€€‚‚€~}|}}}}~~~~€€€~~~~~~~~~~{|||}}}}€€€€€|{~€~}~~~€€‚ƒ…„„ƒƒƒ„„„„„„„„„„„ƒƒƒ„„ƒƒƒƒ„„‚‚€€‚‚€„…ƒ‚‚‚‚‚‚‚‚ƒ†‡‰Š‹‹‰‰Š‹‹‹Š‰€€€€€€€€€€€€€€€€€~}{{z||||||||||||||||zz{{{zyxwxyxwvwwxxxwwwwwwvvvwwwvvvvvwwxxz|}|}}zvvvuuw{~€‚ƒƒƒƒ‚‚‚‚ƒƒƒƒ…„„ƒƒ‚‚‚ƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒ††„~~€‚‚‚‚€€€€€‚ƒ‚‚€~ƒƒƒ‚€}|z{{{||}}~~}|yyz{}ƒ……„„ƒƒ‚‚ƒ‚ƒ‚ƒ‚ƒ‚‚‚ƒƒƒƒ„„ƒƒ„„…………ˆ†……ˆˆ‡…„„„ƒƒƒƒ‚„††~€€€€€€€€€€€~||{{|z{}€€€€€€€€€€€€€€€€€‚„…‚€€€‚ƒ€€€€€€€€€~~€€~€€€€€€€€€€€€€€€€€€€€€€€€€~~~~}}}}}}}~€‚ƒƒ‚‚‚ƒ‚‚‚‚ƒƒƒƒ„‚‚ƒƒƒ‚‚ƒ‚‚‚‚‚‚€€€„††‡‡†„‚€~~€€~~~€€€€€€}}~~~~|}~~~€€€€€€‚‚‚€€€{~‚ƒ~}~‚‚‚‚|~€~}}}}}}}}||~~€‚ƒ„„…„„„ƒƒƒ‚ƒ‚€~|{z||}}}~~~~~€€€€€€~~~~~~~~{|||}}}~€€€€€|{~€~}~€~}}‚€‚„…„ƒƒƒƒ„„„„„„„„„„„ƒƒƒ„„ƒƒƒƒ„„‚‚€€‚‚€„…ƒ‚ƒƒ‚‚‚‚‚‚„†ˆ‰‰‰†‡ˆŠŠŠŠ‰€€€€€€€€€€€€€€€€€~}|zz|||}|}||||||||||zz{{{zyxwxxxwvwxxxxwwwwwwvvvwwwvvvvvvwxxz|}|}}zvwvuux{€‚ƒƒƒƒ‚‚‚ƒƒƒƒƒ……„„ƒ‚‚‚ƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒ††„~~€‚‚‚‚€€‚€€‚‚‚‚‚€€}}‚‚‚ƒ„……„ƒ‚‚€~|zxxz{{||{zzyyz|~ƒ…††……„ƒ‚‚‚ƒ‚ƒ‚ƒ‚ƒ‚‚‚ƒƒ„„„ƒƒ„„„………ˆ†„…ˆ‰‡…„„„ƒƒƒ‚‚„††~€€€~}||||yz|~€€€€€€€€€€€€€€€€€€‚‚‚€‚„…‚€€€‚ƒ€€€€€€€€~~}~‚€€€€€€€€€€€€€€€€€€€€€€€€€~~}}}~€€€}{{z{{{}€‚‚‚ƒƒƒ‚‚‚ƒƒ‚ƒƒƒ„ƒƒ‚‚„…†…„ƒƒ„„ƒƒ„„ƒ‚‚€€€€ƒ‰ˆ‡…ƒ€~~~€€€€~~~~~‚€~}}~~~~~~~~~~~~€€€€€‚‚‚‚€}}~~€~~~€€~}|||~~~|||~~}~~€‚‚€€€~|zy{|}~€€€€€}~€€€€~~~~}|}}}}~~~~~~€€€~}}€}~~~€€€ƒ~~ƒ†ƒ‚„ƒƒƒ„„……†…„„„„„„„ƒƒ„…†………ƒ€€€€„…ƒ‚€ƒƒƒƒ‚‚‚‚€ƒ„„„ƒ†„ƒƒ„……„€€€€€€€€€€€€€€€€€€~}}|}}}}}}}}}}{{|{|{|{yyxxxxxxyxxwwwwwxxwwwwwwvwwxxwvuwvuvwwxzz}~}}|zxuttvy}€‚‚‚‚ƒ„„ƒ‚‚‚„„„„„„„„‚‚ƒƒ„„ƒ„ƒ‚‚„ƒƒ„……„ƒƒƒ……„€ƒƒƒ‚‚€€€€€€€€‚ƒ……ƒ€€€€€€‚‚‚ƒƒ„„ƒƒ‚}~~~~}|{zzz{~…‡†††…„„ƒƒƒƒƒƒƒƒƒƒ„ƒƒ‚ƒƒ„…„„„„„„……††††††††„ƒ„ƒ„ƒ„ƒ‡†„€||‚€~~€€~}|{~}||}ƒ€€€€€€~~€€‚€€€‚ƒ€‚ƒ‚€‚‚€‚€€€€€€€‚‚‚‚ƒƒƒƒƒƒƒƒ€€€€€€€€€€€€€€€€€€€~~}~~~~~}|{{{|}~€ƒƒ‚‚‚ƒ‚ƒ‚ƒ‚‚‚ƒƒƒƒƒ‚‚‚„……„ƒƒƒ„„ƒƒ„„ƒ‚‚€€€€ƒˆ‡†„‚€~~~~~~€€~~~~~~~~~~~€€€€€€‚€~~~~~~~~€€€€€€€€€€}~~~}|}}|}|}}}}~~€‚€€€~|zz{|}€€€~€€€€€€~~~~}}}}}}~~~~~€€€€~}}€}~~~€€€~~€ƒ~ƒ†…ƒ„„„„ƒƒƒ„„…„„„„„……ƒ‚‚ƒ„„„„…ƒ€€€€„…ƒ‚€‚ƒ„ƒ‚‚ƒ€‚ƒ„„„„…„„„……„„€€€€€€€€€€€€€€€€€~}|||}|}|}|}|}{{{{{{{{yyxxxxxxxxwwwwwwxxwwvwwwvwwxwwvuwvuwwwxzz}~}}}{xvvuwz~€€‚‚ƒ‚‚ƒ„„„‚‚‚„„„„„„„„‚‚‚ƒƒƒƒƒƒ„ƒ‚‚ƒƒƒ„……„ƒƒƒ……„€ƒƒƒ‚‚€€€€€€€€ƒ……ƒ‚‚ƒƒƒ……„ƒƒƒƒƒ€~}|zzz{~…‡………„ƒƒƒ‚ƒƒƒƒƒƒƒƒƒƒ‚‚‚ƒƒ„„„ƒƒ„„……††…†…†…†ƒ„ƒ„ƒ„ƒ„††„€}}‚€~€€€€~}||||{{|~€€€€€€€€€‚€€€ƒƒ€‚‚‚€‚‚€‚€€€€€€€€‚‚‚ƒƒƒƒƒƒƒƒ€€€€€€€€€€€€€€€€€€€~~~~}}}~}}|||}}€‚ƒƒƒƒ‚ƒƒƒƒ‚‚‚‚ƒƒƒ‚‚‚ƒƒ„ƒ‚‚ƒ„„„ƒƒ„„ƒ‚‚€€€€ƒ††„ƒ€~~~~~~~~€€€€€~~~~€€€€€€€€€€~~~~~~~~~~ƒ‚‚‚€€‚€~~}{~}|{{{}}|}}~€€€€€~|{z||~~€~~}€€€€€~~~}}~}}}}~~€€€€€~}}€}~~~€€~}}~~~‚†…†‡……„ƒƒƒƒƒ„„ƒ„„……†‚‚‚ƒ„„ƒ„ƒ€€€€€„…ƒ‚€‚ƒƒ‚‚„€‚ƒ…„…„…„……‡†…„€€€€€€€€€€€€€€€€€~|||||||||||||{{{{{{{{yyxxxxxxyxxwwwwwxxwwwwwwwwwwwwvvwvvwwwwyz|~}}|{xxwwy|€€€‚‚ƒƒƒƒƒ„„ƒ‚‚‚‚„„„„„„„„„ƒƒƒƒƒƒ‚‚ƒ‚‚‚ƒƒƒ„……„ƒƒƒ……„€ƒƒ‚‚‚‚€€‚„…„ƒ‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚ƒƒƒƒ„„………„„„„„„ƒ}|zzz{}„†„„„ƒƒ‚‚‚ƒƒƒƒƒƒƒƒ‚‚‚‚‚ƒƒ„ƒƒƒƒ„„…………„…„……„ƒ„ƒ„ƒ„ƒ†…„€~|€~~}}}|{{{|}€€€€€€€€€‚€€€€ƒ„€‚€‚‚€‚€€€‚€€€€€€€‚‚ƒƒƒƒƒƒƒƒ€€€€€€€€€€€€€€€€€€}}||}}}}}~~€€‚ƒƒƒƒ€‚„ƒƒ‚‚‚ƒ‚‚‚‚ƒƒƒ‚‚ƒ…„„ƒƒ„„ƒ‚‚€€€€ƒ„„ƒ‚€~~~€}}~~€€~~~€€€€€€€€~~~€€€€€€€€‚€€~~}}~~~~~~~~ƒ‚‚€€€}~~~|{~}||{||}{||}~€€€€~}{z|}}€€€€}|~~~~~€}}}}}}~~€€€€€~}}€}~~~€€~}|||~~~€‚…†‡„„ƒƒƒƒƒƒ„„„„„„……ƒ‚‚ƒ„……„„‚€€€€€€€„…ƒ‚€‚‚‚ƒƒƒ‚ƒ……†……„……‡‡‡…„€€€€€€€€€€€€€€€€~}|{{{{{{{{{{{{zzzzzzzzyyxxwxxxxxwwwwwxxxwwvwwxwwwwwwvvwvvwxwwxz|}}|}{yzyy{~€€€‚ƒƒ„„„ƒƒƒƒ‚‚‚‚ƒƒƒƒƒƒƒƒ…„„„ƒƒ‚‚‚‚‚‚‚‚‚‚ƒƒ„……„ƒƒƒ……„€‚‚‚‚‚‚‚‚€€‚ƒ„„„‚‚‚‚‚‚‚‚„„„ƒƒƒƒƒ‚‚‚ƒƒƒƒƒ‚ƒ„†……ƒ‚……„ƒ|{zzzz}€ƒ…ƒƒ‚ƒ‚‚ƒƒƒƒƒƒƒƒ‚‚‚ƒ‚ƒƒƒƒƒƒƒƒƒ„„„„„„„„„„ƒ„ƒ„ƒ„ƒ„……„‚~}~€€€~~~~~}}}|}|}}~€€€€€€‚€€€€ƒ„€‚€‚‚€‚€€‚€€€€€€€€‚‚ƒƒƒƒƒ‚‚‚‚€€€€€€€€€€€€€€€€€€~~}}}~€€€€€‚‚‚‚‚€‚ƒ„ƒ‚‚‚‚‚ƒ‚‚ƒƒ‚ƒ…„„ƒƒ„„ƒ‚‚€€€€ƒƒƒ‚€~~~}|€~~€€€~~€€€€€€€€€€€€€€€€€‚‚‚‚‚€€~~}}}~~~~~}~~€€€~}|{{}}}{}}~~~}}|{{||~~€}|{|}~~€€~}~~~~~~~€~}~~~~~€€€€€~}}€}~~~€€~}||||}~~€‚…‡„ƒƒƒƒ„„………„„„„„„ƒ‚‚ƒ„……„„‚€€‚€€„…ƒ‚€‚‚‚ƒƒ‚‚„…††††……†‡‰ˆ‡…€€€€€€€€€€€€€€€€~}|{zz{{zz{z{zzzyyzyzyzyyyyxxxxxyxxwwwwwxwwvwwxxwwwwvvvvwvvxxwwx{|}||||z{{{}€€€ƒƒ„„„„ƒƒƒ‚ƒƒƒ‚ƒƒƒƒƒƒƒƒ……„„ƒƒƒ‚ƒ‚‚‚ƒ‚‚‚ƒƒ„……„ƒƒƒ……„€‚‚‚‚‚‚‚‚€€‚‚ƒ„‚‚‚‚‚‚‚‚„„„„ƒƒ‚‚‚‚ƒ‚ƒƒ„„ƒƒƒ‚ƒ‚‚‚ƒƒƒ€}{yzzzz|‚„‚‚‚‚ƒƒƒƒƒƒƒƒƒƒ„„„„„„ƒƒƒƒƒƒ„„„ƒ„ƒ„ƒ„ƒ„ƒ„ƒ„ƒ„ƒ„……‚}~€€€‚}~~~}}}}}}~~€€€€€€€€€€€‚€€€„„€€€‚‚€‚€€€‚‚‚€€€€€€ƒƒƒ‚‚‚‚‚€€€€€€€€€€€€€€€€€€€€€€€€‚€ƒƒƒ‚‚‚‚‚ƒƒƒ‚‚‚‚‚‚„…„„ƒƒ„„ƒ‚‚€€€€ƒ‚‚‚€€€~~||€€€~}}}~€€€€€€€€€€€€€€€€€€€‚‚‚‚€~~~~~~~~~}}}}~~~~~~~~|{z{|}|{|}~~}{||}}~|{}}~~€€~~~~~€€~~~~~~~€€€€€€~}}€}~~~€€~}}~~|}}…†„ƒƒƒ„„…††……„„ƒ„„‚‚‚ƒ„„ƒƒ‚€€‚‚€€€€„…ƒ‚€€‚ƒ‚‚ƒ‚ƒ„†‡‡‡‡†††ˆˆ‰‡†€€€€€€€€€€€€€€€€~}|{zzzzzzyzyzyzyyyyyyyyyyxxwxxxxxwwwwwwwwwwwwxxxwwvvvvwwvwxxwvw{|}||}|z|||~€€‚‚ƒ„„„„ƒƒ‚ƒƒƒƒ‚ƒƒƒƒƒƒƒƒ…„„„„„„ƒ„ƒ‚ƒƒ„ƒ‚ƒƒ„……„ƒƒƒ……„€‚‚‚‚ƒƒ€€‚„‚‚‚‚‚‚‚‚„„ƒƒ‚‚ƒƒƒƒ„„„…ƒ~‚€~}zy{zzz|~ƒ‚‚‚‚ƒƒƒƒƒƒƒƒƒ„„………„„„ƒƒƒƒ„„…„„ƒ„ƒ„„„ƒ„ƒ„ƒ„ƒ„„……ƒ~~€€€‚}~~~}}|||}~~~}~€€‚€€€„„‚€€‚‚€‚€€€‚‚‚€€€€‚ƒ„‚‚€€€€€€€€€€€€€€€€€€€~~€€€‚‚‚‚ƒƒ„ƒ‚‚‚‚€€‚‚ƒƒ‚‚ƒƒƒƒƒ‚‚‚‚‚‚‚„…„„ƒƒ„„ƒ‚‚€€€€ƒ‚‚‚‚€~}}|}}~~€€~}}}~€‚€€€€€€€€€€€€€€€€€€~~~~~~~~~~~}}}||}}}~€€~|{{}}|{{{|}~~||}}~€€‚‚‚€~|{}}~~€€€€~~~~€~~€€€€€€€~}}€}~~~€€€~~€ƒƒ~‚†‡……„„„……………„„„„„…ƒ‚‚ƒ„„„„ƒ€€‚‚€€„…ƒ‚€‚ƒ‚€‚ƒ„…†ˆ‡‡‡‡††‡ˆ‰‰ˆ€€€€€€€€€€€€€€€€}|{zyyyzyyyyyyyyxxxxxxxxyyxxxxxxyxxwwwwwwwwvwwxxxwwvvvwwwvwxxwvw{|}{|||{}|}~‚ƒ„ƒ„ƒƒ‚‚‚ƒƒƒ‚ƒƒƒƒƒƒƒƒ„„„„„…………ƒ‚ƒ„…„ƒƒƒ„……„ƒƒƒ……„€‚‚ƒƒƒ‚‚‚‚‚‚‚‚‚‚‚ƒƒƒƒƒƒƒƒƒƒ‚‚€€ƒƒƒƒ„„„„…„‚€€€€€}|{{zyz{~ƒ‚‚‚‚‚ƒƒƒƒƒƒƒƒƒƒ„„…„„„„„ƒƒ„„……„„„„„„„„„ƒ„ƒ„ƒ„ƒƒ„…ƒ€~~~€€€‚~|~}|{{z{{}}~|{z‚~€€€€€‚€€€‚„…€€€‚‚€‚€‚ƒ‚€€€€‚~€ƒ…€€€€€€€€€€€€€€€€€€~~€€€‚ƒ„„„‚ƒ„……„ƒ‚ƒ‚‚‚‚‚‚ƒƒ‚ƒƒ„ƒƒƒ‚‚‚ƒƒ‚ƒ„…„„ƒƒ„„ƒ‚‚€€€€ƒ‚‚‚‚‚‚‚‚€€~}||}}}}€€€~€€€€€€€€~~~~~}|}}}~~€~~~}}||||}}~€€}}}}{z{zz{|}€||}~€€‚‚‚€~|{}~~~~~~~~}}}}~€~~€€~~~€€€€€€€€~}}€}~~~€€€‚††ƒˆ‰††……„„„…„„„„„„…†„ƒƒ„…†……ƒ€€‚‚€€„…ƒ‚€‚‚‚‚ƒ„†‡ˆˆˆ‡ˆ‡†‡ˆ‰‰‰€€€€€€€€€€€€€€€€}|{zyyyyyyyyyyyyxxxxxxxxyyxxxxxxxxxwwwwwwwwwwwxxxxwvvvwwwvwyxwvw{||{{}|{}}}€}€‚ƒƒƒƒƒƒ‚‚‚ƒ„ƒ‚‚‚‚‚‚‚‚‚ƒƒ„„……††…„ƒƒ…†„ƒƒƒ„……„ƒƒƒ……„€‚‚ƒƒƒ‚‚‚‚‚‚‚‚‚ƒƒ~~€‚ƒƒƒƒƒƒƒƒ‚€~~ƒƒƒƒ„„„„‚ƒ„„ƒ€}|€€€~}{zyz{~‚‚‚‚‚‚‚‚ƒƒƒƒƒƒƒƒ‚‚ƒ„„„ƒƒ„„„„„„……„„„„„„„„ƒ„ƒ„ƒ„ƒ„ƒ„…„€~}~€€€‚‚~{€~}|{zzxy{|{zyx‚~€‚‚€€€‚„…‚€€€‚‚€‚€‚ƒ‚€€€€ƒ~~€ƒ…€€~~€€€€€€€€€€€€€€€€~€€€€‚ƒ„„„ƒƒƒ‚‚‚‚‚‚‚‚ƒƒ„„‚‚‚‚ƒƒƒƒƒƒƒƒƒƒ…„‚ƒ„„ƒ~~†‡‰Š†€}€ƒ~~}}}~~~}}~~€€€€€€€‚‚‚€€€€€‚}||||{{|}}}}|zz{}€ƒƒƒ}||}~|{|}~~~}}}}~~~~}}}}|{zzyy||||}~€€€€~~€€~€}}~~}~~~~~~€€€€}}€€~€€€~~~€‚‚‚‚‚‚‚‚…………„„„ƒ„„„„„„„„…†‡‡†…„ƒ|}€ƒƒ‚‚€~€‚ƒ††„‚‚€€€‚ƒ‚‚…ˆŠ‰ˆ‹Š‰‰‰ŠŠŠ€€€€€€€€€€€€€€€€{{{zzzyyzzzyyyyyyyyyyyyywwxxxxyyxxxxxxxxxxxxwwwwwwwvvvuuwuvxyxxz{|}}|{{{vwy|€€~‚ƒƒƒƒ„„„„ƒƒƒƒƒ„ƒƒ‚ƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒ……„„„„ƒƒ„„„„ƒ‚€€ƒ…†††††…ƒ‚ƒ„†ˆ‚ƒƒ~||}ƒ‚‚ƒ…†…ƒ‚‚‚ƒƒƒƒƒ†…„‚‚‚‚‚‚„…„„„„‚„„ƒ€}}}{ywx{}~~|~€‚ƒƒ‚‚ƒ‚‚‚ƒƒ„„„ƒƒƒƒ„„„„„„„„„„ƒ„„………„„ƒ„„ƒƒ‚‚ƒ„†„~~~€€€€~}}~}|{zz{{|}~~}}~~€€‚‚‚‚‚‚‚‚„ƒ‚€~†„€€€‚‚ƒ‚€~~€€€~€€€€€€€€€€€€€€€€~~€€‚‚‚‚‚‚‚‚ƒƒƒƒƒ‚‚ƒ‚‚‚‚‚‚‚‚‚‚‚ƒƒƒ‚‚‚‚‚ƒƒƒƒƒƒƒƒƒƒƒ„„ƒƒƒƒƒ‚€€~…†ˆ‰…}‚~~}}}~~~|}~~€€~€€€€€€€€€€€~|zyyxxzz{||||{{{{}€‚‚‚€€~|{{{|}}~}}|{~~}}{{{{~~}||{{{||||}~€€€€~€~~~~~~}}}~~~~~~~€€€€€€}}~€~€€€€~~~€‚‚‚‚‚‚‚‚……„ƒ€ƒƒ‚ƒ‚ƒ‚ƒ„„……„ƒ‚~€‚‚‚‚€~€‚‚……ƒ€‚€‚‚‚‚„‡‰‰ˆ‹ŠŠŠ‹‹‹Š€€€€€€€€€€€€€€€€{{{zzzyyzzzyyyyyyyyyyyyyxxxxxxxxxxxxxxxxwwwxwxxxwwwwvvuuwuvxxxxzz|}}||||xxz~‚€~‚ƒƒƒƒ„„„ƒƒƒƒƒƒƒƒ‚‚ƒƒ„„ƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒ……„„„„ƒƒ„„„„ƒ‚€€„‡ŠŒŽŽŒŠ‡…ƒƒƒ„‡ˆ‡„~}~ƒ……„‚ƒƒƒƒƒƒƒƒ…………ƒƒ€€„…†††‚„„ƒ€}|}{yxx{}~~|~€‚ƒƒ‚‚ƒ‚‚‚‚ƒƒ„„„ƒƒƒƒ„„„„„„„„„„ƒ„„………„„„„„„ƒƒ‚ƒ„†„~~~€€€€~}}~}||{{||}~~€€€€‚‚‚€€€€€€€€€€€†„€€€€€‚ƒ‚€~€€€€€~€€€€€€€€€€€€€€€€~~~~€€€€‚‚ƒƒƒƒƒƒƒƒƒƒƒ‚‚ƒ‚‚‚‚‚‚‚‚‚‚ƒ‚ƒ‚‚‚ƒ‚ƒƒƒƒƒƒƒƒƒƒƒƒƒ„„ƒƒ‚ƒƒ€€€~€ƒ„††ƒ}~~~}~~~~}}~€€€~~~€€€€€€~~~€€~}{yxwxxyyz{|{{z|||}€€€~|z{|}}}}}{{z~}}|||||~~}}||||||}~€€€~€~}}~~~~~~~~€€}}€€~€€€€~~~€„ƒ‚€}|{€€€€€€€€‚‚‚~€€€‚‚‚€~€‚„…‚€€‚‚‚‚ƒ‡‰‰ˆŠ‰ŠŠŒ‹Šˆ€€€€€€€€€€€€€€€€{{{zzzyyzzzyyyyyyyyyyyyyxxxxxxxxxxxxxxxxwwwwxxxxwwwwvvvvwuvwxwxyz{}}}|}~{{}‚‚€}‚ƒƒƒƒ„„ƒƒ‚‚‚ƒƒ‚‚‚‚ƒƒ„…ƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒ„„„„„ƒ„ƒ„„„„„‚€€…ˆ‹ŽŒ‰†„‚‚‚ƒ„„‚€~€ƒ„ƒ‚„„„„„„„„„„……„‚€~€€„†††ƒ„…ƒ€}||{yxy{}}}|~€‚ƒƒ‚‚ƒ‚‚‚‚ƒƒƒ„ƒƒƒƒƒƒ„ƒƒƒƒƒƒƒƒƒƒ„„……„„„„„„„ƒƒ‚ƒ„†„~~~€~}}~~}}|||~~~€€‚‚‚ƒƒ„„„~€ƒ…††„ƒ€€€€€€€‚€€€€€€€€€€€€€€€€€€€€€€~~}~€€‚ƒ‚ƒƒƒƒƒƒƒƒƒ‚‚‚‚ƒ‚‚‚‚‚‚‚ƒ‚‚‚‚‚‚ƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒ‚„…„‚‚ƒ„‚€~ƒƒƒ~}~€~~}~~~~~€‚‚€€€€€~€~~~€€€€~}{{z{yz{|||{{}||}€€~}}||}}}}|{{}~‚~~}}|||||}~€€€€€€€€€~~~€€€€€€€€~~~~}}~€~€€€~~~€€€€€€€€€‚€€~~||~~~~~~~€€~}|€€‚‚€~€‚„„ƒ€‚‚€‚€ƒ…ˆ‰ˆ‡‡ˆ‰Š‰‡†€€€€€€€€€€€€€€€€{{{zzzyyzzzyyyyyyyyyyyyyyyxxxxwwxxxxxxxxwwwxwxxxwwwwvvvvwvuxxwwyy{|~}}~~~~ƒ‚€}‚ƒƒƒƒ„„ƒƒ‚‚‚‚‚ƒƒ‚ƒ‚ƒ„„ƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒ„„ƒ„ƒ„ƒƒ„„„„ƒ‚€€‚„†‡ˆˆˆ‰ˆ†…„„„„€~~~~}~‚ƒ„„„„ƒƒƒƒƒƒ‚‚€}}€}~€‚ƒ„ƒ……ƒ}||{zyz{}|||~€‚ƒƒ‚‚ƒ‚‚‚‚ƒƒƒƒƒƒƒƒƒƒƒƒƒ‚ƒ‚ƒ‚ƒƒƒ„„„„„„„„„…„„ƒƒƒ„†„~~~~}}~~~~~~}}€€€ƒƒƒƒƒƒƒƒ„„„„„„„„‚ƒ…‡ˆŠŠƒ‚€€€€€€€€€€€ƒ‚€€€‚€€€€€€€€€€€€€€€€~}~~€€€‚‚‚‚‚‚ƒƒ‚‚‚‚‚‚ƒƒƒ‚‚‚‚‚‚‚‚‚‚‚‚ƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒ‚ƒ…„ƒ‚ƒ…ƒ€€€€~~€~}€€~~~~~}~~~€€€€€€€€€€€€€~~~€€€€€€€ƒ‚€~}|}}z{||}}}|}||}~~‚‚ƒƒ„}z{|}~}€„†ˆ‡…ƒ~~~~~}||||||}~€€€€€€€€€€€~~~€€€€€€€€~~‚‚}|€€€€€~~~~€€€€€€€€€€€€€€~~~~~~~~~~~}|{€‚€~€‚‚„…ƒ‚‚‚‚‚‚€ƒ€…‡‰‰††‡ˆ‰ˆ†…€€€€€€€€€€€€€€€€{{{zzzyyzzzyyyyyyyyyyyyyyyyxxwwwxxxxxxxxxxxwxwwwwwwwwwwvwuvwxvvxyz}}}|}~€€‚„ƒ€}‚ƒƒƒƒ„„ƒƒ‚‚‚‚‚„„ƒ‚ƒ‚ƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒ„ƒ„ƒ„ƒ„„…„„‚€‚‚ƒ„„ƒ‚‚„„ƒƒ„„……………‚€}}}}|{|~„ƒƒƒ‚‚‚€~{{z||~~~}~‚„„…†ƒ€|{{{zzz}}|z|~€‚ƒƒ‚‚ƒƒƒƒ‚‚‚ƒƒƒƒƒƒƒƒ‚‚ƒ‚ƒ‚ƒ‚ƒƒ„„„„„„„„„„„„ƒƒƒ„†„~~~~~~~}~~~€€‚‚‚„„„„„„„„„„……†‡ˆˆ‚€€€€‚‚‚€€€€€€€ƒ‚€€€‚€€€€€€€€€€€€€€€€~~}€€‚‚‚‚‚‚‚ƒƒƒ‚‚‚‚‚‚‚‚‚‚‚‚‚ƒƒƒƒ‚ƒ‚‚ƒƒƒƒƒƒƒƒ‚ƒƒ„ƒƒƒ„‚€€~€~€€€~~~~~}}||}~~€€€€€€€€€€€€€~~~€€€€€€€€€€€‚~||{|{||}}~}}}|{|~~€€ƒ…„~|}~€‚‚‚ƒ…‡‰‰‡„‚}~~~}||||||}~€€€~€~~~~~~€€}}~€€~~~~~€€€€€€€€€€€‚ƒƒ~~}|€€€€€~€‚‚……„‚ƒƒ‚‚€ƒ€ƒ‡ˆ‰ˆˆˆ‰‰‰ˆ‡€€€€€€€€€€€€€€€€{{{zzzyyzzzyyyyyyyyyyyyyxxxxxxxxxxxxxxxxxxxxwwwwwwwwwwwwwvuwwvvwy{|}|||}€‚„ƒ~‚ƒƒƒƒ„„ƒƒ‚‚‚ƒƒ…„ƒƒ‚‚‚‚ƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒ„ƒ„„„„„ƒ‚€€€‚ƒ„„ƒƒƒƒƒƒƒƒƒƒ……„‚}|}~~|zz|‚€~~€~zxwy{}}~~~~€ƒ…„††„|{{{zz{}}{y|~€‚ƒƒ‚‚‚ƒƒƒƒ‚‚‚‚‚ƒƒƒƒ‚‚‚ƒ‚ƒ‚ƒ‚ƒ‚ƒƒ„„„„ƒƒƒ„„„„ƒƒƒ„†„~~~}~~~~}}~~~€€€€€‚‚‚‚‚‚‚‚€€€€‚‚‚‚‚‚€€€€€€€€€€~€€€€€€€€€€€€€€€€€€€~~€€‚‚‚‚‚‚‚‚ƒƒ‚‚‚‚‚‚‚‚‚‚ƒƒƒ‚‚‚‚‚ƒƒƒƒƒƒƒƒƒ‚‚ƒ„„„„‚~€‚€€~€€€€~~~~~~}}||}~~€€€€€€€€€€~~}€€€€€€€€€€€~|{{{{z{||}||||{{|~~||~€ƒ„……€‚ƒ„„„„†††……„ƒ‚}~~}|||||}~€€€~€~€€€~~~~~€€€€€€€€}}€€~~}~~~€€€€€€€€€€€€€€€€€€€€~}~€€€€€~€‚ƒ…ƒ‚‚‚€‚‚‚ƒƒ†‰‰Š‰‰‰ŠŠŠ‰€€€€€€€€€€€€€€€€{{{zzzyyzzzyyyyyyyyyyyyyxxxxxxxxxxxxxxxxxxxwxwwwwwwwwwwwwuvwwuuwy{||{z{{~~‚„„‚ƒƒƒƒ„„„ƒƒƒƒƒƒ„„ƒƒ‚‚ƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒ‚‚ƒƒƒƒ„„„„„„ƒ‚€€ƒƒƒƒƒƒƒ„„„„„„„„„‚}}~}}~|{{}~~}||{}{yxxy{|~~~~€‚ƒ…††ƒ€|zz{zz|}}{x|~€‚ƒƒ‚‚‚ƒƒƒƒ‚‚‚‚ƒƒƒƒ‚‚ƒƒƒƒƒƒƒƒ‚ƒƒ„„„„ƒ‚ƒƒƒ„ƒƒƒƒ„†„~~~}}~~~~~}~~€‚‚‚€€€€€€€€€€€€€€€€€€€‚‚€€‚‚‚‚‚‚‚‚€€€€€€€€€€‚€}€€€€~€€€€€€€€€€€€€€€€~€€‚‚‚‚‚‚ƒƒƒƒ‚‚ƒ‚‚‚‚‚‚€€‚‚ƒƒƒƒ‚‚‚‚ƒƒƒƒƒƒƒƒƒ‚‚„…„ƒ~€‚~~€€€~~~~€~~~~~~~€~€€€€€€~~}€€€€€€€€€‚}|{{{yzz{|{{{{zz|~|}~~~„‡‚ƒ„………„„…ƒ€€ƒ…~~€€~}||||}~€€€~€€~~€€€€~~€€€€€~~€€€€}}~€~}}~~~€€€~~‚‚‚‚‚‚‚‚‚‚€~|~€€~€‚€ƒ„‚€€‚‚‚‚ƒ~‚†ˆ‰‹Š‰‰‰ŠŠŠ€€€€€€€€€€€€€€€€{{{zzzyyzzzyyyyyyyyyyyyywwwxxyyyxxxxxxxxwwwwxxxxwwwwwwwwwvuwwuuwy{||zzzz}}~„„‚‚ƒƒƒƒ„„„„ƒƒƒƒƒƒƒƒƒ‚ƒƒ„ƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒ‚‚ƒƒƒƒ„„„„„„ƒ‚€€€€‚ƒ…†‡‡‡ŒŒŠ‡‚~}|}~|{{}~}}|{{zzzzzzz{{|€~}}~~…††„|zz{z{|}}zx|~€‚ƒƒ‚‚‚ƒƒ„ƒ‚‚‚ƒƒƒƒ‚‚ƒƒƒƒƒƒƒƒ‚ƒƒ„„„ƒƒ‚‚ƒƒƒƒƒ‚ƒ„†„~~~}}~~~~}}~~€€‚‚€€€ƒƒ‚€€‚‚‚‚‚‚‚‚€€€‚‚€ƒ‚€€‚‚‚‚‚‚‚‚€€€€€€€€€‚‚€~}€€~€€€€€€€€€€€€€€€€~~€€ƒƒ‚‚‚ƒƒƒ‚‚‚‚‚€€€‚‚‚‚ƒ„„ƒƒ‚‚ƒƒƒƒƒƒ„‚‚ƒ„„ƒ‚‚€€€€ƒ~~‚ƒ€~~}~~~€€~~}}€€€€€~}€€€€€€€~|zyyyxxz{{zzyyyz|~€€€~~~€„†‡‡…ƒ‚€€€€{||}~€€}|{{|}~~€€~}}~~€€~~~}€€€€€€€€€€€€€€€€€~}}~~~~~€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€ƒ„ƒ‚‚‚‚€€€ƒ†‡‡‰‰ŠŠ‰‰€€€€€€€€€€€€€€€€|{zzyzz{yyyyyyyyxxxxyyyywxxxxxxxzyxwwwxxyyxwwwwxwwwwvuttvvvvwwwwz{||{{|}~€ƒƒ‚€€€‚ƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒ„ƒ„ƒ„ƒ„ƒƒ‚‚‚‚ƒ„ƒ„ƒ„ƒ„ƒ„ƒ‚ƒ„„‚€|~„†‡‡‡ˆˆ‰ŠŒŽŽˆ‚}|}~~€€~~|zxxy{|}}}}}}|||~|{{{}~ƒ‡Šˆ{yzzyz{~‚…ˆ…„ƒ‚‚‚‚ƒƒƒƒƒƒƒƒƒ„„„„„„„ƒƒƒƒƒƒƒƒƒƒƒƒƒ„„„ƒƒƒƒƒ‚„…„€}}}||}}}~~~~~~~€‚€€€€€€€€€€‚‚€€€‚‚‚€€€€€ƒ€€€~€€€€€€€€€€€€€€€€~~€€‚ƒ‚‚‚€‚‚‚‚‚‚‚‚€‚€€‚‚‚ƒ‚‚ƒ„„ƒƒ‚ƒƒƒƒƒƒ„ƒƒ„…„„ƒƒ€€€€‚€~~‚‚€~~~}~€€€€~~€€€€~~€€€€€€€€€~|{zyywxyzzzyx{{|~€€€€€€~~€‚ƒ„‚€€€€~‚€€€€{||}~€~|{{|}~~€€~}~~~~~~~~~~~}~~~~€€€€€€€€~}}~~~~~€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€ƒ„ƒ‚‚€‚ƒƒ‚„‰‰‰‰ˆ‡†…€€€€€€€€€€€€€€€€||zzyyyzyzyzyzyzyyyyyyyyyxxwwxxyyyxwwwxxxxwwwxxyvwwwvvuuvvvvvwwwz{||{{|}~€ƒƒ‚€€€€‚ƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒ„ƒ„ƒ„ƒ„ƒ‚‚‚‚‚ƒƒ„ƒ„ƒ„ƒ„„ƒƒƒ„„‚€„ˆŠŒŒŒŽŽŽŽŽŽŒ‰„~zz|~~~~~~~~}{z{}~~~~}}}}}}{{{{{||}€„ˆ†|{|zzz{}€„†……ƒ‚‚‚‚‚ƒƒƒƒƒƒƒƒƒ„„„„„„„ƒƒƒƒƒƒƒƒƒƒƒƒƒ„„„ƒƒƒƒƒ‚„…„€~}}}}}~~~~~~€‚€€‚‚‚‚€€€€€‚€€€€€€€€€€€€€€€€€€€€€‚‚‚‚‚€€€€€‚‚ƒƒ‚‚‚‚€€€‚ƒƒƒ‚‚ƒƒ„ƒƒƒ‚ƒƒƒƒƒƒ„„„………„„„€€€€‚€~~‚‚€~~}~}~€€€€€€€€€€€€€€€~~€€€€€€€€€€€€€}|{{{z{{|||||~~~€€€~}~€~~~~~~~}}|‚€€€~||}}€€€~|{{|}~€~~~~~}}~~~~}~~€€€€€€€€€}}}~~~~~€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€ƒ„‚‚‚‚‚‚‚‚‚ƒ‚€‚ƒ……†‡‡†††€€€€€€€€€€€€€€€€}|{yyxxxzzzzzzzz{{{zyxxxzyxwwwyyyyxxwxxxwwwwxxyywwxwxwwvvvvvwwwwz{||{{|}~€‚ƒ‚€€€€‚‚ƒƒƒƒ„„ƒƒƒƒƒƒƒƒƒƒƒƒƒƒ„ƒ„ƒ„ƒ„ƒƒƒ‚‚‚ƒƒ„ƒ„ƒ„ƒ„ƒ„ƒƒƒ„„‚€€‚†‰ŽŽŒŒŠˆ‡†…………‚~|||~}||}~€~|||}~~~~~~~}}}yz{{|||{}„ƒ€}}~{zzz|‚„†…„ƒ‚‚‚‚‚‚‚ƒƒƒƒƒƒƒƒƒ„„„„„„„ƒƒƒƒƒƒƒƒƒƒƒƒƒ„„„ƒƒƒƒƒ‚„…„~~~~~€€~~~~€‚‚‚‚‚‚‚‚‚€‚‚‚€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€‚‚‚€€~~€‚ƒ„‚‚‚‚‚€‚‚ƒƒ„„„ƒ‚‚‚ƒƒƒƒƒƒ„„„„„„„„„€€€€~~€}~~~}~~~€€€€€€€€€€€€€€€€€€€€€€€~|}|}}~~~€€€€€€€€~~€€~~~}}}~}}}|}}}~}||}}~~€€€‚‚‚€~|{{|}€€€~~~~~~€€€€€€€€€€€€€€€€€€€~}~~~~~~€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€ƒƒ‚‚‚ƒƒƒ‚€‚‚ƒ„……†……€€€€€€€€€€€€€€€€~}{zxxxx{{{{{{{{}}|{zyxxzyxxwxxyxxxxxxxxwwwxwxxywxxyyyxxvvvwvwwwz{||{{|}€‚‚€€€‚ƒƒ„ƒƒ„„„„„„ƒƒƒƒƒƒƒƒƒƒƒ„ƒ„ƒ„ƒ„ƒƒ‚‚‚ƒƒƒƒ„ƒ„ƒ„ƒ„„„ƒ„…„‚ƒ‡ˆŠ‰‰ˆˆ‡†„ƒ‚‚‚~|{{}}||{|}}}{zz|}}}~~}}||}}}}}}}€‚}}~{{zz{~€‚††„„‚ƒƒƒ‚‚‚ƒƒƒƒƒƒƒƒƒ„„„„„„„ƒƒƒƒƒƒƒƒƒƒƒƒƒ„„„ƒƒƒƒƒ‚„……~€€€€~~~~€‚€‚‚‚‚‚‚€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€~€‚‚€€€~}}~‚ƒ‚‚‚‚‚‚‚‚‚‚‚‚‚…„„ƒ‚‚‚‚ƒƒƒƒƒƒ„ƒƒƒƒƒƒƒƒ€€€€€~~€€~}}~~~|}~~~}~~~~~€€€€€€€€€€€€€€€€€€€€€€~~~~~~~~€€€€€~~‚‚}}}||}~~~~{{|~~|yv}}~~€‚‚‚~}|||~€€€~~}€~~€€€€€€€€€€€€€}}}~~~~~€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€ƒ„‚‚‚‚ƒ‚€€€€€€‚ƒ„„„„„‚€€€€€€€€€€€€€€€€€~|zzxyx|||{|{||~}}{{yyxyyyyyxxxxxxxxxxxxxxxxwwwwwxxxxxxvvvvwwwwz{||{{|}‚‚€€‚ƒ„ƒƒƒ„„„„„ƒƒƒƒƒƒƒƒƒƒƒ„ƒ„ƒ„ƒ„ƒ„ƒƒ‚‚‚ƒƒ„ƒ„ƒ„ƒ„ƒ…„ƒ„……ƒ~‚ƒƒ‚‚€‚‚‚~}~~~}|{|}{{||}||{zyyz}~€~~}}}~~~‚„€€~|{{{{zz{~€‚†……ƒƒ‚ƒƒ‚‚‚ƒƒƒƒƒƒƒƒƒ„„„„„„„ƒƒƒƒƒƒƒƒƒƒƒƒƒ„„„ƒƒƒƒƒ‚„†„‚€€€€€€‚‚~~~~€‚‚‚‚‚‚‚€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€~~~€€€~~~~}~~€€‚‚‚‚ƒƒƒ‚‚‚ƒƒ‚‚‚ƒƒ„‚ƒƒƒƒƒƒ„ƒƒ‚‚‚ƒƒƒ€€€€~~~€€~}}~~~|}~~~}~~~~~~~~~~€€€~~€€€€€€€€€€€€€€€€€‚‚ƒƒƒ‚‚ƒ‚€€~~~€}{z{|}~€€€}}}~~{xu}}~€‚ƒ‚‚€}||}~€€€€~}}~~~~}}~~~€€~~~~€€€€€€€~}}~~~~~€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€ƒƒ‚€€‚€€€‚„ƒƒƒ‚‚‚ƒƒƒ‚€€€€€€€€€€€€€€€€~}|zzzz|}|}|}||~~}|{{zzyzyzyyxwwwxxyxxxxxxyxxwvvvvwwwvvvvvwvwwwz{||{{|}€‚€€‚‚‚ƒƒ„ƒƒ„„„„ƒƒƒƒƒƒƒƒƒƒƒƒƒ„ƒ„ƒ„ƒ„„„ƒƒ‚ƒƒ„ƒ„ƒ„ƒ„ƒ„…„„„……ƒ€€€~|z{|||zywvxyz{||}}z{|}}|{zzz{}‚‚€€~}}}~~~~€ƒ†ˆ„ƒ‚€}{zy{zzz|‚„†…„ƒ‚‚‚‚‚‚‚ƒƒƒƒƒƒƒƒƒ„„„„„„„ƒƒƒƒƒƒƒƒƒƒƒƒƒ„„„ƒƒƒƒƒ‚„……‚€€€‚‚‚~~~~€‚‚‚‚‚€€€€€‚‚€€€€€€€€€€€€€€€€€€€€€€€€€}}~~€€~~}}}~~~~‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚ƒ„…‚ƒƒƒƒƒƒ„„„ƒ‚‚ƒ„„€€€€~~€€~}}~~~~}~~€€~~~€€€~~€€€€€€€€€€€€€‚„„ƒƒƒ„…†„ƒ‚ƒƒƒ€€€€€€~|zz{}}~€€€}|}~~€€ƒƒƒ‚~||}~€€€€~}}~~~~~~~~~}}~€~~~~€€€€€€€€}}}~~~~~€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€‚ƒ‚€€‚€€€‚‚ƒ„…„‚€‚ƒƒƒƒ€€€€€€€€€€€€€€€€~}||||}}}}}}}}}}}}|}|||zzzyyxxxwwxyyyxxwxxxyxwwwwwwwvvuvvvvwwwwz{||{{|}€‚€€‚‚‚ƒƒ„ƒƒƒ„„„ƒƒ‚‚‚ƒƒƒƒƒƒƒƒ„ƒ„ƒ„ƒ„ƒ„„ƒƒƒƒ„„„ƒ„ƒ„ƒ„ƒ…„„………ƒ‚€€€|yxz{||{ywvwxz|}|{y||||||||||}ƒƒƒ€~~}}|~}~~ƒ„…„~|{zzzz{}€„†…„ƒ‚‚‚‚‚‚‚ƒƒƒƒƒƒƒƒƒ„„„„„„„ƒƒƒƒƒƒƒƒƒƒƒƒƒ„„„ƒƒƒƒƒ‚„†…ƒ‚€€€‚‚~~~~€‚€€‚‚‚‚‚€€€€€€‚€€€€€€€€€€€€€€€€€€€||}}~€~~}}}}~~~}}€€€‚‚‚‚‚ƒƒƒƒƒ‚‚‚ƒƒ„‚ƒƒƒƒƒƒ„……„ƒƒ„……€€€€~~~€€~~}}~~~~~€€€€€€€~~€€€~~€‚€€€€€€€€€‚ƒ„ƒƒ‚‚ƒ……‚‚‚‚‚€€~}~|{||~~~~‚€ƒ……}~~€‚ƒƒƒ‚~}}}~€€€€€€~}}~~~€€~~€€~€€€€~}}~~~~~€€€€€€€€€€€€€€€€€€€€€€€€€€€‚‚‚‚€€€€€€€‚ƒ‚€‚ƒƒ‚ƒƒƒƒƒ‚‚‚‚ƒƒ‚‚€€€€€€€€€€€€€€€€€~~}}}~~}}}}}}}}|||}}}}~{{yxwxxyvwxyyyxxvwxyyyxxyyyyxxwvvvvvwwwwz{||{{|}€‚€‚‚‚ƒƒ„„ƒƒ„„ƒƒ‚‚‚‚ƒƒƒƒƒƒƒƒƒ„ƒ„ƒ„ƒ„„„ƒƒƒƒ„„ƒ„ƒ„ƒ„ƒ„……„…†…ƒ‚€€~{xvyz{}}|zyxxy{|~~~}}{{{||}}}~‚ƒƒ‚€~}}||~~~~~}}|…ƒ~}|{zyz{~‚…ˆ…„ƒ‚‚‚‚ƒƒƒƒƒƒƒƒƒ„„„„„„„ƒƒƒƒƒƒƒƒƒƒƒƒƒ„„„ƒƒƒƒƒ„†…ƒ‚‚ƒ€€€‚~~~~€‚‚‚‚‚‚‚‚‚€€‚‚€€€‚‚‚€€€€€€€€‚€€€€€€€€€€€€€€€€€~€~~~€€€€€~€€€€€‚‚‚ƒ„„†…„ƒ‚‚ƒƒƒ‚ƒ‚ƒ‚ƒ‚ƒ„……„„‚€€~}~€€}~~~~~~}€€€~€€€~~~~~~€}~€€€€€€€€‚‚‚‚‚ƒ„…†„ƒƒƒ‚‚~~€€€~€|z{|€€€€€€~~~€ƒƒ„‚}}~~~~€€~~~~~~~}~€€€~~~‚€~}|}~€~~~}}}}}€€€€~€€€€€€€€€€€€€€€€€€€€ƒ„‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚€€€€€€€€€€€€€€€€~~}}|}}|||}}}}|zzzzzzzz{||{yxxywwxxxyyywwwwwwwwwwxxxxwvxwwwvwwwxz||{zz{ƒƒ€‚‚ƒƒƒƒƒ„‚‚‚ƒƒ‚‚ƒƒƒƒ„„ƒƒ„„„………ƒƒƒ‚‚ƒƒƒƒ„„„ƒ‚ƒƒ‚ƒƒƒ‚‚ƒƒ€~~€€}zyz{{zyxxywxyz{|||}}}~~}}}~~€€€€€~~}|{{{}~|zz~‚ƒƒƒƒ‚}|zzz{~‚†ˆ†…„ƒ‚‚‚‚‚‚‚ƒƒƒƒ„„ƒ„ƒ„ƒ„ƒ„ƒƒƒƒƒƒ„„ƒ„ƒ„ƒ„ƒƒƒƒƒƒƒƒƒ€ƒ„ƒ‚€~€‚‚‚~€‚‚‚‚‚€€‚€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€‚‚‚ƒƒ„ƒƒƒ‚‚‚‚ƒ‚ƒ‚ƒ‚ƒ‚ƒƒƒƒƒƒƒ„„‚€~}~€€€~~}}}~~~€€€€€€~~~~€€~~€€€€€€€€€€€€€‚‚‚ƒƒ‚‚‚‚ƒ„ƒ‚‚‚€€~~€}{{|~€€€~|zy~~~€‚ƒƒ‚}}~~~~€€~~~~~~~~~}~~~€€€€€€‚€~}|}~€€€€€€€€€€€€€€€€€€€€€€€€€€~ƒ„‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚€€€€€€€€€€€€€€€€~~}~~~|}}}}}||{{z{{{{{zz{zxwwxxxxxxyxyyxxxxwwwwxxxxxwwxwwwvwwwxz|}||||ƒƒ€€€‚ƒƒƒƒƒ„ƒƒƒƒƒƒƒƒ‚‚ƒƒƒƒ„„„„„„„„„„ƒƒƒ‚‚ƒƒƒƒ„„„ƒ‚‚ƒ‚ƒƒƒ‚‚ƒƒ€~~€€}zyyzzzyyzzyyz{|}}}}~~~~~~}}~~€€€€~~}|{||||}€‚„ƒƒƒ‚}|||{|~„††…„ƒ‚‚‚‚‚‚‚ƒƒƒƒ„ƒ„ƒ„ƒ„ƒ„„ƒƒƒƒƒƒ„ƒ„ƒ„ƒ„ƒ„ƒƒƒƒƒƒƒƒ‚ƒ„„‚€~€€‚‚‚~~€‚‚‚‚€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€‚‚‚‚‚ƒ„‚‚‚‚‚‚‚ƒ‚ƒ‚ƒ‚ƒ‚…„ƒ‚‚‚ƒ„‚€~~~~€€€~}|}}~~~~~~~~~~~€€€€€~€€€€€€€€€€‚‚€€‚ƒ‚„ƒ‚€€€~~~~~€€€~~|||~~~~~€~|{~~~€‚ƒƒ}~~~~~€€~~~~}}}~~~€~~€€€€‚‚€~}|}~€€€€€€€€€€€€~‚€€€€€€€€€€€€€€€€€€€€€€€€~~€ƒ„‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚€€€€€€€€€€€€€€€€~€€~~~~~}}|{{{{{{{{yyzyxxxyyxyxxxxxzzyyxxwwxxxwwwwwwwwvwwwxyz|}}}}}ƒƒ€€‚ƒƒƒƒƒƒ……„„„ƒƒƒƒƒƒƒƒƒƒƒ„„„„„„ƒƒƒƒƒ‚‚ƒƒƒ„„…„ƒ‚‚‚‚ƒ„ƒƒ‚ƒ„€€}zzyz{{{{}~{||}~~~~€€}~€€€€€€~}|{~{{|€ƒƒ‚‚‚‚€~|{~}||}‚„†…„ƒ‚‚‚‚‚‚ƒ‚ƒƒƒƒ„ƒ„ƒ„ƒ„ƒ„ƒƒƒƒƒƒ„„ƒ„ƒ„ƒ„ƒƒƒƒƒƒƒƒƒ‚ƒ„„‚€‚€€‚‚~~~€‚‚‚‚€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€~€~€€~~€€€‚‚‚‚‚€€‚‚‚‚‚ƒƒƒ‚ƒƒƒƒ‚‚‚ƒ‚ƒ‚ƒ‚ƒƒ„ƒ„ƒƒƒƒ€€€~€~~€€~}}}~~~~~~~~~~~~€€€€€€€€€€€€€€€€€‚‚€ƒƒƒƒƒ‚€€~~~~~}}~€€}}}}||}}}~~~€€‚‚€~~~€ƒƒ‚~~~~~€€~~~}}}~~€€€€~€€€€€€‚€~}|}~€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€~~€ƒ„‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚ƒƒ€€€€€€€€€€€€€€€€~€€~}||{{{{z{zzyyzzzzzzyyyyxxwwyyyxxxwwyxwwvwwxwwwvwwxxyz{}}}||}‚€€€‚‚ƒƒƒƒƒƒ„„„„„„ƒƒƒƒƒƒƒƒƒƒ„„„„ƒƒƒƒƒƒƒ‚‚ƒƒƒ„……„‚‚‚‚ƒƒ„„ƒ‚ƒ„‚€€}zz{|}~~}~€€€€€€€€€€€}||~}{~€ƒ‚‚€€~}{{}|{{}‚„†…„ƒ‚‚‚‚‚‚‚ƒƒƒƒƒƒ„ƒ„ƒ„ƒ„„ƒƒƒƒƒƒ„ƒ„ƒ„ƒ„ƒ„ƒƒƒƒƒƒƒƒ‚„…„ƒ‚€€‚‚~}~€‚‚€€‚‚‚€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€~~€~€€€~~~€€‚‚‚ƒ‚‚€‚‚‚‚ƒ‚ƒ‚ƒ„„„„ƒ‚ƒ‚ƒ‚ƒ‚ƒ‚‚ƒƒƒ„ƒ„ƒ€€€~€~~~~~~~~~}}}~~~~€~~~€€€€€€€€€€€~€~‚‚€ƒ„‚€€~~~~~~~~~~}}~€~}{{}}}||}}}~~€}}|}}~~~€‚ƒ~€~~~€€~~~~~€€€€~~~~~}~€€€€‚€~}|}~€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€~~~€ƒ„‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚ƒƒ€€€€€€€€€€€€€€€€~~~}~~€}}|{z{zzyzyyyyyzzzzyyyxxxxwwwwwwwwwyxxvwwxxwwvvwwxxzz{||{zy{€€€€‚‚ƒƒƒ‚ƒƒƒƒƒƒƒƒ„„ƒƒƒƒƒƒƒƒ„„„„ƒƒƒ‚ƒƒƒ‚‚ƒƒƒ„„…„ƒ‚‚ƒƒƒ„„ƒƒƒ„ƒ€€€|{z}}€€€€€€€€€€‚‚ƒ‚‚€€}||}}€‚‚‚‚€~~||{{zz{}€ƒ…†…„ƒ‚‚‚‚ƒ‚ƒ‚ƒƒƒƒ„ƒ„ƒ„ƒ„ƒ„ƒƒƒƒƒƒ„„ƒ„ƒ„ƒ„ƒƒƒƒƒƒƒƒƒ‚ƒ„……ƒ€‚€€~}~€‚€€‚‚‚€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€‚‚ƒ‚€€‚‚‚‚ƒƒƒ‚‚……„„ƒƒ‚‚‚ƒ‚ƒ‚ƒ‚ƒƒƒƒƒƒ„„„€€€~}‚€~~}~~~~}}}}~~~€~~}~€€€€€€€€€€~€~‚€€ƒƒ‚€€€€€~~~~~~~~~~~~~~}{{|}}}|}}}~}{zz{|~~~€€‚‚~€~~~€€~~€€€~~}~~~}}~}}}~€€€‚€~}|}~€~~€€€~€€€€€€€€€€€€€€€€€€€€€€€€€€~~~€ƒ„‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚ƒ€€€€€€€€€€€€€€€€~~}}}~~~~~}}{{z{zzyyxxwxyyyxyyxyxxxxwwwwwwwwxxwwwwwxwvvvwwxx{{{|{{yxz€‚‚ƒƒƒƒ‚ƒƒ‚‚‚‚ƒƒƒƒƒƒƒƒƒƒƒƒ„„ƒƒƒƒƒƒƒƒƒ‚‚ƒƒƒƒ„„„ƒ‚ƒƒƒ„„„ƒƒƒ„„€}{{}~~~~€€€€€€€€ƒƒƒƒ‚‚€€}|{z}„………†ƒ‚€}|||zzzz|ƒ…†…„ƒ‚‚‚‚ƒƒƒƒƒƒƒƒƒ„ƒ„ƒ„ƒ„„ƒƒƒƒƒƒ„ƒ„ƒ„ƒ„ƒ„ƒƒƒƒƒƒƒƒ‚ƒ………ƒ€€~€~}}~‚€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€‚€€€‚ƒ‚‚ƒƒƒ‚‚„„ƒƒ‚‚‚ƒƒ‚ƒ‚ƒ‚ƒ‚ƒƒ„„„ƒƒ‚€€€~}‚€~~~~~~}~~~~~~~~€€~~~}~€€€€€€€€~€€€€€€€€‚ƒ‚€€€~~~~~~€}||}}}|}}~~€~}{{{|}~~~€€‚~~~~€€~€€~~~}}~~~~~~€€‚€~}|}~€~~€€€€€€€€€€€€€€€€€€€€€~~~€€ƒ„‚‚‚‚‚‚‚‚‚‚‚ƒ‚‚ƒ€€€€€€€€€€€€€€€€~~}}}~~}~~~~~}}|||{{zzzyxwxxyxwxxxxxxyyxxxxxwwwxxxxxwwwvvvvwwxy{{{|}|{yz€‚ƒƒƒƒ‚‚ƒ‚‚ƒƒƒƒƒƒ„„ƒƒƒƒ‚‚ƒƒƒƒƒƒƒƒƒƒƒ‚‚ƒƒƒ‚ƒ„ƒƒƒ„„ƒ„„„ƒƒ„„…‚€|{{|}~~~~€€€€€€€€‚‚‚€~}|{z}‚…††††ƒ‚€~}||}|{zz|~ƒ†…„ƒ‚‚‚‚ƒƒƒƒƒƒƒƒ„ƒ„ƒ„ƒ„ƒ„ƒƒƒƒƒƒ„„ƒ„ƒ„ƒ„ƒƒƒƒƒƒƒƒƒ‚ƒ…†…„‚€~~~~~~}}}‚€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€~€~~~~€€€€€€€€€€€‚ƒ‚‚ƒƒƒƒ‚ƒ‚‚‚ƒƒ‚ƒ‚ƒ‚ƒ‚ƒ‚ƒ…††„€€€~}‚‚€~~}~}}}}~~~~€€€~~}~€}~€€€€€€~€€€‚€€~~~€€€ƒ~}}}}|}}~€€||||{{zz~~~€€‚~~~€€~~~~}~€€€~~€€€€‚€~}|}~€€‚‚€€€‚‚‚€€€€€€€€€€€€€€€~}~€€ƒ„‚‚‚€€€€€€€€‚‚‚‚‚‚‚‚ƒ‚‚‚€€€€€€€€€€€€€€€€€~~~~~}}}~~~~}~}}}||{{zyxyyzywwwxxxyyyzyyyxxwwwwxxxxwvvvvvwwxy{{{|}~|{{€‚‚‚€‚ƒƒƒƒ‚‚ƒ„„„ƒƒƒ‚‚„„ƒƒƒƒ‚‚‚‚‚ƒƒƒ„„ƒƒƒ‚‚ƒƒƒ‚‚ƒƒƒƒ„…ƒ„„„ƒƒ„„…‚€€|{{}~€€€~€€€€~€‚‚€~}{z{~‚…†…„‚„ƒ}}}}~}{{{}€†…„ƒ‚‚‚‚ƒƒƒƒƒƒƒƒƒ„ƒ„ƒ„ƒ„„ƒƒƒƒƒƒ„ƒ„ƒ„ƒ„ƒ„ƒƒƒƒƒƒƒƒ‚„…†…„‚€€}}~~~}~}|}‚‚€€‚€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€~€€€€‚‚‚‚‚‚‚‚‚‚ƒƒ‚‚‚ƒƒƒƒƒƒƒƒƒƒ„„„„ƒ‚€~}€€€€~}}~~}}}~~~~~€€€~~~€~€€‚€€‚€€€€€€€€€€€‚ƒ‚€€~€€€€~~~~~~~~}}}~~~€€}|{{{|~~~€€€€~~~€€~~~~~~~~~€€€~~~~~€‚€€€€||€~€€€€€€€€€€€€€€€€€€€€€~~€ƒƒ‚‚ƒƒƒ€€€~‚‚‚‚‚‚€€€€€€€€€€€€€€€€~~~~~~~~}}}}~~~~|||{{zzzzyxyyyyxyxyxyxyxxxxxxxxxwwwwwwwwwwwwwwxx{{|||{{{~€€€‚‚‚‚ƒƒƒƒƒƒƒ‚‚ƒƒƒ„„„ƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒ‚‚‚‚‚‚‚‚„„„„„„„„ƒ€}|{|€€€€€€€€€€€€€€€~~€€}|{|}~}„……„„‚ƒƒ‚}||||{{}€ƒ…†…„ƒ‚‚‚‚‚ƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒ„„„„ƒƒƒƒ†„‚‚ƒƒƒƒ‚„‡†‚€~~}~~}~€‚‚‚‚€€‚‚‚‚€€‚‚‚€‚‚‚‚‚€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€‚‚‚‚‚ƒƒƒ‚‚ƒƒ‚‚‚ƒƒƒƒƒƒƒƒƒƒƒ„„„ƒ‚‚€€€€~~}}~~~}}}}~~~~~€€€~~€~€€~~~€€€€€€€€€€€€€€€‚ƒ‚€€~€€~~~~~~~~€€€~~}}}€€€€€~}|}}}€€€€€~~~€€€€€~~~~~~~~~~~€€€‚€}|€€€~€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€~}~€€€ƒƒ‚‚‚‚‚‚‚‚~€‚‚‚‚‚‚‚‚‚€€€€€€€€€€€€€€€€~~~~~~~~}}}}}|||{{zzzyxyyyyxxyxyxyxyxxxxxxxxwwwwwwwwwwwwwwxxz{||{|||€€€€‚‚‚‚ƒƒƒƒƒƒƒ‚‚ƒƒƒ„„„ƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒ‚ƒ‚ƒ‚ƒ„„„„„„„„ƒ‚€€}|{|~€€€€€€€€€€€€€€€€€€~}|{{||}|}€‚ƒƒ‚‚}||||{{}€ƒ…††„ƒ‚‚‚‚ƒ‚ƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒ„„„„ƒƒƒƒ…„‚‚‚ƒƒƒƒ‚„‡†‚~~~~~~}}}~€€‚‚‚€€‚‚‚‚‚‚€‚‚‚‚‚€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€‚‚ƒƒ„„‚‚ƒ‚‚‚‚ƒƒƒƒ‚ƒƒƒƒƒƒ„„„ƒ‚ƒ‚€~~}}}}|}}~~~~~~€€€€€€~€~~~~€€€‚‚€€€€€€€€€‚ƒ‚€€€€€€~~~~~~~~~€~~~~~€€€€€€€€€€~€€€€€€€~~~€€€€~~~~~~~~~~~~}}€€€€€€€€||€~~€€€€€€€€€€€€€€€€€€€€€€€}}~€€ƒƒ‚‚‚‚€‚‚‚‚‚‚‚‚‚‚‚‚€€€€€€€€€€€€€€€€€€~~}~~~~}}}}}|||{{{zzyxyyyyxyxyxyxyxyyxxxxwwwwwwwwwwwwwvwwxxyz||||}~€€€€‚‚‚‚ƒƒƒƒ„ƒƒƒƒƒƒ„„„ƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒ„„„„„„„„ƒ‚€€~|{|~~~~€€€€€€€€€€€€€€€€€€€€{{{{||||{|~€~}€€~}||||{{}€ƒ…‡†„ƒ‚‚‚‚‚ƒƒƒƒ„„„„„„„„„„„„„„„„„„„ƒ„ƒƒƒ…„‚‚ƒƒƒƒ‚„††‚}}~~~}}~~€‚‚‚€‚‚‚‚‚€‚€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€‚‚€€€€€€€‚‚‚‚‚‚‚‚‚‚‚ƒƒ‚ƒ‚ƒ‚ƒ‚ƒƒ„ƒƒ‚‚‚€€€€€€€€~}}}}}}~~~~~~~€€€€€€€€€€€€€€€€€€€€€€€€€€‚‚‚€€€€€€€~~~~~~€~~~~~€€€€€€€€€€€€€€€€€€€~~~€€€€€€~~~~~~~~€~~~}€€€€€‚€}|€~€€€€€€€€€€€€€€€€€€€€~}}~ƒƒ€€€€€€€€€‚€‚‚‚‚‚‚‚‚‚‚€€€€€€€€€€€€€€€€€€€€~~~}~~}}||||{{zzzzzyxyyyyxxyxyxyxyyyyxxwwwwwwwwwwwwwwwwxxxyz{|{|~€€€€€€€€‚‚‚‚‚ƒƒƒ„„ƒƒƒƒ„„ƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒ„„„„„„„„ƒ‚€€€€~}|}}~}~€~€€€€€€€€€€~~z{{}}}}}|}~~~}|}€€~}|}||{{}€ƒ…‡†…ƒ‚‚‚‚‚‚‚ƒ‚ƒƒƒƒƒƒƒƒƒƒƒ„„„„„„„„„„ƒ„ƒ„ƒƒ…„‚‚‚ƒƒƒƒ‚„‡†‚~~~}~~~€‚‚‚€‚‚‚‚‚€‚‚‚€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€‚ƒ‚ƒ‚‚€€€‚‚‚‚‚‚‚‚‚‚ƒ‚ƒ‚ƒ‚‚‚ƒƒƒƒ‚‚€€€€~€€€€€€~}~}}}~~~~~~~~~€€€€€€€€€€€€€€‚€€€‚€€€€€€€€‚‚‚€€~~~~~~~~~~~~~~€€€€€€€€€€€€€€€€€€€€~~~€€~~€‚‚~~~€€€||€~~~~~~€€€€€€€€€€€€€€€€~}~ƒƒ€€€€€€€€€‚‚‚‚‚‚‚‚‚‚€€€€€€€€€€€€€€€€€€~~~~~}}||{{{zzyyyzyxyyyyxyxyxyxyxyyyxxwwwwwwwwwwwwwwvwwxxyz||{|~€€€€€€€‚‚‚ƒƒƒ„ƒƒƒƒƒƒ„ƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒ„ƒ„ƒ„ƒƒƒƒƒƒƒƒƒ„‚€€}|}~}~~€€€€€€€€€~~||}~~~~~~}}€€~}|}||{{}€ƒ…‡†…„ƒ‚‚‚‚‚‚‚ƒ‚ƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒ„ƒ„ƒ„„„ƒƒ‚ƒƒƒ‚ƒ‚„††‚~~~~~~}}~~€‚‚‚€€‚‚‚‚‚€‚‚‚‚€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€~~€‚‚ƒƒƒ‚€€€€€‚‚‚‚‚ƒ‚‚‚‚ƒ‚‚‚‚‚‚‚‚‚‚‚ƒƒƒƒ‚€€€~€€€}~}~}}~~~~~~~€€€€€€€€€€€€€€€€€€€€€‚‚€‚‚‚~~~}}}}~~~~~€~~~~~€€€€€€~~~~€€€€€~~~€€€€€€€€€€€~~~~€€‚‚‚€}|€~~~~€€€€€€€€€€€€€€€€~~€€€€€~~~€‚ƒ€€€‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚€€€€€€€€€€€€€€€€€€€€~~~~~~}}}}{{{{zzyyzyxyyyyxxyxyxyxyyyxxxxwwwwwwwwwwwwwwwwxxy{||z{~€€€€€‚‚ƒƒƒƒƒ‚‚‚‚ƒƒƒƒƒƒƒƒ„„ƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒ„ƒƒƒƒƒƒƒƒƒƒƒƒ„ƒ€}|}~~~€‚‚€€€€€€€~~€€€€€€€€€€~}||||{{}€ƒ…ˆ‡…„ƒ‚‚‚‚‚‚ƒ‚ƒƒƒ‚‚‚‚‚‚‚‚ƒƒƒƒƒƒƒƒƒƒƒ„ƒ„„„„ƒ‚ƒƒ„ƒ‚ƒ‚„‡†‚€~}}}~~}}}}~€€‚‚‚‚‚€‚‚‚‚‚€€‚€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€~~~~~~€‚‚‚‚€‚‚‚‚ƒ‚‚‚ƒƒ‚‚‚‚‚‚‚‚‚‚‚‚ƒƒƒ‚€€€€~~€€~~~~}}~~~~~~~~~~}€€€€€€€€€€€€€€€€€€€‚€‚‚‚‚€~~~~~~~~~~~~~~~}~~~€€~~}|{{||}~€€€€~~~€€€€€€€~~~€~€‚‚‚€||€}}~~€€€€€€€€€€€€€€€€€€€€€€€€€€€€€~~€€€€‚ƒ€‚‚‚‚‚€€‚‚‚‚‚‚‚‚‚‚€€€€€€€€€€€€€€€€€~~~~~~~}}}}|||{{zzzzyxyyyyxyxyxyxyxxxxxxxxxwwwwwwwwwwwwwwxxz|}|z{~‚€€€€€‚‚ƒƒƒƒ‚‚‚‚‚‚ƒƒƒƒƒƒ„„„ƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒ‚‚‚‚‚‚‚‚„ƒ‚€}|}‚€€€€€€€€‚‚€€€~~~€€€€‚‚}||||{{}€ƒ…ˆ‡†„ƒƒƒƒ‚‚‚‚ƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒ„„„„„ƒƒƒ„ƒƒ‚ƒ‚„‡†‚ƒ‚€~~~}}|}~€€‚‚€‚‚€‚‚‚‚‚€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€}~~~~~~~}~€€€‚‚‚€€€‚‚ƒ‚‚‚ƒƒ‚‚‚‚‚‚‚‚‚‚‚ƒƒ‚‚‚€€€€~€€€~}}}~~~~~~~}}€€€€€€€€€‚‚€€€€‚‚€€€€€€€‚€‚ƒ‚‚‚€€€€~~~~~€€~~~~~|}}~~€€~~~~|zyzz{|~€€€€~~~€€€€€€~~~~~~~~~~~~~€€€€~~€‚‚‚€||€{|}~€~~~‚‚€€€~~€€€€€€€€€€€€€€€€€€€€€€‚‚‚‚€€€‚€€‚‚‚‚‚‚‚‚€€€€€€€€€€€€€€€€}}}}~~~~}}}||{{{zyxyyyyxxyxyxyxyxxxxxxxxwwwwwwwwwwwwwwxx{|}|zz~‚€€€€‚‚ƒƒƒ‚‚‚‚‚‚ƒƒƒƒƒ„„„ƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒ‚‚‚‚‚‚‚‚…ƒ~|~€€€€~~~}€€€€‚‚‚€‚}}}€€€€€€‚‚‚ƒƒ‚}||||{{}€ƒ…ˆ‡†„ƒƒƒƒ‚‚‚‚ƒƒƒƒƒƒƒƒƒƒƒƒ„„„„„„„„ƒƒƒƒ„„„„„ƒƒƒ„„‚ƒ‚„‡†‚………„ƒ~~}|||~€€‚‚€‚‚‚€‚‚‚‚‚€€‚€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€~}}~€€€€€€€€€‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚€€€€€€€€€€€€€€€€~~~~~~~~€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€~~}}~~||||||||~~~}}}}xxwxz|€~~|}}~€€€€€€€€€€€€€€€€€€€€€€€€€€~~~~~~~~€€€€€€€€‚€~~}}}}}}}}~~~~~~~~€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€‚‚‚‚‚‚‚‚€€€€€€€€‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚€€€€€€€€€€€€€€€€€~~}}}}}}}}}}}}}}||{{{yyyyyyyyyyyyyyyyxxxxxxxxvvvvvvvvxxxxxxxxz{{|}~~~€€€€€€€€‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚ƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒ‚‚€~~~~~~~~~~~~~~~~€€€€€€€€‚‚‚‚‚‚‚‚ƒƒƒ‚‚‚€‚‚ƒ†††…‚|z||{|}‚„‡‡†…„ƒ‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚„„„„„„„„‚‚‚‚‚‚‚‚‚„…†„‚ƒ„…††…„ƒƒ}}ƒ‚‚‚‚‚‚‚‚€€€€€€€€‚‚‚‚‚‚‚‚€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€~~€€€€€€€€€€‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚€€€€€€€€€€€€€€€€~~~~~~€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€~}}||}}~}}}}}}}}~~}}}|||{{z{|~€‚€€~~}}~~€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€‚€~~||||||||€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€‚‚‚‚‚€€€€€€€€‚‚‚‚‚‚‚‚‚‚€€€€€€€€€€€€€€€€€€€~~~}}}}}}}}|||{{{zzyyyyyyyyyyyyyyyywxwxwxwxxxxxxxxxwwwwwwww{||}~~€€€€€€€€‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚ƒƒ‚€€€€€€€€€ƒ‚‚‚€€‚‚‚………„‚|z}}|}}€‚ƒ…„„ƒ‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚ƒƒƒƒƒƒƒƒ‚‚‚‚‚‚‚‚‚ƒ…„ƒ‚„…†‡‡†…„‚~~‚€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€~€€~~~~~~~~€€€€€~~}€‚ƒ~~~€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€~€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€}}}~€€€€€€€€€€€€‚‚‚€€€€€€€€€€€€€€€€€€€€€€€€€€€€€‚‚€‚‚€~~‚€€€€€€€‚‚‚‚‚‚‚‚€‚ƒƒ‚€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€‚€€€~€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€~€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€‚€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€~€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€‚€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€~~€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€~‚€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€‚‚‚€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€‚‚‚‚‚‚‚‚€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€‚‚‚‚€€€€€€€€~~€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€‚€€€€€€‚ƒ€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€ \ No newline at end of file
diff --git a/pygame/examples/eventlist.py b/pygame/examples/eventlist.py
deleted file mode 100755
index 7c31836..0000000
--- a/pygame/examples/eventlist.py
+++ /dev/null
@@ -1,123 +0,0 @@
-#!/usr/bin/env python
-
-"""Eventlist is a sloppy style of pygame, but is a handy
-tool for learning about pygame events and input. At the
-top of the screen are the state of several device values,
-and a scrolling list of events are displayed on the bottom.
-
-This is not quality 'ui' code at all, but you can see how
-to implement very non-interactive status displays, or even
-a crude text output control.
-"""
-
-from pygame import *
-
-ImgOnOff = []
-Font = None
-LastKey = None
-
-def showtext(win, pos, text, color, bgcolor):
- textimg = Font.render(text, 1, color, bgcolor)
- win.blit(textimg, pos)
- return pos[0] + textimg.get_width() + 5, pos[1]
-
-
-def drawstatus(win):
- bgcolor = 50, 50, 50
- win.fill(bgcolor, (0, 0, 640, 120))
- win.blit(Font.render('Status Area', 1, (155, 155, 155), bgcolor), (2, 2))
-
- pos = showtext(win, (10, 30), 'Mouse Focus', (255, 255, 255), bgcolor)
- win.blit(ImgOnOff[mouse.get_focused()], pos)
-
- pos = showtext(win, (330, 30), 'Keyboard Focus', (255, 255, 255), bgcolor)
- win.blit(ImgOnOff[key.get_focused()], pos)
-
- pos = showtext(win, (10, 60), 'Mouse Position', (255, 255, 255), bgcolor)
- p = '%s, %s' % mouse.get_pos()
- pos = showtext(win, pos, p, bgcolor, (255, 255, 55))
-
- pos = showtext(win, (330, 60), 'Last Keypress', (255, 255, 255), bgcolor)
- if LastKey:
- p = '%d, %s' % (LastKey, key.name(LastKey))
- else:
- p = 'None'
- pos = showtext(win, pos, p, bgcolor, (255, 255, 55))
-
- pos = showtext(win, (10, 90), 'Input Grabbed', (255, 255, 255), bgcolor)
- win.blit(ImgOnOff[event.get_grab()], pos)
-
-
-def drawhistory(win, history):
- win.blit(Font.render('Event History Area', 1, (155, 155, 155), (0,0,0)), (2, 132))
- ypos = 450
- h = list(history)
- h.reverse()
- for line in h:
- r = win.blit(line, (10, ypos))
- win.fill(0, (r.right, r.top, 620, r.height))
- ypos -= Font.get_height()
-
-
-def main():
- init()
-
- win = display.set_mode((640, 480), RESIZABLE)
- display.set_caption("Mouse Focus Workout")
-
- global Font
- Font = font.Font(None, 26)
-
- global ImgOnOff
- ImgOnOff.append(Font.render("Off", 1, (0, 0, 0), (255, 50, 50)))
- ImgOnOff.append(Font.render("On", 1, (0, 0, 0), (50, 255, 50)))
-
- history = []
-
- #let's turn on the joysticks just so we can play with em
- for x in range(joystick.get_count()):
- j = joystick.Joystick(x)
- j.init()
- txt = 'Enabled joystick: ' + j.get_name()
- img = Font.render(txt, 1, (50, 200, 50), (0, 0, 0))
- history.append(img)
- if not joystick.get_count():
- img = Font.render('No Joysticks to Initialize', 1, (50, 200, 50), (0, 0, 0))
- history.append(img)
-
- going = True
- while going:
- for e in event.get():
- if e.type == QUIT:
- going = False
- if e.type == KEYDOWN:
- if e.key == K_ESCAPE:
- going = False
- else:
- global LastKey
- LastKey = e.key
- if e.type == MOUSEBUTTONDOWN:
- event.set_grab(1)
- elif e.type == MOUSEBUTTONUP:
- event.set_grab(0)
- if e.type == VIDEORESIZE:
- win = display.set_mode(e.size, RESIZABLE)
-
- if e.type != MOUSEMOTION:
- txt = '%s: %s' % (event.event_name(e.type), e.dict)
- img = Font.render(txt, 1, (50, 200, 50), (0, 0, 0))
- history.append(img)
- history = history[-13:]
-
-
- drawstatus(win)
- drawhistory(win, history)
-
- display.flip()
- time.wait(10)
-
- quit()
-
-
-if __name__ == '__main__':
- main()
diff --git a/pygame/examples/fastevents.py b/pygame/examples/fastevents.py
deleted file mode 100755
index 07ff793..0000000
--- a/pygame/examples/fastevents.py
+++ /dev/null
@@ -1,130 +0,0 @@
-#!/usr/bin/env python
-""" This is a stress test for the fastevents module.
-
-*Fast events does not appear faster!*
-
-So far it looks like normal pygame.event is faster by up to two times.
-So maybe fastevent isn't fast at all.
-
-Tested on windowsXP sp2 athlon, and freebsd.
-
-However... on my debian duron 850 machine fastevents is faster.
-"""
-
-import pygame
-from pygame import *
-
-# the config to try different settings out with the event queues.
-
-# use the fastevent module or not.
-use_fast_events = 1
-
-# use pygame.display.flip().
-# otherwise we test raw event processing throughput.
-with_display = 1
-
-# limit the game loop to 40 fps.
-slow_tick = 0
-
-NUM_EVENTS_TO_POST = 200000
-
-
-
-if use_fast_events:
- event_module = fastevent
-else:
- event_module = event
-
-
-
-
-from threading import Thread
-
-class post_them(Thread):
- def __init__(self):
- Thread.__init__(self)
- self.done = []
- self.stop = []
-
- def run(self):
- self.done = []
- self.stop = []
- for x in range(NUM_EVENTS_TO_POST):
- ee = event.Event(USEREVENT)
- try_post = 1
-
- # the pygame.event.post raises an exception if the event
- # queue is full. so wait a little bit, and try again.
- while try_post:
- try:
- event_module.post(ee)
- try_post = 0
- except:
- pytime.sleep(0.001)
- try_post = 1
-
- if self.stop:
- return
- self.done.append(1)
-
-
-
-import time as pytime
-
-def main():
- init()
-
- if use_fast_events:
- fastevent.init()
-
- c = time.Clock()
-
- win = display.set_mode((640, 480), RESIZABLE)
- display.set_caption("fastevent Workout")
-
- poster = post_them()
-
- t1 = pytime.time()
- poster.start()
-
- going = True
- while going:
-# for e in event.get():
- #for x in range(200):
- # ee = event.Event(USEREVENT)
- # r = event_module.post(ee)
- # print (r)
-
- #for e in event_module.get():
- event_list = []
- event_list = event_module.get()
-
- for e in event_list:
- if e.type == QUIT:
- print (c.get_fps())
- poster.stop.append(1)
- going = False
- if e.type == KEYDOWN:
- if e.key == K_ESCAPE:
- print (c.get_fps())
- poster.stop.append(1)
- going = False
- if poster.done:
- print (c.get_fps())
- print (c)
- t2 = pytime.time()
- print ("total time:%s" % (t2 - t1))
- print ("events/second:%s" % (NUM_EVENTS_TO_POST / (t2 - t1)))
- going = False
- if with_display:
- display.flip()
- if slow_tick:
- c.tick(40)
-
-
- pygame.quit()
-
-
-
-if __name__ == '__main__':
- main()
diff --git a/pygame/examples/fonty.py b/pygame/examples/fonty.py
deleted file mode 100755
index bdd77f1..0000000
--- a/pygame/examples/fonty.py
+++ /dev/null
@@ -1,101 +0,0 @@
-#!/usr/bin/env python
-
-"""Here we load a .TTF font file, and display it in
-a basic pygame window. It demonstrates several of the
-Font object attributes. Nothing exciting in here, but
-it makes a great example for basic window, event, and
-font management."""
-
-
-import pygame
-from pygame.locals import *
-from pygame.compat import unichr_, unicode_
-import sys
-import locale
-
-
-if sys.version_info >= (3,):
- def print_unicode(s):
- e = locale.getpreferredencoding()
- print (s.encode(e, 'backslashreplace').decode())
-else:
- def print_unicode(s):
- e = locale.getpreferredencoding()
- print (s.encode(e, 'backslashreplace'))
-
-def main():
- #initialize
- pygame.init()
- resolution = 400, 200
- screen = pygame.display.set_mode(resolution)
-
-## pygame.mouse.set_cursor(*pygame.cursors.diamond)
-
- fg = 250, 240, 230
- bg = 5, 5, 5
- wincolor = 40, 40, 90
-
- #fill background
- screen.fill(wincolor)
-
- #load font, prepare values
- font = pygame.font.Font(None, 80)
- text = 'Fonty'
- size = font.size(text)
-
- #no AA, no transparancy, normal
- ren = font.render(text, 0, fg, bg)
- screen.blit(ren, (10, 10))
-
- #no AA, transparancy, underline
- font.set_underline(1)
- ren = font.render(text, 0, fg)
- screen.blit(ren, (10, 40 + size[1]))
- font.set_underline(0)
-
-
- a_sys_font = pygame.font.SysFont("Arial", 60)
-
-
- #AA, no transparancy, bold
- a_sys_font.set_bold(1)
- ren = a_sys_font.render(text, 1, fg, bg)
- screen.blit(ren, (30 + size[0], 10))
- a_sys_font.set_bold(0)
-
- #AA, transparancy, italic
- a_sys_font.set_italic(1)
- ren = a_sys_font.render(text, 1, fg)
- screen.blit(ren, (30 + size[0], 40 + size[1]))
- a_sys_font.set_italic(0)
-
-
- # Get some metrics.
- print ("Font metrics for 'Fonty': %s" % a_sys_font.metrics (text))
- ch = unicode_("%c") % 0x3060
- msg = (unicode_("Font metrics for '%s': %s") %
- (ch, a_sys_font.metrics (ch)))
- print_unicode(msg)
-
- ## #some_japanese_unicode = u"\u304b\u3070\u306b"
- ##some_japanese_unicode = unicode_('%c%c%c') % (0x304b, 0x3070, 0x306b)
-
- #AA, transparancy, italic
- ##ren = a_sys_font.render(some_japanese_unicode, 1, fg)
- ##screen.blit(ren, (30 + size[0], 40 + size[1]))
-
-
-
-
-
- #show the surface and await user quit
- pygame.display.flip()
- while 1:
- #use event.wait to keep from polling 100% cpu
- if pygame.event.wait().type in (QUIT, KEYDOWN, MOUSEBUTTONDOWN):
- break
-
-
-
-if __name__ == '__main__': main()
-
diff --git a/pygame/examples/glcube.py b/pygame/examples/glcube.py
deleted file mode 100755
index 2d038c8..0000000
--- a/pygame/examples/glcube.py
+++ /dev/null
@@ -1,109 +0,0 @@
-#!/usr/bin/env python
-
-"""Draw a cube on the screen. every frame we orbit
-the camera around by a small amount and it appears
-the object is spinning. note i've setup some simple
-data structures here to represent a multicolored cube,
-we then go through a semi-unopimized loop to draw
-the cube points onto the screen. opengl does all the
-hard work for us. :]
-"""
-
-import pygame
-from pygame.locals import *
-
-try:
- from OpenGL.GL import *
- from OpenGL.GLU import *
-except:
- print ('The GLCUBE example requires PyOpenGL')
- raise SystemExit
-
-
-
-#some simple data for a colored cube
-#here we have the 3D point position and color
-#for each corner. then we have a list of indices
-#that describe each face, and a list of indieces
-#that describes each edge
-
-
-CUBE_POINTS = (
- (0.5, -0.5, -0.5), (0.5, 0.5, -0.5),
- (-0.5, 0.5, -0.5), (-0.5, -0.5, -0.5),
- (0.5, -0.5, 0.5), (0.5, 0.5, 0.5),
- (-0.5, -0.5, 0.5), (-0.5, 0.5, 0.5)
-)
-
-#colors are 0-1 floating values
-CUBE_COLORS = (
- (1, 0, 0), (1, 1, 0), (0, 1, 0), (0, 0, 0),
- (1, 0, 1), (1, 1, 1), (0, 0, 1), (0, 1, 1)
-)
-
-CUBE_QUAD_VERTS = (
- (0, 1, 2, 3), (3, 2, 7, 6), (6, 7, 5, 4),
- (4, 5, 1, 0), (1, 5, 7, 2), (4, 0, 3, 6)
-)
-
-CUBE_EDGES = (
- (0,1), (0,3), (0,4), (2,1), (2,3), (2,7),
- (6,3), (6,4), (6,7), (5,1), (5,4), (5,7),
-)
-
-
-
-def drawcube():
- "draw the cube"
- allpoints = zip(CUBE_POINTS, CUBE_COLORS)
-
- glBegin(GL_QUADS)
- for face in CUBE_QUAD_VERTS:
- for vert in face:
- pos, color = allpoints[vert]
- glColor3fv(color)
- glVertex3fv(pos)
- glEnd()
-
- glColor3f(1.0, 1.0, 1.0)
- glBegin(GL_LINES)
- for line in CUBE_EDGES:
- for vert in line:
- pos, color = allpoints[vert]
- glVertex3fv(pos)
-
- glEnd()
-
-
-def main():
- "run the demo"
- #initialize pygame and setup an opengl display
- pygame.init()
- pygame.display.set_mode((640,480), OPENGL|DOUBLEBUF)
- glEnable(GL_DEPTH_TEST) #use our zbuffer
-
- #setup the camera
- glMatrixMode(GL_PROJECTION)
- gluPerspective(45.0,640/480.0,0.1,100.0) #setup lens
- glTranslatef(0.0, 0.0, -3.0) #move back
- glRotatef(25, 1, 0, 0) #orbit higher
-
-
- while 1:
- #check for quit'n events
- event = pygame.event.poll()
- if event.type == QUIT or (event.type == KEYDOWN and event.key == K_ESCAPE):
- break
-
- #clear screen and move camera
- glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT)
-
- #orbit camera around by 1 degree
- glRotatef(1, 0, 1, 0)
-
- drawcube()
- pygame.display.flip()
- pygame.time.wait(10)
-
-
-if __name__ == '__main__': main()
diff --git a/pygame/examples/headless_no_windows_needed.py b/pygame/examples/headless_no_windows_needed.py
deleted file mode 100755
index ac39662..0000000
--- a/pygame/examples/headless_no_windows_needed.py
+++ /dev/null
@@ -1,55 +0,0 @@
-#!/usr/bin/env python
-"""How to use pygame with no windowing system, like on headless servers.
-
-Thumbnail generation with scaling is an example of what you can do with pygame.
-NOTE: the pygame scale function uses mmx/sse if available, and can be run
- in multiple threads.
-
-"""
-useage = """-scale inputimage outputimage new_width new_height
-eg. -scale in.png out.png 50 50
-
-"""
-
-import os, sys
-
-# set SDL to use the dummy NULL video driver,
-# so it doesn't need a windowing system.
-os.environ["SDL_VIDEODRIVER"] = "dummy"
-
-
-import pygame.transform
-
-
-if 1:
- #some platforms need to init the display for some parts of pygame.
- import pygame.display
- pygame.display.init()
- screen = pygame.display.set_mode((1,1))
-
-
-
-def scaleit(fin, fout, w, h):
- i = pygame.image.load(fin)
-
- if hasattr(pygame.transform, "smoothscale"):
- scaled_image = pygame.transform.smoothscale(i, (w,h))
- else:
- scaled_image = pygame.transform.scale(i, (w,h))
- pygame.image.save(scaled_image, fout)
-
-def main(fin, fout, w, h):
- """smoothscale image file named fin as fout with new size (w,h)"""
- scaleit(fin, fout, w, h)
-
-if __name__ == "__main__":
- if "-scale" in sys.argv:
- fin, fout, w, h = sys.argv[2:]
- w, h = map(int, [w,h])
- main(fin, fout, w,h)
- else:
- print (useage)
-
-
-
-
diff --git a/pygame/examples/liquid.py b/pygame/examples/liquid.py
deleted file mode 100755
index c230b76..0000000
--- a/pygame/examples/liquid.py
+++ /dev/null
@@ -1,83 +0,0 @@
-#!/usr/bin/env python
-
-"""This examples demonstrates a simplish water effect of an
-image. It attempts to create a hardware display surface that
-can use pageflipping for faster updates. Note that the colormap
-from the loaded GIF image is copied to the colormap for the
-display surface.
-
-This is based on the demo named F2KWarp by Brad Graham of Freedom2000
-done in BlitzBasic. I was just translating the BlitzBasic code to
-pygame to compare the results. I didn't bother porting the text and
-sound stuff, that's an easy enough challenge for the reader :]"""
-
-import pygame, os
-from pygame.locals import *
-from math import sin
-
-main_dir = os.path.split(os.path.abspath(__file__))[0]
-
-def main():
- #initialize and setup screen
- pygame.init()
- screen = pygame.display.set_mode((640, 480), HWSURFACE|DOUBLEBUF)
-
- #load image and quadruple
- imagename = os.path.join(main_dir, 'data', 'liquid.bmp')
- bitmap = pygame.image.load(imagename)
- bitmap = pygame.transform.scale2x(bitmap)
- bitmap = pygame.transform.scale2x(bitmap)
-
- #get the image and screen in the same format
- if screen.get_bitsize() == 8:
- screen.set_palette(bitmap.get_palette())
- else:
- bitmap = bitmap.convert()
-
- #prep some variables
- anim = 0.0
-
- #mainloop
- xblocks = range(0, 640, 20)
- yblocks = range(0, 480, 20)
- stopevents = QUIT, KEYDOWN, MOUSEBUTTONDOWN
- while 1:
- for e in pygame.event.get():
- if e.type in stopevents:
- return
-
- anim = anim + 0.2
- for x in xblocks:
- xpos = (x + (sin(anim + x * .01) * 15)) + 20
- for y in yblocks:
- ypos = (y + (sin(anim + y * .01) * 15)) + 20
- screen.blit(bitmap, (x, y), (xpos, ypos, 20, 20))
-
- pygame.display.flip()
-
-
-if __name__ == '__main__': main()
-
-
-
-"""BTW, here is the code from the BlitzBasic example this was derived
-from. i've snipped the sound and text stuff out.
------------------------------------------------------------------
-; Brad@freedom2000.com
-
-; Load a bmp pic (800x600) and slice it into 1600 squares
-Graphics 640,480
-SetBuffer BackBuffer()
-bitmap$="f2kwarp.bmp"
-pic=LoadAnimImage(bitmap$,20,15,0,1600)
-
-; use SIN to move all 1600 squares around to give liquid effect
-Repeat
-f=0:w=w+10:If w=360 Then w=0
-For y=0 To 599 Step 15
-For x = 0 To 799 Step 20
-f=f+1:If f=1600 Then f=0
-DrawBlock pic,(x+(Sin(w+x)*40))/1.7+80,(y+(Sin(w+y)*40))/1.7+60,f
-Next:Next:Flip:Cls
-Until KeyDown(1)
-"""
diff --git a/pygame/examples/mask.py b/pygame/examples/mask.py
deleted file mode 100755
index 209c35d..0000000
--- a/pygame/examples/mask.py
+++ /dev/null
@@ -1,176 +0,0 @@
-#!/usr/bin/env python
-"""A pgyame.mask collition detection example
-
-exports main()
-
-This module can also be run as a stand-alone program, excepting
-one or more image file names as command line arguments.
-
-"""
-
-import sys, random
-import pygame, pygame.image, pygame.surface, pygame.time, pygame.display
-
-def maskFromSurface(surface, threshold = 127):
- #return pygame.mask.from_surface(surface, threshold)
-
- mask = pygame.mask.Mask(surface.get_size())
- key = surface.get_colorkey()
- if key:
- for y in range(surface.get_height()):
- for x in range(surface.get_width()):
- if surface.get_at((x+0.1,y+0.1)) != key:
- mask.set_at((x,y),1)
- else:
- for y in range(surface.get_height()):
- for x in range (surface.get_width()):
- if surface.get_at((x,y))[3] > threshold:
- mask.set_at((x,y),1)
- return mask
-
-def vadd(x,y):
- return [x[0]+y[0],x[1]+y[1]]
-
-def vsub(x,y):
- return [x[0]-y[0],x[1]-y[1]]
-
-def vdot(x,y):
- return x[0]*y[0]+x[1]*y[1]
-
-class Sprite:
- def __init__(self, surface, mask = None):
- self.surface = surface
- if mask:
- self.mask = mask
- else:
- self.mask = maskFromSurface(self.surface)
- self.setPos([0,0])
- self.setVelocity([0,0])
-
- def setPos(self,pos):
- self.pos = [pos[0],pos[1]]
- def setVelocity(self,vel):
- self.vel = [vel[0],vel[1]]
- def move(self,dr):
- self.pos = vadd(self.pos,dr)
- def kick(self,impulse):
- self.vel[0] += impulse[0]
- self.vel[1] += impulse[1]
-
- def collide(self,s):
- """Test if the sprites are colliding and
- resolve the collision in this case."""
- offset = [int(x) for x in vsub(s.pos,self.pos)]
- overlap = self.mask.overlap_area(s.mask,offset)
- if overlap == 0:
- return
- """Calculate collision normal"""
- nx = (self.mask.overlap_area(s.mask,(offset[0]+1,offset[1])) -
- self.mask.overlap_area(s.mask,(offset[0]-1,offset[1])))
- ny = (self.mask.overlap_area(s.mask,(offset[0],offset[1]+1)) -
- self.mask.overlap_area(s.mask,(offset[0],offset[1]-1)))
- if nx == 0 and ny == 0:
- """One sprite is inside another"""
- return
- n = [nx,ny]
- dv = vsub(s.vel,self.vel)
- J = vdot(dv,n)/(2*vdot(n,n))
- if J > 0:
- """Can scale up to 2*J here to get bouncy collisions"""
- J *= 1.9
- self.kick([nx*J,ny*J])
- s.kick([-J*nx,-J*ny])
- return
- """Separate the sprites"""
- c1 = -overlap/vdot(n,n)
- c2 = -c1/2
- self.move([c2*nx,c2*ny])
- s.move([(c1+c2)*nx,(c1+c2)*ny])
-
- def update(self,dt):
- self.pos[0] += dt*self.vel[0]
- self.pos[1] += dt*self.vel[1]
-
-
-def main(*args):
- """Display multiple images bounce off each other using collition detection
-
- Positional arguments:
- one or more image file names.
-
- This pygame.masks demo will display multiple moving sprites bouncing
- off each other. More than one sprite image can be provided.
-
- """
-
- if len(args) == 0:
- raise ValueError("Require at least one image file name: non given")
- print ('Press any key to quit')
- screen = pygame.display.set_mode((640,480))
- images = []
- masks = []
- for impath in args:
- images.append(pygame.image.load(impath).convert_alpha())
- masks.append(maskFromSurface(images[-1]))
-
- numtimes = 10
- import time
- t1 = time.time()
- for x in range(numtimes):
- m = maskFromSurface(images[-1])
- t2 = time.time()
-
- print ("python maskFromSurface :%s" % (t2-t1))
-
- t1 = time.time()
- for x in range(numtimes):
- m = pygame.mask.from_surface(images[-1])
- t2 = time.time()
-
- print ("C pygame.mask.from_surface :%s" % (t2-t1))
-
- sprites = []
- for i in range(20):
- j = i % len(images)
- s = Sprite(images[j],masks[j])
- s.setPos((random.uniform(0,screen.get_width()),
- random.uniform(0,screen.get_height())))
- s.setVelocity((random.uniform(-5,5),random.uniform(-5,5)))
- sprites.append(s)
- pygame.time.set_timer(pygame.USEREVENT,33)
- while 1:
- event = pygame.event.wait()
- if event.type == pygame.QUIT:
- return
- elif event.type == pygame.USEREVENT:
- """Do both mechanics and screen update"""
- screen.fill((240,220,100))
- for i in range(len(sprites)):
- for j in range(i+1,len(sprites)):
- sprites[i].collide(sprites[j])
- for s in sprites:
- s.update(1)
- if s.pos[0] < -s.surface.get_width()-3:
- s.pos[0] = screen.get_width()
- elif s.pos[0] > screen.get_width()+3:
- s.pos[0] = -s.surface.get_width()
- if s.pos[1] < -s.surface.get_height()-3:
- s.pos[1] = screen.get_height()
- elif s.pos[1] > screen.get_height()+3:
- s.pos[1] = -s.surface.get_height()
- screen.blit(s.surface,s.pos)
- pygame.display.update()
- elif event.type == pygame.KEYDOWN:
- return
-
-if __name__ == '__main__':
- if len(sys.argv) < 2:
- print ('Usage: mask.py <IMAGE> [<IMAGE> ...]')
- print ('Let many copies of IMAGE(s) bounce against each other')
- print ('Press any key to quit')
- else:
- main(*sys.argv[1:])
-
-
-
-
diff --git a/pygame/examples/midi.py b/pygame/examples/midi.py
deleted file mode 100755
index 41d8e5b..0000000
--- a/pygame/examples/midi.py
+++ /dev/null
@@ -1,822 +0,0 @@
-#!/usr/bin/env python
-
-"""Contains an example of midi input, and a separate example of midi output.
-
-By default it runs the output example.
-python midi.py --output
-python midi.py --input
-
-"""
-
-import sys
-import os
-
-import pygame
-import pygame.midi
-from pygame.locals import *
-
-try: # Ensure set available for output example
- set
-except NameError:
- from sets import Set as set
-
-
-def print_device_info():
- pygame.midi.init()
- _print_device_info()
- pygame.midi.quit()
-
-def _print_device_info():
- for i in range( pygame.midi.get_count() ):
- r = pygame.midi.get_device_info(i)
- (interf, name, input, output, opened) = r
-
- in_out = ""
- if input:
- in_out = "(input)"
- if output:
- in_out = "(output)"
-
- print ("%2i: interface :%s:, name :%s:, opened :%s: %s" %
- (i, interf, name, opened, in_out))
-
-
-
-
-def input_main(device_id = None):
- pygame.init()
- pygame.fastevent.init()
- event_get = pygame.fastevent.get
- event_post = pygame.fastevent.post
-
- pygame.midi.init()
-
- _print_device_info()
-
-
- if device_id is None:
- input_id = pygame.midi.get_default_input_id()
- else:
- input_id = device_id
-
- print ("using input_id :%s:" % input_id)
- i = pygame.midi.Input( input_id )
-
- pygame.display.set_mode((1,1))
-
-
-
- going = True
- while going:
- events = event_get()
- for e in events:
- if e.type in [QUIT]:
- going = False
- if e.type in [KEYDOWN]:
- going = False
- if e.type in [pygame.midi.MIDIIN]:
- print (e)
-
- if i.poll():
- midi_events = i.read(10)
- # convert them into pygame events.
- midi_evs = pygame.midi.midis2events(midi_events, i.device_id)
-
- for m_e in midi_evs:
- event_post( m_e )
-
- del i
- pygame.midi.quit()
-
-
-
-def output_main(device_id = None):
- """Execute a musical keyboard example for the Church Organ instrument
-
- This is a piano keyboard example, with a two octave keyboard, starting at
- note F3. Left mouse down over a key starts a note, left up stops it. The
- notes are also mapped to the computer keyboard keys, assuming an American
- English PC keyboard (sorry everyone else, but I don't know if I can map to
- absolute key position instead of value.) The white keys are on the second
- row, TAB to BACKSLASH, starting with note F3. The black keys map to the top
- row, '1' to BACKSPACE, starting with F#3. 'r' is middle C. Close the
- window or press ESCAPE to quit the program. Key velocity (note
- amplitude) varies vertically on the keyboard image, with minimum velocity
- at the top of a key and maximum velocity at bottom.
-
- Default Midi output, no device_id given, is to the default output device
- for the computer.
-
- """
-
- # A note to new pygamers:
- #
- # All the midi module stuff is in this function. It is unnecessary to
- # understand how the keyboard display works to appreciate how midi
- # messages are sent.
-
- # The keyboard is drawn by a Keyboard instance. This instance maps Midi
- # notes to musical keyboard keys. A regions surface maps window position
- # to (Midi note, velocity) pairs. A key_mapping dictionary does the same
- # for computer keyboard keys. Midi sound is controlled with direct method
- # calls to a pygame.midi.Output instance.
- #
- # Things to consider when using pygame.midi:
- #
- # 1) Initialize the midi module with a to pygame.midi.init().
- # 2) Create a midi.Output instance for the desired output device port.
- # 3) Select instruments with set_instrument() method calls.
- # 4) Play notes with note_on() and note_off() method calls.
- # 5) Call pygame.midi.Quit() when finished. Though the midi module tries
- # to ensure that midi is properly shut down, it is best to do it
- # explicitly. A try/finally statement is the safest way to do this.
- #
- GRAND_PIANO = 0
- CHURCH_ORGAN = 19
-
- instrument = CHURCH_ORGAN
- #instrument = GRAND_PIANO
- start_note = 53 # F3 (white key note), start_note != 0
- n_notes = 24 # Two octaves (14 white keys)
-
- bg_color = Color('slategray')
-
- key_mapping = make_key_mapping([K_TAB, K_1, K_q, K_2, K_w, K_3, K_e, K_r,
- K_5, K_t, K_6, K_y, K_u, K_8, K_i, K_9,
- K_o, K_0, K_p, K_LEFTBRACKET, K_EQUALS,
- K_RIGHTBRACKET, K_BACKSPACE, K_BACKSLASH],
- start_note)
-
-
-
- pygame.init()
- pygame.midi.init()
-
- _print_device_info()
-
- if device_id is None:
- port = pygame.midi.get_default_output_id()
- else:
- port = device_id
-
- print ("using output_id :%s:" % port)
-
-
-
- midi_out = pygame.midi.Output(port, 0)
- try:
- midi_out.set_instrument(instrument)
- keyboard = Keyboard(start_note, n_notes)
-
- screen = pygame.display.set_mode(keyboard.rect.size)
- screen.fill(bg_color)
- pygame.display.flip()
-
- background = pygame.Surface(screen.get_size())
- background.fill(bg_color)
- dirty_rects = []
- keyboard.draw(screen, background, dirty_rects)
- pygame.display.update(dirty_rects)
-
- regions = pygame.Surface(screen.get_size()) # initial color (0,0,0)
- keyboard.map_regions(regions)
-
- pygame.event.set_blocked(MOUSEMOTION)
- repeat = 1
- mouse_note = 0
- on_notes = set()
- while 1:
- update_rects = None
- e = pygame.event.wait()
- if e.type == pygame.MOUSEBUTTONDOWN:
- mouse_note, velocity, __, __ = regions.get_at(e.pos)
- if mouse_note and mouse_note not in on_notes:
- keyboard.key_down(mouse_note)
- midi_out.note_on(mouse_note, velocity)
- on_notes.add(mouse_note)
- else:
- mouse_note = 0
- elif e.type == pygame.MOUSEBUTTONUP:
- if mouse_note:
- midi_out.note_off(mouse_note)
- keyboard.key_up(mouse_note)
- on_notes.remove(mouse_note)
- mouse_note = 0
- elif e.type == pygame.QUIT:
- break
- elif e.type == pygame.KEYDOWN:
- if e.key == pygame.K_ESCAPE:
- break
- try:
- note, velocity = key_mapping[e.key]
- except KeyError:
- pass
- else:
- if note not in on_notes:
- keyboard.key_down(note)
- midi_out.note_on(note, velocity)
- on_notes.add(note)
- elif e.type == pygame.KEYUP:
- try:
- note, __ = key_mapping[e.key]
- except KeyError:
- pass
- else:
- if note in on_notes and note != mouse_note:
- keyboard.key_up(note)
- midi_out.note_off(note, 0)
- on_notes.remove(note)
-
- dirty_rects = []
- keyboard.draw(screen, background, dirty_rects)
- pygame.display.update(dirty_rects)
- finally:
- del midi_out
- pygame.midi.quit()
-
-def make_key_mapping(key_list, start_note):
- """Return a dictionary of (note, velocity) by computer keyboard key code"""
-
- mapping = {}
- for i in range(len(key_list)):
- mapping[key_list[i]] = (start_note + i, 127)
- return mapping
-
-class NullKey(object):
- """A dummy key that ignores events passed to it by other keys
-
- A NullKey instance is the left key instance used by default
- for the left most keyboard key.
-
- """
-
- def _right_white_down(self):
- pass
-
- def _right_white_up(self):
- pass
-
- def _right_black_down(self):
- pass
-
- def _right_black_up(self):
- pass
-
-null_key = NullKey()
-
-def key_class(updates, image_strip, image_rects, is_white_key=True):
- """Return a keyboard key widget class
-
- Arguments:
- updates - a set into which a key instance adds itself if it needs
- redrawing.
- image_strip - The surface containing the images of all key states.
- image_rects - A list of Rects giving the regions within image_strip that
- are relevant to this key class.
- is_white_key (default True) - Set false if this is a black key.
-
- This function automates the creation of a key widget class for the
- three basic key types. A key has two basic states, up or down (
- depressed). Corresponding up and down images are drawn for each
- of these two states. But to give the illusion of depth, a key
- may have shadows cast upon it by the adjacent keys to its right.
- These shadows change depending on the up/down state of the key and
- its neighbors. So a key may support multiple images and states
- depending on the shadows. A key type is determined by the length
- of image_rects and the value of is_white.
-
- """
-
- # Naming convention: Variables used by the Key class as part of a
- # closure start with 'c_'.
-
- # State logic and shadows:
- #
- # A key may cast a shadow upon the key to its left. A black key casts a
- # shadow on an adjacent white key. The shadow changes depending of whether
- # the black or white key is depressed. A white key casts a shadow on the
- # white key to its left if it is up and the left key is down. Therefore
- # a keys state, and image it will draw, is determined entirely by its
- # itself and the key immediately adjacent to it on the right. A white key
- # is always assumed to have an adjacent white key.
- #
- # There can be up to eight key states, representing all permutations
- # of the three fundamental states of self up/down, adjacent white
- # right up/down, adjacent black up/down.
- #
- down_state_none = 0
- down_state_self = 1
- down_state_white = down_state_self << 1
- down_state_self_white = down_state_self | down_state_white
- down_state_black = down_state_white << 1
- down_state_self_black = down_state_self | down_state_black
- down_state_white_black = down_state_white | down_state_black
- down_state_all = down_state_self | down_state_white_black
-
- # Some values used in the class.
- #
- c_down_state_initial = down_state_none
- c_down_state_rect_initial = image_rects[0]
- c_down_state_self = down_state_self
- c_updates = updates
- c_image_strip = image_strip
- c_width, c_height = image_rects[0].size
-
- # A key propagates its up/down state change to the adjacent white key on
- # the left by calling the adjacent key's _right_black_down or
- # _right_white_down method.
- #
- if is_white_key:
- key_color = 'white'
- else:
- key_color = 'black'
- c_notify_down_method = "_right_%s_down" % key_color
- c_notify_up_method = "_right_%s_up" % key_color
-
- # Images:
- #
- # A black key only needs two images, for the up and down states. Its
- # appearance is unaffected by the adjacent keys to its right, which cast no
- # shadows upon it.
- #
- # A white key with a no adjacent black to its right only needs three
- # images, for self up, self down, and both self and adjacent white down.
- #
- # A white key with both a black and white key to its right needs six
- # images: self up, self up and adjacent black down, self down, self and
- # adjacent white down, self and adjacent black down, and all three down.
- #
- # Each 'c_event' dictionary maps the current key state to a new key state,
- # along with corresponding image, for the related event. If no redrawing
- # is required for the state change then the image rect is simply None.
- #
- c_event_down = {down_state_none: (down_state_self, image_rects[1])}
- c_event_up = {down_state_self: (down_state_none, image_rects[0])}
- c_event_right_white_down = {
- down_state_none: (down_state_none, None),
- down_state_self: (down_state_self, None)}
- c_event_right_white_up = c_event_right_white_down.copy()
- c_event_right_black_down = c_event_right_white_down.copy()
- c_event_right_black_up = c_event_right_white_down.copy()
- if len(image_rects) > 2:
- c_event_down[down_state_white] = (
- down_state_self_white, image_rects[2])
- c_event_up[down_state_self_white] = (down_state_white, image_rects[0])
- c_event_right_white_down[down_state_none] = (down_state_white, None)
- c_event_right_white_down[down_state_self] = (
- down_state_self_white, image_rects[2])
- c_event_right_white_up[down_state_white] = (down_state_none, None)
- c_event_right_white_up[down_state_self_white] = (
- down_state_self, image_rects[1])
- c_event_right_black_down[down_state_white] = (
- down_state_white, None)
- c_event_right_black_down[down_state_self_white] = (
- down_state_self_white, None)
- c_event_right_black_up[down_state_white] = (
- down_state_white, None)
- c_event_right_black_up[down_state_self_white] = (
- down_state_self_white, None)
- if len(image_rects) > 3:
- c_event_down[down_state_black] = (
- down_state_self_black, image_rects[4])
- c_event_down[down_state_white_black] = (down_state_all, image_rects[5])
- c_event_up[down_state_self_black] = (down_state_black, image_rects[3])
- c_event_up[down_state_all] = (down_state_white_black, image_rects[3])
- c_event_right_white_down[down_state_black] = (
- down_state_white_black, None)
- c_event_right_white_down[down_state_self_black] = (
- down_state_all, image_rects[5])
- c_event_right_white_up[down_state_white_black] = (
- down_state_black, None)
- c_event_right_white_up[down_state_all] = (
- down_state_self_black, image_rects[4])
- c_event_right_black_down[down_state_none] = (
- down_state_black, image_rects[3])
- c_event_right_black_down[down_state_self] = (
- down_state_self_black, image_rects[4])
- c_event_right_black_down[down_state_white] = (
- down_state_white_black, image_rects[3])
- c_event_right_black_down[down_state_self_white] = (
- down_state_all, image_rects[5])
- c_event_right_black_up[down_state_black] = (
- down_state_none, image_rects[0])
- c_event_right_black_up[down_state_self_black] = (
- down_state_self, image_rects[1])
- c_event_right_black_up[down_state_white_black] = (
- down_state_white, image_rects[0])
- c_event_right_black_up[down_state_all] = (
- down_state_self_white, image_rects[2])
-
-
- class Key(object):
- """A key widget, maintains key state and draws the key's image
-
- Constructor arguments:
- ident - A unique key identifier. Any immutable type suitable as a key.
- posn - The location of the key on the display surface.
- key_left - Optional, the adjacent white key to the left. Changes in
- up and down state are propagated to that key.
-
- A key has an associated position and state. Related to state is the
- image drawn. State changes are managed with method calls, one method
- per event type. The up and down event methods are public. Other
- internal methods are for passing on state changes to the key_left
- key instance.
-
- """
-
- is_white = is_white_key
-
- def __init__(self, ident, posn, key_left = None):
- """Return a new Key instance
-
- The initial state is up, with all adjacent keys to the right also
- up.
-
- """
- if key_left is None:
- key_left = null_key
- rect = Rect(posn[0], posn[1], c_width, c_height)
- self.rect = rect
- self._state = c_down_state_initial
- self._source_rect = c_down_state_rect_initial
- self._ident = ident
- self._hash = hash(ident)
- self._notify_down = getattr(key_left, c_notify_down_method)
- self._notify_up = getattr(key_left, c_notify_up_method)
- self._key_left = key_left
- self._background_rect = Rect(rect.left, rect.bottom - 10,
- c_width, 10)
- c_updates.add(self)
-
- def down(self):
- """Signal that this key has been depressed (is down)"""
-
- self._state, source_rect = c_event_down[self._state]
- if source_rect is not None:
- self._source_rect = source_rect
- c_updates.add(self)
- self._notify_down()
-
- def up(self):
- """Signal that this key has been released (is up)"""
-
- self._state, source_rect = c_event_up[self._state]
- if source_rect is not None:
- self._source_rect = source_rect
- c_updates.add(self)
- self._notify_up()
-
- def _right_white_down(self):
- """Signal that the adjacent white key has been depressed
-
- This method is for internal propagation of events between
- key instances.
-
- """
-
- self._state, source_rect = c_event_right_white_down[self._state]
- if source_rect is not None:
- self._source_rect = source_rect
- c_updates.add(self)
-
- def _right_white_up(self):
- """Signal that the adjacent white key has been released
-
- This method is for internal propagation of events between
- key instances.
-
- """
-
- self._state, source_rect = c_event_right_white_up[self._state]
- if source_rect is not None:
- self._source_rect = source_rect
- c_updates.add(self)
-
- def _right_black_down(self):
- """Signal that the adjacent black key has been depressed
-
- This method is for internal propagation of events between
- key instances.
-
- """
-
- self._state, source_rect = c_event_right_black_down[self._state]
- if source_rect is not None:
- self._source_rect = source_rect
- c_updates.add(self)
-
- def _right_black_up(self):
- """Signal that the adjacent black key has been released
-
- This method is for internal propagation of events between
- key instances.
-
- """
-
- self._state, source_rect = c_event_right_black_up[self._state]
- if source_rect is not None:
- self._source_rect = source_rect
- c_updates.add(self)
-
- def __eq__(self, other):
- """True if same identifiers"""
-
- return self._ident == other._ident
-
- def __hash__(self):
- """Return the immutable hash value"""
-
- return self._hash
-
- def __str__(self):
- """Return the key's identifier and position as a string"""
-
- return ("<Key %s at (%d, %d)>" %
- (self._ident, self.rect.top, self.rect.left))
-
- def draw(self, surf, background, dirty_rects):
- """Redraw the key on the surface surf
-
- The background is redrawn. The altered region is added to the
- dirty_rects list.
-
- """
-
- surf.blit(background, self._background_rect, self._background_rect)
- surf.blit(c_image_strip, self.rect, self._source_rect)
- dirty_rects.append(self.rect)
-
- return Key
-
-def key_images():
- """Return a keyboard keys image strip and a mapping of image locations
-
- The return tuple is a surface and a dictionary of rects mapped to key
- type.
-
- This function encapsulates the constants relevant to the keyboard image
- file. There are five key types. One is the black key. The other four
- white keys are determined by the proximity of the black keys. The plain
- white key has no black key adjacent to it. A white-left and white-right
- key has a black key to the left or right of it respectively. A white-center
- key has a black key on both sides. A key may have up to six related
- images depending on the state of adjacent keys to its right.
-
- """
-
- my_dir = os.path.split(os.path.abspath(__file__))[0]
- strip_file = os.path.join(my_dir, 'data', 'midikeys.png')
- white_key_width = 42
- white_key_height = 160
- black_key_width = 22
- black_key_height = 94
- strip = pygame.image.load(strip_file)
- names = [
- 'black none', 'black self',
- 'white none', 'white self', 'white self-white',
- 'white-left none', 'white-left self', 'white-left black',
- 'white-left self-black', 'white-left self-white', 'white-left all',
- 'white-center none', 'white-center self',
- 'white-center black', 'white-center self-black',
- 'white-center self-white', 'white-center all',
- 'white-right none', 'white-right self', 'white-right self-white']
- rects = {}
- for i in range(2):
- rects[names[i]] = Rect(i * white_key_width, 0,
- black_key_width, black_key_height)
- for i in range(2, len(names)):
- rects[names[i]] = Rect(i * white_key_width, 0,
- white_key_width, white_key_height)
- return strip, rects
-
-class Keyboard(object):
- """Musical keyboard widget
-
- Constructor arguments:
- start_note: midi note value of the starting note on the keyboard.
- n_notes: number of notes (keys) on the keyboard.
-
- A Keyboard instance draws the musical keyboard and maintains the state of
- all the keyboard keys. Individual keys can be in a down (depressed) or
- up (released) state.
-
- """
-
- _image_strip, _rects = key_images()
-
- white_key_width, white_key_height = _rects['white none'].size
- black_key_width, black_key_height = _rects['black none'].size
-
- _updates = set()
-
- # There are five key classes, representing key shape:
- # black key (BlackKey), plain white key (WhiteKey), white key to the left
- # of a black key (WhiteKeyLeft), white key between two black keys
- # (WhiteKeyCenter), and white key to the right of a black key
- # (WhiteKeyRight).
- BlackKey = key_class(_updates,
- _image_strip,
- [_rects['black none'], _rects['black self']],
- False)
- WhiteKey = key_class(_updates,
- _image_strip,
- [_rects['white none'],
- _rects['white self'],
- _rects['white self-white']])
- WhiteKeyLeft = key_class(_updates,
- _image_strip,
- [_rects['white-left none'],
- _rects['white-left self'],
- _rects['white-left self-white'],
- _rects['white-left black'],
- _rects['white-left self-black'],
- _rects['white-left all']])
- WhiteKeyCenter = key_class(_updates,
- _image_strip,
- [_rects['white-center none'],
- _rects['white-center self'],
- _rects['white-center self-white'],
- _rects['white-center black'],
- _rects['white-center self-black'],
- _rects['white-center all']])
- WhiteKeyRight = key_class(_updates,
- _image_strip,
- [_rects['white-right none'],
- _rects['white-right self'],
- _rects['white-right self-white']])
-
- def __init__(self, start_note, n_notes):
- """Return a new Keyboard instance with n_note keys"""
-
- self._start_note = start_note
- self._end_note = start_note + n_notes - 1
- self._add_keys()
-
- def _add_keys(self):
- """Populate the keyboard with key instances
-
- Set the _keys and rect attributes.
-
- """
-
- # Keys are entered in a list, where index is Midi note. Since there are
- # only 128 possible Midi notes the list length is managable. Unassigned
- # note positions should never be accessed, so are set None to ensure
- # the bug is quickly detected.
- #
- key_map = [None] * 128
-
- start_note = self._start_note
- end_note = self._end_note
- black_offset = self.black_key_width // 2
- prev_white_key = None
- x = y = 0
- if is_white_key(start_note):
- is_prev_white = True
- else:
- x += black_offset
- is_prev_white = False
- for note in range(start_note, end_note + 1):
- ident = note # For now notes uniquely identify keyboard keys.
- if is_white_key(note):
- if is_prev_white:
- if note == end_note or is_white_key(note + 1):
- key = self.WhiteKey(ident, (x, y), prev_white_key)
- else:
- key = self.WhiteKeyLeft(ident, (x, y), prev_white_key)
- else:
- if note == end_note or is_white_key(note + 1):
- key = self.WhiteKeyRight(ident, (x, y), prev_white_key)
- else:
- key = self.WhiteKeyCenter(ident,
- (x, y),
- prev_white_key)
- is_prev_white = True
- x += self.white_key_width
- prev_white_key = key
- else:
- key = self.BlackKey(ident,
- (x - black_offset, y),
- prev_white_key)
- is_prev_white = False
- key_map[note] = key
- self._keys = key_map
-
- kb_width = key_map[self._end_note].rect.right
- kb_height = self.white_key_height
- self.rect = Rect(0, 0, kb_width, kb_height)
-
- def map_regions(self, regions):
- """Draw the key regions onto surface regions.
-
- Regions must have at least 3 byte pixels. Each pixel of the keyboard
- rectangle is set to the color (note, velocity, 0). The regions surface
- must be at least as large as (0, 0, self.rect.left, self.rect.bottom)
-
- """
-
- # First draw the white key regions. Then add the overlapping
- # black key regions.
- #
- cutoff = self.black_key_height
- black_keys = []
- for note in range(self._start_note, self._end_note + 1):
- key = self._keys[note]
- if key.is_white:
- fill_region(regions, note, key.rect, cutoff)
- else:
- black_keys.append((note, key))
- for note, key in black_keys:
- fill_region(regions, note, key.rect, cutoff)
-
- def draw(self, surf, background, dirty_rects):
- """Redraw all altered keyboard keys"""
-
- changed_keys = self._updates
- while changed_keys:
- changed_keys.pop().draw(surf, background, dirty_rects)
-
- def key_down(self, note):
- """Signal a key down event for note"""
-
- self._keys[note].down()
-
- def key_up(self, note):
- """Signal a key up event for note"""
-
- self._keys[note].up()
-
-def fill_region(regions, note, rect, cutoff):
- """Fill the region defined by rect with a (note, velocity, 0) color
-
- The velocity varies from a small value at the top of the region to
- 127 at the bottom. The vertical region 0 to cutoff is split into
- three parts, with velocities 42, 84 and 127. Everything below cutoff
- has velocity 127.
-
- """
-
- x, y, width, height = rect
- if cutoff is None:
- cutoff = height
- delta_height = cutoff // 3
- regions.fill((note, 42, 0),
- (x, y, width, delta_height))
- regions.fill((note, 84, 0),
- (x, y + delta_height, width, delta_height))
- regions.fill((note, 127, 0),
- (x, y + 2 * delta_height, width, height - 2 * delta_height))
-
-def is_white_key(note):
- """True if note is represented by a white key"""
-
- key_pattern = [True, False, True, True, False, True,
- False, True, True, False, True, False]
- return key_pattern[(note - 21) % len(key_pattern)]
-
-
-def usage():
- print ("--input [device_id] : Midi message logger")
- print ("--output [device_id] : Midi piano keyboard")
- print ("--list : list available midi devices")
-
-def main(mode='output', device_id=None):
- """Run a Midi example
-
- Arguments:
- mode - if 'output' run a midi keyboard output example
- 'input' run a midi event logger input example
- 'list' list available midi devices
- (default 'output')
- device_id - midi device number; if None then use the default midi input or
- output device for the system
-
- """
-
- if mode == 'input':
- input_main(device_id)
- elif mode == 'output':
- output_main(device_id)
- elif mode == 'list':
- print_device_info()
- else:
- raise ValueError("Unknown mode option '%s'" % mode)
-
-if __name__ == '__main__':
-
- try:
- device_id = int( sys.argv[-1] )
- except:
- device_id = None
-
- if "--input" in sys.argv or "-i" in sys.argv:
-
- input_main(device_id)
-
- elif "--output" in sys.argv or "-o" in sys.argv:
- output_main(device_id)
- elif "--list" in sys.argv or "-l" in sys.argv:
- print_device_info()
- else:
- usage()
diff --git a/pygame/examples/moveit.py b/pygame/examples/moveit.py
deleted file mode 100755
index 194cd12..0000000
--- a/pygame/examples/moveit.py
+++ /dev/null
@@ -1,73 +0,0 @@
-#!/usr/bin/env python
-
-"""
-This is the full and final example from the Pygame Tutorial,
-"How Do I Make It Move". It creates 10 objects and animates
-them on the screen.
-
-Note it's a bit scant on error checking, but it's easy to read. :]
-Fortunately, this is python, and we needn't wrestle with a pile of
-error codes.
-"""
-
-
-#import everything
-import os, pygame
-from pygame.locals import *
-
-main_dir = os.path.split(os.path.abspath(__file__))[0]
-
-#our game object class
-class GameObject:
- def __init__(self, image, height, speed):
- self.speed = speed
- self.image = image
- self.pos = image.get_rect().move(0, height)
- def move(self):
- self.pos = self.pos.move(self.speed, 0)
- if self.pos.right > 600:
- self.pos.left = 0
-
-
-#quick function to load an image
-def load_image(name):
- path = os.path.join(main_dir, 'data', name)
- return pygame.image.load(path).convert()
-
-
-#here's the full code
-def main():
- pygame.init()
- screen = pygame.display.set_mode((640, 480))
-
- player = load_image('player1.gif')
- background = load_image('liquid.bmp')
-
- # scale the background image so that it fills the window and
- # successfully overwrites the old sprite position.
- background = pygame.transform.scale2x(background)
- background = pygame.transform.scale2x(background)
-
- screen.blit(background, (0, 0))
-
- objects = []
- for x in range(10):
- o = GameObject(player, x*40, x)
- objects.append(o)
-
- while 1:
- for event in pygame.event.get():
- if event.type in (QUIT, KEYDOWN):
- return
-
- for o in objects:
- screen.blit(background, o.pos, o.pos)
- for o in objects:
- o.move()
- screen.blit(o.image, o.pos)
-
- pygame.display.update()
-
-
-
-if __name__ == '__main__': main()
diff --git a/pygame/examples/movieplayer.py b/pygame/examples/movieplayer.py
deleted file mode 100755
index 4c690d0..0000000
--- a/pygame/examples/movieplayer.py
+++ /dev/null
@@ -1,57 +0,0 @@
-#!/usr/bin/env python
-
-import pygame
-from pygame.locals import *
-
-import sys
-try:
- from cStringIO import StringIO as BytesIO
-except ImportError:
- from io import BytesIO
-from pygame.compat import unicode_
-
-QUIT_CHAR = unicode_('q')
-
-usage = """\
-python movieplayer.py <movie file>
-
-A simple movie player that plays an MPEG movie in a Pygame window. It showcases
-the pygame.movie module. The window adjusts to the size of the movie image. It
-is given a boarder to demonstrate that a movie can play autonomously in a sub-
-window. Also, the file is copied to a file like object to show that not just
-Python files can be used as a movie source.
-
-"""
-
-def main(filepath):
- pygame.init()
- pygame.mixer.quit()
-
- f = BytesIO(open(filepath, 'rb').read())
- movie = pygame.movie.Movie(f)
- w, h = movie.get_size()
- w = int(w * 1.3 + 0.5)
- h = int(h * 1.3 + 0.5)
- wsize = (w+10, h+10)
- msize = (w, h)
- screen = pygame.display.set_mode(wsize)
- movie.set_display(screen, Rect((5, 5), msize))
-
- pygame.event.set_allowed((QUIT, KEYDOWN))
- pygame.time.set_timer(USEREVENT, 1000)
- movie.play()
- while movie.get_busy():
- evt = pygame.event.wait()
- if evt.type == QUIT:
- break
- if evt.type == KEYDOWN and evt.unicode == QUIT_CHAR:
- break
- if movie.get_busy():
- movie.stop()
- pygame.time.set_timer(USEREVENT, 0)
-
-if __name__ == '__main__':
- if len(sys.argv) != 2:
- print (usage)
- else:
- main(sys.argv[1])
diff --git a/pygame/examples/oldalien.py b/pygame/examples/oldalien.py
deleted file mode 100755
index d1f6d9f..0000000
--- a/pygame/examples/oldalien.py
+++ /dev/null
@@ -1,237 +0,0 @@
-#!/usr/bin/env python
-
-"""This is a much simpler version of the aliens.py
-example. It makes a good place for beginners to get
-used to the way pygame works. Gameplay is pretty similar,
-but there are a lot less object types to worry about,
-and it makes no attempt at using the optional pygame
-modules.
-It does provide a good method for using the updaterects
-to only update the changed parts of the screen, instead of
-the entire screen surface. This has large speed benefits
-and should be used whenever the fullscreen isn't being changed."""
-
-
-#import
-import random, os.path, sys
-import pygame
-from pygame.locals import *
-
-if not pygame.image.get_extended():
- raise SystemExit("Requires the extended image loading from SDL_image")
-
-
-#constants
-FRAMES_PER_SEC = 40
-PLAYER_SPEED = 12
-MAX_SHOTS = 2
-SHOT_SPEED = 10
-ALIEN_SPEED = 12
-ALIEN_ODDS = 45
-EXPLODE_TIME = 6
-SCREENRECT = Rect(0, 0, 640, 480)
-
-
-#some globals for friendly access
-dirtyrects = [] # list of update_rects
-next_tick = 0 # used for timing
-class Img: pass # container for images
-main_dir = os.path.split(os.path.abspath(__file__))[0] # Program's diretory
-
-
-#first, we define some utility functions
-
-def load_image(file, transparent):
- "loads an image, prepares it for play"
- file = os.path.join(main_dir, 'data', file)
- try:
- surface = pygame.image.load(file)
- except pygame.error:
- raise SystemExit('Could not load image "%s" %s' %
- (file, pygame.get_error()))
- if transparent:
- corner = surface.get_at((0, 0))
- surface.set_colorkey(corner, RLEACCEL)
- return surface.convert()
-
-
-
-# The logic for all the different sprite types
-
-class Actor:
- "An enhanced sort of sprite class"
- def __init__(self, image):
- self.image = image
- self.rect = image.get_rect()
-
- def update(self):
- "update the sprite state for this frame"
- pass
-
- def draw(self, screen):
- "draws the sprite into the screen"
- r = screen.blit(self.image, self.rect)
- dirtyrects.append(r)
-
- def erase(self, screen, background):
- "gets the sprite off of the screen"
- r = screen.blit(background, self.rect, self.rect)
- dirtyrects.append(r)
-
-
-class Player(Actor):
- "Cheer for our hero"
- def __init__(self):
- Actor.__init__(self, Img.player)
- self.alive = 1
- self.reloading = 0
- self.rect.centerx = SCREENRECT.centerx
- self.rect.bottom = SCREENRECT.bottom - 10
-
- def move(self, direction):
- self.rect = self.rect.move(direction*PLAYER_SPEED, 0).clamp(SCREENRECT)
-
-
-class Alien(Actor):
- "Destroy him or suffer"
- def __init__(self):
- Actor.__init__(self, Img.alien)
- self.facing = random.choice((-1,1)) * ALIEN_SPEED
- if self.facing < 0:
- self.rect.right = SCREENRECT.right
-
- def update(self):
- global SCREENRECT
- self.rect[0] = self.rect[0] + self.facing
- if not SCREENRECT.contains(self.rect):
- self.facing = -self.facing;
- self.rect.top = self.rect.bottom + 3
- self.rect = self.rect.clamp(SCREENRECT)
-
-
-class Explosion(Actor):
- "Beware the fury"
- def __init__(self, actor):
- Actor.__init__(self, Img.explosion)
- self.life = EXPLODE_TIME
- self.rect.center = actor.rect.center
-
- def update(self):
- self.life = self.life - 1
-
-
-class Shot(Actor):
- "The big payload"
- def __init__(self, player):
- Actor.__init__(self, Img.shot)
- self.rect.centerx = player.rect.centerx
- self.rect.top = player.rect.top - 10
-
- def update(self):
- self.rect.top = self.rect.top - SHOT_SPEED
-
-
-
-
-def main():
- "Run me for adrenaline"
- global dirtyrects
-
- # Initialize SDL components
- pygame.init()
- screen = pygame.display.set_mode(SCREENRECT.size, 0)
- clock = pygame.time.Clock()
-
- # Load the Resources
- Img.background = load_image('background.gif', 0)
- Img.shot = load_image('shot.gif', 1)
- Img.bomb = load_image('bomb.gif', 1)
- Img.danger = load_image('danger.gif', 1)
- Img.alien = load_image('alien1.gif', 1)
- Img.player = load_image('oldplayer.gif', 1)
- Img.explosion = load_image('explosion1.gif', 1)
-
- # Create the background
- background = pygame.Surface(SCREENRECT.size)
- for x in range(0, SCREENRECT.width, Img.background.get_width()):
- background.blit(Img.background, (x, 0))
- screen.blit(background, (0,0))
- pygame.display.flip()
-
- # Initialize Game Actors
- player = Player()
- aliens = [Alien()]
- shots = []
- explosions = []
-
- # Main loop
- while player.alive or explosions:
- clock.tick(FRAMES_PER_SEC)
-
- # Gather Events
- pygame.event.pump()
- keystate = pygame.key.get_pressed()
- if keystate[K_ESCAPE] or pygame.event.peek(QUIT):
- break
-
- # Clear screen and update actors
- for actor in [player] + aliens + shots + explosions:
- actor.erase(screen, background)
- actor.update()
-
- # Clean Dead Explosions and Bullets
- for e in explosions:
- if e.life <= 0:
- explosions.remove(e)
- for s in shots:
- if s.rect.top <= 0:
- shots.remove(s)
-
- # Move the player
- direction = keystate[K_RIGHT] - keystate[K_LEFT]
- player.move(direction)
-
- # Create new shots
- if not player.reloading and keystate[K_SPACE] and len(shots) < MAX_SHOTS:
- shots.append(Shot(player))
- player.reloading = keystate[K_SPACE]
-
- # Create new alien
- if not int(random.random() * ALIEN_ODDS):
- aliens.append(Alien())
-
- # Detect collisions
- alienrects = []
- for a in aliens:
- alienrects.append(a.rect)
-
- hit = player.rect.collidelist(alienrects)
- if hit != -1:
- alien = aliens[hit]
- explosions.append(Explosion(alien))
- explosions.append(Explosion(player))
- aliens.remove(alien)
- player.alive = 0
- for shot in shots:
- hit = shot.rect.collidelist(alienrects)
- if hit != -1:
- alien = aliens[hit]
- explosions.append(Explosion(alien))
- shots.remove(shot)
- aliens.remove(alien)
- break
-
- # Draw everybody
- for actor in [player] + aliens + shots + explosions:
- actor.draw(screen)
-
- pygame.display.update(dirtyrects)
- dirtyrects = []
-
- pygame.time.wait(50)
-
-
-#if python says run, let's run!
-if __name__ == '__main__':
- main()
-
diff --git a/pygame/examples/overlay.py b/pygame/examples/overlay.py
deleted file mode 100755
index 8329071..0000000
--- a/pygame/examples/overlay.py
+++ /dev/null
@@ -1,62 +0,0 @@
-#!/usr/bin/env python
-
-import sys
-import pygame
-from pygame.compat import xrange_
-
-SR= (800,600)
-ovl= None
-
-########################################################################
-# Simple video player
-def vPlayer( fName ):
- global ovl
- f= open( fName, 'rb' )
- fmt= f.readline().strip()
- res= f.readline().strip()
- col= f.readline().strip()
- if fmt!= "P5":
- print ('Unknown format( len %d ). Exiting...' % len( fmt ))
- return
-
- w,h= [ int(x) for x in res.split( ' ' ) ]
- h= ( h* 2 )/ 3
- # Read into strings
- y= f.read( w*h )
- u= []
- v= []
- for i in xrange_( 0, h/2 ):
- u.append( f.read( w/2 ))
- v.append( f.read( w/2 ))
-
- u= ''.join(u)
- v= ''.join(v)
-
- # Open overlay with the resolution specified
- ovl= pygame.Overlay(pygame.YV12_OVERLAY, (w,h))
- ovl.set_location(0, 0, w, h)
-
- ovl.display((y,u,v))
- while 1:
- pygame.time.wait(10)
- for ev in pygame.event.get():
- if ev.type in (pygame.KEYDOWN, pygame.QUIT):
- return
-
-
-def main(fname):
- """play video file fname"""
- pygame.init()
- try:
- pygame.display.set_mode(SR)
- vPlayer(fname)
- finally:
- pygame.quit()
-
-# Test all modules
-if __name__== '__main__':
- if len( sys.argv )!= 2:
- print ("Usage: play_file <file_pattern>")
- else:
- main(sys.argv[1])
-
diff --git a/pygame/examples/pixelarray.py b/pygame/examples/pixelarray.py
deleted file mode 100755
index d4f06a8..0000000
--- a/pygame/examples/pixelarray.py
+++ /dev/null
@@ -1,114 +0,0 @@
-#!/usr/bin/env python
-import os, pygame
-from pygame.compat import xrange_
-
-main_dir = os.path.split(os.path.abspath(__file__))[0]
-data_dir = os.path.join(main_dir, 'data')
-
-def show (image):
- screen = pygame.display.get_surface()
- screen.fill ((255, 255, 255))
- screen.blit (image, (0, 0))
- pygame.display.flip ()
- while 1:
- event = pygame.event.wait ()
- if event.type == pygame.QUIT:
- raise SystemExit
- if event.type == pygame.MOUSEBUTTONDOWN:
- break
-
-def main():
- pygame.init ()
-
- pygame.display.set_mode ((255, 255))
- surface = pygame.Surface ((255, 255))
-
- pygame.display.flip ()
-
- # Create the PixelArray.
- ar = pygame.PixelArray (surface)
- r, g, b = 0, 0, 0
- # Do some easy gradient effect.
- for y in xrange_ (255):
- r, g, b = y, y, y
- ar[:,y] = (r, g, b)
- del ar
- show (surface)
-
- # We have made some gradient effect, now flip it.
- ar = pygame.PixelArray (surface)
- ar[:] = ar[:,::-1]
- del ar
- show (surface)
-
- # Every second column will be made blue
- ar = pygame.PixelArray (surface)
- ar[::2] = (0, 0, 255)
- del ar
- show (surface)
-
- # Every second row will be made green
- ar = pygame.PixelArray (surface)
- ar[:,::2] = (0, 255, 0)
- del ar
- show (surface)
-
- # Manipulate the image. Flip it around the y axis.
- surface = pygame.image.load (os.path.join (data_dir, 'arraydemo.bmp'))
- ar = pygame.PixelArray (surface)
- ar[:] = ar[:,::-1]
- del ar
- show (surface)
-
- # Flip the image around the x axis.
- ar = pygame.PixelArray (surface)
- ar[:] = ar[::-1,:]
- del ar
- show (surface)
-
- # Every second column will be made white.
- ar = pygame.PixelArray (surface)
- ar[::2] = (255, 255, 255)
- del ar
- show (surface)
-
- # Flip the image around both axes, restoring it's original layout.
- ar = pygame.PixelArray (surface)
- ar[:] = ar[::-1,::-1]
- del ar
- show (surface)
-
- # Scale it by throwing each second pixel away.
- surface = pygame.image.load (os.path.join (data_dir, 'arraydemo.bmp'))
- ar = pygame.PixelArray (surface)
- sf2 = ar[::2,::2].make_surface ()
- del ar
- show (sf2)
-
- # Replace anything looking like the blue color from the text.
- ar = pygame.PixelArray (surface)
- ar.replace ((60, 60, 255), (0, 255, 0), 0.06)
- del ar
- show (surface)
-
- # Extract anything which might be somewhat black.
- surface = pygame.image.load (os.path.join (data_dir, 'arraydemo.bmp'))
- ar = pygame.PixelArray (surface)
- ar2 = ar.extract ((0, 0, 0), 0.07)
- sf2 = ar2.surface
- del ar, ar2
- show (sf2)
-
- # Compare two images.
- surface = pygame.image.load (os.path.join (data_dir, 'alien1.gif'))
- surface2 = pygame.image.load (os.path.join (data_dir, 'alien2.gif'))
- ar1 = pygame.PixelArray (surface)
- ar2 = pygame.PixelArray (surface2)
- ar3 = ar1.compare (ar2, 0.07)
- sf3 = ar3.surface
- del ar1, ar2, ar3
- show (sf3)
-
-if __name__ == '__main__':
- main()
-
diff --git a/pygame/examples/readme.txt b/pygame/examples/readme.txt
deleted file mode 100755
index e3da68e..0000000
--- a/pygame/examples/readme.txt
+++ /dev/null
@@ -1,65 +0,0 @@
-These examples should help get you started with pyGame. Here is a
-brief rundown of what you get. The source code for these examples
-is in the public domain. Feel free to use for your own projects.
-
-uberball.py - This was added for pygame-1.5. It is a more complete
- game, similar to breakout. Derived from the pygame chimp example
- it shows how to do menu screens and a more complete game.
-
-aliens.py - This started off as a port of the SDL demonstration,
- Aliens. Now it has evolved into something sort of resembling
- fun. This demonstrates a lot of different uses of sprites and
- optimized blitting. Also transparancy, colorkeys, fonts, sound,
- music, joystick, and more. (PS, my high score is 117! goodluck)
-
-oldalien.py - This more closely resembles a port of the SDL Aliens
- demo. The code is a lot simpler, so it makes a better starting
- point for people looking at code for the first times. These
- blitting routines are not as optimized as they should/could be,
- but the code is easier to follow, and it plays quick enough.
-
-stars.py - A simple starfield example. You can change the center of
- perspective by leftclicking the mouse on the screen.
-
-fonty.py - Super quick, super simple application demonstrating
- the different ways to render fonts with the font module
-
-vgrade.py - Demonstrates creating a vertical gradient with
- Numeric python. The app will create a new gradient every half
- second and report the time needed to create and display the
- image. If you're not prepared to start working with the
- Numeric arrays, don't worry about the source for this one :]
-
-arraydemo.py - Another example filled with various surfarray
- effects. It requires the surfarray and image modules to
- be installed. This little demo can also make a good starting
- point for any of your own tests with surfarray
-
-sound.py - Extremely basic testing of the mixer module. Load a
- sound and play it. All from the command shell, no graphics.
-
-liquid.py - This example was created in a quick comparison with the
- BlitzBasic gaming language. Nonetheless, it demonstrates a quick
- 8-bit setup (with colormap).
-
-glcube.py - Using PyOpenGL and Pygame, this creates a spinning 3D
- multicolored cube.
-
-scrap_clipboard.py - A simple demonstration example for the clipboard support.
-
-data/ - directory with the resources for the examples
-
-
-
-We're always on the lookout for more examples and/or example
-requests. Code like this is probably the best way to start
-getting involved with python gaming.
-
-
-Pete Shinners
-shredwheat@mediaone.net
-
-
-pySDL : http://pysdl.sourceforge.net
-SDL : http://www.libsdl.org
-aliens.c : http://www.libsdl.org/projects/aliens
diff --git a/pygame/examples/scaletest.py b/pygame/examples/scaletest.py
deleted file mode 100755
index a0a564a..0000000
--- a/pygame/examples/scaletest.py
+++ /dev/null
@@ -1,121 +0,0 @@
-#!/usr/bin/env python
-
-import sys, time
-import pygame
-
-def main(imagefile, convert_alpha=False, run_speed_test=False):
- """show an interactive image scaler
-
- arguemnts:
- imagefile - name of source image (required)
- convert_alpha - use convert_alpha() on the surf (default False)
- run_speed_test - (default False)
-
- """
-
- bSpeedTest = run_speed_test
- # initialize display
- pygame.display.init()
- # load background image
- background = pygame.image.load(imagefile)
- if convert_alpha:
- screen = pygame.display.set_mode((1024, 768), pygame.FULLSCREEN)
- background = background.convert_alpha()
-
- if bSpeedTest:
- SpeedTest(background)
- return
- screen = pygame.display.set_mode((1024, 768), pygame.FULLSCREEN)
- # start fullscreen mode
- # turn off the mouse pointer
- pygame.mouse.set_visible(0)
- # main loop
- bRunning = True
- bUp = False
- bDown = False
- bLeft = False
- bRight = False
- cursize = [background.get_width(), background.get_height()]
- while(bRunning):
- image = pygame.transform.smoothscale(background, cursize)
- imgpos = image.get_rect(centerx=512, centery=384)
- screen.fill((255,255,255))
- screen.blit(image, imgpos)
- pygame.display.flip()
- for event in pygame.event.get():
- if event.type == pygame.QUIT or (event.type == pygame.KEYDOWN and event.key == pygame.K_ESCAPE):
- bRunning = False
- if event.type == pygame.KEYDOWN:
- if event.key == pygame.K_UP: bUp = True
- if event.key == pygame.K_DOWN: bDown = True
- if event.key == pygame.K_LEFT: bLeft = True
- if event.key == pygame.K_RIGHT: bRight = True
- if event.type == pygame.KEYUP:
- if event.key == pygame.K_UP: bUp = False
- if event.key == pygame.K_DOWN: bDown = False
- if event.key == pygame.K_LEFT: bLeft = False
- if event.key == pygame.K_RIGHT: bRight = False
- if bUp:
- cursize[1] -= 2
- if cursize[1] < 1: cursize[1] = 1
- if bDown:
- cursize[1] += 2
- if bLeft:
- cursize[0] -= 2
- if cursize[0] < 1: cursize[0] = 1
- if bRight:
- cursize[0] += 2
-
-
-def SpeedTest(image):
- print ("Smoothscale Speed Test - Image Size %s\n" % str(image.get_size()))
- imgsize = [image.get_width(), image.get_height()]
- duration = 0.0
- for i in range(128):
- shrinkx = (imgsize[0] * i) / 128
- shrinky = (imgsize[1] * i) / 128
- start = time.time()
- tempimg = pygame.transform.smoothscale(image, (shrinkx, shrinky))
- duration += (time.time() - start)
- del tempimg
- print ("Average smooth shrink time: %i milliseconds." % int((duration / 128) * 1000))
- duration = 0
- for i in range(128):
- expandx = (imgsize[0] * (i + 129)) / 128
- expandy = (imgsize[1] * (i + 129)) / 128
- start = time.time()
- tempimg = pygame.transform.smoothscale(image, (expandx, expandy))
- duration += (time.time() - start)
- del tempimg
- print ("Average smooth expand time: %i milliseconds." % int((duration / 128) * 1000))
- duration = 0.0
- for i in range(128):
- shrinkx = (imgsize[0] * i) / 128
- shrinky = (imgsize[1] * i) / 128
- start = time.time()
- tempimg = pygame.transform.scale(image, (shrinkx, shrinky))
- duration += (time.time() - start)
- del tempimg
- print ("Average jaggy shrink time: %i milliseconds." % int((duration / 128) * 1000))
- duration = 0
- for i in range(128):
- expandx = (imgsize[0] * (i + 129)) / 128
- expandy = (imgsize[1] * (i + 129)) / 128
- start = time.time()
- tempimg = pygame.transform.scale(image, (expandx, expandy))
- duration += (time.time() - start)
- del tempimg
- print ("Average jaggy expand time: %i milliseconds." % int((duration / 128) * 1000))
-
-
-
-if __name__ == '__main__':
- # check input parameters
- if len(sys.argv) < 2:
- print ("Usage: %s ImageFile [-t] [-convert_alpha]" % sys.argv[0])
- print (" [-t] = Run Speed Test\n")
- print (" [-convert_alpha] = Use convert_alpha() on the surf.\n")
- else:
- main(sys.argv[1],
- convert_alpha = '-convert_alpha' in sys.argv,
- run_speed_test = '-t' in sys.argv)
diff --git a/pygame/examples/scrap_clipboard.py b/pygame/examples/scrap_clipboard.py
deleted file mode 100755
index d2686af..0000000
--- a/pygame/examples/scrap_clipboard.py
+++ /dev/null
@@ -1,82 +0,0 @@
-#!/usr/bin/env python
-"""
-Demonstrates the clipboard capabilities of pygame.
-"""
-import os
-
-import pygame
-from pygame.locals import *
-import pygame.scrap as scrap
-import StringIO
-
-def usage ():
- print ("Press the 'g' key to get all of the current clipboard data")
- print ("Press the 'p' key to put a string into the clipboard")
- print ("Press the 'a' key to get a list of the currently available types")
- print ("Press the 'i' key to put an image into the clipboard")
-
-main_dir = os.path.split(os.path.abspath(__file__))[0]
-
-pygame.init ()
-screen = pygame.display.set_mode ((200, 200))
-c = pygame.time.Clock ()
-going = True
-
-# Initialize the scrap module and use the clipboard mode.
-scrap.init ()
-scrap.set_mode (SCRAP_CLIPBOARD)
-
-usage ()
-
-while going:
- for e in pygame.event.get ():
- if e.type == QUIT or (e.type == KEYDOWN and e.key == K_ESCAPE):
- going = False
-
- elif e.type == KEYDOWN and e.key == K_g:
- # This means to look for data.
- print ("Getting the different clipboard data..")
- for t in scrap.get_types ():
- r = scrap.get (t)
- if r and len (r) > 500:
- print ("Type %s : (large buffer)" % t)
- else:
- print ("Type %s : %s" % (t, r))
- if "image" in t:
- namehint = t.split("/")[1]
- if namehint in ['bmp', 'png', 'jpg']:
- f = StringIO.StringIO(r)
- loaded_surf = pygame.image.load(f, "." + namehint)
- screen.blit(loaded_surf, (0,0))
-
-
- elif e.type == KEYDOWN and e.key == K_p:
- # Place some text into the selection.
- print ("Placing clipboard text.")
- scrap.put (SCRAP_TEXT, "Hello. This is a message from scrap.")
-
- elif e.type == KEYDOWN and e.key == K_a:
- # Get all available types.
- print ("Getting the available types from the clipboard.")
- types = scrap.get_types ()
- print (types)
- if len (types) > 0:
- print ("Contains %s: %s" % (types[0], scrap.contains (types[0])))
- print ("Contains _INVALID_: ", scrap.contains ("_INVALID_"))
-
- elif e.type == KEYDOWN and e.key == K_i:
- print ("Putting image into the clipboard.")
- scrap.set_mode (SCRAP_CLIPBOARD)
- fp = open (os.path.join(main_dir, 'data', 'liquid.bmp'), 'rb')
- buf = fp.read ()
- scrap.put ("image/bmp", buf)
- fp.close ()
-
- elif e.type in (KEYDOWN, MOUSEBUTTONDOWN):
- usage ()
- pygame.display.flip()
- c.tick(40)
-
-
-
-
diff --git a/pygame/examples/scroll.py b/pygame/examples/scroll.py
deleted file mode 100755
index 1d4a9d6..0000000
--- a/pygame/examples/scroll.py
+++ /dev/null
@@ -1,195 +0,0 @@
-#!/usr/bin/env python
-
-"""An zoomed image viewer that demonstrates Surface.scroll
-
-This example shows a scrollable image that has a zoom factor of eight.
-It uses the Surface.scroll function to shift the image on the display
-surface. A clip rectangle protects a margin area. If called as a function,
-the example accepts an optional image file path. If run as a program
-it takes an optional file path command line argument. If no file
-is provided a default image file is used.
-
-When running click on a black triangle to move one pixel in the direction
-the triangle points. Or use the arrow keys. Close the window or press ESC
-to quit.
-
-"""
-
-import sys
-import os
-
-import pygame
-from pygame.transform import scale
-from pygame.locals import *
-
-main_dir = os.path.dirname(os.path.abspath(__file__))
-
-DIR_UP = 1
-DIR_DOWN = 2
-DIR_LEFT = 3
-DIR_RIGHT = 4
-
-zoom_factor = 8
-
-def draw_arrow(surf, color, posn, direction):
- x, y = posn
- if direction == DIR_UP:
- pointlist = ((x - 29, y + 30), (x + 30, y + 30),
- (x + 1, y - 29), (x, y - 29))
- elif direction == DIR_DOWN:
- pointlist = ((x - 29, y - 29), (x + 30, y - 29),
- (x + 1, y + 30), (x, y + 30))
- elif direction == DIR_LEFT:
- pointlist = ((x + 30, y - 29), (x + 30, y + 30),
- (x - 29, y + 1), (x - 29, y))
- else:
- pointlist = ((x - 29, y - 29), (x - 29, y + 30),
- (x + 30, y + 1), (x + 30, y))
- pygame.draw.polygon(surf, color, pointlist)
-
-def add_arrow_button(screen, regions, posn, direction):
- draw_arrow(screen, Color('black'), posn, direction)
- draw_arrow(regions, (direction, 0, 0), posn, direction)
-
-def scroll_view(screen, image, direction, view_rect):
- dx = dy = 0
- src_rect = None
- zoom_view_rect = screen.get_clip()
- image_w, image_h = image.get_size()
- if direction == DIR_UP:
- if view_rect.top > 0:
- screen.scroll(dy=zoom_factor)
- view_rect.move_ip(0, -1)
- src_rect = view_rect.copy()
- src_rect.h = 1
- dst_rect = zoom_view_rect.copy()
- dst_rect.h = zoom_factor
- elif direction == DIR_DOWN:
- if view_rect.bottom < image_h:
- screen.scroll(dy=-zoom_factor)
- view_rect.move_ip(0, 1)
- src_rect = view_rect.copy()
- src_rect.h = 1
- src_rect.bottom = view_rect.bottom
- dst_rect = zoom_view_rect.copy()
- dst_rect.h = zoom_factor
- dst_rect.bottom = zoom_view_rect.bottom
- elif direction == DIR_LEFT:
- if view_rect.left > 0:
- screen.scroll(dx=zoom_factor)
- view_rect.move_ip(-1, 0)
- src_rect = view_rect.copy()
- src_rect.w = 1
- dst_rect = zoom_view_rect.copy()
- dst_rect.w = zoom_factor
- elif direction == DIR_RIGHT:
- if view_rect.right < image_w:
- screen.scroll(dx=-zoom_factor)
- view_rect.move_ip(1, 0)
- src_rect = view_rect.copy()
- src_rect.w = 1
- src_rect.right = view_rect.right
- dst_rect = zoom_view_rect.copy()
- dst_rect.w = zoom_factor
- dst_rect.right = zoom_view_rect.right
- if src_rect is not None:
- scale(image.subsurface(src_rect),
- dst_rect.size,
- screen.subsurface(dst_rect))
- pygame.display.update(zoom_view_rect)
-
-def main(image_file=None):
- if image_file is None:
- image_file = os.path.join(main_dir, 'data', 'arraydemo.bmp')
- margin = 80
- view_size = (30, 20)
- zoom_view_size = (view_size[0] * zoom_factor,
- view_size[1] * zoom_factor)
- win_size = (zoom_view_size[0] + 2 * margin,
- zoom_view_size[1] + 2 * margin)
- background_color = Color('beige')
-
- pygame.init()
-
- # set up key repeating so we can hold down the key to scroll.
- old_k_delay, old_k_interval = pygame.key.get_repeat ()
- pygame.key.set_repeat (500, 30)
-
- try:
- screen = pygame.display.set_mode(win_size)
- screen.fill(background_color)
- pygame.display.flip()
-
- image = pygame.image.load(image_file).convert()
- image_w, image_h = image.get_size()
-
- if image_w < view_size[0] or image_h < view_size[1]:
- print ("The source image is too small for this example.")
- print ("A %i by %i or larger image is required." % zoom_view_size)
- return
-
- regions = pygame.Surface(win_size, 0, 24)
- add_arrow_button(screen, regions,
- (40, win_size[1] // 2), DIR_LEFT)
- add_arrow_button(screen, regions,
- (win_size[0] - 40, win_size[1] // 2), DIR_RIGHT)
- add_arrow_button(screen, regions,
- (win_size[0] // 2, 40), DIR_UP)
- add_arrow_button(screen, regions,
- (win_size[0] // 2, win_size[1] - 40), DIR_DOWN)
- pygame.display.flip()
-
- screen.set_clip((margin, margin, zoom_view_size[0], zoom_view_size[1]))
-
- view_rect = Rect(0, 0, view_size[0], view_size[1])
-
- scale(image.subsurface(view_rect), zoom_view_size,
- screen.subsurface(screen.get_clip()))
- pygame.display.flip()
-
-
- # the direction we will scroll in.
- direction = None
-
- clock = pygame.time.Clock()
- clock.tick()
-
- going = True
- while going:
- # wait for events before doing anything.
- #events = [pygame.event.wait()] + pygame.event.get()
- events = pygame.event.get()
-
- for e in events:
- if e.type == KEYDOWN:
- if e.key == K_ESCAPE:
- going = False
- elif e.key == K_DOWN:
- scroll_view(screen, image, DIR_DOWN, view_rect)
- elif e.key == K_UP:
- scroll_view(screen, image, DIR_UP, view_rect)
- elif e.key == K_LEFT:
- scroll_view(screen, image, DIR_LEFT, view_rect)
- elif e.key == K_RIGHT:
- scroll_view(screen, image, DIR_RIGHT, view_rect)
- elif e.type == QUIT:
- going = False
- elif e.type == MOUSEBUTTONDOWN:
- direction = regions.get_at(e.pos)[0]
- elif e.type == MOUSEBUTTONUP:
- direction = None
-
- if direction:
- scroll_view(screen, image, direction, view_rect)
- clock.tick(30)
-
- finally:
- pygame.key.set_repeat (old_k_delay, old_k_interval)
- pygame.quit()
-
-if __name__ == '__main__':
- if len(sys.argv) > 1:
- image_file = sys.argv[1]
- else:
- image_file = None
- main(image_file)
diff --git a/pygame/examples/sound.py b/pygame/examples/sound.py
deleted file mode 100755
index 6fa32f9..0000000
--- a/pygame/examples/sound.py
+++ /dev/null
@@ -1,57 +0,0 @@
-#!/usr/bin/env python
-
-"""extremely simple demonstration playing a soundfile
-and waiting for it to finish. you'll need the pygame.mixer
-module for this to work. Note how in this simple example we
-don't even bother loading all of the pygame package. Just
-pick the mixer for sound and time for the delay function.
-
-Optional command line argument:
- the name of an audio file.
-
-
-"""
-
-import os.path, sys
-import pygame.mixer, pygame.time
-mixer = pygame.mixer
-time = pygame.time
-
-main_dir = os.path.split(os.path.abspath(__file__))[0]
-
-def main(file_path=None):
- """Play an audio file as a buffered sound sample
-
- Option argument:
- the name of an audio file (default data/secosmic_low.wav
-
- """
- if file_path is None:
- file_path = os.path.join(main_dir,
- 'data',
- 'secosmic_lo.wav')
-
- #choose a desired audio format
- mixer.init(11025) #raises exception on fail
-
-
- #load the sound
- sound = mixer.Sound(file_path)
-
-
- #start playing
- print ('Playing Sound...')
- channel = sound.play()
-
-
- #poll until finished
- while channel.get_busy(): #still playing
- print (' ...still going...')
- time.wait(1000)
- print ('...Finished')
-
-if __name__ == '__main__':
- if len(sys.argv) > 1:
- main(sys.argv[1])
- else:
- main()
diff --git a/pygame/examples/sound_array_demos.py b/pygame/examples/sound_array_demos.py
deleted file mode 100755
index 75c0ea4..0000000
--- a/pygame/examples/sound_array_demos.py
+++ /dev/null
@@ -1,300 +0,0 @@
-#!/usr/bin/env python
-"""
-Creates an echo effect an any Sound object.
-
-Uses sndarray and MumPy ( or Numeric) to create offset faded copies of the
-original sound. Currently it just uses hardcoded values for the
-number of echos and the delay. Easy for you to recreate as
-needed. The array packaged used can be specified by an optional
---numpy or --numeric command line option.
-
-version 2. changes:
-- Should work with different sample rates now.
-- put into a function.
-- Uses NumPy by default, but falls back on Numeric.
-
-"""
-
-__author__ = "Pete 'ShredWheat' Shinners, Rene Dudfield"
-__copyright__ = "Copyright (C) 2004 Pete Shinners, Copyright (C) 2005 Rene Dudfield"
-__license__ = "Public Domain"
-__version__ = "2.0"
-
-
-import sys
-import os.path
-import pygame.mixer, pygame.time, pygame.sndarray, pygame
-import pygame.surfarray, pygame.transform
-from pygame import sndarray, mixer
-
-import time
-from math import sin
-
-
-#mixer.init(44100, -16, 0)
-mixer.init()
-#mixer.init(11025, -16, 0)
-#mixer.init(11025)
-
-
-
-
-
-
-def make_echo(sound, samples_per_second, mydebug = True):
- """ returns a sound which is echoed of the last one.
- """
-
- echo_length = 3.5
-
- a1 = sndarray.array(sound)
- if mydebug:
- print ('SHAPE1: %s' % (a1.shape,))
-
- length = a1.shape[0]
-
- #myarr = zeros(length+12000)
- myarr = zeros(a1.shape, int32)
-
- if len(a1.shape) > 1:
- mult = a1.shape[1]
- size = (a1.shape[0] + int(echo_length * a1.shape[0]), a1.shape[1])
- #size = (a1.shape[0] + int(a1.shape[0] + (echo_length * 3000)), a1.shape[1])
- else:
- mult = 1
- size = (a1.shape[0] + int(echo_length * a1.shape[0]),)
- #size = (a1.shape[0] + int(a1.shape[0] + (echo_length * 3000)),)
-
- if mydebug:
- print (int(echo_length * a1.shape[0]))
- myarr = zeros(size, int32)
-
-
-
- if mydebug:
- print ("size %s" % (size,))
- print (myarr.shape)
- myarr[:length] = a1
- #print (myarr[3000:length+3000])
- #print (a1 >> 1)
- #print ("a1.shape %s" % (a1.shape,))
- #c = myarr[3000:length+(3000*mult)]
- #print ("c.shape %s" % (c.shape,))
-
- incr = int(samples_per_second / echo_length)
- gap = length
-
-
- myarr[incr:gap+incr] += a1>>1
- myarr[incr*2:gap+(incr*2)] += a1>>2
- myarr[incr*3:gap+(incr*3)] += a1>>3
- myarr[incr*4:gap+(incr*4)] += a1>>4
-
- if mydebug:
- print ('SHAPE2: %s' % (myarr.shape,))
-
-
- sound2 = sndarray.make_sound(myarr.astype(int16))
-
- return sound2
-
-
-def slow_down_sound(sound, rate):
- """ returns a sound which is a slowed down version of the original.
- rate - at which the sound should be slowed down. eg. 0.5 would be half speed.
- """
-
- raise NotImplementedError()
- grow_rate = 1 / rate
-
- # make it 1/rate times longer.
-
- a1 = sndarray.array(sound)
-
- surf = pygame.surfarray.make_surface(a1)
- print (a1.shape[0] * grow_rate)
- scaled_surf = pygame.transform.scale(surf, (int(a1.shape[0] * grow_rate), a1.shape[1]))
- print (scaled_surf)
- print (surf)
-
- a2 = a1 * rate
- print (a1.shape)
- print (a2.shape)
- print (a2)
- sound2 = sndarray.make_sound(a2.astype(int16))
- return sound2
-
-
-
-
-def sound_from_pos(sound, start_pos, samples_per_second = None, inplace = 1):
- """ returns a sound which begins at the start_pos.
- start_pos - in seconds from the begining.
- samples_per_second -
- """
-
- # see if we want to reuse the sound data or not.
- if inplace:
- a1 = pygame.sndarray.samples(sound)
- else:
- a1 = pygame.sndarray.array(sound)
-
- # see if samples per second has been given. If not, query the mixer.
- # eg. it might be set to 22050
- if samples_per_second is None:
- samples_per_second = pygame.mixer.get_init()[0]
-
- # figure out the start position in terms of samples.
- start_pos_in_samples = int(start_pos * samples_per_second)
-
- # cut the begining off the sound at the start position.
- a2 = a1[start_pos_in_samples:]
-
- # make the Sound instance from the array.
- sound2 = pygame.sndarray.make_sound(a2)
-
- return sound2
-
-
-
-
-def main(arraytype=None):
- """play various sndarray effects
-
- If arraytype is provided then use that array package. Valid
- values are 'numeric' or 'numpy'. Otherwise default to NumPy,
- or fall back on Numeric if NumPy is not installed.
-
- """
-
- global zeros, int16, int32
-
- main_dir = os.path.split(os.path.abspath(__file__))[0]
-
- if arraytype is None:
- if 'numpy' in sndarray.get_arraytypes():
- sndarray.use_arraytype('numpy')
- elif 'numeric' in sndarray.get_arraytype():
- sndarray.use_arraytype('numeric')
- else:
- raise ImportError('No array package is installed')
- else:
- sndarray.use_arraytype(arraytype)
- pygame.surfarray.use_arraytype(sndarray.get_arraytype())
-
- if sndarray.get_arraytype() == 'numpy':
- from numpy import zeros, int16, int32
- else:
- from Numeric import zeros, Int16 as int16, Int32 as int32
-
- print ("Using %s array package" % sndarray.get_arraytype())
- print ("mixer.get_init %s" % (mixer.get_init(),))
- inited = mixer.get_init()
-
- samples_per_second = pygame.mixer.get_init()[0]
-
-
-
- print (("-" * 30) + "\n")
- print ("loading sound")
- sound = mixer.Sound(os.path.join(main_dir, 'data', 'car_door.wav'))
-
-
-
- print ("-" * 30)
- print ("start positions")
- print ("-" * 30)
-
- start_pos = 0.1
- sound2 = sound_from_pos(sound, start_pos, samples_per_second)
-
- print ("sound.get_length %s" % (sound.get_length(),))
- print ("sound2.get_length %s" % (sound2.get_length(),))
- sound2.play()
- while mixer.get_busy():
- pygame.time.wait(200)
-
- print ("waiting 2 seconds")
- pygame.time.wait(2000)
- print ("playing original sound")
-
- sound.play()
- while mixer.get_busy():
- pygame.time.wait(200)
-
- print ("waiting 2 seconds")
- pygame.time.wait(2000)
-
-
-
- if 0:
- #TODO: this is broken.
- print (("-" * 30) + "\n")
- print ("Slow down the original sound.")
- rate = 0.2
- slowed_sound = slow_down_sound(sound, rate)
-
- slowed_sound.play()
- while mixer.get_busy():
- pygame.time.wait(200)
-
-
- print ("-" * 30)
- print ("echoing")
- print ("-" * 30)
-
- t1 = time.time()
- sound2 = make_echo(sound, samples_per_second)
- print ("time to make echo %i" % (time.time() - t1,))
-
-
- print ("original sound")
- sound.play()
- while mixer.get_busy():
- pygame.time.wait(200)
-
- print ("echoed sound")
- sound2.play()
- while mixer.get_busy():
- pygame.time.wait(200)
-
-
- sound = mixer.Sound(os.path.join(main_dir, 'data', 'secosmic_lo.wav'))
-
- t1 = time.time()
- sound3 = make_echo(sound, samples_per_second)
- print ("time to make echo %i" % (time.time() - t1,))
-
- print ("original sound")
- sound.play()
- while mixer.get_busy():
- pygame.time.wait(200)
-
-
- print ("echoed sound")
- sound3.play()
- while mixer.get_busy():
- pygame.time.wait(200)
-
-
-def usage():
- print ("Usage: command line option [--numpy|--numeric]")
- print (" The default is to use NumPy if installed,")
- print (" otherwise Numeric")
-
-if __name__ == '__main__':
- if len(sys.argv) == 2:
- if '--numpy' in sys.argv:
- main('numpy')
- elif '--numeric' in sys.argv:
- main('numeric')
- else:
- usage()
- elif len(sys.argv) == 1:
- main()
- else:
- usage()
-
-
-
-
diff --git a/pygame/examples/stars.py b/pygame/examples/stars.py
deleted file mode 100755
index 22e5ef6..0000000
--- a/pygame/examples/stars.py
+++ /dev/null
@@ -1,95 +0,0 @@
-#!/usr/bin/env python
-
-"""A simple starfield example. Note you can move the 'center' of
-the starfield by leftclicking in the window. This example show
-the basics of creating a window, simple pixel plotting, and input
-event management"""
-
-
-import random, math, pygame
-from pygame.locals import *
-
-#constants
-WINSIZE = [640, 480]
-WINCENTER = [320, 240]
-NUMSTARS = 150
-
-
-def init_star():
- "creates new star values"
- dir = random.randrange(100000)
- velmult = random.random()*.6+.4
- vel = [math.sin(dir) * velmult, math.cos(dir) * velmult]
- return vel, WINCENTER[:]
-
-
-def initialize_stars():
- "creates a new starfield"
- stars = []
- for x in range(NUMSTARS):
- star = init_star()
- vel, pos = star
- steps = random.randint(0, WINCENTER[0])
- pos[0] = pos[0] + (vel[0] * steps)
- pos[1] = pos[1] + (vel[1] * steps)
- vel[0] = vel[0] * (steps * .09)
- vel[1] = vel[1] * (steps * .09)
- stars.append(star)
- move_stars(stars)
- return stars
-
-
-def draw_stars(surface, stars, color):
- "used to draw (and clear) the stars"
- for vel, pos in stars:
- pos = (int(pos[0]), int(pos[1]))
- surface.set_at(pos, color)
-
-
-def move_stars(stars):
- "animate the star values"
- for vel, pos in stars:
- pos[0] = pos[0] + vel[0]
- pos[1] = pos[1] + vel[1]
- if not 0 <= pos[0] <= WINSIZE[0] or not 0 <= pos[1] <= WINSIZE[1]:
- vel[:], pos[:] = init_star()
- else:
- vel[0] = vel[0] * 1.05
- vel[1] = vel[1] * 1.05
-
-
-def main():
- "This is the starfield code"
- #create our starfield
- random.seed()
- stars = initialize_stars()
- clock = pygame.time.Clock()
- #initialize and prepare screen
- pygame.init()
- screen = pygame.display.set_mode(WINSIZE)
- pygame.display.set_caption('pygame Stars Example')
- white = 255, 240, 200
- black = 20, 20, 40
- screen.fill(black)
-
- #main game loop
- done = 0
- while not done:
- draw_stars(screen, stars, black)
- move_stars(stars)
- draw_stars(screen, stars, white)
- pygame.display.update()
- for e in pygame.event.get():
- if e.type == QUIT or (e.type == KEYUP and e.key == K_ESCAPE):
- done = 1
- break
- elif e.type == MOUSEBUTTONDOWN and e.button == 1:
- WINCENTER[:] = list(e.pos)
- clock.tick(50)
-
-
-# if python says run, then we should run
-if __name__ == '__main__':
- main()
-
-
diff --git a/pygame/examples/testsprite.py b/pygame/examples/testsprite.py
deleted file mode 100755
index 123c0c1..0000000
--- a/pygame/examples/testsprite.py
+++ /dev/null
@@ -1,267 +0,0 @@
-#!/usr/bin/env python
-# like the testsprite.c that comes with sdl, this pygame version shows
-# lots of sprites moving around.
-
-
-import pygame, sys, os
-from pygame.locals import *
-from random import randint
-from time import time
-import pygame.joystick
-from pygame.compat import xrange_
-
-##import FastRenderGroup as FRG
-import pygame.sprite as FRG
-
-if "-psyco" in sys.argv:
- try:
- import psyco
- psyco.full()
- except Exception:
- print ("No psyco for you! psyco failed to import and run.")
-
-main_dir = os.path.split(os.path.abspath(__file__))[0]
-data_dir = os.path.join(main_dir, 'data')
-
-
-
-
-
-
-# use this to use update rects or not.
-# If the screen is mostly full, then update rects are not useful.
-update_rects = True
-if "-update_rects" in sys.argv:
- update_rects = True
-if "-noupdate_rects" in sys.argv:
- update_rects = False
-
-use_static = False
-if "-static" in sys.argv:
- use_static = True
-
-
-use_FastRenderGroup = False
-if "-FastRenderGroup" in sys.argv:
- update_rects = True
- use_FastRenderGroup = True
-
-
-flags = 0
-if "-flip" in sys.argv:
- flags ^= DOUBLEBUF
-
-if "-fullscreen" in sys.argv:
- flags ^= FULLSCREEN
-
-if "-sw" in sys.argv:
- flags ^= SWSURFACE
-
-use_rle = True
-
-if "-hw" in sys.argv:
- flags ^= HWSURFACE
- use_rle = False
-
-
-screen_dims = [640, 480]
-
-if "-height" in sys.argv:
- i = sys.argv.index("-height")
- screen_dims[1] = int(sys.argv[i+1])
-
-if "-width" in sys.argv:
- i = sys.argv.index("-width")
- screen_dims[0] = int(sys.argv[i+1])
-
-if "-alpha" in sys.argv:
- use_alpha = True
-else:
- use_alpha = False
-
-print (screen_dims)
-
-
-##class Thingy(pygame.sprite.Sprite):
-## images = None
-## def __init__(self):
-## pygame.sprite.Sprite.__init__(self)
-## self.image = Thingy.images[0]
-## self.rect = self.image.get_rect()
-## self.rect.x = randint(0, screen_dims[0])
-## self.rect.y = randint(0, screen_dims[1])
-## #self.vel = [randint(-10, 10), randint(-10, 10)]
-## self.vel = [randint(-1, 1), randint(-1, 1)]
-##
-## def move(self):
-## for i in [0, 1]:
-## nv = self.rect[i] + self.vel[i]
-## if nv >= screen_dims[i] or nv < 0:
-## self.vel[i] = -self.vel[i]
-## nv = self.rect[i] + self.vel[i]
-## self.rect[i] = nv
-
-class Thingy(FRG.DirtySprite):
- images = None
- def __init__(self):
-## pygame.sprite.Sprite.__init__(self)
- FRG.DirtySprite.__init__(self)
- self.image = Thingy.images[0]
- self.rect = self.image.get_rect()
- self.rect.x = randint(0, screen_dims[0])
- self.rect.y = randint(0, screen_dims[1])
- #self.vel = [randint(-10, 10), randint(-10, 10)]
- self.vel = [randint(-1, 1), randint(-1, 1)]
- self.dirty = 2
-
- def update(self):
- for i in [0, 1]:
- nv = self.rect[i] + self.vel[i]
- if nv >= screen_dims[i] or nv < 0:
- self.vel[i] = -self.vel[i]
- nv = self.rect[i] + self.vel[i]
- self.rect[i] = nv
-
-class Static(FRG.DirtySprite):
- images = None
- def __init__(self):
- FRG.DirtySprite.__init__(self)
- self.image = Static.images[0]
- self.rect = self.image.get_rect()
- self.rect.x = randint(0, 3*screen_dims[0]/4)
- self.rect.y = randint(0, 3*screen_dims[1]/4)
-
-
-
-def main(update_rects = True,
- use_static = False,
- use_FastRenderGroup = False,
- screen_dims = [640, 480],
- use_alpha = False,
- flags = 0,
- ):
- """Show lots of sprites moving around
-
- Optional keyword arguments:
- update_rects - use the RenderUpdate sprite group class (default True)
- use_static - include non-moving images (default False)
- use_FastRenderGroup - Use the FastRenderGroup sprite group (default False)
- screen_dims - Pygame window dimensions (default [640, 480])
- use_alpha - use alpha blending (default False)
- flags - additional display mode flags (default no addiontal flags)
-
- """
-
- if use_FastRenderGroup:
- update_rects = True
-
-
- #pygame.init()
- pygame.display.init()
-
-
-
- #if "-fast" in sys.argv:
-
- screen = pygame.display.set_mode(screen_dims, flags)
-
-
- # this is mainly for GP2X, so it can quit.
- pygame.joystick.init()
- num_joysticks = pygame.joystick.get_count()
- if num_joysticks > 0:
- stick = pygame.joystick.Joystick(0)
- stick.init() # now we will receive events for the joystick
-
-
- screen.fill([0,0,0])
- pygame.display.flip()
- sprite_surface = pygame.image.load(os.path.join(data_dir, "asprite.bmp"))
- sprite_surface2 = pygame.image.load(os.path.join(data_dir, "static.png"))
-
- if use_rle:
- sprite_surface.set_colorkey([0xFF, 0xFF, 0xFF], SRCCOLORKEY|RLEACCEL)
- sprite_surface2.set_colorkey([0xFF, 0xFF, 0xFF], SRCCOLORKEY|RLEACCEL)
- else:
- sprite_surface.set_colorkey([0xFF, 0xFF, 0xFF], SRCCOLORKEY)
- sprite_surface2.set_colorkey([0xFF, 0xFF, 0xFF], SRCCOLORKEY)
-
- if use_alpha:
- sprite_surface = sprite_surface.convert_alpha()
- sprite_surface2 = sprite_surface2.convert_alpha()
- else:
- sprite_surface = sprite_surface.convert()
- sprite_surface2 = sprite_surface2.convert()
-
- Thingy.images = [sprite_surface]
- if use_static:
- Static.images = [sprite_surface2]
-
- if len(sys.argv) > 1:
- try:
- numsprites = int(sys.argv[-1])
- except Exception:
- numsprites = 100
- else:
- numsprites = 100
- sprites = None
- if use_FastRenderGroup:
-## sprites = FRG.FastRenderGroup()
- sprites = FRG.LayeredDirty()
- else:
- if update_rects:
- sprites = pygame.sprite.RenderUpdates()
- else:
- sprites = pygame.sprite.Group()
-
- for i in xrange_(0, numsprites):
- if use_static and i%2==0:
- sprites.add(Static())
- sprites.add(Thingy())
-
- done = False
- frames = 0
- start = time()
-
- background = pygame.Surface(screen.get_size())
- background = background.convert()
- background.fill([0,0,0])
-
-
- while not done:
- if not update_rects:
- screen.fill([0,0,0])
-
-## for sprite in sprites:
-## sprite.move()
-
- if update_rects:
- sprites.clear(screen, background)
- sprites.update()
-
- rects = sprites.draw(screen)
- if update_rects:
- pygame.display.update(rects)
- else:
- pygame.display.flip()
-
-
- for event in pygame.event.get():
- if event.type in [KEYDOWN, QUIT, JOYBUTTONDOWN]:
- done = True
-
-
- frames += 1
- end = time()
- print ("FPS: %f" % (frames / ((end - start))))
- pygame.quit()
-
-
-
-if __name__ == "__main__":
- main( update_rects,
- use_static,
- use_FastRenderGroup,
- screen_dims,
- use_alpha,
- flags )
diff --git a/pygame/examples/vgrade.py b/pygame/examples/vgrade.py
deleted file mode 100755
index c277d23..0000000
--- a/pygame/examples/vgrade.py
+++ /dev/null
@@ -1,98 +0,0 @@
-#!/usr/bin/env python
-
-"""This example demonstrates creating an image with Numeric
-python, and displaying that through SDL. You can look at the
-method of importing numeric and pygame.surfarray. This method
-will fail 'gracefully' if it is not available.
-I've tried mixing in a lot of comments where the code might
-not be self explanatory, nonetheless it may still seem a bit
-strange. Learning to use numeric for images like this takes a
-bit of learning, but the payoff is extremely fast image
-manipulation in python.
-
-Just so you know how this breaks down. For each sampling of
-time, 30% goes to each creating the gradient and blitting the
-array. The final 40% goes to flipping/updating the display surface
-
-If using an SDL version at least 1.1.8 the window will have
-no border decorations.
-
-The code also demonstrates use of the timer events."""
-
-
-import os, pygame
-from pygame.locals import *
-
-try:
- from Numeric import *
- from RandomArray import *
-except ImportError:
- raise SystemExit('This example requires Numeric and the pygame surfarray module')
-
-pygame.surfarray.use_arraytype('numeric')
-
-timer = 0
-def stopwatch(message = None):
- "simple routine to time python code"
- global timer
- if not message:
- timer = pygame.time.get_ticks()
- return
- now = pygame.time.get_ticks()
- runtime = (now - timer)/1000.0 + .001
- print ("%s %s %s" %
- (message, runtime, ('seconds\t(%.2ffps)'%(1.0/runtime))))
- timer = now
-
-
-
-def VertGrad3D(surf, topcolor, bottomcolor):
- "creates a new 3d vertical gradient array"
- topcolor = array(topcolor, copy=0)
- bottomcolor = array(bottomcolor, copy=0)
- diff = bottomcolor - topcolor
- width, height = surf.get_size()
- # create array from 0.0 to 1.0 triplets
- column = arange(height, typecode=Float)/height
- column = repeat(column[:, NewAxis], [3], 1)
- # create a single column of gradient
- column = topcolor + (diff * column).astype(Int)
- # make the column a 3d image column by adding X
- column = column.astype(UnsignedInt8)[NewAxis,:,:]
- #3d array into 2d array
- column = pygame.surfarray.map_array(surf, column)
- # stretch the column into a full image
- return resize(column, (width, height))
-
-
-
-def DisplayGradient(surf):
- "choose random colors and show them"
- stopwatch()
- colors = randint(0, 255, (2, 3))
- grade = VertGrad3D(surf, colors[0], colors[1])
- pygame.surfarray.blit_array(surf, grade)
- pygame.display.flip()
- stopwatch('Gradient:')
-
-
-
-def main():
- pygame.init()
- size = 600, 400
- os.environ['SDL_VIDEO_CENTERED'] = '1'
- screen = pygame.display.set_mode(size, NOFRAME, 0)
-
- pygame.event.set_blocked(MOUSEMOTION) #keep our queue cleaner
- pygame.time.set_timer(USEREVENT, 500)
-
- while 1:
- event = pygame.event.wait()
- if event.type in (QUIT, KEYDOWN, MOUSEBUTTONDOWN):
- break
- elif event.type == USEREVENT:
- DisplayGradient(screen)
-
-
-
-if __name__ == '__main__': main()
diff --git a/pythonAPI/butiaAPI.py b/pythonAPI/butiaAPI.py
index 457f10b..457f10b 100644..100755
--- a/pythonAPI/butiaAPI.py
+++ b/pythonAPI/butiaAPI.py
diff --git a/pythonAPI/butiaRemoto.py b/pythonAPI/butiaRemoto.py
index 86e7637..86e7637 100644..100755
--- a/pythonAPI/butiaRemoto.py
+++ b/pythonAPI/butiaRemoto.py
diff --git a/pythonAPI/butiaRemotoAccelOpenMoko.py b/pythonAPI/butiaRemotoAccelOpenMoko.py
index 5ea8696..5ea8696 100644..100755
--- a/pythonAPI/butiaRemotoAccelOpenMoko.py
+++ b/pythonAPI/butiaRemotoAccelOpenMoko.py
diff --git a/pythonAPI/python_socket.py b/pythonAPI/python_socket.py
index be1428f..be1428f 100644..100755
--- a/pythonAPI/python_socket.py
+++ b/pythonAPI/python_socket.py
diff --git a/pythonAPI/test_boton4.py b/pythonAPI/test_boton4.py
index f815404..f815404 100644..100755
--- a/pythonAPI/test_boton4.py
+++ b/pythonAPI/test_boton4.py
diff --git a/pythonAPI/test_butiaAPI.py b/pythonAPI/test_butiaAPI.py
index 0338b62..0338b62 100644..100755
--- a/pythonAPI/test_butiaAPI.py
+++ b/pythonAPI/test_butiaAPI.py
diff --git a/pythonAPI/test_butiaAPI_modulos.py b/pythonAPI/test_butiaAPI_modulos.py
index 9ab7d48..9ab7d48 100644..100755
--- a/pythonAPI/test_butiaAPI_modulos.py
+++ b/pythonAPI/test_butiaAPI_modulos.py
diff --git a/pythonAPI/test_comunic.py b/pythonAPI/test_comunic.py
index e7a4023..e7a4023 100644..100755
--- a/pythonAPI/test_comunic.py
+++ b/pythonAPI/test_comunic.py
diff --git a/pythonAPI/test_inclinacion.py b/pythonAPI/test_inclinacion.py
index c3afc7c..c3afc7c 100644..100755
--- a/pythonAPI/test_inclinacion.py
+++ b/pythonAPI/test_inclinacion.py
diff --git a/pythonAPI/test_luchador_sumo_aleatorio.py b/pythonAPI/test_luchador_sumo_aleatorio.py
index 774b4cd..774b4cd 100644..100755
--- a/pythonAPI/test_luchador_sumo_aleatorio.py
+++ b/pythonAPI/test_luchador_sumo_aleatorio.py
diff --git a/pythonAPI/test_seguidor_linea.py b/pythonAPI/test_seguidor_linea.py
index 0b85edb..0b85edb 100644..100755
--- a/pythonAPI/test_seguidor_linea.py
+++ b/pythonAPI/test_seguidor_linea.py
diff --git a/pythonAPI/test_seguidor_linea_2.py b/pythonAPI/test_seguidor_linea_2.py
index 0bc8fbf..0bc8fbf 100644..100755
--- a/pythonAPI/test_seguidor_linea_2.py
+++ b/pythonAPI/test_seguidor_linea_2.py
diff --git a/pythonAPI/test_sensor_grises.py b/pythonAPI/test_sensor_grises.py
index 1fbfc4f..1fbfc4f 100644..100755
--- a/pythonAPI/test_sensor_grises.py
+++ b/pythonAPI/test_sensor_grises.py
diff --git a/setup.py b/setup.py
index 69204fa..d3ac5ff 100755
--- a/setup.py
+++ b/setup.py
@@ -1,4 +1,4 @@
#!/usr/bin/env python
from sugar.activity import bundlebuilder
if __name__ == "__main__":
- bundlebuilder.start("FollowMe")
+ bundlebuilder.start("FollowMe Butia") \ No newline at end of file