diff --git a/app/firmwares/dalgona.hex b/app/firmwares/dalgona.hex index f665221cf..991b2cfcd 100644 --- a/app/firmwares/dalgona.hex +++ b/app/firmwares/dalgona.hex @@ -1,21 +1,21 @@ -:100000000C9464000C948C000C948C000C941E0FC7 -:100010000C941E0F0C941E0F0C948C000C946A0E02 -:100020000C948C000C948C000C948C000C94B510E7 +:100000000C9464000C948C000C948C000C9486115D +:100010000C9486110C9486110C948C000C9488100E +:100020000C948C000C948C000C948C000C941D137C :100030000C948C000C948C000C948C000C948C0010 -:100040000C94200E0C948C000C94EC0E0C94C60EA8 +:100040000C943C110C948C000C940A110C94E41048 :100050000C948C000C948C000C948C000C948C00F0 -:100060000C94960F0C948C000200000000240027D2 -:10007000002A00000000080002010000030407003D -:1000800000000000000000000000002300260029FE +:100060000C94FE110C948C0000000000240027006A +:100070002A0000000008000201000003040700003D +:1000800000000000000002000000002300260029FC :100090000000000000250028002B000404040404D4 :1000A0000404040202020202020303030303030125 :1000B00002040810204080010204081020010204FC -:1000C00008102000B6111A1E11241FBECFEFD8E071 -:1000D000DEBFCDBF11E0A0E0B1E0ECE6F6E402C087 +:1000C000081020001E14B01E11241FBECFEFD8E070 +:1000D000DEBFCDBF11E0A0E0B1E0E2EBF7E402C08B :1000E00005900D92A63CB107D9F724E0A6ECB1E04B :1000F00001C01D92A939B207E1F710E0C3E6D0E0D4 -:1001000004C02197FE010E942321C236D107C9F7FE -:100110000E94E4120C9429230C9400000895089581 +:1001000004C02197FE010E94CD21C236D107C9F754 +:100110000E944C150C94CC230C9400000895089573 :10012000E0916604F09167048E179F0798F530916F :100130006C04332361F0639FB0011124672F349F57 :10014000A0011124452F329F90011124232F3091BB @@ -24,1118 +24,1139 @@ :10017000E0916F04E80FF92FF11D6083E0917004A6 :10018000E80FF92FF11D408330917104830F911D09 :10019000FC0120830895880F991F880F991F8E0FE7 -:1001A0009F1FFC01E30FF11D1082E2CF833081F02D -:1001B00028F4813099F08230A9F008958730A9F0B1 -:1001C0008830C9F08430B1F4809180008F7D03C005 -:1001D000809180008F7780938000089584B58F7719 -:1001E00084BD089584B58F7DFBCF8091B0008F775B -:1001F0008093B00008958091B0008F7DF9CFCF93A8 -:10020000DF93282F30E0F901ED58FF4F8491F90179 -:10021000E155FF4FD491F901E556FF4FC491CC232E -:10022000A1F081110E94D600EC2FF0E0EE0FFF1F2D -:10023000E957FF4FA591B491EC91ED2381E090E057 -:1002400009F480E0DF91CF91089580E090E0FACF4B -:100250001F93CF93DF93282F30E0F901ED58FF4F24 -:100260008491F901E155FF4FD491F901E556FF4F13 -:10027000C491CC23A9F0162F81110E94D600EC2F37 -:10028000F0E0EE0FFF1FEF56FF4FA591B4918FB72F -:10029000F894EC91111108C0D095DE23DC938FBF48 -:1002A000DF91CF911F910895DE2BF8CFCF93DF938D -:1002B00090E0FC01E155FF4F249185569F4FFC01D2 -:1002C00084918823C9F090E0880F991FFC01E759B9 -:1002D000FF4FA591B491FC01EF56FF4FC591D4910A -:1002E00061110DC09FB7F8948C91209582238C9357 -:1002F0008881282328839FBFDF91CF9108956230A2 -:1003000051F49FB7F8943C91822F809583238C936E -:10031000E8812E2BEFCF8FB7F894EC912E2B2C93F6 -:100320008FBFEACF80916A0490916B0497FD08C05B -:1003300061E00E94560160E080916A040E942801F9 -:1003400081E08093650408951F93CF93DF93182F66 -:10035000EB0161E00E945601209739F460E0812FA3 -:10036000DF91CF911F910C942801CF3FD10511F45B -:1003700061E0F5CFE12FF0E0ED58FF4FE491E3307D -:1003800031F140F4E130B1F0E230E1F0C038D105B4 -:100390007CF7E4CFE73029F1E83059F1E430B1F7E8 -:1003A00080918000806280938000D0938B00C09306 -:1003B0008A0004C084B5806884BDC7BDDF91CF9139 -:1003C0001F91089584B5806284BDC8BDF7CF809128 -:1003D0008000806880938000D0938900C09388005B -:1003E000EDCF8091B00080688093B000C093B300DF -:1003F000E5CF8091B00080628093B000C093B400DC -:10040000DDCF3FB7F8948091550390915603A091AA -:100410005703B091580326B5A89B05C02F3F19F08C -:100420000196A11DB11D3FBFBA2FA92F982F882774 -:10043000BC01CD01620F711D811D911D42E0660F4F -:10044000771F881F991F4A95D1F708950F931F931F -:10045000CF93DF93CDB7DEB729970FB6F894DEBF01 -:100460000FBECDBF80916D0490916E04892B09F46D -:100470007CC00E94010200917304109174042091C9 -:10048000750430917604601771078207930740F472 -:10049000609373047093740480937504909376044E -:1004A00000917304109174042091750430917604C6 -:1004B000601B710B820B930B6C32714081059105AF -:1004C000C0F2F89480916804909169049A838983BA -:1004D000E0916D04F0916E04DF01119680818987AF -:1004E00090916404E0917704F0917804809179040C -:1004F000992309F445C09081982B98879081809525 -:1005000089238F838F818C8388E08B8358856F81CB -:1005100049853B812C8189819A81508347FD252F14 -:100520003A952083262F39F0441F00C000006083D5 -:10053000000000C0F2CF38E04D91608300000197C9 -:1005400061F7F0937804E093770449873B832C8329 -:100550009A83898378940E94010260937304709354 -:100560007404809375049093760429960FB6F894DA -:10057000DEBF0FBECDBFDF91CF911F910F910895C8 -:100580009081982B98879081809589238F838F8184 -:100590008E8388E08D8358856F8149853D812E81CA -:1005A00089819A81508347FD252F00C000C0208398 -:1005B00000C000C000C000C000C060830000262F43 -:1005C0003A9541F0441F000000C000C000C000C0C8 -:1005D00000C0E8CF38E04D9100C0608300C00197B3 -:1005E00009F7F0937804E093770449873D832E83DD -:1005F000AFCF8F929F92AF92BF92CF92DF92EF9246 -:10060000FF926B017C010E9401024B015C01C1144D -:10061000D104E104F104B9F00E94010268197909DA -:100620008A099B09683E73408105910580F321E0AA -:10063000C21AD108E108F10888EE880E83E0981EFE -:10064000A11CB11CE4CFFF90EF90DF90CF90BF9042 -:10065000AF909F908F9008959091000189130BC0E7 -:10066000E8E6F0E0E4919FEF90930001E13049F07B -:1006700028F0E23061F060E00C94280110926E00E6 -:10068000FACF90916F009D7F90936F00F4CF90917F -:1006900070009D7F9093700091E09093B0009091D6 -:1006A000B100987F94609093B1001092B300E3CFB3 -:1006B000AF92BF92CF92DF92EF92FF920F931F9370 -:1006C000CF93DF936C017B018B01040F151FEB01AE -:1006D0005E01AE18BF08C017D10759F06991D60165 -:1006E000ED91FC910190F081E02DC6010995892BD7 -:1006F00079F7C501DF91CF911F910F91FF90EF9096 -:10070000DF90CF90BF90AF900895FC01538D448D42 -:10071000252F30E0842F90E0821B930B541710F0AC -:10072000CF96089501970895FC01918D828D9817B9 -:1007300061F0A28DAE0FBF2FB11D5D968C91928D91 -:100740009F5F9F73928F90E008958FEF9FEF0895C2 -:10075000FC01918D828D981731F0828DE80FF11D8B -:10076000858D90E008958FEF9FEF0895FC01918DA6 -:10077000228D892F90E0805C9F4F821B91098F739F -:100780009927089585E693E00E94B60321E0892B1E -:1007900009F420E0822F089580E090E0892B29F071 -:1007A0000E94C20381110C9400000895FC01A48DE5 -:1007B000A80FB92FB11DA35ABF4F2C91848D90E083 -:1007C00001968F739927848FA689B7892C93A08966 -:1007D000B1898C91837080648C93938D848D9813F0 -:1007E00006C00288F389E02D80818F7D8083089583 -:1007F000EF92FF920F931F93CF93DF93EC0181E071 -:10080000888F9B8D8C8D98131AC0E889F989808117 -:1008100085FF15C09FB7F894EE89FF896083E8894A -:10082000F98980818370806480839FBF81E090E03C -:10083000DF91CF911F910F91FF90EF900895F62EC9 -:100840000B8D10E00F5F1F4F0F731127E02E8C8D63 -:100850008E110CC00FB607FCFACFE889F9898081A8 -:1008600085FFF5CFCE010E94D603F1CFEB8DEC0FC3 -:10087000FD2FF11DE35AFF4FF0829FB7F8940B8FC5 -:10088000EA89FB8980818062CFCFCF93DF93EC012F -:10089000888D8823B9F0AA89BB89E889F9898C9168 -:1008A00085FD03C0808186FD0DC00FB607FCF7CF24 -:1008B0008C9185FFF2CF808185FFEDCFCE010E9424 -:1008C000D603E9CFDF91CF91089520915B0330915A -:1008D0005C032817390771F49091590380915A03EA -:1008E000981741F0E0915903F0E0E657FD4F808101 -:1008F00090E008958FEF9FEF08950895EF92FF9293 -:100900000F931F93CF93DF93DC015C96ED90FC90E7 -:100910005D97E114F10479F481E090E013969C93E3 -:100920008E93129790E080E0DF91CF911F910F910D -:10093000FF90EF9008955196ED91FC91529750964B -:100940008C915097982F90950FB75E962C915E974B -:10095000122F127021FD6095F8942081112319F156 -:10096000282B2083E7012197F1F728E0462F50E05C -:10097000308160FF1AC0382B3083E7012197F1F7EF -:10098000BA0175956795215089F7112381F080810F -:10099000892380830FBF5C968D919C910197F1F71D -:1009A00081E090E0C1CF2923DCCF3923E5CF9081CE -:1009B000892BEFCF20915B0330915C032817390717 -:1009C00061F480915A032091590390E0805C9F4F1D -:1009D000821B91098F739927089590E080E0089514 -:1009E00020915B0330915C0328173907B9F490918B -:1009F000590380915A03981789F0E0915903F0E068 -:100A0000E657FD4F80812091590330E02F5F3F4F23 -:100A10002F7333272093590390E008958FEF9FEFB2 -:100A20000895E0915B03F0915C03E817F90769F41E -:100A3000A389B4899C918589809589238C93109290 -:100A40005C0310925B0381E0089580E008951092AA -:100A500054041092530410925204109251041092B4 -:100A6000500410924F048DE991E0909356048093C6 -:100A7000550490914504963108F046C02DEB30E0C6 -:100A80003093500420934F042BE931E0309352040B -:100A9000209351042CE231E030935404209353040A -:100AA0002091680084E0983048F031E09E3008F4EE -:100AB00030E081E001C0880F3A95EAF7822B8093FD -:100AC00068002DE630E0983050F02BE630E09E30A4 -:100AD00030F02CE630E0963110F030E020E030933A -:100AE0004D0420934C04292F30E09830C0F581E06C -:100AF00001C0880F9A95EAF780934E0480915504BF -:100B0000909156040197F1F7809153049091540409 -:100B1000892B21F180915B0390915C0324E0893360 -:100B20009207E1F0009711F00E941105809157049F -:100B30008E7F8093570410925A031092590389E3D1 -:100B400094E090935C0380935B03E0914C04F091FC -:100B50004D04808190914E04892B808308959E30AE -:100B600040F42850310981E001C0880F2A95EAF746 -:100B7000C3CF2E503109F7CF20914002260F3327E3 -:100B8000331F21323105ECF420916402FC0190E026 -:100B900080E0243069F082E00895A0914002219124 -:100BA000AC01405E5D4FA40FB52FB11D2C93019693 -:100BB000861798F380914002680F6093400280E0AE -:100BC000089581E008951092640281E080936602A6 -:100BD0001092650261E082E10E94280161E083E1F8 -:100BE0000E942801E9EBF0E080818E7F8083808184 -:100BF0008D7F808388E48093B80085E48093BC0077 -:100C00000895CF93DF9391E090931F028823B9F06A -:100C1000C091B800D091BA008091BC008A7B8093CB -:100C2000BC0060E082E10E94280160E083E10E9454 -:100C300028010E94E305D093BA00C093B800DF9169 -:100C4000CF910895E091640380916303E81730F435 -:100C5000F0E0E650FE4F808190E008958FEF9FEF27 -:100C6000089590916403809163032FEF3FEF9817ED -:100C700048F4E92FF0E0E650FE4F208130E09F5F1E -:100C800090936403C9010895809163039091640374 -:100C9000891B990B0895CF92DF92EF92FF920F93E9 -:100CA0001F93CF93DF937C01CB018A012091F9013F -:100CB000222389F0EB016B01C40ED51ECC15DD0596 -:100CC00069F06991D701ED91FC910190F081E02DDF -:100CD000C7010995F3CF642F0E94BC05C801DF91BD -:100CE000CF911F910F91FF90EF90DF90CF900895DB -:100CF000CF93DF931F92CDB7DEB769832091F901BF -:100D00002223F9F020916103203258F021E030E0F5 -:100D1000FC013383228390E080E00F90DF91CF913C -:100D2000089580916203E82FF0E0E752FE4F998129 -:100D300090838F5F809362038093610381E090E0F2 -:100D4000ECCF61E0CE0101960E94BC05F7CFCF92B7 -:100D5000DF92EF92FF920F931F93CF93DF93FC01EB -:100D6000C48121E02093F901C093D801109262035D -:100D7000109261038385682B82E094E00E947806DC -:100D8000D0916103D13208F092C00E9401026B0140 -:100D90007C0180916402811165C082E080936402CD -:100DA00081E0809366028FEF809363021092880245 -:100DB000D0938702A9EDB1E0E7E6F2E080E0D81336 -:100DC00085C01092890280918902CC0FC82BC093F4 -:100DD000890280916502813009F07CC01092650221 -:100DE0000E9401026B017C01809189028093BB000B -:100DF00080911B0290911C02A0911D02B0911E02D5 -:100E0000892B8A2B8B2B99F00E94010200911B02E7 -:100E100010911C0220911D0230911E026C197D0957 -:100E20008E099F090617170728073907E0F18091F7 -:100E3000BC0083FDD9CF85EC8093BC000E940102E9 -:100E40006B017C0180916402823009F445C080917D -:100E500063028F3F61F180916302803241F18091A2 -:100E6000630225C080911B0290911C02A0911D027B -:100E7000B0911E02892B8A2B8B2B09F48ACF0E94FA -:100E8000010200911B0210911C0220911D02309161 -:100E90001E026C197D098E099F090617170728077E -:100EA000390708F076CF80911A020E94010610924D -:100EB0006203109261031092F901DF91CF911F91AB -:100EC0000F91FF90EF90DF90CF9008959D919193B7 -:100ED0008F5F75CF85EEB0CF80911B0290911C0281 -:100EE000A0911D02B0911E02892B8A2B8B2B09F435 -:100EF000A9CF0E94010200911B0210911C022091B7 -:100F00001D0230911E026C197D098E099F0906177A -:100F100017072807390708F095CFC5CF089590E047 -:100F200080E00895FC01EE0FFF1FEC5CFC4F208178 -:100F30003181232B39F421E030E03183208361E0DB -:100F40000C94560108958F929F92AF92BF92CF92C8 -:100F5000DF92EF92FF920F931F93CF93DF93CDB762 -:100F6000DEB76B970FB6F894DEBF0FBECDBF8C0116 -:100F7000F894CE0101967C0188E1D7011D928A95F3 -:100F8000E9F7C8010E9492078091F802898F809149 -:100F9000F6028A8F8091FA028B8FFE017996C70143 -:100FA0005E01BCE1AB0EB11CA701A1918A2E912C70 -:100FB00027E030E06A01C20ED31EB401022E02C047 -:100FC000759567950A94E2F76170D6016C9321508C -:100FD000310980F7485F5F4FEA15FB0531F798014B -:100FE000225031092630310508F0EDC003301105DB -:100FF00009F052C05B9825E50F920F900F920F9069 -:101000000F920F902150C1F7E8E1EE0EF11C27E09E -:1010100030E0FC01E20FF31F4081413009F07BC05A -:101020000330110509F04DC05B9A4AE10F920F9011 -:101030000F920F900F920F904150C1F7033011059E -:1010400009F054C05B9849E10F920F900F920F90F6 -:101050000F920F904150C1F721503109D0F60896F8 -:10106000E816F906A1F60330110509F097C05B9A5E -:1010700078946B960FB6F894DEBF0FBECDBFDF91AC -:10108000CF911F910F91FF90EF90DF90CF90BF9085 -:10109000AF909F908F9008950430110511F45C98E3 -:1010A000AACF0530110511F45D98A5CF06301105C2 -:1010B00011F45E98A0CF0730110509F09CCF5F981E -:1010C0009ACF0430110511F45C9AAFCF05301105A9 -:1010D00011F45D9AAACF0630110511F45E9AA5CFDE -:1010E0000730110509F0A1CF5F9A9FCF0430110599 -:1010F00011F45C98A8CF0530110511F45D98A3CFC9 -:101100000630110511F45E989ECF0730110509F0E5 -:101110009ACF5F9898CF03301105C1F45B9A4FE0E6 -:101120000F920F900F920F900F920F904150C1F7B6 -:1011300003301105F9F45B984EE00F920F900F9277 -:101140000F900F920F904150C1F786CF04301105D8 -:1011500011F45C9AE4CF0530110511F45D9ADFCFEC -:101160000630110511F45E9ADACF07301105B9F691 -:101170005F9AD5CF0430110511F45C98DDCF0530AE -:10118000110511F45D98D8CF0630110511F45E9861 -:10119000D3CF0730110581F65F98CECF043011050B -:1011A00011F45C9A65CF0530110511F45D9A60CF9A -:1011B0000630110511F45E9A5BCF0730110509F076 -:1011C00057CF5F9A55CF9801285031092630310505 -:1011D00008F04ECF0830110509F03FC0289825E5EA -:1011E0000F920F900F920F900F920F902150C1F716 -:1011F00028E1E20EF11C27E030E0FC01E20FF31FD2 -:101200004081413009F06BC00830110509F03BC046 -:10121000289A4AE10F920F900F920F900F920F9021 -:101220004150C1F70830110509F043C0289849E141 -:101230000F920F900F920F900F920F904150C1F7A5 -:1012400021503109D0F60896E816F906A1F60830C3 -:10125000110509F08BC0289A0BCF0930110511F444 -:101260002998BDCF0A30110511F42A98B8CF0B3058 -:10127000110511F42B98B3CF0C30110511F42C98F3 -:10128000AECF2D98ACCF0930110511F4299AC1CFFA -:101290000A30110511F42A9ABCCF0B30110511F454 -:1012A0002B9AB7CF0C30110511F42C9AB2CF2D9A8E -:1012B000B0CF0930110511F42998B9CF0A301105C2 -:1012C00011F42A98B4CF0B30110511F42B98AFCF3D -:1012D0000C30110511F42C98AACF2D98A8CF083006 -:1012E0001105C1F4289A4FE00F920F900F920F90C2 -:1012F0000F920F904150C1F70830110509F5289859 -:101300004EE00F920F900F920F900F920F9041505E -:10131000C1F796CF0930110511F4299AE4CF0A30AC -:10132000110511F42A9ADFCF0B30110511F42B9A15 -:10133000DACF0C30110511F42C9AD5CF2D9AD3CFDA -:101340000930110511F42998DBCF0A30110511F489 -:101350002A98D6CF0B30110511F42B98D1CF0C3031 -:10136000110511F42C98CCCF2D98CACF0930110556 -:1013700011F4299A7DCE0A30110511F42A9A78CEFB -:101380000B30110511F42B9A73CE0C30110511F4AA -:101390002C9A6ECE2D9A6CCE682F85E693E00C9435 -:1013A000F8030F931F93CF93DF938B01D82FC92F8F -:1013B00082E00E94CC09C801AD2FBC2F8093D301DD -:1013C0009093D401A093D501B093D6010E94CC098B -:1013D000812F0E94CC098D2F0E94CC098C2FDF9188 -:1013E000CF911F910F910C94CC098FEF0E94CC09E3 -:1013F00085E50C94CC094F925F926F927F928F9209 -:101400009F92AF92BF92CF92DF92EF92FF920F9393 -:101410001F93CF93DF9300D0CDB7DEB78C01498304 -:101420002A83660F771FF801EA5AFF4FE080F180A8 -:10143000EE0CFF1CF801CF01801B910B8E159F0550 -:1014400014F41192F8CF8981F801E60FF71F818318 -:101450008A818083680184E5C80ED11C60E0F601B2 -:1014600080810E9428015801F2E5AF0EB11C4801AD -:1014700080E5880E911C1E141F040CF5E1E0EE1AA5 -:10148000F108F801EE0DFF1D6080F5015080F401B8 -:10149000408088E0782E662D661F6627661F842DA3 -:1014A0000E942801660C61E0852D0E94280160E001 -:1014B000852D0E9428017A947110EDCFDCCF61E078 -:1014C000F60180810F900F90DF91CF911F910F91C6 -:1014D000FF90EF90DF90CF90BF90AF909F908F9054 -:1014E0007F906F905F904F900C942801242FFC0107 -:1014F000EA5AFF4F40815181141615066CF468308A -:10150000710551F0FC01E60FF71F208B41E0460FFB -:1015100070E060E00C94FB090895CF92DF92EF92A7 -:10152000FF921F93CF93DF937C016B01EB0183E06C -:10153000CC0FDD1F8A95E1F76096CE0DDF1D11E01F -:10154000199220E0412FB601C7010E94FB091F5FDD -:101550001930B1F7DF91CF911F91FF90EF90DF909D -:10156000CF9008958F929F92AF92BF92CF92DF92C9 -:10157000EF92FF920F931F93CF93DF938C01D62EA0 -:10158000C72EEC01C05BDF4F688379834C0182E595 -:10159000880E911CF401518340835801F4E5AF0E8D -:1015A000B11CF501318320837801F6E5EF0EF11CC3 -:1015B00081E090E0F7019183808361E08D2D0E94AE -:1015C000560161E0F40180810E94560161E0F5015D -:1015D00080810E94560161E0F50180810E9428010E -:1015E000D882C982F80170961192EC17FD07E1F7D5 -:1015F000D0E0C0E0F70180819181C817D90784F558 -:1016000020E04FE0BE01C8010E94FB09F701808184 -:101610009181C817D90734F427E04BE0BE01C80117 -:101620000E94FB0920E049E0BE01C8010E94FB09BD -:10163000F70180819181C817D90724F4BE01C80140 -:101640000E948D0AF70180819181C817D90734F46F -:1016500020E04CE0BE01C8010E94FB092196CACFE0 -:10166000DF91CF911F910F91FF90EF90DF90CF907E -:10167000BF90AF909F908F9008950F931F93CF933B -:101680008C01C62F0E94A7066C2F6460C8010E94BF -:10169000A7066C2F6B7FC8010E94A70683EC90E021 -:1016A0000197F1F7CF911F910F9108950F931F9319 -:1016B000CF93DF938C01D62FC42F607F642B0E94C1 -:1016C0003D0B80E1D89FB00111246C2BC801DF9144 -:1016D000CF911F910F910C943D0B40E061E088E5A4 -:1016E00094E00E94560B8BE39FE10197F1F7089578 -:1016F000CF93DF93109264031092630310926203FE -:10170000109261030E94E3058EE890E090936003DD -:1017100080935F038FE890E090935E0380935D0376 -:1017200010925D0480916204823018F098E09093EA -:101730005D048093600462E370E080E090E00E94CA -:10174000F9026091630488E594E00E94A70668EEC0 -:1017500073E080E090E00E94F90260E388E594E0A5 -:101760000E943D0BCBE4D6E4CE010197F1F760E394 -:1017700088E594E00E943D0B2197F1F760E388E54E -:1017800094E00E943D0B83E592E00197F1F760E25F -:1017900088E594E00E943D0B60915D04606240E04A -:1017A00088E594E00E94560B84E080935E0440E05C -:1017B0006CE088E594E00E94560B0E946D0B82E07D -:1017C00080935F0440E066E088E594E00E94560B59 -:1017D00040E062E088E594E00E94560B8BE39FE1D5 -:1017E0000197F1F7DF91CF9108950E94780B88E07F -:1017F0008093630460E088E594E00E94A7060C945F -:101800006D0B41E00E94560B81E090E0089542E0AC -:1018100050E063EC71E085E693E00C9458038FEFA1 -:101820000E94CC0985E50E94CC090C94070C8F928C -:101830009F92AF92BF92CF92DF92EF92FF920F935F -:101840001F93CF93DF93C091ED02D091EE02CE01B2 -:101850009927FC01E155FF4F1491FC01E556FF4F1C -:10186000E491F0E0EE0FFF1FE957FF4FE590F49091 -:101870001092CE011092CF011092D0011092D1019E -:101880001092D20161E08C2F0E94560160E08C2FF3 -:101890000E94280162E170E080E090E00E94F9027D -:1018A00061E08C2F0E9428018BE990E00197F1F70D -:1018B00060E08C2F0E94560180E991E0F7012081C1 -:1018C0002123B9F40197D1F780E090ECA9E7B4ECBB -:1018D0008093C6019093C701A093C801B093C9013A -:1018E0008093CA019093CB01A093CC01B093CD011A -:1018F00062C080E991E0F7012081212319F001976E -:10190000D1F7E2CF88E2D82E00E8C12C80E991E03F -:10191000F7012081212319F40197D1F7D5CF0E9437 -:1019200001024B015C0180E991E0F7012081212354 -:1019300019F00197D1F7C8CF0E94010268197909FF -:101940008A099B09693271058105910538F0EC2DF2 -:10195000F0E0EA53FE4F8085802B8087069511F4D6 -:10196000C39400E8DA94D110D1CF61E08C2F0E94AB -:10197000560161E08C2F0E9428016091CE0170E039 -:1019800090E080E00E943D1E6093C6017093C70105 -:101990008093C8019093C9016091D00170E090E0FC -:1019A00080E00E943D1E6093CA017093CB0180933A -:1019B000CC019093CD018090CA019090CB01A09072 -:1019C000CC01B090CD01C090C601D090C701E0908D -:1019D000C801F090C90162E370E080E090E00E94ED -:1019E000F90280913003882359F00E94F509C5015E -:1019F000B4010E94D10983E10E94CC090E94070C26 -:101A0000809131038823B9F00E94F509C701B6011E -:101A10000E94D10982E10E94CC09DF91CF911F91F0 -:101A20000F91FF90EF90DF90CF90BF90AF909F907D -:101A30008F900C94070CDF91CF911F910F91FF9025 -:101A4000EF90DF90CF90BF90AF909F908F900895D0 -:101A5000CF92DF92EF92FF920F931F93CF93DF937A -:101A6000EC016B01F42EE52E198218861F86188A68 -:101A7000198A1A8A81E08E878B871C8692E09D875F -:101A800088838B01000F111F060F171F1D830C8306 -:101A9000C8010E9430219A878987009789F1A8019F -:101AA00070E060E00E941B23DB82CA82FE82EF822C -:101AB0008981882341F061E08F2D0E94560160E00A -:101AC0008F2D0E9428018F2D9E2DFC01E556FF4F82 -:101AD000E491F0E0EE0FFF1FEF56FF4F2591349198 -:101AE0003C8B2B8BFC01E155FF4FE491ED8BDF919B -:101AF000CF911F910F91FF90EF90DF90CF900895BD -:101B00001D821C821B821A82D1CFFC0180819181AF -:101B1000009711F00C94CC2108950F931F93CF934D -:101B2000DF93EC0188819981009759F02A813B81EC -:101B30002617370730F081E0DF91CF911F910F9189 -:101B400008958B016F5F7F4F0E945522009759F0D7 -:101B5000998388831B830A832C813D81232B59F72A -:101B6000FC011082E8CF80E0E7CFEF92FF920F9365 -:101B70001F93CF93DF93EC017B018A01BA010E948E -:101B80008D0D28813981811114C02115310519F07D -:101B9000C9010E94CC21198218821D821C821B82DD -:101BA0001A82CE01DF91CF911F910F91FF90EF909C -:101BB00008951D830C83B701C9010E942223F1CF30 -:101BC00050E040E065EC71E083E394E00C94B50DE7 -:101BD00085ED8093BC0080911B0290911C02A09126 -:101BE0001D02B0911E020796A11DB11D23E0B695FE -:101BF000A795979587952A95D1F72091BC0024FD4C -:101C000003C010926402089540911B0250911C027F -:101C100060911D0270911E02452B462B472B69F3E4 -:101C20000097A105B10541F02AE22A95F1F700C01D -:101C30000197A109B109E1CF80911A020C94010624 -:101C40001F920F920FB60F9211242F933F938F93F1 -:101C50009F93AF93BF938091510390915203A091B2 -:101C60005303B09154033091500323E0230F2D37D9 -:101C700058F50196A11DB11D209350038093510387 -:101C800090935203A0935303B09354038091550350 -:101C900090915603A0915703B09158030196A11D4E -:101CA000B11D8093550390935603A0935703B093AF -:101CB0005803BF91AF919F918F913F912F910F90BA -:101CC0000FBE0F901F90189526E8230F0296A11DB6 -:101CD000B11DD2CF1F920F920FB60F9211242F93E6 -:101CE0003F934F935F936F937F938F939F93AF93A4 -:101CF000BF93EF93FF938091D1029091D202A09174 -:101D0000D302B091D402892B8A2B8B2BD1F19091E5 -:101D1000CC02E091CD02F091CE02808189278083B0 -:101D20008091D1029091D202A091D302B091D402BD -:101D3000181619061A061B069CF48091D102909180 -:101D4000D202A091D302B091D4020197A109B109A6 -:101D50008093D1029093D202A093D302B093D40285 -:101D6000FF91EF91BF91AF919F918F917F916F9173 -:101D70005F914F913F912F910F900FBE0F901F9049 -:101D80001895809100010E942C03EACF1F920F92B8 -:101D90000FB60F9211242F933F934F935F936F933E -:101DA0007F938F939F93AF93BF93EF93FF9385E6BA -:101DB00093E00E94D603FF91EF91BF91AF919F9165 -:101DC0008F917F916F915F914F913F912F910F90E4 -:101DD0000FBE0F901F9018951F920F920FB60F9283 -:101DE00011242F938F939F93EF93FF93E0917503AB -:101DF000F09176038081E0917B03F0917C0382FD7A -:101E00001BC0908180917E038F5F8F7320917F0331 -:101E1000821741F0E0917E03F0E0EB59FC4F958F83 -:101E200080937E03FF91EF919F918F912F910F905F -:101E30000FBE0F901F9018958081F4CF1F920F92C4 -:101E40000FB60F9211242F933F934F935F936F938D -:101E50007F938F939F93AF93BF93EF93FF93E09103 -:101E60005B03F0915C03309749F0A685B7858585C3 -:101E7000968D91FF14C09C918923A1F4FF91EF915D -:101E8000BF91AF919F918F917F916F915F914F9192 -:101E90003F912F910F900FBE0F901F9018959C911E -:101EA000892361F7A389B4899C91858980958923C9 -:101EB0008C93868997890197F1F7608D718DA6853E -:101EC000B785558538E020E0CB010197F1F7822FE7 -:101ED00090E095958795282F4C91452309F020682F -:101EE000315091F7868D81FD209580915A0390E0C5 -:101EF00001968F73992730915903381799F0A09163 -:101F00005A03B0E0A657BD4F2C9380935A03828D9D -:101F1000938D0197F1F7A389B4898C919589892BC9 -:101F20008C93ACCF868D8160868FF1CF1F920F92FC -:101F30000FB60F9211242F933F934F935F936F939C -:101F40007F938F939F93AF93BF93EF93FF93809172 -:101F5000B900887F803609F44AC0F0F5883209F468 -:101F6000A7C018F5803109F49BC0B8F4882309F4A0 -:101F7000F9C0883009F494C0FF91EF91BF91AF91FF -:101F80009F918F917F916F915F914F913F912F9191 -:101F90000F900FBE0F901F901895883109F488C0DC -:101FA000803251F78093630214C0803409F49DC0DD -:101FB00040F48033B9F38833F9F68093630285ECFB -:101FC000B0C0803509F485C0883509F496C08834DE -:101FD00099F60E94E80DD0CF883909F48CC038F505 -:101FE000883729F050F4883611F0803729F683E0DD -:101FF000809364021092620257C0883809F47BC053 -:10200000803919F0803809F0B7CF809162028032B0 -:1020100008F071C0E091620281E08E0F809362024D -:102020008091BB00F0E0EE5BFD4F80833DC0803BC4 -:1020300039F0E0F4803A09F479C0883A09F09CCF8D -:1020400084E0809364021092410210924002E09179 -:102050005F03F091600309958091400281110FC0E8 -:1020600081E0809340021092200209C0803C09F474 -:10207000A6CF883C09F4A3CF883B09F07DCFE0913F -:10208000410281E08E0F80934102F0E0E05EFD4F5F -:1020900080818093BB00909141028091400229C0D1 -:1020A000809189028093BB0085EC8093BC0064CF53 -:1020B0009091880280918702981758F5E0918802E4 -:1020C00081E08E0F80938802F0E0E959FD4F808116 -:1020D000E9CFE091880281E08E0F809388028091A1 -:1020E000BB00F0E0E959FD4F808390918802809118 -:1020F00087029817C8F285E8D8CFE091880281E07E -:102100008E0F809388028091BB00F0E0E959FD4F6B -:1021100080838091660281115CCF81E080936502AB -:1021200084EA8093BC001092640226CF85EC8093F1 -:10213000BC001092640280916202803230F4E0911F -:102140006202F0E0EE5BFD4F10826091620270E08F -:10215000E0915D03F0915E0382E492E009951092B4 -:1021600062020ACF1092630234CF1F920F920FB611 -:102170000F9211242F933F934F935F936F937F930D -:102180008F939F93AF93BF93CF93DF93EF93FF937F -:102190008091D701C0913204D0E087FF24C0109213 -:1021A0008500109284008091D7018F5F8093D701C2 -:1021B0008091D701082E000C990B8C179D0724F4F1 -:1021C0008091D7018C30C4F180918400909185007A -:1021D000049680349C4908F47AC0809184009091E0 -:1021E0008500049676C08091D701082E000C990BCB -:1021F0008C179D07C4F6E091D7018E2FEE0F990B37 -:10220000FC01EE0FFF1FE80FF91FE25FFB4F80811B -:1022100086FFC9CFE091D7018E2FEE0F990BFC01FD -:10222000EE0FFF1FE80FF91FE25FFB4F808160E0B8 -:102230008F730E942801B7CF2091840030918500D0 -:10224000E091D7018E2FEE0F990BFC01EE0FFF1FCF -:10225000E80FF91FE25FFB4F81819281820F931F8C -:102260009093890080938800E091D7018E2FEE0F24 -:10227000990BFC01EE0FFF1FE80FF91FE25FFB4F08 -:10228000808186FF11C0E091D7018E2FEE0F990B50 -:10229000FC01EE0FFF1FE80FF91FE25FFB4F80818B -:1022A00061E08F730E942801FF91EF91DF91CF9140 -:1022B000BF91AF919F918F917F916F915F914F915E -:1022C0003F912F910F900FBE0F901F90189580E4B3 -:1022D0009CE990938900809388008FEF8093D701C9 -:1022E000E3CFCF92DF92EF92FF920F931F93E82FED -:1022F000F92F05C0015011092109310961F19081BF -:1023000096239417B9F305C0015011092109310929 -:1023100011F1908196239413F7CFC12CD12CE12C8D -:10232000F12C0AC08FEFC81AD80AE80AF80A0C156F -:102330001D052E053F0579F080818623841791F3D2 -:102340006C2D7D2D8E2D9F2D1F910F91FF90EF9065 -:10235000DF90CF90089560E070E080E090E01F9102 -:102360000F91FF90EF90DF90CF9008951092680347 -:102370001092670388EE93E0A0E0B0E080936903D9 -:1023800090936A03A0936B03B0936C0325E831E04C -:10239000309366032093650325EC30E0309372039D -:1023A0002093710324EC30E0309374032093730383 -:1023B00020EC30E0309376032093750321EC30E07D -:1023C000309378032093770322EC30E030937A0344 -:1023D0002093790326EC30E030937C0320937B0339 -:1023E00010927E0310927F0310928003109281035B -:1023F000109205041092040480930604909307043D -:10240000A0930804B093090487E991E09093030432 -:1024100080930204EDE7F4E02FEF48EB5BE080915E -:1024200032048C3008F0CAC091E0980F90933204C7 -:10243000808390E0DC01AA0FBB1FA80FB91FA25F29 -:10244000BB4F12965C934E931197339684E0E53917 -:10245000F80729F7809132048C3008F0B1C091E080 -:10246000980F9093320480937A0490E0FC01EE0F71 -:10247000FF1FE80FF91FE25FFB4F88EB9BE09283A1 -:10248000818347E050E060E470E084E694E00E94DD -:10249000280D10925B0410925A048BEB91E09093FC -:1024A00059048093580487E280935C0480E1809310 -:1024B000610482E0809362041092630410923C04F1 -:1024C00010923B0488EE93E0A0E0B0E080933D04DE -:1024D00090933E04A0933F04B093400489EA91E0B6 -:1024E00090933A04809339041092500410924F0450 -:1024F00010925204109251041092540410925304FA -:102500001092560410925504609157046E7F6D7FAF -:10251000609357046695617081E0682783E00E94AC -:10252000280161E083E00E945601E2EBF0E0E491D3 -:10253000E0934904EEE9F0E0E491F0E0EE0FFF1FD4 -:10254000EF56FF4F8591949190934B0480934A04EA -:1025500060E082E00E9456018091570481FD04C032 -:1025600061E082E00E94280182E080934504E1EB73 -:10257000F0E0E491E0934604EDE9F0E0E491F0E06E -:10258000EE0FFF1FE957FF4F8591949190934804F8 -:10259000809347041092340410923304109236044E -:1025A00010923504109238041092370450E040E045 -:1025B00065EC71E083E394E00C94B50D208345CF86 -:1025C0008FEF80937A045DCFCF93DF93CDB7DEB7E3 -:1025D000AE970FB6F894DEBF0FBECDBF789484B52A -:1025E000826084BD84B5816084BD85B5826085BD0F -:1025F00085B5816085BD80916E00816080936E009D -:10260000109281008091810082608093810080918E -:10261000810081608093810080918000816080933F -:1026200080008091B10084608093B1008091B000FF -:1026300081608093B00080917A00846080937A00FA -:1026400080917A00826080937A0080917A00816024 -:1026500080937A0080917A00806880937A0010924B -:10266000C100E0917503F091760382E08083E091F0 -:102670007103F09172031082E0917303F09174037F -:1026800080E1808310927D03E0917903F0917A03D9 -:1026900086E08083E0917703F09178038081806108 -:1026A0008083E0917703F091780380818860808354 -:1026B000E0917703F0917803808180688083E091D6 -:1026C0007703F091780380818F7D80830E942705B6 -:1026D00012E061E0812F0E94560160E0812F0E948C -:1026E00028011F5F1E30A9F70E9492010E94260256 -:1026F0000E94F50B68EC70E080E090E00E94F90227 -:10270000CE01429698A78FA385E693E00E94B60378 -:10271000892B11F40C94011C85E693E00E94B6030A -:10272000181619068CF785E693E00E9494039091A1 -:102730002603853589F591112FC0809125038F3FA0 -:1027400029F481E08093240380932603809124035D -:102750008F5F8433C0F58093240380912603882300 -:1027600099F2809123038111CFCF8091240384308B -:1027700058F210922603E091F4020091F502E02E47 -:10278000F12C2091F302223009F4F6C00CF521302F -:1027900039F110922403B8CF809325039923B1F225 -:1027A000E0912403E23039F480932303F0E0E15117 -:1027B000FD4F8083CBCFE330C8F39091230391503A -:1027C00090932303F3CF1092240310922603C5CFD6 -:1027D000233009F459C72430E1F60E940F0CD9CFF9 -:1027E000EA3381F5F0920E01E0920D01F701EE0F50 -:1027F000FF1FEC5CFC4F81E090E09183808320938D -:10280000330380910B0190910C01E816F90641F019 -:102810008091090190910A01E816F90609F089C032 -:10282000109232031092270310922803109229036A -:1028300010922A03F701EE0FFF1FEC5CFC4F118290 -:102840001082A7CFE73009F040C01091F602812F27 -:1028500090E030913203311129C020933203F0927D -:102860000C01E0920B0190930A0180930901F7019A -:10287000EE0FFF1FEC5CFC4F21E030E03183208342 -:10288000880F991FFC01EC5CFC4F3183208361E0D1 -:10289000802F0E94560160E0812F0E94560162E362 -:1028A00070E080E090E00E94F90273CF20910B016C -:1028B00030910C01E216F30691F620910901309156 -:1028C0000A012817390759F664CFF0E0E231F10523 -:1028D00081F420933103F092EE02E092ED02F701D1 -:1028E000EE0FFF1FEC5CFC4F81E090E09183808352 -:1028F00050CFE331F10521F481E080933003EBCF39 -:10290000E930F10571F40E94270560E082E00E9441 -:10291000560180912F0381113CCF81E080932F03DA -:1029200038CF3A9709F06DCF0E94270561E083E028 -:10293000EECF92E0E916F10469F489E394E00E9495 -:10294000110510922F030E94E00D1092390310928E -:1029500038031FCFE3E0EE16F10409F06BCF89E3F3 -:1029600094E00E94110510922F030E94E00D109236 -:102970003B0310923A030DCF80910B0190910C0113 -:10298000E816F90639F08091090190910A01E816DC -:10299000F90651F410923203109227031092280383 -:1029A0001092290310922A03E150E13208F015CF6A -:1029B0000E2E000CFF0BE152FB4E0C942321371519 -:1029C000ED134015231A4A15ED13ED13041BED13F7 -:1029D000ED13ED13ED13101B2C1BED13ED13ED1385 -:1029E000ED13ED137417A317E217EE17021813185F -:1029F0004D185518A9182918ED13ED13ED130015EE -:102A00000E94780B0E946D0B88E590E00E943021B7 -:102A10008C012091070130910801409105015091EE -:102A2000060160910301709104010E94B20AF8014D -:102A3000EA5AFF4F80819181181619062CF470E034 -:102A400060E0C8010E948D0AC8010E94CC2110E0FC -:102A500000E020E040E060E0C8010E9490000F5FCD -:102A60001F4F00341105A9F70E942602B6CEC701F8 -:102A70000E9492076091F602802F0E942801ADCE3D -:102A8000C7010E9492076091F60270E0802F0E94B9 -:102A9000A401A3CEC7010E9492078091F602809301 -:102AA000CA028091F7028093CB028091CA02909172 -:102AB000CB029AA789A78091F8028093CA028091DD -:102AC000F9028093CB02E091CA02F091CB02FEA7FB -:102AD000EDA71E161F060CF003C28091000108131B -:102AE000CEC0E8E6F0E0149117FD77CE61E0802FCC -:102AF0000E9456011123B9F089A59AA52C01712CC9 -:102B0000612C60E072E18AE790E0A30192010E94EB -:102B10005C1F69017A0191E0C91AD108E108F10846 -:102B2000123009F09AC1E9A5FAA52F01712C612C88 -:102B300060E072E18AE790E0A3019F010E945C1FC0 -:102B400049015A017A016901F1E0CF1AD108E1087F -:102B5000F1082FEFC216D104E104F10409F00CF4DE -:102B60004FC160E472E48FE090E0A30192010E9403 -:102B70005C1F69017A0181E0C81AD108E108F108F7 -:102B8000123009F0F3C082E09FEFC916D104E104CE -:102B9000F10409F00CF46CC060E970ED83E090E0A2 -:102BA000A30192010E945C1F69017A01E1E0CE1A43 -:102BB000D108E108F10883E0FFEFCF16D104E1046A -:102BC000F10409F00CF454C068E478EE81E090E080 -:102BD000A30192010E945C1F69017A0191E0C91A68 -:102BE000D108E108F10884E0EFEFCE16D104E1044A -:102BF000F104F1F1ECF164E274EF80E090E0A30104 -:102C000092010E945C1F69017A0191E0C91AD10802 -:102C1000E108F10885E09FEFC916D104E104F10451 -:102C200039F130F162E17AE780E090E0A3019201AE -:102C30000E945C1F69017A01F1E0CF1AD108E10816 -:102C4000F10886E02FEFC216D104E104F10481F00F -:102C500078F0750164019AE0F594E794D794C794ED -:102C60009A95D1F781E0C81AD108E108F10887E008 -:102C70009091B100987F892B8093B100C8C08F3F9D -:102C800009F0ABCD00930001E8E6F0E014911F3F9E -:102C900009F4A3CD113031F150F0123009F442C0E3 -:102CA00017FD9BCD61E0802F0E94560125CF14BCFB -:102CB00015BC84B5826084BD85B5816085BDF70192 -:102CC000E556FF4FE491F0E0EE0FFF1FEF56FF4F88 -:102CD00085919491F701E155FF4FE491E093D00283 -:102CE00010E004CF1092800010928100809181004A -:102CF0008860809381008091810081608093810051 -:102D0000F701E556FF4FE491F0E0EE0FFF1FEF569D -:102D1000FF4F85919491F701E155FF4FE491E093C6 -:102D2000CF02E4CE1092B0001092B1008091B000BA -:102D300082608093B0008091B10081608093B10087 -:102D4000F701E556FF4FE491F0E0EE0FFF1FEF565D -:102D5000FF4F859194919093CE028093CD02F7011D -:102D6000E155FF4FE491E093CC02C0CE2FEFC216A5 -:102D7000D104E104F10409F00CF46DC068E478EECC -:102D800081E090E0A30192010E945C1F69017A0139 -:102D900081E0C81AD108E108F10884E011113BCFA5 -:102DA0008FEFC816D104E104F10409F014F483E0B4 -:102DB0002AC062E17AE780E090E0A30192010E94DC -:102DC0005C1F69017A01E1E0CE1AD108E108F1083F -:102DD00084E0FFEFCF16D104E104F104A1F098F0F4 -:102DE000750164012AE0F594E794D794C7942A9575 -:102DF000D1F721E0C21AD108E108F10885E003C04B -:102E000081E0111135CF95B5987F892B85BD29A516 -:102E10003AA5220F331FADA5BEA50E94292128EE99 -:102E200033E040E050E00E94BD1F1130B9F1123094 -:102E300009F446C01111D1CCC7BC2093D9023093FC -:102E4000DA024093DB025093DC0280916E008260D4 -:102E500080936E00C2CC82E0D4CF91E0C114D10443 -:102E600021E0E206F10484F068E478EE81E090E08D -:102E7000A30192010E945C1F69017A0181E0C81AD6 -:102E8000D108E108F10893E0113009F0C0CF80913A -:102E90008100887F892B80938100B9CFD0928900EF -:102EA000C09288002093D5023093D6024093D70277 -:102EB0005093D80280916F00826080936F008DCC18 -:102EC000C092B3002093D1023093D2024093D30238 -:102ED0005093D402809170008260809370007DCC0A -:102EE000802F0E942C0379CCC7010E949207609129 -:102EF000F60270E0A701CE0101960E94280D86E13E -:102F0000FE013196A4E6B4E001900D928A95E1F7B6 -:102F10008A859B850E94CC218F81988597FD03C06F -:102F200060E00E9456010E94920110E000E020E063 -:102F300040E060E0C8010E9490000F5F1F4F003426 -:102F40001105A9F791CD8091F602FF24F394F80EB4 -:102F500020916C04F21609F440CC00916D0410919C -:102F60006E04215070E060E061F08F3FF1F430E0DA -:102F700050E040E06FEF7FEF80E090E00E945C1F48 -:102F8000B901F8014091680450916904CF01801B98 -:102F9000910B8417950798F44081469FC001479F85 -:102FA000900D112490833196EDCF8F2D90E0982FC6 -:102FB00088270197622F70E00E940F21E2CFF092E4 -:102FC0006C040BCC8091F6022091FC024091FA0235 -:102FD0006091F80290E00E94900046CDF090F602D9 -:102FE000E090F802D090FA0210E000E02D2D4E2D76 -:102FF0006F2DC8010E9490000F5F1F4F0034110514 -:10300000A9F732CDC7010E94920710E000E020E04E -:1030100040E060E0C8010E9490000F5F1F4F003445 -:103020001105A9F721CD8091F60290E0909304015B -:10303000809303018091F80290E0909306018093C1 -:1030400005018091FA0290E09093080180930701B6 -:10305000C4CB88E590E00E9430218C0120910701CB -:1030600030910801409105015091060160910301E2 -:10307000709104010E94B20AF801EA5AFF4F808160 -:103080009181181619062CF470E060E0C8010E94C6 -:103090008D0AC8010E94CC21A0CB8091F60290E05D -:1030A000909302018093010198CB88E590E00E9403 -:1030B00030218C01209107013091080140910501D8 -:1030C0005091060160910301709104010E94B20ABF -:1030D000780196E5E90EF11CF701808191811816BF -:1030E00019063CF421E04CE070E060E0C8010E9469 -:1030F000FB092091010130910201F701808191814A -:10310000181619064CF42031310530F44AE070E00D -:1031100060E0C8010E94FB0988E0E5E1F1E0DE0122 -:10312000119601900D928A95E1F7CE0101967C01EE -:10313000D12CC12CF70141917F01B601C8010E9439 -:10314000760AFFEFCF1ADF0A28E0C216D10491F702 -:10315000A0CF88E590E00E9430218C0120910701EA -:1031600030910801409105015091060160910301E1 -:10317000709104010E94B20A780186E5E80EF11C04 -:10318000F70180819181181619063CF421E04CE08A -:1031900070E060E0C8010E94FB09209101013091BC -:1031A0000201F70180819181181619064CF4203133 -:1031B000310530F44AE070E060E0C8010E94FB098C -:1031C0002091F602822F90E02130E9F488E0EDE1D1 -:1031D000F1E0DE01119601900D928A95E1F7CE01A2 -:1031E00001967C01D12CC12CF70141917F01B601E0 -:1031F000C8010E94760AFFEFCF1ADF0A28E0C21644 -:10320000D10491F746CF82309105E9F488E0E5E2F8 -:10321000F1E0DE01119601900D928A95E1F7CE0161 -:1032200001967C01D12CC12CF70141917F01B6019F -:10323000C8010E94760AFFEFCF1ADF0A28E0C21603 -:10324000D10491F726CF83309105E9F488E0EDE2CF -:10325000F1E0DE01119601900D928A95E1F7CE0121 -:1032600001967C01D12CC12CF70141917F01B6015F -:10327000C8010E94760AFFEFCF1ADF0A28E0C216C3 -:10328000D10491F706CF84309105E9F488E0E5E3B5 -:10329000F1E0DE01119601900D928A95E1F7CE01E1 -:1032A00001967C01D12CC12CF70141917F01B6011F -:1032B000C8010E94760AFFEFCF1ADF0A28E0C21683 -:1032C000D10491F7E6CE85309105E9F488E0EDE38D -:1032D000F1E0DE01119601900D928A95E1F7CE01A1 -:1032E00001967C01D12CC12CF70141917F01B601DF -:1032F000C8010E94760AFFEFCF1ADF0A28E0C21643 -:10330000D10491F7C6CE86309105E9F488E0E5E472 -:10331000F1E0DE01119601900D928A95E1F7CE0160 -:1033200001967C01D12CC12CF70141917F01B6019E -:10333000C8010E94760AFFEFCF1ADF0A28E0C21602 -:10334000D10491F7A6CE87309105E9F488E0EDE449 -:10335000F1E0DE01119601900D928A95E1F7CE0120 -:1033600001967C01D12CC12CF70141917F01B6015E -:10337000C8010E94760AFFEFCF1ADF0A28E0C216C2 -:10338000D10491F786CE88309105E9F488E0E5E52F -:10339000F1E0DE01119601900D928A95E1F7CE01E0 -:1033A00001967C01D12CC12CF70141917F01B6011E -:1033B000C8010E94760AFFEFCF1ADF0A28E0C21682 -:1033C000D10491F766CE89309105E9F488E0EDE506 -:1033D000F1E0DE01119601900D928A95E1F7CE01A0 -:1033E00001967C01D12CC12CF70141917F01B601DE -:1033F000C8010E94760AFFEFCF1ADF0A28E0C21642 -:10340000D10491F746CE0A9709F043CE88E0E5E66D -:10341000F1E0DE01119601900D928A95E1F7CE015F -:1034200001967C01D12CC12CF70141917F01B6019D -:10343000C8010E94760AFFEFCF1ADF0A28E0C21601 -:10344000D10491F726CEC7010E949207B090F602F0 -:1034500084EB8B1508F4C1C9EDEDF2E090E080E05B -:1034600021913191E216F30651F0232B09F0C4C0EB -:10347000FC01EE0FFF1FE352FD4FF182E082FC01E1 -:10348000EE0FFF1FE80FF91FE358FB4F80812181EA -:10349000928180937A0420937B0490937C048C30F7 -:1034A00008F053C061E0802F0E94560180917A0499 -:1034B000282F30E0F901EE0FFF1FE20FF31FE25F4C -:1034C000FB4F902F9F730081007C092B008310928B -:1034D0007B0410927C042CE0622F0E940321829FC7 -:1034E000B001112430E020E0AB01420F531FFA017C -:1034F000EE0FFF1FE40FF51FE25FFB4F908196FD7B -:1035000016C02F5F3F4F2C30310571F781110FC06E -:103510001092800082E080938100109285001092CA -:103520008400B19A80916F00826080936F00E09177 -:103530007A048E2F90E0FC01EE0FFF1FE80FF91FB9 -:10354000E25FFB4F808180648083F0907A048091F9 -:103550007C04B8E5CB2EB2E0DB2EC81AD10887FD7B -:10356000D394CC0CDD1CCC0CDD1C80917B0408E8D2 -:1035700010E0081B110987FD1395000F111F000FA4 -:10358000111F2801012E000C6608770896010D2CEA -:10359000000C440B550B2419350946095709AB2D6E -:1035A000B0E00E947B1F24EB30E040E050E00E943E -:1035B0005C1F420E531E641E751EEBE0EF1508F4EF -:1035C0000CC9401651062CF086014C145D040CF415 -:1035D000820102501109000F111F2FB7F8948F2D8F -:1035E00090E0FC01EE0FFF1FE80FF91FE25FFB4FB9 -:1035F000128301832FBFF1C801968830910509F02D -:103600002FCF90E080E03BCF8FB7F89440915103EB -:103610005091520360915303709154038FBFDDC8E2 -:10362000C7010E94A3076AE070E080E090E00E947A -:10363000F902C7010E94A3076AE070E080E090E011 -:103640000E94F902C7010E94A3076AE070E080E0CF -:1036500090E00E94F902C1C8E090F602F090F802F2 -:10366000D090FA020091FC0210E08E2D90E00E94B2 -:1036700092078F2D90E00E9492076D2D8E2D0E9453 -:103680002801B8018F2D03CAEB3081F134F4EA3000 -:1036900009F49BC00E940F0CA0C8EC3021F1E1316D -:1036A000C9F78091FA029091F8022091F6021092E7 -:1036B0005B0410925A04211114C027E220935C0489 -:1036C00010925D0410925E0410925F0410926004E8 -:1036D0009093610480936204109263040E94F50B3E -:1036E000D9CF2FE3EBCF0E946D0BD4CFB090F60271 -:1036F000A090F8020091FA0210E01AA219A21CA2EE -:103700001BA21EA21DA250E040E065EC71E0CE01BC -:1037100081960E94B50DECEFCE2EE2E0DE2E035F27 -:103720001F4FC6018F5E924080179107FCF4F6018F -:1037300081916F0189831A82EDA0FEA0FFEFEF1A3D -:10374000FF0AB701CE0181960E948D0D882349F3AF -:1037500029A13AA18DA19EA1BE016F5F7F4F820F6B -:10376000931F0E942223FEA2EDA2DBCF88E0EDE6AC -:10377000F1E0DE01119601900D928A95E1F78091BA -:1037800060048B1518F4BB24BA94B80EEB2DF0E04E -:10379000EE0FFF1F81E090E08C0F9D1FE80FF91FD7 -:1037A00060816A0D606840E088E594E00E94560BF5 -:1037B0004DA15EA169A17AA188E594E00E94580319 -:1037C000CE0181960E94850D65CFAFEEB2E0FE017D -:1037D0003196BF0117968C911797819312968FA1FE -:1037E00098A58E179F07B1F7FB0101900020E9F71C -:1037F0003197AF01461B570B89E394E00E945803B1 -:1038000049CF89E394E00E94DA047C01892B71F1AD -:1038100089E394E00E94DA041816190694F789E304 -:1038200094E00E94F00489831A8200913704109179 -:1038300038040F5F1F4FB80183E394E00E948D0DA1 -:103840008823F9F2209133043091340480913704B5 -:1038500090913804BE016F5F7F4F820F931F0E94CB -:1038600022231093380400933704CBCF6FE070E02D -:1038700080E090E00E94F90208E313E062E0D62EB7 -:10388000F801819191918F01892BD9F460E08D2D00 -:103890000E9456010E94F5098D2D0E94FF00BC0177 -:1038A000990F880B990B0E943F1E0E94D1098D2D04 -:1038B0000E94CC0981E00E94CC090E94070C0E9462 -:1038C0000F0CD394FEE0DF12DBCF55E7A52E51E0BD -:1038D000B52E10E0F501819191915F01892B09F0DE -:1038E0005DC044E1C42ED12C55245394012F0064B3 -:1038F00000937C0080917A00806480937A008091AC -:103900007A0086FDFCCF6091780070917900072ED7 -:10391000000C880B990B0E943F1E3B014C01552067 -:1039200019F06BA77CA61C012DEC3CEC4CEC5DE384 -:103930006BA57CA5C1010E949E1E1B012C0126E6E1 -:1039400036E646E65FE3B301C4010E949E1E9B017A -:10395000AC01C201B1010E94EF1F6BA77CA71C0143 -:10396000F1E0CF1AD108512C19F60E94F5096BA588 -:103970007CA5C1010E94CD20072E000C880B990B5D -:103980000E943F1E0E94D109812F0E94CC0982E033 -:103990000E94CC090E94070C0E940F0C1F5F16307A -:1039A00009F098CF809133038823E9F010910D013D -:1039B00062E0812F0E9456010E94F509812F0E942A -:1039C000FF00BC01990F880B990B0E943F1E0E94BB -:1039D000D109812F0E94CC098AE30E94CC090E9460 -:1039E000070C0E940F0C80913203882309F46FC0EA -:1039F00010910B0160E0812F0E94280183E090E08C -:103A00000197F1F761E0812F0E94280183E290E0A5 -:103A10000197F1F760E0812F0E9428018091090150 -:103A200090910A019927FC01E155FF4F6491FC0137 -:103A3000E556FF4FE491F0E0EE0FFF1FE957FF4F0F -:103A40008591949100E315E720E030E0462F0E9435 -:103A50007111611571058105910529F06F5F7F4F27 -:103A60008F4F9F4F9F700E943D1E20E030E048EE38 -:103A700051E40E945B2020E030E040E05FE30E94E0 -:103A80009E1E4B015C0120E030E0A9010E94381E1F -:103A9000811185C08090270390902803A09029036E -:103AA000B0902A030E94F509C501B4010E94D10912 -:103AB00080910B010E94CC09809109010E94CC09E0 -:103AC00087E00E94CC090E94070C0E940F0C809195 -:103AD0003103882321F00E94170C0E940F0C809163 -:103AE0003003882321F00E94170C0E940F0C809154 -:103AF0002F03882309F482C02FB7F89480915103D3 -:103B000090915203A0915303B09154032FBF409161 -:103B10002B0350912C0360912D0370912E03841B75 -:103B2000950BA60BB70B8C329140A105B10508F09F -:103B300065C00E94F5091A8219821C821B821E82AE -:103B40001D8260913304709134046115710541F058 -:103B50004091370450913804CE0101960E94B50D72 -:103B6000DD800D2D1E8184E00E94CC098D2D0E94E8 -:103B7000CC09E016F106F4F48D819E81E816F90671 -:103B8000B8F489819A81009799F08E0D9F1DFC01F0 -:103B900080810E94CC09FFEFEF1AFF0AEACF8092E2 -:103BA000270390922803A0922903B0922A037ACF88 -:103BB00080E0EFCFCE0101960E94850D82E00E9449 -:103BC000CC0989E00E94CC090E94070C0E940F0CCE -:103BD0006AE070E080E090E00E94F90280E090E00E -:103BE000892B11F40C9480130E94C203882311F4D2 -:103BF0000C9480130E9400000C94801350E040E06D -:103C000065EC71E083E394E00E94B50D2FB7F89462 -:103C10008091510390915203A0915303B0915403AA -:103C20002FBF80932B0390932C03A0932D03B0936D -:103C30002E03CECF83E394E00E94850D89EA91E0C4 -:103C400090933A048093390489E394E00E9411052B -:103C500080916D0490916E040E94CC2180916A0441 -:103C600090916B0497FD03C060E00C945601089599 -:103C70000E947A1E08F481E00895E89409C097FB39 -:103C80003EF490958095709561957F4F8F4F9F4F33 -:103C90009923A9F0F92F96E9BB279395F695879577 -:103CA00077956795B795F111F8CFFAF4BB0F11F43A -:103CB00060FF1BC06F5F7F4F8F4F9F4F16C08823E1 -:103CC00011F096E911C0772321F09EE8872F762F17 -:103CD00005C0662371F096E8862F70E060E02AF058 -:103CE0009A95660F771F881FDAF7880F9695879544 -:103CF00097F90895990F0008550FAA0BE0E8FEEF19 -:103D000016161706E807F907C0F012161306E4079F -:103D1000F50798F0621B730B840B950B39F40A2698 -:103D200061F0232B242B252B21F408950A2609F476 -:103D3000A140A6958FEF811D811D08950E94B11E9F -:103D40000C94221F0E94141F38F00E941B1F20F0A9 -:103D5000952311F00C940B1F0C94111F11240C943B -:103D6000561F0E94331F70F3959FC1F3950F50E0CB -:103D7000551F629FF001729FBB27F00DB11D639F1D -:103D8000AA27F00DB11DAA1F649F6627B00DA11DC3 -:103D9000661F829F2227B00DA11D621F739FB00D69 -:103DA000A11D621F839FA00D611D221F749F3327D9 -:103DB000A00D611D231F849F600D211D822F762F72 -:103DC0006A2F11249F5750409AF0F1F088234AF04F -:103DD000EE0FFF1FBB1F661F771F881F91505040BB -:103DE000A9F79E3F510580F00C940B1F0C94561FB1 -:103DF0005F3FE4F3983ED4F3869577956795B79542 -:103E0000F795E7959F5FC1F7FE2B880F911D96955B -:103E1000879597F9089597F99F6780E870E060E0CB -:103E200008959FEF80EC089500240A941616170653 -:103E300018060906089500240A941216130614069B -:103E400005060895092E0394000C11F4882352F0FE -:103E5000BB0F40F4BF2B11F460FF04C06F5F7F4FB6 -:103E60008F4F9F4F089557FD9058440F551F59F09D -:103E70005F3F71F04795880F97FB991F61F09F3F57 -:103E800079F087950895121613061406551FF2CF80 -:103E90004695F1DF08C0161617061806991FF1CFD0 -:103EA00086957105610508940895E894BB276627F7 -:103EB0007727CB0197F90895052E97FB1EF4009400 -:103EC0000E94731F57FD07D00E94BD1F07FC03D03F -:103ED0004EF40C94731F50954095309521953F4FAB -:103EE0004F4F5F4F089590958095709561957F4FE6 -:103EF0008F4F9F4F08950E94DF1FA59F900DB49F85 -:103F0000900DA49F800D911D112408952F923F9232 -:103F10004F925F926F927F928F929F92AF92BF92D9 -:103F2000CF92DF92EF92FF920F931F93CF93DF9385 -:103F3000CDB7DEB7CA1BDB0B0FB6F894DEBF0FBEE2 -:103F4000CDBF09942A88398848885F846E847D842F -:103F50008C849B84AA84B984C884DF80EE80FD8031 -:103F60000C811B81AA81B981CE0FD11D0FB6F894A7 -:103F7000DEBF0FBECDBFED010895A1E21A2EAA1B30 -:103F8000BB1BFD010DC0AA1FBB1FEE1FFF1FA21709 -:103F9000B307E407F50720F0A21BB30BE40BF50B06 -:103FA000661F771F881F991F1A9469F7609570958F -:103FB000809590959B01AC01BD01CF010895A29F12 -:103FC000B001B39FC001A39F700D811D1124911DED -:103FD000B29F700D811D1124911D08955058BB276B -:103FE000AA270E9406200C94221F0E94141F38F05A -:103FF0000E941B1F20F039F49F3F19F426F40C9403 -:10400000111F0EF4E095E7FB0C940B1FE92F0E94A3 -:10401000331F58F3BA17620773078407950720F018 -:1040200079F4A6F50C94551F0EF4E0950B2EBA2FDB -:10403000A02D0B01B90190010C01CA01A0011124AE -:10404000FF27591B99F0593F50F4503E68F11A165A -:10405000F040A22F232F342F4427585FF3CF4695EB -:1040600037952795A795F0405395C9F77EF41F160D -:10407000BA0B620B730B840BBAF09150A1F0FF0FD7 -:10408000BB1F661F771F881FC2F70EC0BA0F621FC3 -:10409000731F841F48F4879577956795B795F795B3 -:1040A0009E3F08F0B0CF9395880F08F09927EE0F48 -:1040B0009795879508950E946F200C94221F0E9467 -:1040C0001B1F58F00E94141F40F029F45F3F29F095 -:1040D0000C940B1F51110C94561F0C94111F0E942D -:1040E000331F68F39923B1F3552391F3951B550BB7 -:1040F000BB27AA2762177307840738F09F5F5F4FBB -:10410000220F331F441FAA1FA9F335D00E2E3AF0F9 -:10411000E0E832D091505040E695001CCAF72BD011 -:10412000FE2F29D0660F771F881FBB1F2617370762 -:104130004807AB07B0E809F0BB0B802DBF01FF2794 -:1041400093585F4F3AF09E3F510578F00C940B1F47 -:104150000C94561F5F3FE4F3983ED4F38695779511 -:104160006795B795F7959F5FC9F7880F911D96954D -:10417000879597F90895E1E0660F771F881FBB1FA9 -:10418000621773078407BA0720F0621B730B840B56 -:10419000BA0BEE1F88F7E09508950E94D42068942A -:1041A000B1110C94561F08950E943B1F88F09F5731 -:1041B00098F0B92F9927B751B0F0E1F0660F771F4B -:1041C000881F991F1AF0BA95C9F714C0B13091F041 -:1041D0000E94551FB1E008950C94551F672F782F4A -:1041E0008827B85F39F0B93FCCF386957795679506 -:1041F000B395D9F73EF490958095709561957F4F72 -:104200008F4F9F4F0895991B79E004C0991F96170F -:1042100008F0961B881F7A95C9F780950895AA1B08 -:10422000BB1B51E107C0AA1FBB1FA617B70710F0A1 -:10423000A61BB70B881F991F5A95A9F780959095D3 -:10424000BC01CD010895EE0FFF1F0590F491E02D04 -:1042500009940E94DF1FB7FF0895821B930B0895F6 -:104260000F931F93CF93DF938230910510F482E078 -:1042700090E0E0919704F091980430E020E0B0E005 -:10428000A0E0309799F42115310509F44AC0281BA4 -:10429000390B24303105D8F58A819B816115710570 -:1042A00089F1FB0193838283FE0111C0408151811A -:1042B0000281138148175907E0F04817590799F40C -:1042C000109761F012960C93129713961C933296E6 -:1042D000CF01DF91CF911F910F9108950093970423 -:1042E00010939804F4CF2115310551F0421753076C -:1042F00038F0A901DB019A01BD01DF01F801C1CF4E -:10430000EF01F9CF9093980480939704CDCFFE01ED -:10431000E20FF31F8193919322503109398328834F -:10432000D7CF2091950430919604232B41F420910E -:10433000110130911201309396042093950420913D -:104340000F01309110012115310541F42DB73EB711 -:104350004091130150911401241B350BE0919504F9 -:10436000F0919604E217F307A0F42E1B3F0B2817D9 -:10437000390778F0AC014E5F5F4F2417350748F0DE -:104380004E0F5F1F50939604409395048193919331 -:104390009FCFF0E0E0E09CCFCF93DF930097E9F070 -:1043A000FC01329713821282A0919704B091980475 -:1043B000ED0130E020E01097A1F420813181820FDF -:1043C000931F20919504309196042817390709F01E -:1043D00061C0F0939604E0939504DF91CF91089526 -:1043E000EA01CE17DF07E8F54A815B819E0141159E -:1043F0005105B1F7E901FB83EA8349915991C40F53 -:10440000D51FEC17FD0761F4808191810296840F1E -:10441000951FE90199838883828193819B838A8395 -:10442000F0E0E0E012968D919C9113970097B9F51A -:104430002D913C911197CD010296820F931F2091EF -:104440009504309196042817390739F6309751F5BD -:104450001092980410929704B0939604A093950438 -:10446000BCCFD383C28340815181840F951FC8176D -:10447000D90761F44E5F5F4F88819981480F591FBA -:10448000518340838A819B819383828321153105E7 -:1044900009F0B0CFF0939804E09397049ECFFD010C -:1044A000DC01C0CF13821282D7CFB0E0A0E0EBE5F1 -:1044B000F2E20C94881F8C01009751F4CB010E940A -:1044C00030218C01C801CDB7DEB7E0E10C94A41F08 -:1044D000FC01E60FF71F9C0122503109E217F30798 -:1044E00008F49DC0D901CD91DC911197C617D7076B -:1044F00098F0C530D10530F3CE01049786179707A1 -:1045000008F3C61BD70B2297C193D1936D937C936D -:10451000CF010E94CC21D6CF5B01AC1ABD0A4C0161 -:104520008C0E9D1EA0919704B0919804512C412CA3 -:10453000F12CE12C109731F580919504909196041F -:104540008815990509F05CC04616570608F058C052 -:1045500080910F0190911001009741F48DB79EB7A3 -:104560004091130150911401841B950BE817F90732 -:1045700008F055C0F0939604E0939504F901718317 -:104580006083A0CF8D919C91119712966C90129799 -:1045900013967C901397A815B90559F56C0142E064 -:1045A000C40ED11CCA14DB0420F1AC014A195B090A -:1045B000DA011296159780F06282738251834083EC -:1045C000D9016D937C93E114F10471F0D701139636 -:1045D000FC93EE93129776CF22968C0F9D1FF901D4 -:1045E00091838083F301EFCFF0939804E0939704D5 -:1045F00069CF4816590608F42C017D01D3019ACFE2 -:10460000CB010E9430217C01009749F0AE01B80136 -:104610000E941223C8010E94CC21870153CF10E0D1 -:1046200000E050CFFB01DC0102C001900D9241502F -:104630005040D8F70895DC0101C06D9341505040BF -:10464000E0F70895FB01DC0101900D920020E1F7F5 -:10465000089510E0C3E6D0E004C0FE010E942321CB -:0C4660002196C436D107C9F7F894FFCFAB -:10466C00FF08000C000B000A000C000D000A0000F3 -:10467C00009904800081C3A59999A5C38166FFFFA9 -:10468C00FF7E3C1800669981814224180000103886 -:10469C00541010100000101010543810000010208E -:1046AC007E201000000008047E040800000042A5D3 -:1046BC000000423C000000E74242182400814224E2 -:1046CC0000003C7E7E00422442003C241800004046 -:1046DC000014005400000000000000000000000066 -:1046EC000000000000F803580385034504B603944A -:1046FC0003A8030000000078064B068F077D0444D6 -:10470C000631062206000000007E0458038F077D48 -:10471C0004DA04F004650400000000010C58038F57 -:06472C00078E070D0A00D4 +:1001A0009F1FFC01E30FF11D1082E2CFAF92BF92BF +:1001B000CF92DF92EF92FF920F931F93CF93DF9333 +:1001C0006C017B018B01040F151FEB015E01AE1862 +:1001D000BF08C017D10759F06991D601ED91FC9184 +:1001E0000190F081E02DC6010995892B79F7C501B1 +:1001F000DF91CF911F910F91FF90EF90DF90CF9003 +:10020000BF90AF900895FC01538D448D252F30E0B1 +:10021000842F90E0821B930B541710F0CF96089513 +:1002200001970895FC01918D828D981761F0A28D40 +:10023000AE0FBF2FB11D5D968C91928D9F5F9F7306 +:10024000928F90E008958FEF9FEF0895FC01918DBC +:10025000828D981731F0828DE80FF11D858D90E029 +:1002600008958FEF9FEF0895FC01918D228D892FC6 +:1002700090E0805C9F4F821B91098F7399270895AE +:1002800085E693E00E94340121E0892B09F420E007 +:10029000822F089580E090E0892B29F00E94400190 +:1002A00081110C9400000895FC01A48DA80FB92FB2 +:1002B000B11DA35ABF4F2C91848D90E001968F738E +:1002C0009927848FA689B7892C93A089B1898C91AD +:1002D000837080648C93938D848D981306C00288FC +:1002E000F389E02D80818F7D80830895EF92FF92C6 +:1002F0000F931F93CF93DF93EC0181E0888F9B8D49 +:100300008C8D98131AC0E889F989808185FF15C002 +:100310009FB7F894EE89FF896083E889F989808125 +:100320008370806480839FBF81E090E0DF91CF91F4 +:100330001F910F91FF90EF900895F62E0B8D10E016 +:100340000F5F1F4F0F731127E02E8C8D8E110CC085 +:100350000FB607FCFACFE889F989808185FFF5CFD0 +:10036000CE010E945401F1CFEB8DEC0FFD2FF11D5A +:10037000E35AFF4FF0829FB7F8940B8FEA89FB890D +:1003800080818062CFCFCF93DF93EC01888D88236B +:10039000B9F0AA89BB89E889F9898C9185FD03C0E8 +:1003A000808186FD0DC00FB607FCF7CF8C9185FFCD +:1003B000F2CF808185FFEDCFCE010E945401E9CFBD +:1003C000DF91CF910895833081F028F4813099F046 +:1003D0008230A9F008958730A9F08830C9F08430C0 +:1003E000B1F4809180008F7D03C0809180008F7771 +:1003F00080938000089584B58F7784BD089584B577 +:100400008F7DFBCF8091B0008F778093B0000895EF +:100410008091B0008F7DF9CFCF93DF93282F30E00C +:10042000F901EE58FF4F8491F901E155FF4FD49146 +:10043000F901E556FF4FC491CC23A1F081110E9430 +:10044000E301EC2FF0E0EE0FFF1FE957FF4FA591FE +:10045000B491EC91ED2381E090E009F480E0DF912C +:10046000CF91089580E090E0FACF1F93CF93DF9370 +:10047000282F30E0F901EE58FF4F8491F901E15542 +:10048000FF4FD491F901E556FF4FC491CC23A9F059 +:10049000162F81110E94E301EC2FF0E0EE0FFF1FF9 +:1004A000EF56FF4FA591B4918FB7F894EC911111CD +:1004B00008C0D095DE23DC938FBFDF91CF911F91D1 +:1004C0000895DE2BF8CF9091000189130BC0E6E868 +:1004D000F0E0E4919FEF90930001E13049F028F0C3 +:1004E000E23061F060E00C94350210926E00FACFB9 +:1004F00090916F009D7F90936F00F4CF909170006A +:100500009D7F9093700091E09093B0009091B10026 +:10051000987F94609093B1001092B300E3CFCF9393 +:10052000DF9390E0FC01E155FF4F249185569F4FEA +:10053000FC0184918823C9F090E0880F991FFC0189 +:10054000E859FF4FA591B491FC01EF56FF4FC591BB +:10055000D49161110DC09FB7F8948C91209582239E +:100560008C938881282328839FBFDF91CF910895A2 +:10057000623051F49FB7F8943C91822F8095832389 +:100580008C93E8812E2BEFCF8FB7F894EC912E2B24 +:100590002C938FBFEACF80916A0490916B0497FDF2 +:1005A00008C061E00E948F0260E080916A040E94AE +:1005B000350281E08093650408954F925F926F92B7 +:1005C0007F928F929F92AF92BF92CF92DF92EF92E3 +:1005D000FF920F931F93CF93DF9300D000D01F9211 +:1005E000CDB7DEB78B0129013A019091000189173F +:1005F000C9F09F3F09F47EC00F900F900F900F90AD +:100600000F90DF91CF911F910F91FF90EF90DF90AE +:10061000CF90BF90AF909F908F907F906F905F90A2 +:100620004F900895E6E8F0E094919D8397FDE4CF24 +:1006300061E00E948F028D81882321F09D8192309C +:1006400009F04AC14801B12CA12C60E072E18AE7AF +:1006500090E0A50198010E94F21F29833A834B8301 +:100660005C8369017A0181E0C81AD108E108F108C8 +:100670009FEFC916D104E104F10409F00CF401C1A3 +:1006800060E472E48FE090E0A50198010E94F21FFF +:1006900069017A0181E0C81AD108E108F1089D8159 +:1006A000923009F0A2C08FEFC816D104E104F10422 +:1006B00009F00CF4E6C160E970ED83E090E0A5017B +:1006C00098010E94F21F69017A0191E0C91AD108CC +:1006D000E108F1088FEFC816D104E104F10411F02C +:1006E0000CF07FC183E09091B100987F892B8093BB +:1006F000B100CFC080930001E6E8F0E094919D83C3 +:100700009F3F09F479CF913041F150F0923009F4D4 +:1007100046C09D8197FD70CF61E00E948F028ECF11 +:1007200014BC15BC94B5926094BD95B5916095BD0F +:10073000282F30E0F901E556FF4FE491F0E0EE0F8D +:10074000FF1FEF56FF4F45915491F901E155FF4FBF +:10075000E491E093D0021D826BCF10928000109242 +:100760008100909181009860909381009091810028 +:10077000916090938100282F30E0F901E556FF4FFA +:10078000E491F0E0EE0FFF1FEF56FF4F45915491BB +:10079000F901E155FF4FE491E093CF0249CF109268 +:1007A000B0001092B1009091B00092609093B000B0 +:1007B0009091B10091609093B100282F30E0F90141 +:1007C000E556FF4FE491F0E0EE0FFF1FEF56FF4FAD +:1007D000459154915093DA024093D902F901E155C1 +:1007E000FF4FE491E093DB0223CF9FEFC916D104C2 +:1007F000E104F10409F00CF46DC068E478EE81E0E6 +:1008000090E0A50198010E94F21F69017A0181E040 +:10081000C81AD108E108F1089D81992309F4FAC0AA +:100820008FEFC816D104E104F10411F00CF0FBC005 +:10083000EFC064E274EF80E090E0A50194010E94B3 +:10084000F21F69017A0181E0C81AD108E108F108B4 +:1008500085E09FEFC916D104E104F10409F008F422 +:1008600042CF62E17AE780E090E0A50194010E9426 +:10087000F21F69017A0181E0C81AD108E108F10884 +:10088000E5C081E09D8191112ECF95B5987F892B90 +:1008900085BD2FEF3FEFA90141145104610471049C +:1008A00009F043C09D81913009F45EC0923009F493 +:1008B0006DC09111A1CEC7BC2093D5023093D60252 +:1008C0004093D7025093D80280916E00826080934B +:1008D0006E0092CE82E0D6CFB12CA12C60E072E106 +:1008E0008AE790E0A50198010E94F21F69017A0150 +:1008F00081E0C81AD108E108F108C114D10491E0DF +:10090000E906F10404F591E08D81813011F68091C2 +:100910008100887F892B809381002FEF3FEFA90111 +:100920004114510461047104F9F0D801AA0FBB1FEE +:10093000A30192010E94112028EE33E040E050E034 +:100940000E945320AFCF68E478EE81E090E0A501EB +:1009500098010E94F21F69017A0181E0C81AD1084A +:10096000E108F10893E0D0CFD0928900C0928800CE +:100970002093D1023093D2024093D3025093D402F9 +:1009800080916F00826080936F0036CEC092B3007A +:100990002093DC023093DD024093DE025093DF02AD +:1009A0008091700082608093700026CE84E09FEF7B +:1009B000C916D104E104F10409F008F466CFC98036 +:1009C000DA80EB80FC808AE0F594E794D794C794B2 +:1009D0008A95D1F781E0C81AD108E108F10885E0CD +:1009E00054CF68E478EE81E090E0A50198010E9480 +:1009F000F21F69017A0181E0C81AD108E108F10803 +:100A00009FEFC916D104E104F10411F00CF011CFED +:100A100084E069CE83E09FEFC916D104E104F104BC +:100A200009F00CF432CF62E17AE780E090E0A501B2 +:100A300094010E94F21F69017A0181E0C81AD1086D +:100A4000E108F1089D81992309F4B0CF86E09FEF7A +:100A5000C916D104E104F10409F008F444CEC980B8 +:100A6000DA80EB80FC809AE0F594E794D794C79401 +:100A70009A95D1F781E0C81AD108E108F10887E01A +:100A800032CE82E030CE1F93CF93DF93182FEB014D +:100A900061E00E948F02209739F460E0812FDF919E +:100AA000CF911F910C943502CF3FD10511F461E035 +:100AB000F5CFE12FF0E0EE58FF4FE491E33031F154 +:100AC00040F4E130B1F0E230E1F0C038D1057CF71C +:100AD000E4CFE73029F1E83059F1E430B1F7809103 +:100AE0008000806280938000D0938B00C0938A0046 +:100AF00004C084B5806884BDC7BDDF91CF911F91CC +:100B0000089584B5806284BDC8BDF7CF8091800010 +:100B1000806880938000D0938900C0938800EDCFD7 +:100B20008091B00080688093B000C093B300E5CF9F +:100B30008091B00080628093B000C093B400DDCF9C +:100B40003FB7F8948091CB029091CC02A091CD0256 +:100B5000B091CE0226B5A89B05C02F3F19F0019693 +:100B6000A11DB11D3FBFBA2FA92F982F8827BC0107 +:100B7000CD01620F711D811D911D42E0660F771F2F +:100B8000881F991F4A95D1F708950F931F93CF930C +:100B9000DF93CDB7DEB729970FB6F894DEBF0FBE4F +:100BA000CDBF80916D0490916E04892B09F47CC0B7 +:100BB0000E94A005009173041091740420917504A3 +:100BC00030917604601771078207930740F46093B1 +:100BD0007304709374048093750490937604009169 +:100BE0007304109174042091750430917604601B95 +:100BF000710B820B930B6C32714081059105C0F231 +:100C0000F89480916804909169049A838983E091B3 +:100C10006D04F0916E04DF011196808189879091B7 +:100C20006404E0917704F091780480917904992329 +:100C300009F445C09081982B9887908180958923ED +:100C40008F838F818C8388E08B8358856F81498562 +:100C50003B812C8189819A81508347FD252F3A95CC +:100C60002083262F39F0441F00C00000608300005D +:100C700000C0F2CF38E04D9160830000019761F72A +:100C8000F0937804E093770449873B832C839A831D +:100C9000898378940E94A005609373047093740410 +:100CA000809375049093760429960FB6F894DEBF6E +:100CB0000FBECDBFDF91CF911F910F91089590810D +:100CC000982B98879081809589238F838F818E833D +:100CD00088E08D8358856F8149853D812E8189818A +:100CE0009A81508347FD252F00C000C0208300C09B +:100CF00000C000C000C000C060830000262F3A95ED +:100D000041F0441F000000C000C000C000C000C08F +:100D1000E8CF38E04D9100C0608300C0019709F72B +:100D2000F0937804E093770449873D832E83AFCF17 +:100D30008F929F92AF92BF92CF92DF92EF92FF92EB +:100D40006B017C010E94A0054B015C01C114D10420 +:100D5000E104F104B9F00E94A005681979098A0933 +:100D60009B09683E73408105910580F321E0C21A1A +:100D7000D108E108F10888EE880E83E0981EA11CD6 +:100D8000B11CE4CFFF90EF90DF90CF90BF90AF9079 +:100D90009F908F90089520915B0330915C032817FA +:100DA000390771F49091590380915A03981741F0D3 +:100DB000E0915903F0E0E657FD4F808190E00895FF +:100DC0008FEF9FEF08950895EF92FF920F931F9377 +:100DD000CF93DF93DC015C96ED90FC905D97E1147E +:100DE000F10479F481E090E013969C938E9312972E +:100DF00090E080E0DF91CF911F910F91FF90EF90F5 +:100E000008955196ED91FC91529750968C91509780 +:100E1000982F90950FB75E962C915E97122F1270B7 +:100E200021FD6095F8942081112319F1282B20834E +:100E3000E7012197F1F728E0462F50E0308160FF6D +:100E40001AC0382B3083E7012197F1F7BA01759565 +:100E50006795215089F7112381F080818923808350 +:100E60000FBF5C968D919C910197F1F781E090E026 +:100E7000C1CF2923DCCF3923E5CF9081892BEFCF58 +:100E800020915B0330915C032817390771F480913E +:100E90005A032091590390E0805C9F4F821B910977 +:100EA00060E470E00E94B921089590E080E0089528 +:100EB00020915B0330915C0328173907B9F49091B6 +:100EC000590380915A03981789F0E0915903F0E093 +:100ED000E657FD4F80812091590330E02F5F3F4F4F +:100EE0002F7333272093590390E008958FEF9FEFDE +:100EF0000895E0915B03F0915C03E817F90769F44A +:100F0000A389B4899C918589809589238C931092BB +:100F10005C0310925B0381E0089580E008951092D5 +:100F200054041092530410925204109251041092DF +:100F3000500410924F048DE991E0909356048093F1 +:100F4000550490914504963108F046C02DEB30E0F1 +:100F50003093500420934F042BE931E03093520436 +:100F6000209351042CE231E0309354042093530435 +:100F70002091680084E0983048F031E09E3008F419 +:100F800030E081E001C0880F3A95EAF7822B809328 +:100F900068002DE630E0983050F02BE630E09E30CF +:100FA00030F02CE630E0963110F030E020E0309365 +:100FB0004D0420934C04292F30E09830C0F581E097 +:100FC00001C0880F9A95EAF780934E0480915504EA +:100FD000909156040197F1F7809153049091540435 +:100FE000892B21F180915B0390915C0324E089338C +:100FF0009207E1F0009711F00E9479078091570461 +:101000008E7F8093570410925A031092590389E3FC +:1010100094E090935C0380935B03E0914C04F09127 +:101020004D04808190914E04892B808308959E30D9 +:1010300040F42850310981E001C0880F2A95EAF771 +:10104000C3CF2E503109F7CF20914002260F33270E +:10105000331F21323105ECF420916402FC0190E051 +:1010600080E0243069F082E00895A091400221914F +:10107000AC01405E5D4FA40FB52FB11D2C930196BE +:10108000861798F380914002680F6093400280E0D9 +:10109000089581E008951092640281E080936602D1 +:1010A0001092650261E082E10E94350261E083E115 +:1010B0000E943502E9EBF0E080818E7F80838081A1 +:1010C0008D7F808388E48093B80085E48093BC00A2 +:1010D0000895CF93DF9391E090931F028823B9F096 +:1010E000C091B800D091BA008091BC008A7B8093F7 +:1010F000BC0060E082E10E94350260E083E10E9472 +:1011000035020E944B08D093BA00C093B800DF911B +:10111000CF910895E091640380916303E81730F460 +:10112000F0E0E650FE4F808190E008958FEF9FEF52 +:10113000089590916403809163032FEF3FEF981718 +:1011400048F4E92FF0E0E650FE4F208130E09F5F49 +:1011500090936403C901089580916303909164039F +:10116000891B990B0895CF92DF92EF92FF920F9314 +:101170001F93CF93DF937C01CB018A012091F9016A +:10118000222389F0EB016B01C40ED51ECC15DD05C1 +:1011900069F06991D701ED91FC910190F081E02D0A +:1011A000C7010995F3CF642F0E942408C801DF917D +:1011B000CF911F910F91FF90EF90DF90CF90089506 +:1011C000CF93DF931F92CDB7DEB769832091F901EA +:1011D0002223F9F020916103203258F021E030E021 +:1011E000FC013383228390E080E00F90DF91CF9168 +:1011F000089580916203E82FF0E0E752FE4F998155 +:1012000090838F5F809362038093610381E090E01D +:10121000ECCF61E0CE0101960E942408F7CFCF9277 +:10122000DF92EF92FF920F931F93CF93DF93FC0116 +:10123000C48121E02093F901C093D8011092620388 +:10124000109261038385682B82E094E00E94E0089D +:10125000D0916103D13208F092C00E94A0056B01C9 +:101260007C0180916402811165C082E080936402F8 +:1012700081E0809366028FEF809363021092880270 +:10128000D0938702A9EDB1E0E7E6F2E080E0D81361 +:1012900085C01092890280918902CC0FC82BC0931F +:1012A000890280916502813009F07CC0109265024C +:1012B0000E94A0056B017C01809189028093BB0094 +:1012C00080911B0290911C02A0911D02B0911E0200 +:1012D000892B8A2B8B2B99F00E94A00500911B0271 +:1012E00010911C0220911D0230911E026C197D0983 +:1012F0008E099F090617170728073907E0F1809123 +:10130000BC0083FDD9CF85EC8093BC000E94A00572 +:101310006B017C0180916402823009F445C08091A8 +:1013200063028F3F61F180916302803241F18091CD +:10133000630225C080911B0290911C02A0911D02A6 +:10134000B0911E02892B8A2B8B2B09F48ACF0E9425 +:10135000A00500911B0210911C0220911D023091EA +:101360001E026C197D098E099F09061717072807A9 +:10137000390708F076CF80911A020E94690810920E +:101380006203109261031092F901DF91CF911F91D6 +:101390000F91FF90EF90DF90CF9008959D919193E2 +:1013A0008F5F75CF85EEB0CF80911B0290911C02AC +:1013B000A0911D02B0911E02892B8A2B8B2B09F460 +:1013C000A9CF0E94A00500911B0210911C02209140 +:1013D0001D0230911E026C197D098E099F090617A6 +:1013E00017072807390708F095CFC5CF089590E073 +:1013F00080E00895FC01EE0FFF1FE35CFC4F2081AD +:101400003181232B39F421E030E03183208361E006 +:101410000C948F0208958F929F92AF92BF92CF92B9 +:10142000DF92EF92FF920F931F93CF93DF93CDB78D +:10143000DEB76B970FB6F894DEBF0FBECDBF8C0141 +:10144000F894CE0101967C0188E1D7011D928A951E +:10145000E9F7C8010E94FA098091FD02898F809105 +:10146000FB028A8F8091FF028B8FFE017996C70164 +:101470005E01BCE1AB0EB11CA701A1918A2E912C9B +:1014800027E030E06A01C20ED31EB401022E02C072 +:10149000759567950A94E2F76170D6016C932150B7 +:1014A000310980F7485F5F4FEA15FB0531F7980176 +:1014B000225031092630310508F0EDC00330110506 +:1014C00009F052C05B9825E50F920F900F920F9094 +:1014D0000F920F902150C1F7E8E1EE0EF11C27E0CA +:1014E00030E0FC01E20FF31F4081413009F07BC086 +:1014F0000330110509F04DC05B9A4AE10F920F903D +:101500000F920F900F920F904150C1F703301105C9 +:1015100009F054C05B9849E10F920F900F920F9021 +:101520000F920F904150C1F721503109D0F6089623 +:10153000E816F906A1F60330110509F097C05B9A89 +:1015400078946B960FB6F894DEBF0FBECDBFDF91D7 +:10155000CF911F910F91FF90EF90DF90CF90BF90B0 +:10156000AF909F908F9008950430110511F45C980E +:10157000AACF0530110511F45D98A5CF06301105ED +:1015800011F45E98A0CF0730110509F09CCF5F9849 +:101590009ACF0430110511F45C9AAFCF05301105D4 +:1015A00011F45D9AAACF0630110511F45E9AA5CF09 +:1015B0000730110509F0A1CF5F9A9FCF04301105C4 +:1015C00011F45C98A8CF0530110511F45D98A3CFF4 +:1015D0000630110511F45E989ECF0730110509F011 +:1015E0009ACF5F9898CF03301105C1F45B9A4FE012 +:1015F0000F920F900F920F900F920F904150C1F7E2 +:1016000003301105F9F45B984EE00F920F900F92A2 +:101610000F900F920F904150C1F786CF0430110503 +:1016200011F45C9AE4CF0530110511F45D9ADFCF17 +:101630000630110511F45E9ADACF07301105B9F6BC +:101640005F9AD5CF0430110511F45C98DDCF0530D9 +:10165000110511F45D98D8CF0630110511F45E988C +:10166000D3CF0730110581F65F98CECF0430110536 +:1016700011F45C9A65CF0530110511F45D9A60CFC5 +:101680000630110511F45E9A5BCF0730110509F0A1 +:1016900057CF5F9A55CF9801285031092630310530 +:1016A00008F04ECF0830110509F03FC0289825E515 +:1016B0000F920F900F920F900F920F902150C1F741 +:1016C00028E1E20EF11C27E030E0FC01E20FF31FFD +:1016D0004081413009F06BC00830110509F03BC072 +:1016E000289A4AE10F920F900F920F900F920F904D +:1016F0004150C1F70830110509F043C0289849E16D +:101700000F920F900F920F900F920F904150C1F7D0 +:1017100021503109D0F60896E816F906A1F60830EE +:10172000110509F08BC0289A0BCF0930110511F46F +:101730002998BDCF0A30110511F42A98B8CF0B3083 +:10174000110511F42B98B3CF0C30110511F42C981E +:10175000AECF2D98ACCF0930110511F4299AC1CF25 +:101760000A30110511F42A9ABCCF0B30110511F47F +:101770002B9AB7CF0C30110511F42C9AB2CF2D9AB9 +:10178000B0CF0930110511F42998B9CF0A301105ED +:1017900011F42A98B4CF0B30110511F42B98AFCF68 +:1017A0000C30110511F42C98AACF2D98A8CF083031 +:1017B0001105C1F4289A4FE00F920F900F920F90ED +:1017C0000F920F904150C1F70830110509F5289884 +:1017D0004EE00F920F900F920F900F920F9041508A +:1017E000C1F796CF0930110511F4299AE4CF0A30D8 +:1017F000110511F42A9ADFCF0B30110511F42B9A41 +:10180000DACF0C30110511F42C9AD5CF2D9AD3CF05 +:101810000930110511F42998DBCF0A30110511F4B4 +:101820002A98D6CF0B30110511F42B98D1CF0C305C +:10183000110511F42C98CCCF2D98CACF0930110581 +:1018400011F4299A7DCE0A30110511F42A9A78CE26 +:101850000B30110511F42B9A73CE0C30110511F4D5 +:101860002C9A6ECE2D9A6CCE682F85E693E00C9460 +:1018700076010F931F93CF93DF938B01D82FC92F3E +:1018800082E00E94340CC801AD2FBC2F8093D3019D +:101890009093D401A093D501B093D6010E94340C4B +:1018A000812F0E94340C8D2F0E94340C8C2FDF91DD +:1018B000CF911F910F910C94340C8FEF0E94340C38 +:1018C00085E50C94340C4F925F926F927F928F92C9 +:1018D0009F92AF92BF92CF92DF92EF92FF920F93BF +:1018E0001F93CF93DF9300D0CDB7DEB78C01498330 +:1018F0002A83660F771FF801EA5AFF4FE080F180D4 +:10190000EE0CFF1CF801CF01801B910B8E159F057B +:1019100014F41192F8CF8981F801E60FF71F818343 +:101920008A818083680184E5C80ED11C60E0F601DD +:1019300080810E9435025801F2E5AF0EB11C4801CA +:1019400080E5880E911C1E141F040CF5E1E0EE1AD0 +:10195000F108F801EE0DFF1D6080F5015080F401E3 +:10196000408088E0782E662D661F6627661F842DCE +:101970000E943502660C61E0852D0E94350260E010 +:10198000852D0E9435027A947110EDCFDCCF61E095 +:10199000F60180810F900F90DF91CF911F910F91F1 +:1019A000FF90EF90DF90CF90BF90AF909F908F907F +:1019B0007F906F905F904F900C943502242FFC0124 +:1019C000EA5AFF4F40815181141615066CF46830B5 +:1019D000710551F0FC01E60FF71F208B41E0460F27 +:1019E00070E060E00C94630C0895CF92DF92EF9268 +:1019F000FF921F93CF93DF937C016B01EB0183E098 +:101A0000CC0FDD1F8A95E1F76096CE0DDF1D11E04A +:101A1000199220E0412FB601C7010E94630C1F5F9D +:101A20001930B1F7DF91CF911F91FF90EF90DF90C8 +:101A3000CF9008958F929F92AF92BF92CF92DF92F4 +:101A4000EF92FF920F931F93CF93DF938C01D62ECB +:101A5000C72EEC01C05BDF4F688379834C0182E5C0 +:101A6000880E911CF401518340835801F4E5AF0EB8 +:101A7000B11CF501318320837801F6E5EF0EF11CEE +:101A800081E090E0F7019183808361E08D2D0E94D9 +:101A90008F0261E0F40180810E948F0261E0F50114 +:101AA00080810E948F0261E0F50180810E943502F1 +:101AB000D882C982F80170961192EC17FD07E1F700 +:101AC000D0E0C0E0F70180819181C817D90784F583 +:101AD00020E04FE0BE01C8010E94630CF701808145 +:101AE0009181C817D90734F427E04BE0BE01C80143 +:101AF0000E94630C20E049E0BE01C8010E94630C13 +:101B0000F70180819181C817D90724F4BE01C8016B +:101B10000E94F50CF70180819181C817D90734F430 +:101B200020E04CE0BE01C8010E94630C2196CACFA0 +:101B3000DF91CF911F910F91FF90EF90DF90CF90A9 +:101B4000BF90AF909F908F9008950F931F93CF9366 +:101B50008C01C62F0E940F096C2F6460C8010E947F +:101B60000F096C2F6B7FC8010E940F0983EC90E076 +:101B70000197F1F7CF911F910F9108950F931F9344 +:101B8000CF93DF938C01D62FC42F607F642B0E94EC +:101B9000A50D80E1D89FB00111246C2BC801DF9105 +:101BA000CF911F910F910C94A50D40E061E088E565 +:101BB00094E00E94BE0D8BE39FE10197F1F7089539 +:101BC000CF93DF9310926403109263031092620329 +:101BD000109261030E944B088EE890E0909360039E +:101BE00080935F038FE890E090935E0380935D03A2 +:101BF00010925D0480916204823018F098E0909316 +:101C00005D048093600462E370E080E090E00E94F5 +:101C100098066091630488E594E00E940F0968EEDD +:101C200073E080E090E00E94980660E388E594E02D +:101C30000E94A50DCBE4D6E4CE010197F1F760E355 +:101C400088E594E00E94A50D2197F1F760E388E50F +:101C500094E00E94A50D83E592E00197F1F760E220 +:101C600088E594E00E94A50D60915D04606240E00B +:101C700088E594E00E94BE0D84E080935E0440E01D +:101C80006CE088E594E00E94BE0D0E94D50D82E0D4 +:101C900080935F0440E066E088E594E00E94BE0D1A +:101CA00040E062E088E594E00E94BE0D8BE39FE196 +:101CB0000197F1F7DF91CF9108950E94E00D88E040 +:101CC0008093630460E088E594E00E940F090C941F +:101CD000D50D41E00E94BE0D81E090E0089542E004 +:101CE00050E063EC71E085E693E00C94D6008FEF52 +:101CF0000E94340C85E50E94340C0C946F0E8F9278 +:101D00009F92AF92BF92CF92DF92EF92FF920F938A +:101D10001F93CF93DF93C091F202D091F302CE01D3 +:101D20009927FC01E155FF4F1491FC01E556FF4F47 +:101D3000E491F0E0EE0FFF1FE957FF4FE590F490BC +:101D40001092CE011092CF011092D0011092D101C9 +:101D50001092D20161E08C2F0E948F0260E08C2FE4 +:101D60000E94350262E170E080E090E00E949806F7 +:101D700061E08C2F0E9435028BE990E00197F1F72A +:101D800060E08C2F0E948F0280E991E0F7012081B2 +:101D90002123B9F40197D1F780E090ECA9E7B4ECE6 +:101DA0008093C6019093C701A093C801B093C90165 +:101DB0008093CA019093CB01A093CC01B093CD0145 +:101DC00062C080E991E0F7012081212319F0019799 +:101DD000D1F7E2CF88E2D82E00E8C12C80E991E06B +:101DE000F7012081212319F40197D1F7D5CF0E9463 +:101DF000A0054B015C0180E991E0F70120812123DE +:101E000019F00197D1F7C8CF0E94A0056819790988 +:101E10008A099B09693271058105910538F0EC2D1D +:101E2000F0E0EA53FE4F8085802B8087069511F401 +:101E3000C39400E8DA94D110D1CF61E08C2F0E94D6 +:101E40008F0261E08C2F0E9435026091CE0170E01C +:101E500090E080E00E94D31E6093C6017093C7019A +:101E60008093C8019093C9016091D00170E090E027 +:101E700080E00E94D31E6093CA017093CB018093CF +:101E8000CC019093CD018090CA019090CB01A0909D +:101E9000CC01B090CD01C090C601D090C701E090B8 +:101EA000C801F090C90162E370E080E090E00E9418 +:101EB000980680913903882359F00E945D0CC50172 +:101EC000B4010E94390C83E10E94340C0E946F0E11 +:101ED00080913A038823B9F00E945D0CC701B601D6 +:101EE0000E94390C82E10E94340CDF91CF911F9146 +:101EF0000F91FF90EF90DF90CF90BF90AF909F90A9 +:101F00008F900C946F0EDF91CF911F910F91FF90E6 +:101F1000EF90DF90CF90BF90AF909F908F900895FB +:101F2000CF92DF92EF92FF920F931F93CF93DF93A5 +:101F3000EC016B01F42EE52E198218861F86188A93 +:101F4000198A1A8A81E08E878B871C8692E09D878A +:101F500088838B01000F111F060F171F1D830C8331 +:101F6000C8010E94D3219A878987009789F1A80127 +:101F700070E060E00E94BE23DB82CA82FE82EF82B4 +:101F80008981882341F061E08F2D0E948F0260E0FB +:101F90008F2D0E9435028F2D9E2DFC01E556FF4F9F +:101FA000E491F0E0EE0FFF1FEF56FF4F25913491C3 +:101FB0003C8B2B8BFC01E155FF4FE491ED8BDF91C6 +:101FC000CF911F910F91FF90EF90DF90CF900895E8 +:101FD0001D821C821B821A82D1CFFC0180819181DB +:101FE000009711F00C946F2208950F931F93CF93D5 +:101FF000DF93EC0188819981009759F02A813B8118 +:102000002617370730F081E0DF91CF911F910F91B4 +:1020100008958B016F5F7F4F0E94F822009759F05F +:10202000998388831B830A832C813D81232B59F755 +:10203000FC011082E8CF80E0E7CFEF92FF920F9390 +:102040001F93CF93DF93EC017B018A01BA010E94B9 +:10205000F50F28813981811114C02115310519F03E +:10206000C9010E946F22198218821D821C821B8264 +:102070001A82CE01DF91CF911F910F91FF90EF90C7 +:1020800008951D830C83B701C9010E94C523F1CFB8 +:1020900050E040E065EC71E083E394E00C941D10A7 +:1020A00085ED8093BC0080911B0290911C02A09151 +:1020B0001D02B0911E020796A11DB11D23E0B69529 +:1020C000A795979587952A95D1F72091BC0024FD77 +:1020D00003C010926402089540911B0250911C02AB +:1020E00060911D0270911E02452B462B472B69F310 +:1020F0000097A105B10541F025E32A95F1F700000D +:102100000197A109B109E1CF80911A020C946908E5 +:102110001F920F920FB60F9211242F933F934F935C +:102120005F936F937F938F939F93AF93BF93EF933F +:10213000FF938091DC029091DD02A091DE02B091CC +:10214000DF02892B8A2B8B2BD1F19091DB02E0915E +:10215000D902F091DA028081892780838091DC02A4 +:102160009091DD02A091DE02B091DF0218161906EF +:102170001A061B069CF48091DC029091DD02A0916E +:10218000DE02B091DF020197A109B1098093DC0260 +:102190009093DD02A093DE02B093DF02FF91EF91F6 +:1021A000BF91AF919F918F917F916F915F914F916F +:1021B0003F912F910F900FBE0F901F901895809117 +:1021C00000010E946302EACF1F920F920FB60F9296 +:1021D00011242F933F934F935F936F937F938F932C +:1021E0009F93AF93BF93EF93FF9385E693E00E9495 +:1021F0005401FF91EF91BF91AF919F918F917F918A +:102200006F915F914F913F912F910F900FBE0F9063 +:102210001F9018951F920F920FB60F9211242F93B3 +:102220008F939F93EF93FF93E0917503F091760363 +:102230008081E0917B03F0917C0382FD1BC0908143 +:1022400080917E038F5F8F7320917F03821741F00F +:10225000E0917E03F0E0EB59FC4F958F80937E0375 +:10226000FF91EF919F918F912F910F900FBE0F9043 +:102270001F9018958081F4CF1F920F920FB60F9286 +:1022800011242F933F938F939F93AF93BF9380918C +:10229000300390913103A0913203B0913303309118 +:1022A000CA0223E0230F2D3758F50196A11DB11D59 +:1022B0002093CA028093300390933103A09332039A +:1022C000B09333038091CB029091CC02A091CD02C8 +:1022D000B091CE020196A11DB11D8093CB029093C7 +:1022E000CC02A093CD02B093CE02BF91AF919F914B +:1022F0008F913F912F910F900FBE0F901F901895C7 +:1023000026E8230F0296A11DB11DD2CF1F920F9276 +:102310000FB60F9211242F933F934F935F936F93B8 +:102320007F938F939F93AF93BF93EF93FF93E0912E +:102330005B03F0915C03309749F0A685B7858585EE +:10234000968D91FF14C09C918923A1F4FF91EF9188 +:10235000BF91AF919F918F917F916F915F914F91BD +:102360003F912F910F900FBE0F901F9018959C9149 +:10237000892361F7A389B4899C91858980958923F4 +:102380008C93868997890197F1F7608D718DA68569 +:10239000B785558538E020E0CB010197F1F7822F12 +:1023A00090E095958795282F4C91452309F020685A +:1023B000315091F7868D81FD209580915A0390E0F0 +:1023C00001968F73992730915903381799F0A0918E +:1023D0005A03B0E0A657BD4F2C9380935A03828DC9 +:1023E000938D0197F1F7A389B4898C919589892BF5 +:1023F0008C93ACCF868D8160868FF1CF1F920F9228 +:102400000FB60F9211242F933F934F935F936F93C7 +:102410007F938F939F93AF93BF93EF93FF9380919D +:10242000B900887F803609F44AC0F0F5883209F493 +:10243000A7C018F5803109F49BC0B8F4882309F4CB +:10244000F9C0883009F494C0FF91EF91BF91AF912A +:102450009F918F917F916F915F914F913F912F91BC +:102460000F900FBE0F901F901895883109F488C007 +:10247000803251F78093630214C0803409F49DC008 +:1024800040F48033B9F38833F9F68093630285EC26 +:10249000B0C0803509F485C0883509F496C0883409 +:1024A00099F60E945010D0CF883909F48CC038F5C5 +:1024B000883729F050F4883611F0803729F683E008 +:1024C000809364021092620257C0883809F47BC07E +:1024D000803919F0803809F0B7CF809162028032DC +:1024E00008F071C0E091620281E08E0F8093620279 +:1024F0008091BB00F0E0EE5BFD4F80833DC0803BF0 +:1025000039F0E0F4803A09F479C0883A09F09CCFB8 +:1025100084E0809364021092410210924002E091A4 +:102520005F03F091600309958091400281110FC013 +:1025300081E0809340021092200209C0803C09F49F +:10254000A6CF883C09F4A3CF883B09F07DCFE0916A +:10255000410281E08E0F80934102F0E0E05EFD4F8A +:1025600080818093BB00909141028091400229C0FC +:10257000809189028093BB0085EC8093BC0064CF7E +:102580009091880280918702981758F5E09188020F +:1025900081E08E0F80938802F0E0E959FD4F808141 +:1025A000E9CFE091880281E08E0F809388028091CC +:1025B000BB00F0E0E959FD4F808390918802809143 +:1025C00087029817C8F285E8D8CFE091880281E0A9 +:1025D0008E0F809388028091BB00F0E0E959FD4F97 +:1025E00080838091660281115CCF81E080936502D7 +:1025F00084EA8093BC001092640226CF85EC80931D +:10260000BC001092640280916202803230F4E0914A +:102610006202F0E0EE5BFD4F10826091620270E0BA +:10262000E0915D03F0915E0382E492E009951092DF +:1026300062020ACF1092630234CF1F920F920FB63C +:102640000F9211242F933F934F935F936F937F9338 +:102650008F939F93AF93BF93CF93DF93EF93FF93AA +:102660008091D701C0913204D0E087FF24C010923E +:102670008500109284008091D7018F5F8093D701ED +:102680008091D701082E000C990B8C179D0724F41C +:102690008091D7018C30C4F18091840090918500A5 +:1026A000049680349C4908F47AC08091840090910B +:1026B0008500049676C08091D701082E000C990BF6 +:1026C0008C179D07C4F6E091D7018E2FEE0F990B62 +:1026D000FC01EE0FFF1FE80FF91FE25FFB4F808147 +:1026E00086FFC9CFE091D7018E2FEE0F990BFC0129 +:1026F000EE0FFF1FE80FF91FE25FFB4F808160E0E4 +:102700008F730E943502B7CF2091840030918500ED +:10271000E091D7018E2FEE0F990BFC01EE0FFF1FFA +:10272000E80FF91FE25FFB4F81819281820F931FB7 +:102730009093890080938800E091D7018E2FEE0F4F +:10274000990BFC01EE0FFF1FE80FF91FE25FFB4F33 +:10275000808186FF11C0E091D7018E2FEE0F990B7B +:10276000FC01EE0FFF1FE80FF91FE25FFB4F8081B6 +:1027700061E08F730E943502FF91EF91DF91CF915D +:10278000BF91AF919F918F917F916F915F914F9189 +:102790003F912F910F900FBE0F901F90189580E4DE +:1027A0009CE990938900809388008FEF8093D701F4 +:1027B000E3CFCF92DF92EF92FF920F931F93E82F18 +:1027C000F92F05C0015011092109310961F19081EA +:1027D00096239417B9F305C0015011092109310955 +:1027E00011F1908196239413F7CFC12CD12CE12CB9 +:1027F000F12C0AC08FEFC81AD80AE80AF80A0C159B +:102800001D052E053F0579F080818623841791F3FD +:102810006C2D7D2D8E2D9F2D1F910F91FF90EF9090 +:10282000DF90CF90089560E070E080E090E01F912D +:102830000F91FF90EF90DF90CF9008951092680372 +:102840001092670388EE93E0A0E0B0E08093690304 +:1028500090936A03A0936B03B0936C0325E831E077 +:10286000309366032093650325EC30E030937203C8 +:102870002093710324EC30E03093740320937303AE +:1028800020EC30E0309376032093750321EC30E0A8 +:10289000309378032093770322EC30E030937A036F +:1028A0002093790326EC30E030937C0320937B0364 +:1028B00010927E0310927F03109280031092810386 +:1028C0001092050410920404809306049093070468 +:1028D000A0930804B093090487E991E0909303045E +:1028E00080930204EDE7F4E02FEF48EB5BE080918A +:1028F00032048C3008F0CAC091E0980F90933204F3 +:10290000808390E0DC01AA0FBB1FA80FB91FA25F54 +:10291000BB4F12965C934E931197339684E0E53942 +:10292000F80729F7809132048C3008F0B1C091E0AB +:10293000980F9093320480937A0490E0FC01EE0F9C +:10294000FF1FE80FF91FE25FFB4F88EB9BE09283CC +:10295000818347E050E060E470E084E694E00E9408 +:10296000900F10925B0410925A048BEB91E09093BD +:1029700059048093580487E280935C0480E180933B +:10298000610482E0809362041092630410923C041C +:1029900010923B0488EE93E0A0E0B0E080933D0409 +:1029A00090933E04A0933F04B093400489EA91E0E1 +:1029B00090933A04809339041092500410924F047B +:1029C0001092520410925104109254041092530425 +:1029D0001092560410925504609157046E7F6D7FDB +:1029E000609357046695617081E0682783E00E94D8 +:1029F000350261E083E00E948F02E2EBF0E0E491B7 +:102A0000E0934904EEE9F0E0E491F0E0EE0FFF1FFF +:102A1000EF56FF4F8591949190934B0480934A0415 +:102A200060E082E00E948F028091570481FD04C023 +:102A300061E082E00E94350282E080934504E1EB90 +:102A4000F0E0E491E0934604EDE9F0E0E491F0E099 +:102A5000EE0FFF1FE957FF4F859194919093480423 +:102A60008093470410923404109233041092360479 +:102A700010923504109238041092370450E040E070 +:102A800065EC71E083E394E00C941D10208345CF46 +:102A90008FEF80937A045DCFCF93DF93CDB7DEB70E +:102AA000AA970FB6F894DEBF0FBECDBF789484B559 +:102AB000826084BD84B5816084BD85B5826085BD3A +:102AC00085B5816085BD80916E00816080936E00C8 +:102AD00010928100809181008260809381008091BA +:102AE000810081608093810080918000816080936B +:102AF00080008091B10084608093B1008091B0002B +:102B000081608093B00080917A00846080937A0025 +:102B100080917A00826080937A0080917A0081604F +:102B200080937A0080917A00806880937A00109276 +:102B3000C100E0917503F091760382E08083E0911B +:102B40007103F09172031082E0917303F0917403AA +:102B500080E1808310927D03E0917903F0917A0304 +:102B600086E08083E0917703F09178038081806133 +:102B70008083E0917703F09178038081886080837F +:102B8000E0917703F0917803808180688083E09101 +:102B90007703F091780380818F7D80830E948F0777 +:102BA00012E061E0812F0E948F0260E0812F0E947D +:102BB00035021F5F1E30A9F70E94CB020E94C50597 +:102BC0000E945D0E68EC70E080E090E00E94980644 +:102BD000CE01429698A78FA377247394222423943E +:102BE000312C85E693E00E943401892B09F495C6C7 +:102BF00085E693E00E9434011816190694F785E6DD +:102C000093E00E94120190912B03853581F591117B +:102C10002EC080912A038F3F21F470922903709275 +:102C20002B03809129038F5F8433C0F580932903A0 +:102C300080912B038823A9F2809128038111D1CFA1 +:102C400080912903843068F210922B03E091F902FD +:102C5000D090FA020D2D10E02091F802223009F4F4 +:102C6000EBC00CF5213039F110922903BACF8093D3 +:102C70002A039923B1F2E0912903E23039F48093D9 +:102C80002803F0E0EC50FD4F8083CBCFE330C8F356 +:102C900090912803915090932803F3CF1092290329 +:102CA00010922B03C5CF233009F478C52430E1F608 +:102CB0000E94770ED9CFEA3371F510930E0100937D +:102CC0000D01F801EE0FFF1FE35CFC4F3182208203 +:102CD00020933C0380910B0190910C010817190778 +:102CE00041F08091090190910A010817190709F034 +:102CF00082C010923B0310922C0310922D0310926D +:102D00002E0310922F03000F111FF801E35CFC4FFC +:102D100011821082A9CFE730F1F5F090FB028F2DE0 +:102D200090E030913B03311127C020933B03109377 +:102D30000C0100930B0190930A0180930901000F8D +:102D4000111FF801E35CFC4F31822082880F991F2C +:102D5000FC01E35CFC4F3182208261E08D2D0E94FA +:102D60008F0260E08F2D0E948F0262E370E080E0AE +:102D700090E00E94980678CF20910B0130910C01D1 +:102D800002171307A1F62091090130910A012817B3 +:102D9000390769F669CFF0E0E231F10571F420936B +:102DA0003A031093F3020093F202000F111FF8018F +:102DB000E35CFC4F3182208257CFE331F10519F4F7 +:102DC00070923903EECFE930F10569F40E948F0764 +:102DD00060E082E00E948F0280913803811144CF2D +:102DE0007092380341CF3A9709F074CF0E948F0751 +:102DF00061E083E0EFCF0230110569F489E394E0EC +:102E00000E947907109238030E94481010924203E2 +:102E10001092410329CF0330110509F074CF89E3E3 +:102E200094E00E947907109238030E944810109293 +:102E300044031092430318CF80910B0190910C0131 +:102E40000817190739F08091090190910A010817B4 +:102E5000190751F410923B0310922C0310922D038A +:102E600010922E0310922F03E150EB3308F020CF85 +:102E70000E2E000CFF0BE15CF84E0C94CD21B11727 +:102E80005816CA178C19D417581658168E1B581670 +:102E90005816581658169A1BB61B58165816581618 +:102EA00058165816FA172918681874188818991897 +:102EB000D318DB182F19AF185816581658167A174A +:102EC000581658165816581658169918581658164F +:102ED0005816581658165816581658165816581682 +:102EE0005816581658165816581658165816581672 +:102EF0005816BA170E94E00D0E94D50D88E590E0A3 +:102F00000E94D3218C01209107013091080140914A +:102F100005015091060160910301709104010E9426 +:102F20001A0DF801EA5AFF4F80819181181619068F +:102F30002CF470E060E0C8010E94F50CC8010E940A +:102F40006F2210E000E020E040E060E0C8010E9455 +:102F500090000F5F1F4F00341105A9F70E94C505AF +:102F6000A7CEC8010E94FA096091FB028D2D0E9434 +:102F700035029ECEC8010E94FA098091FB0220E032 +:102F800030E0A9016DE47AE0811130C08D2D0E94FE +:102F900063028ECEC8010E94FA096091FB0270E0C4 +:102FA0008D2D0E94430584CEC8010E94FA098091AC +:102FB000FB028093E0028091FC028093E102609129 +:102FC000E0027091E1028091FD028093E002809125 +:102FD000FE028093E1022091E0023091E10212169C +:102FE0001306A4F6032E000C440B550B8D2D0E94E6 +:102FF000DD025ECEC8010E94FA096091FB0270E01A +:10300000A801CE0101960E94900F86E1FE01319643 +:10301000A4E6B4E001900D928A95E1F78A859B853C +:103020000E946F228F81988597FD03C060E00E9407 +:103030008F020E94CB0210E000E020E040E060E060 +:10304000C8010E9490000F5F1F4F00341105A9F7BF +:1030500085CF8091FB02FF24F394F80E20916C043D +:10306000F21609F425CE00916D0410916E042150E2 +:1030700070E060E061F08F3FF1F430E050E040E05C +:103080006FEF7FEF80E090E00E94F21FB901F8013E +:103090004091680450916904CF01801B910B841703 +:1030A000950798F44081469FC001479F900D1124D9 +:1030B00090833196EDCF8F2D90E0982F8827019740 +:1030C000622F70E00E94A521E2CFF0926C04F0CD57 +:1030D0008091FB02209101034091FF026091FD026B +:1030E00090E00E9490003ACFF090FB02E090FD0249 +:1030F000D090FF0210E000E02D2D4E2D6F2DC80165 +:103100000E9490000F5F1F4F00341105A9F726CFD2 +:10311000C8010E94FA0910E000E020E040E060E011 +:10312000C8010E9490000F5F1F4F00341105A9F7DE +:1031300015CF8091FB0290E09093040180930301EE +:103140008091FD0290E090930601809305018091AB +:10315000FF0290E09093080180930701A9CD88E5D4 +:1031600090E00E94D3218C01209107013091080149 +:103170004091050150910601609103017091040195 +:103180000E941A0DF801EA5AFF4F808191811816AA +:1031900019062CF470E060E0C8010E94F50CC8012B +:1031A0000E946F2285CD8091FB0290E090930201F6 +:1031B000809301017DCD88E590E00E94D3218C01B0 +:1031C00020910701309108014091050150910601BD +:1031D00060910301709104010E941A0D780196E537 +:1031E000E90EF11CF70180819181181619063CF453 +:1031F00021E04CE070E060E0C8010E94630C209187 +:10320000010130910201F7018081918118161906A0 +:103210004CF42031310530F44AE070E060E0C80140 +:103220000E94630C88E0E5E1F1E0DE011196019077 +:103230000D928A95E1F7CE0101967C01D12CC12C2B +:10324000F70141917F01B601C8010E94DE0CFFEF3A +:10325000CF1ADF0A28E0C216D10491F7A0CF88E583 +:1032600090E00E94D3217C01209107013091080158 +:103270004091050150910601609103017091040194 +:103280000E941A0D570186E5A80EB11CF501808138 +:103290009181181619063CF421E04CE070E060E0E2 +:1032A000C7010E94630C2091010130910201F501D8 +:1032B00080819181181619064CF42031310530F4C3 +:1032C0004AE070E060E0C7010E94630C2091FB02BD +:1032D000822F90E0213009F0F9C088E0EDE1F1E0C3 +:1032E000DE01119601900D928A95E1F7CE010196CB +:1032F0004C01B12CA12CF40141914F01B501C70142 +:103300000E94DE0CFFEFAF1ABF0A28E0A216B1043C +:1033100091F7C7010E946F22C8010E94FA09C0906C +:10332000FB0284EB8C1508F4C3CCE2EEF2E090E0F3 +:1033300080E0219131910217130751F0232B09F0FE +:10334000E5C1FC01EE0FFF1FEE51FD4F118300831D +:10335000FC01EE0FFF1FE80FF91FE358FB4F8081C0 +:103360002181928180937A0420937B0490937C0442 +:103370008C3008F054C061E08D2D0E948F02809146 +:103380007A04282F30E0F901EE0FFF1FE20FF31F40 +:10339000E25FFB4F9D2D9F73D0802D2D207CD22E80 +:1033A000D92AD08210927B0410927C046CE00E9497 +:1033B0009921869FA001112430E020E0BA01620F1C +:1033C000731FFB01EE0FFF1FE60FF71FE25FFB4FBE +:1033D000908196FD16C02F5F3F4F2C30310571F75D +:1033E00081110FC01092800082E0809381001092C2 +:1033F000850010928400B19A80916F008260809362 +:103400006F00E0917A048E2F90E0FC01EE0FFF1F19 +:10341000E80FF91FE25FFB4F808180648083D090CA +:103420007A0480917C04E8E5EE2EE2E0FE2EE81AB4 +:10343000F10887FDF394EE0CFF1CEE0CFF1C80914D +:103440007B0408E810E0081B110987FD1395000FA5 +:10345000111F000F111F4801012E000CAA08BB0804 +:1034600097010F2C000C440B550B281939094A09F8 +:103470005B09AC2DB0E00E94112024EB30E040E06D +:1034800050E00E94F21F820E931EA41EB51EEBE0B8 +:10349000ED1508F40DCC801691062CF087018E14E2 +:1034A0009F040CF4840102501109000F111F2FB763 +:1034B000F8948D2D90E0FC01EE0FFF1FE80FF91F2F +:1034C000E25FFB4F128301832FBFF2CB8230910565 +:1034D000E9F488E0E5E2F1E0DE01119601900D9259 +:1034E0008A95E1F7CE0101964C01B12CA12CF40193 +:1034F00041914F01B501C7010E94DE0CFFEFAF1AE9 +:10350000BF0A28E0A216B10491F703CF83309105DA +:10351000E9F488E0EDE2F1E0DE01119601900D9210 +:103520008A95E1F7CE0101964C01B12CA12CF40152 +:1035300041914F01B501C7010E94DE0CFFEFAF1AA8 +:10354000BF0A28E0A216B10491F7E3CE84309105BA +:10355000E9F488E0E5E3F1E0DE01119601900D92D7 +:103560008A95E1F7CE0101964C01B12CA12CF40112 +:1035700041914F01B501C7010E94DE0CFFEFAF1A68 +:10358000BF0A28E0A216B10491F7C3CE8530910599 +:10359000E9F488E0EDE3F1E0DE01119601900D928F +:1035A0008A95E1F7CE0101964C01B12CA12CF401D2 +:1035B00041914F01B501C7010E94DE0CFFEFAF1A28 +:1035C000BF0A28E0A216B10491F7A3CE8630910578 +:1035D000E9F488E0E5E4F1E0DE01119601900D9256 +:1035E0008A95E1F7CE0101964C01B12CA12CF40192 +:1035F00041914F01B501C7010E94DE0CFFEFAF1AE8 +:10360000BF0A28E0A216B10491F783CE8730910556 +:10361000E9F488E0EDE4F1E0DE01119601900D920D +:103620008A95E1F7CE0101964C01B12CA12CF40151 +:1036300041914F01B501C7010E94DE0CFFEFAF1AA7 +:10364000BF0A28E0A216B10491F763CE8830910535 +:10365000E9F488E0E5E5F1E0DE01119601900D92D4 +:103660008A95E1F7CE0101964C01B12CA12CF40111 +:1036700041914F01B501C7010E94DE0CFFEFAF1A67 +:10368000BF0A28E0A216B10491F743CE8930910514 +:10369000E9F488E0EDE5F1E0DE01119601900D928C +:1036A0008A95E1F7CE0101964C01B12CA12CF401D1 +:1036B00041914F01B501C7010E94DE0CFFEFAF1A27 +:1036C000BF0A28E0A216B10491F723CE0A9709F0A9 +:1036D00020CE88E0E5E6F1E0DE01119601900D9242 +:1036E0008A95E1F7CE0101964C01B12CA12CF40191 +:1036F00041914F01B501C7010E94DE0CFFEFAF1AE7 +:10370000BF0A28E0A216B10491F703CE01968830D3 +:10371000910509F00ECE90E080E01ACE8FB7F894B4 +:103720004091300350913103609132037091330323 +:103730008FBFBECAC8010E940B0A6AE070E080E039 +:1037400090E00E949806C8010E940B0A6AE070E0AF +:1037500080E090E00E949806C8010E940B0A6AE08F +:1037600070E080E090E00E949806A2CAE090FB0220 +:10377000F090FD02D090FF020091010310E08E2D29 +:1037800090E00E94FA098F2D90E00E94FA096D2DB9 +:103790008E2D0E943502B8018F2D03CCEB3091F1B4 +:1037A00034F4EA3009F49DC00E94770E81CAEC30EF +:1037B00031F1E131C9F78091FF029091FD02209132 +:1037C000FB0210925B0410925A04211114C0F7E21C +:1037D000F0935C0410925D0410925E0410925F04FA +:1037E00010926004909361048093620410926304C9 +:1037F0000E945D0ED9CF2FE320935C04EBCF0E9493 +:10380000D50DD2CFB090FB02A090FD020091FF0237 +:1038100010E01AA219A21CA21BA21EA21DA250E017 +:1038200040E065EC71E0CE0181960E941D1051E0F0 +:10383000C52E53E0D52E035F1F4FC601845F924013 +:1038400080179107FCF4F60181916F0189831A8238 +:10385000EDA0FEA0FFEFEF1AFF0AB701CE0181969F +:103860000E94F50F882349F329A13AA18DA19EA1B9 +:10387000BE016F5F7F4F820F931F0E94C523FEA280 +:10388000EDA2DBCF88E0EDE6F1E0DE0111960190DC +:103890000D928A95E1F7809160048B1518F4BB2492 +:1038A000BA94B80EEB2DF0E0EE0FFF1F81E090E030 +:1038B0008C0F9D1FE80FF91F60816A0D606840E062 +:1038C00088E594E00E94BE0D4DA15EA169A17AA198 +:1038D00088E594E00E94D600CE0181960E94ED0F0B +:1038E00063CFA4EFB2E0FE013196BF0117968C9131 +:1038F0001797819312968FA198A58E179F07B1F7FE +:10390000FB0101900020E9F73197AF01461B570BEF +:1039100089E394E00E94D60047CF89E394E00E94B7 +:1039200040077C01892B71F189E394E00E944007F4 +:103930001816190694F789E394E00E9458078983C2 +:103940001A8200913704109138040F5F1F4FB8019D +:1039500083E394E00E94F50F8823F9F22091330469 +:10396000309134048091370490913804BE016F5F28 +:103970007F4F820F931F0E94C5231093380400933A +:103980003704CBCF6FE070E080E090E00E949806B3 +:1039900001E413E032E0D32EF801819191918F017F +:1039A000892BD9F460E08D2D0E948F020E945D0C5E +:1039B0008D2D0E940C02BC01990F880B990B0E945F +:1039C000D51E0E94390C8D2D0E94340C81E00E947E +:1039D000340C0E946F0E0E94770ED394FEE0DF122B +:1039E000DBCF25E7A22E21E0B22E10E0F501819178 +:1039F00091915F01892B09F067C094E1C92ED12C08 +:103A000022242394F12FF064FAA72AA520937C00A6 +:103A100080917A00806480937A0080917A0086FD9C +:103A2000FCCF8091780060917900762F682F072E67 +:103A3000000C880B990B0E94D51E762E872E982E8F +:103A4000092F222021F0662E79A7482E592E2DEC21 +:103A50003CEC4CEC5DE3662D79A5C2010E94341F5D +:103A60001B012C0126E636E646E65FE3672D782D3E +:103A7000892D902F0E94341F9B01AC01C201B1011E +:103A80000E948520662E79A72C0181E0C81AD108F2 +:103A9000212C09F0BACF0E945D0C662D79A5C201D8 +:103AA0000E946321072E000C880B990B0E94D51EE3 +:103AB0000E94390C812F0E94340C82E00E94340C49 +:103AC0000E946F0E0E94770E1F5F163009F08ECF96 +:103AD00080913C038823E9F010910D0162E0812F71 +:103AE0000E948F020E945D0C812F0E940C02BC017B +:103AF000990F880B990B0E94D51E0E94390C812FBB +:103B00000E94340C8AE30E94340C0E946F0E0E94C3 +:103B1000770E80913B03882309F46FC010910B014D +:103B200060E0812F0E94350283E090E00197F1F779 +:103B300061E0812F0E94350283E290E00197F1F766 +:103B400060E0812F0E9435028091090190910A0165 +:103B50009927FC01E155FF4F6491FC01E556FF4FA9 +:103B6000E491F0E0EE0FFF1FE957FF4F859194912C +:103B700000E315E720E030E0462F0E94D9136115DD +:103B800071058105910529F06F5F7F4F8F4F9F4F22 +:103B90009F700E94D31E20E030E048EE51E40E9466 +:103BA000F12020E030E040E05FE30E94341F4B0151 +:103BB0005C0120E030E0A9010E94CE1E811185C089 +:103BC00080902C0390902D03A0902E03B0902F0393 +:103BD0000E945D0CC501B4010E94390C80910B015B +:103BE0000E94340C809109010E94340C87E00E94ED +:103BF000340C0E946F0E0E94770E80913A03882346 +:103C000021F00E947F0E0E94770E80913903882355 +:103C100021F00E947F0E0E94770E80913803882346 +:103C200009F482C02FB7F89480913003909131034A +:103C3000A0913203B09133032FBF409134035091D0 +:103C400035036091360370913703841B950BA60BE7 +:103C5000B70B8C329140A105B10508F065C00E94F8 +:103C60005D0C1A8219821C821B821E821D82609149 +:103C70003304709134046115710541F040913704AB +:103C800050913804CE0101960E941D10DD800D2D4B +:103C90001E8184E00E94340C8D2D0E94340CE016AD +:103CA000F106F4F48D819E81E816F906B8F4898155 +:103CB0009A81009799F08E0D9F1DFC0180810E94D2 +:103CC000340CFFEFEF1AFF0AEACF80922C03909298 +:103CD0002D03A0922E03B0922F037ACF80E0EFCF76 +:103CE000CE0101960E94ED0F82E00E94340C89E023 +:103CF0000E94340C0E946F0E0E94770E6AE070E002 +:103D000080E090E00E94980680E090E0892B11F41A +:103D10000C94EC150E944001882311F40C94EC15CE +:103D20000E9400000C94EC1550E040E065EC71E05E +:103D300083E394E00E941D102FB7F8948091300324 +:103D400090913103A0913203B09133032FBF809340 +:103D5000340390933503A0933603B0933703CECF4B +:103D600083E394E00E94ED0F89EA91E090933A0496 +:103D70008093390489E394E00E94790780916D046F +:103D800090916E040E946F2280916A0490916B045E +:103D900097FD03C060E00C948F0208950E94101FED +:103DA00008F481E00895E89409C097FB3EF49095EB +:103DB0008095709561957F4F8F4F9F4F9923A9F004 +:103DC000F92F96E9BB279395F69587957795679593 +:103DD000B795F111F8CFFAF4BB0F11F460FF1BC0D7 +:103DE0006F5F7F4F8F4F9F4F16C0882311F096E96A +:103DF00011C0772321F09EE8872F762F05C0662318 +:103E000071F096E8862F70E060E02AF09A95660FD0 +:103E1000771F881FDAF7880F9695879597F9089589 +:103E2000990F0008550FAA0BE0E8FEEF16161706CB +:103E3000E807F907C0F012161306E407F50798F033 +:103E4000621B730B840B950B39F40A2661F0232B4C +:103E5000242B252B21F408950A2609F4A140A695C8 +:103E60008FEF811D811D08950E94471F0C94B81F7C +:103E70000E94AA1F38F00E94B11F20F0952311F074 +:103E80000C94A11F0C94A71F11240C94EC1F0E94EA +:103E9000C91F70F3959FC1F3950F50E0551F629FA6 +:103EA000F001729FBB27F00DB11D639FAA27F00D93 +:103EB000B11DAA1F649F6627B00DA11D661F829FBA +:103EC0002227B00DA11D621F739FB00DA11D621F9F +:103ED000839FA00D611D221F749F3327A00D611DBC +:103EE000231F849F600D211D822F762F6A2F11249E +:103EF0009F5750409AF0F1F088234AF0EE0FFF1FD1 +:103F0000BB1F661F771F881F91505040A9F79E3F27 +:103F1000510580F00C94A11F0C94EC1F5F3FE4F35B +:103F2000983ED4F3869577956795B795F795E7957D +:103F30009F5FC1F7FE2B880F911D9695879597F986 +:103F4000089597F99F6780E870E060E008959FEF1B +:103F500080EC089500240A94161617061806090620 +:103F6000089500240A9412161306140605060895EF +:103F7000092E0394000C11F4882352F0BB0F40F477 +:103F8000BF2B11F460FF04C06F5F7F4F8F4F9F4FB7 +:103F9000089557FD9058440F551F59F05F3F71F039 +:103FA0004795880F97FB991F61F09F3F79F08795A0 +:103FB0000895121613061406551FF2CF4695F1DF29 +:103FC00008C0161617061806991FF1CF86957105B9 +:103FD000610508940895E894BB2766277727CB01ED +:103FE00097F90895052E97FB1EF400940E9409206E +:103FF00057FD07D00E94532007FC03D04EF40C94C9 +:10400000092050954095309521953F4F4F4F5F4F78 +:10401000089590958095709561957F4F8F4F9F4F34 +:1040200008950E947520A59F900DB49F900DA49FA8 +:10403000800D911D112408952F923F924F925F920F +:104040006F927F928F929F92AF92BF92CF92DF92A8 +:10405000EF92FF920F931F93CF93DF93CDB7DEB70D +:10406000CA1BDB0B0FB6F894DEBF0FBECDBF0994A1 +:104070002A88398848885F846E847D848C849B84F8 +:10408000AA84B984C884DF80EE80FD800C811B8106 +:10409000AA81B981CE0FD11D0FB6F894DEBF0FBE35 +:1040A000CDBFED010895A1E21A2EAA1BBB1BFD0195 +:1040B0000DC0AA1FBB1FEE1FFF1FA217B307E40707 +:1040C000F50720F0A21BB30BE40BF50B661F771F5F +:1040D000881F991F1A9469F760957095809590953F +:1040E0009B01AC01BD01CF010895A29FB001B39F18 +:1040F000C001A39F700D811D1124911DB29F700DF1 +:10410000811D1124911D08955058BB27AA270E9494 +:104110009C200C94B81F0E94AA1F38F00E94B11F67 +:1041200020F039F49F3F19F426F40C94A71F0EF4E5 +:10413000E095E7FB0C94A11FE92F0E94C91F58F3DB +:10414000BA17620773078407950720F079F4A6F57C +:104150000C94EB1F0EF4E0950B2EBA2FA02D0B0143 +:10416000B90190010C01CA01A0011124FF27591BBC +:1041700099F0593F50F4503E68F11A16F040A22FC2 +:10418000232F342F4427585FF3CF46953795279533 +:10419000A795F0405395C9F77EF41F16BA0B620B32 +:1041A000730B840BBAF09150A1F0FF0FBB1F661F79 +:1041B000771F881FC2F70EC0BA0F621F731F841FBC +:1041C00048F4879577956795B795F7959E3F08F0E2 +:1041D000B0CF9395880F08F09927EE0F97958795A4 +:1041E00008950E9405210C94B81F0E94B11F58F039 +:1041F0000E94AA1F40F029F45F3F29F00C94A11FF0 +:1042000051110C94EC1F0C94A71F0E94C91F68F356 +:104210009923B1F3552391F3951B550BBB27AA277F +:1042200062177307840738F09F5F5F4F220F331FB9 +:10423000441FAA1FA9F335D00E2E3AF0E0E832D081 +:1042400091505040E695001CCAF72BD0FE2F29D084 +:10425000660F771F881FBB1F261737074807AB0756 +:10426000B0E809F0BB0B802DBF01FF2793585F4FCB +:104270003AF09E3F510578F00C94A11F0C94EC1F6E +:104280005F3FE4F3983ED4F3869577956795B795AD +:10429000F7959F5FC9F7880F911D9695879597F9B8 +:1042A0000895E1E0660F771F881FBB1F6217730731 +:1042B0008407BA0720F0621B730B840BBA0BEE1F46 +:1042C00088F7E09508950E946A216894B1110C94D2 +:1042D000EC1F08950E94D11F88F09F5798F0B92FC6 +:1042E0009927B751B0F0E1F0660F771F881F991F2B +:1042F0001AF0BA95C9F714C0B13091F00E94EB1FC3 +:10430000B1E008950C94EB1F672F782F8827B85FD2 +:1043100039F0B93FCCF3869577956795B395D9F782 +:104320003EF490958095709561957F4F8F4F9F4F8C +:104330000895991B79E004C0991F961708F0961B01 +:10434000881F7A95C9F780950895AA1BBB1B51E178 +:1043500007C0AA1FBB1FA617B70710F0A61BB70BF5 +:10436000881F991F5A95A9F780959095BC01CD019A +:10437000089597FB072E16F4009407D077FD09D017 +:104380000E94A52107FC05D03EF4909581959F4F92 +:104390000895709561957F4F0895EE0FFF1F05906A +:1043A000F491E02D09940F931F93CF93DF93823004 +:1043B000910510F482E090E0E0919704F091980468 +:1043C00030E020E0B0E0A0E0309799F4211531050D +:1043D00009F44AC0281B390B24303105D8F58A81ED +:1043E0009B816115710589F1FB0193838283FE0135 +:1043F00011C0408151810281138148175907E0F0B3 +:104400004817590799F4109761F012960C93129778 +:1044100013961C933296CF01DF91CF911F910F918C +:1044200008950093970410939804F4CF2115310553 +:1044300051F04217530738F0A901DB019A01BD0181 +:10444000DF01F801C1CFEF01F9CF90939804809379 +:104450009704CDCFFE01E20FF31F81939193225079 +:10446000310939832883D7CF209195043091960460 +:10447000232B41F4209111013091120130939604C5 +:104480002093950420910F013091100121153105E1 +:1044900041F42DB73EB74091130150911401241BF4 +:1044A000350BE0919504F0919604E217F307A0F420 +:1044B0002E1B3F0B2817390778F0AC014E5F5F4F7A +:1044C0002417350748F04E0F5F1F50939604409312 +:1044D0009504819391939FCFF0E0E0E09CCFCF9340 +:1044E000DF930097E9F0FC01329713821282A091CA +:1044F0009704B0919804ED0130E020E01097A1F40A +:1045000020813181820F931F209195043091960470 +:104510002817390709F061C0F0939604E0939504D9 +:10452000DF91CF910895EA01CE17DF07E8F54A81C0 +:104530005B819E0141155105B1F7E901FB83EA83D7 +:1045400049915991C40FD51FEC17FD0761F4808183 +:1045500091810296840F951FE90199838883828156 +:1045600093819B838A83F0E0E0E012968D919C9189 +:1045700013970097B9F52D913C911197CD010296B3 +:10458000820F931F209195043091960428173907C4 +:1045900039F6309751F51092980410929704B09321 +:1045A0009604A0939504BCCFD383C28340815181EC +:1045B000840F951FC817D90761F44E5F5F4F88813C +:1045C0009981480F591F518340838A819B8193832E +:1045D00082832115310509F0B0CFF0939804E09360 +:1045E00097049ECFFD01DC01C0CF13821282D7CF8A +:1045F000B0E0A0E0EEEFF2E20C941E208C010097F8 +:1046000051F4CB010E94D3218C01C801CDB7DEB794 +:10461000E0E10C943A20FC01E60FF71F9C012250C8 +:104620003109E217F30708F49DC0D901CD91DC915F +:104630001197C617D70798F0C530D10530F3CE01D2 +:1046400004978617970708F3C61BD70B2297C193C9 +:10465000D1936D937C93CF010E946F22D6CF5B01E3 +:10466000AC1ABD0A4C018C0E9D1EA0919704B0910E +:104670009804512C412CF12CE12C109731F58091AC +:104680009504909196048815990509F05CC046162A +:10469000570608F058C080910F01909110010097C3 +:1046A00041F48DB79EB74091130150911401841BC2 +:1046B000950BE817F90708F055C0F0939604E093BE +:1046C0009504F90171836083A0CF8D919C9111971E +:1046D00012966C90129713967C901397A815B905B3 +:1046E00059F56C0142E0C40ED11CCA14DB0420F160 +:1046F000AC014A195B09DA011296159780F06282C3 +:10470000738251834083D9016D937C93E114F1044A +:1047100071F0D7011396FC93EE93129776CF229601 +:104720008C0F9D1FF90191838083F301EFCFF093EC +:104730009804E093970469CF4816590608F42C01B1 +:104740007D01D3019ACFCB010E94D3217C01009738 +:1047500049F0AE01B8010E94B523C8010E946F2242 +:10476000870153CF10E000E050CFFB01DC0102C015 +:1047700001900D9241505040D8F70895DC0101C0DE +:104780006D9341505040E0F70895FB01DC0101902A +:104790000D920020E1F7089510E0C3E6D0E004C0D8 +:1047A000FE010E94CD212196C436D107C9F7F894A5 +:0247B000FFCF39 +:1047B200FF08000C000B000A000C000D000A0000AC +:1047C200009904800081C3A59999A5C38166FFFF62 +:1047D200FF7E3C180066998181422418000010383F +:1047E2005410101000001010105438100000102047 +:1047F2007E201000000008047E040800000042A58C +:104802000000423C000000E742421824008142249A +:1048120000003C7E7E00422442003C2418000040FE +:10482200001400540000000000000000000000001E +:1048320000000000007601D6000301C3013401121A +:1048420001260100000000E008B308F709E306AC06 +:104852000899088A0800000000E406D600F709E378 +:104862000640075807CB0600000000690ED600F785 +:0648720009F6090D0A0021 :00000001FF diff --git a/app/firmwares/dalgona_basic.hex b/app/firmwares/dalgona_basic.hex new file mode 100644 index 000000000..991b2cfcd --- /dev/null +++ b/app/firmwares/dalgona_basic.hex @@ -0,0 +1,1162 @@ +:100000000C9464000C948C000C948C000C9486115D +:100010000C9486110C9486110C948C000C9488100E +:100020000C948C000C948C000C948C000C941D137C +:100030000C948C000C948C000C948C000C948C0010 +:100040000C943C110C948C000C940A110C94E41048 +:100050000C948C000C948C000C948C000C948C00F0 +:100060000C94FE110C948C0000000000240027006A +:100070002A0000000008000201000003040700003D +:1000800000000000000002000000002300260029FC +:100090000000000000250028002B000404040404D4 +:1000A0000404040202020202020303030303030125 +:1000B00002040810204080010204081020010204FC +:1000C000081020001E14B01E11241FBECFEFD8E070 +:1000D000DEBFCDBF11E0A0E0B1E0E2EBF7E402C08B +:1000E00005900D92A63CB107D9F724E0A6ECB1E04B +:1000F00001C01D92A939B207E1F710E0C3E6D0E0D4 +:1001000004C02197FE010E94CD21C236D107C9F754 +:100110000E944C150C94CC230C9400000895089573 +:10012000E0916604F09167048E179F0798F530916F +:100130006C04332361F0639FB0011124672F349F57 +:10014000A0011124452F329F90011124232F3091BB +:100150007204E0916D04F0916E0450916F043513B8 +:100160001AC0DC01AA0FBB1F8A0F9B1F8E0F9F1F97 +:10017000E0916F04E80FF92FF11D6083E0917004A6 +:10018000E80FF92FF11D408330917104830F911D09 +:10019000FC0120830895880F991F880F991F8E0FE7 +:1001A0009F1FFC01E30FF11D1082E2CFAF92BF92BF +:1001B000CF92DF92EF92FF920F931F93CF93DF9333 +:1001C0006C017B018B01040F151FEB015E01AE1862 +:1001D000BF08C017D10759F06991D601ED91FC9184 +:1001E0000190F081E02DC6010995892B79F7C501B1 +:1001F000DF91CF911F910F91FF90EF90DF90CF9003 +:10020000BF90AF900895FC01538D448D252F30E0B1 +:10021000842F90E0821B930B541710F0CF96089513 +:1002200001970895FC01918D828D981761F0A28D40 +:10023000AE0FBF2FB11D5D968C91928D9F5F9F7306 +:10024000928F90E008958FEF9FEF0895FC01918DBC +:10025000828D981731F0828DE80FF11D858D90E029 +:1002600008958FEF9FEF0895FC01918D228D892FC6 +:1002700090E0805C9F4F821B91098F7399270895AE +:1002800085E693E00E94340121E0892B09F420E007 +:10029000822F089580E090E0892B29F00E94400190 +:1002A00081110C9400000895FC01A48DA80FB92FB2 +:1002B000B11DA35ABF4F2C91848D90E001968F738E +:1002C0009927848FA689B7892C93A089B1898C91AD +:1002D000837080648C93938D848D981306C00288FC +:1002E000F389E02D80818F7D80830895EF92FF92C6 +:1002F0000F931F93CF93DF93EC0181E0888F9B8D49 +:100300008C8D98131AC0E889F989808185FF15C002 +:100310009FB7F894EE89FF896083E889F989808125 +:100320008370806480839FBF81E090E0DF91CF91F4 +:100330001F910F91FF90EF900895F62E0B8D10E016 +:100340000F5F1F4F0F731127E02E8C8D8E110CC085 +:100350000FB607FCFACFE889F989808185FFF5CFD0 +:10036000CE010E945401F1CFEB8DEC0FFD2FF11D5A +:10037000E35AFF4FF0829FB7F8940B8FEA89FB890D +:1003800080818062CFCFCF93DF93EC01888D88236B +:10039000B9F0AA89BB89E889F9898C9185FD03C0E8 +:1003A000808186FD0DC00FB607FCF7CF8C9185FFCD +:1003B000F2CF808185FFEDCFCE010E945401E9CFBD +:1003C000DF91CF910895833081F028F4813099F046 +:1003D0008230A9F008958730A9F08830C9F08430C0 +:1003E000B1F4809180008F7D03C0809180008F7771 +:1003F00080938000089584B58F7784BD089584B577 +:100400008F7DFBCF8091B0008F778093B0000895EF +:100410008091B0008F7DF9CFCF93DF93282F30E00C +:10042000F901EE58FF4F8491F901E155FF4FD49146 +:10043000F901E556FF4FC491CC23A1F081110E9430 +:10044000E301EC2FF0E0EE0FFF1FE957FF4FA591FE +:10045000B491EC91ED2381E090E009F480E0DF912C +:10046000CF91089580E090E0FACF1F93CF93DF9370 +:10047000282F30E0F901EE58FF4F8491F901E15542 +:10048000FF4FD491F901E556FF4FC491CC23A9F059 +:10049000162F81110E94E301EC2FF0E0EE0FFF1FF9 +:1004A000EF56FF4FA591B4918FB7F894EC911111CD +:1004B00008C0D095DE23DC938FBFDF91CF911F91D1 +:1004C0000895DE2BF8CF9091000189130BC0E6E868 +:1004D000F0E0E4919FEF90930001E13049F028F0C3 +:1004E000E23061F060E00C94350210926E00FACFB9 +:1004F00090916F009D7F90936F00F4CF909170006A +:100500009D7F9093700091E09093B0009091B10026 +:10051000987F94609093B1001092B300E3CFCF9393 +:10052000DF9390E0FC01E155FF4F249185569F4FEA +:10053000FC0184918823C9F090E0880F991FFC0189 +:10054000E859FF4FA591B491FC01EF56FF4FC591BB +:10055000D49161110DC09FB7F8948C91209582239E +:100560008C938881282328839FBFDF91CF910895A2 +:10057000623051F49FB7F8943C91822F8095832389 +:100580008C93E8812E2BEFCF8FB7F894EC912E2B24 +:100590002C938FBFEACF80916A0490916B0497FDF2 +:1005A00008C061E00E948F0260E080916A040E94AE +:1005B000350281E08093650408954F925F926F92B7 +:1005C0007F928F929F92AF92BF92CF92DF92EF92E3 +:1005D000FF920F931F93CF93DF9300D000D01F9211 +:1005E000CDB7DEB78B0129013A019091000189173F +:1005F000C9F09F3F09F47EC00F900F900F900F90AD +:100600000F90DF91CF911F910F91FF90EF90DF90AE +:10061000CF90BF90AF909F908F907F906F905F90A2 +:100620004F900895E6E8F0E094919D8397FDE4CF24 +:1006300061E00E948F028D81882321F09D8192309C +:1006400009F04AC14801B12CA12C60E072E18AE7AF +:1006500090E0A50198010E94F21F29833A834B8301 +:100660005C8369017A0181E0C81AD108E108F108C8 +:100670009FEFC916D104E104F10409F00CF401C1A3 +:1006800060E472E48FE090E0A50198010E94F21FFF +:1006900069017A0181E0C81AD108E108F1089D8159 +:1006A000923009F0A2C08FEFC816D104E104F10422 +:1006B00009F00CF4E6C160E970ED83E090E0A5017B +:1006C00098010E94F21F69017A0191E0C91AD108CC +:1006D000E108F1088FEFC816D104E104F10411F02C +:1006E0000CF07FC183E09091B100987F892B8093BB +:1006F000B100CFC080930001E6E8F0E094919D83C3 +:100700009F3F09F479CF913041F150F0923009F4D4 +:1007100046C09D8197FD70CF61E00E948F028ECF11 +:1007200014BC15BC94B5926094BD95B5916095BD0F +:10073000282F30E0F901E556FF4FE491F0E0EE0F8D +:10074000FF1FEF56FF4F45915491F901E155FF4FBF +:10075000E491E093D0021D826BCF10928000109242 +:100760008100909181009860909381009091810028 +:10077000916090938100282F30E0F901E556FF4FFA +:10078000E491F0E0EE0FFF1FEF56FF4F45915491BB +:10079000F901E155FF4FE491E093CF0249CF109268 +:1007A000B0001092B1009091B00092609093B000B0 +:1007B0009091B10091609093B100282F30E0F90141 +:1007C000E556FF4FE491F0E0EE0FFF1FEF56FF4FAD +:1007D000459154915093DA024093D902F901E155C1 +:1007E000FF4FE491E093DB0223CF9FEFC916D104C2 +:1007F000E104F10409F00CF46DC068E478EE81E0E6 +:1008000090E0A50198010E94F21F69017A0181E040 +:10081000C81AD108E108F1089D81992309F4FAC0AA +:100820008FEFC816D104E104F10411F00CF0FBC005 +:10083000EFC064E274EF80E090E0A50194010E94B3 +:10084000F21F69017A0181E0C81AD108E108F108B4 +:1008500085E09FEFC916D104E104F10409F008F422 +:1008600042CF62E17AE780E090E0A50194010E9426 +:10087000F21F69017A0181E0C81AD108E108F10884 +:10088000E5C081E09D8191112ECF95B5987F892B90 +:1008900085BD2FEF3FEFA90141145104610471049C +:1008A00009F043C09D81913009F45EC0923009F493 +:1008B0006DC09111A1CEC7BC2093D5023093D60252 +:1008C0004093D7025093D80280916E00826080934B +:1008D0006E0092CE82E0D6CFB12CA12C60E072E106 +:1008E0008AE790E0A50198010E94F21F69017A0150 +:1008F00081E0C81AD108E108F108C114D10491E0DF +:10090000E906F10404F591E08D81813011F68091C2 +:100910008100887F892B809381002FEF3FEFA90111 +:100920004114510461047104F9F0D801AA0FBB1FEE +:10093000A30192010E94112028EE33E040E050E034 +:100940000E945320AFCF68E478EE81E090E0A501EB +:1009500098010E94F21F69017A0181E0C81AD1084A +:10096000E108F10893E0D0CFD0928900C0928800CE +:100970002093D1023093D2024093D3025093D402F9 +:1009800080916F00826080936F0036CEC092B3007A +:100990002093DC023093DD024093DE025093DF02AD +:1009A0008091700082608093700026CE84E09FEF7B +:1009B000C916D104E104F10409F008F466CFC98036 +:1009C000DA80EB80FC808AE0F594E794D794C794B2 +:1009D0008A95D1F781E0C81AD108E108F10885E0CD +:1009E00054CF68E478EE81E090E0A50198010E9480 +:1009F000F21F69017A0181E0C81AD108E108F10803 +:100A00009FEFC916D104E104F10411F00CF011CFED +:100A100084E069CE83E09FEFC916D104E104F104BC +:100A200009F00CF432CF62E17AE780E090E0A501B2 +:100A300094010E94F21F69017A0181E0C81AD1086D +:100A4000E108F1089D81992309F4B0CF86E09FEF7A +:100A5000C916D104E104F10409F008F444CEC980B8 +:100A6000DA80EB80FC809AE0F594E794D794C79401 +:100A70009A95D1F781E0C81AD108E108F10887E01A +:100A800032CE82E030CE1F93CF93DF93182FEB014D +:100A900061E00E948F02209739F460E0812FDF919E +:100AA000CF911F910C943502CF3FD10511F461E035 +:100AB000F5CFE12FF0E0EE58FF4FE491E33031F154 +:100AC00040F4E130B1F0E230E1F0C038D1057CF71C +:100AD000E4CFE73029F1E83059F1E430B1F7809103 +:100AE0008000806280938000D0938B00C0938A0046 +:100AF00004C084B5806884BDC7BDDF91CF911F91CC +:100B0000089584B5806284BDC8BDF7CF8091800010 +:100B1000806880938000D0938900C0938800EDCFD7 +:100B20008091B00080688093B000C093B300E5CF9F +:100B30008091B00080628093B000C093B400DDCF9C +:100B40003FB7F8948091CB029091CC02A091CD0256 +:100B5000B091CE0226B5A89B05C02F3F19F0019693 +:100B6000A11DB11D3FBFBA2FA92F982F8827BC0107 +:100B7000CD01620F711D811D911D42E0660F771F2F +:100B8000881F991F4A95D1F708950F931F93CF930C +:100B9000DF93CDB7DEB729970FB6F894DEBF0FBE4F +:100BA000CDBF80916D0490916E04892B09F47CC0B7 +:100BB0000E94A005009173041091740420917504A3 +:100BC00030917604601771078207930740F46093B1 +:100BD0007304709374048093750490937604009169 +:100BE0007304109174042091750430917604601B95 +:100BF000710B820B930B6C32714081059105C0F231 +:100C0000F89480916804909169049A838983E091B3 +:100C10006D04F0916E04DF011196808189879091B7 +:100C20006404E0917704F091780480917904992329 +:100C300009F445C09081982B9887908180958923ED +:100C40008F838F818C8388E08B8358856F81498562 +:100C50003B812C8189819A81508347FD252F3A95CC +:100C60002083262F39F0441F00C00000608300005D +:100C700000C0F2CF38E04D9160830000019761F72A +:100C8000F0937804E093770449873B832C839A831D +:100C9000898378940E94A005609373047093740410 +:100CA000809375049093760429960FB6F894DEBF6E +:100CB0000FBECDBFDF91CF911F910F91089590810D +:100CC000982B98879081809589238F838F818E833D +:100CD00088E08D8358856F8149853D812E8189818A +:100CE0009A81508347FD252F00C000C0208300C09B +:100CF00000C000C000C000C060830000262F3A95ED +:100D000041F0441F000000C000C000C000C000C08F +:100D1000E8CF38E04D9100C0608300C0019709F72B +:100D2000F0937804E093770449873D832E83AFCF17 +:100D30008F929F92AF92BF92CF92DF92EF92FF92EB +:100D40006B017C010E94A0054B015C01C114D10420 +:100D5000E104F104B9F00E94A005681979098A0933 +:100D60009B09683E73408105910580F321E0C21A1A +:100D7000D108E108F10888EE880E83E0981EA11CD6 +:100D8000B11CE4CFFF90EF90DF90CF90BF90AF9079 +:100D90009F908F90089520915B0330915C032817FA +:100DA000390771F49091590380915A03981741F0D3 +:100DB000E0915903F0E0E657FD4F808190E00895FF +:100DC0008FEF9FEF08950895EF92FF920F931F9377 +:100DD000CF93DF93DC015C96ED90FC905D97E1147E +:100DE000F10479F481E090E013969C938E9312972E +:100DF00090E080E0DF91CF911F910F91FF90EF90F5 +:100E000008955196ED91FC91529750968C91509780 +:100E1000982F90950FB75E962C915E97122F1270B7 +:100E200021FD6095F8942081112319F1282B20834E +:100E3000E7012197F1F728E0462F50E0308160FF6D +:100E40001AC0382B3083E7012197F1F7BA01759565 +:100E50006795215089F7112381F080818923808350 +:100E60000FBF5C968D919C910197F1F781E090E026 +:100E7000C1CF2923DCCF3923E5CF9081892BEFCF58 +:100E800020915B0330915C032817390771F480913E +:100E90005A032091590390E0805C9F4F821B910977 +:100EA00060E470E00E94B921089590E080E0089528 +:100EB00020915B0330915C0328173907B9F49091B6 +:100EC000590380915A03981789F0E0915903F0E093 +:100ED000E657FD4F80812091590330E02F5F3F4F4F +:100EE0002F7333272093590390E008958FEF9FEFDE +:100EF0000895E0915B03F0915C03E817F90769F44A +:100F0000A389B4899C918589809589238C931092BB +:100F10005C0310925B0381E0089580E008951092D5 +:100F200054041092530410925204109251041092DF +:100F3000500410924F048DE991E0909356048093F1 +:100F4000550490914504963108F046C02DEB30E0F1 +:100F50003093500420934F042BE931E03093520436 +:100F6000209351042CE231E0309354042093530435 +:100F70002091680084E0983048F031E09E3008F419 +:100F800030E081E001C0880F3A95EAF7822B809328 +:100F900068002DE630E0983050F02BE630E09E30CF +:100FA00030F02CE630E0963110F030E020E0309365 +:100FB0004D0420934C04292F30E09830C0F581E097 +:100FC00001C0880F9A95EAF780934E0480915504EA +:100FD000909156040197F1F7809153049091540435 +:100FE000892B21F180915B0390915C0324E089338C +:100FF0009207E1F0009711F00E9479078091570461 +:101000008E7F8093570410925A031092590389E3FC +:1010100094E090935C0380935B03E0914C04F09127 +:101020004D04808190914E04892B808308959E30D9 +:1010300040F42850310981E001C0880F2A95EAF771 +:10104000C3CF2E503109F7CF20914002260F33270E +:10105000331F21323105ECF420916402FC0190E051 +:1010600080E0243069F082E00895A091400221914F +:10107000AC01405E5D4FA40FB52FB11D2C930196BE +:10108000861798F380914002680F6093400280E0D9 +:10109000089581E008951092640281E080936602D1 +:1010A0001092650261E082E10E94350261E083E115 +:1010B0000E943502E9EBF0E080818E7F80838081A1 +:1010C0008D7F808388E48093B80085E48093BC00A2 +:1010D0000895CF93DF9391E090931F028823B9F096 +:1010E000C091B800D091BA008091BC008A7B8093F7 +:1010F000BC0060E082E10E94350260E083E10E9472 +:1011000035020E944B08D093BA00C093B800DF911B +:10111000CF910895E091640380916303E81730F460 +:10112000F0E0E650FE4F808190E008958FEF9FEF52 +:10113000089590916403809163032FEF3FEF981718 +:1011400048F4E92FF0E0E650FE4F208130E09F5F49 +:1011500090936403C901089580916303909164039F +:10116000891B990B0895CF92DF92EF92FF920F9314 +:101170001F93CF93DF937C01CB018A012091F9016A +:10118000222389F0EB016B01C40ED51ECC15DD05C1 +:1011900069F06991D701ED91FC910190F081E02D0A +:1011A000C7010995F3CF642F0E942408C801DF917D +:1011B000CF911F910F91FF90EF90DF90CF90089506 +:1011C000CF93DF931F92CDB7DEB769832091F901EA +:1011D0002223F9F020916103203258F021E030E021 +:1011E000FC013383228390E080E00F90DF91CF9168 +:1011F000089580916203E82FF0E0E752FE4F998155 +:1012000090838F5F809362038093610381E090E01D +:10121000ECCF61E0CE0101960E942408F7CFCF9277 +:10122000DF92EF92FF920F931F93CF93DF93FC0116 +:10123000C48121E02093F901C093D8011092620388 +:10124000109261038385682B82E094E00E94E0089D +:10125000D0916103D13208F092C00E94A0056B01C9 +:101260007C0180916402811165C082E080936402F8 +:1012700081E0809366028FEF809363021092880270 +:10128000D0938702A9EDB1E0E7E6F2E080E0D81361 +:1012900085C01092890280918902CC0FC82BC0931F +:1012A000890280916502813009F07CC0109265024C +:1012B0000E94A0056B017C01809189028093BB0094 +:1012C00080911B0290911C02A0911D02B0911E0200 +:1012D000892B8A2B8B2B99F00E94A00500911B0271 +:1012E00010911C0220911D0230911E026C197D0983 +:1012F0008E099F090617170728073907E0F1809123 +:10130000BC0083FDD9CF85EC8093BC000E94A00572 +:101310006B017C0180916402823009F445C08091A8 +:1013200063028F3F61F180916302803241F18091CD +:10133000630225C080911B0290911C02A0911D02A6 +:10134000B0911E02892B8A2B8B2B09F48ACF0E9425 +:10135000A00500911B0210911C0220911D023091EA +:101360001E026C197D098E099F09061717072807A9 +:10137000390708F076CF80911A020E94690810920E +:101380006203109261031092F901DF91CF911F91D6 +:101390000F91FF90EF90DF90CF9008959D919193E2 +:1013A0008F5F75CF85EEB0CF80911B0290911C02AC +:1013B000A0911D02B0911E02892B8A2B8B2B09F460 +:1013C000A9CF0E94A00500911B0210911C02209140 +:1013D0001D0230911E026C197D098E099F090617A6 +:1013E00017072807390708F095CFC5CF089590E073 +:1013F00080E00895FC01EE0FFF1FE35CFC4F2081AD +:101400003181232B39F421E030E03183208361E006 +:101410000C948F0208958F929F92AF92BF92CF92B9 +:10142000DF92EF92FF920F931F93CF93DF93CDB78D +:10143000DEB76B970FB6F894DEBF0FBECDBF8C0141 +:10144000F894CE0101967C0188E1D7011D928A951E +:10145000E9F7C8010E94FA098091FD02898F809105 +:10146000FB028A8F8091FF028B8FFE017996C70164 +:101470005E01BCE1AB0EB11CA701A1918A2E912C9B +:1014800027E030E06A01C20ED31EB401022E02C072 +:10149000759567950A94E2F76170D6016C932150B7 +:1014A000310980F7485F5F4FEA15FB0531F7980176 +:1014B000225031092630310508F0EDC00330110506 +:1014C00009F052C05B9825E50F920F900F920F9094 +:1014D0000F920F902150C1F7E8E1EE0EF11C27E0CA +:1014E00030E0FC01E20FF31F4081413009F07BC086 +:1014F0000330110509F04DC05B9A4AE10F920F903D +:101500000F920F900F920F904150C1F703301105C9 +:1015100009F054C05B9849E10F920F900F920F9021 +:101520000F920F904150C1F721503109D0F6089623 +:10153000E816F906A1F60330110509F097C05B9A89 +:1015400078946B960FB6F894DEBF0FBECDBFDF91D7 +:10155000CF911F910F91FF90EF90DF90CF90BF90B0 +:10156000AF909F908F9008950430110511F45C980E +:10157000AACF0530110511F45D98A5CF06301105ED +:1015800011F45E98A0CF0730110509F09CCF5F9849 +:101590009ACF0430110511F45C9AAFCF05301105D4 +:1015A00011F45D9AAACF0630110511F45E9AA5CF09 +:1015B0000730110509F0A1CF5F9A9FCF04301105C4 +:1015C00011F45C98A8CF0530110511F45D98A3CFF4 +:1015D0000630110511F45E989ECF0730110509F011 +:1015E0009ACF5F9898CF03301105C1F45B9A4FE012 +:1015F0000F920F900F920F900F920F904150C1F7E2 +:1016000003301105F9F45B984EE00F920F900F92A2 +:101610000F900F920F904150C1F786CF0430110503 +:1016200011F45C9AE4CF0530110511F45D9ADFCF17 +:101630000630110511F45E9ADACF07301105B9F6BC +:101640005F9AD5CF0430110511F45C98DDCF0530D9 +:10165000110511F45D98D8CF0630110511F45E988C +:10166000D3CF0730110581F65F98CECF0430110536 +:1016700011F45C9A65CF0530110511F45D9A60CFC5 +:101680000630110511F45E9A5BCF0730110509F0A1 +:1016900057CF5F9A55CF9801285031092630310530 +:1016A00008F04ECF0830110509F03FC0289825E515 +:1016B0000F920F900F920F900F920F902150C1F741 +:1016C00028E1E20EF11C27E030E0FC01E20FF31FFD +:1016D0004081413009F06BC00830110509F03BC072 +:1016E000289A4AE10F920F900F920F900F920F904D +:1016F0004150C1F70830110509F043C0289849E16D +:101700000F920F900F920F900F920F904150C1F7D0 +:1017100021503109D0F60896E816F906A1F60830EE +:10172000110509F08BC0289A0BCF0930110511F46F +:101730002998BDCF0A30110511F42A98B8CF0B3083 +:10174000110511F42B98B3CF0C30110511F42C981E +:10175000AECF2D98ACCF0930110511F4299AC1CF25 +:101760000A30110511F42A9ABCCF0B30110511F47F +:101770002B9AB7CF0C30110511F42C9AB2CF2D9AB9 +:10178000B0CF0930110511F42998B9CF0A301105ED +:1017900011F42A98B4CF0B30110511F42B98AFCF68 +:1017A0000C30110511F42C98AACF2D98A8CF083031 +:1017B0001105C1F4289A4FE00F920F900F920F90ED +:1017C0000F920F904150C1F70830110509F5289884 +:1017D0004EE00F920F900F920F900F920F9041508A +:1017E000C1F796CF0930110511F4299AE4CF0A30D8 +:1017F000110511F42A9ADFCF0B30110511F42B9A41 +:10180000DACF0C30110511F42C9AD5CF2D9AD3CF05 +:101810000930110511F42998DBCF0A30110511F4B4 +:101820002A98D6CF0B30110511F42B98D1CF0C305C +:10183000110511F42C98CCCF2D98CACF0930110581 +:1018400011F4299A7DCE0A30110511F42A9A78CE26 +:101850000B30110511F42B9A73CE0C30110511F4D5 +:101860002C9A6ECE2D9A6CCE682F85E693E00C9460 +:1018700076010F931F93CF93DF938B01D82FC92F3E +:1018800082E00E94340CC801AD2FBC2F8093D3019D +:101890009093D401A093D501B093D6010E94340C4B +:1018A000812F0E94340C8D2F0E94340C8C2FDF91DD +:1018B000CF911F910F910C94340C8FEF0E94340C38 +:1018C00085E50C94340C4F925F926F927F928F92C9 +:1018D0009F92AF92BF92CF92DF92EF92FF920F93BF +:1018E0001F93CF93DF9300D0CDB7DEB78C01498330 +:1018F0002A83660F771FF801EA5AFF4FE080F180D4 +:10190000EE0CFF1CF801CF01801B910B8E159F057B +:1019100014F41192F8CF8981F801E60FF71F818343 +:101920008A818083680184E5C80ED11C60E0F601DD +:1019300080810E9435025801F2E5AF0EB11C4801CA +:1019400080E5880E911C1E141F040CF5E1E0EE1AD0 +:10195000F108F801EE0DFF1D6080F5015080F401E3 +:10196000408088E0782E662D661F6627661F842DCE +:101970000E943502660C61E0852D0E94350260E010 +:10198000852D0E9435027A947110EDCFDCCF61E095 +:10199000F60180810F900F90DF91CF911F910F91F1 +:1019A000FF90EF90DF90CF90BF90AF909F908F907F +:1019B0007F906F905F904F900C943502242FFC0124 +:1019C000EA5AFF4F40815181141615066CF46830B5 +:1019D000710551F0FC01E60FF71F208B41E0460F27 +:1019E00070E060E00C94630C0895CF92DF92EF9268 +:1019F000FF921F93CF93DF937C016B01EB0183E098 +:101A0000CC0FDD1F8A95E1F76096CE0DDF1D11E04A +:101A1000199220E0412FB601C7010E94630C1F5F9D +:101A20001930B1F7DF91CF911F91FF90EF90DF90C8 +:101A3000CF9008958F929F92AF92BF92CF92DF92F4 +:101A4000EF92FF920F931F93CF93DF938C01D62ECB +:101A5000C72EEC01C05BDF4F688379834C0182E5C0 +:101A6000880E911CF401518340835801F4E5AF0EB8 +:101A7000B11CF501318320837801F6E5EF0EF11CEE +:101A800081E090E0F7019183808361E08D2D0E94D9 +:101A90008F0261E0F40180810E948F0261E0F50114 +:101AA00080810E948F0261E0F50180810E943502F1 +:101AB000D882C982F80170961192EC17FD07E1F700 +:101AC000D0E0C0E0F70180819181C817D90784F583 +:101AD00020E04FE0BE01C8010E94630CF701808145 +:101AE0009181C817D90734F427E04BE0BE01C80143 +:101AF0000E94630C20E049E0BE01C8010E94630C13 +:101B0000F70180819181C817D90724F4BE01C8016B +:101B10000E94F50CF70180819181C817D90734F430 +:101B200020E04CE0BE01C8010E94630C2196CACFA0 +:101B3000DF91CF911F910F91FF90EF90DF90CF90A9 +:101B4000BF90AF909F908F9008950F931F93CF9366 +:101B50008C01C62F0E940F096C2F6460C8010E947F +:101B60000F096C2F6B7FC8010E940F0983EC90E076 +:101B70000197F1F7CF911F910F9108950F931F9344 +:101B8000CF93DF938C01D62FC42F607F642B0E94EC +:101B9000A50D80E1D89FB00111246C2BC801DF9105 +:101BA000CF911F910F910C94A50D40E061E088E565 +:101BB00094E00E94BE0D8BE39FE10197F1F7089539 +:101BC000CF93DF9310926403109263031092620329 +:101BD000109261030E944B088EE890E0909360039E +:101BE00080935F038FE890E090935E0380935D03A2 +:101BF00010925D0480916204823018F098E0909316 +:101C00005D048093600462E370E080E090E00E94F5 +:101C100098066091630488E594E00E940F0968EEDD +:101C200073E080E090E00E94980660E388E594E02D +:101C30000E94A50DCBE4D6E4CE010197F1F760E355 +:101C400088E594E00E94A50D2197F1F760E388E50F +:101C500094E00E94A50D83E592E00197F1F760E220 +:101C600088E594E00E94A50D60915D04606240E00B +:101C700088E594E00E94BE0D84E080935E0440E01D +:101C80006CE088E594E00E94BE0D0E94D50D82E0D4 +:101C900080935F0440E066E088E594E00E94BE0D1A +:101CA00040E062E088E594E00E94BE0D8BE39FE196 +:101CB0000197F1F7DF91CF9108950E94E00D88E040 +:101CC0008093630460E088E594E00E940F090C941F +:101CD000D50D41E00E94BE0D81E090E0089542E004 +:101CE00050E063EC71E085E693E00C94D6008FEF52 +:101CF0000E94340C85E50E94340C0C946F0E8F9278 +:101D00009F92AF92BF92CF92DF92EF92FF920F938A +:101D10001F93CF93DF93C091F202D091F302CE01D3 +:101D20009927FC01E155FF4F1491FC01E556FF4F47 +:101D3000E491F0E0EE0FFF1FE957FF4FE590F490BC +:101D40001092CE011092CF011092D0011092D101C9 +:101D50001092D20161E08C2F0E948F0260E08C2FE4 +:101D60000E94350262E170E080E090E00E949806F7 +:101D700061E08C2F0E9435028BE990E00197F1F72A +:101D800060E08C2F0E948F0280E991E0F7012081B2 +:101D90002123B9F40197D1F780E090ECA9E7B4ECE6 +:101DA0008093C6019093C701A093C801B093C90165 +:101DB0008093CA019093CB01A093CC01B093CD0145 +:101DC00062C080E991E0F7012081212319F0019799 +:101DD000D1F7E2CF88E2D82E00E8C12C80E991E06B +:101DE000F7012081212319F40197D1F7D5CF0E9463 +:101DF000A0054B015C0180E991E0F70120812123DE +:101E000019F00197D1F7C8CF0E94A0056819790988 +:101E10008A099B09693271058105910538F0EC2D1D +:101E2000F0E0EA53FE4F8085802B8087069511F401 +:101E3000C39400E8DA94D110D1CF61E08C2F0E94D6 +:101E40008F0261E08C2F0E9435026091CE0170E01C +:101E500090E080E00E94D31E6093C6017093C7019A +:101E60008093C8019093C9016091D00170E090E027 +:101E700080E00E94D31E6093CA017093CB018093CF +:101E8000CC019093CD018090CA019090CB01A0909D +:101E9000CC01B090CD01C090C601D090C701E090B8 +:101EA000C801F090C90162E370E080E090E00E9418 +:101EB000980680913903882359F00E945D0CC50172 +:101EC000B4010E94390C83E10E94340C0E946F0E11 +:101ED00080913A038823B9F00E945D0CC701B601D6 +:101EE0000E94390C82E10E94340CDF91CF911F9146 +:101EF0000F91FF90EF90DF90CF90BF90AF909F90A9 +:101F00008F900C946F0EDF91CF911F910F91FF90E6 +:101F1000EF90DF90CF90BF90AF909F908F900895FB +:101F2000CF92DF92EF92FF920F931F93CF93DF93A5 +:101F3000EC016B01F42EE52E198218861F86188A93 +:101F4000198A1A8A81E08E878B871C8692E09D878A +:101F500088838B01000F111F060F171F1D830C8331 +:101F6000C8010E94D3219A878987009789F1A80127 +:101F700070E060E00E94BE23DB82CA82FE82EF82B4 +:101F80008981882341F061E08F2D0E948F0260E0FB +:101F90008F2D0E9435028F2D9E2DFC01E556FF4F9F +:101FA000E491F0E0EE0FFF1FEF56FF4F25913491C3 +:101FB0003C8B2B8BFC01E155FF4FE491ED8BDF91C6 +:101FC000CF911F910F91FF90EF90DF90CF900895E8 +:101FD0001D821C821B821A82D1CFFC0180819181DB +:101FE000009711F00C946F2208950F931F93CF93D5 +:101FF000DF93EC0188819981009759F02A813B8118 +:102000002617370730F081E0DF91CF911F910F91B4 +:1020100008958B016F5F7F4F0E94F822009759F05F +:10202000998388831B830A832C813D81232B59F755 +:10203000FC011082E8CF80E0E7CFEF92FF920F9390 +:102040001F93CF93DF93EC017B018A01BA010E94B9 +:10205000F50F28813981811114C02115310519F03E +:10206000C9010E946F22198218821D821C821B8264 +:102070001A82CE01DF91CF911F910F91FF90EF90C7 +:1020800008951D830C83B701C9010E94C523F1CFB8 +:1020900050E040E065EC71E083E394E00C941D10A7 +:1020A00085ED8093BC0080911B0290911C02A09151 +:1020B0001D02B0911E020796A11DB11D23E0B69529 +:1020C000A795979587952A95D1F72091BC0024FD77 +:1020D00003C010926402089540911B0250911C02AB +:1020E00060911D0270911E02452B462B472B69F310 +:1020F0000097A105B10541F025E32A95F1F700000D +:102100000197A109B109E1CF80911A020C946908E5 +:102110001F920F920FB60F9211242F933F934F935C +:102120005F936F937F938F939F93AF93BF93EF933F +:10213000FF938091DC029091DD02A091DE02B091CC +:10214000DF02892B8A2B8B2BD1F19091DB02E0915E +:10215000D902F091DA028081892780838091DC02A4 +:102160009091DD02A091DE02B091DF0218161906EF +:102170001A061B069CF48091DC029091DD02A0916E +:10218000DE02B091DF020197A109B1098093DC0260 +:102190009093DD02A093DE02B093DF02FF91EF91F6 +:1021A000BF91AF919F918F917F916F915F914F916F +:1021B0003F912F910F900FBE0F901F901895809117 +:1021C00000010E946302EACF1F920F920FB60F9296 +:1021D00011242F933F934F935F936F937F938F932C +:1021E0009F93AF93BF93EF93FF9385E693E00E9495 +:1021F0005401FF91EF91BF91AF919F918F917F918A +:102200006F915F914F913F912F910F900FBE0F9063 +:102210001F9018951F920F920FB60F9211242F93B3 +:102220008F939F93EF93FF93E0917503F091760363 +:102230008081E0917B03F0917C0382FD1BC0908143 +:1022400080917E038F5F8F7320917F03821741F00F +:10225000E0917E03F0E0EB59FC4F958F80937E0375 +:10226000FF91EF919F918F912F910F900FBE0F9043 +:102270001F9018958081F4CF1F920F920FB60F9286 +:1022800011242F933F938F939F93AF93BF9380918C +:10229000300390913103A0913203B0913303309118 +:1022A000CA0223E0230F2D3758F50196A11DB11D59 +:1022B0002093CA028093300390933103A09332039A +:1022C000B09333038091CB029091CC02A091CD02C8 +:1022D000B091CE020196A11DB11D8093CB029093C7 +:1022E000CC02A093CD02B093CE02BF91AF919F914B +:1022F0008F913F912F910F900FBE0F901F901895C7 +:1023000026E8230F0296A11DB11DD2CF1F920F9276 +:102310000FB60F9211242F933F934F935F936F93B8 +:102320007F938F939F93AF93BF93EF93FF93E0912E +:102330005B03F0915C03309749F0A685B7858585EE +:10234000968D91FF14C09C918923A1F4FF91EF9188 +:10235000BF91AF919F918F917F916F915F914F91BD +:102360003F912F910F900FBE0F901F9018959C9149 +:10237000892361F7A389B4899C91858980958923F4 +:102380008C93868997890197F1F7608D718DA68569 +:10239000B785558538E020E0CB010197F1F7822F12 +:1023A00090E095958795282F4C91452309F020685A +:1023B000315091F7868D81FD209580915A0390E0F0 +:1023C00001968F73992730915903381799F0A0918E +:1023D0005A03B0E0A657BD4F2C9380935A03828DC9 +:1023E000938D0197F1F7A389B4898C919589892BF5 +:1023F0008C93ACCF868D8160868FF1CF1F920F9228 +:102400000FB60F9211242F933F934F935F936F93C7 +:102410007F938F939F93AF93BF93EF93FF9380919D +:10242000B900887F803609F44AC0F0F5883209F493 +:10243000A7C018F5803109F49BC0B8F4882309F4CB +:10244000F9C0883009F494C0FF91EF91BF91AF912A +:102450009F918F917F916F915F914F913F912F91BC +:102460000F900FBE0F901F901895883109F488C007 +:10247000803251F78093630214C0803409F49DC008 +:1024800040F48033B9F38833F9F68093630285EC26 +:10249000B0C0803509F485C0883509F496C0883409 +:1024A00099F60E945010D0CF883909F48CC038F5C5 +:1024B000883729F050F4883611F0803729F683E008 +:1024C000809364021092620257C0883809F47BC07E +:1024D000803919F0803809F0B7CF809162028032DC +:1024E00008F071C0E091620281E08E0F8093620279 +:1024F0008091BB00F0E0EE5BFD4F80833DC0803BF0 +:1025000039F0E0F4803A09F479C0883A09F09CCFB8 +:1025100084E0809364021092410210924002E091A4 +:102520005F03F091600309958091400281110FC013 +:1025300081E0809340021092200209C0803C09F49F +:10254000A6CF883C09F4A3CF883B09F07DCFE0916A +:10255000410281E08E0F80934102F0E0E05EFD4F8A +:1025600080818093BB00909141028091400229C0FC +:10257000809189028093BB0085EC8093BC0064CF7E +:102580009091880280918702981758F5E09188020F +:1025900081E08E0F80938802F0E0E959FD4F808141 +:1025A000E9CFE091880281E08E0F809388028091CC +:1025B000BB00F0E0E959FD4F808390918802809143 +:1025C00087029817C8F285E8D8CFE091880281E0A9 +:1025D0008E0F809388028091BB00F0E0E959FD4F97 +:1025E00080838091660281115CCF81E080936502D7 +:1025F00084EA8093BC001092640226CF85EC80931D +:10260000BC001092640280916202803230F4E0914A +:102610006202F0E0EE5BFD4F10826091620270E0BA +:10262000E0915D03F0915E0382E492E009951092DF +:1026300062020ACF1092630234CF1F920F920FB63C +:102640000F9211242F933F934F935F936F937F9338 +:102650008F939F93AF93BF93CF93DF93EF93FF93AA +:102660008091D701C0913204D0E087FF24C010923E +:102670008500109284008091D7018F5F8093D701ED +:102680008091D701082E000C990B8C179D0724F41C +:102690008091D7018C30C4F18091840090918500A5 +:1026A000049680349C4908F47AC08091840090910B +:1026B0008500049676C08091D701082E000C990BF6 +:1026C0008C179D07C4F6E091D7018E2FEE0F990B62 +:1026D000FC01EE0FFF1FE80FF91FE25FFB4F808147 +:1026E00086FFC9CFE091D7018E2FEE0F990BFC0129 +:1026F000EE0FFF1FE80FF91FE25FFB4F808160E0E4 +:102700008F730E943502B7CF2091840030918500ED +:10271000E091D7018E2FEE0F990BFC01EE0FFF1FFA +:10272000E80FF91FE25FFB4F81819281820F931FB7 +:102730009093890080938800E091D7018E2FEE0F4F +:10274000990BFC01EE0FFF1FE80FF91FE25FFB4F33 +:10275000808186FF11C0E091D7018E2FEE0F990B7B +:10276000FC01EE0FFF1FE80FF91FE25FFB4F8081B6 +:1027700061E08F730E943502FF91EF91DF91CF915D +:10278000BF91AF919F918F917F916F915F914F9189 +:102790003F912F910F900FBE0F901F90189580E4DE +:1027A0009CE990938900809388008FEF8093D701F4 +:1027B000E3CFCF92DF92EF92FF920F931F93E82F18 +:1027C000F92F05C0015011092109310961F19081EA +:1027D00096239417B9F305C0015011092109310955 +:1027E00011F1908196239413F7CFC12CD12CE12CB9 +:1027F000F12C0AC08FEFC81AD80AE80AF80A0C159B +:102800001D052E053F0579F080818623841791F3FD +:102810006C2D7D2D8E2D9F2D1F910F91FF90EF9090 +:10282000DF90CF90089560E070E080E090E01F912D +:102830000F91FF90EF90DF90CF9008951092680372 +:102840001092670388EE93E0A0E0B0E08093690304 +:1028500090936A03A0936B03B0936C0325E831E077 +:10286000309366032093650325EC30E030937203C8 +:102870002093710324EC30E03093740320937303AE +:1028800020EC30E0309376032093750321EC30E0A8 +:10289000309378032093770322EC30E030937A036F +:1028A0002093790326EC30E030937C0320937B0364 +:1028B00010927E0310927F03109280031092810386 +:1028C0001092050410920404809306049093070468 +:1028D000A0930804B093090487E991E0909303045E +:1028E00080930204EDE7F4E02FEF48EB5BE080918A +:1028F00032048C3008F0CAC091E0980F90933204F3 +:10290000808390E0DC01AA0FBB1FA80FB91FA25F54 +:10291000BB4F12965C934E931197339684E0E53942 +:10292000F80729F7809132048C3008F0B1C091E0AB +:10293000980F9093320480937A0490E0FC01EE0F9C +:10294000FF1FE80FF91FE25FFB4F88EB9BE09283CC +:10295000818347E050E060E470E084E694E00E9408 +:10296000900F10925B0410925A048BEB91E09093BD +:1029700059048093580487E280935C0480E180933B +:10298000610482E0809362041092630410923C041C +:1029900010923B0488EE93E0A0E0B0E080933D0409 +:1029A00090933E04A0933F04B093400489EA91E0E1 +:1029B00090933A04809339041092500410924F047B +:1029C0001092520410925104109254041092530425 +:1029D0001092560410925504609157046E7F6D7FDB +:1029E000609357046695617081E0682783E00E94D8 +:1029F000350261E083E00E948F02E2EBF0E0E491B7 +:102A0000E0934904EEE9F0E0E491F0E0EE0FFF1FFF +:102A1000EF56FF4F8591949190934B0480934A0415 +:102A200060E082E00E948F028091570481FD04C023 +:102A300061E082E00E94350282E080934504E1EB90 +:102A4000F0E0E491E0934604EDE9F0E0E491F0E099 +:102A5000EE0FFF1FE957FF4F859194919093480423 +:102A60008093470410923404109233041092360479 +:102A700010923504109238041092370450E040E070 +:102A800065EC71E083E394E00C941D10208345CF46 +:102A90008FEF80937A045DCFCF93DF93CDB7DEB70E +:102AA000AA970FB6F894DEBF0FBECDBF789484B559 +:102AB000826084BD84B5816084BD85B5826085BD3A +:102AC00085B5816085BD80916E00816080936E00C8 +:102AD00010928100809181008260809381008091BA +:102AE000810081608093810080918000816080936B +:102AF00080008091B10084608093B1008091B0002B +:102B000081608093B00080917A00846080937A0025 +:102B100080917A00826080937A0080917A0081604F +:102B200080937A0080917A00806880937A00109276 +:102B3000C100E0917503F091760382E08083E0911B +:102B40007103F09172031082E0917303F0917403AA +:102B500080E1808310927D03E0917903F0917A0304 +:102B600086E08083E0917703F09178038081806133 +:102B70008083E0917703F09178038081886080837F +:102B8000E0917703F0917803808180688083E09101 +:102B90007703F091780380818F7D80830E948F0777 +:102BA00012E061E0812F0E948F0260E0812F0E947D +:102BB00035021F5F1E30A9F70E94CB020E94C50597 +:102BC0000E945D0E68EC70E080E090E00E94980644 +:102BD000CE01429698A78FA377247394222423943E +:102BE000312C85E693E00E943401892B09F495C6C7 +:102BF00085E693E00E9434011816190694F785E6DD +:102C000093E00E94120190912B03853581F591117B +:102C10002EC080912A038F3F21F470922903709275 +:102C20002B03809129038F5F8433C0F580932903A0 +:102C300080912B038823A9F2809128038111D1CFA1 +:102C400080912903843068F210922B03E091F902FD +:102C5000D090FA020D2D10E02091F802223009F4F4 +:102C6000EBC00CF5213039F110922903BACF8093D3 +:102C70002A039923B1F2E0912903E23039F48093D9 +:102C80002803F0E0EC50FD4F8083CBCFE330C8F356 +:102C900090912803915090932803F3CF1092290329 +:102CA00010922B03C5CF233009F478C52430E1F608 +:102CB0000E94770ED9CFEA3371F510930E0100937D +:102CC0000D01F801EE0FFF1FE35CFC4F3182208203 +:102CD00020933C0380910B0190910C010817190778 +:102CE00041F08091090190910A010817190709F034 +:102CF00082C010923B0310922C0310922D0310926D +:102D00002E0310922F03000F111FF801E35CFC4FFC +:102D100011821082A9CFE730F1F5F090FB028F2DE0 +:102D200090E030913B03311127C020933B03109377 +:102D30000C0100930B0190930A0180930901000F8D +:102D4000111FF801E35CFC4F31822082880F991F2C +:102D5000FC01E35CFC4F3182208261E08D2D0E94FA +:102D60008F0260E08F2D0E948F0262E370E080E0AE +:102D700090E00E94980678CF20910B0130910C01D1 +:102D800002171307A1F62091090130910A012817B3 +:102D9000390769F669CFF0E0E231F10571F420936B +:102DA0003A031093F3020093F202000F111FF8018F +:102DB000E35CFC4F3182208257CFE331F10519F4F7 +:102DC00070923903EECFE930F10569F40E948F0764 +:102DD00060E082E00E948F0280913803811144CF2D +:102DE0007092380341CF3A9709F074CF0E948F0751 +:102DF00061E083E0EFCF0230110569F489E394E0EC +:102E00000E947907109238030E94481010924203E2 +:102E10001092410329CF0330110509F074CF89E3E3 +:102E200094E00E947907109238030E944810109293 +:102E300044031092430318CF80910B0190910C0131 +:102E40000817190739F08091090190910A010817B4 +:102E5000190751F410923B0310922C0310922D038A +:102E600010922E0310922F03E150EB3308F020CF85 +:102E70000E2E000CFF0BE15CF84E0C94CD21B11727 +:102E80005816CA178C19D417581658168E1B581670 +:102E90005816581658169A1BB61B58165816581618 +:102EA00058165816FA172918681874188818991897 +:102EB000D318DB182F19AF185816581658167A174A +:102EC000581658165816581658169918581658164F +:102ED0005816581658165816581658165816581682 +:102EE0005816581658165816581658165816581672 +:102EF0005816BA170E94E00D0E94D50D88E590E0A3 +:102F00000E94D3218C01209107013091080140914A +:102F100005015091060160910301709104010E9426 +:102F20001A0DF801EA5AFF4F80819181181619068F +:102F30002CF470E060E0C8010E94F50CC8010E940A +:102F40006F2210E000E020E040E060E0C8010E9455 +:102F500090000F5F1F4F00341105A9F70E94C505AF +:102F6000A7CEC8010E94FA096091FB028D2D0E9434 +:102F700035029ECEC8010E94FA098091FB0220E032 +:102F800030E0A9016DE47AE0811130C08D2D0E94FE +:102F900063028ECEC8010E94FA096091FB0270E0C4 +:102FA0008D2D0E94430584CEC8010E94FA098091AC +:102FB000FB028093E0028091FC028093E102609129 +:102FC000E0027091E1028091FD028093E002809125 +:102FD000FE028093E1022091E0023091E10212169C +:102FE0001306A4F6032E000C440B550B8D2D0E94E6 +:102FF000DD025ECEC8010E94FA096091FB0270E01A +:10300000A801CE0101960E94900F86E1FE01319643 +:10301000A4E6B4E001900D928A95E1F78A859B853C +:103020000E946F228F81988597FD03C060E00E9407 +:103030008F020E94CB0210E000E020E040E060E060 +:10304000C8010E9490000F5F1F4F00341105A9F7BF +:1030500085CF8091FB02FF24F394F80E20916C043D +:10306000F21609F425CE00916D0410916E042150E2 +:1030700070E060E061F08F3FF1F430E050E040E05C +:103080006FEF7FEF80E090E00E94F21FB901F8013E +:103090004091680450916904CF01801B910B841703 +:1030A000950798F44081469FC001479F900D1124D9 +:1030B00090833196EDCF8F2D90E0982F8827019740 +:1030C000622F70E00E94A521E2CFF0926C04F0CD57 +:1030D0008091FB02209101034091FF026091FD026B +:1030E00090E00E9490003ACFF090FB02E090FD0249 +:1030F000D090FF0210E000E02D2D4E2D6F2DC80165 +:103100000E9490000F5F1F4F00341105A9F726CFD2 +:10311000C8010E94FA0910E000E020E040E060E011 +:10312000C8010E9490000F5F1F4F00341105A9F7DE +:1031300015CF8091FB0290E09093040180930301EE +:103140008091FD0290E090930601809305018091AB +:10315000FF0290E09093080180930701A9CD88E5D4 +:1031600090E00E94D3218C01209107013091080149 +:103170004091050150910601609103017091040195 +:103180000E941A0DF801EA5AFF4F808191811816AA +:1031900019062CF470E060E0C8010E94F50CC8012B +:1031A0000E946F2285CD8091FB0290E090930201F6 +:1031B000809301017DCD88E590E00E94D3218C01B0 +:1031C00020910701309108014091050150910601BD +:1031D00060910301709104010E941A0D780196E537 +:1031E000E90EF11CF70180819181181619063CF453 +:1031F00021E04CE070E060E0C8010E94630C209187 +:10320000010130910201F7018081918118161906A0 +:103210004CF42031310530F44AE070E060E0C80140 +:103220000E94630C88E0E5E1F1E0DE011196019077 +:103230000D928A95E1F7CE0101967C01D12CC12C2B +:10324000F70141917F01B601C8010E94DE0CFFEF3A +:10325000CF1ADF0A28E0C216D10491F7A0CF88E583 +:1032600090E00E94D3217C01209107013091080158 +:103270004091050150910601609103017091040194 +:103280000E941A0D570186E5A80EB11CF501808138 +:103290009181181619063CF421E04CE070E060E0E2 +:1032A000C7010E94630C2091010130910201F501D8 +:1032B00080819181181619064CF42031310530F4C3 +:1032C0004AE070E060E0C7010E94630C2091FB02BD +:1032D000822F90E0213009F0F9C088E0EDE1F1E0C3 +:1032E000DE01119601900D928A95E1F7CE010196CB +:1032F0004C01B12CA12CF40141914F01B501C70142 +:103300000E94DE0CFFEFAF1ABF0A28E0A216B1043C +:1033100091F7C7010E946F22C8010E94FA09C0906C +:10332000FB0284EB8C1508F4C3CCE2EEF2E090E0F3 +:1033300080E0219131910217130751F0232B09F0FE +:10334000E5C1FC01EE0FFF1FEE51FD4F118300831D +:10335000FC01EE0FFF1FE80FF91FE358FB4F8081C0 +:103360002181928180937A0420937B0490937C0442 +:103370008C3008F054C061E08D2D0E948F02809146 +:103380007A04282F30E0F901EE0FFF1FE20FF31F40 +:10339000E25FFB4F9D2D9F73D0802D2D207CD22E80 +:1033A000D92AD08210927B0410927C046CE00E9497 +:1033B0009921869FA001112430E020E0BA01620F1C +:1033C000731FFB01EE0FFF1FE60FF71FE25FFB4FBE +:1033D000908196FD16C02F5F3F4F2C30310571F75D +:1033E00081110FC01092800082E0809381001092C2 +:1033F000850010928400B19A80916F008260809362 +:103400006F00E0917A048E2F90E0FC01EE0FFF1F19 +:10341000E80FF91FE25FFB4F808180648083D090CA +:103420007A0480917C04E8E5EE2EE2E0FE2EE81AB4 +:10343000F10887FDF394EE0CFF1CEE0CFF1C80914D +:103440007B0408E810E0081B110987FD1395000FA5 +:10345000111F000F111F4801012E000CAA08BB0804 +:1034600097010F2C000C440B550B281939094A09F8 +:103470005B09AC2DB0E00E94112024EB30E040E06D +:1034800050E00E94F21F820E931EA41EB51EEBE0B8 +:10349000ED1508F40DCC801691062CF087018E14E2 +:1034A0009F040CF4840102501109000F111F2FB763 +:1034B000F8948D2D90E0FC01EE0FFF1FE80FF91F2F +:1034C000E25FFB4F128301832FBFF2CB8230910565 +:1034D000E9F488E0E5E2F1E0DE01119601900D9259 +:1034E0008A95E1F7CE0101964C01B12CA12CF40193 +:1034F00041914F01B501C7010E94DE0CFFEFAF1AE9 +:10350000BF0A28E0A216B10491F703CF83309105DA +:10351000E9F488E0EDE2F1E0DE01119601900D9210 +:103520008A95E1F7CE0101964C01B12CA12CF40152 +:1035300041914F01B501C7010E94DE0CFFEFAF1AA8 +:10354000BF0A28E0A216B10491F7E3CE84309105BA +:10355000E9F488E0E5E3F1E0DE01119601900D92D7 +:103560008A95E1F7CE0101964C01B12CA12CF40112 +:1035700041914F01B501C7010E94DE0CFFEFAF1A68 +:10358000BF0A28E0A216B10491F7C3CE8530910599 +:10359000E9F488E0EDE3F1E0DE01119601900D928F +:1035A0008A95E1F7CE0101964C01B12CA12CF401D2 +:1035B00041914F01B501C7010E94DE0CFFEFAF1A28 +:1035C000BF0A28E0A216B10491F7A3CE8630910578 +:1035D000E9F488E0E5E4F1E0DE01119601900D9256 +:1035E0008A95E1F7CE0101964C01B12CA12CF40192 +:1035F00041914F01B501C7010E94DE0CFFEFAF1AE8 +:10360000BF0A28E0A216B10491F783CE8730910556 +:10361000E9F488E0EDE4F1E0DE01119601900D920D +:103620008A95E1F7CE0101964C01B12CA12CF40151 +:1036300041914F01B501C7010E94DE0CFFEFAF1AA7 +:10364000BF0A28E0A216B10491F763CE8830910535 +:10365000E9F488E0E5E5F1E0DE01119601900D92D4 +:103660008A95E1F7CE0101964C01B12CA12CF40111 +:1036700041914F01B501C7010E94DE0CFFEFAF1A67 +:10368000BF0A28E0A216B10491F743CE8930910514 +:10369000E9F488E0EDE5F1E0DE01119601900D928C +:1036A0008A95E1F7CE0101964C01B12CA12CF401D1 +:1036B00041914F01B501C7010E94DE0CFFEFAF1A27 +:1036C000BF0A28E0A216B10491F723CE0A9709F0A9 +:1036D00020CE88E0E5E6F1E0DE01119601900D9242 +:1036E0008A95E1F7CE0101964C01B12CA12CF40191 +:1036F00041914F01B501C7010E94DE0CFFEFAF1AE7 +:10370000BF0A28E0A216B10491F703CE01968830D3 +:10371000910509F00ECE90E080E01ACE8FB7F894B4 +:103720004091300350913103609132037091330323 +:103730008FBFBECAC8010E940B0A6AE070E080E039 +:1037400090E00E949806C8010E940B0A6AE070E0AF +:1037500080E090E00E949806C8010E940B0A6AE08F +:1037600070E080E090E00E949806A2CAE090FB0220 +:10377000F090FD02D090FF020091010310E08E2D29 +:1037800090E00E94FA098F2D90E00E94FA096D2DB9 +:103790008E2D0E943502B8018F2D03CCEB3091F1B4 +:1037A00034F4EA3009F49DC00E94770E81CAEC30EF +:1037B00031F1E131C9F78091FF029091FD02209132 +:1037C000FB0210925B0410925A04211114C0F7E21C +:1037D000F0935C0410925D0410925E0410925F04FA +:1037E00010926004909361048093620410926304C9 +:1037F0000E945D0ED9CF2FE320935C04EBCF0E9493 +:10380000D50DD2CFB090FB02A090FD020091FF0237 +:1038100010E01AA219A21CA21BA21EA21DA250E017 +:1038200040E065EC71E0CE0181960E941D1051E0F0 +:10383000C52E53E0D52E035F1F4FC601845F924013 +:1038400080179107FCF4F60181916F0189831A8238 +:10385000EDA0FEA0FFEFEF1AFF0AB701CE0181969F +:103860000E94F50F882349F329A13AA18DA19EA1B9 +:10387000BE016F5F7F4F820F931F0E94C523FEA280 +:10388000EDA2DBCF88E0EDE6F1E0DE0111960190DC +:103890000D928A95E1F7809160048B1518F4BB2492 +:1038A000BA94B80EEB2DF0E0EE0FFF1F81E090E030 +:1038B0008C0F9D1FE80FF91F60816A0D606840E062 +:1038C00088E594E00E94BE0D4DA15EA169A17AA198 +:1038D00088E594E00E94D600CE0181960E94ED0F0B +:1038E00063CFA4EFB2E0FE013196BF0117968C9131 +:1038F0001797819312968FA198A58E179F07B1F7FE +:10390000FB0101900020E9F73197AF01461B570BEF +:1039100089E394E00E94D60047CF89E394E00E94B7 +:1039200040077C01892B71F189E394E00E944007F4 +:103930001816190694F789E394E00E9458078983C2 +:103940001A8200913704109138040F5F1F4FB8019D +:1039500083E394E00E94F50F8823F9F22091330469 +:10396000309134048091370490913804BE016F5F28 +:103970007F4F820F931F0E94C5231093380400933A +:103980003704CBCF6FE070E080E090E00E949806B3 +:1039900001E413E032E0D32EF801819191918F017F +:1039A000892BD9F460E08D2D0E948F020E945D0C5E +:1039B0008D2D0E940C02BC01990F880B990B0E945F +:1039C000D51E0E94390C8D2D0E94340C81E00E947E +:1039D000340C0E946F0E0E94770ED394FEE0DF122B +:1039E000DBCF25E7A22E21E0B22E10E0F501819178 +:1039F00091915F01892B09F067C094E1C92ED12C08 +:103A000022242394F12FF064FAA72AA520937C00A6 +:103A100080917A00806480937A0080917A0086FD9C +:103A2000FCCF8091780060917900762F682F072E67 +:103A3000000C880B990B0E94D51E762E872E982E8F +:103A4000092F222021F0662E79A7482E592E2DEC21 +:103A50003CEC4CEC5DE3662D79A5C2010E94341F5D +:103A60001B012C0126E636E646E65FE3672D782D3E +:103A7000892D902F0E94341F9B01AC01C201B1011E +:103A80000E948520662E79A72C0181E0C81AD108F2 +:103A9000212C09F0BACF0E945D0C662D79A5C201D8 +:103AA0000E946321072E000C880B990B0E94D51EE3 +:103AB0000E94390C812F0E94340C82E00E94340C49 +:103AC0000E946F0E0E94770E1F5F163009F08ECF96 +:103AD00080913C038823E9F010910D0162E0812F71 +:103AE0000E948F020E945D0C812F0E940C02BC017B +:103AF000990F880B990B0E94D51E0E94390C812FBB +:103B00000E94340C8AE30E94340C0E946F0E0E94C3 +:103B1000770E80913B03882309F46FC010910B014D +:103B200060E0812F0E94350283E090E00197F1F779 +:103B300061E0812F0E94350283E290E00197F1F766 +:103B400060E0812F0E9435028091090190910A0165 +:103B50009927FC01E155FF4F6491FC01E556FF4FA9 +:103B6000E491F0E0EE0FFF1FE957FF4F859194912C +:103B700000E315E720E030E0462F0E94D9136115DD +:103B800071058105910529F06F5F7F4F8F4F9F4F22 +:103B90009F700E94D31E20E030E048EE51E40E9466 +:103BA000F12020E030E040E05FE30E94341F4B0151 +:103BB0005C0120E030E0A9010E94CE1E811185C089 +:103BC00080902C0390902D03A0902E03B0902F0393 +:103BD0000E945D0CC501B4010E94390C80910B015B +:103BE0000E94340C809109010E94340C87E00E94ED +:103BF000340C0E946F0E0E94770E80913A03882346 +:103C000021F00E947F0E0E94770E80913903882355 +:103C100021F00E947F0E0E94770E80913803882346 +:103C200009F482C02FB7F89480913003909131034A +:103C3000A0913203B09133032FBF409134035091D0 +:103C400035036091360370913703841B950BA60BE7 +:103C5000B70B8C329140A105B10508F065C00E94F8 +:103C60005D0C1A8219821C821B821E821D82609149 +:103C70003304709134046115710541F040913704AB +:103C800050913804CE0101960E941D10DD800D2D4B +:103C90001E8184E00E94340C8D2D0E94340CE016AD +:103CA000F106F4F48D819E81E816F906B8F4898155 +:103CB0009A81009799F08E0D9F1DFC0180810E94D2 +:103CC000340CFFEFEF1AFF0AEACF80922C03909298 +:103CD0002D03A0922E03B0922F037ACF80E0EFCF76 +:103CE000CE0101960E94ED0F82E00E94340C89E023 +:103CF0000E94340C0E946F0E0E94770E6AE070E002 +:103D000080E090E00E94980680E090E0892B11F41A +:103D10000C94EC150E944001882311F40C94EC15CE +:103D20000E9400000C94EC1550E040E065EC71E05E +:103D300083E394E00E941D102FB7F8948091300324 +:103D400090913103A0913203B09133032FBF809340 +:103D5000340390933503A0933603B0933703CECF4B +:103D600083E394E00E94ED0F89EA91E090933A0496 +:103D70008093390489E394E00E94790780916D046F +:103D800090916E040E946F2280916A0490916B045E +:103D900097FD03C060E00C948F0208950E94101FED +:103DA00008F481E00895E89409C097FB3EF49095EB +:103DB0008095709561957F4F8F4F9F4F9923A9F004 +:103DC000F92F96E9BB279395F69587957795679593 +:103DD000B795F111F8CFFAF4BB0F11F460FF1BC0D7 +:103DE0006F5F7F4F8F4F9F4F16C0882311F096E96A +:103DF00011C0772321F09EE8872F762F05C0662318 +:103E000071F096E8862F70E060E02AF09A95660FD0 +:103E1000771F881FDAF7880F9695879597F9089589 +:103E2000990F0008550FAA0BE0E8FEEF16161706CB +:103E3000E807F907C0F012161306E407F50798F033 +:103E4000621B730B840B950B39F40A2661F0232B4C +:103E5000242B252B21F408950A2609F4A140A695C8 +:103E60008FEF811D811D08950E94471F0C94B81F7C +:103E70000E94AA1F38F00E94B11F20F0952311F074 +:103E80000C94A11F0C94A71F11240C94EC1F0E94EA +:103E9000C91F70F3959FC1F3950F50E0551F629FA6 +:103EA000F001729FBB27F00DB11D639FAA27F00D93 +:103EB000B11DAA1F649F6627B00DA11D661F829FBA +:103EC0002227B00DA11D621F739FB00DA11D621F9F +:103ED000839FA00D611D221F749F3327A00D611DBC +:103EE000231F849F600D211D822F762F6A2F11249E +:103EF0009F5750409AF0F1F088234AF0EE0FFF1FD1 +:103F0000BB1F661F771F881F91505040A9F79E3F27 +:103F1000510580F00C94A11F0C94EC1F5F3FE4F35B +:103F2000983ED4F3869577956795B795F795E7957D +:103F30009F5FC1F7FE2B880F911D9695879597F986 +:103F4000089597F99F6780E870E060E008959FEF1B +:103F500080EC089500240A94161617061806090620 +:103F6000089500240A9412161306140605060895EF +:103F7000092E0394000C11F4882352F0BB0F40F477 +:103F8000BF2B11F460FF04C06F5F7F4F8F4F9F4FB7 +:103F9000089557FD9058440F551F59F05F3F71F039 +:103FA0004795880F97FB991F61F09F3F79F08795A0 +:103FB0000895121613061406551FF2CF4695F1DF29 +:103FC00008C0161617061806991FF1CF86957105B9 +:103FD000610508940895E894BB2766277727CB01ED +:103FE00097F90895052E97FB1EF400940E9409206E +:103FF00057FD07D00E94532007FC03D04EF40C94C9 +:10400000092050954095309521953F4F4F4F5F4F78 +:10401000089590958095709561957F4F8F4F9F4F34 +:1040200008950E947520A59F900DB49F900DA49FA8 +:10403000800D911D112408952F923F924F925F920F +:104040006F927F928F929F92AF92BF92CF92DF92A8 +:10405000EF92FF920F931F93CF93DF93CDB7DEB70D +:10406000CA1BDB0B0FB6F894DEBF0FBECDBF0994A1 +:104070002A88398848885F846E847D848C849B84F8 +:10408000AA84B984C884DF80EE80FD800C811B8106 +:10409000AA81B981CE0FD11D0FB6F894DEBF0FBE35 +:1040A000CDBFED010895A1E21A2EAA1BBB1BFD0195 +:1040B0000DC0AA1FBB1FEE1FFF1FA217B307E40707 +:1040C000F50720F0A21BB30BE40BF50B661F771F5F +:1040D000881F991F1A9469F760957095809590953F +:1040E0009B01AC01BD01CF010895A29FB001B39F18 +:1040F000C001A39F700D811D1124911DB29F700DF1 +:10410000811D1124911D08955058BB27AA270E9494 +:104110009C200C94B81F0E94AA1F38F00E94B11F67 +:1041200020F039F49F3F19F426F40C94A71F0EF4E5 +:10413000E095E7FB0C94A11FE92F0E94C91F58F3DB +:10414000BA17620773078407950720F079F4A6F57C +:104150000C94EB1F0EF4E0950B2EBA2FA02D0B0143 +:10416000B90190010C01CA01A0011124FF27591BBC +:1041700099F0593F50F4503E68F11A16F040A22FC2 +:10418000232F342F4427585FF3CF46953795279533 +:10419000A795F0405395C9F77EF41F16BA0B620B32 +:1041A000730B840BBAF09150A1F0FF0FBB1F661F79 +:1041B000771F881FC2F70EC0BA0F621F731F841FBC +:1041C00048F4879577956795B795F7959E3F08F0E2 +:1041D000B0CF9395880F08F09927EE0F97958795A4 +:1041E00008950E9405210C94B81F0E94B11F58F039 +:1041F0000E94AA1F40F029F45F3F29F00C94A11FF0 +:1042000051110C94EC1F0C94A71F0E94C91F68F356 +:104210009923B1F3552391F3951B550BBB27AA277F +:1042200062177307840738F09F5F5F4F220F331FB9 +:10423000441FAA1FA9F335D00E2E3AF0E0E832D081 +:1042400091505040E695001CCAF72BD0FE2F29D084 +:10425000660F771F881FBB1F261737074807AB0756 +:10426000B0E809F0BB0B802DBF01FF2793585F4FCB +:104270003AF09E3F510578F00C94A11F0C94EC1F6E +:104280005F3FE4F3983ED4F3869577956795B795AD +:10429000F7959F5FC9F7880F911D9695879597F9B8 +:1042A0000895E1E0660F771F881FBB1F6217730731 +:1042B0008407BA0720F0621B730B840BBA0BEE1F46 +:1042C00088F7E09508950E946A216894B1110C94D2 +:1042D000EC1F08950E94D11F88F09F5798F0B92FC6 +:1042E0009927B751B0F0E1F0660F771F881F991F2B +:1042F0001AF0BA95C9F714C0B13091F00E94EB1FC3 +:10430000B1E008950C94EB1F672F782F8827B85FD2 +:1043100039F0B93FCCF3869577956795B395D9F782 +:104320003EF490958095709561957F4F8F4F9F4F8C +:104330000895991B79E004C0991F961708F0961B01 +:10434000881F7A95C9F780950895AA1BBB1B51E178 +:1043500007C0AA1FBB1FA617B70710F0A61BB70BF5 +:10436000881F991F5A95A9F780959095BC01CD019A +:10437000089597FB072E16F4009407D077FD09D017 +:104380000E94A52107FC05D03EF4909581959F4F92 +:104390000895709561957F4F0895EE0FFF1F05906A +:1043A000F491E02D09940F931F93CF93DF93823004 +:1043B000910510F482E090E0E0919704F091980468 +:1043C00030E020E0B0E0A0E0309799F4211531050D +:1043D00009F44AC0281B390B24303105D8F58A81ED +:1043E0009B816115710589F1FB0193838283FE0135 +:1043F00011C0408151810281138148175907E0F0B3 +:104400004817590799F4109761F012960C93129778 +:1044100013961C933296CF01DF91CF911F910F918C +:1044200008950093970410939804F4CF2115310553 +:1044300051F04217530738F0A901DB019A01BD0181 +:10444000DF01F801C1CFEF01F9CF90939804809379 +:104450009704CDCFFE01E20FF31F81939193225079 +:10446000310939832883D7CF209195043091960460 +:10447000232B41F4209111013091120130939604C5 +:104480002093950420910F013091100121153105E1 +:1044900041F42DB73EB74091130150911401241BF4 +:1044A000350BE0919504F0919604E217F307A0F420 +:1044B0002E1B3F0B2817390778F0AC014E5F5F4F7A +:1044C0002417350748F04E0F5F1F50939604409312 +:1044D0009504819391939FCFF0E0E0E09CCFCF9340 +:1044E000DF930097E9F0FC01329713821282A091CA +:1044F0009704B0919804ED0130E020E01097A1F40A +:1045000020813181820F931F209195043091960470 +:104510002817390709F061C0F0939604E0939504D9 +:10452000DF91CF910895EA01CE17DF07E8F54A81C0 +:104530005B819E0141155105B1F7E901FB83EA83D7 +:1045400049915991C40FD51FEC17FD0761F4808183 +:1045500091810296840F951FE90199838883828156 +:1045600093819B838A83F0E0E0E012968D919C9189 +:1045700013970097B9F52D913C911197CD010296B3 +:10458000820F931F209195043091960428173907C4 +:1045900039F6309751F51092980410929704B09321 +:1045A0009604A0939504BCCFD383C28340815181EC +:1045B000840F951FC817D90761F44E5F5F4F88813C +:1045C0009981480F591F518340838A819B8193832E +:1045D00082832115310509F0B0CFF0939804E09360 +:1045E00097049ECFFD01DC01C0CF13821282D7CF8A +:1045F000B0E0A0E0EEEFF2E20C941E208C010097F8 +:1046000051F4CB010E94D3218C01C801CDB7DEB794 +:10461000E0E10C943A20FC01E60FF71F9C012250C8 +:104620003109E217F30708F49DC0D901CD91DC915F +:104630001197C617D70798F0C530D10530F3CE01D2 +:1046400004978617970708F3C61BD70B2297C193C9 +:10465000D1936D937C93CF010E946F22D6CF5B01E3 +:10466000AC1ABD0A4C018C0E9D1EA0919704B0910E +:104670009804512C412CF12CE12C109731F58091AC +:104680009504909196048815990509F05CC046162A +:10469000570608F058C080910F01909110010097C3 +:1046A00041F48DB79EB74091130150911401841BC2 +:1046B000950BE817F90708F055C0F0939604E093BE +:1046C0009504F90171836083A0CF8D919C9111971E +:1046D00012966C90129713967C901397A815B905B3 +:1046E00059F56C0142E0C40ED11CCA14DB0420F160 +:1046F000AC014A195B09DA011296159780F06282C3 +:10470000738251834083D9016D937C93E114F1044A +:1047100071F0D7011396FC93EE93129776CF229601 +:104720008C0F9D1FF90191838083F301EFCFF093EC +:104730009804E093970469CF4816590608F42C01B1 +:104740007D01D3019ACFCB010E94D3217C01009738 +:1047500049F0AE01B8010E94B523C8010E946F2242 +:10476000870153CF10E000E050CFFB01DC0102C015 +:1047700001900D9241505040D8F70895DC0101C0DE +:104780006D9341505040E0F70895FB01DC0101902A +:104790000D920020E1F7089510E0C3E6D0E004C0D8 +:1047A000FE010E94CD212196C436D107C9F7F894A5 +:0247B000FFCF39 +:1047B200FF08000C000B000A000C000D000A0000AC +:1047C200009904800081C3A59999A5C38166FFFF62 +:1047D200FF7E3C180066998181422418000010383F +:1047E2005410101000001010105438100000102047 +:1047F2007E201000000008047E040800000042A58C +:104802000000423C000000E742421824008142249A +:1048120000003C7E7E00422442003C2418000040FE +:10482200001400540000000000000000000000001E +:1048320000000000007601D6000301C3013401121A +:1048420001260100000000E008B308F709E306AC06 +:104852000899088A0800000000E406D600F709E378 +:104862000640075807CB0600000000690ED600F785 +:0648720009F6090D0A0021 +:00000001FF diff --git a/app/modules/dalgona.js b/app/modules/dalgona.js index 16c4d18ac..958b96250 100644 --- a/app/modules/dalgona.js +++ b/app/modules/dalgona.js @@ -56,13 +56,13 @@ function Module() { GYROY: 56, GYROZ: 57, PULLUP: 58, - // FNDINIT: 59, + TONETOGGLE: 59, }; this.actionTypes = { GET: 1, SET: 2, - MODUEL: 3, + MODULE: 3, RESET: 4, }; @@ -548,10 +548,13 @@ Module.prototype.makeOutputBuffer = function (device, port, data) { buffer = Buffer.concat([buffer, value1, value2, stime, dummy]); break; } - case this.sensorTypes.DIGITAL: + case this.sensorTypes.DIGITAL:{ + console.log("digital"); + console.log(buffer); + } case this.sensorTypes.PWM: { value.writeInt16LE(data); - buffer = new Buffer([255, 85, 6, sensorIdx, this.actionTypes.SET, device, port]); + buNffer = new Buffer([255, 85, 6, sensorIdx, this.actionTypes.SET, device, port]); buffer = Buffer.concat([buffer, value, dummy]); break; } @@ -573,6 +576,18 @@ Module.prototype.makeOutputBuffer = function (device, port, data) { buffer = Buffer.concat([buffer, value, time, dummy]); break; } + + case this.sensorTypes.TONETOGGLE:{ + value.writeInt16LE(data); + buffer = new Buffer([255, 85, 6, sensorIdx, this.actionTypes.SET, device, port]); + buffer = Buffer.concat([buffer, value, dummy]); + + console.log("tonetoggle"); + console.log(buffer); + + break; + } + case this.sensorTypes.RGBLED: { const port1 = new Buffer(2); const port2 = new Buffer(2); @@ -634,62 +649,6 @@ Module.prototype.makeOutputBuffer = function (device, port, data) { } - // case this.sensorTypes.FNDINIT: { - // const fndClk = Buffer.alloc(2); - // const fndDio = Buffer.alloc(2); - // const fndBrightnessLev = Buffer.alloc(2); - // const fndOnOff = Buffer.alloc(2); - // const fndBlockIndex = Buffer.alloc(2); - // const fndDelayMs = Buffer.alloc(2); - // const fndDisplayStrLength = Buffer.alloc(2); - // const fndDisplayStr0 = Buffer.alloc(2); - // const fndDisplayStr1 = Buffer.alloc(2); - // const fndDisplayStr2 = Buffer.alloc(2); - // const fndDisplayStr3 = Buffer.alloc(2); - - // if ($.isPlainObject(data)) { - // fndClk.writeInt16LE(data.clk_pin); - // fndDio.writeInt16LE(data.dio_pin); - // // FND Init Block Area Above - - // fndBrightnessLev.writeInt16LE(data.level_val); - // fndBlockIndex.writeInt16LE(data.block_index); - // // FND Display Block Area Above - - // fndOnOff.writeInt16LE(data.onoff); - // fndDelayMs.writeInt16LE(data.delay_ms); - - // fndDisplayStrLength.writeInt16LE(data.str_length); - // fndDisplayStr0.writeInt16LE(data.data_0); - // fndDisplayStr1.writeInt16LE(data.data_1); - // fndDisplayStr2.writeInt16LE(data.data_2); - // fndDisplayStr3.writeInt16LE(data.data_3); - // } else { - // fndClk.writeInt16LE(0); - // fndDio.writeInt16LE(0); - // // FND Init Block Area Above - - // fndBrightnessLev.writeInt16LE(0); - // fndBlockIndex.writeInt16LE(0); - // // FND Display Block Area Above - - // fndOnOff.writeInt16LE(0); - // fndDelayMs.writeInt16LE(0); - - // fndDisplayStrLength.writeInt16LE(0); - // fndDisplayStr0.writeInt16LE(0); - // fndDisplayStr1.writeInt16LE(0); - // fndDisplayStr2.writeInt16LE(0); - // fndDisplayStr3.writeInt16LE(0); - // } - - // buffer = Buffer.from([255, 85, 26, sensorIdx, this.actionTypes.MODUEL, device, port]); - // buffer = Buffer.concat([buffer, fndBlockIndex, fndClk, fndDio, fndBrightnessLev, fndOnOff, fndDisplayStrLength, fndDisplayStr0, fndDisplayStr1, fndDisplayStr2, fndDisplayStr3, fndDelayMs, dummy]); - - // break; - // } - - case this.sensorTypes.NEOPIXELINIT: { value.writeInt16LE(data); buffer = new Buffer([255, 85, 6, sensorIdx, this.actionTypes.SET, device, port]); diff --git a/app/modules/dalgona_basic.js b/app/modules/dalgona_basic.js new file mode 100644 index 000000000..958b96250 --- /dev/null +++ b/app/modules/dalgona_basic.js @@ -0,0 +1,1081 @@ +function Module() { + this.sp = null; + this.sensorTypes = { + ALIVE: 0, + DIGITAL: 1, + ANALOG: 2, + PWM: 3, + SERVO: 4, + TONE: 5, + PULSEIN: 6, + ULTRASONIC: 7, + TIMER: 8, + LCD: 11, + LCDCLEAR: 12, + RGBLED: 13, + DCMOTOR: 14, + PIR: 16, + LCDINIT: 17, + DHTHUMI: 18, + DHTTEMP: 19, + NEOPIXELINIT: 20, + NEOPIXELBRIGHT: 21, + NEOPIXEL: 22, + NEOPIXELALL: 23, + NEOPIXELCLEAR: 24, + DOTMATRIXINIT: 25, + DOTMATRIXBRIGHT: 26, + DOTMATRIX: 27, + DOTMATRIXEMOJI: 28, + DOTMATRIXCLEAR: 29, + MP3INIT: 30, + MP3PLAY1: 31, + MP3PLAY2: 32, + MP3VOL: 33, + LOADINIT: 35, + LOADSCALE: 36, + LOADVALUE: 37, + DUST: 38, + JOYINIT: 39, + JOYX: 40, + JOYY: 41, + JOYZ: 42, + JOYMOVE: 43, + RFIDINIT: 44, + RFIDTAP: 45, + RFIDVALUE: 46, + STEPINIT: 47, + STEPSPEED: 48, + STEPROTATE: 49, + STEPROTATE2: 50, + STEPROTATE3: 51, + MLXOBJ: 52, + MLXAMB: 53, + SERVO2: 54, + GYROX: 55, + GYROY: 56, + GYROZ: 57, + PULLUP: 58, + TONETOGGLE: 59, + }; + + this.actionTypes = { + GET: 1, + SET: 2, + MODULE: 3, + RESET: 4, + }; + + this.sensorValueSize = { + FLOAT: 2, + SHORT: 3, + STRING: 4, + }; + + this.digitalPortTimeList = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]; + + this.sensorData = { + ULTRASONIC: { + 0: 0, + 1: 0, + 2: 0, + 3: 0, + 4: 0, + 5: 0, + 6: 0, + 7: 0, + 8: 0, + 9: 0, + 10: 0, + 11: 0, + 12: 0, + 13: 0, + }, + DHTTEMP: 0, + DHTHUMI: 0, + LOADVALUE: 0, + RFIDTAP: 0, + RFIDVALUE: 0, + DUST: 0, + JOYX: 0, + JOYY: 0, + JOYZ: 0, + MLXOBJ: 0, + MLXAMB: 0, + GYROX: 0, + GYROY: 0, + GYROZ: 0, + DIGITAL: { + 0: 0, + 1: 0, + 2: 0, + 3: 0, + 4: 0, + 5: 0, + 6: 0, + 7: 0, + 8: 0, + 9: 0, + 10: 0, + 11: 0, + 12: 0, + 13: 0, + }, + PULLUP: { + 0: 0, + 1: 0, + 2: 0, + 3: 0, + 4: 0, + 5: 0, + 6: 0, + 7: 0, + 8: 0, + 9: 0, + 10: 0, + 11: 0, + 12: 0, + 13: 0, + }, + ANALOG: { + 0: 0, + 1: 0, + 2: 0, + 3: 0, + 4: 0, + 5: 0, + }, + PULSEIN: {}, + TIMER: 0, + }; + + this.defaultOutput = {}; + + this.recentCheckData = {}; + + this.sendBuffers = []; + + this.lastTime = 0; + this.lastSendTime = 0; + this.isDraing = false; +} + +let sensorIdx = 0; + +Module.prototype.init = function (handler, config) {}; + +Module.prototype.setSerialPort = function (sp) { + const self = this; + this.sp = sp; +}; + +Module.prototype.requestInitialData = function () { + return new Buffer([1]); + // return true; + // MRT 개선 코드 구성 중 : 주석 처리 시 자사 다른 펌웨어와의 연결 오류 없음 + // return this.makeSensorReadBuffer(this.sensorTypes.ANALOG, 0); +}; + +Module.prototype.checkInitialData = function (data, config) { + return true; + // 이후에 체크 로직 개선되면 처리 + // var datas = this.getDataByBuffer(data); + // var isValidData = datas.some(function (data) { + // return (data.length > 4 && data[0] === 255 && data[1] === 85); + // }); + // return isValidData; +}; + +Module.prototype.afterConnect = function (that, cb) { + that.connected = true; + if (cb) { + cb('connected'); + } +}; + +Module.prototype.validateLocalData = function (data) { + return true; +}; + +Module.prototype.requestRemoteData = function (handler) { + const self = this; + if (!self.sensorData) { + return; + } + Object.keys(this.sensorData).forEach((key) => { + if (self.sensorData[key] != undefined) { + handler.write(key, self.sensorData[key]); + } + }); +}; + +Module.prototype.handleRemoteData = function (handler) { + const self = this; + const getDatas = handler.read('GET'); + const setDatas = handler.read('SET') || this.defaultOutput; + const time = handler.read('TIME'); + let buffer = new Buffer([]); + if (getDatas) { + const keys = Object.keys(getDatas); + keys.forEach((key) => { + let isSend = false; + const dataObj = getDatas[key]; + if (typeof dataObj.port === 'string' || typeof dataObj.port === 'number') { + const time = self.digitalPortTimeList[dataObj.port]; + if (dataObj.time > time) { + isSend = true; + self.digitalPortTimeList[dataObj.port] = dataObj.time; + } + } else if (Array.isArray(dataObj.port)) { + isSend = dataObj.port.every((port) => { + const time = self.digitalPortTimeList[port]; + return dataObj.time > time; + }); + + if (isSend) { + dataObj.port.forEach((port) => { + self.digitalPortTimeList[port] = dataObj.time; + }); + } + } + + if (isSend) { + if (!self.isRecentData(dataObj.port, key, dataObj.data)) { + self.recentCheckData[dataObj.port] = { + type: key, + data: dataObj.data, + }; + buffer = Buffer.concat([ + buffer, + self.makeSensorReadBuffer(key, dataObj.port, dataObj.data), + ]); + } + } + }); + } + + if (setDatas) { + const setKeys = Object.keys(setDatas); + setKeys.forEach((port) => { + const data = setDatas[port]; + if (data) { + if (self.digitalPortTimeList[port] < data.time) { + self.digitalPortTimeList[port] = data.time; + + if (!self.isRecentData(port, data.type, data.data)) { + self.recentCheckData[port] = { + type: data.type, + data: data.data, + }; + buffer = Buffer.concat([ + buffer, + self.makeOutputBuffer(data.type, port, data.data), + ]); + } + } + } + }); + } + if (buffer.length) { + this.sendBuffers.push(buffer); + } +}; + +Module.prototype.isRecentData = function (port, type, data) { + // var that = this; + // var isRecent = false; + + // if (type == this.sensorTypes.ULTRASONIC) { + // var portString = port.toString(); + // var isGarbageClear = false; + // Object.keys(this.recentCheckData).forEach(function (key) { + // var recent = that.recentCheckData[key]; + // if (key === portString) { + // } + // if (key !== portString && recent.type == that.sensorTypes.ULTRASONIC) { + // delete that.recentCheckData[key]; + // isGarbageClear = true; + // } + // }); + + // if ((port in this.recentCheckData && isGarbageClear) || !(port in this.recentCheckData)) { + // isRecent = false; + // } else { + // isRecent = true; + // } + // } else if (port in this.recentCheckData && type != this.sensorTypes.TONE) { + // if (this.recentCheckData[port].type === type && this.recentCheckData[port].data === data) { + // isRecent = true; + // } + // } + + // return isRecent; + let isRecent = false; + + if (port in this.recentCheckData) { + if ( + type != this.sensorTypes.TONE && + this.recentCheckData[port].type === type && + this.recentCheckData[port].data === data + ) { + isRecent = true; + } + } + + return isRecent; +}; + +Module.prototype.requestLocalData = function () { + const self = this; + + if (!this.isDraing && this.sendBuffers.length > 0) { + this.isDraing = true; + this.sp.write(this.sendBuffers.shift(), () => { + if (self.sp) { + self.sp.drain(() => { + self.isDraing = false; + }); + } + }); + } + + return null; +}; + +/* + ff 55 idx size data a + */ + +// 펌웨어에서 입력된 값을 처리하는 Buffer +Module.prototype.handleLocalData = function (data) { + const self = this; + const datas = this.getDataByBuffer(data); + // console.log(datas); + datas.forEach((data) => { + if (data.length <= 4 || data[0] !== 255 || data[1] !== 85) { + return; + } + const readData = data.subarray(2, data.length); + // console.log(readData); + let value; + switch (readData[0]) { + case self.sensorValueSize.FLOAT: { + value = new Buffer(readData.subarray(1, 5)).readFloatLE(); + value = Math.round(value * 100) / 100; + break; + } + case self.sensorValueSize.SHORT: { + value = new Buffer(readData.subarray(1, 3)).readInt16LE(); + break; + } + case self.sensorValueSize.STRING: { + value = new Buffer(readData[1] + 3); + value = readData.slice(2, readData[1] + 3); + // value = value.toString('ascii', 0, value.length); + value = value.toString(); + break; + } + default: { + value = 0; + break; + } + } + + const type = readData[readData.length - 1]; + const port = readData[readData.length - 2]; + // if(port == 9) + // { + // console.log(readData); + // } + switch (type) { + case self.sensorTypes.DIGITAL: { + self.sensorData.DIGITAL[port] = value; + break; + } + case self.sensorTypes.PULLUP: { + self.sensorData.PULLUP[port] = value; + break; + } + case self.sensorTypes.ANALOG: { + self.sensorData.ANALOG[port] = value; + break; + } + case self.sensorTypes.PULSEIN: { + self.sensorData.PULSEIN[port] = value; + break; + } + case self.sensorTypes.DHTTEMP: { + self.sensorData.DHTTEMP = value; + break; + } + case self.sensorTypes.DHTHUMI: { + self.sensorData.DHTHUMI = value; + break; + } + case self.sensorTypes.ULTRASONIC: { + self.sensorData.ULTRASONIC[port] = value; + break; + } + case self.sensorTypes.DUST: { + self.sensorData.DUST = value; + break; + } + case self.sensorTypes.TIMER: { + self.sensorData.TIMER = value; + break; + } + case self.sensorTypes.LOADVALUE: { + self.sensorData.LOADVALUE = value; + break; + } + case self.sensorTypes.RFIDTAP: { + self.sensorData.RFIDTAP = value; + break; + } + case self.sensorTypes.RFIDVALUE: { + value = value.substring(0, value.length - 1); //마지막에 쓰레기값 출력X + self.sensorData.RFIDVALUE = value; + // console.log(readData); + break; + } + case self.sensorTypes.MLXOBJ: { + self.sensorData.MLXOBJ = value; + break; + } + case self.sensorTypes.MLXAMB: { + self.sensorData.MLXAMB = value; + break; + } + default: { + break; + } + } + }); +}; + +/* + ff 55 len idx action device port slot data a + 0 1 2 3 4 5 6 7 8 + */ +// 엔트리 블럭 화면에서 입력에 해당하는 블럭을 사용했을 때, 펌웨어쪽으로 보내는 Buffer +Module.prototype.makeSensorReadBuffer = function (device, port, data) { + let buffer; + const dummy = new Buffer([10]); + if (device == this.sensorTypes.DIGITAL) { + //data 2: pull up, 0: normal + buffer = new Buffer([255, 85, 6, sensorIdx, this.actionTypes.GET, device, port, data, 10]); + } else if (device == this.sensorTypes.PULLUP) { + //data 2: pull up, 0: normal + //pullup인 경우 + buffer = new Buffer([255, 85, 6, sensorIdx, this.actionTypes.GET, device, port, data, 10]); + } else if (device == this.sensorTypes.RFIDTAP) { + buffer = new Buffer([255, 85, 5, sensorIdx, this.actionTypes.GET, device, port, 10]); + } else if (device == this.sensorTypes.ULTRASONIC) { + buffer = new Buffer([ + 255, + 85, + 6, + sensorIdx, + this.actionTypes.GET, + device, + port[0], + port[1], + 10, + ]); + } else if (device == this.sensorTypes.DUST) { + buffer = new Buffer([ + 255, + 85, + 6, + sensorIdx, + this.actionTypes.GET, + device, + port[0], + port[1], + 10, + ]); + } else if (device == this.sensorTypes.DHTTEMP) { + buffer = new Buffer([255, 85, 5, sensorIdx, this.actionTypes.GET, device, port, 10]); + } else if (device == this.sensorTypes.DHTHUMI) { + buffer = new Buffer([255, 85, 5, sensorIdx, this.actionTypes.GET, device, port, 10]); + } else if (device == this.sensorTypes.LOADVALUE) { + buffer = new Buffer([255, 85, 5, sensorIdx, this.actionTypes.GET, device, port, 10]); + } else if (device == this.sensorTypes.RFIDVALUE) { + buffer = new Buffer([255, 85, 5, sensorIdx, this.actionTypes.GET, device, port, 10]); + } else if (device == this.sensorTypes.MLXOBJ) { + buffer = new Buffer([255, 85, 5, sensorIdx, this.actionTypes.GET, device, port, 10]); + } else if (device == this.sensorTypes.MLXAMB) { + buffer = new Buffer([255, 85, 5, sensorIdx, this.actionTypes.GET, device, port, 10]); + } else if (!data) { + buffer = new Buffer([255, 85, 5, sensorIdx, this.actionTypes.GET, device, port, 10]); + } else { + let value = new Buffer(2); + value.writeInt16LE(data); + buffer = new Buffer([255, 85, 7, sensorIdx, this.actionTypes.GET, device, port, 10]); + buffer = Buffer.concat([buffer, value, dummy]); + } + sensorIdx++; + if (sensorIdx > 254) { + sensorIdx = 0; + } + + return buffer; +}; + +//0xff 0x55 0x6 0x0 0x1 0xa 0x9 0x0 0x0 0xa + +// 엔트리 블럭 화면에서 출력에 해당하는 블럭을 사용했을 때, 펌웨어쪽으로 보내는 Buffer +Module.prototype.makeOutputBuffer = function (device, port, data) { + let buffer; + const value = new Buffer(2); + const dummy = new Buffer([10]); + switch (device) { + case this.sensorTypes.SERVO: { + value.writeInt16LE(data); + buffer = new Buffer([255, 85, 6, sensorIdx, this.actionTypes.SET, device, port]); + buffer = Buffer.concat([buffer, value, dummy]); + break; + } + case this.sensorTypes.SERVO2: { + const value1 = new Buffer(2); + const value2 = new Buffer(2); + const stime = new Buffer(2); + value1.writeInt16LE(data.value1); + value2.writeInt16LE(data.value2); + stime.writeInt16LE(data.stime); + + buffer = new Buffer([255, 85, 10, sensorIdx, this.actionTypes.SET, device, port]); + buffer = Buffer.concat([buffer, value1, value2, stime, dummy]); + break; + } + case this.sensorTypes.DIGITAL:{ + console.log("digital"); + console.log(buffer); + } + case this.sensorTypes.PWM: { + value.writeInt16LE(data); + buNffer = new Buffer([255, 85, 6, sensorIdx, this.actionTypes.SET, device, port]); + buffer = Buffer.concat([buffer, value, dummy]); + break; + } + case this.sensorTypes.RESET_: { + buffer = new Buffer([255, 85, 4, sensorIdx, this.actionTypes.SET, device, port]); + buffer = Buffer.concat([buffer, dummy]); + break; + } + case this.sensorTypes.TONE: { + const time = new Buffer(2); + if ($.isPlainObject(data)) { + value.writeInt16LE(data.value); + time.writeInt16LE(data.duration); + } else { + value.writeInt16LE(0); + time.writeInt16LE(0); + } + buffer = new Buffer([255, 85, 8, sensorIdx, this.actionTypes.SET, device, port]); + buffer = Buffer.concat([buffer, value, time, dummy]); + break; + } + + case this.sensorTypes.TONETOGGLE:{ + value.writeInt16LE(data); + buffer = new Buffer([255, 85, 6, sensorIdx, this.actionTypes.SET, device, port]); + buffer = Buffer.concat([buffer, value, dummy]); + + console.log("tonetoggle"); + console.log(buffer); + + break; + } + + case this.sensorTypes.RGBLED: { + const port1 = new Buffer(2); + const port2 = new Buffer(2); + const port3 = new Buffer(2); + const value1 = new Buffer(2); + const value2 = new Buffer(2); + const value3 = new Buffer(2); + port1.writeInt16LE(data.port1); + port2.writeInt16LE(data.port2); + port3.writeInt16LE(data.port3); + value1.writeInt16LE(data.value1); + value2.writeInt16LE(data.value2); + value3.writeInt16LE(data.value3); + // if ($.isPlainObject(data)) { + // port1.writeInt16LE(data.port1); + // port2.writeInt16LE(data.port2); + // port3.writeInt16LE(data.port3); + // value1.writeInt16LE(data.value1); + // value2.writeInt16LE(data.value2); + // value3.writeInt16LE(data.value3); + // } else { + // port1.writeInt16LE(data.port1); + // port2.writeInt16LE(data.port2); + // port3.writeInt16LE(data.port3); + // value1.writeInt16LE(0); + // value2.writeInt16LE(0); + // value3.writeInt16LE(0); + // } + buffer = new Buffer([255, 85, 16, sensorIdx, this.actionTypes.SET, device, port]); + buffer = Buffer.concat([buffer, port1, port2, port3, value1, value2, value3, dummy]); + break; + } + case this.sensorTypes.DCMOTOR: { + const directionPort = new Buffer(2); + const speedPort = new Buffer(2); + const directionValue = new Buffer(2); + const speedValue = new Buffer(2); + if ($.isPlainObject(data)) { + directionPort.writeInt16LE(data.port0); + speedPort.writeInt16LE(data.port1); + directionValue.writeInt16LE(data.value0); + speedValue.writeInt16LE(data.value1); + } else { + directionPort.writeInt16LE(0); + speedPort.writeInt16LE(0); + directionValue.writeInt16LE(0); + speedValue.writeInt16LE(0); + } + buffer = new Buffer([255, 85, 12, sensorIdx, this.actionTypes.SET, device, port]); + buffer = Buffer.concat([ + buffer, + directionPort, + speedPort, + directionValue, + speedValue, + dummy, + ]); + break; + } + + + case this.sensorTypes.NEOPIXELINIT: { + value.writeInt16LE(data); + buffer = new Buffer([255, 85, 6, sensorIdx, this.actionTypes.SET, device, port]); + buffer = Buffer.concat([buffer, value, dummy]); + break; + } + case this.sensorTypes.NEOPIXELBRIGHT: { + value.writeInt16LE(data); + buffer = new Buffer([255, 85, 6, sensorIdx, this.actionTypes.SET, device, port]); + buffer = Buffer.concat([buffer, value, dummy]); + break; + } + case this.sensorTypes.NEOPIXEL: { + const num = new Buffer(2); + const r = new Buffer(2); + const g = new Buffer(2); + const b = new Buffer(2); + if ($.isPlainObject(data)) { + num.writeInt16LE(data.num); + r.writeInt16LE(data.r); + g.writeInt16LE(data.g); + b.writeInt16LE(data.b); + } else { + num.writeInt16LE(0); + r.writeInt16LE(0); + g.writeInt16LE(0); + b.writeInt16LE(0); + } + buffer = new Buffer([255, 85, 12, sensorIdx, this.actionTypes.SET, device, port]); + buffer = Buffer.concat([buffer, num, r, g, b, dummy]); + break; + } + case this.sensorTypes.NEOPIXELALL: { + const r = new Buffer(2); + const g = new Buffer(2); + const b = new Buffer(2); + if ($.isPlainObject(data)) { + r.writeInt16LE(data.r); + g.writeInt16LE(data.g); + b.writeInt16LE(data.b); + } else { + r.writeInt16LE(0); + g.writeInt16LE(0); + b.writeInt16LE(0); + } + buffer = new Buffer([255, 85, 10, sensorIdx, this.actionTypes.SET, device, port]); + buffer = Buffer.concat([buffer, r, g, b, dummy]); + break; + } + case this.sensorTypes.NEOPIXELCLEAR: { + buffer = new Buffer([255, 85, 4, sensorIdx, this.actionTypes.SET, device, port]); + buffer = Buffer.concat([buffer, dummy]); + break; + } + + + + case this.sensorTypes.JOYINIT: { + const port1 = new Buffer(2); + const port2 = new Buffer(2); + const port3 = new Buffer(2); + if ($.isPlainObject(data)) { + port1.writeInt16LE(data.port1); + port2.writeInt16LE(data.port2); + port3.writeInt16LE(data.port3); + } else { + port1.writeInt16LE(0); + port2.writeInt16LE(0); + port3.writeInt16LE(0); + } + buffer = new Buffer([255, 85, 10, sensorIdx, this.actionTypes.SET, device, port]); + buffer = Buffer.concat([buffer, port1, port2, port3, dummy]); + break; + } + case this.sensorTypes.STEPINIT: { + const num = new Buffer(2); + const port1 = new Buffer(2); + const port2 = new Buffer(2); + const port3 = new Buffer(2); + const port4 = new Buffer(2); + if ($.isPlainObject(data)) { + num.writeInt16LE(data.num); + port1.writeInt16LE(data.port1); + port2.writeInt16LE(data.port2); + port3.writeInt16LE(data.port3); + port4.writeInt16LE(data.port4); + } else { + num.writeInt16LE(0); + port1.writeInt16LE(0); + port2.writeInt16LE(0); + port3.writeInt16LE(0); + port4.writeInt16LE(0); + } + buffer = new Buffer([255, 85, 14, sensorIdx, this.actionTypes.SET, device, port]); + buffer = Buffer.concat([buffer, num, port1, port2, port3, port4, dummy]); + break; + } + case this.sensorTypes.STEPSPEED: { + const num = new Buffer(2); + const speed = new Buffer(2); + if ($.isPlainObject(data)) { + num.writeInt16LE(data.num); + speed.writeInt16LE(data.speed); + } else { + num.writeInt16LE(0); + speed.writeInt16LE(0); + } + buffer = new Buffer([255, 85, 8, sensorIdx, this.actionTypes.SET, device, port]); + buffer = Buffer.concat([buffer, num, speed, dummy]); + break; + } + case this.sensorTypes.STEPROTATE: { + const num = new Buffer(2); + const dir = new Buffer(2); + const val = new Buffer(4); + if ($.isPlainObject(data)) { + num.writeInt16LE(data.num); + dir.writeInt16LE(data.dir); + val.writeFloatLE(data.val); + } else { + num.writeInt16LE(0); + dir.writeInt16LE(0); + val.writeFloatLE(0); + } + buffer = new Buffer([255, 85, 12, sensorIdx, this.actionTypes.SET, device, port]); + buffer = Buffer.concat([buffer, num, dir, val, dummy]); + break; + } + case this.sensorTypes.STEPROTATE2: { + const num = new Buffer(2); + const dir = new Buffer(2); + const val = new Buffer(4); + if ($.isPlainObject(data)) { + num.writeInt16LE(data.num); + dir.writeInt16LE(data.dir); + val.writeFloatLE(data.val); + } else { + num.writeInt16LE(0); + dir.writeInt16LE(0); + val.writeFloatLE(0); + } + buffer = new Buffer([255, 85, 12, sensorIdx, this.actionTypes.SET, device, port]); + buffer = Buffer.concat([buffer, num, dir, val, dummy]); + break; + } + case this.sensorTypes.STEPROTATE3: { + const num = new Buffer(2); + const dir = new Buffer(2); + const sec = new Buffer(2); + if ($.isPlainObject(data)) { + num.writeInt16LE(data.num); + dir.writeInt16LE(data.dir); + sec.writeInt16LE(data.sec); + } else { + num.writeInt16LE(0); + dir.writeInt16LE(0); + sec.writeInt16LE(0); + } + buffer = new Buffer([255, 85, 10, sensorIdx, this.actionTypes.SET, device, port]); + buffer = Buffer.concat([buffer, num, dir, sec, dummy]); + break; + } + case this.sensorTypes.STEPSTOP: { + buffer = new Buffer([255, 85, 4, sensorIdx, this.actionTypes.SET, device, port]); + buffer = Buffer.concat([buffer, dummy]); + break; + } + case this.sensorTypes.DOTMATRIXINIT: { + const port1 = new Buffer(2); + const port2 = new Buffer(2); + const port3 = new Buffer(2); + if ($.isPlainObject(data)) { + port1.writeInt16LE(data.port1); + port2.writeInt16LE(data.port2); + port3.writeInt16LE(data.port3); + } else { + port1.writeInt16LE(0); + port2.writeInt16LE(0); + port3.writeInt16LE(0); + } + buffer = new Buffer([255, 85, 10, sensorIdx, this.actionTypes.SET, device, port]); + buffer = Buffer.concat([buffer, port1, port2, port3, dummy]); + break; + } + case this.sensorTypes.DOTMATRIXBRIGHT: { + value.writeInt16LE(data); + buffer = new Buffer([255, 85, 6, sensorIdx, this.actionTypes.SET, device, port]); + buffer = Buffer.concat([buffer, value, dummy]); + break; + } + case this.sensorTypes.DOTMATRIX: { + let text; + let textLen = 0; + let textLenBuf = new Buffer(2); + if ($.isPlainObject(data)) { + textLen = data.text.length; + text = Buffer.from(data.text); + textLenBuf.writeInt16LE(textLen); + } else { + textLen = 0; + text = Buffer.from('', 'ascii'); + textLenBuf.writeInt16LE(textLen); + } + buffer = new Buffer([ + 255, + 85, + 4 + 2 + textLen, + sensorIdx, + this.actionTypes.SET, + device, + port, + ]); + buffer = Buffer.concat([buffer, textLenBuf, text, dummy]); + break; + } + case this.sensorTypes.DOTMATRIXEMOJI: { + value.writeInt16LE(data); + buffer = new Buffer([255, 85, 6, sensorIdx, this.actionTypes.SET, device, port]); + buffer = Buffer.concat([buffer, value, dummy]); + break; + } + case this.sensorTypes.DOTMATRIXCLEAR: { + buffer = new Buffer([255, 85, 4, sensorIdx, this.actionTypes.SET, device, port]); + buffer = Buffer.concat([buffer, dummy]); + break; + } + case this.sensorTypes.LCDINIT: { + let list = new Buffer(2); + let line = new Buffer(2); + let col = new Buffer(2); + if ($.isPlainObject(data)) { + list.writeInt16LE(data.list); + line.writeInt16LE(data.line); + col.writeInt16LE(data.col); + } + buffer = new Buffer([255, 85, 10, sensorIdx, this.actionTypes.MODUEL, device, port]); + buffer = Buffer.concat([buffer, list, col, line, dummy]); + + break; + } + case this.sensorTypes.LCDCLEAR: { + buffer = new Buffer([255, 85, 4, sensorIdx, this.actionTypes.MODUEL, device, port]); + buffer = Buffer.concat([buffer, dummy]); + break; + } + case this.sensorTypes.LCD: { + // var text; + var text; + var line = new Buffer(2); + var col = new Buffer(2); + var textLen = 0; + var textLenBuf = Buffer(2); + + if ($.isPlainObject(data)) { + textLen = ('' + data.text).length; + text = Buffer.from('' + data.text, 'ascii'); + line.writeInt16LE(data.line); + textLenBuf.writeInt16LE(textLen); + col.writeInt16LE(data.column); + } else { + textLen = 0; + text = Buffer.from('', 'ascii'); + line.writeInt16LE(0); + textLenBuf.writeInt16LE(textLen); + col.writeInt16LE(0); + } + + buffer = new Buffer([ + 255, + 85, + 4 + 6 + textLen, + sensorIdx, + this.actionTypes.MODUEL, + device, + port, + ]); + + buffer = Buffer.concat([buffer, line, col, textLenBuf, text, dummy]); + break; + } + case this.sensorTypes.MP3INIT: { + const tx = new Buffer(2); + const rx = new Buffer(2); + + if ($.isPlainObject(data)) { + tx.writeInt16LE(data.tx); + rx.writeInt16LE(data.rx); + } else { + tx.writeInt16LE(0); + rx.writeInt16LE(0); + } + + buffer = new Buffer([255, 85, 8, sensorIdx, this.actionTypes.SET, device, port]); + + buffer = Buffer.concat([buffer, tx, rx, dummy]); + break; + } + case this.sensorTypes.MP3PLAY1: { + const tx = new Buffer(2); + const num = new Buffer(2); + + if ($.isPlainObject(data)) { + tx.writeInt16LE(data.tx); + num.writeInt16LE(data.num); + } else { + tx.writeInt16LE(0); + num.writeInt16LE(0); + } + + buffer = new Buffer([255, 85, 8, sensorIdx, this.actionTypes.SET, device, port]); + + buffer = Buffer.concat([buffer, tx, num, dummy]); + break; + } + case this.sensorTypes.MP3PLAY2: { + const tx = new Buffer(2); + const num = new Buffer(2); + const time_value = new Buffer(2); + + if ($.isPlainObject(data)) { + tx.writeInt16LE(data.tx); + num.writeInt16LE(data.num); + time_value.writeInt16LE(data.time_value); + } else { + tx.writeInt16LE(0); + num.writeInt16LE(0); + time_value.writeInt16LE(0); + } + + buffer = new Buffer([255, 85, 10, sensorIdx, this.actionTypes.SET, device, port]); + + buffer = Buffer.concat([buffer, tx, num, time_value, dummy]); + break; + } + case this.sensorTypes.MP3VOL: { + const tx = new Buffer(2); + const vol = new Buffer(2); + + if ($.isPlainObject(data)) { + tx.writeInt16LE(data.tx); + vol.writeInt16LE(data.vol); + } else { + tx.writeInt16LE(0); + vol.writeInt16LE(0); + } + + buffer = new Buffer([255, 85, 8, sensorIdx, this.actionTypes.SET, device, port]); + + buffer = Buffer.concat([buffer, tx, vol, dummy]); + break; + } + case this.sensorTypes.LOADINIT: { + const port1 = new Buffer(2); + const port2 = new Buffer(2); + if ($.isPlainObject(data)) { + port1.writeInt16LE(data.port1); + port2.writeInt16LE(data.port2); + } else { + port1.writeInt16LE(0); + port2.writeInt16LE(0); + } + buffer = new Buffer([255, 85, 8, sensorIdx, this.actionTypes.SET, device, port]); + buffer = Buffer.concat([buffer, port1, port2, dummy]); + break; + } + case this.sensorTypes.LOADSCALE: { + const num = new Buffer(4); + if ($.isPlainObject(data)) { + num.writeFloatLE(data.num); + } else { + num.writeFloatLE(0); + } + buffer = new Buffer([255, 85, 8, sensorIdx, this.actionTypes.SET, device, port]); + buffer = Buffer.concat([buffer, num, dummy]); + + break; + } + case this.sensorTypes.RFIDINIT: { + const port1 = new Buffer(2); + const port2 = new Buffer(2); + if ($.isPlainObject(data)) { + port1.writeInt16LE(data.port1); + port2.writeInt16LE(data.port2); + } else { + port1.writeInt16LE(0); + port2.writeInt16LE(0); + } + buffer = new Buffer([255, 85, 8, sensorIdx, this.actionTypes.SET, device, port]); + buffer = Buffer.concat([buffer, port1, port2, dummy]); + break; + } + } + + return buffer; +}; + +Module.prototype.getDataByBuffer = function (buffer) { + const datas = []; + let lastIndex = 0; + buffer.forEach((value, idx) => { + if (value == 13 && buffer[idx + 1] == 10) { + datas.push(buffer.subarray(lastIndex, idx)); + lastIndex = idx + 2; + // if(buffer[idx-1] == 9) + // console.log(datas); + + } + }); + + return datas; +}; + +Module.prototype.disconnect = function (connect) { + const self = this; + connect.close(); + if (self.sp) { + delete self.sp; + } +}; + +Module.prototype.reset = function () { + this.lastTime = 0; + this.lastSendTime = 0; + + this.sensorData.PULSEIN = {}; +}; + +Module.prototype.lostController = function () {}; + +module.exports = new Module(); \ No newline at end of file diff --git a/app/modules/dalgona_basic.json b/app/modules/dalgona_basic.json new file mode 100644 index 000000000..efd727e81 --- /dev/null +++ b/app/modules/dalgona_basic.json @@ -0,0 +1,34 @@ +{ + "id": "540201", + "name": { + "en": "Dalgona.Edu Basic", + "ko": "달고나.에듀 Basic" + }, + "category": "board", + "platform": ["win32", "darwin"], + "icon": "dalgona_basic.png", + "module": "dalgona_basic.js", + "url": "https://dalgonaedu.co.kr/", + "email": "who@nugunaplay.co.kr", + "driver": [{ + "win32-ia32": "ftdi/dpinst-x86.exe", + "win32-x64": "ftdi/dpinst-amd64.exe", + "translate" : "FTDI Driver" + }, + { + "win32-ia32": "CH34x_Install_Windows_v3_4/CH34x_Install_Windows_v3_4.EXE", + "win32-x64": "CH34x_Install_Windows_v3_4/CH34x_Install_Windows_v3_4.EXE", + "translate" : "CH340 Driver" + }], + "selectPort": true, + "reconnect": true, + "firmware": "dalgona_basic", + "hardware": { + "type": "serial", + "control": "slave", + "duration": 32, + "vendor": ["Arduino", "wch.cn", "FTDI"], + "baudRate": 115200, + "firmwarecheck": false + } +} \ No newline at end of file diff --git a/app/modules/dalgona_basic.png b/app/modules/dalgona_basic.png new file mode 100644 index 000000000..8106b6553 Binary files /dev/null and b/app/modules/dalgona_basic.png differ