diff options
| author | XaviDCR92 <xavi.dcr@gmail.com> | 2018-08-02 00:54:01 +0200 |
|---|---|---|
| committer | XaviDCR92 <xavi.dcr@gmail.com> | 2018-08-02 00:54:01 +0200 |
| commit | c501d0e4e732e09a4a75d873e976b2c801ef7920 (patch) | |
| tree | 0926b6b4bf2448130800f993335ec36c54f74a7a | |
| parent | c3a69de5c2e822d91e8284ac65eda83fed6476ba (diff) | |
+ Started unit selection implementation. Not finished yet.
| -rw-r--r-- | BaseUnit.cpp | 58 | ||||
| -rw-r--r-- | BaseUnit.h | 3 | ||||
| -rwxr-xr-x | Exe/POCKET.ELF | bin | 32916 -> 33516 bytes | |||
| -rw-r--r-- | Exe/POCKET.HEX | 1663 | ||||
| -rw-r--r-- | Exe/POCKET.MAP | 657 | ||||
| -rw-r--r-- | HumanPlayer.cpp | 42 | ||||
| -rw-r--r-- | PocketEmpires.geany | 34 | ||||
| -rw-r--r-- | Sprite.cpp | 2 | ||||
| -rw-r--r-- | Sprite.h | 2 | ||||
| -rw-r--r-- | Unit.cpp | 2 |
10 files changed, 1298 insertions, 1165 deletions
diff --git a/BaseUnit.cpp b/BaseUnit.cpp index c06a6b4..8fde6b4 100644 --- a/BaseUnit.cpp +++ b/BaseUnit.cpp @@ -3,8 +3,10 @@ * ******************************************************************/ #include "BaseUnit.h" +#include "System.h" #include <stdbool.h> #include <stdint.h> +#include <Gamebuino.h> /* ******************************************************************* * Defines @@ -69,6 +71,35 @@ void BaseUnit::handler(void) /*****************************************************************//** * + * \brief Periodical draw handler for BaseUnit class. + * + *********************************************************************/ +void BaseUnit::drawHandler(const uint8_t* const pu8SprData) +{ + if (isSelected()) + { + enum + { + WIDTH_DATA_INDEX, + HEIGHT_DATA_INDEX + }; + + /* Retrieve unit width from sprite data. */ + const uint8_t w = pgm_read_byte(&pu8SprData[WIDTH_DATA_INDEX]); + + /* Retrieve unit height from sprite data. */ + const uint8_t h = pgm_read_byte(&pu8SprData[HEIGHT_DATA_INDEX]); + + gb.display.drawRect(_x, _y, w, h); + } + else + { + /* BaseUnit object is not selected. Exit. */ + } +} + +/*****************************************************************//** + * * \brief Returns Unit alive flag. * * \return Returns true if Unit object is alive, false otherwise. @@ -93,6 +124,21 @@ bool BaseUnit::isSelected(void) /*****************************************************************//** * + * \brief This function selects/deselects a \ref BaseUnit object + * according to requested state. + * + * \param bSelect + * If true, unit must be selected. Otherwise, unit + * must be deselected. + * + *********************************************************************/ +void BaseUnit::setSelected(const bool bSelect) +{ + _selected = bSelect; +} + +/*****************************************************************//** + * * \brief Returns Unit X coordinates. * * \return Returns Unit X coordinates. @@ -102,3 +148,15 @@ uint16_t BaseUnit::getX(void) { return _x; } + +/*****************************************************************//** + * + * \brief Returns Unit Y coordinates. + * + * \return Returns Unit Y coordinates. + * + *********************************************************************/ +uint16_t BaseUnit::getY(void) +{ + return _y; +} @@ -33,10 +33,13 @@ class BaseUnit public: explicit BaseUnit(void); void handler(void); + void drawHandler(const uint8_t* const pu8SprData); void create(const uint16_t x, const uint16_t y); bool isAlive(void); bool isSelected(void); + void setSelected(const bool bSelect); uint16_t getX(void); + uint16_t getY(void); protected: uint16_t _hp; /**< Health points. */ diff --git a/Exe/POCKET.ELF b/Exe/POCKET.ELF Binary files differindex 5626364..963332b 100755 --- a/Exe/POCKET.ELF +++ b/Exe/POCKET.ELF diff --git a/Exe/POCKET.HEX b/Exe/POCKET.HEX index 1306a7b..1527a20 100644 --- a/Exe/POCKET.HEX +++ b/Exe/POCKET.HEX @@ -1,8 +1,8 @@ :100000000C940B020C9433020C9433020C943302C4
:100010000C9433020C9433020C9433020C9433028C
-:100020000C9433020C9433020C9433020C94E014BD
+:100020000C9433020C9433020C9433020C947B1521
:100030000C9433020C9433020C9433020C9433026C
-:100040000C94FE150C9433020C9433020C9433027E
+:100040000C9499160C9433020C9433020C943302E2
:100050000C9433020C9433020C9433020C9433024C
:100060000C9433020C943302526573756D65005124
:100070007569740068006F000808FC848884A2D148
@@ -64,834 +64,853 @@ :1003F000030303030300000000230026002900007C
:10040000000000250028002B000000000024002729
:10041000002A00007B0211241FBECFEFD8E0DEBF10
-:10042000CDBF11E0A0E0B1E0E8E6F7E302C005903F
+:10042000CDBF11E0A0E0B1E0EEE9F8E302C0059035
:100430000D92A437B107D9F724E0A4E7B1E001C0D9
:100440001D92AC30B207E1F712E0CBE0D2E004C07D
-:100450002197FE010E945D1ACA30D107C9F70E9498
-:1004600035020C94B21B0C9400000E9475020E948D
-:100470004C05FDCFEF92FF920F931F93CF93DF9325
+:100450002197FE010E94F81ACA30D107C9F70E94FD
+:1004600035020C944D1C0C9400000E9475020E94F1
+:10047000D805FDCFEF92FF920F931F93CF93DF9399
:100480007C01C0E0D0E000E010E0F701828190E064
:100490000817190768F4808191818C0F9D1F0097C0
:1004A00011F00E9401030F5F1F4FC15ADE4FEDCFC5
-:1004B00084E791E00E94E30D8823D1F366E08EE7A4
-:1004C00091E00E94C5068823E1F242E064E770E013
-:1004D00084E791E00E949E0E813099F6DF91CF91E2
-:1004E0001F910F91FF90EF9008950E949F1684E74F
-:1004F00091E00C94E4111092C5011092C40189E6B8
+:1004B00084E791E00E947E0E8823D1F366E08EE708
+:1004C00091E00E9460078823E1F242E064E770E077
+:1004D00084E791E00E94390F813099F6DF91CF9146
+:1004E0001F910F91FF90EF9008950E943A1784E7B3
+:1004F00091E00C947F121092C5011092C40189E61C
:1005000091E09093C3018093C2010895EF92FF920E
:100510000F931F93CF93DF93CDB7DEB727970FB617
-:10052000F894DEBF0FBECDBF7C010E94B503F7017A
-:10053000E35AFE4F80819181019769F461E082EC7A
-:1005400091E00E94C40708E024E548E260E082EC04
-:1005500091E00E94040800E022E040E068E770E0DB
-:10056000CE0101960E94120386EAE81A8EEFF80A7D
-:10057000C7010E948505182FC7010E948205412FDF
-:10058000682FCE0101960E945403CE0101960E946D
-:100590001D0327960FB6F894DEBF0FBECDBFDF91C7
+:10052000F894DEBF0FBECDBF7C010E941204F7011C
+:10053000E85AFE4F80819181019769F461E082EC75
+:1005400091E00E945F0808E024E548E260E082EC68
+:1005500091E00E949F0800E022E040E068E770E040
+:10056000CE0101960E946F0384EAE81A8EEFF80A22
+:10057000C7010E941106182FC7010E940E06412FC5
+:10058000682FCE0101960E94B103CE0101960E9410
+:100590007A0327960FB6F894DEBF0FBECDBFDF916A
:1005A000CF911F910F91FF90EF9008950F931F939C
-:1005B000CF93DF93EC018A010E94580389E091E018
-:1005C00099838883FE01E85AFE4F11830083CE0190
-:1005D000865A9E4F0E945E05FE01E45AFE4F10822D
-:1005E00031961182108220E130E040E150E061E07C
+:1005B000CF93DF93EC018A010E94B50389E091E0BB
+:1005C00099838883FE01E85AFE4F11821082329689
+:1005D00011830083CE01845A9E4F0E94EA05FE01DA
+:1005E000E25AFE4F108220E130E040E150E061E04D
:1005F00070E0CE014896DF91CF911F910F910C943E
-:100600008904CF93DF93EC010E945C06CE010E9427
-:100610009E03E881F9810190F081E02DCE01DF9108
-:10062000CF9109940F93FC017183608342832383EC
-:100630000483158216820F9108951F93CF93DF9341
-:10064000EC0140E06B8182EC91E00E94C807809150
-:10065000FB019091FC01009719F12A81222329F0D6
-:100660006D810E94D403182F01C01D818A818823C7
-:1006700041F06E818091FB019091FC010E94D903B1
-:1006800001C08E81288139812115310549F0482F1B
-:10069000612F82EC91E0DF91CF911F910C94CF09F3
-:1006A000DF91CF911F910895FC01658346830895E2
-:1006B000AF92BF92CF92DF92EF92FF920F931F9370
-:1006C000CF93DF93EC016B018FE091E099838883F6
-:1006D0007E0188E0E80EF11C80E1F70111928A9515
-:1006E000E9F78E01085E1F4F5E01F8EAAF1AFEEFD0
-:1006F000BF0A60E070E0C8010E947A04065F1F4FE5
-:100700000A151B05B1F7C114D10431F040E150E0E6
-:10071000B601C7010E94A31B43E050E06CE271E008
-:10072000CE010296DF91CF911F910F91FF90EF9034
-:10073000DF90CF90BF90AF900C949C1B0F931F93B2
-:10074000CF93DF938C01085E1F4FEC01C85ADE4F38
-:10075000C8010E94B704065F1F4F0C171D07C1F7A1
-:10076000DF91CF911F910F9108950F931F93CF9316
-:10077000DF938C01085E1F4FEC01C85ADE4FC801A1
-:100780000E94B904065F1F4F0C171D07C1F7DF91C8
-:10079000CF911F910F910895FC0110821282118256
-:1007A0001482138215820895FC018181681B862FB3
-:1007B0000895FC018381681B862F08950F931F9372
-:1007C000CF93DF93EC018B01CB010E94880581114F
-:1007D00009C040E06CEFC801DF91CF911F910F91EC
-:1007E0000C94640589819A818430910594F304976F
-:1007F0009A838983DF91CF911F910F9108950F9371
-:100800001F93CF93DF93EC018B01CB010E948805EE
-:10081000811109C040E064E0C801DF91CF911F91D0
-:100820000F910C94640589819A81811522E09207C9
-:100830008CF704969A838983DF91CF911F910F9152
-:1008400008950F931F93CF93DF93EC018B01CB019E
-:100850000E948F05811109C04CEF60E0C801DF9153
-:10086000CF911F910F910C9464058B819C81181678
-:10087000190694F704979C838B83DF91CF911F9186
-:100880000F9108950F931F93CF93DF93EC018B018A
-:10089000CB010E948F05811109C044E060E0C801CE
-:1008A000DF91CF911F910F910C9464058B819C81F6
-:1008B000811522E092078CF704969C838B83DF914D
-:1008C000CF911F910F910895FC0180810895FC0143
-:1008D000118210821282138215821482178216826C
-:1008E0000895FC0181E08283758364835783468386
-:1008F000089508950F931F93CF93DF93EC018B011D
-:100900000E94670419870887DF91CF911F910F918B
-:100910000895EF92FF920F931F93CF93DF9300D030
-:100920001F92CDB7DEB77C018B01BA01A9010E94ED
-:100930007104F701118700878091020190910301F2
-:10094000A091040189839A83AB83FE01E00FF11F1C
-:10095000818190E0F701918380830F900F900F9039
-:10096000DF91CF911F910F91FF90EF9008950C941C
-:100970007904EF92FF920F93CF93DF93CDB7DEB759
-:100980002D970FB6F894DEBF0FBECDBFFC012085BA
-:100990003185233031052CF57C011986188682E8D3
-:1009A00090E09B878A871D861C86220F331FE1E01B
-:1009B000F0E0EC0FFD1FE20FF31F6781708500E090
-:1009C00021E041E0CE0101960E941203F701468129
-:1009D0006481CE0101960E945403CE0101960E94CB
-:1009E0001D032D960FB6F894DEBF0FBECDBFDF916D
-:1009F000CF910F91FF90EF900895EF92FF920F9398
-:100A00001F93CF93DF93CDB7DEB7C457D1400FB656
-:100A1000F894DEBF0FBECDBF7E0180EAE81A8EEFEC
-:100A2000F80A8AE0D7011D928A95E9F7B70184E7B1
-:100A300091E00E943F128E0106591E4FC8010E948C
-:100A4000CC03A801B701FE0131967F01CF010E94BE
-:100A5000D602FE01E059FE4F85E0DF011D928A9526
-:100A6000E9F781E08283F182E082148303831093AB
-:100A7000FC010093FB01CF010E943A02CC58DE4FEB
-:100A80000FB6F894DEBF0FBECDBFDF91CF911F919F
-:100A90000F91FF90EF9008956EEB70E084E791E086
-:100AA0000E94671143E068EB70E084E791E00E94E8
-:100AB0009E0E811102C00C94FD04089528E2FC01F1
-:100AC000208326E121830895FC019081262F062EA4
-:100AD000000C330B290F311D97FD3A952932310552
-:100AE00010F4960F90838181242F042E000C330B79
-:100AF000280F311D87FD3A952731310510F4840FF9
-:100B000081830895FC0180810895FC01818108950D
-:100B1000FC0181E09081983209F080E0089521E0A5
-:100B2000FC018181863109F020E0822F089508952B
-:100B3000DC01A35ABE4F2D913C911197FC01E45A60
-:100B4000FE4F2230310539F48081853020F081E07C
-:100B500090E08D939C9310820895FC01E35AFE4F20
-:100B6000208131812230310531F4319780818F3FEE
-:100B700011F08F5F80830895DB01AA0FBB1FAA0FBE
-:100B8000BB1FA75BBE4FED91FC91119712962D9163
-:100B90003C911397A90141705527309719F44115DD
-:100BA000510589F035952795452B51F0DC01A20FB1
-:100BB000B31F4D915C91E40FF51F0190F081E02D82
-:100BC000820F931F09940895EF92FF920F931F9342
-:100BD000CF93DF938C01EB017C0188EAE81A8EEF5A
-:100BE000F80AD7018D919C910E946404811135C04F
-:100BF000DE01AA0FBB1FAA0FBB1FA35DBE4FED9165
-:100C0000FC91119712968D919C9113979C012170E4
-:100C10003327309719F421153105F9F0959587950B
-:100C2000232B61F0E701A881B981A80FB91F2D918D
-:100C30003C91E20FF31F0190F081E02DB801665A5C
-:100C40007E4FD7012D913C91820F931FDF91CF9161
-:100C50001F910F91FF90EF900994DF91CF911F9119
-:100C60000F91FF90EF900895DB01AA0FBB1FAA0F11
-:100C7000BB1FAF5EBE4FED91FC91119712962D9167
-:100C80003C911397A90141705527309719F44115EC
-:100C9000510589F035952795452B51F0DC01A20FC0
-:100CA000B31F4D915C91E40FF51F0190F081E02D91
-:100CB000820F931F099408950F931F93CF93DF938F
-:100CC0008C01C0E0D0E06C2F8EE791E00E94E60638
-:100CD000BE01882341F0C8010E94BC05BE01C801C5
-:100CE0000E94E40503C0C8010E9434062196C73063
-:100CF000D10549F7DF91CF911F910F910895FC0124
-:100D000088E0808389E0818387E0828386E0838333
-:100D100084E0848382E0858381E186830895FF9265
-:100D20000F931F93CF93DF93EC018C01095F1F4F4B
-:100D3000FF24FA9462E088810E947F1788810E94D4
-:100D4000EA172F81892B19F42F5F2F8307C02223E5
-:100D500049F02F3F11F41F8201C0FF8260E08881BB
-:100D60000E947F172196C017D10721F7DF91CF91FD
-:100D70001F910F91FF900895FC01E60FF11D81E096
-:100D80009781913009F080E00895FC01E60FF11D94
-:100D900081E097819F3F09F080E00895262F30E0A1
-:100DA000FC01E20FF31F423030F49781915081E053
-:100DB0009E3F58F009C087818F3F31F0642F0E9419
-:100DC000DD1981E0913009F080E00895860F911DD2
-:100DD000FC0187818F3F09F480E008958EBD0DB43A
-:100DE00007FEFDCF8EB50895DC01643508F057C0CD
-:100DF000403308F054C090969C919097E42FE5956D
-:100E0000E595E595262F062E000C330B542F5770D1
-:100E10009230A1F4D90184E5E802A00DB11D11249E
-:100E2000A350BE4F8C9190E0052E02C095958795FA
-:100E30000A94E2F78095982F91700CC0933051F48A
-:100E40001C968C916427062E000C770B682760FF98
-:100E500003C014C0911112C084E5E802200D311DB9
-:100E60001124F901E350FE4F81E090E001C0880FAA
-:100E70005A95EAF780959081892310C084E5E802AD
-:100E8000200D311D1124F901E350FE4F81E090E067
-:100E900001C0880F5A95EAF79081892B80830895C5
-:100EA0001F93CF93DF93EC01162FF89460E08F85AA
-:100EB0000E94BB17888918161CF460E00E94BB17BB
-:100EC000812F0E94EE06888918161CF461E00E94AA
-:100ED000BB177894DF91CF911F91089528EF31E0EF
-:100EE000EDEFF1E0DF01A9011D9241505040E1F723
-:100EF000DC0119961C9219971A961C920895CF92AC
-:100F0000DF92EF92FF920F931F93CF93DF93EC0149
-:100F10008C858F5F8C878DEFE82E81E0F82E10E0B6
-:100F2000612F6064CE010E94500760E8CE010E94EC
-:100F3000500761E08F850E94BB17888918161CF442
-:100F400060E00E94BB17670104E5F60181916F0123
-:100F50000E94EE060150C9F7888918161CF461E05A
-:100F60000E94BB171F5FF4E5EF0EF11C1630C1F6AF
-:100F700060E4CE01DF91CF911F910F91FF90EF9030
-:100F8000DF90CF900C945007FC0160A361A30895FB
-:100F9000FC0160A341A30895EF92FF920F931F936A
-:100FA000CF93DF938C01D62FF42EE22EC0E0CE1526
-:100FB00044F44F2D4C0F6D2FC8010E94F406CF5FF3
-:100FC000F6CFDF91CF911F910F91FF90EF90089591
-:100FD000EF92FF920F931F93CF93DF938C01F62E26
-:100FE000D42FE22EC0E0CE1544F46F2D6C0F4D2FA0
-:100FF000C8010E94F406CF5FF6CFDF91CF911F9119
-:101000000F91FF90EF900895EF92FF920F931F932F
-:10101000CF93DF937C01C62F142FD22F0E94E807B5
-:101020004FEF400F410F2D2F6C2FC7010E94E80793
-:10103000202F412F6C2FC7010E94CC076FEF6D0F3F
-:101040006C0F202F412FC701DF91CF911F910F917E
-:10105000FF90EF900C94CC07DF92EF92FF920F93EA
-:101060001F93CF93DF937C01D62FD22EC42F002E57
-:10107000000C110B040F111D47FD1A958C2F0C2E1F
-:10108000000C990B8017910744F42D2D4C2F6D2FD8
-:10109000C7010E94E807CF5FF1CFDF91CF911F9189
-:1010A0000F91FF90EF90DF9008958F929F92AF92F3
-:1010B000BF92CF92DF92EF92FF920F931F93CF9345
-:1010C000DF937C01162FD42EC22F81E0C82EC21AC6
-:1010D000B22EB194BB0CD0E0802F8470A82E802F4C
-:1010E0008270982E802F8870882E0170DC170CF08B
-:1010F0004DC0C7FC04C0C150B394B394CB0CDF5FA8
-:101100008D2F880F8F5FC80EAA2071F04D2D4C0FC8
-:10111000612F6D0FC7010E94F4064D2D4D0F6C2FEE
-:10112000610FC7010E94F406992071F04D2D4C1BF0
-:10113000612F6D0FC7010E94F4064D2D4D1B6C2FC2
-:10114000610FC7010E94F406882071F04D2D4D0FEC
-:10115000612F6C1BC7010E94F4064D2D4C0F612FAF
-:101160006D1BC7010E94F406002309F4BFCF4D2D6B
-:101170004D1B612F6C1BC7010E94F4064D2D4C1BAB
-:10118000612F6D1BC7010E94F406B0CFDF91CF9194
-:101190001F910F91FF90EF90DF90CF90BF90AF9095
-:1011A0009F908F9008958F929F92AF92BF92CF920F
-:1011B000DF92EF92FF920F931F93CF93DF936C0117
-:1011C000A62E942EC22F11E0121BF22EF194FF0CCA
-:1011D00083E0B82EBE0CD1E0802F8170882EE3947E
-:1011E00002708FEF8D0F8C17BCF517FD04C0C15036
-:1011F000F394F3941F0D8D2F880F8F5F180F8820A5
-:1012000091F02C2F220F2E0D492D4C1B6D2F6A0DA6
-:10121000C6010E94CC072B2D492D4D1B6C2F6A0D4A
-:10122000C6010E94CC07011104C0DF5FB394B394E0
-:10123000D8CF2C2F220F2E0D492D4C1B6A2D6D1B44
-:10124000C6010E94CC072B2D492D4D1B6A2D6C1B0E
-:10125000C6010E94CC07E9CFDF91CF911F910F917A
-:10126000FF90EF90DF90CF90BF90AF909F908F90C6
-:1012700008959F92AF92BF92CF92DF92EF92FF922A
-:101280000F931F93CF93DF936C01C62FD42FB22EF1
-:10129000AE2CAA0C922E9A18FE2CF60E292D6F2D2C
-:1012A0000E94E8071FEF100F1D0F292D412F6F2DF2
-:1012B000C6010E94E8070A19DE0D202F4D2F6C2F62
-:1012C000C6010E94CC07CB0D6FEF6C0F202F4D2F66
-:1012D000C6010E94CC0701E02E2D4D2F6F2DC601B7
-:1012E0000E9455088E2D8095C80F02E02E2D4D2F9F
-:1012F0006C2FC6010E945508D12FDE1904E02E2D57
-:101300004D2F6C2FC6010E94550808E02E2D4D2F41
-:101310006F2DC6010E945508DF91CF911F910F914B
-:10132000FF90EF90DF90CF90BF90AF909F90089587
-:10133000AF92BF92CF92DF92EF92FF920F931F93E3
-:10134000CF93DF936C01B62EF42E122FC02FDE2D1B
-:10135000EE0CAD2EA60E2E196A2D0E942C08C1503F
-:10136000CE19FD0E6FEF6B0D610F6D1BEC2E01E0C2
-:101370002D2F4F2DC6010E94D30802E02D2F4F2D97
-:101380006A2DC6010E94D308DF91CF911F910F9162
-:10139000FF90EF90DF90CF90BF90AF9008952F9285
-:1013A0003F925F926F927F928F929F92AF92BF9285
-:1013B000CF92DF92EF92FF920F931F93CF93DF9321
-:1013C000EC01F901E4903196849164350CF019C177
-:1013D0000E2C000CFF08062F062E000C110BF70137
-:1013E000E00FF11F1E161F060CF00BC140330CF06E
-:1013F00008C1A82FC42E042E000CDD085601A80E2B
-:10140000B11C87FDBA941A141B040CF0FAC02E5FAD
-:101410003F4F570197E0A90EB11CB7FE04C057011A
-:10142000BEE0AB0EB11CB3E0B594A794BA95E1F75A
-:1014300047FF0AC0A42FA80FAC9CC001AD9C900D23
-:101440001124281B390B40E08A2F0A2E000C990B1F
-:10145000840F911D47FD9A95C19714F0A0E3A41B3A
-:10146000F8A067FD60E0E535F10514F0E4E5F0E093
-:101470009E2FCC85C427C62E062E000CDD08F60153
-:10148000E01BF10B8F014F01F7E08F229924E0E878
-:10149000F0E002C0F595E7958A94E2F77E2F17FFFA
-:1014A00002C0095F1F4FF3E015950795FA95E1F724
-:1014B000200F311F542F577081E001C0880F5A95BB
-:1014C000EAF7459545954595F601B4E54B02E00DE3
-:1014D000F11D1124AF0143505E4FD0E02A2EAA0F18
-:1014E0003308EE24E394BB24ED2FF0E0E215F3057E
-:1014F0000CF087C0F9015490F1E0FF121AC0962E4B
-:101500008A01E72F6901991608F072C08E2E852096
-:1015100021F0D8018C90882A8C92E69531F4BFEFA7
-:10152000CB1ADB0AF6015490E0E893940F5F1F4F4B
-:10153000EACFF1101CC0782E7094962E8A01E72F06
-:101540006901991608F054C08E2E852021F0D8012B
-:101550008C9087208C92E69531F4BFEFCB1ADB0A92
-:10156000F6015490E0E893940F5F1F4FEACFF3E049
-:10157000FF1629F0962E8A01E72F690137C0682EE1
-:101580006094862E8A01972E69018916D8F4E92D78
-:10159000E52159F0D801EC917C2E782470FE02C030
-:1015A000E82B02C0E621D801EC93969439F4BFEF02
-:1015B000CB1ADB0AF6015490E0E89E2E83940F5F6D
-:1015C0001F4FE3CFCE2514C08E2E852021F0D801E9
-:1015D0008C9088268C92E69531F4BFEFCB1ADB0A0B
-:1015E000F6015490E0E893940F5F1F4F991660F353
-:1015F000880F19F44C5A5F4F81E0DF5F2A0D3B1DC5
-:1016000073CFDF91CF911F910F91FF90EF90DF90FB
-:10161000CF90BF90AF909F908F907F906F905F9092
-:101620003F902F900895DC01FB0184918F5F149609
-:101630008C9314973196E491EF5F1596EC93159780
-:101640006E5F7F4F5F967C936E935E970895EF92E7
-:101650000F93CF93DF93EC014E876D872F87E98A35
-:10166000088B81E0888788A319A28F836DEC70E0D6
-:10167000CE010E94130B0E949A1981E00E94B019BA
-:1016800085E00E94BE198CE00E94B91961E08E8548
-:101690000E947F1761E08D850E947F1761E08F8532
-:1016A0000E947F17898918161CF461E00E947F1739
-:1016B000888918161CF461E00E947F178989181622
-:1016C0006CF460E00E94BB176AE070E080E090E09C
-:1016D0000E94791661E089890E94BB178D85082ECA
-:1016E000000C990BFC01EF51FC4FE491F0E0EE0F80
-:1016F000FF1FE150FC4F259134913D8B2C8BFC0159
-:10170000E353FC4FE491EB8F8E85082E000C990B70
-:10171000FC01EF51FC4FE491F0E0EE0FFF1FE150B0
-:10172000FC4F259134913B8B2A8BFC01E353FC4FFA
-:10173000E491EA8F8889082E000C990BFC01EF5187
-:10174000FC4FE491F0E0EE0FFF1FE150FC4F2591BC
-:1017500034913F8B2E8BFC01E353FC4FE491EC8FD3
-:101760008F85082E000C990BFC01EF51FC4FE49182
-:10177000F0E0EE0FFF1FE150FC4F25913491398FBF
-:10178000288FFC01E353FC4FE491ED8F61E2CE0121
-:101790000E94500764E1CE010E9450078B8587FFAD
-:1017A00002C08FE78B876B856068CE010E9450076F
-:1017B00060E2CE010E9450076CE0CE010E9450070B
-:1017C000CE01DF91CF910F91EF900C947F076F9234
-:1017D0007F928F929F92AF92BF92CF92DF92EF92C1
-:1017E000FF920F931F93CF93DF93EC0164350CF0BE
-:1017F00084C040330CF081C0EC81F0E031970E9F43
-:10180000C0010F9F900D1124860F911D67FD9A95C1
-:10181000181619060CF071C03D81842F042E000C9F
-:10182000990B039F800D911D1124181619060CF0B9
-:1018300064C0D02EB42EC62E88A0A62E962EE22EE0
-:10184000F12CEA2DEC190E2E000CFF0B8C8190E090
-:10185000E817F9070CF050C00197E817F90779F07D
-:10186000E89E9001E99E300DF89E300D1124E20FA4
-:10187000F31F8E8D9F8DE80FF91F149101C010E0AA
-:101880007B2C6B2C272D2B19022E000C330B8D81FA
-:1018900090E0281739076CF510FF11C081E0D812CD
-:1018A00006C0472D6A2DCE010E94F4061EC00D2DE4
-:1018B0002D2D462D692DCE010E942C0816C089A120
-:1018C00098A1891791F088A381E0D81206C0472D0E
-:1018D0006A2DCE010E94F40607C00D2D2D2D462D38
-:1018E000692DCE010E942C0888A216956D0C739468
-:1018F000C9CF9D0CA394A5CF88A2DF91CF911F9152
-:101900000F91FF90EF90DF90CF90BF90AF909F909E
-:101910008F907F906F9008950F93CF93DF93EC019A
-:101920006A3011F428851EC06D3019F1262F088504
-:101930004A8569850E94E70B28853C818985239F1C
-:10194000800D112489879F81992399F0082E000C1E
-:10195000990B44E550E0239F401951091124481781
-:1019600059073CF49D818A85299F800D11248A871F
-:10197000198681E090E0DF91CF910F9108958F92C9
-:101980009F92AF92BF92CF92DF92EF92FF920F930E
-:101990001F93CF93DF93EC015C0186E8A80EB11C86
-:1019A000D5019C91992309F44DC09C3018F41CE09A
-:1019B000191B01C010E0FE01EA5AFF4F81E080834D
-:1019C0006E01BEE4CB0ED11C60E0C6010E94C407CC
-:1019D0004E01E3E58E0E911CD4018C9103E0080FBB
-:1019E0009DE2F92E4F2D481B410F23E0E22E24E506
-:1019F00060E0C6010E94980961E0C6010E94C40728
-:101A0000F401808103E0080F4F2D481B410F24E5AE
-:101A100060E0C6010E943909FE01E95AFF4F84E0E7
-:101A200080833196D4018C91181B115D1083CC57A3
-:101A3000DF4F68817981C6010E945018F5018081CD
-:101A400081508083DF91CF911F910F91FF90EF9094
-:101A5000DF90CF90BF90AF909F908F900895CF92DE
-:101A6000DF92FF920F931F93CF93DF93FC01248D9E
-:101A7000358D232B09F49FC0EC018C01025B1F4FB5
-:101A800040E061E0C8010E94C807FE01E95AFF4F2B
-:101A9000DE01AE5ABF4F9C9185E5891B808331964C
-:101AA0001082698D613009F463C028F0888D65303B
-:101AB00008F074C06FC0CE0185960E94851381E046
-:101AC000FE01EA5AFF4F80836DEC70E0C8010E946E
-:101AD000130B1D8E1C8EFE01EC5AFF4F108288EAFC
-:101AE000F82E6E01FAE0CF0ED11CCE010E94E30D5C
-:101AF0008823D9F36CEB72E0C8010E9450186A8DFC
-:101B00007B8D4AE050E0C8010E94031967EA72E049
-:101B1000C8010E9450186F2D62956F7070E04AE006
-:101B200050E0C8010E9451196CE972E0C8010E949E
-:101B3000501864E0C6010E94BC0681113CC0FA94B2
-:101B4000F110D3CF60E0CE010E94581583B7817F9A
-:101B5000846083BF83B7816083BF83B7816083BFA5
-:101B6000889583B78E7F83BF83B78E7F83BFBDCFBA
-:101B7000CF58DF4F88819981AA81BB818F709927C7
-:101B8000AA27BB270897A105B10510F467E009C093
-:101B900068E707C0882379F06B5F03C0882359F09A
-:101BA0006FE2C801DF91CF911F910F91FF90DF90FD
-:101BB000CF900C947318DF91CF911F910F91FF90EC
-:101BC000DF90CF9008958F929F92AF92BF92CF9265
-:101BD000DF92EF92FF920F931F93CF93DF93EC016D
-:101BE0007C0180E8E80EF11CF70180809180A280E2
-:101BF000B3800E944816861A970AA80AB90A6E018D
-:101C0000FFE7CF0ED11CF601808190E0A0E0B0E0AC
-:101C10008E0105581F4F88159905AA05BB0550F47C
-:101C2000F80180819181A281B381892B8A2B8B2B32
-:101C300009F040C0F80180819181A281B381892B94
-:101C40008A2B8B2BA9F57E01F5E2EF0EF11CC70163
-:101C50000E948213C7010E94EE13C7010E94B314B1
-:101C6000CE010E94BF0CCE010E942F0D7E018EE49A
-:101C7000E80EF11CC7010E947F07FE01EC5AFF4FDE
-:101C80008081811103C0C7010E946E070E94541613
-:101C9000F8016083718382839383FE01EB58FF4FC9
-:101CA000C958DF4F28813981621B730B71836083B0
-:101CB00080E037C00E944816F6012081DC01CB018C
-:101CC000820F911DA11DB11DF70180839183A28315
-:101CD000B383FE01EF58FF4F80819181A281B381D0
-:101CE0000196A11DB11D80839183A283B383F80166
-:101CF00010821182128213820E945416FE01E9584A
-:101D0000FF4F6083718382839383CE010E945C15B1
-:101D1000CE010A960E948F06CE0148960E94C515F4
-:101D200081E0DF91CF911F910F91FF90EF90DF90B5
-:101D3000CF90BF90AF909F908F9008952F923F9239
-:101D40004F925F926F927F928F929F92AF92BF92CB
-:101D5000CF92DF92EF92FF920F931F93CF93DF9377
-:101D6000CDB7DEB765970FB6F894DEBF0FBECDBF17
-:101D70006C016A8B7B8B4B83FC01EC5AFF4F10820A
-:101D80002FEF2D831C821D8A10E31C8A5C013AE030
-:101D9000A30EB11C1C0183E5280E311CBF972F0137
-:101DA000242F30E03F832E83C601895A9F4F9987A5
-:101DB0008887F396FB87EA8796012A5A3F4F3F8729
-:101DC0002E870297998B888B3A973F01C6010E9414
-:101DD000E30D8823D9F364E0C5010E94BC06012FFE
-:101DE000110F110B811144C065E0C5010E94BC06B2
-:101DF00081113EC066E0C5010E94BC06811138C059
-:101E00002C8121114CC044E063E0C5010E94CE0644
-:101E1000882331F03C893F5F3C8BC2010E94301522
-:101E200044E061E0C5010E94CE06882331F08C8930
-:101E300081508C8BC2010E943015EC898E2F0E2EA2
-:101E4000000C990B2E813F818217930731F0E7FF39
-:101E500005C03B8131503C8B01C01C8AF10180815F
-:101E6000F4E0F80F2C89829FF0191124FD8B22C019
-:101E7000F101F081F98364E0C5010E94BC0688236A
-:101E800009F48CC0C2010E940415FC89FD832981DC
-:101E900021953B81239F302D112432503D8BC80169
-:101EA0003D89831B910937FD939502970CF47AC005
-:101EB00081E08C839D89090F111D97FD1A9517FFED
-:101EC00002C00F5F1F4FF801F595E795FA83E9838C
-:101ED0000981102FE885F9851082EA85FB8500834A
-:101EE00081E0EE85FF858083E889F9891082EA88A0
-:101EF000FB88812C912C2C89022E000C330B3D8702
-:101F00002C878E819F818816990609F1EC85FD85C5
-:101F1000E815F90579F423E0E885F9852083F101D6
-:101F20008081F02F2C89289FF00D11248F2FEA85B6
-:101F3000FB858083F70165917491C3010E948E181F
-:101F4000FFEF8F1A9F0A22E0E20EF11CDACF60E069
-:101F5000C3010E94C407F10180814981FC89F89F77
-:101F6000400D1124415024E560E0C3010E94E807C0
-:101F700061E0C3010E94C407F101808103E0080F02
-:101F80004981FC89F89F400D1124425083E0E82EDE
-:101F900024E560E0C3010E94390918CFC2010E9404
-:101FA0001A1575CF8D8165960FB6F894DEBF0FBEFA
-:101FB000CDBFDF91CF911F910F91FF90EF90DF90F8
-:101FC000CF90BF90AF909F908F907F906F905F90D9
-:101FD0004F903F902F9008950F931F93CF93DF93CF
-:101FE000EC018C01025B1F4FC8010E946E0764E781
-:101FF00072E0C8010E945018C8010E947F0783E068
-:102000000E94BE198DE691E0EEEFFFE30995FE0117
-:10201000EC5AFF4F10826FE472E0C8010E948E18E4
-:10202000C8010E947F072A96CE010E948F0664E0B5
-:10203000CE010E94BC06811107C062E370E080E01F
-:1020400090E00E947916F0CFDF91CF911F910F9110
-:1020500008952F923F924F925F926F927F928F924C
-:102060009F92AF92BF92CF92DF92EF92FF920F9327
-:102070001F93CF93DF93CDB7DEB729970FB6F894B0
-:10208000DEBF0FBECDBF3C0120E7620E711CF30125
-:102090002081222309F402C15A011B0199878887F4
-:1020A0007A9781E08083E885F985EB5AFF4F1082AB
-:1020B000E885F985EC5AFF4F1082E885F985108E86
-:1020C0008F01025B1F4F61E0C8010E94C407888531
-:1020D00099858D5A9F4F9D838C83C884D98497E5B9
-:1020E000C90ED11CE884F984E8E5EE0EF11C888560
-:1020F00099858E5A9F4F9A838983E885F985EF5891
-:10210000FF4FFF83EE8388849984FAE08F0E911C41
-:102110004884598425E2420E511C888599850E9485
-:10212000E30D8823D1F3F1018491882329F0EC8118
-:10213000FD81F081FB8301C01B822EED32E040E087
-:1021400060E0C8010E94CF09A114B10439F04B81AD
-:10215000445F950160E0C8010E94CF09F60110823A
-:102160002CE0F7012083B101C8010E945018E981D9
-:10217000FA818081982F990F890F81958D5AF601E8
-:102180008083EC81FD818081982F990F890F819543
-:10219000835DF7018083EE81FF81808184FF03C02E
-:1021A0006AED72E002C066ED72E0C8010E948E180E
-:1021B000E981FA818081982F990F890F81958D5A35
-:1021C000F6018083F70180818F5F8083E885F98540
-:1021D00082A5882319F062ED72E002C06EEC72E015
-:1021E000C8010E948E18E981FA818081982F990F89
-:1021F000890F81958D5AF6018083F70180818F5F69
-:1022000080836AEC72E0C8010E948E1865E0C40108
-:102210000E94BC06882351F0E885F98562A56F5FAE
-:10222000C2010E944615C2010E94301564E0C4013B
-:102230000E94BC06811113C0F3012081422F50E09F
-:1022400060E070E0EE81FF8180819181A281B381A5
-:1022500084179507A607B707A8F02F3F99F08FEFCF
-:10226000F3018083088519850B5D1F4F60E0C8016D
-:102270000E942313C8010E94041581E0E885F985B6
-:10228000808F0CC066E0C4010E94BC06882309F45C
-:1022900044CF888599850E94EC0F35CF29960FB6DB
-:1022A000F894DEBF0FBECDBFDF91CF911F910F918C
-:1022B000FF90EF90DF90CF90BF90AF909F908F9066
-:1022C0007F906F905F904F903F902F90089540E0E7
-:1022D00050E00C942910E0E8F7E72591349181E073
-:1022E0002130304C09F080E00895CF93DF93EC016A
-:1022F0000E946B119E01275A3F4FDE01A059BF4F2C
-:10230000882309F43CC0E6E9F7E78491F90180836A
-:10231000E7E9F7E7E491EC83E8E9F7E7E491ED8397
-:10232000E9E9F7E7859194919F838E83EBE9F7E7DD
-:102330008591949199878887EDE9F7E7E491EBA778
-:10234000EEE9F7E7E491EAA7EFE9F7E7E491EC9328
-:10235000E0EAF7E7859194919D8F8C8FE2EAF7E7A9
-:10236000859194919F8F8E8FE4EAF7E78591949100
-:1023700099A388A3E6EAF7E78591949120C08CE3BE
-:10238000F90180831C828FEF8D8320E233E03F834D
-:102390002E8324ED33E03987288791E09BA79AA705
-:1023A0008C938CEA9DE09D8F8C8F8EED9DE09F8FAE
-:1023B0008E8F84E79EE099A388A38CE39FE09BA384
-:1023C0008AA3DF91CF910895CF92DF92EF920F937E
-:1023D000CF93DF93EC01FC01E158FF4F82E3808350
-:1023E000349781E090E0A0E0B0E080839183A28305
-:1023F000B3833B978FEF8083CE010E947511CE018E
-:102400000E9454156FEFCE010E9458156E018AE0AC
-:10241000C80ED11CC6010E947F06C6010E948F060D
-:10242000CE0148960E94BB158EE0E82E0FE020E119
-:102430004BE06DE0CE01825B9F4F0E94270BA5967B
-:10244000CE010E948F1265E0C6010E94BC0688235F
-:1024500051F060E0CE01DF91CF910F91EF90DF90CE
-:10246000CF900C94461540E06EE473E0CE01DF910E
-:10247000CF910F91EF90DF90CF900C942E13CF93CC
-:10248000DF93D62FC72F0E946B11882359F0AD2FF1
-:10249000BC2FEBE8F7E784918D933196E53987E718
-:1024A000F807C9F7DF91CF91089550E0DA01AA0F3C
-:1024B000BB1FA80FB91F1F963C911F9750962C91D8
-:1024C0005097E32FF22FE60FF11DE60FF11D259136
-:1024D000349190963C932E935F97F9016591749196
-:1024E000FC017481769F602D1124DC01A40FB51FBF
-:1024F00091966C939197F90185919491E92FF0E071
-:10250000862F90E0E817F90720F4F901859194915E
-:10251000692F769F602D112492966C93089521E087
-:10252000FC01248324E020A72DEA33E0308B2787A9
-:1025300040E060E00E94551261E070E083E00E949C
-:10254000F716E1EBF0E08081887F81608083F8946A
-:1025500010928000E1E8F0E0108210928500109265
-:10256000840088E191E090938900809388008081C5
-:1025700088608083808181608083EFE6F0E08081E5
-:1025800082608083789408950F93FC01842F011159
-:102590002AC06230D9F050F4662399F0613019F501
-:1025A00040E0682FCF010F910C9455126330A9F0D1
-:1025B0006430C9F46481649F802D1124858F268F37
-:1025C00012C04B3008F08AE0868B0DC06481649F96
-:1025D000802D1124818F228F06C06481649F802DFD
-:1025E0001124838F248F0F910895FC0121110EC0B7
-:1025F000648B8481849F402D1124458B15A214A2E5
-:1026000013A281E0878B80930104108E089580913E
-:102610000104882319F08091FE0301C080E08093BB
-:10262000B4000895FC0161110DC0178A158A14A227
-:1026300013A2108E1092FE031092FF031092010459
-:102640000C9407130895CF93DF93611104C0EC013C
-:102650000E9412131982DF91CF9108950F931F9357
-:10266000CF93DF93411110C08B01EC0160E00E9419
-:1026700023131E870D871B8A1A8A81E0898389E0CC
-:102680008E8B198E1B8E1D8EDF91CF911F910F9116
-:102690000895CF93DF93DC01611131C08C918823C1
-:1026A00071F111968C911197811129C019968C9115
-:1026B000199717962C91179718969C911897E22FB7
-:1026C000F92FE80FF11DE80FF11D259134912F3FEF
-:1026D0008FEF380711F41C9212C0ED013C873327AD
-:1026E000220F331FEA85FB85E20FF31F659174917A
-:1026F00040E0CD010E942E1389858F5F8987DF918D
-:10270000CF91089560E00C94491360E00C9423137A
-:102710000F93CF93DF93EC0161115CC08981882313
-:1027200009F458C08D89811155C02D853E85EA89EF
-:10273000FB89EE0FFF1FE20FF31F85919491009725
-:1027400001F58989813021F41B8A1A8AF90110C0A8
-:102750001982888160E0882371F0CE010E944913BC
-:10276000EA89FB89EE0FFF1F8D859E85E80FF91F13
-:102770008591949106C0CE01DF91CF910F910C9479
-:102780001213BC01769567957695679580FF17C003
-:10279000AC0186E0569547958A95E1F7292F269555
-:1027A0002695269520514F716F7000E0CE010E9452
-:1027B000C412EA89FB893196FB8BEA8BD3CF492F70
-:1027C0006F7320E0CE010E94F5128A899B890196E1
-:1027D0009B8B8A8BDF91CF910F91089560E00C94D1
-:1027E0008813CF93DF93EC016111BAC08F898823DE
-:1027F00009F4B6C09D89911105C0CE01DF91CF913A
-:102800000C94121391509D8B8DA1811139C02BA175
-:102810003CA12F5F3F4FC901880F991FEF8DF8A191
-:10282000E80FF91F65917491862F87708EA3AB0115
-:1028300063E0569547956A95E1F7CA0196958795A5
-:10284000972F969596959FA38F739C81899F802D36
-:1028500011248DA341704093FD033CA32BA389A1B8
-:1028600090E02817390760F02AA1222329F0821B63
-:1028700091099CA38BA304C060E0CE010E941213B7
-:102880008DA181508DA3888D21E0280F288F4C8940
-:102890003FA1340F8C85380F3A836B8D662361F02E
-:1028A00070E0822F022E000C990B0E94FD198C8D76
-:1028B000869F300D11243A838A8190E0CB966BE39A
-:1028C00070E00E94FD198A833E893B83698D6623EF
-:1028D00071F0062E000C770B822F022E000C990B44
-:1028E0000E94FD198A8D869F300D11243B836D8DCA
-:1028F000662389F0822F220F990B70E00E94FD1948
-:10290000CB0162E070E00E94FD192E8D9B81289F13
-:10291000900D11249B834F3341F08B818A300CF052
-:1029200089E087FD80E08B8301C01B82F894EA81F7
-:10293000F0E0E45AFC4FE491E09300048D8198A507
-:10294000899F802D11249B81899F802D11249EA118
-:10295000899F802D11248093FF038093FE03789438
-:10296000DF91CF91089560E00C94F1136091FF0323
-:10297000662329F1809102048F5F80930204909175
-:1029800000048917E0F081E090910104911180E04A
-:1029900080930104109202048091FD03882369F062
-:1029A0008091000193E4899F802D1124895B80939D
-:1029B00000010E94DD199093FE030C940713089503
-:1029C0001F920F920FB60F9211242F933F934F93A4
-:1029D0005F936F937F938F939F93AF93BF93EF9387
-:1029E000FF930E94B614FF91EF91BF91AF919F9119
-:1029F0008F917F916F915F914F913F912F910F90A8
-:102A00000FBE0F901F901895CF93DF93EC0160E0FD
-:102A10000E94231385EA93E09E878D871B8A1A8A7A
-:102A200081E0898389E08E8B198E1B8E1D8EDF914C
-:102A3000CF910895CF93DF93EC0160E00E942313C0
-:102A40008DE993E09E878D871B8A1A8A81E08983AE
-:102A500089E08E8B198E1B8E1D8EDF91CF9108958C
-:102A6000CF93DF93EC0160E00E94231387E993E0AA
-:102A70009E878D871B8A1A8A81E0898389E08E8BE5
-:102A8000198E1B8E1D8EDF91CF910895FC01262F8C
-:102A9000660F330B9681692F70E06F5F7F4FC9011E
-:102AA0000E94FD198583089521E0FC01208308958B
-:102AB00070E085E00C94F716AF92BF92CF92DF9250
-:102AC000EF92FF920F931F93CF93DF93EC018981D5
-:102AD0009A812FE0289F8001299F100D112485E104
-:102AE0000E94DA16800F911F24E0969587952A950B
-:102AF000E1F79A8389832881222391F1EC81AD80CB
-:102B0000B12CC12CD12CA885B9857D0100E010E045
-:102B10006E817F819B0140E050E08617970728F087
-:102B2000BC01A817B90708F4BD0180E090E01F922E
-:102B30001F921F92EF930E9458196B830F900F9072
-:102B40000F900F9070E085E0DF91CF911F910F9172
-:102B5000FF90EF90DF90CF90BF90AF900C94F7165E
-:102B6000DF91CF911F910F91FF90EF90DF90CF9069
-:102B7000BF90AF900895FC018CE39FE09383828324
-:102B800084E0818381E084870895CF93DF93FC0103
-:102B900024813581232B79F1EC0184858F7141F5F6
-:102BA00084E10E94DA16BC01990F880B990B0E94F0
-:102BB000A31A26EE3FE34EEC50E40E942F1B0E9426
-:102BC000721A9B017B836A83672B81F084E089837F
-:102BD000FE01349680E0419151912417350710F49D
-:102BE000898309C08F5F8430B1F702C08FEF89837A
-:102BF0008C858F5F8C87DF91CF9108951F920F9204
-:102C00000FB60F9211242F933F938F939F93AF93FF
-:102C1000BF938091040490910504A0910604B091A3
-:102C200007043091030423E0230F2D3720F401968D
-:102C3000A11DB11D05C026E8230F0296A11DB11DDF
-:102C4000209303048093040490930504A093060446
-:102C5000B09307048091080490910904A0910A049C
-:102C6000B0910B040196A11DB11D809308049093AF
-:102C70000904A0930A04B0930B04BF91AF919F91F4
-:102C80008F913F912F910F900FBE0F901F9018952D
-:102C90002FB7F894609104047091050480910604A4
-:102CA000909107042FBF08953FB7F89480910804CE
-:102CB00090910904A0910A04B0910B0426B5A89B39
-:102CC00005C02F3F19F00196A11DB11D3FBFBA2FBE
-:102CD000A92F982F8827820F911DA11DB11DBC011E
-:102CE000CD0142E0660F771F881F991F4A95D1F7E3
-:102CF0000895CF92DF92EF92FF92CF93DF936B0113
-:102D00007C010E945416EB01C114D104E104F104CA
-:102D100079F00E9454166C1B7D0B683E7340A0F343
-:102D200081E0C81AD108E108F108C851DC4FECCFA6
-:102D3000DF91CF91FF90EF90DF90CF90089578943E
-:102D400084B5826084BD84B5816084BD85B58260B0
-:102D500085BD85B5816085BDEEE6F0E0808181604E
-:102D60008083E1E8F0E0108280818260808380814E
-:102D700081608083E0E8F0E0808181608083E1EB26
-:102D8000F0E0808184608083E0EBF0E0808181600E
-:102D90008083EAE7F0E080818460808380818260C4
-:102DA00080838081816080838081806880831092AD
-:102DB000C10008958E3008F08E502091010190E4FA
-:102DC000299F900111248770822B80937C00809131
-:102DD0007A00806480937A0080917A0086FDFCCF2F
-:102DE000809178002091790090E0922B08951F93B4
-:102DF000CF93DF93182FEB0161E00E947F1720979C
-:102E000011F460E004C0CF3FD10539F461E0812FB7
-:102E1000DF91CF911F910C94BB17E12FF0E0E754A5
-:102E2000FC4FE491E330F9F048F4E130B9F0E230DE
-:102E3000A1F584B5806284BDC8BD34C0E630E9F038
-:102E4000E73019F1E43049F5809180008062809389
-:102E50008000D0938B00C0938A0024C084B5806822
-:102E600084BDC7BD1FC080918000806880938000B2
-:102E7000D0938900C093880015C08091B00080680D
-:102E80008093B000C093B3000DC08091B000806209
-:102E90008093B000C093B40005C0C038D1050CF0D9
-:102EA000B5CFAFCFDF91CF911F910895833081F0DF
-:102EB00028F4813099F08230A1F008958630A9F08D
-:102EC0008730B9F08430D1F4809180008F7D03C0C9
-:102ED000809180008F7780938000089584B58F77EC
-:102EE00002C084B58F7D84BD08958091B0008F7736
-:102EF00003C08091B0008F7D8093B0000895CF9380
-:102F0000DF9390E0FC01E353FC4F2491FC01EF516F
-:102F1000FC4F8491882361F190E0880F991FFC0198
-:102F2000E75FFB4FC591D491FC01E150FC4FA591A7
-:102F3000B491611109C09FB7F894888120958223CC
-:102F40008883EC912E230BC0623061F49FB7F89414
-:102F50008881322F309583238883EC912E2B2C93FC
-:102F60009FBF06C08FB7F894E8812E2B28838FBFB0
-:102F7000DF91CF9108951F93CF93DF93282F30E0F7
-:102F8000F901E754FC4F8491F901E353FC4FD491CC
-:102F9000F901EF51FC4FC491CC23C1F0162F8111E0
-:102FA0000E945617EC2FF0E0EE0FFF1FE150FC4F90
-:102FB000A591B4919FB7F894111104C08C91D0954C
-:102FC000D82302C0EC91DE2BDC939FBFDF91CF9121
-:102FD0001F910895CF93DF93282F30E0F901E75434
-:102FE000FC4F8491F901E353FC4FD491F901EF5167
-:102FF000FC4FC491CC2391F081110E945617EC2F05
-:10300000F0E0EE0FFF1FEB50FC4FA591B491EC9157
-:10301000ED2381E090E021F480E002C080E090E0C8
-:10302000DF91CF910895CF92DF92EF92FF920F93AD
-:103030001F93CF93DF936C01EB017B01E40EF51E30
-:1030400000E010E0CE15DF0561F06991D601ED9149
-:10305000FC910190F081E02DC6010995080F191F20
-:10306000F1CFC801DF91CF911F910F91FF90EF90A9
-:10307000DF90CF9008956115710579F0FB01019003
-:103080000020E9F73197AF01461B570BDC01ED91AA
-:10309000FC910280F381E02D099480E090E0089596
-:1030A000EF92FF920F931F93CF93DF937C01FB016D
-:1030B00000E010E06491EF012196662361F0D701F2
-:1030C000ED91FC910190F081E02DC7010995080F69
-:1030D000191FFE01EFCFC801DF91CF911F910F9112
-:1030E000FF90EF900895DC01ED91FC910190F0814B
-:1030F000E02D09940F931F93CF93DF93EC016DE0C4
-:103100000E9473188C016AE0CE010E947318800F30
-:10311000911FDF91CF911F910F9108950F931F93EE
-:10312000CF93DF93EC010E9450188C01CE010E94D6
-:103130007A18800F911FDF91CF911F910F91089501
-:103140008F929F92AF92BF92CF92DF92EF92FF92B7
-:103150000F931F93CF93DF93CDB7DEB7A1970FB631
-:10316000F894DEBF0FBECDBF6C01142FE52FCB014D
-:10317000022F19A2223008F40AE07E0121E2E20EB9
-:10318000F11C802E912CA12CB12C612F7E2FA5013A
-:1031900094010E94111A029F1019112481E0E81A6B
-:1031A000F1081A3014F4105D01C0195CF7011083A6
-:1031B000122FE32FCA01232B242B252B31F7B70124
-:1031C000C6010E943B18A1960FB6F894DEBF0FBE51
-:1031D000CDBFDF91CF911F910F91FF90EF90DF90C6
-:1031E000CF90BF90AF909F908F900895211531059B
-:1031F00041F4DC01ED91FC910190F081E02D642F10
-:1032000009940C94A0189A01AB0160E070E00C9452
-:10321000F618CF92DF92EF92FF920F931F93CF9306
-:10322000DF932115310581F4DC01ED91FC910190D2
-:10323000F081E02D642FDF91CF911F910F91FF90CE
-:10324000EF90DF90CF9009942A30310501F577FF98
-:103250001DC06A017B01EC016DE20E9473188C01B4
-:1032600044275527BA014C195D096E097F092AE0E8
-:10327000CE010E94A018800F911FDF91CF911F9166
-:103280000F91FF90EF90DF90CF9008952AE0DF91AB
-:10329000CF911F910F91FF90EF90DF90CF900C9402
-:1032A000A0189A01AB01770F660B770B0C940919E4
-:1032B0004F925F926F927F92AF92BF92CF92DF92C6
-:1032C000EF92FF920F931F93CF93DF93CDB7DEB7AB
-:1032D00029013A019B01AC01241935094609570916
-:1032E00089899A89AB89BC89BC01CD016A197B099E
-:1032F0008C099D090E94CD19A8019701241935094F
-:10330000460957090E94331ACA01B9016A0D7B1D8B
-:103310008C1D9D1DDF91CF911F910F91FF90EF901C
-:10332000DF90CF90BF90AF907F906F905F904F9065
-:103330000895089561E08AE00E94BB1761E08AE089
-:103340000E947F178CB580618CBD8CB580648CBD6C
-:1033500061E08DE00E947F1761E08BE00C947F17A5
-:10336000811103C08CB5806202C08CB58F7D8CBD8D
-:1033700008959CB5937F892B8CBD08959CB59C7F47
-:10338000282F2370922B9CBD2DB582FB992790F995
-:10339000822F8E7F892B8DBD0895DB018F939F93A4
-:1033A0000E94521ABF91AF91A29F800D911DA39FC1
-:1033B000900DB29F900D11240895991B79E004C0DF
-:1033C000991F961708F0961B881F7A95C9F7809564
-:1033D0000895AA1BBB1B51E107C0AA1FBB1FA6175C
-:1033E000B70710F0A61BB70B881F991F5A95A9F7AE
-:1033F00080959095BC01CD01089597FB072E16F49A
-:10340000009407D077FD09D00E94E91907FC05D088
-:103410003EF4909581959F4F0895709561957F4FEB
-:103420000895A1E21A2EAA1BBB1BFD010DC0AA1F05
-:10343000BB1FEE1FFF1FA217B307E407F50720F01D
-:10344000A21BB30BE40BF50B661F771F881F991F98
-:103450001A9469F760957095809590959B01AC01E1
-:10346000BD01CF010895052E97FB1EF400940E9424
-:103470004A1A57FD07D00E94111A07FC03D04EF4D8
-:103480000C944A1A50954095309521953F4F4F4FD7
-:103490005F4F089590958095709561957F4F8F4F00
-:1034A0009F4F08950E94631AA59F900DB49F900DA1
-:1034B000A49F800D911D11240895EE0FFF1F05900C
-:1034C000F491E02D0994A29FB001B39FC001A39F86
-:1034D000700D811D1124911DB29F700D811D11244D
-:1034E000911D08950E940E1B88F09F5798F0B92FE8
-:1034F0009927B751B0F0E1F0660F771F881F991F29
-:103500001AF0BA95C9F714C0B13091F00E94281B87
-:10351000B1E008950C94281B672F782F8827B85F97
-:1035200039F0B93FCCF3869577956795B395D9F780
-:103530003EF490958095709561957F4F8F4F9F4F8A
-:103540000895E89409C097FB3EF490958095709596
-:1035500061957F4F8F4F9F4F9923A9F0F92F96E9DF
-:10356000BB279395F695879577956795B795F11154
-:10357000F8CFFAF4BB0F11F460FF1BC06F5F7F4FF1
-:103580008F4F9F4F16C0882311F096E911C0772303
-:1035900021F09EE8872F762F05C0662371F096E80C
-:1035A000862F70E060E02AF09A95660F771F881FDB
-:1035B000DAF7880F9695879597F9089597F99F6799
-:1035C00080E870E060E008959FEF80EC08950024AB
-:1035D0000A941616170618060906089500240A9478
-:1035E00012161306140605060895092E0394000CFE
-:1035F00011F4882352F0BB0F40F4BF2B11F460FF8D
-:1036000004C06F5F7F4F8F4F9F4F089557FD9058B5
-:10361000440F551F59F05F3F71F04795880F97FB96
-:10362000991F61F09F3F79F0879508951216130650
-:103630001406551FF2CF4695F1DF08C0161617067F
-:103640001806991FF1CF86957105610508940895B4
-:10365000E894BB2766277727CB0197F908950E9446
-:10366000421B0C94F51A0E94E71A38F00E94EE1AD9
-:1036700020F0952311F00C94DE1A0C94E41A112416
-:103680000C94291B0E94061B70F3959FC1F3950FA4
-:1036900050E0551F629FF001729FBB27F00DB11DD6
-:1036A000639FAA27F00DB11DAA1F649F6627B00D66
-:1036B000A11D661F829F2227B00DA11D621F739F4F
-:1036C000B00DA11D621F839FA00D611D221F749F5D
-:1036D0003327A00D611D231F849F600D211D822FA4
-:1036E000762F6A2F11249F5750409AF0F1F08823CB
-:1036F0004AF0EE0FFF1FBB1F661F771F881F9150F8
-:103700005040A9F79E3F510580F00C94DE1A0C94AE
-:10371000291B5F3FE4F3983ED4F386957795679530
-:10372000B795F795E7959F5FC1F7FE2B880F911D21
-:103730009695879597F90895DC0101C06D934150E6
-:103740005040E0F70895FB01DC014150504048F043
-:1037500001900D920020C9F701C01D9241505040C8
-:08376000E0F70895F894FFCF93
-:1037680001010019230000000086020000000099F2
-:103778001900000000000000000000000000000028
-:1037880000980500000000000000000000DE0300B3
-:103798000021040000FF03000042040000000000B4
-:1037A8000000000000000000000000000000000011
-:1037B800000000000000000000AD050000970500B3
-:1037C8000000000000000000008C0C13184C4F4152
-:0437D8004445520012
+:100600000C05CF93DF93EC010E94F706CE010E9408
+:10061000FB03E881F9810190F081E02DCE01DF91AB
+:10062000CF9109949F92AF92BF92CF92DF92EF92B7
+:10063000FF920F931F93CF93DF93EC0168966C01A9
+:1006400028EAC21A2EEFD20A8C01045A1E4FCE019C
+:100650000E94EC04882389F1CE010E94EF048111ED
+:100660002CC0CE010E94F5045C01CE010E94F90469
+:100670007C01C8010E940E06982EC8010E94110636
+:1006800095012919310937FF03C0319521953109A9
+:100690002830310594F49701281B3109C90137FF2F
+:1006A00003C091958195910908973CF461E0CE01D2
+:1006B0000E94F20482E090E006C02A96CC15DD0587
+:1006C00031F680E090E0DF91CF911F910F91FF9084
+:1006D000EF90DF90CF90BF90AF909F9008950F93D1
+:1006E000FC01718360834283238304831582168215
+:1006F0000F9108951F93CF93DF93EC0140E06B813E
+:1007000082EC91E00E9463088091FB019091FC01D2
+:10071000009719F12A81222329F06D810E9431046A
+:10072000182F01C01D818A81882341F06E8180913C
+:10073000FB019091FC010E94360401C08E8128814A
+:1007400039812115310549F0482F612F82EC91E064
+:10075000DF91CF911F910C946A0ADF91CF911F9185
+:100760000895FC01658346830895AF92BF92CF92AE
+:10077000DF92EF92FF920F931F93CF93DF93EC01E1
+:100780006B018FE091E0998388837E0188E0E80E19
+:10079000F11C80E1F70111928A95E9F78E01085E5C
+:1007A0001F4F5E01F8EAAF1AFEEFBF0A60E070E08B
+:1007B000C8010E94FD04065F1F4F0A151B05B1F713
+:1007C000C114D10431F040E150E0B601C7010E94EC
+:1007D0003E1C43E050E06CE271E0CE010296DF91F6
+:1007E000CF911F910F91FF90EF90DF90CF90BF902E
+:1007F000AF900C94371C0F931F93CF93DF938C0112
+:10080000085E1F4FEC01C85ADE4FC8010E943A052E
+:10081000065F1F4F0C171D07C1F7DF91CF911F9186
+:100820000F9108950F931F93CF93DF938C01085E70
+:100830001F4FEC01C85ADE4FC8010E943C05065FFD
+:100840001F4F0C171D07C1F7DF91CF911F910F911B
+:100850000895FC0110821282118214821382158283
+:100860000895FC018181681B862F0895FC01838116
+:10087000681B862F08950F931F93CF93DF93EC018E
+:100880008B01CB010E941406811109C040E06CEF7E
+:10089000C801DF91CF911F910F910C94F0058981D0
+:1008A0009A818430910594F304979A838983DF9128
+:1008B000CF911F910F9108950F931F93CF93DF93C3
+:1008C000EC018B01CB010E941406811109C040E0AC
+:1008D00064E0C801DF91CF911F910F910C94F00556
+:1008E00089819A81811522E092078CF704969A8378
+:1008F0008983DF91CF911F910F9108950F931F93DB
+:10090000CF93DF93EC018B01CB010E941B06811179
+:1009100009C04CEF60E0C801DF91CF911F910F91AA
+:100920000C94F0058B819C811816190694F7049796
+:100930009C838B83DF91CF911F910F9108950F932B
+:100940001F93CF93DF93EC018B01CB010E941B0619
+:10095000811109C044E060E0C801DF91CF911F918F
+:100960000F910C94F0058B819C81811522E09207F8
+:100970008CF704969C838B83DF91CF911F910F910D
+:100980000895FC0180810895FC0111821082128279
+:10099000138215821482178216820895FC0181E069
+:1009A00082837583648357834683089508950F93E4
+:1009B000FC012381222371F0FB01DC01249131969B
+:1009C000049116964C91169714966C9182EC91E0D6
+:1009D0000E949F080F910895FC0182810895FC01F7
+:1009E00083810895FC0163830895FC0184819581CE
+:1009F0000895FC018681978108950F931F93CF93EB
+:100A0000DF93EC018B010E94C40419870887DF91F2
+:100A1000CF911F910F910895EF92FF920F931F9323
+:100A2000CF93DF9300D01F92CDB7DEB77C018B014F
+:100A3000BA01A9010E94CE04F701118700878091B5
+:100A4000020190910301A091040189839A83AB83F1
+:100A5000FE01E00FF11F818190E0F7019183808317
+:100A60000F900F900F90DF91CF911F910F91FF90FA
+:100A7000EF9008950C94D604CF92DF92EF92FF92FC
+:100A80000F93CF93DF93CDB7DEB72D970FB6F894C2
+:100A9000DEBF0FBECDBFFC0120853185233031057F
+:100AA00054F57C011986188682E890E09B878A8736
+:100AB0001D861C86220F331FE1E0F0E0EC0FFD1FC6
+:100AC000E20FF31FC780D08400E021E041E0B601CF
+:100AD000CE0101960E946F03F70146816481CE0129
+:100AE00001960E94B103CE0101960E947A03B601DD
+:100AF000C7010E94D7042D960FB6F894DEBF0FBE33
+:100B0000CDBFDF91CF910F91FF90EF90DF90CF900D
+:100B10000895EF92FF920F931F93CF93DF93CDB77A
+:100B2000DEB7C457D1400FB6F894DEBF0FBECDBFBD
+:100B30007E0180EAE81A8EEFF80A8AE0D7011D925A
+:100B40008A95E9F7B70184E791E00E94DA128E01F5
+:100B500006591E4FC8010E942904A801B701FE01D1
+:100B600031967F01CF010E94D602FE01E059FE4F6F
+:100B700085E0DF011D928A95E9F781E08283F182A9
+:100B8000E082148303831093FC010093FB01CF01E7
+:100B90000E943A02CC58DE4F0FB6F894DEBF0FBE6B
+:100BA000CDBFDF91CF911F910F91FF90EF900895EE
+:100BB0006EEB70E084E791E00E94021243E068EB84
+:100BC00070E084E791E00E94390F811102C00C941B
+:100BD0008905089528E2FC01208326E121830895F8
+:100BE000FC019081262F062E000C330B290F311D9E
+:100BF00097FD3A952932310510F4960F9083818143
+:100C0000242F042E000C330B280F311D87FD3A953D
+:100C10002731310510F4840F81830895FC01808110
+:100C20000895FC0181810895FC0181E09081983252
+:100C300009F080E0089521E0FC018181863109F00E
+:100C400020E0822F08950895DC01A85ABE4F2D910F
+:100C50003C911197FC01E25AFE4F2230310539F4E4
+:100C60008081853020F081E090E08D939C9310820C
+:100C70000895CF93DF93EC01C85ADE4F2881398164
+:100C80002115310521F02230310531F00DC00E94CF
+:100C900012039983888308C0FC01E25AFE4F8081C9
+:100CA0008F3F11F08F5F8083DF91CF910895DB013B
+:100CB000AA0FBB1FAA0FBB1FA75BBE4FED91FC91F4
+:100CC000119712962D913C911397A90141705527C8
+:100CD000309719F44115510589F035952795452B25
+:100CE00051F0DC01A20FB31F4D915C91E40FF51F91
+:100CF0000190F081E02D820F931F09940895EF92E7
+:100D0000FF920F931F93CF93DF938C01EB017C0134
+:100D100086EAE81A8EEFF80AD7018D919C910E941D
+:100D2000C104811135C0DE01AA0FBB1FAA0FBB1F72
+:100D3000A35DBE4FED91FC91119712968D919C9100
+:100D400013979C0121703327309719F42115310531
+:100D5000F9F095958795232B61F0E701A881B9817A
+:100D6000A80FB91F2D913C91E20FF31F0190F08164
+:100D7000E02DB801645A7E4FD7012D913C91820F2E
+:100D8000931FDF91CF911F910F91FF90EF900994E6
+:100D9000DF91CF911F910F91FF90EF900895DB01AC
+:100DA000AA0FBB1FAA0FBB1FAF5EBE4FED91FC91F8
+:100DB000119712962D913C911397A90141705527D7
+:100DC000309719F44115510589F035952795452B34
+:100DD00051F0DC01A20FB31F4D915C91E40FF51FA0
+:100DE0000190F081E02D820F931F099408950F93D5
+:100DF0001F93CF93DF938C01C0E0D0E06C2F8EE780
+:100E000091E00E948107BE01882341F0C8010E9441
+:100E10005706BE01C8010E947F0603C0C8010E9498
+:100E2000CF062196C730D10549F7DF91CF911F91A9
+:100E30000F910895FC0188E0808389E0818387E039
+:100E4000828386E0838384E0848382E0858381E1FA
+:100E500086830895FF920F931F93CF93DF93EC0146
+:100E60008C01095F1F4FFF24FA9462E088810E9481
+:100E70001A1888810E9485182F81892B19F42F5FF9
+:100E80002F8307C0222349F02F3F11F41F8201C096
+:100E9000FF8260E088810E941A182196C017D1074E
+:100EA00021F7DF91CF911F910F91FF900895FC01E1
+:100EB000E60FF11D81E09781913009F080E00895FF
+:100EC000FC01E60FF11D81E097819F3F09F080E072
+:100ED0000895262F30E0FC01E20FF31F423030F47A
+:100EE0009781915081E09E3F58F009C087818F3FE4
+:100EF00031F0642F0E94781A81E0913009F080E08F
+:100F00000895860F911DFC0187818F3F09F480E0D1
+:100F100008958EBD0DB407FEFDCF8EB50895DC019A
+:100F2000643508F057C0403308F054C090969C9147
+:100F30009097E42FE595E595E595262F062E000C74
+:100F4000330B542F57709230A1F4D90184E5E80295
+:100F5000A00DB11D1124A350BE4F8C9190E0052E21
+:100F600002C0959587950A94E2F78095982F917025
+:100F70000CC0933051F41C968C916427062E000C03
+:100F8000770B682760FF03C014C0911112C084E57D
+:100F9000E802200D311D1124F901E350FE4F81E0DC
+:100FA00090E001C0880F5A95EAF7809590818923D7
+:100FB00010C084E5E802200D311D1124F901E35031
+:100FC000FE4F81E090E001C0880F5A95EAF79081CA
+:100FD000892B808308951F93CF93DF93EC01162F05
+:100FE000F89460E08F850E945618888918161CF4C2
+:100FF00060E00E945618812F0E9489078889181680
+:101000001CF461E00E9456187894DF91CF911F91F3
+:10101000089528EF31E0EDEFF1E0DF01A9011D9225
+:1010200041505040E1F7DC0119961C9219971A962D
+:101030001C920895CF92DF92EF92FF920F931F932D
+:10104000CF93DF93EC018C858F5F8C878DEFE82E3B
+:1010500081E0F82E10E0612F6064CE010E94EB0762
+:1010600060E8CE010E94EB0761E08F850E94561870
+:10107000888918161CF460E00E945618670104E580
+:10108000F60181916F010E9489070150C9F7888993
+:1010900018161CF461E00E9456181F5FF4E5EF0E6D
+:1010A000F11C1630C1F660E4CE01DF91CF911F91A3
+:1010B0000F91FF90EF90DF90CF900C94EB07FC0125
+:1010C00060A361A30895FC0160A341A30895EF927A
+:1010D000FF920F931F93CF93DF938C01D62FF42EA3
+:1010E000E22EC0E0CE1544F44F2D4C0F6D2FC801F9
+:1010F0000E948F07CF5FF6CFDF91CF911F910F91A5
+:10110000FF90EF900895EF92FF920F931F93CF936C
+:10111000DF938C01F62ED42FE22EC0E0CE1544F4DE
+:101120006F2D6C0F4D2FC8010E948F07CF5FF6CF38
+:10113000DF91CF911F910F91FF90EF900895EF9263
+:10114000FF920F931F93CF93DF937C01C62F142F31
+:10115000D22F0E9483084FEF400F410F2D2F6C2F8D
+:10116000C7010E948308202F412F6C2FC7010E94C6
+:1011700067086FEF6D0F6C0F202F412FC701DF91B4
+:10118000CF911F910F91FF90EF900C946708DF9221
+:10119000EF92FF920F931F93CF93DF937C01D62F93
+:1011A000D22EC42F002E000C110B040F111D47FD71
+:1011B0001A958C2F0C2E000C990B8017910744F474
+:1011C0002D2D4C2F6D2FC7010E948308CF5FF1CFCB
+:1011D000DF91CF911F910F91FF90EF90DF900895D5
+:1011E0008F929F92AF92BF92CF92DF92EF92FF9237
+:1011F0000F931F93CF93DF937C01162FD42EC22F12
+:1012000081E0C82EC21AB22EB194BB0CD0E0802F60
+:101210008470A82E802F8270982E802F8870882E40
+:101220000170DC170CF04DC0C7FC04C0C150B39472
+:10123000B394CB0CDF5F8D2F880F8F5FC80EAA2071
+:1012400071F04D2D4C0F612F6D0FC7010E948F075C
+:101250004D2D4D0F6C2F610FC7010E948F079920F4
+:1012600071F04D2D4C1B612F6D0FC7010E948F0730
+:101270004D2D4D1B6C2F610FC7010E948F078820D9
+:1012800071F04D2D4D0F612F6C1BC7010E948F0710
+:101290004D2D4C0F612F6D1BC7010E948F0700233E
+:1012A00009F4BFCF4D2D4D1B612F6C1BC7010E9450
+:1012B0008F074D2D4C1B612F6D1BC7010E948F079F
+:1012C000B0CFDF91CF911F910F91FF90EF90DF9002
+:1012D000CF90BF90AF909F908F9008958F929F92E4
+:1012E000AF92BF92CF92DF92EF92FF920F931F9334
+:1012F000CF93DF936C01A62E942EC22F11E0121B08
+:10130000F22EF194FF0C83E0B82EBE0CD1E0802FBA
+:101310008170882EE39402708FEF8D0F8C17BCF5CF
+:1013200017FD04C0C150F394F3941F0D8D2F880F47
+:101330008F5F180F882091F02C2F220F2E0D492D32
+:101340004C1B6D2F6A0DC6010E9467082B2D492D7D
+:101350004D1B6C2F6A0DC6010E946708011104C065
+:10136000DF5FB394B394D8CF2C2F220F2E0D492DCD
+:101370004C1B6A2D6D1BC6010E9467082B2D492D41
+:101380004D1B6A2D6C1BC6010E946708E9CFDF91D7
+:10139000CF911F910F91FF90EF90DF90CF90BF9072
+:1013A000AF909F908F9008959F92AF92BF92CF92EF
+:1013B000DF92EF92FF920F931F93CF93DF936C0115
+:1013C000C62FD42FB22EAE2CAA0C922E9A18FE2C19
+:1013D000F60E292D6F2D0E9483081FEF100F1D0F91
+:1013E000292D412F6F2DC6010E9483080A19DE0D99
+:1013F000202F4D2F6C2FC6010E946708CB0D6FEF79
+:101400006C0F202F4D2FC6010E94670801E02E2D82
+:101410004D2F6F2DC6010E94F0088E2D8095C80FAC
+:1014200002E02E2D4D2F6C2FC6010E94F008D12F07
+:10143000DE1904E02E2D4D2F6C2FC6010E94F008FE
+:1014400008E02E2D4D2F6F2DC6010E94F008DF9170
+:10145000CF911F910F91FF90EF90DF90CF90BF90B1
+:10146000AF909F900895AF92BF92CF92DF92EF928C
+:10147000FF920F931F93CF93DF936C01B62EF42E40
+:10148000122FC02FDE2DEE0CAD2EA60E2E196A2DBA
+:101490000E94C708C150CE19FD0E6FEF6B0D610F92
+:1014A0006D1BEC2E01E02D2F4F2DC6010E946E0901
+:1014B00002E02D2F4F2D6A2DC6010E946E09DF918B
+:1014C000CF911F910F91FF90EF90DF90CF90BF9041
+:1014D000AF9008952F923F925F926F927F928F927A
+:1014E0009F92AF92BF92CF92DF92EF92FF920F93B3
+:1014F0001F93CF93DF93EC01F901E490319684912F
+:1015000064350CF019C10E2C000CFF08062F062EB6
+:10151000000C110BF701E00FF11F1E161F060CF057
+:101520000BC140330CF008C1A82FC42E042E000CB0
+:10153000DD085601A80EB11C87FDBA941A141B04CD
+:101540000CF0FAC02E5F3F4F570197E0A90EB11C77
+:10155000B7FE04C05701BEE0AB0EB11CB3E0B594BA
+:10156000A794BA95E1F747FF0AC0A42FA80FAC9C37
+:10157000C001AD9C900D1124281B390B40E08A2F2F
+:101580000A2E000C990B840F911D47FD9A95C19767
+:1015900014F0A0E3A41BF8A067FD60E0E535F105B9
+:1015A00014F0E4E5F0E09E2FCC85C427C62E062E6D
+:1015B000000CDD08F601E01BF10B8F014F01F7E095
+:1015C0008F229924E0E8F0E002C0F595E7958A942F
+:1015D000E2F77E2F17FF02C0095F1F4FF3E015955A
+:1015E0000795FA95E1F7200F311F542F577081E0CE
+:1015F00001C0880F5A95EAF7459545954595F6013E
+:10160000B4E54B02E00DF11D1124AF0143505E4FD4
+:10161000D0E02A2EAA0F3308EE24E394BB24ED2F4A
+:10162000F0E0E215F3050CF087C0F9015490F1E009
+:10163000FF121AC0962E8A01E72F6901991608F049
+:1016400072C08E2E852021F0D8018C90882A8C9231
+:10165000E69531F4BFEFCB1ADB0AF6015490E0E8CF
+:1016600093940F5F1F4FEACFF1101CC0782E709437
+:10167000962E8A01E72F6901991608F054C08E2E24
+:10168000852021F0D8018C9087208C92E69531F44A
+:10169000BFEFCB1ADB0AF6015490E0E893940F5F9A
+:1016A0001F4FEACFF3E0FF1629F0962E8A01E72FAD
+:1016B000690137C0682E6094862E8A01972E6901D1
+:1016C0008916D8F4E92DE52159F0D801EC917C2E4A
+:1016D000782470FE02C0E82B02C0E621D801EC930A
+:1016E000969439F4BFEFCB1ADB0AF6015490E0E888
+:1016F0009E2E83940F5F1F4FE3CFCE2514C08E2EF6
+:10170000852021F0D8018C9088268C92E69531F4C2
+:10171000BFEFCB1ADB0AF6015490E0E893940F5F19
+:101720001F4F991660F3880F19F44C5A5F4F81E0F0
+:10173000DF5F2A0D3B1D73CFDF91CF911F910F917A
+:10174000FF90EF90DF90CF90BF90AF909F908F90E1
+:101750007F906F905F903F902F900895DC01FB0188
+:1017600084918F5F14968C9314973196E491EF5F78
+:101770001596EC9315976E5F7F4F5F967C936E93F3
+:101780005E970895EF920F93CF93DF93EC014E870E
+:101790006D872F87E98A088B81E0888788A319A243
+:1017A0008F836DEC70E0CE010E94AE0B0E94351A63
+:1017B00081E00E944B1A85E00E94591A8CE00E9439
+:1017C000541A61E08E850E941A1861E08D850E948E
+:1017D0001A1861E08F850E941A18898918161CF45E
+:1017E00061E00E941A18888918161CF461E00E94B2
+:1017F0001A18898918166CF460E00E9456186AE07D
+:1018000070E080E090E00E94141761E089890E94F6
+:1018100056188D85082E000C990BFC01EF51FC4FDA
+:10182000E491F0E0EE0FFF1FE150FC4F2591349161
+:101830003D8B2C8BFC01E353FC4FE491EB8F8E85A9
+:10184000082E000C990BFC01EF51FC4FE491F0E0E5
+:10185000EE0FFF1FE150FC4F259134913B8B2A8BFB
+:10186000FC01E353FC4FE491EA8F8889082E000CB9
+:10187000990BFC01EF51FC4FE491F0E0EE0FFF1FDC
+:10188000E150FC4F259134913F8B2E8BFC01E353AB
+:10189000FC4FE491EC8F8F85082E000C990BFC0116
+:1018A000EF51FC4FE491F0E0EE0FFF1FE150FC4FD1
+:1018B00025913491398F288FFC01E353FC4FE4913B
+:1018C000ED8F61E2CE010E94EB0764E1CE010E9440
+:1018D000EB078B8587FF02C08FE78B876B8560687E
+:1018E000CE010E94EB0760E2CE010E94EB076CE0A4
+:1018F000CE010E94EB07CE01DF91CF910F91EF90C7
+:101900000C941A086F927F928F929F92AF92BF921F
+:10191000CF92DF92EF92FF920F931F93CF93DF93BB
+:10192000EC0164350CF084C040330CF081C0EC81D4
+:10193000F0E031970E9FC0010F9F900D1124860F8C
+:10194000911D67FD9A95181619060CF071C03D811E
+:10195000842F042E000C990B039F800D911D1124E0
+:10196000181619060CF064C0D02EB42EC62E88A00E
+:10197000A62E962EE22EF12CEA2DEC190E2E000C3E
+:10198000FF0B8C8190E0E817F9070CF050C001972D
+:10199000E817F90779F0E89E9001E99E300DF89E6E
+:1019A000300D1124E20FF31F8E8D9F8DE80FF91F6C
+:1019B000149101C010E07B2C6B2C272D2B19022ECB
+:1019C000000C330B8D8190E0281739076CF510FF60
+:1019D00011C081E0D81206C0472D6A2DCE010E94A9
+:1019E0008F071EC00D2D2D2D462D692DCE010E9475
+:1019F000C70816C089A198A1891791F088A381E032
+:101A0000D81206C0472D6A2DCE010E948F0707C04D
+:101A10000D2D2D2D462D692DCE010E94C70888A2BF
+:101A200016956D0C7394C9CF9D0CA394A5CF88A275
+:101A3000DF91CF911F910F91FF90EF90DF90CF90AA
+:101A4000BF90AF909F908F907F906F9008950F936D
+:101A5000CF93DF93EC016A3011F428851EC06D30FE
+:101A600019F1262F08854A8569850E94820C2885F0
+:101A70003C818985239F800D112489879F8199232B
+:101A800099F0082E000C990B44E550E0239F401973
+:101A900051091124481759073CF49D818A85299FD3
+:101AA000800D11248A87198681E090E0DF91CF9123
+:101AB0000F9108958F929F92AF92BF92CF92DF9233
+:101AC000EF92FF920F931F93CF93DF93EC015C0192
+:101AD00086E8A80EB11CD5019C91992309F44DC04C
+:101AE0009C3018F41CE0191B01C010E0FE01EA5AFA
+:101AF000FF4F81E080836E01BEE4CB0ED11C60E01D
+:101B0000C6010E945F084E01E3E58E0E911CD401D0
+:101B10008C9103E0080F9DE2F92E4F2D481B410FD9
+:101B200023E0E22E24E560E0C6010E94330A61E072
+:101B3000C6010E945F08F401808103E0080F4F2D69
+:101B4000481B410F24E560E0C6010E94D409FE0154
+:101B5000E95AFF4F84E080833196D4018C91181BA1
+:101B6000115D1083CC57DF4F68817981C6010E94D7
+:101B7000EB18F501808181508083DF91CF911F9117
+:101B80000F91FF90EF90DF90CF90BF90AF909F901C
+:101B90008F900895CF92DF92FF920F931F93CF9370
+:101BA000DF93FC01248D358D232B09F49FC0EC01BC
+:101BB0008C01025B1F4F40E061E0C8010E94630896
+:101BC000FE01E95AFF4FDE01AE5ABF4F9C9185E5F9
+:101BD000891B808331961082698D613009F463C05E
+:101BE00028F0888D653008F074C06FC0CE018596EE
+:101BF0000E94201481E0FE01EA5AFF4F80836DECC1
+:101C000070E0C8010E94AE0B1D8E1C8EFE01EC5AC6
+:101C1000FF4F108288EAF82E6E01FAE0CF0ED11C39
+:101C2000CE010E947E0E8823D9F36CEB72E0C801CE
+:101C30000E94EB186A8D7B8D4AE050E0C8010E943B
+:101C40009E1967EA72E0C8010E94EB186F2D629539
+:101C50006F7070E04AE050E0C8010E94EC196CE936
+:101C600072E0C8010E94EB1864E0C6010E945707A9
+:101C700081113CC0FA94F110D3CF60E0CE010E94F4
+:101C8000F31583B7817F846083BF83B7816083BF8F
+:101C900083B7816083BF889583B78E7F83BF83B707
+:101CA0008E7F83BFBDCFCF58DF4F88819981AA81B6
+:101CB000BB818F709927AA27BB270897A105B1057B
+:101CC00010F467E009C068E707C0882379F06B5F0C
+:101CD00003C0882359F06FE2C801DF91CF911F91B3
+:101CE0000F91FF90DF90CF900C940E19DF91CF9160
+:101CF0001F910F91FF90DF90CF9008958F929F9248
+:101D0000AF92BF92CF92DF92EF92FF920F931F9309
+:101D1000CF93DF93EC017C0180E8E80EF11CF70122
+:101D200080809180A280B3800E94E316861A970A71
+:101D3000A80AB90A6E01FFE7CF0ED11CF601808117
+:101D400090E0A0E0B0E08E0105581F4F881599057E
+:101D5000AA05BB0550F4F80180819181A281B3816D
+:101D6000892B8A2B8B2B09F040C0F801808191814F
+:101D7000A281B381892B8A2B8B2BA9F57E01F5E2F9
+:101D8000EF0EF11CC7010E941D14C7010E948914A7
+:101D9000C7010E944E15CE010E945A0DCE010E942D
+:101DA000CA0D7E018EE4E80EF11CC7010E941A08DC
+:101DB000FE01EC5AFF4F8081811103C0C7010E94D0
+:101DC00009080E94EF16F801608371838283938370
+:101DD000FE01EB58FF4FC958DF4F28813981621B44
+:101DE000730B7183608380E037C00E94E316F601B5
+:101DF0002081DC01CB01820F911DA11DB11DF701D6
+:101E000080839183A283B383FE01EF58FF4F8081CB
+:101E10009181A281B3810196A11DB11D808391831F
+:101E2000A283B383F80110821182128213820E946E
+:101E3000EF16FE01E958FF4F60837183828393831D
+:101E4000CE010E94F715CE010A960E942A07CE0104
+:101E500048960E94601681E0DF91CF911F910F910B
+:101E6000FF90EF90DF90CF90BF90AF909F908F90BA
+:101E700008952F923F924F925F926F927F928F922E
+:101E80009F92AF92BF92CF92DF92EF92FF920F9309
+:101E90001F93CF93DF93CDB7DEB765970FB6F89456
+:101EA000DEBF0FBECDBF6C016A8B7B8B4B83FC0109
+:101EB000EC5AFF4F10822FEF2D831C821D8A10E3F6
+:101EC0001C8A5C013AE0A30EB11C1C0183E5280EBC
+:101ED000311CBF972F01242F30E03F832E83C60192
+:101EE000895A9F4F99878887F396FB87EA879601DF
+:101EF0002A5A3F4F3F872E870297998B888B3A97B4
+:101F00003F01C6010E947E0E8823D9F364E0C5011B
+:101F10000E945707012F110F110B811144C065E07A
+:101F2000C5010E94570781113EC066E0C5010E94AD
+:101F30005707811138C02C8121114CC044E063E067
+:101F4000C5010E946907882331F03C893F5F3C8BC3
+:101F5000C2010E94CB1544E061E0C5010E946907FF
+:101F6000882331F08C8981508C8BC2010E94CB1563
+:101F7000EC898E2F0E2E000C990B2E813F8182173B
+:101F8000930731F0E7FF05C03B8131503C8B01C026
+:101F90001C8AF1018081F4E0F80F2C89829FF019EE
+:101FA0001124FD8B22C0F101F081F98364E0C501A9
+:101FB0000E945707882309F48CC0C2010E949F1514
+:101FC000FC89FD83298121953B81239F302D11249C
+:101FD00032503D8BC8013D89831B910937FD939594
+:101FE00002970CF47AC081E08C839D89090F111D42
+:101FF00097FD1A9517FF02C00F5F1F4FF801F59567
+:10200000E795FA83E9830981102FE885F985108225
+:10201000EA85FB85008381E0EE85FF858083E88982
+:10202000F9891082EA88FB88812C912C2C89022E58
+:10203000000C330B3D872C878E819F818816990673
+:1020400009F1EC85FD85E815F90579F423E0E885CB
+:10205000F9852083F1018081F02F2C89289FF00DD4
+:1020600011248F2FEA85FB858083F7016591749198
+:10207000C3010E942919FFEF8F1A9F0A22E0E20E86
+:10208000F11CDACF60E0C3010E945F08F10180819A
+:102090004981FC89F89F400D1124415024E560E0FE
+:1020A000C3010E94830861E0C3010E945F08F1013F
+:1020B000808103E0080F4981FC89F89F400D1124BD
+:1020C000425083E0E82E24E560E0C3010E94D40979
+:1020D00018CFC2010E94B51575CF8D8165960FB6D8
+:1020E000F894DEBF0FBECDBFDF91CF911F910F914E
+:1020F000FF90EF90DF90CF90BF90AF909F908F9028
+:102100007F906F905F904F903F902F9008950F9326
+:102110001F93CF93DF93EC018C01025B1F4FC8012B
+:102120000E94090864E772E0C8010E94EB18C80128
+:102130000E941A0883E00E94591A8DE691E0EEEFA2
+:10214000FFE30995FE01EC5AFF4F10826FE472E045
+:10215000C8010E942919C8010E941A082A96CE01B6
+:102160000E942A0764E0CE010E945707811107C030
+:1021700062E370E080E090E00E941417F0CFDF91FE
+:10218000CF911F910F9108952F923F924F925F929E
+:102190006F927F928F929F92AF92BF92CF92DF9277
+:1021A000EF92FF920F931F93CF93DF93CDB7DEB7DC
+:1021B00029970FB6F894DEBF0FBECDBF3C0120E7D4
+:1021C000620E711CF3012081222309F402C15A011D
+:1021D0001B01998788877A9781E08083E885F98554
+:1021E000EB5AFF4F1082E885F985EC5AFF4F1082B9
+:1021F000E885F985108E8F01025B1F4F61E0C801F1
+:102200000E945F08888599858D5A9F4F9D838C8396
+:10221000C884D98497E5C90ED11CE884F984E8E51F
+:10222000EE0EF11C888599858E5A9F4F9A8389837B
+:10223000E885F985EF58FF4FFF83EE838884998402
+:10224000FAE08F0E911C4884598425E2420E511CFD
+:10225000888599850E947E0E8823D1F3F1018491AF
+:10226000882329F0EC81FD81F081FB8301C01B8272
+:102270002EED32E040E060E0C8010E946A0AA1143D
+:10228000B10439F04B81445F950160E0C8010E94C0
+:102290006A0AF60110822CE0F7012083B101C8011F
+:1022A0000E94EB18E981FA818081982F990F890F9C
+:1022B00081958D5AF6018083EC81FD818081982F74
+:1022C000990F890F8195835DF7018083EE81FF81EE
+:1022D000808184FF03C06AED72E002C066ED72E0A7
+:1022E000C8010E942919E981FA818081982F990FEC
+:1022F000890F81958D5AF6018083F70180818F5F68
+:102300008083E885F98582A5882319F062ED72E063
+:1023100002C06EEC72E0C8010E942919E981FA81BD
+:102320008081982F990F890F81958D5AF6018083AE
+:10233000F70180818F5F80836AEC72E0C8010E94A0
+:10234000291965E0C4010E945707882351F0E885E8
+:10235000F98562A56F5FC2010E94E115C2010E946A
+:10236000CB1564E0C4010E945707811113C0F3012B
+:102370002081422F50E060E070E0EE81FF8180819B
+:102380009181A281B38184179507A607B707A8F0AA
+:102390002F3F99F08FEFF3018083088519850B5D3E
+:1023A0001F4F60E0C8010E94BE13C8010E949F1524
+:1023B00081E0E885F985808F0CC066E0C4010E9449
+:1023C0005707882309F444CF888599850E94871090
+:1023D00035CF29960FB6F894DEBF0FBECDBFDF9183
+:1023E000CF911F910F91FF90EF90DF90CF90BF9012
+:1023F000AF909F908F907F906F905F904F903F90A5
+:102400002F90089540E050E00C94C410E0E8F7E706
+:102410002591349181E02130304C09F080E008951D
+:10242000CF93DF93EC010E9406129E01275A3F4F83
+:10243000DE01A059BF4F882309F43CC0E6E9F7E765
+:102440008491F9018083E7E9F7E7E491EC83E8E917
+:10245000F7E7E491ED83E9E9F7E7859194919F83AC
+:102460008E83EBE9F7E78591949199878887EDE969
+:10247000F7E7E491EBA7EEE9F7E7E491EAA7EFE9E4
+:10248000F7E7E491EC93E0EAF7E7859194919D8F6B
+:102490008C8FE2EAF7E7859194919F8F8E8FE4EA23
+:1024A000F7E78591949199A388A3E6EAF7E78591E8
+:1024B000949120C08CE3F90180831C828FEF8D837F
+:1024C00020E233E03F832E8324ED33E039872887F1
+:1024D00091E09BA79AA78C938CEA9DE09D8F8C8FAF
+:1024E0008EED9DE09F8F8E8F84E79EE099A388A359
+:1024F0008CE39FE09BA38AA3DF91CF910895CF92B5
+:10250000DF92EF920F93CF93DF93EC01FC01E15840
+:10251000FF4F82E38083349781E090E0A0E0B0E059
+:1025200080839183A283B3833B978FEF8083CE0117
+:102530000E941012CE010E94EF156FEFCE010E9493
+:10254000F3156E018AE0C80ED11CC6010E941A075D
+:10255000C6010E942A07CE0148960E9456168EE0B8
+:10256000E82E0FE020E14BE06DE0CE01825B9F4F53
+:102570000E94C20BA596CE010E942A1365E0C601F7
+:102580000E945707882351F060E0CE01DF91CF9180
+:102590000F91EF90DF90CF900C94E11540E06EE446
+:1025A00073E0CE01DF91CF910F91EF90DF90CF904C
+:1025B0000C94C913CF93DF93D62FC72F0E94061216
+:1025C000882359F0AD2FBC2FEBE8F7E784918D936A
+:1025D0003196E53987E7F807C9F7DF91CF9108957C
+:1025E00050E0DA01AA0FBB1FA80FB91F1F963C913C
+:1025F0001F9750962C915097E32FF22FE60FF11D65
+:10260000E60FF11D2591349190963C932E935F97A0
+:10261000F90165917491FC017481769F602D1124FC
+:10262000DC01A40FB51F91966C939197F9018591E8
+:102630009491E92FF0E0862F90E0E817F90720F455
+:10264000F90185919491692F769F602D11249296BE
+:102650006C93089521E0FC01248324E020A72DEA57
+:1026600033E0308B278740E060E00E94F01261E0A9
+:1026700070E083E00E949217E1EBF0E08081887FB8
+:1026800081608083F89410928000E1E8F0E010828D
+:10269000109285001092840088E191E09093890067
+:1026A00080938800808188608083808181608083BE
+:1026B000EFE6F0E0808182608083789408950F9344
+:1026C000FC01842F01112AC06230D9F050F4662336
+:1026D00099F0613019F540E0682FCF010F910C940B
+:1026E000F0126330A9F06430C9F46481649F802DD6
+:1026F0001124858F268F12C04B3008F08AE0868B1C
+:102700000DC06481649F802D1124818F228F06C0AB
+:102710006481649F802D1124838F248F0F910895ED
+:10272000FC0121110EC0648B8481849F402D1124F3
+:10273000458B15A214A213A281E0878B809301041C
+:10274000108E089580910104882319F08091FE0372
+:1027500001C080E08093B4000895FC0161110DC0B8
+:10276000178A158A14A213A2108E1092FE031092DB
+:10277000FF03109201040C94A2130895CF93DF93EA
+:10278000611104C0EC010E94AD131982DF91CF9159
+:1027900008950F931F93CF93DF93411110C08B01C6
+:1027A000EC0160E00E94BE131E870D871B8A1A8A07
+:1027B00081E0898389E08E8B198E1B8E1D8EDF91BF
+:1027C000CF911F910F910895CF93DF93DC01611199
+:1027D00031C08C91882371F111968C9111978111E0
+:1027E00029C019968C91199717962C9117971896BE
+:1027F0009C911897E22FF92FE80FF11DE80FF11DBA
+:10280000259134912F3F8FEF380711F41C9212C09D
+:10281000ED013C873327220F331FEA85FB85E20F4A
+:10282000F31F6591749140E0CD010E94C913898521
+:102830008F5F8987DF91CF91089560E00C94E41356
+:1028400060E00C94BE130F93CF93DF93EC01611102
+:102850005CC08981882309F458C08D89811155C0D5
+:102860002D853E85EA89FB89EE0FFF1FE20FF31FDE
+:1028700085919491009701F58989813021F41B8A13
+:102880001A8AF90110C01982888160E0882371F0EA
+:10289000CE010E94E413EA89FB89EE0FFF1F8D85AC
+:1028A0009E85E80FF91F8591949106C0CE01DF91B6
+:1028B000CF910F910C94AD13BC01769567957695E9
+:1028C000679580FF17C0AC0186E0569547958A95BD
+:1028D000E1F7292F26952695269520514F716F7087
+:1028E00000E0CE010E945F13EA89FB893196FB8BE1
+:1028F000EA8BD3CF492F6F7320E0CE010E94901353
+:102900008A899B8901969B8B8A8BDF91CF910F914E
+:10291000089560E00C942314CF93DF93EC016111D0
+:10292000BAC08F89882309F4B6C09D89911105C06A
+:10293000CE01DF91CF910C94AD1391509D8B8DA161
+:10294000811139C02BA13CA12F5F3F4FC901880FD6
+:10295000991FEF8DF8A1E80FF91F65917491862FEB
+:1029600087708EA3AB0163E0569547956A95E1F7B2
+:10297000CA0196958795972F969596959FA38F73E5
+:102980009C81899F802D11248DA341704093FD036C
+:102990003CA32BA389A190E02817390760F02AA156
+:1029A000222329F0821B91099CA38BA304C060E021
+:1029B000CE010E94AD138DA181508DA3888D21E0A1
+:1029C000280F288F4C893FA1340F8C85380F3A830C
+:1029D0006B8D662361F070E0822F022E000C990B44
+:1029E0000E94981A8C8D869F300D11243A838A811B
+:1029F00090E0CB966BE370E00E94981A8A833E8940
+:102A00003B83698D662371F0062E000C770B822FB5
+:102A1000022E000C990B0E94981A8A8D869F300D09
+:102A200011243B836D8D662389F0822F220F990B31
+:102A300070E00E94981ACB0162E070E00E94981A40
+:102A40002E8D9B81289F900D11249B834F3341F045
+:102A50008B818A300CF089E087FD80E08B8301C098
+:102A60001B82F894EA81F0E0E45AFC4FE491E09391
+:102A700000048D8198A5899F802D11249B81899FB9
+:102A8000802D11249EA1899F802D11248093FF0306
+:102A90008093FE037894DF91CF91089560E00C94C9
+:102AA0008C146091FF03662329F1809102048F5FEB
+:102AB00080930204909100048917E0F081E09091E6
+:102AC0000104911180E0809301041092020480912E
+:102AD000FD03882369F08091000193E4899F802D94
+:102AE0001124895B809300010E94781A9093FE0361
+:102AF0000C94A21308951F920F920FB60F921124F7
+:102B00002F933F934F935F936F937F938F939F93F5
+:102B1000AF93BF93EF93FF930E945115FF91EF91F5
+:102B2000BF91AF919F918F917F916F915F914F91E5
+:102B30003F912F910F900FBE0F901F901895CF933C
+:102B4000DF93EC0160E00E94BE1385EA93E09E876C
+:102B50008D871B8A1A8A81E0898389E08E8B198E82
+:102B60001B8E1D8EDF91CF910895CF93DF93EC01E3
+:102B700060E00E94BE138DE993E09E878D871B8ADB
+:102B80001A8A81E0898389E08E8B198E1B8E1D8EB7
+:102B9000DF91CF910895CF93DF93EC0160E00E9425
+:102BA000BE1387E993E09E878D871B8A1A8A81E08E
+:102BB000898389E08E8B198E1B8E1D8EDF91CF91BC
+:102BC0000895FC01262F660F330B9681692F70E064
+:102BD0006F5F7F4FC9010E94981A8583089521E095
+:102BE000FC012083089570E085E00C949217AF9269
+:102BF000BF92CF92DF92EF92FF920F931F93CF93EA
+:102C0000DF93EC0189819A812FE0289F8001299F21
+:102C1000100D112485E10E947517800F911F24E08B
+:102C2000969587952A95E1F79A83898328812223AF
+:102C300091F1EC81AD80B12CC12CD12CA885B98546
+:102C40007D0100E010E06E817F819B0140E050E05B
+:102C50008617970728F0BC01A817B90708F4BD012B
+:102C600080E090E01F921F921F92EF930E94F31951
+:102C70006B830F900F900F900F9070E085E0DF91C5
+:102C8000CF911F910F91FF90EF90DF90CF90BF9069
+:102C9000AF900C949217DF91CF911F910F91FF90FD
+:102CA000EF90DF90CF90BF90AF900895FC018CE340
+:102CB0009FE09383828384E0818381E08487089509
+:102CC000CF93DF93FC0124813581232B79F1EC0133
+:102CD00084858F7141F584E10E947517BC01990FBD
+:102CE000880B990B0E943E1B26EE3FE34EEC50E40E
+:102CF0000E94CA1B0E940D1B9B017B836A83672B6A
+:102D000081F084E08983FE01349680E04191519105
+:102D10002417350710F4898309C08F5F8430B1F719
+:102D200002C08FEF89838C858F5F8C87DF91CF9175
+:102D300008951F920F920FB60F9211242F933F9375
+:102D40008F939F93AF93BF93809104049091050458
+:102D5000A0910604B09107043091030423E0230FEF
+:102D60002D3720F40196A11DB11D05C026E8230FC3
+:102D70000296A11DB11D2093030480930404909337
+:102D80000504A0930604B093070480910804909171
+:102D90000904A0910A04B0910B040196A11DB11D74
+:102DA0008093080490930904A0930A04B0930B0441
+:102DB000BF91AF919F918F913F912F910F900FBE37
+:102DC0000F901F9018952FB7F8946091040470919C
+:102DD000050480910604909107042FBF08953FB722
+:102DE000F8948091080490910904A0910A04B0918C
+:102DF0000B0426B5A89B05C02F3F19F00196A11D15
+:102E0000B11D3FBFBA2FA92F982F8827820F911D80
+:102E1000A11DB11DBC01CD0142E0660F771F881FC7
+:102E2000991F4A95D1F70895CF92DF92EF92FF92C2
+:102E3000CF93DF936B017C010E94EF16EB01C1146D
+:102E4000D104E104F10479F00E94EF166C1B7D0BB4
+:102E5000683E7340A0F381E0C81AD108E108F10888
+:102E6000C851DC4FECCFDF91CF91FF90EF90DF9016
+:102E7000CF900895789484B5826084BD84B58160D4
+:102E800084BD85B5826085BD85B5816085BDEEE672
+:102E9000F0E0808181608083E1E8F0E01082808151
+:102EA00082608083808181608083E0E8F0E08081BF
+:102EB00081608083E1EBF0E0808184608083E0EBDF
+:102EC000F0E0808181608083EAE7F0E080818460C7
+:102ED0008083808182608083808181608083808123
+:102EE000806880831092C10008958E3008F08E5063
+:102EF0002091010190E4299F900111248770822B79
+:102F000080937C0080917A00806480937A00809125
+:102F10007A0086FDFCCF809178002091790090E0C6
+:102F2000922B08951F93CF93DF93182FEB0161E04D
+:102F30000E941A18209711F460E004C0CF3FD10519
+:102F400039F461E0812FDF91CF911F910C945618D5
+:102F5000E12FF0E0E754FC4FE491E330F9F048F45E
+:102F6000E130B9F0E230A1F584B5806284BDC8BD1E
+:102F700034C0E630E9F0E73019F1E43049F58091EA
+:102F80008000806280938000D0938B00C0938A0081
+:102F900024C084B5806884BDC7BD1FC080918000F7
+:102FA000806880938000D0938900C093880015C00A
+:102FB0008091B00080688093B000C093B3000DC0D2
+:102FC0008091B00080628093B000C093B40005C0CF
+:102FD000C038D1050CF0B5CFAFCFDF91CF911F91A5
+:102FE0000895833081F028F4813099F08230A1F087
+:102FF00008958630A9F08730B9F08430D1F48091FB
+:1030000080008F7D03C0809180008F778093800047
+:10301000089584B58F7702C084B58F7D84BD0895EF
+:103020008091B0008F7703C08091B0008F7D809336
+:10303000B0000895CF93DF9390E0FC01E353FC4F81
+:103040002491FC01EF51FC4F8491882361F190E0C1
+:10305000880F991FFC01E75FFB4FC591D491FC01DC
+:10306000E150FC4FA591B491611109C09FB7F8944C
+:103070008881209582238883EC912E230BC06230B7
+:1030800061F49FB7F8948881322F30958323888329
+:10309000EC912E2B2C939FBF06C08FB7F894E8813C
+:1030A0002E2B28838FBFDF91CF9108951F93CF934D
+:1030B000DF93282F30E0F901E754FC4F8491F901A8
+:1030C000E353FC4FD491F901EF51FC4FC491CC2351
+:1030D000C1F0162F81110E94F117EC2FF0E0EE0FD6
+:1030E000FF1FE150FC4FA591B4919FB7F8941111C7
+:1030F00004C08C91D095D82302C0EC91DE2BDC93D8
+:103100009FBFDF91CF911F910895CF93DF93282F19
+:1031100030E0F901E754FC4F8491F901E353FC4F8F
+:10312000D491F901EF51FC4FC491CC2391F081115E
+:103130000E94F117EC2FF0E0EE0FFF1FEB50FC4F59
+:10314000A591B491EC91ED2381E090E021F480E031
+:1031500002C080E090E0DF91CF910895CF92DF929E
+:10316000EF92FF920F931F93CF93DF936C01EB01CC
+:103170007B01E40EF51E00E010E0CE15DF0561F0E6
+:103180006991D601ED91FC910190F081E02DC6018D
+:103190000995080F191FF1CFC801DF91CF911F9139
+:1031A0000F91FF90EF90DF90CF900895611571051A
+:1031B00079F0FB0101900020E9F73197AF01461B40
+:1031C000570BDC01ED91FC910280F381E02D099415
+:1031D00080E090E00895EF92FF920F931F93CF93BA
+:1031E000DF937C01FB0100E010E06491EF01219688
+:1031F000662361F0D701ED91FC910190F081E02D03
+:10320000C7010995080F191FFE01EFCFC801DF9113
+:10321000CF911F910F91FF90EF900895DC01ED91F8
+:10322000FC910190F081E02D09940F931F93CF93AF
+:10323000DF93EC016DE00E940E198C016AE0CE0173
+:103240000E940E19800F911FDF91CF911F910F9156
+:1032500008950F931F93CF93DF93EC010E94EB1817
+:103260008C01CE010E941519800F911FDF91CF9123
+:103270001F910F9108958F929F92AF92BF92CF921C
+:10328000DF92EF92FF920F931F93CF93DF93CDB70F
+:10329000DEB7A1970FB6F894DEBF0FBECDBF6C01AD
+:1032A000142FE52FCB01022F19A2223008F40AE0D7
+:1032B0007E0121E2E20EF11C802E912CA12CB12C7A
+:1032C000612F7E2FA50194010E94AC1A029F101954
+:1032D000112481E0E81AF1081A3014F4105D01C0DD
+:1032E000195CF7011083122FE32FCA01232B242B23
+:1032F000252B31F7B701C6010E94D618A1960FB64B
+:10330000F894DEBF0FBECDBFDF91CF911F910F911B
+:10331000FF90EF90DF90CF90BF90AF909F908F90F5
+:1033200008952115310541F4DC01ED91FC910190E6
+:10333000F081E02D642F09940C943B199A01AB01A4
+:1033400060E070E00C949119CF92DF92EF92FF92BF
+:103350000F931F93CF93DF932115310581F4DC0187
+:10336000ED91FC910190F081E02D642FDF91CF91E0
+:103370001F910F91FF90EF90DF90CF9009942A302A
+:10338000310501F577FF1DC06A017B01EC016DE29B
+:103390000E940E198C0144275527BA014C195D096A
+:1033A0006E097F092AE0CE010E943B19800F911F10
+:1033B000DF91CF911F910F91FF90EF90DF90CF9011
+:1033C00008952AE0DF91CF911F910F91FF90EF9028
+:1033D000DF90CF900C943B199A01AB01770F660BED
+:1033E000770B0C94A4194F925F926F927F92AF92D9
+:1033F000BF92CF92DF92EF92FF920F931F93CF93E2
+:10340000DF93CDB7DEB729013A019B01AC01241946
+:1034100035094609570989899A89AB89BC89BC0154
+:10342000CD016A197B098C099D090E94681AA801BF
+:10343000970124193509460957090E94CE1ACA0175
+:10344000B9016A0D7B1D8C1D9D1DDF91CF911F91D0
+:103450000F91FF90EF90DF90CF90BF90AF907F9053
+:103460006F905F904F900895089561E08AE00E9408
+:10347000561861E08AE00E941A188CB580618CBDF4
+:103480008CB580648CBD61E08DE00E941A1861E00B
+:103490008BE00C941A18811103C08CB5806202C0B5
+:1034A0008CB58F7D8CBD08959CB5937F892B8CBD89
+:1034B00008959CB59C7F282F2370922B9CBD2DB521
+:1034C00082FB992790F9822F8E7F892B8DBD0895DD
+:1034D000DB018F939F930E94ED1ABF91AF91A29F42
+:1034E000800D911DA39F900DB29F900D1124089502
+:1034F000991B79E004C0991F961708F0961B881F46
+:103500007A95C9F780950895AA1BBB1B51E107C0A6
+:10351000AA1FBB1FA617B70710F0A61BB70B881F63
+:10352000991F5A95A9F780959095BC01CD010895F2
+:1035300097FB072E16F4009407D077FD09D00E9460
+:10354000841A07FC05D03EF4909581959F4F08950D
+:10355000709561957F4F0895A1E21A2EAA1BBB1B9F
+:10356000FD010DC0AA1FBB1FEE1FFF1FA217B3074F
+:10357000E407F50720F0A21BB30BE40BF50B661F65
+:10358000771F881F991F1A9469F760957095809529
+:1035900090959B01AC01BD01CF010895052E97FBCD
+:1035A0001EF400940E94E51A57FD07D00E94AC1A41
+:1035B00007FC03D04EF40C94E51A509540953095D5
+:1035C00021953F4F4F4F5F4F08959095809570958F
+:1035D00061957F4F8F4F9F4F08950E94FE1AA59FC0
+:1035E000900DB49F900DA49F800D911D11240895FE
+:1035F000EE0FFF1F0590F491E02D0994A29FB001FA
+:10360000B39FC001A39F700D811D1124911DB29F16
+:10361000700D811D1124911D08950E94A91B88F031
+:103620009F5798F0B92F9927B751B0F0E1F0660F86
+:10363000771F881F991F1AF0BA95C9F714C0B130C7
+:1036400091F00E94C31BB1E008950C94C31B672F37
+:10365000782F8827B85F39F0B93FCCF386957795F6
+:103660006795B395D9F73EF49095809570956195DF
+:103670007F4F8F4F9F4F0895E89409C097FB3EF40A
+:1036800090958095709561957F4F8F4F9F4F9923AF
+:10369000A9F0F92F96E9BB279395F695879577952D
+:1036A0006795B795F111F8CFFAF4BB0F11F460FFED
+:1036B0001BC06F5F7F4F8F4F9F4F16C0882311F045
+:1036C00096E911C0772321F09EE8872F762F05C059
+:1036D000662371F096E8862F70E060E02AF09A95F4
+:1036E000660F771F881FDAF7880F9695879597F9E9
+:1036F000089597F99F6780E870E060E008959FEF74
+:1037000080EC089500240A94161617061806090678
+:10371000089500240A941216130614060506089547
+:10372000092E0394000C11F4882352F0BB0F40F4CF
+:10373000BF2B11F460FF04C06F5F7F4F8F4F9F4F0F
+:10374000089557FD9058440F551F59F05F3F71F091
+:103750004795880F97FB991F61F09F3F79F08795F8
+:103760000895121613061406551FF2CF4695F1DF81
+:1037700008C0161617061806991FF1CF8695710511
+:10378000610508940895E894BB2766277727CB0145
+:1037900097F908950E94DD1B0C94901B0E94821BD8
+:1037A00038F00E94891B20F0952311F00C94791BAE
+:1037B0000C947F1B11240C94C41B0E94A11B70F35A
+:1037C000959FC1F3950F50E0551F629FF001729FC6
+:1037D000BB27F00DB11D639FAA27F00DB11DAA1FD5
+:1037E000649F6627B00DA11D661F829F2227B00D22
+:1037F000A11D621F739FB00DA11D621F839FA00DAD
+:10380000611D221F749F3327A00D611D231F849FFC
+:10381000600D211D822F762F6A2F11249F57504053
+:103820009AF0F1F088234AF0EE0FFF1FBB1F661FCE
+:10383000771F881F91505040A9F79E3F510580F097
+:103840000C94791B0C94C41B5F3FE4F3983ED4F3B3
+:10385000869577956795B795F795E7959F5FC1F73B
+:10386000FE2B880F911D9695879597F90895DC0199
+:1038700001C06D9341505040E0F70895FB01DC0119
+:103880004150504048F001900D920020C9F701C00E
+:0E3890001D9241505040E0F70895F894FFCF8C
+:10389E000101001923000000008602000000003420
+:1038AE001A000000000000000000000000000000F0
+:1038BE00002406000000000000000000003B040091
+:1038CE00007E0400005C0400009F04000000000065
+:1038DE0000000000000000000000000000000000DA
+:1038EE000000000000000000003906000023060062
+:1038FE00000000000000000000270DAE184C4F41E4
+:04390E0044455200DA
:040000030000046A8B
:00000001FF
diff --git a/Exe/POCKET.MAP b/Exe/POCKET.MAP index fa94013..b3da1f5 100644 --- a/Exe/POCKET.MAP +++ b/Exe/POCKET.MAP @@ -1146,7 +1146,7 @@ END GROUP .rela.plt *(.rela.plt) -.text 0x0000000000000000 0x3768 +.text 0x0000000000000000 0x389e *(.vectors) .vectors 0x0000000000000000 0x68 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/crtatmega328p.o 0x0000000000000000 __vectors @@ -1335,463 +1335,484 @@ END GROUP .text._ZN11HumanPlayer7handlerEv 0x0000000000000602 0x22 Obj/HumanPlayer.o 0x0000000000000602 _ZN11HumanPlayer7handlerEv + .text._ZN11HumanPlayer10selectUnitEv + 0x0000000000000624 0xba Obj/HumanPlayer.o + 0x0000000000000624 _ZN11HumanPlayer10selectUnitEv .text._ZN6SpriteC2EPKhbhh - 0x0000000000000624 0x16 Obj/Sprite.o - 0x0000000000000624 _ZN6SpriteC2EPKhbhh - 0x0000000000000624 _ZN6SpriteC1EPKhbhh + 0x00000000000006de 0x16 Obj/Sprite.o + 0x00000000000006de _ZN6SpriteC2EPKhbhh + 0x00000000000006de _ZN6SpriteC1EPKhbhh .text._ZN6Sprite4drawEv - 0x000000000000063a 0x6e Obj/Sprite.o - 0x000000000000063a _ZN6Sprite4drawEv + 0x00000000000006f4 0x6e Obj/Sprite.o + 0x00000000000006f4 _ZN6Sprite4drawEv .text._ZN6Sprite6setPosEhh - 0x00000000000006a8 0x8 Obj/Sprite.o - 0x00000000000006a8 _ZN6Sprite6setPosEhh + 0x0000000000000762 0x8 Obj/Sprite.o + 0x0000000000000762 _ZN6Sprite6setPosEhh .text._ZN6PlayerC2EPKc - 0x00000000000006b0 0x8c Obj/Player.o - 0x00000000000006b0 _ZN6PlayerC1EPKc - 0x00000000000006b0 _ZN6PlayerC2EPKc + 0x000000000000076a 0x8c Obj/Player.o + 0x000000000000076a _ZN6PlayerC1EPKc + 0x000000000000076a _ZN6PlayerC2EPKc .text._ZN6Player11handleUnitsEv - 0x000000000000073c 0x2e Obj/Player.o - 0x000000000000073c _ZN6Player11handleUnitsEv + 0x00000000000007f6 0x2e Obj/Player.o + 0x00000000000007f6 _ZN6Player11handleUnitsEv .text._ZN6Player9drawUnitsEv - 0x000000000000076a 0x2e Obj/Player.o - 0x000000000000076a _ZN6Player9drawUnitsEv + 0x0000000000000824 0x2e Obj/Player.o + 0x0000000000000824 _ZN6Player9drawUnitsEv .text._ZN6CameraC2Ev - 0x0000000000000798 0x10 Obj/Camera.o - 0x0000000000000798 _ZN6CameraC1Ev - 0x0000000000000798 _ZN6CameraC2Ev + 0x0000000000000852 0x10 Obj/Camera.o + 0x0000000000000852 _ZN6CameraC1Ev + 0x0000000000000852 _ZN6CameraC2Ev .text._ZNK6Camera4getXEh - 0x00000000000007a8 0xa Obj/Camera.o - 0x00000000000007a8 _ZNK6Camera4getXEh + 0x0000000000000862 0xa Obj/Camera.o + 0x0000000000000862 _ZNK6Camera4getXEh .text._ZNK6Camera4getYEh - 0x00000000000007b2 0xa Obj/Camera.o - 0x00000000000007b2 _ZNK6Camera4getYEh + 0x000000000000086c 0xa Obj/Camera.o + 0x000000000000086c _ZNK6Camera4getYEh .text._ZN6Camera16onLeftBtnPressedER6Cursor - 0x00000000000007bc 0x42 Obj/Camera.o - 0x00000000000007bc _ZN6Camera16onLeftBtnPressedER6Cursor + 0x0000000000000876 0x42 Obj/Camera.o + 0x0000000000000876 _ZN6Camera16onLeftBtnPressedER6Cursor .text._ZN6Camera17onRightBtnPressedER6Cursor - 0x00000000000007fe 0x44 Obj/Camera.o - 0x00000000000007fe _ZN6Camera17onRightBtnPressedER6Cursor + 0x00000000000008b8 0x44 Obj/Camera.o + 0x00000000000008b8 _ZN6Camera17onRightBtnPressedER6Cursor .text._ZN6Camera14onUpBtnPressedER6Cursor - 0x0000000000000842 0x42 Obj/Camera.o - 0x0000000000000842 _ZN6Camera14onUpBtnPressedER6Cursor + 0x00000000000008fc 0x42 Obj/Camera.o + 0x00000000000008fc _ZN6Camera14onUpBtnPressedER6Cursor .text._ZN6Camera16onDownBtnPressedER6Cursor - 0x0000000000000884 0x44 Obj/Camera.o - 0x0000000000000884 _ZN6Camera16onDownBtnPressedER6Cursor + 0x000000000000093e 0x44 Obj/Camera.o + 0x000000000000093e _ZN6Camera16onDownBtnPressedER6Cursor .text._ZNK6Camera8isLockedEv - 0x00000000000008c8 0x6 Obj/Camera.o - 0x00000000000008c8 _ZNK6Camera8isLockedEv + 0x0000000000000982 0x6 Obj/Camera.o + 0x0000000000000982 _ZNK6Camera8isLockedEv .text._ZN8BaseUnitC2Ev - 0x00000000000008ce 0x14 Obj/BaseUnit.o - 0x00000000000008ce _ZN8BaseUnitC1Ev - 0x00000000000008ce _ZN8BaseUnitC2Ev + 0x0000000000000988 0x14 Obj/BaseUnit.o + 0x0000000000000988 _ZN8BaseUnitC1Ev + 0x0000000000000988 _ZN8BaseUnitC2Ev .text._ZN8BaseUnit6createEjj - 0x00000000000008e2 0x10 Obj/BaseUnit.o - 0x00000000000008e2 _ZN8BaseUnit6createEjj + 0x000000000000099c 0x10 Obj/BaseUnit.o + 0x000000000000099c _ZN8BaseUnit6createEjj .text._ZN8BaseUnit7handlerEv - 0x00000000000008f2 0x2 Obj/BaseUnit.o - 0x00000000000008f2 _ZN8BaseUnit7handlerEv + 0x00000000000009ac 0x2 Obj/BaseUnit.o + 0x00000000000009ac _ZN8BaseUnit7handlerEv + .text._ZN8BaseUnit11drawHandlerEPKh + 0x00000000000009ae 0x2a Obj/BaseUnit.o + 0x00000000000009ae _ZN8BaseUnit11drawHandlerEPKh + .text._ZN8BaseUnit7isAliveEv + 0x00000000000009d8 0x6 Obj/BaseUnit.o + 0x00000000000009d8 _ZN8BaseUnit7isAliveEv + .text._ZN8BaseUnit10isSelectedEv + 0x00000000000009de 0x6 Obj/BaseUnit.o + 0x00000000000009de _ZN8BaseUnit10isSelectedEv + .text._ZN8BaseUnit11setSelectedEb + 0x00000000000009e4 0x6 Obj/BaseUnit.o + 0x00000000000009e4 _ZN8BaseUnit11setSelectedEb + .text._ZN8BaseUnit4getXEv + 0x00000000000009ea 0x8 Obj/BaseUnit.o + 0x00000000000009ea _ZN8BaseUnit4getXEv + .text._ZN8BaseUnit4getYEv + 0x00000000000009f2 0x8 Obj/BaseUnit.o + 0x00000000000009f2 _ZN8BaseUnit4getYEv .text._ZN4UnitC2ENS_7tUnitIDE - 0x00000000000008f4 0x1e Obj/Unit.o - 0x00000000000008f4 _ZN4UnitC2ENS_7tUnitIDE - 0x00000000000008f4 _ZN4UnitC1ENS_7tUnitIDE + 0x00000000000009fa 0x1e Obj/Unit.o + 0x00000000000009fa _ZN4UnitC2ENS_7tUnitIDE + 0x00000000000009fa _ZN4UnitC1ENS_7tUnitIDE .text._ZN4Unit6createENS_7tUnitIDEjj - 0x0000000000000912 0x5c Obj/Unit.o - 0x0000000000000912 _ZN4Unit6createENS_7tUnitIDEjj + 0x0000000000000a18 0x5c Obj/Unit.o + 0x0000000000000a18 _ZN4Unit6createENS_7tUnitIDEjj .text._ZN4Unit7handlerEv - 0x000000000000096e 0x4 Obj/Unit.o - 0x000000000000096e _ZN4Unit7handlerEv + 0x0000000000000a74 0x4 Obj/Unit.o + 0x0000000000000a74 _ZN4Unit7handlerEv .text._ZN4Unit11drawHandlerEv - 0x0000000000000972 0x88 Obj/Unit.o - 0x0000000000000972 _ZN4Unit11drawHandlerEv + 0x0000000000000a78 0x9a Obj/Unit.o + 0x0000000000000a78 _ZN4Unit11drawHandlerEv .text._ZL20MainMenuSinglePlayerv - 0x00000000000009fa 0x9e Obj/Menu.o + 0x0000000000000b12 0x9e Obj/Menu.o .text._Z8MainMenuv - 0x0000000000000a98 0x24 Obj/Menu.o - 0x0000000000000a98 _Z8MainMenuv + 0x0000000000000bb0 0x24 Obj/Menu.o + 0x0000000000000bb0 _Z8MainMenuv .text._ZN6CursorC2Ev - 0x0000000000000abc 0xc Obj/Cursor.o - 0x0000000000000abc _ZN6CursorC1Ev - 0x0000000000000abc _ZN6CursorC2Ev + 0x0000000000000bd4 0xc Obj/Cursor.o + 0x0000000000000bd4 _ZN6CursorC1Ev + 0x0000000000000bd4 _ZN6CursorC2Ev .text._ZN6Cursor4moveEaa - 0x0000000000000ac8 0x3c Obj/Cursor.o - 0x0000000000000ac8 _ZN6Cursor4moveEaa + 0x0000000000000be0 0x3c Obj/Cursor.o + 0x0000000000000be0 _ZN6Cursor4moveEaa .text._ZN6Cursor4getXEv - 0x0000000000000b04 0x6 Obj/Cursor.o - 0x0000000000000b04 _ZN6Cursor4getXEv + 0x0000000000000c1c 0x6 Obj/Cursor.o + 0x0000000000000c1c _ZN6Cursor4getXEv .text._ZN6Cursor4getYEv - 0x0000000000000b0a 0x6 Obj/Cursor.o - 0x0000000000000b0a _ZN6Cursor4getYEv + 0x0000000000000c22 0x6 Obj/Cursor.o + 0x0000000000000c22 _ZN6Cursor4getYEv .text._ZN6Cursor11isXCenteredEv - 0x0000000000000b10 0xe Obj/Cursor.o - 0x0000000000000b10 _ZN6Cursor11isXCenteredEv + 0x0000000000000c28 0xe Obj/Cursor.o + 0x0000000000000c28 _ZN6Cursor11isXCenteredEv .text._ZN6Cursor11isYCenteredEv - 0x0000000000000b1e 0x10 Obj/Cursor.o - 0x0000000000000b1e _ZN6Cursor11isYCenteredEv + 0x0000000000000c36 0x10 Obj/Cursor.o + 0x0000000000000c36 _ZN6Cursor11isYCenteredEv .text._ZN11HumanPlayer13onBBtnPressedEv - 0x0000000000000b2e 0x2 Obj/HumanPlayerBtn.o - 0x0000000000000b2e _ZN11HumanPlayer13onBBtnPressedEv + 0x0000000000000c46 0x2 Obj/HumanPlayerBtn.o + 0x0000000000000c46 _ZN11HumanPlayer13onBBtnPressedEv .text._ZN11HumanPlayer14onABtnReleasedEv - 0x0000000000000b30 0x2a Obj/HumanPlayerBtn.o - 0x0000000000000b30 _ZN11HumanPlayer14onABtnReleasedEv + 0x0000000000000c48 0x2a Obj/HumanPlayerBtn.o + 0x0000000000000c48 _ZN11HumanPlayer14onABtnReleasedEv .text._ZN11HumanPlayer13onABtnPressedEv - 0x0000000000000b5a 0x1e Obj/HumanPlayerBtn.o - 0x0000000000000b5a _ZN11HumanPlayer13onABtnPressedEv + 0x0000000000000c72 0x3c Obj/HumanPlayerBtn.o + 0x0000000000000c72 _ZN11HumanPlayer13onABtnPressedEv .text._ZN11HumanPlayer26playerButtonPressedHandlerEj - 0x0000000000000b78 0x50 Obj/HumanPlayerBtn.o - 0x0000000000000b78 _ZN11HumanPlayer26playerButtonPressedHandlerEj + 0x0000000000000cae 0x50 Obj/HumanPlayerBtn.o + 0x0000000000000cae _ZN11HumanPlayer26playerButtonPressedHandlerEj .text._ZN11HumanPlayer26cameraButtonPressedHandlerEj - 0x0000000000000bc8 0xa0 Obj/HumanPlayerBtn.o - 0x0000000000000bc8 _ZN11HumanPlayer26cameraButtonPressedHandlerEj + 0x0000000000000cfe 0xa0 Obj/HumanPlayerBtn.o + 0x0000000000000cfe _ZN11HumanPlayer26cameraButtonPressedHandlerEj .text._ZN11HumanPlayer27playerButtonReleasedHandlerEj - 0x0000000000000c68 0x50 Obj/HumanPlayerBtn.o - 0x0000000000000c68 _ZN11HumanPlayer27playerButtonReleasedHandlerEj + 0x0000000000000d9e 0x50 Obj/HumanPlayerBtn.o + 0x0000000000000d9e _ZN11HumanPlayer27playerButtonReleasedHandlerEj .text._ZN11HumanPlayer13buttonHandlerEv - 0x0000000000000cb8 0x46 Obj/HumanPlayerBtn.o - 0x0000000000000cb8 _ZN11HumanPlayer13buttonHandlerEv + 0x0000000000000dee 0x46 Obj/HumanPlayerBtn.o + 0x0000000000000dee _ZN11HumanPlayer13buttonHandlerEv .text._ZN7Buttons5beginEv - 0x0000000000000cfe 0x20 ../lib/libgamebuino.a(Buttons.o) - 0x0000000000000cfe _ZN7Buttons5beginEv + 0x0000000000000e34 0x20 ../lib/libgamebuino.a(Buttons.o) + 0x0000000000000e34 _ZN7Buttons5beginEv .text._ZN7Buttons6updateEv - 0x0000000000000d1e 0x5a ../lib/libgamebuino.a(Buttons.o) - 0x0000000000000d1e _ZN7Buttons6updateEv + 0x0000000000000e54 0x5a ../lib/libgamebuino.a(Buttons.o) + 0x0000000000000e54 _ZN7Buttons6updateEv .text._ZN7Buttons7pressedEh - 0x0000000000000d78 0x12 ../lib/libgamebuino.a(Buttons.o) - 0x0000000000000d78 _ZN7Buttons7pressedEh + 0x0000000000000eae 0x12 ../lib/libgamebuino.a(Buttons.o) + 0x0000000000000eae _ZN7Buttons7pressedEh .text._ZN7Buttons8releasedEh - 0x0000000000000d8a 0x12 ../lib/libgamebuino.a(Buttons.o) - 0x0000000000000d8a _ZN7Buttons8releasedEh + 0x0000000000000ec0 0x12 ../lib/libgamebuino.a(Buttons.o) + 0x0000000000000ec0 _ZN7Buttons8releasedEh .text._ZN7Buttons6repeatEhh - 0x0000000000000d9c 0x30 ../lib/libgamebuino.a(Buttons.o) - 0x0000000000000d9c _ZN7Buttons6repeatEhh + 0x0000000000000ed2 0x30 ../lib/libgamebuino.a(Buttons.o) + 0x0000000000000ed2 _ZN7Buttons6repeatEhh .text._ZN7Buttons8timeHeldEh - 0x0000000000000dcc 0x10 ../lib/libgamebuino.a(Buttons.o) - 0x0000000000000dcc _ZN7Buttons8timeHeldEh + 0x0000000000000f02 0x10 ../lib/libgamebuino.a(Buttons.o) + 0x0000000000000f02 _ZN7Buttons8timeHeldEh .text._ZN8SPIClass8transferEh - 0x0000000000000ddc 0xc ../lib/libgamebuino.a(Display.o) - 0x0000000000000ddc _ZN8SPIClass8transferEh + 0x0000000000000f12 0xc ../lib/libgamebuino.a(Display.o) + 0x0000000000000f12 _ZN8SPIClass8transferEh .text._ZN7Display9drawPixelEaa - 0x0000000000000de8 0xb8 ../lib/libgamebuino.a(Display.o) - 0x0000000000000de8 _ZN7Display9drawPixelEaa + 0x0000000000000f1e 0xb8 ../lib/libgamebuino.a(Display.o) + 0x0000000000000f1e _ZN7Display9drawPixelEaa .text._ZN7Display7commandEh - 0x0000000000000ea0 0x3c ../lib/libgamebuino.a(Display.o) - 0x0000000000000ea0 _ZN7Display7commandEh + 0x0000000000000fd6 0x3c ../lib/libgamebuino.a(Display.o) + 0x0000000000000fd6 _ZN7Display7commandEh .text._ZN7Display5clearEv - 0x0000000000000edc 0x22 ../lib/libgamebuino.a(Display.o) - 0x0000000000000edc _ZN7Display5clearEv + 0x0000000000001012 0x22 ../lib/libgamebuino.a(Display.o) + 0x0000000000001012 _ZN7Display5clearEv .text._ZN7Display6updateEv - 0x0000000000000efe 0x8a ../lib/libgamebuino.a(Display.o) - 0x0000000000000efe _ZN7Display6updateEv + 0x0000000000001034 0x8a ../lib/libgamebuino.a(Display.o) + 0x0000000000001034 _ZN7Display6updateEv .text._ZN7Display8setColorEa - 0x0000000000000f88 0x8 ../lib/libgamebuino.a(Display.o) - 0x0000000000000f88 _ZN7Display8setColorEa + 0x00000000000010be 0x8 ../lib/libgamebuino.a(Display.o) + 0x00000000000010be _ZN7Display8setColorEa .text._ZN7Display8setColorEaa - 0x0000000000000f90 0x8 ../lib/libgamebuino.a(Display.o) - 0x0000000000000f90 _ZN7Display8setColorEaa + 0x00000000000010c6 0x8 ../lib/libgamebuino.a(Display.o) + 0x00000000000010c6 _ZN7Display8setColorEaa .text._ZN7Display13drawFastVLineEaaa - 0x0000000000000f98 0x38 ../lib/libgamebuino.a(Display.o) - 0x0000000000000f98 _ZN7Display13drawFastVLineEaaa + 0x00000000000010ce 0x38 ../lib/libgamebuino.a(Display.o) + 0x00000000000010ce _ZN7Display13drawFastVLineEaaa .text._ZN7Display13drawFastHLineEaaa - 0x0000000000000fd0 0x38 ../lib/libgamebuino.a(Display.o) - 0x0000000000000fd0 _ZN7Display13drawFastHLineEaaa + 0x0000000000001106 0x38 ../lib/libgamebuino.a(Display.o) + 0x0000000000001106 _ZN7Display13drawFastHLineEaaa .text._ZN7Display8drawRectEaaaa - 0x0000000000001008 0x50 ../lib/libgamebuino.a(Display.o) - 0x0000000000001008 _ZN7Display8drawRectEaaaa + 0x000000000000113e 0x50 ../lib/libgamebuino.a(Display.o) + 0x000000000000113e _ZN7Display8drawRectEaaaa .text._ZN7Display8fillRectEaaaa - 0x0000000000001058 0x52 ../lib/libgamebuino.a(Display.o) - 0x0000000000001058 _ZN7Display8fillRectEaaaa + 0x000000000000118e 0x52 ../lib/libgamebuino.a(Display.o) + 0x000000000000118e _ZN7Display8fillRectEaaaa .text._ZN7Display16drawCircleHelperEaaah - 0x00000000000010aa 0xfc ../lib/libgamebuino.a(Display.o) - 0x00000000000010aa _ZN7Display16drawCircleHelperEaaah + 0x00000000000011e0 0xfc ../lib/libgamebuino.a(Display.o) + 0x00000000000011e0 _ZN7Display16drawCircleHelperEaaah .text._ZN7Display16fillCircleHelperEaaaha - 0x00000000000011a6 0xcc ../lib/libgamebuino.a(Display.o) - 0x00000000000011a6 _ZN7Display16fillCircleHelperEaaaha + 0x00000000000012dc 0xcc ../lib/libgamebuino.a(Display.o) + 0x00000000000012dc _ZN7Display16fillCircleHelperEaaaha .text._ZN7Display13drawRoundRectEaaaaa - 0x0000000000001272 0xbe ../lib/libgamebuino.a(Display.o) - 0x0000000000001272 _ZN7Display13drawRoundRectEaaaaa + 0x00000000000013a8 0xbe ../lib/libgamebuino.a(Display.o) + 0x00000000000013a8 _ZN7Display13drawRoundRectEaaaaa .text._ZN7Display13fillRoundRectEaaaaa - 0x0000000000001330 0x6e ../lib/libgamebuino.a(Display.o) - 0x0000000000001330 _ZN7Display13fillRoundRectEaaaaa + 0x0000000000001466 0x6e ../lib/libgamebuino.a(Display.o) + 0x0000000000001466 _ZN7Display13fillRoundRectEaaaaa .text._ZN7Display10drawBitmapEaaPKh - 0x000000000000139e 0x288 ../lib/libgamebuino.a(Display.o) - 0x000000000000139e _ZN7Display10drawBitmapEaaPKh + 0x00000000000014d4 0x288 ../lib/libgamebuino.a(Display.o) + 0x00000000000014d4 _ZN7Display10drawBitmapEaaPKh .text._ZN7Display7setFontEPKh - 0x0000000000001626 0x28 ../lib/libgamebuino.a(Display.o) - 0x0000000000001626 _ZN7Display7setFontEPKh + 0x000000000000175c 0x28 ../lib/libgamebuino.a(Display.o) + 0x000000000000175c _ZN7Display7setFontEPKh .text._ZN7Display5beginEaaaaa - 0x000000000000164e 0x180 ../lib/libgamebuino.a(Display.o) - 0x000000000000164e _ZN7Display5beginEaaaaa + 0x0000000000001784 0x180 ../lib/libgamebuino.a(Display.o) + 0x0000000000001784 _ZN7Display5beginEaaaaa .text._ZN7Display8drawCharEaahh - 0x00000000000017ce 0x14a ../lib/libgamebuino.a(Display.o) - 0x00000000000017ce _ZN7Display8drawCharEaahh + 0x0000000000001904 0x14a ../lib/libgamebuino.a(Display.o) + 0x0000000000001904 _ZN7Display8drawCharEaahh .text._ZN7Display5writeEh - 0x0000000000001918 0x66 ../lib/libgamebuino.a(Display.o) - 0x0000000000001918 _ZN7Display5writeEh + 0x0000000000001a4e 0x66 ../lib/libgamebuino.a(Display.o) + 0x0000000000001a4e _ZN7Display5writeEh .text._ZN9Gamebuino11updatePopupEv - 0x000000000000197e 0xe0 ../lib/libgamebuino.a(Gamebuino.o) - 0x000000000000197e _ZN9Gamebuino11updatePopupEv + 0x0000000000001ab4 0xe0 ../lib/libgamebuino.a(Gamebuino.o) + 0x0000000000001ab4 _ZN9Gamebuino11updatePopupEv .text._ZN9Gamebuino14displayBatteryEv - 0x0000000000001a5e 0x168 ../lib/libgamebuino.a(Gamebuino.o) - 0x0000000000001a5e _ZN9Gamebuino14displayBatteryEv + 0x0000000000001b94 0x168 ../lib/libgamebuino.a(Gamebuino.o) + 0x0000000000001b94 _ZN9Gamebuino14displayBatteryEv .text._ZN9Gamebuino6updateEv - 0x0000000000001bc6 0x176 ../lib/libgamebuino.a(Gamebuino.o) - 0x0000000000001bc6 _ZN9Gamebuino6updateEv + 0x0000000000001cfc 0x176 ../lib/libgamebuino.a(Gamebuino.o) + 0x0000000000001cfc _ZN9Gamebuino6updateEv .text._ZN9Gamebuino4menuEPKPKch - 0x0000000000001d3c 0x29c ../lib/libgamebuino.a(Gamebuino.o) - 0x0000000000001d3c _ZN9Gamebuino4menuEPKPKch + 0x0000000000001e72 0x29c ../lib/libgamebuino.a(Gamebuino.o) + 0x0000000000001e72 _ZN9Gamebuino4menuEPKPKch .text._ZN9Gamebuino10changeGameEv - 0x0000000000001fd8 0x7a ../lib/libgamebuino.a(Gamebuino.o) - 0x0000000000001fd8 _ZN9Gamebuino10changeGameEv + 0x000000000000210e 0x7a ../lib/libgamebuino.a(Gamebuino.o) + 0x000000000000210e _ZN9Gamebuino10changeGameEv .text._ZN9Gamebuino11titleScreenEPK19__FlashStringHelperPKh - 0x0000000000002052 0x27c ../lib/libgamebuino.a(Gamebuino.o) - 0x0000000000002052 _ZN9Gamebuino11titleScreenEPK19__FlashStringHelperPKh + 0x0000000000002188 0x27c ../lib/libgamebuino.a(Gamebuino.o) + 0x0000000000002188 _ZN9Gamebuino11titleScreenEPK19__FlashStringHelperPKh .text._ZN9Gamebuino11titleScreenEPK19__FlashStringHelper - 0x00000000000022ce 0x8 ../lib/libgamebuino.a(Gamebuino.o) - 0x00000000000022ce _ZN9Gamebuino11titleScreenEPK19__FlashStringHelper + 0x0000000000002404 0x8 ../lib/libgamebuino.a(Gamebuino.o) + 0x0000000000002404 _ZN9Gamebuino11titleScreenEPK19__FlashStringHelper .text._ZN9Gamebuino17settingsAvailableEv - 0x00000000000022d6 0x14 ../lib/libgamebuino.a(Gamebuino.o) - 0x00000000000022d6 _ZN9Gamebuino17settingsAvailableEv + 0x000000000000240c 0x14 ../lib/libgamebuino.a(Gamebuino.o) + 0x000000000000240c _ZN9Gamebuino17settingsAvailableEv .text._ZN9Gamebuino12readSettingsEv - 0x00000000000022ea 0xde ../lib/libgamebuino.a(Gamebuino.o) - 0x00000000000022ea _ZN9Gamebuino12readSettingsEv + 0x0000000000002420 0xde ../lib/libgamebuino.a(Gamebuino.o) + 0x0000000000002420 _ZN9Gamebuino12readSettingsEv .text._ZN9Gamebuino5beginEv - 0x00000000000023c8 0xb6 ../lib/libgamebuino.a(Gamebuino.o) - 0x00000000000023c8 _ZN9Gamebuino5beginEv + 0x00000000000024fe 0xb6 ../lib/libgamebuino.a(Gamebuino.o) + 0x00000000000024fe _ZN9Gamebuino5beginEv .text._ZN9Gamebuino14getDefaultNameEPc - 0x000000000000247e 0x2c ../lib/libgamebuino.a(Gamebuino.o) - 0x000000000000247e _ZN9Gamebuino14getDefaultNameEPc + 0x00000000000025b4 0x2c ../lib/libgamebuino.a(Gamebuino.o) + 0x00000000000025b4 _ZN9Gamebuino14getDefaultNameEPc .text._ZN5Sound7commandEhhah.part.0 - 0x00000000000024aa 0x74 ../lib/libgamebuino.a(Sound.o) + 0x00000000000025e0 0x74 ../lib/libgamebuino.a(Sound.o) .text._ZN5Sound5beginEv - 0x000000000000251e 0x6a ../lib/libgamebuino.a(Sound.o) - 0x000000000000251e _ZN5Sound5beginEv + 0x0000000000002654 0x6a ../lib/libgamebuino.a(Sound.o) + 0x0000000000002654 _ZN5Sound5beginEv .text._ZN5Sound7commandEhhah - 0x0000000000002588 0x62 ../lib/libgamebuino.a(Sound.o) - 0x0000000000002588 _ZN5Sound7commandEhhah + 0x00000000000026be 0x62 ../lib/libgamebuino.a(Sound.o) + 0x00000000000026be _ZN5Sound7commandEhhah .text._ZN5Sound8playNoteEhhh - 0x00000000000025ea 0x24 ../lib/libgamebuino.a(Sound.o) - 0x00000000000025ea _ZN5Sound8playNoteEhhh + 0x0000000000002720 0x24 ../lib/libgamebuino.a(Sound.o) + 0x0000000000002720 _ZN5Sound8playNoteEhhh .text._ZN5Sound12updateOutputEv - 0x000000000000260e 0x16 ../lib/libgamebuino.a(Sound.o) - 0x000000000000260e _ZN5Sound12updateOutputEv + 0x0000000000002744 0x16 ../lib/libgamebuino.a(Sound.o) + 0x0000000000002744 _ZN5Sound12updateOutputEv .text._ZN5Sound8stopNoteEh - 0x0000000000002624 0x22 ../lib/libgamebuino.a(Sound.o) - 0x0000000000002624 _ZN5Sound8stopNoteEh + 0x000000000000275a 0x22 ../lib/libgamebuino.a(Sound.o) + 0x000000000000275a _ZN5Sound8stopNoteEh .text._ZN5Sound11stopPatternEh - 0x0000000000002646 0x16 ../lib/libgamebuino.a(Sound.o) - 0x0000000000002646 _ZN5Sound11stopPatternEh + 0x000000000000277c 0x16 ../lib/libgamebuino.a(Sound.o) + 0x000000000000277c _ZN5Sound11stopPatternEh .text._ZN5Sound11playPatternEPKjh - 0x000000000000265c 0x36 ../lib/libgamebuino.a(Sound.o) - 0x000000000000265c _ZN5Sound11playPatternEPKjh + 0x0000000000002792 0x36 ../lib/libgamebuino.a(Sound.o) + 0x0000000000002792 _ZN5Sound11playPatternEPKjh .text._ZN5Sound11updateTrackEh - 0x0000000000002692 0x72 ../lib/libgamebuino.a(Sound.o) - 0x0000000000002692 _ZN5Sound11updateTrackEh + 0x00000000000027c8 0x72 ../lib/libgamebuino.a(Sound.o) + 0x00000000000027c8 _ZN5Sound11updateTrackEh .text._ZN5Sound11updateTrackEv - 0x0000000000002704 0x6 ../lib/libgamebuino.a(Sound.o) - 0x0000000000002704 _ZN5Sound11updateTrackEv + 0x000000000000283a 0x6 ../lib/libgamebuino.a(Sound.o) + 0x000000000000283a _ZN5Sound11updateTrackEv .text._ZN5Sound11stopPatternEv - 0x000000000000270a 0x6 ../lib/libgamebuino.a(Sound.o) - 0x000000000000270a _ZN5Sound11stopPatternEv + 0x0000000000002840 0x6 ../lib/libgamebuino.a(Sound.o) + 0x0000000000002840 _ZN5Sound11stopPatternEv .text._ZN5Sound13updatePatternEh - 0x0000000000002710 0xcc ../lib/libgamebuino.a(Sound.o) - 0x0000000000002710 _ZN5Sound13updatePatternEh + 0x0000000000002846 0xcc ../lib/libgamebuino.a(Sound.o) + 0x0000000000002846 _ZN5Sound13updatePatternEh .text._ZN5Sound13updatePatternEv - 0x00000000000027dc 0x6 ../lib/libgamebuino.a(Sound.o) - 0x00000000000027dc _ZN5Sound13updatePatternEv + 0x0000000000002912 0x6 ../lib/libgamebuino.a(Sound.o) + 0x0000000000002912 _ZN5Sound13updatePatternEv .text._ZN5Sound10updateNoteEh - 0x00000000000027e2 0x184 ../lib/libgamebuino.a(Sound.o) - 0x00000000000027e2 _ZN5Sound10updateNoteEh + 0x0000000000002918 0x184 ../lib/libgamebuino.a(Sound.o) + 0x0000000000002918 _ZN5Sound10updateNoteEh .text._ZN5Sound10updateNoteEv - 0x0000000000002966 0x6 ../lib/libgamebuino.a(Sound.o) - 0x0000000000002966 _ZN5Sound10updateNoteEv + 0x0000000000002a9c 0x6 ../lib/libgamebuino.a(Sound.o) + 0x0000000000002a9c _ZN5Sound10updateNoteEv .text._ZN5Sound14generateOutputEv - 0x000000000000296c 0x54 ../lib/libgamebuino.a(Sound.o) - 0x000000000000296c _ZN5Sound14generateOutputEv + 0x0000000000002aa2 0x54 ../lib/libgamebuino.a(Sound.o) + 0x0000000000002aa2 _ZN5Sound14generateOutputEv .text.__vector_11 - 0x00000000000029c0 0x48 ../lib/libgamebuino.a(Sound.o) - 0x00000000000029c0 __vector_11 + 0x0000000000002af6 0x48 ../lib/libgamebuino.a(Sound.o) + 0x0000000000002af6 __vector_11 .text._ZN5Sound6playOKEv - 0x0000000000002a08 0x2c ../lib/libgamebuino.a(Sound.o) - 0x0000000000002a08 _ZN5Sound6playOKEv + 0x0000000000002b3e 0x2c ../lib/libgamebuino.a(Sound.o) + 0x0000000000002b3e _ZN5Sound6playOKEv .text._ZN5Sound10playCancelEv - 0x0000000000002a34 0x2c ../lib/libgamebuino.a(Sound.o) - 0x0000000000002a34 _ZN5Sound10playCancelEv + 0x0000000000002b6a 0x2c ../lib/libgamebuino.a(Sound.o) + 0x0000000000002b6a _ZN5Sound10playCancelEv .text._ZN5Sound8playTickEv - 0x0000000000002a60 0x2c ../lib/libgamebuino.a(Sound.o) - 0x0000000000002a60 _ZN5Sound8playTickEv + 0x0000000000002b96 0x2c ../lib/libgamebuino.a(Sound.o) + 0x0000000000002b96 _ZN5Sound8playTickEv .text._ZN5Sound9setVolumeEa - 0x0000000000002a8c 0x1c ../lib/libgamebuino.a(Sound.o) - 0x0000000000002a8c _ZN5Sound9setVolumeEa + 0x0000000000002bc2 0x1c ../lib/libgamebuino.a(Sound.o) + 0x0000000000002bc2 _ZN5Sound9setVolumeEa .text._ZN9Backlight5beginEv - 0x0000000000002aa8 0x8 ../lib/libgamebuino.a(Backlight.o) - 0x0000000000002aa8 _ZN9Backlight5beginEv + 0x0000000000002bde 0x8 ../lib/libgamebuino.a(Backlight.o) + 0x0000000000002bde _ZN9Backlight5beginEv .text._ZN9Backlight3setEh - 0x0000000000002ab0 0x8 ../lib/libgamebuino.a(Backlight.o) - 0x0000000000002ab0 _ZN9Backlight3setEh + 0x0000000000002be6 0x8 ../lib/libgamebuino.a(Backlight.o) + 0x0000000000002be6 _ZN9Backlight3setEh .text._ZN9Backlight6updateEv - 0x0000000000002ab8 0xbe ../lib/libgamebuino.a(Backlight.o) - 0x0000000000002ab8 _ZN9Backlight6updateEv + 0x0000000000002bee 0xbe ../lib/libgamebuino.a(Backlight.o) + 0x0000000000002bee _ZN9Backlight6updateEv .text._ZN7Battery5beginEv - 0x0000000000002b76 0x14 ../lib/libgamebuino.a(Battery.o) - 0x0000000000002b76 _ZN7Battery5beginEv + 0x0000000000002cac 0x14 ../lib/libgamebuino.a(Battery.o) + 0x0000000000002cac _ZN7Battery5beginEv .text._ZN7Battery6updateEv - 0x0000000000002b8a 0x72 ../lib/libgamebuino.a(Battery.o) - 0x0000000000002b8a _ZN7Battery6updateEv + 0x0000000000002cc0 0x72 ../lib/libgamebuino.a(Battery.o) + 0x0000000000002cc0 _ZN7Battery6updateEv .text.__vector_16 - 0x0000000000002bfc 0x94 ../lib/libarduino.a(wiring.o) - 0x0000000000002bfc __vector_16 - .text.millis 0x0000000000002c90 0x18 ../lib/libarduino.a(wiring.o) - 0x0000000000002c90 millis - .text.micros 0x0000000000002ca8 0x4a ../lib/libarduino.a(wiring.o) - 0x0000000000002ca8 micros - .text.delay 0x0000000000002cf2 0x4c ../lib/libarduino.a(wiring.o) - 0x0000000000002cf2 delay - .text.init 0x0000000000002d3e 0x76 ../lib/libarduino.a(wiring.o) - 0x0000000000002d3e init + 0x0000000000002d32 0x94 ../lib/libarduino.a(wiring.o) + 0x0000000000002d32 __vector_16 + .text.millis 0x0000000000002dc6 0x18 ../lib/libarduino.a(wiring.o) + 0x0000000000002dc6 millis + .text.micros 0x0000000000002dde 0x4a ../lib/libarduino.a(wiring.o) + 0x0000000000002dde micros + .text.delay 0x0000000000002e28 0x4c ../lib/libarduino.a(wiring.o) + 0x0000000000002e28 delay + .text.init 0x0000000000002e74 0x76 ../lib/libarduino.a(wiring.o) + 0x0000000000002e74 init .text.analogRead - 0x0000000000002db4 0x3a ../lib/libarduino.a(wiring_analog.o) - 0x0000000000002db4 analogRead + 0x0000000000002eea 0x3a ../lib/libarduino.a(wiring_analog.o) + 0x0000000000002eea analogRead .text.analogWrite - 0x0000000000002dee 0xbe ../lib/libarduino.a(wiring_analog.o) - 0x0000000000002dee analogWrite + 0x0000000000002f24 0xbe ../lib/libarduino.a(wiring_analog.o) + 0x0000000000002f24 analogWrite .text.turnOffPWM - 0x0000000000002eac 0x52 ../lib/libarduino.a(wiring_digital.o) - .text.pinMode 0x0000000000002efe 0x78 ../lib/libarduino.a(wiring_digital.o) - 0x0000000000002efe pinMode + 0x0000000000002fe2 0x52 ../lib/libarduino.a(wiring_digital.o) + .text.pinMode 0x0000000000003034 0x78 ../lib/libarduino.a(wiring_digital.o) + 0x0000000000003034 pinMode .text.digitalWrite - 0x0000000000002f76 0x5e ../lib/libarduino.a(wiring_digital.o) - 0x0000000000002f76 digitalWrite + 0x00000000000030ac 0x5e ../lib/libarduino.a(wiring_digital.o) + 0x00000000000030ac digitalWrite .text.digitalRead - 0x0000000000002fd4 0x52 ../lib/libarduino.a(wiring_digital.o) - 0x0000000000002fd4 digitalRead + 0x000000000000310a 0x52 ../lib/libarduino.a(wiring_digital.o) + 0x000000000000310a digitalRead .text._ZN5Print5writeEPKhj - 0x0000000000003026 0x50 ../lib/libarduino.a(Print.o) - 0x0000000000003026 _ZN5Print5writeEPKhj + 0x000000000000315c 0x50 ../lib/libarduino.a(Print.o) + 0x000000000000315c _ZN5Print5writeEPKhj .text._ZN5Print5writeEPKc - 0x0000000000003076 0x2a ../lib/libarduino.a(Print.o) - 0x0000000000003076 _ZN5Print5writeEPKc + 0x00000000000031ac 0x2a ../lib/libarduino.a(Print.o) + 0x00000000000031ac _ZN5Print5writeEPKc .text._ZN5Print5printEPK19__FlashStringHelper - 0x00000000000030a0 0x46 ../lib/libarduino.a(Print.o) - 0x00000000000030a0 _ZN5Print5printEPK19__FlashStringHelper + 0x00000000000031d6 0x46 ../lib/libarduino.a(Print.o) + 0x00000000000031d6 _ZN5Print5printEPK19__FlashStringHelper .text._ZN5Print5printEc - 0x00000000000030e6 0xe ../lib/libarduino.a(Print.o) - 0x00000000000030e6 _ZN5Print5printEc + 0x000000000000321c 0xe ../lib/libarduino.a(Print.o) + 0x000000000000321c _ZN5Print5printEc .text._ZN5Print7printlnEv - 0x00000000000030f4 0x28 ../lib/libarduino.a(Print.o) - 0x00000000000030f4 _ZN5Print7printlnEv + 0x000000000000322a 0x28 ../lib/libarduino.a(Print.o) + 0x000000000000322a _ZN5Print7printlnEv .text._ZN5Print7printlnEPK19__FlashStringHelper - 0x000000000000311c 0x24 ../lib/libarduino.a(Print.o) - 0x000000000000311c _ZN5Print7printlnEPK19__FlashStringHelper + 0x0000000000003252 0x24 ../lib/libarduino.a(Print.o) + 0x0000000000003252 _ZN5Print7printlnEPK19__FlashStringHelper .text._ZN5Print11printNumberEmh - 0x0000000000003140 0xac ../lib/libarduino.a(Print.o) - 0x0000000000003140 _ZN5Print11printNumberEmh + 0x0000000000003276 0xac ../lib/libarduino.a(Print.o) + 0x0000000000003276 _ZN5Print11printNumberEmh .text._ZN5Print5printEmi - 0x00000000000031ec 0x1a ../lib/libarduino.a(Print.o) - 0x00000000000031ec _ZN5Print5printEmi + 0x0000000000003322 0x1a ../lib/libarduino.a(Print.o) + 0x0000000000003322 _ZN5Print5printEmi .text._ZN5Print5printEji - 0x0000000000003206 0xc ../lib/libarduino.a(Print.o) - 0x0000000000003206 _ZN5Print5printEji + 0x000000000000333c 0xc ../lib/libarduino.a(Print.o) + 0x000000000000333c _ZN5Print5printEji .text._ZN5Print5printEli - 0x0000000000003212 0x90 ../lib/libarduino.a(Print.o) - 0x0000000000003212 _ZN5Print5printEli + 0x0000000000003348 0x90 ../lib/libarduino.a(Print.o) + 0x0000000000003348 _ZN5Print5printEli .text._ZN5Print5printEii - 0x00000000000032a2 0xe ../lib/libarduino.a(Print.o) - 0x00000000000032a2 _ZN5Print5printEii + 0x00000000000033d8 0xe ../lib/libarduino.a(Print.o) + 0x00000000000033d8 _ZN5Print5printEii .text._Z3maplllll - 0x00000000000032b0 0x82 ../lib/libarduino.a(WMath.o) - 0x00000000000032b0 _Z3maplllll + 0x00000000000033e6 0x82 ../lib/libarduino.a(WMath.o) + 0x00000000000033e6 _Z3maplllll .text.__cxa_pure_virtual - 0x0000000000003332 0x2 ../lib/libarduino.a(forward.o) - 0x0000000000003332 __cxa_pure_virtual + 0x0000000000003468 0x2 ../lib/libarduino.a(forward.o) + 0x0000000000003468 __cxa_pure_virtual .text._ZN8SPIClass5beginEv - 0x0000000000003334 0x2c ../lib/libarduino.a(SPI.o) - 0x0000000000003334 _ZN8SPIClass5beginEv + 0x000000000000346a 0x2c ../lib/libarduino.a(SPI.o) + 0x000000000000346a _ZN8SPIClass5beginEv .text._ZN8SPIClass11setBitOrderEh - 0x0000000000003360 0x12 ../lib/libarduino.a(SPI.o) - 0x0000000000003360 _ZN8SPIClass11setBitOrderEh + 0x0000000000003496 0x12 ../lib/libarduino.a(SPI.o) + 0x0000000000003496 _ZN8SPIClass11setBitOrderEh .text._ZN8SPIClass11setDataModeEh - 0x0000000000003372 0xa ../lib/libarduino.a(SPI.o) - 0x0000000000003372 _ZN8SPIClass11setDataModeEh + 0x00000000000034a8 0xa ../lib/libarduino.a(SPI.o) + 0x00000000000034a8 _ZN8SPIClass11setDataModeEh .text._ZN8SPIClass15setClockDividerEh - 0x000000000000337c 0x1e ../lib/libarduino.a(SPI.o) - 0x000000000000337c _ZN8SPIClass15setClockDividerEh + 0x00000000000034b2 0x1e ../lib/libarduino.a(SPI.o) + 0x00000000000034b2 _ZN8SPIClass15setClockDividerEh .text.libgcc.mul - 0x000000000000339a 0x20 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_mulsi3.o) - 0x000000000000339a __mulsi3 + 0x00000000000034d0 0x20 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_mulsi3.o) + 0x00000000000034d0 __mulsi3 .text.libgcc.div - 0x00000000000033ba 0x18 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_udivmodqi4.o) - 0x00000000000033ba __udivmodqi4 + 0x00000000000034f0 0x18 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_udivmodqi4.o) + 0x00000000000034f0 __udivmodqi4 .text.libgcc.div - 0x00000000000033d2 0x28 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_udivmodhi4.o) - 0x00000000000033d2 __udivmodhi4 + 0x0000000000003508 0x28 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_udivmodhi4.o) + 0x0000000000003508 __udivmodhi4 .text.libgcc.div - 0x00000000000033fa 0x28 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_divmodhi4.o) - 0x00000000000033fa __divmodhi4 - 0x00000000000033fa _div + 0x0000000000003530 0x28 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_divmodhi4.o) + 0x0000000000003530 __divmodhi4 + 0x0000000000003530 _div .text.libgcc.div - 0x0000000000003422 0x44 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_udivmodsi4.o) - 0x0000000000003422 __udivmodsi4 + 0x0000000000003558 0x44 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_udivmodsi4.o) + 0x0000000000003558 __udivmodsi4 .text.libgcc.div - 0x0000000000003466 0x2e /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_divmodsi4.o) - 0x0000000000003466 __divmodsi4 + 0x000000000000359c 0x2e /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_divmodsi4.o) + 0x000000000000359c __divmodsi4 .text.libgcc.div - 0x0000000000003494 0x10 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_negsi2.o) - 0x0000000000003494 __negsi2 + 0x00000000000035ca 0x10 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_negsi2.o) + 0x00000000000035ca __negsi2 .text.libgcc.mul - 0x00000000000034a4 0x16 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_muluhisi3.o) - 0x00000000000034a4 __muluhisi3 - .text.libgcc 0x00000000000034ba 0xc /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_tablejump2.o) - 0x00000000000034ba __tablejump2__ + 0x00000000000035da 0x16 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_muluhisi3.o) + 0x00000000000035da __muluhisi3 + .text.libgcc 0x00000000000035f0 0xc /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_tablejump2.o) + 0x00000000000035f0 __tablejump2__ .text.libgcc.mul - 0x00000000000034c6 0x1e /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_umulhisi3.o) - 0x00000000000034c6 __umulhisi3 + 0x00000000000035fc 0x1e /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_umulhisi3.o) + 0x00000000000035fc __umulhisi3 .text.avr-libc.fplib - 0x00000000000034e4 0x5e /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libm.a(fixunssfsi.o) - 0x00000000000034e4 __fixunssfsi + 0x000000000000361a 0x5e /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libm.a(fixunssfsi.o) + 0x000000000000361a __fixunssfsi .text.avr-libc.fplib - 0x0000000000003542 0x7a /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libm.a(floatsisf.o) - 0x0000000000003542 __floatunsisf - 0x0000000000003546 __floatsisf + 0x0000000000003678 0x7a /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libm.a(floatsisf.o) + 0x0000000000003678 __floatunsisf + 0x000000000000367c __floatsisf .text.avr-libc.fplib - 0x00000000000035bc 0xc /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libm.a(fp_inf.o) - 0x00000000000035bc __fp_inf + 0x00000000000036f2 0xc /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libm.a(fp_inf.o) + 0x00000000000036f2 __fp_inf .text.avr-libc.fplib - 0x00000000000035c8 0x6 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libm.a(fp_nan.o) - 0x00000000000035c8 __fp_nan + 0x00000000000036fe 0x6 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libm.a(fp_nan.o) + 0x00000000000036fe __fp_nan .text.avr-libc.fplib - 0x00000000000035ce 0xe /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libm.a(fp_pscA.o) - 0x00000000000035ce __fp_pscA + 0x0000000000003704 0xe /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libm.a(fp_pscA.o) + 0x0000000000003704 __fp_pscA .text.avr-libc.fplib - 0x00000000000035dc 0xe /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libm.a(fp_pscB.o) - 0x00000000000035dc __fp_pscB + 0x0000000000003712 0xe /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libm.a(fp_pscB.o) + 0x0000000000003712 __fp_pscB .text.avr-libc.fplib - 0x00000000000035ea 0x22 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libm.a(fp_round.o) - 0x00000000000035ea __fp_round + 0x0000000000003720 0x22 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libm.a(fp_round.o) + 0x0000000000003720 __fp_round .text.avr-libc.fplib - 0x000000000000360c 0x44 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libm.a(fp_split3.o) - 0x000000000000360c __fp_split3 - 0x000000000000361c __fp_splitA + 0x0000000000003742 0x44 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libm.a(fp_split3.o) + 0x0000000000003742 __fp_split3 + 0x0000000000003752 __fp_splitA .text.avr-libc.fplib - 0x0000000000003650 0xe /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libm.a(fp_zero.o) - 0x0000000000003650 __fp_zero - 0x0000000000003652 __fp_szero + 0x0000000000003786 0xe /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libm.a(fp_zero.o) + 0x0000000000003786 __fp_zero + 0x0000000000003788 __fp_szero .text.avr-libc.fplib - 0x000000000000365e 0x8 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libm.a(mulsf3.o) - 0x000000000000365e __mulsf3 + 0x0000000000003794 0x8 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libm.a(mulsf3.o) + 0x0000000000003794 __mulsf3 .text.avr-libc.fplib - 0x0000000000003666 0xd2 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libm.a(mulsf3x.o) - 0x0000000000003684 __mulsf3x - 0x000000000000368a __mulsf3_pse + 0x000000000000379c 0xd2 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libm.a(mulsf3x.o) + 0x00000000000037ba __mulsf3x + 0x00000000000037c0 __mulsf3_pse .text.avr-libc - 0x0000000000003738 0xe /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libc.a(memset.o) - 0x0000000000003738 memset + 0x000000000000386e 0xe /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libc.a(memset.o) + 0x000000000000386e memset .text.avr-libc - 0x0000000000003746 0x1e /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libc.a(strncpy.o) - 0x0000000000003746 strncpy - 0x0000000000003764 . = ALIGN (0x2) + 0x000000000000387c 0x1e /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libc.a(strncpy.o) + 0x000000000000387c strncpy + 0x000000000000389a . = ALIGN (0x2) *(.fini9) - .fini9 0x0000000000003764 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_exit.o) - 0x0000000000003764 exit - 0x0000000000003764 _exit + .fini9 0x000000000000389a 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_exit.o) + 0x000000000000389a exit + 0x000000000000389a _exit *(.fini9) *(.fini8) *(.fini8) @@ -1810,11 +1831,11 @@ END GROUP *(.fini1) *(.fini1) *(.fini0) - .fini0 0x0000000000003764 0x4 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_exit.o) + .fini0 0x000000000000389a 0x4 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_exit.o) *(.fini0) - 0x0000000000003768 _etext = . + 0x000000000000389e _etext = . -.data 0x0000000000800100 0x74 load address 0x0000000000003768 +.data 0x0000000000800100 0x74 load address 0x000000000000389e 0x0000000000800100 PROVIDE (__data_start, .) *(.data) *(.data*) @@ -1887,8 +1908,8 @@ END GROUP 0x0000000000800408 timer0_overflow_count *(COMMON) 0x000000000080040c PROVIDE (__bss_end, .) - 0x0000000000003768 __data_load_start = LOADADDR (.data) - 0x00000000000037dc __data_load_end = (__data_load_start + SIZEOF (.data)) + 0x000000000000389e __data_load_start = LOADADDR (.data) + 0x0000000000003912 __data_load_end = (__data_load_start + SIZEOF (.data)) .noinit 0x000000000080040c 0x0 [!provide] PROVIDE (__noinit_start, .) diff --git a/HumanPlayer.cpp b/HumanPlayer.cpp index 02bda69..b432d18 100644 --- a/HumanPlayer.cpp +++ b/HumanPlayer.cpp @@ -61,9 +61,9 @@ static const PROGMEM uint8_t au8MouseSprData[] = *********************************************************************/ HumanPlayer::HumanPlayer(const char* const strPlayerName, const Camera& cam) : Player(strPlayerName), +_eState(PLAYER_STATE_IDLE), _cam(cam), -_ABtnFrames(0), -_eState(PLAYER_STATE_IDLE) +_ABtnFrames(0) { _unitsMap[0].create(Unit::UNIT_ID_PEASANT, 16, 16); } @@ -121,7 +121,7 @@ void HumanPlayer::drawHandler(void) * \see \ref tPlayerState. * *********************************************************************/ -enum tPlayerState HumanPlayer::selectUnit(void) +enum HumanPlayer::tPlayerState HumanPlayer::selectUnit(void) { for (size_t szUnit = 0; szUnit < MAX_UNITS; szUnit++) { @@ -132,10 +132,42 @@ enum tPlayerState HumanPlayer::selectUnit(void) { if (not u.isSelected()) { + enum + { + /* Maximum distance, in pixels, + * between unit and cursor + * in order to select a unit. */ + MAX_SELECTION_DISTANCE = 8 + }; + /* Extract Unit object X position. */ const uint16_t x = u.getX(); -#error ("TODO") + /* Extract Unit object Y position. */ + const uint16_t y = u.getY(); + + /* Extract cursor X. */ + const uint16_t cx = _cursor.getX(); + + /* Extract cursor Y. */ + const uint16_t cy = _cursor.getY(); + + /* Calculate X distance between cursor and unit. */ + const uint16_t x_dist = (uint16_t)abs((int)x - (int)cx); + + /* Calculate Y distance between cursor and unit. */ + const uint16_t y_dist = (uint16_t)abs((int)y - (int)cy); + + if ((x_dist < MAX_SELECTION_DISTANCE) + && + (y_dist < MAX_SELECTION_DISTANCE)) + { + /* Select unit. */ + u.setSelected(true); + + /* Player has entered unit selection mode. */ + return PLAYER_STATE_UNIT_SELECTED; + } } else { @@ -147,4 +179,6 @@ enum tPlayerState HumanPlayer::selectUnit(void) /* Unit is not alive. Continue. */ } } + + return PLAYER_STATE_IDLE; } diff --git a/PocketEmpires.geany b/PocketEmpires.geany index 42bae1c..a96f26d 100644 --- a/PocketEmpires.geany +++ b/PocketEmpires.geany @@ -28,7 +28,7 @@ long_line_behaviour=1 long_line_column=120 [files] -current_page=36 +current_page=33 FILE_NAME_0=0;C++;0;EUTF-8;0;1;0;%2Fhome%2Fxavier%2FPocketEmpires%2Fsrc%2Fmain.cpp;0;4 FILE_NAME_1=3821;C++;0;EUTF-8;0;1;0;%2Fhome%2Fxavier%2FPocketEmpires%2Fsrc%2FMenu.cpp;0;4 FILE_NAME_2=549;C++;0;EUTF-8;0;1;0;%2Fhome%2Fxavier%2FPocketEmpires%2Fsrc%2FPad.cpp;0;4 @@ -38,35 +38,31 @@ FILE_NAME_5=611;C++;0;EUTF-8;0;1;0;%2Fhome%2Fxavier%2FPocketEmpires%2Fsrc%2FPad. FILE_NAME_6=1102;C++;0;EUTF-8;0;1;0;%2Fhome%2Fxavier%2FPocketEmpires%2Fsrc%2FPlayer.h;0;4 FILE_NAME_7=453;Make;0;EUTF-8;1;1;0;%2Fhome%2Fxavier%2FPocketEmpires%2Fsrc%2FMakefile;0;4 FILE_NAME_8=2168;C++;0;EUTF-8;0;1;0;%2Fhome%2Fxavier%2FPocketEmpires%2Fsrc%2FSystem.cpp;0;4 -FILE_NAME_9=1689;C++;0;EUTF-8;0;1;0;%2Fhome%2Fxavier%2FPocketEmpires%2Fsrc%2FHumanPlayer.h;0;4 +FILE_NAME_9=1115;C++;0;EUTF-8;0;1;0;%2Fhome%2Fxavier%2FPocketEmpires%2Fsrc%2FHumanPlayer.h;0;4 FILE_NAME_10=1827;C++;0;EUTF-8;0;1;0;%2Fhome%2Fxavier%2FPocketEmpires%2Fsrc%2FPlayer.cpp;0;4 FILE_NAME_11=2960;C++;0;EUTF-8;0;1;0;%2Fhome%2Fxavier%2FPocketEmpires%2Fsrc%2FGame.cpp;0;4 FILE_NAME_12=571;C++;0;EUTF-8;0;1;0;%2Fhome%2Fxavier%2FPocketEmpires%2Fsrc%2FGame.h;0;4 FILE_NAME_13=2317;C++;0;EUTF-8;0;1;0;%2Fhome%2Fxavier%2FPocketEmpires%2Fsrc%2FCamera.cpp;0;4 -FILE_NAME_14=1129;C++;0;EUTF-8;0;1;0;%2Fhome%2Fxavier%2FPocketEmpires%2Fsrc%2FSprite.h;0;4 -FILE_NAME_15=1743;C++;0;EUTF-8;0;1;0;%2Fhome%2Fxavier%2FPocketEmpires%2Fsrc%2FSprite.cpp;0;4 +FILE_NAME_14=1249;C++;0;EUTF-8;0;1;0;%2Fhome%2Fxavier%2FPocketEmpires%2Fsrc%2FSprite.h;0;4 +FILE_NAME_15=1779;C++;0;EUTF-8;0;1;0;%2Fhome%2Fxavier%2FPocketEmpires%2Fsrc%2FSprite.cpp;0;4 FILE_NAME_16=575;C++;0;EUTF-8;0;1;0;%2Fhome%2Fxavier%2FPocketEmpires%2Fsrc%2FSystem.h;0;4 -FILE_NAME_17=2863;C++;0;EUTF-8;0;1;0;%2Fhome%2Fxavier%2FPocketEmpires%2Fsrc%2FLibs%2Flibgamebuino%2FDisplay.h;0;4 +FILE_NAME_17=5880;C++;0;EUTF-8;0;1;0;%2Fhome%2Fxavier%2FPocketEmpires%2Fsrc%2FLibs%2Flibgamebuino%2FDisplay.h;0;4 FILE_NAME_18=7987;C++;0;EUTF-8;0;1;0;%2Fhome%2Fxavier%2FPocketEmpires%2Fsrc%2FLibs%2Flibgamebuino%2FGamebuino.cpp;0;4 FILE_NAME_19=0;C++;0;EUTF-8;0;1;0;%2Fhome%2Fxavier%2FPocketEmpires%2Fsrc%2FLibs%2Flibgamebuino%2FGamebuino.h;0;4 FILE_NAME_20=3497;C++;0;EUTF-8;0;1;0;%2Fhome%2Fxavier%2FPocketEmpires%2Fsrc%2FLibs%2Flibgamebuino%2FButtons.cpp;0;4 FILE_NAME_21=1135;C++;0;EUTF-8;0;1;0;%2Fhome%2Fxavier%2FPocketEmpires%2Fsrc%2FLibs%2Flibgamebuino%2FButtons.h;0;4 FILE_NAME_22=3441;C;0;EUTF-8;0;1;0;%2Fhome%2Fxavier%2FPocketEmpires%2Fsrc%2FLibs%2Flibgamebuino%2Fsettings.c;0;4 FILE_NAME_23=19868;C++;0;EUTF-8;0;1;0;%2Fhome%2Fxavier%2FPocketEmpires%2Fsrc%2FLibs%2Flibgamebuino%2FDisplay.cpp;0;4 -FILE_NAME_24=3082;C++;0;EUTF-8;0;1;0;%2Fhome%2Fxavier%2FPocketEmpires%2Fsrc%2FBaseUnit.cpp;0;4 -FILE_NAME_25=1289;C++;0;EUTF-8;0;1;0;%2Fhome%2Fxavier%2FPocketEmpires%2Fsrc%2FBaseUnit.h;0;4 -FILE_NAME_26=1511;C++;0;EUTF-8;0;1;0;%2Fhome%2Fxavier%2FPocketEmpires%2Fsrc%2FUnit.h;0;4 -FILE_NAME_27=1197;C++;0;EUTF-8;0;1;0;%2Fhome%2Fxavier%2FPocketEmpires%2Fsrc%2FUnit.cpp;0;4 -FILE_NAME_28=0;None;0;EUTF-8;0;1;0;%2Fhome%2Fxavier%2FPocketEmpires%2Fsrc%2FBarracksSpr.i;0;4 -FILE_NAME_29=937;None;0;EUTF-8;0;1;0;%2Fhome%2Fxavier%2FPocketEmpires%2Fsrc%2FMouseSpr.i;0;4 -FILE_NAME_30=225;None;0;EUTF-8;0;1;0;%2Fhome%2Fxavier%2FPocketEmpires%2Fsrc%2FPeasantSpr.i;0;4 -FILE_NAME_31=0;None;0;EUTF-8;0;1;0;%2Fhome%2Fxavier%2FPocketEmpires%2Fsrc%2FSoldierSpr.i;0;4 -FILE_NAME_32=0;None;0;EUTF-8;0;1;0;%2Fhome%2Fxavier%2FPocketEmpires%2Fsrc%2FTowerSpr.i;0;4 -FILE_NAME_33=0;None;0;EUTF-8;0;1;0;%2Fhome%2Fxavier%2FPocketEmpires%2Fsrc%2FTownCentre.i;0;4 -FILE_NAME_34=2402;C++;0;EUTF-8;0;1;0;%2Fhome%2Fxavier%2FPocketEmpires%2Fsrc%2FCursor.cpp;0;4 -FILE_NAME_35=1300;C++;0;EUTF-8;0;1;0;%2Fhome%2Fxavier%2FPocketEmpires%2Fsrc%2FCursor.h;0;4 -FILE_NAME_36=3994;C++;0;EUTF-8;0;1;0;%2Fhome%2Fxavier%2FPocketEmpires%2Fsrc%2FHumanPlayer.cpp;0;4 -FILE_NAME_37=6419;C++;0;EUTF-8;0;1;0;%2Fhome%2Fxavier%2FPocketEmpires%2Fsrc%2FHumanPlayerBtn.cpp;0;4 +FILE_NAME_24=1181;C++;0;EUTF-8;0;1;0;%2Fhome%2Fxavier%2FPocketEmpires%2Fsrc%2FBaseUnit.h;0;4 +FILE_NAME_25=1096;C++;0;EUTF-8;0;1;0;%2Fhome%2Fxavier%2FPocketEmpires%2Fsrc%2FUnit.h;0;4 +FILE_NAME_26=3832;C++;0;EUTF-8;0;1;0;%2Fhome%2Fxavier%2FPocketEmpires%2Fsrc%2FUnit.cpp;0;4 +FILE_NAME_27=0;None;0;EUTF-8;0;1;0;%2Fhome%2Fxavier%2FPocketEmpires%2Fsrc%2FTownCentre.i;0;4 +FILE_NAME_28=2402;C++;0;EUTF-8;0;1;0;%2Fhome%2Fxavier%2FPocketEmpires%2Fsrc%2FCursor.cpp;0;4 +FILE_NAME_29=1300;C++;0;EUTF-8;0;1;0;%2Fhome%2Fxavier%2FPocketEmpires%2Fsrc%2FCursor.h;0;4 +FILE_NAME_30=2718;C++;0;EUTF-8;0;1;0;%2Fhome%2Fxavier%2FPocketEmpires%2Fsrc%2FHumanPlayer.cpp;0;4 +FILE_NAME_31=6501;C++;0;EUTF-8;0;1;0;%2Fhome%2Fxavier%2FPocketEmpires%2Fsrc%2FHumanPlayerBtn.cpp;0;4 +FILE_NAME_32=1485;C++;0;EUTF-8;0;1;0;%2Fhome%2Fxavier%2FPocketEmpires%2Finclude%2Farduino%2FArduino.h;0;4 +FILE_NAME_33=2398;C++;0;EUTF-8;0;1;0;%2Fhome%2Fxavier%2FPocketEmpires%2Fsrc%2FBaseUnit.cpp;0;4 [VTE] last_dir=/home/xavier/PocketEmpires/src @@ -48,7 +48,7 @@ const Camera* _cam; * Sprite rotation. Default value is NOROT. * *********************************************************************/ -Sprite::Sprite(const uint8_t* pu8SprData, const bool followCam, const uint8_t u8Colour, const uint8_t rotation) : +Sprite::Sprite(const uint8_t* const pu8SprData, const bool followCam, const uint8_t u8Colour, const uint8_t rotation) : _pu8SprData(pu8SprData), _followCam(followCam), _colour(u8Colour), @@ -34,7 +34,7 @@ extern const Camera* _cam; class Sprite { public: - Sprite( const uint8_t* pu8SprData, + Sprite( const uint8_t* const pu8SprData, const bool followCam = true, const uint8_t u8Colour = BLACK, const uint8_t rotation = NOFLIP); @@ -128,6 +128,8 @@ void Unit::drawHandler(void) spr.setPos(_x, _y); spr.draw(); + + BaseUnit::drawHandler(pu8UnitSpriteData); } else { |
