From 6577b4b85491695b181210b7c145ec506584926d Mon Sep 17 00:00:00 2001 From: Alexey 'Cluster' Avdyukhin Date: Mon, 27 Jan 2014 06:07:33 +0400 Subject: Now you can hold Start+A+B for few seconds to change mode. --- main.c | 87 +++++++--- nes2wii.hex | 514 ++++++++++++++++++++++++++++++++---------------------------- 2 files changed, 338 insertions(+), 263 deletions(-) diff --git a/main.c b/main.c index 98d5584..cda2dbc 100644 --- a/main.c +++ b/main.c @@ -1,8 +1,10 @@ #include "nes2wii.h" #include "defines.h" #include +#include #include "wiimote.h" + // classic controller id const unsigned char classic_controller_id[6] = {0x00, 0x00, 0xA4, 0x20, 0x01, 0x01}; @@ -149,6 +151,10 @@ int main() wm_init((void*)classic_controller_id, but_dat, (void*)cal_data, wiimote_query); + uint8_t mode = eeprom_read_byte((void*)0); // current mode + if (mode > 2) mode = 0; + int mode_change_timer = 0; // buttons combination hold time + while(1) { but_dat[0] = 0b01011111; // RX<4:3> LX<5:0> @@ -160,6 +166,7 @@ int main() int x = 0; int y = 0; int b, c; + int mode_change_counter = 0; // how many spetial buttons pressed GREEN_OFF; #ifdef N64_ENABLED @@ -254,6 +261,7 @@ int main() { case 0: // B PRESS_B; + mode_change_counter++; break; case 1: // Y PRESS_Y; @@ -263,25 +271,27 @@ int main() break; case 3: // Start PRESS_START; + mode_change_counter++; break; case 4: // Up - y = 30; - PRESS_UP; + if ((mode == 0) || (mode == 1)) y = 30; + if ((mode == 0) || (mode == 2)) PRESS_UP; break; case 5: // Down - y = -30; - PRESS_DOWN; + if ((mode == 0) || (mode == 1)) y = -30; + if ((mode == 0) || (mode == 2)) PRESS_DOWN; break; case 6: // Left - x = -30; - PRESS_LEFT; + if ((mode == 0) || (mode == 1)) x = -30; + if ((mode == 0) || (mode == 2)) PRESS_LEFT; break; case 7: // Right - x = 30; - PRESS_RIGHT; + if ((mode == 0) || (mode == 1)) x = 30; + if ((mode == 0) || (mode == 2)) PRESS_RIGHT; break; case 8: // A PRESS_A; + mode_change_counter++; break; case 9: // X PRESS_X; @@ -307,31 +317,34 @@ int main() { case 0: // A PRESS_A; + mode_change_counter++; break; case 1: // B PRESS_B; + mode_change_counter++; break; case 2: // Select PRESS_SELECT; break; case 3: // Start PRESS_START; + mode_change_counter++; break; case 4: // Up - y = 30; - PRESS_UP; + if ((mode == 0) || (mode == 1)) y = 30; + if ((mode == 0) || (mode == 2)) PRESS_UP; break; case 5: // Down - y = -30; - PRESS_DOWN; + if ((mode == 0) || (mode == 1)) y = -30; + if ((mode == 0) || (mode == 2)) PRESS_DOWN; break; case 6: // Left - x = -30; - PRESS_LEFT; + if ((mode == 0) || (mode == 1)) x = -30; + if ((mode == 0) || (mode == 2)) PRESS_LEFT; break; case 7: // Right - x = 30; - PRESS_RIGHT; + if ((mode == 0) || (mode == 1)) x = 30; + if ((mode == 0) || (mode == 2)) PRESS_RIGHT; break; } } @@ -350,36 +363,39 @@ int main() switch (b) { case 0: // Up - y = 30; - PRESS_UP; + if ((mode == 0) || (mode == 1)) y = 30; + if ((mode == 0) || (mode == 2)) PRESS_UP; GREEN_ON; break; case 1: // Down - y = -30; - PRESS_DOWN; + if ((mode == 0) || (mode == 1)) y = -30; + if ((mode == 0) || (mode == 2)) PRESS_DOWN; GREEN_ON; break; case 4: // A(SMD)/Y(Classic) PRESS_Y; GREEN_ON; + if (c == 0) mode_change_counter++; break; case 5: // Start PRESS_START; GREEN_ON; + if (c == 0) mode_change_counter++; break; case 10: // Left - x = -30; - PRESS_LEFT; + if ((mode == 0) || (mode == 1)) x = -30; + if ((mode == 0) || (mode == 2)) PRESS_LEFT; GREEN_ON; break; case 11: // Right - x = 30; - PRESS_RIGHT; + if ((mode == 0) || (mode == 1)) x = 30; + if ((mode == 0) || (mode == 2)) PRESS_RIGHT; GREEN_ON; break; case 12: // B(SMD)/B(Classic) PRESS_B; GREEN_ON; + if (c == 0) mode_change_counter++; break; case 13: // C(SMD)/A(Classic) PRESS_A; @@ -431,6 +447,29 @@ int main() _delay_us(10); if (++red_led_timer >= 10) RED_OFF; + if (mode_change_counter == 3) // A+B+Start pressed? + { + mode_change_timer++; + if (mode_change_timer >= 2000) // For a long time? + { + mode_change_timer = 0; + mode++; // Changing current mode... + if (mode > 2) mode = 0; + eeprom_write_byte((void*)0, mode); + // Blinking green led indicating new mode... + GREEN_OFF; + _delay_ms(500); + int m; + for (m = 0; m <= mode; m++) + { + GREEN_ON; + _delay_ms(500); + GREEN_OFF; + _delay_ms(500); + } + _delay_ms(1000); + } + } else mode_change_timer = 0; } return 0; } diff --git a/nes2wii.hex b/nes2wii.hex index 76b1028..2fe3812 100644 --- a/nes2wii.hex +++ b/nes2wii.hex @@ -2,7 +2,7 @@ :100010000C945C050C945C050C945C050C945C05DC :100020000C945C050C945C050C945C050C945C05CC :100030000C945C050C945C050C945C050C945C05BC -:100040000C945C050C94270D0C945C050C945C05D9 +:100040000C945C050C94310E0C945C050C945C05CE :100050000C945C05A877A6E0F7435A3585E27297C1 :100060008FB71A6287380D67C7BE4F3E2076378F2D :1000700068B7A9263F2B10E3307E900E850A705199 @@ -167,9 +167,9 @@ :100A60000000000000000000000000000000000086 :100A70000000000000000000000000000000112441 :100A80001FBECFE5D4E0DEBFCDBF10E0A0E6B0E0F2 -:100A9000E6EAFCE102C005900D92A638B107D9F74D +:100A9000E4EEFEE102C005900D92A638B107D9F749 :100AA00011E0A6E8B0E001C01D92AE3AB107E1F74F -:100AB0000E94DC060C94510E0C940000D89840E083 +:100AB0000E94DC060C94700F0C940000D89840E063 :100AC00020E030E052E4D998852F8A95F1F789B378 :100AD0008695869590E081709070022E02C0880FF6 :100AE000991F0A94E2F7482BD99A852F8A95F1F736 @@ -220,244 +220,280 @@ :100DB00087001092860008952F923F924F925F9283 :100DC0006F927F928F929F92AF92BF92CF92DF925B :100DD000EF92FF920F931F93DF93CF93CDB7DEB7C0 -:100DE0002A970FB6F894DEBF0FBECDBFBC9ABB9A50 +:100DE0002C970FB6F894DEBF0FBECDBFBC9ABB9A4E :100DF000C49A83B7816083BF8B989398D49AD59A0D :100E0000DE9AD09AD19ADA9AD79AA298A398A498FF :100E1000A598A698A798AA9AAB9AAC9AAD9AAE9ABA :100E2000AF9A8FE58D838FED8E838FE88F83188641 -:100E30008FEF89878A87A5E06A2E712C6C0E7D1E44 -:100E400080E690E0B30146E650E026ED36E00E94F1 -:100E5000470A4E010894811C911CFFE55F2EEFEDBF -:100E60004E2E7FE8372E22242A9468E0A62EB12C3D -:100E70005D824E823F82188629862A86C398F8941E -:100E8000C4010E94A6057894892B09F0C4C1CC2422 -:100E9000DD24EE24FF240E948005BC0141E050E0E7 -:100EA00016C02230310509F497C1233031050CF00A -:100EB00046C02115310509F49BC12130310509F4E3 -:100EC00093C1403151050CF049C04F5F5F4F9A010B -:100ED00021503040CB01022E02C0969587950A948E -:100EE000E2F780FDEECFC39A2530310509F468C1E1 -:100EF00026303105B4F22830310509F471C12930AA -:100F0000310574F42630310509F44EC1273031051E -:100F1000C1F689858F7789872EE1C22ED12CD5CF56 -:100F20002A30310509F43CC12A3031050CF450C196 -:100F30002B30310531F689858D7F8987C6CF2330E7 -:100F4000310509F439C12430310509F0BACF8A8559 -:100F50008E7F8A87FEE1EF2EF12CB7CF0E945E05CF -:100F6000682F70E041E050E016C0C39A233031058D -:100F700009F4FCC1243031050CF0EAC02130310500 -:100F800009F408C2223031050CF43AC289858F7EFB -:100F900089874F5F5F4F9A0121503040CB01022E6D -:100FA00002C0959587950A94E2F780FFDECF48301E -:100FB00051057CF300E010E00E943006BC018F7008 -:100FC0009070892B09F05AC0023011050CF456C0FC -:100FD00045E050E00DC02430310509F4DCC0253077 -:100FE000310509F4D3C04C30510524F54F5F5F4FF4 -:100FF0009A0121503040CB01022E02C09695879570 -:101000000A94E2F780FDEFCF2830310509F4B9C02A -:101010002930310504F32A30310509F4A8C02A30FB -:1010200031050CF4A9C02B303105E9F689858F7E96 -:101030008987C39A0F5F1F4F0430110509F0BCCF99 -:101040008D818C0D8D838E818E0D8E83C3010E94C8 -:101050003E0A82E48A95F1F780918600909187009C -:1010600001969093870080938600809186009091EE -:1010700087000A970CF4FCCEC498FACE41E050E009 -:101080001AC02530310509F450C0263031051CF551 -:101090002130310509F453C02430310509F44AC028 -:1010A000232BA9F48A858E7F8A87C39ABEE1EB2E13 -:1010B000F12C4F5F5F4F9A0121503040CB01022E3F -:1010C00002C0969587950A94E2F780FFDACF4E30FA -:1010D00051057CF3AFCF2B303105F9F02C303105C1 -:1010E00064F42A30310599F78A858D7F8A87C39AFF -:1010F000F2EECF2EFFEFDF2EDCCF2C30310541F0AA -:101100002D30310521F78A858F7E8A87C39A92CF49 -:101110008A858F7B8A87C39ACCCF89858F77898789 -:10112000C39AEEE1CE2ED12CC4CF89858B7F8987DF -:10113000C39ABFCF8A858F7D8A87C39ABACF8985A4 -:101140008F7B8987C39AA2EEEA2EAFEFFA2EB1CF3A -:101150002530310509F416C1253031050CF04CC09D -:101160008A858E7F8A879EE1E92EF12C12CF8985B0 -:101170008F7D8987C39A3ACF8A85877F8A87C39A6A -:1011800035CF89858D7F8987C39A30CF89858B7FBD -:101190008987C39A2BCF8A858F7D8A87C39A26CF6A -:1011A00089858F7D898791CE8A858D7F8A8732EE6A -:1011B000C32E3FEFD32E89CE89858B7F898785CE3D -:1011C00089858F7B8987E2EEEE2EEFEFFE2E7DCEB6 -:1011D0008A85877F8A8779CE89858F7E898775CE34 -:1011E0008A858F7E8A8771CE8A858F7D8A876DCE2C -:1011F0008A858F7B8A8769CE2630310509F4BAC08B -:101200002730310509F0D3CE89858F7789871EE194 -:10121000C12ED12CCFCE8981682F70E041E050E003 -:1012200016C0C39A2330310509F4E2C024303105D9 -:101230000CF091C02130310509F4DEC022303105B7 -:101240000CF4E5C08A858F778A874F5F5F4F9A01DC -:1012500021503040C501841B950BFB0102C0F59560 -:10126000E7958A95E2F7E0FDDCCF483051056CF355 -:101270008A81682F70E041E050E00DC022303105D6 -:1012800009F49FC02330310509F497C04830510557 -:101290004CF54F5F5F4F9A0121503040C501841BD0 -:1012A000950BFB0102C0F595E7958A95E2F7E0FF03 -:1012B000EDCFC39A2430310509F47BC025303105C8 -:1012C000ECF22630310509F469C0263031050CF402 -:1012D0006CC027303105D1F68D81806C8D838E8175 -:1012E000806C8E838B81282F30E02038310514F0FC -:1012F000205031408C81E82FF0E0E038F10514F007 -:10130000E050F140C901880F991F820F931F9C0183 -:10131000220F331F220F331F280F391F220F331FB5 -:10132000C90160E570E00E941D0E6B01CF01880FBE -:10133000991F8E0F9F1F9C01220F331F220F331FF7 -:10134000280F391F220F331FC90160E570E00E948A -:101350001D0E7B01A0CD2530310509F445C0253097 -:1013600031059CF58A858E7F8A876FCF89858B7F33 -:1013700089870FCE8A858D7F8A8702EEC02E0FEF78 -:10138000D02E07CE89858F7B898782EEE82E8FEF5E -:10139000F82EFFCD8A858F7B8A87FBCD8D818F7359 -:1013A0008D838E818F738E8374CF8F81807E8F83A8 -:1013B00070CF8F818F618F836CCF89858D7F898777 -:1013C00068CF89858F7D898764CF2630310541F0CC -:1013D0002730310509F049CF89858F77898748CF34 -:1013E0008A858D7F8A8731CF89858F7B89872DCFAD -:1013F00089858B7F898729CF8A858F7B8A8725CFAF -:10140000232B09F0D4CD8A858F7E8A87C2CD232BEA -:1014100009F02BCF8A858F7E8A8717CF1092AB0178 -:101420001092AA01880F82B985E486BF7894089546 -:10143000882319F485E886BF089585EC86BF089552 -:10144000282F30E070E088E090E0861B970BA90120 -:1014500002C0440F551F8A95E2F7CA0102C03595B4 -:1014600027956A95E2F7822B0895863008F0089553 -:10147000E0918800F091890009950895AAEAB0E00A -:10148000FC0186E001900D928150E1F708950F93E1 -:101490001F93182F092F3093890020938800AAEA00 -:1014A000B0E0FB0186E001900D928150E1F71092CF -:1014B0009A01812F902F9C01D9012AEF30E08D9164 -:1014C000F901E655FF4F80832F5F3F4F81E02030C9 -:1014D0003807A9F7DA0120E230E08D91F901E655ED -:1014E000FF4F80832F5F3F4F26323105B1F7A89819 -:1014F000A9981092AB011092AA0184EA82B985E4FE -:1015000086BF78941F910F9108952F923F924F922A -:101510005F926F927F928F929F92AF92BF92CF9283 -:10152000DF92EF92FF920F931F93DF93CF93CDB78C -:10153000DEB76A970FB6F894DEBF0FBECDBF44E5A5 -:10154000642E40E0742E88249E01295F3F4F388F1F -:101550002F8B3DE0232E312C2C0E3D1E28E0422EF9 -:10156000512CDE011196F30184918D9331964F89B0 -:10157000588DA417B507C1F780E090E0FC01E6574D -:10158000FF4FE081F0E0E258FF4FE491D101A80F56 -:10159000B91FEC9301968A30910581F7AA88CF8410 -:1015A00029812A2530E04C2D477050E09E88B9886B -:1015B000C201841B950BB90102C0660F771F8A9583 -:1015C000E2F7CB0102C0359527954A95E2F7822BC9 -:1015D00089198B258F83EE84DD842A812E2530E0C6 -:1015E0004D2D477050E0AC89C201841B950BF90169 -:1015F00002C0EE0FFF1F8A95E2F7CF0102C03595BA -:1016000027954A95E2F7822B8A198A278887EB89E2 -:101610002B812E2730E00D89077010E0B201601B8E -:10162000710BC901062E02C0880F991F0A94E2F7B8 -:10163000002E02C0359527950A94E2F7822B8C196B -:101640008D2589872C812B2530E04A2F4770842FE8 -:1016500090E09A8F898FD888C201498D5A8D841B5A -:10166000950BA90102C0440F551F8A95E2F7CA01E4 -:10167000098C02C0359527950A94E2F7822B8D19C3 -:101680008C258A878D81E826FF24E770F0E0C2016F -:101690008E1B9F0B970102C0220F331F8A95E2F722 -:1016A000C90102C0F594E794EA95E2F78E298D19F5 -:1016B0008B258B878E81A827B0E0AD0102C0440F37 -:1016C000551F6A95E2F7BA0102C0B595A7950A952C -:1016D000E2F76A2B6A1969256C87CE01079664E9DF -:1016E00070E046E050E00E94440E009749F0839479 -:1016F00066E070E0660E771E77E0871609F031CF5E -:10170000282D30E02F5F3F4F522F442780919800C3 -:10171000FA01E80FF11DE258FF4F94912F5F3F4F00 -:10172000322F222780918D00F901E80FF11DE25838 -:10173000FF4FE491E927E0939A0080919600FA0127 -:10174000E80FF11DE258FF4F949180918F00F9014D -:10175000E80FF11DE258FF4FE491E927E0939B0069 -:1017600080919900FA01E80FF11DE258FF4F949122 -:1017700080919100F901E80FF11DE258FF4FE491CB -:10178000E927E0939C0080919400FA01E80FF11D95 -:10179000E258FF4F949180918C00F901E80FF11D00 -:1017A000E258FF4FE491E927E0939D008091950076 -:1017B000FA01E80FF11DE258FF4F949180918E00DD -:1017C000F901E80FF11DE258FF4FE491E927E0939A -:1017D0009E0080919700FA01E80FF11DE258FF4F3B -:1017E000949180919300F901E80FF11DE258FF4FA9 -:1017F000E491E927E0939F0080918A00FA01E80FC5 -:10180000F11DE258FF4F949180919000F901E80F8B -:10181000F11DE258FF4FE491E927E093A000809189 -:101820008B00FA01E80FF11DE258FF4F949180916F -:101830009200F901E80FF11DE258FF4FE491E9270A -:10184000E093A10080919400FA01E80FF11DE258A5 -:10185000FF4F949180918B00F901E80FF11DE25840 -:10186000FF4FE491E927E093A20080919900FA01EB -:10187000E80FF11DE258FF4F949180918E00F9011D -:10188000E80FF11DE258FF4FE491E927E093A30030 -:1018900080919700FA01E80FF11DE258FF4F9491F3 -:1018A00080918A00F901E80FF11DE258FF4FE491A1 -:1018B000E927E093A40080919600FA01E80FF11D5A -:1018C000E258FF4F949180919300F901E80FF11DC8 -:1018D000E258FF4FE491E927E093A500809198003A -:1018E000FA01E80FF11DE258FF4F949180919100A9 -:1018F000F901E80FF11DE258FF4FE491E927E09369 -:10190000A60080919500FA01E80FF11DE258FF4F03 -:10191000949180919200F901E80FF11DE258FF4F78 -:10192000E491E927E093A70080918D00FA01E80F88 -:10193000F11DE258FF4F949180918F00F901E80F5B -:10194000F11DE258FF4FE491E927E093A800809150 -:101950008C00480F511D42585F4FFA0194918091BD -:101960009000280F311D22583F4FF901849189279B -:101970008093A9006A960FB6F894DEBF0FBECDBF64 -:10198000CF91DF911F910F91FF90EF90DF90CF905B -:10199000BF90AF909F908F907F906F905F904F908F -:1019A0003F902F900895982F80548630A0F420E423 -:1019B00030E049E450E0FA01E21BF30BD901A655EF -:1019C000BF4F8C91E657FF4F80832F5F3F4F2634E8 -:1019D000310589F70895892F86548630C8F480919F -:1019E000F00080938D008091F10080938C008091B5 -:1019F000F20080938B008091F30080938A008091A5 -:101A0000F400809399008091F500809398000895E8 -:101A1000892F8C548430B8F48091F600809397001D -:101A20008091F700809396008091F8008093950054 -:101A30008091F90080939400892F90E0860F911D8A -:101A40008035910509F008950E94850A08951F9236 -:101A50000F920FB60F9211242F933F934F935F93E2 -:101A60006F937F938F939F93AF93BF93EF93FF9366 -:101A700081B190E0887F90708039910509F480C031 -:101A80008139910514F1803B910509F462C0813BD5 -:101A9000910584F5803A910509F464C0883A91056E -:101AA00009F457C085E886BFFF91EF91BF91AF91D0 -:101AB0009F918F917F916F915F914F913F912F9166 -:101AC0000F900FBE0F901F9018958037910569F009 -:101AD00081379105B4F18038910509F451C08838F7 -:101AE000910501F388379105E9F61092AC0185EC78 -:101AF00086BFDACF803C910509F1883C9105F1F071 -:101B0000883B910579F680919A018A3A09F449C097 -:101B1000E091AA01F091AB01E655FF4F808183B9B6 -:101B20008091AA019091AB0101969093AB018093B3 -:101B3000AA018091AD018F5F8093AD0185EC86BFD6 -:101B4000B3CF8036910589F28836910509F0AACF86 -:101B5000CCCF8091AA019091AB010E94350A1092DE -:101B6000AD01D1CF8091AA019091AB012091AD013F -:101B70006091AD01821B0E94D30C85EC86BF94CF8F -:101B80008091AC01882351F123B180919A018A3A66 -:101B900089F1E091AA01F091AB01E655FF4F208356 -:101BA000BFCFE091AA01F091AB01E655FF4F8081D4 -:101BB000E091AA01F091AB01E770F070E656FF4F9B -:101BC0002081E091AA01F091AB01E770F070EE5531 -:101BD000FF4F9081821B892783B9A2CF83B190E008 -:101BE0009093AB018093AA0181E08093AC011092A5 -:101BF000AD01A4CF8091AA019091AB01803F9105E6 -:101C000041F2A091AA01B091AB01E091AA01F0913B -:101C1000AB01E770F070EE55FF4F8081E091AA01B3 -:101C2000F091AB01E770F070E656FF4F908182278C -:101C3000890FA655BF4F8C9373CF97FB092E0726AC -:101C40000AD077FD04D00CD006D000201AF470958D -:101C500061957F4F0895F6F7909581959F4F089570 -:101C6000AA1BBB1B51E107C0AA1FBB1FA617B707C2 -:101C700010F0A61BB70B881F991F5A95A9F78095DE -:101C80009095BC01CD010895FB01DC0104C08D914C -:101C90000190801921F441505040C8F7881B990BDE -:061CA0000895F894FFCF47 -:101CA6000000A42001010000000000000000000068 -:101CB600000000000000000000000000000000001E -:061CC60000000000000018 +:100E30008FEF89878A8780E690E0BE016B5F7F4FE6 +:100E400046E650E026ED36E00E94510B80E090E04F +:100E50000E945B0FB82E82E08B1508F4ADC3FE0133 +:100E60003196FC87EB8718E0412E512CB4EFCB2E46 +:100E7000B1E0DB2E22243324AA24AA949FE59D838B +:100E8000EFEDEE83FFE8FF831886A986AA86C39854 +:100E9000F8948B859C850E94A6057894892B09F08F +:100EA000E6C166247724882499240E948005BC0129 +:100EB000EE24FF2441E050E016C02230310509F451 +:100EC000A7C1233031050CF047C02115310509F4C5 +:100ED00094C12130310509F48CC1403151050CF029 +:100EE0004BC04F5F5F4F9A0121503040CB01022E23 +:100EF00002C0969587950A94E2F780FDEECFC39ADB +:100F00002530310509F488C126303105B4F2283086 +:100F1000310509F48DC1293031057CF426303105C5 +:100F200009F48DC127303105C1F6E2E0BE1609F0A3 +:100F3000C2C289858F778987D4CF2A30310509F4D9 +:100F400073C12A3031050CF45FC12B30310529F60D +:100F500089858D7F8987C5CF2330310509F442C14A +:100F60002430310509F0B9CFF2E0BF1609F0B2C262 +:100F70008A858E7F8A87B5CF0E945E05682F70E0D4 +:100F800041E050E016C0C39A2330310509F432C263 +:100F9000243031050CF0FDC02130310509F41BC2AD +:100FA000223031050CF47DC289858F7E89874F5FA1 +:100FB0005F4F9A0121503040CB01022E02C095951F +:100FC00087950A94E2F780FFDECF483051057CF325 +:100FD00000E010E00E943006BC018F709070892BF9 +:100FE00009F061C0023011050CF45DC045E050E02D +:100FF0000DC02430310509F4E6C02530310509F46F +:10100000DDC04C30510524F54F5F5F4F9A012150F0 +:101010003040CB01022E02C0969587950A94E2F7E4 +:1010200080FDEFCF2830310509F4C3C029303105E8 +:1010300004F32A30310509F4D0C02A3031050CF40C +:10104000C7C02B303105E9F689858F7E8987C39A21 +:101050000F5F1F4F0430110509F0BCCF8D81860D45 +:101060008D838E81880D8E83CE0105960E94480B5C +:1010700082E48A95F1F7809186009091870001962D +:1010800090938700809386008091860090918700DE +:101090000A970CF0C498F3E0EF16F10409F429C2A2 +:1010A00022243324EBCE41E050E09A01215030401D +:1010B000CB01022E02C0969587950A94E2F780FD37 +:1010C00025C02530310509F44BC026303105ACF47C +:1010D0002130310509F455C02430310509F448C0E8 +:1010E000232BA1F4F2E0BF1609F08BC18A858E7F15 +:1010F0008A87C39A4F5F5F4FD8CF2B30310541F1BC +:101100002C3031057CF42A30310521F04E30510568 +:101110008CF39ECF92E0B91609F07AC18A858D7F53 +:101120008A87E7CF2C30310541F02D30310571F73A +:101130008A858F7E8A87C39A8BCF8A858F7B8A87A1 +:10114000C39A01151105B1F60894E11CF11CD2CF28 +:10115000E2E0BE1609F06CC189858F778987C9CF17 +:1011600089858B7F8987C39A0115110519F6ECCF04 +:101170008A858F7D8A87C39A0115110509F0BACF38 +:10118000E3CF82E0B81609F04BC189858F7B898750 +:10119000B0CF2530310509F425C1253031050CF0DB +:1011A00056C0F2E0BF1609F0F9C18A858E7F8A87A2 +:1011B000FECE89858D7F8987C39A26CF89858B7FCF +:1011C0008987C39A21CF8A858F7D8A87C39A1CCF4E +:1011D0008A85877F8A87C39A17CF89858F7D89877C +:1011E000C39A12CF89858B7F89870894E11CF11CF3 +:1011F00078CE8A858F7D8A8774CE8A858F7B8A8711 +:101200000894E11CF11C6DCE8A85877F8A8769CEA0 +:1012100089858F7E898765CE82E0B81609F052C134 +:1012200089858F7B89875DCE89858F7D898759CE1A +:101230008A858F7E8A870894E11CF11C52CE92E049 +:10124000B91609F04EC18A858D7F8A874ACE26302D +:10125000310509F4B8C02730310509F0B6CEE2E017 +:10126000BE1609F094C189858F778987B1CE8981AF +:10127000682F70E041E050E016C0C39A233031057A +:1012800009F40BC1243031050CF091C02130310537 +:1012900009F4FFC0223031050CF487C18A858F77AD +:1012A0008A874F5F5F4F9A0121503040C201841BF3 +:1012B000950BFB0102C0F595E7958A95E2F7E0FDF5 +:1012C000DCCF483051056CF38A81682F70E041E033 +:1012D00050E00DC02230310509F4B9C0233031058A +:1012E00009F4B1C0483051054CF54F5F5F4F9A018A +:1012F00021503040C201841B950BFB0102C0F595C3 +:10130000E7958A95E2F7E0FFEDCFC39A24303105E7 +:1013100009F4A8C025303105ECF22630310509F476 +:101320009AC0263031050CF48AC027303105D1F639 +:101330008D81806C8D838E81806C8E838B81282F34 +:1013400030E02038310514F0205031408C81E82FF6 +:10135000F0E0E038F10514F0E050F140C901880FE9 +:10136000991F820F931F9C01220F331F220F331FDF +:10137000280F391F220F331FC90160E570E00E945A +:10138000270F3B01CF01880F991F8E0F9F1F9C01D4 +:10139000220F331F220F331F280F391F220F331F35 +:1013A000C90160E570E00E94270F4B017ECD25301A +:1013B000310509F46AC0253031050CF057C08A8523 +:1013C0008E7F8A876ECF92E0B91609F0D9C08A85E0 +:1013D0008D7F8A87ECCD8A858F7B8A870894E11C74 +:1013E000F11CE5CD82E0B81609F0C3C089858F7B7A +:1013F0008987DDCD89858B7F89870894E11CF11C65 +:10140000D6CDBB2009F0FBC0EEE18E2E912C6ECE26 +:10141000BB2009F0EAC082EE682E8FEF782E7ECED8 +:10142000BB2009F0F0C022EE822E2FEF922EADCE1F +:10143000BB2009F0F5C0AEE16A2E712C8DCE8F81F4 +:10144000807E8F8352CF89858D7F89874ECF898516 +:101450008F7D89874ACF8D818F738D838E818F7326 +:101460008E8343CF8F818F618F833FCF26303105AD +:1014700041F02730310509F024CF89858F7789879E +:1014800023CF8A858D7F8A870CCF89858F7B89873B +:1014900008CF8A858F7B8A8704CF89858B7F898750 +:1014A00000CF232B09F091CD8A858F7E8A870894FF +:1014B000E11CF11C7CCDBB2009F08EC03EE1632E07 +:1014C000712C37CDBB2009F07DC0A2EE8A2EAFEF84 +:1014D0009A2EA6CEBB2009F09BC01EE1812E912C36 +:1014E00047CDBB2009F073C0E2EE6E2EEFEF7E2EEB +:1014F000AACE0894211C311C80ED281687E03806FE +:101500000CF4BCCCB39493E0B91609F4BB2480E08E +:1015100090E06B2D0E94630FC39828E833E1C60169 +:101520000197F1F721503040D1F76B2D70E040E08A +:1015300050E0C39A28E833E1C6010197F1F7215042 +:101540003040D1F7C39828E833E1C6010197F1F79D +:1015500021503040D1F74F5F5F4F641775074CF74C +:1015600020E137E2C6010197F1F721503040D1F771 +:1015700081CCBB20A9F502EE802E0FEF902E36CF46 +:10158000BB20C1F512EE612E1FEF712E20CFBB20C4 +:1015900009F042C0AEE16A2E712C65CEBB2009F085 +:1015A00043C09EE1892E912C00CE232B09F089CED9 +:1015B0008A858F7E8A8775CEBB24CE0101969C8753 +:1015C0008B8751CCB2EE8B2EBFEF9B2E8ACCF2EEE6 +:1015D0006F2EFFEF7F2E85CCFEE16F2E712C81CC1C +:1015E00082EE882E8FEF982EE2CC92EE692E9FEF3E +:1015F000792E7FCDE2EE6E2EEFEF7E2ED8CCFEE17F +:101600008F2E912C76CD32EE832E3FEF932E71CD1F +:101610000EE1802E912C65CCBEE16B2E712CD8CCC6 +:10162000BEE16B2E712C65CD2EE1822E912CBFCCAC +:101630001092AB011092AA01880F82B985E486BF8F +:1016400078940895882319F485E886BF089585EC79 +:1016500086BF0895282F30E070E088E090E0861B78 +:10166000970BA90102C0440F551F8A95E2F7CA01E2 +:1016700002C0359527956A95E2F7822B089586304A +:1016800008F00895E0918800F09189000995089587 +:10169000AAEAB0E0FC0186E001900D928150E1F7EA +:1016A00008950F931F93182F092F309389002093CB +:1016B0008800AAEAB0E0FB0186E001900D9281501B +:1016C000E1F710929A01812F902F9C01D9012AEF06 +:1016D00030E08D91F901E655FF4F80832F5F3F4F3A +:1016E00081E020303807A9F7DA0120E230E08D915F +:1016F000F901E655FF4F80832F5F3F4F26323105BA +:10170000B1F7A898A9981092AB011092AA0184EAA7 +:1017100082B985E486BF78941F910F9108952F9226 +:101720003F924F925F926F927F928F929F92AF9271 +:10173000BF92CF92DF92EF92FF920F931F93DF93AE +:10174000CF93CDB7DEB76A970FB6F894DEBF0FBE62 +:10175000CDBF44E5642E40E0742E88249E01295FAD +:101760003F4F388F2F8B3DE0232E312C2C0E3D1E0A +:1017700028E0422E512CDE011196F30184918D93C5 +:1017800031964F89588DA417B507C1F780E090E0D6 +:10179000FC01E657FF4FE081F0E0E258FF4FE49193 +:1017A000D101A80FB91FEC9301968A30910581F7FA +:1017B000AA88CF8429812A2530E04C2D477050E03B +:1017C0009E88B988C201841B950BB90102C0660FBF +:1017D000771F8A95E2F7CB0102C0359527954A9588 +:1017E000E2F7822B89198B258F83EE84DD842A8191 +:1017F0002E2530E04D2D477050E0AC89C201841B8E +:10180000950BF90102C0EE0FFF1F8A95E2F7CF0199 +:1018100002C0359527954A95E2F7822B8A198A27C7 +:101820008887EB892B812E2730E00D89077010E027 +:10183000B201601B710BC901062E02C0880F991FEF +:101840000A94E2F7002E02C0359527950A94E2F734 +:10185000822B8C198D2589872C812B2530E04A2FEE +:101860004770842F90E09A8F898FD888C201498D64 +:101870005A8D841B950BA90102C0440F551F8A95F0 +:10188000E2F7CA01098C02C0359527950A94E2F760 +:10189000822B8D198C258A878D81E826FF24E7709D +:1018A000F0E0C2018E1B9F0B970102C0220F331F75 +:1018B0008A95E2F7C90102C0F594E794EA95E2F748 +:1018C0008E298D198B258B878E81A827B0E0AD01DD +:1018D00002C0440F551F6A95E2F7BA0102C0B595E0 +:1018E000A7950A95E2F76A2B6A1969256C87CE01DC +:1018F000079664E970E046E050E00E944E0F0097C2 +:1019000049F0839466E070E0660E771E77E08716F4 +:1019100009F031CF282D30E02F5F3F4F522F442761 +:1019200080919800FA01E80FF11DE258FF4F949161 +:101930002F5F3F4F322F222780918D00F901E80F52 +:10194000F11DE258FF4FE491E927E0939A0080915E +:101950009600FA01E80FF11DE258FF4F9491809133 +:101960008F00F901E80FF11DE258FF4FE491E927DC +:10197000E0939B0080919900FA01E80FF11DE25875 +:10198000FF4F949180919100F901E80FF11DE25809 +:10199000FF4FE491E927E0939C0080919400FA01C5 +:1019A000E80FF11DE258FF4F949180918C00F901EE +:1019B000E80FF11DE258FF4FE491E927E0939D0005 +:1019C00080919500FA01E80FF11DE258FF4F9491C4 +:1019D00080918E00F901E80FF11DE258FF4FE4916C +:1019E000E927E0939E0080919700FA01E80FF11D2E +:1019F000E258FF4F949180919300F901E80FF11D97 +:101A0000E258FF4FE491E927E0939F0080918A001C +:101A1000FA01E80FF11DE258FF4F94918091900078 +:101A2000F901E80FF11DE258FF4FE491E927E09337 +:101A3000A00080918B00FA01E80FF11DE258FF4FE2 +:101A4000949180919200F901E80FF11DE258FF4F47 +:101A5000E491E927E093A10080919400FA01E80F56 +:101A6000F11DE258FF4F949180918B00F901E80F2E +:101A7000F11DE258FF4FE491E927E093A200809125 +:101A80009900FA01E80FF11DE258FF4F94918091FF +:101A90008E00F901E80FF11DE258FF4FE491E927AC +:101AA000E093A30080919700FA01E80FF11DE2583E +:101AB000FF4F949180918A00F901E80FF11DE258DF +:101AC000FF4FE491E927E093A40080919600FA018A +:101AD000E80FF11DE258FF4F949180919300F901B6 +:101AE000E80FF11DE258FF4FE491E927E093A500CC +:101AF00080919800FA01E80FF11DE258FF4F949190 +:101B000080919100F901E80FF11DE258FF4FE49137 +:101B1000E927E093A60080919500FA01E80FF11DF6 +:101B2000E258FF4F949180919200F901E80FF11D66 +:101B3000E258FF4FE491E927E093A70080918D00E0 +:101B4000FA01E80FF11DE258FF4F949180918F0048 +:101B5000F901E80FF11DE258FF4FE491E927E09306 +:101B6000A80080918C00480F511D42585F4FFA0128 +:101B7000949180919000280F311D22583F4FF90118 +:101B8000849189278093A9006A960FB6F894DEBFE6 +:101B90000FBECDBFCF91DF911F910F91FF90EF90BE +:101BA000DF90CF90BF90AF909F908F907F906F907D +:101BB0005F904F903F902F900895982F80548630DB +:101BC000A0F420E430E049E450E0FA01E21BF30B1A +:101BD000D901A655BF4F8C91E657FF4F80832F5FE9 +:101BE0003F4F2634310589F70895892F8654863072 +:101BF000C8F48091F00080938D008091F100809373 +:101C00008C008091F20080938B008091F300809390 +:101C10008A008091F400809399008091F500809370 +:101C200098000895892F8C548430B8F48091F60080 +:101C3000809397008091F700809396008091F80040 +:101C4000809395008091F90080939400892F90E013 +:101C5000860F911D8035910509F008950E948F0B24 +:101C600008951F920F920FB60F9211242F933F9356 +:101C70004F935F936F937F938F939F93AF93BF9394 +:101C8000EF93FF9381B190E0887F90708039910548 +:101C900009F480C08139910514F1803B910509F464 +:101CA00062C0813B910584F5803A910509F464C0D6 +:101CB000883A910509F457C085E886BFFF91EF91F6 +:101CC000BF91AF919F918F917F916F915F914F9154 +:101CD0003F912F910F900FBE0F901F901895803756 +:101CE000910569F081379105B4F18038910509F4C7 +:101CF00051C08838910501F388379105E9F61092B3 +:101D0000AC0185EC86BFDACF803C910509F1883CB7 +:101D10009105F1F0883B910579F680919A018A3A14 +:101D200009F449C0E091AA01F091AB01E655FF4FDB +:101D3000808183B98091AA019091AB010196909323 +:101D4000AB018093AA018091AD018F5F8093AD01BB +:101D500085EC86BFB3CF8036910589F28836910530 +:101D600009F0AACFCCCF8091AA019091AB010E943B +:101D70003F0B1092AD01D1CF8091AA019091AB01A0 +:101D80002091AD016091AD01821B0E94DD0D85ECBB +:101D900086BF94CF8091AC01882351F123B180910B +:101DA0009A018A3A89F1E091AA01F091AB01E655D6 +:101DB000FF4F2083BFCFE091AA01F091AB01E65520 +:101DC000FF4F8081E091AA01F091AB01E770F070C4 +:101DD000E656FF4F2081E091AA01F091AB01E77038 +:101DE000F070EE55FF4F9081821B892783B9A2CFF7 +:101DF00083B190E09093AB018093AA0181E080933E +:101E0000AC011092AD01A4CF8091AA019091AB01D9 +:101E1000803F910541F2A091AA01B091AB01E09100 +:101E2000AA01F091AB01E770F070EE55FF4F808191 +:101E3000E091AA01F091AB01E770F070E656FF4F18 +:101E400090818227890FA655BF4F8C9373CF97FB44 +:101E5000092E07260AD077FD04D00CD006D000202A +:101E60001AF4709561957F4F0895F6F790958195D6 +:101E70009F4F0895AA1BBB1B51E107C0AA1FBB1FA0 +:101E8000A617B70710F0A61BB70B881F991F5A9506 +:101E9000A9F780959095BC01CD010895FB01DC0167 +:101EA00004C08D910190801921F441505040C8F731 +:101EB000881B990B0895E199FECF9FBB8EBBE09ADA +:101EC00099278DB30895262FE199FECF9FBB8EBB36 +:101ED0002DBB0FB6F894E29AE19A0FBE01960895D1 +:041EE000F894FFCFA4 +:101EE4000000A42001010000000000000000000028 +:101EF40000000000000000000000000000000000DE +:061F0400000000000000D7 :00000001FF -- cgit v1.2.3