diff options
author | Alexey 'Cluster' Avdyukhin <clusterrr@clusterrr.com> | 2014-01-23 22:43:35 +0400 |
---|---|---|
committer | Alexey 'Cluster' Avdyukhin <clusterrr@clusterrr.com> | 2014-01-23 22:43:35 +0400 |
commit | a6d5a4334c6c3e5c131b74b94532af5c73d663fc (patch) | |
tree | 461f41a332fab3dd324bf6d07c79f899b73ff2a4 | |
parent | 6d8a06ccc508b404f108dfa22d4a3e15a02b8e0e (diff) |
SMD 6 button mode fixed
-rw-r--r-- | main.c | 115 | ||||
-rw-r--r-- | nes2wii.hex | 473 |
2 files changed, 278 insertions, 310 deletions
@@ -100,7 +100,7 @@ uint16_t get_smd_gamepad() uint8_t gamepad_data_low = 0; uint8_t gamepad_data_high = 0; SMD_SELECT_PORT &= ~(1<<SMD_SELECT_PIN); // Select - low - _delay_us(10); + _delay_us(50); gamepad_data_low = ((SMD_DATA_PORT_PIN>>SMD_DATA0_PIN)&1) | (((SMD_DATA_PORT_PIN>>SMD_DATA1_PIN)&1)<<1) | (((SMD_DATA_PORT_PIN>>SMD_DATA2_PIN)&1)<<2) @@ -108,7 +108,7 @@ uint16_t get_smd_gamepad() | (((SMD_DATA_PORT_PIN>>SMD_DATA4_PIN)&1)<<4) | (((SMD_DATA_PORT_PIN>>SMD_DATA5_PIN)&1)<<5); SMD_SELECT_PORT |= 1<<SMD_SELECT_PIN; // Select - high - _delay_us(10); + _delay_us(50); gamepad_data_high = ((SMD_DATA_PORT_PIN>>SMD_DATA0_PIN)&1) | (((SMD_DATA_PORT_PIN>>SMD_DATA1_PIN)&1)<<1) | (((SMD_DATA_PORT_PIN>>SMD_DATA2_PIN)&1)<<2) @@ -175,7 +175,7 @@ int main() but_dat[5] = 0b11111111; // BZL BB BY BA BX BZR BDL BDU int x = 0; int y = 0; - int b; + int b, c; #ifdef N64_ENABLED uint8_t n64_data[4]; @@ -340,68 +340,71 @@ int main() } } #endif -#ifdef SMD_ENABLED - uint16_t smd_gamepad_data = get_smd_gamepad(); - if (smd_gamepad_data & 0b00001111) // 3-button mode +#ifdef SMD_ENABLED + for (c = 0; c < 4; c++) { - for (b = 0; b <= 13; b++) + uint16_t smd_gamepad_data = get_smd_gamepad(); + if ((smd_gamepad_data & 0b00001111) || (c < 2)) // 3-button mode { - if (!((smd_gamepad_data>>b)&1)) + for (b = 0; b <= 13; b++) { - switch (b) + if (!((smd_gamepad_data>>b)&1)) { - case 0: // Up - y = 30; - break; - case 1: // Down - y = -30; - break; - case 4: // A(SMD)/Y(Classic) - PRESS_Y; - break; - case 5: // Start - PRESS_START; - break; - case 10: // Left - x = -30; - break; - case 11: // Right - x = 30; - break; - case 12: // B(SMD)/A(Classic) - PRESS_A; - break; - case 13: // C(SMD)/B(Classic) - PRESS_B; - break; + switch (b) + { + case 0: // Up + y = 30; + break; + case 1: // Down + y = -30; + break; + case 4: // A(SMD)/Y(Classic) + PRESS_Y; + break; + case 5: // Start + PRESS_START; + break; + case 10: // Left + x = -30; + break; + case 11: // Right + x = 30; + break; + case 12: // B(SMD)/A(Classic) + PRESS_A; + break; + case 13: // C(SMD)/B(Classic) + PRESS_B; + break; + } } } - } - } else { // 6-button mode - for (b = 4; b <= 11; b++) - { - if (!((smd_gamepad_data>>b)&1)) + } else { // 6-button mode + for (b = 4; b <= 11; b++) { - switch (b) + if (!((smd_gamepad_data>>b)&1)) { - case 4: // A(SMD)/Y(Classic) - PRESS_Y; - break; - case 5: // Start - PRESS_START; - break; - case 8: // X(SMD)/L(Classic) - PRESS_L; - break; - case 9: // Y(SMD)/X(Classic) - PRESS_X; - break; - case 10: // Z(SMD)/R(Classic) - PRESS_R; - break; - case 11: // Mode(SMD)/Select(Classic) - PRESS_SELECT; + switch (b) + { + case 4: // A(SMD)/Y(Classic) + PRESS_Y; + break; + case 5: // Start + PRESS_START; + break; + case 8: // Z(SMD)/R(Classic) + PRESS_R; + break; + case 9: // Y(SMD)/X(Classic) + PRESS_X; + break; + case 10: // X(SMD)/L(Classic) + PRESS_L; + break; + case 11: // Mode(SMD)/Select(Classic) + PRESS_SELECT; break; + } } } } diff --git a/nes2wii.hex b/nes2wii.hex index 0d15eb3..b55f764 100644 --- a/nes2wii.hex +++ b/nes2wii.hex @@ -2,7 +2,7 @@ :100010000C945C050C945C050C945C050C945C05DC :100020000C945C050C945C050C945C050C945C05CC :100030000C945C050C945C050C945C050C945C05BC -:100040000C945C050C94CA0C0C945C050C945C0537 +:100040000C945C050C94DA0B0C945C050C945C0528 :100050000C945C05A877A6E0F7435A3585E27297C1 :100060008FB71A6287380D67C7BE4F3E2076378F2D :1000700068B7A9263F2B10E3307E900E850A705199 @@ -167,9 +167,9 @@ :100A60000000000000000000000000000000000086 :100A70000000000000000000000000000000112441 :100A80001FBECFE5D4E0DEBFCDBF10E0A0E6B0E0F2 -:100A9000ECEEFBE102C005900D92A638B107D9F744 +:100A9000EEEBF9E102C005900D92A638B107D9F747 :100AA00011E0A6E8B0E001C01D92AC3AB107E1F751 -:100AB0000E94D4060C94F40D0C940000D89840E0E9 +:100AB0000E94D5060C94DD0C0C940000D89840E000 :100AC00020E030E052E4D998852F8A95F1F789B378 :100AD0008695869590E081709070022E02C0880FF6 :100AE000991F0A94E2F7482BD99A852F8A95F1F736 @@ -197,255 +197,220 @@ :100C40004F5F5F4F319644305105F1F621E030E0BF :100C5000C901089520E030E0C90108959F92AF9244 :100C6000BF92CF92DF92EF92FF920F931F93DF9884 -:100C700082E4982F9A95F1F793B203B3E3B2C3B22B -:100C8000A3B263B3DF9A8A95F1F7B3B383B323B307 -:100C900043B3E3B3A3B3AA1FAA27AA1FA295AA0F1F -:100CA000A07EB695B695B170AB2B86958695869548 -:100CB00090E081709070880F991FA82B22952F705B -:100CC00030E021703070220F331F220F331FA22B10 -:100CD00042954695477050E041705070440F551F43 -:100CE000440F551F440F551FA42BE295E695E6953A -:100CF000E370F0E0E170F070E295F295F07FFE278E -:100D0000E07FFE279A2F9E2B80E0661F6627661FD6 -:100D10006295660F607E9694969421E092226929EE -:100D200006950695069510E001701070000F111FD2 -:100D3000602BE294EFE0EE22FF2421E0E222FF2488 -:100D4000EE0CFF1CEE0CFF1C6E29C294C69457E0FB -:100D5000C522DD2421E0C222DD24CC0CDD1CCC0C1C -:100D6000DD1CCC0CDD1C6C29A294A694A69433E067 -:100D7000A322BB2421E0A222BB24A294B29420EFA0 -:100D8000B222BA24A222BA246A2970E0682B792BF5 -:100D9000CB011F910F91FF90EF90DF90CF90BF900C -:100DA000AF909F90089508953F924F925F926F92F7 -:100DB0007F928F929F92AF92BF92CF92DF92EF92EB -:100DC000FF920F931F93DF93CF93CDB7DEB72A9790 -:100DD0000FB6F894DEBF0FBECDBF83B7816083BF6F -:100DE0008B989398D49AD59ADE9AD09AD19ADA9A17 -:100DF000D79AA298A398A498A598A698A798AA9AD3 -:100E0000AB9AAC9AAD9AAE9AAF9A8FE58D838FED7F -:100E10008E838FE88F8318868FEF89878A8725E0F6 -:100E2000822E912C8C0E9D1E80E690E0B40146E649 -:100E300050E023ED36E00E94EA095E010894A11C0F -:100E4000B11C9FE5692E8FED582E0FE8402E7724B8 -:100E50007A9418E0C12ED12CB2E43B2E6D825E82D2 -:100E60004F82188679867A86F894C5010E94A60575 -:100E70007894892B09F03AC1EE24FF2400E010E0B9 -:100E80000E948005BC0141E050E016C022303105CF -:100E900009F4E0C0233031050CF042C021153105C2 -:100EA00009F4E4C02130310509F4DCC040315105BA -:100EB0000CF041C04F5F5F4F9A0121503040CB0191 -:100EC000022E02C0969587950A94E2F780FDEECF38 -:100ED0002530310509F4B7C026303105BCF2283081 -:100EE000310509F4BBC0293031055CF426303105E9 -:100EF00009F4A0C027303105C9F61EE1E12EF12C1E -:100F0000D9CF2A30310509F491C02A3031050CF4CB -:100F10009DC02B30310551F689858D7F8987CACFD9 -:100F20002330310509F48BC02430310509F0BECFE0 -:100F30000EE110E0BFCF0E945E05682F70E041E037 -:100F400050E015C02330310509F489C12430310542 -:100F50000CF062C02130310509F485C12230310521 -:100F60000CF4F1C189858F7E89874F5F5F4F9A01AD -:100F700021503040CB01022E02C0959587950A94EE -:100F8000E2F780FFDFCF483051057CF30E942E0648 -:100F9000BC018F709070892B09F07FC045E050E054 -:100FA0000DC02430310509F4AFC12530310509F4F5 -:100FB000A7C14C3051051CF54F5F5F4F9A0121507E -:100FC0003040CB01022E02C0969587950A94E2F735 -:100FD00080FDEFCF2830310509F48EC1293031056D -:100FE00004F32A30310509F483C12A3031050CF4A9 -:100FF0007BC12B303105E9F689858F7E89878D810C -:101000008E0D8D838E81800F8E83C4010E94E10935 -:10101000832D8A95F1F722CF2530310509F42CC1B3 -:10102000253031053CF50EE110E09FCF89858F7D9D -:10103000898740CF82EEE82E8FEFF82E3BCF89854F -:101040008B7F898737CF02EE1FEF34CF8A85877F6A -:101050008A8730CF89858F7E89872CCF8A858F7E3E -:101060008A8728CF8A858F7D8A8724CF8A858F7B40 -:101070008A8720CF2630310509F4F9C027303105A1 -:1010800009F081CFBEE1EB2EF12C0E942E06BC01AF -:101090008F709070892B09F481CF41E050E016C029 -:1010A0002530310509F4FEC0263031050CF0C8C0EA -:1010B0002130310509F4FEC02430310509F4F6C0B1 -:1010C000232B81F40EE110E04F5F5F4F9A01215016 -:1010D0003040CB01022E02C0969587950A94E2F724 -:1010E00080FFDECF4E3051057CF389CF8981682F98 -:1010F00070E041E050E015C02330310509F41BC118 -:10110000243031050CF090C02130310509F417C1AD -:10111000223031050CF41EC18A858F778A874F5F94 -:101120005F4F9A0121503040C601841B950BFB0193 -:1011300002C0F595E7958A95E2F7E0FDDDCF4830EE -:1011400051056CF38A81682F70E041E050E00DC0DA -:101150002230310509F4BDC02330310509F4B5C092 -:101160004830510544F54F5F5F4F9A0121503040A0 -:10117000C601841B950BFB0102C0F595E7958A9586 -:10118000E2F7E0FFEDCF2430310509F49AC02530B5 -:101190003105F4F22630310509F49FC026303105BF -:1011A0000CF48BC027303105D9F68D81806C8D838E -:1011B0008E81806C8E838B81282F30E02038310522 -:1011C00014F0205031408C81E82FF0E0E038F10538 -:1011D00014F0E050F140C901880F991F820F931F4E -:1011E0009C01220F331F220F331F280F391F220F9C -:1011F000331FC90160E570E00E94C00D7B01CF0183 -:10120000880F991F8E0F9F1F9C01220F331F220FE3 -:10121000331F280F391F220F331FC90160E570E00B -:101220000E94C00D8B012CCE2530310509F47FC002 -:10123000253031050CF06CC08A858E7F8A876FCF90 -:101240002B30310559F12C303105CCF42A303105E1 -:1012500009F048CFF2EEEF2EFFEFFF2E35CF898554 -:101260008B7F898782CE8A858F7B8A877ECEA2EE0E -:10127000EA2EAFEFFA2E79CE02EE1FEF76CE2C30AB -:10128000310541F02D30310509F02CCF8A858F7B57 -:101290008A87B5CE8A858F7E8A8716CFEEE1EE2EBD -:1012A000F12C12CF89858B7F89870ECF8A858F7D20 -:1012B0008A870ACF02EE1FEF07CF8F81807E8F8350 -:1012C00052CF8F818F618F834ECF89858D7F8987A4 -:1012D0004ACF89858F7D898746CF8D818F738D8396 -:1012E0008E818F738E833FCF8A85877F8A8764CE76 -:1012F00089858D7F898760CE89858F7D89875CCE42 -:1013000089858B7F898758CE8A858F7D8A8754CE41 -:101310002630310541F02730310509F010CF89859D -:101320008F7789870FCF8A858D7F8A87F8CE8985C9 -:101330008F7B8987F4CE89858B7F8987F0CE8A85DC -:101340008F7B8A87ECCE232B09F01DCE8A858F7E7A -:101350008A870BCE232B09F0F2CE8A858F7E8A876F -:10136000DECE1092A9011092A801880F82B985E4FF -:1013700086BF78940895882319F485E886BF089578 -:1013800085EC86BF0895282F30E070E088E090E07B -:10139000861B970BA90102C0440F551F8A95E2F7DF -:1013A000CA0102C0359527956A95E2F7822B089508 -:1013B000863008F00895E0918600F0918700099545 -:1013C0000895A8EAB0E0FC0186E001900D928150FA -:1013D000E1F708950F931F93182F092F309387007B -:1013E00020938600A8EAB0E0FB0186E001900D9210 -:1013F0008150E1F710929801812F902F9C01D90123 -:101400002AEF30E08D91F901E855FF4F80832F5F7F -:101410003F4F81E020303807A9F7DA0120E230E0C1 -:101420008D91F901E855FF4F80832F5F3F4F2632A2 -:101430003105B1F7A898A9981092A9011092A801B6 -:1014400084EA82B985E486BF78941F910F9108954C -:101450002F923F924F925F926F927F928F929F92C4 -:10146000AF92BF92CF92DF92EF92FF920F931F93B2 -:10147000DF93CF93CDB7DEB76A970FB6F894DEBF90 -:101480000FBECDBF44E5642E40E0742E88249E013B -:10149000295F3F4F388F2F8B3DE0232E312C2C0EB0 -:1014A0003D1E28E0422E512CDE011196F30184915D -:1014B0008D9331964F89588DA417B507C1F780E0F9 -:1014C00090E0FC01E857FF4FE081F0E0E258FF4F69 -:1014D000E491D101A80FB91FEC9301968A309105D0 -:1014E00081F7AA88CF8429812A2530E04C2D4770C6 -:1014F00050E09E88B988C201841B950BB90102C0D7 -:10150000660F771F8A95E2F7CB0102C035952795C4 -:101510004A95E2F7822B89198B258F83EE84DD842F -:101520002A812E2530E04D2D477050E0AC89C20154 -:10153000841B950BF90102C0EE0FFF1F8A95E2F79D -:10154000CF0102C0359527954A95E2F7822B8A197B -:101550008A278887EB892B812E2730E00D89077039 -:1015600010E0B201601B710BC901062E02C0880F8A -:10157000991F0A94E2F7002E02C0359527950A9428 -:10158000E2F7822B8C198D2589872C812B2530E061 -:101590004A2F4770842F90E09A8F898FD888C20194 -:1015A000498D5A8D841B950BA90102C0440F551F0C -:1015B0008A95E2F7CA01098C02C0359527950A94ED -:1015C000E2F7822B8D198C258A878D81E826FF24EE -:1015D000E770F0E0C2018E1B9F0B970102C0220F43 -:1015E000331F8A95E2F7C90102C0F594E794EA95A2 -:1015F000E2F78E298D198B258B878E81A827B0E085 -:10160000AD0102C0440F551F6A95E2F7BA0102C04E -:10161000B595A7950A95E2F76A2B6A1969256C8733 -:10162000CE01079662E970E046E050E00E94E70DC7 -:10163000009749F0839466E070E0660E771E77E0CD -:10164000871609F031CF282D30E02F5F3F4F522F02 -:10165000442780919600FA01E80FF11DE258FF4FF0 -:1016600094912F5F3F4F322F222780918B00F901F9 -:10167000E80FF11DE258FF4FE491E927E09398004D -:1016800080919400FA01E80FF11DE258FF4F949108 -:1016900080918D00F901E80FF11DE258FF4FE491B0 -:1016A000E927E093990080919700FA01E80FF11D76 -:1016B000E258FF4F949180918F00F901E80FF11DDE -:1016C000E258FF4FE491E927E0939A00809192005D -:1016D000FA01E80FF11DE258FF4F949180918A00C2 -:1016E000F901E80FF11DE258FF4FE491E927E0937B -:1016F0009B0080919300FA01E80FF11DE258FF4F23 -:10170000949180918C00F901E80FF11DE258FF4F90 -:10171000E491E927E0939C0080919500FA01E80F9D -:10172000F11DE258FF4F949180919100F901E80F6B -:10173000F11DE258FF4FE491E927E0939D0080916D -:101740008800FA01E80FF11DE258FF4F9491809153 -:101750008E00F901E80FF11DE258FF4FE491E927EF -:10176000E0939E0080918900FA01E80FF11DE25894 -:10177000FF4F949180919000F901E80FF11DE2581C -:10178000FF4FE491E927E0939F0080919200FA01D6 -:10179000E80FF11DE258FF4F949180918900F90103 -:1017A000E80FF11DE258FF4FE491E927E093A00014 -:1017B00080919700FA01E80FF11DE258FF4F9491D4 -:1017C00080918C00F901E80FF11DE258FF4FE49180 -:1017D000E927E093A10080919500FA01E80FF11D3F -:1017E000E258FF4F949180918800F901E80FF11DB4 -:1017F000E258FF4FE491E927E093A2008091940022 -:10180000FA01E80FF11DE258FF4F94918091910089 -:10181000F901E80FF11DE258FF4FE491E927E09349 -:10182000A30080919600FA01E80FF11DE258FF4FE6 -:10183000949180918F00F901E80FF11DE258FF4F5C -:10184000E491E927E093A40080919300FA01E80F66 -:10185000F11DE258FF4F949180919000F901E80F3B -:10186000F11DE258FF4FE491E927E093A500809134 -:101870008B00FA01E80FF11DE258FF4F949180911F -:101880008D00F901E80FF11DE258FF4FE491E927BF -:10189000E093A60080918A00480F511D42585F4F87 -:1018A000FA01949180918E00280F311D22583F4FEC -:1018B000F901849189278093A7006A960FB6F8945E -:1018C000DEBF0FBECDBFCF91DF911F910F91FF9073 -:1018D000EF90DF90CF90BF90AF909F908F907F90D0 -:1018E0006F905F904F903F902F900895982F805465 -:1018F0008630A0F420E430E049E450E0FA01E21B35 -:10190000F30BD901A855BF4F8C91E857FF4F808347 -:101910002F5F3F4F2634310589F70895892F86546C -:101920008630C8F48091EE0080938B008091EF00A8 -:1019300080938A008091F000809389008091F1006B -:10194000809388008091F200809397008091F3004B -:10195000809396000895892F8C548430B8F4809138 -:10196000F400809395008091F5008093940080911D -:10197000F600809393008091F70080939200892F66 -:1019800090E0860F911D8035910509F008950E9421 -:10199000280A08951F920F920FB60F9211242F93C9 -:1019A0003F934F935F936F937F938F939F93AF93E7 -:1019B000BF93EF93FF9381B190E0887F907080395F -:1019C000910509F480C08139910514F1803B91059E -:1019D00009F462C0813B910584F5803A910509F4D0 -:1019E00064C0883A910509F457C085E886BFFF9125 -:1019F000EF91BF91AF919F918F917F916F915F9187 -:101A00004F913F912F910F900FBE0F901F901895FF -:101A10008037910569F081379105B4F180389105DF -:101A200009F451C08838910501F388379105E9F62A -:101A30001092AA0185EC86BFDACF803C910509F1AE -:101A4000883C9105F1F0883B910579F680919801E9 -:101A50008A3A09F449C0E091A801F091A901E8553A -:101A6000FF4F808183B98091A8019091A9010196CF -:101A70009093A9018093A8018091AB018F5F80931F -:101A8000AB0185EC86BFB3CF8036910589F28836ED -:101A9000910509F0AACFCCCF8091A8019091A9011E -:101AA0000E94D8091092AB01D1CF8091A8019091EA -:101AB000A9012091AB016091AB01821B0E94760CC1 -:101AC00085EC86BF94CF8091AA01882351F123B180 -:101AD000809198018A3A89F1E091A801F091A901D9 -:101AE000E855FF4F2083BFCFE091A801F091A901F5 -:101AF000E855FF4F8081E091A801F091A901E770BE -:101B0000F070E856FF4F2081E091A801F091A90103 -:101B1000E770F070E056FF4F9081821B892783B9F0 -:101B2000A2CF83B190E09093A9018093A80181E0B6 -:101B30008093AA011092AB01A4CF8091A80190914B -:101B4000A901803F910541F2A091A801B091A9019E -:101B5000E091A801F091A901E770F070E056FF4F05 -:101B60008081E091A801F091A901E770F070E8563A -:101B7000FF4F90818227890FA855BF4F8C9373CF59 -:101B800097FB092E07260AD077FD04D00CD006D08B -:101B900000201AF4709561957F4F0895F6F790959F -:101BA00081959F4F0895AA1BBB1B51E107C0AA1F37 -:101BB000BB1FA617B70710F0A61BB70B881F991FEE -:101BC0005A95A9F780959095BC01CD010895FB0128 -:101BD000DC0104C08D910190801921F441505040E6 -:0C1BE000C8F7881B990B0895F894FFCFFC -:101BEC000000A42001010000000000000000000023 -:101BFC0000000000000000000000000000000000D9 -:061C0C00000000000000D2 +:100C70008AEF90E0FC013197F1F793B203B3E3B24E +:100C8000C3B2A3B263B3DF9A0197F1F7B3B383B3EF +:100C900023B343B3E3B3A3B3AA1FAA27AA1FA29502 +:100CA000AA0FA07EB695B695B170AB2B86958695AA +:100CB000869590E081709070880F991FA82B2295DF +:100CC0002F7030E021703070220F331F220F331F3E +:100CD000A22B42954695477050E041705070440FEA +:100CE000551F440F551F440F551FA42BE295E69541 +:100CF000E695E370F0E0E170F070E295F295F07F38 +:100D0000FE27E07FFE279A2F9E2B80E0661F662736 +:100D1000661F6295660F607E9694969421E09222FB +:100D2000692906950695069510E001701070000F70 +:100D3000111F602BE294EFE0EE22FF2421E0E2227B +:100D4000FF24EE0CFF1CEE0CFF1C6E29C294C6940F +:100D500057E0C522DD2421E0C222DD24CC0CDD1CBD +:100D6000CC0CDD1CCC0CDD1C6C29A294A694A694A2 +:100D700033E0A322BB2421E0A222BB24A294B2949C +:100D800020EFB222BA24A222BA246A2970E0682B8A +:100D9000792BCB011F910F91FF90EF90DF90CF90B7 +:100DA000BF90AF909F90089508955F926F927F9249 +:100DB0008F929F92AF92BF92CF92DF92EF92FF926B +:100DC0000F931F93DF93CF9300D000D000D0CDB707 +:100DD000DEB783B7816083BFD49AD59ADE9AD09A62 +:100DE000D19ADA9AD79AA298A398A498A598A69887 +:100DF000A798AA9AAB9AAC9AAD9AAE9AAF9A8FE599 +:100E000089838FED8A838FE88B831C828FEF8D839C +:100E10008E8380E690E05E010894A11CB11CB501B0 +:100E200046E650E024ED36E00E94FA089FE5892E60 +:100E30008FED782E0FE8602E99249A9412E4512EAB +:100E400089827A826B821C829D829E820E948005AA +:100E5000BC01EE24FF24CC24DD2441E050E016C088 +:100E60002230310509F44CC1233031050CF042C069 +:100E70002115310509F45DC12130310509F455C151 +:100E8000403151050CF042C04F5F5F4F9A01215035 +:100E90003040CB01022E02C0969587950A94E2F766 +:100EA00080FDEECF2530310509F421C12630310512 +:100EB000BCF22830310509F434C1293031055CF425 +:100EC0002630310509F428C127303105C9F6FEE185 +:100ED000EF2EF12CD9CF2A30310509F419C12A306F +:100EE00031050CF411C12B30310551F68D818D7F08 +:100EF0008D83CACF2330310509F4FEC0243031057B +:100F000009F0BECFAEE1CA2ED12CBECF0E945E0545 +:100F1000682F70E041E050E015C02330310509F43E +:100F20001CC1243031050CF0C3C02130310509F457 +:100F30001DC1223031050CF41DC18D818F7E8D8342 +:100F40004F5F5F4F9A0121503040CB01022E02C00B +:100F5000959587950A94E2F780FFDFCF48305105D9 +:100F60007CF300E010E00E942E06BC018F709070B0 +:100F7000892B09F048C0023011050CF444C045E04B +:100F800050E00DC02430310509F4A1C025303105F1 +:100F900009F499C04C3051051CF54F5F5F4F9A0121 +:100FA00021503040CB01022E02C0969587950A94BD +:100FB000E2F780FDEFCF2830310509F48CC02930ED +:100FC000310504F32A30310509F48DC02A3031058A +:100FD0000CF485C02B303105E9F68D818F7E8D8331 +:100FE0000F5F1F4F0430110509F0BDCF89818E0DB1 +:100FF00089838A818C0D8A83C5010E94F108852D21 +:101000008A95F1F71DCF41E050E015C0253031053C +:1010100009F441C026303105F4F42130310509F4DA +:1010200042C024303105D9F1232B89F4EEE1CE2ED4 +:10103000D12C4F5F5F4F9A0121503040CB01022EDF +:1010400002C0969587950A94E2F780FFDFCF4E3075 +:1010500051057CF3C5CF2B303105C9F02C3031055B +:1010600044F42A30310599F782EEE82E8FEFF82EFE +:10107000E0CF2C30310539F02D30310541F78E812C +:101080008F7B8E83ADCF8E818F7E8E83D2CFBEE15C +:10109000EB2EF12CCECF8D818B7F8D83CACF8E81AD +:1010A0008F7D8E83C6CF92EEC92E9FEFD92EC1CFF2 +:1010B0002530310509F455C025303105F4F5FEE140 +:1010C000CF2ED12C3DCF8D818B7F8D8366CF8E81AE +:1010D0008F7D8E8362CF8D818D7F8D835ECF8E815C +:1010E000877F8E835ACF8D818F7D8D8356CFB2EED1 +:1010F000CB2EBFEFDB2EC8CE8D818B7F8D83C4CEF0 +:101100008D818F7E8D83C0CE8E81877F8E83BCCE76 +:101110008D818F7D8D83B8CEA2EEEA2EAFEFFA2EB1 +:10112000B3CE8E818F7E8E83AFCE8E818F7D8E8368 +:10113000ABCE8E818F7B8E83A7CE2630310541F0DA +:101140002730310509F00ACF3EE1E32EF12C09CF1B +:1011500022EEE22E2FEFF22EF3CE8D818B7F8D8348 +:10116000EFCEE2EECE2EEFEFDE2EEACE8E818F7B3B +:101170008E83E6CE232B09F0F1CE8E818F7E8E8377 +:10118000DFCE1092A9011092A801880F82B985E4E0 +:1011900086BF78940895882319F485E886BF08955A +:1011A00085EC86BF0895282F30E070E088E090E05D +:1011B000861B970BA90102C0440F551F8A95E2F7C1 +:1011C000CA0102C0359527956A95E2F7822B0895EA +:1011D000863008F00895E0918600F0918700099527 +:1011E0000895A8EAB0E0FC0186E001900D928150DC +:1011F000E1F708950F931F93182F092F309387005D +:1012000020938600A8EAB0E0FB0186E001900D92F1 +:101210008150E1F710929801812F902F9C01D90104 +:101220002AEF30E08D91F901E855FF4F80832F5F61 +:101230003F4F81E020303807A9F7DA0120E230E0A3 +:101240008D91F901E855FF4F80832F5F3F4F263284 +:101250003105B1F7A898A9981092A9011092A80198 +:1012600084EA82B985E486BF78941F910F9108952E +:101270002F923F924F925F926F927F928F929F92A6 +:10128000AF92BF92CF92DF92EF92FF920F931F9394 +:10129000DF93CF93CDB7DEB76A970FB6F894DEBF72 +:1012A0000FBECDBF44E5642E40E0742E88249E011D +:1012B000295F3F4F388F2F8B3DE0232E312C2C0E92 +:1012C0003D1E28E0422E512CDE011196F30184913F +:1012D0008D9331964F89588DA417B507C1F780E0DB +:1012E00090E0FC01E857FF4FE081F0E0E258FF4F4B +:1012F000E491D101A80FB91FEC9301968A309105B2 +:1013000081F7AA88CF8429812A2530E04C2D4770A7 +:1013100050E09E88B988C201841B950BB90102C0B8 +:10132000660F771F8A95E2F7CB0102C035952795A6 +:101330004A95E2F7822B89198B258F83EE84DD8411 +:101340002A812E2530E04D2D477050E0AC89C20136 +:10135000841B950BF90102C0EE0FFF1F8A95E2F77F +:10136000CF0102C0359527954A95E2F7822B8A195D +:101370008A278887EB892B812E2730E00D8907701B +:1013800010E0B201601B710BC901062E02C0880F6C +:10139000991F0A94E2F7002E02C0359527950A940A +:1013A000E2F7822B8C198D2589872C812B2530E043 +:1013B0004A2F4770842F90E09A8F898FD888C20176 +:1013C000498D5A8D841B950BA90102C0440F551FEE +:1013D0008A95E2F7CA01098C02C0359527950A94CF +:1013E000E2F7822B8D198C258A878D81E826FF24D0 +:1013F000E770F0E0C2018E1B9F0B970102C0220F25 +:10140000331F8A95E2F7C90102C0F594E794EA9583 +:10141000E2F78E298D198B258B878E81A827B0E066 +:10142000AD0102C0440F551F6A95E2F7BA0102C030 +:10143000B595A7950A95E2F76A2B6A1969256C8715 +:10144000CE01079662E970E046E050E00E94D00CC1 +:10145000009749F0839466E070E0660E771E77E0AF +:10146000871609F031CF282D30E02F5F3F4F522FE4 +:10147000442780919600FA01E80FF11DE258FF4FD2 +:1014800094912F5F3F4F322F222780918B00F901DB +:10149000E80FF11DE258FF4FE491E927E09398002F +:1014A00080919400FA01E80FF11DE258FF4F9491EA +:1014B00080918D00F901E80FF11DE258FF4FE49192 +:1014C000E927E093990080919700FA01E80FF11D58 +:1014D000E258FF4F949180918F00F901E80FF11DC0 +:1014E000E258FF4FE491E927E0939A00809192003F +:1014F000FA01E80FF11DE258FF4F949180918A00A4 +:10150000F901E80FF11DE258FF4FE491E927E0935C +:101510009B0080919300FA01E80FF11DE258FF4F04 +:10152000949180918C00F901E80FF11DE258FF4F72 +:10153000E491E927E0939C0080919500FA01E80F7F +:10154000F11DE258FF4F949180919100F901E80F4D +:10155000F11DE258FF4FE491E927E0939D0080914F +:101560008800FA01E80FF11DE258FF4F9491809135 +:101570008E00F901E80FF11DE258FF4FE491E927D1 +:10158000E0939E0080918900FA01E80FF11DE25876 +:10159000FF4F949180919000F901E80FF11DE258FE +:1015A000FF4FE491E927E0939F0080919200FA01B8 +:1015B000E80FF11DE258FF4F949180918900F901E5 +:1015C000E80FF11DE258FF4FE491E927E093A000F6 +:1015D00080919700FA01E80FF11DE258FF4F9491B6 +:1015E00080918C00F901E80FF11DE258FF4FE49162 +:1015F000E927E093A10080919500FA01E80FF11D21 +:10160000E258FF4F949180918800F901E80FF11D95 +:10161000E258FF4FE491E927E093A2008091940003 +:10162000FA01E80FF11DE258FF4F9491809191006B +:10163000F901E80FF11DE258FF4FE491E927E0932B +:10164000A30080919600FA01E80FF11DE258FF4FC8 +:10165000949180918F00F901E80FF11DE258FF4F3E +:10166000E491E927E093A40080919300FA01E80F48 +:10167000F11DE258FF4F949180919000F901E80F1D +:10168000F11DE258FF4FE491E927E093A500809116 +:101690008B00FA01E80FF11DE258FF4F9491809101 +:1016A0008D00F901E80FF11DE258FF4FE491E927A1 +:1016B000E093A60080918A00480F511D42585F4F69 +:1016C000FA01949180918E00280F311D22583F4FCE +:1016D000F901849189278093A7006A960FB6F89440 +:1016E000DEBF0FBECDBFCF91DF911F910F91FF9055 +:1016F000EF90DF90CF90BF90AF909F908F907F90B2 +:101700006F905F904F903F902F900895982F805446 +:101710008630A0F420E430E049E450E0FA01E21B16 +:10172000F30BD901A855BF4F8C91E857FF4F808329 +:101730002F5F3F4F2634310589F70895892F86544E +:101740008630C8F48091EE0080938B008091EF008A +:1017500080938A008091F000809389008091F1004D +:10176000809388008091F200809397008091F3002D +:10177000809396000895892F8C548430B8F480911A +:10178000F400809395008091F500809394008091FF +:10179000F600809393008091F70080939200892F48 +:1017A00090E0860F911D8035910509F008950E9403 +:1017B000380908951F920F920FB60F9211242F939C +:1017C0003F934F935F936F937F938F939F93AF93C9 +:1017D000BF93EF93FF9381B190E0887F9070803941 +:1017E000910509F480C08139910514F1803B910580 +:1017F00009F462C0813B910584F5803A910509F4B2 +:1018000064C0883A910509F457C085E886BFFF9106 +:10181000EF91BF91AF919F918F917F916F915F9168 +:101820004F913F912F910F900FBE0F901F901895E1 +:101830008037910569F081379105B4F180389105C1 +:1018400009F451C08838910501F388379105E9F60C +:101850001092AA0185EC86BFDACF803C910509F190 +:10186000883C9105F1F0883B910579F680919801CB +:101870008A3A09F449C0E091A801F091A901E8551C +:10188000FF4F808183B98091A8019091A9010196B1 +:101890009093A9018093A8018091AB018F5F809301 +:1018A000AB0185EC86BFB3CF8036910589F28836CF +:1018B000910509F0AACFCCCF8091A8019091A90100 +:1018C0000E94E8081092AB01D1CF8091A8019091BD +:1018D000A9012091AB016091AB01821B0E94860B94 +:1018E00085EC86BF94CF8091AA01882351F123B162 +:1018F000809198018A3A89F1E091A801F091A901BB +:10190000E855FF4F2083BFCFE091A801F091A901D6 +:10191000E855FF4F8081E091A801F091A901E7709F +:10192000F070E856FF4F2081E091A801F091A901E5 +:10193000E770F070E056FF4F9081821B892783B9D2 +:10194000A2CF83B190E09093A9018093A80181E098 +:101950008093AA011092AB01A4CF8091A80190912D +:10196000A901803F910541F2A091A801B091A90180 +:10197000E091A801F091A901E770F070E056FF4FE7 +:101980008081E091A801F091A901E770F070E8561C +:10199000FF4F90818227890FA855BF4F8C9373CF3B +:1019A000FB01DC0104C08D910190801921F44150AC +:0E19B0005040C8F7881B990B0895F894FFCF9C +:1019BE000000A42001010000000000000000000053 +:1019CE000000000000000000000000000000000009 +:0619DE0000000000000003 :00000001FF |