diff --git a/leakage_system/MDK-ARM/RTE/_leakage_system/RTE_Components.h b/leakage_system/MDK-ARM/RTE/_leakage_system/RTE_Components.h
index 153dac0..0246594 100644
--- a/leakage_system/MDK-ARM/RTE/_leakage_system/RTE_Components.h
+++ b/leakage_system/MDK-ARM/RTE/_leakage_system/RTE_Components.h
@@ -11,11 +11,5 @@
#define RTE_COMPONENTS_H
-/*
- * Define the Device Header File:
- */
-#define CMSIS_device_header "stm32f4xx.h"
-
-
#endif /* RTE_COMPONENTS_H */
diff --git a/leakage_system/MDK-ARM/leakage_system.uvguix.22639 b/leakage_system/MDK-ARM/leakage_system.uvguix.22639
index 2b58833..8103346 100644
--- a/leakage_system/MDK-ARM/leakage_system.uvguix.22639
+++ b/leakage_system/MDK-ARM/leakage_system.uvguix.22639
@@ -78,11 +78,11 @@
- 1
- 1
+ 0
+ 0
0
- 0
- -1
+ 50
+ 16
@@ -101,17 +101,17 @@
-1
- 181
- 209
- 2404
- 1437
+ 91
+ 623
+ 2392
+ 1186
0
- 256
- 0100000004000000010000000100000001000000010000000000000002000000000000000100000001000000000000002800000028000000010000000100000000000000010000003D443A5C776F726B5C636F64655C6769745C4C65616B6167652D436F6E74726F6C5C6C65616B6167655F73797374656D5C7573725C6170705C6170702E6300000000056170702E6300000000C5D4F200FFFFFFFF0100000010000000C5D4F200FFDC7800BECEA100F0A0A100BCA8E1009CC1B600F7B88600D9ADC200A5C2D700B3A6BE00EAD6A300F6FA7D00B5E99D005FC3CF00C1838300CACAD5000100000000000000020000001D020000230100005C090000BA040000
+ 356
+ 01000000040000000100000001000000010000000100000000000000020000000000000001000000010000000000000028000000280000000100000002000000010000000100000045443A5C776F726B5C636F64655C6769745C4C65616B6167652D436F6E74726F6C5C6C65616B6167655F73797374656D5C7573725C6170705C6170705F6C65616B6167652E63000000000D6170705F6C65616B6167652E6300000000C5D4F200FFFFFFFF3D443A5C776F726B5C636F64655C6769745C4C65616B6167652D436F6E74726F6C5C6C65616B6167655F73797374656D5C7573725C6170705C6170702E6300000000056170702E6300000000FFDC7800FFFFFFFF0100000010000000C5D4F200FFDC7800BECEA100F0A0A100BCA8E1009CC1B600F7B88600D9ADC200A5C2D700B3A6BE00EAD6A300F6FA7D00B5E99D005FC3CF00C1838300CACAD500010000000000000002000000BB030000C900000050090000BF030000
@@ -134,7 +134,7 @@
16
- 3C00000053000000F403000017010000
+ BB030000C9000000E70900008D010000
@@ -150,7 +150,7 @@
0
16
- 03000000660000003D010000CD030000
+ 03000000660000003D0100002C030000
16
@@ -170,7 +170,7 @@
0
16
- 03000000660000003D010000CD030000
+ 03000000660000003D0100002C030000
16
@@ -190,7 +190,7 @@
0
16
- 000000000103000070070000C5030000
+ 03000000040300006D070000AC030000
16
@@ -210,7 +210,7 @@
0
16
- 03000000040300006D07000098030000
+ 03000000040300006D070000AC030000
16
@@ -230,7 +230,7 @@
0
16
- 03000000040300006D07000098030000
+ 03000000040300006D070000AC030000
16
@@ -250,7 +250,7 @@
0
16
- 03000000040300006D07000098030000
+ 03000000040300006D070000AC030000
16
@@ -270,7 +270,7 @@
0
16
- 33060000660000006D07000047010000
+ 33060000660000006D070000E4020000
16
@@ -330,7 +330,7 @@
0
16
- 03000000040300006D07000098030000
+ 03000000040300006D070000AC030000
16
@@ -350,7 +350,7 @@
0
16
- 03000000040300006D07000098030000
+ 03000000040300006D070000AC030000
16
@@ -370,7 +370,7 @@
0
16
- 03000000040300006D07000098030000
+ 03000000040300006D070000AC030000
16
@@ -390,7 +390,7 @@
0
16
- 03000000040300006D07000098030000
+ 03000000040300006D070000AC030000
16
@@ -410,7 +410,7 @@
0
16
- 03000000040300006D07000098030000
+ 03000000040300006D070000AC030000
16
@@ -430,7 +430,7 @@
0
16
- 03000000040300006D07000098030000
+ 03000000040300006D070000AC030000
16
@@ -450,7 +450,7 @@
0
16
- 03000000660000003D010000CD030000
+ 03000000660000003D0100002C030000
16
@@ -470,7 +470,7 @@
0
16
- 03000000660000003D010000CD030000
+ 03000000660000003D0100002C030000
16
@@ -490,7 +490,7 @@
0
16
- 00000000FE03000083080000AE040000
+ 0300000060030000D6060000F4030000
16
@@ -520,7 +520,7 @@
199
199
- 0
+ 1
0
0
0
@@ -530,7 +530,7 @@
0
16
- 03000000010400006D07000095040000
+ 0300000060030000D6060000F4030000
16
@@ -550,7 +550,7 @@
0
16
- 44010000630000007007000013010000
+ 47010000660000006D070000FA000000
16
@@ -610,7 +610,7 @@
0
16
- 300600006300000070070000FD020000
+ 33060000660000006D070000E4020000
16
@@ -630,7 +630,7 @@
0
16
- 000000000103000070070000B1030000
+ 03000000040300006D070000AC030000
16
@@ -690,7 +690,7 @@
0
16
- 44010000630000007007000013010000
+ 47010000660000006D070000FA000000
16
@@ -730,7 +730,7 @@
0
16
- 33060000660000006D0700001C020000
+ 33060000660000006D070000E4020000
16
@@ -750,7 +750,7 @@
0
16
- 33060000660000006D0700001C020000
+ 33060000660000006D070000E4020000
16
@@ -770,7 +770,7 @@
0
16
- 33060000660000006D0700001C020000
+ 33060000660000006D070000E4020000
16
@@ -790,7 +790,7 @@
0
16
- 33060000660000006D0700001C020000
+ 33060000660000006D070000E4020000
16
@@ -810,7 +810,7 @@
0
16
- 33060000660000006D0700001C020000
+ 33060000660000006D070000E4020000
16
@@ -830,7 +830,7 @@
0
16
- 33060000660000006D0700001C020000
+ 33060000660000006D070000E4020000
16
@@ -850,7 +850,7 @@
0
16
- 33060000660000006D0700001C020000
+ 33060000660000006D070000E4020000
16
@@ -870,7 +870,7 @@
0
16
- 33060000660000006D0700001C020000
+ 33060000660000006D070000E4020000
16
@@ -890,7 +890,7 @@
0
16
- 33060000660000006D0700001C020000
+ 33060000660000006D070000E4020000
16
@@ -910,7 +910,7 @@
0
16
- 33060000660000006D0700001C020000
+ 33060000660000006D070000E4020000
16
@@ -930,7 +930,7 @@
0
16
- 33060000660000006D0700001C020000
+ 33060000660000006D070000E4020000
16
@@ -950,7 +950,7 @@
0
16
- 33060000660000006D0700001C020000
+ 33060000660000006D070000E4020000
16
@@ -970,7 +970,7 @@
0
16
- 33060000660000006D0700001C020000
+ 33060000660000006D070000E4020000
16
@@ -990,7 +990,7 @@
0
16
- 33060000660000006D0700001C020000
+ 33060000660000006D070000E4020000
16
@@ -1010,7 +1010,7 @@
0
16
- 33060000660000006D0700001C020000
+ 33060000660000006D070000E4020000
16
@@ -1030,7 +1030,7 @@
0
16
- 33060000660000006D0700001C020000
+ 33060000660000006D070000E4020000
16
@@ -1050,7 +1050,7 @@
0
16
- 33060000660000006D0700001C020000
+ 33060000660000006D070000E4020000
16
@@ -1070,7 +1070,7 @@
0
16
- 33060000660000006D0700001C020000
+ 33060000660000006D070000E4020000
16
@@ -1090,7 +1090,7 @@
0
16
- 33060000660000006D0700001C020000
+ 33060000660000006D070000E4020000
16
@@ -1110,7 +1110,7 @@
0
16
- 33060000660000006D0700001C020000
+ 33060000660000006D070000E4020000
16
@@ -1130,7 +1130,7 @@
0
16
- 33060000660000006D0700001C020000
+ 33060000660000006D070000E4020000
16
@@ -1150,7 +1150,7 @@
0
16
- 03000000660000003D010000AC030000
+ 03000000660000003D0100002C030000
16
@@ -1160,7 +1160,7 @@
38007
38007
- 0
+ 1
0
0
0
@@ -1170,7 +1170,7 @@
0
16
- 00000000FE03000070070000AE040000
+ 0300000060030000D6060000F4030000
16
@@ -1190,7 +1190,7 @@
0
16
- 03000000010400006D07000095040000
+ 0300000060030000D6060000F4030000
16
@@ -1210,7 +1210,7 @@
0
16
- 03000000040300006D07000098030000
+ 03000000040300006D070000AC030000
16
@@ -1230,7 +1230,7 @@
0
16
- 03000000040300006D07000098030000
+ 03000000040300006D070000AC030000
16
@@ -1250,7 +1250,7 @@
0
16
- 03000000010400006D07000095040000
+ 0300000060030000D6060000F4030000
16
@@ -1270,7 +1270,7 @@
0
16
- 03000000010400006D07000095040000
+ 0300000060030000D6060000F4030000
16
@@ -1310,7 +1310,7 @@
0
16
- 33060000660000006D0700001C020000
+ 33060000660000006D070000E4020000
16
@@ -1330,7 +1330,7 @@
0
16
- 33060000660000006D0700001C020000
+ 33060000660000006D070000E4020000
16
@@ -1350,7 +1350,7 @@
0
16
- 33060000660000006D0700001C020000
+ 33060000660000006D070000E4020000
16
@@ -1370,7 +1370,7 @@
0
16
- 33060000660000006D0700001C020000
+ 33060000660000006D070000E4020000
16
@@ -1390,7 +1390,7 @@
0
16
- 33060000660000006D0700001C020000
+ 33060000660000006D070000E4020000
16
@@ -1410,7 +1410,7 @@
0
16
- 33060000660000006D0700001C020000
+ 33060000660000006D070000E4020000
16
@@ -1430,7 +1430,7 @@
0
16
- 33060000660000006D0700001C020000
+ 33060000660000006D070000E4020000
16
@@ -1450,7 +1450,7 @@
0
16
- 33060000660000006D0700001C020000
+ 33060000660000006D070000E4020000
16
@@ -1470,7 +1470,7 @@
0
16
- 33060000660000006D0700001C020000
+ 33060000660000006D070000E4020000
16
@@ -1490,7 +1490,7 @@
0
16
- 33060000660000006D0700001C020000
+ 33060000660000006D070000E4020000
16
@@ -1510,7 +1510,7 @@
0
16
- 33060000660000006D0700001C020000
+ 33060000660000006D070000E4020000
16
@@ -1530,7 +1530,7 @@
0
16
- 33060000660000006D0700001C020000
+ 33060000660000006D070000E4020000
16
@@ -1550,7 +1550,7 @@
0
16
- 33060000660000006D0700001C020000
+ 33060000660000006D070000E4020000
16
@@ -1570,7 +1570,7 @@
0
16
- 33060000660000006D0700001C020000
+ 33060000660000006D070000E4020000
16
@@ -1590,7 +1590,7 @@
0
16
- 33060000660000006D0700001C020000
+ 33060000660000006D070000E4020000
16
@@ -1610,7 +1610,7 @@
0
16
- 33060000660000006D0700001C020000
+ 33060000660000006D070000E4020000
16
@@ -1630,7 +1630,7 @@
0
16
- 33060000660000006D0700001C020000
+ 33060000660000006D070000E4020000
16
@@ -1650,7 +1650,7 @@
0
16
- 33060000660000006D0700001C020000
+ 33060000660000006D070000E4020000
16
@@ -1670,7 +1670,7 @@
0
16
- 33060000660000006D0700001C020000
+ 33060000660000006D070000E4020000
16
@@ -1690,7 +1690,7 @@
0
16
- 33060000660000006D0700001C020000
+ 33060000660000006D070000E4020000
16
@@ -1704,7 +1704,7 @@
0
0
0
- 32767
+ 966
0
8192
0
@@ -1730,7 +1730,7 @@
0
16
- 00000000AE04000083080000C1040000
+ 000000000D040000D906000020040000
16
@@ -1744,7 +1744,7 @@
0
0
0
- 32767
+ 476
0
8192
1
@@ -1764,7 +1764,7 @@
0
0
0
- 32767
+ 612
0
8192
2
@@ -1790,7 +1790,7 @@
0
16
- 03000000040300006D07000098030000
+ 03000000040300006D070000AC030000
16
@@ -1799,14 +1799,14 @@
3312
- 000000000B000000000000000020000000000000FFFFFFFFFFFFFFFF44010000130100007007000017010000000000000100001004000000010000000000000000000000FFFFFFFF08000000CB00000057010000CC000000F08B00005A01000079070000D601000045890000FFFF02000B004354616262656450616E6500200000000000003C00000053000000F403000017010000440100004F00000070070000130100000000000040280046080000000B446973617373656D626C7900000000CB00000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A6572000000005701000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A657200000000CC00000001000000FFFFFFFFFFFFFFFF0E4C6F67696320416E616C797A657200000000F08B000001000000FFFFFFFFFFFFFFFF0D436F646520436F766572616765000000005A01000001000000FFFFFFFFFFFFFFFF11496E737472756374696F6E205472616365000000007907000001000000FFFFFFFFFFFFFFFF0F53797374656D20416E616C797A657200000000D601000001000000FFFFFFFFFFFFFFFF104576656E742053746174697374696373000000004589000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFCB00000001000000FFFFFFFFCB000000000000000040000000000000FFFFFFFFFFFFFFFF2C0600004F00000030060000FD020000000000000200001004000000010000000000000000000000FFFFFFFF2B000000E2050000CA0900002D8C00002E8C00002F8C0000308C0000318C0000328C0000338C0000348C0000358C0000368C0000378C0000388C0000398C00003A8C00003B8C00003C8C00003D8C00003E8C00003F8C0000408C0000418C000050C3000051C3000052C3000053C3000054C3000055C3000056C3000057C3000058C3000059C300005AC300005BC300005CC300005DC300005EC300005FC3000060C3000061C3000062C3000063C30000018000400000000000003C000000530000007C01000064010000300600004F00000070070000FD02000000000000404100462B0000000753796D626F6C7300000000E205000001000000FFFFFFFFFFFFFFFF0A5472616365204461746100000000CA09000001000000FFFFFFFFFFFFFFFF00000000002D8C000001000000FFFFFFFFFFFFFFFF00000000002E8C000001000000FFFFFFFFFFFFFFFF00000000002F8C000001000000FFFFFFFFFFFFFFFF0000000000308C000001000000FFFFFFFFFFFFFFFF0000000000318C000001000000FFFFFFFFFFFFFFFF0000000000328C000001000000FFFFFFFFFFFFFFFF0000000000338C000001000000FFFFFFFFFFFFFFFF0000000000348C000001000000FFFFFFFFFFFFFFFF0000000000358C000001000000FFFFFFFFFFFFFFFF0000000000368C000001000000FFFFFFFFFFFFFFFF0000000000378C000001000000FFFFFFFFFFFFFFFF0000000000388C000001000000FFFFFFFFFFFFFFFF0000000000398C000001000000FFFFFFFFFFFFFFFF00000000003A8C000001000000FFFFFFFFFFFFFFFF00000000003B8C000001000000FFFFFFFFFFFFFFFF00000000003C8C000001000000FFFFFFFFFFFFFFFF00000000003D8C000001000000FFFFFFFFFFFFFFFF00000000003E8C000001000000FFFFFFFFFFFFFFFF00000000003F8C000001000000FFFFFFFFFFFFFFFF0000000000408C000001000000FFFFFFFFFFFFFFFF0000000000418C000001000000FFFFFFFFFFFFFFFF000000000050C3000001000000FFFFFFFFFFFFFFFF000000000051C3000001000000FFFFFFFFFFFFFFFF000000000052C3000001000000FFFFFFFFFFFFFFFF000000000053C3000001000000FFFFFFFFFFFFFFFF000000000054C3000001000000FFFFFFFFFFFFFFFF000000000055C3000001000000FFFFFFFFFFFFFFFF000000000056C3000001000000FFFFFFFFFFFFFFFF000000000057C3000001000000FFFFFFFFFFFFFFFF000000000058C3000001000000FFFFFFFFFFFFFFFF000000000059C3000001000000FFFFFFFFFFFFFFFF00000000005AC3000001000000FFFFFFFFFFFFFFFF00000000005BC3000001000000FFFFFFFFFFFFFFFF00000000005CC3000001000000FFFFFFFFFFFFFFFF00000000005DC3000001000000FFFFFFFFFFFFFFFF00000000005EC3000001000000FFFFFFFFFFFFFFFF00000000005FC3000001000000FFFFFFFFFFFFFFFF000000000060C3000001000000FFFFFFFFFFFFFFFF000000000061C3000001000000FFFFFFFFFFFFFFFF000000000062C3000001000000FFFFFFFFFFFFFFFF000000000063C3000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFE205000001000000FFFFFFFFE2050000000000000010000001000000FFFFFFFFFFFFFFFF400100004F00000044010000E6030000010000000200001004000000010000000000000000000000FFFFFFFF05000000ED0300006D000000C3000000C400000073940000018000100000010000003C000000530000007C01000064010000000000004F00000040010000E60300000000000040410056050000000750726F6A65637401000000ED03000001000000FFFFFFFFFFFFFFFF05426F6F6B73010000006D00000001000000FFFFFFFFFFFFFFFF0946756E6374696F6E7301000000C300000001000000FFFFFFFFFFFFFFFF0954656D706C6174657301000000C400000001000000FFFFFFFFFFFFFFFF09526567697374657273000000007394000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFED03000001000000FFFFFFFFED030000000000000080000000000000FFFFFFFFFFFFFFFF00000000E902000070070000ED02000000000000010000100400000001000000000000000000000000000000000000000000000001000000C6000000FFFFFFFF0F0000008F070000930700009407000095070000960700009007000091070000B5010000B801000038030000B9050000BA050000BB050000BC050000CB090000018000800000000000003C000000530000007C0100006401000000000000ED02000070070000C503000000000000404100460F0000001343616C6C20537461636B202B204C6F63616C73000000008F07000001000000FFFFFFFFFFFFFFFF0755415254202331000000009307000001000000FFFFFFFFFFFFFFFF0755415254202332000000009407000001000000FFFFFFFFFFFFFFFF0755415254202333000000009507000001000000FFFFFFFFFFFFFFFF15446562756720287072696E74662920566965776572000000009607000001000000FFFFFFFFFFFFFFFF0757617463682031000000009007000001000000FFFFFFFFFFFFFFFF0757617463682032000000009107000001000000FFFFFFFFFFFFFFFF10547261636520457863657074696F6E7300000000B501000001000000FFFFFFFFFFFFFFFF0E4576656E7420436F756E7465727300000000B801000001000000FFFFFFFFFFFFFFFF09554C494E4B706C7573000000003803000001000000FFFFFFFFFFFFFFFF084D656D6F7279203100000000B905000001000000FFFFFFFFFFFFFFFF084D656D6F7279203200000000BA05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203300000000BB05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203400000000BC05000001000000FFFFFFFFFFFFFFFF105472616365204E617669676174696F6E00000000CB09000001000000FFFFFFFFFFFFFFFFFFFFFFFF0000000001000000000000000000000001000000FFFFFFFFB8030000ED020000BC030000C503000000000000020000000400000000000000000000000000000000000000000000000000000002000000C6000000FFFFFFFF8F07000001000000FFFFFFFF8F07000001000000C6000000000000000080000001000000FFFFFFFFFFFFFFFF00000000E603000083080000EA030000010000000100001004000000010000000000000000000000FFFFFFFF06000000C5000000C7000000B4010000D2010000CF01000077940000018000800000010000003C00000053000000F40300001701000000000000EA03000083080000AE0400000000000040820056060000000C4275696C64204F757470757401000000C500000001000000FFFFFFFFFFFFFFFF0D46696E6420496E2046696C657300000000C700000001000000FFFFFFFFFFFFFFFF0A4572726F72204C69737400000000B401000001000000FFFFFFFFFFFFFFFF0E536F757263652042726F7773657200000000D201000001000000FFFFFFFFFFFFFFFF0E416C6C205265666572656E63657300000000CF01000001000000FFFFFFFFFFFFFFFF0742726F77736572000000007794000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFC500000001000000FFFFFFFFC5000000000000000000000000000000
+ 000000000B000000000000000020000000000000FFFFFFFFFFFFFFFF44010000130100007007000017010000000000000100000004000000010000000000000000000000FFFFFFFF08000000CB00000057010000CC000000F08B00005A01000079070000D601000045890000FFFF02000B004354616262656450616E650020000000000000BB030000C9000000E70900008D010000440100004F00000070070000130100000000000040280046080000000B446973617373656D626C7900000000CB00000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A6572000000005701000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A657200000000CC00000001000000FFFFFFFFFFFFFFFF0E4C6F67696320416E616C797A657200000000F08B000001000000FFFFFFFFFFFFFFFF0D436F646520436F766572616765000000005A01000001000000FFFFFFFFFFFFFFFF11496E737472756374696F6E205472616365000000007907000001000000FFFFFFFFFFFFFFFF0F53797374656D20416E616C797A657200000000D601000001000000FFFFFFFFFFFFFFFF104576656E742053746174697374696373000000004589000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFCB00000001000000FFFFFFFFCB000000000000000040000000000000FFFFFFFFFFFFFFFF2C0600004F00000030060000FD020000000000000200000004000000010000000000000000000000FFFFFFFF2B000000E2050000CA0900002D8C00002E8C00002F8C0000308C0000318C0000328C0000338C0000348C0000358C0000368C0000378C0000388C0000398C00003A8C00003B8C00003C8C00003D8C00003E8C00003F8C0000408C0000418C000050C3000051C3000052C3000053C3000054C3000055C3000056C3000057C3000058C3000059C300005AC300005BC300005CC300005DC300005EC300005FC3000060C3000061C3000062C3000063C3000001800040000000000000A7080000C9000000E709000077030000300600004F00000070070000FD02000000000000404100462B0000000753796D626F6C7300000000E205000001000000FFFFFFFFFFFFFFFF0A5472616365204461746100000000CA09000001000000FFFFFFFFFFFFFFFF00000000002D8C000001000000FFFFFFFFFFFFFFFF00000000002E8C000001000000FFFFFFFFFFFFFFFF00000000002F8C000001000000FFFFFFFFFFFFFFFF0000000000308C000001000000FFFFFFFFFFFFFFFF0000000000318C000001000000FFFFFFFFFFFFFFFF0000000000328C000001000000FFFFFFFFFFFFFFFF0000000000338C000001000000FFFFFFFFFFFFFFFF0000000000348C000001000000FFFFFFFFFFFFFFFF0000000000358C000001000000FFFFFFFFFFFFFFFF0000000000368C000001000000FFFFFFFFFFFFFFFF0000000000378C000001000000FFFFFFFFFFFFFFFF0000000000388C000001000000FFFFFFFFFFFFFFFF0000000000398C000001000000FFFFFFFFFFFFFFFF00000000003A8C000001000000FFFFFFFFFFFFFFFF00000000003B8C000001000000FFFFFFFFFFFFFFFF00000000003C8C000001000000FFFFFFFFFFFFFFFF00000000003D8C000001000000FFFFFFFFFFFFFFFF00000000003E8C000001000000FFFFFFFFFFFFFFFF00000000003F8C000001000000FFFFFFFFFFFFFFFF0000000000408C000001000000FFFFFFFFFFFFFFFF0000000000418C000001000000FFFFFFFFFFFFFFFF000000000050C3000001000000FFFFFFFFFFFFFFFF000000000051C3000001000000FFFFFFFFFFFFFFFF000000000052C3000001000000FFFFFFFFFFFFFFFF000000000053C3000001000000FFFFFFFFFFFFFFFF000000000054C3000001000000FFFFFFFFFFFFFFFF000000000055C3000001000000FFFFFFFFFFFFFFFF000000000056C3000001000000FFFFFFFFFFFFFFFF000000000057C3000001000000FFFFFFFFFFFFFFFF000000000058C3000001000000FFFFFFFFFFFFFFFF000000000059C3000001000000FFFFFFFFFFFFFFFF00000000005AC3000001000000FFFFFFFFFFFFFFFF00000000005BC3000001000000FFFFFFFFFFFFFFFF00000000005CC3000001000000FFFFFFFFFFFFFFFF00000000005DC3000001000000FFFFFFFFFFFFFFFF00000000005EC3000001000000FFFFFFFFFFFFFFFF00000000005FC3000001000000FFFFFFFFFFFFFFFF000000000060C3000001000000FFFFFFFFFFFFFFFF000000000061C3000001000000FFFFFFFFFFFFFFFF000000000062C3000001000000FFFFFFFFFFFFFFFF000000000063C3000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFE205000001000000FFFFFFFFE2050000000000000010000001000000FFFFFFFFFFFFFFFF400100004F0000004401000045030000010000000200001004000000010000000000000000000000FFFFFFFF05000000ED0300006D000000C3000000C4000000739400000180001000000100000077020000C9000000B7030000BF030000000000004F00000040010000450300000000000040410056050000000750726F6A65637401000000ED03000001000000FFFFFFFFFFFFFFFF05426F6F6B73010000006D00000001000000FFFFFFFFFFFFFFFF0946756E6374696F6E7301000000C300000001000000FFFFFFFFFFFFFFFF0954656D706C6174657301000000C400000001000000FFFFFFFFFFFFFFFF09526567697374657273000000007394000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFED03000001000000FFFFFFFFED030000000000000080000000000000FFFFFFFFFFFFFFFF00000000E902000070070000ED02000000000000010000000400000001000000000000000000000000000000000000000000000001000000C6000000FFFFFFFF0F0000008F070000930700009407000095070000960700009007000091070000B5010000B801000038030000B9050000BA050000BB050000BC050000CB090000018000800000000000007702000067030000E70900003F04000000000000ED02000070070000C503000000000000404100460F0000001343616C6C20537461636B202B204C6F63616C73000000008F07000001000000FFFFFFFFFFFFFFFF0755415254202331000000009307000001000000FFFFFFFFFFFFFFFF0755415254202332000000009407000001000000FFFFFFFFFFFFFFFF0755415254202333000000009507000001000000FFFFFFFFFFFFFFFF15446562756720287072696E74662920566965776572000000009607000001000000FFFFFFFFFFFFFFFF0757617463682031000000009007000001000000FFFFFFFFFFFFFFFF0757617463682032000000009107000001000000FFFFFFFFFFFFFFFF10547261636520457863657074696F6E7300000000B501000001000000FFFFFFFFFFFFFFFF0E4576656E7420436F756E7465727300000000B801000001000000FFFFFFFFFFFFFFFF09554C494E4B706C7573000000003803000001000000FFFFFFFFFFFFFFFF084D656D6F7279203100000000B905000001000000FFFFFFFFFFFFFFFF084D656D6F7279203200000000BA05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203300000000BB05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203400000000BC05000001000000FFFFFFFFFFFFFFFF105472616365204E617669676174696F6E00000000CB09000001000000FFFFFFFFFFFFFFFFFFFFFFFF0000000001000000000000000000000001000000FFFFFFFFB8030000ED020000BC030000C503000000000000020000000400000000000000000000000000000000000000000000000000000002000000C6000000FFFFFFFF8F07000001000000FFFFFFFF8F07000001000000C6000000000000000080000001000000FFFFFFFFFFFFFFFF0000000045030000D906000049030000010000000100001004000000010000000000000000000000FFFFFFFF06000000C5000000C7000000B4010000D2010000CF010000779400000180008000000100000077020000C303000050090000870400000000000049030000D90600000D0400000000000040820056060000000C4275696C64204F757470757401000000C500000001000000FFFFFFFFFFFFFFFF0D46696E6420496E2046696C657301000000C700000001000000FFFFFFFFFFFFFFFF0A4572726F72204C69737400000000B401000001000000FFFFFFFFFFFFFFFF0E536F757263652042726F7773657200000000D201000001000000FFFFFFFFFFFFFFFF0E416C6C205265666572656E63657300000000CF01000001000000FFFFFFFFFFFFFFFF0742726F77736572010000007794000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFC500000001000000FFFFFFFFC5000000000000000000000000000000
59392
File
- 2624
- 00200000010000002800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000040004000000000000000000000000000000000100000001000000018022E100000000040005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000004000700000000000000000000000000000000010000000100000001802CE10000000004000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000000000900000000000000000000000000000000010000000100000001807B8A0000000004000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000004000C0000000000000000000000000000000001000000010000000180F4B00000000004000D000000000000000000000000000000000100000001000000018036B10000000004000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF88000000000400460000000000000000000000000000000001000000010000000180FE880000000004004500000000000000000000000000000000010000000100000001800B810000000004001300000000000000000000000000000000010000000100000001800C810000000004001400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F0880000020000000F000000000000000000000000000000000100000001000000FFFF0100120043555646696E64436F6D626F427574746F6EE80300000000000000000000000000000000000000000000000100000001000000960000000200205000000000156775695F746A635F686D695F6D61696E5F73656E6496000000000000000300156775695F746A635F686D695F6D61696E5F73656E64146273705F57353530305F536F636B65745F5365740A49525F54494D454F5554000000000000000000000000018024E10000000000001100000000000000000000000000000000010000000100000001800A810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E2280000002000000150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B46350000000000000000000000000100000001000000000000000000000001000000020021802280000000000000150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B4635000000000000000000000000010000000100000000000000000000000100000000002180E0010000000000007500000021456E65726779204D6561737572656D656E742026776974686F75742044656275670000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000000160000000000000000000000000000000001000000010000000180C988000000000400180000000000000000000000000000000001000000010000000180C788000000000000190000000000000000000000000000000001000000010000002180C8880000000000001700000027264B696C6C20416C6C20427265616B706F696E747320696E2043757272656E7420546172676574000000000000000000000000010000000100000000000000000000000100000003002180C8880000000000001700000027264B696C6C20416C6C20427265616B706F696E747320696E2043757272656E7420546172676574000000000000000000000000010000000100000000000000000000000100000000002180E50100000000000078000000264B696C6C20416C6C20427265616B706F696E747320696E204163746976652050726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180E601000000000000790000002F4B696C6C20416C6C20427265616B706F696E747320696E204D756C74692D50726F6A65637420576F726B73706163650000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000021804C010000020001001A0000000F2650726F6A6563742057696E646F77000000000000000000000000010000000100000000000000000000000100000008002180DD880000000000001A0000000750726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180DC8B0000000000003A00000005426F6F6B73000000000000000000000000010000000100000000000000000000000100000000002180E18B0000000000003B0000000946756E6374696F6E73000000000000000000000000010000000100000000000000000000000100000000002180E28B000000000000400000000954656D706C6174657300000000000000000000000001000000010000000000000000000000010000000000218018890000000000003D0000000E536F757263652042726F777365720000000000000000000000000100000001000000000000000000000001000000000021800000000000000400FFFFFFFF00000000000000000000000000010000000100000000000000000000000100000000002180D988000000000000390000000C4275696C64204F7574707574000000000000000000000000010000000100000000000000000000000100000000002180E38B000000000000410000000B46696E64204F75747075740000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001B000000000000000000000000000000000100000001000000000000000446696C65FF7F0000
+ 2590
+ 00200000010000002800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000040004000000000000000000000000000000000100000001000000018022E100000000040005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000004000700000000000000000000000000000000010000000100000001802CE10000000004000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000000000900000000000000000000000000000000010000000100000001807B8A0000000004000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000004000C0000000000000000000000000000000001000000010000000180F4B00000000004000D000000000000000000000000000000000100000001000000018036B10000000004000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF88000000000400460000000000000000000000000000000001000000010000000180FE880000000004004500000000000000000000000000000000010000000100000001800B810000000004001300000000000000000000000000000000010000000100000001800C810000000004001400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F0880000020000000F000000000000000000000000000000000100000001000000FFFF0100120043555646696E64436F6D626F427574746F6EE8030000000000000000000000000000000000000000000000010000000100000096000000020020500000000018686973746F72795F6164645F616C61726D5F7265636F72649600000000000000010018686973746F72795F6164645F616C61726D5F7265636F726400000000018024E10000000000001100000000000000000000000000000000010000000100000001800A810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E2280000002000000150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B46350000000000000000000000000100000001000000000000000000000001000000020021802280000000000000150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B4635000000000000000000000000010000000100000000000000000000000100000000002180E0010000000000007500000021456E65726779204D6561737572656D656E742026776974686F75742044656275670000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000000160000000000000000000000000000000001000000010000000180C988000000000400180000000000000000000000000000000001000000010000000180C788000000000000190000000000000000000000000000000001000000010000002180C8880000000000001700000027264B696C6C20416C6C20427265616B706F696E747320696E2043757272656E7420546172676574000000000000000000000000010000000100000000000000000000000100000003002180C8880000000000001700000027264B696C6C20416C6C20427265616B706F696E747320696E2043757272656E7420546172676574000000000000000000000000010000000100000000000000000000000100000000002180E50100000000000078000000264B696C6C20416C6C20427265616B706F696E747320696E204163746976652050726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180E601000000000000790000002F4B696C6C20416C6C20427265616B706F696E747320696E204D756C74692D50726F6A65637420576F726B73706163650000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000021804C010000020001001A0000000F2650726F6A6563742057696E646F77000000000000000000000000010000000100000000000000000000000100000008002180DD880000000000001A0000000750726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180DC8B0000000000003A00000005426F6F6B73000000000000000000000000010000000100000000000000000000000100000000002180E18B0000000000003B0000000946756E6374696F6E73000000000000000000000000010000000100000000000000000000000100000000002180E28B000000000000400000000954656D706C6174657300000000000000000000000001000000010000000000000000000000010000000000218018890000000000003D0000000E536F757263652042726F777365720000000000000000000000000100000001000000000000000000000001000000000021800000000000000400FFFFFFFF00000000000000000001000000000000000100000000000000000000000100000000002180D988000000000000390000000C4275696C64204F7574707574000000000000000000000000010000000100000000000000000000000100000000002180E38B000000000000410000000B46696E64204F75747075740000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001B000000000000000000000000000000000100000001000000000000000446696C65C6030000
1423
@@ -1822,7 +1822,7 @@
Build
988
- 00200000010000001000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F0000000000001C0000000000000000000000000000000001000000010000000180D07F0000000000001D000000000000000000000000000000000100000001000000018030800000000000001E000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6EC7040000000000006A0000000C4261746368204275696C2664000000000000000000000000010000000100000000000000000000000100000004000580C7040000000000006A0000000C4261746368204275696C266400000000000000000000000001000000010000000000000000000000010000000000058046070000000000006B0000000D42617463682052656275696C640000000000000000000000000100000001000000000000000000000001000000000005804707000000000000FFFFFFFF0B426174636820436C65616E0100000000000000000000000100000001000000000000000000000001000000000005809E8A0000000000001F0000000F4261746326682053657475702E2E2E000000000000000000000000010000000100000000000000000000000100000000000180D17F0000000004002000000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001804C8A0000000000002100000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001900434D4643546F6F6C426172436F6D626F426F78427574746F6EBA00000000000000000000000000000000000000000000000001000000010000009600000003002050000000000E6C65616B6167655F73797374656D960000000000000001000E6C65616B6167655F73797374656D000000000180EB880000000000002200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C07F000000000000230000000000000000000000000000000001000000010000000180B08A000000000400240000000000000000000000000000000001000000010000000180A8010000000000004E00000000000000000000000000000000010000000100000001807202000000000000530000000000000000000000000000000001000000010000000180BE010000000000005000000000000000000000000000000000010000000100000000000000054275696C64FF7F0000
+ 00200000010000001000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F0000000000001C0000000000000000000000000000000001000000010000000180D07F0000000000001D000000000000000000000000000000000100000001000000018030800000000000001E000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6EC7040000000000006A0000000C4261746368204275696C2664000000000000000000000000010000000100000000000000000000000100000004000580C7040000000000006A0000000C4261746368204275696C266400000000000000000000000001000000010000000000000000000000010000000000058046070000000000006B0000000D42617463682052656275696C640000000000000000000000000100000001000000000000000000000001000000000005804707000000000000FFFFFFFF0B426174636820436C65616E0100000000000000000000000100000001000000000000000000000001000000000005809E8A0000000000001F0000000F4261746326682053657475702E2E2E000000000000000000000000010000000100000000000000000000000100000000000180D17F0000000004002000000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001804C8A0000000000002100000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001900434D4643546F6F6C426172436F6D626F426F78427574746F6EBA00000000000000000000000000000000000000000000000001000000010000009600000003002050000000000E6C65616B6167655F73797374656D960000000000000001000E6C65616B6167655F73797374656D000000000180EB880000000000002200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C07F000000000000230000000000000000000000000000000001000000010000000180B08A000000000400240000000000000000000000000000000001000000010000000180A8010000000000004E00000000000000000000000000000000010000000100000001807202000000000000530000000000000000000000000000000001000000010000000180BE010000000000005000000000000000000000000000000000010000000100000000000000054275696C64DC010000
583
@@ -1838,7 +1838,1748 @@
Debug
2373
- 00200000000000001900FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000000002500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000000002600000000000000000000000000000000010000000100000001801D800000000000002700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000000002800000000000000000000000000000000010000000100000001801B80000000000000290000000000000000000000000000000001000000010000000180E57F0000000000002A00000000000000000000000000000000010000000100000001801C800000000000002B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000000002C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B0000000000002D0000000000000000000000000000000001000000010000000180F07F0000000000002E0000000000000000000000000000000001000000010000000180E8880000000000003700000000000000000000000000000000010000000100000001803B010000000000002F0000000000000000000000000000000001000000010000000180BB8A00000000000030000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E0E01000000000000310000000D57617463682057696E646F7773000000000000000000000000010000000100000000000000000000000100000003001380D88B00000000000031000000085761746368202631000000000000000000000000010000000100000000000000000000000100000000001380D98B00000000000031000000085761746368202632000000000000000000000000010000000100000000000000000000000100000000001380CE01000000000000FFFFFFFF0C576174636820416E63686F720100000000000000000000000100000001000000000000000000000001000000000013800F01000000000000320000000E4D656D6F72792057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380D28B00000000000032000000094D656D6F7279202631000000000000000000000000010000000100000000000000000000000100000000001380D38B00000000000032000000094D656D6F7279202632000000000000000000000000010000000100000000000000000000000100000000001380D48B00000000000032000000094D656D6F7279202633000000000000000000000000010000000100000000000000000000000100000000001380D58B00000000000032000000094D656D6F72792026340000000000000000000000000100000001000000000000000000000001000000000013801001000000000000330000000E53657269616C2057696E646F77730000000000000000000000000100000001000000000000000000000001000000040013809307000000000000330000000855415254202326310000000000000000000000000100000001000000000000000000000001000000000013809407000000000000330000000855415254202326320000000000000000000000000100000001000000000000000000000001000000000013809507000000000000330000000855415254202326330000000000000000000000000100000001000000000000000000000001000000000013809607000000000000330000001626446562756720287072696E746629205669657765720000000000000000000000000100000001000000000000000000000001000000000013803C010000000000007200000010416E616C797369732057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380658A000000000000340000000F264C6F67696320416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380DC7F0000000000003E0000001526506572666F726D616E636520416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380E788000000000000380000000E26436F646520436F766572616765000000000000000000000000010000000100000000000000000000000100000000001380CD01000000000000FFFFFFFF0F416E616C7973697320416E63686F7201000000000000000000000001000000010000000000000000000000010000000000138053010000000000003F0000000D54726163652057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013805401000000000000FFFFFFFF115472616365204D656E7520416E63686F720100000000000000000000000100000001000000000000000000000001000000000013802901000000000000350000001553797374656D205669657765722057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013804B01000000000000FFFFFFFF1453797374656D2056696577657220416E63686F720100000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000013800189000000000000360000000F26546F6F6C626F782057696E646F7700000000000000000000000001000000010000000000000000000000010000000300138044C5000000000000FFFFFFFF0E5570646174652057696E646F77730100000000000000000000000100000001000000000000000000000001000000000013800000000000000400FFFFFFFF000000000000000000000000000100000001000000000000000000000001000000000013805B01000000000000FFFFFFFF12546F6F6C626F78204D656E75416E63686F720100000000000000000000000100000001000000000000000000000001000000000000000000054465627567FF7F0000
+ 00200000000000001900FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000000002500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000000002600000000000000000000000000000000010000000100000001801D800000000000002700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000000002800000000000000000000000000000000010000000100000001801B80000000000000290000000000000000000000000000000001000000010000000180E57F0000000000002A00000000000000000000000000000000010000000100000001801C800000000000002B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000000002C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B0000000000002D0000000000000000000000000000000001000000010000000180F07F0000000000002E0000000000000000000000000000000001000000010000000180E8880000000000003700000000000000000000000000000000010000000100000001803B010000000000002F0000000000000000000000000000000001000000010000000180BB8A00000000000030000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E0E01000000000000310000000D57617463682057696E646F7773000000000000000000000000010000000100000000000000000000000100000003001380D88B00000000000031000000085761746368202631000000000000000000000000010000000100000000000000000000000100000000001380D98B00000000000031000000085761746368202632000000000000000000000000010000000100000000000000000000000100000000001380CE01000000000000FFFFFFFF0C576174636820416E63686F720100000000000000010000000000000001000000000000000000000001000000000013800F01000000000000320000000E4D656D6F72792057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380D28B00000000000032000000094D656D6F7279202631000000000000000000000000010000000100000000000000000000000100000000001380D38B00000000000032000000094D656D6F7279202632000000000000000000000000010000000100000000000000000000000100000000001380D48B00000000000032000000094D656D6F7279202633000000000000000000000000010000000100000000000000000000000100000000001380D58B00000000000032000000094D656D6F72792026340000000000000000000000000100000001000000000000000000000001000000000013801001000000000000330000000E53657269616C2057696E646F77730000000000000000000000000100000001000000000000000000000001000000040013809307000000000000330000000855415254202326310000000000000000000000000100000001000000000000000000000001000000000013809407000000000000330000000855415254202326320000000000000000000000000100000001000000000000000000000001000000000013809507000000000000330000000855415254202326330000000000000000000000000100000001000000000000000000000001000000000013809607000000000000330000001626446562756720287072696E746629205669657765720000000000000000000000000100000001000000000000000000000001000000000013803C010000000000007200000010416E616C797369732057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380658A000000000000340000000F264C6F67696320416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380DC7F0000000000003E0000001526506572666F726D616E636520416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380E788000000000000380000000E26436F646520436F766572616765000000000000000000000000010000000100000000000000000000000100000000001380CD01000000000000FFFFFFFF0F416E616C7973697320416E63686F7201000000000000000100000000000000010000000000000000000000010000000000138053010000000000003F0000000D54726163652057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013805401000000000000FFFFFFFF115472616365204D656E7520416E63686F720100000000000000010000000000000001000000000000000000000001000000000013802901000000000000350000001553797374656D205669657765722057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013804B01000000000000FFFFFFFF1453797374656D2056696577657220416E63686F720100000000000000010000000000000001000000000000000000000001000000000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000013800189000000000000360000000F26546F6F6C626F782057696E646F7700000000000000000000000001000000010000000000000000000000010000000300138044C5000000000000FFFFFFFF0E5570646174652057696E646F77730100000000000000010000000000000001000000000000000000000001000000000013800000000000000400FFFFFFFF000000000000000000010000000000000001000000000000000000000001000000000013805B01000000000000FFFFFFFF12546F6F6C626F78204D656E75416E63686F72010000000000000001000000000000000100000000000000000000000100000000000000000005446562756764020000
+
+
+ 898
+ 1900FFFF01001100434D4643546F6F6C426172427574746F6ECC88000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001801780000000000000FFFFFFFF00010000000000000001000000000000000100000001801D80000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001801A80000000000000FFFFFFFF00010000000000000001000000000000000100000001801B80000000000000FFFFFFFF0001000000000000000100000000000000010000000180E57F000000000000FFFFFFFF00010000000000000001000000000000000100000001801C80000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001800089000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180E48B000000000000FFFFFFFF0001000000000000000100000000000000010000000180F07F000000000000FFFFFFFF0001000000000000000100000000000000010000000180E888000000000000FFFFFFFF00010000000000000001000000000000000100000001803B01000000000000FFFFFFFF0001000000000000000100000000000000010000000180BB8A000000000000FFFFFFFF0001000000000000000100000000000000010000000180D88B000000000000FFFFFFFF0001000000000000000100000000000000010000000180D28B000000000000FFFFFFFF00010000000000000001000000000000000100000001809307000000000000FFFFFFFF0001000000000000000100000000000000010000000180658A000000000000FFFFFFFF0001000000000000000100000000000000010000000180C18A000000000000FFFFFFFF0001000000000000000100000000000000010000000180EE8B000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001800189000000000000FFFFFFFF000100000000000000010000000000000001000000
+
+
+ 898
+ 1900FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000000000000000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000000000100000000000000000000000000000000010000000100000001801D800000000000000200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000000000300000000000000000000000000000000010000000100000001801B80000000000000040000000000000000000000000000000001000000010000000180E57F0000000000000500000000000000000000000000000000010000000100000001801C800000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000000000700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B000000000000080000000000000000000000000000000001000000010000000180F07F000000000000090000000000000000000000000000000001000000010000000180E8880000000000000A00000000000000000000000000000000010000000100000001803B010000000000000B0000000000000000000000000000000001000000010000000180BB8A0000000000000C0000000000000000000000000000000001000000010000000180D88B0000000000000D0000000000000000000000000000000001000000010000000180D28B0000000000000E000000000000000000000000000000000100000001000000018093070000000000000F0000000000000000000000000000000001000000010000000180658A000000000000100000000000000000000000000000000001000000010000000180C18A000000000000110000000000000000000000000000000001000000010000000180EE8B0000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180018900000000000013000000000000000000000000000000000100000001000000
+
+
+
+ 0
+ 2560
+ 1440
+
+
+
+ 1
+ Debug
+
+ -1
+ -1
+ 1
+ 0
+ 0
+ 0
+ 32767
+ 0
+ 4096
+ 0
+
+ 16
+ 3607000017010000000A00006A040000
+
+
+ 16
+ 3607000066000000000A000081040000
+
+
+
+ 1005
+ 1005
+ 1
+ 0
+ 0
+ 0
+ 32767
+ 0
+ 4096
+ 0
+
+ 16
+ 03000000660000003D01000051040000
+
+
+ 16
+ 7000000087000000B001000098010000
+
+
+
+ 109
+ 109
+ 0
+ 0
+ 0
+ 0
+ 32767
+ 0
+ 4096
+ 0
+
+ 16
+ 03000000660000003D01000051040000
+
+
+ 16
+ 7000000087000000EC0100009B030000
+
+
+
+ 1465
+ 1465
+ 1
+ 0
+ 0
+ 0
+ 32767
+ 0
+ 32768
+ 0
+
+ 16
+ 390700002E010000FD09000051040000
+
+
+ 16
+ 320D000022030000E6100000FA030000
+
+
+
+ 1466
+ 1466
+ 0
+ 0
+ 0
+ 0
+ 32767
+ 0
+ 32768
+ 0
+
+ 16
+ 390700002E010000FD09000019050000
+
+
+ 16
+ 320D000022030000E6100000FA030000
+
+
+
+ 1467
+ 1467
+ 0
+ 0
+ 0
+ 0
+ 32767
+ 0
+ 32768
+ 0
+
+ 16
+ 390700002E010000FD09000019050000
+
+
+ 16
+ 320D000022030000E6100000FA030000
+
+
+
+ 1468
+ 1468
+ 0
+ 0
+ 0
+ 0
+ 32767
+ 0
+ 32768
+ 0
+
+ 16
+ 390700002E010000FD09000019050000
+
+
+ 16
+ 320D000022030000E6100000FA030000
+
+
+
+ 1506
+ 1506
+ 0
+ 0
+ 0
+ 0
+ 32767
+ 0
+ 16384
+ 0
+
+ 16
+ 33060000660000006D070000E4020000
+
+
+ 16
+ 7000000087000000B001000098010000
+
+
+
+ 1913
+ 1913
+ 0
+ 0
+ 0
+ 0
+ 32767
+ 0
+ 4096
+ 0
+
+ 16
+ 4701000066000000D6060000FA000000
+
+
+ 16
+ 7000000087000000280400004B010000
+
+
+
+ 1935
+ 1935
+ 1
+ 0
+ 0
+ 0
+ 32767
+ 0
+ 32768
+ 0
+
+ 16
+ 390700002E010000FD09000051040000
+
+
+ 16
+ 320D000022030000E6100000FA030000
+
+
+
+ 1936
+ 1936
+ 1
+ 0
+ 0
+ 0
+ 32767
+ 0
+ 32768
+ 0
+
+ 16
+ 390700002E010000FD09000051040000
+
+
+ 16
+ 320D000022030000E6100000FA030000
+
+
+
+ 1937
+ 1937
+ 0
+ 0
+ 0
+ 0
+ 32767
+ 0
+ 32768
+ 0
+
+ 16
+ 390700002E010000FD09000019050000
+
+
+ 16
+ 320D000022030000E6100000FA030000
+
+
+
+ 1939
+ 1939
+ 0
+ 0
+ 0
+ 0
+ 32767
+ 0
+ 32768
+ 0
+
+ 16
+ 390700002E010000FD09000019050000
+
+
+ 16
+ 320D000022030000E6100000FA030000
+
+
+
+ 1940
+ 1940
+ 0
+ 0
+ 0
+ 0
+ 32767
+ 0
+ 32768
+ 0
+
+ 16
+ 390700002E010000FD09000019050000
+
+
+ 16
+ 320D000022030000E6100000FA030000
+
+
+
+ 1941
+ 1941
+ 0
+ 0
+ 0
+ 0
+ 32767
+ 0
+ 32768
+ 0
+
+ 16
+ 390700002E010000FD09000019050000
+
+
+ 16
+ 320D000022030000E6100000FA030000
+
+
+
+ 1942
+ 1942
+ 0
+ 0
+ 0
+ 0
+ 32767
+ 0
+ 32768
+ 0
+
+ 16
+ 390700002E010000FD09000019050000
+
+
+ 16
+ 320D000022030000E6100000FA030000
+
+
+
+ 195
+ 195
+ 0
+ 0
+ 0
+ 0
+ 32767
+ 0
+ 4096
+ 0
+
+ 16
+ 03000000660000003D01000051040000
+
+
+ 16
+ 7000000087000000EC0100009B030000
+
+
+
+ 196
+ 196
+ 0
+ 0
+ 0
+ 0
+ 32767
+ 0
+ 4096
+ 0
+
+ 16
+ 03000000660000003D01000051040000
+
+
+ 16
+ 7000000087000000EC0100009B030000
+
+
+
+ 197
+ 197
+ 0
+ 0
+ 0
+ 0
+ 32767
+ 0
+ 32768
+ 0
+
+ 16
+ 03000000180300006D070000AC030000
+
+
+ 16
+ 7000000087000000280400004B010000
+
+
+
+ 198
+ 198
+ 1
+ 0
+ 0
+ 0
+ 32767
+ 0
+ 32768
+ 0
+
+ 16
+ 000000006E040000000A000046050000
+
+
+ 16
+ 7000000087000000280400004B010000
+
+
+
+ 199
+ 199
+ 0
+ 0
+ 0
+ 0
+ 32767
+ 0
+ 4096
+ 0
+
+ 16
+ 03000000180300006D070000AC030000
+
+
+ 16
+ 7000000087000000280400004B010000
+
+
+
+ 203
+ 203
+ 1
+ 0
+ 0
+ 0
+ 32767
+ 0
+ 8192
+ 0
+
+ 16
+ 4401000063000000000A000013010000
+
+
+ 16
+ 7000000087000000280400004B010000
+
+
+
+ 204
+ 204
+ 0
+ 0
+ 0
+ 0
+ 32767
+ 0
+ 4096
+ 0
+
+ 16
+ 4701000066000000D6060000FA000000
+
+
+ 16
+ 7000000087000000280400004B010000
+
+
+
+ 221
+ 221
+ 0
+ 0
+ 0
+ 0
+ 32767
+ 0
+ 4096
+ 0
+
+ 16
+ 00000000000000000000000000000000
+
+
+ 16
+ 0A0000000A0000006E0000006E000000
+
+
+
+ 2506
+ 2506
+ 0
+ 0
+ 0
+ 0
+ 32767
+ 0
+ 4096
+ 0
+
+ 16
+ 33060000660000006D070000E4020000
+
+
+ 16
+ 7000000087000000B001000098010000
+
+
+
+ 2507
+ 2507
+ 0
+ 0
+ 0
+ 0
+ 32767
+ 0
+ 32768
+ 0
+
+ 16
+ 390700002E010000FD09000019050000
+
+
+ 16
+ 320D000022030000E6100000FA030000
+
+
+
+ 343
+ 343
+ 0
+ 0
+ 0
+ 0
+ 32767
+ 0
+ 4096
+ 0
+
+ 16
+ 4701000066000000D6060000FA000000
+
+
+ 16
+ 7000000087000000280400004B010000
+
+
+
+ 346
+ 346
+ 0
+ 0
+ 0
+ 0
+ 32767
+ 0
+ 4096
+ 0
+
+ 16
+ 4701000066000000D6060000FA000000
+
+
+ 16
+ 7000000087000000280400004B010000
+
+
+
+ 35141
+ 35141
+ 0
+ 0
+ 0
+ 0
+ 32767
+ 0
+ 4096
+ 0
+
+ 16
+ 4701000066000000D6060000FA000000
+
+
+ 16
+ 7000000087000000B001000098010000
+
+
+
+ 35824
+ 35824
+ 0
+ 0
+ 0
+ 0
+ 32767
+ 0
+ 4096
+ 0
+
+ 16
+ 4701000066000000D6060000FA000000
+
+
+ 16
+ 7000000087000000280400004B010000
+
+
+
+ 35885
+ 35885
+ 0
+ 0
+ 0
+ 0
+ 32767
+ 0
+ 4096
+ 0
+
+ 16
+ 33060000660000006D070000E4020000
+
+
+ 16
+ 7000000087000000B001000098010000
+
+
+
+ 35886
+ 35886
+ 0
+ 0
+ 0
+ 0
+ 32767
+ 0
+ 4096
+ 0
+
+ 16
+ 33060000660000006D070000E4020000
+
+
+ 16
+ 7000000087000000B001000098010000
+
+
+
+ 35887
+ 35887
+ 0
+ 0
+ 0
+ 0
+ 32767
+ 0
+ 4096
+ 0
+
+ 16
+ 33060000660000006D070000E4020000
+
+
+ 16
+ 7000000087000000B001000098010000
+
+
+
+ 35888
+ 35888
+ 0
+ 0
+ 0
+ 0
+ 32767
+ 0
+ 4096
+ 0
+
+ 16
+ 33060000660000006D070000E4020000
+
+
+ 16
+ 7000000087000000B001000098010000
+
+
+
+ 35889
+ 35889
+ 0
+ 0
+ 0
+ 0
+ 32767
+ 0
+ 4096
+ 0
+
+ 16
+ 33060000660000006D070000E4020000
+
+
+ 16
+ 7000000087000000B001000098010000
+
+
+
+ 35890
+ 35890
+ 0
+ 0
+ 0
+ 0
+ 32767
+ 0
+ 4096
+ 0
+
+ 16
+ 33060000660000006D070000E4020000
+
+
+ 16
+ 7000000087000000B001000098010000
+
+
+
+ 35891
+ 35891
+ 0
+ 0
+ 0
+ 0
+ 32767
+ 0
+ 4096
+ 0
+
+ 16
+ 33060000660000006D070000E4020000
+
+
+ 16
+ 7000000087000000B001000098010000
+
+
+
+ 35892
+ 35892
+ 0
+ 0
+ 0
+ 0
+ 32767
+ 0
+ 4096
+ 0
+
+ 16
+ 33060000660000006D070000E4020000
+
+
+ 16
+ 7000000087000000B001000098010000
+
+
+
+ 35893
+ 35893
+ 0
+ 0
+ 0
+ 0
+ 32767
+ 0
+ 4096
+ 0
+
+ 16
+ 33060000660000006D070000E4020000
+
+
+ 16
+ 7000000087000000B001000098010000
+
+
+
+ 35894
+ 35894
+ 0
+ 0
+ 0
+ 0
+ 32767
+ 0
+ 4096
+ 0
+
+ 16
+ 33060000660000006D070000E4020000
+
+
+ 16
+ 7000000087000000B001000098010000
+
+
+
+ 35895
+ 35895
+ 0
+ 0
+ 0
+ 0
+ 32767
+ 0
+ 4096
+ 0
+
+ 16
+ 33060000660000006D070000E4020000
+
+
+ 16
+ 7000000087000000B001000098010000
+
+
+
+ 35896
+ 35896
+ 0
+ 0
+ 0
+ 0
+ 32767
+ 0
+ 4096
+ 0
+
+ 16
+ 33060000660000006D070000E4020000
+
+
+ 16
+ 7000000087000000B001000098010000
+
+
+
+ 35897
+ 35897
+ 0
+ 0
+ 0
+ 0
+ 32767
+ 0
+ 4096
+ 0
+
+ 16
+ 33060000660000006D070000E4020000
+
+
+ 16
+ 7000000087000000B001000098010000
+
+
+
+ 35898
+ 35898
+ 0
+ 0
+ 0
+ 0
+ 32767
+ 0
+ 4096
+ 0
+
+ 16
+ 33060000660000006D070000E4020000
+
+
+ 16
+ 7000000087000000B001000098010000
+
+
+
+ 35899
+ 35899
+ 0
+ 0
+ 0
+ 0
+ 32767
+ 0
+ 4096
+ 0
+
+ 16
+ 33060000660000006D070000E4020000
+
+
+ 16
+ 7000000087000000B001000098010000
+
+
+
+ 35900
+ 35900
+ 0
+ 0
+ 0
+ 0
+ 32767
+ 0
+ 4096
+ 0
+
+ 16
+ 33060000660000006D070000E4020000
+
+
+ 16
+ 7000000087000000B001000098010000
+
+
+
+ 35901
+ 35901
+ 0
+ 0
+ 0
+ 0
+ 32767
+ 0
+ 4096
+ 0
+
+ 16
+ 33060000660000006D070000E4020000
+
+
+ 16
+ 7000000087000000B001000098010000
+
+
+
+ 35902
+ 35902
+ 0
+ 0
+ 0
+ 0
+ 32767
+ 0
+ 4096
+ 0
+
+ 16
+ 33060000660000006D070000E4020000
+
+
+ 16
+ 7000000087000000B001000098010000
+
+
+
+ 35903
+ 35903
+ 0
+ 0
+ 0
+ 0
+ 32767
+ 0
+ 4096
+ 0
+
+ 16
+ 33060000660000006D070000E4020000
+
+
+ 16
+ 7000000087000000B001000098010000
+
+
+
+ 35904
+ 35904
+ 0
+ 0
+ 0
+ 0
+ 32767
+ 0
+ 4096
+ 0
+
+ 16
+ 33060000660000006D070000E4020000
+
+
+ 16
+ 7000000087000000B001000098010000
+
+
+
+ 35905
+ 35905
+ 0
+ 0
+ 0
+ 0
+ 32767
+ 0
+ 4096
+ 0
+
+ 16
+ 33060000660000006D070000E4020000
+
+
+ 16
+ 7000000087000000B001000098010000
+
+
+
+ 38003
+ 38003
+ 1
+ 0
+ 0
+ 0
+ 32767
+ 0
+ 4096
+ 0
+
+ 16
+ 03000000660000003D01000051040000
+
+
+ 16
+ 7000000087000000EC0100009B030000
+
+
+
+ 38007
+ 38007
+ 0
+ 0
+ 0
+ 0
+ 32767
+ 0
+ 4096
+ 0
+
+ 16
+ 03000000180300006D070000AC030000
+
+
+ 16
+ 7000000087000000280400004B010000
+
+
+
+ 436
+ 436
+ 0
+ 0
+ 0
+ 0
+ 32767
+ 0
+ 4096
+ 0
+
+ 16
+ 03000000180300006D070000AC030000
+
+
+ 16
+ 7000000087000000EC0100009B030000
+
+
+
+ 437
+ 437
+ 0
+ 0
+ 0
+ 0
+ 32767
+ 0
+ 32768
+ 0
+
+ 16
+ 390700002E010000FD09000019050000
+
+
+ 16
+ 320D000022030000E6100000FA030000
+
+
+
+ 440
+ 440
+ 0
+ 0
+ 0
+ 0
+ 32767
+ 0
+ 32768
+ 0
+
+ 16
+ 390700002E010000FD09000019050000
+
+
+ 16
+ 320D000022030000E6100000FA030000
+
+
+
+ 463
+ 463
+ 0
+ 0
+ 0
+ 0
+ 32767
+ 0
+ 4096
+ 0
+
+ 16
+ 03000000180300006D070000AC030000
+
+
+ 16
+ 7000000087000000EC0100009B030000
+
+
+
+ 466
+ 466
+ 0
+ 0
+ 0
+ 0
+ 32767
+ 0
+ 4096
+ 0
+
+ 16
+ 03000000180300006D070000AC030000
+
+
+ 16
+ 7000000087000000EC0100009B030000
+
+
+
+ 470
+ 470
+ 0
+ 0
+ 0
+ 0
+ 32767
+ 0
+ 4096
+ 0
+
+ 16
+ 4701000066000000D6060000FA000000
+
+
+ 16
+ 7000000087000000280400004B010000
+
+
+
+ 50000
+ 50000
+ 0
+ 0
+ 0
+ 0
+ 32767
+ 0
+ 4096
+ 0
+
+ 16
+ 33060000660000006D070000E4020000
+
+
+ 16
+ 7000000087000000B001000098010000
+
+
+
+ 50001
+ 50001
+ 0
+ 0
+ 0
+ 0
+ 32767
+ 0
+ 4096
+ 0
+
+ 16
+ 33060000660000006D070000E4020000
+
+
+ 16
+ 7000000087000000B001000098010000
+
+
+
+ 50002
+ 50002
+ 0
+ 0
+ 0
+ 0
+ 32767
+ 0
+ 4096
+ 0
+
+ 16
+ 33060000660000006D070000E4020000
+
+
+ 16
+ 7000000087000000B001000098010000
+
+
+
+ 50003
+ 50003
+ 0
+ 0
+ 0
+ 0
+ 32767
+ 0
+ 4096
+ 0
+
+ 16
+ 33060000660000006D070000E4020000
+
+
+ 16
+ 7000000087000000B001000098010000
+
+
+
+ 50004
+ 50004
+ 0
+ 0
+ 0
+ 0
+ 32767
+ 0
+ 4096
+ 0
+
+ 16
+ 33060000660000006D070000E4020000
+
+
+ 16
+ 7000000087000000B001000098010000
+
+
+
+ 50005
+ 50005
+ 0
+ 0
+ 0
+ 0
+ 32767
+ 0
+ 4096
+ 0
+
+ 16
+ 33060000660000006D070000E4020000
+
+
+ 16
+ 7000000087000000B001000098010000
+
+
+
+ 50006
+ 50006
+ 0
+ 0
+ 0
+ 0
+ 32767
+ 0
+ 4096
+ 0
+
+ 16
+ 33060000660000006D070000E4020000
+
+
+ 16
+ 7000000087000000B001000098010000
+
+
+
+ 50007
+ 50007
+ 0
+ 0
+ 0
+ 0
+ 32767
+ 0
+ 4096
+ 0
+
+ 16
+ 33060000660000006D070000E4020000
+
+
+ 16
+ 7000000087000000B001000098010000
+
+
+
+ 50008
+ 50008
+ 0
+ 0
+ 0
+ 0
+ 32767
+ 0
+ 4096
+ 0
+
+ 16
+ 33060000660000006D070000E4020000
+
+
+ 16
+ 7000000087000000B001000098010000
+
+
+
+ 50009
+ 50009
+ 0
+ 0
+ 0
+ 0
+ 32767
+ 0
+ 4096
+ 0
+
+ 16
+ 33060000660000006D070000E4020000
+
+
+ 16
+ 7000000087000000B001000098010000
+
+
+
+ 50010
+ 50010
+ 0
+ 0
+ 0
+ 0
+ 32767
+ 0
+ 4096
+ 0
+
+ 16
+ 33060000660000006D070000E4020000
+
+
+ 16
+ 7000000087000000B001000098010000
+
+
+
+ 50011
+ 50011
+ 0
+ 0
+ 0
+ 0
+ 32767
+ 0
+ 4096
+ 0
+
+ 16
+ 33060000660000006D070000E4020000
+
+
+ 16
+ 7000000087000000B001000098010000
+
+
+
+ 50012
+ 50012
+ 0
+ 0
+ 0
+ 0
+ 32767
+ 0
+ 4096
+ 0
+
+ 16
+ 33060000660000006D070000E4020000
+
+
+ 16
+ 7000000087000000B001000098010000
+
+
+
+ 50013
+ 50013
+ 0
+ 0
+ 0
+ 0
+ 32767
+ 0
+ 4096
+ 0
+
+ 16
+ 33060000660000006D070000E4020000
+
+
+ 16
+ 7000000087000000B001000098010000
+
+
+
+ 50014
+ 50014
+ 0
+ 0
+ 0
+ 0
+ 32767
+ 0
+ 4096
+ 0
+
+ 16
+ 33060000660000006D070000E4020000
+
+
+ 16
+ 7000000087000000B001000098010000
+
+
+
+ 50015
+ 50015
+ 0
+ 0
+ 0
+ 0
+ 32767
+ 0
+ 4096
+ 0
+
+ 16
+ 33060000660000006D070000E4020000
+
+
+ 16
+ 7000000087000000B001000098010000
+
+
+
+ 50016
+ 50016
+ 0
+ 0
+ 0
+ 0
+ 32767
+ 0
+ 4096
+ 0
+
+ 16
+ 33060000660000006D070000E4020000
+
+
+ 16
+ 7000000087000000B001000098010000
+
+
+
+ 50017
+ 50017
+ 0
+ 0
+ 0
+ 0
+ 32767
+ 0
+ 4096
+ 0
+
+ 16
+ 33060000660000006D070000E4020000
+
+
+ 16
+ 7000000087000000B001000098010000
+
+
+
+ 50018
+ 50018
+ 0
+ 0
+ 0
+ 0
+ 32767
+ 0
+ 4096
+ 0
+
+ 16
+ 33060000660000006D070000E4020000
+
+
+ 16
+ 7000000087000000B001000098010000
+
+
+
+ 50019
+ 50019
+ 0
+ 0
+ 0
+ 0
+ 32767
+ 0
+ 4096
+ 0
+
+ 16
+ 33060000660000006D070000E4020000
+
+
+ 16
+ 7000000087000000B001000098010000
+
+
+
+ 59392
+ 59392
+ 1
+ 0
+ 0
+ 0
+ 966
+ 0
+ 8192
+ 0
+
+ 16
+ 0000000000000000D10300001C000000
+
+
+ 16
+ 0A0000000A0000006E0000006E000000
+
+
+
+ 59393
+ 0
+ 1
+ 0
+ 0
+ 0
+ 32767
+ 0
+ 4096
+ 0
+
+ 16
+ 0000000046050000000A000059050000
+
+
+ 16
+ 0A0000000A0000006E0000006E000000
+
+
+
+ 59399
+ 59399
+ 0
+ 0
+ 0
+ 0
+ 476
+ 0
+ 8192
+ 1
+
+ 16
+ 000000001C000000E701000038000000
+
+
+ 16
+ 0A0000000A0000006E0000006E000000
+
+
+
+ 59400
+ 59400
+ 1
+ 0
+ 0
+ 0
+ 612
+ 0
+ 8192
+ 2
+
+ 16
+ 000000001C0000006F02000038000000
+
+
+ 16
+ 0A0000000A0000006E0000006E000000
+
+
+
+ 824
+ 824
+ 0
+ 0
+ 0
+ 0
+ 32767
+ 0
+ 32768
+ 0
+
+ 16
+ 390700002E010000FD09000019050000
+
+
+ 16
+ 320D000022030000E6100000FA030000
+
+
+
+ 3415
+ 000000000C000000000000000040000001000000FFFFFFFFFFFFFFFF3207000017010000360700006A04000001000000020000100400000001000000000000000000000000000000000000000000000001000000FFFFFFFF0F0000008F070000930700009407000095070000960700009007000091070000B5010000B801000038030000B9050000BA050000BB050000BC050000CB090000FFFF02000B004354616262656450616E6500400000010000003607000066000000000A0000810400003607000017010000000A00006A04000000000000404100560F0000001343616C6C20537461636B202B204C6F63616C73010000008F07000001000000FFFFFFFFFFFFFFFF0755415254202331000000009307000001000000FFFFFFFFFFFFFFFF0755415254202332000000009407000001000000FFFFFFFFFFFFFFFF0755415254202333000000009507000001000000FFFFFFFFFFFFFFFF15446562756720287072696E74662920566965776572000000009607000001000000FFFFFFFFFFFFFFFF0757617463682031010000009007000001000000FFFFFFFFFFFFFFFF0757617463682032000000009107000001000000FFFFFFFFFFFFFFFF10547261636520457863657074696F6E7300000000B501000001000000FFFFFFFFFFFFFFFF0E4576656E7420436F756E7465727300000000B801000001000000FFFFFFFFFFFFFFFF09554C494E4B706C7573000000003803000001000000FFFFFFFFFFFFFFFF084D656D6F7279203101000000B905000001000000FFFFFFFFFFFFFFFF084D656D6F7279203200000000BA05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203300000000BB05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203400000000BC05000001000000FFFFFFFFFFFFFFFF105472616365204E617669676174696F6E00000000CB09000001000000FFFFFFFFFFFFFFFF0000000000000000000000000000000000000000000000000000000001000000FFFFFFFF8F07000001000000FFFFFFFF8F070000000000000020000001000000FFFFFFFFFFFFFFFF4401000013010000000A000017010000010000000100000004000000010000000000000000000000FFFFFFFF08000000CB00000057010000CC000000F08B00005A01000079070000D601000045890000018000200000010000004401000066000000D90600002A010000440100004F000000000A0000130100000000000040280056080000000B446973617373656D626C7901000000CB00000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A6572000000005701000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A657200000000CC00000001000000FFFFFFFFFFFFFFFF0E4C6F67696320416E616C797A657200000000F08B000001000000FFFFFFFFFFFFFFFF0D436F646520436F766572616765000000005A01000001000000FFFFFFFFFFFFFFFF11496E737472756374696F6E205472616365000000007907000001000000FFFFFFFFFFFFFFFF0F53797374656D20416E616C797A657200000000D601000001000000FFFFFFFFFFFFFFFF104576656E742053746174697374696373000000004589000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFCB00000001000000FFFFFFFFCB000000000000000040000000000000FFFFFFFFFFFFFFFF2C0600004F00000030060000FD020000000000000200000004000000010000000000000000000000FFFFFFFF2B000000E2050000CA0900002D8C00002E8C00002F8C0000308C0000318C0000328C0000338C0000348C0000358C0000368C0000378C0000388C0000398C00003A8C00003B8C00003C8C00003D8C00003E8C00003F8C0000408C0000418C000050C3000051C3000052C3000053C3000054C3000055C3000056C3000057C3000058C3000059C300005AC300005BC300005CC300005DC300005EC300005FC3000060C3000061C3000062C3000063C300000180004000000000000030060000660000007007000014030000300600004F00000070070000FD02000000000000404100462B0000000753796D626F6C7300000000E205000001000000FFFFFFFFFFFFFFFF0A5472616365204461746100000000CA09000001000000FFFFFFFFFFFFFFFF00000000002D8C000001000000FFFFFFFFFFFFFFFF00000000002E8C000001000000FFFFFFFFFFFFFFFF00000000002F8C000001000000FFFFFFFFFFFFFFFF0000000000308C000001000000FFFFFFFFFFFFFFFF0000000000318C000001000000FFFFFFFFFFFFFFFF0000000000328C000001000000FFFFFFFFFFFFFFFF0000000000338C000001000000FFFFFFFFFFFFFFFF0000000000348C000001000000FFFFFFFFFFFFFFFF0000000000358C000001000000FFFFFFFFFFFFFFFF0000000000368C000001000000FFFFFFFFFFFFFFFF0000000000378C000001000000FFFFFFFFFFFFFFFF0000000000388C000001000000FFFFFFFFFFFFFFFF0000000000398C000001000000FFFFFFFFFFFFFFFF00000000003A8C000001000000FFFFFFFFFFFFFFFF00000000003B8C000001000000FFFFFFFFFFFFFFFF00000000003C8C000001000000FFFFFFFFFFFFFFFF00000000003D8C000001000000FFFFFFFFFFFFFFFF00000000003E8C000001000000FFFFFFFFFFFFFFFF00000000003F8C000001000000FFFFFFFFFFFFFFFF0000000000408C000001000000FFFFFFFFFFFFFFFF0000000000418C000001000000FFFFFFFFFFFFFFFF000000000050C3000001000000FFFFFFFFFFFFFFFF000000000051C3000001000000FFFFFFFFFFFFFFFF000000000052C3000001000000FFFFFFFFFFFFFFFF000000000053C3000001000000FFFFFFFFFFFFFFFF000000000054C3000001000000FFFFFFFFFFFFFFFF000000000055C3000001000000FFFFFFFFFFFFFFFF000000000056C3000001000000FFFFFFFFFFFFFFFF000000000057C3000001000000FFFFFFFFFFFFFFFF000000000058C3000001000000FFFFFFFFFFFFFFFF000000000059C3000001000000FFFFFFFFFFFFFFFF00000000005AC3000001000000FFFFFFFFFFFFFFFF00000000005BC3000001000000FFFFFFFFFFFFFFFF00000000005CC3000001000000FFFFFFFFFFFFFFFF00000000005DC3000001000000FFFFFFFFFFFFFFFF00000000005EC3000001000000FFFFFFFFFFFFFFFF00000000005FC3000001000000FFFFFFFFFFFFFFFF000000000060C3000001000000FFFFFFFFFFFFFFFF000000000061C3000001000000FFFFFFFFFFFFFFFF000000000062C3000001000000FFFFFFFFFFFFFFFF000000000063C3000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFE205000001000000FFFFFFFFE2050000000000000010000001000000FFFFFFFFFFFFFFFF400100004F000000440100006A040000010000000200001004000000010000000000000000000000FFFFFFFF05000000ED0300006D000000C3000000C4000000739400000180001000000100000000000000660000004001000081040000000000004F000000400100006A0400000000000040410056050000000750726F6A65637401000000ED03000001000000FFFFFFFFFFFFFFFF05426F6F6B73000000006D00000001000000FFFFFFFFFFFFFFFF0946756E6374696F6E7300000000C300000001000000FFFFFFFFFFFFFFFF0954656D706C6174657300000000C400000001000000FFFFFFFFFFFFFFFF09526567697374657273010000007394000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFED03000001000000FFFFFFFFED030000000000000080000001000000FFFFFFFFFFFFFFFF000000006A040000000A00006E04000001000000010000100400000001000000000000000000000000000000000000000000000001000000C60000000000000001000000000000000000000001000000FFFFFFFF6D03000035030000710300000D04000000000000020000000400000000000000000000000000000000000000000000000000000001000000C600000001000000C6000000000000000080000000000000FFFFFFFFFFFFFFFF00000000FD0200007007000001030000000000000100000004000000010000000000000000000000FFFFFFFF06000000C5000000C7000000B4010000D2010000CF0100007794000001800080000000000000000000001803000070070000DC030000000000000103000070070000C50300000000000040820046060000000C4275696C64204F757470757400000000C500000001000000FFFFFFFFFFFFFFFF0D46696E6420496E2046696C657300000000C700000001000000FFFFFFFFFFFFFFFF0A4572726F72204C69737400000000B401000001000000FFFFFFFFFFFFFFFF0E536F757263652042726F7773657200000000D201000001000000FFFFFFFFFFFFFFFF0E416C6C205265666572656E63657300000000CF01000001000000FFFFFFFFFFFFFFFF0642726F777365000000007794000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFC500000001000000FFFFFFFFC5000000000000000000000000000000
+
+
+ 59392
+ File
+
+ 2928
+ 00200000010000002800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000040004000000000000000000000000000000000100000001000000018022E100000000040005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000000000700000000000000000000000000000000010000000100000001802CE10000000004000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000000000900000000000000000000000000000000010000000100000001807B8A0000000004000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000004000C0000000000000000000000000000000001000000010000000180F4B00000000004000D000000000000000000000000000000000100000001000000018036B10000000004000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF88000000000400460000000000000000000000000000000001000000010000000180FE880000000004004500000000000000000000000000000000010000000100000001800B810000000004001300000000000000000000000000000000010000000100000001800C810000000004001400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F0880000020000000F000000000000000000000000000000000100000001000000FFFF0100120043555646696E64436F6D626F427574746F6EE8030000000000000000000000000000000000000000000000010000000100000096000000020020500000000018484D495F50524F544F5F4755495F5443505F434F4E4649479600000000000000130018484D495F50524F544F5F4755495F5443505F434F4E4649470952756E5F5374617465085068795F41646472125348475F48414C465F4C494E455749445448106273705F64615F76616C75655F736574137365742E736C6F70655F7468726573686F6C640E6461635F325F646174615F7365740F44454D4F445F44454255475F4C4F47104253505F44415F56414C55455F4D41580E4253505F44415F4652455F4D4158067072696E7466104C494748545F4452495645525F50494E0A61645F7270705F73756D1B696E6465785F636F756E745F646174615F72657365745F666C6167086164393833385F32126D6F646275735F736C6176655F74646C6173086170705F6E646972166170705F74646C61735F6761735F747970655F736574046E64697200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000018024E10000000000001100000000000000000000000000000000010000000100000001800A810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E2280000002000300150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B46350000000000000000000000000100000001000000000000000000000001000000020021802280000000000000150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B4635000000000000000000000000010000000100000000000000000000000100000000002180E0010000000000007500000021456E65726779204D6561737572656D656E742026776974686F75742044656275670000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000000160000000000000000000000000000000001000000010000000180C988000000000400180000000000000000000000000000000001000000010000000180C788000000000000190000000000000000000000000000000001000000010000002180C8880000000000001700000027264B696C6C20416C6C20427265616B706F696E747320696E2043757272656E7420546172676574000000000000000000000000010000000100000000000000000000000100000003002180C8880000000000001700000027264B696C6C20416C6C20427265616B706F696E747320696E2043757272656E7420546172676574000000000000000000000000010000000100000000000000000000000100000000002180E50100000000000078000000264B696C6C20416C6C20427265616B706F696E747320696E204163746976652050726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180E601000000000000790000002F4B696C6C20416C6C20427265616B706F696E747320696E204D756C74692D50726F6A65637420576F726B73706163650000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000021804C010000020001001A0000000F2650726F6A6563742057696E646F77000000000000000000000000010000000100000000000000000000000100000008002180DD880000000000001A0000000750726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180DC8B0000000000003A00000005426F6F6B73000000000000000000000000010000000100000000000000000000000100000000002180E18B0000000000003B0000000946756E6374696F6E73000000000000000000000000010000000100000000000000000000000100000000002180E28B000000000000400000000954656D706C6174657300000000000000000000000001000000010000000000000000000000010000000000218018890000000000003D0000000E536F757263652042726F777365720000000000000000000000000100000001000000000000000000000001000000000021800000000000000400FFFFFFFF00000000000000000001000000000000000100000000000000000000000100000000002180D988000000000000390000000C4275696C64204F7574707574000000000000000000000000010000000100000000000000000000000100000000002180E38B000000000000410000000B46696E64204F75747075740000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001B000000000000000000000000000000000100000001000000000000000446696C65C6030000
+
+
+ 1423
+ 2800FFFF01001100434D4643546F6F6C426172427574746F6E00E1000000000000FFFFFFFF000100000000000000010000000000000001000000018001E1000000000000FFFFFFFF000100000000000000010000000000000001000000018003E1000000000000FFFFFFFF0001000000000000000100000000000000010000000180CD7F000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF000000000000000000010000000000000001000000018023E1000000000000FFFFFFFF000100000000000000010000000000000001000000018022E1000000000000FFFFFFFF000100000000000000010000000000000001000000018025E1000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001802BE1000000000000FFFFFFFF00010000000000000001000000000000000100000001802CE1000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001807A8A000000000000FFFFFFFF00010000000000000001000000000000000100000001807B8A000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180D3B0000000000000FFFFFFFF000100000000000000010000000000000001000000018015B1000000000000FFFFFFFF0001000000000000000100000000000000010000000180F4B0000000000000FFFFFFFF000100000000000000010000000000000001000000018036B1000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180FF88000000000000FFFFFFFF0001000000000000000100000000000000010000000180FE88000000000000FFFFFFFF00010000000000000001000000000000000100000001800B81000000000000FFFFFFFF00010000000000000001000000000000000100000001800C81000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180F088000000000000FFFFFFFF0001000000000000000100000000000000010000000180EE7F000000000000FFFFFFFF000100000000000000010000000000000001000000018024E1000000000000FFFFFFFF00010000000000000001000000000000000100000001800A81000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001802280000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180C488000000000000FFFFFFFF0001000000000000000100000000000000010000000180C988000000000000FFFFFFFF0001000000000000000100000000000000010000000180C788000000000000FFFFFFFF0001000000000000000100000000000000010000000180C888000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180DD88000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180FB7F000000000000FFFFFFFF000100000000000000010000000000000001000000
+
+
+ 1423
+ 2800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000000004000000000000000000000000000000000100000001000000018022E100000000000005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000000000700000000000000000000000000000000010000000100000001802CE10000000000000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000000000900000000000000000000000000000000010000000100000001807B8A0000000000000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000000000C0000000000000000000000000000000001000000010000000180F4B00000000000000D000000000000000000000000000000000100000001000000018036B10000000000000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF880000000000000F0000000000000000000000000000000001000000010000000180FE880000000000001000000000000000000000000000000000010000000100000001800B810000000000001100000000000000000000000000000000010000000100000001800C810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F088000000000000130000000000000000000000000000000001000000010000000180EE7F00000000000014000000000000000000000000000000000100000001000000018024E10000000000001500000000000000000000000000000000010000000100000001800A810000000000001600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018022800000000000001700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000000180000000000000000000000000000000001000000010000000180C988000000000000190000000000000000000000000000000001000000010000000180C7880000000000001A0000000000000000000000000000000001000000010000000180C8880000000000001B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180DD880000000000001C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001D000000000000000000000000000000000100000001000000
+
+
+
+ 59399
+ Build
+
+ 955
+ 00200000000000001000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F0000000000001C0000000000000000000000000000000001000000010000000180D07F0000000000001D000000000000000000000000000000000100000001000000018030800000000000001E000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6EC7040000000000006A0000000C4261746368204275696C2664000000000000000000000000010000000100000000000000000000000100000004000580C7040000000000006A0000000C4261746368204275696C266400000000000000000000000001000000010000000000000000000000010000000000058046070000000000006B0000000D42617463682052656275696C640000000000000000000000000100000001000000000000000000000001000000000005804707000000000000FFFFFFFF0B426174636820436C65616E0000000000000000010000000000000001000000000000000000000001000000000005809E8A0000000000001F0000000F4261746326682053657475702E2E2E000000000000000000000000010000000100000000000000000000000100000000000180D17F0000000000002000000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001804C8A0000000000002100000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001900434D4643546F6F6C426172436F6D626F426F78427574746F6EBA00000000000000000000000000000000000000000000000001000000010000009600000003002050FFFFFFFF00960000000000000000000180EB880000000000002200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C07F000000000000230000000000000000000000000000000001000000010000000180B08A000000000000240000000000000000000000000000000001000000010000000180A8010000000000004E00000000000000000000000000000000010000000100000001807202000000000000530000000000000000000000000000000001000000010000000180BE010000000000005000000000000000000000000000000000010000000100000000000000054275696C64DC010000
+
+
+ 583
+ 1000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F000000000000FFFFFFFF0001000000000000000100000000000000010000000180D07F000000000000FFFFFFFF00010000000000000001000000000000000100000001803080000000000000FFFFFFFF00010000000000000001000000000000000100000001809E8A000000000000FFFFFFFF0001000000000000000100000000000000010000000180D17F000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001804C8A000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001806680000000000000FFFFFFFF0001000000000000000100000000000000010000000180EB88000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180C07F000000000000FFFFFFFF0001000000000000000100000000000000010000000180B08A000000000000FFFFFFFF0001000000000000000100000000000000010000000180A801000000000000FFFFFFFF00010000000000000001000000000000000100000001807202000000000000FFFFFFFF0001000000000000000100000000000000010000000180BE01000000000000FFFFFFFF000100000000000000010000000000000001000000
+
+
+ 583
+ 1000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F000000000000000000000000000000000000000000000001000000010000000180D07F00000000000001000000000000000000000000000000000100000001000000018030800000000000000200000000000000000000000000000000010000000100000001809E8A000000000000030000000000000000000000000000000001000000010000000180D17F0000000000000400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001804C8A0000000000000500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001806680000000000000060000000000000000000000000000000001000000010000000180EB880000000000000700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C07F000000000000080000000000000000000000000000000001000000010000000180B08A000000000000090000000000000000000000000000000001000000010000000180A8010000000000000A000000000000000000000000000000000100000001000000018072020000000000000B0000000000000000000000000000000001000000010000000180BE010000000000000C000000000000000000000000000000000100000001000000
+
+
+
+ 59400
+ Debug
+
+ 2362
+ 00200000010000001900FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000000002500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000000002600000000000000000000000000000000010000000100000001801D800000000004002700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000000002800000000000000000000000000000000010000000100000001801B80000000000000290000000000000000000000000000000001000000010000000180E57F0000000000002A00000000000000000000000000000000010000000100000001801C800000000000002B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000000002C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B0000020001002D0000000000000000000000000000000001000000010000000180F07F0000020001002E0000000000000000000000000000000001000000010000000180E8880000020000003700000000000000000000000000000000010000000100000001803B010000020001002F0000000000000000000000000000000001000000010000000180BB8A00000200010030000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E0E01000002000100310000000D57617463682057696E646F7773000000000000000000000000010000000100000000000000000000000100000003001380D88B00000000000031000000085761746368202631000000000000000000000000010000000100000000000000000000000100000000001380D98B00000000000031000000085761746368202632000000000000000000000000010000000100000000000000000000000100000000001380CE01000000000000FFFFFFFF0C576174636820416E63686F720000000000000000010000000000000001000000000000000000000001000000000013800F0100000200010032000000094D656D6F7279202631000000000000000000000000010000000100000000000000000000000100000004001380D28B00000000000032000000094D656D6F7279202631000000000000000000000000010000000100000000000000000000000100000000001380D38B00000000000032000000094D656D6F7279202632000000000000000000000000010000000100000000000000000000000100000000001380D48B00000000000032000000094D656D6F7279202633000000000000000000000000010000000100000000000000000000000100000000001380D58B00000000000032000000094D656D6F72792026340000000000000000000000000100000001000000000000000000000001000000000013801001000002000000330000000855415254202326310000000000000000000000000100000001000000000000000000000001000000040013809307000000000000330000000855415254202326310000000000000000000000000100000001000000000000000000000001000000000013809407000000000000330000000855415254202326320000000000000000000000000100000001000000000000000000000001000000000013809507000000000000330000000855415254202326330000000000000000000000000100000001000000000000000000000001000000000013809607000000000000330000001626446562756720287072696E746629205669657765720000000000000000000000000100000001000000000000000000000001000000000013803C010000000000007200000010416E616C797369732057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380658A000000000000340000000F264C6F67696320416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380DC7F0000000000003E0000001526506572666F726D616E636520416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380E788000000000000380000000E26436F646520436F766572616765000000000000000000000000010000000100000000000000000000000100000000001380CD01000000000000FFFFFFFF0F416E616C7973697320416E63686F7200000000000000000100000000000000010000000000000000000000010000000000138053010000000000003F0000000D54726163652057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013805401000000000000FFFFFFFF115472616365204D656E7520416E63686F720000000000000000010000000000000001000000000000000000000001000000000013802901000000000000350000001553797374656D205669657765722057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013804B01000000000000FFFFFFFF1453797374656D2056696577657220416E63686F720000000000000000010000000000000001000000000000000000000001000000000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000013800189000002000000360000000F26546F6F6C626F782057696E646F7700000000000000000000000001000000010000000000000000000000010000000300138044C5000000000000FFFFFFFF0E5570646174652057696E646F77730000000000000000010000000000000001000000000000000000000001000000000013800000000000000400FFFFFFFF000000000000000000010000000000000001000000000000000000000001000000000013805B01000000000000FFFFFFFF12546F6F6C626F78204D656E75416E63686F72000000000000000001000000000000000100000000000000000000000100000000000000000005446562756764020000
898
@@ -1862,12 +3603,21 @@
0
100
- 0
+ 1
+
+ ..\usr\app\app_leakage.c
+ 8
+ 343
+ 367
+ 1
+
+ 0
+
..\usr\app\app.c
- 21
- 13
- 29
+ 0
+ 1
+ 1
1
0
diff --git a/leakage_system/MDK-ARM/leakage_system.uvoptx b/leakage_system/MDK-ARM/leakage_system.uvoptx
index 1bab97c..67527d2 100644
--- a/leakage_system/MDK-ARM/leakage_system.uvoptx
+++ b/leakage_system/MDK-ARM/leakage_system.uvoptx
@@ -132,11 +132,6 @@
ARMDBGFLAGS
-
- 0
- DLGUARM
- d
-
0
JL2CM3
@@ -148,24 +143,7 @@
UL2CM3(-S0 -C0 -P0 -FD20000000 -FC1000 -FN1 -FF0STM32F4xx_1024 -FS08000000 -FL0100000 -FP0($$Device:STM32F407VGTx$CMSIS\Flash\STM32F4xx_1024.FLM))
-
-
- 0
- 0
- 71
- 1
- 134256418
- 0
- 0
- 0
- 0
- 0
- 1
- D:\code\Git\Leakage-Control(鏈€鏂扮増)\Leakage-Control\leakage_system\usr\app\app.c
-
- \\leakage_system\../usr/app/app.c\71
-
-
+
0
@@ -257,6 +235,11 @@
1
W5500,0x0A
+
+ 18
+ 1
+ W5500,0x0A
+
0
diff --git a/leakage_system/MDK-ARM/leakage_system.uvprojx b/leakage_system/MDK-ARM/leakage_system.uvprojx
index 2108710..6c33317 100644
--- a/leakage_system/MDK-ARM/leakage_system.uvprojx
+++ b/leakage_system/MDK-ARM/leakage_system.uvprojx
@@ -10,14 +10,14 @@
leakage_system
0x4
ARM-ADS
- 5060750::V5.06 update 6 (build 750)::ARMCC
+ 5060960::V5.06 update 7 (build 960)::.\ARMCC
0
STM32F407VGTx
STMicroelectronics
- Keil.STM32F4xx_DFP.2.15.0
- http://www.keil.com/pack/
+ Keil.STM32F4xx_DFP.3.0.0
+ https://www.keil.com/pack/
IRAM(0x20000000,0x00020000) IRAM2(0x10000000,0x00010000) IROM(0x08000000,0x00100000) CPUTYPE("Cortex-M4") FPU2 CLOCK(12000000) ELITTLE
@@ -185,6 +185,7 @@
0
2
0
+ 0
1
0
8
@@ -351,7 +352,7 @@
0
0
0
- 0
+ 4
diff --git a/leakage_system/usr/app/app.c b/leakage_system/usr/app/app.c
index 1517aa7..c16b67f 100644
--- a/leakage_system/usr/app/app.c
+++ b/leakage_system/usr/app/app.c
@@ -23,7 +23,7 @@
#include "gui_tjc_hmi.h"
const char *HwVersion = "V2.0";
-char SwVersion[24] = "V0.004.0";
+char SwVersion[24] = "V0.005.0";
void task_idle(void);
void task_10ms(void);
void task_50ms(void);
@@ -60,7 +60,7 @@ void app_init(void)
Wdg.Init();
/*flash*/
w25q32.init();
-
+ Wdg.Feed();
// HAL_Delay(5000);
/*ڳʼ*/
@@ -69,10 +69,10 @@ void app_init(void)
com_uart3.init(&com_uart3);
com_uart4.init(&com_uart4);
com_uart6.init(&com_uart6);
-
+ Wdg.Feed();
/**/
W5500.Init();
-
+ Wdg.Feed();
/*ĻͨѶ*/
tjc_hmi.init();
diff --git a/leakage_system/usr/app/app_leakage.c b/leakage_system/usr/app/app_leakage.c
index c3898ab..c70f87a 100644
--- a/leakage_system/usr/app/app_leakage.c
+++ b/leakage_system/usr/app/app_leakage.c
@@ -16,129 +16,124 @@ static void app_leakage_init(void);
/*ʷ*/
uint8_t sector_buf[2][W25Q32_SECTOR_SIZE];
-
-app_leakage_t leakage =
-{
- .region_num = 0,
- .sub_device_num = 0,
- .init = app_leakage_init,
- .task = app_leakage_task,
- .class_update = app_leakage_region_classify,
+app_leakage_t leakage =
+ {
+ .region_num = 0,
+ .sub_device_num = 0,
+ .init = app_leakage_init,
+ .task = app_leakage_task,
+ .class_update = app_leakage_region_classify,
};
app_leakage_t *p_leakage = &leakage;
app_hitory_t history =
-{
- .read_history = history_read_record,
- .clean_history = history_clear_all,
- .init_history = history_init
-};
-
+ {
+ .read_history = history_read_record,
+ .clean_history = history_clear_all,
+ .init_history = history_init};
static void app_leakage_init(void)
{
-// for(int i = 0; i < APP_LEAKAGE_SUB_DEVICE_NUM; i++)
-// {
-// memset(leakage.sub_device_data[i].ch_data, 0,
-// sizeof(leakage.sub_device_data[i].ch_data));
-// }
- app_leakage_region_classify();
+ // for(int i = 0; i < APP_LEAKAGE_SUB_DEVICE_NUM; i++)
+ // {
+ // memset(leakage.sub_device_data[i].ch_data, 0,
+ // sizeof(leakage.sub_device_data[i].ch_data));
+ // }
+ app_leakage_region_classify();
}
/*࣬ͬһ豸ֵһ*/
void app_leakage_region_classify(void)
{
- u16 i,j;
+ u16 i, j;
u8 add_region_flag;
-
+
/**/
p_leakage->region_num = 0;
p_leakage->sub_device_num = 0;
- memset(p_leakage->region_data,0,sizeof(p_leakage->region_data));
-
+ memset(p_leakage->region_data, 0, sizeof(p_leakage->region_data));
+
/*ϵͳ*/
- for(i=0;isub_device_data[i].flash_data.state)
+ if (ENABLE == p_leakage->sub_device_data[i].flash_data.state)
{
- p_leakage->sub_device_num++;/*ϵͳ++*/
+ p_leakage->sub_device_num++; /*ϵͳ++*/
/**************************************************************************************************/
- /**/
- for(j=0;jregion_data[j].name,p_leakage->sub_device_data[i].flash_data.region_name, APP_LEAKAGE_STRING_NANE_LEN))/*ͬ*/
+ if (0 == memcmp(p_leakage->region_data[j].name, p_leakage->sub_device_data[i].flash_data.region_name, APP_LEAKAGE_STRING_NANE_LEN)) /*ͬ*/
{
/*豸*/
- p_leakage->region_data[j].sub_device_index[p_leakage->region_data[j].sub_device_num] = i;/*豸*/
- p_leakage->region_data[j].sub_device_num++; /*ϵͳ++*/
- add_region_flag = 0;/**/
+ p_leakage->region_data[j].sub_device_index[p_leakage->region_data[j].sub_device_num] = i; /*豸*/
+ p_leakage->region_data[j].sub_device_num++; /*ϵͳ++*/
+ add_region_flag = 0; /**/
break;
}
}
-
+
/*ûҵͬ*/
- if(add_region_flag)/**/
+ if (add_region_flag) /**/
{
/**/
- memcpy(p_leakage->region_data[p_leakage->region_num].name,
+ memcpy(p_leakage->region_data[p_leakage->region_num].name,
p_leakage->sub_device_data[i].flash_data.region_name,
APP_LEAKAGE_STRING_NANE_LEN);
// һ豸Ϊ0
p_leakage->region_data[p_leakage->region_num].sub_device_index[0] = i;
p_leakage->region_data[p_leakage->region_num].sub_device_num = 1;
p_leakage->region_num++;
- }
+ }
}
}
}
-
/* ̵ */
static void app_leakage_alarm_contorl(void)
{
- if(0 != p_leakage->alarm_state)
+ if (0 != p_leakage->alarm_state)
{
buzzer.set.on();
- relay.set(BSP_RELAY_CH_ERROR_STATE,USR_ON);
+ relay.set(BSP_RELAY_CH_ERROR_STATE, USR_ON);
}
else
{
buzzer.set.off();
- relay.set(BSP_RELAY_CH_ERROR_STATE,USR_OFF);
+ relay.set(BSP_RELAY_CH_ERROR_STATE, USR_OFF);
}
-
+
/*©Һ״̬*/
- if(p_leakage->alarm_state & APP_LEAKAGE_SUB_DEVICE_STATE_LEAKAGE)
+ if (p_leakage->alarm_state & APP_LEAKAGE_SUB_DEVICE_STATE_LEAKAGE)
{
- relay.set(BSP_RELAY_CH_LEAKAGE,USR_ON);
+ relay.set(BSP_RELAY_CH_LEAKAGE, USR_ON);
}
else
{
- relay.set(BSP_RELAY_CH_LEAKAGE,USR_OFF);
+ relay.set(BSP_RELAY_CH_LEAKAGE, USR_OFF);
}
/*ϴ״̬*/
- if(p_leakage->alarm_state & APP_LEAKAGE_SUB_DEVICE_STATE_OPEN)
+ if (p_leakage->alarm_state & APP_LEAKAGE_SUB_DEVICE_STATE_OPEN)
{
- relay.set(BSP_RELAY_CH_OPEN,USR_ON);
+ relay.set(BSP_RELAY_CH_OPEN, USR_ON);
}
else
{
- relay.set(BSP_RELAY_CH_OPEN,USR_OFF);
+ relay.set(BSP_RELAY_CH_OPEN, USR_OFF);
}
/*ͨѶʱ*/
- if(p_leakage->alarm_state & APP_LEAKAGE_SUB_DEVICE_STATE_TIME_OUT)
+ if (p_leakage->alarm_state & APP_LEAKAGE_SUB_DEVICE_STATE_TIME_OUT)
{
- relay.set(BSP_RELAY_CH_COMMINCAION,USR_ON);
- }
+ relay.set(BSP_RELAY_CH_COMMINCAION, USR_ON);
+ }
else
{
- relay.set(BSP_RELAY_CH_COMMINCAION,USR_OFF);
+ relay.set(BSP_RELAY_CH_COMMINCAION, USR_OFF);
}
}
-
/*쳣״̬豸ͳ*/
void app_leakage_task(void)
{
@@ -146,7 +141,7 @@ void app_leakage_task(void)
u16 i, j, k, sub_device_index;
/* ʼ쳣ͳ */
- for(i = 0; i < p_leakage->region_num; i++)
+ for (i = 0; i < p_leakage->region_num; i++)
{
p_leakage->region_data[i].leakage_num = 0;
p_leakage->region_data[i].open_num = 0;
@@ -154,52 +149,50 @@ void app_leakage_task(void)
}
p_leakage->alarm_state = 0;
/* ״̬仯ͳ쳣 */
- for(i = 0; i < p_leakage->region_num; i++)
+ for (i = 0; i < p_leakage->region_num; i++)
{
- for(j = 0; j < p_leakage->region_data[i].sub_device_num; j++)
+ for (j = 0; j < p_leakage->region_data[i].sub_device_num; j++)
{
sub_device_index = p_leakage->region_data[i].sub_device_index[j];
-
+
/* 豸Ƿ */
- if(p_leakage->sub_device_data[sub_device_index].flash_data.state != ENABLE)
+ if (p_leakage->sub_device_data[sub_device_index].flash_data.state != ENABLE)
{
continue;
}
-
+
/* 豸Ƿ */
- if(p_leakage->sub_device_data[sub_device_index].shield != UNBLOCKED)
+ if (p_leakage->sub_device_data[sub_device_index].shield != UNBLOCKED)
{
continue;
}
-
+
/*ʷ洢*/
- for(k = 0; k < APP_LEAKAGE_SUB_DEVICE_USE_CH_NUM; k++)
+ for (k = 0; k < APP_LEAKAGE_SUB_DEVICE_USE_CH_NUM; k++)
{
u16 current_state = p_leakage->sub_device_data[sub_device_index].ch_data[k].state;
u16 prev_state = prev_ch_state[sub_device_index][k];
u16 leak_distance = p_leakage->sub_device_data[sub_device_index].ch_data[k].distance;
-
+
/* ״̬仯¼ʷ */
- if((current_state & APP_LEAKAGE_SUB_DEVICE_STATE_LEAKAGE) &&
- !(prev_state & APP_LEAKAGE_SUB_DEVICE_STATE_LEAKAGE))
+ if ((current_state & APP_LEAKAGE_SUB_DEVICE_STATE_LEAKAGE) &&
+ !(prev_state & APP_LEAKAGE_SUB_DEVICE_STATE_LEAKAGE))
{
/* ©Һʼ - ¼ʷ */
history_add_alarm_record(i, sub_device_index, k, APP_LEAKAGE_SUB_DEVICE_STATE_LEAKAGE, leak_distance);
}
-
- if((current_state & APP_LEAKAGE_SUB_DEVICE_STATE_OPEN) &&
- !(prev_state & APP_LEAKAGE_SUB_DEVICE_STATE_OPEN))
+
+ if ((current_state & APP_LEAKAGE_SUB_DEVICE_STATE_OPEN) &&
+ !(prev_state & APP_LEAKAGE_SUB_DEVICE_STATE_OPEN))
{
/* ϴʼ - ¼ʷ */
history_add_alarm_record(i, sub_device_index, k, APP_LEAKAGE_SUB_DEVICE_STATE_OPEN, 0);
}
-
-
-
- if((current_state & APP_LEAKAGE_SUB_DEVICE_STATE_TIME_OUT) &&
- !(prev_state & APP_LEAKAGE_SUB_DEVICE_STATE_TIME_OUT))
+
+ if ((current_state & APP_LEAKAGE_SUB_DEVICE_STATE_TIME_OUT) &&
+ !(prev_state & APP_LEAKAGE_SUB_DEVICE_STATE_TIME_OUT))
{
- if( k > 0 && (p_leakage->sub_device_data[sub_device_index].ch_data[0].state & APP_LEAKAGE_SUB_DEVICE_STATE_TIME_OUT))
+ if (k > 0 && (p_leakage->sub_device_data[sub_device_index].ch_data[0].state & APP_LEAKAGE_SUB_DEVICE_STATE_TIME_OUT))
{
/*һͨʱʣͨ洢ʱ*/
}
@@ -209,34 +202,33 @@ void app_leakage_task(void)
history_add_alarm_record(i, sub_device_index, k, APP_LEAKAGE_SUB_DEVICE_STATE_TIME_OUT, 0);
}
}
-
+
/* ʷ״̬ */
prev_ch_state[sub_device_index][k] = current_state;
}
-
+
/* ͳ쳣豸 - 豸ͳ */
- for(k = 0; k < APP_LEAKAGE_SUB_DEVICE_USE_CH_NUM; k++)
+ for (k = 0; k < APP_LEAKAGE_SUB_DEVICE_USE_CH_NUM; k++)
{
u16 current_state = p_leakage->sub_device_data[sub_device_index].ch_data[k].state;
-
- if(current_state & APP_LEAKAGE_SUB_DEVICE_STATE_TIME_OUT)
+
+ if (current_state & APP_LEAKAGE_SUB_DEVICE_STATE_TIME_OUT)
{
p_leakage->region_data[i].time_out_num++;
p_leakage->alarm_state |= APP_LEAKAGE_SUB_DEVICE_STATE_TIME_OUT;
break;
}
- else if(current_state & APP_LEAKAGE_SUB_DEVICE_STATE_OPEN)
+ else if (current_state & APP_LEAKAGE_SUB_DEVICE_STATE_OPEN)
{
- p_leakage->region_data[i].open_num++;
- p_leakage->alarm_state |= APP_LEAKAGE_SUB_DEVICE_STATE_OPEN;
+ p_leakage->region_data[i].open_num++;
+ p_leakage->alarm_state |= APP_LEAKAGE_SUB_DEVICE_STATE_OPEN;
}
- else if(current_state & APP_LEAKAGE_SUB_DEVICE_STATE_LEAKAGE)
+ else if (current_state & APP_LEAKAGE_SUB_DEVICE_STATE_LEAKAGE)
{
p_leakage->region_data[i].leakage_num++;
p_leakage->alarm_state |= APP_LEAKAGE_SUB_DEVICE_STATE_LEAKAGE;
}
}
-
}
}
/* ⱨ*/
@@ -246,29 +238,28 @@ void app_leakage_task(void)
/* ȡǰʱ */
static void get_current_time(u8 *time_buffer)
{
- /* : 2ֽ (: 2024 -> 0x07 0xE8) */
- uint16_t year = 2000 + DS1302.Time.Year; /* RTCͨ2000ʼ */
- time_buffer[0] = (year >> 8) & 0xFF; /* ֽ */
- time_buffer[1] = year & 0xFF; /* ֽ */
- time_buffer[2] = DS1302.Time.Month; /* */
- time_buffer[3] = DS1302.Time.Day; /* */
- time_buffer[4] = DS1302.Time.Hour; /* ʱ */
- time_buffer[5] = DS1302.Time.Minute; /* */
- time_buffer[6] = DS1302.Time.Second; /* */
+ /* : 2ֽ (: 2024 -> 0x07 0xE8) */
+ uint16_t year = 2000 + DS1302.Time.Year; /* RTCͨ2000ʼ */
+ time_buffer[0] = (year >> 8) & 0xFF; /* ֽ */
+ time_buffer[1] = year & 0xFF; /* ֽ */
+ time_buffer[2] = DS1302.Time.Month; /* */
+ time_buffer[3] = DS1302.Time.Day; /* */
+ time_buffer[4] = DS1302.Time.Hour; /* ʱ */
+ time_buffer[5] = DS1302.Time.Minute; /* */
+ time_buffer[6] = DS1302.Time.Second; /* */
}
/* FlashȡʷԪ */
static void history_read_metadata(void)
{
app_leakage_history_metadata_t temp_metadata;
-
- w25q32.read(W25Q32_HISTORY_ALARM_METADATA_ADDR,
- (uint8_t*)&temp_metadata,
+
+ w25q32.read(W25Q32_HISTORY_ALARM_METADATA_ADDR,
+ (uint8_t *)&temp_metadata,
sizeof(app_leakage_history_metadata_t));
-
-
- if(temp_metadata.total_records <= temp_metadata.max_records &&
- temp_metadata.write_index < temp_metadata.max_records)
+
+ if (temp_metadata.total_records <= temp_metadata.max_records &&
+ temp_metadata.write_index < temp_metadata.max_records)
{
/* ЧƵȫֱ */
memcpy(&leakage.history_metadata, &temp_metadata, sizeof(app_leakage_history_metadata_t));
@@ -278,9 +269,9 @@ static void history_read_metadata(void)
/* Чʼ */
memset(&leakage.history_metadata, 0, sizeof(app_leakage_history_metadata_t));
leakage.history_metadata.max_records = MAX_HISTORY_ALARM_RECORDS;
-
+
/* 浽Flash */
- history_save_metadata();
+ history_save_metadata();
}
}
@@ -289,17 +280,17 @@ static void history_save_metadata(void)
{
/* Ԫ */
w25q32_sector_erase(W25Q32_HISTORY_ALARM_METADATA_ADDR);
-
+
/* дԪ */
- w25q32.write(W25Q32_HISTORY_ALARM_METADATA_ADDR,
- (uint8_t*)&leakage.history_metadata,
- sizeof(app_leakage_history_metadata_t));
+ w25q32.write(W25Q32_HISTORY_ALARM_METADATA_ADDR,
+ (uint8_t *)&leakage.history_metadata,
+ sizeof(app_leakage_history_metadata_t));
}
/* ¼Flashеĵַ */
static uint32_t history_calc_record_addr(u32 record_index)
{
- return W25Q32_HISTORY_ALARM_DATA_ADDR +
+ return W25Q32_HISTORY_ALARM_DATA_ADDR +
(record_index * HISTORY_ALARM_RECORD_SIZE);
}
@@ -307,7 +298,7 @@ static uint32_t history_calc_record_addr(u32 record_index)
static uint32_t history_calc_sector_addr(u32 record_index)
{
uint32_t record_addr = history_calc_record_addr(record_index);
- return record_addr & ~(W25Q32_SECTOR_SIZE - 1); /* 4K */
+ return record_addr & ~(W25Q32_SECTOR_SIZE - 1); /* 4K */
}
/* ʷ¼ */
@@ -315,76 +306,84 @@ void history_add_alarm_record(u8 region_idx, u8 device_idx, u8 channel, u16 alar
{
app_leakage_history_alarm_t new_alarm;
uint32_t write_addr;
-
+
/* 䱨¼ */
memset(&new_alarm, 0, sizeof(app_leakage_history_alarm_t));
-
+
/* */
- if (region_idx < leakage.region_num) {
- memcpy(new_alarm.region_name, leakage.region_data[region_idx].name,
+ if (region_idx < leakage.region_num)
+ {
+ memcpy(new_alarm.region_name, leakage.region_data[region_idx].name,
APP_LEAKAGE_STRING_NANE_LEN);
}
-
+
/* 豸ID */
- if (device_idx < APP_LEAKAGE_SUB_DEVICE_NUM) {
+ if (device_idx < APP_LEAKAGE_SUB_DEVICE_NUM)
+ {
new_alarm.device_id = leakage.sub_device_data[device_idx].flash_data.modbus_id;
memcpy(new_alarm.device_name, leakage.sub_device_data[device_idx].flash_data.device_name,
APP_LEAKAGE_STRING_NANE_LEN);
}
-
+
/* ͨ͡©Һ */
new_alarm.alarm_type = alarm_type;
new_alarm.channel = channel;
new_alarm.leak_distance = leak_distance;
-
+
/* ʼʱ */
get_current_time(new_alarm.start_time);
-
+
/* дַ */
write_addr = history_calc_record_addr(leakage.history_metadata.write_index);
-
+
/* ü¼ܿԽΧ2 */
uint32_t start_sector = write_addr & ~(W25Q32_SECTOR_SIZE - 1);
uint32_t end_addr = write_addr + HISTORY_ALARM_RECORD_SIZE - 1;
uint32_t end_sector = end_addr & ~(W25Q32_SECTOR_SIZE - 1);
uint32_t num_sectors = (end_sector - start_sector) / W25Q32_SECTOR_SIZE + 1;
-
+
/* ÿ4KB */
uint32_t sectors[2] = {start_sector, (num_sectors > 1) ? end_sector : 0};
-
+
/* 1. ȡ漰RAM */
- for (uint32_t i = 0; i < num_sectors; i++) {
+ for (uint32_t i = 0; i < num_sectors; i++)
+ {
w25q32.read(sectors[i], sector_buf[i], W25Q32_SECTOR_SIZE);
}
-
+
/* 2. Щ */
- for (uint32_t i = 0; i < num_sectors; i++) {
+ for (uint32_t i = 0; i < num_sectors; i++)
+ {
w25q32_sector_erase(sectors[i]);
}
-
+
/* 3. RAMи¼¼ */
uint32_t offset_in_start = write_addr - start_sector;
uint32_t first_part_len = (num_sectors == 1) ? HISTORY_ALARM_RECORD_SIZE : (W25Q32_SECTOR_SIZE - offset_in_start);
memcpy(sector_buf[0] + offset_in_start, &new_alarm, first_part_len);
- if (num_sectors > 1) {
+ if (num_sectors > 1)
+ {
uint32_t second_part_len = HISTORY_ALARM_RECORD_SIZE - first_part_len;
- memcpy(sector_buf[1], (uint8_t*)&new_alarm + first_part_len, second_part_len);
+ memcpy(sector_buf[1], (uint8_t *)&new_alarm + first_part_len, second_part_len);
}
-
+
/* 4. ĺĻдFlash */
- for (uint32_t i = 0; i < num_sectors; i++) {
+ for (uint32_t i = 0; i < num_sectors; i++)
+ {
w25q32.write(sectors[i], sector_buf[i], W25Q32_SECTOR_SIZE);
}
-
+
/* 5. ԪݣζУ */
leakage.history_metadata.write_index++;
- if (leakage.history_metadata.write_index >= leakage.history_metadata.max_records) {
+ if (leakage.history_metadata.write_index >= leakage.history_metadata.max_records)
+ {
leakage.history_metadata.write_index = 0;
}
- if (leakage.history_metadata.total_records < leakage.history_metadata.max_records) {
+ if (leakage.history_metadata.total_records < leakage.history_metadata.max_records)
+ {
leakage.history_metadata.total_records++;
}
-
+
/* ԪݵFlash */
history_save_metadata();
}
@@ -392,31 +391,28 @@ void history_add_alarm_record(u8 region_idx, u8 device_idx, u8 channel, u16 alar
/* ȡʷ¼ */
static u8 history_read_record(u32 record_index, app_leakage_history_alarm_t *record)
{
- if(record_index >= leakage.history_metadata.total_records)
+ if (record_index >= leakage.history_metadata.total_records)
{
- return 0; /* ¼Ч */
+ return 0; /* ¼Ч */
}
-
+
/* ʵʴ洢ѭУ */
uint32_t actual_index;
- if(leakage.history_metadata.total_records == leakage.history_metadata.max_records) {
- // write_index ָɼ¼
- actual_index = (leakage.history_metadata.write_index - 1 - record_index
- + leakage.history_metadata.max_records) % leakage.history_metadata.max_records;
- } else {
- // δ˳洢 0 磬 total_records-1
- actual_index = leakage.history_metadata.total_records - 1 - record_index;
- }
- if(actual_index == 125)
+ if (leakage.history_metadata.total_records == leakage.history_metadata.max_records)
{
- actual_index =125;
+ /* */
+ actual_index = (leakage.history_metadata.write_index + record_index) %
+ leakage.history_metadata.max_records;
+ }
+ else
+ {
+ /* δֱӶȡ */
+ actual_index = record_index;
}
-
- uint32_t read_addr = history_calc_record_addr(actual_index);
- w25q32.read(read_addr, (uint8_t*)record, HISTORY_ALARM_RECORD_SIZE);
-
-
+ uint32_t read_addr = history_calc_record_addr(actual_index);
+ w25q32.read(read_addr, (uint8_t *)record, HISTORY_ALARM_RECORD_SIZE);
+
return 1;
}
@@ -426,19 +422,18 @@ static void history_clear_all(void)
/* Ԫ */
memset(&leakage.history_metadata, 0, sizeof(app_leakage_history_metadata_t));
leakage.history_metadata.max_records = MAX_HISTORY_ALARM_RECORDS;
-
+
/* Ԫ */
history_save_metadata();
-
+
/* ѡ */
- for(uint32_t i = 0; i < HISTORY_ALARM_SECTORS_NEEDED; i++)
+ for (uint32_t i = 0; i < HISTORY_ALARM_SECTORS_NEEDED; i++)
{
uint32_t sector_addr = W25Q32_HISTORY_ALARM_DATA_ADDR + i * W25Q32_SECTOR_SIZE;
w25q32_sector_erase(sector_addr);
}
}
-
/* ʼʷģ */
static void history_init(void)
{
diff --git a/leakage_system/usr/app/app_leakage.h b/leakage_system/usr/app/app_leakage.h
index e7eb351..21ef9e8 100644
--- a/leakage_system/usr/app/app_leakage.h
+++ b/leakage_system/usr/app/app_leakage.h
@@ -2,6 +2,7 @@
#define _APP_LEAKAGE_H_
#include "main.h"
+#include "bsp_W5500.h"
#define ENABLE (1)
#define DISABLE (0)
@@ -24,6 +25,8 @@ void app_leakage_region_classify(void);
void history_add_alarm_record(u8 region_idx, u8 device_idx, u8 channel, u16 alarm_type, u16 leak_distance);
+#define NETWORK_PORT_NUM BSP_W5500_PORT_NUM
+
/*豸洢IJ*/
typedef struct
{
@@ -66,7 +69,7 @@ typedef struct {
u8 ip[4];
u8 mask[4];
u8 gateway[4];
- u16 port;
+ u16 port[NETWORK_PORT_NUM];
}network_config_t;
/* ʷ¼ṹ */
diff --git a/leakage_system/usr/bsp/bsp_W5500.c b/leakage_system/usr/bsp/bsp_W5500.c
index 54d8a26..2c8aff1 100644
--- a/leakage_system/usr/bsp/bsp_W5500.c
+++ b/leakage_system/usr/bsp/bsp_W5500.c
@@ -33,7 +33,7 @@ bsp_W5500_t W5500 =
{
.Gateway_IP = {192,168,100,1}, /*IPַ*/
.Sub_Mask = {255,255,255,0}, /**/
- .Phy_Addr = {0x0c,0x29,0xab,0x7c,0x00,0x01}, /*ַ(MAC)*/
+ .Phy_Addr = {0x0c,0x29,0xab,0x7c,0x00,0x01}, /*ַ(MAC) ݵƬUIDMAC*/
.IP_Addr = {192,168,100,201}, /*IPַ*/
.Interrupt_Process = bsp_W5500_Interrupt_Process,
@@ -49,6 +49,24 @@ bsp_W5500_t W5500 =
.ConfigData.Port = {0x01,0xF6},
.Run_Mode = BSP_W5500_PORT_RUN_MODE_TCP_SERVER,
},
+ .W5500_Class[1] =
+ {
+ .SocketPort = 1, /*ʹö˿1*/
+ .ConfigData.Port = {0x01,0xF7},
+ .Run_Mode = BSP_W5500_PORT_RUN_MODE_TCP_SERVER,
+ },
+ .W5500_Class[2] =
+ {
+ .SocketPort = 2, /*ʹö˿2*/
+ .ConfigData.Port = {0x01,0xF8},
+ .Run_Mode = BSP_W5500_PORT_RUN_MODE_TCP_SERVER,
+ },
+ .W5500_Class[3] =
+ {
+ .SocketPort = 3, /*ʹö˿3*/
+ .ConfigData.Port = {0x01,0xF9},
+ .Run_Mode = BSP_W5500_PORT_RUN_MODE_TCP_SERVER,
+ },
};
bsp_W5500_t *pW5500 = &W5500;
@@ -822,7 +840,7 @@ static void bsp_W5500_Task(void)
if ((pW5500->W5500_Class[i].TR_Data_State & BSP_W5500_PORT_DATA_RECEIVE) == BSP_W5500_PORT_DATA_RECEIVE) // Socket0յ
{
pW5500->W5500_Class[i].TR_Data_State &= ~BSP_W5500_PORT_DATA_RECEIVE;
- u16 Len = Read_SOCK_Data_Buffer(0, pW5500->W5500_Class[i].Rx_Buffer);
+ u16 Len = Read_SOCK_Data_Buffer(i, pW5500->W5500_Class[i].Rx_Buffer);
// Write_SOCK_Data_Buffer(&pW5500->W5500_Class[i], pW5500->W5500_Class[i].Rx_Buffer, Len);
// printf("RX");
// Debug_UartSend(pW5500->W5500_Class[i].Rx_Buffer, Len);
diff --git a/leakage_system/usr/bsp/bsp_W5500.h b/leakage_system/usr/bsp/bsp_W5500.h
index 497e1d1..11e9cff 100644
--- a/leakage_system/usr/bsp/bsp_W5500.h
+++ b/leakage_system/usr/bsp/bsp_W5500.h
@@ -215,7 +215,7 @@
#define W5500_INT_PORT W5500_INT_GPIO_Port
typedef u8 SOCKET; // Զ˿ں
-#define BSP_W5500_PORT_NUM 1
+#define BSP_W5500_PORT_NUM 4
#define BSP_W5500_TX_DATA_LEN 2048
#define BSP_W5500_RX_DATA_LEN 2048
diff --git a/leakage_system/usr/bsp/bsp_w25q.c b/leakage_system/usr/bsp/bsp_w25q.c
index 347a00c..48e1205 100644
--- a/leakage_system/usr/bsp/bsp_w25q.c
+++ b/leakage_system/usr/bsp/bsp_w25q.c
@@ -98,6 +98,7 @@ static void gui_tjc_hmi_read_device_info_from_w25q(void)
static void gui_tjc_hmi_read_network_config_from_w25q(void)
{
+ u16 i;
network_config_t config;
w25q32.read(W25Q32_NETWORK_CONFIG_ADDR, (uint8_t*)&config, sizeof(config));
@@ -106,8 +107,12 @@ static void gui_tjc_hmi_read_network_config_from_w25q(void)
memcpy(W5500.IP_Addr, config.ip, 4);
memcpy(W5500.Sub_Mask, config.mask, 4);
memcpy(W5500.Gateway_IP, config.gateway, 4);
- W5500.W5500_Class[0].ConfigData.Port[0] = (config.port >> 8) & 0xFF;
- W5500.W5500_Class[0].ConfigData.Port[1] = config.port & 0xFF;
+
+ for(i=0;i> 8) & 0xFF;
+ W5500.W5500_Class[i].ConfigData.Port[1] = config.port[i] & 0xFF;
+ }
}
}
diff --git a/leakage_system/usr/gui/gui_tjc_hmi.c b/leakage_system/usr/gui/gui_tjc_hmi.c
index bf57528..abb2bcd 100644
--- a/leakage_system/usr/gui/gui_tjc_hmi.c
+++ b/leakage_system/usr/gui/gui_tjc_hmi.c
@@ -3,12 +3,11 @@
#include
#include
#include
-#include
+#include
#include "proto_modbus_lib.h"
-
-#include "bsp_w25q.h" // Flash
+#include "bsp_w25q.h" // Flash
#include "bsp_W5500.h"
#include "bsp_uart.h"
#include "bsp_DS1302.h"
@@ -18,48 +17,43 @@
#include "app_com.h"
#include "app.h"
/*ڷͻ*/
-#define HMI_TX_BUFFER_NUM (4096)
+#define HMI_TX_BUFFER_NUM (4096)
/*ַƴ */
#define GUI_TJC_HMI_TEXT_BUFFER_NUM (256)
/*֡ͷ*/
-#define HMI_PROTO_FRAME_HEADER1 (0xAA)
-#define HMI_PROTO_FRAME_HEADER2 (0x55)
+#define HMI_PROTO_FRAME_HEADER1 (0xAA)
+#define HMI_PROTO_FRAME_HEADER2 (0x55)
/**/
-#define HMI_PROTO_CMD_GET (0x03) /*ȡ*/
-#define HMI_PROTO_CMD_SET (0x10) /*Ϣ*/
+#define HMI_PROTO_CMD_GET (0x03) /*ȡ*/
+#define HMI_PROTO_CMD_SET (0x10) /*Ϣ*/
/**/
-#define HMI_PROTO_GUI_MAIN (0x10)/* */
-#define HMI_PROTO_GUI_CURR_ALARM (0x11)/*ʵʱ */
-#define HMI_PROTO_GUI_DETAIL_MAIN (0x12)/*_ϸϢ */
-#define HMI_PROTO_GUI_LOGIN (0x13)/*¼ */
-#define HMI_PROTO_GUI_HISTORY_ALARM (0x14)/*ʷ */
-#define HMI_PROTO_GUI_TCP_CONFIG (0x15)/*ý */
-#define HMI_PROTO_GUI_DEVICE_CONFIG (0x16)/*豸ý */
-#define HMI_PROTO_GUI_HELP (0x17)/* */
-#define HMI_PROTO_GUI_TIME (0x18)/*ʱý*/
+#define HMI_PROTO_GUI_MAIN (0x10) /* */
+#define HMI_PROTO_GUI_CURR_ALARM (0x11) /*ʵʱ */
+#define HMI_PROTO_GUI_DETAIL_MAIN (0x12) /*_ϸϢ */
+#define HMI_PROTO_GUI_LOGIN (0x13) /*¼ */
+#define HMI_PROTO_GUI_HISTORY_ALARM (0x14) /*ʷ */
+#define HMI_PROTO_GUI_TCP_CONFIG (0x15) /*ý */
+#define HMI_PROTO_GUI_DEVICE_CONFIG (0x16) /*豸ý */
+#define HMI_PROTO_GUI_HELP (0x17) /* */
+#define HMI_PROTO_GUI_TIME (0x18) /*ʱý*/
/*ID*/
-#define GUI_MAIN (10)/**/
-#define GUI_CURR_ALARM (11)/*ʵʱ*/
-#define GUI_DETALL_MAIN (12)/*_ϸϢ*/
-#define GUI_LOGIN (13)/*½*/
-#define GUI_HISTORY_ALARM (14)/*ʷ*/
-#define GUI_TCP_CONFIG (15)/*ý*/
-#define GUI_DEVICE_CONFIG (16)/*豸ý*/
-#define GUI_TIME (18)/*ʱý*/
-
-#define HMI_PROTO_ASCII_RX_DELINITER (0xAA)/*շָ*/
-
-#define HMI_PROTO_ASCII_TX_DELINITER (0xFF)/*ͷָ*/
-#define HMI_PROTO_ASCII_TX_DELINITER_NUM (3)/*ͷָ*/
-
-#define W25Q32_PASSWORD_ADDR (W25Q32_USER_DATA_ADDR)/*洢ַ*/
-
-
+#define GUI_MAIN (10) /**/
+#define GUI_CURR_ALARM (11) /*ʵʱ*/
+#define GUI_DETALL_MAIN (12) /*_ϸϢ*/
+#define GUI_LOGIN (13) /*½*/
+#define GUI_HISTORY_ALARM (14) /*ʷ*/
+#define GUI_TCP_CONFIG (15) /*ý*/
+#define GUI_DEVICE_CONFIG (16) /*豸ý*/
+#define GUI_TIME (18) /*ʱý*/
+#define HMI_PROTO_ASCII_RX_DELINITER (0xAA) /*շָ*/
+#define HMI_PROTO_ASCII_TX_DELINITER (0xFF) /*ͷָ*/
+#define HMI_PROTO_ASCII_TX_DELINITER_NUM (3) /*ͷָ*/
+#define W25Q32_PASSWORD_ADDR (W25Q32_USER_DATA_ADDR) /*洢ַ*/
static void gui_tjc_hmi_init(void);
static void gui_tjc_hmi_communication_data_analysis(u8 *p_data, u16 len, void *rx_uart);
@@ -71,35 +65,32 @@ static char gui_tjc_hmi_text_buffer[GUI_TJC_HMI_TEXT_BUFFER_NUM];
/*豸*/
app_leakage_sub_device_flash_data_t temp_buffer[APP_LEAKAGE_SUB_DEVICE_NUM];
/*ַ ˿ں*/
-static char *hmi_proto_string_com[] =
-{
- "COM1",
- "COM2",
- "COM3",
- "COM4"
-};
+static char *hmi_proto_string_com[] =
+ {
+ "COM1",
+ "COM2",
+ "COM3",
+ "COM4"};
/*ַ */
-static char *hmi_proto_string_baudrate[] =
-{
- "2400",
- "4800",
- "9600",
- "115200",
+static char *hmi_proto_string_baudrate[] =
+ {
+ "2400",
+ "4800",
+ "9600",
+ "115200",
};
+static bsp_uart_t *p_rx_uart = NULL;
-static bsp_uart_t * p_rx_uart = NULL;
-
-gui_tjc_hmi_t tjc_hmi =
-{
- .all_page_index_clear = gui_tjc_hmi_all_page_index_clear,
- .init = gui_tjc_hmi_init,
+gui_tjc_hmi_t tjc_hmi =
+ {
+ .all_page_index_clear = gui_tjc_hmi_all_page_index_clear,
+ .init = gui_tjc_hmi_init,
};
gui_tjc_hmi_t *p_tjc_hmi = &tjc_hmi;
-
static void gui_tjc_hmi_class_update(void)
{
gui_tjc_hmi_all_page_index_clear();
@@ -107,21 +98,18 @@ static void gui_tjc_hmi_class_update(void)
app_com.class_update();
}
-
-
/*ĻЭʼ*/
static void gui_tjc_hmi_init(void)
{
com_uart1.rx_data_analysis = gui_tjc_hmi_communication_data_analysis;
}
-
/*ͽӿ*/
-static void gui_tjc_hmi_data_send(u8 *p_data,u16 len)
+static void gui_tjc_hmi_data_send(u8 *p_data, u16 len)
{
- if(p_rx_uart != NULL)
+ if (p_rx_uart != NULL)
{
- p_rx_uart->send(p_rx_uart,p_data,len);
+ p_rx_uart->send(p_rx_uart, p_data, len);
}
}
@@ -129,12 +117,12 @@ static void gui_tjc_hmi_read_password_from_w25q(void)
{
/*ֱӶȡ4ֽ*/
w25q32.read(W25Q32_PASSWORD_ADDR, p_tjc_hmi->password, 4);
-
+
/*ЧԣȫΪ0xFF˵״ʹã*/
- if(p_tjc_hmi->password[0] == 0xFF &&
- p_tjc_hmi->password[1] == 0xFF &&
- p_tjc_hmi->password[2] == 0xFF &&
- p_tjc_hmi->password[3] == 0xFF)
+ if (p_tjc_hmi->password[0] == 0xFF &&
+ p_tjc_hmi->password[1] == 0xFF &&
+ p_tjc_hmi->password[2] == 0xFF &&
+ p_tjc_hmi->password[3] == 0xFF)
{
memset(p_tjc_hmi->password, 0, 4);
}
@@ -151,66 +139,73 @@ static void gui_tjc_hmi_save_password_to_w25q(void)
/* 豸Ϣapp_leakage浽W25Q32 */
static void gui_tjc_hmi_save_device_info_to_w25q(void)
-{
+{
/* app_leakageṹ帴Ƶʱ */
- for(int i = 0; i < APP_LEAKAGE_SUB_DEVICE_NUM; i++)
+ for (int i = 0; i < APP_LEAKAGE_SUB_DEVICE_NUM; i++)
{
temp_buffer[i] = leakage.sub_device_data[i].flash_data;
}
-
+
/* Flash - д */
u32 erase_addr = W25Q32_DEVICE_INFO_ADDR;
-
+
/* ȷַ4K루W25Q32_SECTOR_SIZE = 4096 */
erase_addr &= ~(W25Q32_SECTOR_SIZE - 1);
-
+
/* */
w25q32_sector_erase(erase_addr);
-
+
/* һд豸Ϣ */
- w25q32.write(W25Q32_DEVICE_INFO_ADDR,
- (uint8_t*)temp_buffer,
- DEVICE_INFO_STORAGE_SIZE);
+ w25q32.write(W25Q32_DEVICE_INFO_ADDR,
+ (uint8_t *)temp_buffer,
+ DEVICE_INFO_STORAGE_SIZE);
}
/* ǰW5500ñ浽W25Q32 */
static void gui_tjc_hmi_save_network_config_to_w25q(void)
{
+ u16 i;
network_config_t config;
memcpy(config.ip, W5500.IP_Addr, 4);
memcpy(config.mask, W5500.Sub_Mask, 4);
memcpy(config.gateway, W5500.Gateway_IP, 4);
- config.port = (W5500.W5500_Class[0].ConfigData.Port[0] << 8) |
- W5500.W5500_Class[0].ConfigData.Port[1];
-
+ for (i = 0; i < NETWORK_PORT_NUM; i++)
+ {
+ config.port[i] = (W5500.W5500_Class[i].ConfigData.Port[0] << 8) |
+ W5500.W5500_Class[i].ConfigData.Port[1];
+ }
+
/* 4K룩 */
u32 erase_addr = W25Q32_NETWORK_CONFIG_ADDR & ~(W25Q32_SECTOR_SIZE - 1);
w25q32_sector_erase(erase_addr);
-
+
/* д */
- w25q32.write(W25Q32_NETWORK_CONFIG_ADDR, (uint8_t*)&config, sizeof(config));
+ w25q32.write(W25Q32_NETWORK_CONFIG_ADDR, (uint8_t *)&config, sizeof(config));
}
/*纯*/
static void parse_ip_string(u8 *str, u8 len, u8 *ip)
{
u8 i = 0, part = 0, val = 0;
- while (i < len) {
- if (str[i] == '.') {
+ while (i < len)
+ {
+ if (str[i] == '.')
+ {
ip[part++] = val;
val = 0;
- } else if (str[i] >= '0' && str[i] <= '9') {
+ }
+ else if (str[i] >= '0' && str[i] <= '9')
+ {
val = val * 10 + (str[i] - '0');
}
i++;
}
- ip[part] = val; // һ
+ ip[part] = val; // һ
}
-
static void gui_tjc_hmi_all_page_index_clear(void)
{
- memset(&p_tjc_hmi->page,0,sizeof(gui_tjc_hmi_page_t));
+ memset(&p_tjc_hmi->page, 0, sizeof(gui_tjc_hmi_page_t));
}
/*öӦĿؼ
@@ -220,289 +215,299 @@ buffer
formatʽ
...
*/
-static u16 gui_tjc_hmi_tx_text_display(u16 z,u16 x,u16 y,char *buffer,const char *format,...)
+static u16 gui_tjc_hmi_tx_text_display(u16 z, u16 x, u16 y, char *buffer, const char *format, ...)
{
- u16 i,len;
+ u16 i, len;
s16 state;
va_list arg;
-
+
/*ջ*/
- memset(gui_tjc_hmi_text_buffer,0,sizeof(gui_tjc_hmi_text_buffer));
-
- va_start(arg,format);
+ memset(gui_tjc_hmi_text_buffer, 0, sizeof(gui_tjc_hmi_text_buffer));
+
+ va_start(arg, format);
/*ʽתַ*/
- state = vsnprintf(gui_tjc_hmi_text_buffer,GUI_TJC_HMI_TEXT_BUFFER_NUM,format,arg);
- if(-1 == state || state > GUI_TJC_HMI_TEXT_BUFFER_NUM)
- {
- va_end(arg);
- printf("Length REEOR");
- return 0;
- }
-
+ state = vsnprintf(gui_tjc_hmi_text_buffer, GUI_TJC_HMI_TEXT_BUFFER_NUM, format, arg);
+ if (-1 == state || state > GUI_TJC_HMI_TEXT_BUFFER_NUM)
+ {
+ va_end(arg);
+ printf("Length REEOR");
+ return 0;
+ }
+
/*ƴַ*/
- sprintf(buffer,"t%d_%d_%d.txt=\"%s\"",z,x,y,gui_tjc_hmi_text_buffer);
+ sprintf(buffer, "t%d_%d_%d.txt=\"%s\"", z, x, y, gui_tjc_hmi_text_buffer);
len = strlen(buffer);
- for(i=0;i 0)
+ remain_region_num = leakage.region_num % MAIN_PAGE_SUB_DEVICE_NUM; /*ʣ*/
+ if (remain_region_num > 0)
{
page_num++;
}
-
- len += gui_tjc_hmi_tx_text_display(GUI_MAIN,0, 3,
- (char *)&hmi_tx_buffer[len],
- "%d/%d",
- p_tjc_hmi->page.main_index+1,page_num);
-
-
+
+ len += gui_tjc_hmi_tx_text_display(GUI_MAIN, 0, 3,
+ (char *)&hmi_tx_buffer[len],
+ "%d/%d",
+ p_tjc_hmi->page.main_index + 1, page_num);
+
char time[20];
- sprintf(time,"20%d-%02d-%02d %02d:%02d:%02d",
- DS1302.Time.Year,
- DS1302.Time.Month,
- DS1302.Time.Day,
- DS1302.Time.Hour,
- DS1302.Time.Minute,
- DS1302.Time.Second);
- len += gui_tjc_hmi_tx_text_display(GUI_MAIN,0,0,(char *)&hmi_tx_buffer[len],"%s",time);
-
+ sprintf(time, "20%d-%02d-%02d %02d:%02d:%02d",
+ DS1302.Time.Year,
+ DS1302.Time.Month,
+ DS1302.Time.Day,
+ DS1302.Time.Hour,
+ DS1302.Time.Minute,
+ DS1302.Time.Second);
+ len += gui_tjc_hmi_tx_text_display(GUI_MAIN, 0, 0, (char *)&hmi_tx_buffer[len], "%s", time);
+
/*IPַ*/
- len += gui_tjc_hmi_tx_text_display(GUI_MAIN,0,1,(char *)&hmi_tx_buffer[len],
- "%d.%d.%d.%d:%d",
- W5500.IP_Addr[0],
- W5500.IP_Addr[1],
- W5500.IP_Addr[2],
- W5500.IP_Addr[3],
- (W5500.W5500_Class[0].ConfigData.Port[0] << 8) | (W5500.W5500_Class[0].ConfigData.Port[1]) );
-
+ len += gui_tjc_hmi_tx_text_display(GUI_MAIN, 0, 1, (char *)&hmi_tx_buffer[len],
+ "%d.%d.%d.%d:%d,%d,%d,%d",
+ W5500.IP_Addr[0],
+ W5500.IP_Addr[1],
+ W5500.IP_Addr[2],
+ W5500.IP_Addr[3],
+ (W5500.W5500_Class[0].ConfigData.Port[0] << 8) | (W5500.W5500_Class[0].ConfigData.Port[1]),
+ (W5500.W5500_Class[1].ConfigData.Port[0] << 8) | (W5500.W5500_Class[1].ConfigData.Port[1]),
+ (W5500.W5500_Class[2].ConfigData.Port[0] << 8) | (W5500.W5500_Class[2].ConfigData.Port[1]),
+ (W5500.W5500_Class[3].ConfigData.Port[0] << 8) | (W5500.W5500_Class[3].ConfigData.Port[1]));
+
/*״̬*/
u8 buzzer_state = (buzzer.p_flash_data->sw == USR_ENABLE) ? 11 : 13;
- /* "sw0.val=x" ָx Ϊ 0 1*/
- len += sprintf((char*)&hmi_tx_buffer[len], "p4.pic=%d", buzzer_state);
- for (u8 i = 0; i < 3; i++)
- {
- hmi_tx_buffer[len + i] = 0xFF;
- }
- len += 3;
- /*汾*/
- len += gui_tjc_hmi_tx_text_display(GUI_MAIN,0,3,(char *)&hmi_tx_buffer[len],
- "%s",SwVersion);
-
- if(HMI_PROTO_CMD_GET == cmd)/*ȡ*/
+ /* "sw0.val=x" ָx Ϊ 0 1*/
+ len += sprintf((char *)&hmi_tx_buffer[len], "p4.pic=%d", buzzer_state);
+ for (u8 i = 0; i < 3; i++)
{
- switch(opa)
- {
- case 0x01:/*ȡϢ*/
- {
- if (leakage.region_num == 0)
- {
- for (j = 0; j < MAIN_PAGE_SUB_DEVICE_NUM; j++)
- {
- for (y = 0; y < 5; y++)
- {
- len += gui_tjc_hmi_tx_text_display(GUI_MAIN,j+1, y+1, (char *)&hmi_tx_buffer[len], "");
- }
- }
- break;
- }
-
- if(p_tjc_hmi->page.main_index == page_num - 1 && remain_region_num >0)/*ʾʣ*/
- {
- for(j=0;jpage.main_index * MAIN_PAGE_SUB_DEVICE_NUM + j;
- x = j;
- /**/
- y = 0;
- len += gui_tjc_hmi_tx_text_display(GUI_MAIN,x+1,y+1,(char *)&hmi_tx_buffer[len],"%s",leakage.region_data[index].name);
- /*豸*/
- y = 1;
- len += gui_tjc_hmi_tx_text_display(GUI_MAIN,x+1,y+1,(char *)&hmi_tx_buffer[len],"%d",leakage.region_data[index].sub_device_num);
- /*©Һ*/
- y = 2;
- if(leakage.region_data[index].leakage_num == 0)
- {
- len += gui_tjc_hmi_tx_text_display(GUI_MAIN,x+1,y+1,(char *)&hmi_tx_buffer[len],"%s","Normal");
- }else
- {
- len += gui_tjc_hmi_tx_text_display(GUI_MAIN,x+1,y+1,(char *)&hmi_tx_buffer[len],"%d",leakage.region_data[index].leakage_num);
- }
- /*ϴ*/
- y = 3;
- if(leakage.region_data[index].open_num == 0)
- {
- len += gui_tjc_hmi_tx_text_display(GUI_MAIN,x+1,y+1,(char *)&hmi_tx_buffer[len],"%s","Normal");
- }else
- {
- len += gui_tjc_hmi_tx_text_display(GUI_MAIN,x+1,y+1,(char *)&hmi_tx_buffer[len],"%d",leakage.region_data[index].open_num);
- }
- /*ͨѶ*/
- y = 4;
- if(leakage.region_data[index].time_out_num == 0)
- {
- len += gui_tjc_hmi_tx_text_display(GUI_MAIN,x+1,y+1,(char *)&hmi_tx_buffer[len],"%s","Normal");
- }else
- {
- len += gui_tjc_hmi_tx_text_display(GUI_MAIN,x+1,y+1,(char *)&hmi_tx_buffer[len],"%d",leakage.region_data[index].time_out_num);
- }
- }
- // еУΪַ
- for(j = remain_region_num; j < MAIN_PAGE_SUB_DEVICE_NUM; j++)
- {
- for(y = 0; y < 5; y++) // 5
- {
- len += gui_tjc_hmi_tx_text_display(GUI_MAIN,j+1, y+1, (char *)&hmi_tx_buffer[len], "");
- }
- }
- }
- else
- {
- for(j=0;jpage.main_index*MAIN_PAGE_SUB_DEVICE_NUM + j;
- x = j;
- /**/
- y = 0;
- len += gui_tjc_hmi_tx_text_display(GUI_MAIN,x+1,y+1,(char *)&hmi_tx_buffer[len],"%s",leakage.region_data[index].name);
- /*豸*/
- y = 1;
- len += gui_tjc_hmi_tx_text_display(GUI_MAIN,x+1,y+1,(char *)&hmi_tx_buffer[len],"%d",leakage.region_data[index].sub_device_num);
- /*©Һ*/
- y = 2;
- if(leakage.region_data[index].leakage_num == 0)
- {
- len += gui_tjc_hmi_tx_text_display(GUI_MAIN,x+1,y+1,(char *)&hmi_tx_buffer[len],"%s","Normal");
- }else
- {
- len += gui_tjc_hmi_tx_text_display(GUI_MAIN,x+1,y+1,(char *)&hmi_tx_buffer[len],"%d",leakage.region_data[index].leakage_num);
- }
- /*ϴ*/
- y = 3;
- if(leakage.region_data[index].open_num == 0)
- {
- len += gui_tjc_hmi_tx_text_display(GUI_MAIN,x+1,y+1,(char *)&hmi_tx_buffer[len],"%s","Normal");
- }else
- {
- len += gui_tjc_hmi_tx_text_display(GUI_MAIN,x+1,y+1,(char *)&hmi_tx_buffer[len],"%d",leakage.region_data[index].open_num);
- }
- /*ͨѶ*/
- y = 4;
- if(leakage.region_data[index].time_out_num == 0)
- {
- len += gui_tjc_hmi_tx_text_display(GUI_MAIN,x+1,y+1,(char *)&hmi_tx_buffer[len],"%s","Normal");
- }else
- {
- len += gui_tjc_hmi_tx_text_display(GUI_MAIN,x+1,y+1,(char *)&hmi_tx_buffer[len],"%d",leakage.region_data[index].time_out_num);
- }
- }
- }
- }break;
- case 0x03:/*ҳ*/
- {
- if(0x01 == p_data[0])
- {
- if(page_num - 1 <= p_tjc_hmi->page.main_index)
- {
- p_tjc_hmi->page.main_index = 0;
- }
- else
- {
- p_tjc_hmi->page.main_index++;
- }
- }
- else
- {
-
- if(0 == p_tjc_hmi->page.main_index)
- {
- p_tjc_hmi->page.main_index = page_num - 1;
- }
- else
- {
- p_tjc_hmi->page.main_index--;
- }
- }
- }
- default:return;
- }
- len = strlen((char *)hmi_tx_buffer);
- gui_tjc_hmi_data_send(hmi_tx_buffer,len);
+ hmi_tx_buffer[len + i] = 0xFF;
}
- else if(HMI_PROTO_CMD_SET == cmd)/**/
+ len += 3;
+ /*汾*/
+ len += gui_tjc_hmi_tx_text_display(GUI_MAIN, 0, 2, (char *)&hmi_tx_buffer[len],
+ "%s", SwVersion);
+
+ if (HMI_PROTO_CMD_GET == cmd) /*ȡ*/
{
- switch(opa)
+ switch (opa)
{
- case 0x01:/**/
+ case 0x01: /*ȡϢ*/
+ {
+ if (leakage.region_num == 0)
{
- if(0x01 == p_data[0])
+ for (j = 0; j < MAIN_PAGE_SUB_DEVICE_NUM; j++)
{
- /*01*/
- buzzer.set.enable();
+ for (y = 0; y < 5; y++)
+ {
+ len += gui_tjc_hmi_tx_text_display(GUI_MAIN, j + 1, y + 1, (char *)&hmi_tx_buffer[len], "");
+ }
+ }
+ break;
+ }
+
+ if (p_tjc_hmi->page.main_index == page_num - 1 && remain_region_num > 0) /*ʾʣ*/
+ {
+ for (j = 0; j < remain_region_num; j++)
+ {
+ index = p_tjc_hmi->page.main_index * MAIN_PAGE_SUB_DEVICE_NUM + j;
+ x = j;
+ /**/
+ y = 0;
+ len += gui_tjc_hmi_tx_text_display(GUI_MAIN, x + 1, y + 1, (char *)&hmi_tx_buffer[len], "%s", leakage.region_data[index].name);
+ /*豸*/
+ y = 1;
+ len += gui_tjc_hmi_tx_text_display(GUI_MAIN, x + 1, y + 1, (char *)&hmi_tx_buffer[len], "%d", leakage.region_data[index].sub_device_num);
+ /*©Һ*/
+ y = 2;
+ if (leakage.region_data[index].leakage_num == 0)
+ {
+ len += gui_tjc_hmi_tx_text_display(GUI_MAIN, x + 1, y + 1, (char *)&hmi_tx_buffer[len], "%s", "Normal");
+ }
+ else
+ {
+ len += gui_tjc_hmi_tx_text_display(GUI_MAIN, x + 1, y + 1, (char *)&hmi_tx_buffer[len], "%d", leakage.region_data[index].leakage_num);
+ }
+ /*ϴ*/
+ y = 3;
+ if (leakage.region_data[index].open_num == 0)
+ {
+ len += gui_tjc_hmi_tx_text_display(GUI_MAIN, x + 1, y + 1, (char *)&hmi_tx_buffer[len], "%s", "Normal");
+ }
+ else
+ {
+ len += gui_tjc_hmi_tx_text_display(GUI_MAIN, x + 1, y + 1, (char *)&hmi_tx_buffer[len], "%d", leakage.region_data[index].open_num);
+ }
+ /*ͨѶ*/
+ y = 4;
+ if (leakage.region_data[index].time_out_num == 0)
+ {
+ len += gui_tjc_hmi_tx_text_display(GUI_MAIN, x + 1, y + 1, (char *)&hmi_tx_buffer[len], "%s", "Normal");
+ }
+ else
+ {
+ len += gui_tjc_hmi_tx_text_display(GUI_MAIN, x + 1, y + 1, (char *)&hmi_tx_buffer[len], "%d", leakage.region_data[index].time_out_num);
+ }
+ }
+ // еУΪַ
+ for (j = remain_region_num; j < MAIN_PAGE_SUB_DEVICE_NUM; j++)
+ {
+ for (y = 0; y < 5; y++) // 5
+ {
+ len += gui_tjc_hmi_tx_text_display(GUI_MAIN, j + 1, y + 1, (char *)&hmi_tx_buffer[len], "");
+ }
+ }
+ }
+ else
+ {
+ for (j = 0; j < MAIN_PAGE_SUB_DEVICE_NUM; j++)
+ {
+ index = p_tjc_hmi->page.main_index * MAIN_PAGE_SUB_DEVICE_NUM + j;
+ x = j;
+ /**/
+ y = 0;
+ len += gui_tjc_hmi_tx_text_display(GUI_MAIN, x + 1, y + 1, (char *)&hmi_tx_buffer[len], "%s", leakage.region_data[index].name);
+ /*豸*/
+ y = 1;
+ len += gui_tjc_hmi_tx_text_display(GUI_MAIN, x + 1, y + 1, (char *)&hmi_tx_buffer[len], "%d", leakage.region_data[index].sub_device_num);
+ /*©Һ*/
+ y = 2;
+ if (leakage.region_data[index].leakage_num == 0)
+ {
+ len += gui_tjc_hmi_tx_text_display(GUI_MAIN, x + 1, y + 1, (char *)&hmi_tx_buffer[len], "%s", "Normal");
+ }
+ else
+ {
+ len += gui_tjc_hmi_tx_text_display(GUI_MAIN, x + 1, y + 1, (char *)&hmi_tx_buffer[len], "%d", leakage.region_data[index].leakage_num);
+ }
+ /*ϴ*/
+ y = 3;
+ if (leakage.region_data[index].open_num == 0)
+ {
+ len += gui_tjc_hmi_tx_text_display(GUI_MAIN, x + 1, y + 1, (char *)&hmi_tx_buffer[len], "%s", "Normal");
+ }
+ else
+ {
+ len += gui_tjc_hmi_tx_text_display(GUI_MAIN, x + 1, y + 1, (char *)&hmi_tx_buffer[len], "%d", leakage.region_data[index].open_num);
+ }
+ /*ͨѶ*/
+ y = 4;
+ if (leakage.region_data[index].time_out_num == 0)
+ {
+ len += gui_tjc_hmi_tx_text_display(GUI_MAIN, x + 1, y + 1, (char *)&hmi_tx_buffer[len], "%s", "Normal");
+ }
+ else
+ {
+ len += gui_tjc_hmi_tx_text_display(GUI_MAIN, x + 1, y + 1, (char *)&hmi_tx_buffer[len], "%d", leakage.region_data[index].time_out_num);
+ }
+ }
+ }
+ }
+ break;
+ case 0x03: /*ҳ*/
+ {
+ if (0x01 == p_data[0])
+ {
+ if (page_num - 1 <= p_tjc_hmi->page.main_index)
+ {
+ p_tjc_hmi->page.main_index = 0;
}
else
{
- /*00رշ*/
- buzzer.set.disable();
+ p_tjc_hmi->page.main_index++;
}
}
- default:return;
+ else
+ {
+
+ if (0 == p_tjc_hmi->page.main_index)
+ {
+ p_tjc_hmi->page.main_index = page_num - 1;
+ }
+ else
+ {
+ p_tjc_hmi->page.main_index--;
+ }
+ }
+ }
+ default:
+ return;
}
len = strlen((char *)hmi_tx_buffer);
- gui_tjc_hmi_data_send(hmi_tx_buffer,len);
+ gui_tjc_hmi_data_send(hmi_tx_buffer, len);
+ }
+ else if (HMI_PROTO_CMD_SET == cmd) /**/
+ {
+ switch (opa)
+ {
+ case 0x01: /**/
+ {
+ if (0x01 == p_data[0])
+ {
+ /*01*/
+ buzzer.set.enable();
+ }
+ else
+ {
+ /*00رշ*/
+ buzzer.set.disable();
+ }
+ }
+ default:
+ return;
+ }
+ len = strlen((char *)hmi_tx_buffer);
+ gui_tjc_hmi_data_send(hmi_tx_buffer, len);
}
}
/*ʵʱӦ*/
-static void gui_tjc_hmi_curr_alarm_send(u8 cmd,u8 opa,u8 *p_data)
+static void gui_tjc_hmi_curr_alarm_send(u8 cmd, u8 opa, u8 *p_data)
{
- /*ÿҳʾı豸*/
- #define REAL_ALARM_PAGE_NUM (4)
- u16 len = 0,i,j,x,y,device_index,ch,index;
- u8 page_num,remain_alrm_device_num,display_count;
+/*ÿҳʾı豸*/
+#define REAL_ALARM_PAGE_NUM (4)
+ u16 len = 0, i, j, x, y, device_index, ch, index;
+ u8 page_num, remain_alrm_device_num, display_count;
u8 alarm_device_count;
u8 alarm_device_index[APP_LEAKAGE_SUB_DEVICE_NUM];
-
- memset(hmi_tx_buffer,0,sizeof(hmi_tx_buffer));
-
+
+ memset(hmi_tx_buffer, 0, sizeof(hmi_tx_buffer));
+
/*㱨豸*/
alarm_device_count = 0;
j = 0;
- for(i = 0;i 0)
+ if (remain_alrm_device_num > 0)
{
page_num++;
}
-
- if (page_num == 0) {
+
+ if (page_num == 0)
+ {
page_num = 1;
}
- if (p_tjc_hmi->page.real_alarm_index >= page_num) {
+ if (p_tjc_hmi->page.real_alarm_index >= page_num)
+ {
p_tjc_hmi->page.real_alarm_index = page_num - 1;
}
- len += gui_tjc_hmi_tx_text_display(GUI_CURR_ALARM,0, 0,
- (char *)&hmi_tx_buffer[len],
- "%d/%d",
- p_tjc_hmi->page.real_alarm_index+1,page_num);
-
-
-
-
- if(HMI_PROTO_CMD_GET == cmd)/*ȡ*/
+ len += gui_tjc_hmi_tx_text_display(GUI_CURR_ALARM, 0, 0,
+ (char *)&hmi_tx_buffer[len],
+ "%d/%d",
+ p_tjc_hmi->page.real_alarm_index + 1, page_num);
+
+ if (HMI_PROTO_CMD_GET == cmd) /*ȡ*/
{
- switch(opa)
+ switch (opa)
{
- case 0x01:/*ȡʵʱϢ*/
+ case 0x01: /*ȡʵʱϢ*/
+ {
+ if (alarm_device_count == 0)
{
- if(alarm_device_count == 0)
+ for (i = 0; i < REAL_ALARM_PAGE_NUM; i++)
{
- for (i= 0; i < REAL_ALARM_PAGE_NUM; i++)
+ x = i;
+ len += gui_tjc_hmi_tx_text_display(GUI_CURR_ALARM, x + 1, 1, (char *)&hmi_tx_buffer[len], ""); //
+ len += gui_tjc_hmi_tx_text_display(GUI_CURR_ALARM, x + 1, 2, (char *)&hmi_tx_buffer[len], ""); // 豸ID
+ len += gui_tjc_hmi_tx_text_display(GUI_CURR_ALARM, x + 1, 3, (char *)&hmi_tx_buffer[len], ""); // 豸
+ len += gui_tjc_hmi_tx_text_display(GUI_CURR_ALARM, x + 1, 4, (char *)&hmi_tx_buffer[len], ""); // ͨѶ״̬
+ for (ch = 0; ch < APP_LEAKAGE_SUB_DEVICE_CH_NUM; ch++)
+ {
+ len += gui_tjc_hmi_tx_text_display(GUI_CURR_ALARM, x + 1, 5 + (ch * 3), (char *)&hmi_tx_buffer[len], "");
+ len += gui_tjc_hmi_tx_text_display(GUI_CURR_ALARM, x + 1, 6 + (ch * 3), (char *)&hmi_tx_buffer[len], "");
+ len += gui_tjc_hmi_tx_text_display(GUI_CURR_ALARM, x + 1, 7 + (ch * 3), (char *)&hmi_tx_buffer[len], "");
+ }
+ }
+ }
+ else
+ {
+ if (p_tjc_hmi->page.real_alarm_index == page_num - 1 && remain_alrm_device_num > 0)
+ {
+ for (j = 0; j < remain_alrm_device_num; j++)
+ {
+ index = p_tjc_hmi->page.real_alarm_index * REAL_ALARM_PAGE_NUM + j;
+ device_index = alarm_device_index[index];
+ x = j;
+
+ /**/
+ y = 0;
+ len += gui_tjc_hmi_tx_text_display(GUI_CURR_ALARM, x + 1, y + 1, (char *)&hmi_tx_buffer[len], "%s", leakage.sub_device_data[device_index].flash_data.region_name);
+
+ /*豸ID*/
+ y = 1;
+ len += gui_tjc_hmi_tx_text_display(GUI_CURR_ALARM, x + 1, y + 1, (char *)&hmi_tx_buffer[len], "%d", leakage.sub_device_data[device_index].flash_data.modbus_id);
+
+ /*豸*/
+ y = 2;
+ len += gui_tjc_hmi_tx_text_display(GUI_CURR_ALARM, x + 1, y + 1, (char *)&hmi_tx_buffer[len], "%s", leakage.sub_device_data[device_index].flash_data.device_name);
+
+ /*ͨѶ״̬*/
+ y = 3;
+ u16 comm_state = 0;
+ for (ch = 0; ch < APP_LEAKAGE_SUB_DEVICE_CH_NUM; ch++)
{
- x = i;
- len += gui_tjc_hmi_tx_text_display(GUI_CURR_ALARM,x + 1, 1, (char *)&hmi_tx_buffer[len], ""); //
- len += gui_tjc_hmi_tx_text_display(GUI_CURR_ALARM,x + 1, 2, (char *)&hmi_tx_buffer[len], ""); // 豸ID
- len += gui_tjc_hmi_tx_text_display(GUI_CURR_ALARM,x + 1, 3, (char *)&hmi_tx_buffer[len], ""); // 豸
- len += gui_tjc_hmi_tx_text_display(GUI_CURR_ALARM,x + 1, 4, (char *)&hmi_tx_buffer[len], ""); // ͨѶ״̬
- for (ch = 0; ch < APP_LEAKAGE_SUB_DEVICE_CH_NUM; ch++)
+ if (leakage.sub_device_data[device_index].ch_data[ch].state & APP_LEAKAGE_SUB_DEVICE_STATE_TIME_OUT)
{
- len += gui_tjc_hmi_tx_text_display(GUI_CURR_ALARM,x + 1, 5 + (ch * 3), (char *)&hmi_tx_buffer[len], "");
- len += gui_tjc_hmi_tx_text_display(GUI_CURR_ALARM,x + 1, 6 + (ch * 3), (char *)&hmi_tx_buffer[len], "");
- len += gui_tjc_hmi_tx_text_display(GUI_CURR_ALARM,x + 1, 7 + (ch * 3), (char *)&hmi_tx_buffer[len], "");
+ comm_state = APP_LEAKAGE_SUB_DEVICE_STATE_TIME_OUT;
+ break;
}
}
- }
- else
- {
- if(p_tjc_hmi->page.real_alarm_index == page_num - 1 && remain_alrm_device_num > 0)
- {
- for(j=0;jpage.real_alarm_index * REAL_ALARM_PAGE_NUM + j;
- device_index = alarm_device_index[index];
- x = j;
-
- /**/
- y = 0;
- len += gui_tjc_hmi_tx_text_display(GUI_CURR_ALARM,x+1,y+1,(char *)&hmi_tx_buffer[len],"%s",leakage.sub_device_data[device_index].flash_data.region_name);
-
- /*豸ID*/
- y = 1;
- len += gui_tjc_hmi_tx_text_display(GUI_CURR_ALARM,x+1,y+1,(char *)&hmi_tx_buffer[len],"%d",leakage.sub_device_data[device_index].flash_data.modbus_id);
-
- /*豸*/
- y = 2;
- len += gui_tjc_hmi_tx_text_display(GUI_CURR_ALARM,x+1,y+1,(char *)&hmi_tx_buffer[len],"%s",leakage.sub_device_data[device_index].flash_data.device_name);
-
- /*ͨѶ״̬*/
- y =3;
- u16 comm_state = 0;
- for(ch=0;chpage.real_alarm_index * REAL_ALARM_PAGE_NUM + j;
- device_index = alarm_device_index[index];
-
- x = j;
-
- /**/
- y = 0;
- len += gui_tjc_hmi_tx_text_display(GUI_CURR_ALARM,x+1,y+1,(char *)&hmi_tx_buffer[len],"%s",leakage.sub_device_data[device_index].flash_data.region_name);
-
- /*豸ID*/
- y = 1;
- len += gui_tjc_hmi_tx_text_display(GUI_CURR_ALARM,x+1,y+1,(char *)&hmi_tx_buffer[len],"%d",leakage.sub_device_data[device_index].flash_data.modbus_id);
-
- /*豸*/
- y = 2;
- len += gui_tjc_hmi_tx_text_display(GUI_CURR_ALARM,x+1,y+1,(char *)&hmi_tx_buffer[len],"%s",leakage.sub_device_data[device_index].flash_data.device_name);
-
- /*ͨѶ״̬*/
- y =3;
- u16 comm_state = 0;
- for(ch=0;chpage.real_alarm_index)
- {
- p_tjc_hmi->page.real_alarm_index = 0;
- }
- else
- {
- p_tjc_hmi->page.real_alarm_index++;
}
}
else
{
-
- if(0 == p_tjc_hmi->page.real_alarm_index)
+ for (j = 0; j < REAL_ALARM_PAGE_NUM; j++)
{
- p_tjc_hmi->page.real_alarm_index = page_num - 1;
+ index = p_tjc_hmi->page.real_alarm_index * REAL_ALARM_PAGE_NUM + j;
+ device_index = alarm_device_index[index];
+
+ x = j;
+
+ /**/
+ y = 0;
+ len += gui_tjc_hmi_tx_text_display(GUI_CURR_ALARM, x + 1, y + 1, (char *)&hmi_tx_buffer[len], "%s", leakage.sub_device_data[device_index].flash_data.region_name);
+
+ /*豸ID*/
+ y = 1;
+ len += gui_tjc_hmi_tx_text_display(GUI_CURR_ALARM, x + 1, y + 1, (char *)&hmi_tx_buffer[len], "%d", leakage.sub_device_data[device_index].flash_data.modbus_id);
+
+ /*豸*/
+ y = 2;
+ len += gui_tjc_hmi_tx_text_display(GUI_CURR_ALARM, x + 1, y + 1, (char *)&hmi_tx_buffer[len], "%s", leakage.sub_device_data[device_index].flash_data.device_name);
+
+ /*ͨѶ״̬*/
+ y = 3;
+ u16 comm_state = 0;
+ for (ch = 0; ch < APP_LEAKAGE_SUB_DEVICE_CH_NUM; ch++)
+ {
+ if (leakage.sub_device_data[device_index].ch_data[ch].state & APP_LEAKAGE_SUB_DEVICE_STATE_TIME_OUT)
+ {
+ comm_state = APP_LEAKAGE_SUB_DEVICE_STATE_TIME_OUT;
+ break;
+ }
+ }
+ if (comm_state & APP_LEAKAGE_SUB_DEVICE_STATE_TIME_OUT)
+ {
+ len += gui_tjc_hmi_tx_text_display(GUI_CURR_ALARM, x + 1, y + 1, (char *)&hmi_tx_buffer[len], "ͨѶ쳣");
+ }
+ else
+ {
+ len += gui_tjc_hmi_tx_text_display(GUI_CURR_ALARM, x + 1, y + 1, (char *)&hmi_tx_buffer[len], "ͨѶ");
+ }
+
+ /*ͨ״̬*/
+ for (ch = 0; ch < APP_LEAKAGE_SUB_DEVICE_USE_CH_NUM; ch++)
+ {
+ u16 ch_state = leakage.sub_device_data[device_index].ch_data[ch].state;
+ u16 ch_distance = leakage.sub_device_data[device_index].ch_data[ch].distance;
+
+ y = 4 + (ch * 3);
+ if (comm_state & APP_LEAKAGE_SUB_DEVICE_STATE_TIME_OUT)
+ {
+ len += gui_tjc_hmi_tx_text_display(GUI_CURR_ALARM, x + 1, y + 1, (char *)&hmi_tx_buffer[len], "-");
+ }
+ else if (ch_state & APP_LEAKAGE_SUB_DEVICE_STATE_LEAKAGE)
+ {
+ len += gui_tjc_hmi_tx_text_display(GUI_CURR_ALARM, x + 1, y + 1, (char *)&hmi_tx_buffer[len], "©Һ");
+ }
+ else
+ {
+ len += gui_tjc_hmi_tx_text_display(GUI_CURR_ALARM, x + 1, y + 1, (char *)&hmi_tx_buffer[len], "");
+ }
+
+ y = 5 + (ch * 3);
+ if (comm_state & APP_LEAKAGE_SUB_DEVICE_STATE_TIME_OUT)
+ {
+ len += gui_tjc_hmi_tx_text_display(GUI_CURR_ALARM, x + 1, y + 1, (char *)&hmi_tx_buffer[len], "-");
+ }
+ else if (ch_state & APP_LEAKAGE_SUB_DEVICE_STATE_OPEN)
+ {
+ len += gui_tjc_hmi_tx_text_display(GUI_CURR_ALARM, x + 1, y + 1, (char *)&hmi_tx_buffer[len], "ϴ");
+ }
+ else
+ {
+ len += gui_tjc_hmi_tx_text_display(GUI_CURR_ALARM, x + 1, y + 1, (char *)&hmi_tx_buffer[len], "");
+ }
+
+ y = 6 + (ch * 3);
+ if (comm_state & APP_LEAKAGE_SUB_DEVICE_STATE_TIME_OUT)
+ {
+ len += gui_tjc_hmi_tx_text_display(GUI_CURR_ALARM, x + 1, y + 1, (char *)&hmi_tx_buffer[len], "-");
+ }
+ else if (ch_state & APP_LEAKAGE_SUB_DEVICE_STATE_LEAKAGE)
+ {
+ len += gui_tjc_hmi_tx_text_display(GUI_CURR_ALARM, x + 1, y + 1, (char *)&hmi_tx_buffer[len], "%.2f", ch_distance / LEAKAGE_MULTIPLE);
+ }
+ else
+ {
+ len += gui_tjc_hmi_tx_text_display(GUI_CURR_ALARM, x + 1, y + 1, (char *)&hmi_tx_buffer[len], "0");
+ }
+ }
}
- else
+ }
+ for (; j < REAL_ALARM_PAGE_NUM; j++)
+ {
+ x = j;
+ len += gui_tjc_hmi_tx_text_display(GUI_CURR_ALARM, x + 1, 1, (char *)&hmi_tx_buffer[len], ""); //
+ len += gui_tjc_hmi_tx_text_display(GUI_CURR_ALARM, x + 1, 2, (char *)&hmi_tx_buffer[len], ""); // 豸ID
+ len += gui_tjc_hmi_tx_text_display(GUI_CURR_ALARM, x + 1, 3, (char *)&hmi_tx_buffer[len], ""); // 豸
+ len += gui_tjc_hmi_tx_text_display(GUI_CURR_ALARM, x + 1, 4, (char *)&hmi_tx_buffer[len], ""); // ͨѶ״̬
+ for (ch = 0; ch < APP_LEAKAGE_SUB_DEVICE_CH_NUM; ch++)
{
- p_tjc_hmi->page.real_alarm_index--;
+ len += gui_tjc_hmi_tx_text_display(GUI_CURR_ALARM, x + 1, 5 + (ch * 3), (char *)&hmi_tx_buffer[len], "");
+ len += gui_tjc_hmi_tx_text_display(GUI_CURR_ALARM, x + 1, 6 + (ch * 3), (char *)&hmi_tx_buffer[len], "");
+ len += gui_tjc_hmi_tx_text_display(GUI_CURR_ALARM, x + 1, 7 + (ch * 3), (char *)&hmi_tx_buffer[len], "");
}
}
}
- default:return;
}
- len = strlen((char *)hmi_tx_buffer);
- gui_tjc_hmi_data_send(hmi_tx_buffer,len);
- }
- else if(HMI_PROTO_CMD_SET == cmd)/**/
- {
- switch(opa)
+ break;
+ case 0x03: /*ҳ*/
{
- case 0x01:
+ if (0x01 == p_data[0])
{
-
- }break;
- case 0x02:
+ if (page_num - 1 <= p_tjc_hmi->page.real_alarm_index)
+ {
+ p_tjc_hmi->page.real_alarm_index = 0;
+ }
+ else
+ {
+ p_tjc_hmi->page.real_alarm_index++;
+ }
+ }
+ else
{
-
- }break;
- default:return;
+
+ if (0 == p_tjc_hmi->page.real_alarm_index)
+ {
+ p_tjc_hmi->page.real_alarm_index = page_num - 1;
+ }
+ else
+ {
+ p_tjc_hmi->page.real_alarm_index--;
+ }
+ }
+ }
+ default:
+ return;
}
len = strlen((char *)hmi_tx_buffer);
- gui_tjc_hmi_data_send(hmi_tx_buffer,len);
+ gui_tjc_hmi_data_send(hmi_tx_buffer, len);
+ }
+ else if (HMI_PROTO_CMD_SET == cmd) /**/
+ {
+ switch (opa)
+ {
+ case 0x01:
+ {
+ }
+ break;
+ case 0x02:
+ {
+ }
+ break;
+ default:
+ return;
+ }
+ len = strlen((char *)hmi_tx_buffer);
+ gui_tjc_hmi_data_send(hmi_tx_buffer, len);
}
}
/**/
static void gui_tjc_hmi_detail_main_send(u8 cmd, u8 opa, u8 *p_data)
{
- #define DETAIL_MAIN_NUM (4) /* ÿҳʾ4豸 */
-
- u16 len=0 , i, sub_device_index, ch, x, y, index;
- u8 page_num=0, remain_device_num, display_count;
+#define DETAIL_MAIN_NUM (4) /* ÿҳʾ4豸 */
+
+ u16 len = 0, i, sub_device_index, ch, x, y, index;
+ u8 page_num = 0, remain_device_num, display_count;
u8 region_idx; /* */
app_leakage_region_data_class_t *region_data;
-
+
memset(hmi_tx_buffer, 0, sizeof(hmi_tx_buffer));
-
- region_idx = p_tjc_hmi->page.deliniter_main_index;
- if (region_idx >= leakage.region_num) return;
+
+ region_idx = p_tjc_hmi->page.deliniter_main_index;
+ if (region_idx >= leakage.region_num)
+ return;
region_data = &leakage.region_data[region_idx];
-
+
/* ҳÿҳʾ4豸 */
page_num = region_data->sub_device_num / DETAIL_MAIN_NUM;
remain_device_num = region_data->sub_device_num % DETAIL_MAIN_NUM;
@@ -824,830 +836,877 @@ static void gui_tjc_hmi_detail_main_send(u8 cmd, u8 opa, u8 *p_data)
{
page_num++;
}
- /*ҳ*/
- len += gui_tjc_hmi_tx_text_display(GUI_DETALL_MAIN,0, 0,
- (char *)&hmi_tx_buffer[len],
- "%d/%d",
- p_tjc_hmi->page.detail_main_index+1,page_num);
-
-
+ /*ҳ*/
+ len += gui_tjc_hmi_tx_text_display(GUI_DETALL_MAIN, 0, 0,
+ (char *)&hmi_tx_buffer[len],
+ "%d/%d",
+ p_tjc_hmi->page.detail_main_index + 1, page_num);
+
if (HMI_PROTO_CMD_GET == cmd) /* ȡ */
{
switch (opa)
{
- case 0x01: /* ȡ豸Ϣ */
+ case 0x01: /* ȡ豸Ϣ */
+ {
+ u8 relative_region_idx = p_data[0];
+ if (relative_region_idx < 1 || relative_region_idx > 4)
+ return;
+
+ /* ȫ */
+ region_idx = p_tjc_hmi->page.main_index * 4 + (relative_region_idx - 1);
+ if (region_idx >= leakage.region_num)
+ return;
+
+ /* лʱҳ */
+ if (region_idx != p_tjc_hmi->page.deliniter_main_index)
+ p_tjc_hmi->page.detail_main_index = 0;
+
+ p_tjc_hmi->page.deliniter_main_index = region_idx;
+ region_data = &leakage.region_data[region_idx];
+
+ /* ҳ */
+ page_num = region_data->sub_device_num / DETAIL_MAIN_NUM;
+ remain_device_num = region_data->sub_device_num % DETAIL_MAIN_NUM;
+ if (remain_device_num > 0)
+ page_num++;
+ if (page_num == 0)
+ page_num = 1;
+
+ u8 start_index = p_tjc_hmi->page.detail_main_index * DETAIL_MAIN_NUM;
+ display_count = (p_tjc_hmi->page.detail_main_index == page_num - 1 && remain_device_num > 0)
+ ? remain_device_num
+ : DETAIL_MAIN_NUM;
+
+ for (i = 0; i < display_count; i++)
{
- u8 relative_region_idx = p_data[0];
- if (relative_region_idx < 1 || relative_region_idx > 4)
- return;
+ index = start_index + i;
+ if (index >= region_data->sub_device_num)
+ break;
+ sub_device_index = region_data->sub_device_index[index];
+ x = i;
- /* ȫ */
- region_idx = p_tjc_hmi->page.main_index * 4 + (relative_region_idx - 1);
- if (region_idx >= leakage.region_num)
- return;
+ /* 豸ID: t(x+1)_1 */
+ y = 0;
+ len += gui_tjc_hmi_tx_text_display(GUI_DETALL_MAIN, x + 1, y + 1,
+ (char *)&hmi_tx_buffer[len],
+ "ID:%d",
+ leakage.sub_device_data[sub_device_index].flash_data.modbus_id);
- /* лʱҳ */
- if (region_idx != p_tjc_hmi->page.deliniter_main_index)
- p_tjc_hmi->page.detail_main_index = 0;
+ /* 豸: t(x+1)_2 */
+ y = 1;
+ len += gui_tjc_hmi_tx_text_display(GUI_DETALL_MAIN, x + 1, y + 1,
+ (char *)&hmi_tx_buffer[len],
+ "%s",
+ leakage.sub_device_data[sub_device_index].flash_data.device_name);
- p_tjc_hmi->page.deliniter_main_index = region_idx;
- region_data = &leakage.region_data[region_idx];
-
- /* ҳ */
- page_num = region_data->sub_device_num / DETAIL_MAIN_NUM;
- remain_device_num = region_data->sub_device_num % DETAIL_MAIN_NUM;
- if (remain_device_num > 0) page_num++;
- if (page_num == 0) page_num = 1;
-
- u8 start_index = p_tjc_hmi->page.detail_main_index * DETAIL_MAIN_NUM;
- display_count = (p_tjc_hmi->page.detail_main_index == page_num - 1 && remain_device_num > 0)
- ? remain_device_num : DETAIL_MAIN_NUM;
-
- for (i = 0; i < display_count; i++)
+ /* ͨѶ״̬: t(x+1)_3 */
+ y = 2;
+ u8 comm_state = 0;
+ for (ch = 0; ch < APP_LEAKAGE_SUB_DEVICE_CH_NUM; ch++)
{
- index = start_index + i;
- if (index >= region_data->sub_device_num)
+ if (leakage.sub_device_data[sub_device_index].ch_data[ch].state &
+ APP_LEAKAGE_SUB_DEVICE_STATE_TIME_OUT)
+ {
+ comm_state = 1;
break;
- sub_device_index = region_data->sub_device_index[index];
- x = i;
-
- /* 豸ID: t(x+1)_1 */
- y = 0;
- len += gui_tjc_hmi_tx_text_display(GUI_DETALL_MAIN,x+1, y+1,
- (char *)&hmi_tx_buffer[len],
- "ID:%d",
- leakage.sub_device_data[sub_device_index].flash_data.modbus_id);
-
- /* 豸: t(x+1)_2 */
- y = 1;
- len += gui_tjc_hmi_tx_text_display(GUI_DETALL_MAIN,x+1, y+1,
- (char *)&hmi_tx_buffer[len],
- "%s",
- leakage.sub_device_data[sub_device_index].flash_data.device_name);
-
- /* ͨѶ״̬: t(x+1)_3 */
- y = 2;
- u8 comm_state = 0;
- for (ch = 0; ch < APP_LEAKAGE_SUB_DEVICE_CH_NUM; ch++)
- {
- if (leakage.sub_device_data[sub_device_index].ch_data[ch].state &
- APP_LEAKAGE_SUB_DEVICE_STATE_TIME_OUT)
- {
- comm_state = 1;
- break;
- }
}
- if(leakage.sub_device_data[sub_device_index].shield == UNBLOCKED)
+ }
+ if (leakage.sub_device_data[sub_device_index].shield == UNBLOCKED)
+ {
+ if (comm_state)
{
+ len += gui_tjc_hmi_tx_text_display(GUI_DETALL_MAIN, x + 1, y + 1,
+ (char *)&hmi_tx_buffer[len],
+ "ͨѶ쳣");
+ }
+ else
+ {
+ len += gui_tjc_hmi_tx_text_display(GUI_DETALL_MAIN, x + 1, y + 1,
+ (char *)&hmi_tx_buffer[len],
+ "ͨѶ");
+ }
+ }
+ else
+ {
+ len += gui_tjc_hmi_tx_text_display(GUI_DETALL_MAIN, x + 1, y + 1,
+ (char *)&hmi_tx_buffer[len],
+ "");
+ }
+
+ /* ͨ1-4״̬ */
+ for (ch = 0; ch < APP_LEAKAGE_SUB_DEVICE_USE_CH_NUM; ch++)
+ {
+ u16 ch_state = leakage.sub_device_data[sub_device_index].ch_data[ch].state;
+ u16 ch_distance = leakage.sub_device_data[sub_device_index].ch_data[ch].distance;
+
+ /* ©Һ״̬ */
+ y = 3 + (ch * 3);
+ if (leakage.sub_device_data[sub_device_index].shield == UNBLOCKED)
+ {
+
if (comm_state)
{
- len += gui_tjc_hmi_tx_text_display(GUI_DETALL_MAIN,x+1, y+1,
- (char *)&hmi_tx_buffer[len],
- "ͨѶ쳣");
+ len += gui_tjc_hmi_tx_text_display(GUI_DETALL_MAIN, x + 1, y + 1,
+ (char *)&hmi_tx_buffer[len],
+ "-");
+ }
+ else if (ch_state & APP_LEAKAGE_SUB_DEVICE_STATE_LEAKAGE)
+ {
+ len += gui_tjc_hmi_tx_text_display(GUI_DETALL_MAIN, x + 1, y + 1,
+ (char *)&hmi_tx_buffer[len],
+ "©Һ");
}
else
{
- len += gui_tjc_hmi_tx_text_display(GUI_DETALL_MAIN,x+1, y+1,
- (char *)&hmi_tx_buffer[len],
- "ͨѶ");
+ len += gui_tjc_hmi_tx_text_display(GUI_DETALL_MAIN, x + 1, y + 1,
+ (char *)&hmi_tx_buffer[len],
+ "");
}
- }else
- {
- len += gui_tjc_hmi_tx_text_display(GUI_DETALL_MAIN,x+1, y+1,
- (char *)&hmi_tx_buffer[len],
- "");
- }
-
-
- /* ͨ1-4״̬ */
- for (ch = 0; ch < APP_LEAKAGE_SUB_DEVICE_USE_CH_NUM; ch++)
- {
- u16 ch_state = leakage.sub_device_data[sub_device_index].ch_data[ch].state;
- u16 ch_distance = leakage.sub_device_data[sub_device_index].ch_data[ch].distance;
-
- /* ©Һ״̬ */
- y = 3 + (ch * 3);
- if(leakage.sub_device_data[sub_device_index].shield == UNBLOCKED)
- {
-
- if (comm_state)
- {
- len += gui_tjc_hmi_tx_text_display(GUI_DETALL_MAIN,x+1, y+1,
- (char *)&hmi_tx_buffer[len],
- "-");
- }
- else if (ch_state & APP_LEAKAGE_SUB_DEVICE_STATE_LEAKAGE)
- {
- len += gui_tjc_hmi_tx_text_display(GUI_DETALL_MAIN,x+1, y+1,
- (char *)&hmi_tx_buffer[len],
- "©Һ");
- }
- else
- {
- len += gui_tjc_hmi_tx_text_display(GUI_DETALL_MAIN,x+1, y+1,
- (char *)&hmi_tx_buffer[len],
- "");
- }
- }
- else
- {
- len += gui_tjc_hmi_tx_text_display(GUI_DETALL_MAIN,x+1, y+1,
- (char *)&hmi_tx_buffer[len],
- "");
- }
-
-
- /* ϴ״̬ */
- y = 4 + (ch * 3);
- if(leakage.sub_device_data[sub_device_index].shield == UNBLOCKED)
- {
- if (comm_state)
- {
- len += gui_tjc_hmi_tx_text_display(GUI_DETALL_MAIN,x+1, y+1,
- (char *)&hmi_tx_buffer[len],
- "-");
- }
- else if (ch_state & APP_LEAKAGE_SUB_DEVICE_STATE_OPEN)
- {
- len += gui_tjc_hmi_tx_text_display(GUI_DETALL_MAIN,x+1, y+1,
- (char *)&hmi_tx_buffer[len],
- "ϴ");
- }
- else
- {
- len += gui_tjc_hmi_tx_text_display(GUI_DETALL_MAIN,x+1, y+1,
- (char *)&hmi_tx_buffer[len],
- "");
- }
- }else
- {
- len += gui_tjc_hmi_tx_text_display(GUI_DETALL_MAIN,x+1, y+1,
- (char *)&hmi_tx_buffer[len],
- "");
- }
-
-
- /* ©Һλ */
- y = 5 + (ch * 3);
- if(leakage.sub_device_data[sub_device_index].shield == UNBLOCKED)
- {
- if (comm_state)
- {
- len += gui_tjc_hmi_tx_text_display(GUI_DETALL_MAIN,x+1, y+1,
- (char *)&hmi_tx_buffer[len],
- "-");
- }
- else if (ch_state & APP_LEAKAGE_SUB_DEVICE_STATE_LEAKAGE)
- {
- len += gui_tjc_hmi_tx_text_display(GUI_DETALL_MAIN,x+1, y+1,
- (char *)&hmi_tx_buffer[len],
- "%.2f",
- ch_distance/LEAKAGE_MULTIPLE);
- }
- else
- {
- len += gui_tjc_hmi_tx_text_display(GUI_DETALL_MAIN,x+1, y+1,
- (char *)&hmi_tx_buffer[len],
- "0");
- }
- }else
- {
- len += gui_tjc_hmi_tx_text_display(GUI_DETALL_MAIN,x+1, y+1,
- (char *)&hmi_tx_buffer[len],
- "0");
- }
-
- }
- /* ״̬ʾ: t(x+1)_16 */
- y = 15; // 16жӦy=15
- if (leakage.sub_device_data[sub_device_index].shield == BLOCKED)
- {
- len += gui_tjc_hmi_tx_text_display(GUI_DETALL_MAIN,x+1, y+1, (char *)&hmi_tx_buffer[len], "");
}
else
{
- len += gui_tjc_hmi_tx_text_display(GUI_DETALL_MAIN,x+1, y+1, (char *)&hmi_tx_buffer[len], "");
+ len += gui_tjc_hmi_tx_text_display(GUI_DETALL_MAIN, x + 1, y + 1,
+ (char *)&hmi_tx_buffer[len],
+ "");
+ }
+
+ /* ϴ״̬ */
+ y = 4 + (ch * 3);
+ if (leakage.sub_device_data[sub_device_index].shield == UNBLOCKED)
+ {
+ if (comm_state)
+ {
+ len += gui_tjc_hmi_tx_text_display(GUI_DETALL_MAIN, x + 1, y + 1,
+ (char *)&hmi_tx_buffer[len],
+ "-");
+ }
+ else if (ch_state & APP_LEAKAGE_SUB_DEVICE_STATE_OPEN)
+ {
+ len += gui_tjc_hmi_tx_text_display(GUI_DETALL_MAIN, x + 1, y + 1,
+ (char *)&hmi_tx_buffer[len],
+ "ϴ");
+ }
+ else
+ {
+ len += gui_tjc_hmi_tx_text_display(GUI_DETALL_MAIN, x + 1, y + 1,
+ (char *)&hmi_tx_buffer[len],
+ "");
+ }
+ }
+ else
+ {
+ len += gui_tjc_hmi_tx_text_display(GUI_DETALL_MAIN, x + 1, y + 1,
+ (char *)&hmi_tx_buffer[len],
+ "");
+ }
+
+ /* ©Һλ */
+ y = 5 + (ch * 3);
+ if (leakage.sub_device_data[sub_device_index].shield == UNBLOCKED)
+ {
+ if (comm_state)
+ {
+ len += gui_tjc_hmi_tx_text_display(GUI_DETALL_MAIN, x + 1, y + 1,
+ (char *)&hmi_tx_buffer[len],
+ "-");
+ }
+ else if (ch_state & APP_LEAKAGE_SUB_DEVICE_STATE_LEAKAGE)
+ {
+ len += gui_tjc_hmi_tx_text_display(GUI_DETALL_MAIN, x + 1, y + 1,
+ (char *)&hmi_tx_buffer[len],
+ "%.2f",
+ ch_distance / LEAKAGE_MULTIPLE);
+ }
+ else
+ {
+ len += gui_tjc_hmi_tx_text_display(GUI_DETALL_MAIN, x + 1, y + 1,
+ (char *)&hmi_tx_buffer[len],
+ "0");
+ }
+ }
+ else
+ {
+ len += gui_tjc_hmi_tx_text_display(GUI_DETALL_MAIN, x + 1, y + 1,
+ (char *)&hmi_tx_buffer[len],
+ "0");
}
}
-
- /*δʹõ*/
- for (; i < DETAIL_MAIN_NUM; i++)
+ /* ״̬ʾ: t(x+1)_16 */
+ y = 15; // 16жӦy=15
+ if (leakage.sub_device_data[sub_device_index].shield == BLOCKED)
{
- x = i;
- len += gui_tjc_hmi_tx_text_display(GUI_DETALL_MAIN,x+1, 1, (char *)&hmi_tx_buffer[len], "");
- len += gui_tjc_hmi_tx_text_display(GUI_DETALL_MAIN,x+1, 2, (char *)&hmi_tx_buffer[len], "");
- len += gui_tjc_hmi_tx_text_display(GUI_DETALL_MAIN,x+1, 3, (char *)&hmi_tx_buffer[len], "");
- for (ch = 0; ch < APP_LEAKAGE_SUB_DEVICE_CH_NUM; ch++)
- {
- len += gui_tjc_hmi_tx_text_display(GUI_DETALL_MAIN,x+1, 4 + (ch*3), (char *)&hmi_tx_buffer[len], "");
- len += gui_tjc_hmi_tx_text_display(GUI_DETALL_MAIN,x+1, 5 + (ch*3), (char *)&hmi_tx_buffer[len], "");
- len += gui_tjc_hmi_tx_text_display(GUI_DETALL_MAIN,x+1, 6 + (ch*3), (char *)&hmi_tx_buffer[len], "");
- }
- len += gui_tjc_hmi_tx_text_display(GUI_DETALL_MAIN,x+1, 16, (char *)&hmi_tx_buffer[len], "");
+ len += gui_tjc_hmi_tx_text_display(GUI_DETALL_MAIN, x + 1, y + 1, (char *)&hmi_tx_buffer[len], "");
+ }
+ else
+ {
+ len += gui_tjc_hmi_tx_text_display(GUI_DETALL_MAIN, x + 1, y + 1, (char *)&hmi_tx_buffer[len], "");
}
}
- break;
-
- case 0x03: /* ҳ */
+
+ /*δʹõ*/
+ for (; i < DETAIL_MAIN_NUM; i++)
{
-
-
-// /*¼ҳ*/
-// page_num = region_data->sub_device_num / DETAIL_MAIN_NUM;
-// remain_device_num = region_data->sub_device_num % DETAIL_MAIN_NUM;
-// if (remain_device_num > 0) page_num++;
-// if (page_num == 0) page_num = 1;
-
- if(0x01 == p_data[0]) /* һҳ */
+ x = i;
+ len += gui_tjc_hmi_tx_text_display(GUI_DETALL_MAIN, x + 1, 1, (char *)&hmi_tx_buffer[len], "");
+ len += gui_tjc_hmi_tx_text_display(GUI_DETALL_MAIN, x + 1, 2, (char *)&hmi_tx_buffer[len], "");
+ len += gui_tjc_hmi_tx_text_display(GUI_DETALL_MAIN, x + 1, 3, (char *)&hmi_tx_buffer[len], "");
+ for (ch = 0; ch < APP_LEAKAGE_SUB_DEVICE_CH_NUM; ch++)
{
- if(page_num - 1 <= p_tjc_hmi->page.detail_main_index)
- {
- p_tjc_hmi->page.detail_main_index = 0;
- }
- else
- {
- p_tjc_hmi->page.detail_main_index++;
- }
+ len += gui_tjc_hmi_tx_text_display(GUI_DETALL_MAIN, x + 1, 4 + (ch * 3), (char *)&hmi_tx_buffer[len], "");
+ len += gui_tjc_hmi_tx_text_display(GUI_DETALL_MAIN, x + 1, 5 + (ch * 3), (char *)&hmi_tx_buffer[len], "");
+ len += gui_tjc_hmi_tx_text_display(GUI_DETALL_MAIN, x + 1, 6 + (ch * 3), (char *)&hmi_tx_buffer[len], "");
}
- else /* һҳ */
- {
- if(0 == p_tjc_hmi->page.detail_main_index)
- {
- p_tjc_hmi->page.detail_main_index = page_num - 1;
- }
- else
- {
- p_tjc_hmi->page.detail_main_index--;
- }
- }
- return;
+ len += gui_tjc_hmi_tx_text_display(GUI_DETALL_MAIN, x + 1, 16, (char *)&hmi_tx_buffer[len], "");
}
- break;
-
- default:
- return;
}
-
+ break;
+
+ case 0x03: /* ҳ */
+ {
+
+ // /*¼ҳ*/
+ // page_num = region_data->sub_device_num / DETAIL_MAIN_NUM;
+ // remain_device_num = region_data->sub_device_num % DETAIL_MAIN_NUM;
+ // if (remain_device_num > 0) page_num++;
+ // if (page_num == 0) page_num = 1;
+
+ if (0x01 == p_data[0]) /* һҳ */
+ {
+ if (page_num - 1 <= p_tjc_hmi->page.detail_main_index)
+ {
+ p_tjc_hmi->page.detail_main_index = 0;
+ }
+ else
+ {
+ p_tjc_hmi->page.detail_main_index++;
+ }
+ }
+ else /* һҳ */
+ {
+ if (0 == p_tjc_hmi->page.detail_main_index)
+ {
+ p_tjc_hmi->page.detail_main_index = page_num - 1;
+ }
+ else
+ {
+ p_tjc_hmi->page.detail_main_index--;
+ }
+ }
+ return;
+ }
+ break;
+
+ default:
+ return;
+ }
+
len = strlen((char *)hmi_tx_buffer);
- gui_tjc_hmi_data_send(hmi_tx_buffer,len);
+ gui_tjc_hmi_data_send(hmi_tx_buffer, len);
}
else if (HMI_PROTO_CMD_SET == cmd) /* */
{
switch (opa)
{
- case 0x01: /* */
+ case 0x01: /* */
+ {
+ u8 len_id = 0;
+ u8 device_id = 0;
+
+ p_data = p_data + 3; /*ID:ƫƳȥ*/
+ /* 豸IDp_data[0]ʼֱָ */
+ while (p_data[len_id] != HMI_PROTO_ASCII_RX_DELINITER)
{
- u8 len_id = 0;
- u8 device_id = 0;
-
- p_data = p_data + 3; /*ID:ƫƳȥ*/
- /* 豸IDp_data[0]ʼֱָ */
- while (p_data[len_id] != HMI_PROTO_ASCII_RX_DELINITER) {
- if (p_data[len_id] < '0' || p_data[len_id] > '9') {
- return; /* Ƿַ */
- }
- len_id++;
- if (len_id > 3) { /* ID3λ(0-255) */
- return;
- }
+ if (p_data[len_id] < '0' || p_data[len_id] > '9')
+ {
+ return; /* Ƿַ */
}
- if (len_id == 0) {
- return; /* IDΪ */
- }
-
- /* ASCIIִתΪֵ */
- char id_str[4] = {0}; /* 3λּ'\0' */
- memcpy(id_str, p_data, len_id);
- id_str[len_id] = '\0';
- int temp_id = atoi(id_str);
- if (temp_id < 0 || temp_id > 255) {
- return; /* IDΧ */
- }
- device_id = (u8)temp_id;
-
- /* 뼰ķָ */
- u8 op_index = len_id + 1; /* λ */
- u8 delim_index = len_id + 2; /* ķָλ */
- if (p_data[delim_index] != HMI_PROTO_ASCII_RX_DELINITER) {
+ len_id++;
+ if (len_id > 3)
+ { /* ID3λ(0-255) */
return;
}
- u8 operation = p_data[op_index]; /* ֱΪֵ */
-
- /* ʹܵ豸ƥmodbus_id */
- u8 found = 0;
- for (u8 i = 0; i < APP_LEAKAGE_SUB_DEVICE_NUM; i++) {
- if (leakage.sub_device_data[i].flash_data.state == ENABLE &&
- leakage.sub_device_data[i].flash_data.modbus_id == device_id) {
- if (operation == 0x01) {
- leakage.sub_device_data[i].shield = BLOCKED; /* */
- } else if (operation == 0x02) {
- leakage.sub_device_data[i].shield = UNBLOCKED; /* ָ */
- } else {
- return;
- }
- found = 1;
- break;
+ }
+ if (len_id == 0)
+ {
+ return; /* IDΪ */
+ }
+
+ /* ASCIIִתΪֵ */
+ char id_str[4] = {0}; /* 3λּ'\0' */
+ memcpy(id_str, p_data, len_id);
+ id_str[len_id] = '\0';
+ int temp_id = atoi(id_str);
+ if (temp_id < 0 || temp_id > 255)
+ {
+ return; /* IDΧ */
+ }
+ device_id = (u8)temp_id;
+
+ /* 뼰ķָ */
+ u8 op_index = len_id + 1; /* λ */
+ u8 delim_index = len_id + 2; /* ķָλ */
+ if (p_data[delim_index] != HMI_PROTO_ASCII_RX_DELINITER)
+ {
+ return;
+ }
+ u8 operation = p_data[op_index]; /* ֱΪֵ */
+
+ /* ʹܵ豸ƥmodbus_id */
+ u8 found = 0;
+ for (u8 i = 0; i < APP_LEAKAGE_SUB_DEVICE_NUM; i++)
+ {
+ if (leakage.sub_device_data[i].flash_data.state == ENABLE &&
+ leakage.sub_device_data[i].flash_data.modbus_id == device_id)
+ {
+ if (operation == 0x01)
+ {
+ leakage.sub_device_data[i].shield = BLOCKED; /* */
}
+ else if (operation == 0x02)
+ {
+ leakage.sub_device_data[i].shield = UNBLOCKED; /* ָ */
+ }
+ else
+ {
+ return;
+ }
+ found = 1;
+ break;
+ }
}
if (found)
{
/*ĺ豸Ϣ浽 Flash*/
gui_tjc_hmi_save_device_info_to_w25q();
}
- return;
- }
- break;
-
- default:
- return;
+ return;
+ }
+ break;
+
+ default:
+ return;
}
}
}
/*¼*/
-static void gui_tjc_hmi_login_send(u8 cmd,u8 opa,u8 *p_data)
+static void gui_tjc_hmi_login_send(u8 cmd, u8 opa, u8 *p_data)
{
- u16 len = 0,i;
-
- if(HMI_PROTO_CMD_GET == cmd) /* ȡ */
+ u16 len = 0, i;
+
+ if (HMI_PROTO_CMD_GET == cmd) /* ȡ */
{
- switch(opa)
+ switch (opa)
{
- case 0x01: /* ȡflashд洢 */
- {
- gui_tjc_hmi_read_password_from_w25q();
- memset(hmi_tx_buffer, 0, sizeof(hmi_tx_buffer));
- /* ֵʽ͵ؼ t22_1 */
- len = gui_tjc_hmi_tx_text_display(GUI_LOGIN,22, 1, (char *)hmi_tx_buffer,
- "%d%d%d%d",
- p_tjc_hmi->password[0],
- p_tjc_hmi->password[1],
- p_tjc_hmi->password[2],
- p_tjc_hmi->password[3]);
- gui_tjc_hmi_data_send(hmi_tx_buffer, len);
- return; /* ֱӷأظ */
- } break;
- case 0x02: /* */
- default:
- return;
+ case 0x01: /* ȡflashд洢 */
+ {
+ gui_tjc_hmi_read_password_from_w25q();
+ memset(hmi_tx_buffer, 0, sizeof(hmi_tx_buffer));
+ /* ֵʽ͵ؼ t22_1 */
+ len = gui_tjc_hmi_tx_text_display(GUI_LOGIN, 22, 1, (char *)hmi_tx_buffer,
+ "%d%d%d%d",
+ p_tjc_hmi->password[0],
+ p_tjc_hmi->password[1],
+ p_tjc_hmi->password[2],
+ p_tjc_hmi->password[3]);
+ gui_tjc_hmi_data_send(hmi_tx_buffer, len);
+ return; /* ֱӷأظ */
+ }
+ break;
+ case 0x02: /* */
+ default:
+ return;
}
}
- else if(HMI_PROTO_CMD_SET == cmd) /* */
+ else if (HMI_PROTO_CMD_SET == cmd) /* */
{
- switch(opa)
+ switch (opa)
{
- case 0x01: /* flash */
+ case 0x01: /* flash */
+ {
+ /* ASCIIתΪֵ'0'~'9' */
+ for (i = 0; i < 4; i++)
{
- /* ASCIIתΪֵ'0'~'9' */
- for(i = 0; i < 4; i++)
+ if (p_data[i] >= '0' && p_data[i] <= '9')
{
- if(p_data[i] >= '0' && p_data[i] <= '9')
- {
- p_tjc_hmi->password[i] = p_data[i] - '0';
- }
- else
- {
- p_tjc_hmi->password[i] = 0; /* Ƿַʱ */
- }
+ p_tjc_hmi->password[i] = p_data[i] - '0';
}
- /* 浽W25Q32 */
- gui_tjc_hmi_save_password_to_w25q();
- /* Ӧֱӷ */
- return;
- } break;
- case 0x02: /* */
- default:
- return;
+ else
+ {
+ p_tjc_hmi->password[i] = 0; /* Ƿַʱ */
+ }
+ }
+ /* 浽W25Q32 */
+ gui_tjc_hmi_save_password_to_w25q();
+ /* Ӧֱӷ */
+ return;
+ }
+ break;
+ case 0x02: /* */
+ default:
+ return;
}
}
}
/*ʷ*/
-static void gui_tjc_hmi_history_alarm_send(u8 cmd,u8 opa,u8 *p_data)
+static void gui_tjc_hmi_history_alarm_send(u8 cmd, u8 opa, u8 *p_data)
{
- #define HISTORY_ALARM_PER_PAGE (15) /* ÿҳ15ʷ */
+#define HISTORY_ALARM_PER_PAGE (15) /* ÿҳ15ʷ */
u16 len = 0, i, j;
u8 page_num, remain_records, display_count;
u32 total_records, start_index, record_index = 0;
app_leakage_history_alarm_t history_record;
char time_str[20];
char alarm_type_str[20];
-
+
/* ȡܼ¼ */
total_records = leakage.history_metadata.total_records;
-
-
/* ҳ */
page_num = total_records / HISTORY_ALARM_PER_PAGE;
remain_records = total_records % HISTORY_ALARM_PER_PAGE;
- if(remain_records > 0)
+ if (remain_records > 0)
{
page_num++;
}
-
+
memset(hmi_tx_buffer, 0, sizeof(hmi_tx_buffer));
-
+
/*ҳ*/
- len += gui_tjc_hmi_tx_text_display(GUI_HISTORY_ALARM,0, 0,
- (char *)&hmi_tx_buffer[len],
- "%d/%d",
- p_tjc_hmi->page.history_alarm_index+1, page_num == 0 ? 1 : page_num);
-
- if(HMI_PROTO_CMD_GET == cmd) /* ȡ */
+ len += gui_tjc_hmi_tx_text_display(GUI_HISTORY_ALARM, 0, 0,
+ (char *)&hmi_tx_buffer[len],
+ "%d/%d",
+ p_tjc_hmi->page.history_alarm_index + 1, page_num == 0 ? 1 : page_num);
+
+ if (HMI_PROTO_CMD_GET == cmd) /* ȡ */
{
- switch(opa)
+ switch (opa)
{
- case 0x01: /* ȡʷϢ */
+ case 0x01: /* ȡʷϢ */
+ {
+ /* ȡǰҳӦļ¼ */
+ u8 current_page = p_tjc_hmi->page.history_alarm_index;
+
+ /* ʼ¼ʱ䵹ʾµǰ棩 */
+ start_index = current_page * HISTORY_ALARM_PER_PAGE;
+
+ /* 㱾ҳʾ¼ */
+ if (current_page == page_num - 1 && remain_records > 0)
{
- /* ȡǰҳӦļ¼ */
- u8 current_page = p_tjc_hmi->page.history_alarm_index;
-
- /* ʼ¼ʱ䵹ʾµǰ棩 */
- start_index = current_page * HISTORY_ALARM_PER_PAGE;
-
- /* 㱾ҳʾ¼ */
- if(current_page == page_num - 1 && remain_records > 0)
+ display_count = remain_records;
+ }
+ else
+ {
+ display_count = HISTORY_ALARM_PER_PAGE;
+ }
+
+ if (total_records == 0) /*ûҪʾϢ*/
+ {
+ display_count = 0;
+ }
+
+ /* ʾʷ¼ */
+ for (i = 0; i < display_count; i++)
+ {
+ /* ¼µĿʼ */
+ if (total_records > start_index + i)
{
- display_count = remain_records;
+ record_index = total_records - 1 - (start_index + i);
}
else
{
- display_count = HISTORY_ALARM_PER_PAGE;
+ break;
}
-
- if(total_records == 0)/*ûҪʾϢ*/
- {
- display_count = 0;
- }
-
- /* ʾʷ¼ */
- for(i = 0; i < display_count; i++)
- {
- /* ¼µĿʼ */
- if(total_records > start_index + i)
- {
- record_index = total_records - 1 - (start_index + i);
- }
- else
- {
- break;
- }
-
- /* ȡʷ¼ */
- if(history.read_history(record_index, &history_record))
- {
- u8 com_time_out_flag = 0;
- if(history_record.alarm_type == APP_LEAKAGE_SUB_DEVICE_STATE_TIME_OUT)
- {
- com_time_out_flag = 1;
- }
- /* : t(i+1)_1 */
- len += gui_tjc_hmi_tx_text_display(GUI_HISTORY_ALARM,i+1, 1,
- (char *)&hmi_tx_buffer[len],
- "%s",
- history_record.region_name);
-
- /* 豸ID: t(i+1)_2 */
- len += gui_tjc_hmi_tx_text_display(GUI_HISTORY_ALARM,i+1, 2,
- (char *)&hmi_tx_buffer[len],
- "%d",
- history_record.device_id);
-
- if(com_time_out_flag)
- {
- /*ͨϢt(i+1)_3*/
- len += gui_tjc_hmi_tx_text_display(GUI_HISTORY_ALARM,i+1,3,
- (char *)&hmi_tx_buffer[len],
- "-");
- }
- else
- {
- /*ͨϢt(i+1)_3*/
- len += gui_tjc_hmi_tx_text_display(GUI_HISTORY_ALARM,i+1,3,
- (char *)&hmi_tx_buffer[len],
- "%d",
- history_record.channel+1);
- }
-
- /* : t(i+1)_4 */
- alarm_type_str[0] = '\0';
- if(history_record.alarm_type == APP_LEAKAGE_SUB_DEVICE_STATE_LEAKAGE)
- strcat(alarm_type_str, "©Һ");
- else if(history_record.alarm_type == APP_LEAKAGE_SUB_DEVICE_STATE_OPEN)
- strcat(alarm_type_str, "ϴ");
- else if(history_record.alarm_type == APP_LEAKAGE_SUB_DEVICE_STATE_TIME_OUT)
- {
- strcat(alarm_type_str, "ͨѶ쳣");
- }
-
- len += gui_tjc_hmi_tx_text_display(GUI_HISTORY_ALARM,i+1, 4,
- (char *)&hmi_tx_buffer[len],
- "%s",
- alarm_type_str);
-
- /* 豸: t(i+1)_5 */
- len += gui_tjc_hmi_tx_text_display(GUI_HISTORY_ALARM,i+1, 5,
- (char *)&hmi_tx_buffer[len],
- "%s",
- history_record.device_name);
-
- /* ©Һ: t(i+1)_6 (©Һʾ) */
- if(history_record.alarm_type == APP_LEAKAGE_SUB_DEVICE_STATE_LEAKAGE)
- {
- len += gui_tjc_hmi_tx_text_display(GUI_HISTORY_ALARM,i+1, 6,
- (char *)&hmi_tx_buffer[len],
- "%.2f",
- history_record.leak_distance/LEAKAGE_MULTIPLE);
- }
- else
- {
- len += gui_tjc_hmi_tx_text_display(GUI_HISTORY_ALARM,i+1, 6,
- (char *)&hmi_tx_buffer[len],
- "-");
- }
-
- /* ʼʱ: t(i+1)_7 */
- uint16_t year = (history_record.start_time[0] << 8) | history_record.start_time[1];
- sprintf(time_str, "%04d-%02d-%02d %02d:%02d:%02d",
- year,
- history_record.start_time[2],
- history_record.start_time[3],
- history_record.start_time[4],
- history_record.start_time[5],
- history_record.start_time[6]);
- len += gui_tjc_hmi_tx_text_display(GUI_HISTORY_ALARM,i+1, 7,
- (char *)&hmi_tx_buffer[len],
- "%s",
- time_str);
+ /* ȡʷ¼ */
+ if (history.read_history(record_index, &history_record))
+ {
+ u8 com_time_out_flag = 0;
+ if (history_record.alarm_type == APP_LEAKAGE_SUB_DEVICE_STATE_TIME_OUT)
+ {
+ com_time_out_flag = 1;
+ }
+ /* : t(i+1)_1 */
+ len += gui_tjc_hmi_tx_text_display(GUI_HISTORY_ALARM, i + 1, 1,
+ (char *)&hmi_tx_buffer[len],
+ "%s",
+ history_record.region_name);
+
+ /* 豸ID: t(i+1)_2 */
+ len += gui_tjc_hmi_tx_text_display(GUI_HISTORY_ALARM, i + 1, 2,
+ (char *)&hmi_tx_buffer[len],
+ "%d",
+ history_record.device_id);
+
+ if (com_time_out_flag)
+ {
+ /*ͨϢt(i+1)_3*/
+ len += gui_tjc_hmi_tx_text_display(GUI_HISTORY_ALARM, i + 1, 3,
+ (char *)&hmi_tx_buffer[len],
+ "-");
}
else
{
- /* ȡʧܣʾ */
- len += gui_tjc_hmi_tx_text_display(GUI_HISTORY_ALARM,i+1, 1, (char *)&hmi_tx_buffer[len], "");
- len += gui_tjc_hmi_tx_text_display(GUI_HISTORY_ALARM,i+1, 2, (char *)&hmi_tx_buffer[len], "");
- len += gui_tjc_hmi_tx_text_display(GUI_HISTORY_ALARM,i+1, 3, (char *)&hmi_tx_buffer[len], "");
- len += gui_tjc_hmi_tx_text_display(GUI_HISTORY_ALARM,i+1, 4, (char *)&hmi_tx_buffer[len], "");
- len += gui_tjc_hmi_tx_text_display(GUI_HISTORY_ALARM,i+1, 5, (char *)&hmi_tx_buffer[len], "");
- len += gui_tjc_hmi_tx_text_display(GUI_HISTORY_ALARM,i+1, 6, (char *)&hmi_tx_buffer[len], "");
- len += gui_tjc_hmi_tx_text_display(GUI_HISTORY_ALARM,i+1, 7, (char *)&hmi_tx_buffer[len], "");
+ /*ͨϢt(i+1)_3*/
+ len += gui_tjc_hmi_tx_text_display(GUI_HISTORY_ALARM, i + 1, 3,
+ (char *)&hmi_tx_buffer[len],
+ "%d",
+ history_record.channel + 1);
}
+
+ /* : t(i+1)_4 */
+ alarm_type_str[0] = '\0';
+ if (history_record.alarm_type == APP_LEAKAGE_SUB_DEVICE_STATE_LEAKAGE)
+ strcat(alarm_type_str, "©Һ");
+ else if (history_record.alarm_type == APP_LEAKAGE_SUB_DEVICE_STATE_OPEN)
+ strcat(alarm_type_str, "ϴ");
+ else if (history_record.alarm_type == APP_LEAKAGE_SUB_DEVICE_STATE_TIME_OUT)
+ {
+ strcat(alarm_type_str, "ͨѶ쳣");
+ }
+
+ len += gui_tjc_hmi_tx_text_display(GUI_HISTORY_ALARM, i + 1, 4,
+ (char *)&hmi_tx_buffer[len],
+ "%s",
+ alarm_type_str);
+
+ /* 豸: t(i+1)_5 */
+ len += gui_tjc_hmi_tx_text_display(GUI_HISTORY_ALARM, i + 1, 5,
+ (char *)&hmi_tx_buffer[len],
+ "%s",
+ history_record.device_name);
+
+ /* ©Һ: t(i+1)_6 (©Һʾ) */
+ if (history_record.alarm_type == APP_LEAKAGE_SUB_DEVICE_STATE_LEAKAGE)
+ {
+ len += gui_tjc_hmi_tx_text_display(GUI_HISTORY_ALARM, i + 1, 6,
+ (char *)&hmi_tx_buffer[len],
+ "%.2f",
+ history_record.leak_distance / LEAKAGE_MULTIPLE);
+ }
+ else
+ {
+ len += gui_tjc_hmi_tx_text_display(GUI_HISTORY_ALARM, i + 1, 6,
+ (char *)&hmi_tx_buffer[len],
+ "-");
+ }
+
+ /* ʼʱ: t(i+1)_7 */
+ uint16_t year = (history_record.start_time[0] << 8) | history_record.start_time[1];
+ sprintf(time_str, "%04d-%02d-%02d %02d:%02d:%02d",
+ year,
+ history_record.start_time[2],
+ history_record.start_time[3],
+ history_record.start_time[4],
+ history_record.start_time[5],
+ history_record.start_time[6]);
+ len += gui_tjc_hmi_tx_text_display(GUI_HISTORY_ALARM, i + 1, 7,
+ (char *)&hmi_tx_buffer[len],
+ "%s",
+ time_str);
}
-
- /* ҳ15¼ʣ */
- for(; i < HISTORY_ALARM_PER_PAGE; i++)
+ else
{
- len += gui_tjc_hmi_tx_text_display(GUI_HISTORY_ALARM,i+1, 1, (char *)&hmi_tx_buffer[len], "");
- len += gui_tjc_hmi_tx_text_display(GUI_HISTORY_ALARM,i+1, 2, (char *)&hmi_tx_buffer[len], "");
- len += gui_tjc_hmi_tx_text_display(GUI_HISTORY_ALARM,i+1, 3, (char *)&hmi_tx_buffer[len], "");
- len += gui_tjc_hmi_tx_text_display(GUI_HISTORY_ALARM,i+1, 4, (char *)&hmi_tx_buffer[len], "");
- len += gui_tjc_hmi_tx_text_display(GUI_HISTORY_ALARM,i+1, 5, (char *)&hmi_tx_buffer[len], "");
- len += gui_tjc_hmi_tx_text_display(GUI_HISTORY_ALARM,i+1, 6, (char *)&hmi_tx_buffer[len], "");
- len += gui_tjc_hmi_tx_text_display(GUI_HISTORY_ALARM,i+1, 7, (char *)&hmi_tx_buffer[len], "");
+ /* ȡʧܣʾ */
+ len += gui_tjc_hmi_tx_text_display(GUI_HISTORY_ALARM, i + 1, 1, (char *)&hmi_tx_buffer[len], "");
+ len += gui_tjc_hmi_tx_text_display(GUI_HISTORY_ALARM, i + 1, 2, (char *)&hmi_tx_buffer[len], "");
+ len += gui_tjc_hmi_tx_text_display(GUI_HISTORY_ALARM, i + 1, 3, (char *)&hmi_tx_buffer[len], "");
+ len += gui_tjc_hmi_tx_text_display(GUI_HISTORY_ALARM, i + 1, 4, (char *)&hmi_tx_buffer[len], "");
+ len += gui_tjc_hmi_tx_text_display(GUI_HISTORY_ALARM, i + 1, 5, (char *)&hmi_tx_buffer[len], "");
+ len += gui_tjc_hmi_tx_text_display(GUI_HISTORY_ALARM, i + 1, 6, (char *)&hmi_tx_buffer[len], "");
+ len += gui_tjc_hmi_tx_text_display(GUI_HISTORY_ALARM, i + 1, 7, (char *)&hmi_tx_buffer[len], "");
}
-
- len = strlen((char *)hmi_tx_buffer);
- gui_tjc_hmi_data_send(hmi_tx_buffer, len);
}
- break;
-
- case 0x03: /* ҳ */
+
+ /* ҳ15¼ʣ */
+ for (; i < HISTORY_ALARM_PER_PAGE; i++)
{
- if(0x01 == p_data[0]) /* һҳ */
- {
- if(p_tjc_hmi->page.history_alarm_index >= page_num - 1)
- {
- p_tjc_hmi->page.history_alarm_index = 0;
- }
- else
- {
- p_tjc_hmi->page.history_alarm_index++;
- }
- }
- else /* һҳ */
- {
- if(p_tjc_hmi->page.history_alarm_index == 0)
- {
- p_tjc_hmi->page.history_alarm_index = page_num - 1;
- }
- else
- {
- p_tjc_hmi->page.history_alarm_index--;
- }
- }
+ len += gui_tjc_hmi_tx_text_display(GUI_HISTORY_ALARM, i + 1, 1, (char *)&hmi_tx_buffer[len], "");
+ len += gui_tjc_hmi_tx_text_display(GUI_HISTORY_ALARM, i + 1, 2, (char *)&hmi_tx_buffer[len], "");
+ len += gui_tjc_hmi_tx_text_display(GUI_HISTORY_ALARM, i + 1, 3, (char *)&hmi_tx_buffer[len], "");
+ len += gui_tjc_hmi_tx_text_display(GUI_HISTORY_ALARM, i + 1, 4, (char *)&hmi_tx_buffer[len], "");
+ len += gui_tjc_hmi_tx_text_display(GUI_HISTORY_ALARM, i + 1, 5, (char *)&hmi_tx_buffer[len], "");
+ len += gui_tjc_hmi_tx_text_display(GUI_HISTORY_ALARM, i + 1, 6, (char *)&hmi_tx_buffer[len], "");
+ len += gui_tjc_hmi_tx_text_display(GUI_HISTORY_ALARM, i + 1, 7, (char *)&hmi_tx_buffer[len], "");
}
- break;
- default:return;
+
+ len = strlen((char *)hmi_tx_buffer);
+ gui_tjc_hmi_data_send(hmi_tx_buffer, len);
}
- len = strlen((char *)hmi_tx_buffer);
- gui_tjc_hmi_data_send(hmi_tx_buffer,len);
- }
- else if(HMI_PROTO_CMD_SET == cmd)/**/
- {
- switch(opa)
+ break;
+
+ case 0x03: /* ҳ */
{
- case 0x01:/**/
+ if (0x01 == p_data[0]) /* һҳ */
{
- history.clean_history();
- p_tjc_hmi->page.history_alarm_index = 0; // ҳ
-
- memset(hmi_tx_buffer, 0, sizeof(hmi_tx_buffer));
- len = 0;
-
-// // 15е7
-// for(i = 0; i < HISTORY_ALARM_PER_PAGE; i++)
-// {
-// len += gui_tjc_hmi_tx_text_display(i+1, 1, (char *)&hmi_tx_buffer[len], ""); //
-// len += gui_tjc_hmi_tx_text_display(i+1, 2, (char *)&hmi_tx_buffer[len], ""); // 豸ID
-// len += gui_tjc_hmi_tx_text_display(i+1, 3, (char *)&hmi_tx_buffer[len], ""); // ͨ
-// len += gui_tjc_hmi_tx_text_display(i+1, 4, (char *)&hmi_tx_buffer[len], ""); //
-// len += gui_tjc_hmi_tx_text_display(i+1, 5, (char *)&hmi_tx_buffer[len], ""); // 豸
-// len += gui_tjc_hmi_tx_text_display(i+1, 6, (char *)&hmi_tx_buffer[len], ""); // ©Һ
-// len += gui_tjc_hmi_tx_text_display(i+1, 7, (char *)&hmi_tx_buffer[len], ""); // ʱ
-// }
-
- gui_tjc_hmi_data_send(hmi_tx_buffer, len);
- }break;
- case 0x02:/**/
+ if (p_tjc_hmi->page.history_alarm_index >= page_num - 1)
+ {
+ p_tjc_hmi->page.history_alarm_index = 0;
+ }
+ else
+ {
+ p_tjc_hmi->page.history_alarm_index++;
+ }
+ }
+ else /* һҳ */
{
-
- }break;
- default:return;
+ if (p_tjc_hmi->page.history_alarm_index == 0)
+ {
+ p_tjc_hmi->page.history_alarm_index = page_num - 1;
+ }
+ else
+ {
+ p_tjc_hmi->page.history_alarm_index--;
+ }
+ }
+ }
+ break;
+ default:
+ return;
}
len = strlen((char *)hmi_tx_buffer);
- gui_tjc_hmi_data_send(hmi_tx_buffer,len);
+ gui_tjc_hmi_data_send(hmi_tx_buffer, len);
+ }
+ else if (HMI_PROTO_CMD_SET == cmd) /**/
+ {
+ switch (opa)
+ {
+ case 0x01: /**/
+ {
+ history.clean_history();
+ p_tjc_hmi->page.history_alarm_index = 0; // ҳ
+
+ memset(hmi_tx_buffer, 0, sizeof(hmi_tx_buffer));
+ len = 0;
+
+ // // 15е7
+ // for(i = 0; i < HISTORY_ALARM_PER_PAGE; i++)
+ // {
+ // len += gui_tjc_hmi_tx_text_display(i+1, 1, (char *)&hmi_tx_buffer[len], ""); //
+ // len += gui_tjc_hmi_tx_text_display(i+1, 2, (char *)&hmi_tx_buffer[len], ""); // 豸ID
+ // len += gui_tjc_hmi_tx_text_display(i+1, 3, (char *)&hmi_tx_buffer[len], ""); // ͨ
+ // len += gui_tjc_hmi_tx_text_display(i+1, 4, (char *)&hmi_tx_buffer[len], ""); //
+ // len += gui_tjc_hmi_tx_text_display(i+1, 5, (char *)&hmi_tx_buffer[len], ""); // 豸
+ // len += gui_tjc_hmi_tx_text_display(i+1, 6, (char *)&hmi_tx_buffer[len], ""); // ©Һ
+ // len += gui_tjc_hmi_tx_text_display(i+1, 7, (char *)&hmi_tx_buffer[len], ""); // ʱ
+ // }
+
+ gui_tjc_hmi_data_send(hmi_tx_buffer, len);
+ }
+ break;
+ case 0x02: /**/
+ {
+ }
+ break;
+ default:
+ return;
+ }
+ len = strlen((char *)hmi_tx_buffer);
+ gui_tjc_hmi_data_send(hmi_tx_buffer, len);
}
}
/*ý*/
-static void gui_tjc_hmi_tcp_config_send(u8 cmd,u8 opa,u8 *p_data)
+static void gui_tjc_hmi_tcp_config_send(u8 cmd, u8 opa, u8 *p_data)
{
- u16 len = 0,i;
-
- memset(hmi_tx_buffer,0,sizeof(hmi_tx_buffer));
-
- if(HMI_PROTO_CMD_GET == cmd)/*ȡ*/
+ u16 len = 0, i, j;
+ u16 port_temp;
+ u8 ip_str[16], mask_str[16], gw_str[16], port_str[BSP_W5500_PORT_NUM][16];
+ u8 field_count = 0;
+ u8 *current_pos = p_data;
+ u8 ip_len, mask_len, gw_len, port_len;
+ u16 port_val;
+
+ memset(hmi_tx_buffer, 0, sizeof(hmi_tx_buffer));
+
+ if (HMI_PROTO_CMD_GET == cmd) /*ȡ*/
{
- switch(opa)
+ switch (opa)
{
- case 0x01:/*ȡϢp_data[0]=0x01Ϊȡõã00ΪȡĬϵ,IP,,,DNS*/
+ case 0x01: /*ȡϢp_data[0]=0x01Ϊȡõã00ΪȡĬϵ,IP,,,DNS*/
+ {
+ if (p_data[0] == 0x01)
{
- if(p_data[0] == 0x01)
+ len += gui_tjc_hmi_tx_text_display(GUI_TCP_CONFIG, 1, 1, (char *)&hmi_tx_buffer[len],
+ "%d.%d.%d.%d",
+ W5500.IP_Addr[0],
+ W5500.IP_Addr[1],
+ W5500.IP_Addr[2],
+ W5500.IP_Addr[3]);
+
+ len += gui_tjc_hmi_tx_text_display(GUI_TCP_CONFIG, 1, 2, (char *)&hmi_tx_buffer[len],
+ "%d.%d.%d.%d",
+ W5500.Sub_Mask[0],
+ W5500.Sub_Mask[1],
+ W5500.Sub_Mask[2],
+ W5500.Sub_Mask[3]);
+
+ len += gui_tjc_hmi_tx_text_display(GUI_TCP_CONFIG, 1, 3, (char *)&hmi_tx_buffer[len],
+ "%d.%d.%d.%d",
+ W5500.Gateway_IP[0],
+ W5500.Gateway_IP[1],
+ W5500.Gateway_IP[2],
+ W5500.Gateway_IP[3]);
+ /*port˿*/
+ for (i = 0; i < BSP_W5500_PORT_NUM; i++)
{
- len += gui_tjc_hmi_tx_text_display(GUI_TCP_CONFIG,1,1,(char *)&hmi_tx_buffer[len],
- "%d.%d.%d.%d",
- W5500.IP_Addr[0],
- W5500.IP_Addr[1],
- W5500.IP_Addr[2],
- W5500.IP_Addr[3]);
-
- len += gui_tjc_hmi_tx_text_display(GUI_TCP_CONFIG,1,2,(char *)&hmi_tx_buffer[len],
- "%d.%d.%d.%d",
- W5500.Sub_Mask[0],
- W5500.Sub_Mask[1],
- W5500.Sub_Mask[2],
- W5500.Sub_Mask[3]);
-
- len += gui_tjc_hmi_tx_text_display(GUI_TCP_CONFIG,1,3,(char *)&hmi_tx_buffer[len],
- "%d.%d.%d.%d",
- W5500.Gateway_IP[0],
- W5500.Gateway_IP[1],
- W5500.Gateway_IP[2],
- W5500.Gateway_IP[3]);
- len += gui_tjc_hmi_tx_text_display(GUI_TCP_CONFIG,1,4,(char *)&hmi_tx_buffer[len],"%d",(W5500.W5500_Class[0].ConfigData.Port[0] << 8) | W5500.W5500_Class[0].ConfigData.Port[1]);
- }else if(p_data[0] == 0x00)
- {
- len += gui_tjc_hmi_tx_text_display(GUI_TCP_CONFIG,1,1,(char *)&hmi_tx_buffer[len],"%s","192.168.100.100");
- len += gui_tjc_hmi_tx_text_display(GUI_TCP_CONFIG,1,2,(char *)&hmi_tx_buffer[len],"%s","255.255.255.0");
- len += gui_tjc_hmi_tx_text_display(GUI_TCP_CONFIG,1,3,(char *)&hmi_tx_buffer[len],"%s","192.168.50.1");
- len += gui_tjc_hmi_tx_text_display(GUI_TCP_CONFIG,1,4,(char *)&hmi_tx_buffer[len],"%s","5000");
- sscanf("192.168.100.100","%hhu.%hhu.%hhu.%hhu",&W5500.IP_Addr[0],&W5500.IP_Addr[1],&W5500.IP_Addr[2],&W5500.IP_Addr[3]);
- sscanf("255.255.255.0","%hhu.%hhu.%hhu.%hhu",&W5500.Sub_Mask[0],&W5500.Sub_Mask[1],&W5500.Sub_Mask[2],&W5500.Sub_Mask[3]);
- sscanf("192.168.50.1","%hhu.%hhu.%hhu.%hhu",&W5500.Gateway_IP[0],&W5500.Gateway_IP[1],&W5500.Gateway_IP[2],&W5500.Gateway_IP[3]);
- W5500.W5500_Class[0].ConfigData.Port[0] = (5000 >> 8) & 0xFF;
- W5500.W5500_Class[0].ConfigData.Port[1] = 5000 & 0xFF;
- W5500.Init();
+ len += gui_tjc_hmi_tx_text_display(GUI_TCP_CONFIG, 1, 4 + i, (char *)&hmi_tx_buffer[len], "%d", (W5500.W5500_Class[i].ConfigData.Port[0] << 8) | W5500.W5500_Class[i].ConfigData.Port[1]);
}
- }break;
- case 0x02:/**/
+ }
+ else if (p_data[0] == 0x00)
{
-
- }break;
- default:return;
+ len += gui_tjc_hmi_tx_text_display(GUI_TCP_CONFIG, 1, 1, (char *)&hmi_tx_buffer[len], "%s", "192.168.100.100");
+ len += gui_tjc_hmi_tx_text_display(GUI_TCP_CONFIG, 1, 2, (char *)&hmi_tx_buffer[len], "%s", "255.255.255.0");
+ len += gui_tjc_hmi_tx_text_display(GUI_TCP_CONFIG, 1, 3, (char *)&hmi_tx_buffer[len], "%s", "192.168.50.1");
+ len += gui_tjc_hmi_tx_text_display(GUI_TCP_CONFIG, 1, 4, (char *)&hmi_tx_buffer[len], "%s", "502");
+ len += gui_tjc_hmi_tx_text_display(GUI_TCP_CONFIG, 1, 5, (char *)&hmi_tx_buffer[len], "%s", "503");
+ len += gui_tjc_hmi_tx_text_display(GUI_TCP_CONFIG, 1, 6, (char *)&hmi_tx_buffer[len], "%s", "504");
+ len += gui_tjc_hmi_tx_text_display(GUI_TCP_CONFIG, 1, 7, (char *)&hmi_tx_buffer[len], "%s", "505");
+
+ sscanf("192.168.100.100", "%hhu.%hhu.%hhu.%hhu", &W5500.IP_Addr[0], &W5500.IP_Addr[1], &W5500.IP_Addr[2], &W5500.IP_Addr[3]);
+ sscanf("255.255.255.0", "%hhu.%hhu.%hhu.%hhu", &W5500.Sub_Mask[0], &W5500.Sub_Mask[1], &W5500.Sub_Mask[2], &W5500.Sub_Mask[3]);
+ sscanf("192.168.50.1", "%hhu.%hhu.%hhu.%hhu", &W5500.Gateway_IP[0], &W5500.Gateway_IP[1], &W5500.Gateway_IP[2], &W5500.Gateway_IP[3]);
+
+ port_temp = 502;
+ for (i = 0; i < BSP_W5500_PORT_NUM; i++)
+ {
+ W5500.W5500_Class[i].ConfigData.Port[0] = (port_temp >> 8) & 0xFF;
+ W5500.W5500_Class[i].ConfigData.Port[1] = port_temp & 0xFF;
+ port_temp++;
+ }
+ W5500.Init();
+ }
}
- len = strlen((char *)hmi_tx_buffer);
- gui_tjc_hmi_data_send(hmi_tx_buffer,len);
- }
- else if(HMI_PROTO_CMD_SET == cmd)/**/
- {
- switch(opa)
+ break;
+ case 0x02: /**/
{
- case 0x01:/*ãϢflash*/
- {
- u8 field_count = 0;
- u8 *current_pos = p_data;
- u8 ip_str[16], mask_str[16], gw_str[16], port_str[16];
- u8 ip_len, mask_len, gw_len, port_len;
- u16 port_val;
-
- /* IPַ */
- for (i = 0; i < 16; i++) {
- if (current_pos[i] == HMI_PROTO_ASCII_RX_DELINITER) {
- ip_len = i;
- memcpy(ip_str, current_pos, ip_len);
- ip_str[ip_len] = '\0';
- current_pos += (i + 1);
- field_count++;
- break;
- }
- }
-
- /* */
- for (i = 0; i < 16; i++) {
- if (current_pos[i] == HMI_PROTO_ASCII_RX_DELINITER) {
- mask_len = i;
- memcpy(mask_str, current_pos, mask_len);
- mask_str[mask_len] = '\0';
- current_pos += (i + 1);
- field_count++;
- break;
- }
- }
-
- /* */
- for (i = 0; i < 16; i++) {
- if (current_pos[i] == HMI_PROTO_ASCII_RX_DELINITER) {
- gw_len = i;
- memcpy(gw_str, current_pos, gw_len);
- gw_str[gw_len] = '\0';
- current_pos += (i + 1);
- field_count++;
- break;
- }
- }
-
- /* ˿ں */
- for (i = 0; i < 16; i++) {
- if (current_pos[i] == HMI_PROTO_ASCII_RX_DELINITER) {
- port_len = i;
- memcpy(port_str, current_pos, port_len);
- port_str[port_len] = '\0';
- current_pos += (i + 1);
- field_count++;
- break;
- }
- }
-
- if (field_count == 4) {
- parse_ip_string(ip_str, ip_len, W5500.IP_Addr);
- parse_ip_string(mask_str, mask_len, W5500.Sub_Mask);
- parse_ip_string(gw_str, gw_len, W5500.Gateway_IP);
- /* ˿ںתΪ */
- port_val = atoi((char*)port_str);
- W5500.W5500_Class[0].ConfigData.Port[0] = (port_val >> 8) & 0xFF;
- W5500.W5500_Class[0].ConfigData.Port[1] = port_val & 0xFF;
-
- /* 浽Flash */
- gui_tjc_hmi_save_network_config_to_w25q();
-
- /* W5500ʹЧ */
- W5500.Init();
- }
-
- }break;
- case 0x02:/**/
- {
-
- }break;
- default:return;
+ }
+ break;
+ default:
+ return;
}
len = strlen((char *)hmi_tx_buffer);
- gui_tjc_hmi_data_send(hmi_tx_buffer,len);
+ gui_tjc_hmi_data_send(hmi_tx_buffer, len);
+ }
+ else if (HMI_PROTO_CMD_SET == cmd) /**/
+ {
+ switch (opa)
+ {
+ case 0x01: /*ãϢflash*/
+ {
+
+ /* IPַ */
+ for (i = 0; i < 16; i++)
+ {
+ if (current_pos[i] == HMI_PROTO_ASCII_RX_DELINITER)
+ {
+ ip_len = i;
+ memcpy(ip_str, current_pos, ip_len);
+ ip_str[ip_len] = '\0';
+ current_pos += (i + 1);
+ field_count++;
+ break;
+ }
+ }
+
+ /* */
+ for (i = 0; i < 16; i++)
+ {
+ if (current_pos[i] == HMI_PROTO_ASCII_RX_DELINITER)
+ {
+ mask_len = i;
+ memcpy(mask_str, current_pos, mask_len);
+ mask_str[mask_len] = '\0';
+ current_pos += (i + 1);
+ field_count++;
+ break;
+ }
+ }
+
+ /* */
+ for (i = 0; i < 16; i++)
+ {
+ if (current_pos[i] == HMI_PROTO_ASCII_RX_DELINITER)
+ {
+ gw_len = i;
+ memcpy(gw_str, current_pos, gw_len);
+ gw_str[gw_len] = '\0';
+ current_pos += (i + 1);
+ field_count++;
+ break;
+ }
+ }
+
+ /* ˿ں */
+ for (j = 0; j < BSP_W5500_PORT_NUM; j++)
+ {
+ for (i = 0; i < 16; i++)
+ {
+ if (current_pos[i] == HMI_PROTO_ASCII_RX_DELINITER)
+ {
+ port_len = i;
+ memcpy(port_str[j], current_pos, port_len);
+ port_str[j][port_len] = '\0';
+ current_pos += (i + 1);
+ field_count++;
+ break;
+ }
+ }
+ }
+
+ if (field_count == 7)
+ {
+ parse_ip_string(ip_str, ip_len, W5500.IP_Addr);
+ parse_ip_string(mask_str, mask_len, W5500.Sub_Mask);
+ parse_ip_string(gw_str, gw_len, W5500.Gateway_IP);
+ /* ˿ںתΪ */
+ for (i = 0; i < BSP_W5500_PORT_NUM; i++)
+ {
+ port_val = atoi((char *)(port_str[i]));
+ W5500.W5500_Class[i].ConfigData.Port[0] = (port_val >> 8) & 0xFF;
+ W5500.W5500_Class[i].ConfigData.Port[1] = port_val & 0xFF;
+ }
+ /* 浽Flash */
+ gui_tjc_hmi_save_network_config_to_w25q();
+ /* W5500ʹЧ */
+ W5500.Init();
+ }
+ }
+ break;
+ case 0x02: /**/
+ {
+ }
+ break;
+ default:
+ return;
+ }
+ len = strlen((char *)hmi_tx_buffer);
+ gui_tjc_hmi_data_send(hmi_tx_buffer, len);
}
}
/*豸ý */
-static void gui_tjc_hmi_device_config_send(u8 cmd,u8 opa,u8 *p_data)
+static void gui_tjc_hmi_device_config_send(u8 cmd, u8 opa, u8 *p_data)
{
- #define DEVICES_PER_PAGE (8)
-
- u16 len = 0,i,j;
- u8 found_empty_slot = 0,enabled_device_count,field_count,page_num,remain_region_num;
+#define DEVICES_PER_PAGE (8)
+
+ u16 len = 0, i, j;
+ u8 found_empty_slot = 0, enabled_device_count, field_count, page_num, remain_region_num;
u8 empty_slot_index = 0;
u8 *current_pos = NULL;
app_leakage_sub_device_flash_data_t new_device;
-
- memset(hmi_tx_buffer,0,sizeof(hmi_tx_buffer));
-
-// enabled_device_count = 0;
-// for (i = 0; i < APP_LEAKAGE_SUB_DEVICE_NUM; i++)
-// {
-// if (leakage.sub_device_data[i].flash_data.state == ENABLE)
-// {
-// enabled_device_count++;
-// }
-// }
-
+
+ memset(hmi_tx_buffer, 0, sizeof(hmi_tx_buffer));
+
+ // enabled_device_count = 0;
+ // for (i = 0; i < APP_LEAKAGE_SUB_DEVICE_NUM; i++)
+ // {
+ // if (leakage.sub_device_data[i].flash_data.state == ENABLE)
+ // {
+ // enabled_device_count++;
+ // }
+ // }
+
enabled_device_count = leakage.sub_device_num;
page_num = enabled_device_count / DEVICES_PER_PAGE;
remain_region_num = enabled_device_count % DEVICES_PER_PAGE;
@@ -1655,583 +1714,605 @@ static void gui_tjc_hmi_device_config_send(u8 cmd,u8 opa,u8 *p_data)
{
page_num++;
}
- if (page_num == 0) page_num = 1;
-
- /*ҳ*/
- len += gui_tjc_hmi_tx_text_display(GUI_DEVICE_CONFIG,0, 0,
- (char *)&hmi_tx_buffer[len],
- "%d/%d",
- p_tjc_hmi->page.device_config_index+1,page_num);
-
-
- if(HMI_PROTO_CMD_GET == cmd)/*ȡ*/
+ if (page_num == 0)
+ page_num = 1;
+
+ /*ҳ*/
+ len += gui_tjc_hmi_tx_text_display(GUI_DEVICE_CONFIG, 0, 0,
+ (char *)&hmi_tx_buffer[len],
+ "%d/%d",
+ p_tjc_hmi->page.device_config_index + 1, page_num);
+
+ if (HMI_PROTO_CMD_GET == cmd) /*ȡ*/
{
- switch(opa)
+ switch (opa)
{
- case 0x01:/*ȡѴڵ豸ʾ˿ڣ豸ID,豸,*/
+ case 0x01: /*ȡѴڵ豸ʾ˿ڣ豸ID,豸,*/
+ {
+ u8 page_device_indices[DEVICES_PER_PAGE] = {0}; /*洢ǰҳ8豸app_leakageе*/
+ u8 page_device_count = 0; /*ǰҳʵõ豸*/
+ u8 current_enabled_index = 0; /*ǰǵڼõ豸*/
+ u8 device_index;
+
+ /*õ豸*/
+ // enabled_device_count = 0;
+ // for(i = 0; i < APP_LEAKAGE_SUB_DEVICE_NUM; i++)
+ // {
+ // if(leakage.sub_device_data[i].flash_data.state == ENABLE)
+ // {
+ // enabled_device_count++;
+ // }
+ // }
+ //
+ // /*ҳ*/
+ // page_num = enabled_device_count / DEVICES_PER_PAGE;
+ // remain_region_num = enabled_device_count % DEVICES_PER_PAGE;
+ // if(remain_region_num > 0)
+ // {
+ // page_num++;
+ // }
+ //
+ /*ȷҳЧΧ*/
+ if (p_tjc_hmi->page.device_config_index >= page_num)
{
- u8 page_device_indices[DEVICES_PER_PAGE] = {0}; /*洢ǰҳ8豸app_leakageе*/
- u8 page_device_count = 0; /*ǰҳʵõ豸*/
- u8 current_enabled_index = 0; /*ǰǵڼõ豸*/
- u8 device_index;
-
- /*õ豸*/
-// enabled_device_count = 0;
-// for(i = 0; i < APP_LEAKAGE_SUB_DEVICE_NUM; i++)
-// {
-// if(leakage.sub_device_data[i].flash_data.state == ENABLE)
-// {
-// enabled_device_count++;
-// }
-// }
-//
-// /*ҳ*/
-// page_num = enabled_device_count / DEVICES_PER_PAGE;
-// remain_region_num = enabled_device_count % DEVICES_PER_PAGE;
-// if(remain_region_num > 0)
-// {
-// page_num++;
-// }
-//
- /*ȷҳЧΧ*/
- if(p_tjc_hmi->page.device_config_index >= page_num)
+ p_tjc_hmi->page.device_config_index = 0;
+ }
+
+ if (enabled_device_count == 0)
+ {
+ for (i = 0; i < DEVICES_PER_PAGE; i++)
+ {
+ len += gui_tjc_hmi_tx_text_display(GUI_DEVICE_CONFIG, i + 1, 1, (char *)&hmi_tx_buffer[len], "");
+ len += gui_tjc_hmi_tx_text_display(GUI_DEVICE_CONFIG, i + 1, 2, (char *)&hmi_tx_buffer[len], "");
+ len += gui_tjc_hmi_tx_text_display(GUI_DEVICE_CONFIG, i + 1, 3, (char *)&hmi_tx_buffer[len], "");
+ len += gui_tjc_hmi_tx_text_display(GUI_DEVICE_CONFIG, i + 1, 4, (char *)&hmi_tx_buffer[len], "");
+ }
+ len = strlen((char *)hmi_tx_buffer);
+ gui_tjc_hmi_data_send(hmi_tx_buffer, len);
+ return;
+ }
+
+ /*ȡǰҳ豸*/
+ for (i = 0; i < APP_LEAKAGE_SUB_DEVICE_NUM && page_device_count < DEVICES_PER_PAGE; i++)
+ {
+ if (leakage.sub_device_data[i].flash_data.state == ENABLE)
+ {
+ current_enabled_index++;
+
+ /*ж豸Ƿڵǰҳ*/
+ u8 device_page = (current_enabled_index - 1) / DEVICES_PER_PAGE;
+ if (device_page == p_tjc_hmi->page.device_config_index)
+ {
+ page_device_indices[page_device_count] = i;
+ page_device_count++;
+ }
+ }
+ }
+
+ if (page_device_count == 0)
+ {
+ /*ǰҳû豸Ϳ*/
+ len = strlen((char *)hmi_tx_buffer);
+ gui_tjc_hmi_data_send(hmi_tx_buffer, len);
+ return;
+ }
+
+ /*ʾǰҳ豸Ϣ*/
+ for (i = 0; i < page_device_count; i++)
+ {
+ device_index = page_device_indices[i];
+
+ /*: t(i+1)_1 */
+ len += gui_tjc_hmi_tx_text_display(GUI_DEVICE_CONFIG, i + 1, 1,
+ (char *)&hmi_tx_buffer[len],
+ "%s",
+ leakage.sub_device_data[device_index].flash_data.region_name);
+
+ /*˿ں: t(i+1)_2 */
+ u8 com_port = leakage.sub_device_data[device_index].flash_data.com;
+ if (com_port < 4) /*ȷ˿ںЧΧ*/
+ {
+ len += gui_tjc_hmi_tx_text_display(GUI_DEVICE_CONFIG, i + 1, 2,
+ (char *)&hmi_tx_buffer[len],
+ "%s",
+ hmi_proto_string_com[com_port]);
+ }
+ else
+ {
+ len += gui_tjc_hmi_tx_text_display(GUI_DEVICE_CONFIG, i + 1, 2,
+ (char *)&hmi_tx_buffer[len],
+ "δ֪");
+ }
+
+ /*豸ID: t(i+1)_3 */
+ len += gui_tjc_hmi_tx_text_display(GUI_DEVICE_CONFIG, i + 1, 3,
+ (char *)&hmi_tx_buffer[len],
+ "%d",
+ leakage.sub_device_data[device_index].flash_data.modbus_id);
+
+ /*豸: t(i+1)_4 */
+ len += gui_tjc_hmi_tx_text_display(GUI_DEVICE_CONFIG, i + 1, 4,
+ (char *)&hmi_tx_buffer[len],
+ "%s",
+ leakage.sub_device_data[device_index].flash_data.device_name);
+ }
+
+ /*ǰҳ8豸ʣ豸ʾλ*/
+ if (page_device_count < DEVICES_PER_PAGE)
+ {
+ for (i = page_device_count; i < DEVICES_PER_PAGE; i++)
+ {
+ /**/
+ len += gui_tjc_hmi_tx_text_display(GUI_DEVICE_CONFIG, i + 1, 1,
+ (char *)&hmi_tx_buffer[len],
+ "");
+
+ /*ն˿ں*/
+ len += gui_tjc_hmi_tx_text_display(GUI_DEVICE_CONFIG, i + 1, 2,
+ (char *)&hmi_tx_buffer[len],
+ "");
+
+ /*豸ID*/
+ len += gui_tjc_hmi_tx_text_display(GUI_DEVICE_CONFIG, i + 1, 3,
+ (char *)&hmi_tx_buffer[len],
+ "");
+
+ /*豸*/
+ len += gui_tjc_hmi_tx_text_display(GUI_DEVICE_CONFIG, i + 1, 4,
+ (char *)&hmi_tx_buffer[len],
+ "");
+ }
+ }
+ }
+ break;
+
+ case 0x02: /*ȡĸCOMڵIJ*/
+ {
+ u8 baud_vals[4];
+ for (i = 0; i < 4; i++)
+ {
+ baud_vals[i] = app_com.com[i].flash_data.baudrate;
+ }
+
+ len = 0;
+ len += sprintf((char *)&hmi_tx_buffer[len], "cb0.val=%d", baud_vals[0]);
+ for (i = 0; i < 3; i++)
+ hmi_tx_buffer[len + i] = 0xFF;
+ len += 3;
+
+ len += sprintf((char *)&hmi_tx_buffer[len], "cb1.val=%d", baud_vals[1]);
+ for (i = 0; i < 3; i++)
+ hmi_tx_buffer[len + i] = 0xFF;
+ len += 3;
+
+ len += sprintf((char *)&hmi_tx_buffer[len], "cb2.val=%d", baud_vals[2]);
+ for (i = 0; i < 3; i++)
+ hmi_tx_buffer[len + i] = 0xFF;
+ len += 3;
+
+ len += sprintf((char *)&hmi_tx_buffer[len], "cb3.val=%d", baud_vals[3]);
+ for (i = 0; i < 3; i++)
+ hmi_tx_buffer[len + i] = 0xFF;
+ len += 3;
+
+ gui_tjc_hmi_data_send(hmi_tx_buffer, len);
+ return;
+ }
+ break;
+
+ case 0x03: /*ҳܣÿҳʾ8豸*/
+ {
+
+ if (0x01 == p_data[0]) /*һҳ*/
+ {
+ if (page_num - 1 <= p_tjc_hmi->page.device_config_index)
{
p_tjc_hmi->page.device_config_index = 0;
}
-
- if(enabled_device_count == 0)
+ else
{
- for(i = 0; i < DEVICES_PER_PAGE; i++)
- {
- len += gui_tjc_hmi_tx_text_display(GUI_DEVICE_CONFIG,i+1, 1, (char *)&hmi_tx_buffer[len], "");
- len += gui_tjc_hmi_tx_text_display(GUI_DEVICE_CONFIG,i+1, 2, (char *)&hmi_tx_buffer[len], "");
- len += gui_tjc_hmi_tx_text_display(GUI_DEVICE_CONFIG,i+1, 3, (char *)&hmi_tx_buffer[len], "");
- len += gui_tjc_hmi_tx_text_display(GUI_DEVICE_CONFIG,i+1, 4, (char *)&hmi_tx_buffer[len], "");
- }
- len = strlen((char *)hmi_tx_buffer);
- gui_tjc_hmi_data_send(hmi_tx_buffer, len);
- return;
+ p_tjc_hmi->page.device_config_index++;
}
-
- /*ȡǰҳ豸*/
- for(i = 0; i < APP_LEAKAGE_SUB_DEVICE_NUM && page_device_count < DEVICES_PER_PAGE; i++)
- {
- if(leakage.sub_device_data[i].flash_data.state == ENABLE)
- {
- current_enabled_index++;
-
- /*ж豸Ƿڵǰҳ*/
- u8 device_page = (current_enabled_index - 1) / DEVICES_PER_PAGE;
- if(device_page == p_tjc_hmi->page.device_config_index)
- {
- page_device_indices[page_device_count] = i;
- page_device_count++;
- }
- }
- }
-
- if(page_device_count == 0)
- {
- /*ǰҳû豸Ϳ*/
- len = strlen((char *)hmi_tx_buffer);
- gui_tjc_hmi_data_send(hmi_tx_buffer,len);
- return;
- }
-
- /*ʾǰҳ豸Ϣ*/
- for(i = 0; i < page_device_count; i++)
- {
- device_index = page_device_indices[i];
-
- /*: t(i+1)_1 */
- len += gui_tjc_hmi_tx_text_display(GUI_DEVICE_CONFIG,i+1, 1,
- (char *)&hmi_tx_buffer[len],
- "%s",
- leakage.sub_device_data[device_index].flash_data.region_name);
-
- /*˿ں: t(i+1)_2 */
- u8 com_port = leakage.sub_device_data[device_index].flash_data.com;
- if(com_port < 4) /*ȷ˿ںЧΧ*/
- {
- len += gui_tjc_hmi_tx_text_display(GUI_DEVICE_CONFIG,i+1, 2,
- (char *)&hmi_tx_buffer[len],
- "%s",
- hmi_proto_string_com[com_port]);
- }
- else
- {
- len += gui_tjc_hmi_tx_text_display(GUI_DEVICE_CONFIG,i+1, 2,
- (char *)&hmi_tx_buffer[len],
- "δ֪");
- }
-
- /*豸ID: t(i+1)_3 */
- len += gui_tjc_hmi_tx_text_display(GUI_DEVICE_CONFIG,i+1, 3,
- (char *)&hmi_tx_buffer[len],
- "%d",
- leakage.sub_device_data[device_index].flash_data.modbus_id);
-
- /*豸: t(i+1)_4 */
- len += gui_tjc_hmi_tx_text_display(GUI_DEVICE_CONFIG,i+1, 4,
- (char *)&hmi_tx_buffer[len],
- "%s",
- leakage.sub_device_data[device_index].flash_data.device_name);
- }
-
- /*ǰҳ8豸ʣ豸ʾλ*/
- if(page_device_count < DEVICES_PER_PAGE)
- {
- for(i = page_device_count; i < DEVICES_PER_PAGE; i++)
- {
- /**/
- len += gui_tjc_hmi_tx_text_display(GUI_DEVICE_CONFIG,i+1, 1,
- (char *)&hmi_tx_buffer[len],
- "");
-
- /*ն˿ں*/
- len += gui_tjc_hmi_tx_text_display(GUI_DEVICE_CONFIG,i+1, 2,
- (char *)&hmi_tx_buffer[len],
- "");
-
- /*豸ID*/
- len += gui_tjc_hmi_tx_text_display(GUI_DEVICE_CONFIG,i+1, 3,
- (char *)&hmi_tx_buffer[len],
- "");
-
- /*豸*/
- len += gui_tjc_hmi_tx_text_display(GUI_DEVICE_CONFIG,i+1, 4,
- (char *)&hmi_tx_buffer[len],
- "");
- }
- }
-
- }break;
-
- case 0x02: /*ȡĸCOMڵIJ*/
+ }
+ else /*һҳ*/
{
- u8 baud_vals[4];
- for (i = 0; i < 4; i++) {
- baud_vals[i] = app_com.com[i].flash_data.baudrate;
- }
-
- len = 0;
- len += sprintf((char*)&hmi_tx_buffer[len], "cb0.val=%d", baud_vals[0]);
- for (i = 0; i < 3; i++) hmi_tx_buffer[len + i] = 0xFF;
- len += 3;
-
- len += sprintf((char*)&hmi_tx_buffer[len], "cb1.val=%d", baud_vals[1]);
- for (i = 0; i < 3; i++) hmi_tx_buffer[len + i] = 0xFF;
- len += 3;
-
- len += sprintf((char*)&hmi_tx_buffer[len], "cb2.val=%d", baud_vals[2]);
- for (i = 0; i < 3; i++) hmi_tx_buffer[len + i] = 0xFF;
- len += 3;
-
- len += sprintf((char*)&hmi_tx_buffer[len], "cb3.val=%d", baud_vals[3]);
- for (i = 0; i < 3; i++) hmi_tx_buffer[len + i] = 0xFF;
- len += 3;
-
- gui_tjc_hmi_data_send(hmi_tx_buffer, len);
- return;
- } break;
-
- case 0x03:/*ҳܣÿҳʾ8豸*/
- {
-
-
- if(0x01 == p_data[0]) /*һҳ*/
+ if (0 == p_tjc_hmi->page.device_config_index)
{
- if(page_num - 1 <= p_tjc_hmi->page.device_config_index)
- {
- p_tjc_hmi->page.device_config_index = 0;
- }
- else
- {
- p_tjc_hmi->page.device_config_index++;
- }
+ p_tjc_hmi->page.device_config_index = page_num - 1;
}
- else /*һҳ*/
+ else
{
- if(0 == p_tjc_hmi->page.device_config_index)
- {
- p_tjc_hmi->page.device_config_index = page_num - 1;
- }
- else
- {
- p_tjc_hmi->page.device_config_index--;
- }
+ p_tjc_hmi->page.device_config_index--;
}
- /*ҳҪ»ȡݲʾﲻֱӷ*/
- return;
- }break;
- default:return;
+ }
+ /*ҳҪ»ȡݲʾﲻֱӷ*/
+ return;
+ }
+ break;
+ default:
+ return;
}
len = strlen((char *)hmi_tx_buffer);
- gui_tjc_hmi_data_send(hmi_tx_buffer,len);
+ gui_tjc_hmi_data_send(hmi_tx_buffer, len);
}
- else if(HMI_PROTO_CMD_SET == cmd)/**/
+ else if (HMI_PROTO_CMD_SET == cmd) /**/
{
- switch(opa)
- {
- case 0x01:
+ switch (opa)
+ {
+ case 0x01:
+ {
+ found_empty_slot = 0;
+ for (i = 0; i < APP_LEAKAGE_SUB_DEVICE_NUM; i++)
{
- found_empty_slot = 0;
- for(i = 0; i < APP_LEAKAGE_SUB_DEVICE_NUM; i++)
+ if (leakage.sub_device_data[i].flash_data.state == DISABLE)
{
- if(leakage.sub_device_data[i].flash_data.state == DISABLE)
- {
- found_empty_slot = 1;
- empty_slot_index = i;
- break;
- }
+ found_empty_slot = 1;
+ empty_slot_index = i;
+ break;
}
-
- if(!found_empty_slot)
- {
- /*豸*/
- return;
- }
-
- field_count = 0;
- current_pos = p_data;
- memset(&new_device, 0, sizeof(new_device));
-
- /*˿ں*/
- for(i = 0; i < 10; i++)
- {
- if(current_pos[i] == HMI_PROTO_ASCII_RX_DELINITER)
- {
- if(i == 0)
- {
- /*˿ںŲΪ*/
- return;
- }
-
- char port_str[10] = {0};
- memcpy(port_str, current_pos, i);
- port_str[i] = '\0';
-
- /*ַ˿ںתΪֵ*/
- if(strcmp(port_str, "COM1") == 0)
- {
- new_device.com = 0;
- }
- else if(strcmp(port_str, "COM2") == 0)
- {
- new_device.com = 1;
- }
- else if(strcmp(port_str, "COM3") == 0)
- {
- new_device.com = 2;
- }
- else if(strcmp(port_str, "COM4") == 0)
- {
- new_device.com = 3;
- }
-
- current_pos += (i + 1);
- field_count++;
- break;
- }
- }
-
-// /**/
-// for(i = 0; i < 10; i++) // Ϊ115200
-// {
-// if(current_pos[i] == HMI_PROTO_ASCII_RX_DELINITER)
-// {
-// if(i == 0)
-// {
-// /*ʲΪ*/
-// return;
-// }
+ }
-// char baud_str[10] = {0};
-// memcpy(baud_str, current_pos, i);
-// baud_str[i] = '\0';
+ if (!found_empty_slot)
+ {
+ /*豸*/
+ return;
+ }
-// /*ַתΪֵ*/
-// if(strcmp(baud_str, "2400") == 0)
-// {
-// new_device.baudrate = 0;
-// }
-// else if(strcmp(baud_str, "4800") == 0)
-// {
-// new_device.baudrate = 1;
-// }
-// else if(strcmp(baud_str, "9600") == 0)
-// {
-// new_device.baudrate = 2;
-// }
-// else if(strcmp(baud_str, "115200") == 0)
-// {
-// new_device.baudrate = 3;
-// }
+ field_count = 0;
+ current_pos = p_data;
+ memset(&new_device, 0, sizeof(new_device));
-// current_pos += (i + 1);
-// field_count++;
-// break;
-// }
-// }
-
- /**/
- for(i = 0; i < APP_LEAKAGE_STRING_NANE_LEN; i++)
+ /*˿ں*/
+ for (i = 0; i < 10; i++)
+ {
+ if (current_pos[i] == HMI_PROTO_ASCII_RX_DELINITER)
{
- if(current_pos[i] == HMI_PROTO_ASCII_RX_DELINITER)
+ if (i == 0)
{
- memcpy(new_device.region_name, current_pos, i);
- new_device.region_name[i] = '\0';
- current_pos += (i + 1);
+ /*˿ںŲΪ*/
+ return;
+ }
+
+ char port_str[10] = {0};
+ memcpy(port_str, current_pos, i);
+ port_str[i] = '\0';
+
+ /*ַ˿ںתΪֵ*/
+ if (strcmp(port_str, "COM1") == 0)
+ {
+ new_device.com = 0;
+ }
+ else if (strcmp(port_str, "COM2") == 0)
+ {
+ new_device.com = 1;
+ }
+ else if (strcmp(port_str, "COM3") == 0)
+ {
+ new_device.com = 2;
+ }
+ else if (strcmp(port_str, "COM4") == 0)
+ {
+ new_device.com = 3;
+ }
+
+ current_pos += (i + 1);
+ field_count++;
+ break;
+ }
+ }
+
+ // /**/
+ // for(i = 0; i < 10; i++) // Ϊ115200
+ // {
+ // if(current_pos[i] == HMI_PROTO_ASCII_RX_DELINITER)
+ // {
+ // if(i == 0)
+ // {
+ // /*ʲΪ*/
+ // return;
+ // }
+
+ // char baud_str[10] = {0};
+ // memcpy(baud_str, current_pos, i);
+ // baud_str[i] = '\0';
+
+ // /*ַתΪֵ*/
+ // if(strcmp(baud_str, "2400") == 0)
+ // {
+ // new_device.baudrate = 0;
+ // }
+ // else if(strcmp(baud_str, "4800") == 0)
+ // {
+ // new_device.baudrate = 1;
+ // }
+ // else if(strcmp(baud_str, "9600") == 0)
+ // {
+ // new_device.baudrate = 2;
+ // }
+ // else if(strcmp(baud_str, "115200") == 0)
+ // {
+ // new_device.baudrate = 3;
+ // }
+
+ // current_pos += (i + 1);
+ // field_count++;
+ // break;
+ // }
+ // }
+
+ /**/
+ for (i = 0; i < APP_LEAKAGE_STRING_NANE_LEN; i++)
+ {
+ if (current_pos[i] == HMI_PROTO_ASCII_RX_DELINITER)
+ {
+ memcpy(new_device.region_name, current_pos, i);
+ new_device.region_name[i] = '\0';
+ current_pos += (i + 1);
+ field_count++;
+ break;
+ }
+ }
+
+ /*豸ID */
+ for (i = 0; i < 10; i++)
+ {
+ if (current_pos[i] == HMI_PROTO_ASCII_RX_DELINITER)
+ {
+ if (i == 0)
+ {
+ /*豸IDΪ*/
+ return;
+ }
+
+ /*豸IDַתΪֵ*/
+ char id_str[10] = {0};
+ memcpy(id_str, current_pos, i);
+ id_str[i] = '\0';
+ new_device.modbus_id = atoi(id_str);
+
+ if (new_device.modbus_id < 1 || new_device.modbus_id > 255)
+ {
+ return;
+ }
+
+ current_pos += (i + 1);
+ field_count++;
+ break;
+ }
+ }
+
+ /*豸*/
+ for (i = 0; i < APP_LEAKAGE_STRING_NANE_LEN; i++)
+ {
+ if (current_pos[i] == HMI_PROTO_ASCII_RX_DELINITER)
+ {
+ memcpy(new_device.device_name, current_pos, i);
+ new_device.device_name[i] = '\0';
+ field_count++;
+ break;
+ }
+ }
+
+ /*ͬidʱ֮ǰ*/
+ if (field_count == 4)
+ {
+ for (u8 x = 0; x < APP_LEAKAGE_SUB_DEVICE_NUM; x++)
+ {
+ if (leakage.sub_device_data[x].flash_data.modbus_id == new_device.modbus_id)
+ {
+ new_device.state = ENABLE;
+ new_device.baudrate = app_com.com[new_device.com].flash_data.baudrate;
+ leakage.sub_device_data[x].shield = UNBLOCKED;
+ leakage.sub_device_data[x].flash_data = new_device;
+ gui_tjc_hmi_save_device_info_to_w25q();
+ gui_tjc_hmi_class_update();
field_count++;
- break;
}
}
-
- /*豸ID */
- for(i = 0; i < 10; i++)
+ }
+
+ /*ӵ豸б*/
+ if (field_count == 4)
+ {
+ /*Ĭ״̬Ϊ*/
+ new_device.state = ENABLE;
+
+ /**/
+ new_device.baudrate = app_com.com[new_device.com].flash_data.baudrate;
+
+ leakage.sub_device_data[empty_slot_index].shield = UNBLOCKED;
+
+ /*ӵapp_leakage豸б*/
+ leakage.sub_device_data[empty_slot_index].flash_data = new_device;
+
+ /*ͨ*/
+ memset(leakage.sub_device_data[empty_slot_index].ch_data, 0,
+ sizeof(leakage.sub_device_data[empty_slot_index].ch_data));
+
+ /*浽W25Q32*/
+ gui_tjc_hmi_save_device_info_to_w25q();
+
+ /*·*/
+ gui_tjc_hmi_class_update();
+
+ page_num = leakage.sub_device_num / DEVICES_PER_PAGE;
+ remain_region_num = leakage.sub_device_num % DEVICES_PER_PAGE;
+ if (remain_region_num > 0)
{
- if(current_pos[i] == HMI_PROTO_ASCII_RX_DELINITER)
+ page_num++;
+ }
+ if (page_num == 0)
+ page_num = 1;
+ p_tjc_hmi->page.device_config_index = page_num - 1; // xian
+
+ // if (new_device.com < APP_COM_NUM && new_device.baudrate < 4) {
+ // app_com.com[new_device.com].set.baud_rate(
+ // &app_com.com[new_device.com],
+ // new_device.baudrate
+ // );
+ // }
+ }
+ else
+ {
+ /*ʹӦ*/
+ return;
+ }
+ }
+ break;
+ case 0x02: /*ɾ豸豸Ϣw25qɾ*/
+ {
+ u8 page_device_indices[8] = {0}; /*洢ǰҳ8豸app_leakageе*/
+ u8 page_device_count = 0; /*ǰҳʵõ豸*/
+ u8 current_enabled_index = 0; /*ǰǵڼõ豸*/
+
+ for (i = 0; i < APP_LEAKAGE_SUB_DEVICE_NUM && page_device_count < DEVICES_PER_PAGE; i++)
+ {
+ if (leakage.sub_device_data[i].flash_data.state == ENABLE)
+ {
+ current_enabled_index++;
+
+ /*ж豸Ƿڵǰҳ*/
+ u8 device_page = (current_enabled_index - 1) / DEVICES_PER_PAGE;
+ if (device_page == p_tjc_hmi->page.device_config_index)
{
- if(i == 0)
- {
- /*豸IDΪ*/
- return;
- }
-
- /*豸IDַתΪֵ*/
- char id_str[10] = {0};
- memcpy(id_str, current_pos, i);
- id_str[i] = '\0';
- new_device.modbus_id = atoi(id_str);
-
- if(new_device.modbus_id < 1 || new_device.modbus_id > 255)
- {
- return;
- }
-
- current_pos += (i + 1);
- field_count++;
- break;
+ page_device_indices[page_device_count] = i;
+ page_device_count++;
}
}
-
- /*豸*/
- for(i = 0; i < APP_LEAKAGE_STRING_NANE_LEN; i++)
+ }
+
+ if (page_device_count == 0)
+ {
+ /*ǰҳû豸*/
+ return;
+ }
+
+ /*8ѡпֽڣɾѡе豸Ӻǰɾ*/
+ u8 deleted_count = 0;
+ for (i = page_device_count; i > 0; i--)
+ {
+ u8 idx = i - 1;
+ if (p_data[idx] == 0x01)
{
- if(current_pos[i] == HMI_PROTO_ASCII_RX_DELINITER)
+ u8 actual_index = page_device_indices[idx]; // ֱʹԭʼ
+ /*豸ǰƶ*/
+ for (j = actual_index; j < APP_LEAKAGE_SUB_DEVICE_NUM - 1; j++)
{
- memcpy(new_device.device_name, current_pos, i);
- new_device.device_name[i] = '\0';
- field_count++;
- break;
+ leakage.sub_device_data[j].flash_data = leakage.sub_device_data[j + 1].flash_data;
}
- }
-
- /*ͬidʱ֮ǰ*/
- if(field_count == 4)
- {
- for(u8 x = 0; x < APP_LEAKAGE_SUB_DEVICE_NUM; x++)
- {
- if (leakage.sub_device_data[x].flash_data.modbus_id == new_device.modbus_id)
- {
- new_device.state = ENABLE;
- new_device.baudrate = app_com.com[new_device.com].flash_data.baudrate;
- leakage.sub_device_data[x].shield = UNBLOCKED;
- leakage.sub_device_data[x].flash_data = new_device;
- gui_tjc_hmi_save_device_info_to_w25q();
- gui_tjc_hmi_class_update();
- field_count++;
- }
- }
- }
-
- /*ӵ豸б*/
- if(field_count == 4)
- {
- /*Ĭ״̬Ϊ*/
- new_device.state = ENABLE;
-
- /**/
- new_device.baudrate = app_com.com[new_device.com].flash_data.baudrate;
-
- leakage.sub_device_data[empty_slot_index].shield = UNBLOCKED;
-
- /*ӵapp_leakage豸б*/
- leakage.sub_device_data[empty_slot_index].flash_data = new_device;
-
+ /*һ豸*/
+ memset(&leakage.sub_device_data[APP_LEAKAGE_SUB_DEVICE_NUM - 1].flash_data, 0,
+ sizeof(app_leakage_sub_device_flash_data_t));
+ leakage.sub_device_data[APP_LEAKAGE_SUB_DEVICE_NUM - 1].flash_data.state = DISABLE;
+
/*ͨ*/
- memset(leakage.sub_device_data[empty_slot_index].ch_data, 0,
- sizeof(leakage.sub_device_data[empty_slot_index].ch_data));
-
- /*浽W25Q32*/
- gui_tjc_hmi_save_device_info_to_w25q();
-
- /*·*/
- gui_tjc_hmi_class_update();
-
- page_num = leakage.sub_device_num / DEVICES_PER_PAGE;
- remain_region_num = leakage.sub_device_num % DEVICES_PER_PAGE;
- if (remain_region_num > 0)
- {
- page_num++;
- }
- if (page_num == 0) page_num = 1;
- p_tjc_hmi->page.device_config_index = page_num - 1;//xian
-
-
-// if (new_device.com < APP_COM_NUM && new_device.baudrate < 4) {
-// app_com.com[new_device.com].set.baud_rate(
-// &app_com.com[new_device.com],
-// new_device.baudrate
-// );
-// }
-
- }
- else
- {
- /*ʹӦ*/
- return;
- }
-
- }break;
- case 0x02:/*ɾ豸豸Ϣw25qɾ*/
- { u8 page_device_indices[8] = {0}; /*洢ǰҳ8豸app_leakageе*/
- u8 page_device_count = 0; /*ǰҳʵõ豸*/
- u8 current_enabled_index = 0; /*ǰǵڼõ豸*/
-
- for(i = 0; i < APP_LEAKAGE_SUB_DEVICE_NUM && page_device_count < DEVICES_PER_PAGE; i++)
- {
- if(leakage.sub_device_data[i].flash_data.state == ENABLE)
- {
- current_enabled_index++;
-
- /*ж豸Ƿڵǰҳ*/
- u8 device_page = (current_enabled_index - 1) / DEVICES_PER_PAGE;
- if(device_page == p_tjc_hmi->page.device_config_index)
- {
- page_device_indices[page_device_count] = i;
- page_device_count++;
- }
- }
- }
-
- if(page_device_count == 0)
- {
- /*ǰҳû豸*/
- return;
- }
-
- /*8ѡпֽڣɾѡе豸Ӻǰɾ*/
- u8 deleted_count = 0;
- for(i = page_device_count; i > 0; i--)
- {
- u8 idx = i - 1;
- if(p_data[idx] == 0x01)
- {
- u8 actual_index = page_device_indices[idx]; // ֱʹԭʼ
- /*豸ǰƶ*/
- for(j = actual_index; j < APP_LEAKAGE_SUB_DEVICE_NUM - 1; j++)
- {
- leakage.sub_device_data[j].flash_data = leakage.sub_device_data[j + 1].flash_data;
- }
- /*һ豸*/
- memset(&leakage.sub_device_data[APP_LEAKAGE_SUB_DEVICE_NUM - 1].flash_data, 0,
- sizeof(app_leakage_sub_device_flash_data_t));
- leakage.sub_device_data[APP_LEAKAGE_SUB_DEVICE_NUM - 1].flash_data.state = DISABLE;
-
- /*ͨ*/
- memset(leakage.sub_device_data[APP_LEAKAGE_SUB_DEVICE_NUM - 1].ch_data, 0,
- sizeof(leakage.sub_device_data[APP_LEAKAGE_SUB_DEVICE_NUM - 1].ch_data));
-
- deleted_count++;
- }
- }
+ memset(leakage.sub_device_data[APP_LEAKAGE_SUB_DEVICE_NUM - 1].ch_data, 0,
+ sizeof(leakage.sub_device_data[APP_LEAKAGE_SUB_DEVICE_NUM - 1].ch_data));
- if(deleted_count > 0)
- {
- /*浽W25Q32*/
- gui_tjc_hmi_save_device_info_to_w25q();
- /*·*/
- gui_tjc_hmi_class_update();
- /*ѡȷӦ*/
+ deleted_count++;
}
- else
- {
- /*ûѡκ豸*/
- return;
- }
- }break;
-
- case 0x03: /*òʣ1ӦCOM1*/
+ }
+
+ if (deleted_count > 0)
+ {
+ /*浽W25Q32*/
+ gui_tjc_hmi_save_device_info_to_w25q();
+ /*·*/
+ gui_tjc_hmi_class_update();
+ /*ѡȷӦ*/
+ }
+ else
+ {
+ /*ûѡκ豸*/
+ return;
+ }
+ }
+ break;
+
+ case 0x03: /*òʣ1ӦCOM1*/
{
u8 *ptr = p_data;
u8 baud_vals[APP_COM_NUM];
- char temp_buf[10]; /*ʱ洢ASCIIַ*/
+ char temp_buf[10]; /*ʱ洢ASCIIַ*/
- for (i = 0; i < APP_COM_NUM; i++) {
+ for (i = 0; i < APP_COM_NUM; i++)
+ {
u8 temp_len = 0;
// ȡֱһ0xAAָ
- while (*ptr != HMI_PROTO_ASCII_RX_DELINITER && temp_len < sizeof(temp_buf) - 1) {
+ while (*ptr != HMI_PROTO_ASCII_RX_DELINITER && temp_len < sizeof(temp_buf) - 1)
+ {
temp_buf[temp_len++] = *ptr++;
}
- if (*ptr != HMI_PROTO_ASCII_RX_DELINITER) {
- return;
+ if (*ptr != HMI_PROTO_ASCII_RX_DELINITER)
+ {
+ return;
}
temp_buf[temp_len] = '\0';
- ptr++; // ָ
+ ptr++; // ָ
// ASCIIַתΪ
u32 baud_int = atoi(temp_buf);
// ӳ䵽öֵ
u8 enum_val;
- if (baud_int == 4800) enum_val = 0;
- else if (baud_int == 9600) enum_val = 1;
- else if (baud_int == 19200) enum_val = 2;
- else if (baud_int == 57600) enum_val = 3;
- else if (baud_int == 115200) enum_val = 4;
- else enum_val = 4;
+ if (baud_int == 4800)
+ enum_val = 0;
+ else if (baud_int == 9600)
+ enum_val = 1;
+ else if (baud_int == 19200)
+ enum_val = 2;
+ else if (baud_int == 57600)
+ enum_val = 3;
+ else if (baud_int == 115200)
+ enum_val = 4;
+ else
+ enum_val = 4;
baud_vals[i] = enum_val;
}
/*ÿCOMIJ*/
- for (i = 0; i < APP_COM_NUM; i++) {
- if (app_com.com[i].flash_data.baudrate != baud_vals[i]) {
- app_com.com[i].flash_data.baudrate = baud_vals[i];
- if (app_com.com[i].set.baud_rate) {
- app_com.com[i].set.baud_rate(&app_com.com[i], baud_vals[i]);
- }
+ for (i = 0; i < APP_COM_NUM; i++)
+ {
+ if (app_com.com[i].flash_data.baudrate != baud_vals[i])
+ {
+ app_com.com[i].flash_data.baudrate = baud_vals[i];
+ if (app_com.com[i].set.baud_rate)
+ {
+ app_com.com[i].set.baud_rate(&app_com.com[i], baud_vals[i]);
}
}
+ }
app_com.save_flah();
return;
- } break;
-
- default:return;
+ }
+ break;
+
+ default:
+ return;
}
len = strlen((char *)hmi_tx_buffer);
- gui_tjc_hmi_data_send(hmi_tx_buffer,len);
+ gui_tjc_hmi_data_send(hmi_tx_buffer, len);
}
}
/*ʱ*/
-static void gui_tjc_hmi_time_set_send(u8 cmd,u8 opa,u8 *p_data)
+static void gui_tjc_hmi_time_set_send(u8 cmd, u8 opa, u8 *p_data)
{
u16 i, len = 0;
- char temp_buf[5];
+ char temp_buf[5];
bsp_DS1302_Time_t new_time;
-
- if(HMI_PROTO_CMD_SET == cmd) /* */
+
+ if (HMI_PROTO_CMD_SET == cmd) /* */
{
- switch(opa)
+ switch (opa)
{
- case 0x01: /* ʱ */
- {
- int idx = 0; /**/
- int field = 0; /*ǰֶαţ0:,1:,2:,3:ʱ,4:֣*/
- char temp_buf[5];
- int value;
+ case 0x01: /* ʱ */
+ {
+ int idx = 0; /**/
+ int field = 0; /*ǰֶαţ0:,1:,2:,3:ʱ,4:֣*/
+ char temp_buf[5];
+ int value;
while (field < 5)
{
@@ -2239,14 +2320,14 @@ static void gui_tjc_hmi_time_set_send(u8 cmd,u8 opa,u8 *p_data)
/*ռǰֶεASCIIֱַָ0xAA*/
while (p_data[idx] != 0xAA)
{
- if (len >= 4)
+ if (len >= 4)
{
- return;
+ return;
}
temp_buf[len++] = p_data[idx++];
}
- if (len == 0)
+ if (len == 0)
{
return;
}
@@ -2257,11 +2338,21 @@ static void gui_tjc_hmi_time_set_send(u8 cmd,u8 opa,u8 *p_data)
/* ֶŸֵ*/
switch (field)
{
- case 0: new_time.Year = value % 2000; break; // ȡλ
- case 1: new_time.Month = value; break;
- case 2: new_time.Day = value; break;
- case 3: new_time.Hour = value; break;
- case 4: new_time.Minute = value; break;
+ case 0:
+ new_time.Year = value % 2000;
+ break; // ȡλ
+ case 1:
+ new_time.Month = value;
+ break;
+ case 2:
+ new_time.Day = value;
+ break;
+ case 3:
+ new_time.Hour = value;
+ break;
+ case 4:
+ new_time.Minute = value;
+ break;
}
/*ǰָ0xAAһֶ*/
@@ -2270,11 +2361,11 @@ static void gui_tjc_hmi_time_set_send(u8 cmd,u8 opa,u8 *p_data)
}
DS1302.Set(&new_time);
- }
+ }
+ break;
+
+ default:
break;
-
- default:
- break;
}
}
}
@@ -2282,74 +2373,82 @@ static void gui_tjc_hmi_time_set_send(u8 cmd,u8 opa,u8 *p_data)
/*Ļָ*/
static void gui_tjc_hmi_communication_data_analysis(u8 *p_data, u16 len, void *rx_uart)
{
- u8 cmd,data,gui_id,opa,*p_offset_data;
- u16 i,modbus_crc16,check_crc16;
+ u8 cmd, data, gui_id, opa, *p_offset_data;
+ u16 i, modbus_crc16, check_crc16;
/*Ȳ*/
- if(len < 5)
+ if (len < 5)
{
- return ;
+ return;
}
/*֡ͷ*/
- if(p_data[0] != HMI_PROTO_FRAME_HEADER1 || p_data[1] != HMI_PROTO_FRAME_HEADER2)
+ if (p_data[0] != HMI_PROTO_FRAME_HEADER1 || p_data[1] != HMI_PROTO_FRAME_HEADER2)
{
- return ;
+ return;
}
/*Уλ*/
- check_crc16 = p_data[len-2] << 8 | p_data[len-1];
- modbus_crc16 = modbus_lib_crc16(p_data,len-2);
+ check_crc16 = p_data[len - 2] << 8 | p_data[len - 1];
+ modbus_crc16 = modbus_lib_crc16(p_data, len - 2);
modbus_crc16 = (modbus_crc16 >> 8) | (modbus_crc16 << 8);
- if(modbus_crc16 != check_crc16)
+ if (modbus_crc16 != check_crc16)
{
- return ;
+ return;
}
-
+
/*CMD*/
cmd = p_data[2];
- if(cmd != HMI_PROTO_CMD_GET && cmd != HMI_PROTO_CMD_SET)
+ if (cmd != HMI_PROTO_CMD_GET && cmd != HMI_PROTO_CMD_SET)
{
- return ;
+ return;
}
- gui_id = p_data[3]; /*gui_id*/
- opa = p_data[4]; /**/
- p_offset_data = &p_data[5]; /**/
- p_rx_uart = (bsp_uart_t *)rx_uart; /*ָ*/
- switch(gui_id)
+ gui_id = p_data[3]; /*gui_id*/
+ opa = p_data[4]; /**/
+ p_offset_data = &p_data[5]; /**/
+ p_rx_uart = (bsp_uart_t *)rx_uart; /*ָ*/
+ switch (gui_id)
{
- case HMI_PROTO_GUI_MAIN :
- {
- gui_tjc_hmi_main_send(cmd,opa,p_offset_data);
- }break;
- case HMI_PROTO_GUI_CURR_ALARM :
- {
- gui_tjc_hmi_curr_alarm_send(cmd,opa,p_offset_data);
- }break;
- case HMI_PROTO_GUI_DETAIL_MAIN :
- {
- gui_tjc_hmi_detail_main_send(cmd,opa,p_offset_data);
- }break;
- case HMI_PROTO_GUI_LOGIN :
- {
- gui_tjc_hmi_login_send(cmd,opa,p_offset_data);
- }break;
- case HMI_PROTO_GUI_HISTORY_ALARM :
- {
- gui_tjc_hmi_history_alarm_send(cmd,opa,p_offset_data);
- }break;
- case HMI_PROTO_GUI_TCP_CONFIG :
- {
- gui_tjc_hmi_tcp_config_send(cmd,opa,p_offset_data);
- }break;
- case HMI_PROTO_GUI_DEVICE_CONFIG :
- {
- gui_tjc_hmi_device_config_send(cmd,opa,p_offset_data);
- }break;
- case HMI_PROTO_GUI_HELP :
- {
- //gui_tjc_hmi_help_send(cmd,opa,p_offset_data);
- }break;
- case HMI_PROTO_GUI_TIME :
- {
- gui_tjc_hmi_time_set_send(cmd,opa,p_offset_data);
- }
- }
+ case HMI_PROTO_GUI_MAIN:
+ {
+ gui_tjc_hmi_main_send(cmd, opa, p_offset_data);
+ }
+ break;
+ case HMI_PROTO_GUI_CURR_ALARM:
+ {
+ gui_tjc_hmi_curr_alarm_send(cmd, opa, p_offset_data);
+ }
+ break;
+ case HMI_PROTO_GUI_DETAIL_MAIN:
+ {
+ gui_tjc_hmi_detail_main_send(cmd, opa, p_offset_data);
+ }
+ break;
+ case HMI_PROTO_GUI_LOGIN:
+ {
+ gui_tjc_hmi_login_send(cmd, opa, p_offset_data);
+ }
+ break;
+ case HMI_PROTO_GUI_HISTORY_ALARM:
+ {
+ gui_tjc_hmi_history_alarm_send(cmd, opa, p_offset_data);
+ }
+ break;
+ case HMI_PROTO_GUI_TCP_CONFIG:
+ {
+ gui_tjc_hmi_tcp_config_send(cmd, opa, p_offset_data);
+ }
+ break;
+ case HMI_PROTO_GUI_DEVICE_CONFIG:
+ {
+ gui_tjc_hmi_device_config_send(cmd, opa, p_offset_data);
+ }
+ break;
+ case HMI_PROTO_GUI_HELP:
+ {
+ // gui_tjc_hmi_help_send(cmd,opa,p_offset_data);
+ }
+ break;
+ case HMI_PROTO_GUI_TIME:
+ {
+ gui_tjc_hmi_time_set_send(cmd, opa, p_offset_data);
+ }
+ }
}
diff --git a/leakage_system/usr/protocol/proto_modbus_tcp_slave_ex.c b/leakage_system/usr/protocol/proto_modbus_tcp_slave_ex.c
index 19188d6..e0b7000 100644
--- a/leakage_system/usr/protocol/proto_modbus_tcp_slave_ex.c
+++ b/leakage_system/usr/protocol/proto_modbus_tcp_slave_ex.c
@@ -48,7 +48,12 @@ static void proto_modbus_communication_data_send(u8 *p_data, u16 len)
static void proto_modbus_init(void)
{
- W5500.W5500_Class[0].Rx_DataAnalysis = proto_modbus_communication_data_analysis;
+ u16 i;
+ for(i=0;i> 8;
- send_struct.send_buffer[send_buff_index_offset + send_buff_index_offset + 3] = modbus_analysis_data.start_addr & 0xff;
- send_struct.send_buffer[send_buff_index_offset + send_buff_index_offset + 4] = modbus_analysis_data.reg_number >> 8;
- send_struct.send_buffer[send_buff_index_offset + send_buff_index_offset + 5] = modbus_analysis_data.reg_number & 0xff;
+ send_struct.send_buffer[send_buff_index_offset + 0] = modbus_analysis_data.id;
+ send_struct.send_buffer[send_buff_index_offset + 1] = modbus_analysis_data.func;
+ send_struct.send_buffer[send_buff_index_offset + 2] = modbus_analysis_data.start_addr >> 8;
+ send_struct.send_buffer[send_buff_index_offset + 3] = modbus_analysis_data.start_addr & 0xff;
+ send_struct.send_buffer[send_buff_index_offset + 4] = modbus_analysis_data.reg_number >> 8;
+ send_struct.send_buffer[send_buff_index_offset + 5] = modbus_analysis_data.reg_number & 0xff;
}
break;
default:
diff --git a/leakage_system_V0.004.0.hex b/leakage_system_V0.004.0.hex
deleted file mode 100644
index a86dba1..0000000
--- a/leakage_system_V0.004.0.hex
+++ /dev/null
@@ -1,3331 +0,0 @@
-:020000040800F2
-:10400000E0550020A1410008ED7900086175000825
-:10401000E9790008954E0008898700080000000033
-:104020000000000000000000000000004D7E0008BD
-:104030004350000800000000F1790008397F0008B3
-:10404000BB410008BB410008BB410008BB41000860
-:10405000BB410008BB410008BB410008BB41000850
-:10406000BB410008BB410008BB410008BB41000840
-:10407000994E0008A94E0008B94E0008C94E000824
-:10408000D94E0008E94E0008BB410008BB410008BA
-:10409000BB410008BB410008BB410008BB41000810
-:1040A000BB410008BB410008BB410008BB41000800
-:1040B000BB410008BB410008BB410008BB410008F0
-:1040C000BB410008BB410008BB410008BB410008E0
-:1040D000BB41000849870008598700086987000824
-:1040E000BB410008BB410008BB410008BB410008C0
-:1040F000BB410008BB410008BB410008BB410008B0
-:10410000BB410008BB410008BB410008BB4100089F
-:1041100061800008BB410008BB410008BB410008AA
-:10412000BB410008F94E0008094F0008BB410008D8
-:10413000BB410008BB410008BB410008BB4100086F
-:10414000BB410008BB410008BB410008BB4100085F
-:10415000BB410008194F0008294F00087987000863
-:10416000BB410008BB410008BB410008BB4100083F
-:10417000BB410008BB410008BB4100080000000033
-:10418000BB410008BB410008DFF810D000F03EFC46
-:1041900000480047BDEE0008AFF30080E055002066
-:1041A0000648804706480047FEE7FEE7FEE7FEE7D1
-:1041B000FEE7FEE7FEE7FEE7FEE7FEE741800008D8
-:1041C000894100082DE9F05F0546002092469B4694
-:1041D00088460646814640241BE02846414647461D
-:1041E000224600F0E3F953465A46C01A914110D3D3
-:1041F00011461846224600F0CAF92D1A67EB01084D
-:104200004F4622460120002100F0C1F917EB0009BA
-:104210004E41201EA4F10104DFDC484631462A4607
-:104220004346BDE8F09F40EA01039B0703D009E045
-:1042300008C9121F08C0042AFAD203E011F8013B92
-:1042400000F8013B521EF9D27047D2B201E000F8EB
-:10425000012B491EFBD270470022F6E710B513462A
-:104260000A4604461946FFF7F0FF204610BD421EDD
-:1042700012F8013F002BFBD111F8013B02F8013B82
-:10428000002BF9D17047421C10F8011B0029FBD10B
-:10429000801A704710B5002200E0521C835C8C5CD1
-:1042A000A34201D1002BF8D1D8B2E1B2401A10BD1F
-:1042B00030B504460020034600E05B1C934203D265
-:1042C000E05CCD5C401BF8D030BD00000FB400B501
-:1042D0008DB010A909900B9000914FF0FF300A901B
-:1042E00000200C9005480690054807906A4609A8EA
-:1042F0000F9900F07FF90DB05DF814FB114600082E
-:104300002F4600082DE9FF5F1D464FF0FF3BD5E922
-:10431000014691465F464FF00008A9697F1C01984D
-:104320008847296A824688470028F6D1BAF1FF3FBC
-:104330000CD024F4C064002E19DD600614D5BAF147
-:104340002B0F09D0BAF12D0F0ED103E0584604B05F
-:10435000BDE8F09F44F48064A9697F1C01988847F8
-:10436000761E8246002E02DDBAF1300F03D0B9F17D
-:10437000000F26D032E0A969761E44F400747F1C39
-:10438000019888478246002E05DDBAF1780F06D0E5
-:10439000BAF1580F03D0B9F1000F10D01EE0B9F1F7
-:1043A000000F02D0B9F1100F18D1A969761E24F4BC
-:1043B00000747F1C019888478246102002E0082084
-:1043C00000E00A20814609E008FB0908A969761E79
-:1043D00044F400747F1C019888478246002E05DD56
-:1043E0004946504600F0F2F80028EDDAE9690198F4
-:1043F0008847A00502D46FF00100A8E7E00725D1A7
-:10440000600613D5600502D5C8F1000000E0404603
-:1044100029680A1D2A600968220501D5087015E07F
-:10442000220701D5088011E008600FE02868011D0F
-:1044300029600068210502D580F8008006E0210788
-:1044400002D5A0F8008001E0C0F8008038467EE781
-:1044500070B5064604F0D0FB046805460A22002128
-:10446000304600F0F5F82C6070BD2DE9F04D81EA82
-:10447000030404F0004B21F0004514464FF0000AFD
-:1044800023F0004150EA050220D054EA01021DD079
-:10449000C5F30A570246C5F31303C1F31300C1F372
-:1044A0000A5640F4801543F48013A7EB0608101B4E
-:1044B000D64608F2FD3873EB050002D308F1010877
-:1044C00001E092185B41B8F1000F03DA00200146C9
-:1044D000BDE8F08D00204FF48011064684460EE0C2
-:1044E000171B73EB050705D3121B63EB050306438C
-:1044F0004CEA010C49084FEA300092185B4150EA3F
-:104500000107EDD152EA030012D082EA040083EAE7
-:104510000501084305D0101BAB4106D20122002340
-:1045200006E000224FF0004302E06FF0010253105A
-:104530001AEB06004CEB085110EB0A0041EB0B01A3
-:10454000BDE8F04D00F0BCB80EB540F23341029129
-:104550000021CDE900110A460B4600F0C0F803B077
-:1045600000BD30B50B46014600202022012409E0A1
-:1045700021FA02F59D4205D303FA02F5491B04FA1C
-:1045800002F52844151EA2F10102F1DC30BD202AFB
-:1045900004DB203A00FA02F1002070479140C2F19A
-:1045A000200320FA03F3194390407047202A04DBCC
-:1045B000203A21FA02F00021704721FA02F3D0409C
-:1045C000C2F1200291400843194670473A2800D2B0
-:1045D000303820F02002412A01D3A2F1370088426E
-:1045E00001D34FF0FF307047026811441378016027
-:1045F00018467047D1600449516104491162002195
-:104600001161114600F034BAE94500085D4A00081E
-:10461000426842B1016811F8013B23B1521EC0E962
-:104620000012184670470121C160881E7047426819
-:104630005AB1C368016843B983688B4205D0491EEB
-:10464000521CC0E90012002070474FF0FF30704745
-:104650002DE9F04791460F4680460446002614F89F
-:10466000015B2DB100F0F6F90068405DC007F6D19E
-:104670002B2D02D02D2D18D0641E4A4639462046D7
-:1046800000F08EFB27B13968A14201D1C7F8008044
-:1046900071054FF002040BD54042002803DD04F001
-:1046A000ABFA0460A007BDE8F08746F48066E4E753
-:1046B0000028F8DA04F0A0FA04606FF00040F2E796
-:1046C00010B5141E73F1000408DA401C41F100011A
-:1046D00092185B411A4301D120F0010010BD2DE971
-:1046E000F04D92469B4611B1B1FA81F202E0B0FA68
-:1046F00080F220329046FFF74AFF04460F4640EA18
-:104700000A0041EA0B0153465A46084313D01146AA
-:1047100053EA010019D0C8F140025046FFF746FFA6
-:1047200005460E46504659464246FFF730FF0843BD
-:1047300005D0012004E020463946BDE8F08D002078
-:10474000054346EAE0762C4337430A986305E40ABA
-:10475000A0EB08000022FD0A44EA47540A3002D5C3
-:1047600000200146E9E7010510196941DDE9084526
-:1047700000196941BDE8F04DA2E72DE9FE4F8046E2
-:1047800081EA0300C00F0C46009021F0004123F0A5
-:104790000045B8EB0200A94105D2404621469046AB
-:1047A0001C460B46024623F00040104347D0270D1D
-:1047B000C7F30A00C3F30A510290401A019040283F
-:1047C0006BDAC3F3130040F4801B0098924620B1CB
-:1047D0000023D2EB030A63EB0B0B01985946C0F19F
-:1047E00040025046FFF7D3FE06460D465046594656
-:1047F000019A00F01DF910EB08006141002487EADE
-:10480000115284EAE7731A4340D0009A62B3019AC6
-:10481000012A4FEA075215DC001B61EB02014FF041
-:10482000004202EA0752CDE90042001C41F5801126
-:1048300032462B46FFF753FF03B0BDE8F08F4046EA
-:104840002146F9E7001B61EB0201001C41F58013D2
-:1048500000185B412018A2F5001747EB030140EA5E
-:10486000D570B6196D4111E06D084FEA360645EA7C
-:10487000C0754FEA0752001B61EB0201001C41F5B5
-:10488000801149084FEA30000019514132462B4649
-:1048900003B0BDE8F04FFFF713BF009801224000BE
-:1048A0000023D0EB020263EBE073009821464FEA4D
-:1048B000E074B8EB000061EB0401E9E783F000432A
-:1048C0005BE781F0004158E72DE9FE4F81EA0304E0
-:1048D00004F0004421F0004100944FF0000B23F05D
-:1048E000004350EA01045ED052EA03045BD0C3F3F4
-:1048F0000A54C1F30A552C44A4F2F3340194A0FBEA
-:104900000254C1F3130141F48011C3F3130343F4C0
-:10491000801301FB024400FB034E840A970A44EA19
-:10492000815447EA8357A4FB076802958D0A05FB6B
-:1049300007854FEA932C04FB0C542705029D4FEA90
-:10494000065847EA1637B5EB08056EEB070C870EDD
-:10495000920E47EA811742EA8312A7FB0201B6EBE7
-:104960000B0164EB00042B0D43EA0C335E1844EB9F
-:104970001C50DA465146E7FB0201C5F313044FEA27
-:104980000B3343EA14534FEA0432019C43EA060313
-:10499000A4F10C040294009CCDE900B4FFF79FFE43
-:1049A00003B0BDE8F08F00200146F9E7C1F30A52D9
-:1049B000C1F3130140F2FF3341F480119A4202DA4D
-:1049C00000200146704740F233439A42A2F233423C
-:1049D00002DC5242FFF7EABDFFF7D9BD30B5041E35
-:1049E00071F1000404DB4FF00044404264EB01012C
-:1049F000141E73F1000405DB1C464FF000435242C5
-:104A000063EB0403994208BF904230BD064C074D4A
-:104A100006E0E06840F0010394E80700984710348E
-:104A2000AC42F6D3FFF7B4FB480D0108680D01084E
-:104A3000202A06DBCB17203A41FA02F043EAE07362
-:104A400006E041FA02F3D040C2F12002914008434F
-:104A50001946704700487047FC0C010810B5044621
-:104A6000FFF7F8FF0068005D00F0010010BD0000D6
-:104A70002DE9F34F8BB04FF0000801F10C000C460C
-:104A80004FF0010B46460DF1080A019062690121C1
-:104A900001989047051E2DD0252D2CD0216A8847DE
-:104AA000C0B16269012101989047216A88470028B6
-:104AB000F7D1411E62690198904700E0761CA16918
-:104AC0000B988847216A88470028F7D1E1690B983D
-:104AD0008847DBE7A1690B9888470746A84201D1C0
-:104AE000761CD3E7E1690B9888477F1C02D1B8F1A7
-:104AF000000F6FD047E1002762693D4639460198B3
-:104B000090472A2804D16269012101989047012524
-:104B1000DFF888926269012101989047A0F1300185
-:104B20000A290AD24F45E5DC07EB870100EB410774
-:104B3000303FDFD445F01005ECE7E90601D46FF013
-:104B400000476C280AD04C2814D0682815D06A2851
-:104B50000DD074281CD07A281AD01DE0626901217A
-:104B6000019890476C2802D045F0040514E045F008
-:104B700002050DE045F020050AE062690121019877
-:104B80009047682802D045F0080505E045F4006527
-:104B90006269012101989047C4E9015765283DD019
-:104BA00019DC58287AD00CDC452837D004DC2528BD
-:104BB00026D0412831D131E046282FD047282CD1AA
-:104BC0002CE05B2877D0612828D063287CD064282B
-:104BD00023D15AE0D1E06F2848D008DC66281DD0E8
-:104BE00067281BD0692821D06E2816D127E07028AD
-:104BF00045D0732868D0752847D078280DD14DE06E
-:104C0000A1690B988847054625283FF469AFE169FB
-:104C10000B9888476D1C3FF46AAFB4E023466A46A0
-:104C20006FF001000B99AFF300809FE045F040006A
-:104C30006060A80723464FF0000236D43EE0E80744
-:104C40007FF447AF2068011D21600068290501D568
-:104C500006701BE7290701D5068017E7A90703D5CA
-:104C6000F117C0E9006111E706600FE745F0400069
-:104C70006060A80723464FF0080216D41EE040F6F5
-:104C80000E0125EA0100606016E045F0400060601A
-:104C9000A80723464FF00A0207D40FE045F0400072
-:104CA0006060A80708D5234610226FF001000B9919
-:104CB000AFF300805AE007E0234610226FF00100B6
-:104CC0000B99FFF71FFB51E04FF000094F464B4691
-:104CD000632802D05B2807D041E02079C00601D4C8
-:104CE0000120A06001273AE0626901210198904704
-:104CF0005E2805D14FF00109626949460198904745
-:104D0000216939B900210A46534643F82120491C3C
-:104D10000829FADBB0B3216969B9C11700EBD16288
-:104D200053110AEB830122F01F02821A01200B6843
-:104D3000904003430B6062690121019890475D2810
-:104D4000E8D1B9F1000F09D00020514651F82020D8
-:104D5000D24341F82020401C0828F7DB02AB224652
-:104D600000976FF001000B99AFF3008000280CDA78
-:104D7000401C08D1BBF1000F05D04FF0FF300DB043
-:104D8000BDE8F08FFFE74046F9E7E90701D108F1F8
-:104D9000010806444FF0000B78E60000CCCCCC0CA8
-:104DA0002DE9F05F82460078002715468B460AF110
-:104DB0000104B946302801D09DB113E014F8010B6D
-:104DC0000127782803D0582801D045B10AE00DB159
-:104DD000102D07D10027102514F8010B02E008253B
-:104DE00000E00A250026B0460EE005FB080005FBA2
-:104DF00006F1012701EB10461FFA80F8B6F5803F57
-:104E000000D3B94614F8010B2946FFF7DFFB002851
-:104E1000EBDABBF1000F05D00FB1641E00E0544681
-:104E2000CBF80040B9F1000F06D003F0E5FE0221F7
-:104E30000160C81EBDE8F09F48EA0640FAE770B579
-:104E40008C1810F8015B15F0070301D110F8013B35
-:104E50002A1106D110F8012B03E010F8016B01F8BC
-:104E6000016B5B1EF9D12B0705D40023521E0DD414
-:104E700001F8013BFAE710F8013BCB1A921C03E062
-:104E800013F8015B01F8015B521EF9D5A142D8D39A
-:104E9000002070BD00BFFEE710B5024800F0A8F981
-:104EA00010BD00004C2A002010B5024800F0A0F907
-:104EB00010BD00000C28002010B5024800F098F941
-:104EC00010BD0000AC2A002010B5024800F090F997
-:104ED00010BD00006C28002010B5024800F088F9D1
-:104EE00010BD00008C29002010B5024800F080F9A8
-:104EF00010BD0000EC29002010B5024800F078F940
-:104F000010BD00000C2B002010B5024800F070F915
-:104F100010BD0000CC28002010B5024800F068F950
-:104F200010BD00006C2B002010B5024800F060F9A5
-:104F300010BD00002C2900200146087810381823E5
-:104F4000B0FBF3F20848805CC865032A05D90868FD
-:104F50006FF30900001D886503E008686FF309001E
-:104F60008865886D704700004E0C010801460020DE
-:104F70008A6A8B69CBB932B1012A0DD0022A03D0DB
-:104F8000032A10D10EE000BFCB6A03F08073B3F1A7
-:104F9000807F00D1012007E0CB6AB3F1C07F00D150
-:104FA000012001E000E000BF34E08B69B3F5005F51
-:104FB0001AD132B1012A07D0022A03D0032A11D113
-:104FC0000AE000BF01200EE0CB6A03F08073B3F16A
-:104FD000807F00D1012006E0CB6AB3F1C07F00D111
-:104FE000012000E000BF15E032B1012A05D0022AFD
-:104FF00004D0032A0CD103E000BF00BF012008E069
-:10500000CB6A03F08073B3F1807F00D1012000E010
-:1050100000BF00BF704730B50468246824F48024C2
-:1050200005682C60046863608468402C04D10468BF
-:10503000A2600468E16003E00468A1600468E260C3
-:1050400030BD704738B532480068807B401CC0B224
-:105050008DF800002E480068C07B401CC0B28DF85F
-:1050600001002B480068007C401CC0B28DF8020093
-:1050700027480068407C401CC0B28DF803006A4697
-:105080000C21002003F00CFD01220021084603F052
-:10509000C7FC01221146002003F0C2FC052000F0ED
-:1050A00087FA0321002002F063FD132806D01022A6
-:1050B0000121002003F0B4FC002038BD04220121AE
-:1050C000002003F0ADFC00BF00240221002002F00C
-:1050D0004FFD044624B1E2B20221002003F0A0FCFF
-:1050E000052000F065FA04F00800082801D100202E
-:1050F000E3E70621002002F03BFDFF2806D0102246
-:105100000121002003F08CFCFF20D6E7DCE7000043
-:10511000041F002072B600BFFEE770B50446A56DFF
-:1051200000F06CFB064694F83500022808D0802079
-:10513000606500BF002084F8340000BF012070BD0E
-:105140002068006820F01600216808602068406927
-:1051500020F0800021684861206C08B9A06C28B15B
-:105160002068006820F00800216808602068006856
-:1051700020F001002168086010E000F03FFB801B78
-:1051800005280BD920206065032084F8350000BF76
-:10519000002084F8340000BF0320D0E720680068B6
-:1051A00000F001000028E8D194F85C103F2088400E
-:1051B000A860012084F8350000BF002084F8340086
-:1051C00000BF00BFBBE7014691F83500022803D0BD
-:1051D0008020486501207047052081F83500086867
-:1051E000006820F001000A6810600020F3E700006A
-:1051F000F8B50446002000908C4800684FF4165122
-:10520000B0FBF1F7A56D2E6894F85C10082088407B
-:10521000304098B12068006800F0040070B1206848
-:10522000006820F004002168086094F85C100820F1
-:105230008840A860606D40F00100606594F85C10E3
-:1052400001208840304068B12068406900F080004B
-:1052500040B194F85C1001208840A860606D40F077
-:105260000200606594F85C1004208840304068B10A
-:105270002068006800F0020040B194F85C1004203F
-:105280008840A860606D40F00400606594F85C1090
-:1052900010208840304078B32068006800F0080093
-:1052A00050B394F85C1010208840A8602068006813
-:1052B00000F4802080B12068006800F4002028B944
-:1052C000206CC8B12046216C884715E0A06C98B1CD
-:1052D0002046A16C88470FE02068006800F48070C9
-:1052E00028B92068006820F0080021680860206C58
-:1052F00010B12046216C884794F85C10202088402B
-:105300003040002865D02068006800F010000028B8
-:105310005FD094F85C1020208840A86094F8350095
-:10532000052828D12068006820F016002168086050
-:105330002068406920F0800021684861206C08B92D
-:10534000A06C28B12068006820F00800216808607F
-:1053500094F85C103F208840A860012084F8350054
-:1053600000BF002084F8340000BF206D10B120463B
-:10537000216D8847F8BD2068006800F4802080B166
-:105380002068006800F4002028B9606C10B1204645
-:10539000616C88471DE0E06BD8B12046E16B88471F
-:1053A00017E02068006800F4807068B92068006821
-:1053B00020F0100021680860012084F8350000BF4B
-:1053C000002084F8340000BFE06B10B12046E16B90
-:1053D0008847606D38B3606D00F00100F0B10520C2
-:1053E00084F835002068006820F00100216808601A
-:1053F00000BF0098401C0090B84200D905E020682A
-:10540000006800F001000028F3D100BF012084F8FB
-:10541000350000BF002084F8340000BFE06C10B1FC
-:105420002046E16C884700BFA4E700000C00002084
-:105430002DE9F0410446002500F0E0F9074614B9D3
-:105440000120BDE8F081606A00B100BF022084F84D
-:10545000350000BF002084F8340000BF20680068D9
-:1054600020F00100216808600AE000F0C7F9C01BC5
-:10547000052805D920206065032084F83500E0E781
-:105480002068006800F001000028EED1206805685F
-:1054900021480540D4E901010843E1680843216936
-:1054A000084361690843A1690843E1690843216A27
-:1054B00008430543606A042803D1D4E90B0108437B
-:1054C0000543206805602068456925F00705606A86
-:1054D0000543606A04280DD1A06A0543E06A48B11B
-:1054E0002046FFF743FD28B140206065012084F885
-:1054F0003500A6E7206845612046FFF71DFD0646FA
-:1055000094F85C103F208840B06000206065012066
-:1055100084F83500002094E73F8010F02DE9F04733
-:1055200004460D4616461F464FF00008D4F8589022
-:1055300000BF94F83400012802D10220BDE8F087B2
-:10554000012084F8340000BF94F83500012825D1EB
-:10555000022084F83500002060653B46324629462B
-:105560002046FFF758FD94F85C103F208840C9F8AA
-:1055700008002068006840F0160021680860206C70
-:1055800028B12068006840F00800216808602068A1
-:10559000006840F001002168086006E000BF0020BC
-:1055A00084F8340000BF4FF002084046C6E7000010
-:1055B00070B5044600F022F906462546681C10B175
-:1055C00004480078054400BF00F018F9801BA84289
-:1055D000FAD370BD08000020F8B502460B4600253E
-:1055E000002400200021D6E0012606FA01F51E68FD
-:1055F00006EA0504AC4274D11E7906F00306012EBA
-:1056000004D01E7906F00306022E13D190684F00D5
-:105610000326BE40B0434F00DE68BE40304390607A
-:10562000506801268E40B0431E79C6F300168E40A6
-:10563000304350601E7906F00306032E09D0D0686F
-:105640004F000326BE40B0434F009E68BE4030432B
-:10565000D0601E7906F00306022E13D1CF0802F1A6
-:10566000200656F827004E07F70E0F26BE40B0431F
-:105670004F07FF0E1E69BE403043CF0802F12006DF
-:1056800046F8270010684F000326BE40B0431E793D
-:1056900006F003064F00BE40304310605E6806F41B
-:1056A0004036002E76D000BF002600963C4E36686D
-:1056B00046F480463A4F3E603E46366806F48046E1
-:1056C000009600BF00BF374E8F0856F827008E07A0
-:1056D000370F0F26BE40B043334EB24202D10026F0
-:1056E00024E057E0314EB24201D101261EE0304E97
-:1056F000B24201D1022619E02E4EB24201D1032658
-:1057000014E02D4EB24201D104260FE02B4EB242DE
-:1057100001D105260AE02A4EB24201D1062605E053
-:10572000284EB24201D1072600E008268F073F0F1E
-:10573000BE4030431B4E8F0846F82700224E30688B
-:10574000A0435E6806F4801606B120431E4E30600A
-:10575000361D3068A0435E6806F4001606B120438B
-:10576000194E361D3060184E361F3068A0435E68F3
-:1057700006F4003606B12043134E361F3060361F44
-:105780003068A0435E6806F4803606B120430E4EB2
-:10579000083E3060491C1029FFF426AFF8BD000018
-:1057A0004438024008380140000002400004024032
-:1057B00000080240000C02400010024000140240A9
-:1057C00000180240001C0240083C014002461369D8
-:1057D0000B400BB1012000E00020704710B542697A
-:1057E00021EA020302EA010443EA0443836110BD93
-:1057F0000AB1816101E00B048361704701480068D0
-:10580000704700000000002070B504460CB901206C
-:1058100070BD4CF6CC402168086045F255502168B7
-:105820000860D4E9001048602168A0688860FFF72C
-:10583000E5FF05460DE0FFF7E1FF401B41F60101E2
-:10584000884206D92068C06800F0030008B1032030
-:10585000DEE72068C06800F003000028EBD14AF6BC
-:10586000AA20216808600020D2E701464AF6AA2053
-:105870000A681060002070470348006803490978EF
-:10588000084401490860704700000020080000201B
-:1058900010B50D48006840F400700B4908600846D8
-:1058A000006840F4806008600846006840F480703A
-:1058B0000860032000F0AAF8032000F007F800F0C9
-:1058C0002BF8002010BD0000003C024070B50446DB
-:1058D0000E4800784FF47A71B1FBF0F00C4909687A
-:1058E000B1FBF0F5284600F0DBFF08B1012070BDE8
-:1058F000102C07D200222146501E00F049F805481E
-:10590000046001E00120F2E70020F0E70800002039
-:105910000C0000200400002008B500BF002000900B
-:105920001048006840F480400E490860084600684E
-:1059300000F48040009000BF00BF00BF0020009036
-:10594000081F006840F08050091F08600846006882
-:1059500000F08050009000BF00BF052000F056F816
-:1059600008BD0000443802400146084600280DDB0F
-:1059700000BF00BF00F01F0301229A4043099B00B3
-:1059800003F1E023C3F8002100BF00BF00BF704750
-:105990002DE9F05F80460D461646002703F010F90A
-:1059A000074639462A46334601F00700C0F1070A88
-:1059B000BAF1040F02D94FF0040A01E0C0F1070A5E
-:1059C000D14600F1040ABAF1070F02D24FF0000AE3
-:1059D00001E0A0F1030AD4464FF0010A0AFA09FADD
-:1059E000AAF1010A0AEA020A0AFA0CFA4FF0010BBC
-:1059F0000BFA0CFBABF1010B0BEA030B4AEA0B04AD
-:105A00002146404603F0E4F8BDE8F09F00BF00F0F7
-:105A10000702064B19684FF6FF031940044B0B436E
-:105A200043EA0221014B196000BF70470CED00E012
-:105A30000000FA0570B504460D460CB9012070BD92
-:105A40005848006800F00700A84209D255490D7077
-:105A50000846006800F00700A84201D00120EEE7E8
-:105A6000207800F0020002281DD1207800F0040008
-:105A7000042805D14C48006840F4E0504A490860C9
-:105A8000207800F00800082805D14748006840F455
-:105A90006040454908604448006820F0F000A16873
-:105AA000084341490860207800F00100A8B360680D
-:105AB000012807D13C4808380068C0F34040B8B915
-:105AC0000120BCE76068022802D06068032807D183
-:105AD000354808380068C0F3406048B90120AEE797
-:105AE000314808380068C0F3400008B90120A6E733
-:105AF0002D48006820F00300616808432A490860C7
-:105B0000FFF77CFE064609E0FFF778FE801B41F2B6
-:105B10008831884202D9032091E707E022480068D3
-:105B200000F00C006168B0EB810FEDD11D480068FA
-:105B300000F00700A84209D91A490D70084600680C
-:105B400000F00700A84201D0012078E7207800F09B
-:105B50000400042807D11448006820F4E050E168EC
-:105B6000084311490860207800F00800082808D18F
-:105B70000D48006820F46040216940EAC1000A49EC
-:105B8000086000F03FF808490968C1F30311074AAB
-:105B9000515CC8400649086006480068FFF796FE59
-:105BA00000204CE7003C024008380240560C010837
-:105BB0000C0000200400002001480068704700002D
-:105BC0000C00002000B5FFF7F7FF04490968C1F396
-:105BD0008221034A515CC84000BD000008380240E1
-:105BE000660C010800B5FFF7E7FF04490968C1F337
-:105BF0004231034A515CC84000BD000008380240F1
-:105C0000660C01082DE9F047002400250026A14676
-:105C10002548006800F00C0020B1042805D00828B1
-:105C20003AD105E0DFF8849039E0DFF8849036E07F
-:105C30001D48001F006800F03F041B48001F00685B
-:105C400000F4800078B11A481749091F0968C1F3A8
-:105C50008811A0FB01700146224600233846FEF75A
-:105C6000B1FA05460EE011480F49091F0968C1F352
-:105C70008811A0FB01700146224600233846FEF73A
-:105C8000A1FA05460848001F0068C0F30140401C07
-:105C90004600B5FBF6F902E0DFF8109000BF00BF48
-:105CA0004846BDE8F0870000083802400024F400B0
-:105CB00000127A00F8B504460CB90120F8BD20782E
-:105CC00000F00100002874D0F948006800F00C00D2
-:105CD00004280DD0F648006800F00C00082813D105
-:105CE000F348001F006800F48000B0F5800F0BD16E
-:105CF000EF4808380068C0F34040002859D0606879
-:105D0000002856D10120D9E700BF6068B0F5803F78
-:105D100008D1E7480838006840F48030E449083981
-:105D200008601EE06068B0F5A02F0DD1E04808388B
-:105D3000006840F48020DE490839086008460068A1
-:105D400040F4803008600CE0D9480838006820F43E
-:105D50008030D749083908600846006820F4802060
-:105D6000086000BF606890B1FFF748FD054606E097
-:105D7000FFF744FD401B642801D903209EE7CC486F
-:105D800008380068C0F340400028F1D011E0FFF768
-:105D900035FD054606E0FFF731FD401B642801D9BB
-:105DA00003208BE7C24808380068C0F34040002851
-:105DB000F1D1207800F0020002285FD1BC480068D1
-:105DC00000F00C0058B1BA48006800F00C00082838
-:105DD0001CD1B748001F006800F48000B0B9B44877
-:105DE00008380068C0F3400020B1E068012801D005
-:105DF000012063E7AE480838006820F0F800216908
-:105E000040EAC100AA490839086037E0E06800B3F9
-:105E10000120A8490860FFF7F1FC054606E0FFF7FE
-:105E2000EDFC401B022801D9032047E7A0480838B1
-:105E30000068C0F340000028F1D09D480838006891
-:105E400020F0F800216940EAC1009949083908604A
-:105E500014E0002097490860FFF7D0FC054606E0F3
-:105E6000FFF7CCFC401B022801D9032026E790480D
-:105E700008380068C0F340000028F1D1207800F015
-:105E8000080008282CD16069A8B101208A4908605F
-:105E9000FFF7B4FC054606E0FFF7B0FC401B022804
-:105EA00001D903200AE782486C300068C0F3400043
-:105EB0000028F1D014E000207F490860FFF79EFC25
-:105EC000054606E0FFF79AFC401B022801D9032093
-:105ED000F4E677486C300068C0F340000028F1D148
-:105EE000207800F00400042870D100277048383072
-:105EF000006800F0805090B900BF002000906C480E
-:105F00003830006840F080506949383108600846F0
-:105F1000006800F08050009000BF00BF0127674874
-:105F2000006800F48070B0B96448006840F4807084
-:105F300062490860FFF762FC054606E0FFF75EFC79
-:105F4000401B022801D90320B8E65C48006800F431
-:105F500080700028F2D000BFA068012808D1544802
-:105F60006830006840F001005149683108601DE068
-:105F7000A06805280DD14E486830006840F0040044
-:105F80004B49683108600846006840F0010008602D
-:105F90000CE047486830006820F00100444968314F
-:105FA00008600846006820F00400086000BFA06890
-:105FB000A8B1FFF723FC054609E0FFF71FFC401BD3
-:105FC00041F28831884202D9032077E626E038483A
-:105FD00068300068C0F340000028EED013E0FFF7FF
-:105FE0000DFC054608E0FFF709FC401B41F2883133
-:105FF000884201D9032061E62D4868300068C0F36B
-:1060000040000028EFD1012F07D12948383000681F
-:1060100020F0805026493831086000BFA069002870
-:1060200045D02348006800F00C0008285DD0A06926
-:10603000022845D100201F490866FFF7DFFB05460F
-:1060400006E0FFF7DBFB401B022801D9032035E601
-:10605000174808380068C0F340600028F1D1D4E93F
-:1060600007010843616A40EA81110122A06AC2EB7C
-:10607000500041EA00412C20005D41EA00600C49DB
-:10608000091F086001200B490866FFF7B7FB0546AA
-:1060900006E0FFF7B3FB401B022801D903200DE601
-:1060A000034808380068C0F340600028F1D049E098
-:1060B0000838024000004742800E4742007000400E
-:1060C000002021490866FFF799FB054606E0FFF727
-:1060D00095FB401B022801D90320EFE51B4800680F
-:1060E000C0F340600028F2D12CE0A069012800D163
-:1060F000E4E51648001D0668A069012820D006F4D2
-:106100008001E06981421BD106F03F01206A814293
-:1061100016D147F6C0703040616AB0EB811F0FD1D5
-:1061200006F440310122A06AC2EB5000B1EB004FEF
-:1061300006D106F070612C20005DB1EB006F01D03C
-:106140000120BBE50020B9E50000474200380240CD
-:1061500010B504460CB9012010BD606A38B96068FA
-:10616000B0F5827F00D105E00021E16102E000216D
-:10617000216161610021A16294F8510028B90020D9
-:1061800084F85000204600F047F8022084F85100BF
-:106190002068006820F0400021680860A08800F4B2
-:1061A0008270218901F404410843A18901F400614E
-:1061B0000843217C01F002010843217D01F0010127
-:1061C0000843218B01F400710843217F01F038015D
-:1061D00008432021095D01F080010843218D01F46D
-:1061E00000510843216808600421A06901EA1040B9
-:1061F00094F8241001F010010843216848602068D9
-:10620000C06920F400602168C86100206065012039
-:1062100084F8510000209FE710B586B00446142191
-:1062200001A8FEF719F837492068884230D100BF2D
-:10623000002000903448006840F4805032490860E3
-:106240000846006800F48050009000BF00BF00BF07
-:10625000002000902C481438006840F001002A49C2
-:10626000143908600846006800F00100009000BF83
-:1062700000BFE02001900220029000200390032044
-:1062800004900520059001A92048FFF7A5F936E004
-:106290001F492068884232D100BF002000901A4870
-:1062A000001F006840F480401749091F0860084635
-:1062B000006800F48040009000BF00BF00BF0020D5
-:1062C000009011481438006840F002000E4914395B
-:1062D00008600846006800F00200009000BF00BFA0
-:1062E0004FF46040019002200290002003900320B0
-:1062F00004900520059001A90648FFF76DF906B046
-:1063000010BD00000030014044380240000002404F
-:1063100000380040000402402DE9F8430446884656
-:1063200016461D4694F85100012802D00220BDE80F
-:10633000F883B8F1000F00D00EB90120F7E76068CC
-:10634000B0F5827F0CD1A06850B9042084F85100C8
-:106350003346424641462046009500F07DF9E6E787
-:10636000FFF74CFA074600BF94F85000012801D10E
-:106370000220DCE7012084F8500000BF042084F8EC
-:10638000510000206065C4F83880A687E687206346
-:10639000A086E08620646064A068B0F5004F0BD151
-:1063A0002068006820F040002168086020680068CC
-:1063B00020F48040216808602068006800F04000F8
-:1063C000402805D02068006840F04000216808603F
-:1063D000E06830BB21E02068806800F0010050B127
-:1063E0002068007BA16B0870A06B401CA063E08F4D
-:1063F000401EE08711E0FFF701FAC01BA84201D35D
-:10640000681C00B94DB9012084F8510000BF00207C
-:1064100084F8500000BF032089E7E08F0028DAD11C
-:1064200025E021E02068806800F0010050B120687C
-:10643000C068A16B0880A06B801CA063E08F401E29
-:10644000E08711E0FFF7DAF9C01BA84201D3681C0E
-:1064500000B94DB9012084F8510000BF002084F834
-:10646000500000BF032062E7E08F0028DAD13A46EF
-:106470002946204601F0EFFB08B12020606501208D
-:1064800084F8510000BF002084F8500000BF606D08
-:1064900008B101204BE7002049E72DE9F843044605
-:1064A0000F4616461D46FFF7A9F98046B14694F8F7
-:1064B0005100012802D00220BDE8F88307B10EB9CF
-:1064C0000120F9E700BF94F85000012801D1022013
-:1064D000F2E7012084F8500000BF032084F8510047
-:1064E000002060652763A686E686A063A087E08714
-:1064F00060642064A068B0F5004F0BD1206800688C
-:1065000020F04000216808602068006840F4804066
-:10651000216808602068006800F04000402805D02D
-:106520002068006840F0400021680860E068B0F52D
-:10653000006F37D1606810B1B9F1010F09D1206B3C
-:1065400000882168C860206B801C2063E08E401E9C
-:10655000E08623E02068806800F0020002280AD16B
-:10656000206B00882168C860206B801C2063E08E4F
-:10657000401EE08612E0FFF741F9A0EB0800A842B8
-:1065800001D3681C00B94DB9012084F8510000BF47
-:10659000002084F8500000BF03208DE7E08E002823
-:1065A000D8D136E0606810B1B9F1010F09D1206B84
-:1065B000007821680873206B401C2063E08E401E29
-:1065C000E08623E02068806800F0020002280AD1FB
-:1065D000206B007821680873206B401C2063E08EDC
-:1065E000401EE08612E0FFF709F9A0EB0800A84280
-:1065F00001D3681C00B94DB9012084F8510000BFD7
-:10660000002084F8500000BF032055E7E08E0028EA
-:10661000D8D142462946204601F068FB08B1202027
-:106620006065A06850B900BF002000902068C06875
-:10663000009020688068009000BF00BF012084F8AF
-:10664000510000BF002084F8500000BF606D08B109
-:10665000012031E700202FE72DE9FE4F04460F46C9
-:1066600090461D460C9E01200190FFF7C7F8814619
-:1066700094F851B060680290AA46BBF1010F0BD0AC
-:106680000298B0F5827F04D1A06810B9BBF1040F65
-:1066900002D00220BDE8FE8F1FB1B8F1000F00D07C
-:1066A0000DB90120F6E700BF94F85000012801D190
-:1066B0000220EFE7012084F8500000BF94F8510059
-:1066C000042802D0052084F8510000206065C4F839
-:1066D0003880E587A5872763E586A5862064606402
-:1066E0002068006800F04000402805D0206800685D
-:1066F00040F0400021680860E068B0F5006F52D1BA
-:10670000606810B1BAF1010F09D1206B00882168CF
-:10671000C860206B801C2063E08E401EE0863BE05A
-:106720002068806800F00200022810D1E08E70B16D
-:10673000019801280BD1206B00882168C860206B6C
-:10674000801C2063E08E401EE086002001902068BF
-:10675000806800F0010068B1E08F58B12068C0681F
-:10676000A16B0880A06B801CA063E08F401EE087B7
-:1067700001200190FFF742F8A0EB0900B0420BD3D3
-:10678000701C48B1012084F8510000BF002084F83B
-:10679000500000BF03207DE7E08E0028C0D1E08FCD
-:1067A0000028BDD152E0606810B1BAF1010F09D1E3
-:1067B000206B007821680873206B401C2063E08EFA
-:1067C000401EE0863CE02068806800F0020002285D
-:1067D00010D1E08E70B1019801280BD1206B0078A8
-:1067E00021680873206B401C2063E08E401EE08609
-:1067F000002001902068806800F0010068B1E08FFF
-:1068000058B12068C068A16B0870A06B401CA063E1
-:10681000E08F401EE08701200190FEF7EFFFA0EB24
-:106820000900B04201D3701C00B94EB9012084F8B0
-:10683000510000BF002084F8500000BF032029E76A
-:10684000E08E0028BFD1E08F0028BCD14A463146F7
-:10685000204601F04BFA40B12020606500BF0020C7
-:1068600084F8500000BF012014E7A06850B900BFB1
-:10687000002000902068C068009020688068009028
-:1068800000BF00BF012084F8510000BF002084F841
-:10689000500000BF606D08B10120FBE60020F9E662
-:1068A00070B504462546681EB0F1807F01D30120F3
-:1068B0000FE0681E4FF0E02148610F214FF0FF30DC
-:1068C00002F086F900204FF0E0218861072008617E
-:1068D000002070BDF8B504460D46164694F84200F7
-:1068E00020282DD105B10EB90120F8BD012020636B
-:1068F0000020606332462946204601F043FE0746E9
-:10690000206B012819D100BF00200090206800688A
-:10691000009020684068009000BF00BF00BF00BF2B
-:1069200021680C3151E8001F41F0100021680C3142
-:1069300041E80002002AF3D100E001273846D4E7FD
-:106940000220D2E770B504460D46144920688842FB
-:1069500003D1134804F0A7F91EE0124920688842C9
-:1069600003D1114804F09FF916E0104920688842CD
-:1069700003D10F4804F097F90EE00E4920688842D1
-:1069800003D10D4804F08FF906E00C4920688842D5
-:1069900002D10B4804F087F970BD000000100140DF
-:1069A000F00C002000440040440D0020004800404E
-:1069B000980D0020004C0040EC0D00200014014018
-:1069C000400E002070B50446002520684069C0F3E1
-:1069D000C01594F84100212817D1B5B100BF00BF00
-:1069E0002168143151E8001F21F080002168143122
-:1069F00041E80002002AF3D100BFA06B10B1A06BE8
-:106A0000FEF78BFB204601F016FC20684069C0F3BE
-:106A1000801594F84200222817D1B5B100BF00BFFD
-:106A20002168143151E8001F21F040002168143121
-:106A300041E80002002AF3D100BFE06B10B1E06B27
-:106A4000FEF76BFB204601F0B0FB002070BD00009C
-:106A500038B50446002531492068884201D1304DBF
-:106A600016E030492068884201D12F4D10E02F49AF
-:106A70002068884201D12E4D0AE02E4920688842C4
-:106A800001D12D4D04E02D492068884200D12C4DC4
-:106A9000606C00F0020050B100BF00200090206840
-:106AA0000068009020684068009000BF00BF606CE4
-:106AB00000F0040050B100BF002000902068006882
-:106AC000009020684068009000BF00BF2068006808
-:106AD000C0F3C00050B100BF0020009020680068E3
-:106AE000009020684068009000BF00BF20680068E8
-:106AF000C0F3400050B100BF002000902068006843
-:106B0000009020684068009000BF00BF25B1EA8B6C
-:106B1000A9696868FFF7DEFE38BD0000001001407B
-:106B2000F00C002000440040440D002000480040CC
-:106B3000980D0020004C0040EC0D00200014014096
-:106B4000400E00202DE9F84F0446206805682068B3
-:106B5000C668206847694FF00009CA4605F00F096A
-:106B6000B9F1000F0AD105F0200038B106F020007D
-:106B700020B1204601F072FBBDE8F88FB9F1000F9B
-:106B80007CD007F0010018B906F49070002875D089
-:106B900005F0010030B106F4807018B1606C40F06F
-:106BA0000100606405F0040030B107F0010018B185
-:106BB000606C40F00200606405F0020030B107F044
-:106BC000010018B1606C40F00400606405F008003A
-:106BD00048B106F0200010B907F0010018B1606C50
-:106BE00040F008006064606C002846D005F020008A
-:106BF00028B106F0200010B1204601F02FFB2068DC
-:106C00004069C0F3801A606C00F0080010B9BAF156
-:106C1000000F2DD0204601F0C8FA2068406900F02E
-:106C20004000402820D100BF00BF2168143151E846
-:106C3000001F21F040002168143141E80002002AC1
-:106C4000F3D100BFE06B50B17F48E16B0865E06BAA
-:106C5000FEF7B9FA88B1E06B016D88470DE0204678
-:106C6000FFF7F6FE09E009E02046FFF7F1FE04E039
-:106C70002046FFF7EDFE002060647DE7206B0128D1
-:106C800078D105F01000002874D006F0100000281C
-:106C9000FAD000BF002000902068006800902068B3
-:106CA0004068009000BF00BF2068406900F04000CD
-:106CB000402870D1E06B006840681FFA80F8B8F196
-:106CC000000F58D0A08D404555DDA4F82E80E06B14
-:106CD000C069B0F5807F43D000BF00BF21680C3190
-:106CE00051E8001F21F4807021680C3141E8000256
-:106CF000002AF3D100BF00BF00BF2168143151E862
-:106D0000001F21F001002168143141E80002002A2F
-:106D1000F3D100BF00BF00BF2168143151E8001F4C
-:106D200021F040002168143141E80002002AF3D12B
-:106D300000BF202084F842000020206300BF00BF75
-:106D400021680C3151E8001F21F0100021680C313E
-:106D500041E80002002AF3D100BFE06BFEF7DDF945
-:106D600002206063A08DE28D801A81B22046FFF779
-:106D7000E9FD0EE052E0A08D40450AD1E06BC0690C
-:106D8000B0F5807F05D102206063A18D2046FFF71A
-:106D9000D9FDF1E6FFE7A08DE18D401A1FFA80F8DA
-:106DA000E08DD0B3B8F1000F37D000BF00BF21682D
-:106DB0000C3151E8001F21F4907021680C3141E83A
-:106DC0000002002AF3D100BF00BF00BF21681431C8
-:106DD00051E8001F21F001002168143141E8000250
-:106DE000002AF3D100BF202084F842000020206355
-:106DF00000BF00BF21680C3151E8001F21F01000D6
-:106E000021680C3141E80002002AF3D100BF0220C2
-:106E1000606341462046FFF795FDADE605F0800032
-:106E200030B106F0800018B1204601F017FCA3E64F
-:106E300005F0400030B106F0400018B1204601F0E6
-:106E4000EAF999E600BF97E67180000810B504469C
-:106E50000CB9012010BDA06900B100E000BF94F89A
-:106E6000410028B9002084F84000204600F02AF8AC
-:106E7000242084F841002068C06820F40050216874
-:106E8000C860204601F068FA2068006920F490404C
-:106E9000216808612068406920F02A002168486163
-:106EA0002068C06840F400502168C8600020606419
-:106EB000202084F8410084F842000020606300BF75
-:106EC000C8E7000010B586B00446142101A8FDF7FC
-:106ED000C3F9FE49206888427AD100BF00200090A3
-:106EE000FB48006840F40020F94908600846006843
-:106EF00000F40020009000BF00BF00BF0020009001
-:106F0000F3481038006840F00100F149103908607A
-:106F10000846006800F00100009000BF00BF032099
-:106F2000019002200290002003900320049008208A
-:106F3000059001A9E748FEF74FFBE748E7490860DD
-:106F4000400548600021E5488160C1604FF48061E0
-:106F50000161002141618161C1614FF440310162F1
-:106F600000214162FEF764FA08B1FEF7D3F800BFD2
-:106F7000DA48E063846300BFD7483030D8490860FE
-:106F80004FF0006048604021D54881600021C16019
-:106F90004FF480610161002141618161C1614FF461
-:106FA0000031016200214162FEF742FA08B1FEF7AA
-:106FB000B1F800BFCA48A063846300BF002201216A
-:106FC0003420FEF7E5FC3420FEF7CEFC1AE2FFE7A2
-:106FD000C449206888427DD100BF00200090BC4891
-:106FE000001D006840F01000B949091D08600846FE
-:106FF000006800F01000009000BF00BF00BF00203C
-:107000000090B3481038006840F00200B0491039D1
-:1070100008600846006800F00200009000BF00BF52
-:10702000C0200190022002900020039003200490D1
-:107030000720059001A9AC48FEF7CEFAAB48AC4951
-:1070400008604FF0006048600021A9488160C1607D
-:107050004FF480610161002141618161C1614FF4A0
-:107060008031016200214162FEF7E2F908B1FEF7CA
-:1070700051F800BF9E48E063846300BF9B487830AE
-:107080009C4908604FF00060486040219948816049
-:107090000021C1604FF48061016100214161816183
-:1070A000C1614FF48031016200214162FEF7C0F9F5
-:1070B00008B1FEF72FF800BF8E48A063846300BFBD
-:1070C000002201212520FEF763FC2520FEF74CFC61
-:1070D00098E1FFE78849206888427CD100BF002002
-:1070E00000907B48006840F4003079490860084609
-:1070F000006800F40030009000BF00BF00BF002017
-:10710000009073481038006840F001007049103951
-:1071100008600846006800F00100009000BF00BF52
-:107120000C20019002200290002003900320049084
-:107130000720059001A96748FEF74EFA66484830D7
-:107140006E4908604FF00060486000216B48816024
-:10715000C1604FF480610161002141618161C161C1
-:107160004FF44031016200214162FEF761F908B13C
-:10717000FDF7D0FF00BF6148E063846300BF56485D
-:1071800060305F4908604FF00060486040215C4813
-:1071900081600021C1604FF4806101610021416183
-:1071A0008161C1614FF40031016200214162FEF74B
-:1071B0003FF908B1FDF7AEFF00BF5148A0638463FB
-:1071C00000BF002201212620FEF7E2FB2620FEF769
-:1071D000CBFB17E1FFE74B492068884274D100BF21
-:1071E000002000903A48006840F480203849086048
-:1071F0000846006800F48020009000BF00BF00BF78
-:107200000020009032481038006840F002003049F9
-:10721000103908600846006800F00200009000BFC6
-:1072200000BF4FF4406001900220029000200390C4
-:10723000032004900720059001A92B48FEF7CCF904
-:1072400025481838304908604FF000604860002138
-:107250002D488160C1604FF480610161002141616E
-:107260008161C16101624162FEF7E2F808B1FDF798
-:1072700051FF00BF2448E063846300BF1648183004
-:10728000224908604FF00060486040211F4881603B
-:107290000021C1604FF48061016100214161816181
-:1072A000C16101624162FEF7C3F808B1FDF732FF28
-:1072B00000BF1648A063846300BF00221146272048
-:1072C000FEF766FB272023E025E00000004C00408D
-:1072D0004038024000000240406002400C2800207C
-:1072E0006C2800200010014000040240406402406D
-:1072F000CC2800202C290020004400408C290020AC
-:10730000EC290020004800404C2A0020AC2A002034
-:10731000FEF72AFB76E03C492068884272D100BF24
-:10732000002000903948006840F02000374908608C
-:107330000846006800F02000009000BF00BF00BFBA
-:107340000020009031481438006840F004002F49B4
-:10735000143908600846006800F00400009000BF7F
-:1073600000BFC02001900220029000200390032063
-:1073700004900820059001A92548FEF72DF925481D
-:107380002549086080054860002123488160C1606C
-:107390004FF480610161002141618161C16101623D
-:1073A0004162FEF745F808B1FDF7B4FE00BF1A4888
-:1073B000E063846300BF17487830184908604FF0D5
-:1073C000206048604021154881600021C1604FF471
-:1073D00080610161002141618161C161016241629D
-:1073E000FEF726F808B1FDF795FE00BF0B48A06335
-:1073F000846300BF002211464720FEF7C9FA4720E8
-:10740000FEF7B2FA06B010BD001401404438024045
-:1074100000080240286402400C2B00206C2B002046
-:10742000704770472DE9F84F04460E4617469946B7
-:107430004FF0000A94F84100202850D106B117B946
-:107440000120BDE8F88F00206064212084F841000D
-:10745000FEF7D4F98246A784E784A068B0F5805F80
-:1074600004D1206910B90025B04602E035464FF03E
-:1074700000081EE05346002280212046CDF80090EF
-:1074800001F01CF920B1202084F841000320D8E746
-:1074900045B9B8F80000C0F308002168486008F159
-:1074A000020803E02878216848606D1CE08C401ECB
-:1074B000E084E08C0028DDD15346002240212046A4
-:1074C000CDF8009001F0FAF820B1202084F84100B6
-:1074D0000320B6E7202084F841000020B1E7022015
-:1074E000AFE7000010B5044613492068884203D175
-:1074F000124803F09BFC1EE011492068884203D12A
-:10750000104803F093FC16E00F492068884203D12D
-:107510000E4803F08BFC0EE00D492068884203D131
-:107520000C4803F083FC06E00B492068884202D136
-:107530000A4803F07BFC10BD00100140F00C002055
-:1075400000440040440D002000480040980D0020F9
-:10755000004C0040EC0D002000140140400E0020C3
-:1075600000BFFEE701460A2291FBF2F302FB131271
-:107570000A2391FBF3F302EB0312D0B27047000031
-:1075800008B500BF002000903648006840F40010A5
-:10759000344908600846006800F40010009000BFFD
-:1075A00000BF00BF002000900846006840F4800043
-:1075B00008600846006800F48000009000BF00BF2B
-:1075C000002211460C20FEF7E3F90C20FEF7CCF95F
-:1075D000002211460D20FEF7DBF90D20FEF7C4F95D
-:1075E000002211460E20FEF7D3F90E20FEF7BCF95B
-:1075F000002211460F20FEF7CBF90F20FEF7B4F959
-:10760000002211461020FEF7C3F91020FEF7ACF956
-:10761000002211461120FEF7BBF91120FEF7A4F954
-:10762000002211463920FEF7B3F93920FEF79CF904
-:10763000002211463A20FEF7ABF93A20FEF794F902
-:10764000002211464520FEF7A3F94520FEF78CF9EC
-:10765000002211464620FEF79BF94620FEF784F9EA
-:1076600008BD00003038024000B587B0142102A8E0
-:10767000FCF7F2FD00BF002001906348006840F075
-:107680008000614908600846006800F080000190B1
-:1076900000BF00BF00BF002001900846006840F016
-:1076A000010008600846006800F00100019000BF7A
-:1076B00000BF00BF002001900846006840F00400B1
-:1076C00008600846006800F00400019000BF00BF99
-:1076D00000BF002001900846006840F002000860EA
-:1076E0000846006800F00200019000BF00BF00BF24
-:1076F000002001900846006840F01000086008462D
-:10770000006800F01000019000BF00BF00BF002023
-:1077100001900846006840F00800086008460068CC
-:1077200000F00800019000BF00BF00223021374860
-:10773000FEF75EF8002241F237113548FEF758F89F
-:1077400000224FF478613348FEF752F800224FF4DC
-:1077500080513148FEF74CF8002238212F48FEF7BF
-:1077600047F83020029001200390002004900590FB
-:1077700002A92648FDF730FF41F2171002900120C0
-:10778000039000200490059002A92148FDF724FFF2
-:107790004FF418600290012003900020049005909F
-:1077A00002A91C48FDF718FF4FF4C06002900120A9
-:1077B000039004900020059002A91648FDF70CFFE5
-:1077C0004FF4805002900120039000200490059017
-:1077D00002A91148FDF700FF382002900120039014
-:1077E00000200490059002A90C48FDF7F5FE20202A
-:1077F00002900120039004900020059002A9044803
-:10780000FDF7EAFE07B000BD303802400008024034
-:10781000000402400010024000000240000C024040
-:1078200010B50748074908600520486040F2EE217E
-:1078300004488160FDF7E8FF08B1FDF76BFC10BD5F
-:1078400000300040E825002010B50E480E490860C1
-:107850004FF48270486000210B488160C160016173
-:1078600041614FF4007181610021C1610162416297
-:1078700081620A21C162FEF76BFC08B1FDF74AFC88
-:1078800010BD000000300140F425002010B50E4866
-:107890000E4908604FF48270486000210B488160F7
-:1078A000C160016141614FF4007181610021C161DA
-:1078B0000162416281620A21C162FEF749FC08B19E
-:1078C000FDF728FC10BD0000003800404C260020C9
-:1078D00010B50B480B4908604FF4E13048600021B7
-:1078E00008488160C16001610C2141610021816112
-:1078F000C161FFF7ABFA08B1FDF70CFC10BD000049
-:10790000004C0040A426002010B50B480B4908602D
-:107910004FF4E1304860002108488160C160016196
-:107920000C21416100218161C161FFF78FFA08B12B
-:10793000FDF7F0FB10BD000000100140EC26002018
-:1079400010B50B480B4908604FF4E1304860002146
-:1079500008488160C16001610C21416100218161A1
-:10796000C161FFF773FA08B1FDF7D4FB10BD000049
-:10797000004400403427002010B50B480B49086034
-:107980004FF4E1304860002108488160C160016126
-:107990000C21416100218161C161FFF757FA08B1F3
-:1079A000FDF7B8FB10BD0000004800407C27002018
-:1079B00010B50B480B4908604FF4E13048600021D6
-:1079C00008488160C16001610C2141610021816131
-:1079D000C161FFF73BFA08B1FDF79CFB10BD000049
-:1079E00000140140C427002000BFFEE700BFFEE7EF
-:1079F000704700002DE9F04780460D46262140469D
-:107A000000F0E0F8064616B90020BDE8F08740F225
-:107A1000B450864200DD06462821404600F0D2F8E8
-:107A20000746B946C7F30A0700224FF400613C48F5
-:107A3000FDF7DEFE384600F005F9182101EB48118C
-:107A4000C8B200F0F5F837480068C06800F0FF0AD7
-:107A5000B819B0F5006F11DA00240CE0002000F036
-:107A6000E7F830480068C06800F0FF0A85F800A019
-:107A70006D1C601C84B2B442F0DB3CE0C7F50060D2
-:107A800087B200240CE0002000F0D2F825480068FE
-:107A9000C06800F0FF0A85F800A06D1C601C84B26D
-:107AA000BC42F0DB0122D1021D48FDF7A1FE0022FD
-:107AB0004FF400611A48FDF79BFE002000F0C2F869
-:107AC000182101EB4811C8B200F0B2F8154800685F
-:107AD000C06800F0FF0A0CE0002000F0A9F811488F
-:107AE0000068C06800F0FF0A85F800A06D1C601CEB
-:107AF00084B2B442F0DB0122D1020948FDF778FEDE
-:107B000009EB06001FFA80F94A462821404600F09A
-:107B1000A7FF40220121404600F082FF304674E773
-:107B200000100240F425002070B5044600224FF4F6
-:107B300000610D48FDF75CFE204600F083F801204F
-:107B400000F076F809480068C068C5B2002000F06F
-:107B50006FF806480068C068C5B20122D102024829
-:107B6000FDF746FE284670BD00100240F4250020B7
-:107B700070B504460D4600224FF400610F48FDF732
-:107B800037FE284600F05EF8082101EB4411C9B227
-:107B900041F0010000F04CF809480068C068C6B226
-:107BA000002000F045F806480068C068C6B201220F
-:107BB000D1020248FDF71CFE304670BD00100240A5
-:107BC000F425002070B505460E4600224FF40061F2
-:107BD0001548FDF70DFE304600F034F8082101EBA2
-:107BE0004511C9B241F0020000F022F80F480068C8
-:107BF000C06884B2002000F01BF80C480068C06820
-:107C000084B2002000F014F84FF6FF7000EA04245C
-:107C100006480068C068204484B20122D1020248AC
-:107C2000FDF7E6FD204670BD00100240F42500205F
-:107C300001B5FF23012269460148FEF72EFC08BD6D
-:107C4000F425002010B504462012FFF7F1FFE0B242
-:107C5000FFF7EEFF10BDF8B504460E461546606806
-:107C6000B0F5827F0DD1A068B0F5004F03D0A068B9
-:107C7000B0F5806F05D12068006820F040002168D1
-:107C800008606068B0F5827F1FD1A068B0F5806F92
-:107C90000DD03346002280212046009500F06AF87E
-:107CA00008B3606D40F0200060650320F8BD3346E6
-:107CB000002201212046009500F05CF898B1606D2B
-:107CC00040F0200060650320F0E7334600220121E8
-:107CD0002046009500F04EF828B1606D40F020007D
-:107CE00060650320E2E70020E0E700007CB5044681
-:107CF0000E4615463346012202212046009500F02B
-:107D000039F828B1606D40F02000606503207CBD2B
-:107D1000164800681821B0FBF1F01549B0FBF1F0EE
-:107D20004FF47A71484301906068B0F5827F0DD1BD
-:107D30003346002280212046009500F01BF898B1C0
-:107D4000606D40F0200060650320E0E700BF01980F
-:107D500000B908E00198401E019020688068C0F3D7
-:107D6000C0100028F3D100BF0020D0E70C00002095
-:107D700040420F002DE9F84F04460D4690461E463E
-:107D8000DDF82890FDF73AFDA0EB0900371AFDF762
-:107D900035FD82462C480068C0F3CB307843009014
-:107DA00046E0701C002843D0FDF728FDA0EB0A0038
-:107DB000B84200D2A7BB2068406820F0E0002168EC
-:107DC00048606068B0F5827F0DD1A068B0F5004FC3
-:107DD00003D0A068B0F5806F05D12068006820F05E
-:107DE000400021680860A06AB0F5005F0DD100BFB7
-:107DF0002068006820F4005021680860206800684E
-:107E000040F400502168086000BF012084F8510050
-:107E100000BF002084F8500000BF0320BDE8F88FA9
-:107E2000FFE7009808B9002702E00098401E009084
-:107E3000206880682840A84201D1012000E000208D
-:107E40004045AED10020E9E70C000020704710B596
-:107E5000044601220021204600F0E2FD01221146E5
-:107E6000204600F0DDFD0520FDF7A2FB03212046A2
-:107E7000FFF77EFE132806D010220121204600F0D5
-:107E8000CFFD002010BD04220121204600F0C8FDD6
-:107E9000FF20F7E710B5044601220021204600F03C
-:107EA000BFFD01221146204600F0BAFD0520FDF776
-:107EB0007FFB03212046FFF75BFE132806D010222C
-:107EC0000121204600F0ACFD002010BD022201215E
-:107ED000204600F0A5FD0520FDF76AFB03212046A2
-:107EE000FFF746FE142806D010220121204600F09C
-:107EF00097FD0020E9E7FF20E7E710B504460222DE
-:107F00000021204600F08CFD01221146204600F0A1
-:107F100087FD0520FDF74CFB03212046FFF728FED7
-:107F2000222806D010220121204600F079FD0020F1
-:107F300010BDFF20FCE7000010B50D48416901208D
-:107F400088470C480121826C90470B480121826CC4
-:107F500090470A480121826C904709480121826CB0
-:107F6000904708480121826C9047FDF785FC10BDC1
-:107F70008C000020F00C0020440D0020980D002003
-:107F8000EC0D0020400E002000B593B0302107A872
-:107F9000FCF762F9142102A8FCF75EF900BF00208B
-:107FA00001902548006840F0805023490860084649
-:107FB000006800F08050019000BF00BF00BF0020AB
-:107FC00001901E48006840F480401C490860084643
-:107FD000006800F48040019000BF00BF09200790B6
-:107FE0004FF48030089001200C9002200D90410544
-:107FF0000E9104210F91A8211091022111910421C9
-:10800000129107A8FDF756FE08B1FDF783F80F207F
-:10801000029002200390002004904FF4A05005909D
-:108020004FF480500690052102A8FDF703FD08B12A
-:10803000FDF770F813B000BD4038024000700040FA
-:108040000548006840F4700003490860034802498D
-:10805000803908607047000088ED00E000400008AB
-:1080600010B50248FEF76EFD10BD0000A4260020EA
-:1080700070B50446A56B0020E8852846FEF7E8FCAD
-:1080800070BD70B506460025B46B20684069C0F32A
-:10809000C01594F84100212805D125B10020E084C5
-:1080A000204600F0C8F820684069C0F3801594F8B5
-:1080B0004200222805D125B10020E085204600F0AD
-:1080C00074F8606C40F0100060642046FEF7C0FC5D
-:1080D00070BD70B50546AC6B2868006800F4807010
-:1080E000002842D1E08500BF00BF21680C3151E873
-:1080F000001F21F4807021680C3141E80002002A41
-:10810000F3D100BF00BF00BF2168143151E8001F48
-:1081100021F001002168143141E80002002AF3D166
-:1081200000BF00BF00BF2168143151E8001F21F0DB
-:1081300040002168143141E80002002AF3D100BF59
-:10814000202084F84200206B01280ED100BF00BF20
-:1081500021680C3151E8001F21F0100021680C311A
-:1081600041E80002002AF3D100BF00206063206BC9
-:10817000012804D1A18D2046FEF7E4FB02E0204651
-:10818000FFF74EF970BD70B50546AC6B012060631A
-:10819000206B012805D1A08D41082046FEF7D2FBB7
-:1081A00002E02046FFF73DF970BD00BF00BF026846
-:1081B0000C3252E8002F22F4907102680C3242E82F
-:1081C0000013002BF3D100BF00BF00BF02681432C0
-:1081D00052E8002F22F001010268143242E8001335
-:1081E000002BF3D100BF016B01290ED100BF00BFEE
-:1081F00002680C3252E8002F22F0100102680C32A3
-:1082000042E80013002BF3D100BF202180F8421078
-:1082100000210163704710B504462068C06820F053
-:1082200040002168C860202084F841002046FFF704
-:1082300059F9002010BD00BF00BF02680C3252E89F
-:10824000002F22F0C00102680C3242E80013002B1C
-:10825000F3D100BF202180F841107047F8B50446E3
-:108260000025002694F84200222873D1A068B0F5BA
-:10827000805F0BD1206948B9A66A20684068C0F3C6
-:1082800008003080A06A801CA06214E0A56AA06883
-:10829000B0F5805F03D0A06828B9206918B92068BC
-:1082A0004068287004E02068406800F07F00287073
-:1082B000A06A401CA062E08D401E80B2E0850028CC
-:1082C00046D12068C06820F020002168C86020687E
-:1082D000C06820F480702168C8602068406920F080
-:1082E000010021684861202084F84200002060637A
-:1082F000206B012826D10020206300BF00BF216829
-:108300000C3151E8001F21F0100021680C3141E8C8
-:108310000002002AF3D100BF2068006800F01000BE
-:1083200010280AD100BF002000902068006800904B
-:1083300020684068009000BF00BFA18D2046FEF776
-:1083400001FB02E02046FFF76BF80020F8BD01E0DA
-:108350000020FBE70220F9E72DE9F84F04462068EA
-:10836000006920F44050E1680843216808612169F0
-:10837000A068084361690843E169084300902068E8
-:10838000C06849F20C618843009908432168C860BD
-:108390002068406920F44070A16908432168486161
-:1083A00076492068884203D075492068884203D105
-:1083B000FDF718FC814602E0FDF704FC8146E06908
-:1083C000B0F5004F6CD102206168A0FB015003465C
-:1083D0001920A9FB007001462A463846FBF7F2FE39
-:1083E0006421B0FBF1F04FEA001A02206168A0FBA3
-:1083F00001510B461920A9FB00712A463846FBF7AC
-:10840000E1FE834602206168A0FB0150034619206B
-:10841000A9FB00712A463846FBF7D4FE6421B0FB65
-:10842000F1F000EBC00101EB0010ABEB800032215A
-:1084300001EBC0006421B0FBF1F000F0F8000AEBA2
-:10844000400A02206168A0FB015003461920A9FBE5
-:10845000007001462A463846FBF7B4FE83460220E8
-:108460006168A0FB015003461920A9FB00712A4650
-:108470003846FBF7A7FE6421B0FBF1F000EBC0012A
-:1084800001EB0010ABEB8000322101EBC000642156
-:10849000B0FBF1F000F007005044216888606AE00A
-:1084A00004206168A0FB015003461920A9FB00705D
-:1084B00001462A463846FBF785FE8246042061685D
-:1084C000A0FB015003461920A9FB007001462A4673
-:1084D0003846FBF777FE6421B0FBF1F000EBC001FA
-:1084E00001EB0010AAEB8000322101EB00106421A7
-:1084F000B0FBF1F000F0F00A04206168A0FB01700D
-:1085000003461920A9FB00513A462846FBF75AFEBC
-:108510006421B0FBF1F00AEB001A04206168A0FBB3
-:1085200001510B461920A9FB00712A463846FBF77A
-:1085300049FE834604206168A0FB015003461920D0
-:10854000A9FB007001462A463846FBF73BFE642132
-:10855000B0FBF1F000EBC00101EB0010ABEB8000D1
-:10856000322101EB00106421B0FBF1F000F00F00AC
-:10857000504421688860BDE8F88F00000010014079
-:108580000014014077B581B0044615460298A062F8
-:10859000A58500206064222084F842002C48E16B0D
-:1085A000C8632C48E16B08642B48E16BC864002069
-:1085B000E16B086502AE32682368191D2B46E06B3B
-:1085C000FCF7ACFF38B110206064202084F8420032
-:1085D000012004B070BD00BF00200090206800683A
-:1085E000009020684068009000BF00BF206970B113
-:1085F00000BF00BF21680C3151E8001F41F48070BA
-:1086000021680C3141E80002002AF3D100BF00BF0D
-:1086100000BF2168143151E8001F41F001002168BA
-:10862000143141E80002002AF3D100BF00BF00BFAF
-:108630002168143151E8001F41F0400021681431D5
-:1086400041E80002002AF3D100BF0020C1E700008A
-:10865000D38000088781000883800008014691F8D4
-:108660004100212828D18868B0F5805F0BD10869C6
-:1086700048B90A6A1088C0F308000B685860086A95
-:10868000801C086205E00B6A581C086218780B68A9
-:108690005860C88C401E80B2C88458B90868C06849
-:1086A00020F080000B68D8600868C06840F0400087
-:1086B0000B68D860002070470220FCE72DE9F843E2
-:1086C00004460D4617469846089E31E0701C70B36C
-:1086D000FDF794F8A0EB0800B04200D816B90320CB
-:1086E000BDE8F8832068C06800F00400F8B1802D70
-:1086F0001ED0402D1CD020680068C0F3C000B0B16F
-:1087000000BF00200090206800680090206840684A
-:10871000009000BF00BF2046FFF747FD08206064BF
-:1087200000BF002084F8400000BF0120D8E7FFE729
-:10873000206800682840A84201D1012000E0002004
-:10874000B842C3D00020CBE710B50248FEF7FAF9D3
-:1087500010BD0000EC26002010B50248FEF7F2F92B
-:1087600010BD00003427002010B50248FEF7EAF9DA
-:1087700010BD00007C27002010B50248FEF7E2F98A
-:1087800010BD0000C427002000BFFEE710B5002286
-:1087900010210748FDF72CF83220FCF709FF0122D1
-:1087A00010210348FDF724F86420FCF701FF10BDF9
-:1087B000000802403EB50024002000900190029085
-:1087C000802100F0F9F80A20FCF7F2FE0422334879
-:1087D0000168012000F092F9042230480168091D67
-:1087E000052000F08BF92E48006800902C48001DF1
-:1087F000006801902A480830006802900198000A39
-:108800002649096808720198C1B22448006841727B
-:108810000298010E2148006881720298010C1F48DD
-:108820000068C1720298010A1C480068017302982E
-:10883000C1B21A480068417318480068007A00F015
-:10884000FE0040F00200154909680872062213482C
-:1088500001680831092000F051F904220F4801682D
-:108860000E310F2000F04AF900BF0BE0E0B2022207
-:108870001E2100F0D5F8E0B202221F2100F0D0F84E
-:10888000601C84B2082CF1DB4FF4FA61192000F06F
-:10889000ADF808211B2000F08FF83EBD041F00201A
-:1088A000107AFF1F2DE9F04704460E4690462078C7
-:1088B0000021FFF75DF900F00F0022280DD020788D
-:1088C00004F109020C2100F0EBF8A37B617B43EA81
-:1088D00001222078102100F0C3F820782421FFF72E
-:1088E00071F90746B946C7F30A0700224FF4006141
-:1088F0003048FCF77DFF3846FFF7A4F921781022B5
-:1089000002EB4111C9B241F00400FFF791F907EB06
-:108910000800B0F5006F0ADA002505E016F8010B33
-:10892000FFF786F9681C85B24545F7DB2CE0C7F5F3
-:10893000006087B2002505E016F8010BFFF778F913
-:10894000681C85B2BD42F7DB0122D1021948FCF751
-:108950004FFF00224FF400611648FCF749FF00204A
-:10896000FFF770F92178102202EB4111C9B241F0F2
-:108970000400FFF75DF905E016F8010BFFF758F961
-:10898000681C85B24545F7DB0122D1020948FCF796
-:108990002FFF09EB08001FFA80F920784A462421AE
-:1089A00000F05EF820782022012100F039F8BDE8BF
-:1089B000F08700000010024070B505460C4600220A
-:1089C0004FF400610848FCF713FF2846FFF73AF917
-:1089D0000520FFF72DF92046FFF72AF90122D102E1
-:1089E0000148FCF705FF70BD0010024070B5054658
-:1089F0000C4600224FF400610848FCF7F9FE2846B7
-:108A0000FFF720F90620FFF713F92046FFF71AF9C0
-:108A10000122D1020148FCF7EBFE70BD00100240BC
-:108A200070B504460D46164600224FF400610B480F
-:108A3000FCF7DEFE2846FFF705F9082101EB44119B
-:108A4000C9B241F00500FFF7F3F83046FFF7F0F840
-:108A50000122D1020148FCF7CBFE70BD001002409C
-:108A600070B504460D46164600224FF400610B48CF
-:108A7000FCF7BEFE2846FFF7E5F8082101EB44119C
-:108A8000C9B241F00600FFF7D3F83046FFF7DAF835
-:108A90000122D1020148FCF7ABFE70BD001002407C
-:108AA00070B505460E46144600224FF40061124888
-:108AB000FCF79EFE3046FFF7C5F8082101EB451193
-:108AC000C9B241F00700FFF7B3F814F8010BFFF744
-:108AD000AFF814F8010BFFF7ABF814F8010BFFF730
-:108AE000A7F814F8010BFFF7A3F80122D1020248FE
-:108AF000FCF77EFE70BD0000001002402DE9F04141
-:108B000007460C46154600224FF400610C48FCF75E
-:108B10006FFE3846FFF796F80420FFF789F8002625
-:108B200005E014F8010BFFF783F8701C86B2AE4223
-:108B3000F7DB0122D1020248FCF75AFEBDE8F081C2
-:108B4000001002400FB4054B10B503A9044A029867
-:108B500000F028F910BC5DF814FB0000A5AE000879
-:108B6000E02500200FB4084B10B504A902AA039811
-:108B700000F018F9044602A9002000F0A1FC2046EC
-:108B800010BC5DF814FB0000C19400087CB50C001B
-:108B90001D461646014601D0601E00E00020CDE9CA
-:108BA0000010064B6A462946304600F0FBF8002CC0
-:108BB00002D0009A002111707CBD0000AB94000827
-:108BC00002480068C0F30220704700000CED00E08E
-:108BD00010B5002804DB0A07130E054A135406E0FB
-:108BE0000A07140E034A00F00F031B1FD45410BDD4
-:108BF00000E400E018ED00E000487047E4250020A4
-:108C000002E008C8121F08C1002AFAD17047704755
-:108C1000002001E001C1121F002AFBD170470000B3
-:108C20002DE9FF5F82B00021DDE90430020DDDF89F
-:108C300040B0034318D044F61050A2F2FF32424332
-:108C40001514119801281FD0A5EB0B00401C5FEAFA
-:108C5000000A4FF000064E4FDFF83891B0465046FC
-:108C600015D5CAF1000413E0119801244AA3012884
-:108C700001D16FEA0B010298119AC0E90031C0E9F5
-:108C8000024206B0BDE8F09FCBF10000DFE70446EA
-:108C90000021404A491842EB0450CDE9001012E08F
-:108CA000E00707D032463B4640464946FBF70CFEFC
-:108CB0008046894632463B4610461946FBF704FE7D
-:108CC00006460F466410002CEAD1DDE90401DDE917
-:108CD0000023BAF1000F06DAFBF7F6FD42464B46D9
-:108CE000FBF7F2FD05E0FBF7C0FB42464B46FBF706
-:108CF000BCFB04460E460022284BFBF76FFE03D850
-:108D00004FF0FF30014607E00022254B2046314658
-:108D1000FBF733FDFBF74AFE102409E0002C0ADBC9
-:108D20000A220023FBF74EFA039B30321A55641EC9
-:108D300050EA0102F2D1641C039AC4F111031444F5
-:108D4000119A012A03D0012208430DD10AE00843F9
-:108D500004D000204FF0110B119072E7A3EB0B052C
-:108D60006D1E0DE05B4504DD4FF0000205F10105CD
-:108D700004E003DA4FF00002A5F10105002AECD06F
-:108D800002981199C0E90231C0E9004579E7000075
-:108D9000000014400000F03F300000000000F043ED
-:108DA0000000E03F2DE9FF4F95B09A468846064601
-:108DB0000025EEE1252877D100242746F94A012134
-:108DC000039400E0044316F8013F203B01FA03F04E
-:108DD0001042F7D130782A2811D06FF02F03307865
-:108DE000A0F13002092A16D8039A44F0020402EBDB
-:108DF000820203EB42021044761C0390EFE758F81E
-:108E0000042B0392002A03DA504244F400540390E6
-:108E100044F00204761C30782E2816D116F8010F83
-:108E200044F004042A280DD06FF02F023078A0F10E
-:108E30003003092B09D807EB870302EB4303C7185C
-:108E4000761CF3E758F8047B761C30786C280FD03A
-:108E500006DC4C2817D068280DD06A2814D104E00D
-:108E6000742810D07A280FD10DE044F400140AE0E1
-:108E700044F4801401E044F440147278824202D138
-:108E800004F58014761C761C307866280BD013DC31
-:108E9000582877D009DC002875D04528F6D0462818
-:108EA000F4D047281AD193E118E0632835D064281C
-:108EB00079D0652812D18BE1702873D008DC67283F
-:108EC000F1D069286FD06E280DD06F2806D1ACE0A4
-:108ED00073282CD0752874D0782853D0524617990F
-:108EE00090476D1C54E1C4F30250022809D00328B6
-:108EF0000DD0D8F8001004280DD00D6008F104083A
-:108F000046E1D8F80010EA17C1E90052F6E7D8F8B0
-:108F100000100D80F2E70D70F0E718F8041B8DF8D3
-:108F2000001000208DF80100EB46012003E058F806
-:108F300004BB4FF0FF3061074FF0000102D40DE099
-:108F400009F101018946B9420FDA8145F8DB1BF8C6
-:108F500009100029F4D108E009F101018946814294
-:108F6000FADB1BF809100029F6D103985346A0EB51
-:108F7000090721463846179A00F080FA284400EB8A
-:108F8000090507E044E008E10DE01BF8010B52463B
-:108F900017999047B9F10109F7D25346214638464F
-:108FA000179AF2E039E00A21C4F302524FF0000BA5
-:108FB0000091022A06D058F8040BC117032A09D0E1
-:108FC0000AE023E008F1070020F00702F2E80201BE
-:108FD000904605E000B2C117042A01D140B2C11782
-:108FE000002906DA0A460021404261EB02012D22E7
-:108FF00002E0220504D52B228DF80420012203E093
-:10900000E20701D02022F7E7914657E00A2100E06D
-:1090100010214FF0000B00910BE010214FF0000BDE
-:1090200044F004040827009103E008204FF0000BEF
-:109030000090C4F30252022A05D058F8040B002114
-:10904000032A08D008E008F1070020F00702F2E840
-:109050000201904603E080B2042A00D1C0B24FF072
-:10906000000922072AD53278702A07D0DDF800C01F
-:109070008CF0100C5CEA0B0C05D00EE040228DF851
-:109080000420012208E050EA010306D030238DF8C5
-:1090900004308DF8052002229146009B83F00803DE
-:1090A00053EA0B030AD150EA010201D1620705D548
-:1090B00030228DF804204FF001097F1E3278582AA3
-:1090C00004D039A20C920CAA02920BE03BA2F9E761
-:1090D0005B46009AFBF776F80C9B9B5C029A521E4B
-:1090E0000292137050EA0102F2D1029804A9081A00
-:1090F00000F1200B600702D524F4803400E0012742
-:109100005F4502DDA7EB0B0000E0002000EB0B0148
-:10911000009003984944401A0390E00306D4534654
-:109120002146179A039800F0A9F90544002706E0A4
-:1091300001A85246C05D179990476D1C7F1C4F4592
-:10914000F6DBE0030CD553462146179A039800F04E
-:1091500095F9054404E030205246179990476D1C5C
-:109160000099481E00900029F5DC08E00298029959
-:1091700052460078491C0291179990476D1CBBF12B
-:109180000001ABF1010BF1DC5BE100F065F9054496
-:10919000761C307800287FF40DAE19B02846BDE863
-:1091A000F08F000009280100303132333435363772
-:1091B0003839616263646566000000003031323323
-:1091C00034353637383941424344454600000000C3
-:1091D000600700D4062708F1070020F00700F0E838
-:1091E0000223804603F0004C5FEA0C0001D097A0F8
-:1091F00009E0200501D596A005E0E00701D095A083
-:1092000001E0AFF24C001390307823F00043652862
-:109210000CD006DC452809D046281DD047287FD130
-:109220003BE0662818D067287AD136E00021112F5C
-:1092300001DB112000E0781CCDE9000104A90CA895
-:10924000FFF7EEFCDDE90D010C9A4FF0000B07F182
-:109250000109109200914EE04FF000400097CDE9D7
-:10926000011004A90CA8FFF7DBFCDDE90D020C9B43
-:109270000F994FF0000B91461093009211B9791C91
-:1092800000EB0109B7EB090003D4C0F1FF3B07F184
-:109290000109A9EB0700019042E0012F00DA012744
-:1092A0000021112F01DD112000E03846CDE9000139
-:1092B00004A90CA8FFF7B4FCDDE90D010C9A00919C
-:1092C0004FF0000BB946109221070FD4009A4A457F
-:1092D00003DA914601E0A9F10109B9F1010F05DDB9
-:1092E000109AA9F10101515C3029F4D0B84202DA98
-:1092F00010F1040F03DA0121CDE9011010E000287C
-:1093000003DC8344A9EB000102E0411C494500DD78
-:109310008946A0EB0B00401C01904FF000400290EA
-:10932000200705D40198484502DB4FF0FF3001903B
-:1093300000208DF84B0002980DF14B07B0F1004F63
-:1093400025D002200C902B200D90029800280CDADA
-:10935000404202902D200D9007E00A210298FBF771
-:1093600000F93031029007F8011D0C99481E0C904D
-:109370000029F2DC02980028EFD1791E0D980870C0
-:10938000307800F0200040F0450007F8020D11A8E9
-:10939000C01BC01D02901398007800B1012000EBA3
-:1093A0000901019801EBE071029801440398401A09
-:1093B000401E0390E00306D453462146179A0398B3
-:1093C00000F05CF805441398007818B152461799DC
-:1093D00090476D1CE00323D553462146179A039806
-:1093E00000F04CF805441BE0BBF1000F07DB0098D0
-:1093F000584504DD1098179910F80B0001E01799F3
-:1094000030205246904701980BF1010B401E05F1A8
-:109410000105019004D12E205246179990476D1CEA
-:10942000B9F10001A9F10109DEDC05E017F8010B33
-:109430005246179990476D1C0299481E02900029C8
-:10944000F4DC53462146179A03989EE62D0000004F
-:109450002B000000200000002DE9F041044600250B
-:109460001E461746880404D405E039462020B0473C
-:109470006D1C641EF9D52846BDE8F0812DE9F04148
-:10948000044600251E469046C80301D5302700E05B
-:109490002027880404D505E041463846B0476D1CB6
-:1094A000641EF9D52846BDE8F0814A68002A06D036
-:1094B0000A68531C0B6010704868401E4860704773
-:1094C0000A68531C0B601070704770B505460E4655
-:1094D000052E13D2DFE806F00306090C0F004FF447
-:1094E00096540EE04FF416540BE04FF4964408E007
-:1094F0004FF4614405E04FF4E13402E04FF4E1340D
-:1095000000BF00BF686830B16868406B18B1686818
-:109510002146426B904770BD70B500200AE00022E2
-:1095200000EBC00404EB00142A4D05EB0414628028
-:10953000421C90B20428F2DB002047E000EB40021E
-:1095400002EBC004244A12F82420012A3CD100EB8B
-:10955000400404EBC005204C04EB8504617800EB6B
-:10956000400404EBC0051C4C04EB8504E37801EBDC
-:10957000C10404EB0114174D05EB0414241D01EB89
-:10958000C10505EB0115134E06EB05156D8805EBBE
-:10959000450504EB85020024146054609460137048
-:1095A00090700124547001EBC10404EB01143546A2
-:1095B00005EB04146488641C01EBC10505EB01157F
-:1095C00006EB05156C8000BF421C90B22028B5DB6D
-:1095D00070BD0000801F00206C06002010B5002424
-:1095E00015E00E4850F8240004EB44010C4A02EB4D
-:1095F000810148600B4804EB440102EB8101886063
-:10960000042004EB440102F82100601CC4B2042CC5
-:10961000E7DBFFF781FF00F007F810BD180C002012
-:10962000280C0020CB94000838B515480422694660
-:1096300043684FF45040984700241EE01DF8040092
-:10964000FF2806D1042004EB44010E4A02F8210051
-:1096500006E01DF8040004EB44010A4A02F8210068
-:1096600004EB4402074B13F8221004EB440203EB13
-:109670008200FFF72AFF601CC4B2042CDEDB38BD79
-:10968000940E0020280C00201CB5002008E000EB00
-:109690004001124A12F8211001AA1154411CC8B20B
-:1096A0000428F4DB0E480422694643684FF4504016
-:1096B00098470422694601A8FAF7FAFD00B91CBDD3
-:1096C0004FF45044204607F007FA0548042201A948
-:1096D00083682046984700BFF1E70000280C00206F
-:1096E000940E002010B5284908688047274908686B
-:1096F00080472748816B88472648816B88472648E2
-:10970000816B88472548816B88472548816B88474E
-:109710002449086B80472449086980472349C86861
-:1097200080472348D0F8841188472148D0F8141383
-:1097300000F5C87088471E48D0F8A41400F548709A
-:1097400088471B48D0F8341600F5966088471949B9
-:109750008868804718494868804718498868804762
-:109760001749086880471749D1F8540B80471649B4
-:10977000086B804715498868804715481549C268B5
-:109780000820904710BD00006C0C0020940E0020B3
-:10979000F00C0020440D0020980D0020EC0D00205E
-:1097A000400E0020C41E0020681F0020C02500209D
-:1097B000801F0020A80E0020301F0020081F00205E
-:1097C000640C0020A8000020280C00200C0C0020B5
-:1097D0008C0000202C00002010B524480068408830
-:1097E00040B123490869804722480121C26803200B
-:1097F000904707E01E49486980471E480021C2681B
-:109800000320904719480068807800F0010028B1D3
-:1098100018480121C2680020904704E01548002143
-:10982000C2680846904711480068807800F002003E
-:1098300028B110480121C2680846904704E00D484D
-:109840000021C2680120904708480068408800F461
-:10985000004028B107480121C2680220904704E077
-:1098600004480021C2680220904710BD080C002067
-:10987000081F0020301F002010B500F001F810BDB7
-:1098800070B500205C49096808705B490968487038
-:109890004FF4B86158480068001DFAF7DDFC002459
-:1098A000A5E0012604EB440000EBC4015248006827
-:1098B00000F2C45010F8210001287DD14E48006804
-:1098C0004078401C4C4909684870002548E004EB8A
-:1098D000440202EBC403484A126802F2C45202EB8B
-:1098E000830202F10E01C5EBC50202EB0513424AE9
-:1098F0001268121D02EB4302101D0A22FAF7D8FC6F
-:1099000060BBC5EBC50000EB05113B480068001DBE
-:1099100000EB41000E30C5EBC50101EB05133649E4
-:109920000968091D01EB4301C9784454C5EBC50022
-:1099300000EB051130480068001D00EB4100C078C5
-:10994000401CC1B2C5EBC50000EB05122A480068F7
-:10995000001D00EB4200C170002603E0681C85B2C8
-:10996000202DB4DB00BF3EB3234800680078C0EB75
-:10997000C00101EB001120480068001D00EB41010F
-:1099800004EB440000EBC4021B48006800F2C45022
-:1099900000EB820050F80E2F4A6042688A6000890E
-:1099A0008881154800680078C0EBC00202EB001205
-:1099B00011480068001D00E017E000EB42008473CE
-:1099C00001210D4800680078C0EBC00202EB0012D4
-:1099D00009480068001D00EB4200C170064800689D
-:1099E0000078401C044909680870601C84B2202C6F
-:1099F000FFF657AF70BD0000080C00202DE9F84FAE
-:109A000000241FE00021C4EBC40000EB0412A648B0
-:109A10000068001D00F81210C4EBC40000EB041233
-:109A2000A1480068001D00EB42004170C4EBC40077
-:109A300000EB04129C480068001D00EB420081709E
-:109A4000601C84B2984800680078A042DADC0020EC
-:109A500095490968488000241BE14FF0000809E19E
-:109A6000C4EBC40000EB04118F480068001D00EB3C
-:109A700041000E3010F8086006EB460000EBC6010E
-:109A80008948006800F2C45010F82100012800D075
-:109A9000ECE006EB460000EBC6018348006800F2EC
-:109AA000C45000EB810090F82A0000B1DEE00025F0
-:109AB00062E006EB460000EBC6017B48006800F25E
-:109AC000C45000EB8100183030F82570774800EB67
-:109AD000C60030F8159006EB460000EBC601724850
-:109AE000006800F2C45000EB8100183000EB8500E4
-:109AF000B0F802A007F0010050B109F0010038B938
-:109B0000EAB2F1B2E0B20123CDF800A005F0A2F86C
-:109B100007F0020050B109F0020038B90020EAB2A3
-:109B2000F1B20090E0B2022305F094F807F400408F
-:109B3000D8B109F40040C0B9002D0DDD06EB460098
-:109B400000EBC6015848006800F2C45000EB8100E9
-:109B5000008B00F4004040B90020EAB2F1B200905E
-:109B6000E0B24FF4004305F075F8504800EBC60032
-:109B700020F81570681C85B2022D9ADB002571E073
-:109B800006EB460101EBC6024749096801F2C451E0
-:109B900001EB8201183131F8250000F40041F1B1E8
-:109BA000C4EBC40101EB04123F490968091D01EB34
-:109BB00042018978491CCAB2C4EBC40101EB041309
-:109BC00039490968091D01EB43018A703649096862
-:109BD000498841F40041344A1268518044E000F061
-:109BE0000201F1B1C4EBC40101EB04122E49096872
-:109BF000091D01EB42014978491CCAB2C4EBC401FA
-:109C000001EB041328490968091D01EB43014A705F
-:109C100025490968498841F00201234A12685180A8
-:109C20001EE000F00101D9B1C4EBC40101EB041244
-:109C30001D490968091D11F81210491CCAB2C4EB6C
-:109C4000C40101EB041318490968091D01F8132028
-:109C500015490968498841F00101134A1268518089
-:109C6000681C85B2022D8BDB00BF00BF08F101002C
-:109C70001FFA80F8C4EBC40000EB04110A48006826
-:109C8000001D00EB4100C07840453FF7E9AE601C85
-:109C900084B2054800680078A0423FF7DEAEFFF7C7
-:109CA0009BFDBDE8F88F0000080C0020CC2B0020A5
-:109CB00010B503490869804706F04EFE10BD00004C
-:109CC0008C000020034A12689080024A126891605A
-:109CD00070470000A400002010B51A480068806892
-:109CE00000B910BD002425E016480068806804EB28
-:109CF000440110F82100D0B1002012490968896898
-:109D000004EB440201F822000E480068806804EB6E
-:109D1000440100EB8100806800B909E00949096845
-:109D2000896804EB440201EB82018868804700BF28
-:109D3000601C84B2034800688088A042D4DC00BF65
-:109D4000CFE70000A400002010B501462F4A12689A
-:109D50001288521C2D4B1B681A802C4A12681288DC
-:109D6000B2F57A7F06DB294A12685288521C274BCB
-:109D70001B685A80254A1268926802B910BD0020FB
-:109D80003CE0224A1268926800EB400302EB830237
-:109D900052888AB31D4A1268926800EB400302EBB6
-:109DA00083025288521E194B1B689B6800EB4004CB
-:109DB00003EB84035A80154A1268926800EB400353
-:109DC00002EB83025288BAB90122104B1B689B68D0
-:109DD00000EB400403F824200C4A1268926800EB60
-:109DE000400302EB83029288084B1B689B6800EBE0
-:109DF000400403EB84035A80421C90B2034A126869
-:109E000092888242BDDC00BFB8E70000A4000020B9
-:109E100000B585B010200090002001900290022033
-:109E2000039069460248FBF7D7FB05B000BD000070
-:109E3000000C024000B585B0102000900120019078
-:109E4000002002900220039069460248FBF7C4FB01
-:109E500005B000BD000C024010B5012220212148B0
-:109E6000FBF7C6FC002208211E48FBF7C1FC00F0EE
-:109E70009FF81D4800680088632818DC1A480068AD
-:109E800080780C2813DC18480068C0781F280EDC86
-:109E9000154800680079172809DC134800684079E4
-:109EA0003B2804DC1048006880793B2818DD1A2024
-:109EB0000D490968088001200B49096888700A4922
-:109EC0000968C870002008490968087106490968CE
-:109ED00048710549096888710348006800F006F870
-:109EE00010BD0000000C0240BC0E002070B50446FE
-:109EF0002E4800680088632818DC2C4800688078A9
-:109F00000C2813DC29480068C0781F280EDC27487D
-:109F100000680079172809DC2448006840793B284C
-:109F200004DC2248006880793B2801DD002070BDF8
-:109F300000218E2000F00AFA8021084600F006FA7F
-:109F40002078FDF70FFB054629468C2000F0FEF92E
-:109F5000A078FDF707FB05462946882000F0F6F9B2
-:109F6000E078FDF7FFFA05462946862000F0EEF975
-:109F70002079FDF7F7FA05462946842000F0E6F936
-:109F80006079FDF7EFFA05462946822000F0DEF9F8
-:109F9000A079FDF7E7FA05462946802000F0D6F9BA
-:109FA00080218E2000F0D2F90120C0E7BC0E0020F5
-:109FB00010B58C2000F08AF804462046E21704EB26
-:109FC00012721211A4EB02122146E31704EB137371
-:109FD0001B1103EB830302EB43023B4B1B681A800C
-:109FE000882000F073F804462046E21704EB127252
-:109FF0001211A4EB02122146E31704EB13731B1199
-:10A0000003EB830302EB43022F4B1B689A708620FD
-:10A0100000F05CF804462046E21704EB12721211BD
-:10A02000A4EB02122146E31704EB13731B1103EB9D
-:10A03000830302EB4302244B1B68DA70842000F098
-:10A0400045F804462046E21704EB12721211A4EB05
-:10A0500002122146E31704EB13731B1103EB830376
-:10A0600002EB4302184B1B681A71822000F02EF895
-:10A0700004462046E21704EB12721211A4EB0212FE
-:10A080002146E31704EB13731B1103EB830302EB6D
-:10A0900043020D4B1B685A71802000F017F80446EC
-:10A0A0002046E21704EB12721211A4EB02122146B1
-:10A0B000E31704EB13731B1103EB830302EB43025F
-:10A0C000014B1B689A7110BDBC0E002070B505468F
-:10A0D000012220219C48FBF78BFB00BF00BF00BF83
-:10A0E00000BF00BF00BF00BF00BF00BF00BF00BF78
-:10A0F00000BF00BF00BF00BF00BF00BF00BF00BF68
-:10A1000000BF00BF00BF00BF00BF00BF00BF00BF57
-:10A1100000BF00BF00BF45F00105002474E005F05A
-:10A12000010028B1012210218748FBF761FB04E000
-:10A13000002210218448FBF75BFB00BF00BF00BF7B
-:10A1400000BF00BF00BF00BF00BF00BF00BF00BF17
-:10A1500000BF00BF00BF00BF00BF00BF00BF00BF07
-:10A1600000BF00BF00BF00BF00BF00BF00BF00BFF7
-:10A1700000BF00BF00BF012208217348FBF738FB76
-:10A1800000BF00BF00BF00BF00BF00BF00BF00BFD7
-:10A1900000BF00BF00BF00BF00BF00BF00BF00BFC7
-:10A1A00000BF00BF00BF00BF00BF00BF00BF00BFB7
-:10A1B00000BF00BF00BF00BF00BF00BF00220821DA
-:10A1C0006148FBF715FB00BF00BF00BF00BF00BF29
-:10A1D00000BF00BF00BF00BF00BF00BF00BF00BF87
-:10A1E00000BF00BF00BF00BF00BF00BF00BF00BF77
-:10A1F00000BF00BF00BF00BF00BF00BF00BF00BF67
-:10A2000000BF6D10601CC4B2082C88DBFFF700FE95
-:10A21000002470E0761010214B48FBF7D7FA10B1FC
-:10A2200046F0800601E006F07F0600BF00BF00BFD9
-:10A2300000BF00BF00BF00BF00BF00BF00BF00BF26
-:10A2400000BF00BF00BF00BF00BF00BF00BF00BF16
-:10A2500000BF00BF00BF00BF00BF00BF00BF00BF06
-:10A2600000BF00BF00BF012208213748FBF7C0FA3A
-:10A2700000BF00BF00BF00BF00BF00BF00BF00BFE6
-:10A2800000BF00BF00BF00BF00BF00BF00BF00BFD6
-:10A2900000BF00BF00BF00BF00BF00BF00BF00BFC6
-:10A2A00000BF00BF00BF00BF00BF00BF00220821E9
-:10A2B0002548FBF79DFA00BF00BF00BF00BF00BFED
-:10A2C00000BF00BF00BF00BF00BF00BF00BF00BF96
-:10A2D00000BF00BF00BF00BF00BF00BF00BF00BF86
-:10A2E00000BF00BF00BF00BF00BF00BF00BF00BF76
-:10A2F00000BF601CC4B2082C8CDB00222021124855
-:10A30000FBF776FA00BF00BF00BF00BF00BF00BF71
-:10A3100000BF00BF00BF00BF00BF00BF00BF00BF45
-:10A3200000BF00BF00BF00BF00BF00BF00BF00BF35
-:10A3300000BF00BF00BF00BF00BF00BF00BF00BF25
-:10A34000FFF778FD304670BD000C024070B5054641
-:10A350000E46012220219C48FBF74AFA00BF00BFAD
-:10A3600000BF00BF00BF00BF00BF00BF00BF00BFF5
-:10A3700000BF00BF00BF00BF00BF00BF00BF00BFE5
-:10A3800000BF00BF00BF00BF00BF00BF00BF00BFD5
-:10A3900000BF00BF00BF00BF05F0FE05002474E051
-:10A3A00005F0010028B1012210218748FBF720FAAF
-:10A3B00004E0002210218448FBF71AFA00BF00BF16
-:10A3C00000BF00BF00BF00BF00BF00BF00BF00BF95
-:10A3D00000BF00BF00BF00BF00BF00BF00BF00BF85
-:10A3E00000BF00BF00BF00BF00BF00BF00BF00BF75
-:10A3F00000BF00BF00BF00BF012208217248FBF769
-:10A40000F7F900BF00BF00BF00BF00BF00BF00BF23
-:10A4100000BF00BF00BF00BF00BF00BF00BF00BF44
-:10A4200000BF00BF00BF00BF00BF00BF00BF00BF34
-:10A4300000BF00BF00BF00BF00BF00BF00BF0022C1
-:10A4400008216148FBF7D4F900BF00BF00BF00BF7F
-:10A4500000BF00BF00BF00BF00BF00BF00BF00BF04
-:10A4600000BF00BF00BF00BF00BF00BF00BF00BFF4
-:10A4700000BF00BF00BF00BF00BF00BF00BF00BFE4
-:10A4800000BF00BF6D10601CC4B2082C88DB002424
-:10A4900074E006F0010028B1012210214A48FBF7C0
-:10A4A000A7F904E0002210214748FBF7A1F900BFFB
-:10A4B00000BF00BF00BF00BF00BF00BF00BF00BFA4
-:10A4C00000BF00BF00BF00BF00BF00BF00BF00BF94
-:10A4D00000BF00BF00BF00BF00BF00BF00BF00BF84
-:10A4E00000BF00BF00BF00BF00BF012208213648E7
-:10A4F000FBF77EF900BF00BF00BF00BF00BF00BF79
-:10A5000000BF00BF00BF00BF00BF00BF00BF00BF53
-:10A5100000BF00BF00BF00BF00BF00BF00BF00BF43
-:10A5200000BF00BF00BF00BF00BF00BF00BF00BF33
-:10A53000002208212448FBF75BF900BF00BF00BFE1
-:10A5400000BF00BF00BF00BF00BF00BF00BF00BF13
-:10A5500000BF00BF00BF00BF00BF00BF00BF00BF03
-:10A5600000BF00BF00BF00BF00BF00BF00BF00BFF3
-:10A5700000BF00BF00BF7610601CC4B2082C88DB8F
-:10A58000002220211048FBF733F900BF00BF00BFB5
-:10A5900000BF00BF00BF00BF00BF00BF00BF00BFC3
-:10A5A00000BF00BF00BF00BF00BF00BF00BF00BFB3
-:10A5B00000BF00BF00BF00BF00BF00BF00BF00BFA3
-:10A5C00000BF00BF00BF70BD000C024010B5FEF719
-:10A5D000DDF8FEF7EFF8FAF735FD002417E004EB9D
-:10A5E000440101EB44220B490968143101EBC2001C
-:10A5F00000F00AF9002104EB440000EB4422054876
-:10A600000068143000EBC2000174601CC4B2012C5D
-:10A61000E5DB10BD041F002070B500BF1720FDF75B
-:10A6200083FA06460A20FAF7C3FF0024E0E001207F
-:10A63000A040304000287CD004EB440101EB4422D0
-:10A6400070490968143111F832000221FDF790FABF
-:10A65000054604EB440101EB44226A4909681431C0
-:10A6600011F832002A460221FEF7DAF905F001005E
-:10A67000A8B104EB440000EB4421624800681430A8
-:10A6800000EBC100007C40F0020104EB440000EB51
-:10A6900044225C480068143000EBC200017405F0ED
-:10A6A000020010B304EB440101EB44225549096850
-:10A6B000143111F8320010220121FEF7B1F904EB38
-:10A6C000440101EB44224F490968143101EBC200F7
-:10A6D00000F09AF8002104EB440000EB44224948C2
-:10A6E0000068143000EBC200017405F01000A8B13E
-:10A6F00004EB440000EB442142480068143000EBB6
-:10A70000C100407C40F0020104EB440000EB442215
-:10A710003C480068143000EBC200417405F00400AE
-:10A72000B8B104EB440000EB442136480068143013
-:10A7300000E04FE000EBC100407C40F0010104EB81
-:10A74000440000EB44222F480068143000EBC200A4
-:10A75000417405F00800E8B304EB440101EB442226
-:10A7600028490968143111F832002A460221FEF7FF
-:10A7700057F904EB440101EB4422224909681431E2
-:10A7800011F8320010220121FEF74AF90A20FAF7E7
-:10A790000FFF04EB440101EB44221A49096814310C
-:10A7A00001EBC20000F030F804EB440101EB44225D
-:10A7B00014490968143101EBC20000F043F800218C
-:10A7C00004EB440000EB44220E480068143000EB18
-:10A7D000C20000E00AE0017404EB440000EB4422F4
-:10A7E00008480068143000EBC2004174601CC4B219
-:10A7F000012CFFF61CAF1720FDF796F900B10DE70D
-:10A8000070BD0000041F002010B50446207840F2FF
-:10A81000B4521221FEF724F9A178637841EA0322A9
-:10A8200020780421FEF71CF9237AE17943EA01221A
-:10A8300020781021FEF714F92078E21C0C21FEF795
-:10A840002FF910BD10B50446207C68BBE07B20B119
-:10A85000012811D0022825D119E02078FDF71AFB34
-:10A86000FF2806D1012020742078022106F0E6F9A5
-:10A8700001E00020207416E02078FDF7E8FAFF28B8
-:10A8800002D10120207401E0002020740BE0207828
-:10A89000FDF733FBFF2802D10320207401E00020E4
-:10A8A000207400E000BF00BF10BD000070B50024A0
-:10A8B0000CE004EB440101EB44223B4909681431EC
-:10A8C00001EBC200FFF7BEFF601CC4B2012CF0DB3D
-:10A8D000FFF7A2FE002464E004EB440000EB4421F7
-:10A8E00031480068143000EBC100407C00F00100EA
-:10A8F000002854D004EB440000EB44212A480068AF
-:10A90000143000EBC100407C20F0010104EB440056
-:10A9100000EB442224480068143000EBC20041746C
-:10A9200004EB440000EB44221F480068143000EBA5
-:10A93000C20000F112010020FDF75CF8054604EBAF
-:10A94000440000EB442118480068143000EBC100BB
-:10A9500000F58050406908B304EB440101EB442644
-:10A9600011490968143101EBC60204EB440101EB03
-:10A9700044260D490968143101EBC60101F11200AA
-:10A9800004EB440101EB442607490968143101EB4B
-:10A99000C60101F580514B692946984700BF601CEC
-:10A9A000C4B2012C98DB70BD041F002010B5024812
-:10A9B000FAF75BFF10BD0000E825002010B5054840
-:10A9C000806840F4805003498860034948688047A4
-:10A9D00010BD0000002004E06C0C002010B50648FB
-:10A9E00000684068007830B1002003490968496870
-:10A9F000087000F043F810BD281F002010B507486C
-:10AA0000006840680078012806D0012003490968E1
-:10AA10004968087000F032F810BD0000281F0020BF
-:10AA200070B513480122134943684FF460409847BA
-:10AA3000104C0125002006E0215CFF2901D00025F3
-:10AA400003E0411CC8B20028F6D000BF25B10020A9
-:10AA50000849087000F012F806480078012805D16E
-:10AA600004480078044909684968087070BD00000E
-:10AA7000940E00202C1F0020281F002010B54FF43A
-:10AA8000604006F029F804480122044983684FF425
-:10AA90006040984710BD0000940E00202C1F00203D
-:10AAA00010B5002210210548FAF7A2FE0448054916
-:10AAB00009684860FFF7B4FF10BD000000040240C1
-:10AAC0002C1F0020281F0020002002490968087060
-:10AAD00070470000281F0020012002490968087003
-:10AAE00070470000281F002010B50E48006840681D
-:10AAF000007828B9002210210B48FAF779FE0FE000
-:10AB0000084800680078012805D101221021064874
-:10AB1000FAF76EFE04E0002210210348FAF768FEFF
-:10AB200010BD0000281F00200004024010B50024C2
-:10AB300009E0322000F0B0F94FF480510348FAF7F1
-:10AB40004DFE601CC4B2142CF3DB10BD00000240AB
-:10AB500010B54FF480510248FAF740FE10BD0000D6
-:10AB60000000024010B500224FF480710A48FAF745
-:10AB70003FFE00224FF400710748FAF739FE002229
-:10AB80004FF480610448FAF733FE00222021034885
-:10AB9000FAF72EFE10BD0000001002400004024033
-:10ABA000042802DA014A126811547047401F00203D
-:10ABB00010B5224800680078012805D10122010261
-:10ABC0001F48FAF715FE05E000224FF480711C487B
-:10ABD000FAF70EFE194800684078012805D10122D5
-:10ABE00041021748FAF704FE05E000224FF4007115
-:10ABF0001348FAF7FDFD114800688078012805D157
-:10AC0000012281020E48FAF7F3FD05E000224FF41D
-:10AC100080610B48FAF7ECFD08480068C07801280D
-:10AC200005D1012220210748FAF7E2FD04E00022C5
-:10AC300020210448FAF7DCFD10BD0000401F002071
-:10AC4000001002400004024070B504460D466068E2
-:10AC500045606068FCF7FAF870BD70B504460E46B2
-:10AC600015460020A074A08BA84200DAA58B2A46C6
-:10AC700031466069F9F7D7FA32232A46616960687C
-:10AC8000FCF7D0FB70BD10B5044660680068C06872
-:10AC900040F0100061680968C860E28BA1696068D3
-:10ACA000FBF718FE10BD70B504466068FBF78AFE1E
-:10ACB000E08BE16809684968401A86B206B970BD40
-:10ACC000002506E0A2695119206805F0D8FD681C2E
-:10ACD00085B2B542F6DB204600F040F8E28BA16970
-:10ACE0006068FBF7F7FD00BFE9E7000070B50446B8
-:10ACF000A08C618C884225DA2068808920842046D7
-:10AD000000F032F8208CE18B88421BDC208CC8B12B
-:10AD1000208C802803D9206805F065FD12E000250D
-:10AD200006E0094A5119206805F065FD681C85B2E6
-:10AD3000208CA842F5DCE06C20B1218C2246024830
-:10AD4000E36C984770BD00004C34002090F826203A
-:10AD5000012A02D1428C0A4442847047012180F8C2
-:10AD60002610002141847047002180F8261041847C
-:10AD700070472DE9F04104460F461646204600F084
-:10AD800023F8A08B96FBF0F01FFA80F8002507E06F
-:10AD9000A28B02FB05712046FFF75FFF681C85B29E
-:10ADA0004545F5DBA08B00FB156086B236B1A08B64
-:10ADB00000FB057132462046FFF74FFF204600F0AA
-:10ADC00039F8BDE8F081000010B50446114884420E
-:10ADD00005D1012211461048FAF70AFD19E00F4883
-:10ADE000844205D1012202210B48FAF701FD10E04F
-:10ADF0000B48844205D1012204210748FAF7F8FCE8
-:10AE000007E00848844204D1012280210648FAF76D
-:10AE1000EFFC10BDEC0D002000040240440D0020AA
-:10AE2000980D0020400E0020001002400121817486
-:10AE30007047000010B504461148844205D1002235
-:10AE400001211048FAF7D4FC19E00F48844205D1DB
-:10AE5000002202210B48FAF7CBFC10E00B48844299
-:10AE600005D1002204210748FAF7C2FC07E0084890
-:10AE7000844204D1002280210648FAF7B9FC10BDB3
-:10AE8000EC0D002000040240440D0020980D00202D
-:10AE9000400E00200010024010B504462046FAF78C
-:10AEA00087FB10BD38B504468DF8000069460320C5
-:10AEB000ABBE204638BD00000B4A128802F5FA628C
-:10AEC00091B20A0A02704170074A92788270064A6B
-:10AED000D278C270044A12790271034A52794271DF
-:10AEE000014A927982717047A80E002002480068DA
-:10AEF00000210160818070477C1F002010B5FFF7A2
-:10AF0000F5FF0449D1F85C0B80470349486B804743
-:10AF100010BD0000A8000020280C00202DE9F84FEB
-:10AF200004460D469046052D01DABDE8F88F2078DD
-:10AF3000AA2802D16078552800D0F6E7681E215C67
-:10AF4000A81E205C41EA002BA81E81B2204603F017
-:10AF5000E0FF0746381240EA072087B25F4500D07D
-:10AF6000E3E7A678032E02D0102E00D0DDE794F898
-:10AF7000039094F804A0601D00902048C0F8008061
-:10AF8000A9F11000092836D2DFE800F0050B1117EF
-:10AF90001D23292F300051463046009A02F096FEBC
-:10AFA00029E051463046009A00F02AF823E0514645
-:10AFB0003046009A00F020FF1DE051463046009ACE
-:10AFC00002F01AFE17E051463046009A02F08CFA61
-:10AFD00011E051463046009A03F0CEFB0BE051469B
-:10AFE0003046009A01F06AFC05E004E05146304624
-:10AFF000009A03F07DFD00BF00BF96E7641F0020AC
-:10B0000007B5A0B000201F904FF48051FE48F9F71B
-:10B0100023F9002015901D901E9042E01E9800EB31
-:10B02000400101EBC001F94810F82100012800D0CF
-:10B0300033E01E9800EB400101EBC001F34800EB48
-:10B04000810090F82A0000B127E0002019901FE04D
-:10B050001E9800EB400101EBC001EC4800EB8100C1
-:10B060001830199930F821000C9048F203010C981F
-:10B07000084048B11E98C1B20DAA159811541598F0
-:10B08000401CC0B2159006E01998401C80B219907F
-:10B0900019980428DCDB00BF00BF1E98401C80B25A
-:10B0A0001E901E982028B9DB1598C1170C9000EB54
-:10B0B0009170C0F3870017901598C1170C9000EBA2
-:10B0C000917081100C98A0EB8100C0B21690169878
-:10B0D000002803DD1798401CC0B21790CC49179880
-:10B0E00009688978491CCBA2CDE900210290C649A4
-:10B0F0001F9808440346002211460C900B2003F0D1
-:10B1000055FD1F99084480B21F90209803287DD1D7
-:10B110002198012802D0032879D1F3E3159800285B
-:10B1200076D11E90B1E01E981C90BCA0B64900904C
-:10B130001F9808440C901C98401C80B20B90012270
-:10B1400001460B200C9B03F031FD1F99084480B28F
-:10B150001F90B2A0AC4900901F9808440C901C9816
-:10B16000401C80B20B90022201460B200C9B03F086
-:10B170001DFD1F99084480B21F90A8A0A24900900D
-:10B180001F9808440C901C98401C80B20B9003221E
-:10B1900001460B200C9B03F009FD1F99084480B267
-:10B1A0001F909EA0984900901F9808440C901C98EE
-:10B1B000401C80B20B90042201460B200C9B03F034
-:10B1C000F5FC1F99084480B21F900020199055E0AB
-:10B1D00092A08D4900901F9808440C90199800EB9C
-:10B1E0004000401D80B20B901C98401C80B20A9019
-:10B1F00001460B20DDE90B2303F0D8FC1F9908441E
-:10B2000080B21F9085A08049009002E0FEE3FEE33B
-:10B2100040E01F9808440C90199800EB4000801DF6
-:10B2200080B20B901C98401C80B20A9001460B2003
-:10B23000DDE90B2303F0BAFC1F99084480B21F908C
-:10B2400076A0714900901F9808440C90199800EB63
-:10B250004000C01D80B20B901C98401C80B20A9028
-:10B2600001460B20DDE90B2303F0A0FC1F990844E5
-:10B2700080B21F901998401C80B219901998042828
-:10B28000A6DB1E98401C80B21E901E980428FFF674
-:10B290004AAFF3E35E48006881781798401E814208
-:10B2A0007ED1169800287BDD00201D902BE25848A7
-:10B2B000006880781D9901EB800080B218900DA97C
-:10B2C0001898085C1A901D981C9000201B901A98E2
-:10B2D00000EB400101EBC0014C4800EB81000E3057
-:10B2E0004FA1CDE9001048491F9808440B901B98C6
-:10B2F000401C0A901C98401C80B2099001460B200B
-:10B30000DDE90A2303F052FC1F99084480B21F9024
-:10B3100001201B901A9800EB400101EBC0013B4853
-:10B3200000EB8100C0783FA1CDE9001036491F989D
-:10B3300008440B901B98401C0A901C98401C80B23B
-:10B34000099001460B20DDE90A2303F02FFC1F9929
-:10B35000084480B21F9002201B901A9800EB400115
-:10B3600001EBC001294800EB8100001D2CA1CDE9B3
-:10B37000001025491F9808440B901B98401C0A9008
-:10B380001C98401C80B2099001460B20DDE90A237D
-:10B3900003F00CFC1F99084480B21F90032000E0CA
-:10B3A000B7E11B9000200C90199016E01A9800EB62
-:10B3B000400101EBC001154800EB810018301999DC
-:10B3C00030F8210000F4004018B14FF400400C9018
-:10B3D00006E01998401C80B2199019980428E5DB02
-:10B3E00000BF0C9800F4004078B30FA0064900900D
-:10B3F0001F9808440B901B98401C80B20A901C9820
-:10B40000401C80B2099015E0CC3400206C0600206E
-:10B410007C1F002025642F25640000000000000030
-:10B420002573000025640000CDA8D1B6D2ECB3A3EB
-:10B430000000000001460B20DDE90A2303F0B6FB03
-:10B440001F99084480B21F9018E0FFE7FBA0FE4957
-:10B4500000901F9808440B901B98401C80B20A90E3
-:10B460001C98401C80B2099001460B20DDE90A239C
-:10B4700003F09CFB1F99084480B21F900020199094
-:10B4800039E11A9800EB400101EBC001EF4800EBF5
-:10B4900081001830199930F821000B901A9800EBB0
-:10B4A000400101EBC001E94800EB81001830199917
-:10B4B00000EB810040880A90199800EB4000001DC5
-:10B4C00080B21B900C9800F40040C0B1E0A0DE49AF
-:10B4D00000901F98084409901B98401C80B2089067
-:10B4E0001C98401C80B2079001460B20DDE9082320
-:10B4F00003F05CFB1F99084480B21F9034E00B9866
-:10B5000000F00100C0B1D3A0CF4900901F980844BB
-:10B5100009901B98401C80B208901C98401C80B277
-:10B52000079001460B20DDE9082303F03FFB1F993C
-:10B53000084480B21F9017E0C1A0C34900901F9833
-:10B54000084409901B98401C80B208901C98401C2D
-:10B5500080B2079001460B20DDE9082303F026FBAB
-:10B560001F99084480B21F90199800EB4000401DBD
-:10B5700080B21B900C9800F40040C0B1B4A0B24956
-:10B5800000901F98084409901B98401C80B20890B6
-:10B590001C98401C80B2079001460B20DDE908236F
-:10B5A00003F004FB1F99084480B21F9034E00B980D
-:10B5B00000F00200C0B1A9A0A34900901F98084460
-:10B5C00009901B98401C80B208901C98401C80B2C7
-:10B5D000079001460B20DDE9082303F0E7FA1F99E5
-:10B5E000084480B21F9017E095A0974900901F98DB
-:10B5F000084409901B98401C80B208901C98401C7D
-:10B6000080B2079001460B20DDE9082303F0CEFA53
-:10B610001F99084480B21F90199800EB4000801DCC
-:10B6200080B21B900C9800F40040C0B188A08649FD
-:10B6300000901F98084409901B98401C80B2089005
-:10B640001C98401C80B2079001460B20DDE90823BE
-:10B6500003F0ACFA1F99084480B21F9047E00B98A2
-:10B6600000F0010058B30A98F8F76EFF9FED7D0BCC
-:10B6700053EC102BCDE906019DED060B51EC100BA0
-:10B68000F8F7F3FECDE90801CDE9020177A06E4994
-:10B6900000901F98084407901B98401C80B20690A9
-:10B6A0001C98401C80B2059001460B20DDE9062362
-:10B6B00003F07CFA1F99084480B21F9017E06DA038
-:10B6C000614900901F98084409901B98401C80B263
-:10B6D00008901C98401C80B2079001460B20DDE9C1
-:10B6E000082303F063FA1F99084480B21F90199849
-:10B6F000401C80B2199019980228FFF6C2AE1D981E
-:10B70000401C80B21D9016991D988842FFF6CFAD5F
-:10B710004CE200201D9045E25748006880781D9952
-:10B7200001EB800080B218900DA91898085C1A905F
-:10B730001D981C9000201B901A9800EB400101EB13
-:10B74000C001424800EB81000E30AFF22C31CDE950
-:10B7500000103D491F9808440B901B98401C0A900C
-:10B760001C98401C80B2099001460B20DDE90A2399
-:10B7700003F01CFA1F99084480B21F9001201B900F
-:10B780001A9800EB400101EBC001304800EB81004A
-:10B79000C078AFF27031CDE900102B491F980844F2
-:10B7A0000B901B98401C0A901C98401C80B209907A
-:10B7B00001460B20DDE90A2303F0F8F91F9908443C
-:10B7C00080B21F9002201B901A9800EB400101EB01
-:10B7D000C0011E4800EB8100001DAFF2BC31CDE975
-:10B7E000001019491F9808440B901B98401C0A90A0
-:10B7F0001C98401C80B2099001460B20DDE90A2309
-:10B8000003F0D4F91F99084480B21F9003201B90C5
-:10B8100000200C90199037E01A9800EB400101EBE2
-:10B82000C0010A4800EB81001830199930F8210056
-:10B8300000F4004020B34FF400401FE0CDA8D1B683
-:10B84000D5FDB3A300000000CC3400206C0600201E
-:10B850002D000000C2A9D2BA00000000B6CFB4F893
-:10B86000000000000000000000005940252E326654
-:10B8700000000000300000007C1F00200C9006E05B
-:10B880001998401C80B2199019980428C4DB00BF95
-:10B890000C9800F40040C8B1AFF27440FE4900902B
-:10B8A0001F9808440B901B98401C80B20A901C986B
-:10B8B000401C80B2099001460B20DDE90A2303F009
-:10B8C00075F91F99084480B21F9018E0AFF29400F8
-:10B8D000F14900901F9808440B901B98401C80B2BF
-:10B8E0000A901C98401C80B2099001460B20DDE9AB
-:10B8F0000A2303F05BF91F99084480B21F900020CF
-:10B90000199047E112E21A9800EB400101EBC001E7
-:10B91000E24800EB81001830199930F821000B90B3
-:10B920001A9800EB400101EBC001DC4800EB8100FC
-:10B930001830199900EB810040880A90199800EBA3
-:10B940004000001D80B21B900C9800F40040C8B16C
-:10B95000AFF20410D04900901F98084409901B983A
-:10B96000401C80B208901C98401C80B20790014691
-:10B970000B20DDE9082303F019F91F99084480B270
-:10B980001F9036E00B9800F00100C8B1AFF23C10F8
-:10B99000C14900901F98084409901B98401C80B230
-:10B9A00008901C98401C80B2079001460B20DDE9EE
-:10B9B000082303F0FBF81F99084480B21F9018E099
-:10B9C000AFF28410B44900901F98084409901B9866
-:10B9D000401C80B208901C98401C80B20790014621
-:10B9E0000B20DDE9082303F0E1F81F99084480B239
-:10B9F0001F90199800EB4000401D80B21B900C98DE
-:10BA000000F40040E0B1AFF2B81001E0C5E1B7E1E9
-:10BA1000A14900901F98084409901B98401C80B2CF
-:10BA200008901C98401C80B2079001460B20DDE96D
-:10BA3000082303F0BBF81F99084480B21F9037E039
-:10BA40000B9800F00200D0B1AFF2F01092490090D4
-:10BA50001F98084409901B98401C80B208901C98BD
-:10BA6000401C80B2079001460B20DDE9082303F05B
-:10BA70009DF81F99084480B21F9019E055E1AFF27C
-:10BA80004020854900901F98084409901B98401C4D
-:10BA900080B208901C98401C80B2079001460B2091
-:10BAA000DDE9082303F082F81F99084480B21F9053
-:10BAB000199800EB4000801D80B21B900C9800F498
-:10BAC0000040C8B1AFF27820734900901F98084435
-:10BAD00009901B98401C80B208901C98401C80B2B2
-:10BAE000079001460B20DDE9082303F05FF81F995A
-:10BAF000084480B21F9049E00B9800F0010060B349
-:10BB00000A98F8F721FD1FEDA90B53EC102BCDE996
-:10BB100006019DED060B51EC100BF8F7A6FCCDE9E4
-:10BB20000801CDE90201AFF2BC205B4900901F98EB
-:10BB3000084407901B98401C80B206901C98401C3B
-:10BB400080B2059001460B20DDE9062303F02EF8B4
-:10BB50001F99084480B21F9018E0AFF2E8204E49C8
-:10BB600000901F98084409901B98401C80B20890D0
-:10BB70001C98401C80B2079001460B20DDE9082389
-:10BB800003F014F81F99084480B21F901998401CC4
-:10BB900080B2199019980228FFF6B5AE1D98401C86
-:10BBA00080B21D901D980428FFF6B6ADB9E01D982F
-:10BBB0001C90AFF27030384900901F9808440C90E8
-:10BBC0001C98401C80B20B90012201460B200C9B5C
-:10BBD00002F0ECFF1F99084480B21F90AFF29C3036
-:10BBE0002D4900901F9808440C901C98401C80B26E
-:10BBF0000B90022201460B200C9B02F0D7FF1F99ED
-:10BC0000084480B21F90AFF2C430234900901F98BF
-:10BC100008440C901C98401C80B20B9003220146F3
-:10BC20000B200C9B02F0C2FF1F99084480B21F90AA
-:10BC3000AFF2F030184900901F9808440C901C98FF
-:10BC4000401C80B20B90042201460B200C9B02F09A
-:10BC5000ADFF1F99084480B21F900020199059E051
-:10BC6000AFF220400C4900901F9808440C9019989E
-:10BC700000EB4000401D80B20B901C98401C80B22D
-:10BC80000A9001460B20DDE90B2302F08FFF1F997C
-:10BC9000084480B21F9003E0CC3400206C060020E2
-:10BCA000AFF26040494900901F9808440C901998E1
-:10BCB00000EB4000801D80B20B901C98401C80B2AD
-:10BCC0000A9001460B20DDE90B2302F06FFF1F995C
-:10BCD000084480B21F90AFF294403C4900901F98F6
-:10BCE00008440C90199800EB4000C01D80B20B90E6
-:10BCF0001C98401C80B20A9001460B20DDE90B2302
-:10BD000002F054FF1F99084480B21F901998401CFC
-:10BD100080B2199019980428A2DB1D98401C80B2AB
-:10BD20001D901D980428FFF642AF2BE02298007862
-:10BD3000012813D11798401E25490968897888423F
-:10BD400004DC002022490968887018E02048006857
-:10BD50008078401C1E490968887010E01C48006803
-:10BD6000807828B91798401E19490968887006E03C
-:10BD7000174800688078401E15490968887000BF20
-:10BD800023B000BD00BF1148F8F77DFA80B21F90C4
-:10BD90000E481F9900F01EF815E02098102812D1C7
-:10BDA0002198012802D0022802D100E001E000E041
-:10BDB000E6E700BF0548F8F766FA80B21F9003482F
-:10BDC0001F9900F007F800BFDAE70000CC3400202C
-:10BDD0007C1F002070B504460D460648006838B147
-:10BDE000044800682A462146C36B02480068984709
-:10BDF00070BD0000641F002007B59CB000201A90A1
-:10BE000013904FF48051FA48F8F726FAF948006881
-:10BE100040781090F84801781098814201DC1FB0FA
-:10BE200000BD1098C0EBC00101EB0011F248001DED
-:10BE300000EB41000F900F98C078C1170E9000EBF7
-:10BE40009170801013900F98C078C1170E9000EB7E
-:10BE5000917081100E98A0EB8100C0B212901298E0
-:10BE6000002803DD1398401CC0B21390E1491398D9
-:10BE70000968C978491CE1A2CDE900210290DC499A
-:10BE80001A9808440346002211460E900C2002F036
-:10BE90008DFE1A99084480B21A901C98032877D115
-:10BEA0001D98012802D0032873D1FDE31E98007865
-:10BEB0000E900E98012802DB0E98042800DDAEE7F4
-:10BEC0000E98401ECB490968097800EB8100C0B28A
-:10BED0001090C94801781098814200DC9FE7C5485E
-:10BEE000006841781098814203D00020C149096858
-:10BEF000C870C0491098096848701098C0EBC0011C
-:10BF000001EB0011BC48001D00EB41000F900F98A1
-:10BF1000C078C1170C9000EB9170801013900F98AF
-:10BF2000C078C1170C9000EB917081100C98A0EBB9
-:10BF30008100C0B212901298002803DD1398401CB3
-:10BF4000C0B21390139808B901201390A948006853
-:10BF5000C0788006000E0D90A6480068C17813983E
-:10BF6000401E814204D11298002801DD129800E0A1
-:10BF70000420119000201990E9E219990D980844C5
-:10BF800080B214900F98C1781498814202DCE3E2E9
-:10BF9000EDE3E0E30F980E301499405C1890199887
-:10BFA000169000201590189800EB400101EBC0019D
-:10BFB000944800EB8100C07893A1CDE900108C4932
-:10BFC0001A9808440B901598401C0A901698401C2B
-:10BFD00080B2099001460C20DDE90A2302F0E6FD5B
-:10BFE0001A99084480B21A9001201590189800EB15
-:10BFF000400101EBC001834800EB8100001D84A1DA
-:10C00000CDE900107A491A9808440B901598401C05
-:10C010000A901698401C80B2099001460C20DDE978
-:10C020000A2302F0C3FD1A99084480B21A90022034
-:10C03000159000200C90179015E0189800EB400127
-:10C0400001EBC0016F4800EB81001830179930F800
-:10C05000210000F4004010B101200C9006E0179878
-:10C06000401C80B2179017980428E6DB00BF189890
-:10C0700000EB400101EBC001624800EB810090F849
-:10C080002A0098BB0C98C0B162A0594900901A9838
-:10C0900008440B901598401C80B20A901698401CDA
-:10C0A00080B2099001460C20DDE90A2302F07EFDF2
-:10C0B0001A99084480B21A9031E059A04C49009076
-:10C0C0001A9808440B901598401C80B20A90169854
-:10C0D000401C80B2099001460C20DDE90A2302F0E1
-:10C0E00065FD1A99084480B21A9018E0FFE74DA048
-:10C0F0003F4900901A9808440B901598401C80B254
-:10C100000A901698401C80B2099001460C20DDE987
-:10C110000A2302F04BFD1A99084480B21A900020BD
-:10C120001790CDE1189800EB400101EBC0013548B4
-:10C1300000EB81001830179930F821000B90189807
-:10C1400000EB400101EBC0012E4800EB81001830EC
-:10C15000179900EB810040880A90179800EB400087
-:10C16000C01C80B21590189800EB400101EBC00193
-:10C17000244800EB810090F82A00B8BB0C98C0B1AD
-:10C180002AA01B4900901A98084409901598401C51
-:10C1900080B208901698401C80B2079001460C208F
-:10C1A000DDE9082302F002FD1A99084480B21A90D2
-:10C1B00075E00B9800F00100C8B11DA00C4900907B
-:10C1C0001A98084409901598401C80B20890169857
-:10C1D000401C80B2079001460C20DDE9082302F0E4
-:10C1E000E5FC1A99084480B21A9058E03EE023E03A
-:10C1F000CC3400207C1F0020A800002025642F25BF
-:10C20000640000006C06002049443A2564000000E8
-:10C2100025730000CDA8D1B6D2ECB3A30000000076
-:10C22000CDA8D1B6D5FDB3A3000000002D000000BD
-:10C23000C2A9D2BA00000000AFF21800FE49009077
-:10C240001A98084409901598401C80B208901698D6
-:10C25000401C80B2079001460C20DDE9082302F063
-:10C26000A5FC1A99084480B21A9018E0AFF24C006D
-:10C27000F14900901A98084409901598401C80B222
-:10C2800008901698401C80B2079001460C20DDE90A
-:10C29000082302F08BFC1A99084480B21A90179870
-:10C2A00000EB4000001D80B21590189800EB400193
-:10C2B00001EBC001E14800EB810090F82A00C0BB0F
-:10C2C0000C98C8B1AFF29C00DB4900901A98084462
-:10C2D00009901598401C80B208901698401C80B2B6
-:10C2E000079001460C20DDE9082302F05FFC1A9953
-:10C2F000084480B21A9050E00B9800F00200C8B1D8
-:10C30000CFA0CD4900901A98084409901598401C78
-:10C3100080B208901698401C80B2079001460C200D
-:10C32000DDE9082302F042FC1A99084480B21A9011
-:10C3300033E019E0AFF21410BF4900901A98084496
-:10C3400009901598401C80B208901698401C80B245
-:10C35000079001460C20DDE9082302F027FC1A991A
-:10C36000084480B21A9018E0AFF24810B249009029
-:10C370001A98084409901598401C80B208901698A5
-:10C38000401C80B2079001460C20DDE9082302F032
-:10C390000DFC1A99084480B21A90179800EB4000DF
-:10C3A000401D80B21590189800EB400101EBC001D0
-:10C3B000A24800EB810090F82A00002864D10C9874
-:10C3C000C8B1AFF298109C4900901A98084409909F
-:10C3D0001598401C80B208901698401C80B20790B7
-:10C3E00001460C20DDE9082302F0E0FB1A9908441D
-:10C3F00080B21A9060E00B9800F0010058B30A98E0
-:10C40000F8F7A2F89FED900B53EC102BCDE9060145
-:10C410009DED060B51EC100BF8F727F8CDE908015C
-:10C42000CDE902018AA0844900901A980844079037
-:10C430001598401C80B206901698401C80B205905A
-:10C4400001460C20DDE9062302F0B0FB1A990844EE
-:10C4500080B21A9030E080A0774900901A98084482
-:10C4600009901598401C80B208901698401C80B224
-:10C47000079001460C20DDE9082302F097FB1A998A
-:10C48000084480B21A9017E073A06B4900901A9884
-:10C49000084409901598401C80B208901698401CDA
-:10C4A00080B2079001460C20DDE9082302F07EFBF4
-:10C4B0001A99084480B21A901798401C80B21790BD
-:10C4C00017980228FFF62EAE0F201590189800EB53
-:10C4D000400101EBC001594800EB810090F82A00AF
-:10C4E000012818D15DA0544900901A9808440B9077
-:10C4F0001598401C80B20A901698401C80B2099092
-:10C5000001460C20DDE90A2302F050FB1A99084489
-:10C5100080B21A9017E053A0474900901A98084437
-:10C520000B901598401C80B20A901698401C80B25F
-:10C53000099001460C20DDE90A2302F037FB1A9925
-:10C54000084480B21A901998401C80B21990119931
-:10C5500019988842FFF611AD00BFCCE019981690EB
-:10C5600038A0354900901A9808440C901698401C41
-:10C5700080B20B90012201460C200C9B02F016FBAE
-:10C580001A99084480B21A902EA02B4900901A984C
-:10C5900008440C901698401C80B20B900222014671
-:10C5A0000C200C9B02F002FB1A99084480B21A90EE
-:10C5B00024A0214900901A9808440C901698401C19
-:10C5C00080B20B90032201460C200C9B02F0EEFA85
-:10C5D0001A99084480B21A90002017906FE019A0B1
-:10C5E000154900901A9808440C90179800EB4000E9
-:10C5F000001D80B20B901698401C80B20A90014634
-:10C600000C20DDE90B2302F0D1FA1A99084480B21C
-:10C610001A900CA0084900901A9808440C9017989A
-:10C6200000EB4000401D80B20B901698401C80B279
-:10C630000A9001460C2019E0CC3400206C06002042
-:10C64000B6CFB4F800000000000000000000594020
-:10C65000252E32660000000030000000BDFBD3C371
-:10C66000D6D00000C6F4D3C3D6D00000DDE90B233A
-:10C6700002F09CFA1A99084480B21A90AFF23C007A
-:10C680008B4900901A9808440C90179800EB4000D2
-:10C69000801D80B20B901698401C80B20A90014613
-:10C6A0000C20DDE90B2300E02AE002F07FFA1A9962
-:10C6B000084480B21A901798401C80B217901798BF
-:10C6C00004288CDBAFF28400794900901A98084462
-:10C6D0000C901698401C80B20B90102201460C2042
-:10C6E0000C9B02F063FA1A99084480B21A901998C8
-:10C6F000401C80B2199019980428FFF62FAF2BE048
-:10C700001E980078012813D11398401E69490968C2
-:10C71000C978884204DC002066490968C87018E0BE
-:10C7200064480068C078401C62490968C87010E01D
-:10C7300060480068C07828B91398401E5D490968B0
-:10C74000C87006E05B480068C078401E5949096817
-:10C75000C870FFF764BBFCE700BF5548F7F793FDCF
-:10C7600080B21A9052481A99FFF734FB9EE01C9849
-:10C77000102878D11D98012876D100200E900D90B8
-:10C780001E98C01C1E9012E00E991E98405C302826
-:10C7900004DB0E991E98405C392800DDD9E70E981D
-:10C7A000401CC0B20E900E98032800DDD1E70E9910
-:10C7B0001E98405CAA28E7D10E9800B9C9E700206E
-:10C7C0000C900CA80E9A1E99F7F72DFD00210CAACB
-:10C7D0000E9811540CA8F7F73BFE0B900B9800280D
-:10C7E00002DB0B98FF2800DDB3E70B98C0B20D9079
-:10C7F0000E98401CC0B20A900E98801CC0B20990DE
-:10C800001E990998085CAA2800D0A2E70A991E98E8
-:10C81000405C08900020079006903DE0069800EBF1
-:10C82000400101EBC001244810F8210001282FD15C
-:10C83000069800EB400101EBC0011F4800EB8100AE
-:10C84000C1780D98814223D1089801280DD101218A
-:10C85000069800EB400202EBC002174800EB820092
-:10C8600080F82A1011E021E01FE0089802280BD17F
-:10C870000021069800EB400202EBC0020E4800EBDC
-:10C88000820080F82A1000E063E70120079006E0AC
-:10C890000698401CC0B2069006982028BEDB00BF58
-:10C8A000079808B101F006FF53E752E700BF50E7D1
-:10C8B000CC3400207C1F00206C06002007B59AB005
-:10C8C000002019901690119010904FF48051FE485E
-:10C8D000F7F7C2FCFD48407815901598C1170990EC
-:10C8E00000EB5170C01013901598C117099000EB20
-:10C8F0005170C1100998A0EBC100C0B212901298FB
-:10C90000002803DD1398401CC0B21390139808B997
-:10C9100001201390EE49139809680979491CEDA28A
-:10C92000CDE900210290E849199808440346002205
-:10C9300011460990102002F039F91999084480B283
-:10C9400019901A9803287DD11B98012804D0022839
-:10C9500079D0032878D17BE20020089009900790D5
-:10C960000690DB48006801791398814203DB0020C0
-:10C97000D749096808711598002866D1189053E0C6
-:10C98000D6A0D14900901998084404901898401CEA
-:10C9900080B20390012201461020049B02F006F9A8
-:10C9A0001999084480B21990CCA0C74900901998F1
-:10C9B000084404901898401C80B20390022201465B
-:10C9C0001020049B02F0F2F81999084480B21990E3
-:10C9D000C2A0BD4900901998084404901898401CC2
-:10C9E00080B20390032201461020049B02F0DEF87F
-:10C9F0001999084480B21990B8A0B34900901998C9
-:10CA0000084404901898401C80B203900422014608
-:10CA10001020049B02F0CAF81999084480B21990BA
-:10CA20001898401C80B2189018980828A8DBA648CF
-:10CA3000F7F729FC80B21990A3481999FFF7CAF9B2
-:10CA40001DB000BD3AE25DE12CE2002018902AE022
-:10CA5000189800EB400101EBC001A14810F821003B
-:10CA600001281CD10698401CC0B206900698401EB2
-:10CA7000C117039000EB5170C0F3C70004909448B5
-:10CA8000006801790498814208D11898C1B208AAB7
-:10CA9000079811540798401CC0B2079000BF18981F
-:10CAA000401C80B218901898202802DA07980828AD
-:10CAB000CEDB079848B98448F7F7E5FB80B21990B8
-:10CAC00081481999FFF786F9BAE7002018909CE091
-:10CAD00008A91898085C0590059800EB400101EB47
-:10CAE000C0017F4800EB81000E307EA1CDE900102F
-:10CAF00075491998084403901898401C80B2029018
-:10CB0000012201461020039B02F050F819990844B5
-:10CB100080B21990059800EB400101EBC00170480C
-:10CB200000EB8100407804900498042819DA6E49DB
-:10CB3000049851F820006BA1CDE9001062491998C2
-:10CB4000084403901898401C80B2029002220146CB
-:10CB50001020039B02F02AF81999084480B219901A
-:10CB600013E062A05849009019980844039018985F
-:10CB7000401C80B20290022201461020039B02F06A
-:10CB800015F81999084480B21990059800EB4001F6
-:10CB900001EBC001524800EB8100C07855A1CDE9FE
-:10CBA000001049491998084403901898401C80B215
-:10CBB0000290032201461020039B01F0F7FF199910
-:10CBC000084480B21990059800EB400101EBC001C8
-:10CBD000434800EB8100001D42A1CDE900103A4915
-:10CBE0001998084403901898401C80B202900422BF
-:10CBF00001461020039B01F0D9FF1999084480B227
-:10CC000019901898401C80B218900799189888427B
-:10CC1000FFF65EAF0798082873DA079818906DE062
-:10CC20002EA0294900901998084404901898401C97
-:10CC300080B20390012201461020049B01F0B6FF50
-:10CC40001999084480B2199024A01F49009019989E
-:10CC5000084404901898401C80B2039002220146B8
-:10CC60001020049B01F0A2FF1999084480B219908A
-:10CC70001AA0154900901998084404901898401C6F
-:10CC800080B20390032201461020049B01F08EFF26
-:10CC90001999084480B2199010A00B490090199876
-:10CCA000084404901898401C80B203900422014666
-:10CCB0001020049B01F07AFF1999084480B2199062
-:10CCC0001898401C80B218E0CC340020A800002046
-:10CCD0007C1F002025642F25640000000000000058
-:10CCE0006C06002025730000441F0020CEB4D6AA95
-:10CCF000000000002564000003E018901898082840
-:10CD00008EDBD0E0002018900CE0189800EB40007B
-:10CD1000FE4911F8201009AA189811541898401CBF
-:10CD200080B2189018980428EFDB002019909DF825
-:10CD30002400F7490890199808440790F5A1089A2B
-:10CD4000FBF710FF1999084480B219900020189041
-:10CD500009E0FF22DDE918100844ED490A5418984B
-:10CD6000401C80B2189018980328F2DB1998C01C58
-:10CD700080B219909DF82500E5490890199808445B
-:10CD80000790E7A1089AFBF7EDFE1999084480B2D5
-:10CD900019900020189009E0FF22DDE918100844DE
-:10CDA000DB490A541898401C80B218901898032840
-:10CDB000F2DB1998C01C80B219909DF82600D44966
-:10CDC0000890199808440790D8A1089AFBF7CAFE62
-:10CDD0001999084480B219900020189009E0FF22A8
-:10CDE000DDE918100844CA490A541898401C80B25A
-:10CDF000189018980328F2DB1998C01C80B219907B
-:10CE00009DF82700C2490890199808440790CAA1C4
-:10CE1000089AFBF7A7FE1999084480B219900020E0
-:10CE2000189009E0FF22DDE918100844B8490A54B7
-:10CE30001898401C80B2189018980328F2DB1998B3
-:10CE4000C01C80B21990B2481999FEF7C3FFF7E5EC
-:10CE50001C980078012813D11398401EB94909681D
-:10CE60000979884204DC0020B6490968087118E095
-:10CE7000B44800680079401CB2490968087110E0A4
-:10CE8000B0480068007928B91398401EAD49096878
-:10CE9000087106E0AB4800680079401EA94909689E
-:10CEA0000871CDE5CCE500BF9948F7F7ECF980B201
-:10CEB000199097481999FEF78DFF07E31A981028E3
-:10CEC000FBD11B98012804D0022878D0032877D101
-:10CED00057E200201690189012E0189800EB4001DD
-:10CEE00001EBC001984810F8210028B901201690E4
-:10CEF0001898C0B2119006E01898401C80B21890A3
-:10CF000018982028E9DB00BF169800B998E50020A2
-:10CF100014901C98109018210AA8F7F79DF900208A
-:10CF2000189045E018991098405CAA283CD11898B0
-:10CF300000B985E5002007900890099007A8189A85
-:10CF40001099F7F770F9002107AA189811547FA1DA
-:10CF500007A8F7F79FF918B900208DF8290019E004
-:10CF60007CA107A8F7F796F918B901208DF82900D8
-:10CF700010E07AA107A8F7F78DF918B902208DF80B
-:10CF8000290007E077A107A8F7F784F910B9032073
-:10CF90008DF829001898401C109908441090149896
-:10CFA000401CC0B2149006E01898401C80B2189043
-:10CFB00018980A28B6DB00BF002018901FE04FE148
-:10CFC00079E218991098405CAA2814D10DF1360026
-:10CFD000189A1099F7F727F900220DF136001899E1
-:10CFE00042541898401C1099084410901498401C02
-:10CFF000C0B2149006E01898401C80B2189018989F
-:10D000000A28DEDB00BF0020189031E01899109844
-:10D01000405CAA2828D1189800B911E50020079093
-:10D020000890099007A8189A1099F7F7FCF80021C2
-:10D0300007AA1898115407A8F7F70AFAC0B28DF892
-:10D040002B009DF82B00012803DB9DF82B00FF2807
-:10D0500000DDF5E41898401C1099084410901498CD
-:10D06000401CC0B2149006E01898401C80B2189082
-:10D0700018980A28CADB00BF0020189016E01899FB
-:10D080001098405CAA280DD10BA8189A1099F7F7B0
-:10D09000CAF800220BA8189942541498401CC0B238
-:10D0A000149006E01898401C80B2189018980A282E
-:10D0B000E5DB00BF1498042873D1002009906DE0CF
-:10D0C000099800EB400101EBC0011F4800EB810013
-:10D0D000C1789DF82B0081425CD101208DF8280099
-:10D0E0009DF8290000EB4001084810F821008DF858
-:10D0F0002A000021099800EB400202EBC00212480E
-:10D1000000EB820080F82A1009982FE0280C0020FC
-:10D11000CC3400206362302E76616C3D25640000C3
-:10D120006362312E76616C3D256400006362322EAD
-:10D1300076616C3D256400006362332E76616C3D40
-:10D14000256400007C1F00206C060020434F4D31F9
-:10D1500000000000434F4D3200000000434F4D33AC
-:10D1600000000000434F4D340000000000EB400180
-:10D1700001EBC001D64800EB810018220AA90890F3
-:10D18000F7F751F801F096FAFDF7B8FE1498401C35
-:10D19000C0B214900998401CC0B209900998202888
-:10D1A0008EDB1498042859D101208DF828009DF8B1
-:10D1B000290000EB4000C74911F820008DF82A0033
-:10D1C0000021119800EB400202EBC002C04800EBC6
-:10D1D000820080F82A10119800EB400101EBC00199
-:10D1E000BB4800EB810018220AA90990F7F71BF849
-:10D1F000119800EB400101EBC001B54800EB810044
-:10D20000183010210990F7F727F801F053FAFDF7CD
-:10D2100075FEB1484078C117099000EB5170C010FD
-:10D220001390AD484078C117099000EB5170C110C0
-:10D230000998A0EBC100C0B212901298002803DD3B
-:10D240001398401CC0B21390139808B90120139092
-:10D250001398401EA1490968087100E034E42BE1ED
-:10D260000020089009900790069018902AE01898DE
-:10D2700000EB400101EBC001954810F821000128A6
-:10D280001CD10698401CC0B206900698401EC117DB
-:10D29000039000EB5170C0F3C70004908F48006802
-:10D2A00001790498814208D11898C1B208AA079858
-:10D2B00011540798401CC0B2079000BF1898401C3A
-:10D2C00080B218901898202802DA07980828CEDB38
-:10D2D000079800B9BBE5002005900798189043E037
-:10D2E0001898401EC0B2049004991C98405C012814
-:10D2F00036D108A90498085C0390039817901AE0A7
-:10D300001798401C00EB400101EBC001704800EB96
-:10D3100081000290179800EB400101EBC0016C48BE
-:10D3200000EB8100182201900299F6F77CFF179814
-:10D33000401C80B2179017981F28E1DB182168481D
-:10D34000F6F78AFF0021644880F8181B102100F5C9
-:10D350003360F6F781FF0598401CC0B2059000BF0E
-:10D360001898401E80B2189018980028B8DC0598CC
-:10D37000002804DD01F09EF9FDF7C0FD00E066E540
-:10D380009AE01C9809900020189051E00020049029
-:10D390000AE0099802780498411CC9B2049105A9D1
-:10D3A0000A540998401C099009980078AA2802D0CC
-:10D3B00004980928EDD309980078AA2800D046E5FA
-:10D3C000002105AA049811540998401C099005A849
-:10D3D000F7F73EF803900398B0F5965F02D100206E
-:10D3E00002901DE00398B0F5165F02D10120029073
-:10D3F00016E00398B0F5964F02D1022002900FE09C
-:10D400000398B0F5614F02D10320029008E0039821
-:10D41000B0F5E13F02D10420029001E00420029027
-:10D4200008AA1899029850541898401C80B2189075
-:10D4300018980428AADB0020189034E0189800EB14
-:10D440004000244911F8201008AA1898105C814265
-:10D4500025D008A91898095C00EB40001D4A02F885
-:10D460002010189800EB4000114601EB8000806806
-:10D47000A8B108A91898085C0490189800EB40001F
-:10D48000114601EB80000390189800EB400001EB7F
-:10D49000800080680290DDE9022004999047189886
-:10D4A000401C80B2189018980428C7DB0948806B8C
-:10D4B00004908047CBE4CAE400BF0A48F6F7E3FED5
-:10D4C00080B2199007481999FEF784FC00BFBEE4AA
-:10D4D0006C060020280C0020A80000207C1F0020E3
-:10D4E000C00B0020CC34002007B5A6B0002025904A
-:10D4F000FE48D0F8440B20900F212098B0FBF1F0AB
-:10D50000C0B223902098B0FBF1F201FB12002290F0
-:10D510002298002803DD2398401CC0B223904FF4CA
-:10D520008051F348F6F798FE239808B9012100E0EE
-:10D530002399F04800684079401CEFA2CDE9002013
-:10D540000291EB49259808440346002211460A90AF
-:10D550000E2001F02BFB2599084480B225902698D7
-:10D5600003287DD12798012802D0032879D1D3E25E
-:10D57000E048006840790A900A98C0EB00101F90BC
-:10D580002398401E0A99884205D12298002802DD7E
-:10D590002298219001E00F202190209808B90020C6
-:10D5A0002190002024900BE224991F980144209898
-:10D5B000814207D22098401E249A1F991144401A94
-:10D5C0001E9000E001E2CE48006815A90990099A72
-:10D5D0001E989047002873D000200990BDF86A007B
-:10D5E000B0F5004F01D10120099015A8C5A1CDE9E2
-:10D5F0000010BF492598084407902498401C80B229
-:10D600000690012201460E20079B01F0CFFA2599D2
-:10D61000084480B225909DF85E00BBA1CDE90010C2
-:10D62000B3492598084407902498401C80B206907E
-:10D63000022201460E20079B01F0B8FA2599084402
-:10D6400080B225900998B8B1B0A0A949009025985A
-:10D65000084407902498401C80B20690032201E001
-:10D6600091E283E201460E20079B01F09FFA259983
-:10D67000084480B2259017E09DF87600401CA2A1D6
-:10D68000CDE900109A492598084407902498401C39
-:10D6900080B20690032201460E20079B01F086FA15
-:10D6A0002599084480B2259000208DF82C00BDF803
-:10D6B0006A00012805D196A10BA8F6F7D8FD12E063
-:10D6C000B3E0BDF86A00022804D193A10BA8F6F7D5
-:10D6D000CEFD08E0BDF86A00B0F5004F03D190A17F
-:10D6E0000BA8F6F7C4FD0BA886A1CDE90010804970
-:10D6F0002598084407902498401C80B20690042284
-:10D7000001460E20079B01F051FA2599084480B28A
-:10D7100025900DF15F007BA1CDE90010744925989B
-:10D72000084407902498401C80B2069005220146C8
-:10D730000E20079B01F03AFA2599084480B2259003
-:10D74000BDF86A00012829D1BDF874000390F6F7EE
-:10D75000FBFE9FED760B53EC102BCDE904019DED04
-:10D76000040B51EC100BF6F780FECDE90601CDE974
-:10D77000020170A05E490090259808440590249805
-:10D78000401C80B20490062201460E20059B01F049
-:10D790000DFA2599084480B2259013E05BA0544906
-:10D7A00000902598084407902498401C80B2069069
-:10D7B000062201460E20079B01F0F8F9259908443E
-:10D7C00080B2259015A8407E9DF86C1040EA01209B
-:10D7D000089015A8807F15A9497F15AA127F15AB5F
-:10D7E000DB7ECDE90032CDE9021015A8807E03462C
-:10D7F000079052A110A8089AFBF7B4F910A841A10C
-:10D80000CDE900103A492598084407902498401C17
-:10D8100080B20690072201460E20079B01F0C6F950
-:10D820002599084480B22590C6E03AA0304900907E
-:10D830002598084409902498401C80B20890012241
-:10D8400001460E20099B01F0B1F92599084480B2E8
-:10D85000259030A0264900902598084409902498E6
-:10D86000401C80B20890022201460E20099B01F064
-:10D870009DF92599084480B2259026A01C49009066
-:10D880002598084409902498401C80B208900322EF
-:10D8900001460E20099B01F089F92599084480B2C0
-:10D8A00025901CA0124900902598084409902498BE
-:10D8B000401C80B20890042201460E20099B01F012
-:10D8C00075F92599084480B2259012A00849009066
-:10D8D0002598084409902498401C80B2089005229D
-:10D8E00001460E20099B01F061F937E0A8000020F5
-:10D8F000CC3400207C1F002025642F25640000000C
-:10D900000C0C002025730000256400002D00000091
-:10D91000C2A9D2BA00000000B6CFB4F800000000DF
-:10D92000CDA8D1B6D2ECB3A30000000000000000E7
-:10D9300000005940252E3266000000002530346476
-:10D940002D253032642D2530326420253032643A62
-:10D95000253032643A2530326400000025990844AD
-:10D9600080B22590AFF254009C490090259808445D
-:10D9700009902498401C80B20890062201460E208F
-:10D98000099B01F013F92599084480B22590AFF264
-:10D990007C00924900902598084409902498401CE6
-:10D9A00080B20890072201460E20099B01F0FEF884
-:10D9B0002599084480B225902498401C80B2249078
-:10D9C000219924988842FFF6EFAD00BF96E0AFF2B0
-:10D9D000BC00824900902598084409902498401C76
-:10D9E00080B20890012201460E20099B01F0DEF86A
-:10D9F0002599084480B22590AFF2E800774900905D
-:10DA00002598084409902498401C80B2089002226E
-:10DA100001460E20099B01F0C9F82599084480B2FF
-:10DA20002590AFF210106D49009025980844099098
-:10DA30002498401C80B20890032201460E20099BC6
-:10DA400001F0B4F82599084480B22590AFF23C105B
-:10DA5000624900902598084409902498401C80B29F
-:10DA60000890042201460E20099B01F09FF8259999
-:10DA7000084480B22590AFF2641058490090259870
-:10DA8000084409902498401C80B208900522014661
-:10DA90000E20099B01F08AF82599084480B2259050
-:10DAA000AFF290104D4900902598084409902498B1
-:10DAB000401C80B20890062201460E20099B01F00E
-:10DAC00075F82599084480B22590AFF2B810434903
-:10DAD00000902598084409902498401C80B2089032
-:10DAE000072201460E20099B01F060F825990844A1
-:10DAF00080B225902498401C80B2249024980F284E
-:10DB0000FFF665AF3548F6F7BEFB80B22590334887
-:10DB10002599FEF75FF92BE028980078012813D1AA
-:10DB20002F48006841792398401E814204DB002081
-:10DB30002B490968487118E0294800684079401C61
-:10DB400027490968487110E025480068407928B9DC
-:10DB50002398401E22490968487106E02048006861
-:10DB60004079401E1E490968487101E029B000BD96
-:10DB700000BF1A48F6F787FB80B225901748259911
-:10DB8000FEF728F928E02698102825D127980128A3
-:10DB900002D0022815D113E0124840680A9080474D
-:10DBA00000200F49096848714FF480510B48F6F77F
-:10DBB00053FB0020259009482599FEF70BF901E059
-:10DBC00000E0D3E700BF0548F6F75DFB80B2259083
-:10DBD00002482599FEF7FEF800BFC7E7CC340020C5
-:10DBE0007C1F00200C0C002001480249C8647047CB
-:10DBF0001DAF0008F00C00202DE9F04186B006466C
-:10DC00000F4615464FF00008032E2DD1012F02D0EC
-:10DC1000022F27D127E000F025FD4FF48051264840
-:10DC2000F6F71AFB25480068407A24490968097A02
-:10DC3000224A1268D279214B1B689B79CDE90132C7
-:10DC4000CDE903101EA01C4B0122162100900D20CF
-:10DC500000F0ACFF804641461748FEF7BBF806B01F
-:10DC6000BDE8F08100BFFAE7102E22D1012F02D0CB
-:10DC7000022F1CD11CE0002414E0285D30280ADBB0
-:10DC8000285D392807DC285D3038C1B20B480068B0
-:10DC9000801D015504E0002108480068801D0155E1
-:10DCA000601C84B2042CE8DB00F054FDD7E700BF11
-:10DCB000D5E700BFD3E70000CC3400207C1F002054
-:10DCC00025642564256425640000000007B594B030
-:10DCD000002013904FF48051FE48F6F7BDFAFE483D
-:10DCE0000078C117069000EB917080100E90FA48F2
-:10DCF0000078C117069000EB917081100698A0EB98
-:10DD00008100C0B20D900D98002803DD0E98401CD4
-:10DD1000C0B20E90F1490E9809680978491CF0A22A
-:10DD2000CDE900210290EB491398084403460322F1
-:10DD3000002106900A2000F039FF1399084480B2B0
-:10DD40001390E9488079E8494979E74A1279E64B26
-:10DD5000DB78CDE90032CDE90210E3488078069007
-:10DD6000E148008805900246E0A108A8069BFAF762
-:10DD7000F9FE08A8E5A1CDE90010D649139808449A
-:10DD800003460022114606900A2000F00FFF139967
-:10DD9000084480B21390DE48817D407D41EA002234
-:10DDA000DB48407CDA49097CD94BDB7BCDE9023189
-:10DDB000CDE90402D648807BD6A1CDE90010C54943
-:10DDC0001398084403460122002106900A2000F01F
-:10DDD000EDFE1399084480B21390D2484068007851
-:10DDE000012801D10B2000E00D200790B9491398BC
-:10DDF00008440690CCA1079AFAF7B4FE1399084498
-:10DE000080B213900020069009E0FF220699139833
-:10DE10000844B0490A540698401CC0B206900698BF
-:10DE20000328F2DB1398C01C80B21390C148B7A13D
-:10DE3000CDE90010A74913980844034602220021A7
-:10DE400006900A2000F0B2FE1399084480B21390A5
-:10DE5000149803287ED11598012802D003287AD17E
-:10DE600023E39D48007860BB0020129025E000204D
-:10DE700010901BE0B0A097490090139808440690BA
-:10DE80001098401C80B205901298401C80B20490FB
-:10DE900001460A20DDE9052300F088FE13990844B5
-:10DEA00080B213901098401C80B2109010980528F2
-:10DEB000E0DB1298401C80B2129012980428D6DB46
-:10DEC0001FE38648006801780E98401E81427DD18C
-:10DED0000D9800287ADD0020129073E17F480068D9
-:10DEE0000078129901EB800080B20F901298119087
-:10DEF000002010900F98C0EBC00101EB0011764894
-:10DF0000001D00EB4100001D80A1CDE9001071490A
-:10DF10001398084406901098401C05901198401CD6
-:10DF200080B2049001460A20DDE9052300F03EFEA0
-:10DF30001399084480B21390012010900F98C0EB01
-:10DF4000C00101EB00116448001D00EB4100C078E6
-:10DF500073A101E0E0E2D2E2CDE900105D4913983F
-:10DF6000084406901098401C05901198401C80B2FF
-:10DF7000049001460A20DDE9052300F017FE1399FD
-:10DF8000084480B21390022010900F98C0EBC0019B
-:10DF900001EB00115048001D10F81100E0B967A016
-:10DFA0005AA1CDE900104B491398084406901098E7
-:10DFB000401C80B205901198401C80B2049001462C
-:10DFC0000A20DDE9052300F0F1FD00E02DE11399C1
-:10DFD000084480B2139021E00F98C0EBC00101EB20
-:10DFE00000113D48001D10F811004DA1CDE90010B1
-:10DFF00038491398084406901098401C80B2059048
-:10E000001198401C80B2049001460A20DDE90523E6
-:10E0100000F0CCFD1399084480B2139003201090B7
-:10E020000F98C0EBC00101EB00112B48001D00EB65
-:10E0300041004078D0B941A034A1CDE90010254974
-:10E040001398084406901098401C80B205901198CF
-:10E05000401C80B2049001460A20DDE9052300F04F
-:10E06000A5FD1399084480B2139022E00F98C0EBED
-:10E07000C00101EB00111848001D00EB4100407881
-:10E0800027A1CDE900101349139808440690109871
-:10E09000401C80B205901198401C80B2049001464B
-:10E0A0000A20DDE9052300F081FD1399084480B2C0
-:10E0B0001390042010900F98C0EBC00101EB0011E9
-:10E0C0000548001D00EB4100807810B91BA00FA18E
-:10E0D00038E050E0CC340020A80000207C1F002055
-:10E0E00025642F2564000000A80E0020323025642E
-:10E0F0002D253032642D2530326420253032643AAB
-:10E10000253032643A253032640000002573000067
-:10E11000C40E002025642E25642E25642E25643A25
-:10E1200025640000081F002070342E7069633D25AF
-:10E130006400000014000020000000004E6F726DAB
-:10E14000616C0000CDE90010FB491398084406906B
-:10E150001098401C80B205901198401C80B2049029
-:10E1600001460A20DDE9052300F020FD139908444B
-:10E1700080B2139022E00F98C0EBC00101EB0011B8
-:10E18000EE4800EB41008078AFF26C01CDE9001061
-:10E19000E9491398084406901098401C80B20590F5
-:10E1A0001198401C80B2049001460A20DDE9052345
-:10E1B00000F0FCFC1399084480B213901298401CA4
-:10E1C00080B212900D9912988842FFF687AE0D9892
-:10E1D000129026E0002010901CE0AFF2A400D64977
-:10E1E00000901398084406901098401C80B2059047
-:10E1F0001298401C80B2049001460A20DDE90523F4
-:10E2000000F0D4FC1399084480B213901098401C7D
-:10E2100080B2109010980528DFDB1298401C80B265
-:10E22000129012980428D5DB3EE10020129037E1CD
-:10E23000C34800680078129901EB800080B20F900B
-:10E2400012981190002010900F98C0EBC00101EBC4
-:10E250000011BA4800EB4100001DAFF25011CDE9AA
-:10E260000010B5491398084406901098401C05907A
-:10E270001198401C80B2049001460A20DDE9052374
-:10E2800000F094FC1399084480B213900120109080
-:10E290000F98C0EBC00101EB0011A84800EB410052
-:10E2A000C078AFF28411CDE90010A3491398084457
-:10E2B00006901098401C05901198401C80B2049064
-:10E2C00001460A20DDE9052300F070FC139908449B
-:10E2D00080B21390022010900F98C0EBC00101EBA8
-:10E2E0000011964810F81100E0B9AFF2B010AFF28B
-:10E2F000E411CDE900109049139808440690109855
-:10E30000401C80B205901198401C80B204900146D8
-:10E310000A20DDE9052300F049FC1399084480B286
-:10E32000139021E00F98C0EBC00101EB001183486E
-:10E3300010F81100AFF21821CDE900107E491398B2
-:10E34000084406901098401C80B205901198401C1B
-:10E3500080B2049001460A20DDE9052300F026FC86
-:10E360001399084480B21390032010900F98C0EBCB
-:10E37000C00101EB0011714800EB41004078E0B9A9
-:10E38000AFF24820AFF27C21CDE900106A49139822
-:10E39000084406901098401C80B205901198401CCB
-:10E3A00080B2049001460A20DDE9052300F0FEFB5F
-:10E3B0001399084480B2139022E00F98C0EBC0017B
-:10E3C00001EB00115D4800EB41004078AFF2B02155
-:10E3D000CDE9001058491398084406901098401C45
-:10E3E00080B205901198401C80B2049001460A202A
-:10E3F000DDE9052300F0DAFB1399084480B213909D
-:10E40000042010900F98C0EBC00101EB00114B48A5
-:10E4100000EB41008078E0B9AFF2E020AFF21431B8
-:10E42000CDE9001044491398084406901098401C08
-:10E4300080B205901198401C80B2049001460A20D9
-:10E44000DDE9052300F0B2FB1399084480B2139074
-:10E4500022E00F98C0EBC00101EB0011374800EB40
-:10E4600041008078AFF24831CDE90010324913986D
-:10E47000084406901098401C80B205901198401CEA
-:10E4800080B2049001460A20DDE9052300F08EFBEE
-:10E490001399084480B213901298401C80B21290D5
-:10E4A00012980428FFF6C4AE2BE0169800780128D5
-:10E4B00013D10E98401E224909680978884204DC6D
-:10E4C00000201F490968087018E01D48006800789E
-:10E4D000401C1B490968087010E019480068007862
-:10E4E00028B90E98401E16490968087006E01448BD
-:10E4F00000680078401E12490968087000BF17B014
-:10E5000000BD00BF0C48F5F7BEFE80B213900A486C
-:10E510001399FDF75FFC1DE0149810281AD1159887
-:10E52000012816D11698007801280DD10548806978
-:10E53000069080470CE00000CC340020AC000020A6
-:10E540007C1F0020081F00200348C06906908047F8
-:10E5500000BFD4E700BFD2E7081F002030B5ADF5FB
-:10E56000417D2B484FF4407201A943684FF480501D
-:10E5700098470125002017E000EB400101AA12F89E
-:10E580003110FF290FD100EB400102EBC1014978A6
-:10E59000FF2908D100EB400102EBC101C978FF2936
-:10E5A00001D1002502E0401C2028E5DB00BFA5B119
-:10E5B00000240FE004EB440201AB03EBC20104EBC7
-:10E5C000440202EBC403134A02EB83001822F5F75E
-:10E5D0002AFE641C202CEDDB16E0002412E004EB84
-:10E5E000440101EBC4020B4901EB82001821F5F74D
-:10E5F00033FE002104EB440000EBC402054800F8A0
-:10E600002210641C202CEADB0DF5417D30BD00009A
-:10E61000940E00206C0600201FB510480E2269469B
-:10E6200043684FF4704098479DF80000FF2814D0CD
-:10E630009DF8000088B10A480099C0F80E100199B1
-:10E64000416002990160BDF80C00010A044841755F
-:10E65000BDF80C00C1B2024881751FBD940E0020A8
-:10E66000C40E002010B51148042243681048016808
-:10E67000891D002098470E4800688079FF2813D133
-:10E680000B480068C079FF280ED109480068007A5D
-:10E69000FF2809D106480068407AFF2804D10448C1
-:10E6A00000680021C0F8061010BD0000940E002084
-:10E6B0007C1F002030B5ADF5417D00240FE004EB58
-:10E6C000440202EBC403104A02EB830104EB440250
-:10E6D00001AB03EBC2001822F5F7A5FD641C202C4A
-:10E6E000EDDB4FF480556FF30B05284602F0F4F98B
-:10E6F00006484FF4407201A983684FF48050984750
-:10E700000DF5417D30BD00006C060020940E002008
-:10E710001FB50E48D0F80E0000900C4840680190DC
-:10E720000A48006802900948817D407D41EA002046
-:10E73000ADF80C004FF47044204602F0CDF90448C7
-:10E740000E2269468368204698471FBDC40E0020EC
-:10E75000940E002010B50024204602F0BDF90448B4
-:10E760000422836803480168891D0020984710BD72
-:10E77000940E00207C1F00202DE9F74F92B09046A8
-:10E7800000254FF48051BF48F5F766FD1298032825
-:10E790007BD11398012802D0022877D1BCE098F8E9
-:10E7A0000000012852D1B848417C027CC07BB64BA6
-:10E7B0009B7BCDE90130CDE90321B4A00090B148A5
-:10E7C0004319012211460F2000F0F0F9284485B2C8
-:10E7D000AD48C1798079AC4A5279AB4B1B79CDE910
-:10E7E0000132CDE90301A9A00090A64843190222F5
-:10E7F00001210F2000F0DAF9284485B2A248C07840
-:10E80000A1498A784978A04B1B78CDE90131CDE93F
-:10E8100003209EA000909B484319032201210F2052
-:10E8200000F0C4F9284485B29748817D407D41EAD3
-:10E83000002099A1CDE9001092484319042201213A
-:10E840000F2000F0B3F9284485B264E098F8000086
-:10E85000002860D191A095A1CDE900108948431905
-:10E86000012211460F2000F0A1F9284485B290A0A2
-:10E870008EA1CDE9001083484319022201210F2007
-:10E8800000F094F9284485B201E053E045E08CA003
-:10E8900086A1CDE900107B484319032201210F20F6
-:10E8A00000F084F9284485B289A080A1CDE9001048
-:10E8B00074484319042201210F2000F077F92844FD
-:10E8C00085B271491131481E431E821ECDE90001F7
-:10E8D00081A172A0F5F7FAFC6B49C91D481E431EC1
-:10E8E000821ECDE900017CA171A0F5F7EFFC66481E
-:10E8F000C01C411E831EC21ECDE9001076A170A06F
-:10E90000F5F7E4FC1321604841758821817500F515
-:10E910008051086B804703E002E015B0BDE8F08F3E
-:10E9200000BF5848F5F7AFFC85B229465548FDF7BA
-:10E9300051FAA5E012981028FBD11398012802D0B3
-:10E9400002287CD191E000274646002414E0305D87
-:10E95000AA280FD104F0FF094A4631460EA8F5F760
-:10E9600062FC00200EA901F80900601C0644781C16
-:10E97000C7B203E0601C84B2102CE8DB00BF0024A7
-:10E9800014E0305DAA280FD104F0FF0A5246314648
-:10E990000AA8F5F748FC00200AA901F80A00601C43
-:10E9A0000644781CC7B203E0601C84B2102CE8DB7C
-:10E9B00000BF002414E0305DAA280FD104F0FF0B43
-:10E9C0005A46314606A8F5F72EFC002006A901F8A4
-:10E9D0000B00601C0644781CC7B203E0601C84B2C4
-:10E9E000102CE8DB00BF002414E0305DAA280FD112
-:10E9F000E0B20190314602A8019AF5F714FC00211B
-:10EA000002AA01981154601C0644781CC7B203E0A6
-:10EA1000601C84B2102CE8DB00BF042F24D11A4AFA
-:10EA20000E3249460EA800F0CDFA174A121D514683
-:10EA30000AA800F0C7FA144A594606A800E015E0F3
-:10EA400000F0C0FA02A8F5F703FD80B2009000982C
-:10EA5000010A0D4841750098C1B20B488175FFF756
-:10EA600057FE2249086B804701E000E055E700BFF0
-:10EA70000448F5F708FC85B229460248FDF7AAF9D3
-:10EA800000BF4AE7CC340020C40E002025642E25A8
-:10EA9000642E25642E256400256400003139322E51
-:10EAA0003136382E3130302E3130300025730000B1
-:10EAB0003235352E3235352E3235352E30000000C8
-:10EAC0003139322E3136382E35302E3100000000EB
-:10EAD0003530303000000000256868752E256868E4
-:10EAE000752E256868752E2568687500C41E00207F
-:10EAF0002DE9FF5F81468A4617464FF0000BB9F1BA
-:10EB0000100F4FD1BAF1010F4AD1D846002540E08D
-:10EB100000260BE0042E01DBBDE8FF9F404608F114
-:10EB200001083A5C3046761C0DF8002017F8080002
-:10EB3000AA28EFD106B9EFE700200DF806006846D5
-:10EB4000F5F786FC0446052D1ED2DFE805F0030D1F
-:10EB5000111519004FF4FA6094FBF0F100FB11401D
-:10EB600080B2ADF808000FE0E0B28DF80A000BE0CB
-:10EB7000E0B28DF80B0007E0E0B28DF80C0003E086
-:10EB8000E0B28DF80D0000BF00BF08F101086D1C58
-:10EB900000BF052DBCDB0448C16802A8884700E01F
-:10EBA00000BF00BF00BFB7E7A80E00202DE9FE4F51
-:10EBB0000746884691461D464FF480711B48F5F77D
-:10EBC0004BFB0DA802904FF480711848029B0C9AE1
-:10EBD000F9F7DCFF0FFA80FABAF1FF3F02D0BAF57D
-:10EBE000807F07DD0020029011A0F9F7ABFF002025
-:10EBF000BDE8FE8F0D4843463A4611A1CDE900908D
-:10EC00002846F9F7AFFF2846F5F73DFB86B200240A
-:10EC100004E0FF2031196854601C84B2032CF8DB37
-:10EC200000200290F01C80B2E2E70000CC440020FB
-:10EC30004C656E677468205245454F5200000000D5
-:10EC40007425645F25645F25642E7478743D2225E5
-:10EC5000732200002DE9F04F89B005460C4690461E
-:10EC60009946DDF848A024216846F5F7F5FA4248B0
-:10EC70000078A8420EDDC5EBC50000EB05113E484B
-:10EC8000001D00EB4100416800918168019180897D
-:10EC9000ADF80800202C19DA04EB440000EBC401A5
-:10ECA000364800EB8100C0788DF80A0004EB440080
-:10ECB00000EBC401314800EB81004168CDF80B1036
-:10ECC0008168CDF80F108089ADF81300ADF816906B
-:10ECD0008DF82280ADF820A006A8FCF7EDF82649B3
-:10ECE000D1F8480B00F04EF883462349D1F8480B81
-:10ECF00000F050F806462049D1F8481B21B91E49BA
-:10ED0000D1F8501B491E03E01B49D1F8481B491E8E
-:10ED1000084600F03FF80746BE4202D0304601F0F8
-:10ED2000DBFE1748242269468368584698471248F4
-:10ED3000D0F8480B401C1049C1F8480B0846D0F8E1
-:10ED4000481BD0F8500B814203D300210A48C0F879
-:10ED5000481B0948D0F8441BD0F8500B814206D21A
-:10ED60000548D0F8440B401C0349C1F8440B00F09F
-:10ED700095F809B0BDE8F08FA80000206C060020CF
-:10ED8000940E0020014601EBC1004FF4405202EB0B
-:10ED90008000704770B504462046FFF7F3FF054634
-:10EDA000280B000370BD000070B50D4800214164C0
-:10EDB0008164C16401654FF47A71A0F53060C0F8D8
-:10EDC000501B00F06BF8002407E04FF4405000EBBC
-:10EDD0000435284601F080FE641C092CF5D370BD73
-:10EDE000A80B002010B500F001F810BD1FB51148A8
-:10EDF0001022694643685002984703990098884258
-:10EE000009D803990198884205D20B489DE81E0055
-:10EE100044301EC00DE00848002141648164C16493
-:10EE200001654FF47A71A0F53060C0F8501B00F016
-:10EE300035F81FBD940E0020A80B00202DE9F041ED
-:10EE400004460E461348D0F8440BA04202D80020D6
-:10EE5000BDE8F0810F48D0F8441BD0F8500B814238
-:10EE60000BD10C48D0F8480B01190A48D0F8500BC8
-:10EE7000B1FBF0F200FB121500E025462846FFF733
-:10EE800081FF0746044824223146436838469847A4
-:10EE90000120DDE7A8000020940E002010B54FF4FB
-:10EEA000005001F019FE0348102203498368500204
-:10EEB000984710BD940E0020EC0B0020F6F7E8FCFC
-:10EEC000F9F762F8F8F7D0FBF8F75AFBF8F700FD0E
-:10EED000F8F71AFDF8F734FDF8F7B6FCF8F7D6FCAA
-:10EEE000F8F74AFDF8F764FDF8F79AFCFAF7FAFB31
-:10EEF00001E0FAF7DDFEFCE770B503460C4603E0DF
-:10EF000014F8015B03F8015B151EA2F10102F7D1B1
-:10EF100070BD30B502460B464FF6FF70002112E07F
-:10EF2000555C684000240AE000F0010525B140105E
-:10EF30004AF20105684000E04010651CACB2082CA4
-:10EF4000F2DB4D1CA9B29942EADB30BD2DE9FC4150
-:10EF500006460C46154698468DF8006003208DF84D
-:10EF60000100200A8DF80200E0B28DF80300280AA3
-:10EF70008DF80400E8B28DF8050006216846FFF719
-:10EF8000C8FF0746F8B28DF80600380A8DF807006A
-:10EF900008216846C047BDE8FC81000010B501F0BB
-:10EFA00045FE04460548007820B9012C02D10449E9
-:10EFB000086B80470148047010BD0000C00E00209F
-:10EFC000C41E0020F0B503460C4600200025002199
-:10EFD00017E01E5C2E2E05D12E466F1CFDB29155FA
-:10EFE00000210CE01E5C302E09DB1E5C392E06DC95
-:10EFF0001E5C303E01EB810706EB4706F1B2461C72
-:10F00000F0B2A042E5DB5155F0BD000070B50446FA
-:10F010000D460449086809682A46CB6B2146984783
-:10F0200070BD0000180C002070B504460D46044960
-:10F03000486849682A46CB6B2146984770BD000056
-:10F04000180C002070B504460D460449886889688C
-:10F050002A46CB6B2146984770BD0000180C002053
-:10F0600070B504460D460449C868C9682A46CB6B8A
-:10F070002146984770BD0000180C00200F498842B7
-:10F0800004D10F490F4A1268D16416E00E49884234
-:10F0900004D10B490B4A5268D1640EE00B498842F7
-:10F0A00004D10749074A9268D16406E008498842BA
-:10F0B00003D10349034AD268D1647047801F0020FE
-:10F0C000D5F00008180C002010210020A0220020FC
-:10F0D000302400202DE9F74F88B080468B46002071
-:10F0E000079003900A9810B90BB0BDE8F08F002785
-:10F0F0000FE0924850F827100A98814207D107EB99
-:10F10000C70000EB07108E4901EB00100390781C3C
-:10F1100087B2042FEDDB039800B9E5E70398008878
-:10F1200000EB40010398001D00EB8104207898F863
-:10F130000010884205D008F10108ABF101001FFA68
-:10F1400080FB98F80000069098F80190ABF1010060
-:10F1500018F80010401E18F8000041EA0020059041
-:10F1600021780698814200D0BEE7B9F1030F09D09B
-:10F17000B9F1060F06D0B9F1100F03D0B9F1410F64
-:10F1800000D0B1E7ABF1020081B24046FFF7C1FE0B
-:10F1900004900498011241EA002080B20490DDE955
-:10F1A0000410884200D09FE7B9F1410F01D108F166
-:10F1B000060608F103060020E080A06820F4004065
-:10F1C000A060607810B1012800D100E0A3E0A07831
-:10F1D000DFF870C1DCE9003CCDE9013C02222028C7
-:10F1E00000DB98E0002519E04FF0000C00EB400335
-:10F1F00003EBC00E544B03EB8E03183323F825C0EA
-:10F2000000EB400303EBC00E4F4B03EB8E031833B0
-:10F2100003EB8503A3F802C06B1C9DB29542E3DBB0
-:10F22000F37996F806C043EA0C2A00EB400303EB9F
-:10F23000C00E454B03EB8E0383F828A0F37B96F8B2
-:10F240000EC043EA0C2A00EB400303EBC00E3E4B1A
-:10F2500003EB8E0383F829A0002759E03D4601AB5C
-:10F2600033F817104B1CF35C16F801C043EA0C2A64
-:10F27000BAF1010F15D100EB400303EBC00C324B88
-:10F2800003EB8C03183333F8253043F0010C00EB0B
-:10F29000400303EBC00E2C4B03EB8E03183323F813
-:10F2A00025C0CB1CF35C01F1020C16F80CC043EA3C
-:10F2B0000C2ABAF1010F15D100EB400303EBC00C8F
-:10F2C000214B03EB8C03183333F8253043F0020C49
-:10F2D00000EB400303EBC00E1B4B03EB8E03183314
-:10F2E00023F825C04B1DF35C01F1040C16F80CC08B
-:10F2F00043EA0C2A00EB400303EBC00C124B03EB78
-:10F300008C03183303EB8503A3F802A07B1C9FB288
-:10F310009742A3DB00BF00BF079800B1E4E60120DD
-:10F320006070627801219140A0688843A06000204D
-:10F33000A080039800F00AF800BFD5E6180C002062
-:10F34000801F0020700C01086C0600200188491CF9
-:10F35000018001884288914201DB002101807047D1
-:10F360002DE9F041044600250826208800EB4001E5
-:10F37000201D10F82170324629463846D4F88C31C9
-:10F38000FFF7E4FDBDE8F08170B50646308800EB7C
-:10F390004001301D00EB8104708800B970BD2089E8
-:10F3A00000F4004048B9E088401C80B2E0800A28A0
-:10F3B00003DDA06840F40040A060607810B101282F
-:10F3C00005D100E004E03046FFF7CAFF00E000BFCF
-:10F3D00000BF208900F4004000B300251BE04FF47B
-:10F3E0000041A07800EB400202EBC002234800EB92
-:10F3F0008200183020F825100021A07800EB400290
-:10F4000002EBC0021D4800EB8200183000EB8500C3
-:10F410004180681C85B2042DE1DB1DE0002519E068
-:10F42000A07800EB400101EBC001144800EB810023
-:10F43000183030F8250020F40041A07800EB40029D
-:10F4400002EBC0020D4800EB8200183020F82510B6
-:10F45000681C85B2042DE3DBA088401CA080A08836
-:10F46000032809DBA0680043A0600020A0800120E1
-:10F4700060703046FFF76AFF00BF8FE76C06002020
-:10F480002DE9FE4F06468A4693460024707831786F
-:10F4900040EA01200290F078B17840EA0120019022
-:10F4A0007079317940EA01200090019820B9AAF1E1
-:10F4B00006000099884201D0BDE8FE8FAA48C0F836
-:10F4C00000B0B079A9490870F0794870707A317A43
-:10F4D00040EA0120A5494880F07AB17A40EA01204B
-:10F4E000A2498880062422463146A148F4F79BFEB3
-:10F4F0004FF000099D48407806287DD004DC0328A1
-:10F5000007D0042879D105E0102877D04128F9D117
-:10F5100037E000BF9548B0F802800078944908555C
-:10F5200092484178924A601C1154904800794006F4
-:10F53000010EA01C1154002516E0404600F02CF9E5
-:10F540000746390AE01C022202FB0500884A1154D2
-:10F55000201D022202FB0500854A175408F1010014
-:10F560001FFA80F8681C85B280488088A842E4DCD5
-:10F570007F49A01C095CE01C08447D49A1F80008F3
-:10F58000BFE07A48B0F8028000787949085577489A
-:10F590004178774A601C1154744840880112A01CBD
-:10F5A000115472488178E01C1154704880884000E2
-:10F5B000C0F30721201D11546C4800794006010E4C
-:10F5C000601D1154002516E0404600F0E5F807469E
-:10F5D000390AA01D022202FB0500654A1154E01DF4
-:10F5E000022202FB0500624A175408F101001FFACB
-:10F5F00080F8681C85B202E00FE07DE040E05B48E7
-:10F600008088A842E0DC59488188A01D022202FBC4
-:10F6100001005749A1F8000873E05448B0F802808F
-:10F620008068407851498968097840EA012739465D
-:10F63000404601F0C9F88146B9F1000F00D072E0F0
-:10F64000A01D4B49A1F800084848007808554748D4
-:10F650004178474A601C1154444840880112A01C5C
-:10F66000115442488178E01C115440488068017868
-:10F67000201D11543D4880684178601D11543EE0C2
-:10F680003A48B0F80280002519E03848806810F840
-:10F690001570364881686800401C085C40EA0727FE
-:10F6A0003946404601F090F8814608F101001FFA02
-:10F6B00080F8B9F1000F00D035E0681C85B22B4806
-:10F6C0008088A842E1DCA01D2949A1F8000827484C
-:10F6D0000078087025484078487024484088001217
-:10F6E000887022488078C87020488088001208718D
-:10F6F0001E480079487102E04FF0010913E000BF95
-:10F7000000BF1B48B0F80008001B000A1849087128
-:10F71000084690F80008001B48710846B0F8001829
-:10F7200000F028F8C8E6E01C1149A1F800080F48CD
-:10F73000007808700D48407840F080004870084616
-:10F7400080F80290B0F80008001B000A0871084613
-:10F7500090F80008001B48710846B0F8001800F047
-:10F7600009F800BFA8E60000DC250020CC450020F9
-:10F77000D845002070B504460D460548006830B1F4
-:10F7800004482A462146C36B01480068984770BD6B
-:10F79000DC250020C41E0020F0B504460020B4F58E
-:10F7A000987F06D006DC982C05D005DC982C04D276
-:10F7B00004E0B8E372E2B7E336E13AE1A70000BF44
-:10F7C0007F447F68BF440000CC090000CE090000E0
-:10F7D000D0090000D2090000D4090000D6090000B9
-:10F7E000D8090000DA090000DC090000DE09000089
-:10F7F000E0090000E2090000E4090000E609000059
-:10F80000E8090000EA090000EC090000EE09000028
-:10F81000F0090000F2090000F4090000F6090000F8
-:10F82000F8090000FA090000FC090000FE090000C8
-:10F83000000A0000020A0000040A0000060A000094
-:10F84000080A00000A0A00000C0A00000E0A000064
-:10F85000100A0000120A0000140A0000160A000034
-:10F86000180A00001A0A00001C0A00001E0A000004
-:10F87000200A0000220A0000240A0000260A0000D4
-:10F88000280A00002A0A00002C0A00002E0A0000A4
-:10F89000300A0000320A0000340A0000360A000074
-:10F8A000380A00003A0A00003C0A00003E0A000044
-:10F8B000400A0000420A0000440A0000460A000014
-:10F8C000480A00004A0A00004C0A00004E0A0000E4
-:10F8D000500A0000520A0000540A0000560A0000B4
-:10F8E000580A00005A0A00005C0A00005E0A000084
-:10F8F000600A0000620A0000640A0000660A000054
-:10F90000680A00006A0A00006C0A00006E0A000023
-:10F91000700A0000720A0000740A0000760A0000F3
-:10F92000780A00007A0A00007C0A00007E0A0000C3
-:10F93000800A0000820A0000840A0000860A000093
-:10F94000880A00008A0A00008C0A00008E0A000063
-:10F95000900A0000920A0000940A0000960A000033
-:10F96000980A00009A0A00009C0A00009E0A000003
-:10F97000A00A0000A20A0000A40A0000A60A0000D3
-:10F98000A80A0000AA0A0000AC0A0000AE0A0000A3
-:10F99000B00A0000B20A0000B40A0000B60A000073
-:10F9A000B80A0000BA0A0000BC0A0000BE0A000043
-:10F9B000C00A0000C20A0000C40A0000C60A000013
-:10F9C000C80A0000CA0A0000CC0A0000CE0A0000E3
-:10F9D000D00A0000D20A0000D40A0000D60A0000B3
-:10F9E000D80A0000DA0A0000DC0A0000DE0A000083
-:10F9F000E00A0000E20A0000E40A0000E60A000053
-:10FA0000E80A0000EA0A0000EC0A0000EE0A000022
-:10FA1000F00A0000F20A0000F40A0000F60A0000F2
-:10FA2000F80A0000FA0A0000A4F19905972D00D207
-:10FA300000E03EE1AF0000BF7F447F68BF440000AC
-:10FA400086080000880800008A0800008C08000072
-:10FA50008E08000090080000920800009408000042
-:10FA600096080000980800009A0800009C08000012
-:10FA70009E080000A0080000A2080000A4080000E2
-:10FA8000A6080000A8080000AA080000AC080000B2
-:10FA9000AE080000B0080000B2080000B408000082
-:10FAA000B6080000B8080000BA080000BC08000052
-:10FAB000BE080000C0080000C2080000C408000022
-:10FAC000C6080000C8080000CA080000CC080000F2
-:10FAD000CE080000D0080000D2080000D4080000C2
-:10FAE000D6080000D8080000DA080000DC08000092
-:10FAF000DE080000E0080000E2080000E408000062
-:10FB0000E6080000E8080000EA080000EC08000031
-:10FB1000EE080000F0080000F2080000F408000001
-:10FB2000F6080000F8080000FA080000FC080000D1
-:10FB3000FE0800000009000002090000040900009E
-:10FB400006090000080900000A0900000C0900006D
-:10FB50000E0900001009000012090000140900003D
-:10FB600016090000180900001A0900001C0900000D
-:10FB70001E090000200900002209000024090000DD
-:10FB800026090000280900002A0900002C090000AD
-:10FB90002E0900003009000032090000340900007D
-:10FBA00036090000380900003A0900003C0900004D
-:10FBB0003E0900004009000042090000440900001D
-:10FBC00046090000480900004A0900004C090000ED
-:10FBD0004E090000500900005209000054090000BD
-:10FBE00056090000580900005A0900005C0900008D
-:10FBF0005E0900006009000062090000640900005D
-:10FC000066090000680900006A0900006C0900002C
-:10FC10006E090000700900007209000074090000FC
-:10FC200076090000780900007A0900007C090000CC
-:10FC30007E0900008009000082090000840900009C
-:10FC400086090000880900008A0900008C0900006C
-:10FC50008E0900009009000092090000940900003C
-:10FC600096090000980900009A0900009C0900000C
-:10FC70009E090000A0090000A2090000A4090000DC
-:10FC8000A6090000A8090000AA090000AC090000AC
-:10FC9000AE090000B0090000B2090000B4F5E47F2D
-:10FCA00005D005DCA4F23115972D02D202E0FDE368
-:10FCB00034E13AE1AF0000BF7F447F68BF440000F9
-:10FCC00036070000380700003A0700003C07000034
-:10FCD0003E07000040070000420700004407000004
-:10FCE00046070000480700004A0700004C070000D4
-:10FCF0004E070000500700005207000054070000A4
-:10FD000056070000580700005A0700005C07000073
-:10FD10005E07000060070000620700006407000043
-:10FD200066070000680700006A0700006C07000013
-:10FD30006E070000700700007207000074070000E3
-:10FD400076070000780700007A0700007C070000B3
-:10FD50007E07000080070000820700008407000083
-:10FD600086070000880700008A0700008C07000053
-:10FD70008E07000090070000920700009407000023
-:10FD800096070000980700009A0700009C070000F3
-:10FD90009E070000A0070000A2070000A4070000C3
-:10FDA000A6070000A8070000AA070000AC07000093
-:10FDB000AE070000B0070000B2070000B407000063
-:10FDC000B6070000B8070000BA070000BC07000033
-:10FDD000BE070000C0070000C2070000C407000003
-:10FDE000C6070000C8070000CA070000CC070000D3
-:10FDF000CE070000D0070000D2070000D4070000A3
-:10FE0000D6070000D8070000DA070000DC07000072
-:10FE1000DE070000E0070000E2070000E407000042
-:10FE2000E6070000E8070000EA070000F00700000E
-:10FE3000F2070000F4070000F6070000F8070000D2
-:10FE4000FA070000FC070000FE07000000080000A1
-:10FE5000020800000408000006080000080800006E
-:10FE60000A0800000C0800000E080000100800003E
-:10FE7000120800001408000016080000180800000E
-:10FE80001A0800001C0800001E08000020080000DE
-:10FE900022080000240800002608000028080000AE
-:10FEA0002A0800002C0800002E080000300800007E
-:10FEB000320800003408000036080000380800004E
-:10FEC0003A0800003C0800003E080000400800001E
-:10FED00042080000440800004608000048080000EE
-:10FEE0004A0800004C0800004E08000050080000BE
-:10FEF000520800005408000056080000580800008E
-:10FF00005A0800005C0800005E080000600800005D
-:10FF1000620800006408000066080000A4F2C91529
-:10FF2000972D02D202E065E2CCE1F4E3AF0000BF1E
-:10FF30007F447F68BF440000F2050000F405000024
-:10FF4000F6050000F8050000FA050000FC050000B9
-:10FF5000FE05000000060000020600000406000086
-:10FF600006060000080600000A0600000C06000055
-:10FF70000E06000010060000120600001406000025
-:10FF800016060000180600001A0600001C060000F5
-:10FF90001E060000200600002206000024060000C5
-:10FFA00026060000280600002A0600002C06000095
-:10FFB0002E06000030060000320600003406000065
-:10FFC00036060000380600003A0600003C06000035
-:10FFD0003E06000040060000420600004406000005
-:10FFE00046060000480600004A0600004C060000D5
-:10FFF0004E060000500600005206000054060000A5
-:020000040801F1
-:1000000056060000580600005A0600005C06000074
-:100010005E06000060060000620600006406000044
-:1000200066060000680600006A0600006C06000014
-:100030006E060000700600007206000074060000E4
-:1000400076060000780600007A0600007C060000B4
-:100050007E06000080060000820600008406000084
-:1000600086060000880600008A0600008C06000054
-:100070008E06000090060000920600009406000024
-:1000800096060000980600009A0600009C060000F4
-:100090009E060000A0060000A2060000A4060000C4
-:1000A000A6060000A8060000AA060000AC06000094
-:1000B000AE060000B0060000B2060000B406000064
-:1000C000B6060000B8060000BA060000BC06000034
-:1000D000BE060000C0060000C2060000C406000004
-:1000E000C6060000C8060000CA060000CC060000D4
-:1000F000CE060000D0060000D2060000D4060000A4
-:10010000D6060000D8060000DA060000DC06000073
-:10011000DE060000E0060000E2060000E406000043
-:10012000E6060000E8060000EA060000EC06000013
-:10013000EE060000F0060000F2060000F4060000E3
-:10014000F6060000F8060000FA060000FC060000B3
-:10015000FE06000000070000020700000407000080
-:1001600006070000080700000A0700000C0700004F
-:100170000E0700001007000012070000140700001F
-:1001800016070000180700001A0700001C070000EF
-:100190001E07000000BF00BF00BF00BF00BF00BFC0
-:1001A00000BF00BF00BF00BF00BF00BF00BF00BF57
-:1001B00000BF00BF00BF00BF00BF00BF00BF00BF47
-:1001C00000BF00BF00BF00BF00BF00BF00BF00BF37
-:1001D00000BF00BF00BF00BF00BF00BF00BF00BF27
-:1001E00000BF00BF00BF00BF00BF00BF00BF00BF17
-:1001F00000BF00BF00BF00BF00BF00BF00BF00BF07
-:1002000000BF00BF00BF00BF00BF00BF00BF00BFF6
-:1002100000BF00BF00BF00BF00BF00BF00BF00BFE6
-:1002200000BF00BF00BF00BF00BF00BF00BF00BFD6
-:1002300000BF00BF00BF00BF00BF00BF00BF00BFC6
-:1002400000BF00BF00BF00BF00BF00BF00BF00BFB6
-:1002500000BF00BF00BF00BF00BF00BF00BF00BFA6
-:1002600000BF00BF00BF00BF00BF00BF00BF00BF96
-:1002700000BF00BF00BF00BF00BF00BF00BF00BF86
-:1002800000BF00BF00BF00BF00BF00BF00BF00BF76
-:1002900000BF00BF00BF00BF00BF00BF00BF00BF66
-:1002A00000BF00BF00BF00BF00BF00BF00BF00BF56
-:1002B00000BF00BF00BF00BF00BF00BF00BF00BF46
-:1002C00000BF00BF00BF00BF00BF00BF00BF00BF36
-:1002D00000BF00BF00BF00BF00BF00BF00BF00BF26
-:1002E00000BF00BF00BF00BF00BF00BF00BF00BF16
-:1002F00000BF00BF00BF00BF00BF00BF00BF00BF06
-:1003000000BF00BF00BF00BF00BF00BF00BF00BFF5
-:1003100000BF00BF00BF00BF00BF00BF00BF00BFE5
-:1003200000BF00BF00BF00BF00BF00BF00BF00BFD5
-:1003300000BF00BF00BF00BF00BF00BF00BF00BFC5
-:1003400000BF00BF00BF00BF00BF00BF00BF00BFB5
-:1003500000BF00BF00BF00BF00BF00BF00BF00BFA5
-:1003600000BF00BF00BF00BF00BF00BF00BF00BF95
-:1003700000BF00BF00BF00BF00BF00BF00BF00BF85
-:1003800000BF00BF00BF00BF00BF00BF00BF00BF75
-:1003900000BF00BF00BF00BF00BF00BF00BF00BF65
-:1003A00000BF00BF00BF00BF00BF00BF00BF00BF55
-:1003B00000BF00BF00BF00BF00BF00BF00BF00BF45
-:1003C00000BF00BF00BF00BF00BF00BF00BF00BF35
-:1003D00000BF00BF00BF00BF00BF00BF00BF00BF25
-:1003E00000BF00BF00BF00BF00BF00BF00BF00BF15
-:1003F00000BF00BF00BF00BF00BF00BF00BF00BF05
-:1004000000BF00BF00BF00BF00BF00BF00BF00BFF4
-:1004100000BF00BF00BF00BF00BF00BF00BF00BFE4
-:1004200000BF00BF00BF00BF00BF00BF00BF00BFD4
-:1004300000BF00BF00BF00BF00BF00BF00BF00BFC4
-:1004400000BF00BF00BF00BF00BF00BF00BF00BFB4
-:1004500000BF00BF00BF00BF00BF00BF00BF00BFA4
-:1004600000BF00BF00BF00BF00BF00BF00BF00BF94
-:1004700000BF00BF00BF00BF00BF00BF00BF00BF84
-:1004800000BF00BF00BF00BF00BF00BF00BF00BF74
-:1004900000BF00BF00BF00BF00BF00BF00BF00BF64
-:1004A00000BF00BF00BF00BF00BF00E03CE000BFD6
-:1004B00000BF00BF00BF00BF00BF00BF00BF00BF44
-:1004C00000BF00BF00BF00BF00BF00BF00BF00BF34
-:1004D00000BF00BF00BF00BF00BF00BF00BF00BF24
-:1004E00000BF00BF00BF00BF00BF00BF00BF00BF14
-:1004F00000BF00BF00BF00BF00BF00BF00BF00BF04
-:1005000000BF00BF00BF00BF00BF00BF00BF00BFF3
-:1005100000BF00BF00BF00BF00BF00BF00BF00BFE3
-:1005200000BF00BF00BF00BF00BF00BF00BF00BFD3
-:1005300000BF00BF00BF00BF00BF00BF00BF00BFC3
-:1005400000BF00BF00BF00BF00BF00BF00BF00BFB3
-:1005500000BF00BF00BF00BF00BF00BF00BF00BFA3
-:1005600000BF00BF00BF00BF00BF00BF00BF00BF93
-:1005700000BF00BF00BF00BF00BF00BF00BF00BF83
-:1005800000BF00BF00BF00BF00BF00BF00BF00BF73
-:1005900000BF00BF00BF00BF00BF00BF00BF00BF63
-:1005A00000BF00BF00BF00BF00BF00BF00BF00BF53
-:1005B00000BF00BF00BF00BF00BF00BF00BF00BF43
-:1005C00000BF00BF00BF00BF00BF00BF00BF00BF33
-:1005D00000BF00BF00BF00BF00BF00BF00BF00BF23
-:1005E00000BF00BF00BF00BF00BF00BF00BF00BF13
-:1005F00000BF00BF00BF00BF00BF00BF00BF00BF03
-:1006000000BF00BF00BF00BF00BF00BF00BF00BFF2
-:1006100000BF00BF00BF00BF00BF00BF00BF00BFE2
-:1006200000BF00BF00BF00BF00BF00BF00BF00BFD2
-:1006300000BF00BF00BF00BF00BF00BF00BF00BFC2
-:1006400000BF00BF00BF00BF00BF00BF00BF00BFB2
-:1006500000BF00BF00BF132594FBF5F5A9B2132519
-:1006600094FBF5F705FB1745AAB2132A7ED2DFE803
-:1006700002F00A3A3B3C3D3E53545556576A6B6C68
-:100680006D6E6F70710001EB410707EBC10C4D4FB0
-:1006900007EB8C077F787F1C4FF6FF7C0CEA072561
-:1006A00001EB410707EBC10C464F07EB8C07FF78C6
-:1006B0003D4301EB410707EBC10C424F07EB8C07B1
-:1006C00097F82A70012F01D145F4004501EB41074D
-:1006D00007EBC10C3B4F17F82C70012F01D145F4EB
-:1006E0008045284668E000BF00BF00BF00BF01EBA7
-:1006F000410505EBC107334D05EB870505F10E03F9
-:10070000551E33F815502F12551E13F8155047EA91
-:100710000525A8B250E051E000BF00BF00BF00BFF8
-:1007200001EB410505EBC107264D05EB87052B1DA8
-:10073000951F33F815502F12951F13F8155047EADF
-:100740000525A8B238E000BF00BF00BF00BF00BF52
-:1007500000BF00BF01EB410505EBC107194D05EBDB
-:10076000870595F82A50012D03D100E022E00020F2
-:100770001FE0A2F10B0505EBD577C7F34F06551C1B
-:1007800005F001055DB101EB410505EBC1070D4D1C
-:1007900005EB8705183505EB8605688809E001EB50
-:1007A000410505EBC107074D05EB8705183535F801
-:1007B000260001E0002000BF00BF01E0002000BFD4
-:1007C00000BFF0BD6C0600200246002000BF00BF45
-:1007D00070470000014902484161704781F40008F8
-:1007E000D81E0020704700B97047002141610161A7
-:1007F000C16000BFF8E770B504460D460CB9002093
-:1008000070BDE06808B90020FAE745B1D4E90006F8
-:10081000236903FB060132462846FEF76DFB20697B
-:10082000401CA16890FBF1F201FB12002061E0681E
-:10083000401EE0600120E3E770B504460D460CB9A8
-:10084000002070BDD4E90210884201D10020F8E7F1
-:1008500045B1D4E90016636903FB06103246294608
-:10086000FEF74AFB6069401CA16890FBF1F201FBB6
-:1008700012006061E068401CE0600120E1E770B5B3
-:1008800004460D460CB9002070BDD4E90210884220
-:1008900004DA29462046FFF7CFFFF5E745B1D4E952
-:1008A0000016636903FB061032462946FEF724FB57
-:1008B0006069401CA16890FBF1F201FB12006061CD
-:1008C0002069401CA16890FBF1F201FB120020613D
-:1008D0000120D9E77047704710B50849D1F8580B87
-:1008E00080470749086980470649C8688047064924
-:1008F000886880470549886B804710BDA8000020A4
-:10090000A80E0020081F0020301F0020C41E002059
-:100910007047704710B50D49486880470C48D0F8BB
-:10092000881188470A48D0F8181300F5C87088471E
-:100930000748D0F8A81400F5487088470448D0F854
-:10094000381600F59660884710BD0000640C002042
-:10095000801F00207047000010B50B48016D8847CC
-:100960000A48016D88470A48016D88470948016DAA
-:1009700088470948016D88470849486B80470849FE
-:100980004868804710BD0000F00C0020440D002096
-:10099000980D0020EC0D0020400E0020C41E002009
-:1009A0006C0C002008B5C720009000F029F9002247
-:1009B0004FF480510748F4F71BFF0121684600F00F
-:1009C000BFF8012211030348F4F712FF00F0D6F834
-:1009D00008BD00000004024010B5012211030548C3
-:1009E000F4F706FF00F0D4F8FDF7B8FDFDF714FEAC
-:1009F00010BD000000040240F8B504460E4615463E
-:100A0000B5F5807F01DD4FF4807500F0F9F8022024
-:100A10008DF80000200C8DF80100200A8DF80200EE
-:100A2000E0B28DF8030000224FF480510948F4F73A
-:100A3000DFFE0421684600F083F82946304600F0C6
-:100A40007FF8012211030348F4F7D2FE00F096F874
-:100A5000F8BD000000040240F8B504460D461646F5
-:100A600003208DF80000200C8DF80100200A8DF87D
-:100A70000200E0B28DF8030000224FF480510848D4
-:100A8000F4F7B6FE0421684600F05AF8B1B22846E1
-:100A900000F048F8012211030148F4F7A9FEF8BD5F
-:100AA0000004024038B50520009000224FF4805128
-:100AB0000848F4F79DFE0121684600F041F8002047
-:100AC00000F04CF80446012211030248F4F790FEAE
-:100AD000204638BD0004024038B504466FF30B04CD
-:100AE00000F08EF820208DF80000200C8DF8010019
-:100AF000200A8DF80200E0B28DF8030000224FF4C6
-:100B000080510748F4F774FE0421684600F018F895
-:100B1000012211030248F4F76BFE00F02FF838BDF4
-:100B20000004024070B504460D464FF0FF332A46DC
-:100B300021460248F5F7F0FB70BD00004C2600206E
-:100B400070B504460D464FF0FF332A462146024851
-:100B5000F5F7A3FC70BD00004C26002001B582B063
-:100B60004FF0FF30012301AA02A900900248F5F7D7
-:100B700073FD9DF804000EBD4C26002010B500BF8B
-:100B8000FFF790FF00F001000028F9D110BD000030
-:100B900008B5AB20009000224FF480510748F4F7CD
-:100BA00027FE01216846FFF7CBFF0122110303480E
-:100BB000F4F71EFE0520F4F7FBFC08BD000402401C
-:100BC0002DE9F04706460F4614464FF0000912E0A3
-:100BD000F0B2C0F58078444501D2204600E040469E
-:100BE0000546AAB207EB09013046FFF705FF2E4480
-:100BF000A944641B00BF002CEAD1BDE8F0870000C7
-:100C000008B50620009000224FF480510648F4F702
-:100C1000EFFD01216846FFF793FF0122110302480F
-:100C2000F4F7E6FD08BD00000004024010B52E20D8
-:100C3000F6F77AFF044604F0010010BD70B50546D2
-:100C40000C4622462F212846F7F7EAFE70BD000623
-:100C5000101600061016000000000000000001023F
-:100C60000304060708090000000001020304000055
-:100C70000000080010001600004040404040404086
-:100C8000404041414141414040404040404040405F
-:100C90004040404040404040400502020202020203
-:100CA0000202020202020202022020202020202052
-:100CB0002020200202020202020290909090909066
-:100CC0001010101010101010101010101010101024
-:100CD0001010101002020202020288888888888898
-:100CE0000808080808080808080808080808080884
-:100CF000080808080202020240000000790C0108FE
-:100D000056322E30000000003131353230300000D4
-:100D1000323430300000000039363030000000003E
-:100D20003438303000000000434F4D3100000000E7
-:100D3000434F4D3200000000434F4D330000000090
-:100D4000434F4D3400000000680D010800000020F2
-:100D5000E82500003E4E0008E80F0108E8250020C5
-:100D6000F82F0000108C000841321042012324F4B7
-:100D7000000C120D010856302E3030342E303A015E
-:100D80002825590901081203320A2BD7080C12072B
-:100D900032323A5518120B32643AD518120D32C855
-:100DA0003A111812111AF43D3A150C121323E803E4
-:100DB0003AD92412171BD007123918A113C59C1B4E
-:100DC00008D90413499D23088C02FF2001FF01FF6D
-:100DD00001FF01FF01FF01FF01FF01FF01FF01FF13
-:100DE000015F1379981408FD991B08810822A81443
-:100DF000203DEE1408A9ED1B08E50413EC0D1B20A3
-:100E000044041A980413400E02302013DD951B0889
-:100E1000190413899614082DAB1B08510413BDA99E
-:100E20001B08AD04136C0C1420CC2C332001F28071
-:100E30000B144C2D180A15CC180B154C2E30091517
-:100E4000181A787C13EC261C202C29842A28D81206
-:100E5000011B4C2F0C1904FA802E611349AC1B089E
-:100E600087041B73ADCC12AE1B08A70C1A4D0C41A6
-:100E70001AED0C1A90541B34275819541A8C043943
-:100E8000541A30541904E9542BEC0D200920541A3B
-:100E9000A8541A7C5413AC2A1B204C0439541A3120
-:100EA000541904E9540A2598541AC0541AA4FC1A77
-:100EB0006CF86A0CFC1A325419040936FC1AD8541E
-:100EC0001AC4A81B6C2B54190439541A335419042E
-:100ED000093654180ED9090108590A0108C10B0135
-:100EE00008A50C1AD90C8113599E1B08ED0413B1E7
-:100EF0009F4C08A80EF81008C0A86401FFFFFF155A
-:100F00000C29AB7C1A010E32C903FF01F601FF0167
-:100F1000FF01FF01FF01FF01FF01FF01FF01FF01D1
-:100F2000FF01FF01FF01FF01FF01FF01251319A6CA
-:100F30001408CDA51408ADA814089DEF1408A588C1
-:100F40001408C40E822013A1AA1B08E9041AD904AC
-:100F50001AC90413FDA91B08DD048B081F2413659F
-:100F6000AB1B08B1041AA1041A30181E280D010881
-:100F700030041A38041A40041A10041A20041A18EB
-:100F8000041A080401101BEDAE6412DB9B086854C0
-:100F900001FF017D137DF0140889F31B080D080182
-:100FA000FF0185137DF0140889F31B08290801FF50
-:100FB0000185137DF0140889F31B08450801FF0122
-:100FC00085137DF0140889F31B0861083201139919
-:100FD000F71F08C9070108D5041AE5041381F414A2
-:080FE00008C025C2200000003A
-:040000050800418925
-:00000001FF
diff --git a/leakage_system漏液主控软件履历表.xlsx b/leakage_system漏液主控软件履历表.xlsx
index b4b02a1..cb227a7 100644
Binary files a/leakage_system漏液主控软件履历表.xlsx and b/leakage_system漏液主控软件履历表.xlsx differ
diff --git a/漏液主控界面2.HMI b/漏液主控界面2.HMI
index dfeec26..c20a5c6 100644
Binary files a/漏液主控界面2.HMI and b/漏液主控界面2.HMI differ