diff --git a/BaseUnit.cpp b/BaseUnit.cpp index ff431b5..8de5a05 100644 --- a/BaseUnit.cpp +++ b/BaseUnit.cpp @@ -3,6 +3,8 @@ * ******************************************************************/ #include "BaseUnit.h" +#include +#include /* ******************************************************************* * Defines @@ -33,7 +35,19 @@ * \brief Constructor for BaseUnit class. * *********************************************************************/ -BaseUnit::BaseUnit(void) +BaseUnit::BaseUnit(void) : +_hp(0), +_bAlive(false), +_x(0), +_y(0) { } +/*****************************************************************//** + * + * \brief Periodical handler for BaseUnit class. + * + *********************************************************************/ +void BaseUnit::handler(void) +{ +} diff --git a/BaseUnit.h b/BaseUnit.h index 485ac94..4ce1186 100644 --- a/BaseUnit.h +++ b/BaseUnit.h @@ -5,7 +5,8 @@ * Includes * ******************************************************************/ -#include "BaseUnit.h" +#include +#include /* ******************************************************************* * Defines @@ -30,7 +31,14 @@ class BaseUnit { public: - explicit BaseUnit(void); + explicit BaseUnit(); + void handler(void); + + protected: + uint16_t _hp; /**< Health points. */ + bool _bAlive; /**< Alive flag. */ + uint8_t _x; /**< X coordinate inside map. */ + uint8_t _y; /**< Y coordinate inside map. */ }; #endif /* BASEUNIT_H__ */ diff --git a/Exe/POCKET.ELF b/Exe/POCKET.ELF index 85108c7..0dfa63e 100755 Binary files a/Exe/POCKET.ELF and b/Exe/POCKET.ELF differ diff --git a/Exe/POCKET.HEX b/Exe/POCKET.HEX index c9efb0f..48125d3 100644 --- a/Exe/POCKET.HEX +++ b/Exe/POCKET.HEX @@ -1,766 +1,812 @@ -:100000000C94FB010C9423020C9423020C94230205 -:100010000C9423020C9423020C9423020C942302CC -:100020000C9423020C9423020C9423020C94F910D8 -:100030000C9423020C9423020C9423020C942302AC -:100040000C9417120C9423020C9423020C94230298 -:100050000C9423020C9423020C9423020C9423028C -:100060000C9423020C9423020201090153696E6768 -:100070006C6520706C617965722067616D65004DFB -:10008000756C7469706C617965722067616D65006B -:100090004F7074696F6E73006C007F009000506F3A -:1000A000636B657420456D70697265730003053F6D -:1000B000213F1208120A100A0E1C0E0C1E0C141AF4 -:1000C00014161F161E131E1E1B1E1E1F1E3F213F31 -:1000D0003A2F3A173D173F213F181F02040A041F09 -:1000E0000E04040E1F0A1F0A0E0E1F04110E2E25E9 -:1000F0002E2F2A2E262929021F02081F08150E045A -:10010000040E150E15151B151B040604040C040023 -:1001100000000017000300031F0A1F16371A1904F6 -:10012000130A153A000300000E11110E000A040A0A -:10013000040E040030000404040010001804031F1F -:10014000111F121F101D151711151F07041F17155A -:100150001D1F151D01011F1F151F17151F000A0068 -:10016000003200040A110A0A0A110A040115020EDB -:1001700011171E051E1F150A0E110A1F110E1F153D -:10018000111F05010E111D1F041F111F1108100F53 -:100190001F041B1F10101F061F1E040F0E110E1F21 -:1001A00009060E112E1F051A121509011F011F1035 -:1001B0001F0F180F1F0C1F1B041B031C0319151303 -:1001C000001F11030418111F00020102202020004B -:1001D00001020C121E1F120C0C12120C121F0C1A10 -:1001E00014041E05242A1E1F021C141D1020201D8D -:1001F0001F0814111F101E041E1E021C0C120C3EA0 -:100200000A040C123E1E040214160A020F120E10EB -:100210001E0E100E1E081E120C1226281E322A2632 -:10022000041E21001F00211E040102013F213F0A7C -:100230004E6F2053442063617264206F720A6E6FA8 -:10024000204C4F414445522E4845580A0A153A451C -:10025000786974001D20466C617368696E670A20B6 -:10026000206C6F616465722E2E2E0A0A444F4E2751 -:1002700054205455524E204F464621000A0A153A42 -:1002800049676E6F7265006D560A0A504C454153BE -:1002900045205455524E204F464620004C4F572083 -:1002A000424154544552592120001753440016131B -:1002B0007800161314001510200015201000540AA1 -:1002C00003E181867F3E186D830F0F0E01838660E8 -:1002D00033186DC3198F1803C38E6033186DE33064 -:1002E000CF1803C39E603630CDE360CF3006C79E83 -:1002F0007E3E30CDB360CF300CC6F6603330D9B619 -:1003000060CF33CFCCF66061B0DB1E60CF30D86CED -:10031000E6C061B0DB1E618F19986CC6C063B19BEB -:100320000E330F0FB078C6FF7E1F1B061E0F050091 -:10033000893008023802497868140000F6E8DBCFFB -:10034000C3B8AEA49B928A827B746E68625C57527B -:100350004E4945413E3A3734312E2C292725232159 -:100360001F1D1C1A1917161514131211100F0E0D3C -:100370000C0B0A0908070645006801000005006823 -:100380000138010000050038016801000095039163 -:10039000030101FF030101F7030000000700020150 -:1003A0000000030406000000000000000001020439 -:1003B00008102040800102040810200102040810E7 -:1003C00020040404040404040402020202020203DE -:1003D000030303030300000000230026002900009C -:1003E000000000250028002B00000000002400274A -:1003F000002A0000470211241FBECFEFD8E0DEBF65 -:10040000CDBF11E0A0E0B1E0ECE8FFE202C0059052 -:100410000D92AA32B107D9F723E0AAE2B1E001C0F8 -:100420001D92A03CB207E1F711E0CBEFD1E004C090 -:100430002197FE010E947616CA3FD107C9F70E9494 -:1004400025020C94C4170C9400000E9441020E94E3 -:100450008702FDCF8AE291E00E94FC098823D1F354 -:1004600066E084E391E00E940E03882399F342E062 -:1004700068E670E08AE291E00E94B70A813051F7A5 -:1004800008950E94B8128AE291E00C94FD0D10923A -:100490007B0110927A018EE191E090937901809333 -:1004A000780108950895CF93DF93EC010E946202D2 -:1004B00082E191E099838883CE014896DF91CF91C4 -:1004C0000C947A02FC0128E131E02193319326E07B -:1004D000DF011D922A95E9F7089620E1FC011192AF -:1004E0002A95E9F76115710521F040E150E00C947F -:1004F000B5170895FC0110821282118214821382B2 -:10050000168215821086178283E0818708950F93E3 -:100510001F93CF93DF93CDB7DEB7AF970FB6F894A5 -:10052000DEBF0FBECDBF6EE970E08AE291E00E94AF -:10053000800D43E068E970E08AE291E00E94B70A2A -:1005400081111BC08E010D5D1F4F8AE0F8011192D1 -:100550008A95E9F7B8018AE291E00E94580EB80145 -:1005600002521109C8010E94530281E08FA71EA701 -:100570000DA7CE018D960E942A02AF960FB6F89471 -:10058000DEBF0FBECDBFDF91CF911F910F910895B8 -:10059000FC0188E0808389E0818387E0828386E0B4 -:1005A000838384E0848382E0858381E18683089568 -:1005B000FF920F931F93CF93DF93EC018C01095FA0 -:1005C0001F4FFF24FA9462E088810E94981388816B -:1005D0000E9403142F81892B19F42F5F2F8307C0EA -:1005E000222349F02F3F11F41F8201C0FF8260E0F7 -:1005F00088810E9498132196C017D10721F7DF91B7 -:10060000CF911F910F91FF900895FC01E60FF11D0E -:1006100081E09781913009F080E00895FC01E60FB8 -:10062000F11D81E097819F3F09F080E00895262F1A -:1006300030E0FC01E20FF31F423030F4978191501B -:1006400081E09E3F58F009C087818F3F31F0642FD1 -:100650000E94F61581E0913009F080E008958EBD8A -:100660000DB407FEFDCF8EB50895DC01643508F0AA -:1006700057C0403308F054C090969C919097E42F57 -:10068000E595E595E595262F062E000C330B542FA6 -:1006900057709230A1F4D90184E5E802A00DB11D94 -:1006A0001124AF54BE4F8C9190E0052E02C0959559 -:1006B00087950A94E2F78095982F91700CC093303B -:1006C00051F41C968C916427062E000C770B68273A -:1006D00060FF03C014C0911112C084E5E802200D30 -:1006E000311D1124F901EF54FE4F81E090E001C06B -:1006F000880F5A95EAF780959081892310C084E588 -:10070000E802200D311D1124F901EF54FE4F81E064 -:1007100090E001C0880F5A95EAF79081892B808379 -:1007200008951F93CF93DF93EC01162FF89460E0A8 -:100730008F850E94D413888918161CF460E00E94EB -:10074000D413812F0E942F03888918161CF461E0AE -:100750000E94D4137894DF91CF911F91089528EFD0 -:1007600031E0E1EBF1E0DF01A9011D924150504081 -:10077000E1F7DC0119961C9219971A961C920895BC -:10078000CF92DF92EF92FF920F931F93CF93DF935D -:10079000EC018C858F5F8C8781EBE82E81E0F82E51 -:1007A00010E0612F6064CE010E94910360E8CE01E9 -:1007B0000E94910361E08F850E94D41388891816E6 -:1007C0001CF460E00E94D413670104E5F6018191F6 -:1007D0006F010E942F030150C9F7888918161CF475 -:1007E00061E00E94D4131F5FF4E5EF0EF11C163098 -:1007F000C1F660E4CE01DF91CF911F910F91FF9080 -:10080000EF90DF90CF900C949103FC0160A361A363 -:100810000895FC0160A341A30895EF92FF920F9306 -:100820001F93CF93DF938C01D62FF42EE22EC0E0DE -:10083000CE1544F44F2D4C0F6D2FC8010E94350387 -:10084000CF5FF6CFDF91CF911F910F91FF90EF9087 -:100850000895EF92FF920F931F93CF93DF938C0134 -:10086000F62ED42FE22EC0E0CE1544F46F2D6C0F7F -:100870004D2FC8010E943503CF5FF6CFDF91CF9196 -:100880001F910F91FF90EF900895DF92EF92FF92EA -:100890000F931F93CF93DF937C01D62FD22EC42FBB -:1008A000002E000C110B040F111D47FD1A958C2F03 -:1008B0000C2E000C990B8017910744F42D2D4C2F12 -:1008C0006D2FC7010E942904CF5FF1CFDF91CF9137 -:1008D0001F910F91FF90EF90DF9008958F929F925C -:1008E000AF92BF92CF92DF92EF92FF920F931F933E -:1008F000CF93DF937C01162FD42EC22F81E0C82E18 -:10090000C21AB22EB194BB0CD0E0802F8470A82EF6 -:10091000802F8270982E802F8870882E0170DC17AF -:100920000CF04DC0C7FC04C0C150B394B394CB0CC1 -:10093000DF5F8D2F880F8F5FC80EAA2071F04D2DBD -:100940004C0F612F6D0FC7010E9435034D2D4D0FC8 -:100950006C2F610FC7010E943503992071F04D2D56 -:100960004C1B612F6D0FC7010E9435034D2D4D1B90 -:100970006C2F610FC7010E943503882071F04D2D47 -:100980004D0F612F6C1BC7010E9435034D2D4C0F7D -:10099000612F6D1BC7010E943503002309F4BFCFEF -:1009A0004D2D4D1B612F6C1BC7010E9435034D2D32 -:1009B0004C1B612F6D1BC7010E943503B0CFDF9127 -:1009C000CF911F910F91FF90EF90DF90CF90BF904C -:1009D000AF909F908F9008958F929F92AF92BF9209 -:1009E000CF92DF92EF92FF920F931F93CF93DF93FB -:1009F0006C01A62E942EC22F11E0121BF22EF19440 -:100A0000FF0C83E0B82EBE0CD1E0802F8170882EC1 -:100A1000E39402708FEF8D0F8C17BCF517FD04C0A7 -:100A2000C150F394F3941F0D8D2F880F8F5F180F13 -:100A3000882091F02C2F220F2E0D492D4C1B6D2F4D -:100A40006A0DC6010E940D042B2D492D4D1B6C2FE4 -:100A50006A0DC6010E940D04011104C0DF5FB3944A -:100A6000B394D8CF2C2F220F2E0D492D4C1B6A2D5D -:100A70006D1BC6010E940D042B2D492D4D1B6A2DA7 -:100A80006C1BC6010E940D04E9CFDF91CF911F912D -:100A90000F91FF90EF90DF90CF90BF90AF909F901D -:100AA0008F9008959F92AF92BF92CF92DF92EF9274 -:100AB000FF920F931F93CF93DF936C01C62FD42F18 -:100AC000B22EAE2CAA0C922E9A18FE2CF60E292DC0 -:100AD0006F2D0E9429041FEF100F1D0F292D412F8C -:100AE0006F2DC6010E9429040A19DE0D202F4D2FFB -:100AF0006C2FC6010E940D04CB0D6FEF6C0F202FE1 -:100B00004D2FC6010E940D0401E02E2D4D2F6F2D9B -:100B1000C6010E946E048E2D8095C80F02E02E2D16 -:100B20004D2F6C2FC6010E946E04D12FDE1904E0F8 -:100B30002E2D4D2F6C2FC6010E946E0408E02E2D25 -:100B40004D2F6F2DC6010E946E04DF91CF911F9132 -:100B50000F91FF90EF90DF90CF90BF90AF909F905C -:100B60000895AF92BF92CF92DF92EF92FF920F93D0 -:100B70001F93CF93DF936C01B62EF42E122FC02F4C -:100B8000DE2DEE0CAD2EA60E2E196A2D0E94450408 -:100B9000C150CE19FD0E6FEF6B0D610F6D1BEC2E6A -:100BA00001E02D2F4F2DC6010E94EC0402E02D2FF5 -:100BB0004F2D6A2DC6010E94EC04DF91CF911F9149 -:100BC0000F91FF90EF90DF90CF90BF90AF9008957E -:100BD0002F923F925F926F927F928F929F92AF92ED -:100BE000BF92CF92DF92EF92FF920F931F93CF931A -:100BF000DF93EC01F901E4903196849164350CF0B7 -:100C000019C10E2C000CFF08062F062E000C110B2C -:100C1000F701E00FF11F1E161F060CF00BC1403349 -:100C20000CF008C1A82FC42E042E000CDD085601BC -:100C3000A80EB11C87FDBA941A141B040CF0FAC05C -:100C40002E5F3F4F570197E0A90EB11CB7FE04C0BD -:100C50005701BEE0AB0EB11CB3E0B594A794BA95B2 -:100C6000E1F747FF0AC0A42FA80FAC9CC001AD9CC0 -:100C7000900D1124281B390B40E08A2F0A2E000CFE -:100C8000990B840F911D47FD9A95C19714F0A0E32D -:100C9000A41BF8A067FD60E0E535F10514F0E4E57C -:100CA000F0E09E2FCC85C427C62E062E000CDD0852 -:100CB000F601E01BF10B8F014F01F7E08F22992421 -:100CC000E0E8F0E002C0F595E7958A94E2F77E2F20 -:100CD00017FF02C0095F1F4FF3E015950795FA95BE -:100CE000E1F7200F311F542F577081E001C0880FAA -:100CF0005A95EAF7459545954595F601B4E54B02B9 -:100D0000E00DF11D1124AF014F545E4FD0E02A2EAB -:100D1000AA0F3308EE24E394BB24ED2FF0E0E21594 -:100D2000F3050CF087C0F9015490F1E0FF121AC0EE -:100D3000962E8A01E72F6901991608F072C08E2E4F -:100D4000852021F0D8018C90882A8C92E69531F488 -:100D5000BFEFCB1ADB0AF6015490E0E893940F5FE3 -:100D60001F4FEACFF1101CC0782E7094962E8A0186 -:100D7000E72F6901991608F054C08E2E852021F0C6 -:100D8000D8018C9087208C92E69531F4BFEFCB1A76 -:100D9000DB0AF6015490E0E893940F5F1F4FEACF0F -:100DA000F3E0FF1629F0962E8A01E72F690137C07C -:100DB000682E6094862E8A01972E69018916D8F4D0 -:100DC000E92DE52159F0D801EC917C2E782470FEB4 -:100DD00002C0E82B02C0E621D801EC93969439F4C6 -:100DE000BFEFCB1ADB0AF6015490E0E89E2E839405 -:100DF0000F5F1F4FE3CFCE2514C08E2E852021F02C -:100E0000D8018C9088268C92E69531F4BFEFCB1AEE -:100E1000DB0AF6015490E0E893940F5F1F4F991698 -:100E200060F3880F19F44C5A5F4F81E0DF5F2A0DA1 -:100E30003B1D73CFDF91CF911F910F91FF90EF90EA -:100E4000DF90CF90BF90AF909F908F907F906F90EA -:100E50005F903F902F900895DC01FB0184918F5F9C -:100E600014968C9314973196E491EF5F1596EC935A -:100E700015976E5F7F4F5F967C936E935E97089594 -:100E8000EF920F93CF93DF93EC014E876D872F87FF -:100E9000E98A088B81E0888788A319A28F836DEA8D -:100EA00070E0CE010E942C070E94B31581E00E94E1 -:100EB000C91585E00E94D7158CE00E94D21561E02B -:100EC0008E850E94981361E08D850E94981361E0E1 -:100ED0008F850E949813898918161CF461E00E947E -:100EE0009813888918161CF461E00E949813898968 -:100EF00018166CF460E00E94D4136AE070E080E0A1 -:100F000090E00E94921261E089890E94D4138D853D -:100F1000082E000C990BFC01EF53FC4FE491F0E01C -:100F2000EE0FFF1FE152FC4F259134913D8B2C8B2E -:100F3000FC01E355FC4FE491EB8F8E85082E000CED -:100F4000990BFC01EF53FC4FE491F0E0EE0FFF1F13 -:100F5000E152FC4F259134913B8B2A8BFC01E355E8 -:100F6000FC4FE491EA8F8889082E000C990BFC0154 -:100F7000EF53FC4FE491F0E0EE0FFF1FE152FC4F06 -:100F8000259134913F8B2E8BFC01E355FC4FE4916E -:100F9000EC8F8F85082E000C990BFC01EF53FC4F52 -:100FA000E491F0E0EE0FFF1FE152FC4F25913491E8 -:100FB000398F288FFC01E355FC4FE491ED8F61E2FE -:100FC000CE010E94910364E1CE010E9491038B85C2 -:100FD00087FF02C08FE78B876B856068CE010E9418 -:100FE000910360E2CE010E9491036CE0CE010E9469 -:100FF0009103CE01DF91CF910F91EF900C94C0033C -:101000006F927F928F929F92AF92BF92CF92DF9218 -:10101000EF92FF920F931F93CF93DF93EC01643510 -:101020000CF084C040330CF081C0EC81F0E03197CB -:101030000E9FC0010F9F900D1124860F911D67FD1B -:101040009A95181619060CF071C03D81842F042E54 -:10105000000C990B039F800D911D11241816190681 -:101060000CF064C0D02EB42EC62E88A0A62E962ECC -:10107000E22EF12CEA2DEC190E2E000CFF0B8C81C8 -:1010800090E0E817F9070CF050C00197E817F9074E -:1010900079F0E89E9001E99E300DF89E300D112404 -:1010A000E20FF31F8E8D9F8DE80FF91F149101C081 -:1010B00010E07B2C6B2C272D2B19022E000C330BF0 -:1010C0008D8190E0281739076CF510FF11C081E081 -:1010D000D81206C0472D6A2DCE010E9435031EC0CE -:1010E0000D2D2D2D462D692DCE010E94450416C0D3 -:1010F00089A198A1891791F088A381E0D81206C030 -:10110000472D6A2DCE010E94350307C00D2D2D2DD0 -:10111000462D692DCE010E94450488A216956D0CBE -:101120007394C9CF9D0CA394A5CF88A2DF91CF91D2 -:101130001F910F91FF90EF90DF90CF90BF90AF90F5 -:101140009F908F907F906F9008950F93CF93DF9330 -:10115000EC016A3011F428851EC06D3019F1262F7C -:1011600008854A8569850E94000828853C81898513 -:10117000239F800D112489879F81992399F0082E40 -:10118000000C990B44E550E0239F401951091124AC -:10119000481759073CF49D818A85299F800D1124A9 -:1011A0008A87198681E090E0DF91CF910F910895B1 -:1011B0008F929F92AF92BF92CF92DF92EF92FF9267 -:1011C0000F931F93CF93DF93EC015C0186E8A80E89 -:1011D000B11CD5019C91992309F44DC09C3018F4A1 -:1011E0001CE0191B01C010E0FE01EA5AFF4F81E02C -:1011F00080836E01BEE4CB0ED11C60E0C6010E946C -:1012000005044E01E3E58E0E911CD4018C9103E0A0 -:10121000080F9DE2F92E4F2D481B410F23E0E22ECF -:1012200024E560E0C6010E94B10561E0C6010E94AC -:101230000504F401808103E0080F4F2D481B410F86 -:1012400024E560E0C6010E945205FE01E95AFF4F05 -:1012500084E080833196D4018C91181B115D10833A -:10126000CC57DF4F68817981C6010E946914F5016E -:10127000808181508083DF91CF911F910F91FF90EA -:10128000EF90DF90CF90BF90AF909F908F90089598 -:10129000CF92DF92FF920F931F93CF93DF93FC01C6 -:1012A000248D358D232B09F49FC0EC018C01025B4A -:1012B0001F4F40E061E0C8010E940904FE01E95AA5 -:1012C000FF4FDE01AE5ABF4F9C9185E5891B80839D -:1012D00031961082698D613009F463C028F0888DE1 -:1012E000653008F074C06FC0CE0185960E949E0FD5 -:1012F00081E0FE01EA5AFF4F80836DEA70E0C80189 -:101300000E942C071D8E1C8EFE01EC5AFF4F10828E -:1013100088EAF82E6E01FAE0CF0ED11CCE010E94B1 -:10132000FC098823D9F36CE972E0C8010E946914B2 -:101330006A8D7B8D4AE050E0C8010E941C1567E869 -:1013400072E0C8010E9469146F2D62956F7070E0A1 -:101350004AE050E0C8010E946A156CE772E0C801DB -:101360000E94691464E0C6010E94050381113CC01B -:10137000FA94F110D3CF60E0CE010E94711183B7CF -:10138000817F846083BF83B7816083BF83B78160BF -:1013900083BF889583B78E7F83BF83B78E7F83BFDC -:1013A000BDCFCF58DF4F88819981AA81BB818F70D3 -:1013B0009927AA27BB270897A105B10510F467E074 -:1013C00009C068E707C0882379F06B5F03C08823F2 -:1013D00059F06FE2C801DF91CF911F910F91FF90FB -:1013E000DF90CF900C948C14DF91CF911F910F91CF -:1013F000FF90DF90CF9008958F929F92AF92BF920F -:10140000CF92DF92EF92FF920F931F93CF93DF93D0 -:10141000EC017C0180E8E80EF11CF70180809180EE -:10142000A280B3800E946112861A970AA80AB90A9C -:101430006E01FFE7CF0ED11CF601808190E0A0E0A5 -:10144000B0E08E0105581F4F88159905AA05BB0508 -:1014500050F4F80180819181A281B381892B8A2B7C -:101460008B2B09F040C0F80180819181A281B3816A -:10147000892B8A2B8B2BA9F57E01F5E2EF0EF11C4F -:10148000C7010E949B0FC7010E940710C7010E945D -:10149000CC10CE010E94D808CE010E9448097E01DE -:1014A0008EE4E80EF11CC7010E94C003FE01EC5A55 -:1014B000FF4F8081811103C0C7010E94AF030E94CA -:1014C0006D12F8016083718382839383FE01EB5870 -:1014D000FF4FC958DF4F28813981621B730B71831D -:1014E000608380E037C00E946112F6012081DC0138 -:1014F000CB01820F911DA11DB11DF7018083918346 -:10150000A283B383FE01EF58FF4F80819181A281B6 -:10151000B3810196A11DB11D80839183A283B38302 -:10152000F80110821182128213820E946D12FE0154 -:10153000E958FF4F6083718382839383CE010E94B9 -:101540007511CE010A960E94D802CE0148960E94DB -:10155000DE1181E0DF91CF911F910F91FF90EF900D -:10156000DF90CF90BF90AF909F908F9008952F9273 -:101570003F924F925F926F927F928F929F92AF9223 -:10158000BF92CF92DF92EF92FF920F931F93CF9370 -:10159000DF93CDB7DEB765970FB6F894DEBF0FBE09 -:1015A000CDBF6C016A8B7B8B4B83FC01EC5AFF4FE8 -:1015B00010822FEF2D831C821D8A10E31C8A5C0190 -:1015C0003AE0A30EB11C1C0183E5280E311CBF9725 -:1015D0002F01242F30E03F832E83C601895A9F4F6D -:1015E00099878887F396FB87EA8796012A5A3F4FA7 -:1015F0003F872E870297998B888B3A973F01C601C8 -:101600000E94FC098823D9F364E0C5010E94050308 -:10161000012F110F110B811144C065E0C5010E941B -:10162000050381113EC066E0C5010E9405038111DA -:1016300038C02C8121114CC044E063E0C5010E94F8 -:101640001703882331F03C893F5F3C8BC2010E9425 -:10165000491144E061E0C5010E941703882331F07D -:101660008C8981508C8BC2010E944911EC898E2F8C -:101670000E2E000C990B2E813F818217930731F0BB -:10168000E7FF05C03B8131503C8B01C01C8AF10152 -:101690008081F4E0F80F2C89829FF0191124FD8BD2 -:1016A00022C0F101F081F98364E0C5010E940503C5 -:1016B000882309F48CC0C2010E941D11FC89FD839E -:1016C000298121953B81239F302D112432503D8B60 -:1016D000C8013D89831B910937FD939502970CF44E -:1016E0007AC081E08C839D89090F111D97FD1A95A1 -:1016F00017FF02C00F5F1F4FF801F595E795FA83BA -:10170000E9830981102FE885F9851082EA85FB8538 -:10171000008381E0EE85FF858083E889F989108266 -:10172000EA88FB88812C912C2C89022E000C330B2B -:101730003D872C878E819F818816990609F1EC855B -:10174000FD85E815F90579F423E0E885F98520831E -:10175000F1018081F02F2C89289FF00D11248F2F0B -:10176000EA85FB858083F70165917491C3010E942E -:10177000A714FFEF8F1A9F0A22E0E20EF11CDACFC6 -:1017800060E0C3010E940504F10180814981FC8968 -:10179000F89F400D1124415024E560E0C3010E94F0 -:1017A000290461E0C3010E940504F101808103E086 -:1017B000080F4981FC89F89F400D1124425083E0B5 -:1017C000E82E24E560E0C3010E94520518CFC20153 -:1017D0000E94331175CF8D8165960FB6F894DEBFE8 -:1017E0000FBECDBFDF91CF911F910F91FF90EF9072 -:1017F000DF90CF90BF90AF909F908F907F906F9031 -:101800005F904F903F902F9008950F931F93CF9329 -:10181000DF93EC018C01025B1F4FC8010E94AF03F4 -:1018200064E572E0C8010E946914C8010E94C00307 -:1018300083E00E94D71582E291E0EEEFFFE3099585 -:10184000FE01EC5AFF4F10826FE272E0C8010E9465 -:10185000A714C8010E94C0032A96CE010E94D80294 -:1018600064E0CE010E940503811107C062E370E0CD -:1018700080E090E00E949212F0CFDF91CF911F9113 -:101880000F9108952F923F924F925F926F927F92A5 -:101890008F929F92AF92BF92CF92DF92EF92FF9280 -:1018A0000F931F93CF93DF93CDB7DEB729970FB672 -:1018B000F894DEBF0FBECDBF3C0120E7620E711C65 -:1018C000F3012081222309F402C15A011B019987E7 -:1018D00088877A9781E08083E885F985EB5AFF4F06 -:1018E0001082E885F985EC5AFF4F1082E885F9856A -:1018F000108E8F01025B1F4F61E0C8010E9405043A -:10190000888599858D5A9F4F9D838C83C884D984FF -:1019100097E5C90ED11CE884F984E8E5EE0EF11CC8 -:10192000888599858E5A9F4F9A838983E885F985A2 -:10193000EF58FF4FFF83EE8388849984FAE08F0E7F -:10194000911C4884598425E2420E511C8885998552 -:101950000E94FC098823D1F3F1018491882329F0A6 -:10196000EC81FD81F081FB8301C01B822EEB32E014 -:1019700040E060E0C8010E94E805A114B10439F01C -:101980004B81445F950160E0C8010E94E805F601C3 -:1019900010822CE0F7012083B101C8010E94691474 -:1019A000E981FA818081982F990F890F81958D5A4D -:1019B000F6018083EC81FD818081982F990F890F3A -:1019C0008195835DF7018083EE81FF81808184FFB3 -:1019D00003C06AEB72E002C066EB72E0C8010E94CD -:1019E000A714E981FA818081982F990F890F819539 -:1019F0008D5AF6018083F70180818F5F8083E885AF -:101A0000F98582A5882319F062EB72E002C06EEAC4 -:101A100072E0C8010E94A714E981FA818081982FA1 -:101A2000990F890F81958D5AF6018083F701808186 -:101A30008F5F80836AEA72E0C8010E94A71465E0A4 -:101A4000C4010E940503882351F0E885F98562A549 -:101A50006F5FC2010E945F11C2010E94491164E0E0 -:101A6000C4010E940503811113C0F3012081422F9C -:101A700050E060E070E0EE81FF8180819181A28181 -:101A8000B38184179507A607B707A8F02F3F99F0F1 -:101A90008FEFF3018083088519850B5D1F4F60E090 -:101AA000C8010E943C0FC8010E941D1181E0E88519 -:101AB000F985808F0CC066E0C4010E94050388236D -:101AC00009F444CF888599850E94050C35CF299665 -:101AD0000FB6F894DEBF0FBECDBFDF91CF911F913F -:101AE0000F91FF90EF90DF90CF90BF90AF909F90BD -:101AF0008F907F906F905F904F903F902F900895C0 -:101B000040E050E00C94420CE0E8F7E72591349176 -:101B100081E02130304C09F080E00895CF93DF93CD -:101B2000EC010E94840D9E01275A3F4FDE01A0590F -:101B3000BF4F882309F43CC0E6E9F7E78491F90137 -:101B40008083E7E9F7E7E491EC83E8E9F7E7E491DC -:101B5000ED83E9E9F7E7859194919F838E83EBE923 -:101B6000F7E78591949199878887EDE9F7E7E49104 -:101B7000EBA7EEE9F7E7E491EAA7EFE9F7E7E491ED -:101B8000EC93E0EAF7E7859194919D8F8C8FE2EAE0 -:101B9000F7E7859194919F8F8E8FE4EAF7E785911F -:101BA000949199A388A3E6EAF7E78591949120C0E0 -:101BB0008CE3F90180831C828FEF8D8320E233E078 -:101BC0003F832E8324ED33E03987288791E09BA75C -:101BD0009AA78C938CEA9DE09D8F8C8F8EED9DE073 -:101BE0009F8F8E8F84E79EE099A388A38CE39FE06C -:101BF0009BA38AA3DF91CF910895CF92DF92EF92BA -:101C00000F93CF93DF93EC01FC01E158FF4F82E388 -:101C10008083349781E090E0A0E0B0E080839183FE -:101C2000A283B3833B978FEF8083CE010E948E0DFA -:101C3000CE010E946D116FEFCE010E9471116E01F5 -:101C40008AE0C80ED11CC6010E94C802C6010E94CB -:101C5000D802CE0148960E94D4118EE0E82E0FE003 -:101C600020E14BE06DE0CE01825B9F4F0E94400778 -:101C7000A596CE010E94A80E65E0C6010E9405034C -:101C8000882351F060E0CE01DF91CF910F91EF906A -:101C9000DF90CF900C945F1140E06EE273E0CE01D4 -:101CA000DF91CF910F91EF90DF90CF900C94470F81 -:101CB000CF93DF93D62FC72F0E94840D882359F02E -:101CC000AD2FBC2FEBE8F7E784918D933196E53982 -:101CD00087E7F807C9F7DF91CF91089550E0DA015F -:101CE000AA0FBB1FA80FB91F1F963C911F975096B4 -:101CF0002C915097E32FF22FE60FF11DE60FF11D07 -:101D00002591349190963C932E935F97F9016591BC -:101D10007491FC017481769F602D1124DC01A40F65 -:101D2000B51F91966C939197F90185919491E92F44 -:101D3000F0E0862F90E0E817F90720F4F90185918B -:101D40009491692F769F602D112492966C9308953B -:101D500021E0FC01248324E020A72DE833E0308B30 -:101D6000278740E060E00E946E0E61E070E083E053 -:101D70000E941013E1EBF0E08081887F8160808316 -:101D8000F89410928000E1E8F0E010821092850053 -:101D90001092840088E191E09093890080938800FC -:101DA000808188608083808181608083EFE6F0E0BD -:101DB000808182608083789408950F93FC01842F42 -:101DC00001112AC06230D9F050F4662399F06130D5 -:101DD00019F540E0682FCF010F910C946E0E63301F -:101DE000A9F06430C9F46481649F802D1124858F2B -:101DF000268F12C04B3008F08AE0868B0DC06481BC -:101E0000649F802D1124818F228F06C06481649F7E -:101E1000802D1124838F248F0F910895FC012111AF -:101E20000EC0648B8481849F402D1124458B15A2A4 -:101E300014A213A281E0878B8093B503108E0895BE -:101E40008091B503882319F08091B20301C080E02E -:101E50008093B4000895FC0161110DC0178A158AA2 -:101E600014A213A2108E1092B2031092B303109218 -:101E7000B5030C94200F0895CF93DF93611104C034 -:101E8000EC010E942B0F1982DF91CF9108950F93DF -:101E90001F93CF93DF93411110C08B01EC0160E0E1 -:101EA0000E943C0F1E870D871B8A1A8A81E0898356 -:101EB00089E08E8B198E1B8E1D8EDF91CF911F9125 -:101EC0000F910895CF93DF93DC01611131C08C91A4 -:101ED000882371F111968C911197811129C019965F -:101EE0008C91199717962C91179718969C91189783 -:101EF000E22FF92FE80FF11DE80FF11D2591349124 -:101F00002F3F8FEF380711F41C9212C0ED013C8770 -:101F10003327220F331FEA85FB85E20FF31F6591FC -:101F2000749140E0CD010E94470F89858F5F8987BA -:101F3000DF91CF91089560E00C94620F60E00C9403 -:101F40003C0F0F93CF93DF93EC0161115CC089814B -:101F5000882309F458C08D89811155C02D853E858F -:101F6000EA89FB89EE0FFF1FE20FF31F8591949121 -:101F7000009701F58989813021F41B8A1A8AF901B9 -:101F800010C01982888160E0882371F0CE010E9420 -:101F9000620FEA89FB89EE0FFF1F8D859E85E80F92 -:101FA000F91F8591949106C0CE01DF91CF910F91D9 -:101FB0000C942B0FBC01769567957695679580FFFD -:101FC00017C0AC0186E0569547958A95E1F7292F11 -:101FD00026952695269520514F716F7000E0CE0111 -:101FE0000E94DD0EEA89FB893196FB8BEA8BD3CF09 -:101FF000492F6F7320E0CE010E940E0F8A899B89C2 -:1020000001969B8B8A8BDF91CF910F91089560E0B1 -:102010000C94A10FCF93DF93EC016111BAC08F89AB -:10202000882309F4B6C09D89911105C0CE01DF91C6 -:10203000CF910C942B0F91509D8B8DA1811139C0A4 -:102040002BA13CA12F5F3F4FC901880F991FEF8D36 -:10205000F8A1E80FF91F65917491862F87708EA300 -:10206000AB0163E0569547956A95E1F7CA019695ED -:102070008795972F969596959FA38F739C81899F9F -:10208000802D11248DA341704093B1033CA32BA359 -:1020900089A190E02817390760F02AA1222329F0AE -:1020A000821B91099CA38BA304C060E0CE010E9417 -:1020B0002B0F8DA181508DA3888D21E0280F288FB3 -:1020C0004C893FA1340F8C85380F3A836B8D662382 -:1020D00061F070E0822F022E000C990B0E94161600 -:1020E0008C8D869F300D11243A838A8190E0CB96A7 -:1020F0006BE370E00E9416168A833E893B83698DEC -:10210000662371F0062E000C770B822F022E000C36 -:10211000990B0E9416168A8D869F300D11243B83E1 -:102120006D8D662389F0822F220F990B70E00E943B -:102130001616CB0162E070E00E9416162E8D9B8170 -:10214000289F900D11249B834F3341F08B818A305F -:102150000CF089E087FD80E08B8301C01B82F8943E -:10216000EA81F0E0E45CFC4FE491E093B4038D81FC -:1021700098A5899F802D11249B81899F802D1124F2 -:102180009EA1899F802D11248093B3038093B20375 -:102190007894DF91CF91089560E00C940A106091DB -:1021A000B303662329F18091B6038F5F8093B60352 -:1021B0009091B4038917E0F081E09091B5039111FB -:1021C00080E08093B5031092B6038091B103882319 -:1021D00069F08091000193E4899F802D1124895B2F -:1021E000809300010E94F6159093B2030C94200F87 -:1021F00008951F920F920FB60F9211242F933F93C1 -:102200004F935F936F937F938F939F93AF93BF93FE -:10221000EF93FF930E94CF10FF91EF91BF91AF9189 -:102220009F918F917F916F915F914F913F912F91EE -:102230000F900FBE0F901F901895CF93DF93EC0176 -:1022400060E00E943C0F85E893E09E878D871B8AA3 -:102250001A8A81E0898389E08E8B198E1B8E1D8EF0 -:10226000DF91CF910895CF93DF93EC0160E00E945E -:102270003C0F8DE793E09E878D871B8A1A8A81E049 -:10228000898389E08E8B198E1B8E1D8EDF91CF91F5 -:102290000895CF93DF93EC0160E00E943C0F87E745 -:1022A00093E09E878D871B8A1A8A81E0898389E063 -:1022B0008E8B198E1B8E1D8EDF91CF910895FC01A0 -:1022C000262F660F330B9681692F70E06F5F7F4F6B -:1022D000C9010E9416168583089521E0FC01208320 -:1022E000089570E085E00C941013AF92BF92CF92E6 -:1022F000DF92EF92FF920F931F93CF93DF93EC0146 -:1023000089819A812FE0289F8001299F100D112437 -:1023100085E10E94F312800F911F24E09695879526 -:102320002A95E1F79A8389832881222391F1EC8110 -:10233000AD80B12CC12CD12CA885B9857D0100E0E0 -:1023400010E06E817F819B0140E050E08617970787 -:1023500028F0BC01A817B90708F4BD0180E090E09F -:102360001F921F921F92EF930E9471156B830F9023 -:102370000F900F900F9070E085E0DF91CF911F914B -:102380000F91FF90EF90DF90CF90BF90AF900C94A3 -:102390001013DF91CF911F910F91FF90EF90DF907D -:1023A000CF90BF90AF900895FC018CE39FE09383A2 -:1023B000828384E0818381E084870895CF93DF93D3 -:1023C000FC0124813581232B79F1EC0184858F7107 -:1023D00041F584E10E94F312BC01990F880B990B1F -:1023E0000E94BC1626EE3FE34EEC50E40E944817D4 -:1023F0000E948B169B017B836A83672B81F084E0AC -:102400008983FE01349680E041915191241735076C -:1024100010F4898309C08F5F8430B1F702C08FEF59 -:1024200089838C858F5F8C87DF91CF9108951F9270 -:102430000F920FB60F9211242F933F938F939F9378 -:10244000AF93BF938091B8039091B903A091BA0361 -:10245000B091BB033091B70323E0230F2D3720F455 -:102460000196A11DB11D05C026E8230F0296A11DEE -:10247000B11D2093B7038093B8039093B903A09341 -:10248000BA03B093BB038091BC039091BD03A091AC -:10249000BE03B091BF030196A11DB11D8093BC0383 -:1024A0009093BD03A093BE03B093BF03BF91AF91C0 -:1024B0009F918F913F912F910F900FBE0F901F9082 -:1024C00018952FB7F8946091B8037091B903809173 -:1024D000BA039091BB032FBF08953FB7F894809142 -:1024E000BC039091BD03A091BE03B091BF0326B57C -:1024F000A89B05C02F3F19F00196A11DB11D3FBF3C -:10250000BA2FA92F982F8827820F911DA11DB11DC9 -:10251000BC01CD0142E0660F771F881F991F4A95C5 -:10252000D1F70895CF92DF92EF92FF92CF93DF938E -:102530006B017C010E946D12EB01C114D104E10416 -:10254000F10479F00E946D126C1B7D0B683E7340A4 -:10255000A0F381E0C81AD108E108F108C851DC4FA6 -:10256000ECCFDF91CF91FF90EF90DF90CF90089567 -:10257000789484B5826084BD84B5816084BD85B55E -:10258000826085BD85B5816085BDEEE6F0E0808125 -:1025900081608083E1E8F0E0108280818260808346 -:1025A000808181608083E0E8F0E0808181608083C9 -:1025B000E1EBF0E0808184608083E0EBF0E08081FB -:1025C00081608083EAE7F0E080818460808380819D -:1025D0008260808380818160808380818068808345 -:1025E0001092C10008958E3008F08E5020910101A4 -:1025F00090E4299F900111248770822B80937C00A6 -:1026000080917A00806480937A0080917A0086FDC0 -:10261000FCCF809178002091790090E0922B089572 -:102620001F93CF93DF93182FEB0161E00E94981363 -:10263000209711F460E004C0CF3FD10539F461E088 -:10264000812FDF91CF911F910C94D413E12FF0E0F3 -:10265000E756FC4FE491E330F9F048F4E130B9F08B -:10266000E230A1F584B5806284BDC8BD34C0E630D7 -:10267000E9F0E73019F1E43049F58091800080629B -:1026800080938000D0938B00C0938A0024C084B5CF -:10269000806884BDC7BD1FC0809180008068809322 -:1026A0008000D0938900C093880015C08091B0004D -:1026B00080688093B000C093B3000DC08091B000DB -:1026C00080628093B000C093B40005C0C038D105CB -:1026D0000CF0B5CFAFCFDF91CF911F91089583302C -:1026E00081F028F4813099F08230A1F0089586308D -:1026F000A9F08730B9F08430D1F4809180008F7DCB -:1027000003C0809180008F7780938000089584B506 -:102710008F7702C084B58F7D84BD08958091B0000D -:102720008F7703C08091B0008F7D8093B0000895B3 -:10273000CF93DF9390E0FC01E355FC4F2491FC0123 -:10274000EF53FC4F8491882361F190E0880F991F2B -:10275000FC01E751FC4FC591D491FC01E152FC4FC3 -:10276000A591B491611109C09FB7F8948881209513 -:1027700082238883EC912E230BC0623061F49FB7D3 -:10278000F8948881322F309583238883EC912E2B07 -:102790002C939FBF06C08FB7F894E8812E2B288317 -:1027A0008FBFDF91CF9108951F93CF93DF93282F91 -:1027B00030E0F901E756FC4F8491F901E355FC4FF5 -:1027C000D491F901EF53FC4FC491CC23C1F0162FE3 -:1027D00081110E946F13EC2FF0E0EE0FFF1FE1520A -:1027E000FC4FA591B4919FB7F894111104C08C913E -:1027F000D095D82302C0EC91DE2BDC939FBFDF91F4 -:10280000CF911F910895CF93DF93282F30E0F901E6 -:10281000E756FC4F8491F901E355FC4FD491F9013F -:10282000EF53FC4FC491CC2391F081110E946F13A0 -:10283000EC2FF0E0EE0FFF1FEB52FC4FA591B4918F -:10284000EC91ED2381E090E021F480E002C080E093 -:1028500090E0DF91CF910895CF92DF92EF92FF92B7 -:102860000F931F93CF93DF936C01EB017B01E40E79 -:10287000F51E00E010E0CE15DF0561F06991D6018C -:10288000ED91FC910190F081E02DC6010995080FB2 -:10289000191FF1CFC801DF91CF911F910F91FF90C8 -:1028A000EF90DF90CF9008956115710579F0FB01ED -:1028B00001900020E9F73197AF01461B570BDC016F -:1028C000ED91FC910280F381E02D099480E090E08D -:1028D0000895EF92FF920F931F93CF93DF937C01A4 -:1028E000FB0100E010E06491EF012196662361F0A6 -:1028F000D701ED91FC910190F081E02DC701099580 -:10290000080F191FFE01EFCFC801DF91CF911F9172 -:102910000F91FF90EF900895DC01ED91FC910190F3 -:10292000F081E02D09940F931F93CF93DF93EC0177 -:102930006DE00E948C148C016AE0CE010E948C1420 -:10294000800F911FDF91CF911F910F9108950F93E9 -:102950001F93CF93DF93EC010E9469148C01CE0189 -:102960000E949314800F911FDF91CF911F910F91BF -:1029700008958F929F92AF92BF92CF92DF92EF9283 -:10298000FF920F931F93CF93DF93CDB7DEB7A1973D -:102990000FB6F894DEBF0FBECDBF6C01142FE52F2C -:1029A000CB01022F19A2223008F40AE07E0121E2B5 -:1029B000E20EF11C802E912CA12CB12C612F7E2FC8 -:1029C000A50194010E942A16029F1019112481E08A -:1029D000E81AF1081A3014F4105D01C0195CF7010F -:1029E0001083122FE32FCA01232B242B252B31F721 -:1029F000B701C6010E945414A1960FB6F894DEBF29 -:102A00000FBECDBFDF91CF911F910F91FF90EF903F -:102A1000DF90CF90BF90AF909F908F900895211539 -:102A2000310541F4DC01ED91FC910190F081E02D44 -:102A3000642F09940C94B9149A01AB0160E070E022 -:102A40000C940F15CF92DF92EF92FF920F931F938A -:102A5000CF93DF932115310581F4DC01ED91FC91D9 -:102A60000190F081E02D642FDF91CF911F910F91A4 -:102A7000FF90EF90DF90CF9009942A30310501F557 -:102A800077FF1DC06A017B01EC016DE20E948C148E -:102A90008C0144275527BA014C195D096E097F093D -:102AA0002AE0CE010E94B914800F911FDF91CF91CF -:102AB0001F910F91FF90EF90DF90CF9008952AE043 -:102AC000DF91CF911F910F91FF90EF90DF90CF900A -:102AD0000C94B9149A01AB01770F660B770B0C9429 -:102AE00022154F925F926F927F92AF92BF92CF92D8 -:102AF000DF92EF92FF920F931F93CF93DF93CDB7A7 -:102B0000DEB729013A019B01AC01241935094609B8 -:102B1000570989899A89AB89BC89BC01CD016A1999 -:102B20007B098C099D090E94E615A80197012419CB -:102B30003509460957090E944C16CA01B9016A0DA8 -:102B40007B1D8C1D9D1DDF91CF911F910F91FF90DB -:102B5000EF90DF90CF90BF90AF907F906F905F909D -:102B60004F900895089561E08AE00E94D41361E0D7 -:102B70008AE00E9498138CB580618CBD8CB580640E -:102B80008CBD61E08DE00E94981361E08BE00C94B5 -:102B90009813811103C08CB5806202C08CB58F7D03 -:102BA0008CBD08959CB5937F892B8CBD08959CB5F1 -:102BB0009C7F282F2370922B9CBD2DB582FB9927DB -:102BC00090F9822F8E7F892B8DBD0895DB018F9325 -:102BD0009F930E946B16BF91AF91A29F800D911D94 -:102BE000A39F900DB29F900D11240895991B79E039 -:102BF00004C0991F961708F0961B881F7A95C9F78D -:102C000080950895AA1BBB1B51E107C0AA1FBB1FDB -:102C1000A617B70710F0A61BB70B881F991F5A9568 -:102C2000A9F780959095BC01CD01089597FB072EDB -:102C300016F4009407D077FD09D00E94021607FC15 -:102C400005D03EF4909581959F4F089570956195BC -:102C50007F4F0895A1E21A2EAA1BBB1BFD010DC0D8 -:102C6000AA1FBB1FEE1FFF1FA217B307E407F5073C -:102C700020F0A21BB30BE40BF50B661F771F881F18 -:102C8000991F1A9469F760957095809590959B01AE -:102C9000AC01BD01CF010895052E97FB1EF40094F1 -:102CA0000E94631657FD07D00E942A1607FC03D026 -:102CB0004EF40C94631650954095309521953F4FF6 -:102CC0004F4F5F4F089590958095709561957F4F18 -:102CD0008F4F9F4F08950E947C16A59F900DB49F23 -:102CE000900DA49F800D911D11240895EE0FFF1FDC -:102CF0000590F491E02D0994A29FB001B39FC0010B -:102D0000A39F700D811D1124911DB29F700D811D17 -:102D10001124911D08950E94271788F09F5798F05D -:102D2000B92F9927B751B0F0E1F0660F771F881FD0 -:102D3000991F1AF0BA95C9F714C0B13091F00E94EA -:102D40004117B1E008950C944117672F782F882719 -:102D5000B85F39F0B93FCCF3869577956795B39511 -:102D6000D9F73EF490958095709561957F4F8F4F80 -:102D70009F4F0895E89409C097FB3EF49095809585 -:102D8000709561957F4F8F4F9F4F9923A9F0F92F31 -:102D900096E9BB279395F695879577956795B795AF -:102DA000F111F8CFFAF4BB0F11F460FF1BC06F5F95 -:102DB0007F4F8F4F9F4F16C0882311F096E911C0A7 -:102DC000772321F09EE8872F762F05C0662371F0C8 -:102DD00096E8862F70E060E02AF09A95660F771FDC -:102DE000881FDAF7880F9695879597F9089597F9D0 -:102DF0009F6780E870E060E008959FEF80EC0895A1 -:102E000000240A94161617061806090608950024C9 -:102E10000A9412161306140605060895092E039443 -:102E2000000C11F4882352F0BB0F40F4BF2B11F4B7 -:102E300060FF04C06F5F7F4F8F4F9F4F089557FD16 -:102E40009058440F551F59F05F3F71F04795880F18 -:102E500097FB991F61F09F3F79F0879508951216AF -:102E600013061406551FF2CF4695F1DF08C016165B -:102E700017061806991FF1CF86957105610508940C -:102E80000895E894BB2766277727CB0197F9089523 -:102E90000E945B170C940E170E94001738F00E94D6 -:102EA000071720F0952311F00C94F7160C94FD16DB -:102EB00011240C9442170E941F1770F3959FC1F3C1 -:102EC000950F50E0551F629FF001729FBB27F00DD8 -:102ED000B11D639FAA27F00DB11DAA1F649F66272D -:102EE000B00DA11D661F829F2227B00DA11D621F7C -:102EF000739FB00DA11D621F839FA00D611D221F36 -:102F0000749F3327A00D611D231F849F600D211D19 -:102F1000822F762F6A2F11249F5750409AF0F1F09C -:102F200088234AF0EE0FFF1FBB1F661F771F881F05 -:102F300091505040A9F79E3F510580F00C94F71630 -:102F40000C9442175F3FE4F3983ED4F3869577954F -:102F50006795B795F795E7959F5FC1F7FE2B880FAB -:102F6000911D9695879597F90895FB01DC014150D5 -:102F7000504048F001900D920020C9F701C01D9209 -:0C2F800041505040E0F70895F894FFCF56 -:102F8C000101526573756D6500517569740000001F -:102F9C000000520200000000B21500000000A5085D -:0A2FAC002C144C4F41444552000024 -:040000030000044AAB +:100000000C9401020C9429020C9429020C942902EC +:100010000C9429020C9429020C9429020C942902B4 +:100020000C9429020C9429020C9429020C9442127B +:100030000C9429020C9429020C9429020C94290294 +:100040000C9460130C9429020C9429020C9429023C +:100050000C9429020C9429020C9429020C94290274 +:100060000C9429020C942902526573756D65005138 +:100070007569740068006F0053696E676C65207065 +:100080006C617965722067616D65004D756C74698E +:10009000706C617965722067616D65004F7074697D +:1000A0006F6E730078008B009C00506F636B6574FB +:1000B00020456D70697265730003053F213F12088A +:1000C000120A100A0E1C0E0C1E0C141A14161F16FF +:1000D0001E131E1E1B1E1E1F1E3F213F3A2F3A17C6 +:1000E0003D173F213F181F02040A041F0E04040E8F +:1000F0001F0A1F0A0E0E1F04110E2E252E2F2A2E48 +:10010000262929021F02081F08150E04040E150EC9 +:1001100015151B151B040604040C04000000001731 +:10012000000300031F0A1F16371A1904130A153A91 +:10013000000300000E11110E000A040A040E040050 +:1001400030000404040010001804031F111F121FC4 +:10015000101D151711151F07041F17151D1F151D3D +:1001600001011F1F151F17151F000A000032000490 +:100170000A110A0A0A110A040115020E11171E05B6 +:100180001E1F150A0E110A1F110E1F15111F050142 +:100190000E111D1F041F111F1108100F1F041B1F1C +:1001A00010101F061F1E040F0E110E1F09060E1140 +:1001B0002E1F051A121509011F011F101F0F180FFE +:1001C0001F0C1F1B041B031C03191513001F110315 +:1001D0000418111F000201022020200001020C124D +:1001E0001E1F120C0C12120C121F0C1A14041E05E6 +:1001F000242A1E1F021C141D1020201D1F0814116C +:100200001F101E041E1E021C0C120C3E0A040C12AF +:100210003E1E040214160A020F120E101E0E100EBD +:100220001E081E120C1226281E322A26041E210029 +:100230001F00211E040102013F213F0A4E6F20537F +:10024000442063617264206F720A6E6F204C4F41CC +:100250004445522E4845580A0A153A4578697400B3 +:100260001D20466C617368696E670A20206C6F619F +:100270006465722E2E2E0A0A444F4E275420545580 +:10028000524E204F464621000A0A153A49676E6FC2 +:100290007265006D560A0A504C454153452054552D +:1002A000524E204F464620004C4F57204241545456 +:1002B0004552592120001753440016137800161395 +:1002C00014001510200015201000540A03E1818647 +:1002D0007F3E186D830F0F0E0183866033186DC348 +:1002E000198F1803C38E6033186DE330CF1803C322 +:1002F0009E603630CDE360CF3006C79E7E3E30CD67 +:10030000B360CF300CC6F6603330D9B660CF33CF90 +:10031000CCF66061B0DB1E60CF30D86CE6C061B057 +:10032000DB1E618F19986CC6C063B19B0E330F0F33 +:10033000B078C6FF7E1F1B061E0F0500893008021D +:100340003802497868140000F6E8DBCFC3B8AEA4E1 +:100350009B928A827B746E68625C57524E4945411B +:100360003E3A3734312E2C29272523211F1D1C1AF4 +:100370001917161514131211100F0E0D0C0B0A0974 +:100380000807064500680100000500680138010003 +:10039000000500380168010000A1039D030101FF71 +:1003A000030101F70300000007000201000003043D +:1003B00006000000000000000001020408102040B8 +:1003C0008001020408102001020408102004040423 +:1003D00004040404040202020202020303030303EE +:1003E0000300000000230026002900000000002573 +:1003F0000028002B0000000000240027002A000035 +:100400006C0211241FBECFEFD8E0DEBFCDBF11E0DC +:10041000A0E0B1E0ECE2F2E302C005900D92A63656 +:10042000B107D9F723E0A6E6B1E001C01D92AC3FC9 +:10043000B207E1F712E0C1E0D2E004C02197FE016B +:100440000E94BF17C030D107C9F70E942B020C943D +:1004500014190C9400000E9466020E94C503FDCF8F +:100460000F931F93CF938C01C0E0F8018281C817CE +:1004700098F42C2F30E0C901880F991F322F2227C2 +:10048000280F391F80819181820F931F009711F0EF +:100490000E94E802CF5FE9CF86E691E00E94450B1B +:1004A0008823D1F366E080E791E00E945704882317 +:1004B000D9F242E064E770E086E691E00E94000C29 +:1004C000813091F6CF911F910F9108950E940114F0 +:1004D00086E691E00C94460F1092B7011092B60197 +:1004E0008AE591E09093B5018093B4010895089551 +:1004F0000895CF93DF93EC010E941F038EE391E0F8 +:1005000099838883CE0188509F4F0E94640361E0E5 +:1005100070E0CE014896DF91CF910C948A03BF9290 +:10052000CF92DF92EF92FF920F931F93CF93DF93BF +:100530007C0102E011E0CEE1D1E0B12C6C0188EF4A +:10054000C80ED11C6B2D80E791E00E944E048823D9 +:1005500071F1E881F9818A819B819C0121703327A7 +:10056000309719F42115310589F095958795232B3E +:1005700051F0D701A80FB91F2D913C91E20FF31F45 +:100580000190F081E02D8E0D9F1D0995D801ED9110 +:10059000FC91119712968D919C911397309711F4BD +:1005A00080FF05C0959587958C0D9D1D0995B39489 +:1005B0000C5F1F4F2496B7E0BB12C4CFDF91CF91E1 +:1005C0001F910F91FF90EF90DF90CF90BF90089513 +:1005D0000F931F93CF93DF93EC010E948F028E0144 +:1005E000085E1F4FC850DF4FC8010E94BB03095F60 +:1005F0001F4F0C171D07C1F7DF91CF911F910F916E +:100600000895FC01718360834283238314821582E1 +:100610000895FC01648345830895CF93DF93EC0133 +:100620006A8184EB91E00E944E05288139814D81D9 +:100630006C8184EB91E0DF91CF910C943107AF9204 +:10064000BF92CF92DF92EF92FF920F931F93CF93BF +:10065000DF93EC016B0184E491E0998388837E0150 +:1006600088E0E80EF11C80E1F70111928A95E9F724 +:100670008E01085E1F4F5E01F8EFAF0EB11C60E007 +:1006800070E0C8010E947B03095F1F4F0A151B051C +:10069000B1F7C114D10431F040E150E0B601C70117 +:1006A0000E94051943E050E06CE271E0CE01029631 +:1006B000DF91CF911F910F91FF90EF90DF90CF903E +:1006C000BF90AF900C94FE18FC0110821282118230 +:1006D00014821382168215821086178283E0818726 +:1006E000089508950895FC011182108212821382E8 +:1006F0001482089508950F931F93CF93DF93EC0115 +:100700008B010E9473031E830D83DF91CF911F9194 +:100710000F910895FC01768365830895CF93DF934D +:1007200000D000D000D0CDB7DEB7FC018581968126 +:1007300083309105BCF4880F991FFC01E05BFE4FEC +:100740006081718120E041E0CE0101960E940103A9 +:1007500040E160E1CE0101960E940903CE010196BD +:100760000E940D0326960FB6F894DEBF0FBECDBFD4 +:10077000DF91CF910895CF93DF93EC010E947A032C +:10078000CE01DF91CF910C948E030F931F93CF93E3 +:10079000DF93CDB7DEB7CF50D1400FB6F894DEBFB0 +:1007A0000FBECDBF6AEA70E086E691E00E94C90EF6 +:1007B00043E064EA70E086E691E00E94000C81115B +:1007C00024C08E010D5F1E4F8AE0F80111928A95B8 +:1007D000E9F7B80186E691E00E94A10FB801025046 +:1007E0001140C8010E94790281E0C15FDE4F888319 +:1007F000CF50D140C35FDE4F19830883CD50D14025 +:10080000CE01835F9E4F0E943002C15FDE4F0FB664 +:10081000F894DEBF0FBECDBFDF91CF911F910F9136 +:100820000895FC0188E0808389E0818387E08283EA +:1008300086E0838384E0848382E0858381E186830C +:100840000895FF920F931F93CF93DF93EC018C01D8 +:10085000095F1F4FFF24FA9462E088810E94E1142F +:1008600088810E944C152F81892B19F42F5F2F83CB +:1008700007C0222349F02F3F11F41F8201C0FF82DD +:1008800060E088810E94E1142196C017D10721F70A +:10089000DF91CF911F910F91FF900895FC01E60F1A +:1008A000F11D81E09781913009F080E00895FC010D +:1008B000E60FF11D81E097819F3F09F080E00895E8 +:1008C000262F30E0FC01E20FF31F423030F4978115 +:1008D000915081E09E3F58F009C087818F3F31F0F1 +:1008E000642F0E943F1781E0913009F080E0089565 +:1008F0008EBD0DB407FEFDCF8EB50895DC016435C5 +:1009000008F057C0403308F054C090969C919097DF +:10091000E42FE595E595E595262F062E000C330B83 +:10092000542F57709230A1F4D90184E5E802A00D4C +:10093000B11D1124A351BE4F8C9190E0052E02C031 +:10094000959587950A94E2F78095982F91700CC041 +:10095000933051F41C968C916427062E000C770B73 +:10096000682760FF03C014C0911112C084E5E8023B +:10097000200D311D1124F901E351FE4F81E090E07B +:1009800001C0880F5A95EAF780959081892310C09D +:1009900084E5E802200D311D1124F901E351FE4FD9 +:1009A00081E090E001C0880F5A95EAF79081892B89 +:1009B000808308951F93CF93DF93EC01162FF89453 +:1009C00060E08F850E941D15888918161CF460E070 +:1009D0000E941D15812F0E947804888918161CF426 +:1009E00061E00E941D157894DF91CF911F910895C9 +:1009F00028EF31E0EDEEF1E0DF01A9011D92415059 +:100A00005040E1F7DC0119961C9219971A961C9236 +:100A10000895CF92DF92EF92FF920F931F93CF939F +:100A2000DF93EC018C858F5F8C878DEEE82E81E063 +:100A3000F82E10E0612F6064CE010E94DA0460E8B5 +:100A4000CE010E94DA0461E08F850E941D1588891D +:100A500018161CF460E00E941D15670104E5F601FC +:100A600081916F010E9478040150C9F78889181696 +:100A70001CF461E00E941D151F5FF4E5EF0EF11CF0 +:100A80001630C1F660E4CE01DF91CF911F910F9136 +:100A9000FF90EF90DF90CF900C94DA04FC0160A3FC +:100AA00061A30895FC0160A341A30895EF92FF9212 +:100AB0000F931F93CF93DF938C01D62FF42EE22E4A +:100AC000C0E0CE1544F44F2D4C0F6D2FC8010E948D +:100AD0007E04CF5FF6CFDF91CF911F910F91FF90F2 +:100AE000EF900895EF92FF920F931F93CF93DF93B0 +:100AF0008C01F62ED42FE22EC0E0CE1544F46F2DDB +:100B00006C0F4D2FC8010E947E04CF5FF6CFDF919E +:100B1000CF911F910F91FF90EF900895DF92EF9288 +:100B2000FF920F931F93CF93DF937C01D62FD22E8A +:100B3000C42F002E000C110B040F111D47FD1A9538 +:100B40008C2F0C2E000C990B8017910744F42D2D3F +:100B50004C2F6D2FC7010E947205CF5FF1CFDF913F +:100B6000CF911F910F91FF90EF90DF9008958F929A +:100B70009F92AF92BF92CF92DF92EF92FF920F932C +:100B80001F93CF93DF937C01162FD42EC22F81E0C9 +:100B9000C82EC21AB22EB194BB0CD0E0802F847044 +:100BA000A82E802F8270982E802F8870882E01703A +:100BB000DC170CF04DC0C7FC04C0C150B394B39413 +:100BC000CB0CDF5F8D2F880F8F5FC80EAA2071F0CE +:100BD0004D2D4C0F612F6D0FC7010E947E044D2DCE +:100BE0004D0F6C2F610FC7010E947E04992071F098 +:100BF0004D2D4C1B612F6D0FC7010E947E044D2DA2 +:100C00004D1B6C2F610FC7010E947E04882071F07C +:100C10004D2D4D0F612F6C1BC7010E947E044D2D81 +:100C20004C0F612F6D1BC7010E947E04002309F445 +:100C3000BFCF4D2D4D1B612F6C1BC7010E947E0441 +:100C40004D2D4C1B612F6D1BC7010E947E04B0CF40 +:100C5000DF91CF911F910F91FF90EF90DF90CF9098 +:100C6000BF90AF909F908F9008958F929F92AF9278 +:100C7000BF92CF92DF92EF92FF920F931F93CF9389 +:100C8000DF936C01A62E942EC22F11E0121BF22EC0 +:100C9000F194FF0C83E0B82EBE0CD1E0802F817060 +:100CA000882EE39402708FEF8D0F8C17BCF517FD23 +:100CB00004C0C150F394F3941F0D8D2F880F8F5FE4 +:100CC000180F882091F02C2F220F2E0D492D4C1B30 +:100CD0006D2F6A0DC6010E9456052B2D492D4D1B07 +:100CE0006C2F6A0DC6010E945605011104C0DF5F1A +:100CF000B394B394D8CF2C2F220F2E0D492D4C1B1B +:100D00006A2D6D1BC6010E9456052B2D492D4D1BCA +:100D10006A2D6C1BC6010E945605E9CFDF91CF9169 +:100D20001F910F91FF90EF90DF90CF90BF90AF9009 +:100D30009F908F9008959F92AF92BF92CF92DF9233 +:100D4000EF92FF920F931F93CF93DF936C01C62F07 +:100D5000D42FB22EAE2CAA0C922E9A18FE2CF60E80 +:100D6000292D6F2D0E9472051FEF100F1D0F292DC9 +:100D7000412F6F2DC6010E9472050A19DE0D202F2A +:100D80004D2F6C2FC6010E945605CB0D6FEF6C0FD7 +:100D9000202F4D2FC6010E94560501E02E2D4D2F0C +:100DA0006F2DC6010E94B7058E2D8095C80F02E0F9 +:100DB0002E2D4D2F6C2FC6010E94B705D12FDE19A5 +:100DC00004E02E2D4D2F6C2FC6010E94B70508E0C0 +:100DD0002E2D4D2F6F2DC6010E94B705DF91CF91AB +:100DE0001F910F91FF90EF90DF90CF90BF90AF9049 +:100DF0009F900895AF92BF92CF92DF92EF92FF92B1 +:100E00000F931F93CF93DF936C01B62EF42E122F06 +:100E1000C02FDE2DEE0CAD2EA60E2E196A2D0E94CF +:100E20008E05C150CE19FD0E6FEF6B0D610F6D1B5E +:100E3000EC2E01E02D2F4F2DC6010E94350602E059 +:100E40002D2F4F2D6A2DC6010E943506DF91CF91BF +:100E50001F910F91FF90EF90DF90CF90BF90AF90D8 +:100E600008952F923F925F926F927F928F929F92FE +:100E7000AF92BF92CF92DF92EF92FF920F931F93A8 +:100E8000CF93DF93EC01F901E490319684916435BE +:100E90000CF019C10E2C000CFF08062F062E000CBA +:100EA000110BF701E00FF11F1E161F060CF00BC10E +:100EB00040330CF008C1A82FC42E042E000CDD080E +:100EC0005601A80EB11C87FDBA941A141B040CF02D +:100ED000FAC02E5F3F4F570197E0A90EB11CB7FE35 +:100EE00004C05701BEE0AB0EB11CB3E0B594A794AB +:100EF000BA95E1F747FF0AC0A42FA80FAC9CC00128 +:100F0000AD9C900D1124281B390B40E08A2F0A2E2E +:100F1000000C990B840F911D47FD9A95C19714F011 +:100F2000A0E3A41BF8A067FD60E0E535F10514F02F +:100F3000E4E5F0E09E2FCC85C427C62E062E000CDB +:100F4000DD08F601E01BF10B8F014F01F7E08F2266 +:100F50009924E0E8F0E002C0F595E7958A94E2F77D +:100F60007E2F17FF02C0095F1F4FF3E0159507950D +:100F7000FA95E1F7200F311F542F577081E001C01F +:100F8000880F5A95EAF7459545954595F601B4E5DC +:100F90004B02E00DF11D1124AF0143515E4FD0E033 +:100FA0002A2EAA0F3308EE24E394BB24ED2FF0E0A1 +:100FB000E215F3050CF087C0F9015490F1E0FF123F +:100FC0001AC0962E8A01E72F6901991608F072C09F +:100FD0008E2E852021F0D8018C90882A8C92E6955F +:100FE00031F4BFEFCB1ADB0AF6015490E0E893949A +:100FF0000F5F1F4FEACFF1101CC0782E7094962E11 +:101000008A01E72F6901991608F054C08E2E8520B9 +:1010100021F0D8018C9087208C92E69531F4BFEFB7 +:10102000CB1ADB0AF6015490E0E893940F5F1F4F50 +:10103000EACFF3E0FF1629F0962E8A01E72F690127 +:1010400037C0682E6094862E8A01972E6901891612 +:10105000D8F4E92DE52159F0D801EC917C2E7824C3 +:1010600070FE02C0E82B02C0E621D801EC939694F2 +:1010700039F4BFEFCB1ADB0AF6015490E0E89E2E5C +:1010800083940F5F1F4FE3CFCE2514C08E2E852093 +:1010900021F0D8018C9088268C92E69531F4BFEF30 +:1010A000CB1ADB0AF6015490E0E893940F5F1F4FD0 +:1010B000991660F3880F19F44C5A5F4F81E0DF5F97 +:1010C0002A0D3B1D73CFDF91CF911F910F91FF90A0 +:1010D000EF90DF90CF90BF90AF909F908F907F90D8 +:1010E0006F905F903F902F900895DC01FB018491F9 +:1010F0008F5F14968C9314973196E491EF5F159659 +:10110000EC9315976E5F7F4F5F967C936E935E971F +:101110000895EF920F93CF93DF93EC014E876D8785 +:101120002F87E98A088B81E0888788A319A28F839B +:1011300069EB70E0CE010E9475080E94FC1681E008 +:101140000E94121785E00E9420178CE00E941B1756 +:1011500061E08E850E94E11461E08D850E94E114BA +:1011600061E08F850E94E114898918161CF461E002 +:101170000E94E114888918161CF461E00E94E114B1 +:10118000898918166CF460E00E941D156AE070E011 +:1011900080E090E00E94DB1361E089890E941D15C8 +:1011A0008D85082E000C990BFC01E353FC4FE49154 +:1011B000F0E0EE0FFF1FE551FC4F259134913D8B80 +:1011C0002C8BFC01E754FC4FE491EB8F8E85082EAD +:1011D000000C990BFC01E353FC4FE491F0E0EE0F9F +:1011E000FF1FE551FC4F259134913B8B2A8BFC016D +:1011F000E754FC4FE491EA8F8889082E000C990B84 +:10120000FC01E353FC4FE491F0E0EE0FFF1FE551CA +:10121000FC4F259134913F8B2E8BFC01E754FC4F02 +:10122000E491EC8F8F85082E000C990BFC01E353A1 +:10123000FC4FE491F0E0EE0FFF1FE551FC4F2591CC +:101240003491398F288FFC01E754FC4FE491ED8FE6 +:1012500061E2CE010E94DA0464E1CE010E94DA0468 +:101260008B8587FF02C08FE78B876B856068CE0117 +:101270000E94DA0460E2CE010E94DA046CE0CE0142 +:101280000E94DA04CE01DF91CF910F91EF900C9480 +:1012900009056F927F928F929F92AF92BF92CF92E9 +:1012A000DF92EF92FF920F931F93CF93DF93EC01A6 +:1012B00064350CF084C040330CF081C0EC81F0E068 +:1012C00031970E9FC0010F9F900D1124860F911D25 +:1012D00067FD9A95181619060CF071C03D81842F90 +:1012E000042E000C990B039F800D911D11241816DC +:1012F00019060CF064C0D02EB42EC62E88A0A62EDF +:10130000962EE22EF12CEA2DEC190E2E000CFF0B7E +:101310008C8190E0E817F9070CF050C00197E817AE +:10132000F90779F0E89E9001E99E300DF89E300DA6 +:101330001124E20FF31F8E8D9F8DE80FF91F14917A +:1013400001C010E07B2C6B2C272D2B19022E000CDA +:10135000330B8D8190E0281739076CF510FF11C011 +:1013600081E0D81206C0472D6A2DCE010E947E046E +:101370001EC00D2D2D2D462D692DCE010E948E05EE +:1013800016C089A198A1891791F088A381E0D8128D +:1013900006C0472D6A2DCE010E947E0407C00D2D88 +:1013A0002D2D462D692DCE010E948E0588A2169501 +:1013B0006D0C7394C9CF9D0CA394A5CF88A2DF9127 +:1013C000CF911F910F91FF90EF90DF90CF90BF9042 +:1013D000AF909F908F907F906F9008950F93CF93D1 +:1013E000DF93EC016A3011F428851EC06D3019F1CD +:1013F000262F08854A8569850E94490928853C81F0 +:101400008985239F800D112489879F81992399F0D5 +:10141000082E000C990B44E550E0239F4019510918 +:101420001124481759073CF49D818A85299F800D16 +:1014300011248A87198681E090E0DF91CF910F9186 +:1014400008958F929F92AF92BF92CF92DF92EF92C8 +:10145000FF920F931F93CF93DF93EC015C0186E81B +:10146000A80EB11CD5019C91992309F44DC09C3064 +:1014700018F41CE0191B01C010E0FE01EA5AFF4FEE +:1014800081E080836E01BEE4CB0ED11C60E0C6011A +:101490000E944E054E01E3E58E0E911CD4018C9105 +:1014A00003E0080F9DE2F92E4F2D481B410F23E06A +:1014B000E22E24E560E0C6010E94FA0661E0C60162 +:1014C0000E944E05F401808103E0080F4F2D481B58 +:1014D000410F24E560E0C6010E949B06FE01E95A27 +:1014E000FF4F84E080833196D4018C91181B115DED +:1014F0001083CC57DF4F68817981C6010E94B215F5 +:10150000F501808181508083DF91CF911F910F91F0 +:10151000FF90EF90DF90CF90BF90AF909F908F9013 +:101520000895CF92DF92FF920F931F93CF93DF9393 +:10153000FC01248D358D232B09F49FC0EC018C0117 +:10154000025B1F4F40E061E0C8010E945205FE01AE +:10155000E95AFF4FDE01AE5ABF4F9C9185E5891BCA +:10156000808331961082698D613009F463C028F060 +:10157000888D653008F074C06FC0CE0185960E94DA +:10158000E71081E0FE01EA5AFF4F808369EB70E0CB +:10159000C8010E9475081D8E1C8EFE01EC5AFF4F7B +:1015A000108288EAF82E6E01FAE0CF0ED11CCE012F +:1015B0000E94450B8823D9F368EA72E0C8010E94B3 +:1015C000B2156A8D7B8D4AE050E0C8010E94651615 +:1015D00063E972E0C8010E94B2156F2D62956F70C9 +:1015E00070E04AE050E0C8010E94B31668E872E07B +:1015F000C8010E94B21564E0C6010E944E04811128 +:101600003CC0FA94F110D3CF60E0CE010E94BA1230 +:1016100083B7817F846083BF83B7816083BF83B7D3 +:10162000816083BF889583B78E7F83BF83B78E7FAA +:1016300083BFBDCFCF58DF4F88819981AA81BB81FD +:101640008F709927AA27BB270897A105B10510F429 +:1016500067E009C068E707C0882379F06B5F03C0C3 +:10166000882359F06FE2C801DF91CF911F910F914C +:10167000FF90DF90CF900C94D515DF91CF911F9103 +:101680000F91FF90DF90CF9008958F929F92AF922D +:10169000BF92CF92DF92EF92FF920F931F93CF935F +:1016A000DF93EC017C0180E8E80EF11CF7018080FB +:1016B0009180A280B3800E94AA13861A970AA80A72 +:1016C000B90A6E01FFE7CF0ED11CF601808190E0D0 +:1016D000A0E0B0E08E0105581F4F88159905AA05B6 +:1016E000BB0550F4F80180819181A281B381892BDF +:1016F0008A2B8B2B09F040C0F80180819181A28157 +:10170000B381892B8A2B8B2BA9F57E01F5E2EF0E95 +:10171000F11CC7010E94E410C7010E945011C701CB +:101720000E941512CE010E94210ACE010E94910A48 +:101730007E018EE4E80EF11CC7010E940905FE013E +:10174000EC5AFF4F8081811103C0C7010E94F80449 +:101750000E94B613F8016083718382839383FE0134 +:10176000EB58FF4FC958DF4F28813981621B730B3B +:101770007183608380E037C00E94AA13F601208144 +:10178000DC01CB01820F911DA11DB11DF7018083EA +:101790009183A283B383FE01EF58FF4F8081918133 +:1017A000A281B3810196A11DB11D80839183A28383 +:1017B000B383F80110821182128213820E94B61341 +:1017C000FE01E958FF4F6083718382839383CE01CA +:1017D0000E94BE12CE010A960E942104CE014896B4 +:1017E0000E94271381E0DF91CF911F910F91FF900D +:1017F000EF90DF90CF90BF90AF909F908F90089523 +:101800002F923F924F925F926F927F928F929F9210 +:10181000AF92BF92CF92DF92EF92FF920F931F93FE +:10182000CF93DF93CDB7DEB765970FB6F894DEBFE1 +:101830000FBECDBF6C016A8B7B8B4B83FC01EC5AD6 +:10184000FF4F10822FEF2D831C821D8A10E31C8A0C +:101850005C013AE0A30EB11C1C0183E5280E311C8B +:10186000BF972F01242F30E03F832E83C601895A72 +:101870009F4F99878887F396FB87EA8796012A5AB4 +:101880003F4F3F872E870297998B888B3A973F016E +:10189000C6010E94450B8823D9F364E0C5010E946C +:1018A0004E04012F110F110B811144C065E0C501D9 +:1018B0000E944E0481113EC066E0C5010E944E04A4 +:1018C000811138C02C8121114CC044E063E0C50176 +:1018D0000E946004882331F03C893F5F3C8BC20149 +:1018E0000E94921244E061E0C5010E9460048823D6 +:1018F00031F08C8981508C8BC2010E949212EC894C +:101900008E2F0E2E000C990B2E813F81821793078C +:1019100031F0E7FF05C03B8131503C8B01C01C8A90 +:10192000F1018081F4E0F80F2C89829FF0191124D5 +:10193000FD8B22C0F101F081F98364E0C5010E94B2 +:101940004E04882309F48CC0C2010E946612FC89EF +:10195000FD83298121953B81239F302D1124325015 +:101960003D8BC8013D89831B910937FD93950297F3 +:101970000CF47AC081E08C839D89090F111D97FDBD +:101980001A9517FF02C00F5F1F4FF801F595E795F5 +:10199000FA83E9830981102FE885F9851082EA85A9 +:1019A000FB85008381E0EE85FF858083E889F989E6 +:1019B0001082EA88FB88812C912C2C89022E000C45 +:1019C000330B3D872C878E819F818816990609F1FC +:1019D000EC85FD85E815F90579F423E0E885F985BE +:1019E0002083F1018081F02F2C89289FF00D112494 +:1019F0008F2FEA85FB858083F70165917491C30180 +:101A00000E94F015FFEF8F1A9F0A22E0E20EF11CF0 +:101A1000DACF60E0C3010E944E05F1018081498167 +:101A2000FC89F89F400D1124415024E560E0C3017A +:101A30000E94720561E0C3010E944E05F1018081A0 +:101A400003E0080F4981FC89F89F400D11244250A2 +:101A500083E0E82E24E560E0C3010E949B0618CFD6 +:101A6000C2010E947C1275CF8D8165960FB6F894E5 +:101A7000DEBF0FBECDBFDF91CF911F910F91FF90C1 +:101A8000EF90DF90CF90BF90AF909F908F907F901E +:101A90006F905F904F903F902F9008950F931F93FA +:101AA000CF93DF93EC018C01025B1F4FC8010E94B2 +:101AB000F80460E672E0C8010E94B215C8010E94F5 +:101AC000090583E00E9420178EE591E0EEEFFFE329 +:101AD0000995FE01EC5AFF4F10826BE372E0C801DA +:101AE0000E94F015C8010E9409052A96CE010E94A5 +:101AF000210464E0CE010E944E04811107C062E31C +:101B000070E080E090E00E94DB13F0CFDF91CF9196 +:101B10001F910F9108952F923F924F925F926F9273 +:101B20007F928F929F92AF92BF92CF92DF92EF926D +:101B3000FF920F931F93CF93DF93CDB7DEB7299713 +:101B40000FB6F894DEBF0FBECDBF3C0120E7620E9A +:101B5000711CF3012081222309F402C15A011B01E7 +:101B6000998788877A9781E08083E885F985EB5AA1 +:101B7000FF4F1082E885F985EC5AFF4F1082E88507 +:101B8000F985108E8F01025B1F4F61E0C8010E9432 +:101B90004E05888599858D5A9F4F9D838C83C88477 +:101BA000D98497E5C90ED11CE884F984E8E5EE0EE6 +:101BB000F11C888599858E5A9F4F9A838983E88581 +:101BC000F985EF58FF4FFF83EE8388849984FAE00C +:101BD0008F0E911C4884598425E2420E511C888541 +:101BE00099850E94450B8823D1F3F10184918823C4 +:101BF00029F0EC81FD81F081FB8301C01B822AEC7E +:101C000032E040E060E0C8010E943107A114B10455 +:101C100039F04B81445F950160E0C8010E943107B3 +:101C2000F60110822CE0F7012083B101C8010E9467 +:101C3000B215E981FA818081982F990F890F8195DA +:101C40008D5AF6018083EC81FD818081982F990F58 +:101C5000890F8195835DF7018083EE81FF8180810B +:101C600084FF03C066EC72E002C062EC72E0C8015F +:101C70000E94F015E981FA818081982F990F890FD0 +:101C800081958D5AF6018083F70180818F5F808373 +:101C9000E885F98582A5882319F06EEB72E002C011 +:101CA0006AEB72E0C8010E94F015E981FA81808137 +:101CB000982F990F890F81958D5AF6018083F7012E +:101CC00080818F5F808366EB72E0C8010E94F0150F +:101CD00065E0C4010E944E04882351F0E885F9852F +:101CE00062A56F5FC2010E94A812C2010E949212F7 +:101CF00064E0C4010E944E04811113C0F3012081ED +:101D0000422F50E060E070E0EE81FF8180819181A0 +:101D1000A281B38184179507A607B707A8F02F3FC4 +:101D200099F08FEFF3018083088519850B5D1F4FB4 +:101D300060E0C8010E948510C8010E94661281E01F +:101D4000E885F985808F0CC066E0C4010E944E04CE +:101D5000882309F444CF888599850E944E0D35CF9C +:101D600029960FB6F894DEBF0FBECDBFDF91CF919D +:101D70001F910F91FF90EF90DF90CF90BF90AF90A9 +:101D80009F908F907F906F905F904F903F902F909B +:101D9000089540E050E00C948B0DE0E8F7E72591C2 +:101DA000349181E02130304C09F080E00895CF93E8 +:101DB000DF93EC010E94CD0E9E01275A3F4FDE01BA +:101DC000A059BF4F882309F43CC0E6E9F7E78491A6 +:101DD000F9018083E7E9F7E7E491EC83E8E9F7E7C5 +:101DE000E491ED83E9E9F7E7859194919F838E83F0 +:101DF000EBE9F7E78591949199878887EDE9F7E713 +:101E0000E491EBA7EEE9F7E7E491EAA7EFE9F7E75A +:101E1000E491EC93E0EAF7E7859194919D8F8C8FA4 +:101E2000E2EAF7E7859194919F8F8E8FE4EAF7E7D6 +:101E30008591949199A388A3E6EAF7E78591949117 +:101E400020C08CE3F90180831C828FEF8D8320E218 +:101E500033E03F832E8324ED33E03987288791E0F8 +:101E60009BA79AA78C938CEA9DE09D8F8C8F8EED1B +:101E70009DE09F8F8E8F84E79EE099A388A38CE3DB +:101E80009FE09BA38AA3DF91CF910895CF92DF9229 +:101E9000EF920F93CF93DF93EC01FC01E158FF4FDA +:101EA00082E38083349781E090E0A0E0B0E080831B +:101EB0009183A283B3833B978FEF8083CE010E94EF +:101EC000D70ECE010E94B6126FEFCE010E94BA1259 +:101ED0006E018AE0C80ED11CC6010E941104C60121 +:101EE0000E942104CE0148960E941D138EE0E82E28 +:101EF0000FE020E14BE06DE0CE01825B9F4F0E943E +:101F00008908A596CE010E94F10F65E0C6010E94E6 +:101F10004E04882351F060E0CE01DF91CF910F9104 +:101F2000EF90DF90CF900C94A81240E06AE373E04A +:101F3000CE01DF91CF910F91EF90DF90CF900C9475 +:101F40009010CF93DF93D62FC72F0E94CD0E8823FA +:101F500059F0AD2FBC2FEBE8F7E784918D933196C4 +:101F6000E53987E7F807C9F7DF91CF91089550E089 +:101F7000DA01AA0FBB1FA80FB91F1F963C911F972C +:101F800050962C915097E32FF22FE60FF11DE60F9C +:101F9000F11D2591349190963C932E935F97F90112 +:101FA00065917491FC017481769F602D1124DC0190 +:101FB000A40FB51F91966C939197F9018591949117 +:101FC000E92FF0E0862F90E0E817F90720F4F901F7 +:101FD00085919491692F769F602D112492966C9330 +:101FE000089521E0FC01248324E020A729E933E0BF +:101FF000308B278740E060E00E94B70F61E070E01F +:1020000083E00E945914E1EBF0E08081887F8160D9 +:102010008083F89410928000E1E8F0E01082109242 +:1020200085001092840088E191E09093890080936C +:102030008800808188608083808181608083EFE672 +:10204000F0E0808182608083789408950F93FC0192 +:10205000842F01112AC06230D9F050F4662399F020 +:10206000613019F540E0682FCF010F910C94B70F44 +:102070006330A9F06430C9F46481649F802D112419 +:10208000858F268F12C04B3008F08AE0868B0DC0FA +:102090006481649F802D1124818F228F06C064810A +:1020A000649F802D1124838F248F0F910895FC014C +:1020B00021110EC0648B8481849F402D1124458B97 +:1020C00015A214A213A281E0878B8093F103108ED6 +:1020D00008958091F103882319F08091EE0301C0E7 +:1020E00080E08093B4000895FC0161110DC0178A4F +:1020F000158A14A213A2108E1092EE031092EF0311 +:102100001092F1030C9469100895CF93DF9361113D +:1021100004C0EC010E9474101982DF91CF910895E0 +:102120000F931F93CF93DF93411110C08B01EC01EC +:1021300060E00E9485101E870D871B8A1A8A81E045 +:10214000898389E08E8B198E1B8E1D8EDF91CF9136 +:102150001F910F910895CF93DF93DC01611131C07E +:102160008C91882371F111968C911197811129C05E +:1021700019968C91199717962C91179718969C91F0 +:102180001897E22FF92FE80FF11DE80FF11D2591A7 +:1021900034912F3F8FEF380711F41C9212C0ED01DC +:1021A0003C873327220F331FEA85FB85E20FF31F9D +:1021B0006591749140E0CD010E94901089858F5FF8 +:1021C0008987DF91CF91089560E00C94AB1060E0B7 +:1021D0000C9485100F93CF93DF93EC0161115CC0D9 +:1021E0008981882309F458C08D89811155C02D85B6 +:1021F0003E85EA89FB89EE0FFF1FE20FF31F8591F1 +:102200009491009701F58989813021F41B8A1A8AFB +:10221000F90110C01982888160E0882371F0CE0135 +:102220000E94AB10EA89FB89EE0FFF1F8D859E850A +:10223000E80FF91F8591949106C0CE01DF91CF91EF +:102240000F910C947410BC017695679576956795FF +:1022500080FF17C0AC0186E0569547958A95E1F757 +:10226000292F26952695269520514F716F7000E0F5 +:10227000CE010E942610EA89FB893196FB8BEA8BFE +:10228000D3CF492F6F7320E0CE010E9457108A8967 +:102290009B8901969B8B8A8BDF91CF910F9108953B +:1022A00060E00C94EA10CF93DF93EC016111BAC0A7 +:1022B0008F89882309F4B6C09D89911105C0CE018C +:1022C000DF91CF910C94741091509D8B8DA1811151 +:1022D00039C02BA13CA12F5F3F4FC901880F991F27 +:1022E000EF8DF8A1E80FF91F65917491862F877023 +:1022F0008EA3AB0163E0569547956A95E1F7CA0155 +:1023000096958795972F969596959FA38F739C8109 +:10231000899F802D11248DA341704093ED033CA330 +:102320002BA389A190E02817390760F02AA1222366 +:1023300029F0821B91099CA38BA304C060E0CE010D +:102340000E9474108DA181508DA3888D21E0280FEB +:10235000288F4C893FA1340F8C85380F3A836B8DC1 +:10236000662361F070E0822F022E000C990B0E9410 +:102370005F178C8D869F300D11243A838A8190E0FF +:10238000CB966BE370E00E945F178A833E893B83A4 +:10239000698D662371F0062E000C770B822F022EBA +:1023A000000C990B0E945F178A8D869F300D1124B7 +:1023B0003B836D8D662389F0822F220F990B70E08D +:1023C0000E945F17CB0162E070E00E945F172E8DC4 +:1023D0009B81289F900D11249B834F3341F08B816B +:1023E0008A300CF089E087FD80E08B8301C01B827E +:1023F000F894EA81F0E0E85BFC4FE491E093F003AD +:102400008D8198A5899F802D11249B81899F802D86 +:1024100011249EA1899F802D11248093EF03809326 +:10242000EE037894DF91CF91089560E00C945311FE +:102430006091EF03662329F18091F2038F5F80930F +:10244000F2039091F0038917E0F081E09091F1039D +:10245000911180E08093F1031092F2038091ED03DB +:10246000882369F08091000193E4899F802D1124D5 +:10247000895B809300010E943F179093EE030C94B8 +:10248000691008951F920F920FB60F9211242F9387 +:102490003F934F935F936F937F938F939F93AF93EC +:1024A000BF93EF93FF930E941812FF91EF91BF919A +:1024B000AF919F918F917F916F915F914F913F91DC +:1024C0002F910F900FBE0F901F901895CF93DF9311 +:1024D000EC0160E00E94851081E993E09E878D8782 +:1024E0001B8A1A8A81E0898389E08E8B198E1B8E64 +:1024F0001D8EDF91CF910895CF93DF93EC0160E0C3 +:102500000E94851089E893E09E878D871B8A1A8A2E +:1025100081E0898389E08E8B198E1B8E1D8EDF9161 +:10252000CF910895CF93DF93EC0160E00E94851076 +:1025300083E893E09E878D871B8A1A8A81E08983CE +:1025400089E08E8B198E1B8E1D8EDF91CF910895A1 +:10255000FC01262F660F330B9681692F70E06F5FA9 +:102560007F4FC9010E945F178583089521E0FC0118 +:102570002083089570E085E00C945914AF92BF92C7 +:10258000CF92DF92EF92FF920F931F93CF93DF933F +:10259000EC0189819A812FE0289F8001299F100DED +:1025A000112485E10E943C14800F911F24E0969530 +:1025B00087952A95E1F79A8389832881222391F1CF +:1025C000EC81AD80B12CC12CD12CA885B9857D01C1 +:1025D00000E010E06E817F819B0140E050E08617B3 +:1025E000970728F0BC01A817B90708F4BD0180E0DF +:1025F00090E01F921F921F92EF930E94BA166B8376 +:102600000F900F900F900F9070E085E0DF91CF91C9 +:102610001F910F91FF90EF90DF90CF90BF90AF9000 +:102620000C945914DF91CF911F910F91FF90EF906F +:10263000DF90CF90BF90AF900895FC018CE39FE0B6 +:102640009383828384E0818381E084870895CF939C +:10265000DF93FC0124813581232B79F1EC01848502 +:102660008F7141F584E10E943C14BC01990F880BE5 +:10267000990B0E94051826EE3FE34EEC50E40E94B1 +:1026800091180E94D4179B017B836A83672B81F08A +:1026900084E08983FE01349680E0419151912417B2 +:1026A000350710F4898309C08F5F8430B1F702C009 +:1026B0008FEF89838C858F5F8C87DF91CF91089511 +:1026C0001F920F920FB60F9211242F933F938F9367 +:1026D0009F93AF93BF938091F4039091F503A091E2 +:1026E000F603B091F7033091F30323E0230F2D3766 +:1026F00020F40196A11DB11D05C026E8230F029606 +:10270000A11DB11D2093F3038093F4039093F5036F +:10271000A093F603B093F7038091F8039091F90327 +:10272000A091FA03B091FB030196A11DB11D809306 +:10273000F8039093F903A093FA03B093FB03BF91BE +:10274000AF919F918F913F912F910F900FBE0F905E +:102750001F9018952FB7F8946091F4037091F503CA +:102760008091F6039091F7032FBF08953FB7F89437 +:102770008091F8039091F903A091FA03B091FB03C3 +:1027800026B5A89B05C02F3F19F00196A11DB11DCC +:102790003FBFBA2FA92F982F8827820F911DA11D07 +:1027A000B11DBC01CD0142E0660F771F881F991F44 +:1027B0004A95D1F70895CF92DF92EF92FF92CF938F +:1027C000DF936B017C010E94B613EB01C114D104AD +:1027D000E104F10479F00E94B6136C1B7D0B683E96 +:1027E0007340A0F381E0C81AD108E108F108C8518C +:1027F000DC4FECCFDF91CF91FF90EF90DF90CF9047 +:102800000895789484B5826084BD84B5816084BD68 +:1028100085B5826085BD85B5816085BDEEE6F0E059 +:10282000808181608083E1E8F0E0108280818260B5 +:102830008083808181608083E0E8F0E08081816036 +:102840008083E1EBF0E0808184608083E0EBF0E066 +:10285000808181608083EAE7F0E08081846080830A +:1028600080818260808380818160808380818068B4 +:1028700080831092C10008958E3008F08E50209110 +:10288000010190E4299F900111248770822B80938D +:102890007C0080917A00806480937A0080917A0035 +:1028A00086FDFCCF809178002091790090E0922BFA +:1028B00008951F93CF93DF93182FEB0161E00E94DF +:1028C000E114209711F460E004C0CF3FD10539F442 +:1028D00061E0812FDF91CF911F910C941D15E12FA5 +:1028E000F0E0EB55FC4FE491E330F9F048F4E130CF +:1028F000B9F0E230A1F584B5806284BDC8BD34C0B2 +:10290000E630E9F0E73019F1E43049F580918000D4 +:10291000806280938000D0938B00C0938A0024C093 +:1029200084B5806884BDC7BD1FC080918000806869 +:1029300080938000D0938900C093880015C0809157 +:10294000B00080688093B000C093B3000DC0809148 +:10295000B00080628093B000C093B40005C0C0385E +:10296000D1050CF0B5CFAFCFDF91CF911F91089576 +:10297000833081F028F4813099F08230A1F00895FD +:102980008630A9F08730B9F08430D1F4809180008E +:102990008F7D03C0809180008F77809380000895A1 +:1029A00084B58F7702C084B58F7D84BD08958091F2 +:1029B000B0008F7703C08091B0008F7D8093B0000E +:1029C0000895CF93DF9390E0FC01E754FC4F2491EE +:1029D000FC01E353FC4F8491882361F190E0880F60 +:1029E000991FFC01EB50FC4FC591D491FC01E551BE +:1029F000FC4FA591B491611109C09FB7F8948881EB +:102A0000209582238883EC912E230BC0623061F4E1 +:102A10009FB7F8948881322F309583238883EC9177 +:102A20002E2B2C939FBF06C08FB7F894E8812E2BD6 +:102A300028838FBFDF91CF9108951F93CF93DF93AA +:102A4000282F30E0F901EB55FC4F8491F901E75450 +:102A5000FC4FD491F901E353FC4FC491CC23C1F056 +:102A6000162F81110E94B814EC2FF0E0EE0FFF1F1B +:102A7000E551FC4FA591B4919FB7F894111104C092 +:102A80008C91D095D82302C0EC91DE2BDC939FBFB4 +:102A9000DF91CF911F910895CF93DF93282F30E0DE +:102AA000F901EB55FC4F8491F901E754FC4FD491A7 +:102AB000F901E353FC4FC491CC2391F081110E94A2 +:102AC000B814EC2FF0E0EE0FFF1FEF51FC4FA59173 +:102AD000B491EC91ED2381E090E021F480E002C01C +:102AE00080E090E0DF91CF910895CF92DF92EF9256 +:102AF000FF920F931F93CF93DF936C01EB017B0148 +:102B0000E40EF51E00E010E0CE15DF0561F06991DE +:102B1000D601ED91FC910190F081E02DC60109955F +:102B2000080F191FF1CFC801DF91CF911F910F91AD +:102B3000FF90EF90DF90CF9008956115710579F0C7 +:102B4000FB0101900020E9F73197AF01461B570BBD +:102B5000DC01ED91FC910280F381E02D099480E08D +:102B600090E00895EF92FF920F931F93CF93DF931E +:102B70007C01FB0100E010E06491EF0121966623E7 +:102B800061F0D701ED91FC910190F081E02DC7013A +:102B90000995080F191FFE01EFCFC801DF91CF91F2 +:102BA0001F910F91FF90EF900895DC01ED91FC9142 +:102BB0000190F081E02D09940F931F93CF93DF9341 +:102BC000EC016DE00E94D5158C016AE0CE010E94F7 +:102BD000D515800F911FDF91CF911F910F9108950F +:102BE0000F931F93CF93DF93EC010E94B2158C01DA +:102BF000CE010E94DC15800F911FDF91CF911F91B4 +:102C00000F9108958F929F92AF92BF92CF92DF92D1 +:102C1000EF92FF920F931F93CF93DF93CDB7DEB761 +:102C2000A1970FB6F894DEBF0FBECDBF6C01142F75 +:102C3000E52FCB01022F19A2223008F40AE07E0111 +:102C400021E2E20EF11C802E912CA12CB12C612FDF +:102C50007E2FA50194010E947317029F1019112461 +:102C600081E0E81AF1081A3014F4105D01C0195C13 +:102C7000F7011083122FE32FCA01232B242B252BBE +:102C800031F7B701C6010E949D15A1960FB6F894C1 +:102C9000DEBF0FBECDBFDF91CF911F910F91FF908F +:102CA000EF90DF90CF90BF90AF909F908F9008955E +:102CB0002115310541F4DC01ED91FC910190F08189 +:102CC000E02D642F09940C9402169A01AB0160E088 +:102CD00070E00C945816CF92DF92EF92FF920F9310 +:102CE0001F93CF93DF932115310581F4DC01ED9122 +:102CF000FC910190F081E02D642FDF91CF911F9125 +:102D00000F91FF90EF90DF90CF9009942A3031051A +:102D100001F577FF1DC06A017B01EC016DE20E94A5 +:102D2000D5158C0144275527BA014C195D096E0948 +:102D30007F092AE0CE010E940216800F911FDF91C9 +:102D4000CF911F910F91FF90EF90DF90CF9008955A +:102D50002AE0DF91CF911F910F91FF90EF90DF90CC +:102D6000CF900C9402169A01AB01770F660B770B8C +:102D70000C946B164F925F926F927F92AF92BF92BC +:102D8000CF92DF92EF92FF920F931F93CF93DF9337 +:102D9000CDB7DEB729013A019B01AC0124193509F1 +:102DA0004609570989899A89AB89BC89BC01CD013B +:102DB0006A197B098C099D090E942F17A8019701A8 +:102DC00024193509460957090E949517CA01B90106 +:102DD0006A0D7B1D8C1D9D1DDF91CF911F910F9161 +:102DE000FF90EF90DF90CF90BF90AF907F906F906B +:102DF0005F904F900895089561E08AE00E941D154C +:102E000061E08AE00E94E1148CB580618CBD8CB5D4 +:102E100080648CBD61E08DE00E94E11461E08BE094 +:102E20000C94E114811103C08CB5806202C08CB592 +:102E30008F7D8CBD08959CB5937F892B8CBD0895A3 +:102E40009CB59C7F282F2370922B9CBD2DB582FBB7 +:102E5000992790F9822F8E7F892B8DBD0895DB01F4 +:102E60008F939F930E94B417BF91AF91A29F800D43 +:102E7000911DA39F900DB29F900D11240895991B51 +:102E800079E004C0991F961708F0961B881F7A9561 +:102E9000C9F780950895AA1BBB1B51E107C0AA1F63 +:102EA000BB1FA617B70710F0A61BB70B881F991FEB +:102EB0005A95A9F780959095BC01CD01089597FB8F +:102EC000072E16F4009407D077FD09D00E944B1707 +:102ED00007FC05D03EF4909581959F4F089570951D +:102EE00061957F4F0895A1E21A2EAA1BBB1BFD011D +:102EF0000DC0AA1FBB1FEE1FFF1FA217B307E407D9 +:102F0000F50720F0A21BB30BE40BF50B661F771F30 +:102F1000881F991F1A9469F7609570958095909510 +:102F20009B01AC01BD01CF010895052E97FB1EF456 +:102F300000940E94AC1757FD07D00E94731707FC3E +:102F400003D04EF40C94AC175095409530952195D4 +:102F50003F4F4F4F5F4F08959095809570956195C5 +:102F60007F4F8F4F9F4F08950E94C517A59F900DCB +:102F7000B49F900DA49F800D911D11240895EE0F14 +:102F8000FF1F0590F491E02D0994A29FB001B39F1B +:102F9000C001A39F700D811D1124911DB29F700D62 +:102FA000811D1124911D08950E94701888F09F576B +:102FB00098F0B92F9927B751B0F0E1F0660F771F5D +:102FC000881F991F1AF0BA95C9F714C0B13091F053 +:102FD0000E948A18B1E008950C948A18672F782F00 +:102FE0008827B85F39F0B93FCCF386957795679518 +:102FF000B395D9F73EF490958095709561957F4F84 +:103000008F4F9F4F0895E89409C097FB3EF4909529 +:103010008095709561957F4F8F4F9F4F9923A9F0B1 +:10302000F92F96E9BB279395F69587957795679540 +:10303000B795F111F8CFFAF4BB0F11F460FF1BC084 +:103040006F5F7F4F8F4F9F4F16C0882311F096E917 +:1030500011C0772321F09EE8872F762F05C06623C5 +:1030600071F096E8862F70E060E02AF09A95660F7E +:10307000771F881FDAF7880F9695879597F9089537 +:1030800097F99F6780E870E060E008959FEF80EC1B +:10309000089500240A9416161706180609060895BE +:1030A00000240A9412161306140605060895092E24 +:1030B0000394000C11F4882352F0BB0F40F4BF2B93 +:1030C00011F460FF04C06F5F7F4F8F4F9F4F0895D3 +:1030D00057FD9058440F551F59F05F3F71F04795C9 +:1030E000880F97FB991F61F09F3F79F087950895AE +:1030F000121613061406551FF2CF4695F1DF08C0CD +:10310000161617061806991FF1CF869571056105E9 +:1031100008940895E894BB2766277727CB0197F991 +:1031200008950E94A4180C9457180E94491838F06A +:103130000E94501820F0952311F00C9440180C9424 +:10314000461811240C948B180E94681870F3959FF0 +:10315000C1F3950F50E0551F629FF001729FBB278E +:10316000F00DB11D639FAA27F00DB11DAA1F649F2A +:103170006627B00DA11D661F829F2227B00DA11DDD +:10318000621F739FB00DA11D621F839FA00D611D63 +:10319000221F749F3327A00D611D231F849F600D84 +:1031A000211D822F762F6A2F11249F5750409AF0AD +:1031B000F1F088234AF0EE0FFF1FBB1F661F771F39 +:1031C000881F91505040A9F79E3F510580F00C9404 +:1031D00040180C948B185F3FE4F3983ED4F3869527 +:1031E00077956795B795F795E7959F5FC1F7FE2BA4 +:1031F000880F911D9695879597F90895DC0101C078 +:103200006D9341505040E0F70895FB01DC014150BF +:10321000504048F001900D920020C9F701C01D9266 +:0C32200041505040E0F70895F894FFCFB3 +:10322C0001017103000000000000720300000000A7 +:10323C000000000000000000000000000000000082 +:10324C0000000000000000000000000000007802F8 +:10325C000000770200000000000000000000770270 +:10326C0000000000FB160808003C4299A5661800F7 +:10327C0000004601000000000000EE0975154C4FDF +:06328C0041444552000020 +:04000003000004569F :00000001FF diff --git a/Exe/POCKET.MAP b/Exe/POCKET.MAP index 79825c3..0a1d1a9 100644 --- a/Exe/POCKET.MAP +++ b/Exe/POCKET.MAP @@ -3,7 +3,7 @@ Archive member included to satisfy reference by file (symbol) ../lib/libgamebuino.a(Buttons.o) Obj/HumanPlayer.o (_ZN7Buttons7pressedEh) ../lib/libgamebuino.a(Display.o) - Obj/System.o (_ZTV7Display) + Obj/Sprite.o (_ZN7Display8setColorEa) ../lib/libgamebuino.a(font3x5.o) ../lib/libgamebuino.a(Display.o) (font3x5) ../lib/libgamebuino.a(Gamebuino.o) @@ -44,7 +44,7 @@ Archive member included to satisfy reference by file (symbol) /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_exit.o) /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/crtatmega328p.o (exit) /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_copy_data.o) - Obj/Game.o (__do_copy_data) + Obj/HumanPlayer.o (__do_copy_data) /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_clear_bss.o) Obj/System.o (__do_clear_bss) /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_ctors.o) @@ -114,7 +114,7 @@ Archive member included to satisfy reference by file (symbol) /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libc.a(memmove.o) ../lib/libarduino.a(WString.o) (memmove) /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libc.a(memset.o) - ../lib/libgamebuino.a(Display.o) (memset) + Obj/Player.o (memset) /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libc.a(strchr.o) ../lib/libarduino.a(WString.o) (strchr) /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libc.a(strcmp.o) @@ -181,16 +181,9 @@ Discarded input sections .text 0x0000000000000000 0x0 Obj/HumanPlayer.o .data 0x0000000000000000 0x0 Obj/HumanPlayer.o .bss 0x0000000000000000 0x0 Obj/HumanPlayer.o - .text._ZN11HumanPlayer13buttonHandlerEv - 0x0000000000000000 0x152 Obj/HumanPlayer.o - .text._ZN11HumanPlayer16onLeftBtnPressedEv - 0x0000000000000000 0x6 Obj/HumanPlayer.o .text 0x0000000000000000 0x0 Obj/Sprite.o .data 0x0000000000000000 0x0 Obj/Sprite.o .bss 0x0000000000000000 0x0 Obj/Sprite.o - .text._ZN6SpriteC2ERKh - 0x0000000000000000 0x8 Obj/Sprite.o - .comment 0x0000000000000000 0x12 Obj/Sprite.o .group 0x0000000000000000 0x8 Obj/Player.o .text 0x0000000000000000 0x0 Obj/Player.o .data 0x0000000000000000 0x0 Obj/Player.o @@ -200,16 +193,12 @@ Discarded input sections .bss 0x0000000000000000 0x0 Obj/Camera.o .text._ZN6Camera14getCoordinatesEPiS0_ 0x0000000000000000 0x2c Obj/Camera.o - .text._ZN6Camera16onLeftBtnPressedEv - 0x0000000000000000 0x2 Obj/Camera.o - .text._ZN6Camera17onRightBtnPressedEv - 0x0000000000000000 0x2 Obj/Camera.o + .text 0x0000000000000000 0x0 Obj/BaseUnit.o + .data 0x0000000000000000 0x0 Obj/BaseUnit.o + .bss 0x0000000000000000 0x0 Obj/BaseUnit.o .text 0x0000000000000000 0x0 Obj/Unit.o .data 0x0000000000000000 0x0 Obj/Unit.o .bss 0x0000000000000000 0x0 Obj/Unit.o - .text._ZN4UnitC2Ev - 0x0000000000000000 0x2 Obj/Unit.o - .comment 0x0000000000000000 0x12 Obj/Unit.o .text 0x0000000000000000 0x0 Obj/Menu.o .data 0x0000000000000000 0x0 Obj/Menu.o .bss 0x0000000000000000 0x0 Obj/Menu.o @@ -882,8 +871,6 @@ Discarded input sections .text 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libc.a(memset.o) .data 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libc.a(memset.o) .bss 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libc.a(memset.o) - .text.avr-libc - 0x0000000000000000 0xe /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libc.a(memset.o) .text 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libc.a(strchr.o) .data 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libc.a(strchr.o) .bss 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libc.a(strchr.o) @@ -1044,6 +1031,7 @@ LOAD Obj/HumanPlayer.o LOAD Obj/Sprite.o LOAD Obj/Player.o LOAD Obj/Camera.o +LOAD Obj/BaseUnit.o LOAD Obj/Unit.o LOAD Obj/Menu.o LOAD ../lib/libgamebuino.a @@ -1154,7 +1142,7 @@ END GROUP .rela.plt *(.rela.plt) -.text 0x0000000000000000 0x2f8c +.text 0x0000000000000000 0x322c *(.vectors) .vectors 0x0000000000000000 0x68 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/crtatmega328p.o 0x0000000000000000 __vectors @@ -1170,515 +1158,567 @@ END GROUP *libprintf_flt.a:*(.progmem.data) *libc.a:*(.progmem.data) *(.progmem*) + .progmem.data._ZZL9GamePausevE20strPauseMenuOption_0 + 0x0000000000000068 0x7 Obj/Game.o + .progmem.data._ZZL9GamePausevE20strPauseMenuOption_1 + 0x000000000000006f 0x5 Obj/Game.o .progmem.data._ZZL9GamePausevE20astrPauseMenuOptions - 0x0000000000000068 0x4 Obj/Game.o + 0x0000000000000074 0x4 Obj/Game.o .progmem.data._ZZ8MainMenuvE20strMainMenuOptions_0 - 0x000000000000006c 0x13 Obj/Menu.o + 0x0000000000000078 0x13 Obj/Menu.o .progmem.data._ZZ8MainMenuvE20strMainMenuOptions_1 - 0x000000000000007f 0x11 Obj/Menu.o + 0x000000000000008b 0x11 Obj/Menu.o .progmem.data._ZZ8MainMenuvE20strMainMenuOptions_2 - 0x0000000000000090 0x8 Obj/Menu.o + 0x000000000000009c 0x8 Obj/Menu.o .progmem.data._ZZ8MainMenuvE19astrMainMenuOptions - 0x0000000000000098 0x6 Obj/Menu.o + 0x00000000000000a4 0x6 Obj/Menu.o .progmem.data._ZZ8MainMenuvE3__c - 0x000000000000009e 0xf Obj/Menu.o + 0x00000000000000aa 0xf Obj/Menu.o .progmem.data.font3x5 - 0x00000000000000ad 0x182 ../lib/libgamebuino.a(font3x5.o) - 0x00000000000000ad font3x5 + 0x00000000000000b9 0x182 ../lib/libgamebuino.a(font3x5.o) + 0x00000000000000b9 font3x5 .progmem.data._ZZN9Gamebuino10changeGameEvE3__c_0 - 0x000000000000022f 0x25 ../lib/libgamebuino.a(Gamebuino.o) + 0x000000000000023b 0x25 ../lib/libgamebuino.a(Gamebuino.o) .progmem.data._ZZN9Gamebuino10changeGameEvE3__c - 0x0000000000000254 0x28 ../lib/libgamebuino.a(Gamebuino.o) + 0x0000000000000260 0x28 ../lib/libgamebuino.a(Gamebuino.o) .progmem.data._ZZN9Gamebuino14displayBatteryEvE3__c_1 - 0x000000000000027c 0xb ../lib/libgamebuino.a(Gamebuino.o) + 0x0000000000000288 0xb ../lib/libgamebuino.a(Gamebuino.o) .progmem.data._ZZN9Gamebuino14displayBatteryEvE3__c_0 - 0x0000000000000287 0x15 ../lib/libgamebuino.a(Gamebuino.o) + 0x0000000000000293 0x15 ../lib/libgamebuino.a(Gamebuino.o) .progmem.data._ZZN9Gamebuino14displayBatteryEvE3__c - 0x000000000000029c 0xe ../lib/libgamebuino.a(Gamebuino.o) + 0x00000000000002a8 0xe ../lib/libgamebuino.a(Gamebuino.o) .progmem.data._ZZN9Gamebuino11titleScreenEPK19__FlashStringHelperPKhE3__c_3 - 0x00000000000002aa 0x4 ../lib/libgamebuino.a(Gamebuino.o) - .progmem.data._ZZN9Gamebuino11titleScreenEPK19__FlashStringHelperPKhE3__c_2 - 0x00000000000002ae 0x4 ../lib/libgamebuino.a(Gamebuino.o) - .progmem.data._ZZN9Gamebuino11titleScreenEPK19__FlashStringHelperPKhE3__c_1 - 0x00000000000002b2 0x4 ../lib/libgamebuino.a(Gamebuino.o) - .progmem.data._ZZN9Gamebuino11titleScreenEPK19__FlashStringHelperPKhE3__c_0 0x00000000000002b6 0x4 ../lib/libgamebuino.a(Gamebuino.o) - .progmem.data._ZZN9Gamebuino11titleScreenEPK19__FlashStringHelperPKhE3__c + .progmem.data._ZZN9Gamebuino11titleScreenEPK19__FlashStringHelperPKhE3__c_2 0x00000000000002ba 0x4 ../lib/libgamebuino.a(Gamebuino.o) + .progmem.data._ZZN9Gamebuino11titleScreenEPK19__FlashStringHelperPKhE3__c_1 + 0x00000000000002be 0x4 ../lib/libgamebuino.a(Gamebuino.o) + .progmem.data._ZZN9Gamebuino11titleScreenEPK19__FlashStringHelperPKhE3__c_0 + 0x00000000000002c2 0x4 ../lib/libgamebuino.a(Gamebuino.o) + .progmem.data._ZZN9Gamebuino11titleScreenEPK19__FlashStringHelperPKhE3__c + 0x00000000000002c6 0x4 ../lib/libgamebuino.a(Gamebuino.o) .progmem.data._ZL13gamebuinoLogo - 0x00000000000002be 0x70 ../lib/libgamebuino.a(Gamebuino.o) + 0x00000000000002ca 0x70 ../lib/libgamebuino.a(Gamebuino.o) .progmem.data._ZL12startupSound - 0x000000000000032e 0xe ../lib/libgamebuino.a(Gamebuino.o) + 0x000000000000033a 0xe ../lib/libgamebuino.a(Gamebuino.o) .progmem.data._ZL12_halfPeriods - 0x000000000000033c 0x3b ../lib/libgamebuino.a(Sound.o) + 0x0000000000000348 0x3b ../lib/libgamebuino.a(Sound.o) .progmem.data._ZL9playTickP - 0x0000000000000377 0x6 ../lib/libgamebuino.a(Sound.o) + 0x0000000000000383 0x6 ../lib/libgamebuino.a(Sound.o) .progmem.data._ZL17playCancelPattern - 0x000000000000037d 0x8 ../lib/libgamebuino.a(Sound.o) + 0x0000000000000389 0x8 ../lib/libgamebuino.a(Sound.o) .progmem.data._ZL13playOKPattern - 0x0000000000000385 0x8 ../lib/libgamebuino.a(Sound.o) + 0x0000000000000391 0x8 ../lib/libgamebuino.a(Sound.o) .progmem.data._ZL18defaultInstruments - 0x000000000000038d 0x4 ../lib/libgamebuino.a(Sound.o) + 0x0000000000000399 0x4 ../lib/libgamebuino.a(Sound.o) .progmem.data._ZL15noiseInstrument - 0x0000000000000391 0x4 ../lib/libgamebuino.a(Sound.o) + 0x000000000000039d 0x4 ../lib/libgamebuino.a(Sound.o) .progmem.data._ZL20squareWaveInstrument - 0x0000000000000395 0x4 ../lib/libgamebuino.a(Sound.o) + 0x00000000000003a1 0x4 ../lib/libgamebuino.a(Sound.o) .progmem.data.digital_pin_to_timer_PGM - 0x0000000000000399 0x14 ../lib/libarduino.a(wiring_digital.o) - 0x0000000000000399 digital_pin_to_timer_PGM + 0x00000000000003a5 0x14 ../lib/libarduino.a(wiring_digital.o) + 0x00000000000003a5 digital_pin_to_timer_PGM .progmem.data.digital_pin_to_bit_mask_PGM - 0x00000000000003ad 0x14 ../lib/libarduino.a(wiring_digital.o) - 0x00000000000003ad digital_pin_to_bit_mask_PGM + 0x00000000000003b9 0x14 ../lib/libarduino.a(wiring_digital.o) + 0x00000000000003b9 digital_pin_to_bit_mask_PGM .progmem.data.digital_pin_to_port_PGM - 0x00000000000003c1 0x14 ../lib/libarduino.a(wiring_digital.o) - 0x00000000000003c1 digital_pin_to_port_PGM + 0x00000000000003cd 0x14 ../lib/libarduino.a(wiring_digital.o) + 0x00000000000003cd digital_pin_to_port_PGM .progmem.data.port_to_input_PGM - 0x00000000000003d5 0xa ../lib/libarduino.a(wiring_digital.o) - 0x00000000000003d5 port_to_input_PGM + 0x00000000000003e1 0xa ../lib/libarduino.a(wiring_digital.o) + 0x00000000000003e1 port_to_input_PGM .progmem.data.port_to_output_PGM - 0x00000000000003df 0xa ../lib/libarduino.a(wiring_digital.o) - 0x00000000000003df port_to_output_PGM + 0x00000000000003eb 0xa ../lib/libarduino.a(wiring_digital.o) + 0x00000000000003eb port_to_output_PGM .progmem.data.port_to_mode_PGM - 0x00000000000003e9 0xa ../lib/libarduino.a(wiring_digital.o) - 0x00000000000003e9 port_to_mode_PGM - 0x00000000000003f4 . = ALIGN (0x2) - *fill* 0x00000000000003f3 0x1 + 0x00000000000003f5 0xa ../lib/libarduino.a(wiring_digital.o) + 0x00000000000003f5 port_to_mode_PGM + 0x0000000000000400 . = ALIGN (0x2) + *fill* 0x00000000000003ff 0x1 *(.jumptables) *(.jumptables*) *(.lowtext) *(.lowtext*) - 0x00000000000003f4 __ctors_start = . + 0x0000000000000400 __ctors_start = . *(.ctors) - .ctors 0x00000000000003f4 0x2 Obj/System.o - 0x00000000000003f6 __ctors_end = . - 0x00000000000003f6 __dtors_start = . + .ctors 0x0000000000000400 0x2 Obj/System.o + 0x0000000000000402 __ctors_end = . + 0x0000000000000402 __dtors_start = . *(.dtors) - 0x00000000000003f6 __dtors_end = . + 0x0000000000000402 __dtors_end = . SORT(*)(.ctors) SORT(*)(.dtors) *(.init0) - .init0 0x00000000000003f6 0x0 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/crtatmega328p.o - 0x00000000000003f6 __init + .init0 0x0000000000000402 0x0 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/crtatmega328p.o + 0x0000000000000402 __init *(.init0) *(.init1) *(.init1) *(.init2) - .init2 0x00000000000003f6 0xc /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/crtatmega328p.o + .init2 0x0000000000000402 0xc /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/crtatmega328p.o *(.init2) *(.init3) *(.init3) *(.init4) - .init4 0x0000000000000402 0x16 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_copy_data.o) - 0x0000000000000402 __do_copy_data - .init4 0x0000000000000418 0x10 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_clear_bss.o) - 0x0000000000000418 __do_clear_bss + .init4 0x000000000000040e 0x16 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_copy_data.o) + 0x000000000000040e __do_copy_data + .init4 0x0000000000000424 0x10 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_clear_bss.o) + 0x0000000000000424 __do_clear_bss *(.init4) *(.init5) *(.init5) *(.init6) - .init6 0x0000000000000428 0x16 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_ctors.o) - 0x0000000000000428 __do_global_ctors + .init6 0x0000000000000434 0x16 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_ctors.o) + 0x0000000000000434 __do_global_ctors *(.init6) *(.init7) *(.init7) *(.init8) *(.init8) *(.init9) - .init9 0x000000000000043e 0x8 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/crtatmega328p.o + .init9 0x000000000000044a 0x8 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/crtatmega328p.o *(.init9) *(.text) - .text 0x0000000000000446 0x4 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/crtatmega328p.o - 0x0000000000000446 __vector_22 - 0x0000000000000446 __vector_1 - 0x0000000000000446 __vector_24 - 0x0000000000000446 __vector_12 - 0x0000000000000446 __bad_interrupt - 0x0000000000000446 __vector_6 - 0x0000000000000446 __vector_3 - 0x0000000000000446 __vector_23 - 0x0000000000000446 __vector_25 - 0x0000000000000446 __vector_13 - 0x0000000000000446 __vector_17 - 0x0000000000000446 __vector_19 - 0x0000000000000446 __vector_7 - 0x0000000000000446 __vector_5 - 0x0000000000000446 __vector_4 - 0x0000000000000446 __vector_9 - 0x0000000000000446 __vector_2 - 0x0000000000000446 __vector_21 - 0x0000000000000446 __vector_15 - 0x0000000000000446 __vector_8 - 0x0000000000000446 __vector_14 - 0x0000000000000446 __vector_10 - 0x0000000000000446 __vector_18 - 0x0000000000000446 __vector_20 - 0x000000000000044a . = ALIGN (0x2) + .text 0x0000000000000452 0x4 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/crtatmega328p.o + 0x0000000000000452 __vector_22 + 0x0000000000000452 __vector_1 + 0x0000000000000452 __vector_24 + 0x0000000000000452 __vector_12 + 0x0000000000000452 __bad_interrupt + 0x0000000000000452 __vector_6 + 0x0000000000000452 __vector_3 + 0x0000000000000452 __vector_23 + 0x0000000000000452 __vector_25 + 0x0000000000000452 __vector_13 + 0x0000000000000452 __vector_17 + 0x0000000000000452 __vector_19 + 0x0000000000000452 __vector_7 + 0x0000000000000452 __vector_5 + 0x0000000000000452 __vector_4 + 0x0000000000000452 __vector_9 + 0x0000000000000452 __vector_2 + 0x0000000000000452 __vector_21 + 0x0000000000000452 __vector_15 + 0x0000000000000452 __vector_8 + 0x0000000000000452 __vector_14 + 0x0000000000000452 __vector_10 + 0x0000000000000452 __vector_18 + 0x0000000000000452 __vector_20 + 0x0000000000000456 . = ALIGN (0x2) *(.text.*) .text.startup.main - 0x000000000000044a 0xa Obj/main.o - 0x000000000000044a main + 0x0000000000000456 0xa Obj/main.o + 0x0000000000000456 main .text._Z4GameRK11tGameConfig - 0x0000000000000454 0x2e Obj/Game.o - 0x0000000000000454 _Z4GameRK11tGameConfig + 0x0000000000000460 0x6c Obj/Game.o + 0x0000000000000460 _Z4GameRK11tGameConfig .text._Z10SystemInitv - 0x0000000000000482 0xc Obj/System.o - 0x0000000000000482 _Z10SystemInitv + 0x00000000000004cc 0xc Obj/System.o + 0x00000000000004cc _Z10SystemInitv .text.startup._GLOBAL__sub_I_gb - 0x000000000000048e 0x16 Obj/System.o + 0x00000000000004d8 0x16 Obj/System.o .text._ZN11HumanPlayer11drawHandlerEv - 0x00000000000004a4 0x2 Obj/HumanPlayer.o - 0x00000000000004a4 _ZN11HumanPlayer13onABtnPressedEv - 0x00000000000004a4 _ZN11HumanPlayer11drawHandlerEv + 0x00000000000004ee 0x2 Obj/HumanPlayer.o + 0x00000000000004ee _ZN11HumanPlayer11drawHandlerEv + 0x00000000000004ee _ZN11HumanPlayer13onBBtnPressedEv + .text._ZN11HumanPlayer13onABtnPressedEv + 0x00000000000004f0 0x2 Obj/HumanPlayer.o + 0x00000000000004f0 _ZN11HumanPlayer13onABtnPressedEv .text._ZN11HumanPlayerC2EPKc - 0x00000000000004a6 0x1e Obj/HumanPlayer.o - 0x00000000000004a6 _ZN11HumanPlayerC2EPKc - 0x00000000000004a6 _ZN11HumanPlayerC1EPKc + 0x00000000000004f2 0x2c Obj/HumanPlayer.o + 0x00000000000004f2 _ZN11HumanPlayerC2EPKc + 0x00000000000004f2 _ZN11HumanPlayerC1EPKc + .text._ZN11HumanPlayer13buttonHandlerEv + 0x000000000000051e 0xb2 Obj/HumanPlayer.o + 0x000000000000051e _ZN11HumanPlayer13buttonHandlerEv + .text._ZN11HumanPlayer7handlerEv + 0x00000000000005d0 0x32 Obj/HumanPlayer.o + 0x00000000000005d0 _ZN11HumanPlayer7handlerEv + .text._ZN6SpriteC2ERKhhh + 0x0000000000000602 0x10 Obj/Sprite.o + 0x0000000000000602 _ZN6SpriteC2ERKhhh + 0x0000000000000602 _ZN6SpriteC1ERKhhh + .text._ZN6Sprite6setPosEhh + 0x0000000000000612 0x8 Obj/Sprite.o + 0x0000000000000612 _ZN6Sprite6setPosEhh + .text._ZN6Sprite4drawEv + 0x000000000000061a 0x24 Obj/Sprite.o + 0x000000000000061a _ZN6Sprite4drawEv .text._ZN6PlayerC2EPKc - 0x00000000000004c4 0x30 Obj/Player.o - 0x00000000000004c4 _ZN6PlayerC1EPKc - 0x00000000000004c4 _ZN6PlayerC2EPKc + 0x000000000000063e 0x8a Obj/Player.o + 0x000000000000063e _ZN6PlayerC1EPKc + 0x000000000000063e _ZN6PlayerC2EPKc .text._ZN6CameraC2Ev - 0x00000000000004f4 0x1a Obj/Camera.o - 0x00000000000004f4 _ZN6CameraC1Ev - 0x00000000000004f4 _ZN6CameraC2Ev + 0x00000000000006c8 0x1a Obj/Camera.o + 0x00000000000006c8 _ZN6CameraC1Ev + 0x00000000000006c8 _ZN6CameraC2Ev + .text._ZN6Camera16onLeftBtnPressedEv + 0x00000000000006e2 0x2 Obj/Camera.o + 0x00000000000006e2 _ZN6Camera16onLeftBtnPressedEv + .text._ZN6Camera17onRightBtnPressedEv + 0x00000000000006e4 0x2 Obj/Camera.o + 0x00000000000006e4 _ZN6Camera17onRightBtnPressedEv + .text._ZN8BaseUnitC2Ev + 0x00000000000006e6 0xe Obj/BaseUnit.o + 0x00000000000006e6 _ZN8BaseUnitC1Ev + 0x00000000000006e6 _ZN8BaseUnitC2Ev + .text._ZN8BaseUnit7handlerEv + 0x00000000000006f4 0x2 Obj/BaseUnit.o + 0x00000000000006f4 _ZN8BaseUnit7handlerEv + .text._ZN4UnitC2ENS_7tUnitIDE + 0x00000000000006f6 0x1e Obj/Unit.o + 0x00000000000006f6 _ZN4UnitC2ENS_7tUnitIDE + 0x00000000000006f6 _ZN4UnitC1ENS_7tUnitIDE + .text._ZN4Unit6createENS_7tUnitIDE + 0x0000000000000714 0x8 Obj/Unit.o + 0x0000000000000714 _ZN4Unit6createENS_7tUnitIDE + .text._ZN4Unit11drawHandlerEv + 0x000000000000071c 0x5a Obj/Unit.o + 0x000000000000071c _ZN4Unit11drawHandlerEv + .text._ZN4Unit7handlerEv + 0x0000000000000776 0x14 Obj/Unit.o + 0x0000000000000776 _ZN4Unit7handlerEv .text._Z8MainMenuv - 0x000000000000050e 0x82 Obj/Menu.o - 0x000000000000050e _Z8MainMenuv + 0x000000000000078a 0x98 Obj/Menu.o + 0x000000000000078a _Z8MainMenuv .text._ZN7Buttons5beginEv - 0x0000000000000590 0x20 ../lib/libgamebuino.a(Buttons.o) - 0x0000000000000590 _ZN7Buttons5beginEv + 0x0000000000000822 0x20 ../lib/libgamebuino.a(Buttons.o) + 0x0000000000000822 _ZN7Buttons5beginEv .text._ZN7Buttons6updateEv - 0x00000000000005b0 0x5a ../lib/libgamebuino.a(Buttons.o) - 0x00000000000005b0 _ZN7Buttons6updateEv + 0x0000000000000842 0x5a ../lib/libgamebuino.a(Buttons.o) + 0x0000000000000842 _ZN7Buttons6updateEv .text._ZN7Buttons7pressedEh - 0x000000000000060a 0x12 ../lib/libgamebuino.a(Buttons.o) - 0x000000000000060a _ZN7Buttons7pressedEh + 0x000000000000089c 0x12 ../lib/libgamebuino.a(Buttons.o) + 0x000000000000089c _ZN7Buttons7pressedEh .text._ZN7Buttons8releasedEh - 0x000000000000061c 0x12 ../lib/libgamebuino.a(Buttons.o) - 0x000000000000061c _ZN7Buttons8releasedEh + 0x00000000000008ae 0x12 ../lib/libgamebuino.a(Buttons.o) + 0x00000000000008ae _ZN7Buttons8releasedEh .text._ZN7Buttons6repeatEhh - 0x000000000000062e 0x30 ../lib/libgamebuino.a(Buttons.o) - 0x000000000000062e _ZN7Buttons6repeatEhh + 0x00000000000008c0 0x30 ../lib/libgamebuino.a(Buttons.o) + 0x00000000000008c0 _ZN7Buttons6repeatEhh .text._ZN8SPIClass8transferEh - 0x000000000000065e 0xc ../lib/libgamebuino.a(Display.o) - 0x000000000000065e _ZN8SPIClass8transferEh + 0x00000000000008f0 0xc ../lib/libgamebuino.a(Display.o) + 0x00000000000008f0 _ZN8SPIClass8transferEh .text._ZN7Display9drawPixelEaa - 0x000000000000066a 0xb8 ../lib/libgamebuino.a(Display.o) - 0x000000000000066a _ZN7Display9drawPixelEaa + 0x00000000000008fc 0xb8 ../lib/libgamebuino.a(Display.o) + 0x00000000000008fc _ZN7Display9drawPixelEaa .text._ZN7Display7commandEh - 0x0000000000000722 0x3c ../lib/libgamebuino.a(Display.o) - 0x0000000000000722 _ZN7Display7commandEh + 0x00000000000009b4 0x3c ../lib/libgamebuino.a(Display.o) + 0x00000000000009b4 _ZN7Display7commandEh .text._ZN7Display5clearEv - 0x000000000000075e 0x22 ../lib/libgamebuino.a(Display.o) - 0x000000000000075e _ZN7Display5clearEv + 0x00000000000009f0 0x22 ../lib/libgamebuino.a(Display.o) + 0x00000000000009f0 _ZN7Display5clearEv .text._ZN7Display6updateEv - 0x0000000000000780 0x8a ../lib/libgamebuino.a(Display.o) - 0x0000000000000780 _ZN7Display6updateEv + 0x0000000000000a12 0x8a ../lib/libgamebuino.a(Display.o) + 0x0000000000000a12 _ZN7Display6updateEv .text._ZN7Display8setColorEa - 0x000000000000080a 0x8 ../lib/libgamebuino.a(Display.o) - 0x000000000000080a _ZN7Display8setColorEa + 0x0000000000000a9c 0x8 ../lib/libgamebuino.a(Display.o) + 0x0000000000000a9c _ZN7Display8setColorEa .text._ZN7Display8setColorEaa - 0x0000000000000812 0x8 ../lib/libgamebuino.a(Display.o) - 0x0000000000000812 _ZN7Display8setColorEaa + 0x0000000000000aa4 0x8 ../lib/libgamebuino.a(Display.o) + 0x0000000000000aa4 _ZN7Display8setColorEaa .text._ZN7Display13drawFastVLineEaaa - 0x000000000000081a 0x38 ../lib/libgamebuino.a(Display.o) - 0x000000000000081a _ZN7Display13drawFastVLineEaaa + 0x0000000000000aac 0x38 ../lib/libgamebuino.a(Display.o) + 0x0000000000000aac _ZN7Display13drawFastVLineEaaa .text._ZN7Display13drawFastHLineEaaa - 0x0000000000000852 0x38 ../lib/libgamebuino.a(Display.o) - 0x0000000000000852 _ZN7Display13drawFastHLineEaaa + 0x0000000000000ae4 0x38 ../lib/libgamebuino.a(Display.o) + 0x0000000000000ae4 _ZN7Display13drawFastHLineEaaa .text._ZN7Display8fillRectEaaaa - 0x000000000000088a 0x52 ../lib/libgamebuino.a(Display.o) - 0x000000000000088a _ZN7Display8fillRectEaaaa + 0x0000000000000b1c 0x52 ../lib/libgamebuino.a(Display.o) + 0x0000000000000b1c _ZN7Display8fillRectEaaaa .text._ZN7Display16drawCircleHelperEaaah - 0x00000000000008dc 0xfc ../lib/libgamebuino.a(Display.o) - 0x00000000000008dc _ZN7Display16drawCircleHelperEaaah + 0x0000000000000b6e 0xfc ../lib/libgamebuino.a(Display.o) + 0x0000000000000b6e _ZN7Display16drawCircleHelperEaaah .text._ZN7Display16fillCircleHelperEaaaha - 0x00000000000009d8 0xcc ../lib/libgamebuino.a(Display.o) - 0x00000000000009d8 _ZN7Display16fillCircleHelperEaaaha + 0x0000000000000c6a 0xcc ../lib/libgamebuino.a(Display.o) + 0x0000000000000c6a _ZN7Display16fillCircleHelperEaaaha .text._ZN7Display13drawRoundRectEaaaaa - 0x0000000000000aa4 0xbe ../lib/libgamebuino.a(Display.o) - 0x0000000000000aa4 _ZN7Display13drawRoundRectEaaaaa + 0x0000000000000d36 0xbe ../lib/libgamebuino.a(Display.o) + 0x0000000000000d36 _ZN7Display13drawRoundRectEaaaaa .text._ZN7Display13fillRoundRectEaaaaa - 0x0000000000000b62 0x6e ../lib/libgamebuino.a(Display.o) - 0x0000000000000b62 _ZN7Display13fillRoundRectEaaaaa + 0x0000000000000df4 0x6e ../lib/libgamebuino.a(Display.o) + 0x0000000000000df4 _ZN7Display13fillRoundRectEaaaaa .text._ZN7Display10drawBitmapEaaPKh - 0x0000000000000bd0 0x288 ../lib/libgamebuino.a(Display.o) - 0x0000000000000bd0 _ZN7Display10drawBitmapEaaPKh + 0x0000000000000e62 0x288 ../lib/libgamebuino.a(Display.o) + 0x0000000000000e62 _ZN7Display10drawBitmapEaaPKh .text._ZN7Display7setFontEPKh - 0x0000000000000e58 0x28 ../lib/libgamebuino.a(Display.o) - 0x0000000000000e58 _ZN7Display7setFontEPKh + 0x00000000000010ea 0x28 ../lib/libgamebuino.a(Display.o) + 0x00000000000010ea _ZN7Display7setFontEPKh .text._ZN7Display5beginEaaaaa - 0x0000000000000e80 0x180 ../lib/libgamebuino.a(Display.o) - 0x0000000000000e80 _ZN7Display5beginEaaaaa + 0x0000000000001112 0x180 ../lib/libgamebuino.a(Display.o) + 0x0000000000001112 _ZN7Display5beginEaaaaa .text._ZN7Display8drawCharEaahh - 0x0000000000001000 0x14a ../lib/libgamebuino.a(Display.o) - 0x0000000000001000 _ZN7Display8drawCharEaahh + 0x0000000000001292 0x14a ../lib/libgamebuino.a(Display.o) + 0x0000000000001292 _ZN7Display8drawCharEaahh .text._ZN7Display5writeEh - 0x000000000000114a 0x66 ../lib/libgamebuino.a(Display.o) - 0x000000000000114a _ZN7Display5writeEh + 0x00000000000013dc 0x66 ../lib/libgamebuino.a(Display.o) + 0x00000000000013dc _ZN7Display5writeEh .text._ZN9Gamebuino11updatePopupEv - 0x00000000000011b0 0xe0 ../lib/libgamebuino.a(Gamebuino.o) - 0x00000000000011b0 _ZN9Gamebuino11updatePopupEv + 0x0000000000001442 0xe0 ../lib/libgamebuino.a(Gamebuino.o) + 0x0000000000001442 _ZN9Gamebuino11updatePopupEv .text._ZN9Gamebuino14displayBatteryEv - 0x0000000000001290 0x168 ../lib/libgamebuino.a(Gamebuino.o) - 0x0000000000001290 _ZN9Gamebuino14displayBatteryEv + 0x0000000000001522 0x168 ../lib/libgamebuino.a(Gamebuino.o) + 0x0000000000001522 _ZN9Gamebuino14displayBatteryEv .text._ZN9Gamebuino6updateEv - 0x00000000000013f8 0x176 ../lib/libgamebuino.a(Gamebuino.o) - 0x00000000000013f8 _ZN9Gamebuino6updateEv + 0x000000000000168a 0x176 ../lib/libgamebuino.a(Gamebuino.o) + 0x000000000000168a _ZN9Gamebuino6updateEv .text._ZN9Gamebuino4menuEPKPKch - 0x000000000000156e 0x29c ../lib/libgamebuino.a(Gamebuino.o) - 0x000000000000156e _ZN9Gamebuino4menuEPKPKch + 0x0000000000001800 0x29c ../lib/libgamebuino.a(Gamebuino.o) + 0x0000000000001800 _ZN9Gamebuino4menuEPKPKch .text._ZN9Gamebuino10changeGameEv - 0x000000000000180a 0x7a ../lib/libgamebuino.a(Gamebuino.o) - 0x000000000000180a _ZN9Gamebuino10changeGameEv + 0x0000000000001a9c 0x7a ../lib/libgamebuino.a(Gamebuino.o) + 0x0000000000001a9c _ZN9Gamebuino10changeGameEv .text._ZN9Gamebuino11titleScreenEPK19__FlashStringHelperPKh - 0x0000000000001884 0x27c ../lib/libgamebuino.a(Gamebuino.o) - 0x0000000000001884 _ZN9Gamebuino11titleScreenEPK19__FlashStringHelperPKh + 0x0000000000001b16 0x27c ../lib/libgamebuino.a(Gamebuino.o) + 0x0000000000001b16 _ZN9Gamebuino11titleScreenEPK19__FlashStringHelperPKh .text._ZN9Gamebuino11titleScreenEPK19__FlashStringHelper - 0x0000000000001b00 0x8 ../lib/libgamebuino.a(Gamebuino.o) - 0x0000000000001b00 _ZN9Gamebuino11titleScreenEPK19__FlashStringHelper + 0x0000000000001d92 0x8 ../lib/libgamebuino.a(Gamebuino.o) + 0x0000000000001d92 _ZN9Gamebuino11titleScreenEPK19__FlashStringHelper .text._ZN9Gamebuino17settingsAvailableEv - 0x0000000000001b08 0x14 ../lib/libgamebuino.a(Gamebuino.o) - 0x0000000000001b08 _ZN9Gamebuino17settingsAvailableEv + 0x0000000000001d9a 0x14 ../lib/libgamebuino.a(Gamebuino.o) + 0x0000000000001d9a _ZN9Gamebuino17settingsAvailableEv .text._ZN9Gamebuino12readSettingsEv - 0x0000000000001b1c 0xde ../lib/libgamebuino.a(Gamebuino.o) - 0x0000000000001b1c _ZN9Gamebuino12readSettingsEv + 0x0000000000001dae 0xde ../lib/libgamebuino.a(Gamebuino.o) + 0x0000000000001dae _ZN9Gamebuino12readSettingsEv .text._ZN9Gamebuino5beginEv - 0x0000000000001bfa 0xb6 ../lib/libgamebuino.a(Gamebuino.o) - 0x0000000000001bfa _ZN9Gamebuino5beginEv + 0x0000000000001e8c 0xb6 ../lib/libgamebuino.a(Gamebuino.o) + 0x0000000000001e8c _ZN9Gamebuino5beginEv .text._ZN9Gamebuino14getDefaultNameEPc - 0x0000000000001cb0 0x2c ../lib/libgamebuino.a(Gamebuino.o) - 0x0000000000001cb0 _ZN9Gamebuino14getDefaultNameEPc + 0x0000000000001f42 0x2c ../lib/libgamebuino.a(Gamebuino.o) + 0x0000000000001f42 _ZN9Gamebuino14getDefaultNameEPc .text._ZN5Sound7commandEhhah.part.0 - 0x0000000000001cdc 0x74 ../lib/libgamebuino.a(Sound.o) + 0x0000000000001f6e 0x74 ../lib/libgamebuino.a(Sound.o) .text._ZN5Sound5beginEv - 0x0000000000001d50 0x6a ../lib/libgamebuino.a(Sound.o) - 0x0000000000001d50 _ZN5Sound5beginEv + 0x0000000000001fe2 0x6a ../lib/libgamebuino.a(Sound.o) + 0x0000000000001fe2 _ZN5Sound5beginEv .text._ZN5Sound7commandEhhah - 0x0000000000001dba 0x62 ../lib/libgamebuino.a(Sound.o) - 0x0000000000001dba _ZN5Sound7commandEhhah + 0x000000000000204c 0x62 ../lib/libgamebuino.a(Sound.o) + 0x000000000000204c _ZN5Sound7commandEhhah .text._ZN5Sound8playNoteEhhh - 0x0000000000001e1c 0x24 ../lib/libgamebuino.a(Sound.o) - 0x0000000000001e1c _ZN5Sound8playNoteEhhh + 0x00000000000020ae 0x24 ../lib/libgamebuino.a(Sound.o) + 0x00000000000020ae _ZN5Sound8playNoteEhhh .text._ZN5Sound12updateOutputEv - 0x0000000000001e40 0x16 ../lib/libgamebuino.a(Sound.o) - 0x0000000000001e40 _ZN5Sound12updateOutputEv + 0x00000000000020d2 0x16 ../lib/libgamebuino.a(Sound.o) + 0x00000000000020d2 _ZN5Sound12updateOutputEv .text._ZN5Sound8stopNoteEh - 0x0000000000001e56 0x22 ../lib/libgamebuino.a(Sound.o) - 0x0000000000001e56 _ZN5Sound8stopNoteEh + 0x00000000000020e8 0x22 ../lib/libgamebuino.a(Sound.o) + 0x00000000000020e8 _ZN5Sound8stopNoteEh .text._ZN5Sound11stopPatternEh - 0x0000000000001e78 0x16 ../lib/libgamebuino.a(Sound.o) - 0x0000000000001e78 _ZN5Sound11stopPatternEh + 0x000000000000210a 0x16 ../lib/libgamebuino.a(Sound.o) + 0x000000000000210a _ZN5Sound11stopPatternEh .text._ZN5Sound11playPatternEPKjh - 0x0000000000001e8e 0x36 ../lib/libgamebuino.a(Sound.o) - 0x0000000000001e8e _ZN5Sound11playPatternEPKjh + 0x0000000000002120 0x36 ../lib/libgamebuino.a(Sound.o) + 0x0000000000002120 _ZN5Sound11playPatternEPKjh .text._ZN5Sound11updateTrackEh - 0x0000000000001ec4 0x72 ../lib/libgamebuino.a(Sound.o) - 0x0000000000001ec4 _ZN5Sound11updateTrackEh + 0x0000000000002156 0x72 ../lib/libgamebuino.a(Sound.o) + 0x0000000000002156 _ZN5Sound11updateTrackEh .text._ZN5Sound11updateTrackEv - 0x0000000000001f36 0x6 ../lib/libgamebuino.a(Sound.o) - 0x0000000000001f36 _ZN5Sound11updateTrackEv + 0x00000000000021c8 0x6 ../lib/libgamebuino.a(Sound.o) + 0x00000000000021c8 _ZN5Sound11updateTrackEv .text._ZN5Sound11stopPatternEv - 0x0000000000001f3c 0x6 ../lib/libgamebuino.a(Sound.o) - 0x0000000000001f3c _ZN5Sound11stopPatternEv + 0x00000000000021ce 0x6 ../lib/libgamebuino.a(Sound.o) + 0x00000000000021ce _ZN5Sound11stopPatternEv .text._ZN5Sound13updatePatternEh - 0x0000000000001f42 0xcc ../lib/libgamebuino.a(Sound.o) - 0x0000000000001f42 _ZN5Sound13updatePatternEh + 0x00000000000021d4 0xcc ../lib/libgamebuino.a(Sound.o) + 0x00000000000021d4 _ZN5Sound13updatePatternEh .text._ZN5Sound13updatePatternEv - 0x000000000000200e 0x6 ../lib/libgamebuino.a(Sound.o) - 0x000000000000200e _ZN5Sound13updatePatternEv + 0x00000000000022a0 0x6 ../lib/libgamebuino.a(Sound.o) + 0x00000000000022a0 _ZN5Sound13updatePatternEv .text._ZN5Sound10updateNoteEh - 0x0000000000002014 0x184 ../lib/libgamebuino.a(Sound.o) - 0x0000000000002014 _ZN5Sound10updateNoteEh + 0x00000000000022a6 0x184 ../lib/libgamebuino.a(Sound.o) + 0x00000000000022a6 _ZN5Sound10updateNoteEh .text._ZN5Sound10updateNoteEv - 0x0000000000002198 0x6 ../lib/libgamebuino.a(Sound.o) - 0x0000000000002198 _ZN5Sound10updateNoteEv + 0x000000000000242a 0x6 ../lib/libgamebuino.a(Sound.o) + 0x000000000000242a _ZN5Sound10updateNoteEv .text._ZN5Sound14generateOutputEv - 0x000000000000219e 0x54 ../lib/libgamebuino.a(Sound.o) - 0x000000000000219e _ZN5Sound14generateOutputEv + 0x0000000000002430 0x54 ../lib/libgamebuino.a(Sound.o) + 0x0000000000002430 _ZN5Sound14generateOutputEv .text.__vector_11 - 0x00000000000021f2 0x48 ../lib/libgamebuino.a(Sound.o) - 0x00000000000021f2 __vector_11 + 0x0000000000002484 0x48 ../lib/libgamebuino.a(Sound.o) + 0x0000000000002484 __vector_11 .text._ZN5Sound6playOKEv - 0x000000000000223a 0x2c ../lib/libgamebuino.a(Sound.o) - 0x000000000000223a _ZN5Sound6playOKEv + 0x00000000000024cc 0x2c ../lib/libgamebuino.a(Sound.o) + 0x00000000000024cc _ZN5Sound6playOKEv .text._ZN5Sound10playCancelEv - 0x0000000000002266 0x2c ../lib/libgamebuino.a(Sound.o) - 0x0000000000002266 _ZN5Sound10playCancelEv + 0x00000000000024f8 0x2c ../lib/libgamebuino.a(Sound.o) + 0x00000000000024f8 _ZN5Sound10playCancelEv .text._ZN5Sound8playTickEv - 0x0000000000002292 0x2c ../lib/libgamebuino.a(Sound.o) - 0x0000000000002292 _ZN5Sound8playTickEv + 0x0000000000002524 0x2c ../lib/libgamebuino.a(Sound.o) + 0x0000000000002524 _ZN5Sound8playTickEv .text._ZN5Sound9setVolumeEa - 0x00000000000022be 0x1c ../lib/libgamebuino.a(Sound.o) - 0x00000000000022be _ZN5Sound9setVolumeEa + 0x0000000000002550 0x1c ../lib/libgamebuino.a(Sound.o) + 0x0000000000002550 _ZN5Sound9setVolumeEa .text._ZN9Backlight5beginEv - 0x00000000000022da 0x8 ../lib/libgamebuino.a(Backlight.o) - 0x00000000000022da _ZN9Backlight5beginEv + 0x000000000000256c 0x8 ../lib/libgamebuino.a(Backlight.o) + 0x000000000000256c _ZN9Backlight5beginEv .text._ZN9Backlight3setEh - 0x00000000000022e2 0x8 ../lib/libgamebuino.a(Backlight.o) - 0x00000000000022e2 _ZN9Backlight3setEh + 0x0000000000002574 0x8 ../lib/libgamebuino.a(Backlight.o) + 0x0000000000002574 _ZN9Backlight3setEh .text._ZN9Backlight6updateEv - 0x00000000000022ea 0xbe ../lib/libgamebuino.a(Backlight.o) - 0x00000000000022ea _ZN9Backlight6updateEv + 0x000000000000257c 0xbe ../lib/libgamebuino.a(Backlight.o) + 0x000000000000257c _ZN9Backlight6updateEv .text._ZN7Battery5beginEv - 0x00000000000023a8 0x14 ../lib/libgamebuino.a(Battery.o) - 0x00000000000023a8 _ZN7Battery5beginEv + 0x000000000000263a 0x14 ../lib/libgamebuino.a(Battery.o) + 0x000000000000263a _ZN7Battery5beginEv .text._ZN7Battery6updateEv - 0x00000000000023bc 0x72 ../lib/libgamebuino.a(Battery.o) - 0x00000000000023bc _ZN7Battery6updateEv + 0x000000000000264e 0x72 ../lib/libgamebuino.a(Battery.o) + 0x000000000000264e _ZN7Battery6updateEv .text.__vector_16 - 0x000000000000242e 0x94 ../lib/libarduino.a(wiring.o) - 0x000000000000242e __vector_16 - .text.millis 0x00000000000024c2 0x18 ../lib/libarduino.a(wiring.o) - 0x00000000000024c2 millis - .text.micros 0x00000000000024da 0x4a ../lib/libarduino.a(wiring.o) - 0x00000000000024da micros - .text.delay 0x0000000000002524 0x4c ../lib/libarduino.a(wiring.o) - 0x0000000000002524 delay - .text.init 0x0000000000002570 0x76 ../lib/libarduino.a(wiring.o) - 0x0000000000002570 init + 0x00000000000026c0 0x94 ../lib/libarduino.a(wiring.o) + 0x00000000000026c0 __vector_16 + .text.millis 0x0000000000002754 0x18 ../lib/libarduino.a(wiring.o) + 0x0000000000002754 millis + .text.micros 0x000000000000276c 0x4a ../lib/libarduino.a(wiring.o) + 0x000000000000276c micros + .text.delay 0x00000000000027b6 0x4c ../lib/libarduino.a(wiring.o) + 0x00000000000027b6 delay + .text.init 0x0000000000002802 0x76 ../lib/libarduino.a(wiring.o) + 0x0000000000002802 init .text.analogRead - 0x00000000000025e6 0x3a ../lib/libarduino.a(wiring_analog.o) - 0x00000000000025e6 analogRead + 0x0000000000002878 0x3a ../lib/libarduino.a(wiring_analog.o) + 0x0000000000002878 analogRead .text.analogWrite - 0x0000000000002620 0xbe ../lib/libarduino.a(wiring_analog.o) - 0x0000000000002620 analogWrite + 0x00000000000028b2 0xbe ../lib/libarduino.a(wiring_analog.o) + 0x00000000000028b2 analogWrite .text.turnOffPWM - 0x00000000000026de 0x52 ../lib/libarduino.a(wiring_digital.o) - .text.pinMode 0x0000000000002730 0x78 ../lib/libarduino.a(wiring_digital.o) - 0x0000000000002730 pinMode + 0x0000000000002970 0x52 ../lib/libarduino.a(wiring_digital.o) + .text.pinMode 0x00000000000029c2 0x78 ../lib/libarduino.a(wiring_digital.o) + 0x00000000000029c2 pinMode .text.digitalWrite - 0x00000000000027a8 0x5e ../lib/libarduino.a(wiring_digital.o) - 0x00000000000027a8 digitalWrite + 0x0000000000002a3a 0x5e ../lib/libarduino.a(wiring_digital.o) + 0x0000000000002a3a digitalWrite .text.digitalRead - 0x0000000000002806 0x52 ../lib/libarduino.a(wiring_digital.o) - 0x0000000000002806 digitalRead + 0x0000000000002a98 0x52 ../lib/libarduino.a(wiring_digital.o) + 0x0000000000002a98 digitalRead .text._ZN5Print5writeEPKhj - 0x0000000000002858 0x50 ../lib/libarduino.a(Print.o) - 0x0000000000002858 _ZN5Print5writeEPKhj + 0x0000000000002aea 0x50 ../lib/libarduino.a(Print.o) + 0x0000000000002aea _ZN5Print5writeEPKhj .text._ZN5Print5writeEPKc - 0x00000000000028a8 0x2a ../lib/libarduino.a(Print.o) - 0x00000000000028a8 _ZN5Print5writeEPKc + 0x0000000000002b3a 0x2a ../lib/libarduino.a(Print.o) + 0x0000000000002b3a _ZN5Print5writeEPKc .text._ZN5Print5printEPK19__FlashStringHelper - 0x00000000000028d2 0x46 ../lib/libarduino.a(Print.o) - 0x00000000000028d2 _ZN5Print5printEPK19__FlashStringHelper + 0x0000000000002b64 0x46 ../lib/libarduino.a(Print.o) + 0x0000000000002b64 _ZN5Print5printEPK19__FlashStringHelper .text._ZN5Print5printEc - 0x0000000000002918 0xe ../lib/libarduino.a(Print.o) - 0x0000000000002918 _ZN5Print5printEc + 0x0000000000002baa 0xe ../lib/libarduino.a(Print.o) + 0x0000000000002baa _ZN5Print5printEc .text._ZN5Print7printlnEv - 0x0000000000002926 0x28 ../lib/libarduino.a(Print.o) - 0x0000000000002926 _ZN5Print7printlnEv + 0x0000000000002bb8 0x28 ../lib/libarduino.a(Print.o) + 0x0000000000002bb8 _ZN5Print7printlnEv .text._ZN5Print7printlnEPK19__FlashStringHelper - 0x000000000000294e 0x24 ../lib/libarduino.a(Print.o) - 0x000000000000294e _ZN5Print7printlnEPK19__FlashStringHelper + 0x0000000000002be0 0x24 ../lib/libarduino.a(Print.o) + 0x0000000000002be0 _ZN5Print7printlnEPK19__FlashStringHelper .text._ZN5Print11printNumberEmh - 0x0000000000002972 0xac ../lib/libarduino.a(Print.o) - 0x0000000000002972 _ZN5Print11printNumberEmh + 0x0000000000002c04 0xac ../lib/libarduino.a(Print.o) + 0x0000000000002c04 _ZN5Print11printNumberEmh .text._ZN5Print5printEmi - 0x0000000000002a1e 0x1a ../lib/libarduino.a(Print.o) - 0x0000000000002a1e _ZN5Print5printEmi + 0x0000000000002cb0 0x1a ../lib/libarduino.a(Print.o) + 0x0000000000002cb0 _ZN5Print5printEmi .text._ZN5Print5printEji - 0x0000000000002a38 0xc ../lib/libarduino.a(Print.o) - 0x0000000000002a38 _ZN5Print5printEji + 0x0000000000002cca 0xc ../lib/libarduino.a(Print.o) + 0x0000000000002cca _ZN5Print5printEji .text._ZN5Print5printEli - 0x0000000000002a44 0x90 ../lib/libarduino.a(Print.o) - 0x0000000000002a44 _ZN5Print5printEli + 0x0000000000002cd6 0x90 ../lib/libarduino.a(Print.o) + 0x0000000000002cd6 _ZN5Print5printEli .text._ZN5Print5printEii - 0x0000000000002ad4 0xe ../lib/libarduino.a(Print.o) - 0x0000000000002ad4 _ZN5Print5printEii + 0x0000000000002d66 0xe ../lib/libarduino.a(Print.o) + 0x0000000000002d66 _ZN5Print5printEii .text._Z3maplllll - 0x0000000000002ae2 0x82 ../lib/libarduino.a(WMath.o) - 0x0000000000002ae2 _Z3maplllll + 0x0000000000002d74 0x82 ../lib/libarduino.a(WMath.o) + 0x0000000000002d74 _Z3maplllll .text.__cxa_pure_virtual - 0x0000000000002b64 0x2 ../lib/libarduino.a(forward.o) - 0x0000000000002b64 __cxa_pure_virtual + 0x0000000000002df6 0x2 ../lib/libarduino.a(forward.o) + 0x0000000000002df6 __cxa_pure_virtual .text._ZN8SPIClass5beginEv - 0x0000000000002b66 0x2c ../lib/libarduino.a(SPI.o) - 0x0000000000002b66 _ZN8SPIClass5beginEv + 0x0000000000002df8 0x2c ../lib/libarduino.a(SPI.o) + 0x0000000000002df8 _ZN8SPIClass5beginEv .text._ZN8SPIClass11setBitOrderEh - 0x0000000000002b92 0x12 ../lib/libarduino.a(SPI.o) - 0x0000000000002b92 _ZN8SPIClass11setBitOrderEh + 0x0000000000002e24 0x12 ../lib/libarduino.a(SPI.o) + 0x0000000000002e24 _ZN8SPIClass11setBitOrderEh .text._ZN8SPIClass11setDataModeEh - 0x0000000000002ba4 0xa ../lib/libarduino.a(SPI.o) - 0x0000000000002ba4 _ZN8SPIClass11setDataModeEh + 0x0000000000002e36 0xa ../lib/libarduino.a(SPI.o) + 0x0000000000002e36 _ZN8SPIClass11setDataModeEh .text._ZN8SPIClass15setClockDividerEh - 0x0000000000002bae 0x1e ../lib/libarduino.a(SPI.o) - 0x0000000000002bae _ZN8SPIClass15setClockDividerEh + 0x0000000000002e40 0x1e ../lib/libarduino.a(SPI.o) + 0x0000000000002e40 _ZN8SPIClass15setClockDividerEh .text.libgcc.mul - 0x0000000000002bcc 0x20 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_mulsi3.o) - 0x0000000000002bcc __mulsi3 + 0x0000000000002e5e 0x20 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_mulsi3.o) + 0x0000000000002e5e __mulsi3 .text.libgcc.div - 0x0000000000002bec 0x18 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_udivmodqi4.o) - 0x0000000000002bec __udivmodqi4 + 0x0000000000002e7e 0x18 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_udivmodqi4.o) + 0x0000000000002e7e __udivmodqi4 .text.libgcc.div - 0x0000000000002c04 0x28 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_udivmodhi4.o) - 0x0000000000002c04 __udivmodhi4 + 0x0000000000002e96 0x28 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_udivmodhi4.o) + 0x0000000000002e96 __udivmodhi4 .text.libgcc.div - 0x0000000000002c2c 0x28 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_divmodhi4.o) - 0x0000000000002c2c __divmodhi4 - 0x0000000000002c2c _div + 0x0000000000002ebe 0x28 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_divmodhi4.o) + 0x0000000000002ebe __divmodhi4 + 0x0000000000002ebe _div .text.libgcc.div - 0x0000000000002c54 0x44 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_udivmodsi4.o) - 0x0000000000002c54 __udivmodsi4 + 0x0000000000002ee6 0x44 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_udivmodsi4.o) + 0x0000000000002ee6 __udivmodsi4 .text.libgcc.div - 0x0000000000002c98 0x2e /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_divmodsi4.o) - 0x0000000000002c98 __divmodsi4 + 0x0000000000002f2a 0x2e /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_divmodsi4.o) + 0x0000000000002f2a __divmodsi4 .text.libgcc.div - 0x0000000000002cc6 0x10 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_negsi2.o) - 0x0000000000002cc6 __negsi2 + 0x0000000000002f58 0x10 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_negsi2.o) + 0x0000000000002f58 __negsi2 .text.libgcc.mul - 0x0000000000002cd6 0x16 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_muluhisi3.o) - 0x0000000000002cd6 __muluhisi3 - .text.libgcc 0x0000000000002cec 0xc /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_tablejump2.o) - 0x0000000000002cec __tablejump2__ + 0x0000000000002f68 0x16 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_muluhisi3.o) + 0x0000000000002f68 __muluhisi3 + .text.libgcc 0x0000000000002f7e 0xc /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_tablejump2.o) + 0x0000000000002f7e __tablejump2__ .text.libgcc.mul - 0x0000000000002cf8 0x1e /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_umulhisi3.o) - 0x0000000000002cf8 __umulhisi3 + 0x0000000000002f8a 0x1e /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_umulhisi3.o) + 0x0000000000002f8a __umulhisi3 .text.avr-libc.fplib - 0x0000000000002d16 0x5e /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libm.a(fixunssfsi.o) - 0x0000000000002d16 __fixunssfsi + 0x0000000000002fa8 0x5e /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libm.a(fixunssfsi.o) + 0x0000000000002fa8 __fixunssfsi .text.avr-libc.fplib - 0x0000000000002d74 0x7a /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libm.a(floatsisf.o) - 0x0000000000002d74 __floatunsisf - 0x0000000000002d78 __floatsisf + 0x0000000000003006 0x7a /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libm.a(floatsisf.o) + 0x0000000000003006 __floatunsisf + 0x000000000000300a __floatsisf .text.avr-libc.fplib - 0x0000000000002dee 0xc /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libm.a(fp_inf.o) - 0x0000000000002dee __fp_inf + 0x0000000000003080 0xc /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libm.a(fp_inf.o) + 0x0000000000003080 __fp_inf .text.avr-libc.fplib - 0x0000000000002dfa 0x6 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libm.a(fp_nan.o) - 0x0000000000002dfa __fp_nan + 0x000000000000308c 0x6 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libm.a(fp_nan.o) + 0x000000000000308c __fp_nan .text.avr-libc.fplib - 0x0000000000002e00 0xe /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libm.a(fp_pscA.o) - 0x0000000000002e00 __fp_pscA + 0x0000000000003092 0xe /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libm.a(fp_pscA.o) + 0x0000000000003092 __fp_pscA .text.avr-libc.fplib - 0x0000000000002e0e 0xe /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libm.a(fp_pscB.o) - 0x0000000000002e0e __fp_pscB + 0x00000000000030a0 0xe /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libm.a(fp_pscB.o) + 0x00000000000030a0 __fp_pscB .text.avr-libc.fplib - 0x0000000000002e1c 0x22 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libm.a(fp_round.o) - 0x0000000000002e1c __fp_round + 0x00000000000030ae 0x22 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libm.a(fp_round.o) + 0x00000000000030ae __fp_round .text.avr-libc.fplib - 0x0000000000002e3e 0x44 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libm.a(fp_split3.o) - 0x0000000000002e3e __fp_split3 - 0x0000000000002e4e __fp_splitA + 0x00000000000030d0 0x44 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libm.a(fp_split3.o) + 0x00000000000030d0 __fp_split3 + 0x00000000000030e0 __fp_splitA .text.avr-libc.fplib - 0x0000000000002e82 0xe /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libm.a(fp_zero.o) - 0x0000000000002e82 __fp_zero - 0x0000000000002e84 __fp_szero + 0x0000000000003114 0xe /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libm.a(fp_zero.o) + 0x0000000000003114 __fp_zero + 0x0000000000003116 __fp_szero .text.avr-libc.fplib - 0x0000000000002e90 0x8 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libm.a(mulsf3.o) - 0x0000000000002e90 __mulsf3 + 0x0000000000003122 0x8 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libm.a(mulsf3.o) + 0x0000000000003122 __mulsf3 .text.avr-libc.fplib - 0x0000000000002e98 0xd2 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libm.a(mulsf3x.o) - 0x0000000000002eb6 __mulsf3x - 0x0000000000002ebc __mulsf3_pse + 0x000000000000312a 0xd2 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libm.a(mulsf3x.o) + 0x0000000000003148 __mulsf3x + 0x000000000000314e __mulsf3_pse .text.avr-libc - 0x0000000000002f6a 0x1e /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libc.a(strncpy.o) - 0x0000000000002f6a strncpy - 0x0000000000002f88 . = ALIGN (0x2) + 0x00000000000031fc 0xe /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libc.a(memset.o) + 0x00000000000031fc memset + .text.avr-libc + 0x000000000000320a 0x1e /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libc.a(strncpy.o) + 0x000000000000320a strncpy + 0x0000000000003228 . = ALIGN (0x2) *(.fini9) - .fini9 0x0000000000002f88 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_exit.o) - 0x0000000000002f88 exit - 0x0000000000002f88 _exit + .fini9 0x0000000000003228 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_exit.o) + 0x0000000000003228 exit + 0x0000000000003228 _exit *(.fini9) *(.fini8) *(.fini8) @@ -1697,11 +1737,11 @@ END GROUP *(.fini1) *(.fini1) *(.fini0) - .fini0 0x0000000000002f88 0x4 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_exit.o) + .fini0 0x0000000000003228 0x4 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_exit.o) *(.fini0) - 0x0000000000002f8c _etext = . + 0x000000000000322c _etext = . -.data 0x0000000000800100 0x2a load address 0x0000000000002f8c +.data 0x0000000000800100 0x66 load address 0x000000000000322c 0x0000000000800100 PROVIDE (__data_start, .) *(.data) *(.data*) @@ -1712,71 +1752,77 @@ END GROUP 0x0000000000800101 analog_reference *(.rodata) *(.rodata*) - .rodata.str1.1 - 0x0000000000800102 0xc Obj/Game.o + .rodata._ZZN11HumanPlayer13buttonHandlerEvE23apBtnCameraHandlerTable + 0x0000000000800102 0x1c Obj/HumanPlayer.o + .rodata._ZZN11HumanPlayer13buttonHandlerEvE17apBtnHandlerTable + 0x000000000080011e 0x1c Obj/HumanPlayer.o .rodata._ZTV11HumanPlayer - 0x000000000080010e 0x6 Obj/HumanPlayer.o - 0x000000000080010e _ZTV11HumanPlayer + 0x000000000080013a 0x6 Obj/HumanPlayer.o + 0x000000000080013a _ZTV11HumanPlayer .rodata._ZTV6Player - 0x0000000000800114 0x6 Obj/Player.o - 0x0000000000800114 _ZTV6Player + 0x0000000000800140 0x6 Obj/Player.o + 0x0000000000800140 _ZTV6Player + .rodata._ZZN4Unit11drawHandlerEvE17au8PeasantSprData + 0x0000000000800146 0xa Obj/Unit.o + .rodata._ZZN4Unit11drawHandlerEvE23apu8UnitSpriteDataTable + 0x0000000000800150 0x6 Obj/Unit.o .rodata._ZTV7Display - 0x000000000080011a 0x8 ../lib/libgamebuino.a(Display.o) - 0x000000000080011a _ZTV7Display + 0x0000000000800156 0x8 ../lib/libgamebuino.a(Display.o) + 0x0000000000800156 _ZTV7Display .rodata.str1.1 - 0x0000000000800122 0x7 ../lib/libgamebuino.a(Gamebuino.o) + 0x000000000080015e 0x7 ../lib/libgamebuino.a(Gamebuino.o) *(.gnu.linkonce.d*) - 0x000000000080012a . = ALIGN (0x2) - *fill* 0x0000000000800129 0x1 - 0x000000000080012a _edata = . - 0x000000000080012a PROVIDE (__data_end, .) + 0x0000000000800166 . = ALIGN (0x2) + *fill* 0x0000000000800165 0x1 + 0x0000000000800166 _edata = . + 0x0000000000800166 PROVIDE (__data_end, .) -.bss 0x000000000080012a 0x296 - 0x000000000080012a PROVIDE (__bss_start, .) +.bss 0x0000000000800166 0x296 + 0x0000000000800166 PROVIDE (__bss_start, .) *(.bss) *(.bss*) - .bss.gb 0x000000000080012a 0x87 Obj/System.o - 0x000000000080012a gb + .bss.gb 0x0000000000800166 0x87 Obj/System.o + 0x0000000000800166 gb .bss._displayBuffer - 0x00000000008001b1 0x200 ../lib/libgamebuino.a(Display.o) - 0x00000000008001b1 _displayBuffer + 0x00000000008001ed 0x200 ../lib/libgamebuino.a(Display.o) + 0x00000000008001ed _displayBuffer .bss._chanNoise - 0x00000000008003b1 0x1 ../lib/libgamebuino.a(Sound.o) - 0x00000000008003b1 _chanNoise + 0x00000000008003ed 0x1 ../lib/libgamebuino.a(Sound.o) + 0x00000000008003ed _chanNoise .bss._chanOutput - 0x00000000008003b2 0x1 ../lib/libgamebuino.a(Sound.o) - 0x00000000008003b2 _chanOutput + 0x00000000008003ee 0x1 ../lib/libgamebuino.a(Sound.o) + 0x00000000008003ee _chanOutput .bss._chanOutputVolume - 0x00000000008003b3 0x1 ../lib/libgamebuino.a(Sound.o) - 0x00000000008003b3 _chanOutputVolume + 0x00000000008003ef 0x1 ../lib/libgamebuino.a(Sound.o) + 0x00000000008003ef _chanOutputVolume .bss._chanHalfPeriod - 0x00000000008003b4 0x1 ../lib/libgamebuino.a(Sound.o) - 0x00000000008003b4 _chanHalfPeriod + 0x00000000008003f0 0x1 ../lib/libgamebuino.a(Sound.o) + 0x00000000008003f0 _chanHalfPeriod .bss._chanState - 0x00000000008003b5 0x1 ../lib/libgamebuino.a(Sound.o) - 0x00000000008003b5 _chanState + 0x00000000008003f1 0x1 ../lib/libgamebuino.a(Sound.o) + 0x00000000008003f1 _chanState .bss._chanCount - 0x00000000008003b6 0x1 ../lib/libgamebuino.a(Sound.o) - 0x00000000008003b6 _chanCount + 0x00000000008003f2 0x1 ../lib/libgamebuino.a(Sound.o) + 0x00000000008003f2 _chanCount .bss.timer0_fract - 0x00000000008003b7 0x1 ../lib/libarduino.a(wiring.o) + 0x00000000008003f3 0x1 ../lib/libarduino.a(wiring.o) .bss.timer0_millis - 0x00000000008003b8 0x4 ../lib/libarduino.a(wiring.o) - 0x00000000008003b8 timer0_millis + 0x00000000008003f4 0x4 ../lib/libarduino.a(wiring.o) + 0x00000000008003f4 timer0_millis .bss.timer0_overflow_count - 0x00000000008003bc 0x4 ../lib/libarduino.a(wiring.o) - 0x00000000008003bc timer0_overflow_count + 0x00000000008003f8 0x4 ../lib/libarduino.a(wiring.o) + 0x00000000008003f8 timer0_overflow_count *(COMMON) - 0x00000000008003c0 PROVIDE (__bss_end, .) - 0x0000000000002f8c __data_load_start = LOADADDR (.data) - 0x0000000000002fb6 __data_load_end = (__data_load_start + SIZEOF (.data)) + 0x00000000008003fc PROVIDE (__bss_end, .) + 0x000000000000322c __data_load_start = LOADADDR (.data) + 0x0000000000003292 __data_load_end = (__data_load_start + SIZEOF (.data)) -.noinit 0x00000000008003c0 0x0 +.noinit 0x00000000008003fc 0x0 [!provide] PROVIDE (__noinit_start, .) *(.noinit*) [!provide] PROVIDE (__noinit_end, .) - 0x00000000008003c0 _end = . - 0x00000000008003c0 PROVIDE (__heap_start, .) + 0x00000000008003fc _end = . + 0x00000000008003fc PROVIDE (__heap_start, .) .eeprom 0x0000000000810000 0x0 *(.eeprom*) @@ -1822,8 +1868,11 @@ END GROUP .comment 0x0000000000000011 0x12 Obj/Game.o .comment 0x0000000000000011 0x12 Obj/System.o .comment 0x0000000000000011 0x12 Obj/HumanPlayer.o + .comment 0x0000000000000011 0x12 Obj/Sprite.o .comment 0x0000000000000011 0x12 Obj/Player.o .comment 0x0000000000000011 0x12 Obj/Camera.o + .comment 0x0000000000000011 0x12 Obj/BaseUnit.o + .comment 0x0000000000000011 0x12 Obj/Unit.o .comment 0x0000000000000011 0x12 Obj/Menu.o .comment 0x0000000000000011 0x12 ../lib/libgamebuino.a(Buttons.o) .comment 0x0000000000000011 0x12 ../lib/libgamebuino.a(Display.o) diff --git a/Game.cpp b/Game.cpp index 175d247..1338e9b 100644 --- a/Game.cpp +++ b/Game.cpp @@ -17,10 +17,16 @@ * Types definition * ******************************************************************/ +/*****************************************************************//** + * + * \brief This enum holds different options to be selected + * under pause menu. + * + *********************************************************************/ enum tPauseMenuChoice { - PAUSE_MENU_CHOICE_RESUME, - PAUSE_MENU_CHOICE_QUIT, + PAUSE_MENU_CHOICE_RESUME, /**< Resumes the game. */ + PAUSE_MENU_CHOICE_QUIT, /**< Exits the game. */ MAX_PAUSE_MENU_CHOICES, }; @@ -37,6 +43,7 @@ enum tPauseMenuChoice * Local prototypes declaration * ******************************************************************/ +static void GameNextFrame(const struct tGameConfig& sGameConfig); static enum tPauseMenuChoice GamePause(void); /* ******************************************************************* @@ -47,8 +54,11 @@ static enum tPauseMenuChoice GamePause(void); * * \brief Entry point for gameplay logic. * + * \param sGameConfig + * Game configuration structure. + * *********************************************************************/ -void Game(const struct tGameConfig& psGameConfig) +void Game(const struct tGameConfig& sGameConfig) { #if 0 Sprite MouseSpr( MouseSprData, @@ -61,20 +71,56 @@ void Game(const struct tGameConfig& psGameConfig) do { + /* Calculate next frame. */ + GameNextFrame(sGameConfig); + /* Do not calculate a new frame * until refresh flag is set. */ while (gb.update() == false); } while (GamePause() != PAUSE_MENU_CHOICE_QUIT); } +/*****************************************************************//** + * + * \brief This function calculates a new frame by calling + * all handlers. + * + * \param sGameConfig + * Game configuration structure. + * + *********************************************************************/ +static void GameNextFrame(const struct tGameConfig& sGameConfig) +{ + for (uint8_t i = 0; i < sGameConfig.u8NHumanPlayers; i++) + { + HumanPlayer* pHumanPlayerData = &sGameConfig.pHumanPlayerData[i]; + + if (pHumanPlayerData != NULL) + { + pHumanPlayerData->handler(); + } + } +} + +/*****************************************************************//** + * + * \brief When C button is pressed, this function evaluates + * user actions to determine whether game must be exited. + * + *********************************************************************/ static enum tPauseMenuChoice GamePause(void) { if (gb.buttons.released(BTN_C) != false) { + /* Strings must be individually allocated into + * PROGMEM so they can be read correctly by gb.menu(). */ + static const char strPauseMenuOption_0[] PROGMEM = "Resume"; + static const char strPauseMenuOption_1[] PROGMEM = "Quit"; + static const char* const astrPauseMenuOptions[MAX_PAUSE_MENU_CHOICES] PROGMEM = { - [PAUSE_MENU_CHOICE_RESUME] = "Resume", - [PAUSE_MENU_CHOICE_QUIT] = "Quit" + [PAUSE_MENU_CHOICE_RESUME] = strPauseMenuOption_0, + [PAUSE_MENU_CHOICE_QUIT] = strPauseMenuOption_1 }; return (enum tPauseMenuChoice)gb.menu(astrPauseMenuOptions, MAX_PAUSE_MENU_CHOICES); diff --git a/Game.h b/Game.h index 5021c87..2f9760e 100644 --- a/Game.h +++ b/Game.h @@ -1,20 +1,20 @@ #ifndef GAMEPLAY_H__ #define GAMEPLAY_H__ -/* ************************************** - * Includes * - * **************************************/ +/* ******************************************************************* + * Includes + * ******************************************************************/ #include "HumanPlayer.h" #include -/* ************************************** - * Defines * - * **************************************/ +/* ******************************************************************* + * Defines + * ******************************************************************/ -/* ************************************** - * Structs and enums * - * **************************************/ +/* ******************************************************************* + * Global types definition + * ******************************************************************/ struct tGameConfig { @@ -22,14 +22,18 @@ struct tGameConfig uint8_t u8NHumanPlayers; }; -/* ************************************** - * Global prototypes * - * **************************************/ +/* ******************************************************************* + * Global variables declaration + * ******************************************************************/ -void Game(const struct tGameConfig& psGameConfig); +/* ******************************************************************* + * Global functions declaration + * ******************************************************************/ -/* ************************************** - * Global variables * - * **************************************/ +void Game(const struct tGameConfig& sGameConfig); + +/* ******************************************************************* + * Class definition + * ******************************************************************/ #endif /* GAMEPLAY_H__ */ diff --git a/HumanPlayer.cpp b/HumanPlayer.cpp index c9b60e4..ae16f97 100644 --- a/HumanPlayer.cpp +++ b/HumanPlayer.cpp @@ -39,6 +39,24 @@ HumanPlayer::HumanPlayer(const char* const strPlayerName) : Player(strPlayerName) { + _unitsMap[0].create(Unit::UNIT_ID_PEASANT); +} + +/*****************************************************************//** + * + * \brief Periodical event handler that calls HumanPlayer subtasks. + * + *********************************************************************/ +void HumanPlayer::handler(void) +{ + this->buttonHandler(); + + for (uint8_t i = 0; i < MAX_UNITS; i++) + { + Unit& unit = _unitsMap[i]; + + unit.handler(); + } } /*****************************************************************//** @@ -53,7 +71,7 @@ void HumanPlayer::buttonHandler(void) { /* This array of member functions lists * button pressed event handlers for each button. */ - void (HumanPlayer::*const apBtnHandlerTable[NUM_BTN])(void) = + static void (HumanPlayer::*const apBtnHandlerTable[NUM_BTN])(void) = { [BTN_LEFT] = NULL, [BTN_UP] = NULL, @@ -63,7 +81,7 @@ void HumanPlayer::buttonHandler(void) [BTN_B] = &HumanPlayer::onBBtnPressed }; - void (Camera::*const apBtnCameraHandlerTable[NUM_BTN])(void) = + static void (Camera::*const apBtnCameraHandlerTable[NUM_BTN])(void) = { [BTN_LEFT] = &Camera::onLeftBtnPressed, [BTN_UP] = NULL, @@ -71,7 +89,6 @@ void HumanPlayer::buttonHandler(void) [BTN_DOWN] = NULL }; - /* Member function pointer is valid. */ if (gb.buttons.pressed(u8Btn)) { /* Key has been pressed. Execute both @@ -105,26 +122,38 @@ void HumanPlayer::buttonHandler(void) /* Undefined callback for selected button. */ } } + else + { + /* Key has not been pressed. Exit. */ + } } } /*****************************************************************//** * * \brief Event handler executed when human player presses - * left arrow button. + * A button. * *********************************************************************/ -void HumanPlayer::onLeftBtnPressed(void) -{ - /* Also, send the event to Camera object. */ - _cam.onLeftBtnPressed(); -} - void HumanPlayer::onABtnPressed(void) { } +/*****************************************************************//** + * + * \brief Event handler executed when human player presses + * B button. + * + *********************************************************************/ +void HumanPlayer::onBBtnPressed(void) +{ +} + +/*****************************************************************//** + * + * \brief This function draws all units and player UI. + * + *********************************************************************/ void HumanPlayer::drawHandler(void) { - } diff --git a/HumanPlayer.h b/HumanPlayer.h index 17986ba..5f213c4 100644 --- a/HumanPlayer.h +++ b/HumanPlayer.h @@ -24,15 +24,14 @@ class HumanPlayer : public Player { public: explicit HumanPlayer(const char* const strPlayerName); - void drawHandler(void); + void handler(void); private: Camera _cam; void buttonHandler(void); + void drawHandler(void); /* Event handlers. */ - void onLeftBtnPressed(void); - void onRightBtnPressed(void); void onABtnPressed(void); void onBBtnPressed(void); }; diff --git a/Makefile b/Makefile index d047fd3..98922d9 100644 --- a/Makefile +++ b/Makefile @@ -14,7 +14,7 @@ OBJ_DIR = Obj SRC_DIR = . OBJECTS=$(addprefix $(OBJ_DIR)/,main.o Game.o System.o HumanPlayer.o Sprite.o \ - Player.o Camera.o Unit.o Menu.o ) + Player.o Camera.o BaseUnit.o Unit.o Menu.o ) DEPS = $(OBJECTS:.o=.d) diff --git a/MouseSpr.i b/MouseSpr.i index 91bc2ef..374e40d 100644 --- a/MouseSpr.i +++ b/MouseSpr.i @@ -1,11 +1,31 @@ #ifndef MOUSE_SPR_I__ #define MOUSE_SPR_I__ +/* ******************************************************************* + * Includes + * ******************************************************************/ + #include #include #include -const uint8_t PROGMEM MouseSprData[] = +/* ******************************************************************* + * Defines + * ******************************************************************/ + +/* ******************************************************************* + * Types definition + * ******************************************************************/ + +/* ******************************************************************* + * Global variables definition + * ******************************************************************/ + +/* ******************************************************************* + * Local variables definition + * ******************************************************************/ + +const uint8_t MouseSprData[] PROGMEM = { 8,8, //width and height B11111100, @@ -18,4 +38,12 @@ const uint8_t PROGMEM MouseSprData[] = B00000100 }; +/* ******************************************************************* + * Local prototypes declaration + * ******************************************************************/ + +/* ******************************************************************* + * Functions definition + * ******************************************************************/ + #endif /* MOUSE_SPR_I__ */ diff --git a/Player.cpp b/Player.cpp index b90e9fa..e8c6e86 100644 --- a/Player.cpp +++ b/Player.cpp @@ -34,8 +34,14 @@ * \brief Constructor for Player class. * *********************************************************************/ -Player::Player(const char* const strPlayerName) +Player::Player(const char* const strPlayerName): +_name{'\0'} { + enum + { + DEFAULT_RESOURCES = 300 + }; + if (strPlayerName != NULL) { strncpy(_name, strPlayerName, MAX_NAME_LENGTH); @@ -44,4 +50,7 @@ Player::Player(const char* const strPlayerName) { /* Undefined player name. */ } + + /* Set all resources to default value. */ + memset(_resourcesMap, DEFAULT_RESOURCES, sizeof(uint8_t) * MAX_RESOURCE_TYPES); } diff --git a/Player.h b/Player.h index 6e89052..b0a91c7 100644 --- a/Player.h +++ b/Player.h @@ -6,6 +6,7 @@ * **************************************/ #include +#include "Unit.h" /* ************************************** * Defines * @@ -39,11 +40,13 @@ class Player protected: enum { - MAX_NAME_LENGTH = 16 + MAX_NAME_LENGTH = 16, + MAX_UNITS = 32 }; - uint16_t _resourcesMap[MAX_RESOURCE_TYPES] = {0}; - char _name[MAX_NAME_LENGTH] = {0}; + uint16_t _resourcesMap[MAX_RESOURCE_TYPES]; + char _name[MAX_NAME_LENGTH]; + Unit _unitsMap[MAX_UNITS]; }; #endif /* PLAYER_H__ */ diff --git a/PocketEmpires.geany b/PocketEmpires.geany index 98143c2..082a8eb 100644 --- a/PocketEmpires.geany +++ b/PocketEmpires.geany @@ -28,34 +28,38 @@ long_line_behaviour=1 long_line_column=120 [files] -current_page=2 +current_page=30 FILE_NAME_0=0;C++;0;EUTF-8;0;1;0;%2Fhome%2Fxavier%2FPocketEmpires%2Fsrc%2FGfx.cpp;0;4 -FILE_NAME_1=889;C++;0;EUTF-8;0;1;0;%2Fhome%2Fxavier%2FPocketEmpires%2Fsrc%2Fmain.cpp;0;4 -FILE_NAME_2=1577;C++;0;EUTF-8;0;1;0;%2Fhome%2Fxavier%2FPocketEmpires%2Fsrc%2FMenu.cpp;0;4 +FILE_NAME_1=0;C++;0;EUTF-8;0;1;0;%2Fhome%2Fxavier%2FPocketEmpires%2Fsrc%2Fmain.cpp;0;4 +FILE_NAME_2=3361;C++;0;EUTF-8;0;1;0;%2Fhome%2Fxavier%2FPocketEmpires%2Fsrc%2FMenu.cpp;0;4 FILE_NAME_3=317;C++;0;EUTF-8;0;1;0;%2Fhome%2Fxavier%2FPocketEmpires%2Fsrc%2FPad.cpp;0;4 -FILE_NAME_4=874;C++;0;EUTF-8;0;1;0;%2Fhome%2Fxavier%2FPocketEmpires%2Fsrc%2FCamera.h;0;4 +FILE_NAME_4=772;C++;0;EUTF-8;0;1;0;%2Fhome%2Fxavier%2FPocketEmpires%2Fsrc%2FCamera.h;0;4 FILE_NAME_5=665;C++;0;EUTF-8;0;1;0;%2Fhome%2Fxavier%2FPocketEmpires%2Fsrc%2FGfx.h;0;4 FILE_NAME_6=314;C++;0;EUTF-8;0;1;0;%2Fhome%2Fxavier%2FPocketEmpires%2Fsrc%2FGlobal_Inc.h;0;4 FILE_NAME_7=299;C++;0;EUTF-8;0;1;0;%2Fhome%2Fxavier%2FPocketEmpires%2Fsrc%2FMenu.h;0;4 -FILE_NAME_8=651;C++;0;EUTF-8;0;1;0;%2Fhome%2Fxavier%2FPocketEmpires%2Fsrc%2FPad.h;0;4 -FILE_NAME_9=868;C++;0;EUTF-8;0;1;0;%2Fhome%2Fxavier%2FPocketEmpires%2Fsrc%2FPlayer.h;0;4 +FILE_NAME_8=611;C++;0;EUTF-8;0;1;0;%2Fhome%2Fxavier%2FPocketEmpires%2Fsrc%2FPad.h;0;4 +FILE_NAME_9=728;C++;0;EUTF-8;0;1;0;%2Fhome%2Fxavier%2FPocketEmpires%2Fsrc%2FPlayer.h;0;4 FILE_NAME_10=543;Make;0;EUTF-8;1;1;0;%2Fhome%2Fxavier%2FPocketEmpires%2Fsrc%2FMakefile;0;4 -FILE_NAME_11=1466;C++;0;EUTF-8;0;1;0;%2Fhome%2Fxavier%2FPocketEmpires%2Fsrc%2FSystem.cpp;0;4 -FILE_NAME_12=670;C++;0;EUTF-8;0;1;0;%2Fhome%2Fxavier%2FPocketEmpires%2Fsrc%2FHumanPlayer.h;0;4 -FILE_NAME_13=1034;C++;0;EUTF-8;0;1;0;%2Fhome%2Fxavier%2FPocketEmpires%2Fsrc%2FHumanPlayer.cpp;0;4 -FILE_NAME_14=164;C++;0;EUTF-8;0;1;0;%2Fhome%2Fxavier%2FPocketEmpires%2Fsrc%2FPlayer.cpp;0;4 -FILE_NAME_15=331;None;0;EUTF-8;0;1;0;%2Fhome%2Fxavier%2FPocketEmpires%2Fsrc%2FMouseSpr.i;0;4 -FILE_NAME_16=2015;C++;0;EUTF-8;0;1;0;%2Fhome%2Fxavier%2FPocketEmpires%2Fsrc%2FGame.cpp;0;4 -FILE_NAME_17=725;C++;0;EUTF-8;0;1;0;%2Fhome%2Fxavier%2FPocketEmpires%2Fsrc%2FGame.h;0;4 -FILE_NAME_18=910;C++;0;EUTF-8;0;1;0;%2Fhome%2Fxavier%2FPocketEmpires%2Fsrc%2FCamera.cpp;0;4 -FILE_NAME_19=1377;C;0;EUTF-8;0;1;0;%2Fhome%2Fxavier%2FPocketEmpires%2Fsrc%2FCameraOld.c;0;4 -FILE_NAME_20=476;C++;0;EUTF-8;0;1;0;%2Fhome%2Fxavier%2FPocketEmpires%2Fsrc%2FSprite.h;0;4 -FILE_NAME_21=854;C++;0;EUTF-8;0;1;0;%2Fhome%2Fxavier%2FPocketEmpires%2Fsrc%2FSprite.cpp;0;4 -FILE_NAME_22=818;C++;0;EUTF-8;0;1;0;%2Fhome%2Fxavier%2FPocketEmpires%2Fsrc%2FSystem.h;0;4 -FILE_NAME_23=486;C++;0;EUTF-8;0;1;0;%2Fhome%2Fxavier%2FPocketEmpires%2Fsrc%2FUnit.h;0;4 -FILE_NAME_24=115;C++;0;EUTF-8;0;1;0;%2Fhome%2Fxavier%2FPocketEmpires%2Fsrc%2FUnit.cpp;0;4 -FILE_NAME_25=2863;C++;0;EUTF-8;0;1;0;%2Fhome%2Fxavier%2FPocketEmpires%2Fsrc%2FLibs%2Flibgamebuino%2FDisplay.h;0;4 -FILE_NAME_26=7382;C++;0;EUTF-8;0;1;0;%2Fhome%2Fxavier%2FPocketEmpires%2Fsrc%2FLibs%2Flibgamebuino%2FGamebuino.cpp;0;4 +FILE_NAME_11=0;C++;0;EUTF-8;0;1;0;%2Fhome%2Fxavier%2FPocketEmpires%2Fsrc%2FSystem.cpp;0;4 +FILE_NAME_12=875;C++;0;EUTF-8;0;1;0;%2Fhome%2Fxavier%2FPocketEmpires%2Fsrc%2FHumanPlayer.h;0;4 +FILE_NAME_13=4115;C++;0;EUTF-8;0;1;0;%2Fhome%2Fxavier%2FPocketEmpires%2Fsrc%2FHumanPlayer.cpp;0;4 +FILE_NAME_14=1662;C++;0;EUTF-8;0;1;0;%2Fhome%2Fxavier%2FPocketEmpires%2Fsrc%2FPlayer.cpp;0;4 +FILE_NAME_15=3287;C++;0;EUTF-8;0;1;0;%2Fhome%2Fxavier%2FPocketEmpires%2Fsrc%2FGame.cpp;0;4 +FILE_NAME_16=1226;C++;0;EUTF-8;0;1;0;%2Fhome%2Fxavier%2FPocketEmpires%2Fsrc%2FGame.h;0;4 +FILE_NAME_17=1965;C++;0;EUTF-8;0;1;0;%2Fhome%2Fxavier%2FPocketEmpires%2Fsrc%2FCamera.cpp;0;4 +FILE_NAME_18=1377;C;0;EUTF-8;0;1;0;%2Fhome%2Fxavier%2FPocketEmpires%2Fsrc%2FCameraOld.c;0;4 +FILE_NAME_19=586;C++;0;EUTF-8;0;1;0;%2Fhome%2Fxavier%2FPocketEmpires%2Fsrc%2FSprite.h;0;4 +FILE_NAME_20=0;C++;0;EUTF-8;0;1;0;%2Fhome%2Fxavier%2FPocketEmpires%2Fsrc%2FSprite.cpp;0;4 +FILE_NAME_21=818;C++;0;EUTF-8;0;1;0;%2Fhome%2Fxavier%2FPocketEmpires%2Fsrc%2FSystem.h;0;4 +FILE_NAME_22=5650;C++;0;EUTF-8;0;1;0;%2Fhome%2Fxavier%2FPocketEmpires%2Fsrc%2FLibs%2Flibgamebuino%2FDisplay.h;0;4 +FILE_NAME_23=14993;C++;0;EUTF-8;0;1;0;%2Fhome%2Fxavier%2FPocketEmpires%2Fsrc%2FLibs%2Flibgamebuino%2FGamebuino.cpp;0;4 +FILE_NAME_24=0;C++;0;EUTF-8;0;1;0;%2Fhome%2Fxavier%2FPocketEmpires%2Fsrc%2FLibs%2Flibgamebuino%2FGamebuino.h;0;4 +FILE_NAME_25=833;C++;0;EUTF-8;0;1;0;%2Fhome%2Fxavier%2FPocketEmpires%2Fsrc%2FLibs%2Flibgamebuino%2FButtons.cpp;0;4 +FILE_NAME_26=0;C++;0;EUTF-8;0;1;0;%2Fhome%2Fxavier%2FPocketEmpires%2Fsrc%2FLibs%2Flibgamebuino%2FButtons.h;0;4 +FILE_NAME_27=3441;C;0;EUTF-8;0;1;0;%2Fhome%2Fxavier%2FPocketEmpires%2Fsrc%2FLibs%2Flibgamebuino%2Fsettings.c;0;4 +FILE_NAME_28=22712;C++;0;EUTF-8;0;1;0;%2Fhome%2Fxavier%2FPocketEmpires%2Fsrc%2FLibs%2Flibgamebuino%2FDisplay.cpp;0;4 +FILE_NAME_29=1190;C++;0;EUTF-8;0;1;0;%2Fhome%2Fxavier%2FPocketEmpires%2Fsrc%2FBaseUnit.cpp;0;4 +FILE_NAME_30=1233;C++;0;EUTF-8;0;1;0;%2Fhome%2Fxavier%2FPocketEmpires%2Fsrc%2FBaseUnit.h;0;4 [VTE] last_dir=/home/xavier/PocketEmpires/src diff --git a/Sprite.cpp b/Sprite.cpp index ea7f9d2..d948652 100644 --- a/Sprite.cpp +++ b/Sprite.cpp @@ -3,6 +3,7 @@ * ******************************************************************/ #include "Sprite.h" +#include "System.h" /* ******************************************************************* * Defines @@ -32,8 +33,46 @@ * * \brief Constructor for Sprite class. * + * \param pu8SprData + * Pointer to raw sprite data. + * + * \param u8Colour + * Sprite colour. Default value is BLACK. + * + * \param rotation + * Sprite rotation. Default value is NOROT. + * *********************************************************************/ -Sprite::Sprite(const uint8_t& pu8SprData) : -_pu8SprData(pu8SprData) +Sprite::Sprite(const uint8_t& pu8SprData, const uint8_t u8Colour, const uint8_t rotation) : +_pu8SprData(pu8SprData), +_colour(u8Colour), +_rotation(rotation), +_x(0), +_y(0) { } + +/*****************************************************************//** + * + * \brief Reportedly, this function updates X/Y coordinates for + * a Sprite object. + * + * \param x + * X position, relative to screen coordinates origin. + * + * \param y + * Y position, relative to screen coordinates origin. + * + *********************************************************************/ +void Sprite::setPos(const uint8_t x, const uint8_t y) +{ + /* Update coords according to input parameters. */ + _x = x; + _y = y; +} + +void Sprite::draw(void) +{ + gb.display.setColor(_colour); + gb.display.drawBitmap(_x, _y, (const uint8_t*)&_pu8SprData); +} diff --git a/Sprite.h b/Sprite.h index d690ddd..c365735 100644 --- a/Sprite.h +++ b/Sprite.h @@ -5,6 +5,7 @@ * Includes * *************************************/ +#include #include /* ************************************* @@ -22,10 +23,16 @@ class Sprite { public: - Sprite(const uint8_t& pu8SprData); + Sprite(const uint8_t& pu8SprData, const uint8_t u8Colour = BLACK, const uint8_t rotation = NOFLIP); + void setPos(const uint8_t x, const uint8_t y); + void draw(void); private: const uint8_t& _pu8SprData; + uint8_t _colour; + uint8_t _rotation; + uint8_t _x; + uint8_t _y; }; #endif /* SPRITE_H__ */ diff --git a/Unit.cpp b/Unit.cpp new file mode 100644 index 0000000..38535e7 --- /dev/null +++ b/Unit.cpp @@ -0,0 +1,102 @@ +/* ******************************************************************* + * Includes + * ******************************************************************/ + +#include "BaseUnit.h" +#include "Unit.h" +#include "Sprite.h" +#include +#include +#include + +/* ******************************************************************* + * Defines + * ******************************************************************/ + +/* ******************************************************************* + * Types definition + * ******************************************************************/ + +/* ******************************************************************* + * Global variables definition + * ******************************************************************/ + +/* ******************************************************************* + * Local variables definition + * ******************************************************************/ + +/* ******************************************************************* + * Local prototypes declaration + * ******************************************************************/ + +/* ******************************************************************* + * Functions definition + * ******************************************************************/ + +/*****************************************************************//** + * + * \brief Constructor for Unit class. + * + *********************************************************************/ +Unit::Unit(const enum Unit::tUnitID eUnitID) : +BaseUnit(), +_eUnitID(eUnitID) +{ +} + +void Unit::create(const enum Unit::tUnitID eUnitID) +{ + _eUnitID = eUnitID; +} + +/*****************************************************************//** + * + * \brief Periodical handler for Unit class. + * + *********************************************************************/ +void Unit::handler(void) +{ + /* Execute base class handler. */ + BaseUnit::handler(); + + drawHandler(); +} + +void Unit::drawHandler(void) +{ + if (_eUnitID < MAX_UNIT_ID) + { + static const uint8_t au8PeasantSprData[] = + { + 8, + 8, + 0x00, + 0x3C, + 0x42, + 0x99, + 0xA5, + 0x66, + 0x18, + 0x00 + }; + + static const uint8_t* const apu8UnitSpriteDataTable[MAX_UNIT_ID] = + { + [UNIT_ID_NONE] = NULL, + [UNIT_ID_PEASANT] = au8PeasantSprData, + [UNIT_ID_SWORDMAN] = NULL + }; + + const uint8_t* const pu8UnitSpriteData = apu8UnitSpriteDataTable[_eUnitID]; + + Sprite spr(*pu8UnitSpriteData); + + spr.setPos(16, 16); + + spr.draw(); + } + else + { + /* Unit has an invalid ID. Exit. */ + } +} diff --git a/Unit.h b/Unit.h new file mode 100644 index 0000000..960154a --- /dev/null +++ b/Unit.h @@ -0,0 +1,53 @@ +#ifndef UNIT_H__ +#define UNIT_H__ + +/* ******************************************************************* + * Includes + * ******************************************************************/ + +#include "BaseUnit.h" +#include +#include + +/* ******************************************************************* + * Defines + * ******************************************************************/ + +/* ******************************************************************* + * Global types definition + * ******************************************************************/ + +/* ******************************************************************* + * Global variables declaration + * ******************************************************************/ + +/* ******************************************************************* + * Global functions declaration + * ******************************************************************/ + +/* ******************************************************************* + * Class definition + * ******************************************************************/ + +class Unit : public BaseUnit +{ + public: + enum tUnitID + { + UNIT_ID_NONE, + UNIT_ID_PEASANT, + UNIT_ID_SWORDMAN, + + MAX_UNIT_ID + }; + + explicit Unit(const Unit::tUnitID eUnitID = UNIT_ID_NONE); + void create(const enum Unit::tUnitID eUnitID); + void handler(void); + + private: + void drawHandler(void); + enum tUnitID _eUnitID; +}; + +#endif /* UNIT_H__ */