avr: fixes, pid tuning
authorErik Andresen <erik@vontaene.de>
Sun, 24 May 2015 17:38:35 +0000 (19:38 +0200)
committerErik Andresen <erik@vontaene.de>
Sun, 24 May 2015 17:38:35 +0000 (19:38 +0200)
avr/motor_ctrl/main.c
avr/motor_ctrl/main.hex

index 09a8a725fea9d5409e0339d783124dbcc7587ad7..9d33c986b4acf0cb221f6fc8d7d1fc8a36cf930a 100644 (file)
  * 0x26 Motor 4 speed wish MSB
  * 0x27 Motor 4 speed wish LSB
  * free
  * 0x26 Motor 4 speed wish MSB
  * 0x27 Motor 4 speed wish LSB
  * free
+ * 0x30 Motor 1 speed MSB
+ * 0x31 Motor 1 speed LSB
+ * 0x32 Motor 2 speed MSB
+ * 0x33 Motor 2 speed LSB
+ * 0x34 Motor 3 speed MSB
+ * 0x35 Motor 3 speed LSB
+ * 0x36 Motor 4 speed MSB
+ * 0x37 Motor 4 speed LSB
+ * free
  * 0x90 Motor 1 switch
  * 0x91 Motor 2 switch
  * 0x92 Motor 3 switch
  * 0x90 Motor 1 switch
  * 0x91 Motor 2 switch
  * 0x92 Motor 3 switch
 #define TWI_RESET      TWCR &= ~((1 << TWSTO) | (1 << TWEN)); TWI_ACK
 #define TWI_NAK                TWCR = (1<<TWINT) | (1<<TWEN) | (1<<TWIE)
 
 #define TWI_RESET      TWCR &= ~((1 << TWSTO) | (1 << TWEN)); TWI_ACK
 #define TWI_NAK                TWCR = (1<<TWINT) | (1<<TWEN) | (1<<TWIE)
 
