avr/nano: added voltage measurement
authorErik Andresen <erik@vontaene.de>
Fri, 29 May 2015 19:47:21 +0000 (21:47 +0200)
committerErik Andresen <erik@vontaene.de>
Fri, 29 May 2015 19:47:21 +0000 (21:47 +0200)
avr/nano/main.c
avr/nano/main.hex

index 5418055..76ce35a 100644 (file)
@@ -18,6 +18,8 @@
  * 0x06 Distance forward LSB
  * 0x07 Distance backward MSB
  * 0x08 Distance backward LSB
+ * 0x09 Voltage MSB
+ * 0x0A Voltage LSB
  *
  * 0xff Bootloader
  */
@@ -35,6 +37,7 @@ static volatile uint16_t dist_forward=0;
 static volatile uint16_t dist_backward=0;
 static volatile uint8_t start_dist_fwd=0;
 static volatile uint8_t start_dist_bwd=0;
+static volatile uint16_t voltage=0;
 
 ISR(TWI_vect)
 {
@@ -103,6 +106,15 @@ ISR(TWI_vect)
                                        TWDR = tmp16;
                                        TWI_ACK;
                                        break;
+                               case 0x09: // Voltage MSB
+                                       tmp16 = voltage;
+                                       TWDR = tmp16>>8;
+                                       TWI_ACK;
+                                       break;
+                               case 0x0A: // Voltage LSB
+                                       TWDR = tmp16;
+                                       TWI_ACK;
+                                       break;
                                default:
                                        TWDR = 0;
                                        TWI_NAK;
@@ -159,6 +171,11 @@ static unsigned short get_distance(uint8_t i) {
 }
 
 
+static unsigned short get_voltage(void) {
+       return ReadChannel(2)*1.46;
+}
+
+
 ISR(INT0_vect) {
        static uint16_t t_start=0;
        uint16_t t_now = TCNT1;
@@ -221,6 +238,9 @@ int main(void) {
                        case 0x03: // ir right
                                dist_right = get_distance(1);
                                break;
+                       case 0x09: // voltage
+                               voltage = get_voltage();
+                               break;
                        case 0xff: // Magic reg that starts the bootloader
                                if (bootloader == 0xa5) {
                                        cli();
index faac092..b2af08a 100644 (file)
-:100000000C9448000C942A010C9475010C94650022\r
-:100010000C9465000C9465000C9465000C946500CC\r
-:100020000C9465000C9465000C9465000C946500BC\r
-:100030000C9465000C9465000C9465000C946500AC\r
-:100040000C9465000C9465000C94C0010C94650040\r
-:100050000C9465000C9465000C9465000C9465008C\r
-:100060000C9467000C946500B600D000BB00D00073\r
-:10007000C600D000CB00D00045464765666700202B\r
-:100080002B2D2E3031323334353637383968000075\r
-:1000900011241FBECFEFD8E0DEBFCDBF11E0A0E03E\r
-:1000A000B1E0E8E8F1E102C005900D92A031B1079E\r
-:1000B000D9F721E0A0E1B1E001C01D92A739B20754\r
-:1000C000E1F70E94C9020C94C2080C9400001F9230\r
-:1000D0000F920FB60F9211248F939F93AF93BF93FC\r
-:1000E000EF93FF938091B900887F803879F048F4CE\r
-:1000F000803609F066C085EC8093BC001092210127\r
-:1001000068C0883A39F1883B29F15BC080912101B0\r
-:10011000882341F08F3F09F04BC08091BB00809352\r
-:10012000200146C08091BB00809321018091210174\r
-:10013000853019F481E08093170180912101873087\r
-:1001400019F481E080931601809121018150809300\r
-:1001500021012AC08091210190E0FC013197E83013\r
-:10016000F10520F5EC5CFF4F0C943D0680911E01DB\r
-:1001700090911F0104C080911C0190911D018093FA\r
-:100180001401909315019093BB000EC080911A0149\r
-:1001900090911B01F4CF8091180190911901EFCF3C\r
-:1001A000809114018093BB0085EC03C01092BB00CA\r
-:1001B00085E88093BC00809121018F5F80932101AD\r
-:1001C00008C08091BC008B7E8093BC0085EC80933E\r
-:1001D000BC00FF91EF91BF91AF919F918F910F90D4\r
-:1001E0000FBE0F901F90189593E890937A0080931C\r
-:1001F0007C0080917C00806C80937C0080917A00F0\r
-:10020000806480937A0080917A0086FDFCCF809193\r
-:1002100078009091790045E080E090E020917A00AC\r
-:10022000206420937A0020917A0026FDFCCF209153\r
-:10023000780030917900820F931F415079F7209117\r
-:100240007A002F7720937A0065E070E00E940A061A\r
-:10025000CB0108951F920F920FB60F9211242F9386\r
-:100260003F934F935F936F937F938F939F93AF933E\r
-:10027000BF93EF93FF9380918400909185004A9BF8\r
-:1002800005C090931301809312011EC020911201AA\r
-:1002900030911301BC01621B730B80E090E00E945F\r
-:1002A000190527EE3CE840E350E40E94A70520E052\r
-:1002B00030E040E05FE30E9489040E94ED04709307\r
-:1002C0001B0160931A01E89AFF91EF91BF91AF91E2\r
-:1002D0009F918F917F916F915F914F913F912F915E\r
-:1002E0000F900FBE0F901F9018951F920F920FB690\r
-:1002F0000F9211242F933F934F935F936F937F93AC\r
-:100300008F939F93AF93BF93EF93FF93809184005C\r
-:10031000909185004B9B05C0909311018093100133\r
-:100320001EC02091100130911101BC01621B730BA2\r
-:1003300080E090E00E94190527EE3CE840E350E49D\r
-:100340000E94A70520E030E040E05FE30E948904BE\r
-:100350000E94ED047093190160931801E99AFF91CE\r
-:10036000EF91BF91AF919F918F917F916F915F912D\r
-:100370004F913F912F910F900FBE0F901F901895A6\r
-:100380001F920F920FB60F9211248F939F93EF93AA\r
-:10039000FF938091C00087FF17C0E0912401F09186\r
-:1003A00025018091C600808381E0E938F80730F4A8\r
-:1003B0003196F0932501E093240106C086E291E096\r
-:1003C0009093250180932401FF91EF919F918F914C\r
-:1003D0000F900FBE0F901F9018959C01E1ECF0E07C\r
-:1003E000808188618083808180688083E2ECF0E096\r
-:1003F00080818660808340E050E084E0220F331FDC\r
-:10040000441F551F8A95D1F760E074E284EF90E0B5\r
-:100410000E941E06DA01C9010197A109B109892FBD\r
-:100420009A2FAB2FBB27A7FDBA958093C50021500B\r
-:100430002093C40086E291E09093230180932201EF\r
-:10044000909325018093240108952091C00025FFF9\r
-:10045000FCCFFC0180818093C6000895CF93DF9389\r
-:100460001F92CDB7DEB78983CE0101960E94250287\r
-:1004700080E090E00F90DF91CF910895CF93DF93CC\r
-:10048000EC01CE012196FC012081222319F00E946B\r
-:100490002502F7CFDF91CF9108958091C00087FFAB\r
-:1004A000FCCF8091C60090E008950C944D0265E564\r
-:1004B00072E08EE292E00C947006CF93DF93FC0121\r
-:1004C000E253FF4FA081B181EC01C453DF4F28817B\r
-:1004D0003981A217B307B9F02091C00025FF13C0DE\r
-:1004E0002C912093C60020813181AC0145535F4F90\r
-:1004F0002417350718F42F5F3F4F03C09C0128597C\r
-:100500003F4F31832083E0912201F091230120911C\r
-:100510002401309125012E173F07C1F1DC01AC59B0\r
-:10052000BF4FCD91DC911197208128836D917C91F3\r
-:1005300011979C012B523F4FE9013881EB01288133\r
-:10054000321307C09C012C523F4FE90148814F5F95\r
-:1005500048839C012D593F4F6217730728F4EB0124\r
-:100560002196CD93DC9302C08D939C93D1E0E93822\r
-:10057000FD0730F43196F0932301E093220106C089\r
-:1005800086E291E09093230180932201DF91CF9145\r
-:1005900008951092200180E895E20E94ED010E94EA\r
-:1005A000570282E58093BA008091BC008B7E8093D5\r
-:1005B000BC0085EC8093BC001092800084E08093A6\r
-:1005C000810085E08093690086E091E00E94ED065D\r
-:1005D00083B7817F83BF7894C0E0D8E18091210107\r
-:1005E000833061F08F3F91F08130B9F480E00E9458\r
-:1005F000F40090931F0180931E010FC081E00E94C0\r
-:10060000F40090931D0180931C0107C0809120018C\r
-:10061000853A19F4F894FE01099580911701882311\r
-:1006200079F01092170110921B0110921A01529A40\r
-:100630005A9AF5E3FA95F1F700005A985298E89A19\r
-:1006400080911601882379F01092160110921901F9\r
-:1006500010921801539A5B9A85E38A95F1F700008E\r
-:100660005B985398E99A83B7816083BF889583B775\r
-:100670008E7F83BFB3CF6F927F929F92AF92BF92D4\r
-:10068000CF92DF92EF92FF920F931F93CF93DF935E\r
-:10069000CDB7DEB72C970FB6F894DEBF0FBECDBF37\r
-:1006A0008C017B013A01FC0117821682838181FF54\r
-:1006B00019C1CE0101965C01F801D380F701D3FC8A\r
-:1006C0002591D3FE21917F01222309F407C1253210\r
-:1006D00049F4D3FC2591D3FE21917F01253211F0FD\r
-:1006E000912C1BC0B801822F90E00E94BB066301D1\r
-:1006F0003601E2CF222309F4F1C0622F70E08FE7C8\r
-:1007000090E02C870E9465062C85892B49F0F70123\r
-:10071000D3FC2591D3FE21917F0197FEEBCF0CC036\r
-:10072000233221F4F92DF0619F2EF1CF2C3639F4CC\r
-:10073000292D2068922EEBCF222309F4CFC0622FFF\r
-:1007400070E088E790E02C870E9465062C85892B55\r
-:1007500041F06301F4E0CF0ED11CB8018FE390E0CB\r
-:1007600012C0233641F0233789F0233521F5F92DC6\r
-:10077000F1609F2E0BC0630122E0C20ED11CB801B4\r
-:10078000F301808191810E94BB06B2CF630122E018\r
-:10079000C20ED11CF30160807180F30190FC859141\r
-:1007A00090FE81913F01882309F4A2CFB80190E027\r
-:1007B0000E94BB06F2CF243611F0293639F56301C9\r
-:1007C00097FE09C0F4E0CF0ED11CF3016081718166\r
-:1007D000828193810AC0F2E0CF0ED11CF3016081C7\r
-:1007E0007181882777FD8095982FF92DFF7E9F2EA8\r
-:1007F00097FF09C090958095709561957F4F8F4FB9\r
-:100800009F4FF0649F2E2AE030E038C02037A1F0DF\r
-:1008100040F42835D1F02F3609F060C028E030E0F0\r
-:1008200019C0253719F0283751F058C0292D2F7ECF\r
-:10083000922E2AE030E00EC0892D8061982E992DED\r
-:100840009462992E20E130E005C0E92DE4609E2EEF\r
-:1008500020E132E0630197FE09C0F4E0CF0ED11C25\r
-:10086000F301608171818281938108C0F2E0CF0E33\r
-:10087000D11CF3016081718180E090E0A5010E94AC\r
-:100880001A07782E7A1896FE05C0B8018DE290E01E\r
-:100890000E94BB0694FE16C0FE01E70DF11D80818B\r
-:1008A000803381F0B80180E390E00E94BB0692FEA5\r
-:1008B00009C0292D2072822F90E0B801885A9F4FDD\r
-:1008C0000E94BB067A94F501E70DF11D8081B80105\r
-:1008D00090E00E94BB067110F5CF0ACFF801868127\r
-:1008E000978102C08FEF9FEF2C960FB6F894DEBF72\r
-:1008F0000FBECDBFDF91CF911F910F91FF90EF9071\r
-:10090000DF90CF90BF90AF909F907F906F900895B1\r
-:100910005058BB27AA270ED0E0C0D1D030F0D6D097\r
-:1009200020F031F49F3F11F41EF4C6C00EF4E095A0\r
-:10093000E7FBBCC0E92FE2D080F3BA176207730768\r
-:100940008407950718F071F49EF5FAC00EF4E0954F\r
-:100950000B2EBA2FA02D0B01B90190010C01CA0179\r
-:10096000A0011124FF27591B99F0593F50F4503E24\r
-:1009700068F11A16F040A22F232F342F4427585F16\r
-:10098000F3CF469537952795A795F0405395C9F72E\r
-:100990007EF41F16BA0B620B730B840BBAF09150E6\r
-:1009A000A1F0FF0FBB1F661F771F881FC2F70EC085\r
-:1009B000BA0F621F731F841F48F487957795679558\r
-:1009C000B795F7959E3F08F0B3CF9395880F08F041\r
-:1009D0009927EE0F97958795089598D088F09F579F\r
-:1009E00090F0B92F9927B751A0F0D1F0660F771F7B\r
-:1009F000881F991F1AF0BA95C9F712C0B13081F05B\r
-:100A00009FD0B1E008959CC0672F782F8827B85FEA\r
-:100A100039F0B93FCCF3869577956795B395D9F7BB\r
-:100A20003EF490958095709561957F4F8F4F9F4FC5\r
-:100A30000895E89409C097FB3EF4909580957095D1\r
-:100A400061957F4F8F4F9F4F9923A9F0F92F96E91A\r
-:100A5000BB279395F695879577956795B795F1118F\r
-:100A6000F8CFFAF4BB0F11F460FF1BC06F5F7F4F2C\r
-:100A70008F4F9F4F16C0882311F096E911C077233E\r
-:100A800021F09EE8872F762F05C0662371F096E847\r
-:100A9000862F70E060E02AF09A95660F771F881F16\r
-:100AA000DAF7880F9695879597F9089597F99F67D4\r
-:100AB00080E870E060E008959FEF80EC08950024E6\r
-:100AC0000A941616170618060906089500240A94B3\r
-:100AD00012161306140605060895092E0394000C39\r
-:100AE00011F4882352F0BB0F40F4BF2B11F460FFC8\r
-:100AF00004C06F5F7F4F8F4F9F4F089557FD9058F1\r
-:100B0000440F551F59F05F3F71F04795880F97FBD1\r
-:100B1000991F61F09F3F79F087950895121613068B\r
-:100B20001406551FF2CF4695F1DF08C016161706BA\r
-:100B30001806991FF1CF86957105610508940895EF\r
-:100B4000E894BB2766277727CB0197F908950BD048\r
-:100B5000C4CFB5DF28F0BADF18F0952309F0A6CF8F\r
-:100B6000ABCF1124EECFCADFA0F3959FD1F3950F41\r
-:100B700050E0551F629FF001729FBB27F00DB11D21\r
-:100B8000639FAA27F00DB11DAA1F649F6627B00DB1\r
-:100B9000A11D661F829F2227B00DA11D621F739F9A\r
-:100BA000B00DA11D621F839FA00D611D221F749FA8\r
-:100BB0003327A00D611D231F849F600D211D822FEF\r
-:100BC000762F6A2F11249F5750408AF0E1F0882336\r
-:100BD0004AF0EE0FFF1FBB1F661F771F881F915043\r
-:100BE0005040A9F79E3F510570F060CFAACF5F3FFC\r
-:100BF000ECF3983EDCF3869577956795B795F79576\r
-:100C0000E7959F5FC1F7FE2B880F911D96958795FD\r
-:100C100097F90895AA1BBB1B51E107C0AA1FBB1F70\r
-:100C2000A617B70710F0A61BB70B881F991F5A9578\r
-:100C3000A9F780959095BC01CD010895052E97FBED\r
-:100C40001EF400940E94350657FD07D00E9443060B\r
-:100C500007FC03D04EF40C94350650954095309522\r
-:100C600021953F4F4F4F5F4F089590958095709518\r
-:100C700061957F4F8F4F9F4F0895EE0FFF1F059097\r
-:100C8000F491E02D0994A1E21A2EAA1BBB1BFD01D1\r
-:100C90000DC0AA1FBB1FEE1FFF1FA217B307E4075B\r
-:100CA000F50720F0A21BB30BE40BF50B661F771FB3\r
-:100CB000881F991F1A9469F7609570958095909593\r
-:100CC0009B01AC01BD01CF010895FC010590061602\r
-:100CD00021F00020D9F7C00108953197CF01089580\r
-:100CE0000F931F93CF93DF93EC018B01009731F4A7\r
-:100CF0006115710519F480E090E038C06EE070E095\r
-:100D000081E090E00E947807FC010097A1F380E861\r
-:100D100083830115110571F01387028781E88383AE\r
-:100D200080918D0190918E01892B21F4F0938E0199\r
-:100D3000E0938D012097C9F0D187C08783818260BD\r
-:100D4000838380918F0190919001892B71F4F093AE\r
-:100D50009001E0938F018091910190919201892BF4\r
-:100D600021F4F0939201E0939101CF01DF91CF91B3\r
-:100D70001F910F9108950F931F93CF93DF93182F17\r
-:100D8000092FEB018B8181FD03C08FEF9FEF20C006\r
-:100D900082FF10C04E815F812C813D814217530735\r
-:100DA0007CF4E881F9819F012F5F3F4F39832883CD\r
-:100DB000108306C0E885F985812F0995892B29F7CD\r
-:100DC0002E813F812F5F3F4F3F832E83812F902FB6\r
-:100DD000DF91CF911F910F9108950F931F93CF93A0\r
-:100DE000DF93E0918F01F0919001238121FF1BC0DF\r
-:100DF000EC0100E010E0899160918F017091900109\r
-:100E0000DB011896ED91FC911997882331F0099533\r
-:100E1000892B89F30FEF1FEFEECF8AE00995892B1D\r
-:100E200011F4C80102C08FEF9FEFDF91CF911F91A6\r
-:100E30000F910895FA01AA27283051F1203181F14C\r
-:100E4000E8946F936E7F6E5F7F4F8F4F9F4FAF4FD2\r
-:100E5000B1E03ED0B4E03CD0670F781F891F9A1FE5\r
-:100E6000A11D680F791F8A1F911DA11D6A0F711D99\r
-:100E7000811D911DA11D20D009F468943F912AE0A5\r
-:100E8000269F11243019305D3193DEF6CF0108958D\r
-:100E9000462F4770405D4193B3E00FD0C9F7F6CFBE\r
-:100EA000462F4F70405D4A3318F0495D31FD405286\r
-:100EB000419302D0A9F7EACFB4E0A695979587951C\r
-:100EC00077956795BA95C9F70097610571050895FB\r
-:100ED0009B01AC010A2E06945795479537952795A7\r
-:100EE000BA95C9F7620F731F841F951FA01D08953F\r
-:100EF0000F931F93CF93DF93869F8001879F100DE1\r
-:100F0000969F100D1124C8010E949407EC010097D0\r
-:100F100029F0A80160E070E00E94BB08CE01DF91DB\r
-:100F2000CF911F910F910895CF93DF938230910558\r
-:100F300010F482E090E0E0919501F091960120E0BC\r
-:100F400030E0A0E0B0E0309739F14081518148179E\r
-:100F50005907B8F04817590771F4828193811097A7\r
-:100F600029F013969C938E9312972CC09093960120\r
-:100F70008093950127C02115310531F042175307A1\r
-:100F800018F0A901DB0101C0EF019A01BD01DF01E9\r
-:100F90000280F381E02DD7CF21153105F9F0281B10\r
-:100FA000390B2430310580F48A819B8161157105EC\r
-:100FB00021F0FB019383828304C090939601809378\r
-:100FC0009501FE01329644C0FE01E20FF31F8193AA\r
-:100FD000919322503109398328833AC0209193019B\r
-:100FE00030919401232B41F42091020130910301AF\r
-:100FF00030939401209393012091000130910101DD\r
-:101000002115310541F42DB73EB7409104015091AF\r
-:101010000501241B350BE0919301F0919401E21737\r
-:10102000F307A0F42E1B3F0B2817390778F0AC010B\r
-:101030004E5F5F4F2417350748F04E0F5F1F5093E8\r
-:101040009401409393018193919302C0E0E0F0E01A\r
-:10105000CF01DF91CF910895CF93DF93009709F4EB\r
-:1010600087C0FC01329713821282C0919501D09102\r
-:101070009601209781F420813181280F391F8091BA\r
-:101080009301909194018217930779F5F09394015D\r
-:10109000E09393016DC0DE0120E030E0AE17BF07A2\r
-:1010A00050F412964D915C9113979D014115510595\r
-:1010B00009F1DA01F3CFB383A28340815181840F18\r
-:1010C000951F8A179B0771F48D919C911197840F3E\r
-:1010D000951F02969183808312968D919C91139710\r
-:1010E000938382832115310529F4F0939601E093CF\r
-:1010F00095013EC0D9011396FC93EE9312974D9142\r
-:101100005D91A40FB51FEA17FB0779F480819181E7\r
-:10111000840F951F0296D90111969C938E9382811C\r
-:10112000938113969C938E931297E0E0F0E08A816E\r
-:101130009B81009719F0FE01EC01F9CFCE010296D8\r
-:1011400028813981820F931F20919301309194015E\r
-:101150002817390769F4309729F4109296011092F4\r
-:10116000950102C013821282D0939401C09393011F\r
-:10117000DF91CF910895DC0101C06D934150504043\r
-:08118000E0F70895F894FFCF99\r
-:101188000000970120000D0A53746172740D00006D\r
+:100000000C944A000C9431010C947C010C94670010\r
+:100010000C9467000C9467000C9467000C946700C4\r
+:100020000C9467000C9467000C9467000C946700B4\r
+:100030000C9467000C9467000C9467000C946700A4\r
+:100040000C9467000C9467000C94C7010C94670033\r
+:100050000C9467000C9467000C9467000C94670084\r
+:100060000C9469000C946700B800D700BD00D7005D\r
+:10007000C800D700CD00D700D200D700454647655D\r
+:10008000666700202B2D2E30313233343536373829\r
+:100090003968000011241FBECFEFD8E0DEBFCDBF0E\r
+:1000A00011E0A0E0B1E0E8ECF1E102C005900D92B2\r
+:1000B000A031B107D9F721E0A0E1B1E001C01D9264\r
+:1000C000A939B207E1F70E94D0020C94E2080C941F\r
+:1000D00000001F920F920FB60F9211248F939F93DF\r
+:1000E000AF93BF93EF93FF938091B900887F8038DF\r
+:1000F00079F048F4803609F06BC085EC8093BC0041\r
+:10010000109223016DC0883A39F1883B29F160C013\r
+:1001100080912301882341F08F3F09F050C08091E6\r
+:10012000BB00809322014BC08091BB0080932301D0\r
+:1001300080912301853019F481E080931901809129\r
+:100140002301873019F481E0809318018091230105\r
+:100150008150809323012FC08091230190E0FC0106\r
+:100160003197EA30F10548F5EC5CFF4F0C945D06E1\r
+:10017000809120019091210104C080911E019091F5\r
+:100180001F0180931401909315019093BB0013C03D\r
+:1001900080911C0190911D01F4CF80911A019091E2\r
+:1001A0001B01EFCF8091160190911701EACF80914A\r
+:1001B00014018093BB0085EC03C01092BB0085E85E\r
+:1001C0008093BC00809123018F5F8093230108C03E\r
+:1001D0008091BC008B7E8093BC0085EC8093BC003A\r
+:1001E000FF91EF91BF91AF919F918F910F900FBEB3\r
+:1001F0000F901F90189593E890937A0080937C005D\r
+:1002000080917C00806C80937C0080917A00806477\r
+:1002100080937A0080917A0086FDFCCF80917800EF\r
+:100220009091790045E080E090E020917A00206490\r
+:1002300020937A0020917A0026FDFCCF209178004F\r
+:1002400030917900820F931F415079F720917A0005\r
+:100250002F7720937A0065E070E00E942A06CB0198\r
+:1002600008951F920F920FB60F9211242F933F9370\r
+:100270004F935F936F937F938F939F93AF93BF93AE\r
+:10028000EF93FF9380918400909185004A9B05C075\r
+:1002900090931301809312011EC02091120130919E\r
+:1002A0001301BC01621B730B80E090E00E943905D2\r
+:1002B00027EE3CE840E350E40E94C70520E030E030\r
+:1002C00040E05FE30E94A9040E940D0570931D01A8\r
+:1002D00060931C01E89AFF91EF91BF91AF919F91BC\r
+:1002E0008F917F916F915F914F913F912F910F90DF\r
+:1002F0000FBE0F901F9018951F920F920FB60F927E\r
+:1003000011242F933F934F935F936F937F938F931A\r
+:100310009F93AF93BF93EF93FF938091840090914D\r
+:1003200085004B9B05C090931101809310011EC066\r
+:100330002091100130911101BC01621B730B80E010\r
+:1003400090E00E94390527EE3CE840E350E40E942B\r
+:10035000C70520E030E040E05FE30E94A9040E946E\r
+:100360000D0570931B0160931A01E99AFF91EF91BB\r
+:10037000BF91AF919F918F917F916F915F914F91BD\r
+:100380003F912F910F900FBE0F901F9018951F92C5\r
+:100390000F920FB60F9211248F939F93EF93FF93B9\r
+:1003A0008091C00087FF17C0E0912601F0912701DE\r
+:1003B0008091C600808381E0EB38F80730F43196F5\r
+:1003C000F0932701E093260106C088E291E0909324\r
+:1003D000270180932601FF91EF919F918F910F90BC\r
+:1003E0000FBE0F901F9018959C01E1ECF0E080810A\r
+:1003F00088618083808180688083E2ECF0E0808186\r
+:100400008660808340E050E084E0220F331F441F69\r
+:10041000551F8A95D1F760E074E284EF90E00E9466\r
+:100420003E06DA01C9010197A109B109892F9A2F66\r
+:10043000AB2FBB27A7FDBA958093C5002150209311\r
+:10044000C40088E291E09093250180932401909369\r
+:1004500027018093260108952091C00025FFFCCF3D\r
+:10046000FC0180818093C6000895CF93DF931F9293\r
+:10047000CDB7DEB78983CE0101960E942C0280E0C1\r
+:1004800090E00F90DF91CF910895CF93DF93EC012F\r
+:10049000CE012196FC012081222319F00E942C021A\r
+:1004A000F7CFDF91CF9108958091C00087FFFCCFF7\r
+:1004B0008091C60090E008950C9454026CE572E0BF\r
+:1004C00085E392E00C949006CF93DF93FC01E25316\r
+:1004D000FF4FA081B181EC01C453DF4F28813981E6\r
+:1004E000A217B307B9F02091C00025FF13C02C91CB\r
+:1004F0002093C60020813181AC0145535F4F241702\r
+:10050000350718F42F5F3F4F03C09C0128593F4F18\r
+:1005100031832083E0912401F0912501209126016F\r
+:10052000309127012E173F07C1F1DC01AC59BF4FB5\r
+:10053000CD91DC911197208128836D917C91119749\r
+:100540009C012B523F4FE9013881EB012881321386\r
+:1005500007C09C012C523F4FE90148814F5F4883FF\r
+:100560009C012D593F4F6217730728F4EB01219628\r
+:10057000CD93DC9302C08D939C93D1E0EB38FD07C3\r
+:1005800030F43196F0932501E093240106C088E20F\r
+:1005900091E09093250180932401DF91CF910895FC\r
+:1005A0001092220180E895E20E94F4010E945E020E\r
+:1005B00082E58093BA008091BC008B7E8093BC0062\r
+:1005C00085EC8093BC001092800084E080938100D1\r
+:1005D00085E08093690086E091E00E940D0783B773\r
+:1005E000817F83BF7894C0E0D8E18091230183307C\r
+:1005F00081F050F4813089F580E00E94FB009093F7\r
+:1006000021018093200129C0893059F08F3FF1F0FA\r
+:1006100024C081E00E94FB0090931F0180931E0183\r
+:100620001CC082E00E94FB00BC0180E090E00E94C0\r
+:10063000390528E431EE4AEB5FE30E94C7050E94CA\r
+:100640000D05709317016093160107C08091220178\r
+:10065000853A19F4F894FE010995809119018823CF\r
+:1006600079F01092190110921D0110921C01529AFA\r
+:100670005A9AF5E3FA95F1F700005A985298E89AD9\r
+:1006800080911801882379F01092180110921B01B3\r
+:1006900010921A01539A5B9A85E38A95F1F700004C\r
+:1006A0005B985398E99A83B7816083BF889583B735\r
+:1006B0008E7F83BF9ACF6F927F929F92AF92BF92AD\r
+:1006C000CF92DF92EF92FF920F931F93CF93DF931E\r
+:1006D000CDB7DEB72C970FB6F894DEBF0FBECDBFF7\r
+:1006E0008C017B013A01FC0117821682838181FF14\r
+:1006F00019C1CE0101965C01F801D380F701D3FC4A\r
+:100700002591D3FE21917F01222309F407C12532CF\r
+:1007100049F4D3FC2591D3FE21917F01253211F0BC\r
+:10072000912C1BC0B801822F90E00E94DB06630170\r
+:100730003601E2CF222309F4F1C0622F70E083E892\r
+:1007400090E02C870E9485062C85892B49F0F701C3\r
+:10075000D3FC2591D3FE21917F0197FEEBCF0CC0F6\r
+:10076000233221F4F92DF0619F2EF1CF2C3639F48C\r
+:10077000292D2068922EEBCF222309F4CFC0622FBF\r
+:1007800070E08CE790E02C870E9485062C85892BF1\r
+:1007900041F06301F4E0CF0ED11CB8018FE390E08B\r
+:1007A00012C0233641F0233789F0233521F5F92D86\r
+:1007B000F1609F2E0BC0630122E0C20ED11CB80174\r
+:1007C000F301808191810E94DB06B2CF630122E0B8\r
+:1007D000C20ED11CF30160807180F30190FC859101\r
+:1007E00090FE81913F01882309F4A2CFB80190E0E7\r
+:1007F0000E94DB06F2CF243611F0293639F5630169\r
+:1008000097FE09C0F4E0CF0ED11CF3016081718125\r
+:10081000828193810AC0F2E0CF0ED11CF301608186\r
+:100820007181882777FD8095982FF92DFF7E9F2E67\r
+:1008300097FF09C090958095709561957F4F8F4F78\r
+:100840009F4FF0649F2E2AE030E038C02037A1F09F\r
+:1008500040F42835D1F02F3609F060C028E030E0B0\r
+:1008600019C0253719F0283751F058C0292D2F7E8F\r
+:10087000922E2AE030E00EC0892D8061982E992DAD\r
+:100880009462992E20E130E005C0E92DE4609E2EAF\r
+:1008900020E132E0630197FE09C0F4E0CF0ED11CE5\r
+:1008A000F301608171818281938108C0F2E0CF0EF3\r
+:1008B000D11CF3016081718180E090E0A5010E946C\r
+:1008C0003A07782E7A1896FE05C0B8018DE290E0BE\r
+:1008D0000E94DB0694FE16C0FE01E70DF11D80812B\r
+:1008E000803381F0B80180E390E00E94DB0692FE45\r
+:1008F00009C0292D2072822F90E0B801885A9F4F9D\r
+:100900000E94DB067A94F501E70DF11D8081B801A4\r
+:1009100090E00E94DB067110F5CF0ACFF8018681C6\r
+:10092000978102C08FEF9FEF2C960FB6F894DEBF31\r
+:100930000FBECDBFDF91CF911F910F91FF90EF9030\r
+:10094000DF90CF90BF90AF909F907F906F90089571\r
+:100950005058BB27AA270ED0E0C0D1D030F0D6D057\r
+:1009600020F031F49F3F11F41EF4C6C00EF4E09560\r
+:10097000E7FBBCC0E92FE2D080F3BA176207730728\r
+:100980008407950718F071F49EF5FAC00EF4E0950F\r
+:100990000B2EBA2FA02D0B01B90190010C01CA0139\r
+:1009A000A0011124FF27591B99F0593F50F4503EE4\r
+:1009B00068F11A16F040A22F232F342F4427585FD6\r
+:1009C000F3CF469537952795A795F0405395C9F7EE\r
+:1009D0007EF41F16BA0B620B730B840BBAF09150A6\r
+:1009E000A1F0FF0FBB1F661F771F881FC2F70EC045\r
+:1009F000BA0F621F731F841F48F487957795679518\r
+:100A0000B795F7959E3F08F0B3CF9395880F08F000\r
+:100A10009927EE0F97958795089598D088F09F575E\r
+:100A200090F0B92F9927B751A0F0D1F0660F771F3A\r
+:100A3000881F991F1AF0BA95C9F712C0B13081F01A\r
+:100A40009FD0B1E008959CC0672F782F8827B85FAA\r
+:100A500039F0B93FCCF3869577956795B395D9F77B\r
+:100A60003EF490958095709561957F4F8F4F9F4F85\r
+:100A70000895E89409C097FB3EF490958095709591\r
+:100A800061957F4F8F4F9F4F9923A9F0F92F96E9DA\r
+:100A9000BB279395F695879577956795B795F1114F\r
+:100AA000F8CFFAF4BB0F11F460FF1BC06F5F7F4FEC\r
+:100AB0008F4F9F4F16C0882311F096E911C07723FE\r
+:100AC00021F09EE8872F762F05C0662371F096E807\r
+:100AD000862F70E060E02AF09A95660F771F881FD6\r
+:100AE000DAF7880F9695879597F9089597F99F6794\r
+:100AF00080E870E060E008959FEF80EC08950024A6\r
+:100B00000A941616170618060906089500240A9472\r
+:100B100012161306140605060895092E0394000CF8\r
+:100B200011F4882352F0BB0F40F4BF2B11F460FF87\r
+:100B300004C06F5F7F4F8F4F9F4F089557FD9058B0\r
+:100B4000440F551F59F05F3F71F04795880F97FB91\r
+:100B5000991F61F09F3F79F087950895121613064B\r
+:100B60001406551FF2CF4695F1DF08C0161617067A\r
+:100B70001806991FF1CF86957105610508940895AF\r
+:100B8000E894BB2766277727CB0197F908950BD008\r
+:100B9000C4CFB5DF28F0BADF18F0952309F0A6CF4F\r
+:100BA000ABCF1124EECFCADFA0F3959FD1F3950F01\r
+:100BB00050E0551F629FF001729FBB27F00DB11DE1\r
+:100BC000639FAA27F00DB11DAA1F649F6627B00D71\r
+:100BD000A11D661F829F2227B00DA11D621F739F5A\r
+:100BE000B00DA11D621F839FA00D611D221F749F68\r
+:100BF0003327A00D611D231F849F600D211D822FAF\r
+:100C0000762F6A2F11249F5750408AF0E1F08823F5\r
+:100C10004AF0EE0FFF1FBB1F661F771F881F915002\r
+:100C20005040A9F79E3F510570F060CFAACF5F3FBB\r
+:100C3000ECF3983EDCF3869577956795B795F79535\r
+:100C4000E7959F5FC1F7FE2B880F911D96958795BD\r
+:100C500097F90895AA1BBB1B51E107C0AA1FBB1F30\r
+:100C6000A617B70710F0A61BB70B881F991F5A9538\r
+:100C7000A9F780959095BC01CD010895052E97FBAD\r
+:100C80001EF400940E94550657FD07D00E9463068B\r
+:100C900007FC03D04EF40C945506509540953095C2\r
+:100CA00021953F4F4F4F5F4F0895909580957095D8\r
+:100CB00061957F4F8F4F9F4F0895EE0FFF1F059057\r
+:100CC000F491E02D0994A1E21A2EAA1BBB1BFD0191\r
+:100CD0000DC0AA1FBB1FEE1FFF1FA217B307E4071B\r
+:100CE000F50720F0A21BB30BE40BF50B661F771F73\r
+:100CF000881F991F1A9469F7609570958095909553\r
+:100D00009B01AC01BD01CF010895FC0105900616C1\r
+:100D100021F00020D9F7C00108953197CF0108953F\r
+:100D20000F931F93CF93DF93EC018B01009731F466\r
+:100D30006115710519F480E090E038C06EE070E054\r
+:100D400081E090E00E949807FC010097A1F380E801\r
+:100D500083830115110571F01387028781E883836E\r
+:100D600080918F0190919001892B21F4F093900153\r
+:100D7000E0938F012097C9F0D187C087838182607B\r
+:100D800083838091910190919201892B71F4F0936A\r
+:100D90009201E09391018091930190919401892BAC\r
+:100DA00021F4F0939401E0939301CF01DF91CF916F\r
+:100DB0001F910F9108950F931F93CF93DF93182FD7\r
+:100DC000092FEB018B8181FD03C08FEF9FEF20C0C6\r
+:100DD00082FF10C04E815F812C813D8142175307F5\r
+:100DE0007CF4E881F9819F012F5F3F4F398328838D\r
+:100DF000108306C0E885F985812F0995892B29F78D\r
+:100E00002E813F812F5F3F4F3F832E83812F902F75\r
+:100E1000DF91CF911F910F9108950F931F93CF935F\r
+:100E2000DF93E0919101F0919201238121FF1BC09A\r
+:100E3000EC0100E010E089916091910170919201C4\r
+:100E4000DB011896ED91FC911997882331F00995F3\r
+:100E5000892B89F30FEF1FEFEECF8AE00995892BDD\r
+:100E600011F4C80102C08FEF9FEFDF91CF911F9166\r
+:100E70000F910895FA01AA27283051F1203181F10C\r
+:100E8000E8946F936E7F6E5F7F4F8F4F9F4FAF4F92\r
+:100E9000B1E03ED0B4E03CD0670F781F891F9A1FA5\r
+:100EA000A11D680F791F8A1F911DA11D6A0F711D59\r
+:100EB000811D911DA11D20D009F468943F912AE065\r
+:100EC000269F11243019305D3193DEF6CF0108954D\r
+:100ED000462F4770405D4193B3E00FD0C9F7F6CF7E\r
+:100EE000462F4F70405D4A3318F0495D31FD405246\r
+:100EF000419302D0A9F7EACFB4E0A69597958795DC\r
+:100F000077956795BA95C9F70097610571050895BA\r
+:100F10009B01AC010A2E0694579547953795279566\r
+:100F2000BA95C9F7620F731F841F951FA01D0895FE\r
+:100F30000F931F93CF93DF93869F8001879F100DA0\r
+:100F4000969F100D1124C8010E94B407EC01009770\r
+:100F500029F0A80160E070E00E94DB08CE01DF917B\r
+:100F6000CF911F910F910895CF93DF938230910518\r
+:100F700010F482E090E0E0919701F091980120E078\r
+:100F800030E0A0E0B0E0309739F14081518148175E\r
+:100F90005907B8F04817590771F482819381109767\r
+:100FA00029F013969C938E9312972CC090939801DE\r
+:100FB0008093970127C02115310531F0421753075F\r
+:100FC00018F0A901DB0101C0EF019A01BD01DF01A9\r
+:100FD0000280F381E02DD7CF21153105F9F0281BD0\r
+:100FE000390B2430310580F48A819B8161157105AC\r
+:100FF00021F0FB019383828304C090939801809336\r
+:101000009701FE01329644C0FE01E20FF31F819367\r
+:10101000919322503109398328833AC02091950158\r
+:1010200030919601232B41F420910201309103016C\r
+:101030003093960120939501209100013091010198\r
+:101040002115310541F42DB73EB74091040150916F\r
+:101050000501241B350BE0919501F0919601E217F3\r
+:10106000F307A0F42E1B3F0B2817390778F0AC01CB\r
+:101070004E5F5F4F2417350748F04E0F5F1F5093A8\r
+:101080009601409395018193919302C0E0E0F0E0D6\r
+:10109000CF01DF91CF910895CF93DF93009709F4AB\r
+:1010A00087C0FC01329713821282C0919701D091C0\r
+:1010B0009801209781F420813181280F391F809178\r
+:1010C0009501909196018217930779F5F093960117\r
+:1010D000E09395016DC0DE0120E030E0AE17BF0760\r
+:1010E00050F412964D915C9113979D014115510555\r
+:1010F00009F1DA01F3CFB383A28340815181840FD8\r
+:10110000951F8A179B0771F48D919C911197840FFD\r
+:10111000951F02969183808312968D919C911397CF\r
+:10112000938382832115310529F4F0939801E0938C\r
+:1011300097013EC0D9011396FC93EE9312974D91FF\r
+:101140005D91A40FB51FEA17FB0779F480819181A7\r
+:10115000840F951F0296D90111969C938E938281DC\r
+:10116000938113969C938E931297E0E0F0E08A812E\r
+:101170009B81009719F0FE01EC01F9CFCE01029698\r
+:1011800028813981820F931F20919501309196011A\r
+:101190002817390769F4309729F4109298011092B2\r
+:1011A000970102C013821282D0939601C0939501D9\r
+:1011B000DF91CF910895DC0101C06D934150504003\r
+:0811C000E0F70895F894FFCF59\r
+:1011C8000000990120000D0A53746172740D00002B\r
 :00000001FF\r