summaryrefslogtreecommitdiffstats
path: root/Graphic_Equalizer_Original_Port
diff options
context:
space:
mode:
authorOliver Schinagl <oliver@schinagl.nl>2004-12-09 13:44:56 (GMT)
committerOliver Schinagl <oliver@schinagl.nl>2004-12-09 13:44:56 (GMT)
commit593d5fded11b8723ce27883e06865ab205c6f008 (patch)
tree1f25584a40a2f24861464f0e6ea5416db7951514 /Graphic_Equalizer_Original_Port
parent2b08ad7b3243965c832960b8089013cd1f6f46f3 (diff)
downloadTASS-593d5fded11b8723ce27883e06865ab205c6f008.zip
TASS-593d5fded11b8723ce27883e06865ab205c6f008.tar.gz
TASS-593d5fded11b8723ce27883e06865ab205c6f008.tar.bz2
Phase 1: Original Port Completed.
Recommended additions: add and update (doxygen) documentation
Diffstat (limited to 'Graphic_Equalizer_Original_Port')
-rw-r--r--Graphic_Equalizer_Original_Port/Graphic_Equalizer.hp574
-rw-r--r--Graphic_Equalizer_Original_Port/Graphic_Equalizer.hw2
-rw-r--r--Graphic_Equalizer_Original_Port/Graphic_Equalizer.pref164
-rw-r--r--Graphic_Equalizer_Original_Port/data/graph_mask.raw639
-rw-r--r--Graphic_Equalizer_Original_Port/data/help.rawbin0 -> 921600 bytes
-rw-r--r--Graphic_Equalizer_Original_Port/data/help_mask.rawbin0 -> 307200 bytes
-rw-r--r--Graphic_Equalizer_Original_Port/data/orig/graph_mask.bmpbin0 -> 308278 bytes
-rw-r--r--Graphic_Equalizer_Original_Port/data/orig/help.bmpbin0 -> 921656 bytes
-rw-r--r--Graphic_Equalizer_Original_Port/data/orig/help_mask.bmpbin0 -> 308278 bytes
-rw-r--r--Graphic_Equalizer_Original_Port/data/orig/skin.bmpbin0 -> 921656 bytes
-rw-r--r--Graphic_Equalizer_Original_Port/data/orig/skin_mask.bmpbin0 -> 308278 bytes
-rw-r--r--Graphic_Equalizer_Original_Port/data/preset_demo.binbin0 -> 384 bytes
-rw-r--r--Graphic_Equalizer_Original_Port/data/preset_reset.binbin0 -> 448 bytes
-rw-r--r--Graphic_Equalizer_Original_Port/data/presets_hardcoded.txt13
-rw-r--r--Graphic_Equalizer_Original_Port/data/skin.rawbin0 -> 921600 bytes
-rw-r--r--Graphic_Equalizer_Original_Port/data/skin_mask.rawbin0 -> 307200 bytes
-rw-r--r--Graphic_Equalizer_Original_Port/doc/html/annotated.html19
-rw-r--r--Graphic_Equalizer_Original_Port/doc/html/audio_2main_8hcc-source.html76
-rw-r--r--Graphic_Equalizer_Original_Port/doc/html/audio_8hcc-source.html69
-rw-r--r--Graphic_Equalizer_Original_Port/doc/html/audio_8hcc.html190
-rw-r--r--Graphic_Equalizer_Original_Port/doc/html/audio_8hcc__incl.map3
-rw-r--r--Graphic_Equalizer_Original_Port/doc/html/audio_8hcc__incl.md51
-rw-r--r--Graphic_Equalizer_Original_Port/doc/html/audio_8hcc__incl.pngbin0 -> 1800 bytes
-rw-r--r--Graphic_Equalizer_Original_Port/doc/html/audio_8hch-source.html84
-rw-r--r--Graphic_Equalizer_Original_Port/doc/html/audio_8hch.html496
-rw-r--r--Graphic_Equalizer_Original_Port/doc/html/audio_8hch__dep__incl.map7
-rw-r--r--Graphic_Equalizer_Original_Port/doc/html/audio_8hch__dep__incl.md51
-rw-r--r--Graphic_Equalizer_Original_Port/doc/html/audio_8hch__dep__incl.pngbin0 -> 2183 bytes
-rw-r--r--Graphic_Equalizer_Original_Port/doc/html/configuration_8hch-source.html53
-rw-r--r--Graphic_Equalizer_Original_Port/doc/html/configuration_8hch.html240
-rw-r--r--Graphic_Equalizer_Original_Port/doc/html/configuration_8hch__dep__incl.map10
-rw-r--r--Graphic_Equalizer_Original_Port/doc/html/configuration_8hch__dep__incl.md51
-rw-r--r--Graphic_Equalizer_Original_Port/doc/html/configuration_8hch__dep__incl.pngbin0 -> 3114 bytes
-rw-r--r--Graphic_Equalizer_Original_Port/doc/html/dir_000000.html20
-rw-r--r--Graphic_Equalizer_Original_Port/doc/html/dir_000001.html20
-rw-r--r--Graphic_Equalizer_Original_Port/doc/html/dir_000002.html22
-rw-r--r--Graphic_Equalizer_Original_Port/doc/html/dir_000003.html49
-rw-r--r--Graphic_Equalizer_Original_Port/doc/html/dir_000004.html36
-rw-r--r--Graphic_Equalizer_Original_Port/doc/html/dirs.html25
-rw-r--r--Graphic_Equalizer_Original_Port/doc/html/display_8hcc-source.html310
-rw-r--r--Graphic_Equalizer_Original_Port/doc/html/display_8hcc.html252
-rw-r--r--Graphic_Equalizer_Original_Port/doc/html/display_8hcc__incl.map8
-rw-r--r--Graphic_Equalizer_Original_Port/doc/html/display_8hcc__incl.md51
-rw-r--r--Graphic_Equalizer_Original_Port/doc/html/display_8hcc__incl.pngbin0 -> 3637 bytes
-rw-r--r--Graphic_Equalizer_Original_Port/doc/html/display_8hch-source.html49
-rw-r--r--Graphic_Equalizer_Original_Port/doc/html/display_8hch.html348
-rw-r--r--Graphic_Equalizer_Original_Port/doc/html/display_8hch__dep__incl.map5
-rw-r--r--Graphic_Equalizer_Original_Port/doc/html/display_8hch__dep__incl.md51
-rw-r--r--Graphic_Equalizer_Original_Port/doc/html/display_8hch__dep__incl.pngbin0 -> 1808 bytes
-rw-r--r--Graphic_Equalizer_Original_Port/doc/html/display__shared_8hch-source.html62
-rw-r--r--Graphic_Equalizer_Original_Port/doc/html/display__shared_8hch.html691
-rw-r--r--Graphic_Equalizer_Original_Port/doc/html/display__shared_8hch__dep__incl.map5
-rw-r--r--Graphic_Equalizer_Original_Port/doc/html/display__shared_8hch__dep__incl.md51
-rw-r--r--Graphic_Equalizer_Original_Port/doc/html/display__shared_8hch__dep__incl.pngbin0 -> 1911 bytes
-rw-r--r--Graphic_Equalizer_Original_Port/doc/html/doxygen.css271
-rw-r--r--Graphic_Equalizer_Original_Port/doc/html/doxygen.pngbin0 -> 1281 bytes
-rw-r--r--Graphic_Equalizer_Original_Port/doc/html/eventhandler_8hcc-source.html299
-rw-r--r--Graphic_Equalizer_Original_Port/doc/html/eventhandler_8hcc.html191
-rw-r--r--Graphic_Equalizer_Original_Port/doc/html/eventhandler_8hcc__incl.map9
-rw-r--r--Graphic_Equalizer_Original_Port/doc/html/eventhandler_8hcc__incl.md51
-rw-r--r--Graphic_Equalizer_Original_Port/doc/html/eventhandler_8hcc__incl.pngbin0 -> 4001 bytes
-rw-r--r--Graphic_Equalizer_Original_Port/doc/html/eventhandler_8hcc_a2_cgraph.map3
-rw-r--r--Graphic_Equalizer_Original_Port/doc/html/eventhandler_8hcc_a2_cgraph.md51
-rw-r--r--Graphic_Equalizer_Original_Port/doc/html/eventhandler_8hcc_a2_cgraph.pngbin0 -> 1043 bytes
-rw-r--r--Graphic_Equalizer_Original_Port/doc/html/eventhandler_8hcc_a3_cgraph.map3
-rw-r--r--Graphic_Equalizer_Original_Port/doc/html/eventhandler_8hcc_a3_cgraph.md51
-rw-r--r--Graphic_Equalizer_Original_Port/doc/html/eventhandler_8hcc_a3_cgraph.pngbin0 -> 1043 bytes
-rw-r--r--Graphic_Equalizer_Original_Port/doc/html/eventhandler_8hch-source.html36
-rw-r--r--Graphic_Equalizer_Original_Port/doc/html/eventhandler_8hch.html202
-rw-r--r--Graphic_Equalizer_Original_Port/doc/html/eventhandler_8hch__dep__incl.map3
-rw-r--r--Graphic_Equalizer_Original_Port/doc/html/eventhandler_8hch__dep__incl.md51
-rw-r--r--Graphic_Equalizer_Original_Port/doc/html/eventhandler_8hch__dep__incl.pngbin0 -> 1084 bytes
-rw-r--r--Graphic_Equalizer_Original_Port/doc/html/eventhandler_8hch_a1_cgraph.map3
-rw-r--r--Graphic_Equalizer_Original_Port/doc/html/eventhandler_8hch_a1_cgraph.md51
-rw-r--r--Graphic_Equalizer_Original_Port/doc/html/eventhandler_8hch_a1_cgraph.pngbin0 -> 1043 bytes
-rw-r--r--Graphic_Equalizer_Original_Port/doc/html/eventhandler_8hch_a3_cgraph.map3
-rw-r--r--Graphic_Equalizer_Original_Port/doc/html/eventhandler_8hch_a3_cgraph.md51
-rw-r--r--Graphic_Equalizer_Original_Port/doc/html/eventhandler_8hch_a3_cgraph.pngbin0 -> 1043 bytes
-rw-r--r--Graphic_Equalizer_Original_Port/doc/html/eventhandler__shared_8hch-source.html68
-rw-r--r--Graphic_Equalizer_Original_Port/doc/html/eventhandler__shared_8hch.html334
-rw-r--r--Graphic_Equalizer_Original_Port/doc/html/eventhandler__shared_8hch__dep__incl.map6
-rw-r--r--Graphic_Equalizer_Original_Port/doc/html/eventhandler__shared_8hch__dep__incl.md51
-rw-r--r--Graphic_Equalizer_Original_Port/doc/html/eventhandler__shared_8hch__dep__incl.pngbin0 -> 2233 bytes
-rw-r--r--Graphic_Equalizer_Original_Port/doc/html/events_8hcc-source.html60
-rw-r--r--Graphic_Equalizer_Original_Port/doc/html/events_8hcc.html202
-rw-r--r--Graphic_Equalizer_Original_Port/doc/html/events_8hcc__incl.map4
-rw-r--r--Graphic_Equalizer_Original_Port/doc/html/events_8hcc__incl.md51
-rw-r--r--Graphic_Equalizer_Original_Port/doc/html/events_8hcc__incl.pngbin0 -> 2785 bytes
-rw-r--r--Graphic_Equalizer_Original_Port/doc/html/events_8hch-source.html29
-rw-r--r--Graphic_Equalizer_Original_Port/doc/html/events_8hch.html132
-rw-r--r--Graphic_Equalizer_Original_Port/doc/html/events_8hch__dep__incl.map3
-rw-r--r--Graphic_Equalizer_Original_Port/doc/html/events_8hch__dep__incl.md51
-rw-r--r--Graphic_Equalizer_Original_Port/doc/html/events_8hch__dep__incl.pngbin0 -> 1024 bytes
-rw-r--r--Graphic_Equalizer_Original_Port/doc/html/fft_8hcc-source.html445
-rw-r--r--Graphic_Equalizer_Original_Port/doc/html/fft_8hcc.html380
-rw-r--r--Graphic_Equalizer_Original_Port/doc/html/fft_8hcc__incl.map5
-rw-r--r--Graphic_Equalizer_Original_Port/doc/html/fft_8hcc__incl.md51
-rw-r--r--Graphic_Equalizer_Original_Port/doc/html/fft_8hcc__incl.pngbin0 -> 2759 bytes
-rw-r--r--Graphic_Equalizer_Original_Port/doc/html/fft_8hcc_a2_cgraph.map2
-rw-r--r--Graphic_Equalizer_Original_Port/doc/html/fft_8hcc_a2_cgraph.md51
-rw-r--r--Graphic_Equalizer_Original_Port/doc/html/fft_8hcc_a2_cgraph.pngbin0 -> 522 bytes
-rw-r--r--Graphic_Equalizer_Original_Port/doc/html/fft_8hcc_a3_cgraph.map2
-rw-r--r--Graphic_Equalizer_Original_Port/doc/html/fft_8hcc_a3_cgraph.md51
-rw-r--r--Graphic_Equalizer_Original_Port/doc/html/fft_8hcc_a3_cgraph.pngbin0 -> 522 bytes
-rw-r--r--Graphic_Equalizer_Original_Port/doc/html/fft_8hcc_a4_cgraph.map3
-rw-r--r--Graphic_Equalizer_Original_Port/doc/html/fft_8hcc_a4_cgraph.md51
-rw-r--r--Graphic_Equalizer_Original_Port/doc/html/fft_8hcc_a4_cgraph.pngbin0 -> 724 bytes
-rw-r--r--Graphic_Equalizer_Original_Port/doc/html/fft_8hcc_a5_cgraph.map3
-rw-r--r--Graphic_Equalizer_Original_Port/doc/html/fft_8hcc_a5_cgraph.md51
-rw-r--r--Graphic_Equalizer_Original_Port/doc/html/fft_8hcc_a5_cgraph.pngbin0 -> 745 bytes
-rw-r--r--Graphic_Equalizer_Original_Port/doc/html/fft_8hcc_a6_cgraph.map2
-rw-r--r--Graphic_Equalizer_Original_Port/doc/html/fft_8hcc_a6_cgraph.md51
-rw-r--r--Graphic_Equalizer_Original_Port/doc/html/fft_8hcc_a6_cgraph.pngbin0 -> 560 bytes
-rw-r--r--Graphic_Equalizer_Original_Port/doc/html/fft_8hch-source.html48
-rw-r--r--Graphic_Equalizer_Original_Port/doc/html/fft_8hch.html261
-rw-r--r--Graphic_Equalizer_Original_Port/doc/html/fft_8hch__dep__incl.map3
-rw-r--r--Graphic_Equalizer_Original_Port/doc/html/fft_8hch__dep__incl.md51
-rw-r--r--Graphic_Equalizer_Original_Port/doc/html/fft_8hch__dep__incl.pngbin0 -> 732 bytes
-rw-r--r--Graphic_Equalizer_Original_Port/doc/html/fft_8hch_a3_cgraph.map3
-rw-r--r--Graphic_Equalizer_Original_Port/doc/html/fft_8hch_a3_cgraph.md51
-rw-r--r--Graphic_Equalizer_Original_Port/doc/html/fft_8hch_a3_cgraph.pngbin0 -> 724 bytes
-rw-r--r--Graphic_Equalizer_Original_Port/doc/html/fft_8hch_a4_cgraph.map3
-rw-r--r--Graphic_Equalizer_Original_Port/doc/html/fft_8hch_a4_cgraph.md51
-rw-r--r--Graphic_Equalizer_Original_Port/doc/html/fft_8hch_a4_cgraph.pngbin0 -> 745 bytes
-rw-r--r--Graphic_Equalizer_Original_Port/doc/html/fft_8hch_a5_cgraph.map2
-rw-r--r--Graphic_Equalizer_Original_Port/doc/html/fft_8hch_a5_cgraph.md51
-rw-r--r--Graphic_Equalizer_Original_Port/doc/html/fft_8hch_a5_cgraph.pngbin0 -> 560 bytes
-rw-r--r--Graphic_Equalizer_Original_Port/doc/html/files.html37
-rw-r--r--Graphic_Equalizer_Original_Port/doc/html/ftv2blank.pngbin0 -> 174 bytes
-rw-r--r--Graphic_Equalizer_Original_Port/doc/html/ftv2doc.pngbin0 -> 255 bytes
-rw-r--r--Graphic_Equalizer_Original_Port/doc/html/ftv2folderclosed.pngbin0 -> 259 bytes
-rw-r--r--Graphic_Equalizer_Original_Port/doc/html/ftv2folderopen.pngbin0 -> 261 bytes
-rw-r--r--Graphic_Equalizer_Original_Port/doc/html/ftv2lastnode.pngbin0 -> 233 bytes
-rw-r--r--Graphic_Equalizer_Original_Port/doc/html/ftv2link.pngbin0 -> 358 bytes
-rw-r--r--Graphic_Equalizer_Original_Port/doc/html/ftv2mlastnode.pngbin0 -> 160 bytes
-rw-r--r--Graphic_Equalizer_Original_Port/doc/html/ftv2mnode.pngbin0 -> 194 bytes
-rw-r--r--Graphic_Equalizer_Original_Port/doc/html/ftv2node.pngbin0 -> 235 bytes
-rw-r--r--Graphic_Equalizer_Original_Port/doc/html/ftv2plastnode.pngbin0 -> 165 bytes
-rw-r--r--Graphic_Equalizer_Original_Port/doc/html/ftv2pnode.pngbin0 -> 200 bytes
-rw-r--r--Graphic_Equalizer_Original_Port/doc/html/ftv2vertline.pngbin0 -> 229 bytes
-rw-r--r--Graphic_Equalizer_Original_Port/doc/html/functions.html40
-rw-r--r--Graphic_Equalizer_Original_Port/doc/html/functions_vars.html40
-rw-r--r--Graphic_Equalizer_Original_Port/doc/html/globals.html192
-rw-r--r--Graphic_Equalizer_Original_Port/doc/html/globals_defs.html166
-rw-r--r--Graphic_Equalizer_Original_Port/doc/html/globals_func.html33
-rw-r--r--Graphic_Equalizer_Original_Port/doc/html/globals_vars.html25
-rw-r--r--Graphic_Equalizer_Original_Port/doc/html/graph_legend.dot22
-rw-r--r--Graphic_Equalizer_Original_Port/doc/html/graph_legend.html74
-rw-r--r--Graphic_Equalizer_Original_Port/doc/html/graph_legend.pngbin0 -> 3938 bytes
-rw-r--r--Graphic_Equalizer_Original_Port/doc/html/index.html8
-rw-r--r--Graphic_Equalizer_Original_Port/doc/html/main.html14
-rw-r--r--Graphic_Equalizer_Original_Port/doc/html/main_8hcc-source.html153
-rw-r--r--Graphic_Equalizer_Original_Port/doc/html/main_8hcc.html151
-rw-r--r--Graphic_Equalizer_Original_Port/doc/html/main_8hcc__incl.map12
-rw-r--r--Graphic_Equalizer_Original_Port/doc/html/main_8hcc__incl.md51
-rw-r--r--Graphic_Equalizer_Original_Port/doc/html/main_8hcc__incl.pngbin0 -> 4132 bytes
-rw-r--r--Graphic_Equalizer_Original_Port/doc/html/main_8hcc_a1_cgraph.map10
-rw-r--r--Graphic_Equalizer_Original_Port/doc/html/main_8hcc_a1_cgraph.md51
-rw-r--r--Graphic_Equalizer_Original_Port/doc/html/main_8hcc_a1_cgraph.pngbin0 -> 3634 bytes
-rw-r--r--Graphic_Equalizer_Original_Port/doc/html/mouse_8hcc-source.html116
-rw-r--r--Graphic_Equalizer_Original_Port/doc/html/mouse_8hcc.html101
-rw-r--r--Graphic_Equalizer_Original_Port/doc/html/mouse_8hcc__incl.map4
-rw-r--r--Graphic_Equalizer_Original_Port/doc/html/mouse_8hcc__incl.md51
-rw-r--r--Graphic_Equalizer_Original_Port/doc/html/mouse_8hcc__incl.pngbin0 -> 2471 bytes
-rw-r--r--Graphic_Equalizer_Original_Port/doc/html/mouse_8hch-source.html38
-rw-r--r--Graphic_Equalizer_Original_Port/doc/html/mouse_8hch.html157
-rw-r--r--Graphic_Equalizer_Original_Port/doc/html/mouse_8hch__dep__incl.map3
-rw-r--r--Graphic_Equalizer_Original_Port/doc/html/mouse_8hch__dep__incl.md51
-rw-r--r--Graphic_Equalizer_Original_Port/doc/html/mouse_8hch__dep__incl.pngbin0 -> 909 bytes
-rw-r--r--Graphic_Equalizer_Original_Port/doc/html/mouse__shared_8hch-source.html53
-rw-r--r--Graphic_Equalizer_Original_Port/doc/html/mouse__shared_8hch.html247
-rw-r--r--Graphic_Equalizer_Original_Port/doc/html/mouse__shared_8hch__dep__incl.map6
-rw-r--r--Graphic_Equalizer_Original_Port/doc/html/mouse__shared_8hch__dep__incl.md51
-rw-r--r--Graphic_Equalizer_Original_Port/doc/html/mouse__shared_8hch__dep__incl.pngbin0 -> 2211 bytes
-rw-r--r--Graphic_Equalizer_Original_Port/doc/html/runfft_8hcc-source.html168
-rw-r--r--Graphic_Equalizer_Original_Port/doc/html/runfft_8hcc.html45
-rw-r--r--Graphic_Equalizer_Original_Port/doc/html/runfft_8hcc__incl.map2
-rw-r--r--Graphic_Equalizer_Original_Port/doc/html/runfft_8hcc__incl.md51
-rw-r--r--Graphic_Equalizer_Original_Port/doc/html/runfft_8hcc__incl.pngbin0 -> 1484 bytes
-rw-r--r--Graphic_Equalizer_Original_Port/doc/html/runfft_8hch-source.html15
-rw-r--r--Graphic_Equalizer_Original_Port/doc/html/runfft_8hch.html66
-rw-r--r--Graphic_Equalizer_Original_Port/doc/html/runfft_8hch__dep__incl.map2
-rw-r--r--Graphic_Equalizer_Original_Port/doc/html/runfft_8hch__dep__incl.md51
-rw-r--r--Graphic_Equalizer_Original_Port/doc/html/runfft_8hch__dep__incl.pngbin0 -> 464 bytes
-rw-r--r--Graphic_Equalizer_Original_Port/doc/html/sample_8hcc-source.html78
-rw-r--r--Graphic_Equalizer_Original_Port/doc/html/sample_8hcc.html182
-rw-r--r--Graphic_Equalizer_Original_Port/doc/html/sample_8hcc__incl.map2
-rw-r--r--Graphic_Equalizer_Original_Port/doc/html/sample_8hcc__incl.md51
-rw-r--r--Graphic_Equalizer_Original_Port/doc/html/sample_8hcc__incl.pngbin0 -> 568 bytes
-rw-r--r--Graphic_Equalizer_Original_Port/doc/html/sample_8hch-source.html37
-rw-r--r--Graphic_Equalizer_Original_Port/doc/html/sample_8hch.html89
-rw-r--r--Graphic_Equalizer_Original_Port/doc/html/sample_8hch__dep__incl.map2
-rw-r--r--Graphic_Equalizer_Original_Port/doc/html/sample_8hch__dep__incl.md51
-rw-r--r--Graphic_Equalizer_Original_Port/doc/html/sample_8hch__dep__incl.pngbin0 -> 568 bytes
-rw-r--r--Graphic_Equalizer_Original_Port/doc/html/smartmedia_8hcc-source.html215
-rw-r--r--Graphic_Equalizer_Original_Port/doc/html/smartmedia_8hcc.html153
-rw-r--r--Graphic_Equalizer_Original_Port/doc/html/smartmedia_8hcc__incl.map9
-rw-r--r--Graphic_Equalizer_Original_Port/doc/html/smartmedia_8hcc__incl.md51
-rw-r--r--Graphic_Equalizer_Original_Port/doc/html/smartmedia_8hcc__incl.pngbin0 -> 4097 bytes
-rw-r--r--Graphic_Equalizer_Original_Port/doc/html/smartmedia_8hch-source.html65
-rw-r--r--Graphic_Equalizer_Original_Port/doc/html/smartmedia_8hch.html406
-rw-r--r--Graphic_Equalizer_Original_Port/doc/html/smartmedia_8hch__dep__incl.map3
-rw-r--r--Graphic_Equalizer_Original_Port/doc/html/smartmedia_8hch__dep__incl.md51
-rw-r--r--Graphic_Equalizer_Original_Port/doc/html/smartmedia_8hch__dep__incl.pngbin0 -> 1047 bytes
-rw-r--r--Graphic_Equalizer_Original_Port/doc/html/smartmedia__shared_8hch-source.html77
-rw-r--r--Graphic_Equalizer_Original_Port/doc/html/smartmedia__shared_8hch.html920
-rw-r--r--Graphic_Equalizer_Original_Port/doc/html/smartmedia__shared_8hch__dep__incl.map3
-rw-r--r--Graphic_Equalizer_Original_Port/doc/html/smartmedia__shared_8hch__dep__incl.md51
-rw-r--r--Graphic_Equalizer_Original_Port/doc/html/smartmedia__shared_8hch__dep__incl.pngbin0 -> 1183 bytes
-rw-r--r--Graphic_Equalizer_Original_Port/doc/html/structaudiodata__t.html77
-rw-r--r--Graphic_Equalizer_Original_Port/doc/html/structevents__t.html222
-rw-r--r--Graphic_Equalizer_Original_Port/doc/html/structmousedata__t.html135
-rw-r--r--Graphic_Equalizer_Original_Port/doc/html/structskindata__t.html139
-rw-r--r--Graphic_Equalizer_Original_Port/doc/html/structskindata__t_1_1skin__info__t.html189
-rw-r--r--Graphic_Equalizer_Original_Port/doc/html/structskindata__t__coll__graph.map2
-rw-r--r--Graphic_Equalizer_Original_Port/doc/html/structskindata__t__coll__graph.md51
-rw-r--r--Graphic_Equalizer_Original_Port/doc/html/structskindata__t__coll__graph.pngbin0 -> 2660 bytes
-rw-r--r--Graphic_Equalizer_Original_Port/doc/html/tree.html200
-rw-r--r--Graphic_Equalizer_Original_Port/doc/html/weights__256_8hch-source.html278
-rw-r--r--Graphic_Equalizer_Original_Port/doc/html/weights__256_8hch.html141
-rw-r--r--Graphic_Equalizer_Original_Port/doc/html/weights__256_8hch__dep__incl.map2
-rw-r--r--Graphic_Equalizer_Original_Port/doc/html/weights__256_8hch__dep__incl.md51
-rw-r--r--Graphic_Equalizer_Original_Port/doc/html/weights__256_8hch__dep__incl.pngbin0 -> 633 bytes
-rw-r--r--Graphic_Equalizer_Original_Port/include/audio.hch87
-rw-r--r--Graphic_Equalizer_Original_Port/include/configuration.hch56
-rw-r--r--Graphic_Equalizer_Original_Port/include/display.hch52
-rw-r--r--Graphic_Equalizer_Original_Port/include/display_shared.hch80
-rw-r--r--Graphic_Equalizer_Original_Port/include/eventhandler.hch39
-rw-r--r--Graphic_Equalizer_Original_Port/include/eventhandler_shared.hch71
-rw-r--r--Graphic_Equalizer_Original_Port/include/events.hch33
-rw-r--r--Graphic_Equalizer_Original_Port/include/fft.hch34
-rw-r--r--Graphic_Equalizer_Original_Port/include/mouse.hch41
-rw-r--r--Graphic_Equalizer_Original_Port/include/mouse_shared.hch56
-rw-r--r--Graphic_Equalizer_Original_Port/include/runfft.hch1
-rw-r--r--Graphic_Equalizer_Original_Port/include/smartmedia.hch68
-rw-r--r--Graphic_Equalizer_Original_Port/include/smartmedia_shared.hch80
-rw-r--r--Graphic_Equalizer_Original_Port/include/weights_256.hch264
-rw-r--r--Graphic_Equalizer_Original_Port/src/audio.hcc102
-rw-r--r--Graphic_Equalizer_Original_Port/src/display.hcc338
-rw-r--r--Graphic_Equalizer_Original_Port/src/eventhandler.hcc315
-rw-r--r--Graphic_Equalizer_Original_Port/src/events.hcc76
-rw-r--r--Graphic_Equalizer_Original_Port/src/fft.hcc505
-rw-r--r--Graphic_Equalizer_Original_Port/src/main.hcc162
-rw-r--r--Graphic_Equalizer_Original_Port/src/mouse.hcc131
-rw-r--r--Graphic_Equalizer_Original_Port/src/runfft.hcc182
-rw-r--r--Graphic_Equalizer_Original_Port/src/smartmedia.hcc233
246 files changed, 16235 insertions, 0 deletions
diff --git a/Graphic_Equalizer_Original_Port/Graphic_Equalizer.hp b/Graphic_Equalizer_Original_Port/Graphic_Equalizer.hp
new file mode 100644
index 0000000..d1885ef
--- /dev/null
+++ b/Graphic_Equalizer_Original_Port/Graphic_Equalizer.hp
@@ -0,0 +1,574 @@
+#@hp
+type chip
+configuration Release EDIF
+configuration FastLoad_Debug EDIF
+configuration FastLoad EDIF
+configuration Full_Debug EDIF
+configuration Full EDIF
+setting Release debug false
+setting Release warnings true
+setting Release parfunc false
+setting Release parchan false
+setting Release parmem false
+setting Release rewrite true
+setting Release high true
+setting Release cse true
+setting Release pcse true
+setting Release rcse true
+setting Release cr true
+setting Release rcr true
+setting Release browse true
+setting Release estimate false
+setting Release noTimeCon false
+setting Release ignoreInclDirs false
+setting Release ignoreLibDirs false
+setting Release noFastCarry false
+setting Release mapper true
+setting Release netlistSimulator false
+setting Release useCustomBuild false
+setting Release exclude false
+setting Release target edif
+setting Release target.compile edif
+setting Release family XilinxVirtexII
+setting Release family.lib none
+setting Release vTool Generic
+setting Release netExp speed
+setting Release outDir Release
+setting Release intDir Release
+setting Release part XC2V1000-4-FG456
+setting Release define:NDEBUG true
+setting Release define:USE_ true
+setting Release define:USE_RC200E true
+setting Release "include:C:\\Program Files\\celoxica\\pdk\\hardware\\include" true
+setting Release include:include true
+setting Release include:..\\Support_Libs\\debug false
+setting Release lib:stdlib.hcl true
+setting Release lib:rc200e.hcl true
+setting Release lib:pal_rc200e.hcl true
+setting Release "libdir:C:\\Program Files\\celoxica\\pdk\\hardware\\lib" true
+setting Release define:HANDELCV3 false
+setting Release define:SIMULATE false
+setting Release define:DEBUG false
+setting Release define:USE_RC100 false
+setting Release define:NSIMULATE false
+setting Release define:USE_SIM false
+setting Release define:USE_ADMXRC2 false
+setting Release define:USE_NIOS false
+setting Release define:USE_NDB false
+setting Release define:USE_RC1000 false
+setting Release define:USE_RC200 false
+setting Release define:USE_ARMSTRIPE false
+setting Release define:USE_EDB false
+setting Release define:USE_V2PRO false
+setting Release define:USE_MV2P false
+setting Release define:RC200 false
+setting Release include:..\\..\\Support_Libs\\debug false
+setting Release lib:rc100.hcl false
+setting Release lib:pal_rc100.hcl false
+setting Release lib:pal_framebuffer16.hcl false
+setting Release lib:sim.hcl false
+setting Release lib:pal_sim.hcl false
+setting Release lib:admxrc2.hcl false
+setting Release lib:pal_admxrc2.hcl false
+setting Release lib:pal_console.hcl false
+setting Release lib:ndb.hcl false
+setting Release lib:pal_ndb.hcl false
+setting Release lib:rc1000.hcl false
+setting Release lib:pal_rc1000.hcl false
+setting Release lib:rc200.hcl false
+setting Release lib:pal_rc200.hcl false
+setting Release lib:pal_keyboard.hcl false
+setting Release lib:pal_framebuffer8.hcl false
+setting Release lib:pal_framebufferdb.hcl false
+setting Release lib:edb.hcl false
+setting Release lib:pal_edb.hcl false
+setting Release lib:mv2p.hcl false
+setting Release lib:pal_mv2p.hcl false
+setting Release lib:pal_mouse.hcl false
+setting Release "lib:C:\\Program Files\\Celoxica\\PDK\\Hardware\\Lib\\stdlib.hcl" false
+setting Release "libdir:R:\\c2hardw\\Program Files\\celoxica\\pdk\\hardware\\lib" false
+setting Release ansimodules:..\\..\\..\\Software\\Lib\\PalSim.lib false
+setting Release define:HAVE_DEBUG false
+setting Release "include:R:\\c2hardw\\Program Files\\celoxica\\pdk\\hardware\\include" false
+setting Release "include:R:\\c2hardw\\Program Files\\celoxica\\pdk\\hardware\\includes" false
+setting Release "include:R:\\c2hardw\\Program Files\\celoxica\\pdk\\hardware\\" false
+setting Release include:..\\..\\..\\include false
+setting Release include:C:\\Project_CVS\\Support_Libs\\debug false
+setting Release define:HAVE_SMARTMEDIA true
+setting Release define:USE_RUNFFT true
+setting Release define:HARDWARE_MULTIPLY true
+setting Release define:PERFORM_FFT_CALCULATION true
+setting Release define:USE_UNSIGNED_AUDIO false
+setting Release define:_CONFIGURATION_HCH true
+setting Release include:data true
+command Release "cd Release"
+command Release "call edifmake_rc200_optimized Graphic_Equalizer"
+output Release bin\\Graphic_Equalizer.bit
+setting FastLoad_Debug debug true
+setting FastLoad_Debug warnings true
+setting FastLoad_Debug parfunc false
+setting FastLoad_Debug parchan false
+setting FastLoad_Debug parmem false
+setting FastLoad_Debug rewrite true
+setting FastLoad_Debug high true
+setting FastLoad_Debug cse true
+setting FastLoad_Debug pcse true
+setting FastLoad_Debug rcse true
+setting FastLoad_Debug cr true
+setting FastLoad_Debug rcr true
+setting FastLoad_Debug browse true
+setting FastLoad_Debug estimate false
+setting FastLoad_Debug noTimeCon false
+setting FastLoad_Debug ignoreInclDirs false
+setting FastLoad_Debug ignoreLibDirs false
+setting FastLoad_Debug noFastCarry false
+setting FastLoad_Debug mapper true
+setting FastLoad_Debug netlistSimulator false
+setting FastLoad_Debug useCustomBuild false
+setting FastLoad_Debug exclude false
+setting FastLoad_Debug target edif
+setting FastLoad_Debug target.compile edif
+setting FastLoad_Debug family XilinxVirtexII
+setting FastLoad_Debug family.lib none
+setting FastLoad_Debug vTool Generic
+setting FastLoad_Debug netExp speed
+setting FastLoad_Debug outDir FastLoad_Debug
+setting FastLoad_Debug intDir FastLoad_Debug
+setting FastLoad_Debug part XC2V1000-4-FG456
+setting FastLoad_Debug define:NDEBUG true
+setting FastLoad_Debug define:HANDELCV3 false
+setting FastLoad_Debug define:SIMULATE false
+setting FastLoad_Debug define:DEBUG false
+setting FastLoad_Debug define:USE_ true
+setting FastLoad_Debug define:USE_RC100 false
+setting FastLoad_Debug define:NSIMULATE false
+setting FastLoad_Debug define:USE_SIM false
+setting FastLoad_Debug define:USE_ADMXRC2 false
+setting FastLoad_Debug define:USE_NIOS false
+setting FastLoad_Debug define:USE_NDB false
+setting FastLoad_Debug define:USE_RC1000 false
+setting FastLoad_Debug define:USE_RC200 false
+setting FastLoad_Debug define:USE_RC200E true
+setting FastLoad_Debug define:USE_ARMSTRIPE false
+setting FastLoad_Debug define:USE_EDB false
+setting FastLoad_Debug define:USE_V2PRO false
+setting FastLoad_Debug define:USE_MV2P false
+setting FastLoad_Debug define:RC200 false
+setting FastLoad_Debug lib:stdlib.hcl true
+setting FastLoad_Debug lib:rc100.hcl false
+setting FastLoad_Debug lib:pal_rc100.hcl false
+setting FastLoad_Debug lib:pal_framebuffer16.hcl false
+setting FastLoad_Debug lib:sim.hcl false
+setting FastLoad_Debug lib:pal_sim.hcl false
+setting FastLoad_Debug lib:admxrc2.hcl false
+setting FastLoad_Debug lib:pal_admxrc2.hcl false
+setting FastLoad_Debug lib:pal_console.hcl false
+setting FastLoad_Debug lib:ndb.hcl false
+setting FastLoad_Debug lib:pal_ndb.hcl false
+setting FastLoad_Debug lib:rc1000.hcl false
+setting FastLoad_Debug lib:pal_rc1000.hcl false
+setting FastLoad_Debug lib:rc200.hcl false
+setting FastLoad_Debug lib:pal_rc200.hcl false
+setting FastLoad_Debug lib:rc200e.hcl true
+setting FastLoad_Debug lib:pal_rc200e.hcl true
+setting FastLoad_Debug lib:pal_keyboard.hcl false
+setting FastLoad_Debug lib:pal_framebuffer8.hcl false
+setting FastLoad_Debug lib:pal_framebufferdb.hcl false
+setting FastLoad_Debug lib:edb.hcl false
+setting FastLoad_Debug lib:pal_edb.hcl false
+setting FastLoad_Debug lib:mv2p.hcl false
+setting FastLoad_Debug lib:pal_mv2p.hcl false
+setting FastLoad_Debug lib:pal_mouse.hcl false
+setting FastLoad_Debug ansimodules:..\\..\\..\\Software\\Lib\\PalSim.lib false
+setting FastLoad_Debug "include:R:\\c2hardw\\Program Files\\celoxica\\pdk\\hardware\\include" false
+setting FastLoad_Debug "libdir:R:\\c2hardw\\Program Files\\celoxica\\pdk\\hardware\\lib" false
+setting FastLoad_Debug "include:R:\\c2hardw\\Program Files\\celoxica\\pdk\\hardware\\includes" false
+setting FastLoad_Debug "include:R:\\c2hardw\\Program Files\\celoxica\\pdk\\hardware\\" false
+setting FastLoad_Debug include:..\\..\\..\\include false
+setting FastLoad_Debug include:include true
+setting FastLoad_Debug include:..\\Support_Libs\\debug true
+setting FastLoad_Debug include:C:\\Project_CVS\\Support_Libs\\debug false
+setting FastLoad_Debug "lib:C:\\Program Files\\Celoxica\\PDK\\Hardware\\Lib\\stdlib.hcl" false
+setting FastLoad_Debug "include:C:\\Program Files\\celoxica\\pdk\\hardware\\include" true
+setting FastLoad_Debug "libdir:C:\\Program Files\\celoxica\\pdk\\hardware\\lib" true
+setting FastLoad_Debug define:HAVE_DEBUG true
+setting FastLoad_Debug define:HAVE_SMARTMEDIA false
+setting FastLoad_Debug define:USE_RUNFFT true
+setting FastLoad_Debug define:HARDWARE_MULTIPLY true
+setting FastLoad_Debug define:PERFORM_FFT_CALCULATION true
+setting FastLoad_Debug define:USE_UNSIGNED_AUDIO false
+setting FastLoad_Debug include:..\\..\\Support_Libs\\debug false
+setting FastLoad_Debug define:_CONFIGURATION_HCH true
+setting FastLoad_Debug include:data true
+command FastLoad_Debug "cd FastLoad_Debug"
+command FastLoad_Debug "call edifmake_rc200_unoptimized Graphic_Equalizer"
+output FastLoad_Debug bin\\Graphic_Equalizer.bit
+setting FastLoad debug true
+setting FastLoad warnings true
+setting FastLoad parfunc false
+setting FastLoad parchan false
+setting FastLoad parmem false
+setting FastLoad rewrite true
+setting FastLoad high true
+setting FastLoad cse true
+setting FastLoad pcse true
+setting FastLoad rcse true
+setting FastLoad cr true
+setting FastLoad rcr true
+setting FastLoad browse true
+setting FastLoad estimate false
+setting FastLoad noTimeCon false
+setting FastLoad ignoreInclDirs false
+setting FastLoad ignoreLibDirs false
+setting FastLoad noFastCarry false
+setting FastLoad mapper true
+setting FastLoad netlistSimulator false
+setting FastLoad useCustomBuild false
+setting FastLoad exclude false
+setting FastLoad target edif
+setting FastLoad target.compile edif
+setting FastLoad family XilinxVirtexII
+setting FastLoad family.lib none
+setting FastLoad vTool Generic
+setting FastLoad netExp speed
+setting FastLoad outDir FastLoad
+setting FastLoad intDir FastLoad
+setting FastLoad part XC2V1000-4-FG456
+setting FastLoad define:NDEBUG true
+setting FastLoad define:HANDELCV3 false
+setting FastLoad define:SIMULATE false
+setting FastLoad define:DEBUG false
+setting FastLoad define:USE_ true
+setting FastLoad define:USE_RC100 false
+setting FastLoad define:NSIMULATE false
+setting FastLoad define:USE_SIM false
+setting FastLoad define:USE_ADMXRC2 false
+setting FastLoad define:USE_NIOS false
+setting FastLoad define:USE_NDB false
+setting FastLoad define:USE_RC1000 false
+setting FastLoad define:USE_RC200 false
+setting FastLoad define:USE_RC200E true
+setting FastLoad define:USE_ARMSTRIPE false
+setting FastLoad define:USE_EDB false
+setting FastLoad define:USE_V2PRO false
+setting FastLoad define:USE_MV2P false
+setting FastLoad define:RC200 false
+setting FastLoad lib:stdlib.hcl true
+setting FastLoad lib:rc100.hcl false
+setting FastLoad lib:pal_rc100.hcl false
+setting FastLoad lib:pal_framebuffer16.hcl false
+setting FastLoad lib:sim.hcl false
+setting FastLoad lib:pal_sim.hcl false
+setting FastLoad lib:admxrc2.hcl false
+setting FastLoad lib:pal_admxrc2.hcl false
+setting FastLoad lib:pal_console.hcl false
+setting FastLoad lib:ndb.hcl false
+setting FastLoad lib:pal_ndb.hcl false
+setting FastLoad lib:rc1000.hcl false
+setting FastLoad lib:pal_rc1000.hcl false
+setting FastLoad lib:rc200.hcl false
+setting FastLoad lib:pal_rc200.hcl false
+setting FastLoad lib:rc200e.hcl true
+setting FastLoad lib:pal_rc200e.hcl true
+setting FastLoad lib:pal_keyboard.hcl false
+setting FastLoad lib:pal_framebuffer8.hcl false
+setting FastLoad lib:pal_framebufferdb.hcl false
+setting FastLoad lib:edb.hcl false
+setting FastLoad lib:pal_edb.hcl false
+setting FastLoad lib:mv2p.hcl false
+setting FastLoad lib:pal_mv2p.hcl false
+setting FastLoad lib:pal_mouse.hcl false
+setting FastLoad ansimodules:..\\..\\..\\Software\\Lib\\PalSim.lib false
+setting FastLoad "include:R:\\c2hardw\\Program Files\\celoxica\\pdk\\hardware\\include" false
+setting FastLoad "libdir:R:\\c2hardw\\Program Files\\celoxica\\pdk\\hardware\\lib" false
+setting FastLoad "include:R:\\c2hardw\\Program Files\\celoxica\\pdk\\hardware\\includes" false
+setting FastLoad "include:R:\\c2hardw\\Program Files\\celoxica\\pdk\\hardware\\" false
+setting FastLoad include:..\\..\\..\\include false
+setting FastLoad include:include true
+setting FastLoad include:..\\Support_Libs\\debug false
+setting FastLoad include:C:\\Project_CVS\\Support_Libs\\debug false
+setting FastLoad "lib:C:\\Program Files\\Celoxica\\PDK\\Hardware\\Lib\\stdlib.hcl" false
+setting FastLoad "include:C:\\Program Files\\celoxica\\pdk\\hardware\\include" true
+setting FastLoad "libdir:C:\\Program Files\\celoxica\\pdk\\hardware\\lib" true
+setting FastLoad define:HAVE_DEBUG false
+setting FastLoad define:HAVE_SMARTMEDIA false
+setting FastLoad define:USE_RUNFFT true
+setting FastLoad define:HARDWARE_MULTIPLY true
+setting FastLoad define:PERFORM_FFT_CALCULATION true
+setting FastLoad define:USE_UNSIGNED_AUDIO false
+setting FastLoad include:..\\..\\Support_Libs\\debug false
+setting FastLoad define:_CONFIGURATION_HCH true
+setting FastLoad include:data true
+command FastLoad "cd FastLoad"
+command FastLoad "call edifmake_rc200_unoptimized Graphic_Equalizer"
+output FastLoad bin\\Graphic_Equalizer.bit
+setting Full_Debug debug true
+setting Full_Debug warnings true
+setting Full_Debug parfunc false
+setting Full_Debug parchan false
+setting Full_Debug parmem false
+setting Full_Debug rewrite true
+setting Full_Debug high true
+setting Full_Debug cse true
+setting Full_Debug pcse true
+setting Full_Debug rcse true
+setting Full_Debug cr true
+setting Full_Debug rcr true
+setting Full_Debug browse true
+setting Full_Debug estimate false
+setting Full_Debug noTimeCon false
+setting Full_Debug ignoreInclDirs false
+setting Full_Debug ignoreLibDirs false
+setting Full_Debug noFastCarry false
+setting Full_Debug mapper true
+setting Full_Debug netlistSimulator false
+setting Full_Debug useCustomBuild false
+setting Full_Debug exclude false
+setting Full_Debug target edif
+setting Full_Debug target.compile edif
+setting Full_Debug family XilinxVirtexII
+setting Full_Debug family.lib none
+setting Full_Debug vTool Generic
+setting Full_Debug netExp speed
+setting Full_Debug outDir Full_Debug
+setting Full_Debug intDir Full_Debug
+setting Full_Debug part XC2V1000-4-FG456
+setting Full_Debug define:NDEBUG true
+setting Full_Debug define:USE_ true
+setting Full_Debug define:USE_RC200E true
+setting Full_Debug "include:C:\\Program Files\\celoxica\\pdk\\hardware\\include" true
+setting Full_Debug include:include true
+setting Full_Debug include:..\\Support_Libs\\debug true
+setting Full_Debug lib:stdlib.hcl true
+setting Full_Debug lib:rc200e.hcl true
+setting Full_Debug lib:pal_rc200e.hcl true
+setting Full_Debug "libdir:C:\\Program Files\\celoxica\\pdk\\hardware\\lib" true
+setting Full_Debug define:HANDELCV3 false
+setting Full_Debug define:SIMULATE false
+setting Full_Debug define:DEBUG false
+setting Full_Debug define:USE_RC100 false
+setting Full_Debug define:NSIMULATE false
+setting Full_Debug define:USE_SIM false
+setting Full_Debug define:USE_ADMXRC2 false
+setting Full_Debug define:USE_NIOS false
+setting Full_Debug define:USE_NDB false
+setting Full_Debug define:USE_RC1000 false
+setting Full_Debug define:USE_RC200 false
+setting Full_Debug define:USE_ARMSTRIPE false
+setting Full_Debug define:USE_EDB false
+setting Full_Debug define:USE_V2PRO false
+setting Full_Debug define:USE_MV2P false
+setting Full_Debug define:RC200 false
+setting Full_Debug "include:R:\\c2hardw\\Program Files\\celoxica\\pdk\\hardware\\include" false
+setting Full_Debug "include:R:\\c2hardw\\Program Files\\celoxica\\pdk\\hardware\\includes" false
+setting Full_Debug "include:R:\\c2hardw\\Program Files\\celoxica\\pdk\\hardware\\" false
+setting Full_Debug include:..\\..\\..\\include false
+setting Full_Debug include:C:\\Project_CVS\\Support_Libs\\debug false
+setting Full_Debug lib:rc100.hcl false
+setting Full_Debug lib:pal_rc100.hcl false
+setting Full_Debug lib:pal_framebuffer16.hcl false
+setting Full_Debug lib:sim.hcl false
+setting Full_Debug lib:pal_sim.hcl false
+setting Full_Debug lib:admxrc2.hcl false
+setting Full_Debug lib:pal_admxrc2.hcl false
+setting Full_Debug lib:pal_console.hcl false
+setting Full_Debug lib:ndb.hcl false
+setting Full_Debug lib:pal_ndb.hcl false
+setting Full_Debug lib:rc1000.hcl false
+setting Full_Debug lib:pal_rc1000.hcl false
+setting Full_Debug lib:rc200.hcl false
+setting Full_Debug lib:pal_rc200.hcl false
+setting Full_Debug lib:pal_keyboard.hcl false
+setting Full_Debug lib:pal_framebuffer8.hcl false
+setting Full_Debug lib:pal_framebufferdb.hcl false
+setting Full_Debug lib:edb.hcl false
+setting Full_Debug lib:pal_edb.hcl false
+setting Full_Debug lib:mv2p.hcl false
+setting Full_Debug lib:pal_mv2p.hcl false
+setting Full_Debug lib:pal_mouse.hcl false
+setting Full_Debug "lib:C:\\Program Files\\Celoxica\\PDK\\Hardware\\Lib\\stdlib.hcl" false
+setting Full_Debug "libdir:R:\\c2hardw\\Program Files\\celoxica\\pdk\\hardware\\lib" false
+setting Full_Debug ansimodules:..\\..\\..\\Software\\Lib\\PalSim.lib false
+setting Full_Debug define:HAVE_DEBUG true
+setting Full_Debug include:..\\..\\Support_Libs\\debug false
+setting Full_Debug define:HAVE_SMARTMEDIA true
+setting Full_Debug define:USE_RUNFFT true
+setting Full_Debug define:HARDWARE_MULTIPLY true
+setting Full_Debug define:PERFORM_FFT_CALCULATION true
+setting Full_Debug define:USE_UNSIGNED_AUDIO false
+setting Full_Debug define:_CONFIGURATION_HCH true
+setting Full_Debug include:data true
+command Full_Debug "cd Full_Debug"
+command Full_Debug "call edifmake_rc200_unoptimized Graphic_Equalizer"
+output Full_Debug bin\\Graphic_Equalizer.bit
+setting Full debug true
+setting Full warnings true
+setting Full parfunc false
+setting Full parchan false
+setting Full parmem false
+setting Full rewrite true
+setting Full high true
+setting Full cse true
+setting Full pcse true
+setting Full rcse true
+setting Full cr true
+setting Full rcr true
+setting Full browse true
+setting Full estimate false
+setting Full noTimeCon false
+setting Full ignoreInclDirs false
+setting Full ignoreLibDirs false
+setting Full noFastCarry false
+setting Full mapper true
+setting Full netlistSimulator false
+setting Full useCustomBuild false
+setting Full exclude false
+setting Full target edif
+setting Full target.compile edif
+setting Full family XilinxVirtexII
+setting Full family.lib none
+setting Full vTool Generic
+setting Full netExp speed
+setting Full outDir Full
+setting Full intDir Full
+setting Full part XC2V1000-4-FG456
+setting Full define:NDEBUG true
+setting Full define:USE_ true
+setting Full define:USE_RC200E true
+setting Full "include:C:\\Program Files\\celoxica\\pdk\\hardware\\include" true
+setting Full include:include true
+setting Full include:..\\Support_Libs\\debug false
+setting Full lib:stdlib.hcl true
+setting Full lib:rc200e.hcl true
+setting Full lib:pal_rc200e.hcl true
+setting Full "libdir:C:\\Program Files\\celoxica\\pdk\\hardware\\lib" true
+setting Full define:HANDELCV3 false
+setting Full define:SIMULATE false
+setting Full define:DEBUG false
+setting Full define:USE_RC100 false
+setting Full define:NSIMULATE false
+setting Full define:USE_SIM false
+setting Full define:USE_ADMXRC2 false
+setting Full define:USE_NIOS false
+setting Full define:USE_NDB false
+setting Full define:USE_RC1000 false
+setting Full define:USE_RC200 false
+setting Full define:USE_ARMSTRIPE false
+setting Full define:USE_EDB false
+setting Full define:USE_V2PRO false
+setting Full define:USE_MV2P false
+setting Full define:RC200 false
+setting Full "include:R:\\c2hardw\\Program Files\\celoxica\\pdk\\hardware\\include" false
+setting Full "include:R:\\c2hardw\\Program Files\\celoxica\\pdk\\hardware\\includes" false
+setting Full "include:R:\\c2hardw\\Program Files\\celoxica\\pdk\\hardware\\" false
+setting Full include:..\\..\\..\\include false
+setting Full include:C:\\Project_CVS\\Support_Libs\\debug false
+setting Full lib:rc100.hcl false
+setting Full lib:pal_rc100.hcl false
+setting Full lib:pal_framebuffer16.hcl false
+setting Full lib:sim.hcl false
+setting Full lib:pal_sim.hcl false
+setting Full lib:admxrc2.hcl false
+setting Full lib:pal_admxrc2.hcl false
+setting Full lib:pal_console.hcl false
+setting Full lib:ndb.hcl false
+setting Full lib:pal_ndb.hcl false
+setting Full lib:rc1000.hcl false
+setting Full lib:pal_rc1000.hcl false
+setting Full lib:rc200.hcl false
+setting Full lib:pal_rc200.hcl false
+setting Full lib:pal_keyboard.hcl false
+setting Full lib:pal_framebuffer8.hcl false
+setting Full lib:pal_framebufferdb.hcl false
+setting Full lib:edb.hcl false
+setting Full lib:pal_edb.hcl false
+setting Full lib:mv2p.hcl false
+setting Full lib:pal_mv2p.hcl false
+setting Full lib:pal_mouse.hcl false
+setting Full "lib:C:\\Program Files\\Celoxica\\PDK\\Hardware\\Lib\\stdlib.hcl" false
+setting Full "libdir:R:\\c2hardw\\Program Files\\celoxica\\pdk\\hardware\\lib" false
+setting Full ansimodules:..\\..\\..\\Software\\Lib\\PalSim.lib false
+setting Full define:HAVE_DEBUG false
+setting Full include:..\\..\\Support_Libs\\debug false
+setting Full define:HAVE_SMARTMEDIA true
+setting Full define:USE_RUNFFT true
+setting Full define:HARDWARE_MULTIPLY true
+setting Full define:PERFORM_FFT_CALCULATION true
+setting Full define:USE_UNSIGNED_AUDIO false
+setting Full define:_CONFIGURATION_HCH true
+setting Full include:data true
+command Full "cd Full"
+command Full "call edifmake_rc200_unoptimized Graphic_Equalizer"
+output Full bin\\Graphic_Equalizer.bit
+document include\\audio.hch {
+ type hch
+}
+document include\\configuration.hch {
+ type hch
+}
+document include\\display.hch {
+ type hch
+}
+document include\\display_shared.hch {
+ type hch
+}
+document include\\eventhandler.hch {
+ type hch
+}
+document include\\eventhandler_shared.hch {
+ type hch
+}
+document include\\events.hch {
+ type hch
+}
+document include\\fft.hch {
+ type hch
+}
+document include\\mouse.hch {
+ type hch
+}
+document include\\mouse_shared.hch {
+ type hch
+}
+document include\\smartmedia.hch {
+ type hch
+}
+document include\\smartmedia_shared.hch {
+ type hch
+}
+document include\\weights_256.hch {
+ type hch
+}
+document src\\audio.hcc {
+ type hcc
+}
+document src\\display.hcc {
+ type hcc
+}
+document src\\eventhandler.hcc {
+ type hcc
+}
+document src\\events.hcc {
+ type hcc
+}
+document src\\fft.hcc {
+ type hcc
+}
+document src\\main.hcc {
+ type hcc
+}
+document src\\mouse.hcc {
+ type hcc
+}
+document src\\smartmedia.hcc {
+ type hcc
+}
+document ..\\support_libs\\debug\\debug.hcc {
+ type hcc
+}
+document ..\\support_libs\\debug\\debug.hch {
+ type hch
+}
+document src\\runfft.hcc {
+ type hcc
+}
diff --git a/Graphic_Equalizer_Original_Port/Graphic_Equalizer.hw b/Graphic_Equalizer_Original_Port/Graphic_Equalizer.hw
new file mode 100644
index 0000000..59b9054
--- /dev/null
+++ b/Graphic_Equalizer_Original_Port/Graphic_Equalizer.hw
@@ -0,0 +1,2 @@
+#@hw
+project graphic_equalizer.hp
diff --git a/Graphic_Equalizer_Original_Port/Graphic_Equalizer.pref b/Graphic_Equalizer_Original_Port/Graphic_Equalizer.pref
new file mode 100644
index 0000000..50fac51
--- /dev/null
+++ b/Graphic_Equalizer_Original_Port/Graphic_Equalizer.pref
@@ -0,0 +1,164 @@
+[WorkState_v1_2.Frames.ChildFrames.Document-16]
+ptn_Child1=ViewFrame-0
+[WorkState_v1_2.Frames.ChildFrames.Document-16.ViewFrame-0]
+DocPathName=C:\Project_CVS\Graphic_Equalizer\include\audio.hch
+DocumentString=
+DocTemplateIndex=5
+WindowPlacement=MCAAAAAAAAAAAAAABAAAAAAAPPPPPPPPPPPPPPPPMPPPPPPPJOPPPPPPMCAAAAAAMCAAAAAAICDAAAAAAGBAAAAA
+IsActiveChildFrame=False
+[WorkState_v1_2.Frames.ChildFrames.Document-8]
+ptn_Child1=ViewFrame-0
+[WorkState_v1_2.Frames.ChildFrames.Document-8.ViewFrame-0]
+DocPathName=C:\Project_CVS\Graphic_Equalizer\src\display.hcc
+DocumentString=
+DocTemplateIndex=4
+WindowPlacement=MCAAAAAAAAAAAAAABAAAAAAAPPPPPPPPPPPPPPPPMPPPPPPPJOPPPPPPAAAAAAAAAAAAAAAAMPCAAAAAEDBAAAAA
+IsActiveChildFrame=False
+[WorkState_v1_2.Frames.ChildFrames.Document-9]
+ptn_Child1=ViewFrame-0
+[WorkState_v1_2.Frames.ChildFrames.Document-9.ViewFrame-0]
+DocPathName=C:\Project_CVS\Graphic_Equalizer\src\audio.hcc
+DocumentString=
+DocTemplateIndex=4
+WindowPlacement=MCAAAAAACAAAAAAADAAAAAAAPPPPPPPPPPPPPPPPMPPPPPPPJOPPPPPPGBAAAAAAGBAAAAAACBDAAAAAKEBAAAAA
+IsActiveChildFrame=True
+[WorkState_v1_2.Frames.ChildFrames.Document-10]
+ptn_Child1=ViewFrame-0
+[WorkState_v1_2.Frames.ChildFrames.Document-10.ViewFrame-0]
+DocPathName=C:\Project_CVS\Graphic_Equalizer\include\display_shared.hch
+DocumentString=
+DocTemplateIndex=5
+WindowPlacement=MCAAAAAAAAAAAAAABAAAAAAAPPPPPPPPPPPPPPPPMPPPPPPPJOPPPPPPCEAAAAAACEAAAAAAGBDAAAAAMKBAAAAA
+IsActiveChildFrame=False
+[WorkState_v1_2.Frames.ChildFrames.Document-11]
+ptn_Child1=ViewFrame-0
+[WorkState_v1_2.Frames.ChildFrames.Document-11.ViewFrame-0]
+DocPathName=C:\project_cvs\graphic_equalizer\include\display.hch
+DocumentString=
+DocTemplateIndex=5
+WindowPlacement=MCAAAAAAAAAAAAAABAAAAAAAPPPPPPPPPPPPPPPPMPPPPPPPJOPPPPPPIFAAAAAAIFAAAAAAHEDAAAAACMBAAAAA
+IsActiveChildFrame=False
+[WorkState_v1_2.Frames.ChildFrames.Document-12]
+ptn_Child1=ViewFrame-0
+[WorkState_v1_2.Frames.ChildFrames.Document-12.ViewFrame-0]
+DocPathName=C:\Project_CVS\Graphic_Equalizer\include\mouse.hch
+DocumentString=
+DocTemplateIndex=5
+WindowPlacement=MCAAAAAAAAAAAAAABAAAAAAAPPPPPPPPPPPPPPPPMPPPPPPPJOPPPPPPOGAAAAAAOGAAAAAANFDAAAAAINBAAAAA
+IsActiveChildFrame=False
+[WorkState_v1_2.Frames.ChildFrames.Document-13]
+ptn_Child1=ViewFrame-0
+[WorkState_v1_2.Frames.ChildFrames.Document-13.ViewFrame-0]
+DocPathName=C:\Project_CVS\Graphic_Equalizer\include\events.hch
+DocumentString=
+DocTemplateIndex=5
+WindowPlacement=MCAAAAAAAAAAAAAABAAAAAAAPPPPPPPPPPPPPPPPMPPPPPPPJOPPPPPPGBAAAAAAGBAAAAAACBDAAAAAKEBAAAAA
+IsActiveChildFrame=False
+[WorkState_v1_2.Frames.ChildFrames.Document-14]
+ptn_Child1=ViewFrame-0
+[WorkState_v1_2.Frames.ChildFrames.Document-14.ViewFrame-0]
+DocPathName=C:\Project_CVS\Graphic_Equalizer\include\eventhandler_shared.hch
+DocumentString=
+DocTemplateIndex=5
+WindowPlacement=MCAAAAAAAAAAAAAABAAAAAAAPPPPPPPPPPPPPPPPMPPPPPPPJOPPPPPPIFAAAAAAIFAAAAAAEFDAAAAAMIBAAAAA
+IsActiveChildFrame=False
+[WorkState_v1_2.Frames.ChildFrames.Document-15]
+ptn_Child1=ViewFrame-0
+[WorkState_v1_2.Frames.ChildFrames.Document-15.ViewFrame-0]
+DocPathName=C:\Project_CVS\Graphic_Equalizer\include\audio.hch
+DocumentString=
+DocTemplateIndex=5
+WindowPlacement=MCAAAAAAAAAAAAAABAAAAAAAPPPPPPPPPPPPPPPPMPPPPPPPJOPPPPPPMCAAAAAAMCAAAAAAICDAAAAAAGBAAAAA
+IsActiveChildFrame=False
+[WorkState_v1_2.Frames.ChildFrames.Document-4]
+ptn_Child1=ViewFrame-0
+[WorkState_v1_2.Frames.ChildFrames.Document-4.ViewFrame-0]
+DocPathName=C:\Project_CVS\Graphic_Equalizer\src\main.hcc
+DocumentString=
+DocTemplateIndex=4
+WindowPlacement=MCAAAAAAAAAAAAAABAAAAAAAPPPPPPPPPPPPPPPPMPPPPPPPJOPPPPPPMCAAAAAAMCAAAAAAICDAAAAAAGBAAAAA
+IsActiveChildFrame=False
+[WorkState_v1_2.Frames.ChildFrames.Document-5]
+ptn_Child1=ViewFrame-0
+[WorkState_v1_2.Frames.ChildFrames.Document-5.ViewFrame-0]
+DocPathName=C:\Project_CVS\Graphic_Equalizer\include\smartmedia.hch
+DocumentString=
+DocTemplateIndex=5
+WindowPlacement=MCAAAAAAAAAAAAAABAAAAAAAPPPPPPPPPPPPPPPPMPPPPPPPJOPPPPPPIFAAAAAAIFAAAAAAEFDAAAAAMIBAAAAA
+IsActiveChildFrame=False
+[WorkState_v1_2.Frames.ChildFrames.Document-6]
+ptn_Child1=ViewFrame-0
+[WorkState_v1_2.Frames.ChildFrames.Document-6.ViewFrame-0]
+DocPathName=C:\Project_CVS\Graphic_Equalizer\include\fft.hch
+DocumentString=
+DocTemplateIndex=5
+WindowPlacement=MCAAAAAAAAAAAAAABAAAAAAAPPPPPPPPPPPPPPPPMPPPPPPPJOPPPPPPOGAAAAAAOGAAAAAAKGDAAAAACKBAAAAA
+IsActiveChildFrame=False
+[WorkState_v1_2.Frames.ChildFrames.Document-7]
+ptn_Child1=ViewFrame-0
+[WorkState_v1_2.Frames.ChildFrames.Document-7.ViewFrame-0]
+DocPathName=C:\Project_CVS\Graphic_Equalizer\include\configuration.hch
+DocumentString=
+DocTemplateIndex=5
+WindowPlacement=MCAAAAAACAAAAAAADAAAAAAAPPPPPPPPPPPPPPPPMPPPPPPPJOPPPPPPGBAAAAAAGBAAAAAACBDAAAAAKEBAAAAA
+IsActiveChildFrame=True
+[WorkState_v1_2]
+ptn_Child1=Frames
+ptn_Child2=DK Design Suite Preferences
+ptn_Child3=Breakpoints
+ptn_Child4=WatchVars
+[WorkState_v1_2.Frames]
+ptn_Child1=ChildFrames
+[WorkState_v1_2.Frames.ChildFrames]
+ptn_Child1=Document-0
+ptn_Child2=Document-1
+ptn_Child3=Document-2
+ptn_Child4=Document-3
+[WorkState_v1_2.Frames.ChildFrames.Document-0]
+ptn_Child1=ViewFrame-0
+[WorkState_v1_2.Frames.ChildFrames.Document-0.ViewFrame-0]
+DocPathName=C:\Project_CVS\Graphic_Equalizer\src\display.hcc
+DocumentString=
+DocTemplateIndex=4
+WindowPlacement=MCAAAAAAAAAAAAAABAAAAAAAPPPPPPPPPPPPPPPPMPPPPPPPJOPPPPPPAAAAAAAAAAAAAAAAALCAAAAAADBAAAAA
+IsActiveChildFrame=False
+[WorkState_v1_2.Frames.ChildFrames.Document-1]
+ptn_Child1=ViewFrame-0
+[WorkState_v1_2.Frames.ChildFrames.Document-1.ViewFrame-0]
+DocPathName=C:\Project_CVS\Graphic_Equalizer\src\eventhandler.hcc
+DocumentString=
+DocTemplateIndex=4
+WindowPlacement=MCAAAAAAAAAAAAAABAAAAAAAPPPPPPPPPPPPPPPPMPPPPPPPJOPPPPPPCEAAAAAACEAAAAAAGPCAAAAAGHBAAAAA
+IsActiveChildFrame=False
+[WorkState_v1_2.Frames.ChildFrames.Document-2]
+ptn_Child1=ViewFrame-0
+[WorkState_v1_2.Frames.ChildFrames.Document-2.ViewFrame-0]
+DocPathName=C:\Project_CVS\Graphic_Equalizer\include\eventhandler.hch
+DocumentString=
+DocTemplateIndex=5
+WindowPlacement=MCAAAAAACAAAAAAADAAAAAAAPPPPPPPPPPPPPPPPMPPPPPPPJOPPPPPPIFAAAAAAIFAAAAAAMADAAAAAMIBAAAAA
+IsActiveChildFrame=True
+[WorkState_v1_2.Frames.ChildFrames.Document-3]
+ptn_Child1=ViewFrame-0
+[WorkState_v1_2.Frames.ChildFrames.Document-3.ViewFrame-0]
+DocPathName=C:\Project_CVS\Graphic_Equalizer\include\eventhandler_shared.hch
+DocumentString=
+DocTemplateIndex=5
+WindowPlacement=MCAAAAAAAAAAAAAABAAAAAAAPPPPPPPPPPPPPPPPMPPPPPPPJOPPPPPPMCAAAAAAMCAAAAAAAOCAAAAAAGBAAAAA
+IsActiveChildFrame=False
+[WorkState_v1_2.DK Design Suite Preferences]
+Active Project Index=0
+Active Configuration Index=4
+[WorkState_v1_2.WatchVars]
+ptn_Child1=Watch0
+ptn_Child2=Watch1
+ptn_Child3=Watch2
+ptn_Child4=Watch3
+[WorkState_v1_2.WatchVars.Watch0]
+empty=True
+[WorkState_v1_2.WatchVars.Watch1]
+empty=True
+[WorkState_v1_2.WatchVars.Watch2]
+empty=True
+[WorkState_v1_2.WatchVars.Watch3]
+empty=True
diff --git a/Graphic_Equalizer_Original_Port/data/graph_mask.raw b/Graphic_Equalizer_Original_Port/data/graph_mask.raw
new file mode 100644
index 0000000..9125381
--- /dev/null
+++ b/Graphic_Equalizer_Original_Port/data/graph_mask.raw
@@ -0,0 +1,639 @@
+€€€€€~~~~~}}}}|||||{{{{{zzzzzzyyyxxxxxxwwwwwvvvvvvuuuutttttssssssrrrrrrrqqqpppppppoooooonnnnmmmmmmllllllkkkkkkkkjjjiiiiiiiihhhhhhggggggggfffffeeeeeeedddddddddcccccccbbbbbbbaaaaaaaa``````````_______^^^^^^^^^^]]]]]]]]]]]]\\\\\\\\\\\\\[[[[[[[[[[ZZZZZZZZZZZZZZZZZZYYYYYYYYYYYYYYYYYYYYYYYYYYYYXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXYYYYYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZ[[[[[[[[[[\\\\\\\\\\\\]]]]]]]]]]]]]^^^^^^^^^^______``````````aaaaaaaaabbbbbbccccccccddddddddeeeeeeeefffffggggggghhhhhhhiiiiiiijjjjkkkkkkklllllllmmmmmmnnnnooooooppppppqqqqrrrrrrsssssstttttuuuuvvvvvvwwwwwxxxxxxxyyzzzzzz{{{{{|||||}}}}~~~~~€€€€€€€€€€~~~~~}}}}|||||{{{{{zzzzzzyyyxxxxxxwwwwwvvvvvvuuuutttttssssssrrrrrrqqqqppppppooooooonnnmmmmmmmllllllkkkkkkjjjjjiiiiiihhhhhhhhgggggggffffeeeeeeeeedddddddccccccccbbbbbbaaaaaaaaa`````````______^^^^^^^^^^^]]]]]]]]]]]\\\\\\\\\\\\\[[[[[[[[[ZZZZZZZZZZZZZZZZYYYYYYYYYYYYYYYYYYYYYYYYXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXYYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZ[[[[[[[[[\\\\\\\\\\\\]]]]]]]]]]]^^^^^^^^^^^^______`````````aaaaaaaabbbbbbbcccccccddddddddeeeeeeeeffffgggggggghhhhhhhiiiiiijjjjjkkkkkkkllllllmmmmmmnnnnooooooppppppqqqqrrrrrrssssssstttttuuuvvvvvvvwwwwwxxxxxxyyzzzzzzz{{{{{|||||}}}~~~~~€€€€€€€€~~~~~}}}}|||||{{{{{zzzzzyyyxxxxxxxwwwwwvvvvvvuuuutttttssssssrrrrrqqqqqpppppoooooonnnnnmmmmmmlllllllkkkkkkjjjjiiiiiiihhhhhhggggggggfffffeeeeeeeddddddddcccccccbbbbbbbaaaaaaaa`````````______^^^^^^^^^^]]]]]]]]]]]]\\\\\\\\\\\[[[[[[[[[ZZZZZZZZZZZZZZZZYYYYYYYYYYYYYYYYYYYYXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZ[[[[[[[[[\\\\\\\\\\\]]]]]]]]]]]^^^^^^^^^^______`````````aaaaaaaaabbbbbbccccccccdddddddeeeeeeeefffffggggggghhhhhhiiiiiiiijjjjkkkkkkllllllmmmmmmnnnnnooooooopppppqqqqqrrrrrsssssstttttuuuuvvvvvvwwwwwxxxxxxyyyyzzzzz{{{{{|||||}}}}~~~~~€€€€€~~~~~}}}|||||{{{{{zzzzzyyyyxxxxxxwwwwwvvvvvuuuuttttttsssssssrrrrrqqqpppppppoooooonnnnmmmmmmllllllkkkkkkjjjjjiiiiiiihhhhhhhggggggfffffeeeeeeeedddddddccccccccbbbbbbaaaaaaaa``````````______^^^^^^^^^]]]]]]]]]]]\\\\\\\\\\\[[[[[[[[[ZZZZZZZZZZZZZZYYYYYYYYYYYYYYYYYYXXXXXXXXXXXXXXXXXXXXXXXXXXXXWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWXXXXXXXXXXXXXXXXXXXXXXXXXXXYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZ[[[[[[[[\\\\\\\\\\\\]]]]]]]]]]]^^^^^^^^^______``````````aaaaaaabbbbbbbcccccccddddddddeeeeeeefffffgggggghhhhhhhhiiiiiijjjjjkkkkkklllllllmmmmmmnnnnooooooppppppqqqqrrrrrssssssttttttuuuuvvvvvwwwwwxxxxxxyyyyzzzzz{{{{{|||||}}}}~~~~~€€~~~~~}}}}|||||{{{{{zzzzzyyyyxxxxxxwwwwwvvvvvuuuuttttttsssssrrrrrrqqqqppppppooooooonnnmmmmmmmllllllkkkkkkjjjjiiiiiiihhhhhhhgggggggffffeeeeeeeddddddddcccccccccbbbbbaaaaaaa`````````______^^^^^^^^^^]]]]]]]]]]\\\\\\\\\\\[[[[[[[[[ZZZZZZZZZZZZZZYYYYYYYYYYYYYYYYXXXXXXXXXXXXXXXXXXXXXXXWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWXXXXXXXXXXXXXXXXXXXXXXYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZ[[[[[[[[[\\\\\\\\\\\]]]]]]]]]]^^^^^^^^^^_______````````aaaaaaaabbbbbcccccccccdddddddeeeeeeeefffgggggggghhhhhhiiiiiiiijjjkkkkkkkllllllmmmmmmnnnnooooooppppppqqqqrrrrrrssssstttttttuuuvvvvvwwwwwxxxxxxxyyyzzzzz{{{{{|||||}}}}~~~~~€~~~~~}}}}|||||{{{{{zzzzzyyyyxxxxxxwwwwwvvvvvuuuuttttttsssssrrrrrrqqqqppppppooooonnnnnmmmmmmlllllllkkkkkkjjjjiiiiiihhhhhhhgggggggfffffeeeeeeeddddddddcccccccbbbbbaaaaaaaa````````_______^^^^^^^^^^]]]]]]]]]]\\\\\\\\\\[[[[[[[ZZZZZZZZZZZZZZYYYYYYYYYYYYYYYXXXXXXXXXXXXXXXXXXXXWWWWWWWWWWWWWWWWWWWWVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVWWWWWWWWWWWWWWWWWWWWXXXXXXXXXXXXXXXXXXXXYYYYYYYYYYYYYYYZZZZZZZZZZZZZ[[[[[[[[\\\\\\\\\\]]]]]]]]]]^^^^^^^^^^______`````````aaaaaaabbbbbccccccccdddddddeeeeeeeefffffgggggghhhhhhhhiiiiiijjjjkkkkkkllllllmmmmmmnnnnnooooopppppppqqqrrrrrrrsssssttttttuuuuvvvvvwwwwwxxxxxxyyyyzzzzz{{{{{|||||}}}~~~~~~~~~~}}}}|||||{{{{{zzzzzyyyxxxxxxxwwwwwvvvvvuuutttttttsssssrrrrrrqqqqpppppoooooonnnnmmmmmmllllllkkkkkkjjjjjiiiiiiihhhhhhgggggggffffeeeeeeeedddddddccccccccbbbbbaaaaaaa`````````______^^^^^^^^^]]]]]]]]]]\\\\\\\\\\[[[[[[[ZZZZZZZZZZZZZYYYYYYYYYYYYYYYXXXXXXXXXXXXXXXXXWWWWWWWWWWWWWWWWWVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVWWWWWWWWWWWWWWWWXXXXXXXXXXXXXXXXXXYYYYYYYYYYYYYYYZZZZZZZZZZZZ[[[[[[[[\\\\\\\\\\]]]]]]]]]]^^^^^^^^_______````````aaaaaaaabbbbbcccccccddddddddeeeeeeeffffgggggggghhhhhhiiiiiijjjjjkkkkkklllllllmmmmmmnnnnoooooopppppqqqqrrrrrrsssssttttttuuuuvvvvvwwwwwxxxxxxyyyyzzzzz{{{{{|||||}}}}~~~~~~~~~~}}}|||||{{{{{zzzzzyyyyxxxxxwwwwwwvvvvvuuuuttttttsssssrrrrrrrqqqpppppooooooonnnmmmmmmmllllllkkkkkkjjjjiiiiiihhhhhhhhggggggfffffeeeeeeddddddddcccccccbbbbbaaaaaaaaa```````_______^^^^^^^^]]]]]]]]]]\\\\\\\\\\[[[[[[[[ZZZZZZZZZZZYYYYYYYYYYYYYYXXXXXXXXXXXXXXXXWWWWWWWWWWWWWWVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVWWWWWWWWWWWWWXXXXXXXXXXXXXXXXXYYYYYYYYYYYYYZZZZZZZZZZZZ[[[[[[[\\\\\\\\\\]]]]]]]]]]^^^^^^^^^______````````aaaaaaaabbbbbccccccccdddddddeeeeeeefffffgggggghhhhhhhiiiiiiijjjkkkkkkkllllllmmmmmmnnnnoooooopppppqqqqrrrrrrsssssttttttuuuuvvvvvwwwwwwxxxxxyyyyzzzzz{{{{{|||||}}}}~~~~~~~~~~}}}}|||||{{{{{zzzzzyyyyxxxxxwwwwwwvvvvvuuuutttttssssssrrrrrqqqqppppppoooooonnnnmmmmmmlllllllkkkkkkjjjjiiiiiihhhhhhggggggggfffeeeeeeeeddddddccccccccbbbbbaaaaaaaa````````______^^^^^^^^^]]]]]]]]]\\\\\\\\\\[[[[[[[ZZZZZZZZZZZYYYYYYYYYYYYYXXXXXXXXXXXXXXXWWWWWWWWWWWWVVVVVVVVVVVVVVVVVVVVVVVVVVVVUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVVVVVVVVVVVVVVVVVVVVWWWWWWWWWWWWWXXXXXXXXXXXXXXXYYYYYYYYYYYYZZZZZZZZZZZ[[[[[[[[\\\\\\\\\\]]]]]]]]]^^^^^^^^_______```````aaaaaaaaabbbbbcccccccdddddddeeeeeeeffffggggggghhhhhhhiiiiiijjjjkkkkkkllllllmmmmmmnnnnoooooopppppppqqqrrrrrssssssstttttuuuvvvvvwwwwwwwxxxxxyyyzzzzz{{{{{|||||}}}}~~~~~~~~~}}}}|||||{{{{{zzzzzyyyyxxxxxwwwwwwvvvvvuuuutttttssssssrrrrrqqqqppppppoooooonnnnmmmmmllllllkkkkkkjjjjjiiiiiiihhhhhhggggggfffffeeeeeeddddddddcccccccbbbbbaaaaaaaa```````_______^^^^^^^^]]]]]]]]]\\\\\\\\\\[[[[[[ZZZZZZZZZZZZYYYYYYYYYYYYXXXXXXXXXXXXXXWWWWWWWWWWWVVVVVVVVVVVVVVVVVVVVVVVUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVVVVVVVVVVVVVVVWWWWWWWWWWWWXXXXXXXXXXXXXYYYYYYYYYYYYYZZZZZZZZZZZ[[[[[[\\\\\\\\\\]]]]]]]]]^^^^^^^^^______````````aaaaaaabbbbbccccccccdddddddeeeeeefffffggggggghhhhhhiiiiiijjjjjkkkkkklllllllmmmmmnnnoooooooppppppqqqqrrrrrsssssstttttuuuuvvvvvwwwwwwxxxxxyyyyzzzzz{{{{{|||||}}}~~~~~~~~}}}}|||||{{{{{zzzzzyyyxxxxxwwwwwwwvvvvvuuutttttsssssssrrrrrqqqpppppppooooonnnmmmmmmmllllllkkkkkkjjjjiiiiiihhhhhhggggggggffffeeeeeeeddddddccccccccbbbbbaaaaaaa````````______^^^^^^^^]]]]]]]]]]\\\\\\\\[[[[[[[ZZZZZZZZZZZYYYYYYYYYYYYXXXXXXXXXXXXXWWWWWWWWWWWVVVVVVVVVVVVVVVVVVVUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVVVVVVVVVVVWWWWWWWWWWWWXXXXXXXXXXXXYYYYYYYYYYYYYZZZZZZZZZZZ[[[[[[\\\\\\\\\]]]]]]]]]]^^^^^^^_______```````aaaaaaaabbbbbcccccccddddddeeeeeeeeffffggggggghhhhhhiiiiiiijjjkkkkkkkllllllmmmmmmnnnnoooooppppppqqqqrrrrrsssssstttttuuuuvvvvvwwwwwwxxxxxyyyyzzzzz{{{{{|||||}}}}~~~~~}}}|||||{{{{{zzzzzzzyyxxxxxwwwwwwvvvvvuuuutttttssssssrrrrrqqqqppppppooooonnnnmmmmmmlllllllkkkkkkjjjjiiiiiihhhhhhggggggfffffeeeeeeedddddddccccccbbbbbaaaaaaaa```````_______^^^^^^^]]]]]]]]]\\\\\\\\\\[[[[[[ZZZZZZZZZZYYYYYYYYYYYXXXXXXXXXXXXXXWWWWWWWWWVVVVVVVVVVVVVVVVVVVUUUUUUUUUUUUUUUUUUUUUUUUUUTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVVVVVVVVVVVVWWWWWWWWXXXXXXXXXXXXXXYYYYYYYYYYYZZZZZZZZZZ[[[[[[[\\\\\\\\\\]]]]]]]]^^^^^^^^______````````aaaaaaabbbbbccccccddddddddeeeeeefffffgggggghhhhhhhiiiiiijjjjkkkkkkllllllmmmmmmnnnnoooooppppppqqqqrrrrrsssssstttttuuuuvvvvvwwwwwwxxxxxyyyzzzzzz{{{{{|||||}}}}~~~~}}|||||{{{{{zzzzzzyyyxxxxxwwwwwwvvvvvuuuutttttssssssrrrrrqqqqpppppoooooonnnnmmmmmmlllllkkkkkkjjjjjiiiiiiihhhhhhggggggffffeeeeeeedddddddcccccccbbbbaaaaaaa`````````_____^^^^^^^^]]]]]]]]\\\\\\\\\[[[[[[[[ZZZZZZZZZZYYYYYYYYYYXXXXXXXXXXXXWWWWWWWWWWVVVVVVVVVVVVVVVUUUUUUUUUUUUUUUUUUUUUUUTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVVVVVVVVWWWWWWWWWWXXXXXXXXXXXXXYYYYYYYYYYZZZZZZZZZZ[[[[[[[\\\\\\\\\]]]]]]]]]^^^^^^^_____`````````aaaaaaaabbbccccccccddddddeeeeeeeefffggggggghhhhhhiiiiiijjjjjkkkkkklllllmmmmmmmnnnooooooopppppqqqrrrrrssssssstttttuuuvvvvvwwwwwwwxxxxxyyzzzzzz{{{{{|||||}}}~~}}}|||||{{{{{zzzzzzyyyxxxxxxwwwwwvvvvvuuuutttttsssssrrrrrrqqqqpppppoooooonnnnmmmmmmlllllkkkkkkjjjjiiiiiihhhhhhgggggggfffffeeeeeeddddddccccccccbbbbbaaaaaaa````````_____^^^^^^^]]]]]]]]]\\\\\\\\\[[[[[[ZZZZZZZZZZYYYYYYYYYYYXXXXXXXXXXXWWWWWWWWWVVVVVVVVVVVVVVVUUUUUUUUUUUUUUUUUUUTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUVVVVVVVVVVVVVVVWWWWWWWWWXXXXXXXXXXXYYYYYYYYYYYYZZZZZZZZZZ[[[[[[\\\\\\\\\]]]]]]]]^^^^^^^^_____```````aaaaaaaabbbbbcccccccdddddddeeeeeefffffgggggghhhhhhiiiiiiijjjkkkkkkklllllmmmmmmnnnnoooooopppppqqqqrrrrrrssssstttttuuuuvvvvvwwwwwxxxxxxyyzzzzzzz{{{{{|||||}}~}}||||||{{{{{zzzzzyyxxxxxxxwwwwwvvvvvuuutttttsssssrrrrrrrqqqpppppooooooonnnmmmmmlllllllkkkkkkjjjjiiiiiihhhhhhggggggffffeeeeeeeeddddddccccccbbbbbaaaaaaaa```````_____^^^^^^^^]]]]]]]]\\\\\\\\\[[[[[[ZZZZZZZZZZYYYYYYYYYYXXXXXXXXXXXXWWWWWWWWVVVVVVVVVVVVVVUUUUUUUUUUUUUUUUUUTTTTTTTTTTTTTTTTTTTTTTTTTTSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUVVVVVVVVVVVVVVWWWWWWWWWXXXXXXXXXXXYYYYYYYYYYZZZZZZZZZZ[[[[[[\\\\\\\\\]]]]]]]]]^^^^^^^_____````````aaaaaaabbbbbcccccccddddddeeeeeeeffffgggggghhhhhhhiiiiiijjjjkkkkkkllllllmmmmmnnnnoooooopppppqqqqrrrrrrssssstttttuuuuvvvvvwwwwwxxxxxxyyyzzzzz{{{{{||||||}}}}|||||{{{{{zzzzzyyxxxxxxwwwwwvvvvvuuuutttttsssssrrrrrrqqqqpppppoooooonnnnmmmmmllllllkkkkkkkjjjiiiiiiihhhhhhggggggffffeeeeeeddddddccccccccbbbbbaaaaaa````````_____^^^^^^^^]]]]]]]]\\\\\\\\\[[[[[[ZZZZZZZZZYYYYYYYYYYXXXXXXXXXXXWWWWWWWVVVVVVVVVVVVVVUUUUUUUUUUUUUUUUTTTTTTTTTTTTTTTTTTTTTTSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUVVVVVVVVVVVVVVWWWWWWWWXXXXXXXXXXXYYYYYYYYYYZZZZZZZZZ[[[[[[\\\\\\\\\]]]]]]]^^^^^^^^^_____```````aaaaaaabbbbbcccccccddddddeeeeeeefffggggggghhhhhhiiiiiijjjjkkkkkkllllllmmmmmnnnnoooooopppppqqqqrrrrrrssssstttttuuuuvvvvvwwwwwxxxxxxyyyzzzzz{{{{{|||||}}|||||{{{{{zzzzzyyyyxxxxxwwwwwvvvvvuuuutttttsssssrrrrrrqqqqpppppooooonnnnmmmmmmllllllkkkkkjjjjiiiiiihhhhhhgggggggfffffeeeeeeddddddccccccbbbbbaaaaaaaa```````____^^^^^^^^^]]]]]]]\\\\\\\\\[[[[[ZZZZZZZZZZYYYYYYYYYYXXXXXXXXXXWWWWWWWWVVVVVVVVVVVVUUUUUUUUUUUUUUUTTTTTTTTTTTTTTTTTTTTSSSSSSSSSSSSSSSSSSSRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUVVVVVVVVVVVVVWWWWWWWXXXXXXXXXXYYYYYYYYYYZZZZZZZZZZ[[[[[\\\\\\\\\]]]]]]]]^^^^^^^^____````````aaaaaaabbbbbccccccdddddddeeeeeefffffgggggghhhhhhiiiiiiijjjkkkkklllllllmmmmmmnnnnooooopppppqqqrrrrrrrssssstttttuuuvvvvvwwwwwxxxxxyyyyzzzzz{{{{{|||||}||||{{{{{zzzzzyyyyxxxxxwwwwwvvvvvuuuutttttsssssrrrrrrqqqqpppppooooonnnmmmmmmmlllllkkkkkkjjjjiiiiiihhhhhhggggggffffeeeeeeddddddddccccccbbbbaaaaaaa````````_____^^^^^^^]]]]]]]]\\\\\\\\\[[[[[ZZZZZZZZYYYYYYYYYYXXXXXXXXXXWWWWWWWWVVVVVVVVVVVVUUUUUUUUUUUUUUTTTTTTTTTTTTTTTTTTSSSSSSSSSSSSSSSSRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUVVVVVVVVVVVVVWWWWWWWXXXXXXXXXXYYYYYYYYYYZZZZZZZZZ[[[[[\\\\\\\\\]]]]]]]^^^^^^^^_____```````aaaaaaaabbbcccccccdddddddeeeeeeffffgggggghhhhhhhiiiiiijjjjkkkkkklllllmmmmmmnnnnooooopppppqqqqrrrrrrssssstttttuuuuvvvvvwwwwwxxxxxyyyzzzzz{{{{{||||||||{{{{{zzzzzyyyyxxxxxwwwwwvvvvvuuutttttsssssrrrrrrrqqppppppooooonnnnmmmmmmlllllkkkkkkkjjjiiiiiiihhhhhhggggggffffeeeeeeddddddcccccccbbbbbaaaaaa```````_____^^^^^^^^]]]]]]]\\\\\\\\\[[[[[ZZZZZZZZZYYYYYYYYYYXXXXXXXXXXWWWWWWVVVVVVVVVVVVVUUUUUUUUUUUUTTTTTTTTTTTTTTTTSSSSSSSSSSSSSSRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTUUUUUUUUUUUUUVVVVVVVVVVVVWWWWWWWXXXXXXXXXXYYYYYYYYYYZZZZZZZZ[[[[[\\\\\\\\\]]]]]]]]^^^^^^^_____````````aaaaaabbbbbccccccddddddeeeeeeefffggggggghhhhhhiiiiiijjjjkkkkkklllllmmmmmmnnnnoooooppppppqqqrrrrrrssssstttttuuuuvvvvvwwwwwxxxxxyyyyzzzzz{{{{{|||||{{{{{zzzzzyyyxxxxxwwwwwvvvvvuuuutttttsssssrrrrrrqqqppppppooooonnnnmmmmmmlllllkkkkkkjjjjiiiiiihhhhhgggggggfffffeeeeeeddddddccccccbbbbaaaaaaaa```````____^^^^^^^]]]]]]]]\\\\\\\\\[[[[[ZZZZZZZZYYYYYYYYYXXXXXXXXXXWWWWWWWWVVVVVVVVVVVUUUUUUUUUUUUTTTTTTTTTTTTTTTSSSSSSSSSSSSRRRRRRRRRRRRRRRRRRRRRRRRRRQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQRRRRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSTTTTTTTTTTTTTTTUUUUUUUUUUUUUVVVVVVVVVVVWWWWWWWXXXXXXXXXXYYYYYYYYYZZZZZZZZZ[[[[[\\\\\\\\\]]]]]]]^^^^^^^^___````````aaaaaaabbbbccccccdddddddeeeeeefffffgggggghhhhhiiiiiijjjjkkkkkklllllmmmmmmmnnnooooopppppppqqrrrrrrssssstttttuuuuvvvvvwwwwwxxxxxyyyyzzzzz{{{{{||{{{{{zzzzzyyyyxxxxxwwwwwvvvvvuuuutttttsssssrrrrrrqqqppppppooooonnnnmmmmmllllllkkkkkkjjjjiiiiihhhhhhggggggffffeeeeeedddddddccccccbbbbbaaaaaa````````_____^^^^^^^]]]]]]]]\\\\\\\[[[[[ZZZZZZZZZYYYYYYYYYXXXXXXXXXXWWWWWWVVVVVVVVVVVUUUUUUUUUUUTTTTTTTTTTTTTTTSSSSSSSSSSRRRRRRRRRRRRRRRRRRRRRRRQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSTTTTTTTTTTTTTTTUUUUUUUUUUUVVVVVVVVVVVVWWWWWWXXXXXXXXXXYYYYYYYYYZZZZZZZZ[[[[[\\\\\\\\]]]]]]]^^^^^^^^_____```````aaaaaaabbbbbccccccddddddeeeeeeffffgggggghhhhhhhiiiiijjjkkkkkkkllllllmmmmmnnnnoooooppppppqqrrrrrrrssssstttttuuuvvvvvwwwwwxxxxxyyyyzzzzz{{{{{|{{{{zzzzzyyyyxxxxxwwwwwvvvvvuuuutttttsssssrrrrrrqqpppppppooooonnnmmmmmlllllllkkkkkjjjiiiiiiihhhhhhggggggffffeeeeeeddddddcccccccbbbbbaaaaaa``````_____^^^^^^^^]]]]]]]\\\\\\\\[[[[[ZZZZZZZZYYYYYYYYYXXXXXXXXXWWWWWWWVVVVVVVVVVUUUUUUUUUUUUTTTTTTTTTTTTTSSSSSSSSSSRRRRRRRRRRRRRRRRRRRQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQRRRRRRRRRRRRRRRRRRRSSSSSSSSSSTTTTTTTTTTTTTTUUUUUUUUUUUVVVVVVVVVVWWWWWWWWXXXXXXXXYYYYYYYYYZZZZZZZZZ[[[[[\\\\\\\]]]]]]]]^^^^^^^_____```````aaaaaabbbbbccccccddddddeeeeeeefffggggggghhhhhhiiiiiijjjjkkkkkllllllmmmmmnnnnoooooppppppqqqrrrrrrssssstttttuuuuvvvvvwwwwwxxxxxyyyzzzzz{{{{{{{{zzzzzyyyyxxxxxwwwwwvvvvvuuutttttsssssrrrrrrrqqppppppooooonnnnmmmmmllllllkkkkkjjjjiiiiiihhhhhhhgggggfffffeeeeeeddddddccccccbbbbaaaaaa````````_____^^^^^^]]]]]]]]\\\\\\\[[[[[ZZZZZZZZZYYYYYYYYYXXXXXXXXWWWWWWWVVVVVVVVVVUUUUUUUUUUUTTTTTTTTTTTTSSSSSSSSSSRRRRRRRRRRRRRRRRRRQQQQQQQQQQQQQQQQQQQQQQQQQQPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPQQQQQQQQQQQQQQQQQQQQQQQQQQQRRRRRRRRRRRRRRRRRSSSSSSSSSSTTTTTTTTTTTTTUUUUUUUUUUUVVVVVVVVVVWWWWWWXXXXXXXXXYYYYYYYYYZZZZZZZZ[[[[[\\\\\\\\]]]]]]]^^^^^^^_____```````aaaaaabbbbccccccdddddddeeeeeefffffggggghhhhhhiiiiiijjjjkkkkkllllllmmmmmnnnnoooooppppppqqqrrrrrrssssstttttuuuuvvvvvwwwwwxxxxxyyyyzzzzz{{{{{{zzzzzyyxxxxxwwwwwvvvvvuuuutttttsssssrrrrrrqqqppppppooooonnnnmmmmmllllllkkkkkjjjjiiiiiihhhhhggggggffffeeeeeedddddddccccccbbbbbaaaaaa``````_____^^^^^^^^]]]]]]\\\\\\\\[[[[[[ZZZZZZZYYYYYYYYYXXXXXXXXXWWWWWWVVVVVVVVVVUUUUUUUUUUTTTTTTTTTTTTTSSSSSSSSRRRRRRRRRRRRRRRRRQQQQQQQQQQQQQQQQQQQQQPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPQQQQQQQQQQQQQQQQQQQQQRRRRRRRRRRRRRRRRSSSSSSSSSTTTTTTTTTTTTUUUUUUUUUUVVVVVVVVVVWWWWWWWXXXXXXXXYYYYYYYYYZZZZZZZZ[[[[[[\\\\\\\]]]]]]]^^^^^^^_____``````aaaaaaabbbbbccccccddddddeeeeeeffffgggggghhhhhiiiiiiijjjkkkkklllllllmmmmmnnnooooopppppppqqrrrrrrssssstttttuuuuvvvvvwwwwwxxxxxyyyzzzzz{{{{{zzzzzyyxxxxxwwwwwvvvvvuuuutttttsssssrrrrrrqqqppppppooooonnnnmmmmmllllllkkkkkjjjjiiiiiihhhhhggggggffffeeeeeeddddddcccccccbbbaaaaaaa```````____^^^^^^^]]]]]]]]\\\\\\\[[[[[ZZZZZZZZYYYYYYYYYXXXXXXXXWWWWWVVVVVVVVVVUUUUUUUUUUTTTTTTTTTTTTTSSSSSSSSSRRRRRRRRRRRRRQQQQQQQQQQQQQQQQQQQPPPPPPPPPPPPPPPPPPPPOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPPPPPPPPPPPPPQQQQQQQQQQQQQQQQQQQRRRRRRRRRRRRRRSSSSSSSSSTTTTTTTTTTTTUUUUUUUUUUVVVVVVVVVVWWWWWXXXXXXXXXYYYYYYYYYZZZZZZZ[[[[[\\\\\\\\]]]]]]]^^^^^^^^___````````aaaaaabbbbccccccddddddeeeeeeefffggggggghhhhhiiiiiijjjjkkkkkllllllmmmmmnnnnoooooppppppqqrrrrrrrssssstttttuuuvvvvvwwwwwxxxxxyyyzzzzz{{zzzzzyyyxxxxxwwwwwvvvvvuuuutttttsssssrrrrrrqqpppppppooooonnnmmmmmlllllkkkkkkkjjjiiiiihhhhhhhggggggffffeeeeeeddddddccccccbbbbaaaaaa```````_____^^^^^^]]]]]]]\\\\\\\\[[[[[ZZZZZZZYYYYYYYYYXXXXXXXXWWWWWWVVVVVVVVVVUUUUUUUUUUTTTTTTTTTTTSSSSSSSSRRRRRRRRRRRRRQQQQQQQQQQQQQQQQQQPPPPPPPPPPPPPPPOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPPPPPPPPQQQQQQQQQQQQQQQQQRRRRRRRRRRRRRRSSSSSSSTTTTTTTTTTTTUUUUUUUUUUVVVVVVVVVVWWWWWWXXXXXXXYYYYYYYYYZZZZZZZZ[[[[[\\\\\\\]]]]]]]]^^^^^^_____``````aaaaaabbbbccccccdddddddeeeeeeffffgggggghhhhhhiiiiijjjjkkkkkklllllmmmmmnnnnoooooppppppqqqrrrrrrssssstttttuuuuvvvvvwwwwwxxxxxyyzzzzz{zzzzyyyyxxxxxwwwwwvvvvvuutttttsssssrrrrrrrqqppppppooooonnnnmmmmmlllllkkkkkkjjjjiiiiihhhhhhgggggfffffeeeeedddddddccccccbbbbbaaaaaa``````____^^^^^^^^]]]]]]\\\\\\\[[[[[ZZZZZZZZYYYYYYYYYXXXXXXXWWWWWWVVVVVVVVVUUUUUUUUUUTTTTTTTTTTTSSSSSSSSRRRRRRRRRRRRQQQQQQQQQQQQQQQQQPPPPPPPPPPPPPOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPPPPPPPQQQQQQQQQQQQQQQQRRRRRRRRRRRRRSSSSSSSTTTTTTTTTTTUUUUUUUUUUVVVVVVVVVWWWWWWXXXXXXXXYYYYYYYYYZZZZZZZ[[[[[\\\\\\\\]]]]]]^^^^^^^____``````aaaaaaabbbbbccccccddddddeeeeefffffggggghhhhhhiiiiijjjjkkkkkklllllmmmmmnnnnoooooppppppqqqrrrrrrssssstttttuuuvvvvvwwwwwxxxxxyyyzzzzzzzzyyyyxxxxxwwwwwvvvvvuutttttssssssrrrrrqqqppppppooooonnnnmmmmmlllllkkkkkkjjjjiiiiihhhhhhgggggffffeeeeeeddddddcccccccbbbaaaaaaa``````_____^^^^^^]]]]]]]]\\\\\\\[[[[ZZZZZZZYYYYYYYYYXXXXXXXXWWWWWWVVVVVVVVVUUUUUUUUUUTTTTTTTTTTSSSSSSSRRRRRRRRRRRRRQQQQQQQQQQQQQQQPPPPPPPPPPPOOOOOOOOOOOOOOOOOOOOOOOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPPPPQQQQQQQQQQQQQQQRRRRRRRRRRRRSSSSSSSSTTTTTTTTTTUUUUUUUUUUVVVVVVVVVWWWWWWXXXXXXXYYYYYYYYYZZZZZZZZ[[[\\\\\\\\]]]]]]]^^^^^^^_____``````aaaaaabbbbccccccddddddeeeeeeefffggggghhhhhhhiiiiijjjkkkkkkklllllmmmmmnnnooooopppppppqqrrrrrsssssstttttuuuvvvvvwwwwwxxxxxyyyyzzzzzyyyxxxxxwwwwwvvvvvuuuttttttsssssrrrrrqqqppppppooooonnnnmmmmmlllllkkkkkkjjjjiiiiihhhhhhgggggffffeeeeeeddddddccccccbbbbaaaaaa```````___^^^^^^^^]]]]]]\\\\\\\\[[[[[ZZZZZZZYYYYYYYYXXXXXXXWWWWWWVVVVVVVVVUUUUUUUUUTTTTTTTTTTSSSSSSSRRRRRRRRRRRRRQQQQQQQQQQQQQQPPPPPPPPPPOOOOOOOOOOOOOOOOOOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOPPPPPPPPPPQQQQQQQQQQQQQQRRRRRRRRRRRRSSSSSSSSTTTTTTTTTTUUUUUUUUVVVVVVVVVWWWWWWXXXXXXXXYYYYYYYZZZZZZZZ[[[[[\\\\\\\]]]]]]]^^^^^^^____``````aaaaaabbbbccccccdddddddeeeeeeffffggggghhhhhhiiiiijjjjkkkkkklllllmmmmmnnnnoooooppppppqqrrrrrssssstttttttuuvvvvvwwwwwxxxxxyyyyzzyyyyxxxxxwwwwwvvvvvuuuutttttsssssrrrrrqqqqpppppooooonnnmmmmmlllllkkkkkkkjjiiiiiihhhhhgggggggfffeeeeeeedddddccccccbbbbbaaaaaa``````____^^^^^^]]]]]]]]\\\\\\[[[[[ZZZZZZZZYYYYYYYXXXXXXXXWWWWWWVVVVVVVVVUUUUUUUUTTTTTTTTTTSSSSSSSRRRRRRRRRRRQQQQQQQQQQQQQQPPPPPPPPPPOOOOOOOOOOOOOOOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOPPPPPPPPPPQQQQQQQQQQQQQQRRRRRRRRRRRSSSSSSTTTTTTTTTTUUUUUUUUUVVVVVVVVVWWWWWWXXXXXXXYYYYYYYYZZZZZZZ[[[[[\\\\\\\]]]]]]]^^^^^^____``````aaaaaaabbbbbccccccdddddeeeeeeffffgggggghhhhhiiiiiijjjkkkkkklllllmmmmmnnnnooooopppppqqqqrrrrrssssstttttuuuvvvvvwwwwwxxxxxyyyyzyyyxxxxxwwwwwvvvvvuuuutttttsssssrrrrrqqqpppppooooonnnnmmmmmlllllkkkkkkjjjiiiiiihhhhhggggggffffeeeeeedddddcccccccbbbaaaaaaa``````_____^^^^^^]]]]]]\\\\\\\\[[[[ZZZZZZZYYYYYYYYXXXXXXXXWWWWWVVVVVVVVVUUUUUUUUUTTTTTTTTTSSSSSSSRRRRRRRRRRRQQQQQQQQQQQQPPPPPPPPPPOOOOOOOOOOOOOOOONNNNNNNNNNNNNNNNNNNNNNNNNNMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOPPPPPPPPPPQQQQQQQQQQQRRRRRRRRRRRSSSSSSSSTTTTTTTTTUUUUUUUUVVVVVVVVVWWWWWXXXXXXXXXYYYYYYYZZZZZZZZ[[[[\\\\\\\]]]]]]^^^^^^^_____``````aaaaaabbbbccccccdddddeeeeeeffffgggggghhhhhiiiiiiijjkkkkkklllllmmmmmnnnnooooopppppqqqqrrrrrssssstttttuuuuvvvvvwwwwwxxxxxyyzyyxxxxxwwwwwvvvvvuuutttttsssssrrrrrqqqqpppppooooonnnnmmmmmlllllkkkkkjjjjiiiiiihhhhhggggggffffeeeeeddddddccccccbbbbaaaaaa```````___^^^^^^^]]]]]]]\\\\\\[[[[[ZZZZZZZZYYYYYYYXXXXXXXXWWWWWVVVVVVVVVUUUUUUUTTTTTTTTTTSSSSSSRRRRRRRRRRRRQQQQQQQQQQQPPPPPPPPPOOOOOOOOOOOOOOOONNNNNNNNNNNNNNNNNNNNNMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOPPPPPPPPPQQQQQQQQQQQRRRRRRRRRRRSSSSSSTTTTTTTTTTUUUUUUUUVVVVVVVVVWWWWWXXXXXXXYYYYYYYYZZZZZZZ[[[[[\\\\\\]]]]]]]]^^^^^^____``````aaaaaabbbbccccccdddddddeeeeefffggggggghhhhhiiiiiijjjjkkkkklllllmmmmmnnnooooopppppqqqqrrrrrssssstttttuuuuvvvvvwwwwwxxxxxyyyyxxxwwwwwvvvvvuuuutttttsssssrrrrrqqqqpppppooooonnnnmmmmmlllllkkkkkjjjiiiiiiihhhhhggggggffffeeeeeddddddccccccbbbbaaaaaa``````____^^^^^^]]]]]]]\\\\\\\[[[[ZZZZZZZYYYYYYYYXXXXXXXWWWWWVVVVVVVVVUUUUUUUUTTTTTTTTTTSSSSSSRRRRRRRRRRQQQQQQQQQQQPPPPPPPPPOOOOOOOOOOOOOONNNNNNNNNNNNNNNNNNMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOPPPPPPPPQQQQQQQQQQQQRRRRRRRRRRSSSSSSTTTTTTTTTTUUUUUUUVVVVVVVVVWWWWWXXXXXXXXYYYYYYYZZZZZZZZ[[[\\\\\\\\]]]]]]^^^^^^____``````aaaaaaabbbcccccccddddddeeeeeffffgggggghhhhhiiiiiijjjjkkkkklllllmmmmmnnnnooooopppppqqqrrrrrssssstttttuuuuvvvvvwwwwwxxxxyyxxxxxwwwwwvvvvuuuutttttsssssrrrrrqqqqpppppooooonnnmmmmmlllllkkkkkjjjjiiiiiihhhhhgggggffffeeeeeedddddddcccccbbbaaaaaaa``````_____^^^^^^]]]]]]\\\\\\\[[[[[ZZZZZZYYYYYYYXXXXXXXXWWWWWVVVVVVVVVUUUUUUUTTTTTTTTTSSSSSSRRRRRRRRRRQQQQQQQQQQQPPPPPPPPOOOOOOOOOOOOOONNNNNNNNNNNNNNNNNMMMMMMMMMMMMMMMMMMMMMMMMMLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMMMMMMMMMMMMMMMMMNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOPPPPPPPQQQQQQQQQQQRRRRRRRRRRSSSSSSSTTTTTTTTUUUUUUUUVVVVVVVVVWWWWWXXXXXXXYYYYYYYYZZZZZZ[[[[[\\\\\\]]]]]]^^^^^^^_____``````aaaaaabbbbcccccddddddeeeeeeffffggggghhhhhiiiiiijjjjkkkkklllllmmmmmnnnnooooopppppqqqqrrrrrssssstttttuuuvvvvwwwwwxxxxxyxxxxwwwwwvvvvvuuutttttsssssrrrrrqqqpppppooooonnnnmmmmmlllllkkkkkjjjjiiiiiihhhhhgggggffffeeeeeedddddccccccbbbbaaaaaa```````___^^^^^^^]]]]]]\\\\\\\[[[[ZZZZZZZZYYYYYYXXXXXXXWWWWWVVVVVVVVVUUUUUUUUTTTTTTTTSSSSSSSRRRRRRRRRRQQQQQQQQQQPPPPPPPOOOOOOOOOOOOOONNNNNNNNNNNNNNNMMMMMMMMMMMMMMMMMMMMMLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMMMMMMMMMMMMMMNNNNNNNNNNNNNNNOOOOOOOOOOOOOPPPPPPPPQQQQQQQQQQRRRRRRRRRRSSSSSSTTTTTTTTTUUUUUUUVVVVVVVVVWWWWWXXXXXXXXYYYYYYZZZZZZZ[[[[\\\\\\\\]]]]]]^^^^^^____``````aaaaaabbbbccccccdddddeeeeeeefffggggghhhhhiiiiiiijjjkkkkklllllmmmmmnnnnooooopppppqqqqrrrrrssssstttttuuvvvvvwwwwwxxxxxxxxwwwwwvvvvvuutttttsssssrrrrrqqqqpppppooooonnnnmmmmmlllllkkkkkjjjjiiiiiihhhhhgggggffffeeeeeedddddccccccbbbbaaaaaa``````____^^^^^^]]]]]]]\\\\\\[[[[[ZZZZZZYYYYYYYYXXXXXXXWWWWWVVVVVVVVUUUUUUUTTTTTTTTTSSSSSSRRRRRRRRRQQQQQQQQQQPPPPPPPOOOOOOOOOOOOONNNNNNNNNNNNNNNMMMMMMMMMMMMMMMMMLLLLLLLLLLLLLLLLLLLKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLMMMMMMMMMMMMMMMMMMNNNNNNNNNNNNNNNOOOOOOOOOOOOPPPPPPPPQQQQQQQQQQRRRRRRRRSSSSSSSTTTTTTTTUUUUUUUUVVVVVVVWWWWWXXXXXXXXYYYYYYYZZZZZZZ[[[[[\\\\\\]]]]]]^^^^^^____``````aaaaaaabbbcccccccdddddeeeeeeffffggggghhhhhiiiiiijjjjkkkkklllllmmmmmnnnooooopppppqqqqrrrrrssssstttttuuuvvvvvwwwwwxxxxxwwwwwvvvvvuuuttttsssssrrrrrqqqqpppppooooonnnnmmmmmlllllkkkkkjjjiiiiihhhhhhhgggggfffeeeeeeedddddccccccbbbbaaaaaa`````_____^^^^^^]]]]]]\\\\\\\[[[ZZZZZZZZYYYYYYXXXXXXXXWWWWWVVVVVVVUUUUUUUUTTTTTTTTSSSSSSSRRRRRRRRQQQQQQQQQQPPPPPPPPOOOOOOOOOOONNNNNNNNNNNNNNMMMMMMMMMMMMMMMMLLLLLLLLLLLLLLLKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKLLLLLLLLLLLLLLLMMMMMMMMMMMMMMMMMNNNNNNNNNNNNNOOOOOOOOOOOOPPPPPPPQQQQQQQQQQRRRRRRRRRSSSSSSTTTTTTTTTUUUUUUUVVVVVVVVWWWWWXXXXXXXYYYYYYYZZZZZZZ[[[[\\\\\\]]]]]]^^^^^^^_____`````aaaaaabbbbccccccdddddeeeeeeffffggggghhhhhhiiiiijjjjkkkkklllllmmmmmnnnnooooopppppqqqrrrrrsssssttttuuuuvvvvvwwwwwxxwwwwwvvvvvuuuutttttsssssrrrrrqqqpppppooooonnnmmmmmlllllkkkkkjjjjiiiiihhhhhhgggggffffeeeeeddddddcccccccbbbaaaaa```````___^^^^^^^]]]]]]\\\\\\[[[[[ZZZZZZYYYYYYYYXXXXXXWWWWWVVVVVVVVUUUUUUUTTTTTTTTTSSSSSRRRRRRRRRRQQQQQQQQQPPPPPPPOOOOOOOOOOONNNNNNNNNNNNNMMMMMMMMMMMMMMMLLLLLLLLLLLLKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKLLLLLLLLLLLLLMMMMMMMMMMMMMMMNNNNNNNNNNNNOOOOOOOOOOOPPPPPPPPQQQQQQQQQRRRRRRRRRRSSSSSTTTTTTTTUUUUUUUUVVVVVVVWWWWWXXXXXXXYYYYYYYZZZZZZ[[[[[\\\\\\\]]]]]]^^^^^^____``````aaaaabbbbccccccddddddeeeeeffffggggghhhhhhiiiiijjjjkkkkklllllmmmmmnnnnooooopppppqqrrrrrssssstttttuuuuvvvvvwwwwwxwwwwvvvvvuuuutttttsssssrrrrrqqpppppooooonnnnmmmmmlllllkkkkkjjjjiiiiihhhhhhgggggffffeeeeeddddddcccccbbbbaaaaaa``````____^^^^^^]]]]]]]\\\\\\[[[[ZZZZZZZYYYYYYXXXXXXXXWWWWVVVVVVVUUUUUUUUUTTTTTTTSSSSSRRRRRRRRRQQQQQQQQQQPPPPPPOOOOOOOOOOOONNNNNNNNNNNNMMMMMMMMMMMMMMLLLLLLLLLLLKKKKKKKKKKKKKKKKKKKKKKKKKJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJKKKKKKKKKKKKKKKKKKKKKKKKKLLLLLLLLLLLLMMMMMMMMMMMMMNNNNNNNNNNNNNOOOOOOOOOOOPPPPPPQQQQQQQQQQRRRRRRRRRSSSSSTTTTTTTTUUUUUUUUVVVVVVVVWWWWXXXXXXXYYYYYYZZZZZZZZ[[[[\\\\\\]]]]]]^^^^^^____``````aaaaaaabbbcccccdddddddeeeeefffggggghhhhhhhiiiiijjjkkkkklllllmmmmmnnnnooooopppppqqqrrrrrssssstttttuuuvvvvvwwwwxwwwwvvvvvuuutttttsssssrrrrrqqpppppooooonnnnmmmmmlllllkkkkkjjjjiiiiihhhhhhgggggffffeeeeeddddddcccccbbbbaaaaaa``````____^^^^^^]]]]]]\\\\\\\[[[ZZZZZZZYYYYYYYXXXXXXWWWWWVVVVVVVVUUUUUUUTTTTTTTTSSSSSRRRRRRRRRQQQQQQQQQQPPPPPPOOOOOOOOOONNNNNNNNNNNMMMMMMMMMMMMMMLLLLLLLLLLKKKKKKKKKKKKKKKKKKKKKJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJKKKKKKKKKKKKKKKKKKKKKKLLLLLLLLLLMMMMMMMMMMMMMNNNNNNNNNNNNOOOOOOOOOOPPPPPPQQQQQQQQQQRRRRRRRRRSSSSSTTTTTTTUUUUUUUUVVVVVVVWWWWWXXXXXXYYYYYYYYZZZZZZ[[[[\\\\\\]]]]]]^^^^^^^___```````aaaaaabbbbcccccddddddeeeeeffffggggghhhhhhiiiiijjjjkkkkklllllmmmmmnnnooooopppppqqqrrrrrssssstttttuuvvvvvwwwwwwwwvvvvvuutttttsssssrrrrrqqqqpppppooooonnnmmmmmlllllkkkkkkjjiiiiihhhhhhhgggggfffeeeeedddddddcccccbbbaaaaaaa`````_____^^^^^]]]]]]\\\\\\[[[[[ZZZZZZYYYYYYYXXXXXXWWWWWVVVVVVVUUUUUUUUTTTTTTTSSSSSRRRRRRRRRQQQQQQQQQPPPPPPOOOOOOOOOONNNNNNNNNNNMMMMMMMMMMMMMLLLLLLLLLLKKKKKKKKKKKKKKKKKKKJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJKKKKKKKKKKKKKKKKKKKLLLLLLLLLLMMMMMMMMMMMMNNNNNNNNNNNOOOOOOOOOOPPPPPPPQQQQQQQQRRRRRRRRRSSSSSTTTTTTTTUUUUUUUVVVVVVVVWWWWWXXXXXXYYYYYYZZZZZZ[[[[[\\\\\\\]]]]]]^^^^^_____`````aaaaaabbbbcccccddddddeeeeeffffggggghhhhhhiiiiijjjkkkkkklllllmmmmmnnooooopppppqqqqrrrrrssssstttttuuuvvvvvwwwwwvvvvvuutttttsssssrrrrrqqqqpppppooooonnmmmmmlllllkkkkkkkjjiiiiihhhhhhgggggffffeeeeeddddddcccccbbbbaaaaaa`````____^^^^^^]]]]]]]\\\\\\[[[[ZZZZZZYYYYYYYXXXXXXXWWWWWVVVVVVUUUUUUUTTTTTTTTSSSSSSRRRRRRRRQQQQQQQQPPPPPPPOOOOOOOOOONNNNNNNNNNMMMMMMMMMMMMLLLLLLLLLKKKKKKKKKKKKKKKKJJJJJJJJJJJJJJJJJJJJJJJJJJIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJJJJJJJJJJJJJJJJJJJJJKKKKKKKKKKKKKKKKKLLLLLLLLMMMMMMMMMMMMMNNNNNNNNNNOOOOOOOOOOPPPPPPQQQQQQQQQRRRRRRRSSSSSSSTTTTTTTUUUUUUUUVVVVVVWWWWWXXXXXXYYYYYYYYZZZZZZ[[[[\\\\\\]]]]]]^^^^^^____`````aaaaaabbbbcccccddddddeeeeeffffggggghhhhhhiiiiijjjkkkkkklllllmmmmmnnnooooopppppqqqrrrrrssssstttttuuuvvvvvwwvvvvvuuuutttttssssrrrrrqqqqpppppooooonnmmmmmllllllkkkkkjjjiiiiiihhhhhgggggffffeeeeedddddccccccbbbbaaaaa``````____^^^^^^]]]]]]\\\\\\\[[[ZZZZZZZYYYYYYXXXXXXWWWWWVVVVVVVVUUUUUUTTTTTTTSSSSSSSRRRRRRRQQQQQQQQQPPPPPPOOOOOOOOONNNNNNNNNNNMMMMMMMMMMMLLLLLLLLLKKKKKKKKKKKKKKKJJJJJJJJJJJJJJJJJJJJIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJJJJJJJJJJJJJJJKKKKKKKKKKKKKKKLLLLLLLLLMMMMMMMMMMMNNNNNNNNNNNNOOOOOOOOPPPPPPPQQQQQQQQRRRRRRRRSSSSSSTTTTTTTTUUUUUUVVVVVVVWWWWWXXXXXXXYYYYYYZZZZZZ[[[[\\\\\\]]]]]]^^^^^^^___```````aaaaabbbcccccccdddddeeeeefffggggghhhhhiiiiiiijjkkkkkllllllmmmmmnnnooooopppppqqqqrrrrrssstttttuuuuvvvvvwvvvvuuuutttttsssssrrrrqqqpppppooooonnnnmmmmmlllllkkkkkjjjiiiiiihhhhhgggggffffeeeeedddddccccccbbbbaaaaa``````____^^^^^^]]]]]\\\\\\[[[[[ZZZZZZYYYYYYYXXXXXXWWWWWVVVVVVUUUUUUUUTTTTTTTSSSSSRRRRRRRRQQQQQQQQPPPPPPPOOOOOOOONNNNNNNNNNMMMMMMMMMMMMLLLLLLLKKKKKKKKKKKKKKKJJJJJJJJJJJJJJJJJJIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJJJJJJJJJJJJKKKKKKKKKKKKKKKLLLLLLLLMMMMMMMMMMMNNNNNNNNNNOOOOOOOOOPPPPPPQQQQQQQQQRRRRRRRSSSSSTTTTTTTTUUUUUUUVVVVVVVWWWWWXXXXXXYYYYYYZZZZZZ[[[[[\\\\\\\]]]]]^^^^^^____``````aaaaabbbbccccccdddddeeeeeffffggggghhhhhiiiiiijjkkkkklllllmmmmmnnnnooooopppppqqqqrrrrssssstttttuuuvvvvwvvvvuuutttttsssssrrrrrqqpppppooooonnnnmmmmmlllllkkkkkjjiiiiiiihhhhhgggggfffeeeeedddddcccccccbbbaaaaa```````___^^^^^]]]]]]]\\\\\\[[[[ZZZZZZYYYYYYXXXXXXWWWWWVVVVVVVVUUUUUUTTTTTTTTSSSSSRRRRRRRQQQQQQQQQPPPPPOOOOOOOOOONNNNNNNNNMMMMMMMMMMMLLLLLLLKKKKKKKKKKKKKKJJJJJJJJJJJJJJJJIIIIIIIIIIIIIIIIIIIIIIIIIHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJJJJJJJJJJJKKKKKKKKKKKKKKLLLLLLLLMMMMMMMMMMMNNNNNNNNNOOOOOOOOOOPPPPPQQQQQQQQRRRRRRRRSSSSSTTTTTTTUUUUUUUVVVVVVVWWWWWXXXXXXYYYYYYYZZZZZZ[[[[\\\\\\]]]]]]^^^^^____``````aaaaabbbbccccccdddddeeeeeffffggggghhhhhiiiiiijjjkkkkklllllmmmmmnnnooooopppppqqqrrrrrssssstttttuuvvvvvvvvuutttttsssssrrrrrqqqpppppooooonnnnmmmmmlllllkkkkkjjjiiiiihhhhhgggggffffeeeeedddddccccccbbbbaaaaa``````____^^^^^]]]]]]\\\\\\\[[[ZZZZZZZYYYYYYXXXXXXWWWWWVVVVVVUUUUUUUUTTTTTTSSSSSRRRRRRRRQQQQQQQQPPPPPOOOOOOOOONNNNNNNNNNMMMMMMMMMMLLLLLLLLKKKKKKKKKKKKJJJJJJJJJJJJJJJIIIIIIIIIIIIIIIIIIIIIHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIJJJJJJJJJJJJJJJKKKKKKKKKKKKKLLLLLLLMMMMMMMMMMNNNNNNNNNNOOOOOOOOOPPPPPQQQQQQQQQRRRRRRRSSSSSTTTTTTTUUUUUUUVVVVVVWWWWWXXXXXXXYYYYYYZZZZZZ[[[[\\\\\\]]]]]]^^^^^____``````aaaaabbbbccccccdddddeeeeeffffggggghhhhhiiiiijjjjkkkkklllllmmmmmnnnnooooopppppqqrrrrrssssstttttuuuvvvvvuuuttttsssssrrrrrqqqqppppooooonnnmmmmmlllllkkkkkjjjjiiiiihhhhhgggggffffeeeeedddddccccccbbbbaaaaa`````____^^^^^^]]]]]]\\\\\[[[[[ZZZZZZYYYYYYYXXXXXXWWWWVVVVVVUUUUUUUTTTTTTTTSSSSSRRRRRRRQQQQQQQQPPPPPOOOOOOOOONNNNNNNNNNMMMMMMMMLLLLLLLLKKKKKKKKKKKKJJJJJJJJJJJJJJIIIIIIIIIIIIIIIIIIHHHHHHHHHHHHHHHHHHGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIJJJJJJJJJJJJJJKKKKKKKKKKKKKLLLLLLLMMMMMMMMMNNNNNNNNNNOOOOOOOOOPPPPPQQQQQQQRRRRRRRRSSSSSTTTTTTTUUUUUUUUVVVVVVWWWWXXXXXXYYYYYYZZZZZZ[[[[[\\\\\]]]]]]]^^^^^^____`````aaaaabbbcccccccdddddeeeeefffggggghhhhhiiiiijjjjkkkkklllllmmmmmnnnnoooooppppqqqrrrrrsssssttttuuuuvvuuuutttttssssrrrrrqqqqpppppooooonnmmmmmlllllkkkkkjjjjiiiiihhhhhgggggffffeeeeedddddccccccbbaaaaaaa`````___^^^^^^^]]]]]\\\\\\[[[[ZZZZZZYYYYYYXXXXXXWWWWWVVVVVVVUUUUUUTTTTTTTSSSSSRRRRRRRRQQQQQQQPPPPPOOOOOOOOONNNNNNNNNMMMMMMMMMMLLLLLLKKKKKKKKKKKKKJJJJJJJJJJJJIIIIIIIIIIIIIIIIHHHHHHHHHHHHHHHGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIJJJJJJJJJJJJJKKKKKKKKKKKKLLLLLLLMMMMMMMMMMNNNNNNNNOOOOOOOOOPPPPPQQQQQQQQRRRRRRRSSSSSTTTTTTTTUUUUUUVVVVVVWWWWWXXXXXXYYYYYYYZZZZZZ[[[[\\\\\\]]]]]^^^^^^____`````aaaaaabbbccccccdddddeeeeeffffggggghhhhhiiiiijjjkkkkklllllmmmmmnnnooooopppppqqqqrrrrrssstttttuuuuvuuutttttsssssrrrrqqqpppppooooonnnmmmmmlllllkkkkkjjjjiiiiihhhhhgggggfffeeeeedddddcccccccbbaaaaaa`````____^^^^^^]]]]]\\\\\\\[[[ZZZZZZZYYYYYYXXXXXXWWWWVVVVVVUUUUUUUUTTTTTTSSSSSRRRRRRRQQQQQQQQPPPPPOOOOOOOOONNNNNNNNMMMMMMMMMMLLLLLLLKKKKKKKKKKKJJJJJJJJJJJJIIIIIIIIIIIIIIHHHHHHHHHHHHHGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHIIIIIIIIIIIIIIJJJJJJJJJJJJJKKKKKKKKKKKLLLLLLMMMMMMMMMMNNNNNNNNNOOOOOOOOOPPPPPQQQQQQQRRRRRRRRSSSSSTTTTTTUUUUUUUVVVVVVVWWWXXXXXXXYYYYYYZZZZZZ[[[[\\\\\\]]]]]^^^^^^____`````aaaaaabbbccccccdddddeeeeeffffggggghhhhhiiiiijjjjkkkkklllllmmmmmnnooooopppppqqqqrrrrssssstttttuuvuutttttsssssrrrrrqqpppppooooonnnmmmmmlllllkkkkkjjjiiiiihhhhhgggggffffeeeeedddddccccccbbbaaaaaa`````____^^^^^^]]]]]\\\\\\[[[[ZZZZZZYYYYYYYXXXXXXWWWWVVVVVVUUUUUUTTTTTTTTSSSSSRRRRRRQQQQQQQPPPPPPPOOOOOOONNNNNNNNNMMMMMMMMMLLLLLLKKKKKKKKKKKJJJJJJJJJJJIIIIIIIIIIIIIIHHHHHHHHHHHGGGGGGGGGGGGGGGGGGGGGGGGGFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFGGGGGGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHIIIIIIIIIIIIIIJJJJJJJJJJJKKKKKKKKKKKKLLLLLLMMMMMMMMMNNNNNNNNOOOOOOOOPPPPPPQQQQQQQQRRRRRRSSSSSTTTTTTTUUUUUUUVVVVVVWWWWXXXXXXYYYYYYZZZZZZ[[[[\\\\\\]]]]]^^^^^^^___`````aaaaaaabbccccccdddddeeeeeffffggggghhhhhiiiiijjjjkkkkklllllmmmmmnnooooopppppqqqrrrrrssssstttttuuuutttsssssrrrrrqqqpppppooooonnnnmmmmmlllkkkkkjjjjiiiiihhhhhgggggffffeeeeedddddcccccbbbbaaaaaa`````____^^^^^]]]]]]\\\\\\[[[[ZZZZZYYYYYYXXXXXXWWWWWVVVVVVVUUUUUUTTTTTTSSSSSRRRRRRRRQQQQQQQPPPPPOOOOOOOONNNNNNNNMMMMMMMMMLLLLLLKKKKKKKKKKJJJJJJJJJJJJIIIIIIIIIIIIHHHHHHHHHHHGGGGGGGGGGGGGGGGGGGGFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHIIIIIIIIIIIIIJJJJJJJJJJJKKKKKKKKKKLLLLLLMMMMMMMMMNNNNNNNNNOOOOOOOPPPPPQQQQQQQQRRRRRRRSSSSSTTTTTTTUUUUUUVVVVVVWWWWWXXXXXXYYYYYYYZZZZZ[[[\\\\\\\]]]]]]^^^^^____`````aaaaaabbbbcccccdddddeeeeefffggggghhhhhiiiiijjjjkkkkkllllmmmmmnnnnooooopppppqqrrrrrsssssttttuutttttssssrrrrrqqqqppppooooonnnmmmmmlllllkkkkkjjjiiiiihhhhhgggggffffeeeeedddddcccccbbbaaaaaaa`````___^^^^^]]]]]]]\\\\\[[[ZZZZZZZYYYYYYXXXXXXWWWWVVVVVVUUUUUUTTTTTTTTSSSSRRRRRRRQQQQQQQQPPPPPOOOOOOONNNNNNNNNMMMMMMMMMLLLLLLKKKKKKKKKJJJJJJJJJJJIIIIIIIIIIIIHHHHHHHHHHGGGGGGGGGGGGGGGGGGFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFGGGGGGGGGGGGGGGGGHHHHHHHHHHIIIIIIIIIIIIIJJJJJJJJJJJKKKKKKKKKLLLLLLMMMMMMMMMNNNNNNNNOOOOOOOOPPPPPQQQQQQQRRRRRRRRSSSSTTTTTTTUUUUUUVVVVVVVWWWXXXXXXXYYYYYYZZZZZZ[[[[\\\\\]]]]]]^^^^^____`````aaaaaabbbbcccccdddddeeeeeffffggggghhhhhiiiiijjkkkkklllllmmmmmnnnnoooooppppqqqrrrrrsssstttttuttttsssssrrrrqqqqpppppooonnnnmmmmmlllllkkkkkjjjiiiiihhhhhgggggfffeeeeedddddcccccccbbaaaaaa`````____^^^^^]]]]]]\\\\\[[[[ZZZZZZYYYYYYYXXXXXXWWWWVVVVVVUUUUUUTTTTTTSSSSSRRRRRRRQQQQQQQPPPPPOOOOOOOONNNNNNNNMMMMMMMMMLLLLLKKKKKKKKKKJJJJJJJJJJIIIIIIIIIIIIIHHHHHHHHGGGGGGGGGGGGGGGGGFFFFFFFFFFFFFFFFFFFFFFFEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFFFFFFFFFFFFFFFFFFFGGGGGGGGGGGGGGGGHHHHHHHHHIIIIIIIIIIIIJJJJJJJJJJKKKKKKKKKKLLLLLMMMMMMMMMNNNNNNNNNOOOOOOOPPPPPQQQQQQQQRRRRRRSSSSSTTTTTTUUUUUUUVVVVVVWWWWXXXXXXYYYYYYZZZZZZ[[[[\\\\\]]]]]]^^^^^____`````aaaaaabbbccccccdddddeeeeeffffggggghhhhhiiiiijjkkkkklllllmmmmmnnnnoooopppppqqqqrrrsssssttttttttsssssrrrrrqqpppppooooonnnmmmmmlllllkkkkkjjiiiiihhhhhgggggffffeeeeedddddccccccbbbaaaaaa`````____^^^^^]]]]]]\\\\\[[[[ZZZZZZYYYYYXXXXXXWWWWWVVVVVVVUUUUUUTTTTTTSSSSRRRRRRRQQQQQQQQPPPPOOOOOOONNNNNNNNNMMMMMMMLLLLLLLKKKKKKKKKKJJJJJJJJJJIIIIIIIIIIIHHHHHHHGGGGGGGGGGGGGGGFFFFFFFFFFFFFFFFFFFFEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFFFFFFFFFFFFFFFGGGGGGGGGGGGGGGHHHHHHHHIIIIIIIIIIIJJJJJJJJJJKKKKKKKKKKLLLLLLMMMMMMMMNNNNNNNNOOOOOOOOPPPPQQQQQQQRRRRRRRRSSSTTTTTTTUUUUUUVVVVVVWWWWWXXXXXXYYYYYZZZZZZZ[[[\\\\\]]]]]]]^^^^^___`````aaaaaaabbccccccdddddeeeeeffffggggghhhhhiiiiijjjkkkkklllllmmmmmnnooooopppppqqqrrrrrssssstttttsssssrrrrrqqpppppooooonnnmmmmmlllllkkkkkjjjiiiiihhhhhgggggfffeeeeedddddccccccbbbaaaaaa`````____^^^^^]]]]]\\\\\\[[[[ZZZZZZYYYYYXXXXXXWWWWVVVVVVUUUUUUTTTTTTTSSSSSRRRRRRQQQQQQQPPPPPOOOOOOOONNNNNNNMMMMMMMMLLLLLLKKKKKKKKKJJJJJJJJJJIIIIIIIIIIIHHHHHHHHGGGGGGGGGGGGGFFFFFFFFFFFFFFFFFFEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFFFFFFFFFFFFGGGGGGGGGGGGGGHHHHHHHIIIIIIIIIIIIJJJJJJJJJJKKKKKKKKLLLLLLLMMMMMMMNNNNNNNNOOOOOOOPPPPPQQQQQQQQRRRRRRSSSSSTTTTTTUUUUUUVVVVVVVWWWXXXXXXXYYYYYZZZZZZ[[[[\\\\\\]]]]]^^^^^____`````aaaaaabbcccccccdddddeeeeeffggggghhhhhiiiiijjjjkkkkklllllmmmmmnnooooopppppqqqrrrrrsssssttttsssrrrrrqqqqppppooooonnnnmmmlllllkkkkkjjjjiiiiihhhhhgggggfffeeeeedddddccccccbbaaaaaaa`````___^^^^^]]]]]\\\\\\\[[[ZZZZZYYYYYYYXXXXXXWWWWVVVVVVUUUUUUTTTTTTSSSSRRRRRRRRQQQQQQPPPPPOOOOOOONNNNNNNNMMMMMMMLLLLLLLKKKKKKKKJJJJJJJJJJIIIIIIIIIIHHHHHHHHGGGGGGGGGGGGFFFFFFFFFFFFFFFFFEEEEEEEEEEEEEEEEEEEEEEEDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFFFFFFFFFFFGGGGGGGGGGGGGHHHHHHHIIIIIIIIIIJJJJJJJJJJKKKKKKKKKLLLLLLMMMMMMMMNNNNNNNOOOOOOOOPPPPPQQQQQQRRRRRRRSSSSTTTTTTUUUUUUUVVVVVVWWWWXXXXXXYYYYYYZZZZZ[[[[\\\\\\]]]]]^^^^^____`````aaaaaabbbccccccdddddeeeeeffggggghhhhhiiiiijjjjkkkkklllllmmmmnnnnooooopppqqqqrrrrrssssttsssssrrrrqqqqpppppoooonnnmmmmmllllkkkkkjjjjiiiiihhhhhgggggffeeeeedddddddcccccbbaaaaaa`````____^^^^^]]]]]\\\\\\[[[[ZZZZZYYYYYYXXXXXXXWWWVVVVVVVUUUUUUTTTTTTSSSSRRRRRRQQQQQQQQPPPOOOOOOOONNNNNNNMMMMMMMMMLLLLLKKKKKKKKKJJJJJJJJJIIIIIIIIIIHHHHHHHGGGGGGGGGGGGGFFFFFFFFFFFFFEEEEEEEEEEEEEEEEEEEEDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEFFFFFFFFFFFFFFGGGGGGGGGGGGHHHHHHHHIIIIIIIIIIJJJJJJJJJKKKKKKKKLLLLLMMMMMMMMMNNNNNNNNOOOOOOOPPPPQQQQQQQRRRRRRRSSSTTTTTTTUUUUUUVVVVVVWWWWXXXXXXYYYYYYZZZZZ[[[[\\\\\\]]]]]^^^^^____`````aaaaaabbbcccccddddddeeeeefffggggghhhhhiiiiijjjkkkkkllllmmmmmnnnnoooopppppqqqrrrrssssstssssrrrrrqqqpppppooooonnmmmmmlllllkkkkkjjjiiiiihhhhhgggggfffeeeeedddddcccccbbbaaaaaa`````____^^^^^]]]]]\\\\\\[[[[ZZZZZYYYYYYXXXXXWWWWVVVVVVUUUUUUTTTTTTTSSSSSRRRRRRQQQQQQPPPPPOOOOOOOONNNNNNMMMMMMMMMLLLLLKKKKKKKKJJJJJJJJJIIIIIIIIIIHHHHHHGGGGGGGGGGGGFFFFFFFFFFFFFEEEEEEEEEEEEEEEEEEDDDDDDDDDDDDDDDDDCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEFFFFFFFFFFFFFFGGGGGGGGGGGHHHHHHIIIIIIIIIIJJJJJJJJJKKKKKKKKKLLLLLMMMMMMMMMNNNNNNOOOOOOOPPPPPQQQQQQQRRRRRRSSSSSTTTTTTUUUUUUVVVVVVVWWWXXXXXYYYYYYYZZZZZ[[[\\\\\\\]]]]]^^^^^___`````aaaaaaabbcccccdddddeeeeeffffggggghhhhhiiiiijjkkkkklllllmmmmmnnnooooopppppqqrrrrrssssssssrrrrrqqpppppooooonnnmmmmmlllllkkkkkjjiiiiihhhhhgggggffffeeeeedddddcccccbbbbaaaaa`````____^^^^^]]]]]\\\\\\[[[[ZZZZZYYYYYYXXXXXWWWWVVVVVVUUUUUUTTTTTTSSSSRRRRRRQQQQQQQQPPPPOOOOOOONNNNNNNNMMMMMMMLLLLLKKKKKKKKKJJJJJJJJJIIIIIIIIHHHHHHHGGGGGGGGGGGFFFFFFFFFFFFFFEEEEEEEEEEEEEEEDDDDDDDDDDDDDCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDEEEEEEEEEEEEEEEFFFFFFFFFFFFFFGGGGGGGGGGGHHHHHHIIIIIIIIIJJJJJJJJJKKKKKKKKLLLLLMMMMMMMMNNNNNNNOOOOOOOOPPPPQQQQQQQRRRRRRSSSSTTTTTTUUUUUUUVVVVVVWWWWXXXXXYYYYYYZZZZZ[[[[\\\\\\]]]]]^^^^^____`````aaaaabbbcccccdddddeeeeeffffggggghhhhhiiiiijjjkkkkklllllmmmmmnnooooopppppqqqrrrrrsssssrrrrrqqqppppooooonnnnmmmmlllllkkkkkjjiiiiihhhhhgggggffffeeeeedddddcccccbbbbaaaaa`````___^^^^^]]]]]\\\\\\\[[ZZZZZZYYYYYXXXXXXXWWWVVVVVVVUUUUUUTTTTTTSSSSRRRRRRQQQQQQPPPPPOOOOOOONNNNNNNMMMMMMMMLLLLLKKKKKKKKJJJJJJJJIIIIIIIIIIHHHHHHGGGGGGGGGGFFFFFFFFFFFFFEEEEEEEEEEEEEEEDDDDDDDDDDDCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCDDDDDDDDDDDEEEEEEEEEEEEEEEFFFFFFFFFFFFGGGGGGGGGGHHHHHHHIIIIIIIIIIJJJJJJJKKKKKKKKKLLLLLMMMMMMMNNNNNNNNOOOOOOPPPPPQQQQQQRRRRRRRSSSTTTTTTTUUUUUUVVVVVVWWWWXXXXXXYYYYYZZZZZZ[[[\\\\\\]]]]]^^^^^____`````aaaaabbbbcccccdddddeeeeefffggggghhhhhiiiiijjjkkkkklllllmmmmnnnoooooppppqqqqrrrrrssssrrrqqqqpppppoooonnnnmmmmmlllkkkkkjjjjiiiiihhhhgggggffffeeeeedddddcccccbbbaaaaa`````____^^^^^]]]]]\\\\\[[[[ZZZZZZYYYYYXXXXXXWWWWVVVVVVUUUUUTTTTTTTSSSSSRRRRRRQQQQQQPPPPOOOOOOONNNNNNNMMMMMMMLLLLLKKKKKKKKKJJJJJJJIIIIIIIIIHHHHHHHHGGGGGGGGGGFFFFFFFFFFFEEEEEEEEEEEEEEDDDDDDDDDDCCCCCCCCCCCCCCCCCCCCCCCCCBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBCCCCCCCCCCCCCCCCCCCCCCCCCDDDDDDDDDDEEEEEEEEEEEEEEFFFFFFFFFFFGGGGGGGGGGHHHHHHHIIIIIIIIIJJJJJJJJKKKKKKKKLLLLLMMMMMMMMNNNNNNOOOOOOOOPPPQQQQQQQRRRRRRSSSSSTTTTTTUUUUUVVVVVVWWWWXXXXXXYYYYYZZZZZZZ[[[\\\\\]]]]]^^^^^____`````aaaaabbbbcccccdddddeeeeeffffggggghhhiiiiijjjjkkkkkllllmmmmmnnnnooopppppqqqqrrrrssrrrrrqqqpppppooooonnmmmmmlllllkkkkjjjjiiiiihhhhhggggfffeeeeedddddcccccbbbbaaaaa`````____^^^^^]]]]]\\\\\[[[[ZZZZZZYYYYYXXXXXXWWWWVVVVVUUUUUUTTTTTTSSSSRRRRRRQQQQQQQPPPPPOOOOOONNNNNNNMMMMMMMMLLLLLKKKKKKKJJJJJJJJIIIIIIIIIHHHHHHGGGGGGGGGGFFFFFFFFFFFEEEEEEEEEEEEEDDDDDDDDDDCCCCCCCCCCCCCCCCCCCCBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBCCCCCCCCCCCCCCCCCCCCDDDDDDDDDDEEEEEEEEEEEEFFFFFFFFFFFFGGGGGGGGGGHHHHHHIIIIIIIIIJJJJJJJKKKKKKKKLLLLLMMMMMMMNNNNNNNNOOOOOOPPPPPQQQQQQRRRRRRSSSSTTTTTTUUUUUUUVVVVVWWWXXXXXXXYYYYYZZZZZZ[[[[\\\\\]]]]]^^^^^___`````aaaaabbbbcccccdddddeeeeeffffgggghhhhhiiiiijjjkkkklllllmmmmmnnnooooopppppqqrrrrrsrrrrqqqpppppooooonnmmmmmlllllkkkkkjjjiiiiihhhhhgggggffeeeeedddddcccccbbbbaaaaa`````____^^^^^]]]]]\\\\\[[[ZZZZZZZYYYYYXXXXXXWWWWVVVVVUUUUUUTTTTTTSSSSRRRRRRQQQQQQPPPPOOOOOOOONNNNNNMMMMMMMLLLLLKKKKKKKKJJJJJJJIIIIIIIIIHHHHHHGGGGGGGGGGFFFFFFFFFFEEEEEEEEEEEEEDDDDDDDDDCCCCCCCCCCCCCCCCCBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBCCCCCCCCCCCCCCCCCCDDDDDDDDDEEEEEEEEEEEEFFFFFFFFFFGGGGGGGGGGHHHHHHIIIIIIIIIJJJJJJJJKKKKKKKLLLLLMMMMMMMMNNNNNNOOOOOOOPPPPQQQQQQRRRRRRRSSSTTTTTTTUUUUUUVVVVVWWWWXXXXXXYYYYYZZZZZZ[[[[\\\\\]]]]]^^^^^____`````aaaaabbbcccccdddddeeeeefffggggghhhhhiiiiijjkkkkklllllmmmmmnnnooooopppppqqrrrrrrrrqqqqpppooooonnnnmmmmlllllkkkkkjjiiiiihhhhhgggggfffeeeeedddddcccccbbbbaaaaa`````___^^^^^]]]]]\\\\\[[[[ZZZZZZYYYYYXXXXXWWWWVVVVVVUUUUUUUTTTTTSSSSSRRRRRRQQQQQQPPPPOOOOOONNNNNNNNMMMMMMLLLLLKKKKKKKJJJJJJJJIIIIIIIIIHHHHHHGGGGGGGGGFFFFFFFFFFEEEEEEEEEEEDDDDDDDDDCCCCCCCCCCCCCCCCBBBBBBBBBBBBBBBBBBBBBBBBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBBBBBBBBBBBBCCCCCCCCCCCCCCCCDDDDDDDDDEEEEEEEEEEEFFFFFFFFFFGGGGGGGGGHHHHHHIIIIIIIIIJJJJJJJKKKKKKKKLLLLLMMMMMMNNNNNNNOOOOOOOPPPQQQQQQQRRRRRRSSSSSTTTTTUUUUUUVVVVVVWWWWXXXXXYYYYYZZZZZZ[[[[\\\\\]]]]]^^^^^____`````aaaaabbbbcccccdddddeeeeeffggggghhhhhiiiiijjjkkkkklllllmmmnnnnoooooppppqqqqrrrrrrqqpppppoooonnnnmmmmmllllkkkkkjjjiiiihhhhhgggggffffeeeeeddddcccccbbbaaaaa`````____^^^^^]]]]]\\\\\[[[[ZZZZZZYYYYYXXXXXWWWWVVVVVVUUUUUTTTTTTSSSSRRRRRRQQQQQQQPPPPPOOOOOONNNNNNMMMMMMMMLLLKKKKKKKKJJJJJJJJJIIIIIIIHHHHHHGGGGGGGGGFFFFFFFFFFEEEEEEEEEEDDDDDDDDDCCCCCCCCCCCCCCBBBBBBBBBBBBBBBBBBBBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBBBBBBBBCCCCCCCCCCCCCCDDDDDDDDEEEEEEEEEEFFFFFFFFFFGGGGGGGGGHHHHHHIIIIIIIIJJJJJJJJJKKKKKKKLLLLMMMMMMMNNNNNNNOOOOOOPPPPPQQQQQQRRRRRRSSSSTTTTTTUUUUUVVVVVVVWWWXXXXXYYYYYZZZZZZZ[[[\\\\\]]]]]^^^^^____`````aaaaabbbbcccccddddeeeeefffggggghhhhhiiiijjjjkkkkkllllmmmmmnnnoooopppppqqqrrrrrqqpppppooooonnnmmmmmlllllkkkjjjjiiiiihhhhgggggffffeeeeedddddcccccbbaaaaa`````____^^^^^]]]]]\\\\\[[[[ZZZZZYYYYYYXXXXXWWWWVVVVVVUUUUUTTTTTTSSSSRRRRRRQQQQQQPPPPOOOOOONNNNNNNNMMMMMMLLLLLKKKKKKKKJJJJJJJIIIIIIIIHHHHHGGGGGGGGGGFFFFFFFFEEEEEEEEEEDDDDDDDDDCCCCCCCCCCCCCBBBBBBBBBBBBBBBBBAAAAAAAAAAAAAAAAAA@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AAAAAAAAAAAAAAAAABBBBBBBBBBBBBBBBBBCCCCCCCCCCCCDDDDDDDDDEEEEEEEEEEFFFFFFFFFGGGGGGGGGGHHHHHIIIIIIIJJJJJJJJKKKKKKKLLLLLMMMMMMMNNNNNNNOOOOOOPPPPQQQQQQRRRRRRRSSSTTTTTTTUUUUUVVVVVVWWWWXXXXXYYYYYYZZZZZ[[[[\\\\\]]]]]^^^^^___`````aaaaabbbcccccdddddeeeeeffffggggghhhiiiiijjjjkkkklllllmmmmmnnooooopppppqqqrrqqqqppppooooonnmmmmmlllllkkkkkjjjiiiiihhhhhggggfffeeeeedddddcccccbbbaaaaa`````____^^^^^]]]]]\\\\\[[[ZZZZZYYYYYYYXXXXXWWWVVVVVVVUUUUUTTTTTTSSSSRRRRRRQQQQQQPPPPOOOOOONNNNNNMMMMMMMMLLLLKKKKKKKJJJJJJJJIIIIIIIHHHHHGGGGGGGGGFFFFFFFFFFEEEEEEEEEEDDDDDDDCCCCCCCCCCCCCBBBBBBBBBBBBBBBAAAAAAAAAAAAAA@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AAAAAAAAAAAAAABBBBBBBBBBBBBBBCCCCCCCCCCCCDDDDDDDDEEEEEEEEEEFFFFFFFFFFGGGGGGGGHHHHHIIIIIIIIJJJJJJJKKKKKKKKLLLLMMMMMMMNNNNNNOOOOOOOPPPQQQQQQQRRRRRRSSSSTTTTTTUUUUUVVVVVVWWWWXXXXXYYYYYYZZZZZ[[[[\\\\\]]]]]^^^^^____`````aaaaabbcccccdddddeeeeeffffgggghhhhhiiiiijjkkkkklllllmmmmmnnnooooopppqqqqrqqqpppppoooonnnmmmmlllllkkkkkjjjiiiiihhhhhgggggffeeeeedddddcccccbbbaaaaa`````___^^^^^]]]]]\\\\\[[[[ZZZZZYYYYYYXXXXXWWWWVVVVVUUUUUUTTTTTTTSSSRRRRRQQQQQQQPPPPPOOOOOONNNNNNMMMMMMLLLLLKKKKKKKJJJJJJJIIIIIIIIHHHHHHGGGGGGGFFFFFFFFFEEEEEEEEEEDDDDDDDDCCCCCCCCCCCBBBBBBBBBBBBBBBAAAAAAAAAAA@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AAAAAAAAAAAABBBBBBBBBBBBBBBCCCCCCCCCCCDDDDDDDEEEEEEEEEEFFFFFFFFFGGGGGGGGHHHHHHIIIIIIIJJJJJJJJKKKKKKLLLLLMMMMMMNNNNNNNOOOOOOPPPPPQQQQQQRRRRRSSSSTTTTTTUUUUUUVVVVVWWWWXXXXXYYYYYYZZZZZ[[[[\\\\\]]]]]^^^^^____`````aaaaabbcccccdddddeeeeefffggggghhhhhiiiiijjkkkkklllllmmmmnnnnoooopppppqqqqqpppppooonnnnmmmmmllllkkkkkjjjjiiihhhhhgggggfffeeeeedddddcccccbbbbaaaaa`````__^^^^^]]]]]\\\\\[[[[ZZZZZYYYYYYXXXXXWWWWVVVVVUUUUUUTTTTTSSSSRRRRRRQQQQQQPPPPOOOOOONNNNNNNMMMMMMMLLLLKKKKKKKJJJJJJJIIIIIIIHHHHHHGGGGGGGGFFFFFFFFFEEEEEEEEEEDDDDDDCCCCCCCCCCCBBBBBBBBBBBBBBAAAAAAAAAA@@@@@@@@@@@@@@@@@@@@@@@@??????????????????????????????????????????????@@@@@@@@@@@@@@@@@@@@@@@@AAAAAAAAAABBBBBBBBBBBBBCCCCCCCCCCCCDDDDDDEEEEEEEEEEFFFFFFFFFGGGGGGGHHHHHHIIIIIIIIJJJJJJKKKKKKKKLLLMMMMMMMMNNNNNNOOOOOOPPPPQQQQQQRRRRRRRSSSTTTTTUUUUUUUVVVVVWWWXXXXXYYYYYYYZZZZZ[[[\\\\\]]]]]^^^^^___`````aaaaabbbbcccccdddddeeeeeffggggghhhhhiiiijjjjkkkkklllmmmmmnnnnoooopppppqqqqpppooooonnnmmmmmlllllkkkkjjjiiiiihhhhgggggffffeeeedddddcccccbbbaaaaa`````___^^^^^]]]]]\\\\\\[[[ZZZZZYYYYYYXXXXXWWWWVVVVVUUUUUUTTTTTSSSSRRRRRRQQQQQQPPPPOOOOOONNNNNNMMMMMMMLLLLLKKKKKKJJJJJJJIIIIIIIIHHHHHGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCCCCBBBBBBBBBBBBBAAAAAAAAAA@@@@@@@@@@@@@@@@@@@??????????????????????????????????????????????????????????????????@@@@@@@@@@@@@@@@@@@AAAAAAAAAABBBBBBBBBBBBCCCCCCCCCCDDDDDDDDEEEEEEEEFFFFFFFFFGGGGGGGGHHHHHIIIIIIIJJJJJJJJKKKKKKLLLLLMMMMMMNNNNNNOOOOOOOPPPQQQQQQQRRRRRRSSSSTTTTTUUUUUUVVVVVWWWWXXXXXYYYYYYZZZZZ[[\\\\\\\]]]]]^^^^^__`````aaaaabbbbcccccdddddeeeefffggggghhhhiiiiijjjjkkkklllllmmmmmnnoooooppppqqppppooooonnnnmmmmlllllkkkkkjjiiiiihhhhhggggffffeeeeedddcccccbbbbaaaaa`````___^^^^^]]]]]\\\\\\[[ZZZZZYYYYYYYXXXXXWWWVVVVVUUUUUUUTTTTTSSSRRRRRRRQQQQQPPPPPOOOOOONNNNNNMMMMMMLLLLKKKKKKKKJJJJJJIIIIIIIHHHHHGGGGGGGGFFFFFFFFFEEEEEEEEDDDDDDDCCCCCCCCCCBBBBBBBBBBBBAAAAAAAAA@@@@@@@@@@@@@@@@?????????????????????????????????????????????????????????????????????????????????@@@@@@@@@@@@@@@@@AAAAAAAABBBBBBBBBBBBBCCCCCCCCCCDDDDDDEEEEEEEEEFFFFFFFFFGGGGGGGHHHHHIIIIIIIIJJJJJJKKKKKKKLLLLMMMMMMNNNNNNNOOOOOOPPPPPQQQQQRRRRRRSSSSTTTTTUUUUUUVVVVVWWWWXXXXXYYYYYYZZZZZ[[[\\\\\\]]]]]^^^^^__`````aaaaabbbbcccccddddeeeeeffffggghhhhhiiiiijjjkkkkklllllmmmmnnnoooooppppqppppoooonnnnmmmlllllkkkkkjjjiiiiihhhhhgggggffeeeeedddddcccccbbbaaaaa`````____^^^^^]]]]]\\\\\[[ZZZZZZYYYYYXXXXXWWWWVVVVVUUUUUTTTTTTSSSSRRRRRRQQQQQPPPPOOOOOONNNNNNNMMMMMMLLLLLKKKKKKJJJJJJJJIIIIIIHHHHHGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDCCCCCCCCCCBBBBBBBBBBBAAAAAAAA@@@@@@@@@@@@@@@@???????????????????????>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>??????????????????????@@@@@@@@@@@@@@@@@AAAAAAABBBBBBBBBBBCCCCCCCCCCDDDDDDDEEEEEEEEFFFFFFFFFGGGGGGGGHHHHHIIIIIIJJJJJJJKKKKKKKLLLLLMMMMMMNNNNNNOOOOOOPPPPQQQQQRRRRRRSSSSTTTTTTUUUUUVVVVVWWWWXXXXXYYYYYZZZZZZ[[[\\\\\]]]]]^^^^^____`````aaaaabbcccccdddddeeeeefffggggghhhhhiiiiijjkkkkklllllmmmmnnnnoooppppppppooooonnmmmmmllllkkkkkjjjjiiiihhhhhgggggffeeeeedddddcccccbbbaaaaa`````___^^^^^]]]]]\\\\\[[[ZZZZZZYYYYYXXXXXWWWWVVVVVUUUUUTTTTTTSSSSRRRRRQQQQQQPPPPOOOOOONNNNNNMMMMMMMLLLKKKKKKKKJJJJJJIIIIIIIIHHHHHGGGGGGGFFFFFFFFEEEEEEEEDDDDDCCCCCCCCCCBBBBBBBBBBBBAAAAAAA@@@@@@@@@@@@@@????????????????????>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>????????????????????@@@@@@@@@@@@@AAAAAAAABBBBBBBBBBBCCCCCCCCCCDDDDDEEEEEEEEEFFFFFFFGGGGGGGGHHHHHIIIIIIIJJJJJJJKKKKKKKLLLLMMMMMMNNNNNNOOOOOOOPPPQQQQQQQRRRRRSSSTTTTTTTUUUUUVVVVVWWWXXXXXYYYYYZZZZZZZ[[\\\\\]]]]]^^^^^____`````aaaaabbcccccdddddeeeeefffggggghhhhhiiiijjjkkkkkllllmmmmmnnnooooopppppooooonnmmmmmlllllkkkkjjjjiiiiihhhgggggffffeeeedddddcccccbbaaaaa`````____^^^^^]]]]]\\\\\[[[[ZZZZZYYYYYXXXXXWWWWVVVVVUUUUUTTTTTTSSSSRRRRRQQQQQQPPPPOOOOOONNNNNNMMMMMMLLLLKKKKKKJJJJJJJIIIIIIIHHHHHGGGGGGGGFFFFFFFEEEEEEEEEDDDDDCCCCCCCCCCBBBBBBBBBBAAAAAAA@@@@@@@@@@@@@?????????????????>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>??????????????????@@@@@@@@@@@@AAAAAAAABBBBBBBBBBCCCCCCCCCCDDDDDEEEEEEEEFFFFFFFFGGGGGGGHHHHHIIIIIIIIJJJJJJKKKKKKLLLLMMMMMMNNNNNNNOOOOOOPPPPQQQQQQRRRRRSSSSTTTTTTUUUUUVVVVVWWWWXXXXXYYYYYZZZZZ[[[\\\\\]]]]]^^^^^____`````aaaaabbbcccccdddddeeeffffggggghhhhiiiiijjjjkkklllllmmmmmnnnoooooppppooonnnnmmmmlllllkkkkkjjiiiiihhhhhggggffffeeeeeddddcccccbbbaaaaa````____^^^^^]]]]]\\\\\[[[[ZZZZZYYYYYXXXXXWWWVVVVVUUUUUTTTTTTTSSSRRRRRQQQQQQQPPPOOOOONNNNNNNMMMMMMLLLLLKKKKKKJJJJJJIIIIIIIHHHHHGGGGGGGFFFFFFFFEEEEEEEEDDDDDCCCCCCCCCBBBBBBBBBBAAAAAAAA@@@@@@@@@@@@???????????????>>>>>>>>>>>>>>>>>>>>>>>==============================================>>>>>>>>>>>>>>>>>>>>>>???????????????@@@@@@@@@@@@@AAAAAAABBBBBBBBBBCCCCCCCCCDDDDDEEEEEEEEEFFFFFFFGGGGGGGGHHHHHIIIIIIJJJJJJKKKKKKKLLLLLMMMMMMNNNNNNOOOOOPPPPQQQQQQRRRRRSSSSTTTTTTUUUUUVVVVVWWWWXXXXXYYYYYZZZZZ[[[[\\\\\]]]]]^^^^^___````aaaaabbbbcccccddddeeeeefffgggghhhhhiiiiijjjkkkkklllllmmmnnnnooooppooooonnnmmmmmllllkkkkkjjiiiiihhhhhgggggfffeeeeedddddcccbbbbaaaaa`````___^^^^^]]]]]\\\\\[[[ZZZZZYYYYYXXXXXWWWWVVVVVUUUUUTTTTTTSSSSRRRRRQQQQQQPPPPOOOOONNNNNNMMMMMMMLLLKKKKKKKJJJJJJIIIIIIIHHHHHGGGGGGGFFFFFFFEEEEEEEEEDDDDDCCCCCCCCCBBBBBBBBBBAAAAAA@@@@@@@@@@@@??????????????>>>>>>>>>>>>>>>>>>>================================================================>>>>>>>>>>>>>>>>>>??????????????@@@@@@@@@@@@@AAAAAABBBBBBBBBBCCCCCCCCCDDDDDEEEEEEEEFFFFFFFFGGGGGGHHHHHIIIIIIIIJJJJJJKKKKKKLLLLMMMMMMNNNNNNOOOOOPPPPQQQQQQRRRRRSSSSTTTTTTUUUUUVVVVVWWWWXXXXXYYYYYZZZZZ[[[[\\\\\]]]]]^^^^^__`````aaaaabbbbccccdddddeeeeeffggggghhhhhiiiiijjjkkkkkllllmmmmmnnooooopoooonnnmmmmmlllllkkkjjjjiiiihhhhhgggggffeeeeedddddcccccbbbaaaaa`````__^^^^^]]]]]\\\\\[[[[ZZZZZYYYYYXXXXXWWWWVVVVVUUUUUTTTTTTSSSRRRRRRQQQQQPPPPOOOOOONNNNNNMMMMMMLLLLKKKKKKJJJJJJJIIIIIIHHHHHGGGGGGGFFFFFFFFEEEEEEEDDDDDCCCCCCCCCBBBBBBBBBAAAAAAA@@@@@@@@@@??????????????>>>>>>>>>>>>>>>>=================<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<================>>>>>>>>>>>>>>>>??????????????@@@@@@@@@@AAAAAAAABBBBBBBBCCCCCCCCCDDDDDEEEEEEEEFFFFFFFGGGGGGGGHHHHHIIIIIIJJJJJJKKKKKKLLLLMMMMMMNNNNNNNOOOOOOPPPPQQQQQRRRRRRSSTTTTTTTUUUUUVVVVVWWWXXXXXYYYYYZZZZZ[[[[\\\\\]]]]]^^^^^___`````aaaaabbcccccdddddeeeeefffggggghhhhhiiijjjjkkkklllllmmmmmnnoooopooonnnnmmmlllllkkkkkjjjiiiiihhhhgggggfffeeeedddddcccccbbbaaaaa`````___^^^^]]]]]\\\\\[[[[ZZZZZYYYYYXXXXXWWWWVVVVVUUUUUTTTTTTSSRRRRRRRQQQQQPPPOOOOOOONNNNNNMMMMMLLLLLKKKKKKJJJJJJIIIIIIIHHHGGGGGGGGFFFFFFFEEEEEEEEDDDDDCCCCCCCCCBBBBBBBBAAAAAAA@@@@@@@@@@@???????????>>>>>>>>>>>>>>>==============<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<=============>>>>>>>>>>>>>>>????????????@@@@@@@@@@@AAAAAABBBBBBBBBCCCCCCCCCDDDDDEEEEEEEFFFFFFFFGGGGGGGHHHHIIIIIIJJJJJJKKKKKKKLLLLLMMMMMNNNNNNOOOOOOPPPPQQQQQRRRRRRSSSTTTTTTUUUUUVVVVVWWWWXXXXXYYYYYZZZZZ[[[\\\\\]]]]]^^^^____`````aaaaabbcccccdddddeeeeffffggggghhhhiiiiijjkkkkklllllmmmmnnnnoooooonnmmmmmllllkkkkkjjjiiiiihhhhhgggffffeeeeeddddcccccbbbbaaa`````____^^^^^]]]]\\\\\[[[[ZZZZZYYYYYXXXXXWWWVVVVVUUUUUTTTTTSSSSRRRRRRQQQQQPPPPOOOOOONNNNNMMMMMMMLLLKKKKKKKJJJJJJIIIIIIHHHHHGGGGGGFFFFFFFFEEEEEEEDDDDDCCCCCCCCCBBBBBBBBBAAAAAA@@@@@@@@@@???????????>>>>>>>>>>>>>>===========<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<===========>>>>>>>>>>>>>>???????????@@@@@@@@@@AAAAAAABBBBBBBBCCCCCCCCCDDDDDEEEEEEEEFFFFFFFGGGGGGHHHHHIIIIIIIJJJJJJKKKKKKLLLLMMMMMMNNNNNOOOOOOPPPPQQQQQRRRRRRSSSSTTTTTUUUUUVVVVVWWWWXXXXXYYYYYZZZZZ[[[[\\\\\]]]^^^^^____`````aaaabbbbcccccdddeeeeeffffgggghhhhhiiiiijjkkkkkllllmmmmmnnnooooonnnmmmmlllllkkkkjjjjiiihhhhhgggggfffeeeeedddddccccbbbaaaaa````____^^^^^]]]]]\\\\\[[ZZZZZYYYYYXXXXXWWWWVVVVVUUUUUTTTTTSSSSRRRRRRQQQQQPPPPOOOOOONNNNNMMMMMMLLLLKKKKKKJJJJJJJIIIIIIHHHHGGGGGGGFFFFFFFFEEEEEEDDDDDCCCCCCCCCBBBBBBBBAAAAA@@@@@@@@@@????????????>>>>>>>>>>>>==========<<<<<<<<<<<<<<<<<<<<<<<<;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;<<<<<<<<<<<<<<<<<<<<<<<==========>>>>>>>>>>>>>???????????@@@@@@@@@@AAAAABBBBBBBBBCCCCCCCCCDDDDDEEEEEEFFFFFFFGGGGGGGGHHHHIIIIIIJJJJJJKKKKKKLLLLMMMMMMNNNNNOOOOOOOPPPQQQQQRRRRRRRSSSTTTTTUUUUUVVVVVWWWWXXXXXYYYYYZZZZZ[[[\\\\\]]]]]^^^^^___````aaaaabbbbccccdddddeeeeeffggggghhhhhiiiijjjjkkklllllmmmmnnnnoooonnmmmmlllllkkkkkjjiiiiihhhhgggggfffeeeeedddddcccccbbaaaaa`````___^^^^^]]]]]\\\\\[[ZZZZZYYYYYXXXXXWWWWVVVVVUUUUUTTTTTSSSSRRRRRRQQQQQPPPPOOOOONNNNNNMMMMMMLLLLKKKKKKJJJJJJIIIIIIIHHHGGGGGGGFFFFFFFEEEEEEEEDDDDDCCCCCCCBBBBBBBBBAAAAA@@@@@@@@@@??????????>>>>>>>>>>>>=========<<<<<<<<<<<<<<<<<<<;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;<<<<<<<<<<<<<<<<<<=========>>>>>>>>>>>>>??????????@@@@@@@@@@AAAAABBBBBBBBCCCCCCCCDDDDDEEEEEEEFFFFFFFFGGGGGGHHHHIIIIIIJJJJJJKKKKKKKLLLMMMMMMMNNNNNNOOOOOPPPPQQQQQRRRRRRSSSSTTTTTUUUUUVVVVVWWWXXXXXYYYYYZZZZZ[[[\\\\\]]]]]^^^^^__`````aaaaabbbcccccdddddeeeeeffggggghhhhiiiiijjjkkkkklllllmmmnnnoonnnmmmmmllllkkkkkjjiiiiihhhhhggggffffeeedddddcccccbbbaaaaa`````__^^^^^]]]]]\\\\\[[[ZZZZZYYYYYXXXXXWWWWVVVVVUUUUUTTTTTSSSRRRRRRRQQQQQPPPOOOOONNNNNNNMMMMMLLLLLKKKKKJJJJJJIIIIIIHHHHHGGGGGGFFFFFFFEEEEEEEDDDDDCCCCCCCCBBBBBBBAAAAAA@@@@@@@@@??????????>>>>>>>>>>>=========<<<<<<<<<<<<<<<<;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;<<<<<<<<<<<<<<<<=========>>>>>>>>>>>??????????@@@@@@@@@AAAAAABBBBBBBBCCCCCCCDDDDDEEEEEEEEFFFFFFGGGGGGHHHHHIIIIIIIJJJJJJKKKKKLLLLLMMMMMNNNNNNOOOOOPPPPQQQQQRRRRRRSSSSTTTTTUUUUUVVVVVWWWWXXXXXYYYYYZZZZZ[[\\\\\]]]]]^^^^^___`````aaaaabbcccccdddddeeeeffffggghhhhhiiiiijjjkkkkkllllmmmmmnnonnnmmmmlllllkkkjjjjiiiihhhhhgggggffeeeeeddddcccccbbbbaaaa`````___^^^^]]]]]\\\\\[[[[ZZZZZYYYYYXXXXXWWVVVVVUUUUUTTTTTTTSSRRRRRRQQQQQPPPPOOOOONNNNNNMMMMMLLLLKKKKKKJJJJJJJIIIIIIHHHHGGGGGGFFFFFFFEEEEEEEDDDDDCCCCCCCBBBBBBBBBAAAAA@@@@@@@@@??????????>>>>>>>>>>========<<<<<<<<<<<<<<<;;;;;;;;;;;;;;;;;;;;;;;::::::::::::::::::::::::::::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;<<<<<<<<<<<<<<<=========>>>>>>>>>>??????????@@@@@@@@@AAAAABBBBBBBBCCCCCCCCDDDDDEEEEEEFFFFFFFFGGGGGGHHHHIIIIIIJJJJJJKKKKKKLLLLMMMMMNNNNNNOOOOOPPPPQQQQQRRRRRRSSSTTTTTTUUUUUVVVVVWWWXXXXXYYYYYZZZZZ[[[\\\\\]]]]]^^^^____`````aaaabbbcccccddddeeeeefffggggghhhhhiiijjjjkkkklllllmmmmnnnnnmmmmmlllkkkkkjjjiiiiihhhhgggggffeeeeedddddccccbbbbaaaaa```____^^^^^]]]]\\\\\[[[[ZZZZZYYYYYXXXXXWWVVVVVUUUUUTTTTTTSSSRRRRRRQQQQQPPPPOOOOONNNNNNMMMMMLLLLKKKKKKJJJJJJIIIIIIIHHHGGGGGGGFFFFFFEEEEEEEDDDDDCCCCCCCBBBBBBBBAAAAA@@@@@@@@@?????????>>>>>>>>>>>========<<<<<<<<<<<<<;;;;;;;;;;;;;;;;;;::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::;;;;;;;;;;;;;;;;;<<<<<<<<<<<<<<=======>>>>>>>>>>>>????????@@@@@@@@@AAAAABBBBBBBBBCCCCCCDDDDDEEEEEEEEFFFFFFGGGGGGHHHHIIIIIIJJJJJJKKKKKKKLLLMMMMMNNNNNNNOOOOOPPPQQQQQRRRRRRRSSTTTTTTUUUUUVVVVVWWWXXXXXYYYYYZZZZZ[[[[\\\\\]]]^^^^^____````aaaaabbbbcccdddddeeeeefffggggghhhhiiiiijjkkkkkllllmmmmmnnmmmmmllllkkkkkjjjiiiiihhhhhgggffffeeeedddddcccccbbaaaaa`````___^^^^^]]]]]\\\\[[[ZZZZZYYYYYXXXXXWWWVVVVVUUUUUTTTTTTSSSRRRRRRQQQQQPPPPOOOOONNNNNMMMMMMLLLLKKKKKKJJJJJIIIIIIHHHHHGGGGGGFFFFFFFEEEEEEDDDDDCCCCCCCBBBBBBBBAAAAA@@@@@@@@@????????>>>>>>>>>>========<<<<<<<<<<<<;;;;;;;;;;;;;;;;;::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::;;;;;;;;;;;;;;;;<<<<<<<<<<<<<=======>>>>>>>>>>?????????@@@@@@@@@AAAAABBBBBBBCCCCCCCCDDDDDEEEEEEFFFFFFGGGGGGHHHHHIIIIIIIJJJJJKKKKKKLLLLMMMMMMNNNNNOOOOOPPPPQQQQQRRRRRRSSTTTTTTTUUUUUVVVVVWWXXXXXYYYYYZZZZZ[[[[\\\\]]]]]^^^^^__`````aaaaabbbcccccdddddeeeffffgggghhhhhiiiiijjkkkkkllllmmmmmnmmmmlllllkkkkjjjjiiihhhhhgggggfffeeeeeddddcccccbbaaaaa`````___^^^^^]]]]]\\\\\[[ZZZZZYYYYYXXXXXWWWWVVVVVUUUUUTTTTTSSRRRRRRRQQQQQPPPOOOOONNNNNMMMMMMMLLLKKKKKJJJJJJJIIIIIIHHHHGGGGGGFFFFFFEEEEEEEEDDDCCCCCCCCBBBBBBBAAAAA@@@@@@@@@?????????>>>>>>>>>=======<<<<<<<<<<<;;;;;;;;;;;;;;;:::::::::::::::::::::::99999999999999999999999999999999999999999999::::::::::::::::::::::;;;;;;;;;;;;;;;<<<<<<<<<<<========>>>>>>>>>????????@@@@@@@@@AAAAABBBBBBBBCCCCCCCDDDDEEEEEEEFFFFFFFGGGGGGHHHHIIIIIIJJJJJJKKKKKLLLLMMMMMMNNNNNOOOOOPPPPQQQQQRRRRRRSSSTTTTTUUUUUVVVVVWWWXXXXXYYYYYZZZZZ[[[\\\\\]]]]]^^^^^__`````aaaaabbbcccccddddeeeeeffggggghhhhhiiiijjjjkkklllllmmmmnmmmmllllkkkkkjjiiiiihhhhgggggfffeeeeedddddcccbbbbaaaa`````____^^^]]]]]\\\\\[[[ZZZZZYYYYYXXXXXWWWWVVVVVUUUUUTTTTTSSRRRRRRQQQQQPPPPOOOOONNNNNMMMMMMLLLLKKKKKJJJJJJIIIIIIIHHHGGGGGGGFFFFFFEEEEEEDDDDDCCCCCCBBBBBBBBAAAAA@@@@@@@@@????????>>>>>>>>>======<<<<<<<<<<<<;;;;;;;;;;;;;:::::::::::::::::::9999999999999999999999999999999999999999999999999999999999999:::::::::::::::::::;;;;;;;;;;;;;;<<<<<<<<<<<======>>>>>>>>>?????????@@@@@@@@@AAAAABBBBBBBCCCCCCDDDDDEEEEEEEFFFFFFGGGGGGHHHHIIIIIIJJJJJJKKKKKLLLLMMMMMMNNNNNOOOOOPPPPQQQQQRRRRRRSSSTTTTTUUUUUVVVVVWWWWXXXXXYYYYYZZZZZ[[\\\\\]]]]]^^^^____`````aaabbbbccccdddddeeeeeffggggghhhhiiiiijjjkkkkklllmmmmmmmmlllllkkkkjjjiiiihhhhhggggffffeeedddddccccbbbbaaaaa````___^^^^^]]]]\\\\\[[[[ZZZZYYYYYXXXXXWWWVVVVVUUUUUTTTTTSSSSRRRRRQQQQQPPPPOOOOONNNNNMMMMMMLLLLKKKKKJJJJJJIIIIIHHHHHGGGGGGFFFFFFFEEEEEEDDDDCCCCCCCBBBBBBBBAAAAA@@@@@@@????????>>>>>>>>>>======<<<<<<<<<<;;;;;;;;;;;;:::::::::::::::::9999999999999999888888888888888888888888888888888888888888889999999999999999::::::::::::::::;;;;;;;;;;;;;<<<<<<<<<<======>>>>>>>>>>???????@@@@@@@@AAAAABBBBBBBCCCCCCCCDDDDEEEEEEFFFFFFGGGGGGHHHHHIIIIIJJJJJJJKKKKKLLLMMMMMMMNNNNNOOOOOPPPQQQQQRRRRRSSSSTTTTTUUUUUVVVVVWWWWXXXXXYYYYYZZZZ[[[\\\\\]]]]^^^^^____````aaaaabbbccccdddddeeeeffffggghhhhhiiiijjjjkkkklllllmmmmmmllllkkkkkjjiiiihhhhhgggggffeeeeeddddcccccbbbaaaaa`````__^^^^^]]]]]\\\\[[[[ZZZZZYYYXXXXXWWWWVVVVVUUUUUTTTTTSSSSRRRRRQQQQQPPPPOOOOONNNNNMMMMMMLLKKKKKKKJJJJJJIIIIIHHHHGGGGGGFFFFFFEEEEEEDDDDDCCCCCCCBBBBBBBAAAAA@@@@@@@@???????>>>>>>>>>======<<<<<<<<<<;;;;;;;;;;;;;:::::::::::::99999999999999888888888888888888888888888888888888888888888888888888888888899999999999999::::::::::::::;;;;;;;;;;;;<<<<<<<<<<=======>>>>>>>>????????@@@@@@@AAAAABBBBBBBBCCCCCCDDDDDEEEEEEFFFFFFFGGGGGGHHHHIIIIIJJJJJJKKKKKKLLLMMMMMMNNNNNOOOOOPPPPQQQQQRRRRRSSSTTTTTUUUUUVVVVVWWWWXXXXXYYYYZZZZZ[[[[\\\]]]]]^^^^^___`````aaaaabbcccccddddeeeeefffggggghhhhhiiijjjkkkkkllllmmmmmlllkkkkkjjjiiiiihhhhgggggffeeeeeddddcccccbbbbaaa`````___^^^^^]]]]]\\\\\[[ZZZZZYYYYYXXXXXWWWVVVVVUUUUUTTTTTSSSSRRRRRQQQQQPPPOOOOONNNNNMMMMMLLLLKKKKKKJJJJJIIIIIIIHHHGGGGGGGFFFFFFEEEEEEDDDDCCCCCCCBBBBBBBAAAAA@@@@@@@????????>>>>>>>>=======<<<<<<<<<<;;;;;;;;;;;::::::::::::999999999999888888888888888888888888888888888888888888888888888888888888888888888888888899999999999:::::::::::::;;;;;;;;;;;<<<<<<<<<<======>>>>>>>>>???????@@@@@@@@AAAAABBBBBBCCCCCCCCDDDEEEEEEEFFFFFFGGGGGGHHHHIIIIIIJJJJJKKKKKKLLLLMMMMMNNNNNOOOOOPPPPQQQQQRRRRRSSSSTTTTTUUUUUVVVVVWWXXXXXYYYYYZZZZZ[[[\\\\\]]]]]^^^^^__`````aaaabbbbcccccdddeeeeefffggggghhhhiiiiijjkkkkkllllmmlllllkkkkjjjjiiiihhhhhgggffffeeeedddddccccbbbaaaa`````____^^^^]]]]]\\\\\[[ZZZZZYYYYYXXXXXWWWVVVVVUUUUUTTTTTSSSRRRRRQQQQQPPPPOOOOONNNNNMMMMMLLLLKKKKKKJJJJJIIIIIIHHHHGGGGGGFFFFFFFEEEEEEDDDDCCCCCCBBBBBBBAAAA@@@@@@@@????????>>>>>>>>======<<<<<<<<<;;;;;;;;;;;:::::::::::::9999999999888888888888888888888777777777777777777777777777777777777777777778888888888888888888889999999999::::::::::::;;;;;;;;;;;;<<<<<<<<=======>>>>>>>?????????@@@@@@@AAAABBBBBBBBCCCCCCDDDDEEEEEEFFFFFFGGGGGGHHHHIIIIIIJJJJJKKKKKKKLLLMMMMMNNNNNOOOOOPPPPQQQQQRRRRRSSSSTTTTTUUUUUVVVVVWWXXXXXYYYYYZZZZZ[[[\\\\\]]]]]^^^^___`````aaaabbbbccccdddddeeeffffgggghhhhhiiiijjjkkkklllllmllllkkkkkjjjiiiiihhhgggggfffeeeeeddddcccccbbaaaaa````____^^^^^]]]\\\\\[[[[ZZZZYYYYYXXXXXWWVVVVVUUUUUTTTTTSSSSRRRRRQQQQQPPPPOOOOONNNNNMMMMMLLLLKKKKKKJJJJJIIIIIIHHHHGGGGGFFFFFFEEEEEEDDDDDCCCCCCCBBBBBBAAAAA@@@@@@@????????>>>>>>>=======<<<<<<<<;;;;;;;;;;::::::::::::99999999998888888888888888877777777777777777777777777777777777777777777777777777777777778888888888888888889999999999:::::::::::;;;;;;;;;;<<<<<<<<<======>>>>>>>>???????@@@@@@@@AAAAABBBBBBCCCCCCDDDDDEEEEEEFFFFFFFGGGGGHHHIIIIIIIJJJJJKKKKKKLLLLMMMMMNNNNNOOOOOPPPQQQQQRRRRRSSSSTTTTTUUUUUVVVVVWWWXXXXXYYYYYZZZ[[[[\\\\\]]]]^^^^^____```aaaaabbbcccccddddeeeeeffggggghhhhiiiiijjkkkkkllllmllllkkkkjjiiiiihhhhgggggfffeeeeedddcccccbbbaaaaa`````__^^^^^]]]]]\\\\[[[[ZZZZZYYYYXXXXXWWWVVVVVUUUUTTTTTSSSSRRRRRQQQQQPPPPOOOOONNNNNMMMMMLLLKKKKKKKJJJJJIIIIIHHHHHGGGGGFFFFFFEEEEEEDDDDCCCCCCBBBBBBBBAAA@@@@@@@@???????>>>>>>>>======<<<<<<<<<;;;;;;;;;:::::::::::9999999998888888888888888777777777777777777777777777777777777777777777777777777777777777777777777778888888888888888999999999:::::::::::;;;;;;;;;<<<<<<<<=======>>>>>>>????????@@@@@@@AAAABBBBBBBCCCCCCCDDDEEEEEEEFFFFFFGGGGGHHHHHIIIIIJJJJJKKKKKKLLLLMMMMMNNNNNOOOOOPPPPQQQQQRRRRRSSSTTTTTUUUUVVVVVWWWWXXXXXYYYYZZZZZ[[[\\\\]]]]]^^^^^___`````aaaaabbcccccddddeeeeeffggggghhhhiiiiijjjkkkllllllllkkkkkjjiiiihhhhhggggffffeeedddddccccbbbbaaaa`````__^^^^^]]]]]\\\\\[[[ZZZZZYYYYYXXXWWWWVVVVVUUUUUTTTTTSSSRRRRRQQQQQPPPOOOOONNNNNMMMMMLLLLKKKKKKJJJJJIIIIIHHHHGGGGGGFFFFFFFEEEEEEDDDDCCCCCCBBBBBBAAAAA@@@@@@????????>>>>>>>=======<<<<<<<;;;;;;;;;;::::::::::99999999988888888888888777777777777777777777666666666666666666666666666666666666666666667777777777777777777778888888888888899999999::::::::::;;;;;;;;;;<<<<<<<<======>>>>>>>>???????@@@@@@AAAAABBBBBBBCCCCCCDDDDEEEEEEFFFFFFGGGGGGHHHHIIIIIJJJJJKKKKKKLLLLMMMMMNNNNNOOOOOPPPPQQQQQRRRRRSSTTTTTUUUUUVVVVVWWWWXXXXYYYYYZZZZZ[[\\\\\]]]]]^^^^^___`````aaaabbbccccdddddeeeeffffggghhhhhiiiijjjkkkkklllllkkkkkjjiiiiihhhhgggggffeeeeeddddcccccbbbaaaaa```____^^^^]]]]]\\\\\[[ZZZZZYYYYYXXXXXWWWVVVVVUUUUUTTTTTSSRRRRRQQQQQPPPPOOOOONNNNNMMMMMLLLLKKKKKJJJJJJIIIIIHHHHGGGGGGFFFFFEEEEEEDDDDDCCCCCCCBBBBBBAAAA@@@@@@@??????>>>>>>>>======<<<<<<<<;;;;;;;;;;::::::::::9999999888888888888877777777777777777666666666666666666666666666666666666666666666666666666666666677777777777777777788888888888899999999::::::::::;;;;;;;;;;<<<<<<<=======>>>>>>>??????@@@@@@@@AAAABBBBBBCCCCCCDDDDDEEEEEEFFFFFGGGGGGGHHHIIIIIJJJJJJJKKKKKLLLMMMMMNNNNNOOOOOPPPPQQQQQRRRRRSSSTTTTTUUUUUVVVVVWWXXXXXYYYYYZZZZZ[[[\\\\\]]]]]^^^____````aaaaabbcccccddddeeeeefffggggghhhiiiiijjjkkkkkllllkkkjjjjiiiihhhhhggggffeeeeedddddccccbbaaaaa`````___^^^^^]]]]\\\\\[[[ZZZZYYYYYXXXXXWWWVVVVVUUUUUTTTTTSSRRRRRQQQQQPPPPOOOOONNNNNMMMMMLLLLKKKKKJJJJJJIIIIIHHHHGGGGGGFFFFFEEEEEEDDDDCCCCCCBBBBBBAAAAA@@@@@@@???????>>>>>>>>=====<<<<<<<;;;;;;;;;::::::::::999999988888888888877777777777777776666666666666666666666666666666666666666666666666666666666666666666666666677777777777777778888888888899999999::::::::::;;;;;;;;<<<<<<<<=====>>>>>>>????????@@@@@@AAAAABBBBBBCCCCCCCDDDEEEEEEEFFFFFGGGGGGHHHHIIIIIJJJJJJKKKKKLLLLMMMMMNNNNNOOOOOPPPQQQQQRRRRRSSSTTTTTUUUUUVVVVVWWXXXXXYYYYYZZZZ[[[[\\\\\]]]]^^^^^__`````aaaaabbbcccdddddeeeeefffgggghhhhhiiijjjjkkkkllkkkkkjjjiiiiihhhhgggggffeeeedddddccccbbbaaaa`````___^^^^^]]]]]\\\[[[[ZZZZZYYYYXXXXXWWWWVVVUUUUUTTTTTSSSSRRRRRQQQQQPPPOOOOONNNNNMMMMMLLLKKKKKJJJJJJJIIIIIHHHGGGGGGGFFFFFEEEEEEDDDDCCCCCCBBBBBBAAAA@@@@@@@???????>>>>>>>=====<<<<<<<<;;;;;;;;::::::::::99999998888888888877777777777777666666666666666666666655555555555555555555555555555555555555555666666666666666666666667777777777777788888888888999999::::::::::;;;;;;;;;<<<<<<<=====>>>>>>>>??????@@@@@@@@AAABBBBBBBCCCCCCDDDDEEEEEEFFFFFGGGGGGHHHHIIIIIJJJJJJKKKKKLLLLMMMMMNNNNNOOOOOPPQQQQQRRRRRSSSSTTTTTUUUUUVVVVWWWWXXXXXYYYZZZZZ[[[[\\\\]]]]]^^^^^__`````aaaabbbbccccdddddeeefffggggghhhhiiiiijjkkkkklkkkkjjjjiiiihhhgggggfffeeeeeddddcccccbbaaaaa````____^^^]]]]]\\\\\[[[ZZZZZYYYYYXXXXWWWVVVVVUUUUTTTTTSSSSRRRRRQQQQQPPOOOOONNNNNMMMMMLLLLKKKKKJJJJJJIIIIIHHHHGGGGGFFFFFFEEEEEEEDDDCCCCCCCBBBBBBAAAA@@@@@@???????>>>>>>>=====<<<<<<<;;;;;;;;;:::::::::999999888888888887777777777777666666666666666666555555555555555555555555555555555555555555555555555555555556666666666666666666777777777777888888888888999999:::::::::;;;;;;;;<<<<<<<<=====>>>>>>????????@@@@@@AAAABBBBBBCCCCCCDDDDEEEEEEFFFFFFGGGGGHHHHIIIIIJJJJJJKKKKKLLLLMMMMMNNNNNOOOOOPPPQQQQQRRRRRSSSTTTTTUUUUVVVVVWWWWXXXXYYYYYZZZZZ[[\\\\\]]]]]^^^^____```aaaaabbbcccccddddeeeeeffggggghhhhiiiijjjkkkklkkkkjjjiiihhhhhggggffffeeeedddddcccbbbbaaaa`````__^^^^^]]]]\\\\\[[[ZZZZZYYYYYXXXXXWWVVVVVUUUUUTTTTSSSSRRRRRQQQQQPPOOOOONNNNNMMMMMMLLLKKKKKJJJJJJIIIIIHHHHGGGGGFFFFFFEEEEEDDDDCCCCCCBBBBBBAAAAA@@@@@@@??????>>>>>>>====<<<<<<<<<;;;;;;;:::::::::99999988888888887777777777777666666666666666555555555555555544444444444444444444444444444444444444444555555555555555556666666666666667777777777778888888888999999:::::::::;;;;;;;;<<<<<<<<====>>>>>>>>??????@@@@@@AAAAABBBBBBCCCCCCCDDDEEEEEFFFFFFFGGGGGHHHIIIIIJJJJJJJKKKKKLLMMMMMMNNNNNOOOOOPPPQQQQQRRRRRSSSSTTTUUUUUVVVVVWWWXXXXXYYYYYZZZZZ[[\\\\\]]]]^^^^^___`````aaabbbbccccdddddeeeefffgggghhhhhiiiijjkkkkkkkkjjiiiiihhhhgggggfffeeeeedddcccccbbbaaaa`````__^^^^^]]]]]\\\\[[[[ZZZYYYYYXXXXXWWWVVVVVUUUUUTTTTTSSRRRRRQQQQQPPPPOOOOONNNNNMMMMMLLLKKKKKJJJJJJIIIIIHHHHGGGGGFFFFFFEEEEEDDDDCCCCCCBBBBBBAAAA@@@@@@????????>>>>>>=====<<<<<<<;;;;;;;;:::::::::9999998888888887777777777776666666666666655555555555544444444444444444444444444444444444444444444444444444444444555555555555566666666666667777777777777888888888999999:::::::::;;;;;;;<<<<<<<<=====>>>>>>???????@@@@@@@AAABBBBBBBCCCCCCDDDDEEEEEFFFFFFGGGGGHHHHIIIIIJJJJJJKKKKKLLMMMMMNNNNNOOOOOPPPPQQQQQRRRRRSSSTTTTTUUUUUVVVVVWWXXXXXYYYYYZZZZ[[[[\\\]]]]]^^^^^___`````aaaabbcccccddddeeeeeffggggghhhhiiiiijjjkkkkkkjjiiiihhhhhggggffeeeeeddddcccccbbbaaaaa```____^^^^]]]]]\\\\\[[ZZZZZYYYYXXXXXWWWWVVVVUUUUUTTTTTSSRRRRRQQQQQPPPPOOOOONNNNNMMMMMLLKKKKKKKJJJJJIIIIIHHHGGGGGFFFFFFFEEEEEDDDCCCCCCCBBBBBBAAAA@@@@@@??????>>>>>>=====<<<<<<<<;;;;;;;:::::::::999998888888888777777777776666666666666555555555544444444444444444444444444444444444444444444444444444444444444444444444444555555555566666666666677777777777888888888899999:::::::::;;;;;;;;<<<<<<<=====>>>>>>???????@@@@@@AAAABBBBBBCCCCCCDDDDEEEEEFFFFFFGGGGGHHHHIIIIIJJJJJKKKKKKLLLMMMMMNNNNNOOOOOPPPQQQQQRRRRRSSSTTTTTUUUUUVVVVWWWXXXXXYYYYZZZZZ[[[\\\\\]]]]]^^^____````aaaaabbcccccddddeeeeefffggghhhhhiiiijjjkkkkkjjiiiiihhhhgggggffeeeedddddccccbbbbaaa`````___^^^^^]]]]\\\\\[[ZZZZZYYYYYXXXXWWWWVVVVVUUUTTTTTSSSSRRRRQQQQQPPPPOOOOONNNNNMMMMMLLKKKKKKJJJJJIIIIIHHHHGGGGGFFFFFEEEEEEDDDDCCCCCCBBBBBAAAAA@@@@@@@??????>>>>>>=====<<<<<<;;;;;;;;:::::::::99999888888888877777777776666666666655555555554444444444444444444443333333333333333333333333333333333333333344444444444444444444445555555555666666666667777777777888888888899999:::::::::;;;;;;;<<<<<<=====>>>>>>>??????@@@@@@AAAAABBBBBCCCCCCDDDDEEEEEEFFFFFGGGGGHHHHIIIIIJJJJJKKKKKKLLLMMMMMNNNNNOOOOOPPPPQQQQQRRRSSSSTTTTTUUUUVVVVVWWWWXXXYYYYYZZZZZ[[[\\\\\]]]]^^^^^__`````aaaabbbbcccdddddeeeefffggggghhhiiiiijjjkkjjjjiiiihhhhhggggffeeeeeddddcccccbbaaaaa````____^^^^]]]]]\\\[[[[ZZZZYYYYYXXXXXWWVVVVVUUUUUTTTTSSSSRRRRRQQQQPPPOOOOONNNNNMMMMMLLLLKKKKKJJJJJIIIIIHHHHGGGGGFFFFFEEEEEEDDDDCCCCCBBBBBBAAAA@@@@@@??????>>>>>>>=====<<<<<<<;;;;;;;;:::::::9999988888888877777777776666666666655555555544444444444444444333333333333333333333333333333333333333333333333333333333334444444444444444445555555566666666666677777777778888888899999::::::::;;;;;;;<<<<<<<<=====>>>>>>??????@@@@@@@AAABBBBBBBCCCCCDDDEEEEEEEFFFFFGGGGGHHHIIIIIJJJJJKKKKKLLLLMMMMMNNNNNOOOOOPPPPQQQQRRRRRSSSTTTTUUUUUVVVVVWWWXXXXXYYYYYZZZ[[[[\\\\]]]]]^^^^___````aaaaabbbcccccdddeeeeefffgggghhhhhiiijjjjkjjjiiiiihhhhgggffffeeeedddddccccbbaaaaa`````___^^^]]]]]\\\\\[[[ZZZZZYYYYXXXXXWWVVVVVUUUUUTTTTTSSSRRRRRQQQQQPPOOOOONNNNNMMMMMLLLLKKKKKJJJJJIIIIIHHHHGGGGGFFFFFEEEEEEDDDDCCCCCBBBBBBAAAA@@@@@@??????>>>>>>=====<<<<<<<;;;;;;;::::::::999998888888877777777776666666666555555555444444444444444333333333333333333333333333333333333333333333333333333333333333333333334444444444444445555555556666666666777777777788888888899999:::::::;;;;;;;;<<<<<<=====>>>>>>???????@@@@@@AAAABBBBBBCCCCCDDDDEEEEEEFFFFFGGGGGHHHHIIIIIJJJJJKKKKKLLLMMMMMNNNNNOOOOOPPPQQQQQRRRRRSSTTTTTUUUUUVVVVVWWWXXXXXYYYYZZZZZ[[\\\\\]]]]]^^^^__`````aaaaabbbccccdddddeeeffffgggghhhhiiiiijjkjjjiiiihhhgggggfffeeeeeddddcccccbbaaaa`````__^^^^^]]]]\\\\\[[[ZZZZZYYYYYXXXWWWWVVVVUUUUUTTTTTSSRRRRRQQQQQPPPOOOOONNNNNMMMMMLLLLKKKKKJJJJJIIIIIHHHGGGGGFFFFFEEEEEEEDDDCCCCCBBBBBBBAAA@@@@@@@??????>>>>>>====<<<<<<;;;;;;;;:::::::99999888888888777777777666666666655555554444444444444433333333333333333333322222222222222222222222222222222222222222333333333333333333333344444444444445555555566666666667777777778888888899999::::::::;;;;;;;<<<<<<<===>>>>>>>??????@@@@@@AAAABBBBBBCCCCCDDDDEEEEEEFFFFFGGGGGHHHHIIIIIJJJJJKKKKKLLLLMMMMMNNNNNOOOOOPPQQQQQRRRRRSSSTTTTTUUUUUVVVWWWWXXXXYYYYYZZZZZ[[\\\\\]]]]^^^^^___`````aaabbbcccccddddeeeeeffggggghhhhiiiijjjjjiiiiihhhggggffffeeeedddddcccbbbaaaaa````___^^^^]]]]]\\\\[[[[ZZZYYYYYXXXXWWWWVVVVVUUUUTTTTTSSSRRRRQQQQQPPPPOOOONNNNNMMMMMLLLKKKKKJJJJJIIIIIHHHHGGGGGFFFFFEEEEEEDDDCCCCCCBBBBBAAAAA@@@@@??????>>>>>>>=====<<<<<<;;;;;;;:::::::9999988888888777777777666666666655555544444444444443333333333333333322222222222222222222222222222222222222222222222222222222222333333333333333333444444444444555555666666666677777777788888888899999::::::;;;;;;;;<<<<<<=====>>>>>>??????@@@@@AAAAABBBBBCCCCCCCDDEEEEEEFFFFFGGGGGHHHHIIIIIJJJJJKKKKKLLLLMMMMMNNNNNOOOOPPPQQQQQRRRRSSSSTTTTTUUUUVVVVVWWWXXXXYYYYYZZZZ[[[[\\\]]]]]^^^^____````aaaaabbccccdddddeeeefffgggghhhhiiiiijjjjiiihhhhgggggfffeeeeedddccccbbbbaaaa`````__^^^^^]]]]\\\\\[[ZZZZZYYYYXXXXXWWWVVVVVUUUUUTTTSSSSRRRRRQQQQPPPPOOOOONNNNNMMMLLLLKKKKKJJJJJIIIIIHHHHGGGGGFFFFFEEEEEEDDDCCCCCCBBBBBAAAA@@@@@@??????>>>>>>====<<<<<<;;;;;;;;:::::::9999988888888777777777666666665555555544444444444333333333333333222222222222222222222222222222222222222222222222222222222222222222222223333333333333334444444444445555555666666666777777777888888899999::::::::;;;;;;;<<<<<<====>>>>>>???????@@@@@@AAAABBBBBCCCCCCDDEEEEEEEFFFFFGGGGGHHHIIIIIJJJJJKKKKKLLLLMMMMNNNNNOOOOOPPPPQQQRRRRRSSSSTTTTUUUUUVVVVVWWXXXXXYYYYZZZZZ[[[\\\\\]]]^^^^^___`````aaaabbbccccddddeeeeeffggggghhhhiiiijjiiiihhhhhggggffffeeeddddcccccbbbaaaaa```___^^^^^]]]]\\\\\[[ZZZZZYYYYYXXXXWWWWVVVUUUUUTTTTTSSSRRRRRQQQQQPPOOOOONNNNNMMMMMLLLKKKKKJJJJJIIIIIHHHHGGGGGFFFFFEEEEEDDDCCCCCCCBBBBBAAA@@@@@@@??????>>>>>>====<<<<<<;;;;;;::::::::999998888888777777777666666666555555444444444443333333333333322222222222222222222111111111111111111111111111111111111111112222222222222222222233333333333333444444444445555555666666667777777778888888899999:::::::;;;;;;<<<<<<<===>>>>>>>??????@@@@@@AAAABBBBBCCCCCCDDDDEEEEEFFFFFGGGGGHHHHIIIIIJJJJJKKKKKLLMMMMMNNNNNOOOOOPPPQQQQQRRRRRSSTTTTTUUUUUVVVVWWWWXXXYYYYYZZZZZ[[[\\\\\]]]]^^^^^__````aaaaabbcccccddddeeeeffffggghhhhhiiiijiiiihhhhgggggffeeeedddddccccbbbbaaa`````___^^^^]]]]]\\\[[[[ZZZZYYYYYXXXXWWWVVVVUUUUUTTTTTSSSRRRRRQQQQQPPOOOOONNNNNMMMMMLLLKKKKKJJJJJIIIIIHHHGGGGGFFFFFEEEEEDDDDCCCCCCBBBBBAAAA@@@@@@?????>>>>>>>=====<<<<<<;;;;;;::::::99999888888887777777776666666555555554444444444333333333333222222222222222211111111111111111111111111111111111111111111111111111111111222222222222222233333333333334444444444555555566666666777777777888888899999::::::;;;;;;;<<<<<<=====>>>>>>?????@@@@@@AAAABBBBBCCCCCCDDDDEEEEEFFFFFGGGGGHHHHIIIIIJJJJJKKKKKLLMMMMMNNNNNOOOOOPPPQQQQQRRRRRSSTTTTTUUUUUVVVVWWWWXXXXYYYYYZZZ[[[[\\\\]]]]]^^^^__`````aaaabbbbcccdddddeeeefffggggghhhiiiijiiihhhhhggggffeeeeeddddcccccbbaaaa`````___^^^^^]]]\\\\\[[[ZZZZZYYYYXXXXXWWVVVVVUUUUTTTTTSSSSRRRQQQQQPPPPOOOONNNNNMMMMMLLLLKKKJJJJJIIIIIHHHHGGGGGFFFFFEEEEEDDDDCCCCCCBBBBBAAAA@@@@@@?????>>>>>>====<<<<<<;;;;;;;:::::::9999988888877777777766666666555555444444444433333333333222222222222222111111111111111000000000000000000000000000000000000000001111111111111112222222222222223333333333334444444444555555666666677777777788888899999::::::::;;;;;;<<<<<<====>>>>>>?????@@@@@@@AAABBBBBCCCCCCCDDDEEEEEFFFFFGGGGGHHHHIIIIIJJJJJKKKKLLLLMMMMMNNNNNOOOPPPPQQQQQRRRRSSSSTTTTTUUUVVVVVWWWXXXXXYYYYZZZZZ[[\\\\\]]]]^^^^^__`````aaaabbbcccccdddeeeeefffgggghhhhhiiiiiihhhhgggggffeeeedddddccccbbaaaaa````____^^^]]]]]\\\\[[[ZZZZZYYYYYXXXWWWWVVVVUUUUUTTTTSSSRRRRRQQQQPPPPOOOOONNNNMMMMMLLLKKKKKJJJJJIIIIHHHHGGGGGFFFFFEEEEEDDDDCCCCCCBBBBBAAAA@@@@@??????>>>>>>====<<<<<<;;;;;;:::::::999998888888777777776666666555555444444444433333333332222222222222211111111111110000000000000000000000000000000000000000000000000000000011111111111122222222222222333333333344444444445555556666666677777778888888899999::::::;;;;;;<<<<<<<===>>>>>>>??????@@@@@AAAABBBBBCCCCCCDDDDEEEEEFFFFFGGGGGHHHIIIIJJJJJKKKKKLLLLMMMMMNNNNOOOOOPPPQQQQRRRRRSSSSTTTTUUUUUVVVWWWWXXXXYYYYYZZZZZ[[\\\\]]]]]^^^^____```aaaaabbbccccdddddeeefffggggghhhhiiiiihhhhhgggfffeeeeeddddcccccbbaaaa`````__^^^^^]]]]\\\\\[[[ZZZYYYYYXXXXWWWWVVVVUUUUUTTTTTSSRRRRRQQQQQPPPOOOOONNNNNMMMLLLLKKKKKJJJJJIIIIIHHHGGGGGFFFFFEEEEEEDDCCCCCCCBBBBBAAA@@@@@???????>>>>>=====<<<<<<;;;;;;::::::999988888888777777766666666555555444444444333333333322222222222211111111111000000000000000000000000000000000000000000000000000000000000000000000111111111112222222222222333333333344444444455555566666667777777788888889999::::::;;;;;;;<<<<<<=====>>>>>??????@@@@@AAAABBBBBCCCCCCDDDEEEEEEFFFFFGGGGGHHIIIIIJJJJJKKKKKLLLLMMMMNNNNNOOOOOPPQQQQQRRRRRSSSTTTTTUUUUUVVVVWWWXXXXYYYYYZZZZ[[\\\\\]]]]^^^^^___`````aaabbbcccccddddeeeeeffgggghhhhhiiiihhhgggggfffeeeedddddcccbbbaaaaa````__^^^^^]]]]\\\\\[[ZZZZZYYYYXXXXXWWWVVVVVUUUTTTTTSSSRRRRRQQQQQPPOOOOONNNNNMMMMMLLLKKKKKJJJJJIIIIIHHGGGGGFFFFFEEEEEEEDDCCCCCCBBBBBAAAA@@@@@??????>>>>>====<<<<<<;;;;;;;::::::9999988888877777777666666655555544444444433333333332222222222211111111100000000000000000000/////////////////////////////////////////00000000000000000000111111111222222222223333333333444444444555555666666667777777888888899999::::::;;;;;;<<<<<<====>>>>>??????@@@@@AAAABBBBBCCCCCCDDDEEEEEEFFFFFGGGGGHHHIIIIIJJJJJKKKKKLLMMMMMNNNNNOOOOOPPPQQQQQRRRRRSSTTTTTUUUUVVVVVWWXXXXXYYYYZZZZZ[[[\\\\\]]]^^^^^___````aaaaabbccccdddddeeeeffggggghhhhiihhhhhggggfffeeeeedddcccccbbbaaaa`````__^^^^]]]]]\\\\[[[ZZZZYYYYYXXXXWWWWVVVUUUUUTTTTSSSSRRRRQQQQQPPPOOOONNNNNMMMMMLLLKKKKKJJJJJIIIIIHHHGGGGGFFFFFEEEEEDDDCCCCCCBBBBBAAAA@@@@@?????>>>>>>====<<<<<<;;;;;;:::::::9998888888877777776666666655555444444444333333332222222222221111111100000000000000000////////////////////////////////////////////////////////0000000000000000111111111222222222223333333334444444445555566666667777777788888889999::::::;;;;;;<<<<<<<===>>>>>>>?????@@@@@AAABBBBBCCCCCCCDDEEEEEFFFFFGGGGGHHHHIIIIIJJJJJKKKKKLLMMMMMNNNNNOOOOPPPPQQQQQRRRRSSSTTTTUUUUUVVVVWWWWXXXYYYYYZZZZ[[[[\\\\]]]]]^^^___`````aaaabbcccccddddeeeeeffgggghhhhhihhhhgggggfffeeedddddccccbbbaaaaa```___^^^^^]]]]\\\\\[[ZZZZZYYYYXXXXXWWVVVVVUUUUTTTTTSSSRRRRRQQQPPPPOOOOONNNNMMMMMLLLLKKKJJJJJIIIIIHHHHGGGGGFFFFFEEEEEDDDCCCCCCBBBBBAAAA@@@@@?????>>>>>>====<<<<<<;;;;;;::::::99998888887777777766666665555544444444333333333322222222221111111000000000000000/////////////////////////////////////////////////////////////////////00000000000000011111111222222222233333333334444444555556666666677777778888889999::::::;;;;;;;<<<<<<====>>>>>>?????@@@@@AAAABBBBBCCCCCCDDEEEEEFFFFFGGGGGHHHHIIIIIJJJJJKKKKLLLLMMMMMNNNOOOOOPPPPQQQQRRRRRSSTTTTTUUUUVVVVVWWWXXXXXYYYZZZZZ[[[\\\\\]]]]^^^^^__````aaaaabbccccdddddeeeeffggggghhhhihhhhggggffeeeeeddddccccbbbbaaa`````___^^^^]]]]]\\\[[[ZZZZZYYYYXXXXXWWVVVVVUUUUTTTTTSSRRRRRQQQQQPPPOOOOONNNNNMMMMLLLKKKKKJJJJIIIIIHHHHGGGGGFFFFFEEEEEDDCCCCCCCBBBBBAAA@@@@@?????>>>>>>>===<<<<<;;;;;;;::::::99999888888777777666666665555544444443333333332222222222111111110000000000000////////////////////.......................................////////////////////000000000000001111111222222222233333333344444444555556666666777777888888899999::::::;;;;;;<<<<<====>>>>>>?????@@@@@AAAABBBBBCCCCCCDDDEEEEEFFFFFGGGGGHHHIIIIIJJJJKKKKKLLLLMMMMNNNNNOOOOOPPQQQQQRRRRRSSSTTTTTUUUVVVVVWWWXXXXXYYYYZZZZZ[[\\\\]]]]]^^^^__`````aaaabbbbcccddddeeeeefffggghhhhhhhhgggggffeeeedddddccccbbaaaaa````___^^^^^]]]\\\\\[[[ZZZZYYYYYXXXWWWWVVVVUUUUUTTTTSSSRRRRQQQQQPPPOOOOONNNNNMMMMMLLKKKKKJJJJJIIIIHHHHGGGGGFFFFFEEEEEDDDCCCCCBBBBBAAAA@@@@@?????>>>>>>====<<<<<;;;;;;:::::::9998888888777777766666655555444444444333333332222222222111111000000000000/////////////////........................................................////////////////00000000000001111112222222222333333344444444455555666666777777778888889999::::::;;;;;;<<<<<====>>>>>>?????@@@@@AAAABBBBBCCCCCDDDDEEEEEFFFFFGGGGGHHHHIIIJJJJJKKKKKLLLMMMMMNNNNNOOOOOPPQQQQQRRRRSSSSTTTTUUUUUVVVWWWWXXXXYYYYYZZZZ[[\\\\\]]]]^^^^^__````aaaaabbbcccdddddeeeefffggggghhhhhhggggffeeeeeddddccccbbbaaaa````____^^^]]]]]\\\\[[[ZZZZZYYYXXXXXWWWVVVVVUUUUTTTTTSSRRRRRQQQQPPPPOOONNNNNMMMMMLLLKKKKKJJJJJIIIIIHHGGGGGFFFFFEEEEEDDDDCCCCCBBBBBAAAA@@@@@?????>>>>>>====<<<<<;;;;;;::::::999988888877777776666666555554444444433333332222222221111111000000000000/////////////...............---------------------------------------...............//////////////00000000000111111112222222233333333444444455555666666667777778888889999::::::;;;;;;;<<<<<===>>>>>>>?????@@@@@AAABBBBBCCCCCDDDDEEEEEFFFFFGGGGGHHHIIIIIJJJJJKKKKKLLMMMMMNNNNNOOOOPPPPQQQRRRRRSSSTTTTTUUUUVVVVVWWXXXXXYYYYZZZZZ[[\\\\]]]]]^^^^____```aaaabbbbccccdddeeeeefffgggghhhhhgggggffeeeedddddccccbbaaaaa````__^^^^^]]]]\\\\[[[[ZZZYYYYYXXXXWWWVVVVVUUUUUTTTSSSRRRRRQQQQQPPOOOOONNNNMMMMMLLLLKKKKJJJJJIIIIIHHGGGGGFFFFFEEEEEDDDDCCCCCBBBBBAAAA@@@@@?????>>>>>===<<<<<<<;;;;;;:::::9999988888877777766666665555544444443333333322222222111111100000000000////////////............--------------------------------------------------------.........../////////////0000000000011111122222222233333334444444455555666666777777888888899999:::::;;;;;;<<<<<<====>>>>>?????@@@@@AAAABBBBBCCCCCDDDEEEEEFFFFFGGGGGHHHIIIIIJJJJJKKKKLLLMMMMMNNNNOOOOOPPPQQQQQRRRRRSSTTTTUUUUUVVVVVWWXXXXYYYYYZZZZ[[[[\\\]]]]^^^^^___```aaaaabbbccccdddddeeefffggggghhhhgggfffeeeeeddddcccbbbbaaaa````___^^^^]]]]\\\\\[[ZZZZZYYYYXXXXXWWWVVVUUUUUTTTTSSSSRRRRQQQQQPPOOOOONNNNNMMMMLLLLKKKKKJJJIIIIIHHHHGGGGFFFFFEEEEEDDDDCCCCCBBBBBAAA@@@@@?????>>>>>====<<<<<<;;;;;:::::::9998888888777777666666655554444444433333332222222221111110000000000///////////..........---------------------------------------------------------------------..........///////////00000000001111111222222223333333344444445555666666667777778888889999::::::;;;;;<<<<<<====>>>>>?????@@@@@AAAABBBBBCCCCCDDDDEEEEEFFFFFGGGHHHHIIIIIJJJJKKKKKLLLLMMMNNNNNOOOOOPPPQQQQQRRRRSSSTTTTUUUUUVVVVWWXXXXXYYYYZZZZZ[[[\\\\\]]]^^^^____````aaabbbbccccddddeeeeeffgggghhgggggfffeeeedddddcccbbbaaaa`````__^^^^^]]]]\\\\[[[ZZZZYYYYYXXXXWWVVVVVUUUUTTTTTSSSRRRRRQQQPPPPOOOONNNNNMMMMMLLKKKKKJJJJJIIIIHHHHGGGGGFFFFEEEEEDDDCCCCCBBBBBAAAA@@@@@?????>>>>>====<<<<<<;;;;;::::::99998888887777777666666555554444443333333322222222111111100000000////////////........--------------------,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,--------------------.........///////////00000000011111122222222233333334444444555556666667777778888889999::::::;;;;;<<<<<<<===>>>>>?????@@@@@AAAABBBBBCCCCCDDDDEEEEEFFFFGGGGGHHHIIIIJJJJJKKKKKLLLMMMMMNNNNNOOOPPPPQQQQRRRRRSSTTTTTUUUUVVVVVWWWXXXYYYYYZZZZ[[[[\\\\]]]^^^^^___`````aaaabbccccdddddeeeeffggggghggggfffeeeeedddccccbbbbaaaa```____^^^^]]]]\\\\\[[ZZZZYYYYYXXXXWWWVVVVUUUUUTTTTSSSSRRRQQQQQPPPOOOOONNNNMMMMMLLKKKKKJJJJJIIIIIHHHGGGGGFFFFFEEEEEDDCCCCCBBBBBAAAA@@@@@?????>>>>>====<<<<<<;;;;;::::::9999888888777777666666655544444444333333322222222111110000000000//////////.........----------------,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,----------------.........//////////000000000011111222222233333333444444455556666667777778888888999:::::::;;;;;<<<<<<====>>>>>?????@@@@@AAABBBBBCCCCCDDDEEEEEFFFFFGGGGGHHIIIIIJJJJJKKKKKLLLMMMMMNNNNOOOOOPPQQQQQRRRRSSSSTTTUUUUUVVVVWWWWXXXXYYYYYZZZ[[[\\\\\]]]]^^^____````aaaabbbccccddddeeeeeffgggghggggfffeeedddddccccbbbaaa`````___^^^^]]]]]\\\[[[[ZZZZYYYYXXXXXWWVVVVVUUUUTTTTTSSRRRRQQQQQPPPOOOOONNNNNMMMLLLLKKKKJJJJJIIIIIHHGGGGGFFFFFEEEEEDDDCCCCCBBBBBAAAA@@@@@?????>>>>>===<<<<<<<;;;;;:::::99999888887777776666665555544444433333333222222211111000000000//////////........---------------,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,---------------.......//////////000000000111112222222233333334444445555566666667777778888899999:::::;;;;;<<<<<<====>>>>>?????@@@@@AAAABBBBBCCCCCDDEEEEEFFFFFGGGGGHHHIIIIIJJJJJKKKLLLLMMMMNNNNNOOOOOPPQQQQQRRRRSSSTTTTTUUUVVVVVWWWXXXXXYYYYZZZ[[[[\\\\]]]]]^^^^__`````aaaabbccccdddddeeeeffggggggggffeeeeeddddccccbbbbaaa````____^^^^]]]\\\\\[[[ZZZZYYYYYXXXWWWWVVVVUUUUTTTTTSSRRRRRQQQQPPPPOOONNNNNMMMMMLLLKKKKKJJJJIIIIIHHHGGGGFFFFFEEEEEDDDCCCCCBBBBBAAA@@@@@?????>>>>>====<<<<<;;;;;;:::::99998888887777777666666555544444443333332222222211111000000000//////////......--------------,,,,,,,,,,,,,,,,,,+++++++++++++++++++++++++++++++++++++++,,,,,,,,,,,,,,,,,,,--------------......//////////0000000001111122222223333334444444455556666667777778888889999:::::;;;;;;<<<<<====>>>>>?????@@@@@AAAABBBBBCCCCCDDEEEEEFFFFFGGGGHHHHIIIIIJJJJKKKKKLLMMMMMNNNNNOOOOPPPPQQQRRRRRSSSTTTTTUUUUVVVWWWWXXXXYYYYYZZZZ[[\\\\\]]]]^^^^___````aaaabbbbcccddddeeeeefffggggggffeeeedddddccccbbaaaa`````___^^^]]]]]\\\\[[[ZZZZZYYYXXXXXWWWVVVVUUUUUTTTSSSSRRRRQQQQQPPOOOOONNNNMMMMMLLLKKKKKJJJJJIIIHHHHGGGGGFFFFEEEEEDDDDCCCCCBBBAAAA@@@@@?????>>>>>====<<<<<;;;;;;:::::999988888877777766666665554444444333333322222211111110000000/////////.......------------,,,,,,,,,,,,,,,,++++++++++++++++++++++++++++++++++++++++++++++++++++++,,,,,,,,,,,,,,,,-----------........////////000000001111112222223333333344444455556666667777778888888999:::::;;;;;;;<<<<<===>>>>>?????@@@@@AAAABBBBCCCCCDDDDEEEEEFFFGGGGGHHHHIIIIJJJJJKKKKKLLMMMMMNNNNOOOOOPPPQQQQQRRRSSSSTTTTUUUUUVVVVWWXXXXXYYYYZZZZZ[[\\\\]]]]]^^^^__`````aaaabbbcccdddddeeeefffgggggfffeeeeddddccccbbbaaaa````____^^^]]]]\\\\\[[[ZZZYYYYYXXXXWWWVVVVVUUUTTTTTSSSRRRRRQQQQPPOOOOONNNNNMMMMLLLLKKKJJJJJIIIIIHHHGGGGGFFFFFEEEEDDDCCCCCBBBBBAAA@@@@@?????>>>>>====<<<<<;;;;;;:::::99998888887777766666655555444444333333322222221111100000000////////.......-----------,,,,,,,,,,,,,,++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++,,,,,,,,,,,,,,-----------....../////////00000001111122222222333333444444555556666666777778888889999:::::;;;;;;<<<<<====>>>>>?????@@@@@AABBBBBCCCCCDDDDEEEEFFFFFGGGGGHHIIIIIJJJJJKKKKLLLLMMMNNNNNOOOOOPPPQQQQRRRRRSSTTTTTUUUUVVVVVWWXXXXYYYYYZZZZ[[\\\\\]]]]^^^^____```aaaabbbbccccdddeeeeffffggggffeeeedddddccccbbaaaa`````__^^^^]]]]]\\\\[[ZZZZZYYYYXXXXXWWWVVVUUUUUTTTTSSSSRRRRQQQQQPPOOOONNNNNMMMMMLLKKKKKJJJJIIIIIHHHGGGGGFFFFFEEEEEDDCCCCCBBBBBAAA@@@@@?????>>>>>===<<<<<;;;;;;;:::::999888887777777666666555544444433333332222222111110000000/////////......----------,,,,,,,,,,,,,++++++++++++++++++***************************************+++++++++++++++++++,,,,,,,,,,,,----------.......////////0000000011111222222333333334444445555666666777777888889999:::::;;;;;;<<<<<====>>>>>?????@@@@@AABBBBBCCCCCDDDEEEEEFFFFFGGGGGHHIIIIIJJJJKKKKKLLLMMMMMNNNNNOOOPPPQQQQQRRRRSSSTTTTUUUUUVVVVWWXXXXXYYYYZZZZZ[[[\\\]]]]]^^^^___`````aaabbbccccdddddeeefffggffffeeeeddddcccbbbbaaaa````___^^^^]]]]\\\\\[[ZZZZYYYYYXXXXWWVVVVVUUUUTTTTTSSSRRRQQQQQPPPOOOOONNNNMMMMMLLKKKKKJJJJIIIIIHHHHGGGFFFFFEEEEEDDDCCCCCBBBBBAAAA@@@@@???>>>>>>>==<<<<<;;;;;;:::::999988888777777666666655544444443333332222221111100000000////////.....----------,,,,,,,,,,,,,+++++++++++++++******************************************************+++++++++++++++,,,,,,,,,,,,----------...../////////00000001111122222223333334444445555666666777777888889999:::::;;;;;;<<<<<===>>>>>>????@@@@@AAAABBBBBCCCCCDDEEEEEFFFFFGGGGHHHHIIIIIJJJKKKKKLLLMMMMMNNNNOOOOOPPQQQQQRRRRSSTTTTTUUUUVVVVVWWWXXXYYYYYZZZZ[[[\\\\\]]]^^^^____````aaabbbbccccddddeeeffffgfffeeeedddddcccbbbaaaaa````__^^^^]]]]]\\\\[[ZZZZZYYYYXXXXXWWVVVVUUUUUTTTTSSRRRRRQQQQPPPPOOOONNNNNMMMLLLLKKKKJJJJJIIIIHHHGGGGGFFFFEEEEEDDDDCCCCBBBBBAAA@@@@@?????>>>>>===<<<<<;;;;;;:::::9999888887777776666655555444444333333322222211111000000/////////.....----------,,,,,,,,,,++++++++++++++***************))))))))))))))))))))))))))))))))))))***************++++++++++++++,,,,,,,,,,----------.....////////0000000111112222223333334444445555566666777777788888999:::::;;;;;;;<<<<<==>>>>>?????@@@@@AAAABBBBBCCCCDDDEEEEEFFFFGGGGGHHHHIIIIJJJJJKKKLLLLMMMMNNNNNOOOOPPPQQQQRRRRRSSSTTTUUUUUVVVVWWWXXXXXYYYZZZZZ[[[\\\\]]]]]^^^___````aaaaabbccccdddddeeeeffgfffeeeedddcccccbbbaaaa```____^^^^]]]]\\\\\[[ZZZZYYYYYXXXXWWVVVVVUUUUTTTTSSSRRRRQQQQQPPPOOOOONNNMMMMMLLLKKKKKJJJJIIIIIHHGGGGGFFFFFEEEEDDDDCCCCCBBBAAAA@@@@@?????>>>>>===<<<<<<;;;;;:::::9999888887777776666655554444443333332222221111100000000///////.....---------,,,,,,,,,,+++++++++++++***********))))))))))))))))))))))))))))))))))))))))))))))))))))))***********++++++++++++,,,,,,,,,,---------.....////////0000000111112222223333333444444555566666777777888889999:::::;;;;;<<<<<<==>>>>>?????@@@@@AAAABBBBCCCCCDDDDEEEFFFFFGGGGGHHHIIIIIJJJJKKKKKLLMMMMMNNNNOOOOOPPQQQQQRRRRSSSSTTTTUUUVVVVVWWWXXXXYYYYYZZZ[[[\\\\\]]]]^^^____````aaaabbcccccddddeeeeffgffeeeeedddccccbbbaaaaa```___^^^^]]]]]\\\[[[ZZZZZYYYYXXXWWWWVVVVUUUUUTTTTSSRRRRRQQQQPPOOOOONNNNMMMMMLLLKKKKKJJJIIIIIHHHGGGGGFFFFFEEEEEDDCCCCCBBBBBAAA@@@@@?????>>>>>====<<<<<;;;;;:::::99988888777776666666555444444433333322222211111000000////////.....---------,,,,,,,,,,+++++++++++**********))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))**********+++++++++++,,,,,,,,,,---------.....///////000000111112222222333333444444555566666677777888889999:::::;;;;;<<<<<====>>>>>?????@@@@@AABBBBBCCCCCDDDEEEEEFFFFFGGGGGHHIIIIIJJJJKKKKKLLMMMMMNNNNOOOOOPPPQQQRRRRRSSSTTTTUUUUUVVVWWWWXXXXYYYYZZZZZ[[\\\\]]]]]^^^^__````aaaaabbccccddddeeeeeffffeeeddddcccccbbbaaa````____^^^^]]]\\\\\[[[ZZZZYYYYYXXXWWWVVVVVUUUUTTTSSSSRRRRQQQQQPPOOOONNNNNMMMMLLLLKKKJJJJJIIIIHHHHGGGGFFFFFEEEEEDDCCCCCBBBBBAAA@@@@@?????>>>>>===<<<<<;;;;;:::::999988888777776666665555444444333333322222211110000000//////.....---------,,,,,,,,,+++++++++++*********)))))))))))))))))))(((((((((((((((((((((((((((((((((((()))))))))))))))))))********++++++++++++,,,,,,,,---------.....//////000000001111222222333333444444555566666677777888889999:::::;;;;;<<<<<====>>>>>?????@@@@@AABBBBBCCCCCDDDEEEEEFFFFFGGGGHHHIIIIJJJJJKKKKLLLLMMMNNNNNOOOOPPPQQQQQRRRSSSSTTTTUUUUVVVVVWWXXXXYYYYYZZZZ[[\\\\\]]]]^^^^___````aaaabbcccccddddeeeeffeeeeeddddccccbbaaaaa````___^^^^^]]]\\\\[[[ZZZZZYYYXXXXWWWWVVVVUUUTTTTTSSSRRRRRQQQQPPOOOOONNNNMMMMMLLKKKKKJJJJIIIIIHHHGGGGGFFFEEEEEDDDDCCCCBBBBBAAAA@@@?????>>>>>====<<<<<;;;;;:::::99998888877777666666555544444333333222222111110000000///////.....--------,,,,,,,,++++++++++********))))))))))))))))((((((((((((((((((((((((((((((((((((((((((((((((((()))))))))))))))))*******++++++++++,,,,,,,,,-------.....////////0000001111122222233333334444455566666667777788888999:::::;;;;;<<<<<====>>>>>?????@@@@AAAABBBBBCCCDDDDEEEEEFFFFGGGGGHHIIIIIJJJJKKKKKLLLMMMMMNNNOOOOOPPPQQQQRRRRRSSTTTTTUUUUVVVVWWWXXXXYYYYZZZZZ[[\\\\]]]]^^^^^__````aaaaabbbcccddddeeeeefeeeedddddccccbbaaaa`````___^^^]]]]\\\\\[[[ZZZYYYYYXXXXWWWVVVVVUUUTTTTSSSSRRRRQQQPPPPOOOONNNNNMMMMLLKKKKKJJJJJIIIIHHGGGGGFFFFFEEEEDDDDCCCCCBBBBAAA@@@@@????>>>>>====<<<<<;;;;;:::::999988888777776666665555444443333332222221111000000////////.....-------,,,,,,,,,+++++++++*******))))))))))))))(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((()))))))))))))********+++++++++,,,,,,,,--------.....///////0000000111222222233333344444555566666677777888889999:::::;;;;;<<<<<===>>>>>????@@@@@AAAABBBBCCCCCDDDEEEEFFFFFGGGGGHHHIIIJJJJJKKKKKLLLMMMMNNNNNOOOPPPPQQQQRRRRSSSTTTTUUUUVVVVVWWXXXXYYYYYZZZZ[[\\\\\]]]]^^^^__`````aaaabbbcccdddddeeeefeeeeddddccccbbbaaaa````__^^^^^]]]]\\\\[[ZZZZZYYYYXXXXWWWWVVVUUUUTTTTTSSSRRRQQQQQPPPOOOOONNNNMMMMMLLKKKKJJJJJIIIIHHHGGGGFFFFFEEEEEDDDCCCCCBBBBBAA@@@@@?????>>>>====<<<<<;;;;;:::::999888887777766666665554444433333332222221111000000//////.....--------,,,,,,,,+++++++++******)))))))))))))(((((((((((((((((((''''''''''''''''''''''''''''''''''''((((((((((((((((((())))))))))))******+++++++++,,,,,,,,,-------.....///////000000111122222233333344444555566666677777888889999:::::;;;;;<<<<<====>>>?????@@@@@AAABBBBBCCCCCDDEEEEEFFFFFGGGGHHHHIIIIJJJJJKKKLLLMMMMMNNNNOOOOOPPQQQQQRRRRSSTTTTTUUUUVVVVWWWWXXXYYYYZZZZZ[[[\\\]]]]^^^^^___```aaaabbbbccccdddeeeefeeedddddccccbbaaaa`````__^^^^]]]]\\\\\[[ZZZZYYYYYXXXXWWVVVVVUUUUTTTTSSSSRRRQQQQPPPPOOOONNNMMMMMLLLKKKKKJJJJIIIIIHHGGGGGFFFFEEEEEDDCCCCCBBBBBAAA@@@@@?????>>>>>==<<<<<;;;;;:::::9999888887777766666655544444433333322222111110000000//////.....------,,,,,,,,,+++++++++******)))))))))))((((((((((((((('''''''''''''''''''''''''''''''''''''''''''''''''''((((((((((((((())))))))))))******+++++++++,,,,,,,,-------.....//////000000111112222233333344444445566666677777888889999:::::;;;;;<<<<<===>>>>>?????@@@@@AABBBBBCCCCCDDDEEEEEFFFGGGGGHHHIIIIIJJJJKKKKKLLMMMMMNNNNOOOOPPPQQQQRRRRSSSSTTTUUUUVVVVVWWWXXXYYYYYZZZZ[[[\\\\\]]]^^^^___`````aaabbbccccdddddeeeeeeddddcccccbbaaaa````__^^^^^]]]]\\\\[[ZZZZZYYYYXXXXWWWVVVVUUUUTTTTTSSRRRRQQQQQPPPOOONNNNNMMMMLLLLKKKKJJJJJIIIHHHHGGGGFFFFFEEEEDDDCCCCBBBBBAAAA@@@@?????>>>>>==<<<<<;;;;;:::::99998888877777666665555444444333332222221111000000//////.....--------,,,,,,,++++++++******)))))))))))(((((((((((((''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''(((((((((((()))))))))))*******+++++++,,,,,,,,-------.....//////00000001112222222333334444445555666667777788888999:::::;;;;;<<<<<===>>>>>?????@@@@AAABBBBBCCCCDDDDEEEEFFFFFGGGHHHHIIIIJJJJJKKKKLLLMMMMNNNNNOOOOPPQQQQQRRRRSSSTTTTTUUUVVVVWWWWXXXXYYYZZZZZ[[[\\\\]]]^^^^^___````aaabbbcccccddddeeeeeeddddcccbbbaaaaa````__^^^^]]]]]\\\\[[ZZZZYYYYYXXXXWWVVVVVUUUUTTTTSSRRRRRQQQQPPPPOOONNNNMMMMMLLLKKKKKJJJIIIIIHHHGGGGFFFFFEEEEEDDCCCCCBBBBAAAA@@@@@???>>>>>====<<<<;;;;;:::::99998888877777666665554444444333332222221111000000//////....-------,,,,,,,,+++++++*******))))))))))((((((((((((''''''''''''''''''&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&'''''''''''''''''((((((((((((())))))))))******++++++++,,,,,,,--------...///////00000011112222223333344444455556666677777888889999:::::;;;;;<<<====>>>>>????@@@@@AAAABBBCCCCCDDDEEEEEFFFFFGGGGHHIIIIIJJJJKKKKKLLMMMMMNNNNOOOOPPPPQQQRRRRRSSSTTTTUUUVVVVVWWWXXXXYYYYYZZZ[[[\\\\]]]]]^^^___````aaaaabbccccddddeeeeedddcccccbbbaaaa```____^^^^]]]]\\\[[[[ZZZZYYYYXXXWWWWVVVVUUUUTTTTTSSRRRRQQQQQPPOOOONNNNNMMMMLLLLKKKJJJJIIIIIHHHGGGGGFFFEEEEEDDDCCCCCBBBBBAA@@@@@?????>>>>====<<<<<;;;;;::::99988888777776666655554444443333322222221110000000//////....------,,,,,,,++++++++******)))))))))((((((((((('''''''''''''''&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&'''''''''''''''(((((((((((())))))))*******+++++++,,,,,,,,------....//////00000011112222223333344444455556666677777888889999::::;;;;;<<<<<===>>>>?????@@@@@AAABBBBBCCCCCDDEEEEEFFFFGGGGGHHIIIIIJJJJKKKKLLLLMMMNNNNNOOOOPPPQQQQQRRRSSSTTTTTUUUUVVVWWWWXXXXYYYYZZZ[[[[\\\\]]]]^^^____````aaaabbcccccddddeeeedddccccbbbaaaaa```___^^^^]]]]]\\\[[[ZZZZYYYYYXXXWWWVVVVVUUUUTTTSSSRRRRRQQQQPPOOOOONNNNMMMMMLLKKKKJJJJJIIIIHHHHGGGFFFFFEEEEDDDDCCCCBBBBBAA@@@@@?????>>>>>===<<<<<;;;;;:::::99888887777766666555544444433333222221111100000//////.....-------,,,,,,+++++++++*****))))))))((((((((((''''''''''''''&&&&&&&&&&&&&%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&&&&&&&&&&&&''''''''''''''(((((((((()))))))))*****+++++++++,,,,,,------.....//////000001111122222333334444444555666667777788888999:::::;;;;;<<<<<==>>>>>?????@@@@@AAABBBBBCCCCDDDEEEEFFFFFGGGGHHHHIIIJJJJJKKKKLLLMMMMMNNNOOOOOPPPQQQQRRRRRSSTTTTUUUUVVVVVWWXXXXYYYYYZZZZ[[\\\\]]]]]^^^^__````aaaaabbccccddddeedddddccccbbbaaa`````___^^^^]]]\\\\[[[[ZZZZYYYXXXXXWWWVVVVUUUTTTTTSSSRRRRQQQQQPPOOOONNNNNMMMMLLKKKKKJJJJIIIIIHHGGGGGFFFFEEEEEDDDCCCCCBBBAAAA@@@@?????>>>>>==<<<<<;;;;;:::::999888887777766666655544444433333222221111000000//////....------,,,,,,,,+++++++*****)))))))))(((((((((''''''''''''&&&&&&&&&&%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&&&&&&&&&&'''''''''''''((((((((())))))))*****++++++++,,,,,,,-------...///////00000011112222233333444444556666666777778888899:::::;;;;;<<<<<===>>>>>?????@@@AAAABBBBCCCCCDDEEEEEFFFFGGGGGHHHIIIIIJJJKKKKKLLLMMMMNNNNNOOOPPPQQQQQRRRRSSTTTTTUUUUVVVVWWXXXXXYYYYZZZZ[[[\\\\]]]]^^^^__`````aaaabbccccdddddeddddccccbbbbaaa````___^^^^^]]]\\\\[[[ZZZYYYYYXXXXWWWVVVVVUUUTTTTSSSRRRRRQQQPPPOOOOONNNNMMMMMLLKKKKJJJJJIIIIHHHGGGGFFFFFEEEEDDCCCCCBBBBBAAA@@@@@????>>>>>===<<<<;;;;;:::::999988887777766666655444444433333222221110000000//////....------,,,,,,++++++++*****))))))))((((((((('''''''''''&&&&&&&&&%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&&&&&&&&&'''''''''''((((((((()))))))))*****+++++++,,,,,,,------....//////00000011112222233333444444555666666777778888999:::::;;;;;<<<<====>>>>>????@@@@@AABBBBBCCCCCDDDEEEFFFFFGGGGHHHHIIIIJJJJJKKKLLLMMMMMNNNNOOOOOPPQQQQRRRRRSSTTTTUUUUVVVVVWWXXXXYYYYYZZZZ[[\\\\]]]]^^^^^__````aaaabbbbcccddddeddddccccbbaaaa`````___^^^]]]]\\\\\[[[ZZZYYYYXXXXXWWWVVVUUUUTTTTTSSSRRRQQQQQPPPOOOONNNNNMMMLLLKKKKKJJJJIIIIIHHGGGGFFFFFEEEEDDDCCCCBBBBBAAA@@@@@?????>>>====<<<<<;;;;:::::99998888877777666665544444433333222221111000000/////.....-------,,,,,,++++++*****)))))))))(((((((((''''''''''&&&&&&&%%%%%%%%%%%%%%%%%%$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%%%%%%%%%%%%%%%%%&&&&&&&&''''''''''((((((((())))))))*****+++++++,,,,,,------...../////000000111122222333334444445556666677777888889999:::::;;;<<<<<====>>>>?????@@@@@AABBBBBCCCCDDDDEEEEFFFFFGGGHHHIIIIIJJJJKKKKKLLMMMMNNNNNOOOOPPQQQQQRRRRSSTTTTTUUUUVVVVWWXXXXXYYYYZZZZ[[\\\\\]]]]^^^^__`````aaaabbbcccddddedddcccccbbaaaa````__^^^^^]]]]\\\\[[ZZZZZYYYYXXXXWWVVVVVUUUUTTTTSSRRRRRQQQQPPPOOOOONNNMMMMMLLLKKKKJJJJJIIIHHHGGGGGFFFFEEEEEDDCCCCCBBBBAAAA@@@?????>>>>>===<<<<<;;;;;::::9998888877777666665554444443333322222111100000//////....------,,,,,,++++++++*****)))))))((((((((''''''''''&&&&&&&%%%%%%%%%%%%%%%$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%%%%%%%%%%%%%%%&&&&&&&&''''''''''((((((())))))))*****+++++++,,,,,,-------...///////0000011122222333334444444556666677777888889999::::;;;;;<<<<<==>>>>>?????@@@@AAAABBBCCCCCDDDEEEEEFFFFGGGGGHHIIIIJJJJJKKKKLLMMMMMNNNNOOOOOPPQQQQRRRRRSSSTTTUUUUVVVVVWWWXXXYYYYZZZZZ[[[\\\]]]]^^^^^___```aaaabbbcccccddddddccccbbaaaaa````__^^^^]]]]]\\\\[[ZZZZYYYYXXXXXWWVVVVUUUUTTTTTSSRRRRQQQQQPPPOOONNNNNMMMMLLLKKKKKJJJIIIIHHHHGGGGFFFFFEEEDDDDCCCCBBBBBAA@@@@@????>>>>>===<<<<<;;;;;:::::998888877777666665555444443333322222111100000//////....------,,,,,,++++++*****))))))))(((((((''''''''''&&&&&&&%%%%%%%%%%%%$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%%%%%%%%%%%%%&&&&&&''''''''''(((((((()))))))*****++++++,,,,,,,------....//////000001111222223333344444555666667777788888999:::::;;;;;<<<<<==>>>>>????@@@@@AAABBBBBCCCDDDDEEEEFFFFFGGGGHHHIIIIJJJJKKKKKLLMMMMNNNNNOOOOPPQQQQQRRRRSSSTTTTTUUUVVVVWWWXXXXXYYYZZZZ[[[\\\]]]]]^^^^___```aaaaabbbccccddddddccccbbaaaa````___^^^^]]]]\\\\[[[ZZZZYYYYXXXXWWVVVVVUUUUTTTTSSSRRRRQQQQPPOOOOONNNNMMMMLLLLKKKJJJJJIIIIHHHGGGGGFFFEEEEEDDDCCCCBBBBBAA@@@@@?????>>>>====<<<;;;;;:::::999888887777766666555544444333332222211100000///////...-------,,,,,,++++++****)))))))(((((((('''''''''&&&&&&%%%%%%%%%%%%$$$$$$$$$$$$$$$$$$##################################$$$$$$$$$$$$$$$$$%%%%%%%%%%%%%&&&&&&'''''''''((((((())))))))***+++++++,,,,,,------....//////000001111222223333344444555566666777778888899:::::;;;;;<<<<====>>>?????@@@@@AAABBBBBCCCCDDEEEEEFFFFGGGGGHHIIIIJJJJJKKKKLLLLMMMNNNNOOOOOPPPQQQRRRRSSSSTTTTUUUVVVVVWWWXXXXYYYZZZZ[[[[\\\\]]]^^^^____````aaabbbccccdddddcccccbbaaaa````__^^^^]]]]]\\\\[[ZZZZYYYYYXXXXWWVVVVUUUUUTTTTSSRRRRQQQQQPPOOOONNNNNMMMMLLKKKKKJJJJIIIIHHHHGGGFFFFFEEEEDDDCCCCCBBBAAAA@@@@?????>>>>===<<<<<;;;;:::::999988887777766666555444443333322222111100000//////....-----,,,,,,+++++++*****))))))((((((('''''''''&&&&&&%%%%%%%%%%$$$$$$$$$$$$$$$#################################################$$$$$$$$$$$$$$$%%%%%%%%%%&&&&&&'''''''''(((((((())))))*****++++++,,,,,,-----....//////000001111222223333344444555566666777778888999:::::;;;;<<<<<====>>>>?????@@@AAAABBBBCCCCCDDEEEEFFFFFGGGGHHHHIIIJJJJKKKKKLLLMMMNNNNNOOOOPPPQQQQQRRRSSSTTTTUUUUUVVVWWWXXXXYYYYYZZZ[[[\\\\]]]]]^^^___````aaabbbcccccddddcccbbbaaaa`````__^^^^]]]]\\\\\[[ZZZZYYYYXXXWWWWVVVVUUUUTTTSSSSRRRRQQQQPPOOOOONNNNMMMMLLLKKKKJJJJIIIIIHHGGGGGFFFFEEEEDDDDCCCBBBBBAAA@@@@@????>>>>>==<<<<<;;;;;::::999988888777666665555444443333322222111100000/////....------,,,,,,++++++****))))))))(((((((''''''''&&&&&&%%%%%%%%%%$$$$$$$$$$$$###########################################################$$$$$$$$$$$$$%%%%%%%%%%&&&&&&'''''''(((((((()))))))****++++++,,,,,,,------..../////000001112222233333444445555666667777888889999:::;;;;;<<<<<===>>>>>????@@@@@AABBBBBCCCCDDDDEEEFFFFGGGGGHHHIIIIIJJJKKKKLLLLMMMMNNNOOOOOPPPQQQQRRRSSSSTTTTUUUUVVVWWWWXXXXYYYYZZZ[[[\\\\\]]]]^^^___`````aaaabbccccddddcccbbbaaaa```___^^^^^]]]]\\\[[[ZZZZZYYYYXXXWWWVVVVUUUUUTTTSSSRRRRQQQQQPPOOOONNNNNMMMMLLKKKKKJJJJIIIIHHHGGGGFFFFEEEEEDDCCCCCBBBBAAA@@@@@?????>>>====<<<<;;;;;:::::99888887777766665555444443333322222111100000/////...-------,,,,,,++++++****))))))(((((((('''''''&&&&&%%%%%%%%%%$$$$$$$$$$$##################""""""""""""""""""""""""""""""""""#################$$$$$$$$$$$%%%%%%%%%%&&&&&''''''''((((((()))))))***+++++++,,,,,,------..../////00000111122222333334444455566667777788888999:::::;;;;;<<<====>>>>?????@@@@@AABBBBCCCCCDDDEEEEEFFFGGGGHHHHIIIIJJJKKKKKLLLMMMMNNNNNOOOPPPQQQQQRRRRSSTTTTUUUUUVVVVWWXXXXYYYYZZZZZ[[\\\\]]]]^^^^^__````aaaabbccccddccccbbbbaaaa```___^^^^]]]]]\\\[[[ZZZZYYYXXXXXWWWVVVVUUUTTTTTSSSRRRRQQQPPPPOOOONNNNMMMLLLLKKKKJJJJIIIIIHHGGGGFFFFFEEEEDDDCCCCBBBBBAAA@@@?????>>>>====<<<<;;;;;:::::9988888777776666655544444333332222211100000/////....------,,,,,+++++++*****))))))((((((''''''''&&&&&%%%%%%%%%%$$$$$$$$$$#############"""""""""""""""""""""""""""""""""""""""""""""""""##############$$$$$$$$$$%%%%%%%%%%&&&&&'''''''((((((())))))*****++++++,,,,,------..../////00000111122222333334444455666667777788888999:::::;;;;;<<<<===>>>>?????@@@@AABBBBBCCCCDDDDEEEEFFFFFGGGHHHIIIIIJJJJKKKLLLLMMMMNNNNOOOPPPPQQQQRRRRSSTTTTTUUUUVVVVWWXXXXXYYYYZZZZ[[\\\\]]]]]^^^^__````aaaabbbccccdccccbbbaaa`````___^^^^]]]\\\\[[[ZZZZZYYYXXXXWWWVVVVVUUUTTTTSSSRRRRRQQQPPPOOOONNNNNMMMLLLKKKKKJJJJIIIHHHHGGGGFFFFEEEEEDDCCCCBBBBBAA@@@@@????>>>>>===<<<<<;;;:::::99998888777776666655444443333322222111100000/////....------,,,,,++++++****))))))((((((((''''''&&&&&&%%%%%%%%$$$$$$$$$$############"""""""""""""!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!""""""""""""#############$$$$$$$$$$%%%%%%%&&&&&&'''''''((((((())))))****++++++,,,,,-------.../////00000111122222333334444455566666777778889999:::::;;;;<<<<<==>>>>>????@@@@@AAABBBBBCCCDDDEEEEEFFFFGGGHHHHIIIIJJJJKKKKKLLMMMMNNNNNOOOOPPQQQQRRRRRSSTTTTUUUUVVVVVWWXXXXYYYYZZZZZ[[\\\\]]]]^^^^__`````aaaabbccccdccccbbbaaa````___^^^^^]]]\\\\[[[ZZZYYYYYXXXXWWWVVVUUUUTTTTTSSSRRRQQQQPPPPOOOONNNMMMMMLLLKKKKJJJIIIIIHHHGGGGFFFFFEEEDDDCCCCCBBBBAAA@@@@?????>>>>====<<<;;;;;::::99998888877776666655544443333322222111100000/////....------,,,,,++++++****))))))((((((''''''''&&&&&%%%%%%%$$$$$$$$$$############""""""""""!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!""""""""""###########$$$$$$$$$$%%%%%%%%&&&&&'''''''(((((()))))))***+++++++,,,,,------..../////0000011122222333334444555566666777788888999::::;;;;;<<<<====>>>?????@@@@AAAABBBBCCCCCDDEEEEFFFFFGGGGHHIIIIIJJJJKKKKLLMMMMMNNNNOOOOPPPQQQQRRRRSSTTTTTUUUUVVVVWWXXXXYYYYYZZZZ[[\\\\]]]]^^^^^__````aaaabbccccdcccbbaaaaa````___^^^]]]]\\\\\[[[ZZZYYYYXXXXWWWWVVVUUUUTTTTSSRRRRRQQQQPPPOOONNNNNMMMMLLLKKKKKJJJIIIIHHHGGGGGFFFEEEEEDDDCCCCBBBBBAA@@@@@????>>>>>==<<<<;;;;;:::::9998888877777666555544444333332222111100000/////...-----,,,,,,,+++++*****))))))((((((''''''&&&&&%%%%%%%%$$$$$$$$$##########""""""""!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"""""""""##########$$$$$$$$$%%%%%%%&&&&&''''''((((((())))))*****+++++,,,,,,-----..../////000001111222333334444455556666777778888899:::::;;;;;<<<<===>>>>>???@@@@@AAABBBBBCCCCDDEEEEEFFFFGGGGGHHIIIIJJJJKKKKKLLMMMMNNNNNOOOOPPQQQQRRRRRSSSTTTUUUUVVVVWWWWXXXYYYYZZZZ[[\\\\\]]]]^^^^__````aaaaabbbccccccbbaaaa````____^^^]]]]\\\\[[ZZZZZYYYYXXXXWWVVVVUUUUUTTTTSSRRRRQQQQQPPPOOONNNNMMMMMLLLKKKJJJJIIIIIHHHGGGFFFFFEEEEDDDCCCCCBBBAAAA@@@@????>>>>>==<<<<<;;;;:::::998888877777666665554444433333222221100000/////....-----,,,,,,+++++****))))))((((((('''''''&&&&%%%%%%%$$$$$$$$$##########""""""""!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!"""""""##########$$$$$$$$$%%%%%%%%&&&''''''''(((((())))))****+++++,,,,,,-----..../////0000011122222333334444455666667777788888999:::::;;;<<<<<===>>>>>????@@@AAAABBBBCCCCCDDEEEEFFFFFGGGGHHIIIIIJJJJKKKKLLMMMMMNNNNOOOOPPQQQQQRRRRSSSTTTUUUUUVVVVWWWXXXYYYYZZZZZ[[[\\\]]]]^^^^____```aaaabbbccccccbbaaaa````__^^^^]]]]]\\\\[[ZZZZYYYYXXXXXWWVVVVUUUUTTTTSSSRRRRQQQQPPOOOOONNNNMMMMLLKKKKKJJJJIIIIHHGGGGGFFFFEEEEEDDDCCCBBBBBAAA@@@@?????>>>====<<<<;;;;;::::999888877777666665554444433333222221100000/////....-----,,,,,,+++++****))))))(((((('''''''&&&&&%%%%%%$$$$$$$$$########""""""""!!!!!!!!!!!!!! !!!!!!!!!!!!!!"""""""#########$$$$$$$$$%%%%%%&&&&&''''''(((((()))))))***+++++,,,,,,,-----.../////0000011122222333334444455666667777788889999::::;;;;;<<<====>>>>?????@@@@AABBBBBCCCCDDEEEEEFFFFGGGGGHHHIIIJJJJKKKKKLLLMMMNNNNOOOOOPPPQQQRRRRSSSSTTTTUUUVVVVWWWXXXXXYYYZZZZ[[[\\\]]]]]^^^^___```aaaabbbcccccbbaaaaa````__^^^^]]]]\\\\[[[ZZZZYYYYXXXXWWVVVVVUUUUTTTTSSRRRRQQQQQPPOOOONNNNMMMMMLLKKKKJJJJIIIIIHHGGGGFFFFFEEEEDDCCCCCBBBBAAA@@@@@???>>>>>===<<<<<;;;;:::::99888887777666665555444333332222211110000/////....-----,,,,,,+++++****))))))((((((''''''&&&&%%%%%%%%$$$$$$$#########""""""!!!!!!!!!!!!! !!!!!!!!!!!!"""""""########$$$$$$$$%%%%%%%&&&&''''''((((((())))))****+++++,,,,,,-----..../////00011112222233333444455556666677788888999:::::;;;;<<<<<==>>>>>????@@@@@AABBBBCCCCCDDDEEEFFFFFGGGGHHHIIIIIJJJKKKKLLLMMMMMNNNOOOOPPPQQQQQRRRSSSTTTTUUUVVVVVWWWXXXXYYYZZZZ[[[[\\\\]]]^^^^___```aaaaabbbccccbbaaaa````___^^^^]]]]\\\\[[ZZZZYYYYYXXXXWWVVVVUUUUTTTTTSSRRRRQQQQPPOOOOONNNNMMMMLLKKKKKJJJJIIIIHHHGGGGFFFFEEEEEDDCCCCBBBBBAAA@@@?????>>>>===<<<<<;;;;;:::9998888877777666655544444333322222111100000/////..-----,,,,,,,+++++***)))))(((((((''''''&&&&&%%%%%%$$$$$$$$########"""""""!!!!!!!!!!  !!!!!!!!!!""""""#########$$$$$$$%%%%%%%&&&&&''''''(((((()))))****+++++,,,,,,-----.../////000001112222233334444455556666777778888899::::;;;;;<<<<<==>>>>?????@@@@AABBBBBCCCCDDDEEEEEFFFGGGGHHHHIIIIJJJKKKKKLLLMMMMNNNOOOOOPPPQQQQRRRSSSTTTTTUUUUVVVWWWXXXXYYYYYZZZ[[[\\\\]]]^^^^____````aaabbbccccbbaaaa````__^^^^]]]]]\\\\[[ZZZZYYYYXXXWWWWVVVVUUUUTTTSSSRRRRRQQQQPPOOOONNNNNMMMMLLKKKKJJJJJIIIIHHGGGGFFFFFEEEEDDCCCCCBBBBAA@@@@@????>>>>>===<<<;;;;;::::9999888877777666665544444333332222111100000/////..-----,,,,,,+++++****)))))(((((('''''''&&&%%%%%%%%$$$$$$#########"""""!!!!!!!!!!  !!!!!!!!!!"""""########$$$$$$$%%%%%%%&&&&''''''(((((()))))****+++++,,,,,,-----.../////000001111222333334444455566666777778888999::::;;;;;<<<<==>>>>>????@@@@@AAABBBCCCCCDDDEEEEFFFFFGGGHHHIIIIJJJJJKKKLLLMMMMNNNNNOOOPPPQQQQRRRRRSSTTTTUUUUVVVWWWWXXXXYYYYZZZ[[[\\\\]]]]]^^^___````aaabbbccbbbaaaaa````__^^^^]]]]\\\[[[[ZZZZYYYYXXXWWWVVVVUUUUUTTTSSSRRRRQQQPPPPOOOONNNNMMMLLLLKKKKJJJJIIIHHHHGGGGFFFFEEEEEDDCCCCBBBBBAA@@@@?????>>>>==<<<<<;;;;:::::99988888777666665554444433333222221100000/////...------,,,,,+++++****)))))((((((''''''&&&&%%%%%%$$$$$$$$#######"""""!!!!!!!!!!  !!!!!!!!!!"""""########$$$$$$$%%%%%%&&&&''''''((((((()))))***+++++,,,,,-------../////00000111222223333344444556666677778888899:::::;;;;<<<<<===>>>?????@@@@AAABBBBBCCCDDDEEEEEFFFFGGGHHHHIIIIJJJJKKKLLLLMMMMNNNNOOOPPPPQQQQRRRRSSTTTTUUUUUVVVVWWXXXXYYYYZZZ[[[[\\\\]]]]^^^___````aaaaabbcbbbaaaa```____^^^^]]]]\\\[[[ZZZZYYYYYXXXWWWVVVVUUUTTTTSSSSRRRRQQQPPPOOOONNNNNMMMLLLKKKKJJJJJIIIHHHGGGGFFFFFEEEDDDCCCCCBBBBAA@@@@@????>>>>===<<<<;;;;;::::99998887777766665555444433333222221100000/////....-----,,,,,+++++****)))))(((((('''''&&&&&%%%%%%$$$$$$########"""""!!!!!!!!!  !!!!!!!!!"""""#######$$$$$$%%%%%%%&&&&&'''''(((((()))))****+++++,,,,,-----.../////000001112222233333444455566667777788889999:::;;;;;<<<<====>>>>???@@@@@AAABBBBCCCCCDDEEEEFFFFFGGGGHHIIIIJJJJJKKKKLLMMMMNNNNNOOOOPPQQQQRRRRSSSTTTTUUUUVVVVWWXXXXYYYYYZZZZ[[\\\\]]]]^^^____````aaaabbcbbbaaaa```___^^^^]]]]]\\\[[[ZZZZYYYXXXXWWWVVVVVUUUTTTTSSSRRRQQQQQPPPOOOONNNMMMMMLLLKKKKJJJIIIIHHHHGGGGFFFEEEEEDDDCCCCBBBAAAA@@@@?????>>>>==<<<<<;;;;:::::9988887777766666555444443332222211110000/////....-----,,,,,+++++***)))))((((('''''''&&&%%%%%%%$$$$$$#######"""""!!!!!!!!!  !!!!!!!!!"""""########$$$$$$%%%%%%&&&&''''''((((()))))****+++++,,,,,-----..../////0001111222223333444445566666777778888999:::::;;;<<<<<===>>>>?????@@@AAAABBBBCCCCDDEEEEEFFFFGGGGHHHIIIIJJJJKKKKLLMMMMMNNNNOOOOPPQQQQQRRRRSSTTTTUUUUVVVVVWWXXXXYYYYZZZZ[[\\\\]]]]]^^^^__````aaaabbcbbbaaaa```___^^^^]]]\\\\[[[ZZZZZYYYXXXXWWWVVVUUUUTTTTTSSSRRRQQQQPPPOOOOONNNMMMMLLLKKKKKJJJIIIIHHHGGGGGFFFEEEEDDDCCCCCBBBAAA@@@@@????>>>====<<<<;;;;;::::99888887777666665544444333332222111100000////...-----,,,,,+++++****)))))(((((''''''&&&&%%%%%%$$$$$$$######"""""!!!!!!!!!  !!!!!!!!!"""""######$$$$$$%%%%%%&&&&''''''((((()))))****+++++,,,,,-----....////00000111222233333444445556666677788888999::::;;;;;<<<====>>>>????@@@@@AABBBBCCCCCDDEEEEFFFFGGGGGHHIIIIJJJJKKKKKLLMMMMNNNNOOOOOPPQQQQRRRRSSTTTTTUUUUVVVVWWXXXXYYYYZZZZZ[[\\\\]]]]^^^^__````aaaabbbbbaaa````____^^^^]]]\\\\[[[ZZZYYYYXXXXXWWWVVVUUUUTTTTSSRRRRRQQQQPPPOOONNNNMMMMMLLLKKKJJJJIIIIIHHHGGGFFFFEEEEEDDDCCCBBBBBAAA@@@@???>>>>>===<<<<<;;;;:::999988887777766665554444333332222211100000/////..-----,,,,,+++++****)))))(((((''''''&&&&%%%%%%$$$$$$#######"""""!!!!!!!  !!!!!!!!"""""######$$$$$$%%%%%%%&&&'''''''((((()))))***+++++,,,,,-----.../////00000112222233333444455556666777778889999::::;;;;<<<<<==>>>>>????@@@@AABBBBBCCCCDDEEEEEFFFFGGGGHHIIIIIJJJJKKKKLLMMMMMNNNNOOOOPPQQQQRRRRRSSSTTTUUUUVVVVWWXXXXXYYYYZZZZ[[\\\\]]]]^^^^___````aaaabbbbaaa````___^^^]]]]]\\\\[[[ZZZYYYYXXXXWWVVVVVUUUUTTTTSSRRRRQQQQPPPPOOONNNNMMMMLLKKKKKJJJJIIIIHHGGGGGFFFFEEEEDDCCCCCBBBBAAA@@@@@???>>>>====<<<<;;;:::::9998888877776666655444443333222221100000/////...-----,,,,,+++++****)))))(((((''''''&&&&%%%%%$$$$$$######"""""!!!!!!!!  !!!!!!!"""""#######$$$$$$%%%%%&&&&''''''((((()))))****+++++,,,,,-----../////0000011122222333444445556666677778888899:::::;;;;<<<<===>>>>????@@@@@AABBBBCCCCCDDDEEEFFFFGGGGGHHHIIIJJJJKKKKKLLLMMMNNNNOOOOPPPPQQQRRRRSSSTTTUUUUVVVVVWWWXXXYYYYZZZZ[[\\\\]]]]]^^^^__````aaaabbbbaaa````___^^^]]]]\\\\[[ZZZZZYYYYXXXXWWVVVVUUUUTTTTTSSRRRRQQQQPPOOOONNNNNMMMMLLKKKKJJJJJIIIIHHGGGGFFFFEEEEEDDCCCCBBBBBAAA@@@????>>>>>===<<<;;;;;::::9999888877777666555444443333322221110000/////....----,,,,,+++++***)))))((((('''''''&&%%%%%%$$$$$$$######""""!!!!!!!  !!!!!!!!""""######$$$$$$%%%%%%&&&''''''((((()))))****+++++,,,,,----.../////0000111122223333344444556666777778888999::::;;;;;<<<<==>>>>>????@@@@AABBBBBCCCCDDDEEEEEFFFGGGGHHHIIIJJJJJKKKKLLLMMMNNNNNOOOOPPPQQQRRRRSSSTTTTTUUUVVVVWWWXXXYYYYZZZZZ[[[\\\]]]]^^^^__````aaaabbaaaa`````___^^^]]]]\\\\[[ZZZZYYYYXXXXXWWVVVVUUUUTTTTSSRRRRRQQQQPPOOOONNNNMMMMLLLKKKKJJJJIIIIHHHGGGGFFFFEEEEDDCCCCCBBBBAA@@@@@????>>>>====<<<;;;;:::::9998887777766665555444433333222111100000////....-----,,,+++++****)))))((((('''''&&&&%%%%%%$$$$$$#######"""!!!!!!!  !!!!!!""""######$$$$$$%%%%%%%&&&'''''((((()))))****+++++,,,,-----....///0000011112222333334444555666677777888899:::::;;;;<<<<====>>>????@@@@@AAABBBCCCCCDDDEEEEFFFGGGGHHHHIIIIJJJKKKKLLLLMMMMNNNOOOOPPPQQQRRRRRSSSTTTTUUUVVVVWWWXXXXXYYYZZZZ[[[\\\]]]]^^^^__`````aaaabaaaa````__^^^^]]]]]\\\\[[ZZZZYYYYXXXXWWVVVVVUUUUTTTTSSRRRRQQQQPPPOOOONNNNMMMMLLKKKKJJJJJIIIIHHGGGGFFFFFEEEEDDCCCCBBBBBAA@@@@????>>>>>==<<<<;;;;;::::9988888777766666555444443332222211100000/////..-----,,,,,++++****)))))((((('''''&&&&%%%%%%$$$$$######"""""!!!!!!  !!!!!!"""""#######$$$$$%%%%%%&&&&'''''((((()))))***++++,,,,,-----.../////0000011222223333444445566666777788888999:::;;;;;<<<<===>>>>>???@@@@AAABBBBBCCCDDDEEEEFFFFFGGGHHHIIIIJJJJJKKKLLLMMMMNNNOOOOPPPPQQQQRRRSSSTTTTUUUVVVVVWWWXXXXYYYZZZZ[[[\\\]]]]]^^^^___```aaaabaaaa````__^^^^]]]]\\\\[[[ZZZZYYYYXXXXWWVVVVUUUUTTTTTSSRRRRQQQQPPOOOONNNNNMMMMLLKKKKJJJJIIIIIHHGGGGFFFFEEEDDDDCCCCBBBBAA@@@@@????>>>>===<<<<;;;;:::::998888777776666555544433333222211110000/////..-----,,,,,+++++***)))))((((('''''&&&%%%%%%%$$$$$######""""!!!!!!  !!!!!!""""######$$$$$%%%%%%&&&&'''''((((()))))**+++++,,,,,-----.../////000011122223333344445555666777778888999:::::;;;<<<<====>>>>???@@@@@AAABBBBCCCDDDDEEEEFFFFGGGHHHIIIIIJJJJKKKLLLMMMMNNNNNOOOPPPQQQQRRRSSSTTTTTUUUUVVVWWWXXXXYYYZZZZ[[[[\\\\]]]^^^^___```aaaabaaaa````__^^^^]]]]\\\\[[ZZZZYYYYYXXXXWWVVVVUUUUTTTSSSRRRRRQQQQPPOOOONNNNMMMLLLKKKKKJJJJIIIHHHGGGGGFFFFEEEDDDCCCCBBBBBAA@@@@?????>>>>==<<<<;;;;;::::99888887777666665544443333322221111000/////....----,,,,,+++++**)))))((((('''''&&&&%%%%%%$$$$$#######"""!!!!!!!  !!!!!!""""######$$$$$%%%%%%&&&&'''''((((()))))***+++++,,,,,---..../////000011112223333344445556666677788888999::::;;;;;<<<===>>>>?????@@@AAABBBBBCCCCDDEEEEFFFFGGGGGHHIIIIJJJJKKKKKLLMMMMNNNNOOOPPPQQQQRRRRRSSTTTTUUUUVVVWWWXXXXYYYYYZZZ[[[\\\\]]]^^^^___```aaaaaaaa````__^^^^^]]]]\\\\[[ZZZZYYYYXXXWWWVVVVVUUUUTTTSSSRRRRQQQPPPOOOOONNNNMMMLLLKKKKJJJJJIIIHHHGGGGFFFEEEEEDDDCCCCBBBAAA@@@@@????>>>====<<<<;;;;:::::99888877777666655444443333222221100000////....-----,,,,+++++***))))(((((''''''&&&%%%%%%$$$$$#####"""""!!!!!!  !!!!!!"""""#####$$$$$%%%%%%%&&''''''((((())))****+++++,,,,-----...////000001112222233344444555666677777888999:::::;;;;<<<====>>>>????@@@@@AABBBBCCCCDDEEEEEFFFFGGGGHHIIIIJJJJJKKKKLLMMMMNNNNOOOOOPPQQQQRRRRSSTTTTUUUUVVVVVWWXXXXYYYYZZZ[[[\\\\]]]^^^^^___````aaaaaa````__^^^^]]]]\\\\\[[ZZZZYYYYXXXWWWVVVVUUUTTTTTSSSRRRRQQQPPPOOOONNNMMMMMLLLKKKKJJJIIIIHHHGGGGGFFFEEEEDDDCCCCCBBBAAA@@@@?????>>>===<<<<;;;;;:::999888887777666665544443333322221110000/////...-----,,,,,+++****)))))((((('''''&&&%%%%%$$$$$$#####""""!!!!!!  !!!!!!""""#####$$$$$$%%%%%&&'''''((((()))))****++++,,,,,-----../////000011112222333334445556666677778888899::::;;;;;<<<<==>>>>?????@@@@AABBBBCCCCCDDEEEEFFFFGGGGGHHIIIIJJJJKKKKLLMMMMMNNNNOOOOPPQQQQRRRRSSTTTTTUUUUVVVVWWXXXXYYYYZZZ[[[\\\\\]]]]^^^___````aaaaaa````__^^^^]]]]\\\[[[ZZZZYYYYYXXXWWWVVVVUUUTTTTSSSRRRQQQQQPPPOOOONNNMMMMLLLKKKKKJJJIIIIHHHGGGFFFFFEEEEDDDCCCBBBBAAAA@@@@???>>>>====<<<<;;;:::::999888877777666555444443333222221100000////..-----,,,,,+++++***)))))((((('''''&&%%%%%%%$$$$$#####"""!!!!!!!  !!!!!!""""#####$$$$$%%%%%%&&&'''''((((()))))**+++++,,,,,-----...///000001112222233334444455666677777888899:::::;;;;<<<<===>>>>????@@@@AAABBBBCCCCDDEEEEFFFFFGGGGHHIIIIJJJJKKKKKLLMMMMNNNNOOOOPPQQQQQRRRRSSTTTTUUUUVVVVWWXXXXYYYYYZZZZ[[\\\\]]]]^^^___````aaaaa`````__^^^^]]]]\\\[[[ZZZZYYYXXXXWWWWVVVVUUUTTTTSSSRRRQQQQPPPOOOOONNNMMMMLLLKKKJJJJIIIIIHHHGGGFFFFEEEEDDDDCCCBBBBAAA@@@?????>>>>===<<<;;;;;::::999888887776666555544443333322211100000////...----,,,,,+++++***)))))((((('''''&&%%%%%%$$$$$#####""""!!!!!!  !!!!!!""""#####$$$$$%%%%%%&&&'''''((((()))))**+++++,,,,,----....////00000112222333334444555666677778888899::::;;;;;<<<<==>>>>?????@@@@AABBBBCCCCDDDDEEEFFFFGGGGHHIIIIIJJJJKKKKLLMMMMNNNNOOOOOPPQQQQRRRRSSTTTTUUUUVVVVWWWXXXXYYYYZZZZ[[\\\\]]]]^^^___`````aaaa```___^^^^]]]]]\\\[[[ZZZZYYYXXXXWWWVVVUUUUTTTTTSSSRRRQQQQPPPOOONNNNMMMMMLLLKKKJJJJIIIIHHGGGGGFFFFEEEEDDCCCCBBBBBAAA@@@????>>>>>===<<<;;;;:::::99988877777666655544444333222211110000/////..-----,,,,+++++****)))((((('''''&&&&%%%%%$$$$$#####""""!!!!!  !!!!!"""#####$$$$$%%%%%&&&&'''''((((())))****+++++,,,-----.../////0000111222233334444455666677777888899:::::;;;;<<<<==>>>>>????@@@@AABBBBBCCCCDDDEEEFFFFGGGGGHHHIIIJJJJKKKKLLMMMMMNNNNOOOOPPQQQQRRRRSSTTTTTUUUUVVVVWWXXXXYYYYZZZZ[[\\\\]]]]]^^^^__````aaaa```___^^^^]]]\\\\[[[ZZZZZYYYXXXXWWWVVVUUUUTTTTSSRRRRRQQQQPPPOOONNNNMMMMLLKKKKKJJJJIIIIHHGGGGFFFFEEEEEDDCCCCBBBBAA@@@@@????>>>>==<<<<<;;;;::::998888877776666555544433332222211100000///....----,,,,,++++***)))))(((('''''&&&&%%%%%$$$$$#####""""!!!!!  !!!!!""""#####$$$$$%%%%%&&&'''''(((()))))****++++,,,,,---....////000001122222333344445555666777788888999:::;;;;<<<<<===>>>????@@@@@AAABBBCCCCDDDEEEEEFFFGGGGHHHIIIJJJJKKKKKLLLMMMNNNNOOOOPPQQQQRRRRRSSSTTTUUUUVVVVWWXXXXYYYYZZZZZ[[\\\\]]]]^^^^__````aaaa```___^^^^]]]\\\\[[[ZZZYYYYXXXXXWWWVVVUUUUTTTTSSRRRRQQQQPPOOOOONNNNMMMMLLKKKKJJJJIIIIIHHGGGGFFFFEEEEDDCCCCCBBBBAA@@@@????>>>>>==<<<<;;;;:::::9988887777766665544444333322221111000/////...----,,,,,+++++**)))))(((((''''&&&&%%%%%$$$$$#####"""!!!!!  !!!!!""""#####$$$$$%%%%%&&&&'''((((()))))***+++++,,,,,----../////00001111222333344444555666777778888999:::::;;;<<<<===>>>>>???@@@@AAABBBCCCCCDDDEEEEFFFGGGGHHHIIIIIJJJKKKKLLLMMMNNNNOOOOOPPPQQQRRRRSSSTTTUUUUVVVVWWXXXXXYYYYZZZZ[[\\\\]]]]^^^^__````aa`````___^^^^]]]\\\\[[[ZZZYYYYXXXXWWVVVVUUUUUTTTTSSRRRRQQQQPPOOOONNNNMMMMMLLKKKKJJJJIIIIHHGGGGFFFFFEEEEDDCCCCBBBBAAA@@@@????>>>>==<<<<<;;;;::::9988888777766665554444333322222110000/////...-----,,,+++++***)))))((((('''''&&%%%%%$$$$$#####""""!!!!!  !!!!!""""#####$$$$$%%%%%&&&'''''((((()))))**+++++,,,,-----../////00001112222233344445555666677788888999::::;;;<<<<<===>>>>???@@@@AAAABBBBCCCDDDEEEEFFFFFGGGHHHIIIIJJJKKKKLLLMMMMMNNNOOOOPPPQQQRRRRSSSTTTUUUUUVVVVWWWXXXYYYYZZZZ[[\\\\]]]]^^^^__`````a````___^^^]]]]]\\\\[[[ZZZYYYYXXXXWWVVVVUUUUTTTTSSSRRRRQQQQPPOOOONNNNMMMMLLKKKKKJJJJIIIIHHGGGGFFFFEEEDDDDCCCCBBBBAA@@@@?????>>>>==<<<<;;;;;::::9988887777766665544443333322221110000////....---,,,,,++++****))))((((('''''&&%%%%%$$$$$#####""""!!!!!  !!!!!"""#####$$$$$%%%%%&&&'''''((((())))***++++,,,,,----....///00001111222233333444555666677777888999::::;;;;;<<<===>>>>?????@@@AAABBBBCCCDDDDEEEEFFFFGGGHHHIIIIJJJKKKKKLLLMMMMNNNOOOOPPPQQQRRRRSSSSTTTTUUUVVVVWWWXXXYYYYZZZZ[[\\\\]]]]]^^^^__````a````___^^^]]]]\\\\[[ZZZZZYYYYXXXXWWVVVVUUUUTTTTSSRRRRQQQQPPPOOOONNNNMMMMLLKKKKJJJJIIIIIHHGGGGFFFFEEEDDDCCCCBBBBBAA@@@@????>>>====<<<<;;;;:::99998888777766655554444333322222110000/////..-----,,,,+++++***)))))((('''''&&&&%%%%$$$$$#####""""!!!!!  !!!!!""""#####$$$$$%%%&&&&'''''(((()))))**+++++,,,,-----.../////0001112222233334445555666677778889999::::;;;;<<<====>>>>????@@@AAABBBBBCCCCDDEEEEFFFFGGGHHHIIIIIJJJJKKKLLLMMMMNNNOOOOPPPPQQQQRRRSSSTTTTUUUVVVVWWWXXXYYYYZZZZZ[[[\\\]]]]^^^^__````a````___^^^]]]]\\\\[[ZZZZYYYYXXXXWWWVVVVUUUUTTTTSSRRRRQQQQPPOOOONNNNNMMMMLLKKKKJJJJIIIHHHGGGGFFFFFEEEDDDCCCCBBBAAA@@@@@????>>>===<<<<;;;;;:::99988887777766655544443333322211100000////...----,,,,+++++**)))))(((((''''&&&&%%%%%$$$$#####"""!!!!!  !!!!!""""#####$$$$%%%%%&&&''''((((()))))***+++++,,,----....////0000011222233333444455666677777888899::::;;;;;<<<<==>>>>????@@@@@AABBBBCCCCDDEEEEFFFFFGGGGHHIIIIJJJJKKKLLLMMMMNNNNNOOOPPPQQQQRRRSSSTTTTUUUVVVVWWWWXXXXYYYZZZZ[[[\\\]]]]^^^^__````a````___^^^]]]]\\\\[[ZZZZYYYYXXXXWWVVVVUUUUTTTTTSSRRRRQQQQPPOOOONNNNMMMLLLKKKKKJJJJIIIHHHGGGGFFFEEEEDDDDCCCCBBBAAA@@@@???>>>>>===<<<<;;;:::::9998888777666655554444333222221110000/////..----,,,,,++++***))))((((('''''&&&%%%%%$$$$$###""""!!!!!  !!!!!""""####$$$$$%%%%%&&'''''((((())))****++++,,,,,---.../////000011222223333444455566667777888899:::::;;;;<<<<==>>>>>????@@@@AABBBBCCCCDDDEEEEFFFFGGGGHHIIIIJJJJKKKKKLLMMMMNNNNOOOPPPQQQQRRRSSSTTTTTUUUUVVVWWWXXXXYYYZZZZ[[[\\\]]]]^^^^__````````__^^^^]]]]]\\\\[[ZZZZYYYYXXXXWWVVVVUUUUTTTSSSRRRRQQQQQPPOOOONNNNMMMLLLKKKKJJJIIIIIHHHGGGGFFFEEEEDDDCCCBBBBBAAA@@@@???>>>>===<<<<<;;;::::99988888777666655544444333222211100000///...-----,,,,+++++**)))))(((('''''&&%%%%%$$$$$#####"""!!!!!  !!!!!""#####$$$$$%%%%%&&&'''''((()))))***+++++,,,,-----..////0000011222233334444455666677778888899::::;;;;<<<<<==>>>>????@@@@AABBBBBCCCCDDEEEEFFFFGGGGHHIIIIIJJJJKKKKLLMMMMNNNNOOOPPPQQQQQRRRRSSTTTTUUUUVVVWWWXXXXYYYZZZZ[[[\\\]]]]]^^^^___``````__^^^^]]]]\\\\[[ZZZZYYYYYXXXXWWVVVVUUUUTTTSSSRRRRQQQPPPOOOOONNNNMMMLLLKKKKJJJIIIIHHHGGGFFFFFEEEEDDDCCCBBBBAAA@@@@@???>>>>===<<<;;;;:::::999888777766666555444333322222111000/////...----,,,,,+++****))))(((((''''&&&%%%%$$$$$#####"""!!!!!  !!!!!""#####$$$$$%%%%&&&&''''((((()))****++++,,,,,----../////000011222223333444455666667777888899:::::;;;;<<<<==>>>>????@@@@@AABBBBCCCCDDEEEEFFFFFGGGGHHIIIIJJJJKKKKLLMMMMNNNNOOOOOPPQQQQRRRRSSTTTTUUUUVVVWWWXXXXYYYYYZZZ[[[\\\\]]]^^^^___``````__^^^^]]]]\\\\[[ZZZZYYYYXXXWWWVVVVVUUUUTTTSSSRRRRQQQPPPOOOONNNMMMMLLLLKKKKJJJIIIIHHHGGGFFFFEEEEDDDDCCCBBBBAAA@@@????>>>>>===<<<;;;;::::9988888777766665544444333322221100000////...-----,,,+++++***))))((((('''''&&%%%%%$$$$#####""""!!!  !!!!""""#####$$$%%%%%&&&'''''((((())))**+++++,,,,-----..////00000111222333344444555666777788888999:::;;;;<<<<==>>>>>????@@@@AABBBBCCCCDDDDEEEFFFFGGGGHHIIIIJJJJKKKKLLLMMMMNNNNOOOOPPQQQQRRRRSSTTTTUUUUVVVVVWWXXXXYYYYZZZ[[[\\\\]]]^^^^___``````__^^^^]]]]\\\\[[ZZZZYYYYXXXWWWVVVVUUUTTTTTSSSRRRRQQQPPPOOOONNNMMMMLLLKKKJJJJJIIIIHHHGGGFFFFEEEEDDCCCCBBBBBAAA@@@????>>>>==<<<<;;;;;::::998888777776666554444333322222110000/////...---,,,,,++++***)))))((('''''&&&%%%%%$$$$$####"""!!!!!  !!!!!""""####$$$$$%%%%%&&'''''(((()))))**++++,,,,,----../////0000111222223334444555666777778888999:::;;;;;<<<<===>>>????@@@@AABBBBBCCCCDDDEEEFFFFGGGGHHIIIIJJJJJKKKKLLMMMMNNNNOOOOPPQQQQRRRRSSTTTTTUUUUVVVVWWXXXXYYYYZZZ[[[\\\\]]]^^^^___`````__^^^^^]]]]\\\\[[ZZZZYYYYXXXWWWVVVVUUUTTTTSSSRRRQQQQQPPPOOOONNNMMMMLLLKKKJJJJIIIIHHGGGGGFFFFEEEEDDCCCCBBBBAA@@@@?????>>>>==<<<<;;;;:::::998888777766665554444333322221110000////..-----,,,,+++++***)))(((((''''&&&&%%%%$$$$$#####""!!!!!  !!!!!"""#####$$$$$%%%%&&&''''((((())))**+++++,,,,-----...///0000111122223334444555566667778888999:::::;;;<<<<===>>>?????@@@@AAABBBCCCCDDDEEEFFFFGGGGGHHHIIIJJJJKKKKLLMMMMNNNNOOOOPPQQQQQRRRRSSTTTTUUUUVVVVWWXXXXYYYYZZZ[[[\\\\]]]^^^^^___````__^^^^]]]]\\\[[[ZZZZZYYYYXXXWWWVVVVUUUTTTTSSSRRRQQQQPPPOOONNNNNMMMMLLLKKKJJJJIIIIHHGGGGFFFFEEEEEDDCCCCBBBBAA@@@@????>>>>===<<<<;;;;::::998888777776666554444333332222110000/////..----,,,,,++++**)))))(((('''''&&&%%%%%$$$#####"""!!!!!  !!!!!""#####$$$$%%%%%&&'''''(((()))))***+++,,,,,----.../////000111222233333444555666677777888999::::;;;<<<<====>>>>???@@@@AAABBBCCCCDDDEEEEEFFFGGGGHHHIIIJJJJKKKKLLMMMMNNNNNOOOOPPQQQQRRRRSSTTTTUUUUVVVVWWXXXXYYYYZZZZZ[[\\\\]]]]^^^___````__^^^^]]]]\\\[[[ZZZZYYYXXXXWWWWVVVVUUUTTTTSSSRRRQQQQPPPOOONNNNMMMMLLKKKKKJJJJIIIIHHGGGGFFFFEEEEDDCCCCBBBBBAA@@@@????>>>>==<<<<;;;;;::::998888777766666554444333322211110000////..-----,,,,++++***))))(((((''''&&%%%%%$$$$#####""""!!!!  !!!!"""#####$$$$%%%%%&&&'''((((())))****++++,,,-----...////000111122223333444555666667777888999::::;;;;;<<<===>>>>???@@@@AAABBBBBCCCDDDEEEEFFFGGGGHHHIIIJJJJKKKKKLLLMMMNNNNOOOOPPQQQQRRRRSSTTTTUUUUVVVVWWWXXXXYYYYZZZZ[[\\\\]]]]^^^___````__^^^^]]]]\\\[[[ZZZZYYYXXXXWWWVVVUUUUTTTTTSSSRRRQQQQPPPOOONNNNMMMMLLKKKKJJJJIIIIHHHGGGGFFFFEEEEDDCCCCBBBBAA@@@@@????>>>>==<<<<;;;;:::9999888877776665554444433332221110000/////..----,,,,,++++**)))))((((''''&&&%%%%$$$$$####""""!!!!!  !!!!!""""###$$$$$%%%%&&&&''''((()))))***++++,,,,,---.../////000011222233334444455666677778889999::::;;;;<<<===>>>>???@@@@@AAABBBBCCCDDDEEEEFFFGGGGHHHHIIIIJJJKKKKLLLMMMNNNNOOOOPPQQQQRRRRSSTTTTTUUUUVVVVWWXXXXYYYYZZZZ[[\\\\]]]]^^^___````__^^^^]]]]\\\[[[ZZZZYYYXXXXWWWVVVUUUUTTTTSSRRRRQQQQQPPPOOONNNNMMMMLLKKKKJJJJIIIIHHGGGGFFFFFEEEEDDCCCCBBBBAA@@@@????>>>====<<<<;;;;:::9998888777776665554444333222221110000///...-----,,,,+++****))))(((('''''&&%%%%%$$$$#####""!!!!!  !!!!!"""#####$$$%%%%%&&&'''''(((()))****++++,,,,-----..////000011222223333444455666677777888899::::;;;;<<<====>>>>????@@@AAABBBBCCCDDDEEEEFFFFFGGGHHHIIIIJJJKKKKLLLMMMNNNNOOOOPPQQQQQRRRRSSSTTTUUUUVVVVWWXXXXYYYYZZZZ[[\\\\]]]]^^^___``___^^^^]]]]]\\\[[[ZZZZYYYXXXXWWWVVVUUUUTTTTSSRRRRQQQQPPOOOONNNNNMMMMLLKKKKJJJJIIIIHHGGGGFFFFEEEDDDCCCCCBBBBAA@@@@????>>>===<<<<;;;;;:::9998888777666655554444333222211100000///...----,,,,,+++***)))))(((('''&&&&%%%%$$$$$####""!!!!!  !!!!!"""####$$$$$%%%&&&&''''(((()))))**++++,,,,,----..////000001122223333444455566667777888899::::;;;;;<<<<==>>>>????@@@AAABBBBCCCCCDDEEEEFFFFGGGHHHIIIIJJJKKKKLLLMMMNNNNNOOOOPPPQQQRRRRSSSTTTUUUUVVVVWWXXXXYYYYZZZZ[[\\\\]]]]]^^^^__`___^^^^]]]\\\\[[[ZZZYYYYYXXXXWWWVVVUUUUTTTTSSRRRRQQQQPPOOOONNNNMMMMLLKKKKKJJJJIIIIHHGGGGFFFFEEEDDDCCCCBBBAAA@@@@@????>>>===<<<<;;;::::999988887776666555444333332222111000////....----,,,++++****))))((('''''&&&%%%%$$$$$###""""!!!!  !!!""""####$$$$$%%%%&&'''''(((())))***++++,,,,----...////000011222233333444455666677778888999::::;;;;<<<<==>>>>????@@@@@AABBBBCCCCDDEEEEFFFFGGGHHHIIIIJJJKKKKKLLLMMMMNNNOOOOPPPQQQRRRRSSSTTTUUUUVVVVWWXXXXYYYYYZZZZ[[\\\\]]]]^^^^__`___^^^^]]]\\\\[[[ZZZYYYYXXXXWWVVVVUUUUUTTTTSSRRRRQQQQPPOOOONNNNMMMMLLKKKKJJJJIIIHHHHGGGGFFFFEEEDDDCCCCBBBAAA@@@@???>>>>>===<<<<;;;::::999888777776666555444333322221111000////...---,,,,,++++***)))))(((''''&&&&%%%%$$$#####"""!!!!!  !!!!!""#####$$$$%%%%&&&''''(((()))))**++++,,,,,----..////000011112223333444455666677777888899::::;;;;<<<<==>>>>>????@@@@AABBBBCCCCDDEEEEFFFFGGGHHHHIIIIJJJJKKKLLLMMMMNNNOOOOPPPQQQRRRRSSSTTTUUUUUVVVVWWWXXXYYYYZZZZ[[\\\\]]]]^^^^__`___^^^^]]]\\\\[[[ZZZYYYYXXXXWWVVVVUUUUTTTTSSRRRRRQQQQPPOOOONNNNMMMMLLKKKKJJJJIIIHHHGGGGFFFEEEEEDDDCCCCBBBAAA@@@@???>>>>===<<<;;;;;::::99988877776666554444433332222110000/////...---,,,,+++++***)))(((('''''&&&%%%$$$$$####""""!!!!  !!!!"""####$$$$$%%%%&&'''''(((())))**+++++,,,,----../////00001112223333444445556667777888899::::;;;;;<<<<==>>>>????@@@@AABBBBCCCCDDEEEEEFFFFGGGGHHIIIIJJJJKKKLLLMMMMNNNOOOOPPPQQQRRRRRSSSTTTTUUUVVVVWWWXXXYYYYZZZZ[[\\\\]]]]^^^^__`___^^^^]]]\\\\[[[ZZZYYYYXXXXWWVVVVUUUUTTTTSSRRRRQQQQPPOOOOONNNNMMMMLLKKKKJJJJIIIHHHGGGGFFFEEEEDDDCCCBBBBBAAA@@@@???>>>>===<<<;;;;::::999988877776666554444333322222110000////..-----,,,,++++**)))))((((''''&&%%%%%$$$$#####"""!!!  !!!!""#####$$$$%%%%%&&&'''(((()))))***+++,,,,-----...///0000111222223334444555666777788889999:::;;;;<<<<==>>>>????@@@@AABBBBBCCCCDDEEEEFFFFGGGGHHIIIIJJJJKKKLLLMMMMNNNOOOOOPPPQQQQRRRSSSTTTTUUUVVVVWWWXXXYYYYZZZZ[[\\\\]]]]^^^^__`__^^^^^]]]\\\\[[[ZZZYYYYXXXXWWVVVVUUUUTTTTSSRRRRQQQQPPOOOONNNNMMMLLLKKKKKJJJJIIIHHHGGGGFFFEEEEDDDCCCBBBBAAA@@@?????>>>>===<<<;;;;::::998888777776666554444333322221100000////..----,,,,+++++**))))(((('''''&&%%%%$$$$$####""!!!!!  !!!!!"""###$$$$$%%%%&&&'''''((())))***+++++,,,----...///0000011122223334444555666777778888999:::;;;;<<<<==>>>>?????@@@@AABBBBCCCCDDEEEEFFFFGGGGHHIIIIJJJJKKKKKLLMMMMNNNNOOOPPPQQQQRRRSSSTTTTUUUVVVVWWWXXXYYYYZZZZ[[\\\\]]]]^^^^^____^^^]]]]\\\\[[ZZZZZYYYYXXXXWWVVVVUUUUTTTTSSRRRRQQQQPPOOOONNNNMMMLLLKKKKJJJIIIIHHHHGGGGFFFEEEEDDDCCCBBBBAAA@@@????>>>>==<<<<<;;;;::::99888877776666554444433332222110000////...----,,,,++++**)))))((((''''&&%%%%%$$$$#####""!!!!  !!!!"""#####$$$%%%%%&&&''''((()))))***++++,,,----....////00011122223334444455566667778888999:::;;;;<<<<<===>>>????@@@@AABBBBCCCCDDEEEEFFFFGGGGHHHIIIIJJJJKKKKLLMMMMNNNNOOOPPPQQQQRRRSSSTTTTUUUVVVVWWWXXXYYYYZZZZZ[[[\\\]]]]^^^^____^^^]]]]\\\\[[ZZZZYYYYXXXXWWVVVVVUUUUTTTTSSRRRRQQQQPPOOOONNNNMMMLLLKKKKJJJIIIIHHHGGGFFFFEEEEEDDDCCCBBBBAAA@@@????>>>>==<<<<;;;;:::::99888877776666554444333322222110000////..----,,,,,++++**))))(((((''''&&%%%%$$$$$####""!!!!!  !!!!!"""####$$$$$%%%&&&''''((((()))***++++,,,,,---...////00011122222333344455566667778888999:::::;;;<<<<===>>>????@@@@AABBBBCCCCDDEEEEEFFFFGGGGHHIIIIJJJJKKKKLLMMMMNNNNOOOPPPQQQQRRRSSSTTTTUUUVVVVVWWWXXXXYYYZZZZ[[[\\\]]]]^^^^____^^^]]]]\\\\[[ZZZZYYYYXXXXWWVVVVUUUUTTTSSSRRRRRQQQQPPOOOONNNNMMMLLLKKKKJJJIIIIHHHGGGFFFFEEEEDDCCCCBBBBBAAA@@@????>>>>==<<<<;;;;::::998888777776666554444333322211100000////..----,,,,+++****))))(((('''&&&&%%%%$$$$#####""!!!!  !!!"""#####$$$$%%%&&&&''''(((()))****++++,,,,---...////000001122223333444555666677777888999::::;;;<<<<===>>>????@@@@AABBBBBCCCCDDDEEEFFFFGGGGHHIIIIJJJJKKKKLLMMMMNNNNOOOPPPQQQQRRRRRSSTTTTUUUUVVVWWWXXXXYYYZZZZ[[[\\\]]]]^^^^____^^^]]]]\\\\[[ZZZZYYYYXXXXWWVVVVUUUUTTTSSSRRRRQQQPPPOOOONNNNNMMMLLLKKKKJJJIIIIHHHGGGFFFFEEEEDDCCCCBBBBAA@@@@?????>>>>==<<<<;;;;::::99888877776665555444433332221110000///...-----,,,,+++***))))((((('''&&&%%%%$$$$$###"""!!!!!  !!!!!""####$$$$$%%%%&&''''((((())))**++++,,,,-----..////00001122223333444555566667777888999::::;;;<<<<===>>>?????@@@@AAABBBCCCCDDDEEEFFFFGGGGHHIIIIJJJJKKKKLLMMMMNNNNNOOOOPPQQQQRRRRSSTTTTUUUUVVVWWWXXXXYYYZZZZ[[[\\\]]]]^^^^____^^^]]]]\\\\[[ZZZZYYYYXXXXWWVVVVUUUUTTTSSSRRRRQQQPPPOOOONNNMMMMLLLKKKJJJJJIIIIHHHGGGFFFFEEEEDDCCCCBBBBAA@@@@????>>>>==<<<<<;;;;::::99888877776665554444333222221110000///...----,,,+++++***))))((('''''&&&%%%%$$$#####"""!!!!  !!!!""#####$$$$%%%%&&'''''(((())))**+++++,,,,----..////00001122222333344445566667777888999::::;;;<<<<<===>>>>???@@@@AAABBBCCCCDDDEEEFFFFGGGGHHIIIIJJJJJKKKKLLMMMMNNNNOOOOPPQQQQRRRRSSTTTTUUUUVVVWWWXXXXYYYZZZZ[[[\\\]]]]^^^^__^^^^^]]]]\\\\[[ZZZZYYYYXXXXWWVVVVUUUUTTTSSSRRRRQQQPPPOOOONNNMMMMLLLKKKJJJJIIIIHHGGGGGFFFFEEEEDDCCCCBBBBAA@@@@????>>>>==<<<<;;;;:::9999888877776665554444333222211100000///...----,,,++++***)))))(((''''&&&%%%%%$$$####"""!!!!!  !!!!!""####$$$$%%%%%&&''''(((()))))**++++,,,,----..////000001122223333444455666677778889999::::;;;;<<<===>>>>???@@@@AAABBBCCCCDDDEEEFFFFGGGGGHHHIIIJJJJKKKKLLMMMMNNNNOOOOPPQQQQRRRRSSTTTTUUUUVVVWWWXXXXYYYZZZZ[[[\\\]]]]^^^^^_^^^^]]]]\\\\[[ZZZZYYYYYXXXXWWVVVVUUUUTTTSSSRRRRQQQPPPOOOONNNMMMMLLLKKKJJJJIIIIHHGGGGFFFFEEEEDDCCCCCBBBBAA@@@@????>>>>==<<<<;;;;:::99988887776666655544443332222111000////...-----,,,++++***)))(((('''''&&&%%%$$$$#####"""!!!  !!!!""#####$$$$%%%%&&'''''(((())))**++++,,,,-----..////00001122223333444455666667777888899::::;;;;<<<===>>>>???@@@@AAABBBCCCCCDDDEEEEFFFGGGGHHHIIIJJJJKKKKLLMMMMNNNNOOOOPPQQQQRRRRSSTTTTUUUUVVVWWWXXXXYYYYYZZZ[[[\\\\]]]^^^^_^^^^]]]]\\\\[[ZZZZYYYYXXXWWWVVVVUUUTTTTTSSSRRRRQQQPPPOOOONNNMMMMLLLKKKJJJJIIIIHHGGGGFFFFEEEEDDCCCCBBBBAA@@@@@????>>>>==<<<<;;;;:::99988887776666555444333332222111000////...---,,,,+++++***)))((((''''&&%%%%%$$$$####""!!!!!  !!!!!"""###$$$$%%%%%&&&'''(((())))**+++++,,,,----..////00001122223333344445566667777888899::::;;;;<<<===>>>>???@@@@@AAABBBBCCCDDDEEEEFFFGGGGHHHIIIJJJJKKKKLLMMMMNNNNOOOOPPQQQQRRRRSSTTTTTUUUUVVVVWWXXXXYYYYZZZ[[[\\\\]]]^^^^_^^^^]]]]\\\\[[ZZZZYYYYXXXWWWVVVVUUUTTTTSSSRRRQQQQPPPPOOOONNNMMMMLLLKKKJJJJIIIIHHGGGGFFFFEEEEDDCCCCBBBBAA@@@@????>>>===<<<<<;;;;:::99988887776666555444333322221111000////...---,,,,++++**)))))((((''''&&%%%%$$$$$####""!!!!  !!!!"""###$$$$$%%%%&&&'''(((()))))***+++,,,,----..////00001111222333344445566667777888899::::;;;;<<<<<==>>>>????@@@AAABBBBCCCDDDEEEEFFFGGGGHHHIIIJJJJKKKKLLMMMMNNNNOOOOPPPQQQQRRRRSSTTTTUUUUVVVVWWXXXXYYYYZZZ[[[\\\\]]]^^^^_^^^^]]]]\\\\[[ZZZZYYYYXXXWWWVVVVUUUTTTTSSSRRRQQQQPPPOOONNNNMMMMLLKKKKKJJJJIIIIHHGGGGFFFFEEEEDDCCCCBBBBAA@@@@????>>>===<<<<;;;::::99998888777666655544433332222110000////....---,,,,++++**))))(((('''''&&%%%%$$$$####"""!!!!   !!!!""""####$$$%%%%&&&'''''((())))***+++,,,,----....///00001112223333444455666677778888999::::;;;;<<<<==>>>>????@@@AAABBBBCCCDDDEEEEFFFGGGGHHHIIIJJJJKKKKKLLLMMMNNNNOOOOPPQQQQRRRRSSTTTTUUUUVVVVWWXXXXYYYYZZZ[[[\\\\]]]^^^^_^^^^]]]]\\\\[[ZZZZYYYYXXXWWWVVVVUUUTTTTSSSRRRQQQQPPPOOONNNNMMMMLLKKKKJJJJIIIIHHGGGGGFFFFEEEEDDCCCCBBBBAA@@@@????>>>===<<<<;;;::::99988877776666655544433332222110000////..----,,,,,++++**))))((((''''&&%%%%%$$$$####""!!!!   !!!"""####$$$%%%%%&&&''''((())))***+++,,,,,----...///00001112223333444455666667777888899::::;;;;<<<<==>>>>????@@@AAABBBBCCCDDDEEEEFFFGGGGGHHHIIIIJJJKKKKLLLMMMNNNNOOOOPPQQQQRRRRSSTTTTUUUUVVVVWWXXXXYYYYZZZ[[[\\\\]]]^^^^_^^^^]]]]\\\\[[ZZZZYYYYXXXWWWVVVVUUUTTTTSSSRRRQQQQPPPOOONNNNMMMMLLKKKKJJJJIIIIHHGGGGFFFFEEEDDDCCCCCBBBBAA@@@@????>>>===<<<<;;;::::99988877776666554444333332222110000////..----,,,,++++**)))))((((''''&&%%%%$$$$#####""!!!!   !!!"""#####$$$$%%%&&&''''((()))))***++++,,,----...///00001112223333344445556667777888899::::;;;;<<<<==>>>>????@@@AAABBBBCCCCCDDEEEEFFFFGGGHHHIIIIJJJKKKKLLLMMMNNNNOOOOPPQQQQRRRRSSTTTTUUUUVVVVWWXXXXYYYYZZZ[[[\\\\]]]^^^^_^^^^]]]]\\\\[[ZZZZYYYYXXXWWWVVVVUUUTTTTSSSRRRQQQQPPPOOONNNNMMMMLLKKKKJJJJIIIIHHGGGGFFFFEEEDDDCCCCBBBAAA@@@@?????>>>===<<<<;;;::::99988877776666554444333322221100000////..----,,,,++++**))))(((('''''&&%%%%$$$$###"""!!!!!   !!!!!""####$$$$%%%&&&'''''(((()))***++++,,,----...///00000111222233344445556667777888899::::;;;;<<<<==>>>>?????@@@@AABBBBCCCCDDEEEEFFFFGGGHHHIIIIJJJKKKKLLLMMMNNNNOOOOPPQQQQRRRRSSTTTTUUUUVVVVWWXXXXYYYYZZZ[[[\\\\]]]^^^^^^^^]]]]\\\[[[ZZZZYYYYYXXXWWWVVVVUUUTTTTSSSRRRQQQQPPPOOONNNNMMMMLLKKKKJJJJIIIIHHGGGGFFFFEEEDDDCCCCBBBAAA@@@@???>>>>===<<<;;;;;::::9998887777666655444433332222110000////..-----,,,,++++**))))(((('''&&&%%%%$$$$$###"""!!!!   !!!!""####$$$$$%%%%&&''''(((()))***++++,,,-----...////000111222233344445556667777888899::::;;;;;<<<<==>>>>????@@@@AABBBBCCCCDDEEEEFFFFGGGHHHIIIIJJJKKKKLLLMMMNNNNOOOOPPQQQQRRRRSSTTTTUUUUVVVVWWXXXXYYYYYZZZZ[[\\\\]]]]^^^^^^]]]]\\\[[[ZZZZYYYXXXXWWWVVVUUUUTTTTSSSSRRRQQQQPPPOOONNNNMMMMLLKKKKJJJJIIIIHHGGGGFFFFEEEDDDCCCCBBBAAA@@@@???>>>>===<<<;;;;::::99888887777666655444433332222110000////..----,,,,+++****))))(((('''&&&%%%%$$$####""""!!!!   !!!!"""####$$$$%%%%&&''''(((()))****++++,,,,---...////00011122223334444555666777788888999:::;;;;<<<<==>>>>????@@@@AABBBBCCCCDDEEEEFFFFGGGHHHIIIIJJJKKKKLLLMMMNNNNOOOOPPQQQQRRRRSSSSTTTUUUUVVVVWWXXXXYYYYZZZZ[[\\\\]]]]^^^^^^]]]]\\\[[[ZZZZYYYXXXXWWWVVVUUUUTTTTSSRRRRQQQQPPOOOONNNNNMMMMLLKKKKJJJJIIIIHHGGGGFFFFEEEDDDCCCCBBBAAA@@@@???>>>>===<<<;;;;::::99888877776666554444433332222110000////..----,,,,+++***))))((((('''&&&%%%%$$$####"""!!!   !!!!""####$$$$%%%%&&''''((((())))**++++,,,,---...////00011122223334444455566667778888999:::;;;;<<<<==>>>>????@@@@AABBBBCCCCDDEEEEFFFFGGGHHHIIIIJJJKKKKLLLMMMNNNNNOOOOPPPQQQRRRRSSSTTTUUUUVVVVWWXXXXYYYYZZZZ[[\\\\]]]]^^^^^^]]]]\\\[[[ZZZZYYYXXXXWWWVVVUUUUTTTTSSRRRRQQQQPPOOOONNNNMMMMLLKKKKJJJJIIIIIHHGGGGFFFFEEEDDDCCCCBBBAAA@@@@???>>>>===<<<;;;;::::99888877776666554444333322211110000////..----,,,,+++***))))(((''''&&&%%%%%$$$####"""!!!   !!!!""####$$$$%%%%%&&''''(((())))**++++,,,,---...////00011112222333344455566667778888999:::;;;;<<<<==>>>>????@@@@AABBBBCCCCDDEEEEFFFFGGGHHHIIIIIJJJJKKKLLLMMMMNNNOOOOPPPQQQRRRRSSSTTTUUUUVVVVWWXXXXYYYYZZZZ[[\\\\]]]]^^^^^^]]]]\\\[[[ZZZZYYYXXXXWWWVVVUUUUTTTTSSRRRRQQQQPPOOOONNNNMMMMLLKKKKJJJJIIIHHHGGGGFFFEEEEDDDCCCCCBBBAAA@@@@???>>>>===<<<;;;;::::9988887777666655444433332221110000///...-----,,,,+++***))))(((''''&&&%%%$$$$#####"""!!! 
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+  !!!!""#####$$$$%%%%&&''''(((())))**++++,,,,-----..////0000112222333344455566667778888999:::;;;;<<<<==>>>>????@@@@AABBBBCCCCCDDEEEEFFFFGGGGHHIIIIJJJJKKKLLLMMMMNNNOOOOPPPQQQRRRRSSSTTTUUUUVVVVWWXXXXYYYYZZZZ[[\\\\]]]]^^^^^^]]]]\\\[[[ZZZZYYYXXXXWWWVVVUUUUTTTTSSRRRRQQQQPPOOOONNNNMMMMLLKKKKJJJJIIIHHHGGGGFFFEEEEDDDCCCBBBBAAA@@@?????>>>>===<<<;;;;::::9988887777666655444433332221110000///...----,,,++++****))))(((''''&&&%%%$$$$####""!!!! 
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+  !!!!"""###$$$$%%%%&&''''(((())))***++++,,,,----..////0000112222333344455566667778888999:::;;;;<<<<==>>>>?????@@@@AABBBBCCCCDDEEEEFFFFGGGGHHIIIIJJJJKKKLLLMMMMNNNOOOOPPPQQQRRRRSSSTTTUUUUVVVVWWXXXXYYYYZZZZ[[\\\\]]]]^^^^^^]]]]\\\[[[ZZZZYYYXXXXWWWVVVUUUUTTTTSSRRRRQQQQPPOOOONNNNMMMMLLKKKKJJJJIIIHHHGGGGFFFEEEEDDDCCCBBBBAAA@@@????>>>>==<<<<;;;;:::::9988887777666655444433332221110000///...----,,,++++***)))(((('''''&&&%%%$$$$####""!!!! 
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+  !!!!"""###$$$$%%%%&&'''''(((())))**++++,,,,----..////0000112222333344455566667778888999:::::;;;<<<<===>>>????@@@@AABBBBCCCCDDEEEEFFFFGGGGHHIIIIJJJJKKKLLLMMMMNNNOOOOPPPQQQRRRRSSSTTTUUUUVVVVWWXXXXYYYYZZZZ[[\\\\]]]]^^^^^^]]]]\\\[[[ZZZZYYYXXXXWWWVVVUUUUTTTTSSRRRRQQQQPPOOOONNNNMMMMLLKKKKJJJJIIIHHHGGGGFFFEEEEDDDCCCBBBBAAA@@@????>>>>==<<<<;;;;::::99888877776666655444433332221110000///...----,,,++++***)))((((''''&&%%%%$$$$$####""!!!! 
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+  !!!!"""###$$$$$%%%%&&&'''(((())))**++++,,,,----..////00001122223333444555666667777888999::::;;;<<<<===>>>????@@@@AABBBBCCCCDDEEEEFFFFGGGGHHIIIIJJJJKKKLLLMMMMNNNOOOOPPPQQQRRRRSSSTTTUUUUVVVVWWXXXXYYYYZZZZ[[\\\\]]]]^^^^^^]]]]\\\[[[ZZZZYYYXXXXWWWVVVUUUUTTTTSSRRRRQQQQPPOOOONNNNMMMMLLKKKKJJJJIIIHHHGGGGFFFEEEEDDDCCCBBBBAAA@@@????>>>>==<<<<;;;;::::99888877776665554444333222211110000///...----,,,++++***)))((((''''&&%%%%$$$$####""!!!!! 
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+  !!!!!"""####$$$%%%%&&&'''(((())))**++++,,,,----..////00001112222333344445566667777888999::::;;;<<<<===>>>????@@@@AABBBBCCCCDDEEEEFFFFGGGGHHIIIIJJJJKKKLLLMMMMNNNOOOOPPPQQQRRRRSSSTTTUUUUVVVVWWXXXXYYYYZZZZ[[\\\\]]]]^^^^^]]]\\\\[[[ZZZYYYYYXXXXWWWVVVUUUUTTTTSSRRRRQQQQPPOOOONNNNMMMMLLKKKKJJJJIIIHHHGGGGFFFEEEEDDDCCCBBBBAAA@@@????>>>>==<<<<;;;;::::998888777766655544443332222111000////...-----,,,++++***)))((((''''&&%%%%$$$$####""!!!! 
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+  !!!"""####$$$%%%%&&&'''(((())))**++++,,,,-----..////0000112222333344445566667777888999::::;;;<<<<===>>>????@@@@AABBBBCCCCDDEEEEFFFFGGGGHHIIIIJJJJKKKLLLMMMMNNNOOOOPPPQQQRRRRSSSTTTUUUUVVVVWWXXXXYYYYYZZZZ[[\\\\]]]]^^^^]]]\\\\[[[ZZZYYYYXXXXWWVVVVUUUUTTTTSSRRRRQQQQQPPOOOONNNNMMMMLLKKKKJJJJIIIHHHGGGGFFFEEEEDDDCCCBBBBAAA@@@????>>>>==<<<<;;;;::::998888777766655544443332222111000////...---,,,,++++**)))))((((''''&&%%%%$$$$####""!!!! 
+
+
+
+
+
+ 
+
+
+
+
+
+  !!!"""####$$$%%%%&&&'''(((()))))***+++,,,,----..////0000112222333344445566667777888999::::;;;<<<<===>>>????@@@@AABBBBCCCCDDEEEEFFFFGGGGHHIIIIJJJJKKKLLLMMMMNNNOOOOPPPQQQQQRRRSSSTTTTUUUVVVVWWWXXXYYYYZZZZ[[\\\\]]]]^^^^]]]\\\\[[[ZZZYYYYXXXXWWVVVVUUUUTTTTSSRRRRQQQQPPOOOONNNNMMMLLLKKKKJJJJJIIIHHHGGGGFFFEEEEDDDCCCBBBBAAA@@@????>>>>==<<<<;;;;::::998888777766655544443332222111000////...---,,,,++++**))))((((''''&&%%%%%$$$$####""!!!! 
+
+
+
+
+
+
+ 
+
+
+
+
+
+  !!!"""####$$$%%%%%&&&''''((())))***+++,,,,----..////0000112222333344445566667777888999::::;;;<<<<===>>>????@@@@AABBBBCCCCDDEEEEFFFFGGGGHHIIIIJJJJJKKKKLLMMMMNNNNOOOPPPQQQQRRRSSSTTTTUUUVVVVWWWXXXYYYYZZZZ[[\\\\]]]]^^^^]]]\\\\[[[ZZZYYYYXXXXWWVVVVUUUUTTTTSSRRRRQQQQPPOOOONNNNMMMLLLKKKKJJJIIIIHHHGGGFFFFEEEEDDCCCCCBBBBAAA@@@????>>>>==<<<<;;;;::::998888777766655544443332222111000////...---,,,,++++**))))((((''''&&%%%%$$$$###""""!!!! 
+
+
+
+
+ 
+
+
+
+
+  !!!""""####$$$$%%%&&&''''((())))***+++,,,,----..////0000112222333344445566667777888999::::;;;<<<<===>>>????@@@@AABBBBCCCCCDDDEEEFFFFGGGGHHIIIIJJJJKKKKLLMMMMNNNNOOOPPPQQQQRRRSSSTTTTUUUVVVVWWWXXXYYYYZZZZ[[\\\\]]]]^^^^]]]\\\\[[[ZZZYYYYXXXXWWVVVVUUUUTTTTSSRRRRQQQQPPOOOONNNNMMMLLLKKKKJJJIIIIHHHGGGFFFFEEEEDDCCCCBBBBAA@@@@????>>>>==<<<<<;;;;::::998888777766655544443332222111000////...---,,,,++++**))))((((''''&&%%%%$$$$###"""!!!! 
+
+
+
+
+ 
+
+
+
+
+  !!!!""####$$$$%%%&&&''''((())))***+++,,,,----..////0000112222333344445566667777888999::::;;;<<<<<===>>>>???@@@@AAABBBCCCCDDDEEEFFFFGGGGHHIIIIJJJJKKKKLLMMMMNNNNOOOPPPQQQQRRRSSSTTTTUUUVVVVWWWXXXYYYYZZZZ[[\\\\]]]]^^^^]]]\\\\[[[ZZZYYYYXXXXWWVVVVUUUUTTTTSSRRRRQQQQPPOOOONNNNMMMLLLKKKKJJJIIIIHHHGGGFFFFEEEEDDCCCCBBBBAA@@@@????>>>>==<<<<;;;;:::99988887776666655544443332222111000////...---,,,,++++**))))((((''''&&%%%%$$$$###"""!!!! 
+
+
+
+
+ 
+
+
+
+
+  !!!!""####$$$$%%%&&&''''((())))***+++,,,,----..////00001122223333444455666667777888899::::;;;;<<<===>>>>???@@@@AAABBBCCCCDDDEEEFFFFGGGGHHIIIIJJJJKKKKLLMMMMNNNNOOOPPPQQQQRRRSSSTTTTUUUVVVVWWWXXXYYYYZZZZ[[\\\\]]]]^^^^]]]\\\\[[[ZZZYYYYXXXXWWVVVVUUUUTTTTSSRRRRQQQQPPOOOONNNNMMMLLLKKKKJJJIIIIHHHGGGFFFFEEEEDDCCCCBBBBAA@@@@????>>>>==<<<<;;;;:::9998888777666655544433332222110000/////...---,,,,++++**))))((((''''&&%%%%$$$$###"""!!!! 
+
+
+ 
+
+
+
+  !!!!""####$$$$%%%&&&''''((())))***+++,,,,----../////0000111222333344445566667777888899::::;;;;<<<===>>>>???@@@@AAABBBCCCCDDDEEEFFFFGGGGHHIIIIJJJJKKKKLLMMMMNNNNOOOPPPQQQQRRRSSSTTTTUUUVVVVWWWXXXYYYYZZZZ[[\\\\]]]]^^^^]]]\\\\[[[ZZZYYYYXXXXWWVVVVUUUUTTTTSSRRRRQQQQPPOOOONNNNMMMLLLKKKKJJJIIIIHHHGGGFFFFEEEEDDCCCCBBBBAA@@@@????>>>>==<<<<;;;;:::9998888777666655544433332222110000////..----,,,,++++***))))((((''''&&%%%%$$$$###"""!!!! 
+
+
+
+
+ 
+
+
+
+
+  !!!!""####$$$$%%%&&&''''((())))****++++,,,----...///0000111222333344445566667777888899::::;;;;<<<===>>>>???@@@@AAABBBCCCCDDDEEEFFFFGGGGHHIIIIJJJJKKKKLLMMMMNNNNOOOPPPQQQQRRRSSSTTTTUUUVVVVWWWXXXYYYYZZZZ[[\\\\]]]]^^^^]]]\\\\[[[ZZZYYYYXXXXWWVVVVUUUUTTTTSSRRRRQQQQPPOOOONNNNMMMLLLKKKKJJJIIIIHHHGGGFFFFEEEEDDCCCCBBBBAA@@@@????>>>>==<<<<;;;;:::9998888777666655544433332222110000////..----,,,,++++**))))(((('''&&&%%%%$$$$$###"""!!!! 
+
+
+
+
+ 
+
+
+
+
+  !!!!""####$$$$$%%%%&&''''(((()))***++++,,,----...///0000111222333344445566667777888899::::;;;;<<<===>>>>???@@@@AAABBBCCCCDDDEEEFFFFGGGGHHIIIIJJJJKKKKLLMMMMNNNNOOOPPPQQQQRRRSSSTTTTUUUVVVVWWWXXXYYYYZZZZ[[\\\\]]]]^^^^]]]\\\\[[[ZZZYYYYXXXXWWVVVVUUUUTTTTSSRRRRQQQQPPOOOONNNNMMMLLLKKKKJJJIIIIHHHGGGFFFFEEEEDDCCCCBBBBAA@@@@????>>>>==<<<<;;;;:::9998888777666655544433332222110000////..----,,,,++++**))))(((('''&&&%%%%$$$####"""!!! 
+
+
+
+ 
+
+
+  !!!!""####$$$$%%%%&&''''(((()))***++++,,,----...///0000111222333344445566667777888899::::;;;;<<<===>>>>???@@@@AAABBBCCCCDDDEEEFFFFGGGGHHIIIIJJJJKKKKLLMMMMNNNNOOOPPPQQQQRRRSSSTTTTUUUVVVVWWWXXXYYYYZZZZ[[\\\\]]]]^^^^]]]\\\\[[[ZZZYYYYXXXXWWVVVVUUUUTTTTSSRRRRQQQQPPOOOONNNNMMMLLLKKKKJJJIIIIHHHGGGFFFFEEEEDDCCCCBBBBAA@@@@????>>>>==<<<<;;;;:::9998888777666655544433332222110000////..----,,,,++++**))))(((('''&&&%%%%$$$####"""!!! 
+
+
+
+
+ 
+
+
+
+
+  !!!!""####$$$$%%%%&&''''(((()))***++++,,,----...///0000111222333344445566667777888899::::;;;;<<<===>>>>???@@@@AAABBBCCCCDDDEEEFFFFGGGGHHIIIIJJJJKKKKLLMMMMNNNNOOOPPPQQQQRRRSSSTTTTUUUVVVVWWWXXXYYYYZZZZ[[\\\\]]]]^^^^]]]\\\\[[[ZZZYYYYXXXXWWVVVVUUUUTTTTSSRRRRQQQQPPOOOONNNNMMMLLLKKKKJJJIIIIHHHGGGFFFFEEEEDDCCCCBBBBAA@@@@????>>>>==<<<<;;;;:::9998888777666655544433332222110000////..----,,,,++++**))))(((('''&&&%%%%$$$####"""!!! 
+
+
+
+ 
+
+
+
+  !!!!""####$$$$%%%%&&''''(((()))***++++,,,----...///0000111222333344445566667777888899::::;;;;<<<===>>>>???@@@@AAABBBCCCCDDDEEEFFFFGGGGHHIIIIJJJJKKKKLLMMMMNNNNOOOPPPQQQQRRRSSSTTTTUUUVVVVWWWXXXYYYYZZZZ[[\\\\]]]]^^^^]]]\\\\[[[ZZZYYYYXXXXWWVVVVUUUUTTTTSSRRRRQQQQPPOOOONNNNMMMLLLKKKKJJJIIIIHHHGGGFFFFEEEEDDCCCCBBBBAA@@@@????>>>>==<<<<;;;;:::9998888777666655544433332222110000////..----,,,,++++**))))(((('''&&&%%%%$$$####"""!!! 
+
+
+
+
+ 
+
+
+
+
+  !!!!""####$$$$%%%%&&''''(((()))***++++,,,----...///0000111222333344445566667777888899::::;;;;<<<===>>>>???@@@@AAABBBCCCCDDDEEEFFFFGGGGHHIIIIJJJJKKKKLLMMMMNNNNOOOPPPQQQQRRRSSSTTTTUUUVVVVWWWXXXYYYYZZZZ[[\\\\]]]]^^^^]]]\\\\[[[ZZZYYYYXXXXWWVVVVUUUUTTTTSSRRRRQQQQPPOOOONNNNMMMLLLKKKKJJJIIIIHHHGGGFFFFEEEEDDCCCCBBBBAA@@@@????>>>>==<<<<;;;;:::9998888777666655544433332222110000////..----,,,,++++**))))(((('''&&&%%%%$$$####"""!!! 
+
+
+ 
+
+
+
+  !!!!""####$$$$%%%%&&''''(((()))***++++,,,----...///0000111222333344445566667777888899::::;;;;<<<===>>>>???@@@@AAABBBCCCCDDDEEEFFFFGGGGHHIIIIJJJJKKKKLLMMMMNNNNOOOPPPQQQQRRRSSSTTTTUUUVVVVWWWXXXYYYYZZZZ[[\\\\]]]]^^^^]]]\\\\[[[ZZZYYYYXXXXWWVVVVUUUUTTTTSSRRRRQQQQPPOOOONNNNMMMLLLKKKKJJJIIIIHHHGGGFFFFEEEEDDCCCCBBBBAA@@@@????>>>>==<<<<;;;;:::9998888777666655544433332222110000////..----,,,,++++**))))(((('''&&&%%%%$$$####"""!!! 
+
+
+ 
+
+
+
+  !!!!""####$$$$%%%%&&''''(((()))***++++,,,----...///0000111222333344445566667777888899::::;;;;<<<===>>>>???@@@@AAABBBCCCCDDDEEEFFFFGGGGHHIIIIJJJJKKKKLLMMMMNNNNOOOPPPQQQQRRRSSSTTTTUUUVVVVWWWXXXYYYYZZZZ[[\\\\]]]]^^^^]]]\\\\[[[ZZZYYYYXXXXWWVVVVUUUUTTTTSSRRRRQQQQPPOOOONNNNMMMLLLKKKKJJJIIIIHHHGGGFFFFEEEEDDCCCCBBBBAA@@@@????>>>>==<<<<;;;;:::9998888777666655544433332222110000////..----,,,,++++**))))(((('''&&&%%%%$$$####"""!!! 
+
+
+
+
+ 
+
+
+
+
+  !!!!""####$$$$%%%%&&''''(((()))***++++,,,----...///0000111222333344445566667777888899::::;;;;<<<===>>>>???@@@@AAABBBCCCCDDDEEEFFFFGGGGHHIIIIJJJJKKKKLLMMMMNNNNOOOPPPQQQQRRRSSSTTTTUUUVVVVWWWXXXYYYYZZZZ[[\\\\]]]]^^^^]]]\\\\[[[ZZZYYYYXXXXWWVVVVUUUUTTTTSSRRRRQQQQPPOOOONNNNMMMLLLKKKKJJJIIIIHHHGGGFFFFEEEEDDCCCCBBBBAA@@@@????>>>>==<<<<;;;;:::9998888777666655544433332222110000////..----,,,,++++**))))(((('''&&&%%%%$$$####"""!!! 
+
+
+
+ 
+
+
+
+  !!!!""####$$$$%%%%&&''''(((()))***++++,,,----...///0000111222333344445566667777888899::::;;;;<<<===>>>>???@@@@AAABBBCCCCDDDEEEFFFFGGGGHHIIIIJJJJKKKKLLMMMMNNNNOOOPPPQQQQRRRSSSTTTTUUUVVVVWWWXXXYYYYZZZZ[[\\\\]]]]^^^^]]]\\\\[[[ZZZYYYYXXXXWWVVVVUUUUTTTTSSRRRRQQQQPPOOOONNNNMMMLLLKKKKJJJIIIIHHHGGGFFFFEEEEDDCCCCBBBBAA@@@@????>>>>==<<<<;;;;:::9998888777666655544433332222110000////..----,,,,++++**))))(((('''&&&%%%%$$$####"""!!! 
+
+
+
+ 
+
+
+
+  !!!!""####$$$$%%%%&&''''(((()))***++++,,,----...///0000111222333344445566667777888899::::;;;;<<<===>>>>???@@@@AAABBBCCCCDDDEEEFFFFGGGGHHIIIIJJJJKKKKLLMMMMNNNNOOOPPPQQQQRRRSSSTTTTUUUVVVVWWWXXXYYYYZZZZ[[\\\\]]]]^^^^]]]\\\\[[[ZZZYYYYXXXXWWVVVVUUUUTTTTSSRRRRQQQQPPOOOONNNNMMMLLLKKKKJJJIIIIHHHGGGFFFFEEEEDDCCCCBBBBAA@@@@????>>>>==<<<<;;;;:::9998888777666655544433332222110000////..----,,,,++++**))))(((('''&&&%%%%$$$####"""!!! 
+
+
+
+ 
+
+
+
+  !!!!""####$$$$%%%%&&''''(((()))***++++,,,----...///0000111222333344445566667777888899::::;;;;<<<===>>>>???@@@@AAABBBCCCCDDDEEEFFFFGGGGHHIIIIJJJJKKKKLLMMMMNNNNOOOPPPQQQQRRRSSSTTTTUUUVVVVWWWXXXYYYYZZZZ[[\\\\]]]]^^^^]]]\\\\[[[ZZZYYYYXXXXWWVVVVUUUUTTTTSSRRRRQQQQPPOOOONNNNMMMLLLKKKKJJJIIIIHHHGGGFFFFEEEEDDCCCCBBBBAA@@@@????>>>>==<<<<;;;;:::9998888777666655544433332222110000////..----,,,,++++**))))(((('''&&&%%%%$$$####"""!!! 
+
+
+
+ 
+
+
+
+  !!!!""####$$$$%%%%&&''''(((()))***++++,,,----...///0000111222333344445566667777888899::::;;;;<<<===>>>>???@@@@AAABBBCCCCDDDEEEFFFFGGGGHHIIIIJJJJKKKKLLMMMMNNNNOOOPPPQQQQRRRSSSTTTTUUUVVVVWWWXXXYYYYZZZZ[[\\\\]]]]^^^^]]]\\\\[[[ZZZYYYYXXXXWWVVVVUUUUTTTTSSRRRRQQQQPPOOOONNNNMMMLLLKKKKJJJIIIIHHHGGGFFFFEEEEDDCCCCBBBBAA@@@@????>>>>==<<<<;;;;:::9998888777666655544433332222110000////..----,,,,++++**))))(((('''&&&%%%%$$$####"""!!! 
+
+
+
+ 
+
+
+
+  !!!!""####$$$$%%%%&&''''(((()))***++++,,,----...///0000111222333344445566667777888899::::;;;;<<<===>>>>???@@@@AAABBBCCCCDDDEEEFFFFGGGGHHIIIIJJJJKKKKLLMMMMNNNNOOOPPPQQQQRRRSSSTTTTUUUVVVVWWWXXXYYYYZZZZ[[\\\\]]]]^^^^]]]\\\\[[[ZZZYYYYXXXXWWVVVVUUUUTTTTSSRRRRQQQQPPOOOONNNNMMMLLLKKKKJJJIIIIHHHGGGFFFFEEEEDDCCCCBBBBAA@@@@????>>>>==<<<<;;;;:::9998888777666655544433332222110000////..----,,,,++++**))))(((('''&&&%%%%$$$####"""!!! 
+
+
+
+ 
+
+
+
+  !!!!""####$$$$%%%%&&''''(((()))***++++,,,----...///0000111222333344445566667777888899::::;;;;<<<===>>>>???@@@@AAABBBCCCCDDDEEEFFFFGGGGHHIIIIJJJJKKKKLLMMMMNNNNOOOPPPQQQQRRRSSSTTTTUUUVVVVWWWXXXYYYYZZZZ[[\\\\]]]]^^^^]]]\\\\[[[ZZZYYYYXXXXWWVVVVUUUUTTTTSSRRRRQQQQPPOOOONNNNMMMLLLKKKKJJJIIIIHHHGGGFFFFEEEEDDCCCCBBBBAA@@@@????>>>>==<<<<;;;;:::9998888777666655544433332222110000////..----,,,,++++**))))(((('''&&&%%%%$$$####"""!!! 
+
+
+
+ 
+
+
+
+  !!!!""####$$$$%%%%&&''''(((()))***++++,,,----...///0000111222333344445566667777888899::::;;;;<<<===>>>>???@@@@AAABBBCCCCDDDEEEFFFFGGGGHHIIIIJJJJKKKKLLMMMMNNNNOOOPPPQQQQRRRSSSTTTTUUUVVVVWWWXXXYYYYZZZZ[[\\\\]]]]^^^^]]]\\\\[[[ZZZYYYYXXXXWWVVVVUUUUTTTTSSRRRRQQQQPPOOOONNNNMMMLLLKKKKJJJIIIIHHHGGGFFFFEEEEDDCCCCBBBBAA@@@@????>>>>==<<<<;;;;:::9998888777666655544433332222110000////..----,,,,++++**))))(((('''&&&%%%%$$$####"""!!! 
+
+
+
+ 
+
+
+
+  !!!!""####$$$$%%%%&&''''(((()))***++++,,,----...///0000111222333344445566667777888899::::;;;;<<<===>>>>???@@@@AAABBBCCCCDDDEEEFFFFGGGGHHIIIIJJJJKKKKLLMMMMNNNNOOOPPPQQQQRRRSSSTTTTUUUVVVVWWWXXXYYYYZZZZ[[\\\\]]]]^^^^]]]\\\\[[[ZZZYYYYXXXXWWVVVVUUUUTTTTSSRRRRQQQQPPOOOONNNNMMMLLLKKKKJJJIIIIHHHGGGFFFFEEEEDDCCCCBBBBAA@@@@????>>>>==<<<<;;;;:::9998888777666655544433332222110000////..----,,,,++++**))))(((('''&&&%%%%$$$####"""!!! 
+
+
+
+ 
+
+
+
+  !!!!""####$$$$%%%%&&''''(((()))***++++,,,----...///0000111222333344445566667777888899::::;;;;<<<===>>>>???@@@@AAABBBCCCCDDDEEEFFFFGGGGHHIIIIJJJJKKKKLLMMMMNNNNOOOPPPQQQQRRRSSSTTTTUUUVVVVWWWXXXYYYYZZZZ[[\\\\]]]]^^^^]]]\\\\[[[ZZZYYYYXXXXWWVVVVUUUUTTTTSSRRRRQQQQPPOOOONNNNMMMLLLKKKKJJJIIIIHHHGGGFFFFEEEEDDCCCCBBBBAA@@@@????>>>>==<<<<;;;;:::9998888777666655544433332222110000////..----,,,,++++**))))(((('''&&&%%%%$$$####"""!!! 
+
+
+
+ 
+
+
+
+  !!!!""####$$$$%%%%&&''''(((()))***++++,,,----...///0000111222333344445566667777888899::::;;;;<<<===>>>>???@@@@AAABBBCCCCDDDEEEFFFFGGGGHHIIIIJJJJKKKKLLMMMMNNNNOOOPPPQQQQRRRSSSTTTTUUUVVVVWWWXXXYYYYZZZZ[[\\\\]]]]^^^^]]]\\\\[[[ZZZYYYYXXXXWWVVVVUUUUTTTTSSRRRRQQQQPPOOOONNNNMMMLLLKKKKJJJIIIIHHHGGGFFFFEEEEDDCCCCBBBBAA@@@@????>>>>==<<<<;;;;:::9998888777666655544433332222110000////..----,,,,++++**))))(((('''&&&%%%%$$$####"""!!! 
+
+
+
+ 
+
+
+
+  !!!!""####$$$$%%%%&&''''(((()))***++++,,,----...///0000111222333344445566667777888899::::;;;;<<<===>>>>???@@@@AAABBBCCCCDDDEEEFFFFGGGGHHIIIIJJJJKKKKLLMMMMNNNNOOOPPPQQQQRRRSSSTTTTUUUVVVVWWWXXXYYYYZZZZ[[\\\\]]]]^^^^]]]\\\\[[[ZZZYYYYXXXXWWVVVVUUUUTTTTSSRRRRQQQQPPOOOONNNNMMMLLLKKKKJJJIIIIHHHGGGFFFFEEEEDDCCCCBBBBAA@@@@????>>>>==<<<<;;;;:::9998888777666655544433332222110000////..----,,,,++++**))))(((('''&&&%%%%$$$####"""!!! 
+
+
+
+ 
+
+
+
+  !!!!""####$$$$%%%%&&''''(((()))***++++,,,----...///0000111222333344445566667777888899::::;;;;<<<===>>>>???@@@@AAABBBCCCCDDDEEEFFFFGGGGHHIIIIJJJJKKKKLLMMMMNNNNOOOPPPQQQQRRRSSSTTTTUUUVVVVWWWXXXYYYYZZZZ[[\\\\]]]]^^^^]]]\\\\[[[ZZZYYYYXXXXWWVVVVUUUUTTTTSSRRRRQQQQPPOOOONNNNMMMLLLKKKKJJJIIIIHHHGGGFFFFEEEEDDCCCCBBBBAA@@@@????>>>>==<<<<;;;;:::9998888777666655544433332222110000////..----,,,,++++**))))(((('''&&&%%%%$$$####"""!!! 
+
+
+
+ 
+
+
+
+  !!!!""####$$$$%%%%&&''''(((()))***++++,,,----...///0000111222333344445566667777888899::::;;;;<<<===>>>>???@@@@AAABBBCCCCDDDEEEFFFFGGGGHHIIIIJJJJKKKKLLMMMMNNNNOOOPPPQQQQRRRSSSTTTTUUUVVVVWWWXXXYYYYZZZZ[[\\\\]]]]^^^^]]]\\\\[[[ZZZYYYYXXXXWWVVVVUUUUTTTTSSRRRRQQQQPPOOOONNNNMMMLLLKKKKJJJIIIIHHHGGGFFFFEEEEDDCCCCBBBBAA@@@@????>>>>==<<<<;;;;:::9998888777666655544433332222110000////..----,,,,++++**))))(((('''&&&%%%%$$$####"""!!! 
+
+
+
+
+ 
+
+
+
+
+  !!!!""####$$$$%%%%&&''''(((()))***++++,,,----...///0000111222333344445566667777888899::::;;;;<<<===>>>>???@@@@AAABBBCCCCDDDEEEFFFFGGGGHHIIIIJJJJKKKKLLMMMMNNNNOOOPPPQQQQRRRSSSTTTTUUUVVVVWWWXXXYYYYZZZZ[[\\\\]]]]^^^^]]]\\\\[[[ZZZYYYYXXXXWWVVVVUUUUTTTTSSRRRRQQQQPPOOOONNNNMMMLLLKKKKJJJIIIIHHHGGGFFFFEEEEDDCCCCBBBBAA@@@@????>>>>==<<<<;;;;:::9998888777666655544433332222110000////..----,,,,++++**))))(((('''&&&%%%%$$$####"""!!! 
+
+
+ 
+
+
+
+  !!!!""####$$$$%%%%&&''''(((()))***++++,,,----...///0000111222333344445566667777888899::::;;;;<<<===>>>>???@@@@AAABBBCCCCDDDEEEFFFFGGGGHHIIIIJJJJKKKKLLMMMMNNNNOOOPPPQQQQRRRSSSTTTTUUUVVVVWWWXXXYYYYZZZZ[[\\\\]]]]^^^^]]]\\\\[[[ZZZYYYYXXXXWWVVVVUUUUTTTTSSRRRRQQQQPPOOOONNNNMMMLLLKKKKJJJIIIIHHHGGGFFFFEEEEDDCCCCBBBBAA@@@@????>>>>==<<<<;;;;:::9998888777666655544433332222110000////..----,,,,++++**))))(((('''&&&%%%%$$$####"""!!! 
+
+
+ 
+
+
+
+  !!!!""####$$$$%%%%&&''''(((()))***++++,,,----...///0000111222333344445566667777888899::::;;;;<<<===>>>>???@@@@AAABBBCCCCDDDEEEFFFFGGGGHHIIIIJJJJKKKKLLMMMMNNNNOOOPPPQQQQRRRSSSTTTTUUUVVVVWWWXXXYYYYZZZZ[[\\\\]]]]^^^^]]]\\\\[[[ZZZYYYYXXXXWWVVVVUUUUTTTTSSRRRRQQQQPPOOOONNNNMMMLLLKKKKJJJIIIIHHHGGGFFFFEEEEDDCCCCBBBBAA@@@@????>>>>==<<<<;;;;:::9998888777666655544433332222110000////..----,,,,++++**))))(((('''&&&%%%%$$$####"""!!! 
+
+
+
+
+ 
+
+
+
+
+  !!!!""####$$$$%%%%&&''''(((()))***++++,,,----...///0000111222333344445566667777888899::::;;;;<<<===>>>>???@@@@AAABBBCCCCDDDEEEFFFFGGGGHHIIIIJJJJKKKKLLMMMMNNNNOOOPPPQQQQRRRSSSTTTTUUUVVVVWWWXXXYYYYZZZZ[[\\\\]]]]^^^^]]]\\\\[[[ZZZYYYYXXXXWWVVVVUUUUTTTTSSRRRRQQQQPPOOOONNNNMMMLLLKKKKJJJIIIIHHHGGGFFFFEEEEDDCCCCBBBBAA@@@@????>>>>==<<<<;;;;:::9998888777666655544433332222110000////..----,,,,++++**))))(((('''&&&%%%%$$$####"""!!! 
+
+
+
+ 
+
+
+
+  !!!!""####$$$$%%%%&&''''(((()))***++++,,,----...///0000111222333344445566667777888899::::;;;;<<<===>>>>???@@@@AAABBBCCCCDDDEEEFFFFGGGGHHIIIIJJJJKKKKLLMMMMNNNNOOOPPPQQQQRRRSSSTTTTUUUVVVVWWWXXXYYYYZZZZ[[\\\\]]]]^^^^]]]\\\\[[[ZZZYYYYXXXXWWVVVVUUUUTTTTSSRRRRQQQQPPOOOONNNNMMMLLLKKKKJJJIIIIHHHGGGFFFFEEEEDDCCCCBBBBAA@@@@????>>>>==<<<<;;;;:::9998888777666655544433332222110000////..----,,,,++++**))))(((('''&&&%%%%$$$####"""!!! 
+
+
+
+
+ 
+
+
+
+
+  !!!!""####$$$$%%%%&&''''(((()))***++++,,,----...///0000111222333344445566667777888899::::;;;;<<<===>>>>???@@@@AAABBBCCCCDDDEEEFFFFGGGGHHIIIIJJJJKKKKLLMMMMNNNNOOOPPPQQQQRRRSSSTTTTUUUVVVVWWWXXXYYYYZZZZ[[\\\\]]]]^^^^]]]\\\\[[[ZZZYYYYXXXXWWVVVVUUUUTTTTSSRRRRQQQQPPOOOONNNNMMMLLLKKKKJJJIIIIHHHGGGFFFFEEEEDDCCCCBBBBAA@@@@????>>>>==<<<<;;;;:::9998888777666655544433332222110000////..----,,,,++++**))))(((('''&&&%%%%$$$####"""!!! 
+
+
+
+ 
+
+
+  !!!!""####$$$$%%%%&&''''(((()))***++++,,,----...///0000111222333344445566667777888899::::;;;;<<<===>>>>???@@@@AAABBBCCCCDDDEEEFFFFGGGGHHIIIIJJJJKKKKLLMMMMNNNNOOOPPPQQQQRRRSSSTTTTUUUVVVVWWWXXXYYYYZZZZ[[\\\\]]]]^^^^]]]\\\\[[[ZZZYYYYXXXXWWVVVVUUUUTTTTSSRRRRQQQQPPOOOONNNNMMMLLLKKKKJJJIIIIHHHGGGFFFFEEEEDDCCCCBBBBAA@@@@????>>>>==<<<<;;;;:::9998888777666655544433332222110000////..----,,,,++++**))))(((('''&&&%%%%$$$$$###"""!!!! 
+
+
+
+
+ 
+
+
+
+
+  !!!!""####$$$$$%%%%&&''''(((()))***++++,,,----...///0000111222333344445566667777888899::::;;;;<<<===>>>>???@@@@AAABBBCCCCDDDEEEFFFFGGGGHHIIIIJJJJKKKKLLMMMMNNNNOOOPPPQQQQRRRSSSTTTTUUUVVVVWWWXXXYYYYZZZZ[[\\\\]]]]^^^^]]]\\\\[[[ZZZYYYYXXXXWWVVVVUUUUTTTTSSRRRRQQQQPPOOOONNNNMMMLLLKKKKJJJIIIIHHHGGGFFFFEEEEDDCCCCBBBBAA@@@@????>>>>==<<<<;;;;:::9998888777666655544433332222110000////..----,,,,++++***))))((((''''&&%%%%$$$$###"""!!!! 
+
+
+
+
+ 
+
+
+
+
+  !!!!""####$$$$%%%&&&''''((())))****++++,,,----...///0000111222333344445566667777888899::::;;;;<<<===>>>>???@@@@AAABBBCCCCDDDEEEFFFFGGGGHHIIIIJJJJKKKKLLMMMMNNNNOOOPPPQQQQRRRSSSTTTTUUUVVVVWWWXXXYYYYZZZZ[[\\\\]]]]^^^^]]]\\\\[[[ZZZYYYYXXXXWWVVVVUUUUTTTTSSRRRRQQQQPPOOOONNNNMMMLLLKKKKJJJIIIIHHHGGGFFFFEEEEDDCCCCBBBBAA@@@@????>>>>==<<<<;;;;:::9998888777666655544433332222110000/////...---,,,,++++**))))((((''''&&%%%%$$$$###"""!!!! 
+
+
+ 
+
+
+
+  !!!!""####$$$$%%%&&&''''((())))***+++,,,,----../////0000111222333344445566667777888899::::;;;;<<<===>>>>???@@@@AAABBBCCCCDDDEEEFFFFGGGGHHIIIIJJJJKKKKLLMMMMNNNNOOOPPPQQQQRRRSSSTTTTUUUVVVVWWWXXXYYYYZZZZ[[\\\\]]]]^^^^]]]\\\\[[[ZZZYYYYXXXXWWVVVVUUUUTTTTSSRRRRQQQQPPOOOONNNNMMMLLLKKKKJJJIIIIHHHGGGFFFFEEEEDDCCCCBBBBAA@@@@????>>>>==<<<<;;;;:::99988887776666655544443332222111000////...---,,,,++++**))))((((''''&&%%%%$$$$###"""!!!! 
+
+
+
+
+ 
+
+
+
+
+  !!!!""####$$$$%%%&&&''''((())))***+++,,,,----..////00001122223333444455666667777888899::::;;;;<<<===>>>>???@@@@AAABBBCCCCDDDEEEFFFFGGGGHHIIIIJJJJKKKKLLMMMMNNNNOOOPPPQQQQRRRSSSTTTTUUUVVVVWWWXXXYYYYZZZZ[[\\\\]]]]^^^^]]]\\\\[[[ZZZYYYYXXXXWWVVVVUUUUTTTTSSRRRRQQQQPPOOOONNNNMMMLLLKKKKJJJIIIIHHHGGGFFFFEEEEDDCCCCBBBBAA@@@@????>>>>==<<<<<;;;;::::998888777766655544443332222111000////...---,,,,++++**))))((((''''&&%%%%$$$$###"""!!!! 
+
+
+
+
+ 
+
+
+
+
+  !!!!""####$$$$%%%&&&''''((())))***+++,,,,----..////0000112222333344445566667777888999::::;;;<<<<<===>>>>???@@@@AAABBBCCCCDDDEEEFFFFGGGGHHIIIIJJJJKKKKLLMMMMNNNNOOOPPPQQQQRRRSSSTTTTUUUVVVVWWWXXXYYYYZZZZ[[\\\\]]]]^^^^]]]\\\\[[[ZZZYYYYXXXXWWVVVVUUUUTTTTSSRRRRQQQQPPOOOONNNNMMMLLLKKKKJJJIIIIHHHGGGFFFFEEEEDDCCCCCBBBBAAA@@@????>>>>==<<<<;;;;::::998888777766655544443332222111000////...---,,,,++++**))))((((''''&&%%%%$$$$###""""!!!! 
+
+
+
+
+ 
+
+
+
+
+  !!!""""####$$$$%%%&&&''''((())))***+++,,,,----..////0000112222333344445566667777888999::::;;;<<<<===>>>????@@@@AABBBBCCCCCDDDEEEFFFFGGGGHHIIIIJJJJKKKKLLMMMMNNNNOOOPPPQQQQRRRSSSTTTTUUUVVVVWWWXXXYYYYZZZZ[[\\\\]]]]^^^^]]]\\\\[[[ZZZYYYYXXXXWWVVVVUUUUTTTTSSRRRRQQQQPPOOOONNNNMMMLLLKKKKJJJJJIIIHHHGGGGFFFEEEEDDDCCCBBBBAAA@@@????>>>>==<<<<;;;;::::998888777766655544443332222111000////...---,,,,++++**))))((((''''&&%%%%%$$$$####""!!!! 
+
+
+
+
+
+
+ 
+
+
+
+
+
+  !!!"""####$$$%%%%%&&&''''((())))***+++,,,,----..////0000112222333344445566667777888999::::;;;<<<<===>>>????@@@@AABBBBCCCCDDEEEEFFFFGGGGHHIIIIJJJJJKKKKLLMMMMNNNNOOOPPPQQQQRRRSSSTTTTUUUVVVVWWWXXXYYYYZZZZ[[\\\\]]]]^^^^]]]\\\\[[[ZZZYYYYXXXXWWVVVVUUUUTTTTSSRRRRQQQQQPPOOOONNNNMMMMLLKKKKJJJJIIIHHHGGGGFFFEEEEDDDCCCBBBBAAA@@@????>>>>==<<<<;;;;::::998888777766655544443332222111000////...---,,,,++++**)))))((((''''&&%%%%$$$$####""!!!! 
+
+
+
+
+
+ 
+
+
+
+
+
+  !!!"""####$$$%%%%&&&'''(((()))))***+++,,,,----..////0000112222333344445566667777888999::::;;;<<<<===>>>????@@@@AABBBBCCCCDDEEEEFFFFGGGGHHIIIIJJJJKKKLLLMMMMNNNOOOOPPPQQQQQRRRSSSTTTTUUUVVVVWWWXXXYYYYZZZZ[[\\\\]]]]^^^^]]]\\\\[[[ZZZYYYYYXXXXWWWVVVUUUUTTTTSSRRRRQQQQPPOOOONNNNMMMMLLKKKKJJJJIIIHHHGGGGFFFEEEEDDDCCCBBBBAAA@@@????>>>>==<<<<;;;;::::998888777766655544443332222111000////...-----,,,++++***)))((((''''&&%%%%$$$$####""!!!! 
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+  !!!"""####$$$%%%%&&&'''(((())))**++++,,,,-----..////0000112222333344445566667777888999::::;;;<<<<===>>>????@@@@AABBBBCCCCDDEEEEFFFFGGGGHHIIIIJJJJKKKLLLMMMMNNNOOOOPPPQQQRRRRSSSTTTUUUUVVVVWWXXXXYYYYYZZZZ[[\\\\]]]]^^^^^]]]]\\\[[[ZZZZYYYXXXXWWWVVVUUUUTTTTSSRRRRQQQQPPOOOONNNNMMMMLLKKKKJJJJIIIHHHGGGGFFFEEEEDDDCCCBBBBAAA@@@????>>>>==<<<<;;;;::::99888877776665554444333222211110000///...----,,,++++***)))((((''''&&%%%%$$$$####""!!!!! 
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+  !!!!!"""####$$$%%%%&&&'''(((())))**++++,,,,----..////00001112222333344445566667777888999::::;;;<<<<===>>>????@@@@AABBBBCCCCDDEEEEFFFFGGGGHHIIIIJJJJKKKLLLMMMMNNNOOOOPPPQQQRRRRSSSTTTUUUUVVVVWWXXXXYYYYZZZZ[[\\\\]]]]^^^^^^]]]]\\\[[[ZZZZYYYXXXXWWWVVVUUUUTTTTSSRRRRQQQQPPOOOONNNNMMMMLLKKKKJJJJIIIHHHGGGGFFFEEEEDDDCCCBBBBAAA@@@????>>>>==<<<<;;;;::::99888877776666655444433332221110000///...----,,,++++***)))((((''''&&%%%%$$$$$####""!!!! 
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+  !!!!"""###$$$$$%%%%&&&'''(((())))**++++,,,,----..////00001122223333444555666667777888999::::;;;<<<<===>>>????@@@@AABBBBCCCCDDEEEEFFFFGGGGHHIIIIJJJJKKKLLLMMMMNNNOOOOPPPQQQRRRRSSSTTTUUUUVVVVWWXXXXYYYYZZZZ[[\\\\]]]]^^^^^^]]]]\\\[[[ZZZZYYYXXXXWWWVVVUUUUTTTTSSRRRRQQQQPPOOOONNNNMMMMLLKKKKJJJJIIIHHHGGGGFFFEEEEDDDCCCBBBBAAA@@@????>>>>==<<<<;;;;:::::9988887777666655444433332221110000///...----,,,++++***)))(((('''''&&&%%%$$$$####""!!!! 
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+  !!!!"""###$$$$%%%%&&'''''(((())))**++++,,,,----..////0000112222333344455566667778888999:::::;;;<<<<===>>>????@@@@AABBBBCCCCDDEEEEFFFFGGGGHHIIIIJJJJKKKLLLMMMMNNNOOOOPPPQQQRRRRSSSTTTUUUUVVVVWWXXXXYYYYZZZZ[[\\\\]]]]^^^^^^]]]]\\\[[[ZZZZYYYXXXXWWWVVVUUUUTTTTSSRRRRQQQQPPOOOONNNNMMMMLLKKKKJJJJIIIHHHGGGGFFFEEEEDDDCCCBBBBAAA@@@?????>>>>===<<<;;;;::::9988887777666655444433332221110000///...----,,,++++****))))(((''''&&&%%%$$$$####""!!!! 
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+  !!!!"""###$$$$%%%%&&''''(((())))***++++,,,,----..////0000112222333344455566667778888999:::;;;;<<<<==>>>>?????@@@@AABBBBCCCCDDEEEEFFFFGGGGHHIIIIJJJJKKKLLLMMMMNNNOOOOPPPQQQRRRRSSSTTTUUUUVVVVWWXXXXYYYYZZZZ[[\\\\]]]]^^^^^^]]]]\\\[[[ZZZZYYYXXXXWWWVVVUUUUTTTTSSRRRRQQQQPPOOOONNNNMMMMLLKKKKJJJJIIIHHHGGGGFFFEEEEDDDCCCCCBBBAAA@@@@???>>>>===<<<;;;;::::9988887777666655444433332221110000///...-----,,,,+++***))))(((''''&&&%%%$$$$#####"""!!! 
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+  !!!!""#####$$$$%%%%&&''''(((())))**++++,,,,-----..////0000112222333344455566667778888999:::;;;;<<<<==>>>>????@@@@AABBBBCCCCCDDEEEEFFFFGGGGHHIIIIJJJJKKKLLLMMMMNNNOOOOPPPQQQRRRRSSSTTTUUUUVVVVWWXXXXYYYYZZZZ[[\\\\]]]]^^^^^^]]]]\\\[[[ZZZZYYYXXXXWWWVVVUUUUTTTTSSRRRRQQQQPPOOOONNNNMMMMLLKKKKJJJJIIIIIHHGGGGFFFFEEEDDDCCCCBBBAAA@@@@???>>>>===<<<;;;;::::99888877776666554444333322211110000////..----,,,,+++***))))(((''''&&&%%%%%$$$####"""!!!   !!!!""####$$$$%%%%%&&''''(((())))**++++,,,,---...////00011112222333344455566667778888999:::;;;;<<<<==>>>>????@@@@AABBBBCCCCDDEEEEFFFFGGGHHHIIIIIJJJJKKKLLLMMMMNNNOOOOPPPQQQRRRRSSSTTTUUUUVVVVWWXXXXYYYYZZZZ[[\\\\]]]]^^^^^^]]]]\\\[[[ZZZZYYYXXXXWWWVVVUUUUTTTTSSRRRRQQQQPPOOOONNNNNMMMMLLKKKKJJJJIIIIHHGGGGFFFFEEEDDDCCCCBBBAAA@@@@???>>>>===<<<;;;;::::99888877776666554444433332222110000////..----,,,,+++***))))((((('''&&&%%%%$$$####"""!!!   !!!!""####$$$$%%%%&&''''((((())))**++++,,,,---...////00011122223334444455566667778888999:::;;;;<<<<==>>>>????@@@@AABBBBCCCCDDEEEEFFFFGGGHHHIIIIJJJKKKKLLLMMMNNNNNOOOOPPPQQQRRRRSSSTTTUUUUVVVVWWXXXXYYYYZZZZ[[\\\\]]]]^^^^^^]]]]\\\[[[ZZZZYYYXXXXWWWVVVUUUUTTTTSSSSRRRQQQQPPPOOONNNNMMMMLLKKKKJJJJIIIIHHGGGGFFFFEEEDDDCCCCBBBAAA@@@@???>>>>===<<<;;;;::::99888887777666655444433332222110000////..----,,,,+++****))))(((('''&&&%%%%$$$####""""!!!!   !!!!"""####$$$$%%%%&&''''(((()))****++++,,,,---...////00011122223334444555666777788888999:::;;;;<<<<==>>>>????@@@@AABBBBCCCCDDEEEEFFFFGGGHHHIIIIJJJKKKKLLLMMMNNNNOOOOPPQQQQRRRRSSSSTTTUUUUVVVVWWXXXXYYYYZZZZ[[\\\\]]]]^^^^^^]]]]\\\[[[ZZZZYYYYYXXXWWWVVVVUUUTTTTSSSRRRQQQQPPPOOONNNNMMMMLLKKKKJJJJIIIIHHGGGGFFFFEEEDDDCCCCBBBAAA@@@@???>>>>===<<<;;;;;::::9998887777666655444433332222110000////..-----,,,,++++**))))(((('''&&&%%%%$$$$$###"""!!!!   !!!!""####$$$$$%%%%&&''''(((()))***++++,,,-----...////000111222233344445556667777888899::::;;;;;<<<<==>>>>????@@@@AABBBBCCCCDDEEEEFFFFGGGHHHIIIIJJJKKKKLLLMMMNNNNOOOOPPQQQQRRRRSSTTTTUUUUVVVVWWXXXXYYYYYZZZZ[[\\\\]]]]^^^^^^^]]]]\\\\[[ZZZZYYYYXXXWWWVVVVUUUTTTTSSSRRRQQQQPPPOOONNNNMMMMLLKKKKJJJJIIIIHHGGGGFFFFEEEDDDCCCCBBBAAA@@@@?????>>>===<<<<;;;::::99988877776666554444333322221100000////..----,,,,++++**))))(((('''''&&%%%%$$$$###"""!!!!!   !!!!!""####$$$$%%%&&&'''''(((()))***++++,,,----...///00000111222233344445556667777888899::::;;;;<<<<==>>>>?????@@@@AABBBBCCCCDDEEEEFFFFGGGHHHIIIIJJJKKKKLLLMMMNNNNOOOOPPQQQQRRRRSSTTTTUUUUVVVVWWXXXXYYYYZZZ[[[\\\\]]]^^^^^^^^^]]]]\\\\[[ZZZZYYYYXXXWWWVVVVUUUTTTTSSSRRRQQQQPPPOOONNNNMMMMLLKKKKJJJJIIIIHHGGGGFFFFEEEDDDCCCCCBBBBAA@@@@????>>>===<<<<;;;::::99988877776666554444333332222110000////..----,,,,++++**)))))((((''''&&%%%%$$$$#####""!!!!   !!!"""#####$$$$%%%&&&''''((()))))***++++,,,----...///00001112223333344445556667777888899::::;;;;<<<<==>>>>????@@@AAABBBBCCCCCDDEEEEFFFFGGGHHHIIIIJJJKKKKLLLMMMNNNNOOOOPPQQQQRRRRSSTTTTUUUUVVVVWWXXXXYYYYZZZ[[[\\\\]]]^^^^_^^^^]]]]\\\\[[ZZZZYYYYXXXWWWVVVVUUUTTTTSSSRRRQQQQPPPOOONNNNMMMMLLKKKKJJJJIIIIHHGGGGGFFFFEEEEDDCCCCBBBBAA@@@@????>>>===<<<<;;;::::99988877776666655544433332222110000////..----,,,,,++++**))))((((''''&&%%%%%$$$$####""!!!!   !!!"""####$$$%%%%%&&&''''((())))***+++,,,,,----...///00001112223333444455666667777888899::::;;;;<<<<==>>>>????@@@AAABBBBCCCDDDEEEEFFFGGGGGHHHIIIIJJJKKKKLLLMMMNNNNOOOOPPQQQQRRRRSSTTTTUUUUVVVVWWXXXXYYYYZZZ[[[\\\\]]]^^^^_^^^^]]]]\\\\[[ZZZZYYYYXXXWWWVVVVUUUTTTTSSSRRRQQQQPPPOOONNNNMMMMLLKKKKKJJJJIIIIHHGGGGFFFFEEEEDDCCCCBBBBAA@@@@????>>>===<<<<;;;::::99998888777666655544433332222110000////....---,,,,++++**))))(((('''''&&%%%%$$$$####"""!!!!   !!!!""""####$$$%%%%&&&'''''((())))***+++,,,,----....///00001112223333444455666677778888999::::;;;;<<<<==>>>>????@@@AAABBBBCCCDDDEEEEFFFGGGGHHHIIIJJJJKKKKKLLLMMMNNNNOOOOPPQQQQRRRRSSTTTTUUUUVVVVWWXXXXYYYYZZZ[[[\\\\]]]^^^^_^^^^]]]]\\\\[[ZZZZYYYYXXXWWWVVVVUUUTTTTSSSRRRQQQQPPPPOOOONNNMMMMLLLKKKJJJJIIIIHHGGGGFFFFEEEEDDCCCCBBBBAA@@@@????>>>===<<<<<;;;;:::99988887776666555444333322221111000////...---,,,,++++**)))))((((''''&&%%%%$$$$$####""!!!!  !!!!"""###$$$$$%%%%&&&'''(((()))))***+++,,,,----..////00001111222333344445566667777888899::::;;;;<<<<<==>>>>????@@@AAABBBBCCCDDDEEEEFFFGGGGHHHIIIJJJJKKKKLLMMMMNNNNOOOOPPPQQQQRRRRSSTTTTUUUUVVVVWWXXXXYYYYZZZ[[[\\\\]]]^^^^_^^^^]]]]\\\\[[ZZZZYYYYXXXWWWVVVVUUUTTTTTSSSRRRRQQQPPPOOOONNNMMMMLLLKKKJJJJIIIIHHGGGGFFFFEEEEDDCCCCBBBBAA@@@@@????>>>>==<<<<;;;;:::99988887776666555444333332222111000////...---,,,,+++++***)))((((''''&&%%%%%$$$$####""!!!!!  !!!!!"""###$$$$%%%%%&&&'''(((())))**+++++,,,,----..////00001122223333344445566667777888899::::;;;;<<<===>>>>???@@@@@AAABBBBCCCDDDEEEEFFFGGGGHHHIIIJJJJKKKKLLMMMMNNNNOOOOPPQQQQRRRRSSTTTTTUUUUVVVVWWXXXXYYYYZZZ[[[\\\\]]]^^^^_^^^^]]]]\\\\[[ZZZZYYYYYXXXXWWVVVVUUUUTTTSSSRRRRQQQPPPOOOONNNMMMMLLLKKKJJJJIIIIHHGGGGFFFFEEEEDDCCCCCBBBBAA@@@@????>>>>==<<<<;;;;:::99988887776666655544443332222111000////...-----,,,++++***)))(((('''''&&&%%%$$$$#####"""!!!  !!!!""#####$$$$%%%%&&'''''(((())))**++++,,,,-----..////00001122223333444455666667777888899::::;;;;<<<===>>>>???@@@@AAABBBCCCCCDDDEEEEFFFGGGGHHHIIIJJJJKKKKLLMMMMNNNNOOOOPPQQQQRRRRSSTTTTUUUUVVVWWWXXXXYYYYYZZZ[[[\\\\]]]^^^^_^^^^^]]]]\\\\[[ZZZZYYYYXXXXWWVVVVUUUUTTTSSSRRRRQQQPPPOOOONNNMMMMLLLKKKJJJJIIIIHHGGGGGFFFFEEEEDDCCCCBBBBAA@@@@????>>>>==<<<<;;;;:::9999888877776665554444333222211100000///...----,,,++++***)))))(((''''&&&%%%%%$$$####"""!!!!!  !!!!!""####$$$$%%%%%&&''''(((()))))**++++,,,,----..////000001122223333444455666677778889999::::;;;;<<<===>>>>???@@@@AAABBBCCCCDDDEEEFFFFGGGGGHHHIIIJJJJKKKKLLMMMMNNNNOOOOPPQQQQRRRRSSTTTTUUUUVVVWWWXXXXYYYZZZZ[[[\\\]]]]^^^^^___^^^]]]]\\\\[[ZZZZYYYYXXXXWWVVVVUUUUTTTSSSRRRRQQQPPPOOOONNNMMMMLLLKKKJJJJJIIIIHHHGGGFFFFEEEEDDCCCCBBBBAA@@@@????>>>>==<<<<<;;;;::::99888877776665554444333222221110000///...----,,,+++++***))))((('''''&&&%%%%$$$#####"""!!!!  !!!!""#####$$$$%%%%&&'''''(((())))**+++++,,,,----..////00001122222333344445566667777888999::::;;;<<<<<===>>>>???@@@@AAABBBCCCCDDDEEEFFFFGGGGHHIIIIJJJJJKKKKLLMMMMNNNNOOOOPPQQQQRRRRSSTTTTUUUUVVVWWWXXXXYYYZZZZ[[[\\\]]]]^^^^____^^^]]]]\\\\[[ZZZZYYYYXXXXWWVVVVUUUUTTTSSSRRRRQQQPPPOOOONNNNNMMMLLLKKKKJJJIIIIHHHGGGFFFFEEEEDDCCCCBBBBAA@@@@?????>>>>==<<<<;;;;::::99888877776665555444433332221110000///...-----,,,,+++***))))((((('''&&&%%%%$$$$$###"""!!!!!  !!!!!""####$$$$$%%%%&&''''((((())))**++++,,,,-----..////00001122223333444555566667777888999::::;;;<<<<===>>>?????@@@@AAABBBCCCCDDDEEEFFFFGGGGHHIIIIJJJJKKKKLLMMMMNNNNNOOOOPPQQQQRRRRSSTTTTUUUUVVVWWWXXXXYYYZZZZ[[[\\\]]]]^^^^____^^^]]]]\\\\[[ZZZZYYYYXXXXWWVVVVUUUUTTTSSSRRRRRQQQQPPOOOONNNNMMMLLLKKKKJJJIIIIHHHGGGFFFFEEEEDDCCCCBBBBBAAA@@@????>>>>==<<<<;;;;::::998888777776666554444333322211100000////..----,,,,+++****))))(((('''&&&&%%%%$$$$#####""!!!!  !!!"""#####$$$$%%%&&&&''''(((()))****++++,,,,---...////000001122223333444555666677777888999::::;;;<<<<===>>>????@@@@AABBBBBCCCCDDDEEEFFFFGGGGHHIIIIJJJJKKKKLLMMMMNNNNOOOPPPQQQQRRRRRSSTTTTUUUUVVVWWWXXXXYYYZZZZ[[[\\\]]]]^^^^____^^^]]]]\\\\[[ZZZZYYYYXXXXWWVVVVVUUUUTTTTSSRRRRQQQQPPOOOONNNNMMMLLLKKKKJJJIIIIHHHGGGFFFFEEEEEDDDCCCBBBBAAA@@@????>>>>==<<<<;;;;:::::99888877776666554444333322222110000////..----,,,,,++++**))))(((((''''&&%%%%$$$$$####""!!!!!  !!!!!"""####$$$$$%%%&&&''''((((()))***++++,,,,,---...////00011122222333344455566667778888999:::::;;;<<<<===>>>????@@@@AABBBBCCCCDDEEEEEFFFFGGGGHHIIIIJJJJKKKKLLMMMMNNNNOOOPPPQQQQRRRSSSTTTTUUUVVVVVWWWXXXXYYYZZZZ[[[\\\]]]]^^^^____^^^]]]]\\\\[[ZZZZZYYYYXXXXWWVVVVUUUUTTTTSSRRRRQQQQPPOOOONNNNMMMLLLKKKKJJJIIIIHHHHGGGGFFFEEEEDDDCCCBBBBAAA@@@????>>>>==<<<<<;;;;::::99888877776666554444433332222110000////...----,,,,++++**)))))((((''''&&%%%%%$$$$#####""!!!!  !!!!"""#####$$$%%%%%&&&''''((()))))***++++,,,----....////00011122223334444455566667778888999:::;;;;<<<<<===>>>????@@@@AABBBBCCCCDDEEEEFFFFGGGGHHHIIIIJJJJKKKKLLMMMMNNNNOOOPPPQQQQRRRSSSTTTTUUUVVVVWWWXXXYYYYZZZZZ[[[\\\]]]]^^^^____^^^^^]]]\\\\[[[ZZZYYYYXXXXWWVVVVUUUUTTTTSSRRRRQQQQPPOOOONNNNMMMLLLKKKKKJJJJIIIHHHGGGGFFFEEEEDDDCCCBBBBAAA@@@?????>>>>===<<<;;;;::::998888777776666554444333322221100000////..----,,,,+++++**))))(((('''''&&%%%%$$$$$####""!!!!!  !!!!!"""###$$$$$%%%%&&&'''''((())))***+++++,,,----...///0000011122223334444555666777778888999:::;;;;<<<<==>>>>?????@@@@AABBBBCCCCDDEEEEFFFFGGGGHHIIIIJJJJKKKKKLLMMMMNNNNOOOPPPQQQQRRRSSSTTTTUUUVVVVWWWXXXYYYYZZZZ[[\\\\]]]]^^^^^_____^^^^]]]\\\\[[[ZZZYYYYXXXXWWVVVVUUUUTTTTSSRRRRQQQQPPOOOOONNNNMMMMLLKKKKJJJJIIIHHHGGGGFFFEEEEDDDCCCBBBBBAAA@@@@???>>>>===<<<;;;;::::999988877776666554444333322222110000////..-----,,,,++++**)))))((((''''&&%%%%%$$$$#####"""!!!  !!!!""#####$$$$%%%%%&&&'''(((()))))***+++,,,,-----...///0000111222223334444555666777788889999:::;;;;<<<<==>>>>????@@@@AABBBBBCCCCDDEEEEFFFFGGGGHHIIIIJJJJKKKLLLMMMMNNNOOOOOPPPQQQQRRRSSSTTTTUUUVVVVWWWXXXYYYYZZZZ[[\\\\]]]]^^^^__`___^^^^]]]\\\\[[[ZZZYYYYXXXXWWVVVVUUUUTTTTSSRRRRRQQQQPPOOOONNNNMMMMLLKKKKJJJJIIIHHHGGGGFFFEEEEEDDDCCCCBBBAAA@@@@???>>>>===<<<;;;;;::::99988877776666554444433332222110000/////...---,,,,+++++***)))(((('''''&&&%%%$$$$$####""""!!!!  !!!!"""####$$$$$%%%%&&'''''(((())))**+++++,,,,----../////00001112223333444445556667777888899::::;;;;;<<<<==>>>>????@@@@AABBBBCCCCDDEEEEEFFFFGGGGHHIIIIJJJJKKKLLLMMMMNNNOOOOPPPQQQRRRRRSSSTTTTUUUVVVVWWWXXXYYYYZZZZ[[\\\\]]]]^^^^__`___^^^^]]]\\\\[[[ZZZYYYYXXXXWWVVVVUUUUUTTTTSSRRRRQQQQPPOOOONNNNMMMMLLKKKKJJJJIIIHHHHGGGGFFFFEEEDDDCCCCBBBAAA@@@@???>>>>>===<<<<;;;::::999888777776666555444333322221111000////...---,,,,,++++***)))))(((''''&&&&%%%%$$$#####"""!!!!!  !!!!!""#####$$$$%%%%&&&''''(((()))))**++++,,,,,----..////000011112223333444455666677777888899::::;;;;<<<<==>>>>>????@@@@AABBBBCCCCDDEEEEFFFFGGGHHHHIIIIJJJJKKKLLLMMMMNNNOOOOPPPQQQRRRRSSSTTTUUUUUVVVVWWWXXXYYYYZZZZ[[\\\\]]]]^^^^__`___^^^^]]]\\\\[[[ZZZYYYYYXXXXWWWVVVUUUUTTTTSSRRRRQQQQPPOOOONNNNMMMMLLKKKKKJJJJIIIIHHGGGGFFFFEEEDDDCCCCBBBAAA@@@@@????>>>===<<<<;;;::::999988887776666555444333332222111000////....----,,,++++****))))((('''''&&&%%%%$$$$$###""""!!!!  !!!""""####$$$$$%%%%&&'''''(((())))***++++,,,,----...////000011222233333444455666677778888999::::;;;;<<<<==>>>>????@@@@@AABBBBCCCCDDEEEEFFFFGGGHHHIIIIJJJKKKKKLLLMMMMNNNOOOOPPPQQQRRRRSSSTTTUUUUVVVVWWXXXXYYYYYZZZZ[[\\\\]]]]^^^^__`___^^^^]]]]]\\\[[[ZZZZYYYXXXXWWWVVVUUUUTTTTSSRRRRQQQQPPOOOONNNNNMMMMLLKKKKJJJJIIIIHHGGGGFFFFEEEDDDCCCCCBBBBAA@@@@????>>>===<<<<;;;;;:::9998888777666655554444333222211100000///...----,,,,,+++***)))))(((('''&&&&%%%%$$$$$####""!!!!!  !!!!!"""####$$$$$%%%&&&&''''(((()))))**++++,,,,,----..////000001122223333444455566667777888899::::;;;;;<<<<==>>>>????@@@AAABBBBCCCCCDDEEEEFFFFGGGHHHIIIIJJJKKKKLLLMMMNNNNNOOOOPPPQQQRRRRSSSTTTUUUUVVVVWWXXXXYYYYZZZZ[[\\\\]]]]]^^^^__```__^^^^]]]]\\\[[[ZZZZYYYXXXXWWWVVVUUUUTTTTSSRRRRQQQQQPPPOOONNNNMMMMLLKKKKJJJJIIIIHHGGGGFFFFFEEEEDDCCCCBBBBAA@@@@????>>>====<<<<;;;;:::9998888777776665554444333222221110000///...-----,,,,+++****))))(((('''''&&%%%%%$$$$#####""!!!!!  !!!!!"""#####$$$%%%%%&&&'''''(((()))****++++,,,,-----..////000011222223333444455666677777888899::::;;;;<<<====>>>>????@@@AAABBBBCCCDDDEEEEFFFFFGGGHHHIIIIJJJKKKKLLLMMMNNNNOOOOPPQQQQQRRRRSSSTTTUUUUVVVVWWXXXXYYYYZZZZ[[\\\\]]]]^^^___````__^^^^]]]]\\\[[[ZZZZYYYXXXXWWWVVVUUUUTTTTTSSSRRRQQQQPPPOOONNNNMMMMLLKKKKJJJJIIIIHHHGGGGFFFFEEEEDDCCCCBBBBAA@@@@@????>>>>==<<<<;;;;:::9999888877776665554444433332221110000/////..----,,,,,++++**)))))((((''''&&&%%%%$$$$$####""""!!!!!  !!!!!""""###$$$$$%%%%&&&&''''((()))))***++++,,,,,---.../////000011222233334444455666677778889999::::;;;;<<<===>>>>???@@@@@AAABBBBCCCDDDEEEEFFFGGGGHHHHIIIIJJJKKKKLLLMMMNNNNOOOOPPQQQQRRRRSSTTTTTUUUUVVVVWWXXXXYYYYZZZZ[[\\\\]]]]^^^___````__^^^^]]]]\\\[[[ZZZZYYYXXXXWWWWVVVVUUUTTTTSSSRRRQQQQPPPOOONNNNMMMMLLKKKKKJJJJIIIIHHGGGGFFFFEEEEDDCCCCBBBBBAA@@@@????>>>>==<<<<;;;;;::::998888777766666554444333322211110000////..-----,,,,++++***))))(((((''''&&%%%%%$$$$#####""""!!!!  !!!!"""#####$$$$%%%%%&&&'''((((())))****++++,,,-----...////000111122223333444555666667777888999::::;;;;;<<<===>>>>???@@@@AAABBBBBCCCDDDEEEEFFFGGGGHHHIIIJJJJKKKKKLLLMMMNNNNOOOOPPQQQQRRRRSSTTTTUUUUVVVVWWWXXXXYYYYZZZZ[[\\\\]]]]^^^___````__^^^^]]]]\\\[[[ZZZZZYYYYXXXWWWVVVVUUUTTTTSSSRRRQQQQPPPOOONNNNNMMMMLLLKKKJJJJIIIIHHGGGGFFFFEEEEEDDCCCCBBBBAA@@@@????>>>>===<<<<;;;;::::998888777776666554444333332222110000/////..----,,,,,++++**)))))(((('''''&&&%%%%%$$$#####"""!!!!!  !!!!!""#####$$$$%%%%%&&'''''(((()))))***+++,,,,,----.../////000111222233333444555666677777888999::::;;;<<<<====>>>>???@@@@AAABBBCCCCDDDEEEEEFFFGGGGHHHIIIJJJJKKKKLLMMMMNNNNNOOOOPPQQQQRRRRSSTTTTUUUUVVVVWWXXXXYYYYZZZZZ[[\\\\]]]]^^^___````__^^^^^]]]]\\\\[[ZZZZYYYYXXXWWWVVVVUUUTTTTSSSRRRQQQQQPPPOOOONNNMMMMLLLKKKJJJJIIIIHHGGGGGFFFFEEEEDDCCCCBBBBAA@@@@?????>>>>==<<<<;;;;:::::998888777766665554444333322221110000////..-----,,,,+++++***)))(((((''''&&&&%%%%$$$$$#####""!!!!!  !!!!!"""#####$$$$$%%%%&&&''''((((())))**+++++,,,,-----...///0000111122223334444555566667778888999:::::;;;<<<<===>>>?????@@@@AAABBBCCCCDDDEEEFFFFGGGGGHHHIIIJJJJKKKKLLMMMMNNNNOOOOPPQQQQQRRRRSSTTTTUUUUVVVVWWXXXXYYYYZZZ[[[\\\\]]]^^^^^___`````__^^^^]]]]\\\\[[ZZZZYYYYXXXWWWVVVVUUUTTTTTSSSRRRRQQQPPPOOOONNNMMMMLLLKKKJJJJJIIIIHHHGGGFFFFEEEEDDCCCCBBBBBAAA@@@????>>>>==<<<<;;;;;::::998888777776666554444333322222110000/////...---,,,,,++++***)))))((('''''&&&%%%%%$$$$$####"""!!!!!  !!!!!""""####$$$$$%%%%%&&'''''(((()))))**++++,,,,,----../////0000111222223334444555666777778888999:::;;;;;<<<<===>>>????@@@@AABBBBBCCCCDDDEEEFFFFGGGGHHIIIIJJJJJKKKKLLMMMMNNNNOOOOPPQQQQRRRRSSTTTTTUUUUVVVVWWXXXXYYYYZZZ[[[\\\\]]]^^^^___``````__^^^^]]]]\\\\[[ZZZZYYYYXXXWWWVVVVVUUUUTTTSSSRRRRQQQPPPOOOONNNMMMMLLLLKKKKJJJIIIIHHHGGGFFFFEEEEDDDDCCCBBBBAAA@@@????>>>>>===<<<;;;;::::9988888777766665544444333322221100000////...-----,,,+++++***))))((((('''''&&%%%%%$$$$#####""""!!!  !!!!""""#####$$$%%%%%&&&'''''((((())))**+++++,,,,-----..////00000111222333344444555666777788888999:::;;;;<<<<==>>>>>????@@@@AABBBBCCCCDDDDEEEFFFFGGGGHHIIIIJJJJKKKKLLLMMMMNNNNOOOOPPQQQQRRRRSSTTTTUUUUVVVVVWWXXXXYYYYZZZ[[[\\\\]]]^^^^___``````__^^^^]]]]\\\\[[ZZZZYYYYYXXXXWWVVVVUUUUTTTSSSRRRRQQQPPPOOOOONNNNMMMLLLKKKKJJJIIIIHHHGGGFFFFFEEEEDDDCCCBBBBAAA@@@@@???>>>>===<<<;;;;:::::999888777766666555444333322222111000/////...----,,,,,+++****))))(((((''''&&&%%%%$$$$$#####"""!!!!!  !!!!!""#####$$$$$%%%%&&&&''''((((()))****++++,,,,,----../////000011222223333444455666667777888899:::::;;;;<<<<==>>>>????@@@@@AABBBBCCCCDDEEEEFFFFFGGGGHHIIIIJJJJKKKKLLMMMMNNNNOOOOOPPQQQQRRRRSSTTTTUUUUVVVWWWXXXXYYYYYZZZ[[[\\\\]]]^^^^___``````__^^^^]]]]]\\\\[[ZZZZYYYYXXXXWWVVVVUUUUTTTSSSRRRRQQQQQPPOOOONNNNMMMLLLKKKKJJJIIIIIHHHGGGGFFFEEEEDDDCCCBBBBBAAA@@@@???>>>>===<<<<<;;;::::99988888777666655544444333222211100000///...-----,,,,+++++**)))))(((('''''&&%%%%%$$$$$#####"""!!!!!  !!!!!""#####$$$$$%%%%%&&&'''''((()))))***+++++,,,,-----..////0000011222233334444455666677778888899::::;;;;<<<<<==>>>>????@@@@AABBBBBCCCCDDEEEEFFFFGGGGHHIIIIIJJJJKKKKLLMMMMNNNNOOOPPPQQQQQRRRRSSTTTTUUUUVVVWWWXXXXYYYZZZZ[[[\\\]]]]]^^^^___```````___^^^]]]]\\\\[[ZZZZYYYYXXXXWWVVVVUUUUTTTTTSSRRRRQQQQPPOOOONNNNMMMLLLKKKKKJJJJIIIHHHGGGGFFFEEEEDDDDCCCCBBBAAA@@@@???>>>>>===<<<<;;;:::::9998888777666655554444333222221110000/////..----,,,,,++++***))))((((('''''&&&%%%%%$$$$$###""""!!!!!  !!!!!""""####$$$$$%%%%%&&'''''((((())))****++++,,,,,---.../////000011222223333444455566667777888899:::::;;;;<<<<==>>>>>????@@@@AABBBBCCCCDDDEEEEFFFFGGGGHHIIIIJJJJKKKKKLLMMMMNNNNOOOPPPQQQQRRRSSSTTTTTUUUUVVVWWWXXXXYYYZZZZ[[[\\\]]]]^^^^__`````````___^^^]]]]\\\\[[ZZZZYYYYXXXXWWWVVVVUUUUTTTTSSRRRRQQQQPPOOOONNNNNMMMMLLKKKKJJJJIIIHHHGGGGFFFFFEEEDDDCCCCBBBAAA@@@@@????>>>===<<<<;;;;;:::99988887777766655544443333322211100000////...----,,,,+++++**)))))(((((''''&&&&%%%%%$$$$#####"""!!!!!  !!!!!""""#####$$$$%%%%%&&&''''((((()))))***+++++,,,----....////0000011222233333444455666677777888899::::;;;;;<<<<==>>>>????@@@@@AABBBBCCCCDDEEEEFFFFFGGGGHHIIIIJJJJKKKLLLMMMMNNNNNOOOPPPQQQQRRRSSSTTTTUUUVVVVWWWWXXXXYYYZZZZ[[[\\\]]]]^^^^__````a````___^^^]]]]\\\\[[ZZZZZYYYYXXXXWWVVVVUUUUTTTTSSRRRRQQQQPPPOOOONNNNMMMMLLKKKKJJJJIIIIIHHGGGGFFFFEEEDDDCCCCBBBBBAA@@@@????>>>====<<<<;;;;:::99998888777766655554444333322222110000/////..-----,,,,+++++***)))))((('''''&&&&%%%%$$$$$#####""""!!!!!  !!!!!""""#####$$$$$%%%&&&&'''''(((()))))**+++++,,,,-----.../////0001112222233334445555666677778889999::::;;;;<<<====>>>>????@@@AAABBBBBCCCCDDEEEEFFFFGGGHHHIIIIIJJJJKKKLLLMMMMNNNOOOOPPPPQQQQRRRSSSTTTTUUUVVVVWWWXXXYYYYZZZZZ[[[\\\]]]]^^^^__````a````___^^^]]]]]\\\\[[[ZZZYYYYXXXXWWVVVVUUUUTTTTSSSRRRRQQQQPPOOOONNNNMMMMLLKKKKKJJJJIIIIHHGGGGFFFFEEEDDDDCCCCBBBBAA@@@@?????>>>>==<<<<;;;;;::::9988887777766665544443333322221110000////....---,,,,,++++****))))((((('''''&&%%%%%$$$$$#####""""!!!!!  !!!!!"""#####$$$$$%%%%%&&&'''''((((())))***++++,,,,,----....///00001111222233333444555666677777888999::::;;;;;<<<===>>>>?????@@@AAABBBBCCCDDDDEEEEFFFFGGGHHHIIIIJJJKKKKKLLLMMMMNNNOOOOPPPQQQRRRRSSSSTTTTUUUVVVVWWWXXXYYYYZZZZ[[\\\\]]]]]^^^^__````a`````___^^^^]]]\\\\[[[ZZZYYYYXXXXWWVVVVUUUUUTTTTSSRRRRQQQQPPOOOONNNNMMMMMLLKKKKJJJJIIIIHHGGGGFFFFFEEEEDDCCCCBBBBAAA@@@@????>>>>==<<<<<;;;;::::9988888777766665554444333322222110000/////...-----,,,+++++***)))))((((('''''&&%%%%%$$$$$#####""""!!!!!  !!!!!""""#####$$$$$%%%%%&&&'''''((((()))))**+++++,,,,-----../////00001112222233344445555666677788888999::::;;;<<<<<===>>>>???@@@@AAAABBBBCCCDDDEEEEFFFFFGGGHHHIIIIJJJKKKKLLLMMMMMNNNOOOOPPPQQQRRRRSSSTTTUUUUUVVVVWWWXXXYYYYZZZZ[[\\\\]]]]^^^^__`````aaa```___^^^^]]]\\\\[[[ZZZYYYYXXXXXWWWVVVUUUUTTTTSSRRRRQQQQPPOOOOONNNNMMMMLLKKKKJJJJIIIIIHHGGGGFFFFEEEEDDCCCCCBBBBAA@@@@????>>>>>==<<<<;;;;:::::9988887777766665544444333322221111000/////...----,,,,,+++++**)))))(((((''''&&&&%%%%%$$$$$#####"""!!!!!  !!!!!""""#####$$$$$%%%%%&&&&'''((((()))))***+++++,,,,,----../////00001111222333344444555666777778888999:::::;;;<<<<===>>>>>???@@@@AAABBBCCCCCDDDEEEEFFFGGGGHHHIIIIIJJJKKKKLLLMMMNNNNOOOOOPPPQQQRRRRSSSTTTUUUUVVVVWWXXXXXYYYYZZZZ[[\\\\]]]]^^^^__````aaaa```___^^^^]]]\\\\[[[ZZZZZYYYXXXXWWWVVVUUUUTTTTSSRRRRRQQQQPPPOOONNNNMMMMLLKKKKKJJJJIIIIHHGGGGFFFFEEEEEDDCCCCBBBBAA@@@@@????>>>>==<<<<<;;;;::::998888877776666555544433332222211100000///....----,,,,,++++***)))))(((('''''&&&&%%%%%$$$$$#####""""!!!!!  !!!!!""""#####$$$$$%%%%%&&&'''''(((()))))****++++,,,,,---....////000001122222333344445555666777788888999:::;;;;<<<<<===>>>????@@@@@AAABBBCCCCDDDEEEEEFFFGGGGHHHIIIJJJJKKKKKLLLMMMNNNNOOOOPPQQQQRRRRRSSSTTTUUUUVVVVWWXXXXYYYYZZZZZ[[\\\\]]]]^^^^__````aaaa```___^^^^]]]]]\\\[[[ZZZZYYYXXXXWWWVVVUUUUTTTTTSSSRRRQQQQPPPOOONNNNMMMMMLLLKKKJJJJIIIIHHGGGGGFFFFEEEEDDCCCCBBBBBAAA@@@????>>>>>===<<<;;;;:::::99988877777666655544444333222211110000/////..-----,,,,+++++****)))((((('''''&&&&%%%%%$$$$$#####""""!!!!!  !!!!!"""#####$$$$$%%%%%&&&&'''''((((())))****+++++,,,-----.../////0000111222233334444455666677777888899:::::;;;;<<<<==>>>>>????@@@@AABBBBBCCCCDDDEEEFFFFGGGGGHHHIIIJJJJKKKKLLMMMMMNNNNOOOOPPQQQQRRRRSSTTTTTUUUUVVVVWWXXXXYYYYZZZZ[[\\\\]]]]]^^^^__````aaaa`````__^^^^]]]]\\\[[[ZZZZYYYXXXXWWWWVVVVUUUTTTTSSSRRRQQQQPPPOOOOONNNMMMMLLLKKKJJJJIIIIIHHHGGGFFFFEEEEDDDDCCCBBBBAAA@@@?????>>>>===<<<;;;;;::::999888887776666555544443333322211100000////...----,,,,,+++++***)))))((((('''''&&%%%%%%$$$$$#####""""!!!!!!  !!!!!!""""#####$$$$$%%%%%%&&&'''''((((()))))**+++++,,,,,----....////00000112222333334444555666677778888899::::;;;;;<<<<==>>>>?????@@@@AABBBBCCCCDDDDEEEFFFFGGGGHHIIIIIJJJJKKKKLLMMMMNNNNOOOOOPPQQQQRRRRSSTTTTUUUUVVVVWWWXXXXYYYYZZZZ[[\\\\]]]]^^^___`````aaaaa````__^^^^]]]]\\\[[[ZZZZYYYYYXXXWWWVVVVUUUTTTTSSSRRRQQQQQPPPOOOONNNMMMMLLLKKKKKJJJIIIIHHHGGGFFFFFEEEEDDDCCCBBBBAAAA@@@@???>>>>====<<<<;;;:::::999888877777666555444443333222221100000////..-----,,,,,+++++***)))))((((('''''&&%%%%%%%$$$$$#####"""!!!!!!!  !!!!!!""""#####$$$$$%%%%%%&&&'''''((((()))))**+++++,,,,,-----...///000001112222233334444455666677777888899:::::;;;;<<<<===>>>>????@@@@AAABBBBCCCCDDEEEEFFFFFGGGGHHIIIIJJJJKKKKKLLMMMMNNNNOOOOPPQQQQQRRRRSSTTTTUUUUVVVVWWXXXXYYYYYZZZZ[[\\\\]]]]^^^___````aaaaaa````__^^^^]]]]\\\\\[[ZZZZYYYYXXXWWWVVVVUUUTTTTTSSSRRRRQQQPPPOOOONNNMMMMMLLLKKKKJJJIIIIHHHGGGGGFFFEEEEDDDCCCCCBBBAAA@@@@?????>>>===<<<<;;;;;:::999888887777666665544443333322221110000/////...-----,,,,,+++****)))))((((('''''&&&%%%%%$$$$$$#####""""!!!!!!  !!!!!!""""#####$$$$$$%%%%%&&'''''((((()))))****++++,,,,,-----../////000011112222333334445556666677778888899::::;;;;;<<<<==>>>>?????@@@@AABBBBCCCCCDDEEEEFFFFGGGGGHHIIIIJJJJKKKKLLMMMMMNNNNOOOOPPQQQQRRRRSSTTTTTUUUUVVVVWWXXXXYYYYZZZ[[[\\\\\]]]]^^^___````aaaaaa````__^^^^^]]]]\\\\[[ZZZZYYYYXXXWWWVVVVVUUUUTTTSSSRRRRQQQPPPOOOOONNNNMMMLLLKKKKJJJJJIIIHHHGGGGFFFEEEEEDDDCCCCBBBAAA@@@@@????>>>====<<<<;;;;:::::99888877777666655444443333222221100000////....-----,,,,+++++***))))(((((''''''&&&%%%%%%$$$$$#####"""""!!!!!!  !!!!!!"""""#####$$$$$%%%%%%%&&''''''((((())))****+++++,,,,-----...////000001112222233344444555666677777888999:::::;;;;<<<====>>>>????@@@@@AABBBBCCCCDDEEEEEFFFFGGGGHHIIIIJJJJJKKKKLLMMMMNNNNOOOOOPPQQQQRRRRSSTTTTUUUUVVVVVWWXXXXYYYYZZZ[[[\\\\]]]^^^^^___````aaaaaaa````__^^^^]]]]\\\\[[ZZZZYYYYYXXXXWWVVVVUUUUTTTSSSRRRRRQQQQPPOOOONNNNMMMLLLKKKKKJJJJIIIHHHGGGGGFFFFEEEDDDCCCCBBBBBAA@@@@?????>>>>==<<<<;;;;;::::99888887777666665544443333322221111000/////....----,,,,,+++++**)))))((((('''''&&&&%%%%%%$$$$$#######"""!!!!!!!  !!!!!!""""######$$$$$%%%%%%&&&&'''''((((()))))***+++++,,,,,---..../////000011112223333344445556666677788888999::::;;;;;<<<===>>>>?????@@@AAABBBBBCCCCDDEEEEFFFFGGGGGHHIIIIJJJJKKKKKLLMMMMNNNNOOOPPPQQQQRRRRRSSTTTTUUUUVVVWWWXXXXYYYYYZZZ[[[\\\\]]]^^^^___```aaaaaaaaa````__^^^^]]]]\\\\[[[ZZZZYYYYXXXXWWVVVVUUUUTTTTTSSRRRRQQQQPPOOOONNNNNMMMMLLKKKKJJJJIIIIIHHGGGGFFFFEEEDDDDCCCCBBBBAA@@@@@????>>>>===<<<<;;;;:::::998888777776666555544433333222211110000/////..-----,,,,,+++++***)))))((((('''''&&&%%%%%%%$$$$$######""""!!!!!!  !!!!!!""""######$$$$$%%%%%%&&&&'''''((((()))))**+++++,,,,,-----.../////000011122223333344445555666777778888999:::::;;;<<<<====>>>>???@@@@@AAABBBBCCCDDDDEEEEFFFFGGGHHHIIIIIJJJJKKKLLLMMMMNNNNNOOOPPPQQQQRRRSSSTTTTTUUUUVVVWWWXXXXYYYZZZZ[[[[\\\\]]]^^^^___```aaaabaaaa````__^^^^]]]]]\\\\[[ZZZZYYYYXXXXWWVVVVVUUUUTTTTSSRRRRQQQQPPPOOOONNNNMMMMLLKKKKJJJJJIIIIHHGGGGFFFFFEEEEDDCCCCBBBBBAA@@@@????>>>>>==<<<<;;;;;::::9988888777766666555444443332222211100000/////..-----,,,,,++++****)))))((((('''''&&&&%%%%%%$$$$$######"""""!!!!!!  !!!!!!"""""#######$$$$$%%%%%%&&&&'''''((((()))))***++++,,,,,-----.../////0000011222223333444445566666777788888999:::;;;;;<<<<===>>>>>???@@@@AAABBBBBCCCDDDEEEEFFFFFGGGHHHIIIIJJJJJKKKLLLMMMMNNNOOOOPPPPQQQQRRRSSSTTTTUUUVVVVVWWWXXXXYYYZZZZ[[[\\\]]]]]^^^^___```aaaabaaaa`````___^^^]]]]\\\\[[ZZZZYYYYXXXXXWWVVVVUUUUTTTTSSRRRRRQQQQPPOOOONNNNMMMMLLLKKKKJJJJIIIIHHHGGGGFFFFEEEEDDCCCCCBBBBAA@@@@@????>>>>====<<<;;;;:::::9998887777766665555444433333222111100000////....-----,,,+++++****)))))((((('''''&&&&%%%%%%$$$$$$#######"""!!!!!!!  !!!!!!""""######$$$$$$%%%%%%%&&&'''''((((()))))****+++++,,,,-----....///0000011112222333334444555666677777888899:::::;;;;<<<<====>>>????@@@@@AAABBBCCCCCDDDEEEEFFFGGGGHHHHIIIIJJJKKKKLLLLMMMMNNNOOOOPPPQQQRRRRRSSSTTTTUUUVVVVWWWXXXXXYYYZZZZ[[[\\\]]]]^^^^__`````aaaabbbaaa````___^^^]]]]\\\\[[ZZZZZYYYYXXXXWWVVVVUUUUTTTTTSSRRRRQQQQPPOOOONNNNNMMMMLLKKKKJJJJJIIIIHHGGGGFFFFEEEEEDDCCCCBBBBBAAA@@@????>>>>>===<<<;;;;;::::9999888877777666555444443333322221110000/////....----,,,,,+++++***)))))((((('''''''&&%%%%%%$$$$$$$######""""!!!!!!!  !!!!!!!!""""######$$$$$$%%%%%%&&&''''''((((()))))****+++++,,,,,----.../////0000111122223333344444556666777778888999::::;;;;;<<<<==>>>>>????@@@@AABBBBBCCCCDDDEEEEEFFFGGGGHHHIIIJJJJJKKKKLLLMMMNNNNNOOOOPPPQQQRRRRSSSTTTTTUUUVVVVWWWXXXYYYYZZZZZ[[[\\\]]]]^^^^__````aaaabbbbaaa````___^^^]]]]]\\\\[[[ZZZYYYYXXXXWWVVVVVUUUUTTTTSSRRRRQQQQPPPPOOONNNNMMMMLLKKKKKJJJJIIIIHHGGGGGFFFFEEEEDDCCCCCBBBBAAA@@@@@???>>>>====<<<<;;;:::::9998888877776666655444443333222221100000/////...-----,,,,,+++++****)))))(((((''''''&&&&%%%%%$$$$$$######"""""!!!!!!!!  !!!!!!!"""""#######$$$$$$%%%%%&&&&''''''((((()))))****+++++,,,,,-----../////0000011122222333444445556666677778888899:::::;;;;<<<<===>>>>????@@@@@AABBBBCCCCCDDDEEEFFFFGGGGGHHHIIIJJJJKKKKKLLLMMMNNNNOOOOPPPPQQQRRRRSSSTTTUUUUVVVVVWWWXXXYYYYZZZZ[[\\\\]]]]]^^^^__````aaaabbbbaaa````____^^^^]]]\\\\[[[ZZZYYYYXXXXXWWWVVVUUUUTTTTSSRRRRRQQQQPPPOOONNNNMMMMMLLLKKKJJJJIIIIIHHHGGGFFFFEEEEEDDDCCCBBBBBAAA@@@@???>>>>>===<<<<<;;;;:::999988887777766665554444333332222211100000/////..-----,,,,,+++++****)))))(((((''''''&&&&%%%%%%$$$$$$#######"""""!!!!!!!  !!!!!!!!"""""######$$$$$$%%%%%%%&&&'''''''((((()))))***+++++,,,,,-----.../////00000112222233333444455556666777778889999::::;;;;<<<<<==>>>>>????@@@@AABBBBBCCCCDDEEEEEFFFFGGGGHHIIIIIJJJJKKKKLLMMMMMNNNNOOOOPPQQQQRRRRRSSSTTTUUUUVVVVWWXXXXXYYYYZZZZ[[\\\\]]]]^^^^___````aaaabbbbbaaaa```___^^^^]]]\\\\[[[ZZZZZYYYXXXXWWWVVVUUUUTTTTTSSSRRRQQQQPPPOOOOONNNMMMMLLLKKKKKJJJIIIIHHHGGGGGFFFEEEEDDDCCCCCBBBAAA@@@@@????>>>====<<<<;;;;;::::99888887777666665544444333332222111100000////...-----,,,,,+++++****)))))(((((''''''&&&&%%%%%%$$$$$$$######"""""!!!!!!!!!  !!!!!!!!!"""""######$$$$$$%%%%%%&&&&''''''((((()))))****+++++,,,,,-----....////00000111222233333444445556666677788888999::::;;;;;<<<====>>>>????@@@@@AABBBBCCCCCDDEEEEFFFFGGGGGHHIIIIJJJJKKKKKLLMMMMNNNNOOOOOPPQQQQRRRRSSTTTTTUUUUVVVVWWXXXXYYYYZZZZZ[[\\\\]]]]^^^^__````aaaabbbbbbaaaa```___^^^^]]]]]\\\[[[ZZZZYYYXXXXWWWVVVVVUUUTTTTSSSRRRQQQQQPPPOOOONNNMMMMMLLLKKKKJJJIIIIHHHHGGGGFFFEEEEEDDDCCCCBBBAAAA@@@@?????>>>>==<<<<<;;;;:::::9988887777766666555444443332222211110000/////....-----,,,,,+++++***)))))((((('''''''&&&%%%%%%%$$$$$$#######"""""!!!!!!!!!  !!!!!!!!!"""""########$$$$$$%%%%%%&&&&''''''((((()))))****+++++,,,,,-----..../////0001111222223333444445566666777778888999:::::;;;<<<<<===>>>>?????@@@AAAABBBBCCCCDDEEEEEFFFFGGGGHHHIIIIJJJJKKKKLLMMMMMNNNNOOOOPPQQQQQRRRRSSTTTTUUUUVVVVVWWXXXXYYYYZZZZ[[\\\\]]]]]^^^^__````aaaabbcbbbaaaa```____^^^^]]]]\\\[[[ZZZZYYYYYXXXWWWVVVVUUUTTTTSSSSRRRRQQQPPPOOOONNNNNMMMLLLKKKKJJJJJIIIHHHGGGGFFFFFEEEDDDCCCCCBBBBAA@@@@@????>>>>===<<<<;;;;;::::99998887777766665555444433333222221100000/////....-----,,,,,+++++****)))))(((((('''''&&&&&%%%%%%$$$$$$########"""""!!!!!!!!!  !!!!!!!!!"""""#######$$$$$$%%%%%%%&&&&&'''''(((((()))))****+++++,,,,,-----.../////000001112222233333444455566667777788889999:::;;;;;<<<<====>>>>???@@@@@AAABBBBCCCCCDDEEEEFFFFFGGGGHHIIIIJJJJJKKKKLLMMMMNNNNNOOOOPPQQQQRRRRSSSTTTTUUUUVVVVWWXXXXYYYYYZZZZ[[\\\\]]]]^^^____````aaaabbcbbbaaaaa````__^^^^]]]]\\\[[[[ZZZZYYYYXXXWWWVVVVUUUUUTTTSSSRRRRQQQPPPPOOOONNNNMMMLLLLKKKKJJJJIIIHHHHGGGGFFFFEEEEEDDCCCCBBBBBAA@@@@?????>>>>==<<<<<;;;;:::::99988888777666665554444433333222221100000/////...------,,,,,+++++****)))))((((((''''''&&&&%%%%%%$$$$$$$$#######"""""!!!!!!!!!!  !!!!!!!!!!"""""########$$$$$$$%%%%%%&&&&''''''((((((()))))***+++++,,,,,-------../////00000111222223333344444556666677778888899:::::;;;;<<<<<===>>>?????@@@@AAABBBBBCCCDDDEEEEEFFFFGGGHHHHIIIIJJJJKKKLLLLMMMMNNNNOOOPPPPQQQQRRRRSSTTTTUUUUUVVVVWWXXXXYYYYZZZ[[[[\\\\]]]]^^^___````aaaaabbcccbbaaaa````__^^^^]]]]]\\\\[[ZZZZYYYYXXXWWWWVVVVUUUUTTTSSSRRRRRQQQQPPOOOONNNNNMMMMLLKKKKJJJJJIIIIHHGGGGFFFFFEEEEDDCCCCCBBBBAA@@@@@????>>>>>===<<<;;;;;::::9999888877777666665544444333332222111100000/////..-----,,,,,,+++++****)))))(((((('''''''&&&%%%%%%%%$$$$$$#########"""""!!!!!!!!!!  !!!!!!!!!!"""""########$$$$$$$%%%%%%%&&&&''''''(((((()))))****+++++,,,,,,-----.../////000001111222333334444455566666777778888999::::;;;;;<<<<==>>>>>????@@@@@AAABBBCCCCCDDDEEEEFFFFFGGGHHHIIIIJJJJJKKKLLLMMMMNNNNNOOOPPPQQQQRRRRRSSTTTTUUUUVVVWWWWXXXXYYYYZZZ[[[\\\\]]]]]^^^___````aaabbbccccbbaaaa````___^^^^]]]]\\\\[[ZZZZYYYYYXXXXWWVVVVUUUUTTTTTSSRRRRQQQQPPOOOOONNNNMMMMLLKKKKKJJJJIIIIHHHGGGGFFFFEEEEEDDCCCCBBBBBAAA@@@?????>>>>===<<<<<;;;;;:::9998888877777666655544444333322222111100000/////..-----,,,,,,,+++++***)))))(((((((''''''&&&&&%%%%%%$$$$$$$$########"""""""!!!!!!!!!!  !!!!!!!!!!""""""#########$$$$$$$%%%%%%%&&&&&''''''(((((()))))****+++++,,,,,,-----.../////000001112222233334444455556666777778888899::::;;;;;<<<<<==>>>>?????@@@@AABBBBBCCCCDDDEEEEEFFFGGGGHHHHIIIIJJJKKKKKLLLMMMMNNNOOOOOPPPQQQQRRRSSSTTTTTUUUUVVVWWWXXXXYYYYYZZZ[[[\\\\]]]^^^^____````aaabbbccccbbaaaaa````__^^^^]]]]\\\\[[[ZZZZYYYYXXXXWWVVVVVUUUUTTTTSSRRRRQQQQQPPOOOONNNNMMMMMLLKKKKJJJJIIIIIHHGGGGFFFFFEEEEDDCCCCCBBBBAAA@@@@@???>>>>>===<<<<<;;;;:::::99888887777666665555444333332222211110000/////....-----,,,,,,+++++****))))))((((((''''''&&&&%%%%%%%%$$$$$$$#########""""""!!!!!!!!!!!!! !!!!!!!!!!!!"""""""########$$$$$$$$%%%%%%%&&&&''''''((((((())))))****+++++,,,,,,-----..../////00011112222233333444455556666677788888999:::::;;;;<<<<<==>>>>>????@@@@@AABBBBCCCCCDDDEEEFFFFFGGGGHHHIIIIIJJJKKKKLLLMMMMMNNNOOOOPPPQQQQQRRRSSSTTTTUUUVVVVVWWWXXXXYYYZZZZ[[[[\\\\]]]^^^^___```aaaaabbbcccccbbaaaa````__^^^^]]]]]\\\\[[ZZZZYYYYXXXXXWWVVVVUUUUTTTTSSSRRRRQQQQPPOOOOONNNNMMMMLLKKKKKJJJJIIIIHHGGGGGFFFFEEEEEDDDCCCBBBBBAAA@@@@?????>>>====<<<<;;;;;::::999888877777666665554444433333222221100000/////....-----,,,,,,+++++****))))))(((((('''''''&&&&&%%%%%%$$$$$$$$$########""""""""!!!!!!!!!!!!!! !!!!!!!!!!!!!!"""""""#########$$$$$$$$$%%%%%%&&&&&''''''(((((()))))))***+++++,,,,,,,-----.../////0000011122222333334444455666667777788889999::::;;;;;<<<====>>>>?????@@@@AABBBBBCCCCDDEEEEEFFFFGGGGGHHHIIIJJJJKKKKKLLLMMMNNNNOOOOOPPPQQQRRRRSSSSTTTTUUUVVVVWWWXXXXXYYYZZZZ[[[\\\]]]]]^^^^___```aaaabbbccccccbbaaaa````____^^^]]]]\\\\[[ZZZZZYYYYXXXXWWVVVVUUUUUTTTTSSRRRRQQQQQPPPOOONNNNMMMMMLLLKKKJJJJIIIIIHHHGGGFFFFFEEEEDDDCCCCCBBBAAAA@@@@????>>>>>==<<<<<;;;;:::::998888877777666665554444433333222221100000/////....-----,,,,,,+++++****))))))((((((('''''''&&&&%%%%%%%$$$$$$$$$##########""""""""!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!"""""""##########$$$$$$$$$%%%%%%%%&&&''''''''(((((())))))****+++++,,,,,,-----..../////0000011122222333334444455666667777788888999:::::;;;<<<<<===>>>>>????@@@AAAABBBBCCCCCDDEEEEFFFFFGGGGHHIIIIIJJJJKKKKLLMMMMMNNNNOOOOPPQQQQQRRRRSSSTTTUUUUUVVVVWWWXXXYYYYZZZZZ[[[\\\]]]]^^^^____```aaaabbbccccccbbaaaaa````___^^^]]]]\\\\\[[[ZZZYYYYXXXXWWWWVVVUUUUTTTTSSRRRRRQQQQPPPOOONNNNNMMMMLLLKKKKKJJJIIIIHHHGGGGGFFFEEEEEDDDCCCCBBBBBAA@@@@@????>>>>>==<<<<;;;;;:::::9998888877777666555544444333332222111100000/////...-----,,,,,,,+++++*****))))))((((((''''''&&&&&%%%%%%%%$$$$$$$$$##########""""""""!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"""""""""##########$$$$$$$$$%%%%%%%&&&&&''''''((((((())))))*****+++++,,,,,,-----..../////000001111222333334444455556666777778888899:::::;;;;;<<<<===>>>>>???@@@@@AAABBBBBCCCCDDEEEEEFFFFGGGGGHHIIIIJJJJKKKKKLLMMMMNNNNNOOOOPPQQQQRRRRRSSSTTTUUUUVVVVWWWWXXXYYYYZZZZ[[\\\\\]]]]^^^^__````aaaaabbbcccccccbbbaaa````___^^^^^]]]\\\\[[[ZZZYYYYYXXXXWWWVVVUUUUTTTTTSSSRRRQQQQPPPPOOOONNNMMMMMLLLKKKKJJJIIIIIHHHGGGGFFFFFEEEDDDCCCCCBBBBAAA@@@@?????>>>>====<<<;;;;;::::99998888877776666655544443333322222111100000/////....------,,,,,++++++****))))))((((((''''''''&&&&&%%%%%%%$$$$$$$$$$############""""""""""!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!""""""""""###########$$$$$$$$$$%%%%%%%%&&&&&'''''''(((((()))))))***+++++++,,,,,------..../////0000011122222333334444555566666777788888999::::;;;;;<<<<====>>>?????@@@@AAAABBBBCCCCCDDEEEEFFFFFGGGGHHIIIIIJJJJKKKKLLMMMMMNNNNOOOOPPPQQQQRRRRSSTTTTTUUUUVVVVWWXXXXYYYYYZZZZ[[\\\\]]]]^^^^^__````aaaabbccccdccccbbbaaa`````___^^^^]]]\\\\[[[ZZZZZYYYXXXXWWWVVVVVUUUTTTTSSSRRRRRQQQPPPOOOONNNNNMMMLLLKKKKKJJJJIIIHHHHGGGGFFFFEEEEEDDCCCCBBBBBAA@@@@@????>>>>>===<<<<<;;;:::::99998888777776666655444443333322222111100000/////....------,,,,,++++++****))))))((((((((''''''&&&&&&%%%%%%%%$$$$$$$$$$############"""""""""""""!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!""""""""""""#############$$$$$$$$$$%%%%%%%&&&&&&'''''''((((((())))))****++++++,,,,,-------.../////00000111122222333334444455566666777778889999:::::;;;;<<<<<==>>>>>????@@@@@AAABBBBBCCCDDDEEEEEFFFFGGGHHHHIIIIJJJJKKKKKLLMMMMNNNNNOOOOPPQQQQRRRRRSSTTTTUUUUVVVVVWWXXXXYYYYZZZZZ[[\\\\]]]]^^^^__`````aaaabbccccdccccbbbbaaaa```___^^^^]]]]]\\\[[[ZZZZYYYXXXXXWWWVVVVUUUTTTTTSSSRRRRQQQPPPPOOOONNNNMMMLLLLKKKKJJJJIIIIIHHGGGGFFFFFEEEEDDDCCCCBBBBBAAA@@@?????>>>>====<<<<;;;;;:::::9988888777776666655544444333332222211100000/////....------,,,,,+++++++*****))))))((((((''''''''&&&&&%%%%%%%%%%$$$$$$$$$$#############"""""""""""""""""""""""""""""""""""""""""""""""""##############$$$$$$$$$$%%%%%%%%%%&&&&&'''''''((((((())))))*****++++++,,,,,------..../////00000111122222333334444455666667777788888999:::::;;;;;<<<<===>>>>?????@@@@AABBBBBCCCCDDDDEEEEFFFFFGGGHHHIIIIIJJJJKKKLLLLMMMMNNNNOOOPPPPQQQQRRRRSSTTTTTUUUUVVVVWWXXXXXYYYYZZZZ[[\\\\]]]]]^^^^__````aaaabbbccccdddcccbbbaaaa```___^^^^^]]]]\\\[[[ZZZZZYYYYXXXWWWVVVVUUUUUTTTSSSRRRRQQQQQPPOOOONNNNNMMMMLLKKKKKJJJJIIIIHHHGGGGFFFFEEEEEDDCCCCCBBBBAAA@@@@@?????>>>====<<<<;;;;;:::::99888887777766665555444443333322222111100000/////...-------,,,,,,++++++****))))))(((((((('''''''&&&&&%%%%%%%%%%$$$$$$$$$$$##################""""""""""""""""""""""""""""""""""#################$$$$$$$$$$$%%%%%%%%%%&&&&&''''''''((((((()))))))***+++++++,,,,,,------..../////00000111122222333334444455566667777788888999:::::;;;;;<<<====>>>>?????@@@@@AABBBBCCCCCDDDEEEEEFFFGGGGHHHHIIIIJJJKKKKKLLLMMMMNNNNNOOOPPPQQQQQRRRRSSTTTTUUUUUVVVVWWXXXXYYYYZZZZZ[[\\\\]]]]^^^^^__````aaaabbccccddddcccbbbaaaa`````__^^^^]]]]\\\\\[[ZZZZYYYYXXXWWWWVVVVUUUUTTTSSSSRRRRQQQQPPOOOOONNNNMMMMLLLKKKKJJJJIIIIIHHGGGGGFFFFEEEEDDDDCCCBBBBBAAA@@@@@????>>>>>==<<<<<;;;;;::::999988888777666665555444443333322222111100000/////....------,,,,,,++++++****))))))))(((((((''''''''&&&&&&%%%%%%%%%%$$$$$$$$$$$$###########################################################$$$$$$$$$$$$$%%%%%%%%%%&&&&&&'''''''(((((((()))))))****++++++,,,,,,,------..../////000001112222233333444445555666667777888889999:::;;;;;<<<<<===>>>>>????@@@@@AABBBBBCCCCDDDDEEEFFFFGGGGGHHHIIIIIJJJKKKKLLLLMMMMNNNOOOOOPPPQQQQRRRSSSSTTTTUUUUVVVWWWWXXXXYYYYZZZ[[[\\\\\]]]]^^^___`````aaaabbccccddddcccccbbaaaa````__^^^^]]]]]\\\\[[ZZZZYYYYYXXXXWWVVVVUUUUUTTTTSSRRRRQQQQQPPOOOONNNNNMMMMLLKKKKKJJJJIIIIHHHHGGGFFFFFEEEEDDDCCCCCBBBAAAA@@@@?????>>>>===<<<<<;;;;:::::999988887777766666555444443333322222111100000//////....-----,,,,,,+++++++*****))))))((((((('''''''''&&&&&&%%%%%%%%%%$$$$$$$$$$$$$$$#################################################$$$$$$$$$$$$$$$%%%%%%%%%%&&&&&&'''''''''(((((((())))))*****++++++,,,,,,-----....//////000001111222223333344444555566666777778888999:::::;;;;<<<<<====>>>>?????@@@AAAABBBBCCCCCDDEEEEFFFFFGGGGHHHHIIIJJJJKKKKKLLLMMMNNNNNOOOOPPPQQQQQRRRSSSTTTTUUUUUVVVWWWXXXXYYYYYZZZ[[[\\\\]]]]]^^^___````aaabbbcccccdddddccccbbaaaa````___^^^^]]]]\\\\[[[ZZZZYYYYXXXXWWVVVVVUUUUTTTTSSSRRRRQQQQPPOOOOONNNNMMMMLLLLKKKJJJJJIIIIHHHGGGGGFFFEEEEEDDDCCCCBBBBBAA@@@@@?????>>>>====<<<;;;;;:::::999888887777766666555544444333332222211100000///////...-------,,,,,,++++++****)))))))(((((((('''''''''&&&&&&%%%%%%%%%%%%$$$$$$$$$$$$$$$$$$##################################$$$$$$$$$$$$$$$$$%%%%%%%%%%%%%&&&&&&'''''''''((((((())))))))***+++++++,,,,,,------....//////000001111222223333344444555566666777778888899:::::;;;;;<<<<====>>>?????@@@@@AAABBBBBCCCCDDEEEEEFFFFGGGGGHHIIIIJJJJJKKKKLLLLMMMNNNNOOOOOPPPQQQRRRRSSSSTTTTUUUVVVVVWWWXXXXYYYZZZZ[[[[\\\\]]]^^^^____````aaabbbccccddddddccccbbaaaaa````__^^^^]]]]]\\\\[[ZZZZYYYYXXXXXWWVVVVUUUUTTTTTSSRRRRQQQQQPPPOOONNNNNMMMMLLLKKKKKJJJIIIIHHHHGGGGFFFFFEEEDDDDCCCCBBBBBAA@@@@@????>>>>>===<<<<<;;;;;:::::998888877777666665555444443333322222111100000//////....------,,,,,,++++++*****))))))))(((((((''''''''''&&&&&&&%%%%%%%%%%%%$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%%%%%%%%%%%%%&&&&&&''''''''''(((((((()))))))*****++++++,,,,,,,------....//////000001111222223333344444555666667777788888999:::::;;;;;<<<<<==>>>>>????@@@@@AAABBBBBCCCDDDDEEEEFFFFFGGGGHHHIIIIJJJJKKKKKLLMMMMNNNNNOOOOPPQQQQQRRRRSSSTTTTTUUUVVVVWWWXXXXXYYYZZZZ[[[\\\]]]]]^^^^___```aaaaabbbccccddddddcccccbbaaaa````__^^^^^]]]]\\\\[[ZZZZZYYYYXXXXWWVVVVVUUUUTTTTSSRRRRRQQQQPPPOOOOONNNMMMMMLLLKKKKJJJJJIIIHHHGGGGGFFFFEEEEEDDCCCCCBBBBAAAA@@@?????>>>>>===<<<<<;;;;;::::9998888877777666665554444443333322222111100000//////....------,,,,,,++++++++*****)))))))((((((((''''''''''&&&&&&&%%%%%%%%%%%%%%%$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%%%%%%%%%%%%%%%&&&&&&&&''''''''''((((((())))))))*****+++++++,,,,,,-------...///////0000011122222333334444444556666677777888889999::::;;;;;<<<<<==>>>>>?????@@@@AAAABBBCCCCCDDDEEEEEFFFFGGGGGHHIIIIJJJJJKKKKLLMMMMMNNNNOOOOOPPQQQQRRRRRSSSTTTUUUUVVVVVWWWXXXYYYYZZZZZ[[[\\\]]]]^^^^^___```aaaabbbcccccdddddddccccbbaaaa`````___^^^]]]]\\\\\[[[ZZZYYYYXXXXXWWWVVVUUUUTTTTTSSSRRRQQQQQPPPOOOONNNNNMMMLLLKKKKKJJJJIIIIIHHGGGGFFFFFEEEEDDDCCCCBBBBBAAA@@@@@?????>>>====<<<<<;;;;:::::99998888877777666665544444433333222221111000000/////.....-------,,,,,,++++++*****)))))))))(((((((((''''''''''&&&&&&&%%%%%%%%%%%%%%%%%%$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%%%%%%%%%%%%%%%%%&&&&&&&&''''''''''((((((((())))))))*****+++++++,,,,,,------...../////000000111122222333334444445556666677777888889999:::::;;;<<<<<====>>>>?????@@@@@AABBBBBCCCCDDDDEEEEFFFFFGGGHHHIIIIIJJJJKKKKKLLMMMMNNNNNOOOOPPQQQQQRRRRSSTTTTTUUUUVVVVWWXXXXXYYYYZZZZ[[\\\\\]]]]^^^^__`````aaaabbbcccddddeddddccccbbbbaaa````___^^^^^]]]\\\\[[[ZZZYYYYYXXXXWWWVVVVVUUUTTTTSSSRRRRRQQQPPPOOOOONNNNMMMMMLLKKKKJJJJJIIIIHHHGGGGFFFFFEEEEDDCCCCCBBBBBAAA@@@@@????>>>>>===<<<<;;;;;:::::999988887777766666655444444433333222221110000000//////....------,,,,,,++++++++*****))))))))((((((((('''''''''''&&&&&&&&&%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&&&&&&&&&'''''''''''((((((((()))))))))*****+++++++,,,,,,,------....//////00000011112222233333444444555666666777778888999:::::;;;;;<<<<====>>>>>????@@@@@AABBBBBCCCCCDDDEEEFFFFFGGGGHHHHIIIIJJJJJKKKLLLMMMMMNNNNOOOOOPPQQQQRRRRRSSTTTTUUUUVVVVVWWXXXXYYYYYZZZZ[[\\\\]]]]^^^^^__````aaaabbbbcccddddedddddccccbbbaaa`````___^^^^]]]\\\\[[[[ZZZZYYYXXXXXWWWVVVVUUUTTTTTSSSRRRRQQQQQPPOOOONNNNNMMMMLLKKKKKJJJJIIIIIHHGGGGGFFFFEEEEEDDDCCCCCBBBAAAA@@@@?????>>>>>==<<<<<;;;;;:::::999888887777766666655544444433333222221111000000//////....------,,,,,,,,+++++++*****)))))))))(((((((((''''''''''''&&&&&&&&&&%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&&&&&&&&&&'''''''''''''((((((((())))))))*****++++++++,,,,,,,-------...///////00000011112222233333444444556666666777778888899:::::;;;;;<<<<<===>>>>>?????@@@AAAABBBBCCCCCDDEEEEEFFFFGGGGGHHHIIIIIJJJKKKKKLLLMMMMNNNNNOOOPPPQQQQQRRRRSSTTTTTUUUUVVVVWWXXXXXYYYYZZZZ[[[\\\\]]]]^^^^__`````aaaabbccccdddddeeedddccccbbbaaaaa```___^^^^]]]]]\\\[[[ZZZZYYYYYXXXWWWVVVVVUUUUTTTSSSRRRRRQQQQPPOOOOONNNNMMMMMLLKKKKJJJJJIIIIHHHHGGGFFFFFEEEEDDDDCCCCBBBBBAA@@@@@?????>>>>>===<<<<<;;;;;:::::99888887777766666555544444433333222221111100000//////.....-------,,,,,,+++++++++*****))))))))((((((((((''''''''''''''&&&&&&&&&&&&&%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&&&&&&&&&&&&''''''''''''''(((((((((()))))))))*****+++++++++,,,,,,------.....//////000001111122222333334444444555666667777788888999:::::;;;;;<<<<<==>>>>>?????@@@@@AAABBBBBCCCCDDDEEEEFFFFFGGGGHHHHIIIJJJJJKKKKLLLMMMMMNNNOOOOOPPPQQQQRRRRRSSTTTTUUUUVVVVVWWXXXXYYYYYZZZZ[[\\\\]]]]]^^^^__````aaaaabbccccddddeeeedddcccccbbbaaaa```____^^^^]]]]\\\[[[[ZZZZYYYYXXXWWWWVVVVUUUUTTTTTSSRRRRQQQQQPPOOOONNNNNMMMMLLLLKKKJJJJIIIIIHHHGGGGGFFFEEEEEDDDCCCCCBBBBBAA@@@@@?????>>>>====<<<<<;;;;;::::99988888777776666655554444443333322222221110000000//////....------,,,,,,,++++++++******)))))))))((((((((((('''''''''''''''&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&'''''''''''''''(((((((((((())))))))*******+++++++,,,,,,,,------....//////00000011112222223333344444455556666677777888889999::::;;;;;<<<<<===>>>>?????@@@@@AAABBBBBCCCCCDDEEEEEFFFFGGGGGHHIIIIIJJJJKKKKLLLLMMMNNNNNOOOOPPPQQQQQRRRSSSTTTTTUUUUVVVWWWWXXXXYYYYZZZ[[[[\\\\]]]]^^^____````aaaabbcccccddddeeeeeddddcccbbbaaaaa````__^^^^]]]]]\\\\[[ZZZZYYYYYXXXXWWVVVVVUUUUTTTTSSRRRRRQQQQPPPPOOONNNNMMMMMLLLKKKKKJJJIIIIIHHHGGGGFFFFFEEEEEDDCCCCCBBBBAAAA@@@@@???>>>>>====<<<<;;;;;:::::99998888877777666665554444444333332222221111000000//////....-------,,,,,,,,+++++++*******))))))))))((((((((((((''''''''''''''''''&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&'''''''''''''''''((((((((((((())))))))))******++++++++,,,,,,,--------...///////00000011112222223333344444455556666677777888889999:::::;;;;;<<<====>>>>>????@@@@@AAAABBBCCCCCDDDEEEEEFFFFFGGGGHHIIIIIJJJJKKKKKLLMMMMMNNNNOOOOPPPPQQQRRRRRSSSTTTTUUUVVVVVWWWXXXXYYYYYZZZ[[[\\\\]]]]]^^^___````aaaaabbccccddddeeeeeeddddcccccbbaaaa````__^^^^^]]]]\\\\[[ZZZZZYYYYXXXXWWWVVVVUUUUTTTTTSSRRRRQQQQQPPPOOONNNNNMMMMLLLLKKKKJJJJJIIIHHHHGGGGFFFFFEEEEDDDCCCCBBBBBAAAA@@@@?????>>>>>==<<<<<;;;;;:::::99998888877777666665555444444333332222221111000000//////.....--------,,,,,,,++++++++******)))))))))))(((((((((((((''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''(((((((((((()))))))))))*******+++++++,,,,,,,,-------.....//////00000001112222222333334444445555666667777788888999:::::;;;;;<<<<<===>>>>>?????@@@@AAABBBBBCCCCDDDDEEEEFFFFFGGGHHHHIIIIJJJJJKKKKLLLMMMMNNNNNOOOOPPQQQQQRRRRSSSTTTTTUUUVVVVWWWWXXXXYYYZZZZZ[[[\\\\]]]^^^^^___````aaabbbcccccddddeeeeeedddddccccbbaaaa`````__^^^^]]]]\\\\\[[ZZZZYYYYYXXXXWWVVVVVUUUUTTTTSSSSRRRQQQQPPPPOOOONNNMMMMMLLLKKKKKJJJJIIIIIHHGGGGGFFFFEEEEEDDCCCCCBBBBBAAA@@@@@?????>>>>>==<<<<<;;;;;:::::9999888887777766666655544444433333322222111110000000//////.....------,,,,,,,,,+++++++++******)))))))))))((((((((((((((('''''''''''''''''''''''''''''''''''''''''''''''''''((((((((((((((())))))))))))******+++++++++,,,,,,,,-------.....//////000000111112222233333344444445566666677777888889999:::::;;;;;<<<<<===>>>>>?????@@@@@AABBBBBCCCCCDDDEEEEEFFFGGGGGHHHIIIIIJJJJKKKKKLLMMMMMNNNNOOOOPPPQQQQRRRRSSSSTTTUUUUVVVVVWWWXXXYYYYYZZZZ[[[\\\\\]]]^^^^___`````aaabbbccccdddddeeeeeeeddddccccbbbaaaa````__^^^^^]]]]\\\\[[ZZZZZYYYYXXXXWWWWVVVUUUUTTTTTSSSRRRQQQQQPPPOOOOONNNNMMMMMLLKKKKJJJJJIIIIHHHGGGGFFFFFEEEEEDDDCCCCCBBBBBAA@@@@@?????>>>>====<<<<<;;;;;:::::999888887777766666665554444433333332222221111000000//////.....--------,,,,,,,,+++++++++******)))))))))))))(((((((((((((((((((''''''''''''''''''''''''''''''''''''((((((((((((((((((())))))))))))******+++++++++,,,,,,,,,-------.....///////000000111122222233333344444555566666677777888889999:::::;;;;;<<<<<====>>>?????@@@@@AAABBBBBCCCCCDDEEEEEFFFFFGGGGHHHHIIIIJJJJJKKKLLLMMMMMNNNNOOOOOPPQQQQQRRRRSSTTTTTUUUUVVVVWWWWXXXYYYYZZZZZ[[[\\\]]]]^^^^^___```aaaabbbbccccdddeeeefeeeedddddccccbbaaaa`````___^^^]]]]\\\\\[[[ZZZYYYYYXXXXWWWVVVVVUUUTTTTSSSSRRRRQQQPPPPOOOONNNNNMMMMLLKKKKKJJJJJIIIIHHGGGGGFFFFFEEEEDDDDCCCCCBBBBAAA@@@@@????>>>>>====<<<<<;;;;;:::::999988888777776666665555444443333332222221111000000////////.....-------,,,,,,,,,+++++++++*******))))))))))))))(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((()))))))))))))********+++++++++,,,,,,,,--------.....///////0000000111222222233333344444555566666677777888889999:::::;;;;;<<<<<===>>>>>????@@@@@AAAABBBBCCCCCDDDEEEEFFFFFGGGGGHHHIIIJJJJJKKKKKLLLMMMMNNNNNOOOPPPPQQQQRRRRSSSTTTTUUUUVVVVVWWXXXXYYYYYZZZZ[[\\\\\]]]]^^^^__`````aaaabbbcccdddddeeeefeeeeeddddccccbbaaaaa````___^^^^^]]]\\\\[[[ZZZZZYYYXXXXWWWWVVVVUUUTTTTTSSSRRRRRQQQQPPOOOOONNNNMMMMMLLKKKKKJJJJIIIIIHHHGGGGGFFFEEEEEDDDDCCCCBBBBBAAAA@@@?????>>>>>====<<<<<;;;;;:::::99998888877777666666555544444333333222222111110000000///////.....--------,,,,,,,,++++++++++********))))))))))))))))((((((((((((((((((((((((((((((((((((((((((((((((((()))))))))))))))))*******++++++++++,,,,,,,,,-------.....////////0000001111122222233333334444455566666667777788888999:::::;;;;;<<<<<====>>>>>?????@@@@AAAABBBBBCCCDDDDEEEEEFFFFGGGGGHHIIIIIJJJJKKKKKLLLMMMMMNNNOOOOOPPPQQQQRRRRRSSTTTTTUUUUVVVVWWWXXXXYYYYZZZZZ[[\\\\]]]]^^^^^__````aaaaabbbcccddddeeeeefffeeeddddcccccbbbaaa````____^^^^]]]\\\\\[[[ZZZZYYYYYXXXWWWVVVVVUUUUTTTSSSSRRRRQQQQQPPOOOONNNNNMMMMLLLLKKKJJJJJIIIIHHHHGGGGFFFFFEEEEEDDCCCCCBBBBBAAA@@@@@?????>>>>>===<<<<<;;;;;:::::999988888777776666665555444444333333322222211110000000//////.....---------,,,,,,,,,+++++++++++*********)))))))))))))))))))(((((((((((((((((((((((((((((((((((()))))))))))))))))))********++++++++++++,,,,,,,,---------.....//////000000001111222222333333444444555566666677777888889999:::::;;;;;<<<<<====>>>>>?????@@@@@AABBBBBCCCCCDDDEEEEEFFFFFGGGGHHHIIIIJJJJJKKKKLLLLMMMNNNNNOOOOPPPQQQQQRRRSSSSTTTTUUUUVVVVVWWXXXXYYYYYZZZZ[[\\\\\]]]]^^^^___````aaaabbcccccddddeeeeffffeeeeedddccccbbbaaaaa```___^^^^]]]]]\\\[[[ZZZZZYYYYXXXWWWWVVVVUUUUUTTTTSSRRRRRQQQQPPOOOOONNNNMMMMMLLLKKKKKJJJIIIIIHHHGGGGGFFFFFEEEEEDDCCCCCBBBBBAAA@@@@@?????>>>>>====<<<<<;;;;;:::::99988888777776666666555444444433333322222211111000000////////.....---------,,,,,,,,,,+++++++++++**********))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))**********+++++++++++,,,,,,,,,,---------.....///////000000111112222222333333444444555566666677777888889999:::::;;;;;<<<<<====>>>>>?????@@@@@AABBBBBCCCCCDDDEEEEEFFFFFGGGGGHHIIIIIJJJJKKKKKLLMMMMMNNNNOOOOOPPPQQQRRRRRSSSTTTTUUUUUVVVWWWWXXXXYYYYZZZZZ[[\\\\]]]]]^^^^__````aaaaabbccccddddeeeeefffffeeeedddcccccbbbaaaa```____^^^^]]]]\\\\\[[ZZZZYYYYYXXXXWWVVVVVUUUUTTTTSSSRRRRQQQQQPPPOOOOONNNMMMMMLLLKKKKKJJJJIIIIIHHGGGGGFFFFFEEEEDDDDCCCCCBBBAAAA@@@@@?????>>>>>===<<<<<<;;;;;:::::9999888887777776666655554444443333332222221111100000000///////.....---------,,,,,,,,,,+++++++++++++***********))))))))))))))))))))))))))))))))))))))))))))))))))))))***********++++++++++++,,,,,,,,,,---------.....////////0000000111112222223333333444444555566666777777888889999:::::;;;;;<<<<<<==>>>>>?????@@@@@AAAABBBBCCCCCDDDDEEEFFFFFGGGGGHHHIIIIIJJJJKKKKKLLMMMMMNNNNOOOOOPPQQQQQRRRRSSSSTTTTUUUVVVVVWWWXXXXYYYYYZZZ[[[\\\\\]]]]^^^____````aaaabbcccccddddeeeeffgfffeeeedddddcccbbbaaaaa````__^^^^]]]]]\\\\[[ZZZZZYYYYXXXXXWWVVVVUUUUUTTTTSSRRRRRQQQQPPPPOOOONNNNNMMMLLLLKKKKJJJJJIIIIHHHGGGGGFFFFEEEEEDDDDCCCCBBBBBAAA@@@@@?????>>>>>===<<<<<;;;;;;:::::9999888887777776666655555444444333333322222211111000000/////////.....----------,,,,,,,,,,++++++++++++++***************))))))))))))))))))))))))))))))))))))***************++++++++++++++,,,,,,,,,,----------.....////////0000000111112222223333334444445555566666777777788888999:::::;;;;;;;<<<<<==>>>>>?????@@@@@AAAABBBBBCCCCDDDEEEEEFFFFGGGGGHHHHIIIIJJJJJKKKLLLLMMMMNNNNNOOOOPPPQQQQRRRRRSSSTTTUUUUUVVVVWWWXXXXXYYYZZZZZ[[[\\\\]]]]]^^^___````aaaaabbccccdddddeeeeffgffffeeeeddddcccbbbbaaaa````___^^^^]]]]\\\\\[[ZZZZYYYYYXXXXWWVVVVVUUUUTTTTTSSSRRRQQQQQPPPOOOOONNNNMMMMMLLKKKKKJJJJIIIIIHHHHGGGFFFFFEEEEEDDDCCCCCBBBBBAAAA@@@@@???>>>>>>>==<<<<<;;;;;;:::::999988888777777666666655544444443333332222221111100000000////////.....----------,,,,,,,,,,,,,+++++++++++++++******************************************************+++++++++++++++,,,,,,,,,,,,----------...../////////00000001111122222223333334444445555666666777777888889999:::::;;;;;;<<<<<===>>>>>>????@@@@@AAAABBBBBCCCCCDDEEEEEFFFFFGGGGHHHHIIIIIJJJKKKKKLLLMMMMMNNNNOOOOOPPQQQQQRRRRSSTTTTTUUUUVVVVVWWWXXXYYYYYZZZZ[[[\\\\\]]]^^^^____````aaabbbbccccddddeeeffffgggffeeeedddddccccbbaaaa`````__^^^^]]]]]\\\\[[ZZZZZYYYYXXXXXWWWVVVUUUUUTTTTSSSSRRRRQQQQQPPOOOONNNNNMMMMMLLKKKKKJJJJIIIIIHHHGGGGGFFFFFEEEEEDDCCCCCBBBBBAAA@@@@@?????>>>>>===<<<<<;;;;;;;:::::999888887777777666666555544444433333332222222111110000000/////////......----------,,,,,,,,,,,,,++++++++++++++++++***************************************+++++++++++++++++++,,,,,,,,,,,,----------.......////////0000000011111222222333333334444445555666666777777888889999:::::;;;;;;<<<<<====>>>>>?????@@@@@AABBBBBCCCCCDDDEEEEEFFFFFGGGGGHHIIIIIJJJJKKKKKLLLMMMMMNNNNNOOOPPPQQQQQRRRRSSSTTTTUUUUUVVVVWWXXXXXYYYYZZZZZ[[[\\\]]]]]^^^^___`````aaabbbccccdddddeeefffggggfffeeeeddddccccbbbaaaa````____^^^]]]]\\\\\[[[ZZZYYYYYXXXXWWWVVVVVUUUTTTTTSSSRRRRRQQQQPPOOOOONNNNNMMMMLLLLKKKJJJJJIIIIIHHHGGGGGFFFFFEEEEDDDCCCCCBBBBBAAA@@@@@?????>>>>>====<<<<<;;;;;;:::::99998888887777766666655555444444333333322222221111100000000////////.......-----------,,,,,,,,,,,,,,++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++,,,,,,,,,,,,,,-----------....../////////00000001111122222222333333444444555556666666777778888889999:::::;;;;;;<<<<<====>>>>>?????@@@@@AABBBBBCCCCCDDDDEEEEFFFFFGGGGGHHIIIIIJJJJJKKKKLLLLMMMNNNNNOOOOOPPPQQQQRRRRRSSTTTTTUUUUVVVVVWWXXXXYYYYYZZZZ[[\\\\\]]]]^^^^____```aaaabbbbccccdddeeeeffffgggggffeeeedddddccccbbaaaa`````___^^^]]]]]\\\\[[[ZZZZZYYYXXXXXWWWVVVVUUUUUTTTSSSSRRRRQQQQQPPOOOOONNNNMMMMMLLLKKKKKJJJJJIIIHHHHGGGGGFFFFEEEEEDDDDCCCCCBBBAAAA@@@@@?????>>>>>====<<<<<;;;;;;:::::999988888877777766666665554444444333333322222211111110000000/////////.......------------,,,,,,,,,,,,,,,,++++++++++++++++++++++++++++++++++++++++++++++++++++++,,,,,,,,,,,,,,,,-----------........////////000000001111112222223333333344444455556666667777778888888999:::::;;;;;;;<<<<<===>>>>>?????@@@@@AAAABBBBCCCCCDDDDEEEEEFFFGGGGGHHHHIIIIJJJJJKKKKKLLMMMMMNNNNOOOOOPPPQQQQQRRRSSSSTTTTUUUUUVVVVWWXXXXXYYYYZZZZZ[[\\\\]]]]]^^^^__`````aaaabbbcccdddddeeeefffggggggffeeeeeddddccccbbbbaaa````____^^^^]]]\\\\\[[[ZZZZYYYYYXXXWWWWVVVVUUUUTTTTTSSRRRRRQQQQPPPPOOONNNNNMMMMMLLLKKKKKJJJJIIIIIHHHGGGGFFFFFEEEEEDDDCCCCCBBBBBAAA@@@@@?????>>>>>====<<<<<;;;;;;:::::99998888887777777666666555544444443333332222222211111000000000//////////......--------------,,,,,,,,,,,,,,,,,,+++++++++++++++++++++++++++++++++++++++,,,,,,,,,,,,,,,,,,,--------------......//////////0000000001111122222223333334444444455556666667777778888889999:::::;;;;;;<<<<<====>>>>>?????@@@@@AAAABBBBBCCCCCDDEEEEEFFFFFGGGGHHHHIIIIIJJJJKKKKKLLMMMMMNNNNNOOOOPPPPQQQRRRRRSSSTTTTTUUUUVVVWWWWXXXXYYYYYZZZZ[[\\\\\]]]]^^^^___````aaaabbbbcccddddeeeeefffgggggggfffeeedddddccccbbbaaa`````___^^^^]]]]]\\\[[[[ZZZZYYYYXXXXXWWVVVVVUUUUTTTTTSSRRRRQQQQQPPPOOOOONNNNNMMMLLLLKKKKJJJJJIIIIIHHGGGGGFFFFFEEEEEDDDCCCCCBBBBBAAAA@@@@@?????>>>>>===<<<<<<<;;;;;:::::99999888887777776666665555544444433333333222222211111000000000//////////........---------------,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,---------------.......//////////000000000111112222222233333334444445555566666667777778888899999:::::;;;;;<<<<<<====>>>>>?????@@@@@AAAABBBBBCCCCCDDEEEEEFFFFFGGGGGHHHIIIIIJJJJJKKKLLLLMMMMNNNNNOOOOOPPQQQQQRRRRSSSTTTTTUUUVVVVVWWWXXXXXYYYYZZZ[[[[\\\\]]]]]^^^^__`````aaaabbccccdddddeeeeffgggggggggfffeeeeedddccccbbbbaaaa```____^^^^]]]]\\\\\[[ZZZZYYYYYXXXXWWWVVVVUUUUUTTTTSSSSRRRQQQQQPPPOOOOONNNNMMMMMLLKKKKKJJJJJIIIIIHHHGGGGGFFFFFEEEEEDDCCCCCBBBBBAAAA@@@@@?????>>>>>====<<<<<<;;;;;::::::9999888888777777666666655544444444333333322222222111110000000000//////////.........----------------,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,----------------.........//////////000000000011111222222233333333444444455556666667777778888888999:::::::;;;;;<<<<<<====>>>>>?????@@@@@AAABBBBBCCCCCDDDEEEEEFFFFFGGGGGHHIIIIIJJJJJKKKKKLLLMMMMMNNNNOOOOOPPQQQQQRRRRSSSSTTTUUUUUVVVVWWWWXXXXYYYYYZZZ[[[\\\\\]]]]^^^____````aaaabbbccccddddeeeeeffgggghgggggfffeeeedddddcccbbbaaaa`````__^^^^^]]]]\\\\[[[ZZZZYYYYYXXXXWWVVVVVUUUUTTTTTSSSRRRRRQQQPPPPOOOONNNNNMMMMMLLKKKKKJJJJJIIIIHHHHGGGGGFFFFEEEEEDDDCCCCCBBBBBAAAA@@@@@?????>>>>>====<<<<<<;;;;;::::::99998888887777777666666555554444443333333322222222111111100000000////////////........--------------------,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,--------------------.........///////////00000000011111122222222233333334444444555556666667777778888889999::::::;;;;;<<<<<<<===>>>>>?????@@@@@AAAABBBBBCCCCCDDDDEEEEEFFFFGGGGGHHHIIIIJJJJJKKKKKLLLMMMMMNNNNNOOOPPPPQQQQRRRRRSSTTTTTUUUUVVVVVWWWXXXYYYYYZZZZ[[[[\\\\]]]^^^^^___`````aaaabbccccdddddeeeeffggggghhhgggfffeeeeeddddcccbbbbaaaa````___^^^^]]]]\\\\\[[ZZZZZYYYYXXXXXWWWVVVUUUUUTTTTSSSSRRRRQQQQQPPOOOOONNNNNMMMMLLLLKKKKKJJJIIIIIHHHHGGGGFFFFFEEEEEDDDDCCCCCBBBBBAAA@@@@@?????>>>>>====<<<<<<;;;;;:::::::9998888888777777666666655554444444433333332222222221111110000000000///////////..........---------------------------------------------------------------------..........///////////00000000001111111222222223333333344444445555666666667777778888889999::::::;;;;;<<<<<<====>>>>>?????@@@@@AAAABBBBBCCCCCDDDDEEEEEFFFFFGGGHHHHIIIIIJJJJKKKKKLLLLMMMNNNNNOOOOOPPPQQQQQRRRRSSSTTTTUUUUUVVVVWWXXXXXYYYYZZZZZ[[[\\\\\]]]^^^^____````aaabbbbccccddddeeeeeffgggghhhhgggggffeeeedddddccccbbaaaaa````__^^^^^]]]]\\\\[[[[ZZZYYYYYXXXXWWWVVVVVUUUUUTTTSSSRRRRRQQQQQPPOOOOONNNNMMMMMLLLLKKKKJJJJJIIIIIHHGGGGGFFFFFEEEEEDDDDCCCCCBBBBBAAAA@@@@@?????>>>>>===<<<<<<<;;;;;;:::::9999988888877777766666665555544444443333333322222222111111100000000000////////////............--------------------------------------------------------.........../////////////0000000000011111122222222233333334444444455555666666777777888888899999:::::;;;;;;<<<<<<====>>>>>?????@@@@@AAAABBBBBCCCCCDDDEEEEEFFFFFGGGGGHHHIIIIIJJJJJKKKKLLLMMMMMNNNNOOOOOPPPQQQQQRRRRRSSTTTTUUUUUVVVVVWWXXXXYYYYYZZZZ[[[[\\\]]]]^^^^^___```aaaaabbbccccdddddeeefffggggghhhhhggggffeeeeeddddccccbbbaaaa````____^^^]]]]]\\\\[[[ZZZZZYYYXXXXXWWWVVVVVUUUUTTTTTSSRRRRRQQQQPPPPOOONNNNNMMMMMLLLKKKKKJJJJJIIIIIHHGGGGGFFFFFEEEEEDDDDCCCCCBBBBBAAAA@@@@@?????>>>>>>====<<<<<;;;;;;::::::999988888877777776666666555554444444433333332222222221111111000000000000/////////////...............---------------------------------------...............//////////////00000000000111111112222222233333333444444455555666666667777778888889999::::::;;;;;;;<<<<<===>>>>>>>?????@@@@@AAABBBBBCCCCCDDDDEEEEEFFFFFGGGGGHHHIIIIIJJJJJKKKKKLLMMMMMNNNNNOOOOPPPPQQQRRRRRSSSTTTTTUUUUVVVVVWWXXXXXYYYYZZZZZ[[\\\\]]]]]^^^^____```aaaabbbbccccdddeeeeefffgggghhhhhhgggggffeeeedddddccccbbaaaaa````___^^^^^]]]\\\\\[[[ZZZZYYYYYXXXWWWWVVVVUUUUUTTTTSSSRRRRQQQQQPPPOOOOONNNNNMMMMMLLKKKKKJJJJJIIIIHHHHGGGGGFFFFFEEEEEDDDCCCCCBBBBBAAAA@@@@@?????>>>>>>====<<<<<;;;;;;:::::::9998888888777777766666655555444444444333333332222222222111111000000000000/////////////////........................................................////////////////00000000000001111112222222222333333344444444455555666666777777778888889999::::::;;;;;;<<<<<====>>>>>>?????@@@@@AAAABBBBBCCCCCDDDDEEEEEFFFFFGGGGGHHHHIIIJJJJJKKKKKLLLMMMMMNNNNNOOOOOPPQQQQQRRRRSSSSTTTTUUUUUVVVWWWWXXXXYYYYYZZZZ[[\\\\\]]]]^^^^^__````aaaaabbbcccdddddeeeefffggggghhhhhhhggggffeeeeeddddccccbbbbaaa`````___^^^^]]]]]\\\[[[ZZZZZYYYYXXXXXWWVVVVVUUUUTTTTTSSRRRRRQQQQQPPPOOOOONNNNNMMMMLLLKKKKKJJJJIIIIIHHHHGGGGGFFFFFEEEEEDDCCCCCCCBBBBBAAA@@@@@?????>>>>>>>===<<<<<;;;;;;;::::::99999888888777777666666665555544444443333333332222222222111111110000000000000////////////////////.......................................////////////////////000000000000001111111222222222233333333344444444555556666666777777888888899999::::::;;;;;;<<<<<====>>>>>>?????@@@@@AAAABBBBBCCCCCCDDDEEEEEFFFFFGGGGGHHHIIIIIJJJJKKKKKLLLLMMMMNNNNNOOOOOPPQQQQQRRRRRSSSTTTTTUUUVVVVVWWWXXXXXYYYYZZZZZ[[\\\\]]]]]^^^^__`````aaaabbbbcccddddeeeeefffggghhhhhhhhhgggggfffeeedddddccccbbbaaaaa```___^^^^^]]]]\\\\\[[ZZZZZYYYYXXXXXWWVVVVVUUUUTTTTTSSSRRRRRQQQPPPPOOOOONNNNMMMMMLLLLKKKJJJJJIIIIIHHHHGGGGGFFFFFEEEEEDDDCCCCCCBBBBBAAAA@@@@@?????>>>>>>====<<<<<<;;;;;;::::::99998888887777777766666665555544444444333333333322222222221111111000000000000000/////////////////////////////////////////////////////////////////////00000000000000011111111222222222233333333334444444555556666666677777778888889999::::::;;;;;;;<<<<<<====>>>>>>?????@@@@@AAAABBBBBCCCCCCDDEEEEEFFFFFGGGGGHHHHIIIIIJJJJJKKKKLLLLMMMMMNNNOOOOOPPPPQQQQRRRRRSSTTTTTUUUUVVVVVWWWXXXXXYYYZZZZZ[[[\\\\\]]]]^^^^^__````aaaaabbccccdddddeeeeffggggghhhhihhhhhggggfffeeeeedddcccccbbbaaaa`````__^^^^]]]]]\\\\[[[ZZZZYYYYYXXXXWWWWVVVUUUUUTTTTSSSSRRRRQQQQQPPPOOOONNNNNMMMMMLLLKKKKKJJJJJIIIIIHHHGGGGGFFFFFEEEEEDDDCCCCCCBBBBBAAAA@@@@@?????>>>>>>====<<<<<<;;;;;;:::::::9998888888877777776666666655555444444444333333332222222222221111111100000000000000000////////////////////////////////////////////////////////0000000000000000111111111222222222223333333334444444445555566666667777777788888889999::::::;;;;;;<<<<<<<===>>>>>>>?????@@@@@AAABBBBBCCCCCCCDDEEEEEFFFFFGGGGGHHHHIIIIIJJJJJKKKKKLLMMMMMNNNNNOOOOPPPPQQQQQRRRRSSSTTTTUUUUUVVVVWWWWXXXYYYYYZZZZ[[[[\\\\]]]]]^^^___`````aaaabbcccccddddeeeeeffgggghhhhhiiihhhgggggfffeeeedddddcccbbbaaaaa````__^^^^^]]]]\\\\\[[ZZZZZYYYYXXXXXWWWVVVVVUUUTTTTTSSSRRRRRQQQQQPPOOOOONNNNNMMMMMLLLKKKKKJJJJJIIIIIHHGGGGGFFFFFEEEEEEEDDCCCCCCBBBBBAAAA@@@@@??????>>>>>====<<<<<<;;;;;;;::::::9999988888877777777666666655555544444444433333333332222222222211111111100000000000000000000/////////////////////////////////////////00000000000000000000111111111222222222223333333333444444444555555666666667777777888888899999::::::;;;;;;<<<<<<====>>>>>??????@@@@@AAAABBBBBCCCCCCDDDEEEEEEFFFFFGGGGGHHHIIIIIJJJJJKKKKKLLMMMMMNNNNNOOOOOPPPQQQQQRRRRRSSTTTTTUUUUVVVVVWWXXXXXYYYYZZZZZ[[[\\\\\]]]^^^^^___````aaaaabbccccdddddeeeeffggggghhhhiiiihhhhhgggfffeeeeeddddcccccbbaaaa`````__^^^^^]]]]\\\\\[[[ZZZYYYYYXXXXWWWWVVVVUUUUUTTTTTSSRRRRRQQQQQPPPOOOOONNNNNMMMLLLLKKKKKJJJJJIIIIIHHHGGGGGFFFFFEEEEEEDDCCCCCCCBBBBBAAA@@@@@???????>>>>>=====<<<<<<;;;;;;::::::999988888888777777766666666555555444444444333333333322222222222211111111111000000000000000000000000000000000000000000000000000000000000000000000111111111112222222222222333333333344444444455555566666667777777788888889999::::::;;;;;;;<<<<<<=====>>>>>??????@@@@@AAAABBBBBCCCCCCDDDEEEEEEFFFFFGGGGGHHIIIIIJJJJJKKKKKLLLLMMMMNNNNNOOOOOPPQQQQQRRRRRSSSTTTTTUUUUUVVVVWWWXXXXYYYYYZZZZ[[\\\\\]]]]^^^^^___`````aaabbbcccccddddeeeeeffgggghhhhhiiiiihhhhgggggffeeeedddddccccbbaaaaa````____^^^]]]]]\\\\[[[ZZZZZYYYYYXXXWWWWVVVVUUUUUTTTTSSSRRRRRQQQQPPPPOOOOONNNNMMMMMLLLKKKKKJJJJJIIIIHHHHGGGGGFFFFFEEEEEDDDDCCCCCCBBBBBAAAA@@@@@??????>>>>>>====<<<<<<;;;;;;:::::::999998888888777777776666666555555444444444433333333332222222222222211111111111110000000000000000000000000000000000000000000000000000000011111111111122222222222222333333333344444444445555556666666677777778888888899999::::::;;;;;;<<<<<<<===>>>>>>>??????@@@@@AAAABBBBBCCCCCCDDDDEEEEEFFFFFGGGGGHHHIIIIJJJJJKKKKKLLLLMMMMMNNNNOOOOOPPPQQQQRRRRRSSSSTTTTUUUUUVVVWWWWXXXXYYYYYZZZZZ[[\\\\]]]]]^^^^____```aaaaabbbccccdddddeeefffggggghhhhiiiiiihhhhhggggffeeeeeddddcccccbbaaaa`````___^^^^^]]]\\\\\[[[ZZZZZYYYYXXXXXWWVVVVVUUUUTTTTTSSSSRRRQQQQQPPPPOOOONNNNNMMMMMLLLLKKKJJJJJIIIIIHHHHGGGGGFFFFFEEEEEDDDDCCCCCCBBBBBAAAA@@@@@@?????>>>>>>====<<<<<<;;;;;;;:::::::9999988888877777777766666666555555444444444433333333333222222222222222111111111111111000000000000000000000000000000000000000001111111111111112222222222222223333333333334444444444555555666666677777777788888899999::::::::;;;;;;<<<<<<====>>>>>>?????@@@@@@@AAABBBBBCCCCCCCDDDEEEEEFFFFFGGGGGHHHHIIIIIJJJJJKKKKLLLLMMMMMNNNNNOOOPPPPQQQQQRRRRSSSSTTTTTUUUVVVVVWWWXXXXXYYYYZZZZZ[[\\\\\]]]]^^^^^__`````aaaabbbcccccdddeeeeefffgggghhhhhiiiiiiihhhhgggggffeeeedddddccccbbbbaaa`````___^^^^]]]]]\\\[[[[ZZZZYYYYYXXXXWWWVVVVUUUUUTTTTTSSSRRRRRQQQQQPPOOOOONNNNNMMMMMLLLKKKKKJJJJJIIIIIHHHGGGGGFFFFFEEEEEDDDDCCCCCCBBBBBAAAA@@@@@@?????>>>>>>>=====<<<<<<;;;;;;::::::99999888888887777777776666666555555554444444444333333333333222222222222222211111111111111111111111111111111111111111111111111111111111222222222222222233333333333334444444444555555566666666777777777888888899999::::::;;;;;;;<<<<<<=====>>>>>>?????@@@@@@AAAABBBBBCCCCCCDDDDEEEEEFFFFFGGGGGHHHHIIIIIJJJJJKKKKKLLMMMMMNNNNNOOOOOPPPQQQQQRRRRRSSTTTTTUUUUUVVVVWWWWXXXXYYYYYZZZ[[[[\\\\]]]]]^^^^__`````aaaabbbbcccdddddeeeefffggggghhhiiiijiiiihhhhhggggffffeeeddddcccccbbbaaaaa```___^^^^^]]]]\\\\\[[ZZZZZYYYYYXXXXWWWWVVVUUUUUTTTTTSSSRRRRRQQQQQPPOOOOONNNNNMMMMMLLLKKKKKJJJJJIIIIIHHHHGGGGGFFFFFEEEEEDDDCCCCCCCBBBBBAAA@@@@@@@??????>>>>>>====<<<<<<;;;;;;::::::::999998888888777777777666666666555555444444444443333333333333322222222222222222222111111111111111111111111111111111111111112222222222222222222233333333333333444444444445555555666666667777777778888888899999:::::::;;;;;;<<<<<<<===>>>>>>>??????@@@@@@AAAABBBBBCCCCCCDDDDEEEEEFFFFFGGGGGHHHHIIIIIJJJJJKKKKKLLMMMMMNNNNNOOOOOPPPQQQQQRRRRRSSTTTTTUUUUUVVVVWWWWXXXYYYYYZZZZZ[[[\\\\\]]]]^^^^^__````aaaaabbcccccddddeeeeffffggghhhhhiiiijjjiiihhhhgggggfffeeeeedddccccbbbbaaaa`````__^^^^^]]]]\\\\\[[ZZZZZYYYYXXXXXWWWVVVVVUUUUUTTTSSSSRRRRRQQQQPPPPOOOOONNNNNMMMLLLLKKKKKJJJJJIIIIIHHHHGGGGGFFFFFEEEEEEDDDCCCCCCBBBBBAAAA@@@@@@??????>>>>>>====<<<<<<;;;;;;;;:::::::9999988888888777777777666666665555555544444444444333333333333333222222222222222222222222222222222222222222222222222222222222222222222223333333333333334444444444445555555666666666777777777888888899999::::::::;;;;;;;<<<<<<====>>>>>>???????@@@@@@AAAABBBBBCCCCCCDDEEEEEEEFFFFFGGGGGHHHIIIIIJJJJJKKKKKLLLLMMMMNNNNNOOOOOPPPPQQQRRRRRSSSSTTTTUUUUUVVVVVWWXXXXXYYYYZZZZZ[[[\\\\\]]]^^^^^___`````aaaabbbccccddddeeeeeffggggghhhhiiiijjjjiiiiihhhggggffffeeeedddddcccbbbaaaaa````___^^^^]]]]]\\\\[[[[ZZZYYYYYXXXXWWWWVVVVVUUUUTTTTTSSSRRRRQQQQQPPPPOOOONNNNNMMMMMLLLKKKKKJJJJJIIIIIHHHHGGGGGFFFFFEEEEEEDDDCCCCCCBBBBBAAAAA@@@@@??????>>>>>>>=====<<<<<<;;;;;;;:::::::9999988888888777777777666666666655555544444444444443333333333333333322222222222222222222222222222222222222222222222222222222222333333333333333333444444444444555555666666666677777777788888888899999::::::;;;;;;;;<<<<<<=====>>>>>>??????@@@@@AAAAABBBBBCCCCCCCDDEEEEEEFFFFFGGGGGHHHHIIIIIJJJJJKKKKKLLLLMMMMMNNNNNOOOOPPPQQQQQRRRRSSSSTTTTTUUUUVVVVVWWWXXXXYYYYYZZZZ[[[[\\\]]]]]^^^^____````aaaaabbccccdddddeeeefffgggghhhhiiiiijjjjjiiiihhhgggggfffeeeeeddddcccccbbaaaa`````__^^^^^]]]]\\\\\[[[ZZZZZYYYYYXXXWWWWVVVVUUUUUTTTTTSSRRRRRQQQQQPPPOOOOONNNNNMMMMMLLLLKKKKKJJJJJIIIIIHHHGGGGGFFFFFEEEEEEEDDDCCCCCBBBBBBBAAA@@@@@@@??????>>>>>>====<<<<<<;;;;;;;;:::::::99999888888888777777777666666666655555554444444444444433333333333333333333322222222222222222222222222222222222222222333333333333333333333344444444444445555555566666666667777777778888888899999::::::::;;;;;;;<<<<<<<===>>>>>>>??????@@@@@@AAAABBBBBBCCCCCDDDDEEEEEEFFFFFGGGGGHHHHIIIIIJJJJJKKKKKLLLLMMMMMNNNNNOOOOOPPQQQQQRRRRRSSSTTTTTUUUUUVVVWWWWXXXXYYYYYZZZZZ[[\\\\\]]]]^^^^^___`````aaabbbcccccddddeeeeeffggggghhhhiiiijjjjjjiiiiihhhhgggffffeeeedddddccccbbaaaaa`````___^^^]]]]]\\\\\[[[ZZZZZYYYYXXXXXWWVVVVVUUUUUTTTTTSSSRRRRRQQQQQPPOOOOONNNNNMMMMMLLLLKKKKKJJJJJIIIIIHHHHGGGGGFFFFFEEEEEEDDDDCCCCCBBBBBBAAAA@@@@@@??????>>>>>>=====<<<<<<<;;;;;;;::::::::999998888888877777777776666666666555555555444444444444444333333333333333333333333333333333333333333333333333333333333333333333334444444444444445555555556666666666777777777788888888899999:::::::;;;;;;;;<<<<<<=====>>>>>>???????@@@@@@AAAABBBBBBCCCCCDDDDEEEEEEFFFFFGGGGGHHHHIIIIIJJJJJKKKKKLLLMMMMMNNNNNOOOOOPPPQQQQQRRRRRSSTTTTTUUUUUVVVVVWWWXXXXXYYYYZZZZZ[[\\\\\]]]]]^^^^__`````aaaaabbbccccdddddeeeffffgggghhhhiiiiijjkjjjjiiiihhhhhggggffeeeeeddddcccccbbaaaaa````____^^^^]]]]]\\\[[[[ZZZZYYYYYXXXXXWWVVVVVUUUUUTTTTSSSSRRRRRQQQQPPPOOOOONNNNNMMMMMLLLLKKKKKJJJJJIIIIIHHHHGGGGGFFFFFEEEEEEDDDDCCCCCBBBBBBAAAA@@@@@@??????>>>>>>>=====<<<<<<<;;;;;;;;:::::::9999988888888877777777776666666666655555555544444444444444444333333333333333333333333333333333333333333333333333333333334444444444444444445555555566666666666677777777778888888899999::::::::;;;;;;;<<<<<<<<=====>>>>>>??????@@@@@@@AAABBBBBBBCCCCCDDDEEEEEEEFFFFFGGGGGHHHIIIIIJJJJJKKKKKLLLLMMMMMNNNNNOOOOOPPPPQQQQRRRRRSSSTTTTUUUUUVVVVVWWWXXXXXYYYYYZZZ[[[[\\\\]]]]]^^^^___````aaaaabbbcccccdddeeeeefffgggghhhhhiiijjjjkkkjjiiiiihhhhgggggffeeeedddddccccbbbbaaa`````___^^^^^]]]]\\\\\[[ZZZZZYYYYYXXXXWWWWVVVVVUUUTTTTTSSSSRRRRQQQQQPPPPOOOOONNNNNMMMMMLLKKKKKKJJJJJIIIIIHHHHGGGGGFFFFFEEEEEEDDDDCCCCCCBBBBBAAAAA@@@@@@@??????>>>>>>=====<<<<<<;;;;;;;;:::::::::99999888888888877777777776666666666655555555554444444444444444444443333333333333333333333333333333333333333344444444444444444444445555555555666666666667777777777888888888899999:::::::::;;;;;;;<<<<<<=====>>>>>>>??????@@@@@@AAAAABBBBBCCCCCCDDDDEEEEEEFFFFFGGGGGHHHHIIIIIJJJJJKKKKKKLLLMMMMMNNNNNOOOOOPPPPQQQQQRRRSSSSTTTTTUUUUVVVVVWWWWXXXYYYYYZZZZZ[[[\\\\\]]]]^^^^^__`````aaaabbbbcccdddddeeeefffggggghhhiiiiijjjkkkkkjjiiiihhhhhggggffeeeeeddddcccccbbbaaaaa```____^^^^]]]]]\\\\\[[ZZZZZYYYYXXXXXWWWWVVVVUUUUUTTTTTSSRRRRRQQQQQPPPPOOOOONNNNNMMMMMLLKKKKKKKJJJJJIIIIIHHHGGGGGFFFFFFFEEEEEDDDCCCCCCCBBBBBBAAAA@@@@@@??????>>>>>>=====<<<<<<<<;;;;;;;:::::::::999998888888888777777777776666666666666555555555544444444444444444444444444444444444444444444444444444444444444444444444444555555555566666666666677777777777888888888899999:::::::::;;;;;;;;<<<<<<<=====>>>>>>???????@@@@@@AAAABBBBBBCCCCCCDDDDEEEEEFFFFFFGGGGGHHHHIIIIIJJJJJKKKKKKLLLMMMMMNNNNNOOOOOPPPQQQQQRRRRRSSSTTTTTUUUUUVVVVWWWXXXXXYYYYZZZZZ[[[\\\\\]]]]]^^^____````aaaaabbcccccddddeeeeefffggghhhhhiiiijjjkkkkkkjjiiiiihhhhgggggfffeeeeedddcccccbbbaaaa`````__^^^^^]]]]]\\\\[[[[ZZZYYYYYXXXXXWWWVVVVVUUUUUTTTTTSSRRRRRQQQQQPPPPOOOOONNNNNMMMMMLLLKKKKKJJJJJJIIIIIHHHHGGGGGFFFFFFEEEEEDDDDCCCCCCBBBBBBAAAA@@@@@@????????>>>>>>=====<<<<<<<;;;;;;;;:::::::::9999998888888887777777777776666666666666655555555555544444444444444444444444444444444444444444444444444444444444555555555555566666666666667777777777777888888888999999:::::::::;;;;;;;<<<<<<<<=====>>>>>>???????@@@@@@@AAABBBBBBBCCCCCCDDDDEEEEEFFFFFFGGGGGHHHHIIIIIJJJJJJKKKKKLLMMMMMNNNNNOOOOOPPPPQQQQQRRRRRSSSTTTTTUUUUUVVVVVWWXXXXXYYYYYZZZZ[[[[\\\]]]]]^^^^^___`````aaaabbcccccddddeeeeeffggggghhhhiiiiijjjkkkkkkkjjjiiihhhhhggggffffeeeedddddcccbbbbaaaa`````__^^^^^]]]]\\\\\[[[ZZZZZYYYYYXXXXXWWVVVVVUUUUUTTTTSSSSRRRRRQQQQQPPOOOOONNNNNMMMMMMLLLKKKKKJJJJJJIIIIIHHHHGGGGGFFFFFFEEEEEDDDDCCCCCCBBBBBBAAAAA@@@@@@@??????>>>>>>>====<<<<<<<<<;;;;;;;:::::::::99999988888888887777777777777666666666666666555555555555555544444444444444444444444444444444444444444555555555555555556666666666666667777777777778888888888999999:::::::::;;;;;;;;<<<<<<<<====>>>>>>>>??????@@@@@@AAAAABBBBBBCCCCCCCDDDEEEEEFFFFFFFGGGGGHHHIIIIIJJJJJJJKKKKKLLMMMMMMNNNNNOOOOOPPPQQQQQRRRRRSSSSTTTUUUUUVVVVVWWWXXXXXYYYYYZZZZZ[[\\\\\]]]]^^^^^___`````aaabbbbccccdddddeeeefffgggghhhhhiiiijjkkkkkkkkkjjjjiiiihhhgggggfffeeeeeddddcccccbbaaaaa````____^^^]]]]]\\\\\[[[ZZZZZYYYYYXXXXWWWVVVVVUUUUTTTTTSSSSRRRRRQQQQQPPOOOOONNNNNMMMMMLLLLKKKKKJJJJJJIIIIIHHHHGGGGGFFFFFFEEEEEEEDDDCCCCCCCBBBBBBAAAA@@@@@@???????>>>>>>>=====<<<<<<<;;;;;;;;;:::::::::999999888888888887777777777777666666666666666666555555555555555555555555555555555555555555555555555555555556666666666666666666777777777777888888888888999999:::::::::;;;;;;;;<<<<<<<<=====>>>>>>????????@@@@@@AAAABBBBBBCCCCCCDDDDEEEEEEFFFFFFGGGGGHHHHIIIIIJJJJJJKKKKKLLLLMMMMMNNNNNOOOOOPPPQQQQQRRRRRSSSTTTTTUUUUVVVVVWWWWXXXXYYYYYZZZZZ[[\\\\\]]]]]^^^^____```aaaaabbbcccccddddeeeeeffggggghhhhiiiijjjkkkklkkkkkjjjiiiiihhhhgggggffeeeedddddccccbbbaaaa`````___^^^^^]]]]]\\\[[[[ZZZZZYYYYXXXXXWWWWVVVUUUUUTTTTTSSSSRRRRRQQQQQPPPOOOOONNNNNMMMMMLLLKKKKKJJJJJJJIIIIIHHHGGGGGGGFFFFFEEEEEEDDDDCCCCCCBBBBBBAAAA@@@@@@@???????>>>>>>>=====<<<<<<<<;;;;;;;;::::::::::99999998888888888877777777777777666666666666666666666655555555555555555555555555555555555555555666666666666666666666667777777777777788888888888999999::::::::::;;;;;;;;;<<<<<<<=====>>>>>>>>??????@@@@@@@@AAABBBBBBBCCCCCCDDDDEEEEEEFFFFFGGGGGGHHHHIIIIIJJJJJJKKKKKLLLLMMMMMNNNNNOOOOOPPQQQQQRRRRRSSSSTTTTTUUUUUVVVVWWWWXXXXXYYYZZZZZ[[[[\\\\]]]]]^^^^^__`````aaaabbbbccccdddddeeefffggggghhhhiiiiijjkkkkklllkkkjjjjiiiihhhhhggggffeeeeedddddccccbbaaaaa`````___^^^^^]]]]\\\\\[[[ZZZZYYYYYXXXXXWWWVVVVVUUUUUTTTTTSSRRRRRQQQQQPPPPOOOOONNNNNMMMMMLLLLKKKKKJJJJJJIIIIIHHHHGGGGGGFFFFFEEEEEEDDDDCCCCCCBBBBBBAAAAA@@@@@@@???????>>>>>>>>=====<<<<<<<;;;;;;;;;::::::::::999999988888888888877777777777777776666666666666666666666666666666666666666666666666666666666666666666666666677777777777777778888888888899999999::::::::::;;;;;;;;<<<<<<<<=====>>>>>>>????????@@@@@@AAAAABBBBBBCCCCCCCDDDEEEEEEEFFFFFGGGGGGHHHHIIIIIJJJJJJKKKKKLLLLMMMMMNNNNNOOOOOPPPQQQQQRRRRRSSSTTTTTUUUUUVVVVVWWXXXXXYYYYYZZZZ[[[[\\\\\]]]]^^^^^__`````aaaaabbbcccdddddeeeeefffgggghhhhhiiijjjjkkkkllllkkkkkjjiiiiihhhhgggggffeeeeeddddcccccbbbaaaaa```____^^^^]]]]]\\\\\[[ZZZZZYYYYYXXXXXWWWVVVVVUUUUUTTTTTSSRRRRRQQQQQPPPPOOOOONNNNNMMMMMLLLLKKKKKJJJJJJIIIIIHHHHGGGGGGFFFFFEEEEEEDDDDDCCCCCCCBBBBBBAAAA@@@@@@@??????>>>>>>>>======<<<<<<<<;;;;;;;;;;::::::::::9999999888888888888877777777777777777666666666666666666666666666666666666666666666666666666666666677777777777777777788888888888899999999::::::::::;;;;;;;;;;<<<<<<<=======>>>>>>>??????@@@@@@@@AAAABBBBBBCCCCCCDDDDDEEEEEEFFFFFGGGGGGGHHHIIIIIJJJJJJJKKKKKLLLMMMMMNNNNNOOOOOPPPPQQQQQRRRRRSSSTTTTTUUUUUVVVVVWWXXXXXYYYYYZZZZZ[[[\\\\\]]]]]^^^____````aaaaabbcccccddddeeeeefffggggghhhiiiiijjjkkkkklllllkkkkkjjiiiihhhhhggggffffeeedddddccccbbbbaaaa`````__^^^^^]]]]]\\\\\[[[ZZZZZYYYYYXXXWWWWVVVVVUUUUUTTTTTSSSRRRRRQQQQQPPPOOOOONNNNNMMMMMLLLLKKKKKKJJJJJIIIIIHHHHGGGGGGFFFFFFFEEEEEEDDDDCCCCCCBBBBBBAAAAA@@@@@@????????>>>>>>>=======<<<<<<<;;;;;;;;;;::::::::::99999999988888888888888777777777777777777777666666666666666666666666666666666666666666667777777777777777777778888888888888899999999::::::::::;;;;;;;;;;<<<<<<<<======>>>>>>>>???????@@@@@@AAAAABBBBBBBCCCCCCDDDDEEEEEEFFFFFFGGGGGGHHHHIIIIIJJJJJKKKKKKLLLLMMMMMNNNNNOOOOOPPPPQQQQQRRRRRSSTTTTTUUUUUVVVVVWWWWXXXXYYYYYZZZZZ[[\\\\\]]]]]^^^^^___`````aaaabbbccccdddddeeeeffffggghhhhhiiiijjjkkkkklllllllkkkkjjiiiiihhhhgggggfffeeeeedddcccccbbbaaaaa`````__^^^^^]]]]]\\\\[[[[ZZZZZYYYYXXXXXWWWVVVVVUUUUTTTTTSSSSRRRRRQQQQQPPPPOOOOONNNNNMMMMMLLLKKKKKKKJJJJJIIIIIHHHHHGGGGGFFFFFFEEEEEEDDDDCCCCCCBBBBBBBBAAA@@@@@@@@???????>>>>>>>>======<<<<<<<<<;;;;;;;;;:::::::::::9999999998888888888888888777777777777777777777777777777777777777777777777777777777777777777777777778888888888888888999999999:::::::::::;;;;;;;;;<<<<<<<<=======>>>>>>>????????@@@@@@@AAAABBBBBBBCCCCCCCDDDEEEEEEEFFFFFFGGGGGHHHHHIIIIIJJJJJKKKKKKLLLLMMMMMNNNNNOOOOOPPPPQQQQQRRRRRSSSTTTTTUUUUVVVVVWWWWXXXXXYYYYZZZZZ[[[\\\\]]]]]^^^^^___`````aaaaabbcccccddddeeeeeffggggghhhhiiiiijjjkkklllllllllkkkkkjjjiiiiihhhgggggfffeeeeeddddcccccbbaaaaa````____^^^^^]]]\\\\\[[[[ZZZZYYYYYXXXXXWWVVVVVUUUUUTTTTTSSSSRRRRRQQQQQPPPPOOOOONNNNNMMMMMLLLLKKKKKKJJJJJIIIIIIHHHHGGGGGFFFFFFEEEEEEDDDDDCCCCCCCBBBBBBAAAAA@@@@@@@????????>>>>>>>=======<<<<<<<<;;;;;;;;;;::::::::::::99999999998888888888888888877777777777777777777777777777777777777777777777777777777777778888888888888888889999999999:::::::::::;;;;;;;;;;<<<<<<<<<======>>>>>>>>???????@@@@@@@@AAAAABBBBBBCCCCCCDDDDDEEEEEEFFFFFFFGGGGGHHHIIIIIIIJJJJJKKKKKKLLLLMMMMMNNNNNOOOOOPPPQQQQQRRRRRSSSSTTTTTUUUUUVVVVVWWWXXXXXYYYYYZZZ[[[[\\\\\]]]]^^^^^____```aaaaabbbcccccddddeeeeeffggggghhhhiiiiijjkkkkkllllmlllllkkkkjjjjiiiihhhhhgggffffeeeedddddccccbbbaaaa`````____^^^^]]]]]\\\\\[[ZZZZZYYYYYXXXXXWWWVVVVVUUUUUTTTTTSSSRRRRRQQQQQPPPPOOOOONNNNNMMMMMLLLLKKKKKKJJJJJIIIIIIHHHHGGGGGGFFFFFFFEEEEEEDDDDCCCCCCBBBBBBBAAAA@@@@@@@@????????>>>>>>>>======<<<<<<<<<;;;;;;;;;;;:::::::::::::9999999999888888888888888888888777777777777777777777777777777777777777777778888888888888888888889999999999::::::::::::;;;;;;;;;;;;<<<<<<<<=======>>>>>>>?????????@@@@@@@AAAABBBBBBBBCCCCCCDDDDEEEEEEFFFFFFGGGGGGHHHHIIIIIIJJJJJKKKKKKKLLLMMMMMNNNNNOOOOOPPPPQQQQQRRRRRSSSSTTTTTUUUUUVVVVVWWXXXXXYYYYYZZZZZ[[[\\\\\]]]]]^^^^___`````aaaabbbbccccdddddeeeffffgggghhhhhiiiijjjkkkklllllmmmlllkkkkkjjjiiiiihhhhgggggffeeeeeddddcccccbbbbaaa`````___^^^^^]]]]]\\\\\[[ZZZZZYYYYYXXXXXWWWVVVVVUUUUUTTTTTSSSSRRRRRQQQQQPPPOOOOONNNNNMMMMMLLLLKKKKKKJJJJJIIIIIIIHHHGGGGGGGFFFFFFEEEEEEDDDDCCCCCCCBBBBBBBAAAAA@@@@@@@????????>>>>>>>>=======<<<<<<<<<<;;;;;;;;;;;::::::::::::999999999999888888888888888888888888888888888888888888888888888888888888888888888888888899999999999:::::::::::::;;;;;;;;;;;<<<<<<<<<<======>>>>>>>>>???????@@@@@@@@AAAAABBBBBBCCCCCCCCDDDEEEEEEEFFFFFFGGGGGGHHHHIIIIIIJJJJJKKKKKKLLLLMMMMMNNNNNOOOOOPPPPQQQQQRRRRRSSSSTTTTTUUUUUVVVVVWWXXXXXYYYYYZZZZZ[[[\\\\\]]]]]^^^^^__`````aaaabbbbcccccdddeeeeefffggggghhhhiiiiijjkkkkkllllmmmmmllllkkkkkjjiiiihhhhhgggggffeeeeeddddcccccbbbaaaaa`````__^^^^^]]]]]\\\\[[[[ZZZZZYYYXXXXXWWWWVVVVVUUUUUTTTTTSSSSRRRRRQQQQQPPPPOOOOONNNNNMMMMMMLLKKKKKKKJJJJJJIIIIIHHHHGGGGGGFFFFFFEEEEEEDDDDDCCCCCCCBBBBBBBAAAAA@@@@@@@@???????>>>>>>>>>======<<<<<<<<<<;;;;;;;;;;;;;:::::::::::::99999999999999888888888888888888888888888888888888888888888888888888888888899999999999999::::::::::::::;;;;;;;;;;;;<<<<<<<<<<=======>>>>>>>>????????@@@@@@@AAAAABBBBBBBBCCCCCCDDDDDEEEEEEFFFFFFFGGGGGGHHHHIIIIIJJJJJJKKKKKKLLLMMMMMMNNNNNOOOOOPPPPQQQQQRRRRRSSSTTTTTUUUUUVVVVVWWWWXXXXXYYYYZZZZZ[[[[\\\]]]]]^^^^^___`````aaaaabbcccccddddeeeeefffggggghhhhhiiijjjkkkkkllllmmmmmmlllllkkkkjjjiiiihhhhhggggffffeeedddddccccbbbbaaaaa````___^^^^^]]]]\\\\\[[[[ZZZZYYYYYXXXXXWWWVVVVVUUUUUTTTTTSSSSRRRRRQQQQQPPPPOOOOONNNNNMMMMMMLLLLKKKKKJJJJJJIIIIIHHHHHGGGGGGFFFFFFFEEEEEEDDDDCCCCCCCBBBBBBBBAAAAA@@@@@@@????????>>>>>>>>>>======<<<<<<<<<<;;;;;;;;;;;;:::::::::::::::::9999999999999999888888888888888888888888888888888888888888889999999999999999::::::::::::::::;;;;;;;;;;;;;<<<<<<<<<<======>>>>>>>>>>???????@@@@@@@@AAAAABBBBBBBCCCCCCCCDDDDEEEEEEFFFFFFGGGGGGHHHHHIIIIIJJJJJJJKKKKKLLLMMMMMMMNNNNNOOOOOPPPQQQQQRRRRRSSSSTTTTTUUUUUVVVVVWWWWXXXXXYYYYYZZZZ[[[\\\\\]]]]^^^^^____````aaaaabbbccccdddddeeeeffffggghhhhhiiiijjjjkkkklllllmmmmmmmllllkkkkkjjiiiiihhhhgggggfffeeeeedddddcccbbbbaaaa`````____^^^]]]]]\\\\\[[[ZZZZZYYYYYXXXXXWWWWVVVVVUUUUUTTTTTSSRRRRRRQQQQQPPPPOOOOONNNNNMMMMMMLLLLKKKKKJJJJJJIIIIIIIHHHGGGGGGGFFFFFFEEEEEEDDDDDCCCCCCBBBBBBBBAAAAA@@@@@@@@@????????>>>>>>>>>======<<<<<<<<<<<<;;;;;;;;;;;;;:::::::::::::::::::9999999999999999999999999999999999999999999999999999999999999:::::::::::::::::::;;;;;;;;;;;;;;<<<<<<<<<<<======>>>>>>>>>?????????@@@@@@@@@AAAAABBBBBBBCCCCCCDDDDDEEEEEEEFFFFFFGGGGGGHHHHIIIIIIJJJJJJKKKKKLLLLMMMMMMNNNNNOOOOOPPPPQQQQQRRRRRRSSSTTTTTUUUUUVVVVVWWWWXXXXXYYYYYZZZZZ[[\\\\\]]]]]^^^^____`````aaabbbbccccdddddeeeeeffggggghhhhiiiiijjjkkkkklllmmmmmmmmmlllllkkkkjjjjiiihhhhhgggggfffeeeeeddddcccccbbaaaaa`````___^^^^^]]]]]\\\\\[[ZZZZZYYYYYXXXXXWWWWVVVVVUUUUUTTTTTSSRRRRRRRQQQQQPPPOOOOONNNNNMMMMMMMLLLKKKKKJJJJJJJIIIIIIHHHHGGGGGGFFFFFFEEEEEEEEDDDCCCCCCCCBBBBBBBAAAAA@@@@@@@@@?????????>>>>>>>>>=======<<<<<<<<<<<;;;;;;;;;;;;;;;:::::::::::::::::::::::99999999999999999999999999999999999999999999::::::::::::::::::::::;;;;;;;;;;;;;;;<<<<<<<<<<<========>>>>>>>>>????????@@@@@@@@@AAAAABBBBBBBBCCCCCCCDDDDEEEEEEEFFFFFFFGGGGGGHHHHIIIIIIJJJJJJKKKKKLLLLMMMMMMNNNNNOOOOOPPPPQQQQQRRRRRRSSSTTTTTUUUUUVVVVVWWWXXXXXYYYYYZZZZZ[[[\\\\\]]]]]^^^^^__`````aaaaabbbcccccddddeeeeeffggggghhhhhiiiijjjjkkklllllmmmmnmmmmmllllkkkkkjjjiiiiihhhhhgggffffeeeedddddcccccbbaaaaa`````___^^^^^]]]]]\\\\[[[ZZZZZYYYYYXXXXXWWWVVVVVUUUUUTTTTTTSSSRRRRRRQQQQQPPPPOOOOONNNNNMMMMMMLLLLKKKKKKJJJJJIIIIIIHHHHHGGGGGGFFFFFFFEEEEEEDDDDDCCCCCCCBBBBBBBBAAAAA@@@@@@@@@????????>>>>>>>>>>========<<<<<<<<<<<<;;;;;;;;;;;;;;;;;::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::;;;;;;;;;;;;;;;;<<<<<<<<<<<<<=======>>>>>>>>>>?????????@@@@@@@@@AAAAABBBBBBBCCCCCCCCDDDDDEEEEEEFFFFFFGGGGGGHHHHHIIIIIIIJJJJJKKKKKKLLLLMMMMMMNNNNNOOOOOPPPPQQQQQRRRRRRSSTTTTTTTUUUUUVVVVVWWXXXXXYYYYYZZZZZ[[[[\\\\]]]]]^^^^^__`````aaaaabbbcccccdddddeeeffffgggghhhhhiiiiijjkkkkkllllmmmmmnnnmmmmmlllkkkkkjjjiiiiihhhhgggggffeeeeedddddccccbbbbaaaaa```____^^^^^]]]]\\\\\[[[[ZZZZZYYYYYXXXXXWWVVVVVUUUUUTTTTTTSSSRRRRRRQQQQQPPPPOOOOONNNNNNMMMMMLLLLKKKKKKJJJJJJIIIIIIIHHHGGGGGGGFFFFFFEEEEEEEDDDDDCCCCCCCBBBBBBBBAAAAA@@@@@@@@@?????????>>>>>>>>>>>========<<<<<<<<<<<<<;;;;;;;;;;;;;;;;;;::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::;;;;;;;;;;;;;;;;;<<<<<<<<<<<<<<=======>>>>>>>>>>>>????????@@@@@@@@@AAAAABBBBBBBBBCCCCCCDDDDDEEEEEEEEFFFFFFGGGGGGHHHHIIIIIIJJJJJJKKKKKKKLLLMMMMMNNNNNNNOOOOOPPPQQQQQRRRRRRRSSTTTTTTUUUUUVVVVVWWWXXXXXYYYYYZZZZZ[[[[\\\\\]]]^^^^^____````aaaaabbbbcccdddddeeeeefffggggghhhhiiiiijjkkkkkllllmmmmmnnnnnmmmmlllllkkkjjjjiiiihhhhhgggggffeeeeeddddcccccbbbbaaaa`````___^^^^]]]]]\\\\\[[[[ZZZZZYYYYYXXXXXWWVVVVVUUUUUTTTTTTTSSRRRRRRQQQQQPPPPOOOOONNNNNNMMMMMLLLLKKKKKKJJJJJJJIIIIIIHHHHGGGGGGFFFFFFFEEEEEEEDDDDDCCCCCCCBBBBBBBBBAAAAA@@@@@@@@@??????????>>>>>>>>>>========<<<<<<<<<<<<<<<;;;;;;;;;;;;;;;;;;;;;;;::::::::::::::::::::::::::::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;<<<<<<<<<<<<<<<=========>>>>>>>>>>??????????@@@@@@@@@AAAAABBBBBBBBCCCCCCCCDDDDDEEEEEEFFFFFFFFGGGGGGHHHHIIIIIIJJJJJJKKKKKKLLLLMMMMMNNNNNNOOOOOPPPPQQQQQRRRRRRSSSTTTTTTUUUUUVVVVVWWWXXXXXYYYYYZZZZZ[[[\\\\\]]]]]^^^^____`````aaaabbbcccccddddeeeeefffggggghhhhhiiijjjjkkkklllllmmmmnnnnnnmmmmmllllkkkkkjjiiiiihhhhhggggffffeeedddddcccccbbbaaaaa`````__^^^^^]]]]]\\\\\[[[ZZZZZYYYYYXXXXXWWWWVVVVVUUUUUTTTTTSSSRRRRRRRQQQQQPPPOOOOONNNNNNNMMMMMLLLLLKKKKKJJJJJJIIIIIIHHHHHGGGGGGFFFFFFFEEEEEEEDDDDDCCCCCCCCBBBBBBBAAAAAA@@@@@@@@@??????????>>>>>>>>>>>=========<<<<<<<<<<<<<<<<;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;<<<<<<<<<<<<<<<<=========>>>>>>>>>>>??????????@@@@@@@@@AAAAAABBBBBBBBCCCCCCCDDDDDEEEEEEEEFFFFFFGGGGGGHHHHHIIIIIIIJJJJJJKKKKKLLLLLMMMMMNNNNNNOOOOOPPPPQQQQQRRRRRRSSSSTTTTTUUUUUVVVVVWWWWXXXXXYYYYYZZZZZ[[\\\\\]]]]]^^^^^___`````aaaaabbcccccdddddeeeeffffggghhhhhiiiiijjjkkkkkllllmmmmmnnooonnmmmmlllllkkkkkjjiiiiihhhhgggggfffeeeeedddddcccccbbaaaaa`````___^^^^^]]]]]\\\\\[[ZZZZZYYYYYXXXXXWWWWVVVVVUUUUUTTTTTSSSSRRRRRRQQQQQPPPPOOOOONNNNNNMMMMMMLLLLKKKKKKJJJJJJIIIIIIIHHHGGGGGGGFFFFFFFEEEEEEEEDDDDDCCCCCCCBBBBBBBBBAAAAA@@@@@@@@@@??????????>>>>>>>>>>>>=========<<<<<<<<<<<<<<<<<<<;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;<<<<<<<<<<<<<<<<<<=========>>>>>>>>>>>>>??????????@@@@@@@@@@AAAAABBBBBBBBCCCCCCCCDDDDDEEEEEEEFFFFFFFFGGGGGGHHHHIIIIIIJJJJJJKKKKKKKLLLMMMMMMMNNNNNNOOOOOPPPPQQQQQRRRRRRSSSSTTTTTUUUUUVVVVVWWWXXXXXYYYYYZZZZZ[[[\\\\\]]]]]^^^^^__`````aaaaabbbcccccdddddeeeeeffggggghhhhiiiiijjjkkkkklllllmmmnnnoooonnnmmmmlllllkkkkjjjjiiihhhhhgggggfffeeeeedddddccccbbbaaaaa````____^^^^^]]]]]\\\\\[[ZZZZZYYYYYXXXXXWWWWVVVVVUUUUUTTTTTSSSSRRRRRRQQQQQPPPPOOOOOONNNNNMMMMMMLLLLKKKKKKJJJJJJJIIIIIIHHHHGGGGGGGFFFFFFFFEEEEEEDDDDDCCCCCCCCCBBBBBBBBAAAAA@@@@@@@@@@????????????>>>>>>>>>>>>==========<<<<<<<<<<<<<<<<<<<<<<<<;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;<<<<<<<<<<<<<<<<<<<<<<<==========>>>>>>>>>>>>>???????????@@@@@@@@@@AAAAABBBBBBBBBCCCCCCCCCDDDDDEEEEEEFFFFFFFGGGGGGGGHHHHIIIIIIJJJJJJKKKKKKLLLLMMMMMMNNNNNOOOOOOOPPPQQQQQRRRRRRRSSSTTTTTUUUUUVVVVVWWWWXXXXXYYYYYZZZZZ[[[\\\\\]]]]]^^^^^___````aaaaabbbbccccdddddeeeeeffggggghhhhhiiiijjjjkkklllllmmmmnnnnooooonnmmmmmllllkkkkkjjjiiiiihhhhhgggffffeeeeeddddcccccbbbbaaa`````____^^^^^]]]]\\\\\[[[[ZZZZZYYYYYXXXXXWWWVVVVVUUUUUTTTTTSSSSRRRRRRQQQQQPPPPOOOOOONNNNNMMMMMMMLLLKKKKKKKJJJJJJIIIIIIHHHHHGGGGGGFFFFFFFFEEEEEEEDDDDDCCCCCCCCCBBBBBBBBBAAAAAA@@@@@@@@@@???????????>>>>>>>>>>>>>>===========<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<===========>>>>>>>>>>>>>>???????????@@@@@@@@@@AAAAAAABBBBBBBBCCCCCCCCCDDDDDEEEEEEEEFFFFFFFGGGGGGHHHHHIIIIIIIJJJJJJKKKKKKLLLLMMMMMMNNNNNOOOOOOPPPPQQQQQRRRRRRSSSSTTTTTUUUUUVVVVVWWWWXXXXXYYYYYZZZZZ[[[[\\\\\]]]^^^^^____`````aaaabbbbcccccdddeeeeeffffgggghhhhhiiiiijjkkkkkllllmmmmmnnnoooooonnnnmmmlllllkkkkkjjjiiiiihhhhgggggfffeeeedddddcccccbbbaaaaa`````___^^^^]]]]]\\\\\[[[[ZZZZZYYYYYXXXXXWWWWVVVVVUUUUUTTTTTTSSRRRRRRRQQQQQPPPOOOOOOONNNNNNMMMMMLLLLLKKKKKKJJJJJJIIIIIIIHHHGGGGGGGGFFFFFFFEEEEEEEEDDDDDCCCCCCCCCBBBBBBBBAAAAAAA@@@@@@@@@@@???????????>>>>>>>>>>>>>>>==============<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<=============>>>>>>>>>>>>>>>????????????@@@@@@@@@@@AAAAAABBBBBBBBBCCCCCCCCCDDDDDEEEEEEEFFFFFFFFGGGGGGGHHHHIIIIIIJJJJJJKKKKKKKLLLLLMMMMMNNNNNNOOOOOOPPPPQQQQQRRRRRRSSSTTTTTTUUUUUVVVVVWWWWXXXXXYYYYYZZZZZ[[[\\\\\]]]]]^^^^____`````aaaaabbcccccdddddeeeeffffggggghhhhiiiiijjkkkkklllllmmmmnnnnooooooonnnmmmmmlllllkkkjjjjiiiihhhhhgggggffeeeeedddddcccccbbbaaaaa`````__^^^^^]]]]]\\\\\[[[[ZZZZZYYYYYXXXXXWWWWVVVVVUUUUUTTTTTTSSSRRRRRRQQQQQPPPPOOOOOONNNNNNMMMMMMLLLLKKKKKKJJJJJJJIIIIIIHHHHHGGGGGGGFFFFFFFFEEEEEEEDDDDDCCCCCCCCCBBBBBBBBBAAAAAAA@@@@@@@@@@??????????????>>>>>>>>>>>>>>>>=================<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<================>>>>>>>>>>>>>>>>??????????????@@@@@@@@@@AAAAAAAABBBBBBBBCCCCCCCCCDDDDDEEEEEEEEFFFFFFFGGGGGGGGHHHHHIIIIIIJJJJJJKKKKKKLLLLMMMMMMNNNNNNNOOOOOOPPPPQQQQQRRRRRRSSTTTTTTTUUUUUVVVVVWWWXXXXXYYYYYZZZZZ[[[[\\\\\]]]]]^^^^^___`````aaaaabbcccccdddddeeeeefffggggghhhhhiiijjjjkkkklllllmmmmmnnoooopooooonnnmmmmmllllkkkkkjjiiiiihhhhhgggggfffeeeeedddddcccbbbbaaaaa`````___^^^^^]]]]]\\\\\[[[ZZZZZYYYYYXXXXXWWWWVVVVVUUUUUTTTTTTSSSSRRRRRQQQQQQPPPPOOOOONNNNNNMMMMMMMLLLKKKKKKKJJJJJJIIIIIIIHHHHHGGGGGGGFFFFFFFEEEEEEEEEDDDDDCCCCCCCCCBBBBBBBBBBAAAAAA@@@@@@@@@@@@??????????????>>>>>>>>>>>>>>>>>>>================================================================>>>>>>>>>>>>>>>>>>??????????????@@@@@@@@@@@@@AAAAAABBBBBBBBBBCCCCCCCCCDDDDDEEEEEEEEFFFFFFFFGGGGGGHHHHHIIIIIIIIJJJJJJKKKKKKLLLLMMMMMMNNNNNNOOOOOPPPPQQQQQQRRRRRSSSSTTTTTTUUUUUVVVVVWWWWXXXXXYYYYYZZZZZ[[[[\\\\\]]]]]^^^^^__`````aaaaabbbbccccdddddeeeeeffggggghhhhhiiiiijjjkkkkkllllmmmmmnnooooopppooonnnnmmmmlllllkkkkkjjiiiiihhhhhggggffffeeeeeddddcccccbbbaaaaa````____^^^^^]]]]]\\\\\[[[[ZZZZZYYYYYXXXXXWWWVVVVVUUUUUTTTTTTTSSSRRRRRQQQQQQQPPPOOOOONNNNNNNMMMMMMLLLLLKKKKKKJJJJJJIIIIIIIHHHHHGGGGGGGFFFFFFFFEEEEEEEEDDDDDCCCCCCCCCBBBBBBBBBBAAAAAAAA@@@@@@@@@@@@???????????????>>>>>>>>>>>>>>>>>>>>>>>==============================================>>>>>>>>>>>>>>>>>>>>>>???????????????@@@@@@@@@@@@@AAAAAAABBBBBBBBBBCCCCCCCCCDDDDDEEEEEEEEEFFFFFFFGGGGGGGGHHHHHIIIIIIJJJJJJKKKKKKKLLLLLMMMMMMNNNNNNOOOOOPPPPQQQQQQRRRRRSSSSTTTTTTUUUUUVVVVVWWWWXXXXXYYYYYZZZZZ[[[[\\\\\]]]]]^^^^^___````aaaaabbbbcccccddddeeeeefffgggghhhhhiiiiijjjkkkkklllllmmmnnnnooooppppooooonnmmmmmlllllkkkkjjjjiiiiihhhgggggffffeeeedddddcccccbbaaaaa`````____^^^^^]]]]]\\\\\[[[[ZZZZZYYYYYXXXXXWWWWVVVVVUUUUUTTTTTTSSSSRRRRRQQQQQQPPPPOOOOOONNNNNNMMMMMMLLLLKKKKKKJJJJJJJIIIIIIIHHHHHGGGGGGGGFFFFFFFEEEEEEEEEDDDDDCCCCCCCCCCBBBBBBBBBBAAAAAAA@@@@@@@@@@@@@?????????????????>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>??????????????????@@@@@@@@@@@@AAAAAAAABBBBBBBBBBCCCCCCCCCCDDDDDEEEEEEEEFFFFFFFFGGGGGGGHHHHHIIIIIIIIJJJJJJKKKKKKLLLLMMMMMMNNNNNNNOOOOOOPPPPQQQQQQRRRRRSSSSTTTTTTUUUUUVVVVVWWWWXXXXXYYYYYZZZZZ[[[\\\\\]]]]]^^^^^____`````aaaaabbbcccccdddddeeeffffggggghhhhiiiiijjjjkkklllllmmmmmnnnooooopppppooooonnmmmmmllllkkkkkjjjjiiiihhhhhgggggffeeeeedddddcccccbbbaaaaa`````___^^^^^]]]]]\\\\\[[[ZZZZZZYYYYYXXXXXWWWWVVVVVUUUUUTTTTTTSSSSRRRRRQQQQQQPPPPOOOOOONNNNNNMMMMMMMLLLKKKKKKKKJJJJJJIIIIIIIIHHHHHGGGGGGGFFFFFFFFEEEEEEEEDDDDDCCCCCCCCCCBBBBBBBBBBBBAAAAAAA@@@@@@@@@@@@@@????????????????????>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>????????????????????@@@@@@@@@@@@@AAAAAAAABBBBBBBBBBBCCCCCCCCCCDDDDDEEEEEEEEEFFFFFFFGGGGGGGGHHHHHIIIIIIIJJJJJJJKKKKKKKLLLLMMMMMMNNNNNNOOOOOOOPPPQQQQQQQRRRRRSSSTTTTTTTUUUUUVVVVVWWWXXXXXYYYYYZZZZZZZ[[\\\\\]]]]]^^^^^____`````aaaaabbcccccdddddeeeeefffggggghhhhhiiiijjjkkkkkllllmmmmmnnnooooopppppppoooonnnnmmmlllllkkkkkjjjiiiiihhhhhgggggffeeeeedddddcccccbbbaaaaa`````____^^^^^]]]]]\\\\\[[ZZZZZZYYYYYXXXXXWWWWVVVVVUUUUUTTTTTTSSSSRRRRRRQQQQQPPPPOOOOOONNNNNNNMMMMMMLLLLLKKKKKKJJJJJJJJIIIIIIHHHHHGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDCCCCCCCCCCBBBBBBBBBBBAAAAAAAA@@@@@@@@@@@@@@@@???????????????????????>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>??????????????????????@@@@@@@@@@@@@@@@@AAAAAAABBBBBBBBBBBCCCCCCCCCCDDDDDDDEEEEEEEEFFFFFFFFFGGGGGGGGHHHHHIIIIIIJJJJJJJKKKKKKKLLLLLMMMMMMNNNNNNOOOOOOPPPPQQQQQRRRRRRSSSSTTTTTTUUUUUVVVVVWWWWXXXXXYYYYYZZZZZZ[[[\\\\\]]]]]^^^^^____`````aaaaabbcccccdddddeeeeefffggggghhhhhiiiiijjkkkkklllllmmmmnnnnooopppppppppooooonnnnmmmmlllllkkkkkjjiiiiihhhhhggggffffeeeeedddcccccbbbbaaaaa`````___^^^^^]]]]]\\\\\\[[ZZZZZYYYYYYYXXXXXWWWVVVVVUUUUUUUTTTTTSSSRRRRRRRQQQQQPPPPPOOOOOONNNNNNMMMMMMLLLLKKKKKKKKJJJJJJIIIIIIIHHHHHGGGGGGGGFFFFFFFFFEEEEEEEEDDDDDDDCCCCCCCCCCBBBBBBBBBBBBAAAAAAAAA@@@@@@@@@@@@@@@@?????????????????????????????????????????????????????????????????????????????????@@@@@@@@@@@@@@@@@AAAAAAAABBBBBBBBBBBBBCCCCCCCCCCDDDDDDEEEEEEEEEFFFFFFFFFGGGGGGGHHHHHIIIIIIIIJJJJJJKKKKKKKLLLLMMMMMMNNNNNNNOOOOOOPPPPPQQQQQRRRRRRSSSSTTTTTUUUUUUVVVVVWWWWXXXXXYYYYYYZZZZZ[[[\\\\\\]]]]]^^^^^__`````aaaaabbbbcccccddddeeeeeffffggghhhhhiiiiijjjkkkkklllllmmmmnnnoooooppppqqqpppooooonnnmmmmmlllllkkkkjjjiiiiihhhhgggggffffeeeedddddcccccbbbaaaaa`````___^^^^^]]]]]\\\\\\[[[ZZZZZYYYYYYXXXXXWWWWVVVVVUUUUUUTTTTTSSSSRRRRRRQQQQQQPPPPOOOOOONNNNNNMMMMMMMLLLLLKKKKKKJJJJJJJIIIIIIIIHHHHHGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCCCCBBBBBBBBBBBBBAAAAAAAAAA@@@@@@@@@@@@@@@@@@@??????????????????????????????????????????????????????????????????@@@@@@@@@@@@@@@@@@@AAAAAAAAAABBBBBBBBBBBBCCCCCCCCCCDDDDDDDDEEEEEEEEFFFFFFFFFGGGGGGGGHHHHHIIIIIIIJJJJJJJJKKKKKKLLLLLMMMMMMNNNNNNOOOOOOOPPPQQQQQQQRRRRRRSSSSTTTTTUUUUUUVVVVVWWWWXXXXXYYYYYYZZZZZ[[\\\\\\\]]]]]^^^^^__`````aaaaabbbbcccccdddddeeeefffggggghhhhiiiiijjjjkkkklllllmmmmmnnoooooppppqqqqpppppooonnnnmmmmmllllkkkkkjjjjiiihhhhhgggggfffeeeeedddddcccccbbbbaaaaa`````__^^^^^]]]]]\\\\\[[[[ZZZZZYYYYYYXXXXXWWWWVVVVVUUUUUUTTTTTSSSSRRRRRRQQQQQQPPPPOOOOOONNNNNNNMMMMMMMLLLLKKKKKKKJJJJJJJIIIIIIIHHHHHHGGGGGGGGFFFFFFFFFEEEEEEEEEEDDDDDDCCCCCCCCCCCBBBBBBBBBBBBBBAAAAAAAAAA@@@@@@@@@@@@@@@@@@@@@@@@??????????????????????????????????????????????@@@@@@@@@@@@@@@@@@@@@@@@AAAAAAAAAABBBBBBBBBBBBBCCCCCCCCCCCCDDDDDDEEEEEEEEEEFFFFFFFFFGGGGGGGHHHHHHIIIIIIIIJJJJJJKKKKKKKKLLLMMMMMMMMNNNNNNOOOOOOPPPPQQQQQQRRRRRRRSSSTTTTTUUUUUUUVVVVVWWWXXXXXYYYYYYYZZZZZ[[[\\\\\]]]]]^^^^^___`````aaaaabbbbcccccdddddeeeeeffggggghhhhhiiiijjjjkkkkklllmmmmmnnnnoooopppppqqqqqpppppoooonnnmmmmlllllkkkkkjjjiiiiihhhhhgggggffeeeeedddddcccccbbbaaaaa`````___^^^^^]]]]]\\\\\[[[[ZZZZZYYYYYYXXXXXWWWWVVVVVUUUUUUTTTTTTTSSSRRRRRQQQQQQQPPPPPOOOOOONNNNNNMMMMMMLLLLLKKKKKKKJJJJJJJIIIIIIIIHHHHHHGGGGGGGFFFFFFFFFEEEEEEEEEEDDDDDDDDCCCCCCCCCCCBBBBBBBBBBBBBBBAAAAAAAAAAA@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AAAAAAAAAAAABBBBBBBBBBBBBBBCCCCCCCCCCCDDDDDDDEEEEEEEEEEFFFFFFFFFGGGGGGGGHHHHHHIIIIIIIJJJJJJJJKKKKKKLLLLLMMMMMMNNNNNNNOOOOOOPPPPPQQQQQQRRRRRSSSSTTTTTTUUUUUUVVVVVWWWWXXXXXYYYYYYZZZZZ[[[[\\\\\]]]]]^^^^^____`````aaaaabbcccccdddddeeeeefffggggghhhhhiiiiijjkkkkklllllmmmmnnnnoooopppppqqqqqqqppppooooonnmmmmmlllllkkkkkjjjiiiiihhhhhggggfffeeeeedddddcccccbbbaaaaa`````____^^^^^]]]]]\\\\\[[[ZZZZZYYYYYYYXXXXXWWWVVVVVVVUUUUUTTTTTTSSSSRRRRRRQQQQQQPPPPOOOOOONNNNNNMMMMMMMMLLLLKKKKKKKJJJJJJJJIIIIIIIHHHHHGGGGGGGGGFFFFFFFFFFEEEEEEEEEEDDDDDDDCCCCCCCCCCCCCBBBBBBBBBBBBBBBAAAAAAAAAAAAAA@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AAAAAAAAAAAAAABBBBBBBBBBBBBBBCCCCCCCCCCCCDDDDDDDDEEEEEEEEEEFFFFFFFFFFGGGGGGGGHHHHHIIIIIIIIJJJJJJJKKKKKKKKLLLLMMMMMMMNNNNNNOOOOOOOPPPQQQQQQQRRRRRRSSSSTTTTTTUUUUUVVVVVVWWWWXXXXXYYYYYYZZZZZ[[[[\\\\\]]]]]^^^^^____`````aaaaabbcccccdddddeeeeeffffgggghhhhhiiiiijjkkkkklllllmmmmmnnnooooopppqqqqrrrqqpppppooooonnnmmmmmlllllkkkjjjjiiiiihhhhgggggffffeeeeedddddcccccbbaaaaa`````____^^^^^]]]]]\\\\\[[[[ZZZZZYYYYYYXXXXXWWWWVVVVVVUUUUUTTTTTTSSSSRRRRRRQQQQQQPPPPOOOOOONNNNNNNNMMMMMMLLLLLKKKKKKKKJJJJJJJIIIIIIIIHHHHHGGGGGGGGGGFFFFFFFFEEEEEEEEEEDDDDDDDDDCCCCCCCCCCCCCBBBBBBBBBBBBBBBBBAAAAAAAAAAAAAAAAAA@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AAAAAAAAAAAAAAAAABBBBBBBBBBBBBBBBBBCCCCCCCCCCCCDDDDDDDDDEEEEEEEEEEFFFFFFFFFGGGGGGGGGGHHHHHIIIIIIIJJJJJJJJKKKKKKKLLLLLMMMMMMMNNNNNNNOOOOOOPPPPQQQQQQRRRRRRRSSSTTTTTTTUUUUUVVVVVVWWWWXXXXXYYYYYYZZZZZ[[[[\\\\\]]]]]^^^^^___`````aaaaabbbcccccdddddeeeeeffffggggghhhiiiiijjjjkkkklllllmmmmmnnooooopppppqqqrrrrrqqpppppoooonnnnmmmmmllllkkkkkjjjiiiihhhhhgggggffffeeeeeddddcccccbbbaaaaa`````____^^^^^]]]]]\\\\\[[[[ZZZZZZYYYYYXXXXXWWWWVVVVVVUUUUUTTTTTTSSSSRRRRRRQQQQQQQPPPPPOOOOOONNNNNNMMMMMMMMLLLKKKKKKKKJJJJJJJJJIIIIIIIHHHHHHGGGGGGGGGFFFFFFFFFFEEEEEEEEEEDDDDDDDDDCCCCCCCCCCCCCCBBBBBBBBBBBBBBBBBBBBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBBBBBBBBCCCCCCCCCCCCCCDDDDDDDDEEEEEEEEEEFFFFFFFFFFGGGGGGGGGHHHHHHIIIIIIIIJJJJJJJJJKKKKKKKLLLLMMMMMMMNNNNNNNOOOOOOPPPPPQQQQQQRRRRRRSSSSTTTTTTUUUUUVVVVVVVWWWXXXXXYYYYYZZZZZZZ[[[\\\\\]]]]]^^^^^____`````aaaaabbbbcccccddddeeeeefffggggghhhhhiiiijjjjkkkkkllllmmmmmnnnoooopppppqqqrrrrrrqqqqpppooooonnnnmmmmlllllkkkkkjjiiiiihhhhhgggggfffeeeeedddddcccccbbbbaaaaa`````___^^^^^]]]]]\\\\\[[[[ZZZZZZYYYYYXXXXXWWWWVVVVVVUUUUUUUTTTTTSSSSSRRRRRRQQQQQQPPPPOOOOOONNNNNNNNMMMMMMLLLLLKKKKKKKJJJJJJJJIIIIIIIIIHHHHHHGGGGGGGGGFFFFFFFFFFEEEEEEEEEEEDDDDDDDDDCCCCCCCCCCCCCCCCBBBBBBBBBBBBBBBBBBBBBBBBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBBBBBBBBBBBBCCCCCCCCCCCCCCCCDDDDDDDDDEEEEEEEEEEEFFFFFFFFFFGGGGGGGGGHHHHHHIIIIIIIIIJJJJJJJKKKKKKKKLLLLLMMMMMMNNNNNNNOOOOOOOPPPQQQQQQQRRRRRRSSSSSTTTTTUUUUUUVVVVVVWWWWXXXXXYYYYYZZZZZZ[[[[\\\\\]]]]]^^^^^____`````aaaaabbbbcccccdddddeeeeeffggggghhhhhiiiiijjjkkkkklllllmmmnnnnoooooppppqqqqrrrrrrrqqqpppppooooonnmmmmmlllllkkkkkjjjiiiiihhhhhgggggffeeeeedddddcccccbbbbaaaaa`````____^^^^^]]]]]\\\\\[[[ZZZZZZZYYYYYXXXXXXWWWWVVVVVUUUUUUTTTTTTSSSSRRRRRRQQQQQQPPPPOOOOOOOONNNNNNMMMMMMMLLLLLKKKKKKKKJJJJJJJIIIIIIIIIHHHHHHGGGGGGGGGGFFFFFFFFFFEEEEEEEEEEEEEDDDDDDDDDCCCCCCCCCCCCCCCCCBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBCCCCCCCCCCCCCCCCCCDDDDDDDDDEEEEEEEEEEEEFFFFFFFFFFGGGGGGGGGGHHHHHHIIIIIIIIIJJJJJJJJKKKKKKKLLLLLMMMMMMMMNNNNNNOOOOOOOPPPPQQQQQQRRRRRRRSSSTTTTTTTUUUUUUVVVVVWWWWXXXXXXYYYYYZZZZZZ[[[[\\\\\]]]]]^^^^^____`````aaaaabbbcccccdddddeeeeefffggggghhhhhiiiiijjkkkkklllllmmmmmnnnooooopppppqqrrrrrrrrrrqqqpppppooooonnmmmmmlllllkkkkjjjjiiiiihhhhhggggfffeeeeedddddcccccbbbbaaaaa`````____^^^^^]]]]]\\\\\[[[[ZZZZZZYYYYYXXXXXXWWWWVVVVVUUUUUUTTTTTTSSSSRRRRRRQQQQQQQPPPPPOOOOOONNNNNNNMMMMMMMMLLLLLKKKKKKKJJJJJJJJIIIIIIIIIHHHHHHGGGGGGGGGGFFFFFFFFFFFEEEEEEEEEEEEEDDDDDDDDDDCCCCCCCCCCCCCCCCCCCCBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBCCCCCCCCCCCCCCCCCCCCDDDDDDDDDDEEEEEEEEEEEEFFFFFFFFFFFFGGGGGGGGGGHHHHHHIIIIIIIIIJJJJJJJKKKKKKKKLLLLLMMMMMMMNNNNNNNNOOOOOOPPPPPQQQQQQRRRRRRSSSSTTTTTTUUUUUUUVVVVVWWWXXXXXXXYYYYYZZZZZZ[[[[\\\\\]]]]]^^^^^___`````aaaaabbbbcccccdddddeeeeeffffgggghhhhhiiiiijjjkkkklllllmmmmmnnnooooopppppqqrrrrrsssrrrqqqqpppppoooonnnnmmmmmlllkkkkkjjjjiiiiihhhhgggggffffeeeeedddddcccccbbbaaaaa`````____^^^^^]]]]]\\\\\[[[[ZZZZZZYYYYYXXXXXXWWWWVVVVVVUUUUUTTTTTTTSSSSSRRRRRRQQQQQQPPPPOOOOOOONNNNNNNMMMMMMMLLLLLKKKKKKKKKJJJJJJJIIIIIIIIIHHHHHHHHGGGGGGGGGGFFFFFFFFFFFEEEEEEEEEEEEEEDDDDDDDDDDCCCCCCCCCCCCCCCCCCCCCCCCCBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBCCCCCCCCCCCCCCCCCCCCCCCCCDDDDDDDDDDEEEEEEEEEEEEEEFFFFFFFFFFFGGGGGGGGGGHHHHHHHIIIIIIIIIJJJJJJJJKKKKKKKKLLLLLMMMMMMMMNNNNNNOOOOOOOOPPPQQQQQQQRRRRRRSSSSSTTTTTTUUUUUVVVVVVWWWWXXXXXXYYYYYZZZZZZZ[[[\\\\\]]]]]^^^^^____`````aaaaabbbbcccccdddddeeeeeffffggggghhhiiiiijjjjkkkkkllllmmmmmnnnnooopppppqqqqrrrrssssrrrrrqqqppppooooonnnnmmmmlllllkkkkkjjiiiiihhhhhgggggffffeeeeedddddcccccbbbbaaaaa`````___^^^^^]]]]]\\\\\\\[[ZZZZZZYYYYYXXXXXXXWWWVVVVVVVUUUUUUTTTTTTSSSSRRRRRRQQQQQQPPPPPOOOOOOONNNNNNNMMMMMMMMLLLLLKKKKKKKKJJJJJJJJIIIIIIIIIIHHHHHHGGGGGGGGGGFFFFFFFFFFFFFEEEEEEEEEEEEEEEDDDDDDDDDDDCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCDDDDDDDDDDDEEEEEEEEEEEEEEEFFFFFFFFFFFFGGGGGGGGGGHHHHHHHIIIIIIIIIIJJJJJJJKKKKKKKKKLLLLLMMMMMMMNNNNNNNNOOOOOOPPPPPQQQQQQRRRRRRRSSSTTTTTTTUUUUUUVVVVVVWWWWXXXXXXYYYYYZZZZZZ[[[\\\\\\]]]]]^^^^^____`````aaaaabbbbcccccdddddeeeeefffggggghhhhhiiiiijjjkkkkklllllmmmmnnnoooooppppqqqqrrrrrsssssrrrrrqqpppppooooonnnmmmmmlllllkkkkkjjiiiiihhhhhgggggffffeeeeedddddcccccbbbbaaaaa`````____^^^^^]]]]]\\\\\\[[[[ZZZZZYYYYYYXXXXXWWWWVVVVVVUUUUUUTTTTTTSSSSRRRRRRQQQQQQQQPPPPOOOOOOONNNNNNNNMMMMMMMLLLLLKKKKKKKKKJJJJJJJJJIIIIIIIIHHHHHHHGGGGGGGGGGGFFFFFFFFFFFFFFEEEEEEEEEEEEEEEDDDDDDDDDDDDDCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDEEEEEEEEEEEEEEEFFFFFFFFFFFFFFGGGGGGGGGGGHHHHHHIIIIIIIIIJJJJJJJJJKKKKKKKKLLLLLMMMMMMMMNNNNNNNOOOOOOOOPPPPQQQQQQQRRRRRRSSSSTTTTTTUUUUUUUVVVVVVWWWWXXXXXYYYYYYZZZZZ[[[[\\\\\\]]]]]^^^^^____`````aaaaabbbcccccdddddeeeeeffffggggghhhhhiiiiijjjkkkkklllllmmmmmnnooooopppppqqqrrrrrsssssssrrrrrqqqpppppooooonnmmmmmlllllkkkkkjjjiiiiihhhhhgggggfffeeeeedddddcccccbbbaaaaaa`````____^^^^^]]]]]\\\\\\[[[[ZZZZZYYYYYYXXXXXWWWWVVVVVVUUUUUUTTTTTTTSSSSSRRRRRRQQQQQQPPPPPOOOOOOOONNNNNNMMMMMMMMMLLLLLKKKKKKKKJJJJJJJJJIIIIIIIIIIHHHHHHGGGGGGGGGGGGFFFFFFFFFFFFFEEEEEEEEEEEEEEEEEEDDDDDDDDDDDDDDDDDCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEFFFFFFFFFFFFFFGGGGGGGGGGGHHHHHHIIIIIIIIIIJJJJJJJJJKKKKKKKKKLLLLLMMMMMMMMMNNNNNNOOOOOOOPPPPPQQQQQQQRRRRRRSSSSSTTTTTTUUUUUUVVVVVVVWWWXXXXXYYYYYYYZZZZZ[[[\\\\\\\]]]]]^^^^^___`````aaaaaaabbcccccdddddeeeeeffffggggghhhhhiiiiijjkkkkklllllmmmmmnnnooooopppppqqrrrrrssssssssssrrrrqqqqpppppoooonnnmmmmmllllkkkkkjjjjiiiiihhhhhgggggffeeeeedddddddcccccbbaaaaaa`````____^^^^^]]]]]\\\\\\[[[[ZZZZZYYYYYYXXXXXXXWWWVVVVVVVUUUUUUTTTTTTSSSSRRRRRRQQQQQQQQPPPOOOOOOOONNNNNNNMMMMMMMMMLLLLLKKKKKKKKKJJJJJJJJJIIIIIIIIIIHHHHHHHGGGGGGGGGGGGGFFFFFFFFFFFFFEEEEEEEEEEEEEEEEEEEEDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEFFFFFFFFFFFFFFGGGGGGGGGGGGHHHHHHHHIIIIIIIIIIJJJJJJJJJKKKKKKKKLLLLLMMMMMMMMMNNNNNNNNOOOOOOOPPPPQQQQQQQRRRRRRRSSSTTTTTTTUUUUUUVVVVVVWWWWXXXXXXYYYYYYZZZZZ[[[[\\\\\\]]]]]^^^^^____`````aaaaaabbbcccccddddddeeeeefffggggghhhhhiiiiijjjkkkkkllllmmmmmnnnnoooopppppqqqrrrrssssstttsssrrrrrqqqqppppooooonnnnmmmlllllkkkkkjjjjiiiiihhhhhgggggfffeeeeedddddccccccbbaaaaaaa`````___^^^^^]]]]]\\\\\\\[[[ZZZZZYYYYYYYXXXXXXWWWWVVVVVVUUUUUUTTTTTTSSSSRRRRRRRRQQQQQQPPPPPOOOOOOONNNNNNNNMMMMMMMLLLLLLLKKKKKKKKJJJJJJJJJJIIIIIIIIIIHHHHHHHHGGGGGGGGGGGGFFFFFFFFFFFFFFFFFEEEEEEEEEEEEEEEEEEEEEEEDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFFFFFFFFFFFGGGGGGGGGGGGGHHHHHHHIIIIIIIIIIJJJJJJJJJJKKKKKKKKKLLLLLLMMMMMMMMNNNNNNNOOOOOOOOPPPPPQQQQQQRRRRRRRSSSSTTTTTTUUUUUUUVVVVVVWWWWXXXXXXYYYYYYZZZZZ[[[[\\\\\\]]]]]^^^^^____`````aaaaaabbbccccccdddddeeeeeffggggghhhhhiiiiijjjjkkkkklllllmmmmnnnnooooopppqqqqrrrrrssssttttsssssrrrrrqqpppppooooonnnmmmmmlllllkkkkkjjjiiiiihhhhhgggggfffeeeeedddddccccccbbbaaaaaa`````____^^^^^]]]]]\\\\\\[[[[ZZZZZZYYYYYXXXXXXWWWWVVVVVVUUUUUUTTTTTTTSSSSSRRRRRRQQQQQQQPPPPPOOOOOOOONNNNNNNMMMMMMMMLLLLLLKKKKKKKKKJJJJJJJJJJIIIIIIIIIIIHHHHHHHHGGGGGGGGGGGGGFFFFFFFFFFFFFFFFFFEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFFFFFFFFFFFFGGGGGGGGGGGGGGHHHHHHHIIIIIIIIIIIIJJJJJJJJJJKKKKKKKKLLLLLLLMMMMMMMNNNNNNNNOOOOOOOPPPPPQQQQQQQQRRRRRRSSSSSTTTTTTUUUUUUVVVVVVVWWWXXXXXXXYYYYYZZZZZZ[[[[\\\\\\]]]]]^^^^^____`````aaaaaabbcccccccdddddeeeeeffggggghhhhhiiiiijjjjkkkkklllllmmmmmnnooooopppppqqqrrrrrssssstttttsssssrrrrrqqpppppooooonnnmmmmmlllllkkkkkjjiiiiihhhhhgggggffffeeeeedddddccccccbbbaaaaaa`````____^^^^^]]]]]]\\\\\[[[[ZZZZZZYYYYYXXXXXXWWWWWVVVVVVVUUUUUUTTTTTTSSSSRRRRRRRQQQQQQQQPPPPOOOOOOONNNNNNNNNMMMMMMMLLLLLLLKKKKKKKKKKJJJJJJJJJJIIIIIIIIIIIHHHHHHHGGGGGGGGGGGGGGGFFFFFFFFFFFFFFFFFFFFEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFFFFFFFFFFFFFFFGGGGGGGGGGGGGGGHHHHHHHHIIIIIIIIIIIJJJJJJJJJJKKKKKKKKKKLLLLLLMMMMMMMMNNNNNNNNOOOOOOOOPPPPQQQQQQQRRRRRRRRSSSTTTTTTTUUUUUUVVVVVVWWWWWXXXXXXYYYYYZZZZZZZ[[[\\\\\]]]]]]]^^^^^___`````aaaaaaabbccccccdddddeeeeeffffggggghhhhhiiiiijjjkkkkklllllmmmmmnnooooopppppqqqrrrrrssssstttttttsssssrrrrqqqqpppppooonnnnmmmmmlllllkkkkkjjjiiiiihhhhhgggggfffeeeeedddddcccccccbbaaaaaa`````____^^^^^]]]]]]\\\\\[[[[ZZZZZZYYYYYYYXXXXXXWWWWVVVVVVUUUUUUTTTTTTSSSSSRRRRRRRQQQQQQQPPPPPOOOOOOOONNNNNNNNMMMMMMMMMLLLLLKKKKKKKKKKJJJJJJJJJJIIIIIIIIIIIIIHHHHHHHHGGGGGGGGGGGGGGGGGFFFFFFFFFFFFFFFFFFFFFFFEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFFFFFFFFFFFFFFFFFFFGGGGGGGGGGGGGGGGHHHHHHHHHIIIIIIIIIIIIJJJJJJJJJJKKKKKKKKKKLLLLLMMMMMMMMMNNNNNNNNNOOOOOOOPPPPPQQQQQQQQRRRRRRSSSSSTTTTTTUUUUUUUVVVVVVWWWWXXXXXXYYYYYYZZZZZZ[[[[\\\\\]]]]]]^^^^^____`````aaaaaabbbccccccdddddeeeeeffffggggghhhhhiiiiijjkkkkklllllmmmmmnnnnoooopppppqqqqrrrsssssttttttttttssssrrrrrqqqqppppooooonnnmmmmmlllllkkkkkjjjiiiiihhhhhgggggffffeeeeedddddcccccbbbaaaaaaa`````___^^^^^]]]]]]]\\\\\[[[ZZZZZZZYYYYYYXXXXXXWWWWVVVVVVUUUUUUTTTTTTTTSSSSRRRRRRRQQQQQQQQPPPPPOOOOOOONNNNNNNNNMMMMMMMMMLLLLLLKKKKKKKKKJJJJJJJJJJJIIIIIIIIIIIIHHHHHHHHHHGGGGGGGGGGGGGGGGGGFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFGGGGGGGGGGGGGGGGGHHHHHHHHHHIIIIIIIIIIIIIJJJJJJJJJJJKKKKKKKKKLLLLLLMMMMMMMMMNNNNNNNNOOOOOOOOPPPPPQQQQQQQRRRRRRRRSSSSTTTTTTTUUUUUUVVVVVVVWWWXXXXXXXYYYYYYZZZZZZ[[[[\\\\\]]]]]]^^^^^____`````aaaaaabbbbcccccdddddeeeeeffffggggghhhhhiiiiijjkkkkklllllmmmmmnnnnoooooppppqqqrrrrrsssstttttuuutttsssssrrrrrqqqpppppooooonnnnmmmmmlllkkkkkjjjjiiiiihhhhhgggggffffeeeeedddddcccccbbbbaaaaaa`````____^^^^^]]]]]]\\\\\\[[[[ZZZZZYYYYYYXXXXXXWWWWWVVVVVVVUUUUUUTTTTTTSSSSSRRRRRRRRQQQQQQQPPPPPOOOOOOOONNNNNNNNMMMMMMMMMLLLLLLKKKKKKKKKKJJJJJJJJJJJJIIIIIIIIIIIIHHHHHHHHHHHGGGGGGGGGGGGGGGGGGGGFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHIIIIIIIIIIIIIJJJJJJJJJJJKKKKKKKKKKLLLLLLMMMMMMMMMNNNNNNNNNOOOOOOOPPPPPQQQQQQQQRRRRRRRSSSSSTTTTTTTUUUUUUVVVVVVWWWWWXXXXXXYYYYYYYZZZZZ[[[\\\\\\\]]]]]]^^^^^____`````aaaaaabbbbcccccdddddeeeeefffggggghhhhhiiiiijjjjkkkkkllllmmmmmnnnnooooopppppqqrrrrrsssssttttuuuutttttsssssrrrrrqqpppppooooonnnmmmmmlllllkkkkkjjjiiiiihhhhhgggggffffeeeeedddddccccccbbbaaaaaa`````____^^^^^^]]]]]\\\\\\[[[[ZZZZZZYYYYYYYXXXXXXWWWWVVVVVVUUUUUUTTTTTTTTSSSSSRRRRRRQQQQQQQPPPPPPPOOOOOOONNNNNNNNNMMMMMMMMMLLLLLLKKKKKKKKKKKJJJJJJJJJJJIIIIIIIIIIIIIIHHHHHHHHHHHGGGGGGGGGGGGGGGGGGGGGGGGGFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFGGGGGGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHIIIIIIIIIIIIIIJJJJJJJJJJJKKKKKKKKKKKKLLLLLLMMMMMMMMMNNNNNNNNOOOOOOOOPPPPPPQQQQQQQQRRRRRRSSSSSTTTTTTTUUUUUUUVVVVVVWWWWXXXXXXYYYYYYZZZZZZ[[[[\\\\\\]]]]]^^^^^^^___`````aaaaaaabbccccccdddddeeeeeffffggggghhhhhiiiiijjjjkkkkklllllmmmmmnnooooopppppqqqrrrrrssssstttttuuuuutttttsssssrrrrqqqpppppooooonnnmmmmmlllllkkkkkjjjjiiiiihhhhhgggggfffeeeeedddddcccccccbbaaaaaa`````____^^^^^^]]]]]\\\\\\\[[[ZZZZZZZYYYYYYXXXXXXWWWWVVVVVVUUUUUUUUTTTTTTSSSSSRRRRRRRQQQQQQQQPPPPPOOOOOOOOONNNNNNNNMMMMMMMMMMLLLLLLLKKKKKKKKKKKJJJJJJJJJJJJIIIIIIIIIIIIIIHHHHHHHHHHHHHGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHIIIIIIIIIIIIIIJJJJJJJJJJJJJKKKKKKKKKKKLLLLLLMMMMMMMMMMNNNNNNNNNOOOOOOOOOPPPPPQQQQQQQRRRRRRRRSSSSSTTTTTTUUUUUUUVVVVVVVWWWXXXXXXXYYYYYYZZZZZZ[[[[\\\\\\]]]]]^^^^^^____`````aaaaaabbbccccccdddddeeeeeffffggggghhhhhiiiiijjjjkkkkklllllmmmmmnnooooopppppqqqqrrrrssssstttttuuvuuuutttttssssrrrrrqqqqpppppooooonnmmmmmlllllkkkkkjjjjiiiiihhhhhgggggffffeeeeedddddccccccbbaaaaaaa`````___^^^^^^^]]]]]\\\\\\[[[[ZZZZZZYYYYYYXXXXXXWWWWWVVVVVVVUUUUUUTTTTTTTSSSSSRRRRRRRRQQQQQQQPPPPPOOOOOOOOONNNNNNNNNMMMMMMMMMMLLLLLLKKKKKKKKKKKKKJJJJJJJJJJJJIIIIIIIIIIIIIIIIHHHHHHHHHHHHHHHGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIJJJJJJJJJJJJJKKKKKKKKKKKKLLLLLLLMMMMMMMMMMNNNNNNNNOOOOOOOOOPPPPPQQQQQQQQRRRRRRRSSSSSTTTTTTTTUUUUUUVVVVVVWWWWWXXXXXXYYYYYYYZZZZZZ[[[[\\\\\\]]]]]^^^^^^____`````aaaaaabbbccccccdddddeeeeeffffggggghhhhhiiiiijjjkkkkklllllmmmmmnnnooooopppppqqqqrrrrrssstttttuuuuvvvuuuttttsssssrrrrrqqqqppppooooonnnmmmmmlllllkkkkkjjjjiiiiihhhhhgggggffffeeeeedddddccccccbbbbaaaaa`````____^^^^^^]]]]]]\\\\\[[[[[ZZZZZZYYYYYYYXXXXXXWWWWVVVVVVUUUUUUUTTTTTTTTSSSSSRRRRRRRQQQQQQQQPPPPPOOOOOOOOONNNNNNNNNNMMMMMMMMLLLLLLLLKKKKKKKKKKKKJJJJJJJJJJJJJJIIIIIIIIIIIIIIIIIIHHHHHHHHHHHHHHHHHHGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIJJJJJJJJJJJJJJKKKKKKKKKKKKKLLLLLLLMMMMMMMMMNNNNNNNNNNOOOOOOOOOPPPPPQQQQQQQRRRRRRRRSSSSSTTTTTTTUUUUUUUUVVVVVVWWWWXXXXXXYYYYYYZZZZZZ[[[[[\\\\\]]]]]]]^^^^^^____`````aaaaabbbcccccccdddddeeeeefffggggghhhhhiiiiijjjjkkkkklllllmmmmmnnnnoooooppppqqqrrrrrsssssttttuuuuvvvvvuutttttsssssrrrrrqqqpppppooooonnnnmmmmmlllllkkkkkjjjiiiiihhhhhgggggffffeeeeedddddccccccbbbbaaaaa``````____^^^^^]]]]]]\\\\\\\[[[ZZZZZZZYYYYYYXXXXXXWWWWWVVVVVVUUUUUUUUTTTTTTSSSSSRRRRRRRRQQQQQQQQPPPPPOOOOOOOOONNNNNNNNNNMMMMMMMMMMLLLLLLLLKKKKKKKKKKKKJJJJJJJJJJJJJJJIIIIIIIIIIIIIIIIIIIIIHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIJJJJJJJJJJJJJJJKKKKKKKKKKKKKLLLLLLLMMMMMMMMMMNNNNNNNNNNOOOOOOOOOPPPPPQQQQQQQQQRRRRRRRSSSSSTTTTTTTUUUUUUUVVVVVVWWWWWXXXXXXXYYYYYYZZZZZZ[[[[\\\\\\]]]]]]^^^^^____``````aaaaabbbbccccccdddddeeeeeffffggggghhhhhiiiiijjjjkkkkklllllmmmmmnnnnooooopppppqqrrrrrssssstttttuuuvvvvvvvuuutttttsssssrrrrrqqpppppooooonnnnmmmmmlllllkkkkkjjiiiiiiihhhhhgggggfffeeeeedddddcccccccbbbaaaaa```````___^^^^^]]]]]]]\\\\\\[[[[ZZZZZZYYYYYYXXXXXXWWWWWVVVVVVVVUUUUUUTTTTTTTTSSSSSRRRRRRRQQQQQQQQQPPPPPOOOOOOOOOONNNNNNNNNMMMMMMMMMMMLLLLLLLKKKKKKKKKKKKKKJJJJJJJJJJJJJJJJIIIIIIIIIIIIIIIIIIIIIIIIIHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJJJJJJJJJJJKKKKKKKKKKKKKKLLLLLLLLMMMMMMMMMMMNNNNNNNNNOOOOOOOOOOPPPPPQQQQQQQQRRRRRRRRSSSSSTTTTTTTUUUUUUUVVVVVVVWWWWWXXXXXXYYYYYYYZZZZZZ[[[[\\\\\\]]]]]]^^^^^____``````aaaaabbbbccccccdddddeeeeeffffggggghhhhhiiiiiijjjkkkkklllllmmmmmnnnooooopppppqqqrrrrrssssstttttuuvvvvvvvvvuuuutttttsssssrrrrqqqpppppooooonnnnmmmmmlllllkkkkkjjjiiiiiihhhhhgggggffffeeeeedddddccccccbbbbaaaaa``````____^^^^^^]]]]]\\\\\\[[[[[ZZZZZZYYYYYYYXXXXXXWWWWWVVVVVVUUUUUUUUTTTTTTTSSSSSRRRRRRRRQQQQQQQQPPPPPPPOOOOOOOONNNNNNNNNNMMMMMMMMMMMMLLLLLLLKKKKKKKKKKKKKKKJJJJJJJJJJJJJJJJJJIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJJJJJJJJJJJJKKKKKKKKKKKKKKKLLLLLLLLMMMMMMMMMMMNNNNNNNNNNOOOOOOOOOPPPPPPQQQQQQQQQRRRRRRRSSSSSTTTTTTTTUUUUUUUVVVVVVVWWWWWXXXXXXYYYYYYZZZZZZ[[[[[\\\\\\\]]]]]^^^^^^____``````aaaaabbbbccccccdddddeeeeeffffggggghhhhhiiiiiijjkkkkklllllmmmmmnnnnooooopppppqqqqrrrrssssstttttuuuvvvvwvvvvvuuuutttttssssrrrrrqqqqpppppooooonnmmmmmllllllkkkkkjjjiiiiiihhhhhgggggffffeeeeedddddccccccbbbbaaaaa``````____^^^^^^]]]]]]\\\\\\\[[[ZZZZZZZYYYYYYXXXXXXWWWWWVVVVVVVVUUUUUUTTTTTTTSSSSSSSRRRRRRRQQQQQQQQQPPPPPPOOOOOOOOONNNNNNNNNNNMMMMMMMMMMMLLLLLLLLLKKKKKKKKKKKKKKKJJJJJJJJJJJJJJJJJJJJIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJJJJJJJJJJJJJJJKKKKKKKKKKKKKKKLLLLLLLLLMMMMMMMMMMMNNNNNNNNNNNNOOOOOOOOPPPPPPPQQQQQQQQRRRRRRRRSSSSSSTTTTTTTTUUUUUUVVVVVVVWWWWWXXXXXXXYYYYYYZZZZZZ[[[[\\\\\\]]]]]]^^^^^^^___```````aaaaabbbcccccccdddddeeeeefffggggghhhhhiiiiiiijjkkkkkllllllmmmmmnnnooooopppppqqqqrrrrrssstttttuuuuvvvvvwwwvvvvvuutttttsssssrrrrrqqqqpppppooooonnmmmmmlllllkkkkkkkjjiiiiihhhhhhgggggffffeeeeeddddddcccccbbbbaaaaaa`````____^^^^^^]]]]]]]\\\\\\[[[[ZZZZZZYYYYYYYXXXXXXXWWWWWVVVVVVUUUUUUUTTTTTTTTSSSSSSRRRRRRRRQQQQQQQQPPPPPPPOOOOOOOOOONNNNNNNNNNMMMMMMMMMMMMLLLLLLLLLKKKKKKKKKKKKKKKKJJJJJJJJJJJJJJJJJJJJJJJJJJIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJJJJJJJJJJJJJJJJJJJJJKKKKKKKKKKKKKKKKKLLLLLLLLMMMMMMMMMMMMMNNNNNNNNNNOOOOOOOOOOPPPPPPQQQQQQQQQRRRRRRRSSSSSSSTTTTTTTUUUUUUUUVVVVVVWWWWWXXXXXXYYYYYYYYZZZZZZ[[[[\\\\\\]]]]]]^^^^^^____`````aaaaaabbbbcccccddddddeeeeeffffggggghhhhhhiiiiijjjkkkkkklllllmmmmmnnnooooopppppqqqrrrrrssssstttttuuuvvvvvwwwwwvvvvvuutttttsssssrrrrrqqqqpppppooooonnnmmmmmlllllkkkkkkjjiiiiihhhhhhhgggggfffeeeeedddddddcccccbbbaaaaaaa`````_____^^^^^]]]]]]\\\\\\[[[[[ZZZZZZYYYYYYYXXXXXXWWWWWVVVVVVVUUUUUUUUTTTTTTTSSSSSRRRRRRRRRQQQQQQQQQPPPPPPOOOOOOOOOONNNNNNNNNNNMMMMMMMMMMMMMLLLLLLLLLLKKKKKKKKKKKKKKKKKKKJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJKKKKKKKKKKKKKKKKKKKLLLLLLLLLLMMMMMMMMMMMMNNNNNNNNNNNOOOOOOOOOOPPPPPPPQQQQQQQQRRRRRRRRRSSSSSTTTTTTTTUUUUUUUVVVVVVVVWWWWWXXXXXXYYYYYYZZZZZZ[[[[[\\\\\\\]]]]]]^^^^^_____`````aaaaaabbbbcccccddddddeeeeeffffggggghhhhhhiiiiijjjkkkkkklllllmmmmmnnooooopppppqqqqrrrrrssssstttttuuuvvvvvwwwwwwwvvvvvuuutttttsssssrrrrrqqpppppooooonnnnmmmmmlllllkkkkkjjjjiiiiihhhhhhgggggffffeeeeeddddddcccccbbbbaaaaaa``````____^^^^^^]]]]]]\\\\\\\[[[ZZZZZZZYYYYYYYXXXXXXWWWWWVVVVVVVVUUUUUUUTTTTTTTTSSSSSRRRRRRRRRQQQQQQQQQQPPPPPPOOOOOOOOOONNNNNNNNNNNMMMMMMMMMMMMMMLLLLLLLLLLKKKKKKKKKKKKKKKKKKKKKJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJKKKKKKKKKKKKKKKKKKKKKKLLLLLLLLLLMMMMMMMMMMMMMNNNNNNNNNNNNOOOOOOOOOOPPPPPPQQQQQQQQQQRRRRRRRRRSSSSSTTTTTTTUUUUUUUUVVVVVVVWWWWWXXXXXXYYYYYYYYZZZZZZ[[[[\\\\\\]]]]]]^^^^^^^___```````aaaaaabbbbcccccddddddeeeeeffffggggghhhhhhiiiiijjjjkkkkklllllmmmmmnnnooooopppppqqqrrrrrssssstttttuuvvvvvwwwwwwwwwvvvvvuuuutttttsssssrrrrrqqpppppooooonnnnmmmmmlllllkkkkkjjjjiiiiihhhhhhgggggffffeeeeeddddddcccccbbbbaaaaaa``````____^^^^^^]]]]]]]\\\\\\[[[[ZZZZZZZYYYYYYXXXXXXXXWWWWVVVVVVVUUUUUUUUUTTTTTTTSSSSSRRRRRRRRRQQQQQQQQQQPPPPPPOOOOOOOOOOOONNNNNNNNNNNNMMMMMMMMMMMMMMLLLLLLLLLLLKKKKKKKKKKKKKKKKKKKKKKKKKJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJKKKKKKKKKKKKKKKKKKKKKKKKKLLLLLLLLLLLLMMMMMMMMMMMMMNNNNNNNNNNNNNOOOOOOOOOOOPPPPPPQQQQQQQQQQRRRRRRRRRSSSSSTTTTTTTTUUUUUUUUVVVVVVVVWWWWXXXXXXXYYYYYYZZZZZZZZ[[[[\\\\\\]]]]]]^^^^^^____``````aaaaaaabbbcccccdddddddeeeeefffggggghhhhhhhiiiiijjjkkkkklllllmmmmmnnnnooooopppppqqqrrrrrssssstttttuuuvvvvvwwwwxwwwwwvvvvvuuuutttttsssssrrrrrqqqpppppooooonnnmmmmmlllllkkkkkjjjjiiiiihhhhhhgggggffffeeeeeddddddcccccccbbbaaaaa```````___^^^^^^^]]]]]]\\\\\\[[[[[ZZZZZZYYYYYYYYXXXXXXWWWWWVVVVVVVVUUUUUUUTTTTTTTTTSSSSSRRRRRRRRRRQQQQQQQQQPPPPPPPOOOOOOOOOOONNNNNNNNNNNNNMMMMMMMMMMMMMMMLLLLLLLLLLLLKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKLLLLLLLLLLLLLMMMMMMMMMMMMMMMNNNNNNNNNNNNOOOOOOOOOOOPPPPPPPPQQQQQQQQQRRRRRRRRRRSSSSSTTTTTTTTUUUUUUUUVVVVVVVWWWWWXXXXXXXYYYYYYYZZZZZZ[[[[[\\\\\\\]]]]]]^^^^^^____``````aaaaabbbbccccccddddddeeeeeffffggggghhhhhhiiiiijjjjkkkkklllllmmmmmnnnnooooopppppqqrrrrrssssstttttuuuuvvvvvwwwwwxxxwwwwwvvvvvuuuttttsssssrrrrrqqqqpppppooooonnnnmmmmmlllllkkkkkjjjiiiiihhhhhhhgggggfffeeeeeeedddddccccccbbbbaaaaaa`````_____^^^^^^]]]]]]\\\\\\\[[[ZZZZZZZZYYYYYYXXXXXXXXWWWWWVVVVVVVUUUUUUUUTTTTTTTTSSSSSSSRRRRRRRRQQQQQQQQQQPPPPPPPPOOOOOOOOOOONNNNNNNNNNNNNNMMMMMMMMMMMMMMMMLLLLLLLLLLLLLLLKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKLLLLLLLLLLLLLLLMMMMMMMMMMMMMMMMMNNNNNNNNNNNNNOOOOOOOOOOOOPPPPPPPQQQQQQQQQQRRRRRRRRRSSSSSSTTTTTTTTTUUUUUUUVVVVVVVVWWWWWXXXXXXXYYYYYYYZZZZZZZ[[[[\\\\\\]]]]]]^^^^^^^_____`````aaaaaabbbbccccccdddddeeeeeeffffggggghhhhhhiiiiijjjjkkkkklllllmmmmmnnnnooooopppppqqqrrrrrsssssttttuuuuvvvvvwwwwwxxxxxwwwwwvvvvvuutttttsssssrrrrrqqqqpppppooooonnnnmmmmmlllllkkkkkjjjjiiiiiihhhhhgggggffffeeeeeedddddccccccbbbbaaaaaa``````____^^^^^^]]]]]]]\\\\\\[[[[[ZZZZZZYYYYYYYYXXXXXXXWWWWWVVVVVVVVUUUUUUUTTTTTTTTTSSSSSSRRRRRRRRRQQQQQQQQQQPPPPPPPOOOOOOOOOOOOONNNNNNNNNNNNNNNMMMMMMMMMMMMMMMMMLLLLLLLLLLLLLLLLLLLKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLMMMMMMMMMMMMMMMMMMNNNNNNNNNNNNNNNOOOOOOOOOOOOPPPPPPPPQQQQQQQQQQRRRRRRRRSSSSSSSTTTTTTTTUUUUUUUUVVVVVVVWWWWWXXXXXXXXYYYYYYYZZZZZZZ[[[[[\\\\\\]]]]]]^^^^^^____``````aaaaaaabbbcccccccdddddeeeeeeffffggggghhhhhiiiiiijjjjkkkkklllllmmmmmnnnooooopppppqqqqrrrrrssssstttttuuuvvvvvwwwwwxxxxxxxwwwwwvvvvvuuutttttsssssrrrrrqqqpppppooooonnnnmmmmmlllllkkkkkjjjjiiiiiihhhhhgggggffffeeeeeedddddccccccbbbbaaaaaa```````___^^^^^^^]]]]]]\\\\\\\[[[[ZZZZZZZZYYYYYYXXXXXXXWWWWWVVVVVVVVVUUUUUUUUTTTTTTTTSSSSSSSRRRRRRRRRRQQQQQQQQQQPPPPPPPOOOOOOOOOOOOOONNNNNNNNNNNNNNNMMMMMMMMMMMMMMMMMMMMMLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMMMMMMMMMMMMMMNNNNNNNNNNNNNNNOOOOOOOOOOOOOPPPPPPPPQQQQQQQQQQRRRRRRRRRRSSSSSSTTTTTTTTTUUUUUUUVVVVVVVVVWWWWWXXXXXXXXYYYYYYZZZZZZZ[[[[\\\\\\\\]]]]]]^^^^^^____``````aaaaaabbbbccccccdddddeeeeeeefffggggghhhhhiiiiiiijjjkkkkklllllmmmmmnnnnooooopppppqqqqrrrrrssssstttttuuvvvvvwwwwwxxxxxxxxxxwwwwwvvvvuuuutttttsssssrrrrrqqqqpppppooooonnnmmmmmlllllkkkkkjjjjiiiiiihhhhhgggggffffeeeeeedddddddcccccbbbaaaaaaa``````_____^^^^^^]]]]]]\\\\\\\[[[[[ZZZZZZYYYYYYYXXXXXXXXWWWWWVVVVVVVVVUUUUUUUTTTTTTTTTSSSSSSRRRRRRRRRRQQQQQQQQQQQPPPPPPPPOOOOOOOOOOOOOONNNNNNNNNNNNNNNNNMMMMMMMMMMMMMMMMMMMMMMMMMLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMMMMMMMMMMMMMMMMMNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOPPPPPPPQQQQQQQQQQQRRRRRRRRRRSSSSSSSTTTTTTTTUUUUUUUUVVVVVVVVVWWWWWXXXXXXXYYYYYYYYZZZZZZ[[[[[\\\\\\]]]]]]^^^^^^^_____``````aaaaaabbbbcccccddddddeeeeeeffffggggghhhhhiiiiiijjjjkkkkklllllmmmmmnnnnooooopppppqqqqrrrrrssssstttttuuuvvvvwwwwwxxxxxyyyxxxwwwwwvvvvvuuuutttttsssssrrrrrqqqqpppppooooonnnnmmmmmlllllkkkkkjjjiiiiiiihhhhhggggggffffeeeeeddddddccccccbbbbaaaaaa``````____^^^^^^]]]]]]]\\\\\\\[[[[ZZZZZZZYYYYYYYYXXXXXXXWWWWWVVVVVVVVVUUUUUUUUTTTTTTTTTTSSSSSSRRRRRRRRRRQQQQQQQQQQQPPPPPPPPPOOOOOOOOOOOOOONNNNNNNNNNNNNNNNNNMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOPPPPPPPPQQQQQQQQQQQQRRRRRRRRRRSSSSSSTTTTTTTTTTUUUUUUUVVVVVVVVVWWWWWXXXXXXXXYYYYYYYZZZZZZZZ[[[\\\\\\\\]]]]]]^^^^^^____``````aaaaaaabbbcccccccddddddeeeeeffffgggggghhhhhiiiiiijjjjkkkkklllllmmmmmnnnnooooopppppqqqrrrrrssssstttttuuuuvvvvvwwwwwxxxxyyyyxxxxxwwwwwvvvvvuuutttttsssssrrrrrqqqqpppppooooonnnnmmmmmlllllkkkkkjjjjiiiiiihhhhhggggggffffeeeeeddddddccccccbbbbaaaaaa```````___^^^^^^^]]]]]]]\\\\\\[[[[[ZZZZZZZZYYYYYYYXXXXXXXXWWWWWVVVVVVVVVUUUUUUUTTTTTTTTTTSSSSSSRRRRRRRRRRRRQQQQQQQQQQQPPPPPPPPPOOOOOOOOOOOOOOOONNNNNNNNNNNNNNNNNNNNNMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOPPPPPPPPPQQQQQQQQQQQRRRRRRRRRRRSSSSSSTTTTTTTTTTUUUUUUUUVVVVVVVVVWWWWWXXXXXXXYYYYYYYYZZZZZZZ[[[[[\\\\\\]]]]]]]]^^^^^^____``````aaaaaabbbbccccccdddddddeeeeefffggggggghhhhhiiiiiijjjjkkkkklllllmmmmmnnnooooopppppqqqqrrrrrssssstttttuuuuvvvvvwwwwwxxxxxyyyyyxxxxxwwwwwvvvvvuuuutttttsssssrrrrrqqqpppppooooonnnnmmmmmlllllkkkkkkjjjiiiiiihhhhhggggggffffeeeeeedddddcccccccbbbaaaaaaa``````_____^^^^^^]]]]]]\\\\\\\\[[[[ZZZZZZZYYYYYYYYXXXXXXXXWWWWWVVVVVVVVVUUUUUUUUUTTTTTTTTTSSSSSSSRRRRRRRRRRRQQQQQQQQQQQQPPPPPPPPPPOOOOOOOOOOOOOOOONNNNNNNNNNNNNNNNNNNNNNNNNNMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOPPPPPPPPPPQQQQQQQQQQQRRRRRRRRRRRSSSSSSSSTTTTTTTTTUUUUUUUUVVVVVVVVVWWWWWXXXXXXXXXYYYYYYYZZZZZZZZ[[[[\\\\\\\]]]]]]^^^^^^^_____``````aaaaaabbbbccccccdddddeeeeeeffffgggggghhhhhiiiiiiijjkkkkkklllllmmmmmnnnnooooopppppqqqqrrrrrssssstttttuuuuvvvvvwwwwwxxxxxyyzyyyyxxxxxwwwwwvvvvvuuuutttttsssssrrrrrqqqqpppppooooonnnmmmmmlllllkkkkkkkjjiiiiiihhhhhgggggggfffeeeeeeedddddccccccbbbbbaaaaaa``````____^^^^^^]]]]]]]]\\\\\\[[[[[ZZZZZZZZYYYYYYYXXXXXXXXWWWWWWVVVVVVVVVUUUUUUUUTTTTTTTTTTSSSSSSSRRRRRRRRRRRQQQQQQQQQQQQQQPPPPPPPPPPOOOOOOOOOOOOOOOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOPPPPPPPPPPQQQQQQQQQQQQQQRRRRRRRRRRRSSSSSSTTTTTTTTTTUUUUUUUUUVVVVVVVVVWWWWWWXXXXXXXYYYYYYYYZZZZZZZ[[[[[\\\\\\\]]]]]]]^^^^^^____``````aaaaaaabbbbbccccccdddddeeeeeeffffgggggghhhhhiiiiiijjjkkkkkklllllmmmmmnnnnooooopppppqqqqrrrrrssssstttttuuuvvvvvwwwwwxxxxxyyyyzzzyyyxxxxxwwwwwvvvvvuuuttttttsssssrrrrrqqqppppppooooonnnnmmmmmlllllkkkkkkjjjjiiiiihhhhhhgggggffffeeeeeeddddddccccccbbbbaaaaaa```````___^^^^^^^^]]]]]]\\\\\\\\[[[[[ZZZZZZZYYYYYYYYXXXXXXXWWWWWWVVVVVVVVVUUUUUUUUUTTTTTTTTTTSSSSSSSRRRRRRRRRRRRRQQQQQQQQQQQQQQPPPPPPPPPPOOOOOOOOOOOOOOOOOOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOPPPPPPPPPPQQQQQQQQQQQQQQRRRRRRRRRRRRSSSSSSSSTTTTTTTTTTUUUUUUUUVVVVVVVVVWWWWWWXXXXXXXXYYYYYYYZZZZZZZZ[[[[[\\\\\\\]]]]]]]^^^^^^^____``````aaaaaabbbbccccccdddddddeeeeeeffffggggghhhhhhiiiiijjjjkkkkkklllllmmmmmnnnnoooooppppppqqrrrrrssssstttttttuuvvvvvwwwwwxxxxxyyyyzzzzzyyyyxxxxxwwwwwvvvvvuutttttssssssrrrrrqqqppppppooooonnnnmmmmmlllllkkkkkkjjjjiiiiihhhhhhgggggffffeeeeeeddddddcccccccbbbaaaaaaa``````_____^^^^^^]]]]]]]]\\\\\\\[[[[ZZZZZZZYYYYYYYYYXXXXXXXXWWWWWWVVVVVVVVVUUUUUUUUUUTTTTTTTTTTSSSSSSSRRRRRRRRRRRRRQQQQQQQQQQQQQQQPPPPPPPPPPPOOOOOOOOOOOOOOOOOOOOOOOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPPPPQQQQQQQQQQQQQQQRRRRRRRRRRRRSSSSSSSSTTTTTTTTTTUUUUUUUUUUVVVVVVVVVWWWWWWXXXXXXXYYYYYYYYYZZZZZZZZ[[[\\\\\\\\]]]]]]]^^^^^^^_____``````aaaaaabbbbccccccddddddeeeeeeefffggggghhhhhhhiiiiijjjkkkkkkklllllmmmmmnnnooooopppppppqqrrrrrsssssstttttuuuvvvvvwwwwwxxxxxyyyyzzzzzzzyyyyxxxxxwwwwwvvvvvuutttttsssssrrrrrrrqqppppppooooonnnnmmmmmlllllkkkkkkjjjjiiiiihhhhhhgggggfffffeeeeedddddddccccccbbbbbaaaaaa``````____^^^^^^^^]]]]]]\\\\\\\[[[[[ZZZZZZZZYYYYYYYYYXXXXXXXWWWWWWVVVVVVVVVUUUUUUUUUUTTTTTTTTTTTSSSSSSSSRRRRRRRRRRRRQQQQQQQQQQQQQQQQQPPPPPPPPPPPPPOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPPPPPPPQQQQQQQQQQQQQQQQRRRRRRRRRRRRRSSSSSSSTTTTTTTTTTTUUUUUUUUUUVVVVVVVVVWWWWWWXXXXXXXXYYYYYYYYYZZZZZZZ[[[[[\\\\\\\\]]]]]]^^^^^^^____``````aaaaaaabbbbbccccccddddddeeeeefffffggggghhhhhhiiiiijjjjkkkkkklllllmmmmmnnnnoooooppppppqqqrrrrrrssssstttttuuuvvvvvwwwwwxxxxxyyyzzzzzzzzzzyyyxxxxxwwwwwvvvvvuuuutttttsssssrrrrrrqqpppppppooooonnnmmmmmlllllkkkkkkkjjjiiiiihhhhhhhggggggffffeeeeeeddddddccccccbbbbaaaaaa```````_____^^^^^^]]]]]]]\\\\\\\\[[[[[ZZZZZZZYYYYYYYYYXXXXXXXXWWWWWWVVVVVVVVVVUUUUUUUUUUTTTTTTTTTTTSSSSSSSSRRRRRRRRRRRRRQQQQQQQQQQQQQQQQQQPPPPPPPPPPPPPPPOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPPPPPPPPQQQQQQQQQQQQQQQQQRRRRRRRRRRRRRRSSSSSSSTTTTTTTTTTTTUUUUUUUUUUVVVVVVVVVVWWWWWWXXXXXXXYYYYYYYYYZZZZZZZZ[[[[[\\\\\\\]]]]]]]]^^^^^^_____``````aaaaaabbbbccccccdddddddeeeeeeffffgggggghhhhhhiiiiijjjjkkkkkklllllmmmmmnnnnoooooppppppqqqrrrrrrssssstttttuuuuvvvvvwwwwwxxxxxyyzzzzz{{{zzzzzyyxxxxxwwwwwvvvvvuuuutttttsssssrrrrrrqqqppppppooooonnnnmmmmmllllllkkkkkjjjjiiiiiihhhhhggggggffffeeeeeeddddddcccccccbbbaaaaaaa```````____^^^^^^^]]]]]]]]\\\\\\\[[[[[ZZZZZZZZYYYYYYYYYXXXXXXXXWWWWWVVVVVVVVVVUUUUUUUUUUTTTTTTTTTTTTTSSSSSSSSSRRRRRRRRRRRRRQQQQQQQQQQQQQQQQQQQPPPPPPPPPPPPPPPPPPPPOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPPPPPPPPPPPPPQQQQQQQQQQQQQQQQQQQRRRRRRRRRRRRRRSSSSSSSSSTTTTTTTTTTTTUUUUUUUUUUVVVVVVVVVVWWWWWXXXXXXXXXYYYYYYYYYZZZZZZZ[[[[[\\\\\\\\]]]]]]]^^^^^^^^___````````aaaaaabbbbccccccddddddeeeeeeefffggggggghhhhhiiiiiijjjjkkkkkllllllmmmmmnnnnoooooppppppqqrrrrrrrssssstttttuuuvvvvvwwwwwxxxxxyyyzzzzz{{{{{zzzzzyyxxxxxwwwwwvvvvvuuuutttttsssssrrrrrrqqqppppppooooonnnnmmmmmllllllkkkkkjjjjiiiiiihhhhhggggggffffeeeeeedddddddccccccbbbbbaaaaaa``````_____^^^^^^^^]]]]]]\\\\\\\\[[[[[[ZZZZZZZYYYYYYYYYXXXXXXXXXWWWWWWVVVVVVVVVVUUUUUUUUUUTTTTTTTTTTTTTSSSSSSSSRRRRRRRRRRRRRRRRRQQQQQQQQQQQQQQQQQQQQQPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPQQQQQQQQQQQQQQQQQQQQQRRRRRRRRRRRRRRRRSSSSSSSSSTTTTTTTTTTTTUUUUUUUUUUVVVVVVVVVVWWWWWWWXXXXXXXXYYYYYYYYYZZZZZZZZ[[[[[[\\\\\\\]]]]]]]^^^^^^^_____``````aaaaaaabbbbbccccccddddddeeeeeeffffgggggghhhhhiiiiiiijjjkkkkklllllllmmmmmnnnooooopppppppqqrrrrrrssssstttttuuuuvvvvvwwwwwxxxxxyyyzzzzz{{{{{{zzzzzyyyyxxxxxwwwwwvvvvvuuutttttsssssrrrrrrrqqppppppooooonnnnmmmmmllllllkkkkkjjjjiiiiiihhhhhhhgggggfffffeeeeeeddddddccccccbbbbaaaaaa````````_____^^^^^^]]]]]]]]\\\\\\\[[[[[ZZZZZZZZZYYYYYYYYYXXXXXXXXWWWWWWWVVVVVVVVVVUUUUUUUUUUUTTTTTTTTTTTTSSSSSSSSSSRRRRRRRRRRRRRRRRRRQQQQQQQQQQQQQQQQQQQQQQQQQQPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPQQQQQQQQQQQQQQQQQQQQQQQQQQQRRRRRRRRRRRRRRRRRSSSSSSSSSSTTTTTTTTTTTTTUUUUUUUUUUUVVVVVVVVVVWWWWWWXXXXXXXXXYYYYYYYYYZZZZZZZZ[[[[[\\\\\\\\]]]]]]]^^^^^^^_____```````aaaaaabbbbccccccdddddddeeeeeefffffggggghhhhhhiiiiiijjjjkkkkkllllllmmmmmnnnnoooooppppppqqqrrrrrrssssstttttuuuuvvvvvwwwwwxxxxxyyyyzzzzz{{{{{{{zzzzzyyyyxxxxxwwwwwvvvvvuuuutttttsssssrrrrrrqqpppppppooooonnnmmmmmlllllllkkkkkjjjiiiiiiihhhhhhggggggffffeeeeeeddddddcccccccbbbbbaaaaaa``````_____^^^^^^^^]]]]]]]\\\\\\\\[[[[[ZZZZZZZZYYYYYYYYYXXXXXXXXXWWWWWWWVVVVVVVVVVUUUUUUUUUUUUTTTTTTTTTTTTTSSSSSSSSSSRRRRRRRRRRRRRRRRRRRQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQRRRRRRRRRRRRRRRRRRRSSSSSSSSSSTTTTTTTTTTTTTTUUUUUUUUUUUVVVVVVVVVVWWWWWWWWXXXXXXXXYYYYYYYYYZZZZZZZZZ[[[[[\\\\\\\]]]]]]]]^^^^^^^_____```````aaaaaabbbbbccccccddddddeeeeeeefffggggggghhhhhhiiiiiijjjjkkkkkllllllmmmmmnnnnoooooppppppqqqrrrrrrssssstttttuuuuvvvvvwwwwwxxxxxyyyzzzzz{{{{{{{{{{zzzzzyyyyxxxxxwwwwwvvvvvuuuutttttsssssrrrrrrqqqppppppooooonnnnmmmmmllllllkkkkkkjjjjiiiiihhhhhhggggggffffeeeeeedddddddccccccbbbbbaaaaaa````````_____^^^^^^^]]]]]]]]\\\\\\\[[[[[ZZZZZZZZZYYYYYYYYYXXXXXXXXXXWWWWWWVVVVVVVVVVVUUUUUUUUUUUTTTTTTTTTTTTTTTSSSSSSSSSSRRRRRRRRRRRRRRRRRRRRRRRQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSTTTTTTTTTTTTTTTUUUUUUUUUUUVVVVVVVVVVVVWWWWWWXXXXXXXXXXYYYYYYYYYZZZZZZZZ[[[[[\\\\\\\\]]]]]]]^^^^^^^^_____```````aaaaaaabbbbbccccccddddddeeeeeeffffgggggghhhhhhhiiiiijjjkkkkkkkllllllmmmmmnnnnoooooppppppqqrrrrrrrssssstttttuuuvvvvvwwwwwxxxxxyyyyzzzzz{{{{{|||{{{{{zzzzzyyyxxxxxwwwwwvvvvvuuuutttttsssssrrrrrrqqqppppppooooonnnnmmmmmmlllllkkkkkkjjjjiiiiiihhhhhgggggggfffffeeeeeeddddddccccccbbbbaaaaaaaa```````____^^^^^^^]]]]]]]]\\\\\\\\\[[[[[ZZZZZZZZYYYYYYYYYXXXXXXXXXXWWWWWWWWVVVVVVVVVVVUUUUUUUUUUUUTTTTTTTTTTTTTTTSSSSSSSSSSSSRRRRRRRRRRRRRRRRRRRRRRRRRRQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQRRRRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSTTTTTTTTTTTTTTTUUUUUUUUUUUUUVVVVVVVVVVVWWWWWWWXXXXXXXXXXYYYYYYYYYZZZZZZZZZ[[[[[\\\\\\\\\]]]]]]]^^^^^^^^___````````aaaaaaabbbbccccccdddddddeeeeeefffffgggggghhhhhiiiiiijjjjkkkkkklllllmmmmmmmnnnooooopppppppqqrrrrrrssssstttttuuuuvvvvvwwwwwxxxxxyyyyzzzzz{{{{{|||||{{{{{zzzzzyyyyxxxxxwwwwwvvvvvuuutttttsssssrrrrrrrqqppppppooooonnnnmmmmmmlllllkkkkkkkjjjiiiiiiihhhhhhggggggffffeeeeeeddddddcccccccbbbbbaaaaaa```````_____^^^^^^^^]]]]]]]\\\\\\\\\[[[[[ZZZZZZZZZYYYYYYYYYYXXXXXXXXXXWWWWWWVVVVVVVVVVVVVUUUUUUUUUUUUTTTTTTTTTTTTTTTTSSSSSSSSSSSSSSRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTUUUUUUUUUUUUUVVVVVVVVVVVVWWWWWWWXXXXXXXXXXYYYYYYYYYYZZZZZZZZ[[[[[\\\\\\\\\]]]]]]]]^^^^^^^_____````````aaaaaabbbbbccccccddddddeeeeeeefffggggggghhhhhhiiiiiijjjjkkkkkklllllmmmmmmnnnnoooooppppppqqqrrrrrrssssstttttuuuuvvvvvwwwwwxxxxxyyyyzzzzz{{{{{|||||||{{{{{zzzzzyyyyxxxxxwwwwwvvvvvuuuutttttsssssrrrrrrqqqqpppppooooonnnmmmmmmmlllllkkkkkkjjjjiiiiiihhhhhhggggggffffeeeeeeddddddddccccccbbbbaaaaaaa````````_____^^^^^^^]]]]]]]]\\\\\\\\\[[[[[ZZZZZZZZYYYYYYYYYYXXXXXXXXXXWWWWWWWWVVVVVVVVVVVVUUUUUUUUUUUUUUTTTTTTTTTTTTTTTTTTSSSSSSSSSSSSSSSSRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUVVVVVVVVVVVVVWWWWWWWXXXXXXXXXXYYYYYYYYYYZZZZZZZZZ[[[[[\\\\\\\\\]]]]]]]^^^^^^^^_____```````aaaaaaaabbbcccccccdddddddeeeeeeffffgggggghhhhhhhiiiiiijjjjkkkkkklllllmmmmmmnnnnooooopppppqqqqrrrrrrssssstttttuuuuvvvvvwwwwwxxxxxyyyzzzzz{{{{{||||||||||{{{{{zzzzzyyyyxxxxxwwwwwvvvvvuuuutttttsssssrrrrrrqqqqpppppooooonnnnmmmmmmllllllkkkkkjjjjiiiiiihhhhhhgggggggfffffeeeeeeddddddccccccbbbbbaaaaaaaa```````____^^^^^^^^^]]]]]]]\\\\\\\\\[[[[[ZZZZZZZZZZYYYYYYYYYYXXXXXXXXXXWWWWWWWWVVVVVVVVVVVVUUUUUUUUUUUUUUUTTTTTTTTTTTTTTTTTTTTSSSSSSSSSSSSSSSSSSSRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUVVVVVVVVVVVVVWWWWWWWXXXXXXXXXXYYYYYYYYYYZZZZZZZZZZ[[[[[\\\\\\\\\]]]]]]]]^^^^^^^^____````````aaaaaaabbbbbccccccdddddddeeeeeefffffgggggghhhhhhiiiiiiijjjkkkkklllllllmmmmmmnnnnooooopppppqqqrrrrrrrssssstttttuuuvvvvvwwwwwxxxxxyyyyzzzzz{{{{{|||||}}}|||||{{{{{zzzzzyyxxxxxxwwwwwvvvvvuuuutttttsssssrrrrrrqqqqpppppoooooonnnnmmmmmllllllkkkkkkkjjjiiiiiiihhhhhhggggggffffeeeeeeddddddccccccccbbbbbaaaaaa````````_____^^^^^^^^]]]]]]]]\\\\\\\\\[[[[[[ZZZZZZZZZYYYYYYYYYYXXXXXXXXXXXWWWWWWWVVVVVVVVVVVVVVUUUUUUUUUUUUUUUUTTTTTTTTTTTTTTTTTTTTTTSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUVVVVVVVVVVVVVVWWWWWWWWXXXXXXXXXXXYYYYYYYYYYZZZZZZZZZ[[[[[[\\\\\\\\\]]]]]]]^^^^^^^^^_____```````aaaaaaabbbbbcccccccddddddeeeeeeefffggggggghhhhhhiiiiiijjjjkkkkkkllllllmmmmmnnnnoooooopppppqqqqrrrrrrssssstttttuuuuvvvvvwwwwwxxxxxxyyyzzzzz{{{{{|||||}}}}||||||{{{{{zzzzzyyxxxxxxxwwwwwvvvvvuuutttttsssssrrrrrrrqqqpppppooooooonnnmmmmmlllllllkkkkkkjjjjiiiiiihhhhhhggggggffffeeeeeeeeddddddccccccbbbbbaaaaaaaa```````_____^^^^^^^^]]]]]]]]\\\\\\\\\[[[[[[ZZZZZZZZZZYYYYYYYYYYXXXXXXXXXXXXWWWWWWWWVVVVVVVVVVVVVVUUUUUUUUUUUUUUUUUUTTTTTTTTTTTTTTTTTTTTTTTTTTSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUVVVVVVVVVVVVVVWWWWWWWWWXXXXXXXXXXXYYYYYYYYYYZZZZZZZZZZ[[[[[[\\\\\\\\\]]]]]]]]]^^^^^^^_____````````aaaaaaabbbbbcccccccddddddeeeeeeeffffgggggghhhhhhhiiiiiijjjjkkkkkkllllllmmmmmnnnnoooooopppppqqqqrrrrrrssssstttttuuuuvvvvvwwwwwxxxxxxyyyzzzzz{{{{{||||||}}}}}|||||{{{{{zzzzzzyyyxxxxxxwwwwwvvvvvuuuutttttsssssrrrrrrqqqqpppppoooooonnnnmmmmmmlllllkkkkkkjjjjiiiiiihhhhhhgggggggfffffeeeeeeddddddccccccccbbbbbaaaaaaa````````_____^^^^^^^]]]]]]]]]\\\\\\\\\[[[[[[ZZZZZZZZZZYYYYYYYYYYYXXXXXXXXXXXWWWWWWWWWVVVVVVVVVVVVVVVUUUUUUUUUUUUUUUUUUUTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUVVVVVVVVVVVVVVVWWWWWWWWWXXXXXXXXXXXYYYYYYYYYYYYZZZZZZZZZZ[[[[[[\\\\\\\\\]]]]]]]]^^^^^^^^_____```````aaaaaaaabbbbbcccccccdddddddeeeeeefffffgggggghhhhhhiiiiiiijjjkkkkkkklllllmmmmmmnnnnoooooopppppqqqqrrrrrrssssstttttuuuuvvvvvwwwwwxxxxxxyyzzzzzzz{{{{{|||||}}~~~}}|||||{{{{{zzzzzzyyyxxxxxwwwwwwvvvvvuuuutttttssssssrrrrrqqqqpppppoooooonnnnmmmmmmlllllkkkkkkjjjjjiiiiiiihhhhhhggggggffffeeeeeeedddddddcccccccbbbbaaaaaaa`````````_____^^^^^^^^]]]]]]]]\\\\\\\\\[[[[[[[[ZZZZZZZZZZYYYYYYYYYYXXXXXXXXXXXXWWWWWWWWWWVVVVVVVVVVVVVVVUUUUUUUUUUUUUUUUUUUUUUUTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVVVVVVVVWWWWWWWWWWXXXXXXXXXXXXXYYYYYYYYYYZZZZZZZZZZ[[[[[[[\\\\\\\\\]]]]]]]]]^^^^^^^_____`````````aaaaaaaabbbccccccccddddddeeeeeeeefffggggggghhhhhhiiiiiijjjjjkkkkkklllllmmmmmmmnnnooooooopppppqqqrrrrrssssssstttttuuuvvvvvwwwwwwwxxxxxyyzzzzzz{{{{{|||||}}}~~~~}}}|||||{{{{{zzzzzzzyyxxxxxwwwwwwvvvvvuuuutttttssssssrrrrrqqqqppppppooooonnnnmmmmmmlllllllkkkkkkjjjjiiiiiihhhhhhggggggfffffeeeeeeedddddddccccccbbbbbaaaaaaaa```````_______^^^^^^^]]]]]]]]]\\\\\\\\\\[[[[[[ZZZZZZZZZZYYYYYYYYYYYXXXXXXXXXXXXXXWWWWWWWWWVVVVVVVVVVVVVVVVVVVUUUUUUUUUUUUUUUUUUUUUUUUUUTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVVVVVVVVVVVVWWWWWWWWXXXXXXXXXXXXXXYYYYYYYYYYYZZZZZZZZZZ[[[[[[[\\\\\\\\\\]]]]]]]]^^^^^^^^______````````aaaaaaabbbbbccccccddddddddeeeeeefffffgggggghhhhhhhiiiiiijjjjkkkkkkllllllmmmmmmnnnnoooooppppppqqqqrrrrrsssssstttttuuuuvvvvvwwwwwwxxxxxyyyzzzzzz{{{{{|||||}}}}~~~~~}}}}|||||{{{{{zzzzzyyyxxxxxwwwwwwwvvvvvuuutttttsssssssrrrrrqqqpppppppooooonnnmmmmmmmllllllkkkkkkjjjjiiiiiihhhhhhggggggggffffeeeeeeeddddddccccccccbbbbbaaaaaaa````````______^^^^^^^^]]]]]]]]]]\\\\\\\\[[[[[[[ZZZZZZZZZZZYYYYYYYYYYYYXXXXXXXXXXXXXWWWWWWWWWWWVVVVVVVVVVVVVVVVVVVUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVVVVVVVVVVVWWWWWWWWWWWWXXXXXXXXXXXXYYYYYYYYYYYYYZZZZZZZZZZZ[[[[[[\\\\\\\\\]]]]]]]]]]^^^^^^^_______```````aaaaaaaabbbbbcccccccddddddeeeeeeeeffffggggggghhhhhhiiiiiiijjjkkkkkkkllllllmmmmmmnnnnoooooppppppqqqqrrrrrsssssstttttuuuuvvvvvwwwwwwxxxxxyyyyzzzzz{{{{{|||||}}}}~~~~~~~}}}}|||||{{{{{zzzzzyyyyxxxxxwwwwwwvvvvvuuuutttttssssssrrrrrqqqqppppppoooooonnnnmmmmmllllllkkkkkkjjjjjiiiiiiihhhhhhggggggfffffeeeeeeddddddddcccccccbbbbbaaaaaaaa```````_______^^^^^^^^]]]]]]]]]\\\\\\\\\\[[[[[[ZZZZZZZZZZZZYYYYYYYYYYYYXXXXXXXXXXXXXXWWWWWWWWWWWVVVVVVVVVVVVVVVVVVVVVVVUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVVVVVVVVVVVVVVVWWWWWWWWWWWWXXXXXXXXXXXXXYYYYYYYYYYYYYZZZZZZZZZZZ[[[[[[\\\\\\\\\\]]]]]]]]]^^^^^^^^^______````````aaaaaaabbbbbccccccccdddddddeeeeeefffffggggggghhhhhhiiiiiijjjjjkkkkkklllllllmmmmmnnnoooooooppppppqqqqrrrrrsssssstttttuuuuvvvvvwwwwwwxxxxxyyyyzzzzz{{{{{|||||}}}~~~~~~~~~~}}}}|||||{{{{{zzzzzyyyyxxxxxwwwwwwvvvvvuuuutttttssssssrrrrrqqqqppppppoooooonnnnmmmmmmlllllllkkkkkkjjjjiiiiiihhhhhhggggggggfffeeeeeeeeddddddccccccccbbbbbaaaaaaaa````````______^^^^^^^^^]]]]]]]]]\\\\\\\\\\[[[[[[[ZZZZZZZZZZZYYYYYYYYYYYYYXXXXXXXXXXXXXXXWWWWWWWWWWWWVVVVVVVVVVVVVVVVVVVVVVVVVVVVUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVVVVVVVVVVVVVVVVVVVVWWWWWWWWWWWWWXXXXXXXXXXXXXXXYYYYYYYYYYYYZZZZZZZZZZZ[[[[[[[[\\\\\\\\\\]]]]]]]]]^^^^^^^^_______```````aaaaaaaaabbbbbcccccccdddddddeeeeeeeffffggggggghhhhhhhiiiiiijjjjkkkkkkllllllmmmmmmnnnnoooooopppppppqqqrrrrrssssssstttttuuuvvvvvwwwwwwwxxxxxyyyzzzzz{{{{{|||||}}}}~~~~~~~~~~}}}|||||{{{{{zzzzzyyyyxxxxxwwwwwwvvvvvuuuuttttttsssssrrrrrrrqqqpppppooooooonnnmmmmmmmllllllkkkkkkjjjjiiiiiihhhhhhhhggggggfffffeeeeeeddddddddcccccccbbbbbaaaaaaaaa```````_______^^^^^^^^]]]]]]]]]]\\\\\\\\\\[[[[[[[[ZZZZZZZZZZZYYYYYYYYYYYYYYXXXXXXXXXXXXXXXXWWWWWWWWWWWWWWVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVWWWWWWWWWWWWWXXXXXXXXXXXXXXXXXYYYYYYYYYYYYYZZZZZZZZZZZZ[[[[[[[\\\\\\\\\\]]]]]]]]]]^^^^^^^^^______````````aaaaaaaabbbbbccccccccdddddddeeeeeeefffffgggggghhhhhhhiiiiiiijjjkkkkkkkllllllmmmmmmnnnnoooooopppppqqqqrrrrrrsssssttttttuuuuvvvvvwwwwwwxxxxxyyyyzzzzz{{{{{|||||}}}}~~~~~~~~~~}}}}|||||{{{{{zzzzzyyyxxxxxxxwwwwwvvvvvuuutttttttsssssrrrrrrqqqqpppppoooooonnnnmmmmmmllllllkkkkkkjjjjjiiiiiiihhhhhhgggggggffffeeeeeeeedddddddccccccccbbbbbaaaaaaa`````````______^^^^^^^^^]]]]]]]]]]\\\\\\\\\\[[[[[[[ZZZZZZZZZZZZZYYYYYYYYYYYYYYYXXXXXXXXXXXXXXXXXWWWWWWWWWWWWWWWWWVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVWWWWWWWWWWWWWWWWXXXXXXXXXXXXXXXXXXYYYYYYYYYYYYYYYZZZZZZZZZZZZ[[[[[[[[\\\\\\\\\\]]]]]]]]]]^^^^^^^^_______````````aaaaaaaabbbbbcccccccddddddddeeeeeeeffffgggggggghhhhhhiiiiiijjjjjkkkkkklllllllmmmmmmnnnnoooooopppppqqqqrrrrrrsssssttttttuuuuvvvvvwwwwwxxxxxxyyyyzzzzz{{{{{|||||}}}}~~~~~~~~~~}}}}|||||{{{{{zzzzzyyyyxxxxxxwwwwwvvvvvuuuuttttttsssssrrrrrrqqqqppppppooooonnnnnmmmmmmlllllllkkkkkkjjjjiiiiiihhhhhhhgggggggfffffeeeeeeeddddddddcccccccbbbbbaaaaaaaa````````_______^^^^^^^^^^]]]]]]]]]]\\\\\\\\\\[[[[[[[ZZZZZZZZZZZZZZYYYYYYYYYYYYYYYXXXXXXXXXXXXXXXXXXXXWWWWWWWWWWWWWWWWWWWWVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVWWWWWWWWWWWWWWWWWWWWXXXXXXXXXXXXXXXXXXXXYYYYYYYYYYYYYYYZZZZZZZZZZZZZ[[[[[[[[\\\\\\\\\\]]]]]]]]]]^^^^^^^^^^______`````````aaaaaaabbbbbccccccccdddddddeeeeeeeefffffgggggghhhhhhhhiiiiiijjjjkkkkkkllllllmmmmmmnnnnnooooopppppppqqqrrrrrrrsssssttttttuuuuvvvvvwwwwwxxxxxxyyyyzzzzz{{{{{|||||}}}~~~~~~~~~~}}}}|||||{{{{{zzzzzyyyyxxxxxxwwwwwvvvvvuuuuttttttsssssrrrrrrqqqqppppppooooooonnnmmmmmmmllllllkkkkkkjjjjiiiiiiihhhhhhhgggggggffffeeeeeeeddddddddcccccccccbbbbbaaaaaaa`````````______^^^^^^^^^^]]]]]]]]]]\\\\\\\\\\\[[[[[[[[[ZZZZZZZZZZZZZZYYYYYYYYYYYYYYYYXXXXXXXXXXXXXXXXXXXXXXXWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWXXXXXXXXXXXXXXXXXXXXXXYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZ[[[[[[[[[\\\\\\\\\\\]]]]]]]]]]^^^^^^^^^^_______````````aaaaaaaabbbbbcccccccccdddddddeeeeeeeefffgggggggghhhhhhiiiiiiiijjjkkkkkkkllllllmmmmmmnnnnooooooppppppqqqqrrrrrrssssstttttttuuuvvvvvwwwwwxxxxxxxyyyzzzzz{{{{{|||||}}}}~~~~~€€€~~~~~}}}|||||{{{{{zzzzzyyyyxxxxxxwwwwwvvvvvuuuuttttttsssssssrrrrrqqqpppppppoooooonnnnmmmmmmllllllkkkkkkjjjjjiiiiiiihhhhhhhggggggfffffeeeeeeeedddddddccccccccbbbbbbaaaaaaaa``````````______^^^^^^^^^]]]]]]]]]]]\\\\\\\\\\\[[[[[[[[[ZZZZZZZZZZZZZZYYYYYYYYYYYYYYYYYYXXXXXXXXXXXXXXXXXXXXXXXXXXXXWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWXXXXXXXXXXXXXXXXXXXXXXXXXXXYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZ[[[[[[[[\\\\\\\\\\\\]]]]]]]]]]]^^^^^^^^^______``````````aaaaaaabbbbbbbcccccccddddddddeeeeeeefffffgggggghhhhhhhhiiiiiijjjjjkkkkkklllllllmmmmmmnnnnooooooppppppqqqqrrrrrssssssttttttuuuuvvvvvwwwwwxxxxxxyyyyzzzzz{{{{{|||||}}}}~~~~~€€€€€~~~~~}}}}|||||{{{{{zzzzzyyyxxxxxxxwwwwwvvvvvvuuuutttttssssssrrrrrqqqqqpppppoooooonnnnnmmmmmmlllllllkkkkkkjjjjiiiiiiihhhhhhggggggggfffffeeeeeeeddddddddcccccccbbbbbbbaaaaaaaa`````````______^^^^^^^^^^]]]]]]]]]]]]\\\\\\\\\\\[[[[[[[[[ZZZZZZZZZZZZZZZZYYYYYYYYYYYYYYYYYYYYXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZ[[[[[[[[[\\\\\\\\\\\]]]]]]]]]]]^^^^^^^^^^______`````````aaaaaaaaabbbbbbccccccccdddddddeeeeeeeefffffggggggghhhhhhiiiiiiiijjjjkkkkkkllllllmmmmmmnnnnnooooooopppppqqqqqrrrrrsssssstttttuuuuvvvvvvwwwwwxxxxxxyyyyzzzzz{{{{{|||||}}}}~~~~~€€€€€€€~~~~~}}}}|||||{{{{{zzzzzzyyyxxxxxxwwwwwvvvvvvuuuutttttssssssrrrrrrqqqqppppppooooooonnnmmmmmmmllllllkkkkkkjjjjjiiiiiihhhhhhhhgggggggffffeeeeeeeeedddddddccccccccbbbbbbaaaaaaaaa`````````______^^^^^^^^^^^]]]]]]]]]]]\\\\\\\\\\\\\[[[[[[[[[ZZZZZZZZZZZZZZZZYYYYYYYYYYYYYYYYYYYYYYYYXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXYYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZ[[[[[[[[[\\\\\\\\\\\\]]]]]]]]]]]^^^^^^^^^^^^______`````````aaaaaaaabbbbbbbcccccccddddddddeeeeeeeeffffgggggggghhhhhhhiiiiiijjjjjkkkkkkkllllllmmmmmmnnnnooooooppppppqqqqrrrrrrssssssstttttuuuvvvvvvvwwwwwxxxxxxyyzzzzzzz{{{{{|||||}}}~~~~~€€€€€ \ No newline at end of file
diff --git a/Graphic_Equalizer_Original_Port/data/help.raw b/Graphic_Equalizer_Original_Port/data/help.raw
new file mode 100644
index 0000000..6585cb6
--- /dev/null
+++ b/Graphic_Equalizer_Original_Port/data/help.raw
Binary files differ
diff --git a/Graphic_Equalizer_Original_Port/data/help_mask.raw b/Graphic_Equalizer_Original_Port/data/help_mask.raw
new file mode 100644
index 0000000..4c46ff7
--- /dev/null
+++ b/Graphic_Equalizer_Original_Port/data/help_mask.raw
Binary files differ
diff --git a/Graphic_Equalizer_Original_Port/data/orig/graph_mask.bmp b/Graphic_Equalizer_Original_Port/data/orig/graph_mask.bmp
new file mode 100644
index 0000000..60a032c
--- /dev/null
+++ b/Graphic_Equalizer_Original_Port/data/orig/graph_mask.bmp
Binary files differ
diff --git a/Graphic_Equalizer_Original_Port/data/orig/help.bmp b/Graphic_Equalizer_Original_Port/data/orig/help.bmp
new file mode 100644
index 0000000..44d2814
--- /dev/null
+++ b/Graphic_Equalizer_Original_Port/data/orig/help.bmp
Binary files differ
diff --git a/Graphic_Equalizer_Original_Port/data/orig/help_mask.bmp b/Graphic_Equalizer_Original_Port/data/orig/help_mask.bmp
new file mode 100644
index 0000000..cadee1d
--- /dev/null
+++ b/Graphic_Equalizer_Original_Port/data/orig/help_mask.bmp
Binary files differ
diff --git a/Graphic_Equalizer_Original_Port/data/orig/skin.bmp b/Graphic_Equalizer_Original_Port/data/orig/skin.bmp
new file mode 100644
index 0000000..f521f56
--- /dev/null
+++ b/Graphic_Equalizer_Original_Port/data/orig/skin.bmp
Binary files differ
diff --git a/Graphic_Equalizer_Original_Port/data/orig/skin_mask.bmp b/Graphic_Equalizer_Original_Port/data/orig/skin_mask.bmp
new file mode 100644
index 0000000..989f000
--- /dev/null
+++ b/Graphic_Equalizer_Original_Port/data/orig/skin_mask.bmp
Binary files differ
diff --git a/Graphic_Equalizer_Original_Port/data/preset_demo.bin b/Graphic_Equalizer_Original_Port/data/preset_demo.bin
new file mode 100644
index 0000000..bd1f7f4
--- /dev/null
+++ b/Graphic_Equalizer_Original_Port/data/preset_demo.bin
Binary files differ
diff --git a/Graphic_Equalizer_Original_Port/data/preset_reset.bin b/Graphic_Equalizer_Original_Port/data/preset_reset.bin
new file mode 100644
index 0000000..8e4514d
--- /dev/null
+++ b/Graphic_Equalizer_Original_Port/data/preset_reset.bin
Binary files differ
diff --git a/Graphic_Equalizer_Original_Port/data/presets_hardcoded.txt b/Graphic_Equalizer_Original_Port/data/presets_hardcoded.txt
new file mode 100644
index 0000000..ef305c8
--- /dev/null
+++ b/Graphic_Equalizer_Original_Port/data/presets_hardcoded.txt
@@ -0,0 +1,13 @@
+/* 0 */ 0x01, 0x23, 0x45, 0x67, 0x89, 0xab, 0xcd, 0xe0, 0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0x01, 0x23, 0x45, 0x67, 0x89, 0xab, 0xcd, 0xe0, 0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0x01, 0x23, 0x45, 0x67, 0x89, 0xab, 0xcd, 0xe0, 0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0x01, 0x23, 0x45, 0x67, 0x89, 0xab, 0xcd, 0xe0, 0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0x01, 0x23, 0x45, 0x67,
+/* 1 */ 0x01, 0x23, 0x45, 0x67, 0x89, 0xab, 0xcd, 0xe0, 0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0x01, 0x23, 0x45, 0x67, 0x89, 0xab, 0xcd, 0xe0, 0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0x01, 0x23, 0x45, 0x67, 0x89, 0xab, 0xcd, 0xe0, 0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0x01, 0x23, 0x45, 0x67, 0x89, 0xab, 0xcd, 0xe0, 0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0x01, 0x23, 0x45, 0x67,
+/* 2 */ 0x01, 0x23, 0x45, 0x67, 0x89, 0xab, 0xcd, 0xe0, 0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0x01, 0x23, 0x45, 0x67, 0x89, 0xab, 0xcd, 0xe0, 0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0x01, 0x23, 0x45, 0x67, 0x89, 0xab, 0xcd, 0xe0, 0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0x01, 0x23, 0x45, 0x67, 0x89, 0xab, 0xcd, 0xe0, 0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0x01, 0x23, 0x45, 0x67,
+/* 3 */ 0x01, 0x23, 0x45, 0x67, 0x89, 0xab, 0xcd, 0xe0, 0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0x01, 0x23, 0x45, 0x67, 0x89, 0xab, 0xcd, 0xe0, 0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0x01, 0x23, 0x45, 0x67, 0x89, 0xab, 0xcd, 0xe0, 0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0x01, 0x23, 0x45, 0x67, 0x89, 0xab, 0xcd, 0xe0, 0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0x01, 0x23, 0x45, 0x67,
+/* 4 */ 0x01, 0x23, 0x45, 0x67, 0x89, 0xab, 0xcd, 0xe0, 0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0x01, 0x23, 0x45, 0x67, 0x89, 0xab, 0xcd, 0xe0, 0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0x01, 0x23, 0x45, 0x67, 0x89, 0xab, 0xcd, 0xe0, 0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0x01, 0x23, 0x45, 0x67, 0x89, 0xab, 0xcd, 0xe0, 0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0x01, 0x23, 0x45, 0x67,
+/* 5 */ 0x01, 0x23, 0x45, 0x67, 0x89, 0xab, 0xcd, 0xe0, 0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0x01, 0x23, 0x45, 0x67, 0x89, 0xab, 0xcd, 0xe0, 0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0x01, 0x23, 0x45, 0x67, 0x89, 0xab, 0xcd, 0xe0, 0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0x01, 0x23, 0x45, 0x67, 0x89, 0xab, 0xcd, 0xe0, 0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0x01, 0x23, 0x45, 0x67,
+/* 0 */ 0x01, 0x23, 0x45, 0x67, 0x89, 0xab, 0xcd, 0xe0, 0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0x01, 0x23, 0x45, 0x67, 0x89, 0xab, 0xcd, 0xe0, 0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0x01, 0x23, 0x45, 0x67, 0x89, 0xab, 0xcd, 0xe0, 0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0x01, 0x23, 0x45, 0x67, 0x89, 0xab, 0xcd, 0xe0, 0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0x01, 0x23, 0x45, 0x67,
+/* 1 */ 0x01, 0x23, 0x45, 0x67, 0x89, 0xab, 0xcd, 0xe0, 0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0x01, 0x23, 0x45, 0x67, 0x89, 0xab, 0xcd, 0xe0, 0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0x01, 0x23, 0x45, 0x67, 0x89, 0xab, 0xcd, 0xe0, 0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0x01, 0x23, 0x45, 0x67, 0x89, 0xab, 0xcd, 0xe0, 0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0x01, 0x23, 0x45, 0x67,
+/* 2 */ 0x01, 0x23, 0x45, 0x67, 0x89, 0xab, 0xcd, 0xe0, 0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0x01, 0x23, 0x45, 0x67, 0x89, 0xab, 0xcd, 0xe0, 0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0x01, 0x23, 0x45, 0x67, 0x89, 0xab, 0xcd, 0xe0, 0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0x01, 0x23, 0x45, 0x67, 0x89, 0xab, 0xcd, 0xe0, 0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0x01, 0x23, 0x45, 0x67,
+/* 3 */ 0x01, 0x23, 0x45, 0x67, 0x89, 0xab, 0xcd, 0xe0, 0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0x01, 0x23, 0x45, 0x67, 0x89, 0xab, 0xcd, 0xe0, 0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0x01, 0x23, 0x45, 0x67, 0x89, 0xab, 0xcd, 0xe0, 0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0x01, 0x23, 0x45, 0x67, 0x89, 0xab, 0xcd, 0xe0, 0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0x01, 0x23, 0x45, 0x67,
+/* 4 */ 0x01, 0x23, 0x45, 0x67, 0x89, 0xab, 0xcd, 0xe0, 0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0x01, 0x23, 0x45, 0x67, 0x89, 0xab, 0xcd, 0xe0, 0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0x01, 0x23, 0x45, 0x67, 0x89, 0xab, 0xcd, 0xe0, 0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0x01, 0x23, 0x45, 0x67, 0x89, 0xab, 0xcd, 0xe0, 0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0x01, 0x23, 0x45, 0x67,
+/* 5 */ 0x01, 0x23, 0x45, 0x67, 0x89, 0xab, 0xcd, 0xe0, 0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0x01, 0x23, 0x45, 0x67, 0x89, 0xab, 0xcd, 0xe0, 0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0x01, 0x23, 0x45, 0x67, 0x89, 0xab, 0xcd, 0xe0, 0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0x01, 0x23, 0x45, 0x67, 0x89, 0xab, 0xcd, 0xe0, 0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0x01, 0x23, 0x45, 0x67,
+/* 0 */ 0x01, 0x23, 0x45, 0x67, 0x89, 0xab, 0xcd, 0xe0, 0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0x01, 0x23, 0x45, 0x67, 0x89, 0xab, 0xcd, 0xe0, 0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0x01, 0x23, 0x45, 0x67, 0x89, 0xab, 0xcd, 0xe0, 0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0x01, 0x23, 0x45, 0x67, 0x89, 0xab, 0xcd, 0xe0, 0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0x01, 0x23, 0x45, 0x67
diff --git a/Graphic_Equalizer_Original_Port/data/skin.raw b/Graphic_Equalizer_Original_Port/data/skin.raw
new file mode 100644
index 0000000..f0acdd9
--- /dev/null
+++ b/Graphic_Equalizer_Original_Port/data/skin.raw
Binary files differ
diff --git a/Graphic_Equalizer_Original_Port/data/skin_mask.raw b/Graphic_Equalizer_Original_Port/data/skin_mask.raw
new file mode 100644
index 0000000..6293a08
--- /dev/null
+++ b/Graphic_Equalizer_Original_Port/data/skin_mask.raw
Binary files differ
diff --git a/Graphic_Equalizer_Original_Port/doc/html/annotated.html b/Graphic_Equalizer_Original_Port/doc/html/annotated.html
new file mode 100644
index 0000000..11bcfb0
--- /dev/null
+++ b/Graphic_Equalizer_Original_Port/doc/html/annotated.html
@@ -0,0 +1,19 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>Graphic Equalizer 2: Data Structures</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.3.9.1 -->
+<div class="qindex"><a class="qindex" href="main.html">Main&nbsp;Page</a> | <a class="qindexHL" href="annotated.html">Data&nbsp;Structures</a> | <a class="qindex" href="dirs.html">Directories</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="functions.html">Data&nbsp;Fields</a> | <a class="qindex" href="globals.html">Globals</a></div>
+<h1>Graphic Equalizer 2 Data Structures</h1>Here are the data structures with brief descriptions:<table>
+ <tr><td class="indexkey"><a class="el" href="structaudiodata__t.html">audiodata_t</a></td><td class="indexvalue"></td></tr>
+ <tr><td class="indexkey"><a class="el" href="structevents__t.html">events_t</a></td><td class="indexvalue"></td></tr>
+ <tr><td class="indexkey"><a class="el" href="structmousedata__t.html">mousedata_t</a></td><td class="indexvalue"></td></tr>
+ <tr><td class="indexkey"><a class="el" href="structskindata__t.html">skindata_t</a></td><td class="indexvalue">This struct contains all area- dimensions and color information for the skin </td></tr>
+ <tr><td class="indexkey"><a class="el" href="structskindata__t_1_1skin__info__t.html">skindata_t::skin_info_t</a></td><td class="indexvalue">Structure containing the four boundry limits of an area and maximal two colors per area </td></tr>
+</table>
+<hr size="1"><address style="align: right;"><small>Generated on Thu Dec 9 14:37:09 2004 for Graphic Equalizer 2 by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.3.9.1 </small></address>
+</body>
+</html>
diff --git a/Graphic_Equalizer_Original_Port/doc/html/audio_2main_8hcc-source.html b/Graphic_Equalizer_Original_Port/doc/html/audio_2main_8hcc-source.html
new file mode 100644
index 0000000..3167eee
--- /dev/null
+++ b/Graphic_Equalizer_Original_Port/doc/html/audio_2main_8hcc-source.html
@@ -0,0 +1,76 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>Graphic Equalizer: C:/Project Marcel &amp; Oliver/Graphic_Equalizer/src/audio/main.hcc Source File</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.3.9.1 -->
+<div class="qindex"><a class="qindex" href="main.html">Main&nbsp;Page</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="globals.html">Globals</a></div>
+<div class="nav">
+<a class="el" href="dir_000000.html">C:</a>&nbsp;/&nbsp;<a class="el" href="dir_000001.html">Project Marcel &amp; Oliver</a>&nbsp;/&nbsp;<a class="el" href="dir_000002.html">Graphic_Equalizer</a>&nbsp;/&nbsp;<a class="el" href="dir_000004.html">src</a>&nbsp;/&nbsp;<a class="el" href="dir_000005.html">audio</a></div>
+<h1>main.hcc</h1><div class="fragment"><pre class="fragment">00001
+00020 <span class="comment">/*</span>
+00021 <span class="comment"> * Set the Clock rate for this domain. 50.0 Mhz is minimally required while</span>
+00022 <span class="comment"> * performing audio tasks.</span>
+00023 <span class="comment"> */</span>
+00024 <span class="preprocessor">#define PAL_TARGET_CLOCK_RATE 50000000</span>
+00025 <span class="preprocessor"></span>
+00026 <span class="comment">/******** System Includes *************/</span>
+00027 <span class="preprocessor">#include &lt;stdlib.hch&gt;</span>
+00028
+00029 <span class="preprocessor">#include "pal_master.hch"</span>
+00030
+00031 <span class="comment">/******** Application Includes ********/</span>
+00032 <span class="preprocessor">#include "audiodriver.hch"</span>
+00033
+00034
+00035 <span class="comment">/*</span>
+00036 <span class="comment"> * Request Clockrate. Approximated ClockRate is compiler assigned.</span>
+00037 <span class="comment"> */</span>
+00038 <span class="keyword">static</span> macro expr ClockRate = PAL_ACTUAL_CLOCK_RATE;
+00039
+00040
+00041
+00050 <span class="keywordtype">void</span> main(<span class="keywordtype">void</span>) {
+00051 <span class="comment">/* Setup Audio I/O Pointers */</span>
+00052 macro expr AudioIn = PalAudioInCT(0);
+00053 macro expr AudioOut = PalAudioOutCT(0);
+00054
+00055 <span class="comment">/*</span>
+00056 <span class="comment"> * Check library versions and Request VideoOutput.</span>
+00057 <span class="comment"> * We need at least Major Version 1 and minor version 2.</span>
+00058 <span class="comment"> */</span>
+00059 PalVersionRequire(1, 2);
+00060 PalAudioInRequire(1);
+00061 PalAudioOutRequire(1);
+00062
+00063 <span class="comment">/*</span>
+00064 <span class="comment"> * Run The Following main tasks in parallel.</span>
+00065 <span class="comment"> */</span>
+00066 par {
+00067 <span class="comment">/*</span>
+00068 <span class="comment"> * Primary task is to 'Run' several hardware simultaniously.</span>
+00069 <span class="comment"> * Audio I/O needs to be in sync.</span>
+00070 <span class="comment"> */</span>
+00071 PalAudioInRun(AudioIn, ClockRate);
+00072 PalAudioOutRun(AudioOut, ClockRate);
+00073
+00074 <span class="comment">/* Parallel to our Primary tasks we run the application. */</span>
+00075 seq {
+00076 <span class="comment">/* But first we need to enable and initialize the audio. */</span>
+00077 PalAudioInEnable(AudioIn);
+00078 PalAudioOutEnable(AudioOut);
+00079 audio_init(7, LINE_IN, SR_44100);
+00080 par {
+00081 <span class="comment">/*</span>
+00082 <span class="comment"> * From here we run the main audio loop.</span>
+00083 <span class="comment"> */</span>
+00084 audio_main();
+00085 }
+00086 }
+00087 }
+00088 } <span class="comment">/* --- main() --- */</span>
+</pre></div><hr size="1"><address style="align: right;"><small>Generated on Thu Nov 25 15:40:49 2004 for Graphic Equalizer by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.3.9.1 </small></address>
+</body>
+</html>
diff --git a/Graphic_Equalizer_Original_Port/doc/html/audio_8hcc-source.html b/Graphic_Equalizer_Original_Port/doc/html/audio_8hcc-source.html
new file mode 100644
index 0000000..a3c36b6
--- /dev/null
+++ b/Graphic_Equalizer_Original_Port/doc/html/audio_8hcc-source.html
@@ -0,0 +1,69 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>Graphic Equalizer 2: C:/Project Marcel &amp; Oliver/Graphic_Equalizer/src/audio.hcc Source File</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.3.9.1 and oliver -->
+<div class="qindex"><a class="qindex" href="main.html">Main&nbsp;Page</a> | <a class="qindex" href="annotated.html">Data&nbsp;Structures</a> | <a class="qindex" href="dirs.html">Directories</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="functions.html">Data&nbsp;Fields</a> | <a class="qindex" href="globals.html">Globals</a></div>
+<div class="nav">
+<a class="el" href="dir_000000.html">C:</a>&nbsp;/&nbsp;<a class="el" href="dir_000001.html">Project Marcel &amp; Oliver</a>&nbsp;/&nbsp;<a class="el" href="dir_000002.html">Graphic_Equalizer</a>&nbsp;/&nbsp;<a class="el" href="dir_000004.html">src</a></div>
+<h1>audio.hcc</h1><a href="audio_8hcc.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment">00001
+00019 <span class="comment">/******** System Includes *************/</span>
+00020 <span class="preprocessor">#include &lt;stdlib.hch&gt;</span>
+00021
+00022 <span class="preprocessor">#include "pal_master.hch"</span>
+00023
+00024 <span class="comment">/******** Application Includes ********/</span>
+00025 <span class="preprocessor">#include "<a class="code" href="configuration_8hch.html">configuration.hch</a>"</span>
+00026 <span class="preprocessor">#include "<a class="code" href="audio_8hch.html">audio.hch</a>"</span>
+00027
+00028
+00029
+<a name="l00045"></a><a class="code" href="audio_8hcc.html#a0">00045</a> macro proc <a class="code" href="audio_8hcc.html#a0">audio_init</a>(gain_level, input_source, sample_rate, AUDIOIN, AUDIOOUT) {
+00046 <span class="comment">/*</span>
+00047 <span class="comment"> * We simply call the appropiate handlers and pass values along. We</span>
+00048 <span class="comment"> * Don't set the mute on input gain. We have volume control to do this.</span>
+00049 <span class="comment"> * Input and Output sampling rates are equal. We dont' need different</span>
+00050 <span class="comment"> * rates.</span>
+00051 <span class="comment"> */</span>
+00052 RC200AudioInSetGain(FALSE, gain_level, gain_level);
+00053 RC200AudioInSetInput(input_source);
+00054 PalAudioInSetSampleRate(AUDIOIN, sample_rate);
+00055 PalAudioOutSetSampleRate(AUDIOOUT, sample_rate);
+00056 } <span class="comment">/* --- audio_init() --- */</span>
+00057
+00058
+00059 <span class="preprocessor">#if !USE_RUNFFT</span>
+00060 <span class="preprocessor"></span><span class="comment">//TODO: put runfft here!</span>
+<a name="l00076"></a><a class="code" href="audio_8hcc.html#a1">00076</a> <span class="comment"></span>macro proc <a class="code" href="audio_8hcc.html#a1">audio_main</a>(audiodata, AUDIOIN, AUDIOOUT) {
+00077 <span class="comment">/*</span>
+00078 <span class="comment"> * Determin the data width for the current platform.</span>
+00079 <span class="comment"> */</span>
+00080 macro expr IW = PalAudioInGetMaxDataWidthCT();
+00081 macro expr OW = PalAudioOutGetMaxDataWidthCT();
+00082
+00083 <span class="keywordtype">signed</span> IW sample_left_in, sample_right_in;
+00084 <span class="keywordtype">signed</span> OW sample_left_out, sample_right_out;
+00085
+00086 <span class="keywordflow">while</span> (TRUE) {
+00087 PalAudioInRead(AUDIOIN, &amp;sample_left_in, &amp;sample_right_in);
+00088
+00089 <span class="comment">/* par {</span>
+00090 <span class="comment"> sample_add(sample_left_in);</span>
+00091 <span class="comment"> sample_get(&amp;sample_left_out);</span>
+00092 <span class="comment"> sample_right_out = sample_right_in;</span>
+00093 <span class="comment"> }</span>
+00094 <span class="comment"> if (rotate_samples()) {</span>
+00095 <span class="comment"> / *</span>
+00096 <span class="comment"> * 64 Samples have been processed, calculate.</span>
+00097 <span class="comment"> * /</span>
+00098 <span class="comment"> }</span>
+00099 <span class="comment">*/</span> PalAudioOutWrite(AUDIOOUT, (<span class="keywordtype">signed</span> OW)(sample_left_in @ 0), (<span class="keywordtype">signed</span> OW)(sample_right_in @ 0));
+00100 }
+00101 } <span class="comment">/* --- audio_main() --- */</span>
+00102 <span class="preprocessor">#endif</span>
+</pre></div><hr size="1"><address style="align: right;"><small>Generated on Thu Dec 9 14:37:06 2004 for Graphic Equalizer 2 by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.3.9.1 </small></address>
+</body>
+</html>
diff --git a/Graphic_Equalizer_Original_Port/doc/html/audio_8hcc.html b/Graphic_Equalizer_Original_Port/doc/html/audio_8hcc.html
new file mode 100644
index 0000000..8503f32
--- /dev/null
+++ b/Graphic_Equalizer_Original_Port/doc/html/audio_8hcc.html
@@ -0,0 +1,190 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>Graphic Equalizer 2: C:/Project Marcel &amp; Oliver/Graphic_Equalizer/src/audio.hcc File Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.3.9.1 -->
+<div class="qindex"><a class="qindex" href="main.html">Main&nbsp;Page</a> | <a class="qindex" href="annotated.html">Data&nbsp;Structures</a> | <a class="qindex" href="dirs.html">Directories</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="functions.html">Data&nbsp;Fields</a> | <a class="qindex" href="globals.html">Globals</a></div>
+<div class="nav">
+<a class="el" href="dir_000000.html">C:</a>&nbsp;/&nbsp;<a class="el" href="dir_000001.html">Project Marcel &amp; Oliver</a>&nbsp;/&nbsp;<a class="el" href="dir_000002.html">Graphic_Equalizer</a>&nbsp;/&nbsp;<a class="el" href="dir_000004.html">src</a></div>
+<h1>audio.hcc File Reference</h1><code>#include &lt;stdlib.hch&gt;</code><br>
+<code>#include "pal_master.hch"</code><br>
+<code>#include "<a class="el" href="configuration_8hch-source.html">configuration.hch</a>"</code><br>
+<code>#include "<a class="el" href="audio_8hch-source.html">audio.hch</a>"</code><br>
+
+<p>
+Include dependency graph for audio.hcc:<p><center><img src="audio_8hcc__incl.png" border="0" usemap="#audio.hcc_map" alt="Include dependency graph"></center>
+<map name="audio.hcc_map">
+<area href="configuration_8hch.html" shape="rect" coords="245,7,370,34" alt="">
+<area href="audio_8hch.html" shape="rect" coords="394,7,474,34" alt="">
+</map>
+
+<p>
+<a href="audio_8hcc-source.html">Go to the source code of this file.</a><table border="0" cellpadding="0" cellspacing="0">
+<tr><td></td></tr>
+<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">macro proc&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="audio_8hcc.html#a0">audio_init</a> (gain_level, input_source, sample_rate, AUDIOIN, AUDIOOUT)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set some inital values to the audio hardware. <a href="#a0"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">macro proc&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="audio_8hcc.html#a1">audio_main</a> (audiodata, AUDIOIN, AUDIOOUT)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Main audiodriver. This function never returns! It calls the audiohandlers and stores samples into a global array. Once 64 Samples are collected it raises a signal AUDIO_READY to let other processes know it's ready. We use quadruple buffering for audio input and double buffering for audio output. <a href="#a1"></a><br></td></tr>
+</table>
+<hr><a name="_details"></a><h2>Detailed Description</h2>
+<h2><a class="anchor" name="generic">
+Graphic Equalizer API</a></h2>
+<h2><a class="anchor" name="project">
+Project information.</a></h2>
+Project Graphic Equalizer<br>
+ <dl compact><dt><b>Author:</b></dt><dd>O.M. Schinagl </dd></dl>
+<dl compact><dt><b>Date:</b></dt><dd>20041011 </dd></dl>
+<dl compact><dt><b>Version:</b></dt><dd>0.1</dd></dl>
+<h2><a class="anchor" name="copyright">
+Copyright</a></h2>
+Copyright ©2004 Koninklijke Philips Electronics N.V. All rights reserved<h2><a class="anchor" name="history">
+Change history</a></h2>
+20041011: <br>
+ Initial version
+<p>
+Definition in file <a class="el" href="audio_8hcc-source.html">audio.hcc</a>.<hr><h2>Function Documentation</h2>
+<a class="anchor" name="a0" doxytag="audio.hcc::audio_init"></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top">macro proc audio_init </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">gain_level&nbsp;</td>
+ <td class="mdname" nowrap>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td class="md"></td>
+ <td class="md" nowrap>input_source&nbsp;</td>
+ <td class="mdname" nowrap>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td class="md"></td>
+ <td class="md" nowrap>sample_rate&nbsp;</td>
+ <td class="mdname" nowrap>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td class="md"></td>
+ <td class="md" nowrap>AUDIOIN&nbsp;</td>
+ <td class="mdname" nowrap>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td class="md"></td>
+ <td class="md" nowrap>AUDIOOUT&nbsp;</td>
+ <td class="mdname" nowrap></td>
+ </tr>
+ <tr>
+ <td class="md"></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"></td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Set some inital values to the audio hardware.
+<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+ <table border="0" cellspacing="2" cellpadding="0">
+ <tr><td valign="top"></td><td valign="top"><em>gain_level</em>&nbsp;</td><td>Set the input amplifier to this amplification level. </td></tr>
+ <tr><td valign="top"></td><td valign="top"><em>input_source</em>&nbsp;</td><td>Choose between microphone input or linein input. </td></tr>
+ <tr><td valign="top"></td><td valign="top"><em>sample_rate</em>&nbsp;</td><td>Set the sample rate between 8000 and 48000</td></tr>
+ </table>
+</dl>
+<dl compact><dt><b>Returns:</b></dt><dd>void </dd></dl>
+<dl compact><dt><b>Return values:</b></dt><dd>
+ <table border="0" cellspacing="2" cellpadding="0">
+ <tr><td valign="top"></td><td valign="top"><em>void</em>&nbsp;</td><td></td></tr>
+ </table>
+</dl>
+
+<p>
+Definition at line <a class="el" href="audio_8hcc-source.html#l00045">45</a> of file <a class="el" href="audio_8hcc-source.html">audio.hcc</a>.
+<p>
+Referenced by <a class="el" href="main_8hcc-source.html#l00051">main()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="a1" doxytag="audio.hcc::audio_main"></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top">macro proc audio_main </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">audiodata&nbsp;</td>
+ <td class="mdname" nowrap>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td class="md"></td>
+ <td class="md" nowrap>AUDIOIN&nbsp;</td>
+ <td class="mdname" nowrap>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td class="md"></td>
+ <td class="md" nowrap>AUDIOOUT&nbsp;</td>
+ <td class="mdname" nowrap></td>
+ </tr>
+ <tr>
+ <td class="md"></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"></td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Main audiodriver. This function never returns! It calls the audiohandlers and stores samples into a global array. Once 64 Samples are collected it raises a signal AUDIO_READY to let other processes know it's ready. We use quadruple buffering for audio input and double buffering for audio output.
+<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+ <table border="0" cellspacing="2" cellpadding="0">
+ <tr><td valign="top"></td><td valign="top"><em>*audiodata</em>&nbsp;</td><td>pointer to audio information structure. </td></tr>
+ <tr><td valign="top"></td><td valign="top"><em>AUDIOIN</em>&nbsp;</td><td>Audio Input Handler </td></tr>
+ <tr><td valign="top"></td><td valign="top"><em>AUDIOOUT</em>&nbsp;</td><td>Audio Output Handler</td></tr>
+ </table>
+</dl>
+<dl compact><dt><b>Returns:</b></dt><dd>Never Returns. </dd></dl>
+<dl compact><dt><b>Return values:</b></dt><dd>
+ <table border="0" cellspacing="2" cellpadding="0">
+ <tr><td valign="top"></td><td valign="top"><em>void</em>&nbsp;</td><td></td></tr>
+ </table>
+</dl>
+
+<p>
+Definition at line <a class="el" href="audio_8hcc-source.html#l00076">76</a> of file <a class="el" href="audio_8hcc-source.html">audio.hcc</a>.
+<p>
+Referenced by <a class="el" href="main_8hcc-source.html#l00051">main()</a>. </td>
+ </tr>
+</table>
+<hr size="1"><address style="align: right;"><small>Generated on Thu Dec 9 14:37:08 2004 for Graphic Equalizer 2 by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.3.9.1 </small></address>
+</body>
+</html>
diff --git a/Graphic_Equalizer_Original_Port/doc/html/audio_8hcc__incl.map b/Graphic_Equalizer_Original_Port/doc/html/audio_8hcc__incl.map
new file mode 100644
index 0000000..94afea9
--- /dev/null
+++ b/Graphic_Equalizer_Original_Port/doc/html/audio_8hcc__incl.map
@@ -0,0 +1,3 @@
+base referer
+rect $configuration_8hch.html 245,7 370,34
+rect $audio_8hch.html 394,7 474,34
diff --git a/Graphic_Equalizer_Original_Port/doc/html/audio_8hcc__incl.md5 b/Graphic_Equalizer_Original_Port/doc/html/audio_8hcc__incl.md5
new file mode 100644
index 0000000..a948416
--- /dev/null
+++ b/Graphic_Equalizer_Original_Port/doc/html/audio_8hcc__incl.md5
@@ -0,0 +1 @@
+c40d88d881278afd1ef70a3d20ec91ee \ No newline at end of file
diff --git a/Graphic_Equalizer_Original_Port/doc/html/audio_8hcc__incl.png b/Graphic_Equalizer_Original_Port/doc/html/audio_8hcc__incl.png
new file mode 100644
index 0000000..36bd511
--- /dev/null
+++ b/Graphic_Equalizer_Original_Port/doc/html/audio_8hcc__incl.png
Binary files differ
diff --git a/Graphic_Equalizer_Original_Port/doc/html/audio_8hch-source.html b/Graphic_Equalizer_Original_Port/doc/html/audio_8hch-source.html
new file mode 100644
index 0000000..48b00aa
--- /dev/null
+++ b/Graphic_Equalizer_Original_Port/doc/html/audio_8hch-source.html
@@ -0,0 +1,84 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>Graphic Equalizer 2: C:/Project Marcel &amp; Oliver/Graphic_Equalizer/include/audio.hch Source File</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.3.9.1 -->
+<div class="qindex"><a class="qindex" href="main.html">Main&nbsp;Page</a> | <a class="qindex" href="annotated.html">Data&nbsp;Structures</a> | <a class="qindex" href="dirs.html">Directories</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="functions.html">Data&nbsp;Fields</a> | <a class="qindex" href="globals.html">Globals</a></div>
+<div class="nav">
+<a class="el" href="dir_000000.html">C:</a>&nbsp;/&nbsp;<a class="el" href="dir_000001.html">Project Marcel &amp; Oliver</a>&nbsp;/&nbsp;<a class="el" href="dir_000002.html">Graphic_Equalizer</a>&nbsp;/&nbsp;<a class="el" href="dir_000003.html">include</a></div>
+<h1>audio.hch</h1><a href="audio_8hch.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment">00001
+00019 <span class="preprocessor">#ifndef _AUDIO_HCH</span>
+<a name="l00020"></a><a class="code" href="audio_8hch.html#a0">00020</a> <span class="preprocessor"></span><span class="preprocessor">#define _AUDIO_HCH 1</span>
+00021 <span class="preprocessor"></span>
+00022 <span class="comment">/*</span>
+00023 <span class="comment"> * Type definition of the shared memory to be used in various processes</span>
+00024 <span class="comment"> */</span>
+<a name="l00025"></a><a class="code" href="structaudiodata__t.html">00025</a> <span class="keyword">typedef</span> <span class="keyword">struct </span>{
+00026 mpram {
+00027 ram <span class="keywordtype">unsigned</span> 7 write[256];
+00028 rom <span class="keywordtype">unsigned</span> 7 read[256];
+00029 } fft_info with { block = <span class="stringliteral">"BlockRAM"</span>};
+00030 mpram {
+00031 ram <span class="keywordtype">unsigned</span> 6 write[256];
+00032 rom <span class="keywordtype">unsigned</span> 6 read[256];
+00033 } ifft_info with { block = <span class="stringliteral">"BlockRAM"</span>};
+<a name="l00034"></a><a class="code" href="structaudiodata__t.html#o0">00034</a> <span class="keywordtype">unsigned</span> 4 *equalizer_levels_ptr;
+<a name="l00035"></a><a class="code" href="structaudiodata__t.html#o1">00035</a> <span class="keywordtype">unsigned</span> 1 display_log;
+00036 } <a class="code" href="structaudiodata__t.html">audiodata_t</a>;
+00037
+00038
+00039
+00040
+00041 <span class="comment">/*</span>
+00042 <span class="comment"> * States used to indicate wether audio data is sampled.</span>
+00043 <span class="comment"> */</span>
+<a name="l00044"></a><a class="code" href="audio_8hch.html#a1">00044</a> <span class="preprocessor">#define AUDIO_NOT_READY 0</span>
+<a name="l00045"></a><a class="code" href="audio_8hch.html#a2">00045</a> <span class="preprocessor"></span><span class="preprocessor">#define AUDIO_READY 1</span>
+00046 <span class="preprocessor"></span>
+00047
+00048
+00049 <span class="comment">/*</span>
+00050 <span class="comment"> * Line in or Mic in aliases for audio_init.</span>
+00051 <span class="comment"> */</span>
+<a name="l00052"></a><a class="code" href="audio_8hch.html#a3">00052</a> <span class="preprocessor">#define LINE_IN RC200AudioInLineIn</span>
+<a name="l00053"></a><a class="code" href="audio_8hch.html#a4">00053</a> <span class="preprocessor"></span><span class="preprocessor">#define MIC_IN RC200AudioInMicrophone</span>
+00054 <span class="preprocessor"></span>
+00055
+00056
+00057 <span class="comment">/*</span>
+00058 <span class="comment"> * Sample Rate Aliases for audio_init.</span>
+00059 <span class="comment"> */</span>
+<a name="l00060"></a><a class="code" href="audio_8hch.html#a5">00060</a> <span class="preprocessor">#define SR_8000 RC200AudioSampleRate8000</span>
+<a name="l00061"></a><a class="code" href="audio_8hch.html#a6">00061</a> <span class="preprocessor"></span><span class="preprocessor">#define SR_11025 RC200AudioSampleRate11025</span>
+<a name="l00062"></a><a class="code" href="audio_8hch.html#a7">00062</a> <span class="preprocessor"></span><span class="preprocessor">#define SR_16000 RC200AudioSampleRate16000</span>
+<a name="l00063"></a><a class="code" href="audio_8hch.html#a8">00063</a> <span class="preprocessor"></span><span class="preprocessor">#define SR_22050 RC200AudioSampleRate22050</span>
+<a name="l00064"></a><a class="code" href="audio_8hch.html#a9">00064</a> <span class="preprocessor"></span><span class="preprocessor">#define SR_44100 RC200AudioSampleRate44100</span>
+<a name="l00065"></a><a class="code" href="audio_8hch.html#a10">00065</a> <span class="preprocessor"></span><span class="preprocessor">#define SR_48000 RC200AudioSampleRate48000</span>
+00066 <span class="preprocessor"></span>
+00067
+00068
+00069 <span class="comment">/*</span>
+00070 <span class="comment"> * Initialize the Audio sub-system. gain_level sets the internal amplifier to</span>
+00071 <span class="comment"> * passed level, input_source chooses between line in or mic in. The</span>
+00072 <span class="comment"> * sample_rate is set to supplied rate. Defines for these are mentioned above.</span>
+00073 <span class="comment"> */</span>
+00074 macro proc <a class="code" href="audio_8hcc.html#a0">audio_init</a>(gain_level, input_source, sample_rate, AUDIOIN, AUDIOOUT);
+00075
+00076
+00077
+00078 <span class="comment">/*</span>
+00079 <span class="comment"> * Main audiodriver loop. This procedure never returns! It handles audio io and</span>
+00080 <span class="comment"> * updates the shared memory. It needs Audio I/O handlers passed.</span>
+00081 <span class="comment"> */</span>
+00082 macro proc <a class="code" href="audio_8hcc.html#a1">audio_main</a>(audiodata, AUDIOIN, AUDIOOUT);
+00083
+00084 <span class="preprocessor">#else</span>
+00085 <span class="preprocessor"></span><span class="preprocessor">#error "ERROR file audio.hch multiple times included"</span>
+00086 <span class="preprocessor"></span><span class="preprocessor">#endif </span><span class="comment">/* --- _AUDIO_HCH --- */</span>
+00087
+</pre></div><hr size="1"><address style="align: right;"><small>Generated on Thu Dec 9 14:37:05 2004 for Graphic Equalizer 2 by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.3.9.1 </small></address>
+</body>
+</html>
diff --git a/Graphic_Equalizer_Original_Port/doc/html/audio_8hch.html b/Graphic_Equalizer_Original_Port/doc/html/audio_8hch.html
new file mode 100644
index 0000000..bcc7245
--- /dev/null
+++ b/Graphic_Equalizer_Original_Port/doc/html/audio_8hch.html
@@ -0,0 +1,496 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>Graphic Equalizer 2: C:/Project Marcel &amp; Oliver/Graphic_Equalizer/include/audio.hch File Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.3.9.1 -->
+<div class="qindex"><a class="qindex" href="main.html">Main&nbsp;Page</a> | <a class="qindex" href="annotated.html">Data&nbsp;Structures</a> | <a class="qindex" href="dirs.html">Directories</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="functions.html">Data&nbsp;Fields</a> | <a class="qindex" href="globals.html">Globals</a></div>
+<div class="nav">
+<a class="el" href="dir_000000.html">C:</a>&nbsp;/&nbsp;<a class="el" href="dir_000001.html">Project Marcel &amp; Oliver</a>&nbsp;/&nbsp;<a class="el" href="dir_000002.html">Graphic_Equalizer</a>&nbsp;/&nbsp;<a class="el" href="dir_000003.html">include</a></div>
+<h1>audio.hch File Reference</h1>
+<p>
+This graph shows which files directly or indirectly include this file:<p><center><img src="audio_8hch__dep__incl.png" border="0" usemap="#audio.hchdep_map" alt="Included by dependency graph"></center>
+<map name="audio.hchdep_map">
+<area href="audio_8hcc.html" shape="rect" coords="7,7,87,34" alt="">
+<area href="display_8hcc.html" shape="rect" coords="111,7,199,34" alt="">
+<area href="eventhandler_8hcc.html" shape="rect" coords="223,7,346,34" alt="">
+<area href="fft_8hcc.html" shape="rect" coords="370,7,429,34" alt="">
+<area href="main_8hcc.html" shape="rect" coords="453,7,527,34" alt="">
+<area href="smartmedia_8hcc.html" shape="rect" coords="551,7,669,34" alt="">
+</map>
+
+<p>
+<a href="audio_8hch-source.html">Go to the source code of this file.</a><table border="0" cellpadding="0" cellspacing="0">
+<tr><td></td></tr>
+<tr><td colspan="2"><br><h2>Data Structures</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structaudiodata__t.html">audiodata_t</a></td></tr>
+
+<tr><td colspan="2"><br><h2>Defines</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="audio_8hch.html#a0">_AUDIO_HCH</a>&nbsp;&nbsp;&nbsp;1</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="audio_8hch.html#a1">AUDIO_NOT_READY</a>&nbsp;&nbsp;&nbsp;0</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="audio_8hch.html#a2">AUDIO_READY</a>&nbsp;&nbsp;&nbsp;1</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="audio_8hch.html#a3">LINE_IN</a>&nbsp;&nbsp;&nbsp;RC200AudioInLineIn</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="audio_8hch.html#a4">MIC_IN</a>&nbsp;&nbsp;&nbsp;RC200AudioInMicrophone</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="audio_8hch.html#a5">SR_8000</a>&nbsp;&nbsp;&nbsp;RC200AudioSampleRate8000</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="audio_8hch.html#a6">SR_11025</a>&nbsp;&nbsp;&nbsp;RC200AudioSampleRate11025</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="audio_8hch.html#a7">SR_16000</a>&nbsp;&nbsp;&nbsp;RC200AudioSampleRate16000</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="audio_8hch.html#a8">SR_22050</a>&nbsp;&nbsp;&nbsp;RC200AudioSampleRate22050</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="audio_8hch.html#a9">SR_44100</a>&nbsp;&nbsp;&nbsp;RC200AudioSampleRate44100</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="audio_8hch.html#a10">SR_48000</a>&nbsp;&nbsp;&nbsp;RC200AudioSampleRate48000</td></tr>
+
+<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">macro proc&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="audio_8hch.html#a11">audio_init</a> (gain_level, input_source, sample_rate, AUDIOIN, AUDIOOUT)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set some inital values to the audio hardware. <a href="#a11"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">macro proc&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="audio_8hch.html#a12">audio_main</a> (audiodata, AUDIOIN, AUDIOOUT)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Main audiodriver. This function never returns! It calls the audiohandlers and stores samples into a global array. Once 64 Samples are collected it raises a signal AUDIO_READY to let other processes know it's ready. We use quadruple buffering for audio input and double buffering for audio output. <a href="#a12"></a><br></td></tr>
+</table>
+<hr><a name="_details"></a><h2>Detailed Description</h2>
+<h2><a class="anchor" name="generic">
+Graphic Equalizer API</a></h2>
+<h2><a class="anchor" name="project">
+Project information.</a></h2>
+Project Graphic Equalizer<br>
+ <dl compact><dt><b>Author:</b></dt><dd>O.M. Schinagl </dd></dl>
+<dl compact><dt><b>Date:</b></dt><dd>20041021 </dd></dl>
+<dl compact><dt><b>Version:</b></dt><dd>0.1</dd></dl>
+<h2><a class="anchor" name="copyright">
+Copyright</a></h2>
+Copyright ©2004 Koninklijke Philips Electronics N.V. All rights reserved<h2><a class="anchor" name="history">
+Change history</a></h2>
+20041021: O.M. Schinagl<br>
+ Initial version
+<p>
+Definition in file <a class="el" href="audio_8hch-source.html">audio.hch</a>.<hr><h2>Define Documentation</h2>
+<a class="anchor" name="a0" doxytag="audio.hch::_AUDIO_HCH"></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top">#define _AUDIO_HCH&nbsp;&nbsp;&nbsp;1 </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="audio_8hch-source.html#l00020">20</a> of file <a class="el" href="audio_8hch-source.html">audio.hch</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="a1" doxytag="audio.hch::AUDIO_NOT_READY"></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top">#define AUDIO_NOT_READY&nbsp;&nbsp;&nbsp;0 </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="audio_8hch-source.html#l00044">44</a> of file <a class="el" href="audio_8hch-source.html">audio.hch</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="a2" doxytag="audio.hch::AUDIO_READY"></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top">#define AUDIO_READY&nbsp;&nbsp;&nbsp;1 </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="audio_8hch-source.html#l00045">45</a> of file <a class="el" href="audio_8hch-source.html">audio.hch</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="a3" doxytag="audio.hch::LINE_IN"></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top">#define LINE_IN&nbsp;&nbsp;&nbsp;RC200AudioInLineIn </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="audio_8hch-source.html#l00052">52</a> of file <a class="el" href="audio_8hch-source.html">audio.hch</a>.
+<p>
+Referenced by <a class="el" href="main_8hcc-source.html#l00051">main()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="a4" doxytag="audio.hch::MIC_IN"></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top">#define MIC_IN&nbsp;&nbsp;&nbsp;RC200AudioInMicrophone </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="audio_8hch-source.html#l00053">53</a> of file <a class="el" href="audio_8hch-source.html">audio.hch</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="a5" doxytag="audio.hch::SR_8000"></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top">#define SR_8000&nbsp;&nbsp;&nbsp;RC200AudioSampleRate8000 </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="audio_8hch-source.html#l00060">60</a> of file <a class="el" href="audio_8hch-source.html">audio.hch</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="a6" doxytag="audio.hch::SR_11025"></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top">#define SR_11025&nbsp;&nbsp;&nbsp;RC200AudioSampleRate11025 </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="audio_8hch-source.html#l00061">61</a> of file <a class="el" href="audio_8hch-source.html">audio.hch</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="a7" doxytag="audio.hch::SR_16000"></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top">#define SR_16000&nbsp;&nbsp;&nbsp;RC200AudioSampleRate16000 </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="audio_8hch-source.html#l00062">62</a> of file <a class="el" href="audio_8hch-source.html">audio.hch</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="a8" doxytag="audio.hch::SR_22050"></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top">#define SR_22050&nbsp;&nbsp;&nbsp;RC200AudioSampleRate22050 </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="audio_8hch-source.html#l00063">63</a> of file <a class="el" href="audio_8hch-source.html">audio.hch</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="a9" doxytag="audio.hch::SR_44100"></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top">#define SR_44100&nbsp;&nbsp;&nbsp;RC200AudioSampleRate44100 </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="audio_8hch-source.html#l00064">64</a> of file <a class="el" href="audio_8hch-source.html">audio.hch</a>.
+<p>
+Referenced by <a class="el" href="main_8hcc-source.html#l00051">main()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="a10" doxytag="audio.hch::SR_48000"></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top">#define SR_48000&nbsp;&nbsp;&nbsp;RC200AudioSampleRate48000 </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="audio_8hch-source.html#l00065">65</a> of file <a class="el" href="audio_8hch-source.html">audio.hch</a>. </td>
+ </tr>
+</table>
+<hr><h2>Function Documentation</h2>
+<a class="anchor" name="a11" doxytag="audio.hch::audio_init"></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top">macro proc audio_init </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">gain_level&nbsp;</td>
+ <td class="mdname" nowrap>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td class="md"></td>
+ <td class="md" nowrap>input_source&nbsp;</td>
+ <td class="mdname" nowrap>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td class="md"></td>
+ <td class="md" nowrap>sample_rate&nbsp;</td>
+ <td class="mdname" nowrap>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td class="md"></td>
+ <td class="md" nowrap>AUDIOIN&nbsp;</td>
+ <td class="mdname" nowrap>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td class="md"></td>
+ <td class="md" nowrap>AUDIOOUT&nbsp;</td>
+ <td class="mdname" nowrap></td>
+ </tr>
+ <tr>
+ <td class="md"></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"></td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Set some inital values to the audio hardware.
+<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+ <table border="0" cellspacing="2" cellpadding="0">
+ <tr><td valign="top"></td><td valign="top"><em>gain_level</em>&nbsp;</td><td>Set the input amplifier to this amplification level. </td></tr>
+ <tr><td valign="top"></td><td valign="top"><em>input_source</em>&nbsp;</td><td>Choose between microphone input or linein input. </td></tr>
+ <tr><td valign="top"></td><td valign="top"><em>sample_rate</em>&nbsp;</td><td>Set the sample rate between 8000 and 48000</td></tr>
+ </table>
+</dl>
+<dl compact><dt><b>Returns:</b></dt><dd>void </dd></dl>
+<dl compact><dt><b>Return values:</b></dt><dd>
+ <table border="0" cellspacing="2" cellpadding="0">
+ <tr><td valign="top"></td><td valign="top"><em>void</em>&nbsp;</td><td></td></tr>
+ </table>
+</dl>
+
+<p>
+Definition at line <a class="el" href="audio_8hcc-source.html#l00045">45</a> of file <a class="el" href="audio_8hcc-source.html">audio.hcc</a>.
+<p>
+Referenced by <a class="el" href="main_8hcc-source.html#l00051">main()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="a12" doxytag="audio.hch::audio_main"></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top">macro proc audio_main </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">audiodata&nbsp;</td>
+ <td class="mdname" nowrap>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td class="md"></td>
+ <td class="md" nowrap>AUDIOIN&nbsp;</td>
+ <td class="mdname" nowrap>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td class="md"></td>
+ <td class="md" nowrap>AUDIOOUT&nbsp;</td>
+ <td class="mdname" nowrap></td>
+ </tr>
+ <tr>
+ <td class="md"></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"></td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Main audiodriver. This function never returns! It calls the audiohandlers and stores samples into a global array. Once 64 Samples are collected it raises a signal AUDIO_READY to let other processes know it's ready. We use quadruple buffering for audio input and double buffering for audio output.
+<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+ <table border="0" cellspacing="2" cellpadding="0">
+ <tr><td valign="top"></td><td valign="top"><em>*audiodata</em>&nbsp;</td><td>pointer to audio information structure. </td></tr>
+ <tr><td valign="top"></td><td valign="top"><em>AUDIOIN</em>&nbsp;</td><td>Audio Input Handler </td></tr>
+ <tr><td valign="top"></td><td valign="top"><em>AUDIOOUT</em>&nbsp;</td><td>Audio Output Handler</td></tr>
+ </table>
+</dl>
+<dl compact><dt><b>Returns:</b></dt><dd>Never Returns. </dd></dl>
+<dl compact><dt><b>Return values:</b></dt><dd>
+ <table border="0" cellspacing="2" cellpadding="0">
+ <tr><td valign="top"></td><td valign="top"><em>void</em>&nbsp;</td><td></td></tr>
+ </table>
+</dl>
+
+<p>
+Definition at line <a class="el" href="audio_8hcc-source.html#l00076">76</a> of file <a class="el" href="audio_8hcc-source.html">audio.hcc</a>.
+<p>
+Referenced by <a class="el" href="main_8hcc-source.html#l00051">main()</a>. </td>
+ </tr>
+</table>
+<hr size="1"><address style="align: right;"><small>Generated on Thu Dec 9 14:37:07 2004 for Graphic Equalizer 2 by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.3.9.1 </small></address>
+</body>
+</html>
diff --git a/Graphic_Equalizer_Original_Port/doc/html/audio_8hch__dep__incl.map b/Graphic_Equalizer_Original_Port/doc/html/audio_8hch__dep__incl.map
new file mode 100644
index 0000000..13b9d0b
--- /dev/null
+++ b/Graphic_Equalizer_Original_Port/doc/html/audio_8hch__dep__incl.map
@@ -0,0 +1,7 @@
+base referer
+rect $audio_8hcc.html 7,7 87,34
+rect $display_8hcc.html 111,7 199,34
+rect $eventhandler_8hcc.html 223,7 346,34
+rect $fft_8hcc.html 370,7 429,34
+rect $main_8hcc.html 453,7 527,34
+rect $smartmedia_8hcc.html 551,7 669,34
diff --git a/Graphic_Equalizer_Original_Port/doc/html/audio_8hch__dep__incl.md5 b/Graphic_Equalizer_Original_Port/doc/html/audio_8hch__dep__incl.md5
new file mode 100644
index 0000000..b5bb099
--- /dev/null
+++ b/Graphic_Equalizer_Original_Port/doc/html/audio_8hch__dep__incl.md5
@@ -0,0 +1 @@
+47b49974e1875473dca8902c4d0a51aa \ No newline at end of file
diff --git a/Graphic_Equalizer_Original_Port/doc/html/audio_8hch__dep__incl.png b/Graphic_Equalizer_Original_Port/doc/html/audio_8hch__dep__incl.png
new file mode 100644
index 0000000..13e726a
--- /dev/null
+++ b/Graphic_Equalizer_Original_Port/doc/html/audio_8hch__dep__incl.png
Binary files differ
diff --git a/Graphic_Equalizer_Original_Port/doc/html/configuration_8hch-source.html b/Graphic_Equalizer_Original_Port/doc/html/configuration_8hch-source.html
new file mode 100644
index 0000000..fa10daa
--- /dev/null
+++ b/Graphic_Equalizer_Original_Port/doc/html/configuration_8hch-source.html
@@ -0,0 +1,53 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>Graphic Equalizer 2: C:/Project Marcel &amp; Oliver/Graphic_Equalizer/include/configuration.hch Source File</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.3.9.1 -->
+<div class="qindex"><a class="qindex" href="main.html">Main&nbsp;Page</a> | <a class="qindex" href="annotated.html">Data&nbsp;Structures</a> | <a class="qindex" href="dirs.html">Directories</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="functions.html">Data&nbsp;Fields</a> | <a class="qindex" href="globals.html">Globals</a></div>
+<div class="nav">
+<a class="el" href="dir_000000.html">C:</a>&nbsp;/&nbsp;<a class="el" href="dir_000001.html">Project Marcel &amp; Oliver</a>&nbsp;/&nbsp;<a class="el" href="dir_000002.html">Graphic_Equalizer</a>&nbsp;/&nbsp;<a class="el" href="dir_000003.html">include</a></div>
+<h1>configuration.hch</h1><a href="configuration_8hch.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment">00001
+00019 <span class="preprocessor">#ifndef _CONFIGURATION_HCH</span>
+<a name="l00020"></a><a class="code" href="configuration_8hch.html#a0">00020</a> <span class="preprocessor"></span><span class="preprocessor">#define _CONFIGURATION_HCH 1</span>
+00021 <span class="preprocessor"></span>
+00022
+00023
+00024 <span class="comment">/*</span>
+00025 <span class="comment"> * To print debug information on the RS232 port set this define.</span>
+00026 <span class="comment"> */</span>
+<a name="l00027"></a><a class="code" href="configuration_8hch.html#a1">00027</a> <span class="preprocessor">#define HAVE_DEBUG 0</span>
+00028 <span class="preprocessor"></span>
+00029
+00030
+00031 <span class="comment">/*</span>
+00032 <span class="comment"> * If we don't want to use the SmartMedia set this to 0. Data is then read from</span>
+00033 <span class="comment"> * the ram, assuming it's there. Otherwise 1 will load the smartmedia</span>
+00034 <span class="comment"> * routines.</span>
+00035 <span class="comment"> */</span>
+<a name="l00036"></a><a class="code" href="configuration_8hch.html#a2">00036</a> <span class="preprocessor">#define HAVE_SMARTMEDIA 0</span>
+00037 <span class="preprocessor"></span>
+00038
+00039
+00040 <span class="comment">/*</span>
+00041 <span class="comment"> * FFT specific. TODO: Clean Up!</span>
+00042 <span class="comment"> */</span>
+<a name="l00043"></a><a class="code" href="configuration_8hch.html#a3">00043</a> <span class="preprocessor">#define USE_RUNFFT 1</span>
+<a name="l00044"></a><a class="code" href="configuration_8hch.html#a4">00044</a> <span class="preprocessor"></span><span class="preprocessor">#define HARDWARE_MULTIPLY 1</span>
+<a name="l00045"></a><a class="code" href="configuration_8hch.html#a5">00045</a> <span class="preprocessor"></span><span class="preprocessor">#define PERFORM_FFT_CALCULATION 1</span>
+<a name="l00046"></a><a class="code" href="configuration_8hch.html#a6">00046</a> <span class="preprocessor"></span><span class="preprocessor">#define USE_UNSIGNED_AUDIO 0</span>
+00047 <span class="preprocessor"></span>
+00048 <span class="comment">/*</span>
+00049 <span class="comment">FIXME: DK doesn't override from commandline defines. We have to therefore</span>
+00050 <span class="comment"> ignore this include guard until we can find around this.</span>
+00051 <span class="comment">#else</span>
+00052 <span class="comment">#error "ERROR file configuration.hch multiple times included"</span>
+00053 <span class="comment">*/</span>
+00054 <span class="preprocessor">#endif </span><span class="comment">/* --- _CONFIGURATION_HCH --- */</span>
+00055
+00056
+</pre></div><hr size="1"><address style="align: right;"><small>Generated on Thu Dec 9 14:37:05 2004 for Graphic Equalizer 2 by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.3.9.1 </small></address>
+</body>
+</html>
diff --git a/Graphic_Equalizer_Original_Port/doc/html/configuration_8hch.html b/Graphic_Equalizer_Original_Port/doc/html/configuration_8hch.html
new file mode 100644
index 0000000..93a8495
--- /dev/null
+++ b/Graphic_Equalizer_Original_Port/doc/html/configuration_8hch.html
@@ -0,0 +1,240 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>Graphic Equalizer 2: C:/Project Marcel &amp; Oliver/Graphic_Equalizer/include/configuration.hch File Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.3.9.1 -->
+<div class="qindex"><a class="qindex" href="main.html">Main&nbsp;Page</a> | <a class="qindex" href="annotated.html">Data&nbsp;Structures</a> | <a class="qindex" href="dirs.html">Directories</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="functions.html">Data&nbsp;Fields</a> | <a class="qindex" href="globals.html">Globals</a></div>
+<div class="nav">
+<a class="el" href="dir_000000.html">C:</a>&nbsp;/&nbsp;<a class="el" href="dir_000001.html">Project Marcel &amp; Oliver</a>&nbsp;/&nbsp;<a class="el" href="dir_000002.html">Graphic_Equalizer</a>&nbsp;/&nbsp;<a class="el" href="dir_000003.html">include</a></div>
+<h1>configuration.hch File Reference</h1>
+<p>
+This graph shows which files directly or indirectly include this file:<p><center><img src="configuration_8hch__dep__incl.png" border="0" usemap="#configuration.hchdep_map" alt="Included by dependency graph"></center>
+<map name="configuration.hchdep_map">
+<area href="audio_8hcc.html" shape="rect" coords="7,7,87,34" alt="">
+<area href="display_8hcc.html" shape="rect" coords="111,7,199,34" alt="">
+<area href="eventhandler_8hcc.html" shape="rect" coords="223,7,346,34" alt="">
+<area href="events_8hcc.html" shape="rect" coords="370,7,455,34" alt="">
+<area href="fft_8hcc.html" shape="rect" coords="479,7,538,34" alt="">
+<area href="main_8hcc.html" shape="rect" coords="562,7,637,34" alt="">
+<area href="mouse_8hcc.html" shape="rect" coords="661,7,746,34" alt="">
+<area href="runfft_8hcc.html" shape="rect" coords="770,7,847,34" alt="">
+<area href="smartmedia_8hcc.html" shape="rect" coords="871,7,989,34" alt="">
+</map>
+
+<p>
+<a href="configuration_8hch-source.html">Go to the source code of this file.</a><table border="0" cellpadding="0" cellspacing="0">
+<tr><td></td></tr>
+<tr><td colspan="2"><br><h2>Defines</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="configuration_8hch.html#a0">_CONFIGURATION_HCH</a>&nbsp;&nbsp;&nbsp;1</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="configuration_8hch.html#a1">HAVE_DEBUG</a>&nbsp;&nbsp;&nbsp;0</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="configuration_8hch.html#a2">HAVE_SMARTMEDIA</a>&nbsp;&nbsp;&nbsp;0</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="configuration_8hch.html#a3">USE_RUNFFT</a>&nbsp;&nbsp;&nbsp;1</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="configuration_8hch.html#a4">HARDWARE_MULTIPLY</a>&nbsp;&nbsp;&nbsp;1</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="configuration_8hch.html#a5">PERFORM_FFT_CALCULATION</a>&nbsp;&nbsp;&nbsp;1</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="configuration_8hch.html#a6">USE_UNSIGNED_AUDIO</a>&nbsp;&nbsp;&nbsp;0</td></tr>
+
+</table>
+<hr><a name="_details"></a><h2>Detailed Description</h2>
+<h2><a class="anchor" name="generic">
+Graphic Equalizer API</a></h2>
+<h2><a class="anchor" name="project">
+Project information.</a></h2>
+Project Graphic Equalizer<br>
+ <dl compact><dt><b>Author:</b></dt><dd>O.M. Schinagl </dd></dl>
+<dl compact><dt><b>Date:</b></dt><dd>20041101 </dd></dl>
+<dl compact><dt><b>Version:</b></dt><dd>0.1</dd></dl>
+<h2><a class="anchor" name="copyright">
+Copyright</a></h2>
+Copyright ©2004 Koninklijke Philips Electronics N.V. All rights reserved<h2><a class="anchor" name="history">
+Change history</a></h2>
+20041101: O.M. Schinagl<br>
+ Initial version
+<p>
+Definition in file <a class="el" href="configuration_8hch-source.html">configuration.hch</a>.<hr><h2>Define Documentation</h2>
+<a class="anchor" name="a0" doxytag="configuration.hch::_CONFIGURATION_HCH"></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top">#define _CONFIGURATION_HCH&nbsp;&nbsp;&nbsp;1 </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="configuration_8hch-source.html#l00020">20</a> of file <a class="el" href="configuration_8hch-source.html">configuration.hch</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="a1" doxytag="configuration.hch::HAVE_DEBUG"></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top">#define HAVE_DEBUG&nbsp;&nbsp;&nbsp;0 </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="configuration_8hch-source.html#l00027">27</a> of file <a class="el" href="configuration_8hch-source.html">configuration.hch</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="a2" doxytag="configuration.hch::HAVE_SMARTMEDIA"></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top">#define HAVE_SMARTMEDIA&nbsp;&nbsp;&nbsp;0 </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="configuration_8hch-source.html#l00036">36</a> of file <a class="el" href="configuration_8hch-source.html">configuration.hch</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="a3" doxytag="configuration.hch::USE_RUNFFT"></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top">#define USE_RUNFFT&nbsp;&nbsp;&nbsp;1 </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="configuration_8hch-source.html#l00043">43</a> of file <a class="el" href="configuration_8hch-source.html">configuration.hch</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="a4" doxytag="configuration.hch::HARDWARE_MULTIPLY"></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top">#define HARDWARE_MULTIPLY&nbsp;&nbsp;&nbsp;1 </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="configuration_8hch-source.html#l00044">44</a> of file <a class="el" href="configuration_8hch-source.html">configuration.hch</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="a5" doxytag="configuration.hch::PERFORM_FFT_CALCULATION"></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top">#define PERFORM_FFT_CALCULATION&nbsp;&nbsp;&nbsp;1 </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="configuration_8hch-source.html#l00045">45</a> of file <a class="el" href="configuration_8hch-source.html">configuration.hch</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="a6" doxytag="configuration.hch::USE_UNSIGNED_AUDIO"></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top">#define USE_UNSIGNED_AUDIO&nbsp;&nbsp;&nbsp;0 </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="configuration_8hch-source.html#l00046">46</a> of file <a class="el" href="configuration_8hch-source.html">configuration.hch</a>. </td>
+ </tr>
+</table>
+<hr size="1"><address style="align: right;"><small>Generated on Thu Dec 9 14:37:07 2004 for Graphic Equalizer 2 by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.3.9.1 </small></address>
+</body>
+</html>
diff --git a/Graphic_Equalizer_Original_Port/doc/html/configuration_8hch__dep__incl.map b/Graphic_Equalizer_Original_Port/doc/html/configuration_8hch__dep__incl.map
new file mode 100644
index 0000000..0c90433
--- /dev/null
+++ b/Graphic_Equalizer_Original_Port/doc/html/configuration_8hch__dep__incl.map
@@ -0,0 +1,10 @@
+base referer
+rect $audio_8hcc.html 7,7 87,34
+rect $display_8hcc.html 111,7 199,34
+rect $eventhandler_8hcc.html 223,7 346,34
+rect $events_8hcc.html 370,7 455,34
+rect $fft_8hcc.html 479,7 538,34
+rect $main_8hcc.html 562,7 637,34
+rect $mouse_8hcc.html 661,7 746,34
+rect $runfft_8hcc.html 770,7 847,34
+rect $smartmedia_8hcc.html 871,7 989,34
diff --git a/Graphic_Equalizer_Original_Port/doc/html/configuration_8hch__dep__incl.md5 b/Graphic_Equalizer_Original_Port/doc/html/configuration_8hch__dep__incl.md5
new file mode 100644
index 0000000..64cf2d9
--- /dev/null
+++ b/Graphic_Equalizer_Original_Port/doc/html/configuration_8hch__dep__incl.md5
@@ -0,0 +1 @@
+0b1a3fcf1ab800e34bed7bf1922c4760 \ No newline at end of file
diff --git a/Graphic_Equalizer_Original_Port/doc/html/configuration_8hch__dep__incl.png b/Graphic_Equalizer_Original_Port/doc/html/configuration_8hch__dep__incl.png
new file mode 100644
index 0000000..6581c6e
--- /dev/null
+++ b/Graphic_Equalizer_Original_Port/doc/html/configuration_8hch__dep__incl.png
Binary files differ
diff --git a/Graphic_Equalizer_Original_Port/doc/html/dir_000000.html b/Graphic_Equalizer_Original_Port/doc/html/dir_000000.html
new file mode 100644
index 0000000..dbd5d83
--- /dev/null
+++ b/Graphic_Equalizer_Original_Port/doc/html/dir_000000.html
@@ -0,0 +1,20 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>Graphic Equalizer 2: C:/ Directory Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.3.9.1 -->
+<div class="qindex"><a class="qindex" href="main.html">Main&nbsp;Page</a> | <a class="qindex" href="annotated.html">Data&nbsp;Structures</a> | <a class="qindex" href="dirs.html">Directories</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="functions.html">Data&nbsp;Fields</a> | <a class="qindex" href="globals.html">Globals</a></div>
+<div class="nav">
+<a class="el" href="dir_000000.html">C:</a></div>
+<h1>C: Directory Reference</h1><table border="0" cellpadding="0" cellspacing="0">
+<tr><td></td></tr>
+<tr><td colspan="2"><br><h2>Directories</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">directory&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="dir_000001.html">Project Marcel &amp; Oliver</a></td></tr>
+
+</table>
+<hr size="1"><address style="align: right;"><small>Generated on Thu Dec 9 14:37:09 2004 for Graphic Equalizer 2 by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.3.9.1 </small></address>
+</body>
+</html>
diff --git a/Graphic_Equalizer_Original_Port/doc/html/dir_000001.html b/Graphic_Equalizer_Original_Port/doc/html/dir_000001.html
new file mode 100644
index 0000000..61512ed
--- /dev/null
+++ b/Graphic_Equalizer_Original_Port/doc/html/dir_000001.html
@@ -0,0 +1,20 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>Graphic Equalizer 2: C:/Project Marcel &amp; Oliver/ Directory Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.3.9.1 -->
+<div class="qindex"><a class="qindex" href="main.html">Main&nbsp;Page</a> | <a class="qindex" href="annotated.html">Data&nbsp;Structures</a> | <a class="qindex" href="dirs.html">Directories</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="functions.html">Data&nbsp;Fields</a> | <a class="qindex" href="globals.html">Globals</a></div>
+<div class="nav">
+<a class="el" href="dir_000000.html">C:</a>&nbsp;/&nbsp;<a class="el" href="dir_000001.html">Project Marcel &amp; Oliver</a></div>
+<h1>Project Marcel &amp; Oliver Directory Reference</h1><table border="0" cellpadding="0" cellspacing="0">
+<tr><td></td></tr>
+<tr><td colspan="2"><br><h2>Directories</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">directory&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="dir_000002.html">Graphic_Equalizer</a></td></tr>
+
+</table>
+<hr size="1"><address style="align: right;"><small>Generated on Thu Dec 9 14:37:09 2004 for Graphic Equalizer 2 by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.3.9.1 </small></address>
+</body>
+</html>
diff --git a/Graphic_Equalizer_Original_Port/doc/html/dir_000002.html b/Graphic_Equalizer_Original_Port/doc/html/dir_000002.html
new file mode 100644
index 0000000..2e70b5e
--- /dev/null
+++ b/Graphic_Equalizer_Original_Port/doc/html/dir_000002.html
@@ -0,0 +1,22 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>Graphic Equalizer 2: C:/Project Marcel &amp; Oliver/Graphic_Equalizer/ Directory Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.3.9.1 -->
+<div class="qindex"><a class="qindex" href="main.html">Main&nbsp;Page</a> | <a class="qindex" href="annotated.html">Data&nbsp;Structures</a> | <a class="qindex" href="dirs.html">Directories</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="functions.html">Data&nbsp;Fields</a> | <a class="qindex" href="globals.html">Globals</a></div>
+<div class="nav">
+<a class="el" href="dir_000000.html">C:</a>&nbsp;/&nbsp;<a class="el" href="dir_000001.html">Project Marcel &amp; Oliver</a>&nbsp;/&nbsp;<a class="el" href="dir_000002.html">Graphic_Equalizer</a></div>
+<h1>Graphic_Equalizer Directory Reference</h1><table border="0" cellpadding="0" cellspacing="0">
+<tr><td></td></tr>
+<tr><td colspan="2"><br><h2>Directories</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">directory&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="dir_000003.html">include</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">directory&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="dir_000004.html">src</a></td></tr>
+
+</table>
+<hr size="1"><address style="align: right;"><small>Generated on Thu Dec 9 14:37:09 2004 for Graphic Equalizer 2 by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.3.9.1 </small></address>
+</body>
+</html>
diff --git a/Graphic_Equalizer_Original_Port/doc/html/dir_000003.html b/Graphic_Equalizer_Original_Port/doc/html/dir_000003.html
new file mode 100644
index 0000000..466ed9f
--- /dev/null
+++ b/Graphic_Equalizer_Original_Port/doc/html/dir_000003.html
@@ -0,0 +1,49 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>Graphic Equalizer 2: C:/Project Marcel &amp; Oliver/Graphic_Equalizer/include/ Directory Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.3.9.1 -->
+<div class="qindex"><a class="qindex" href="main.html">Main&nbsp;Page</a> | <a class="qindex" href="annotated.html">Data&nbsp;Structures</a> | <a class="qindex" href="dirs.html">Directories</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="functions.html">Data&nbsp;Fields</a> | <a class="qindex" href="globals.html">Globals</a></div>
+<div class="nav">
+<a class="el" href="dir_000000.html">C:</a>&nbsp;/&nbsp;<a class="el" href="dir_000001.html">Project Marcel &amp; Oliver</a>&nbsp;/&nbsp;<a class="el" href="dir_000002.html">Graphic_Equalizer</a>&nbsp;/&nbsp;<a class="el" href="dir_000003.html">include</a></div>
+<h1>include Directory Reference</h1><table border="0" cellpadding="0" cellspacing="0">
+<tr><td></td></tr>
+<tr><td colspan="2"><br><h2>Files</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">file &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="audio_8hch.html">audio.hch</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">file &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="configuration_8hch.html">configuration.hch</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">file &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="display_8hch.html">display.hch</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">file &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="display__shared_8hch.html">display_shared.hch</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Datastructures and defines for usage when interacting with the display library. <br></td></tr>
+
+<p>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">file &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="eventhandler_8hch.html">eventhandler.hch</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">file &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="eventhandler__shared_8hch.html">eventhandler_shared.hch</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">file &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="events_8hch.html">events.hch</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">file &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="fft_8hch.html">fft.hch</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">file &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="mouse_8hch.html">mouse.hch</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">file &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="mouse__shared_8hch.html">mouse_shared.hch</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">file &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="runfft_8hch.html">runfft.hch</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">file &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="smartmedia_8hch.html">smartmedia.hch</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">file &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="smartmedia__shared_8hch.html">smartmedia_shared.hch</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">file &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="weights__256_8hch.html">weights_256.hch</a></td></tr>
+
+</table>
+<hr size="1"><address style="align: right;"><small>Generated on Thu Dec 9 14:37:09 2004 for Graphic Equalizer 2 by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.3.9.1 </small></address>
+</body>
+</html>
diff --git a/Graphic_Equalizer_Original_Port/doc/html/dir_000004.html b/Graphic_Equalizer_Original_Port/doc/html/dir_000004.html
new file mode 100644
index 0000000..bed344b
--- /dev/null
+++ b/Graphic_Equalizer_Original_Port/doc/html/dir_000004.html
@@ -0,0 +1,36 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>Graphic Equalizer 2: C:/Project Marcel &amp; Oliver/Graphic_Equalizer/src/ Directory Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.3.9.1 -->
+<div class="qindex"><a class="qindex" href="main.html">Main&nbsp;Page</a> | <a class="qindex" href="annotated.html">Data&nbsp;Structures</a> | <a class="qindex" href="dirs.html">Directories</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="functions.html">Data&nbsp;Fields</a> | <a class="qindex" href="globals.html">Globals</a></div>
+<div class="nav">
+<a class="el" href="dir_000000.html">C:</a>&nbsp;/&nbsp;<a class="el" href="dir_000001.html">Project Marcel &amp; Oliver</a>&nbsp;/&nbsp;<a class="el" href="dir_000002.html">Graphic_Equalizer</a>&nbsp;/&nbsp;<a class="el" href="dir_000004.html">src</a></div>
+<h1>src Directory Reference</h1><table border="0" cellpadding="0" cellspacing="0">
+<tr><td></td></tr>
+<tr><td colspan="2"><br><h2>Files</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">file &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="audio_8hcc.html">audio.hcc</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">file &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="display_8hcc.html">display.hcc</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">file &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="eventhandler_8hcc.html">eventhandler.hcc</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">file &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="events_8hcc.html">events.hcc</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">file &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="fft_8hcc.html">fft.hcc</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">file &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="main_8hcc.html">main.hcc</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">file &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="mouse_8hcc.html">mouse.hcc</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">file &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="runfft_8hcc.html">runfft.hcc</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">file &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="smartmedia_8hcc.html">smartmedia.hcc</a></td></tr>
+
+</table>
+<hr size="1"><address style="align: right;"><small>Generated on Thu Dec 9 14:37:09 2004 for Graphic Equalizer 2 by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.3.9.1 </small></address>
+</body>
+</html>
diff --git a/Graphic_Equalizer_Original_Port/doc/html/dirs.html b/Graphic_Equalizer_Original_Port/doc/html/dirs.html
new file mode 100644
index 0000000..8a34b30
--- /dev/null
+++ b/Graphic_Equalizer_Original_Port/doc/html/dirs.html
@@ -0,0 +1,25 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>Graphic Equalizer 2: Directory Hierarchy</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.3.9.1 -->
+<div class="qindex"><a class="qindex" href="main.html">Main&nbsp;Page</a> | <a class="qindex" href="annotated.html">Data&nbsp;Structures</a> | <a class="qindexHL" href="dirs.html">Directories</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="functions.html">Data&nbsp;Fields</a> | <a class="qindex" href="globals.html">Globals</a></div>
+<h1>Graphic Equalizer 2 Directories</h1>This directory hierarchy is sorted roughly, but not completely, alphabetically:<ul>
+<li><a class="el" href="dir_000000.html">C:</a>
+<ul>
+<li><a class="el" href="dir_000001.html">Project Marcel &amp; Oliver</a>
+<ul>
+<li><a class="el" href="dir_000002.html">Graphic_Equalizer</a>
+<ul>
+<li><a class="el" href="dir_000003.html">include</a>
+<li><a class="el" href="dir_000004.html">src</a>
+</ul>
+</ul>
+</ul>
+</ul>
+<hr size="1"><address style="align: right;"><small>Generated on Thu Dec 9 14:37:09 2004 for Graphic Equalizer 2 by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.3.9.1 </small></address>
+</body>
+</html>
diff --git a/Graphic_Equalizer_Original_Port/doc/html/display_8hcc-source.html b/Graphic_Equalizer_Original_Port/doc/html/display_8hcc-source.html
new file mode 100644
index 0000000..6160bc7
--- /dev/null
+++ b/Graphic_Equalizer_Original_Port/doc/html/display_8hcc-source.html
@@ -0,0 +1,310 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>Graphic Equalizer 2: C:/Project Marcel &amp; Oliver/Graphic_Equalizer/src/display.hcc Source File</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.3.9.1 -->
+<div class="qindex"><a class="qindex" href="main.html">Main&nbsp;Page</a> | <a class="qindex" href="annotated.html">Data&nbsp;Structures</a> | <a class="qindex" href="dirs.html">Directories</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="functions.html">Data&nbsp;Fields</a> | <a class="qindex" href="globals.html">Globals</a></div>
+<div class="nav">
+<a class="el" href="dir_000000.html">C:</a>&nbsp;/&nbsp;<a class="el" href="dir_000001.html">Project Marcel &amp; Oliver</a>&nbsp;/&nbsp;<a class="el" href="dir_000002.html">Graphic_Equalizer</a>&nbsp;/&nbsp;<a class="el" href="dir_000004.html">src</a></div>
+<h1>display.hcc</h1><a href="display_8hcc.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment">00001
+00019 <span class="comment">/*</span>
+00020 <span class="comment"> * Set the Clock rate for this domain. 25.175 Mhz is required for the Video output.</span>
+00021 <span class="comment"> */</span>
+<a name="l00022"></a><a class="code" href="display_8hcc.html#a0">00022</a> <span class="preprocessor">#define PAL_TARGET_CLOCK_RATE 25175000</span>
+00023 <span class="preprocessor"></span>
+00024 <span class="comment">/******** System Includes *************/</span>
+00025 <span class="preprocessor">#include &lt;stdlib.hch&gt;</span>
+00026
+00027 <span class="preprocessor">#include "pal_master.hch"</span>
+00028
+00029 <span class="comment">/******** Application Includes ********/</span>
+00030 <span class="preprocessor">#include "<a class="code" href="configuration_8hch.html">configuration.hch</a>"</span>
+00031 <span class="preprocessor">#include "<a class="code" href="audio_8hch.html">audio.hch</a>"</span>
+00032 <span class="preprocessor">#include "<a class="code" href="eventhandler__shared_8hch.html">eventhandler_shared.hch</a>"</span>
+00033 <span class="preprocessor">#include "<a class="code" href="mouse__shared_8hch.html">mouse_shared.hch</a>"</span>
+00034 <span class="preprocessor">#include "<a class="code" href="smartmedia__shared_8hch.html">smartmedia_shared.hch</a>"</span>
+00035 <span class="preprocessor">#include "<a class="code" href="display__shared_8hch.html">display_shared.hch</a>"</span>
+00036 <span class="preprocessor">#include "<a class="code" href="display_8hch.html">display.hch</a>"</span>
+00037
+00038 <span class="preprocessor">#if HAVE_DEBUG</span>
+00039 <span class="preprocessor"></span><span class="preprocessor"> #include "debug.hch"</span>
+00040 <span class="preprocessor">#endif</span>
+00041 <span class="preprocessor"></span>
+00042
+00043
+00044 <span class="comment">/*</span>
+00045 <span class="comment"> * Channel to notify others when new mousedata is available. If so</span>
+00046 <span class="comment"> * Then mousedata struct is updated with shared data.</span>
+00047 <span class="comment"> */</span>
+<a name="l00048"></a><a class="code" href="eventhandler_8hcc.html#a0">00048</a> chan <span class="keywordtype">unsigned</span> 1 maskupdate_notification;
+00049
+00050
+00051
+<a name="l00065"></a><a class="code" href="display_8hcc.html#a2">00065</a> <span class="keywordtype">void</span> <a class="code" href="display_8hcc.html#a2">display_main</a>(<a class="code" href="structskindata__t.html">skindata_t</a> *skindata, <a class="code" href="structaudiodata__t.html">audiodata_t</a> *audiodata, <a class="code" href="structevents__t.html">events_t</a> *events, <a class="code" href="structmousedata__t.html">mousedata_t</a> *mousedata) {
+00066 <span class="comment">/*</span>
+00067 <span class="comment"> * Setup macro's RAM/Video handles and to coordinate pixel writing.</span>
+00068 <span class="comment"> */</span>
+00069 macro expr CLOCKRATE = PAL_ACTUAL_CLOCK_RATE;
+00070 macro expr VIDEOOUT = PalVideoOutOptimalCT(CLOCKRATE);
+00071 macro expr RAM_BANK0 = PalPL2RAMCT(0);
+00072 macro expr DW = PalPL2RAMGetMaxDataWidthCT();
+00073 macro expr AW = PalPL2RAMGetMaxAddressWidthCT();
+00074 macro expr VISIBLEX = PalVideoOutGetVisibleX(VIDEOOUT, CLOCKRATE);
+00075 macro expr TOTALX = PalVideoOutGetTotalX(VIDEOOUT, CLOCKRATE);
+00076 macro expr TOTALY = PalVideoOutGetTotalY(VIDEOOUT);
+00077 macro expr SCANX = PalVideoOutGetX(VIDEOOUT);
+00078 macro expr SCANY = PalVideoOutGetY(VIDEOOUT);
+00079
+00080 <span class="keywordtype">unsigned</span> DW pixeldata;
+00081 <span class="keywordtype">unsigned</span> 24 visual_graph_color;
+00082 <span class="keywordtype">unsigned</span> AW address, address_offset;
+00083
+00084
+00085
+00086 <span class="comment">/*</span>
+00087 <span class="comment"> * If the passed button_state tells us the button is active, then we</span>
+00088 <span class="comment"> * the button is 'on' and we draw it inverted. Otherwise we draw the</span>
+00089 <span class="comment"> * area of the button normally.</span>
+00090 <span class="comment"> */</span>
+00091 macro proc draw_button(button_state) {
+00092 <span class="keywordflow">if</span> (button_state == pixeldata[31:24]) {
+00093 PalVideoOutWrite(VIDEOOUT, ~<a class="code" href="display_8hch.html#a1">PIXEL</a>);
+00094 } <span class="keywordflow">else</span> {
+00095 PalVideoOutWrite(VIDEOOUT, <a class="code" href="display_8hch.html#a1">PIXEL</a>);
+00096 }
+00097 }
+00098
+00099 <span class="comment">/*</span>
+00100 <span class="comment"> * Prime Rendering Pipeline to start where the skin starts.</span>
+00101 <span class="comment"> */</span>
+00102 PalPL2RAMSetReadAddress(RAM_BANK0, <a class="code" href="smartmedia__shared_8hch.html#a22">ADDRESS_SKIN_START</a>);
+00103
+00104 <span class="comment">/*</span>
+00105 <span class="comment"> * Run the following tasks indefinatly and in parallel</span>
+00106 <span class="comment"> */</span>
+00107 <span class="keywordflow">while</span> (TRUE) {
+00108 par {
+00109 <span class="comment">/*</span>
+00110 <span class="comment"> * Before starting this loop we allready set the the</span>
+00111 <span class="comment"> * address. Therefor we can start reading the</span>
+00112 <span class="comment"> * previously set address and prepare the next address</span>
+00113 <span class="comment"> * for the next cycle.</span>
+00114 <span class="comment"> */</span>
+00115 PalPL2RAMRead(RAM_BANK0, &amp;pixeldata);
+00116 PalPL2RAMSetReadAddress(RAM_BANK0, address_offset +address);
+00117
+00118 <span class="comment">/*</span>
+00119 <span class="comment"> */</span>
+00120 <span class="keywordflow">switch</span> (events-&gt;<a class="code" href="structevents__t.html#o4">mode</a>) {
+00121 <span class="keywordflow">case</span> <a class="code" href="eventhandler__shared_8hch.html#a2">MODE_HELP</a>:
+00122 address_offset = ADDRESS_HELP_START;
+00123 <span class="keywordflow">break</span>;
+00124 <span class="keywordflow">case</span> <a class="code" href="eventhandler__shared_8hch.html#a3">MODE_GRAPH</a>:
+00125 address_offset = ADDRESS_GRAPHMASK_START;
+00126 <span class="keywordflow">break</span>;
+00127 <span class="keywordflow">default</span>:
+00128 address_offset = ADDRESS_SKIN_START;
+00129 <span class="keywordflow">break</span>;
+00130 }
+00131
+00132 <span class="keywordflow">if</span> (<a class="code" href="eventhandler__shared_8hch.html#a3">MODE_GRAPH</a> == events-&gt;<a class="code" href="structevents__t.html#o4">mode</a>) {
+00133 par {
+00134 visual_graph_color = ((<span class="keywordtype">unsigned</span> 8)(0 @ audiodata-&gt;fft_info.read[pixeldata[31:24]]) &lt;&lt; 1) @ ((<span class="keywordtype">unsigned</span> 8)(0 @ audiodata-&gt;fft_info.read[pixeldata[31:24]]) &lt;&lt; -1) @ ((<span class="keywordtype">unsigned</span> 8)(0 @ audiodata-&gt;fft_info.read[pixeldata[31:24]]) &lt;&lt; 0);
+00135 PalVideoOutWrite(VIDEOOUT, 0 @ visual_graph_color);
+00136 }
+00137 } <span class="keywordflow">else</span> {
+00138 <span class="comment">/*</span>
+00139 <span class="comment"> * Determin what to draw where here. Every case has an</span>
+00140 <span class="comment"> * if else statement comparing wether to draw something</span>
+00141 <span class="comment"> * special or the background. Every specific drawing</span>
+00142 <span class="comment"> * obviously only happens in the masked area.</span>
+00143 <span class="comment"> */</span>
+00144 <span class="keywordflow">switch</span> (pixeldata[31:24]) {
+00145 <span class="comment">/*</span>
+00146 <span class="comment"> */</span>
+00147 <span class="keywordflow">case</span> <a class="code" href="display__shared_8hch.html#a1">AREA_WAVEFORM</a>:
+00148 <span class="keywordflow">if</span> (SCANY == 0 @ skindata-&gt;area_waveform_bottom -(0 @ (audiodata-&gt;ifft_info.read[((SCANX -(0 @ skindata-&gt;area_waveform_left)) &lt;-8)]))) {
+00149 PalVideoOutWrite(VIDEOOUT, skindata-&gt;color_area_waveform);
+00150 } <span class="keywordflow">else</span> {
+00151 PalVideoOutWrite(VIDEOOUT, <a class="code" href="display_8hch.html#a1">PIXEL</a>);
+00152 }
+00153 <span class="keywordflow">break</span>;
+00154
+00155 <span class="comment">/*</span>
+00156 <span class="comment"> * Volume control over the Y-axis.</span>
+00157 <span class="comment"> */</span>
+00158 <span class="keywordflow">case</span> <a class="code" href="display__shared_8hch.html#a2">AREA_VOLUME_YAXIS</a>:
+00159 <span class="comment">/*</span>
+00160 <span class="comment"> * The volume_position stores the</span>
+00161 <span class="comment"> * highest point of our bar. Every</span>
+00162 <span class="comment"> * pixel after this point is drawn.</span>
+00163 <span class="comment"> */</span>
+00164 <span class="keywordflow">if</span> (SCANY &gt;= 0 @ events-&gt;<a class="code" href="structevents__t.html#o2">volume_position</a>) {
+00165 PalVideoOutWrite(VIDEOOUT, skindata-&gt;color_area_volume);
+00166 } <span class="keywordflow">else</span> {
+00167 PalVideoOutWrite(VIDEOOUT, <a class="code" href="display_8hch.html#a1">PIXEL</a>);
+00168 }
+00169 <span class="keywordflow">break</span>;
+00170
+00171 <span class="comment">/*</span>
+00172 <span class="comment"> * Spectrum Analyzer</span>
+00173 <span class="comment"> */</span>
+00174 <span class="keywordflow">case</span> <a class="code" href="display__shared_8hch.html#a3">AREA_SPECTRUM_ANALYZER</a>:
+00175 <span class="comment">/*</span>
+00176 <span class="comment"> * We draw every pixel that is smaller TODO</span>
+00177 <span class="comment"> */</span>
+00178 <span class="keywordflow">if</span> ((SCANY &gt;= (0 @ skindata-&gt;area_spectrum_bottom) -(0 @ audiodata-&gt;fft_info.read[(SCANX -(0 @ skindata-&gt;area_spectrum_left))[9:2]])) &amp;&amp; ((SCANX -(0 @ skindata-&gt;area_spectrum_left)) &lt;- 2)) {
+00179 PalVideoOutWrite(VIDEOOUT, <a class="code" href="display_8hch.html#a4">PIXEL_SPECTRUM</a>);
+00180 } <span class="keywordflow">else</span> {
+00181 PalVideoOutWrite(VIDEOOUT, <a class="code" href="display_8hch.html#a1">PIXEL</a>);
+00182 }
+00183 <span class="keywordflow">break</span>;
+00184
+00185 <span class="comment">/*</span>
+00186 <span class="comment"> * Since all buttons are drawn equally, either</span>
+00187 <span class="comment"> * we draw them normally or we inverse them, we</span>
+00188 <span class="comment"> * can handle them almost equally.</span>
+00189 <span class="comment"> */</span>
+00190 <span class="keywordflow">case</span> <a class="code" href="display__shared_8hch.html#a7">BUTTON_PRESET_1</a>: <span class="comment">/* fall through */</span>
+00191 <span class="keywordflow">case</span> <a class="code" href="display__shared_8hch.html#a8">BUTTON_PRESET_2</a>: <span class="comment">/* fall through */</span>
+00192 <span class="keywordflow">case</span> <a class="code" href="display__shared_8hch.html#a9">BUTTON_PRESET_3</a>: <span class="comment">/* fall through */</span>
+00193 <span class="keywordflow">case</span> <a class="code" href="display__shared_8hch.html#a10">BUTTON_PRESET_4</a>: <span class="comment">/* fall through */</span>
+00194 <span class="keywordflow">case</span> <a class="code" href="display__shared_8hch.html#a11">BUTTON_PRESET_5</a>: <span class="comment">/* fall through */</span>
+00195 <span class="keywordflow">case</span> <a class="code" href="display__shared_8hch.html#a12">BUTTON_PRESET_6</a>:
+00196 <span class="comment">/*</span>
+00197 <span class="comment"> * The active preset tells us what</span>
+00198 <span class="comment"> * button is currently enabled. We must</span>
+00199 <span class="comment"> * however not forget to add the preset</span>
+00200 <span class="comment"> * button offset to possibly match it</span>
+00201 <span class="comment"> * with the current mask.</span>
+00202 <span class="comment"> */</span>
+00203 draw_button((events-&gt;<a class="code" href="structevents__t.html#o1">active_preset</a> +<a class="code" href="display__shared_8hch.html#a7">BUTTON_PRESET_1</a>) &lt;- 8);
+00204 <span class="keywordflow">break</span>;
+00205
+00206 <span class="keywordflow">case</span> <a class="code" href="display__shared_8hch.html#a15">BUTTON_PRECISE</a>: <span class="comment">/* fall through */</span>
+00207 <span class="keywordflow">case</span> <a class="code" href="display__shared_8hch.html#a16">BUTTON_CONCAVE_HALF</a>: <span class="comment">/* fall through */</span>
+00208 <span class="keywordflow">case</span> <a class="code" href="display__shared_8hch.html#a14">BUTTON_CONVEX_HALF</a>: <span class="comment">/* fall through */</span>
+00209 <span class="keywordflow">case</span> <a class="code" href="display__shared_8hch.html#a17">BUTTON_CONCAVE_FULL</a>: <span class="comment">/* fall through */</span>
+00210 <span class="keywordflow">case</span> <a class="code" href="display__shared_8hch.html#a13">BUTTON_CONVEX_FULL</a>:
+00211 <span class="comment">/*</span>
+00212 <span class="comment"> * equalizer mode tells us what button</span>
+00213 <span class="comment"> * is currently enabled. By adding the</span>
+00214 <span class="comment"> * equalizer mode button offset we can</span>
+00215 <span class="comment"> * safley check wether it matches our</span>
+00216 <span class="comment"> * mask.</span>
+00217 <span class="comment"> */</span>
+00218 draw_button((0 @ events-&gt;<a class="code" href="structevents__t.html#o5">equalizer_mode</a>) +<a class="code" href="display__shared_8hch.html#a15">BUTTON_PRECISE</a>);
+00219 <span class="keywordflow">break</span>;
+00220
+00221 <span class="keywordflow">case</span> <a class="code" href="display__shared_8hch.html#a4">BUTTON_LOG</a>:
+00222 <span class="comment">/*</span>
+00223 <span class="comment"> * </span>
+00224 <span class="comment"> */</span>
+00225 draw_button((0 @ audiodata-&gt;<a class="code" href="structaudiodata__t.html#o1">display_log</a>) +<a class="code" href="display__shared_8hch.html#a4">BUTTON_LOG</a>);
+00226 <span class="keywordflow">break</span>;
+00227
+00228 <span class="comment">/*</span>
+00229 <span class="comment"> * The default case is split up into two parts</span>
+00230 <span class="comment"> * actually. This is because we have 128 bands</span>
+00231 <span class="comment"> * for the equalizer and thus as many mask</span>
+00232 <span class="comment"> * entries. Since we don't want 128 identical</span>
+00233 <span class="comment"> * cases we check wether the equalizer mask is</span>
+00234 <span class="comment"> * currently active and if so draw it. If this</span>
+00235 <span class="comment"> * is not the case we simply draw the</span>
+00236 <span class="comment"> * background.</span>
+00237 <span class="comment"> */</span>
+00238 <span class="keywordflow">default</span>:
+00239 <span class="comment">/* (pixeldata[31:24] &lt;= AREA_EQUALIZER_MAX) &amp;&amp; */</span>
+00240 <span class="keywordflow">if</span> ((<a class="code" href="display__shared_8hch.html#a20">AREA_EQUALIZER_MIN</a> &lt;= pixeldata[31:24]) &amp;&amp; (!events-&gt;<a class="code" href="structevents__t.html#o6">locked_display</a>)) {
+00241 <span class="keywordflow">if</span> ((SCANY == 0 @ events-&gt;<a class="code" href="structevents__t.html#o0">equalizer_display</a>[(pixeldata[31:24] -AREA_EQUALIZER_MIN) &lt;- 7]) || ((SCANY +1) == 0 @ events-&gt;<a class="code" href="structevents__t.html#o0">equalizer_display</a>[(pixeldata[31:24] -AREA_EQUALIZER_MIN) &lt;- 7])) {
+00242 PalVideoOutWrite(VIDEOOUT, skindata-&gt;color_equalizer);
+00243 } <span class="keywordflow">else</span> {
+00244 PalVideoOutWrite(VIDEOOUT, <a class="code" href="display_8hch.html#a1">PIXEL</a>);
+00245 }
+00246 } <span class="keywordflow">else</span> {
+00247 PalVideoOutWrite(VIDEOOUT, <a class="code" href="display_8hch.html#a1">PIXEL</a>);
+00248 }
+00249 <span class="keywordflow">break</span>;
+00250 }
+00251 }
+00252
+00253 <span class="comment">/*</span>
+00254 <span class="comment"> * We compare our current X and Y scan positions of the</span>
+00255 <span class="comment"> * output to the x and y data of the mouse. When those</span>
+00256 <span class="comment"> * are equal we set the current mask to the mask stored</span>
+00257 <span class="comment"> * in memory at that location. We then know what mask</span>
+00258 <span class="comment"> * is to be used for events.</span>
+00259 <span class="comment"> */</span>
+00260 <span class="keywordflow">if</span> (<a class="code" href="mouse__shared_8hch.html#a2">MOUSE_UPDATED</a> == mousedata-&gt;<a class="code" href="structmousedata__t.html#o3">status</a>) {
+00261 <span class="keywordflow">if</span> ((SCANX == 0 @ mousedata-&gt;<a class="code" href="structmousedata__t.html#o0">x</a>) &amp;&amp; (SCANY == 0 @ mousedata-&gt;<a class="code" href="structmousedata__t.html#o1">y</a>)) {
+00262 par {
+00263 events-&gt;<a class="code" href="structevents__t.html#o3">mask</a> = pixeldata[31:24];
+00264 mousedata-&gt;<a class="code" href="structmousedata__t.html#o3">status</a> = MOUSE_NOT_UPDATED;
+00265 <a class="code" href="display_8hcc.html#a1">maskupdate_notification</a> ! MOUSE_UPDATED;
+00266 }
+00267 } <span class="keywordflow">else</span> {
+00268 delay;
+00269 }
+00270 } <span class="keywordflow">else</span> {
+00271 delay;
+00272 }
+00273
+00274 <span class="comment">/*</span>
+00275 <span class="comment"> * The current position of the screen can lay in an</span>
+00276 <span class="comment"> * area called the blanking area. We don't have data</span>
+00277 <span class="comment"> * for this area as it is not drawn. We therefor have</span>
+00278 <span class="comment"> * to determin wether we are beyond the visible area of</span>
+00279 <span class="comment"> * the screen, but before the end of the total width of</span>
+00280 <span class="comment"> * the screen. Our pipeline consists of 5 total stages.</span>
+00281 <span class="comment"> * Therefor we have to substract 5 pixels.</span>
+00282 <span class="comment"> */</span>
+00283 <span class="keywordflow">if</span> ((SCANX &gt; (VISIBLEX - 5)) &amp;&amp; (SCANX &lt;= (TOTALX - 5))) {
+00284 <span class="comment">/*</span>
+00285 <span class="comment"> * We are in the blanking area of the screen.</span>
+00286 <span class="comment"> * If we are on the last line, and thus last</span>
+00287 <span class="comment"> * pixel we reset our address counter.</span>
+00288 <span class="comment"> */</span>
+00289 <span class="keywordflow">if</span> (SCANY == (TOTALY -1)) {
+00290 <span class="comment">/*</span>
+00291 <span class="comment"> * Reset our draw address counter to 0.</span>
+00292 <span class="comment"> */</span>
+00293 address = 0;
+00294 } <span class="keywordflow">else</span> {
+00295 <span class="comment">/*</span>
+00296 <span class="comment"> * We have reached the end of the</span>
+00297 <span class="comment"> * visible line, but not the end of</span>
+00298 <span class="comment"> * the screen. Therefore do nothing.</span>
+00299 <span class="comment"> */</span>
+00300 delay;
+00301 }
+00302 } <span class="keywordflow">else</span> {
+00303 <span class="comment">/*</span>
+00304 <span class="comment"> * Increase the memory counter for each pixel</span>
+00305 <span class="comment"> * drawn thus keeping the memory location in</span>
+00306 <span class="comment"> * sync with the current pixel position.</span>
+00307 <span class="comment"> */</span>
+00308 address++;
+00309 }
+00310 }
+00311 }
+00312 } <span class="comment">/* --- display_main() --- */</span>
+00313
+00314
+00315
+<a name="l00328"></a><a class="code" href="display_8hcc.html#a3">00328</a> <span class="keywordtype">void</span> <a class="code" href="display_8hcc.html#a3">reload_equalizer</a>(<a class="code" href="structevents__t.html">events_t</a> *events, <span class="keywordtype">unsigned</span> 4 *equalizer_levels) {
+00329 <span class="keywordtype">unsigned</span> 7 equalizer_band;
+00330
+00331 events-&gt;<a class="code" href="structevents__t.html#o6">locked_display</a> = TRUE;
+00332 delay;
+00333 <span class="keywordflow">do</span> {
+00334 events-&gt;<a class="code" href="structevents__t.html#o0">equalizer_display</a>[equalizer_band] = <a class="code" href="eventhandler__shared_8hch.html#a9">equalizer_table_inv</a>[equalizer_levels[equalizer_band]];
+00335 equalizer_band++;
+00336 } <span class="keywordflow">while</span> (equalizer_band);
+00337 events-&gt;<a class="code" href="structevents__t.html#o6">locked_display</a> = FALSE;
+00338 } <span class="comment">/* --- reload_equalizer() --- */</span>
+</pre></div><hr size="1"><address style="align: right;"><small>Generated on Thu Dec 9 14:37:06 2004 for Graphic Equalizer 2 by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.3.9.1 </small></address>
+</body>
+</html>
diff --git a/Graphic_Equalizer_Original_Port/doc/html/display_8hcc.html b/Graphic_Equalizer_Original_Port/doc/html/display_8hcc.html
new file mode 100644
index 0000000..97893f6
--- /dev/null
+++ b/Graphic_Equalizer_Original_Port/doc/html/display_8hcc.html
@@ -0,0 +1,252 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>Graphic Equalizer 2: C:/Project Marcel &amp; Oliver/Graphic_Equalizer/src/display.hcc File Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.3.9.1 -->
+<div class="qindex"><a class="qindex" href="main.html">Main&nbsp;Page</a> | <a class="qindex" href="annotated.html">Data&nbsp;Structures</a> | <a class="qindex" href="dirs.html">Directories</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="functions.html">Data&nbsp;Fields</a> | <a class="qindex" href="globals.html">Globals</a></div>
+<div class="nav">
+<a class="el" href="dir_000000.html">C:</a>&nbsp;/&nbsp;<a class="el" href="dir_000001.html">Project Marcel &amp; Oliver</a>&nbsp;/&nbsp;<a class="el" href="dir_000002.html">Graphic_Equalizer</a>&nbsp;/&nbsp;<a class="el" href="dir_000004.html">src</a></div>
+<h1>display.hcc File Reference</h1><code>#include &lt;stdlib.hch&gt;</code><br>
+<code>#include "pal_master.hch"</code><br>
+<code>#include "<a class="el" href="configuration_8hch-source.html">configuration.hch</a>"</code><br>
+<code>#include "<a class="el" href="audio_8hch-source.html">audio.hch</a>"</code><br>
+<code>#include "<a class="el" href="eventhandler__shared_8hch-source.html">eventhandler_shared.hch</a>"</code><br>
+<code>#include "<a class="el" href="mouse__shared_8hch-source.html">mouse_shared.hch</a>"</code><br>
+<code>#include "<a class="el" href="smartmedia__shared_8hch-source.html">smartmedia_shared.hch</a>"</code><br>
+<code>#include "<a class="el" href="display__shared_8hch-source.html">display_shared.hch</a>"</code><br>
+<code>#include "<a class="el" href="display_8hch-source.html">display.hch</a>"</code><br>
+
+<p>
+Include dependency graph for display.hcc:<p><center><img src="display_8hcc__incl.png" border="0" usemap="#display.hcc_map" alt="Include dependency graph"></center>
+<map name="display.hcc_map">
+<area href="configuration_8hch.html" shape="rect" coords="245,7,370,34" alt="">
+<area href="audio_8hch.html" shape="rect" coords="394,7,474,34" alt="">
+<area href="eventhandler__shared_8hch.html" shape="rect" coords="498,7,671,34" alt="">
+<area href="mouse__shared_8hch.html" shape="rect" coords="695,7,831,34" alt="">
+<area href="smartmedia__shared_8hch.html" shape="rect" coords="855,7,1021,34" alt="">
+<area href="display__shared_8hch.html" shape="rect" coords="1045,7,1181,34" alt="">
+<area href="display_8hch.html" shape="rect" coords="1205,7,1293,34" alt="">
+</map>
+
+<p>
+<a href="display_8hcc-source.html">Go to the source code of this file.</a><table border="0" cellpadding="0" cellspacing="0">
+<tr><td></td></tr>
+<tr><td colspan="2"><br><h2>Defines</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="display_8hcc.html#a0">PAL_TARGET_CLOCK_RATE</a>&nbsp;&nbsp;&nbsp;25175000</td></tr>
+
+<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="display_8hcc.html#a2">display_main</a> (<a class="el" href="structskindata__t.html">skindata_t</a> *skindata, <a class="el" href="structaudiodata__t.html">audiodata_t</a> *audiodata, <a class="el" href="structevents__t.html">events_t</a> *events, <a class="el" href="structmousedata__t.html">mousedata_t</a> *mousedata)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">This routine handles all drawing of pixels. It never returns! <a href="#a2"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="display_8hcc.html#a3">reload_equalizer</a> (<a class="el" href="structevents__t.html">events_t</a> *events, unsigned 4 *equalizer_levels)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">This function copies the supplied equalizer values to the array used for displaying equalizer data. <a href="#a3"></a><br></td></tr>
+<tr><td colspan="2"><br><h2>Variables</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">chan unsigned&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="display_8hcc.html#a1">maskupdate_notification</a></td></tr>
+
+</table>
+<hr><a name="_details"></a><h2>Detailed Description</h2>
+<h2><a class="anchor" name="generic">
+Graphic Equalizer API</a></h2>
+<h2><a class="anchor" name="project">
+Project information.</a></h2>
+Project Graphic Equalizer<br>
+ <dl compact><dt><b>Author:</b></dt><dd>O.M. Schinagl </dd></dl>
+<dl compact><dt><b>Date:</b></dt><dd>20041011 </dd></dl>
+<dl compact><dt><b>Version:</b></dt><dd>0.1</dd></dl>
+<h2><a class="anchor" name="copyright">
+Copyright</a></h2>
+Copyright ©2004 Koninklijke Philips Electronics N.V. All rights reserved<h2><a class="anchor" name="history">
+Change history</a></h2>
+20041011: O.M. Schinagl<br>
+ Initial version
+<p>
+Definition in file <a class="el" href="display_8hcc-source.html">display.hcc</a>.<hr><h2>Define Documentation</h2>
+<a class="anchor" name="a0" doxytag="display.hcc::PAL_TARGET_CLOCK_RATE"></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top">#define PAL_TARGET_CLOCK_RATE&nbsp;&nbsp;&nbsp;25175000 </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="display_8hcc-source.html#l00022">22</a> of file <a class="el" href="display_8hcc-source.html">display.hcc</a>. </td>
+ </tr>
+</table>
+<hr><h2>Function Documentation</h2>
+<a class="anchor" name="a2" doxytag="display.hcc::display_main"></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top">void display_main </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="structskindata__t.html">skindata_t</a> *&nbsp;</td>
+ <td class="mdname" nowrap> <em>skindata</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td class="md"></td>
+ <td class="md" nowrap><a class="el" href="structaudiodata__t.html">audiodata_t</a> *&nbsp;</td>
+ <td class="mdname" nowrap> <em>audiodata</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td class="md"></td>
+ <td class="md" nowrap><a class="el" href="structevents__t.html">events_t</a> *&nbsp;</td>
+ <td class="mdname" nowrap> <em>events</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td class="md"></td>
+ <td class="md" nowrap><a class="el" href="structmousedata__t.html">mousedata_t</a> *&nbsp;</td>
+ <td class="mdname" nowrap> <em>mousedata</em></td>
+ </tr>
+ <tr>
+ <td class="md"></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"></td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+This routine handles all drawing of pixels. It never returns!
+<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+ <table border="0" cellspacing="2" cellpadding="0">
+ <tr><td valign="top"></td><td valign="top"><em>*skindata</em>&nbsp;</td><td>struct with all skin information. </td></tr>
+ <tr><td valign="top"></td><td valign="top"><em>*audiodata</em>&nbsp;</td><td>struct with (i)fft data to be drawn. </td></tr>
+ <tr><td valign="top"></td><td valign="top"><em>*events</em>&nbsp;</td><td>struct with all events. </td></tr>
+ <tr><td valign="top"></td><td valign="top"><em>*mousedata</em>&nbsp;</td><td>struct with coordinates to current. X en Y.</td></tr>
+ </table>
+</dl>
+<dl compact><dt><b>Returns:</b></dt><dd>Never Returns. </dd></dl>
+<dl compact><dt><b>Return values:</b></dt><dd>
+ <table border="0" cellspacing="2" cellpadding="0">
+ <tr><td valign="top"></td><td valign="top"><em>void</em>&nbsp;</td><td></td></tr>
+ </table>
+</dl>
+
+<p>
+Definition at line <a class="el" href="display_8hcc-source.html#l00065">65</a> of file <a class="el" href="display_8hcc-source.html">display.hcc</a>.
+<p>
+References <a class="el" href="eventhandler__shared_8hch-source.html#l00031">events_t::active_preset</a>, <a class="el" href="smartmedia__shared_8hch-source.html#l00060">ADDRESS_SKIN_START</a>, <a class="el" href="display__shared_8hch-source.html#l00074">AREA_EQUALIZER_MIN</a>, <a class="el" href="display__shared_8hch-source.html#l00052">AREA_SPECTRUM_ANALYZER</a>, <a class="el" href="display__shared_8hch-source.html#l00051">AREA_VOLUME_YAXIS</a>, <a class="el" href="display__shared_8hch-source.html#l00050">AREA_WAVEFORM</a>, <a class="el" href="display__shared_8hch-source.html#l00069">BUTTON_CONCAVE_FULL</a>, <a class="el" href="display__shared_8hch-source.html#l00068">BUTTON_CONCAVE_HALF</a>, <a class="el" href="display__shared_8hch-source.html#l00065">BUTTON_CONVEX_FULL</a>, <a class="el" href="display__shared_8hch-source.html#l00066">BUTTON_CONVEX_HALF</a>, <a class="el" href="display__shared_8hch-source.html#l00054">BUTTON_LOG</a>, <a class="el" href="display__shared_8hch-source.html#l00067">BUTTON_PRECISE</a>, <a class="el" href="display__shared_8hch-source.html#l00058">BUTTON_PRESET_1</a>, <a class="el" href="display__shared_8hch-source.html#l00059">BUTTON_PRESET_2</a>, <a class="el" href="display__shared_8hch-source.html#l00060">BUTTON_PRESET_3</a>, <a class="el" href="display__shared_8hch-source.html#l00061">BUTTON_PRESET_4</a>, <a class="el" href="display__shared_8hch-source.html#l00062">BUTTON_PRESET_5</a>, <a class="el" href="display__shared_8hch-source.html#l00063">BUTTON_PRESET_6</a>, <a class="el" href="audio_8hch-source.html#l00035">audiodata_t::display_log</a>, <a class="el" href="eventhandler__shared_8hch-source.html#l00030">events_t::equalizer_display</a>, <a class="el" href="eventhandler__shared_8hch-source.html#l00035">events_t::equalizer_mode</a>, <a class="el" href="eventhandler__shared_8hch-source.html#l00036">events_t::locked_display</a>, <a class="el" href="eventhandler__shared_8hch-source.html#l00033">events_t::mask</a>, <a class="el" href="display_8hcc-source.html#l00048">maskupdate_notification</a>, <a class="el" href="eventhandler__shared_8hch-source.html#l00034">events_t::mode</a>, <a class="el" href="eventhandler__shared_8hch-source.html#l00042">MODE_GRAPH</a>, <a class="el" href="eventhandler__shared_8hch-source.html#l00041">MODE_HELP</a>, <a class="el" href="mouse__shared_8hch-source.html#l00039">MOUSE_UPDATED</a>, <a class="el" href="display_8hch-source.html#l00027">PIXEL</a>, <a class="el" href="display_8hch-source.html#l00030">PIXEL_SPECTRUM</a>, <a class="el" href="mouse__shared_8hch-source.html#l00030">mousedata_t::status</a>, <a class="el" href="eventhandler__shared_8hch-source.html#l00032">events_t::volume_position</a>, <a class="el" href="mouse__shared_8hch-source.html#l00028">mousedata_t::x</a>, and <a class="el" href="mouse__shared_8hch-source.html#l00028">mousedata_t::y</a>.
+<p>
+Referenced by <a class="el" href="main_8hcc-source.html#l00051">main()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="a3" doxytag="display.hcc::reload_equalizer"></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top">void reload_equalizer </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="structevents__t.html">events_t</a> *&nbsp;</td>
+ <td class="mdname" nowrap> <em>events</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td class="md"></td>
+ <td class="md" nowrap>unsigned 4 *&nbsp;</td>
+ <td class="mdname" nowrap> <em>equalizer_levels</em></td>
+ </tr>
+ <tr>
+ <td class="md"></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"></td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+This function copies the supplied equalizer values to the array used for displaying equalizer data.
+<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+ <table border="0" cellspacing="2" cellpadding="0">
+ <tr><td valign="top"></td><td valign="top"><em>*events</em>&nbsp;</td><td>events struct </td></tr>
+ <tr><td valign="top"></td><td valign="top"><em>*equalizer_levels</em>&nbsp;</td><td>pointer to 128 entries where equalizer is to be copied from.</td></tr>
+ </table>
+</dl>
+<dl compact><dt><b>Returns:</b></dt><dd>void </dd></dl>
+<dl compact><dt><b>Return values:</b></dt><dd>
+ <table border="0" cellspacing="2" cellpadding="0">
+ <tr><td valign="top"></td><td valign="top"><em>void</em>&nbsp;</td><td></td></tr>
+ </table>
+</dl>
+
+<p>
+Definition at line <a class="el" href="display_8hcc-source.html#l00328">328</a> of file <a class="el" href="display_8hcc-source.html">display.hcc</a>.
+<p>
+References <a class="el" href="eventhandler__shared_8hch-source.html#l00030">events_t::equalizer_display</a>, <a class="el" href="events_8hcc-source.html#l00076">equalizer_table_inv</a>, and <a class="el" href="eventhandler__shared_8hch-source.html#l00036">events_t::locked_display</a>.
+<p>
+Referenced by <a class="el" href="eventhandler_8hcc-source.html#l00059">eventhandler_main()</a>. </td>
+ </tr>
+</table>
+<hr><h2>Variable Documentation</h2>
+<a class="anchor" name="a1" doxytag="display.hcc::maskupdate_notification"></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top">chan unsigned <a class="el" href="eventhandler_8hcc.html#a0">maskupdate_notification</a> </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="display_8hcc-source.html#l00048">48</a> of file <a class="el" href="display_8hcc-source.html">display.hcc</a>.
+<p>
+Referenced by <a class="el" href="display_8hcc-source.html#l00065">display_main()</a>, and <a class="el" href="eventhandler_8hcc-source.html#l00059">eventhandler_main()</a>. </td>
+ </tr>
+</table>
+<hr size="1"><address style="align: right;"><small>Generated on Thu Dec 9 14:37:08 2004 for Graphic Equalizer 2 by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.3.9.1 </small></address>
+</body>
+</html>
diff --git a/Graphic_Equalizer_Original_Port/doc/html/display_8hcc__incl.map b/Graphic_Equalizer_Original_Port/doc/html/display_8hcc__incl.map
new file mode 100644
index 0000000..81a6f64
--- /dev/null
+++ b/Graphic_Equalizer_Original_Port/doc/html/display_8hcc__incl.map
@@ -0,0 +1,8 @@
+base referer
+rect $configuration_8hch.html 245,7 370,34
+rect $audio_8hch.html 394,7 474,34
+rect $eventhandler__shared_8hch.html 498,7 671,34
+rect $mouse__shared_8hch.html 695,7 831,34
+rect $smartmedia__shared_8hch.html 855,7 1021,34
+rect $display__shared_8hch.html 1045,7 1181,34
+rect $display_8hch.html 1205,7 1293,34
diff --git a/Graphic_Equalizer_Original_Port/doc/html/display_8hcc__incl.md5 b/Graphic_Equalizer_Original_Port/doc/html/display_8hcc__incl.md5
new file mode 100644
index 0000000..11ba440
--- /dev/null
+++ b/Graphic_Equalizer_Original_Port/doc/html/display_8hcc__incl.md5
@@ -0,0 +1 @@
+5e133a2b43b5f61d89ce22cb97bd0bbb \ No newline at end of file
diff --git a/Graphic_Equalizer_Original_Port/doc/html/display_8hcc__incl.png b/Graphic_Equalizer_Original_Port/doc/html/display_8hcc__incl.png
new file mode 100644
index 0000000..8341c12
--- /dev/null
+++ b/Graphic_Equalizer_Original_Port/doc/html/display_8hcc__incl.png
Binary files differ
diff --git a/Graphic_Equalizer_Original_Port/doc/html/display_8hch-source.html b/Graphic_Equalizer_Original_Port/doc/html/display_8hch-source.html
new file mode 100644
index 0000000..d345da6
--- /dev/null
+++ b/Graphic_Equalizer_Original_Port/doc/html/display_8hch-source.html
@@ -0,0 +1,49 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>Graphic Equalizer 2: C:/Project Marcel &amp; Oliver/Graphic_Equalizer/include/display.hch Source File</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.3.9.1 -->
+<div class="qindex"><a class="qindex" href="main.html">Main&nbsp;Page</a> | <a class="qindex" href="annotated.html">Data&nbsp;Structures</a> | <a class="qindex" href="dirs.html">Directories</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="functions.html">Data&nbsp;Fields</a> | <a class="qindex" href="globals.html">Globals</a></div>
+<div class="nav">
+<a class="el" href="dir_000000.html">C:</a>&nbsp;/&nbsp;<a class="el" href="dir_000001.html">Project Marcel &amp; Oliver</a>&nbsp;/&nbsp;<a class="el" href="dir_000002.html">Graphic_Equalizer</a>&nbsp;/&nbsp;<a class="el" href="dir_000003.html">include</a></div>
+<h1>display.hch</h1><a href="display_8hch.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment">00001
+00019 <span class="preprocessor">#ifndef _DISPLAY_HCH</span>
+<a name="l00020"></a><a class="code" href="display_8hch.html#a0">00020</a> <span class="preprocessor"></span><span class="preprocessor">#define _DISPLAY_HCH 1</span>
+00021 <span class="preprocessor"></span>
+00022
+00023
+00024 <span class="comment">/*</span>
+00025 <span class="comment"> * Set the color for various items that will be drawn on screen.</span>
+00026 <span class="comment"> */</span>
+<a name="l00027"></a><a class="code" href="display_8hch.html#a1">00027</a> <span class="preprocessor">#define PIXEL (pixeldata &lt;- 24)</span>
+<a name="l00028"></a><a class="code" href="display_8hch.html#a2">00028</a> <span class="preprocessor"></span><span class="preprocessor">#define PIXEL_VOLUME (0x2d74b5)</span>
+<a name="l00029"></a><a class="code" href="display_8hch.html#a3">00029</a> <span class="preprocessor"></span><span class="preprocessor">#define PIXEL_EQUALIZER (0xc7541f)</span>
+<a name="l00030"></a><a class="code" href="display_8hch.html#a4">00030</a> <span class="preprocessor"></span><span class="preprocessor">#define PIXEL_SPECTRUM ((((skindata-&gt;area_spectrum_bottom -(SCANY &lt;- 10)) &lt;&lt;1) &lt;- 8) @ 0x00 @ (((skindata-&gt;area_spectrum_bottom -(SCANY &lt;- 10)) &lt;&lt;1) &lt;- 8))</span>
+<a name="l00031"></a><a class="code" href="display_8hch.html#a5">00031</a> <span class="preprocessor"></span><span class="preprocessor">#define PIXEL_WAVEFORM (0x2d74b5)</span>
+00032 <span class="preprocessor"></span>
+00033
+00034
+00035 <span class="comment">/*</span>
+00036 <span class="comment"> * Main display loop. This function never returns! It handles display output.</span>
+00037 <span class="comment"> * It needs to respond to certain events set by the events pointer. Also it</span>
+00038 <span class="comment"> * informs events what the current mask is. To optain the current mask we need</span>
+00039 <span class="comment"> * the X and Y coordinates from our mousedata pointer.</span>
+00040 <span class="comment"> */</span>
+00041 <span class="keywordtype">void</span> <a class="code" href="display_8hcc.html#a2">display_main</a>(<a class="code" href="structskindata__t.html">skindata_t</a> *skindata, <a class="code" href="structaudiodata__t.html">audiodata_t</a> *audiodata, <a class="code" href="structevents__t.html">events_t</a> *events, <a class="code" href="structmousedata__t.html">mousedata_t</a> *mousedata);
+00042
+00043
+00044
+00045 <span class="comment">/*</span>
+00046 <span class="comment"> * reload equalizer bars into the display memory.</span>
+00047 <span class="comment"> */</span>
+00048 <span class="keywordtype">void</span> <a class="code" href="display_8hcc.html#a3">reload_equalizer</a>(<a class="code" href="structevents__t.html">events_t</a> *events, <span class="keywordtype">unsigned</span> 4 *equalizer_levels_ptr);
+00049
+00050 <span class="preprocessor">#else</span>
+00051 <span class="preprocessor"></span><span class="preprocessor">#error "ERROR file display.hch multiple times included"</span>
+00052 <span class="preprocessor"></span><span class="preprocessor">#endif </span><span class="comment">/* --- _DISPLAY_HCH --- */</span>
+</pre></div><hr size="1"><address style="align: right;"><small>Generated on Thu Dec 9 14:37:05 2004 for Graphic Equalizer 2 by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.3.9.1 </small></address>
+</body>
+</html>
diff --git a/Graphic_Equalizer_Original_Port/doc/html/display_8hch.html b/Graphic_Equalizer_Original_Port/doc/html/display_8hch.html
new file mode 100644
index 0000000..6dc74ce
--- /dev/null
+++ b/Graphic_Equalizer_Original_Port/doc/html/display_8hch.html
@@ -0,0 +1,348 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>Graphic Equalizer 2: C:/Project Marcel &amp; Oliver/Graphic_Equalizer/include/display.hch File Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.3.9.1 -->
+<div class="qindex"><a class="qindex" href="main.html">Main&nbsp;Page</a> | <a class="qindex" href="annotated.html">Data&nbsp;Structures</a> | <a class="qindex" href="dirs.html">Directories</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="functions.html">Data&nbsp;Fields</a> | <a class="qindex" href="globals.html">Globals</a></div>
+<div class="nav">
+<a class="el" href="dir_000000.html">C:</a>&nbsp;/&nbsp;<a class="el" href="dir_000001.html">Project Marcel &amp; Oliver</a>&nbsp;/&nbsp;<a class="el" href="dir_000002.html">Graphic_Equalizer</a>&nbsp;/&nbsp;<a class="el" href="dir_000003.html">include</a></div>
+<h1>display.hch File Reference</h1>
+<p>
+This graph shows which files directly or indirectly include this file:<p><center><img src="display_8hch__dep__incl.png" border="0" usemap="#display.hchdep_map" alt="Included by dependency graph"></center>
+<map name="display.hchdep_map">
+<area href="display_8hcc.html" shape="rect" coords="8,7,96,34" alt="">
+<area href="eventhandler_8hcc.html" shape="rect" coords="120,7,242,34" alt="">
+<area href="main_8hcc.html" shape="rect" coords="266,7,341,34" alt="">
+<area href="smartmedia_8hcc.html" shape="rect" coords="365,7,482,34" alt="">
+</map>
+
+<p>
+<a href="display_8hch-source.html">Go to the source code of this file.</a><table border="0" cellpadding="0" cellspacing="0">
+<tr><td></td></tr>
+<tr><td colspan="2"><br><h2>Defines</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="display_8hch.html#a0">_DISPLAY_HCH</a>&nbsp;&nbsp;&nbsp;1</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="display_8hch.html#a1">PIXEL</a>&nbsp;&nbsp;&nbsp;(pixeldata &lt;- 24)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="display_8hch.html#a2">PIXEL_VOLUME</a>&nbsp;&nbsp;&nbsp;(0x2d74b5)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="display_8hch.html#a3">PIXEL_EQUALIZER</a>&nbsp;&nbsp;&nbsp;(0xc7541f)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="display_8hch.html#a4">PIXEL_SPECTRUM</a>&nbsp;&nbsp;&nbsp;((((skindata-&gt;area_spectrum_bottom -(SCANY &lt;- 10)) &lt;&lt;1) &lt;- 8) @ 0x00 @ (((skindata-&gt;area_spectrum_bottom -(SCANY &lt;- 10)) &lt;&lt;1) &lt;- 8))</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="display_8hch.html#a5">PIXEL_WAVEFORM</a>&nbsp;&nbsp;&nbsp;(0x2d74b5)</td></tr>
+
+<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="display_8hch.html#a6">display_main</a> (<a class="el" href="structskindata__t.html">skindata_t</a> *skindata, <a class="el" href="structaudiodata__t.html">audiodata_t</a> *audiodata, <a class="el" href="structevents__t.html">events_t</a> *events, <a class="el" href="structmousedata__t.html">mousedata_t</a> *mousedata)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">This routine handles all drawing of pixels. It never returns! <a href="#a6"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="display_8hch.html#a7">reload_equalizer</a> (<a class="el" href="structevents__t.html">events_t</a> *events, unsigned 4 *equalizer_levels_ptr)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">This function copies the supplied equalizer values to the array used for displaying equalizer data. <a href="#a7"></a><br></td></tr>
+</table>
+<hr><a name="_details"></a><h2>Detailed Description</h2>
+<h2><a class="anchor" name="generic">
+Graphic Equalizer API</a></h2>
+<h2><a class="anchor" name="project">
+Project information.</a></h2>
+Project Graphic Equalizer<br>
+ <dl compact><dt><b>Author:</b></dt><dd></dd></dl>
+<dl compact><dt><b>Date:</b></dt><dd>20041011 </dd></dl>
+<dl compact><dt><b>Version:</b></dt><dd>0.1</dd></dl>
+<h2><a class="anchor" name="copyright">
+Copyright</a></h2>
+Copyright ©2004 Koninklijke Philips Electronics N.V. All rights reserved<h2><a class="anchor" name="history">
+Change history</a></h2>
+20041011: <br>
+ Initial version
+<p>
+Definition in file <a class="el" href="display_8hch-source.html">display.hch</a>.<hr><h2>Define Documentation</h2>
+<a class="anchor" name="a0" doxytag="display.hch::_DISPLAY_HCH"></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top">#define _DISPLAY_HCH&nbsp;&nbsp;&nbsp;1 </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="display_8hch-source.html#l00020">20</a> of file <a class="el" href="display_8hch-source.html">display.hch</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="a1" doxytag="display.hch::PIXEL"></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top">#define PIXEL&nbsp;&nbsp;&nbsp;(pixeldata &lt;- 24) </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="display_8hch-source.html#l00027">27</a> of file <a class="el" href="display_8hch-source.html">display.hch</a>.
+<p>
+Referenced by <a class="el" href="display_8hcc-source.html#l00065">display_main()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="a2" doxytag="display.hch::PIXEL_VOLUME"></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top">#define PIXEL_VOLUME&nbsp;&nbsp;&nbsp;(0x2d74b5) </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="display_8hch-source.html#l00028">28</a> of file <a class="el" href="display_8hch-source.html">display.hch</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="a3" doxytag="display.hch::PIXEL_EQUALIZER"></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top">#define PIXEL_EQUALIZER&nbsp;&nbsp;&nbsp;(0xc7541f) </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="display_8hch-source.html#l00029">29</a> of file <a class="el" href="display_8hch-source.html">display.hch</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="a4" doxytag="display.hch::PIXEL_SPECTRUM"></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top">#define PIXEL_SPECTRUM&nbsp;&nbsp;&nbsp;((((skindata-&gt;area_spectrum_bottom -(SCANY &lt;- 10)) &lt;&lt;1) &lt;- 8) @ 0x00 @ (((skindata-&gt;area_spectrum_bottom -(SCANY &lt;- 10)) &lt;&lt;1) &lt;- 8)) </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="display_8hch-source.html#l00030">30</a> of file <a class="el" href="display_8hch-source.html">display.hch</a>.
+<p>
+Referenced by <a class="el" href="display_8hcc-source.html#l00065">display_main()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="a5" doxytag="display.hch::PIXEL_WAVEFORM"></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top">#define PIXEL_WAVEFORM&nbsp;&nbsp;&nbsp;(0x2d74b5) </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="display_8hch-source.html#l00031">31</a> of file <a class="el" href="display_8hch-source.html">display.hch</a>. </td>
+ </tr>
+</table>
+<hr><h2>Function Documentation</h2>
+<a class="anchor" name="a6" doxytag="display.hch::display_main"></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top">void display_main </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="structskindata__t.html">skindata_t</a> *&nbsp;</td>
+ <td class="mdname" nowrap> <em>skindata</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td class="md"></td>
+ <td class="md" nowrap><a class="el" href="structaudiodata__t.html">audiodata_t</a> *&nbsp;</td>
+ <td class="mdname" nowrap> <em>audiodata</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td class="md"></td>
+ <td class="md" nowrap><a class="el" href="structevents__t.html">events_t</a> *&nbsp;</td>
+ <td class="mdname" nowrap> <em>events</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td class="md"></td>
+ <td class="md" nowrap><a class="el" href="structmousedata__t.html">mousedata_t</a> *&nbsp;</td>
+ <td class="mdname" nowrap> <em>mousedata</em></td>
+ </tr>
+ <tr>
+ <td class="md"></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"></td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+This routine handles all drawing of pixels. It never returns!
+<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+ <table border="0" cellspacing="2" cellpadding="0">
+ <tr><td valign="top"></td><td valign="top"><em>*skindata</em>&nbsp;</td><td>struct with all skin information. </td></tr>
+ <tr><td valign="top"></td><td valign="top"><em>*audiodata</em>&nbsp;</td><td>struct with (i)fft data to be drawn. </td></tr>
+ <tr><td valign="top"></td><td valign="top"><em>*events</em>&nbsp;</td><td>struct with all events. </td></tr>
+ <tr><td valign="top"></td><td valign="top"><em>*mousedata</em>&nbsp;</td><td>struct with coordinates to current. X en Y.</td></tr>
+ </table>
+</dl>
+<dl compact><dt><b>Returns:</b></dt><dd>Never Returns. </dd></dl>
+<dl compact><dt><b>Return values:</b></dt><dd>
+ <table border="0" cellspacing="2" cellpadding="0">
+ <tr><td valign="top"></td><td valign="top"><em>void</em>&nbsp;</td><td></td></tr>
+ </table>
+</dl>
+
+<p>
+Definition at line <a class="el" href="display_8hcc-source.html#l00065">65</a> of file <a class="el" href="display_8hcc-source.html">display.hcc</a>.
+<p>
+References <a class="el" href="eventhandler__shared_8hch-source.html#l00031">events_t::active_preset</a>, <a class="el" href="smartmedia__shared_8hch-source.html#l00060">ADDRESS_SKIN_START</a>, <a class="el" href="display__shared_8hch-source.html#l00074">AREA_EQUALIZER_MIN</a>, <a class="el" href="display__shared_8hch-source.html#l00052">AREA_SPECTRUM_ANALYZER</a>, <a class="el" href="display__shared_8hch-source.html#l00051">AREA_VOLUME_YAXIS</a>, <a class="el" href="display__shared_8hch-source.html#l00050">AREA_WAVEFORM</a>, <a class="el" href="display__shared_8hch-source.html#l00069">BUTTON_CONCAVE_FULL</a>, <a class="el" href="display__shared_8hch-source.html#l00068">BUTTON_CONCAVE_HALF</a>, <a class="el" href="display__shared_8hch-source.html#l00065">BUTTON_CONVEX_FULL</a>, <a class="el" href="display__shared_8hch-source.html#l00066">BUTTON_CONVEX_HALF</a>, <a class="el" href="display__shared_8hch-source.html#l00054">BUTTON_LOG</a>, <a class="el" href="display__shared_8hch-source.html#l00067">BUTTON_PRECISE</a>, <a class="el" href="display__shared_8hch-source.html#l00058">BUTTON_PRESET_1</a>, <a class="el" href="display__shared_8hch-source.html#l00059">BUTTON_PRESET_2</a>, <a class="el" href="display__shared_8hch-source.html#l00060">BUTTON_PRESET_3</a>, <a class="el" href="display__shared_8hch-source.html#l00061">BUTTON_PRESET_4</a>, <a class="el" href="display__shared_8hch-source.html#l00062">BUTTON_PRESET_5</a>, <a class="el" href="display__shared_8hch-source.html#l00063">BUTTON_PRESET_6</a>, <a class="el" href="audio_8hch-source.html#l00035">audiodata_t::display_log</a>, <a class="el" href="eventhandler__shared_8hch-source.html#l00030">events_t::equalizer_display</a>, <a class="el" href="eventhandler__shared_8hch-source.html#l00035">events_t::equalizer_mode</a>, <a class="el" href="eventhandler__shared_8hch-source.html#l00036">events_t::locked_display</a>, <a class="el" href="eventhandler__shared_8hch-source.html#l00033">events_t::mask</a>, <a class="el" href="display_8hcc-source.html#l00048">maskupdate_notification</a>, <a class="el" href="eventhandler__shared_8hch-source.html#l00034">events_t::mode</a>, <a class="el" href="eventhandler__shared_8hch-source.html#l00042">MODE_GRAPH</a>, <a class="el" href="eventhandler__shared_8hch-source.html#l00041">MODE_HELP</a>, <a class="el" href="mouse__shared_8hch-source.html#l00039">MOUSE_UPDATED</a>, <a class="el" href="display_8hch-source.html#l00027">PIXEL</a>, <a class="el" href="display_8hch-source.html#l00030">PIXEL_SPECTRUM</a>, <a class="el" href="mouse__shared_8hch-source.html#l00030">mousedata_t::status</a>, <a class="el" href="eventhandler__shared_8hch-source.html#l00032">events_t::volume_position</a>, <a class="el" href="mouse__shared_8hch-source.html#l00028">mousedata_t::x</a>, and <a class="el" href="mouse__shared_8hch-source.html#l00028">mousedata_t::y</a>.
+<p>
+Referenced by <a class="el" href="main_8hcc-source.html#l00051">main()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="a7" doxytag="display.hch::reload_equalizer"></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top">void reload_equalizer </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="structevents__t.html">events_t</a> *&nbsp;</td>
+ <td class="mdname" nowrap> <em>events</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td class="md"></td>
+ <td class="md" nowrap>unsigned 4 *&nbsp;</td>
+ <td class="mdname" nowrap> <em>equalizer_levels</em></td>
+ </tr>
+ <tr>
+ <td class="md"></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"></td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+This function copies the supplied equalizer values to the array used for displaying equalizer data.
+<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+ <table border="0" cellspacing="2" cellpadding="0">
+ <tr><td valign="top"></td><td valign="top"><em>*events</em>&nbsp;</td><td>events struct </td></tr>
+ <tr><td valign="top"></td><td valign="top"><em>*equalizer_levels</em>&nbsp;</td><td>pointer to 128 entries where equalizer is to be copied from.</td></tr>
+ </table>
+</dl>
+<dl compact><dt><b>Returns:</b></dt><dd>void </dd></dl>
+<dl compact><dt><b>Return values:</b></dt><dd>
+ <table border="0" cellspacing="2" cellpadding="0">
+ <tr><td valign="top"></td><td valign="top"><em>void</em>&nbsp;</td><td></td></tr>
+ </table>
+</dl>
+
+<p>
+Definition at line <a class="el" href="display_8hcc-source.html#l00328">328</a> of file <a class="el" href="display_8hcc-source.html">display.hcc</a>.
+<p>
+References <a class="el" href="eventhandler__shared_8hch-source.html#l00030">events_t::equalizer_display</a>, <a class="el" href="events_8hcc-source.html#l00076">equalizer_table_inv</a>, and <a class="el" href="eventhandler__shared_8hch-source.html#l00036">events_t::locked_display</a>.
+<p>
+Referenced by <a class="el" href="eventhandler_8hcc-source.html#l00059">eventhandler_main()</a>. </td>
+ </tr>
+</table>
+<hr size="1"><address style="align: right;"><small>Generated on Thu Dec 9 14:37:07 2004 for Graphic Equalizer 2 by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.3.9.1 </small></address>
+</body>
+</html>
diff --git a/Graphic_Equalizer_Original_Port/doc/html/display_8hch__dep__incl.map b/Graphic_Equalizer_Original_Port/doc/html/display_8hch__dep__incl.map
new file mode 100644
index 0000000..30f5f5c
--- /dev/null
+++ b/Graphic_Equalizer_Original_Port/doc/html/display_8hch__dep__incl.map
@@ -0,0 +1,5 @@
+base referer
+rect $display_8hcc.html 8,7 96,34
+rect $eventhandler_8hcc.html 120,7 242,34
+rect $main_8hcc.html 266,7 341,34
+rect $smartmedia_8hcc.html 365,7 482,34
diff --git a/Graphic_Equalizer_Original_Port/doc/html/display_8hch__dep__incl.md5 b/Graphic_Equalizer_Original_Port/doc/html/display_8hch__dep__incl.md5
new file mode 100644
index 0000000..4d52805
--- /dev/null
+++ b/Graphic_Equalizer_Original_Port/doc/html/display_8hch__dep__incl.md5
@@ -0,0 +1 @@
+fbc7c2d77330776f0959b271562e7250 \ No newline at end of file
diff --git a/Graphic_Equalizer_Original_Port/doc/html/display_8hch__dep__incl.png b/Graphic_Equalizer_Original_Port/doc/html/display_8hch__dep__incl.png
new file mode 100644
index 0000000..f842760
--- /dev/null
+++ b/Graphic_Equalizer_Original_Port/doc/html/display_8hch__dep__incl.png
Binary files differ
diff --git a/Graphic_Equalizer_Original_Port/doc/html/display__shared_8hch-source.html b/Graphic_Equalizer_Original_Port/doc/html/display__shared_8hch-source.html
new file mode 100644
index 0000000..970054b
--- /dev/null
+++ b/Graphic_Equalizer_Original_Port/doc/html/display__shared_8hch-source.html
@@ -0,0 +1,62 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>Graphic Equalizer 2: C:/Project Marcel &amp; Oliver/Graphic_Equalizer/include/display_shared.hch Source File</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.3.9.1 -->
+<div class="qindex"><a class="qindex" href="main.html">Main&nbsp;Page</a> | <a class="qindex" href="annotated.html">Data&nbsp;Structures</a> | <a class="qindex" href="dirs.html">Directories</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="functions.html">Data&nbsp;Fields</a> | <a class="qindex" href="globals.html">Globals</a></div>
+<div class="nav">
+<a class="el" href="dir_000000.html">C:</a>&nbsp;/&nbsp;<a class="el" href="dir_000001.html">Project Marcel &amp; Oliver</a>&nbsp;/&nbsp;<a class="el" href="dir_000002.html">Graphic_Equalizer</a>&nbsp;/&nbsp;<a class="el" href="dir_000003.html">include</a></div>
+<h1>display_shared.hch</h1><a href="display__shared_8hch.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment">00001
+00020 <span class="preprocessor">#ifndef _DISPLAY_SHARED_HCH</span>
+<a name="l00021"></a><a class="code" href="display__shared_8hch.html#a0">00021</a> <span class="preprocessor"></span><span class="preprocessor">#define _DISPLAY_SHARED_HCH 1</span>
+00022 <span class="preprocessor"></span>
+00023
+00024
+<a name="l00029"></a><a class="code" href="structskindata__t.html">00029</a> <span class="keyword">struct </span><a class="code" href="structskindata__t.html">skindata_t</a> {
+<a name="l00034"></a><a class="code" href="structskindata__t_1_1skin__info__t.html">00034</a> <span class="keyword">struct </span><a class="code" href="structskindata__t_1_1skin__info__t.html">skin_info_t</a> {
+<a name="l00035"></a><a class="code" href="structskindata__t_1_1skin__info__t.html#o0">00035</a> <span class="keywordtype">unsigned</span> 10 area_bottom;
+<a name="l00036"></a><a class="code" href="structskindata__t_1_1skin__info__t.html#o1">00036</a> <span class="keywordtype">unsigned</span> 10 area_top;
+<a name="l00037"></a><a class="code" href="structskindata__t_1_1skin__info__t.html#o2">00037</a> <span class="keywordtype">unsigned</span> 10 area_left;
+<a name="l00038"></a><a class="code" href="structskindata__t_1_1skin__info__t.html#o3">00038</a> <span class="keywordtype">unsigned</span> 10 area_right;
+<a name="l00039"></a><a class="code" href="structskindata__t_1_1skin__info__t.html#o4">00039</a> <span class="keywordtype">unsigned</span> 24 color_primary;
+<a name="l00040"></a><a class="code" href="structskindata__t_1_1skin__info__t.html#o5">00040</a> <span class="keywordtype">unsigned</span> 24 color_secondary;
+00041 };
+<a name="l00042"></a><a class="code" href="structskindata__t.html#o0">00042</a> <span class="keyword">struct </span><a class="code" href="structskindata__t_1_1skin__info__t.html">skin_info_t</a> waveform;
+<a name="l00043"></a><a class="code" href="structskindata__t.html#o1">00043</a> <span class="keyword">struct </span><a class="code" href="structskindata__t_1_1skin__info__t.html">skin_info_t</a> spectrum;
+<a name="l00044"></a><a class="code" href="structskindata__t.html#o2">00044</a> <span class="keyword">struct </span><a class="code" href="structskindata__t_1_1skin__info__t.html">skin_info_t</a> volume;
+<a name="l00045"></a><a class="code" href="structskindata__t.html#o3">00045</a> <span class="keyword">struct </span><a class="code" href="structskindata__t_1_1skin__info__t.html">skin_info_t</a> equalizer;
+00046 };
+00047
+00048
+00049
+<a name="l00050"></a><a class="code" href="display__shared_8hch.html#a1">00050</a> <span class="preprocessor">#define AREA_WAVEFORM 0x01 </span>
+<a name="l00051"></a><a class="code" href="display__shared_8hch.html#a2">00051</a> <span class="preprocessor">#define AREA_VOLUME_YAXIS 0x02 </span>
+<a name="l00052"></a><a class="code" href="display__shared_8hch.html#a3">00052</a> <span class="preprocessor">#define AREA_SPECTRUM_ANALYZER 0x03 </span>
+<a name="l00054"></a><a class="code" href="display__shared_8hch.html#a4">00054</a> <span class="preprocessor">#define BUTTON_LOG 0x04 </span>
+<a name="l00055"></a><a class="code" href="display__shared_8hch.html#a5">00055</a> <span class="preprocessor">#define BUTTON_DEMO 0x05 </span>
+<a name="l00056"></a><a class="code" href="display__shared_8hch.html#a6">00056</a> <span class="preprocessor">#define BUTTON_RESET 0x06 </span>
+<a name="l00058"></a><a class="code" href="display__shared_8hch.html#a7">00058</a> <span class="preprocessor">#define BUTTON_PRESET_1 0x07 </span>
+<a name="l00059"></a><a class="code" href="display__shared_8hch.html#a8">00059</a> <span class="preprocessor">#define BUTTON_PRESET_2 0x08 </span>
+<a name="l00060"></a><a class="code" href="display__shared_8hch.html#a9">00060</a> <span class="preprocessor">#define BUTTON_PRESET_3 0x09 </span>
+<a name="l00061"></a><a class="code" href="display__shared_8hch.html#a10">00061</a> <span class="preprocessor">#define BUTTON_PRESET_4 0x0a </span>
+<a name="l00062"></a><a class="code" href="display__shared_8hch.html#a11">00062</a> <span class="preprocessor">#define BUTTON_PRESET_5 0x0b </span>
+<a name="l00063"></a><a class="code" href="display__shared_8hch.html#a12">00063</a> <span class="preprocessor">#define BUTTON_PRESET_6 0x0c </span>
+<a name="l00065"></a><a class="code" href="display__shared_8hch.html#a13">00065</a> <span class="preprocessor">#define BUTTON_CONVEX_FULL 0x0d </span>
+<a name="l00066"></a><a class="code" href="display__shared_8hch.html#a14">00066</a> <span class="preprocessor">#define BUTTON_CONVEX_HALF 0x0e </span>
+<a name="l00067"></a><a class="code" href="display__shared_8hch.html#a15">00067</a> <span class="preprocessor">#define BUTTON_PRECISE 0x0f </span>
+<a name="l00068"></a><a class="code" href="display__shared_8hch.html#a16">00068</a> <span class="preprocessor">#define BUTTON_CONCAVE_HALF 0x10 </span>
+<a name="l00069"></a><a class="code" href="display__shared_8hch.html#a17">00069</a> <span class="preprocessor">#define BUTTON_CONCAVE_FULL 0x11 </span>
+<a name="l00071"></a><a class="code" href="display__shared_8hch.html#a18">00071</a> <span class="preprocessor">#define BUTTON_HELP 0x12 </span>
+<a name="l00072"></a><a class="code" href="display__shared_8hch.html#a19">00072</a> <span class="preprocessor">#define BUTTON_MODE 0x13 </span>
+<a name="l00074"></a><a class="code" href="display__shared_8hch.html#a20">00074</a> <span class="preprocessor">#define AREA_EQUALIZER_MIN 0x80 </span>
+<a name="l00075"></a><a class="code" href="display__shared_8hch.html#a21">00075</a> <span class="preprocessor">#define AREA_EQUALIZER_MAX 0xff </span>
+00077 <span class="preprocessor">#else</span>
+00078 <span class="preprocessor"></span><span class="preprocessor">#error "ERROR file display_shared.hch multiple times included"</span>
+00079 <span class="preprocessor"></span><span class="preprocessor">#endif </span><span class="comment">/* --- _DISPLAY_SHARED_HCH --- */</span>
+00080
+</pre></div><hr size="1"><address style="align: right;"><small>Generated on Thu Dec 9 14:37:06 2004 for Graphic Equalizer 2 by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.3.9.1 </small></address>
+</body>
+</html>
diff --git a/Graphic_Equalizer_Original_Port/doc/html/display__shared_8hch.html b/Graphic_Equalizer_Original_Port/doc/html/display__shared_8hch.html
new file mode 100644
index 0000000..7d51724
--- /dev/null
+++ b/Graphic_Equalizer_Original_Port/doc/html/display__shared_8hch.html
@@ -0,0 +1,691 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>Graphic Equalizer 2: C:/Project Marcel &amp; Oliver/Graphic_Equalizer/include/display_shared.hch File Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.3.9.1 -->
+<div class="qindex"><a class="qindex" href="main.html">Main&nbsp;Page</a> | <a class="qindex" href="annotated.html">Data&nbsp;Structures</a> | <a class="qindex" href="dirs.html">Directories</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="functions.html">Data&nbsp;Fields</a> | <a class="qindex" href="globals.html">Globals</a></div>
+<div class="nav">
+<a class="el" href="dir_000000.html">C:</a>&nbsp;/&nbsp;<a class="el" href="dir_000001.html">Project Marcel &amp; Oliver</a>&nbsp;/&nbsp;<a class="el" href="dir_000002.html">Graphic_Equalizer</a>&nbsp;/&nbsp;<a class="el" href="dir_000003.html">include</a></div>
+<h1>display_shared.hch File Reference</h1>Datastructures and defines for usage when interacting with the display library. <a href="#_details">More...</a>
+<p>
+
+<p>
+This graph shows which files directly or indirectly include this file:<p><center><img src="display__shared_8hch__dep__incl.png" border="0" usemap="#display_shared.hchdep_map" alt="Included by dependency graph"></center>
+<map name="display_shared.hchdep_map">
+<area href="display_8hcc.html" shape="rect" coords="8,7,96,34" alt="">
+<area href="eventhandler_8hcc.html" shape="rect" coords="120,7,242,34" alt="">
+<area href="main_8hcc.html" shape="rect" coords="266,7,341,34" alt="">
+<area href="smartmedia_8hcc.html" shape="rect" coords="365,7,482,34" alt="">
+</map>
+
+<p>
+<a href="display__shared_8hch-source.html">Go to the source code of this file.</a><table border="0" cellpadding="0" cellspacing="0">
+<tr><td></td></tr>
+<tr><td colspan="2"><br><h2>Data Structures</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structskindata__t.html">skindata_t</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">This struct contains all area- dimensions and color information for the skin. <a href="structskindata__t.html#_details">More...</a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structskindata__t_1_1skin__info__t.html">skindata_t::skin_info_t</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Structure containing the four boundry limits of an area and maximal two colors per area. <a href="structskindata__t_1_1skin__info__t.html#_details">More...</a><br></td></tr>
+<tr><td colspan="2"><br><h2>Defines</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="display__shared_8hch.html#a0">_DISPLAY_SHARED_HCH</a>&nbsp;&nbsp;&nbsp;1</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="display__shared_8hch.html#a1">AREA_WAVEFORM</a>&nbsp;&nbsp;&nbsp;0x01</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="display__shared_8hch.html#a2">AREA_VOLUME_YAXIS</a>&nbsp;&nbsp;&nbsp;0x02</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="display__shared_8hch.html#a3">AREA_SPECTRUM_ANALYZER</a>&nbsp;&nbsp;&nbsp;0x03</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="display__shared_8hch.html#a4">BUTTON_LOG</a>&nbsp;&nbsp;&nbsp;0x04</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="display__shared_8hch.html#a5">BUTTON_DEMO</a>&nbsp;&nbsp;&nbsp;0x05</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="display__shared_8hch.html#a6">BUTTON_RESET</a>&nbsp;&nbsp;&nbsp;0x06</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="display__shared_8hch.html#a7">BUTTON_PRESET_1</a>&nbsp;&nbsp;&nbsp;0x07</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="display__shared_8hch.html#a8">BUTTON_PRESET_2</a>&nbsp;&nbsp;&nbsp;0x08</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="display__shared_8hch.html#a9">BUTTON_PRESET_3</a>&nbsp;&nbsp;&nbsp;0x09</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="display__shared_8hch.html#a10">BUTTON_PRESET_4</a>&nbsp;&nbsp;&nbsp;0x0a</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="display__shared_8hch.html#a11">BUTTON_PRESET_5</a>&nbsp;&nbsp;&nbsp;0x0b</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="display__shared_8hch.html#a12">BUTTON_PRESET_6</a>&nbsp;&nbsp;&nbsp;0x0c</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="display__shared_8hch.html#a13">BUTTON_CONVEX_FULL</a>&nbsp;&nbsp;&nbsp;0x0d</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="display__shared_8hch.html#a14">BUTTON_CONVEX_HALF</a>&nbsp;&nbsp;&nbsp;0x0e</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="display__shared_8hch.html#a15">BUTTON_PRECISE</a>&nbsp;&nbsp;&nbsp;0x0f</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="display__shared_8hch.html#a16">BUTTON_CONCAVE_HALF</a>&nbsp;&nbsp;&nbsp;0x10</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="display__shared_8hch.html#a17">BUTTON_CONCAVE_FULL</a>&nbsp;&nbsp;&nbsp;0x11</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="display__shared_8hch.html#a18">BUTTON_HELP</a>&nbsp;&nbsp;&nbsp;0x12</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="display__shared_8hch.html#a19">BUTTON_MODE</a>&nbsp;&nbsp;&nbsp;0x13</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="display__shared_8hch.html#a20">AREA_EQUALIZER_MIN</a>&nbsp;&nbsp;&nbsp;0x80</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="display__shared_8hch.html#a21">AREA_EQUALIZER_MAX</a>&nbsp;&nbsp;&nbsp;0xff</td></tr>
+
+</table>
+<hr><a name="_details"></a><h2>Detailed Description</h2>
+Datastructures and defines for usage when interacting with the display library.
+<p>
+<h2><a class="anchor" name="project">
+Project information.</a></h2>
+Graphic Equalizer 2<br>
+ <dl compact><dt><b>Author:</b></dt><dd></dd></dl>
+<dl compact><dt><b>Date:</b></dt><dd>20041011 </dd></dl>
+<dl compact><dt><b>Version:</b></dt><dd>0.1</dd></dl>
+<h2><a class="anchor" name="copyright">
+Copyright</a></h2>
+Copyright ©2004 Koninklijke Philips Electronics N.V. All rights reserved<h2><a class="anchor" name="history">
+Change history</a></h2>
+20041011: <br>
+ Initial version
+<p>
+Definition in file <a class="el" href="display__shared_8hch-source.html">display_shared.hch</a>.<hr><h2>Define Documentation</h2>
+<a class="anchor" name="a0" doxytag="display_shared.hch::_DISPLAY_SHARED_HCH"></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top">#define _DISPLAY_SHARED_HCH&nbsp;&nbsp;&nbsp;1 </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="display__shared_8hch-source.html#l00021">21</a> of file <a class="el" href="display__shared_8hch-source.html">display_shared.hch</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="a1" doxytag="display_shared.hch::AREA_WAVEFORM"></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top">#define AREA_WAVEFORM&nbsp;&nbsp;&nbsp;0x01 </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Waveform area.
+<p>
+Definition at line <a class="el" href="display__shared_8hch-source.html#l00050">50</a> of file <a class="el" href="display__shared_8hch-source.html">display_shared.hch</a>.
+<p>
+Referenced by <a class="el" href="display_8hcc-source.html#l00065">display_main()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="a2" doxytag="display_shared.hch::AREA_VOLUME_YAXIS"></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top">#define AREA_VOLUME_YAXIS&nbsp;&nbsp;&nbsp;0x02 </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Volume control on the Y plane.
+<p>
+Definition at line <a class="el" href="display__shared_8hch-source.html#l00051">51</a> of file <a class="el" href="display__shared_8hch-source.html">display_shared.hch</a>.
+<p>
+Referenced by <a class="el" href="display_8hcc-source.html#l00065">display_main()</a>, and <a class="el" href="eventhandler_8hcc-source.html#l00059">eventhandler_main()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="a3" doxytag="display_shared.hch::AREA_SPECTRUM_ANALYZER"></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top">#define AREA_SPECTRUM_ANALYZER&nbsp;&nbsp;&nbsp;0x03 </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Spectrum Analyzer area.
+<p>
+Definition at line <a class="el" href="display__shared_8hch-source.html#l00052">52</a> of file <a class="el" href="display__shared_8hch-source.html">display_shared.hch</a>.
+<p>
+Referenced by <a class="el" href="display_8hcc-source.html#l00065">display_main()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="a4" doxytag="display_shared.hch::BUTTON_LOG"></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top">#define BUTTON_LOG&nbsp;&nbsp;&nbsp;0x04 </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Logarithmic display button.
+<p>
+Definition at line <a class="el" href="display__shared_8hch-source.html#l00054">54</a> of file <a class="el" href="display__shared_8hch-source.html">display_shared.hch</a>.
+<p>
+Referenced by <a class="el" href="display_8hcc-source.html#l00065">display_main()</a>, and <a class="el" href="eventhandler_8hcc-source.html#l00059">eventhandler_main()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="a5" doxytag="display_shared.hch::BUTTON_DEMO"></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top">#define BUTTON_DEMO&nbsp;&nbsp;&nbsp;0x05 </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Demo preset button.
+<p>
+Definition at line <a class="el" href="display__shared_8hch-source.html#l00055">55</a> of file <a class="el" href="display__shared_8hch-source.html">display_shared.hch</a>.
+<p>
+Referenced by <a class="el" href="eventhandler_8hcc-source.html#l00059">eventhandler_main()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="a6" doxytag="display_shared.hch::BUTTON_RESET"></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top">#define BUTTON_RESET&nbsp;&nbsp;&nbsp;0x06 </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Reset presets button.
+<p>
+Definition at line <a class="el" href="display__shared_8hch-source.html#l00056">56</a> of file <a class="el" href="display__shared_8hch-source.html">display_shared.hch</a>.
+<p>
+Referenced by <a class="el" href="eventhandler_8hcc-source.html#l00059">eventhandler_main()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="a7" doxytag="display_shared.hch::BUTTON_PRESET_1"></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top">#define BUTTON_PRESET_1&nbsp;&nbsp;&nbsp;0x07 </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Button for switching to preset 1
+<p>
+Definition at line <a class="el" href="display__shared_8hch-source.html#l00058">58</a> of file <a class="el" href="display__shared_8hch-source.html">display_shared.hch</a>.
+<p>
+Referenced by <a class="el" href="display_8hcc-source.html#l00065">display_main()</a>, and <a class="el" href="eventhandler_8hcc-source.html#l00059">eventhandler_main()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="a8" doxytag="display_shared.hch::BUTTON_PRESET_2"></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top">#define BUTTON_PRESET_2&nbsp;&nbsp;&nbsp;0x08 </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Button for switching to preset 2
+<p>
+Definition at line <a class="el" href="display__shared_8hch-source.html#l00059">59</a> of file <a class="el" href="display__shared_8hch-source.html">display_shared.hch</a>.
+<p>
+Referenced by <a class="el" href="display_8hcc-source.html#l00065">display_main()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="a9" doxytag="display_shared.hch::BUTTON_PRESET_3"></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top">#define BUTTON_PRESET_3&nbsp;&nbsp;&nbsp;0x09 </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Button for switching to preset 3
+<p>
+Definition at line <a class="el" href="display__shared_8hch-source.html#l00060">60</a> of file <a class="el" href="display__shared_8hch-source.html">display_shared.hch</a>.
+<p>
+Referenced by <a class="el" href="display_8hcc-source.html#l00065">display_main()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="a10" doxytag="display_shared.hch::BUTTON_PRESET_4"></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top">#define BUTTON_PRESET_4&nbsp;&nbsp;&nbsp;0x0a </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Button for switching to preset 4
+<p>
+Definition at line <a class="el" href="display__shared_8hch-source.html#l00061">61</a> of file <a class="el" href="display__shared_8hch-source.html">display_shared.hch</a>.
+<p>
+Referenced by <a class="el" href="display_8hcc-source.html#l00065">display_main()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="a11" doxytag="display_shared.hch::BUTTON_PRESET_5"></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top">#define BUTTON_PRESET_5&nbsp;&nbsp;&nbsp;0x0b </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Button for switching to preset 5
+<p>
+Definition at line <a class="el" href="display__shared_8hch-source.html#l00062">62</a> of file <a class="el" href="display__shared_8hch-source.html">display_shared.hch</a>.
+<p>
+Referenced by <a class="el" href="display_8hcc-source.html#l00065">display_main()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="a12" doxytag="display_shared.hch::BUTTON_PRESET_6"></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top">#define BUTTON_PRESET_6&nbsp;&nbsp;&nbsp;0x0c </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Button for switching to preset 6
+<p>
+Definition at line <a class="el" href="display__shared_8hch-source.html#l00063">63</a> of file <a class="el" href="display__shared_8hch-source.html">display_shared.hch</a>.
+<p>
+Referenced by <a class="el" href="display_8hcc-source.html#l00065">display_main()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="a13" doxytag="display_shared.hch::BUTTON_CONVEX_FULL"></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top">#define BUTTON_CONVEX_FULL&nbsp;&nbsp;&nbsp;0x0d </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+/ - \ 'Convex' mode Button
+<p>
+Definition at line <a class="el" href="display__shared_8hch-source.html#l00065">65</a> of file <a class="el" href="display__shared_8hch-source.html">display_shared.hch</a>.
+<p>
+Referenced by <a class="el" href="display_8hcc-source.html#l00065">display_main()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="a14" doxytag="display_shared.hch::BUTTON_CONVEX_HALF"></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top">#define BUTTON_CONVEX_HALF&nbsp;&nbsp;&nbsp;0x0e </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+/\ 'Convex' mode Button
+<p>
+Definition at line <a class="el" href="display__shared_8hch-source.html#l00066">66</a> of file <a class="el" href="display__shared_8hch-source.html">display_shared.hch</a>.
+<p>
+Referenced by <a class="el" href="display_8hcc-source.html#l00065">display_main()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="a15" doxytag="display_shared.hch::BUTTON_PRECISE"></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top">#define BUTTON_PRECISE&nbsp;&nbsp;&nbsp;0x0f </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+| 'Precise' selection Button
+<p>
+Definition at line <a class="el" href="display__shared_8hch-source.html#l00067">67</a> of file <a class="el" href="display__shared_8hch-source.html">display_shared.hch</a>.
+<p>
+Referenced by <a class="el" href="display_8hcc-source.html#l00065">display_main()</a>, and <a class="el" href="eventhandler_8hcc-source.html#l00059">eventhandler_main()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="a16" doxytag="display_shared.hch::BUTTON_CONCAVE_HALF"></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top">#define BUTTON_CONCAVE_HALF&nbsp;&nbsp;&nbsp;0x10 </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+\/ 'Concave' mode Button
+<p>
+Definition at line <a class="el" href="display__shared_8hch-source.html#l00068">68</a> of file <a class="el" href="display__shared_8hch-source.html">display_shared.hch</a>.
+<p>
+Referenced by <a class="el" href="display_8hcc-source.html#l00065">display_main()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="a17" doxytag="display_shared.hch::BUTTON_CONCAVE_FULL"></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top">#define BUTTON_CONCAVE_FULL&nbsp;&nbsp;&nbsp;0x11 </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+\ _ / 'Concave' mode Button
+<p>
+Definition at line <a class="el" href="display__shared_8hch-source.html#l00069">69</a> of file <a class="el" href="display__shared_8hch-source.html">display_shared.hch</a>.
+<p>
+Referenced by <a class="el" href="display_8hcc-source.html#l00065">display_main()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="a18" doxytag="display_shared.hch::BUTTON_HELP"></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top">#define BUTTON_HELP&nbsp;&nbsp;&nbsp;0x12 </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Button to display help screen.
+<p>
+Definition at line <a class="el" href="display__shared_8hch-source.html#l00071">71</a> of file <a class="el" href="display__shared_8hch-source.html">display_shared.hch</a>.
+<p>
+Referenced by <a class="el" href="eventhandler_8hcc-source.html#l00059">eventhandler_main()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="a19" doxytag="display_shared.hch::BUTTON_MODE"></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top">#define BUTTON_MODE&nbsp;&nbsp;&nbsp;0x13 </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Button to change operation mode.
+<p>
+Definition at line <a class="el" href="display__shared_8hch-source.html#l00072">72</a> of file <a class="el" href="display__shared_8hch-source.html">display_shared.hch</a>.
+<p>
+Referenced by <a class="el" href="eventhandler_8hcc-source.html#l00059">eventhandler_main()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="a20" doxytag="display_shared.hch::AREA_EQUALIZER_MIN"></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top">#define AREA_EQUALIZER_MIN&nbsp;&nbsp;&nbsp;0x80 </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+First bar of the Equalizer Area.
+<p>
+Definition at line <a class="el" href="display__shared_8hch-source.html#l00074">74</a> of file <a class="el" href="display__shared_8hch-source.html">display_shared.hch</a>.
+<p>
+Referenced by <a class="el" href="display_8hcc-source.html#l00065">display_main()</a>, and <a class="el" href="eventhandler_8hcc-source.html#l00059">eventhandler_main()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="a21" doxytag="display_shared.hch::AREA_EQUALIZER_MAX"></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top">#define AREA_EQUALIZER_MAX&nbsp;&nbsp;&nbsp;0xff </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Last bar of the Equalizer Area.
+<p>
+Definition at line <a class="el" href="display__shared_8hch-source.html#l00075">75</a> of file <a class="el" href="display__shared_8hch-source.html">display_shared.hch</a>.
+<p>
+Referenced by <a class="el" href="eventhandler_8hcc-source.html#l00059">eventhandler_main()</a>. </td>
+ </tr>
+</table>
+<hr size="1"><address style="align: right;"><small>Generated on Thu Dec 9 14:37:07 2004 for Graphic Equalizer 2 by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.3.9.1 </small></address>
+</body>
+</html>
diff --git a/Graphic_Equalizer_Original_Port/doc/html/display__shared_8hch__dep__incl.map b/Graphic_Equalizer_Original_Port/doc/html/display__shared_8hch__dep__incl.map
new file mode 100644
index 0000000..30f5f5c
--- /dev/null
+++ b/Graphic_Equalizer_Original_Port/doc/html/display__shared_8hch__dep__incl.map
@@ -0,0 +1,5 @@
+base referer
+rect $display_8hcc.html 8,7 96,34
+rect $eventhandler_8hcc.html 120,7 242,34
+rect $main_8hcc.html 266,7 341,34
+rect $smartmedia_8hcc.html 365,7 482,34
diff --git a/Graphic_Equalizer_Original_Port/doc/html/display__shared_8hch__dep__incl.md5 b/Graphic_Equalizer_Original_Port/doc/html/display__shared_8hch__dep__incl.md5
new file mode 100644
index 0000000..2c831b5
--- /dev/null
+++ b/Graphic_Equalizer_Original_Port/doc/html/display__shared_8hch__dep__incl.md5
@@ -0,0 +1 @@
+6ad6e26d3432e59b7a161de855d0e8bc \ No newline at end of file
diff --git a/Graphic_Equalizer_Original_Port/doc/html/display__shared_8hch__dep__incl.png b/Graphic_Equalizer_Original_Port/doc/html/display__shared_8hch__dep__incl.png
new file mode 100644
index 0000000..7484dd7
--- /dev/null
+++ b/Graphic_Equalizer_Original_Port/doc/html/display__shared_8hch__dep__incl.png
Binary files differ
diff --git a/Graphic_Equalizer_Original_Port/doc/html/doxygen.css b/Graphic_Equalizer_Original_Port/doc/html/doxygen.css
new file mode 100644
index 0000000..1d4d631
--- /dev/null
+++ b/Graphic_Equalizer_Original_Port/doc/html/doxygen.css
@@ -0,0 +1,271 @@
+BODY,H1,H2,H3,H4,H5,H6,P,CENTER,TD,TH,UL,DL,DIV {
+ font-family: Geneva, Arial, Helvetica, sans-serif;
+}
+H1 {
+ text-align: center;
+}
+CAPTION { font-weight: bold }
+DIV.qindex {
+ width: 100%;
+ background-color: #eeeeff;
+ border: 1px solid #b0b0b0;
+ text-align: center;
+ margin: 2px;
+ padding: 2px;
+ line-height: 140%;
+}
+DIV.nav {
+ width: 100%;
+ background-color: #eeeeff;
+ border: 1px solid #b0b0b0;
+ text-align: center;
+ margin: 2px;
+ padding: 2px;
+ line-height: 140%;
+}
+A.qindex {
+ text-decoration: none;
+ font-weight: bold;
+ color: #1A419D;
+}
+A.qindex:visited {
+ text-decoration: none;
+ font-weight: bold;
+ color: #1A419D
+}
+A.qindex:hover {
+ text-decoration: none;
+ background-color: #ddddff;
+}
+A.qindexHL {
+ text-decoration: none;
+ font-weight: bold;
+ background-color: #6666cc;
+ color: #ffffff;
+ border: 1px double #9295C2;
+}
+A.qindexHL:hover {
+ text-decoration: none;
+ background-color: #6666cc;
+ color: #ffffff;
+}
+A.qindexHL:visited { text-decoration: none; background-color: #6666cc; color: #ffffff }
+A.el { text-decoration: none; font-weight: bold }
+A.elRef { font-weight: bold }
+A.code:link { text-decoration: none; font-weight: normal; color: #0000FF}
+A.code:visited { text-decoration: none; font-weight: normal; color: #0000FF}
+A.codeRef:link { font-weight: normal; color: #0000FF}
+A.codeRef:visited { font-weight: normal; color: #0000FF}
+A:hover { text-decoration: none; background-color: #f2f2ff }
+DL.el { margin-left: -1cm }
+.fragment {
+ font-family: monospace
+}
+PRE.fragment {
+ border: 1px solid #CCCCCC;
+ background-color: #f5f5f5;
+ margin-top: 4px;
+ margin-bottom: 4px;
+ margin-left: 2px;
+ margin-right: 8px;
+ padding-left: 6px;
+ padding-right: 6px;
+ padding-top: 4px;
+ padding-bottom: 4px;
+}
+DIV.ah { background-color: black; font-weight: bold; color: #ffffff; margin-bottom: 3px; margin-top: 3px }
+TD.md { background-color: #F4F4FB; font-weight: bold; }
+TD.mdname1 { background-color: #F4F4FB; font-weight: bold; color: #602020; }
+TD.mdname { background-color: #F4F4FB; font-weight: bold; color: #602020; width: 600px; }
+DIV.groupHeader {
+ margin-left: 16px;
+ margin-top: 12px;
+ margin-bottom: 6px;
+ font-weight: bold;
+}
+DIV.groupText { margin-left: 16px; font-style: italic; font-size: 14px }
+BODY {
+ background: white;
+ color: black;
+ margin-right: 20px;
+ margin-left: 20px;
+}
+TD.indexkey {
+ background-color: #eeeeff;
+ font-weight: bold;
+ padding-right : 10px;
+ padding-top : 2px;
+ padding-left : 10px;
+ padding-bottom : 2px;
+ margin-left : 0px;
+ margin-right : 0px;
+ margin-top : 2px;
+ margin-bottom : 2px;
+ border: 1px solid #CCCCCC;
+}
+TD.indexvalue {
+ background-color: #eeeeff;
+ font-style: italic;
+ padding-right : 10px;
+ padding-top : 2px;
+ padding-left : 10px;
+ padding-bottom : 2px;
+ margin-left : 0px;
+ margin-right : 0px;
+ margin-top : 2px;
+ margin-bottom : 2px;
+ border: 1px solid #CCCCCC;
+}
+TR.memlist {
+ background-color: #f0f0f0;
+}
+P.formulaDsp { text-align: center; }
+IMG.formulaDsp { }
+IMG.formulaInl { vertical-align: middle; }
+SPAN.keyword { color: #008000 }
+SPAN.keywordtype { color: #604020 }
+SPAN.keywordflow { color: #e08000 }
+SPAN.comment { color: #800000 }
+SPAN.preprocessor { color: #806020 }
+SPAN.stringliteral { color: #002080 }
+SPAN.charliteral { color: #008080 }
+.mdTable {
+ border: 1px solid #868686;
+ background-color: #F4F4FB;
+}
+.mdRow {
+ padding: 8px 10px;
+}
+.mdescLeft {
+ padding: 0px 8px 4px 8px;
+ font-size: 12px;
+ font-style: italic;
+ background-color: #FAFAFA;
+ border-top: 1px none #E0E0E0;
+ border-right: 1px none #E0E0E0;
+ border-bottom: 1px none #E0E0E0;
+ border-left: 1px none #E0E0E0;
+ margin: 0px;
+}
+.mdescRight {
+ padding: 0px 8px 4px 8px;
+ font-size: 12px;
+ font-style: italic;
+ background-color: #FAFAFA;
+ border-top: 1px none #E0E0E0;
+ border-right: 1px none #E0E0E0;
+ border-bottom: 1px none #E0E0E0;
+ border-left: 1px none #E0E0E0;
+ margin: 0px;
+}
+.memItemLeft {
+ padding: 1px 0px 0px 8px;
+ margin: 4px;
+ border-top-width: 1px;
+ border-right-width: 1px;
+ border-bottom-width: 1px;
+ border-left-width: 1px;
+ border-top-color: #E0E0E0;
+ border-right-color: #E0E0E0;
+ border-bottom-color: #E0E0E0;
+ border-left-color: #E0E0E0;
+ border-top-style: solid;
+ border-right-style: none;
+ border-bottom-style: none;
+ border-left-style: none;
+ background-color: #FAFAFA;
+ font-size: 12px;
+}
+.memItemRight {
+ padding: 1px 8px 0px 8px;
+ margin: 4px;
+ border-top-width: 1px;
+ border-right-width: 1px;
+ border-bottom-width: 1px;
+ border-left-width: 1px;
+ border-top-color: #E0E0E0;
+ border-right-color: #E0E0E0;
+ border-bottom-color: #E0E0E0;
+ border-left-color: #E0E0E0;
+ border-top-style: solid;
+ border-right-style: none;
+ border-bottom-style: none;
+ border-left-style: none;
+ background-color: #FAFAFA;
+ font-size: 13px;
+}
+.memTemplItemLeft {
+ padding: 1px 0px 0px 8px;
+ margin: 4px;
+ border-top-width: 1px;
+ border-right-width: 1px;
+ border-bottom-width: 1px;
+ border-left-width: 1px;
+ border-top-color: #E0E0E0;
+ border-right-color: #E0E0E0;
+ border-bottom-color: #E0E0E0;
+ border-left-color: #E0E0E0;
+ border-top-style: none;
+ border-right-style: none;
+ border-bottom-style: none;
+ border-left-style: none;
+ background-color: #FAFAFA;
+ font-size: 12px;
+}
+.memTemplItemRight {
+ padding: 1px 8px 0px 8px;
+ margin: 4px;
+ border-top-width: 1px;
+ border-right-width: 1px;
+ border-bottom-width: 1px;
+ border-left-width: 1px;
+ border-top-color: #E0E0E0;
+ border-right-color: #E0E0E0;
+ border-bottom-color: #E0E0E0;
+ border-left-color: #E0E0E0;
+ border-top-style: none;
+ border-right-style: none;
+ border-bottom-style: none;
+ border-left-style: none;
+ background-color: #FAFAFA;
+ font-size: 13px;
+}
+.memTemplParams {
+ padding: 1px 0px 0px 8px;
+ margin: 4px;
+ border-top-width: 1px;
+ border-right-width: 1px;
+ border-bottom-width: 1px;
+ border-left-width: 1px;
+ border-top-color: #E0E0E0;
+ border-right-color: #E0E0E0;
+ border-bottom-color: #E0E0E0;
+ border-left-color: #E0E0E0;
+ border-top-style: solid;
+ border-right-style: none;
+ border-bottom-style: none;
+ border-left-style: none;
+ color: #606060;
+ background-color: #FAFAFA;
+ font-size: 12px;
+}
+.search { color: #003399;
+ font-weight: bold;
+}
+FORM.search {
+ margin-bottom: 0px;
+ margin-top: 0px;
+}
+INPUT.search { font-size: 75%;
+ color: #000080;
+ font-weight: normal;
+ background-color: #eeeeff;
+}
+TD.tiny { font-size: 75%;
+}
+a {
+ color: #252E78;
+}
+a:visited {
+ color: #3D2185;
+}
diff --git a/Graphic_Equalizer_Original_Port/doc/html/doxygen.png b/Graphic_Equalizer_Original_Port/doc/html/doxygen.png
new file mode 100644
index 0000000..f0a274b
--- /dev/null
+++ b/Graphic_Equalizer_Original_Port/doc/html/doxygen.png
Binary files differ
diff --git a/Graphic_Equalizer_Original_Port/doc/html/eventhandler_8hcc-source.html b/Graphic_Equalizer_Original_Port/doc/html/eventhandler_8hcc-source.html
new file mode 100644
index 0000000..f6433b3
--- /dev/null
+++ b/Graphic_Equalizer_Original_Port/doc/html/eventhandler_8hcc-source.html
@@ -0,0 +1,299 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>Graphic Equalizer 2: C:/Project Marcel &amp; Oliver/Graphic_Equalizer/src/eventhandler.hcc Source File</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.3.9.1 -->
+<div class="qindex"><a class="qindex" href="main.html">Main&nbsp;Page</a> | <a class="qindex" href="annotated.html">Data&nbsp;Structures</a> | <a class="qindex" href="dirs.html">Directories</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="functions.html">Data&nbsp;Fields</a> | <a class="qindex" href="globals.html">Globals</a></div>
+<div class="nav">
+<a class="el" href="dir_000000.html">C:</a>&nbsp;/&nbsp;<a class="el" href="dir_000001.html">Project Marcel &amp; Oliver</a>&nbsp;/&nbsp;<a class="el" href="dir_000002.html">Graphic_Equalizer</a>&nbsp;/&nbsp;<a class="el" href="dir_000004.html">src</a></div>
+<h1>eventhandler.hcc</h1><a href="eventhandler_8hcc.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment">00001
+00021 <span class="comment">/******** System Includes *************/</span>
+00022 <span class="preprocessor">#include &lt;stdlib.hch&gt;</span>
+00023
+00024 <span class="preprocessor">#include "pal_master.hch"</span>
+00025
+00026 <span class="comment">/******** Application Includes ********/</span>
+00027 <span class="preprocessor">#include "<a class="code" href="configuration_8hch.html">configuration.hch</a>"</span>
+00028 <span class="preprocessor">#include "<a class="code" href="audio_8hch.html">audio.hch</a>"</span>
+00029 <span class="preprocessor">#include "<a class="code" href="mouse__shared_8hch.html">mouse_shared.hch</a>"</span>
+00030 <span class="preprocessor">#include "<a class="code" href="eventhandler__shared_8hch.html">eventhandler_shared.hch</a>"</span>
+00031 <span class="preprocessor">#include "<a class="code" href="eventhandler_8hch.html">eventhandler.hch</a>"</span>
+00032 <span class="preprocessor">#include "<a class="code" href="events_8hch.html">events.hch</a>"</span>
+00033 <span class="preprocessor">#include "<a class="code" href="display__shared_8hch.html">display_shared.hch</a>"</span>
+00034 <span class="preprocessor">#include "<a class="code" href="display_8hch.html">display.hch</a>"</span>
+00035
+00036 <span class="preprocessor">#if HAVE_DEBUG</span>
+00037 <span class="preprocessor"></span><span class="preprocessor"> #include "debug.hch"</span>
+00038 <span class="preprocessor">#endif</span>
+00039 <span class="preprocessor"></span>
+00040
+00041
+00042 <span class="comment">/*</span>
+00043 <span class="comment"> */</span>
+00044 <span class="keyword">extern</span> chan <span class="keywordtype">unsigned</span> 1 maskupdate_notification;
+00045
+00046
+00047
+<a name="l00059"></a><a class="code" href="eventhandler_8hcc.html#a2">00059</a> <span class="keywordtype">void</span> <a class="code" href="eventhandler_8hcc.html#a2">eventhandler_main</a>(<a class="code" href="structaudiodata__t.html">audiodata_t</a> *audiodata, <a class="code" href="structevents__t.html">events_t</a> *events, <a class="code" href="structmousedata__t.html">mousedata_t</a> *mousedata) {
+00060 mpram {
+00061 ram <span class="keywordtype">unsigned</span> 4 write[768];
+00062 rom <span class="keywordtype">unsigned</span> 4 read[768];
+00063 } equalizer_levels with { block = <span class="stringliteral">"BlockRAM"</span>};
+00064
+00065 <span class="keywordtype">unsigned</span> 10 preset_offset;
+00066 <span class="keywordtype">unsigned</span> 10 reference_point, reference_point_right;
+00067 <span class="keywordtype">unsigned</span> 5 volume_left;
+00068 <span class="keywordtype">unsigned</span> 4 index_offset, index_end;
+00069 <span class="keywordtype">unsigned</span> 4 equalizer_mode_local;
+00070 <span class="keywordtype">unsigned</span> 1 newmaskupdate;
+00071
+00072 <a class="code" href="events_8hcc.html#a3">load_preset</a>(<a class="code" href="eventhandler_8hch.html#a1">LOAD_PRESET_RESET</a>, equalizer_levels.write);
+00073 <a class="code" href="display_8hcc.html#a3">reload_equalizer</a>(events, &amp;equalizer_levels.write[preset_offset]);
+00074
+00075 <span class="keywordflow">while</span> (TRUE) {
+00076 <a class="code" href="display_8hcc.html#a1">maskupdate_notification</a> ? newmaskupdate;
+00077
+00078 <span class="comment">/*</span>
+00079 <span class="comment"> * First we determine what mousestate we currently have. Then</span>
+00080 <span class="comment"> * we check where we are to decide what to do.</span>
+00081 <span class="comment"> */</span>
+00082 <span class="keywordflow">switch</span> (mousedata-&gt;<a class="code" href="structmousedata__t.html#o2">state</a>) {
+00083 <span class="keywordflow">case</span> <a class="code" href="mouse__shared_8hch.html#a4">MOUSE_STATE_ON_PRESS</a>:
+00084 <span class="comment">/*</span>
+00085 <span class="comment"> * If we are displaying the graphic visual,</span>
+00086 <span class="comment"> * any press returns to the application.</span>
+00087 <span class="comment"> */</span>
+00088 <span class="keywordflow">if</span> (<a class="code" href="eventhandler__shared_8hch.html#a3">MODE_GRAPH</a> == events-&gt;<a class="code" href="structevents__t.html#o4">mode</a>) {
+00089 events-&gt;<a class="code" href="structevents__t.html#o4">mode</a> = MODE_SKIN;
+00090 events-&gt;<a class="code" href="structevents__t.html#o3">mask</a> = 0;
+00091 } <span class="keywordflow">else</span> {
+00092 delay;
+00093 }
+00094
+00095 <span class="comment">/*</span>
+00096 <span class="comment"> */</span>
+00097 <span class="keywordflow">if</span> (<a class="code" href="display__shared_8hch.html#a19">BUTTON_MODE</a> == events-&gt;<a class="code" href="structevents__t.html#o3">mask</a>) {
+00098 <span class="keywordflow">if</span> (<a class="code" href="eventhandler__shared_8hch.html#a3">MODE_GRAPH</a> == events-&gt;<a class="code" href="structevents__t.html#o4">mode</a>) {
+00099 events-&gt;<a class="code" href="structevents__t.html#o4">mode</a> = MODE_SKIN;
+00100 } <span class="keywordflow">else</span> {
+00101 events-&gt;<a class="code" href="structevents__t.html#o4">mode</a> = MODE_GRAPH;
+00102 }
+00103 } <span class="keywordflow">else</span> {
+00104 delay;
+00105 }
+00106
+00107 <span class="comment">/*</span>
+00108 <span class="comment"> * If the current mask equals the help button</span>
+00109 <span class="comment"> * we set display mode to help.</span>
+00110 <span class="comment"> */</span>
+00111 <span class="keywordflow">if</span> (<a class="code" href="display__shared_8hch.html#a18">BUTTON_HELP</a> == events-&gt;<a class="code" href="structevents__t.html#o3">mask</a>) {
+00112 <span class="comment">/*</span>
+00113 <span class="comment"> * Change the mode to help if it's</span>
+00114 <span class="comment"> * currently not set, otherwise go back</span>
+00115 <span class="comment"> * to skin mode.</span>
+00116 <span class="comment"> */</span>
+00117 <span class="keywordflow">if</span> (<a class="code" href="eventhandler__shared_8hch.html#a2">MODE_HELP</a> == events-&gt;<a class="code" href="structevents__t.html#o4">mode</a>) {
+00118 events-&gt;<a class="code" href="structevents__t.html#o4">mode</a> = MODE_SKIN;
+00119 } <span class="keywordflow">else</span> {
+00120 events-&gt;<a class="code" href="structevents__t.html#o4">mode</a> = MODE_HELP;
+00121 }
+00122 } <span class="keywordflow">else</span> {
+00123 delay;
+00124 }
+00125
+00126 <span class="comment">/*</span>
+00127 <span class="comment"> * The Preset buttons span from 1 to 6 so if</span>
+00128 <span class="comment"> * the mask one of those, we'll change the</span>
+00129 <span class="comment"> * pointer to point to the current preset.</span>
+00130 <span class="comment"> */</span>
+00131 <span class="keywordflow">if</span> ((<a class="code" href="display__shared_8hch.html#a7">BUTTON_PRESET_1</a> &lt;= events-&gt;<a class="code" href="structevents__t.html#o3">mask</a>) &amp;&amp; (events-&gt;<a class="code" href="structevents__t.html#o3">mask</a> &lt;= BUTTON_PRESET_6)) {
+00132 <span class="comment">/*</span>
+00133 <span class="comment"> * The active preset is determined by</span>
+00134 <span class="comment"> * the mask minus an offset. Hence</span>
+00135 <span class="comment"> * ranging our active preset from 0 to</span>
+00136 <span class="comment"> * 6.</span>
+00137 <span class="comment"> */</span>
+00138 events-&gt;<a class="code" href="structevents__t.html#o1">active_preset</a> = 0 @ (events-&gt;<a class="code" href="structevents__t.html#o3">mask</a> -BUTTON_PRESET_1);
+00139 <span class="comment">/*</span>
+00140 <span class="comment"> * Each equalizer is 128 bands wide,</span>
+00141 <span class="comment"> * thus we need to add 128 * the preset</span>
+00142 <span class="comment"> * for each different preset. This</span>
+00143 <span class="comment"> * offset is calculated here.</span>
+00144 <span class="comment"> */</span>
+00145 preset_offset = events-&gt;<a class="code" href="structevents__t.html#o1">active_preset</a> &lt;&lt; 7;
+00146 <span class="comment">/*</span>
+00147 <span class="comment"> * We set the pointer to the active</span>
+00148 <span class="comment"> * part of the array by using the</span>
+00149 <span class="comment"> * preset offset as our index. Hence</span>
+00150 <span class="comment"> * depending on the selected preset</span>
+00151 <span class="comment"> * we point to 0, 128, 256, 384, 512</span>
+00152 <span class="comment"> * or 640.</span>
+00153 <span class="comment"> */</span>
+00154 audiodata-&gt;<a class="code" href="structaudiodata__t.html#o0">equalizer_levels_ptr</a> = &amp;equalizer_levels.read[preset_offset];
+00155 <span class="comment">/*</span>
+00156 <span class="comment"> * Finally update the equalizer bars</span>
+00157 <span class="comment"> * that are drawn by the display.</span>
+00158 <span class="comment"> */</span>
+00159 <a class="code" href="display_8hcc.html#a3">reload_equalizer</a>(events, &amp;equalizer_levels.write[preset_offset]);
+00160 } <span class="keywordflow">else</span> {
+00161 delay;
+00162 }
+00163
+00164 <span class="keywordflow">if</span> ((<a class="code" href="display__shared_8hch.html#a15">BUTTON_PRECISE</a> &lt;= events-&gt;<a class="code" href="structevents__t.html#o3">mask</a>) &amp;&amp; (events-&gt;<a class="code" href="structevents__t.html#o3">mask</a> &lt;= BUTTON_CONVEX_FULL)) {
+00165 events-&gt;<a class="code" href="structevents__t.html#o5">equalizer_mode</a> = (events-&gt;<a class="code" href="structevents__t.html#o3">mask</a> -BUTTON_PRECISE) &lt;-4;
+00166 } <span class="keywordflow">else</span> {
+00167 delay;
+00168 }
+00169
+00170 <span class="comment">/*</span>
+00171 <span class="comment"> * If the demo button was pressed load the</span>
+00172 <span class="comment"> * demo preset values into the presets.</span>
+00173 <span class="comment"> */</span>
+00174 <span class="keywordflow">if</span> (<a class="code" href="display__shared_8hch.html#a5">BUTTON_DEMO</a> == events-&gt;<a class="code" href="structevents__t.html#o3">mask</a>) {
+00175 <a class="code" href="events_8hcc.html#a3">load_preset</a>(<a class="code" href="eventhandler_8hch.html#a2">LOAD_PRESET_DEMO</a>, equalizer_levels.write);
+00176 <a class="code" href="display_8hcc.html#a3">reload_equalizer</a>(events, &amp;equalizer_levels.write[preset_offset]);
+00177 }
+00178
+00179 <span class="comment">/*</span>
+00180 <span class="comment"> * If the reset button was pressed load the</span>
+00181 <span class="comment"> * reset values into the presets.</span>
+00182 <span class="comment"> */</span>
+00183 <span class="keywordflow">if</span> (<a class="code" href="display__shared_8hch.html#a6">BUTTON_RESET</a> == events-&gt;<a class="code" href="structevents__t.html#o3">mask</a>) {
+00184 <a class="code" href="events_8hcc.html#a3">load_preset</a>(<a class="code" href="eventhandler_8hch.html#a1">LOAD_PRESET_RESET</a>, equalizer_levels.write);
+00185 <a class="code" href="display_8hcc.html#a3">reload_equalizer</a>(events, &amp;equalizer_levels.write[preset_offset]);
+00186 }
+00187
+00188 <span class="comment">/*</span>
+00189 <span class="comment"> * If the current mask equals the log button,</span>
+00190 <span class="comment"> * we flip the display_log bit.</span>
+00191 <span class="comment"> */</span>
+00192 <span class="keywordflow">if</span> (<a class="code" href="display__shared_8hch.html#a4">BUTTON_LOG</a> == events-&gt;<a class="code" href="structevents__t.html#o3">mask</a>) {
+00193 audiodata-&gt;<a class="code" href="structaudiodata__t.html#o1">display_log</a> = !audiodata-&gt;<a class="code" href="structaudiodata__t.html#o1">display_log</a>;
+00194 } <span class="keywordflow">else</span> {
+00195 delay;
+00196 }
+00197
+00198 <span class="keywordflow">break</span>;
+00199
+00200 <span class="keywordflow">case</span> <a class="code" href="mouse__shared_8hch.html#a5">MOUSE_STATE_DOWN</a>:
+00201 <span class="comment">/*</span>
+00202 <span class="comment"> * If we are in the volume area we update the</span>
+00203 <span class="comment"> * volume level for both channels.</span>
+00204 <span class="comment"> */</span>
+00205 <span class="keywordflow">if</span> (<a class="code" href="display__shared_8hch.html#a2">AREA_VOLUME_YAXIS</a> == events-&gt;<a class="code" href="structevents__t.html#o3">mask</a>) {
+00206 <span class="comment">/*</span>
+00207 <span class="comment"> * Copy the current Y cursor position</span>
+00208 <span class="comment"> * to the events struct. This we then</span>
+00209 <span class="comment"> * later use for drawing purposes.</span>
+00210 <span class="comment"> */</span>
+00211 events-&gt;<a class="code" href="structevents__t.html#o2">volume_position</a> = 0 @ mousedata-&gt;<a class="code" href="structmousedata__t.html#o1">y</a>;
+00212 <span class="comment">/*</span>
+00213 <span class="comment"> * Look the relative y-coordinate up in</span>
+00214 <span class="comment"> * the volumecontrol lookup table. We</span>
+00215 <span class="comment"> * make a local copy here because the</span>
+00216 <span class="comment"> * RC200 call doesn't behave nicely</span>
+00217 <span class="comment"> * when passing anything else.</span>
+00218 <span class="comment"> */</span>
+00219 volume_left = <a class="code" href="eventhandler__shared_8hch.html#a7">volumecontrol_table</a>[((mousedata-&gt;<a class="code" href="structmousedata__t.html#o1">y</a>) -65) &lt;- 6];
+00220 <span class="comment">/*</span>
+00221 <span class="comment"> * We feel that volume gets softer the</span>
+00222 <span class="comment"> * closer it gets to the 0, and louder</span>
+00223 <span class="comment"> * as it approaches 0x1f. The SetVolume</span>
+00224 <span class="comment"> * RC200 call does this in an unnatural</span>
+00225 <span class="comment"> * reverse way. Therefor we fix it.</span>
+00226 <span class="comment"> */</span>
+00227 RC200AudioOutSetVolume(!volume_left, 0x1f -volume_left, 0x1f -volume_left);
+00228 } <span class="keywordflow">else</span> {
+00229 delay;
+00230 }
+00231
+00232 <span class="keywordflow">if</span> ((<a class="code" href="display__shared_8hch.html#a20">AREA_EQUALIZER_MIN</a> &lt;= events-&gt;<a class="code" href="structevents__t.html#o3">mask</a>) &amp;&amp; (events-&gt;<a class="code" href="structevents__t.html#o3">mask</a> &lt;= AREA_EQUALIZER_MAX)) {
+00233
+00234 <span class="keywordflow">if</span> (<a class="code" href="eventhandler__shared_8hch.html#a6">EQUALIZERMODE_PRECISE</a> == events-&gt;<a class="code" href="structevents__t.html#o5">equalizer_mode</a>) {
+00235 events-&gt;<a class="code" href="structevents__t.html#o6">locked_display</a> = TRUE;
+00236 equalizer_levels.write[preset_offset +(0 @ events-&gt;<a class="code" href="structevents__t.html#o3">mask</a>) -AREA_EQUALIZER_MIN] = <a class="code" href="eventhandler__shared_8hch.html#a8">equalizer_table</a>[mousedata-&gt;<a class="code" href="structmousedata__t.html#o1">y</a> -382];
+00237 events-&gt;<a class="code" href="structevents__t.html#o0">equalizer_display</a>[(events-&gt;<a class="code" href="structevents__t.html#o3">mask</a> -AREA_EQUALIZER_MIN) &lt;- 7] = mousedata-&gt;<a class="code" href="structmousedata__t.html#o1">y</a>;
+00238 events-&gt;<a class="code" href="structevents__t.html#o6">locked_display</a> = FALSE;
+00239 } <span class="keywordflow">else</span> {
+00240
+00241 equalizer_mode_local = events-&gt;<a class="code" href="structevents__t.html#o5">equalizer_mode</a> +1;
+00242
+00243 events-&gt;<a class="code" href="structevents__t.html#o6">locked_display</a> = TRUE;
+00244 index_offset = ((equalizer_mode_local &lt;&lt; 1)); <span class="comment">/* delay; */</span>
+00245
+00246 <span class="keywordflow">if</span> (events-&gt;<a class="code" href="structevents__t.html#o3">mask</a> &lt; (<a class="code" href="display__shared_8hch.html#a20">AREA_EQUALIZER_MIN</a> +(0 @ equalizer_mode_local))) {
+00247 reference_point = events-&gt;<a class="code" href="structevents__t.html#o0">equalizer_display</a>[<a class="code" href="display__shared_8hch.html#a20">AREA_EQUALIZER_MIN</a> -AREA_EQUALIZER_MIN];
+00248 index_offset -= (((0 @ equalizer_mode_local) -(events-&gt;<a class="code" href="structevents__t.html#o3">mask</a> -AREA_EQUALIZER_MIN)) &lt;- 4);
+00249 } <span class="keywordflow">else</span> {
+00250 reference_point = events-&gt;<a class="code" href="structevents__t.html#o0">equalizer_display</a>[(events-&gt;<a class="code" href="structevents__t.html#o3">mask</a> - (0 @ equalizer_mode_local) -AREA_EQUALIZER_MIN) &lt;- 7];
+00251 index_offset -= 1;
+00252 }
+00253
+00254 <span class="keywordflow">if</span> (events-&gt;<a class="code" href="structevents__t.html#o3">mask</a> &gt; (<a class="code" href="display__shared_8hch.html#a21">AREA_EQUALIZER_MAX</a> -(0 @ equalizer_mode_local))) {
+00255 reference_point_right = events-&gt;<a class="code" href="structevents__t.html#o0">equalizer_display</a>[<a class="code" href="display__shared_8hch.html#a21">AREA_EQUALIZER_MAX</a> -AREA_EQUALIZER_MIN];
+00256 index_end = (((0 @ equalizer_mode_local) -(<a class="code" href="display__shared_8hch.html#a21">AREA_EQUALIZER_MAX</a> -events-&gt;<a class="code" href="structevents__t.html#o3">mask</a>)) &lt;- 4) -1;
+00257 } <span class="keywordflow">else</span> {
+00258 reference_point_right = events-&gt;<a class="code" href="structevents__t.html#o0">equalizer_display</a>[(events-&gt;<a class="code" href="structevents__t.html#o3">mask</a> + (0 @ equalizer_mode_local) -AREA_EQUALIZER_MIN) &lt;- 7];
+00259 index_end = 0;
+00260 }
+00261 events-&gt;<a class="code" href="structevents__t.html#o6">locked_display</a> = FALSE;
+00262
+00263 <span class="keywordflow">for</span> (; index_offset != index_end; index_offset--) {
+00264 <span class="keywordtype">unsigned</span> 10 average_bar;
+00265 <span class="keywordtype">unsigned</span> 7 equalizer_index;
+00266 <span class="keywordtype">unsigned</span> 4 bar_index;
+00267
+00268 <span class="keywordflow">if</span> (index_offset == equalizer_mode_local) {
+00269 reference_point = reference_point_right;
+00270 } <span class="keywordflow">else</span> {
+00271 delay;
+00272 }
+00273
+00274 <span class="keywordflow">if</span> (index_offset &gt; equalizer_mode_local)
+00275 {
+00276 bar_index = (index_offset -equalizer_mode_local);
+00277 equalizer_index = ((events-&gt;<a class="code" href="structevents__t.html#o3">mask</a> -(0 @ bar_index) -AREA_EQUALIZER_MIN) &lt;- 7);
+00278 } <span class="keywordflow">else</span>
+00279 {
+00280 bar_index = (equalizer_mode_local -index_offset);
+00281 equalizer_index = ((events-&gt;<a class="code" href="structevents__t.html#o3">mask</a> +(0 @ bar_index) -AREA_EQUALIZER_MIN) &lt;- 7);
+00282 }
+00283
+00284 <span class="keywordflow">if</span> (reference_point &gt; mousedata-&gt;<a class="code" href="structmousedata__t.html#o1">y</a>) {
+00285 average_bar = mousedata-&gt;<a class="code" href="structmousedata__t.html#o1">y</a> +((reference_point -mousedata-&gt;<a class="code" href="structmousedata__t.html#o1">y</a>) &gt;&gt; (equalizer_mode_local -bar_index));
+00286 } <span class="keywordflow">else</span> {
+00287 average_bar = mousedata-&gt;<a class="code" href="structmousedata__t.html#o1">y</a> -((mousedata-&gt;<a class="code" href="structmousedata__t.html#o1">y</a> -reference_point) &gt;&gt; (equalizer_mode_local -bar_index));
+00288 }
+00289
+00290 events-&gt;<a class="code" href="structevents__t.html#o6">locked_display</a> = TRUE;
+00291 equalizer_levels.write[preset_offset +(0 @ equalizer_index)] = <a class="code" href="eventhandler__shared_8hch.html#a8">equalizer_table</a>[average_bar -382];
+00292 events-&gt;<a class="code" href="structevents__t.html#o0">equalizer_display</a>[equalizer_index] = average_bar;
+00293 events-&gt;<a class="code" href="structevents__t.html#o6">locked_display</a> = FALSE;
+00294 }
+00295 }
+00296 } <span class="keywordflow">else</span> {
+00297 delay;
+00298 }
+00299
+00300 <span class="keywordflow">break</span>;
+00301
+00302 <span class="keywordflow">default</span>:
+00303 <span class="keywordflow">break</span>;
+00304 }
+00305 }
+00306 } <span class="comment">/* --- eventhandler_main() --- */</span>
+00307
+00308
+00309
+00310 <span class="comment">/*</span>
+00311 <span class="comment"> * Volume Control lookuptable.</span>
+00312 <span class="comment"> * TODO: This table is now hardcoded. To ensure full skinability this table</span>
+00313 <span class="comment"> * should be dynamically loaded.</span>
+00314 <span class="comment"> */</span>
+<a name="l00315"></a><a class="code" href="eventhandler_8hcc.html#a1">00315</a> rom <span class="keywordtype">unsigned</span> 5 <a class="code" href="eventhandler__shared_8hch.html#a7">volumecontrol_table</a>[46] = {31, 31, 30, 30, 29, 29, 28, 28, 27, 27, 26, 26, 25, 25, 24, 24, 23, 23, 22, 22, 21, 21, 20, 20, 19, 19, 18, 17, 16, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0, 0};
+</pre></div><hr size="1"><address style="align: right;"><small>Generated on Thu Dec 9 14:37:06 2004 for Graphic Equalizer 2 by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.3.9.1 </small></address>
+</body>
+</html>
diff --git a/Graphic_Equalizer_Original_Port/doc/html/eventhandler_8hcc.html b/Graphic_Equalizer_Original_Port/doc/html/eventhandler_8hcc.html
new file mode 100644
index 0000000..3d700ac
--- /dev/null
+++ b/Graphic_Equalizer_Original_Port/doc/html/eventhandler_8hcc.html
@@ -0,0 +1,191 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>Graphic Equalizer 2: C:/Project Marcel &amp; Oliver/Graphic_Equalizer/src/eventhandler.hcc File Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.3.9.1 -->
+<div class="qindex"><a class="qindex" href="main.html">Main&nbsp;Page</a> | <a class="qindex" href="annotated.html">Data&nbsp;Structures</a> | <a class="qindex" href="dirs.html">Directories</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="functions.html">Data&nbsp;Fields</a> | <a class="qindex" href="globals.html">Globals</a></div>
+<div class="nav">
+<a class="el" href="dir_000000.html">C:</a>&nbsp;/&nbsp;<a class="el" href="dir_000001.html">Project Marcel &amp; Oliver</a>&nbsp;/&nbsp;<a class="el" href="dir_000002.html">Graphic_Equalizer</a>&nbsp;/&nbsp;<a class="el" href="dir_000004.html">src</a></div>
+<h1>eventhandler.hcc File Reference</h1><code>#include &lt;stdlib.hch&gt;</code><br>
+<code>#include "pal_master.hch"</code><br>
+<code>#include "<a class="el" href="configuration_8hch-source.html">configuration.hch</a>"</code><br>
+<code>#include "<a class="el" href="audio_8hch-source.html">audio.hch</a>"</code><br>
+<code>#include "<a class="el" href="mouse__shared_8hch-source.html">mouse_shared.hch</a>"</code><br>
+<code>#include "<a class="el" href="eventhandler__shared_8hch-source.html">eventhandler_shared.hch</a>"</code><br>
+<code>#include "<a class="el" href="eventhandler_8hch-source.html">eventhandler.hch</a>"</code><br>
+<code>#include "<a class="el" href="events_8hch-source.html">events.hch</a>"</code><br>
+<code>#include "<a class="el" href="display__shared_8hch-source.html">display_shared.hch</a>"</code><br>
+<code>#include "<a class="el" href="display_8hch-source.html">display.hch</a>"</code><br>
+
+<p>
+Include dependency graph for eventhandler.hcc:<p><center><img src="eventhandler_8hcc__incl.png" border="0" usemap="#eventhandler.hcc_map" alt="Include dependency graph"></center>
+<map name="eventhandler.hcc_map">
+<area href="configuration_8hch.html" shape="rect" coords="245,7,370,34" alt="">
+<area href="audio_8hch.html" shape="rect" coords="394,7,474,34" alt="">
+<area href="mouse__shared_8hch.html" shape="rect" coords="498,7,634,34" alt="">
+<area href="eventhandler__shared_8hch.html" shape="rect" coords="658,7,832,34" alt="">
+<area href="eventhandler_8hch.html" shape="rect" coords="856,7,981,34" alt="">
+<area href="events_8hch.html" shape="rect" coords="1005,7,1090,34" alt="">
+<area href="display__shared_8hch.html" shape="rect" coords="1114,7,1250,34" alt="">
+<area href="display_8hch.html" shape="rect" coords="1274,7,1362,34" alt="">
+</map>
+
+<p>
+<a href="eventhandler_8hcc-source.html">Go to the source code of this file.</a><table border="0" cellpadding="0" cellspacing="0">
+<tr><td></td></tr>
+<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="eventhandler_8hcc.html#a2">eventhandler_main</a> (<a class="el" href="structaudiodata__t.html">audiodata_t</a> *audiodata, <a class="el" href="structevents__t.html">events_t</a> *events, <a class="el" href="structmousedata__t.html">mousedata_t</a> *mousedata)</td></tr>
+
+<tr><td colspan="2"><br><h2>Variables</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">chan unsigned&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="eventhandler_8hcc.html#a0">maskupdate_notification</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">rom unsigned&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="eventhandler_8hcc.html#a1">volumecontrol_table</a> [46] = {31, 31, 30, 30, 29, 29, 28, 28, 27, 27, 26, 26, 25, 25, 24, 24, 23, 23, 22, 22, 21, 21, 20, 20, 19, 19, 18, 17, 16, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0, 0}</td></tr>
+
+</table>
+<hr><a name="_details"></a><h2>Detailed Description</h2>
+<h2><a class="anchor" name="generic">
+Graphic Equalizer API</a></h2>
+when the mousehandler registers a 'click' we coordinate the actions that follow that click.<h2><a class="anchor" name="project">
+Project information.</a></h2>
+Project Graphic Equalizer<br>
+ <dl compact><dt><b>Author:</b></dt><dd>O.M. Schinagl </dd></dl>
+<dl compact><dt><b>Date:</b></dt><dd>20041110 </dd></dl>
+<dl compact><dt><b>Version:</b></dt><dd>0.1</dd></dl>
+<h2><a class="anchor" name="copyright">
+Copyright</a></h2>
+Copyright ©2004 Koninklijke Philips Electronics N.V. All rights reserved<h2><a class="anchor" name="history">
+Change history</a></h2>
+20041110: O.M. Schinagl<br>
+ Initial version
+<p>
+Definition in file <a class="el" href="eventhandler_8hcc-source.html">eventhandler.hcc</a>.<hr><h2>Function Documentation</h2>
+<a class="anchor" name="a2" doxytag="eventhandler.hcc::eventhandler_main"></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top">void eventhandler_main </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="structaudiodata__t.html">audiodata_t</a> *&nbsp;</td>
+ <td class="mdname" nowrap> <em>audiodata</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td class="md"></td>
+ <td class="md" nowrap><a class="el" href="structevents__t.html">events_t</a> *&nbsp;</td>
+ <td class="mdname" nowrap> <em>events</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td class="md"></td>
+ <td class="md" nowrap><a class="el" href="structmousedata__t.html">mousedata_t</a> *&nbsp;</td>
+ <td class="mdname" nowrap> <em>mousedata</em></td>
+ </tr>
+ <tr>
+ <td class="md"></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"></td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+ <table border="0" cellspacing="2" cellpadding="0">
+ <tr><td valign="top"></td><td valign="top"><em>*audiodata</em>&nbsp;</td><td>pointer to struct for setting equalizer levels. </td></tr>
+ <tr><td valign="top"></td><td valign="top"><em>*events</em>&nbsp;</td><td>pointer to struct with all events for display states. </td></tr>
+ <tr><td valign="top"></td><td valign="top"><em>*mousedata</em>&nbsp;</td><td>pointer to struct with mouse data for X and Y coordinates.</td></tr>
+ </table>
+</dl>
+<dl compact><dt><b>Returns:</b></dt><dd>Never Returns. </dd></dl>
+<dl compact><dt><b>Return values:</b></dt><dd>
+ <table border="0" cellspacing="2" cellpadding="0">
+ <tr><td valign="top"></td><td valign="top"><em>void</em>&nbsp;</td><td></td></tr>
+ </table>
+</dl>
+
+<p>
+Definition at line <a class="el" href="eventhandler_8hcc-source.html#l00059">59</a> of file <a class="el" href="eventhandler_8hcc-source.html">eventhandler.hcc</a>.
+<p>
+References <a class="el" href="eventhandler__shared_8hch-source.html#l00031">events_t::active_preset</a>, <a class="el" href="display__shared_8hch-source.html#l00075">AREA_EQUALIZER_MAX</a>, <a class="el" href="display__shared_8hch-source.html#l00074">AREA_EQUALIZER_MIN</a>, <a class="el" href="display__shared_8hch-source.html#l00051">AREA_VOLUME_YAXIS</a>, <a class="el" href="display__shared_8hch-source.html#l00055">BUTTON_DEMO</a>, <a class="el" href="display__shared_8hch-source.html#l00071">BUTTON_HELP</a>, <a class="el" href="display__shared_8hch-source.html#l00054">BUTTON_LOG</a>, <a class="el" href="display__shared_8hch-source.html#l00072">BUTTON_MODE</a>, <a class="el" href="display__shared_8hch-source.html#l00067">BUTTON_PRECISE</a>, <a class="el" href="display__shared_8hch-source.html#l00058">BUTTON_PRESET_1</a>, <a class="el" href="display__shared_8hch-source.html#l00056">BUTTON_RESET</a>, <a class="el" href="audio_8hch-source.html#l00035">audiodata_t::display_log</a>, <a class="el" href="eventhandler__shared_8hch-source.html#l00030">events_t::equalizer_display</a>, <a class="el" href="audio_8hch-source.html#l00034">audiodata_t::equalizer_levels_ptr</a>, <a class="el" href="eventhandler__shared_8hch-source.html#l00035">events_t::equalizer_mode</a>, <a class="el" href="events_8hcc-source.html#l00075">equalizer_table</a>, <a class="el" href="eventhandler__shared_8hch-source.html#l00048">EQUALIZERMODE_PRECISE</a>, <a class="el" href="events_8hcc-source.html#l00053">load_preset()</a>, <a class="el" href="eventhandler_8hch-source.html#l00025">LOAD_PRESET_DEMO</a>, <a class="el" href="eventhandler_8hch-source.html#l00024">LOAD_PRESET_RESET</a>, <a class="el" href="eventhandler__shared_8hch-source.html#l00036">events_t::locked_display</a>, <a class="el" href="eventhandler__shared_8hch-source.html#l00033">events_t::mask</a>, <a class="el" href="display_8hcc-source.html#l00048">maskupdate_notification</a>, <a class="el" href="eventhandler__shared_8hch-source.html#l00034">events_t::mode</a>, <a class="el" href="eventhandler__shared_8hch-source.html#l00042">MODE_GRAPH</a>, <a class="el" href="eventhandler__shared_8hch-source.html#l00041">MODE_HELP</a>, <a class="el" href="mouse__shared_8hch-source.html#l00048">MOUSE_STATE_DOWN</a>, <a class="el" href="mouse__shared_8hch-source.html#l00047">MOUSE_STATE_ON_PRESS</a>, <a class="el" href="display_8hcc-source.html#l00328">reload_equalizer()</a>, <a class="el" href="mouse__shared_8hch-source.html#l00029">mousedata_t::state</a>, <a class="el" href="eventhandler__shared_8hch-source.html#l00032">events_t::volume_position</a>, <a class="el" href="eventhandler_8hcc-source.html#l00315">volumecontrol_table</a>, and <a class="el" href="mouse__shared_8hch-source.html#l00028">mousedata_t::y</a>.
+<p>
+Referenced by <a class="el" href="main_8hcc-source.html#l00051">main()</a>. </td>
+ </tr>
+</table>
+
+<p>
+Here is the call graph for this function:<p><center><img src="eventhandler_8hcc_a2_cgraph.png" border="0" usemap="#eventhandler_8hcc_a2_cgraph_map" alt=""></center>
+<map name="eventhandler_8hcc_a2_cgraph_map">
+<area href="events_8hcc.html#a3" shape="rect" coords="210,7,301,34" alt="">
+<area href="display_8hcc.html#a3" shape="rect" coords="195,58,315,85" alt="">
+</map>
+<hr><h2>Variable Documentation</h2>
+<a class="anchor" name="a0" doxytag="eventhandler.hcc::maskupdate_notification"></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top">chan unsigned <a class="el" href="eventhandler_8hcc.html#a0">maskupdate_notification</a> </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="display_8hcc-source.html#l00048">48</a> of file <a class="el" href="display_8hcc-source.html">display.hcc</a>.
+<p>
+Referenced by <a class="el" href="display_8hcc-source.html#l00065">display_main()</a>, and <a class="el" href="eventhandler_8hcc-source.html#l00059">eventhandler_main()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="a1" doxytag="eventhandler.hcc::volumecontrol_table"></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top">rom unsigned <a class="el" href="eventhandler_8hcc.html#a1">volumecontrol_table</a>[46] = {31, 31, 30, 30, 29, 29, 28, 28, 27, 27, 26, 26, 25, 25, 24, 24, 23, 23, 22, 22, 21, 21, 20, 20, 19, 19, 18, 17, 16, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0, 0} </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="eventhandler_8hcc-source.html#l00315">315</a> of file <a class="el" href="eventhandler_8hcc-source.html">eventhandler.hcc</a>.
+<p>
+Referenced by <a class="el" href="eventhandler_8hcc-source.html#l00059">eventhandler_main()</a>. </td>
+ </tr>
+</table>
+<hr size="1"><address style="align: right;"><small>Generated on Thu Dec 9 14:37:08 2004 for Graphic Equalizer 2 by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.3.9.1 </small></address>
+</body>
+</html>
diff --git a/Graphic_Equalizer_Original_Port/doc/html/eventhandler_8hcc__incl.map b/Graphic_Equalizer_Original_Port/doc/html/eventhandler_8hcc__incl.map
new file mode 100644
index 0000000..8e10f06
--- /dev/null
+++ b/Graphic_Equalizer_Original_Port/doc/html/eventhandler_8hcc__incl.map
@@ -0,0 +1,9 @@
+base referer
+rect $configuration_8hch.html 245,7 370,34
+rect $audio_8hch.html 394,7 474,34
+rect $mouse__shared_8hch.html 498,7 634,34
+rect $eventhandler__shared_8hch.html 658,7 832,34
+rect $eventhandler_8hch.html 856,7 981,34
+rect $events_8hch.html 1005,7 1090,34
+rect $display__shared_8hch.html 1114,7 1250,34
+rect $display_8hch.html 1274,7 1362,34
diff --git a/Graphic_Equalizer_Original_Port/doc/html/eventhandler_8hcc__incl.md5 b/Graphic_Equalizer_Original_Port/doc/html/eventhandler_8hcc__incl.md5
new file mode 100644
index 0000000..43b12ac
--- /dev/null
+++ b/Graphic_Equalizer_Original_Port/doc/html/eventhandler_8hcc__incl.md5
@@ -0,0 +1 @@
+e8a7f337e9a3e5ae2e720dcb8252ef7e \ No newline at end of file
diff --git a/Graphic_Equalizer_Original_Port/doc/html/eventhandler_8hcc__incl.png b/Graphic_Equalizer_Original_Port/doc/html/eventhandler_8hcc__incl.png
new file mode 100644
index 0000000..09c2a45
--- /dev/null
+++ b/Graphic_Equalizer_Original_Port/doc/html/eventhandler_8hcc__incl.png
Binary files differ
diff --git a/Graphic_Equalizer_Original_Port/doc/html/eventhandler_8hcc_a2_cgraph.map b/Graphic_Equalizer_Original_Port/doc/html/eventhandler_8hcc_a2_cgraph.map
new file mode 100644
index 0000000..def60cd
--- /dev/null
+++ b/Graphic_Equalizer_Original_Port/doc/html/eventhandler_8hcc_a2_cgraph.map
@@ -0,0 +1,3 @@
+base referer
+rect $events_8hcc.html#a3 210,7 301,34
+rect $display_8hcc.html#a3 195,58 315,85
diff --git a/Graphic_Equalizer_Original_Port/doc/html/eventhandler_8hcc_a2_cgraph.md5 b/Graphic_Equalizer_Original_Port/doc/html/eventhandler_8hcc_a2_cgraph.md5
new file mode 100644
index 0000000..2dffa3a
--- /dev/null
+++ b/Graphic_Equalizer_Original_Port/doc/html/eventhandler_8hcc_a2_cgraph.md5
@@ -0,0 +1 @@
+61d7348e8088689b8e9bef2cac7fb456 \ No newline at end of file
diff --git a/Graphic_Equalizer_Original_Port/doc/html/eventhandler_8hcc_a2_cgraph.png b/Graphic_Equalizer_Original_Port/doc/html/eventhandler_8hcc_a2_cgraph.png
new file mode 100644
index 0000000..d07857b
--- /dev/null
+++ b/Graphic_Equalizer_Original_Port/doc/html/eventhandler_8hcc_a2_cgraph.png
Binary files differ
diff --git a/Graphic_Equalizer_Original_Port/doc/html/eventhandler_8hcc_a3_cgraph.map b/Graphic_Equalizer_Original_Port/doc/html/eventhandler_8hcc_a3_cgraph.map
new file mode 100644
index 0000000..e15c770
--- /dev/null
+++ b/Graphic_Equalizer_Original_Port/doc/html/eventhandler_8hcc_a3_cgraph.map
@@ -0,0 +1,3 @@
+base referer
+rect $events_8hcc.html#a2 210,7 301,34
+rect $display_8hcc.html#a4 195,58 315,85
diff --git a/Graphic_Equalizer_Original_Port/doc/html/eventhandler_8hcc_a3_cgraph.md5 b/Graphic_Equalizer_Original_Port/doc/html/eventhandler_8hcc_a3_cgraph.md5
new file mode 100644
index 0000000..5572015
--- /dev/null
+++ b/Graphic_Equalizer_Original_Port/doc/html/eventhandler_8hcc_a3_cgraph.md5
@@ -0,0 +1 @@
+4cc99ebc2d7ee85c7be875aa4524a42e \ No newline at end of file
diff --git a/Graphic_Equalizer_Original_Port/doc/html/eventhandler_8hcc_a3_cgraph.png b/Graphic_Equalizer_Original_Port/doc/html/eventhandler_8hcc_a3_cgraph.png
new file mode 100644
index 0000000..d07857b
--- /dev/null
+++ b/Graphic_Equalizer_Original_Port/doc/html/eventhandler_8hcc_a3_cgraph.png
Binary files differ
diff --git a/Graphic_Equalizer_Original_Port/doc/html/eventhandler_8hch-source.html b/Graphic_Equalizer_Original_Port/doc/html/eventhandler_8hch-source.html
new file mode 100644
index 0000000..a53a027
--- /dev/null
+++ b/Graphic_Equalizer_Original_Port/doc/html/eventhandler_8hch-source.html
@@ -0,0 +1,36 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>Graphic Equalizer 2: C:/Project Marcel &amp; Oliver/Graphic_Equalizer/include/eventhandler.hch Source File</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.3.9.1 -->
+<div class="qindex"><a class="qindex" href="main.html">Main&nbsp;Page</a> | <a class="qindex" href="annotated.html">Data&nbsp;Structures</a> | <a class="qindex" href="dirs.html">Directories</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="functions.html">Data&nbsp;Fields</a> | <a class="qindex" href="globals.html">Globals</a></div>
+<div class="nav">
+<a class="el" href="dir_000000.html">C:</a>&nbsp;/&nbsp;<a class="el" href="dir_000001.html">Project Marcel &amp; Oliver</a>&nbsp;/&nbsp;<a class="el" href="dir_000002.html">Graphic_Equalizer</a>&nbsp;/&nbsp;<a class="el" href="dir_000003.html">include</a></div>
+<h1>eventhandler.hch</h1><a href="eventhandler_8hch.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment">00001
+00019 <span class="preprocessor">#ifndef _EVENTHANDLER_HCH</span>
+<a name="l00020"></a><a class="code" href="eventhandler_8hch.html#a0">00020</a> <span class="preprocessor"></span><span class="preprocessor">#define _EVENTHANDLER_HCH 1</span>
+00021 <span class="preprocessor"></span>
+00022
+00023
+<a name="l00024"></a><a class="code" href="eventhandler_8hch.html#a1">00024</a> <span class="preprocessor">#define LOAD_PRESET_RESET 0x000</span>
+<a name="l00025"></a><a class="code" href="eventhandler_8hch.html#a2">00025</a> <span class="preprocessor"></span><span class="preprocessor">#define LOAD_PRESET_DEMO 0x180</span>
+00026 <span class="preprocessor"></span>
+00027
+00028
+00029 <span class="comment">/*</span>
+00030 <span class="comment"> * This is the main eventhandler loop. We require pointers to the event struct</span>
+00031 <span class="comment"> * to store actions to be performed and a mousedata pointer so that we know on</span>
+00032 <span class="comment"> * what mousestate to respond. We never returns!</span>
+00033 <span class="comment"> */</span>
+00034 <span class="keywordtype">void</span> <a class="code" href="eventhandler_8hcc.html#a2">eventhandler_main</a>(<a class="code" href="structaudiodata__t.html">audiodata_t</a> *audiodata, <a class="code" href="structevents__t.html">events_t</a> *events, <a class="code" href="structmousedata__t.html">mousedata_t</a> *mousedata);
+00035
+00036 <span class="preprocessor">#else</span>
+00037 <span class="preprocessor"></span><span class="preprocessor">#error "ERROR file eventhandler.hch multiple times included"</span>
+00038 <span class="preprocessor"></span><span class="preprocessor">#endif </span><span class="comment">/* --- _EVENTHANDLER_HCH --- */</span>
+00039
+</pre></div><hr size="1"><address style="align: right;"><small>Generated on Thu Dec 9 14:37:06 2004 for Graphic Equalizer 2 by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.3.9.1 </small></address>
+</body>
+</html>
diff --git a/Graphic_Equalizer_Original_Port/doc/html/eventhandler_8hch.html b/Graphic_Equalizer_Original_Port/doc/html/eventhandler_8hch.html
new file mode 100644
index 0000000..cbaba8d
--- /dev/null
+++ b/Graphic_Equalizer_Original_Port/doc/html/eventhandler_8hch.html
@@ -0,0 +1,202 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>Graphic Equalizer 2: C:/Project Marcel &amp; Oliver/Graphic_Equalizer/include/eventhandler.hch File Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.3.9.1 -->
+<div class="qindex"><a class="qindex" href="main.html">Main&nbsp;Page</a> | <a class="qindex" href="annotated.html">Data&nbsp;Structures</a> | <a class="qindex" href="dirs.html">Directories</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="functions.html">Data&nbsp;Fields</a> | <a class="qindex" href="globals.html">Globals</a></div>
+<div class="nav">
+<a class="el" href="dir_000000.html">C:</a>&nbsp;/&nbsp;<a class="el" href="dir_000001.html">Project Marcel &amp; Oliver</a>&nbsp;/&nbsp;<a class="el" href="dir_000002.html">Graphic_Equalizer</a>&nbsp;/&nbsp;<a class="el" href="dir_000003.html">include</a></div>
+<h1>eventhandler.hch File Reference</h1>
+<p>
+This graph shows which files directly or indirectly include this file:<p><center><img src="eventhandler_8hch__dep__incl.png" border="0" usemap="#eventhandler.hchdep_map" alt="Included by dependency graph"></center>
+<map name="eventhandler.hchdep_map">
+<area href="eventhandler_8hcc.html" shape="rect" coords="7,7,130,34" alt="">
+<area href="main_8hcc.html" shape="rect" coords="154,7,229,34" alt="">
+</map>
+
+<p>
+<a href="eventhandler_8hch-source.html">Go to the source code of this file.</a><table border="0" cellpadding="0" cellspacing="0">
+<tr><td></td></tr>
+<tr><td colspan="2"><br><h2>Defines</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="eventhandler_8hch.html#a0">_EVENTHANDLER_HCH</a>&nbsp;&nbsp;&nbsp;1</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="eventhandler_8hch.html#a1">LOAD_PRESET_RESET</a>&nbsp;&nbsp;&nbsp;0x000</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="eventhandler_8hch.html#a2">LOAD_PRESET_DEMO</a>&nbsp;&nbsp;&nbsp;0x180</td></tr>
+
+<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="eventhandler_8hch.html#a3">eventhandler_main</a> (<a class="el" href="structaudiodata__t.html">audiodata_t</a> *audiodata, <a class="el" href="structevents__t.html">events_t</a> *events, <a class="el" href="structmousedata__t.html">mousedata_t</a> *mousedata)</td></tr>
+
+</table>
+<hr><a name="_details"></a><h2>Detailed Description</h2>
+<h2><a class="anchor" name="generic">
+Graphic Equalizer API</a></h2>
+<h2><a class="anchor" name="project">
+Project information.</a></h2>
+Project Graphic Equalizer<br>
+ <dl compact><dt><b>Author:</b></dt><dd>O.M. Schinagl </dd></dl>
+<dl compact><dt><b>Date:</b></dt><dd>20041110 </dd></dl>
+<dl compact><dt><b>Version:</b></dt><dd>0.1</dd></dl>
+<h2><a class="anchor" name="copyright">
+Copyright</a></h2>
+Copyright ©2004 Koninklijke Philips Electronics N.V. All rights reserved<h2><a class="anchor" name="history">
+Change history</a></h2>
+20041110: O.M. Schinagl<br>
+ Initial version
+<p>
+Definition in file <a class="el" href="eventhandler_8hch-source.html">eventhandler.hch</a>.<hr><h2>Define Documentation</h2>
+<a class="anchor" name="a0" doxytag="eventhandler.hch::_EVENTHANDLER_HCH"></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top">#define _EVENTHANDLER_HCH&nbsp;&nbsp;&nbsp;1 </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="eventhandler_8hch-source.html#l00020">20</a> of file <a class="el" href="eventhandler_8hch-source.html">eventhandler.hch</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="a1" doxytag="eventhandler.hch::LOAD_PRESET_RESET"></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top">#define LOAD_PRESET_RESET&nbsp;&nbsp;&nbsp;0x000 </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="eventhandler_8hch-source.html#l00024">24</a> of file <a class="el" href="eventhandler_8hch-source.html">eventhandler.hch</a>.
+<p>
+Referenced by <a class="el" href="eventhandler_8hcc-source.html#l00059">eventhandler_main()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="a2" doxytag="eventhandler.hch::LOAD_PRESET_DEMO"></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top">#define LOAD_PRESET_DEMO&nbsp;&nbsp;&nbsp;0x180 </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="eventhandler_8hch-source.html#l00025">25</a> of file <a class="el" href="eventhandler_8hch-source.html">eventhandler.hch</a>.
+<p>
+Referenced by <a class="el" href="eventhandler_8hcc-source.html#l00059">eventhandler_main()</a>. </td>
+ </tr>
+</table>
+<hr><h2>Function Documentation</h2>
+<a class="anchor" name="a3" doxytag="eventhandler.hch::eventhandler_main"></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top">void eventhandler_main </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="structaudiodata__t.html">audiodata_t</a> *&nbsp;</td>
+ <td class="mdname" nowrap> <em>audiodata</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td class="md"></td>
+ <td class="md" nowrap><a class="el" href="structevents__t.html">events_t</a> *&nbsp;</td>
+ <td class="mdname" nowrap> <em>events</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td class="md"></td>
+ <td class="md" nowrap><a class="el" href="structmousedata__t.html">mousedata_t</a> *&nbsp;</td>
+ <td class="mdname" nowrap> <em>mousedata</em></td>
+ </tr>
+ <tr>
+ <td class="md"></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"></td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+ <table border="0" cellspacing="2" cellpadding="0">
+ <tr><td valign="top"></td><td valign="top"><em>*audiodata</em>&nbsp;</td><td>pointer to struct for setting equalizer levels. </td></tr>
+ <tr><td valign="top"></td><td valign="top"><em>*events</em>&nbsp;</td><td>pointer to struct with all events for display states. </td></tr>
+ <tr><td valign="top"></td><td valign="top"><em>*mousedata</em>&nbsp;</td><td>pointer to struct with mouse data for X and Y coordinates.</td></tr>
+ </table>
+</dl>
+<dl compact><dt><b>Returns:</b></dt><dd>Never Returns. </dd></dl>
+<dl compact><dt><b>Return values:</b></dt><dd>
+ <table border="0" cellspacing="2" cellpadding="0">
+ <tr><td valign="top"></td><td valign="top"><em>void</em>&nbsp;</td><td></td></tr>
+ </table>
+</dl>
+
+<p>
+Definition at line <a class="el" href="eventhandler_8hcc-source.html#l00059">59</a> of file <a class="el" href="eventhandler_8hcc-source.html">eventhandler.hcc</a>.
+<p>
+References <a class="el" href="eventhandler__shared_8hch-source.html#l00031">events_t::active_preset</a>, <a class="el" href="display__shared_8hch-source.html#l00075">AREA_EQUALIZER_MAX</a>, <a class="el" href="display__shared_8hch-source.html#l00074">AREA_EQUALIZER_MIN</a>, <a class="el" href="display__shared_8hch-source.html#l00051">AREA_VOLUME_YAXIS</a>, <a class="el" href="display__shared_8hch-source.html#l00055">BUTTON_DEMO</a>, <a class="el" href="display__shared_8hch-source.html#l00071">BUTTON_HELP</a>, <a class="el" href="display__shared_8hch-source.html#l00054">BUTTON_LOG</a>, <a class="el" href="display__shared_8hch-source.html#l00072">BUTTON_MODE</a>, <a class="el" href="display__shared_8hch-source.html#l00067">BUTTON_PRECISE</a>, <a class="el" href="display__shared_8hch-source.html#l00058">BUTTON_PRESET_1</a>, <a class="el" href="display__shared_8hch-source.html#l00056">BUTTON_RESET</a>, <a class="el" href="audio_8hch-source.html#l00035">audiodata_t::display_log</a>, <a class="el" href="eventhandler__shared_8hch-source.html#l00030">events_t::equalizer_display</a>, <a class="el" href="audio_8hch-source.html#l00034">audiodata_t::equalizer_levels_ptr</a>, <a class="el" href="eventhandler__shared_8hch-source.html#l00035">events_t::equalizer_mode</a>, <a class="el" href="events_8hcc-source.html#l00075">equalizer_table</a>, <a class="el" href="eventhandler__shared_8hch-source.html#l00048">EQUALIZERMODE_PRECISE</a>, <a class="el" href="events_8hcc-source.html#l00053">load_preset()</a>, <a class="el" href="eventhandler_8hch-source.html#l00025">LOAD_PRESET_DEMO</a>, <a class="el" href="eventhandler_8hch-source.html#l00024">LOAD_PRESET_RESET</a>, <a class="el" href="eventhandler__shared_8hch-source.html#l00036">events_t::locked_display</a>, <a class="el" href="eventhandler__shared_8hch-source.html#l00033">events_t::mask</a>, <a class="el" href="display_8hcc-source.html#l00048">maskupdate_notification</a>, <a class="el" href="eventhandler__shared_8hch-source.html#l00034">events_t::mode</a>, <a class="el" href="eventhandler__shared_8hch-source.html#l00042">MODE_GRAPH</a>, <a class="el" href="eventhandler__shared_8hch-source.html#l00041">MODE_HELP</a>, <a class="el" href="mouse__shared_8hch-source.html#l00048">MOUSE_STATE_DOWN</a>, <a class="el" href="mouse__shared_8hch-source.html#l00047">MOUSE_STATE_ON_PRESS</a>, <a class="el" href="display_8hcc-source.html#l00328">reload_equalizer()</a>, <a class="el" href="mouse__shared_8hch-source.html#l00029">mousedata_t::state</a>, <a class="el" href="eventhandler__shared_8hch-source.html#l00032">events_t::volume_position</a>, <a class="el" href="eventhandler_8hcc-source.html#l00315">volumecontrol_table</a>, and <a class="el" href="mouse__shared_8hch-source.html#l00028">mousedata_t::y</a>.
+<p>
+Referenced by <a class="el" href="main_8hcc-source.html#l00051">main()</a>. </td>
+ </tr>
+</table>
+
+<p>
+Here is the call graph for this function:<p><center><img src="eventhandler_8hch_a3_cgraph.png" border="0" usemap="#eventhandler_8hch_a3_cgraph_map" alt=""></center>
+<map name="eventhandler_8hch_a3_cgraph_map">
+<area href="events_8hcc.html#a3" shape="rect" coords="210,7,301,34" alt="">
+<area href="display_8hcc.html#a3" shape="rect" coords="195,58,315,85" alt="">
+</map>
+<hr size="1"><address style="align: right;"><small>Generated on Thu Dec 9 14:37:07 2004 for Graphic Equalizer 2 by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.3.9.1 </small></address>
+</body>
+</html>
diff --git a/Graphic_Equalizer_Original_Port/doc/html/eventhandler_8hch__dep__incl.map b/Graphic_Equalizer_Original_Port/doc/html/eventhandler_8hch__dep__incl.map
new file mode 100644
index 0000000..6d9ee70
--- /dev/null
+++ b/Graphic_Equalizer_Original_Port/doc/html/eventhandler_8hch__dep__incl.map
@@ -0,0 +1,3 @@
+base referer
+rect $eventhandler_8hcc.html 7,7 130,34
+rect $main_8hcc.html 154,7 229,34
diff --git a/Graphic_Equalizer_Original_Port/doc/html/eventhandler_8hch__dep__incl.md5 b/Graphic_Equalizer_Original_Port/doc/html/eventhandler_8hch__dep__incl.md5
new file mode 100644
index 0000000..af0fe6f
--- /dev/null
+++ b/Graphic_Equalizer_Original_Port/doc/html/eventhandler_8hch__dep__incl.md5
@@ -0,0 +1 @@
+53efdfb40707cc5eba57fe4915bbbf35 \ No newline at end of file
diff --git a/Graphic_Equalizer_Original_Port/doc/html/eventhandler_8hch__dep__incl.png b/Graphic_Equalizer_Original_Port/doc/html/eventhandler_8hch__dep__incl.png
new file mode 100644
index 0000000..586b7d0
--- /dev/null
+++ b/Graphic_Equalizer_Original_Port/doc/html/eventhandler_8hch__dep__incl.png
Binary files differ
diff --git a/Graphic_Equalizer_Original_Port/doc/html/eventhandler_8hch_a1_cgraph.map b/Graphic_Equalizer_Original_Port/doc/html/eventhandler_8hch_a1_cgraph.map
new file mode 100644
index 0000000..e15c770
--- /dev/null
+++ b/Graphic_Equalizer_Original_Port/doc/html/eventhandler_8hch_a1_cgraph.map
@@ -0,0 +1,3 @@
+base referer
+rect $events_8hcc.html#a2 210,7 301,34
+rect $display_8hcc.html#a4 195,58 315,85
diff --git a/Graphic_Equalizer_Original_Port/doc/html/eventhandler_8hch_a1_cgraph.md5 b/Graphic_Equalizer_Original_Port/doc/html/eventhandler_8hch_a1_cgraph.md5
new file mode 100644
index 0000000..5572015
--- /dev/null
+++ b/Graphic_Equalizer_Original_Port/doc/html/eventhandler_8hch_a1_cgraph.md5
@@ -0,0 +1 @@
+4cc99ebc2d7ee85c7be875aa4524a42e \ No newline at end of file
diff --git a/Graphic_Equalizer_Original_Port/doc/html/eventhandler_8hch_a1_cgraph.png b/Graphic_Equalizer_Original_Port/doc/html/eventhandler_8hch_a1_cgraph.png
new file mode 100644
index 0000000..d07857b
--- /dev/null
+++ b/Graphic_Equalizer_Original_Port/doc/html/eventhandler_8hch_a1_cgraph.png
Binary files differ
diff --git a/Graphic_Equalizer_Original_Port/doc/html/eventhandler_8hch_a3_cgraph.map b/Graphic_Equalizer_Original_Port/doc/html/eventhandler_8hch_a3_cgraph.map
new file mode 100644
index 0000000..def60cd
--- /dev/null
+++ b/Graphic_Equalizer_Original_Port/doc/html/eventhandler_8hch_a3_cgraph.map
@@ -0,0 +1,3 @@
+base referer
+rect $events_8hcc.html#a3 210,7 301,34
+rect $display_8hcc.html#a3 195,58 315,85
diff --git a/Graphic_Equalizer_Original_Port/doc/html/eventhandler_8hch_a3_cgraph.md5 b/Graphic_Equalizer_Original_Port/doc/html/eventhandler_8hch_a3_cgraph.md5
new file mode 100644
index 0000000..2dffa3a
--- /dev/null
+++ b/Graphic_Equalizer_Original_Port/doc/html/eventhandler_8hch_a3_cgraph.md5
@@ -0,0 +1 @@
+61d7348e8088689b8e9bef2cac7fb456 \ No newline at end of file
diff --git a/Graphic_Equalizer_Original_Port/doc/html/eventhandler_8hch_a3_cgraph.png b/Graphic_Equalizer_Original_Port/doc/html/eventhandler_8hch_a3_cgraph.png
new file mode 100644
index 0000000..d07857b
--- /dev/null
+++ b/Graphic_Equalizer_Original_Port/doc/html/eventhandler_8hch_a3_cgraph.png
Binary files differ
diff --git a/Graphic_Equalizer_Original_Port/doc/html/eventhandler__shared_8hch-source.html b/Graphic_Equalizer_Original_Port/doc/html/eventhandler__shared_8hch-source.html
new file mode 100644
index 0000000..647d39b
--- /dev/null
+++ b/Graphic_Equalizer_Original_Port/doc/html/eventhandler__shared_8hch-source.html
@@ -0,0 +1,68 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>Graphic Equalizer 2: C:/Project Marcel &amp; Oliver/Graphic_Equalizer/include/eventhandler_shared.hch Source File</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.3.9.1 -->
+<div class="qindex"><a class="qindex" href="main.html">Main&nbsp;Page</a> | <a class="qindex" href="annotated.html">Data&nbsp;Structures</a> | <a class="qindex" href="dirs.html">Directories</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="functions.html">Data&nbsp;Fields</a> | <a class="qindex" href="globals.html">Globals</a></div>
+<div class="nav">
+<a class="el" href="dir_000000.html">C:</a>&nbsp;/&nbsp;<a class="el" href="dir_000001.html">Project Marcel &amp; Oliver</a>&nbsp;/&nbsp;<a class="el" href="dir_000002.html">Graphic_Equalizer</a>&nbsp;/&nbsp;<a class="el" href="dir_000003.html">include</a></div>
+<h1>eventhandler_shared.hch</h1><a href="eventhandler__shared_8hch.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment">00001
+00019 <span class="preprocessor">#ifndef _EVENTHANDLER_SHARED_HCH</span>
+<a name="l00020"></a><a class="code" href="eventhandler__shared_8hch.html#a0">00020</a> <span class="preprocessor"></span><span class="preprocessor">#define _EVENTHANDLER_SHARED_HCH 1</span>
+00021 <span class="preprocessor"></span>
+00022
+00023
+00024 <span class="comment">/*** Data Types **********************/</span>
+00025
+00026 <span class="comment">/*</span>
+00027 <span class="comment"> * Type definition of the shared memory to be used in various processes</span>
+00028 <span class="comment"> */</span>
+<a name="l00029"></a><a class="code" href="structevents__t.html">00029</a> <span class="keyword">typedef</span> <span class="keyword">struct </span>{
+<a name="l00030"></a><a class="code" href="structevents__t.html#o0">00030</a> ram <span class="keywordtype">unsigned</span> 10 equalizer_display[128];
+<a name="l00031"></a><a class="code" href="structevents__t.html#o1">00031</a> <span class="keywordtype">unsigned</span> 10 active_preset;
+<a name="l00032"></a><a class="code" href="structevents__t.html#o2">00032</a> <span class="keywordtype">unsigned</span> 10 volume_position;
+<a name="l00033"></a><a class="code" href="structevents__t.html#o3">00033</a> <span class="keywordtype">unsigned</span> 8 mask;
+<a name="l00034"></a><a class="code" href="structevents__t.html#o4">00034</a> <span class="keywordtype">unsigned</span> 4 mode;
+<a name="l00035"></a><a class="code" href="structevents__t.html#o5">00035</a> <span class="keywordtype">unsigned</span> 4 equalizer_mode;
+<a name="l00036"></a><a class="code" href="structevents__t.html#o6">00036</a> <span class="keywordtype">unsigned</span> 1 locked_display;
+00037 } <a class="code" href="structevents__t.html">events_t</a>;
+00038
+00039
+<a name="l00040"></a><a class="code" href="eventhandler__shared_8hch.html#a1">00040</a> <span class="preprocessor">#define MODE_SKIN 0x00</span>
+<a name="l00041"></a><a class="code" href="eventhandler__shared_8hch.html#a2">00041</a> <span class="preprocessor"></span><span class="preprocessor">#define MODE_HELP 0x01</span>
+<a name="l00042"></a><a class="code" href="eventhandler__shared_8hch.html#a3">00042</a> <span class="preprocessor"></span><span class="preprocessor">#define MODE_GRAPH 0x02</span>
+00043 <span class="preprocessor"></span>
+00044
+00045
+<a name="l00046"></a><a class="code" href="eventhandler__shared_8hch.html#a4">00046</a> <span class="preprocessor">#define EQUALIZERMODE_FULL 0x05</span>
+<a name="l00047"></a><a class="code" href="eventhandler__shared_8hch.html#a5">00047</a> <span class="preprocessor"></span><span class="preprocessor">#define EQUALIZERMODE_HALF 0x03</span>
+<a name="l00048"></a><a class="code" href="eventhandler__shared_8hch.html#a6">00048</a> <span class="preprocessor"></span><span class="preprocessor">#define EQUALIZERMODE_PRECISE 0x00</span>
+00049 <span class="preprocessor"></span>
+00050
+00051 <span class="comment">/*</span>
+00052 <span class="comment"> * Volume Control lookuptable.</span>
+00053 <span class="comment"> * TODO: This table is now hardcoded. To ensure full skinability this table</span>
+00054 <span class="comment"> * should be dynamically loaded.</span>
+00055 <span class="comment"> */</span>
+00056 <span class="keyword">extern</span> <span class="keywordtype">unsigned</span> 5 <a class="code" href="eventhandler__shared_8hch.html#a7">volumecontrol_table</a>[46];
+00057
+00058 <span class="comment">/*</span>
+00059 <span class="comment"> * Equalizer lookup tables.</span>
+00060 <span class="comment"> * TODO: This table is now hardcoded. To ensure full skinability this table</span>
+00061 <span class="comment"> * should be dynamically loaded.</span>
+00062 <span class="comment"> */</span>
+00063 <span class="keyword">extern</span> <span class="keywordtype">unsigned</span> 4 <a class="code" href="eventhandler__shared_8hch.html#a8">equalizer_table</a>[640];
+00064 <span class="keyword">extern</span> <span class="keywordtype">unsigned</span> 10 <a class="code" href="eventhandler__shared_8hch.html#a9">equalizer_table_inv</a>[16];
+00065
+00066
+00067
+00068 <span class="preprocessor">#else</span>
+00069 <span class="preprocessor"></span><span class="preprocessor">#error "ERROR file eventhandler_shared.hch multiple times included"</span>
+00070 <span class="preprocessor"></span><span class="preprocessor">#endif </span><span class="comment">/* --- _EVENTHANDLER_SHARED_HCH --- */</span>
+00071
+</pre></div><hr size="1"><address style="align: right;"><small>Generated on Thu Dec 9 14:37:06 2004 for Graphic Equalizer 2 by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.3.9.1 </small></address>
+</body>
+</html>
diff --git a/Graphic_Equalizer_Original_Port/doc/html/eventhandler__shared_8hch.html b/Graphic_Equalizer_Original_Port/doc/html/eventhandler__shared_8hch.html
new file mode 100644
index 0000000..ce2041f
--- /dev/null
+++ b/Graphic_Equalizer_Original_Port/doc/html/eventhandler__shared_8hch.html
@@ -0,0 +1,334 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>Graphic Equalizer 2: C:/Project Marcel &amp; Oliver/Graphic_Equalizer/include/eventhandler_shared.hch File Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.3.9.1 -->
+<div class="qindex"><a class="qindex" href="main.html">Main&nbsp;Page</a> | <a class="qindex" href="annotated.html">Data&nbsp;Structures</a> | <a class="qindex" href="dirs.html">Directories</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="functions.html">Data&nbsp;Fields</a> | <a class="qindex" href="globals.html">Globals</a></div>
+<div class="nav">
+<a class="el" href="dir_000000.html">C:</a>&nbsp;/&nbsp;<a class="el" href="dir_000001.html">Project Marcel &amp; Oliver</a>&nbsp;/&nbsp;<a class="el" href="dir_000002.html">Graphic_Equalizer</a>&nbsp;/&nbsp;<a class="el" href="dir_000003.html">include</a></div>
+<h1>eventhandler_shared.hch File Reference</h1>
+<p>
+This graph shows which files directly or indirectly include this file:<p><center><img src="eventhandler__shared_8hch__dep__incl.png" border="0" usemap="#eventhandler_shared.hchdep_map" alt="Included by dependency graph"></center>
+<map name="eventhandler_shared.hchdep_map">
+<area href="display_8hcc.html" shape="rect" coords="8,7,96,34" alt="">
+<area href="eventhandler_8hcc.html" shape="rect" coords="120,7,242,34" alt="">
+<area href="events_8hcc.html" shape="rect" coords="266,7,352,34" alt="">
+<area href="main_8hcc.html" shape="rect" coords="376,7,450,34" alt="">
+<area href="smartmedia_8hcc.html" shape="rect" coords="474,7,592,34" alt="">
+</map>
+
+<p>
+<a href="eventhandler__shared_8hch-source.html">Go to the source code of this file.</a><table border="0" cellpadding="0" cellspacing="0">
+<tr><td></td></tr>
+<tr><td colspan="2"><br><h2>Data Structures</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structevents__t.html">events_t</a></td></tr>
+
+<tr><td colspan="2"><br><h2>Defines</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="eventhandler__shared_8hch.html#a0">_EVENTHANDLER_SHARED_HCH</a>&nbsp;&nbsp;&nbsp;1</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="eventhandler__shared_8hch.html#a1">MODE_SKIN</a>&nbsp;&nbsp;&nbsp;0x00</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="eventhandler__shared_8hch.html#a2">MODE_HELP</a>&nbsp;&nbsp;&nbsp;0x01</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="eventhandler__shared_8hch.html#a3">MODE_GRAPH</a>&nbsp;&nbsp;&nbsp;0x02</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="eventhandler__shared_8hch.html#a4">EQUALIZERMODE_FULL</a>&nbsp;&nbsp;&nbsp;0x05</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="eventhandler__shared_8hch.html#a5">EQUALIZERMODE_HALF</a>&nbsp;&nbsp;&nbsp;0x03</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="eventhandler__shared_8hch.html#a6">EQUALIZERMODE_PRECISE</a>&nbsp;&nbsp;&nbsp;0x00</td></tr>
+
+<tr><td colspan="2"><br><h2>Variables</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">unsigned&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="eventhandler__shared_8hch.html#a7">volumecontrol_table</a> [46]</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">unsigned&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="eventhandler__shared_8hch.html#a8">equalizer_table</a> [640]</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">unsigned&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="eventhandler__shared_8hch.html#a9">equalizer_table_inv</a> [16]</td></tr>
+
+</table>
+<hr><a name="_details"></a><h2>Detailed Description</h2>
+<h2><a class="anchor" name="generic">
+Graphic Equalizer API</a></h2>
+<h2><a class="anchor" name="project">
+Project information.</a></h2>
+Project Graphic Equalizer<br>
+ <dl compact><dt><b>Author:</b></dt><dd>O.M. Schinagl </dd></dl>
+<dl compact><dt><b>Date:</b></dt><dd>20041110 </dd></dl>
+<dl compact><dt><b>Version:</b></dt><dd>0.1</dd></dl>
+<h2><a class="anchor" name="copyright">
+Copyright</a></h2>
+Copyright ©2004 Koninklijke Philips Electronics N.V. All rights reserved<h2><a class="anchor" name="history">
+Change history</a></h2>
+20041110: O.M. Schinagl<br>
+ Initial version
+<p>
+Definition in file <a class="el" href="eventhandler__shared_8hch-source.html">eventhandler_shared.hch</a>.<hr><h2>Define Documentation</h2>
+<a class="anchor" name="a0" doxytag="eventhandler_shared.hch::_EVENTHANDLER_SHARED_HCH"></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top">#define _EVENTHANDLER_SHARED_HCH&nbsp;&nbsp;&nbsp;1 </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="eventhandler__shared_8hch-source.html#l00020">20</a> of file <a class="el" href="eventhandler__shared_8hch-source.html">eventhandler_shared.hch</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="a1" doxytag="eventhandler_shared.hch::MODE_SKIN"></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top">#define MODE_SKIN&nbsp;&nbsp;&nbsp;0x00 </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="eventhandler__shared_8hch-source.html#l00040">40</a> of file <a class="el" href="eventhandler__shared_8hch-source.html">eventhandler_shared.hch</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="a2" doxytag="eventhandler_shared.hch::MODE_HELP"></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top">#define MODE_HELP&nbsp;&nbsp;&nbsp;0x01 </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="eventhandler__shared_8hch-source.html#l00041">41</a> of file <a class="el" href="eventhandler__shared_8hch-source.html">eventhandler_shared.hch</a>.
+<p>
+Referenced by <a class="el" href="display_8hcc-source.html#l00065">display_main()</a>, and <a class="el" href="eventhandler_8hcc-source.html#l00059">eventhandler_main()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="a3" doxytag="eventhandler_shared.hch::MODE_GRAPH"></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top">#define MODE_GRAPH&nbsp;&nbsp;&nbsp;0x02 </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="eventhandler__shared_8hch-source.html#l00042">42</a> of file <a class="el" href="eventhandler__shared_8hch-source.html">eventhandler_shared.hch</a>.
+<p>
+Referenced by <a class="el" href="display_8hcc-source.html#l00065">display_main()</a>, and <a class="el" href="eventhandler_8hcc-source.html#l00059">eventhandler_main()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="a4" doxytag="eventhandler_shared.hch::EQUALIZERMODE_FULL"></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top">#define EQUALIZERMODE_FULL&nbsp;&nbsp;&nbsp;0x05 </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="eventhandler__shared_8hch-source.html#l00046">46</a> of file <a class="el" href="eventhandler__shared_8hch-source.html">eventhandler_shared.hch</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="a5" doxytag="eventhandler_shared.hch::EQUALIZERMODE_HALF"></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top">#define EQUALIZERMODE_HALF&nbsp;&nbsp;&nbsp;0x03 </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="eventhandler__shared_8hch-source.html#l00047">47</a> of file <a class="el" href="eventhandler__shared_8hch-source.html">eventhandler_shared.hch</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="a6" doxytag="eventhandler_shared.hch::EQUALIZERMODE_PRECISE"></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top">#define EQUALIZERMODE_PRECISE&nbsp;&nbsp;&nbsp;0x00 </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="eventhandler__shared_8hch-source.html#l00048">48</a> of file <a class="el" href="eventhandler__shared_8hch-source.html">eventhandler_shared.hch</a>.
+<p>
+Referenced by <a class="el" href="eventhandler_8hcc-source.html#l00059">eventhandler_main()</a>. </td>
+ </tr>
+</table>
+<hr><h2>Variable Documentation</h2>
+<a class="anchor" name="a7" doxytag="eventhandler_shared.hch::volumecontrol_table"></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top">unsigned <a class="el" href="eventhandler_8hcc.html#a1">volumecontrol_table</a>[46] </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="eventhandler_8hcc-source.html#l00315">315</a> of file <a class="el" href="eventhandler_8hcc-source.html">eventhandler.hcc</a>.
+<p>
+Referenced by <a class="el" href="eventhandler_8hcc-source.html#l00059">eventhandler_main()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="a8" doxytag="eventhandler_shared.hch::equalizer_table"></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top">unsigned <a class="el" href="events_8hcc.html#a1">equalizer_table</a>[640] </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="events_8hcc-source.html#l00075">75</a> of file <a class="el" href="events_8hcc-source.html">events.hcc</a>.
+<p>
+Referenced by <a class="el" href="eventhandler_8hcc-source.html#l00059">eventhandler_main()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="a9" doxytag="eventhandler_shared.hch::equalizer_table_inv"></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top">unsigned <a class="el" href="events_8hcc.html#a2">equalizer_table_inv</a>[16] </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="events_8hcc-source.html#l00076">76</a> of file <a class="el" href="events_8hcc-source.html">events.hcc</a>.
+<p>
+Referenced by <a class="el" href="display_8hcc-source.html#l00328">reload_equalizer()</a>. </td>
+ </tr>
+</table>
+<hr size="1"><address style="align: right;"><small>Generated on Thu Dec 9 14:37:07 2004 for Graphic Equalizer 2 by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.3.9.1 </small></address>
+</body>
+</html>
diff --git a/Graphic_Equalizer_Original_Port/doc/html/eventhandler__shared_8hch__dep__incl.map b/Graphic_Equalizer_Original_Port/doc/html/eventhandler__shared_8hch__dep__incl.map
new file mode 100644
index 0000000..e30c9f4
--- /dev/null
+++ b/Graphic_Equalizer_Original_Port/doc/html/eventhandler__shared_8hch__dep__incl.map
@@ -0,0 +1,6 @@
+base referer
+rect $display_8hcc.html 8,7 96,34
+rect $eventhandler_8hcc.html 120,7 242,34
+rect $events_8hcc.html 266,7 352,34
+rect $main_8hcc.html 376,7 450,34
+rect $smartmedia_8hcc.html 474,7 592,34
diff --git a/Graphic_Equalizer_Original_Port/doc/html/eventhandler__shared_8hch__dep__incl.md5 b/Graphic_Equalizer_Original_Port/doc/html/eventhandler__shared_8hch__dep__incl.md5
new file mode 100644
index 0000000..5231ffe
--- /dev/null
+++ b/Graphic_Equalizer_Original_Port/doc/html/eventhandler__shared_8hch__dep__incl.md5
@@ -0,0 +1 @@
+27ad7843295f3466cc8c70cc8c0de797 \ No newline at end of file
diff --git a/Graphic_Equalizer_Original_Port/doc/html/eventhandler__shared_8hch__dep__incl.png b/Graphic_Equalizer_Original_Port/doc/html/eventhandler__shared_8hch__dep__incl.png
new file mode 100644
index 0000000..838ca25
--- /dev/null
+++ b/Graphic_Equalizer_Original_Port/doc/html/eventhandler__shared_8hch__dep__incl.png
Binary files differ
diff --git a/Graphic_Equalizer_Original_Port/doc/html/events_8hcc-source.html b/Graphic_Equalizer_Original_Port/doc/html/events_8hcc-source.html
new file mode 100644
index 0000000..d180b4a
--- /dev/null
+++ b/Graphic_Equalizer_Original_Port/doc/html/events_8hcc-source.html
@@ -0,0 +1,60 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>Graphic Equalizer 2: C:/Project Marcel &amp; Oliver/Graphic_Equalizer/src/events.hcc Source File</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.3.9.1 -->
+<div class="qindex"><a class="qindex" href="main.html">Main&nbsp;Page</a> | <a class="qindex" href="annotated.html">Data&nbsp;Structures</a> | <a class="qindex" href="dirs.html">Directories</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="functions.html">Data&nbsp;Fields</a> | <a class="qindex" href="globals.html">Globals</a></div>
+<div class="nav">
+<a class="el" href="dir_000000.html">C:</a>&nbsp;/&nbsp;<a class="el" href="dir_000001.html">Project Marcel &amp; Oliver</a>&nbsp;/&nbsp;<a class="el" href="dir_000002.html">Graphic_Equalizer</a>&nbsp;/&nbsp;<a class="el" href="dir_000004.html">src</a></div>
+<h1>events.hcc</h1><a href="events_8hcc.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment">00001
+00022 <span class="comment">/******** System Includes *************/</span>
+00023 <span class="preprocessor">#include &lt;stdlib.hch&gt;</span>
+00024
+00025 <span class="preprocessor">#include "pal_master.hch"</span>
+00026
+00027 <span class="comment">/******** Application Includes ********/</span>
+00028 <span class="preprocessor">#include "<a class="code" href="configuration_8hch.html">configuration.hch</a>"</span>
+00029 <span class="preprocessor">#include "<a class="code" href="eventhandler__shared_8hch.html">eventhandler_shared.hch</a>"</span>
+00030 <span class="preprocessor">#include "<a class="code" href="events_8hch.html">events.hch</a>"</span>
+00031
+00032 <span class="preprocessor">#if HAVE_DEBUG</span>
+00033 <span class="preprocessor"></span><span class="preprocessor"> #include "debug.hch"</span>
+00034 <span class="preprocessor">#endif</span>
+00035 <span class="preprocessor"></span>
+00036
+<a name="l00037"></a><a class="code" href="events_8hcc.html#a0">00037</a> ram <span class="keywordtype">unsigned</span> 8 <a class="code" href="events_8hcc.html#a0">presets_default_values</a>[768] = {
+00038 <span class="preprocessor">#include "presets_hardcoded.txt"</span>
+00039 };
+00040
+00041
+00042
+<a name="l00053"></a><a class="code" href="events_8hcc.html#a3">00053</a> <span class="keywordtype">void</span> <a class="code" href="events_8hcc.html#a3">load_preset</a>(<span class="keywordtype">unsigned</span> 10 preset, <span class="keywordtype">unsigned</span> 4 *equalizer_levels_ptr) {
+00054 <span class="keywordtype">unsigned</span> 10 equalizer_index;
+00055 <span class="keywordtype">unsigned</span> 4 temp;
+00056
+00057 equalizer_index = 0;
+00058 <span class="keywordflow">while</span> (equalizer_index != 768) {
+00059 temp = <a class="code" href="events_8hcc.html#a0">presets_default_values</a>[preset +(0 @ (equalizer_index \\ 1))][7:4];
+00060 equalizer_levels_ptr[equalizer_index] = temp;
+00061 temp = <a class="code" href="events_8hcc.html#a0">presets_default_values</a>[preset +(0 @ (equalizer_index \\ 1))][3:0];
+00062 equalizer_levels_ptr[equalizer_index +1] = temp;
+00063
+00064 equalizer_index += 2;
+00065 }
+00066 } <span class="comment">/* --- load_preset() --- */</span>
+00067
+00068
+00069
+00070 <span class="comment">/*</span>
+00071 <span class="comment"> * Equalizer lookuptabes.</span>
+00072 <span class="comment"> * TODO: This table is now hardcoded. To ensure full skinability this table</span>
+00073 <span class="comment"> * should be dynamically loaded.</span>
+00074 <span class="comment"> */</span>
+<a name="l00075"></a><a class="code" href="events_8hcc.html#a1">00075</a> ram <span class="keywordtype">unsigned</span> 4 <a class="code" href="eventhandler__shared_8hch.html#a8">equalizer_table</a>[640] = {15, 15, 15, 15, 15, 14, 14, 14, 14, 13, 13, 13, 13, 12, 12, 12, 12, 11, 11, 11, 11, 10, 10, 10, 10, 9, 9, 9, 9, 8, 8, 8, 8, 7, 7, 7, 7, 6, 6, 6, 6, 5, 5, 5, 5, 4, 4, 4, 4, 3, 3, 3, 3, 2, 2, 2, 2, 1, 1, 1, 1, 0, 0, 0, 0, 0};
+<a name="l00076"></a><a class="code" href="events_8hcc.html#a2">00076</a> ram <span class="keywordtype">unsigned</span> 10 <a class="code" href="eventhandler__shared_8hch.html#a9">equalizer_table_inv</a>[16] = {446, 444, 440, 436, 432, 428, 424, 420, 416, 412, 408, 404, 400, 396, 392, 384};
+</pre></div><hr size="1"><address style="align: right;"><small>Generated on Thu Dec 9 14:37:06 2004 for Graphic Equalizer 2 by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.3.9.1 </small></address>
+</body>
+</html>
diff --git a/Graphic_Equalizer_Original_Port/doc/html/events_8hcc.html b/Graphic_Equalizer_Original_Port/doc/html/events_8hcc.html
new file mode 100644
index 0000000..b6a4870
--- /dev/null
+++ b/Graphic_Equalizer_Original_Port/doc/html/events_8hcc.html
@@ -0,0 +1,202 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>Graphic Equalizer 2: C:/Project Marcel &amp; Oliver/Graphic_Equalizer/src/events.hcc File Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.3.9.1 -->
+<div class="qindex"><a class="qindex" href="main.html">Main&nbsp;Page</a> | <a class="qindex" href="annotated.html">Data&nbsp;Structures</a> | <a class="qindex" href="dirs.html">Directories</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="functions.html">Data&nbsp;Fields</a> | <a class="qindex" href="globals.html">Globals</a></div>
+<div class="nav">
+<a class="el" href="dir_000000.html">C:</a>&nbsp;/&nbsp;<a class="el" href="dir_000001.html">Project Marcel &amp; Oliver</a>&nbsp;/&nbsp;<a class="el" href="dir_000002.html">Graphic_Equalizer</a>&nbsp;/&nbsp;<a class="el" href="dir_000004.html">src</a></div>
+<h1>events.hcc File Reference</h1><code>#include &lt;stdlib.hch&gt;</code><br>
+<code>#include "pal_master.hch"</code><br>
+<code>#include "<a class="el" href="configuration_8hch-source.html">configuration.hch</a>"</code><br>
+<code>#include "<a class="el" href="eventhandler__shared_8hch-source.html">eventhandler_shared.hch</a>"</code><br>
+<code>#include "<a class="el" href="events_8hch-source.html">events.hch</a>"</code><br>
+<code>#include "presets_hardcoded.txt"</code><br>
+
+<p>
+Include dependency graph for events.hcc:<p><center><img src="events_8hcc__incl.png" border="0" usemap="#events.hcc_map" alt="Include dependency graph"></center>
+<map name="events.hcc_map">
+<area href="configuration_8hch.html" shape="rect" coords="245,7,370,34" alt="">
+<area href="eventhandler__shared_8hch.html" shape="rect" coords="394,7,568,34" alt="">
+<area href="events_8hch.html" shape="rect" coords="592,7,677,34" alt="">
+</map>
+
+<p>
+<a href="events_8hcc-source.html">Go to the source code of this file.</a><table border="0" cellpadding="0" cellspacing="0">
+<tr><td></td></tr>
+<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="events_8hcc.html#a3">load_preset</a> (unsigned 10 preset, unsigned 4 *equalizer_levels_ptr)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">This function loads 768 4bits presets into the equalizer_levels array pointed to by equalizer_levels. <a href="#a3"></a><br></td></tr>
+<tr><td colspan="2"><br><h2>Variables</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">ram unsigned&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="events_8hcc.html#a0">presets_default_values</a> [768]</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">ram unsigned&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="events_8hcc.html#a1">equalizer_table</a> [640] = {15, 15, 15, 15, 15, 14, 14, 14, 14, 13, 13, 13, 13, 12, 12, 12, 12, 11, 11, 11, 11, 10, 10, 10, 10, 9, 9, 9, 9, 8, 8, 8, 8, 7, 7, 7, 7, 6, 6, 6, 6, 5, 5, 5, 5, 4, 4, 4, 4, 3, 3, 3, 3, 2, 2, 2, 2, 1, 1, 1, 1, 0, 0, 0, 0, 0}</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">ram unsigned&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="events_8hcc.html#a2">equalizer_table_inv</a> [16] = {446, 444, 440, 436, 432, 428, 424, 420, 416, 412, 408, 404, 400, 396, 392, 384}</td></tr>
+
+</table>
+<hr><a name="_details"></a><h2>Detailed Description</h2>
+<h2><a class="anchor" name="generic">
+Graphic Equalizer API</a></h2>
+that need to be performed.<h2><a class="anchor" name="project">
+Project information.</a></h2>
+Project Graphic Equalizer<br>
+ <dl compact><dt><b>Author:</b></dt><dd>O.M. Schinagl </dd></dl>
+<dl compact><dt><b>Date:</b></dt><dd>20041710 </dd></dl>
+<dl compact><dt><b>Version:</b></dt><dd>0.1</dd></dl>
+<h2><a class="anchor" name="copyright">
+Copyright</a></h2>
+Copyright ©2004 Koninklijke Philips Electronics N.V. All rights reserved<h2><a class="anchor" name="history">
+Change history</a></h2>
+20041710: O.M. Schinagl<br>
+ Initial version
+<p>
+Definition in file <a class="el" href="events_8hcc-source.html">events.hcc</a>.<hr><h2>Function Documentation</h2>
+<a class="anchor" name="a3" doxytag="events.hcc::load_preset"></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top">void load_preset </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">unsigned 10&nbsp;</td>
+ <td class="mdname" nowrap> <em>preset</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td class="md"></td>
+ <td class="md" nowrap>unsigned 4 *&nbsp;</td>
+ <td class="mdname" nowrap> <em>equalizer_levels_ptr</em></td>
+ </tr>
+ <tr>
+ <td class="md"></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"></td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+This function loads 768 4bits presets into the equalizer_levels array pointed to by equalizer_levels.
+<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+ <table border="0" cellspacing="2" cellpadding="0">
+ <tr><td valign="top"></td><td valign="top"><em>*equalizer_levels</em>&nbsp;</td><td>Location where to store presets loaded from blockram.</td></tr>
+ </table>
+</dl>
+<dl compact><dt><b>Returns:</b></dt><dd>void </dd></dl>
+<dl compact><dt><b>Return values:</b></dt><dd>
+ <table border="0" cellspacing="2" cellpadding="0">
+ <tr><td valign="top"></td><td valign="top"><em>void</em>&nbsp;</td><td></td></tr>
+ </table>
+</dl>
+
+<p>
+Definition at line <a class="el" href="events_8hcc-source.html#l00053">53</a> of file <a class="el" href="events_8hcc-source.html">events.hcc</a>.
+<p>
+References <a class="el" href="events_8hcc-source.html#l00037">presets_default_values</a>.
+<p>
+Referenced by <a class="el" href="eventhandler_8hcc-source.html#l00059">eventhandler_main()</a>. </td>
+ </tr>
+</table>
+<hr><h2>Variable Documentation</h2>
+<a class="anchor" name="a0" doxytag="events.hcc::presets_default_values"></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top">ram unsigned <a class="el" href="events_8hcc.html#a0">presets_default_values</a>[768] </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+<b>Initial value:</b><div class="fragment"><pre class="fragment"> {
+
+}
+</pre></div>
+<p>
+Definition at line <a class="el" href="events_8hcc-source.html#l00037">37</a> of file <a class="el" href="events_8hcc-source.html">events.hcc</a>.
+<p>
+Referenced by <a class="el" href="events_8hcc-source.html#l00053">load_preset()</a>, and <a class="el" href="smartmedia_8hcc-source.html#l00072">smartmedia_loaddata()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="a1" doxytag="events.hcc::equalizer_table"></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top">ram unsigned <a class="el" href="events_8hcc.html#a1">equalizer_table</a>[640] = {15, 15, 15, 15, 15, 14, 14, 14, 14, 13, 13, 13, 13, 12, 12, 12, 12, 11, 11, 11, 11, 10, 10, 10, 10, 9, 9, 9, 9, 8, 8, 8, 8, 7, 7, 7, 7, 6, 6, 6, 6, 5, 5, 5, 5, 4, 4, 4, 4, 3, 3, 3, 3, 2, 2, 2, 2, 1, 1, 1, 1, 0, 0, 0, 0, 0} </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="events_8hcc-source.html#l00075">75</a> of file <a class="el" href="events_8hcc-source.html">events.hcc</a>.
+<p>
+Referenced by <a class="el" href="eventhandler_8hcc-source.html#l00059">eventhandler_main()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="a2" doxytag="events.hcc::equalizer_table_inv"></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top">ram unsigned <a class="el" href="events_8hcc.html#a2">equalizer_table_inv</a>[16] = {446, 444, 440, 436, 432, 428, 424, 420, 416, 412, 408, 404, 400, 396, 392, 384} </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="events_8hcc-source.html#l00076">76</a> of file <a class="el" href="events_8hcc-source.html">events.hcc</a>.
+<p>
+Referenced by <a class="el" href="display_8hcc-source.html#l00328">reload_equalizer()</a>. </td>
+ </tr>
+</table>
+<hr size="1"><address style="align: right;"><small>Generated on Thu Dec 9 14:37:08 2004 for Graphic Equalizer 2 by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.3.9.1 </small></address>
+</body>
+</html>
diff --git a/Graphic_Equalizer_Original_Port/doc/html/events_8hcc__incl.map b/Graphic_Equalizer_Original_Port/doc/html/events_8hcc__incl.map
new file mode 100644
index 0000000..e45f3ce
--- /dev/null
+++ b/Graphic_Equalizer_Original_Port/doc/html/events_8hcc__incl.map
@@ -0,0 +1,4 @@
+base referer
+rect $configuration_8hch.html 245,7 370,34
+rect $eventhandler__shared_8hch.html 394,7 568,34
+rect $events_8hch.html 592,7 677,34
diff --git a/Graphic_Equalizer_Original_Port/doc/html/events_8hcc__incl.md5 b/Graphic_Equalizer_Original_Port/doc/html/events_8hcc__incl.md5
new file mode 100644
index 0000000..4d585b8
--- /dev/null
+++ b/Graphic_Equalizer_Original_Port/doc/html/events_8hcc__incl.md5
@@ -0,0 +1 @@
+02bd65e19ec52f3ed8fe65e35b542b88 \ No newline at end of file
diff --git a/Graphic_Equalizer_Original_Port/doc/html/events_8hcc__incl.png b/Graphic_Equalizer_Original_Port/doc/html/events_8hcc__incl.png
new file mode 100644
index 0000000..6e1fc82
--- /dev/null
+++ b/Graphic_Equalizer_Original_Port/doc/html/events_8hcc__incl.png
Binary files differ
diff --git a/Graphic_Equalizer_Original_Port/doc/html/events_8hch-source.html b/Graphic_Equalizer_Original_Port/doc/html/events_8hch-source.html
new file mode 100644
index 0000000..2845fe7
--- /dev/null
+++ b/Graphic_Equalizer_Original_Port/doc/html/events_8hch-source.html
@@ -0,0 +1,29 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>Graphic Equalizer 2: C:/Project Marcel &amp; Oliver/Graphic_Equalizer/include/events.hch Source File</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.3.9.1 -->
+<div class="qindex"><a class="qindex" href="main.html">Main&nbsp;Page</a> | <a class="qindex" href="annotated.html">Data&nbsp;Structures</a> | <a class="qindex" href="dirs.html">Directories</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="functions.html">Data&nbsp;Fields</a> | <a class="qindex" href="globals.html">Globals</a></div>
+<div class="nav">
+<a class="el" href="dir_000000.html">C:</a>&nbsp;/&nbsp;<a class="el" href="dir_000001.html">Project Marcel &amp; Oliver</a>&nbsp;/&nbsp;<a class="el" href="dir_000002.html">Graphic_Equalizer</a>&nbsp;/&nbsp;<a class="el" href="dir_000003.html">include</a></div>
+<h1>events.hch</h1><a href="events_8hch.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment">00001
+00020 <span class="preprocessor">#ifndef _EVENTS_HCH</span>
+<a name="l00021"></a><a class="code" href="events_8hch.html#a0">00021</a> <span class="preprocessor"></span><span class="preprocessor">#define _EVENTS_HCH 1</span>
+00022 <span class="preprocessor"></span>
+00023
+00024
+00025 <span class="comment">/*</span>
+00026 <span class="comment"> * This function loads 768 4bits presets into the equalizer_levels array</span>
+00027 <span class="comment"> * pointed to by equalizer_levels.</span>
+00028 <span class="comment"> */</span>
+00029 <span class="keywordtype">void</span> <a class="code" href="events_8hcc.html#a3">load_preset</a>(<span class="keywordtype">unsigned</span> 10 preset, <span class="keywordtype">unsigned</span> 4 *equalizer_levels_ptr);
+00030
+00031 <span class="preprocessor">#else</span>
+00032 <span class="preprocessor"></span><span class="preprocessor">#error "ERROR file events.hch multiple times included"</span>
+00033 <span class="preprocessor"></span><span class="preprocessor">#endif </span><span class="comment">/* --- _EVENTS_HCH --- */</span>
+</pre></div><hr size="1"><address style="align: right;"><small>Generated on Thu Dec 9 14:37:06 2004 for Graphic Equalizer 2 by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.3.9.1 </small></address>
+</body>
+</html>
diff --git a/Graphic_Equalizer_Original_Port/doc/html/events_8hch.html b/Graphic_Equalizer_Original_Port/doc/html/events_8hch.html
new file mode 100644
index 0000000..b3a2c5c
--- /dev/null
+++ b/Graphic_Equalizer_Original_Port/doc/html/events_8hch.html
@@ -0,0 +1,132 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>Graphic Equalizer 2: C:/Project Marcel &amp; Oliver/Graphic_Equalizer/include/events.hch File Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.3.9.1 -->
+<div class="qindex"><a class="qindex" href="main.html">Main&nbsp;Page</a> | <a class="qindex" href="annotated.html">Data&nbsp;Structures</a> | <a class="qindex" href="dirs.html">Directories</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="functions.html">Data&nbsp;Fields</a> | <a class="qindex" href="globals.html">Globals</a></div>
+<div class="nav">
+<a class="el" href="dir_000000.html">C:</a>&nbsp;/&nbsp;<a class="el" href="dir_000001.html">Project Marcel &amp; Oliver</a>&nbsp;/&nbsp;<a class="el" href="dir_000002.html">Graphic_Equalizer</a>&nbsp;/&nbsp;<a class="el" href="dir_000003.html">include</a></div>
+<h1>events.hch File Reference</h1>
+<p>
+This graph shows which files directly or indirectly include this file:<p><center><img src="events_8hch__dep__incl.png" border="0" usemap="#events.hchdep_map" alt="Included by dependency graph"></center>
+<map name="events.hchdep_map">
+<area href="eventhandler_8hcc.html" shape="rect" coords="8,7,130,34" alt="">
+<area href="events_8hcc.html" shape="rect" coords="154,7,240,34" alt="">
+</map>
+
+<p>
+<a href="events_8hch-source.html">Go to the source code of this file.</a><table border="0" cellpadding="0" cellspacing="0">
+<tr><td></td></tr>
+<tr><td colspan="2"><br><h2>Defines</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="events_8hch.html#a0">_EVENTS_HCH</a>&nbsp;&nbsp;&nbsp;1</td></tr>
+
+<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="events_8hch.html#a1">load_preset</a> (unsigned 10 preset, unsigned 4 *equalizer_levels_ptr)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">This function loads 768 4bits presets into the equalizer_levels array pointed to by equalizer_levels. <a href="#a1"></a><br></td></tr>
+</table>
+<hr><a name="_details"></a><h2>Detailed Description</h2>
+<h2><a class="anchor" name="generic">
+Graphic Equalizer API</a></h2>
+that need to be performed.<h2><a class="anchor" name="project">
+Project information.</a></h2>
+Project Graphic Equalizer<br>
+ <dl compact><dt><b>Author:</b></dt><dd>O.M. Schinagl </dd></dl>
+<dl compact><dt><b>Date:</b></dt><dd>20041710 </dd></dl>
+<dl compact><dt><b>Version:</b></dt><dd>0.1</dd></dl>
+<h2><a class="anchor" name="copyright">
+Copyright</a></h2>
+Copyright ©2004 Koninklijke Philips Electronics N.V. All rights reserved<h2><a class="anchor" name="history">
+Change history</a></h2>
+20041710: O.M. Schinagl<br>
+ Initial version
+<p>
+Definition in file <a class="el" href="events_8hch-source.html">events.hch</a>.<hr><h2>Define Documentation</h2>
+<a class="anchor" name="a0" doxytag="events.hch::_EVENTS_HCH"></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top">#define _EVENTS_HCH&nbsp;&nbsp;&nbsp;1 </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="events_8hch-source.html#l00021">21</a> of file <a class="el" href="events_8hch-source.html">events.hch</a>. </td>
+ </tr>
+</table>
+<hr><h2>Function Documentation</h2>
+<a class="anchor" name="a1" doxytag="events.hch::load_preset"></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top">void load_preset </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">unsigned 10&nbsp;</td>
+ <td class="mdname" nowrap> <em>preset</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td class="md"></td>
+ <td class="md" nowrap>unsigned 4 *&nbsp;</td>
+ <td class="mdname" nowrap> <em>equalizer_levels_ptr</em></td>
+ </tr>
+ <tr>
+ <td class="md"></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"></td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+This function loads 768 4bits presets into the equalizer_levels array pointed to by equalizer_levels.
+<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+ <table border="0" cellspacing="2" cellpadding="0">
+ <tr><td valign="top"></td><td valign="top"><em>*equalizer_levels</em>&nbsp;</td><td>Location where to store presets loaded from blockram.</td></tr>
+ </table>
+</dl>
+<dl compact><dt><b>Returns:</b></dt><dd>void </dd></dl>
+<dl compact><dt><b>Return values:</b></dt><dd>
+ <table border="0" cellspacing="2" cellpadding="0">
+ <tr><td valign="top"></td><td valign="top"><em>void</em>&nbsp;</td><td></td></tr>
+ </table>
+</dl>
+
+<p>
+Definition at line <a class="el" href="events_8hcc-source.html#l00053">53</a> of file <a class="el" href="events_8hcc-source.html">events.hcc</a>.
+<p>
+References <a class="el" href="events_8hcc-source.html#l00037">presets_default_values</a>.
+<p>
+Referenced by <a class="el" href="eventhandler_8hcc-source.html#l00059">eventhandler_main()</a>. </td>
+ </tr>
+</table>
+<hr size="1"><address style="align: right;"><small>Generated on Thu Dec 9 14:37:07 2004 for Graphic Equalizer 2 by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.3.9.1 </small></address>
+</body>
+</html>
diff --git a/Graphic_Equalizer_Original_Port/doc/html/events_8hch__dep__incl.map b/Graphic_Equalizer_Original_Port/doc/html/events_8hch__dep__incl.map
new file mode 100644
index 0000000..e1a4795
--- /dev/null
+++ b/Graphic_Equalizer_Original_Port/doc/html/events_8hch__dep__incl.map
@@ -0,0 +1,3 @@
+base referer
+rect $eventhandler_8hcc.html 8,7 130,34
+rect $events_8hcc.html 154,7 240,34
diff --git a/Graphic_Equalizer_Original_Port/doc/html/events_8hch__dep__incl.md5 b/Graphic_Equalizer_Original_Port/doc/html/events_8hch__dep__incl.md5
new file mode 100644
index 0000000..db0e635
--- /dev/null
+++ b/Graphic_Equalizer_Original_Port/doc/html/events_8hch__dep__incl.md5
@@ -0,0 +1 @@
+9de3b703aa96c0fd466e7058f82e3b76 \ No newline at end of file
diff --git a/Graphic_Equalizer_Original_Port/doc/html/events_8hch__dep__incl.png b/Graphic_Equalizer_Original_Port/doc/html/events_8hch__dep__incl.png
new file mode 100644
index 0000000..7b9cfa7
--- /dev/null
+++ b/Graphic_Equalizer_Original_Port/doc/html/events_8hch__dep__incl.png
Binary files differ
diff --git a/Graphic_Equalizer_Original_Port/doc/html/fft_8hcc-source.html b/Graphic_Equalizer_Original_Port/doc/html/fft_8hcc-source.html
new file mode 100644
index 0000000..d4cfdb6
--- /dev/null
+++ b/Graphic_Equalizer_Original_Port/doc/html/fft_8hcc-source.html
@@ -0,0 +1,445 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>Graphic Equalizer 2: C:/Project Marcel &amp; Oliver/Graphic_Equalizer/src/fft.hcc Source File</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.3.9.1 -->
+<div class="qindex"><a class="qindex" href="main.html">Main&nbsp;Page</a> | <a class="qindex" href="annotated.html">Data&nbsp;Structures</a> | <a class="qindex" href="dirs.html">Directories</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="functions.html">Data&nbsp;Fields</a> | <a class="qindex" href="globals.html">Globals</a></div>
+<div class="nav">
+<a class="el" href="dir_000000.html">C:</a>&nbsp;/&nbsp;<a class="el" href="dir_000001.html">Project Marcel &amp; Oliver</a>&nbsp;/&nbsp;<a class="el" href="dir_000002.html">Graphic_Equalizer</a>&nbsp;/&nbsp;<a class="el" href="dir_000004.html">src</a></div>
+<h1>fft.hcc</h1><a href="fft_8hcc.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment">00001
+00020 <span class="preprocessor">#include &lt;stdlib.hch&gt;</span>
+00021 <span class="preprocessor">#include "pal_master.hch"</span>
+00022
+00023 <span class="preprocessor">#include "<a class="code" href="audio_8hch.html">audio.hch</a>"</span>
+00024 <span class="preprocessor">#include "<a class="code" href="weights__256_8hch.html">weights_256.hch</a>"</span>
+00025 <span class="preprocessor">#include "<a class="code" href="configuration_8hch.html">configuration.hch</a>"</span>
+00026 <span class="preprocessor">#include "xilinxmult.hch"</span>
+00027 <span class="preprocessor">#include "<a class="code" href="fft_8hch.html">fft.hch</a>"</span>
+00028
+00029 <span class="preprocessor">#if HAVE_DEBUG</span>
+00030 <span class="preprocessor"></span><span class="preprocessor"> #include "debug.hch"</span>
+00031 <span class="preprocessor">#endif</span>
+00032 <span class="preprocessor"></span>
+00033 <span class="comment">/* Define two multi-port RAMs for FFT calculation; one for real and one for imaginary values</span>
+00034 <span class="comment"> * Extra block RAM settings are defined to make sure read and write actions can be performed</span>
+00035 <span class="comment"> * within one clock-cycle.</span>
+00036 <span class="comment"> * Left out extra settings on new board the clock changes TODO !!!!</span>
+00037 <span class="comment"> */</span>
+00038 <span class="preprocessor">#if HARDWARE_MULTIPLY</span>
+00039 <span class="preprocessor"></span>mpram
+00040 {
+00041 ram <span class="keywordtype">signed</span> 18 rwrite[256];
+00042 rom <span class="keywordtype">signed</span> 18 read[256];
+00043 } real with {block = <span class="stringliteral">"BlockRAM"</span><span class="comment">/*, westart=2.5, welength=1, rclkpos={1.5}, wclkpos={3}, clkpulselen=0.5*/</span>};
+00044
+00045 mpram
+00046 {
+00047 ram <span class="keywordtype">signed</span> 18 rwrite[256];
+00048 rom <span class="keywordtype">signed</span> 18 read[256];
+00049 } imaginary with {block = <span class="stringliteral">"BlockRAM"</span><span class="comment">/*, westart=2.5, welength=1, rclkpos={1.5}, wclkpos={3}, clkpulselen=0.5*/</span>};
+00050 <span class="preprocessor">#else</span>
+00051 <span class="preprocessor"></span>mpram
+00052 {
+00053 ram <span class="keywordtype">signed</span> 24 rwrite[256];
+00054 rom <span class="keywordtype">signed</span> 24 read[256];
+00055 } real with {block = <span class="stringliteral">"BlockRAM"</span><span class="comment">/*, westart=2.5, welength=1, rclkpos={1.5}, wclkpos={3}, clkpulselen=0.5*/</span>};
+00056
+00057 mpram
+00058 {
+00059 ram <span class="keywordtype">signed</span> 24 rwrite[256];
+00060 rom <span class="keywordtype">signed</span> 24 read[256];
+00061 } imaginary with {block = <span class="stringliteral">"BlockRAM"</span><span class="comment">/*, westart=2.5, welength=1, rclkpos={1.5}, wclkpos={3}, clkpulselen=0.5*/</span>};
+00062 <span class="preprocessor">#endif</span>
+00063 <span class="preprocessor"></span><span class="comment">// multiplication factors for equalizer function</span>
+<a name="l00064"></a><a class="code" href="fft_8hcc.html#a1">00064</a> ram <span class="keywordtype">signed</span> 7 <a class="code" href="fft_8hcc.html#a1">eq_settings</a>[16] = {0,2,4,7,10,13,16,19,22,26,30,35,41,48,55,63};
+00065
+00066 <span class="preprocessor">#if HARDWARE_MULTIPLY</span>
+00067 <span class="preprocessor"></span><span class="preprocessor">#define DC_COMPONENT 0</span>
+00068 <span class="preprocessor"></span><span class="preprocessor">#else</span>
+<a name="l00069"></a><a class="code" href="fft_8hcc.html#a0">00069</a> <span class="preprocessor"></span><span class="preprocessor">#define DC_COMPONENT 8470527</span>
+00070 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
+00071 <span class="preprocessor"></span>
+<a name="l00082"></a><a class="code" href="fft_8hcc.html#a2">00082</a> macro proc <a class="code" href="fft_8hcc.html#a2">multiply</a>(result, op_a, op_b)
+00083 {
+00084 <span class="preprocessor">#if HARDWARE_MULTIPLY</span>
+00085 <span class="preprocessor"></span> xilinxmult(result, op_a, adjs(op_b,18));
+00086 <span class="preprocessor">#else</span>
+00087 <span class="preprocessor"></span> result = (adjs(op_a,38))*(adjs(op_a,38));
+00088 <span class="preprocessor">#endif </span>
+00089 <span class="preprocessor"></span>}
+00090
+00091
+00092
+00093
+<a name="l00104"></a><a class="code" href="fft_8hcc.html#a3">00104</a> <span class="keywordtype">void</span> <a class="code" href="fft_8hcc.html#a3">calculate_fft</a>(<span class="keywordtype">unsigned</span> 1 select_inverse)
+00105 {
+00106 <span class="keywordtype">unsigned</span> 4 level;
+00107 <span class="keywordtype">unsigned</span> 8 point1,point2,j,f,k;
+00108 <span class="keywordtype">unsigned</span> 9 e,i;
+00109 <span class="keywordtype">signed</span> 16 weight1,weight2;
+00110 <span class="preprocessor">#if HARDWARE_MULTIPLY</span>
+00111 <span class="preprocessor"></span> <span class="keywordtype">signed</span> 18 p,q,r,t;
+00112 <span class="preprocessor">#else</span>
+00113 <span class="preprocessor"></span> <span class="keywordtype">signed</span> 24 p,q,r,t;
+00114 <span class="preprocessor">#endif</span>
+00115 <span class="preprocessor"></span> <span class="keywordtype">signed</span> a,b;
+00116
+00117 <span class="preprocessor">#if HARDWARE_MULTIPLY</span>
+00118 <span class="preprocessor"></span> <span class="comment">// Macro to provide rescaling of 36-bit result of fixed point multiply</span>
+00119 <span class="comment">// down to an 18-bit result. The range of bits selected depends on the </span>
+00120 <span class="comment">// number that represents the value of "1" in the trig function lookup</span>
+00121 <span class="comment">// tables. (Eg. for 16384 == 1, the lowest bit selected should be [14]).</span>
+00122 macro expr rescale (x) = (x[35] @ x[30:14]);
+00123 <span class="preprocessor">#else</span>
+00124 <span class="preprocessor"></span> <span class="comment">//Macro to rescale the multiply result down to a 24-bit value.</span>
+00125 macro expr rescale (x) = ((x&gt;&gt;FRACBITS)&lt;-24);
+00126 <span class="preprocessor">#endif</span>
+00127 <span class="preprocessor"></span>
+00128 <span class="keywordflow">for</span>(level=1;level&lt;=NUMBER_OF_COLUMNS;level++) <span class="comment">// count all the columns</span>
+00129 {
+00130 e=1&lt;&lt;(<a class="code" href="fft_8hch.html#a0">NUMBER_OF_COLUMNS</a>-level+1); <span class="comment">// number of points in each block in this column</span>
+00131 f=(e&gt;&gt;1)&lt;-8; <span class="comment">// number of butterflies in each block in this column</span>
+00132
+00133 <span class="keywordflow">for</span>(j=1;j&lt;=f;j++) <span class="comment">// count all the butterflies in each block</span>
+00134 {
+00135 par
+00136 {
+00137 <span class="comment">// Weight factors for real (the same for FFT and iFFT)</span>
+00138 weight1 = <a class="code" href="weights__256_8hch.html#a2">weight_re</a>[((j-1)&lt;&lt;(level-1))&lt;-7];
+00139
+00140
+00141 <span class="comment">// Weight factors for imaginary (opposite for FFT and iFFT)</span>
+00142 weight2 = (!select_inverse) ? (<a class="code" href="weights__256_8hch.html#a3">weight_im</a>[((j-1)&lt;&lt;(level-1))&lt;-7]) : -(<a class="code" href="weights__256_8hch.html#a3">weight_im</a>[((j-1)&lt;&lt;(level-1))&lt;-7]);
+00143
+00144 <span class="comment">/* ORIGINAL CODE BELOW, MODIFIED BECAUSE OF MISMATCHING OUTPUT WITH BORLAND TESTAPP</span>
+00145 <span class="comment"> weight2 = (!select_inverse) ? -(weight_im[((j-1)&lt;&lt;(level-1))&lt;-7]) : weight_im[((j-1)&lt;&lt;(level-1))&lt;-7]; </span>
+00146 <span class="comment"> */</span>
+00147
+00148
+00149
+00150 <span class="keywordflow">for</span>(i=0@j;i&lt;=NUMBER_OF_POINTS;i+=e) <span class="comment">// count all the blocks in this column</span>
+00151 { <span class="comment">// Butterfly calculation</span>
+00152 par
+00153 {
+00154 point1 = ((i&lt;-8)-1);
+00155 point2 = (((i&lt;-8)+f)-1);
+00156 }
+00157
+00158 par
+00159 {
+00160 p = (real.read[point1] &gt;&gt; 1) + (real.rwrite[point2] &gt;&gt; 1);
+00161 q = (imaginary.read[point1] &gt;&gt; 1) + (imaginary.rwrite[point2] &gt;&gt; 1);
+00162 }
+00163
+00164 par
+00165 {
+00166 r = (real.read[point1] &gt;&gt; 1) - (real.rwrite[point2] &gt;&gt; 1);
+00167 t = (imaginary.read[point1] &gt;&gt; 1) - (imaginary.rwrite[point2] &gt;&gt; 1);
+00168 }
+00169
+00170 <a class="code" href="fft_8hcc.html#a2">multiply</a>(a,r,weight1);
+00171 <a class="code" href="fft_8hcc.html#a2">multiply</a>(b,t,weight2);
+00172
+00173 par
+00174 {
+00175 real.rwrite[point2] = (rescale(a-b));
+00176 imaginary.rwrite[point1] = q;
+00177 }
+00178
+00179 <a class="code" href="fft_8hcc.html#a2">multiply</a>(a,t,weight1);
+00180 <a class="code" href="fft_8hcc.html#a2">multiply</a>(b,r,weight2);
+00181
+00182 par
+00183 {
+00184 real.rwrite[point1] = p;
+00185 imaginary.rwrite[point2] = (rescale(a+b));
+00186 }
+00187
+00188 }
+00189 }
+00190 }
+00191 }
+00192
+00193 j=1;
+00194 <span class="keywordflow">for</span>(i=1;i&lt;NUMBER_OF_POINTS;i++)
+00195 {
+00196 <span class="keywordflow">if</span>(i&lt;(0@j))
+00197 {
+00198 par
+00199 {
+00200 point1=j-1;
+00201 point2=(i-1)&lt;-8;
+00202 }
+00203 <span class="comment">/*</span>
+00204 <span class="comment"> COPYING ARRAY VALUES FROM ONE PLACE TO ANOTHER IN THE ARRAT MUST BE DONE IN </span>
+00205 <span class="comment"> 2 STEPS. FIRSTLY THE VALUES ARE COPIED TO SEPARATE VARIABLES AFTER THAT THEY</span>
+00206 <span class="comment"> ARE COPIED BACK TO THEIR NEW POSITION IN THE ARRAY. THIS MUST BE DONE TO </span>
+00207 <span class="comment"> PREVENT TIMING ISSUES FROM OCCURING.</span>
+00208 <span class="comment"> */</span>
+00209 par
+00210 {
+00211 p = real.read[point1];
+00212 q = imaginary.read[point1];
+00213 }
+00214 par
+00215 {
+00216 r = real.read[point2];
+00217 t = imaginary.read[point2];
+00218 }
+00219 par
+00220 {
+00221 real.rwrite[point1] = r;
+00222 imaginary.rwrite[point1] = t;
+00223 }
+00224 par
+00225 {
+00226 real.rwrite[point2] = p;
+00227 imaginary.rwrite[point2] = q;
+00228 }
+00229 }
+00230
+00231 k = <a class="code" href="fft_8hch.html#a1">NUMBER_OF_POINTS</a>&gt;&gt;1;
+00232
+00233
+00234 <span class="keywordflow">while</span>(k&lt;j)
+00235 {
+00236 j = j-k;
+00237 k = k&gt;&gt;1;
+00238 }
+00239
+00240 j+=k;
+00241 }
+00242
+00243 }
+00244
+00256 <span class="preprocessor">#if HARDWARE_MULTIPLY</span>
+00257 <span class="preprocessor"></span><span class="keywordtype">void</span> <a class="code" href="fft_8hcc.html#a4">perform_fft</a>(<span class="keywordtype">signed</span> 18 *pcm_audio)
+00258 #<span class="keywordflow">else</span>
+<a name="l00259"></a><a class="code" href="fft_8hcc.html#a4">00259</a> <span class="keywordtype">void</span> <a class="code" href="fft_8hcc.html#a4">perform_fft</a>(<span class="keywordtype">signed</span> 16 *pcm_audio)
+00260 #endif
+00261 {
+00262 <span class="keywordtype">unsigned</span> 8 k;
+00263 <span class="preprocessor">#if HARDWARE_MULTIPLY</span>
+00264 <span class="preprocessor"></span> <span class="keywordtype">signed</span> 18 sample;
+00265 k=0;
+00266 sample = adjs(pcm_audio[k],18);
+00267 <span class="preprocessor">#else</span>
+00268 <span class="preprocessor"></span> <span class="keywordtype">signed</span> 24 sample;
+00269 k=0;
+00270 sample = adjs(pcm_audio[k],24);
+00271 <span class="preprocessor">#endif</span>
+00272 <span class="preprocessor"></span>
+00273 <span class="comment">//initialize variables for the copying pipeline</span>
+00274
+00275
+00276 <span class="comment">// copy audio data to real-array before starting FFT calculation</span>
+00277 <span class="comment">// and set imaginary values to zero</span>
+00278 <span class="keywordflow">do</span>
+00279 {
+00280 <span class="comment">//Copying the array values has been pipelined to prevent parallel access to the</span>
+00281 <span class="comment">//pcm_audio array. This copying procedure must be finished before another </span>
+00282 <span class="comment">//sample is read from the audio input. The time available for this loop is </span>
+00283 <span class="comment">//determined by the sampling rate of 44,1 Khz</span>
+00284 par
+00285 {
+00286 <span class="comment">//COPYING NEEDS TO BE DONE IN 2 STEPS, BECAUSE THE VALUE THAT NEEDS TO WRITTEN</span>
+00287 <span class="comment">//TO THE REAL-RAM NEEDS TO BE AVAILABLE ON THE START OFF THE CLOCKCYCLE.</span>
+00288 <span class="preprocessor">#if HARDWARE_MULTIPLY</span>
+00289 <span class="preprocessor"></span> sample = adjs(pcm_audio[k+1],18);
+00290 <span class="preprocessor">#else</span>
+00291 <span class="preprocessor"></span> sample = adjs(pcm_audio[k+1],24);
+00292 <span class="preprocessor">#endif</span>
+00293 <span class="preprocessor"></span> real.rwrite[k] = sample;
+00294 imaginary.rwrite[k] = 0;
+00295 k++;
+00296 }
+00297 } <span class="keywordflow">while</span> (k);
+00298
+00299
+00300
+00301 <span class="preprocessor">#if PERFORM_FFT_CALCULATION</span>
+00302 <span class="preprocessor"></span> <a class="code" href="fft_8hcc.html#a3">calculate_fft</a>(0);
+00303 <span class="preprocessor">#endif</span>
+00304 <span class="preprocessor"></span>
+00305
+00306 }
+00307
+00321 <span class="preprocessor">#if HARDWARE_MULTIPLY</span>
+00322 <span class="preprocessor"></span><span class="keywordtype">void</span> <a class="code" href="fft_8hcc.html#a5">perform_ifft</a>(<span class="keywordtype">signed</span> 18 *modified_audio, <span class="keywordtype">unsigned</span> 6 *ifft_info)
+00323 #<span class="keywordflow">else</span>
+<a name="l00324"></a><a class="code" href="fft_8hcc.html#a5">00324</a> <span class="keywordtype">void</span> <a class="code" href="fft_8hcc.html#a5">perform_ifft</a>(<span class="keywordtype">signed</span> 16 *modified_audio, <span class="keywordtype">unsigned</span> 6 *ifft_info)
+00325 #endif
+00326 {
+00327 <span class="keywordtype">unsigned</span> 6 k;
+00328 <span class="preprocessor">#if HARDWARE_MULTIPLY </span>
+00329 <span class="preprocessor"></span> <span class="keywordtype">signed</span> 18 p;
+00330 <span class="preprocessor">#else</span>
+00331 <span class="preprocessor"></span> <span class="keywordtype">signed</span> 24 p;
+00332 <span class="preprocessor">#endif</span>
+00333 <span class="preprocessor"></span><span class="preprocessor">#if PERFORM_FFT_CALCULATION </span>
+00334 <span class="preprocessor"></span> <a class="code" href="fft_8hcc.html#a3">calculate_fft</a>(1);
+00335 <span class="preprocessor">#endif</span>
+00336 <span class="preprocessor"></span>
+00337 k=0;
+00338 <span class="comment">//initialize variables for the copying pipeline</span>
+00339 <span class="preprocessor">#if PERFORM_FFT_CALCULATION </span>
+00340 <span class="preprocessor"></span><span class="preprocessor"> #if HARDWARE_MULTIPLY </span>
+00341 <span class="preprocessor"></span> p = (real.read[(0@k)+95] &lt;&lt; NUMBER_OF_COLUMNS);
+00342 <span class="preprocessor"> #else</span>
+00343 <span class="preprocessor"></span> p = (real.read[(0@k)+95] &gt;&gt; NUMBER_OF_COLUMNS);
+00344 <span class="preprocessor"> #endif</span>
+00345 <span class="preprocessor"></span><span class="preprocessor">#else</span>
+00346 <span class="preprocessor"></span> p = (real.read[(0@k)+95]);
+00347 <span class="preprocessor">#endif</span>
+00348 <span class="preprocessor"></span>
+00349 <span class="keywordflow">do</span>
+00350 {
+00351 <span class="comment">//Copying the array values has been pipelined to prevent parallel access to the</span>
+00352 <span class="comment">//pcm_audio array. This copying procedure must be finished before another </span>
+00353 <span class="comment">//sample is read from the audio input. The time available for this loop is </span>
+00354 <span class="comment">//determined by the sampling rate of 44,1 Khz</span>
+00355 par
+00356 {
+00357 <span class="comment">/*</span>
+00358 <span class="comment"> * Before copying the modified audio from the local real-array </span>
+00359 <span class="comment"> * to the output array of the audio I/O component, compensate</span>
+00360 <span class="comment"> * for the FFT calculation by shifting the values. </span>
+00361 <span class="comment"> * 95 is added to start the output from the middle of the sliding</span>
+00362 <span class="comment"> * window, this is done to get a better sound quality.</span>
+00363 <span class="comment"> */</span>
+00364 <span class="preprocessor">#if PERFORM_FFT_CALCULATION </span>
+00365 <span class="preprocessor"></span><span class="preprocessor"> #if HARDWARE_MULTIPLY </span>
+00366 <span class="preprocessor"></span> p = (real.read[(0@k)+95] &lt;&lt; NUMBER_OF_COLUMNS);
+00367 <span class="preprocessor"> #else</span>
+00368 <span class="preprocessor"></span> p = (real.read[(0@k)+95] &gt;&gt; NUMBER_OF_COLUMNS);
+00369 <span class="preprocessor"> #endif</span>
+00370 <span class="preprocessor"></span><span class="preprocessor">#else</span>
+00371 <span class="preprocessor"></span> p = (real.read[(0@k)+95]);
+00372 <span class="preprocessor">#endif</span>
+00373 <span class="preprocessor"></span> <span class="comment">//Copy the modified audio from the local real array to the output array of the audio I/O component.</span>
+00374 <span class="preprocessor">#if HARDWARE_MULTIPLY</span>
+00375 <span class="preprocessor"></span> modified_audio[k] = p ;
+00376 <span class="preprocessor">#else</span>
+00377 <span class="preprocessor"></span> modified_audio[k] = (p&lt;-16);
+00378 <span class="preprocessor">#endif</span>
+00379 <span class="preprocessor"></span> <span class="comment">//Fill the array for displaying the waveform, only the 6 MSB are needed.</span>
+00380 ifft_info[k] = (<span class="keywordtype">unsigned</span> 6)(32+(p[17:12]));
+00381 k++;
+00382 }
+00383 } <span class="keywordflow">while</span>(k);
+00384 }
+00385
+<a name="l00398"></a><a class="code" href="fft_8hcc.html#a6">00398</a> <span class="keywordtype">void</span> <a class="code" href="fft_8hcc.html#a6">equalize_audio</a>(<a class="code" href="structaudiodata__t.html">audiodata_t</a> *audiodata)
+00399 {
+00400 <span class="preprocessor">#if HARDWARE_MULTIPLY</span>
+00401 <span class="preprocessor"></span> <span class="keywordtype">signed</span> 18 p,q;
+00402 <span class="preprocessor">#else</span>
+00403 <span class="preprocessor"></span> <span class="keywordtype">signed</span> 24 p,q;
+00404 <span class="preprocessor">#endif</span>
+00405 <span class="preprocessor"></span> <span class="keywordtype">signed</span> 18 a;
+00406 <span class="keywordtype">unsigned</span> 8 i, mirror_i, bit, m, n;
+00407 <span class="keywordtype">unsigned</span> 7 old_value;
+00408 <span class="keywordtype">unsigned</span> 9 tmp;
+00409
+00410 <span class="comment">//macro expr equalize_bar = multiply(q,a)[29:6];</span>
+00411
+00412 macro proc equalize_bar(retval)
+00413 {
+00414 <span class="keywordtype">signed</span> result;
+00415 <a class="code" href="fft_8hcc.html#a2">multiply</a>(result, q,a);
+00416 <span class="preprocessor">#if HARDWARE_MULTIPLY</span>
+00417 <span class="preprocessor"></span> retval = result[23:6]; <span class="comment">//drop last 6 bit to compensate the maximum multiplication with 64 from the eq_settings array</span>
+00418 <span class="preprocessor">#else</span>
+00419 <span class="preprocessor"></span> retval = result[29:6]; <span class="comment">//drop last 6 bit to compensate the maximum multiplication with 64 from the eq_settings array</span>
+00420 <span class="preprocessor">#endif</span>
+00421 <span class="preprocessor"></span> }
+00422
+00423 p = real.read[0] - DC_COMPONENT; <span class="comment">// remove DC component for calculations</span>
+00424 real.rwrite[0] = p;
+00425
+00426 <span class="keywordflow">for</span>(i=0;i!=NUMBER_OF_FREQUENCIES;i++)
+00427 {
+00428
+00429 <span class="comment">// set multiplication factor (0..64) for current frequency bar, The first frequency band must be equalized at 100% (63) since there is no DC-component taken into account.</span>
+00430 a = adjs(<a class="code" href="fft_8hcc.html#a1">eq_settings</a>[audiodata-&gt;<a class="code" href="structaudiodata__t.html#o0">equalizer_levels_ptr</a>[i &lt;- 7]],18);
+00431
+00432
+00433 <span class="comment">// multiply frequency with this factor and divide by 64 (drop 6 LSB's)</span>
+00434 q = real.read[i];
+00435 equalize_bar(p);
+00436 real.rwrite[i] = p;
+00437
+00438 q = imaginary.read[i];
+00439 equalize_bar(p);
+00440 imaginary.rwrite[i] = p;
+00441
+00442 <span class="comment">// the upper part(128..255) of the spectrum is mirrored to the lower part; </span>
+00443 <span class="comment">// these values need to be adjusted too</span>
+00444 <span class="keywordflow">if</span> ((i&lt;-7)!=0) <span class="comment">// if not in DC component bar</span>
+00445 {
+00446 mirror_i = (<a class="code" href="fft_8hch.html#a1">NUMBER_OF_POINTS</a>-1)-i+1;
+00447 q = real.read[mirror_i];
+00448 equalize_bar(p);
+00449 real.rwrite[mirror_i] = p;
+00450
+00451 q = imaginary.read[mirror_i];
+00452 equalize_bar(p);
+00453 imaginary.rwrite[mirror_i] = p;
+00454 }
+00455 }
+00456
+00457 <span class="comment">//write data to fft_info for display purposes</span>
+00458 <span class="keywordflow">for</span>(i=0;i&lt;NUMBER_OF_FREQUENCIES;i++)
+00459 {
+00460 p = real.read[i];
+00461 q = imaginary.read[i];
+00462 <span class="preprocessor">#if HARDWARE_MULTIPLY</span>
+00463 <span class="preprocessor"></span> <span class="keywordflow">if</span> (p[17] == 1) p = -p; <span class="keywordflow">else</span> delay;
+00464 <span class="keywordflow">if</span> (q[17] == 1) q = -q; <span class="keywordflow">else</span> delay;
+00465 <span class="preprocessor">#else</span>
+00466 <span class="preprocessor"></span> <span class="keywordflow">if</span> (p[23] == 1) p = -p; <span class="keywordflow">else</span> delay;
+00467 <span class="keywordflow">if</span> (q[23] == 1) q = -q; <span class="keywordflow">else</span> delay;
+00468 <span class="preprocessor">#endif</span>
+00469 <span class="preprocessor"></span> p = (p&lt;q) ? q : p; <span class="comment">// This is done to get the best visual frequency result</span>
+00470
+00471 <span class="keywordflow">if</span> (!audiodata-&gt;<a class="code" href="structaudiodata__t.html#o1">display_log</a>)
+00472 {
+00473
+00474 bit=126;
+00475 <span class="preprocessor">#if HARDWARE_MULTIPLY</span>
+00476 <span class="preprocessor"></span> <span class="keywordflow">while</span> ((p[15] == 0) &amp;&amp; (bit != 0))
+00477 <span class="preprocessor">#else</span>
+00478 <span class="preprocessor"></span> <span class="keywordflow">while</span> ((p[21] == 0) &amp;&amp; (bit != 0))
+00479 <span class="preprocessor">#endif</span>
+00480 <span class="preprocessor"></span> par
+00481 {
+00482 p = p&lt;&lt;1;
+00483 bit = bit - 18;
+00484 }
+00485 old_value = audiodata-&gt;fft_info.write[0 @ (i &lt;- 7)];
+00486 tmp = ((0@old_value) + (0@bit))&gt;&gt;1;
+00487 audiodata-&gt;fft_info.write[0 @ (i &lt;- 7)] = (old_value &lt;= (tmp&lt;-7)) ? (tmp&lt;-7) : old_value-1;
+00488 }
+00489 <span class="keywordflow">else</span>
+00490 {
+00491 old_value = audiodata-&gt;fft_info.write[0 @ (i &lt;- 7)];
+00492 <span class="preprocessor">#if HARDWARE_MULTIPLY</span>
+00493 <span class="preprocessor"></span> audiodata-&gt;fft_info.write[0 @ (i &lt;- 7)] = (old_value&lt;=(unsigned)(p[15:9])) ? (unsigned)(p[15:9]) : old_value-1;
+00494 <span class="preprocessor">#else</span>
+00495 <span class="preprocessor"></span> audiodata-&gt;fft_info.write[0 @ (i &lt;- 7)] = (old_value&lt;=(unsigned)(p[21:15])) ? (unsigned)(p[21:15]) : old_value-1;
+00496 <span class="preprocessor">#endif</span>
+00497 <span class="preprocessor"></span> }
+00498 }
+00499
+00500 <span class="comment">// add DC component again before inverse FFT calculation is performed</span>
+00501
+00502 p = real.read[0] + DC_COMPONENT;
+00503 real.rwrite[0] = p;
+00504 }
+00505
+</pre></div><hr size="1"><address style="align: right;"><small>Generated on Thu Dec 9 14:37:07 2004 for Graphic Equalizer 2 by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.3.9.1 </small></address>
+</body>
+</html>
diff --git a/Graphic_Equalizer_Original_Port/doc/html/fft_8hcc.html b/Graphic_Equalizer_Original_Port/doc/html/fft_8hcc.html
new file mode 100644
index 0000000..4440372
--- /dev/null
+++ b/Graphic_Equalizer_Original_Port/doc/html/fft_8hcc.html
@@ -0,0 +1,380 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>Graphic Equalizer 2: C:/Project Marcel &amp; Oliver/Graphic_Equalizer/src/fft.hcc File Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.3.9.1 -->
+<div class="qindex"><a class="qindex" href="main.html">Main&nbsp;Page</a> | <a class="qindex" href="annotated.html">Data&nbsp;Structures</a> | <a class="qindex" href="dirs.html">Directories</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="functions.html">Data&nbsp;Fields</a> | <a class="qindex" href="globals.html">Globals</a></div>
+<div class="nav">
+<a class="el" href="dir_000000.html">C:</a>&nbsp;/&nbsp;<a class="el" href="dir_000001.html">Project Marcel &amp; Oliver</a>&nbsp;/&nbsp;<a class="el" href="dir_000002.html">Graphic_Equalizer</a>&nbsp;/&nbsp;<a class="el" href="dir_000004.html">src</a></div>
+<h1>fft.hcc File Reference</h1><code>#include &lt;stdlib.hch&gt;</code><br>
+<code>#include "pal_master.hch"</code><br>
+<code>#include "<a class="el" href="audio_8hch-source.html">audio.hch</a>"</code><br>
+<code>#include "<a class="el" href="weights__256_8hch-source.html">weights_256.hch</a>"</code><br>
+<code>#include "<a class="el" href="configuration_8hch-source.html">configuration.hch</a>"</code><br>
+<code>#include "xilinxmult.hch"</code><br>
+<code>#include "<a class="el" href="fft_8hch-source.html">fft.hch</a>"</code><br>
+
+<p>
+Include dependency graph for fft.hcc:<p><center><img src="fft_8hcc__incl.png" border="0" usemap="#fft.hcc_map" alt="Include dependency graph"></center>
+<map name="fft.hcc_map">
+<area href="audio_8hch.html" shape="rect" coords="245,7,325,34" alt="">
+<area href="weights__256_8hch.html" shape="rect" coords="349,7,472,34" alt="">
+<area href="configuration_8hch.html" shape="rect" coords="496,7,621,34" alt="">
+<area href="fft_8hch.html" shape="rect" coords="773,7,832,34" alt="">
+</map>
+
+<p>
+<a href="fft_8hcc-source.html">Go to the source code of this file.</a><table border="0" cellpadding="0" cellspacing="0">
+<tr><td></td></tr>
+<tr><td colspan="2"><br><h2>Defines</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="fft_8hcc.html#a0">DC_COMPONENT</a>&nbsp;&nbsp;&nbsp;8470527</td></tr>
+
+<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">macro proc&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="fft_8hcc.html#a2">multiply</a> (result, op_a, op_b)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Procedure used for multiply-ing. <a href="#a2"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="fft_8hcc.html#a3">calculate_fft</a> (unsigned 1 select_inverse)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">This routine performs the Fast Fourier Transform for calculation of the frequency spectrum. <a href="#a3"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="fft_8hcc.html#a4">perform_fft</a> (signed 16 *pcm_audio)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="fft_8hcc.html#a5">perform_ifft</a> (signed 16 *modified_audio, unsigned 6 *ifft_info)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="fft_8hcc.html#a6">equalize_audio</a> (<a class="el" href="structaudiodata__t.html">audiodata_t</a> *audiodata)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">This routine equalizes the frequencies derived by the FFT calculation, according to the settings of the equalizer bars. <a href="#a6"></a><br></td></tr>
+<tr><td colspan="2"><br><h2>Variables</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">ram signed&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="fft_8hcc.html#a1">eq_settings</a> [16] = {0,2,4,7,10,13,16,19,22,26,30,35,41,48,55,63}</td></tr>
+
+</table>
+<hr><a name="_details"></a><h2>Detailed Description</h2>
+<h2><a class="anchor" name="generic">
+Graphic Equalizer API</a></h2>
+on the samples. Besides the FFT this module also will equalize the audio signal according to the setting made by the user.<h2><a class="anchor" name="project">
+Project information.</a></h2>
+Project Graphic Equalizer<br>
+ <dl compact><dt><b>Author:</b></dt><dd>M. Lauwerijssen </dd></dl>
+<dl compact><dt><b>Date:</b></dt><dd>20041110 </dd></dl>
+<dl compact><dt><b>Version:</b></dt><dd>0.1</dd></dl>
+<h2><a class="anchor" name="copyright">
+Copyright</a></h2>
+Copyright ©2004 Koninklijke Philips Electronics N.V. All rights reserved<h2><a class="anchor" name="history">
+Change history</a></h2>
+20041110: M. Lauwerijssen<br>
+ Initial version
+<p>
+Definition in file <a class="el" href="fft_8hcc-source.html">fft.hcc</a>.<hr><h2>Define Documentation</h2>
+<a class="anchor" name="a0" doxytag="fft.hcc::DC_COMPONENT"></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top">#define DC_COMPONENT&nbsp;&nbsp;&nbsp;8470527 </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="fft_8hcc-source.html#l00069">69</a> of file <a class="el" href="fft_8hcc-source.html">fft.hcc</a>. </td>
+ </tr>
+</table>
+<hr><h2>Function Documentation</h2>
+<a class="anchor" name="a2" doxytag="fft.hcc::multiply"></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top">macro proc multiply </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">result&nbsp;</td>
+ <td class="mdname" nowrap>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td class="md"></td>
+ <td class="md" nowrap>op_a&nbsp;</td>
+ <td class="mdname" nowrap>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td class="md"></td>
+ <td class="md" nowrap>op_b&nbsp;</td>
+ <td class="mdname" nowrap></td>
+ </tr>
+ <tr>
+ <td class="md"></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"></td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Procedure used for multiply-ing.
+<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+ <table border="0" cellspacing="2" cellpadding="0">
+ <tr><td valign="top"></td><td valign="top"><em>result</em>&nbsp;</td><td>variable containing the result of the multiply procedure </td></tr>
+ <tr><td valign="top"></td><td valign="top"><em>op_a</em>&nbsp;</td><td>integer value to be multiplied. </td></tr>
+ <tr><td valign="top"></td><td valign="top"><em>op_b</em>&nbsp;</td><td>integer value to be multiplied.</td></tr>
+ </table>
+</dl>
+<dl compact><dt><b>Returns:</b></dt><dd>Procedure returns through variable. </dd></dl>
+<dl compact><dt><b>Return values:</b></dt><dd>
+ <table border="0" cellspacing="2" cellpadding="0">
+ <tr><td valign="top"></td><td valign="top"><em>signed</em>&nbsp;</td><td>36 </td></tr>
+ </table>
+</dl>
+
+<p>
+Definition at line <a class="el" href="fft_8hcc-source.html#l00082">82</a> of file <a class="el" href="fft_8hcc-source.html">fft.hcc</a>.
+<p>
+Referenced by <a class="el" href="fft_8hcc-source.html#l00104">calculate_fft()</a>, and <a class="el" href="fft_8hcc-source.html#l00398">equalize_audio()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="a3" doxytag="fft.hcc::calculate_fft"></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top">void calculate_fft </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">unsigned 1&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>select_inverse</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap></td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+This routine performs the Fast Fourier Transform for calculation of the frequency spectrum.
+<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+ <table border="0" cellspacing="2" cellpadding="0">
+ <tr><td valign="top"></td><td valign="top"><em>select_inverse</em>&nbsp;</td><td>determines if a FFT or iFFT has to be calculated</td></tr>
+ </table>
+</dl>
+<dl compact><dt><b>Returns:</b></dt><dd>nothing </dd></dl>
+<dl compact><dt><b>Return values:</b></dt><dd>
+ <table border="0" cellspacing="2" cellpadding="0">
+ <tr><td valign="top"></td><td valign="top"><em>void</em>&nbsp;</td><td>cost 12391 cycles </td></tr>
+ </table>
+</dl>
+
+<p>
+Definition at line <a class="el" href="fft_8hcc-source.html#l00104">104</a> of file <a class="el" href="fft_8hcc-source.html">fft.hcc</a>.
+<p>
+References <a class="el" href="fft_8hcc-source.html#l00082">multiply()</a>, <a class="el" href="fft_8hch-source.html#l00001">NUMBER_OF_COLUMNS</a>, <a class="el" href="fft_8hch-source.html#l00002">NUMBER_OF_POINTS</a>, <a class="el" href="weights__256_8hch-source.html#l00135">weight_im</a>, and <a class="el" href="weights__256_8hch-source.html#l00004">weight_re</a>.
+<p>
+Referenced by <a class="el" href="fft_8hcc-source.html#l00259">perform_fft()</a>, and <a class="el" href="fft_8hcc-source.html#l00324">perform_ifft()</a>. </td>
+ </tr>
+</table>
+
+<p>
+Here is the call graph for this function:<p><center><img src="fft_8hcc_a3_cgraph.png" border="0" usemap="#fft_8hcc_a3_cgraph_map" alt=""></center>
+<map name="fft_8hcc_a3_cgraph_map">
+<area href="fft_8hcc.html#a2" shape="rect" coords="151,8,221,34" alt="">
+</map>
+<a class="anchor" name="a4" doxytag="fft.hcc::perform_fft"></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top">void perform_fft </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">signed 16 *&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>pcm_audio</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap></td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="fft_8hcc-source.html#l00259">259</a> of file <a class="el" href="fft_8hcc-source.html">fft.hcc</a>.
+<p>
+References <a class="el" href="fft_8hcc-source.html#l00104">calculate_fft()</a>. </td>
+ </tr>
+</table>
+
+<p>
+Here is the call graph for this function:<p><center><img src="fft_8hcc_a4_cgraph.png" border="0" usemap="#fft_8hcc_a4_cgraph_map" alt=""></center>
+<map name="fft_8hcc_a4_cgraph_map">
+<area href="fft_8hcc.html#a3" shape="rect" coords="145,8,238,34" alt="">
+<area href="fft_8hcc.html#a2" shape="rect" coords="287,8,357,34" alt="">
+</map>
+<a class="anchor" name="a5" doxytag="fft.hcc::perform_ifft"></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top">void perform_ifft </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">signed 16 *&nbsp;</td>
+ <td class="mdname" nowrap> <em>modified_audio</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td class="md"></td>
+ <td class="md" nowrap>unsigned 6 *&nbsp;</td>
+ <td class="mdname" nowrap> <em>ifft_info</em></td>
+ </tr>
+ <tr>
+ <td class="md"></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"></td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="fft_8hcc-source.html#l00324">324</a> of file <a class="el" href="fft_8hcc-source.html">fft.hcc</a>.
+<p>
+References <a class="el" href="fft_8hcc-source.html#l00104">calculate_fft()</a>. </td>
+ </tr>
+</table>
+
+<p>
+Here is the call graph for this function:<p><center><img src="fft_8hcc_a5_cgraph.png" border="0" usemap="#fft_8hcc_a5_cgraph_map" alt=""></center>
+<map name="fft_8hcc_a5_cgraph_map">
+<area href="fft_8hcc.html#a3" shape="rect" coords="150,8,244,34" alt="">
+<area href="fft_8hcc.html#a2" shape="rect" coords="293,8,362,34" alt="">
+</map>
+<a class="anchor" name="a6" doxytag="fft.hcc::equalize_audio"></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top">void equalize_audio </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="structaudiodata__t.html">audiodata_t</a> *&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>audiodata</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap></td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+This routine equalizes the frequencies derived by the FFT calculation, according to the settings of the equalizer bars.
+<p>
+<dl compact><dt><b>Note:</b></dt><dd>Cost: 3844 clock cycles (Maximum)</dd></dl>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+ <table border="0" cellspacing="2" cellpadding="0">
+ <tr><td valign="top"></td><td valign="top"><em>*audiodata</em>&nbsp;</td><td>pointer to the audiodata struct, containing the eq_info, etc.</td></tr>
+ </table>
+</dl>
+<dl compact><dt><b>Returns:</b></dt><dd>void </dd></dl>
+<dl compact><dt><b>Return values:</b></dt><dd>
+ <table border="0" cellspacing="2" cellpadding="0">
+ <tr><td valign="top"></td><td valign="top"><em>void</em>&nbsp;</td><td></td></tr>
+ </table>
+</dl>
+
+<p>
+Definition at line <a class="el" href="fft_8hcc-source.html#l00398">398</a> of file <a class="el" href="fft_8hcc-source.html">fft.hcc</a>.
+<p>
+References <a class="el" href="audio_8hch-source.html#l00035">audiodata_t::display_log</a>, <a class="el" href="fft_8hcc-source.html#l00064">eq_settings</a>, <a class="el" href="audio_8hch-source.html#l00034">audiodata_t::equalizer_levels_ptr</a>, <a class="el" href="fft_8hcc-source.html#l00082">multiply()</a>, and <a class="el" href="fft_8hch-source.html#l00002">NUMBER_OF_POINTS</a>. </td>
+ </tr>
+</table>
+
+<p>
+Here is the call graph for this function:<p><center><img src="fft_8hcc_a6_cgraph.png" border="0" usemap="#fft_8hcc_a6_cgraph_map" alt=""></center>
+<map name="fft_8hcc_a6_cgraph_map">
+<area href="fft_8hcc.html#a2" shape="rect" coords="167,8,237,34" alt="">
+</map>
+<hr><h2>Variable Documentation</h2>
+<a class="anchor" name="a1" doxytag="fft.hcc::eq_settings"></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top">ram signed <a class="el" href="fft_8hcc.html#a1">eq_settings</a>[16] = {0,2,4,7,10,13,16,19,22,26,30,35,41,48,55,63} </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="fft_8hcc-source.html#l00064">64</a> of file <a class="el" href="fft_8hcc-source.html">fft.hcc</a>.
+<p>
+Referenced by <a class="el" href="fft_8hcc-source.html#l00398">equalize_audio()</a>. </td>
+ </tr>
+</table>
+<hr size="1"><address style="align: right;"><small>Generated on Thu Dec 9 14:37:09 2004 for Graphic Equalizer 2 by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.3.9.1 </small></address>
+</body>
+</html>
diff --git a/Graphic_Equalizer_Original_Port/doc/html/fft_8hcc__incl.map b/Graphic_Equalizer_Original_Port/doc/html/fft_8hcc__incl.map
new file mode 100644
index 0000000..15797f7
--- /dev/null
+++ b/Graphic_Equalizer_Original_Port/doc/html/fft_8hcc__incl.map
@@ -0,0 +1,5 @@
+base referer
+rect $audio_8hch.html 245,7 325,34
+rect $weights__256_8hch.html 349,7 472,34
+rect $configuration_8hch.html 496,7 621,34
+rect $fft_8hch.html 773,7 832,34
diff --git a/Graphic_Equalizer_Original_Port/doc/html/fft_8hcc__incl.md5 b/Graphic_Equalizer_Original_Port/doc/html/fft_8hcc__incl.md5
new file mode 100644
index 0000000..2c9dae2
--- /dev/null
+++ b/Graphic_Equalizer_Original_Port/doc/html/fft_8hcc__incl.md5
@@ -0,0 +1 @@
+13348b3a575ac6358b96e7a456338526 \ No newline at end of file
diff --git a/Graphic_Equalizer_Original_Port/doc/html/fft_8hcc__incl.png b/Graphic_Equalizer_Original_Port/doc/html/fft_8hcc__incl.png
new file mode 100644
index 0000000..b142ddb
--- /dev/null
+++ b/Graphic_Equalizer_Original_Port/doc/html/fft_8hcc__incl.png
Binary files differ
diff --git a/Graphic_Equalizer_Original_Port/doc/html/fft_8hcc_a2_cgraph.map b/Graphic_Equalizer_Original_Port/doc/html/fft_8hcc_a2_cgraph.map
new file mode 100644
index 0000000..de7305e
--- /dev/null
+++ b/Graphic_Equalizer_Original_Port/doc/html/fft_8hcc_a2_cgraph.map
@@ -0,0 +1,2 @@
+base referer
+rect $fft_8hcc.html#a1 151,8 221,34
diff --git a/Graphic_Equalizer_Original_Port/doc/html/fft_8hcc_a2_cgraph.md5 b/Graphic_Equalizer_Original_Port/doc/html/fft_8hcc_a2_cgraph.md5
new file mode 100644
index 0000000..eea4b2a
--- /dev/null
+++ b/Graphic_Equalizer_Original_Port/doc/html/fft_8hcc_a2_cgraph.md5
@@ -0,0 +1 @@
+a664c98e0e50457202b8c3914d39308b \ No newline at end of file
diff --git a/Graphic_Equalizer_Original_Port/doc/html/fft_8hcc_a2_cgraph.png b/Graphic_Equalizer_Original_Port/doc/html/fft_8hcc_a2_cgraph.png
new file mode 100644
index 0000000..2f3869f
--- /dev/null
+++ b/Graphic_Equalizer_Original_Port/doc/html/fft_8hcc_a2_cgraph.png
Binary files differ
diff --git a/Graphic_Equalizer_Original_Port/doc/html/fft_8hcc_a3_cgraph.map b/Graphic_Equalizer_Original_Port/doc/html/fft_8hcc_a3_cgraph.map
new file mode 100644
index 0000000..c931a46
--- /dev/null
+++ b/Graphic_Equalizer_Original_Port/doc/html/fft_8hcc_a3_cgraph.map
@@ -0,0 +1,2 @@
+base referer
+rect $fft_8hcc.html#a2 151,8 221,34
diff --git a/Graphic_Equalizer_Original_Port/doc/html/fft_8hcc_a3_cgraph.md5 b/Graphic_Equalizer_Original_Port/doc/html/fft_8hcc_a3_cgraph.md5
new file mode 100644
index 0000000..91830d0
--- /dev/null
+++ b/Graphic_Equalizer_Original_Port/doc/html/fft_8hcc_a3_cgraph.md5
@@ -0,0 +1 @@
+60d0602022030d538bcc3068a25b97cf \ No newline at end of file
diff --git a/Graphic_Equalizer_Original_Port/doc/html/fft_8hcc_a3_cgraph.png b/Graphic_Equalizer_Original_Port/doc/html/fft_8hcc_a3_cgraph.png
new file mode 100644
index 0000000..2f3869f
--- /dev/null
+++ b/Graphic_Equalizer_Original_Port/doc/html/fft_8hcc_a3_cgraph.png
Binary files differ
diff --git a/Graphic_Equalizer_Original_Port/doc/html/fft_8hcc_a4_cgraph.map b/Graphic_Equalizer_Original_Port/doc/html/fft_8hcc_a4_cgraph.map
new file mode 100644
index 0000000..037531e
--- /dev/null
+++ b/Graphic_Equalizer_Original_Port/doc/html/fft_8hcc_a4_cgraph.map
@@ -0,0 +1,3 @@
+base referer
+rect $fft_8hcc.html#a3 145,8 238,34
+rect $fft_8hcc.html#a2 287,8 357,34
diff --git a/Graphic_Equalizer_Original_Port/doc/html/fft_8hcc_a4_cgraph.md5 b/Graphic_Equalizer_Original_Port/doc/html/fft_8hcc_a4_cgraph.md5
new file mode 100644
index 0000000..a4d85c7
--- /dev/null
+++ b/Graphic_Equalizer_Original_Port/doc/html/fft_8hcc_a4_cgraph.md5
@@ -0,0 +1 @@
+5f114e2457f864aa033edf5b807704fa \ No newline at end of file
diff --git a/Graphic_Equalizer_Original_Port/doc/html/fft_8hcc_a4_cgraph.png b/Graphic_Equalizer_Original_Port/doc/html/fft_8hcc_a4_cgraph.png
new file mode 100644
index 0000000..b2d2b15
--- /dev/null
+++ b/Graphic_Equalizer_Original_Port/doc/html/fft_8hcc_a4_cgraph.png
Binary files differ
diff --git a/Graphic_Equalizer_Original_Port/doc/html/fft_8hcc_a5_cgraph.map b/Graphic_Equalizer_Original_Port/doc/html/fft_8hcc_a5_cgraph.map
new file mode 100644
index 0000000..615e423
--- /dev/null
+++ b/Graphic_Equalizer_Original_Port/doc/html/fft_8hcc_a5_cgraph.map
@@ -0,0 +1,3 @@
+base referer
+rect $fft_8hcc.html#a3 150,8 244,34
+rect $fft_8hcc.html#a2 293,8 362,34
diff --git a/Graphic_Equalizer_Original_Port/doc/html/fft_8hcc_a5_cgraph.md5 b/Graphic_Equalizer_Original_Port/doc/html/fft_8hcc_a5_cgraph.md5
new file mode 100644
index 0000000..87668b8
--- /dev/null
+++ b/Graphic_Equalizer_Original_Port/doc/html/fft_8hcc_a5_cgraph.md5
@@ -0,0 +1 @@
+99e366a583ff5563d9b44801efa74ea1 \ No newline at end of file
diff --git a/Graphic_Equalizer_Original_Port/doc/html/fft_8hcc_a5_cgraph.png b/Graphic_Equalizer_Original_Port/doc/html/fft_8hcc_a5_cgraph.png
new file mode 100644
index 0000000..fd17c70
--- /dev/null
+++ b/Graphic_Equalizer_Original_Port/doc/html/fft_8hcc_a5_cgraph.png
Binary files differ
diff --git a/Graphic_Equalizer_Original_Port/doc/html/fft_8hcc_a6_cgraph.map b/Graphic_Equalizer_Original_Port/doc/html/fft_8hcc_a6_cgraph.map
new file mode 100644
index 0000000..ca8d210
--- /dev/null
+++ b/Graphic_Equalizer_Original_Port/doc/html/fft_8hcc_a6_cgraph.map
@@ -0,0 +1,2 @@
+base referer
+rect $fft_8hcc.html#a2 167,8 237,34
diff --git a/Graphic_Equalizer_Original_Port/doc/html/fft_8hcc_a6_cgraph.md5 b/Graphic_Equalizer_Original_Port/doc/html/fft_8hcc_a6_cgraph.md5
new file mode 100644
index 0000000..84ec6cb
--- /dev/null
+++ b/Graphic_Equalizer_Original_Port/doc/html/fft_8hcc_a6_cgraph.md5
@@ -0,0 +1 @@
+556d882357bf3e1a8c4e82d6a4d5308a \ No newline at end of file
diff --git a/Graphic_Equalizer_Original_Port/doc/html/fft_8hcc_a6_cgraph.png b/Graphic_Equalizer_Original_Port/doc/html/fft_8hcc_a6_cgraph.png
new file mode 100644
index 0000000..29c7f08
--- /dev/null
+++ b/Graphic_Equalizer_Original_Port/doc/html/fft_8hcc_a6_cgraph.png
Binary files differ
diff --git a/Graphic_Equalizer_Original_Port/doc/html/fft_8hch-source.html b/Graphic_Equalizer_Original_Port/doc/html/fft_8hch-source.html
new file mode 100644
index 0000000..c741973
--- /dev/null
+++ b/Graphic_Equalizer_Original_Port/doc/html/fft_8hch-source.html
@@ -0,0 +1,48 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>Graphic Equalizer 2: C:/Project Marcel &amp; Oliver/Graphic_Equalizer/include/fft.hch Source File</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.3.9.1 -->
+<div class="qindex"><a class="qindex" href="main.html">Main&nbsp;Page</a> | <a class="qindex" href="annotated.html">Data&nbsp;Structures</a> | <a class="qindex" href="dirs.html">Directories</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="functions.html">Data&nbsp;Fields</a> | <a class="qindex" href="globals.html">Globals</a></div>
+<div class="nav">
+<a class="el" href="dir_000000.html">C:</a>&nbsp;/&nbsp;<a class="el" href="dir_000001.html">Project Marcel &amp; Oliver</a>&nbsp;/&nbsp;<a class="el" href="dir_000002.html">Graphic_Equalizer</a>&nbsp;/&nbsp;<a class="el" href="dir_000003.html">include</a></div>
+<h1>fft.hch</h1><a href="fft_8hch.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a><a class="code" href="fft_8hch.html#a0">00001</a> <span class="preprocessor">#define NUMBER_OF_COLUMNS 8</span>
+<a name="l00002"></a><a class="code" href="fft_8hch.html#a1">00002</a> <span class="preprocessor"></span><span class="preprocessor">#define NUMBER_OF_POINTS (1&lt;&lt;NUMBER_OF_COLUMNS)</span>
+<a name="l00003"></a><a class="code" href="fft_8hch.html#a2">00003</a> <span class="preprocessor"></span><span class="preprocessor">#define NUMBER_OF_FREQUENCIES (NUMBER_OF_POINTS&gt;&gt;1)</span>
+00004 <span class="preprocessor"></span>
+00005 <span class="preprocessor">#if HARDWARE_MULTIPLY</span>
+00006 <span class="preprocessor"></span><span class="comment">/*</span>
+00007 <span class="comment"> * This routine obtains the audio data from the audio I/O component and copies this </span>
+00008 <span class="comment"> * data to local arrays for calculating purposes, and calls the FFT algorithm.</span>
+00009 <span class="comment">*/</span>
+00010 <span class="keywordtype">void</span> <a class="code" href="fft_8hcc.html#a4">perform_fft</a>(<span class="keywordtype">signed</span> 18 *pcm_audio);
+00011
+00012 <span class="comment">/* This routine calls the ifft algorithm and after completing that it obtains the </span>
+00013 <span class="comment"> * modified audio data and copies that to the output arrays of the audio I/O component. </span>
+00014 <span class="comment"> * Besides that it also fills the array used by the display routine for displaying the waveform.</span>
+00015 <span class="comment">*/</span>
+00016 <span class="keywordtype">void</span> <a class="code" href="fft_8hcc.html#a5">perform_ifft</a>(<span class="keywordtype">signed</span> 18 *modified_audio ,<span class="keywordtype">unsigned</span> 6 *ifft_info);
+00017 <span class="preprocessor">#else</span>
+00018 <span class="preprocessor"></span><span class="comment">/*</span>
+00019 <span class="comment"> * This routine obtains the audio data from the audio I/O component and copies this </span>
+00020 <span class="comment"> * data to local arrays for calculating purposes, and calls the FFT algorithm.</span>
+00021 <span class="comment">*/</span>
+00022 <span class="keywordtype">void</span> <a class="code" href="fft_8hcc.html#a4">perform_fft</a>(<span class="keywordtype">signed</span> 16 *pcm_audio);
+00023
+00024 <span class="comment">/* This routine calls the ifft algorithm and after completing that it obtains the </span>
+00025 <span class="comment"> * modified audio data and copies that to the output arrays of the audio I/O component. </span>
+00026 <span class="comment"> * Besides that it also fills the array used by the display routine for displaying the waveform.</span>
+00027 <span class="comment">*/</span>
+00028 <span class="keywordtype">void</span> <a class="code" href="fft_8hcc.html#a5">perform_ifft</a>(<span class="keywordtype">signed</span> 16 *modified_audio ,<span class="keywordtype">unsigned</span> 6 *ifft_info);
+00029 <span class="preprocessor">#endif</span>
+00030 <span class="preprocessor"></span>
+00031 <span class="comment">/* This routine equalizes the frequencies derived by the FFT calculation, </span>
+00032 <span class="comment"> * according to the settings of the equalizer bars.</span>
+00033 <span class="comment">*/</span>
+00034 <span class="keywordtype">void</span> <a class="code" href="fft_8hcc.html#a6">equalize_audio</a>(<a class="code" href="structaudiodata__t.html">audiodata_t</a> *audiodata);
+</pre></div><hr size="1"><address style="align: right;"><small>Generated on Thu Dec 9 14:37:06 2004 for Graphic Equalizer 2 by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.3.9.1 </small></address>
+</body>
+</html>
diff --git a/Graphic_Equalizer_Original_Port/doc/html/fft_8hch.html b/Graphic_Equalizer_Original_Port/doc/html/fft_8hch.html
new file mode 100644
index 0000000..850be00
--- /dev/null
+++ b/Graphic_Equalizer_Original_Port/doc/html/fft_8hch.html
@@ -0,0 +1,261 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>Graphic Equalizer 2: C:/Project Marcel &amp; Oliver/Graphic_Equalizer/include/fft.hch File Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.3.9.1 -->
+<div class="qindex"><a class="qindex" href="main.html">Main&nbsp;Page</a> | <a class="qindex" href="annotated.html">Data&nbsp;Structures</a> | <a class="qindex" href="dirs.html">Directories</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="functions.html">Data&nbsp;Fields</a> | <a class="qindex" href="globals.html">Globals</a></div>
+<div class="nav">
+<a class="el" href="dir_000000.html">C:</a>&nbsp;/&nbsp;<a class="el" href="dir_000001.html">Project Marcel &amp; Oliver</a>&nbsp;/&nbsp;<a class="el" href="dir_000002.html">Graphic_Equalizer</a>&nbsp;/&nbsp;<a class="el" href="dir_000003.html">include</a></div>
+<h1>fft.hch File Reference</h1>
+<p>
+This graph shows which files directly or indirectly include this file:<p><center><img src="fft_8hch__dep__incl.png" border="0" usemap="#fft.hchdep_map" alt="Included by dependency graph"></center>
+<map name="fft.hchdep_map">
+<area href="fft_8hcc.html" shape="rect" coords="7,7,66,34" alt="">
+<area href="main_8hcc.html" shape="rect" coords="90,7,165,34" alt="">
+</map>
+
+<p>
+<a href="fft_8hch-source.html">Go to the source code of this file.</a><table border="0" cellpadding="0" cellspacing="0">
+<tr><td></td></tr>
+<tr><td colspan="2"><br><h2>Defines</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="fft_8hch.html#a0">NUMBER_OF_COLUMNS</a>&nbsp;&nbsp;&nbsp;8</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="fft_8hch.html#a1">NUMBER_OF_POINTS</a>&nbsp;&nbsp;&nbsp;(1&lt;&lt;NUMBER_OF_COLUMNS)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="fft_8hch.html#a2">NUMBER_OF_FREQUENCIES</a>&nbsp;&nbsp;&nbsp;(NUMBER_OF_POINTS&gt;&gt;1)</td></tr>
+
+<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="fft_8hch.html#a3">perform_fft</a> (signed 16 *pcm_audio)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="fft_8hch.html#a4">perform_ifft</a> (signed 16 *modified_audio, unsigned 6 *ifft_info)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="fft_8hch.html#a5">equalize_audio</a> (<a class="el" href="structaudiodata__t.html">audiodata_t</a> *audiodata)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">This routine equalizes the frequencies derived by the FFT calculation, according to the settings of the equalizer bars. <a href="#a5"></a><br></td></tr>
+</table>
+<hr><h2>Define Documentation</h2>
+<a class="anchor" name="a0" doxytag="fft.hch::NUMBER_OF_COLUMNS"></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top">#define NUMBER_OF_COLUMNS&nbsp;&nbsp;&nbsp;8 </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="fft_8hch-source.html#l00001">1</a> of file <a class="el" href="fft_8hch-source.html">fft.hch</a>.
+<p>
+Referenced by <a class="el" href="fft_8hcc-source.html#l00104">calculate_fft()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="a1" doxytag="fft.hch::NUMBER_OF_POINTS"></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top">#define NUMBER_OF_POINTS&nbsp;&nbsp;&nbsp;(1&lt;&lt;NUMBER_OF_COLUMNS) </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="fft_8hch-source.html#l00002">2</a> of file <a class="el" href="fft_8hch-source.html">fft.hch</a>.
+<p>
+Referenced by <a class="el" href="fft_8hcc-source.html#l00104">calculate_fft()</a>, and <a class="el" href="fft_8hcc-source.html#l00398">equalize_audio()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="a2" doxytag="fft.hch::NUMBER_OF_FREQUENCIES"></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top">#define NUMBER_OF_FREQUENCIES&nbsp;&nbsp;&nbsp;(NUMBER_OF_POINTS&gt;&gt;1) </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="fft_8hch-source.html#l00003">3</a> of file <a class="el" href="fft_8hch-source.html">fft.hch</a>. </td>
+ </tr>
+</table>
+<hr><h2>Function Documentation</h2>
+<a class="anchor" name="a3" doxytag="fft.hch::perform_fft"></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top">void perform_fft </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">signed 16 *&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>pcm_audio</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap></td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="fft_8hcc-source.html#l00259">259</a> of file <a class="el" href="fft_8hcc-source.html">fft.hcc</a>.
+<p>
+References <a class="el" href="fft_8hcc-source.html#l00104">calculate_fft()</a>. </td>
+ </tr>
+</table>
+
+<p>
+Here is the call graph for this function:<p><center><img src="fft_8hch_a3_cgraph.png" border="0" usemap="#fft_8hch_a3_cgraph_map" alt=""></center>
+<map name="fft_8hch_a3_cgraph_map">
+<area href="fft_8hcc.html#a3" shape="rect" coords="145,8,238,34" alt="">
+<area href="fft_8hcc.html#a2" shape="rect" coords="287,8,357,34" alt="">
+</map>
+<a class="anchor" name="a4" doxytag="fft.hch::perform_ifft"></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top">void perform_ifft </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">signed 16 *&nbsp;</td>
+ <td class="mdname" nowrap> <em>modified_audio</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td class="md"></td>
+ <td class="md" nowrap>unsigned 6 *&nbsp;</td>
+ <td class="mdname" nowrap> <em>ifft_info</em></td>
+ </tr>
+ <tr>
+ <td class="md"></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"></td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="fft_8hcc-source.html#l00324">324</a> of file <a class="el" href="fft_8hcc-source.html">fft.hcc</a>.
+<p>
+References <a class="el" href="fft_8hcc-source.html#l00104">calculate_fft()</a>. </td>
+ </tr>
+</table>
+
+<p>
+Here is the call graph for this function:<p><center><img src="fft_8hch_a4_cgraph.png" border="0" usemap="#fft_8hch_a4_cgraph_map" alt=""></center>
+<map name="fft_8hch_a4_cgraph_map">
+<area href="fft_8hcc.html#a3" shape="rect" coords="150,8,244,34" alt="">
+<area href="fft_8hcc.html#a2" shape="rect" coords="293,8,362,34" alt="">
+</map>
+<a class="anchor" name="a5" doxytag="fft.hch::equalize_audio"></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top">void equalize_audio </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="structaudiodata__t.html">audiodata_t</a> *&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>audiodata</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap></td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+This routine equalizes the frequencies derived by the FFT calculation, according to the settings of the equalizer bars.
+<p>
+<dl compact><dt><b>Note:</b></dt><dd>Cost: 3844 clock cycles (Maximum)</dd></dl>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+ <table border="0" cellspacing="2" cellpadding="0">
+ <tr><td valign="top"></td><td valign="top"><em>*audiodata</em>&nbsp;</td><td>pointer to the audiodata struct, containing the eq_info, etc.</td></tr>
+ </table>
+</dl>
+<dl compact><dt><b>Returns:</b></dt><dd>void </dd></dl>
+<dl compact><dt><b>Return values:</b></dt><dd>
+ <table border="0" cellspacing="2" cellpadding="0">
+ <tr><td valign="top"></td><td valign="top"><em>void</em>&nbsp;</td><td></td></tr>
+ </table>
+</dl>
+
+<p>
+Definition at line <a class="el" href="fft_8hcc-source.html#l00398">398</a> of file <a class="el" href="fft_8hcc-source.html">fft.hcc</a>.
+<p>
+References <a class="el" href="audio_8hch-source.html#l00035">audiodata_t::display_log</a>, <a class="el" href="fft_8hcc-source.html#l00064">eq_settings</a>, <a class="el" href="audio_8hch-source.html#l00034">audiodata_t::equalizer_levels_ptr</a>, <a class="el" href="fft_8hcc-source.html#l00082">multiply()</a>, and <a class="el" href="fft_8hch-source.html#l00002">NUMBER_OF_POINTS</a>. </td>
+ </tr>
+</table>
+
+<p>
+Here is the call graph for this function:<p><center><img src="fft_8hch_a5_cgraph.png" border="0" usemap="#fft_8hch_a5_cgraph_map" alt=""></center>
+<map name="fft_8hch_a5_cgraph_map">
+<area href="fft_8hcc.html#a2" shape="rect" coords="167,8,237,34" alt="">
+</map>
+<hr size="1"><address style="align: right;"><small>Generated on Thu Dec 9 14:37:08 2004 for Graphic Equalizer 2 by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.3.9.1 </small></address>
+</body>
+</html>
diff --git a/Graphic_Equalizer_Original_Port/doc/html/fft_8hch__dep__incl.map b/Graphic_Equalizer_Original_Port/doc/html/fft_8hch__dep__incl.map
new file mode 100644
index 0000000..8e0f55e
--- /dev/null
+++ b/Graphic_Equalizer_Original_Port/doc/html/fft_8hch__dep__incl.map
@@ -0,0 +1,3 @@
+base referer
+rect $fft_8hcc.html 7,7 66,34
+rect $main_8hcc.html 90,7 165,34
diff --git a/Graphic_Equalizer_Original_Port/doc/html/fft_8hch__dep__incl.md5 b/Graphic_Equalizer_Original_Port/doc/html/fft_8hch__dep__incl.md5
new file mode 100644
index 0000000..bdbfb74
--- /dev/null
+++ b/Graphic_Equalizer_Original_Port/doc/html/fft_8hch__dep__incl.md5
@@ -0,0 +1 @@
+6bb05a468f78b02050527b66e74f1b34 \ No newline at end of file
diff --git a/Graphic_Equalizer_Original_Port/doc/html/fft_8hch__dep__incl.png b/Graphic_Equalizer_Original_Port/doc/html/fft_8hch__dep__incl.png
new file mode 100644
index 0000000..9e82038
--- /dev/null
+++ b/Graphic_Equalizer_Original_Port/doc/html/fft_8hch__dep__incl.png
Binary files differ
diff --git a/Graphic_Equalizer_Original_Port/doc/html/fft_8hch_a3_cgraph.map b/Graphic_Equalizer_Original_Port/doc/html/fft_8hch_a3_cgraph.map
new file mode 100644
index 0000000..037531e
--- /dev/null
+++ b/Graphic_Equalizer_Original_Port/doc/html/fft_8hch_a3_cgraph.map
@@ -0,0 +1,3 @@
+base referer
+rect $fft_8hcc.html#a3 145,8 238,34
+rect $fft_8hcc.html#a2 287,8 357,34
diff --git a/Graphic_Equalizer_Original_Port/doc/html/fft_8hch_a3_cgraph.md5 b/Graphic_Equalizer_Original_Port/doc/html/fft_8hch_a3_cgraph.md5
new file mode 100644
index 0000000..a4d85c7
--- /dev/null
+++ b/Graphic_Equalizer_Original_Port/doc/html/fft_8hch_a3_cgraph.md5
@@ -0,0 +1 @@
+5f114e2457f864aa033edf5b807704fa \ No newline at end of file
diff --git a/Graphic_Equalizer_Original_Port/doc/html/fft_8hch_a3_cgraph.png b/Graphic_Equalizer_Original_Port/doc/html/fft_8hch_a3_cgraph.png
new file mode 100644
index 0000000..b2d2b15
--- /dev/null
+++ b/Graphic_Equalizer_Original_Port/doc/html/fft_8hch_a3_cgraph.png
Binary files differ
diff --git a/Graphic_Equalizer_Original_Port/doc/html/fft_8hch_a4_cgraph.map b/Graphic_Equalizer_Original_Port/doc/html/fft_8hch_a4_cgraph.map
new file mode 100644
index 0000000..615e423
--- /dev/null
+++ b/Graphic_Equalizer_Original_Port/doc/html/fft_8hch_a4_cgraph.map
@@ -0,0 +1,3 @@
+base referer
+rect $fft_8hcc.html#a3 150,8 244,34
+rect $fft_8hcc.html#a2 293,8 362,34
diff --git a/Graphic_Equalizer_Original_Port/doc/html/fft_8hch_a4_cgraph.md5 b/Graphic_Equalizer_Original_Port/doc/html/fft_8hch_a4_cgraph.md5
new file mode 100644
index 0000000..87668b8
--- /dev/null
+++ b/Graphic_Equalizer_Original_Port/doc/html/fft_8hch_a4_cgraph.md5
@@ -0,0 +1 @@
+99e366a583ff5563d9b44801efa74ea1 \ No newline at end of file
diff --git a/Graphic_Equalizer_Original_Port/doc/html/fft_8hch_a4_cgraph.png b/Graphic_Equalizer_Original_Port/doc/html/fft_8hch_a4_cgraph.png
new file mode 100644
index 0000000..fd17c70
--- /dev/null
+++ b/Graphic_Equalizer_Original_Port/doc/html/fft_8hch_a4_cgraph.png
Binary files differ
diff --git a/Graphic_Equalizer_Original_Port/doc/html/fft_8hch_a5_cgraph.map b/Graphic_Equalizer_Original_Port/doc/html/fft_8hch_a5_cgraph.map
new file mode 100644
index 0000000..ca8d210
--- /dev/null
+++ b/Graphic_Equalizer_Original_Port/doc/html/fft_8hch_a5_cgraph.map
@@ -0,0 +1,2 @@
+base referer
+rect $fft_8hcc.html#a2 167,8 237,34
diff --git a/Graphic_Equalizer_Original_Port/doc/html/fft_8hch_a5_cgraph.md5 b/Graphic_Equalizer_Original_Port/doc/html/fft_8hch_a5_cgraph.md5
new file mode 100644
index 0000000..84ec6cb
--- /dev/null
+++ b/Graphic_Equalizer_Original_Port/doc/html/fft_8hch_a5_cgraph.md5
@@ -0,0 +1 @@
+556d882357bf3e1a8c4e82d6a4d5308a \ No newline at end of file
diff --git a/Graphic_Equalizer_Original_Port/doc/html/fft_8hch_a5_cgraph.png b/Graphic_Equalizer_Original_Port/doc/html/fft_8hch_a5_cgraph.png
new file mode 100644
index 0000000..29c7f08
--- /dev/null
+++ b/Graphic_Equalizer_Original_Port/doc/html/fft_8hch_a5_cgraph.png
Binary files differ
diff --git a/Graphic_Equalizer_Original_Port/doc/html/files.html b/Graphic_Equalizer_Original_Port/doc/html/files.html
new file mode 100644
index 0000000..d24e5c6
--- /dev/null
+++ b/Graphic_Equalizer_Original_Port/doc/html/files.html
@@ -0,0 +1,37 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>Graphic Equalizer 2: File Index</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.3.9.1 -->
+<div class="qindex"><a class="qindex" href="main.html">Main&nbsp;Page</a> | <a class="qindex" href="annotated.html">Data&nbsp;Structures</a> | <a class="qindex" href="dirs.html">Directories</a> | <a class="qindexHL" href="files.html">File&nbsp;List</a> | <a class="qindex" href="functions.html">Data&nbsp;Fields</a> | <a class="qindex" href="globals.html">Globals</a></div>
+<h1>Graphic Equalizer 2 File List</h1>Here is a list of all files with brief descriptions:<table>
+ <tr><td class="indexkey">C:/Project Marcel &amp; Oliver/Graphic_Equalizer/include/<a class="el" href="audio_8hch.html">audio.hch</a> <a href="audio_8hch-source.html">[code]</a></td><td class="indexvalue"></td></tr>
+ <tr><td class="indexkey">C:/Project Marcel &amp; Oliver/Graphic_Equalizer/include/<a class="el" href="configuration_8hch.html">configuration.hch</a> <a href="configuration_8hch-source.html">[code]</a></td><td class="indexvalue"></td></tr>
+ <tr><td class="indexkey">C:/Project Marcel &amp; Oliver/Graphic_Equalizer/include/<a class="el" href="display_8hch.html">display.hch</a> <a href="display_8hch-source.html">[code]</a></td><td class="indexvalue"></td></tr>
+ <tr><td class="indexkey">C:/Project Marcel &amp; Oliver/Graphic_Equalizer/include/<a class="el" href="display__shared_8hch.html">display_shared.hch</a> <a href="display__shared_8hch-source.html">[code]</a></td><td class="indexvalue">Datastructures and defines for usage when interacting with the display library </td></tr>
+ <tr><td class="indexkey">C:/Project Marcel &amp; Oliver/Graphic_Equalizer/include/<a class="el" href="eventhandler_8hch.html">eventhandler.hch</a> <a href="eventhandler_8hch-source.html">[code]</a></td><td class="indexvalue"></td></tr>
+ <tr><td class="indexkey">C:/Project Marcel &amp; Oliver/Graphic_Equalizer/include/<a class="el" href="eventhandler__shared_8hch.html">eventhandler_shared.hch</a> <a href="eventhandler__shared_8hch-source.html">[code]</a></td><td class="indexvalue"></td></tr>
+ <tr><td class="indexkey">C:/Project Marcel &amp; Oliver/Graphic_Equalizer/include/<a class="el" href="events_8hch.html">events.hch</a> <a href="events_8hch-source.html">[code]</a></td><td class="indexvalue"></td></tr>
+ <tr><td class="indexkey">C:/Project Marcel &amp; Oliver/Graphic_Equalizer/include/<a class="el" href="fft_8hch.html">fft.hch</a> <a href="fft_8hch-source.html">[code]</a></td><td class="indexvalue"></td></tr>
+ <tr><td class="indexkey">C:/Project Marcel &amp; Oliver/Graphic_Equalizer/include/<a class="el" href="mouse_8hch.html">mouse.hch</a> <a href="mouse_8hch-source.html">[code]</a></td><td class="indexvalue"></td></tr>
+ <tr><td class="indexkey">C:/Project Marcel &amp; Oliver/Graphic_Equalizer/include/<a class="el" href="mouse__shared_8hch.html">mouse_shared.hch</a> <a href="mouse__shared_8hch-source.html">[code]</a></td><td class="indexvalue"></td></tr>
+ <tr><td class="indexkey">C:/Project Marcel &amp; Oliver/Graphic_Equalizer/include/<a class="el" href="runfft_8hch.html">runfft.hch</a> <a href="runfft_8hch-source.html">[code]</a></td><td class="indexvalue"></td></tr>
+ <tr><td class="indexkey">C:/Project Marcel &amp; Oliver/Graphic_Equalizer/include/<a class="el" href="smartmedia_8hch.html">smartmedia.hch</a> <a href="smartmedia_8hch-source.html">[code]</a></td><td class="indexvalue"></td></tr>
+ <tr><td class="indexkey">C:/Project Marcel &amp; Oliver/Graphic_Equalizer/include/<a class="el" href="smartmedia__shared_8hch.html">smartmedia_shared.hch</a> <a href="smartmedia__shared_8hch-source.html">[code]</a></td><td class="indexvalue"></td></tr>
+ <tr><td class="indexkey">C:/Project Marcel &amp; Oliver/Graphic_Equalizer/include/<a class="el" href="weights__256_8hch.html">weights_256.hch</a> <a href="weights__256_8hch-source.html">[code]</a></td><td class="indexvalue"></td></tr>
+ <tr><td class="indexkey">C:/Project Marcel &amp; Oliver/Graphic_Equalizer/src/<a class="el" href="audio_8hcc.html">audio.hcc</a> <a href="audio_8hcc-source.html">[code]</a></td><td class="indexvalue"></td></tr>
+ <tr><td class="indexkey">C:/Project Marcel &amp; Oliver/Graphic_Equalizer/src/<a class="el" href="display_8hcc.html">display.hcc</a> <a href="display_8hcc-source.html">[code]</a></td><td class="indexvalue"></td></tr>
+ <tr><td class="indexkey">C:/Project Marcel &amp; Oliver/Graphic_Equalizer/src/<a class="el" href="eventhandler_8hcc.html">eventhandler.hcc</a> <a href="eventhandler_8hcc-source.html">[code]</a></td><td class="indexvalue"></td></tr>
+ <tr><td class="indexkey">C:/Project Marcel &amp; Oliver/Graphic_Equalizer/src/<a class="el" href="events_8hcc.html">events.hcc</a> <a href="events_8hcc-source.html">[code]</a></td><td class="indexvalue"></td></tr>
+ <tr><td class="indexkey">C:/Project Marcel &amp; Oliver/Graphic_Equalizer/src/<a class="el" href="fft_8hcc.html">fft.hcc</a> <a href="fft_8hcc-source.html">[code]</a></td><td class="indexvalue"></td></tr>
+ <tr><td class="indexkey">C:/Project Marcel &amp; Oliver/Graphic_Equalizer/src/<a class="el" href="main_8hcc.html">main.hcc</a> <a href="main_8hcc-source.html">[code]</a></td><td class="indexvalue"></td></tr>
+ <tr><td class="indexkey">C:/Project Marcel &amp; Oliver/Graphic_Equalizer/src/<a class="el" href="mouse_8hcc.html">mouse.hcc</a> <a href="mouse_8hcc-source.html">[code]</a></td><td class="indexvalue"></td></tr>
+ <tr><td class="indexkey">C:/Project Marcel &amp; Oliver/Graphic_Equalizer/src/<a class="el" href="runfft_8hcc.html">runfft.hcc</a> <a href="runfft_8hcc-source.html">[code]</a></td><td class="indexvalue"></td></tr>
+ <tr><td class="indexkey">C:/Project Marcel &amp; Oliver/Graphic_Equalizer/src/<a class="el" href="smartmedia_8hcc.html">smartmedia.hcc</a> <a href="smartmedia_8hcc-source.html">[code]</a></td><td class="indexvalue"></td></tr>
+</table>
+<hr size="1"><address style="align: right;"><small>Generated on Thu Dec 9 14:37:05 2004 for Graphic Equalizer 2 by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.3.9.1 </small></address>
+</body>
+</html>
diff --git a/Graphic_Equalizer_Original_Port/doc/html/ftv2blank.png b/Graphic_Equalizer_Original_Port/doc/html/ftv2blank.png
new file mode 100644
index 0000000..493c3c0
--- /dev/null
+++ b/Graphic_Equalizer_Original_Port/doc/html/ftv2blank.png
Binary files differ
diff --git a/Graphic_Equalizer_Original_Port/doc/html/ftv2doc.png b/Graphic_Equalizer_Original_Port/doc/html/ftv2doc.png
new file mode 100644
index 0000000..f72999f
--- /dev/null
+++ b/Graphic_Equalizer_Original_Port/doc/html/ftv2doc.png
Binary files differ
diff --git a/Graphic_Equalizer_Original_Port/doc/html/ftv2folderclosed.png b/Graphic_Equalizer_Original_Port/doc/html/ftv2folderclosed.png
new file mode 100644
index 0000000..d6d0634
--- /dev/null
+++ b/Graphic_Equalizer_Original_Port/doc/html/ftv2folderclosed.png
Binary files differ
diff --git a/Graphic_Equalizer_Original_Port/doc/html/ftv2folderopen.png b/Graphic_Equalizer_Original_Port/doc/html/ftv2folderopen.png
new file mode 100644
index 0000000..bbe2c91
--- /dev/null
+++ b/Graphic_Equalizer_Original_Port/doc/html/ftv2folderopen.png
Binary files differ
diff --git a/Graphic_Equalizer_Original_Port/doc/html/ftv2lastnode.png b/Graphic_Equalizer_Original_Port/doc/html/ftv2lastnode.png
new file mode 100644
index 0000000..e7b9ba9
--- /dev/null
+++ b/Graphic_Equalizer_Original_Port/doc/html/ftv2lastnode.png
Binary files differ
diff --git a/Graphic_Equalizer_Original_Port/doc/html/ftv2link.png b/Graphic_Equalizer_Original_Port/doc/html/ftv2link.png
new file mode 100644
index 0000000..14f3fed
--- /dev/null
+++ b/Graphic_Equalizer_Original_Port/doc/html/ftv2link.png
Binary files differ
diff --git a/Graphic_Equalizer_Original_Port/doc/html/ftv2mlastnode.png b/Graphic_Equalizer_Original_Port/doc/html/ftv2mlastnode.png
new file mode 100644
index 0000000..09ceb6a
--- /dev/null
+++ b/Graphic_Equalizer_Original_Port/doc/html/ftv2mlastnode.png
Binary files differ
diff --git a/Graphic_Equalizer_Original_Port/doc/html/ftv2mnode.png b/Graphic_Equalizer_Original_Port/doc/html/ftv2mnode.png
new file mode 100644
index 0000000..3254c05
--- /dev/null
+++ b/Graphic_Equalizer_Original_Port/doc/html/ftv2mnode.png
Binary files differ
diff --git a/Graphic_Equalizer_Original_Port/doc/html/ftv2node.png b/Graphic_Equalizer_Original_Port/doc/html/ftv2node.png
new file mode 100644
index 0000000..c9f06a5
--- /dev/null
+++ b/Graphic_Equalizer_Original_Port/doc/html/ftv2node.png
Binary files differ
diff --git a/Graphic_Equalizer_Original_Port/doc/html/ftv2plastnode.png b/Graphic_Equalizer_Original_Port/doc/html/ftv2plastnode.png
new file mode 100644
index 0000000..0b07e00
--- /dev/null
+++ b/Graphic_Equalizer_Original_Port/doc/html/ftv2plastnode.png
Binary files differ
diff --git a/Graphic_Equalizer_Original_Port/doc/html/ftv2pnode.png b/Graphic_Equalizer_Original_Port/doc/html/ftv2pnode.png
new file mode 100644
index 0000000..2001b79
--- /dev/null
+++ b/Graphic_Equalizer_Original_Port/doc/html/ftv2pnode.png
Binary files differ
diff --git a/Graphic_Equalizer_Original_Port/doc/html/ftv2vertline.png b/Graphic_Equalizer_Original_Port/doc/html/ftv2vertline.png
new file mode 100644
index 0000000..b330f3a
--- /dev/null
+++ b/Graphic_Equalizer_Original_Port/doc/html/ftv2vertline.png
Binary files differ
diff --git a/Graphic_Equalizer_Original_Port/doc/html/functions.html b/Graphic_Equalizer_Original_Port/doc/html/functions.html
new file mode 100644
index 0000000..2ba7edc
--- /dev/null
+++ b/Graphic_Equalizer_Original_Port/doc/html/functions.html
@@ -0,0 +1,40 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>Graphic Equalizer 2: Data Fields</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.3.9.1 -->
+<div class="qindex"><a class="qindex" href="main.html">Main&nbsp;Page</a> | <a class="qindex" href="annotated.html">Data&nbsp;Structures</a> | <a class="qindex" href="dirs.html">Directories</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindexHL" href="functions.html">Data&nbsp;Fields</a> | <a class="qindex" href="globals.html">Globals</a></div>
+<div class="qindex"><a class="qindexHL" href="functions.html">All</a> | <a class="qindex" href="functions_vars.html">Variables</a></div>
+
+<p>
+Here is a list of all struct and union fields with links to the structures/unions they belong to:<ul>
+<li>active_preset
+: <a class="el" href="structevents__t.html#o1">events_t</a><li>area_bottom
+: <a class="el" href="structskindata__t_1_1skin__info__t.html#o0">skindata_t::skin_info_t</a><li>area_left
+: <a class="el" href="structskindata__t_1_1skin__info__t.html#o2">skindata_t::skin_info_t</a><li>area_right
+: <a class="el" href="structskindata__t_1_1skin__info__t.html#o3">skindata_t::skin_info_t</a><li>area_top
+: <a class="el" href="structskindata__t_1_1skin__info__t.html#o1">skindata_t::skin_info_t</a><li>color_primary
+: <a class="el" href="structskindata__t_1_1skin__info__t.html#o4">skindata_t::skin_info_t</a><li>color_secondary
+: <a class="el" href="structskindata__t_1_1skin__info__t.html#o5">skindata_t::skin_info_t</a><li>display_log
+: <a class="el" href="structaudiodata__t.html#o1">audiodata_t</a><li>equalizer
+: <a class="el" href="structskindata__t.html#o3">skindata_t</a><li>equalizer_display
+: <a class="el" href="structevents__t.html#o0">events_t</a><li>equalizer_levels_ptr
+: <a class="el" href="structaudiodata__t.html#o0">audiodata_t</a><li>equalizer_mode
+: <a class="el" href="structevents__t.html#o5">events_t</a><li>locked_display
+: <a class="el" href="structevents__t.html#o6">events_t</a><li>mask
+: <a class="el" href="structevents__t.html#o3">events_t</a><li>mode
+: <a class="el" href="structevents__t.html#o4">events_t</a><li>spectrum
+: <a class="el" href="structskindata__t.html#o1">skindata_t</a><li>state
+: <a class="el" href="structmousedata__t.html#o2">mousedata_t</a><li>status
+: <a class="el" href="structmousedata__t.html#o3">mousedata_t</a><li>volume
+: <a class="el" href="structskindata__t.html#o2">skindata_t</a><li>volume_position
+: <a class="el" href="structevents__t.html#o2">events_t</a><li>waveform
+: <a class="el" href="structskindata__t.html#o0">skindata_t</a><li>x
+: <a class="el" href="structmousedata__t.html#o0">mousedata_t</a><li>y
+: <a class="el" href="structmousedata__t.html#o1">mousedata_t</a></ul>
+<hr size="1"><address style="align: right;"><small>Generated on Thu Dec 9 14:37:09 2004 for Graphic Equalizer 2 by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.3.9.1 </small></address>
+</body>
+</html>
diff --git a/Graphic_Equalizer_Original_Port/doc/html/functions_vars.html b/Graphic_Equalizer_Original_Port/doc/html/functions_vars.html
new file mode 100644
index 0000000..d23b45c
--- /dev/null
+++ b/Graphic_Equalizer_Original_Port/doc/html/functions_vars.html
@@ -0,0 +1,40 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>Graphic Equalizer 2: Data Fields - Variables</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.3.9.1 -->
+<div class="qindex"><a class="qindex" href="main.html">Main&nbsp;Page</a> | <a class="qindex" href="annotated.html">Data&nbsp;Structures</a> | <a class="qindex" href="dirs.html">Directories</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindexHL" href="functions.html">Data&nbsp;Fields</a> | <a class="qindex" href="globals.html">Globals</a></div>
+<div class="qindex"><a class="qindex" href="functions.html">All</a> | <a class="qindexHL" href="functions_vars.html">Variables</a></div>
+
+<p>
+<ul>
+<li>active_preset
+: <a class="el" href="structevents__t.html#o1">events_t</a><li>area_bottom
+: <a class="el" href="structskindata__t_1_1skin__info__t.html#o0">skindata_t::skin_info_t</a><li>area_left
+: <a class="el" href="structskindata__t_1_1skin__info__t.html#o2">skindata_t::skin_info_t</a><li>area_right
+: <a class="el" href="structskindata__t_1_1skin__info__t.html#o3">skindata_t::skin_info_t</a><li>area_top
+: <a class="el" href="structskindata__t_1_1skin__info__t.html#o1">skindata_t::skin_info_t</a><li>color_primary
+: <a class="el" href="structskindata__t_1_1skin__info__t.html#o4">skindata_t::skin_info_t</a><li>color_secondary
+: <a class="el" href="structskindata__t_1_1skin__info__t.html#o5">skindata_t::skin_info_t</a><li>display_log
+: <a class="el" href="structaudiodata__t.html#o1">audiodata_t</a><li>equalizer
+: <a class="el" href="structskindata__t.html#o3">skindata_t</a><li>equalizer_display
+: <a class="el" href="structevents__t.html#o0">events_t</a><li>equalizer_levels_ptr
+: <a class="el" href="structaudiodata__t.html#o0">audiodata_t</a><li>equalizer_mode
+: <a class="el" href="structevents__t.html#o5">events_t</a><li>locked_display
+: <a class="el" href="structevents__t.html#o6">events_t</a><li>mask
+: <a class="el" href="structevents__t.html#o3">events_t</a><li>mode
+: <a class="el" href="structevents__t.html#o4">events_t</a><li>spectrum
+: <a class="el" href="structskindata__t.html#o1">skindata_t</a><li>state
+: <a class="el" href="structmousedata__t.html#o2">mousedata_t</a><li>status
+: <a class="el" href="structmousedata__t.html#o3">mousedata_t</a><li>volume
+: <a class="el" href="structskindata__t.html#o2">skindata_t</a><li>volume_position
+: <a class="el" href="structevents__t.html#o2">events_t</a><li>waveform
+: <a class="el" href="structskindata__t.html#o0">skindata_t</a><li>x
+: <a class="el" href="structmousedata__t.html#o0">mousedata_t</a><li>y
+: <a class="el" href="structmousedata__t.html#o1">mousedata_t</a></ul>
+<hr size="1"><address style="align: right;"><small>Generated on Thu Dec 9 14:37:09 2004 for Graphic Equalizer 2 by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.3.9.1 </small></address>
+</body>
+</html>
diff --git a/Graphic_Equalizer_Original_Port/doc/html/globals.html b/Graphic_Equalizer_Original_Port/doc/html/globals.html
new file mode 100644
index 0000000..cec412d
--- /dev/null
+++ b/Graphic_Equalizer_Original_Port/doc/html/globals.html
@@ -0,0 +1,192 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>Graphic Equalizer 2: Globals</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.3.9.1 -->
+<div class="qindex"><a class="qindex" href="main.html">Main&nbsp;Page</a> | <a class="qindex" href="annotated.html">Data&nbsp;Structures</a> | <a class="qindex" href="dirs.html">Directories</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="functions.html">Data&nbsp;Fields</a> | <a class="qindexHL" href="globals.html">Globals</a></div>
+<div class="qindex"><a class="qindexHL" href="globals.html">All</a> | <a class="qindex" href="globals_func.html">Functions</a> | <a class="qindex" href="globals_vars.html">Variables</a> | <a class="qindex" href="globals_defs.html">Defines</a></div>
+<div class="qindex"><a class="qindex" href="#index__">_</a> | <a class="qindex" href="#index_a">a</a> | <a class="qindex" href="#index_b">b</a> | <a class="qindex" href="#index_c">c</a> | <a class="qindex" href="#index_d">d</a> | <a class="qindex" href="#index_e">e</a> | <a class="qindex" href="#index_f">f</a> | <a class="qindex" href="#index_h">h</a> | <a class="qindex" href="#index_i">i</a> | <a class="qindex" href="#index_l">l</a> | <a class="qindex" href="#index_m">m</a> | <a class="qindex" href="#index_n">n</a> | <a class="qindex" href="#index_p">p</a> | <a class="qindex" href="#index_r">r</a> | <a class="qindex" href="#index_s">s</a> | <a class="qindex" href="#index_u">u</a> | <a class="qindex" href="#index_v">v</a> | <a class="qindex" href="#index_w">w</a></div>
+
+<p>
+
+<p>
+Here is a list of all functions, variables, defines, enums, and typedefs with links to the files they belong to:<h3><a class="anchor" name="index__">- _ -</a></h3><ul>
+<li>_AUDIO_HCH
+: <a class="el" href="audio_8hch.html#a0">audio.hch</a><li>_CONFIGURATION_HCH
+: <a class="el" href="configuration_8hch.html#a0">configuration.hch</a><li>_DISPLAY_HCH
+: <a class="el" href="display_8hch.html#a0">display.hch</a><li>_DISPLAY_SHARED_HCH
+: <a class="el" href="display__shared_8hch.html#a0">display_shared.hch</a><li>_EVENTHANDLER_HCH
+: <a class="el" href="eventhandler_8hch.html#a0">eventhandler.hch</a><li>_EVENTHANDLER_SHARED_HCH
+: <a class="el" href="eventhandler__shared_8hch.html#a0">eventhandler_shared.hch</a><li>_EVENTS_HCH
+: <a class="el" href="events_8hch.html#a0">events.hch</a><li>_MOUSEDRIVER_HCH
+: <a class="el" href="mouse_8hch.html#a0">mouse.hch</a><li>_MOUSEDRIVER_SHARED_HCH
+: <a class="el" href="mouse__shared_8hch.html#a0">mouse_shared.hch</a><li>_SMARTMEDIA_HCH
+: <a class="el" href="smartmedia_8hch.html#a0">smartmedia.hch</a><li>_SMARTMEDIA_SHARED_HCH
+: <a class="el" href="smartmedia__shared_8hch.html#a0">smartmedia_shared.hch</a></ul>
+<h3><a class="anchor" name="index_a">- a -</a></h3><ul>
+<li>ADDRESS_GRAPHMASK_END
+: <a class="el" href="smartmedia__shared_8hch.html#a27">smartmedia_shared.hch</a><li>ADDRESS_GRAPHMASK_START
+: <a class="el" href="smartmedia__shared_8hch.html#a26">smartmedia_shared.hch</a><li>ADDRESS_HELP_END
+: <a class="el" href="smartmedia__shared_8hch.html#a25">smartmedia_shared.hch</a><li>ADDRESS_HELP_START
+: <a class="el" href="smartmedia__shared_8hch.html#a24">smartmedia_shared.hch</a><li>ADDRESS_PRESET_DEMO_END
+: <a class="el" href="smartmedia__shared_8hch.html#a29">smartmedia_shared.hch</a><li>ADDRESS_PRESET_DEMO_START
+: <a class="el" href="smartmedia__shared_8hch.html#a28">smartmedia_shared.hch</a><li>ADDRESS_PRESET_RESET_END
+: <a class="el" href="smartmedia__shared_8hch.html#a31">smartmedia_shared.hch</a><li>ADDRESS_PRESET_RESET_START
+: <a class="el" href="smartmedia__shared_8hch.html#a30">smartmedia_shared.hch</a><li>ADDRESS_SKIN_END
+: <a class="el" href="smartmedia__shared_8hch.html#a23">smartmedia_shared.hch</a><li>ADDRESS_SKIN_START
+: <a class="el" href="smartmedia__shared_8hch.html#a22">smartmedia_shared.hch</a><li>AREA_EQUALIZER_MAX
+: <a class="el" href="display__shared_8hch.html#a21">display_shared.hch</a><li>AREA_EQUALIZER_MIN
+: <a class="el" href="display__shared_8hch.html#a20">display_shared.hch</a><li>AREA_SPECTRUM_ANALYZER
+: <a class="el" href="display__shared_8hch.html#a3">display_shared.hch</a><li>AREA_VOLUME_YAXIS
+: <a class="el" href="display__shared_8hch.html#a2">display_shared.hch</a><li>AREA_WAVEFORM
+: <a class="el" href="display__shared_8hch.html#a1">display_shared.hch</a><li>audio_init()
+: <a class="el" href="audio_8hcc.html#a0">audio.hcc</a>, <a class="el" href="audio_8hch.html#a11">audio.hch</a><li>audio_main()
+: <a class="el" href="audio_8hcc.html#a1">audio.hcc</a>, <a class="el" href="audio_8hch.html#a12">audio.hch</a><li>AUDIO_NOT_READY
+: <a class="el" href="audio_8hch.html#a1">audio.hch</a><li>AUDIO_READY
+: <a class="el" href="audio_8hch.html#a2">audio.hch</a></ul>
+<h3><a class="anchor" name="index_b">- b -</a></h3><ul>
+<li>BUTTON_CONCAVE_FULL
+: <a class="el" href="display__shared_8hch.html#a17">display_shared.hch</a><li>BUTTON_CONCAVE_HALF
+: <a class="el" href="display__shared_8hch.html#a16">display_shared.hch</a><li>BUTTON_CONVEX_FULL
+: <a class="el" href="display__shared_8hch.html#a13">display_shared.hch</a><li>BUTTON_CONVEX_HALF
+: <a class="el" href="display__shared_8hch.html#a14">display_shared.hch</a><li>BUTTON_DEMO
+: <a class="el" href="display__shared_8hch.html#a5">display_shared.hch</a><li>BUTTON_HELP
+: <a class="el" href="display__shared_8hch.html#a18">display_shared.hch</a><li>BUTTON_LOG
+: <a class="el" href="display__shared_8hch.html#a4">display_shared.hch</a><li>BUTTON_MODE
+: <a class="el" href="display__shared_8hch.html#a19">display_shared.hch</a><li>BUTTON_PRECISE
+: <a class="el" href="display__shared_8hch.html#a15">display_shared.hch</a><li>BUTTON_PRESET_1
+: <a class="el" href="display__shared_8hch.html#a7">display_shared.hch</a><li>BUTTON_PRESET_2
+: <a class="el" href="display__shared_8hch.html#a8">display_shared.hch</a><li>BUTTON_PRESET_3
+: <a class="el" href="display__shared_8hch.html#a9">display_shared.hch</a><li>BUTTON_PRESET_4
+: <a class="el" href="display__shared_8hch.html#a10">display_shared.hch</a><li>BUTTON_PRESET_5
+: <a class="el" href="display__shared_8hch.html#a11">display_shared.hch</a><li>BUTTON_PRESET_6
+: <a class="el" href="display__shared_8hch.html#a12">display_shared.hch</a><li>BUTTON_RESET
+: <a class="el" href="display__shared_8hch.html#a6">display_shared.hch</a></ul>
+<h3><a class="anchor" name="index_c">- c -</a></h3><ul>
+<li>calculate_fft()
+: <a class="el" href="fft_8hcc.html#a3">fft.hcc</a><li>CPLDRun
+: <a class="el" href="smartmedia_8hch.html#a7">smartmedia.hch</a></ul>
+<h3><a class="anchor" name="index_d">- d -</a></h3><ul>
+<li>DC_COMPONENT
+: <a class="el" href="fft_8hcc.html#a0">fft.hcc</a><li>display_main()
+: <a class="el" href="display_8hcc.html#a2">display.hcc</a>, <a class="el" href="display_8hch.html#a6">display.hch</a></ul>
+<h3><a class="anchor" name="index_e">- e -</a></h3><ul>
+<li>eq_settings
+: <a class="el" href="fft_8hcc.html#a1">fft.hcc</a><li>equalize_audio()
+: <a class="el" href="fft_8hcc.html#a6">fft.hcc</a>, <a class="el" href="fft_8hch.html#a5">fft.hch</a><li>equalizer_table
+: <a class="el" href="events_8hcc.html#a1">events.hcc</a>, <a class="el" href="eventhandler__shared_8hch.html#a8">eventhandler_shared.hch</a><li>equalizer_table_inv
+: <a class="el" href="events_8hcc.html#a2">events.hcc</a>, <a class="el" href="eventhandler__shared_8hch.html#a9">eventhandler_shared.hch</a><li>EQUALIZERMODE_FULL
+: <a class="el" href="eventhandler__shared_8hch.html#a4">eventhandler_shared.hch</a><li>EQUALIZERMODE_HALF
+: <a class="el" href="eventhandler__shared_8hch.html#a5">eventhandler_shared.hch</a><li>EQUALIZERMODE_PRECISE
+: <a class="el" href="eventhandler__shared_8hch.html#a6">eventhandler_shared.hch</a><li>eventhandler_main()
+: <a class="el" href="eventhandler_8hcc.html#a2">eventhandler.hcc</a>, <a class="el" href="eventhandler_8hch.html#a3">eventhandler.hch</a></ul>
+<h3><a class="anchor" name="index_f">- f -</a></h3><ul>
+<li>FRACBITS
+: <a class="el" href="weights__256_8hch.html#a1">weights_256.hch</a></ul>
+<h3><a class="anchor" name="index_h">- h -</a></h3><ul>
+<li>HARDWARE_MULTIPLY
+: <a class="el" href="configuration_8hch.html#a4">configuration.hch</a><li>HAVE_DEBUG
+: <a class="el" href="configuration_8hch.html#a1">configuration.hch</a><li>HAVE_SMARTMEDIA
+: <a class="el" href="configuration_8hch.html#a2">configuration.hch</a></ul>
+<h3><a class="anchor" name="index_i">- i -</a></h3><ul>
+<li>INTBITS
+: <a class="el" href="weights__256_8hch.html#a0">weights_256.hch</a></ul>
+<h3><a class="anchor" name="index_l">- l -</a></h3><ul>
+<li>LINE_IN
+: <a class="el" href="audio_8hch.html#a3">audio.hch</a><li>load_preset()
+: <a class="el" href="events_8hcc.html#a3">events.hcc</a>, <a class="el" href="events_8hch.html#a1">events.hch</a><li>LOAD_PRESET_DEMO
+: <a class="el" href="eventhandler_8hch.html#a2">eventhandler.hch</a><li>LOAD_PRESET_RESET
+: <a class="el" href="eventhandler_8hch.html#a1">eventhandler.hch</a></ul>
+<h3><a class="anchor" name="index_m">- m -</a></h3><ul>
+<li>main()
+: <a class="el" href="main_8hcc.html#a1">main.hcc</a><li>maskupdate_notification
+: <a class="el" href="eventhandler_8hcc.html#a0">eventhandler.hcc</a>, <a class="el" href="display_8hcc.html#a1">display.hcc</a><li>MIC_IN
+: <a class="el" href="audio_8hch.html#a4">audio.hch</a><li>MODE_GRAPH
+: <a class="el" href="eventhandler__shared_8hch.html#a3">eventhandler_shared.hch</a><li>MODE_HELP
+: <a class="el" href="eventhandler__shared_8hch.html#a2">eventhandler_shared.hch</a><li>MODE_SKIN
+: <a class="el" href="eventhandler__shared_8hch.html#a1">eventhandler_shared.hch</a><li>mouse_main()
+: <a class="el" href="mouse_8hcc.html#a0">mouse.hcc</a>, <a class="el" href="mouse_8hch.html#a2">mouse.hch</a><li>MOUSE_NOT_UPDATED
+: <a class="el" href="mouse__shared_8hch.html#a1">mouse_shared.hch</a><li>MOUSE_STATE_DOWN
+: <a class="el" href="mouse__shared_8hch.html#a5">mouse_shared.hch</a><li>MOUSE_STATE_ON_PRESS
+: <a class="el" href="mouse__shared_8hch.html#a4">mouse_shared.hch</a><li>MOUSE_STATE_ON_RELEASE
+: <a class="el" href="mouse__shared_8hch.html#a6">mouse_shared.hch</a><li>MOUSE_STATE_UP
+: <a class="el" href="mouse__shared_8hch.html#a3">mouse_shared.hch</a><li>MOUSE_UPDATED
+: <a class="el" href="mouse__shared_8hch.html#a2">mouse_shared.hch</a><li>MouseRun
+: <a class="el" href="mouse_8hch.html#a1">mouse.hch</a><li>multiply()
+: <a class="el" href="fft_8hcc.html#a2">fft.hcc</a></ul>
+<h3><a class="anchor" name="index_n">- n -</a></h3><ul>
+<li>NUMBER_OF_COLUMNS
+: <a class="el" href="fft_8hch.html#a0">fft.hch</a><li>NUMBER_OF_FREQUENCIES
+: <a class="el" href="fft_8hch.html#a2">fft.hch</a><li>NUMBER_OF_POINTS
+: <a class="el" href="fft_8hch.html#a1">fft.hch</a></ul>
+<h3><a class="anchor" name="index_p">- p -</a></h3><ul>
+<li>PAL_TARGET_CLOCK_RATE
+: <a class="el" href="main_8hcc.html#a0">main.hcc</a>, <a class="el" href="display_8hcc.html#a0">display.hcc</a><li>perform_fft()
+: <a class="el" href="fft_8hcc.html#a4">fft.hcc</a>, <a class="el" href="fft_8hch.html#a3">fft.hch</a><li>PERFORM_FFT_CALCULATION
+: <a class="el" href="configuration_8hch.html#a5">configuration.hch</a><li>perform_ifft()
+: <a class="el" href="fft_8hcc.html#a5">fft.hcc</a>, <a class="el" href="fft_8hch.html#a4">fft.hch</a><li>PIXEL
+: <a class="el" href="display_8hch.html#a1">display.hch</a><li>PIXEL_EQUALIZER
+: <a class="el" href="display_8hch.html#a3">display.hch</a><li>PIXEL_SPECTRUM
+: <a class="el" href="display_8hch.html#a4">display.hch</a><li>PIXEL_VOLUME
+: <a class="el" href="display_8hch.html#a2">display.hch</a><li>PIXEL_WAVEFORM
+: <a class="el" href="display_8hch.html#a5">display.hch</a><li>presets_default_values
+: <a class="el" href="events_8hcc.html#a0">events.hcc</a></ul>
+<h3><a class="anchor" name="index_r">- r -</a></h3><ul>
+<li>READ
+: <a class="el" href="smartmedia_8hch.html#a1">smartmedia.hch</a><li>reload_equalizer()
+: <a class="el" href="display_8hcc.html#a3">display.hcc</a>, <a class="el" href="display_8hch.html#a7">display.hch</a><li>RunFFT()
+: <a class="el" href="runfft_8hch.html#a0">runfft.hch</a></ul>
+<h3><a class="anchor" name="index_s">- s -</a></h3><ul>
+<li>SIZE_GRAPH
+: <a class="el" href="smartmedia__shared_8hch.html#a3">smartmedia_shared.hch</a><li>SIZE_GRAPHMASK
+: <a class="el" href="smartmedia__shared_8hch.html#a6">smartmedia_shared.hch</a><li>SIZE_HELP
+: <a class="el" href="smartmedia__shared_8hch.html#a2">smartmedia_shared.hch</a><li>SIZE_HELPMASK
+: <a class="el" href="smartmedia__shared_8hch.html#a5">smartmedia_shared.hch</a><li>SIZE_PRESET
+: <a class="el" href="smartmedia__shared_8hch.html#a7">smartmedia_shared.hch</a><li>SIZE_SKIN
+: <a class="el" href="smartmedia__shared_8hch.html#a1">smartmedia_shared.hch</a><li>SIZE_SKINMASK
+: <a class="el" href="smartmedia__shared_8hch.html#a4">smartmedia_shared.hch</a><li>SMARTMEDIA_ADDRESS_GRAPHMASK_END
+: <a class="el" href="smartmedia__shared_8hch.html#a19">smartmedia_shared.hch</a><li>SMARTMEDIA_ADDRESS_GRAPHMASK_START
+: <a class="el" href="smartmedia__shared_8hch.html#a12">smartmedia_shared.hch</a><li>SMARTMEDIA_ADDRESS_HELP_END
+: <a class="el" href="smartmedia__shared_8hch.html#a17">smartmedia_shared.hch</a><li>SMARTMEDIA_ADDRESS_HELP_START
+: <a class="el" href="smartmedia__shared_8hch.html#a10">smartmedia_shared.hch</a><li>SMARTMEDIA_ADDRESS_HELPMASK_END
+: <a class="el" href="smartmedia__shared_8hch.html#a18">smartmedia_shared.hch</a><li>SMARTMEDIA_ADDRESS_HELPMASK_START
+: <a class="el" href="smartmedia__shared_8hch.html#a11">smartmedia_shared.hch</a><li>SMARTMEDIA_ADDRESS_PRESET_DEMO_END
+: <a class="el" href="smartmedia__shared_8hch.html#a20">smartmedia_shared.hch</a><li>SMARTMEDIA_ADDRESS_PRESET_DEMO_START
+: <a class="el" href="smartmedia__shared_8hch.html#a13">smartmedia_shared.hch</a><li>SMARTMEDIA_ADDRESS_PRESET_RESET_END
+: <a class="el" href="smartmedia__shared_8hch.html#a21">smartmedia_shared.hch</a><li>SMARTMEDIA_ADDRESS_PRESET_RESET_START
+: <a class="el" href="smartmedia__shared_8hch.html#a14">smartmedia_shared.hch</a><li>SMARTMEDIA_ADDRESS_SKIN_END
+: <a class="el" href="smartmedia__shared_8hch.html#a15">smartmedia_shared.hch</a><li>SMARTMEDIA_ADDRESS_SKIN_START
+: <a class="el" href="smartmedia__shared_8hch.html#a8">smartmedia_shared.hch</a><li>SMARTMEDIA_ADDRESS_SKINMASK_END
+: <a class="el" href="smartmedia__shared_8hch.html#a16">smartmedia_shared.hch</a><li>SMARTMEDIA_ADDRESS_SKINMASK_START
+: <a class="el" href="smartmedia__shared_8hch.html#a9">smartmedia_shared.hch</a><li>smartmedia_init()
+: <a class="el" href="smartmedia_8hcc.html#a0">smartmedia.hcc</a>, <a class="el" href="smartmedia_8hch.html#a9">smartmedia.hch</a><li>smartmedia_loaddata()
+: <a class="el" href="smartmedia_8hcc.html#a1">smartmedia.hcc</a>, <a class="el" href="smartmedia_8hch.html#a10">smartmedia.hch</a><li>SmartMediaRun
+: <a class="el" href="smartmedia_8hch.html#a8">smartmedia.hch</a><li>SR_11025
+: <a class="el" href="audio_8hch.html#a6">audio.hch</a><li>SR_16000
+: <a class="el" href="audio_8hch.html#a7">audio.hch</a><li>SR_22050
+: <a class="el" href="audio_8hch.html#a8">audio.hch</a><li>SR_44100
+: <a class="el" href="audio_8hch.html#a9">audio.hch</a><li>SR_48000
+: <a class="el" href="audio_8hch.html#a10">audio.hch</a><li>SR_8000
+: <a class="el" href="audio_8hch.html#a5">audio.hch</a><li>STAGE_LOAD_GRAPH
+: <a class="el" href="smartmedia_8hch.html#a5">smartmedia.hch</a><li>STAGE_LOAD_HELP
+: <a class="el" href="smartmedia_8hch.html#a4">smartmedia.hch</a><li>STAGE_LOAD_PRESET
+: <a class="el" href="smartmedia_8hch.html#a6">smartmedia.hch</a><li>STAGE_LOAD_SKIN
+: <a class="el" href="smartmedia_8hch.html#a3">smartmedia.hch</a></ul>
+<h3><a class="anchor" name="index_u">- u -</a></h3><ul>
+<li>USE_RUNFFT
+: <a class="el" href="configuration_8hch.html#a3">configuration.hch</a><li>USE_UNSIGNED_AUDIO
+: <a class="el" href="configuration_8hch.html#a6">configuration.hch</a></ul>
+<h3><a class="anchor" name="index_v">- v -</a></h3><ul>
+<li>volumecontrol_table
+: <a class="el" href="eventhandler_8hcc.html#a1">eventhandler.hcc</a>, <a class="el" href="eventhandler__shared_8hch.html#a7">eventhandler_shared.hch</a></ul>
+<h3><a class="anchor" name="index_w">- w -</a></h3><ul>
+<li>weight_im
+: <a class="el" href="weights__256_8hch.html#a3">weights_256.hch</a><li>weight_re
+: <a class="el" href="weights__256_8hch.html#a2">weights_256.hch</a><li>WRITE
+: <a class="el" href="smartmedia_8hch.html#a2">smartmedia.hch</a></ul>
+<hr size="1"><address style="align: right;"><small>Generated on Thu Dec 9 14:37:09 2004 for Graphic Equalizer 2 by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.3.9.1 </small></address>
+</body>
+</html>
diff --git a/Graphic_Equalizer_Original_Port/doc/html/globals_defs.html b/Graphic_Equalizer_Original_Port/doc/html/globals_defs.html
new file mode 100644
index 0000000..f1ce8e4
--- /dev/null
+++ b/Graphic_Equalizer_Original_Port/doc/html/globals_defs.html
@@ -0,0 +1,166 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>Graphic Equalizer 2: Globals - Defines</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.3.9.1 -->
+<div class="qindex"><a class="qindex" href="main.html">Main&nbsp;Page</a> | <a class="qindex" href="annotated.html">Data&nbsp;Structures</a> | <a class="qindex" href="dirs.html">Directories</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="functions.html">Data&nbsp;Fields</a> | <a class="qindexHL" href="globals.html">Globals</a></div>
+<div class="qindex"><a class="qindex" href="globals.html">All</a> | <a class="qindex" href="globals_func.html">Functions</a> | <a class="qindex" href="globals_vars.html">Variables</a> | <a class="qindexHL" href="globals_defs.html">Defines</a></div>
+<div class="qindex"><a class="qindex" href="#index__">_</a> | <a class="qindex" href="#index_a">a</a> | <a class="qindex" href="#index_b">b</a> | <a class="qindex" href="#index_c">c</a> | <a class="qindex" href="#index_d">d</a> | <a class="qindex" href="#index_e">e</a> | <a class="qindex" href="#index_f">f</a> | <a class="qindex" href="#index_h">h</a> | <a class="qindex" href="#index_i">i</a> | <a class="qindex" href="#index_l">l</a> | <a class="qindex" href="#index_m">m</a> | <a class="qindex" href="#index_n">n</a> | <a class="qindex" href="#index_p">p</a> | <a class="qindex" href="#index_r">r</a> | <a class="qindex" href="#index_s">s</a> | <a class="qindex" href="#index_u">u</a> | <a class="qindex" href="#index_w">w</a></div>
+
+<p>
+
+<p>
+<h3><a class="anchor" name="index__">- _ -</a></h3><ul>
+<li>_AUDIO_HCH
+: <a class="el" href="audio_8hch.html#a0">audio.hch</a><li>_CONFIGURATION_HCH
+: <a class="el" href="configuration_8hch.html#a0">configuration.hch</a><li>_DISPLAY_HCH
+: <a class="el" href="display_8hch.html#a0">display.hch</a><li>_DISPLAY_SHARED_HCH
+: <a class="el" href="display__shared_8hch.html#a0">display_shared.hch</a><li>_EVENTHANDLER_HCH
+: <a class="el" href="eventhandler_8hch.html#a0">eventhandler.hch</a><li>_EVENTHANDLER_SHARED_HCH
+: <a class="el" href="eventhandler__shared_8hch.html#a0">eventhandler_shared.hch</a><li>_EVENTS_HCH
+: <a class="el" href="events_8hch.html#a0">events.hch</a><li>_MOUSEDRIVER_HCH
+: <a class="el" href="mouse_8hch.html#a0">mouse.hch</a><li>_MOUSEDRIVER_SHARED_HCH
+: <a class="el" href="mouse__shared_8hch.html#a0">mouse_shared.hch</a><li>_SMARTMEDIA_HCH
+: <a class="el" href="smartmedia_8hch.html#a0">smartmedia.hch</a><li>_SMARTMEDIA_SHARED_HCH
+: <a class="el" href="smartmedia__shared_8hch.html#a0">smartmedia_shared.hch</a></ul>
+<h3><a class="anchor" name="index_a">- a -</a></h3><ul>
+<li>ADDRESS_GRAPHMASK_END
+: <a class="el" href="smartmedia__shared_8hch.html#a27">smartmedia_shared.hch</a><li>ADDRESS_GRAPHMASK_START
+: <a class="el" href="smartmedia__shared_8hch.html#a26">smartmedia_shared.hch</a><li>ADDRESS_HELP_END
+: <a class="el" href="smartmedia__shared_8hch.html#a25">smartmedia_shared.hch</a><li>ADDRESS_HELP_START
+: <a class="el" href="smartmedia__shared_8hch.html#a24">smartmedia_shared.hch</a><li>ADDRESS_PRESET_DEMO_END
+: <a class="el" href="smartmedia__shared_8hch.html#a29">smartmedia_shared.hch</a><li>ADDRESS_PRESET_DEMO_START
+: <a class="el" href="smartmedia__shared_8hch.html#a28">smartmedia_shared.hch</a><li>ADDRESS_PRESET_RESET_END
+: <a class="el" href="smartmedia__shared_8hch.html#a31">smartmedia_shared.hch</a><li>ADDRESS_PRESET_RESET_START
+: <a class="el" href="smartmedia__shared_8hch.html#a30">smartmedia_shared.hch</a><li>ADDRESS_SKIN_END
+: <a class="el" href="smartmedia__shared_8hch.html#a23">smartmedia_shared.hch</a><li>ADDRESS_SKIN_START
+: <a class="el" href="smartmedia__shared_8hch.html#a22">smartmedia_shared.hch</a><li>AREA_EQUALIZER_MAX
+: <a class="el" href="display__shared_8hch.html#a21">display_shared.hch</a><li>AREA_EQUALIZER_MIN
+: <a class="el" href="display__shared_8hch.html#a20">display_shared.hch</a><li>AREA_SPECTRUM_ANALYZER
+: <a class="el" href="display__shared_8hch.html#a3">display_shared.hch</a><li>AREA_VOLUME_YAXIS
+: <a class="el" href="display__shared_8hch.html#a2">display_shared.hch</a><li>AREA_WAVEFORM
+: <a class="el" href="display__shared_8hch.html#a1">display_shared.hch</a><li>AUDIO_NOT_READY
+: <a class="el" href="audio_8hch.html#a1">audio.hch</a><li>AUDIO_READY
+: <a class="el" href="audio_8hch.html#a2">audio.hch</a></ul>
+<h3><a class="anchor" name="index_b">- b -</a></h3><ul>
+<li>BUTTON_CONCAVE_FULL
+: <a class="el" href="display__shared_8hch.html#a17">display_shared.hch</a><li>BUTTON_CONCAVE_HALF
+: <a class="el" href="display__shared_8hch.html#a16">display_shared.hch</a><li>BUTTON_CONVEX_FULL
+: <a class="el" href="display__shared_8hch.html#a13">display_shared.hch</a><li>BUTTON_CONVEX_HALF
+: <a class="el" href="display__shared_8hch.html#a14">display_shared.hch</a><li>BUTTON_DEMO
+: <a class="el" href="display__shared_8hch.html#a5">display_shared.hch</a><li>BUTTON_HELP
+: <a class="el" href="display__shared_8hch.html#a18">display_shared.hch</a><li>BUTTON_LOG
+: <a class="el" href="display__shared_8hch.html#a4">display_shared.hch</a><li>BUTTON_MODE
+: <a class="el" href="display__shared_8hch.html#a19">display_shared.hch</a><li>BUTTON_PRECISE
+: <a class="el" href="display__shared_8hch.html#a15">display_shared.hch</a><li>BUTTON_PRESET_1
+: <a class="el" href="display__shared_8hch.html#a7">display_shared.hch</a><li>BUTTON_PRESET_2
+: <a class="el" href="display__shared_8hch.html#a8">display_shared.hch</a><li>BUTTON_PRESET_3
+: <a class="el" href="display__shared_8hch.html#a9">display_shared.hch</a><li>BUTTON_PRESET_4
+: <a class="el" href="display__shared_8hch.html#a10">display_shared.hch</a><li>BUTTON_PRESET_5
+: <a class="el" href="display__shared_8hch.html#a11">display_shared.hch</a><li>BUTTON_PRESET_6
+: <a class="el" href="display__shared_8hch.html#a12">display_shared.hch</a><li>BUTTON_RESET
+: <a class="el" href="display__shared_8hch.html#a6">display_shared.hch</a></ul>
+<h3><a class="anchor" name="index_c">- c -</a></h3><ul>
+<li>CPLDRun
+: <a class="el" href="smartmedia_8hch.html#a7">smartmedia.hch</a></ul>
+<h3><a class="anchor" name="index_d">- d -</a></h3><ul>
+<li>DC_COMPONENT
+: <a class="el" href="fft_8hcc.html#a0">fft.hcc</a></ul>
+<h3><a class="anchor" name="index_e">- e -</a></h3><ul>
+<li>EQUALIZERMODE_FULL
+: <a class="el" href="eventhandler__shared_8hch.html#a4">eventhandler_shared.hch</a><li>EQUALIZERMODE_HALF
+: <a class="el" href="eventhandler__shared_8hch.html#a5">eventhandler_shared.hch</a><li>EQUALIZERMODE_PRECISE
+: <a class="el" href="eventhandler__shared_8hch.html#a6">eventhandler_shared.hch</a></ul>
+<h3><a class="anchor" name="index_f">- f -</a></h3><ul>
+<li>FRACBITS
+: <a class="el" href="weights__256_8hch.html#a1">weights_256.hch</a></ul>
+<h3><a class="anchor" name="index_h">- h -</a></h3><ul>
+<li>HARDWARE_MULTIPLY
+: <a class="el" href="configuration_8hch.html#a4">configuration.hch</a><li>HAVE_DEBUG
+: <a class="el" href="configuration_8hch.html#a1">configuration.hch</a><li>HAVE_SMARTMEDIA
+: <a class="el" href="configuration_8hch.html#a2">configuration.hch</a></ul>
+<h3><a class="anchor" name="index_i">- i -</a></h3><ul>
+<li>INTBITS
+: <a class="el" href="weights__256_8hch.html#a0">weights_256.hch</a></ul>
+<h3><a class="anchor" name="index_l">- l -</a></h3><ul>
+<li>LINE_IN
+: <a class="el" href="audio_8hch.html#a3">audio.hch</a><li>LOAD_PRESET_DEMO
+: <a class="el" href="eventhandler_8hch.html#a2">eventhandler.hch</a><li>LOAD_PRESET_RESET
+: <a class="el" href="eventhandler_8hch.html#a1">eventhandler.hch</a></ul>
+<h3><a class="anchor" name="index_m">- m -</a></h3><ul>
+<li>MIC_IN
+: <a class="el" href="audio_8hch.html#a4">audio.hch</a><li>MODE_GRAPH
+: <a class="el" href="eventhandler__shared_8hch.html#a3">eventhandler_shared.hch</a><li>MODE_HELP
+: <a class="el" href="eventhandler__shared_8hch.html#a2">eventhandler_shared.hch</a><li>MODE_SKIN
+: <a class="el" href="eventhandler__shared_8hch.html#a1">eventhandler_shared.hch</a><li>MOUSE_NOT_UPDATED
+: <a class="el" href="mouse__shared_8hch.html#a1">mouse_shared.hch</a><li>MOUSE_STATE_DOWN
+: <a class="el" href="mouse__shared_8hch.html#a5">mouse_shared.hch</a><li>MOUSE_STATE_ON_PRESS
+: <a class="el" href="mouse__shared_8hch.html#a4">mouse_shared.hch</a><li>MOUSE_STATE_ON_RELEASE
+: <a class="el" href="mouse__shared_8hch.html#a6">mouse_shared.hch</a><li>MOUSE_STATE_UP
+: <a class="el" href="mouse__shared_8hch.html#a3">mouse_shared.hch</a><li>MOUSE_UPDATED
+: <a class="el" href="mouse__shared_8hch.html#a2">mouse_shared.hch</a><li>MouseRun
+: <a class="el" href="mouse_8hch.html#a1">mouse.hch</a></ul>
+<h3><a class="anchor" name="index_n">- n -</a></h3><ul>
+<li>NUMBER_OF_COLUMNS
+: <a class="el" href="fft_8hch.html#a0">fft.hch</a><li>NUMBER_OF_FREQUENCIES
+: <a class="el" href="fft_8hch.html#a2">fft.hch</a><li>NUMBER_OF_POINTS
+: <a class="el" href="fft_8hch.html#a1">fft.hch</a></ul>
+<h3><a class="anchor" name="index_p">- p -</a></h3><ul>
+<li>PAL_TARGET_CLOCK_RATE
+: <a class="el" href="main_8hcc.html#a0">main.hcc</a>, <a class="el" href="display_8hcc.html#a0">display.hcc</a><li>PERFORM_FFT_CALCULATION
+: <a class="el" href="configuration_8hch.html#a5">configuration.hch</a><li>PIXEL
+: <a class="el" href="display_8hch.html#a1">display.hch</a><li>PIXEL_EQUALIZER
+: <a class="el" href="display_8hch.html#a3">display.hch</a><li>PIXEL_SPECTRUM
+: <a class="el" href="display_8hch.html#a4">display.hch</a><li>PIXEL_VOLUME
+: <a class="el" href="display_8hch.html#a2">display.hch</a><li>PIXEL_WAVEFORM
+: <a class="el" href="display_8hch.html#a5">display.hch</a></ul>
+<h3><a class="anchor" name="index_r">- r -</a></h3><ul>
+<li>READ
+: <a class="el" href="smartmedia_8hch.html#a1">smartmedia.hch</a></ul>
+<h3><a class="anchor" name="index_s">- s -</a></h3><ul>
+<li>SIZE_GRAPH
+: <a class="el" href="smartmedia__shared_8hch.html#a3">smartmedia_shared.hch</a><li>SIZE_GRAPHMASK
+: <a class="el" href="smartmedia__shared_8hch.html#a6">smartmedia_shared.hch</a><li>SIZE_HELP
+: <a class="el" href="smartmedia__shared_8hch.html#a2">smartmedia_shared.hch</a><li>SIZE_HELPMASK
+: <a class="el" href="smartmedia__shared_8hch.html#a5">smartmedia_shared.hch</a><li>SIZE_PRESET
+: <a class="el" href="smartmedia__shared_8hch.html#a7">smartmedia_shared.hch</a><li>SIZE_SKIN
+: <a class="el" href="smartmedia__shared_8hch.html#a1">smartmedia_shared.hch</a><li>SIZE_SKINMASK
+: <a class="el" href="smartmedia__shared_8hch.html#a4">smartmedia_shared.hch</a><li>SMARTMEDIA_ADDRESS_GRAPHMASK_END
+: <a class="el" href="smartmedia__shared_8hch.html#a19">smartmedia_shared.hch</a><li>SMARTMEDIA_ADDRESS_GRAPHMASK_START
+: <a class="el" href="smartmedia__shared_8hch.html#a12">smartmedia_shared.hch</a><li>SMARTMEDIA_ADDRESS_HELP_END
+: <a class="el" href="smartmedia__shared_8hch.html#a17">smartmedia_shared.hch</a><li>SMARTMEDIA_ADDRESS_HELP_START
+: <a class="el" href="smartmedia__shared_8hch.html#a10">smartmedia_shared.hch</a><li>SMARTMEDIA_ADDRESS_HELPMASK_END
+: <a class="el" href="smartmedia__shared_8hch.html#a18">smartmedia_shared.hch</a><li>SMARTMEDIA_ADDRESS_HELPMASK_START
+: <a class="el" href="smartmedia__shared_8hch.html#a11">smartmedia_shared.hch</a><li>SMARTMEDIA_ADDRESS_PRESET_DEMO_END
+: <a class="el" href="smartmedia__shared_8hch.html#a20">smartmedia_shared.hch</a><li>SMARTMEDIA_ADDRESS_PRESET_DEMO_START
+: <a class="el" href="smartmedia__shared_8hch.html#a13">smartmedia_shared.hch</a><li>SMARTMEDIA_ADDRESS_PRESET_RESET_END
+: <a class="el" href="smartmedia__shared_8hch.html#a21">smartmedia_shared.hch</a><li>SMARTMEDIA_ADDRESS_PRESET_RESET_START
+: <a class="el" href="smartmedia__shared_8hch.html#a14">smartmedia_shared.hch</a><li>SMARTMEDIA_ADDRESS_SKIN_END
+: <a class="el" href="smartmedia__shared_8hch.html#a15">smartmedia_shared.hch</a><li>SMARTMEDIA_ADDRESS_SKIN_START
+: <a class="el" href="smartmedia__shared_8hch.html#a8">smartmedia_shared.hch</a><li>SMARTMEDIA_ADDRESS_SKINMASK_END
+: <a class="el" href="smartmedia__shared_8hch.html#a16">smartmedia_shared.hch</a><li>SMARTMEDIA_ADDRESS_SKINMASK_START
+: <a class="el" href="smartmedia__shared_8hch.html#a9">smartmedia_shared.hch</a><li>SmartMediaRun
+: <a class="el" href="smartmedia_8hch.html#a8">smartmedia.hch</a><li>SR_11025
+: <a class="el" href="audio_8hch.html#a6">audio.hch</a><li>SR_16000
+: <a class="el" href="audio_8hch.html#a7">audio.hch</a><li>SR_22050
+: <a class="el" href="audio_8hch.html#a8">audio.hch</a><li>SR_44100
+: <a class="el" href="audio_8hch.html#a9">audio.hch</a><li>SR_48000
+: <a class="el" href="audio_8hch.html#a10">audio.hch</a><li>SR_8000
+: <a class="el" href="audio_8hch.html#a5">audio.hch</a><li>STAGE_LOAD_GRAPH
+: <a class="el" href="smartmedia_8hch.html#a5">smartmedia.hch</a><li>STAGE_LOAD_HELP
+: <a class="el" href="smartmedia_8hch.html#a4">smartmedia.hch</a><li>STAGE_LOAD_PRESET
+: <a class="el" href="smartmedia_8hch.html#a6">smartmedia.hch</a><li>STAGE_LOAD_SKIN
+: <a class="el" href="smartmedia_8hch.html#a3">smartmedia.hch</a></ul>
+<h3><a class="anchor" name="index_u">- u -</a></h3><ul>
+<li>USE_RUNFFT
+: <a class="el" href="configuration_8hch.html#a3">configuration.hch</a><li>USE_UNSIGNED_AUDIO
+: <a class="el" href="configuration_8hch.html#a6">configuration.hch</a></ul>
+<h3><a class="anchor" name="index_w">- w -</a></h3><ul>
+<li>WRITE
+: <a class="el" href="smartmedia_8hch.html#a2">smartmedia.hch</a></ul>
+<hr size="1"><address style="align: right;"><small>Generated on Thu Dec 9 14:37:10 2004 for Graphic Equalizer 2 by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.3.9.1 </small></address>
+</body>
+</html>
diff --git a/Graphic_Equalizer_Original_Port/doc/html/globals_func.html b/Graphic_Equalizer_Original_Port/doc/html/globals_func.html
new file mode 100644
index 0000000..d8ce10b
--- /dev/null
+++ b/Graphic_Equalizer_Original_Port/doc/html/globals_func.html
@@ -0,0 +1,33 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>Graphic Equalizer 2: Globals - Functions</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.3.9.1 -->
+<div class="qindex"><a class="qindex" href="main.html">Main&nbsp;Page</a> | <a class="qindex" href="annotated.html">Data&nbsp;Structures</a> | <a class="qindex" href="dirs.html">Directories</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="functions.html">Data&nbsp;Fields</a> | <a class="qindexHL" href="globals.html">Globals</a></div>
+<div class="qindex"><a class="qindex" href="globals.html">All</a> | <a class="qindexHL" href="globals_func.html">Functions</a> | <a class="qindex" href="globals_vars.html">Variables</a> | <a class="qindex" href="globals_defs.html">Defines</a></div>
+
+<p>
+<ul>
+<li>audio_init()
+: <a class="el" href="audio_8hcc.html#a0">audio.hcc</a>, <a class="el" href="audio_8hch.html#a11">audio.hch</a><li>audio_main()
+: <a class="el" href="audio_8hcc.html#a1">audio.hcc</a>, <a class="el" href="audio_8hch.html#a12">audio.hch</a><li>calculate_fft()
+: <a class="el" href="fft_8hcc.html#a3">fft.hcc</a><li>display_main()
+: <a class="el" href="display_8hcc.html#a2">display.hcc</a>, <a class="el" href="display_8hch.html#a6">display.hch</a><li>equalize_audio()
+: <a class="el" href="fft_8hcc.html#a6">fft.hcc</a>, <a class="el" href="fft_8hch.html#a5">fft.hch</a><li>eventhandler_main()
+: <a class="el" href="eventhandler_8hcc.html#a2">eventhandler.hcc</a>, <a class="el" href="eventhandler_8hch.html#a3">eventhandler.hch</a><li>load_preset()
+: <a class="el" href="events_8hcc.html#a3">events.hcc</a>, <a class="el" href="events_8hch.html#a1">events.hch</a><li>main()
+: <a class="el" href="main_8hcc.html#a1">main.hcc</a><li>mouse_main()
+: <a class="el" href="mouse_8hcc.html#a0">mouse.hcc</a>, <a class="el" href="mouse_8hch.html#a2">mouse.hch</a><li>multiply()
+: <a class="el" href="fft_8hcc.html#a2">fft.hcc</a><li>perform_fft()
+: <a class="el" href="fft_8hcc.html#a4">fft.hcc</a>, <a class="el" href="fft_8hch.html#a3">fft.hch</a><li>perform_ifft()
+: <a class="el" href="fft_8hcc.html#a5">fft.hcc</a>, <a class="el" href="fft_8hch.html#a4">fft.hch</a><li>reload_equalizer()
+: <a class="el" href="display_8hcc.html#a3">display.hcc</a>, <a class="el" href="display_8hch.html#a7">display.hch</a><li>RunFFT()
+: <a class="el" href="runfft_8hch.html#a0">runfft.hch</a><li>smartmedia_init()
+: <a class="el" href="smartmedia_8hcc.html#a0">smartmedia.hcc</a>, <a class="el" href="smartmedia_8hch.html#a9">smartmedia.hch</a><li>smartmedia_loaddata()
+: <a class="el" href="smartmedia_8hcc.html#a1">smartmedia.hcc</a>, <a class="el" href="smartmedia_8hch.html#a10">smartmedia.hch</a></ul>
+<hr size="1"><address style="align: right;"><small>Generated on Thu Dec 9 14:37:09 2004 for Graphic Equalizer 2 by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.3.9.1 </small></address>
+</body>
+</html>
diff --git a/Graphic_Equalizer_Original_Port/doc/html/globals_vars.html b/Graphic_Equalizer_Original_Port/doc/html/globals_vars.html
new file mode 100644
index 0000000..5cda06d
--- /dev/null
+++ b/Graphic_Equalizer_Original_Port/doc/html/globals_vars.html
@@ -0,0 +1,25 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>Graphic Equalizer 2: Globals - Variables</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.3.9.1 -->
+<div class="qindex"><a class="qindex" href="main.html">Main&nbsp;Page</a> | <a class="qindex" href="annotated.html">Data&nbsp;Structures</a> | <a class="qindex" href="dirs.html">Directories</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="functions.html">Data&nbsp;Fields</a> | <a class="qindexHL" href="globals.html">Globals</a></div>
+<div class="qindex"><a class="qindex" href="globals.html">All</a> | <a class="qindex" href="globals_func.html">Functions</a> | <a class="qindexHL" href="globals_vars.html">Variables</a> | <a class="qindex" href="globals_defs.html">Defines</a></div>
+
+<p>
+<ul>
+<li>eq_settings
+: <a class="el" href="fft_8hcc.html#a1">fft.hcc</a><li>equalizer_table
+: <a class="el" href="events_8hcc.html#a1">events.hcc</a>, <a class="el" href="eventhandler__shared_8hch.html#a8">eventhandler_shared.hch</a><li>equalizer_table_inv
+: <a class="el" href="events_8hcc.html#a2">events.hcc</a>, <a class="el" href="eventhandler__shared_8hch.html#a9">eventhandler_shared.hch</a><li>maskupdate_notification
+: <a class="el" href="eventhandler_8hcc.html#a0">eventhandler.hcc</a>, <a class="el" href="display_8hcc.html#a1">display.hcc</a><li>presets_default_values
+: <a class="el" href="events_8hcc.html#a0">events.hcc</a><li>volumecontrol_table
+: <a class="el" href="eventhandler_8hcc.html#a1">eventhandler.hcc</a>, <a class="el" href="eventhandler__shared_8hch.html#a7">eventhandler_shared.hch</a><li>weight_im
+: <a class="el" href="weights__256_8hch.html#a3">weights_256.hch</a><li>weight_re
+: <a class="el" href="weights__256_8hch.html#a2">weights_256.hch</a></ul>
+<hr size="1"><address style="align: right;"><small>Generated on Thu Dec 9 14:37:09 2004 for Graphic Equalizer 2 by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.3.9.1 </small></address>
+</body>
+</html>
diff --git a/Graphic_Equalizer_Original_Port/doc/html/graph_legend.dot b/Graphic_Equalizer_Original_Port/doc/html/graph_legend.dot
new file mode 100644
index 0000000..5420927
--- /dev/null
+++ b/Graphic_Equalizer_Original_Port/doc/html/graph_legend.dot
@@ -0,0 +1,22 @@
+digraph G
+{
+ edge [fontname="Helvetica",fontsize=10,labelfontname="Helvetica",labelfontsize=10];
+ node [fontname="Helvetica",fontsize=10,shape=record];
+ Node9 [shape="box",label="Inherited",fontsize=10,height=0.2,width=0.4,fontname="Helvetica",color="black",style="filled" fontcolor="white"];
+ Node10 -> Node9 [dir=back,color="midnightblue",fontsize=10,style="solid",fontname="Helvetica"];
+ Node10 [shape="box",label="PublicBase",fontsize=10,height=0.2,width=0.4,fontname="Helvetica",color="black",URL="$classPublicBase.html"];
+ Node11 -> Node10 [dir=back,color="midnightblue",fontsize=10,style="solid",fontname="Helvetica"];
+ Node11 [shape="box",label="Truncated",fontsize=10,height=0.2,width=0.4,fontname="Helvetica",color="red",URL="$classTruncated.html"];
+ Node13 -> Node9 [dir=back,color="darkgreen",fontsize=10,style="solid",fontname="Helvetica"];
+ Node13 [shape="box",label="ProtectedBase",fontsize=10,height=0.2,width=0.4,fontname="Helvetica",color="black",URL="$classProtectedBase.html"];
+ Node14 -> Node9 [dir=back,color="firebrick4",fontsize=10,style="solid",fontname="Helvetica"];
+ Node14 [shape="box",label="PrivateBase",fontsize=10,height=0.2,width=0.4,fontname="Helvetica",color="black",URL="$classPrivateBase.html"];
+ Node15 -> Node9 [dir=back,color="midnightblue",fontsize=10,style="solid",fontname="Helvetica"];
+ Node15 [shape="box",label="Undocumented",fontsize=10,height=0.2,width=0.4,fontname="Helvetica",color="grey75"];
+ Node16 -> Node9 [dir=back,color="midnightblue",fontsize=10,style="solid",fontname="Helvetica"];
+ Node16 [shape="box",label="Templ< int >",fontsize=10,height=0.2,width=0.4,fontname="Helvetica",color="black",URL="$classTempl.html"];
+ Node17 -> Node16 [dir=back,color="orange",fontsize=10,style="dashed",label="< int >",fontname="Helvetica"];
+ Node17 [shape="box",label="Templ< T >",fontsize=10,height=0.2,width=0.4,fontname="Helvetica",color="black",URL="$classTempl.html"];
+ Node18 -> Node9 [dir=back,color="darkorchid3",fontsize=10,style="dashed",label="m_usedClass",fontname="Helvetica"];
+ Node18 [shape="box",label="Used",fontsize=10,height=0.2,width=0.4,fontname="Helvetica",color="black",URL="$classUsed.html"];
+}
diff --git a/Graphic_Equalizer_Original_Port/doc/html/graph_legend.html b/Graphic_Equalizer_Original_Port/doc/html/graph_legend.html
new file mode 100644
index 0000000..b5e1c0d
--- /dev/null
+++ b/Graphic_Equalizer_Original_Port/doc/html/graph_legend.html
@@ -0,0 +1,74 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>Graphic Equalizer 2: Graph Legend</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.3.9.1 -->
+<div class="qindex"><a class="qindex" href="main.html">Main&nbsp;Page</a> | <a class="qindex" href="annotated.html">Data&nbsp;Structures</a> | <a class="qindex" href="dirs.html">Directories</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="functions.html">Data&nbsp;Fields</a> | <a class="qindex" href="globals.html">Globals</a></div>
+<h1>Graph Legend</h1>This page explains how to interpret the graphs that are generated by doxygen.<p>
+Consider the following example: <div class="fragment"><pre class="fragment"><span class="comment">/*! Invisible class because of truncation */</span>
+<span class="keyword">class </span>Invisible { };
+<span class="comment"></span>
+<span class="comment">/*! Truncated class, inheritance relation is hidden */</span>
+<span class="keyword">class </span>Truncated : <span class="keyword">public</span> Invisible { };
+
+<span class="comment">/* Class not documented with doxygen comments */</span>
+<span class="keyword">class </span>Undocumented { };
+<span class="comment"></span>
+<span class="comment">/*! Class that is inherited using public inheritance */</span>
+<span class="keyword">class </span>PublicBase : <span class="keyword">public</span> Truncated { };
+<span class="comment"></span>
+<span class="comment">/*! A template class */</span>
+<span class="keyword">template</span>&lt;<span class="keyword">class</span> T&gt; <span class="keyword">class </span>Templ { };
+<span class="comment"></span>
+<span class="comment">/*! Class that is inherited using protected inheritance */</span>
+<span class="keyword">class </span>ProtectedBase { };
+<span class="comment"></span>
+<span class="comment">/*! Class that is inherited using private inheritance */</span>
+<span class="keyword">class </span>PrivateBase { };
+<span class="comment"></span>
+<span class="comment">/*! Class that is used by the Inherited class */</span>
+<span class="keyword">class </span>Used { };
+<span class="comment"></span>
+<span class="comment">/*! Super class that inherits a number of other classes */</span>
+<span class="keyword">class </span>Inherited : <span class="keyword">public</span> PublicBase,
+ <span class="keyword">protected</span> ProtectedBase,
+ <span class="keyword">private</span> PrivateBase,
+ <span class="keyword">public</span> Undocumented
+ <span class="keyword">public</span> Templ&lt;int&gt;
+{
+ <span class="keyword">private</span>:
+ Used *m_usedClass;
+};
+</pre></div>If the <code>MAX_DOT_GRAPH_HEIGHT</code> tag in the configuration file is set to 240 this will result in the following graph:<p>
+<center><div align="center">
+<img src="graph_legend.png" alt="graph_legend.png" alt>
+</div>
+</center> <p>
+The boxes in the above graph have the following meaning: <ul>
+<li>
+A filled black box represents the struct or class for which the graph is generated. </li>
+<li>
+A box with a black border denotes a documented struct or class. </li>
+<li>
+A box with a grey border denotes an undocumented struct or class. </li>
+<li>
+A box with a red border denotes a documented struct or class forwhich not all inheritance/containment relations are shown. A graph is truncated if it does not fit within the specified boundaries. </li>
+</ul>
+The arrows have the following meaning: <ul>
+<li>
+A dark blue arrow is used to visualize a public inheritance relation between two classes. </li>
+<li>
+A dark green arrow is used for protected inheritance. </li>
+<li>
+A dark red arrow is used for private inheritance. </li>
+<li>
+A purple dashed arrow is used if a class is contained or used by another class. The arrow is labeled with the variable(s) through which the pointed class or struct is accessible. </li>
+<li>
+A yellow dashed arrow denotes a relation between a template instance and the template class it was instantiated from. The arrow is labeled with the template parameters of the instance. </li>
+</ul>
+<hr size="1"><address style="align: right;"><small>Generated on Thu Dec 9 14:37:11 2004 for Graphic Equalizer 2 by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.3.9.1 </small></address>
+</body>
+</html>
diff --git a/Graphic_Equalizer_Original_Port/doc/html/graph_legend.png b/Graphic_Equalizer_Original_Port/doc/html/graph_legend.png
new file mode 100644
index 0000000..b8cfe42
--- /dev/null
+++ b/Graphic_Equalizer_Original_Port/doc/html/graph_legend.png
Binary files differ
diff --git a/Graphic_Equalizer_Original_Port/doc/html/index.html b/Graphic_Equalizer_Original_Port/doc/html/index.html
new file mode 100644
index 0000000..bbefe91
--- /dev/null
+++ b/Graphic_Equalizer_Original_Port/doc/html/index.html
@@ -0,0 +1,8 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>Graphic Equalizer 2</title></head>
+<frameset cols="250,*">
+ <frame src="tree.html" name="treefrm">
+ <frame src="main.html" name="basefrm">
+</frameset>
+</html>
diff --git a/Graphic_Equalizer_Original_Port/doc/html/main.html b/Graphic_Equalizer_Original_Port/doc/html/main.html
new file mode 100644
index 0000000..586bea1
--- /dev/null
+++ b/Graphic_Equalizer_Original_Port/doc/html/main.html
@@ -0,0 +1,14 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>Graphic Equalizer 2: Main Page</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.3.9.1 -->
+<div class="qindex"><a class="qindexHL" href="main.html">Main&nbsp;Page</a> | <a class="qindex" href="annotated.html">Data&nbsp;Structures</a> | <a class="qindex" href="dirs.html">Directories</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="functions.html">Data&nbsp;Fields</a> | <a class="qindex" href="globals.html">Globals</a></div>
+<h1>Graphic Equalizer 2 Documentation</h1>
+<p>
+<h3 align="center">2.0.1 </h3><hr size="1"><address style="align: right;"><small>Generated on Thu Dec 9 14:37:05 2004 for Graphic Equalizer 2 by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.3.9.1 </small></address>
+</body>
+</html>
diff --git a/Graphic_Equalizer_Original_Port/doc/html/main_8hcc-source.html b/Graphic_Equalizer_Original_Port/doc/html/main_8hcc-source.html
new file mode 100644
index 0000000..33c19e6
--- /dev/null
+++ b/Graphic_Equalizer_Original_Port/doc/html/main_8hcc-source.html
@@ -0,0 +1,153 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>Graphic Equalizer 2: C:/Project Marcel &amp; Oliver/Graphic_Equalizer/src/main.hcc Source File</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.3.9.1 -->
+<div class="qindex"><a class="qindex" href="main.html">Main&nbsp;Page</a> | <a class="qindex" href="annotated.html">Data&nbsp;Structures</a> | <a class="qindex" href="dirs.html">Directories</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="functions.html">Data&nbsp;Fields</a> | <a class="qindex" href="globals.html">Globals</a></div>
+<div class="nav">
+<a class="el" href="dir_000000.html">C:</a>&nbsp;/&nbsp;<a class="el" href="dir_000001.html">Project Marcel &amp; Oliver</a>&nbsp;/&nbsp;<a class="el" href="dir_000002.html">Graphic_Equalizer</a>&nbsp;/&nbsp;<a class="el" href="dir_000004.html">src</a></div>
+<h1>main.hcc</h1><a href="main_8hcc.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment">00001
+00019 <span class="comment">/*</span>
+00020 <span class="comment"> * Set the Clock rate for this domain. 25.175 Mhz is required for the Video output.</span>
+00021 <span class="comment"> */</span>
+<a name="l00022"></a><a class="code" href="main_8hcc.html#a0">00022</a> <span class="preprocessor">#define PAL_TARGET_CLOCK_RATE 25175000</span>
+00023 <span class="preprocessor"></span>
+00024 <span class="comment">/******** System Includes *************/</span>
+00025 <span class="preprocessor">#include "pal_master.hch"</span>
+00026
+00027 <span class="comment">/******** Application Includes ********/</span>
+00028 <span class="preprocessor">#include "<a class="code" href="configuration_8hch.html">configuration.hch</a>"</span>
+00029 <span class="preprocessor">#include "<a class="code" href="audio_8hch.html">audio.hch</a>"</span>
+00030 <span class="preprocessor">#include "<a class="code" href="mouse__shared_8hch.html">mouse_shared.hch</a>"</span>
+00031 <span class="preprocessor">#include "<a class="code" href="mouse_8hch.html">mouse.hch</a>"</span>
+00032 <span class="preprocessor">#include "<a class="code" href="eventhandler__shared_8hch.html">eventhandler_shared.hch</a>"</span>
+00033 <span class="preprocessor">#include "<a class="code" href="eventhandler_8hch.html">eventhandler.hch</a>"</span>
+00034 <span class="preprocessor">#include "<a class="code" href="display__shared_8hch.html">display_shared.hch</a>"</span>
+00035 <span class="preprocessor">#include "<a class="code" href="display_8hch.html">display.hch</a>"</span>
+00036 <span class="preprocessor">#include "<a class="code" href="smartmedia_8hch.html">smartmedia.hch</a>"</span>
+00037
+00038 <span class="preprocessor">#include "<a class="code" href="fft_8hch.html">fft.hch</a>"</span>
+00039 <span class="preprocessor">#include "<a class="code" href="runfft_8hch.html">runfft.hch</a>"</span>
+00040
+00041 <span class="preprocessor">#if HAVE_DEBUG</span>
+00042 <span class="preprocessor"></span><span class="preprocessor"> #include "debug.hch"</span>
+00043 <span class="preprocessor">#endif</span>
+00044 <span class="preprocessor"></span>
+<a name="l00051"></a><a class="code" href="main_8hcc.html#a1">00051</a> <span class="keywordtype">void</span> <a class="code" href="main_8hcc.html#a1">main</a>(<span class="keywordtype">void</span>) {
+00052 <span class="comment">/*</span>
+00053 <span class="comment"> * Set VideoOut, Audio I/O and Ram Handles and set clockrate.</span>
+00054 <span class="comment"> */</span>
+00055 macro expr ClockRate = PAL_ACTUAL_CLOCK_RATE;
+00056 macro expr VideoOut = PalVideoOutOptimalCT(ClockRate);
+00057 macro expr AudioIn = PalAudioInCT(0);
+00058 macro expr AudioOut = PalAudioOutCT(0);
+00059 macro expr RAM_BANK0 = PalPL2RAMCT(0);
+00060
+00061 <a class="code" href="structmousedata__t.html">mousedata_t</a> mousedata;
+00062 <a class="code" href="structevents__t.html">events_t</a> events;
+00063 <a class="code" href="structaudiodata__t.html">audiodata_t</a> audiodata;
+00064 <a class="code" href="structskindata__t.html">skindata_t</a> skindata;
+00065 <span class="keywordtype">unsigned</span> 1 result;
+00066
+00067 <span class="comment">/*</span>
+00068 <span class="comment"> * Check library versions and Request various hardware functionality.</span>
+00069 <span class="comment"> * We need at least Major Version 1. For Audio purposes we need atleast</span>
+00070 <span class="comment"> * minor version 2.</span>
+00071 <span class="comment"> */</span>
+00072 PalVersionRequire(1, 2);
+00073 PalVideoOutRequire(1);
+00074 PalAudioInRequire(1);
+00075 PalAudioOutRequire(1);
+00076
+00077 <span class="comment">/*</span>
+00078 <span class="comment"> * We verify some datawidths here at compile time. This to ensure</span>
+00079 <span class="comment"> * successfull operation.</span>
+00080 <span class="comment"> */</span>
+00081 assert (PalVideoOutGetColorWidthCT(VideoOut) == 24, 0,
+00082 <span class="stringliteral">"We need a 24-bit color Display."</span>);
+00083 assert (PalPL2RAMGetDataWidthCT(RAM_BANK0) &gt;= 32, 0,
+00084 <span class="stringliteral">"We can't work with anything less then 32 bits wide ram."</span>);
+00085
+00086 <span class="comment">/*</span>
+00087 <span class="comment"> * Run The Following main tasks in parallel.</span>
+00088 <span class="comment"> */</span>
+00089 par {
+00090 <span class="comment">/*</span>
+00091 <span class="comment"> * Primary task is to 'Run' several hardware simultaniously.</span>
+00092 <span class="comment"> */</span>
+00093 PalVideoOutRun(VideoOut, ClockRate);
+00094 <a class="code" href="mouse_8hch.html#a1">MouseRun</a>(ClockRate);
+00095 PalAudioInRun(AudioIn, ClockRate);
+00096 PalAudioOutRun(AudioOut, ClockRate);
+00097 PalPL2RAMRun(RAM_BANK0, ClockRate);
+00098 <span class="preprocessor">#if HAVE_SMARTMEDIA</span>
+00099 <span class="preprocessor"></span> <span class="comment">/*</span>
+00100 <span class="comment"> * The smartmedia device needs the CPLD to run also.</span>
+00101 <span class="comment"> */</span>
+00102 <a class="code" href="smartmedia_8hch.html#a7">CPLDRun</a>(ClockRate);
+00103 <a class="code" href="smartmedia_8hch.html#a8">SmartMediaRun</a>(ClockRate);
+00104 <span class="preprocessor">#endif</span>
+00105 <span class="preprocessor"></span><span class="preprocessor">#if HAVE_DEBUG</span>
+00106 <span class="preprocessor"></span> RC200RS232Run(RC200RS232_115200Baud, RC200RS232ParityNone,
+00107 RC200RS232FlowControlNone, ClockRate);
+00108 <span class="preprocessor">#endif</span>
+00109 <span class="preprocessor"></span>
+00110 <span class="comment">/*</span>
+00111 <span class="comment"> * Parallel to our Primary tasks we run the application.</span>
+00112 <span class="comment"> */</span>
+00113 seq {
+00114 <span class="comment">/*</span>
+00115 <span class="comment"> * But first we need to initialize Video and Audio.</span>
+00116 <span class="comment"> * We also load the data from the SmartMedia card</span>
+00117 <span class="comment"> * into the ram.</span>
+00118 <span class="comment"> */</span>
+00119 <span class="preprocessor">#if HAVE_DEBUG</span>
+00120 <span class="preprocessor"></span> print_cls();
+00121 print_string(<span class="stringliteral">"Graphic Equalizer 2"</span>);
+00122 print_eol();
+00123 <span class="preprocessor">#endif</span>
+00124 <span class="preprocessor"></span> PalVideoOutEnable(VideoOut);
+00125 PalAudioInEnable(AudioIn);
+00126 PalAudioOutEnable(AudioOut);
+00127 <a class="code" href="audio_8hcc.html#a0">audio_init</a>(6, <a class="code" href="audio_8hch.html#a3">LINE_IN</a>, <a class="code" href="audio_8hch.html#a9">SR_44100</a>, AudioIn, AudioOut);
+00128 <span class="preprocessor">#if HAVE_SMARTMEDIA</span>
+00129 <span class="preprocessor"></span> <span class="comment">/*</span>
+00130 <span class="comment"> * Once we properly setup the SmartMedia we load our</span>
+00131 <span class="comment"> * data folowed by our main program loop.</span>
+00132 <span class="comment"> */</span>
+00133 result = <a class="code" href="smartmedia_8hch.html#a9">smartmedia_init</a>();
+00134 <span class="keywordflow">if</span> (!result) {
+00135 <span class="preprocessor">#endif</span>
+00136 <span class="preprocessor"></span> <a class="code" href="smartmedia_8hcc.html#a1">smartmedia_loaddata</a>(&amp;skindata);
+00137
+00138 <span class="comment">/*</span>
+00139 <span class="comment"> * Main application starts here!</span>
+00140 <span class="comment"> */</span>
+00141 par {
+00142 <span class="comment">/*</span>
+00143 <span class="comment"> * From here we run the mouse driver, audio</span>
+00144 <span class="comment"> * and display in parallel. None of these</span>
+00145 <span class="comment"> * should ever return.</span>
+00146 <span class="comment"> */</span>
+00147 <a class="code" href="mouse_8hcc.html#a0">mouse_main</a>(&amp;mousedata);
+00148 <a class="code" href="display_8hcc.html#a2">display_main</a>(&amp;skindata, &amp;audiodata, &amp;events, &amp;mousedata);
+00149 <a class="code" href="eventhandler_8hcc.html#a2">eventhandler_main</a>(&amp;audiodata, &amp;events, &amp;mousedata);
+00150 <a class="code" href="audio_8hcc.html#a1">audio_main</a>(audiodata, AudioIn, AudioOut);
+00151 }
+00152 <span class="preprocessor">#if HAVE_SMARTMEDIA</span>
+00153 <span class="preprocessor"></span> } <span class="keywordflow">else</span> {
+00154 <span class="preprocessor">#if HAVE_DEBUG</span>
+00155 <span class="preprocessor"></span> print_string(<span class="stringliteral">"Error Initializing SmartMedia"</span>);
+00156 <span class="preprocessor">#endif</span>
+00157 <span class="preprocessor"></span> }
+00158 <span class="preprocessor">#endif</span>
+00159 <span class="preprocessor"></span> }
+00160 }
+00161
+00162 } <span class="comment">/* --- main() --- */</span>
+</pre></div><hr size="1"><address style="align: right;"><small>Generated on Thu Dec 9 14:37:07 2004 for Graphic Equalizer 2 by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.3.9.1 </small></address>
+</body>
+</html>
diff --git a/Graphic_Equalizer_Original_Port/doc/html/main_8hcc.html b/Graphic_Equalizer_Original_Port/doc/html/main_8hcc.html
new file mode 100644
index 0000000..91be25e
--- /dev/null
+++ b/Graphic_Equalizer_Original_Port/doc/html/main_8hcc.html
@@ -0,0 +1,151 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>Graphic Equalizer 2: C:/Project Marcel &amp; Oliver/Graphic_Equalizer/src/main.hcc File Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.3.9.1 -->
+<div class="qindex"><a class="qindex" href="main.html">Main&nbsp;Page</a> | <a class="qindex" href="annotated.html">Data&nbsp;Structures</a> | <a class="qindex" href="dirs.html">Directories</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="functions.html">Data&nbsp;Fields</a> | <a class="qindex" href="globals.html">Globals</a></div>
+<div class="nav">
+<a class="el" href="dir_000000.html">C:</a>&nbsp;/&nbsp;<a class="el" href="dir_000001.html">Project Marcel &amp; Oliver</a>&nbsp;/&nbsp;<a class="el" href="dir_000002.html">Graphic_Equalizer</a>&nbsp;/&nbsp;<a class="el" href="dir_000004.html">src</a></div>
+<h1>main.hcc File Reference</h1><code>#include "pal_master.hch"</code><br>
+<code>#include "<a class="el" href="configuration_8hch-source.html">configuration.hch</a>"</code><br>
+<code>#include "<a class="el" href="audio_8hch-source.html">audio.hch</a>"</code><br>
+<code>#include "<a class="el" href="mouse__shared_8hch-source.html">mouse_shared.hch</a>"</code><br>
+<code>#include "<a class="el" href="mouse_8hch-source.html">mouse.hch</a>"</code><br>
+<code>#include "<a class="el" href="eventhandler__shared_8hch-source.html">eventhandler_shared.hch</a>"</code><br>
+<code>#include "<a class="el" href="eventhandler_8hch-source.html">eventhandler.hch</a>"</code><br>
+<code>#include "<a class="el" href="display__shared_8hch-source.html">display_shared.hch</a>"</code><br>
+<code>#include "<a class="el" href="display_8hch-source.html">display.hch</a>"</code><br>
+<code>#include "<a class="el" href="smartmedia_8hch-source.html">smartmedia.hch</a>"</code><br>
+<code>#include "<a class="el" href="fft_8hch-source.html">fft.hch</a>"</code><br>
+<code>#include "<a class="el" href="runfft_8hch-source.html">runfft.hch</a>"</code><br>
+
+<p>
+Include dependency graph for main.hcc:<p><center><img src="main_8hcc__incl.png" border="0" usemap="#main.hcc_map" alt="Include dependency graph"></center>
+<map name="main.hcc_map">
+<area href="configuration_8hch.html" shape="rect" coords="143,7,269,34" alt="">
+<area href="audio_8hch.html" shape="rect" coords="293,7,373,34" alt="">
+<area href="mouse__shared_8hch.html" shape="rect" coords="397,7,533,34" alt="">
+<area href="mouse_8hch.html" shape="rect" coords="557,7,645,34" alt="">
+<area href="eventhandler__shared_8hch.html" shape="rect" coords="669,7,842,34" alt="">
+<area href="eventhandler_8hch.html" shape="rect" coords="866,7,991,34" alt="">
+<area href="display__shared_8hch.html" shape="rect" coords="1015,7,1151,34" alt="">
+<area href="display_8hch.html" shape="rect" coords="1175,7,1263,34" alt="">
+<area href="smartmedia_8hch.html" shape="rect" coords="1287,7,1405,34" alt="">
+<area href="fft_8hch.html" shape="rect" coords="1429,7,1487,34" alt="">
+<area href="runfft_8hch.html" shape="rect" coords="1511,7,1589,34" alt="">
+</map>
+
+<p>
+<a href="main_8hcc-source.html">Go to the source code of this file.</a><table border="0" cellpadding="0" cellspacing="0">
+<tr><td></td></tr>
+<tr><td colspan="2"><br><h2>Defines</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="main_8hcc.html#a0">PAL_TARGET_CLOCK_RATE</a>&nbsp;&nbsp;&nbsp;25175000</td></tr>
+
+<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="main_8hcc.html#a1">main</a> (void)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Main Application Loop. <a href="#a1"></a><br></td></tr>
+</table>
+<hr><a name="_details"></a><h2>Detailed Description</h2>
+<h2><a class="anchor" name="generic">
+Graphic Equalizer API</a></h2>
+<h2><a class="anchor" name="project">
+Project information.</a></h2>
+Project Graphic Equalizer<br>
+ <dl compact><dt><b>Author:</b></dt><dd>O.M. Schinagl </dd></dl>
+<dl compact><dt><b>Date:</b></dt><dd>20041011 </dd></dl>
+<dl compact><dt><b>Version:</b></dt><dd>0.1</dd></dl>
+<h2><a class="anchor" name="copyright">
+Copyright</a></h2>
+Copyright ©2004 Koninklijke Philips Electronics N.V. All rights reserved<h2><a class="anchor" name="history">
+Change history</a></h2>
+20041011: O.M. Schinagl<br>
+ Initial version
+<p>
+Definition in file <a class="el" href="main_8hcc-source.html">main.hcc</a>.<hr><h2>Define Documentation</h2>
+<a class="anchor" name="a0" doxytag="main.hcc::PAL_TARGET_CLOCK_RATE"></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top">#define PAL_TARGET_CLOCK_RATE&nbsp;&nbsp;&nbsp;25175000 </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="main_8hcc-source.html#l00022">22</a> of file <a class="el" href="main_8hcc-source.html">main.hcc</a>. </td>
+ </tr>
+</table>
+<hr><h2>Function Documentation</h2>
+<a class="anchor" name="a1" doxytag="main.hcc::main"></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top">void main </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">void&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap></td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Main Application Loop.
+<p>
+<dl compact><dt><b>Returns:</b></dt><dd>void </dd></dl>
+<dl compact><dt><b>Return values:</b></dt><dd>
+ <table border="0" cellspacing="2" cellpadding="0">
+ <tr><td valign="top"></td><td valign="top"><em>void</em>&nbsp;</td><td></td></tr>
+ </table>
+</dl>
+
+<p>
+Definition at line <a class="el" href="main_8hcc-source.html#l00051">51</a> of file <a class="el" href="main_8hcc-source.html">main.hcc</a>.
+<p>
+References <a class="el" href="audio_8hcc-source.html#l00045">audio_init()</a>, <a class="el" href="audio_8hcc-source.html#l00076">audio_main()</a>, <a class="el" href="smartmedia_8hch-source.html#l00047">CPLDRun</a>, <a class="el" href="display_8hcc-source.html#l00065">display_main()</a>, <a class="el" href="eventhandler_8hcc-source.html#l00059">eventhandler_main()</a>, <a class="el" href="audio_8hch-source.html#l00052">LINE_IN</a>, <a class="el" href="mouse_8hcc-source.html#l00048">mouse_main()</a>, <a class="el" href="mouse_8hch-source.html#l00027">MouseRun</a>, <a class="el" href="smartmedia_8hcc-source.html#l00046">smartmedia_init()</a>, <a class="el" href="smartmedia_8hcc-source.html#l00072">smartmedia_loaddata()</a>, <a class="el" href="smartmedia_8hch-source.html#l00048">SmartMediaRun</a>, and <a class="el" href="audio_8hch-source.html#l00064">SR_44100</a>. </td>
+ </tr>
+</table>
+
+<p>
+Here is the call graph for this function:<p><center><img src="main_8hcc_a1_cgraph.png" border="0" usemap="#main_8hcc_a1_cgraph_map" alt=""></center>
+<map name="main_8hcc_a1_cgraph_map">
+<area href="audio_8hcc.html#a0" shape="rect" coords="145,8,225,34" alt="">
+<area href="audio_8hcc.html#a1" shape="rect" coords="140,58,230,85" alt="">
+<area href="display_8hcc.html#a2" shape="rect" coords="134,109,236,136" alt="">
+<area href="eventhandler_8hcc.html#a2" shape="rect" coords="117,160,253,186" alt="">
+<area href="mouse_8hcc.html#a0" shape="rect" coords="136,210,234,237" alt="">
+<area href="smartmedia_8hch.html#a9" shape="rect" coords="126,261,244,288" alt="">
+<area href="smartmedia_8hcc.html#a1" shape="rect" coords="109,312,261,338" alt="">
+<area href="events_8hcc.html#a3" shape="rect" coords="325,134,416,161" alt="">
+<area href="display_8hcc.html#a3" shape="rect" coords="310,185,430,212" alt="">
+</map>
+<hr size="1"><address style="align: right;"><small>Generated on Thu Dec 9 14:37:09 2004 for Graphic Equalizer 2 by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.3.9.1 </small></address>
+</body>
+</html>
diff --git a/Graphic_Equalizer_Original_Port/doc/html/main_8hcc__incl.map b/Graphic_Equalizer_Original_Port/doc/html/main_8hcc__incl.map
new file mode 100644
index 0000000..93dc814
--- /dev/null
+++ b/Graphic_Equalizer_Original_Port/doc/html/main_8hcc__incl.map
@@ -0,0 +1,12 @@
+base referer
+rect $configuration_8hch.html 143,7 269,34
+rect $audio_8hch.html 293,7 373,34
+rect $mouse__shared_8hch.html 397,7 533,34
+rect $mouse_8hch.html 557,7 645,34
+rect $eventhandler__shared_8hch.html 669,7 842,34
+rect $eventhandler_8hch.html 866,7 991,34
+rect $display__shared_8hch.html 1015,7 1151,34
+rect $display_8hch.html 1175,7 1263,34
+rect $smartmedia_8hch.html 1287,7 1405,34
+rect $fft_8hch.html 1429,7 1487,34
+rect $runfft_8hch.html 1511,7 1589,34
diff --git a/Graphic_Equalizer_Original_Port/doc/html/main_8hcc__incl.md5 b/Graphic_Equalizer_Original_Port/doc/html/main_8hcc__incl.md5
new file mode 100644
index 0000000..180884e
--- /dev/null
+++ b/Graphic_Equalizer_Original_Port/doc/html/main_8hcc__incl.md5
@@ -0,0 +1 @@
+1419fd3b33c01dc6aea19227c10014a5 \ No newline at end of file
diff --git a/Graphic_Equalizer_Original_Port/doc/html/main_8hcc__incl.png b/Graphic_Equalizer_Original_Port/doc/html/main_8hcc__incl.png
new file mode 100644
index 0000000..a519b5a
--- /dev/null
+++ b/Graphic_Equalizer_Original_Port/doc/html/main_8hcc__incl.png
Binary files differ
diff --git a/Graphic_Equalizer_Original_Port/doc/html/main_8hcc_a1_cgraph.map b/Graphic_Equalizer_Original_Port/doc/html/main_8hcc_a1_cgraph.map
new file mode 100644
index 0000000..fc498f4
--- /dev/null
+++ b/Graphic_Equalizer_Original_Port/doc/html/main_8hcc_a1_cgraph.map
@@ -0,0 +1,10 @@
+base referer
+rect $audio_8hcc.html#a0 145,8 225,34
+rect $audio_8hcc.html#a1 140,58 230,85
+rect $display_8hcc.html#a2 134,109 236,136
+rect $eventhandler_8hcc.html#a2 117,160 253,186
+rect $mouse_8hcc.html#a0 136,210 234,237
+rect $smartmedia_8hch.html#a9 126,261 244,288
+rect $smartmedia_8hcc.html#a1 109,312 261,338
+rect $events_8hcc.html#a3 325,134 416,161
+rect $display_8hcc.html#a3 310,185 430,212
diff --git a/Graphic_Equalizer_Original_Port/doc/html/main_8hcc_a1_cgraph.md5 b/Graphic_Equalizer_Original_Port/doc/html/main_8hcc_a1_cgraph.md5
new file mode 100644
index 0000000..095d857
--- /dev/null
+++ b/Graphic_Equalizer_Original_Port/doc/html/main_8hcc_a1_cgraph.md5
@@ -0,0 +1 @@
+f9b3a03c002f36a20920f8e86e483e1a \ No newline at end of file
diff --git a/Graphic_Equalizer_Original_Port/doc/html/main_8hcc_a1_cgraph.png b/Graphic_Equalizer_Original_Port/doc/html/main_8hcc_a1_cgraph.png
new file mode 100644
index 0000000..c55d7a3
--- /dev/null
+++ b/Graphic_Equalizer_Original_Port/doc/html/main_8hcc_a1_cgraph.png
Binary files differ
diff --git a/Graphic_Equalizer_Original_Port/doc/html/mouse_8hcc-source.html b/Graphic_Equalizer_Original_Port/doc/html/mouse_8hcc-source.html
new file mode 100644
index 0000000..dfb8298
--- /dev/null
+++ b/Graphic_Equalizer_Original_Port/doc/html/mouse_8hcc-source.html
@@ -0,0 +1,116 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>Graphic Equalizer 2: C:/Project Marcel &amp; Oliver/Graphic_Equalizer/src/mouse.hcc Source File</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.3.9.1 -->
+<div class="qindex"><a class="qindex" href="main.html">Main&nbsp;Page</a> | <a class="qindex" href="annotated.html">Data&nbsp;Structures</a> | <a class="qindex" href="dirs.html">Directories</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="functions.html">Data&nbsp;Fields</a> | <a class="qindex" href="globals.html">Globals</a></div>
+<div class="nav">
+<a class="el" href="dir_000000.html">C:</a>&nbsp;/&nbsp;<a class="el" href="dir_000001.html">Project Marcel &amp; Oliver</a>&nbsp;/&nbsp;<a class="el" href="dir_000002.html">Graphic_Equalizer</a>&nbsp;/&nbsp;<a class="el" href="dir_000004.html">src</a></div>
+<h1>mouse.hcc</h1><a href="mouse_8hcc.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment">00001
+00021 <span class="comment">/******** System Includes *************/</span>
+00022 <span class="preprocessor">#include &lt;stdlib.hch&gt;</span>
+00023
+00024 <span class="preprocessor">#include "pal_master.hch"</span>
+00025 <span class="preprocessor">#include "pal_mouse.hch"</span>
+00026
+00027 <span class="comment">/******** Application Includes ********/</span>
+00028 <span class="preprocessor">#include "<a class="code" href="configuration_8hch.html">configuration.hch</a>"</span>
+00029 <span class="preprocessor">#include "<a class="code" href="mouse__shared_8hch.html">mouse_shared.hch</a>"</span>
+00030 <span class="preprocessor">#include "<a class="code" href="mouse_8hch.html">mouse.hch</a>"</span>
+00031
+00032 <span class="preprocessor">#if HAVE_DEBUG</span>
+00033 <span class="preprocessor"></span><span class="preprocessor"> #include "debug.hch"</span>
+00034 <span class="preprocessor">#endif</span>
+00035 <span class="preprocessor"></span>
+00036
+00037
+<a name="l00048"></a><a class="code" href="mouse_8hcc.html#a0">00048</a> <span class="keywordtype">void</span> <a class="code" href="mouse_8hcc.html#a0">mouse_main</a>(<a class="code" href="structmousedata__t.html">mousedata_t</a> *mousedata) {
+00049 <span class="keywordtype">unsigned</span> 18 touch_sampler;
+00050 <span class="keywordtype">unsigned</span> 10 x, oldx;
+00051 <span class="keywordtype">unsigned</span> 9 y, oldy;
+00052 <span class="keywordtype">unsigned</span> 3 mousestate, oldmousestate;
+00053 <span class="keywordtype">unsigned</span> 1 touch, touched, oldtouched;
+00054
+00055 <span class="comment">/*</span>
+00056 <span class="comment"> * We only check for mouse states once every 2^18 time. This to</span>
+00057 <span class="comment"> * overcome the sampling of the 'Touch' state of the RC200 libs. When</span>
+00058 <span class="comment"> * using newer libs this might be overkill, e.g. smaller values may</span>
+00059 <span class="comment"> * work or sampling all together will be redundant.</span>
+00060 <span class="comment"> */</span>
+00061 touch_sampler = 1;
+00062 <span class="keywordflow">while</span> (TRUE) {
+00063 <span class="keywordflow">if</span> (!touch_sampler) {
+00064 <span class="comment">/*</span>
+00065 <span class="comment"> * We are here ready to set mouse states. We compare</span>
+00066 <span class="comment"> * current and previous states and thereby determine</span>
+00067 <span class="comment"> * the state to send to others</span>
+00068 <span class="comment"> */</span>
+00069 <span class="keywordflow">if</span> (touched) {
+00070 <span class="keywordflow">if</span>(oldtouched) {
+00071 mousestate = MOUSE_STATE_DOWN;
+00072 } <span class="keywordflow">else</span> {
+00073 mousestate = MOUSE_STATE_ON_PRESS;
+00074 }
+00075 oldtouched = TRUE;
+00076 } <span class="keywordflow">else</span> {
+00077 <span class="keywordflow">if</span>(oldtouched) {
+00078 mousestate = MOUSE_STATE_ON_RELEASE;
+00079 } <span class="keywordflow">else</span> {
+00080 mousestate = MOUSE_STATE_UP;
+00081 }
+00082 oldtouched = FALSE;
+00083 }
+00084 <span class="comment">/*</span>
+00085 <span class="comment"> * We have now processed our Touch. Reset it for the</span>
+00086 <span class="comment"> * next run.</span>
+00087 <span class="comment"> */</span>
+00088 touched = FALSE;
+00089
+00090 <span class="comment">/*</span>
+00091 <span class="comment"> * In the rare occurance that we receive values</span>
+00092 <span class="comment"> * beyond our range, we set them to some sane</span>
+00093 <span class="comment"> * values here.</span>
+00094 <span class="comment"> */</span>
+00095 x = (x &gt; 639) ? 0 : x;
+00096 y = (y &gt; 479) ? 0 : y;
+00097
+00098 <span class="comment">/*</span>
+00099 <span class="comment"> * Compare Previous States and Coordinates to determine</span>
+00100 <span class="comment"> * wether they have changed. If so, Copy them into</span>
+00101 <span class="comment"> * shared memory, notify the listening processes and</span>
+00102 <span class="comment"> * Set the new as previous values for the next run. We</span>
+00103 <span class="comment"> * can only do this when the display has handled all</span>
+00104 <span class="comment"> * changes.</span>
+00105 <span class="comment"> */</span>
+00106 <span class="keywordflow">if</span> (((oldmousestate != mousestate) || (oldx != x) || (oldy != y)) &amp;&amp; (<a class="code" href="mouse__shared_8hch.html#a1">MOUSE_NOT_UPDATED</a> == mousedata-&gt;<a class="code" href="structmousedata__t.html#o3">status</a>)) {
+00107 <span class="comment">//par {</span>
+00108 oldx = x;
+00109 oldy = y;
+00110 oldmousestate = mousestate;
+00111 mousedata-&gt;<a class="code" href="structmousedata__t.html#o0">x</a> = x;
+00112 mousedata-&gt;<a class="code" href="structmousedata__t.html#o1">y</a> = 0 @ y;
+00113 mousedata-&gt;<a class="code" href="structmousedata__t.html#o2">state</a> = mousestate;
+00114 mousedata-&gt;<a class="code" href="structmousedata__t.html#o3">status</a> = MOUSE_UPDATED;
+00115 <span class="comment">//}</span>
+00116 }
+00117 }
+00118
+00119 <span class="comment">/*</span>
+00120 <span class="comment"> * Read the current X and Y of the 'cursor' and register wether</span>
+00121 <span class="comment"> * the display was touched. If touched store this in a local</span>
+00122 <span class="comment"> * store. This we do to catch the sampling of the RC200 lib.</span>
+00123 <span class="comment"> */</span>
+00124 RC200TouchScreenReadScaled(&amp;x, &amp;y, &amp;touch);
+00125 <span class="keywordflow">if</span> (touch) {
+00126 touched = TRUE;
+00127 }
+00128
+00129 touch_sampler++;
+00130 }
+00131 } <span class="comment">/* --- mouse_main() --- */</span>
+</pre></div><hr size="1"><address style="align: right;"><small>Generated on Thu Dec 9 14:37:07 2004 for Graphic Equalizer 2 by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.3.9.1 </small></address>
+</body>
+</html>
diff --git a/Graphic_Equalizer_Original_Port/doc/html/mouse_8hcc.html b/Graphic_Equalizer_Original_Port/doc/html/mouse_8hcc.html
new file mode 100644
index 0000000..6dffc76
--- /dev/null
+++ b/Graphic_Equalizer_Original_Port/doc/html/mouse_8hcc.html
@@ -0,0 +1,101 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>Graphic Equalizer 2: C:/Project Marcel &amp; Oliver/Graphic_Equalizer/src/mouse.hcc File Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.3.9.1 -->
+<div class="qindex"><a class="qindex" href="main.html">Main&nbsp;Page</a> | <a class="qindex" href="annotated.html">Data&nbsp;Structures</a> | <a class="qindex" href="dirs.html">Directories</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="functions.html">Data&nbsp;Fields</a> | <a class="qindex" href="globals.html">Globals</a></div>
+<div class="nav">
+<a class="el" href="dir_000000.html">C:</a>&nbsp;/&nbsp;<a class="el" href="dir_000001.html">Project Marcel &amp; Oliver</a>&nbsp;/&nbsp;<a class="el" href="dir_000002.html">Graphic_Equalizer</a>&nbsp;/&nbsp;<a class="el" href="dir_000004.html">src</a></div>
+<h1>mouse.hcc File Reference</h1><code>#include &lt;stdlib.hch&gt;</code><br>
+<code>#include "pal_master.hch"</code><br>
+<code>#include "pal_mouse.hch"</code><br>
+<code>#include "<a class="el" href="configuration_8hch-source.html">configuration.hch</a>"</code><br>
+<code>#include "<a class="el" href="mouse__shared_8hch-source.html">mouse_shared.hch</a>"</code><br>
+<code>#include "<a class="el" href="mouse_8hch-source.html">mouse.hch</a>"</code><br>
+
+<p>
+Include dependency graph for mouse.hcc:<p><center><img src="mouse_8hcc__incl.png" border="0" usemap="#mouse.hcc_map" alt="Include dependency graph"></center>
+<map name="mouse.hcc_map">
+<area href="configuration_8hch.html" shape="rect" coords="381,7,506,34" alt="">
+<area href="mouse__shared_8hch.html" shape="rect" coords="530,7,666,34" alt="">
+<area href="mouse_8hch.html" shape="rect" coords="690,7,778,34" alt="">
+</map>
+
+<p>
+<a href="mouse_8hcc-source.html">Go to the source code of this file.</a><table border="0" cellpadding="0" cellspacing="0">
+<tr><td></td></tr>
+<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="mouse_8hcc.html#a0">mouse_main</a> (<a class="el" href="structmousedata__t.html">mousedata_t</a> *mousedata)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Main mousedriver. This function never returns! It calls the main mousehandler and returns the States and coordinates into a shared store. <a href="#a0"></a><br></td></tr>
+</table>
+<hr><a name="_details"></a><h2>Detailed Description</h2>
+<h2><a class="anchor" name="generic">
+Graphic Equalizer API</a></h2>
+input function itself is however performed by the touchscreen of the RC200.<h2><a class="anchor" name="project">
+Project information.</a></h2>
+Project Graphic Equalizer<br>
+ <dl compact><dt><b>Author:</b></dt><dd>O.M. Schinagl </dd></dl>
+<dl compact><dt><b>Date:</b></dt><dd>20041011 </dd></dl>
+<dl compact><dt><b>Version:</b></dt><dd>0.1</dd></dl>
+<h2><a class="anchor" name="copyright">
+Copyright</a></h2>
+Copyright ©2004 Koninklijke Philips Electronics N.V. All rights reserved<h2><a class="anchor" name="history">
+Change history</a></h2>
+20041011: O.M. Schinagl<br>
+ Initial version
+<p>
+Definition in file <a class="el" href="mouse_8hcc-source.html">mouse.hcc</a>.<hr><h2>Function Documentation</h2>
+<a class="anchor" name="a0" doxytag="mouse.hcc::mouse_main"></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top">void mouse_main </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="structmousedata__t.html">mousedata_t</a> *&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>mousedata</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap></td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Main mousedriver. This function never returns! It calls the main mousehandler and returns the States and coordinates into a shared store.
+<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+ <table border="0" cellspacing="2" cellpadding="0">
+ <tr><td valign="top"></td><td valign="top"><em>*mousedata</em>&nbsp;</td><td>Storage for all mousedata and states.</td></tr>
+ </table>
+</dl>
+<dl compact><dt><b>Returns:</b></dt><dd>Never Returns. </dd></dl>
+<dl compact><dt><b>Return values:</b></dt><dd>
+ <table border="0" cellspacing="2" cellpadding="0">
+ <tr><td valign="top"></td><td valign="top"><em>void</em>&nbsp;</td><td></td></tr>
+ </table>
+</dl>
+
+<p>
+Definition at line <a class="el" href="mouse_8hcc-source.html#l00048">48</a> of file <a class="el" href="mouse_8hcc-source.html">mouse.hcc</a>.
+<p>
+References <a class="el" href="mouse__shared_8hch-source.html#l00038">MOUSE_NOT_UPDATED</a>, <a class="el" href="mouse__shared_8hch-source.html#l00029">mousedata_t::state</a>, <a class="el" href="mouse__shared_8hch-source.html#l00030">mousedata_t::status</a>, <a class="el" href="mouse__shared_8hch-source.html#l00028">mousedata_t::x</a>, and <a class="el" href="mouse__shared_8hch-source.html#l00028">mousedata_t::y</a>.
+<p>
+Referenced by <a class="el" href="main_8hcc-source.html#l00051">main()</a>. </td>
+ </tr>
+</table>
+<hr size="1"><address style="align: right;"><small>Generated on Thu Dec 9 14:37:09 2004 for Graphic Equalizer 2 by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.3.9.1 </small></address>
+</body>
+</html>
diff --git a/Graphic_Equalizer_Original_Port/doc/html/mouse_8hcc__incl.map b/Graphic_Equalizer_Original_Port/doc/html/mouse_8hcc__incl.map
new file mode 100644
index 0000000..ed301e8
--- /dev/null
+++ b/Graphic_Equalizer_Original_Port/doc/html/mouse_8hcc__incl.map
@@ -0,0 +1,4 @@
+base referer
+rect $configuration_8hch.html 381,7 506,34
+rect $mouse__shared_8hch.html 530,7 666,34
+rect $mouse_8hch.html 690,7 778,34
diff --git a/Graphic_Equalizer_Original_Port/doc/html/mouse_8hcc__incl.md5 b/Graphic_Equalizer_Original_Port/doc/html/mouse_8hcc__incl.md5
new file mode 100644
index 0000000..8a79480
--- /dev/null
+++ b/Graphic_Equalizer_Original_Port/doc/html/mouse_8hcc__incl.md5
@@ -0,0 +1 @@
+254026f7ee99dbe927548df7b2f1ac05 \ No newline at end of file
diff --git a/Graphic_Equalizer_Original_Port/doc/html/mouse_8hcc__incl.png b/Graphic_Equalizer_Original_Port/doc/html/mouse_8hcc__incl.png
new file mode 100644
index 0000000..f87dd35
--- /dev/null
+++ b/Graphic_Equalizer_Original_Port/doc/html/mouse_8hcc__incl.png
Binary files differ
diff --git a/Graphic_Equalizer_Original_Port/doc/html/mouse_8hch-source.html b/Graphic_Equalizer_Original_Port/doc/html/mouse_8hch-source.html
new file mode 100644
index 0000000..5c7b232
--- /dev/null
+++ b/Graphic_Equalizer_Original_Port/doc/html/mouse_8hch-source.html
@@ -0,0 +1,38 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>Graphic Equalizer 2: C:/Project Marcel &amp; Oliver/Graphic_Equalizer/include/mouse.hch Source File</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.3.9.1 -->
+<div class="qindex"><a class="qindex" href="main.html">Main&nbsp;Page</a> | <a class="qindex" href="annotated.html">Data&nbsp;Structures</a> | <a class="qindex" href="dirs.html">Directories</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="functions.html">Data&nbsp;Fields</a> | <a class="qindex" href="globals.html">Globals</a></div>
+<div class="nav">
+<a class="el" href="dir_000000.html">C:</a>&nbsp;/&nbsp;<a class="el" href="dir_000001.html">Project Marcel &amp; Oliver</a>&nbsp;/&nbsp;<a class="el" href="dir_000002.html">Graphic_Equalizer</a>&nbsp;/&nbsp;<a class="el" href="dir_000003.html">include</a></div>
+<h1>mouse.hch</h1><a href="mouse_8hch.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment">00001
+00019 <span class="preprocessor">#ifndef _MOUSEDRIVER_HCH</span>
+<a name="l00020"></a><a class="code" href="mouse_8hch.html#a0">00020</a> <span class="preprocessor"></span><span class="preprocessor">#define _MOUSEDRIVER_HCH 1</span>
+00021 <span class="preprocessor"></span>
+00022
+00023
+00024 <span class="comment">/*</span>
+00025 <span class="comment"> * Create a define to keep API generic</span>
+00026 <span class="comment"> */</span>
+<a name="l00027"></a><a class="code" href="mouse_8hch.html#a1">00027</a> <span class="preprocessor">#define MouseRun(ClockRate) RC200TouchScreenRun(ClockRate)</span>
+00028 <span class="preprocessor"></span>
+00029
+00030
+00031 <span class="comment">/*</span>
+00032 <span class="comment"> * Main mousedriver loop. This procedure never returns! It handles mouse input,</span>
+00033 <span class="comment"> * updates the shared memory and notifies listeners. It requires a pointer to</span>
+00034 <span class="comment"> * a mousedata_t struct to store mouse information.</span>
+00035 <span class="comment"> */</span>
+00036 <span class="keywordtype">void</span> <a class="code" href="mouse_8hcc.html#a0">mouse_main</a>(<a class="code" href="structmousedata__t.html">mousedata_t</a> *mousedata);
+00037
+00038 <span class="preprocessor">#else</span>
+00039 <span class="preprocessor"></span><span class="preprocessor">#error "ERROR file mousedriver.hch multiple times included"</span>
+00040 <span class="preprocessor"></span><span class="preprocessor">#endif </span><span class="comment">/* --- _MOUSEDRIVER_HCH --- */</span>
+00041
+</pre></div><hr size="1"><address style="align: right;"><small>Generated on Thu Dec 9 14:37:06 2004 for Graphic Equalizer 2 by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.3.9.1 </small></address>
+</body>
+</html>
diff --git a/Graphic_Equalizer_Original_Port/doc/html/mouse_8hch.html b/Graphic_Equalizer_Original_Port/doc/html/mouse_8hch.html
new file mode 100644
index 0000000..557d23f
--- /dev/null
+++ b/Graphic_Equalizer_Original_Port/doc/html/mouse_8hch.html
@@ -0,0 +1,157 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>Graphic Equalizer 2: C:/Project Marcel &amp; Oliver/Graphic_Equalizer/include/mouse.hch File Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.3.9.1 -->
+<div class="qindex"><a class="qindex" href="main.html">Main&nbsp;Page</a> | <a class="qindex" href="annotated.html">Data&nbsp;Structures</a> | <a class="qindex" href="dirs.html">Directories</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="functions.html">Data&nbsp;Fields</a> | <a class="qindex" href="globals.html">Globals</a></div>
+<div class="nav">
+<a class="el" href="dir_000000.html">C:</a>&nbsp;/&nbsp;<a class="el" href="dir_000001.html">Project Marcel &amp; Oliver</a>&nbsp;/&nbsp;<a class="el" href="dir_000002.html">Graphic_Equalizer</a>&nbsp;/&nbsp;<a class="el" href="dir_000003.html">include</a></div>
+<h1>mouse.hch File Reference</h1>
+<p>
+This graph shows which files directly or indirectly include this file:<p><center><img src="mouse_8hch__dep__incl.png" border="0" usemap="#mouse.hchdep_map" alt="Included by dependency graph"></center>
+<map name="mouse.hchdep_map">
+<area href="main_8hcc.html" shape="rect" coords="8,7,82,34" alt="">
+<area href="mouse_8hcc.html" shape="rect" coords="106,7,192,34" alt="">
+</map>
+
+<p>
+<a href="mouse_8hch-source.html">Go to the source code of this file.</a><table border="0" cellpadding="0" cellspacing="0">
+<tr><td></td></tr>
+<tr><td colspan="2"><br><h2>Defines</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="mouse_8hch.html#a0">_MOUSEDRIVER_HCH</a>&nbsp;&nbsp;&nbsp;1</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="mouse_8hch.html#a1">MouseRun</a>(ClockRate)&nbsp;&nbsp;&nbsp;RC200TouchScreenRun(ClockRate)</td></tr>
+
+<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="mouse_8hch.html#a2">mouse_main</a> (<a class="el" href="structmousedata__t.html">mousedata_t</a> *mousedata)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Main mousedriver. This function never returns! It calls the main mousehandler and returns the States and coordinates into a shared store. <a href="#a2"></a><br></td></tr>
+</table>
+<hr><a name="_details"></a><h2>Detailed Description</h2>
+<h2><a class="anchor" name="generic">
+Graphic Equalizer API</a></h2>
+<h2><a class="anchor" name="project">
+Project information.</a></h2>
+Project Graphic Equalizer<br>
+ <dl compact><dt><b>Author:</b></dt><dd>O.M. Schinagl </dd></dl>
+<dl compact><dt><b>Date:</b></dt><dd>20041011 </dd></dl>
+<dl compact><dt><b>Version:</b></dt><dd>0.1</dd></dl>
+<h2><a class="anchor" name="copyright">
+Copyright</a></h2>
+Copyright ©2004 Koninklijke Philips Electronics N.V. All rights reserved<h2><a class="anchor" name="history">
+Change history</a></h2>
+20041011: O.M. Schinagl<br>
+ Initial version
+<p>
+Definition in file <a class="el" href="mouse_8hch-source.html">mouse.hch</a>.<hr><h2>Define Documentation</h2>
+<a class="anchor" name="a0" doxytag="mouse.hch::_MOUSEDRIVER_HCH"></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top">#define _MOUSEDRIVER_HCH&nbsp;&nbsp;&nbsp;1 </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="mouse_8hch-source.html#l00020">20</a> of file <a class="el" href="mouse_8hch-source.html">mouse.hch</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="a1" doxytag="mouse.hch::MouseRun"></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top">#define MouseRun </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">ClockRate&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap>&nbsp;&nbsp;&nbsp;RC200TouchScreenRun(ClockRate)</td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="mouse_8hch-source.html#l00027">27</a> of file <a class="el" href="mouse_8hch-source.html">mouse.hch</a>.
+<p>
+Referenced by <a class="el" href="main_8hcc-source.html#l00051">main()</a>. </td>
+ </tr>
+</table>
+<hr><h2>Function Documentation</h2>
+<a class="anchor" name="a2" doxytag="mouse.hch::mouse_main"></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top">void mouse_main </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="structmousedata__t.html">mousedata_t</a> *&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>mousedata</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap></td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Main mousedriver. This function never returns! It calls the main mousehandler and returns the States and coordinates into a shared store.
+<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+ <table border="0" cellspacing="2" cellpadding="0">
+ <tr><td valign="top"></td><td valign="top"><em>*mousedata</em>&nbsp;</td><td>Storage for all mousedata and states.</td></tr>
+ </table>
+</dl>
+<dl compact><dt><b>Returns:</b></dt><dd>Never Returns. </dd></dl>
+<dl compact><dt><b>Return values:</b></dt><dd>
+ <table border="0" cellspacing="2" cellpadding="0">
+ <tr><td valign="top"></td><td valign="top"><em>void</em>&nbsp;</td><td></td></tr>
+ </table>
+</dl>
+
+<p>
+Definition at line <a class="el" href="mouse_8hcc-source.html#l00048">48</a> of file <a class="el" href="mouse_8hcc-source.html">mouse.hcc</a>.
+<p>
+References <a class="el" href="mouse__shared_8hch-source.html#l00038">MOUSE_NOT_UPDATED</a>, <a class="el" href="mouse__shared_8hch-source.html#l00029">mousedata_t::state</a>, <a class="el" href="mouse__shared_8hch-source.html#l00030">mousedata_t::status</a>, <a class="el" href="mouse__shared_8hch-source.html#l00028">mousedata_t::x</a>, and <a class="el" href="mouse__shared_8hch-source.html#l00028">mousedata_t::y</a>.
+<p>
+Referenced by <a class="el" href="main_8hcc-source.html#l00051">main()</a>. </td>
+ </tr>
+</table>
+<hr size="1"><address style="align: right;"><small>Generated on Thu Dec 9 14:37:08 2004 for Graphic Equalizer 2 by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.3.9.1 </small></address>
+</body>
+</html>
diff --git a/Graphic_Equalizer_Original_Port/doc/html/mouse_8hch__dep__incl.map b/Graphic_Equalizer_Original_Port/doc/html/mouse_8hch__dep__incl.map
new file mode 100644
index 0000000..c2ecffa
--- /dev/null
+++ b/Graphic_Equalizer_Original_Port/doc/html/mouse_8hch__dep__incl.map
@@ -0,0 +1,3 @@
+base referer
+rect $main_8hcc.html 8,7 82,34
+rect $mouse_8hcc.html 106,7 192,34
diff --git a/Graphic_Equalizer_Original_Port/doc/html/mouse_8hch__dep__incl.md5 b/Graphic_Equalizer_Original_Port/doc/html/mouse_8hch__dep__incl.md5
new file mode 100644
index 0000000..30a98a4
--- /dev/null
+++ b/Graphic_Equalizer_Original_Port/doc/html/mouse_8hch__dep__incl.md5
@@ -0,0 +1 @@
+13b256c6eed7f888f4f52496299b4b2d \ No newline at end of file
diff --git a/Graphic_Equalizer_Original_Port/doc/html/mouse_8hch__dep__incl.png b/Graphic_Equalizer_Original_Port/doc/html/mouse_8hch__dep__incl.png
new file mode 100644
index 0000000..ac0c83c
--- /dev/null
+++ b/Graphic_Equalizer_Original_Port/doc/html/mouse_8hch__dep__incl.png
Binary files differ
diff --git a/Graphic_Equalizer_Original_Port/doc/html/mouse__shared_8hch-source.html b/Graphic_Equalizer_Original_Port/doc/html/mouse__shared_8hch-source.html
new file mode 100644
index 0000000..1910665
--- /dev/null
+++ b/Graphic_Equalizer_Original_Port/doc/html/mouse__shared_8hch-source.html
@@ -0,0 +1,53 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>Graphic Equalizer 2: C:/Project Marcel &amp; Oliver/Graphic_Equalizer/include/mouse_shared.hch Source File</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.3.9.1 -->
+<div class="qindex"><a class="qindex" href="main.html">Main&nbsp;Page</a> | <a class="qindex" href="annotated.html">Data&nbsp;Structures</a> | <a class="qindex" href="dirs.html">Directories</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="functions.html">Data&nbsp;Fields</a> | <a class="qindex" href="globals.html">Globals</a></div>
+<div class="nav">
+<a class="el" href="dir_000000.html">C:</a>&nbsp;/&nbsp;<a class="el" href="dir_000001.html">Project Marcel &amp; Oliver</a>&nbsp;/&nbsp;<a class="el" href="dir_000002.html">Graphic_Equalizer</a>&nbsp;/&nbsp;<a class="el" href="dir_000003.html">include</a></div>
+<h1>mouse_shared.hch</h1><a href="mouse__shared_8hch.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment">00001
+00019 <span class="preprocessor">#ifndef _MOUSEDRIVER_SHARED_HCH</span>
+<a name="l00020"></a><a class="code" href="mouse__shared_8hch.html#a0">00020</a> <span class="preprocessor"></span><span class="preprocessor">#define _MOUSEDRIVER_SHARED_HCH 1</span>
+00021 <span class="preprocessor"></span>
+00022 <span class="comment">/*** Data Types **********************/</span>
+00023
+00024 <span class="comment">/*</span>
+00025 <span class="comment"> * Type definition of the shared memory to be used in various processes</span>
+00026 <span class="comment"> */</span>
+<a name="l00027"></a><a class="code" href="structmousedata__t.html">00027</a> <span class="keyword">typedef</span> <span class="keyword">struct </span>{
+<a name="l00028"></a><a class="code" href="structmousedata__t.html#o1">00028</a> <span class="keywordtype">unsigned</span> 10 x, y;
+<a name="l00029"></a><a class="code" href="structmousedata__t.html#o2">00029</a> <span class="keywordtype">unsigned</span> 3 state;
+<a name="l00030"></a><a class="code" href="structmousedata__t.html#o3">00030</a> <span class="keywordtype">unsigned</span> 1 status;
+00031 } <a class="code" href="structmousedata__t.html">mousedata_t</a>;
+00032
+00033
+00034
+00035 <span class="comment">/*</span>
+00036 <span class="comment"> * States used to identify wether mouse data is updated</span>
+00037 <span class="comment"> */</span>
+<a name="l00038"></a><a class="code" href="mouse__shared_8hch.html#a1">00038</a> <span class="preprocessor">#define MOUSE_NOT_UPDATED 0</span>
+<a name="l00039"></a><a class="code" href="mouse__shared_8hch.html#a2">00039</a> <span class="preprocessor"></span><span class="preprocessor">#define MOUSE_UPDATED 1</span>
+00040 <span class="preprocessor"></span>
+00041
+00042
+00043 <span class="comment">/*</span>
+00044 <span class="comment"> * Set of Mouse States defines</span>
+00045 <span class="comment"> */</span>
+<a name="l00046"></a><a class="code" href="mouse__shared_8hch.html#a3">00046</a> <span class="preprocessor">#define MOUSE_STATE_UP 0</span>
+<a name="l00047"></a><a class="code" href="mouse__shared_8hch.html#a4">00047</a> <span class="preprocessor"></span><span class="preprocessor">#define MOUSE_STATE_ON_PRESS 1</span>
+<a name="l00048"></a><a class="code" href="mouse__shared_8hch.html#a5">00048</a> <span class="preprocessor"></span><span class="preprocessor">#define MOUSE_STATE_DOWN 2</span>
+<a name="l00049"></a><a class="code" href="mouse__shared_8hch.html#a6">00049</a> <span class="preprocessor"></span><span class="preprocessor">#define MOUSE_STATE_ON_RELEASE 3</span>
+00050 <span class="preprocessor"></span>
+00051
+00052
+00053 <span class="preprocessor">#else</span>
+00054 <span class="preprocessor"></span><span class="preprocessor">#error "ERROR file mousedriver_shared.hch multiple times included"</span>
+00055 <span class="preprocessor"></span><span class="preprocessor">#endif </span><span class="comment">/* --- _MOUSEDRIVER_SHARED_HCH --- */</span>
+00056
+</pre></div><hr size="1"><address style="align: right;"><small>Generated on Thu Dec 9 14:37:06 2004 for Graphic Equalizer 2 by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.3.9.1 </small></address>
+</body>
+</html>
diff --git a/Graphic_Equalizer_Original_Port/doc/html/mouse__shared_8hch.html b/Graphic_Equalizer_Original_Port/doc/html/mouse__shared_8hch.html
new file mode 100644
index 0000000..05df284
--- /dev/null
+++ b/Graphic_Equalizer_Original_Port/doc/html/mouse__shared_8hch.html
@@ -0,0 +1,247 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>Graphic Equalizer 2: C:/Project Marcel &amp; Oliver/Graphic_Equalizer/include/mouse_shared.hch File Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.3.9.1 -->
+<div class="qindex"><a class="qindex" href="main.html">Main&nbsp;Page</a> | <a class="qindex" href="annotated.html">Data&nbsp;Structures</a> | <a class="qindex" href="dirs.html">Directories</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="functions.html">Data&nbsp;Fields</a> | <a class="qindex" href="globals.html">Globals</a></div>
+<div class="nav">
+<a class="el" href="dir_000000.html">C:</a>&nbsp;/&nbsp;<a class="el" href="dir_000001.html">Project Marcel &amp; Oliver</a>&nbsp;/&nbsp;<a class="el" href="dir_000002.html">Graphic_Equalizer</a>&nbsp;/&nbsp;<a class="el" href="dir_000003.html">include</a></div>
+<h1>mouse_shared.hch File Reference</h1>
+<p>
+This graph shows which files directly or indirectly include this file:<p><center><img src="mouse__shared_8hch__dep__incl.png" border="0" usemap="#mouse_shared.hchdep_map" alt="Included by dependency graph"></center>
+<map name="mouse_shared.hchdep_map">
+<area href="display_8hcc.html" shape="rect" coords="8,7,96,34" alt="">
+<area href="eventhandler_8hcc.html" shape="rect" coords="120,7,242,34" alt="">
+<area href="main_8hcc.html" shape="rect" coords="266,7,341,34" alt="">
+<area href="mouse_8hcc.html" shape="rect" coords="365,7,450,34" alt="">
+<area href="smartmedia_8hcc.html" shape="rect" coords="474,7,592,34" alt="">
+</map>
+
+<p>
+<a href="mouse__shared_8hch-source.html">Go to the source code of this file.</a><table border="0" cellpadding="0" cellspacing="0">
+<tr><td></td></tr>
+<tr><td colspan="2"><br><h2>Data Structures</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmousedata__t.html">mousedata_t</a></td></tr>
+
+<tr><td colspan="2"><br><h2>Defines</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="mouse__shared_8hch.html#a0">_MOUSEDRIVER_SHARED_HCH</a>&nbsp;&nbsp;&nbsp;1</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="mouse__shared_8hch.html#a1">MOUSE_NOT_UPDATED</a>&nbsp;&nbsp;&nbsp;0</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="mouse__shared_8hch.html#a2">MOUSE_UPDATED</a>&nbsp;&nbsp;&nbsp;1</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="mouse__shared_8hch.html#a3">MOUSE_STATE_UP</a>&nbsp;&nbsp;&nbsp;0</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="mouse__shared_8hch.html#a4">MOUSE_STATE_ON_PRESS</a>&nbsp;&nbsp;&nbsp;1</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="mouse__shared_8hch.html#a5">MOUSE_STATE_DOWN</a>&nbsp;&nbsp;&nbsp;2</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="mouse__shared_8hch.html#a6">MOUSE_STATE_ON_RELEASE</a>&nbsp;&nbsp;&nbsp;3</td></tr>
+
+</table>
+<hr><a name="_details"></a><h2>Detailed Description</h2>
+<h2><a class="anchor" name="generic">
+Graphic Equalizer API</a></h2>
+<h2><a class="anchor" name="project">
+Project information.</a></h2>
+Project Graphic Equalizer<br>
+ <dl compact><dt><b>Author:</b></dt><dd>O.M. Schinagl </dd></dl>
+<dl compact><dt><b>Date:</b></dt><dd>20041011 </dd></dl>
+<dl compact><dt><b>Version:</b></dt><dd>0.1</dd></dl>
+<h2><a class="anchor" name="copyright">
+Copyright</a></h2>
+Copyright ©2004 Koninklijke Philips Electronics N.V. All rights reserved<h2><a class="anchor" name="history">
+Change history</a></h2>
+20041011: O.M. Schinagl<br>
+ Initial version
+<p>
+Definition in file <a class="el" href="mouse__shared_8hch-source.html">mouse_shared.hch</a>.<hr><h2>Define Documentation</h2>
+<a class="anchor" name="a0" doxytag="mouse_shared.hch::_MOUSEDRIVER_SHARED_HCH"></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top">#define _MOUSEDRIVER_SHARED_HCH&nbsp;&nbsp;&nbsp;1 </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="mouse__shared_8hch-source.html#l00020">20</a> of file <a class="el" href="mouse__shared_8hch-source.html">mouse_shared.hch</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="a1" doxytag="mouse_shared.hch::MOUSE_NOT_UPDATED"></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top">#define MOUSE_NOT_UPDATED&nbsp;&nbsp;&nbsp;0 </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="mouse__shared_8hch-source.html#l00038">38</a> of file <a class="el" href="mouse__shared_8hch-source.html">mouse_shared.hch</a>.
+<p>
+Referenced by <a class="el" href="mouse_8hcc-source.html#l00048">mouse_main()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="a2" doxytag="mouse_shared.hch::MOUSE_UPDATED"></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top">#define MOUSE_UPDATED&nbsp;&nbsp;&nbsp;1 </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="mouse__shared_8hch-source.html#l00039">39</a> of file <a class="el" href="mouse__shared_8hch-source.html">mouse_shared.hch</a>.
+<p>
+Referenced by <a class="el" href="display_8hcc-source.html#l00065">display_main()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="a3" doxytag="mouse_shared.hch::MOUSE_STATE_UP"></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top">#define MOUSE_STATE_UP&nbsp;&nbsp;&nbsp;0 </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="mouse__shared_8hch-source.html#l00046">46</a> of file <a class="el" href="mouse__shared_8hch-source.html">mouse_shared.hch</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="a4" doxytag="mouse_shared.hch::MOUSE_STATE_ON_PRESS"></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top">#define MOUSE_STATE_ON_PRESS&nbsp;&nbsp;&nbsp;1 </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="mouse__shared_8hch-source.html#l00047">47</a> of file <a class="el" href="mouse__shared_8hch-source.html">mouse_shared.hch</a>.
+<p>
+Referenced by <a class="el" href="eventhandler_8hcc-source.html#l00059">eventhandler_main()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="a5" doxytag="mouse_shared.hch::MOUSE_STATE_DOWN"></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top">#define MOUSE_STATE_DOWN&nbsp;&nbsp;&nbsp;2 </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="mouse__shared_8hch-source.html#l00048">48</a> of file <a class="el" href="mouse__shared_8hch-source.html">mouse_shared.hch</a>.
+<p>
+Referenced by <a class="el" href="eventhandler_8hcc-source.html#l00059">eventhandler_main()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="a6" doxytag="mouse_shared.hch::MOUSE_STATE_ON_RELEASE"></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top">#define MOUSE_STATE_ON_RELEASE&nbsp;&nbsp;&nbsp;3 </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="mouse__shared_8hch-source.html#l00049">49</a> of file <a class="el" href="mouse__shared_8hch-source.html">mouse_shared.hch</a>. </td>
+ </tr>
+</table>
+<hr size="1"><address style="align: right;"><small>Generated on Thu Dec 9 14:37:08 2004 for Graphic Equalizer 2 by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.3.9.1 </small></address>
+</body>
+</html>
diff --git a/Graphic_Equalizer_Original_Port/doc/html/mouse__shared_8hch__dep__incl.map b/Graphic_Equalizer_Original_Port/doc/html/mouse__shared_8hch__dep__incl.map
new file mode 100644
index 0000000..199f162
--- /dev/null
+++ b/Graphic_Equalizer_Original_Port/doc/html/mouse__shared_8hch__dep__incl.map
@@ -0,0 +1,6 @@
+base referer
+rect $display_8hcc.html 8,7 96,34
+rect $eventhandler_8hcc.html 120,7 242,34
+rect $main_8hcc.html 266,7 341,34
+rect $mouse_8hcc.html 365,7 450,34
+rect $smartmedia_8hcc.html 474,7 592,34
diff --git a/Graphic_Equalizer_Original_Port/doc/html/mouse__shared_8hch__dep__incl.md5 b/Graphic_Equalizer_Original_Port/doc/html/mouse__shared_8hch__dep__incl.md5
new file mode 100644
index 0000000..003654a
--- /dev/null
+++ b/Graphic_Equalizer_Original_Port/doc/html/mouse__shared_8hch__dep__incl.md5
@@ -0,0 +1 @@
+0fb2c7882172821abee6da1bc34d0db2 \ No newline at end of file
diff --git a/Graphic_Equalizer_Original_Port/doc/html/mouse__shared_8hch__dep__incl.png b/Graphic_Equalizer_Original_Port/doc/html/mouse__shared_8hch__dep__incl.png
new file mode 100644
index 0000000..01b165d
--- /dev/null
+++ b/Graphic_Equalizer_Original_Port/doc/html/mouse__shared_8hch__dep__incl.png
Binary files differ
diff --git a/Graphic_Equalizer_Original_Port/doc/html/runfft_8hcc-source.html b/Graphic_Equalizer_Original_Port/doc/html/runfft_8hcc-source.html
new file mode 100644
index 0000000..28ce4b0
--- /dev/null
+++ b/Graphic_Equalizer_Original_Port/doc/html/runfft_8hcc-source.html
@@ -0,0 +1,168 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>Graphic Equalizer 2: C:/Project Marcel &amp; Oliver/Graphic_Equalizer/src/runfft.hcc Source File</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.3.9.1 -->
+<div class="qindex"><a class="qindex" href="main.html">Main&nbsp;Page</a> | <a class="qindex" href="annotated.html">Data&nbsp;Structures</a> | <a class="qindex" href="dirs.html">Directories</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="functions.html">Data&nbsp;Fields</a> | <a class="qindex" href="globals.html">Globals</a></div>
+<div class="nav">
+<a class="el" href="dir_000000.html">C:</a>&nbsp;/&nbsp;<a class="el" href="dir_000001.html">Project Marcel &amp; Oliver</a>&nbsp;/&nbsp;<a class="el" href="dir_000002.html">Graphic_Equalizer</a>&nbsp;/&nbsp;<a class="el" href="dir_000004.html">src</a></div>
+<h1>runfft.hcc</h1><a href="runfft_8hcc.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment">00001
+00020 <span class="preprocessor">#include &lt;stdlib.hch&gt;</span>
+00021 <span class="preprocessor">#include "pal_master.hch"</span>
+00022
+00023 <span class="preprocessor">#include "<a class="code" href="configuration_8hch.html">configuration.hch</a>"</span>
+00024 <span class="preprocessor">#if USE_RUNFFT</span>
+00025 <span class="preprocessor"></span><span class="preprocessor">#include "<a class="code" href="audio_8hch.html">audio.hch</a>"</span>
+00026 <span class="preprocessor">#include "<a class="code" href="fft_8hch.html">fft.hch</a>"</span>
+00027
+00028 <span class="preprocessor">#if HAVE_DEBUG</span>
+00029 <span class="preprocessor"></span><span class="preprocessor"> #include "debug.hch"</span>
+00030 <span class="preprocessor">#endif</span>
+00031 <span class="preprocessor"></span>
+00032 <span class="comment">/*</span>
+00033 <span class="comment"> * Forward declarations</span>
+00034 <span class="comment"> */</span>
+00035 <span class="keyword">static</span> macro expr ClockRate = PAL_ACTUAL_CLOCK_RATE;
+00036 <span class="preprocessor">#if HARDWARE_MULTIPLY</span>
+00037 <span class="preprocessor"></span><span class="comment">//input buffer</span>
+00038 ram <span class="keywordtype">signed</span> 18 audio_buffer_in[256] with { block = <span class="stringliteral">"BlockRAM"</span>};
+00039 <span class="comment">//output buffer</span>
+00040 ram <span class="keywordtype">signed</span> 18 audio_buffer_out[128] with { block = <span class="stringliteral">"BlockRAM"</span>};
+00041 <span class="preprocessor">#else</span>
+00042 <span class="preprocessor"></span><span class="comment">//input buffer</span>
+00043 ram <span class="keywordtype">signed</span> 16 audio_buffer_in[256] with { block = <span class="stringliteral">"BlockRAM"</span>};
+00044 <span class="comment">//output buffer</span>
+00045 ram <span class="keywordtype">signed</span> 16 audio_buffer_out[128] with { block = <span class="stringliteral">"BlockRAM"</span>};
+00046 <span class="preprocessor">#endif</span>
+00047 <span class="preprocessor"></span><span class="comment">//EQ settings for the FFT</span>
+00048 ram <span class="keywordtype">unsigned</span> 4 EQ_info[128] with { block = <span class="stringliteral">"BlockRAM"</span>};
+00049 <span class="comment">//EQ settings received from the display</span>
+00050
+00051
+00052 <span class="preprocessor">#if HARDWARE_MULTIPLY</span>
+00053 <span class="preprocessor"></span><span class="keywordtype">signed</span> 18 *audioptr_in1,*audioptr_in2,*audioptr_in3,*audioptr_in4;
+00054
+00055 <span class="keywordtype">signed</span> 18 *audioptr_out1,*audioptr_out2;
+00056
+00057 <span class="keywordtype">unsigned</span> 6 *displayptr1,*displayptr2,*displayptr3,*displayptr4;
+00058 <span class="preprocessor">#else</span>
+00059 <span class="preprocessor"></span><span class="keywordtype">signed</span> 16 *audioptr_in1,*audioptr_in2,*audioptr_in3,*audioptr_in4;
+00060
+00061 <span class="keywordtype">signed</span> 16 *audioptr_out1,*audioptr_out2;
+00062
+00063 <span class="keywordtype">unsigned</span> 6 *displayptr1,*displayptr2,*displayptr3,*displayptr4;
+00064 <span class="preprocessor">#endif</span>
+00065 <span class="preprocessor"></span>
+00076 macro proc <a class="code" href="audio_8hcc.html#a1">audio_main</a>(audiodata, AUDIOIN, AUDIOOUT)
+00077 {
+00078 <span class="keywordtype">signed</span> 18 sample;
+00079 <span class="keywordtype">unsigned</span> 6 sample_count;
+00080 <span class="keywordtype">unsigned</span> 8 i,cycle;
+00081 <span class="keywordtype">unsigned</span> 4 eqinfo;
+00082
+00083 <span class="keywordtype">unsigned</span> 1 FFT_Sync, first;
+00084 macro expr OW = PalAudioOutGetMaxDataWidthCT ();
+00085 macro expr IW = PalAudioInGetMaxDataWidthCT ();
+00086 <span class="keywordtype">signed</span> LeftNew, RightNew;
+00087 <span class="keywordtype">signed</span> Output_sample;
+00088
+00089 ram <span class="keywordtype">unsigned</span> 6 input[64];
+00090
+00091 <span class="comment">//pointers for double and quadruple buffering:</span>
+00092 audioptr_in1 = &amp;audio_buffer_in[0];
+00093 audioptr_in2 = &amp;audio_buffer_in[64];
+00094 audioptr_in3 = &amp;audio_buffer_in[128];
+00095 audioptr_in4 = &amp;audio_buffer_in[192];
+00096
+00097 audioptr_out1 = &amp;audio_buffer_out[0];
+00098 audioptr_out2 = &amp;audio_buffer_out[64];
+00099
+00100 displayptr1 = &amp;audiodata.ifft_info.write[0];
+00101 displayptr2 = &amp;audiodata.ifft_info.write[64];
+00102 displayptr3 = &amp;audiodata.ifft_info.write[128];
+00103 displayptr4 = &amp;audiodata.ifft_info.write[192];
+00104
+00105 FFT_Sync=0;
+00106 par
+00107 {
+00108 <span class="keywordflow">for</span>(;;)
+00109 {
+00110 <span class="keywordflow">if</span> (FFT_Sync) <span class="comment">//if 64 samples are read from ADC...</span>
+00111 {
+00112 par
+00113 {
+00114 <span class="comment">// switch pointers </span>
+00115 audioptr_in1 = audioptr_in2;
+00116 audioptr_in2 = audioptr_in3;
+00117 audioptr_in3 = audioptr_in4;
+00118 audioptr_in4 = audioptr_in1;
+00119
+00120 audioptr_out1 = audioptr_out2;
+00121 audioptr_out2 = audioptr_out1;
+00122
+00123 displayptr1=displayptr2;
+00124 displayptr2=displayptr3;
+00125 displayptr3=displayptr4;
+00126 displayptr4=displayptr1;
+00127
+00128 FFT_Sync = 0;
+00129 }
+00130
+00131 <span class="comment">// FFT calculation</span>
+00132 <a class="code" href="fft_8hcc.html#a4">perform_fft</a>(audioptr_in1);
+00133
+00134 <span class="preprocessor">#if PERFORM_FFT_CALCULATION</span>
+00135 <span class="preprocessor"></span> <a class="code" href="fft_8hcc.html#a6">equalize_audio</a>(&amp;audiodata);
+00136 <span class="preprocessor">#endif</span>
+00137 <span class="preprocessor"></span> <span class="comment">// inverse FFT calculation</span>
+00138 <a class="code" href="fft_8hcc.html#a5">perform_ifft</a>(audioptr_out1,displayptr1);
+00139 }
+00140 <span class="keywordflow">else</span>
+00141 delay;
+00142 }
+00143
+00144 <span class="keywordflow">for</span>(sample_count=0;;)<span class="comment">//store the samples in the inputbuffer</span>
+00145 {
+00146 <span class="keywordflow">if</span> (!FFT_Sync)
+00147 {
+00148 par
+00149 {
+00150 seq
+00151 {
+00152 PalAudioInRead(AUDIOIN, &amp;LeftNew, &amp;RightNew);
+00153 <span class="preprocessor">#if HARDWARE_MULTIPLY </span>
+00154 <span class="preprocessor"></span> audioptr_in1[sample_count] = LeftNew;<span class="comment">//drop 2 LSB's</span>
+00155 <span class="preprocessor">#else</span>
+00156 <span class="preprocessor"></span> audioptr_in1[sample_count] = (LeftNew\\2);<span class="comment">//drop 2 LSB's</span>
+00157 <span class="preprocessor">#endif</span>
+00158 <span class="preprocessor"></span> sample_count++;
+00159 <span class="keywordflow">if</span> (!sample_count)
+00160 {
+00161 FFT_Sync = 1;
+00162 }
+00163 }
+00164 seq
+00165 {
+00166 Output_sample = audioptr_out2[sample_count];
+00167 }
+00168 }
+00169 }
+00170 <span class="keywordflow">else</span>
+00171 {
+00172 delay;
+00173 }
+00174 }
+00175 <span class="keywordflow">for</span>(;;)
+00176 {
+00177 PalAudioOutWrite(AUDIOOUT,(<span class="keywordtype">signed</span> OW)(Output_sample @ 0),(<span class="keywordtype">signed</span> OW)(Output_sample @ 0));
+00178 }
+00179 }<span class="comment">//end par</span>
+00180 }<span class="comment">// end function</span>
+00181 <span class="preprocessor">#endif</span>
+00182 <span class="preprocessor"></span>
+</pre></div><hr size="1"><address style="align: right;"><small>Generated on Thu Dec 9 14:37:07 2004 for Graphic Equalizer 2 by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.3.9.1 </small></address>
+</body>
+</html>
diff --git a/Graphic_Equalizer_Original_Port/doc/html/runfft_8hcc.html b/Graphic_Equalizer_Original_Port/doc/html/runfft_8hcc.html
new file mode 100644
index 0000000..8f3023f
--- /dev/null
+++ b/Graphic_Equalizer_Original_Port/doc/html/runfft_8hcc.html
@@ -0,0 +1,45 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>Graphic Equalizer 2: C:/Project Marcel &amp; Oliver/Graphic_Equalizer/src/runfft.hcc File Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.3.9.1 -->
+<div class="qindex"><a class="qindex" href="main.html">Main&nbsp;Page</a> | <a class="qindex" href="annotated.html">Data&nbsp;Structures</a> | <a class="qindex" href="dirs.html">Directories</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="functions.html">Data&nbsp;Fields</a> | <a class="qindex" href="globals.html">Globals</a></div>
+<div class="nav">
+<a class="el" href="dir_000000.html">C:</a>&nbsp;/&nbsp;<a class="el" href="dir_000001.html">Project Marcel &amp; Oliver</a>&nbsp;/&nbsp;<a class="el" href="dir_000002.html">Graphic_Equalizer</a>&nbsp;/&nbsp;<a class="el" href="dir_000004.html">src</a></div>
+<h1>runfft.hcc File Reference</h1><code>#include &lt;stdlib.hch&gt;</code><br>
+<code>#include "pal_master.hch"</code><br>
+<code>#include "<a class="el" href="configuration_8hch-source.html">configuration.hch</a>"</code><br>
+
+<p>
+Include dependency graph for runfft.hcc:<p><center><img src="runfft_8hcc__incl.png" border="0" usemap="#runfft.hcc_map" alt="Include dependency graph"></center>
+<map name="runfft.hcc_map">
+<area href="configuration_8hch.html" shape="rect" coords="245,7,370,34" alt="">
+</map>
+
+<p>
+<a href="runfft_8hcc-source.html">Go to the source code of this file.</a><table border="0" cellpadding="0" cellspacing="0">
+<tr><td></td></tr>
+</table>
+<hr><a name="_details"></a><h2>Detailed Description</h2>
+<h2><a class="anchor" name="generic">
+Graphic Equalizer API</a></h2>
+audiosamples are correctly buffered and fed correctly to the FFT.<br>
+ This module will also handle the output of the modified audio samples.<h2><a class="anchor" name="project">
+Project information.</a></h2>
+Project Graphic Equalizer<br>
+ <dl compact><dt><b>Author:</b></dt><dd>M. Lauwerijssen </dd></dl>
+<dl compact><dt><b>Date:</b></dt><dd>20041110 </dd></dl>
+<dl compact><dt><b>Version:</b></dt><dd>0.1</dd></dl>
+<h2><a class="anchor" name="copyright">
+Copyright</a></h2>
+Copyright ©2004 Koninklijke Philips Electronics N.V. All rights reserved<h2><a class="anchor" name="history">
+Change history</a></h2>
+20041110: M. Lauwerijssen<br>
+ Initial version
+<p>
+Definition in file <a class="el" href="runfft_8hcc-source.html">runfft.hcc</a>.<hr size="1"><address style="align: right;"><small>Generated on Thu Dec 9 14:37:09 2004 for Graphic Equalizer 2 by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.3.9.1 </small></address>
+</body>
+</html>
diff --git a/Graphic_Equalizer_Original_Port/doc/html/runfft_8hcc__incl.map b/Graphic_Equalizer_Original_Port/doc/html/runfft_8hcc__incl.map
new file mode 100644
index 0000000..d372980
--- /dev/null
+++ b/Graphic_Equalizer_Original_Port/doc/html/runfft_8hcc__incl.map
@@ -0,0 +1,2 @@
+base referer
+rect $configuration_8hch.html 245,7 370,34
diff --git a/Graphic_Equalizer_Original_Port/doc/html/runfft_8hcc__incl.md5 b/Graphic_Equalizer_Original_Port/doc/html/runfft_8hcc__incl.md5
new file mode 100644
index 0000000..ff1d843
--- /dev/null
+++ b/Graphic_Equalizer_Original_Port/doc/html/runfft_8hcc__incl.md5
@@ -0,0 +1 @@
+7129277ffd9cca9295345528e3048acb \ No newline at end of file
diff --git a/Graphic_Equalizer_Original_Port/doc/html/runfft_8hcc__incl.png b/Graphic_Equalizer_Original_Port/doc/html/runfft_8hcc__incl.png
new file mode 100644
index 0000000..3a3f863
--- /dev/null
+++ b/Graphic_Equalizer_Original_Port/doc/html/runfft_8hcc__incl.png
Binary files differ
diff --git a/Graphic_Equalizer_Original_Port/doc/html/runfft_8hch-source.html b/Graphic_Equalizer_Original_Port/doc/html/runfft_8hch-source.html
new file mode 100644
index 0000000..2e52e1b
--- /dev/null
+++ b/Graphic_Equalizer_Original_Port/doc/html/runfft_8hch-source.html
@@ -0,0 +1,15 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>Graphic Equalizer 2: C:/Project Marcel &amp; Oliver/Graphic_Equalizer/include/runfft.hch Source File</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.3.9.1 -->
+<div class="qindex"><a class="qindex" href="main.html">Main&nbsp;Page</a> | <a class="qindex" href="annotated.html">Data&nbsp;Structures</a> | <a class="qindex" href="dirs.html">Directories</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="functions.html">Data&nbsp;Fields</a> | <a class="qindex" href="globals.html">Globals</a></div>
+<div class="nav">
+<a class="el" href="dir_000000.html">C:</a>&nbsp;/&nbsp;<a class="el" href="dir_000001.html">Project Marcel &amp; Oliver</a>&nbsp;/&nbsp;<a class="el" href="dir_000002.html">Graphic_Equalizer</a>&nbsp;/&nbsp;<a class="el" href="dir_000003.html">include</a></div>
+<h1>runfft.hch</h1><a href="runfft_8hch.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment">00001 <span class="keyword">extern</span> macro proc <a class="code" href="runfft_8hch.html#a0">RunFFT</a> (AudioIn, AudioOut);
+</pre></div><hr size="1"><address style="align: right;"><small>Generated on Thu Dec 9 14:37:06 2004 for Graphic Equalizer 2 by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.3.9.1 </small></address>
+</body>
+</html>
diff --git a/Graphic_Equalizer_Original_Port/doc/html/runfft_8hch.html b/Graphic_Equalizer_Original_Port/doc/html/runfft_8hch.html
new file mode 100644
index 0000000..c33f46c
--- /dev/null
+++ b/Graphic_Equalizer_Original_Port/doc/html/runfft_8hch.html
@@ -0,0 +1,66 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>Graphic Equalizer 2: C:/Project Marcel &amp; Oliver/Graphic_Equalizer/include/runfft.hch File Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.3.9.1 -->
+<div class="qindex"><a class="qindex" href="main.html">Main&nbsp;Page</a> | <a class="qindex" href="annotated.html">Data&nbsp;Structures</a> | <a class="qindex" href="dirs.html">Directories</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="functions.html">Data&nbsp;Fields</a> | <a class="qindex" href="globals.html">Globals</a></div>
+<div class="nav">
+<a class="el" href="dir_000000.html">C:</a>&nbsp;/&nbsp;<a class="el" href="dir_000001.html">Project Marcel &amp; Oliver</a>&nbsp;/&nbsp;<a class="el" href="dir_000002.html">Graphic_Equalizer</a>&nbsp;/&nbsp;<a class="el" href="dir_000003.html">include</a></div>
+<h1>runfft.hch File Reference</h1>
+<p>
+This graph shows which files directly or indirectly include this file:<p><center><img src="runfft_8hch__dep__incl.png" border="0" usemap="#runfft.hchdep_map" alt="Included by dependency graph"></center>
+<map name="runfft.hchdep_map">
+<area href="main_8hcc.html" shape="rect" coords="9,7,83,34" alt="">
+</map>
+
+<p>
+<a href="runfft_8hch-source.html">Go to the source code of this file.</a><table border="0" cellpadding="0" cellspacing="0">
+<tr><td></td></tr>
+<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">macro proc&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="runfft_8hch.html#a0">RunFFT</a> (AudioIn, AudioOut)</td></tr>
+
+</table>
+<hr><h2>Function Documentation</h2>
+<a class="anchor" name="a0" doxytag="runfft.hch::RunFFT"></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top">macro proc RunFFT </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">AudioIn&nbsp;</td>
+ <td class="mdname" nowrap>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td class="md"></td>
+ <td class="md" nowrap>AudioOut&nbsp;</td>
+ <td class="mdname" nowrap></td>
+ </tr>
+ <tr>
+ <td class="md"></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"></td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+ </td>
+ </tr>
+</table>
+<hr size="1"><address style="align: right;"><small>Generated on Thu Dec 9 14:37:08 2004 for Graphic Equalizer 2 by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.3.9.1 </small></address>
+</body>
+</html>
diff --git a/Graphic_Equalizer_Original_Port/doc/html/runfft_8hch__dep__incl.map b/Graphic_Equalizer_Original_Port/doc/html/runfft_8hch__dep__incl.map
new file mode 100644
index 0000000..cf253aa
--- /dev/null
+++ b/Graphic_Equalizer_Original_Port/doc/html/runfft_8hch__dep__incl.map
@@ -0,0 +1,2 @@
+base referer
+rect $main_8hcc.html 9,7 83,34
diff --git a/Graphic_Equalizer_Original_Port/doc/html/runfft_8hch__dep__incl.md5 b/Graphic_Equalizer_Original_Port/doc/html/runfft_8hch__dep__incl.md5
new file mode 100644
index 0000000..49eeeaa
--- /dev/null
+++ b/Graphic_Equalizer_Original_Port/doc/html/runfft_8hch__dep__incl.md5
@@ -0,0 +1 @@
+209ac5ed7914b67b6e24a36a5cd34862 \ No newline at end of file
diff --git a/Graphic_Equalizer_Original_Port/doc/html/runfft_8hch__dep__incl.png b/Graphic_Equalizer_Original_Port/doc/html/runfft_8hch__dep__incl.png
new file mode 100644
index 0000000..9d7198c
--- /dev/null
+++ b/Graphic_Equalizer_Original_Port/doc/html/runfft_8hch__dep__incl.png
Binary files differ
diff --git a/Graphic_Equalizer_Original_Port/doc/html/sample_8hcc-source.html b/Graphic_Equalizer_Original_Port/doc/html/sample_8hcc-source.html
new file mode 100644
index 0000000..f7ee92e
--- /dev/null
+++ b/Graphic_Equalizer_Original_Port/doc/html/sample_8hcc-source.html
@@ -0,0 +1,78 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>Graphic Equalizer: C:/Project Marcel &amp; Oliver/Graphic_Equalizer/src/sample.hcc Source File</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.3.9.1 -->
+<div class="qindex"><a class="qindex" href="main.html">Main&nbsp;Page</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="globals.html">Globals</a></div>
+<div class="nav">
+<a class="el" href="dir_000000.html">C:</a>&nbsp;/&nbsp;<a class="el" href="dir_000001.html">Project Marcel &amp; Oliver</a>&nbsp;/&nbsp;<a class="el" href="dir_000002.html">Graphic_Equalizer</a>&nbsp;/&nbsp;<a class="el" href="dir_000004.html">src</a></div>
+<h1>sample.hcc</h1><a href="sample_8hcc.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment">00001
+00019 <span class="comment">/******** System Includes *************/</span>
+00020
+00021 <span class="comment">/******** Application Includes ********/</span>
+00022 <span class="preprocessor">#include "<a class="code" href="sample_8hch.html">sample.hch</a>"</span>
+00023
+00024
+00025
+00026 <span class="comment">/*</span>
+00027 <span class="comment"> * Pointer that points towards the current 64 bits samples.</span>
+00028 <span class="comment"> */</span>
+00029 <span class="keywordtype">signed</span> 16 *audio_in_ptr;
+00030
+00031 <span class="comment">/*</span>
+00032 <span class="comment"> * 64 step counter to keep track of our samples. This is a private variable.</span>
+00033 <span class="comment"> */</span>
+00034 <span class="keywordtype">unsigned</span> 8 sample_count;
+00035
+00036
+00037
+<a name="l00046"></a><a class="code" href="sample_8hcc.html#a2">00046</a> <span class="keywordtype">void</span> <a class="code" href="sample_8hcc.html#a2">sample_add</a>(<span class="keywordtype">signed</span> 16 in_sample) {
+00047 <span class="comment">/*</span>
+00048 <span class="comment"> * We only sample 64 bits in our buffer, hence we circulate around the</span>
+00049 <span class="comment"> * last 6 bits.</span>
+00050 <span class="comment"> */</span>
+00051 audio_in_ptr[sample_count &lt;-6] = in_sample;
+00052 sample_count++;
+00053 } <span class="comment">/* --- sample_add() --- */</span>
+00054
+00055
+00056
+<a name="l00065"></a><a class="code" href="sample_8hcc.html#a3">00065</a> <span class="keywordtype">void</span> <a class="code" href="sample_8hcc.html#a3">sample_get</a>(<span class="keywordtype">signed</span> 16 *out_sample) {
+00066 <span class="comment">/*</span>
+00067 <span class="comment"> * We circulate around a 64 bits buffer, therefor we only use the last</span>
+00068 <span class="comment"> * 6 bits.</span>
+00069 <span class="comment"> */</span>
+00070 *out_sample = audio_out_ptr[sample_count &lt;-6];
+00071 } <span class="comment">/* --- sample_get() --- */</span>
+00072
+00073
+00074
+<a name="l00084"></a><a class="code" href="sample_8hcc.html#a4">00084</a> <span class="keywordtype">unsigned</span> 1 <a class="code" href="sample_8hch.html#a2">sample_rotate_buffers</a>(<span class="keywordtype">void</span>) {
+00085 <span class="keywordtype">unsigned</span> 1 retval; <span class="comment">/* store for returnvalue */</span>
+00086
+00087 retval = 0;
+00088 <span class="comment">/*</span>
+00089 <span class="comment"> * We only want to read 64 samples, but calculations work nicer if we</span>
+00090 <span class="comment"> * use 256 samples. Therefor we circulate our audio pointer around.</span>
+00091 <span class="comment"> */</span>
+00092 <span class="keywordflow">if</span> (!(sample_count &lt;- 6)) {
+00093 <span class="comment">/*</span>
+00094 <span class="comment"> * 64 Samples have passed. We are back at '0'. Use the full</span>
+00095 <span class="comment"> * sample count as index which is 0 64 128 or 192 and back to</span>
+00096 <span class="comment"> * 0. Our Output is only 128 big so we only look at the</span>
+00097 <span class="comment"> * 7 LSB. Also, notify the main application that 64 samples</span>
+00098 <span class="comment"> * have been processed.</span>
+00099 <span class="comment"> */</span>
+00100 par {
+00101 audio_in_ptr = &amp;pcm_audio_in[sample_count];
+00102 audio_out_ptr = &amp;pcm_audio_out[(sample_count &lt;- 7)];
+00103 retval = 1;
+00104 }
+00105 }
+00106 } <span class="comment">/* --- sample_rotate_buffers() --- */</span>
+</pre></div><hr size="1"><address style="align: right;"><small>Generated on Mon Nov 29 10:53:29 2004 for Graphic Equalizer by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.3.9.1 </small></address>
+</body>
+</html>
diff --git a/Graphic_Equalizer_Original_Port/doc/html/sample_8hcc.html b/Graphic_Equalizer_Original_Port/doc/html/sample_8hcc.html
new file mode 100644
index 0000000..bbe85aa
--- /dev/null
+++ b/Graphic_Equalizer_Original_Port/doc/html/sample_8hcc.html
@@ -0,0 +1,182 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>Graphic Equalizer: C:/Project Marcel &amp; Oliver/Graphic_Equalizer/src/sample.hcc File Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.3.9.1 -->
+<div class="qindex"><a class="qindex" href="main.html">Main&nbsp;Page</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="globals.html">Globals</a></div>
+<div class="nav">
+<a class="el" href="dir_000000.html">C:</a>&nbsp;/&nbsp;<a class="el" href="dir_000001.html">Project Marcel &amp; Oliver</a>&nbsp;/&nbsp;<a class="el" href="dir_000002.html">Graphic_Equalizer</a>&nbsp;/&nbsp;<a class="el" href="dir_000004.html">src</a></div>
+<h1>sample.hcc File Reference</h1><code>#include "<a class="el" href="sample_8hch-source.html">sample.hch</a>"</code><br>
+
+<p>
+Include dependency graph for sample.hcc:<p><center><img src="sample_8hcc__incl.png" border="0" usemap="#sample.hcc_map" alt="Include dependency graph"></center>
+<map name="sample.hcc_map">
+<area href="sample_8hch.html" shape="rect" coords="8,7,98,34" alt="">
+</map>
+
+<p>
+<a href="sample_8hcc-source.html">Go to the source code of this file.</a><table border="0" cellpadding="0" cellspacing="0">
+<tr><td></td></tr>
+<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="sample_8hcc.html#a2">sample_add</a> (signed 16 in_sample)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">This procedure adds the supplied sample to the input buffer. <a href="#a2"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="sample_8hcc.html#a3">sample_get</a> (signed 16 *out_sample)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">This procedure gets the sample from the current output buffer. <a href="#a3"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">unsigned&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="sample_8hcc.html#a4">sample_rotate_buffers</a> (void)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">This procedure rotates our buffers around if 64 samples are read into our current buffer. <a href="#a4"></a><br></td></tr>
+</table>
+<hr><a name="_details"></a><h2>Detailed Description</h2>
+<h2><a class="anchor" name="generic">
+Audiodriver API</a></h2>
+<h2><a class="anchor" name="project">
+Project information.</a></h2>
+Project Graphic Equalizer<br>
+ <dl compact><dt><b>Author:</b></dt><dd>O.M. Schinagl </dd></dl>
+<dl compact><dt><b>Date:</b></dt><dd>20041021 </dd></dl>
+<dl compact><dt><b>Version:</b></dt><dd>0.1</dd></dl>
+<h2><a class="anchor" name="copyright">
+Copyright</a></h2>
+Copyright ©2004 Koninklijke Philips Electronics N.V. All rights reserved<h2><a class="anchor" name="history">
+Change history</a></h2>
+20041021: O.M. Schinagl<br>
+ Initial version
+<p>
+Definition in file <a class="el" href="sample_8hcc-source.html">sample.hcc</a>.<hr><h2>Function Documentation</h2>
+<a class="anchor" name="a2" doxytag="sample.hcc::sample_add"></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top">void sample_add </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">signed 16&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>in_sample</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap></td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+This procedure adds the supplied sample to the input buffer.
+<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+ <table border="0" cellspacing="2" cellpadding="0">
+ <tr><td valign="top"></td><td valign="top"><em>signed</em>&nbsp;</td><td>16 in_sample 16 bits signed sample to be added.</td></tr>
+ </table>
+</dl>
+<dl compact><dt><b>Returns:</b></dt><dd>void </dd></dl>
+<dl compact><dt><b>Return values:</b></dt><dd>
+ <table border="0" cellspacing="2" cellpadding="0">
+ <tr><td valign="top"></td><td valign="top"><em>void</em>&nbsp;</td><td></td></tr>
+ </table>
+</dl>
+
+<p>
+Definition at line <a class="el" href="sample_8hcc-source.html#l00046">46</a> of file <a class="el" href="sample_8hcc-source.html">sample.hcc</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="a3" doxytag="sample.hcc::sample_get"></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top">void sample_get </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">signed 16 *&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>out_sample</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap></td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+This procedure gets the sample from the current output buffer.
+<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+ <table border="0" cellspacing="2" cellpadding="0">
+ <tr><td valign="top"></td><td valign="top"><em>*</em>&nbsp;</td><td>in_sample pointer to storage for sample.</td></tr>
+ </table>
+</dl>
+<dl compact><dt><b>Returns:</b></dt><dd>void </dd></dl>
+<dl compact><dt><b>Return values:</b></dt><dd>
+ <table border="0" cellspacing="2" cellpadding="0">
+ <tr><td valign="top"></td><td valign="top"><em>void</em>&nbsp;</td><td></td></tr>
+ </table>
+</dl>
+
+<p>
+Definition at line <a class="el" href="sample_8hcc-source.html#l00065">65</a> of file <a class="el" href="sample_8hcc-source.html">sample.hcc</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="a4" doxytag="sample.hcc::sample_rotate_buffers"></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top">unsigned sample_rotate_buffers </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">void&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap></td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+This procedure rotates our buffers around if 64 samples are read into our current buffer.
+<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+ <table border="0" cellspacing="2" cellpadding="0">
+ <tr><td valign="top"></td><td valign="top"><em>in_sample</em>&nbsp;</td><td>16 bits signed sample to be added.</td></tr>
+ </table>
+</dl>
+<dl compact><dt><b>Returns:</b></dt><dd>1 when 64 samples have passed, 0 otherwise. </dd></dl>
+<dl compact><dt><b>Return values:</b></dt><dd>
+ <table border="0" cellspacing="2" cellpadding="0">
+ <tr><td valign="top"></td><td valign="top"><em>unsigned</em>&nbsp;</td><td>1; </td></tr>
+ </table>
+</dl>
+
+<p>
+Definition at line <a class="el" href="sample_8hcc-source.html#l00084">84</a> of file <a class="el" href="sample_8hcc-source.html">sample.hcc</a>. </td>
+ </tr>
+</table>
+<hr size="1"><address style="align: right;"><small>Generated on Mon Nov 29 10:53:30 2004 for Graphic Equalizer by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.3.9.1 </small></address>
+</body>
+</html>
diff --git a/Graphic_Equalizer_Original_Port/doc/html/sample_8hcc__incl.map b/Graphic_Equalizer_Original_Port/doc/html/sample_8hcc__incl.map
new file mode 100644
index 0000000..3cc520a
--- /dev/null
+++ b/Graphic_Equalizer_Original_Port/doc/html/sample_8hcc__incl.map
@@ -0,0 +1,2 @@
+base referer
+rect $sample_8hch.html 8,7 98,34
diff --git a/Graphic_Equalizer_Original_Port/doc/html/sample_8hcc__incl.md5 b/Graphic_Equalizer_Original_Port/doc/html/sample_8hcc__incl.md5
new file mode 100644
index 0000000..7c12b7e
--- /dev/null
+++ b/Graphic_Equalizer_Original_Port/doc/html/sample_8hcc__incl.md5
@@ -0,0 +1 @@
+1fc36cd8ce3c69063c04bf4a24a0e84e \ No newline at end of file
diff --git a/Graphic_Equalizer_Original_Port/doc/html/sample_8hcc__incl.png b/Graphic_Equalizer_Original_Port/doc/html/sample_8hcc__incl.png
new file mode 100644
index 0000000..55cd496
--- /dev/null
+++ b/Graphic_Equalizer_Original_Port/doc/html/sample_8hcc__incl.png
Binary files differ
diff --git a/Graphic_Equalizer_Original_Port/doc/html/sample_8hch-source.html b/Graphic_Equalizer_Original_Port/doc/html/sample_8hch-source.html
new file mode 100644
index 0000000..5789f08
--- /dev/null
+++ b/Graphic_Equalizer_Original_Port/doc/html/sample_8hch-source.html
@@ -0,0 +1,37 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>Graphic Equalizer: C:/Project Marcel &amp; Oliver/Graphic_Equalizer/include/sample.hch Source File</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.3.9.1 -->
+<div class="qindex"><a class="qindex" href="main.html">Main&nbsp;Page</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="globals.html">Globals</a></div>
+<div class="nav">
+<a class="el" href="dir_000000.html">C:</a>&nbsp;/&nbsp;<a class="el" href="dir_000001.html">Project Marcel &amp; Oliver</a>&nbsp;/&nbsp;<a class="el" href="dir_000002.html">Graphic_Equalizer</a>&nbsp;/&nbsp;<a class="el" href="dir_000003.html">include</a></div>
+<h1>sample.hch</h1><a href="sample_8hch.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment">00001
+00019 <span class="preprocessor">#ifndef _SAMPLE_HCH</span>
+00020 <span class="preprocessor"></span><span class="preprocessor">#define _SAMPLE_HCH 1</span>
+00021 <span class="preprocessor"></span>
+00022
+00023
+00024 <span class="comment">/*</span>
+00025 <span class="comment"> * This procedure adds the supplied sample to the input buffer.</span>
+00026 <span class="comment"> */</span>
+00027 <span class="keywordtype">void</span> <a class="code" href="sample_8hcc.html#a2">sample_add</a>(in_sample);
+00028
+00029
+00030
+00031 <span class="comment">/*</span>
+00032 <span class="comment"> * This procedure rotates our buffers around if 64 samples are read into our</span>
+00033 <span class="comment"> * current buffer. It returns 1 when 64 samples have passed, 0 otherwise.</span>
+00034 <span class="comment"> */</span>
+00035 <span class="keywordtype">unsigned</span> 1 <a class="code" href="sample_8hch.html#a2">sample_rotate_buffers</a>(<span class="keywordtype">void</span>);
+00036
+00037 <span class="preprocessor">#else</span>
+00038 <span class="preprocessor"></span><span class="preprocessor">#error "ERROR file sample.hch multiple times included"</span>
+00039 <span class="preprocessor"></span><span class="preprocessor">#endif </span><span class="comment">/* --- _SAMPLE_HCH --- */</span>
+00040
+</pre></div><hr size="1"><address style="align: right;"><small>Generated on Mon Nov 29 10:53:29 2004 for Graphic Equalizer by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.3.9.1 </small></address>
+</body>
+</html>
diff --git a/Graphic_Equalizer_Original_Port/doc/html/sample_8hch.html b/Graphic_Equalizer_Original_Port/doc/html/sample_8hch.html
new file mode 100644
index 0000000..8c96e57
--- /dev/null
+++ b/Graphic_Equalizer_Original_Port/doc/html/sample_8hch.html
@@ -0,0 +1,89 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>Graphic Equalizer: C:/Project Marcel &amp; Oliver/Graphic_Equalizer/include/sample.hch File Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.3.9.1 -->
+<div class="qindex"><a class="qindex" href="main.html">Main&nbsp;Page</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="globals.html">Globals</a></div>
+<div class="nav">
+<a class="el" href="dir_000000.html">C:</a>&nbsp;/&nbsp;<a class="el" href="dir_000001.html">Project Marcel &amp; Oliver</a>&nbsp;/&nbsp;<a class="el" href="dir_000002.html">Graphic_Equalizer</a>&nbsp;/&nbsp;<a class="el" href="dir_000003.html">include</a></div>
+<h1>sample.hch File Reference</h1>
+<p>
+This graph shows which files directly or indirectly include this file:<p><center><img src="sample_8hch__dep__incl.png" border="0" usemap="#sample.hchdep_map" alt="Included by dependency graph"></center>
+<map name="sample.hchdep_map">
+<area href="sample_8hcc.html" shape="rect" coords="8,7,98,34" alt="">
+</map>
+
+<p>
+<a href="sample_8hch-source.html">Go to the source code of this file.</a><table border="0" cellpadding="0" cellspacing="0">
+<tr><td></td></tr>
+<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">unsigned&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="sample_8hch.html#a2">sample_rotate_buffers</a> (void)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">This procedure rotates our buffers around if 64 samples are read into our current buffer. <a href="#a2"></a><br></td></tr>
+</table>
+<hr><a name="_details"></a><h2>Detailed Description</h2>
+<h2><a class="anchor" name="generic">
+Audiodriver API</a></h2>
+<h2><a class="anchor" name="project">
+Project information.</a></h2>
+Project Graphic Equalizer<br>
+ <dl compact><dt><b>Author:</b></dt><dd>O.M. Schinagl </dd></dl>
+<dl compact><dt><b>Date:</b></dt><dd>20041011 </dd></dl>
+<dl compact><dt><b>Version:</b></dt><dd>0.1</dd></dl>
+<h2><a class="anchor" name="copyright">
+Copyright</a></h2>
+Copyright ©2004 Koninklijke Philips Electronics N.V. All rights reserved<h2><a class="anchor" name="history">
+Change history</a></h2>
+20041011: O.M. Schinagl<br>
+ Initial version
+<p>
+Definition in file <a class="el" href="sample_8hch-source.html">sample.hch</a>.<hr><h2>Function Documentation</h2>
+<a class="anchor" name="a2" doxytag="sample.hch::sample_rotate_buffers"></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top">unsigned sample_rotate_buffers </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">void&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap></td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+This procedure rotates our buffers around if 64 samples are read into our current buffer.
+<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+ <table border="0" cellspacing="2" cellpadding="0">
+ <tr><td valign="top"></td><td valign="top"><em>in_sample</em>&nbsp;</td><td>16 bits signed sample to be added.</td></tr>
+ </table>
+</dl>
+<dl compact><dt><b>Returns:</b></dt><dd>1 when 64 samples have passed, 0 otherwise. </dd></dl>
+<dl compact><dt><b>Return values:</b></dt><dd>
+ <table border="0" cellspacing="2" cellpadding="0">
+ <tr><td valign="top"></td><td valign="top"><em>unsigned</em>&nbsp;</td><td>1; </td></tr>
+ </table>
+</dl>
+
+<p>
+Definition at line <a class="el" href="sample_8hcc-source.html#l00084">84</a> of file <a class="el" href="sample_8hcc-source.html">sample.hcc</a>. </td>
+ </tr>
+</table>
+<hr size="1"><address style="align: right;"><small>Generated on Mon Nov 29 10:53:30 2004 for Graphic Equalizer by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.3.9.1 </small></address>
+</body>
+</html>
diff --git a/Graphic_Equalizer_Original_Port/doc/html/sample_8hch__dep__incl.map b/Graphic_Equalizer_Original_Port/doc/html/sample_8hch__dep__incl.map
new file mode 100644
index 0000000..6282c3e
--- /dev/null
+++ b/Graphic_Equalizer_Original_Port/doc/html/sample_8hch__dep__incl.map
@@ -0,0 +1,2 @@
+base referer
+rect $sample_8hcc.html 8,7 98,34
diff --git a/Graphic_Equalizer_Original_Port/doc/html/sample_8hch__dep__incl.md5 b/Graphic_Equalizer_Original_Port/doc/html/sample_8hch__dep__incl.md5
new file mode 100644
index 0000000..2f59778
--- /dev/null
+++ b/Graphic_Equalizer_Original_Port/doc/html/sample_8hch__dep__incl.md5
@@ -0,0 +1 @@
+9b1a683b9bef5e200828acd3ea8684fb \ No newline at end of file
diff --git a/Graphic_Equalizer_Original_Port/doc/html/sample_8hch__dep__incl.png b/Graphic_Equalizer_Original_Port/doc/html/sample_8hch__dep__incl.png
new file mode 100644
index 0000000..edc203a
--- /dev/null
+++ b/Graphic_Equalizer_Original_Port/doc/html/sample_8hch__dep__incl.png
Binary files differ
diff --git a/Graphic_Equalizer_Original_Port/doc/html/smartmedia_8hcc-source.html b/Graphic_Equalizer_Original_Port/doc/html/smartmedia_8hcc-source.html
new file mode 100644
index 0000000..f291834
--- /dev/null
+++ b/Graphic_Equalizer_Original_Port/doc/html/smartmedia_8hcc-source.html
@@ -0,0 +1,215 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>Graphic Equalizer 2: C:/Project Marcel &amp; Oliver/Graphic_Equalizer/src/smartmedia.hcc Source File</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.3.9.1 -->
+<div class="qindex"><a class="qindex" href="main.html">Main&nbsp;Page</a> | <a class="qindex" href="annotated.html">Data&nbsp;Structures</a> | <a class="qindex" href="dirs.html">Directories</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="functions.html">Data&nbsp;Fields</a> | <a class="qindex" href="globals.html">Globals</a></div>
+<div class="nav">
+<a class="el" href="dir_000000.html">C:</a>&nbsp;/&nbsp;<a class="el" href="dir_000001.html">Project Marcel &amp; Oliver</a>&nbsp;/&nbsp;<a class="el" href="dir_000002.html">Graphic_Equalizer</a>&nbsp;/&nbsp;<a class="el" href="dir_000004.html">src</a></div>
+<h1>smartmedia.hcc</h1><a href="smartmedia_8hcc.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment">00001
+00019 <span class="comment">/******** System Includes *************/</span>
+00020 <span class="preprocessor">#include &lt;stdlib.hch&gt;</span>
+00021
+00022 <span class="preprocessor">#include "pal_master.hch"</span>
+00023
+00024 <span class="comment">/******** Application Includes ********/</span>
+00025 <span class="preprocessor">#include "<a class="code" href="configuration_8hch.html">configuration.hch</a>"</span>
+00026 <span class="preprocessor">#include "<a class="code" href="display__shared_8hch.html">display_shared.hch</a>"</span>
+00027 <span class="preprocessor">#include "<a class="code" href="smartmedia__shared_8hch.html">smartmedia_shared.hch</a>"</span>
+00028 <span class="preprocessor">#include "<a class="code" href="smartmedia_8hch.html">smartmedia.hch</a>"</span>
+00029
+00030 <span class="preprocessor">#if HAVE_DEBUG</span>
+00031 <span class="preprocessor"></span><span class="preprocessor"> #include "debug.hch"</span>
+00032 <span class="preprocessor">#endif</span>
+00033 <span class="preprocessor"></span>
+00034 <span class="preprocessor">#include "<a class="code" href="audio_8hch.html">audio.hch</a>"</span>
+00035 <span class="preprocessor">#include "<a class="code" href="mouse__shared_8hch.html">mouse_shared.hch</a>"</span>
+00036 <span class="preprocessor">#include "<a class="code" href="eventhandler__shared_8hch.html">eventhandler_shared.hch</a>"</span>
+00037 <span class="preprocessor">#include "<a class="code" href="display_8hch.html">display.hch</a>"</span> <span class="comment">/* FIXME: temporary include, needs to be moved to 'init' */</span>
+00038
+<a name="l00046"></a><a class="code" href="smartmedia_8hcc.html#a0">00046</a> <span class="keywordtype">unsigned</span> 1 <a class="code" href="smartmedia_8hch.html#a9">smartmedia_init</a>(<span class="keywordtype">void</span>) {
+00047 <span class="keywordtype">unsigned</span> 1 retval;
+00048 <span class="comment">/*</span>
+00049 <span class="comment"> * Firstly we enable both the CPLD and the SmartMedia.</span>
+00050 <span class="comment"> */</span>
+00051 RC200CPLDEnable();
+00052 RC200SmartMediaInit(&amp;retval);
+00053
+00054 <span class="keywordflow">if</span> (retval) {
+00055 RC200SmartMediaReset(&amp;retval);
+00056 RC200SmartMediaInit(&amp;retval);
+00057 }
+00058
+00059 <span class="keywordflow">return</span> retval;
+00060 } <span class="comment">/* --- smartmedia_init() --- */</span>
+00061
+00062
+00063
+<a name="l00072"></a><a class="code" href="smartmedia_8hcc.html#a1">00072</a> <span class="keywordtype">void</span> <a class="code" href="smartmedia_8hcc.html#a1">smartmedia_loaddata</a>(<a class="code" href="structskindata__t.html">skindata_t</a> *skindata) {
+00073 <span class="comment">/*</span>
+00074 <span class="comment"> * Setup RAM Handle, and determin maximum Data and Address widths</span>
+00075 <span class="comment"> */</span>
+00076 macro expr RAM_BANK0 = PalPL2RAMCT(0);
+00077 macro expr DW = PalPL2RAMGetMaxDataWidthCT();
+00078 macro expr AW = PalPL2RAMGetMaxAddressWidthCT();
+00079
+00080 <span class="keywordtype">unsigned</span> DW data;
+00081 <span class="keywordtype">unsigned</span> 27 smartmedia_address, smartmedia_address_mask;
+00082 <span class="keywordtype">unsigned</span> AW address;
+00083 <span class="keywordtype">unsigned</span> 8 mask, r, g, b;
+00084 <span class="keywordtype">unsigned</span> 3 stage;
+00085 <span class="keywordtype">unsigned</span> 1 result;
+00086
+00087 <span class="keyword">extern</span> ram <span class="keywordtype">unsigned</span> 8 <a class="code" href="events_8hcc.html#a0">presets_default_values</a>[768];
+00088
+00089 <span class="preprocessor">#if HAVE_DEBUG</span>
+00090 <span class="preprocessor"></span> <span class="comment">/*</span>
+00091 <span class="comment"> * Print some nice stats about data loading.</span>
+00092 <span class="comment"> */</span>
+00093 print_eol();
+00094 print_hex_value(0);
+00095 <span class="preprocessor">#endif</span>
+00096 <span class="preprocessor"></span> <span class="comment">/*</span>
+00097 <span class="comment"> * Before we enter our loop to fill our memory with valid data, we have</span>
+00098 <span class="comment"> * to set the startup positions for the SmartMedia.</span>
+00099 <span class="comment"> */</span>
+00100 smartmedia_address = SMARTMEDIA_ADDRESS_SKIN_START;
+00101 smartmedia_address_mask = SMARTMEDIA_ADDRESS_SKINMASK_START;
+00102 stage = STAGE_LOAD_SKIN;
+00103 <span class="comment">/*</span>
+00104 <span class="comment"> * We start with the address of the skin, and do the loop until we have</span>
+00105 <span class="comment"> * done the end of the help.</span>
+00106 <span class="comment"> */</span>
+00107 <span class="keywordflow">for</span> (address = ADDRESS_SKIN_START; address != (<a class="code" href="smartmedia__shared_8hch.html#a31">ADDRESS_PRESET_RESET_END</a> +1); address++) {
+00108 <span class="comment">/*</span>
+00109 <span class="comment"> * Once we are done with the loading of our skin, we need to</span>
+00110 <span class="comment"> * change the smartmedia start addresses.</span>
+00111 <span class="comment"> */</span>
+00112 <span class="keywordflow">switch</span> (address) {
+00113 <span class="keywordflow">case</span> <a class="code" href="smartmedia__shared_8hch.html#a24">ADDRESS_HELP_START</a>:
+00114 smartmedia_address = SMARTMEDIA_ADDRESS_HELP_START;
+00115 smartmedia_address_mask = SMARTMEDIA_ADDRESS_HELPMASK_START;
+00116 stage = STAGE_LOAD_HELP;
+00117 <span class="keywordflow">break</span>;
+00118 <span class="keywordflow">case</span> <a class="code" href="smartmedia__shared_8hch.html#a26">ADDRESS_GRAPHMASK_START</a>:
+00119 smartmedia_address_mask = SMARTMEDIA_ADDRESS_GRAPHMASK_START;
+00120 stage = STAGE_LOAD_GRAPH;
+00121 <span class="keywordflow">break</span>;
+00122 <span class="keywordflow">case</span> <a class="code" href="smartmedia__shared_8hch.html#a28">ADDRESS_PRESET_DEMO_START</a>:
+00123 smartmedia_address_mask = SMARTMEDIA_ADDRESS_PRESET_DEMO_START;
+00124 stage = STAGE_LOAD_PRESET;
+00125 <span class="keywordflow">break</span>;
+00126 <span class="keywordflow">case</span> <a class="code" href="smartmedia__shared_8hch.html#a30">ADDRESS_PRESET_RESET_START</a>:
+00127 smartmedia_address_mask = SMARTMEDIA_ADDRESS_PRESET_RESET_START;
+00128 stage = STAGE_LOAD_PRESET;
+00129 <span class="keywordflow">break</span>;
+00130 <span class="keywordflow">default</span>:
+00131 <span class="keywordflow">break</span>;
+00132 }
+00133
+00134 <span class="comment">/*</span>
+00135 <span class="comment"> * Before reading our data from the smartmedia we set our</span>
+00136 <span class="comment"> * address pointer to the address from our loop.</span>
+00137 <span class="comment"> */</span>
+00138 <span class="preprocessor">#if HAVE_SMARTMEDIA</span>
+00139 <span class="preprocessor"></span> PalPL2RAMSetWriteAddress(RAM_BANK0, address);
+00140 <span class="preprocessor">#else</span>
+00141 <span class="preprocessor"></span> PalPL2RAMSetWriteAddress(RAM_BANK0, 0);
+00142 <span class="preprocessor">#endif</span>
+00143 <span class="preprocessor"></span>
+00144 <span class="comment">/*</span>
+00145 <span class="comment"> * SmartMedia data is read one byte per call. Because we want</span>
+00146 <span class="comment"> * to store the mask + the rgb values in one variable for later</span>
+00147 <span class="comment"> * useage we need to read those 4 bytes from the smartmedia</span>
+00148 <span class="comment"> * before storing it as one.</span>
+00149 <span class="comment"> */</span>
+00150 <span class="preprocessor">#if HAVE_SMARTMEDIA</span>
+00151 <span class="preprocessor"></span> <span class="comment">/*</span>
+00152 <span class="comment"> * FIXME: Due to a bug in the DK2 smartmedia libraries we need</span>
+00153 <span class="comment"> * stop reading after each byte with OperationEnd call. This is</span>
+00154 <span class="comment"> * VERY slow and must be changed.</span>
+00155 <span class="comment"> */</span>
+00156 <span class="keywordflow">if</span> ((<a class="code" href="smartmedia_8hch.html#a3">STAGE_LOAD_SKIN</a> == stage) || (<a class="code" href="smartmedia_8hch.html#a4">STAGE_LOAD_HELP</a> == stage)) {
+00157 RC200SmartMediaSetAddress(<a class="code" href="smartmedia_8hch.html#a1">READ</a>, smartmedia_address);
+00158 RC200SmartMediaRead(&amp;r, TRUE);
+00159 RC200SmartMediaOperationEnd(&amp;result);
+00160 RC200SmartMediaSetAddress(<a class="code" href="smartmedia_8hch.html#a1">READ</a>, (smartmedia_address +1));
+00161 RC200SmartMediaRead(&amp;g, TRUE);
+00162 RC200SmartMediaOperationEnd(&amp;result);
+00163 RC200SmartMediaSetAddress(<a class="code" href="smartmedia_8hch.html#a1">READ</a>, (smartmedia_address +2));
+00164 RC200SmartMediaRead(&amp;b, TRUE);
+00165 RC200SmartMediaOperationEnd(&amp;result);
+00166 }
+00167 RC200SmartMediaSetAddress(<a class="code" href="smartmedia_8hch.html#a1">READ</a>, smartmedia_address_mask);
+00168 RC200SmartMediaRead(&amp;mask, TRUE);
+00169 RC200SmartMediaOperationEnd(&amp;result);
+00170
+00171 <span class="keywordflow">switch</span> (stage) {
+00172 <span class="keywordflow">case</span> <a class="code" href="smartmedia_8hch.html#a3">STAGE_LOAD_SKIN</a>:
+00173 data = 0 @ mask @ r @ g @ b;
+00174 <span class="keywordflow">break</span>;
+00175 <span class="keywordflow">case</span> <a class="code" href="smartmedia_8hch.html#a4">STAGE_LOAD_HELP</a>:
+00176 data = 0 @ mask @ r @ g @ b;
+00177 <span class="keywordflow">break</span>;
+00178 <span class="keywordflow">case</span> <a class="code" href="smartmedia_8hch.html#a5">STAGE_LOAD_GRAPH</a>:
+00179 data = (<span class="keywordtype">unsigned</span> DW)(0 @ mask) &lt;&lt; 24;
+00180 <span class="keywordflow">break</span>;
+00181 <span class="keywordflow">case</span> <a class="code" href="smartmedia_8hch.html#a6">STAGE_LOAD_PRESET</a>:
+00182 <a class="code" href="events_8hcc.html#a0">presets_default_values</a>[(address -ADDRESS_PRESET_DEMO_START) &lt;- 10] = mask;
+00183 }
+00184
+00185 <span class="preprocessor">#else</span>
+00186 <span class="preprocessor"></span> data = 0x0000ff00;
+00187 <span class="preprocessor">#endif</span>
+00188 <span class="preprocessor"></span> <span class="comment">/*</span>
+00189 <span class="comment"> * Now that we have gathered all pixel data, store it in ram.</span>
+00190 <span class="comment"> */</span>
+00191 PalPL2RAMWrite(RAM_BANK0, data);
+00192
+00193 <span class="preprocessor">#if HAVE_DEBUG</span>
+00194 <span class="preprocessor"></span> <span class="comment">/*</span>
+00195 <span class="comment"> * Print some nice stats about data loading.</span>
+00196 <span class="comment"> */</span>
+00197 <span class="keywordflow">if</span> (!(address &lt;- 10)) {
+00198 print_cr();
+00199 print_hex_value(0 @ (address \\ 11));
+00200 print_string(<span class="stringliteral">" / 000001C2 | data: "</span>);
+00201 print_hex_value(data &lt;- 32);
+00202 }
+00203 <span class="preprocessor">#endif</span>
+00204 <span class="preprocessor"></span>
+00205 <span class="comment">/*</span>
+00206 <span class="comment"> * Finally increase al our indexes approperiatly.</span>
+00207 <span class="comment"> */</span>
+00208 smartmedia_address += 3;
+00209 smartmedia_address_mask++;
+00210 }
+00211
+00212 <span class="comment">/*</span>
+00213 <span class="comment"> * This block needs to probably move up into the fore loop where we</span>
+00214 <span class="comment"> * calculate these settings later.</span>
+00215 <span class="comment"> */</span>
+00216 skindata-&gt;area_spectrum_top = 200;
+00217 skindata-&gt;area_spectrum_bottom = 335;
+00218 skindata-&gt;area_spectrum_left = 77;
+00219 skindata-&gt;area_spectrum_right = 575;
+00220 skindata-&gt;area_waveform_top = 46;
+00221 skindata-&gt;area_waveform_bottom = 118;
+00222 skindata-&gt;area_waveform_left = 76;
+00223 skindata-&gt;area_waveform_right = 413;
+00224 skindata-&gt;area_volume_top = 112;
+00225 skindata-&gt;area_volume_bottom = 66;
+00226 skindata-&gt;area_volume_left = 439;
+00227 skindata-&gt;area_volume_right = 455;
+00228 skindata-&gt;color_area_volume = PIXEL_VOLUME;
+00229 skindata-&gt;color_area_waveform = PIXEL_WAVEFORM;
+00230 <span class="comment">// skindata-&gt;color_area_spectrum_top = PIXEL_SPECTRUM;</span>
+00231 <span class="comment">// skindata-&gt;color_area_spectrum_bottom = PIXEL_SPECTRUM;</span>
+00232 skindata-&gt;color_equalizer = PIXEL_EQUALIZER;
+00233 } <span class="comment">/* --- smartmedia_loaddata() --- */</span>
+</pre></div><hr size="1"><address style="align: right;"><small>Generated on Thu Dec 9 14:37:07 2004 for Graphic Equalizer 2 by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.3.9.1 </small></address>
+</body>
+</html>
diff --git a/Graphic_Equalizer_Original_Port/doc/html/smartmedia_8hcc.html b/Graphic_Equalizer_Original_Port/doc/html/smartmedia_8hcc.html
new file mode 100644
index 0000000..bd026c4
--- /dev/null
+++ b/Graphic_Equalizer_Original_Port/doc/html/smartmedia_8hcc.html
@@ -0,0 +1,153 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>Graphic Equalizer 2: C:/Project Marcel &amp; Oliver/Graphic_Equalizer/src/smartmedia.hcc File Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.3.9.1 -->
+<div class="qindex"><a class="qindex" href="main.html">Main&nbsp;Page</a> | <a class="qindex" href="annotated.html">Data&nbsp;Structures</a> | <a class="qindex" href="dirs.html">Directories</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="functions.html">Data&nbsp;Fields</a> | <a class="qindex" href="globals.html">Globals</a></div>
+<div class="nav">
+<a class="el" href="dir_000000.html">C:</a>&nbsp;/&nbsp;<a class="el" href="dir_000001.html">Project Marcel &amp; Oliver</a>&nbsp;/&nbsp;<a class="el" href="dir_000002.html">Graphic_Equalizer</a>&nbsp;/&nbsp;<a class="el" href="dir_000004.html">src</a></div>
+<h1>smartmedia.hcc File Reference</h1><code>#include &lt;stdlib.hch&gt;</code><br>
+<code>#include "pal_master.hch"</code><br>
+<code>#include "<a class="el" href="configuration_8hch-source.html">configuration.hch</a>"</code><br>
+<code>#include "<a class="el" href="display__shared_8hch-source.html">display_shared.hch</a>"</code><br>
+<code>#include "<a class="el" href="smartmedia__shared_8hch-source.html">smartmedia_shared.hch</a>"</code><br>
+<code>#include "<a class="el" href="smartmedia_8hch-source.html">smartmedia.hch</a>"</code><br>
+<code>#include "<a class="el" href="audio_8hch-source.html">audio.hch</a>"</code><br>
+<code>#include "<a class="el" href="mouse__shared_8hch-source.html">mouse_shared.hch</a>"</code><br>
+<code>#include "<a class="el" href="eventhandler__shared_8hch-source.html">eventhandler_shared.hch</a>"</code><br>
+<code>#include "<a class="el" href="display_8hch-source.html">display.hch</a>"</code><br>
+
+<p>
+Include dependency graph for smartmedia.hcc:<p><center><img src="smartmedia_8hcc__incl.png" border="0" usemap="#smartmedia.hcc_map" alt="Include dependency graph"></center>
+<map name="smartmedia.hcc_map">
+<area href="configuration_8hch.html" shape="rect" coords="245,7,370,34" alt="">
+<area href="display__shared_8hch.html" shape="rect" coords="394,7,530,34" alt="">
+<area href="smartmedia__shared_8hch.html" shape="rect" coords="554,7,720,34" alt="">
+<area href="smartmedia_8hch.html" shape="rect" coords="744,7,861,34" alt="">
+<area href="audio_8hch.html" shape="rect" coords="885,7,965,34" alt="">
+<area href="mouse__shared_8hch.html" shape="rect" coords="989,7,1125,34" alt="">
+<area href="eventhandler__shared_8hch.html" shape="rect" coords="1149,7,1322,34" alt="">
+<area href="display_8hch.html" shape="rect" coords="1346,7,1434,34" alt="">
+</map>
+
+<p>
+<a href="smartmedia_8hcc-source.html">Go to the source code of this file.</a><table border="0" cellpadding="0" cellspacing="0">
+<tr><td></td></tr>
+<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">unsigned&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="smartmedia_8hcc.html#a0">smartmedia_init</a> (void)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">We here initialize the Smart Media card and verify wether the card is inserted and such. <a href="#a0"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="smartmedia_8hcc.html#a1">smartmedia_loaddata</a> (<a class="el" href="structskindata__t.html">skindata_t</a> *skindata)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">We load our memory with skin and help data from the smartmedia. <a href="#a1"></a><br></td></tr>
+</table>
+<hr><a name="_details"></a><h2>Detailed Description</h2>
+<h2><a class="anchor" name="generic">
+Graphic Equalizer API</a></h2>
+<h2><a class="anchor" name="project">
+Project information.</a></h2>
+Project Graphic Equalizer<br>
+ <dl compact><dt><b>Author:</b></dt><dd>O.M. Schinagl </dd></dl>
+<dl compact><dt><b>Date:</b></dt><dd>20041110 </dd></dl>
+<dl compact><dt><b>Version:</b></dt><dd>0.1</dd></dl>
+<h2><a class="anchor" name="copyright">
+Copyright</a></h2>
+Copyright ©2004 Koninklijke Philips Electronics N.V. All rights reserved<h2><a class="anchor" name="history">
+Change history</a></h2>
+20041110: O.M. Schinagl<br>
+ Initial version
+<p>
+Definition in file <a class="el" href="smartmedia_8hcc-source.html">smartmedia.hcc</a>.<hr><h2>Function Documentation</h2>
+<a class="anchor" name="a0" doxytag="smartmedia.hcc::smartmedia_init"></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top">unsigned smartmedia_init </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">void&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap></td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+We here initialize the Smart Media card and verify wether the card is inserted and such.
+<p>
+<dl compact><dt><b>Returns:</b></dt><dd>We return 0 on success, 1 on error. </dd></dl>
+<dl compact><dt><b>Return values:</b></dt><dd>
+ <table border="0" cellspacing="2" cellpadding="0">
+ <tr><td valign="top"></td><td valign="top"><em>unsigned</em>&nbsp;</td><td>1 </td></tr>
+ </table>
+</dl>
+
+<p>
+Definition at line <a class="el" href="smartmedia_8hcc-source.html#l00046">46</a> of file <a class="el" href="smartmedia_8hcc-source.html">smartmedia.hcc</a>.
+<p>
+Referenced by <a class="el" href="main_8hcc-source.html#l00051">main()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="a1" doxytag="smartmedia.hcc::smartmedia_loaddata"></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top">void smartmedia_loaddata </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="structskindata__t.html">skindata_t</a> *&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>skindata</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap></td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+We load our memory with skin and help data from the smartmedia.
+<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+ <table border="0" cellspacing="2" cellpadding="0">
+ <tr><td valign="top"></td><td valign="top"><em>*skindata</em>&nbsp;</td><td>skindata like boundries and colors of elements.</td></tr>
+ </table>
+</dl>
+<dl compact><dt><b>Returns:</b></dt><dd>void </dd></dl>
+<dl compact><dt><b>Return values:</b></dt><dd>
+ <table border="0" cellspacing="2" cellpadding="0">
+ <tr><td valign="top"></td><td valign="top"><em>void</em>&nbsp;</td><td></td></tr>
+ </table>
+</dl>
+
+<p>
+Definition at line <a class="el" href="smartmedia_8hcc-source.html#l00072">72</a> of file <a class="el" href="smartmedia_8hcc-source.html">smartmedia.hcc</a>.
+<p>
+References <a class="el" href="smartmedia__shared_8hch-source.html#l00066">ADDRESS_GRAPHMASK_START</a>, <a class="el" href="smartmedia__shared_8hch-source.html#l00063">ADDRESS_HELP_START</a>, <a class="el" href="smartmedia__shared_8hch-source.html#l00069">ADDRESS_PRESET_DEMO_START</a>, <a class="el" href="smartmedia__shared_8hch-source.html#l00073">ADDRESS_PRESET_RESET_END</a>, <a class="el" href="smartmedia__shared_8hch-source.html#l00072">ADDRESS_PRESET_RESET_START</a>, <a class="el" href="events_8hcc-source.html#l00037">presets_default_values</a>, <a class="el" href="smartmedia_8hch-source.html#l00028">READ</a>, <a class="el" href="smartmedia_8hch-source.html#l00038">STAGE_LOAD_GRAPH</a>, <a class="el" href="smartmedia_8hch-source.html#l00037">STAGE_LOAD_HELP</a>, <a class="el" href="smartmedia_8hch-source.html#l00039">STAGE_LOAD_PRESET</a>, and <a class="el" href="smartmedia_8hch-source.html#l00036">STAGE_LOAD_SKIN</a>.
+<p>
+Referenced by <a class="el" href="main_8hcc-source.html#l00051">main()</a>. </td>
+ </tr>
+</table>
+<hr size="1"><address style="align: right;"><small>Generated on Thu Dec 9 14:37:09 2004 for Graphic Equalizer 2 by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.3.9.1 </small></address>
+</body>
+</html>
diff --git a/Graphic_Equalizer_Original_Port/doc/html/smartmedia_8hcc__incl.map b/Graphic_Equalizer_Original_Port/doc/html/smartmedia_8hcc__incl.map
new file mode 100644
index 0000000..f1c196f
--- /dev/null
+++ b/Graphic_Equalizer_Original_Port/doc/html/smartmedia_8hcc__incl.map
@@ -0,0 +1,9 @@
+base referer
+rect $configuration_8hch.html 245,7 370,34
+rect $display__shared_8hch.html 394,7 530,34
+rect $smartmedia__shared_8hch.html 554,7 720,34
+rect $smartmedia_8hch.html 744,7 861,34
+rect $audio_8hch.html 885,7 965,34
+rect $mouse__shared_8hch.html 989,7 1125,34
+rect $eventhandler__shared_8hch.html 1149,7 1322,34
+rect $display_8hch.html 1346,7 1434,34
diff --git a/Graphic_Equalizer_Original_Port/doc/html/smartmedia_8hcc__incl.md5 b/Graphic_Equalizer_Original_Port/doc/html/smartmedia_8hcc__incl.md5
new file mode 100644
index 0000000..4d36ea5
--- /dev/null
+++ b/Graphic_Equalizer_Original_Port/doc/html/smartmedia_8hcc__incl.md5
@@ -0,0 +1 @@
+86c9bdde69fa949899315e166183a539 \ No newline at end of file
diff --git a/Graphic_Equalizer_Original_Port/doc/html/smartmedia_8hcc__incl.png b/Graphic_Equalizer_Original_Port/doc/html/smartmedia_8hcc__incl.png
new file mode 100644
index 0000000..a0e23b0
--- /dev/null
+++ b/Graphic_Equalizer_Original_Port/doc/html/smartmedia_8hcc__incl.png
Binary files differ
diff --git a/Graphic_Equalizer_Original_Port/doc/html/smartmedia_8hch-source.html b/Graphic_Equalizer_Original_Port/doc/html/smartmedia_8hch-source.html
new file mode 100644
index 0000000..112cdc0
--- /dev/null
+++ b/Graphic_Equalizer_Original_Port/doc/html/smartmedia_8hch-source.html
@@ -0,0 +1,65 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>Graphic Equalizer 2: C:/Project Marcel &amp; Oliver/Graphic_Equalizer/include/smartmedia.hch Source File</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.3.9.1 -->
+<div class="qindex"><a class="qindex" href="main.html">Main&nbsp;Page</a> | <a class="qindex" href="annotated.html">Data&nbsp;Structures</a> | <a class="qindex" href="dirs.html">Directories</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="functions.html">Data&nbsp;Fields</a> | <a class="qindex" href="globals.html">Globals</a></div>
+<div class="nav">
+<a class="el" href="dir_000000.html">C:</a>&nbsp;/&nbsp;<a class="el" href="dir_000001.html">Project Marcel &amp; Oliver</a>&nbsp;/&nbsp;<a class="el" href="dir_000002.html">Graphic_Equalizer</a>&nbsp;/&nbsp;<a class="el" href="dir_000003.html">include</a></div>
+<h1>smartmedia.hch</h1><a href="smartmedia_8hch.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment">00001
+00019 <span class="preprocessor">#ifndef _SMARTMEDIA_HCH</span>
+<a name="l00020"></a><a class="code" href="smartmedia_8hch.html#a0">00020</a> <span class="preprocessor"></span><span class="preprocessor">#define _SMARTMEDIA_HCH 1</span>
+00021 <span class="preprocessor"></span>
+00022
+00023
+00024 <span class="comment">/*</span>
+00025 <span class="comment"> * SmartMedia functioncalls a bit to be set to either Read or Write. This</span>
+00026 <span class="comment"> * define should make life easier identifying which one is what.</span>
+00027 <span class="comment"> */</span>
+<a name="l00028"></a><a class="code" href="smartmedia_8hch.html#a1">00028</a> <span class="preprocessor">#define READ 0</span>
+<a name="l00029"></a><a class="code" href="smartmedia_8hch.html#a2">00029</a> <span class="preprocessor"></span><span class="preprocessor">#define WRITE 1</span>
+00030 <span class="preprocessor"></span>
+00031
+00032
+00033 <span class="comment">/*</span>
+00034 <span class="comment"> * The different stages the smart media loaders knows.</span>
+00035 <span class="comment"> */</span>
+<a name="l00036"></a><a class="code" href="smartmedia_8hch.html#a3">00036</a> <span class="preprocessor">#define STAGE_LOAD_SKIN 0x00</span>
+<a name="l00037"></a><a class="code" href="smartmedia_8hch.html#a4">00037</a> <span class="preprocessor"></span><span class="preprocessor">#define STAGE_LOAD_HELP 0x01</span>
+<a name="l00038"></a><a class="code" href="smartmedia_8hch.html#a5">00038</a> <span class="preprocessor"></span><span class="preprocessor">#define STAGE_LOAD_GRAPH 0x02</span>
+<a name="l00039"></a><a class="code" href="smartmedia_8hch.html#a6">00039</a> <span class="preprocessor"></span><span class="preprocessor">#define STAGE_LOAD_PRESET 0x03</span>
+00040 <span class="preprocessor"></span>
+00041
+00042
+00043 <span class="comment">/*</span>
+00044 <span class="comment"> * Create a define to keep API generic</span>
+00045 <span class="comment"> * FIXME: replace with PAL calls when avaiable.</span>
+00046 <span class="comment"> */</span>
+<a name="l00047"></a><a class="code" href="smartmedia_8hch.html#a7">00047</a> <span class="preprocessor">#define CPLDRun(ClockRate) RC200CPLDRun(ClockRate)</span>
+<a name="l00048"></a><a class="code" href="smartmedia_8hch.html#a8">00048</a> <span class="preprocessor"></span><span class="preprocessor">#define SmartMediaRun(ClockRate) RC200SmartMediaRun(ClockRate)</span>
+00049 <span class="preprocessor"></span>
+00050
+00051
+00052 <span class="comment">/*</span>
+00053 <span class="comment"> * Initializes the smartmedia device.</span>
+00054 <span class="comment"> */</span>
+00055
+00056 <span class="keywordtype">unsigned</span> 1 <a class="code" href="smartmedia_8hch.html#a9">smartmedia_init</a>(<span class="keywordtype">void</span>);
+00057
+00058
+00059
+00060 <span class="comment">/*</span>
+00061 <span class="comment"> * This function loads the memory with data from the smartmedia card.</span>
+00062 <span class="comment"> */</span>
+00063 <span class="keywordtype">void</span> <a class="code" href="smartmedia_8hcc.html#a1">smartmedia_loaddata</a>(<a class="code" href="structskindata__t.html">skindata_t</a> *skindata);
+00064
+00065 <span class="preprocessor">#else</span>
+00066 <span class="preprocessor"></span><span class="preprocessor">#error "ERROR file smartmedia.hch multiple times included"</span>
+00067 <span class="preprocessor"></span><span class="preprocessor">#endif </span><span class="comment">/* --- _SMARTMEDIA_HCH --- */</span>
+00068
+</pre></div><hr size="1"><address style="align: right;"><small>Generated on Thu Dec 9 14:37:06 2004 for Graphic Equalizer 2 by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.3.9.1 </small></address>
+</body>
+</html>
diff --git a/Graphic_Equalizer_Original_Port/doc/html/smartmedia_8hch.html b/Graphic_Equalizer_Original_Port/doc/html/smartmedia_8hch.html
new file mode 100644
index 0000000..3521eac
--- /dev/null
+++ b/Graphic_Equalizer_Original_Port/doc/html/smartmedia_8hch.html
@@ -0,0 +1,406 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>Graphic Equalizer 2: C:/Project Marcel &amp; Oliver/Graphic_Equalizer/include/smartmedia.hch File Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.3.9.1 -->
+<div class="qindex"><a class="qindex" href="main.html">Main&nbsp;Page</a> | <a class="qindex" href="annotated.html">Data&nbsp;Structures</a> | <a class="qindex" href="dirs.html">Directories</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="functions.html">Data&nbsp;Fields</a> | <a class="qindex" href="globals.html">Globals</a></div>
+<div class="nav">
+<a class="el" href="dir_000000.html">C:</a>&nbsp;/&nbsp;<a class="el" href="dir_000001.html">Project Marcel &amp; Oliver</a>&nbsp;/&nbsp;<a class="el" href="dir_000002.html">Graphic_Equalizer</a>&nbsp;/&nbsp;<a class="el" href="dir_000003.html">include</a></div>
+<h1>smartmedia.hch File Reference</h1>
+<p>
+This graph shows which files directly or indirectly include this file:<p><center><img src="smartmedia_8hch__dep__incl.png" border="0" usemap="#smartmedia.hchdep_map" alt="Included by dependency graph"></center>
+<map name="smartmedia.hchdep_map">
+<area href="main_8hcc.html" shape="rect" coords="8,7,82,34" alt="">
+<area href="smartmedia_8hcc.html" shape="rect" coords="106,7,224,34" alt="">
+</map>
+
+<p>
+<a href="smartmedia_8hch-source.html">Go to the source code of this file.</a><table border="0" cellpadding="0" cellspacing="0">
+<tr><td></td></tr>
+<tr><td colspan="2"><br><h2>Defines</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="smartmedia_8hch.html#a0">_SMARTMEDIA_HCH</a>&nbsp;&nbsp;&nbsp;1</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="smartmedia_8hch.html#a1">READ</a>&nbsp;&nbsp;&nbsp;0</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="smartmedia_8hch.html#a2">WRITE</a>&nbsp;&nbsp;&nbsp;1</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="smartmedia_8hch.html#a3">STAGE_LOAD_SKIN</a>&nbsp;&nbsp;&nbsp;0x00</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="smartmedia_8hch.html#a4">STAGE_LOAD_HELP</a>&nbsp;&nbsp;&nbsp;0x01</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="smartmedia_8hch.html#a5">STAGE_LOAD_GRAPH</a>&nbsp;&nbsp;&nbsp;0x02</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="smartmedia_8hch.html#a6">STAGE_LOAD_PRESET</a>&nbsp;&nbsp;&nbsp;0x03</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="smartmedia_8hch.html#a7">CPLDRun</a>(ClockRate)&nbsp;&nbsp;&nbsp;RC200CPLDRun(ClockRate)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="smartmedia_8hch.html#a8">SmartMediaRun</a>(ClockRate)&nbsp;&nbsp;&nbsp;RC200SmartMediaRun(ClockRate)</td></tr>
+
+<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">unsigned&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="smartmedia_8hch.html#a9">smartmedia_init</a> (void)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">We here initialize the Smart Media card and verify wether the card is inserted and such. <a href="#a9"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="smartmedia_8hch.html#a10">smartmedia_loaddata</a> (<a class="el" href="structskindata__t.html">skindata_t</a> *skindata)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">We load our memory with skin and help data from the smartmedia. <a href="#a10"></a><br></td></tr>
+</table>
+<hr><a name="_details"></a><h2>Detailed Description</h2>
+<h2><a class="anchor" name="generic">
+Graphic Equalizer API</a></h2>
+<h2><a class="anchor" name="project">
+Project information.</a></h2>
+Project Graphic Equalizer<br>
+ <dl compact><dt><b>Author:</b></dt><dd>O.M. Schinagl </dd></dl>
+<dl compact><dt><b>Date:</b></dt><dd>20041110 </dd></dl>
+<dl compact><dt><b>Version:</b></dt><dd>0.1</dd></dl>
+<h2><a class="anchor" name="copyright">
+Copyright</a></h2>
+Copyright ©2004 Koninklijke Philips Electronics N.V. All rights reserved<h2><a class="anchor" name="history">
+Change history</a></h2>
+20041110: O.M. Schinagl<br>
+ Initial version
+<p>
+Definition in file <a class="el" href="smartmedia_8hch-source.html">smartmedia.hch</a>.<hr><h2>Define Documentation</h2>
+<a class="anchor" name="a0" doxytag="smartmedia.hch::_SMARTMEDIA_HCH"></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top">#define _SMARTMEDIA_HCH&nbsp;&nbsp;&nbsp;1 </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="smartmedia_8hch-source.html#l00020">20</a> of file <a class="el" href="smartmedia_8hch-source.html">smartmedia.hch</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="a1" doxytag="smartmedia.hch::READ"></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top">#define READ&nbsp;&nbsp;&nbsp;0 </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="smartmedia_8hch-source.html#l00028">28</a> of file <a class="el" href="smartmedia_8hch-source.html">smartmedia.hch</a>.
+<p>
+Referenced by <a class="el" href="smartmedia_8hcc-source.html#l00072">smartmedia_loaddata()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="a2" doxytag="smartmedia.hch::WRITE"></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top">#define WRITE&nbsp;&nbsp;&nbsp;1 </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="smartmedia_8hch-source.html#l00029">29</a> of file <a class="el" href="smartmedia_8hch-source.html">smartmedia.hch</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="a3" doxytag="smartmedia.hch::STAGE_LOAD_SKIN"></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top">#define STAGE_LOAD_SKIN&nbsp;&nbsp;&nbsp;0x00 </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="smartmedia_8hch-source.html#l00036">36</a> of file <a class="el" href="smartmedia_8hch-source.html">smartmedia.hch</a>.
+<p>
+Referenced by <a class="el" href="smartmedia_8hcc-source.html#l00072">smartmedia_loaddata()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="a4" doxytag="smartmedia.hch::STAGE_LOAD_HELP"></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top">#define STAGE_LOAD_HELP&nbsp;&nbsp;&nbsp;0x01 </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="smartmedia_8hch-source.html#l00037">37</a> of file <a class="el" href="smartmedia_8hch-source.html">smartmedia.hch</a>.
+<p>
+Referenced by <a class="el" href="smartmedia_8hcc-source.html#l00072">smartmedia_loaddata()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="a5" doxytag="smartmedia.hch::STAGE_LOAD_GRAPH"></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top">#define STAGE_LOAD_GRAPH&nbsp;&nbsp;&nbsp;0x02 </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="smartmedia_8hch-source.html#l00038">38</a> of file <a class="el" href="smartmedia_8hch-source.html">smartmedia.hch</a>.
+<p>
+Referenced by <a class="el" href="smartmedia_8hcc-source.html#l00072">smartmedia_loaddata()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="a6" doxytag="smartmedia.hch::STAGE_LOAD_PRESET"></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top">#define STAGE_LOAD_PRESET&nbsp;&nbsp;&nbsp;0x03 </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="smartmedia_8hch-source.html#l00039">39</a> of file <a class="el" href="smartmedia_8hch-source.html">smartmedia.hch</a>.
+<p>
+Referenced by <a class="el" href="smartmedia_8hcc-source.html#l00072">smartmedia_loaddata()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="a7" doxytag="smartmedia.hch::CPLDRun"></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top">#define CPLDRun </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">ClockRate&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap>&nbsp;&nbsp;&nbsp;RC200CPLDRun(ClockRate)</td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="smartmedia_8hch-source.html#l00047">47</a> of file <a class="el" href="smartmedia_8hch-source.html">smartmedia.hch</a>.
+<p>
+Referenced by <a class="el" href="main_8hcc-source.html#l00051">main()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="a8" doxytag="smartmedia.hch::SmartMediaRun"></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top">#define SmartMediaRun </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">ClockRate&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap>&nbsp;&nbsp;&nbsp;RC200SmartMediaRun(ClockRate)</td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="smartmedia_8hch-source.html#l00048">48</a> of file <a class="el" href="smartmedia_8hch-source.html">smartmedia.hch</a>.
+<p>
+Referenced by <a class="el" href="main_8hcc-source.html#l00051">main()</a>. </td>
+ </tr>
+</table>
+<hr><h2>Function Documentation</h2>
+<a class="anchor" name="a9" doxytag="smartmedia.hch::smartmedia_init"></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top">unsigned smartmedia_init </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">void&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap></td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+We here initialize the Smart Media card and verify wether the card is inserted and such.
+<p>
+<dl compact><dt><b>Returns:</b></dt><dd>We return 0 on success, 1 on error. </dd></dl>
+<dl compact><dt><b>Return values:</b></dt><dd>
+ <table border="0" cellspacing="2" cellpadding="0">
+ <tr><td valign="top"></td><td valign="top"><em>unsigned</em>&nbsp;</td><td>1 </td></tr>
+ </table>
+</dl>
+
+<p>
+Definition at line <a class="el" href="smartmedia_8hcc-source.html#l00046">46</a> of file <a class="el" href="smartmedia_8hcc-source.html">smartmedia.hcc</a>.
+<p>
+Referenced by <a class="el" href="main_8hcc-source.html#l00051">main()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="a10" doxytag="smartmedia.hch::smartmedia_loaddata"></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top">void smartmedia_loaddata </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="structskindata__t.html">skindata_t</a> *&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>skindata</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap></td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+We load our memory with skin and help data from the smartmedia.
+<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+ <table border="0" cellspacing="2" cellpadding="0">
+ <tr><td valign="top"></td><td valign="top"><em>*skindata</em>&nbsp;</td><td>skindata like boundries and colors of elements.</td></tr>
+ </table>
+</dl>
+<dl compact><dt><b>Returns:</b></dt><dd>void </dd></dl>
+<dl compact><dt><b>Return values:</b></dt><dd>
+ <table border="0" cellspacing="2" cellpadding="0">
+ <tr><td valign="top"></td><td valign="top"><em>void</em>&nbsp;</td><td></td></tr>
+ </table>
+</dl>
+
+<p>
+Definition at line <a class="el" href="smartmedia_8hcc-source.html#l00072">72</a> of file <a class="el" href="smartmedia_8hcc-source.html">smartmedia.hcc</a>.
+<p>
+References <a class="el" href="smartmedia__shared_8hch-source.html#l00066">ADDRESS_GRAPHMASK_START</a>, <a class="el" href="smartmedia__shared_8hch-source.html#l00063">ADDRESS_HELP_START</a>, <a class="el" href="smartmedia__shared_8hch-source.html#l00069">ADDRESS_PRESET_DEMO_START</a>, <a class="el" href="smartmedia__shared_8hch-source.html#l00073">ADDRESS_PRESET_RESET_END</a>, <a class="el" href="smartmedia__shared_8hch-source.html#l00072">ADDRESS_PRESET_RESET_START</a>, <a class="el" href="events_8hcc-source.html#l00037">presets_default_values</a>, <a class="el" href="smartmedia_8hch-source.html#l00028">READ</a>, <a class="el" href="smartmedia_8hch-source.html#l00038">STAGE_LOAD_GRAPH</a>, <a class="el" href="smartmedia_8hch-source.html#l00037">STAGE_LOAD_HELP</a>, <a class="el" href="smartmedia_8hch-source.html#l00039">STAGE_LOAD_PRESET</a>, and <a class="el" href="smartmedia_8hch-source.html#l00036">STAGE_LOAD_SKIN</a>.
+<p>
+Referenced by <a class="el" href="main_8hcc-source.html#l00051">main()</a>. </td>
+ </tr>
+</table>
+<hr size="1"><address style="align: right;"><small>Generated on Thu Dec 9 14:37:08 2004 for Graphic Equalizer 2 by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.3.9.1 </small></address>
+</body>
+</html>
diff --git a/Graphic_Equalizer_Original_Port/doc/html/smartmedia_8hch__dep__incl.map b/Graphic_Equalizer_Original_Port/doc/html/smartmedia_8hch__dep__incl.map
new file mode 100644
index 0000000..46f0913
--- /dev/null
+++ b/Graphic_Equalizer_Original_Port/doc/html/smartmedia_8hch__dep__incl.map
@@ -0,0 +1,3 @@
+base referer
+rect $main_8hcc.html 8,7 82,34
+rect $smartmedia_8hcc.html 106,7 224,34
diff --git a/Graphic_Equalizer_Original_Port/doc/html/smartmedia_8hch__dep__incl.md5 b/Graphic_Equalizer_Original_Port/doc/html/smartmedia_8hch__dep__incl.md5
new file mode 100644
index 0000000..0f51fe8
--- /dev/null
+++ b/Graphic_Equalizer_Original_Port/doc/html/smartmedia_8hch__dep__incl.md5
@@ -0,0 +1 @@
+a6514b61ed04d96f1fee892121b51cd5 \ No newline at end of file
diff --git a/Graphic_Equalizer_Original_Port/doc/html/smartmedia_8hch__dep__incl.png b/Graphic_Equalizer_Original_Port/doc/html/smartmedia_8hch__dep__incl.png
new file mode 100644
index 0000000..dc6420a
--- /dev/null
+++ b/Graphic_Equalizer_Original_Port/doc/html/smartmedia_8hch__dep__incl.png
Binary files differ
diff --git a/Graphic_Equalizer_Original_Port/doc/html/smartmedia__shared_8hch-source.html b/Graphic_Equalizer_Original_Port/doc/html/smartmedia__shared_8hch-source.html
new file mode 100644
index 0000000..f21af8d
--- /dev/null
+++ b/Graphic_Equalizer_Original_Port/doc/html/smartmedia__shared_8hch-source.html
@@ -0,0 +1,77 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>Graphic Equalizer 2: C:/Project Marcel &amp; Oliver/Graphic_Equalizer/include/smartmedia_shared.hch Source File</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.3.9.1 -->
+<div class="qindex"><a class="qindex" href="main.html">Main&nbsp;Page</a> | <a class="qindex" href="annotated.html">Data&nbsp;Structures</a> | <a class="qindex" href="dirs.html">Directories</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="functions.html">Data&nbsp;Fields</a> | <a class="qindex" href="globals.html">Globals</a></div>
+<div class="nav">
+<a class="el" href="dir_000000.html">C:</a>&nbsp;/&nbsp;<a class="el" href="dir_000001.html">Project Marcel &amp; Oliver</a>&nbsp;/&nbsp;<a class="el" href="dir_000002.html">Graphic_Equalizer</a>&nbsp;/&nbsp;<a class="el" href="dir_000003.html">include</a></div>
+<h1>smartmedia_shared.hch</h1><a href="smartmedia__shared_8hch.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment">00001
+00019 <span class="preprocessor">#ifndef _SMARTMEDIA_SHARED_HCH</span>
+<a name="l00020"></a><a class="code" href="smartmedia__shared_8hch.html#a0">00020</a> <span class="preprocessor"></span><span class="preprocessor">#define _SMARTMEDIA_SHARED_HCH 1</span>
+00021 <span class="preprocessor"></span>
+00022
+00023
+00024 <span class="comment">/*</span>
+00025 <span class="comment"> * Here we set the various sizes of the data in use. Do not round this values</span>
+00026 <span class="comment"> * in anyway! For example, 640 pixels times 480 pixels is 307200 (4b000) pixels</span>
+00027 <span class="comment"> * total.</span>
+00028 <span class="comment"> */</span>
+<a name="l00029"></a><a class="code" href="smartmedia__shared_8hch.html#a1">00029</a> <span class="preprocessor">#define SIZE_SKIN 0x04afff</span>
+<a name="l00030"></a><a class="code" href="smartmedia__shared_8hch.html#a2">00030</a> <span class="preprocessor"></span><span class="preprocessor">#define SIZE_HELP 0x04afff</span>
+<a name="l00031"></a><a class="code" href="smartmedia__shared_8hch.html#a3">00031</a> <span class="preprocessor"></span><span class="preprocessor">#define SIZE_GRAPH 0x04afff</span>
+<a name="l00032"></a><a class="code" href="smartmedia__shared_8hch.html#a4">00032</a> <span class="preprocessor"></span><span class="preprocessor">#define SIZE_SKINMASK 0x018fff</span>
+<a name="l00033"></a><a class="code" href="smartmedia__shared_8hch.html#a5">00033</a> <span class="preprocessor"></span><span class="preprocessor">#define SIZE_HELPMASK 0x018fff</span>
+<a name="l00034"></a><a class="code" href="smartmedia__shared_8hch.html#a6">00034</a> <span class="preprocessor"></span><span class="preprocessor">#define SIZE_GRAPHMASK 0x018fff</span>
+00035 <span class="preprocessor"></span>
+<a name="l00036"></a><a class="code" href="smartmedia__shared_8hch.html#a7">00036</a> <span class="preprocessor">#define SIZE_PRESET 0x0001c0</span>
+00037 <span class="preprocessor"></span>
+00038 <span class="comment">/*</span>
+00039 <span class="comment"> * Here we setup the start and end address for the various components.</span>
+00040 <span class="comment"> */</span>
+00041
+<a name="l00042"></a><a class="code" href="smartmedia__shared_8hch.html#a8">00042</a> <span class="preprocessor">#define SMARTMEDIA_ADDRESS_SKIN_START 0x084000 </span><span class="comment">/* Block: 33 */</span>
+<a name="l00043"></a><a class="code" href="smartmedia__shared_8hch.html#a9">00043</a> <span class="preprocessor">#define SMARTMEDIA_ADDRESS_SKINMASK_START 0x168000 </span><span class="comment">/* Block: 90 */</span>
+<a name="l00044"></a><a class="code" href="smartmedia__shared_8hch.html#a10">00044</a> <span class="preprocessor">#define SMARTMEDIA_ADDRESS_HELP_START 0x1b4000 </span><span class="comment">/* Block: 109 */</span>
+<a name="l00045"></a><a class="code" href="smartmedia__shared_8hch.html#a11">00045</a> <span class="preprocessor">#define SMARTMEDIA_ADDRESS_HELPMASK_START 0x298000 </span><span class="comment">/* Block: 166 */</span>
+<a name="l00046"></a><a class="code" href="smartmedia__shared_8hch.html#a12">00046</a> <span class="preprocessor">#define SMARTMEDIA_ADDRESS_GRAPHMASK_START 0x2e4000 </span><span class="comment">/* Block: 185 */</span>
+00047
+<a name="l00048"></a><a class="code" href="smartmedia__shared_8hch.html#a13">00048</a> <span class="preprocessor">#define SMARTMEDIA_ADDRESS_PRESET_DEMO_START 0x330000 </span><span class="comment">/* Block: 204 */</span>
+<a name="l00049"></a><a class="code" href="smartmedia__shared_8hch.html#a14">00049</a> <span class="preprocessor">#define SMARTMEDIA_ADDRESS_PRESET_RESET_START 0x334000 </span><span class="comment">/* Block: 205 */</span>
+00050
+<a name="l00051"></a><a class="code" href="smartmedia__shared_8hch.html#a15">00051</a> <span class="preprocessor">#define SMARTMEDIA_ADDRESS_SKIN_END (SMARTMEDIA_ADDRESS_SKIN_START +(SIZE_SKIN *3))</span>
+<a name="l00052"></a><a class="code" href="smartmedia__shared_8hch.html#a16">00052</a> <span class="preprocessor"></span><span class="preprocessor">#define SMARTMEDIA_ADDRESS_SKINMASK_END (SMARTMEDIA_ADDRESS_SKINMASK_START +(SIZE_SKINMASK *3))</span>
+<a name="l00053"></a><a class="code" href="smartmedia__shared_8hch.html#a17">00053</a> <span class="preprocessor"></span><span class="preprocessor">#define SMARTMEDIA_ADDRESS_HELP_END (SMARTMEDIA_ADDRESS_HELP_START +(SIZE_HELP *3))</span>
+<a name="l00054"></a><a class="code" href="smartmedia__shared_8hch.html#a18">00054</a> <span class="preprocessor"></span><span class="preprocessor">#define SMARTMEDIA_ADDRESS_HELPMASK_END (SMARTMEDIA_ADDRESS_HELPMASK_START +(SIZE_HELPMASK *3))</span>
+<a name="l00055"></a><a class="code" href="smartmedia__shared_8hch.html#a19">00055</a> <span class="preprocessor"></span><span class="preprocessor">#define SMARTMEDIA_ADDRESS_GRAPHMASK_END (SMARTMEDIA_ADDRESS_GRAPHMASK_START +(SIZE_GRAPHMASK *3))</span>
+00056 <span class="preprocessor"></span>
+<a name="l00057"></a><a class="code" href="smartmedia__shared_8hch.html#a20">00057</a> <span class="preprocessor">#define SMARTMEDIA_ADDRESS_PRESET_DEMO_END (SMARTMEDIA_ADDRESS_PRESET_DEMO_START +(SIZE_PRESET))</span>
+<a name="l00058"></a><a class="code" href="smartmedia__shared_8hch.html#a21">00058</a> <span class="preprocessor"></span><span class="preprocessor">#define SMARTMEDIA_ADDRESS_PRESET_RESET_END (SMARTMEDIA_ADDRESS_PRESET_RESET_START +(SIZE_PRESET))</span>
+00059 <span class="preprocessor"></span>
+<a name="l00060"></a><a class="code" href="smartmedia__shared_8hch.html#a22">00060</a> <span class="preprocessor">#define ADDRESS_SKIN_START 0x000000</span>
+<a name="l00061"></a><a class="code" href="smartmedia__shared_8hch.html#a23">00061</a> <span class="preprocessor"></span><span class="preprocessor">#define ADDRESS_SKIN_END (ADDRESS_SKIN_START +SIZE_SKIN)</span>
+00062 <span class="preprocessor"></span>
+<a name="l00063"></a><a class="code" href="smartmedia__shared_8hch.html#a24">00063</a> <span class="preprocessor">#define ADDRESS_HELP_START 0x04b000</span>
+<a name="l00064"></a><a class="code" href="smartmedia__shared_8hch.html#a25">00064</a> <span class="preprocessor"></span><span class="preprocessor">#define ADDRESS_HELP_END (ADDRESS_HELP_START +SIZE_HELP)</span>
+00065 <span class="preprocessor"></span>
+<a name="l00066"></a><a class="code" href="smartmedia__shared_8hch.html#a26">00066</a> <span class="preprocessor">#define ADDRESS_GRAPHMASK_START 0x096000</span>
+<a name="l00067"></a><a class="code" href="smartmedia__shared_8hch.html#a27">00067</a> <span class="preprocessor"></span><span class="preprocessor">#define ADDRESS_GRAPHMASK_END (ADDRESS_GRAPHMASK_START +SIZE_GRAPH)</span>
+00068 <span class="preprocessor"></span>
+<a name="l00069"></a><a class="code" href="smartmedia__shared_8hch.html#a28">00069</a> <span class="preprocessor">#define ADDRESS_PRESET_DEMO_START 0x0e1000</span>
+<a name="l00070"></a><a class="code" href="smartmedia__shared_8hch.html#a29">00070</a> <span class="preprocessor"></span><span class="preprocessor">#define ADDRESS_PRESET_DEMO_END (ADDRESS_PRESET_DEMO_START +SIZE_PRESET)</span>
+00071 <span class="preprocessor"></span>
+<a name="l00072"></a><a class="code" href="smartmedia__shared_8hch.html#a30">00072</a> <span class="preprocessor">#define ADDRESS_PRESET_RESET_START 0x0e11c0</span>
+<a name="l00073"></a><a class="code" href="smartmedia__shared_8hch.html#a31">00073</a> <span class="preprocessor"></span><span class="preprocessor">#define ADDRESS_PRESET_RESET_END (ADDRESS_PRESET_RESET_START +SIZE_PRESET)</span>
+00074 <span class="preprocessor"></span>
+00075
+00076
+00077 <span class="preprocessor">#else</span>
+00078 <span class="preprocessor"></span><span class="preprocessor">#error "ERROR file smartmedia_shared.hch multiple times included"</span>
+00079 <span class="preprocessor"></span><span class="preprocessor">#endif </span><span class="comment">/* --- _SMARTMEDIA_SHARED_HCH --- */</span>
+00080
+</pre></div><hr size="1"><address style="align: right;"><small>Generated on Thu Dec 9 14:37:06 2004 for Graphic Equalizer 2 by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.3.9.1 </small></address>
+</body>
+</html>
diff --git a/Graphic_Equalizer_Original_Port/doc/html/smartmedia__shared_8hch.html b/Graphic_Equalizer_Original_Port/doc/html/smartmedia__shared_8hch.html
new file mode 100644
index 0000000..6226246
--- /dev/null
+++ b/Graphic_Equalizer_Original_Port/doc/html/smartmedia__shared_8hch.html
@@ -0,0 +1,920 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>Graphic Equalizer 2: C:/Project Marcel &amp; Oliver/Graphic_Equalizer/include/smartmedia_shared.hch File Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.3.9.1 -->
+<div class="qindex"><a class="qindex" href="main.html">Main&nbsp;Page</a> | <a class="qindex" href="annotated.html">Data&nbsp;Structures</a> | <a class="qindex" href="dirs.html">Directories</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="functions.html">Data&nbsp;Fields</a> | <a class="qindex" href="globals.html">Globals</a></div>
+<div class="nav">
+<a class="el" href="dir_000000.html">C:</a>&nbsp;/&nbsp;<a class="el" href="dir_000001.html">Project Marcel &amp; Oliver</a>&nbsp;/&nbsp;<a class="el" href="dir_000002.html">Graphic_Equalizer</a>&nbsp;/&nbsp;<a class="el" href="dir_000003.html">include</a></div>
+<h1>smartmedia_shared.hch File Reference</h1>
+<p>
+This graph shows which files directly or indirectly include this file:<p><center><img src="smartmedia__shared_8hch__dep__incl.png" border="0" usemap="#smartmedia_shared.hchdep_map" alt="Included by dependency graph"></center>
+<map name="smartmedia_shared.hchdep_map">
+<area href="display_8hcc.html" shape="rect" coords="7,7,95,34" alt="">
+<area href="smartmedia_8hcc.html" shape="rect" coords="119,7,237,34" alt="">
+</map>
+
+<p>
+<a href="smartmedia__shared_8hch-source.html">Go to the source code of this file.</a><table border="0" cellpadding="0" cellspacing="0">
+<tr><td></td></tr>
+<tr><td colspan="2"><br><h2>Defines</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="smartmedia__shared_8hch.html#a0">_SMARTMEDIA_SHARED_HCH</a>&nbsp;&nbsp;&nbsp;1</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="smartmedia__shared_8hch.html#a1">SIZE_SKIN</a>&nbsp;&nbsp;&nbsp;0x04afff</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="smartmedia__shared_8hch.html#a2">SIZE_HELP</a>&nbsp;&nbsp;&nbsp;0x04afff</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="smartmedia__shared_8hch.html#a3">SIZE_GRAPH</a>&nbsp;&nbsp;&nbsp;0x04afff</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="smartmedia__shared_8hch.html#a4">SIZE_SKINMASK</a>&nbsp;&nbsp;&nbsp;0x018fff</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="smartmedia__shared_8hch.html#a5">SIZE_HELPMASK</a>&nbsp;&nbsp;&nbsp;0x018fff</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="smartmedia__shared_8hch.html#a6">SIZE_GRAPHMASK</a>&nbsp;&nbsp;&nbsp;0x018fff</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="smartmedia__shared_8hch.html#a7">SIZE_PRESET</a>&nbsp;&nbsp;&nbsp;0x0001c0</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="smartmedia__shared_8hch.html#a8">SMARTMEDIA_ADDRESS_SKIN_START</a>&nbsp;&nbsp;&nbsp;0x084000</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="smartmedia__shared_8hch.html#a9">SMARTMEDIA_ADDRESS_SKINMASK_START</a>&nbsp;&nbsp;&nbsp;0x168000</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="smartmedia__shared_8hch.html#a10">SMARTMEDIA_ADDRESS_HELP_START</a>&nbsp;&nbsp;&nbsp;0x1b4000</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="smartmedia__shared_8hch.html#a11">SMARTMEDIA_ADDRESS_HELPMASK_START</a>&nbsp;&nbsp;&nbsp;0x298000</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="smartmedia__shared_8hch.html#a12">SMARTMEDIA_ADDRESS_GRAPHMASK_START</a>&nbsp;&nbsp;&nbsp;0x2e4000</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="smartmedia__shared_8hch.html#a13">SMARTMEDIA_ADDRESS_PRESET_DEMO_START</a>&nbsp;&nbsp;&nbsp;0x330000</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="smartmedia__shared_8hch.html#a14">SMARTMEDIA_ADDRESS_PRESET_RESET_START</a>&nbsp;&nbsp;&nbsp;0x334000</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="smartmedia__shared_8hch.html#a15">SMARTMEDIA_ADDRESS_SKIN_END</a>&nbsp;&nbsp;&nbsp;(SMARTMEDIA_ADDRESS_SKIN_START +(SIZE_SKIN *3))</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="smartmedia__shared_8hch.html#a16">SMARTMEDIA_ADDRESS_SKINMASK_END</a>&nbsp;&nbsp;&nbsp;(SMARTMEDIA_ADDRESS_SKINMASK_START +(SIZE_SKINMASK *3))</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="smartmedia__shared_8hch.html#a17">SMARTMEDIA_ADDRESS_HELP_END</a>&nbsp;&nbsp;&nbsp;(SMARTMEDIA_ADDRESS_HELP_START +(SIZE_HELP *3))</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="smartmedia__shared_8hch.html#a18">SMARTMEDIA_ADDRESS_HELPMASK_END</a>&nbsp;&nbsp;&nbsp;(SMARTMEDIA_ADDRESS_HELPMASK_START +(SIZE_HELPMASK *3))</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="smartmedia__shared_8hch.html#a19">SMARTMEDIA_ADDRESS_GRAPHMASK_END</a>&nbsp;&nbsp;&nbsp;(SMARTMEDIA_ADDRESS_GRAPHMASK_START +(SIZE_GRAPHMASK *3))</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="smartmedia__shared_8hch.html#a20">SMARTMEDIA_ADDRESS_PRESET_DEMO_END</a>&nbsp;&nbsp;&nbsp;(SMARTMEDIA_ADDRESS_PRESET_DEMO_START +(SIZE_PRESET))</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="smartmedia__shared_8hch.html#a21">SMARTMEDIA_ADDRESS_PRESET_RESET_END</a>&nbsp;&nbsp;&nbsp;(SMARTMEDIA_ADDRESS_PRESET_RESET_START +(SIZE_PRESET))</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="smartmedia__shared_8hch.html#a22">ADDRESS_SKIN_START</a>&nbsp;&nbsp;&nbsp;0x000000</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="smartmedia__shared_8hch.html#a23">ADDRESS_SKIN_END</a>&nbsp;&nbsp;&nbsp;(ADDRESS_SKIN_START +SIZE_SKIN)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="smartmedia__shared_8hch.html#a24">ADDRESS_HELP_START</a>&nbsp;&nbsp;&nbsp;0x04b000</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="smartmedia__shared_8hch.html#a25">ADDRESS_HELP_END</a>&nbsp;&nbsp;&nbsp;(ADDRESS_HELP_START +SIZE_HELP)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="smartmedia__shared_8hch.html#a26">ADDRESS_GRAPHMASK_START</a>&nbsp;&nbsp;&nbsp;0x096000</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="smartmedia__shared_8hch.html#a27">ADDRESS_GRAPHMASK_END</a>&nbsp;&nbsp;&nbsp;(ADDRESS_GRAPHMASK_START +SIZE_GRAPH)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="smartmedia__shared_8hch.html#a28">ADDRESS_PRESET_DEMO_START</a>&nbsp;&nbsp;&nbsp;0x0e1000</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="smartmedia__shared_8hch.html#a29">ADDRESS_PRESET_DEMO_END</a>&nbsp;&nbsp;&nbsp;(ADDRESS_PRESET_DEMO_START +SIZE_PRESET)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="smartmedia__shared_8hch.html#a30">ADDRESS_PRESET_RESET_START</a>&nbsp;&nbsp;&nbsp;0x0e11c0</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="smartmedia__shared_8hch.html#a31">ADDRESS_PRESET_RESET_END</a>&nbsp;&nbsp;&nbsp;(ADDRESS_PRESET_RESET_START +SIZE_PRESET)</td></tr>
+
+</table>
+<hr><a name="_details"></a><h2>Detailed Description</h2>
+<h2><a class="anchor" name="generic">
+Graphic Equalizer API</a></h2>
+<h2><a class="anchor" name="project">
+Project information.</a></h2>
+Project Graphic Equalizer<br>
+ <dl compact><dt><b>Author:</b></dt><dd>O.M. Schinagl </dd></dl>
+<dl compact><dt><b>Date:</b></dt><dd>20041202 </dd></dl>
+<dl compact><dt><b>Version:</b></dt><dd>0.1</dd></dl>
+<h2><a class="anchor" name="copyright">
+Copyright</a></h2>
+Copyright ©2004 Koninklijke Philips Electronics N.V. All rights reserved<h2><a class="anchor" name="history">
+Change history</a></h2>
+20041202: O.M. Schinagl<br>
+ Initial version
+<p>
+Definition in file <a class="el" href="smartmedia__shared_8hch-source.html">smartmedia_shared.hch</a>.<hr><h2>Define Documentation</h2>
+<a class="anchor" name="a0" doxytag="smartmedia_shared.hch::_SMARTMEDIA_SHARED_HCH"></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top">#define _SMARTMEDIA_SHARED_HCH&nbsp;&nbsp;&nbsp;1 </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="smartmedia__shared_8hch-source.html#l00020">20</a> of file <a class="el" href="smartmedia__shared_8hch-source.html">smartmedia_shared.hch</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="a1" doxytag="smartmedia_shared.hch::SIZE_SKIN"></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top">#define SIZE_SKIN&nbsp;&nbsp;&nbsp;0x04afff </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="smartmedia__shared_8hch-source.html#l00029">29</a> of file <a class="el" href="smartmedia__shared_8hch-source.html">smartmedia_shared.hch</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="a2" doxytag="smartmedia_shared.hch::SIZE_HELP"></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top">#define SIZE_HELP&nbsp;&nbsp;&nbsp;0x04afff </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="smartmedia__shared_8hch-source.html#l00030">30</a> of file <a class="el" href="smartmedia__shared_8hch-source.html">smartmedia_shared.hch</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="a3" doxytag="smartmedia_shared.hch::SIZE_GRAPH"></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top">#define SIZE_GRAPH&nbsp;&nbsp;&nbsp;0x04afff </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="smartmedia__shared_8hch-source.html#l00031">31</a> of file <a class="el" href="smartmedia__shared_8hch-source.html">smartmedia_shared.hch</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="a4" doxytag="smartmedia_shared.hch::SIZE_SKINMASK"></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top">#define SIZE_SKINMASK&nbsp;&nbsp;&nbsp;0x018fff </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="smartmedia__shared_8hch-source.html#l00032">32</a> of file <a class="el" href="smartmedia__shared_8hch-source.html">smartmedia_shared.hch</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="a5" doxytag="smartmedia_shared.hch::SIZE_HELPMASK"></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top">#define SIZE_HELPMASK&nbsp;&nbsp;&nbsp;0x018fff </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="smartmedia__shared_8hch-source.html#l00033">33</a> of file <a class="el" href="smartmedia__shared_8hch-source.html">smartmedia_shared.hch</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="a6" doxytag="smartmedia_shared.hch::SIZE_GRAPHMASK"></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top">#define SIZE_GRAPHMASK&nbsp;&nbsp;&nbsp;0x018fff </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="smartmedia__shared_8hch-source.html#l00034">34</a> of file <a class="el" href="smartmedia__shared_8hch-source.html">smartmedia_shared.hch</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="a7" doxytag="smartmedia_shared.hch::SIZE_PRESET"></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top">#define SIZE_PRESET&nbsp;&nbsp;&nbsp;0x0001c0 </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="smartmedia__shared_8hch-source.html#l00036">36</a> of file <a class="el" href="smartmedia__shared_8hch-source.html">smartmedia_shared.hch</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="a8" doxytag="smartmedia_shared.hch::SMARTMEDIA_ADDRESS_SKIN_START"></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top">#define SMARTMEDIA_ADDRESS_SKIN_START&nbsp;&nbsp;&nbsp;0x084000 </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="smartmedia__shared_8hch-source.html#l00042">42</a> of file <a class="el" href="smartmedia__shared_8hch-source.html">smartmedia_shared.hch</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="a9" doxytag="smartmedia_shared.hch::SMARTMEDIA_ADDRESS_SKINMASK_START"></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top">#define SMARTMEDIA_ADDRESS_SKINMASK_START&nbsp;&nbsp;&nbsp;0x168000 </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="smartmedia__shared_8hch-source.html#l00043">43</a> of file <a class="el" href="smartmedia__shared_8hch-source.html">smartmedia_shared.hch</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="a10" doxytag="smartmedia_shared.hch::SMARTMEDIA_ADDRESS_HELP_START"></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top">#define SMARTMEDIA_ADDRESS_HELP_START&nbsp;&nbsp;&nbsp;0x1b4000 </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="smartmedia__shared_8hch-source.html#l00044">44</a> of file <a class="el" href="smartmedia__shared_8hch-source.html">smartmedia_shared.hch</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="a11" doxytag="smartmedia_shared.hch::SMARTMEDIA_ADDRESS_HELPMASK_START"></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top">#define SMARTMEDIA_ADDRESS_HELPMASK_START&nbsp;&nbsp;&nbsp;0x298000 </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="smartmedia__shared_8hch-source.html#l00045">45</a> of file <a class="el" href="smartmedia__shared_8hch-source.html">smartmedia_shared.hch</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="a12" doxytag="smartmedia_shared.hch::SMARTMEDIA_ADDRESS_GRAPHMASK_START"></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top">#define SMARTMEDIA_ADDRESS_GRAPHMASK_START&nbsp;&nbsp;&nbsp;0x2e4000 </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="smartmedia__shared_8hch-source.html#l00046">46</a> of file <a class="el" href="smartmedia__shared_8hch-source.html">smartmedia_shared.hch</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="a13" doxytag="smartmedia_shared.hch::SMARTMEDIA_ADDRESS_PRESET_DEMO_START"></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top">#define SMARTMEDIA_ADDRESS_PRESET_DEMO_START&nbsp;&nbsp;&nbsp;0x330000 </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="smartmedia__shared_8hch-source.html#l00048">48</a> of file <a class="el" href="smartmedia__shared_8hch-source.html">smartmedia_shared.hch</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="a14" doxytag="smartmedia_shared.hch::SMARTMEDIA_ADDRESS_PRESET_RESET_START"></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top">#define SMARTMEDIA_ADDRESS_PRESET_RESET_START&nbsp;&nbsp;&nbsp;0x334000 </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="smartmedia__shared_8hch-source.html#l00049">49</a> of file <a class="el" href="smartmedia__shared_8hch-source.html">smartmedia_shared.hch</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="a15" doxytag="smartmedia_shared.hch::SMARTMEDIA_ADDRESS_SKIN_END"></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top">#define SMARTMEDIA_ADDRESS_SKIN_END&nbsp;&nbsp;&nbsp;(SMARTMEDIA_ADDRESS_SKIN_START +(SIZE_SKIN *3)) </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="smartmedia__shared_8hch-source.html#l00051">51</a> of file <a class="el" href="smartmedia__shared_8hch-source.html">smartmedia_shared.hch</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="a16" doxytag="smartmedia_shared.hch::SMARTMEDIA_ADDRESS_SKINMASK_END"></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top">#define SMARTMEDIA_ADDRESS_SKINMASK_END&nbsp;&nbsp;&nbsp;(SMARTMEDIA_ADDRESS_SKINMASK_START +(SIZE_SKINMASK *3)) </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="smartmedia__shared_8hch-source.html#l00052">52</a> of file <a class="el" href="smartmedia__shared_8hch-source.html">smartmedia_shared.hch</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="a17" doxytag="smartmedia_shared.hch::SMARTMEDIA_ADDRESS_HELP_END"></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top">#define SMARTMEDIA_ADDRESS_HELP_END&nbsp;&nbsp;&nbsp;(SMARTMEDIA_ADDRESS_HELP_START +(SIZE_HELP *3)) </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="smartmedia__shared_8hch-source.html#l00053">53</a> of file <a class="el" href="smartmedia__shared_8hch-source.html">smartmedia_shared.hch</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="a18" doxytag="smartmedia_shared.hch::SMARTMEDIA_ADDRESS_HELPMASK_END"></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top">#define SMARTMEDIA_ADDRESS_HELPMASK_END&nbsp;&nbsp;&nbsp;(SMARTMEDIA_ADDRESS_HELPMASK_START +(SIZE_HELPMASK *3)) </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="smartmedia__shared_8hch-source.html#l00054">54</a> of file <a class="el" href="smartmedia__shared_8hch-source.html">smartmedia_shared.hch</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="a19" doxytag="smartmedia_shared.hch::SMARTMEDIA_ADDRESS_GRAPHMASK_END"></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top">#define SMARTMEDIA_ADDRESS_GRAPHMASK_END&nbsp;&nbsp;&nbsp;(SMARTMEDIA_ADDRESS_GRAPHMASK_START +(SIZE_GRAPHMASK *3)) </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="smartmedia__shared_8hch-source.html#l00055">55</a> of file <a class="el" href="smartmedia__shared_8hch-source.html">smartmedia_shared.hch</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="a20" doxytag="smartmedia_shared.hch::SMARTMEDIA_ADDRESS_PRESET_DEMO_END"></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top">#define SMARTMEDIA_ADDRESS_PRESET_DEMO_END&nbsp;&nbsp;&nbsp;(SMARTMEDIA_ADDRESS_PRESET_DEMO_START +(SIZE_PRESET)) </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="smartmedia__shared_8hch-source.html#l00057">57</a> of file <a class="el" href="smartmedia__shared_8hch-source.html">smartmedia_shared.hch</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="a21" doxytag="smartmedia_shared.hch::SMARTMEDIA_ADDRESS_PRESET_RESET_END"></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top">#define SMARTMEDIA_ADDRESS_PRESET_RESET_END&nbsp;&nbsp;&nbsp;(SMARTMEDIA_ADDRESS_PRESET_RESET_START +(SIZE_PRESET)) </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="smartmedia__shared_8hch-source.html#l00058">58</a> of file <a class="el" href="smartmedia__shared_8hch-source.html">smartmedia_shared.hch</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="a22" doxytag="smartmedia_shared.hch::ADDRESS_SKIN_START"></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top">#define ADDRESS_SKIN_START&nbsp;&nbsp;&nbsp;0x000000 </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="smartmedia__shared_8hch-source.html#l00060">60</a> of file <a class="el" href="smartmedia__shared_8hch-source.html">smartmedia_shared.hch</a>.
+<p>
+Referenced by <a class="el" href="display_8hcc-source.html#l00065">display_main()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="a23" doxytag="smartmedia_shared.hch::ADDRESS_SKIN_END"></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top">#define ADDRESS_SKIN_END&nbsp;&nbsp;&nbsp;(ADDRESS_SKIN_START +SIZE_SKIN) </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="smartmedia__shared_8hch-source.html#l00061">61</a> of file <a class="el" href="smartmedia__shared_8hch-source.html">smartmedia_shared.hch</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="a24" doxytag="smartmedia_shared.hch::ADDRESS_HELP_START"></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top">#define ADDRESS_HELP_START&nbsp;&nbsp;&nbsp;0x04b000 </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="smartmedia__shared_8hch-source.html#l00063">63</a> of file <a class="el" href="smartmedia__shared_8hch-source.html">smartmedia_shared.hch</a>.
+<p>
+Referenced by <a class="el" href="smartmedia_8hcc-source.html#l00072">smartmedia_loaddata()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="a25" doxytag="smartmedia_shared.hch::ADDRESS_HELP_END"></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top">#define ADDRESS_HELP_END&nbsp;&nbsp;&nbsp;(ADDRESS_HELP_START +SIZE_HELP) </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="smartmedia__shared_8hch-source.html#l00064">64</a> of file <a class="el" href="smartmedia__shared_8hch-source.html">smartmedia_shared.hch</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="a26" doxytag="smartmedia_shared.hch::ADDRESS_GRAPHMASK_START"></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top">#define ADDRESS_GRAPHMASK_START&nbsp;&nbsp;&nbsp;0x096000 </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="smartmedia__shared_8hch-source.html#l00066">66</a> of file <a class="el" href="smartmedia__shared_8hch-source.html">smartmedia_shared.hch</a>.
+<p>
+Referenced by <a class="el" href="smartmedia_8hcc-source.html#l00072">smartmedia_loaddata()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="a27" doxytag="smartmedia_shared.hch::ADDRESS_GRAPHMASK_END"></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top">#define ADDRESS_GRAPHMASK_END&nbsp;&nbsp;&nbsp;(ADDRESS_GRAPHMASK_START +SIZE_GRAPH) </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="smartmedia__shared_8hch-source.html#l00067">67</a> of file <a class="el" href="smartmedia__shared_8hch-source.html">smartmedia_shared.hch</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="a28" doxytag="smartmedia_shared.hch::ADDRESS_PRESET_DEMO_START"></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top">#define ADDRESS_PRESET_DEMO_START&nbsp;&nbsp;&nbsp;0x0e1000 </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="smartmedia__shared_8hch-source.html#l00069">69</a> of file <a class="el" href="smartmedia__shared_8hch-source.html">smartmedia_shared.hch</a>.
+<p>
+Referenced by <a class="el" href="smartmedia_8hcc-source.html#l00072">smartmedia_loaddata()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="a29" doxytag="smartmedia_shared.hch::ADDRESS_PRESET_DEMO_END"></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top">#define ADDRESS_PRESET_DEMO_END&nbsp;&nbsp;&nbsp;(ADDRESS_PRESET_DEMO_START +SIZE_PRESET) </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="smartmedia__shared_8hch-source.html#l00070">70</a> of file <a class="el" href="smartmedia__shared_8hch-source.html">smartmedia_shared.hch</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="a30" doxytag="smartmedia_shared.hch::ADDRESS_PRESET_RESET_START"></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top">#define ADDRESS_PRESET_RESET_START&nbsp;&nbsp;&nbsp;0x0e11c0 </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="smartmedia__shared_8hch-source.html#l00072">72</a> of file <a class="el" href="smartmedia__shared_8hch-source.html">smartmedia_shared.hch</a>.
+<p>
+Referenced by <a class="el" href="smartmedia_8hcc-source.html#l00072">smartmedia_loaddata()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="a31" doxytag="smartmedia_shared.hch::ADDRESS_PRESET_RESET_END"></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top">#define ADDRESS_PRESET_RESET_END&nbsp;&nbsp;&nbsp;(ADDRESS_PRESET_RESET_START +SIZE_PRESET) </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="smartmedia__shared_8hch-source.html#l00073">73</a> of file <a class="el" href="smartmedia__shared_8hch-source.html">smartmedia_shared.hch</a>.
+<p>
+Referenced by <a class="el" href="smartmedia_8hcc-source.html#l00072">smartmedia_loaddata()</a>. </td>
+ </tr>
+</table>
+<hr size="1"><address style="align: right;"><small>Generated on Thu Dec 9 14:37:08 2004 for Graphic Equalizer 2 by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.3.9.1 </small></address>
+</body>
+</html>
diff --git a/Graphic_Equalizer_Original_Port/doc/html/smartmedia__shared_8hch__dep__incl.map b/Graphic_Equalizer_Original_Port/doc/html/smartmedia__shared_8hch__dep__incl.map
new file mode 100644
index 0000000..010c863
--- /dev/null
+++ b/Graphic_Equalizer_Original_Port/doc/html/smartmedia__shared_8hch__dep__incl.map
@@ -0,0 +1,3 @@
+base referer
+rect $display_8hcc.html 7,7 95,34
+rect $smartmedia_8hcc.html 119,7 237,34
diff --git a/Graphic_Equalizer_Original_Port/doc/html/smartmedia__shared_8hch__dep__incl.md5 b/Graphic_Equalizer_Original_Port/doc/html/smartmedia__shared_8hch__dep__incl.md5
new file mode 100644
index 0000000..b1d0df9
--- /dev/null
+++ b/Graphic_Equalizer_Original_Port/doc/html/smartmedia__shared_8hch__dep__incl.md5
@@ -0,0 +1 @@
+cc243b4bbcc02c0ce51bf569d27b4250 \ No newline at end of file
diff --git a/Graphic_Equalizer_Original_Port/doc/html/smartmedia__shared_8hch__dep__incl.png b/Graphic_Equalizer_Original_Port/doc/html/smartmedia__shared_8hch__dep__incl.png
new file mode 100644
index 0000000..ddc355c
--- /dev/null
+++ b/Graphic_Equalizer_Original_Port/doc/html/smartmedia__shared_8hch__dep__incl.png
Binary files differ
diff --git a/Graphic_Equalizer_Original_Port/doc/html/structaudiodata__t.html b/Graphic_Equalizer_Original_Port/doc/html/structaudiodata__t.html
new file mode 100644
index 0000000..5c3b5fd
--- /dev/null
+++ b/Graphic_Equalizer_Original_Port/doc/html/structaudiodata__t.html
@@ -0,0 +1,77 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>Graphic Equalizer 2: audiodata_t Struct Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.3.9.1 -->
+<div class="qindex"><a class="qindex" href="main.html">Main&nbsp;Page</a> | <a class="qindex" href="annotated.html">Data&nbsp;Structures</a> | <a class="qindex" href="dirs.html">Directories</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="functions.html">Data&nbsp;Fields</a> | <a class="qindex" href="globals.html">Globals</a></div>
+<h1>audiodata_t Struct Reference</h1><table border="0" cellpadding="0" cellspacing="0">
+<tr><td></td></tr>
+<tr><td colspan="2"><br><h2>Data Fields</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">unsigned *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structaudiodata__t.html#o0">equalizer_levels_ptr</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">unsigned&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structaudiodata__t.html#o1">display_log</a></td></tr>
+
+</table>
+<hr><h2>Field Documentation</h2>
+<a class="anchor" name="o0" doxytag="audiodata_t::equalizer_levels_ptr"></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top">unsigned* <a class="el" href="structaudiodata__t.html#o0">audiodata_t::equalizer_levels_ptr</a> </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="audio_8hch-source.html#l00034">34</a> of file <a class="el" href="audio_8hch-source.html">audio.hch</a>.
+<p>
+Referenced by <a class="el" href="fft_8hcc-source.html#l00398">equalize_audio()</a>, and <a class="el" href="eventhandler_8hcc-source.html#l00059">eventhandler_main()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="o1" doxytag="audiodata_t::display_log"></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top">unsigned <a class="el" href="structaudiodata__t.html#o1">audiodata_t::display_log</a> </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="audio_8hch-source.html#l00035">35</a> of file <a class="el" href="audio_8hch-source.html">audio.hch</a>.
+<p>
+Referenced by <a class="el" href="display_8hcc-source.html#l00065">display_main()</a>, <a class="el" href="fft_8hcc-source.html#l00398">equalize_audio()</a>, and <a class="el" href="eventhandler_8hcc-source.html#l00059">eventhandler_main()</a>. </td>
+ </tr>
+</table>
+<hr>The documentation for this struct was generated from the following file:<ul>
+<li>C:/Project Marcel &amp; Oliver/Graphic_Equalizer/include/<a class="el" href="audio_8hch-source.html">audio.hch</a></ul>
+<hr size="1"><address style="align: right;"><small>Generated on Thu Dec 9 14:37:09 2004 for Graphic Equalizer 2 by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.3.9.1 </small></address>
+</body>
+</html>
diff --git a/Graphic_Equalizer_Original_Port/doc/html/structevents__t.html b/Graphic_Equalizer_Original_Port/doc/html/structevents__t.html
new file mode 100644
index 0000000..6f88ff4
--- /dev/null
+++ b/Graphic_Equalizer_Original_Port/doc/html/structevents__t.html
@@ -0,0 +1,222 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>Graphic Equalizer 2: events_t Struct Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.3.9.1 -->
+<div class="qindex"><a class="qindex" href="main.html">Main&nbsp;Page</a> | <a class="qindex" href="annotated.html">Data&nbsp;Structures</a> | <a class="qindex" href="dirs.html">Directories</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="functions.html">Data&nbsp;Fields</a> | <a class="qindex" href="globals.html">Globals</a></div>
+<h1>events_t Struct Reference</h1><table border="0" cellpadding="0" cellspacing="0">
+<tr><td></td></tr>
+<tr><td colspan="2"><br><h2>Data Fields</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">ram unsigned&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structevents__t.html#o0">equalizer_display</a> [128]</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">unsigned&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structevents__t.html#o1">active_preset</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">unsigned&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structevents__t.html#o2">volume_position</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">unsigned&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structevents__t.html#o3">mask</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">unsigned&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structevents__t.html#o4">mode</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">unsigned&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structevents__t.html#o5">equalizer_mode</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">unsigned&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structevents__t.html#o6">locked_display</a></td></tr>
+
+</table>
+<hr><h2>Field Documentation</h2>
+<a class="anchor" name="o0" doxytag="events_t::equalizer_display"></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top">ram unsigned <a class="el" href="structevents__t.html#o0">events_t::equalizer_display</a>[128] </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="eventhandler__shared_8hch-source.html#l00030">30</a> of file <a class="el" href="eventhandler__shared_8hch-source.html">eventhandler_shared.hch</a>.
+<p>
+Referenced by <a class="el" href="display_8hcc-source.html#l00065">display_main()</a>, <a class="el" href="eventhandler_8hcc-source.html#l00059">eventhandler_main()</a>, and <a class="el" href="display_8hcc-source.html#l00328">reload_equalizer()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="o1" doxytag="events_t::active_preset"></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top">unsigned <a class="el" href="structevents__t.html#o1">events_t::active_preset</a> </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="eventhandler__shared_8hch-source.html#l00031">31</a> of file <a class="el" href="eventhandler__shared_8hch-source.html">eventhandler_shared.hch</a>.
+<p>
+Referenced by <a class="el" href="display_8hcc-source.html#l00065">display_main()</a>, and <a class="el" href="eventhandler_8hcc-source.html#l00059">eventhandler_main()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="o2" doxytag="events_t::volume_position"></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top">unsigned <a class="el" href="structevents__t.html#o2">events_t::volume_position</a> </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="eventhandler__shared_8hch-source.html#l00032">32</a> of file <a class="el" href="eventhandler__shared_8hch-source.html">eventhandler_shared.hch</a>.
+<p>
+Referenced by <a class="el" href="display_8hcc-source.html#l00065">display_main()</a>, and <a class="el" href="eventhandler_8hcc-source.html#l00059">eventhandler_main()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="o3" doxytag="events_t::mask"></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top">unsigned <a class="el" href="structevents__t.html#o3">events_t::mask</a> </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="eventhandler__shared_8hch-source.html#l00033">33</a> of file <a class="el" href="eventhandler__shared_8hch-source.html">eventhandler_shared.hch</a>.
+<p>
+Referenced by <a class="el" href="display_8hcc-source.html#l00065">display_main()</a>, and <a class="el" href="eventhandler_8hcc-source.html#l00059">eventhandler_main()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="o4" doxytag="events_t::mode"></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top">unsigned <a class="el" href="structevents__t.html#o4">events_t::mode</a> </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="eventhandler__shared_8hch-source.html#l00034">34</a> of file <a class="el" href="eventhandler__shared_8hch-source.html">eventhandler_shared.hch</a>.
+<p>
+Referenced by <a class="el" href="display_8hcc-source.html#l00065">display_main()</a>, and <a class="el" href="eventhandler_8hcc-source.html#l00059">eventhandler_main()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="o5" doxytag="events_t::equalizer_mode"></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top">unsigned <a class="el" href="structevents__t.html#o5">events_t::equalizer_mode</a> </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="eventhandler__shared_8hch-source.html#l00035">35</a> of file <a class="el" href="eventhandler__shared_8hch-source.html">eventhandler_shared.hch</a>.
+<p>
+Referenced by <a class="el" href="display_8hcc-source.html#l00065">display_main()</a>, and <a class="el" href="eventhandler_8hcc-source.html#l00059">eventhandler_main()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="o6" doxytag="events_t::locked_display"></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top">unsigned <a class="el" href="structevents__t.html#o6">events_t::locked_display</a> </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="eventhandler__shared_8hch-source.html#l00036">36</a> of file <a class="el" href="eventhandler__shared_8hch-source.html">eventhandler_shared.hch</a>.
+<p>
+Referenced by <a class="el" href="display_8hcc-source.html#l00065">display_main()</a>, <a class="el" href="eventhandler_8hcc-source.html#l00059">eventhandler_main()</a>, and <a class="el" href="display_8hcc-source.html#l00328">reload_equalizer()</a>. </td>
+ </tr>
+</table>
+<hr>The documentation for this struct was generated from the following file:<ul>
+<li>C:/Project Marcel &amp; Oliver/Graphic_Equalizer/include/<a class="el" href="eventhandler__shared_8hch-source.html">eventhandler_shared.hch</a></ul>
+<hr size="1"><address style="align: right;"><small>Generated on Thu Dec 9 14:37:09 2004 for Graphic Equalizer 2 by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.3.9.1 </small></address>
+</body>
+</html>
diff --git a/Graphic_Equalizer_Original_Port/doc/html/structmousedata__t.html b/Graphic_Equalizer_Original_Port/doc/html/structmousedata__t.html
new file mode 100644
index 0000000..675c18a
--- /dev/null
+++ b/Graphic_Equalizer_Original_Port/doc/html/structmousedata__t.html
@@ -0,0 +1,135 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>Graphic Equalizer 2: mousedata_t Struct Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.3.9.1 -->
+<div class="qindex"><a class="qindex" href="main.html">Main&nbsp;Page</a> | <a class="qindex" href="annotated.html">Data&nbsp;Structures</a> | <a class="qindex" href="dirs.html">Directories</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="functions.html">Data&nbsp;Fields</a> | <a class="qindex" href="globals.html">Globals</a></div>
+<h1>mousedata_t Struct Reference</h1><table border="0" cellpadding="0" cellspacing="0">
+<tr><td></td></tr>
+<tr><td colspan="2"><br><h2>Data Fields</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">unsigned&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmousedata__t.html#o0">x</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">unsigned&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmousedata__t.html#o1">y</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">unsigned&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmousedata__t.html#o2">state</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">unsigned&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmousedata__t.html#o3">status</a></td></tr>
+
+</table>
+<hr><h2>Field Documentation</h2>
+<a class="anchor" name="o0" doxytag="mousedata_t::x"></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top">unsigned <a class="el" href="structmousedata__t.html#o0">mousedata_t::x</a> </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="mouse__shared_8hch-source.html#l00028">28</a> of file <a class="el" href="mouse__shared_8hch-source.html">mouse_shared.hch</a>.
+<p>
+Referenced by <a class="el" href="display_8hcc-source.html#l00065">display_main()</a>, and <a class="el" href="mouse_8hcc-source.html#l00048">mouse_main()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="o1" doxytag="mousedata_t::y"></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top">unsigned <a class="el" href="structmousedata__t.html#o1">mousedata_t::y</a> </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="mouse__shared_8hch-source.html#l00028">28</a> of file <a class="el" href="mouse__shared_8hch-source.html">mouse_shared.hch</a>.
+<p>
+Referenced by <a class="el" href="display_8hcc-source.html#l00065">display_main()</a>, <a class="el" href="eventhandler_8hcc-source.html#l00059">eventhandler_main()</a>, and <a class="el" href="mouse_8hcc-source.html#l00048">mouse_main()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="o2" doxytag="mousedata_t::state"></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top">unsigned <a class="el" href="structmousedata__t.html#o2">mousedata_t::state</a> </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="mouse__shared_8hch-source.html#l00029">29</a> of file <a class="el" href="mouse__shared_8hch-source.html">mouse_shared.hch</a>.
+<p>
+Referenced by <a class="el" href="eventhandler_8hcc-source.html#l00059">eventhandler_main()</a>, and <a class="el" href="mouse_8hcc-source.html#l00048">mouse_main()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="o3" doxytag="mousedata_t::status"></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top">unsigned <a class="el" href="structmousedata__t.html#o3">mousedata_t::status</a> </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="mouse__shared_8hch-source.html#l00030">30</a> of file <a class="el" href="mouse__shared_8hch-source.html">mouse_shared.hch</a>.
+<p>
+Referenced by <a class="el" href="display_8hcc-source.html#l00065">display_main()</a>, and <a class="el" href="mouse_8hcc-source.html#l00048">mouse_main()</a>. </td>
+ </tr>
+</table>
+<hr>The documentation for this struct was generated from the following file:<ul>
+<li>C:/Project Marcel &amp; Oliver/Graphic_Equalizer/include/<a class="el" href="mouse__shared_8hch-source.html">mouse_shared.hch</a></ul>
+<hr size="1"><address style="align: right;"><small>Generated on Thu Dec 9 14:37:09 2004 for Graphic Equalizer 2 by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.3.9.1 </small></address>
+</body>
+</html>
diff --git a/Graphic_Equalizer_Original_Port/doc/html/structskindata__t.html b/Graphic_Equalizer_Original_Port/doc/html/structskindata__t.html
new file mode 100644
index 0000000..2ae74df
--- /dev/null
+++ b/Graphic_Equalizer_Original_Port/doc/html/structskindata__t.html
@@ -0,0 +1,139 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>Graphic Equalizer 2: skindata_t Struct Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.3.9.1 -->
+<div class="qindex"><a class="qindex" href="main.html">Main&nbsp;Page</a> | <a class="qindex" href="annotated.html">Data&nbsp;Structures</a> | <a class="qindex" href="dirs.html">Directories</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="functions.html">Data&nbsp;Fields</a> | <a class="qindex" href="globals.html">Globals</a></div>
+<h1>skindata_t Struct Reference</h1>This struct contains all area- dimensions and color information for the skin.
+<a href="#_details">More...</a>
+<p>
+Collaboration diagram for skindata_t:<p><center><img src="structskindata__t__coll__graph.png" border="0" usemap="#skindata__t__coll__map" alt="Collaboration graph"></center>
+<map name="skindata__t__coll__map">
+<area href="structskindata__t_1_1skin__info__t.html" shape="rect" coords="8,8,162,168" alt="">
+</map>
+<center><font size="2">[<a target="top" href="graph_legend.html">legend</a>]</font></center><table border="0" cellpadding="0" cellspacing="0">
+<tr><td></td></tr>
+<tr><td colspan="2"><br><h2>Data Fields</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="structskindata__t_1_1skin__info__t.html">skin_info_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structskindata__t.html#o0">waveform</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="structskindata__t_1_1skin__info__t.html">skin_info_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structskindata__t.html#o1">spectrum</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="structskindata__t_1_1skin__info__t.html">skin_info_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structskindata__t.html#o2">volume</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="structskindata__t_1_1skin__info__t.html">skin_info_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structskindata__t.html#o3">equalizer</a></td></tr>
+
+</table>
+<hr><a name="_details"></a><h2>Detailed Description</h2>
+This struct contains all area- dimensions and color information for the skin.
+<p>
+
+<p>
+Definition at line <a class="el" href="display__shared_8hch-source.html#l00029">29</a> of file <a class="el" href="display__shared_8hch-source.html">display_shared.hch</a>.<hr><h2>Field Documentation</h2>
+<a class="anchor" name="o0" doxytag="skindata_t::waveform"></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top">struct <a class="el" href="structskindata__t_1_1skin__info__t.html">skin_info_t</a> <a class="el" href="structskindata__t.html#o0">skindata_t::waveform</a> </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+We store all information about the waveform area here.
+<p>
+Definition at line <a class="el" href="display__shared_8hch-source.html#l00042">42</a> of file <a class="el" href="display__shared_8hch-source.html">display_shared.hch</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="o1" doxytag="skindata_t::spectrum"></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top">struct <a class="el" href="structskindata__t_1_1skin__info__t.html">skin_info_t</a> <a class="el" href="structskindata__t.html#o1">skindata_t::spectrum</a> </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+We store all information about the spectrum analyzer area here.
+<p>
+Definition at line <a class="el" href="display__shared_8hch-source.html#l00043">43</a> of file <a class="el" href="display__shared_8hch-source.html">display_shared.hch</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="o2" doxytag="skindata_t::volume"></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top">struct <a class="el" href="structskindata__t_1_1skin__info__t.html">skin_info_t</a> <a class="el" href="structskindata__t.html#o2">skindata_t::volume</a> </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+We store all information about the volume control area here.
+<p>
+Definition at line <a class="el" href="display__shared_8hch-source.html#l00044">44</a> of file <a class="el" href="display__shared_8hch-source.html">display_shared.hch</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="o3" doxytag="skindata_t::equalizer"></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top">struct <a class="el" href="structskindata__t_1_1skin__info__t.html">skin_info_t</a> <a class="el" href="structskindata__t.html#o3">skindata_t::equalizer</a> </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+We store all information about the equalizerbars here.
+<p>
+Definition at line <a class="el" href="display__shared_8hch-source.html#l00045">45</a> of file <a class="el" href="display__shared_8hch-source.html">display_shared.hch</a>. </td>
+ </tr>
+</table>
+<hr>The documentation for this struct was generated from the following file:<ul>
+<li>C:/Project Marcel &amp; Oliver/Graphic_Equalizer/include/<a class="el" href="display__shared_8hch-source.html">display_shared.hch</a></ul>
+<hr size="1"><address style="align: right;"><small>Generated on Thu Dec 9 14:37:09 2004 for Graphic Equalizer 2 by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.3.9.1 </small></address>
+</body>
+</html>
diff --git a/Graphic_Equalizer_Original_Port/doc/html/structskindata__t_1_1skin__info__t.html b/Graphic_Equalizer_Original_Port/doc/html/structskindata__t_1_1skin__info__t.html
new file mode 100644
index 0000000..42de9e3
--- /dev/null
+++ b/Graphic_Equalizer_Original_Port/doc/html/structskindata__t_1_1skin__info__t.html
@@ -0,0 +1,189 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>Graphic Equalizer 2: skindata_t::skin_info_t Struct Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.3.9.1 -->
+<div class="qindex"><a class="qindex" href="main.html">Main&nbsp;Page</a> | <a class="qindex" href="annotated.html">Data&nbsp;Structures</a> | <a class="qindex" href="dirs.html">Directories</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="functions.html">Data&nbsp;Fields</a> | <a class="qindex" href="globals.html">Globals</a></div>
+<h1>skindata_t::skin_info_t Struct Reference</h1>Structure containing the four boundry limits of an area and maximal two colors per area.
+<a href="#_details">More...</a>
+<p>
+<table border="0" cellpadding="0" cellspacing="0">
+<tr><td></td></tr>
+<tr><td colspan="2"><br><h2>Data Fields</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">unsigned&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structskindata__t_1_1skin__info__t.html#o0">area_bottom</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">unsigned&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structskindata__t_1_1skin__info__t.html#o1">area_top</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">unsigned&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structskindata__t_1_1skin__info__t.html#o2">area_left</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">unsigned&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structskindata__t_1_1skin__info__t.html#o3">area_right</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">unsigned&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structskindata__t_1_1skin__info__t.html#o4">color_primary</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">unsigned&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structskindata__t_1_1skin__info__t.html#o5">color_secondary</a></td></tr>
+
+</table>
+<hr><a name="_details"></a><h2>Detailed Description</h2>
+Structure containing the four boundry limits of an area and maximal two colors per area.
+<p>
+
+<p>
+Definition at line <a class="el" href="display__shared_8hch-source.html#l00034">34</a> of file <a class="el" href="display__shared_8hch-source.html">display_shared.hch</a>.<hr><h2>Field Documentation</h2>
+<a class="anchor" name="o0" doxytag="skindata_t::skin_info_t::area_bottom"></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top">unsigned <a class="el" href="structskindata__t_1_1skin__info__t.html#o0">skindata_t::skin_info_t::area_bottom</a> </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+lowest point registerd in the area
+<p>
+Definition at line <a class="el" href="display__shared_8hch-source.html#l00035">35</a> of file <a class="el" href="display__shared_8hch-source.html">display_shared.hch</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="o1" doxytag="skindata_t::skin_info_t::area_top"></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top">unsigned <a class="el" href="structskindata__t_1_1skin__info__t.html#o1">skindata_t::skin_info_t::area_top</a> </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+highest point registerd in the area
+<p>
+Definition at line <a class="el" href="display__shared_8hch-source.html#l00036">36</a> of file <a class="el" href="display__shared_8hch-source.html">display_shared.hch</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="o2" doxytag="skindata_t::skin_info_t::area_left"></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top">unsigned <a class="el" href="structskindata__t_1_1skin__info__t.html#o2">skindata_t::skin_info_t::area_left</a> </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+leftmost point registerd in the area
+<p>
+Definition at line <a class="el" href="display__shared_8hch-source.html#l00037">37</a> of file <a class="el" href="display__shared_8hch-source.html">display_shared.hch</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="o3" doxytag="skindata_t::skin_info_t::area_right"></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top">unsigned <a class="el" href="structskindata__t_1_1skin__info__t.html#o3">skindata_t::skin_info_t::area_right</a> </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+rightmost point registerd in the area
+<p>
+Definition at line <a class="el" href="display__shared_8hch-source.html#l00038">38</a> of file <a class="el" href="display__shared_8hch-source.html">display_shared.hch</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="o4" doxytag="skindata_t::skin_info_t::color_primary"></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top">unsigned <a class="el" href="structskindata__t_1_1skin__info__t.html#o4">skindata_t::skin_info_t::color_primary</a> </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+primary color for this area
+<p>
+Definition at line <a class="el" href="display__shared_8hch-source.html#l00039">39</a> of file <a class="el" href="display__shared_8hch-source.html">display_shared.hch</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="o5" doxytag="skindata_t::skin_info_t::color_secondary"></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top">unsigned <a class="el" href="structskindata__t_1_1skin__info__t.html#o5">skindata_t::skin_info_t::color_secondary</a> </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+optionally an area can have a second color
+<p>
+Definition at line <a class="el" href="display__shared_8hch-source.html#l00040">40</a> of file <a class="el" href="display__shared_8hch-source.html">display_shared.hch</a>. </td>
+ </tr>
+</table>
+<hr>The documentation for this struct was generated from the following file:<ul>
+<li>C:/Project Marcel &amp; Oliver/Graphic_Equalizer/include/<a class="el" href="display__shared_8hch-source.html">display_shared.hch</a></ul>
+<hr size="1"><address style="align: right;"><small>Generated on Thu Dec 9 14:37:09 2004 for Graphic Equalizer 2 by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.3.9.1 </small></address>
+</body>
+</html>
diff --git a/Graphic_Equalizer_Original_Port/doc/html/structskindata__t__coll__graph.map b/Graphic_Equalizer_Original_Port/doc/html/structskindata__t__coll__graph.map
new file mode 100644
index 0000000..c8bb9b0
--- /dev/null
+++ b/Graphic_Equalizer_Original_Port/doc/html/structskindata__t__coll__graph.map
@@ -0,0 +1,2 @@
+base referer
+rect $structskindata__t_1_1skin__info__t.html 8,8 162,168
diff --git a/Graphic_Equalizer_Original_Port/doc/html/structskindata__t__coll__graph.md5 b/Graphic_Equalizer_Original_Port/doc/html/structskindata__t__coll__graph.md5
new file mode 100644
index 0000000..87c2419
--- /dev/null
+++ b/Graphic_Equalizer_Original_Port/doc/html/structskindata__t__coll__graph.md5
@@ -0,0 +1 @@
+577445d3608b8ce3a5b31a17d5e2c760 \ No newline at end of file
diff --git a/Graphic_Equalizer_Original_Port/doc/html/structskindata__t__coll__graph.png b/Graphic_Equalizer_Original_Port/doc/html/structskindata__t__coll__graph.png
new file mode 100644
index 0000000..d949888
--- /dev/null
+++ b/Graphic_Equalizer_Original_Port/doc/html/structskindata__t__coll__graph.png
Binary files differ
diff --git a/Graphic_Equalizer_Original_Port/doc/html/tree.html b/Graphic_Equalizer_Original_Port/doc/html/tree.html
new file mode 100644
index 0000000..60c70e1
--- /dev/null
+++ b/Graphic_Equalizer_Original_Port/doc/html/tree.html
@@ -0,0 +1,200 @@
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+ <head>
+ <meta http-equiv="Content-Type" content="text/xhtml;charset="iso-8859-1" />
+ <meta http-equiv="Content-Style-Type" content="text/css" />
+ <meta http-equiv="Content-Language" content="en" />
+ <link rel="stylesheet" href="doxygen.css">
+ <title>TreeView</title>
+ <style type="text/css">
+ <!--
+ .directory { font-size: 10pt; font-weight: bold; }
+ .directory h3 { margin: 0px; margin-top: 1em; font-size: 11pt; }
+ .directory p { margin: 0px; white-space: nowrap; }
+ .directory div { display: none; margin: 0px; }
+ .directory img { vertical-align: middle; }
+ -->
+ </style>
+ <script type="text/javascript">
+ <!-- // Hide script from old browsers
+
+ function findChildNode(node, name)
+ {
+ var temp;
+ if (node == null)
+ {
+ return null;
+ }
+ node = node.firstChild;
+ while (node != null)
+ {
+ if (node.nodeName == name)
+ {
+ return node;
+ }
+ temp = findChildNode(node, name);
+ if (temp != null)
+ {
+ return temp;
+ }
+ node = node.nextSibling;
+ }
+ return null;
+ }
+
+ function toggleFolder(id, imageNode)
+ {
+ var folder = document.getElementById(id);
+ var l = 0;
+ var vl = "ftv2vertline.png";
+ if (imageNode != null && imageNode.nodeName != "IMG")
+ {
+ imageNode = findChildNode(imageNode, "IMG");
+ if (imageNode!=null) l = imageNode.src.length;
+ }
+ if (folder == null)
+ {
+ }
+ else if (folder.style.display == "block")
+ {
+ while (imageNode != null &&
+ imageNode.src.substring(l-vl.length,l) == vl)
+ {
+ imageNode = imageNode.nextSibling;
+ l = imageNode.src.length;
+ }
+ if (imageNode != null)
+ {
+ l = imageNode.src.length;
+ imageNode.nextSibling.src = "ftv2folderclosed.png";
+ if (imageNode.src.substring(l-13,l) == "ftv2mnode.png")
+ {
+ imageNode.src = "ftv2pnode.png";
+ }
+ else if (imageNode.src.substring(l-17,l) == "ftv2mlastnode.png")
+ {
+ imageNode.src = "ftv2plastnode.png";
+ }
+ }
+ folder.style.display = "none";
+ }
+ else
+ {
+ while (imageNode != null &&
+ imageNode.src.substring(l-vl.length,l) == vl)
+ {
+ imageNode = imageNode.nextSibling;
+ l = imageNode.src.length;
+ }
+ if (imageNode != null)
+ {
+ l = imageNode.src.length;
+ imageNode.nextSibling.src = "ftv2folderopen.png";
+ if (imageNode.src.substring(l-13,l) == "ftv2pnode.png")
+ {
+ imageNode.src = "ftv2mnode.png";
+ }
+ else if (imageNode.src.substring(l-17,l) == "ftv2plastnode.png")
+ {
+ imageNode.src = "ftv2mlastnode.png";
+ }
+ }
+ folder.style.display = "block";
+ }
+ }
+
+ // End script hiding -->
+ </script>
+ </head>
+
+ <body>
+ <div class="directory">
+ <h3>Graphic Equalizer 2</h3>
+ <div style="display: block;">
+ <p><img src="ftv2node.png" alt="o" width=16 height=22 /><img src="ftv2doc.png" alt="*" width=24 height=22 /><a class="el" href="main.html" target="basefrm">Main Page</a></p>
+ <p><img src="ftv2pnode.png" alt="o" width=16 height=22 onclick="toggleFolder('folder1', this)"/><img src="ftv2folderclosed.png" alt="+" width=24 height=22 onclick="toggleFolder('folder1', this)"/><a class="el" href="files.html" target="basefrm">File List</a></p>
+ <div id="folder1">
+ <p><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2node.png" alt="o" width=16 height=22 /><img src="ftv2doc.png" alt="*" width=24 height=22 /><a class="el" href="audio_8hch.html" target="basefrm">C:/Project Marcel & Oliver/Graphic_Equalizer/include/audio.hch</a></p>
+ <p><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2node.png" alt="o" width=16 height=22 /><img src="ftv2doc.png" alt="*" width=24 height=22 /><a class="el" href="configuration_8hch.html" target="basefrm">C:/Project Marcel & Oliver/Graphic_Equalizer/include/configuration.hch</a></p>
+ <p><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2node.png" alt="o" width=16 height=22 /><img src="ftv2doc.png" alt="*" width=24 height=22 /><a class="el" href="display_8hch.html" target="basefrm">C:/Project Marcel & Oliver/Graphic_Equalizer/include/display.hch</a></p>
+ <p><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2node.png" alt="o" width=16 height=22 /><img src="ftv2doc.png" alt="*" width=24 height=22 /><a class="el" href="display__shared_8hch.html" target="basefrm">C:/Project Marcel & Oliver/Graphic_Equalizer/include/display_shared.hch</a></p>
+ <p><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2node.png" alt="o" width=16 height=22 /><img src="ftv2doc.png" alt="*" width=24 height=22 /><a class="el" href="eventhandler_8hch.html" target="basefrm">C:/Project Marcel & Oliver/Graphic_Equalizer/include/eventhandler.hch</a></p>
+ <p><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2node.png" alt="o" width=16 height=22 /><img src="ftv2doc.png" alt="*" width=24 height=22 /><a class="el" href="eventhandler__shared_8hch.html" target="basefrm">C:/Project Marcel & Oliver/Graphic_Equalizer/include/eventhandler_shared.hch</a></p>
+ <p><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2node.png" alt="o" width=16 height=22 /><img src="ftv2doc.png" alt="*" width=24 height=22 /><a class="el" href="events_8hch.html" target="basefrm">C:/Project Marcel & Oliver/Graphic_Equalizer/include/events.hch</a></p>
+ <p><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2node.png" alt="o" width=16 height=22 /><img src="ftv2doc.png" alt="*" width=24 height=22 /><a class="el" href="fft_8hch.html" target="basefrm">C:/Project Marcel & Oliver/Graphic_Equalizer/include/fft.hch</a></p>
+ <p><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2node.png" alt="o" width=16 height=22 /><img src="ftv2doc.png" alt="*" width=24 height=22 /><a class="el" href="mouse_8hch.html" target="basefrm">C:/Project Marcel & Oliver/Graphic_Equalizer/include/mouse.hch</a></p>
+ <p><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2node.png" alt="o" width=16 height=22 /><img src="ftv2doc.png" alt="*" width=24 height=22 /><a class="el" href="mouse__shared_8hch.html" target="basefrm">C:/Project Marcel & Oliver/Graphic_Equalizer/include/mouse_shared.hch</a></p>
+ <p><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2node.png" alt="o" width=16 height=22 /><img src="ftv2doc.png" alt="*" width=24 height=22 /><a class="el" href="runfft_8hch.html" target="basefrm">C:/Project Marcel & Oliver/Graphic_Equalizer/include/runfft.hch</a></p>
+ <p><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2node.png" alt="o" width=16 height=22 /><img src="ftv2doc.png" alt="*" width=24 height=22 /><a class="el" href="smartmedia_8hch.html" target="basefrm">C:/Project Marcel & Oliver/Graphic_Equalizer/include/smartmedia.hch</a></p>
+ <p><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2node.png" alt="o" width=16 height=22 /><img src="ftv2doc.png" alt="*" width=24 height=22 /><a class="el" href="smartmedia__shared_8hch.html" target="basefrm">C:/Project Marcel & Oliver/Graphic_Equalizer/include/smartmedia_shared.hch</a></p>
+ <p><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2node.png" alt="o" width=16 height=22 /><img src="ftv2doc.png" alt="*" width=24 height=22 /><a class="el" href="weights__256_8hch.html" target="basefrm">C:/Project Marcel & Oliver/Graphic_Equalizer/include/weights_256.hch</a></p>
+ <p><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2node.png" alt="o" width=16 height=22 /><img src="ftv2doc.png" alt="*" width=24 height=22 /><a class="el" href="audio_8hcc.html" target="basefrm">C:/Project Marcel & Oliver/Graphic_Equalizer/src/audio.hcc</a></p>
+ <p><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2node.png" alt="o" width=16 height=22 /><img src="ftv2doc.png" alt="*" width=24 height=22 /><a class="el" href="display_8hcc.html" target="basefrm">C:/Project Marcel & Oliver/Graphic_Equalizer/src/display.hcc</a></p>
+ <p><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2node.png" alt="o" width=16 height=22 /><img src="ftv2doc.png" alt="*" width=24 height=22 /><a class="el" href="eventhandler_8hcc.html" target="basefrm">C:/Project Marcel & Oliver/Graphic_Equalizer/src/eventhandler.hcc</a></p>
+ <p><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2node.png" alt="o" width=16 height=22 /><img src="ftv2doc.png" alt="*" width=24 height=22 /><a class="el" href="events_8hcc.html" target="basefrm">C:/Project Marcel & Oliver/Graphic_Equalizer/src/events.hcc</a></p>
+ <p><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2node.png" alt="o" width=16 height=22 /><img src="ftv2doc.png" alt="*" width=24 height=22 /><a class="el" href="fft_8hcc.html" target="basefrm">C:/Project Marcel & Oliver/Graphic_Equalizer/src/fft.hcc</a></p>
+ <p><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2node.png" alt="o" width=16 height=22 /><img src="ftv2doc.png" alt="*" width=24 height=22 /><a class="el" href="main_8hcc.html" target="basefrm">C:/Project Marcel & Oliver/Graphic_Equalizer/src/main.hcc</a></p>
+ <p><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2node.png" alt="o" width=16 height=22 /><img src="ftv2doc.png" alt="*" width=24 height=22 /><a class="el" href="mouse_8hcc.html" target="basefrm">C:/Project Marcel & Oliver/Graphic_Equalizer/src/mouse.hcc</a></p>
+ <p><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2node.png" alt="o" width=16 height=22 /><img src="ftv2doc.png" alt="*" width=24 height=22 /><a class="el" href="runfft_8hcc.html" target="basefrm">C:/Project Marcel & Oliver/Graphic_Equalizer/src/runfft.hcc</a></p>
+ <p><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2lastnode.png" alt="\" width=16 height=22 /><img src="ftv2doc.png" alt="*" width=24 height=22 /><a class="el" href="smartmedia_8hcc.html" target="basefrm">C:/Project Marcel & Oliver/Graphic_Equalizer/src/smartmedia.hcc</a></p>
+ </div>
+ <p><img src="ftv2pnode.png" alt="o" width=16 height=22 onclick="toggleFolder('folder2', this)"/><img src="ftv2folderclosed.png" alt="+" width=24 height=22 onclick="toggleFolder('folder2', this)"/><a class="el" href="annotated.html" target="basefrm">Data Structures</a></p>
+ <div id="folder2">
+ <p><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2node.png" alt="o" width=16 height=22 /><img src="ftv2doc.png" alt="*" width=24 height=22 /><a class="el" href="structaudiodata__t.html" target="basefrm">audiodata_t</a></p>
+ <p><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2node.png" alt="o" width=16 height=22 /><img src="ftv2doc.png" alt="*" width=24 height=22 /><a class="el" href="structevents__t.html" target="basefrm">events_t</a></p>
+ <p><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2node.png" alt="o" width=16 height=22 /><img src="ftv2doc.png" alt="*" width=24 height=22 /><a class="el" href="structmousedata__t.html" target="basefrm">mousedata_t</a></p>
+ <p><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2node.png" alt="o" width=16 height=22 /><img src="ftv2doc.png" alt="*" width=24 height=22 /><a class="el" href="structskindata__t.html" target="basefrm">skindata_t</a></p>
+ <p><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2lastnode.png" alt="\" width=16 height=22 /><img src="ftv2doc.png" alt="*" width=24 height=22 /><a class="el" href="structskindata__t_1_1skin__info__t.html" target="basefrm">skindata_t::skin_info_t</a></p>
+ </div>
+ <p><img src="ftv2node.png" alt="o" width=16 height=22 /><img src="ftv2doc.png" alt="*" width=24 height=22 /><a class="el" href="functions.html" target="basefrm">Data Fields</a></p>
+ <p><img src="ftv2pnode.png" alt="o" width=16 height=22 onclick="toggleFolder('folder3', this)"/><img src="ftv2folderclosed.png" alt="+" width=24 height=22 onclick="toggleFolder('folder3', this)"/><a class="el" href="dirs.html" target="basefrm">Directories</a></p>
+ <div id="folder3">
+ <p><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2plastnode.png" alt="\" width=16 height=22 onclick="toggleFolder('folder4', this)"/><img src="ftv2folderclosed.png" alt="+" width=24 height=22 onclick="toggleFolder('folder4', this)"/><a class="el" href="dir_000000.html" target="basefrm">C:</a></p>
+ <div id="folder4">
+ <p><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2blank.png" alt="&nbsp;" width=16 height=22 /><img src="ftv2plastnode.png" alt="\" width=16 height=22 onclick="toggleFolder('folder5', this)"/><img src="ftv2folderclosed.png" alt="+" width=24 height=22 onclick="toggleFolder('folder5', this)"/><a class="el" href="dir_000001.html" target="basefrm">Project Marcel & Oliver</a></p>
+ <div id="folder5">
+ <p><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2blank.png" alt="&nbsp;" width=16 height=22 /><img src="ftv2blank.png" alt="&nbsp;" width=16 height=22 /><img src="ftv2plastnode.png" alt="\" width=16 height=22 onclick="toggleFolder('folder6', this)"/><img src="ftv2folderclosed.png" alt="+" width=24 height=22 onclick="toggleFolder('folder6', this)"/><a class="el" href="dir_000002.html" target="basefrm">Graphic_Equalizer</a></p>
+ <div id="folder6">
+ <p><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2blank.png" alt="&nbsp;" width=16 height=22 /><img src="ftv2blank.png" alt="&nbsp;" width=16 height=22 /><img src="ftv2blank.png" alt="&nbsp;" width=16 height=22 /><img src="ftv2pnode.png" alt="o" width=16 height=22 onclick="toggleFolder('folder7', this)"/><img src="ftv2folderclosed.png" alt="+" width=24 height=22 onclick="toggleFolder('folder7', this)"/><a class="el" href="dir_000003.html" target="basefrm">include</a></p>
+ <div id="folder7">
+ <p><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2blank.png" alt="&nbsp;" width=16 height=22 /><img src="ftv2blank.png" alt="&nbsp;" width=16 height=22 /><img src="ftv2blank.png" alt="&nbsp;" width=16 height=22 /><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2plastnode.png" alt="\" width=16 height=22 onclick="toggleFolder('folder8', this)"/><img src="ftv2folderclosed.png" alt="+" width=24 height=22 onclick="toggleFolder('folder8', this)"/><a class="el" href="dir_000003.html" target="basefrm">Files</a></p>
+ <div id="folder8">
+ <p><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2blank.png" alt="&nbsp;" width=16 height=22 /><img src="ftv2blank.png" alt="&nbsp;" width=16 height=22 /><img src="ftv2blank.png" alt="&nbsp;" width=16 height=22 /><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2blank.png" alt="&nbsp;" width=16 height=22 /><img src="ftv2node.png" alt="o" width=16 height=22 /><img src="ftv2doc.png" alt="*" width=24 height=22 /><a class="el" href="audio_8hch.html" target="basefrm">audio.hch</a></p>
+ <p><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2blank.png" alt="&nbsp;" width=16 height=22 /><img src="ftv2blank.png" alt="&nbsp;" width=16 height=22 /><img src="ftv2blank.png" alt="&nbsp;" width=16 height=22 /><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2blank.png" alt="&nbsp;" width=16 height=22 /><img src="ftv2node.png" alt="o" width=16 height=22 /><img src="ftv2doc.png" alt="*" width=24 height=22 /><a class="el" href="configuration_8hch.html" target="basefrm">configuration.hch</a></p>
+ <p><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2blank.png" alt="&nbsp;" width=16 height=22 /><img src="ftv2blank.png" alt="&nbsp;" width=16 height=22 /><img src="ftv2blank.png" alt="&nbsp;" width=16 height=22 /><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2blank.png" alt="&nbsp;" width=16 height=22 /><img src="ftv2node.png" alt="o" width=16 height=22 /><img src="ftv2doc.png" alt="*" width=24 height=22 /><a class="el" href="display_8hch.html" target="basefrm">display.hch</a></p>
+ <p><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2blank.png" alt="&nbsp;" width=16 height=22 /><img src="ftv2blank.png" alt="&nbsp;" width=16 height=22 /><img src="ftv2blank.png" alt="&nbsp;" width=16 height=22 /><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2blank.png" alt="&nbsp;" width=16 height=22 /><img src="ftv2node.png" alt="o" width=16 height=22 /><img src="ftv2doc.png" alt="*" width=24 height=22 /><a class="el" href="display__shared_8hch.html" target="basefrm">display_shared.hch</a></p>
+ <p><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2blank.png" alt="&nbsp;" width=16 height=22 /><img src="ftv2blank.png" alt="&nbsp;" width=16 height=22 /><img src="ftv2blank.png" alt="&nbsp;" width=16 height=22 /><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2blank.png" alt="&nbsp;" width=16 height=22 /><img src="ftv2node.png" alt="o" width=16 height=22 /><img src="ftv2doc.png" alt="*" width=24 height=22 /><a class="el" href="eventhandler_8hch.html" target="basefrm">eventhandler.hch</a></p>
+ <p><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2blank.png" alt="&nbsp;" width=16 height=22 /><img src="ftv2blank.png" alt="&nbsp;" width=16 height=22 /><img src="ftv2blank.png" alt="&nbsp;" width=16 height=22 /><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2blank.png" alt="&nbsp;" width=16 height=22 /><img src="ftv2node.png" alt="o" width=16 height=22 /><img src="ftv2doc.png" alt="*" width=24 height=22 /><a class="el" href="eventhandler__shared_8hch.html" target="basefrm">eventhandler_shared.hch</a></p>
+ <p><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2blank.png" alt="&nbsp;" width=16 height=22 /><img src="ftv2blank.png" alt="&nbsp;" width=16 height=22 /><img src="ftv2blank.png" alt="&nbsp;" width=16 height=22 /><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2blank.png" alt="&nbsp;" width=16 height=22 /><img src="ftv2node.png" alt="o" width=16 height=22 /><img src="ftv2doc.png" alt="*" width=24 height=22 /><a class="el" href="events_8hch.html" target="basefrm">events.hch</a></p>
+ <p><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2blank.png" alt="&nbsp;" width=16 height=22 /><img src="ftv2blank.png" alt="&nbsp;" width=16 height=22 /><img src="ftv2blank.png" alt="&nbsp;" width=16 height=22 /><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2blank.png" alt="&nbsp;" width=16 height=22 /><img src="ftv2node.png" alt="o" width=16 height=22 /><img src="ftv2doc.png" alt="*" width=24 height=22 /><a class="el" href="fft_8hch.html" target="basefrm">fft.hch</a></p>
+ <p><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2blank.png" alt="&nbsp;" width=16 height=22 /><img src="ftv2blank.png" alt="&nbsp;" width=16 height=22 /><img src="ftv2blank.png" alt="&nbsp;" width=16 height=22 /><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2blank.png" alt="&nbsp;" width=16 height=22 /><img src="ftv2node.png" alt="o" width=16 height=22 /><img src="ftv2doc.png" alt="*" width=24 height=22 /><a class="el" href="mouse_8hch.html" target="basefrm">mouse.hch</a></p>
+ <p><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2blank.png" alt="&nbsp;" width=16 height=22 /><img src="ftv2blank.png" alt="&nbsp;" width=16 height=22 /><img src="ftv2blank.png" alt="&nbsp;" width=16 height=22 /><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2blank.png" alt="&nbsp;" width=16 height=22 /><img src="ftv2node.png" alt="o" width=16 height=22 /><img src="ftv2doc.png" alt="*" width=24 height=22 /><a class="el" href="mouse__shared_8hch.html" target="basefrm">mouse_shared.hch</a></p>
+ <p><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2blank.png" alt="&nbsp;" width=16 height=22 /><img src="ftv2blank.png" alt="&nbsp;" width=16 height=22 /><img src="ftv2blank.png" alt="&nbsp;" width=16 height=22 /><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2blank.png" alt="&nbsp;" width=16 height=22 /><img src="ftv2node.png" alt="o" width=16 height=22 /><img src="ftv2doc.png" alt="*" width=24 height=22 /><a class="el" href="runfft_8hch.html" target="basefrm">runfft.hch</a></p>
+ <p><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2blank.png" alt="&nbsp;" width=16 height=22 /><img src="ftv2blank.png" alt="&nbsp;" width=16 height=22 /><img src="ftv2blank.png" alt="&nbsp;" width=16 height=22 /><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2blank.png" alt="&nbsp;" width=16 height=22 /><img src="ftv2node.png" alt="o" width=16 height=22 /><img src="ftv2doc.png" alt="*" width=24 height=22 /><a class="el" href="smartmedia_8hch.html" target="basefrm">smartmedia.hch</a></p>
+ <p><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2blank.png" alt="&nbsp;" width=16 height=22 /><img src="ftv2blank.png" alt="&nbsp;" width=16 height=22 /><img src="ftv2blank.png" alt="&nbsp;" width=16 height=22 /><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2blank.png" alt="&nbsp;" width=16 height=22 /><img src="ftv2node.png" alt="o" width=16 height=22 /><img src="ftv2doc.png" alt="*" width=24 height=22 /><a class="el" href="smartmedia__shared_8hch.html" target="basefrm">smartmedia_shared.hch</a></p>
+ <p><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2blank.png" alt="&nbsp;" width=16 height=22 /><img src="ftv2blank.png" alt="&nbsp;" width=16 height=22 /><img src="ftv2blank.png" alt="&nbsp;" width=16 height=22 /><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2blank.png" alt="&nbsp;" width=16 height=22 /><img src="ftv2lastnode.png" alt="\" width=16 height=22 /><img src="ftv2doc.png" alt="*" width=24 height=22 /><a class="el" href="weights__256_8hch.html" target="basefrm">weights_256.hch</a></p>
+ </div>
+ </div>
+ <p><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2blank.png" alt="&nbsp;" width=16 height=22 /><img src="ftv2blank.png" alt="&nbsp;" width=16 height=22 /><img src="ftv2blank.png" alt="&nbsp;" width=16 height=22 /><img src="ftv2plastnode.png" alt="\" width=16 height=22 onclick="toggleFolder('folder9', this)"/><img src="ftv2folderclosed.png" alt="+" width=24 height=22 onclick="toggleFolder('folder9', this)"/><a class="el" href="dir_000004.html" target="basefrm">src</a></p>
+ <div id="folder9">
+ <p><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2blank.png" alt="&nbsp;" width=16 height=22 /><img src="ftv2blank.png" alt="&nbsp;" width=16 height=22 /><img src="ftv2blank.png" alt="&nbsp;" width=16 height=22 /><img src="ftv2blank.png" alt="&nbsp;" width=16 height=22 /><img src="ftv2plastnode.png" alt="\" width=16 height=22 onclick="toggleFolder('folder10', this)"/><img src="ftv2folderclosed.png" alt="+" width=24 height=22 onclick="toggleFolder('folder10', this)"/><a class="el" href="dir_000004.html" target="basefrm">Files</a></p>
+ <div id="folder10">
+ <p><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2blank.png" alt="&nbsp;" width=16 height=22 /><img src="ftv2blank.png" alt="&nbsp;" width=16 height=22 /><img src="ftv2blank.png" alt="&nbsp;" width=16 height=22 /><img src="ftv2blank.png" alt="&nbsp;" width=16 height=22 /><img src="ftv2blank.png" alt="&nbsp;" width=16 height=22 /><img src="ftv2node.png" alt="o" width=16 height=22 /><img src="ftv2doc.png" alt="*" width=24 height=22 /><a class="el" href="audio_8hcc.html" target="basefrm">audio.hcc</a></p>
+ <p><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2blank.png" alt="&nbsp;" width=16 height=22 /><img src="ftv2blank.png" alt="&nbsp;" width=16 height=22 /><img src="ftv2blank.png" alt="&nbsp;" width=16 height=22 /><img src="ftv2blank.png" alt="&nbsp;" width=16 height=22 /><img src="ftv2blank.png" alt="&nbsp;" width=16 height=22 /><img src="ftv2node.png" alt="o" width=16 height=22 /><img src="ftv2doc.png" alt="*" width=24 height=22 /><a class="el" href="display_8hcc.html" target="basefrm">display.hcc</a></p>
+ <p><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2blank.png" alt="&nbsp;" width=16 height=22 /><img src="ftv2blank.png" alt="&nbsp;" width=16 height=22 /><img src="ftv2blank.png" alt="&nbsp;" width=16 height=22 /><img src="ftv2blank.png" alt="&nbsp;" width=16 height=22 /><img src="ftv2blank.png" alt="&nbsp;" width=16 height=22 /><img src="ftv2node.png" alt="o" width=16 height=22 /><img src="ftv2doc.png" alt="*" width=24 height=22 /><a class="el" href="eventhandler_8hcc.html" target="basefrm">eventhandler.hcc</a></p>
+ <p><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2blank.png" alt="&nbsp;" width=16 height=22 /><img src="ftv2blank.png" alt="&nbsp;" width=16 height=22 /><img src="ftv2blank.png" alt="&nbsp;" width=16 height=22 /><img src="ftv2blank.png" alt="&nbsp;" width=16 height=22 /><img src="ftv2blank.png" alt="&nbsp;" width=16 height=22 /><img src="ftv2node.png" alt="o" width=16 height=22 /><img src="ftv2doc.png" alt="*" width=24 height=22 /><a class="el" href="events_8hcc.html" target="basefrm">events.hcc</a></p>
+ <p><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2blank.png" alt="&nbsp;" width=16 height=22 /><img src="ftv2blank.png" alt="&nbsp;" width=16 height=22 /><img src="ftv2blank.png" alt="&nbsp;" width=16 height=22 /><img src="ftv2blank.png" alt="&nbsp;" width=16 height=22 /><img src="ftv2blank.png" alt="&nbsp;" width=16 height=22 /><img src="ftv2node.png" alt="o" width=16 height=22 /><img src="ftv2doc.png" alt="*" width=24 height=22 /><a class="el" href="fft_8hcc.html" target="basefrm">fft.hcc</a></p>
+ <p><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2blank.png" alt="&nbsp;" width=16 height=22 /><img src="ftv2blank.png" alt="&nbsp;" width=16 height=22 /><img src="ftv2blank.png" alt="&nbsp;" width=16 height=22 /><img src="ftv2blank.png" alt="&nbsp;" width=16 height=22 /><img src="ftv2blank.png" alt="&nbsp;" width=16 height=22 /><img src="ftv2node.png" alt="o" width=16 height=22 /><img src="ftv2doc.png" alt="*" width=24 height=22 /><a class="el" href="main_8hcc.html" target="basefrm">main.hcc</a></p>
+ <p><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2blank.png" alt="&nbsp;" width=16 height=22 /><img src="ftv2blank.png" alt="&nbsp;" width=16 height=22 /><img src="ftv2blank.png" alt="&nbsp;" width=16 height=22 /><img src="ftv2blank.png" alt="&nbsp;" width=16 height=22 /><img src="ftv2blank.png" alt="&nbsp;" width=16 height=22 /><img src="ftv2node.png" alt="o" width=16 height=22 /><img src="ftv2doc.png" alt="*" width=24 height=22 /><a class="el" href="mouse_8hcc.html" target="basefrm">mouse.hcc</a></p>
+ <p><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2blank.png" alt="&nbsp;" width=16 height=22 /><img src="ftv2blank.png" alt="&nbsp;" width=16 height=22 /><img src="ftv2blank.png" alt="&nbsp;" width=16 height=22 /><img src="ftv2blank.png" alt="&nbsp;" width=16 height=22 /><img src="ftv2blank.png" alt="&nbsp;" width=16 height=22 /><img src="ftv2node.png" alt="o" width=16 height=22 /><img src="ftv2doc.png" alt="*" width=24 height=22 /><a class="el" href="runfft_8hcc.html" target="basefrm">runfft.hcc</a></p>
+ <p><img src="ftv2vertline.png" alt="|" width=16 height=22 /><img src="ftv2blank.png" alt="&nbsp;" width=16 height=22 /><img src="ftv2blank.png" alt="&nbsp;" width=16 height=22 /><img src="ftv2blank.png" alt="&nbsp;" width=16 height=22 /><img src="ftv2blank.png" alt="&nbsp;" width=16 height=22 /><img src="ftv2blank.png" alt="&nbsp;" width=16 height=22 /><img src="ftv2lastnode.png" alt="\" width=16 height=22 /><img src="ftv2doc.png" alt="*" width=24 height=22 /><a class="el" href="smartmedia_8hcc.html" target="basefrm">smartmedia.hcc</a></p>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ <p><img src="ftv2lastnode.png" alt="\" width=16 height=22 /><img src="ftv2doc.png" alt="*" width=24 height=22 /><a class="el" href="globals.html" target="basefrm">Globals</a></p>
+ </div>
+ </div>
+ </body>
+</html>
diff --git a/Graphic_Equalizer_Original_Port/doc/html/weights__256_8hch-source.html b/Graphic_Equalizer_Original_Port/doc/html/weights__256_8hch-source.html
new file mode 100644
index 0000000..e282ad2
--- /dev/null
+++ b/Graphic_Equalizer_Original_Port/doc/html/weights__256_8hch-source.html
@@ -0,0 +1,278 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>Graphic Equalizer 2: C:/Project Marcel &amp; Oliver/Graphic_Equalizer/include/weights_256.hch Source File</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.3.9.1 -->
+<div class="qindex"><a class="qindex" href="main.html">Main&nbsp;Page</a> | <a class="qindex" href="annotated.html">Data&nbsp;Structures</a> | <a class="qindex" href="dirs.html">Directories</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="functions.html">Data&nbsp;Fields</a> | <a class="qindex" href="globals.html">Globals</a></div>
+<div class="nav">
+<a class="el" href="dir_000000.html">C:</a>&nbsp;/&nbsp;<a class="el" href="dir_000001.html">Project Marcel &amp; Oliver</a>&nbsp;/&nbsp;<a class="el" href="dir_000002.html">Graphic_Equalizer</a>&nbsp;/&nbsp;<a class="el" href="dir_000003.html">include</a></div>
+<h1>weights_256.hch</h1><a href="weights__256_8hch.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a><a class="code" href="weights__256_8hch.html#a0">00001</a> <span class="preprocessor">#define INTBITS 1</span>
+<a name="l00002"></a><a class="code" href="weights__256_8hch.html#a1">00002</a> <span class="preprocessor"></span><span class="preprocessor">#define FRACBITS 14</span>
+00003 <span class="preprocessor"></span>
+<a name="l00004"></a><a class="code" href="weights__256_8hch.html#a2">00004</a> rom <span class="keywordtype">signed</span> 16 <a class="code" href="weights__256_8hch.html#a2">weight_re</a>[128] = {
+00005 16384,
+00006 16379,
+00007 16364,
+00008 16340,
+00009 16305,
+00010 16261,
+00011 16207,
+00012 16143,
+00013 16069,
+00014 15986,
+00015 15893,
+00016 15791,
+00017 15679,
+00018 15557,
+00019 15426,
+00020 15286,
+00021 15137,
+00022 14978,
+00023 14811,
+00024 14635,
+00025 14449,
+00026 14256,
+00027 14053,
+00028 13842,
+00029 13623,
+00030 13395,
+00031 13160,
+00032 12916,
+00033 12665,
+00034 12406,
+00035 12140,
+00036 11866,
+00037 11585,
+00038 11297,
+00039 11003,
+00040 10702,
+00041 10394,
+00042 10080,
+00043 9760,
+00044 9434,
+00045 9102,
+00046 8765,
+00047 8423,
+00048 8076,
+00049 7723,
+00050 7366,
+00051 7005,
+00052 6639,
+00053 6270,
+00054 5897,
+00055 5520,
+00056 5139,
+00057 4756,
+00058 4370,
+00059 3981,
+00060 3590,
+00061 3196,
+00062 2801,
+00063 2404,
+00064 2006,
+00065 1606,
+00066 1205,
+00067 804,
+00068 402,
+00069 0,
+00070 -402,
+00071 -804,
+00072 -1205,
+00073 -1606,
+00074 -2006,
+00075 -2404,
+00076 -2801,
+00077 -3196,
+00078 -3590,
+00079 -3981,
+00080 -4370,
+00081 -4756,
+00082 -5139,
+00083 -5520,
+00084 -5897,
+00085 -6270,
+00086 -6639,
+00087 -7005,
+00088 -7366,
+00089 -7723,
+00090 -8076,
+00091 -8423,
+00092 -8765,
+00093 -9102,
+00094 -9434,
+00095 -9760,
+00096 -10080,
+00097 -10394,
+00098 -10702,
+00099 -11003,
+00100 -11297,
+00101 -11585,
+00102 -11866,
+00103 -12140,
+00104 -12406,
+00105 -12665,
+00106 -12916,
+00107 -13160,
+00108 -13395,
+00109 -13623,
+00110 -13842,
+00111 -14053,
+00112 -14256,
+00113 -14449,
+00114 -14635,
+00115 -14811,
+00116 -14978,
+00117 -15137,
+00118 -15286,
+00119 -15426,
+00120 -15557,
+00121 -15679,
+00122 -15791,
+00123 -15893,
+00124 -15986,
+00125 -16069,
+00126 -16143,
+00127 -16207,
+00128 -16261,
+00129 -16305,
+00130 -16340,
+00131 -16364,
+00132 -16379
+00133 } with {block = <span class="stringliteral">"BlockRAM"</span>};
+00134
+<a name="l00135"></a><a class="code" href="weights__256_8hch.html#a3">00135</a> rom <span class="keywordtype">signed</span> 16 <a class="code" href="weights__256_8hch.html#a3">weight_im</a>[128] = {
+00136 0,
+00137 -402,
+00138 -804,
+00139 -1205,
+00140 -1606,
+00141 -2006,
+00142 -2404,
+00143 -2801,
+00144 -3196,
+00145 -3590,
+00146 -3981,
+00147 -4370,
+00148 -4756,
+00149 -5139,
+00150 -5520,
+00151 -5897,
+00152 -6270,
+00153 -6639,
+00154 -7005,
+00155 -7366,
+00156 -7723,
+00157 -8076,
+00158 -8423,
+00159 -8765,
+00160 -9102,
+00161 -9434,
+00162 -9760,
+00163 -10080,
+00164 -10394,
+00165 -10702,
+00166 -11003,
+00167 -11297,
+00168 -11585,
+00169 -11866,
+00170 -12140,
+00171 -12406,
+00172 -12665,
+00173 -12916,
+00174 -13160,
+00175 -13395,
+00176 -13623,
+00177 -13842,
+00178 -14053,
+00179 -14256,
+00180 -14449,
+00181 -14635,
+00182 -14811,
+00183 -14978,
+00184 -15137,
+00185 -15286,
+00186 -15426,
+00187 -15557,
+00188 -15679,
+00189 -15791,
+00190 -15893,
+00191 -15986,
+00192 -16069,
+00193 -16143,
+00194 -16207,
+00195 -16261,
+00196 -16305,
+00197 -16340,
+00198 -16364,
+00199 -16379,
+00200 -16384,
+00201 -16379,
+00202 -16364,
+00203 -16340,
+00204 -16305,
+00205 -16261,
+00206 -16207,
+00207 -16143,
+00208 -16069,
+00209 -15986,
+00210 -15893,
+00211 -15791,
+00212 -15679,
+00213 -15557,
+00214 -15426,
+00215 -15286,
+00216 -15137,
+00217 -14978,
+00218 -14811,
+00219 -14635,
+00220 -14449,
+00221 -14256,
+00222 -14053,
+00223 -13842,
+00224 -13623,
+00225 -13395,
+00226 -13160,
+00227 -12916,
+00228 -12665,
+00229 -12406,
+00230 -12140,
+00231 -11866,
+00232 -11585,
+00233 -11297,
+00234 -11003,
+00235 -10702,
+00236 -10394,
+00237 -10080,
+00238 -9760,
+00239 -9434,
+00240 -9102,
+00241 -8765,
+00242 -8423,
+00243 -8076,
+00244 -7723,
+00245 -7366,
+00246 -7005,
+00247 -6639,
+00248 -6270,
+00249 -5897,
+00250 -5520,
+00251 -5139,
+00252 -4756,
+00253 -4370,
+00254 -3981,
+00255 -3590,
+00256 -3196,
+00257 -2801,
+00258 -2404,
+00259 -2006,
+00260 -1606,
+00261 -1205,
+00262 -804,
+00263 -402,
+00264 } with {block = <span class="stringliteral">"BlockRAM"</span>};
+</pre></div><hr size="1"><address style="align: right;"><small>Generated on Thu Dec 9 14:37:06 2004 for Graphic Equalizer 2 by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.3.9.1 </small></address>
+</body>
+</html>
diff --git a/Graphic_Equalizer_Original_Port/doc/html/weights__256_8hch.html b/Graphic_Equalizer_Original_Port/doc/html/weights__256_8hch.html
new file mode 100644
index 0000000..f4f534e
--- /dev/null
+++ b/Graphic_Equalizer_Original_Port/doc/html/weights__256_8hch.html
@@ -0,0 +1,141 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>Graphic Equalizer 2: C:/Project Marcel &amp; Oliver/Graphic_Equalizer/include/weights_256.hch File Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.3.9.1 -->
+<div class="qindex"><a class="qindex" href="main.html">Main&nbsp;Page</a> | <a class="qindex" href="annotated.html">Data&nbsp;Structures</a> | <a class="qindex" href="dirs.html">Directories</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="functions.html">Data&nbsp;Fields</a> | <a class="qindex" href="globals.html">Globals</a></div>
+<div class="nav">
+<a class="el" href="dir_000000.html">C:</a>&nbsp;/&nbsp;<a class="el" href="dir_000001.html">Project Marcel &amp; Oliver</a>&nbsp;/&nbsp;<a class="el" href="dir_000002.html">Graphic_Equalizer</a>&nbsp;/&nbsp;<a class="el" href="dir_000003.html">include</a></div>
+<h1>weights_256.hch File Reference</h1>
+<p>
+This graph shows which files directly or indirectly include this file:<p><center><img src="weights__256_8hch__dep__incl.png" border="0" usemap="#weights_256.hchdep_map" alt="Included by dependency graph"></center>
+<map name="weights_256.hchdep_map">
+<area href="fft_8hcc.html" shape="rect" coords="40,7,98,34" alt="">
+</map>
+
+<p>
+<a href="weights__256_8hch-source.html">Go to the source code of this file.</a><table border="0" cellpadding="0" cellspacing="0">
+<tr><td></td></tr>
+<tr><td colspan="2"><br><h2>Defines</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="weights__256_8hch.html#a0">INTBITS</a>&nbsp;&nbsp;&nbsp;1</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="weights__256_8hch.html#a1">FRACBITS</a>&nbsp;&nbsp;&nbsp;14</td></tr>
+
+<tr><td colspan="2"><br><h2>Variables</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">rom signed&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="weights__256_8hch.html#a2">weight_re</a> [128]</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">rom signed&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="weights__256_8hch.html#a3">weight_im</a> [128]</td></tr>
+
+</table>
+<hr><h2>Define Documentation</h2>
+<a class="anchor" name="a0" doxytag="weights_256.hch::INTBITS"></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top">#define INTBITS&nbsp;&nbsp;&nbsp;1 </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="weights__256_8hch-source.html#l00001">1</a> of file <a class="el" href="weights__256_8hch-source.html">weights_256.hch</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="a1" doxytag="weights_256.hch::FRACBITS"></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top">#define FRACBITS&nbsp;&nbsp;&nbsp;14 </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="weights__256_8hch-source.html#l00002">2</a> of file <a class="el" href="weights__256_8hch-source.html">weights_256.hch</a>. </td>
+ </tr>
+</table>
+<hr><h2>Variable Documentation</h2>
+<a class="anchor" name="a2" doxytag="weights_256.hch::weight_re"></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top">rom signed <a class="el" href="weights__256_8hch.html#a2">weight_re</a>[128] </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="weights__256_8hch-source.html#l00004">4</a> of file <a class="el" href="weights__256_8hch-source.html">weights_256.hch</a>.
+<p>
+Referenced by <a class="el" href="fft_8hcc-source.html#l00104">calculate_fft()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="a3" doxytag="weights_256.hch::weight_im"></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top">rom signed <a class="el" href="weights__256_8hch.html#a3">weight_im</a>[128] </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="weights__256_8hch-source.html#l00135">135</a> of file <a class="el" href="weights__256_8hch-source.html">weights_256.hch</a>.
+<p>
+Referenced by <a class="el" href="fft_8hcc-source.html#l00104">calculate_fft()</a>. </td>
+ </tr>
+</table>
+<hr size="1"><address style="align: right;"><small>Generated on Thu Dec 9 14:37:08 2004 for Graphic Equalizer 2 by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.3.9.1 </small></address>
+</body>
+</html>
diff --git a/Graphic_Equalizer_Original_Port/doc/html/weights__256_8hch__dep__incl.map b/Graphic_Equalizer_Original_Port/doc/html/weights__256_8hch__dep__incl.map
new file mode 100644
index 0000000..d753c47
--- /dev/null
+++ b/Graphic_Equalizer_Original_Port/doc/html/weights__256_8hch__dep__incl.map
@@ -0,0 +1,2 @@
+base referer
+rect $fft_8hcc.html 40,7 98,34
diff --git a/Graphic_Equalizer_Original_Port/doc/html/weights__256_8hch__dep__incl.md5 b/Graphic_Equalizer_Original_Port/doc/html/weights__256_8hch__dep__incl.md5
new file mode 100644
index 0000000..a2121ab
--- /dev/null
+++ b/Graphic_Equalizer_Original_Port/doc/html/weights__256_8hch__dep__incl.md5
@@ -0,0 +1 @@
+109f72098a9f38fff30825084869cdf5 \ No newline at end of file
diff --git a/Graphic_Equalizer_Original_Port/doc/html/weights__256_8hch__dep__incl.png b/Graphic_Equalizer_Original_Port/doc/html/weights__256_8hch__dep__incl.png
new file mode 100644
index 0000000..223c4ed
--- /dev/null
+++ b/Graphic_Equalizer_Original_Port/doc/html/weights__256_8hch__dep__incl.png
Binary files differ
diff --git a/Graphic_Equalizer_Original_Port/include/audio.hch b/Graphic_Equalizer_Original_Port/include/audio.hch
new file mode 100644
index 0000000..988ef59
--- /dev/null
+++ b/Graphic_Equalizer_Original_Port/include/audio.hch
@@ -0,0 +1,87 @@
+/*! \file audio.hch
+ *
+ * \section generic Graphic Equalizer API
+ *
+ * \section project Project information.
+ * Project Graphic Equalizer\n
+ * \author O.M. Schinagl
+ * \date 20041021
+ * \version 0.1
+ *
+ * \section copyright Copyright
+ * Copyright ©2004 Koninklijke Philips Electronics N.V. All rights reserved
+ *
+ * \section history Change history
+ * 20041021: O.M. Schinagl\n Initial version
+ *
+ ********************************************************************/
+
+#ifndef _AUDIO_HCH
+#define _AUDIO_HCH 1
+
+/*
+ * Type definition of the shared memory to be used in various processes
+ */
+typedef struct {
+ mpram {
+ ram unsigned 7 write[256];
+ rom unsigned 7 read[256];
+ } fft_info with { block = "BlockRAM"};
+ mpram {
+ ram unsigned 6 write[256];
+ rom unsigned 6 read[256];
+ } ifft_info with { block = "BlockRAM"};
+ unsigned 4 *equalizer_levels_ptr;
+ unsigned 1 display_log;
+} audiodata_t;
+
+
+
+
+/*
+ * States used to indicate wether audio data is sampled.
+ */
+#define AUDIO_NOT_READY 0
+#define AUDIO_READY 1
+
+
+
+/*
+ * Line in or Mic in aliases for audio_init.
+ */
+#define LINE_IN RC200AudioInLineIn
+#define MIC_IN RC200AudioInMicrophone
+
+
+
+/*
+ * Sample Rate Aliases for audio_init.
+ */
+#define SR_8000 RC200AudioSampleRate8000
+#define SR_11025 RC200AudioSampleRate11025
+#define SR_16000 RC200AudioSampleRate16000
+#define SR_22050 RC200AudioSampleRate22050
+#define SR_44100 RC200AudioSampleRate44100
+#define SR_48000 RC200AudioSampleRate48000
+
+
+
+/*
+ * Initialize the Audio sub-system. gain_level sets the internal amplifier to
+ * passed level, input_source chooses between line in or mic in. The
+ * sample_rate is set to supplied rate. Defines for these are mentioned above.
+ */
+macro proc audio_init(gain_level, input_source, sample_rate, AUDIOIN, AUDIOOUT);
+
+
+
+/*
+ * Main audiodriver loop. This procedure never returns! It handles audio io and
+ * updates the shared memory. It needs Audio I/O handlers passed.
+ */
+macro proc audio_main(audiodata, AUDIOIN, AUDIOOUT);
+
+#else
+#error "ERROR file audio.hch multiple times included"
+#endif /* --- _AUDIO_HCH --- */
+
diff --git a/Graphic_Equalizer_Original_Port/include/configuration.hch b/Graphic_Equalizer_Original_Port/include/configuration.hch
new file mode 100644
index 0000000..17c1b3f
--- /dev/null
+++ b/Graphic_Equalizer_Original_Port/include/configuration.hch
@@ -0,0 +1,56 @@
+/*! \file configuration.hch
+ *
+ * \section generic Configuration for the entire application
+ *
+ * \section project Project information.
+ * Project Graphic Equalizer\n
+ * \author O.M. Schinagl
+ * \date 20041101
+ * \version 0.1
+ *
+ * \section copyright Copyright
+ * Copyright ©2004 Koninklijke Philips Electronics N.V. All rights reserved
+ *
+ * \section history Change history
+ * 20041101: O.M. Schinagl\n Initial version
+ *
+ ********************************************************************/
+
+#ifndef _CONFIGURATION_HCH
+#define _CONFIGURATION_HCH 1
+
+
+
+/*
+ * To print debug information on the RS232 port set this define.
+ */
+#define HAVE_DEBUG 0
+
+
+
+/*
+ * If we don't want to use the SmartMedia set this to 0. Data is then read from
+ * the ram, assuming it's there. Otherwise 1 will load the smartmedia
+ * routines.
+ */
+#define HAVE_SMARTMEDIA 0
+
+
+
+/*
+ * FFT specific. TODO: Clean Up!
+ */
+#define USE_RUNFFT 1
+#define HARDWARE_MULTIPLY 1
+#define PERFORM_FFT_CALCULATION 1
+#define USE_UNSIGNED_AUDIO 0
+
+/*
+FIXME: DK doesn't override from commandline defines. We have to therefore
+ ignore this include guard until we can find around this.
+#else
+#error "ERROR file configuration.hch multiple times included"
+*/
+#endif /* --- _CONFIGURATION_HCH --- */
+
+
diff --git a/Graphic_Equalizer_Original_Port/include/display.hch b/Graphic_Equalizer_Original_Port/include/display.hch
new file mode 100644
index 0000000..af29b4f
--- /dev/null
+++ b/Graphic_Equalizer_Original_Port/include/display.hch
@@ -0,0 +1,52 @@
+/*! \file display.hch
+ *
+ * \section generic Display API
+ *
+ * \section project Project information.
+ * Project Graphic Equalizer\n
+ * \author
+ * \date 20041011
+ * \version 0.1
+ *
+ * \section copyright Copyright
+ * Copyright ©2004 Koninklijke Philips Electronics N.V. All rights reserved
+ *
+ * \section history Change history
+ * 20041011: \n Initial version
+ *
+ ********************************************************************/
+
+#ifndef _DISPLAY_HCH
+#define _DISPLAY_HCH 1
+
+
+
+/*
+ * Set the color for various items that will be drawn on screen.
+ */
+#define PIXEL (pixeldata <- 24)
+#define PIXEL_VOLUME (0x2d74b5)
+#define PIXEL_EQUALIZER (0xc7541f)
+#define PIXEL_SPECTRUM ((((skindata->area_spectrum_bottom -(SCANY <- 10)) <<1) <- 8) @ 0x00 @ (((skindata->area_spectrum_bottom -(SCANY <- 10)) <<1) <- 8))
+#define PIXEL_WAVEFORM (0x2d74b5)
+
+
+
+/*
+ * Main display loop. This function never returns! It handles display output.
+ * It needs to respond to certain events set by the events pointer. Also it
+ * informs events what the current mask is. To optain the current mask we need
+ * the X and Y coordinates from our mousedata pointer.
+ */
+void display_main(skindata_t *skindata, audiodata_t *audiodata, events_t *events, mousedata_t *mousedata);
+
+
+
+/*
+ * reload equalizer bars into the display memory.
+ */
+void reload_equalizer(events_t *events, unsigned 4 *equalizer_levels_ptr);
+
+#else
+#error "ERROR file display.hch multiple times included"
+#endif /* --- _DISPLAY_HCH --- */
diff --git a/Graphic_Equalizer_Original_Port/include/display_shared.hch b/Graphic_Equalizer_Original_Port/include/display_shared.hch
new file mode 100644
index 0000000..11d6edc
--- /dev/null
+++ b/Graphic_Equalizer_Original_Port/include/display_shared.hch
@@ -0,0 +1,80 @@
+/*! \file display_shared.hch
+ *
+ * \brief Datastructures and defines for usage when interacting with the
+ * display library.
+ *
+ * \section project Project information.
+ * Graphic Equalizer 2\n
+ * \author
+ * \date 20041011
+ * \version 0.1
+ *
+ * \section copyright Copyright
+ * Copyright ©2004 Koninklijke Philips Electronics N.V. All rights reserved
+ *
+ * \section history Change history
+ * 20041011: \n Initial version
+ *
+ ********************************************************************/
+
+#ifndef _DISPLAY_SHARED_HCH
+#define _DISPLAY_SHARED_HCH 1
+
+
+
+/*! \struct skindata_t
+ * \brief This struct contains all area- dimensions and color information
+ * for the skin.
+ */
+struct skindata_t {
+ /*! \struct skin_info_t
+ * \brief Structure containing the four boundry limits of an area and
+ * maximal two colors per area.
+ */
+ struct skin_info_t {
+ unsigned 10 area_bottom; /*!< lowest point registerd in the area */
+ unsigned 10 area_top; /*!< highest point registerd in the area */
+ unsigned 10 area_left; /*!< leftmost point registerd in the area */
+ unsigned 10 area_right; /*!< rightmost point registerd in the area */
+ unsigned 24 color_primary; /*!< primary color for this area */
+ unsigned 24 color_secondary; /*!< optionally an area can have a second color */
+ };
+ struct skin_info_t waveform; /*!< We store all information about the waveform area here. */
+ struct skin_info_t spectrum; /*!< We store all information about the spectrum analyzer area here. */
+ struct skin_info_t volume; /*!< We store all information about the volume control area here. */
+ struct skin_info_t equalizer; /*!< We store all information about the equalizerbars here. */
+};
+
+
+
+#define AREA_WAVEFORM 0x01 /*!< Waveform area. */
+#define AREA_VOLUME_YAXIS 0x02 /*!< Volume control on the Y plane. */
+#define AREA_SPECTRUM_ANALYZER 0x03 /*!< Spectrum Analyzer area. */
+
+#define BUTTON_LOG 0x04 /*!< Logarithmic display button. */
+#define BUTTON_DEMO 0x05 /*!< Demo preset button. */
+#define BUTTON_RESET 0x06 /*!< Reset presets button. */
+
+#define BUTTON_PRESET_1 0x07 /*!< Button for switching to preset 1 */
+#define BUTTON_PRESET_2 0x08 /*!< Button for switching to preset 2 */
+#define BUTTON_PRESET_3 0x09 /*!< Button for switching to preset 3 */
+#define BUTTON_PRESET_4 0x0a /*!< Button for switching to preset 4 */
+#define BUTTON_PRESET_5 0x0b /*!< Button for switching to preset 5 */
+#define BUTTON_PRESET_6 0x0c /*!< Button for switching to preset 6 */
+
+#define BUTTON_CONVEX_FULL 0x0d /*!< / - \ 'Convex' mode Button*/
+#define BUTTON_CONVEX_HALF 0x0e /*!< /\ 'Convex' mode Button */
+#define BUTTON_PRECISE 0x0f /*!< | 'Precise' selection Button */
+#define BUTTON_CONCAVE_HALF 0x10 /*!< \/ 'Concave' mode Button */
+#define BUTTON_CONCAVE_FULL 0x11 /*!< \ _ / 'Concave' mode Button */
+
+#define BUTTON_HELP 0x12 /*!< Button to display help screen. */
+#define BUTTON_MODE 0x13 /*!< Button to change operation mode. */
+
+#define AREA_EQUALIZER_MIN 0x80 /*!< First bar of the Equalizer Area. */
+#define AREA_EQUALIZER_MAX 0xff /*!< Last bar of the Equalizer Area. */
+
+#else
+#error "ERROR file display_shared.hch multiple times included"
+#endif /* --- _DISPLAY_SHARED_HCH --- */
+
diff --git a/Graphic_Equalizer_Original_Port/include/eventhandler.hch b/Graphic_Equalizer_Original_Port/include/eventhandler.hch
new file mode 100644
index 0000000..0f3eca9
--- /dev/null
+++ b/Graphic_Equalizer_Original_Port/include/eventhandler.hch
@@ -0,0 +1,39 @@
+/*! \file eventhandler.hch
+ *
+ * \section generic SmartMedia API
+ *
+ * \section project Project information.
+ * Project Graphic Equalizer\n
+ * \author O.M. Schinagl
+ * \date 20041110
+ * \version 0.1
+ *
+ * \section copyright Copyright
+ * Copyright ©2004 Koninklijke Philips Electronics N.V. All rights reserved
+ *
+ * \section history Change history
+ * 20041110: O.M. Schinagl\n Initial version
+ *
+ ********************************************************************/
+
+#ifndef _EVENTHANDLER_HCH
+#define _EVENTHANDLER_HCH 1
+
+
+
+#define LOAD_PRESET_RESET 0x000
+#define LOAD_PRESET_DEMO 0x180
+
+
+
+/*
+ * This is the main eventhandler loop. We require pointers to the event struct
+ * to store actions to be performed and a mousedata pointer so that we know on
+ * what mousestate to respond. We never returns!
+ */
+void eventhandler_main(audiodata_t *audiodata, events_t *events, mousedata_t *mousedata);
+
+#else
+#error "ERROR file eventhandler.hch multiple times included"
+#endif /* --- _EVENTHANDLER_HCH --- */
+
diff --git a/Graphic_Equalizer_Original_Port/include/eventhandler_shared.hch b/Graphic_Equalizer_Original_Port/include/eventhandler_shared.hch
new file mode 100644
index 0000000..d21cff4
--- /dev/null
+++ b/Graphic_Equalizer_Original_Port/include/eventhandler_shared.hch
@@ -0,0 +1,71 @@
+/*! \file eventhandler_shared.hch
+ *
+ * \section generic Shared definitions etc. for eveents.
+ *
+ * \section project Project information.
+ * Project Graphic Equalizer\n
+ * \author O.M. Schinagl
+ * \date 20041110
+ * \version 0.1
+ *
+ * \section copyright Copyright
+ * Copyright ©2004 Koninklijke Philips Electronics N.V. All rights reserved
+ *
+ * \section history Change history
+ * 20041110: O.M. Schinagl\n Initial version
+ *
+ *****************************************************************************/
+
+#ifndef _EVENTHANDLER_SHARED_HCH
+#define _EVENTHANDLER_SHARED_HCH 1
+
+
+
+/*** Data Types **********************/
+
+/*
+ * Type definition of the shared memory to be used in various processes
+ */
+typedef struct {
+ ram unsigned 10 equalizer_display[128];
+ unsigned 10 active_preset;
+ unsigned 10 volume_position;
+ unsigned 8 mask;
+ unsigned 4 mode;
+ unsigned 4 equalizer_mode;
+ unsigned 1 locked_display;
+} events_t;
+
+
+#define MODE_SKIN 0x00
+#define MODE_HELP 0x01
+#define MODE_GRAPH 0x02
+
+
+
+#define EQUALIZERMODE_FULL 0x05
+#define EQUALIZERMODE_HALF 0x03
+#define EQUALIZERMODE_PRECISE 0x00
+
+
+/*
+ * Volume Control lookuptable.
+ * TODO: This table is now hardcoded. To ensure full skinability this table
+ * should be dynamically loaded.
+ */
+extern unsigned 5 volumecontrol_table[46];
+
+/*
+ * Equalizer lookup tables.
+ * TODO: This table is now hardcoded. To ensure full skinability this table
+ * should be dynamically loaded.
+ */
+extern unsigned 4 equalizer_table[640];
+extern unsigned 10 equalizer_table_inv[16];
+
+
+
+#else
+#error "ERROR file eventhandler_shared.hch multiple times included"
+#endif /* --- _EVENTHANDLER_SHARED_HCH --- */
+
diff --git a/Graphic_Equalizer_Original_Port/include/events.hch b/Graphic_Equalizer_Original_Port/include/events.hch
new file mode 100644
index 0000000..885e89f
--- /dev/null
+++ b/Graphic_Equalizer_Original_Port/include/events.hch
@@ -0,0 +1,33 @@
+/*! \file events.hch
+ *
+ * \section generic This module contains the various actions and events
+ * that need to be performed.
+ *
+ * \section project Project information.
+ * Project Graphic Equalizer\n
+ * \author O.M. Schinagl
+ * \date 20041710
+ * \version 0.1
+ *
+ * \section copyright Copyright
+ * Copyright ©2004 Koninklijke Philips Electronics N.V. All rights reserved
+ *
+ * \section history Change history
+ * 20041710: O.M. Schinagl\n Initial version
+ *
+ ******************************************************************************/
+
+#ifndef _EVENTS_HCH
+#define _EVENTS_HCH 1
+
+
+
+/*
+ * This function loads 768 4bits presets into the equalizer_levels array
+ * pointed to by equalizer_levels.
+ */
+void load_preset(unsigned 10 preset, unsigned 4 *equalizer_levels_ptr);
+
+#else
+#error "ERROR file events.hch multiple times included"
+#endif /* --- _EVENTS_HCH --- */
diff --git a/Graphic_Equalizer_Original_Port/include/fft.hch b/Graphic_Equalizer_Original_Port/include/fft.hch
new file mode 100644
index 0000000..635ea7b
--- /dev/null
+++ b/Graphic_Equalizer_Original_Port/include/fft.hch
@@ -0,0 +1,34 @@
+#define NUMBER_OF_COLUMNS 8
+#define NUMBER_OF_POINTS (1<<NUMBER_OF_COLUMNS)
+#define NUMBER_OF_FREQUENCIES (NUMBER_OF_POINTS>>1)
+
+#if HARDWARE_MULTIPLY
+/*
+ * This routine obtains the audio data from the audio I/O component and copies this
+ * data to local arrays for calculating purposes, and calls the FFT algorithm.
+*/
+void perform_fft(signed 18 *pcm_audio);
+
+/* This routine calls the ifft algorithm and after completing that it obtains the
+ * modified audio data and copies that to the output arrays of the audio I/O component.
+ * Besides that it also fills the array used by the display routine for displaying the waveform.
+*/
+void perform_ifft(signed 18 *modified_audio ,unsigned 6 *ifft_info);
+#else
+/*
+ * This routine obtains the audio data from the audio I/O component and copies this
+ * data to local arrays for calculating purposes, and calls the FFT algorithm.
+*/
+void perform_fft(signed 16 *pcm_audio);
+
+/* This routine calls the ifft algorithm and after completing that it obtains the
+ * modified audio data and copies that to the output arrays of the audio I/O component.
+ * Besides that it also fills the array used by the display routine for displaying the waveform.
+*/
+void perform_ifft(signed 16 *modified_audio ,unsigned 6 *ifft_info);
+#endif
+
+/* This routine equalizes the frequencies derived by the FFT calculation,
+ * according to the settings of the equalizer bars.
+*/
+void equalize_audio(audiodata_t *audiodata);
diff --git a/Graphic_Equalizer_Original_Port/include/mouse.hch b/Graphic_Equalizer_Original_Port/include/mouse.hch
new file mode 100644
index 0000000..ac26bbf
--- /dev/null
+++ b/Graphic_Equalizer_Original_Port/include/mouse.hch
@@ -0,0 +1,41 @@
+/*! \file mouse.hch
+ *
+ * \section generic Mousedriver API
+ *
+ * \section project Project information.
+ * Project Graphic Equalizer\n
+ * \author O.M. Schinagl
+ * \date 20041011
+ * \version 0.1
+ *
+ * \section copyright Copyright
+ * Copyright ©2004 Koninklijke Philips Electronics N.V. All rights reserved
+ *
+ * \section history Change history
+ * 20041011: O.M. Schinagl\n Initial version
+ *
+ ********************************************************************/
+
+#ifndef _MOUSEDRIVER_HCH
+#define _MOUSEDRIVER_HCH 1
+
+
+
+/*
+ * Create a define to keep API generic
+ */
+#define MouseRun(ClockRate) RC200TouchScreenRun(ClockRate)
+
+
+
+/*
+ * Main mousedriver loop. This procedure never returns! It handles mouse input,
+ * updates the shared memory and notifies listeners. It requires a pointer to
+ * a mousedata_t struct to store mouse information.
+ */
+void mouse_main(mousedata_t *mousedata);
+
+#else
+#error "ERROR file mousedriver.hch multiple times included"
+#endif /* --- _MOUSEDRIVER_HCH --- */
+
diff --git a/Graphic_Equalizer_Original_Port/include/mouse_shared.hch b/Graphic_Equalizer_Original_Port/include/mouse_shared.hch
new file mode 100644
index 0000000..09c5021
--- /dev/null
+++ b/Graphic_Equalizer_Original_Port/include/mouse_shared.hch
@@ -0,0 +1,56 @@
+/*! \file mouse_shared.hch
+ *
+ * \section generic Shared definitions etc.
+ *
+ * \section project Project information.
+ * Project Graphic Equalizer\n
+ * \author O.M. Schinagl
+ * \date 20041011
+ * \version 0.1
+ *
+ * \section copyright Copyright
+ * Copyright ©2004 Koninklijke Philips Electronics N.V. All rights reserved
+ *
+ * \section history Change history
+ * 20041011: O.M. Schinagl\n Initial version
+ *
+ *****************************************************************************/
+
+#ifndef _MOUSEDRIVER_SHARED_HCH
+#define _MOUSEDRIVER_SHARED_HCH 1
+
+/*** Data Types **********************/
+
+/*
+ * Type definition of the shared memory to be used in various processes
+ */
+typedef struct {
+ unsigned 10 x, y;
+ unsigned 3 state;
+ unsigned 1 status;
+} mousedata_t;
+
+
+
+/*
+ * States used to identify wether mouse data is updated
+ */
+#define MOUSE_NOT_UPDATED 0
+#define MOUSE_UPDATED 1
+
+
+
+/*
+ * Set of Mouse States defines
+ */
+#define MOUSE_STATE_UP 0
+#define MOUSE_STATE_ON_PRESS 1
+#define MOUSE_STATE_DOWN 2
+#define MOUSE_STATE_ON_RELEASE 3
+
+
+
+#else
+#error "ERROR file mousedriver_shared.hch multiple times included"
+#endif /* --- _MOUSEDRIVER_SHARED_HCH --- */
+
diff --git a/Graphic_Equalizer_Original_Port/include/runfft.hch b/Graphic_Equalizer_Original_Port/include/runfft.hch
new file mode 100644
index 0000000..d6f6ce0
--- /dev/null
+++ b/Graphic_Equalizer_Original_Port/include/runfft.hch
@@ -0,0 +1 @@
+extern macro proc RunFFT (AudioIn, AudioOut);
diff --git a/Graphic_Equalizer_Original_Port/include/smartmedia.hch b/Graphic_Equalizer_Original_Port/include/smartmedia.hch
new file mode 100644
index 0000000..8cd87c0
--- /dev/null
+++ b/Graphic_Equalizer_Original_Port/include/smartmedia.hch
@@ -0,0 +1,68 @@
+/*! \file smartmedia.hch
+ *
+ * \section generic SmartMedia API
+ *
+ * \section project Project information.
+ * Project Graphic Equalizer\n
+ * \author O.M. Schinagl
+ * \date 20041110
+ * \version 0.1
+ *
+ * \section copyright Copyright
+ * Copyright ©2004 Koninklijke Philips Electronics N.V. All rights reserved
+ *
+ * \section history Change history
+ * 20041110: O.M. Schinagl\n Initial version
+ *
+ ********************************************************************/
+
+#ifndef _SMARTMEDIA_HCH
+#define _SMARTMEDIA_HCH 1
+
+
+
+/*
+ * SmartMedia functioncalls a bit to be set to either Read or Write. This
+ * define should make life easier identifying which one is what.
+ */
+#define READ 0
+#define WRITE 1
+
+
+
+/*
+ * The different stages the smart media loaders knows.
+ */
+#define STAGE_LOAD_SKIN 0x00
+#define STAGE_LOAD_HELP 0x01
+#define STAGE_LOAD_GRAPH 0x02
+#define STAGE_LOAD_PRESET 0x03
+
+
+
+/*
+ * Create a define to keep API generic
+ * FIXME: replace with PAL calls when avaiable.
+ */
+#define CPLDRun(ClockRate) RC200CPLDRun(ClockRate)
+#define SmartMediaRun(ClockRate) RC200SmartMediaRun(ClockRate)
+
+
+
+/*
+ * Initializes the smartmedia device.
+ */
+
+unsigned 1 smartmedia_init(void);
+
+
+
+/*
+ * This function loads the memory with data from the smartmedia card.
+ */
+void smartmedia_loaddata(skindata_t *skindata);
+
+#else
+#error "ERROR file smartmedia.hch multiple times included"
+#endif /* --- _SMARTMEDIA_HCH --- */
+
diff --git a/Graphic_Equalizer_Original_Port/include/smartmedia_shared.hch b/Graphic_Equalizer_Original_Port/include/smartmedia_shared.hch
new file mode 100644
index 0000000..33fdb0a
--- /dev/null
+++ b/Graphic_Equalizer_Original_Port/include/smartmedia_shared.hch
@@ -0,0 +1,80 @@
+/*! \file smartmedia_shared.hch
+ *
+ * \section generic SmartMedia Shared
+ *
+ * \section project Project information.
+ * Project Graphic Equalizer\n
+ * \author O.M. Schinagl
+ * \date 20041202
+ * \version 0.1
+ *
+ * \section copyright Copyright
+ * Copyright ©2004 Koninklijke Philips Electronics N.V. All rights reserved
+ *
+ * \section history Change history
+ * 20041202: O.M. Schinagl\n Initial version
+ *
+ ********************************************************************/
+
+#ifndef _SMARTMEDIA_SHARED_HCH
+#define _SMARTMEDIA_SHARED_HCH 1
+
+
+
+/*
+ * Here we set the various sizes of the data in use. Do not round this values
+ * in anyway! For example, 640 pixels times 480 pixels is 307200 (4b000) pixels
+ * total.
+ */
+#define SIZE_SKIN 0x04afff
+#define SIZE_HELP 0x04afff
+#define SIZE_GRAPH 0x04afff
+#define SIZE_SKINMASK 0x018fff
+#define SIZE_HELPMASK 0x018fff
+#define SIZE_GRAPHMASK 0x018fff
+
+#define SIZE_PRESET 0x0001c0
+
+/*
+ * Here we setup the start and end address for the various components.
+ */
+
+#define SMARTMEDIA_ADDRESS_SKIN_START 0x084000 /* Block: 33 */
+#define SMARTMEDIA_ADDRESS_SKINMASK_START 0x168000 /* Block: 90 */
+#define SMARTMEDIA_ADDRESS_HELP_START 0x1b4000 /* Block: 109 */
+#define SMARTMEDIA_ADDRESS_HELPMASK_START 0x298000 /* Block: 166 */
+#define SMARTMEDIA_ADDRESS_GRAPHMASK_START 0x2e4000 /* Block: 185 */
+
+#define SMARTMEDIA_ADDRESS_PRESET_DEMO_START 0x330000 /* Block: 204 */
+#define SMARTMEDIA_ADDRESS_PRESET_RESET_START 0x334000 /* Block: 205 */
+
+#define SMARTMEDIA_ADDRESS_SKIN_END (SMARTMEDIA_ADDRESS_SKIN_START +(SIZE_SKIN *3))
+#define SMARTMEDIA_ADDRESS_SKINMASK_END (SMARTMEDIA_ADDRESS_SKINMASK_START +(SIZE_SKINMASK *3))
+#define SMARTMEDIA_ADDRESS_HELP_END (SMARTMEDIA_ADDRESS_HELP_START +(SIZE_HELP *3))
+#define SMARTMEDIA_ADDRESS_HELPMASK_END (SMARTMEDIA_ADDRESS_HELPMASK_START +(SIZE_HELPMASK *3))
+#define SMARTMEDIA_ADDRESS_GRAPHMASK_END (SMARTMEDIA_ADDRESS_GRAPHMASK_START +(SIZE_GRAPHMASK *3))
+
+#define SMARTMEDIA_ADDRESS_PRESET_DEMO_END (SMARTMEDIA_ADDRESS_PRESET_DEMO_START +(SIZE_PRESET))
+#define SMARTMEDIA_ADDRESS_PRESET_RESET_END (SMARTMEDIA_ADDRESS_PRESET_RESET_START +(SIZE_PRESET))
+
+#define ADDRESS_SKIN_START 0x000000
+#define ADDRESS_SKIN_END (ADDRESS_SKIN_START +SIZE_SKIN)
+
+#define ADDRESS_HELP_START 0x04b000
+#define ADDRESS_HELP_END (ADDRESS_HELP_START +SIZE_HELP)
+
+#define ADDRESS_GRAPHMASK_START 0x096000
+#define ADDRESS_GRAPHMASK_END (ADDRESS_GRAPHMASK_START +SIZE_GRAPH)
+
+#define ADDRESS_PRESET_DEMO_START 0x0e1000
+#define ADDRESS_PRESET_DEMO_END (ADDRESS_PRESET_DEMO_START +SIZE_PRESET)
+
+#define ADDRESS_PRESET_RESET_START 0x0e11c0
+#define ADDRESS_PRESET_RESET_END (ADDRESS_PRESET_RESET_START +SIZE_PRESET)
+
+
+
+#else
+#error "ERROR file smartmedia_shared.hch multiple times included"
+#endif /* --- _SMARTMEDIA_SHARED_HCH --- */
+
diff --git a/Graphic_Equalizer_Original_Port/include/weights_256.hch b/Graphic_Equalizer_Original_Port/include/weights_256.hch
new file mode 100644
index 0000000..f2f71ff
--- /dev/null
+++ b/Graphic_Equalizer_Original_Port/include/weights_256.hch
@@ -0,0 +1,264 @@
+#define INTBITS 1
+#define FRACBITS 14
+
+rom signed 16 weight_re[128] = {
+ 16384,
+ 16379,
+ 16364,
+ 16340,
+ 16305,
+ 16261,
+ 16207,
+ 16143,
+ 16069,
+ 15986,
+ 15893,
+ 15791,
+ 15679,
+ 15557,
+ 15426,
+ 15286,
+ 15137,
+ 14978,
+ 14811,
+ 14635,
+ 14449,
+ 14256,
+ 14053,
+ 13842,
+ 13623,
+ 13395,
+ 13160,
+ 12916,
+ 12665,
+ 12406,
+ 12140,
+ 11866,
+ 11585,
+ 11297,
+ 11003,
+ 10702,
+ 10394,
+ 10080,
+ 9760,
+ 9434,
+ 9102,
+ 8765,
+ 8423,
+ 8076,
+ 7723,
+ 7366,
+ 7005,
+ 6639,
+ 6270,
+ 5897,
+ 5520,
+ 5139,
+ 4756,
+ 4370,
+ 3981,
+ 3590,
+ 3196,
+ 2801,
+ 2404,
+ 2006,
+ 1606,
+ 1205,
+ 804,
+ 402,
+ 0,
+ -402,
+ -804,
+ -1205,
+ -1606,
+ -2006,
+ -2404,
+ -2801,
+ -3196,
+ -3590,
+ -3981,
+ -4370,
+ -4756,
+ -5139,
+ -5520,
+ -5897,
+ -6270,
+ -6639,
+ -7005,
+ -7366,
+ -7723,
+ -8076,
+ -8423,
+ -8765,
+ -9102,
+ -9434,
+ -9760,
+ -10080,
+ -10394,
+ -10702,
+ -11003,
+ -11297,
+ -11585,
+ -11866,
+ -12140,
+ -12406,
+ -12665,
+ -12916,
+ -13160,
+ -13395,
+ -13623,
+ -13842,
+ -14053,
+ -14256,
+ -14449,
+ -14635,
+ -14811,
+ -14978,
+ -15137,
+ -15286,
+ -15426,
+ -15557,
+ -15679,
+ -15791,
+ -15893,
+ -15986,
+ -16069,
+ -16143,
+ -16207,
+ -16261,
+ -16305,
+ -16340,
+ -16364,
+ -16379
+} with {block = "BlockRAM"};
+
+rom signed 16 weight_im[128] = {
+ 0,
+ -402,
+ -804,
+ -1205,
+ -1606,
+ -2006,
+ -2404,
+ -2801,
+ -3196,
+ -3590,
+ -3981,
+ -4370,
+ -4756,
+ -5139,
+ -5520,
+ -5897,
+ -6270,
+ -6639,
+ -7005,
+ -7366,
+ -7723,
+ -8076,
+ -8423,
+ -8765,
+ -9102,
+ -9434,
+ -9760,
+ -10080,
+ -10394,
+ -10702,
+ -11003,
+ -11297,
+ -11585,
+ -11866,
+ -12140,
+ -12406,
+ -12665,
+ -12916,
+ -13160,
+ -13395,
+ -13623,
+ -13842,
+ -14053,
+ -14256,
+ -14449,
+ -14635,
+ -14811,
+ -14978,
+ -15137,
+ -15286,
+ -15426,
+ -15557,
+ -15679,
+ -15791,
+ -15893,
+ -15986,
+ -16069,
+ -16143,
+ -16207,
+ -16261,
+ -16305,
+ -16340,
+ -16364,
+ -16379,
+ -16384,
+ -16379,
+ -16364,
+ -16340,
+ -16305,
+ -16261,
+ -16207,
+ -16143,
+ -16069,
+ -15986,
+ -15893,
+ -15791,
+ -15679,
+ -15557,
+ -15426,
+ -15286,
+ -15137,
+ -14978,
+ -14811,
+ -14635,
+ -14449,
+ -14256,
+ -14053,
+ -13842,
+ -13623,
+ -13395,
+ -13160,
+ -12916,
+ -12665,
+ -12406,
+ -12140,
+ -11866,
+ -11585,
+ -11297,
+ -11003,
+ -10702,
+ -10394,
+ -10080,
+ -9760,
+ -9434,
+ -9102,
+ -8765,
+ -8423,
+ -8076,
+ -7723,
+ -7366,
+ -7005,
+ -6639,
+ -6270,
+ -5897,
+ -5520,
+ -5139,
+ -4756,
+ -4370,
+ -3981,
+ -3590,
+ -3196,
+ -2801,
+ -2404,
+ -2006,
+ -1606,
+ -1205,
+ -804,
+ -402,
+} with {block = "BlockRAM"};
diff --git a/Graphic_Equalizer_Original_Port/src/audio.hcc b/Graphic_Equalizer_Original_Port/src/audio.hcc
new file mode 100644
index 0000000..91901e1
--- /dev/null
+++ b/Graphic_Equalizer_Original_Port/src/audio.hcc
@@ -0,0 +1,102 @@
+/*! @file audio.hcc
+ *
+ * @section generic Audio init and main loop
+ *
+ * @section project Project information.
+ * Project Graphic Equalizer\n
+ * @author O.M. Schinagl
+ * @date 20041011
+ * @version 0.1
+ *
+ * @section copyright Copyright
+ * Copyright ©2004 Koninklijke Philips Electronics N.V. All rights reserved
+ *
+ * @section history Change history
+ * 20041011: \n Initial version
+ *
+ ********************************************************************/
+
+/******** System Includes *************/
+#include <stdlib.hch>
+
+#include "pal_master.hch"
+
+/******** Application Includes ********/
+#include "configuration.hch"
+#include "audio.hch"
+
+
+
+/*! \fn macro proc audio_init(gain_level, input_source, sample_rate, AUDIOIN, AUDIOOUT)
+ *
+ * \brief Set some inital values to the audio hardware.
+ *
+ * \param gain_level Set the input amplifier to this amplification
+ * level.
+ * \param input_source Choose between microphone input or linein
+ * input.
+ * \param sample_rate Set the sample rate between 8000
+ * and 48000
+ *
+ * \return void
+ * \retval void
+ *
+ */
+macro proc audio_init(gain_level, input_source, sample_rate, AUDIOIN, AUDIOOUT) {
+ /*
+ * We simply call the appropiate handlers and pass values along. We
+ * Don't set the mute on input gain. We have volume control to do this.
+ * Input and Output sampling rates are equal. We dont' need different
+ * rates.
+ */
+ RC200AudioInSetGain(FALSE, gain_level, gain_level);
+ RC200AudioInSetInput(input_source);
+ PalAudioInSetSampleRate(AUDIOIN, sample_rate);
+ PalAudioOutSetSampleRate(AUDIOOUT, sample_rate);
+} /* --- audio_init() --- */
+
+
+#if !USE_RUNFFT
+//TODO: put runfft here!
+/*! @fn macro proc audio_main(audiodata, AUDIOIN, AUDIOOUT);
+ *
+ * @brief Main audiodriver. This function never returns! It calls the
+ * audiohandlers and stores samples into a global array. Once 64
+ * Samples are collected it raises a signal AUDIO_READY to let
+ * other processes know it's ready. We use quadruple buffering for
+ * audio input and double buffering for audio output.
+ *
+ * @param *audiodata pointer to audio information structure.
+ * @param AUDIOIN Audio Input Handler
+ * @param AUDIOOUT Audio Output Handler
+ *
+ * @return Never Returns.
+ * @retval void
+ */
+macro proc audio_main(audiodata, AUDIOIN, AUDIOOUT) {
+ /*
+ * Determin the data width for the current platform.
+ */
+ macro expr IW = PalAudioInGetMaxDataWidthCT();
+ macro expr OW = PalAudioOutGetMaxDataWidthCT();
+
+ signed IW sample_left_in, sample_right_in;
+ signed OW sample_left_out, sample_right_out;
+
+ while (TRUE) {
+ PalAudioInRead(AUDIOIN, &sample_left_in, &sample_right_in);
+
+/* par {
+ sample_add(sample_left_in);
+ sample_get(&sample_left_out);
+ sample_right_out = sample_right_in;
+ }
+ if (rotate_samples()) {
+ / *
+ * 64 Samples have been processed, calculate.
+ * /
+ }
+*/ PalAudioOutWrite(AUDIOOUT, (signed OW)(sample_left_in @ 0), (signed OW)(sample_right_in @ 0));
+ }
+} /* --- audio_main() --- */
+#endif
diff --git a/Graphic_Equalizer_Original_Port/src/display.hcc b/Graphic_Equalizer_Original_Port/src/display.hcc
new file mode 100644
index 0000000..1aeb9d9
--- /dev/null
+++ b/Graphic_Equalizer_Original_Port/src/display.hcc
@@ -0,0 +1,338 @@
+/*! \file display.hcc
+ *
+ * \section generic Message build up information and more
+ *
+ * \section project Project information.
+ * Project Graphic Equalizer\n
+ * \author O.M. Schinagl
+ * \date 20041011
+ * \version 0.1
+ *
+ * \section copyright Copyright
+ * Copyright ©2004 Koninklijke Philips Electronics N.V. All rights reserved
+ *
+ * \section history Change history
+ * 20041011: O.M. Schinagl\n Initial version
+ *
+ ********************************************************************/
+
+/*
+ * Set the Clock rate for this domain. 25.175 Mhz is required for the Video output.
+ */
+#define PAL_TARGET_CLOCK_RATE 25175000
+
+/******** System Includes *************/
+#include <stdlib.hch>
+
+#include "pal_master.hch"
+
+/******** Application Includes ********/
+#include "configuration.hch"
+#include "audio.hch"
+#include "eventhandler_shared.hch"
+#include "mouse_shared.hch"
+#include "smartmedia_shared.hch"
+#include "display_shared.hch"
+#include "display.hch"
+
+#if HAVE_DEBUG
+ #include "debug.hch"
+#endif
+
+
+
+/*
+ * Channel to notify others when new mousedata is available. If so
+ * Then mousedata struct is updated with shared data.
+ */
+chan unsigned 1 maskupdate_notification;
+
+
+
+/*! \fn void display_main(skindata_t *skindata, audiodata_t *audiodata, events_t *events, mousedata_t *mousedata)
+ *
+ * \brief This routine handles all drawing of pixels. It never returns!
+ *
+ * \param *skindata struct with all skin information.
+ * \param *audiodata struct with (i)fft data to be drawn.
+ * \param *events struct with all events.
+ * \param *mousedata struct with coordinates to current.
+ * X en Y.
+ *
+ * \return Never Returns.
+ * \retval void
+ */
+void display_main(skindata_t *skindata, audiodata_t *audiodata, events_t *events, mousedata_t *mousedata) {
+ /*
+ * Setup macro's RAM/Video handles and to coordinate pixel writing.
+ */
+ macro expr CLOCKRATE = PAL_ACTUAL_CLOCK_RATE;
+ macro expr VIDEOOUT = PalVideoOutOptimalCT(CLOCKRATE);
+ macro expr RAM_BANK0 = PalPL2RAMCT(0);
+ macro expr DW = PalPL2RAMGetMaxDataWidthCT();
+ macro expr AW = PalPL2RAMGetMaxAddressWidthCT();
+ macro expr VISIBLEX = PalVideoOutGetVisibleX(VIDEOOUT, CLOCKRATE);
+ macro expr TOTALX = PalVideoOutGetTotalX(VIDEOOUT, CLOCKRATE);
+ macro expr TOTALY = PalVideoOutGetTotalY(VIDEOOUT);
+ macro expr SCANX = PalVideoOutGetX(VIDEOOUT);
+ macro expr SCANY = PalVideoOutGetY(VIDEOOUT);
+
+ unsigned DW pixeldata;
+ unsigned 24 visual_graph_color;
+ unsigned AW address, address_offset;
+
+
+
+ /*
+ * If the passed button_state tells us the button is active, then we
+ * the button is 'on' and we draw it inverted. Otherwise we draw the
+ * area of the button normally.
+ */
+ macro proc draw_button(button_state) {
+ if (button_state == pixeldata[31:24]) {
+ PalVideoOutWrite(VIDEOOUT, ~PIXEL);
+ } else {
+ PalVideoOutWrite(VIDEOOUT, PIXEL);
+ }
+ }
+
+ /*
+ * Prime Rendering Pipeline to start where the skin starts.
+ */
+ PalPL2RAMSetReadAddress(RAM_BANK0, ADDRESS_SKIN_START);
+
+ /*
+ * Run the following tasks indefinatly and in parallel
+ */
+ while (TRUE) {
+ par {
+ /*
+ * Before starting this loop we allready set the the
+ * address. Therefor we can start reading the
+ * previously set address and prepare the next address
+ * for the next cycle.
+ */
+ PalPL2RAMRead(RAM_BANK0, &pixeldata);
+ PalPL2RAMSetReadAddress(RAM_BANK0, address_offset +address);
+
+ /*
+ */
+ switch (events->mode) {
+ case MODE_HELP:
+ address_offset = ADDRESS_HELP_START;
+ break;
+ case MODE_GRAPH:
+ address_offset = ADDRESS_GRAPHMASK_START;
+ break;
+ default:
+ address_offset = ADDRESS_SKIN_START;
+ break;
+ }
+
+ if (MODE_GRAPH == events->mode) {
+ par {
+ visual_graph_color = ((unsigned 8)(0 @ audiodata->fft_info.read[pixeldata[31:24]]) << 1) @ ((unsigned 8)(0 @ audiodata->fft_info.read[pixeldata[31:24]]) << -1) @ ((unsigned 8)(0 @ audiodata->fft_info.read[pixeldata[31:24]]) << 0);
+ PalVideoOutWrite(VIDEOOUT, 0 @ visual_graph_color);
+ }
+ } else {
+ /*
+ * Determin what to draw where here. Every case has an
+ * if else statement comparing wether to draw something
+ * special or the background. Every specific drawing
+ * obviously only happens in the masked area.
+ */
+ switch (pixeldata[31:24]) {
+ /*
+ */
+ case AREA_WAVEFORM:
+ if (SCANY == 0 @ skindata->area_waveform_bottom -(0 @ (audiodata->ifft_info.read[((SCANX -(0 @ skindata->area_waveform_left)) <-8)]))) {
+ PalVideoOutWrite(VIDEOOUT, skindata->color_area_waveform);
+ } else {
+ PalVideoOutWrite(VIDEOOUT, PIXEL);
+ }
+ break;
+
+ /*
+ * Volume control over the Y-axis.
+ */
+ case AREA_VOLUME_YAXIS:
+ /*
+ * The volume_position stores the
+ * highest point of our bar. Every
+ * pixel after this point is drawn.
+ */
+ if (SCANY >= 0 @ events->volume_position) {
+ PalVideoOutWrite(VIDEOOUT, skindata->color_area_volume);
+ } else {
+ PalVideoOutWrite(VIDEOOUT, PIXEL);
+ }
+ break;
+
+ /*
+ * Spectrum Analyzer
+ */
+ case AREA_SPECTRUM_ANALYZER:
+ /*
+ * We draw every pixel that is smaller TODO
+ */
+ if ((SCANY >= (0 @ skindata->area_spectrum_bottom) -(0 @ audiodata->fft_info.read[(SCANX -(0 @ skindata->area_spectrum_left))[9:2]])) && ((SCANX -(0 @ skindata->area_spectrum_left)) <- 2)) {
+ PalVideoOutWrite(VIDEOOUT, PIXEL_SPECTRUM);
+ } else {
+ PalVideoOutWrite(VIDEOOUT, PIXEL);
+ }
+ break;
+
+ /*
+ * Since all buttons are drawn equally, either
+ * we draw them normally or we inverse them, we
+ * can handle them almost equally.
+ */
+ case BUTTON_PRESET_1: /* fall through */
+ case BUTTON_PRESET_2: /* fall through */
+ case BUTTON_PRESET_3: /* fall through */
+ case BUTTON_PRESET_4: /* fall through */
+ case BUTTON_PRESET_5: /* fall through */
+ case BUTTON_PRESET_6:
+ /*
+ * The active preset tells us what
+ * button is currently enabled. We must
+ * however not forget to add the preset
+ * button offset to possibly match it
+ * with the current mask.
+ */
+ draw_button((events->active_preset +BUTTON_PRESET_1) <- 8);
+ break;
+
+ case BUTTON_PRECISE: /* fall through */
+ case BUTTON_CONCAVE_HALF: /* fall through */
+ case BUTTON_CONVEX_HALF: /* fall through */
+ case BUTTON_CONCAVE_FULL: /* fall through */
+ case BUTTON_CONVEX_FULL:
+ /*
+ * equalizer mode tells us what button
+ * is currently enabled. By adding the
+ * equalizer mode button offset we can
+ * safley check wether it matches our
+ * mask.
+ */
+ draw_button((0 @ events->equalizer_mode) +BUTTON_PRECISE);
+ break;
+
+ case BUTTON_LOG:
+ /*
+ *
+ */
+ draw_button((0 @ audiodata->display_log) +BUTTON_LOG);
+ break;
+
+ /*
+ * The default case is split up into two parts
+ * actually. This is because we have 128 bands
+ * for the equalizer and thus as many mask
+ * entries. Since we don't want 128 identical
+ * cases we check wether the equalizer mask is
+ * currently active and if so draw it. If this
+ * is not the case we simply draw the
+ * background.
+ */
+ default:
+ /* (pixeldata[31:24] <= AREA_EQUALIZER_MAX) && */
+ if ((AREA_EQUALIZER_MIN <= pixeldata[31:24]) && (!events->locked_display)) {
+ if ((SCANY == 0 @ events->equalizer_display[(pixeldata[31:24] -AREA_EQUALIZER_MIN) <- 7]) || ((SCANY +1) == 0 @ events->equalizer_display[(pixeldata[31:24] -AREA_EQUALIZER_MIN) <- 7])) {
+ PalVideoOutWrite(VIDEOOUT, skindata->color_equalizer);
+ } else {
+ PalVideoOutWrite(VIDEOOUT, PIXEL);
+ }
+ } else {
+ PalVideoOutWrite(VIDEOOUT, PIXEL);
+ }
+ break;
+ }
+ }
+
+ /*
+ * We compare our current X and Y scan positions of the
+ * output to the x and y data of the mouse. When those
+ * are equal we set the current mask to the mask stored
+ * in memory at that location. We then know what mask
+ * is to be used for events.
+ */
+ if (MOUSE_UPDATED == mousedata->status) {
+ if ((SCANX == 0 @ mousedata->x) && (SCANY == 0 @ mousedata->y)) {
+ par {
+ events->mask = pixeldata[31:24];
+ mousedata->status = MOUSE_NOT_UPDATED;
+ maskupdate_notification ! MOUSE_UPDATED;
+ }
+ } else {
+ delay;
+ }
+ } else {
+ delay;
+ }
+
+ /*
+ * The current position of the screen can lay in an
+ * area called the blanking area. We don't have data
+ * for this area as it is not drawn. We therefor have
+ * to determin wether we are beyond the visible area of
+ * the screen, but before the end of the total width of
+ * the screen. Our pipeline consists of 5 total stages.
+ * Therefor we have to substract 5 pixels.
+ */
+ if ((SCANX > (VISIBLEX - 5)) && (SCANX <= (TOTALX - 5))) {
+ /*
+ * We are in the blanking area of the screen.
+ * If we are on the last line, and thus last
+ * pixel we reset our address counter.
+ */
+ if (SCANY == (TOTALY -1)) {
+ /*
+ * Reset our draw address counter to 0.
+ */
+ address = 0;
+ } else {
+ /*
+ * We have reached the end of the
+ * visible line, but not the end of
+ * the screen. Therefore do nothing.
+ */
+ delay;
+ }
+ } else {
+ /*
+ * Increase the memory counter for each pixel
+ * drawn thus keeping the memory location in
+ * sync with the current pixel position.
+ */
+ address++;
+ }
+ }
+ }
+} /* --- display_main() --- */
+
+
+
+/*! \fn void reload_equalizer(events_t *events, unsigned 4 *equalizer_levels)
+
+ * \brief This function copies the supplied equalizer values to the array
+ * used for displaying equalizer data.
+ *
+ * \param *events events struct
+ * \param *equalizer_levels pointer to 128 entries where equalizer
+ * is to be copied from.
+ *
+ * \return void
+ * \retval void
+ */
+void reload_equalizer(events_t *events, unsigned 4 *equalizer_levels) {
+ unsigned 7 equalizer_band;
+
+ events->locked_display = TRUE;
+ delay;
+ do {
+ events->equalizer_display[equalizer_band] = equalizer_table_inv[equalizer_levels[equalizer_band]];
+ equalizer_band++;
+ } while (equalizer_band);
+ events->locked_display = FALSE;
+} /* --- reload_equalizer() --- */
diff --git a/Graphic_Equalizer_Original_Port/src/eventhandler.hcc b/Graphic_Equalizer_Original_Port/src/eventhandler.hcc
new file mode 100644
index 0000000..e1f90ae
--- /dev/null
+++ b/Graphic_Equalizer_Original_Port/src/eventhandler.hcc
@@ -0,0 +1,315 @@
+/*! \file eventhandler.hcc
+ *
+ * \section generic This modules coordinates all events. Thus for example
+ * when the mousehandler registers a 'click' we coordinate
+ * the actions that follow that click.
+ *
+ * \section project Project information.
+ * Project Graphic Equalizer\n
+ * \author O.M. Schinagl
+ * \date 20041110
+ * \version 0.1
+ *
+ * \section copyright Copyright
+ * Copyright ©2004 Koninklijke Philips Electronics N.V. All rights reserved
+ *
+ * \section history Change history
+ * 20041110: O.M. Schinagl\n Initial version
+ *
+ ********************************************************************/
+
+/******** System Includes *************/
+#include <stdlib.hch>
+
+#include "pal_master.hch"
+
+/******** Application Includes ********/
+#include "configuration.hch"
+#include "audio.hch"
+#include "mouse_shared.hch"
+#include "eventhandler_shared.hch"
+#include "eventhandler.hch"
+#include "events.hch"
+#include "display_shared.hch"
+#include "display.hch"
+
+#if HAVE_DEBUG
+ #include "debug.hch"
+#endif
+
+
+
+/*
+ */
+extern chan unsigned 1 maskupdate_notification;
+
+
+
+/*! \fn void eventhandler_main(audiodata_t *audiodata, events_t *events, mousedata_t *mousedata);
+ * \brief
+ *
+ * \param *audiodata pointer to struct for setting equalizer levels.
+ * \param *events pointer to struct with all events for display states.
+ * \param *mousedata pointer to struct with mouse data for X and Y
+ * coordinates.
+ *
+ * \return Never Returns.
+ * \retval void
+ */
+void eventhandler_main(audiodata_t *audiodata, events_t *events, mousedata_t *mousedata) {
+ mpram {
+ ram unsigned 4 write[768];
+ rom unsigned 4 read[768];
+ } equalizer_levels with { block = "BlockRAM"};
+
+ unsigned 10 preset_offset;
+ unsigned 10 reference_point, reference_point_right;
+ unsigned 5 volume_left;
+ unsigned 4 index_offset, index_end;
+ unsigned 4 equalizer_mode_local;
+ unsigned 1 newmaskupdate;
+
+ load_preset(LOAD_PRESET_RESET, equalizer_levels.write);
+ reload_equalizer(events, &equalizer_levels.write[preset_offset]);
+
+ while (TRUE) {
+ maskupdate_notification ? newmaskupdate;
+
+ /*
+ * First we determine what mousestate we currently have. Then
+ * we check where we are to decide what to do.
+ */
+ switch (mousedata->state) {
+ case MOUSE_STATE_ON_PRESS:
+ /*
+ * If we are displaying the graphic visual,
+ * any press returns to the application.
+ */
+ if (MODE_GRAPH == events->mode) {
+ events->mode = MODE_SKIN;
+ events->mask = 0;
+ } else {
+ delay;
+ }
+
+ /*
+ */
+ if (BUTTON_MODE == events->mask) {
+ if (MODE_GRAPH == events->mode) {
+ events->mode = MODE_SKIN;
+ } else {
+ events->mode = MODE_GRAPH;
+ }
+ } else {
+ delay;
+ }
+
+ /*
+ * If the current mask equals the help button
+ * we set display mode to help.
+ */
+ if (BUTTON_HELP == events->mask) {
+ /*
+ * Change the mode to help if it's
+ * currently not set, otherwise go back
+ * to skin mode.
+ */
+ if (MODE_HELP == events->mode) {
+ events->mode = MODE_SKIN;
+ } else {
+ events->mode = MODE_HELP;
+ }
+ } else {
+ delay;
+ }
+
+ /*
+ * The Preset buttons span from 1 to 6 so if
+ * the mask one of those, we'll change the
+ * pointer to point to the current preset.
+ */
+ if ((BUTTON_PRESET_1 <= events->mask) && (events->mask <= BUTTON_PRESET_6)) {
+ /*
+ * The active preset is determined by
+ * the mask minus an offset. Hence
+ * ranging our active preset from 0 to
+ * 6.
+ */
+ events->active_preset = 0 @ (events->mask -BUTTON_PRESET_1);
+ /*
+ * Each equalizer is 128 bands wide,
+ * thus we need to add 128 * the preset
+ * for each different preset. This
+ * offset is calculated here.
+ */
+ preset_offset = events->active_preset << 7;
+ /*
+ * We set the pointer to the active
+ * part of the array by using the
+ * preset offset as our index. Hence
+ * depending on the selected preset
+ * we point to 0, 128, 256, 384, 512
+ * or 640.
+ */
+ audiodata->equalizer_levels_ptr = &equalizer_levels.read[preset_offset];
+ /*
+ * Finally update the equalizer bars
+ * that are drawn by the display.
+ */
+ reload_equalizer(events, &equalizer_levels.write[preset_offset]);
+ } else {
+ delay;
+ }
+
+ if ((BUTTON_PRECISE <= events->mask) && (events->mask <= BUTTON_CONVEX_FULL)) {
+ events->equalizer_mode = (events->mask -BUTTON_PRECISE) <-4;
+ } else {
+ delay;
+ }
+
+ /*
+ * If the demo button was pressed load the
+ * demo preset values into the presets.
+ */
+ if (BUTTON_DEMO == events->mask) {
+ load_preset(LOAD_PRESET_DEMO, equalizer_levels.write);
+ reload_equalizer(events, &equalizer_levels.write[preset_offset]);
+ }
+
+ /*
+ * If the reset button was pressed load the
+ * reset values into the presets.
+ */
+ if (BUTTON_RESET == events->mask) {
+ load_preset(LOAD_PRESET_RESET, equalizer_levels.write);
+ reload_equalizer(events, &equalizer_levels.write[preset_offset]);
+ }
+
+ /*
+ * If the current mask equals the log button,
+ * we flip the display_log bit.
+ */
+ if (BUTTON_LOG == events->mask) {
+ audiodata->display_log = !audiodata->display_log;
+ } else {
+ delay;
+ }
+
+ break;
+
+ case MOUSE_STATE_DOWN:
+ /*
+ * If we are in the volume area we update the
+ * volume level for both channels.
+ */
+ if (AREA_VOLUME_YAXIS == events->mask) {
+ /*
+ * Copy the current Y cursor position
+ * to the events struct. This we then
+ * later use for drawing purposes.
+ */
+ events->volume_position = 0 @ mousedata->y;
+ /*
+ * Look the relative y-coordinate up in
+ * the volumecontrol lookup table. We
+ * make a local copy here because the
+ * RC200 call doesn't behave nicely
+ * when passing anything else.
+ */
+ volume_left = volumecontrol_table[((mousedata->y) -65) <- 6];
+ /*
+ * We feel that volume gets softer the
+ * closer it gets to the 0, and louder
+ * as it approaches 0x1f. The SetVolume
+ * RC200 call does this in an unnatural
+ * reverse way. Therefor we fix it.
+ */
+ RC200AudioOutSetVolume(!volume_left, 0x1f -volume_left, 0x1f -volume_left);
+ } else {
+ delay;
+ }
+
+ if ((AREA_EQUALIZER_MIN <= events->mask) && (events->mask <= AREA_EQUALIZER_MAX)) {
+
+ if (EQUALIZERMODE_PRECISE == events->equalizer_mode) {
+ events->locked_display = TRUE;
+ equalizer_levels.write[preset_offset +(0 @ events->mask) -AREA_EQUALIZER_MIN] = equalizer_table[mousedata->y -382];
+ events->equalizer_display[(events->mask -AREA_EQUALIZER_MIN) <- 7] = mousedata->y;
+ events->locked_display = FALSE;
+ } else {
+
+ equalizer_mode_local = events->equalizer_mode +1;
+
+ events->locked_display = TRUE;
+ index_offset = ((equalizer_mode_local << 1)); /* delay; */
+
+ if (events->mask < (AREA_EQUALIZER_MIN +(0 @ equalizer_mode_local))) {
+ reference_point = events->equalizer_display[AREA_EQUALIZER_MIN -AREA_EQUALIZER_MIN];
+ index_offset -= (((0 @ equalizer_mode_local) -(events->mask -AREA_EQUALIZER_MIN)) <- 4);
+ } else {
+ reference_point = events->equalizer_display[(events->mask - (0 @ equalizer_mode_local) -AREA_EQUALIZER_MIN) <- 7];
+ index_offset -= 1;
+ }
+
+ if (events->mask > (AREA_EQUALIZER_MAX -(0 @ equalizer_mode_local))) {
+ reference_point_right = events->equalizer_display[AREA_EQUALIZER_MAX -AREA_EQUALIZER_MIN];
+ index_end = (((0 @ equalizer_mode_local) -(AREA_EQUALIZER_MAX -events->mask)) <- 4) -1;
+ } else {
+ reference_point_right = events->equalizer_display[(events->mask + (0 @ equalizer_mode_local) -AREA_EQUALIZER_MIN) <- 7];
+ index_end = 0;
+ }
+ events->locked_display = FALSE;
+
+ for (; index_offset != index_end; index_offset--) {
+ unsigned 10 average_bar;
+ unsigned 7 equalizer_index;
+ unsigned 4 bar_index;
+
+ if (index_offset == equalizer_mode_local) {
+ reference_point = reference_point_right;
+ } else {
+ delay;
+ }
+
+ if (index_offset > equalizer_mode_local)
+ {
+ bar_index = (index_offset -equalizer_mode_local);
+ equalizer_index = ((events->mask -(0 @ bar_index) -AREA_EQUALIZER_MIN) <- 7);
+ } else
+ {
+ bar_index = (equalizer_mode_local -index_offset);
+ equalizer_index = ((events->mask +(0 @ bar_index) -AREA_EQUALIZER_MIN) <- 7);
+ }
+
+ if (reference_point > mousedata->y) {
+ average_bar = mousedata->y +((reference_point -mousedata->y) >> (equalizer_mode_local -bar_index));
+ } else {
+ average_bar = mousedata->y -((mousedata->y -reference_point) >> (equalizer_mode_local -bar_index));
+ }
+
+ events->locked_display = TRUE;
+ equalizer_levels.write[preset_offset +(0 @ equalizer_index)] = equalizer_table[average_bar -382];
+ events->equalizer_display[equalizer_index] = average_bar;
+ events->locked_display = FALSE;
+ }
+ }
+ } else {
+ delay;
+ }
+
+ break;
+
+ default:
+ break;
+ }
+ }
+} /* --- eventhandler_main() --- */
+
+
+
+/*
+ * Volume Control lookuptable.
+ * TODO: This table is now hardcoded. To ensure full skinability this table
+ * should be dynamically loaded.
+ */
+rom unsigned 5 volumecontrol_table[46] = {31, 31, 30, 30, 29, 29, 28, 28, 27, 27, 26, 26, 25, 25, 24, 24, 23, 23, 22, 22, 21, 21, 20, 20, 19, 19, 18, 17, 16, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0, 0};
diff --git a/Graphic_Equalizer_Original_Port/src/events.hcc b/Graphic_Equalizer_Original_Port/src/events.hcc
new file mode 100644
index 0000000..2e8c272
--- /dev/null
+++ b/Graphic_Equalizer_Original_Port/src/events.hcc
@@ -0,0 +1,76 @@
+/*! \file events.hcc
+ *
+ * \section generic This module contains the various actions and events
+ * that need to be performed.
+ *
+ * \section project Project information.
+ * Project Graphic Equalizer\n
+ * \author O.M. Schinagl
+ * \date 20041710
+ * \version 0.1
+ *
+ * \section copyright Copyright
+ * Copyright ©2004 Koninklijke Philips Electronics N.V. All rights reserved
+ *
+ * \section history Change history
+ * 20041710: O.M. Schinagl\n Initial version
+ *
+ *****************************************************************************/
+
+
+
+/******** System Includes *************/
+#include <stdlib.hch>
+
+#include "pal_master.hch"
+
+/******** Application Includes ********/
+#include "configuration.hch"
+#include "eventhandler_shared.hch"
+#include "events.hch"
+
+#if HAVE_DEBUG
+ #include "debug.hch"
+#endif
+
+
+ram unsigned 8 presets_default_values[768] = {
+#include "presets_hardcoded.txt"
+};
+
+
+
+/*! \fn void load_preset(unsigned 10 preset, unsigned 4 *equalizer_levels_ptr);
+ * \brief This function loads 768 4bits presets into the equalizer_levels
+ * array pointed to by equalizer_levels.
+ *
+ * \param *equalizer_levels Location where to store presets loaded
+ * from blockram.
+ *
+ * \return void
+ * \retval void
+ */
+void load_preset(unsigned 10 preset, unsigned 4 *equalizer_levels_ptr) {
+ unsigned 10 equalizer_index;
+ unsigned 4 temp;
+
+ equalizer_index = 0;
+ while (equalizer_index != 768) {
+ temp = presets_default_values[preset +(0 @ (equalizer_index \\ 1))][7:4];
+ equalizer_levels_ptr[equalizer_index] = temp;
+ temp = presets_default_values[preset +(0 @ (equalizer_index \\ 1))][3:0];
+ equalizer_levels_ptr[equalizer_index +1] = temp;
+
+ equalizer_index += 2;
+ }
+} /* --- load_preset() --- */
+
+
+
+/*
+ * Equalizer lookuptabes.
+ * TODO: This table is now hardcoded. To ensure full skinability this table
+ * should be dynamically loaded.
+ */
+ram unsigned 4 equalizer_table[640] = {15, 15, 15, 15, 15, 14, 14, 14, 14, 13, 13, 13, 13, 12, 12, 12, 12, 11, 11, 11, 11, 10, 10, 10, 10, 9, 9, 9, 9, 8, 8, 8, 8, 7, 7, 7, 7, 6, 6, 6, 6, 5, 5, 5, 5, 4, 4, 4, 4, 3, 3, 3, 3, 2, 2, 2, 2, 1, 1, 1, 1, 0, 0, 0, 0, 0};
+ram unsigned 10 equalizer_table_inv[16] = {446, 444, 440, 436, 432, 428, 424, 420, 416, 412, 408, 404, 400, 396, 392, 384};
diff --git a/Graphic_Equalizer_Original_Port/src/fft.hcc b/Graphic_Equalizer_Original_Port/src/fft.hcc
new file mode 100644
index 0000000..0be69fe
--- /dev/null
+++ b/Graphic_Equalizer_Original_Port/src/fft.hcc
@@ -0,0 +1,505 @@
+/*! \file fft.hcc
+ *
+ * \section generic This modules will take care of the actual FFT calculation
+ * on the samples. Besides the FFT this module also will
+ * equalize the audio signal according to the setting made by the user.
+ *
+ * \section project Project information.
+ * Project Graphic Equalizer\n
+ * \author M. Lauwerijssen
+ * \date 20041110
+ * \version 0.1
+ *
+ * \section copyright Copyright
+ * Copyright ©2004 Koninklijke Philips Electronics N.V. All rights reserved
+ *
+ * \section history Change history
+ * 20041110: M. Lauwerijssen\n Initial version
+ *
+ ********************************************************************/
+#include <stdlib.hch>
+#include "pal_master.hch"
+
+#include "audio.hch"
+#include "weights_256.hch"
+#include "configuration.hch"
+#include "xilinxmult.hch"
+#include "fft.hch"
+
+#if HAVE_DEBUG
+ #include "debug.hch"
+#endif
+
+/* Define two multi-port RAMs for FFT calculation; one for real and one for imaginary values
+ * Extra block RAM settings are defined to make sure read and write actions can be performed
+ * within one clock-cycle.
+ * Left out extra settings on new board the clock changes TODO !!!!
+ */
+#if HARDWARE_MULTIPLY
+mpram
+{
+ ram signed 18 rwrite[256];
+ rom signed 18 read[256];
+} real with {block = "BlockRAM"/*, westart=2.5, welength=1, rclkpos={1.5}, wclkpos={3}, clkpulselen=0.5*/};
+
+mpram
+{
+ ram signed 18 rwrite[256];
+ rom signed 18 read[256];
+} imaginary with {block = "BlockRAM"/*, westart=2.5, welength=1, rclkpos={1.5}, wclkpos={3}, clkpulselen=0.5*/};
+#else
+mpram
+{
+ ram signed 24 rwrite[256];
+ rom signed 24 read[256];
+} real with {block = "BlockRAM"/*, westart=2.5, welength=1, rclkpos={1.5}, wclkpos={3}, clkpulselen=0.5*/};
+
+mpram
+{
+ ram signed 24 rwrite[256];
+ rom signed 24 read[256];
+} imaginary with {block = "BlockRAM"/*, westart=2.5, welength=1, rclkpos={1.5}, wclkpos={3}, clkpulselen=0.5*/};
+#endif
+// multiplication factors for equalizer function
+ram signed 7 eq_settings[16] = {0,2,4,7,10,13,16,19,22,26,30,35,41,48,55,63};
+
+#if HARDWARE_MULTIPLY
+#define DC_COMPONENT 0
+#else
+#define DC_COMPONENT 8470527
+#endif
+
+/*! \fn macro proc multiply(result, op_a, op_b);
+ * \brief Procedure used for multiply-ing
+ *
+ * \param result variable containing the result of the multiply procedure
+ * \param op_a integer value to be multiplied.
+ * \param op_b integer value to be multiplied.
+ *
+ * \return Procedure returns through variable.
+ * \retval signed 36
+ */
+macro proc multiply(result, op_a, op_b)
+{
+#if HARDWARE_MULTIPLY
+ xilinxmult(result, op_a, adjs(op_b,18));
+#else
+ result = (adjs(op_a,38))*(adjs(op_a,38));
+#endif
+}
+
+
+
+
+/*! \fn void calculate_fft(unsigned 1 select_inverse)
+ * \brief This routine performs the Fast Fourier Transform for calculation of the frequency spectrum
+ *
+ * \param select_inverse determines if a FFT or iFFT has to be calculated
+ *
+ * \return nothing
+ * \retval void
+ *
+ * cost 12391 cycles
+ */
+void calculate_fft(unsigned 1 select_inverse)
+{
+ unsigned 4 level;
+ unsigned 8 point1,point2,j,f,k;
+ unsigned 9 e,i;
+ signed 16 weight1,weight2;
+#if HARDWARE_MULTIPLY
+ signed 18 p,q,r,t;
+#else
+ signed 24 p,q,r,t;
+#endif
+ signed a,b;
+
+#if HARDWARE_MULTIPLY
+ // Macro to provide rescaling of 36-bit result of fixed point multiply
+ // down to an 18-bit result. The range of bits selected depends on the
+ // number that represents the value of "1" in the trig function lookup
+ // tables. (Eg. for 16384 == 1, the lowest bit selected should be [14]).
+ macro expr rescale (x) = (x[35] @ x[30:14]);
+#else
+ //Macro to rescale the multiply result down to a 24-bit value.
+ macro expr rescale (x) = ((x>>FRACBITS)<-24);
+#endif
+
+ for(level=1;level<=NUMBER_OF_COLUMNS;level++) // count all the columns
+ {
+ e=1<<(NUMBER_OF_COLUMNS-level+1); // number of points in each block in this column
+ f=(e>>1)<-8; // number of butterflies in each block in this column
+
+ for(j=1;j<=f;j++) // count all the butterflies in each block
+ {
+ par
+ {
+ // Weight factors for real (the same for FFT and iFFT)
+ weight1 = weight_re[((j-1)<<(level-1))<-7];
+
+
+ // Weight factors for imaginary (opposite for FFT and iFFT)
+ weight2 = (!select_inverse) ? (weight_im[((j-1)<<(level-1))<-7]) : -(weight_im[((j-1)<<(level-1))<-7]);
+
+ /* ORIGINAL CODE BELOW, MODIFIED BECAUSE OF MISMATCHING OUTPUT WITH BORLAND TESTAPP
+ weight2 = (!select_inverse) ? -(weight_im[((j-1)<<(level-1))<-7]) : weight_im[((j-1)<<(level-1))<-7];
+ */
+
+
+
+ for(i=0@j;i<=NUMBER_OF_POINTS;i+=e) // count all the blocks in this column
+ { // Butterfly calculation
+ par
+ {
+ point1 = ((i<-8)-1);
+ point2 = (((i<-8)+f)-1);
+ }
+
+ par
+ {
+ p = (real.read[point1] >> 1) + (real.rwrite[point2] >> 1);
+ q = (imaginary.read[point1] >> 1) + (imaginary.rwrite[point2] >> 1);
+ }
+
+ par
+ {
+ r = (real.read[point1] >> 1) - (real.rwrite[point2] >> 1);
+ t = (imaginary.read[point1] >> 1) - (imaginary.rwrite[point2] >> 1);
+ }
+
+ multiply(a,r,weight1);
+ multiply(b,t,weight2);
+
+ par
+ {
+ real.rwrite[point2] = (rescale(a-b));
+ imaginary.rwrite[point1] = q;
+ }
+
+ multiply(a,t,weight1);
+ multiply(b,r,weight2);
+
+ par
+ {
+ real.rwrite[point1] = p;
+ imaginary.rwrite[point2] = (rescale(a+b));
+ }
+
+ }
+ }
+ }
+ }
+
+ j=1;
+ for(i=1;i<NUMBER_OF_POINTS;i++)
+ {
+ if(i<(0@j))
+ {
+ par
+ {
+ point1=j-1;
+ point2=(i-1)<-8;
+ }
+ /*
+ COPYING ARRAY VALUES FROM ONE PLACE TO ANOTHER IN THE ARRAT MUST BE DONE IN
+ 2 STEPS. FIRSTLY THE VALUES ARE COPIED TO SEPARATE VARIABLES AFTER THAT THEY
+ ARE COPIED BACK TO THEIR NEW POSITION IN THE ARRAY. THIS MUST BE DONE TO
+ PREVENT TIMING ISSUES FROM OCCURING.
+ */
+ par
+ {
+ p = real.read[point1];
+ q = imaginary.read[point1];
+ }
+ par
+ {
+ r = real.read[point2];
+ t = imaginary.read[point2];
+ }
+ par
+ {
+ real.rwrite[point1] = r;
+ imaginary.rwrite[point1] = t;
+ }
+ par
+ {
+ real.rwrite[point2] = p;
+ imaginary.rwrite[point2] = q;
+ }
+ }
+
+ k = NUMBER_OF_POINTS>>1;
+
+
+ while(k<j)
+ {
+ j = j-k;
+ k = k>>1;
+ }
+
+ j+=k;
+ }
+
+}
+
+/*! \fn void perform_fft(signed 18 *pcm_audio)
+ * \brief This routine obtains the audio data from the audio I/O component and copies this
+ * data to local arrays for calculating purposes, and calls the FFT algorithm.
+ *
+ * \param *pcm_audio pointer to array containg the audio data
+ *
+ * \return nothing
+ * \retval void
+ *
+ * cost 258 cycles (excl. the calculate FFT function)
+ */
+#if HARDWARE_MULTIPLY
+void perform_fft(signed 18 *pcm_audio)
+#else
+void perform_fft(signed 16 *pcm_audio)
+#endif
+{
+ unsigned 8 k;
+#if HARDWARE_MULTIPLY
+ signed 18 sample;
+ k=0;
+ sample = adjs(pcm_audio[k],18);
+#else
+ signed 24 sample;
+ k=0;
+ sample = adjs(pcm_audio[k],24);
+#endif
+
+ //initialize variables for the copying pipeline
+
+
+ // copy audio data to real-array before starting FFT calculation
+ // and set imaginary values to zero
+ do
+ {
+ //Copying the array values has been pipelined to prevent parallel access to the
+ //pcm_audio array. This copying procedure must be finished before another
+ //sample is read from the audio input. The time available for this loop is
+ //determined by the sampling rate of 44,1 Khz
+ par
+ {
+ //COPYING NEEDS TO BE DONE IN 2 STEPS, BECAUSE THE VALUE THAT NEEDS TO WRITTEN
+ //TO THE REAL-RAM NEEDS TO BE AVAILABLE ON THE START OFF THE CLOCKCYCLE.
+#if HARDWARE_MULTIPLY
+ sample = adjs(pcm_audio[k+1],18);
+#else
+ sample = adjs(pcm_audio[k+1],24);
+#endif
+ real.rwrite[k] = sample;
+ imaginary.rwrite[k] = 0;
+ k++;
+ }
+ } while (k);
+
+
+
+#if PERFORM_FFT_CALCULATION
+ calculate_fft(0);
+#endif
+
+
+}
+
+/*! \fn void perform_ifft(signed 18 *modified_audio, unsigned 6 *ifft_info)
+ * \brief This routine calls the ifft algorithm and after completing that it obtains the
+ * modified audio data and copies that to the output arrays of the audio I/O component.
+ * Besides that it also fills the array used by the display routine for displaying the waveform.
+ *
+ * \param *modified_audio pointer to array containg the audio data
+ * \param *ifft_info Pointer to the ifft_info array containing the modified waveform data for display purposes
+ *
+ * \return nothing
+ * \retval void
+ *
+ * cost 258 cycles (excl. the calculate iFFT function)
+ */
+#if HARDWARE_MULTIPLY
+void perform_ifft(signed 18 *modified_audio, unsigned 6 *ifft_info)
+#else
+void perform_ifft(signed 16 *modified_audio, unsigned 6 *ifft_info)
+#endif
+{
+ unsigned 6 k;
+#if HARDWARE_MULTIPLY
+ signed 18 p;
+#else
+ signed 24 p;
+#endif
+#if PERFORM_FFT_CALCULATION
+ calculate_fft(1);
+#endif
+
+ k=0;
+//initialize variables for the copying pipeline
+#if PERFORM_FFT_CALCULATION
+ #if HARDWARE_MULTIPLY
+ p = (real.read[(0@k)+95] << NUMBER_OF_COLUMNS);
+ #else
+ p = (real.read[(0@k)+95] >> NUMBER_OF_COLUMNS);
+ #endif
+#else
+ p = (real.read[(0@k)+95]);
+#endif
+
+ do
+ {
+ //Copying the array values has been pipelined to prevent parallel access to the
+ //pcm_audio array. This copying procedure must be finished before another
+ //sample is read from the audio input. The time available for this loop is
+ //determined by the sampling rate of 44,1 Khz
+ par
+ {
+ /*
+ * Before copying the modified audio from the local real-array
+ * to the output array of the audio I/O component, compensate
+ * for the FFT calculation by shifting the values.
+ * 95 is added to start the output from the middle of the sliding
+ * window, this is done to get a better sound quality.
+ */
+#if PERFORM_FFT_CALCULATION
+ #if HARDWARE_MULTIPLY
+ p = (real.read[(0@k)+95] << NUMBER_OF_COLUMNS);
+ #else
+ p = (real.read[(0@k)+95] >> NUMBER_OF_COLUMNS);
+ #endif
+#else
+ p = (real.read[(0@k)+95]);
+#endif
+ //Copy the modified audio from the local real array to the output array of the audio I/O component.
+#if HARDWARE_MULTIPLY
+ modified_audio[k] = p ;
+#else
+ modified_audio[k] = (p<-16);
+#endif
+ //Fill the array for displaying the waveform, only the 6 MSB are needed.
+ ifft_info[k] = (unsigned 6)(32+(p[17:12]));
+ k++;
+ }
+ } while(k);
+}
+
+/*! \fn void equalize_audio(audiodata_t *audiodata)
+ * \brief This routine equalizes the frequencies derived by the FFT calculation,
+ * according to the settings of the equalizer bars.
+ *
+ * \note Cost: 3844 clock cycles (Maximum)
+ *
+ * \param *audiodata pointer to the audiodata struct, containing the eq_info, etc.
+ *
+ * \return void
+ * \retval void
+ *
+ */
+void equalize_audio(audiodata_t *audiodata)
+{
+#if HARDWARE_MULTIPLY
+ signed 18 p,q;
+#else
+ signed 24 p,q;
+#endif
+ signed 18 a;
+ unsigned 8 i, mirror_i, bit, m, n;
+ unsigned 7 old_value;
+ unsigned 9 tmp;
+
+ //macro expr equalize_bar = multiply(q,a)[29:6];
+
+ macro proc equalize_bar(retval)
+ {
+ signed result;
+ multiply(result, q,a);
+#if HARDWARE_MULTIPLY
+ retval = result[23:6]; //drop last 6 bit to compensate the maximum multiplication with 64 from the eq_settings array
+#else
+ retval = result[29:6]; //drop last 6 bit to compensate the maximum multiplication with 64 from the eq_settings array
+#endif
+ }
+
+ p = real.read[0] - DC_COMPONENT; // remove DC component for calculations
+ real.rwrite[0] = p;
+
+ for(i=0;i!=NUMBER_OF_FREQUENCIES;i++)
+ {
+
+ // set multiplication factor (0..64) for current frequency bar, The first frequency band must be equalized at 100% (63) since there is no DC-component taken into account.
+ a = adjs(eq_settings[audiodata->equalizer_levels_ptr[i <- 7]],18);
+
+
+ // multiply frequency with this factor and divide by 64 (drop 6 LSB's)
+ q = real.read[i];
+ equalize_bar(p);
+ real.rwrite[i] = p;
+
+ q = imaginary.read[i];
+ equalize_bar(p);
+ imaginary.rwrite[i] = p;
+
+ // the upper part(128..255) of the spectrum is mirrored to the lower part;
+ // these values need to be adjusted too
+ if ((i<-7)!=0) // if not in DC component bar
+ {
+ mirror_i = (NUMBER_OF_POINTS-1)-i+1;
+ q = real.read[mirror_i];
+ equalize_bar(p);
+ real.rwrite[mirror_i] = p;
+
+ q = imaginary.read[mirror_i];
+ equalize_bar(p);
+ imaginary.rwrite[mirror_i] = p;
+ }
+ }
+
+ //write data to fft_info for display purposes
+ for(i=0;i<NUMBER_OF_FREQUENCIES;i++)
+ {
+ p = real.read[i];
+ q = imaginary.read[i];
+#if HARDWARE_MULTIPLY
+ if (p[17] == 1) p = -p; else delay;
+ if (q[17] == 1) q = -q; else delay;
+#else
+ if (p[23] == 1) p = -p; else delay;
+ if (q[23] == 1) q = -q; else delay;
+#endif
+ p = (p<q) ? q : p; // This is done to get the best visual frequency result
+
+ if (!audiodata->display_log)
+ {
+
+ bit=126;
+#if HARDWARE_MULTIPLY
+ while ((p[15] == 0) && (bit != 0))
+#else
+ while ((p[21] == 0) && (bit != 0))
+#endif
+ par
+ {
+ p = p<<1;
+ bit = bit - 18;
+ }
+ old_value = audiodata->fft_info.write[0 @ (i <- 7)];
+ tmp = ((0@old_value) + (0@bit))>>1;
+ audiodata->fft_info.write[0 @ (i <- 7)] = (old_value <= (tmp<-7)) ? (tmp<-7) : old_value-1;
+ }
+ else
+ {
+ old_value = audiodata->fft_info.write[0 @ (i <- 7)];
+#if HARDWARE_MULTIPLY
+ audiodata->fft_info.write[0 @ (i <- 7)] = (old_value<=(unsigned)(p[15:9])) ? (unsigned)(p[15:9]) : old_value-1;
+#else
+ audiodata->fft_info.write[0 @ (i <- 7)] = (old_value<=(unsigned)(p[21:15])) ? (unsigned)(p[21:15]) : old_value-1;
+#endif
+ }
+ }
+
+ // add DC component again before inverse FFT calculation is performed
+
+ p = real.read[0] + DC_COMPONENT;
+ real.rwrite[0] = p;
+}
+
diff --git a/Graphic_Equalizer_Original_Port/src/main.hcc b/Graphic_Equalizer_Original_Port/src/main.hcc
new file mode 100644
index 0000000..78918b8
--- /dev/null
+++ b/Graphic_Equalizer_Original_Port/src/main.hcc
@@ -0,0 +1,162 @@
+/*! \file main.hcc
+ *
+ * \section generic Message build up information and more
+ *
+ * \section project Project information.
+ * Project Graphic Equalizer\n
+ * \author O.M. Schinagl
+ * \date 20041011
+ * \version 0.1
+ *
+ * \section copyright Copyright
+ * Copyright ©2004 Koninklijke Philips Electronics N.V. All rights reserved
+ *
+ * \section history Change history
+ * 20041011: O.M. Schinagl\n Initial version
+ *
+ *****************************************************************************/
+
+/*
+ * Set the Clock rate for this domain. 25.175 Mhz is required for the Video output.
+ */
+#define PAL_TARGET_CLOCK_RATE 25175000
+
+/******** System Includes *************/
+#include "pal_master.hch"
+
+/******** Application Includes ********/
+#include "configuration.hch"
+#include "audio.hch"
+#include "mouse_shared.hch"
+#include "mouse.hch"
+#include "eventhandler_shared.hch"
+#include "eventhandler.hch"
+#include "display_shared.hch"
+#include "display.hch"
+#include "smartmedia.hch"
+
+#include "fft.hch"
+#include "runfft.hch"
+
+#if HAVE_DEBUG
+ #include "debug.hch"
+#endif
+
+/*! \fn void main(void);
+ * \brief Main Application Loop.
+ *
+ * \return void
+ * \retval void
+ */
+void main(void) {
+ /*
+ * Set VideoOut, Audio I/O and Ram Handles and set clockrate.
+ */
+ macro expr ClockRate = PAL_ACTUAL_CLOCK_RATE;
+ macro expr VideoOut = PalVideoOutOptimalCT(ClockRate);
+ macro expr AudioIn = PalAudioInCT(0);
+ macro expr AudioOut = PalAudioOutCT(0);
+ macro expr RAM_BANK0 = PalPL2RAMCT(0);
+
+ mousedata_t mousedata;
+ events_t events;
+ audiodata_t audiodata;
+ skindata_t skindata;
+ unsigned 1 result;
+
+ /*
+ * Check library versions and Request various hardware functionality.
+ * We need at least Major Version 1. For Audio purposes we need atleast
+ * minor version 2.
+ */
+ PalVersionRequire(1, 2);
+ PalVideoOutRequire(1);
+ PalAudioInRequire(1);
+ PalAudioOutRequire(1);
+
+ /*
+ * We verify some datawidths here at compile time. This to ensure
+ * successfull operation.
+ */
+ assert (PalVideoOutGetColorWidthCT(VideoOut) == 24, 0,
+ "We need a 24-bit color Display.");
+ assert (PalPL2RAMGetDataWidthCT(RAM_BANK0) >= 32, 0,
+ "We can't work with anything less then 32 bits wide ram.");
+
+ /*
+ * Run The Following main tasks in parallel.
+ */
+ par {
+ /*
+ * Primary task is to 'Run' several hardware simultaniously.
+ */
+ PalVideoOutRun(VideoOut, ClockRate);
+ MouseRun(ClockRate);
+ PalAudioInRun(AudioIn, ClockRate);
+ PalAudioOutRun(AudioOut, ClockRate);
+ PalPL2RAMRun(RAM_BANK0, ClockRate);
+#if HAVE_SMARTMEDIA
+ /*
+ * The smartmedia device needs the CPLD to run also.
+ */
+ CPLDRun(ClockRate);
+ SmartMediaRun(ClockRate);
+#endif
+#if HAVE_DEBUG
+ RC200RS232Run(RC200RS232_115200Baud, RC200RS232ParityNone,
+ RC200RS232FlowControlNone, ClockRate);
+#endif
+
+ /*
+ * Parallel to our Primary tasks we run the application.
+ */
+ seq {
+ /*
+ * But first we need to initialize Video and Audio.
+ * We also load the data from the SmartMedia card
+ * into the ram.
+ */
+#if HAVE_DEBUG
+ print_cls();
+ print_string("Graphic Equalizer 2");
+ print_eol();
+#endif
+ PalVideoOutEnable(VideoOut);
+ PalAudioInEnable(AudioIn);
+ PalAudioOutEnable(AudioOut);
+ audio_init(6, LINE_IN, SR_44100, AudioIn, AudioOut);
+#if HAVE_SMARTMEDIA
+ /*
+ * Once we properly setup the SmartMedia we load our
+ * data folowed by our main program loop.
+ */
+ result = smartmedia_init();
+ if (!result) {
+#endif
+ smartmedia_loaddata(&skindata);
+
+ /*
+ * Main application starts here!
+ */
+ par {
+ /*
+ * From here we run the mouse driver, audio
+ * and display in parallel. None of these
+ * should ever return.
+ */
+ mouse_main(&mousedata);
+ display_main(&skindata, &audiodata, &events, &mousedata);
+ eventhandler_main(&audiodata, &events, &mousedata);
+ audio_main(audiodata, AudioIn, AudioOut);
+ }
+#if HAVE_SMARTMEDIA
+ } else {
+#if HAVE_DEBUG
+ print_string("Error Initializing SmartMedia");
+#endif
+ }
+#endif
+ }
+ }
+
+} /* --- main() --- */
diff --git a/Graphic_Equalizer_Original_Port/src/mouse.hcc b/Graphic_Equalizer_Original_Port/src/mouse.hcc
new file mode 100644
index 0000000..61ce619
--- /dev/null
+++ b/Graphic_Equalizer_Original_Port/src/mouse.hcc
@@ -0,0 +1,131 @@
+/*! \file mouse.hcc
+ *
+ * \section generic This module takes care of mouse input. The mouse
+ * input function itself is however performed by the
+ * touchscreen of the RC200.
+ *
+ * \section project Project information.
+ * Project Graphic Equalizer\n
+ * \author O.M. Schinagl
+ * \date 20041011
+ * \version 0.1
+ *
+ * \section copyright Copyright
+ * Copyright ©2004 Koninklijke Philips Electronics N.V. All rights reserved
+ *
+ * \section history Change history
+ * 20041011: O.M. Schinagl\n Initial version
+ *
+ ********************************************************************/
+
+/******** System Includes *************/
+#include <stdlib.hch>
+
+#include "pal_master.hch"
+#include "pal_mouse.hch"
+
+/******** Application Includes ********/
+#include "configuration.hch"
+#include "mouse_shared.hch"
+#include "mouse.hch"
+
+#if HAVE_DEBUG
+ #include "debug.hch"
+#endif
+
+
+
+/*! \fn void mouse_main(mousedata_t *mousedata);
+ * \brief Main mousedriver. This function never returns! It calls the
+ * main mousehandler and returns the States and coordinates
+ * into a shared store.
+ *
+ * \param *mousedata Storage for all mousedata and states.
+ *
+ * \return Never Returns.
+ * \retval void
+ */
+void mouse_main(mousedata_t *mousedata) {
+ unsigned 18 touch_sampler;
+ unsigned 10 x, oldx;
+ unsigned 9 y, oldy;
+ unsigned 3 mousestate, oldmousestate;
+ unsigned 1 touch, touched, oldtouched;
+
+ /*
+ * We only check for mouse states once every 2^18 time. This to
+ * overcome the sampling of the 'Touch' state of the RC200 libs. When
+ * using newer libs this might be overkill, e.g. smaller values may
+ * work or sampling all together will be redundant.
+ */
+ touch_sampler = 1;
+ while (TRUE) {
+ if (!touch_sampler) {
+ /*
+ * We are here ready to set mouse states. We compare
+ * current and previous states and thereby determine
+ * the state to send to others
+ */
+ if (touched) {
+ if(oldtouched) {
+ mousestate = MOUSE_STATE_DOWN;
+ } else {
+ mousestate = MOUSE_STATE_ON_PRESS;
+ }
+ oldtouched = TRUE;
+ } else {
+ if(oldtouched) {
+ mousestate = MOUSE_STATE_ON_RELEASE;
+ } else {
+ mousestate = MOUSE_STATE_UP;
+ }
+ oldtouched = FALSE;
+ }
+ /*
+ * We have now processed our Touch. Reset it for the
+ * next run.
+ */
+ touched = FALSE;
+
+ /*
+ * In the rare occurance that we receive values
+ * beyond our range, we set them to some sane
+ * values here.
+ */
+ x = (x > 639) ? 0 : x;
+ y = (y > 479) ? 0 : y;
+
+ /*
+ * Compare Previous States and Coordinates to determine
+ * wether they have changed. If so, Copy them into
+ * shared memory, notify the listening processes and
+ * Set the new as previous values for the next run. We
+ * can only do this when the display has handled all
+ * changes.
+ */
+ if (((oldmousestate != mousestate) || (oldx != x) || (oldy != y)) && (MOUSE_NOT_UPDATED == mousedata->status)) {
+ //par {
+ oldx = x;
+ oldy = y;
+ oldmousestate = mousestate;
+ mousedata->x = x;
+ mousedata->y = 0 @ y;
+ mousedata->state = mousestate;
+ mousedata->status = MOUSE_UPDATED;
+ //}
+ }
+ }
+
+ /*
+ * Read the current X and Y of the 'cursor' and register wether
+ * the display was touched. If touched store this in a local
+ * store. This we do to catch the sampling of the RC200 lib.
+ */
+ RC200TouchScreenReadScaled(&x, &y, &touch);
+ if (touch) {
+ touched = TRUE;
+ }
+
+ touch_sampler++;
+ }
+} /* --- mouse_main() --- */
diff --git a/Graphic_Equalizer_Original_Port/src/runfft.hcc b/Graphic_Equalizer_Original_Port/src/runfft.hcc
new file mode 100644
index 0000000..55d4b05
--- /dev/null
+++ b/Graphic_Equalizer_Original_Port/src/runfft.hcc
@@ -0,0 +1,182 @@
+/*! \file runfft.hcc
+ *
+ * \section generic This module will handle the audio I/O. It will ensure the
+ * audiosamples are correctly buffered and fed correctly to the FFT.\n
+ * This module will also handle the output of the modified audio samples.
+ *
+ * \section project Project information.
+ * Project Graphic Equalizer\n
+ * \author M. Lauwerijssen
+ * \date 20041110
+ * \version 0.1
+ *
+ * \section copyright Copyright
+ * Copyright ©2004 Koninklijke Philips Electronics N.V. All rights reserved
+ *
+ * \section history Change history
+ * 20041110: M. Lauwerijssen\n Initial version
+ *
+ ********************************************************************/
+#include <stdlib.hch>
+#include "pal_master.hch"
+
+#include "configuration.hch"
+#if USE_RUNFFT
+#include "audio.hch"
+#include "fft.hch"
+
+#if HAVE_DEBUG
+ #include "debug.hch"
+#endif
+
+/*
+ * Forward declarations
+ */
+static macro expr ClockRate = PAL_ACTUAL_CLOCK_RATE;
+#if HARDWARE_MULTIPLY
+//input buffer
+ram signed 18 audio_buffer_in[256] with { block = "BlockRAM"};
+//output buffer
+ram signed 18 audio_buffer_out[128] with { block = "BlockRAM"};
+#else
+//input buffer
+ram signed 16 audio_buffer_in[256] with { block = "BlockRAM"};
+//output buffer
+ram signed 16 audio_buffer_out[128] with { block = "BlockRAM"};
+#endif
+//EQ settings for the FFT
+ram unsigned 4 EQ_info[128] with { block = "BlockRAM"};
+//EQ settings received from the display
+
+
+#if HARDWARE_MULTIPLY
+signed 18 *audioptr_in1,*audioptr_in2,*audioptr_in3,*audioptr_in4;
+
+signed 18 *audioptr_out1,*audioptr_out2;
+
+unsigned 6 *displayptr1,*displayptr2,*displayptr3,*displayptr4;
+#else
+signed 16 *audioptr_in1,*audioptr_in2,*audioptr_in3,*audioptr_in4;
+
+signed 16 *audioptr_out1,*audioptr_out2;
+
+unsigned 6 *displayptr1,*displayptr2,*displayptr3,*displayptr4;
+#endif
+
+/*! \fn macro proc audio_main(AUDIOIN, AUDIOOUT);
+ * \brief Audio I/O component main.
+ *
+ * \param audiodata Pointer to audiodata struct
+ * \param AUDIOIN Handle to audio-input
+ * \param AUDIOOUT Handle to audio-output
+ *
+ * \return Never Returns.
+ * \retval void
+ */
+macro proc audio_main(audiodata, AUDIOIN, AUDIOOUT)
+{
+ signed 18 sample;
+ unsigned 6 sample_count;
+ unsigned 8 i,cycle;
+ unsigned 4 eqinfo;
+
+ unsigned 1 FFT_Sync, first;
+ macro expr OW = PalAudioOutGetMaxDataWidthCT ();
+ macro expr IW = PalAudioInGetMaxDataWidthCT ();
+ signed LeftNew, RightNew;
+ signed Output_sample;
+
+ ram unsigned 6 input[64];
+
+ //pointers for double and quadruple buffering:
+ audioptr_in1 = &audio_buffer_in[0];
+ audioptr_in2 = &audio_buffer_in[64];
+ audioptr_in3 = &audio_buffer_in[128];
+ audioptr_in4 = &audio_buffer_in[192];
+
+ audioptr_out1 = &audio_buffer_out[0];
+ audioptr_out2 = &audio_buffer_out[64];
+
+ displayptr1 = &audiodata.ifft_info.write[0];
+ displayptr2 = &audiodata.ifft_info.write[64];
+ displayptr3 = &audiodata.ifft_info.write[128];
+ displayptr4 = &audiodata.ifft_info.write[192];
+
+ FFT_Sync=0;
+par
+{
+ for(;;)
+ {
+ if (FFT_Sync) //if 64 samples are read from ADC...
+ {
+ par
+ {
+ // switch pointers
+ audioptr_in1 = audioptr_in2;
+ audioptr_in2 = audioptr_in3;
+ audioptr_in3 = audioptr_in4;
+ audioptr_in4 = audioptr_in1;
+
+ audioptr_out1 = audioptr_out2;
+ audioptr_out2 = audioptr_out1;
+
+ displayptr1=displayptr2;
+ displayptr2=displayptr3;
+ displayptr3=displayptr4;
+ displayptr4=displayptr1;
+
+ FFT_Sync = 0;
+ }
+
+ // FFT calculation
+ perform_fft(audioptr_in1);
+
+#if PERFORM_FFT_CALCULATION
+ equalize_audio(&audiodata);
+#endif
+ // inverse FFT calculation
+ perform_ifft(audioptr_out1,displayptr1);
+ }
+ else
+ delay;
+ }
+
+ for(sample_count=0;;)//store the samples in the inputbuffer
+ {
+ if (!FFT_Sync)
+ {
+ par
+ {
+ seq
+ {
+ PalAudioInRead(AUDIOIN, &LeftNew, &RightNew);
+#if HARDWARE_MULTIPLY
+ audioptr_in1[sample_count] = LeftNew;//drop 2 LSB's
+#else
+ audioptr_in1[sample_count] = (LeftNew\\2);//drop 2 LSB's
+#endif
+ sample_count++;
+ if (!sample_count)
+ {
+ FFT_Sync = 1;
+ }
+ }
+ seq
+ {
+ Output_sample = audioptr_out2[sample_count];
+ }
+ }
+ }
+ else
+ {
+ delay;
+ }
+ }
+ for(;;)
+ {
+ PalAudioOutWrite(AUDIOOUT,(signed OW)(Output_sample @ 0),(signed OW)(Output_sample @ 0));
+ }
+}//end par
+}// end function
+#endif
+
diff --git a/Graphic_Equalizer_Original_Port/src/smartmedia.hcc b/Graphic_Equalizer_Original_Port/src/smartmedia.hcc
new file mode 100644
index 0000000..ff405c1
--- /dev/null
+++ b/Graphic_Equalizer_Original_Port/src/smartmedia.hcc
@@ -0,0 +1,233 @@
+/*! \file smartmedia.hcc
+ *
+ * \section generic Here we interface with the SmartMedia card.
+ *
+ * \section project Project information.
+ * Project Graphic Equalizer\n
+ * \author O.M. Schinagl
+ * \date 20041110
+ * \version 0.1
+ *
+ * \section copyright Copyright
+ * Copyright ©2004 Koninklijke Philips Electronics N.V. All rights reserved
+ *
+ * \section history Change history
+ * 20041110: O.M. Schinagl\n Initial version
+ *
+ ********************************************************************/
+
+/******** System Includes *************/
+#include <stdlib.hch>
+
+#include "pal_master.hch"
+
+/******** Application Includes ********/
+#include "configuration.hch"
+#include "display_shared.hch"
+#include "smartmedia_shared.hch"
+#include "smartmedia.hch"
+
+#if HAVE_DEBUG
+ #include "debug.hch"
+#endif
+
+#include "audio.hch"
+#include "mouse_shared.hch"
+#include "eventhandler_shared.hch"
+#include "display.hch" /* FIXME: temporary include, needs to be moved to 'init' */
+
+/*! \fn unsigned 1 smartmedia_init(void);
+ * \brief We here initialize the Smart Media card and verify wether the
+ * card is inserted and such.
+ *
+ * \return We return 0 on success, 1 on error.
+ * \retval unsigned 1
+ */
+unsigned 1 smartmedia_init(void) {
+ unsigned 1 retval;
+ /*
+ * Firstly we enable both the CPLD and the SmartMedia.
+ */
+ RC200CPLDEnable();
+ RC200SmartMediaInit(&retval);
+
+ if (retval) {
+ RC200SmartMediaReset(&retval);
+ RC200SmartMediaInit(&retval);
+ }
+
+ return retval;
+} /* --- smartmedia_init() --- */
+
+
+
+/*! \fn void smartmedia_loaddata(skindata_t *skindata);
+ * \brief We load our memory with skin and help data from the smartmedia.
+ *
+ * \param *skindata skindata like boundries and colors of elements.
+ *
+ * \return void
+ * \retval void
+ */
+void smartmedia_loaddata(skindata_t *skindata) {
+ /*
+ * Setup RAM Handle, and determin maximum Data and Address widths
+ */
+ macro expr RAM_BANK0 = PalPL2RAMCT(0);
+ macro expr DW = PalPL2RAMGetMaxDataWidthCT();
+ macro expr AW = PalPL2RAMGetMaxAddressWidthCT();
+
+ unsigned DW data;
+ unsigned 27 smartmedia_address, smartmedia_address_mask;
+ unsigned AW address;
+ unsigned 8 mask, r, g, b;
+ unsigned 3 stage;
+ unsigned 1 result;
+
+ extern ram unsigned 8 presets_default_values[768];
+
+#if HAVE_DEBUG
+ /*
+ * Print some nice stats about data loading.
+ */
+ print_eol();
+ print_hex_value(0);
+#endif
+ /*
+ * Before we enter our loop to fill our memory with valid data, we have
+ * to set the startup positions for the SmartMedia.
+ */
+ smartmedia_address = SMARTMEDIA_ADDRESS_SKIN_START;
+ smartmedia_address_mask = SMARTMEDIA_ADDRESS_SKINMASK_START;
+ stage = STAGE_LOAD_SKIN;
+ /*
+ * We start with the address of the skin, and do the loop until we have
+ * done the end of the help.
+ */
+ for (address = ADDRESS_SKIN_START; address != (ADDRESS_PRESET_RESET_END +1); address++) {
+ /*
+ * Once we are done with the loading of our skin, we need to
+ * change the smartmedia start addresses.
+ */
+ switch (address) {
+ case ADDRESS_HELP_START:
+ smartmedia_address = SMARTMEDIA_ADDRESS_HELP_START;
+ smartmedia_address_mask = SMARTMEDIA_ADDRESS_HELPMASK_START;
+ stage = STAGE_LOAD_HELP;
+ break;
+ case ADDRESS_GRAPHMASK_START:
+ smartmedia_address_mask = SMARTMEDIA_ADDRESS_GRAPHMASK_START;
+ stage = STAGE_LOAD_GRAPH;
+ break;
+ case ADDRESS_PRESET_DEMO_START:
+ smartmedia_address_mask = SMARTMEDIA_ADDRESS_PRESET_DEMO_START;
+ stage = STAGE_LOAD_PRESET;
+ break;
+ case ADDRESS_PRESET_RESET_START:
+ smartmedia_address_mask = SMARTMEDIA_ADDRESS_PRESET_RESET_START;
+ stage = STAGE_LOAD_PRESET;
+ break;
+ default:
+ break;
+ }
+
+ /*
+ * Before reading our data from the smartmedia we set our
+ * address pointer to the address from our loop.
+ */
+#if HAVE_SMARTMEDIA
+ PalPL2RAMSetWriteAddress(RAM_BANK0, address);
+#else
+ PalPL2RAMSetWriteAddress(RAM_BANK0, 0);
+#endif
+
+ /*
+ * SmartMedia data is read one byte per call. Because we want
+ * to store the mask + the rgb values in one variable for later
+ * useage we need to read those 4 bytes from the smartmedia
+ * before storing it as one.
+ */
+#if HAVE_SMARTMEDIA
+ /*
+ * FIXME: Due to a bug in the DK2 smartmedia libraries we need
+ * stop reading after each byte with OperationEnd call. This is
+ * VERY slow and must be changed.
+ */
+ if ((STAGE_LOAD_SKIN == stage) || (STAGE_LOAD_HELP == stage)) {
+ RC200SmartMediaSetAddress(READ, smartmedia_address);
+ RC200SmartMediaRead(&r, TRUE);
+ RC200SmartMediaOperationEnd(&result);
+ RC200SmartMediaSetAddress(READ, (smartmedia_address +1));
+ RC200SmartMediaRead(&g, TRUE);
+ RC200SmartMediaOperationEnd(&result);
+ RC200SmartMediaSetAddress(READ, (smartmedia_address +2));
+ RC200SmartMediaRead(&b, TRUE);
+ RC200SmartMediaOperationEnd(&result);
+ }
+ RC200SmartMediaSetAddress(READ, smartmedia_address_mask);
+ RC200SmartMediaRead(&mask, TRUE);
+ RC200SmartMediaOperationEnd(&result);
+
+ switch (stage) {
+ case STAGE_LOAD_SKIN:
+ data = 0 @ mask @ r @ g @ b;
+ break;
+ case STAGE_LOAD_HELP:
+ data = 0 @ mask @ r @ g @ b;
+ break;
+ case STAGE_LOAD_GRAPH:
+ data = (unsigned DW)(0 @ mask) << 24;
+ break;
+ case STAGE_LOAD_PRESET:
+ presets_default_values[(address -ADDRESS_PRESET_DEMO_START) <- 10] = mask;
+ }
+
+#else
+ data = 0x0000ff00;
+#endif
+ /*
+ * Now that we have gathered all pixel data, store it in ram.
+ */
+ PalPL2RAMWrite(RAM_BANK0, data);
+
+#if HAVE_DEBUG
+ /*
+ * Print some nice stats about data loading.
+ */
+ if (!(address <- 10)) {
+ print_cr();
+ print_hex_value(0 @ (address \\ 11));
+ print_string(" / 000001C2 | data: ");
+ print_hex_value(data <- 32);
+ }
+#endif
+
+ /*
+ * Finally increase al our indexes approperiatly.
+ */
+ smartmedia_address += 3;
+ smartmedia_address_mask++;
+ }
+
+ /*
+ * This block needs to probably move up into the fore loop where we
+ * calculate these settings later.
+ */
+ skindata->area_spectrum_top = 200;
+ skindata->area_spectrum_bottom = 335;
+ skindata->area_spectrum_left = 77;
+ skindata->area_spectrum_right = 575;
+ skindata->area_waveform_top = 46;
+ skindata->area_waveform_bottom = 118;
+ skindata->area_waveform_left = 76;
+ skindata->area_waveform_right = 413;
+ skindata->area_volume_top = 112;
+ skindata->area_volume_bottom = 66;
+ skindata->area_volume_left = 439;
+ skindata->area_volume_right = 455;
+ skindata->color_area_volume = PIXEL_VOLUME;
+ skindata->color_area_waveform = PIXEL_WAVEFORM;
+// skindata->color_area_spectrum_top = PIXEL_SPECTRUM;
+// skindata->color_area_spectrum_bottom = PIXEL_SPECTRUM;
+ skindata->color_equalizer = PIXEL_EQUALIZER;
+} /* --- smartmedia_loaddata() --- */