diff --git a/Out/8835_EVB_241213_1140.bin b/Out/8835_EVB_241213_1140.bin
deleted file mode 100644
index 2cadc0c..0000000
Binary files a/Out/8835_EVB_241213_1140.bin and /dev/null differ
diff --git a/Out/8835_EVB_241213_1140.hex b/Out/8835_EVB_241213_1140.hex
deleted file mode 100644
index 105d19f..0000000
--- a/Out/8835_EVB_241213_1140.hex
+++ /dev/null
@@ -1,949 +0,0 @@
-:03000000022C9D32
-:0F2C9D0075FE7275FF00758E007581B0022CE711
-:0F35A7001231F3D2AED2BE122E1C12310080F4BC
-:10228F004100F20002AF000002AB000002A9000003
-:10229F004100F300029D000002A3000002AD000008
-:1022AF0002A7000002A50000029F000002A100008B
-:10006E0075FE3175FF8175FE0E43FF107DAB7F303F
-:0C007E0012361E75FE3243FF03D2BD2275
-:10342600900000EFF04408FD7F311232BA900000A0
-:0F343600E09000F3F075A38175FE3243FF012291
-:0A35FB0075A38275FE3243FF022221
-:03006B000228D98F
-:1028D900C0E0C0F0C083C082C0D075D000C000C0C5
-:0D28E90001C002C003C004C005C006C00746
-:1028F600900048E4F0E5FEF0E5A420E0030229E9B3
-:102906007F3512362578AB760008A6077F36123655
-:1029160025EF540378AB46F608E6F618E6FE08E619
-:10292600FF7C097DC4121FA8780A121F4678ABA641
-:102936000608A6079000F3E0121F82295D002970A1
-:1029460001297902298C03299F0429B20529C50684
-:1029560029D407000029E978ABE6FE08E67802CE1E
-:10296600C313CE13D8F9799E807578ACE625E07945
-:10297600B0805378ABE6FE08E67803C333CE33CE99
-:10298600D8F979A4805978ABE6FE08E67802C33315
-:10299600CE33CED8F979AE804678ABE6FE08E67837
-:1029A60002C333CE33CED8F979A8803378ABE6FEAE
-:1029B60008E67802C333CE33CED8F979A6802078DC
-:1029C600ACE625E079A0F718E63319F7801578AB61
-:1029D600E6FE08E67802CEC313CE13D8F979A2F73D
-:1029E600EE19F7E5A430E1347F3712362578A9765B
-:1029F6000008A6077F38123625EF540378A946F655
-:102A060008E6F618E6FE08E6FF7C097DC4121FA854
-:102A1600780A121F4678A9A60608A60775A40F907D
-:052A26000048E0F5FE90
-:102A2B00D007D006D005D004D003D002D001D000FF
-:0B2A3B00D0D0D082D083D0F0D0E032A9
-:0722BF00C11EC11F010D0348
-:10350500E4780FF67811F6780DE67810F6781276ED
-:08351500047D207F400232BA60
-:10276600E4FE78A9E6FC08E6FDC39460EC94094013
-:10277600037F0022EF700302287ED3ED9477EC945A
-:1027860007400302285CED94EFEC94015003022805
-:102796005CD3ED947FEC94064022D21C780DE6FFC4
-:1027A600137810F6301D11D3ED94B3EC9406400463
-:1027B600C21D80047810A607E4FE8070D3ED947FD6
-:1027C600EC94065043ED94F7EC9402403BD21D780E
-:1027D6000DE6FF7810F6301C13D3ED9449EC940601
-:1027E6005004C21C8006EFC3137810F678127604E4
-:1027F600300F11D3ED9437EC94035004C20F8004CC
-:1028060078127601E4FE8024D3ED94F7EC9402501E
-:102816001BD20F78127601301D10ED94CEEC940287
-:102826005004C21D800478127604E4FE301A11C3E7
-:10283600ED9431EC94075006C21AE4FE80027E0144
-:10284600301B2FD3ED941CEC94024006C21BE4FE11
-:1028560080207E01801CD3ED9477EC94074006D24D
-:102866001A7E01800DD3ED94EFEC94015004D21B37
-:102876007E01C218C2198058C21AC21BD3ED94D762
-:10288600EC94085031ED9413EC9401402930181063
-:10289600ED9493EC94085006C218E4FE80027E0183
-:1028A60030192DD3ED943EEC94014006C219E4FE96
-:1028B600801E7E01801AD3ED94D7EC94084004D292
-:1028C60018800BC3ED9413EC94015002D2197E01CB
-:0228D600AF064B
-:0128D80022DD
-:102E85009000EBE05463600CE4FF1233C2E4780E6B
-:102E9500F6C21E227F01122766EF6008E4FF123397
-:102EA500C2D21F22C21F9000ECE05407FFBF0607E5
-:102EB500D21E780E7602227810E6FD7F221232BAF3
-:102EC5007812E6FD7F211232BA780FE6C454F07805
-:102ED5001146FD7F231232BA7F011233C2780E7676
-:042EE50001C21E22E6
-:0422C600C139C13A1F
-:10300C009000EBE0FF30E603C23922EF30E205C25C
-:10301C0039D23A22304008E4FF1233E4C23922900C
-:10302C0000EBE030E503C23922E4FF122766EF60C3
-:10303C000AC239E4FF1233E4D21F22C21FD2393044
-:10304C003A19780EE6B40113C378B0E6941018E67A
-:0C305C00940E4005D239C23A22C239223B
-:1034EC00426F78204F70656E2E0D0A00426F782067
-:0934FC00436C6F73652E0D0A008C
-:0822CA00C13BC13C4100F5FFDE
-:1030B700E4900000F09000ECE0FF5420FE90000048
-:1030C700F09000F5E06E6030EF30E50E9000F4749C
-:1030D70001F07BFF7A3479EC800BE49000F4F07B0D
-:1030E700FF7A3479F812198FD23BD23CD23590004F
-:0830F70000E09000F5F0D23D6D
-:0130FF0022AE
-:10322A006C6F6E672032732070726573730D0A00BB
-:10323A00737570706572206C6F6E672038732070BA
-:10324A00726573730D0A0073686F72742070726509
-:05325A0073730D0A0072
-:1022D200C127C126C1250118004100EF004100EECF
-:0622E200004200F00000C4
-:1025DB009000ECE030E4379000F0E475F001121E4F
-:1025EB004E9000F0E0FEA3E0FFC39464EE94004035
-:1025FB0007202314D2238010C3EF9490EE94014054
-:10260B0007202404D224D225D220C221803A3020A4
-:10261B0030D23DC220D221C2249000F0E0FEA3E0D4
-:10262B00FFD39419EE94005008D227D222D23580D2
-:10263B0010C3EF94FAEE94005007302304C223D258
-:10264B0026E49000F0F0A3F030213FC22130261495
-:10265B00C22678187602E49000EFF07BFF7A32798D
-:10266B002A12198F30250FC225781876037BFF7A33
-:10267B0032793A12198F302215C222781876017BE3
-:10268B00FF7A32795112198F8004E47818F6900092
-:10269B00F4E0640160030227657818E664026003C6
-:1026AB0002272C9000EFE0C3940150107D017F01B5
-:1026BB00122441E4900075F0A3F080529000EEE0FC
-:1026CB00D394054004E4F08039900076E0B4010F18
-:1026DB00E4FD7F021224419000767402F0802F906B
-:1026EB000076E064027027900075E0601A7D017F30
-:1026FB0002122441E4900075F0A3F09000EFF07803
-:10270B0018F67F03022D2CE4FD7F0112244190006B
-:10271B00EFE0D3941440349000EEE004F0E4A3F027
-:10272B00227818E6640370329000EFE0FFC3941E2A
-:10273B005020EF540125E060047D0180099000EFEB
-:10274B00E030E007E4FD7F031224419000EFE0044A
-:0A275B00F022E47818F69000EFF089
-:012765002251
-:1022E80041007E0041007D0041007F0041007C00EC
-:0F35B60075FE0B75FF0FC290C291C293C2922295
-:1034B800EF14600D14600D14600D2403700BD2908E
-:0A34C80022D29122D29222D2932246
-:05344500900000E0FF13
-:10344A00EF14600D14600D14600D2403700BC2900C
-:0A345A0022C29122C29222C29322E4
-:102F4C00E4FF74802FF582E43400F583E4F074849C
-:102F5C002FF582E43400F583E4F0EF25E02488F5C6
-:102F6C0082E43400F583E4F0A3F0EF25E02490F53F
-:102F7C0082E43400F583E4F0A3F0EF25E02498F527
-:102F8C0082E43400F583E4F0A3F0EF25E024A0F50F
-:0F2F9C0082E43400F583E4F0A3F00FEFB404A354
-:012FAB002203
-:102EE900AC0774802CF582E43400F583EDF0EAC375
-:102EF90013FEEB13FFEC25E02488F582E43400F59A
-:102F090083EEF0A3EFF0AF03EC25E02490F582E423
-:102F19003400F583EAF0A3EFF0900005E0FEA3E0AA
-:102F2900FFEC25E02498F582E43400F583EEF0A364
-:102F3900EFF0EC25E024A0F582E43400F583E4F019
-:032F4900A3F022D0
-:10317F0074802FF582E43400F583EDF074842FF51D
-:10318F0082E43400F583EBF0EF25E02488F582E448
-:10319F003400F583E4F0A37469F0EF25E024A0F583
-:0B31AF0082E43400F583E4F0A3F0227A
-:1015B700E4900000F0F0900000E0FFC394044003C3
-:1015C7000218F974802FF582E43400F583E0602275
-:1015D70024FE60241470030216C114700302173826
-:1015E70024036003021895900000E0FF1234B8024C
-:1015F7001895123445021895900000E0FF25E02465
-:1016070088F582E43400F583E0FCA3E0FDEF25E0F4
-:1016170024A0F582E43400F583E0FEA3E0C39DEE49
-:101627009C50051234B88003123445900000E0FF47
-:1016370025E02490F582E43400F583E0FCA3E0FD87
-:10164700EF25E024A0F582E43400F583E0FEA3E073
-:10165700C39DEE9C5003021895900000E025E024FE
-:10166700A0F582E43400F583E4F0A3F0EF25E0244D
-:1016770098F582E43400F583E0FEA3E0D39400EE0E
-:1016870094004016900000E025E02498F582E434A9
-:1016970000F58374FFF5F0121E4E900000E0FF2561
-:1016A700E02498F582E43400F583E0FCA3E04C6085
-:1016B7000302189574802F021754900000E0FF254D
-:1016C700E02488F582E43400F583E0FCA3E0FDEF35
-:1016D70025E024A0F582E43400F583E0FEA3E0D3FF
-:1016E7009DEE9C50051234B88003123445900000DB
-:1016F700E0FF25E02490F582E43400F583E0FCA3C5
-:10170700E0FDEF25E024A0F582E43400F583E0FE58
-:10171700A3E0C39DEE9C5003021895900000E025BE
-:10172700E024A0F582E43400F583E4F0A3F0021886
-:1017370095900000E0FF2484F582E43400F583E00F
-:101747007017123406C241900000E02480F582E44D
-:101757003400F583E4F0021895900000E0FF24843C
-:10176700F582E43400F583E0FE6402704B204114F7
-:10177700D241EF25E02488F582E43400F583E4F0D4
-:10178700A37469F0900000E0FF25E02488F582E467
-:101797003400F583E475F001121E4EEF25E024882E
-:1017A700F582E43400F583E0FCA3E0C394FEEC94F7
-:1017B70000500302187F804EEE6401705A204117D3
-:1017C700D241900000E025E02488F582E43400F55A
-:1017D70083E4F0A374FEF0900000E0FF25E0248886
-:1017E700F582E43400F58374FFF5F0121E4EEF2501
-:1017F700E02488F582E43400F583E0FEA3E0D39487
-:1018070069EE94005072900000E02484F582E4347D
-:1018170000F583E4F08061900000E0FF2484F58206
-:10182700E43400F583E06403704EEF25E02488F587
-:1018370082E43400F583E0FEA3E0FFC394FEEE9458
-:10184700004004D241800BD3EF946AEE940050021B
-:10185700C241900000E025E0248830410DF582E484
-:101867003400F58374FFF5F0800BF582E43400F55E
-:1018770083E475F001121E4E900000E0FF25E0247E
-:1018870088F582E43400F583A3E0FD123068900008
-:1018970000E0FF701174802FF582E43400F583E0D7
-:1018A70090007EF08043900000E0B401102480F5A2
-:1018B70082E43400F583E090007DF0802C900000F6
-:1018C700E0B402102480F582E43400F583E0900050
-:1018D7007FF08015900000E0B4030E2480F582E4C9
-:1018E7003400F583E090007CF0900000E004F00203
-:1018F70015BDE4900000F0900000E0FFC394045091
-:101907001BEF25E024A0F582E43400F583E475F0AD
-:0C19170001121E4E900000E004F080DB86
-:0119230022A1
-:1022F800C13E4100E0004200E100004100E30F411F
-:0523080000DF00C13DF3
-:10354A00D2AC759A03D2BCD2BDD2A9D2AB75FE3029
-:04355A0043FF802289
-:10355E00C2ACE4F59AC2BCC2BDC2A9C2AB75FE3004
-:04356E0053FF7F2266
-:10325F00303E21302C27C22C9000DFE004F0E0C379
-:10326F0094054019E4A3F07DAA7F4F1232BAE4907F
-:0E327F0000DFF02212355E43870212354A222C
-:10357200780EE664016006200E03303D04C23DC3AE
-:0335820022D3222F
-:1031F3001233111235971235E2E4F58612006E7D13
-:10320300087F7612361ED2A8D2AF1235057D697FAC
-:10321300031235341235B6122F4C12000E12328DB2
-:073223009000D47401F022B9
-:0300030002362C96
-:06362C00D23D75E20F32F1
-:10230D002040290000000000000000000000000037
-:10231D0000000000000000000000000000000000B0
-:10232D0000000000000000000000000000000000A0
-:10233D000000000000000000000000000000000090
-:07234D00000000C138C13798
-:1033110075FE0443FF0C75FE0343FF0C75FE0E534F
-:10332100FFF043FF09D2DF43878075BA0375AADC3A
-:06333100759852D2AC2297
-:0631BA00900043121F7992
-:1031C000E4900046F05398EFF0900046E0C39FE48F
-:1031D0009E501C2036FDD236900043E475F001125B
-:1031E0001F62121D7FF599900046E004F080DA43DB
-:0231F000981035
-:0131F20022BA
-:03002300022A4668
-:102A4600C0E0C0F0C083C082C0D075D000C000C056
-:072A560002C003C006C00727
-:102A5D00309904C299C236209803022B1BC298D21A
-:102A6D003D9000E4E014602114604D2402600302E7
-:102A7D002B1BE5999000E4B4550D7401F0A3E4F01F
-:102A8D00A3F09000E580138027AF997E00BE551D01
-:102A9D00BFAA1A9000E47402F0A3A3E02429F8A6BB
-:102AAD00999000E5E475F001121E4E80619000E4EE
-:102ABD00E4F0A3F0A3F080569000E5A3E02429F8FC
-:102ACD00A6999000E5E475F001121E4E9000E5E028
-:102ADD00FAA3E0FB64074A700D782BE62404FEE4AC
-:102AED0033A3F0A3CEF09000E7E06A7003A3E06B90
-:102AFD00600FD39000E6E094409000E5E094004034
-:0E2B0D000D9000E5E4F0A3F09000E4F0D23863
-:102B1B00D007D006D003D002D000D0D0D082D08343
-:052B2B00D0F0D0E03203
-:0E35D40090002BEFF012360E90002BE0FF223D
-:1035970075F10A759F03759EFD759692759A0222BD
-:08360E002037FDD2378F97220F
-:03008B0002351D1E
-:10351D00C0E0E59630E1055396FDC237E59630E003
-:07352D00035396FED0E032CB
-:102354004300D40402024100D200C135C13441001B
-:0E236400D3004100D7004100D0004100D1005D
-:10333700E4FB7D04FF12317FE4FB7D047F01123142
-:103347007FE4FB7D047F0212317FE4FB7D047F0372
-:0333570002317FC1
-:10123B00201F06200B030212D9203007D230D235E3
-:10124B000212D690007EE06403601A900005E4F071
-:10125B00A3740AF07B147A007D02E4FF122EE9904E
-:10126B00007E7403F090007DE06403601A9000052B
-:10127B00E4F0A3740AF07B147A007D027F01122E36
-:10128B00E990007D7403F090007FE06403601A9096
-:10129B000005E4F0A3740AF07B147A007D027F0250
-:1012AB00122EE990007F7403F090007CE0640360E1
-:1012BB001A900005E4F0A3740AF07B147A007D0207
-:1012CB007F03122EE990007C7403F0D23D22303064
-:1012DB0008C230C232C231D234780EE664016003E8
-:1012EB000213E6301E5C203205D232123337E49003
-:1012FB000005F0A3F0FBFA7D01FF122EE9E490004C
-:10130B0005F0A3F0FBFA7D017F01122EE9E49000BA
-:10131B0005F0A3F0FBFA7D017F02122EE9E49000A9
-:10132B0005F0A3F0FBFA7D017F03122EE990007EFE
-:10133B007401F090007DF090007FF090007CF00243
-:10134B0013DD20310CD231D235E49000D7F00213EB
-:10135B00DD9000D2E0C394015057E004F09000D729
-:10136B00E014601A14602714603424037064900036
-:10137B007EE06404605C7B017D04E4FF802E9000C2
-:10138B007DE06404604C7B017D047F01801E900036
-:10139B007FE06404603C7B017D047F02800E900043
-:1013AB007CE06404602C7B017D047F0312317F8021
-:1013BB00219000D2E0C3940F5005E004F08013E4B9
-:1013CB009000D2F09000D7E004F0E0C39404400208
-:1013DB00E4F0C23CC20CC227D2332230310AC231F4
-:1013EB00123337D235D23422303549E49000D2F063
-:1013FB00C235900005F0A3F0FBFAFDFF122EE9E4D5
-:10140B00900005F0A3F0FBFAFD7F01122EE9E490AA
-:10141B000005F0A3F0FBFAFD7F02122EE9E4900029
-:10142B0005F0A3F0FBFAFD7F03122EE990007E740A
-:10143B000202159E203C0C203309200C06202703AA
-:10144B000215B69000D2E0FFC394015004E004F003
-:10145B0022EFC3946440030215AC9000D2E004F079
-:10146B007814E6C39419503790007EE06403700340
-:10147B000215B6E4900005F0A3F07B64FA7D03FF40
-:10148B00122EE990007E7404F0E4900005F0A3F0B6
-:10149B00FBFAFD7F01122EE990007D7402803278F9
-:1014AB0014E6C394325041E4900005F0A3F0FBFA2C
-:1014BB007D01FF122EE990007E7401F0E49000058F
-:1014CB00F0A3F0FBFA7D017F01122EE990007D74F1
-:1014DB0001F0E4900005F0A3F0FBFAFD7F02122E61
-:1014EB00E990007F740280487814E6C3944B505700
-:1014FB00E4900005F0A3F0FBFA7D01FF122EE990BA
-:10150B00007E7401F0E4900005F0A3F0FBFA7D017E
-:10151B007F01122EE990007D7401F0E4900005F03C
-:10152B00A3F0FBFA7D017F02122EE990007F74017C
-:10153B00F0E4900005F0A3F0FBFAFD7F03122EE917
-:10154B0090007C7402F0227814E6C39464505CE43F
-:10155B00900005F0A3F0FBFA7D01FF122EE9E49059
-:10156B000005F0A3F0FBFA7D017F01122EE9E49058
-:10157B000005F0A3F0FBFA7D017F02122EE9E49047
-:10158B000005F0A3F0FBFA7D017F03122EE990001A
-:10159B007E7401F090007DF090007FF090007CF065
-:0B15AB0022C23CC233C20CC227D23562
-:0115B6002212
-:103482009000F2E0FF04F01234269000F2E0C394C0
-:0B349200084005E4F07F01227F0022CB
-:10346400122E8512300C1230B71225DB1232E630E0
-:0E347400280BC228122BF212123B121FD52277
-:093605007B017A0079E9022FAC87
-:102B3000E4900000F09000D4E0FFA3E0FE6F60415D
-:102B4000A3EEF09000D4E0A3F024FD602F240260F7
-:102B500003022BF1900005E4F0A37403F07B647A88
-:102B6000007D02E4FF122EE9900005E4F0A3740357
-:102B7000F07B647A007D027F01022EE99000E38001
-:102B8000529000D5E024FE602D146031146054246E
-:102B900003705E9000D0E004F0E0C39408405290CF
-:102BA00000D47402F0E49000D0F07815E670429002
-:102BB00000D47404F0229000D47403F022302C313D
-:102BC000C22C9000E3E0D39400400CE014F0303DC0
-:102BD00020C23D740FF0229000D47404F0E4900001
-:102BE000DFF022123572500302325F9000D474027B
-:012BF000F0F4
-:012BF10022C1
-:10310000302B36C22B9000D1E0FF04F0EF14601298
-:103110001460141460161460182404701C12348295
-:10312000801712360580121235FB800D1234648030
-:1031300008122B30E49000D1F0302D05C22D12156D
-:02314000B722B4
-:100BAE00426F7820436C6F73652E0D0A00426F788A
-:100BBE00204F70656E2E0D0A004F70656E20426FCD
-:100BCE007820434D44205458204F7665722E0D0ADE
-:100BDE00004F70656E20426F7820416E6420456133
-:100BEE007270686F6E6520476574496E2E0D0A002F
-:100BFE00436C6F736520426F7820416E6420466FA0
-:100C0E0072636520566F6C746167652055702E0D8A
-:100C1E000A00564F58204348472046756C6C2E0DDF
-:100C2E000A00564F582047657420496E746F205342
-:100C3E006C6565702E0D0A00466F6C6C6F772043E5
-:100C4E00484720496E697453746120536574204D72
-:100C5E0061782056706D69642E28566F785F7374B4
-:100C6E00613A3078257829286C696E653A256429B1
-:100C7E000D0A00466F6C6C6F772043484720496E13
-:100C8E0069745374612E28566F785F7374613A30AD
-:100C9E0078257829286C696E653A2564290D0A0035
-:100CAE00466F6C6C6F772043484720537461312C2C
-:100CBE004E6F2045617250686F6E6520496E2042FE
-:100CCE006F782E286C696E653A2564290D0A0046E8
-:100CDE006F6C6C6F772043484720537461312C56EC
-:100CEE004F5220436867696E672849766F723A25BE
-:100CFE00646D41292E286C696E653A2564290D0AAA
-:100D0E0000466F6C6C6F77204348472053746131F7
-:100D1E002C564F4C20436867696E672849766F6C76
-:100D2E003A25646D41292E286C696E653A25642931
-:100D3E000D0A00466F6C6C6F772043484720537442
-:100D4E0061322C4765742049564F523A25646D41E5
-:100D5E002E286C696E653A2564290D0A00466F6C63
-:100D6E006C6F772043484720537461322C4765746B
-:100D7E002049564F4C3A25646D412E286C696E659C
-:100D8E003A2564290D0A00466F6C6C6F7720434834
-:100D9E004720537461332C564F58204368672052B6
-:100DAE0065496E69742E286C696E653A2564290D45
-:100DBE000A00466F6C6C6F7720434847205374616E
-:100DCE0033284356292C564F522056706D69642095
-:100DDE004164645374612849766F723A25646D419B
-:100DEE00292E286C696E653A2564290D0A00466F16
-:100DFE006C6C6F77204348472053746133284356F9
-:100E0E00292C564F522056706D69642053756253CB
-:100E1E0074612849766F723A25646D41292E286CCB
-:100E2E00696E653A2564290D0A00466F6C6C6F7702
-:100E3E00204348472053746133284343292C564F8F
-:100E4E00522056706D69642053756253746128493F
-:100E5E00766F723A25646D41292E286C696E653A5B
-:100E6E002564290D0A00466F6C6C6F772043484746
-:100E7E002053746133284343292C564F5220567009
-:100E8E006D6964204164645374612849766F723AC7
-:100E9E0025646D41292E286C696E653A2564290DED
-:100EAE000A00466F6C6C6F7720434847205374617D
-:100EBE0033284356292C564F4C2056706D696420AA
-:100ECE004164645374612849766F6C3A25646D41B0
-:100EDE00292E286C696E653A2564290D0A00466F25
-:100EEE006C6C6F7720434847205374613328435608
-:100EFE00292C564F4C2056706D69642053756253E1
-:100F0E0074612849766F6C3A25646D41292E286CE0
-:100F1E00696E653A2564290D0A00466F6C6C6F7711
-:100F2E00204348472053746133284343292C564F9E
-:100F3E004C2056706D696420537562537461284954
-:100F4E00766F6C3A25646D41292E286C696E653A70
-:100F5E002564290D0A00466F6C6C6F772043484755
-:100F6E002053746133284343292C564F4C2056701E
-:100F7E006D6964204164645374612849766F6C3ADC
-:100F8E0025646D41292E286C696E653A2564290DFC
-:100F9E000A00466F6C6C6F7720434847205374618C
-:100FAE00342C564F782056706D696420416464531A
-:100FBE00746128566F75743A307825782C49766F9F
-:100FCE006C3A25646D412C49766F723A25646D41F9
-:100FDE0029286C696E653A2564292E0D0A00466F24
-:100FEE006C6C6F772043484720537461342C564FF6
-:100FFE0078204368696E6728566F75743A30782585
-:10100E00782C49766F6C3A25646D412C49766F7257
-:10101E003A25646D4129286C696E653A2564292E3E
-:10102E000D0A00466F6C6C6F77204348472053744F
-:10103E0061342C564F522056706D696420416464A1
-:10104E0053746128566F75743A307825782C49762A
-:10105E006F723A25646D4129286C696E653A256474
-:10106E00292E0D0A00466F6C6C6F7720434847207F
-:10107E00537461342C564F52204368696E6728565C
-:10108E006F75743A307825782C49766F723A2564EC
-:10109E006D4129286C696E653A2564292E0D0A006A
-:1010AE00466F6C6C6F772043484720537461342C25
-:1010BE00564F4C2056706D696420416464537461C0
-:1010CE0028566F75743A307825782C49766F6C3ABD
-:1010DE0025646D4129286C696E653A2564292E0DAB
-:1010EE000A00466F6C6C6F7720434847205374613B
-:1010FE00342C564F4C204368696E6728566F7574B2
-:10110E003A307825782C49766F6C3A25646D4129F2
-:10111E00286C696E653A2564292E0D0A00466F6C9F
-:10112E006C6F7720434847205375625374612C5679
-:10113E004F4C2F564F52286C696E653A2564292EF6
-:10114E000D0A00466F6C6C6F77204348472053752D
-:10115E00625374612C564F52286C696E653A256441
-:10116E00292E0D0A00466F6C6C6F7720434847207E
-:10117E005375625374612C564F4C286C696E653AE8
-:10118E002564292E0D0A00466F6C6C6F772043483C
-:10119E0047205375625374612C285354413A30786A
-:1011AE0025782C56706D69643A3078257829286C2C
-:1011BE00696E653A2564290D0A00466F6C6C6F776F
-:1011CE0020434847204164645374612C2853544192
-:1011DE003A307825782C56706D69643A30782578D7
-:1011EE0029286C696E653A2564290D0A00000000F5
-:1011FE0000000000000000000000000000000000E1
-:10120E0000000000000000000000000000000000D0
-:10121E0000000000000000000000000000000000C0
-:0D122E0000000000000000000000000000B3
-:10237200C10EC10CC10D410077FFC10B42004F00DD
-:102382000042004D00004200750000420072000051
-:10239200420078000041007B00106900000000004C
-:1023A200000000000000000000000020247900006E
-:1023B200000000000000000000000000000000001B
-:1023C200000000000000000000000000000000000B
-:0623D20000004100740050
-:052D2C00900043EFF0F0
-:102D3100E4A3F0A3F07F27123142900044EFF07F2B
-:102D410037123142900045EFF0900043E024FD60DE
-:102D51001B14602424FE602824057035900045E092
-:102D61004494F0900044E04498F08025900044E0C1
-:102D71004406F054E7F08019900045E054FD8009C5
-:102D8100900045E04402F054FEF0900044E054E12C
-:102D9100F0900044E0FD7F271232BA900045E0FD3B
-:052DA1007F370232BA89
-:101FD5009000EBE054186003D20B22C20B203903AA
-:101FE50002224B303B65200D0D7F3C1234D27F0120
-:101FF5001233E4D20D227F03122D2CE490004CF015
-:1020050090004AF0A3F0C2009000F4E0702AC20CE0
-:10201500D201D202C203C207C208C209900075F0FC
-:10202500A3F0D20EC234900070F0A3F090007AF0C5
-:102035007BFF7A0B79AE800EC201C202D203C205C4
-:102045007BFF7A0B79BB12198FC23B200303022158
-:102055000190004AE0C3940550030221EF90004B24
-:10206500E0C39405500A7F06122D2C90004B802A60
-:1020750020004990004CE0FFD3940B5022EF75F0FF
-:102085000384E5F07003FD800990004CE020E00733
-:102095007D017F0612244190004CE004F0805D7FB5
-:1020A50004122D2CE490004CF0D200D204C20DC2D3
-:1020B5000E7BFF7A0B79C712198F8040300404C25A
-:1020C50004802F9000EDE0540CFBE4FAF9F8900041
-:1020D50049E0FFE4FCFDFEC3121F35601F9000EDD3
-:1020E500E0540C600DD20CD2357BFF7A0B79DF12F0
-:1020F500198F9000EDE0540C900049F02001030287
-:102105002248303438200D237F011233E4D20DD21A
-:102115000EE4900070F0A3F090007AF090004BF080
-:1021250090004AF090004CF0C207227F03122D2C3C
-:102135007BFF7A0B79FE12198FC234803590004AE5
-:10214500E0D3940350030221EF90004BE0FFD394BA
-:102155000B501FEF75F00384E5F07003FD800990C7
-:10216500004BE020E0077D017F8112244190004B68
-:10217500807890004CE0FFD39432501FEF75F00348
-:1021850084E5F07003FD800990004CE020E0077DB8
-:10219500017F0712244190004C804F3002077F03D6
-:1021A500122D2CC202900071E0700C7B017A00792F
-:1021B5005112008E0222482007489000EDE054306D
-:1021C500FFE4FCFDFE7B30FAF9F8C3121F35601100
-:1021D5009000EDE0540CFFE4FCFDFEEF6003303FA2
-:1021E5006290004AE0C394325004E004F0227BFF81
-:1021F5007A0C792012198FD207C20D7F04122D2C6B
-:10220500804190004CE0FFD3940B5022EF75F00312
-:1022150084E5F07003FD800990004CE020E0077D27
-:10222500017F8012244190004CE004F080152008C5
-:1022350012D2087F04122D2CC20E7BFF7A0C793046
-:1022450012198FC20622200614D2067F04122D2CE5
-:10225500C20E9000EDE0540C900049F0229000ED84
-:10226500E0540CFBE4FAF9F8900049E0FFE4FCFDCA
-:10227500FEC3121F3560129000EDE0540CFF6004A0
-:09228500D20CD235900049EFF0B3
-:01228E00222D
-:06008E00900000121F7932
-:1000940090007AE01470030201AB1470030202DCD6
-:1000A40014700302038614700302065E24046003C2
-:1000B400020932900000121F59900020121D98600E
-:1000C4000302093290007BE0D3940A5046E004F026
-:1000D40090001BE475F03C121F08300A0302093239
-:1000E400900000121F5990001B121E64FF1234D29C
-:1000F4007BFF7A0C79469000EDE0FF900006E4F077
-:10010400A3EFF0A37403F0A3744BF012198FD20A77
-:10011400020932E490007BF0C20A900000121F59D9
-:10012400900016E4121DD7900015E4121DD790001C
-:1001340013E4121DD7900012E4121DD7900011E4AD
-:10014400121DD7900010E4121DD7900018E4121D60
-:10015400D7900017E4121DD790000EE4F5F0121F9B
-:100164000890000CE4F5F0121F08900019E4F5F073
-:10017400121F0890001DE475F03C121F0890007ACD
-:100184007401F0E490004FF0A3F07BFF7A0C7981C6
-:100194009000EDE0FF900006E4F0A3EFF0A37403F9
-:1001A400F0A374720203FF9000EDE0FB5420FFE41F
-:1001B400FCFDFEEF602BEB5410FF60259000001255
-:1001C4001F599000207401121DD7E490007AF07B2F
-:1001D400FF7A0C79AE9000067403F0A374810203D5
-:1001E400FF9000EDE05420FFE4FCEF706278A1E69C
-:1001F400FE08E6FF900000121F59900002EE8FF0F7
-:10020400121F087D05121DF9EF7802C333CE33CED9
-:10021400D8F9FF900000121F59900006EE8FF012DB
-:100224001F0878A1E6FC08E6FD25E0FFEC3390000A
-:100234000A8FF0121F087BFF7A0C79DD900006EC20
-:10024400F0A3EDF0A37403F0A3748FF012198F9050
-:1002540000EDE05410FFE4FCFDEF7065789DE6FED0
-:1002640008E6FF900000121F59EE8FF0121EE918E5
-:10027400E6FE08E6FF7D05121DF9EF7802C333CED2
-:1002840033CED8F9FF900000121F59900004EE8F6E
-:10029400F0121F08789DE6FC08E6FD25E0FFEC332C
-:1002A4009000088FF0121F087BFF7A0D790F9000E1
-:1002B40006ECF0A3EDF0A37403F0A3749CF0121900
-:1002C4008F900000121F5990001F7401121DD790C7
-:1002D400007A7402F0020932D3900050E094059041
-:1002E400004FE094005003020395E490004FF0A304
-:1002F400F09000EDE05420FFE4FCFDEF703778A1AE
-:10030400E6FE08E6FF900000121F5990000EEE8FE3
-:10031400F0121F089000187401121DD77BFF7A0D8C
-:100324007941900006EEF0A3EFF0A37403F0A374F8
-:10033400B8F012198F9000EDE05410FFE4FCFDEFCB
-:100344007037789DE6FE08E6FF900000121F599072
-:10035400000CEE8FF0121F089000177401121DD7C5
-:100364007BFF7A0D796B900006EEF0A3EFF0A37497
-:1003740003F0A374C2F012198F90007A7403F00290
-:100384000932D3900050E0940290004FE094005062
-:100394000AE475F001121E4E020932E490004FF097
-:1003A400A3F0900000121F5990000A121E64FFAEC1
-:1003B400F090000E121E64D39FE5F09E501C900036
-:1003C40000121F59900008121E64FFAEF090000C3A
-:1003D400121E64D39FE5F09E4025E490007AF090CD
-:1003E4000000121F5990001FE4121DD77BFF7A0DE5
-:1003F40079959000067403F0A374DCF002092F9041
-:100404000000121F59900018121D98640160030225
-:10041400052F90000E121E64D39414E5F09400404E
-:10042400030204AE9000EDE030E54B900016740139
-:10043400121DD790001B121E64C3943CE5F0940077
-:10044400400D900000121F59900018E4121DD7901F
-:100454000000121F5990000E121E64FF900006E562
-:10046400F0F0A3EFF0A37403F0A374EEF07BFF7A33
-:100474000D79C002052C900000121F5990001374CE
-:1004840001121DD7900000121F5990000E121E6415
-:10049400FF900006E5F0F0A3EFF0A37403F0A3745B
-:1004A400F5F07BFF7A0D79FC807E900000121F59D5
-:1004B400900006121E64FFAEF090000E121E64D36C
-:1004C4009FE5F09E9000004030121F599000137475
-:1004D40001121DD7900000121F5990000E121E64C5
-:1004E400FF900006E5F0F0A3EFF0A37403F0A3740B
-:1004F400FFF0FB7A0E7938802F121F599000167482
-:1005040001121DD7900000121F5990000E121E6494
-:10051400FF900006E5F0F0A3EFF0A37404F0A374D9
-:1005240006F07BFF7A0E797412198F900000121F67
-:1005340059900017121D986401600302093290005B
-:100544000C121E64D39414E5F0940040030205DBFE
-:100554009000EDE030E44B9000157401121DD7902B
-:10056400001B121E64C3943CE5F09400400D9000FF
-:1005740000121F59900017E4121DD7900000121F9B
-:100584005990000C121E64FF900006E5F0F0A3EFF2
-:10059400F0A37404F0A37419F07BFF7A0E79B0020F
-:1005A400092F900000121F599000127401121DD7D8
-:1005B400900000121F5990000C121E64FF90000658
-:1005C400E5F0F0A3EFF0A37404F0A37420F07BFF34
-:1005D4007A0E79EC02092F900000121F5990000442
-:1005E400121E64FFAEF090000C121E64D39FE5F05F
-:1005F4009E9000004032121F599000127401121D87
-:10060400D7900000121F5990000C121E64FF900036
-:1006140006E5F0F0A3EFF0A37404F0A3742AF07BD2
-:10062400FF7A0F792802092F121F599000157401BF
-:10063400121DD7900000121F5990000C121E64FF67
-:10064400900006E5F0F0A3EFF0A37404F0A3743176
-:10065400F07BFF7A0F796402092FD3900050E09465
-:100664001490004FE09400502FE475F001121E4ED8
-:1006740078A1E6FE08E6FF900000121F5990000ED4
-:10068400EE8FF0121F08789DE6FF08E690000CCF6D
-:100694008FF0121F08020932E490004FF0A3F0908B
-:1006A4000000121F59900018121D98640160030283
-:1006B40007C0900017121D98640160030207C090E0
-:1006C4000006121E64FFAEF090000E121E64FDAC14
-:1006D400F0C39FEC9E4018900000121F5990000A2E
-:1006E400121E64FFD3ED9FEC95F050030207819036
-:1006F4000000121F59900004121E64FFAEF0900017
-:100704000C121E64FDACF0C39FEC9E4015900000DB
-:10071400121F59900008121E64FFD3ED9FEC95F050
-:10072400405B900000121F599000167401121DD7EF
-:100734009000157401121DD790007A7402F0900095
-:1007440000121F5990001B121E64FF900006E5F072
-:10075400F0A3EFF0789DE6FF08E6A3CFF0A3EFF057
-:1007640078A1E6FF08E6A3CFF0A3EFF0A37404F0AA
-:10077400A37458F07BFF7A0F79A002092F90000030
-:10078400121F5990001B121E64FF900006E5F0F042
-:10079400A3EFF0789DE6FF08E6A3CFF0A3EFF0788F
-:1007A400A1E6FF08E6A3CFF0A3EFF0A37404F0A33F
-:1007B400745FF07BFF7A0F79EC02092F900000122E
-:1007C4001F59900018121D98640160030208799063
-:1007D4000006121E64FFAEF090000E121E64FDAC03
-:1007E400F0C39FEC9E4015900000121F5990000A20
-:1007F400121E64FFD3ED9FEC95F04046900000126A
-:100804001F599000167401121DD790007A7402F0DB
-:10081400900000121F5990001B121E64FF900006E6
-:10082400E5F0F0A3EFF078A1E6FF08E6A3CFF0A38C
-:10083400EFF0A37404F0A37472F07BFF7A107931A3
-:100844008030900000121F5990001B121E64FF900C
-:100854000006E5F0F0A3EFF078A1E6FF08E6A3CFE9
-:10086400F0A3EFF0A37404F0A37478F07BFF7A1084
-:10087400797312198F900000121F59900017121DDE
-:100884009864016003020932900008121E64FFAEEE
-:10089400F090000C121E64FDACF0D39FEC9E50153A
-:1008A400900000121F59900004121E64FFC3ED9FB4
-:1008B400EC95F05046900000121F599000157401F9
-:1008C400121DD790007A7402F0900000121F599004
-:1008D400001B121E64FF900006E5F0F0A3EFF07811
-:1008E4009DE6FF08E6A3CFF0A3EFF0A37404F0A302
-:1008F4007486F07BFF7A1079AE8030900000121F6E
-:100904005990001B121E64FF900006E5F0F0A3EF5F
-:10091400F0789DE6FF08E6A3CFF0A3EFF0A37404FC
-:10092400F0A3748CF07BFF7A1079F012198F900089
-:1009340000121F59900018121D98FF6401600D9059
-:100944000017121D9864016003020B9490001312A7
-:100954001D98FE6401600D900012121D98640160E0
-:1009640003020ACFEF64017031900017121D98B48E
-:100974000128EEB40124900013121D98B4011B90B9
-:1009840000147401121DD77BFF7A11792B90000695
-:100994007404F0A374A4F012198F900000121F596C
-:1009A400900018121D986401702A900017121D9867
-:1009B4007022900013121D98640170539000140467
-:1009C400121DD77BFF7A1179519000067404F0A3AD
-:1009D40074AE8037900000121F59900018121D98B1
-:1009E400702D900017121D98B40124900012121D4E
-:1009F40098B4011B9000147401121DD77BFF7A1167
-:100A040079739000067404F0A374B9F012198F90EE
-:100A14000000121F59900013E4121DD7900012E435
-:100A2400121DD7900014121D9864016003020BADCF
-:100A3400900000121F5990001B121E64D39400E50D
-:100A4400F09400400B90001B74FF75F0FE121E9C86
-:100A5400900019121E64FFAEF090001B121E64D3A6
-:100A64009FE5F09E5017900000121F5990001BEE56
-:100A74008FF0121F0890007A7404F0800690007AB8
-:100A84007402F0E490004FF0A3F0900000121F599C
-:100A9400900014E4121DD790007AE0FF900006E461
-:100AA400F0A3EFF0900000121F5990001B121E6477
-:100AB400FF900008E5F0F0A3EFF0A37404F0A37432
-:100AC400D8F07BFF7A117995020B81900000121FF8
-:100AD40059900016121D986401600D900015121DA6
-:100AE4009864016003020BAD900016E4121DD790C8
-:100AF4000015E4121DD790001B121E64C3943CE53C
-:100B0400F094005010900000121F5990001BE475DF
-:100B1400F002121E9C90007A7404F0900000121FE0
-:100B24005990001D121E64FFAEF090001B121E644B
-:100B3400C39FE5F09E4015900000121F5990001BC2
-:100B4400EE8FF0121F0890007A7401F090007AE0A2
-:100B5400FF900006E4F0A3EFF0900000121F5990FC
-:100B6400001B121E64FF900008E5F0F0A3EFF0A351
-:100B74007404F0A374F5F07BFF7A1179C812198F0D
-:100B8400900000121F5990001B121E64FF0234D201
-:100B940090007AE0D394024010E4F0900000121F19
-:090BA400599000207401121DD7C4
-:010BAD002225
-:0B002600900043121F79900046EDF09F
-:10003100E4FE900046E0FD14F0ED6029900043E4F9
-:1000410075F001121F62121D7F6EFEE4FFEFC39473
-:100051000850DFEE30E007C313648CFE8004EEC36A
-:0700610013FE0F80E8AF065B
-:010068002275
-:08244100900000EFF0A3EDF0A4
-:10244900E4A3F078037C007D017BFF7A1179FBFE20
-:102459007F40121D59E4900003F0A37455F0A37452
-:10246900AAF0900000E0FE900007F0900001E0FD66
-:10247900900077F0EE121F82249A0124C9022518D0
-:1024890003252506252507256A8025728100002553
-:10249900809000067402F0ED700E9000087402F04E
-:1024A900E4900075F0022580900001E0640160036A
-:1024B90002258090000804F0E4900076F00225805F
-:1024C900900006741BF07F05900001E075F012A4DE
-:1024D90024792FF8E6FE74032FF582E43400F5839E
-:1024E900EEF00FEFB412E17F17EFC3940840030237
-:1024F9002580900001E075F008A424692FF8E6FE14
-:1025090074032FF582E43400F583EEF00F80DA903E
-:1025190000067402F090000804F0805B90000674D5
-:1025290005F09000087401F07814E6A3F0A3742074
-:10253900F0900001E0FF700D900072E07002800FD2
-:102549009000738015EFB4012E900073E07008902D
-:10255900000B74FFF08020900072E090000BF08077
-:10256900169000067401F0800E9000067402F09037
-:102579000074E0900008F0900006E02404FF900049
-:1025890002F0FD7B017A007903120026900002E037
-:102599002403F582E43400F583EFF07F01122D2C3A
-:1025A900900001E0FF700B75FE0E53FFF043FF082A
-:1025B900800DEFB4010975FE0E53FFF043FF019042
-:1025C9000002E02401FFE433FE7B017A0079030273
-:0225D90031BA15
-:102DA600EF24FA605014604D24067069E4FE742D19
-:102DB6002EF8E6FF900077E075F012A424792EF83D
-:102DC600A6070EEEB412E7E4FE743F2EF8E6FF9077
-:102DD6000077E075F008A424692EF8A6070EEEB475
-:102DE60008E7900077E0700690007504F0229000E6
-:102DF600767401F022782DE6B4E30D90004D74014F
-:102E0600F008E6900072F02290004E7401F0782EE1
-:052E1600E6900073F0DE
-:012E1B002294
-:1032E600E4FF900000F0303821C238FB7A007929DB
-:1032F600782BE62403FD120026782BE6242CF8E62C
-:0A330600B50707782CE6FF122DA68C
-:01331000229A
-:1023D800011500011400C13FC140011350602800DD
-:1023E800A80BB80BEA0C1C0C800CB20CE40D160DF3
-:1023F800480D7A0DAC0DF70E420E880ED80F0A0F55
-:092408003C0F870FD2101D106873
-:102BF200E4FF780EE6B40122EF25E024A8F582E492
-:102C02003400F583E0FCA3E02432FDE43CFCC3780D
-:102C1200B0E69D18E69C501B801EEF25E024A8F527
-:102C220082E43400F583E0FCA3E0D378B096EC189C
-:102C32009650050FEFB414BA7815E6FEEFD39E78DE
-:102C4200134003068001169000ECE030E30A781589
-:102C5200EFF675F005A418F67813E6FED3949650B5
-:102C620006EEC3940A500D7815EFF675F005A41818
-:102C7200F61876507815E6FFD394005004D24080BF
-:102C820008EFD394014002C240EFD394015003D223
-:0A2C92003F22EFD394024002C23F3C
-:012C9C002215
-:102411004100DB004100DE004100DA004200D8004B
-:10242100004100DC00C12AC12BC12DC129C128C135
-:092431002C4100DD00C12EC12F79
-:102E1C009000DDE06062E4F0D22A9000DBE004F088
-:102E2C00E0C394054004E4F0D22B9000DEE004F003
-:102E3C00E0C3940A4004E4F0D22D9000D8E475F07D
-:102E4C0001121E4EC39000D9E094649000D8E09417
-:102E5C00004006E4F0A3F0D2289000DAE004F0E0A1
-:102E6C00C394FA4013E4F0D2299000DCE004F0E0C3
-:092E7C0094044004E4F0D22C227D
-:03000B0002335A63
-:10335A00C0E0C083C082C0D074FC258CF58C746632
-:10336A00258AF58A9000DD7401F0D0D0D082D0830E
-:03337A00D0E0326E
-:0E35E200758901758CFC758A66D2A9D28C227F
-:1034060075FE0FEF25E0FE7403A806088002C3339D
-:10341600D8FCF452FFEFB4040675FE0FE4F5FF2264
-:1035340075FE11EF5407F5FF75FE12AF058FFF7589
-:06354400FE1075FF0122DC
-:1030680075FE0FEF25E0FE7403A806088002C3333F
-:10307800D8FCF452FF7401A806088002C333D8FCB8
-:1030880042FF75FE0B7401A807088002C333D8FC01
-:1030980042FFEF70038DCE22EFB401038DCF22EFF4
-:0F30A800B402038DDE22EFB40304AF058FDF22E5
-:033FFD00010102BD
-:06243A000116000117006D
-:10328D00D28075FE0443FF0175FE0343FF0175FEF9
-:10329D000243FF01D28175FE0443FF0275FE034315
-:0D32AD00FF0275FE0243FF02781676012233
-:0C358500C280123591D281123591D280A3
-:05359100E4FF0FDFFE66
-:013596002212
-:10349D00D281D2801235912081037F0022C2811208
-:0B34AD0035913081037F00227F012257
-:0F35C500C280C28112358CD281123591023591AC
-:08361600123585C280023591D6
-:0B35F000123585123591C28002359122
-:0233A000AE0776
-:1033A2007D08AF051DEF6015C280EE30E704D281C3
-:0F33B2008002C281EE25E0FE12358C80E5C280DC
-:0133C10022E9
-:10337D007E08E4FDD281AF061EEF6012ED25E0FD63
-:10338D00C28012358C3081EEED4401FD80E8C280A3
-:02339D00AF057A
-:01339F00220B
-:10000E007D087F351232BA7D0A7F7612361E7D0448
-:05001E007F200232BA50
-:102FAC00900000121F797F10123142900000121F06
-:102FBC0059EF121DC57F11123142900000121F599A
-:102FCC00900001EF121DD77F1212314290000012B7
-:102FDC001F59900002EF121DD77F1312314290003F
-:102FEC0000121F59900003EF121DD77F14123142AB
-:102FFC00900000121F59900004EF121DD77F002281
-:0533C200900000EFF097
-:1033C700E47F20123142900000E06006EF4401FFE5
-:0D33D7008004EF54FEFFAD077F200232BAE4
-:0533E400900000EFF075
-:1033E900E47F27123142900000E06006EF4401FFBC
-:0D33F9008004EF54FEFFAD077F270232BABB
-:0534D200900003EFF083
-:1034D700E47F25123142EF54C0FF900003E04FFD17
-:0534E7007F250232BA4E
-:07361E008FFEAF058FFF22B4
-:063625008FFEAEFFAF06B0
-:01362B00227C
-:1032BA00900046EFF0A3EDF012349D7F0C1233A07C
-:1032CA001235F0900046E0FF1233A01235F090005C
-:0C32DA0047E0FF1233A01235F00235C5AA
-:05314200900046EFF0D3
-:10314700E4A3F012349D7F0C1233A01235F09000E7
-:1031570046E0FF1233A01235F012349D7F0D123373
-:10316700A01235F012337D900047EFF01236161299
-:0731770035C5900047E0FFA1
-:01317E00222E
-:102CAC000235A7E493A3F8E493A34003F68001F262
-:102CBC0008DFF48029E493A3F85407240CC8C33329
-:102CCC00C4540F4420C8834004F456800146F6DFF8
-:102CDC00E4800B010204081020408090228FE47ED7
-:102CEC00019360BCA3FF543F30E509541FFEE493ED
-:102CFC00A360010ECF54C025E060A840B8E493A3B4
-:102D0C00FAE493A3F8E493A3C8C582C8CAC583CADE
-:102D1C00F0A3C8C582C8CAC583CADFE9DEE780BE96
-:01244000009B
-:101C8900E709F608DFFA8046E709F208DFFA803E3D
-:101C990088828C83E709F0A3DFFA8032E309F6082A
-:101CA900DFFA8078E309F208DFFA807088828C8392
-:101CB900E309F0A3DFFA806489828A83E0A3F60846
-:101CC900DFFA805889828A83E0A3F208DFFA804C20
-:101CD90080D280FA80C680D4806980F280338010F7
-:101CE90080A680EA809A80A880DA80E280CA803360
-:101CF90089828A83ECFAE493A3C8C582C8CCC583D8
-:101D0900CCF0A3C8C582C8CCC583CCDFE9DEE780A7
-:101D19000D89828A83E493A3F608DFF9ECFAA9F026
-:101D2900EDFB2289828A83ECFAE0A3C8C582C8CC7C
-:101D3900C583CCF0A3C8C582C8CCC583CCDFEADE95
-:101D4900E880DB89828A83E493A3F208DFF980CCF7
-:101D590088F0EF60010E4E60C388F0ED2402B404F0
-:101D69000050B9F582EB2402B4040050AF23234597
-:061D79008223901CD973C7
-:101D7F00BB010689828A83E0225002E722BBFE0262
-:091D8F00E32289828A83E4932295
-:101D9800BB010CE58229F582E5833AF583E0225000
-:101DA80006E92582F8E622BBFE06E92582F8E2224A
-:0D1DB800E58229F582E5833AF583E4932264
-:101DC500BB010689828A83F0225002F722BBFE01FD
-:021DD500F322F7
-:101DD700F8BB010DE58229F582E5833AF583E8F042
-:101DE700225006E92582C8F622BBFE05E92582C8EE
-:021DF700F222D6
-:101DF900BC000BBE0029EF8DF084FFADF022E4CCCE
-:101E0900F875F008EF2FFFEE33FEEC33FCEE9DEC96
-:101E1900984005FCEE9DFE0FD5F0E9E4CEFD22EDDC
-:101E2900F8F5F0EE8420D21CFEADF075F008EF2F26
-:101E3900FFED33FD4007985006D5F0F222C398FD17
-:051E49000FD5F0EA22B4
-:101E4E00C5F0F8A3E028F0C5F0F8E582158270021F
-:061E5E001583E038F022BC
-:101E6400BB0110E58229F582E5833AF583E0F5F0BC
-:101E7400A3E0225009E92582F886F008E622BBFE99
-:101E84000AE92582F8E2F5F008E222E5832AF583DF
-:081E9400E993F5F0A3E99322A4
-:101E9C00BB010DC58229C582C5833AC583021E4E7E
-:101EAC005011C58229F808E5F026F618F5F0E58200
-:101EBC0036F622BBFE11C58229F808E225F0F5F0B2
-:101ECC00F218E23582F222F8E58229F582E5832ABE
-:0D1EDC00F58374019325F0F5F0E4933822AE
-:101EE900BB010A89828A83F0E5F0A3F0225006F744
-:0F1EF90009A7F01922BBFE06F3E5F009F3192241
-:101F0800F8BB0111E58229F582E5833AF583E8F00B
-:101F1800E5F0A3F0225009E92582C8F608A6F022C8
-:0D1F2800BBFE09E92582C8F2E5F008F222AF
-:101F3500EB9FF5F0EA9E42F0E99D42F0E89C45F002
-:011F45002279
-:101F4600E8600FECC313FCED13FDEE13FEEF13FF79
-:031F5600D8F1229D
-:091F5900E0FBA3E0FAA3E0F92289
-:101F6200F8E0FBA3A3E0F925F0F0E5821582700208
-:071F72001583E0FA38F022AC
-:091F7900EBF0A3EAF0A3E9F02269
-:101F8200D083D082F8E4937012740193700DA3A3EE
-:101F920093F8740193F5828883E473740293686002
-:061FA200EFA3A3A380DF02
-:101FA800EC8EF0A4CCC5F0CCCDF8EFA4CEC5F02DC6
-:101FB800FDE43CFCE8A42EC8C5F03DFDE43CFCEF84
-:0D1FC800A4FFE5F028FEE43DFDE43CFC2212
-:10192400E5082406F582E43400F583E005082290F6
-:101934000003301603900006E475F001121F6202E2
-:101944001D7F200FE97F2ED20F8018EF540F2490B3
-:10195400D43440D4FF30130BEF24BFB41A00500327
-:101964002461FFE50960021509050CE50C70020508
-:101974000B30160E900003E475F001121F62EF02A3
-:101984001DC50235D47403D2168003E4C216F508CB
-:10199400900003121F79E4F509F50BF50CE50960D5
-:1019A400077F2012196780F5750AFFC210C20FC2A3
-:1019B40011C212C214C215C217121933FF700D30AE
-:1019C40016057F00121978AF0CAE0B22B4255FC246
-:1019D400D5C213121933FF24D0B40A00501A75F07B
-:1019E4000A780930D50508B6FF0106C6A426F620F4
-:1019F400D5047002D21280D924CFB41A00EF500457
-:101A0400C2E5D213021B79D21080C6D20F80C0D295
-:101A14001180BCD2D580BAD21480B47F2012196749
-:101A24002011077401B5090040F1121924FF12199D
-:101A3400670219A1D217D2158095121924FB121925
-:101A440024FA121924F94A4B7006794A7A1C7BFF4E
-:101A540020112EE509602A7E008E82758300121DF6
-:101A64009860060EEE650A70F0C2D5EBC0E0EAC0DD
-:101A7400E0E9C0E0EE121BC0D0E0F9D0E0FAD0E01B
-:101A8400FB121D7FFF60AAEBC0E0EAC0E0E9C0E002
-:101A9400121967D0E02401F9D0E03400FAD0E0FB59
-:101AA400E50A0460DCD50AD980877BFF7A1B79BC00
-:101AB400D211809C791080027908C215C21780085F
-:101AC400D2D5790A8004790AC2D5E50A047002F5F0
-:101AD4000AE4FAFDFEFF121924FC7B0820101312FD
-:101AE4001924FD7B10300F0A121924FE121924FF49
-:101AF4007B20EC3382D592D55013C3E4300F069F7C
-:101B0400FFE49EFEE42010039DFDE49CFCE4CBF87E
-:101B1400C210EC700CCFCECDCCE824F8F870F38072
-:101B240017C3EF33FFEE33FEED33FDEC33FCEB3341
-:101B3400FB994002FB0FD8E9EB301005F8D0E0C464
-:101B440048B210C0E00AEC4D4E4F78207B0070C2C2
-:101B5400EAB50A0040BCC0E0121BC2D0F0D0E020BD
-:101B64001004C4C0E0C4B210C0F0121950D0F0D5B3
-:101B7400F0EB0219A1121F821A3E531AB8581A0F19
-:101B84004C1A0B421ABC4F1AC4441AC4491A2443AF
-:081B94001ACA551AAE461AAE3A
-:101B9C00451AAE471C6A501A132D1A172E1A3A2BD7
-:101BAC001A1B231A38201C532A19D34800001A3246
-:101BBC003F3F3F00790AA2D5201214301409B91006
-:101BCC00020404B9080104A2D52015025001042016
-:101BDC0011689211B509005034C0E07F2030121901
-:101BEC007F30A21172157214500F121C19C211C23F
-:101BFC0015C214C2177F30800F301403E9C0E012F5
-:101C0C001967301403D0E0F9D0E0B509CC301417C3
-:101C1C007F30B9100C1219677F583013077F78800A
-:101C2C0003B908031219673011057F2D0219677F5C
-:101C3C00202017F87F2B2015F322921180CF286ECD
-:101C4C00756C6C2900D2101219243010F8C210785F
-:101C5C000930D50108F60219D32D504349581219F1
-:101C6C00242403B405004001E4901C659312195818
-:0D1C7C00743A121958D212750904021AB8F0
-:00000001FF
diff --git a/Out/8835_EVB_241213_1140_7D68_010102.bin b/Out/8835_EVB_241213_1140_7D68_010102.bin
deleted file mode 100644
index 3552a84..0000000
Binary files a/Out/8835_EVB_241213_1140_7D68_010102.bin and /dev/null differ
diff --git a/Out/8835_EVB_241227_1101.bin b/Out/8835_EVB_241227_1101.bin
new file mode 100644
index 0000000..df1eadf
Binary files /dev/null and b/Out/8835_EVB_241227_1101.bin differ
diff --git a/Out/8835_EVB_241227_1101.hex b/Out/8835_EVB_241227_1101.hex
new file mode 100644
index 0000000..44c32b8
--- /dev/null
+++ b/Out/8835_EVB_241227_1101.hex
@@ -0,0 +1,968 @@
+:03000000022AEDE4
+:102AED0075FE7275FF00758E009000007F007E03ED
+:0D2AFD00E4F0A3DFFCDEFA7581BA022B4580
+:0F36560053797374656D20496E69742E0D0A00E7
+:103576001232357BFF7A367956120F49D2AED2BE59
+:08358600122DF912317780F4D7
+:10215F004100EB004100EC0002B9000002B50000A5
+:10216F0002B300004100ED0002A7000002AD000025
+:10217F0002B7000002B1000002AF000002A9000088
+:04218F0002AB00009F
+:10334A00EF540346FE08E6FF18EEF608EFF6FF9084
+:10335A0000EBE0FD3395E0FCC3EF9D2278B5E6FE75
+:05336A0008E6780222D4
+:1034BA0075FE3175FF8175FE0E43FF107DAB7F30BF
+:0D34CA001236E575FE599000EBE5FFF0228B
+:102A0200900000EFF0E5A420E003022AD575A401AE
+:102A12007F351236EC78B5760008A6077F36123677
+:102A2200EC78B512334AFFEE9CFE7C097DC4121588
+:102A320048780A1214E678B5A60608A6079000EDB3
+:102A4200E01215222A62002A70012A79022A8C03D6
+:102A52002A9A042AA8052AB6062AC50700002AD5FA
+:102A6200123366CEC313CE13D8F979A8806178B633
+:102A7200E625E079BA804478B5E6FE08E67803C335
+:102A820033CE33CED8F979AE8045123366C333CE16
+:102A920033CED8F979B88037123366C333CE33CE0A
+:102AA200D8F979B28029123366C333CE33CED8F93E
+:102AB20079B0801B78B6E625E079AAF718E63319D3
+:102AC200F78010123366CEC313CE13D8F979ACF760
+:102AD200EE19F7900000E04408FD7F311232F790C2
+:0B2AE2000000E09000EDF075A38122E1
+:10332300E5A430E11E75A4027F371236EC78B3763C
+:103333000008A6077F381236EC78B312334AF6EE4C
+:073343009C18F675A382221D
+:05219300C12F010D0346
+:10361000E4780FF67811F6780DE67810F6781276E1
+:02362000042282
+:10266400E4FE78B3E6FC08E6FDC394D8EC9403409A
+:10267400037F0022EF700302277CD3ED940FEC94C8
+:1026840003400302275AED94CBEC94005003022735
+:102694005AD3ED94AAEC94024022D22D780DE6FF91
+:1026A400137810F6302E11D3ED94BFEC940240044D
+:1026B400C22E80047810A607E4FE8070D3ED94AA9D
+:1026C400EC94025043ED9437EC9401403BD22E78C5
+:1026D4000DE6FF7810F6302D13D3ED9493EC9402AD
+:1026E4005004C22D8006EFC3137810F678127604D6
+:1026F400301011D3ED9451EC94015004C2108004B5
+:1027040078127601E4FE8024D3ED9437EC940150E2
+:102714001BD21078127601302E10ED9426EC940121
+:102724005004C22E800478127604E4FE302B11C3C8
+:10273400ED94F3EC94025006C22BE4FE80027E0179
+:10274400302C2FD3ED94DDEC94004006C22CE4FE33
+:1027540080207E01801CD3ED940FEC94034006D2BC
+:102764002B7E01800DD3ED94CBEC94005004D22C3D
+:102774007E01C229C22A8058C22BC22CD3ED949F59
+:10278400EC94035031ED9471EC94004029302910FD
+:10279400ED9484EC94035006C229E4FE80027E0189
+:1027A400302A2DD3ED9482EC94004006C22AE4FE34
+:1027B400801E7E01801AD3ED949FEC94034004D2D2
+:1027C40029800BC3ED9471EC94005002D22A7E014F
+:0227D400AF064E
+:0127D60022E0
+:102E62009000E8E05463600AE4FF1233D7E4780E7E
+:102E7200F622780E76017F01122664EF6008E4FFE5
+:102E82001233D7D22F22C22F9000E9E05407FFBF9E
+:102E92000605780E7603227810E6FD7F221232F7BD
+:102EA2007812E6FD7F211232F7780FE6C454F078EB
+:102EB2001146FD7F231232F77F011233D7780E7647
+:022EC2000222EA
+:04219800C139C13A4E
+:102F2000C2399000E8E020E65130E203D23A223084
+:102F30004004E4FF80119000E8E030E50D30223AD3
+:102F40007F3C1235437F010233F9E4FF122664EF20
+:102F50006008E4FF1233F9D22F22C22FD239303A5F
+:102F600019780EE6B40213C378BAE6941018E69402
+:0B2F70000E4005D239C23A22C23922BD
+:10355D00426F78204F70656E2E0D0A00426F7820F5
+:09356D00436C6F73652E0D0A001A
+:08219C00C13BC13C4100EFFF13
+:102FD600E4900000F09000E9E0FF5420FE9000002D
+:102FE600F09000EFE06E6032EF30E50E9000EE7488
+:102FF60001F07BFF7A35795D800BE49000EEF07B83
+:10300600FF7A357969120F49D23BC20DD23CD235CF
+:0A301600900000E09000EFF0D23DC2
+:01302000228D
+:10290700426F6F7374204F70656E204B65792E2868
+:102917006C696E653A2564290D0A006C6F6E672035
+:1029270032732070726573730D0A0073757070656A
+:1029370072206C6F6E672038732070726573730D29
+:102947000A0073686F72742070726573730D0A00E2
+:102957004B6579205061697220545820564F522890
+:102967006C696E653A2564292E0D0A004B6579203E
+:10297700506169722054696D654F7574286C696E72
+:10298700653A2564292E0D0A004B65792050616947
+:10299700722047657420564F52286C696E653A2538
+:1029A70064292E0D0A004B65792050616972204712
+:1029B700657420564F4C286C696E653A2564292E3C
+:1029C7000D0A004B657920506169722054582056D2
+:1029D7004F4C286C696E653A2564292E0D0A004B09
+:1029E7006579205061697220436E743A25642E28F8
+:0B29F7006C696E653A2564290D0A002A
+:1021A400C120C11FC11E0118004100DC004100E034
+:0E21B400004100DB004200DD00004100DF00C2
+:103622007BFF9000067401F0A3227BFF900006F05E
+:02363200A322D1
+:101B2D009000E9E030E4379000DDE475F001121427
+:101B3D003B9000DDE0FEA3E0FFC39464EE94004013
+:101B4D0007201C14D21C8010C3EF9490EE9401401A
+:101B5D0007201D04D21DD21ED219C21A804230197F
+:101B6D0038D23DE47818F6C219D21A9000DFF0C2CF
+:101B7D001D9000DDE0FEA3E0FFD39419EE9400501C
+:101B8D0008D220D21BD2358010C3EF94FAEE940008
+:101B9D005007301C04C21CD21FE49000DDF0A3F0EE
+:101BAD00301A75303972200D147F011233F9D20DB0
+:101BBD007A297907E412362C74B4021CFA7F0312C9
+:101BCD002CA29000DFE0D3940A5003021D2E301F8B
+:101BDD001AC21F78187602E49000DCF0900071F0C4
+:101BED00A3F07BFF7A297922120F49301E14C21EF1
+:101BFD00E49000E0F0781876037BFF7A29793212B1
+:101C0D000F49301B0FC21B781876017BFF7A29799B
+:101C1D0049120F49C21AC20D9000EEE06401600333
+:101C2D00021D417818E664026003021D039000DC7A
+:101C3D00E0C3940150147F01121D427BFF7A297974
+:101C4D005704900006F0A3021CCA9000DBE0D39469
+:101C5D00054010E4121D4F7A297973123622741142
+:101C6D00021CFA900072E0B40119E4FD7F02122407
+:101C7D00D19000727402F07A2979901412362C7476
+:101C8D001F803A900072E064027036900071E0603F
+:101C9D001A7F02121D429000DCF09000DB121D4FE6
+:101CAD007A2979AD12362274388042E4FD7F011213
+:101CBD0024D17BFF7A2979CA1236247442F0120F8F
+:101CCD00499000DCE0D3941440279000DBE004F051
+:101CDD00E4A3F07BFF7A2979E69000DBE0FF90002A
+:101CED0006E4F0A3EFF0A37401F0A37450F0020F1B
+:101CFD00499000DC802B7818E6640370379000E083
+:101D0D00E0FFC3941E501EEF540360047D01800953
+:101D1D009000E0E030E007E4FD7F031224D1900055
+:101D2D00E0E004F022E47818F6D20E9000E0F07FA7
+:041D3D0004122CA2BE
+:101D4100227D011224D1E4900071F0A3F022F078F9
+:0A1D510018F6D20E7F04122CA22215
+:1021C20041007A004100790041007B004100780023
+:102D1C00900000E0FF25E02484F582E43400F58384
+:102D2C0022900000E0FF25E0248CF582E43400F5CD
+:102D3C0083E0FCA3E0FDEF25E0249CF582E4340065
+:102D4C00F58322747C2FF582E43400F58322E4F0C1
+:102D5C00A3F0EF25E02494F582E43400F58322906F
+:102D6C000000E0FF2480F582E43400F58322E0FECD
+:102D7C00A3E0C39DEE9C2225E0248CF582E4340074
+:032D8C00F58322AA
+:0F36650075FE0B75FF0FC290C291C293C29222E5
+:10352900EF14600D14600D14600D2403700BD2901C
+:0A35390022D29122D29222D29322D4
+:05345E00900000E0FFFA
+:10346300EF14600D14600D14600D2403700BC290F3
+:0A34730022C29122C29222C29322CB
+:10326C00E4FF122D4FE4F074802F122D72E4F0EF76
+:10327C00122D21E4F0A3F0EF122D83122D5AE4F05D
+:0E328C00A3F0122D42E4F0A3F00FEFB404D42F
+:01329A002211
+:1031B900AC07747C2C122D52EDF0EAC313FEEB130D
+:1031C900FFEC122D21EEF0A3EFF0AF03EC122D83EB
+:1031D900EAF0A3EFF0900005E0FEA3E0FFEC122D6A
+:0F31E9005FEEF0A3EFF0EC122D43E4F0A3F02221
+:10347D00122D4FEDF074802F122D72EBF0EF122DF7
+:0F348D0021E4F0A37469F0122D42E4F0A3F022C1
+:101D5B00E4900000F0F0900000E0FFC39404400317
+:101D6B00021F50122D4FE0601F24FE60211460787B
+:101D7B00147003021E2424036003021EFF90000054
+:101D8B00E0FF123529021EFF12345E021EFF122DD8
+:101D9B001C122D3D122D7A50051235298003123459
+:101DAB005E122D2D122D7A5003021EFF900000E0C3
+:101DBB00122D43122D5AE0FEA3E0D39400EE9400B3
+:101DCB00400E900000E0122D5F74FFF5F012143BF3
+:101DDB00900000E0FF122D5FE0FCA3E04C600302DB
+:101DEB001EFF747C2F021E35122D1C122D3DE0FEA2
+:101DFB00A3E0D39DEE9C5005123529800312345E6F
+:101E0B00122D2D122D7A5003021EFF900000E012AE
+:101E1B002D43E4F0A3F0021EFF122D6BE0701312A2
+:101E2B0035A5C241900000E0247C122D52E4F00253
+:101E3B001EFF122D6BE0FE6402702E20410CD2416E
+:101E4B00EF122D21E4F0A37469F0122D1CE475F050
+:101E5B000112143BEF122D21E0FCA3E0C394FEEC26
+:101E6B0094005003021EF68031EE6401703720415E
+:101E7B000FD241900000E0122D21E4F0A374FEF08C
+:101E8B00122D1C74FFF5F012143BEF122D21E0FE06
+:101E9B00A3E0D39469EE94005051900000E0122D12
+:101EAB0070E4F08046122D6BE06403703EEF122D50
+:101EBB0021E0FEA3E0FFC394FEEE94004004D24168
+:101ECB00800BD3EF946AEE94005002C24190000055
+:101EDB00E025E02484304109122D2574FFF5F080B4
+:101EEB0007122D25E475F00112143B122D1CA3E0F3
+:101EFB00FD123021900000E0FF700A122D4FE09090
+:101F0B00007AF08037900000E0B4010C247C122D95
+:101F1B0052E0900079F08024900000E0B4020C2491
+:101F2B007C122D52E090007BF08011900000E0B409
+:101F3B00030A247C122D52E0900078F0900000E010
+:101F4B0004F0021D61E4900000F0900000E0FFC37C
+:101F5B0094045012122D42E475F00112143B9000C0
+:061F6B0000E004F080E438
+:011F7100224D
+:102F7B00456E74657220536869704D6F64652128C6
+:102F8B006C696E653A2564290D0A004E6F742047F3
+:102F9B00657420496E746F20536C656570284368A7
+:102FAB00675374617475733A25642C566F785F564A
+:102FBB006F75743A25642C526573746172745F4635
+:0B2FCB006C61673A2564292E0D0A0096
+:1021D200C13E4100E2004200E300004100E50F4140
+:0521E20000E100C13D19
+:0A36C200E4FF33A3CFF0A3EFF022E2
+:1035E800D2AC759A03D2BCD2BDD2A9D2AB75FE308B
+:0435F80043FF8022EB
+:1035FC00C2ACE4F59AC2BCC2BDC2A9C2AB75FE3066
+:04360C0053FF7F22C7
+:1030AC00303E3730253DC2259000E1E004F0E0C30E
+:1030BC0094054010E4A3F07DAA7F4F1232F7E49000
+:1030CC0000E1F0229000E1E0B404187BFF7A2F7944
+:1030DC007B90000674DCF0020F491235FC4387022A
+:0430EC001235E8228F
+:10329B00780EE6FF64026006200F03303D1F7BFFB4
+:1032AB007A2F7996900006E4F0A3EFF0A20F123676
+:0F32BB00C2A23D1236C2120F49C23DC322D32216
+:103235001234F3123646123691E4F5861232CA126A
+:1032450034BA7D087F761236E5D2A8D2AF12361091
+:103255007D697F031235D212366512326C12000E6B
+:073265009000D07401F0227B
+:030003000236F3CF
+:0636F300D23D75E20F322A
+:1021E700204029000000000000000000000000005F
+:1021F70000000000000000000000000000000000D8
+:1022070000000000000000000000000000000000C7
+:1022170000000000000000000000000000000000B7
+:0F222700000000C1384100F0004100F100C13754
+:0B36AC00E0FF04F074292FF8A699221B
+:1034F30075FE0443FF0CD2DF43878075BA0375AAB8
+:0B350300DC759852D299D298D2AC220D
+:0630670090004312151950
+:10306D00E4900046F075FE0443FF0C75FE0353FF1C
+:10307D00F3F0900046E0C39FE49E501C2036FDD235
+:10308D0036900043E475F001121502121339F599CB
+:0E309D00900046E004F080DA75FE0453FFF365
+:0130AB002202
+:03002300022B8A23
+:102B8A00C0E0C083C082C0D075D000C000C005C0FC
+:102B9A0006C007309904C299C236309867C298D2E3
+:102BAA003D9000F0E014601914602D24027055E580
+:102BBA00999000F0B455087401F0A3E4F0800E80F7
+:102BCA0011E5999000F0B4AA097402F0A31236AC88
+:102BDA008032E4F0A3F0802C9000F11236AC782B0E
+:102BEA00E62404FFE433FEE0FDC39FEE6480F8743C
+:102BFA0080985005ED9440400B9000F1E4F090006D
+:102C0A00F0F0D238D007D006D005D000D0D0D0828C
+:052C1A00D083D0E03280
+:0E36830090002BEFF01236D590002BE0FF22C6
+:1036460075F10A759F03759EFD759692759A02220D
+:0836D5002037FDD2378F972248
+:03008B0002358EAD
+:10358E00C0E0E59630E1055396FDC237E59630E092
+:07359E00035396FED0E0325A
+:1027D700506F776572204F6E20537461746521487E
+:1027E700616C6C28307825782920286C696E653AE9
+:1027F7002564290D0A004177616B65205374617464
+:102807006520286C696E653A2564290D0A004E6FAC
+:10281700726D616C20537461746520286C696E65F4
+:102827003A2564290D0A00536C656570205374615D
+:10283700746520286C696E653A2564290D0A005372
+:102847005441303A307825782C535441313A307816
+:1028570025782C535441323A307825782C436869CF
+:10286700705F5354413A307825782C564F585F5350
+:1028770054413A307825782E4465635F536C65651B
+:10288700703A25640D0A00566E74633A25642C4924
+:10289700766F6C3A25642C566261743A25642C561F
+:1028A700696E3A25642C56706D69643A25642C5616
+:1028B7006F723A25642C566F6C3A25642C56646403
+:1028C7003A25642C49766F723A25642E0D0A004426
+:1028D70065636E745F536C65657044656C617920E0
+:1028E70052656C6F61642E0D0A00456E7465722027
+:1028F7005374616E646279204D6F6465210D0A001F
+:102236004300D00402024100CD004100CE00C1356A
+:0E224600C1344100CF004100D3004100CC0064
+:10002600E6FF08A3E6CFF0A3EFF022900005E4F088
+:10003600A3740AF07B147A007D02227BFFE0900015
+:1000460006FFE4F0A3EFF02290007AF0900079F03A
+:1000560090007BF0900078F022F0E4900005F0A389
+:10006600F0FBFA22900005E4F0A37403F07B647AB7
+:10007600007D02227BFF9000067402F0A322FFE4BB
+:05008600F0A3EFF022E1
+:10343D00E4FBFF1234547F0112347DE4FB7F021252
+:10344D0034547F0302347D7D0412347DE4FB7D040E
+:01345D00224C
+:10157500303518C235E49000CEF01217E4FD7F0334
+:101585001231B9740212004ED23D22202F03300BC6
+:101595005F203005D230D2352290007AE0640260B7
+:1015A5000E120031E4FF1231B990007A7403F09005
+:1015B5000079E06402600E1200317F011231B990AA
+:1015C50000797403F090007BE06402600912003139
+:1015D50012184C7403F0900078E06402700302174F
+:1015E500AA1200317F031231B99000787403F022FA
+:1015F50030300CC230C232C231C23CC20CD2347857
+:101605000EE6FF70030216C66403701A203205D277
+:101615003202343D1217AB7D017F031231B97401DB
+:1016250012004E0216BD20310ED231C232D235E43F
+:101635009000D3F00216BD9000CEE0C39401505740
+:10164500E004F09000D3E014601A146027146034AD
+:101655002403706490007AE06404605C7B017D047F
+:10166500E4FF802E900079E06404604C7B017D04EA
+:101675007F01801E90007BE06404603C7B017D045B
+:101685007F02800E900078E06404602C7B017D046D
+:101695007F0312347D80219000CEE0C3940F500566
+:1016A500E004F08013E49000CEF09000D3E004F065
+:1016B500E0C394044002E4F0C23CC20CC220D23321
+:1016C5002230310AC23112343DD235D23422203C87
+:1016D5000C203309200C062020030217AA9000CE07
+:1016E500E0FFC394015004E004F022EFC39464408A
+:1016F500030217959000CEE004F07814E6C3941920
+:10170500503090007AE0640370030217AAE4900059
+:1017150005F0A3F07B64FA7D03FF1231B990007ADE
+:10172500740412005FFD7F011231B99000797402D3
+:1017350080107814E6C39432501312181912183811
+:10174500740112005FFD12184C7402801F7814E6B4
+:10175500C3944B5027121819121838740112005FE0
+:101765007D017F021231B990007B740112005FFD8B
+:101775007F031231B99000787402F0227814E6C321
+:10178500946450211217AB7D011218437401801225
+:10179500C23CC233C20CC220E41217E4FD12184346
+:0517A500740212005166
+:1017AA0022E4900005F0A3F0FBFA7D01FF1231B9A3
+:1017BA00E4900005F0A3F0FBFA7D017F011231B934
+:1017CA00E4900005F0A3F0FBFA7D017F021231B923
+:1017DA00E4900005F0A3F0FBFA22900005F0A3F0D4
+:1017EA00FBFAFDFF1231B9E4900005F0A3F0FBFA11
+:1017FA00FD7F011231B9E4900005F0A3F0FBFAFD78
+:10180A007F021231B9E4900005F0A3F0FBFA22E45A
+:10181A00900005F0A3F0FBFA7D01FF1231B99000A8
+:10182A007A7401F0E4900005F0A3F0FBFA227D013E
+:10183A007F011231B9900079227F031231B99000E9
+:0B184A007A227F021231B990007B224D
+:1035BC009000ECE0FF04F0122A029000ECE0C394BF
+:0635CC00084002E4F022B9
+:10349C00122FD6121B2D1230F0302111C221122EF8
+:0E34AC0062122F20122C1F12157512185522B5
+:0936CC007B017A0079E6022EC4AC
+:10232F00E4900000F09000D0E0FFA3E0FE6F60713A
+:10233F00A3EEF09000D0E0A3F024FE6030146043D1
+:10234F00146051240360030224D012006AE4FF12C8
+:10235F0031B912006A7F011231B97A2779D790000B
+:10236F00EE120041A37401F0A374F080307F0112CC
+:10237F00341B7BFF7A2779FD9000067401F0A3745C
+:10238F00FC801A9000E5740FF07A28791512007A04
+:10239F00740880097A28792E12007A7413F00224B7
+:1023AF009B9000D1E024FE603914603D147003024D
+:1023BF0024B3240360030224D09000CCE004F0E0A7
+:1023CF00C3940850030224D09000D07402F0E4901C
+:1023DF0000CCF07815E660030224D09000D074048E
+:1023EF00F0229000D07403F0222025030224D0C2E3
+:1023FF00257A2879469000E61200419000E7E09098
+:10240F0000081200479000E8E090000A1200849044
+:10241F0000E9E090000C1200849000EAE0FF9000C9
+:10242F000EE4F0A3EFF09000E5E0FF900010E4F071
+:10243F00A3EFF0120F497BFF7A28798E78B3E6FF6E
+:10244F000890000612002A78A712002678B9120009
+:10245F002678AD12002678B712002678B112002622
+:10246F0078AF12002678A912002678AB1200261238
+:10247F000F499000E5E0D394004014E014F0303D94
+:10248F0040C23D740FF07BFF7A2879D6020F497B4B
+:10249F00FF7A2879F1120F499000D07404F0E4907C
+:1024AF0000E1F02212329B50127F04122CA2E4FFA3
+:1024BF001233F9E4FF12341B0230AC9000D07402D7
+:0124CF00F01C
+:0124D00022E9
+:10317700302436C2249000CDE0FF04F0EF14601233
+:103187001460141460161460182404701C1235BCE3
+:1031970080171236CC8012123323800D12349C8094
+:1031A7000812232FE49000CDF0302605C226121D09
+:0231B7005B2299
+:10008E00426F6F7374204F70656E2E286C696E65AB
+:10009E003A2564290D0A00426F7820436C6F736510
+:1000AE002E286C696E653A2564290D0A00426F7818
+:1000BE00204F70656E2E286C696E653A2564290D89
+:1000CE000A004F70656E20426F7820434D442054D5
+:1000DE0058204F7665722E0D0A004F70656E2042C5
+:1000EE006F7820416E642045617270686F6E652076
+:1000FE00476574496E284E756D3A25642928566FEA
+:10010E00785374613A30782578292E0D0A00436CA5
+:10011E006F736520426F7820416E6420466F726364
+:10012E006520566F6C746167652055702E0D0A2020
+:10013E0000564F5820566F757420355628564F5816
+:10014E005F5354413A307825782C6C696E653A25A8
+:10015E0064292E0D0A00564F5820434847204675F5
+:10016E006C6C2E0D0A00564F582047657420496E50
+:10017E00746F20536C6565702E0D0A00466F6C6CA3
+:10018E006F772043484720496E697453746120533A
+:10019E006574204D61782056706D69642E28566FF7
+:1001AE00785F7374613A3078257829286C696E65AA
+:1001BE003A2564290D0A00466F6C6C6F7720434810
+:1001CE004720496E69745374612E28566F785F7399
+:1001DE0074613A3078257829286C696E653A256401
+:1001EE00290D0A00466F6C6C6F77204348472053E9
+:1001FE007461312C4E6F2045617250686F6E6520B0
+:10020E00496E20426F782E286C696E653A256429F6
+:10021E000D0A00466F6C6C6F77204348472053746D
+:10022E0061312C564F5220436867696E67284976B4
+:10023E006F723A25646D41292E286C696E653A25D8
+:10024E0064290D0A00466F6C6C6F77204348472077
+:10025E00537461312C564F4C20436867696E672882
+:10026E0049766F6C3A25646D41292E286C696E654E
+:10027E003A2564290D0A00466F6C6C6F772043484F
+:10028E004720537461322C4765742049564F523AB9
+:10029E0025646D412E286C696E653A2564290D0A18
+:1002AE0000466F6C6C6F7720434847205374613261
+:1002BE002C4765742049564F4C3A25646D412E28C3
+:1002CE006C696E653A2564290D0A00466F6C6C6F79
+:1002DE00772043484720537461332C564F582043A0
+:1002EE006867205265496E69742E286C696E653A8E
+:1002FE002564290D0A00466F6C6C6F7720434847C2
+:10030E002053746133284356292C564F5220567071
+:10031E006D6964204164645374612849766F723A42
+:10032E0025646D41292E286C696E653A2564290D68
+:10033E000A00466F6C6C6F772043484720537461F8
+:10034E0033284356292C564F522056706D6964201F
+:10035E005375625374612849766F723A25646D4104
+:10036E00292E286C696E653A2564290D0A00466FA0
+:10037E006C6C6F7720434847205374613328434396
+:10038E00292C564F522056706D6964205375625356
+:10039E0074612849766F723A25646D41292E286C56
+:1003AE00696E653A2564290D0A00466F6C6C6F778D
+:1003BE00204348472053746133284343292C564F1A
+:1003CE00522056706D6964204164645374612849EB
+:1003DE00766F723A25646D41292E286C696E653AE6
+:1003EE002564290D0A00466F6C6C6F7720434847D1
+:1003FE002053746133284356292C564F4C20567087
+:10040E006D6964204164645374612849766F6C3A57
+:10041E0025646D41292E286C696E653A2564290D77
+:10042E000A00466F6C6C6F77204348472053746107
+:10043E0033284356292C564F4C2056706D69642034
+:10044E005375625374612849766F6C3A25646D4119
+:10045E00292E286C696E653A2564290D0A00466FAF
+:10046E006C6C6F77204348472053746133284343A5
+:10047E00292C564F4C2056706D696420537562536B
+:10048E0074612849766F6C3A25646D41292E286C6B
+:10049E00696E653A2564290D0A00466F6C6C6F779C
+:1004AE00204348472053746133284343292C564F29
+:1004BE004C2056706D696420416464537461284900
+:1004CE00766F6C3A25646D41292E286C696E653AFB
+:1004DE002564290D0A00466F6C6C6F7720434847E0
+:1004EE0020537461342C564F782056706D696420F9
+:1004FE0041646453746128566F75743A3078257868
+:10050E002C49766F6C3A25646D412C49766F723AA0
+:10051E0025646D4129286C696E653A2564292E0D76
+:10052E000A00466F6C6C6F77204348472053746106
+:10053E00342C564F78204368696E6728566F757451
+:10054E003A307825782C49766F6C3A25646D412CBB
+:10055E0049766F723A25646D4129286C696E653A49
+:10056E002564292E0D0A00466F6C6C6F7720434868
+:10057E004720537461342C564F522056706D696467
+:10058E002041646453746128566F75743A3078252F
+:10059E00782C49766F723A25646D4129286C696E04
+:1005AE00653A2564292E0D0A00466F6C6C6F772014
+:1005BE0043484720537461342C564F522043686988
+:1005CE006E6728566F75743A307825782C49766F99
+:1005DE00723A25646D4129286C696E653A25642945
+:1005EE002E0D0A00466F6C6C6F77204348472053E0
+:1005FE007461342C564F4C2056706D6964204164E2
+:10060E006453746128566F75743A307825782C4986
+:10061E00766F6C3A25646D4129286C696E653A25B2
+:10062E0064292E0D0A00466F6C6C6F772043484785
+:10063E0020537461342C564F4C204368696E6728E2
+:10064E00566F75743A307825782C49766F6C3A254A
+:10065E00646D4129286C696E653A2564292E0D0A50
+:10066E0000466F6C6C6F772043484720537562537A
+:10067E0074612C564F4C2F564F52286C696E653A4A
+:10068E002564292E0D0A00466F6C6C6F7720434847
+:10069E0047205375625374612C564F52286C696E05
+:1006AE00653A2564292E0D0A00466F6C6C6F772013
+:1006BE00434847205375625374612C564F4C286C37
+:1006CE00696E653A2564292E0D0A00466F6C6C6FB3
+:1006DE007720434847205375625374612C28535436
+:1006EE00413A307825782C56706D69643A30782509
+:1006FE007829286C696E653A2564290D0A00466FC3
+:10070E006C6C6F7720434847204164645374612CAE
+:10071E00285354413A307825782C56706D69643AD6
+:10072E003078257829286C696E653A2564290D0A7A
+:10073E00005258305F4275666665725B305D3A30C6
+:10074E007825782C5258305F4275666665725B313B
+:10075E005D3A307825782C5258305F427566666562
+:10076E00725B325D3A307825782C5258305F427584
+:10077E00666665725B335D3A307825782C52583058
+:10078E005F4275666665725B345D3A307825782C0B
+:10079E005258305F4275666665725B355D3A3078E9
+:1007AE0025782C5258305F4275666665725B365DF1
+:1007BE003A307825782C5258305F427566666572ED
+:1007CE005B375D3A307825782C6C696E653A256416
+:1007DE000D0A0000000000000000000000000000F4
+:1007EE0000000000000000000000000000000000FB
+:1007FE0000000000000000000000000000000000EB
+:10080E0000000000000000000000000000000000DA
+:03081E00000000D7
+:10225400C10FC10CC10D410073FFC10B42004E0000
+:102264000042004C000042007100001A69000000A6
+:10227400000000000000000000000000000000005A
+:102284000000000000000020248300000000000083
+:10229400000000000000000000000000000000003A
+:1022A40000000000000000000000000000004100E9
+:1022B400700042006E00004200740000C10E410034
+:0222C4007700A1
+:101F720090001574011213C47402900076F0900060
+:101F8200000214F990000E121451FF900006E5F0C1
+:101F9200F0A3EFF0A37404F0A322E6FFE4F0A3EFB2
+:101FA200F008E6FFA3E4F0A3EFF008E6FFA3E4F0F5
+:101FB200A3EFF008E6A3FFE4F0A3EFF02290001AEB
+:101FC200121352900006F078A7E6FF08E6A3CF228C
+:101FD2007BFF9000067404F0A322900006121451B5
+:101FE20090000EFFAEF00214517BFF9000EAE0FF7A
+:101FF200E4900006F0A3EFF0A3229000151213C4A0
+:1020020090001A0213527BFF900006ECF0A322907C
+:102012000004121451FFAEF090000C021451900013
+:102022000C8FF00214A89000EAE0540CFBE4FAF9D9
+:10203200F8900048E0FFE4FCFDFEC30214D59000D6
+:102042000A121451D3FFED9FEC95F022EE8FF0901F
+:10205200000E0214A8900017021352900013E4120B
+:1020620013C4E49000120213C47BFF900006F0A395
+:102072002290001AEF1213C49000762290001802E8
+:1020820013522FF8E6FE74032FF582E43400F58331
+:10209200229000141213C47BFF229000EAE0540C39
+:1020A20022FF900008E4F0A3EFF022E490004EF04B
+:1020B200A322E6FC08E6FD25E0FFEC338FF00214D4
+:1020C200A874019000160213C4C3FDACF09FEC9EED
+:1020D2002290004BE0FFD3941522FFE4FCFDFEFAB0
+:1020E200F9F8C30214D5E0FFE4900006F0A3EF2252
+:1020F20078ABE6FE08E6FF229000EAE05410FFE427
+:10210200FCFDEF2290006CF0A3F0900076F022E448
+:102112009000180213C4E49000170213C4EDF0A358
+:102122007403F0A322E490004BF0900049F0229057
+:1021320000EAE05420FFE4FC22EE8FF00214A890A3
+:10214200004EE09400229000130213529000067495
+:0D21520002F0222EF8E6FF900073E0A422B8
+:052CA200900043EFF07B
+:102CA700E4A3F0A3F07F271231F8900044EFF07F00
+:102CB700371231F8900045EFF0900043E024FD60B3
+:102CC7001B14602424FE602824057035900045E01D
+:102CD7004494F0900044E04498F08025900044E04C
+:102CE7004406F054E7F08019900045E054FD800950
+:102CF700900045E04402F054FEF0900044E054E1B7
+:102D0700F0900044E0FD7F271232F7900045E0FD88
+:052D17007F370232F7D6
+:101855009000E8E054186003D20B22C20B20390334
+:10186500021B04303B72200D207F3C1235437F0163
+:101875001233F9D20D7A00798E740112206B74CF70
+:10188500F0120F497F03022CA2122127A3F0C200F8
+:101895009000EEE07023C20CD201D202C204C2074E
+:1018A500C203C208C209D20FC2341221067A0079D6
+:1018B500A50412206B74FC8017C201C202D204C2B7
+:1018C500057BFF7A0079BB9000067402F0A37409CA
+:1018D500F0120F49C20DC23B2004030219CD90003E
+:1018E50049E0C394055003021A9D90004AE0C39451
+:1018F50005500A7F06122CA290004A802120004044
+:101905001220D3501FEF54037003FD800990004B44
+:10191500E020E0077D017F061224D190004BE00412
+:10192500F00219CD7F04122CA2E490004BF0D200F6
+:10193500D20EC20F7BFF7A0079D0120F490219CD62
+:101945007818E660030219CD300E2EC20E9000EA1B
+:10195500E0FF540C900048F06018EF540C7B0C121B
+:1019650020DC90007070067402F00219CD7401F04D
+:101975008056E4900070F0804F122028604A1220B3
+:101985009CFF601ED20CD235E4FCFDFE7B0CF8C337
+:101995001214D590007070057402F0800A7401F07D
+:1019A5008005E4900070F07BFF7A0079E890007084
+:1019B500E0900006121FB89000EAE01220A3120F73
+:1019C5004912209C900048F0200103021B0130348D
+:1019D5002D200D167F011233F9D20DD20FE41221FD
+:1019E50006900049F0C207D203227F03122CA27B86
+:1019F500FF7A01791C120F49C20DC23480552003AC
+:101A050052900049E0D394035003021A9D90004A76
+:101A1500E0FFD39415501CEF54037003FD8009902B
+:101A2500004AE020E0077D017F811224D190004A21
+:101A3500021A9D1220D3501BEF54037003FD800939
+:101A450090004BE020E0077D017F071224D1900034
+:101A55004B804530021B7F03122CA27A01793F127D
+:101A65001FEB7402F0A374E7F0120F49C202021BC8
+:101A7500012007509000EAE054307B301220DC60F2
+:101A85000E12209CFFE4FCFDFEEF6003303F249026
+:101A95000049E0D394325004E004F0227BFF7A0140
+:101AA5007964120F49D207122127C2087F04122C2C
+:101AB500A2804990006DE070437B017A0079501255
+:101AC500082180381220D3501EEF54037003FD8087
+:101AD5000990004BE020E0077D017F801224D19022
+:101AE500004BE004F08015200812D2087F04122C68
+:101AF500A2C20F7BFF7A017974120F49C206222018
+:101B05000611D2067F04122CA2C20F12209C90004F
+:101B150048F022122028600F12209CFF6004D20C8E
+:071B2500D235900048EFF0FB
+:011B2C002296
+:0608210090000012151901
+:10082700900076E01470030208F51470030209CCF7
+:10083700147003020A3C147003020BEE24046003D5
+:10084700020D3F121F8090001D1213526003020D0C
+:100857003F900077E0D3940A5031E004F090001AFB
+:10086700743C1213C4300A03020D3F121F8012207A
+:1008770002FF1235437A01798A121FEB7403F0A342
+:10088700747FF0120F49D20A020D3FE4900077F00F
+:10089700C20A121F80E41220C5900015E41213C487
+:1008A70012205D900011E41213C4900010E412139B
+:1008B700C4122111122118E4F5F012205190000CF6
+:1008C700E4F5F01214A8900019E41213C490001B69
+:1008D700743C1220777401F01220ADF07BFF7A018F
+:1008E70079C5121FED7403F0A374A6020A8F900056
+:1008F700EAE0FB5420FFE4FCFDFEEF6028EB541018
+:10090700FF6022121F8090001D74011213C4E4902F
+:100917000076F07BFF7A0179F29000067403F0A36A
+:1009270074B5020A8F122131EF703D1220F2121FA7
+:100937008090000212213B7D051213E6EF7802C377
+:1009470033CE33CED8F9FF121F8090000612213B19
+:1009570078AB90000A1220B47A027921122008128B
+:10096700211F74C3F0120F491220FA704778A7E6C7
+:10097700FE08E6FF121F80EE8FF012148918E6FEBC
+:1009870008E6FF7D051213E6EF7802C333CE33CEB8
+:10099700D8F9FF121F8090000412213B78A790001E
+:1009A700081220B47A02795312200812211F74D03A
+:1009B700F0120F49121F8090001C740112207774E7
+:1009C70002F0020D3FD390004FE0940512214150F1
+:1009D70003020A481220ADF0122131FDEF702212F6
+:1009E70020F2121F8012204E74011221127BFF7A0F
+:1009F700027985EE121FF37403F0A374ECF0120F63
+:100A0700491220FA702678A7E6FE08E6FF121F8033
+:100A1700EE12202074011221197BFF7A0279AFEEC2
+:100A27001220EB12212074F6F0120F499000767411
+:100A370003F0020D3FD390004FE094021221415082
+:100A47000AE475F00112143B020D3F1220AD121F8C
+:100A57007F90000A121FDFD39FE5F09E5016121FEA
+:100A67008090000812145190000C121FE5D39FE5E7
+:100A7700F09E4018E4121F7C90001CE41213C47A05
+:100A87000279D9121FD27410F0020D3C121F801286
+:100A9700207E64016003020B3C90000E121451D3B8
+:100AA7009414E5F0940050499000EAE030E5259071
+:100AB70000167401121FFFC3943C4006121F8012D8
+:100AC7002111121F80121F867422F07BFF7A03798F
+:100AD70004020B39121F8090001374011213C41201
+:100AE7001F80121F867429F07BFF7A037940020B5F
+:100AF70039121F80121FDCD39FE5F09E9000004043
+:100B07001C1214F990001374011213C4121F8012DF
+:100B17001F867433F07BFF7A03797C80151214F9F2
+:100B27001220C3121F80121F86743AF07BFF7A03CC
+:100B370079B8120F49121F8012205764016003020F
+:100B47000D3F12201AD39414E5F0940050499000F9
+:100B5700EAE030E4257401121FFCC3943C400612FE
+:100B67001F80122118121F8090000C121F89744DCC
+:100B7700F07BFF7A0379F4020D3C121F8074011297
+:100B87002065121F8090000C121F897454F07BFFA0
+:100B97007A047930020D3C121F80122011D39FE591
+:100BA700F09E90000040201214F990001274011278
+:100BB70013C4121F8090000C121F89745EF07BFF14
+:100BC7007A04796C020D3C1214F990001574011225
+:100BD70013C4121F8090000C121F897465F07BFFED
+:100BE7007A0479A8020D3CD390004FE094141221A7
+:100BF70041501DE475F00112143B1220F2121F80C0
+:100C070012204E78A7E6FF08E6CF122020020D3FFC
+:100C17001220AD121F7F12207E6401706F122057C1
+:100C270064017068121FDC1220CB4008121F80126B
+:100C37002040403A121F801220111220CB400B1285
+:100C47001F809000081220434024121F801220C3E7
+:100C5700121F72121FBFF0A3EFF078AB121FCB1257
+:100C67001F92748CF07BFF7A0479E4020D3C121F0B
+:100C770080121FBFF0A3EFF078AB121FCB121F92A9
+:100C87007493F07BFF7A057930020D3C121F8012B6
+:100C9700207E64017051121FDC1220CB4008121F06
+:100CA700801220404023121F80900016121F7512D9
+:100CB7002002900006F078AB121FCB121F9274A689
+:100CC700F07BFF7A057975801B121F801220029036
+:100CD7000006F078AB121FCB121F9274ACF07BFFAB
+:100CE7007A0579B7120F49121F80122057640170D5
+:100CF70047900008122014D31220CC500F121F80E7
+:100D0700900004121451C31220475017121F80126B
+:100D17001F72121FBF121F9274BAF07BFF7A0579F8
+:100D2700F28012121F80121FBF121F9274C0F07B35
+:100D3700FF7A067934120F49121F8012207EFF6452
+:100D470001600A12205764016003020EC81221488D
+:100D5700FE6401600D9000121213526401600302D9
+:100D67000E50EF64017025122057B4011FEEB40135
+:100D77001B122148B4011590001474011213C47A90
+:100D870006796F121FD274D8F0120F49121F801202
+:100D9700207E6401701B12205770161221486401CF
+:100DA7007038041220937A067995121FD474E28062
+:100DB70025121F8012207E7021122057B4011B902C
+:100DC7000012121352B4011274011220937A067999
+:100DD700B7121FD474EDF0120F49121F8012205D55
+:100DE70090001412135264016003020EDD121F807B
+:100DF700122002D39400400890001A74FE12137F49
+:100E0700900019121352FF122002D39F500B121F8A
+:100E1700801220737404F080069000767402F0123A
+:100E270020AD121F7F900014E41220771220E812E1
+:100E37001F7F1220021220A3A37405F0A3740CF0E5
+:100E47007BFF7A0679D9020EBB121F80900016121B
+:100E570013526401600A90001512135264017076F0
+:100E6700900016E41213C4E4121FFCC3943C500B09
+:100E7700121F8090001A740212137F7404121F7CD1
+:100E870090001B121352FF122002C39F4009121F2A
+:100E9700801220737401F09000761220E8121F7FF1
+:100EA7001220021220A3A37405F0A37429F07BFF7C
+:100EB7007A07790C120F49121F80122002FF0235A0
+:100EC70043900076E0D39402400CE4121F7F900019
+:060ED7001D74011213C49A
+:010EDD0022F2
+:0B313400900043121519900046EDF0CA
+:10313F00E4FE900046E0FD14F0ED6029900043E4BA
+:10314F0075F0011215021213396EFEE4FFEFC394EE
+:10315F000850DFEE30E007C313648CFE8004EEC32B
+:07316F0013FE0F80E8AF061C
+:013176002236
+:0824D100900000EFF0A3EDF014
+:1024D900E4A3F078037C007D017BFF7A0779E1FEB4
+:1024E9007F40121313E4900003F0A37455F0A37412
+:1024F900AAF0900000E0FE900007F0900001E0FDD6
+:10250900900073F0EE121522252A01255602258C1A
+:102519000325960625960725DB8025E381000025FE
+:10252900EE12214EED700E9000087402F0E4900056
+:1025390071F00225EE900001E0640160030225EECE
+:1025490090000804F0E4900072F00225EE90000675
+:102559007420F07F05900001E075F012A424831225
+:102569002084EEF00FEFB412EC7F17EFC3940D50F7
+:1025790074900001E075F00DA42469122084EEF036
+:102589000F80E812214E90000804F0805890000650
+:102599007405F09000087401F07814E6A3F0A374B0
+:1025A90020F0900001E0FF700D90006EE070028055
+:1025B9000F90006F8015EFB4012B90006FE0700849
+:1025C90090000B74FFF0801D90006EE090000BF0FE
+:1025D90080139000067401F0800B12214E90007058
+:1025E900E0900008F0900006E02404FF900002F05B
+:1025F900FD7B017A007903123134900002E0240353
+:1026090012208BEFF07F01122CA2900001E0FFB4A1
+:10261900010B75FE0E53FFF043FF08800CEF7009A4
+:1026290075FE0E53FFF043FF01900002E02402FF04
+:10263900E433FE7B017A007903123067900001E0F0
+:10264900FFB4010A75FE0353FFF343FF0822EF703D
+:0A2659000975FE0353FFF343FF046D
+:012663002254
+:102D8F00EF24FA60441460412406705DE4FE742D54
+:102D9F0075F01212215524832EF8A6070EEEB412E9
+:102DAF00EDE4FE743F75F00D12215524692EF8A63F
+:102DBF00070EEEB408ED900073E0700690007104FA
+:102DCF00F0229000727401F022782DE6B4E30D909A
+:102DDF00004C7401F008E690006EF02290004D74E4
+:092DEF0001F0782EE690006FF06F
+:012DF80022B8
+:1030F000303840C2387BFF7A07793F782990000644
+:10310000121F9C08A3121F9CA37406F0A37499F0CD
+:10311000120F497B007A007929782BE62403FD12EF
+:103120003134782BE6242CF8E6B50707782CE6FF37
+:03313000122D8FCE
+:013133002279
+:1022C600011500011400C13FC140011350602800F0
+:1022D600A40BB80BEA0C1C0C800CB20CE40D160D0A
+:1022E600480D7A0DAC0DF70E420E880ED80F0A0F68
+:0922F6003C0F870FD2101D106887
+:1034D700EF25E024A4F582E43400F583E0FCA3E0C3
+:0C34E700227815EFF675F005A418F62207
+:102C1F00E4FF780EE6B402151234D72432FDE43CFB
+:102C2F00FCC378BAE69D18E69C500E80111234D77B
+:102C3F00D378BA96EC189650050FEFB414D47815D4
+:102C4F00E6FEEFD39E78134003068001169000E94D
+:102C5F00E030E3031234E87813E6FED3949650067F
+:102C6F00EEC3940A50061234E81876507815E6FF32
+:102C7F00D394005004D2408008EFD394014002C295
+:102C8F0040EFD394015003D23F22EFD3940240027E
+:022C9F00C23F32
+:012CA1002210
+:1022FF004100D7004100DA004100D6004200D4006F
+:10230F00004100D800C123C124C126C122C121C16F
+:09231F00254100D900C127C128A5
+:102DF9009000D9E06062E4F0D2239000D7E004F0BB
+:102E0900E0C394054004E4F0D2249000DAE004F031
+:102E1900E0C3940A4004E4F0D2269000D4E475F0AB
+:102E29000112143BC39000D5E094649000D4E0945F
+:102E3900004006E4F0A3F0D2219000D6E004F0E0CF
+:102E4900C394FA4013E4F0D2229000D8E004F0E0F1
+:092E590094044004E4F0D22522A7
+:03000B0002336F4E
+:10336F00C0E0C083C082C0D074FC258CF58C74661D
+:10337F00258AF58A9000D97401F0D0D0D082D083FD
+:03338F00D0E03259
+:0E369100758901758CFC758A66D2A9D28C22CF
+:0D369F0075FE0FEF25E0FE7403A80608225B
+:1035A50012369F8002C333D8FCF452FFEFB40406F1
+:0735B50075FE0FE4F5FF2293
+:1035D20075FE11EF5407F5FF75FE12AF058FFF75EB
+:0635E200FE1075FF01223E
+:1030210012369F8002C333D8FCF452FF7401A80604
+:10303100088002C333D8FC42FF75FE0B7401A80758
+:10304100088002C333D8FC42FFEF70038DCE22EF1C
+:10305100B401038DCF22EFB402038DDE22EFB4035E
+:0630610004AF058FDF2221
+:033FFD00010102BD
+:0623280001160001170080
+:1032CA00D28075FE0443FF0175FE0343FF0175FEBC
+:1032DA000243FF01D28175FE0443FF0275FE0343D8
+:0D32EA00FF0275FE0243FF027816760122F6
+:0C363400C280123640D281123640D28093
+:05364000E4FF0FDFFEB6
+:013645002262
+:10350E00D281D2801236402081037F0022C28112E6
+:0B351E0036403081037F00227F012235
+:0F367400C280C28112363BD281123640023640EC
+:0836DD00123634C280023640AF
+:0B36B700123634123640C2800236404A
+:0233B500AE0761
+:1033B7007D08AF051DEF6015C280EE30E704D281AE
+:0F33C7008002C281EE25E0FE12363B80E5C28017
+:0133D60022D4
+:103392007E08E4FDD281AF061EEF6012ED25E0FD4E
+:1033A200C28012363B3081EEED4401FD80E8C280DE
+:0233B200AF0565
+:0133B40022F6
+:10000E007D087F351232F77D0A7F761236E57D0444
+:05001E007F200232F713
+:102EC4009000001215197F10122F0CEF1213B27F0D
+:102ED40011122F0C900001EF1213C47F12122F163F
+:102EE400900002EF1213C47F13122F16900003EF09
+:102EF4001213C47F141231F89000001214F99000D8
+:102F040004EF1213C47F00221231F890000012144F
+:0C2F1400F9221231F89000001214F9228A
+:0533D700900000EFF082
+:1033DC00E47F201231F8900000E06006EF4401FF1A
+:0D33EC008004EF54FEFFAD077F200232F792
+:0533F900900001EFF05F
+:1033FE00E47F271231F8900001E06006EF4401FFF0
+:0D340E008004EF54FEFFAD077F270232F768
+:05354300900003EFF011
+:10354800E47F251231F8EF54C0FF900003E04FFDEF
+:053558007F250232F79F
+:05341B00900001EFF03C
+:10342000E47F201231F8900001E06006EF54FBFFCA
+:0D3430008004EF4404FFAD077F200232F757
+:0736E5008FFEAF058FFF22ED
+:0636EC008FFEAEFFAF06E9
+:0136F20022B5
+:1032F700900046EFF0A3EDF012350E7F0C1233B5B8
+:103307001236B7900046E0FF1233B51236B7900079
+:0C33170047E0FF1233B51236B7023674DF
+:0531F800900046EFF01D
+:1031FD00E4A3F012350E7F0C1233B51236B79000E2
+:10320D0046E0FF1233B51236B712350E7F0D12336D
+:10321D00B51236B7123392900047EFF01236DD1229
+:07322D003674900047E0FF3A
+:013234002277
+:102B0A00023576E493A3F8E493A34003F68001F236
+:102B1A0008DFF48029E493A3F85407240CC8C333CC
+:102B2A00C4540F4420C8834004F456800146F6DF9B
+:102B3A00E4800B010204081020408090215FE47EAB
+:102B4A00019360BCA3FF543F30E509541FFEE49390
+:102B5A00A360010ECF54C025E060A840B8E493A357
+:102B6A00FAE493A3F8E493A3C8C582C8CAC583CA82
+:102B7A00F0A3C8C582C8CAC583CADFE9DEE780BE3A
+:01232E0000AE
+:10124300E709F608DFFA8046E709F208DFFA803E8D
+:1012530088828C83E709F0A3DFFA8032E309F6087A
+:10126300DFFA8078E309F208DFFA807088828C83E2
+:10127300E309F0A3DFFA806489828A83E0A3F60896
+:10128300DFFA805889828A83E0A3F208DFFA804C70
+:1012930080D280FA80C680D4806980F28033801047
+:1012A30080A680EA809A80A880DA80E280CA8033B0
+:1012B30089828A83ECFAE493A3C8C582C8CCC58328
+:1012C300CCF0A3C8C582C8CCC583CCDFE9DEE780F8
+:1012D3000D89828A83E493A3F608DFF9ECFAA9F077
+:1012E300EDFB2289828A83ECFAE0A3C8C582C8CCCD
+:1012F300C583CCF0A3C8C582C8CCC583CCDFEADEE6
+:10130300E880DB89828A83E493A3F208DFF980CC47
+:1013130088F0EF60010E4E60C388F0ED2402B40440
+:101323000050B9F582EB2402B4040050AF232345E7
+:0613330082239012937367
+:10133900BB010689828A83E0225002E722BBFE02B2
+:09134900E32289828A83E49322E5
+:10135200BB010CE58229F582E5833AF583E0225050
+:1013620006E92582F8E622BBFE06E92582F8E2229A
+:0D137200E58229F582E5833AF583E49322B4
+:10137F00BB010FF8E58229F582E5833AF583E02872
+:10138F00F0225009C58229F8E58226F622BBFE0914
+:10139F00C58229F8E22582F222F8EA2583F583E94E
+:0313AF009328225E
+:1013B200BB010689828A83F0225002F722BBFE011A
+:0213C200F32214
+:1013C400F8BB010DE58229F582E5833AF583E8F05F
+:1013D400225006E92582C8F622BBFE05E92582C80B
+:0213E400F222F3
+:1013E600BC000BBE0029EF8DF084FFADF022E4CCEB
+:1013F600F875F008EF2FFFEE33FEEC33FCEE9DECB4
+:10140600984005FCEE9DFE0FD5F0E9E4CEFD22EDF9
+:10141600F8F5F0EE8420D21CFEADF075F008EF2F43
+:10142600FFED33FD4007985006D5F0F222C398FD34
+:051436000FD5F0EA22D1
+:10143B00C5F0F8A3E028F0C5F0F8E582158270023C
+:06144B001583E038F022D9
+:10145100BB0110E58229F582E5833AF583E0F5F0D9
+:10146100A3E0225009E92582F886F008E622BBFEB6
+:101471000AE92582F8E2F5F008E222E5832AF583FC
+:08148100E993F5F0A3E99322C1
+:10148900BB010A89828A83F0E5F0A3F0225006F7AE
+:0F14990009A7F01922BBFE06F3E5F009F31922AB
+:1014A800F8BB0111E58229F582E5833AF583E8F076
+:1014B800E5F0A3F0225009E92582C8F608A6F02233
+:0D14C800BBFE09E92582C8F2E5F008F2221A
+:1014D500EB9FF5F0EA9E42F0E99D42F0E89C45F06D
+:0114E50022E4
+:1014E600E8600FECC313FCED13FDEE13FEEF13FFE4
+:0314F600D8F12208
+:0914F900E0FBA3E0FAA3E0F922F4
+:10150200F8E0FBA3A3E0F925F0F0E5821582700272
+:071512001583E0FA38F02216
+:09151900EBF0A3EAF0A3E9F022D3
+:10152200D083D082F8E4937012740193700DA3A358
+:1015320093F8740193F5828883E47374029368606C
+:06154200EFA3A3A380DF6C
+:10154800EC8EF0A4CCC5F0CCCDF8EFA4CEC5F02D30
+:10155800FDE43CFCE8A42EC8C5F03DFDE43CFCEFEE
+:0D156800A4FFE5F028FEE43DFDE43CFC227C
+:100EDE00E5082406F582E43400F583E00508229047
+:100EEE000003301703900006E475F001121502029C
+:100EFE0013392010E97F2ED2108018EF540F249052
+:100F0E00D43440D4FF30140BEF24BFB41A00500376
+:100F1E002461FFE50960021509050CE50C70020558
+:100F2E000B30170E900003E475F001121502EF025C
+:100F3E0013B20236837403D2178003E4C217F50886
+:100F4E00900003121519E4F509F50BF50CE509608F
+:100F5E00077F20120F2180F5750AFFC211C210C241
+:100F6E0012C213C215C216C218120EEDFF700D304A
+:100F7E0017057F00120F32AF0CAE0B22B4255FC2E5
+:100F8E00D5C214120EEDFF24D0B40A00501A75F01B
+:100F9E000A780930D50508B6FF0106C6A426F62044
+:100FAE00D5047002D21380D924CFB41A00EF5004A6
+:100FBE00C2E5D214021133D21180C6D21080C0D233
+:100FCE001280BCD2D580BAD21580B47F20120F21E8
+:100FDE002012077401B5090040F1120EDEFF120F48
+:100FEE0021020F5BD218D2168095120EDEFB120E66
+:100FFE00DEFA120EDEF94A4B700679047A127BFF86
+:10100E0020122EE509602A7E008E8275830012134F
+:10101E005260060EEE650A70F0C2D5EBC0E0EAC073
+:10102E00E0E9C0E0EE12117AD0E0F9D0E0FAD0E0BB
+:10103E00FB121339FF60AAEBC0E0EAC0E0E9C0E0A2
+:10104E00120F21D0E02401F9D0E03400FAD0E0FBF9
+:10105E00E50A0460DCD50AD980877BFF7A117976A0
+:10106E00D212809C791080027908C216C2188008AC
+:10107E00D2D5790A8004790AC2D5E50A047002F540
+:10108E000AE4FAFDFEFF120EDEFC7B08201113129D
+:10109E000EDEFD7B1030100A120EDEFE120EDEFF8B
+:1010AE007B20EC3382D592D55013C3E43010069FCB
+:1010BE00FFE49EFEE42011039DFDE49CFCE4CBF8CE
+:1010CE00C211EC700CCFCECDCCE824F8F870F380C2
+:1010DE0017C3EF33FFEE33FEED33FDEC33FCEB3392
+:1010EE00FB994002FB0FD8E9EB301105F8D0E0C4B4
+:1010FE0048B211C0E00AEC4D4E4F78207B0070C212
+:10110E00EAB50A0040BCC0E012117CD0F0D0E0205D
+:10111E001104C4C0E0C4B211C0F0120F0AD0F0D551
+:10112E00F0EB020F5B1215220FF8531072580FC915
+:10113E004C0FC54210764F107E44107E490FDE4391
+:08114E0010845510684610687A
+:10115600451068471224500FCD2D0FD12E0FF42BBA
+:101166000FD5230FF220120D2A0F8D4800000FEC29
+:101176003F3F3F00790AA2D5201314301509B91054
+:10118600020404B9080104A2D52016025001042065
+:1011960012689212B509005034C0E07F203013194E
+:1011A6007F30A21272167215500F1211D3C212C2DC
+:1011B60016C215C2187F30800F301503E9C0E01241
+:1011C6000F21301503D0E0F9D0E0B509CC30151762
+:1011D6007F30B9100C120F217F583014077F7880AA
+:1011E60003B90803120F213012057F2D020F217F4C
+:1011F600202018F87F2B2016F322921280CF286E1B
+:10120600756C6C2900D211120EDE3011F8C21178FD
+:101216000930D50108F6020F8D2D50434958120E9C
+:10122600DE2403B405004001E490121F93120F124E
+:0D123600743A120F12D213750904021072DF
+:00000001FF
diff --git a/Out/8835_EVB_241227_1101_1C4E_010102.bin b/Out/8835_EVB_241227_1101_1C4E_010102.bin
new file mode 100644
index 0000000..d85b13f
Binary files /dev/null and b/Out/8835_EVB_241227_1101_1C4E_010102.bin differ
diff --git a/Project/SY8835_Demo.uvgui.GH b/Project/SY8835_Demo.uvgui.GH
index 69d6269..7ac678b 100644
--- a/Project/SY8835_Demo.uvgui.GH
+++ b/Project/SY8835_Demo.uvgui.GH
@@ -101,17 +101,17 @@
-1
- 160
- 1853
- 3773
- 1122
+ 184
+ 2006
+ 3926
+ 1146
0
- 436
- 01000000040000000100000001000000010000000100000000000000020000000000000001000000010000000000000028000000280000000100000003000000020000000100000036453A5C746F646179776F726B5C32303234313033305F7379383833355C5359383833355F44656D6F5C5573725372635C6D61696E2E6300000000066D61696E2E6300000000C5D4F200FFFFFFFF41453A5C746F646179776F726B5C32303234313033305F7379383833355C5359383833355F44656D6F5C5573725372635C757365726170705C757365726170702E630000000009757365726170702E6300000000FFDC7800FFFFFFFF40453A5C746F646179776F726B5C32303234313033305F7379383833355C5359383833355F44656D6F5C5573725372635C766F785C766F785F6D6F64756C652E63000000000C766F785F6D6F64756C652E6300000000BECEA100FFFFFFFF0100000010000000C5D4F200FFDC7800BECEA100F0A0A100BCA8E1009CC1B600F7B88600D9ADC200A5C2D700B3A6BE00EAD6A300F6FA7D00B5E99D005FC3CF00C1838300CACAD5000100000000000000020000007408000066000000000F000059020000
+ 978
+ 01000000040000000100000001000000010000000100000000000000020000000000000001000000010000000000000028000000280000000100000009000000020000000100000036453A5C746F646179776F726B5C32303234313033305F7379383833355C5359383833355F44656D6F5C5573725372635C6D61696E2E6300000000066D61696E2E6300000000C5D4F200FFFFFFFF41453A5C746F646179776F726B5C32303234313033305F7379383833355C5359383833355F44656D6F5C5573725372635C757365726170705C757365726170702E630000000009757365726170702E6300000000FFDC7800FFFFFFFF40453A5C746F646179776F726B5C32303234313033305F7379383833355C5359383833355F44656D6F5C5573725372635C766F785C766F785F6D6F64756C652E63000000000C766F785F6D6F64756C652E6300000000BECEA100FFFFFFFF4C453A5C746F646179776F726B5C32303234313033305F7379383833355C5359383833355F44656D6F5C5573725372635C6469736368617267655C6469736368617267655F6D6F64756C652E6300000000126469736368617267655F6D6F64756C652E6300000000F0A0A100FFFFFFFF39453A5C746F646179776F726B5C32303234313033305F7379383833355C5359383833355F44656D6F5C5573725372635C6164635C6164632E6300000000056164632E6300000000BCA8E100FFFFFFFF40453A5C746F646179776F726B5C32303234313033305F7379383833355C5359383833355F44656D6F5C5372635C737461727475705C535441525455502E413531000000000B535441525455502E413531000000009CC1B600FFFFFFFF40453A5C746F646179776F726B5C32303234313033305F7379383833355C5359383833355F44656D6F5C557372496E635C766F785C766F785F6D6F64756C652E68000000000C766F785F6D6F64756C652E6800000000F7B88600FFFFFFFF3B453A5C746F646179776F726B5C32303234313033305F7379383833355C5359383833355F44656D6F5C5573725372635C756172745C756172742E630000000006756172742E6300000000D9ADC200FFFFFFFF39453A5C746F646179776F726B5C32303234313033305F7379383833355C5359383833355F44656D6F5C5573725372635C6B65795C6B65792E6300000000056B65792E6300000000A5C2D700FFFFFFFF0100000010000000C5D4F200FFDC7800BECEA100F0A0A100BCA8E1009CC1B600F7B88600D9ADC200A5C2D700B3A6BE00EAD6A300F6FA7D00B5E99D005FC3CF00C1838300CACAD5000100000000000000020000007408000066000000000F0000CF020000
@@ -150,7 +150,7 @@
0
16
- 0300000066000000ED00000029020000
+ 0300000066000000ED0000009F020000
16
@@ -170,7 +170,7 @@
0
16
- 0300000066000000ED00000029020000
+ 0300000066000000ED0000009F020000
16
@@ -450,7 +450,7 @@
0
16
- 0300000066000000ED00000029020000
+ 0300000066000000ED0000009F020000
16
@@ -470,7 +470,7 @@
0
16
- 0300000066000000ED00000029020000
+ 0300000066000000ED0000009F020000
16
@@ -490,7 +490,7 @@
0
16
- 000000005A02000080070000E6030000
+ 00000000D002000080070000E6030000
16
@@ -530,7 +530,7 @@
0
16
- 030000005D0200007D070000CD030000
+ 03000000D30200007D070000CD030000
16
@@ -1150,7 +1150,7 @@
0
16
- 0300000066000000ED00000029020000
+ 0300000066000000ED0000009F020000
16
@@ -1170,7 +1170,7 @@
0
16
- 030000005D0200007D070000CD030000
+ 03000000D30200007D070000CD030000
16
@@ -1190,7 +1190,7 @@
0
16
- 030000005D0200007D070000CD030000
+ 03000000D30200007D070000CD030000
16
@@ -1250,7 +1250,7 @@
0
16
- 030000005D0200007D070000CD030000
+ 03000000D30200007D070000CD030000
16
@@ -1270,7 +1270,7 @@
0
16
- 030000005D0200007D070000CD030000
+ 03000000D30200007D070000CD030000
16
@@ -1799,7 +1799,7 @@
3390
- 000000000A000000000000000020000000000000FFFFFFFFFFFFFFFFF4000000DF00000090050000E3000000000000000100000004000000010000000000000000000000FFFFFFFF08000000CB00000057010000CC000000F08B00005A01000079070000D601000045890000FFFF02000B004354616262656450616E6500200000000000007408000066000000100D0000F6000000F40000004F00000090050000DF0000000000000040280046080000000B446973617373656D626C7900000000CB00000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A6572000000005701000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A657200000000CC00000001000000FFFFFFFFFFFFFFFF0E4C6F67696320416E616C797A657200000000F08B000001000000FFFFFFFFFFFFFFFF0D436F646520436F766572616765000000005A01000001000000FFFFFFFFFFFFFFFF11496E737472756374696F6E205472616365000000007907000001000000FFFFFFFFFFFFFFFF0F53797374656D20416E616C797A657200000000D601000001000000FFFFFFFFFFFFFFFF104576656E742053746174697374696373000000004589000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFCB00000001000000FFFFFFFFCB000000000000000040000000000000FFFFFFFFFFFFFFFF9C0400004F000000A004000029020000000000000200000004000000010000000000000000000000FFFFFFFF2B000000E2050000CA0900002D8C00002E8C00002F8C0000308C0000318C0000328C0000338C0000348C0000358C0000368C0000378C0000388C0000398C00003A8C00003B8C00003C8C00003D8C00003E8C00003F8C0000408C0000418C000050C3000051C3000052C3000053C3000054C3000055C3000056C3000057C3000058C3000059C300005AC300005BC300005CC300005DC300005EC300005FC3000060C3000061C3000062C3000063C3000001800040000000000000200C000066000000100D000040020000A00400004F000000900500002902000000000000404100462B0000000753796D626F6C7300000000E205000001000000FFFFFFFFFFFFFFFF0A5472616365204461746100000000CA09000001000000FFFFFFFFFFFFFFFF00000000002D8C000001000000FFFFFFFFFFFFFFFF00000000002E8C000001000000FFFFFFFFFFFFFFFF00000000002F8C000001000000FFFFFFFFFFFFFFFF0000000000308C000001000000FFFFFFFFFFFFFFFF0000000000318C000001000000FFFFFFFFFFFFFFFF0000000000328C000001000000FFFFFFFFFFFFFFFF0000000000338C000001000000FFFFFFFFFFFFFFFF0000000000348C000001000000FFFFFFFFFFFFFFFF0000000000358C000001000000FFFFFFFFFFFFFFFF0000000000368C000001000000FFFFFFFFFFFFFFFF0000000000378C000001000000FFFFFFFFFFFFFFFF0000000000388C000001000000FFFFFFFFFFFFFFFF0000000000398C000001000000FFFFFFFFFFFFFFFF00000000003A8C000001000000FFFFFFFFFFFFFFFF00000000003B8C000001000000FFFFFFFFFFFFFFFF00000000003C8C000001000000FFFFFFFFFFFFFFFF00000000003D8C000001000000FFFFFFFFFFFFFFFF00000000003E8C000001000000FFFFFFFFFFFFFFFF00000000003F8C000001000000FFFFFFFFFFFFFFFF0000000000408C000001000000FFFFFFFFFFFFFFFF0000000000418C000001000000FFFFFFFFFFFFFFFF000000000050C3000001000000FFFFFFFFFFFFFFFF000000000051C3000001000000FFFFFFFFFFFFFFFF000000000052C3000001000000FFFFFFFFFFFFFFFF000000000053C3000001000000FFFFFFFFFFFFFFFF000000000054C3000001000000FFFFFFFFFFFFFFFF000000000055C3000001000000FFFFFFFFFFFFFFFF000000000056C3000001000000FFFFFFFFFFFFFFFF000000000057C3000001000000FFFFFFFFFFFFFFFF000000000058C3000001000000FFFFFFFFFFFFFFFF000000000059C3000001000000FFFFFFFFFFFFFFFF00000000005AC3000001000000FFFFFFFFFFFFFFFF00000000005BC3000001000000FFFFFFFFFFFFFFFF00000000005CC3000001000000FFFFFFFFFFFFFFFF00000000005DC3000001000000FFFFFFFFFFFFFFFF00000000005EC3000001000000FFFFFFFFFFFFFFFF00000000005FC3000001000000FFFFFFFFFFFFFFFF000000000060C3000001000000FFFFFFFFFFFFFFFF000000000061C3000001000000FFFFFFFFFFFFFFFF000000000062C3000001000000FFFFFFFFFFFFFFFF000000000063C3000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFE205000001000000FFFFFFFFE2050000000000000010000001000000FFFFFFFFFFFFFFFFF00000004F000000F400000042020000010000000200001004000000010000000000000000000000FFFFFFFF05000000ED0300006D000000C3000000C4000000739400000180001000000100000080070000660000007008000059020000000000004F000000F0000000420200000000000040410056050000000750726F6A65637401000000ED03000001000000FFFFFFFFFFFFFFFF05426F6F6B73010000006D00000001000000FFFFFFFFFFFFFFFF0946756E6374696F6E7301000000C300000001000000FFFFFFFFFFFFFFFF0954656D706C6174657301000000C400000001000000FFFFFFFFFFFFFFFF09526567697374657273000000007394000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFED03000001000000FFFFFFFFED030000000000000080000000000000FFFFFFFFFFFFFFFF000000001502000090050000190200000000000001000000040000000100000000000000000000000000000000000000000000000100000000000000FFFFFFFF0F0000008F070000930700009407000095070000960700009007000091070000B5010000B801000038030000B9050000BA050000BB050000BC050000CB090000018000800000000000008007000000000000810700003102000000000000E9FFFFFF010000001A02000000000000404100460F0000001343616C6C20537461636B202B204C6F63616C73000000008F07000001000000FFFFFFFFFFFFFFFF0755415254202331000000009307000001000000FFFFFFFFFFFFFFFF0755415254202332000000009407000001000000FFFFFFFFFFFFFFFF0755415254202333000000009507000001000000FFFFFFFFFFFFFFFF15446562756720287072696E74662920566965776572000000009607000001000000FFFFFFFFFFFFFFFF0757617463682031000000009007000001000000FFFFFFFFFFFFFFFF0757617463682032000000009107000001000000FFFFFFFFFFFFFFFF10547261636520457863657074696F6E7300000000B501000001000000FFFFFFFFFFFFFFFF0E4576656E7420436F756E7465727300000000B801000001000000FFFFFFFFFFFFFFFF09554C494E4B706C7573000000003803000001000000FFFFFFFFFFFFFFFF084D656D6F7279203100000000B905000001000000FFFFFFFFFFFFFFFF084D656D6F7279203200000000BA05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203300000000BB05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203400000000BC05000001000000FFFFFFFFFFFFFFFF105472616365204E617669676174696F6E00000000CB09000001000000FFFFFFFFFFFFFFFFFFFFFFFF0000000001000000000000000000000001000000FFFFFFFFC802000019020000CC020000BD02000000000000020000000400000000000000000000000000000000000000000000000000000001000000FFFFFFFF8F07000001000000FFFFFFFF8F070000000000000080000001000000FFFFFFFFFFFFFFFF000000004202000080070000460200000100000001000010040000000100000002FDFFFF8E000000FFFFFFFF06000000C5000000C7000000B4010000D2010000CF0100007794000001800080000001000000800700005D020000000F0000FD030000000000004602000080070000E60300000000000040820056060000000C4275696C64204F757470757401000000C500000001000000FFFFFFFFFFFFFFFF0D46696E6420496E2046696C657300000000C700000001000000FFFFFFFFFFFFFFFF0A4572726F72204C69737400000000B401000001000000FFFFFFFFFFFFFFFF0E536F757263652042726F7773657200000000D201000001000000FFFFFFFFFFFFFFFF0E416C6C205265666572656E63657300000000CF01000001000000FFFFFFFFFFFFFFFF0742726F77736572000000007794000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFC500000001000000FFFFFFFFC500000001000000FFFF02001400434D756C746950616E654672616D65576E64457800010084A4000000BB0000006C0300004B01000000000000000000000200000000000000C60000000000000000000000000000000000000001000000C60000000000000000000000
+ 000000000A000000000000000020000000000000FFFFFFFFFFFFFFFFF4000000DF00000090050000E3000000000000000100000004000000010000000000000000000000FFFFFFFF08000000CB00000057010000CC000000F08B00005A01000079070000D601000045890000FFFF02000B004354616262656450616E6500200000000000007408000066000000100D0000F6000000F40000004F00000090050000DF0000000000000040280046080000000B446973617373656D626C7900000000CB00000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A6572000000005701000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A657200000000CC00000001000000FFFFFFFFFFFFFFFF0E4C6F67696320416E616C797A657200000000F08B000001000000FFFFFFFFFFFFFFFF0D436F646520436F766572616765000000005A01000001000000FFFFFFFFFFFFFFFF11496E737472756374696F6E205472616365000000007907000001000000FFFFFFFFFFFFFFFF0F53797374656D20416E616C797A657200000000D601000001000000FFFFFFFFFFFFFFFF104576656E742053746174697374696373000000004589000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFCB00000001000000FFFFFFFFCB000000000000000040000000000000FFFFFFFFFFFFFFFF9C0400004F000000A004000029020000000000000200000004000000010000000000000000000000FFFFFFFF2B000000E2050000CA0900002D8C00002E8C00002F8C0000308C0000318C0000328C0000338C0000348C0000358C0000368C0000378C0000388C0000398C00003A8C00003B8C00003C8C00003D8C00003E8C00003F8C0000408C0000418C000050C3000051C3000052C3000053C3000054C3000055C3000056C3000057C3000058C3000059C300005AC300005BC300005CC300005DC300005EC300005FC3000060C3000061C3000062C3000063C3000001800040000000000000200C000066000000100D000040020000A00400004F000000900500002902000000000000404100462B0000000753796D626F6C7300000000E205000001000000FFFFFFFFFFFFFFFF0A5472616365204461746100000000CA09000001000000FFFFFFFFFFFFFFFF00000000002D8C000001000000FFFFFFFFFFFFFFFF00000000002E8C000001000000FFFFFFFFFFFFFFFF00000000002F8C000001000000FFFFFFFFFFFFFFFF0000000000308C000001000000FFFFFFFFFFFFFFFF0000000000318C000001000000FFFFFFFFFFFFFFFF0000000000328C000001000000FFFFFFFFFFFFFFFF0000000000338C000001000000FFFFFFFFFFFFFFFF0000000000348C000001000000FFFFFFFFFFFFFFFF0000000000358C000001000000FFFFFFFFFFFFFFFF0000000000368C000001000000FFFFFFFFFFFFFFFF0000000000378C000001000000FFFFFFFFFFFFFFFF0000000000388C000001000000FFFFFFFFFFFFFFFF0000000000398C000001000000FFFFFFFFFFFFFFFF00000000003A8C000001000000FFFFFFFFFFFFFFFF00000000003B8C000001000000FFFFFFFFFFFFFFFF00000000003C8C000001000000FFFFFFFFFFFFFFFF00000000003D8C000001000000FFFFFFFFFFFFFFFF00000000003E8C000001000000FFFFFFFFFFFFFFFF00000000003F8C000001000000FFFFFFFFFFFFFFFF0000000000408C000001000000FFFFFFFFFFFFFFFF0000000000418C000001000000FFFFFFFFFFFFFFFF000000000050C3000001000000FFFFFFFFFFFFFFFF000000000051C3000001000000FFFFFFFFFFFFFFFF000000000052C3000001000000FFFFFFFFFFFFFFFF000000000053C3000001000000FFFFFFFFFFFFFFFF000000000054C3000001000000FFFFFFFFFFFFFFFF000000000055C3000001000000FFFFFFFFFFFFFFFF000000000056C3000001000000FFFFFFFFFFFFFFFF000000000057C3000001000000FFFFFFFFFFFFFFFF000000000058C3000001000000FFFFFFFFFFFFFFFF000000000059C3000001000000FFFFFFFFFFFFFFFF00000000005AC3000001000000FFFFFFFFFFFFFFFF00000000005BC3000001000000FFFFFFFFFFFFFFFF00000000005CC3000001000000FFFFFFFFFFFFFFFF00000000005DC3000001000000FFFFFFFFFFFFFFFF00000000005EC3000001000000FFFFFFFFFFFFFFFF00000000005FC3000001000000FFFFFFFFFFFFFFFF000000000060C3000001000000FFFFFFFFFFFFFFFF000000000061C3000001000000FFFFFFFFFFFFFFFF000000000062C3000001000000FFFFFFFFFFFFFFFF000000000063C3000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFE205000001000000FFFFFFFFE2050000000000000010000001000000FFFFFFFFFFFFFFFFF00000004F000000F4000000B8020000010000000200001004000000010000000000000000000000FFFFFFFF05000000ED0300006D000000C3000000C40000007394000001800010000001000000800700006600000070080000CF020000000000004F000000F0000000B80200000000000040410056050000000750726F6A65637401000000ED03000001000000FFFFFFFFFFFFFFFF05426F6F6B73010000006D00000001000000FFFFFFFFFFFFFFFF0946756E6374696F6E7301000000C300000001000000FFFFFFFFFFFFFFFF0954656D706C6174657301000000C400000001000000FFFFFFFFFFFFFFFF09526567697374657273000000007394000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFED03000001000000FFFFFFFFED030000000000000080000000000000FFFFFFFFFFFFFFFF000000001502000090050000190200000000000001000000040000000100000000000000000000000000000000000000000000000100000000000000FFFFFFFF0F0000008F070000930700009407000095070000960700009007000091070000B5010000B801000038030000B9050000BA050000BB050000BC050000CB090000018000800000000000008007000000000000810700003102000000000000E9FFFFFF010000001A02000000000000404100460F0000001343616C6C20537461636B202B204C6F63616C73000000008F07000001000000FFFFFFFFFFFFFFFF0755415254202331000000009307000001000000FFFFFFFFFFFFFFFF0755415254202332000000009407000001000000FFFFFFFFFFFFFFFF0755415254202333000000009507000001000000FFFFFFFFFFFFFFFF15446562756720287072696E74662920566965776572000000009607000001000000FFFFFFFFFFFFFFFF0757617463682031000000009007000001000000FFFFFFFFFFFFFFFF0757617463682032000000009107000001000000FFFFFFFFFFFFFFFF10547261636520457863657074696F6E7300000000B501000001000000FFFFFFFFFFFFFFFF0E4576656E7420436F756E7465727300000000B801000001000000FFFFFFFFFFFFFFFF09554C494E4B706C7573000000003803000001000000FFFFFFFFFFFFFFFF084D656D6F7279203100000000B905000001000000FFFFFFFFFFFFFFFF084D656D6F7279203200000000BA05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203300000000BB05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203400000000BC05000001000000FFFFFFFFFFFFFFFF105472616365204E617669676174696F6E00000000CB09000001000000FFFFFFFFFFFFFFFFFFFFFFFF0000000001000000000000000000000001000000FFFFFFFFC802000019020000CC020000BD02000000000000020000000400000000000000000000000000000000000000000000000000000001000000FFFFFFFF8F07000001000000FFFFFFFF8F070000000000000080000001000000FFFFFFFFFFFFFFFF00000000B802000080070000BC0200000100000001000010040000000100000012FEFFFF9E010000FFFFFFFF06000000C5000000C7000000B4010000D2010000CF010000779400000180008000000100000080070000D3020000000F0000FD03000000000000BC02000080070000E60300000000000040820056060000000C4275696C64204F757470757401000000C500000001000000FFFFFFFFFFFFFFFF0D46696E6420496E2046696C657300000000C700000001000000FFFFFFFFFFFFFFFF0A4572726F72204C69737400000000B401000001000000FFFFFFFFFFFFFFFF0E536F757263652042726F7773657200000000D201000001000000FFFFFFFFFFFFFFFF0E416C6C205265666572656E63657300000000CF01000001000000FFFFFFFFFFFFFFFF0742726F77736572000000007794000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFC500000001000000FFFFFFFFC500000001000000FFFF02001400434D756C746950616E654672616D65576E64457800010084A4000000BB0000006C0300004B01000000000000000000000200000000000000C60000000000000000000000000000000000000001000000C60000000000000000000000
59392
@@ -1838,7 +1838,7 @@
Debug
2373
- 00200000000000001900FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000000002500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000000002600000000000000000000000000000000010000000100000001801D800000000000002700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000000002800000000000000000000000000000000010000000100000001801B80000000000000290000000000000000000000000000000001000000010000000180E57F0000000000002A00000000000000000000000000000000010000000100000001801C800000000000002B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000000002C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B0000000000002D0000000000000000000000000000000001000000010000000180F07F0000000000002E0000000000000000000000000000000001000000010000000180E8880000000000003700000000000000000000000000000000010000000100000001803B010000000000002F0000000000000000000000000000000001000000010000000180BB8A00000000000030000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E0E01000000000000310000000D57617463682057696E646F7773000000000000000000000000010000000100000000000000000000000100000003001380D88B00000000000031000000085761746368202631000000000000000000000000010000000100000000000000000000000100000000001380D98B00000000000031000000085761746368202632000000000000000000000000010000000100000000000000000000000100000000001380CE01000000000000FFFFFFFF0C576174636820416E63686F720000000000000000010000000000000001000000000000000000000001000000000013800F01000000000000320000000E4D656D6F72792057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380D28B00000000000032000000094D656D6F7279202631000000000000000000000000010000000100000000000000000000000100000000001380D38B00000000000032000000094D656D6F7279202632000000000000000000000000010000000100000000000000000000000100000000001380D48B00000000000032000000094D656D6F7279202633000000000000000000000000010000000100000000000000000000000100000000001380D58B00000000000032000000094D656D6F72792026340000000000000000000000000100000001000000000000000000000001000000000013801001000000000000330000000E53657269616C2057696E646F77730000000000000000000000000100000001000000000000000000000001000000040013809307000000000000330000000855415254202326310000000000000000000000000100000001000000000000000000000001000000000013809407000000000000330000000855415254202326320000000000000000000000000100000001000000000000000000000001000000000013809507000000000000330000000855415254202326330000000000000000000000000100000001000000000000000000000001000000000013809607000000000000330000001626446562756720287072696E746629205669657765720000000000000000000000000100000001000000000000000000000001000000000013803C010000000000003400000010416E616C797369732057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380658A000000000000340000000F264C6F67696320416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380DC7F0000000000003E0000001526506572666F726D616E636520416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380E788000000000000380000000E26436F646520436F766572616765000000000000000000000000010000000100000000000000000000000100000000001380CD01000000000000FFFFFFFF0F416E616C7973697320416E63686F7200000000000000000100000000000000010000000000000000000000010000000000138053010000000000003F0000000D54726163652057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013805401000000000000FFFFFFFF115472616365204D656E7520416E63686F720000000000000000010000000000000001000000000000000000000001000000000013802901000000000000350000001553797374656D205669657765722057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013804B01000000000000FFFFFFFF1453797374656D2056696577657220416E63686F720000000000000000010000000000000001000000000000000000000001000000000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000013800189000000000000360000000F26546F6F6C626F782057696E646F7700000000000000000000000001000000010000000000000000000000010000000300138044C5000000000000FFFFFFFF0E5570646174652057696E646F77730000000000000000010000000000000001000000000000000000000001000000000013800000000000000400FFFFFFFF000000000000000000010000000000000001000000000000000000000001000000000013805B01000000000000FFFFFFFF12546F6F6C626F78204D656E75416E63686F72000000000000000001000000000000000100000000000000000000000100000000000000000005446562756764020000
+ 00200000000000001900FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000000002500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000000002600000000000000000000000000000000010000000100000001801D800000000000002700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000000002800000000000000000000000000000000010000000100000001801B80000000000000290000000000000000000000000000000001000000010000000180E57F0000000000002A00000000000000000000000000000000010000000100000001801C800000000000002B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000000002C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B0000000000002D0000000000000000000000000000000001000000010000000180F07F0000000000002E0000000000000000000000000000000001000000010000000180E8880000000000003700000000000000000000000000000000010000000100000001803B010000000000002F0000000000000000000000000000000001000000010000000180BB8A00000000000030000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E0E01000000000000310000000D57617463682057696E646F7773000000000000000000000000010000000100000000000000000000000100000003001380D88B00000000000031000000085761746368202631000000000000000000000000010000000100000000000000000000000100000000001380D98B00000000000031000000085761746368202632000000000000000000000000010000000100000000000000000000000100000000001380CE01000000000000FFFFFFFF0C576174636820416E63686F720100000000000000010000000000000001000000000000000000000001000000000013800F01000000000000320000000E4D656D6F72792057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380D28B00000000000032000000094D656D6F7279202631000000000000000000000000010000000100000000000000000000000100000000001380D38B00000000000032000000094D656D6F7279202632000000000000000000000000010000000100000000000000000000000100000000001380D48B00000000000032000000094D656D6F7279202633000000000000000000000000010000000100000000000000000000000100000000001380D58B00000000000032000000094D656D6F72792026340000000000000000000000000100000001000000000000000000000001000000000013801001000000000000330000000E53657269616C2057696E646F77730000000000000000000000000100000001000000000000000000000001000000040013809307000000000000330000000855415254202326310000000000000000000000000100000001000000000000000000000001000000000013809407000000000000330000000855415254202326320000000000000000000000000100000001000000000000000000000001000000000013809507000000000000330000000855415254202326330000000000000000000000000100000001000000000000000000000001000000000013809607000000000000330000001626446562756720287072696E746629205669657765720000000000000000000000000100000001000000000000000000000001000000000013803C010000000000003400000010416E616C797369732057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380658A000000000000340000000F264C6F67696320416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380DC7F0000000000003E0000001526506572666F726D616E636520416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380E788000000000000380000000E26436F646520436F766572616765000000000000000000000000010000000100000000000000000000000100000000001380CD01000000000000FFFFFFFF0F416E616C7973697320416E63686F7201000000000000000100000000000000010000000000000000000000010000000000138053010000000000003F0000000D54726163652057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013805401000000000000FFFFFFFF115472616365204D656E7520416E63686F720100000000000000010000000000000001000000000000000000000001000000000013802901000000000000350000001553797374656D205669657765722057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013804B01000000000000FFFFFFFF1453797374656D2056696577657220416E63686F720100000000000000010000000000000001000000000000000000000001000000000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000013800189000000000000360000000F26546F6F6C626F782057696E646F7700000000000000000000000001000000010000000000000000000000010000000300138044C5000000000000FFFFFFFF0E5570646174652057696E646F77730100000000000000010000000000000001000000000000000000000001000000000013800000000000000400FFFFFFFF000000000000000000010000000000000001000000000000000000000001000000000013805B01000000000000FFFFFFFF12546F6F6C626F78204D656E75416E63686F72010000000000000001000000000000000100000000000000000000000100000000000000000005446562756764020000
898
@@ -3615,18 +3615,72 @@
..\UsrSrc\userapp\userapp.c
- 4
+ 0
644
- 668
+ 670
1
0
..\UsrSrc\vox\vox_module.c
- 17
- 1016
- 1027
+ 6
+ 590
+ 612
+ 1
+
+ 0
+
+
+ ..\UsrSrc\discharge\discharge_module.c
+ 0
+ 153
+ 167
+ 1
+
+ 0
+
+
+ ..\UsrSrc\adc\adc.c
+ 41
+ 178
+ 183
+ 1
+
+ 0
+
+
+ ..\Src\startup\STARTUP.A51
+ 1
+ 16
+ 31
+ 1
+
+ 0
+
+
+ ..\UsrInc\vox\vox_module.h
+ 2
+ 242
+ 266
+ 1
+
+ 0
+
+
+ ..\UsrSrc\uart\uart.c
+ 16
+ 197
+ 223
+ 1
+
+ 0
+
+
+ ..\UsrSrc\key\key.c
+ 0
+ 245
+ 263
1
0
diff --git a/Project/SY8835_Demo.uvproj b/Project/SY8835_Demo.uvproj
index 77d2c52..ee0d404 100644
--- a/Project/SY8835_Demo.uvproj
+++ b/Project/SY8835_Demo.uvproj
@@ -314,7 +314,7 @@
0
1
3
- 8
+ 9
2
0
1
diff --git a/Src/startup/STARTUP.A51 b/Src/startup/STARTUP.A51
index 9926e42..b96915f 100644
--- a/Src/startup/STARTUP.A51
+++ b/Src/startup/STARTUP.A51
@@ -35,7 +35,7 @@ XDATASTART EQU 0
;
; XDATALEN: XDATA memory size <0x0-0xFFFF>
; The length of XDATA memory in bytes.
-XDATALEN EQU 0;300H;TP3315
+XDATALEN EQU 300H;TP3315
;
; PDATASTART: PDATA memory start address <0x0-0xFFFF>
; The absolute start address of PDATA memory
diff --git a/UsrInc/adc/adc.h b/UsrInc/adc/adc.h
index 4fb655c..d995dd1 100644
--- a/UsrInc/adc/adc.h
+++ b/UsrInc/adc/adc.h
@@ -66,7 +66,7 @@ extern idata uint16_t g_pmu_Adc_Ivor;
typedef enum {
- ADC_PMU_CH0 = 0x00,
+ ADC_PMU_CH0 = 0x01,
ADC_NTC_CH1,
diff --git a/UsrInc/charger/charger_module.h b/UsrInc/charger/charger_module.h
index f95dfa0..3fd01ad 100644
--- a/UsrInc/charger/charger_module.h
+++ b/UsrInc/charger/charger_module.h
@@ -23,7 +23,6 @@
#include "define.h"
-extern bit Charger_Done;
#ifdef NTC_ENABLE
extern bit NTC_Pro_Flag;
@@ -31,19 +30,20 @@ extern bit NTC_Pro_Flag;
// 充电状态定义
typedef enum
{
- CHG_NONE=0x00,
- CHG_STA_ING, // 充电中
- CHG_STA_COMPLETED, // 充电完成
- CHG_STA_PULLOUT, // 充电器拔出
+ CHG_NONE = 0x00,
+
+ CHG_PROTECT,
+ CHG_STA_ING, // 充电中
+
+ CHG_STA_COMPLETED, // 充电完成
+
} TE_CHG_STA;
extern idata TE_CHG_STA ChgStatus; // 系统状态定义
#if CHARGER_ENABLE
-
-
/* Charger Current Setting */
typedef struct {
uint8_t nTrickle_Cur; //Set Trickle Current Trickle charge 电流配置,step 10mA;
diff --git a/UsrInc/inc/config.h b/UsrInc/inc/config.h
index 305c15a..faf4ddf 100644
--- a/UsrInc/inc/config.h
+++ b/UsrInc/inc/config.h
@@ -114,46 +114,55 @@
#endif
#else
-/*2.5V上拉LDO下接 104K NTC(3950K) 电阻串联一个100K电阻后得到的电压值,Value=2500 * Rntc/(Rntc + 100k)*/
-#define T_N20C 2263 //-20℃ NTC:953K
+/*2.5V上拉LDO下接 104K NTC(3950K) 电阻串联一个100K电阻后得到的电压值,Value=1024 * Rntc/(Rntc + 100k) */
+/* 具体公式:( LSB = 2500/1024 )
+ NTC Pin实际电压:Vntc = Rntc/R总 * 2500;
+ 码值:NTC = Vntc / LSB = (Rntc / R总 * 2500) / (2500 / 1024)
+ = Rntc / R总 * 1024
+ 使用码值的原因:2.5V的上拉LDO有温漂误差,使用码值可以规避。
-#define T_N17C 2223 //-17℃ NTC:804K
+*/
+#define NONE_NTC 984 //NTC引脚悬空码值
-#define T_N15C 2195 //-15℃ NTC:719K
+#define T_N20C 927 //-20℃ NTC:953K
-#define T_N13C 2164 //-13℃ NTC:644K
+#define T_N17C 911 //-17℃ NTC:804K
-#define T_N10C 2114 //-10℃ NTC:547K
+#define T_N15C 900 //-15℃ NTC:719K
-#define T_0C 1911 //-0℃ NTC:325K
+#define T_N13C 887 //-13℃ NTC:644K
-#define T_3C 1841 //3℃ NTC:293K
+#define T_N10C 866 //-10℃ NTC:547K
-#define T_5C 1792 //5℃ NTC:253K
+#define T_0C 783 //-0℃ NTC:325K
-#define T_8C 1715 //8℃ NTC:218K
+#define T_3C 755 //3℃ NTC:293K
-#define T_10C 1663 //10℃ NTC:198K
+#define T_5C 734 //5℃ NTC:253K
-#define T_12C 1609 //12℃ NTC:180K
+#define T_8C 703 //8℃ NTC:218K
-#define T_15C 1527 //15℃ NTC:157K
+#define T_10C 682 //10℃ NTC:198K
-#define T_18C 1444 //18℃ NTC:137K
+#define T_12C 659 //12℃ NTC:180K
-#define T_42C 823 //42℃ NTC:49K
+#define T_15C 626 //15℃ NTC:157K
-#define T_45C 759 //45℃ NTC:43.6K
+#define T_18C 592 //18℃ NTC:137K
-#define T_47C 718 //47℃ NTC:40K
+#define T_42C 337 //42℃ NTC:49K
-#define T_57C 540 //57℃ NTC:27.6K
+#define T_45C 311 //45℃ NTC:43.6K
-#define T_60C 495 //60℃ NTC:24.7K
+#define T_47C 294 //47℃ NTC:40K
-#define T_75C 318 //75℃ NTC:14.6K
+#define T_57C 221 //57℃ NTC:27.6K
-#define T_80C 275 //80℃ NTC:12.4K
+#define T_60C 203 //60℃ NTC:24.7K
+
+#define T_75C 130 //75℃ NTC:14.6K
+
+#define T_80C 113 //80℃ NTC:12.4K
#endif
diff --git a/UsrInc/inc/define.h b/UsrInc/inc/define.h
index 6fea679..444ff06 100644
--- a/UsrInc/inc/define.h
+++ b/UsrInc/inc/define.h
@@ -50,7 +50,7 @@
#define VOX_ENABLE 1 //1080Bytes
-#define VOX_FOLLOW_CHG 1
+#define VOX_FOLLOW_CHG 1 //1701Bytes
#if VOX_FOLLOW_CHG
@@ -62,8 +62,6 @@
#define VOX_TX //959Bytes
-#define VOX_TX_RST_PATTERN //BES Reset Pattern (118Bytes)
-
#define VOX_RX //739Bytes
#endif
@@ -94,16 +92,17 @@
#ifdef _DEBUG_ALL
-// #define _DEBUG_MAIN
+ #define _DEBUG_MAIN
#define _DEBUG_PMU
#define _DEBUG_KEY
#define _DEBUG_VOX
+ #define _DEBUG_FOLLOW
#define _DEBUG_HALL
// #define _DEBUG_ADC
// #define _DEBUG_DISCHARGE
// #define _DEBUG_CHARGER
-// #define _DEBUG_SLEEP
- #define _DEBUG_BAT
+ #define _DEBUG_SLEEP
+// #define _DEBUG_BAT
//#define TEST_MODE
diff --git a/UsrInc/inc/reg3315.h b/UsrInc/inc/reg3315.h
index ea69c76..23266eb 100644
--- a/UsrInc/inc/reg3315.h
+++ b/UsrInc/inc/reg3315.h
@@ -108,6 +108,9 @@ sfr ADC_IntFlag =0xA4;
#define ADC_CH4_L 0x3D
#define ADC_CH4_H 0x3E
+#define ADC_OFFSET 0x59
+#define ADC_GAIN 0x5A
+
/*-------- SYS Registers --------*/
#define LDO08_CTL 0x50
#define LDO15_CTL0 0x51
diff --git a/UsrInc/led/led.h b/UsrInc/led/led.h
index 134cfbb..b63476e 100644
--- a/UsrInc/led/led.h
+++ b/UsrInc/led/led.h
@@ -25,7 +25,7 @@
#include "define.h"
-#ifdef LED_DISPLAY
+
#ifdef _DEBUG_LED
#define _DEBUG_LED_1
@@ -61,6 +61,8 @@ sbit pin_LED_4 = P1^3;
#define LEDB_OFF() pin_LED_4 = 0 //LED_4_OFF()
#define LEDB_TOG() pin_LED_4 = !pin_LED_4 //LED_4_RUN()
+#ifdef LED_DISPLAY
+
/******************************************************************************\
Typedef definitions
\******************************************************************************/
diff --git a/UsrInc/pmu/pmu.h b/UsrInc/pmu/pmu.h
index 47e5094..0d275b7 100644
--- a/UsrInc/pmu/pmu.h
+++ b/UsrInc/pmu/pmu.h
@@ -475,6 +475,8 @@ extern void Set_PMU_Boost(uint8_t Boost_En);
extern void Set_PMU_Boost_Vout(uint8_t Boost_Vout);
+extern void Set_PMU_StandbyMode_Set(uint8_t LDO_En);
+
extern HAL_StatusTypeDef Set_PMU_VOX_Config( g_PMU_Vox_Cfg *n_PMU_Vox_Cfg );
#endif
diff --git a/UsrInc/vox/vox_module.h b/UsrInc/vox/vox_module.h
index 0bca9b0..1ecba38 100644
--- a/UsrInc/vox/vox_module.h
+++ b/UsrInc/vox/vox_module.h
@@ -114,9 +114,14 @@ SFRDATA |= (VOX_LIGHT_TO_HAVEY_128 << 2) | VOX_HAVEY_TO_LIGHT_8;
#define BOXHEADER 0x55AA //VOX通讯数据包头
+#define EARPHONE_HEADER_HIGH 0x55
+#define EARPHONE_HEADER_LOW 0xAA
+
#define BOXIDCODE 0xFF //VOX通讯耳机->仓数据包头
-#define Vox_TX_Interval 2 //Vox定时发送指令时间间隔
+#define Vox_TX_Interval 2 //Vox定时发送指令时间间隔
+
+#define Vox_TX_Interval_2 4
#define TIM_SHUTDOWN_DEBOUNCE 600 //关机前debounce时间
@@ -194,7 +199,6 @@ typedef enum {
Vox_Follow_Chg_Sta4,
}e_Vox_Follow_Chg_Sta;
-
/* VOX Enable Type */
typedef enum {
@@ -213,11 +217,14 @@ typedef enum {
VOX_PD1K_Mode, // VOX 1K 电阻下拉使能 1: VOR 通过 1K 电阻下拉至 gnd
- } VOX_Enable_Mode_e;
-
+ } VOX_Enable_Mode_e;
extern bit Cover_Open_Flag;
+extern bit Boost_Open_Flag;
+
+extern bit OpenCover_TX_Cmd_Flag;
+
#ifdef VOX_RX
extern xdata uint8_t Vox_Get_Vbat_Flag[2]; //耳机配对状态,VOL:低4bit;VOR:高4bit。0是无效,1是正在配对,2是配对成功,3不处理,保持当前状态。
@@ -226,6 +233,8 @@ extern xdata uint8_t Vox_Get_BES_Addr_Flag[2] ;
#endif
+#if VOX_FOLLOW_CHG
+
typedef struct {
uint16_t IVox_Init[VOX_MAX_CHAN]; //跟随充Vox初始化电流值。
@@ -246,11 +255,11 @@ typedef struct {
uint8_t Vox_InBox_Sta[VOX_MAX_CHAN]; //耳机在盒标志
- uint16_t Vpmid_Threshold_Neg; //Vpmid电压下降阈值
+ uint8_t Vpmid_Threshold_Neg; //Vpmid电压下降阈值
- uint16_t Vpmid_Threshold_At_Present; //Vpmid电压当前值
+ uint8_t Vpmid_Threshold_At_Present; //Vpmid电压当前值
- uint16_t Vpmid_Threshold_Pos; //Vpmid电压上升阈值
+ uint8_t Vpmid_Threshold_Pos; //Vpmid电压上升阈值
uint8_t Vox_Follow_Start; //跟随充启动标志
@@ -260,8 +269,10 @@ typedef struct {
extern g_Vox_Fllow_Chg_Cfg xdata Vox_Fllow_Chg;
-//extern uint8_t Box_To_Bes_Comm_Debounce;
+#endif
+//extern uint8_t Box_To_Bes_Comm_Debounce;
+
/******************************************************************************\
UserCfg.Functions definitions
\******************************************************************************/
@@ -269,9 +280,9 @@ extern g_Vox_Fllow_Chg_Cfg xdata Vox_Fllow_Chg;
extern void HandleTxCommand(VOX_BES_COMMAND_E TxCommand, e_Vox_Chan nVox_Chn_Select);
extern void Vox_Det_Machine(void);
-
+#if VOX_FOLLOW_CHG
extern void Vox_Follow_Chg( g_Vox_Fllow_Chg_Cfg *n_Vox_Fllow_Chg );
-
+#endif
extern void VOX_EN_Type(VOX_Enable_Mode_e VOX_Enable_Mode);
#ifdef VOX_RX
diff --git a/UsrSrc/adc/adc.c b/UsrSrc/adc/adc.c
index e5a0264..83203a8 100644
--- a/UsrSrc/adc/adc.c
+++ b/UsrSrc/adc/adc.c
@@ -31,6 +31,10 @@
/******************************************************************************\
Variables definitions
\******************************************************************************/
+int8_t ADC_Offset_Error = 0; //ADC Offset Error 校准值寄存器
+
+//int8_t ADC_Gain_Error = 0; //ADC Gain Error 校准值寄存器
+
uint8_t ADC_Chn_Num = 0;
idata uint16_t Vbat_Adc = 0;
@@ -85,13 +89,19 @@ void Adc_Init(void)
SFRADDR = MFP_CTL0; //Set P14 As ADC1 For NTC
SFRDATA |= 0x10;
-
+
ExtSfr_Write(ADC_CTL0,0xAB); //0B10101001,0xA9--ADC EN;Average time:16; Single mode; ADC CLK divided by 24=460k
- SFRADDR = ADC_IntEn; //Enable ADC Interrupt.b[4:0]:ADC4-ADC0
- SFRDATA |= 0x03;
+// SFRADDR = ADC_IntEn; //Enable ADC Interrupt.b[4:0]:ADC4-ADC0
+// SFRDATA |= 0x03;
- EX6 = 1; //ADC IRQ Enable
+ SFRADDR = ADC_OFFSET;
+ ADC_Offset_Error = SFRDATA;
+#if 0
+ SFRADDR = ADC_GAIN;
+ ADC_Gain_Error = SFRDATA;
+#endif
+// EX6 = 1; //ADC IRQ Enable
}
/*
@@ -110,14 +120,64 @@ void Adc_Init(void)
*/
void PMU_ADC_Chn_Data(PMU_ADC_CHANNELS_E pmu_Adc_Chn)
{
+ if( ADC_IntFlag & 0x01 )
+ {
+ ADC_IntFlag = 0x01;
+
+ g_Vpmu_Adc = ExtSfr_Read(ADC_CH0_L);
+ g_Vpmu_Adc |= (uint16_t)( ( ExtSfr_Read(ADC_CH0_H) & 0x03 ) << 8 );
+
+ g_Vpmu_Adc = ((uint32_t)( g_Vpmu_Adc - ADC_Offset_Error ) * 2500) >> 10 ; //ADC的LSB = 2500mV / 1024 = 2.44mV
+
+ /*获取xSen对应的ADC值*/
+ switch (g_PMU_ADC_Chn)
+ {
+ case pmu_ADC_IVOL:
+ g_pmu_Adc_Ivol = g_Vpmu_Adc >> 2; //采样比例4mV/mA
+ break;
+
+ case pmu_ADC_VBAT:
+ Vbat_Adc = g_Vpmu_Adc << 1; //vbat的2分压
+ break;
+
+ case pmu_ADC_VIN:
+ g_pmu_Adc_Vin = g_Vpmu_Adc << 3; //vin的8分压
+ break;
+
+ case pmu_ADC_VPMID:
+ g_pmu_Adc_Vpmid = g_Vpmu_Adc << 2; //PMID的4分压
+ break;
+
+ case pmu_ADC_VOR:
+ g_pmu_Adc_Vor = g_Vpmu_Adc << 2; //vor的4分压
+ break;
+
+ case pmu_ADC_VOL:
+ g_pmu_Adc_Vol = g_Vpmu_Adc << 2; //vol的4分压
+ break;
+
+ case pmu_ADC_VDD:
+ g_pmu_Adc_Vdd = g_Vpmu_Adc << 1; //vdd的2分压
+ break;
+
+ case pmu_ADC_IVOR:
+ g_pmu_Adc_Ivor = g_Vpmu_Adc >> 2; //采样比例4mV/mA
+ break;
+ default:
+ break;
+ }
+ }
+
I2cSfr_Write( XSEN_CTRL , (0x08 | pmu_Adc_Chn) );
g_PMU_ADC_Chn = pmu_Adc_Chn;
- ADC_CTL1 = 0x81; //ADC Start Enable,Set Channel N Enabel.
+ ADC_CTL1 = 0x80 | ( ADC_PMU_CH0 ); //ADC Start Enable,Set Channel N Enabel.
+#if 0
SFRADDR = ADC_IntEn; //Enable ADC Interrupt.b[4:0]:ADC4-ADC0
SFRDATA |= 0x01;
+#endif
}
/*
*******************************************************************************
@@ -135,10 +195,23 @@ void PMU_ADC_Chn_Data(PMU_ADC_CHANNELS_E pmu_Adc_Chn)
*/
void ADC_NTC_Data(void)
{
- ADC_CTL1 = 0x80 | ( ADC_NTC_CH1 + 1 ); //ADC Start Enable,Set Channel N Enabel.
+ if( ADC_IntFlag & 0x02 ) //获取NTC ADC 码值
+ {
+ ADC_IntFlag = 0x02;
+
+ g_Vntc_Adc = ExtSfr_Read(ADC_CH1_L);
+
+ g_Vntc_Adc |= (uint16_t)( ( ExtSfr_Read(ADC_CH1_H) & 0x03 ) << 8 );
+ g_Vntc_Adc = g_Vntc_Adc - ADC_Offset_Error ;
+ }
+
+ ADC_CTL1 = 0x80 | ( ADC_NTC_CH1 ); //ADC Start Enable,Set Channel N Enabel.
+
+#if 0
SFRADDR = ADC_IntEn; //Enable ADC Interrupt.b[4:0]:ADC4-ADC0
SFRDATA |= ( ADC_NTC_CH1 + 1 );
+#endif
}
/*
@@ -155,6 +228,7 @@ void ADC_NTC_Data(void)
*
*******************************************************************************
*/
+#if 0
void EX6_ADC_isr(void) interrupt Interrupt_Vector_IE6
{
uint8_t reg_addr_bk = 0;
@@ -166,8 +240,8 @@ void EX6_ADC_isr(void) interrupt Interrupt_Vector_IE6
g_Vpmu_Adc = ExtSfr_Read(ADC_CH0_L);
g_Vpmu_Adc |= (uint16_t)( ( ExtSfr_Read(ADC_CH0_H) & 0x03 ) << 8 );
- g_Vpmu_Adc = ((uint32_t)g_Vpmu_Adc * 2500) >> 10 ; //ADC的LSB = 2500mV / 1024 = 2.44mV
-
+ g_Vpmu_Adc = ((uint32_t)( g_Vpmu_Adc - ADC_Offset_Error ) * 2500) >> 10 ; //ADC的LSB = 2500mV / 1024 = 2.44mV
+
/*获取xSen对应的ADC值*/
switch (g_PMU_ADC_Chn)
{
@@ -207,12 +281,13 @@ void EX6_ADC_isr(void) interrupt Interrupt_Vector_IE6
}
}
- if(ADC_IntFlag & 0x02)
+ if(ADC_IntFlag & 0x02) //获取NTC ADC 码值
{
g_Vntc_Adc = ExtSfr_Read(ADC_CH1_L);
+
g_Vntc_Adc |= (uint16_t)( ( ExtSfr_Read(ADC_CH1_H) & 0x03 ) << 8 );
- g_Vntc_Adc = ((uint32_t)g_Vntc_Adc * 2500) >> 10 ; //ADC的LSB = 2500mV / 1024 = 2.44mV
+ g_Vntc_Adc = g_Vntc_Adc - ADC_Offset_Error ;
}
#if 0
@@ -220,18 +295,24 @@ void EX6_ADC_isr(void) interrupt Interrupt_Vector_IE6
{
g_Vbjt_Adc = ExtSfr_Read(ADC_CH2_L);
g_Vbjt_Adc |= (uint16_t)( ( ExtSfr_Read(ADC_CH2_H) & 0x03 ) << 8 );
+
+ g_Vbjt_Adc = g_Vbjt_Adc - ADC_Offset_Error ;
}
if(ADC_IntFlag & 0x08)
{
g_Vp13_Adc = ExtSfr_Read(ADC_CH3_L);
g_Vp13_Adc |= (uint16_t)( ( ExtSfr_Read(ADC_CH3_H) & 0x03 ) << 8 );
+
+ g_Vp13_Adc = g_Vp13_Adc - ADC_Offset_Error ;
}
if(ADC_IntFlag & 0x10)
{
g_Vref_Adc = ExtSfr_Read(ADC_CH4_L);
g_Vref_Adc |= (uint16_t)( ( ExtSfr_Read(ADC_CH4_H) & 0x03 ) << 8 );
+
+ g_Vref_Adc = g_Vref_Adc - ADC_Offset_Error ;
}
#endif
@@ -240,6 +321,7 @@ void EX6_ADC_isr(void) interrupt Interrupt_Vector_IE6
SFRADDR = reg_addr_bk;
}
+#endif
#endif
diff --git a/UsrSrc/charger/charger_module.c b/UsrSrc/charger/charger_module.c
index b6a88b8..e23811c 100644
--- a/UsrSrc/charger/charger_module.c
+++ b/UsrSrc/charger/charger_module.c
@@ -26,8 +26,7 @@
#include "vox_module.h"
#include "led.h"
#include "userapp.h"
-
-bit Charger_Done = 0;
+#include "bat.h"
#ifdef NTC_ENABLE
bit NTC_Pro_Flag = 0;
@@ -82,7 +81,7 @@ void Charger_Init(void)
gCharge_Cfg.nVFloat = CHG_VFLOAT_4_200V;
- I2cSfr_Write( IRQ_EN0, VDPM_IRQ );
+ //I2cSfr_Write( IRQ_EN0, VDPM_IRQ );
}
#ifdef NTC_ENABLE
@@ -128,7 +127,7 @@ uint8_t PMU_NTC_Handle(uint8_t Charge_sta)
NTC_Adc = g_Vntc_Adc;
#endif
- if( NTC_Adc >= 2400 ) ////屏蔽NTC功能,NTC浮空,屏蔽 NTC 功能,并锁定。
+ if( NTC_Adc >= NONE_NTC ) ////屏蔽NTC功能,NTC浮空,屏蔽 NTC 功能,并锁定。
{
return FALSE;
}
@@ -464,8 +463,7 @@ void Charger_Handler(void)
Set_PMU_CHG(OFF); //Disable Charger
ChgStatus = CHG_NONE;
-
- Charger_Done = 0;
+
#ifdef _DEBUG_CHARGER
printf("No Chg\r\n");
#endif
@@ -473,6 +471,7 @@ void Charger_Handler(void)
}
/*各项保护都无需软件处理,只处理充电超时,超时后需要等VBUS重新插拔后才重新开始Charger流程。*/
+ ChgStatus = CHG_PROTECT;
#ifdef NTC_ENABLE
@@ -495,8 +494,6 @@ void Charger_Handler(void)
#ifdef _DEBUG_CHARGER
printf("Chg Done\r\n");
#endif
- Charger_Done = 1;
-
ChgStatus = CHG_STA_COMPLETED;
}
@@ -511,10 +508,10 @@ void Charger_Handler(void)
Set_PMU_CHG(ON); //Enable Charger
ChgStatus = CHG_STA_ING;
+
#ifdef _DEBUG_CHARGER
printf("Chg ing\r\n");
#endif
- Charger_Done = 0;
}
}
diff --git a/UsrSrc/discharge/discharge_module.c b/UsrSrc/discharge/discharge_module.c
index e4c8b4b..cec8aeb 100644
--- a/UsrSrc/discharge/discharge_module.c
+++ b/UsrSrc/discharge/discharge_module.c
@@ -125,19 +125,17 @@ void DisCharge_Handler(void)
#else
+ gBoost_Prepared_Flag = 0;
+
/*过温保护 --- 硬件实现*/
if( pmu_Info.pmu_Fault_STA2 & Fault_Sta2_CHIP_OTP )
- {
- gBoost_Prepared_Flag = 0;
-
+ {
return;
}
/*Boost Input UVLO 硬件实现*/
if( pmu_Info.pmu_Fault_STA2 & Fault_Sta2_BoostUV )
- {
- gBoost_Prepared_Flag = 0;
-
+ {
gBoost_UVLO_Flag = 1;
return;
@@ -148,9 +146,7 @@ void DisCharge_Handler(void)
if( F_batlevel_protect )
{
Set_PMU_Boost(OFF);
-
- gBoost_Prepared_Flag = 0;
-
+
return;
}
@@ -161,24 +157,22 @@ void DisCharge_Handler(void)
{
#ifdef _DEBUG_DISCHARGE
printf("Boost Pro Output Short!\r\n");
-#endif
- gBoost_Prepared_Flag = 0;
-
+#endif
if( F_sys_tim_250ms )
{
- IRQ_FLAG0 = 0x01;
-
- DisCharge_Boost_Open(OFF, Boost_Vout_5_05V); //250ms定时开一次Boost
+ Set_PMU_Boost_Vout(BOOST_VPMID_5_2V); //开关盖Boost输出5.2V,保证耳机一定能被唤醒。
+
+ Set_PMU_Boost(ON); //Boost Enable;异常时由硬件主动关闭。开启Boost,开启Vox 5v会在开启Boost之后(100ms延时)。 //250ms定时开一次Boost
}
return;
}
#ifdef NTC_ENABLE
+
/*NTC Handle*/ //使能Boost前先检测NTC温度,异常就不开放电。
if( PMU_NTC_Handle( DISCHG_ON ) ) //NTC保护,不放电。
{
- gBoost_Prepared_Flag = 0;
Set_PMU_Boost(OFF);
diff --git a/UsrSrc/hall/hall.c b/UsrSrc/hall/hall.c
index 374a1f9..af7ca7e 100644
--- a/UsrSrc/hall/hall.c
+++ b/UsrSrc/hall/hall.c
@@ -106,6 +106,8 @@ uint8_t Hall_Sta_bk = 0xff;
}
CoverEvent_Flg = 1;
+
+ Boost_Open_Flag = 0;
CoverEvent_Flg_led = 1;
diff --git a/UsrSrc/key/key.c b/UsrSrc/key/key.c
index 2a1d253..73486d3 100644
--- a/UsrSrc/key/key.c
+++ b/UsrSrc/key/key.c
@@ -26,6 +26,7 @@
#include "vox_module.h"
#include "userapp.h"
#include "hall.h"
+#include "discharge_module.h"
#if KEY_ENABLE
/******************************************************************************\
@@ -39,6 +40,14 @@
#define KEY_PRESS_8S_CNT 400 //按键按下计数8s(调用周期20ms)
+#define KEY_TWS_PAIR_TIMER 20
+
+#define KEY_TWS_PAIR_CNT 5
+
+#define KEY_TWS_PAIR_CLEAR_CNT 30
+
+#define KEY_LIFT_CNT 10
+
/******************************************************************************\
Variables definitions
\******************************************************************************/
@@ -50,14 +59,14 @@ bit Key_Press_ll_irq = 0;
idata KEY_EVENT_E Event_key = 0;
uint8_t Key_TWS_Pair_Tim = 0;
+
+uint8_t Key_TWS_Clear_Pair_Tim = 0;
+
uint8_t Key_TWS_Pair_Cnt = 0;
uint16_t Key_Press_Debounce = 0;
-#define KEY_TWS_PAIR_TIMER 20
-#define KEY_TWS_PAIR_CNT 5
-
-#define KEY_TWS_PAIR_CLEAR_CNT 30
+uint8_t Key_Lift_Debounce = 0;
/******************************************************************************\
Functions definitions
@@ -126,9 +135,13 @@ uint16_t Key_Press_Debounce = 0;
Enter_Sleep_Cnt_Restart_Flag = 1;
#endif
+ Event_key = KEY_EVENT_Empty;
+
Key_Press_Flag = 0;
Key_Lift_Flag = 1;
+
+ Key_Lift_Debounce = 0;
nKey_Press_8s_Flag = 0;
@@ -156,12 +169,31 @@ uint16_t Key_Press_Debounce = 0;
Key_Press_Debounce = 0;
}
- if( Key_Lift_Flag )
+ if( Key_Lift_Flag && gBoost_Prepared_Flag )
{
- Key_Lift_Flag = 0;
+ if( !Boost_Open_Flag )
+ {
+ Set_PMU_Boost(ON);
+
+ Boost_Open_Flag = 1;
+#ifdef _DEBUG_KEY
+ printf("Boost Open Key.(line:%d)\r\n",(u16)__LINE__);
+#endif
+
+ return;
+ }
+
+ VOX_EN_Type(VOX_VOUT_Mode); //VOX Enable 5V
+
+ if( Key_Lift_Debounce <= KEY_LIFT_CNT )
+ {
+ Key_Lift_Debounce++;
+
+ return;
+ }
if( Key_Press_l_irq )
- {
+ {
Key_Press_l_irq = 0;
/*todo*/
Event_key = KEY_EVENT_L_2S;
@@ -169,6 +201,9 @@ uint16_t Key_Press_Debounce = 0;
Key_TWS_Pair_Tim = 0;
/*耳机配对*/
+ Vox_Get_BES_Addr_Flag[VOL_TYPE] = 0x00;
+
+ Vox_Get_BES_Addr_Flag[VOR_TYPE] = 0x00;
#ifdef _DEBUG_KEY
printf("long 2s press\r\n");
@@ -178,6 +213,8 @@ uint16_t Key_Press_Debounce = 0;
if( Key_Press_ll_irq )
{
Key_Press_ll_irq = 0;
+
+ Key_TWS_Clear_Pair_Tim = 0;
/*todo*/
Event_key = KEY_EVENT_LL_8S;
@@ -197,10 +234,10 @@ uint16_t Key_Press_Debounce = 0;
printf("short press\r\n");
#endif
}
- }
- else
- {
- Event_key = KEY_EVENT_Empty;
+
+ Key_Lift_Flag = 0;
+
+ Boost_Open_Flag = 0;
}
#if 1
@@ -214,16 +251,28 @@ uint16_t Key_Press_Debounce = 0;
HandleTxCommand(VHOUSE_CMD_PAIR,VOR_CHAN); //右耳发配对指令,区分耳机通道。
#endif
Vox_Get_BES_Addr_Flag[VOL_TYPE] = 0x00;
+
Vox_Get_BES_Addr_Flag[VOR_TYPE] = 0x00;
+#ifdef _DEBUG_KEY
+ printf("Key Pair TX VOR(line:%d).\r\n",(uint16_t)__LINE__);
+#endif
}
else
{
if(Key_TWS_Pair_Cnt > KEY_TWS_PAIR_CNT) //耳机蓝牙地址置换超时10s,关闭蓝牙地址置换,开启VOX 5V。
{
Key_TWS_Pair_Cnt = 0;
+
+ Event_key = KEY_EVENT_Empty;
+
+ OpenCover_TX_Cmd_Flag = 1;
#if VOX_ENABLE
- VOX_EN_Type(VOX_VOUT_Mode);
+ VOX_EN_Type(VOX_ADT_Mode);
#endif
+#ifdef _DEBUG_KEY
+ printf("Key Pair TimeOut(line:%d).\r\n",(uint16_t)__LINE__);
+#endif
+
return;
}
else
@@ -233,7 +282,11 @@ uint16_t Key_Press_Debounce = 0;
#ifdef VOX_TX
HandleTxCommand(VHOUSE_CMD_EXCH_TWS_BTADDR,VOL_CHAN); /*获取到右耳回复的CMD3指令,转发给左耳。*/
#endif
- Vox_Get_BES_Addr_Flag[VOR_TYPE] = 0x02;
+ Vox_Get_BES_Addr_Flag[VOR_TYPE] = 0x02;
+#ifdef _DEBUG_KEY
+ printf("Key Pair Get VOR(line:%d).\r\n",(uint16_t)__LINE__);
+#endif
+
}
else
if( Vox_Get_BES_Addr_Flag[VOR_TYPE] == 0x02 )
@@ -247,10 +300,17 @@ uint16_t Key_Press_Debounce = 0;
Vox_Get_BES_Addr_Flag[VOR_TYPE] = 0x00;
Key_TWS_Pair_Tim = 0;
+
+ Key_TWS_Pair_Cnt = 0;
+
Event_key = KEY_EVENT_Empty;
+
+ OpenCover_TX_Cmd_Flag = 1;
- VOX_EN_Type(VOX_VOUT_Mode);
-
+ VOX_EN_Type(VOX_ADT_Mode);
+#ifdef _DEBUG_KEY
+ printf("Key Pair Get VOL(line:%d).\r\n",(uint16_t)__LINE__);
+#endif
return;
}
else
@@ -258,6 +318,10 @@ uint16_t Key_Press_Debounce = 0;
#ifdef VOX_TX
HandleTxCommand(VHOUSE_CMD_PAIR,VOL_CHAN);
#endif
+#ifdef _DEBUG_KEY
+ printf("Key Pair TX VOL(line:%d).\r\n",(uint16_t)__LINE__);
+#endif
+
}
}
}
@@ -266,7 +330,11 @@ uint16_t Key_Press_Debounce = 0;
if(Key_TWS_Pair_Tim > KEY_TWS_PAIR_TIMER) //3s重发一次。重发5次后超时
{
Key_TWS_Pair_Cnt++;
- Key_TWS_Pair_Tim = 0;
+
+ Key_TWS_Pair_Tim = 0;
+#ifdef _DEBUG_KEY
+ printf("Key Pair Cnt:%d.(line:%d)\r\n",(uint16_t)Key_TWS_Pair_Cnt,(uint16_t)__LINE__);
+#endif
}
else
{
@@ -276,28 +344,33 @@ uint16_t Key_Press_Debounce = 0;
else
if( Event_key == KEY_EVENT_LL_8S )
{
- if( Key_TWS_Pair_Tim < KEY_TWS_PAIR_CLEAR_CNT ) //每隔200ms发送一次,持续时间3s。
+ if( Key_TWS_Clear_Pair_Tim < KEY_TWS_PAIR_CLEAR_CNT ) //每隔200ms发送一次,持续时间3s。
{
- if( Key_TWS_Pair_Tim % 2*Vox_TX_Interval )
+ if( Key_TWS_Clear_Pair_Tim % Vox_TX_Interval_2 )
{
#ifdef VOX_TX
HandleTxCommand(VHOUSE_CMD_CLEAR_PAIR,VOR_CHAN);
#endif
}
else
- if( Key_TWS_Pair_Tim % Vox_TX_Interval )
+ if( Key_TWS_Clear_Pair_Tim % Vox_TX_Interval )
{
#ifdef VOX_TX
HandleTxCommand(VHOUSE_CMD_CLEAR_PAIR,VOL_CHAN);
#endif
}
- Key_TWS_Pair_Tim++;
+ Key_TWS_Clear_Pair_Tim++;
}
else
{
Event_key = KEY_EVENT_Empty;
- Key_TWS_Pair_Tim = 0;
+
+ OpenCover_TX_Cmd_Flag = 1;
+
+ Key_TWS_Clear_Pair_Tim = 0;
+
+ VOX_EN_Type(VOX_ADT_Mode);
}
}
}
diff --git a/UsrSrc/pmu/pmu.c b/UsrSrc/pmu/pmu.c
index 0ab74f0..66cfff7 100644
--- a/UsrSrc/pmu/pmu.c
+++ b/UsrSrc/pmu/pmu.c
@@ -63,6 +63,10 @@ void pmu_Init(void)
//I2cSfr_Write(IRQ_EN1, 0x00);
+// I2cSfr_Write( IRQ_EN0, 0xFF );
+
+// I2cSfr_Write( IRQ_EN1, 0xFF );
+
/*1、配置HALL、KEY。*/
I2cSfr_Write(I2CR_RST_CFG, 0x08); //HALL开盒退出ShipMode功能;KEY长按复位VDD,若处于ShipMode模式,则退出ShipMode模式;
@@ -272,6 +276,41 @@ void Set_PMU_Boost_Vout(uint8_t Boost_Vout)
I2cSfr_Write( CHG_VPMID_SET, I2cSfr_Temp | Boost_Vout );
}
+/*
+ *******************************************************************************
+ * void Set_PMU_StandbyMode_Set(uint8_t LDO_En)
+ *
+ * Description : Set PMU Enter ShipMode
+ *
+ * Arguments : uint8_t LDO_En:0:LDO Open;1:Bypass Vbat
+
+ * Returns : NONE
+
+ * Notes : NONE
+ *
+ *******************************************************************************
+ */
+void Set_PMU_StandbyMode_Set(uint8_t LDO_En)
+{
+ uint8_t I2cSfr_Temp = 0;
+
+ I2cSfr_Temp = I2cSfr_Read( VDPM_VDD_CHG_EN );
+
+ if( LDO_En )
+ {
+ I2cSfr_Temp &= ~VDD_BYPASS;
+ }
+ else
+ {
+ I2cSfr_Temp |= VDD_BYPASS;
+ }
+
+ I2cSfr_Write( VDPM_VDD_CHG_EN, I2cSfr_Temp );
+}
+
+
+#if 0
+
/*
*******************************************************************************
* HAL_StatusTypeDef Set_PMU_VOX_Config( g_PMU_Vox_Cfg *n_PMU_Vox_Cfg )
@@ -286,7 +325,7 @@ void Set_PMU_Boost_Vout(uint8_t Boost_Vout)
*
*******************************************************************************
*/
- #if 0
+
HAL_StatusTypeDef Set_PMU_VOX_Config( g_PMU_Vox_Cfg *n_PMU_Vox_Cfg )
{
#if 0
diff --git a/UsrSrc/system/system.c b/UsrSrc/system/system.c
index ed9ccaf..89d7bf1 100644
--- a/UsrSrc/system/system.c
+++ b/UsrSrc/system/system.c
@@ -53,7 +53,6 @@
Functions definitions
\******************************************************************************/
-
/*
*******************************************************************************
* void System_Init(void)
@@ -96,6 +95,8 @@ void System_Init(void)
// WDTREL = 0x80; //WDTPS = 0,wdt_f = wdt_f1/2;WDTPS = 1,wdt_f = wdt_f1/32;
#endif
+ I2C_GPIOInit();
+
#if ADC_ENABLE
Adc_Init();
#endif
@@ -127,10 +128,7 @@ void System_Init(void)
pmu_Init();
- I2C_GPIOInit();
-
Systerm_State.Next_State = POWER_ON_STATE;
-
}
/*
diff --git a/UsrSrc/timer/sys_tim.c b/UsrSrc/timer/sys_tim.c
index 99e6cbc..f0a3cf8 100644
--- a/UsrSrc/timer/sys_tim.c
+++ b/UsrSrc/timer/sys_tim.c
@@ -47,13 +47,11 @@ bit F_sys_tim_250ms = 0;
bit F_sys_tim_100ms = 0;
bit F_sys_tim_1s = 0;
-
uint8_t F_sys_tim_tick = 0;
bit F_sys_tim1_tick = 0;
bit F_sys_tim2_tick = 0;
-
/******************************************************************************\
Functions definitions
\******************************************************************************/
diff --git a/UsrSrc/uart/uart.c b/UsrSrc/uart/uart.c
index ff09b5a..6e6e744 100644
--- a/UsrSrc/uart/uart.c
+++ b/UsrSrc/uart/uart.c
@@ -21,6 +21,7 @@
#include "system.h"
#include "vox_module.h"
#include "sleep.h"
+#include "led.h"
/******************************************************************************\
Macro definitions
@@ -73,22 +74,23 @@ bit Uart1_RX_Finish_Flag = 0;
void UART0_Init(void)
{
#if 1
+
/* vor、vol都使用uart0进行分时通讯。 */
SFRADDR = P0_OE; //Set P02 And P03 As Output.
SFRDATA |= 0x0C;
- SFRADDR = P0_IE; //Set P02 And P03 As Input.
- SFRDATA |= 0x0C;
+// SFRADDR = P0_IE; //Set P02 And P03 As Input.
+// SFRDATA |= 0x0C;
// SFRADDR = P0_PU; //Set P02 And P03 30K Pullup.
// SFRDATA |= 0x0C;
- SFRADDR = MFP_CTL0; //VOR、VOL都使用UART0进行分时通讯。
- SFRDATA &=~ 0x0F;
- SFRDATA |= 0x09;
+// SFRADDR = MFP_CTL0; //VOR、VOL都使用UART0进行分时通讯。
+// SFRDATA &=~ 0x0F;
+// SFRDATA |= 0x09;
-
#else
+
/* vor、vol使用不同uart进行通讯 */
SFRADDR = P0_OE; //Set P02 As Output.
SFRDATA |= 0x04;
@@ -110,7 +112,10 @@ void UART0_Init(void)
S0RELL = LOBYTE(S0REL_VALUE);//s0rel=1023, baudrate = fclk/32 = 187.5k
S0CON = 0x52; //SCON: MODE 1, 8-bit UART, RI enable
-
+
+ TI0 = 1;
+ RI0 = 1;
+
ES0 = 1; //Enable UART0 IRQ
}
@@ -133,31 +138,34 @@ void UART0_Init(void)
void Uart0SendPacket(uint16_t Length,uint8_t *TransBuf)
{
uint8_t i = 0;
+
+ SFRADDR = P0_OE; //Set P02 And P03 As Output.
+ SFRDATA |= 0x0C;
- S0CON &=~ UART_REC_ENABLE; //Disable UART0's RX
+ SFRADDR = P0_IE; //Set P02 And P03 As Input.
+ SFRDATA &= ~0x0C;
- for(i=0;i> 8) )
+ if( S0BUF == EARPHONE_HEADER_HIGH )
{
Rx0Status = 1;
RX0_Cnt = 0;
- RX0_Buffer[RX0_Cnt] = S0BUF;
-
- RX0_Cnt++;
+ RX0_Buffer[RX0_Cnt++] = S0BUF;
}
else
{
@@ -197,38 +204,37 @@ void uart0_Interrupt(void) interrupt Interrupt_Vector_RI_TI
break;
case 1:
- if(S0BUF == BOXHEADER)
+ if( S0BUF == EARPHONE_HEADER_LOW )
{
Rx0Status = 2;
- RX0_Buffer[RX0_Cnt] = S0BUF;
-
- RX0_Cnt++;
+ RX0_Buffer[RX0_Cnt++] = S0BUF;
}
else
{
Rx0Status = 0;
- RX0_Cnt = 0;
+ RX0_Cnt = 0;
}
break;
+
case 2:
- RX0_Buffer[RX0_Cnt] = S0BUF;
+ {
+ RX0_Buffer[RX0_Cnt++] = S0BUF;
- RX0_Cnt++;
-
- if( RX0_Cnt == Vox_Comm_Data_Len )
+ if( ( RX0_Cnt >= ( RX0_Buffer[2] + 4 ) ) || ( RX0_Cnt > COM0_Data_Lenth ) )
{
- RX0DataLen = RX0_Buffer[2] + 4; //获取数据长度
- }
-
- if( (RX0DataLen == RX0_Cnt) || (RX0_Cnt > COM0_Data_Lenth) ) //当接收到的data个数等于RX0DataLen,这结束本次传输。
- {
RX0_Cnt = 0;
+
Rx0Status = 0;
- Uart0_RX_Finish_Flag = 1;
- }
-
+
+ Uart0_RX_Finish_Flag = 1;
+ }
+ }
+ break;
+
+ default:
+ break;
}
#endif
}
@@ -383,17 +389,7 @@ void uart1_Interrupt(void) interrupt Interrupt_Vector_RI1_TI1
RX1_Cnt++;
- if( RX1_Cnt == Vox_Comm_Data_Len )
- {
- RX1DataLen = RX1_Buffer[5] | (RX1_Buffer[6] << 8) + 9; //获取数据长度,Headr(1Byte) + Trandsmit Dir(1Byte) + CMD(2Bytes) + datalen(2Bytes) + CRC16(2Bytes)
- }
-
- if( (RX1DataLen == RX1_Cnt) || (RX1_Cnt > COM0_Data_Lenth) ) //当接收到的data个数等于RX0DataLen,这结束本次传输。
- {
- RX1_Cnt = 0;
- Rx1Status = 0;
- Uart1_RX_Finish_Flag = 1;
- }
+ break;
}
#endif
diff --git a/UsrSrc/userapp/userapp.c b/UsrSrc/userapp/userapp.c
index bf45998..972dfe2 100644
--- a/UsrSrc/userapp/userapp.c
+++ b/UsrSrc/userapp/userapp.c
@@ -47,6 +47,7 @@
\******************************************************************************/
xdata s_sys_state Systerm_State = {SLEEP_STATE,AWAKE_STATE,AWAKE_STATE};
+uint8_t Step_Cnt = 0;
uint8_t LED_On_Timer = 0; //led亮时间计时
@@ -114,6 +115,20 @@ void LED_Display_App(void)
static bit Disp_Bat_Lev;
+ if( LED_On_Flag )
+ {
+ LED_On_Flag = 0;
+
+ LED_On_Timer = 0;
+
+ Display_AllOff();
+
+#if SLEEP_ENABLE
+ Enter_Sleep_Cnt_Restart_Flag = 1;
+#endif
+ return;
+ }
+
#ifdef NTC_ENABLE
/*NTC保护,4灯一直快闪(2Hz)*/
if( NTC_Pro_Flag || Vox_Output_Short_Flag )
@@ -126,30 +141,27 @@ void LED_Display_App(void)
}
else
{
- if( Display_RSta != LED_KEEP_FLASHING )
+ if( Display_RSta != LED_FLASH )
{
Display_Red_Flash(20,10);
}
- if( Display_GSta != LED_KEEP_FLASHING )
+ if( Display_GSta != LED_FLASH )
{
Display_Green_Flash(20,10);
}
- if( Display_YSta != LED_KEEP_FLASHING )
+ if( Display_YSta != LED_FLASH )
{
Display_Yellow_Flash(20,10);
}
- if( Display_BSta != LED_KEEP_FLASHING )
+ if( Display_BSta != LED_FLASH )
{
Display_Blue_Flash(20,10);
}
}
-#if SLEEP_ENABLE
- Enter_Sleep_Cnt_Restart_Flag = 1;
-#endif
return;
}
@@ -161,21 +173,27 @@ void LED_Display_App(void)
LED_On_ChgDone_Flag = 0;
LED_On_Chg_Flag = 0;
+
+ CoverEvent_Flg_led = 0;
+
+ Earphone_Chg_Flag = 0;
Wkup_Earphone_Flag = 1;
}
#endif
- if (ChgStatus == CHG_STA_ING) //ChgStatus = CHG_STA_ING
+ if (ChgStatus != CHG_NONE)
{
- if ( Charger_Done ) // 充电完成,4个LED常亮
+ if ( ChgStatus == CHG_STA_COMPLETED ) // 充电完成,4个LED常亮
{
if( !LED_On_ChgDone_Flag )
{
LED_On_ChgDone_Flag = 1;
LED_Breating_Light_Off();
+
+ return;
}
Display_AllOn();
@@ -186,6 +204,8 @@ void LED_Display_App(void)
{
LED_On_Chg_Flag = 1;
+ LED_On_ChgDone_Flag = 0;
+
LED_On_Flag = 1;
Breathing_Light_Cnt = LED_R;
@@ -279,17 +299,6 @@ void LED_Display_App(void)
return;
}
-
- if( LED_On_Flag )
- {
- LED_On_Timer = 0;
-
- LED_On_Flag = 0;
-
- Display_AllOff();
-
- return;
- }
if( CoverEvent_Flg_led || Disp_Bat_Lev || Earphone_Chg_Flag || Key_Press_short_irq )
{
@@ -298,7 +307,7 @@ void LED_Display_App(void)
LED_On_Timer++;
}
else
- if( LED_On_Timer < LED_ON_CNT ) //LED显示5s后灭。
+ if( LED_On_Timer < LED_ON_CNT ) //LED显示10s后灭。
{
LED_On_Timer++;
@@ -345,7 +354,7 @@ void LED_Display_App(void)
Key_Press_short_irq = 0;
- LED_On_Flag = 1; //清LED显示
+ Display_AllOff(); //清LED显示
}
}
}
@@ -355,19 +364,19 @@ void LED_Display_App(void)
/*
*******************************************************************************
-* uint8_t PMU_ADC_GetValue_Machine(void)
+* void PMU_ADC_GetValue_Machine(void)
*
* Description : PMU(xSen) ADC值获取函数,使能一个通道后,在中断中取值,每使能一个通道,需要运行一个UserAPP周期。 (5ms调用周期)
*
* Arguments : NONE
-* Returns : 1:完成一次全通道采样;
+* Returns : NONE
* Notes : NONE
*
*******************************************************************************
*/
-uint8_t PMU_ADC_GetValue_Machine(void)
+void PMU_ADC_GetValue_Machine(void)
{
#ifdef _DEBUG_ADC
printf("adc chn:%d,pmu:%d,Ivol:%d,Vbat:%d,Vin:%d,Vpmid:%d,Vor:%d,Vol:%d,Vdd:%d,Ivor:%d.\r\n",(u16)ADC_Chn_Num,(u16)g_Vpmu_Adc,(u16)g_pmu_Adc_Ivol,(u16)Vbat_Adc,(u16)g_pmu_Adc_Vin,(u16)g_pmu_Adc_Vpmid,(u16)g_pmu_Adc_Vor,(u16)g_pmu_Adc_Vol,(u16)g_pmu_Adc_Vdd,(u16)g_pmu_Adc_Ivor);
@@ -377,12 +386,8 @@ uint8_t PMU_ADC_GetValue_Machine(void)
if( ADC_Chn_Num >= pmu_ADC_MAX )
{
- ADC_Chn_Num = 0;
-
- return 1;
+ ADC_Chn_Num = 0;
}
-
- return 0;
}
/*
@@ -401,13 +406,6 @@ uint8_t PMU_ADC_GetValue_Machine(void)
*/
void System_Drivers_Machine(void)
{
-#if CHARGER_ENABLE
- Charger_Handler();
-#endif
-
-#if DISCHARGE_ENABLE
- DisCharge_Handler();
-#endif
#if HALL_ENABLE
Hall_Handler();
@@ -424,6 +422,15 @@ void System_Drivers_Machine(void)
if ( F_sys_tim_100ms )
{
F_sys_tim_100ms = 0;
+
+#if CHARGER_ENABLE
+ Charger_Handler();
+#endif
+
+#if DISCHARGE_ENABLE
+ DisCharge_Handler();
+#endif
+
#if BAT_VALUE
check_bat_level();
#endif
@@ -495,6 +502,8 @@ void SysTem_State_Machine(void)
系统唤醒后需要处理的功能;
1、使能中断;
*/
+ Set_PMU_StandbyMode_Set(ON); //开启LDO
+
#ifdef _DEBUG_MAIN
printf("Awake State (line:%d)\r\n", (uint16_t)__LINE__);
#endif
@@ -517,7 +526,6 @@ void SysTem_State_Machine(void)
进入Sleep模式前的一些准备工作;
1、使能唤醒中断;
*/
-
#ifdef _DEBUG_MAIN
printf("Sleep State (line:%d)\r\n", (uint16_t)__LINE__);
@@ -575,10 +583,11 @@ void SysTem_State_Machine(void)
#ifdef _DEBUG_MAIN
- // printf("STA0:0x%x,STA1:0x%x,STA2:0x%x,Chip_STA:0x%x,VOX_STA:0x%x.Dec_Sleep:%d\r\n",(u16)(pmu_Info.pmu_Fault_STA0),(u16)(pmu_Info.pmu_Fault_STA1),(u16)(pmu_Info.pmu_Fault_STA2),(u16)(pmu_Info.pmu_Chip_STA),(u16)(pmu_Info.pmu_VOX_STA),(u16)Decnt_SleepDelay);
+ printf("STA0:0x%x,STA1:0x%x,STA2:0x%x,Chip_STA:0x%x,VOX_STA:0x%x.Dec_Sleep:%d\r\n",(u16)(pmu_Info.pmu_Fault_STA0),(u16)(pmu_Info.pmu_Fault_STA1),(u16)(pmu_Info.pmu_Fault_STA2),(u16)(pmu_Info.pmu_Chip_STA),(u16)(pmu_Info.pmu_VOX_STA),(u16)Decnt_SleepDelay);
// printf("Chg Sta:0x%x.,batPec:%d.\r\n",(u16)ChgStatus,(u16)bat_level_Pec);
printf("Vntc:%d,Ivol:%d,Vbat:%d,Vin:%d,Vpmid:%d,Vor:%d,Vol:%d,Vdd:%d,Ivor:%d.\r\n",(u16)g_Vntc_Adc,(u16)g_pmu_Adc_Ivol,(u16)Vbat_Adc,(u16)g_pmu_Adc_Vin,(u16)g_pmu_Adc_Vpmid,(u16)g_pmu_Adc_Vor,(u16)g_pmu_Adc_Vol,(u16)g_pmu_Adc_Vdd,(u16)g_pmu_Adc_Ivor);
+
#endif
if(Decnt_SleepDelay > 0)
@@ -619,17 +628,25 @@ void SysTem_State_Machine(void)
1、检测唤醒源,是否需要唤醒系统;
2、定时唤醒,更新电池电量;
*/
- #if SLEEP_ENABLE
+ #if 1
if(Check_Require_Sleep())
{
+ VOX_EN_Type(VOX_ADT_Mode);
+
+ Set_PMU_Boost(OFF);
+
+ Set_PMU_StandbyMode_Set(OFF); //关闭LDO
+
Enter_Sleep();
}
else
{
Systerm_State.Next_State = AWAKE_STATE;
}
-
+ #else
+
+ Systerm_State.Next_State = AWAKE_STATE;
#endif
break;
@@ -648,8 +665,6 @@ void SysTem_State_Machine(void)
* Return : None
* Note : None
*****************************************************************************/
-uint8_t Step_Cnt = 0;
-
void UserAPP(void)
{
if(F_sys_tim_5ms)
@@ -687,8 +702,9 @@ void UserAPP(void)
if ( F_sys_tim_10ms )
{
F_sys_tim_10ms = 0;
-
+#ifdef LED_DISPLAY
LED_Drv();
+#endif
}
}
diff --git a/UsrSrc/vox/vox_module.c b/UsrSrc/vox/vox_module.c
index 7edb2b2..8ddda84 100644
--- a/UsrSrc/vox/vox_module.c
+++ b/UsrSrc/vox/vox_module.c
@@ -56,10 +56,7 @@ bit Vox_Output_Short_Flag = 0;
#define BOOST_VOUT_MAX 2 //跟随充Boost输出电压上限值:0:4.6V,1:4.7V,2:4.8V,3:5.05V.
-#define Vox_TX_Pattern_Tim 11
-
-#define Vox_TX_Interval 2 //Vox定时发送指令时间间隔
-#define Vox_TX_Interval_2 3
+#define Vox_TX_Pattern_Tim 21
#define VOX_IOFF_HOLD_CNT 50
@@ -67,6 +64,8 @@ bit Vox_Output_Short_Flag = 0;
#define VOX_CLOSE_HOLD_CNT 50 //关盖发码前保持时间
+#define MAX_PACKET_SIZE 0x20
+
#if VOX_FOLLOW_CHG
#define VOX_FOLLOW_CHG_INIT_CNT 10
@@ -109,9 +108,21 @@ xdata uint8_t Vox_Get_BES_Addr_Flag[2] = {0};
#endif
+#ifdef VOX_TX
+
+idata uint8_t Net_Info[2][13] = {0};
+
+idata uint8_t MAC_Addr[2][18] = {0};
+
+uint8_t EarPhone_Num = 0;
+
+#endif
+
xdata uint8_t Earphone_Vbat[2] = 0; //对耳电量
xdata uint8_t Vox_Online_State[2] = {0}; //耳机在线标志位
+bit OpenCover_TX_Cmd_Flag = 0;
+
#define KEY_TWS_PAIR_TIMER 2
#define KEY_TWS_PAIR_CNT 6
@@ -328,8 +339,8 @@ xdata uint8_t Vox_Online_State[2] = {0}; //
case VOX_COMM_Mode_Uart:
- VOX_Confg |= VOX_CFG_Comx_Rup_2K |VOX_CFG_Vox_Rup_2K | VOX_CFG_Vox_Vup_VOXS;
-
+ VOX_Confg |= VOX_CFG_Comx_Rup_2K | 0<<5 |VOX_CFG_Vox_Rup_2K | VOX_CFG_Vox_Vup_VOXS;
+ // VOX_Confg |= VOX_CFG_Vox_Vup_VOXS;
Bst_VOX_Comm_EN |= BST_COMM_EN_Gate_Ctrl | ( BST_COMM_EN_Vor_Comm_En | BST_COMM_EN_Vol_Comm_En );
break;
@@ -405,10 +416,10 @@ void Vox_Det_Machine(void)
static bit Cover_Close_Flag;
static bit Cover_Close_Flag1;
+
+ static bit Cover_Close_Force_Vout_Flag;
static bit Cover_Open_Flag;
-
- static bit TX_Cmd_Flag;
static bit Cover_Open_5V_Flag;
@@ -442,18 +453,20 @@ void Vox_Det_Machine(void)
if( CoverEvent_Flg ) //Hall事件触发。
{
if( !Boost_Open_Flag )
- {
+ {
Set_PMU_Boost_Vout(BOOST_VPMID_5_2V); //开关盖Boost输出5.2V,保证耳机一定能被唤醒。
Set_PMU_Boost(ON); //Boost Enable;异常时由硬件主动关闭。开启Boost,开启Vox 5v会在开启Boost之后(100ms延时)。
Boost_Open_Flag = 1;
+#ifdef _DEBUG_VOX
+ printf("Boost Open.(line:%d)\r\n",(u16)__LINE__);
+#endif
+ VOX_EN_Type(VOX_VOUT_Mode); //VOX Enable 5V
return;
}
-
- VOX_EN_Type(VOX_VOUT_Mode); //VOX Enable 5V
-
+
Vox_Output_Debounce = 0;
Vox_Voltage_Hold_Timer = 0; //关盖清0,开盖使用
@@ -474,14 +487,12 @@ void Vox_Det_Machine(void)
Vox_Chg_Full_Flag = 0;
+ Cover_Close_Force_Vout_Flag = 0;
+
Vox_Getinto_Sleep_Flag = 0;
Vox_Chn_Select = 0;
- Vox_Get_BES_Addr_Flag[VOL_TYPE] = 0x00;
-
- Vox_Get_BES_Addr_Flag[VOR_TYPE] = 0x00;
-
Vox_Vout_Enable = ON;
Wkup_Earphone_Flag = 0;
@@ -494,7 +505,7 @@ void Vox_Det_Machine(void)
Follow_Chg_Sta = Vox_Follow_Chg_InitSta;
#endif
#ifdef _DEBUG_VOX
- printf("Box Close.\r\n");
+ printf("Box Close.(line:%d)\r\n",(u16)__LINE__);
#endif
}
else //2、开盖处理:5v 500ms 转0V 500ms,后转ADT模式。
@@ -507,14 +518,15 @@ void Vox_Det_Machine(void)
Cover_Open_5V_Flag = 0;
#ifdef _DEBUG_VOX
- printf("Box Open.\r\n");
+ printf("Box Open.(line:%d)\r\n",(u16)__LINE__);
#endif
}
+ Boost_Open_Flag = 0;
+
CoverEvent_Flg = 0;
}
-
/* 发送开盖指令*/
if( Cover_Open_Flag ) /*开盖后,5V持续N00ms后0V持续N00ms,保证耳机能被唤醒;之后发开盖码。*/
{
@@ -561,9 +573,7 @@ void Vox_Det_Machine(void)
Get_CHIP_STA1_Flag1 = 1;
- TX_Cmd_Flag = 1;
-
- Boost_Open_Flag = 0;
+ OpenCover_TX_Cmd_Flag = 1;
Vox_Vout_Enable = OFF;
#ifdef _DEBUG_VOX
@@ -573,30 +583,60 @@ void Vox_Det_Machine(void)
}
else
{
- if( TX_Cmd_Flag )
+ if( Event_key == KEY_EVENT_Empty )
{
- TX_Cmd_Flag = 0;
-
- CHIP_STA1_BK = pmu_Info.pmu_VOX_STA & ( VOR_LoadOn | VOL_LoadOn );
- }
- else
- {
- /*耳机出入盒判断*/
- if( CHIP_STA1_BK != ( pmu_Info.pmu_VOX_STA & ( VOR_LoadOn | VOL_LoadOn ) ) ) //查询耳机loadon状态,loadon状态改变,则说明有耳机出入盒。
+ if( OpenCover_TX_Cmd_Flag )
{
- if( pmu_Info.pmu_VOX_STA & ( VOR_LoadOn | VOL_LoadOn ) )
- {
- Earphone_Chg_Flag = 1;
-#ifdef LED_DISPLAY
- LED_On_Flag = 1;
-#endif
-#ifdef _DEBUG_VOX
- printf("Open Box And Earphone GetIn.\r\n");
-#endif
-
- }
+ OpenCover_TX_Cmd_Flag = 0;
- CHIP_STA1_BK = ( pmu_Info.pmu_VOX_STA & ( VOR_LoadOn | VOL_LoadOn ) );
+ CHIP_STA1_BK = pmu_Info.pmu_VOX_STA & ( VOR_LoadOn | VOL_LoadOn );
+
+ if ( pmu_Info.pmu_VOX_STA & ( VOR_LoadOn | VOL_LoadOn ) )
+ {
+ if ( ( pmu_Info.pmu_VOX_STA & ( VOR_LoadOn | VOL_LoadOn ) ) == ( VOR_LoadOn | VOL_LoadOn ) )
+ {
+ EarPhone_Num = 2;
+ }
+ else
+ {
+ EarPhone_Num = 1;
+ }
+ }
+ else
+ {
+ EarPhone_Num = 0;
+ }
+ }
+ else
+ {
+ /*耳机出入盒判断*/
+ if( CHIP_STA1_BK != ( pmu_Info.pmu_VOX_STA & ( VOR_LoadOn | VOL_LoadOn ) ) ) //查询耳机loadon状态,loadon状态改变,则说明有耳机出入盒。
+ {
+ if ( pmu_Info.pmu_VOX_STA & ( VOR_LoadOn | VOL_LoadOn ) )
+ {
+ Earphone_Chg_Flag = 1;
+#ifdef LED_DISPLAY
+ LED_On_Flag = 1;
+#endif
+ if ( ( pmu_Info.pmu_VOX_STA & ( VOR_LoadOn | VOL_LoadOn ) ) == ( VOR_LoadOn | VOL_LoadOn ) )
+ {
+ EarPhone_Num = 2;
+ }
+ else
+ {
+ EarPhone_Num = 1;
+ }
+ }
+ else
+ {
+ EarPhone_Num = 0;
+ }
+
+#ifdef _DEBUG_VOX
+ printf( "Open Box And Earphone GetIn(Num:%d)(VoxSta:0x%x).\r\n",(u16)EarPhone_Num, (u16)(pmu_Info.pmu_VOX_STA) );
+#endif
+ CHIP_STA1_BK = ( pmu_Info.pmu_VOX_STA & ( VOR_LoadOn | VOL_LoadOn ) );
+ }
}
}
}
@@ -621,98 +661,96 @@ void Vox_Det_Machine(void)
Follow_Chg_Sta = Vox_Follow_Chg_InitSta;
#endif
- Vox_TX_Timer = 0;
-
Vox_Voltage_Hold_Timer = 0;
- Vox_Output_Debounce = 0;
-
Vox_Chg_Full_Flag = 0;
+ Cover_Close_Force_Vout_Flag = 1;
+
return;
}
- VOX_EN_Type(VOX_VOUT_Mode); //VOX Enable 5V
+ VOX_EN_Type(VOX_VOUT_Mode); //VOX Enable 5V
+
#ifdef _DEBUG_VOX
- printf("Close Box And Force Voltage Up.\r\n");
+ printf("Close Box And Force Voltage Up.\r\n ");
#endif
+ Boost_Open_Flag = 0;
+
Wkup_Earphone_Flag = 0;
}
else
{
- if( Vox_Voltage_Hold_Timer <= VOX_VOLTAGE_HOLD_CNT ) //关盖Boost VPMID保持时间。
+ if( !Cover_Close_Force_Vout_Flag )
{
- Vox_Voltage_Hold_Timer++;
+ if( Vox_Voltage_Hold_Timer <= VOX_VOLTAGE_HOLD_CNT ) //关盖Boost VPMID保持时间。
+ {
+ Vox_Voltage_Hold_Timer++;
+
+ return;
+ }
+ /*发码*/
+ if( Vox_TX_Timer <= Vox_TX_Pattern_Tim ) //发送关盖指令。
+ {
+ if( (Vox_TX_Timer % Vox_TX_Interval_2) == 0 ) //200ms发送一次
+ {
+#ifdef VOX_TX
+ HandleTxCommand(VHOUSE_CMD_CLOSE_BOX,VOL_CHAN); //左耳发开盖指令,区分耳机通道。
+#endif
+ }
+ else
+ if( (Vox_TX_Timer % Vox_TX_Interval) == 0 ) //200ms发送一次
+ {
+#ifdef VOX_TX
+ HandleTxCommand(VHOUSE_CMD_CLOSE_BOX,VOR_CHAN); //右耳发开盖指令,区分耳机通道。
+#endif
+ }
- return;
- }
- /*发码*/
- if( Vox_TX_Timer <= Vox_TX_Pattern_Tim ) //发送关盖指令。
- {
- if( (Vox_TX_Timer % Vox_TX_Interval_2) == 0 ) //200ms发送一次
- {
-#ifdef VOX_TX
- HandleTxCommand(VHOUSE_CMD_CLOSE_BOX,VOL_CHAN); //左耳发开盖指令,区分耳机通道。
-#endif
- }
- else
- if( (Vox_TX_Timer % Vox_TX_Interval) == 0 ) //200ms发送一次
- {
-#ifdef VOX_TX
- HandleTxCommand(VHOUSE_CMD_CLOSE_BOX,VOR_CHAN); //右耳发开盖指令,区分耳机通道。
-#endif
+ Vox_TX_Timer++;
+
+ return;
}
- Vox_TX_Timer++;
+ if( Vox_Output_Debounce <= Vox_TX_Pattern_Tim ) //关盖后5s发送获取电量命令。
+ {
+ if( (Vox_Output_Debounce % Vox_TX_Interval_2) == 0 ) //200ms发送一次
+ {
+#ifdef VOX_TX
+ HandleTxCommand(VHOUSE_CMD_CLOSE_WIN_GET_VBAT,VOL_CHAN); //左耳发开盖指令,区分耳机通道。
+#endif
+ }
+ else
+ if( (Vox_Output_Debounce % Vox_TX_Interval) == 0 ) //200ms发送一次
+ {
+#ifdef VOX_TX
+ HandleTxCommand(VHOUSE_CMD_CLOSE_WIN_GET_VBAT,VOR_CHAN); //右耳发开盖指令,区分耳机通道。
+#endif
+ }
- return;
+ Vox_Output_Debounce++;
+
+ return;
+ }
}
}
-
- if( Vox_Output_Debounce <= VOX_CLOSE_HOLD_CNT ) //关盖后5s发送获取电量命令。
- {
- if( (Vox_Output_Debounce % Vox_TX_Interval_2) == 0 ) //200ms发送一次
- {
-#ifdef VOX_TX
- HandleTxCommand(VHOUSE_CMD_CLOSE_WIN_GET_VBAT,VOL_CHAN); //左耳发开盖指令,区分耳机通道。
-#endif
- }
- else
- if( (Vox_Output_Debounce % Vox_TX_Interval) == 0 ) //200ms发送一次
- {
-#ifdef VOX_TX
- HandleTxCommand(VHOUSE_CMD_CLOSE_WIN_GET_VBAT,VOR_CHAN); //右耳发开盖指令,区分耳机通道。
-#endif
- }
-
- Vox_Output_Debounce++;
-
- return;
- }
/* 发完关盖码后,开启VOX VOUT 5V输出。 */
if( Cover_Close_Flag1 )
{
- VOX_EN_Type(VOX_VOUT_Mode); //VOX Enable 5V
-
+ VOX_EN_Type(VOX_VOUT_Mode); //VOX Enable 5V
+#ifdef _DEBUG_VOX
+ printf("VOX Vout 5V(VOX_STA:0x%x,line:%d).\r\n",(uint16_t)(pmu_Info.pmu_VOX_STA), (uint16_t)__LINE__);
+#endif
Cover_Close_Flag1 = 0;
}
-
-#if VOX_FOLLOW_CHG
-
- if ( Vox_Fllow_Chg.Vox_Follow_Stop == OFF )
- {
- Vox_Follow_Chg( &Vox_Fllow_Chg ); //跟随充处理。
- }
else
-#endif
- {
+ {
if( !Vox_Chg_Full_Flag )
{
- if( ( (pmu_Info.pmu_VOX_STA & ( VOR_Ioff | VOL_Ioff ) ) == ( VOR_Ioff | VOL_Ioff ) )|| !(pmu_Info.pmu_VOX_STA & ( VOL_LoadOn | VOR_LoadOn ) ) || F_batlevel_low ) //耳机充满、VOX无负载、盒子低电,则关闭Vout输出通路,关闭Boost。
+ if( ( (pmu_Info.pmu_VOX_STA & ( VOR_Ioff | VOL_Ioff ) ) == ( VOR_Ioff | VOL_Ioff ) )|| !( pmu_Info.pmu_VOX_STA & ( VOL_LoadOn | VOR_LoadOn ) ) || F_batlevel_low ) //耳机充满、VOX无负载、盒子低电,则关闭Vout输出通路,关闭Boost。
{
- if( Vox_Voltage_Hold_Timer < VOX_VOUT_5V_LEAST_CNT ) //重载转轻载延时5s后关闭Boost输出。
+ if( Vox_Voltage_Hold_Timer <= VOX_VOUT_5V_LEAST_CNT ) //重载转轻载延时5s后关闭Boost输出。
{
Vox_Voltage_Hold_Timer++;
@@ -724,10 +762,23 @@ void Vox_Det_Machine(void)
Vox_Chg_Full_Flag = 1;
- Boost_Open_Flag = 0;
-
+ Vox_Output_Debounce = 0;
+
+ Vox_Voltage_Hold_Timer = 0;
+
+ Vox_Getinto_Sleep_Flag = 0;
+
VOX_EN_Type(VOX_ADT_Mode); //VOX Enable ADT
}
+ else
+ {
+#if VOX_FOLLOW_CHG
+ if ( Vox_Fllow_Chg.Vox_Follow_Stop == OFF )
+ {
+ Vox_Follow_Chg( &Vox_Fllow_Chg ); //跟随充处理。
+ }
+#endif
+ }
}
else
{
@@ -767,7 +818,7 @@ void Vox_Det_Machine(void)
}
}
}
-
+
Bat_Low_Pro_Flag = 0;
}
else
@@ -799,7 +850,8 @@ void Vox_Det_Machine(void)
CHIP_STA1_BK = ( pmu_Info.pmu_VOX_STA & ( VOR_LoadOn | VOL_LoadOn ) );
}
- }
+ }
+
}
#if VOX_FOLLOW_CHG
@@ -810,7 +862,7 @@ void Vox_Det_Machine(void)
*
* Description : Vox 跟随充处理函数。 (40ms调用周期)
*
-* Arguments : NONE
+* Arguments : g_Vox_Fllow_Chg_Cfg *g_Vox_Fllow_Chg
* Returns : NONE
@@ -839,7 +891,7 @@ void Vox_Follow_Chg( g_Vox_Fllow_Chg_Cfg *n_Vox_Fllow_Chg )
if( !nVpmid_Value_Setting )
{
Set_PMU_Boost_Vout(n_Vox_Fllow_Chg->Vpmid_Threshold_At_Present);
-#ifdef _DEBUG_VOX
+#ifdef _DEBUG_FOLLOW
printf("Follow CHG InitSta Set Max Vpmid.(Vox_sta:0x%x)(line:%d)\r\n",(u16)pmu_Info.pmu_VOX_STA, (u16)__LINE__);
#endif
nVpmid_Value_Setting = 1;
@@ -848,7 +900,7 @@ void Vox_Follow_Chg( g_Vox_Fllow_Chg_Cfg *n_Vox_Fllow_Chg )
else
{
Vox_Follow_Init_Deb = 0;
-
+ /* 参数初始化。 */
nVpmid_Value_Setting = 0;
n_Vox_Fllow_Chg->Vpmid_AddSta[VOR_CHAN] = OFF;
@@ -878,7 +930,7 @@ void Vox_Follow_Chg( g_Vox_Fllow_Chg_Cfg *n_Vox_Fllow_Chg )
Follow_Chg_Sta = Vox_Follow_Chg_Sta1;
Vox_Follow_Chg_Debounce = 0;
-#ifdef _DEBUG_VOX
+#ifdef _DEBUG_FOLLOW
printf("Follow CHG InitSta.(Vox_sta:0x%x)(line:%d)\r\n",(u16)pmu_Info.pmu_VOX_STA, (u16)__LINE__);
#endif
}
@@ -893,7 +945,7 @@ void Vox_Follow_Chg( g_Vox_Fllow_Chg_Cfg *n_Vox_Fllow_Chg )
n_Vox_Fllow_Chg->Vox_Follow_Stop = ON;
Follow_Chg_Sta = Vox_Follow_Chg_InitSta;
-#ifdef _DEBUG_VOX
+#ifdef _DEBUG_FOLLOW
printf("Follow CHG Sta1,No EarPhone In Box.(line:%d)\r\n",(u16)__LINE__);
#endif
}
@@ -907,7 +959,7 @@ void Vox_Follow_Chg( g_Vox_Fllow_Chg_Cfg *n_Vox_Fllow_Chg )
n_Vox_Fllow_Chg->IVox_Threshold_Neg[VOR_CHAN] = ( g_pmu_Adc_Ivor / 5 ) << 2; //Ivox_Threshold_Neg = IVox_Init * 80%
n_Vox_Fllow_Chg->IVox_Threshold_Pos[VOR_CHAN] = g_pmu_Adc_Ivor << 1; //Ivox_Threshold_Neg = IVox_Init * 2
-#ifdef _DEBUG_VOX
+#ifdef _DEBUG_FOLLOW
printf("Follow CHG Sta1,VOR Chging(Ivor:%dmA).(line:%d)\r\n",g_pmu_Adc_Ivor,(u16)__LINE__);
#endif
@@ -920,7 +972,7 @@ void Vox_Follow_Chg( g_Vox_Fllow_Chg_Cfg *n_Vox_Fllow_Chg )
n_Vox_Fllow_Chg->IVox_Threshold_Neg[VOL_CHAN] = ( g_pmu_Adc_Ivol / 5 ) << 2; //Ivox_Threshold_Neg = IVox_Init * 80%
n_Vox_Fllow_Chg->IVox_Threshold_Pos[VOL_CHAN] = g_pmu_Adc_Ivol << 1; //Ivox_Threshold_Neg = IVox_Init * 2
-#ifdef _DEBUG_VOX
+#ifdef _DEBUG_FOLLOW
printf("Follow CHG Sta1,VOL Chging(Ivol:%dmA).(line:%d)\r\n",g_pmu_Adc_Ivol,(u16)__LINE__);
#endif
@@ -948,7 +1000,7 @@ void Vox_Follow_Chg( g_Vox_Fllow_Chg_Cfg *n_Vox_Fllow_Chg )
n_Vox_Fllow_Chg->IVox_At_Present[VOR_CHAN] = g_pmu_Adc_Ivor;
n_Vox_Fllow_Chg->Vox_InBox_Sta[VOR_CHAN] = ON; //判断VOR有耳机在盒正常抽电
-#ifdef _DEBUG_VOX
+#ifdef _DEBUG_FOLLOW
printf("Follow CHG Sta2,Get IVOR:%dmA.(line:%d)\r\n",(u16)g_pmu_Adc_Ivor,(u16)__LINE__);
#endif
}
@@ -958,7 +1010,7 @@ void Vox_Follow_Chg( g_Vox_Fllow_Chg_Cfg *n_Vox_Fllow_Chg )
n_Vox_Fllow_Chg->IVox_At_Present[VOL_CHAN] = g_pmu_Adc_Ivol;
n_Vox_Fllow_Chg->Vox_InBox_Sta[VOL_CHAN] = ON; //判断VOL有耳机在盒正常抽电
-#ifdef _DEBUG_VOX
+#ifdef _DEBUG_FOLLOW
printf("Follow CHG Sta2,Get IVOL:%dmA.(line:%d)\r\n",(u16)g_pmu_Adc_Ivol,(u16)__LINE__);
#endif
}
@@ -984,7 +1036,7 @@ void Vox_Follow_Chg( g_Vox_Fllow_Chg_Cfg *n_Vox_Fllow_Chg )
Follow_Chg_Sta = Vox_Follow_Chg_InitSta;
n_Vox_Fllow_Chg->Vox_Follow_Start = OFF; //重启动跟随充
-#ifdef _DEBUG_VOX
+#ifdef _DEBUG_FOLLOW
printf("Follow CHG Sta3,VOX Chg ReInit.(line:%d)\r\n",(u16)__LINE__);
#endif
}
@@ -1002,14 +1054,14 @@ void Vox_Follow_Chg( g_Vox_Fllow_Chg_Cfg *n_Vox_Fllow_Chg )
{
n_Vox_Fllow_Chg->Vox_InBox_Sta[VOR_CHAN] = OFF;
}
-#ifdef _DEBUG_VOX
+#ifdef _DEBUG_FOLLOW
printf("Follow CHG Sta3(CV),VOR Vpmid AddSta(Ivor:%dmA).(line:%d)\r\n",n_Vox_Fllow_Chg->IVox_At_Present[VOR_CHAN],(u16)__LINE__);
#endif
}
else //未检测到Ivor Ioff,则Vpmid降档
{
n_Vox_Fllow_Chg->Vpmid_SubSta[VOR_CHAN] = ON;
-#ifdef _DEBUG_VOX
+#ifdef _DEBUG_FOLLOW
printf("Follow CHG Sta3(CV),VOR Vpmid SubSta(Ivor:%dmA).(line:%d)\r\n",n_Vox_Fllow_Chg->IVox_At_Present[VOR_CHAN],(u16)__LINE__);
#endif
}
@@ -1019,14 +1071,14 @@ void Vox_Follow_Chg( g_Vox_Fllow_Chg_Cfg *n_Vox_Fllow_Chg )
if ( n_Vox_Fllow_Chg->IVox_At_Present[VOR_CHAN] > n_Vox_Fllow_Chg->IVox_Threshold_Neg[VOR_CHAN] )
{
n_Vox_Fllow_Chg->Vpmid_SubSta[VOR_CHAN] = ON;
-#ifdef _DEBUG_VOX
+#ifdef _DEBUG_FOLLOW
printf("Follow CHG Sta3(CC),VOR Vpmid SubSta(Ivor:%dmA).(line:%d)\r\n",n_Vox_Fllow_Chg->IVox_At_Present[VOR_CHAN],(u16)__LINE__);
#endif
}
else
{
n_Vox_Fllow_Chg->Vpmid_AddSta[VOR_CHAN] = ON;
-#ifdef _DEBUG_VOX
+#ifdef _DEBUG_FOLLOW
printf("Follow CHG Sta3(CC),VOR Vpmid AddSta(Ivor:%dmA).(line:%d)\r\n",n_Vox_Fllow_Chg->IVox_At_Present[VOR_CHAN],(u16)__LINE__);
#endif
}
@@ -1045,14 +1097,14 @@ void Vox_Follow_Chg( g_Vox_Fllow_Chg_Cfg *n_Vox_Fllow_Chg )
{
n_Vox_Fllow_Chg->Vox_InBox_Sta[VOL_CHAN] = OFF;
}
-#ifdef _DEBUG_VOX
+#ifdef _DEBUG_FOLLOW
printf("Follow CHG Sta3(CV),VOL Vpmid AddSta(Ivol:%dmA).(line:%d)\r\n",n_Vox_Fllow_Chg->IVox_At_Present[VOL_CHAN],(u16)__LINE__);
#endif
}
else //未检测到Ivol Ioff,则Vpmid降档
{
n_Vox_Fllow_Chg->Vpmid_SubSta[VOL_CHAN] = ON;
-#ifdef _DEBUG_VOX
+#ifdef _DEBUG_FOLLOW
printf("Follow CHG Sta3(CV),VOL Vpmid SubSta(Ivol:%dmA).(line:%d)\r\n",n_Vox_Fllow_Chg->IVox_At_Present[VOL_CHAN],(u16)__LINE__);
#endif
}
@@ -1062,14 +1114,14 @@ void Vox_Follow_Chg( g_Vox_Fllow_Chg_Cfg *n_Vox_Fllow_Chg )
if ( n_Vox_Fllow_Chg->IVox_At_Present[VOL_CHAN] > n_Vox_Fllow_Chg->IVox_Threshold_Neg[VOL_CHAN] )
{
n_Vox_Fllow_Chg->Vpmid_SubSta[VOL_CHAN] = ON;
-#ifdef _DEBUG_VOX
+#ifdef _DEBUG_FOLLOW
printf("Follow CHG Sta3(CC),VOL Vpmid SubSta(Ivol:%dmA).(line:%d)\r\n",n_Vox_Fllow_Chg->IVox_At_Present[VOL_CHAN],(u16)__LINE__);
#endif
}
else
{
n_Vox_Fllow_Chg->Vpmid_AddSta[VOL_CHAN] = ON;
-#ifdef _DEBUG_VOX
+#ifdef _DEBUG_FOLLOW
printf("Follow CHG Sta3(CC),VOL Vpmid AddSta(Ivol:%dmA).(line:%d)\r\n",n_Vox_Fllow_Chg->IVox_At_Present[VOL_CHAN],(u16)__LINE__);
#endif
}
@@ -1108,12 +1160,12 @@ void Vox_Follow_Chg( g_Vox_Fllow_Chg_Cfg *n_Vox_Fllow_Chg )
n_Vox_Fllow_Chg->Vpmid_AddSta[VOL_CHAN] = ON;
Follow_Chg_Sta = Vox_Follow_Chg_Sta2;
-#ifdef _DEBUG_VOX
+#ifdef _DEBUG_FOLLOW
printf("Follow CHG Sta4,VOx Vpmid AddSta(Vout:0x%x,Ivol:%dmA,Ivor:%dmA)(line:%d).\r\n",n_Vox_Fllow_Chg->Vpmid_Threshold_At_Present,g_pmu_Adc_Ivol,g_pmu_Adc_Ivor,(u16)__LINE__);
#endif
}
-#ifdef _DEBUG_VOX
+#ifdef _DEBUG_FOLLOW
else
{
printf("Follow CHG Sta4,VOx Ching(Vout:0x%x,Ivol:%dmA,Ivor:%dmA)(line:%d).\r\n",n_Vox_Fllow_Chg->Vpmid_Threshold_At_Present,g_pmu_Adc_Ivol,g_pmu_Adc_Ivor,(u16)__LINE__);
@@ -1134,11 +1186,11 @@ void Vox_Follow_Chg( g_Vox_Fllow_Chg_Cfg *n_Vox_Fllow_Chg )
n_Vox_Fllow_Chg->Vpmid_AddSta[VOR_CHAN] = ON;
Follow_Chg_Sta = Vox_Follow_Chg_Sta2;
-#ifdef _DEBUG_VOX
+#ifdef _DEBUG_FOLLOW
printf("Follow CHG Sta4,VOR Vpmid AddSta(Vout:0x%x,Ivor:%dmA)(line:%d).\r\n",n_Vox_Fllow_Chg->Vpmid_Threshold_At_Present,g_pmu_Adc_Ivor,(u16)__LINE__);
#endif
}
-#ifdef _DEBUG_VOX
+#ifdef _DEBUG_FOLLOW
else
{
printf("Follow CHG Sta4,VOR Ching(Vout:0x%x,Ivor:%dmA)(line:%d).\r\n",n_Vox_Fllow_Chg->Vpmid_Threshold_At_Present,g_pmu_Adc_Ivor,(u16)__LINE__);
@@ -1154,11 +1206,11 @@ void Vox_Follow_Chg( g_Vox_Fllow_Chg_Cfg *n_Vox_Fllow_Chg )
n_Vox_Fllow_Chg->Vpmid_AddSta[VOL_CHAN] = ON;
Follow_Chg_Sta = Vox_Follow_Chg_Sta2;
-#ifdef _DEBUG_VOX
+#ifdef _DEBUG_FOLLOW
printf("Follow CHG Sta4,VOL Vpmid AddSta(Vout:0x%x,Ivol:%dmA)(line:%d).\r\n",n_Vox_Fllow_Chg->Vpmid_Threshold_At_Present,g_pmu_Adc_Ivol,(u16)__LINE__);
#endif
}
-#ifdef _DEBUG_VOX
+#ifdef _DEBUG_FOLLOW
else
{
printf("Follow CHG Sta4,VOL Ching(Vout:0x%x,Ivol:%dmA)(line:%d).\r\n",n_Vox_Fllow_Chg->Vpmid_Threshold_At_Present,g_pmu_Adc_Ivol,(u16)__LINE__);
@@ -1184,7 +1236,7 @@ void Vox_Follow_Chg( g_Vox_Fllow_Chg_Cfg *n_Vox_Fllow_Chg )
if( ( n_Vox_Fllow_Chg->Vpmid_SubSta[VOR_CHAN] == ON ) && ( n_Vox_Fllow_Chg->Vpmid_SubSta[VOR_CHAN] == ON ) )
{
n_Vox_Fllow_Chg->Vpmid_SubSta_Flag = ON;
-#ifdef _DEBUG_VOX
+#ifdef _DEBUG_FOLLOW
printf("Follow CHG SubSta,VOL/VOR(line:%d).\r\n",(u16)__LINE__);
#endif
}
@@ -1194,7 +1246,7 @@ void Vox_Follow_Chg( g_Vox_Fllow_Chg_Cfg *n_Vox_Fllow_Chg )
if( n_Vox_Fllow_Chg->Vpmid_SubSta[VOR_CHAN] == ON )
{
n_Vox_Fllow_Chg->Vpmid_SubSta_Flag = ON;
-#ifdef _DEBUG_VOX
+#ifdef _DEBUG_FOLLOW
printf("Follow CHG SubSta,VOR(line:%d).\r\n",(u16)__LINE__);
#endif
}
@@ -1205,7 +1257,7 @@ void Vox_Follow_Chg( g_Vox_Fllow_Chg_Cfg *n_Vox_Fllow_Chg )
if( n_Vox_Fllow_Chg->Vpmid_SubSta[VOL_CHAN] == ON )
{
n_Vox_Fllow_Chg->Vpmid_SubSta_Flag = ON;
-#ifdef _DEBUG_VOX
+#ifdef _DEBUG_FOLLOW
printf("Follow CHG SubSta,VOL(line:%d).\r\n",(u16)__LINE__);
#endif
}
@@ -1236,7 +1288,7 @@ void Vox_Follow_Chg( g_Vox_Fllow_Chg_Cfg *n_Vox_Fllow_Chg )
Vox_Follow_Chg_Debounce = 0;
n_Vox_Fllow_Chg->Vpmid_SubSta_Flag = OFF;
-#ifdef _DEBUG_VOX
+#ifdef _DEBUG_FOLLOW
printf("Follow CHG SubSta,(STA:0x%x,Vpmid:0x%x)(line:%d)\r\n",(u16)Follow_Chg_Sta,(u16)n_Vox_Fllow_Chg->Vpmid_Threshold_At_Present,(u16)__LINE__);
#endif
Set_PMU_Boost_Vout( n_Vox_Fllow_Chg->Vpmid_Threshold_At_Present );
@@ -1265,7 +1317,7 @@ void Vox_Follow_Chg( g_Vox_Fllow_Chg_Cfg *n_Vox_Fllow_Chg )
Follow_Chg_Sta = Vox_Follow_Chg_Sta1;
}
-#ifdef _DEBUG_VOX
+#ifdef _DEBUG_FOLLOW
printf("Follow CHG AddSta,(STA:0x%x,Vpmid:0x%x)(line:%d)\r\n",(u16)Follow_Chg_Sta,(u16)n_Vox_Fllow_Chg->Vpmid_Threshold_At_Present,(u16)__LINE__);
#endif
Set_PMU_Boost_Vout(n_Vox_Fllow_Chg->Vpmid_Threshold_At_Present);
@@ -1343,14 +1395,6 @@ void Vox_Follow_Chg( g_Vox_Fllow_Chg_Cfg *n_Vox_Fllow_Chg )
*
*******************************************************************************
*/
-idata uint8_t Net_Info[2][8] = {0};
-
-idata uint8_t MAC_Addr[2][18] = {0};
-
-uint8_t EarPhone_Num = 0;
-
-#define MAX_PACKET_SIZE 0x20
-
void HandleTxCommand(VOX_BES_COMMAND_E TxCommand, e_Vox_Chan nVox_Chn_Select)
{
uint8_t dataLen = 0;
@@ -1388,14 +1432,14 @@ void HandleTxCommand(VOX_BES_COMMAND_E TxCommand, e_Vox_Chan nVox_Chn_Select)
case VHOUSE_CMD_EXCH_TWS_BTADDR:
/*Data Length*/
- tx_pData[3] = 0x1B;
+ tx_pData[3] = MAX_PACKET_SIZE;
for(i=5;i<18;i++)
{
tx_pData[i] = MAC_Addr[nVox_Chn_Select][i];
}
- for(i=23;i<8;i++)
+ for(i=23;i<13;i++)
{
tx_pData[i] = Net_Info[nVox_Chn_Select][i];
}
@@ -1467,6 +1511,7 @@ void HandleTxCommand(VOX_BES_COMMAND_E TxCommand, e_Vox_Chan nVox_Chn_Select)
tx_pData[dataLen] = Crc8Maxim(tx_pData,dataLen);
#if 0
+
/* vor、vol使用不同uart进行通讯 */
if(nVox_Chn_Select == VOL_CHAN)
{
@@ -1490,17 +1535,18 @@ void HandleTxCommand(VOX_BES_COMMAND_E TxCommand, e_Vox_Chan nVox_Chn_Select)
}
#else
+
/* vor、vol都使用uart0进行分时通讯。 */
VOX_EN_Type( VOX_COMM_Mode_Uart );
- if(nVox_Chn_Select == VOL_CHAN)
+ if(nVox_Chn_Select == VOR_CHAN)
{
SFRADDR = MFP_CTL0; //关闭VOR到UART0的开关,配置P02为GPIO,P03为UART0。
SFRDATA &=~ 0x0F;
SFRDATA |= 0x08;
}
else
- if(nVox_Chn_Select == VOR_CHAN)
+ if(nVox_Chn_Select == VOL_CHAN)
{
SFRADDR = MFP_CTL0; //关闭VOL到UART0的开关,配置P03为GPIO,P02为UART0。
SFRDATA &=~ 0x0F;
@@ -1508,12 +1554,25 @@ void HandleTxCommand(VOX_BES_COMMAND_E TxCommand, e_Vox_Chan nVox_Chn_Select)
}
#if UART0_ENABLE
- Uart0SendPacket(dataLen + 1, tx_pData);
+ Uart0SendPacket(dataLen + 2, tx_pData);
#endif
-// VOX_EN_Type( VOX_VOUT_Mode );
+ if(nVox_Chn_Select == VOR_CHAN)
+ {
+ SFRADDR = P0_IE; //Set P03 As Input.
+ SFRDATA &=~ 0x0C;
+ SFRDATA |= 0x08;
+ }
+ else
+ if(nVox_Chn_Select == VOL_CHAN)
+ {
+ SFRADDR = P0_IE; //Set P02 As Input.
+ SFRDATA &=~ 0x0C;
+ SFRDATA |= 0x04;
+ }
#endif
+
}
#endif
@@ -1621,18 +1680,19 @@ void HandleRxMsg(VOX_BES_COMMAND_E RxCommand)
void HandleVoxCommMsg(void)
{
uint8_t CrcCheckSum = 0;
- uint8_t i = 0;
/*RX数据处理*/
if( Uart0_RX_Finish_Flag )
{
Uart0_RX_Finish_Flag = 0;
+
+ printf("RX0_Buffer[0]:0x%x,RX0_Buffer[1]:0x%x,RX0_Buffer[2]:0x%x,RX0_Buffer[3]:0x%x,RX0_Buffer[4]:0x%x,RX0_Buffer[5]:0x%x,RX0_Buffer[6]:0x%x,RX0_Buffer[7]:0x%x,line:%d\r\n",(u16)RX0_Buffer[0],(u16)RX0_Buffer[1],(u16)RX0_Buffer[2],(u16)RX0_Buffer[3],(u16)RX0_Buffer[4],(u16)RX0_Buffer[5],(u16)RX0_Buffer[6],(u16)RX0_Buffer[7],(u16)__LINE__);
CrcCheckSum = Crc8Maxim(RX0_Buffer, RX0_Buffer[2] + 3); //求校验和
if( CrcCheckSum == RX0_Buffer[RX0_Buffer[2] + 3] )
{
- HandleRxMsg((VOX_BES_COMMAND_E)RX0_Buffer[3]);
+ HandleRxMsg( (VOX_BES_COMMAND_E)RX0_Buffer[3] );
}
else
{
diff --git a/sy8835_demo.si4project/sy8835_demo.SearchResults b/sy8835_demo.si4project/sy8835_demo.SearchResults
index a58fcc6..69d2c07 100644
--- a/sy8835_demo.si4project/sy8835_demo.SearchResults
+++ b/sy8835_demo.si4project/sy8835_demo.SearchResults
@@ -1,3 +1,10 @@
----- I2C_Ack Matches (2 in 2 files) ----
-i2c_simu.c (UsrSrc\i2c_simu) line 135 : void I2C_Ack(void)
-i2c_simu.h (UsrInc\i2c_simu) line 85 : void I2C_Ack(void);
+---- Boost_Open_Flag Matches (9 in 3 files) ----
+Hall_Handler in hall.c (UsrSrc\hall) : Boost_Open_Flag = 0;
+vox_module.c (UsrSrc\vox) line 35 : bit Boost_Open_Flag = 0;
+Vox_Det_Machine in vox_module.c (UsrSrc\vox) : if( !Boost_Open_Flag )
+Vox_Det_Machine in vox_module.c (UsrSrc\vox) : Boost_Open_Flag = 1;
+Vox_Det_Machine in vox_module.c (UsrSrc\vox) : Boost_Open_Flag = 0;
+Vox_Det_Machine in vox_module.c (UsrSrc\vox) : if( !Boost_Open_Flag )
+Vox_Det_Machine in vox_module.c (UsrSrc\vox) : Boost_Open_Flag = 1;
+Vox_Det_Machine in vox_module.c (UsrSrc\vox) : Boost_Open_Flag = 0;
+vox_module.h (UsrInc\vox) line 224 : extern bit Boost_Open_Flag;
diff --git a/sy8835_demo.si4project/sy8835_demo.sip_sym b/sy8835_demo.si4project/sy8835_demo.sip_sym
index 7f35d99..e0be1ba 100644
Binary files a/sy8835_demo.si4project/sy8835_demo.sip_sym and b/sy8835_demo.si4project/sy8835_demo.sip_sym differ
diff --git a/sy8835_demo.si4project/sy8835_demo.siwork b/sy8835_demo.si4project/sy8835_demo.siwork
index 8057732..953984a 100644
Binary files a/sy8835_demo.si4project/sy8835_demo.siwork and b/sy8835_demo.si4project/sy8835_demo.siwork differ