-#define KP 10.0
-#define KI 0.0 
-#define KD 0.0 
-#define TIMER0_T 0.020
+#define KP 0.009
+#define KI 0.051429
+#define KD 0.000378
+#define TIMER1_T 0.01
 
 enum mode {
        MOTOR_MANUAL,
 
 enum mode {
        MOTOR_MANUAL,
@@ -81,7 +90,7 @@ static volatile int16_t speed1_wish=0;
 static volatile int16_t speed2_wish=0;
 static volatile int16_t speed3_wish=0;
 static volatile int16_t speed4_wish=0;
 static volatile int16_t speed2_wish=0;
 static volatile int16_t speed3_wish=0;
 static volatile int16_t speed4_wish=0;
-static volatile uint16_t run_pid=0;
+static volatile uint8_t run_pid=0;
 static int16_t speed1=0;
 static int16_t speed2=0;
 static int16_t speed3=0;
 static int16_t speed1=0;
 static int16_t speed2=0;
 static int16_t speed3=0;
@@ -287,6 +296,38 @@ ISR(TWI_vect)
                                        TWDR = speed4_wish;
                                        TWI_ACK;
                                        break;
                                        TWDR = speed4_wish;
                                        TWI_ACK;
                                        break;
+                               case 0x30: // Motor 1 speed MSB
+                                       TWDR = speed1>>8;
+                                       TWI_ACK;
+                                       break;
+                               case 0x31: // Motor 1 speed LSB
+                                       TWDR = speed1;
+                                       TWI_ACK;
+                                       break;
+                               case 0x32: // Motor 2 speed MSB
+                                       TWDR = speed2>>8;
+                                       TWI_ACK;
+                                       break;
+                               case 0x33: // Motor 2 speed LSB
+                                       TWDR = speed2;
+                                       TWI_ACK;
+                                       break;
+                               case 0x34: // Motor 3 speed MSB
+                                       TWDR = speed3>>8;
+                                       TWI_ACK;
+                                       break;
+                               case 0x35: // Motor 3 speed LSB
+                                       TWDR = speed3;
+                                       TWI_ACK;
+                                       break;
+                               case 0x36: // Motor 4 speed MSB
+                                       TWDR = speed4>>8;
+                                       TWI_ACK;
+                                       break;
+                               case 0x37: // Motor 4 speed LSB
+                                       TWDR = speed4;
+                                       TWI_ACK;
+                                       break;
                                default:
                                        TWDR = 0;
                                        TWI_NAK;
                                default:
                                        TWDR = 0;
                                        TWI_NAK;
@@ -319,7 +360,7 @@ static void update_hall1(void) {
 
 
 static void update_hall2(void) {
 
 
 static void update_hall2(void) {
-       unsigned char status = (PINA >> 2) & 0x3;
+       unsigned char status = (PINA >> 4) & 0x3;
        static unsigned char oldstatus=0;
        unsigned char diff, new;
 
        static unsigned char oldstatus=0;
        unsigned char diff, new;
 
@@ -331,14 +372,14 @@ static void update_hall2(void) {
        diff = oldstatus - new;                         // difference last - new
        if (diff & 0x1) {                               // bit 0 = value (1)
                oldstatus = new;                                        // store new as next last
        diff = oldstatus - new;                         // difference last - new
        if (diff & 0x1) {                               // bit 0 = value (1)
                oldstatus = new;                                        // store new as next last
-               if (motor2_switch) pos2 += (diff & 2) - 1;              // bit 1 = direction (+/-)
-               else pos2 -= (diff & 2) - 1;
+               if (motor2_switch) pos2 -= (diff & 2) - 1;              // bit 1 = direction (+/-)
+               else pos2 += (diff & 2) - 1;
        }
 }
 
 
 static void update_hall3(void) {
        }
 }
 
 
 static void update_hall3(void) {
-       unsigned char status = (PINA >> 4) & 0x3;
+       unsigned char status = (PINA >> 2) & 0x3;
        static unsigned char oldstatus=0;
        unsigned char diff, new;
 
        static unsigned char oldstatus=0;
        unsigned char diff, new;
 
@@ -350,8 +391,8 @@ static void update_hall3(void) {
        diff = oldstatus - new;                         // difference last - new
        if (diff & 0x1) {                               // bit 0 = value (1)
                oldstatus = new;                                        // store new as next last
        diff = oldstatus - new;                         // difference last - new
        if (diff & 0x1) {                               // bit 0 = value (1)
                oldstatus = new;                                        // store new as next last
-               if (motor3_switch) pos3 += (diff & 2) - 1;              // bit 1 = direction (+/-)
-               else pos3 -= (diff & 2) - 1;
+               if (motor3_switch) pos3 -= (diff & 2) - 1;              // bit 1 = direction (+/-)
+               else pos3 += (diff & 2) - 1;
        }
 }
 
        }
 }
 
@@ -465,73 +506,66 @@ void update_pid(void) {
        static int32_t esum3=0;
        static int32_t esum4=0;
 
        static int32_t esum3=0;
        static int32_t esum4=0;
 
-       if (motor1_mode == MOTOR_PID) {
-               speed1 = (pos1 - pos1_last)/TIMER0_T;
+       speed1 = (pos1 - pos1_last)/TIMER1_T;
+       pos1_last = pos1;
+       speed2 = (pos2 - pos2_last)/TIMER1_T;
+       pos2_last = pos2;
+       speed3 = (pos3 - pos3_last)/TIMER1_T;
+       pos3_last = pos3;
+       speed4 = (pos4 - pos4_last)/TIMER1_T;
+       pos4_last = pos4;
 
 
+       if (motor1_mode == MOTOR_PID) {
                if (speed1_wish == 0) {
                        motor1 = 0;
                } else {
                        int16_t e = speed1_wish - speed1;
                        esum1+=e;
                if (speed1_wish == 0) {
                        motor1 = 0;
                } else {
                        int16_t e = speed1_wish - speed1;
                        esum1+=e;
-                       motor1 += KP*e + KI*TIMER0_T*esum1 + KD/TIMER0_T*(e - eold1);
+                       motor1 += KP*e + KI*TIMER1_T*esum1 + KD/TIMER1_T*(e - eold1);
                        eold1 = e;
 
                         if (motor1 > 255) motor1 = 255;
                        else if (motor1 < -255) motor1 = -255;
                }
                        eold1 = e;
 
                         if (motor1 > 255) motor1 = 255;
                        else if (motor1 < -255) motor1 = -255;
                }
-
-               pos1_last = pos1;
        }
        if (motor2_mode == MOTOR_PID) {
        }
        if (motor2_mode == MOTOR_PID) {
-               speed2 = (pos2 - pos2_last)/TIMER0_T;
-
                if (speed2_wish == 0) {
                        motor2 = 0;
                } else {
                        int16_t e = speed2_wish - speed2;
                        esum2+=e;
                if (speed2_wish == 0) {
                        motor2 = 0;
                } else {
                        int16_t e = speed2_wish - speed2;
                        esum2+=e;
-                       motor2 += KP*e + KI*TIMER0_T*esum2 + KD/TIMER0_T*(e - eold2);
+                       motor2 += KP*e + KI*TIMER1_T*esum2 + KD/TIMER1_T*(e - eold2);
                        eold2 = e;
 
                         if (motor2 > 255) motor2 = 255;
                        else if (motor2 < -255) motor2 = -255;
                }
                        eold2 = e;
 
                         if (motor2 > 255) motor2 = 255;
                        else if (motor2 < -255) motor2 = -255;
                }
-
-               pos2_last = pos2;
        }
        if (motor3_mode == MOTOR_PID) {
        }
        if (motor3_mode == MOTOR_PID) {
-               speed3 = (pos3 - pos3_last)/TIMER0_T;
-
                if (speed3_wish == 0) {
                        motor3 = 0;
                } else {
                        int16_t e = speed3_wish - speed3;
                        esum3+=e;
                if (speed3_wish == 0) {
                        motor3 = 0;
                } else {
                        int16_t e = speed3_wish - speed3;
                        esum3+=e;
-                       motor3 += KP*e + KI*TIMER0_T*esum3 + KD/TIMER0_T*(e - eold3);
+                       motor3 += KP*e + KI*TIMER1_T*esum3 + KD/TIMER1_T*(e - eold3);
                        eold3 = e;
 
                         if (motor3 > 255) motor3 = 255;
                        else if (motor3 < -255) motor3 = -255;
                }
                        eold3 = e;
 
                         if (motor3 > 255) motor3 = 255;
                        else if (motor3 < -255) motor3 = -255;
                }
-
-               pos3_last = pos3;
        }
        if (motor4_mode == MOTOR_PID) {
        }
        if (motor4_mode == MOTOR_PID) {
-               speed4 = (pos4 - pos4_last)/TIMER0_T;
-
                if (speed4_wish == 0) {
                        motor4 = 0;
                } else {
                        int16_t e = speed4_wish - speed4;
                        esum4+=e;
                if (speed4_wish == 0) {
                        motor4 = 0;
                } else {
                        int16_t e = speed4_wish - speed4;
                        esum4+=e;
-                       motor4 += KP*e + KI*TIMER0_T*esum4 + KD/TIMER0_T*(e - eold4);
+                       motor4 += KP*e + KI*TIMER1_T*esum4 + KD/TIMER1_T*(e - eold4);
                        eold4 = e;
 
                         if (motor4 > 255) motor4 = 255;
                        else if (motor4 < -255) motor4 = -255;
                }
                        eold4 = e;
 
                         if (motor4 > 255) motor4 = 255;
                        else if (motor4 < -255) motor4 = -255;
                }
-
-               pos4_last = pos4;
        }
 }
 
        }
 }
 
@@ -601,7 +635,7 @@ int main(void) {
                }
                
 
                }
                
 
-               if (run_pid >= 781) { // ~20Hz
+               if (run_pid >= 156) { // ~100Hz
                        run_pid=0;
                        update_pid();
                }
                        run_pid=0;
                        update_pid();
                }
index 1b859bad741715b918252613bc3fcb74aa281416..b27fd698c603596d39de4e827ada3b01f42e28d4 100644 (file)
-:100000000C945C000C9479000C9479000C947900A9\r
-:100010000C9479000C9479000C9479000C9479007C\r
-:100020000C9479000C94F0040C9479000C947900F1\r
-:100030000C9479000C94CD050C9479000C94790003\r
-:100040000C9479000C9479000C9479000C947B004A\r
-:100050000C9479007901C9017C01C9017F01C901B2\r
-:100060008101C901C901C901C901C901C901C90188\r
-:1000700083019C0188019C0192019C0197019C01D4\r
-:10008000C901C901C901C901C901C901C901C90120\r
-:100090009F01A401A901AE01B301B801BD01C201D4\r
-:1000A00045464765666700202B2D2E3031323334AC\r
-:1000B000353637383968000011241FBECFE5D8E047\r
-:1000C000DEBFCDBF10E0A0E6B0E0E0EFFBE102C094\r
-:1000D00005900D92A837B107D9F721E0A8E7B0E065\r
-:1000E00001C01D92A034B207E1F70E94C2060C9431\r
-:1000F000F60D0C9400001F920F920FB60F92112470\r
-:100100002F938F939F93AF93BF93EF93FF9381B1FF\r
-:10011000887F803881F040F4803609F043C185EC57\r
-:1001200086BF1092CA0043C1883A09F4D5C0883B03\r
-:1001300009F4D2C037C18091CA00813209F495C058\r
-:1001400068F5843009F479C060F4813009F4A7C0FF\r
-:1001500008F45EC0823009F464C0833009F49FC0A3\r
-:1001600019C1873009F49BC090F4853009F497C019\r
-:10017000863009F00FC183B120919E0090E0922B50\r
-:100180009093C4008093C3001092B60000C18830E1\r
-:1001900009F45FC0803209F482C0FCC0873209F4E0\r
-:1001A00082C0F0F4843209F47AC098F4823209F4FF\r
-:1001B00076C0833209F0EEC083B120919E0090E0BA\r
-:1001C000922B9093AE008093AD0081E08093B700B6\r
-:1001D000DEC0853209F456C0863209F460C0DAC048\r
-:1001E000823909F471C050F4803909F469C0813949\r
-:1001F00009F0D0C083B18093B300C9C0833909F43A\r
-:1002000067C08F3F09F0C6C083B18093C900C2C0E8\r
-:1002100083B18093CA008091CA0081508093CA0044\r
-:10022000B6C083B120919E0090E0922B9093C800BD\r
-:100230008093C7001092B800AAC083B120919E009D\r
-:1002400090E0922B9093C6008093C5001092B70067\r
-:100250009EC083B120919E0090E0922B9093C200AB\r
-:100260008093C1001092B50092C083B120919E008E\r
-:1002700090E0922B9093B0008093AF0081E0809348\r
-:10028000B80085C083B120919E0090E0922B90939E\r
-:10029000AC008093AB0081E08093B60078C083B15E\r
-:1002A00080939E0074C083B120919E0090E0922BB9\r
-:1002B0009093AA008093A90081E08093B50067C065\r
-:1002C00083B18093B40063C083B18093B2005FC0F8\r
-:1002D00083B18093B1005BC08091CA0090E0FC01C3\r
-:1002E0003297E632F10508F054C0E65DFF4F0C94FA\r
-:1002F000710B8AB59BB54AC088B599B547C083B51F\r
-:1003000045C08CB743C08091BF009091C00004C02D\r
-:100310008091BD009091BE0090939D0080939C00C1\r
-:1003200093B935C08091BB009091BC00F5CF80910E\r
-:10033000B9009091BA00F0CF80919C0027C08091C5\r
-:10034000AF009091B000ECCF8091AF009091B000E1\r
-:100350001DC08091AD009091AE00E2CF8091AD00C4\r
-:100360009091AE0013C08091AB009091AC00D8CFBB\r
-:100370008091AB009091AC0009C08091A900909150\r
-:10038000AA00CECF8091A9009091AA0083B985ECF4\r
-:1003900002C013B885E886BF8091CA008F5F809342\r
-:1003A000CA0005C086B78B7E86BF85EC86BFFF91ED\r
-:1003B000EF91BF91AF919F918F912F910F900FBEB1\r
-:1003C0000F901F9018954F925F926F927F928F922D\r
-:1003D0009F92AF92BF92CF92DF92EF92FF92CF9314\r
-:1003E000DF938091B800813009F0B7C06091BF0001\r
-:1003F0007091C00080919A0090919B00681B790BCE\r
-:10040000882777FD8095982F0E94630A2AE037EDB0\r
-:1004100043EA5CE30E94C8090E94300A7093A60078\r
-:100420006093A5002091AF003091B000232B29F4F8\r
-:100430001092C8001092C70088C0C091AF00D09140\r
-:10044000B000C61BD70B4E01AA2497FCA094BA2C6F\r
-:10045000C0909600D0909700E0909800F09099009E\r
-:10046000C80CD91CEA1CFB1CC0929600D0929700C5\r
-:10047000E0929800F09299006091C7007091C800D6\r
-:10048000882777FD8095982F0E94630A2B013C01F5\r
-:10049000C501B4010E94630A20E030E040E251E46B\r
-:1004A0000E94EF0A4B015C01C701B6010E94630A7A\r
-:1004B00020E030E0A9010E94EF0A9B01AC01C501D8\r
-:1004C000B4010E9464096B017C01809194009091B9\r
-:1004D0009500BE01681B790B882777FD8095982FC2\r
-:1004E0000E94630A20E030E0A9010E94EF0A9B010C\r
-:1004F000AC01C701B6010E9464099B01AC01C301B4\r
-:10050000B2010E9464090E94300A7093C80060938F\r
-:10051000C700D0939500C09394008091C70090913C\r
-:10052000C8008F3F910521F01CF08FEF90E009C0CB\r
-:100530008091C7009091C80081309F4F34F481E0D2\r
-:100540009FEF9093C8008093C7008091BF00909167\r
-:10055000C00090939B0080939A008091B7008130F7\r
-:1005600009F0B7C06091BD007091BE00809192000B\r
-:1005700090919300681B790B882777FD8095982FC1\r
-:100580000E94630A2AE037ED43EA5CE30E94C8094F\r
-:100590000E94300A7093A4006093A3002091AD00E4\r
-:1005A0003091AE00232B29F41092C6001092C500A2\r
-:1005B00088C0C091AD00D091AE00C61BD70B4E01D4\r
-:1005C000AA2497FCA094BA2CC0908E00D0908F00E3\r
-:1005D000E0909000F0909100C80CD91CEA1CFB1C24\r
-:1005E000C0928E00D0928F00E0929000F092910025\r
-:1005F0006091C5007091C600882777FD8095982F7F\r
-:100600000E94630A2B013C01C501B4010E94630AE8\r
-:1006100020E030E040E251E40E94EF0A4B015C012F\r
-:10062000C701B6010E94630A20E030E0A9010E94E0\r
-:10063000EF0A9B01AC01C501B4010E9464096B0182\r
-:100640007C0180918C0090918D00BE01681B790B1C\r
-:10065000882777FD8095982F0E94630A20E030E07C\r
-:10066000A9010E94EF0A9B01AC01C701B6010E94DB\r
-:1006700064099B01AC01C301B2010E9464090E949C\r
-:10068000300A7093C6006093C500D0938D00C0936C\r
-:100690008C008091C5009091C6008F3F910521F09C\r
-:1006A0001CF08FEF90E009C08091C5009091C600CA\r
-:1006B00081309F4F34F481E09FEF9093C600809388\r
-:1006C000C5008091BD009091BE00909393008093EF\r
-:1006D00092008091B600813009F0B7C06091BB00F4\r
-:1006E0007091BC0080918A0090918B00681B790BFF\r
-:1006F000882777FD8095982F0E94630A2AE037EDBE\r
-:1007000043EA5CE30E94C8090E94300A7093A20089\r
-:100710006093A1002091AB003091AC00232B29F411\r
-:100720001092C4001092C30088C0C091AB00D09159\r
-:10073000AC00C61BD70B4E01AA2497FCA094BA2C80\r
-:10074000C0908600D0908700E0908800F0908900EB\r
-:10075000C80CD91CEA1CFB1CC0928600D0928700F2\r
-:10076000E0928800F09289006091C3007091C4000B\r
-:10077000882777FD8095982F0E94630A2B013C0102\r
-:10078000C501B4010E94630A20E030E040E251E478\r
-:100790000E94EF0A4B015C01C701B6010E94630A87\r
-:1007A00020E030E0A9010E94EF0A9B01AC01C501E5\r
-:1007B000B4010E9464096B017C01809184009091D6\r
-:1007C0008500BE01681B790B882777FD8095982FDF\r
-:1007D0000E94630A20E030E0A9010E94EF0A9B0119\r
-:1007E000AC01C701B6010E9464099B01AC01C301C1\r
-:1007F000B2010E9464090E94300A7093C4006093A1\r
-:10080000C300D0938500C09384008091C300909171\r
-:10081000C4008F3F910521F01CF08FEF90E009C0DC\r
-:100820008091C3009091C40081309F4F34F481E0E7\r
-:100830009FEF9093C4008093C3008091BB00909180\r
-:10084000BC0090938B0080938A008091B50081302A\r
-:1008500009F0B7C06091B9007091BA008091820030\r
-:1008600090918300681B790B882777FD8095982FDE\r
-:100870000E94630A2AE037ED43EA5CE30E94C8095C\r
-:100880000E94300A7093A00060939F002091A900FD\r
-:100890003091AA00232B29F41092C2001092C100BB\r
-:1008A00088C0C091A900D091AA00C61BD70B4E01E9\r
-:1008B000AA2497FCA094BA2CC0907E00D0907F0010\r
-:1008C000E0908000F0908100C80CD91CEA1CFB1C51\r
-:1008D000C0927E00D0927F00E0928000F092810072\r
-:1008E0006091C1007091C200882777FD8095982F94\r
-:1008F0000E94630A2B013C01C501B4010E94630AF6\r
-:1009000020E030E040E251E40E94EF0A4B015C013C\r
-:10091000C701B6010E94630A20E030E0A9010E94ED\r
-:10092000EF0A9B01AC01C501B4010E9464096B018F\r
-:100930007C0180917C0090917D00BE01681B790B49\r
-:10094000882777FD8095982F0E94630A20E030E089\r
-:10095000A9010E94EF0A9B01AC01C701B6010E94E8\r
-:1009600064099B01AC01C301B2010E9464090E94A9\r
-:10097000300A7093C2006093C100D0937D00C09391\r
-:100980007C008091C1009091C2008F3F910521F0C1\r
-:100990001CF08FEF90E009C08091C1009091C200DF\r
-:1009A00081309F4F34F481E09FEF9093C200809399\r
-:1009B000C1008091B9009091BA0090938300809318\r
-:1009C0008200DF91CF91FF90EF90DF90CF90BF90AA\r
-:1009D000AF909F908F907F906F905F904F90089511\r
-:1009E0001F920F920FB60F9211242F933F934F93A4\r
-:1009F0008F939F9399B390FD02C080E001C083E084\r
-:100A000091FF02C091E0892720917B00281B20FFE5\r
-:100A10001FC080937B008091B400422F42708823D6\r
-:100A200049F08091BF009091C000242F30E0215008\r
-:100A3000310908C08091BF009091C00021E030E0F2\r
-:100A4000241B3109820F931F9093C0008093BF0035\r
-:100A500099B39695969590FD02C080E001C083E021\r
-:100A600091FF02C091E0892720917A00281B20FF86\r
-:100A70001FC080937A008091B300422F4270882378\r
-:100A800049F08091BD009091BE00242F30E02150AC\r
-:100A9000310908C08091BD009091BE0021E030E096\r
-:100AA000241B3109820F931F9093BE008093BD00D9\r
-:100AB00099B392959F7090FD02C080E001C083E0E1\r
-:100AC00091FF02C091E0892720917900281B20FF27\r
-:100AD0001FC0809379008091B200422F427088231A\r
-:100AE00049F08091BB009091BC00242F30E0215050\r
-:100AF000310908C08091BB009091BC0021E030E03A\r
-:100B0000241B3109820F931F9093BC008093BB007C\r
-:100B100099B3929596959695937090FD02C080E05A\r
-:100B200001C083E0927011F091E089272091780054\r
-:100B3000281B20FF1FC0809378008091B100422FB6\r
-:100B40004270882349F08091B9009091BA00242F17\r
-:100B500030E02150310908C08091B9009091BA006D\r
-:100B600021E030E0241B3109820F931F9093BA00DB\r
-:100B70008093B9008091A7009091A800019690936E\r
-:100B8000A8008093A7009F918F914F913F912F9143\r
-:100B90000F900FBE0F901F9018951F920F920FB6D7\r
-:100BA0000F9211248F939F93EF93FF935F9B16C037\r
-:100BB000E091CD00F091CE008CB1808381E0E233F2\r
-:100BC000F80730F43196F093CE00E093CD0006C0E4\r
-:100BD0008FEC90E09093CE008093CD00FF91EF9149\r
-:100BE0009F918F910F900FBE0F901F9018959C01B1\r
-:100BF0008AB188618AB9579A80B5866080BD40E025\r
-:100C000050E084E0220F331F441F551F8A95D1F70F\r
-:100C100060E072E18AE790E00E94520BDA01C901BC\r
-:100C20000197A109B109892F9A2FAB2FBB27A7FDE7\r
-:100C3000BA9580BD215029B98FEC90E09093CC00FB\r
-:100C40008093CB009093CE008093CD0008955D9B60\r
-:100C5000FECFFC0180818CB90895CF93DF931F9262\r
-:100C6000CDB7DEB78983CE0101960E94270680E0CA\r
-:100C700090E00F90DF91CF910895CF93DF93EC0137\r
-:100C8000CE012196FC012081222319F00E94270623\r
-:100C9000F7CFDF91CF9108955F9BFECF8CB190E0AD\r
-:100CA00008950C944C0661E576E08DE296E00C9494\r
-:100CB000A40BCF93DF93FC01E253FF4FA081B181DE\r
-:100CC000EC01C453DF4F28813981A217B307A1F08B\r
-:100CD0005D9B12C02C912CB920813181AC01455310\r
-:100CE0005F4F2417350718F42F5F3F4F03C09C0157\r
-:100CF00028593F4F31832083E091CB00F091CC0005\r
-:100D00002091CD003091CE002E173F07C1F1DC01BC\r
-:100D1000AC59BF4FCD91DC911197208128836D9103\r
-:100D20007C9111979C012B523F4FE9013881EB01D7\r
-:100D30002881321307C09C012C523F4FE9014881A2\r
-:100D40004F5F48839C012D593F4F6217730728F46A\r
-:100D5000EB012196CD93DC9302C08D939C93D1E05F\r
-:100D6000E233FD0730F43196F093CC00E093CB00F2\r
-:100D700006C08FEC90E09093CC008093CB00DF9185\r
-:100D8000CF91089588E087BB8CEF84BB8CEB81BB4F\r
-:100D90001092C90080E895E20E94F7050E94530670\r
-:100DA00080E582B986B78B7E86BF85EC86BF81EFF2\r
-:100DB0008FBD89E08EBD1BBC1ABC19BC18BC89E76D\r
-:100DC00085BD13BC83BF1CBE8EE690E00E94210C43\r
-:100DD00085B78F7885BF84E089BF7894C0E0D8E17B\r
-:100DE0008091CA008F3F39F48091C900853A19F487\r
-:100DF000F894FE0109958091A7009091A8008D308C\r
-:100E0000934030F01092A8001092A7000E94E301D6\r
-:100E10008091C7009091C8002091660030916700D2\r
-:100E200028173907B9F18091C7009091C800892B24\r
-:100E300019F485B38C6017C08091B400811107C08C\r
-:100E40008091C7009091C8001816190654F080913F\r
-:100E5000B400882351F08091C7009091C80097FF9B\r
-:100E600004C085B3837F85BB02C0AA98AB9A8091EA\r
-:100E7000C7009091C80090936700809366008091AE\r
-:100E8000C7009091C80097FF03C091958195910983\r
-:100E90009BBD8ABD8091C5009091C60020916400E1\r
-:100EA0003091650028173907B9F18091C5009091FC\r
-:100EB000C600892B19F485B3806317C08091B300F5\r
-:100EC000811107C08091C5009091C60018161906BF\r
-:100ED00054F08091B300882351F08091C500909127\r
-:100EE000C60097FF04C085B38F7C85BB02C0AC9859\r
-:100EF000AD9A8091C5009091C60090936500809353\r
-:100F000064008091C5009091C60097FF03C0919541\r
-:100F10008195910999BD88BD8091C3009091C400CD\r
-:100F2000209162003091630028173907B1F1809158\r
-:100F3000C3009091C400892B19F485B3806C17C04D\r
-:100F40008091B200811107C08091C3009091C400CC\r
-:100F50001816190654F08091B200882351F0809140\r
-:100F6000C3009091C40097FF04C085B38F7385BB05\r
-:100F700002C0AE98AF9A8091C3009091C400909344\r
-:100F80006300809362008091C3009091C40097FF3A\r
-:100F900003C091958195910983BD8091C100909185\r
-:100FA000C200209160003091610028173907B1F12B\r
-:100FB0008091C1009091C200892B19F482B38C609A\r
-:100FC00017C08091B100811107C08091C10090913C\r
-:100FD000C2001816190654F08091B100882351F010\r
-:100FE0008091C1009091C20097FF04C082B3837FBB\r
-:100FF00082BB02C09298939A8091C1009091C200E6\r
-:1010000090936100809360008091C1009091C20034\r
-:1010100097FF03C09195819591098CBF85B7806832\r
-:1010200085BF889585B78F7785BFDACE6F927F921F\r
-:101030009F92AF92BF92CF92DF92EF92FF920F9367\r
-:101040001F93CF93DF93CDB7DEB72C970FB6F894ED\r
-:10105000DEBF0FBECDBF8C017B013A01FC011782C0\r
-:101060001682838181FF19C1CE0101965C01F801CE\r
-:10107000D380F701D3FC2591D3FE21917F01222358\r
-:1010800009F407C1253249F4D3FC2591D3FE2191FF\r
-:101090007F01253211F0912C1BC0B801822F90E006\r
-:1010A0000E94EF0B63013601E2CF222309F4F1C065\r
-:1010B000622F70E087EA90E02C870E94990B2C85C4\r
-:1010C000892B49F0F701D3FC2591D3FE21917F01B3\r
-:1010D00097FEEBCF0CC0233221F4F92DF0619F2E47\r
-:1010E000F1CF2C3639F4292D2068922EEBCF222314\r
-:1010F00009F4CFC0622F70E080EA90E02C870E9454\r
-:10110000990B2C85892B41F06301F4E0CF0ED11CA3\r
-:10111000B8018FE390E012C0233641F0233789F005\r
-:10112000233521F5F92DF1609F2E0BC0630122E0DC\r
-:10113000C20ED11CB801F301808191810E94EF0B96\r
-:10114000B2CF630122E0C20ED11CF3016080718036\r
-:10115000F30190FC859190FE81913F01882309F471\r
-:10116000A2CFB80190E00E94EF0BF2CF243611F02D\r
-:10117000293639F5630197FE09C0F4E0CF0ED11C82\r
-:10118000F30160817181828193810AC0F2E0CF0E08\r
-:10119000D11CF30160817181882777FD8095982F9C\r
-:1011A000F92DFF7E9F2E97FF09C090958095709531\r
-:1011B00061957F4F8F4F9F4FF0649F2E2AE030E064\r
-:1011C00038C02037A1F040F42835D1F02F3609F08F\r
-:1011D00060C028E030E019C0253719F0283751F0F9\r
-:1011E00058C0292D2F7E922E2AE030E00EC0892D86\r
-:1011F0008061982E992D9462992E20E130E005C0EF\r
-:10120000E92DE4609E2E20E132E0630197FE09C0E3\r
-:10121000F4E0CF0ED11CF301608171818281938152\r
-:1012200008C0F2E0CF0ED11CF3016081718180E033\r
-:1012300090E0A5010E944E0C782E7A1896FE05C00B\r
-:10124000B8018DE290E00E94EF0B94FE16C0FE0103\r
-:10125000E70DF11D8081803381F0B80180E390E0DB\r
-:101260000E94EF0B92FE09C0292D2072822F90E080\r
-:10127000B801885A9F4F0E94EF0B7A94F501E70D51\r
-:10128000F11D8081B80190E00E94EF0B7110F5CF45\r
-:101290000ACFF8018681978102C08FEF9FEF2C96CD\r
-:1012A0000FB6F894DEBF0FBECDBFDF91CF911F9177\r
-:1012B0000F91FF90EF90DF90CF90BF90AF909F90F5\r
-:1012C0007F906F9008955058BB27AA270ED04DC12C\r
-:1012D0003ED130F043D120F031F49F3F11F41EF4A1\r
-:1012E00033C10EF4E095E7FB29C1E92F4FD180F31C\r
-:1012F000BA17620773078407950718F071F49EF513\r
-:1013000067C10EF4E0950B2EBA2FA02D0B01B90189\r
-:1013100090010C01CA01A0011124FF27591B99F06B\r
-:10132000593F50F4503E68F11A16F040A22F232F77\r
-:10133000342F4427585FF3CF469537952795A795C7\r
-:10134000F0405395C9F77EF41F16BA0B620B730B6E\r
-:10135000840BBAF09150A1F0FF0FBB1F661F771FDF\r
-:10136000881FC2F70EC0BA0F621F731F841F48F494\r
-:10137000879577956795B795F7959E3F08F0B3CF1A\r
-:101380009395880F08F09927EE0F97958795089504\r
-:101390000CD0EBC0E3D040F0DAD030F021F45F3F66\r
-:1013A00019F0CCC0511115C1CFC0F0D098F39923DA\r
-:1013B000C9F35523B1F3951B550BBB27AA27621719\r
-:1013C0007307840738F09F5F5F4F220F331F441F5E\r
-:1013D000AA1FA9F333D00E2E3AF0E0E830D0915096\r
-:1013E0005040E695001CCAF729D0FE2F27D0660F83\r
-:1013F000771F881FBB1F261737074807AB07B0E8C2\r
-:1014000009F0BB0B802DBF01FF2793585F4F2AF0D7\r
-:101410009E3F510568F092C0DCC05F3FECF3983E00\r
-:10142000DCF3869577956795B795F7959F5FC9F734\r
-:10143000880F911D9695879597F90895E1E0660FBD\r
-:10144000771F881FBB1F621773078407BA0720F036\r
-:10145000621B730B840BBA0BEE1F88F7E09508959F\r
-:1014600004D06894B111B5C0089598D088F09F5702\r
-:1014700090F0B92F9927B751A0F0D1F0660F771FE0\r
-:10148000881F991F1AF0BA95C9F712C0B13081F0C0\r
-:101490009FD0B1E008959CC0672F782F8827B85F50\r
-:1014A00039F0B93FCCF3869577956795B395D9F721\r
-:1014B0003EF490958095709561957F4F8F4F9F4F2B\r
-:1014C0000895E89409C097FB3EF490958095709537\r
-:1014D00061957F4F8F4F9F4F9923A9F0F92F96E980\r
-:1014E000BB279395F695879577956795B795F111F5\r
-:1014F000F8CFFAF4BB0F11F460FF1BC06F5F7F4F92\r
-:101500008F4F9F4F16C0882311F096E911C07723A3\r
-:1015100021F09EE8872F762F05C0662371F096E8AC\r
-:10152000862F70E060E02AF09A95660F771F881F7B\r
-:10153000DAF7880F9695879597F9089597F99F6739\r
-:1015400080E870E060E008959FEF80EC089500244B\r
-:101550000A941616170618060906089500240A9418\r
-:1015600012161306140605060895092E0394000C9E\r
-:1015700011F4882352F0BB0F40F4BF2B11F460FF2D\r
-:1015800004C06F5F7F4F8F4F9F4F089557FD905856\r
-:10159000440F551F59F05F3F71F04795880F97FB37\r
-:1015A000991F61F09F3F79F08795089512161306F1\r
-:1015B0001406551FF2CF4695F1DF08C01616170620\r
-:1015C0001806991FF1CF8695710561050894089555\r
-:1015D000E894BB2766277727CB0197F908950BD0AE\r
-:1015E000C4CFB5DF28F0BADF18F0952309F0A6CFF5\r
-:1015F000ABCF1124EECFCADFA0F3959FD1F3950FA7\r
-:1016000050E0551F629FF001729FBB27F00DB11D86\r
-:10161000639FAA27F00DB11DAA1F649F6627B00D16\r
-:10162000A11D661F829F2227B00DA11D621F739FFF\r
-:10163000B00DA11D621F839FA00D611D221F749F0D\r
-:101640003327A00D611D231F849F600D211D822F54\r
-:10165000762F6A2F11249F5750408AF0E1F088239B\r
-:101660004AF0EE0FFF1FBB1F661F771F881F9150A8\r
-:101670005040A9F79E3F510570F060CFAACF5F3F61\r
-:10168000ECF3983EDCF3869577956795B795F795DB\r
-:10169000E7959F5FC1F7FE2B880F911D9695879563\r
-:1016A00097F90895052E97FB1EF400940E94690B8C\r
-:1016B00057FD07D00E94770B07FC03D04EF40C9423\r
-:1016C000690B50954095309521953F4F4F4F5F4F97\r
-:1016D000089590958095709561957F4F8F4F9F4F9E\r
-:1016E0000895EE0FFF1F0590F491E02D0994A1E2FB\r
-:1016F0001A2EAA1BBB1BFD010DC0AA1FBB1FEE1F8C\r
-:10170000FF1FA217B307E407F50720F0A21BB30BD6\r
-:10171000E40BF50B661F771F881F991F1A9469F752\r
-:1017200060957095809590959B01AC01BD01CF01AE\r
-:101730000895FC010590061621F00020D9F7C0019C\r
-:1017400008953197CF0108950F931F93CF93DF939F\r
-:10175000EC018B01009731F46115710519F480E0FB\r
-:1017600090E038C06EE070E081E090E00E94AC0C48\r
-:10177000FC010097A1F380E883830115110571F046\r
-:101780001387028781E88383809136019091370126\r
-:10179000892B21F4F0933701E09336012097C9F0AB\r
-:1017A000D187C08783818260838380913801909143\r
-:1017B0003901892B71F4F0933901E093380180915C\r
-:1017C0003A0190913B01892B21F4F0933B01E09386\r
-:1017D0003A01CF01DF91CF911F910F9108950F939F\r
-:1017E0001F93CF93DF93182F092FEB018B8181FD7E\r
-:1017F00003C08FEF9FEF20C082FF10C04E815F813A\r
-:101800002C813D81421753077CF4E881F9819F01C7\r
-:101810002F5F3F4F39832883108306C0E885F98501\r
-:10182000812F0995892B29F72E813F812F5F3F4F0B\r
-:101830003F832E83812F902FDF91CF911F910F91A6\r
-:1018400008950F931F93CF93DF93E0913801F091A8\r
-:101850003901238121FF1BC0EC0100E010E08991D8\r
-:101860006091380170913901DB011896ED91FC917E\r
-:101870001997882331F00995892B89F30FEF1FEF12\r
-:10188000EECF8AE00995892B11F4C80102C08FEFD1\r
-:101890009FEFDF91CF911F910F910895FA01AA2731\r
-:1018A000283051F1203181F1E8946F936E7F6E5FA3\r
-:1018B0007F4F8F4F9F4FAF4FB1E03ED0B4E03CD051\r
-:1018C000670F781F891F9A1FA11D680F791F8A1F34\r
-:1018D000911DA11D6A0F711D811D911DA11D20D09B\r
-:1018E00009F468943F912AE0269F11243019305D55\r
-:1018F0003193DEF6CF010895462F4770405D419346\r
-:10190000B3E00FD0C9F7F6CF462F4F70405D4A3392\r
-:1019100018F0495D31FD4052419302D0A9F7EACF5A\r
-:10192000B4E0A6959795879577956795BA95C9F789\r
-:1019300000976105710508959B01AC010A2E06947C\r
-:101940005795479537952795BA95C9F7620F731F35\r
-:10195000841F951FA01D08950F931F93CF93DF93AE\r
-:10196000869F8001879F100D969F100D1124C8013E\r
-:101970000E94C80CEC01009729F0A80160E070E01B\r
-:101980000E94EF0DCE01DF91CF911F910F9108952D\r
-:10199000CF93DF938230910510F482E090E0E091E4\r
-:1019A0003E01F0913F0120E030E0A0E0B0E0309750\r
-:1019B00039F14081518148175907B8F04817590744\r
-:1019C00071F482819381109729F013969C938E93E2\r
-:1019D00012972CC090933F0180933E0127C02115A0\r
-:1019E000310531F04217530718F0A901DB0101C09E\r
-:1019F000EF019A01BD01DF010280F381E02DD7CF15\r
-:101A000021153105F9F0281B390B2430310580F4FC\r
-:101A10008A819B816115710521F0FB01938382838B\r
-:101A200004C090933F0180933E01FE01329644C072\r
-:101A3000FE01E20FF31F8193919322503109398304\r
-:101A400028833AC020913C0130913D01232B41F481\r
-:101A500020916A0030916B0030933D0120933C014E\r
-:101A600020916800309169002115310541F42DB7AE\r
-:101A70003EB740916C0050916D00241B350BE091F6\r
-:101A80003C01F0913D01E217F307A0F42E1B3F0B40\r
-:101A90002817390778F0AC014E5F5F4F24173507E0\r
-:101AA00048F04E0F5F1F50933D0140933C018193DE\r
-:101AB000919302C0E0E0F0E0CF01DF91CF91089573\r
-:101AC000CF93DF93009709F487C0FC01329713820C\r
-:101AD0001282C0913E01D0913F01209781F4208174\r
-:101AE0003181280F391F80913C0190913D0182176F\r
-:101AF000930779F5F0933D01E0933C016DC0DE0161\r
-:101B000020E030E0AE17BF0750F412964D915C9183\r
-:101B100013979D014115510509F1DA01F3CFB38304\r
-:101B2000A28340815181840F951F8A179B0771F40E\r
-:101B30008D919C911197840F951F029691838083BC\r
-:101B400012968D919C911397938382832115310571\r
-:101B500029F4F0933F01E0933E013EC0D901139672\r
-:101B6000FC93EE9312974D915D91A40FB51FEA1768\r
-:101B7000FB0779F480819181840F951F0296D9012A\r
-:101B800011969C938E938281938113969C938E934E\r
-:101B90001297E0E0F0E08A819B81009719F0FE0146\r
-:101BA000EC01F9CFCE01029628813981820F931F73\r
-:101BB00020913C0130913D012817390769F4309795\r
-:101BC00029F410923F0110923E0102C0138212824A\r
-:101BD000D0933D01C0933C01DF91CF910895DC018A\r
-:101BE00001C06D9341505040E0F70895F894FFCF45\r
-:101BF00000800080008000800000400120000D0A6D\r
-:081C000053746172740D0000C1\r
+:100000000C946C000C9489000C9489000C94890069\r
+:100010000C9489000C9489000C9489000C9489003C\r
+:100020000C9489000C944C050C9489000C94890064\r
+:100030000C9489000C9427060C9489000C94890078\r
+:100040000C9489000C9489000C9489000C948B000A\r
+:100050000C9489008901F1018C01F1018F01F101FA\r
+:100060009101F101F101F101F101F101F101F10160\r
+:100070009301AC019801AC01A201AC01A701AC0154\r
+:10008000F101F101F101F101F101F101F101F101E0\r
+:10009000AF01B401B901BE01C301C801CD01D20154\r
+:1000A000F101F101F101F101F101F101F101F101C0\r
+:1000B000D701DA01DD01E001E301E601E901EC012C\r
+:1000C00045464765666700202B2D2E30313233348C\r
+:1000D000353637383968000011241FBECFE5D8E027\r
+:1000E000DEBFCDBF10E0A0E6B0E0EAE9FCE102C06F\r
+:1000F00005900D92A837B107D9F721E0A8E7B0E045\r
+:1001000001C01D92AF33B207E1F70E941C070C94A7\r
+:100110004B0E0C9400001F920F920FB60F921124F9\r
+:100120002F938F939F93AF93BF93EF93FF9381B1DF\r
+:10013000887F803881F040F4803609F05BC185EC1F\r
+:1001400086BF1092C9005BC1883A09F4D5C0883BCC\r
+:1001500009F4D2C04FC18091C900813209F495C021\r
+:1001600068F5843009F479C060F4813009F4A7C0DF\r
+:1001700008F45EC0823009F464C0833009F49FC083\r
+:1001800031C1873009F49BC090F4853009F497C0E1\r
+:10019000863009F027C183B120919E0090E0922B18\r
+:1001A0009093C3008093C2001092B50018C18830AC\r
+:1001B00009F45FC0803209F482C014C1873209F4A7\r
+:1001C00082C0F0F4843209F47AC098F4823209F4DF\r
+:1001D00076C0833209F006C183B120919E0090E081\r
+:1001E000922B9093AD008093AC0081E08093B60099\r
+:1001F000F6C0853209F456C0863209F460C0F2C0F8\r
+:10020000823909F471C050F4803909F469C0813928\r
+:1002100009F0E8C083B18093B200E1C0833909F4EA\r
+:1002200067C08F3F09F0DEC083B18093C800DAC099\r
+:1002300083B18093C9008091C90081508093C90027\r
+:10024000CEC083B120919E0090E0922B9093C70086\r
+:100250008093C6001092B700C2C083B120919E0067\r
+:1002600090E0922B9093C5008093C4001092B6004A\r
+:10027000B6C083B120919E0090E0922B9093C10074\r
+:100280008093C0001092B400AAC083B120919E0058\r
+:1002900090E0922B9093AF008093AE0081E080932A\r
+:1002A000B7009DC083B120919E0090E0922B909367\r
+:1002B000AB008093AA0081E08093B50090C083B129\r
+:1002C00080939E008CC083B120919E0090E0922B81\r
+:1002D0009093A9008093A80081E08093B4007FC030\r
+:1002E00083B18093B3007BC083B18093B10077C0AA\r
+:1002F00083B18093B00073C08091C90090E0FC018D\r
+:100300003297E633F10508F06CC0E65DFF4F0C94C0\r
+:10031000C60B8AB59BB562C088B599B55FC083B579\r
+:100320005DC08CB75BC08091BE009091BF0004C0DF\r
+:100330008091BC009091BD0090939D0080939C00A3\r
+:1003400093B94DC08091BA009091BB00F5CF8091D8\r
+:10035000B8009091B900F0CF80919C003FC080918F\r
+:10036000AE009091AF00ECCF8091AE009091AF00C5\r
+:1003700035C08091AC009091AD00E2CF8091AC008F\r
+:100380009091AD002BC08091AA009091AB00D8CF86\r
+:100390008091AA009091AB0021C08091A80090911B\r
+:1003A000A900CECF8091A8009091A90017C080919C\r
+:1003B000A60014C08091A50011C08091A4000EC0B9\r
+:1003C0008091A3000BC08091A20008C08091A10081\r
+:1003D00005C08091A00002C080919F0083B985EC88\r
+:1003E00002C013B885E886BF8091C9008F5F8093F3\r
+:1003F000C90005C086B78B7E86BF85EC86BFFF919E\r
+:10040000EF91BF91AF919F918F912F910F900FBE60\r
+:100410000F901F9018954F925F926F927F928F92DC\r
+:100420009F92AF92BF92CF92DF92EF92FF920F9383\r
+:100430001F93CF93DF93CDB7DEB72C970FB6F89409\r
+:10044000DEBF0FBECDBF6091BE007091BF00809136\r
+:100450009A0090919B00681B790B882777FD809507\r
+:10046000982F0E94B80A2AE037ED43E25CE30E942D\r
+:100470001D0A0E94850A6B017C017093A60060939F\r
+:10048000A5008091BE009091BF0090939B00809347\r
+:100490009A006091BC007091BD008091980090918D\r
+:1004A0009900681B790B882777FD8095982F0E940B\r
+:1004B000B80A2AE037ED43E25CE30E941D0A0E947D\r
+:1004C000850A69837A838B839C8389819A8190933F\r
+:1004D000A4008093A3008091BC009091BD009093F4\r
+:1004E0009900809398006091BA007091BB00809150\r
+:1004F000960090919700681B790B882777FD80956F\r
+:10050000982F0E94B80A2AE037ED43E25CE30E948C\r
+:100510001D0A0E94850A6D837E838F839887ED81F3\r
+:10052000FE81F093A200E093A1008091BA00909127\r
+:10053000BB0090939700809396006091B8007091F3\r
+:10054000B9008091940090919500681B790B8827E1\r
+:1005500077FD8095982F0E94B80A2AE037ED43E294\r
+:100560005CE30E941D0A0E94850A69877A878B874F\r
+:100570009C8789859A859093A00080939F008091A5\r
+:10058000B8009091B9009093950080939400809169\r
+:10059000B700813009F095C08091AE009091AF0016\r
+:1005A000892B29F41092C7001092C6008AC00091CE\r
+:1005B000AE001091AF000C191D092801662457FCEC\r
+:1005C0006094762CC0909000D0909100E0909200C2\r
+:1005D000F0909300C40CD51CE61CF71CC092900050\r
+:1005E000D0929100E0929200F09293006091C60048\r
+:1005F0007091C700882777FD8095982F0E94B80AD0\r
+:100600004B015C01C301B2010E94B80A2CEB34E734\r
+:1006100043E15CE30E94440B2B013C01C701B6019E\r
+:100620000E94B80A2BE631ED46E05AE30E94440BE3\r
+:100630009B01AC01C301B2010E94B9096B017C01AD\r
+:1006400080918E0090918F00B801681B790B8827EC\r
+:1006500077FD8095982F0E94B80A2CE234ED4AE18C\r
+:100660005DE30E94440B9B01AC01C701B6010E94EF\r
+:10067000B9099B01AC01C501B4010E94B9090E94EE\r
+:10068000850A7093C7006093C60010938F00009393\r
+:100690008E008091C6009091C7008F3F910521F098\r
+:1006A0001CF08FEF90E009C08091C6009091C700C8\r
+:1006B00081309F4F34F481E09FEF9093C700809387\r
+:1006C000C6008091B600813009F097C08091AC00DF\r
+:1006D0009091AD00892B29F41092C5001092C400AE\r
+:1006E0008CC00091AC001091AD0089819A81081BEB\r
+:1006F000190B2801662457FC6094762CC0908A0060\r
+:10070000D0908B00E0908C00F0908D00C40CD51C34\r
+:10071000E61CF71CC0928A00D0928B00E0928C00FD\r
+:10072000F0928D006091C4007091C500882777FD1C\r
+:100730008095982F0E94B80A4B015C01C301B20159\r
+:100740000E94B80A2CEB34E743E15CE30E94440BBF\r
+:100750002B013C01C701B6010E94B80A2BE631ED1E\r
+:1007600046E05AE30E94440B9B01AC01C301B20175\r
+:100770000E94B9096B017C018091880090918900E9\r
+:10078000B801681B790B882777FD8095982F0E9408\r
+:10079000B80A2CE234ED4AE15DE30E94440B9B0170\r
+:1007A000AC01C701B6010E94B9099B01AC01C501AA\r
+:1007B000B4010E94B9090E94850A7093C500609334\r
+:1007C000C40010938900009388008091C400909128\r
+:1007D000C5008F3F910521F01CF08FEF90E009C01C\r
+:1007E0008091C4009091C50081309F4F34F481E026\r
+:1007F0009FEF9093C5008093C4008091B500813035\r
+:1008000009F097C08091AA009091AB00892B29F440\r
+:100810001092C3001092C2008CC00091AA001091E7\r
+:10082000AB008D819E81081B190B2801662457FCA3\r
+:100830006094762CC0908400D0908500E090860073\r
+:10084000F0908700C40CD51CE61CF71CC0928400F5\r
+:10085000D0928500E0928600F09287006091C200FD\r
+:100860007091C300882777FD8095982F0E94B80A61\r
+:100870004B015C01C301B2010E94B80A2CEB34E7C2\r
+:1008800043E15CE30E94440B2B013C01C701B6012C\r
+:100890000E94B80A2BE631ED46E05AE30E94440B71\r
+:1008A0009B01AC01C301B2010E94B9096B017C013B\r
+:1008B0008091820090918300B801681B790B882792\r
+:1008C00077FD8095982F0E94B80A2CE234ED4AE11A\r
+:1008D0005DE30E94440B9B01AC01C701B6010E947D\r
+:1008E000B9099B01AC01C501B4010E94B9090E947C\r
+:1008F000850A7093C3006093C20010938300009335\r
+:1009000082008091C2009091C3008F3F910521F039\r
+:100910001CF08FEF90E009C08091C2009091C3005D\r
+:1009200081309F4F34F481E09FEF9093C300809318\r
+:10093000C2008091B400813009F097C08091A80076\r
+:100940009091A900892B29F41092C1001092C00047\r
+:100950008CC00091A8001091A90089859A85081B78\r
+:10096000190B4801AA2497FCA094BA2CC0907E00D1\r
+:10097000D0907F00E0908000F0908100C80CD91CDE\r
+:10098000EA1CFB1CC0927E00D0927F00E0928000A7\r
+:10099000F09281006091C0007091C100882777FDBE\r
+:1009A0008095982F0E94B80A2B013C01C501B40123\r
+:1009B0000E94B80A2CEB34E743E15CE30E94440B4D\r
+:1009C0004B015C01C701B6010E94B80A2BE631ED6C\r
+:1009D00046E05AE30E94440B9B01AC01C501B401FF\r
+:1009E0000E94B9096B017C0180917C0090917D008F\r
+:1009F000B801681B790B882777FD8095982F0E9496\r
+:100A0000B80A2CE234ED4AE15DE30E94440B9B01FD\r
+:100A1000AC01C701B6010E94B9099B01AC01C30139\r
+:100A2000B2010E94B9090E94850A7093C1006093C7\r
+:100A3000C00010937D0000937C008091C0009091D5\r
+:100A4000C1008F3F910521F01CF08FEF90E009C0AD\r
+:100A50008091C0009091C10081309F4F34F481E0BB\r
+:100A60009FEF9093C1008093C0002C960FB6F8942E\r
+:100A7000DEBF0FBECDBFDF91CF911F910F91FF90D1\r
+:100A8000EF90DF90CF90BF90AF909F908F907F902E\r
+:100A90006F905F904F9008951F920F920FB60F9234\r
+:100AA00011242F933F934F935F938F939F9399B309\r
+:100AB00090FD02C080E001C083E091FF02C091E0A0\r
+:100AC000892720917B00281B20FF1FC080937B007B\r
+:100AD0008091B300422F4270882349F08091BE007C\r
+:100AE0009091BF00242F30E02150310908C080913F\r
+:100AF000BE009091BF0021E030E0241B3109820F3D\r
+:100B0000931F9093BF008093BE0099B392959F70FE\r
+:100B100090FD02C080E001C083E091FF02C091E03F\r
+:100B2000892720917A00281B20FF1FC080937A001C\r
+:100B30008091B2002270882359F08091BC0090917E\r
+:100B4000BD0041E050E0421B5109840F951F09C0D0\r
+:100B50008091BC009091BD0030E021503109820F9E\r
+:100B6000931F9093BD008093BC0099B39695969582\r
+:100B700090FD02C080E001C083E091FF02C091E0DF\r
+:100B8000892720917900281B20FF1FC080937900BE\r
+:100B90008091B1002270882359F08091BA00909121\r
+:100BA000BB0041E050E0421B5109840F951F09C072\r
+:100BB0008091BA009091BB0030E021503109820F42\r
+:100BC000931F9093BB008093BA0099B3929596952A\r
+:100BD0009695937090FD02C080E001C083E0927012\r
+:100BE00011F091E0892720917800281B20FF1FC079\r
+:100BF000809378008091B000422F4270882349F0A2\r
+:100C00008091B8009091B900242F30E02150310933\r
+:100C100008C08091B8009091B90021E030E0241B19\r
+:100C20003109820F931F9093B9008093B80080918F\r
+:100C3000A7008F5F8093A7009F918F915F914F9145\r
+:100C40003F912F910F900FBE0F901F9018951F92FC\r
+:100C50000F920FB60F9211248F939F93EF93FF93F0\r
+:100C60005F9B16C0E091CC00F091CD008CB18083E9\r
+:100C700081E0E133F80730F43196F093CD00E09352\r
+:100C8000CC0006C08EEC90E09093CD008093CC0019\r
+:100C9000FF91EF919F918F910F900FBE0F901F903A\r
+:100CA00018959C018AB188618AB9579A80B5866087\r
+:100CB00080BD40E050E084E0220F331F441F551FE9\r
+:100CC0008A95D1F760E072E18AE790E00E94A70B75\r
+:100CD000DA01C9010197A109B109892F9A2FAB2F18\r
+:100CE000BB27A7FDBA9580BD215029B98EEC90E0B5\r
+:100CF0009093CB008093CA009093CD008093CC005A\r
+:100D000008955D9BFECFFC0180818CB90895CF933F\r
+:100D1000DF931F92CDB7DEB78983CE0101960E9483\r
+:100D2000810680E090E00F90DF91CF910895CF93FE\r
+:100D3000DF93EC01CE012196FC012081222319F0E2\r
+:100D40000E948106F7CFDF91CF9108955F9BFECF80\r
+:100D50008CB190E008950C94A6066BEA76E087E8E3\r
+:100D600096E00C94F90BCF93DF93FC01E253FF4F15\r
+:100D7000A081B181EC01C453DF4F28813981A217D2\r
+:100D8000B307A1F05D9B12C02C912CB92081318159\r
+:100D9000AC0145535F4F2417350718F42F5F3F4FC1\r
+:100DA00003C09C0128593F4F31832083E091CA0042\r
+:100DB000F091CB002091CC003091CD002E173F0751\r
+:100DC000C1F1DC01AC59BF4FCD91DC91119720816D\r
+:100DD00028836D917C9111979C012B523F4FE90123\r
+:100DE0003881EB012881321307C09C012C523F4F00\r
+:100DF000E90148814F5F48839C012D593F4F62179D\r
+:100E0000730728F4EB012196CD93DC9302C08D93F8\r
+:100E10009C93D1E0E133FD0730F43196F093CB00A1\r
+:100E2000E093CA0006C08EEC90E09093CB008093D4\r
+:100E3000CA00DF91CF91089588E087BB8CEF84BB17\r
+:100E40008CEB81BB1092C80080E895E20E945106AD\r
+:100E50000E94AD0680E582B986B78B7E86BF85ECA1\r
+:100E600086BF81EF8FBD89E08EBD1BBC1ABC19BC4B\r
+:100E700018BC89E785BD13BC83BF1CBE8EE690E01D\r
+:100E80000E94760C85B78F7885BF84E089BF7894FF\r
+:100E9000C0E0D8E18091C9008F3F39F48091C8004B\r
+:100EA000853A19F4F894FE0109958091A7008C39D0\r
+:100EB00020F01092A7000E940B028091C600909132\r
+:100EC000C700209166003091670028173907B9F1F3\r
+:100ED0008091C6009091C700892B19F485B38C606E\r
+:100EE00017C08091B300811107C08091C600909116\r
+:100EF000C7001816190654F08091B300882351F0EA\r
+:100F00008091C6009091C70097FF04C085B3837F8E\r
+:100F100085BB02C0AA98AB9A8091C6009091C70089\r
+:100F200090936700809366008091C6009091C700FF\r
+:100F300097FF03C09195819591099BBD8ABD8091D2\r
+:100F4000C4009091C500209164003091650028177D\r
+:100F50003907B9F18091C4009091C500892B19F42B\r
+:100F600085B3806317C08091B200811107C0809162\r
+:100F7000C4009091C5001816190654F08091B20073\r
+:100F8000882351F08091C4009091C50097FF04C060\r
+:100F900085B38F7C85BB02C0AC98AD9A8091C400AC\r
+:100FA0009091C50090936500809364008091C40087\r
+:100FB0009091C50097FF03C091958195910999BDC6\r
+:100FC00088BD8091C2009091C30020916200309151\r
+:100FD000630028173907B1F18091C2009091C300D6\r
+:100FE000892B19F485B3806C17C08091B1008111F1\r
+:100FF00007C08091C2009091C3001816190654F0E2\r
+:101000008091B100882351F08091C2009091C3007B\r
+:1010100097FF04C085B38F7385BB02C0AE98AF9AAB\r
+:101020008091C2009091C30090936300809362000E\r
+:101030008091C2009091C30097FF03C09195819564\r
+:10104000910983BD8091C0009091C1002091600002\r
+:101050003091610028173907B1F18091C00090915B\r
+:10106000C100892B19F482B38C6017C08091B00045\r
+:10107000811107C08091C0009091C1001816190617\r
+:1010800054F08091B000882351F08091C00090917D\r
+:10109000C10097FF04C082B3837F82BB02C09298D5\r
+:1010A000939A8091C0009091C100909361008093C9\r
+:1010B00060008091C0009091C10097FF03C091959E\r
+:1010C000819591098CBF85B7806885BF889585B764\r
+:1010D0008F7785BFDFCE6F927F929F92AF92BF9244\r
+:1010E000CF92DF92EF92FF920F931F93CF93DF93F4\r
+:1010F000CDB7DEB72C970FB6F894DEBF0FBECDBFCD\r
+:101100008C017B013A01FC0117821682838181FFE9\r
+:1011100019C1CE0101965C01F801D380F701D3FC1F\r
+:101120002591D3FE21917F01222309F407C12532A5\r
+:1011300049F4D3FC2591D3FE21917F01253211F092\r
+:10114000912C1BC0B801822F90E00E94440C6301D7\r
+:101150003601E2CF222309F4F1C0622F70E087EC60\r
+:1011600090E02C870E94EE0B2C85892B49F0F7012B\r
+:10117000D3FC2591D3FE21917F0197FEEBCF0CC0CC\r
+:10118000233221F4F92DF0619F2EF1CF2C3639F462\r
+:10119000292D2068922EEBCF222309F4CFC0622F95\r
+:1011A00070E080EC90E02C870E94EE0B2C85892B60\r
+:1011B00041F06301F4E0CF0ED11CB8018FE390E061\r
+:1011C00012C0233641F0233789F0233521F5F92D5C\r
+:1011D000F1609F2E0BC0630122E0C20ED11CB8014A\r
+:1011E000F301808191810E94440CB2CF630122E01F\r
+:1011F000C20ED11CF30160807180F30190FC8591D7\r
+:1012000090FE81913F01882309F4A2CFB80190E0BC\r
+:101210000E94440CF2CF243611F0293639F56301CF\r
+:1012200097FE09C0F4E0CF0ED11CF30160817181FB\r
+:10123000828193810AC0F2E0CF0ED11CF30160815C\r
+:101240007181882777FD8095982FF92DFF7E9F2E3D\r
+:1012500097FF09C090958095709561957F4F8F4F4E\r
+:101260009F4FF0649F2E2AE030E038C02037A1F075\r
+:1012700040F42835D1F02F3609F060C028E030E086\r
+:1012800019C0253719F0283751F058C0292D2F7E65\r
+:10129000922E2AE030E00EC0892D8061982E992D83\r
+:1012A0009462992E20E130E005C0E92DE4609E2E85\r
+:1012B00020E132E0630197FE09C0F4E0CF0ED11CBB\r
+:1012C000F301608171818281938108C0F2E0CF0EC9\r
+:1012D000D11CF3016081718180E090E0A5010E9442\r
+:1012E000A30C782E7A1896FE05C0B8018DE290E026\r
+:1012F0000E94440C94FE16C0FE01E70DF11D808192\r
+:10130000803381F0B80180E390E00E94440C92FEAB\r
+:1013100009C0292D2072822F90E0B801885A9F4F72\r
+:101320000E94440C7A94F501E70DF11D8081B8010B\r
+:1013300090E00E94440C7110F5CF0ACFF80186812D\r
+:10134000978102C08FEF9FEF2C960FB6F894DEBF07\r
+:101350000FBECDBFDF91CF911F910F91FF90EF9006\r
+:10136000DF90CF90BF90AF909F907F906F90089547\r
+:101370005058BB27AA270ED04DC13ED130F043D1E3\r
+:1013800020F031F49F3F11F41EF433C10EF4E095C8\r
+:10139000E7FB29C1E92F4FD180F3BA176207730722\r
+:1013A0008407950718F071F49EF567C10EF4E09577\r
+:1013B0000B2EBA2FA02D0B01B90190010C01CA010F\r
+:1013C000A0011124FF27591B99F0593F50F4503EBA\r
+:1013D00068F11A16F040A22F232F342F4427585FAC\r
+:1013E000F3CF469537952795A795F0405395C9F7C4\r
+:1013F0007EF41F16BA0B620B730B840BBAF091507C\r
+:10140000A1F0FF0FBB1F661F771F881FC2F70EC01A\r
+:10141000BA0F621F731F841F48F4879577956795ED\r
+:10142000B795F7959E3F08F0B3CF9395880F08F0D6\r
+:101430009927EE0F9795879508950CD0EBC0E3D0D0\r
+:1014400040F0DAD030F021F45F3F19F0CCC05111F8\r
+:1014500015C1CFC0F0D098F39923C9F35523B1F348\r
+:10146000951B550BBB27AA2762177307840738F013\r
+:101470009F5F5F4F220F331F441FAA1FA9F333D072\r
+:101480000E2E3AF0E0E830D091505040E695001C26\r
+:10149000CAF729D0FE2F27D0660F771F881FBB1FE2\r
+:1014A000261737074807AB07B0E809F0BB0B802DBC\r
+:1014B000BF01FF2793585F4F2AF09E3F510568F008\r
+:1014C00092C0DCC05F3FECF3983EDCF386957795E5\r
+:1014D0006795B795F7959F5FC9F7880F911D96950A\r
+:1014E000879597F90895E1E0660F771F881FBB1F66\r
+:1014F000621773078407BA0720F0621B730B840B13\r
+:10150000BA0BEE1F88F7E095089504D06894B111E6\r
+:10151000B5C0089598D088F09F5790F0B92F9927BB\r
+:10152000B751A0F0D1F0660F771F881F991F1AF0EE\r
+:10153000BA95C9F712C0B13081F09FD0B1E00895DB\r
+:101540009CC0672F782F8827B85F39F0B93FCCF35C\r
+:10155000869577956795B395D9F73EF490958095E4\r
+:10156000709561957F4F8F4F9F4F0895E89409C004\r
+:1015700097FB3EF490958095709561957F4F8F4FC6\r
+:101580009F4F9923A9F0F92F96E9BB279395F695DC\r
+:10159000879577956795B795F111F8CFFAF4BB0F5A\r
+:1015A00011F460FF1BC06F5F7F4F8F4F9F4F16C0BE\r
+:1015B000882311F096E911C0772321F09EE8872F48\r
+:1015C000762F05C0662371F096E8862F70E060E004\r
+:1015D0002AF09A95660F771F881FDAF7880F96957D\r
+:1015E000879597F9089597F99F6780E870E060E024\r
+:1015F00008959FEF80EC089500240A9416161706AC\r
+:1016000018060906089500240A94121613061406F3\r
+:1016100005060895092E0394000C11F4882352F056\r
+:10162000BB0F40F4BF2B11F460FF04C06F5F7F4F0E\r
+:101630008F4F9F4F089557FD9058440F551F59F0F5\r
+:101640005F3F71F04795880F97FB991F61F09F3FAF\r
+:1016500079F087950895121613061406551FF2CFD8\r
+:101660004695F1DF08C0161617061806991FF1CF28\r
+:1016700086957105610508940895E894BB2766274F\r
+:101680007727CB0197F908950BD0C4CFB5DF28F0A9\r
+:10169000BADF18F0952309F0A6CFABCF1124EECF17\r
+:1016A000CADFA0F3959FD1F3950F50E0551F629FBD\r
+:1016B000F001729FBB27F00DB11D639FAA27F00DAB\r
+:1016C000B11DAA1F649F6627B00DA11D661F829FD2\r
+:1016D0002227B00DA11D621F739FB00DA11D621FB7\r
+:1016E000839FA00D611D221F749F3327A00D611DD4\r
+:1016F000231F849F600D211D822F762F6A2F1124B6\r
+:101700009F5750408AF0E1F088234AF0EE0FFF1F08\r
+:10171000BB1F661F771F881F91505040A9F79E3F3F\r
+:10172000510570F060CFAACF5F3FECF3983EDCF339\r
+:10173000869577956795B795F795E7959F5FC1F77C\r
+:10174000FE2B880F911D9695879597F90895052E84\r
+:1017500097FB1EF400940E94BE0B57FD07D00E9419\r
+:10176000CC0B07FC03D04EF40C94BE0B5095409567\r
+:10177000309521953F4F4F4F5F4F0895909580953D\r
+:10178000709561957F4F8F4F9F4F0895EE0FFF1F0C\r
+:101790000590F491E02D0994A1E21A2EAA1BBB1B1F\r
+:1017A000FD010DC0AA1FBB1FEE1FFF1FA217B3072D\r
+:1017B000E407F50720F0A21BB30BE40BF50B661F43\r
+:1017C000771F881F991F1A9469F760957095809507\r
+:1017D00090959B01AC01BD01CF010895FC010590DE\r
+:1017E000061621F00020D9F7C00108953197CF01E6\r
+:1017F00008950F931F93CF93DF93EC018B01009714\r
+:1018000031F46115710519F480E090E038C06EE0A4\r
+:1018100070E081E090E00E94010DFC010097A1F3CF\r
+:1018200080E883830115110571F01387028781E831\r
+:1018300083838091350190913601892B21F4F093B7\r
+:101840003601E09335012097C9F0D187C0878381A5\r
+:10185000826083838091370190913801892B71F4E4\r
+:10186000F0933801E09337018091390190913A016A\r
+:10187000892B21F4F0933A01E0933901CF01DF91F4\r
+:10188000CF911F910F9108950F931F93CF93DF93E3\r
+:10189000182F092FEB018B8181FD03C08FEF9FEF84\r
+:1018A00020C082FF10C04E815F812C813D81421794\r
+:1018B00053077CF4E881F9819F012F5F3F4F398303\r
+:1018C0002883108306C0E885F985812F0995892B27\r
+:1018D00029F72E813F812F5F3F4F3F832E83812F3A\r
+:1018E000902FDF91CF911F910F9108950F931F9328\r
+:1018F000CF93DF93E0913701F0913801238121FFED\r
+:101900001BC0EC0100E010E08991609137017091FB\r
+:101910003801DB011896ED91FC911997882331F07D\r
+:101920000995892B89F30FEF1FEFEECF8AE0099518\r
+:10193000892B11F4C80102C08FEF9FEFDF91CF9187\r
+:101940001F910F910895FA01AA27283051F12031F3\r
+:1019500081F1E8946F936E7F6E5F7F4F8F4F9F4F43\r
+:10196000AF4FB1E03ED0B4E03CD0670F781F891F85\r
+:101970009A1FA11D680F791F8A1F911DA11D6A0F53\r
+:10198000711D811D911DA11D20D009F468943F9106\r
+:101990002AE0269F11243019305D3193DEF6CF0105\r
+:1019A0000895462F4770405D4193B3E00FD0C9F7CB\r
+:1019B000F6CF462F4F70405D4A3318F0495D31FD38\r
+:1019C0004052419302D0A9F7EACFB4E0A69597958B\r
+:1019D000879577956795BA95C9F700976105710561\r
+:1019E00008959B01AC010A2E0694579547953795AB\r
+:1019F0002795BA95C9F7620F731F841F951FA01D05\r
+:101A000008950F931F93CF93DF93869F8001879F45\r
+:101A1000100D969F100D1124C8010E941D0DEC01A0\r
+:101A2000009729F0A80160E070E00E94440ECE010A\r
+:101A3000DF91CF911F910F910895CF93DF93823063\r
+:101A4000910510F482E090E0E0913D01F0913E01BB\r
+:101A500020E030E0A0E0B0E0309739F140815181E2\r
+:101A600048175907B8F04817590771F482819381D4\r
+:101A7000109729F013969C938E9312972CC09093F5\r
+:101A80003E0180933D0127C02115310531F04217F9\r
+:101A9000530718F0A901DB0101C0EF019A01BD0154\r
+:101AA000DF010280F381E02DD7CF21153105F9F058\r
+:101AB000281B390B2430310580F48A819B81611504\r
+:101AC000710521F0FB019383828304C090933E0152\r
+:101AD00080933D01FE01329644C0FE01E20FF31FE8\r
+:101AE0008193919322503109398328833AC0209100\r
+:101AF0003B0130913C01232B41F420916A0030914D\r
+:101B00006B0030933C0120933B01209168003091A1\r
+:101B100069002115310541F42DB73EB740916C00A5\r
+:101B200050916D00241B350BE0913B01F0913C017D\r
+:101B3000E217F307A0F42E1B3F0B2817390778F0A4\r
+:101B4000AC014E5F5F4F2417350748F04E0F5F1F03\r
+:101B500050933C0140933B018193919302C0E0E09C\r
+:101B6000F0E0CF01DF91CF910895CF93DF930097FD\r
+:101B700009F487C0FC01329713821282C0913D01A3\r
+:101B8000D0913E01209781F420813181280F391FA7\r
+:101B900080913B0190913C018217930779F5F09376\r
+:101BA0003C01E0933B016DC0DE0120E030E0AE1768\r
+:101BB000BF0750F412964D915C9113979D0141150A\r
+:101BC000510509F1DA01F3CFB383A283408151813A\r
+:101BD000840F951F8A179B0771F48D919C91119723\r
+:101BE000840F951F02969183808312968D919C910C\r
+:101BF0001397938382832115310529F4F0933E01D5\r
+:101C0000E0933D013EC0D9011396FC93EE931297E9\r
+:101C10004D915D91A40FB51FEA17FB0779F4808100\r
+:101C20009181840F951F0296D90111969C938E93F2\r
+:101C30008281938113969C938E931297E0E0F0E05B\r
+:101C40008A819B81009719F0FE01EC01F9CFCE014A\r
+:101C5000029628813981820F931F20913B01309198\r
+:101C60003C012817390769F4309729F410923E0196\r
+:101C700010923D0102C013821282D0933C01C093A6\r
+:101C80003B01DF91CF910895DC0101C06D9341507C\r
+:0A1C90005040E0F70895F894FFCFEC\r
+:101C9A00008000800080008000003F0120000D0AC3\r
+:081CAA0053746172740D000017\r
 :00000001FF\r
 :00000001FF\r